diff --git a/asm/battle_3.s b/asm/battle_3.s index 4519fe816c..9a7a03e6ff 100644 --- a/asm/battle_3.s +++ b/asm/battle_3.s @@ -8,7 +8,7 @@ thumb_func_start b_movescr_stack_push b_movescr_stack_push: @ 803FAD8 push {r4,lr} - ldr r1, =gUnknown_020244A8 + ldr r1, =gBattleResources ldr r1, [r1] ldr r3, [r1, 0x8] adds r4, r3, 0 @@ -28,7 +28,7 @@ b_movescr_stack_push: @ 803FAD8 thumb_func_start b_movescr_stack_push_cursor b_movescr_stack_push_cursor: @ 803FAFC - ldr r0, =gUnknown_020244A8 + ldr r0, =gBattleResources ldr r0, [r0] ldr r2, [r0, 0x8] adds r3, r2, 0 @@ -39,7 +39,7 @@ b_movescr_stack_push_cursor: @ 803FAFC lsls r0, 24 lsrs r0, 22 adds r2, r0 - ldr r0, =gUnknown_02024214 + ldr r0, =gBattlescriptCurrInstr ldr r0, [r0] str r0, [r2] bx lr @@ -48,8 +48,8 @@ b_movescr_stack_push_cursor: @ 803FAFC thumb_func_start b_movescr_stack_pop_cursor b_movescr_stack_pop_cursor: @ 803FB24 - ldr r3, =gUnknown_02024214 - ldr r0, =gUnknown_020244A8 + ldr r3, =gBattlescriptCurrInstr + ldr r0, =gBattleResources ldr r0, [r0] ldr r1, [r0, 0x8] adds r2, r1, 0 @@ -73,8 +73,8 @@ sub_803FB4C: @ 803FB4C push {r7} movs r6, 0 ldr r2, =gBattleMons - ldr r1, =gUnknown_02023864 - ldr r3, =gUnknown_02024064 + ldr r1, =gBattleBufferB + ldr r3, =gActiveBank ldrb r4, [r3] lsls r0, r4, 9 adds r1, 0x2 @@ -87,13 +87,13 @@ sub_803FB4C: @ 803FB4C adds r2, 0xC adds r0, r2 ldrh r5, [r0] - ldr r1, =gUnknown_0202449C + ldr r1, =gBattleStruct lsls r0, r4, 1 adds r0, 0xC8 ldr r1, [r1] adds r1, r0 mov r8, r1 - ldr r1, =gUnknown_020242BC + ldr r1, =gDisableStructs lsls r0, r4, 3 subs r0, r4 lsls r0, 2 @@ -105,9 +105,9 @@ sub_803FB4C: @ 803FB4C bne _0803FC06 cmp r5, 0 beq _0803FC06 - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting strb r4, [r0, 0x17] - ldr r0, =gUnknown_020241EA + ldr r0, =gCurrentMove strh r5, [r0] ldr r0, =gBattleTypeFlags ldr r0, [r0] @@ -122,7 +122,7 @@ sub_803FB4C: @ 803FB4C adds r0, r1 ldr r1, =gUnknown_082DAE2A str r1, [r0] - ldr r0, =gUnknown_0202433C + ldr r0, =gProtectStructs ldrb r1, [r7] lsls r1, 4 adds r1, r0 @@ -159,7 +159,7 @@ _0803FC06: cmp r0, 0 bge _0803FC90 adds r0, r2, 0 - bl b_cancel_multi_turn_move_maybe + bl CancelMultiTurnMoves ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 @@ -173,7 +173,7 @@ _0803FC06: adds r0, r1 ldr r1, =gUnknown_082DB098 str r1, [r0] - ldr r0, =gUnknown_0202433C + ldr r0, =gProtectStructs ldrb r1, [r7] lsls r1, 4 adds r1, r0 @@ -194,7 +194,7 @@ _0803FC7C: lsls r0, 24 lsrs r6, r0, 24 _0803FC8E: - ldr r3, =gUnknown_020242BC + ldr r3, =gDisableStructs _0803FC90: ldrb r0, [r7] lsls r1, r0, 3 @@ -213,7 +213,7 @@ _0803FC90: ldrb r0, [r1, 0x1] cmp r0, 0 bne _0803FD1A - ldr r0, =gUnknown_020241EA + ldr r0, =gCurrentMove strh r5, [r0] ldr r0, =gBattleTypeFlags ldr r0, [r0] @@ -228,7 +228,7 @@ _0803FC90: adds r0, r1 ldr r1, =gUnknown_082DB0AF str r1, [r0] - ldr r0, =gUnknown_0202433C + ldr r0, =gProtectStructs ldrb r1, [r7] lsls r1, 4 adds r1, r0 @@ -249,14 +249,14 @@ _0803FD08: lsls r0, 24 lsrs r6, r0, 24 _0803FD1A: - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r0, [r4] adds r1, r5, 0 bl sub_8040130 lsls r0, 24 cmp r0, 0 beq _0803FD8E - ldr r0, =gUnknown_020241EA + ldr r0, =gCurrentMove strh r5, [r0] ldr r0, =gBattleTypeFlags ldr r0, [r0] @@ -271,7 +271,7 @@ _0803FD1A: adds r0, r1 ldr r1, =gUnknown_082DB185 str r1, [r0] - ldr r0, =gUnknown_0202433C + ldr r0, =gProtectStructs ldrb r1, [r4] lsls r1, 4 adds r1, r0 @@ -293,7 +293,7 @@ _0803FD7C: lsrs r6, r0, 24 _0803FD8E: ldr r1, =gBattleMons - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -301,7 +301,7 @@ _0803FD8E: ldrh r0, [r1, 0x2E] cmp r0, 0xAF bne _0803FDC4 - ldr r1, =gUnknown_02024404 + ldr r1, =gEnigmaBerries lsls r0, r2, 3 subs r0, r2 lsls r0, 2 @@ -311,12 +311,12 @@ _0803FD8E: .pool _0803FDC4: ldrh r0, [r1, 0x2E] - bl itemid_get_x12 + bl ItemId_GetHoldEffect lsls r0, 24 lsrs r4, r0, 24 _0803FDCE: ldr r2, =gUnknown_0202420F - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r0, [r1] strb r0, [r2] ldr r0, =gBattleMons @@ -334,7 +334,7 @@ _0803FDCE: beq _0803FE58 cmp r2, r5 beq _0803FE58 - ldr r0, =gUnknown_020241EA + ldr r0, =gCurrentMove strh r1, [r0] ldr r2, =gUnknown_02024208 ldrb r1, [r7] @@ -351,7 +351,7 @@ _0803FDCE: ldrb r2, [r7] cmp r1, 0 beq _0803FE48 - ldr r0, =gUnknown_0202433C + ldr r0, =gProtectStructs lsls r1, r2, 4 adds r1, r0 ldrb r0, [r1, 0x2] @@ -370,7 +370,7 @@ _0803FE48: lsls r0, 24 lsrs r6, r0, 24 _0803FE58: - ldr r0, =gUnknown_02023864 + ldr r0, =gBattleBufferB ldrb r3, [r7] lsls r1, r3, 9 adds r0, 0x2 @@ -392,7 +392,7 @@ _0803FE58: ands r0, r1 cmp r0, 0 beq _0803FEA8 - ldr r0, =gUnknown_0202433C + ldr r0, =gProtectStructs lsls r1, r3, 4 adds r1, r0 ldrb r0, [r1, 0x2] @@ -434,7 +434,7 @@ sub_803FECC: @ 803FECC lsrs r4, r1, 24 lsls r2, 24 lsrs r3, r2, 24 - ldr r1, =gUnknown_0202449C + ldr r1, =gBattleStruct lsls r0, r7, 1 adds r0, 0xC8 ldr r1, [r1] @@ -447,7 +447,7 @@ sub_803FECC: @ 803FECC ldrh r0, [r1, 0x2E] cmp r0, 0xAF bne _0803FF1C - ldr r2, =gUnknown_02024404 + ldr r2, =gEnigmaBerries lsls r1, r7, 3 subs r0, r1, r7 lsls r0, 2 @@ -459,7 +459,7 @@ sub_803FECC: @ 803FECC _0803FF1C: ldrh r0, [r1, 0x2E] str r3, [sp, 0x14] - bl itemid_get_x12 + bl ItemId_GetHoldEffect lsls r0, 24 lsrs r0, 24 str r0, [sp] @@ -472,7 +472,7 @@ _0803FF2E: mov r9, r0 lsls r2, r7, 1 str r2, [sp, 0xC] - ldr r5, =gUnknown_020242BC + ldr r5, =gDisableStructs mov r12, r5 ldr r0, =gBattleMons movs r2, 0x58 @@ -567,7 +567,7 @@ _0803FFAC: lsls r0, r4, 24 lsrs r4, r0, 24 _0803FFEE: - ldr r0, =gUnknown_020242BC + ldr r0, =gDisableStructs add r0, r8 ldrb r0, [r0, 0x13] lsls r0, 28 @@ -608,7 +608,7 @@ _0804001C: lsls r0, r4, 24 lsrs r4, r0, 24 _0804003E: - ldr r1, =gUnknown_020242BC + ldr r1, =gDisableStructs mov r0, r8 adds r2, r0, r1 ldrb r0, [r2, 0xE] @@ -670,7 +670,7 @@ _08040096: thumb_func_start sub_80400C8 sub_80400C8: @ 80400C8 push {r4,lr} - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r0, [r4] movs r1, 0 movs r2, 0xFF @@ -679,7 +679,7 @@ sub_80400C8: @ 80400C8 lsrs r3, r0, 24 cmp r3, 0xF bne _0804010C - ldr r0, =gUnknown_0202433C + ldr r0, =gProtectStructs ldrb r1, [r4] lsls r1, 4 adds r1, r0 @@ -696,7 +696,7 @@ sub_80400C8: @ 80400C8 b _0804011E .pool _0804010C: - ldr r0, =gUnknown_0202433C + ldr r0, =gProtectStructs ldrb r1, [r4] lsls r1, 4 adds r1, r0 @@ -728,12 +728,12 @@ sub_8040130: @ 8040130 lsls r1, 16 lsrs r5, r1, 16 movs r6, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r4, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r6, r0 bge _080401B4 @@ -742,13 +742,13 @@ sub_8040130: @ 8040130 _0804015A: lsls r0, r4, 24 lsrs r0, 24 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 adds r3, r4, 0x1 cmp r9, r0 beq _080401AA - ldr r1, =gUnknown_020242AC + ldr r1, =gStatuses3 lsls r0, r4, 2 adds r0, r1 ldr r0, [r0] @@ -783,7 +783,7 @@ _080401A0: lsrs r6, r0, 24 _080401AA: adds r4, r3, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _0804015A @@ -807,19 +807,19 @@ sub_80401D0: @ 80401D0 push {r5-r7} movs r0, 0 mov r9, r0 - ldr r1, =gUnknown_0202420B + ldr r1, =gBankAttacker mov r2, r9 strb r2, [r1] - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r4, [r0] adds r6, r1, 0 mov r10, r0 - ldr r7, =gEnemyMonIndex - ldr r3, =gUnknown_0202449C + ldr r7, =gBankTarget + ldr r3, =gBattleStruct mov r12, r3 cmp r9, r4 bcs _08040224 - ldr r2, =gUnknown_02024210 + ldr r2, =gAbsentBankFlags ldrb r1, [r2] ldr r5, =gBitTable ldr r0, [r5] @@ -850,7 +850,7 @@ _08040224: ldrb r4, [r0] cmp r4, 0 beq _0804025E - ldr r2, =gUnknown_02024210 + ldr r2, =gAbsentBankFlags ldrb r1, [r2] ldr r5, =gBitTable ldr r0, [r5] @@ -903,12 +903,12 @@ _08040290: .4byte _080408EC _080402BC: movs r5, 0 - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks mov r10, r1 ldrb r2, [r1] cmp r5, r2 bge _080402D6 - ldr r2, =gUnknown_0202407E + ldr r2, =gTurnOrder _080402CA: adds r0, r5, r2 strb r5, [r0] @@ -926,8 +926,8 @@ _080402E4: ldrb r1, [r1] cmp r6, r1 bge _08040322 - ldr r7, =gUnknown_0202407E - ldr r0, =gUnknown_0202406C + ldr r7, =gTurnOrder + ldr r0, =gNoOfAllBanks mov r10, r0 lsls r1, r5, 24 mov r8, r1 @@ -948,7 +948,7 @@ _080402F8: bl sub_803CEDC _08040318: adds r4, 0x1 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _080402F8 @@ -960,7 +960,7 @@ _08040324: subs r0, 0x1 cmp r5, r0 blt _080402E4 - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct ldr r1, [r2] ldrb r0, [r1, 0x3] adds r0, 0x1 @@ -979,16 +979,16 @@ _08040342: bls _08040350 b _0804062C _08040350: - ldr r3, =gUnknown_02024064 + ldr r3, =gActiveBank mov r8, r3 movs r7, 0 - ldr r6, =gUnknown_0202420B - ldr r5, =gUnknown_02022F58 + ldr r6, =gBankAttacker + ldr r5, =gBattleTextBuff1 _0804035A: ldr r0, [r1] adds r0, 0xDB ldrb r4, [r0] - ldr r2, =gUnknown_02024294 + ldr r2, =gSideTimers lsls r1, r4, 1 adds r0, r1, r4 lsls r0, 2 @@ -1034,7 +1034,7 @@ _0804035A: lsrs r0, 24 mov r9, r0 _080403BC: - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct ldr r1, [r2] adds r1, 0xDB ldrb r0, [r1] @@ -1067,20 +1067,20 @@ _08040416: mov r10, r0 movs r2, 0 mov r8, r2 - ldr r7, =gUnknown_0202420B - ldr r5, =gUnknown_02022F58 + ldr r7, =gBankAttacker + ldr r5, =gBattleTextBuff1 _08040422: ldr r0, [r1] adds r0, 0xDB ldrb r4, [r0] - ldr r2, =gUnknown_02024294 + ldr r2, =gSideTimers lsls r1, r4, 1 adds r0, r1, r4 lsls r0, 2 adds r2, r0, r2 ldrb r0, [r2, 0x3] strb r0, [r7] - ldr r3, =gUnknown_02024064 + ldr r3, =gActiveBank strb r0, [r3] ldr r0, =gUnknown_0202428E adds r3, r1, r0 @@ -1103,7 +1103,7 @@ _08040422: strh r0, [r3] ldr r0, =gUnknown_082DACFA bl b_call_bc_move_exec - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication strb r4, [r0, 0x5] movs r0, 0xFD strb r0, [r5] @@ -1122,7 +1122,7 @@ _08040422: lsrs r0, 24 mov r9, r0 _0804048A: - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct ldr r1, [r2] adds r1, 0xDB ldrb r0, [r1] @@ -1149,17 +1149,17 @@ _080404D4: ldrb r0, [r0] cmp r0, 0x1 bhi _08040570 - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank mov r10, r0 movs r2, 0 mov r8, r2 - ldr r7, =gUnknown_0202420B - ldr r5, =gUnknown_02022F58 + ldr r7, =gBankAttacker + ldr r5, =gBattleTextBuff1 _080404EC: ldr r0, [r1] adds r0, 0xDB ldrb r4, [r0] - ldr r1, =gUnknown_02024294 + ldr r1, =gSideTimers lsls r3, r4, 1 adds r0, r3, r4 lsls r0, 2 @@ -1186,7 +1186,7 @@ _080404EC: strh r0, [r2] ldr r0, =gUnknown_082DACFA bl b_call_bc_move_exec - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication strb r4, [r0, 0x5] movs r0, 0xFD strb r0, [r5] @@ -1205,7 +1205,7 @@ _080404EC: lsrs r0, 24 mov r9, r0 _0804054E: - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct ldr r1, [r2] adds r1, 0xDB ldrb r0, [r1] @@ -1246,13 +1246,13 @@ _080405B0: ldrb r0, [r0] cmp r0, 0x1 bhi _0804062C - ldr r6, =gUnknown_02024064 - ldr r5, =gUnknown_0202420B + ldr r6, =gActiveBank + ldr r5, =gBankAttacker _080405C0: ldr r0, [r1] adds r0, 0xDB ldrb r4, [r0] - ldr r2, =gUnknown_02024294 + ldr r2, =gSideTimers lsls r1, r4, 1 adds r0, r1, r4 lsls r0, 2 @@ -1286,7 +1286,7 @@ _080405C0: lsrs r0, 24 mov r9, r0 _0804060A: - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct ldr r1, [r2] adds r1, 0xDB ldrb r0, [r1] @@ -1326,13 +1326,13 @@ _08040668: mov r2, r12 ldr r0, [r2] adds r0, 0xDB - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bcs _080406E8 - ldr r4, =gUnknown_02024064 - ldr r5, =gUnknown_0202407E + ldr r4, =gActiveBank + ldr r5, =gTurnOrder _0804067C: ldr r0, [r2] adds r0, 0xDB @@ -1360,7 +1360,7 @@ _0804067C: ldrh r0, [r0, 0x28] cmp r0, 0 beq _080406C4 - ldr r0, =gEnemyMonIndex + ldr r0, =gBankTarget strb r2, [r0] ldr r0, =gUnknown_082DB0B7 bl b_call_bc_move_exec @@ -1370,7 +1370,7 @@ _0804067C: lsrs r0, 24 mov r9, r0 _080406C4: - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct ldr r1, [r2] adds r1, 0xDB ldrb r0, [r1] @@ -1384,7 +1384,7 @@ _080406C4: _080406DA: ldr r0, [r2] adds r0, 0xDB - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 @@ -1428,7 +1428,7 @@ _0804072A: ldr r1, =0x0000fffd ands r0, r1 strh r0, [r3] - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x2 strb r0, [r1, 0x5] b _08040794 @@ -1449,13 +1449,13 @@ _08040776: cmp r1, 0 beq _08040790 _08040782: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x5] b _08040794 .pool _08040790: - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication strb r1, [r0, 0x5] _08040794: ldr r0, =gUnknown_082DAC2C @@ -1485,21 +1485,21 @@ _080407AE: ldr r0, =0x0000fff7 ands r0, r2 strh r0, [r3] - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DACC9 b _080407EC .pool _080407E8: - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DAC47 _080407EC: str r0, [r1] adds r3, r1, 0 - ldr r1, =gUnknown_02024474 + ldr r1, =gBattleScripting movs r2, 0 movs r0, 0xC strb r0, [r1, 0x10] - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication strb r2, [r0, 0x5] b _080408B8 .pool @@ -1525,12 +1525,12 @@ _08040810: ldr r0, =0x0000ffdf ands r0, r2 strh r0, [r3] - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DACE0 b _08040858 .pool _08040854: - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DACD2 _08040858: str r0, [r1] @@ -1555,20 +1555,20 @@ _08040868: ldr r0, =0x0000ff7f ands r0, r2 strh r0, [r3] - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DACC9 b _080408A8 .pool _080408A4: - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DAC47 _080408A8: str r0, [r1] adds r3, r1, 0 - ldr r1, =gUnknown_02024474 + ldr r1, =gBattleScripting movs r0, 0xD strb r0, [r1, 0x10] - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x5] _080408B8: @@ -1581,7 +1581,7 @@ _080408BA: lsrs r0, 24 mov r9, r0 _080408C8: - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct ldr r1, [r2] ldrb r0, [r1, 0x3] adds r0, 0x1 @@ -1601,7 +1601,7 @@ _080408F6: bne _080408FE b _0804025E _080408FE: - ldr r0, =gUnknown_03005D04 + ldr r0, =gBattleMainFunc ldr r1, [r0] ldr r0, =sub_803B9BC eors r1, r0 @@ -1628,14 +1628,14 @@ sub_8040924: @ 8040924 sub sp, 0x8 movs r0, 0 mov r9, r0 - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker ldr r0, [r2] ldr r1, =0x01000020 orrs r0, r1 str r0, [r2] - ldr r5, =gUnknown_0202449C + ldr r5, =gBattleStruct ldr r2, [r5] - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r1, [r2, 0x1] adds r7, r5, 0 mov r8, r0 @@ -1647,16 +1647,16 @@ _08040954: bl _0804132E .pool _08040968: - ldr r3, =gUnknown_02024064 - ldr r4, =gUnknown_0202420B - ldr r1, =gUnknown_0202407E + ldr r3, =gActiveBank + ldr r4, =gBankAttacker + ldr r1, =gTurnOrder ldr r5, [r5] ldrb r0, [r5, 0x1] adds r0, r1 ldrb r0, [r0] strb r0, [r4] strb r0, [r3] - ldr r0, =gUnknown_02024210 + ldr r0, =gAbsentBankFlags ldrb r1, [r0] ldr r2, =gBitTable ldrb r0, [r3] @@ -1707,7 +1707,7 @@ _080409C8: .4byte _08040AAE .4byte _08041304 _08040A18: - ldr r1, =gUnknown_020242AC + ldr r1, =gStatuses3 ldrb r3, [r6] lsls r0, r3, 2 adds r0, r1 @@ -1755,7 +1755,7 @@ _08040A78: movs r0, 0x1 movs r2, 0 movs r3, 0 - bl ability_something + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 bne _08040A92 @@ -1785,7 +1785,7 @@ _08040AAE: _08040AC2: bl _080412D4 _08040AC6: - ldr r0, =gUnknown_020242AC + ldr r0, =gStatuses3 ldrb r2, [r6] lsls r1, r2, 2 adds r1, r0 @@ -1816,7 +1816,7 @@ _08040AF4: bne _08040B04 bl _080412DE _08040B04: - ldr r0, =gEnemyMonIndex + ldr r0, =gBankTarget strb r5, [r0] ldr r2, =gBattleMoveDamage ldrb r0, [r6] @@ -1830,7 +1830,7 @@ _08040B04: movs r0, 0x1 str r0, [r2] _08040B1E: - ldr r1, =gUnknown_02024474 + ldr r1, =gBattleScripting strb r5, [r1, 0x10] ldrb r0, [r4] strb r0, [r1, 0x11] @@ -2089,8 +2089,8 @@ _08040D30: ands r0, r5 cmp r0, 0 beq _08040DC0 - ldr r1, =gUnknown_02024474 - ldr r0, =gUnknown_0202449C + ldr r1, =gBattleScripting + ldr r0, =gBattleStruct ldr r2, [r0] lsls r0, r4, 1 adds r0, r2 @@ -2101,7 +2101,7 @@ _08040D30: adds r0, r2 ldrb r0, [r0, 0x5] strb r0, [r1, 0x11] - ldr r1, =gUnknown_02022F58 + ldr r1, =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 @@ -2118,7 +2118,7 @@ _08040D30: strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB30E str r0, [r1] ldr r2, =gBattleMoveDamage @@ -2135,13 +2135,13 @@ _08040D30: b _08040DEC .pool _08040DC0: - ldr r2, =gUnknown_02022F58 + ldr r2, =gBattleTextBuff1 movs r0, 0xFD strb r0, [r2] movs r0, 0x2 strb r0, [r2, 0x1] ldrb r1, [r6] - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r3, [r0] lsls r1, 1 adds r1, r3 @@ -2154,7 +2154,7 @@ _08040DC0: strb r0, [r2, 0x3] movs r0, 0xFF strb r0, [r2, 0x4] - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB320 str r0, [r1] _08040DEC: @@ -2176,12 +2176,12 @@ _08040E00: ldr r1, =0xf7ffffff ands r0, r1 str r0, [r2] - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x5] ldr r0, =gUnknown_082DB234 bl b_call_bc_move_exec - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r0, [r6] strb r0, [r4] ldrb r0, [r4] @@ -2255,8 +2255,8 @@ _08040EBA: cmp r0, r1 bcc _08040E9A _08040EC8: - ldr r2, =gUnknown_0202420B - ldr r1, =gUnknown_0202406C + ldr r2, =gBankAttacker + ldr r1, =gNoOfAllBanks ldrb r0, [r2] ldrb r1, [r1] cmp r0, r1 @@ -2266,7 +2266,7 @@ _08040EC8: b _08041318 .pool _08040EE8: - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank ldrb r0, [r5] strb r0, [r2] ldr r2, =gBattleMons @@ -2287,8 +2287,8 @@ _08040EE8: cmp r4, 0 beq _08040F2C ldrb r0, [r5] - bl b_cancel_multi_turn_move_maybe - ldr r1, =gUnknown_02024332 + bl CancelMultiTurnMoves + ldr r1, =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x5] b _08040F60 @@ -2303,7 +2303,7 @@ _08040F2C: ands r0, r1 cmp r0, 0 beq _08040F54 - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication strb r4, [r0, 0x5] ldr r0, [r2] movs r1, 0x80 @@ -2313,11 +2313,11 @@ _08040F2C: b _08040F60 .pool _08040F54: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x5] adds r0, r3, 0 - bl b_cancel_multi_turn_move_maybe + bl CancelMultiTurnMoves _08040F60: ldr r0, =gUnknown_082DB2A6 bl b_call_bc_move_exec @@ -2357,7 +2357,7 @@ _08040F9A: cmp r0, 0 beq _08040FBC ldrb r0, [r6] - bl b_cancel_multi_turn_move_maybe + bl CancelMultiTurnMoves b _080412DE .pool _08040FBC: @@ -2391,7 +2391,7 @@ _08040FDA: beq _08040FF2 b _080412DE _08040FF2: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x47 strb r0, [r1, 0x3] movs r0, 0x1 @@ -2411,7 +2411,7 @@ _08041010: b _080412D4 .pool _08041024: - ldr r0, =gUnknown_020242BC + ldr r0, =gDisableStructs ldrb r3, [r6] lsls r1, r3, 3 subs r1, r3 @@ -2510,7 +2510,7 @@ _080410D4: b _080412D0 .pool _080410E8: - ldr r3, =gUnknown_020242BC + ldr r3, =gDisableStructs ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 @@ -2599,7 +2599,7 @@ _08041172: b _080412D0 .pool _0804119C: - ldr r0, =gUnknown_020242AC + ldr r0, =gStatuses3 ldrb r1, [r6] lsls r1, 2 adds r1, r0 @@ -2616,7 +2616,7 @@ _080411B4: b _080412E2 .pool _080411BC: - ldr r2, =gUnknown_020242BC + ldr r2, =gDisableStructs ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 @@ -2637,7 +2637,7 @@ _080411BC: strb r0, [r3, 0x12] cmp r1, 0 bne _080411F6 - ldr r0, =gUnknown_020242AC + ldr r0, =gStatuses3 ldrb r2, [r6] lsls r2, 2 adds r2, r0 @@ -2650,7 +2650,7 @@ _080411F6: b _080412E2 .pool _08041208: - ldr r2, =gUnknown_020242BC + ldr r2, =gDisableStructs ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 @@ -2674,7 +2674,7 @@ _0804122E: b _080412E2 .pool _08041238: - ldr r4, =gUnknown_020242AC + ldr r4, =gStatuses3 ldrb r0, [r6] lsls r0, 2 adds r2, r0, r4 @@ -2718,7 +2718,7 @@ _08041238: cmp r0, 0 bne _080412DE ldrb r0, [r6] - bl b_cancel_multi_turn_move_maybe + bl CancelMultiTurnMoves bl Random ldrb r1, [r6] adds r2, r1, 0 @@ -2754,7 +2754,7 @@ _080412D4: lsrs r0, 24 mov r9, r0 _080412DE: - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r1, [r0] _080412E2: ldrb r0, [r1] @@ -2778,9 +2778,9 @@ _08041318: mov r0, r9 b _08041344 _0804131C: - ldr r5, =gUnknown_0202449C + ldr r5, =gBattleStruct ldr r2, [r5] - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r1, [r2, 0x1] adds r7, r5, 0 mov r8, r0 @@ -2793,7 +2793,7 @@ _0804132E: bhi _08041338 bl _08040968 _08041338: - ldr r0, =gUnknown_02024280 + ldr r0, =gHitMarker ldr r1, [r0] ldr r2, =0xfeffffdf ands r1, r2 @@ -2818,12 +2818,12 @@ sub_8041364: @ 8041364 mov r6, r9 mov r5, r8 push {r5-r7} - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker ldr r0, [r2] ldr r1, =0x01000020 orrs r0, r1 str r0, [r2] - ldr r1, =gUnknown_0202449C + ldr r1, =gBattleStruct ldr r3, [r1] movs r4, 0xD0 lsls r4, 1 @@ -2850,7 +2850,7 @@ _080413AA: _080413AC: ldr r2, =0x000001a1 adds r0, r3, r2 - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks ldrb r0, [r0] mov r8, r1 ldrb r7, [r1] @@ -2858,8 +2858,8 @@ _080413AC: bcc _080413BE b _08041532 _080413BE: - ldr r4, =gUnknown_02024064 - ldr r5, =gUnknown_02022F58 + ldr r4, =gActiveBank + ldr r5, =gBattleTextBuff1 ldr r7, =gUnknown_020243D0 movs r0, 0x18 adds r0, r7 @@ -2869,7 +2869,7 @@ _080413CA: adds r3, r0, r2 ldrb r0, [r3] strb r0, [r4] - ldr r0, =gUnknown_02024210 + ldr r0, =gAbsentBankFlags ldrb r1, [r0] ldr r2, =gBitTable ldrb r0, [r4] @@ -2916,12 +2916,12 @@ _08041422: ldrh r0, [r0] cmp r0, 0xF8 bne _0804145C - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication strb r3, [r0, 0x5] b _08041462 .pool _0804145C: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x5] _08041462: @@ -2943,10 +2943,10 @@ _08041462: strb r0, [r5, 0x3] movs r0, 0xFF strb r0, [r5, 0x4] - ldr r5, =gEnemyMonIndex + ldr r5, =gBankTarget ldrb r0, [r4] strb r0, [r5] - ldr r1, =gUnknown_0202420B + ldr r1, =gBankAttacker adds r0, r7, 0x4 ldrb r2, [r4] adds r0, r2 @@ -2960,7 +2960,7 @@ _08041462: adds r0, r1 ldr r0, [r0] str r0, [r2] - ldr r2, =gUnknown_0202437C + ldr r2, =gSpecialStatuses ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 @@ -2987,7 +2987,7 @@ _080414CC: b _08041664 _080414DA: ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity ldr r2, =gUnknown_0202428E lsls r0, 24 lsrs r0, 24 @@ -3029,7 +3029,7 @@ _08041548: ldr r0, [r6] ldr r2, =0x000001a1 adds r0, r2 - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks ldrb r0, [r0] mov r8, r1 ldrb r4, [r1] @@ -3037,14 +3037,14 @@ _08041548: bcc _0804155E b _08041684 _0804155E: - ldr r5, =gUnknown_02024064 - ldr r4, =gUnknown_02022F58 - ldr r7, =gUnknown_020242BC + ldr r5, =gActiveBank + ldr r4, =gBattleTextBuff1 + ldr r7, =gDisableStructs mov r12, r7 - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker mov r9, r0 _0804156A: - ldr r1, =gUnknown_0202407E + ldr r1, =gTurnOrder ldr r0, [r3] adds r3, r0, r2 ldrb r0, [r3] @@ -3053,7 +3053,7 @@ _0804156A: mov r1, r9 strb r0, [r1] strb r0, [r5] - ldr r0, =gUnknown_02024210 + ldr r0, =gAbsentBankFlags ldrb r1, [r0] ldr r2, =gBitTable ldrb r0, [r5] @@ -3072,7 +3072,7 @@ _080415BC: ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] - ldr r7, =gUnknown_020242AC + ldr r7, =gStatuses3 ldrb r0, [r5] lsls r0, 2 adds r0, r7 @@ -3123,7 +3123,7 @@ _080415BC: adds r0, r2 ldrh r0, [r0, 0x28] str r0, [r3] - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DAF05 b _0804165C .pool @@ -3138,7 +3138,7 @@ _08041644: ands r0, r3 orrs r0, r1 strb r0, [r4, 0xF] - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DAF20 _0804165C: str r0, [r1] @@ -3197,15 +3197,15 @@ _0804169A: _080416C6: lsls r0, r4, 24 lsrs r0, 24 - bl b_cancel_multi_turn_move_maybe + bl CancelMultiTurnMoves adds r4, 0x1 cmp r4, 0x1 ble _080416C6 - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB8F3 str r0, [r1] bl b_call_bc_move_exec - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r1, [r0] movs r4, 0xD0 lsls r4, 1 @@ -3268,7 +3268,7 @@ _08041766: b _08041A0C .pool _08041770: - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct mov r8, r0 _08041774: mov r1, r8 @@ -3307,11 +3307,11 @@ _080417B4: adds r0, 0x1 strb r0, [r1] movs r5, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r5, r0 bge _08041806 - ldr r6, =gUnknown_02024210 + ldr r6, =gAbsentBankFlags _080417D4: ldrb r0, [r6] ldr r2, =gBitTable @@ -3334,19 +3334,19 @@ _080417D4: strb r0, [r6] _080417FC: adds r5, 0x1 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r5, r0 blt _080417D4 _08041806: - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct mov r8, r0 ldr r1, =gUnknown_0202420D mov r12, r1 - ldr r2, =gEnemyMonIndex + ldr r2, =gBankTarget mov r5, r8 ldr r7, =gBattleMons - ldr r6, =gUnknown_0202406E + ldr r6, =gBattlePartyID _08041816: ldr r3, [r5] adds r1, r3, 0 @@ -3375,7 +3375,7 @@ _08041816: ands r1, r0 cmp r1, 0 bne _0804185E - ldr r0, =gUnknown_02024210 + ldr r0, =gAbsentBankFlags ldrb r1, [r0] lsls r0, r4, 2 adds r0, r3 @@ -3390,7 +3390,7 @@ _0804185E: ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks lsls r1, 24 lsrs r1, 24 ldrb r0, [r0] @@ -3407,13 +3407,13 @@ _080418A0: ldr r0, =gUnknown_0202420D ldrb r0, [r0] bl sub_803F9EC - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct ldr r1, [r2] adds r1, 0x4E ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] @@ -3445,8 +3445,8 @@ _080418E2: _080418F6: ldr r0, =gUnknown_0202420D mov r12, r0 - ldr r7, =gEnemyMonIndex - ldr r5, =gUnknown_0202449C + ldr r7, =gBankTarget + ldr r5, =gBattleStruct ldr r2, =gBattleMons ldr r6, =gBitTable _08041902: @@ -3464,7 +3464,7 @@ _08041902: ldrh r0, [r0, 0x28] cmp r0, 0 bne _08041930 - ldr r0, =gUnknown_02024210 + ldr r0, =gAbsentBankFlags ldrb r1, [r0] lsls r0, r3, 2 adds r0, r6 @@ -3476,7 +3476,7 @@ _08041902: _08041930: adds r0, r3, 0x1 strb r0, [r4] - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] @@ -3491,7 +3491,7 @@ _08041960: ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks lsls r1, 24 lsrs r1, 24 ldrb r0, [r0] @@ -3519,7 +3519,7 @@ _08041994: movs r1, 0 movs r2, 0 movs r3, 0 - bl ability_something + bl AbilityBattleEffects lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -3531,7 +3531,7 @@ _080419AE: movs r1, 0 movs r2, 0 movs r3, 0 - bl ability_something + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 beq _080419C4 @@ -3552,13 +3552,13 @@ _080419D8: movs r1, 0 movs r2, 0 movs r3, 0 - bl ability_something + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 beq _080419EE b _08041766 _080419EE: - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct ldr r1, [r2] adds r1, 0x4D ldrb r0, [r1] @@ -3590,7 +3590,7 @@ _08041A0C: b_clear_atk_up_if_hit_flag_unless_enraged: @ 8041A1C push {r4-r6,lr} movs r3, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks adds r5, r0, 0 ldrb r0, [r5] cmp r3, r0 @@ -3637,7 +3637,7 @@ sub_8041A6C: @ 8041A6C mov r9, r0 ldr r1, =gUnknown_02024478 mov r10, r1 - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct mov r8, r2 b _08041A9A .pool @@ -3681,7 +3681,7 @@ _08041AC0: .4byte _08042376 _08041AFC: ldr r1, =gBattleMons - ldr r3, =gUnknown_0202420B + ldr r3, =gBankAttacker ldrb r2, [r3] movs r0, 0x58 muls r2, r0 @@ -3691,7 +3691,7 @@ _08041AFC: ldr r1, =0xfdffffff ands r0, r1 str r0, [r2] - ldr r0, =gUnknown_020242AC + ldr r0, =gStatuses3 ldrb r2, [r3] lsls r2, 2 adds r2, r0 @@ -3707,7 +3707,7 @@ _08041AFC: .pool _08041B48: ldr r7, =gBattleMons - ldr r4, =gUnknown_0202420B + ldr r4, =gBankAttacker ldrb r1, [r4] movs r5, 0x58 adds r0, r1, 0 @@ -3748,10 +3748,10 @@ _08041B68: ands r0, r1 str r0, [r2] bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x5] - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB220 str r0, [r1] movs r4, 0x2 @@ -3787,7 +3787,7 @@ _08041BF4: str r0, [r2] _08041BF8: ldr r2, =gBattleMons - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r1, [r0] movs r0, 0x58 muls r1, r0 @@ -3799,16 +3799,16 @@ _08041BF8: ands r4, r0 cmp r4, 0 beq _08041C50 - ldr r0, =gUnknown_020241EA + ldr r0, =gCurrentMove ldrh r0, [r0] cmp r0, 0xAD beq _08041C6E cmp r0, 0xD6 beq _08041C6E - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB213 str r0, [r1] - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 12 @@ -3826,15 +3826,15 @@ _08041C50: ands r0, r1 str r0, [r2] bl b_movescr_stack_push_cursor - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication strb r4, [r0, 0x5] - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB220 str r0, [r1] movs r1, 0x2 mov r9, r1 _08041C6E: - ldr r1, =gUnknown_0202449C + ldr r1, =gBattleStruct ldr r0, [r1] ldr r3, =0x000001a3 adds r2, r0, r3 @@ -3842,7 +3842,7 @@ _08041C6E: .pool _08041C90: ldr r1, =gBattleMons - ldr r7, =gUnknown_0202420B + ldr r7, =gBankAttacker ldrb r0, [r7] movs r6, 0x58 muls r0, r6 @@ -3864,7 +3864,7 @@ _08041C90: cmp r4, 0 beq _08041D08 ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA + ldr r0, =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -3875,10 +3875,10 @@ _08041C90: bne _08041CD6 b _08042162 _08041CD6: - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB26A str r0, [r1] - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 2 @@ -3897,15 +3897,15 @@ _08041D08: ands r0, r1 str r0, [r2] bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB277 str r0, [r1] - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication strb r4, [r0, 0x5] _08041D28: movs r7, 0x2 mov r9, r7 - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct mov r8, r0 _08041D30: mov r1, r8 @@ -3916,7 +3916,7 @@ _08041D30: .pool _08041D50: ldr r1, =gBattleMons - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -3927,7 +3927,7 @@ _08041D50: beq _08041D66 b _08042162 _08041D66: - ldr r0, =gUnknown_020242BC + ldr r0, =gDisableStructs lsls r1, r2, 3 subs r1, r2 lsls r1, 2 @@ -3939,17 +3939,17 @@ _08041D66: b _08042162 _08041D7A: adds r0, r2, 0 - bl b_cancel_multi_turn_move_maybe - ldr r2, =gUnknown_02024280 + bl CancelMultiTurnMoves + ldr r2, =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 12 orrs r0, r1 str r0, [r2] - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0 strb r0, [r1, 0x5] - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB6AD str r0, [r1] ldr r2, =gBattleMoveFlags @@ -3961,7 +3961,7 @@ _08041D7A: .pool _08041DC4: ldr r1, =gBattleMons - ldr r3, =gUnknown_0202420B + ldr r3, =gBankAttacker ldrb r2, [r3] movs r0, 0x58 muls r0, r2 @@ -3976,7 +3976,7 @@ _08041DC4: ldr r0, =0xffbfffff ands r1, r0 str r1, [r2] - ldr r2, =gUnknown_020242BC + ldr r2, =gDisableStructs ldrb r1, [r3] lsls r0, r1, 3 subs r0, r1 @@ -3985,11 +3985,11 @@ _08041DC4: movs r1, 0 strb r1, [r0, 0x19] ldrb r0, [r3] - bl b_cancel_multi_turn_move_maybe - ldr r1, =gUnknown_02024214 + bl CancelMultiTurnMoves + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082D9462 str r0, [r1] - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 12 @@ -3998,7 +3998,7 @@ _08041DC4: movs r7, 0x1 mov r9, r7 _08041E10: - ldr r1, =gUnknown_0202449C + ldr r1, =gBattleStruct ldr r0, [r1] ldr r3, =0x000001a3 adds r2, r0, r3 @@ -4006,7 +4006,7 @@ _08041E10: .pool _08041E40: ldr r1, =gBattleMons - ldr r3, =gUnknown_0202420B + ldr r3, =gBankAttacker ldrb r2, [r3] movs r0, 0x58 muls r0, r2 @@ -4021,7 +4021,7 @@ _08041E40: negs r0, r0 ands r1, r0 str r1, [r2] - ldr r0, =gUnknown_0202433C + ldr r0, =gProtectStructs ldrb r2, [r3] lsls r2, 4 adds r2, r0 @@ -4030,11 +4030,11 @@ _08041E40: orrs r0, r1 strb r0, [r2, 0x2] ldrb r0, [r3] - bl b_cancel_multi_turn_move_maybe - ldr r1, =gUnknown_02024214 + bl CancelMultiTurnMoves + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB29B str r0, [r1] - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 12 @@ -4043,43 +4043,43 @@ _08041E40: movs r4, 0x1 mov r9, r4 _08041E8C: - ldr r1, =gUnknown_0202449C + ldr r1, =gBattleStruct ldr r0, [r1] ldr r7, =0x000001a3 adds r2, r0, r7 b _0804216A .pool _08041EB8: - ldr r0, =gUnknown_020242BC - ldr r3, =gUnknown_0202420B + ldr r0, =gDisableStructs + ldr r3, =gBankAttacker ldrb r2, [r3] lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r0 - ldr r0, =gUnknown_020241EA + ldr r0, =gCurrentMove ldrh r1, [r1, 0x4] ldrh r0, [r0] cmp r1, r0 bne _08041F04 cmp r1, 0 beq _08041F04 - ldr r0, =gUnknown_0202433C + ldr r0, =gProtectStructs lsls r2, 4 adds r2, r0 ldrb r0, [r2, 0x1] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x1] - ldr r1, =gUnknown_02024474 + ldr r1, =gBattleScripting ldrb r0, [r3] strb r0, [r1, 0x17] ldrb r0, [r3] - bl b_cancel_multi_turn_move_maybe - ldr r1, =gUnknown_02024214 + bl CancelMultiTurnMoves + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DAE14 str r0, [r1] - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 12 @@ -4088,15 +4088,15 @@ _08041EB8: movs r0, 0x1 mov r9, r0 _08041F04: - ldr r1, =gUnknown_0202449C + ldr r1, =gBattleStruct ldr r0, [r1] ldr r3, =0x000001a3 adds r2, r0, r3 b _0804216A .pool _08041F38: - ldr r0, =gUnknown_020242BC - ldr r4, =gUnknown_0202420B + ldr r0, =gDisableStructs + ldr r4, =gBankAttacker ldrb r3, [r4] lsls r1, r3, 3 subs r1, r3 @@ -4107,7 +4107,7 @@ _08041F38: cmp r0, 0 beq _08041F8C ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA + ldr r0, =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -4116,7 +4116,7 @@ _08041F38: ldrb r0, [r0, 0x1] cmp r0, 0 bne _08041F8C - ldr r0, =gUnknown_0202433C + ldr r0, =gProtectStructs lsls r2, r3, 4 adds r2, r0 ldrb r0, [r2, 0x2] @@ -4124,11 +4124,11 @@ _08041F38: orrs r0, r1 strb r0, [r2, 0x2] ldrb r0, [r4] - bl b_cancel_multi_turn_move_maybe - ldr r1, =gUnknown_02024214 + bl CancelMultiTurnMoves + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB0A4 str r0, [r1] - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 12 @@ -4137,22 +4137,22 @@ _08041F38: movs r4, 0x1 mov r9, r4 _08041F8C: - ldr r1, =gUnknown_0202449C + ldr r1, =gBattleStruct ldr r0, [r1] ldr r7, =0x000001a3 adds r2, r0, r7 b _0804216A .pool _08041FC0: - ldr r4, =gUnknown_0202420B + ldr r4, =gBankAttacker ldrb r0, [r4] - ldr r1, =gUnknown_020241EA + ldr r1, =gCurrentMove ldrh r1, [r1] bl sub_8040130 lsls r0, 24 cmp r0, 0 beq _08041FFE - ldr r0, =gUnknown_0202433C + ldr r0, =gProtectStructs ldrb r2, [r4] lsls r2, 4 adds r2, r0 @@ -4161,11 +4161,11 @@ _08041FC0: orrs r0, r1 strb r0, [r2, 0x1] ldrb r0, [r4] - bl b_cancel_multi_turn_move_maybe - ldr r1, =gUnknown_02024214 + bl CancelMultiTurnMoves + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB176 str r0, [r1] - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 12 @@ -4174,7 +4174,7 @@ _08041FC0: movs r0, 0x1 mov r9, r0 _08041FFE: - ldr r1, =gUnknown_0202449C + ldr r1, =gBattleStruct ldr r0, [r1] ldr r3, =0x000001a3 adds r2, r0, r3 @@ -4182,7 +4182,7 @@ _08041FFE: .pool _08042028: ldr r7, =gBattleMons - ldr r5, =gUnknown_0202420B + ldr r5, =gBankAttacker ldrb r0, [r5] movs r6, 0x58 muls r0, r6 @@ -4210,17 +4210,17 @@ _08042028: ands r2, r0 cmp r2, 0 beq _0804207C - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0 strb r0, [r1, 0x5] bl b_movescr_stack_push_cursor b _080420C6 .pool _0804207C: - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication movs r4, 0x1 strb r1, [r0, 0x5] - ldr r1, =gEnemyMonIndex + ldr r1, =gBankTarget ldrb r0, [r5] strb r0, [r1] ldrb r0, [r5] @@ -4240,33 +4240,33 @@ _0804207C: bl sub_806957C ldr r1, =gBattleMoveDamage str r0, [r1] - ldr r0, =gUnknown_0202433C + ldr r0, =gProtectStructs ldrb r1, [r5] lsls r1, 4 adds r1, r0 ldrb r0, [r1, 0x1] orrs r0, r4 strb r0, [r1, 0x1] - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 12 orrs r0, r1 str r0, [r2] _080420C6: - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB2BD b _080420F0 .pool _080420E8: bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB300 _080420F0: str r0, [r1] movs r4, 0x1 mov r9, r4 - ldr r7, =gUnknown_0202449C + ldr r7, =gBattleStruct mov r8, r7 _080420FA: mov r1, r8 @@ -4277,7 +4277,7 @@ _080420FA: .pool _08042114: ldr r1, =gBattleMons - ldr r4, =gUnknown_0202420B + ldr r4, =gBankAttacker ldrb r2, [r4] movs r0, 0x58 muls r0, r2 @@ -4295,7 +4295,7 @@ _08042114: ands r1, r0 cmp r1, 0 bne _08042162 - ldr r0, =gUnknown_0202433C + ldr r0, =gProtectStructs ldrb r2, [r4] lsls r2, 4 adds r2, r0 @@ -4303,10 +4303,10 @@ _08042114: movs r1, 0x80 orrs r0, r1 strb r0, [r2] - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB28B str r0, [r1] - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 12 @@ -4316,7 +4316,7 @@ _0804215E: movs r3, 0x1 mov r9, r3 _08042162: - ldr r1, =gUnknown_0202449C + ldr r1, =gBattleStruct ldr r0, [r1] ldr r4, =0x000001a3 adds r2, r0, r4 @@ -4329,7 +4329,7 @@ _0804216A: .pool _08042194: ldr r1, =gBattleMons - ldr r4, =gUnknown_0202420B + ldr r4, =gBankAttacker ldrb r2, [r4] movs r0, 0x58 muls r0, r2 @@ -4343,7 +4343,7 @@ _08042194: beq _0804220E lsrs r0, r1, 16 bl CountTrailingZeroBits - ldr r1, =gUnknown_02024474 + ldr r1, =gBattleScripting strb r0, [r1, 0x17] bl Random movs r1, 0x1 @@ -4356,13 +4356,13 @@ _08042194: _080421D8: ldr r0, =gUnknown_082DB334 bl b_movescr_stack_push - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 12 orrs r0, r1 str r0, [r2] - ldr r0, =gUnknown_0202433C + ldr r0, =gProtectStructs ldrb r2, [r4] lsls r2, 4 adds r2, r0 @@ -4371,14 +4371,14 @@ _080421D8: orrs r0, r1 strb r0, [r2, 0x1] ldrb r0, [r4] - bl b_cancel_multi_turn_move_maybe + bl CancelMultiTurnMoves _08042200: - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB327 str r0, [r1] movs r7, 0x1 mov r9, r7 - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct mov r8, r0 _0804220E: mov r1, r8 @@ -4389,7 +4389,7 @@ _0804220E: .pool _08042234: ldr r1, =gBattleMons - ldr r6, =gUnknown_0202420B + ldr r6, =gBankAttacker ldrb r0, [r6] movs r5, 0x58 muls r0, r5 @@ -4413,7 +4413,7 @@ _08042234: ands r0, r4 cmp r0, 0 beq _08042280 - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DAD71 b _08042300 .pool @@ -4424,7 +4424,7 @@ _08042280: ldr r0, [r0] cmp r0, 0 beq _080422FC - ldr r1, =gUnknown_020241EA + ldr r1, =gCurrentMove movs r0, 0x75 strh r0, [r1] ldrb r0, [r6] @@ -4434,13 +4434,13 @@ _08042280: lsls r0, 1 mov r1, r10 str r0, [r1] - ldr r4, =gEnemyMonIndex + ldr r4, =gBankTarget ldr r1, =gUnknown_02024288 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] strb r0, [r4] - ldr r0, =gUnknown_02024210 + ldr r0, =gAbsentBankFlags ldrb r1, [r0] ldr r2, =gBitTable ldrb r0, [r4] @@ -4452,18 +4452,18 @@ _08042280: beq _080422CA movs r0, 0x75 movs r1, 0x1 - bl sub_80458E0 + bl GetMoveTarget strb r0, [r4] _080422CA: - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DAD7C str r0, [r1] - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct mov r8, r2 b _08042302 .pool _080422FC: - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DADC4 _08042300: str r0, [r1] @@ -4479,7 +4479,7 @@ _08042306: .pool _0804231C: ldr r1, =gBattleMons - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -4491,7 +4491,7 @@ _0804231C: cmp r0, 0 beq _08042368 ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA + ldr r0, =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -4505,16 +4505,16 @@ _0804231C: ands r3, r0 str r3, [r4] bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB277 str r0, [r1] - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x5] _08042360: movs r0, 0x2 mov r9, r0 - ldr r1, =gUnknown_0202449C + ldr r1, =gBattleStruct mov r8, r1 _08042368: mov r2, r8 @@ -4538,8 +4538,8 @@ _08042388: mov r0, r9 cmp r0, 0x2 bne _080423B4 - ldr r4, =gUnknown_02024064 - ldr r0, =gUnknown_0202420B + ldr r4, =gActiveBank + ldr r0, =gBankAttacker ldrb r0, [r0] strb r0, [r4] ldrb r1, [r4] @@ -4599,7 +4599,7 @@ _08042424: cmp r0, 0 beq _0804249C adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 ldr r1, =gEnemyParty mov r8, r1 @@ -4661,7 +4661,7 @@ _0804249C: cmp r1, 0 beq _080424E4 adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080424D0 @@ -4689,7 +4689,7 @@ _080424E4: lsls r0, 24 lsrs r7, r0, 24 adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 ldr r1, =gEnemyParty mov r8, r1 @@ -4756,7 +4756,7 @@ _0804256C: cmp r1, 0 beq _080425DA adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -4805,17 +4805,17 @@ _080425D2: b _0804269E _080425DA: adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08042608 movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r7, r0, 24 movs r0, 0x3 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r6, r0, 24 ldr r2, =gEnemyParty @@ -4824,11 +4824,11 @@ _080425DA: .pool _08042608: movs r0, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r7, r0, 24 movs r0, 0x2 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gPlayerParty @@ -4837,7 +4837,7 @@ _08042620: mov r1, r10 cmp r1, 0x6 bne _08042630 - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r7, 1 adds r0, r1 ldrb r0, [r0] @@ -4846,7 +4846,7 @@ _08042630: mov r2, r9 cmp r2, 0x6 bne _08042640 - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r6, 1 adds r0, r1 ldrb r0, [r0] @@ -4879,7 +4879,7 @@ _08042642: beq _08042692 cmp r4, r9 beq _08042692 - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r1, [r0] adds r0, r7, r1 adds r0, 0x5C @@ -4940,7 +4940,7 @@ castform_switch: @ 80426BC movs r1, 0 movs r2, 0xD movs r3, 0 - bl ability_something + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 bne _0804270E @@ -4949,7 +4949,7 @@ castform_switch: @ 80426BC movs r1, 0 movs r2, 0x4D movs r3, 0 - bl ability_something + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 beq _08042734 @@ -4976,7 +4976,7 @@ _08042734: movs r1, 0 movs r2, 0xD movs r3, 0 - bl ability_something + bl AbilityBattleEffects lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -4986,7 +4986,7 @@ _08042734: movs r1, 0 movs r2, 0x4D movs r3, 0 - bl ability_something + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 beq _08042764 @@ -5096,8 +5096,8 @@ _08042818: .pool thumb_func_end castform_switch - thumb_func_start ability_something -ability_something: @ 8042828 + thumb_func_start AbilityBattleEffects +AbilityBattleEffects: @ 8042828 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -5120,8 +5120,8 @@ ability_something: @ 8042828 lsrs r4, 16 movs r0, 0 mov r9, r0 - ldr r5, =gUnknown_0202420B - ldr r1, =gUnknown_0202406C + ldr r5, =gBankAttacker + ldr r1, =gNoOfAllBanks ldrb r0, [r5] ldrb r1, [r1] cmp r0, r1 @@ -5130,11 +5130,11 @@ ability_something: @ 8042828 strb r1, [r5] _08042864: ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08042894 - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID ldrb r0, [r5] lsls r0, 1 adds r0, r1 @@ -5145,7 +5145,7 @@ _08042864: b _080428A4 .pool _08042894: - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID ldrb r0, [r5] lsls r0, 1 adds r0, r1 @@ -5155,8 +5155,8 @@ _08042894: ldr r0, =gEnemyParty _080428A4: adds r7, r1, r0 - ldr r5, =gEnemyMonIndex - ldr r1, =gUnknown_0202406C + ldr r5, =gBankTarget + ldr r1, =gNoOfAllBanks ldrb r0, [r5] ldrb r1, [r1] cmp r0, r1 @@ -5165,11 +5165,11 @@ _080428A4: strb r2, [r5] _080428B6: ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080428E8 - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID ldrb r0, [r5] lsls r0, 1 adds r0, r1 @@ -5180,7 +5180,7 @@ _080428B6: b _080428F8 .pool _080428E8: - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID ldrb r0, [r5] lsls r0, 1 adds r0, r1 @@ -5221,13 +5221,13 @@ _0804293A: mov r3, r8 cmp r3, 0 beq _08042958 - ldr r0, =gUnknown_0202420A + ldr r0, =gLastUsedAbility strb r3, [r0] adds r7, r0, 0 b _0804296E .pool _08042958: - ldr r2, =gUnknown_0202420A + ldr r2, =gLastUsedAbility ldr r1, =gBattleMons movs r0, 0x58 mov r5, r10 @@ -5245,10 +5245,10 @@ _0804296E: b _08042984 .pool _08042980: - ldr r0, =gUnknown_020241EA + ldr r0, =gCurrentMove ldrh r5, [r0] _08042984: - ldr r1, =gUnknown_0202449C + ldr r1, =gBattleStruct ldr r0, [r1] ldrb r0, [r0, 0x13] mov r8, r1 @@ -5300,8 +5300,8 @@ _080429C8: .4byte _080443EC .4byte _08044196 _08042A18: - ldr r2, =gUnknown_0202420B - ldr r0, =gUnknown_0202406C + ldr r2, =gBankAttacker + ldr r0, =gNoOfAllBanks ldrb r1, [r2] adds r5, r0, 0 ldrb r3, [r5] @@ -5401,7 +5401,7 @@ _08042AE0: bne _08042B4C movs r0, 0x5 strh r0, [r2] - ldr r1, =gUnknown_02024474 + ldr r1, =gBattleScripting movs r0, 0xA strb r0, [r1, 0x10] mov r2, r10 @@ -5417,7 +5417,7 @@ _08042B04: cmp r0, 0 bne _08042B4C strh r2, [r3] - ldr r1, =gUnknown_02024474 + ldr r1, =gBattleScripting movs r0, 0xC strb r0, [r1, 0x10] mov r3, r10 @@ -5433,7 +5433,7 @@ _08042B28: cmp r0, 0 bne _08042B4C strh r2, [r3] - ldr r1, =gUnknown_02024474 + ldr r1, =gBattleScripting movs r0, 0xB strb r0, [r1, 0x10] mov r5, r10 @@ -5451,7 +5451,7 @@ _08042B4C: bl _0804443A _08042B56: bl weather_get_current - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication strb r0, [r1, 0x5] ldr r0, =gUnknown_082DACE7 bl b_push_move_exec @@ -5470,7 +5470,7 @@ _08042B88: strh r0, [r2] ldr r0, =gUnknown_082DB430 bl b_push_move_exec - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting mov r1, r10 strb r1, [r0, 0x17] bl _080443D0 @@ -5488,7 +5488,7 @@ _08042BB8: strh r0, [r2] ldr r0, =gUnknown_082DB470 bl b_push_move_exec - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting mov r2, r10 strb r2, [r0, 0x17] bl _080443D0 @@ -5506,13 +5506,13 @@ _08042BE8: strh r0, [r2] ldr r0, =gUnknown_082DB52A bl b_push_move_exec - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting mov r3, r10 strb r3, [r0, 0x17] bl _080443D0 .pool _08042C08: - ldr r0, =gUnknown_0202437C + ldr r0, =gSpecialStatuses mov r5, r10 lsls r2, r5, 2 adds r1, r2, r5 @@ -5524,7 +5524,7 @@ _08042C08: bge _08042C20 bl _0804441E _08042C20: - ldr r1, =gUnknown_020242AC + ldr r1, =gStatuses3 adds r1, r2, r1 ldr r0, [r1] movs r2, 0x80 @@ -5547,13 +5547,13 @@ _08042C3C: _08042C50: ldr r0, =gUnknown_082DB4A9 bl b_push_move_exec - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting mov r1, r10 strb r1, [r0, 0x17] bl _080442E2 .pool _08042C68: - ldr r0, =gUnknown_0202437C + ldr r0, =gSpecialStatuses mov r3, r10 lsls r2, r3, 2 adds r1, r2, r3 @@ -5565,7 +5565,7 @@ _08042C68: bge _08042C80 bl _0804441E _08042C80: - ldr r1, =gUnknown_020242AC + ldr r1, =gStatuses3 adds r1, r2, r1 ldr r0, [r1] movs r2, 0x80 @@ -5598,7 +5598,7 @@ _08042CC4: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r6, r0 bcc _08042CB0 @@ -5616,7 +5616,7 @@ _08042CDC: bne _08042CF2 bl _0804441E _08042CF2: - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker mov r1, r10 strb r1, [r0] ldrb r5, [r7] @@ -5645,7 +5645,7 @@ _08042D22: movs r1, 0 movs r2, 0xD movs r3, 0 - bl ability_something + bl AbilityBattleEffects lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -5657,7 +5657,7 @@ _08042D3E: movs r1, 0 movs r2, 0x4D movs r3, 0 - bl ability_something + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 beq _08042D56 @@ -5719,7 +5719,7 @@ _08042DCA: ands r0, r1 cmp r0, 0 beq _08042DDC - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldr r1, =gUnknown_0831BC70 bl StringCopy _08042DDC: @@ -5728,7 +5728,7 @@ _08042DDC: ands r0, r1 cmp r0, 0 beq _08042DEE - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldr r1, =gUnknown_0831BC78 bl StringCopy _08042DEE: @@ -5737,7 +5737,7 @@ _08042DEE: ands r0, r1 cmp r0, 0 beq _08042E00 - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldr r1, =gUnknown_0831BC80 bl StringCopy _08042E00: @@ -5746,7 +5746,7 @@ _08042E00: ands r0, r1 cmp r0, 0 beq _08042E12 - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldr r1, =gUnknown_0831BC88 bl StringCopy _08042E12: @@ -5755,7 +5755,7 @@ _08042E12: ands r0, r1 cmp r0, 0 beq _08042E24 - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldr r1, =gUnknown_0831BC90 bl StringCopy _08042E24: @@ -5767,8 +5767,8 @@ _08042E24: ldr r2, =0xf7ffffff ands r0, r2 str r0, [r1] - ldr r0, =gUnknown_02024474 - ldr r4, =gUnknown_02024064 + ldr r0, =gBattleScripting + ldr r4, =gActiveBank mov r3, r10 strb r3, [r4] strb r3, [r0, 0x17] @@ -5792,7 +5792,7 @@ _08042E84: ble _08042E92 bl _0804441E _08042E92: - ldr r0, =gUnknown_020242BC + ldr r0, =gDisableStructs mov r5, r10 lsls r1, r5, 3 subs r1, r5 @@ -5806,7 +5806,7 @@ _08042EA8: adds r0, r2, 0x1 movs r1, 0 strb r0, [r4, 0x1B] - ldr r4, =gUnknown_02024474 + ldr r4, =gBattleScripting movs r0, 0x11 strb r0, [r4, 0x10] strb r1, [r4, 0x11] @@ -5816,7 +5816,7 @@ _08042EA8: bl _080443D0 .pool _08042ED0: - ldr r2, =gUnknown_020242BC + ldr r2, =gDisableStructs ldrb r0, [r0] lsls r1, r0, 3 subs r1, r0 @@ -5872,7 +5872,7 @@ _08042F2C: bl _0804441E _08042F3C: ldr r1, =gBattleMons - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -5884,14 +5884,14 @@ _08042F3C: ands r0, r1 cmp r0, 0 beq _08042F62 - ldr r0, =gUnknown_02024280 + ldr r0, =gHitMarker ldr r1, [r0] movs r2, 0x80 lsls r2, 4 orrs r1, r2 str r1, [r0] _08042F62: - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB61F str r0, [r1] movs r0, 0x1 @@ -5930,8 +5930,8 @@ _08042FB0: bne _08042FC2 b _08043126 _08042FC2: - ldr r1, =gUnknown_0202433C - ldr r0, =gUnknown_0202420B + ldr r1, =gProtectStructs + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -5939,12 +5939,12 @@ _08042FC2: lsls r0, 28 cmp r0, 0 bge _08042FF0 - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB56F b _08042FF4 .pool _08042FF0: - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB56E _08042FF4: str r0, [r1] @@ -5966,8 +5966,8 @@ _0804300A: bne _0804301C b _08043126 _0804301C: - ldr r1, =gUnknown_0202433C - ldr r0, =gUnknown_0202420B + ldr r1, =gProtectStructs + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -5975,12 +5975,12 @@ _0804301C: lsls r0, 28 cmp r0, 0 bge _08043048 - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB56F b _0804304C .pool _08043048: - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB56E _0804304C: str r0, [r1] @@ -6003,7 +6003,7 @@ _0804305C: ands r0, r1 cmp r0, 0 bne _08043126 - ldr r2, =gUnknown_020244A8 + ldr r2, =gBattleResources ldr r0, [r2] ldr r0, [r0, 0x4] mov r5, r10 @@ -6015,10 +6015,10 @@ _0804305C: adds r5, r1, 0 cmp r3, 0 bne _080430EC - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication strb r3, [r0, 0x5] - ldr r1, =gUnknown_0202433C - ldr r0, =gUnknown_0202420B + ldr r1, =gProtectStructs + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -6026,12 +6026,12 @@ _0804305C: lsls r0, 28 cmp r0, 0 bge _080430C8 - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB5A8 b _080430CC .pool _080430C8: - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB5A7 _080430CC: str r0, [r1] @@ -6047,10 +6047,10 @@ _080430CC: b _08043126 .pool _080430EC: - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication strb r4, [r0, 0x5] - ldr r1, =gUnknown_0202433C - ldr r0, =gUnknown_0202420B + ldr r1, =gProtectStructs + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -6058,12 +6058,12 @@ _080430EC: lsls r0, 28 cmp r0, 0 bge _0804311C - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB5A8 b _08043120 .pool _0804311C: - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB5A7 _08043120: str r0, [r1] @@ -6086,8 +6086,8 @@ _08043130: ldrh r5, [r1, 0x28] cmp r0, r5 bne _0804318C - ldr r1, =gUnknown_0202433C - ldr r0, =gUnknown_0202420B + ldr r1, =gProtectStructs + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -6095,13 +6095,13 @@ _08043130: lsls r0, 28 cmp r0, 0 bge _08043178 - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB592 str r0, [r1] bl _0804441E .pool _08043178: - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB591 str r0, [r1] bl _0804441E @@ -6207,8 +6207,8 @@ _080432A0: bne _080432B4 bl _0804441E _080432B4: - ldr r2, =gUnknown_0202437C - ldr r0, =gEnemyMonIndex + ldr r2, =gSpecialStatuses + ldr r0, =gBankTarget ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -6254,7 +6254,7 @@ _08043304: _0804330E: strb r3, [r4] strb r3, [r2] - ldr r1, =gUnknown_02022F58 + ldr r1, =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x3 @@ -6263,7 +6263,7 @@ _0804330E: movs r0, 0xFF strb r0, [r1, 0x3] bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB64D str r0, [r1] bl _080443D0 @@ -6278,7 +6278,7 @@ _08043350: bl _0804441E _08043360: ldr r1, =gBattleMons - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -6288,7 +6288,7 @@ _08043360: bne _08043376 bl _0804441E _08043376: - ldr r0, =gUnknown_0202433C + ldr r0, =gProtectStructs lsls r1, r2, 4 adds r1, r0 ldrb r0, [r1, 0x1] @@ -6297,8 +6297,8 @@ _08043376: beq _08043388 bl _0804441E _08043388: - ldr r2, =gUnknown_0202437C - ldr r0, =gEnemyMonIndex + ldr r2, =gSpecialStatuses + ldr r0, =gBankTarget ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -6339,7 +6339,7 @@ _080433CA: str r2, [r1] _080433D8: bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB654 str r0, [r1] bl _080443D0 @@ -6354,7 +6354,7 @@ _08043410: bl _0804441E _08043420: ldr r1, =gBattleMons - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -6364,7 +6364,7 @@ _08043420: bne _08043436 bl _0804441E _08043436: - ldr r0, =gUnknown_0202433C + ldr r0, =gProtectStructs lsls r1, r2, 4 adds r1, r0 ldrb r0, [r1, 0x1] @@ -6373,8 +6373,8 @@ _08043436: beq _08043448 bl _0804441E _08043448: - ldr r2, =gUnknown_0202437C - ldr r0, =gEnemyMonIndex + ldr r2, =gSpecialStatuses + ldr r0, =gBankTarget ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -6415,7 +6415,7 @@ _08043488: beq _080434A0 bl _0804441E _080434A0: - ldr r5, =gUnknown_02024332 + ldr r5, =gBattleCommunication movs r4, 0x3 _080434A4: bl Random @@ -6423,7 +6423,7 @@ _080434A4: strb r0, [r5, 0x3] cmp r0, 0 beq _080434A4 - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication ldrb r0, [r1, 0x3] cmp r0, 0x3 bne _080434BC @@ -6434,10 +6434,10 @@ _080434BC: adds r0, 0x40 strb r0, [r1, 0x3] bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB67C str r0, [r1] - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 6 @@ -6455,7 +6455,7 @@ _08043508: bl _0804441E _08043518: ldr r1, =gBattleMons - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -6465,7 +6465,7 @@ _08043518: bne _0804352E bl _0804441E _0804352E: - ldr r0, =gUnknown_0202433C + ldr r0, =gProtectStructs lsls r1, r2, 4 adds r1, r0 ldrb r0, [r1, 0x1] @@ -6474,8 +6474,8 @@ _0804352E: beq _08043540 bl _0804441E _08043540: - ldr r2, =gUnknown_0202437C - ldr r0, =gEnemyMonIndex + ldr r2, =gSpecialStatuses + ldr r0, =gBankTarget ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -6516,14 +6516,14 @@ _08043580: beq _08043598 bl _0804441E _08043598: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x42 strb r0, [r1, 0x3] bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB67C str r0, [r1] - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 6 @@ -6541,7 +6541,7 @@ _080435E4: bl _0804441E _080435F4: ldr r1, =gBattleMons - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -6551,7 +6551,7 @@ _080435F4: bne _0804360A bl _0804441E _0804360A: - ldr r0, =gUnknown_0202433C + ldr r0, =gProtectStructs lsls r1, r2, 4 adds r1, r0 ldrb r0, [r1, 0x1] @@ -6560,8 +6560,8 @@ _0804360A: beq _0804361C bl _0804441E _0804361C: - ldr r2, =gUnknown_0202437C - ldr r0, =gEnemyMonIndex + ldr r2, =gSpecialStatuses + ldr r0, =gBankTarget ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -6602,14 +6602,14 @@ _0804365C: beq _08043674 bl _0804441E _08043674: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x45 strb r0, [r1, 0x3] bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB67C str r0, [r1] - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 6 @@ -6627,7 +6627,7 @@ _080436C0: bl _0804441E _080436D0: ldr r1, =gBattleMons - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -6637,7 +6637,7 @@ _080436D0: bne _080436E6 bl _0804441E _080436E6: - ldr r0, =gUnknown_0202433C + ldr r0, =gProtectStructs lsls r1, r2, 4 adds r1, r0 ldrb r0, [r1, 0x1] @@ -6658,8 +6658,8 @@ _080436F8: bne _08043710 bl _0804441E _08043710: - ldr r2, =gUnknown_0202437C - ldr r0, =gEnemyMonIndex + ldr r2, =gSpecialStatuses + ldr r0, =gBankTarget ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -6688,14 +6688,14 @@ _08043738: beq _08043750 bl _0804441E _08043750: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x43 strb r0, [r1, 0x3] bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB67C str r0, [r1] - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 6 @@ -6713,7 +6713,7 @@ _0804379C: bl _0804441E _080437AC: ldr r6, =gBattleMons - ldr r3, =gUnknown_0202420B + ldr r3, =gBankAttacker mov r8, r3 ldrb r1, [r3] movs r7, 0x58 @@ -6725,7 +6725,7 @@ _080437AC: bne _080437C6 bl _0804441E _080437C6: - ldr r0, =gUnknown_0202433C + ldr r0, =gProtectStructs lsls r1, 4 adds r1, r0 ldrb r0, [r1, 0x1] @@ -6746,8 +6746,8 @@ _080437D8: bne _080437F0 bl _0804441E _080437F0: - ldr r3, =gUnknown_0202437C - ldr r5, =gEnemyMonIndex + ldr r3, =gSpecialStatuses + ldr r5, =gBankTarget ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 @@ -6854,7 +6854,7 @@ _080438B6: orrs r0, r1 str r0, [r2] bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB66F str r0, [r1] bl _080443D0 @@ -6862,7 +6862,7 @@ _080438B6: _08043908: movs r5, 0 mov r10, r5 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r10, r0 bcc _08043918 @@ -6971,7 +6971,7 @@ _08043A50: bne _08043A6A b _08043B96 _08043A6A: - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldr r1, =gUnknown_0831BC70 b _08043B5C .pool @@ -6990,7 +6990,7 @@ _08043A7C: bne _08043A96 b _08043B96 _08043A96: - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldr r1, =gUnknown_0831BC98 bl StringCopy movs r2, 0x2 @@ -7010,7 +7010,7 @@ _08043AAC: ands r0, r1 cmp r0, 0 beq _08043B96 - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldr r1, =gUnknown_0831BC80 b _08043B5C .pool @@ -7032,7 +7032,7 @@ _08043AD4: ldr r1, =0xf7ffffff ands r0, r1 str r0, [r2] - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldr r1, =gUnknown_0831BC78 bl StringCopy movs r0, 0x1 @@ -7052,7 +7052,7 @@ _08043B10: ands r0, r1 cmp r0, 0 beq _08043B96 - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldr r1, =gUnknown_0831BC88 bl StringCopy movs r2, 0x1 @@ -7072,7 +7072,7 @@ _08043B40: ands r0, r1 cmp r0, 0 beq _08043B96 - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldr r1, =gUnknown_0831BC90 _08043B5C: bl StringCopy @@ -7094,7 +7094,7 @@ _08043B70: ands r0, r1 cmp r0, 0 beq _08043B96 - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldr r1, =gUnknown_0831BCA0 bl StringCopy movs r2, 0x3 @@ -7155,13 +7155,13 @@ _08043BFA: str r0, [r2] _08043BFC: bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB68C str r0, [r1] - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting mov r1, r10 strb r1, [r0, 0x17] - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank strb r1, [r4] ldrb r1, [r4] movs r0, 0x58 @@ -7184,7 +7184,7 @@ _08043C50: lsls r0, 24 lsrs r0, 24 mov r10, r0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r10, r0 bcs _08043C64 @@ -7195,7 +7195,7 @@ _08043C64: _08043C6C: movs r2, 0 mov r10, r2 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r10, r0 bcc _08043C7A @@ -7226,7 +7226,7 @@ _08043CA0: lsls r0, 24 lsrs r0, 24 mov r10, r0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r10, r0 bcc _08043C7C @@ -7238,7 +7238,7 @@ _08043CBC: beq _08043CC4 b _0804441E _08043CC4: - ldr r4, =gUnknown_02024280 + ldr r4, =gHitMarker ldr r1, [r4] movs r0, 0x80 lsls r0, 7 @@ -7266,19 +7266,19 @@ _08043CD4: movs r0, 0x2 strb r0, [r1] _08043CF8: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication mov r2, r8 ldr r0, [r2] adds r0, 0xB2 ldrb r0, [r0] adds r0, 0x40 strb r0, [r1, 0x3] - ldr r1, =gUnknown_02024474 - ldr r0, =gEnemyMonIndex + ldr r1, =gBattleScripting + ldr r0, =gBankTarget ldrb r0, [r0] strb r0, [r1, 0x17] bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB67F str r0, [r1] ldr r0, [r4] @@ -7294,7 +7294,7 @@ _08043D40: beq _08043D48 b _0804441E _08043D48: - ldr r4, =gUnknown_02024280 + ldr r4, =gHitMarker ldr r1, [r4] movs r0, 0x80 lsls r0, 7 @@ -7322,18 +7322,18 @@ _08043D58: movs r0, 0x2 strb r0, [r1] _08043D7C: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication mov r3, r8 ldr r0, [r3] adds r0, 0xB2 ldrb r0, [r0] strb r0, [r1, 0x3] - ldr r1, =gUnknown_02024474 - ldr r0, =gUnknown_0202420B + ldr r1, =gBattleScripting + ldr r0, =gBankAttacker ldrb r0, [r0] strb r0, [r1, 0x17] bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB67F str r0, [r1] ldr r0, [r4] @@ -7345,7 +7345,7 @@ _08043D7C: .pool _08043DC4: movs r4, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r1, [r0] cmp r4, r1 blt _08043DD0 @@ -7353,7 +7353,7 @@ _08043DC4: _08043DD0: ldr r0, =gBattleMons adds r5, r1, 0 - ldr r2, =gUnknown_020242AC + ldr r2, =gStatuses3 adds r3, r0, 0 adds r3, 0x20 movs r6, 0x80 @@ -7377,13 +7377,13 @@ _08043DEE: .pool _08043E08: movs r4, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _08043E14 b _0804441E _08043E14: - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank mov r8, r5 ldr r0, =gBattleMons adds r0, 0x20 @@ -7397,7 +7397,7 @@ _08043E22: beq _08043E2C b _08043FBE _08043E2C: - ldr r0, =gUnknown_020242AC + ldr r0, =gStatuses3 ldr r3, [sp, 0x20] adds r0, r3, r0 ldr r1, [r0] @@ -7411,17 +7411,17 @@ _08043E2C: _08043E42: lsls r0, r4, 24 lsrs r0, 24 - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x1 adds r5, r0, 0 eors r5, r1 ands r5, r1 adds r0, r5, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r6, r0, 24 adds r0, r5, 0x2 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gBattleTypeFlags @@ -7465,7 +7465,7 @@ _08043E74: lsls r1, 1 orrs r5, r1 adds r0, r5, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI mov r2, r8 strb r0, [r2] ldrb r0, [r2] @@ -7482,7 +7482,7 @@ _08043E74: adds r0, r5 adds r0, 0x20 ldrb r0, [r0] - ldr r2, =gUnknown_0202420A + ldr r2, =gLastUsedAbility strb r0, [r2] b _08043FAC .pool @@ -7572,7 +7572,7 @@ _08043F84: strb r1, [r0] ldrb r0, [r2] _08043FA8: - ldr r1, =gUnknown_0202420A + ldr r1, =gLastUsedAbility strb r0, [r1] _08043FAC: mov r0, r9 @@ -7593,7 +7593,7 @@ _08043FBE: adds r5, 0x4 str r5, [sp, 0x20] adds r4, 0x1 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 bge _08043FD6 @@ -7603,7 +7603,7 @@ _08043FD6: .pool _08043FE4: movs r4, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r1, [r0] cmp r4, r1 blt _08043FF0 @@ -7611,7 +7611,7 @@ _08043FE4: _08043FF0: ldr r0, =gBattleMons adds r5, r1, 0 - ldr r2, =gUnknown_020242AC + ldr r2, =gStatuses3 adds r3, r0, 0 adds r3, 0x20 movs r6, 0x80 @@ -7635,11 +7635,11 @@ _0804400E: .pool _08044028: mov r0, r10 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _0804403E @@ -7649,7 +7649,7 @@ _0804403E: _08044040: lsls r0, r4, 24 lsrs r0, 24 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 adds r3, r4, 0x1 @@ -7662,14 +7662,14 @@ _08044040: ldrb r0, [r0] cmp r0, r6 bne _0804406A - ldr r0, =gUnknown_0202420A + ldr r0, =gLastUsedAbility strb r6, [r0] lsls r0, r3, 24 lsrs r0, 24 mov r9, r0 _0804406A: adds r4, r3, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _08044040 @@ -7677,11 +7677,11 @@ _0804406A: .pool _08044084: mov r0, r10 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _0804409A @@ -7691,7 +7691,7 @@ _0804409A: _0804409C: lsls r0, r4, 24 lsrs r0, 24 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 adds r3, r4, 0x1 @@ -7704,14 +7704,14 @@ _0804409C: ldrb r0, [r0] cmp r0, r6 bne _080440C6 - ldr r0, =gUnknown_0202420A + ldr r0, =gLastUsedAbility strb r6, [r0] lsls r0, r3, 24 lsrs r0, 24 mov r9, r0 _080440C6: adds r4, r3, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _0804409C @@ -7724,7 +7724,7 @@ _080440E0: cmp r0, 0xFE beq _0804413C movs r4, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks adds r5, r0, 0 ldrb r0, [r5] cmp r4, r0 @@ -7736,13 +7736,13 @@ _080440F8: .pool _08044104: movs r4, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _08044110 b _0804441E _08044110: - ldr r5, =gUnknown_020242AC + ldr r5, =gStatuses3 movs r2, 0x80 lsls r2, 9 adds r1, r0, 0 @@ -7765,13 +7765,13 @@ _0804412C: .pool _0804413C: movs r4, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _08044148 b _0804441E _08044148: - ldr r5, =gUnknown_020242AC + ldr r5, =gStatuses3 movs r2, 0x80 lsls r2, 10 adds r1, r0, 0 @@ -7813,7 +7813,7 @@ _0804418C: b _0804441E _08044196: movs r4, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _080441A2 @@ -7849,7 +7849,7 @@ _080441CC: .pool _080441DC: movs r4, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _080441E8 @@ -7858,7 +7858,7 @@ _080441E8: ldr r7, =gBattleMons adds r1, r0, 0 movs r5, 0x58 - ldr r2, =gUnknown_0202420A + ldr r2, =gLastUsedAbility _080441F0: adds r0, r4, 0 muls r0, r5 @@ -7882,11 +7882,11 @@ _0804420C: .pool _08044220: mov r0, r10 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _08044236 @@ -7896,7 +7896,7 @@ _08044236: _08044238: lsls r0, r4, 24 lsrs r0, 24 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, r5 @@ -7908,7 +7908,7 @@ _08044238: ldrb r0, [r0] cmp r0, r6 bne _08044264 - ldr r0, =gUnknown_0202420A + ldr r0, =gLastUsedAbility strb r6, [r0] mov r0, r9 adds r0, 0x1 @@ -7917,7 +7917,7 @@ _08044238: mov r9, r0 _08044264: adds r4, 0x1 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _08044238 @@ -7925,11 +7925,11 @@ _08044264: .pool _0804427C: mov r0, r10 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _08044292 @@ -7939,7 +7939,7 @@ _08044292: _08044294: lsls r0, r4, 24 lsrs r0, 24 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, r5 @@ -7951,7 +7951,7 @@ _08044294: ldrb r0, [r0] cmp r0, r6 bne _080442C0 - ldr r0, =gUnknown_0202420A + ldr r0, =gLastUsedAbility strb r6, [r0] mov r0, r9 adds r0, 0x1 @@ -7960,7 +7960,7 @@ _08044294: mov r9, r0 _080442C0: adds r4, 0x1 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _08044294 @@ -7969,10 +7969,10 @@ _080442C0: _080442D8: ldr r0, =gUnknown_082DB4A9 bl b_push_move_exec - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting strb r6, [r0, 0x17] _080442E2: - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] adds r0, 0x7F mov r1, r9 @@ -7983,10 +7983,10 @@ _080442E2: _080442FC: ldr r0, =gUnknown_082DB4A9 bl b_push_move_exec - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting mov r5, r10 strb r5, [r0, 0x17] - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] adds r0, 0x7F mov r1, r9 @@ -8007,24 +8007,24 @@ _08044324: _08044340: ldr r0, =gUnknown_082DB452 bl b_push_move_exec - ldr r1, =gUnknown_020242AC + ldr r1, =gStatuses3 ldr r0, [sp, 0x18] adds r1, r0, r1 ldr r0, [r1] ldr r2, =0xffefffff ands r0, r2 str r0, [r1] - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting strb r4, [r0, 0x17] - ldr r1, =gUnknown_02022F58 + ldr r1, =gBattleTextBuff1 movs r4, 0xFD strb r4, [r1] movs r0, 0x4 strb r0, [r1, 0x1] - ldr r2, =gUnknown_02024064 + ldr r2, =gActiveBank ldrb r0, [r2] strb r0, [r1, 0x2] - ldr r3, =gUnknown_0202406E + ldr r3, =gBattlePartyID ldrb r0, [r2] lsls r0, 1 adds r0, r3 @@ -8032,11 +8032,11 @@ _08044340: strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] - ldr r1, =gUnknown_02022F68 + ldr r1, =gBattleTextBuff2 strb r4, [r1] movs r0, 0x9 strb r0, [r1, 0x1] - ldr r0, =gUnknown_0202420A + ldr r0, =gLastUsedAbility ldrb r0, [r0] strb r0, [r1, 0x2] movs r0, 0x1 @@ -8051,11 +8051,11 @@ _080443B4: ands r0, r1 str r0, [r2] bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB4C1 str r0, [r1] _080443C8: - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] adds r0, 0xD8 strb r4, [r0] @@ -8069,7 +8069,7 @@ _080443D0: .pool _080443EC: movs r4, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r1, [r0] cmp r4, r1 bge _0804441E @@ -8077,7 +8077,7 @@ _080443EC: adds r2, r1, 0 adds r1, r0, 0 adds r1, 0x20 - ldr r3, =gUnknown_0202420A + ldr r3, =gLastUsedAbility _08044400: ldrb r0, [r1] cmp r0, r6 @@ -8103,13 +8103,13 @@ _08044424: ldr r2, [sp, 0x4] cmp r2, 0xB bhi _0804443A - ldr r1, =gUnknown_0202420A + ldr r1, =gLastUsedAbility ldrb r0, [r1] cmp r0, 0xFF beq _0804443A adds r1, r0, 0 mov r0, r10 - bl b_history__record_ability_usage_of_player + bl RecordAbilityBattle _0804443A: mov r0, r9 add sp, 0x28 @@ -8121,13 +8121,13 @@ _0804443A: pop {r1} bx r1 .pool - thumb_func_end ability_something + thumb_func_end AbilityBattleEffects thumb_func_start b_call_bc_move_exec b_call_bc_move_exec: @ 8044458 - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr str r0, [r1] - ldr r0, =gUnknown_020244A8 + ldr r0, =gBattleResources ldr r0, [r0] ldr r2, [r0, 0xC] adds r3, r2, 0 @@ -8138,12 +8138,12 @@ b_call_bc_move_exec: @ 8044458 lsls r0, 24 lsrs r0, 22 adds r2, r0 - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, [r1] str r0, [r2] ldr r0, =bc_move_exec_returning str r0, [r1] - ldr r1, =gUnknown_02024083 + ldr r1, =gFightStateTracker movs r0, 0 strb r0, [r1] bx lr @@ -8155,9 +8155,9 @@ b_push_move_exec: @ 8044498 push {r4,lr} adds r4, r0, 0 bl b_movescr_stack_push_cursor - ldr r0, =gUnknown_02024214 + ldr r0, =gBattlescriptCurrInstr str r4, [r0] - ldr r0, =gUnknown_020244A8 + ldr r0, =gBattleResources ldr r0, [r0] ldr r2, [r0, 0xC] adds r3, r2, 0 @@ -8168,7 +8168,7 @@ b_push_move_exec: @ 8044498 lsls r0, 24 lsrs r0, 22 adds r2, r0 - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, [r1] str r0, [r2] ldr r0, =sub_803E08C @@ -8211,7 +8211,7 @@ berry_effects_maybe: @ 80444DC lsrs r0, 16 cmp r0, 0xAF bne _08044534 - ldr r1, =gUnknown_02024404 + ldr r1, =gEnigmaBerries lsls r0, r7, 3 subs r0, r7 lsls r0, 2 @@ -8222,17 +8222,17 @@ berry_effects_maybe: @ 80444DC .pool _08044534: ldrh r0, [r4] - bl itemid_get_x12 + bl ItemId_GetHoldEffect lsls r0, 24 lsrs r5, r0, 24 ldrh r0, [r4] - bl itemid_get_quality + bl ItemId_GetHoldEffectParam lsls r0, 24 lsrs r0, 24 _08044548: mov r9, r0 ldr r1, =gBattleMons - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -8241,7 +8241,7 @@ _08044548: str r0, [sp, 0x14] cmp r0, 0xAF bne _0804457C - ldr r1, =gUnknown_02024404 + ldr r1, =gEnigmaBerries lsls r0, r2, 3 subs r0, r2 lsls r0, 2 @@ -8253,18 +8253,18 @@ _08044548: .pool _0804457C: ldr r0, [sp, 0x14] - bl itemid_get_x12 + bl ItemId_GetHoldEffect lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, [sp, 0x14] - bl itemid_get_quality + bl ItemId_GetHoldEffectParam lsls r0, 24 lsrs r0, 24 _08044592: str r0, [sp, 0x10] ldr r2, =gBattleMons - ldr r0, =gEnemyMonIndex + ldr r0, =gBankTarget ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -8273,9 +8273,9 @@ _08044592: cmp r4, 0xAF beq _080445B2 adds r0, r4, 0 - bl itemid_get_x12 + bl ItemId_GetHoldEffect adds r0, r4, 0 - bl itemid_get_quality + bl ItemId_GetHoldEffectParam _080445B2: ldr r0, [sp, 0x8] cmp r0, 0x4 @@ -8303,13 +8303,13 @@ _080445E8: bl _0804582A _080445F4: adds r0, r7, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08044604 bl _0804582A _08044604: - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] adds r0, 0x4A movs r1, 0x2 @@ -8349,12 +8349,12 @@ _0804463C: bne _08044654 bl _0804582A _08044654: - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting strb r7, [r0, 0x17] ldr r0, =gUnknown_0202420F strb r7, [r0] - ldr r1, =gUnknown_02024064 - ldr r0, =gUnknown_0202420B + ldr r1, =gActiveBank + ldr r0, =gBankAttacker strb r7, [r0] strb r7, [r1] ldr r0, =gUnknown_082DB7AE @@ -8469,11 +8469,11 @@ _080447B0: bl _080451D6 _080447B8: adds r0, r7, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080447DC - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r7, 1 adds r0, r1 ldrh r1, [r0] @@ -8483,7 +8483,7 @@ _080447B8: b _080447EA .pool _080447DC: - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r7, 1 adds r0, r1 ldrh r1, [r0] @@ -8549,7 +8549,7 @@ _08044860: add r0, sp, 0x4 strb r1, [r0] _08044864: - ldr r1, =gUnknown_02022F58 + ldr r1, =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 @@ -8571,7 +8571,7 @@ _08044864: movs r2, 0 movs r3, 0x1 bl dp01_build_cmdbuf_x02_a_b_varargs - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution movs r0, 0x3 @@ -8610,12 +8610,12 @@ _080448CE: bne _080448EA bl _0804582A _080448EA: - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting strb r7, [r0, 0x17] ldr r0, =gUnknown_0202420F strb r7, [r0] - ldr r1, =gUnknown_02024064 - ldr r0, =gUnknown_0202420B + ldr r1, =gActiveBank + ldr r0, =gBankAttacker strb r7, [r0] strb r7, [r1] ldr r0, =gUnknown_082DB7AE @@ -8685,7 +8685,7 @@ _08044996: beq _0804499E bl _080451D6 _0804499E: - ldr r1, =gUnknown_02022F58 + ldr r1, =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x8 @@ -8746,7 +8746,7 @@ _08044A14: beq _08044A1C bl _080451D6 _08044A1C: - ldr r1, =gUnknown_02022F58 + ldr r1, =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x8 @@ -8808,7 +8808,7 @@ _08044A90: beq _08044A96 b _080451D6 _08044A96: - ldr r1, =gUnknown_02022F58 + ldr r1, =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x8 @@ -8879,7 +8879,7 @@ _08044B24: beq _08044B2A b _080451D6 _08044B2A: - ldr r1, =gUnknown_02022F58 + ldr r1, =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x8 @@ -8950,7 +8950,7 @@ _08044BB6: beq _08044BBC b _080451D6 _08044BBC: - ldr r1, =gUnknown_02022F58 + ldr r1, =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x8 @@ -9027,7 +9027,7 @@ _08044C52: ble _08044C5C b _080451D6 _08044C5C: - ldr r1, =gUnknown_02022F58 + ldr r1, =gBattleTextBuff1 movs r2, 0xFD strb r2, [r1] movs r0, 0x5 @@ -9036,7 +9036,7 @@ _08044C5C: strb r0, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] - ldr r1, =gUnknown_02022F68 + ldr r1, =gBattleTextBuff2 strb r2, [r1] strb r6, [r1, 0x1] movs r0, 0xD2 @@ -9046,7 +9046,7 @@ _08044C5C: strb r0, [r1, 0x4] ldr r0, =gUnknown_0202420E strb r7, [r0] - ldr r1, =gUnknown_02024474 + ldr r1, =gBattleScripting movs r0, 0x11 strb r0, [r1, 0x1A] movs r0, 0xF @@ -9075,7 +9075,7 @@ _08044CBA: ble _08044CC4 b _080451D6 _08044CC4: - ldr r1, =gUnknown_02022F58 + ldr r1, =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x5 @@ -9086,7 +9086,7 @@ _08044CC4: strb r0, [r1, 0x3] ldr r0, =gUnknown_0202420E strb r7, [r0] - ldr r1, =gUnknown_02024474 + ldr r1, =gBattleScripting movs r0, 0x12 strb r0, [r1, 0x1A] movs r0, 0x10 @@ -9115,7 +9115,7 @@ _08044D0E: ble _08044D18 b _080451D6 _08044D18: - ldr r1, =gUnknown_02022F58 + ldr r1, =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x5 @@ -9126,7 +9126,7 @@ _08044D18: strb r0, [r1, 0x3] ldr r0, =gUnknown_0202420E strb r7, [r0] - ldr r1, =gUnknown_02024474 + ldr r1, =gBattleScripting movs r0, 0x13 strb r0, [r1, 0x1A] movs r0, 0x11 @@ -9155,7 +9155,7 @@ _08044D62: ble _08044D6C b _080451D6 _08044D6C: - ldr r1, =gUnknown_02022F58 + ldr r1, =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x5 @@ -9166,7 +9166,7 @@ _08044D6C: strb r0, [r1, 0x3] ldr r0, =gUnknown_0202420E strb r7, [r0] - ldr r1, =gUnknown_02024474 + ldr r1, =gBattleScripting movs r0, 0x14 strb r0, [r1, 0x1A] movs r0, 0x12 @@ -9202,7 +9202,7 @@ _08044DCA: ble _08044DD4 b _080451D6 _08044DD4: - ldr r1, =gUnknown_02022F58 + ldr r1, =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x5 @@ -9212,7 +9212,7 @@ _08044DD4: strb r0, [r1, 0x3] ldr r0, =gUnknown_0202420E strb r7, [r0] - ldr r1, =gUnknown_02024474 + ldr r1, =gBattleScripting movs r0, 0x15 strb r0, [r1, 0x1A] movs r0, 0x13 @@ -9332,7 +9332,7 @@ _08044EBC: asrs r0, 24 cmp r0, 0xC beq _08044EBC - ldr r1, =gUnknown_02022F58 + ldr r1, =gBattleTextBuff1 movs r2, 0 movs r3, 0xFD strb r3, [r1] @@ -9343,7 +9343,7 @@ _08044EBC: strb r0, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] - ldr r0, =gUnknown_02022F68 + ldr r0, =gBattleTextBuff2 strb r3, [r0] strb r2, [r0, 0x1] movs r1, 0xD1 @@ -9357,7 +9357,7 @@ _08044EBC: strb r1, [r0, 0x7] ldr r0, =gUnknown_0202420E strb r7, [r0] - ldr r1, =gUnknown_02024474 + ldr r1, =gBattleScripting mov r0, r10 adds r0, 0x21 strb r0, [r1, 0x1A] @@ -9544,7 +9544,7 @@ _0804509A: ands r2, r0 cmp r2, 0 beq _080450B2 - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldr r1, =gUnknown_0831BC70 bl StringCopy movs r0, 0x1 @@ -9563,7 +9563,7 @@ _080450B2: ldr r1, =0xf7ffffff ands r0, r1 str r0, [r2] - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldr r1, =gUnknown_0831BC78 bl StringCopy movs r2, 0x1 @@ -9574,7 +9574,7 @@ _080450D8: ands r0, r1 cmp r0, 0 beq _080450EE - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldr r1, =gUnknown_0831BC80 bl StringCopy movs r3, 0x1 @@ -9585,7 +9585,7 @@ _080450EE: ands r0, r1 cmp r0, 0 beq _08045104 - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldr r1, =gUnknown_0831BC88 bl StringCopy movs r0, 0x1 @@ -9596,7 +9596,7 @@ _08045104: ands r0, r1 cmp r0, 0 beq _0804511A - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldr r1, =gUnknown_0831BC90 bl StringCopy movs r1, 0x1 @@ -9608,7 +9608,7 @@ _0804511A: ands r0, r2 cmp r0, 0 beq _08045132 - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldr r1, =gUnknown_0831BC98 bl StringCopy movs r3, 0x1 @@ -9617,12 +9617,12 @@ _08045132: mov r5, r10 cmp r5, 0x1 bgt _08045164 - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0 b _08045168 .pool _08045164: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x1 _08045168: strb r0, [r1, 0x5] @@ -9664,12 +9664,12 @@ _080451A0: ldr r0, =0xfff0ffff ands r2, r0 str r2, [r1] - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldr r1, =gUnknown_0831BCA0 bl StringCopy ldr r0, =gUnknown_082DB794 bl b_call_bc_move_exec - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0 strb r0, [r1, 0x5] movs r1, 0x2 @@ -9680,12 +9680,12 @@ _080451D6: bne _080451DE b _0804582A _080451DE: - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting strb r7, [r0, 0x17] ldr r0, =gUnknown_0202420F strb r7, [r0] - ldr r4, =gUnknown_02024064 - ldr r0, =gUnknown_0202420B + ldr r4, =gActiveBank + ldr r0, =gBankAttacker strb r7, [r0] strb r7, [r4] ldr r3, [sp, 0xC] @@ -9715,7 +9715,7 @@ _08045226: beq _08045242 b _0804582A _08045242: - ldr r1, =gUnknown_020242BC + ldr r1, =gDisableStructs lsls r0, r7, 3 subs r0, r7 lsls r0, 2 @@ -9743,7 +9743,7 @@ _08045262: .pool _08045280: movs r7, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r7, r0 bcc _0804528C @@ -9760,7 +9760,7 @@ _0804528C: lsrs r0, 16 cmp r0, 0xAF bne _080452C0 - ldr r1, =gUnknown_02024404 + ldr r1, =gEnigmaBerries lsls r0, r7, 3 subs r0, r7 lsls r0, 2 @@ -9770,11 +9770,11 @@ _0804528C: .pool _080452C0: ldrh r0, [r4] - bl itemid_get_x12 + bl ItemId_GetHoldEffect lsls r0, 24 lsrs r5, r0, 24 ldrh r0, [r4] - bl itemid_get_quality + bl ItemId_GetHoldEffectParam _080452D0: subs r0, r5, 0x2 cmp r0, 0x1A @@ -9834,7 +9834,7 @@ _0804536A: ands r1, r0 str r1, [r2] bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB70C str r0, [r1] movs r0, 0x1 @@ -9858,7 +9858,7 @@ _080453A6: ands r1, r0 str r1, [r2] bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB724 str r0, [r1] movs r1, 0x1 @@ -9883,7 +9883,7 @@ _080453E2: ands r1, r0 str r1, [r2] bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB73C str r0, [r1] movs r2, 0x1 @@ -9908,7 +9908,7 @@ _0804541E: ands r1, r0 str r1, [r2] bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB754 str r0, [r1] movs r3, 0x1 @@ -9941,7 +9941,7 @@ _0804545E: ands r0, r1 str r0, [r2] bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB76C b _080455DC .pool @@ -9963,7 +9963,7 @@ _080454A2: ands r1, r0 str r1, [r2] bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB784 str r0, [r1] movs r0, 0x2 @@ -9987,14 +9987,14 @@ _080454E0: ldr r0, =0xfff0ffff ands r1, r0 str r1, [r2] - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldr r1, =gUnknown_0831BCA0 bl StringCopy bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0 strb r0, [r1, 0x5] - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB79A str r0, [r1] movs r1, 0x2 @@ -10027,7 +10027,7 @@ _08045548: ands r2, r0 cmp r2, 0 beq _08045558 - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldr r1, =gUnknown_0831BC70 bl StringCopy _08045558: @@ -10043,7 +10043,7 @@ _08045558: ldr r1, =0xf7ffffff ands r0, r1 str r0, [r2] - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldr r1, =gUnknown_0831BC78 bl StringCopy _08045578: @@ -10052,7 +10052,7 @@ _08045578: ands r0, r1 cmp r0, 0 beq _0804558A - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldr r1, =gUnknown_0831BC80 bl StringCopy _0804558A: @@ -10061,7 +10061,7 @@ _0804558A: ands r0, r1 cmp r0, 0 beq _0804559C - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldr r1, =gUnknown_0831BC88 bl StringCopy _0804559C: @@ -10070,7 +10070,7 @@ _0804559C: ands r0, r1 cmp r0, 0 beq _080455AE - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldr r1, =gUnknown_0831BC90 bl StringCopy _080455AE: @@ -10080,7 +10080,7 @@ _080455AE: ands r0, r3 cmp r0, 0 beq _080455C2 - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldr r1, =gUnknown_0831BC98 bl StringCopy _080455C2: @@ -10092,9 +10092,9 @@ _080455C2: ands r0, r1 str r0, [r5] bl b_movescr_stack_push_cursor - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication strb r4, [r0, 0x5] - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB79A _080455DC: str r0, [r1] @@ -10133,12 +10133,12 @@ _08045638: ldr r5, [sp, 0xC] cmp r5, 0 beq _080456B8 - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting strb r7, [r0, 0x17] ldr r0, =gUnknown_0202420F strb r7, [r0] bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB7B4 str r0, [r1] b _0804582A @@ -10148,11 +10148,11 @@ _08045674: cmp r0, 0 beq _080456B8 _0804567A: - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting strb r7, [r0, 0x17] ldr r0, =gUnknown_0202420F strb r7, [r0] - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank strb r7, [r4] ldrb r1, [r4] movs r0, 0x58 @@ -10174,7 +10174,7 @@ _080456B8: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r7, r0 bcs _080456C8 @@ -10205,8 +10205,8 @@ _080456EC: beq _080456FA b _0804582A _080456FA: - ldr r2, =gUnknown_0202437C - ldr r4, =gEnemyMonIndex + ldr r2, =gSpecialStatuses + ldr r4, =gBankTarget ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 @@ -10236,7 +10236,7 @@ _08045720: cmp r0, r2 bcs _0804582A ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA + ldr r0, =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -10255,7 +10255,7 @@ _08045720: ldrh r0, [r0, 0x28] cmp r0, 0 beq _0804582A - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x8 strb r0, [r1, 0x3] bl b_movescr_stack_push_cursor @@ -10272,8 +10272,8 @@ _08045794: ands r5, r0 cmp r5, 0 bne _0804582A - ldr r1, =gUnknown_0202437C - ldr r4, =gEnemyMonIndex + ldr r1, =gSpecialStatuses + ldr r4, =gBankTarget ldrb r2, [r4] lsls r0, r2, 2 adds r0, r2 @@ -10286,7 +10286,7 @@ _08045794: ldr r0, =0x0000ffff cmp r1, r0 beq _0804582A - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r3, [r0] cmp r3, r2 beq _0804582A @@ -10307,7 +10307,7 @@ _08045794: strh r1, [r0] ldr r0, =gUnknown_0202420F strb r3, [r0] - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting strb r3, [r0, 0x17] ldrb r1, [r4] lsls r0, r1, 2 @@ -10332,7 +10332,7 @@ _0804580C: adds r0, r6 str r5, [r0] bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB7F7 str r0, [r1] ldr r0, [sp, 0xC] @@ -10357,7 +10357,7 @@ _0804582A: sub_8045868: @ 8045868 lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_020242BC + ldr r2, =gDisableStructs lsls r1, r0, 3 subs r1, r0 lsls r1, 2 @@ -10374,7 +10374,7 @@ sub_8045868: @ 8045868 ldr r2, =0xfdffffff ands r1, r2 str r1, [r3] - ldr r1, =gUnknown_020242AC + ldr r1, =gStatuses3 lsls r0, 2 adds r0, r1 ldr r1, [r0] @@ -10388,12 +10388,12 @@ sub_8045868: @ 8045868 thumb_func_start sub_80458B4 sub_80458B4: @ 80458B4 push {lr} - ldr r0, =gUnknown_02024068 + ldr r0, =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _080458D0 - ldr r1, =gUnknown_0831BD10 - ldr r0, =gUnknown_02024214 + ldr r1, =gBattleScriptingCommandsTable + ldr r0, =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0] lsls r0, 2 @@ -10406,8 +10406,8 @@ _080458D0: .pool thumb_func_end sub_80458B4 - thumb_func_start sub_80458E0 -sub_80458E0: @ 80458E0 + thumb_func_start GetMoveTarget +GetMoveTarget: @ 80458E0 push {r4-r7,lr} mov r7, r8 push {r7} @@ -10509,14 +10509,14 @@ _08045924: .4byte _08045C20 .4byte _08045B28 _08045A28: - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r4, r0, 24 - ldr r1, =gUnknown_02024294 + ldr r1, =gSideTimers lsls r0, r4, 1 adds r0, r4 lsls r0, 2 @@ -10534,9 +10534,9 @@ _08045A28: beq _08045A5A b _08045B70 _08045A5A: - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r4, r0, 24 lsls r0, r7, 1 @@ -10545,22 +10545,22 @@ _08045A6A: bl Random lsls r0, 16 lsrs r0, 16 - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks ldrb r1, [r1] bl __modsi3 lsls r0, 24 lsrs r5, r0, 24 - ldr r6, =gUnknown_0202420B + ldr r6, =gBankAttacker ldrb r3, [r6] cmp r5, r3 beq _08045A6A adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r4, r0 beq _08045A6A - ldr r0, =gUnknown_02024210 + ldr r0, =gAbsentBankFlags ldrb r2, [r0] ldr r1, =gBitTable lsls r0, r5, 2 @@ -10584,7 +10584,7 @@ _08045AB8: movs r0, 0x10 movs r2, 0x1F movs r3, 0 - bl ability_something + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 bne _08045ACE @@ -10609,8 +10609,8 @@ _08045AE2: adds r0, 0x20 ldrb r1, [r0] adds r0, r5, 0 - bl b_history__record_ability_usage_of_player - ldr r1, =gUnknown_0202437C + bl RecordAbilityBattle + ldr r1, =gSpecialStatuses lsls r0, r5, 2 adds r0, r5 lsls r0, 2 @@ -10621,9 +10621,9 @@ _08045AE2: b _08045C20 .pool _08045B28: - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r0, [r0] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 movs r2, 0x1 movs r0, 0x1 @@ -10632,14 +10632,14 @@ _08045B28: b _08045BD2 .pool _08045B40: - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r4, r0, 24 - ldr r1, =gUnknown_02024294 + ldr r1, =gSideTimers lsls r0, r4, 1 adds r0, r4 lsls r0, 2 @@ -10670,9 +10670,9 @@ _08045B80: ands r6, r0 cmp r6, 0 beq _08045BFC - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08045BC0 @@ -10698,10 +10698,10 @@ _08045BC0: _08045BD0: movs r0, 0x2 _08045BD2: - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r5, r0, 24 - ldr r0, =gUnknown_02024210 + ldr r0, =gAbsentBankFlags ldrb r1, [r0] ldr r2, =gBitTable lsls r0, r5, 2 @@ -10715,26 +10715,26 @@ _08045BD2: b _08045C20 .pool _08045BFC: - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r0, [r0] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 movs r2, 0x1 movs r0, 0x1 ands r0, r1 eors r0, r2 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r5, r0, 24 b _08045C20 .pool _08045C1C: - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r5, [r0] _08045C20: - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r0, [r0] - ldr r1, =gUnknown_0202449C + ldr r1, =gBattleStruct ldr r1, [r1] adds r0, r1 strb r5, [r0, 0xC] @@ -10746,7 +10746,7 @@ _08045C20: pop {r1} bx r1 .pool - thumb_func_end sub_80458E0 + thumb_func_end GetMoveTarget thumb_func_start sub_8045C44 sub_8045C44: @ 8045C44 @@ -10754,12 +10754,12 @@ sub_8045C44: @ 8045C44 lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08045C8A - ldr r0, =gUnknown_0202406E + ldr r0, =gBattlePartyID lsls r4, 1 adds r5, r4, r0 ldrh r0, [r5] @@ -10787,7 +10787,7 @@ _08045C8A: b _08045CAE .pool _08045C98: - ldr r0, =gUnknown_0202406E + ldr r0, =gBattlePartyID adds r0, r4, r0 ldrh r1, [r0] movs r0, 0x64 @@ -10818,9 +10818,9 @@ sub_8045CBC: @ 8045CBC ands r0, r1 cmp r0, 0 bne _08045DAC - ldr r4, =gUnknown_0202420B + ldr r4, =gBankAttacker ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -10836,7 +10836,7 @@ sub_8045CBC: @ 8045CBC cmp r0, 0 beq _08045D08 ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 @@ -10854,7 +10854,7 @@ _08045D08: cmp r1, 0 bne _08045DAC ldr r2, =gBattleMons - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r1, [r0] movs r0, 0x58 muls r1, r0 @@ -10896,7 +10896,7 @@ _08045D68: movs r6, 0x46 _08045D76: ldr r5, =gBattleMons - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker mov r8, r0 ldrb r0, [r0] movs r7, 0x58 @@ -10926,7 +10926,7 @@ _08045DAC: b _08045FD0 .pool _08045DD4: - ldr r3, =gUnknown_020241EA + ldr r3, =gCurrentMove ldrh r0, [r3] cmp r0, 0x63 bne _08045DEA @@ -10955,7 +10955,7 @@ _08045DEA: cmp r0, 0xD6 bne _08045E20 _08045E0A: - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB695 b _08045F7A .pool @@ -10965,7 +10965,7 @@ _08045E20: adds r1, r5, 0 ands r1, r0 ldr r7, =gBattleMons - ldr r2, =gUnknown_0202420B + ldr r2, =gBankAttacker mov r9, r2 ldrb r3, [r2] movs r0, 0x58 @@ -10981,7 +10981,7 @@ _08045E20: cmp r4, r6 bge _08045EE8 ldr r6, =gBitTable - ldr r5, =gUnknown_020241E8 + ldr r5, =gCurrMovePos ldrb r0, [r5] lsls r0, 2 adds r0, r6 @@ -11011,12 +11011,12 @@ _08045E6E: ands r0, r4 cmp r0, 0 bne _08045E6E - ldr r4, =gUnknown_020241EE + ldr r4, =gRandomMove ldr r3, =gBattleMons - ldr r0, =gUnknown_020241E8 + ldr r0, =gCurrMovePos ldrb r0, [r0] lsls r0, 1 - ldr r1, =gUnknown_0202420B + ldr r1, =gBankAttacker ldrb r2, [r1] movs r1, 0x58 muls r1, r2 @@ -11025,15 +11025,15 @@ _08045E6E: adds r0, r3 ldrh r0, [r0] strh r0, [r4] - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB6A5 str r0, [r1] ldrh r0, [r4] movs r1, 0 - bl sub_80458E0 - ldr r1, =gEnemyMonIndex + bl GetMoveTarget + ldr r1, =gBankTarget strb r0, [r1] - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 14 @@ -11067,7 +11067,7 @@ _08045EE8: cmp r0, 0xF beq _08045F64 movs r2, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r3, [r0] mov r8, r0 cmp r2, r3 @@ -11094,7 +11094,7 @@ _08045F4A: ldrb r0, [r0] cmp r2, r0 bne _08045F64 - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB6D9 b _08045F7A .pool @@ -11104,11 +11104,11 @@ _08045F64: blt _08045F8C _08045F6A: bl Random - ldr r2, =gUnknown_02024332 + ldr r2, =gBattleCommunication movs r1, 0x3 ands r1, r0 strb r1, [r2, 0x5] - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB6AD _08045F7A: str r0, [r1] @@ -11116,7 +11116,7 @@ _08045F7A: b _08045FD0 .pool _08045F8C: - ldr r4, =gUnknown_0202420B + ldr r4, =gBankAttacker ldrb r1, [r4] movs r0, 0x58 muls r1, r0 @@ -11136,13 +11136,13 @@ _08045F8C: bl sub_806957C ldr r1, =gBattleMoveDamage str r0, [r1] - ldr r1, =gEnemyMonIndex + ldr r1, =gBankTarget ldrb r0, [r4] strb r0, [r1] - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB6F0 str r0, [r1] - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 12 diff --git a/asm/battle_4.s b/asm/battle_4.s new file mode 100644 index 0000000000..a7e61faeca --- /dev/null +++ b/asm/battle_4.s @@ -0,0 +1,31160 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start atk00_attackcanceler +atk00_attackcanceler: @ 8045FFC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + ldr r0, =gBattleOutcome + ldrb r0, [r0] + cmp r0, 0 + beq _08046020 + ldr r1, =gFightStateTracker + movs r0, 0xC + strb r0, [r1] + b _08046398 + .pool +_08046020: + ldr r2, =gBattleMons + ldr r0, =gBankAttacker + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x28] + cmp r0, 0 + bne _08046064 + ldr r2, =gHitMarker + ldr r1, [r2] + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + bne _08046064 + movs r0, 0x80 + lsls r0, 12 + orrs r1, r0 + str r1, [r2] + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082D8A4E + b _08046396 + .pool +_08046064: + bl sub_8041A6C + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _08046072 + b _08046398 +_08046072: + ldr r0, =gBankTarget + ldrb r1, [r0] + str r2, [sp] + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + cmp r0, 0 + beq _0804608A + b _08046398 +_0804608A: + ldr r4, =gBattleMons + ldr r0, =gCurrMovePos + ldrb r1, [r0] + ldr r3, =gBankAttacker + ldrb r2, [r3] + movs r0, 0x58 + muls r2, r0 + adds r1, r2 + adds r0, r4, 0 + adds r0, 0x24 + adds r1, r0 + ldrb r0, [r1] + ldr r5, =gHitMarker + cmp r0, 0 + bne _08046108 + ldr r0, =gCurrentMove + ldrh r0, [r0] + cmp r0, 0xA5 + beq _08046108 + ldr r0, [r5] + ldr r1, =0x00800200 + ands r0, r1 + cmp r0, 0 + bne _08046108 + adds r0, r4, 0 + adds r0, 0x50 + adds r0, r2, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 5 + ands r0, r1 + cmp r0, 0 + bne _08046108 + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DB07A + str r0, [r1] + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + b _08046398 + .pool +_08046108: + ldr r0, [r5] + ldr r1, =0xff7fffff + ands r0, r1 + str r0, [r5] + movs r6, 0x80 + lsls r6, 18 + ands r0, r6 + cmp r0, 0 + bne _08046160 + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + adds r1, r4, 0 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 5 + ands r0, r1 + cmp r0, 0 + bne _08046160 + bl sub_8045CBC + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _08046160 + cmp r2, 0x2 + bne _08046150 + ldr r0, [r5] + orrs r0, r6 + str r0, [r5] + b _08046398 + .pool +_08046150: + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + b _08046398 + .pool +_08046160: + ldr r2, =gHitMarker + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 18 + orrs r0, r1 + str r0, [r2] + ldr r2, =gProtectStructs + ldr r1, =gBankTarget + ldrb r3, [r1] + lsls r0, r3, 4 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 27 + mov r8, r1 + mov r9, r2 + cmp r0, 0 + bge _080461E8 + ldr r2, =gBattleMoves + ldr r0, =gCurrentMove + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x8] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080461E8 + ldr r0, =gBankAttacker + ldrb r0, [r0] + ldr r2, =0x00000115 + adds r1, r3, 0 + bl sub_803F480 + mov r0, r8 + ldrb r1, [r0] + lsls r1, 4 + add r1, r9 + ldrb r2, [r1] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + bl b_movescr_stack_push_cursor + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DB194 + b _08046396 + .pool +_080461E8: + movs r2, 0 + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + cmp r2, r0 + bge _0804622A + ldr r6, =gProtectStructs + ldr r1, =gBattleMoves + mov r12, r1 + adds r5, r0, 0 + ldr r7, =gTurnOrder +_080461FC: + adds r4, r2, r7 + ldrb r3, [r4] + lsls r0, r3, 4 + adds r0, r6 + ldrb r0, [r0] + lsls r0, 26 + cmp r0, 0 + bge _08046224 + ldr r0, =gCurrentMove + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + add r0, r12 + ldrb r1, [r0, 0x8] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _08046224 + b _08046350 +_08046224: + adds r2, 0x1 + cmp r2, r5 + blt _080461FC +_0804622A: + ldr r0, =gSpecialStatuses + mov r1, r8 + ldrb r2, [r1] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r3, [r1] + lsls r0, r3, 30 + cmp r0, 0 + bge _08046288 + movs r0, 0x3 + negs r0, r0 + ands r0, r3 + strb r0, [r1] + ldr r4, =gLastUsedAbility + movs r0, 0x1F + strb r0, [r4] + bl b_movescr_stack_push_cursor + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DB53E + str r0, [r1] + mov r1, r8 + ldrb r0, [r1] + ldrb r1, [r4] + bl RecordAbilityBattle + b _08046398 + .pool +_08046288: + lsls r0, r2, 4 + add r0, r9 + ldrb r0, [r0] + lsls r0, 31 + cmp r0, 0 + bne _08046296 + b _08046390 +_08046296: + ldr r1, =gBattleMoves + ldr r2, =gCurrentMove + ldrh r3, [r2] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x8] + movs r0, 0x2 + ands r0, r1 + adds r4, r2, 0 + cmp r0, 0 + beq _08046390 + cmp r3, 0xAE + bne _080462D4 + ldr r2, =gBattleMons + ldr r0, =gBankAttacker + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0x7 + beq _080462D4 + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x7 + bne _08046390 +_080462D4: + ldrh r0, [r4] + bl sub_8052F48 + lsls r0, 24 + cmp r0, 0 + beq _080462FA + ldr r1, =gBattleMons + ldr r0, =gBankAttacker + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 5 + ands r0, r1 + cmp r0, 0 + beq _08046390 +_080462FA: + ldr r0, =gBankAttacker + ldrb r0, [r0] + bl CancelMultiTurnMoves + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, =gUnknown_02024250 + ldr r3, =gBankTarget + ldrb r0, [r3] + lsls r0, 1 + adds r0, r1 + movs r2, 0 + strh r2, [r0] + ldr r1, =gUnknown_02024258 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r1 + strh r2, [r0] + ldr r1, =gBattleCommunication + movs r0, 0x1 + strb r0, [r1, 0x6] + b _08046390 + .pool +_08046350: + ldr r0, =gBankAttacker + ldrb r0, [r0] + ldr r2, =0x00000121 + adds r1, r3, 0 + bl sub_803F480 + ldrb r1, [r4] + lsls r1, 4 + adds r1, r6 + ldrb r2, [r1] + movs r0, 0x21 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r1, =gBattleScripting + ldrb r0, [r4] + strb r0, [r1, 0x17] + bl b_movescr_stack_push_cursor + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DB1AC + b _08046396 + .pool +_08046390: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 +_08046396: + str r0, [r1] +_08046398: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk00_attackcanceler + + thumb_func_start mcmd_jump_if_move_not_executed +mcmd_jump_if_move_not_executed: @ 80463AC + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 16 + lsrs r6, r1, 16 + ldr r1, =gBattlescriptCurrInstr + ldr r5, [r1] + adds r4, r5, r0 + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _0804640C + ldr r1, =gUnknown_02024250 + ldr r3, =gBankTarget + ldrb r0, [r3] + lsls r0, 1 + adds r0, r1 + movs r2, 0 + strh r2, [r0] + ldr r1, =gUnknown_02024258 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r1 + strh r2, [r0] + ldrb r4, [r5, 0x1] + ldrb r0, [r5, 0x2] + lsls r0, 8 + orrs r4, r0 + ldrb r0, [r5, 0x3] + lsls r0, 16 + orrs r4, r0 + ldrb r0, [r5, 0x4] + lsls r0, 24 + orrs r4, r0 + b _08046426 + .pool +_0804640C: + bl b_feature_update_destiny_bond + ldr r0, =gBankTarget + ldrb r1, [r0] + str r6, [sp] + movs r0, 0x3 + movs r2, 0 + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + cmp r0, 0 + bne _0804642A +_08046426: + ldr r0, =gBattlescriptCurrInstr + str r4, [r0] +_0804642A: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end mcmd_jump_if_move_not_executed + + thumb_func_start atk40_801DBA0 +atk40_801DBA0: @ 804643C + push {lr} + ldr r1, =gProtectStructs + ldr r0, =gBankTarget + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 31 + cmp r0, 0 + beq _0804649C + ldr r2, =gBattleMoves + ldr r0, =gCurrentMove + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x8] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0804649C + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + movs r0, 0x5 + movs r1, 0 + bl mcmd_jump_if_move_not_executed + ldr r1, =gBattleCommunication + movs r0, 0x1 + strb r0, [r1, 0x6] + b _080464A4 + .pool +_0804649C: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_080464A4: + pop {r0} + bx r0 + .pool + thumb_func_end atk40_801DBA0 + + thumb_func_start sub_80464AC +sub_80464AC: @ 80464AC + push {r4,lr} + lsls r0, 16 + lsrs r3, r0, 16 + movs r4, 0 + ldr r1, =gProtectStructs + ldr r0, =gBankTarget + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 31 + cmp r0, 0 + beq _080464F8 + ldr r2, =gBattleMoves + ldr r0, =gCurrentMove + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x8] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080464F8 + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + movs r0, 0x7 + adds r1, r3, 0 + bl mcmd_jump_if_move_not_executed + ldr r1, =gBattleCommunication + movs r0, 0x1 + strb r0, [r1, 0x6] + movs r4, 0x1 +_080464F8: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80464AC + + thumb_func_start sub_8046518 +sub_8046518: @ 8046518 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r2, =gStatuses3 + ldr r3, =gBankTarget + ldrb r4, [r3] + lsls r0, r4, 2 + adds r0, r2 + ldr r1, [r0] + movs r0, 0x18 + ands r1, r0 + adds r6, r2, 0 + cmp r1, 0 + beq _0804654A + ldr r1, =gDisableStructs + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + adds r0, r1 + ldr r1, =gBankAttacker + ldrb r0, [r0, 0x15] + ldrb r1, [r1] + cmp r0, r1 + beq _08046634 +_0804654A: + ldr r0, =gHitMarker + ldr r1, [r0] + movs r2, 0x80 + lsls r2, 9 + ands r1, r2 + adds r2, r0, 0 + cmp r1, 0 + bne _08046590 + ldrb r0, [r3] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08046590 +_0804656A: + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + b _08046634 + .pool +_08046590: + ldr r0, [r2] + ldr r1, =0xfffeffff + ands r0, r1 + str r0, [r2] + movs r1, 0x80 + lsls r1, 10 + ands r0, r1 + cmp r0, 0 + bne _080465B2 + ldrb r0, [r3] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0804656A +_080465B2: + ldr r0, [r2] + ldr r1, =0xfffdffff + ands r0, r1 + str r0, [r2] + movs r1, 0x80 + lsls r1, 11 + ands r0, r1 + cmp r0, 0 + bne _080465D2 + ldrb r0, [r3] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + ands r0, r1 + cmp r0, 0 + bne _0804656A +_080465D2: + ldr r0, [r2] + ldr r1, =0xfffbffff + ands r0, r1 + str r0, [r2] + movs r0, 0 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0xD + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + lsrs r0, 24 + lsls r4, r5, 1 + cmp r0, 0 + bne _08046622 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x4D + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + cmp r0, 0 + bne _08046622 + ldr r0, =gBattleWeather + ldrh r1, [r0] + movs r0, 0x7 + ands r0, r1 + cmp r0, 0 + beq _08046622 + ldr r0, =gBattleMoves + adds r1, r4, r5 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0x98 + beq _08046634 +_08046622: + ldr r1, =gBattleMoves + adds r0, r4, r5 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x11 + beq _08046634 + cmp r0, 0x4E + bne _08046654 +_08046634: + movs r0, 0x7 + adds r1, r5, 0 + bl mcmd_jump_if_move_not_executed + movs r0, 0x1 + b _08046656 + .pool +_08046654: + movs r0, 0 +_08046656: + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8046518 + + thumb_func_start atk01_accuracycheck +atk01_accuracycheck: @ 8046660 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + ldr r0, =gBattlescriptCurrInstr + ldr r5, [r0] + ldrb r6, [r5, 0x5] + ldrb r1, [r5, 0x6] + lsls r1, 8 + orrs r6, r1 + adds r1, r6, 0x2 + lsls r1, 16 + lsrs r1, 16 + adds r7, r0, 0 + cmp r1, 0x1 + bhi _0804671C + ldr r2, =gStatuses3 + ldr r3, =gBankTarget + ldrb r4, [r3] + lsls r0, r4, 2 + adds r0, r2 + ldr r1, [r0] + movs r0, 0x18 + ands r1, r0 + cmp r1, 0 + beq _080466D0 + ldr r0, =0x0000ffff + cmp r6, r0 + bne _080466D0 + ldr r1, =gDisableStructs + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + adds r0, r1 + ldr r1, =gBankAttacker + ldrb r0, [r0, 0x15] + ldrb r1, [r1] + cmp r0, r1 + bne _080466D0 + adds r0, r5, 0x7 + str r0, [r7] + b _080469D2 + .pool +_080466D0: + ldrb r0, [r3] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + ldr r1, =0x000400c0 + ands r0, r1 + cmp r0, 0 + beq _08046700 + ldr r2, [r7] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r7] + b _080469D2 + .pool +_08046700: + movs r0, 0 + bl sub_80464AC + lsls r0, 24 + cmp r0, 0 + beq _0804670E + b _080469D2 +_0804670E: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x7 + str r0, [r1] + b _080469D2 + .pool +_0804671C: + cmp r6, 0 + bne _08046724 + ldr r0, =gCurrentMove + ldrh r6, [r0] +_08046724: + ldr r0, =gBattleStruct + ldr r0, [r0] + ldrb r0, [r0, 0x13] + cmp r0, 0 + beq _08046744 + movs r1, 0x3F + mov r10, r1 + mov r2, r10 + ands r2, r0 + mov r10, r2 + b _08046752 + .pool +_08046744: + ldr r1, =gBattleMoves + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x2] + mov r10, r0 +_08046752: + adds r0, r6, 0 + bl sub_80464AC + lsls r0, 24 + cmp r0, 0 + beq _08046760 + b _080469D2 +_08046760: + adds r0, r6, 0 + bl sub_8046518 + lsls r0, 24 + cmp r0, 0 + beq _0804676E + b _080469D2 +_0804676E: + ldr r3, =gBattleMons + ldr r0, =gBankTarget + ldrb r0, [r0] + movs r2, 0x58 + adds r4, r0, 0 + muls r4, r2 + adds r0, r3, 0 + adds r0, 0x50 + adds r0, r4, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 22 + ands r0, r1 + cmp r0, 0 + beq _080467A8 + ldr r0, =gBankAttacker + ldrb r0, [r0] + muls r0, r2 + adds r0, r3 + ldrb r5, [r0, 0x1E] + b _080467BE + .pool +_080467A8: + ldr r0, =gBankAttacker + ldrb r0, [r0] + muls r0, r2 + adds r0, r3 + ldrb r0, [r0, 0x1E] + adds r0, 0x6 + adds r1, r4, r3 + ldrb r1, [r1, 0x1F] + subs r0, r1 + lsls r0, 24 + lsrs r5, r0, 24 +_080467BE: + lsls r0, r5, 24 + cmp r0, 0 + bge _080467C6 + movs r5, 0 +_080467C6: + lsls r0, r5, 24 + asrs r0, 24 + cmp r0, 0xC + ble _080467D0 + movs r5, 0xC +_080467D0: + ldr r1, =gBattleMoves + lsls r4, r6, 1 + adds r0, r4, r6 + lsls r0, 2 + adds r7, r0, r1 + ldrb r3, [r7, 0x3] + mov r8, r3 + movs r0, 0 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0xD + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + lsrs r0, 24 + str r4, [sp, 0x4] + cmp r0, 0 + bne _08046822 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x4D + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + cmp r0, 0 + bne _08046822 + ldr r0, =gBattleWeather + ldrh r1, [r0] + movs r0, 0x60 + ands r0, r1 + cmp r0, 0 + beq _08046822 + ldrb r0, [r7] + cmp r0, 0x98 + bne _08046822 + movs r0, 0x32 + mov r8, r0 +_08046822: + ldr r1, =gUnknown_0831C0F4 + lsls r0, r5, 24 + asrs r0, 22 + adds r0, r1 + ldrb r1, [r0] + mov r4, r8 + muls r4, r1 + ldrb r1, [r0, 0x1] + adds r0, r4, 0 + bl __divsi3 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r7, =gBattleMons + ldr r0, =gBankAttacker + ldrb r0, [r0] + movs r5, 0x58 + muls r0, r5 + adds r0, r7 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0xE + bne _08046860 + lsls r0, r4, 6 + adds r0, r4 + lsls r0, 1 + movs r1, 0x64 + bl __divsi3 + lsls r0, 16 + lsrs r4, r0, 16 +_08046860: + movs r0, 0 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0xD + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080468B8 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x4D + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + cmp r0, 0 + bne _080468B8 + ldr r0, =gBankTarget + ldrb r0, [r0] + muls r0, r5 + adds r0, r7 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x8 + bne _080468B8 + ldr r0, =gBattleWeather + ldrh r1, [r0] + movs r0, 0x18 + ands r0, r1 + cmp r0, 0 + beq _080468B8 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + movs r1, 0x64 + bl __divsi3 + lsls r0, 16 + lsrs r4, r0, 16 +_080468B8: + ldr r2, =gBattleMons + ldr r0, =gBankAttacker + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x20 + ldrb r0, [r0] + mov r9, r2 + cmp r0, 0x37 + bne _080468E4 + mov r1, r10 + cmp r1, 0x8 + bhi _080468E4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + movs r1, 0x64 + bl __divsi3 + lsls r0, 16 + lsrs r4, r0, 16 +_080468E4: + ldr r2, =gBankTarget + mov r8, r2 + ldrb r2, [r2] + movs r7, 0x58 + adds r0, r2, 0 + muls r0, r7 + mov r3, r9 + adds r1, r0, r3 + ldrh r0, [r1, 0x2E] + cmp r0, 0xAF + bne _08046928 + ldr r1, =gEnigmaBerries + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r5, [r0, 0x7] + ldrb r2, [r0, 0x1A] + b _08046944 + .pool +_08046928: + ldrh r0, [r1, 0x2E] + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r5, r0, 24 + mov r1, r8 + ldrb r0, [r1] + muls r0, r7 + add r0, r9 + ldrh r0, [r0, 0x2E] + bl ItemId_GetHoldEffectParam + lsls r0, 24 + lsrs r2, r0, 24 +_08046944: + ldr r0, =gUnknown_0202420F + ldr r1, =gBankTarget + ldrb r1, [r1] + strb r1, [r0] + cmp r5, 0x16 + bne _08046960 + movs r0, 0x64 + subs r0, r2 + muls r0, r4 + movs r1, 0x64 + bl __divsi3 + lsls r0, 16 + lsrs r4, r0, 16 +_08046960: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + adds r0, 0x1 + cmp r0, r4 + ble _080469CA + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080469C0 + ldr r1, =gBattleMoves + ldr r2, [sp, 0x4] + adds r0, r2, r6 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x6] + cmp r0, 0x8 + beq _080469A2 + cmp r0, 0x20 + bne _080469C0 +_080469A2: + ldr r1, =gBattleCommunication + movs r0, 0x2 + b _080469C4 + .pool +_080469C0: + ldr r1, =gBattleCommunication + movs r0, 0 +_080469C4: + strb r0, [r1, 0x6] + bl b_wonderguard_and_levitate +_080469CA: + movs r0, 0x7 + adds r1, r6, 0 + bl mcmd_jump_if_move_not_executed +_080469D2: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk01_accuracycheck + + thumb_func_start atk02_attackstring +atk02_attackstring: @ 80469E8 + push {r4,r5,lr} + ldr r0, =gBattleExecBuffer + ldr r5, [r0] + cmp r5, 0 + bne _08046A20 + ldr r4, =gHitMarker + ldr r0, [r4] + movs r1, 0xC0 + lsls r1, 3 + ands r0, r1 + cmp r0, 0 + bne _08046A14 + ldr r0, =gBankAttacker + ldrb r1, [r0] + movs r0, 0x4 + bl b_std_message + ldr r0, [r4] + movs r1, 0x80 + lsls r1, 3 + orrs r0, r1 + str r0, [r4] +_08046A14: + ldr r0, =gBattlescriptCurrInstr + ldr r1, [r0] + adds r1, 0x1 + str r1, [r0] + ldr r0, =gBattleCommunication + strb r5, [r0, 0x7] +_08046A20: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end atk02_attackstring + + thumb_func_start atk03_ppreduce +atk03_ppreduce: @ 8046A3C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + movs r6, 0x1 + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + beq _08046A54 + b _08046BEE +_08046A54: + ldr r1, =gSpecialStatuses + ldr r2, =gBankAttacker + ldrb r3, [r2] + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 26 + lsrs r4, r0, 31 + mov r9, r2 + cmp r4, 0 + bne _08046AF6 + ldr r2, =gBattleMoves + ldr r0, =gCurrentMove + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x6] + cmp r0, 0x20 + beq _08046AA6 + cmp r0, 0x20 + bgt _08046AA0 + cmp r0, 0x8 + beq _08046ABC + b _08046AD6 + .pool +_08046AA0: + cmp r0, 0x40 + beq _08046ABC + b _08046AD6 +_08046AA6: + str r4, [sp] + movs r0, 0x12 + adds r1, r3, 0 + movs r2, 0x2E + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0x1 + b _08046AF6 +_08046ABC: + mov r0, r9 + ldrb r1, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0x10 + movs r2, 0x2E + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + lsrs r0, 24 + adds r6, r0 + b _08046AF6 +_08046AD6: + ldr r1, =gBankTarget + mov r2, r9 + ldrb r0, [r2] + ldrb r7, [r1] + cmp r0, r7 + beq _08046AF6 + ldr r2, =gBattleMons + ldrb r1, [r1] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x2E + bne _08046AF6 + adds r6, 0x1 +_08046AF6: + ldr r0, =gHitMarker + ldr r4, [r0] + movs r0, 0xA0 + lsls r0, 4 + ands r4, r0 + cmp r4, 0 + bne _08046BDC + ldr r2, =gBattleMons + ldr r3, =gCurrMovePos + ldr r1, =gBankAttacker + ldrb r5, [r1] + movs r0, 0x58 + mov r8, r0 + mov r0, r8 + muls r0, r5 + ldrb r7, [r3] + adds r0, r7 + movs r7, 0x24 + adds r7, r2 + mov r12, r7 + add r0, r12 + ldrb r0, [r0] + mov r9, r1 + mov r10, r2 + adds r7, r3, 0 + cmp r0, 0 + beq _08046BDC + ldr r0, =gProtectStructs + lsls r1, r5, 4 + adds r1, r0 + ldrb r0, [r1, 0x2] + movs r2, 0x8 + orrs r0, r2 + strb r0, [r1, 0x2] + mov r1, r9 + ldrb r0, [r1] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + ldrb r1, [r7] + adds r0, r1 + mov r1, r12 + adds r2, r0, r1 + ldrb r0, [r2] + cmp r0, r6 + ble _08046B70 + subs r0, r6 + strb r0, [r2] + b _08046B72 + .pool +_08046B70: + strb r4, [r2] +_08046B72: + mov r2, r9 + ldrb r3, [r2] + movs r4, 0x58 + adds r0, r3, 0 + muls r0, r4 + mov r1, r10 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + bne _08046BDC + ldr r1, =gDisableStructs + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x18] + lsrs r1, 4 + ldr r2, =gBitTable + ldrb r0, [r7] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _08046BDC + ldr r0, =gActiveBank + strb r3, [r0] + ldrb r1, [r7] + adds r1, 0x9 + lsls r1, 24 + lsrs r1, 24 + mov r2, r9 + ldrb r0, [r2] + muls r0, r4 + mov r2, r10 + adds r2, 0x24 + adds r0, r2 + ldrb r7, [r7] + adds r0, r7 + str r0, [sp] + movs r0, 0 + movs r2, 0 + movs r3, 0x1 + bl dp01_build_cmdbuf_x02_a_b_varargs + mov r7, r9 + ldrb r0, [r7] + bl dp01_battle_side_mark_buffer_for_execution +_08046BDC: + ldr r2, =gHitMarker + ldr r0, [r2] + ldr r1, =0xfffff7ff + ands r0, r1 + str r0, [r2] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_08046BEE: + 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 atk03_ppreduce + + thumb_func_start atk04_critcalc +atk04_critcalc: @ 8046C18 + push {r4-r7,lr} + ldr r1, =gBattleMons + ldr r0, =gBankAttacker + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r0, r1 + ldrh r0, [r0, 0x2E] + cmp r0, 0xAF + bne _08046C48 + ldr r1, =gEnigmaBerries + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r6, [r0, 0x7] + b _08046C50 + .pool +_08046C48: + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r6, r0, 24 +_08046C50: + ldr r1, =gUnknown_0202420F + ldr r3, =gBankAttacker + ldrb r0, [r3] + strb r0, [r1] + ldr r4, =gBattleMons + ldrb r1, [r3] + movs r0, 0x58 + adds r7, r1, 0 + muls r7, r0 + adds r0, r4, 0 + adds r0, 0x50 + adds r0, r7, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 13 + ands r0, r1 + negs r0, r0 + asrs r5, r0, 31 + movs r0, 0x2 + ands r5, r0 + ldr r2, =gBattleMoves + ldr r0, =gCurrentMove + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + mov r12, r3 + cmp r1, 0x2B + bne _08046C90 + adds r5, 0x1 +_08046C90: + adds r0, r5, 0 + cmp r1, 0x4B + bne _08046C98 + adds r0, 0x1 +_08046C98: + cmp r1, 0xC8 + bne _08046C9E + adds r0, 0x1 +_08046C9E: + adds r2, r0, 0 + cmp r1, 0xD1 + bne _08046CA6 + adds r2, 0x1 +_08046CA6: + movs r1, 0 + cmp r6, 0x3F + bne _08046CB6 + adds r0, r7, r4 + ldrh r0, [r0] + cmp r0, 0x71 + bne _08046CB6 + movs r1, 0x1 +_08046CB6: + lsls r5, r1, 1 + movs r3, 0 + cmp r6, 0x42 + bne _08046CD0 + mov r0, r12 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r4 + ldrh r0, [r0] + cmp r0, 0x53 + bne _08046CD0 + movs r3, 0x1 +_08046CD0: + lsls r1, r3, 1 + cmp r6, 0x29 + bne _08046CF0 + adds r0, r5, 0x1 + adds r0, r2, r0 + b _08046CF2 + .pool +_08046CF0: + adds r0, r2, r5 +_08046CF2: + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + adds r5, r0, 0 + cmp r5, 0x4 + bls _08046D00 + movs r5, 0x4 +_08046D00: + ldr r0, =gBankTarget + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r4 + adds r0, 0x20 + ldrb r4, [r0] + cmp r4, 0x4 + beq _08046D70 + cmp r4, 0x4B + beq _08046D70 + ldr r1, =gStatuses3 + mov r2, r12 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + bne _08046D70 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x84 + lsls r1, 2 + ands r0, r1 + cmp r0, 0 + bne _08046D70 + bl Random + ldr r2, =gUnknown_0831C128 + lsls r1, r5, 1 + adds r1, r2 + lsls r0, 16 + lsrs r0, 16 + ldrh r1, [r1] + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + bne _08046D70 + ldr r1, =gCritMultiplier + movs r0, 0x2 + b _08046D74 + .pool +_08046D70: + ldr r1, =gCritMultiplier + movs r0, 0x1 +_08046D74: + strb r0, [r1] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk04_critcalc + + thumb_func_start atk05_cmd5 +atk05_cmd5: @ 8046D8C + push {r4-r7,lr} + sub sp, 0x10 + ldr r4, =gUnknown_0202428E + ldr r5, =gBankTarget + ldrb r0, [r5] + bl GetBankIdentity + movs r1, 0x1 + ands r1, r0 + lsls r1, 1 + adds r1, r4 + ldrh r3, [r1] + ldr r6, =gBankAttacker + ldrb r0, [r6] + movs r4, 0x58 + muls r0, r4 + ldr r2, =gBattleMons + adds r0, r2 + ldrb r1, [r5] + muls r1, r4 + adds r1, r2 + ldr r7, =gCurrentMove + ldrh r2, [r7] + ldr r4, =gUnknown_02024400 + ldrh r4, [r4] + str r4, [sp] + ldr r4, =gBattleStruct + ldr r4, [r4] + ldrb r4, [r4, 0x13] + str r4, [sp, 0x4] + ldrb r4, [r6] + str r4, [sp, 0x8] + ldrb r4, [r5] + str r4, [sp, 0xC] + bl sub_806957C + ldr r4, =gBattleMoveDamage + ldr r1, =gCritMultiplier + ldrb r1, [r1] + muls r1, r0 + ldr r0, =gBattleScripting + ldrb r0, [r0, 0xE] + adds r3, r1, 0 + muls r3, r0 + str r3, [r4] + ldr r1, =gStatuses3 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 2 + ands r0, r1 + cmp r0, 0 + beq _08046E10 + ldr r2, =gBattleMoves + ldrh r1, [r7] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x2] + cmp r0, 0xD + bne _08046E10 + lsls r0, r3, 1 + str r0, [r4] +_08046E10: + ldr r1, =gProtectStructs + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 28 + cmp r0, 0 + bge _08046E32 + ldr r4, =gBattleMoveDamage + ldr r1, [r4] + lsls r0, r1, 4 + subs r0, r1 + movs r1, 0xA + bl __divsi3 + str r0, [r4] +_08046E32: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk05_cmd5 + + thumb_func_start sub_8046E7C +sub_8046E7C: @ 8046E7C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + adds r5, r1, 0 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r5, 24 + lsrs r5, 24 + ldr r4, =gUnknown_0202428E + adds r0, r5, 0 + bl GetBankIdentity + movs r1, 0x1 + ands r1, r0 + lsls r1, 1 + adds r1, r4 + ldrh r3, [r1] + movs r1, 0x58 + adds r0, r7, 0 + muls r0, r1 + ldr r2, =gBattleMons + adds r0, r2 + muls r1, r5 + adds r1, r2 + ldr r2, =gCurrentMove + mov r8, r2 + ldrh r2, [r2] + ldr r6, =gUnknown_02024400 + ldrh r4, [r6] + str r4, [sp] + ldr r4, =gBattleStruct + ldr r4, [r4] + ldrb r4, [r4, 0x13] + str r4, [sp, 0x4] + str r7, [sp, 0x8] + str r5, [sp, 0xC] + bl sub_806957C + ldr r4, =gBattleMoveDamage + movs r1, 0 + strh r1, [r6] + ldr r1, =gCritMultiplier + ldrb r1, [r1] + muls r1, r0 + ldr r0, =gBattleScripting + ldrb r0, [r0, 0xE] + adds r3, r1, 0 + muls r3, r0 + str r3, [r4] + ldr r1, =gStatuses3 + lsls r0, r7, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 2 + ands r0, r1 + cmp r0, 0 + beq _08046F0A + ldr r2, =gBattleMoves + mov r0, r8 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x2] + cmp r0, 0xD + bne _08046F0A + lsls r0, r3, 1 + str r0, [r4] +_08046F0A: + ldr r0, =gProtectStructs + lsls r1, r7, 4 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 28 + cmp r0, 0 + bge _08046F28 + ldr r4, =gBattleMoveDamage + ldr r1, [r4] + lsls r0, r1, 4 + subs r0, r1 + movs r1, 0xA + bl __divsi3 + str r0, [r4] +_08046F28: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8046E7C + + thumb_func_start battle_attack_damage_modulate_by_effectivity +battle_attack_damage_modulate_by_effectivity: @ 8046F60 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r5, =gBattleMoveDamage + ldr r0, [r5] + muls r0, r4 + movs r1, 0xA + bl __divsi3 + str r0, [r5] + cmp r0, 0 + bne _08046F80 + cmp r4, 0 + beq _08046F80 + movs r0, 0x1 + str r0, [r5] +_08046F80: + cmp r4, 0x5 + beq _08046FB0 + cmp r4, 0x5 + bgt _08046F94 + cmp r4, 0 + beq _08046F9A + b _08047032 + .pool +_08046F94: + cmp r4, 0x14 + beq _08046FF0 + b _08047032 +_08046F9A: + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x8 + orrs r0, r1 + movs r1, 0xFB + ands r0, r1 + movs r1, 0xFD + ands r0, r1 + b _08047030 + .pool +_08046FB0: + ldr r2, =gBattleMoves + ldr r0, =gCurrentMove + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _08047032 + ldr r2, =gBattleMoveFlags + ldrb r1, [r2] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _08047032 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08046FEC + movs r0, 0xFD + ands r0, r1 + b _08047030 + .pool +_08046FEC: + movs r0, 0x4 + b _0804702E +_08046FF0: + ldr r2, =gBattleMoves + ldr r0, =gCurrentMove + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _08047032 + ldr r2, =gBattleMoveFlags + ldrb r1, [r2] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _08047032 + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0804702C + movs r0, 0xFB + ands r0, r1 + b _08047030 + .pool +_0804702C: + movs r0, 0x2 +_0804702E: + orrs r0, r1 +_08047030: + strb r0, [r2] +_08047032: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end battle_attack_damage_modulate_by_effectivity + + thumb_func_start sub_8047038 +sub_8047038: @ 8047038 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + movs r3, 0 + ldr r1, =gCurrentMove + ldrh r0, [r1] + cmp r0, 0xA5 + bne _0804704C + b _08047260 +_0804704C: + ldr r0, =gBattleStruct + ldr r0, [r0] + ldrb r0, [r0, 0x13] + cmp r0, 0 + beq _08047068 + movs r1, 0x3F + mov r8, r1 + ands r1, r0 + mov r8, r1 + b _08047078 + .pool +_08047068: + ldr r2, =gBattleMoves + ldrh r1, [r1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x2] + mov r8, r0 +_08047078: + ldr r2, =gBattleMons + ldr r0, =gBankAttacker + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + adds r5, r2, 0 + cmp r0, r8 + beq _0804709A + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, r8 + bne _080470B0 +_0804709A: + ldr r4, =gBattleMoveDamage + ldr r1, [r4] + lsls r0, r1, 4 + subs r0, r1 + str r0, [r4] + movs r1, 0xA + str r3, [sp, 0x4] + bl __divsi3 + str r0, [r4] + ldr r3, [sp, 0x4] +_080470B0: + ldr r2, =gBankTarget + ldrb r1, [r2] + movs r0, 0x58 + muls r0, r1 + adds r0, r5 + adds r0, 0x20 + ldrb r0, [r0] + adds r4, r2, 0 + cmp r0, 0x1A + bne _08047128 + mov r1, r8 + cmp r1, 0x4 + bne _08047128 + ldr r3, =gLastUsedAbility + strb r0, [r3] + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x9 + orrs r0, r1 + strb r0, [r2] + ldr r1, =gUnknown_02024250 + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + movs r2, 0 + strh r2, [r0] + ldr r1, =gUnknown_02024258 + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + strh r2, [r0] + ldr r0, =gBattleCommunication + mov r1, r8 + strb r1, [r0, 0x6] + ldrb r0, [r4] + ldrb r1, [r3] + bl RecordAbilityBattle + b _080471C4 + .pool +_08047128: + ldr r1, =gUnknown_0831ACE8 + adds r0, r3, r1 + ldrb r0, [r0] + adds r2, r1, 0 + b _080471A4 + .pool +_08047138: + adds r3, 0x3 + b _080471A0 +_0804713C: + ldr r5, =gUnknown_0831ACE8 + adds r0, r3, r5 + ldrb r0, [r0] + cmp r0, r8 + bne _08047198 + adds r1, r3, 0x1 + adds r1, r5 + ldr r2, =gBattleMons + ldr r7, =gBankTarget + ldrb r0, [r7] + movs r6, 0x58 + muls r0, r6 + adds r0, r2 + adds r0, 0x21 + ldrb r4, [r1] + ldrb r0, [r0] + cmp r4, r0 + bne _08047172 + adds r0, r3, 0x2 + adds r0, r5 + ldrb r0, [r0] + str r2, [sp] + str r3, [sp, 0x4] + bl battle_attack_damage_modulate_by_effectivity + ldr r3, [sp, 0x4] + ldr r2, [sp] +_08047172: + ldrb r0, [r7] + muls r0, r6 + adds r0, r2 + adds r1, r0, 0 + adds r1, 0x22 + ldrb r1, [r1] + cmp r4, r1 + bne _08047198 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, r4 + beq _08047198 + adds r0, r3, 0x2 + adds r0, r5 + ldrb r0, [r0] + str r3, [sp, 0x4] + bl battle_attack_damage_modulate_by_effectivity + ldr r3, [sp, 0x4] +_08047198: + adds r3, 0x3 + ldr r5, =gBattleMons + ldr r4, =gBankTarget + ldr r2, =gUnknown_0831ACE8 +_080471A0: + adds r0, r3, r2 + ldrb r0, [r0] +_080471A4: + cmp r0, 0xFF + beq _080471C4 + cmp r0, 0xFE + bne _0804713C + ldrb r1, [r4] + movs r0, 0x58 + muls r0, r1 + adds r1, r5, 0 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 22 + ands r0, r1 + cmp r0, 0 + beq _08047138 +_080471C4: + ldr r2, =gBattleMons + ldr r5, =gBankTarget + ldrb r1, [r5] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x20 + ldrb r6, [r0] + cmp r6, 0x19 + bne _08047242 + ldr r0, =gBankAttacker + ldrb r0, [r0] + ldr r7, =gCurrentMove + ldrh r1, [r7] + bl move_weather_interaction + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _08047242 + ldr r1, =gBattleMoveFlags + mov r8, r1 + ldrb r4, [r1] + ands r0, r4 + cmp r0, 0 + beq _08047200 + movs r0, 0x6 + ands r0, r4 + cmp r0, 0x6 + bne _08047242 +_08047200: + ldr r2, =gBattleMoves + ldrh r1, [r7] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _08047242 + ldr r3, =gLastUsedAbility + strb r6, [r3] + movs r0, 0x1 + orrs r0, r4 + mov r1, r8 + strb r0, [r1] + ldr r1, =gUnknown_02024250 + ldrb r0, [r5] + lsls r0, 1 + adds r0, r1 + movs r2, 0 + strh r2, [r0] + ldr r1, =gUnknown_02024258 + ldrb r0, [r5] + lsls r0, 1 + adds r0, r1 + strh r2, [r0] + ldr r1, =gBattleCommunication + movs r0, 0x3 + strb r0, [r1, 0x6] + ldrb r0, [r5] + ldrb r1, [r3] + bl RecordAbilityBattle +_08047242: + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _08047260 + ldr r2, =gProtectStructs + ldr r0, =gBankAttacker + ldrb r1, [r0] + lsls r1, 4 + adds r1, r2 + ldrb r0, [r1, 0x1] + movs r2, 0x2 + orrs r0, r2 + strb r0, [r1, 0x1] +_08047260: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8047038 + + thumb_func_start b_wonderguard_and_levitate +b_wonderguard_and_levitate: @ 80472A8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r6, 0 + movs r5, 0 + ldr r0, =gCurrentMove + ldrh r1, [r0] + mov r9, r0 + cmp r1, 0xA5 + bne _080472C0 + b _08047508 +_080472C0: + ldr r2, =gBattleMoves + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + ldrb r0, [r1, 0x1] + cmp r0, 0 + bne _080472D2 + b _08047508 +_080472D2: + ldr r0, =gBattleStruct + ldr r0, [r0] + ldrb r0, [r0, 0x13] + cmp r0, 0 + beq _080472F4 + movs r1, 0x3F + mov r12, r1 + mov r2, r12 + ands r2, r0 + mov r12, r2 + b _080472F8 + .pool +_080472F4: + ldrb r1, [r1, 0x2] + mov r12, r1 +_080472F8: + ldr r2, =gBattleMons + ldr r3, =gBankTarget + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x20 + ldrb r1, [r0] + adds r7, r2, 0 + mov r8, r3 + cmp r1, 0x1A + bne _0804733C + mov r0, r12 + cmp r0, 0x4 + bne _0804733C + ldr r0, =gLastUsedAbility + strb r1, [r0] + ldr r0, =gBattleCommunication + mov r1, r12 + strb r1, [r0, 0x6] + ldrb r0, [r3] + movs r1, 0x1A + bl RecordAbilityBattle + b _08047508 + .pool +_0804733C: + ldr r1, =gUnknown_0831ACE8 + adds r0, r5, r1 + ldrb r0, [r0] + adds r4, r1, 0 + b _0804748E + .pool +_0804734C: + adds r0, r5, r4 + ldrb r0, [r0] + cmp r0, r12 + beq _08047356 + b _08047488 +_08047356: + adds r2, r5, 0x1 + adds r3, r2, r4 + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r7 + adds r0, 0x21 + ldrb r1, [r3] + adds r3, r2, 0 + ldrb r0, [r0] + cmp r1, r0 + bne _08047396 + adds r0, r5, 0x2 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _08047396 + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strb r0, [r2] + ldr r1, =gProtectStructs + ldr r0, =gBankAttacker + ldrb r2, [r0] + lsls r2, 4 + adds r2, r1 + ldrb r0, [r2, 0x1] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2, 0x1] +_08047396: + adds r2, r3, r4 + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r7 + adds r1, r0, 0 + adds r1, 0x22 + ldrb r2, [r2] + ldrb r1, [r1] + cmp r2, r1 + bne _080473DC + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, r2 + beq _080473DC + adds r0, r5, 0x2 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _080473DC + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strb r0, [r2] + ldr r1, =gProtectStructs + ldr r0, =gBankAttacker + ldrb r2, [r0] + lsls r2, 4 + adds r2, r1 + ldrb r0, [r2, 0x1] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2, 0x1] +_080473DC: + adds r2, r3, r4 + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r7 + adds r0, 0x21 + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + bne _08047400 + adds r0, r5, 0x2 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0x14 + bne _08047400 + movs r0, 0x1 + orrs r6, r0 +_08047400: + adds r2, r3, r4 + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r7 + adds r1, r0, 0 + adds r1, 0x22 + ldrb r2, [r2] + ldrb r1, [r1] + cmp r2, r1 + bne _0804742E + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, r2 + beq _0804742E + adds r0, r5, 0x2 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0x14 + bne _0804742E + movs r0, 0x1 + orrs r6, r0 +_0804742E: + adds r2, r3, r4 + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r7 + adds r0, 0x21 + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + bne _08047456 + adds r0, r5, 0x2 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0x5 + bne _08047456 + movs r0, 0x2 + orrs r6, r0 + lsls r0, r6, 24 + lsrs r6, r0, 24 +_08047456: + adds r2, r3, r4 + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r7 + adds r1, r0, 0 + adds r1, 0x22 + ldrb r2, [r2] + ldrb r1, [r1] + cmp r2, r1 + bne _08047488 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, r2 + beq _08047488 + adds r0, r5, 0x2 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0x5 + bne _08047488 + movs r0, 0x2 + orrs r6, r0 + lsls r0, r6, 24 + lsrs r6, r0, 24 +_08047488: + adds r5, 0x3 + adds r0, r5, r4 + ldrb r0, [r0] +_0804748E: + cmp r0, 0xFF + beq _080474B2 + cmp r0, 0xFE + beq _08047498 + b _0804734C +_08047498: + mov r2, r8 + ldrb r1, [r2] + movs r0, 0x58 + muls r0, r1 + adds r1, r7, 0 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 22 + ands r0, r1 + cmp r0, 0 + beq _08047488 +_080474B2: + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r7 + adds r0, 0x20 + ldrb r4, [r0] + cmp r4, 0x19 + bne _08047508 + ldr r0, =gBankAttacker + ldrb r0, [r0] + mov r2, r9 + ldrh r1, [r2] + bl move_weather_interaction + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _08047508 + movs r0, 0x3 + ands r6, r0 + cmp r6, 0x1 + beq _08047508 + ldr r2, =gBattleMoves + mov r0, r9 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _08047508 + ldr r0, =gLastUsedAbility + strb r4, [r0] + ldr r1, =gBattleCommunication + movs r0, 0x3 + strb r0, [r1, 0x6] + mov r1, r8 + ldrb r0, [r1] + movs r1, 0x19 + bl RecordAbilityBattle +_08047508: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end b_wonderguard_and_levitate + + thumb_func_start b_attack_effectivity_adapt +b_attack_effectivity_adapt: @ 804752C + push {r4-r7,lr} + adds r6, r2, 0 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 16 + lsrs r5, r1, 16 + ldr r7, =gBattleMoveDamage + ldr r0, [r7] + muls r0, r4 + movs r1, 0xA + bl __divsi3 + str r0, [r7] + cmp r0, 0 + bne _08047552 + cmp r4, 0 + beq _08047552 + movs r0, 0x1 + str r0, [r7] +_08047552: + cmp r4, 0x5 + beq _0804757A + cmp r4, 0x5 + bgt _08047564 + cmp r4, 0 + beq _0804756A + b _080475DE + .pool +_08047564: + cmp r4, 0x14 + beq _080475AC + b _080475DE +_0804756A: + ldrb r0, [r6] + movs r1, 0x8 + orrs r0, r1 + movs r1, 0xFB + ands r0, r1 + movs r1, 0xFD + ands r0, r1 + b _080475DC +_0804757A: + ldr r0, =gBattleMoves + lsls r1, r5, 1 + adds r1, r5 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + cmp r0, 0 + beq _080475DE + ldrb r1, [r6] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _080475DE + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080475A8 + movs r0, 0xFD + ands r0, r1 + b _080475DC + .pool +_080475A8: + movs r0, 0x4 + b _080475DA +_080475AC: + ldr r0, =gBattleMoves + lsls r1, r5, 1 + adds r1, r5 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + cmp r0, 0 + beq _080475DE + ldrb r1, [r6] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _080475DE + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080475D8 + movs r0, 0xFB + ands r0, r1 + b _080475DC + .pool +_080475D8: + movs r0, 0x2 +_080475DA: + orrs r0, r1 +_080475DC: + strb r0, [r6] +_080475DE: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end b_attack_effectivity_adapt + + thumb_func_start move_effectiveness_something +move_effectiveness_something: @ 80475E4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0x4] + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + movs r0, 0 + mov r8, r0 + mov r0, sp + mov r1, r8 + strb r1, [r0] + mov r2, r10 + cmp r2, 0xA5 + bne _08047616 + movs r0, 0 + b _0804779E +_08047616: + ldr r1, =gBattleMoves + mov r3, r10 + lsls r2, r3, 1 + adds r0, r2, r3 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x2] + str r0, [sp, 0x8] + ldr r1, =gBattleMons + movs r0, 0x58 + ldr r3, [sp, 0x4] + muls r0, r3 + adds r3, r0, r1 + adds r0, r3, 0 + adds r0, 0x21 + ldrb r0, [r0] + str r2, [sp, 0xC] + adds r5, r1, 0 + ldr r1, [sp, 0x8] + cmp r0, r1 + beq _0804764A + adds r0, r3, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, r1 + bne _0804765C +_0804764A: + ldr r4, =gBattleMoveDamage + ldr r1, [r4] + lsls r0, r1, 4 + subs r0, r1 + str r0, [r4] + movs r1, 0xA + bl __divsi3 + str r0, [r4] +_0804765C: + movs r0, 0x58 + mov r2, r9 + muls r2, r0 + adds r0, r2, 0 + adds r0, r5 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x1A + bne _08047690 + ldr r3, [sp, 0x8] + cmp r3, 0x4 + bne _08047690 + movs r1, 0x9 + mov r0, sp + ldrb r0, [r0] + orrs r0, r1 + mov r1, sp + strb r0, [r1] + b _08047740 + .pool +_08047690: + ldr r1, =gUnknown_0831ACE8 + mov r2, r8 + adds r0, r2, r1 + ldrb r0, [r0] + adds r2, r1, 0 + cmp r0, 0xFF + beq _08047740 + cmp r0, 0xFE + bne _080476B6 + movs r0, 0x58 + mov r3, r9 + muls r3, r0 + adds r0, r3, 0 + b _0804772E + .pool +_080476B0: + movs r0, 0x3 + add r8, r0 + b _08047718 +_080476B6: + ldr r7, =gUnknown_0831ACE8 + mov r1, r8 + adds r0, r1, r7 + ldrb r0, [r0] + ldr r2, [sp, 0x8] + cmp r0, r2 + bne _08047710 + adds r1, 0x1 + adds r1, r7 + ldr r2, =gBattleMons + movs r0, 0x58 + mov r3, r9 + muls r3, r0 + adds r0, r3, 0 + adds r5, r0, r2 + adds r6, r5, 0 + adds r6, 0x21 + ldrb r4, [r1] + ldrb r0, [r6] + cmp r4, r0 + bne _080476F0 + mov r0, r8 + adds r0, 0x2 + adds r0, r7 + ldrb r0, [r0] + mov r1, r10 + mov r2, sp + bl b_attack_effectivity_adapt +_080476F0: + adds r0, r5, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r4, r0 + bne _08047710 + ldrb r0, [r6] + cmp r0, r4 + beq _08047710 + mov r0, r8 + adds r0, 0x2 + adds r0, r7 + ldrb r0, [r0] + mov r1, r10 + mov r2, sp + bl b_attack_effectivity_adapt +_08047710: + movs r1, 0x3 + add r8, r1 + ldr r5, =gBattleMons + ldr r2, =gUnknown_0831ACE8 +_08047718: + mov r3, r8 + adds r0, r3, r2 + ldrb r0, [r0] + cmp r0, 0xFF + beq _08047740 + cmp r0, 0xFE + bne _080476B6 + movs r0, 0x58 + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 +_0804772E: + adds r1, r5, 0 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 22 + ands r0, r1 + cmp r0, 0 + beq _080476B0 +_08047740: + movs r0, 0x58 + mov r2, r9 + muls r2, r0 + adds r0, r2, 0 + adds r0, r5 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x19 + bne _0804779A + mov r0, sp + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0804779A + ldr r0, [sp, 0x4] + mov r1, r10 + bl move_weather_interaction + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x2 + bne _0804779A + mov r0, sp + ldrb r3, [r0] + adds r0, r1, 0 + ands r0, r3 + cmp r0, 0 + beq _08047782 + movs r0, 0x6 + ands r0, r3 + cmp r0, 0x6 + bne _0804779A +_08047782: + ldr r0, =gBattleMoves + ldr r1, [sp, 0xC] + add r1, r10 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + cmp r0, 0 + beq _0804779A + mov r0, sp + movs r1, 0x1 + orrs r1, r3 + strb r1, [r0] +_0804779A: + mov r0, sp + ldrb r0, [r0] +_0804779E: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end move_effectiveness_something + + thumb_func_start ai_rate_move +ai_rate_move: @ 80477BC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x4] + movs r7, 0 + mov r0, sp + strb r7, [r0] + ldr r2, =gBaseStats + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x6] + mov r9, r1 + ldrb r0, [r0, 0x7] + mov r8, r0 + cmp r6, 0xA5 + bne _080477FC + movs r0, 0 + b _080478A0 + .pool +_080477FC: + ldr r2, =gBattleMoves + lsls r1, r6, 1 + adds r0, r1, r6 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x2] + mov r10, r0 + str r1, [sp, 0x8] + ldr r3, [sp, 0x4] + cmp r3, 0x1A + bne _08047824 + cmp r0, 0x4 + bne _08047824 + movs r1, 0x9 + mov r0, sp + strb r1, [r0] + b _0804786A + .pool +_08047824: + ldr r0, =gUnknown_0831ACE8 + adds r1, r7, r0 + ldrb r0, [r1] + cmp r0, 0xFF + beq _0804786A + adds r4, r1, 0 +_08047830: + ldrb r0, [r4] + cmp r0, 0xFE + beq _0804785C + cmp r0, r10 + bne _0804785C + ldrb r5, [r4, 0x1] + cmp r5, r9 + bne _0804784A + ldrb r0, [r4, 0x2] + adds r1, r6, 0 + mov r2, sp + bl b_attack_effectivity_adapt +_0804784A: + cmp r5, r8 + bne _0804785C + cmp r9, r8 + beq _0804785C + ldrb r0, [r4, 0x2] + adds r1, r6, 0 + mov r2, sp + bl b_attack_effectivity_adapt +_0804785C: + adds r4, 0x3 + adds r7, 0x3 + ldr r1, =gUnknown_0831ACE8 + adds r0, r7, r1 + ldrb r0, [r0] + cmp r0, 0xFF + bne _08047830 +_0804786A: + ldr r3, [sp, 0x4] + cmp r3, 0x19 + bne _0804789C + mov r0, sp + ldrb r2, [r0] + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + beq _08047884 + movs r0, 0x6 + ands r0, r2 + cmp r0, 0x6 + bne _0804789C +_08047884: + ldr r0, =gBattleMoves + ldr r3, [sp, 0x8] + adds r1, r3, r6 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + cmp r0, 0 + beq _0804789C + mov r0, sp + movs r1, 0x8 + orrs r1, r2 + strb r1, [r0] +_0804789C: + mov r0, sp + ldrb r0, [r0] +_080478A0: + 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 ai_rate_move + + thumb_func_start sub_80478B8 +sub_80478B8: @ 80478B8 + push {r4,lr} + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xF + ands r0, r1 + movs r1, 0x64 + subs r1, r0 + lsls r1, 16 + lsrs r1, 16 + ldr r4, =gBattleMoveDamage + ldr r0, [r4] + cmp r0, 0 + beq _080478EA + muls r0, r1 + str r0, [r4] + movs r1, 0x64 + bl __divsi3 + str r0, [r4] + cmp r0, 0 + bne _080478EA + movs r0, 0x1 + str r0, [r4] +_080478EA: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80478B8 + + thumb_func_start atk07_cmd7 +atk07_cmd7: @ 80478F4 + push {r4-r7,lr} + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xF + ands r0, r1 + movs r1, 0x64 + subs r1, r0 + lsls r1, 16 + lsrs r1, 16 + ldr r4, =gBattleMoveDamage + ldr r0, [r4] + cmp r0, 0 + beq _08047926 + muls r0, r1 + str r0, [r4] + movs r1, 0x64 + bl __divsi3 + str r0, [r4] + cmp r0, 0 + bne _08047926 + movs r0, 0x1 + str r0, [r4] +_08047926: + ldr r7, =gBattleMons + ldr r6, =gBankTarget + ldrb r2, [r6] + movs r5, 0x58 + adds r0, r2, 0 + muls r0, r5 + adds r1, r0, r7 + ldrh r0, [r1, 0x2E] + cmp r0, 0xAF + bne _0804795C + ldr r1, =gEnigmaBerries + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r4, [r0, 0x7] + ldrb r6, [r0, 0x1A] + b _08047976 + .pool +_0804795C: + ldrh r0, [r1, 0x2E] + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r0, [r6] + muls r0, r5 + adds r0, r7 + ldrh r0, [r0, 0x2E] + bl ItemId_GetHoldEffectParam + lsls r0, 24 + lsrs r6, r0, 24 +_08047976: + ldr r1, =gUnknown_0202420F + ldr r5, =gBankTarget + ldrb r0, [r5] + strb r0, [r1] + cmp r4, 0x27 + bne _080479B4 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, r6 + bcs _080479B4 + ldrb r0, [r5] + movs r1, 0x27 + bl b_history__record_item_x12_of_player + ldr r2, =gSpecialStatuses + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] +_080479B4: + ldr r2, =gBattleMons + ldr r3, =gBankTarget + ldrb r4, [r3] + movs r0, 0x58 + muls r0, r4 + adds r1, r2, 0 + adds r1, 0x50 + adds r0, r1 + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 17 + ands r1, r0 + adds r5, r2, 0 + cmp r1, 0 + bne _08047A84 + ldr r2, =gBattleMoves + ldr r0, =gCurrentMove + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x65 + beq _08047A06 + ldr r0, =gProtectStructs + lsls r1, r4, 4 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 30 + cmp r0, 0 + blt _08047A06 + ldr r0, =gSpecialStatuses + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + lsrs r0, 7 + cmp r0, 0 + beq _08047A84 +_08047A06: + ldrb r0, [r3] + movs r4, 0x58 + muls r0, r4 + adds r0, r5 + ldrh r1, [r0, 0x28] + ldr r2, =gBattleMoveDamage + ldr r0, [r2] + cmp r1, r0 + bgt _08047A84 + subs r0, r1, 0x1 + str r0, [r2] + ldr r1, =gProtectStructs + ldrb r3, [r3] + lsls r0, r3, 4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + cmp r0, 0 + bge _08047A5C + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + b _08047A84 + .pool +_08047A5C: + ldr r0, =gSpecialStatuses + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + lsrs r0, 7 + cmp r0, 0 + beq _08047A84 + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, =gUnknown_02024208 + adds r0, r3, 0 + muls r0, r4 + adds r0, r5 + ldrh r0, [r0, 0x2E] + strh r0, [r1] +_08047A84: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk07_cmd7 + + thumb_func_start atk08_cmd8 +atk08_cmd8: @ 8047AA4 + push {r4-r7,lr} + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xF + ands r0, r1 + movs r1, 0x64 + subs r1, r0 + lsls r1, 16 + lsrs r1, 16 + ldr r4, =gBattleMoveDamage + ldr r0, [r4] + cmp r0, 0 + beq _08047AD6 + muls r0, r1 + str r0, [r4] + movs r1, 0x64 + bl __divsi3 + str r0, [r4] + cmp r0, 0 + bne _08047AD6 + movs r0, 0x1 + str r0, [r4] +_08047AD6: + ldr r7, =gBattleMons + ldr r6, =gBankTarget + ldrb r2, [r6] + movs r5, 0x58 + adds r0, r2, 0 + muls r0, r5 + adds r1, r0, r7 + ldrh r0, [r1, 0x2E] + cmp r0, 0xAF + bne _08047B0C + ldr r1, =gEnigmaBerries + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r4, [r0, 0x7] + ldrb r6, [r0, 0x1A] + b _08047B26 + .pool +_08047B0C: + ldrh r0, [r1, 0x2E] + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r0, [r6] + muls r0, r5 + adds r0, r7 + ldrh r0, [r0, 0x2E] + bl ItemId_GetHoldEffectParam + lsls r0, 24 + lsrs r6, r0, 24 +_08047B26: + ldr r1, =gUnknown_0202420F + ldr r5, =gBankTarget + ldrb r0, [r5] + strb r0, [r1] + cmp r4, 0x27 + bne _08047B64 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, r6 + bcs _08047B64 + ldrb r0, [r5] + movs r1, 0x27 + bl b_history__record_item_x12_of_player + ldr r2, =gSpecialStatuses + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] +_08047B64: + ldr r4, =gBattleMons + ldr r6, =gBankTarget + ldrb r2, [r6] + movs r7, 0x58 + adds r3, r2, 0 + muls r3, r7 + adds r0, r4, 0 + adds r0, 0x50 + adds r0, r3, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + bne _08047C10 + ldr r5, =gProtectStructs + lsls r0, r2, 4 + adds r0, r5 + ldrb r0, [r0] + lsls r0, 30 + cmp r0, 0 + blt _08047BA2 + ldr r0, =gSpecialStatuses + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + lsrs r0, 7 + cmp r0, 0 + beq _08047C10 +_08047BA2: + adds r0, r3, r4 + ldrh r1, [r0, 0x28] + ldr r2, =gBattleMoveDamage + ldr r0, [r2] + cmp r1, r0 + bgt _08047C10 + subs r0, r1, 0x1 + str r0, [r2] + ldrb r3, [r6] + lsls r0, r3, 4 + adds r0, r5 + ldrb r0, [r0] + lsls r0, 30 + cmp r0, 0 + bge _08047BE8 + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + b _08047C10 + .pool +_08047BE8: + ldr r0, =gSpecialStatuses + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + lsrs r0, 7 + cmp r0, 0 + beq _08047C10 + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, =gUnknown_02024208 + adds r0, r3, 0 + muls r0, r7 + adds r0, r4 + ldrh r0, [r0, 0x2E] + strh r0, [r1] +_08047C10: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk08_cmd8 + + thumb_func_start atk09_attackanimation +atk09_attackanimation: @ 8047C30 + push {r4-r7,lr} + sub sp, 0x10 + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + beq _08047C3E + b _08047DB6 +_08047C3E: + ldr r0, =gHitMarker + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + ldr r5, =gCurrentMove + cmp r0, 0 + beq _08047C8C + ldrh r0, [r5] + cmp r0, 0x90 + beq _08047C8C + cmp r0, 0xA4 + beq _08047C8C + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, =gUnknown_082DABB9 + str r0, [r4] + ldr r1, =gBattleScripting + ldrb r0, [r1, 0x18] + adds r0, 0x1 + strb r0, [r1, 0x18] + ldrb r0, [r1, 0x19] + adds r0, 0x1 + strb r0, [r1, 0x19] + b _08047DB6 + .pool +_08047C8C: + ldr r2, =gBattleMoves + ldrh r1, [r5] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x6] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _08047CB2 + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _08047CB2 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08047CBA +_08047CB2: + ldr r0, =gBattleScripting + ldrb r0, [r0, 0x19] + cmp r0, 0 + bne _08047D88 +_08047CBA: + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _08047DA8 + ldr r1, =gActiveBank + ldr r3, =gBankAttacker + ldrb r0, [r3] + strb r0, [r1] + ldr r2, =gBattleMons + ldr r0, =gBankTarget + ldrb r1, [r0] + movs r0, 0x58 + adds r4, r1, 0 + muls r4, r0 + adds r0, r2, 0 + adds r0, 0x50 + adds r0, r4, r0 + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 17 + ands r1, r0 + adds r7, r3, 0 + mov r12, r2 + cmp r1, 0 + beq _08047D18 + ldr r0, =gUnknown_02024212 + ldrb r6, [r0] + b _08047D42 + .pool +_08047D18: + ldr r3, =gUnknown_02024212 + ldrb r0, [r3] + cmp r0, 0x1 + bls _08047D40 + mov r1, r12 + adds r0, r4, r1 + ldrh r2, [r0, 0x28] + ldr r0, =gBattleMoveDamage + ldr r1, [r0] + movs r6, 0x1 + adds r4, r0, 0 + cmp r2, r1 + ble _08047D44 + ldrb r6, [r3] + b _08047D44 + .pool +_08047D40: + ldrb r6, [r3] +_08047D42: + ldr r4, =gBattleMoveDamage +_08047D44: + ldrh r1, [r5] + ldr r5, =gBattleScripting + ldrb r2, [r5, 0x18] + ldr r0, =gBattleMovePower + ldrh r3, [r0] + ldr r0, [r4] + str r0, [sp] + ldrb r4, [r7] + movs r0, 0x58 + muls r0, r4 + add r0, r12 + adds r0, 0x2B + ldrb r0, [r0] + str r0, [sp, 0x4] + ldrb r4, [r7] + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + ldr r4, =gDisableStructs + adds r0, r4 + str r0, [sp, 0x8] + str r6, [sp, 0xC] + movs r0, 0 + bl dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes + ldrb r0, [r5, 0x18] + adds r0, 0x1 + strb r0, [r5, 0x18] + ldrb r0, [r5, 0x19] + adds r0, 0x1 + strb r0, [r5, 0x19] + ldrb r0, [r7] + bl dp01_battle_side_mark_buffer_for_execution +_08047D88: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + b _08047DB6 + .pool +_08047DA8: + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, =gUnknown_082DABB9 + str r0, [r4] +_08047DB6: + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk09_attackanimation + + thumb_func_start sub_8047DC8 +sub_8047DC8: @ 8047DC8 + push {lr} + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + bne _08047DDA + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_08047DDA: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8047DC8 + + thumb_func_start atk0B_graphicalhpupdate +atk0B_graphicalhpupdate: @ 8047DE8 + push {r4,lr} + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + bne _08047EAA + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _08047EA2 + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r2, =gActiveBank + strb r0, [r2] + ldr r1, =gBattleMons + ldrb r2, [r2] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _08047E68 + ldr r0, =gDisableStructs + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0xA] + cmp r0, 0 + beq _08047E68 + ldr r0, =gHitMarker + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 1 + ands r0, r1 + cmp r0, 0 + bne _08047E68 + movs r0, 0x80 + adds r1, r2, 0 + bl b_std_message + b _08047EA2 + .pool +_08047E68: + ldr r0, =gBattleMoveDamage + ldr r0, [r0] + ldr r1, =0x00002710 + cmp r0, r1 + bgt _08047E76 + lsls r0, 16 + lsrs r1, r0, 16 +_08047E76: + movs r0, 0 + bl dp01_build_cmdbuf_x18_0_aa_health_bar_update + ldr r4, =gActiveBank + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldrb r0, [r4] + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _08047EA2 + ldr r0, =gBattleMoveDamage + ldr r0, [r0] + cmp r0, 0 + ble _08047EA2 + ldr r0, =gUnknown_03005D10 + ldrb r1, [r0, 0x5] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0, 0x5] +_08047EA2: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] +_08047EAA: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atk0B_graphicalhpupdate + + thumb_func_start atk0C_datahpupdate +atk0C_datahpupdate: @ 8047EC4 + push {r4-r7,lr} + sub sp, 0x4 + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + beq _08047ED2 + b _080482A2 +_08047ED2: + ldr r0, =gBattleStruct + ldr r0, [r0] + ldrb r1, [r0, 0x13] + cmp r1, 0 + beq _08047EF4 + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08047EF4 + movs r6, 0x3F + ands r6, r1 + b _08047F04 + .pool +_08047EF4: + ldr r2, =gBattleMoves + ldr r0, =gCurrentMove + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r6, [r0, 0x2] +_08047F04: + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _08047F12 + b _08048274 +_08047F12: + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r7, =gActiveBank + strb r0, [r7] + ldr r1, =gBattleMons + ldrb r2, [r7] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _08048028 + ldr r0, =gDisableStructs + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r4, r1, r0 + ldrb r1, [r4, 0xA] + mov r12, r0 + cmp r1, 0 + beq _08048028 + ldr r0, =gHitMarker + ldr r3, [r0] + movs r0, 0x80 + lsls r0, 1 + ands r3, r0 + cmp r3, 0 + bne _08048028 + adds r5, r1, 0 + ldr r6, =gBattleMoveDamage + ldr r4, [r6] + cmp r5, r4 + blt _08047FBC + ldr r0, =gSpecialStatuses + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 2 + adds r0, 0x4 + adds r1, r0 + ldr r0, [r1] + cmp r0, 0 + bne _08047F76 + str r4, [r1] +_08047F76: + ldrb r0, [r7] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + add r1, r12 + ldr r2, [r6] + ldrb r0, [r1, 0xA] + subs r0, r2 + strb r0, [r1, 0xA] + ldr r1, =gUnknown_020241F4 + ldr r0, [r6] + str r0, [r1] + b _08047FEC + .pool +_08047FBC: + ldr r0, =gSpecialStatuses + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 2 + adds r0, 0x4 + adds r1, r0 + ldr r0, [r1] + cmp r0, 0 + bne _08047FD0 + str r5, [r1] +_08047FD0: + ldr r2, =gUnknown_020241F4 + ldrb r1, [r7] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r12 + ldrb r0, [r0, 0xA] + str r0, [r2] + ldrb r1, [r7] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r12 + strb r3, [r0, 0xA] +_08047FEC: + ldr r0, =gActiveBank + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r12 + ldrb r0, [r0, 0xA] + cmp r0, 0 + beq _08048000 + b _0804829A +_08048000: + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + adds r0, 0x2 + str r0, [r4] + bl b_movescr_stack_push_cursor + ldr r0, =gUnknown_082DB6FB + str r0, [r4] + b _080482A2 + .pool +_08048028: + ldr r0, =gHitMarker + ldr r2, [r0] + ldr r1, =0xfffffeff + ands r2, r1 + str r2, [r0] + ldr r1, =gBattleMoveDamage + ldr r5, [r1] + mov r12, r0 + adds r7, r1, 0 + cmp r5, 0 + bge _0804807C + ldr r4, =gBattleMons + ldr r2, =gActiveBank + ldrb r0, [r2] + movs r3, 0x58 + adds r1, r0, 0 + muls r1, r3 + adds r1, r4 + ldrh r0, [r1, 0x28] + subs r0, r5 + strh r0, [r1, 0x28] + ldrb r0, [r2] + muls r0, r3 + adds r1, r0, r4 + ldrh r3, [r1, 0x2C] + ldrh r0, [r1, 0x28] + adds r5, r2, 0 + cmp r0, r3 + bhi _08048064 + b _0804823A +_08048064: + strh r3, [r1, 0x28] + b _0804823A + .pool +_0804807C: + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + beq _08048098 + movs r0, 0x21 + negs r0, r0 + ands r2, r0 + mov r0, r12 + str r2, [r0] + ldr r5, =gActiveBank + b _080480E0 + .pool +_08048098: + ldr r0, =gUnknown_020241F8 + ldr r2, =gActiveBank + ldrb r1, [r2] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + adds r0, r5 + str r0, [r1] + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r0, [r0, 0x1] + adds r5, r2, 0 + cmp r0, 0 + bne _080480D4 + ldr r1, =gUnknown_02024288 + ldrb r0, [r5] + adds r0, r1 + ldr r1, =gBankAttacker + b _080480DC + .pool +_080480D4: + ldr r1, =gUnknown_02024288 + ldrb r0, [r5] + adds r0, r1 + ldr r1, =gBankTarget +_080480DC: + ldrb r1, [r1] + strb r1, [r0] +_080480E0: + ldr r4, =gBattleMons + ldrb r0, [r5] + movs r3, 0x58 + muls r0, r3 + adds r2, r0, r4 + ldrh r0, [r2, 0x28] + ldr r1, [r7] + cmp r0, r1 + ble _08048110 + subs r0, r1 + strh r0, [r2, 0x28] + ldr r0, =gUnknown_020241F4 + str r1, [r0] + adds r7, r0, 0 + b _08048120 + .pool +_08048110: + ldr r2, =gUnknown_020241F4 + str r0, [r2] + ldrb r0, [r5] + muls r0, r3 + adds r0, r4 + movs r1, 0 + strh r1, [r0, 0x28] + adds r7, r2, 0 +_08048120: + ldr r2, =gSpecialStatuses + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r1, r2, 0x4 + adds r3, r0, r1 + ldr r0, [r3] + adds r4, r2, 0 + cmp r0, 0 + bne _08048148 + mov r1, r12 + ldr r0, [r1] + movs r1, 0x80 + lsls r1, 13 + ands r0, r1 + cmp r0, 0 + bne _08048148 + ldr r0, [r7] + str r0, [r3] +_08048148: + cmp r6, 0x8 + bhi _080481D0 + mov r1, r12 + ldr r0, [r1] + movs r1, 0x80 + lsls r1, 13 + ands r0, r1 + cmp r0, 0 + bne _080481CC + ldr r0, =gCurrentMove + ldrh r0, [r0] + cmp r0, 0xDC + beq _080481CC + ldr r3, =gProtectStructs + ldrb r0, [r5] + lsls r0, 4 + adds r1, r3, 0x4 + adds r0, r1 + ldr r2, [r7] + str r2, [r0] + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x8 + adds r0, r1 + str r2, [r0] + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _080481AC + ldrb r0, [r5] + lsls r0, 4 + adds r0, r3 + ldr r2, =gBankAttacker + b _080481B4 + .pool +_080481AC: + ldrb r0, [r5] + lsls r0, 4 + adds r0, r3 + ldr r2, =gBankTarget +_080481B4: + ldrb r1, [r2] + strb r1, [r0, 0xC] + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r2] + strb r1, [r0, 0x10] + b _0804823A + .pool +_080481CC: + cmp r6, 0x8 + bls _0804823A +_080481D0: + mov r1, r12 + ldr r0, [r1] + movs r1, 0x80 + lsls r1, 13 + ands r0, r1 + cmp r0, 0 + bne _0804823A + ldr r3, =gProtectStructs + ldrb r0, [r5] + lsls r0, 4 + adds r1, r3, 0 + adds r1, 0x8 + adds r0, r1 + ldr r2, [r7] + str r2, [r0] + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0xC + adds r0, r1 + str r2, [r0] + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _08048220 + ldrb r0, [r5] + lsls r0, 4 + adds r0, r3 + ldr r2, =gBankAttacker + b _08048228 + .pool +_08048220: + ldrb r0, [r5] + lsls r0, 4 + adds r0, r3 + ldr r2, =gBankTarget +_08048228: + ldrb r1, [r2] + strb r1, [r0, 0xD] + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r2] + strb r1, [r0, 0x11] +_0804823A: + mov r1, r12 + ldr r0, [r1] + ldr r1, =0xffefffff + ands r0, r1 + mov r1, r12 + str r0, [r1] + ldrb r1, [r5] + movs r0, 0x58 + muls r0, r1 + ldr r1, =gUnknown_020240AC + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x2A + movs r2, 0 + movs r3, 0x2 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r5] + bl dp01_battle_side_mark_buffer_for_execution + b _0804829A + .pool +_08048274: + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r1, =gActiveBank + strb r0, [r1] + ldr r2, =gSpecialStatuses + ldrb r1, [r1] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r2, 0x4 + adds r1, r0, r2 + ldr r0, [r1] + cmp r0, 0 + bne _0804829A + ldr r0, =0x0000ffff + str r0, [r1] +_0804829A: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] +_080482A2: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk0C_datahpupdate + + thumb_func_start atk0D_critmessage +atk0D_critmessage: @ 80482BC + push {lr} + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + bne _080482F2 + ldr r0, =gCritMultiplier + ldrb r0, [r0] + cmp r0, 0x2 + bne _080482EA + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _080482EA + ldr r0, =gBankAttacker + ldrb r1, [r0] + movs r0, 0xD9 + bl b_std_message + ldr r1, =gBattleCommunication + movs r0, 0x1 + strb r0, [r1, 0x7] +_080482EA: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_080482F2: + pop {r0} + bx r0 + .pool + thumb_func_end atk0D_critmessage + + thumb_func_start atk0E_missmessage +atk0E_missmessage: @ 8048310 + push {r4,lr} + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + bne _080483D0 + ldr r4, =gActiveBank + ldr r0, =gBankTarget + ldrb r0, [r0] + strb r0, [r4] + ldr r1, =gBattleMoveFlags + ldrb r2, [r1] + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + bne _080483C8 + movs r0, 0xFE + ands r0, r2 + cmp r0, 0x10 + beq _08048382 + cmp r0, 0x10 + bgt _0804835E + cmp r0, 0x4 + beq _08048372 + cmp r0, 0x4 + bgt _08048358 + cmp r0, 0x2 + beq _0804836C + b _08048382 + .pool +_08048358: + cmp r0, 0x8 + beq _080483C8 + b _08048382 +_0804835E: + cmp r0, 0x40 + beq _08048382 + cmp r0, 0x40 + bgt _08048382 + cmp r0, 0x20 + beq _080483C8 + b _08048382 +_0804836C: + movs r0, 0 + movs r1, 0xE + b _08048376 +_08048372: + movs r0, 0 + movs r1, 0xC +_08048376: + bl dp01_build_cmdbuf_x2B_aa_0 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + b _080483C8 +_08048382: + ldrb r1, [r1] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08048392 + movs r0, 0 + movs r1, 0xE + b _0804839E +_08048392: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080483B0 + movs r0, 0 + movs r1, 0xC +_0804839E: + bl dp01_build_cmdbuf_x2B_aa_0 + ldr r0, =gActiveBank + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution + b _080483C8 + .pool +_080483B0: + movs r0, 0x28 + ands r0, r1 + cmp r0, 0 + bne _080483C8 + movs r0, 0 + movs r1, 0xD + bl dp01_build_cmdbuf_x2B_aa_0 + ldr r0, =gActiveBank + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution +_080483C8: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_080483D0: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atk0E_missmessage + + thumb_func_start atk0F_resultmessage +atk0F_resultmessage: @ 80483E0 + push {r4-r7,lr} + movs r3, 0 + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + beq _080483EE + b _08048580 +_080483EE: + ldr r1, =gBattleMoveFlags + ldrb r2, [r1] + movs r4, 0x1 + adds r0, r4, 0 + ands r0, r2 + adds r6, r1, 0 + ldr r7, =gBattleCommunication + cmp r0, 0 + beq _0804842C + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + beq _0804840E + ldrb r0, [r7, 0x6] + cmp r0, 0x2 + bls _0804842C +_0804840E: + ldr r1, =gUnknown_085CC834 + ldrb r0, [r7, 0x6] + lsls r0, 1 + adds r0, r1 + ldrh r3, [r0] + strb r4, [r7, 0x7] + b _0804856A + .pool +_0804842C: + movs r0, 0x1 + strb r0, [r7, 0x7] + ldrb r5, [r6] + movs r0, 0xFE + ands r0, r5 + cmp r0, 0x10 + beq _08048470 + cmp r0, 0x10 + bgt _08048452 + cmp r0, 0x4 + beq _0804846C + cmp r0, 0x4 + bgt _0804844C + cmp r0, 0x2 + beq _08048468 + b _080484B8 +_0804844C: + cmp r0, 0x8 + beq _080484C4 + b _080484B8 +_08048452: + cmp r0, 0x40 + beq _08048474 + cmp r0, 0x40 + bgt _08048462 + cmp r0, 0x20 + bne _08048460 + b _08048564 +_08048460: + b _080484B8 +_08048462: + cmp r0, 0x80 + beq _08048478 + b _080484B8 +_08048468: + movs r3, 0xDE + b _0804856E +_0804846C: + movs r3, 0xDD + b _0804856E +_08048470: + movs r3, 0xDA + b _0804856E +_08048474: + movs r3, 0x99 + b _0804856E +_08048478: + ldr r4, =gUnknown_02024208 + ldr r2, =gBattleMons + ldr r3, =gBankTarget + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x2E] + strh r0, [r4] + ldr r1, =gUnknown_0202420F + ldrb r0, [r3] + strb r0, [r1] + movs r0, 0x3F + ands r0, r5 + strb r0, [r6] + bl b_movescr_stack_push_cursor + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DB816 + b _0804857E + .pool +_080484B8: + adds r2, r6, 0 + ldrb r5, [r2] + movs r0, 0x8 + ands r0, r5 + cmp r0, 0 + beq _080484C8 +_080484C4: + movs r3, 0x1B + b _0804856E +_080484C8: + movs r0, 0x10 + ands r0, r5 + cmp r0, 0 + beq _080484F0 + movs r0, 0xEF + ands r0, r5 + movs r1, 0xFD + ands r0, r1 + movs r1, 0xFB + ands r0, r1 + strb r0, [r2] + bl b_movescr_stack_push_cursor + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DB1CE + b _0804857E + .pool +_080484F0: + movs r0, 0x40 + ands r0, r5 + cmp r0, 0 + beq _08048510 + movs r0, 0x3F + ands r0, r5 + strb r0, [r2] + bl b_movescr_stack_push_cursor + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DB1C7 + b _0804857E + .pool +_08048510: + movs r0, 0x80 + ands r0, r5 + cmp r0, 0 + beq _08048558 + ldr r4, =gUnknown_02024208 + ldr r2, =gBattleMons + ldr r3, =gBankTarget + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x2E] + strh r0, [r4] + ldr r1, =gUnknown_0202420F + ldrb r0, [r3] + strb r0, [r1] + movs r0, 0x3F + ands r0, r5 + strb r0, [r6] + bl b_movescr_stack_push_cursor + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DB816 + b _0804857E + .pool +_08048558: + movs r0, 0x20 + ands r0, r5 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _08048568 +_08048564: + movs r3, 0xE5 + b _0804856E +_08048568: + strb r0, [r7, 0x7] +_0804856A: + cmp r3, 0 + beq _08048578 +_0804856E: + adds r0, r3, 0 + ldr r1, =gBankAttacker + ldrb r1, [r1] + bl b_std_message +_08048578: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 +_0804857E: + str r0, [r1] +_08048580: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk0F_resultmessage + + thumb_func_start atk10_printstring +atk10_printstring: @ 8048590 + push {r4,lr} + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + bne _080485BA + ldr r4, =gBattlescriptCurrInstr + ldr r1, [r4] + ldrb r0, [r1, 0x1] + ldrb r1, [r1, 0x2] + lsls r1, 8 + orrs r0, r1 + ldr r1, =gBankAttacker + ldrb r1, [r1] + bl b_std_message + ldr r0, [r4] + adds r0, 0x3 + str r0, [r4] + ldr r1, =gBattleCommunication + movs r0, 0x1 + strb r0, [r1, 0x7] +_080485BA: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atk10_printstring + + thumb_func_start atk11_printstring2 +atk11_printstring2: @ 80485D0 + push {r4,r5,lr} + ldr r5, =gActiveBank + ldr r0, =gBankAttacker + ldrb r0, [r0] + strb r0, [r5] + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + ldrb r1, [r0, 0x1] + ldrb r0, [r0, 0x2] + lsls r0, 8 + orrs r1, r0 + movs r0, 0 + bl dp01_build_cmdbuf_x11_TODO + ldrb r0, [r5] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r4] + adds r0, 0x3 + str r0, [r4] + ldr r1, =gBattleCommunication + movs r0, 0x1 + strb r0, [r1, 0x7] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end atk11_printstring2 + + thumb_func_start atk12_waitmessage +atk12_waitmessage: @ 8048614 + push {r4-r6,lr} + ldr r0, =gBattleExecBuffer + ldr r4, [r0] + cmp r4, 0 + bne _08048662 + ldr r6, =gBattleCommunication + ldrb r0, [r6, 0x7] + cmp r0, 0 + bne _0804863C + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x3 + str r0, [r1] + b _08048662 + .pool +_0804863C: + ldr r5, =gBattlescriptCurrInstr + ldr r2, [r5] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldr r3, =gUnknown_0202432C + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r3] + lsls r0, 16 + lsrs r0, 16 + cmp r0, r1 + bcc _08048662 + movs r1, 0 + strh r4, [r3] + adds r0, r2, 0x3 + str r0, [r5] + strb r1, [r6, 0x7] +_08048662: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end atk12_waitmessage + + thumb_func_start atk13_printfromtable +atk13_printfromtable: @ 8048670 + push {r4,r5,lr} + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + bne _080486AE + ldr r4, =gBattlescriptCurrInstr + ldr r2, [r4] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + ldr r5, =gBattleCommunication + ldrb r0, [r5, 0x5] + lsls r0, 1 + adds r1, r0 + ldrh r0, [r1] + ldr r1, =gBankAttacker + ldrb r1, [r1] + bl b_std_message + ldr r0, [r4] + adds r0, 0x5 + str r0, [r4] + movs r0, 0x1 + strb r0, [r5, 0x7] +_080486AE: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end atk13_printfromtable + + thumb_func_start atk14_printfromtable2 +atk14_printfromtable2: @ 80486C4 + push {r4-r6,lr} + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + bne _0804870E + ldr r5, =gBattlescriptCurrInstr + ldr r2, [r5] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + ldr r6, =gBattleCommunication + ldrb r0, [r6, 0x5] + lsls r0, 1 + adds r1, r0 + ldr r4, =gActiveBank + ldr r0, =gBankAttacker + ldrb r0, [r0] + strb r0, [r4] + ldrh r1, [r1] + movs r0, 0 + bl dp01_build_cmdbuf_x11_TODO + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r5] + adds r0, 0x5 + str r0, [r5] + movs r0, 0x1 + strb r0, [r6, 0x7] +_0804870E: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end atk14_printfromtable2 + + thumb_func_start sub_8048728 +sub_8048728: @ 8048728 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + movs r1, 0 + ldr r0, =gNoOfAllBanks + ldrb r3, [r0] + cmp r1, r3 + bge _0804874E + ldr r4, =gTurnOrder + ldrb r0, [r4] + cmp r0, r2 + beq _0804874E +_08048740: + adds r1, 0x1 + cmp r1, r3 + bge _0804874E + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, r2 + bne _08048740 +_0804874E: + lsls r0, r1, 24 + lsrs r0, 24 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8048728 + + thumb_func_start sub_8048760 +sub_8048760: @ 8048760 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + movs r0, 0 + mov r10, r0 + movs r7, 0 + movs r1, 0x1 + str r1, [sp, 0x4] + ldr r1, =gBattleCommunication + ldrb r3, [r1, 0x3] + movs r0, 0x40 + ands r0, r3 + cmp r0, 0 + beq _080487B8 + ldr r2, =gUnknown_0202420E + ldr r0, =gBankAttacker + ldrb r0, [r0] + strb r0, [r2] + movs r0, 0xBF + ands r0, r3 + adds r3, r1, 0 + strb r0, [r3, 0x3] + movs r7, 0x40 + ldr r1, =gBattleScripting + ldr r0, =gBankTarget + b _080487C4 + .pool +_080487B8: + ldr r2, =gUnknown_0202420E + ldr r0, =gBankTarget + ldrb r0, [r0] + strb r0, [r2] + ldr r1, =gBattleScripting + ldr r0, =gBankAttacker +_080487C4: + ldrb r0, [r0] + strb r0, [r1, 0x17] + mov r9, r2 + ldr r2, =gBattleMons + mov r4, r9 + ldrb r1, [r4] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x13 + bne _08048828 + ldr r0, =gHitMarker + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 6 + ands r0, r1 + cmp r0, 0 + bne _08048828 + cmp r5, 0 + bne _08048828 + ldr r1, =gBattleCommunication + ldrb r0, [r1, 0x3] + cmp r0, 0x9 + bhi _08048828 + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + ldr r2, =gBattleCommunication + strb r5, [r2, 0x3] + bl _080499B8 + .pool +_08048828: + mov r3, r9 + ldrb r0, [r3] + bl GetBankIdentity + ldr r2, =gUnknown_0202428E + movs r1, 0x1 + ands r1, r0 + lsls r1, 1 + adds r1, r2 + ldrh r1, [r1] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08048880 + ldr r0, =gHitMarker + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 6 + ands r0, r1 + cmp r0, 0 + bne _08048880 + cmp r5, 0 + bne _08048880 + ldr r0, =gBattleCommunication + ldrb r1, [r0, 0x3] + cmp r1, 0x7 + bhi _08048880 + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + ldr r4, =gBattleCommunication + strb r5, [r4, 0x3] + bl _080499B8 + .pool +_08048880: + ldr r3, =gBattleMons + ldr r2, =gUnknown_0202420E + ldrb r1, [r2] + movs r0, 0x58 + muls r0, r1 + adds r0, r3 + ldrh r4, [r0, 0x28] + mov r9, r2 + mov r8, r3 + cmp r4, 0 + bne _080488C4 + ldr r1, =gBattleCommunication + ldrb r0, [r1, 0x3] + cmp r0, 0xB + beq _080488C4 + cmp r0, 0x1F + beq _080488C4 + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + ldr r2, =gBattleCommunication + strb r4, [r2, 0x3] + bl _080499B8 + .pool +_080488C4: + mov r3, r9 + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + mov r1, r8 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _080488FC + cmp r7, 0x40 + beq _080488FC + ldr r0, =gBattlescriptCurrInstr + ldr r1, [r0] + adds r1, 0x1 + str r1, [r0] + movs r0, 0 + ldr r4, =gBattleCommunication + strb r0, [r4, 0x3] + bl _080499B8 + .pool +_080488FC: + ldr r1, =gBattleCommunication + ldrb r0, [r1, 0x3] + cmp r0, 0x6 + bls _08048906 + b _08048F40 +_08048906: + ldr r1, =gUnknown_0831C134 + ldr r2, =gBattleCommunication + ldrb r0, [r2, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0x10 + bne _08048918 + b _08048AFC +_08048918: + cmp r0, 0x10 + bhi _08048930 + cmp r0, 0x7 + beq _0804894A + cmp r0, 0x8 + beq _08048A00 + b _08048DF4 + .pool +_08048930: + cmp r0, 0x40 + bne _08048936 + b _08048C84 +_08048936: + cmp r0, 0x40 + bhi _08048942 + cmp r0, 0x20 + bne _08048940 + b _08048BEA +_08048940: + b _08048DF4 +_08048942: + cmp r0, 0x80 + bne _08048948 + b _08048D02 +_08048948: + b _08048DF4 +_0804894A: + mov r3, r9 + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + add r0, r8 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x2B + beq _080489AC + ldr r0, =gActiveBank + movs r1, 0 + strb r1, [r0] + ldr r1, =gNoOfAllBanks + ldrb r3, [r1] + adds r7, r0, 0 + mov r12, r1 + cmp r3, 0 + beq _080489B8 + mov r4, r8 + ldr r0, [r4, 0x50] + movs r1, 0x70 + ands r0, r1 + cmp r0, 0 + bne _080489B8 + adds r1, r7, 0 + mov r6, r8 + adds r6, 0x50 + movs r5, 0x58 + movs r4, 0x70 +_08048984: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, r3 + bcs _080489B8 + ldrb r0, [r7] + muls r0, r5 + adds r0, r6 + ldr r0, [r0] + ands r0, r4 + cmp r0, 0 + beq _08048984 + b _080489B8 + .pool +_080489AC: + ldr r0, =gActiveBank + ldr r2, =gNoOfAllBanks + ldrb r1, [r2] + strb r1, [r0] + adds r7, r0, 0 + mov r12, r2 +_080489B8: + mov r0, r9 + ldrb r2, [r0] + movs r0, 0x58 + adds r1, r2, 0 + muls r1, r0 + mov r0, r8 + adds r0, 0x4C + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080489D0 + b _08048DF4 +_080489D0: + ldrb r0, [r7] + mov r3, r12 + ldrb r3, [r3] + cmp r0, r3 + beq _080489DC + b _08048DF4 +_080489DC: + mov r4, r8 + adds r0, r1, r4 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x48 + bne _080489EA + b _08048DF4 +_080489EA: + cmp r0, 0xF + bne _080489F0 + b _08048DF4 +_080489F0: + adds r0, r2, 0 + bl CancelMultiTurnMoves + b _08048DE4 + .pool +_08048A00: + mov r2, r9 + ldrb r1, [r2] + movs r0, 0x58 + muls r0, r1 + add r0, r8 + adds r0, 0x20 + ldrb r1, [r0] + cmp r1, 0x11 + bne _08048A70 + cmp r5, 0x1 + beq _08048A1A + cmp r6, 0x80 + bne _08048A70 +_08048A1A: + ldr r0, =gLastUsedAbility + strb r1, [r0] + mov r3, r9 + ldrb r0, [r3] + movs r1, 0x11 + bl RecordAbilityBattle + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, =gUnknown_082DB5E9 + str r0, [r4] + ldr r2, =gHitMarker + ldr r1, [r2] + movs r0, 0x80 + lsls r0, 6 + ands r0, r1 + cmp r0, 0 + bne _08048A46 + b _08048D20 +_08048A46: + movs r0, 0x1 + ldr r4, =gBattleCommunication + strb r0, [r4, 0x5] +_08048A4C: + ldr r0, =0xffffdfff + ands r1, r0 + str r1, [r2] + bl _080499B2 + .pool +_08048A70: + mov r2, r9 + ldrb r0, [r2] + movs r1, 0x58 + muls r0, r1 + add r0, r8 + adds r1, r0, 0 + adds r1, 0x21 + ldrb r1, [r1] + cmp r1, 0x3 + beq _08048A94 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x3 + beq _08048A94 + cmp r1, 0x8 + beq _08048A94 + cmp r0, 0x8 + bne _08048AAE +_08048A94: + ldr r0, =gHitMarker + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 6 + ands r0, r1 + cmp r0, 0 + beq _08048AAE + cmp r5, 0x1 + bne _08048AA8 + b _08048D66 +_08048AA8: + cmp r6, 0x80 + bne _08048AAE + b _08048D66 +_08048AAE: + mov r3, r9 + ldrb r1, [r3] + movs r0, 0x58 + muls r1, r0 + mov r4, r8 + adds r3, r1, r4 + adds r0, r3, 0 + adds r0, 0x21 + ldrb r4, [r0] + cmp r4, 0x3 + bne _08048AC6 + b _08048DF4 +_08048AC6: + adds r0, 0x1 + ldrb r0, [r0] + cmp r0, 0x3 + bne _08048AD0 + b _08048DF4 +_08048AD0: + cmp r4, 0x8 + bne _08048AD6 + b _08048DF4 +_08048AD6: + cmp r0, 0x8 + bne _08048ADC + b _08048DF4 +_08048ADC: + mov r0, r8 + adds r0, 0x4C + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + beq _08048AEA + b _08048DF4 +_08048AEA: + adds r0, r3, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x11 + bne _08048AF6 + b _08048DF4 +_08048AF6: + b _08048DE4 + .pool +_08048AFC: + mov r2, r9 + ldrb r1, [r2] + movs r0, 0x58 + muls r0, r1 + add r0, r8 + adds r0, 0x20 + ldrb r1, [r0] + cmp r1, 0x29 + bne _08048B54 + cmp r5, 0x1 + beq _08048B16 + cmp r6, 0x80 + bne _08048B54 +_08048B16: + ldr r0, =gLastUsedAbility + strb r1, [r0] + mov r3, r9 + ldrb r0, [r3] + movs r1, 0x29 + bl RecordAbilityBattle + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, =gUnknown_082DB5D1 + str r0, [r4] + ldr r2, =gHitMarker + ldr r1, [r2] + movs r0, 0x80 + lsls r0, 6 + ands r0, r1 + cmp r0, 0 + beq _08048B42 + b _08048A46 +_08048B42: + b _08048D20 + .pool +_08048B54: + mov r2, r9 + ldrb r1, [r2] + movs r0, 0x58 + muls r0, r1 + mov r3, r8 + adds r1, r0, r3 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0xA + beq _08048B74 + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0xA + bne _08048BA4 +_08048B74: + ldr r0, =gHitMarker + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 6 + ands r0, r1 + cmp r0, 0 + beq _08048BA4 + cmp r5, 0x1 + beq _08048B8A + cmp r6, 0x80 + bne _08048BA4 +_08048B8A: + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, =gUnknown_082DB5D1 + b _08048D72 + .pool +_08048BA4: + mov r4, r9 + ldrb r0, [r4] + movs r1, 0x58 + adds r2, r0, 0 + muls r2, r1 + mov r0, r8 + adds r1, r2, r0 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0xA + bne _08048BBE + b _08048DF4 +_08048BBE: + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0xA + bne _08048BCA + b _08048DF4 +_08048BCA: + adds r0, r1, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x29 + bne _08048BD6 + b _08048DF4 +_08048BD6: + mov r0, r8 + adds r0, 0x4C + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, 0 + beq _08048BE4 + b _08048DF4 +_08048BE4: + movs r1, 0x1 + mov r10, r1 + b _08048DF4 +_08048BEA: + movs r0, 0 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0xD + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _08048C26 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x4D + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + cmp r0, 0 + bne _08048C26 + ldr r0, =gBattleWeather + ldrh r1, [r0] + movs r0, 0x60 + ands r0, r1 + cmp r0, 0 + beq _08048C26 + movs r2, 0 + str r2, [sp, 0x4] +_08048C26: + ldr r4, =gBattleMons + ldr r0, =gUnknown_0202420E + ldrb r3, [r0] + movs r0, 0x58 + adds r2, r3, 0 + muls r2, r0 + adds r1, r2, r4 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0xF + bne _08048C40 + b _08048DF4 +_08048C40: + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0xF + bne _08048C4C + b _08048DF4 +_08048C4C: + adds r0, r4, 0 + adds r0, 0x4C + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, 0 + beq _08048C5A + b _08048DF4 +_08048C5A: + ldr r4, [sp, 0x4] + cmp r4, 0 + bne _08048C62 + b _08048DF4 +_08048C62: + adds r0, r1, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x28 + bne _08048C6E + b _08048DF4 +_08048C6E: + adds r0, r3, 0 + bl CancelMultiTurnMoves + b _08048DE4 + .pool +_08048C84: + mov r2, r9 + ldrb r1, [r2] + movs r0, 0x58 + muls r1, r0 + mov r3, r8 + adds r0, r1, r3 + adds r0, 0x20 + ldrb r2, [r0] + cmp r2, 0x7 + bne _08048CF4 + cmp r5, 0x1 + beq _08048CA2 + cmp r6, 0x80 + beq _08048CA2 + b _08048DF4 +_08048CA2: + ldr r0, =gLastUsedAbility + strb r2, [r0] + mov r4, r9 + ldrb r0, [r4] + movs r1, 0x7 + bl RecordAbilityBattle + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, =gUnknown_082DB5DD + str r0, [r4] + ldr r2, =gHitMarker + ldr r1, [r2] + movs r0, 0x80 + lsls r0, 6 + ands r0, r1 + cmp r0, 0 + beq _08048CE8 + movs r0, 0x1 + ldr r3, =gBattleCommunication + strb r0, [r3, 0x5] + b _08048A4C + .pool +_08048CE8: + ldr r4, =gBattleCommunication + strb r0, [r4, 0x5] + bl _080499B2 + .pool +_08048CF4: + mov r0, r8 + adds r0, 0x4C + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + bne _08048DF4 + b _08048DE4 +_08048D02: + mov r2, r9 + ldrb r1, [r2] + movs r0, 0x58 + muls r0, r1 + add r0, r8 + adds r0, 0x20 + ldrb r1, [r0] + cmp r1, 0x11 + bne _08048D2C + cmp r5, 0x1 + bne _08048D1A + b _08048A1A +_08048D1A: + cmp r6, 0x80 + bne _08048D2C + b _08048A1A +_08048D20: + ldr r1, =gBattleCommunication + strb r0, [r1, 0x5] + bl _080499B2 + .pool +_08048D2C: + mov r2, r9 + ldrb r0, [r2] + movs r1, 0x58 + muls r0, r1 + add r0, r8 + adds r1, r0, 0 + adds r1, 0x21 + ldrb r1, [r1] + cmp r1, 0x3 + beq _08048D50 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x3 + beq _08048D50 + cmp r1, 0x8 + beq _08048D50 + cmp r0, 0x8 + bne _08048D94 +_08048D50: + ldr r0, =gHitMarker + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 6 + ands r0, r1 + cmp r0, 0 + beq _08048D94 + cmp r5, 0x1 + beq _08048D66 + cmp r6, 0x80 + bne _08048D94 +_08048D66: + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, =gUnknown_082DB5E9 +_08048D72: + str r0, [r4] + ldr r1, =gBattleCommunication + movs r2, 0 + movs r0, 0x2 + strb r0, [r1, 0x5] + strb r2, [r1, 0x3] + bl _080499B8 + .pool +_08048D94: + mov r3, r9 + ldrb r0, [r3] + movs r6, 0x58 + muls r0, r6 + mov r2, r8 + adds r2, 0x4C + adds r5, r0, r2 + ldr r4, [r5] + cmp r4, 0 + bne _08048DF4 + mov r3, r8 + adds r1, r0, r3 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r3, [r0] + cmp r3, 0x3 + beq _08048DEA + adds r0, 0x1 + ldrb r0, [r0] + cmp r0, 0x3 + beq _08048DEA + cmp r3, 0x8 + beq _08048DEA + cmp r0, 0x8 + beq _08048DEA + adds r0, r1, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x11 + beq _08048DF4 + mov r4, r9 + ldrb r0, [r4] + adds r1, r0, 0 + muls r1, r6 + adds r1, r2 + ldr r0, [r1] + movs r2, 0x9 + negs r2, r2 + ands r0, r2 + str r0, [r1] +_08048DE4: + movs r0, 0x1 + mov r10, r0 + b _08048DF4 +_08048DEA: + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r2, 0x8 + orrs r1, r2 + strb r1, [r0] +_08048DF4: + mov r1, r10 + cmp r1, 0x1 + beq _08048DFC + b _08048F1C +_08048DFC: + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r1, =gUnknown_0831C134 + ldr r0, =gBattleCommunication + ldrb r0, [r0, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r3, [r0] + cmp r3, 0x7 + bne _08048E50 + bl Random + ldr r2, =gBattleMons + ldr r1, =gUnknown_0202420E + ldrb r3, [r1] + movs r1, 0x58 + muls r3, r1 + adds r2, 0x4C + adds r3, r2 + movs r1, 0x3 + ands r1, r0 + adds r1, 0x2 + ldr r0, [r3] + orrs r0, r1 + str r0, [r3] + b _08048E64 + .pool +_08048E50: + ldr r2, =gBattleMons + ldr r0, =gUnknown_0202420E + ldrb r1, [r0] + movs r0, 0x58 + muls r1, r0 + adds r2, 0x4C + adds r1, r2 + ldr r0, [r1] + orrs r0, r3 + str r0, [r1] +_08048E64: + ldr r2, =gBattlescriptCurrInstr + ldr r1, =gUnknown_0831C224 + ldr r5, =gBattleCommunication + ldrb r0, [r5, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + str r0, [r2] + ldr r4, =gActiveBank + ldr r1, =gUnknown_0202420E + ldrb r0, [r1] + strb r0, [r4] + ldrb r1, [r1] + movs r0, 0x58 + muls r0, r1 + ldr r1, =gUnknown_020240D0 + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r2, 0 + movs r3, 0x4 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r2, =gHitMarker + ldr r1, [r2] + movs r0, 0x80 + lsls r0, 6 + ands r0, r1 + cmp r0, 0 + beq _08048ED8 + movs r0, 0x1 + strb r0, [r5, 0x5] + ldr r0, =0xffffdfff + ands r1, r0 + str r1, [r2] + b _08048EDA + .pool +_08048ED8: + strb r0, [r5, 0x5] +_08048EDA: + ldr r0, =gBattleCommunication + ldrb r2, [r0, 0x3] + cmp r2, 0x2 + beq _08048EF2 + cmp r2, 0x6 + beq _08048EF2 + cmp r2, 0x5 + beq _08048EF2 + cmp r2, 0x3 + beq _08048EF2 + bl _080499B8 +_08048EF2: + ldr r0, =gBattleStruct + ldr r0, [r0] + adds r0, 0xB2 + ldr r2, =gBattleCommunication + ldrb r1, [r2, 0x3] + strb r1, [r0] + ldr r2, =gHitMarker + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 7 + orrs r0, r1 + str r0, [r2] + bl _080499B8 + .pool +_08048F1C: + mov r3, r10 + cmp r3, 0 + beq _08048F26 + bl _080499B8 +_08048F26: + ldr r0, =gBattleCommunication + strb r3, [r0, 0x3] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bl _080499B8 + .pool +_08048F40: + mov r4, r9 + ldrb r1, [r4] + movs r0, 0x58 + muls r1, r0 + mov r0, r8 + adds r0, 0x50 + adds r1, r0 + ldr r2, =gUnknown_0831C134 + ldr r0, =gBattleCommunication + ldrb r3, [r0, 0x3] + lsls r0, r3, 2 + adds r0, r2 + ldr r1, [r1] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08048F66 + bl _08049994 +_08048F66: + subs r0, r3, 0x7 + cmp r0, 0x34 + bls _08048F70 + bl _080499B2 +_08048F70: + lsls r0, 2 + ldr r1, =_08048F88 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08048F88: + .4byte _0804905C + .4byte _080490D0 + .4byte _08049244 + .4byte _0804915C + .4byte _080491D8 + .4byte _0804927C + .4byte _080492C4 + .4byte _08049390 + .4byte _080493D4 + .4byte _080493D4 + .4byte _080493D4 + .4byte _080493D4 + .4byte _080493D4 + .4byte _080493D4 + .4byte _080493D4 + .4byte _0804941C + .4byte _0804941C + .4byte _0804941C + .4byte _0804941C + .4byte _0804941C + .4byte _0804941C + .4byte _0804941C + .4byte _080494FC + .4byte _08049544 + .4byte _08049564 + .4byte _08049720 + .4byte _0804975C + .4byte _08049778 + .4byte _08049790 + .4byte _080497A8 + .4byte _08049808 + .4byte _08049820 + .4byte _08049468 + .4byte _08049468 + .4byte _08049468 + .4byte _08049468 + .4byte _08049468 + .4byte _08049468 + .4byte _08049468 + .4byte _080494B0 + .4byte _080494B0 + .4byte _080494B0 + .4byte _080494B0 + .4byte _080494B0 + .4byte _080494B0 + .4byte _080494B0 + .4byte _08049864 + .4byte _080498C0 + .4byte _080499B2 + .4byte _080499B2 + .4byte _080499B2 + .4byte _080499B2 + .4byte _080499A4 +_0804905C: + mov r1, r9 + ldrb r0, [r1] + movs r5, 0x58 + adds r1, r0, 0 + muls r1, r5 + mov r2, r8 + adds r0, r1, r2 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x14 + bne _08049076 + bl _08049994 +_08049076: + mov r4, r8 + adds r4, 0x50 + adds r0, r1, r4 + ldr r0, [r0] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + beq _0804908A + bl _08049994 +_0804908A: + bl Random + mov r3, r9 + ldrb r1, [r3] + adds r2, r1, 0 + muls r2, r5 + adds r2, r4 + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r0 + lsrs r1, 16 + adds r1, 0x2 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r1, =gUnknown_0831C224 + ldr r0, =gBattleCommunication + ldrb r0, [r0, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _080499B0 + .pool +_080490D0: + mov r4, r9 + ldrb r2, [r4] + movs r4, 0x58 + adds r0, r2, 0 + muls r0, r4 + add r0, r8 + adds r0, 0x20 + ldrb r1, [r0] + cmp r1, 0x27 + bne _08049114 + cmp r5, 0x1 + beq _080490F0 + cmp r6, 0x80 + beq _080490F0 + bl _08049994 +_080490F0: + ldr r0, =gLastUsedAbility + strb r1, [r0] + mov r1, r9 + ldrb r0, [r1] + movs r1, 0x27 + bl RecordAbilityBattle + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DB603 + str r0, [r1] + bl _080499B2 + .pool +_08049114: + adds r0, r2, 0 + bl sub_8048728 + ldr r1, =gUnknown_02024082 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bhi _0804912A + bl _08049994 +_0804912A: + mov r2, r9 + ldrb r0, [r2] + adds r2, r0, 0 + muls r2, r4 + mov r0, r8 + adds r0, 0x50 + adds r2, r0 + ldr r1, =gUnknown_0831C134 + ldr r0, =gBattleCommunication + ldrb r0, [r0, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r1, [r2] + ldr r0, [r0] + orrs r1, r0 + str r1, [r2] + bl _08049994 + .pool +_0804915C: + mov r3, r9 + ldrb r0, [r3] + movs r5, 0x58 + muls r0, r5 + mov r4, r8 + adds r4, 0x50 + adds r2, r0, r4 + ldr r1, [r2] + movs r0, 0x70 + ands r0, r1 + cmp r0, 0 + beq _08049178 + bl _08049994 +_08049178: + movs r0, 0x80 + lsls r0, 5 + orrs r1, r0 + str r1, [r2] + ldr r1, =gUnknown_02024268 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r1 + ldr r1, =gCurrentMove + ldrh r1, [r1] + strh r1, [r0] + bl Random + mov r2, r9 + ldrb r1, [r2] + adds r2, r1, 0 + muls r2, r5 + adds r2, r4 + movs r1, 0x3 + ands r1, r0 + adds r1, 0x2 + lsls r1, 4 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r1, =gUnknown_0831C224 + ldr r0, =gBattleCommunication + ldrb r0, [r0, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _080499B0 + .pool +_080491D8: + ldr r5, =gBankAttacker + ldrb r0, [r5] + bl GetBankIdentity + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + bne _08049210 + ldr r4, =gUnknown_0202432E + ldrh r3, [r4] + ldr r2, =gBattleMons + ldrb r1, [r5] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x2A + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + adds r0, r3, r0 + strh r0, [r4] + lsls r0, 16 + lsrs r0, 16 + cmp r3, r0 + bls _08049210 + ldr r3, =0x0000ffff + adds r0, r3, 0 + strh r0, [r4] +_08049210: + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r1, =gUnknown_0831C224 + ldr r0, =gBattleCommunication + ldrb r0, [r0, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + b _080499B0 + .pool +_08049244: + mov r4, r9 + ldrb r1, [r4] + movs r0, 0x58 + muls r0, r1 + mov r1, r8 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + cmp r0, 0 + beq _0804925A + b _08049994 +_0804925A: + bl Random + ldr r4, =gBattleCommunication + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + adds r0, 0x3 + strb r0, [r4, 0x3] + movs r0, 0 + movs r1, 0 + bl sub_8048760 + b _080499B2 + .pool +_0804927C: + mov r0, r9 + ldrb r1, [r0] + movs r0, 0x58 + adds r2, r1, 0 + muls r2, r0 + mov r0, r8 + adds r0, 0x50 + adds r2, r0 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 5 + orrs r0, r1 + str r0, [r2] + ldr r1, =gUnknown_02024268 + mov r2, r9 + ldrb r0, [r2] + lsls r0, 1 + adds r0, r1 + ldr r1, =gCurrentMove + ldrh r1, [r1] + strh r1, [r0] + ldr r0, =gProtectStructs + ldrb r1, [r2] + lsls r1, 4 + adds r1, r0 + ldrb r0, [r1, 0x1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1, 0x1] + b _08049994 + .pool +_080492C4: + mov r3, r9 + ldrb r0, [r3] + movs r6, 0x58 + muls r0, r6 + mov r4, r8 + adds r4, 0x50 + adds r0, r4 + ldr r5, [r0] + movs r0, 0xE0 + lsls r0, 8 + ands r5, r0 + cmp r5, 0 + beq _080492E0 + b _08049994 +_080492E0: + bl Random + mov r2, r9 + ldrb r1, [r2] + adds r2, r1, 0 + muls r2, r6 + adds r2, r4 + movs r1, 0x3 + ands r1, r0 + adds r1, 0x3 + lsls r1, 13 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + mov r3, r9 + ldrb r1, [r3] + ldr r2, =gBattleStruct + ldr r0, [r2] + lsls r1, 1 + adds r1, r0 + ldr r6, =gCurrentMove + ldrh r0, [r6] + strb r0, [r1, 0x4] + ldrb r1, [r3] + ldr r0, [r2] + lsls r1, 1 + adds r1, r0 + ldrh r0, [r6] + lsrs r0, 8 + strb r0, [r1, 0x5] + ldrb r1, [r3] + ldr r0, [r2] + adds r1, r0 + ldr r0, =gBankAttacker + ldrb r0, [r0] + strb r0, [r1, 0x14] + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r1, =gUnknown_0831C224 + ldr r2, =gBattleCommunication + ldrb r0, [r2, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + str r0, [r4] + strb r5, [r2, 0x5] + ldr r3, =gUnknown_085CC982 + ldrh r0, [r3] + ldrh r4, [r6] + cmp r0, r4 + bne _0804934E + b _080499B2 +_0804934E: + adds r1, r2, 0 + adds r2, r6, 0 +_08049352: + ldrb r0, [r1, 0x5] + adds r0, 0x1 + strb r0, [r1, 0x5] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bls _08049362 + b _080499B2 +_08049362: + ldrb r0, [r1, 0x5] + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + ldrh r4, [r2] + cmp r0, r4 + bne _08049352 + b _080499B2 + .pool +_08049390: + ldr r1, =gBattleMoveDamage + ldr r0, =gUnknown_020241F4 + ldr r0, [r0] + cmp r0, 0 + bge _0804939C + adds r0, 0x3 +_0804939C: + asrs r0, 2 + str r0, [r1] + cmp r0, 0 + bne _080493A8 + movs r0, 0x1 + str r0, [r1] +_080493A8: + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r1, =gUnknown_0831C224 + ldr r0, =gBattleCommunication + ldrb r0, [r0, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + b _080499B0 + .pool +_080493D4: + ldr r4, =gBattleCommunication + ldrb r1, [r4, 0x3] + adds r1, 0xF2 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x10 + adds r2, r7, 0 + movs r3, 0 + bl sub_8050A1C + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _080493F2 + b _08049994 +_080493F2: + ldr r2, =gBattleScripting + ldrb r1, [r4, 0x3] + movs r0, 0x3F + ands r0, r1 + strb r0, [r2, 0x10] + strb r3, [r2, 0x11] + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, =gUnknown_082D8CD4 + b _080499B0 + .pool +_0804941C: + movs r0, 0x70 + negs r0, r0 + ldr r4, =gBattleCommunication + ldrb r1, [r4, 0x3] + adds r1, 0xEB + lsls r1, 24 + lsrs r1, 24 + adds r2, r7, 0 + movs r3, 0 + bl sub_8050A1C + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _0804943C + b _08049994 +_0804943C: + ldr r2, =gBattleScripting + ldrb r1, [r4, 0x3] + movs r0, 0x3F + ands r0, r1 + strb r0, [r2, 0x10] + strb r3, [r2, 0x11] + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, =gUnknown_082D8D65 + b _080499B0 + .pool +_08049468: + ldr r4, =gBattleCommunication + ldrb r1, [r4, 0x3] + adds r1, 0xDA + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x20 + adds r2, r7, 0 + movs r3, 0 + bl sub_8050A1C + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _08049486 + b _08049994 +_08049486: + ldr r2, =gBattleScripting + ldrb r1, [r4, 0x3] + movs r0, 0x3F + ands r0, r1 + strb r0, [r2, 0x10] + strb r3, [r2, 0x11] + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, =gUnknown_082D8CD4 + b _080499B0 + .pool +_080494B0: + movs r0, 0x60 + negs r0, r0 + ldr r4, =gBattleCommunication + ldrb r1, [r4, 0x3] + adds r1, 0xD3 + lsls r1, 24 + lsrs r1, 24 + adds r2, r7, 0 + movs r3, 0 + bl sub_8050A1C + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _080494D0 + b _08049994 +_080494D0: + ldr r2, =gBattleScripting + ldrb r1, [r4, 0x3] + movs r0, 0x3F + ands r0, r1 + strb r0, [r2, 0x10] + strb r3, [r2, 0x11] + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, =gUnknown_082D8D65 + b _080499B0 + .pool +_080494FC: + mov r0, r9 + ldrb r1, [r0] + movs r0, 0x58 + adds r2, r1, 0 + muls r2, r0 + mov r0, r8 + adds r0, 0x50 + adds r2, r0 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 15 + orrs r0, r1 + str r0, [r2] + ldr r2, =gDisableStructs + mov r3, r9 + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x2 + strb r1, [r0, 0x19] + ldr r1, =gUnknown_02024268 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r1 + ldr r1, =gCurrentMove + ldrh r1, [r1] + strh r1, [r0] + b _08049994 + .pool +_08049544: + ldr r0, =gBankAttacker + ldrb r1, [r0] + movs r0, 0x58 + adds r2, r1, 0 + muls r2, r0 + mov r0, r8 + adds r0, 0x50 + adds r2, r0 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 16 +_0804955A: + orrs r0, r1 + str r0, [r2] + b _08049994 + .pool +_08049564: + ldr r5, =gBattleTypeFlags + ldr r0, [r5] + movs r1, 0x80 + lsls r1, 19 + ands r0, r1 + cmp r0, 0 + beq _08049574 + b _08049994 +_08049574: + ldr r6, =gBankAttacker + ldrb r0, [r6] + bl GetBankSide + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r0, [r6] + bl GetBankSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080495A8 + ldr r0, [r5] + ldr r1, =0x0a3f0902 + ands r0, r1 + cmp r0, 0 + bne _080495D4 + b _08049994 + .pool +_080495A8: + ldr r0, [r5] + ldr r1, =0x0a3f0902 + ands r0, r1 + cmp r0, 0 + bne _080495D4 + ldr r0, =gUnknown_020243D0 + adds r0, 0x29 + adds r0, r4, r0 + ldrb r1, [r0] + ldr r3, =gBitTable + ldr r2, =gBattlePartyID + ldrb r0, [r6] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _080495D4 + b _08049994 +_080495D4: + ldr r2, =gBattleMons + ldr r1, =gBankTarget + ldrb r0, [r1] + movs r5, 0x58 + muls r0, r5 + adds r4, r0, r2 + ldrh r0, [r4, 0x2E] + adds r7, r1, 0 + mov r8, r2 + cmp r0, 0 + beq _0804963C + adds r0, r4, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x3C + bne _0804963C + bl b_movescr_stack_push_cursor + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DB682 + str r0, [r1] + ldr r1, =gLastUsedAbility + ldrb r0, [r7] + muls r0, r5 + add r0, r8 + adds r0, 0x20 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + ldrb r1, [r1] + bl RecordAbilityBattle + b _080499B2 + .pool +_0804963C: + ldr r4, =gBankAttacker + mov r10, r4 + ldrb r2, [r4] + movs r0, 0x58 + mov r9, r0 + mov r0, r9 + muls r0, r2 + add r0, r8 + ldrh r4, [r0, 0x2E] + cmp r4, 0 + beq _08049654 + b _08049994 +_08049654: + ldrb r0, [r7] + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + add r0, r8 + ldrh r3, [r0, 0x2E] + adds r1, r3, 0 + cmp r1, 0xAF + bne _08049668 + b _08049994 +_08049668: + adds r0, r3, 0 + subs r0, 0x79 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xB + bhi _08049676 + b _08049994 +_08049676: + cmp r1, 0 + bne _0804967C + b _08049994 +_0804967C: + ldr r5, =gBattleStruct + lsls r0, r2, 1 + adds r0, 0xD0 + ldr r1, [r5] + adds r1, r0 + ldr r2, =gUnknown_02024208 + strh r3, [r1] + strh r3, [r2] + ldrb r0, [r7] + mov r3, r9 + muls r3, r0 + adds r0, r3, 0 + add r0, r8 + movs r6, 0 + strh r4, [r0, 0x2E] + ldr r4, =gActiveBank + mov r1, r10 + ldrb r0, [r1] + strb r0, [r4] + str r2, [sp] + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + movs r3, 0x2 + bl dp01_build_cmdbuf_x02_a_b_varargs + mov r2, r10 + ldrb r0, [r2] + bl dp01_battle_side_mark_buffer_for_execution + ldrb r0, [r7] + strb r0, [r4] + ldrb r0, [r7] + mov r3, r9 + muls r3, r0 + adds r0, r3, 0 + mov r1, r8 + adds r1, 0x2E + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + movs r3, 0x2 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r7] + bl dp01_battle_side_mark_buffer_for_execution + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, =gUnknown_082DB422 + str r0, [r4] + ldrb r0, [r7] + ldr r1, [r5] + lsls r0, 1 + adds r0, r1 + adds r0, 0xC8 + strb r6, [r0] + ldrb r0, [r7] + ldr r1, [r5] + lsls r0, 1 + adds r0, r1 + adds r0, 0xC9 + strb r6, [r0] + b _080499B2 + .pool +_08049720: + ldr r3, =gBankTarget + ldrb r1, [r3] + movs r0, 0x58 + adds r2, r1, 0 + muls r2, r0 + mov r0, r8 + adds r0, 0x50 + adds r2, r0 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 19 + orrs r0, r1 + str r0, [r2] + ldr r2, =gDisableStructs + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, =gBankAttacker + ldrb r1, [r1] + strb r1, [r0, 0x14] + b _08049994 + .pool +_0804975C: + ldr r0, =gBankTarget + ldrb r1, [r0] + movs r0, 0x58 + adds r2, r1, 0 + muls r2, r0 + mov r0, r8 + adds r0, 0x50 + adds r2, r0 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 20 + b _0804955A + .pool +_08049778: + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, =gUnknown_082DAF27 + b _080499B0 + .pool +_08049790: + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, =gUnknown_082DAFC3 + b _080499B0 + .pool +_080497A8: + ldr r6, =gBankTarget + ldrb r0, [r6] + movs r2, 0x58 + muls r0, r2 + mov r1, r8 + adds r1, 0x4C + adds r5, r0, r1 + ldr r4, [r5] + movs r0, 0x40 + ands r0, r4 + cmp r0, 0 + bne _080497C2 + b _08049994 +_080497C2: + movs r0, 0x41 + negs r0, r0 + ands r4, r0 + str r4, [r5] + ldr r4, =gActiveBank + ldrb r0, [r6] + strb r0, [r4] + ldrb r0, [r4] + muls r0, r2 + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r2, 0 + movs r3, 0x4 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, =gUnknown_082DB361 + b _080499B0 + .pool +_08049808: + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, =gUnknown_082DB117 + b _080499B0 + .pool +_08049820: + ldr r4, =gBattleMoveDamage + ldr r0, =gUnknown_020241F4 + ldr r0, [r0] + movs r1, 0x3 + bl __divsi3 + str r0, [r4] + cmp r0, 0 + bne _08049836 + movs r0, 0x1 + str r0, [r4] +_08049836: + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r1, =gUnknown_0831C224 + ldr r0, =gBattleCommunication + ldrb r0, [r0, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + b _080499B0 + .pool +_08049864: + mov r4, r9 + ldrb r0, [r4] + movs r5, 0x58 + muls r0, r5 + mov r4, r8 + adds r4, 0x50 + adds r2, r0, r4 + ldr r1, [r2] + movs r0, 0xC0 + lsls r0, 4 + ands r0, r1 + cmp r0, 0 + beq _08049880 + b _08049994 +_08049880: + movs r0, 0x80 + lsls r0, 5 + orrs r1, r0 + str r1, [r2] + ldr r1, =gUnknown_02024268 + mov r2, r9 + ldrb r0, [r2] + lsls r0, 1 + adds r0, r1 + ldr r1, =gCurrentMove + ldrh r1, [r1] + strh r1, [r0] + bl Random + mov r3, r9 + ldrb r1, [r3] + adds r2, r1, 0 + muls r2, r5 + adds r2, r4 + movs r1, 0x1 + ands r1, r0 + adds r1, 0x2 + lsls r1, 10 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + b _080499B2 + .pool +_080498C0: + mov r4, r9 + ldrb r3, [r4] + movs r5, 0x58 + adds r0, r3, 0 + muls r0, r5 + mov r2, r8 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x20 + ldrb r2, [r0] + cmp r2, 0x3C + bne _08049900 + ldrh r0, [r1, 0x2E] + cmp r0, 0 + beq _08049994 + ldr r0, =gLastUsedAbility + strb r2, [r0] + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DB63F + str r0, [r1] + ldrb r0, [r4] + movs r1, 0x3C + bl RecordAbilityBattle + b _080499B2 + .pool +_08049900: + ldrh r0, [r1, 0x2E] + cmp r0, 0 + beq _08049994 + adds r0, r3, 0 + bl GetBankSide + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, =gUnknown_02024208 + mov r3, r9 + ldrb r0, [r3] + muls r0, r5 + add r0, r8 + ldrh r0, [r0, 0x2E] + strh r0, [r1] + ldrb r0, [r3] + muls r0, r5 + add r0, r8 + movs r5, 0 + movs r1, 0 + strh r1, [r0, 0x2E] + ldr r2, =gUnknown_020243D0 + adds r2, 0x29 + adds r2, r4, r2 + ldr r3, =gBitTable + ldr r1, =gBattlePartyID + mov r4, r9 + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, =gUnknown_082DB168 + str r0, [r4] + mov r1, r9 + ldrb r0, [r1] + ldr r2, =gBattleStruct + ldr r1, [r2] + lsls r0, 1 + adds r0, r1 + adds r0, 0xC8 + strb r5, [r0] + mov r3, r9 + ldrb r0, [r3] + ldr r1, [r2] + lsls r0, 1 + adds r0, r1 + adds r0, 0xC9 + strb r5, [r0] + b _080499B2 + .pool +_08049994: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + b _080499B2 + .pool +_080499A4: + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, =gUnknown_082DB1D5 +_080499B0: + str r0, [r4] +_080499B2: + ldr r1, =gBattleCommunication + movs r0, 0 + strb r0, [r1, 0x3] +_080499B8: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8048760 + + thumb_func_start atk15_seteffectwithchancetarget +atk15_seteffectwithchancetarget: @ 80499D4 + push {r4,lr} + ldr r2, =gBattleMons + ldr r0, =gBankAttacker + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x20 + bne _08049A10 + ldr r2, =gBattleMoves + ldr r0, =gCurrentMove + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x5] + lsls r4, r0, 1 + b _08049A20 + .pool +_08049A10: + ldr r2, =gBattleMoves + ldr r0, =gCurrentMove + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r4, [r0, 0x5] +_08049A20: + ldr r3, =gBattleCommunication + ldrb r2, [r3, 0x3] + movs r0, 0x80 + ands r0, r2 + cmp r0, 0 + beq _08049A50 + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _08049A50 + movs r0, 0x7F + ands r0, r2 + strb r0, [r3, 0x3] + b _08049A7E + .pool +_08049A50: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, r4 + bcs _08049A9A + ldr r0, =gBattleCommunication + ldrb r0, [r0, 0x3] + cmp r0, 0 + beq _08049A9A + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _08049A9A + cmp r4, 0x63 + bls _08049A90 +_08049A7E: + movs r0, 0 + movs r1, 0x80 + bl sub_8048760 + b _08049AA2 + .pool +_08049A90: + movs r0, 0 + movs r1, 0 + bl sub_8048760 + b _08049AA2 +_08049A9A: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_08049AA2: + ldr r0, =gBattleCommunication + movs r1, 0 + strb r1, [r0, 0x3] + ldr r0, =gBattleScripting + strb r1, [r0, 0x16] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atk15_seteffectwithchancetarget + + thumb_func_start sub_8049AC0 +sub_8049AC0: @ 8049AC0 + push {lr} + movs r0, 0x1 + movs r1, 0 + bl sub_8048760 + pop {r0} + bx r0 + thumb_func_end sub_8049AC0 + + thumb_func_start sub_8049AD0 +sub_8049AD0: @ 8049AD0 + push {lr} + movs r0, 0 + movs r1, 0 + bl sub_8048760 + pop {r0} + bx r0 + thumb_func_end sub_8049AD0 + + thumb_func_start sub_8049AE0 +sub_8049AE0: @ 8049AE0 + push {lr} + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r2, =gActiveBank + strb r0, [r2] + ldr r3, =gBattleCommunication + ldrb r0, [r3, 0x3] + cmp r0, 0x6 + bhi _08049B14 + ldr r1, =gBattleMons + ldrb r2, [r2] + movs r0, 0x58 + muls r2, r0 + adds r1, 0x4C + b _08049B1E + .pool +_08049B14: + ldr r1, =gBattleMons + ldrb r2, [r2] + movs r0, 0x58 + muls r2, r0 + adds r1, 0x50 +_08049B1E: + adds r2, r1 + ldr r1, =gUnknown_0831C134 + ldrb r0, [r3, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + ldr r0, =gBattleCommunication + movs r2, 0 + strb r2, [r0, 0x3] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + ldr r0, =gBattleScripting + strb r2, [r0, 0x16] + pop {r0} + bx r0 + .pool + thumb_func_end sub_8049AE0 + + thumb_func_start atk19_faintpokemon +atk19_faintpokemon: @ 8049B5C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + ldr r0, =gBattlescriptCurrInstr + ldr r2, [r0] + ldrb r1, [r2, 0x2] + adds r6, r0, 0 + cmp r1, 0 + beq _08049BE0 + ldrb r0, [r2, 0x1] + bl get_battle_side_of_something + ldr r5, =gActiveBank + strb r0, [r5] + ldr r2, =gHitMarker + ldr r1, =gBitTable + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r2] + ands r0, r1 + cmp r0, 0 + bne _08049B94 + b _08049E2C +_08049B94: + ldr r1, [r6] + ldrb r4, [r1, 0x3] + ldrb r0, [r1, 0x4] + lsls r0, 8 + orrs r4, r0 + ldrb r0, [r1, 0x5] + lsls r0, 16 + orrs r4, r0 + ldrb r0, [r1, 0x6] + lsls r0, 24 + orrs r4, r0 + bl b_movescr_stack_pop_cursor + str r4, [r6] + ldrb r0, [r5] + bl GetBankSide + ldr r1, =gUnknown_0202428E + lsls r0, 24 + lsrs r0, 23 + adds r0, r1 + ldrh r2, [r0] + ldr r1, =0x0000fdff + ands r1, r2 + strh r1, [r0] + b _08049E32 + .pool +_08049BE0: + ldrb r0, [r2, 0x1] + cmp r0, 0x1 + bne _08049C08 + ldr r1, =gActiveBank + ldr r0, =gBankAttacker + ldrb r0, [r0] + strb r0, [r1] + ldr r0, =gBankTarget + ldrb r0, [r0] + mov r9, r0 + ldr r4, =gUnknown_082DA7AA + b _08049C18 + .pool +_08049C08: + ldr r1, =gActiveBank + ldr r0, =gBankTarget + ldrb r0, [r0] + strb r0, [r1] + ldr r0, =gBankAttacker + ldrb r0, [r0] + mov r9, r0 + ldr r4, =gUnknown_082DA7B7 +_08049C18: + mov r8, r1 + ldr r0, =gAbsentBankFlags + ldrb r1, [r0] + ldr r2, =gBitTable + mov r7, r8 + ldrb r3, [r7] + lsls r0, r3, 2 + adds r0, r2 + ldr r2, [r0] + ands r1, r2 + cmp r1, 0 + beq _08049C32 + b _08049E2C +_08049C32: + ldr r1, =gBattleMons + movs r0, 0x58 + muls r0, r3 + adds r0, r1 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _08049C42 + b _08049E2C +_08049C42: + ldr r5, =gHitMarker + lsls r1, r2, 28 + ldr r0, [r5] + orrs r0, r1 + str r0, [r5] + ldr r0, [r6] + adds r0, 0x7 + bl b_movescr_stack_push + str r4, [r6] + ldrb r0, [r7] + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _08049CA4 + ldr r0, [r5] + movs r1, 0x80 + lsls r1, 15 + orrs r0, r1 + str r0, [r5] + ldr r1, =gUnknown_03005D10 + ldrb r0, [r1] + cmp r0, 0xFE + bhi _08049C78 + adds r0, 0x1 + strb r0, [r1] +_08049C78: + ldrb r0, [r7] + bl sub_80570F4 + b _08049CCE + .pool +_08049CA4: + ldr r4, =gUnknown_03005D10 + ldrb r0, [r4, 0x1] + cmp r0, 0xFE + bhi _08049CB0 + adds r0, 0x1 + strb r0, [r4, 0x1] +_08049CB0: + ldr r1, =gBattlePartyID + mov r2, r8 + ldrb r0, [r2] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0xB + movs r2, 0 + bl GetMonData + strh r0, [r4, 0x20] +_08049CCE: + ldr r2, =gHitMarker + ldr r1, [r2] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08049D0C + ldr r6, =gBattleMons + ldr r0, =gBankAttacker + ldrb r0, [r0] + movs r5, 0x58 + muls r0, r5 + adds r0, r6 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _08049D0C + movs r0, 0x41 + negs r0, r0 + ands r1, r0 + str r1, [r2] + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + bl b_movescr_stack_push + ldr r1, =gBattleMoveDamage + mov r0, r9 + muls r0, r5 + adds r0, r6 + ldrh r0, [r0, 0x28] + str r0, [r1] + ldr r0, =gUnknown_082DAE3E + str r0, [r4] +_08049D0C: + ldr r1, =gStatuses3 + ldr r6, =gBankTarget + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 7 + ands r0, r1 + cmp r0, 0 + bne _08049D24 + b _08049E32 +_08049D24: + ldr r0, =gHitMarker + ldr r5, [r0] + movs r0, 0x80 + lsls r0, 17 + ands r5, r0 + cmp r5, 0 + beq _08049D34 + b _08049E32 +_08049D34: + ldr r3, =gBankAttacker + mov r8, r3 + ldrb r0, [r3] + bl GetBankSide + adds r4, r0, 0 + ldrb r0, [r6] + bl GetBankSide + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + beq _08049E32 + ldr r0, =gBattleMons + mov r9, r0 + mov r2, r8 + ldrb r1, [r2] + movs r7, 0x58 + adds r2, r1, 0 + muls r2, r7 + adds r0, r2, r0 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _08049E32 + ldr r0, =gCurrentMove + ldrh r0, [r0] + cmp r0, 0xA5 + beq _08049E32 + ldr r0, =gBattleStruct + ldr r0, [r0] + adds r0, r1, r0 + adds r0, 0x80 + ldrb r4, [r0] + adds r0, r4, r2 + mov r6, r9 + adds r6, 0x24 + adds r0, r6 + strb r5, [r0] + ldr r5, =gBattlescriptCurrInstr + ldr r0, [r5] + bl b_movescr_stack_push + ldr r0, =gUnknown_082DB18D + str r0, [r5] + ldr r5, =gActiveBank + mov r3, r8 + ldrb r0, [r3] + strb r0, [r5] + adds r1, r4, 0 + adds r1, 0x9 + lsls r1, 24 + lsrs r1, 24 + ldrb r0, [r5] + muls r0, r7 + adds r0, r6 + adds r0, r4 + str r0, [sp] + movs r0, 0 + movs r2, 0 + movs r3, 0x1 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r5] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, =gBattleTextBuff1 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x2 + strb r0, [r1, 0x1] + lsls r4, 1 + mov r2, r8 + ldrb r0, [r2] + muls r0, r7 + adds r0, r4, r0 + mov r2, r9 + adds r2, 0xC + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1, 0x2] + mov r3, r8 + ldrb r0, [r3] + muls r0, r7 + adds r4, r0 + adds r4, r2 + ldrh r0, [r4] + lsrs r0, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + b _08049E32 + .pool +_08049E2C: + ldr r0, [r6] + adds r0, 0x7 + str r0, [r6] +_08049E32: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end atk19_faintpokemon + + thumb_func_start sub_8049E40 +sub_8049E40: @ 8049E40 + push {r4,r5,lr} + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + bne _08049E6A + ldr r5, =gBattlescriptCurrInstr + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r4, =gActiveBank + strb r0, [r4] + movs r0, 0 + bl dp01_build_cmdbuf_x0A_A_A_A + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] +_08049E6A: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8049E40 + + thumb_func_start sub_8049E7C +sub_8049E7C: @ 8049E7C + push {r4,r5,lr} + sub sp, 0x4 + ldr r0, =gBattleExecBuffer + ldr r5, [r0] + cmp r5, 0 + bne _08049EE8 + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r4, =gActiveBank + strb r0, [r4] + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 11 + ands r0, r1 + cmp r0, 0 + beq _08049EB4 + ldr r2, =gBattleMons + ldrb r1, [r4] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x28] + cmp r0, 0 + bne _08049EDC +_08049EB4: + ldr r1, =gBattleMons + ldrb r0, [r4] + movs r2, 0x58 + muls r0, r2 + adds r1, 0x4C + adds r0, r1 + str r5, [r0] + ldrb r0, [r4] + muls r0, r2 + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r2, 0 + movs r3, 0x4 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_08049EDC: + bl sub_803A75C + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] +_08049EE8: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8049E7C + + thumb_func_start atk1C_jumpifstatus +atk1C_jumpifstatus: @ 8049F04 + push {r4,r5,lr} + ldr r5, =gBattlescriptCurrInstr + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + lsls r0, 24 + lsrs r0, 24 + ldr r2, [r5] + ldrb r4, [r2, 0x2] + ldrb r1, [r2, 0x3] + lsls r1, 8 + adds r4, r1 + ldrb r1, [r2, 0x4] + lsls r1, 16 + adds r4, r1 + ldrb r1, [r2, 0x5] + lsls r1, 24 + adds r4, r1 + ldrb r3, [r2, 0x6] + ldrb r1, [r2, 0x7] + lsls r1, 8 + adds r3, r1 + ldrb r1, [r2, 0x8] + lsls r1, 16 + adds r3, r1 + ldrb r1, [r2, 0x9] + lsls r1, 24 + adds r3, r1 + ldr r2, =gBattleMons + movs r1, 0x58 + muls r1, r0 + adds r0, r2, 0 + adds r0, 0x4C + adds r0, r1, r0 + ldr r0, [r0] + ands r0, r4 + cmp r0, 0 + beq _08049F68 + adds r0, r1, r2 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _08049F68 + str r3, [r5] + b _08049F70 + .pool +_08049F68: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0xA + str r0, [r1] +_08049F70: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end atk1C_jumpifstatus + + thumb_func_start atk1D_jumpifsecondarystatus +atk1D_jumpifsecondarystatus: @ 8049F7C + push {r4,r5,lr} + ldr r5, =gBattlescriptCurrInstr + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + lsls r0, 24 + lsrs r0, 24 + ldr r2, [r5] + ldrb r4, [r2, 0x2] + ldrb r1, [r2, 0x3] + lsls r1, 8 + adds r4, r1 + ldrb r1, [r2, 0x4] + lsls r1, 16 + adds r4, r1 + ldrb r1, [r2, 0x5] + lsls r1, 24 + adds r4, r1 + ldrb r3, [r2, 0x6] + ldrb r1, [r2, 0x7] + lsls r1, 8 + adds r3, r1 + ldrb r1, [r2, 0x8] + lsls r1, 16 + adds r3, r1 + ldrb r1, [r2, 0x9] + lsls r1, 24 + adds r3, r1 + ldr r2, =gBattleMons + movs r1, 0x58 + muls r1, r0 + adds r0, r2, 0 + adds r0, 0x50 + adds r0, r1, r0 + ldr r0, [r0] + ands r0, r4 + cmp r0, 0 + beq _08049FE0 + adds r0, r1, r2 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _08049FE0 + str r3, [r5] + b _08049FE8 + .pool +_08049FE0: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0xA + str r0, [r1] +_08049FE8: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end atk1D_jumpifsecondarystatus + + thumb_func_start atk1E_jumpifability +atk1E_jumpifability: @ 8049FF4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + ldr r6, =gBattlescriptCurrInstr + ldr r2, [r6] + ldrb r5, [r2, 0x2] + mov r8, r5 + ldrb r1, [r2, 0x3] + ldrb r0, [r2, 0x4] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x6] + lsls r0, 24 + adds r7, r1, r0 + ldrb r0, [r2, 0x1] + cmp r0, 0x8 + bne _0804A054 + ldr r0, =gBankAttacker + ldrb r1, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0xD + adds r2, r5, 0 + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _0804A0C8 + ldr r1, =gLastUsedAbility + strb r5, [r1] + str r7, [r6] + subs r4, 0x1 + lsls r0, r4, 24 + lsrs r0, 24 + ldrb r1, [r1] + b _0804A0B0 + .pool +_0804A054: + cmp r0, 0x9 + bne _0804A08C + ldr r0, =gBankAttacker + ldrb r1, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0xC + adds r2, r5, 0 + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _0804A0C8 + ldr r1, =gLastUsedAbility + strb r5, [r1] + str r7, [r6] + subs r4, 0x1 + lsls r0, r4, 24 + lsrs r0, 24 + ldrb r1, [r1] + b _0804A0B0 + .pool +_0804A08C: + ldrb r0, [r2, 0x1] + bl get_battle_side_of_something + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, =gBattleMons + movs r0, 0x58 + muls r0, r4 + adds r0, r1 + adds r0, 0x20 + ldrb r1, [r0] + cmp r1, r8 + bne _0804A0C8 + ldr r0, =gLastUsedAbility + strb r1, [r0] + str r7, [r6] + ldrb r1, [r0] + adds r0, r4, 0 +_0804A0B0: + bl RecordAbilityBattle + ldr r0, =gBattleScripting + strb r4, [r0, 0x15] + b _0804A0CE + .pool +_0804A0C8: + ldr r0, [r6] + adds r0, 0x7 + str r0, [r6] +_0804A0CE: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end atk1E_jumpifability + + thumb_func_start sub_804A0DC +sub_804A0DC: @ 804A0DC + push {r4-r6,lr} + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r4, [r0, 0x1] + cmp r4, 0x1 + bne _0804A0FC + ldr r0, =gBankAttacker + ldrb r0, [r0] + bl GetBankIdentity + b _0804A106 + .pool +_0804A0FC: + ldr r0, =gBankTarget + ldrb r0, [r0] + bl GetBankIdentity + movs r4, 0x1 +_0804A106: + ands r4, r0 + ldr r6, =gBattlescriptCurrInstr + ldr r3, [r6] + ldrb r2, [r3, 0x2] + ldrb r0, [r3, 0x3] + lsls r0, 8 + orrs r2, r0 + ldrb r1, [r3, 0x4] + ldrb r0, [r3, 0x5] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r3, 0x6] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r3, 0x7] + lsls r0, 24 + adds r5, r1, r0 + ldr r1, =gUnknown_0202428E + lsls r0, r4, 1 + adds r0, r1 + ldrh r0, [r0] + ands r2, r0 + cmp r2, 0 + beq _0804A148 + str r5, [r6] + b _0804A14E + .pool +_0804A148: + adds r0, r3, 0 + adds r0, 0x8 + str r0, [r6] +_0804A14E: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_804A0DC + + thumb_func_start sub_804A154 +sub_804A154: @ 804A154 + push {r4,r5,lr} + movs r5, 0 + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gBattleMons + ldr r3, [r4] + movs r1, 0x58 + muls r0, r1 + ldrb r1, [r3, 0x3] + adds r0, r1 + adds r2, 0x18 + adds r0, r2 + ldrb r2, [r0] + ldrb r0, [r3, 0x2] + cmp r0, 0x5 + bhi _0804A212 + lsls r0, 2 + ldr r1, =_0804A194 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0804A194: + .4byte _0804A1AC + .4byte _0804A1BC + .4byte _0804A1CC + .4byte _0804A1DC + .4byte _0804A1EC + .4byte _0804A200 +_0804A1AC: + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r0, [r0, 0x4] + cmp r2, r0 + bne _0804A212 + b _0804A20C + .pool +_0804A1BC: + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r0, [r0, 0x4] + cmp r2, r0 + beq _0804A212 + b _0804A20C + .pool +_0804A1CC: + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r0, [r0, 0x4] + cmp r2, r0 + bls _0804A212 + b _0804A20C + .pool +_0804A1DC: + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r0, [r0, 0x4] + cmp r2, r0 + bcs _0804A212 + b _0804A20C + .pool +_0804A1EC: + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r0, [r0, 0x4] + ands r2, r0 + cmp r2, 0 + beq _0804A212 + b _0804A20C + .pool +_0804A200: + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r0, [r0, 0x4] + ands r2, r0 + cmp r2, 0 + bne _0804A212 +_0804A20C: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_0804A212: + cmp r5, 0 + beq _0804A238 + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x5] + ldrb r0, [r2, 0x6] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x7] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x8] + lsls r0, 24 + adds r1, r0 + str r1, [r3] + b _0804A240 + .pool +_0804A238: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x9 + str r0, [r1] +_0804A240: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_804A154 + + thumb_func_start atk21_jumpifspecialstatusflag +atk21_jumpifspecialstatusflag: @ 804A24C + push {r4-r6,lr} + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r5, =gActiveBank + strb r0, [r5] + ldr r2, [r4] + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + adds r6, r1, r0 + ldrb r1, [r2, 0x7] + ldrb r0, [r2, 0x8] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x9] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0xA] + lsls r0, 24 + adds r3, r1, r0 + ldrb r0, [r2, 0x6] + cmp r0, 0 + beq _0804A2AC + ldr r0, =gStatuses3 + ldrb r1, [r5] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + ands r0, r6 + cmp r0, 0 + bne _0804A2C4 + b _0804A2BC + .pool +_0804A2AC: + ldr r0, =gStatuses3 + ldrb r1, [r5] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + ands r0, r6 + cmp r0, 0 + beq _0804A2C4 +_0804A2BC: + str r3, [r4] + b _0804A2CA + .pool +_0804A2C4: + adds r0, r2, 0 + adds r0, 0xB + str r0, [r4] +_0804A2CA: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end atk21_jumpifspecialstatusflag + + thumb_func_start sub_804A2D0 +sub_804A2D0: @ 804A2D0 + push {r4-r6,lr} + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + lsls r0, 24 + lsrs r0, 24 + ldr r3, [r4] + ldrb r5, [r3, 0x2] + ldrb r2, [r3, 0x3] + ldrb r1, [r3, 0x4] + lsls r1, 8 + adds r2, r1 + ldrb r1, [r3, 0x5] + lsls r1, 16 + adds r2, r1 + ldrb r1, [r3, 0x6] + lsls r1, 24 + adds r6, r2, r1 + ldr r2, =gBattleMons + movs r1, 0x58 + muls r0, r1 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, r5 + beq _0804A314 + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, r5 + bne _0804A320 +_0804A314: + str r6, [r4] + b _0804A324 + .pool +_0804A320: + adds r0, r3, 0x7 + str r0, [r4] +_0804A324: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_804A2D0 + + thumb_func_start sub_804A32C +sub_804A32C: @ 804A32C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r6, 0 + ldr r0, =gBattleStruct + ldr r0, [r0] + adds r0, 0x50 + mov r9, r0 + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r1, =gUnknown_0202420D + strb r0, [r1] + ldr r2, =gUnknown_020243FE + movs r1, 0x2 + ands r1, r0 + lsls r1, 24 + lsrs r1, 25 + adds r1, r2 + ldrb r1, [r1] + mov r8, r1 + ldr r0, =gBattleScripting + ldrb r0, [r0, 0x1C] + cmp r0, 0x6 + bls _0804A368 + bl _0804ACB2 +_0804A368: + lsls r0, 2 + ldr r1, =_0804A38C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0804A38C: + .4byte _0804A3A8 + .4byte _0804A414 + .4byte _0804A52E + .4byte _0804A850 + .4byte _0804A954 + .4byte _0804AC40 + .4byte _0804AC88 +_0804A3A8: + ldr r4, =gUnknown_0202420D + ldrb r0, [r4] + bl GetBankSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0804A3BC + bl _0804AC7C +_0804A3BC: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + ldr r1, =0x063f0982 + ands r0, r1 + cmp r0, 0 + beq _0804A3CC + bl _0804AC7C +_0804A3CC: + ldr r1, =gBattleScripting + ldrb r0, [r1, 0x1C] + adds r0, 0x1 + strb r0, [r1, 0x1C] + ldr r0, =gBattleStruct + ldr r2, [r0] + adds r2, 0xDF + ldr r3, =gBitTable + ldr r1, =gBattlePartyID + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + bl _0804ACB2 + .pool +_0804A414: + movs r5, 0 + movs r7, 0 +_0804A418: + movs r0, 0x64 + adds r1, r7, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0804A486 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _0804A486 + ldr r0, =gBitTable + lsls r1, r7, 2 + adds r1, r0 + ldr r0, [r1] + mov r1, r8 + ands r0, r1 + cmp r0, 0 + beq _0804A44C + adds r5, 0x1 +_0804A44C: + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xAF + bne _0804A478 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r2, =0x00003226 + adds r0, r2 + ldrb r4, [r0] + b _0804A480 + .pool +_0804A478: + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r4, r0, 24 +_0804A480: + cmp r4, 0x19 + bne _0804A486 + adds r6, 0x1 +_0804A486: + adds r7, 0x1 + cmp r7, 0x5 + ble _0804A418 + ldr r3, =gBaseStats + ldr r2, =gBattleMons + ldr r0, =gUnknown_0202420D + ldrb r1, [r0] + movs r0, 0x58 + muls r1, r0 + adds r1, r2 + ldrh r2, [r1] + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r3 + ldrb r2, [r0, 0x9] + adds r1, 0x2A + ldrb r0, [r1] + muls r0, r2 + movs r1, 0x7 + bl __divsi3 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r6, 0 + beq _0804A4FC + lsrs r4, r0, 17 + adds r0, r4, 0 + adds r1, r5, 0 + bl __divsi3 + mov r1, r9 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + bne _0804A4D2 + movs r0, 0x1 + strh r0, [r1] +_0804A4D2: + ldr r5, =gUnknown_02024402 + adds r0, r4, 0 + adds r1, r6, 0 + bl __divsi3 + strh r0, [r5] + lsls r0, 16 + cmp r0, 0 + bne _0804A516 + movs r0, 0x1 + strh r0, [r5] + b _0804A516 + .pool +_0804A4FC: + adds r0, r1, 0 + adds r1, r5, 0 + bl __divsi3 + mov r2, r9 + strh r0, [r2] + lsls r0, 16 + cmp r0, 0 + bne _0804A512 + movs r0, 0x1 + strh r0, [r2] +_0804A512: + ldr r0, =gUnknown_02024402 + strh r6, [r0] +_0804A516: + ldr r1, =gBattleScripting + ldrb r0, [r1, 0x1C] + adds r0, 0x1 + movs r2, 0 + strb r0, [r1, 0x1C] + ldr r1, =gBattleStruct + ldr r0, [r1] + strb r2, [r0, 0x10] + ldr r0, [r1] + adds r0, 0x53 + mov r4, r8 + strb r4, [r0] +_0804A52E: + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + beq _0804A538 + b _0804ACB2 +_0804A538: + ldr r0, =gBattleStruct + ldr r0, [r0] + ldrb r1, [r0, 0x10] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xAF + bne _0804A57C + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003226 + adds r0, r1 + ldrb r4, [r0] + b _0804A584 + .pool +_0804A57C: + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r4, r0, 24 +_0804A584: + ldr r5, =gBattleStruct + cmp r4, 0x19 + beq _0804A5AC + ldr r0, [r5] + adds r1, r0, 0 + adds r1, 0x53 + ldrb r0, [r1] + movs r2, 0x1 + ands r2, r0 + cmp r2, 0 + bne _0804A5AC + lsrs r0, 1 + strb r0, [r1] + ldr r1, =gBattleScripting + b _0804A5D0 + .pool +_0804A5AC: + ldr r0, [r5] + ldrb r1, [r0, 0x10] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x38 + bl GetMonData + cmp r0, 0x64 + bne _0804A5E8 + ldr r1, [r5] + adds r1, 0x53 + ldrb r0, [r1] + lsrs r0, 1 + strb r0, [r1] + ldr r1, =gBattleScripting + movs r2, 0 +_0804A5D0: + movs r0, 0x5 + strb r0, [r1, 0x1C] + ldr r0, =gBattleMoveDamage + str r2, [r0] + b _0804ACB2 + .pool +_0804A5E8: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x8 + ands r0, r1 + cmp r0, 0 + bne _0804A616 + ldr r0, =gBattleMons + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _0804A616 + ldr r0, [r5] + ldrb r0, [r0, 0x12] + cmp r0, 0 + bne _0804A616 + bl sub_805EA60 + ldr r0, =0x00000161 + bl PlayBGM + ldr r1, [r5] + ldrb r0, [r1, 0x12] + adds r0, 0x1 + strb r0, [r1, 0x12] +_0804A616: + ldr r5, =gBattleStruct + ldr r0, [r5] + ldrb r1, [r0, 0x10] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + bne _0804A630 + b _0804A824 +_0804A630: + ldr r0, [r5] + adds r0, 0x53 + ldrb r0, [r0] + movs r3, 0x1 + ands r3, r0 + cmp r3, 0 + beq _0804A664 + ldr r1, =gBattleMoveDamage + mov r2, r9 + ldrh r0, [r2] + str r0, [r1] + mov r9, r1 + b _0804A66A + .pool +_0804A664: + ldr r0, =gBattleMoveDamage + str r3, [r0] + mov r9, r0 +_0804A66A: + cmp r4, 0x19 + bne _0804A67A + ldr r0, =gUnknown_02024402 + ldrh r1, [r0] + mov r2, r9 + ldr r0, [r2] + adds r0, r1 + str r0, [r2] +_0804A67A: + cmp r4, 0x28 + bne _0804A68E + mov r4, r9 + ldr r1, [r4] + movs r0, 0x96 + muls r0, r1 + movs r1, 0x64 + bl __divsi3 + str r0, [r4] +_0804A68E: + ldr r5, =gBattleTypeFlags + ldr r0, [r5] + movs r1, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0804A6AA + ldr r4, =gBattleMoveDamage + ldr r1, [r4] + movs r0, 0x96 + muls r0, r1 + movs r1, 0x64 + bl __divsi3 + str r0, [r4] +_0804A6AA: + ldr r4, =gBattleStruct + ldr r0, [r4] + ldrb r1, [r0, 0x10] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + bl sub_806E8A8 + lsls r0, 24 + cmp r0, 0 + beq _0804A714 + ldr r0, [r5] + movs r1, 0x80 + lsls r1, 15 + ands r0, r1 + cmp r0, 0 + beq _0804A6F8 + ldr r0, [r4] + ldrb r0, [r0, 0x10] + cmp r0, 0x2 + bls _0804A6F8 + ldr r7, =0x00000149 + ldr r0, =gBattleMoveDamage + mov r9, r0 + b _0804A71A + .pool +_0804A6F8: + ldr r4, =gBattleMoveDamage + ldr r1, [r4] + movs r0, 0x96 + muls r0, r1 + movs r1, 0x64 + bl __divsi3 + str r0, [r4] + movs r7, 0xA5 + lsls r7, 1 + mov r9, r4 + b _0804A71A + .pool +_0804A714: + ldr r7, =0x00000149 + ldr r1, =gBattleMoveDamage + mov r9, r1 +_0804A71A: + ldr r0, =gBattleTypeFlags + ldr r1, [r0] + movs r0, 0x1 + ands r1, r0 + cmp r1, 0 + beq _0804A786 + ldr r0, =gBattlePartyID + ldr r1, =gBattleStruct + ldr r4, [r1] + ldrh r0, [r0, 0x4] + adds r5, r1, 0 + ldr r3, =gBitTable + ldr r2, =gAbsentBankFlags + ldrb r1, [r4, 0x10] + cmp r0, r1 + bne _0804A76C + ldrb r1, [r2] + ldr r0, [r3, 0x8] + ands r1, r0 + cmp r1, 0 + bne _0804A76C + adds r1, r4, 0 + adds r1, 0x8F + movs r0, 0x2 + strb r0, [r1] + b _0804A78E + .pool +_0804A76C: + ldrb r2, [r2] + ldr r0, [r3] + ands r2, r0 + cmp r2, 0 + bne _0804A77E + ldr r0, [r5] + adds r0, 0x8F + strb r2, [r0] + b _0804A78E +_0804A77E: + ldr r0, [r5] + adds r0, 0x8F + movs r1, 0x2 + b _0804A78C +_0804A786: + ldr r0, =gBattleStruct + ldr r0, [r0] + adds r0, 0x8F +_0804A78C: + strb r1, [r0] +_0804A78E: + ldr r1, =gBattleTextBuff1 + movs r2, 0 + mov r12, r2 + movs r3, 0xFD + strb r3, [r1] + movs r5, 0x4 + strb r5, [r1, 0x1] + ldr r6, =gBattleStruct + ldr r2, [r6] + movs r4, 0x8F + adds r4, r2 + mov r8, r4 + ldrb r0, [r4] + strb r0, [r1, 0x2] + ldrb r0, [r2, 0x10] + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, =gBattleTextBuff2 + strb r3, [r1] + mov r0, r12 + strb r0, [r1, 0x1] + strb r7, [r1, 0x2] + movs r4, 0xFF + lsls r4, 8 + ands r7, r4 + asrs r0, r7, 8 + strb r0, [r1, 0x3] + movs r0, 0x1 + negs r0, r0 + strb r0, [r1, 0x4] + ldr r1, =gUnknown_02022F78 + strb r3, [r1] + movs r0, 0x1 + strb r0, [r1, 0x1] + strb r5, [r1, 0x2] + movs r0, 0x5 + strb r0, [r1, 0x3] + mov r0, r9 + ldr r2, [r0] + strb r2, [r1, 0x4] + adds r0, r2, 0 + ands r0, r4 + asrs r0, 8 + strb r0, [r1, 0x5] + movs r0, 0xFF + lsls r0, 16 + ands r0, r2 + asrs r0, 16 + strb r0, [r1, 0x6] + lsrs r2, 24 + strb r2, [r1, 0x7] + movs r0, 0x1 + negs r0, r0 + strb r0, [r1, 0x8] + mov r2, r8 + ldrb r1, [r2] + movs r0, 0xD + bl b_std_message + ldr r0, [r6] + ldrb r1, [r0, 0x10] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r3, =gBattleMons + ldr r1, =gUnknown_0202420D + ldrb r2, [r1] + movs r1, 0x58 + muls r1, r2 + adds r1, r3 + ldrh r1, [r1] + bl sub_806DADC +_0804A824: + ldr r0, =gBattleStruct + ldr r1, [r0] + adds r1, 0x53 + ldrb r0, [r1] + lsrs r0, 1 + strb r0, [r1] + b _0804A92A + .pool +_0804A850: + ldr r0, =gBattleExecBuffer + ldr r2, [r0] + cmp r2, 0 + beq _0804A85A + b _0804ACB2 +_0804A85A: + ldr r1, =gBattleBufferB + ldr r7, =gBattleStruct + ldr r0, [r7] + adds r0, 0x8F + ldrb r0, [r0] + lsls r0, 9 + adds r0, r1 + strb r2, [r0] + ldr r0, [r7] + ldrb r0, [r0, 0x10] + movs r6, 0x64 + muls r0, r6 + ldr r5, =gPlayerParty + adds r0, r5 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _0804A92A + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r6 + adds r0, r5 + movs r1, 0x38 + bl GetMonData + cmp r0, 0x64 + beq _0804A92A + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r6 + adds r0, r5 + movs r1, 0x3A + bl GetMonData + ldr r4, =gBattleResources + ldr r1, [r4] + ldr r1, [r1, 0x10] + strh r0, [r1] + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r6 + adds r0, r5 + movs r1, 0x3B + bl GetMonData + ldr r1, [r4] + ldr r1, [r1, 0x10] + strh r0, [r1, 0x2] + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r6 + adds r0, r5 + movs r1, 0x3C + bl GetMonData + ldr r1, [r4] + ldr r1, [r1, 0x10] + strh r0, [r1, 0x4] + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r6 + adds r0, r5 + movs r1, 0x3D + bl GetMonData + ldr r1, [r4] + ldr r1, [r1, 0x10] + strh r0, [r1, 0x6] + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r6 + adds r0, r5 + movs r1, 0x3E + bl GetMonData + ldr r1, [r4] + ldr r1, [r1, 0x10] + strh r0, [r1, 0x8] + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r6 + adds r0, r5 + movs r1, 0x3F + bl GetMonData + ldr r1, [r4] + ldr r1, [r1, 0x10] + strh r0, [r1, 0xA] + ldr r4, =gActiveBank + ldr r1, [r7] + adds r0, r1, 0 + adds r0, 0x8F + ldrb r0, [r0] + strb r0, [r4] + ldrb r1, [r1, 0x10] + ldr r0, =gBattleMoveDamage + ldrh r2, [r0] + movs r0, 0 + bl dp01_build_cmdbuf_x19_a_bb + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_0804A92A: + ldr r1, =gBattleScripting + ldrb r0, [r1, 0x1C] + adds r0, 0x1 + strb r0, [r1, 0x1C] + b _0804ACB2 + .pool +_0804A954: + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + beq _0804A95E + b _0804ACB2 +_0804A95E: + ldr r1, =gActiveBank + ldr r0, =gBattleStruct + ldr r4, [r0] + adds r0, r4, 0 + adds r0, 0x8F + ldrb r0, [r0] + strb r0, [r1] + ldr r3, =gBattleBufferB + ldrb r2, [r1] + lsls r1, r2, 9 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, 0x21 + beq _0804A97C + b _0804AC28 +_0804A97C: + adds r0, r3, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, 0xB + beq _0804A988 + b _0804AC28 +_0804A988: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0804A9B2 + ldr r0, =gBattlePartyID + lsls r1, r2, 1 + adds r1, r0 + ldrh r0, [r1] + ldrb r4, [r4, 0x10] + cmp r0, r4 + bne _0804A9B2 + adds r1, r0, 0 + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + adds r1, r2, 0 + bl sub_805E990 +_0804A9B2: + ldr r1, =gBattleTextBuff1 + movs r3, 0xFD + strb r3, [r1] + movs r0, 0x4 + strb r0, [r1, 0x1] + ldr r6, =gActiveBank + ldrb r0, [r6] + strb r0, [r1, 0x2] + ldr r4, =gBattleStruct + mov r9, r4 + ldr r2, [r4] + ldrb r0, [r2, 0x10] + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r4, =gBattleTextBuff2 + strb r3, [r4] + movs r0, 0x1 + strb r0, [r4, 0x1] + strb r0, [r4, 0x2] + movs r0, 0x3 + strb r0, [r4, 0x3] + ldrb r0, [r2, 0x10] + movs r1, 0x64 + mov r8, r1 + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + ldr r7, =gPlayerParty + adds r0, r7 + movs r1, 0x38 + bl GetMonData + strb r0, [r4, 0x4] + movs r0, 0x1 + negs r0, r0 + strb r0, [r4, 0x5] + bl b_movescr_stack_push_cursor + ldr r2, =gUnknown_03005D54 + ldr r1, =gBitTable + mov r4, r9 + ldr r5, [r4] + ldrb r0, [r5, 0x10] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DABBD + str r0, [r1] + ldr r4, =gBattleMoveDamage + ldr r2, =gBattleBufferB + ldrb r1, [r6] + lsls r1, 9 + adds r0, r2, 0x2 + adds r0, r1, r0 + ldrb r3, [r0] + adds r2, 0x3 + adds r1, r2 + ldrb r0, [r1] + lsls r0, 8 + orrs r3, r0 + str r3, [r4] + ldrb r0, [r5, 0x10] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r7 + movs r1, 0 + bl happiness_algorithm + ldr r1, =gBattlePartyID + mov r2, r9 + ldr r0, [r2] + ldrb r2, [r0, 0x10] + ldrh r0, [r1] + cmp r0, r2 + bne _0804AB1E + ldr r4, =gBattleMons + ldrh r0, [r4, 0x28] + cmp r0, 0 + beq _0804AB1E + mov r0, r8 + muls r0, r2 + adds r0, r7 + movs r1, 0x38 + bl GetMonData + adds r1, r4, 0 + adds r1, 0x2A + strb r0, [r1] + mov r1, r9 + ldr r0, [r1] + ldrb r0, [r0, 0x10] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + adds r0, r7 + movs r1, 0x39 + bl GetMonData + strh r0, [r4, 0x28] + mov r1, r9 + ldr r0, [r1] + ldrb r0, [r0, 0x10] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + adds r0, r7 + movs r1, 0x3A + bl GetMonData + strh r0, [r4, 0x2C] + mov r1, r9 + ldr r0, [r1] + ldrb r0, [r0, 0x10] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + adds r0, r7 + movs r1, 0x3B + bl GetMonData + strh r0, [r4, 0x2] + mov r1, r9 + ldr r0, [r1] + ldrb r0, [r0, 0x10] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + adds r0, r7 + movs r1, 0x3C + bl GetMonData + strh r0, [r4, 0x4] + mov r1, r9 + ldr r0, [r1] + ldrb r0, [r0, 0x10] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + adds r0, r7 + movs r1, 0x3D + bl GetMonData + strh r0, [r4, 0x6] + mov r1, r9 + ldr r0, [r1] + ldrb r0, [r0, 0x10] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + adds r0, r7 + movs r1, 0x3D + bl GetMonData + strh r0, [r4, 0x6] + mov r1, r9 + ldr r0, [r1] + ldrb r0, [r0, 0x10] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + adds r0, r7 + movs r1, 0x3E + bl GetMonData + strh r0, [r4, 0x8] + mov r1, r9 + ldr r0, [r1] + ldrb r0, [r0, 0x10] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + adds r0, r7 + movs r1, 0x3F + bl GetMonData + strh r0, [r4, 0xA] +_0804AB1E: + ldr r0, =gBattlePartyID + ldr r7, =gBattleStruct + ldr r1, [r7] + ldrb r2, [r1, 0x10] + ldrh r0, [r0, 0x4] + cmp r0, r2 + beq _0804AB2E + b _0804AC2E +_0804AB2E: + ldr r6, =gBattleMons + movs r4, 0xD8 + adds r4, r6 + mov r8, r4 + ldrh r0, [r4] + cmp r0, 0 + beq _0804AC2E + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0804AC2E + movs r5, 0x64 + adds r0, r2, 0 + muls r0, r5 + ldr r4, =gPlayerParty + adds r0, r4 + movs r1, 0x38 + bl GetMonData + adds r1, r6, 0 + adds r1, 0xDA + strb r0, [r1] + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r5 + adds r0, r4 + movs r1, 0x39 + bl GetMonData + mov r1, r8 + strh r0, [r1] + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r5 + adds r0, r4 + movs r1, 0x3A + bl GetMonData + adds r1, r6, 0 + adds r1, 0xDC + strh r0, [r1] + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r5 + adds r0, r4 + movs r1, 0x3B + bl GetMonData + adds r1, r6, 0 + adds r1, 0xB2 + strh r0, [r1] + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r5 + adds r0, r4 + movs r1, 0x3C + bl GetMonData + adds r1, r6, 0 + adds r1, 0xB4 + strh r0, [r1] + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r5 + adds r0, r4 + movs r1, 0x3D + bl GetMonData + movs r2, 0xB6 + adds r2, r6 + mov r8, r2 + strh r0, [r2] + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r5 + adds r0, r4 + movs r1, 0x3D + bl GetMonData + mov r1, r8 + strh r0, [r1] + ldr r0, [r7] + ldrb r0, [r0, 0x10] + muls r0, r5 + adds r0, r4 + movs r1, 0x3E + bl GetMonData + adds r1, r6, 0 + adds r1, 0xB8 + strh r0, [r1] + b _0804AC2E + .pool +_0804AC28: + ldr r1, =gBattleMoveDamage + movs r0, 0 + str r0, [r1] +_0804AC2E: + ldr r1, =gBattleScripting + movs r0, 0x5 + strb r0, [r1, 0x1C] + b _0804ACB2 + .pool +_0804AC40: + ldr r0, =gBattleMoveDamage + ldr r0, [r0] + cmp r0, 0 + beq _0804AC58 + ldr r1, =gBattleScripting + movs r0, 0x3 + strb r0, [r1, 0x1C] + b _0804ACB2 + .pool +_0804AC58: + ldr r2, =gBattleStruct + ldr r1, [r2] + ldrb r0, [r1, 0x10] + adds r0, 0x1 + strb r0, [r1, 0x10] + ldr r0, [r2] + ldrb r0, [r0, 0x10] + cmp r0, 0x5 + bhi _0804AC7C + ldr r1, =gBattleScripting + movs r0, 0x2 + strb r0, [r1, 0x1C] + b _0804ACB2 + .pool +_0804AC7C: + ldr r1, =gBattleScripting + movs r0, 0x6 + strb r0, [r1, 0x1C] + b _0804ACB2 + .pool +_0804AC88: + ldr r0, =gBattleExecBuffer + ldr r5, [r0] + cmp r5, 0 + bne _0804ACB2 + ldr r4, =gBattleMons + ldr r2, =gUnknown_0202420D + ldrb r0, [r2] + movs r1, 0x58 + muls r0, r1 + adds r0, r4 + movs r3, 0 + strh r5, [r0, 0x2E] + ldrb r0, [r2] + muls r0, r1 + adds r0, r4 + adds r0, 0x20 + strb r3, [r0] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] +_0804ACB2: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_804A32C + + thumb_func_start sub_804ACD0 +sub_804ACD0: @ 804ACD0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r6, 0 + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + beq _0804ACE2 + b _0804AF22 +_0804ACE2: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 15 + ands r0, r1 + cmp r0, 0 + beq _0804AD48 + ldr r0, =gUnknown_02038BCE + ldrh r1, [r0] + ldr r0, =0x00000c03 + cmp r1, r0 + bne _0804AD48 + movs r5, 0 +_0804ACFC: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0804AD2C + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0804AD2C + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + adds r0, r6, r0 + lsls r0, 16 + lsrs r6, r0, 16 +_0804AD2C: + adds r5, 0x1 + cmp r5, 0x2 + ble _0804ACFC + b _0804ADA8 + .pool +_0804AD48: + movs r5, 0 +_0804AD4A: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0804ADA2 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0804ADA2 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 11 + ands r0, r1 + cmp r0, 0 + beq _0804AD94 + ldr r0, =gBattleStruct + ldr r0, [r0] + movs r1, 0xA8 + lsls r1, 2 + adds r0, r1 + ldrb r1, [r0] + ldr r2, =gBitTable + lsls r0, r5, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _0804ADA2 +_0804AD94: + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + adds r0, r6, r0 + lsls r0, 16 + lsrs r6, r0, 16 +_0804ADA2: + adds r5, 0x1 + cmp r5, 0x5 + ble _0804AD4A +_0804ADA8: + cmp r6, 0 + bne _0804ADB6 + ldr r0, =gBattleOutcome + ldrb r1, [r0] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0] +_0804ADB6: + movs r6, 0 + movs r5, 0 +_0804ADBA: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gEnemyParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0804AE10 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0804AE10 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 11 + ands r0, r1 + cmp r0, 0 + beq _0804AE02 + ldr r0, =gBattleStruct + ldr r0, [r0] + ldr r1, =0x000002a1 + adds r0, r1 + ldrb r1, [r0] + ldr r2, =gBitTable + lsls r0, r5, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _0804AE10 +_0804AE02: + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + adds r0, r6, r0 + lsls r0, 16 + lsrs r6, r0, 16 +_0804AE10: + adds r5, 0x1 + cmp r5, 0x5 + ble _0804ADBA + ldr r2, =gBattleOutcome + cmp r6, 0 + bne _0804AE24 + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] +_0804AE24: + ldrb r0, [r2] + cmp r0, 0 + bne _0804AF1A + ldr r0, =gBattleTypeFlags + ldr r1, [r0] + ldr r2, =0x02000002 + ands r1, r2 + mov r8, r0 + cmp r1, 0 + beq _0804AF1A + movs r3, 0 + movs r5, 0 + ldr r0, =gNoOfAllBanks + ldrb r1, [r0] + mov r12, r0 + ldr r7, =gBattlescriptCurrInstr + cmp r3, r1 + bge _0804AE70 + ldr r0, =gHitMarker + movs r6, 0x80 + lsls r6, 21 + ldr r4, [r0] + adds r2, r1, 0 + ldr r1, =gSpecialStatuses +_0804AE54: + adds r0, r6, 0 + lsls r0, r5 + ands r0, r4 + cmp r0, 0 + beq _0804AE68 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _0804AE68 + adds r3, 0x1 +_0804AE68: + adds r1, 0x28 + adds r5, 0x2 + cmp r5, r2 + blt _0804AE54 +_0804AE70: + movs r2, 0 + movs r5, 0x1 + mov r4, r12 + ldrb r1, [r4] + cmp r5, r1 + bge _0804AEAA + ldr r0, =gHitMarker + movs r4, 0x80 + lsls r4, 21 + mov r12, r4 + ldr r6, [r0] + ldr r0, =gSpecialStatuses + adds r4, r1, 0 + adds r1, r0, 0 + adds r1, 0x14 +_0804AE8E: + mov r0, r12 + lsls r0, r5 + ands r0, r6 + cmp r0, 0 + beq _0804AEA2 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _0804AEA2 + adds r2, 0x1 +_0804AEA2: + adds r1, 0x28 + adds r5, 0x2 + cmp r5, r4 + blt _0804AE8E +_0804AEAA: + mov r1, r8 + ldr r0, [r1] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0804AEF0 + adds r0, r2, r3 + cmp r0, 0x1 + bgt _0804AEF8 + b _0804AF12 + .pool +_0804AEF0: + cmp r2, 0 + beq _0804AF12 + cmp r3, 0 + beq _0804AF12 +_0804AEF8: + ldr r2, [r7] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r1, r0 + str r1, [r7] + b _0804AF22 +_0804AF12: + ldr r0, [r7] + adds r0, 0x5 + str r0, [r7] + b _0804AF22 +_0804AF1A: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0804AF22: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_804ACD0 + + thumb_func_start sub_804AF30 +sub_804AF30: @ 804AF30 + ldr r1, =gBattleMoveFlags + movs r0, 0 + strb r0, [r1] + ldr r0, =gBattleScripting + movs r2, 0 + movs r1, 0x1 + strb r1, [r0, 0xE] + ldr r0, =gCritMultiplier + strb r1, [r0] + ldr r0, =gBattleCommunication + strb r2, [r0, 0x3] + strb r2, [r0, 0x6] + ldr r2, =gHitMarker + ldr r0, [r2] + subs r1, 0x42 + ands r0, r1 + ldr r1, =0xffffbfff + ands r0, r1 + str r0, [r2] + bx lr + .pool + thumb_func_end sub_804AF30 + + thumb_func_start atk25_cmd25 +atk25_cmd25: @ 804AF70 + push {lr} + bl sub_804AF30 + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end atk25_cmd25 + + thumb_func_start atk26_80225F0_storebyteforjump +atk26_80225F0_storebyteforjump: @ 804AF88 + ldr r3, =gUnknown_02024212 + ldr r2, =gBattlescriptCurrInstr + ldr r0, [r2] + ldrb r1, [r0, 0x1] + strb r1, [r3] + adds r0, 0x2 + str r0, [r2] + bx lr + .pool + thumb_func_end atk26_80225F0_storebyteforjump + + thumb_func_start atk27_cmd27 +atk27_cmd27: @ 804AFA0 + push {lr} + ldr r1, =gUnknown_02024212 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bne _0804AFC4 + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0804AFDE + .pool +_0804AFC4: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r1, r0 + str r1, [r3] +_0804AFDE: + pop {r0} + bx r0 + .pool + thumb_func_end atk27_cmd27 + + thumb_func_start atk28_goto +atk28_goto: @ 804AFE8 + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r1, r0 + str r1, [r3] + bx lr + .pool + thumb_func_end atk28_goto + + thumb_func_start atk29_jumpifbyte +atk29_jumpifbyte: @ 804B008 + push {r4-r6,lr} + ldr r3, =gBattlescriptCurrInstr + ldr r1, [r3] + ldrb r6, [r1, 0x1] + ldrb r2, [r1, 0x2] + ldrb r0, [r1, 0x3] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0x5] + lsls r0, 24 + adds r5, r2, r0 + ldrb r4, [r1, 0x6] + ldrb r2, [r1, 0x7] + ldrb r0, [r1, 0x8] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x9] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0xA] + lsls r0, 24 + adds r2, r0 + adds r1, 0xB + str r1, [r3] + cmp r6, 0x5 + bhi _0804B0A0 + lsls r0, r6, 2 + ldr r1, =_0804B054 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0804B054: + .4byte _0804B06C + .4byte _0804B074 + .4byte _0804B07C + .4byte _0804B084 + .4byte _0804B08C + .4byte _0804B096 +_0804B06C: + ldrb r0, [r5] + cmp r0, r4 + bne _0804B0A0 + b _0804B09E +_0804B074: + ldrb r0, [r5] + cmp r0, r4 + beq _0804B0A0 + b _0804B09E +_0804B07C: + ldrb r0, [r5] + cmp r0, r4 + bls _0804B0A0 + b _0804B09E +_0804B084: + ldrb r0, [r5] + cmp r0, r4 + bcs _0804B0A0 + b _0804B09E +_0804B08C: + ldrb r0, [r5] + ands r4, r0 + cmp r4, 0 + beq _0804B0A0 + b _0804B09E +_0804B096: + ldrb r0, [r5] + ands r4, r0 + cmp r4, 0 + bne _0804B0A0 +_0804B09E: + str r2, [r3] +_0804B0A0: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end atk29_jumpifbyte + + thumb_func_start sub_804B0A8 +sub_804B0A8: @ 804B0A8 + push {r4-r6,lr} + ldr r3, =gBattlescriptCurrInstr + ldr r1, [r3] + ldrb r6, [r1, 0x1] + ldrb r2, [r1, 0x2] + ldrb r0, [r1, 0x3] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0x5] + lsls r0, 24 + adds r5, r2, r0 + ldrb r4, [r1, 0x6] + ldrb r0, [r1, 0x7] + lsls r0, 8 + orrs r4, r0 + ldrb r2, [r1, 0x8] + ldrb r0, [r1, 0x9] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0xA] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0xB] + lsls r0, 24 + adds r2, r0 + adds r1, 0xC + str r1, [r3] + cmp r6, 0x5 + bhi _0804B148 + lsls r0, r6, 2 + ldr r1, =_0804B0FC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0804B0FC: + .4byte _0804B114 + .4byte _0804B11C + .4byte _0804B124 + .4byte _0804B12C + .4byte _0804B134 + .4byte _0804B13E +_0804B114: + ldrh r0, [r5] + cmp r0, r4 + bne _0804B148 + b _0804B146 +_0804B11C: + ldrh r0, [r5] + cmp r0, r4 + beq _0804B148 + b _0804B146 +_0804B124: + ldrh r0, [r5] + cmp r0, r4 + bls _0804B148 + b _0804B146 +_0804B12C: + ldrh r0, [r5] + cmp r0, r4 + bcs _0804B148 + b _0804B146 +_0804B134: + ldrh r0, [r5] + ands r4, r0 + cmp r4, 0 + beq _0804B148 + b _0804B146 +_0804B13E: + ldrh r0, [r5] + ands r4, r0 + cmp r4, 0 + bne _0804B148 +_0804B146: + str r2, [r3] +_0804B148: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_804B0A8 + + thumb_func_start sub_804B150 +sub_804B150: @ 804B150 + push {r4-r6,lr} + ldr r3, =gBattlescriptCurrInstr + ldr r1, [r3] + ldrb r6, [r1, 0x1] + ldrb r2, [r1, 0x2] + ldrb r0, [r1, 0x3] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0x5] + lsls r0, 24 + adds r5, r2, r0 + ldrb r4, [r1, 0x6] + ldrb r0, [r1, 0x7] + lsls r0, 8 + orrs r4, r0 + ldrb r0, [r1, 0x8] + lsls r0, 16 + orrs r4, r0 + ldrb r0, [r1, 0x9] + lsls r0, 24 + orrs r4, r0 + ldrb r2, [r1, 0xA] + ldrb r0, [r1, 0xB] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0xC] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0xD] + lsls r0, 24 + adds r2, r0 + adds r1, 0xE + str r1, [r3] + cmp r6, 0x5 + bhi _0804B1FC + lsls r0, r6, 2 + ldr r1, =_0804B1B0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0804B1B0: + .4byte _0804B1C8 + .4byte _0804B1D0 + .4byte _0804B1D8 + .4byte _0804B1E0 + .4byte _0804B1E8 + .4byte _0804B1F2 +_0804B1C8: + ldr r0, [r5] + cmp r0, r4 + bne _0804B1FC + b _0804B1FA +_0804B1D0: + ldr r0, [r5] + cmp r0, r4 + beq _0804B1FC + b _0804B1FA +_0804B1D8: + ldr r0, [r5] + cmp r0, r4 + bls _0804B1FC + b _0804B1FA +_0804B1E0: + ldr r0, [r5] + cmp r0, r4 + bcs _0804B1FC + b _0804B1FA +_0804B1E8: + ldr r0, [r5] + ands r0, r4 + cmp r0, 0 + beq _0804B1FC + b _0804B1FA +_0804B1F2: + ldr r0, [r5] + ands r0, r4 + cmp r0, 0 + bne _0804B1FC +_0804B1FA: + str r2, [r3] +_0804B1FC: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_804B150 + + thumb_func_start sub_804B204 +sub_804B204: @ 804B204 + push {r4-r7,lr} + ldr r2, =gBattlescriptCurrInstr + ldr r3, [r2] + ldrb r1, [r3, 0x1] + ldrb r0, [r3, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r3, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r3, 0x4] + lsls r0, 24 + adds r5, r1, r0 + ldrb r1, [r3, 0x5] + ldrb r0, [r3, 0x6] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r3, 0x7] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r3, 0x8] + lsls r0, 24 + adds r4, r1, r0 + ldrb r6, [r3, 0x9] + ldrb r1, [r3, 0xA] + ldrb r0, [r3, 0xB] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r3, 0xC] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r3, 0xD] + lsls r0, 24 + adds r1, r0 + mov r12, r1 + movs r1, 0 + cmp r1, r6 + bcs _0804B27C + ldrb r0, [r5] + ldrb r7, [r4] + cmp r0, r7 + beq _0804B260 + adds r0, r3, 0 + b _0804B278 + .pool +_0804B260: + adds r5, 0x1 + adds r4, 0x1 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, r6 + bcs _0804B27C + ldrb r0, [r5] + ldrb r3, [r4] + cmp r0, r3 + beq _0804B260 + ldr r0, [r2] +_0804B278: + adds r0, 0xE + str r0, [r2] +_0804B27C: + cmp r1, r6 + bne _0804B284 + mov r7, r12 + str r7, [r2] +_0804B284: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804B204 + + thumb_func_start sub_804B28C +sub_804B28C: @ 804B28C + push {r4-r7,lr} + movs r7, 0 + ldr r3, =gBattlescriptCurrInstr + ldr r1, [r3] + ldrb r2, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + adds r5, r2, r0 + ldrb r2, [r1, 0x5] + ldrb r0, [r1, 0x6] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x7] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0x8] + lsls r0, 24 + adds r4, r2, r0 + ldrb r6, [r1, 0x9] + ldrb r2, [r1, 0xA] + ldrb r0, [r1, 0xB] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0xC] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0xD] + lsls r0, 24 + adds r2, r0 + mov r12, r2 + movs r1, 0 + cmp r7, r6 + bcs _0804B2F6 +_0804B2DA: + ldrb r0, [r5] + ldrb r2, [r4] + cmp r0, r2 + bne _0804B2E8 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 +_0804B2E8: + adds r5, 0x1 + adds r4, 0x1 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, r6 + bcc _0804B2DA +_0804B2F6: + cmp r7, r6 + beq _0804B304 + mov r0, r12 + b _0804B308 + .pool +_0804B304: + ldr r0, [r3] + adds r0, 0xE +_0804B308: + str r0, [r3] + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804B28C + + thumb_func_start sub_804B310 +sub_804B310: @ 804B310 + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r1, r0 + ldrb r0, [r2, 0x5] + strb r0, [r1] + ldr r0, [r3] + adds r0, 0x6 + str r0, [r3] + bx lr + .pool + thumb_func_end sub_804B310 + + thumb_func_start sub_804B338 +sub_804B338: @ 804B338 + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r1, r0 + ldrb r0, [r2, 0x5] + ldrb r2, [r1] + adds r0, r2 + strb r0, [r1] + ldr r0, [r3] + adds r0, 0x6 + str r0, [r3] + bx lr + .pool + thumb_func_end sub_804B338 + + thumb_func_start sub_804B364 +sub_804B364: @ 804B364 + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r1, r0 + ldrb r0, [r1] + ldrb r2, [r2, 0x5] + subs r0, r2 + strb r0, [r1] + ldr r0, [r3] + adds r0, 0x6 + str r0, [r3] + bx lr + .pool + thumb_func_end sub_804B364 + + thumb_func_start atk31_copyarray +atk31_copyarray: @ 804B390 + push {r4-r6,lr} + ldr r3, =gBattlescriptCurrInstr + ldr r1, [r3] + ldrb r2, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + adds r6, r2, r0 + ldrb r2, [r1, 0x5] + ldrb r0, [r1, 0x6] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x7] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0x8] + lsls r0, 24 + adds r5, r2, r0 + ldrb r4, [r1, 0x9] + movs r2, 0 + cmp r2, r4 + bge _0804B3D4 +_0804B3C6: + adds r0, r6, r2 + adds r1, r5, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, r4 + blt _0804B3C6 +_0804B3D4: + ldr r0, [r3] + adds r0, 0xA + str r0, [r3] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end atk31_copyarray + + thumb_func_start atk32_memcpy_with_offset +atk32_memcpy_with_offset: @ 804B3E4 + push {r4-r7,lr} + ldr r3, =gBattlescriptCurrInstr + ldr r1, [r3] + ldrb r2, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + adds r7, r2, r0 + ldrb r2, [r1, 0x5] + ldrb r0, [r1, 0x6] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x7] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0x8] + lsls r0, 24 + adds r6, r2, r0 + ldrb r2, [r1, 0x9] + ldrb r0, [r1, 0xA] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0xB] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0xC] + lsls r0, 24 + adds r5, r2, r0 + ldrb r4, [r1, 0xD] + movs r2, 0 + cmp r2, r4 + bge _0804B440 +_0804B42E: + adds r0, r7, r2 + ldrb r1, [r5] + adds r1, r2, r1 + adds r1, r6, r1 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, r4 + blt _0804B42E +_0804B440: + ldr r0, [r3] + adds r0, 0xE + str r0, [r3] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk32_memcpy_with_offset + + thumb_func_start atk33_orbyte +atk33_orbyte: @ 804B450 + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r1, r0 + ldrb r0, [r1] + ldrb r2, [r2, 0x5] + orrs r0, r2 + strb r0, [r1] + ldr r0, [r3] + adds r0, 0x6 + str r0, [r3] + bx lr + .pool + thumb_func_end atk33_orbyte + + thumb_func_start atk34_orhalfword +atk34_orhalfword: @ 804B47C + push {r4,lr} + ldr r4, =gBattlescriptCurrInstr + ldr r3, [r4] + ldrb r2, [r3, 0x1] + ldrb r0, [r3, 0x2] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r3, 0x3] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r3, 0x4] + lsls r0, 24 + adds r2, r0 + ldrb r1, [r3, 0x5] + ldrb r0, [r3, 0x6] + lsls r0, 8 + orrs r1, r0 + ldrh r0, [r2] + orrs r1, r0 + strh r1, [r2] + ldr r0, [r4] + adds r0, 0x7 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atk34_orhalfword + + thumb_func_start atk35_orword +atk35_orword: @ 804B4B4 + push {r4,lr} + ldr r4, =gBattlescriptCurrInstr + ldr r2, [r4] + ldrb r3, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r3, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r3, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r3, r0 + ldrb r1, [r2, 0x5] + ldrb r0, [r2, 0x6] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x7] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x8] + lsls r0, 24 + adds r1, r0 + ldr r0, [r3] + orrs r0, r1 + str r0, [r3] + ldr r0, [r4] + adds r0, 0x9 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atk35_orword + + thumb_func_start atk36_bicbyte +atk36_bicbyte: @ 804B4F8 + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r1, r0 + ldrb r2, [r2, 0x5] + ldrb r0, [r1] + bics r0, r2 + strb r0, [r1] + ldr r0, [r3] + adds r0, 0x6 + str r0, [r3] + bx lr + .pool + thumb_func_end atk36_bicbyte + + thumb_func_start atk37_bichalfword +atk37_bichalfword: @ 804B524 + push {r4,lr} + ldr r4, =gBattlescriptCurrInstr + ldr r3, [r4] + ldrb r1, [r3, 0x1] + ldrb r0, [r3, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r3, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r3, 0x4] + lsls r0, 24 + adds r1, r0 + ldrb r2, [r3, 0x5] + ldrb r0, [r3, 0x6] + lsls r0, 8 + orrs r2, r0 + ldrh r0, [r1] + bics r0, r2 + strh r0, [r1] + ldr r0, [r4] + adds r0, 0x7 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atk37_bichalfword + + thumb_func_start atk38_bicword +atk38_bicword: @ 804B55C + push {r4,lr} + ldr r4, =gBattlescriptCurrInstr + ldr r2, [r4] + ldrb r3, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r3, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r3, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r3, r0 + ldrb r1, [r2, 0x5] + ldrb r0, [r2, 0x6] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x7] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x8] + lsls r0, 24 + adds r1, r0 + ldr r0, [r3] + bics r0, r1 + str r0, [r3] + ldr r0, [r4] + adds r0, 0x9 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atk38_bicword + + thumb_func_start atk39_pause +atk39_pause: @ 804B5A0 + push {r4,r5,lr} + ldr r0, =gBattleExecBuffer + ldr r4, [r0] + cmp r4, 0 + bne _0804B5CC + ldr r5, =gBattlescriptCurrInstr + ldr r2, [r5] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldr r3, =gUnknown_0202432C + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r3] + lsls r0, 16 + lsrs r0, 16 + cmp r0, r1 + bcc _0804B5CC + strh r4, [r3] + adds r0, r2, 0x3 + str r0, [r5] +_0804B5CC: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end atk39_pause + + thumb_func_start sub_804B5E0 +sub_804B5E0: @ 804B5E0 + push {lr} + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + bne _0804B5F2 + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_0804B5F2: + pop {r0} + bx r0 + .pool + thumb_func_end sub_804B5E0 + + thumb_func_start atk3B_8022C68 +atk3B_8022C68: @ 804B600 + push {lr} + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _0804B620 + ldr r0, =gActiveBank + ldr r1, =gBankTarget + b _0804B624 + .pool +_0804B620: + ldr r0, =gActiveBank + ldr r1, =gBankAttacker +_0804B624: + ldrb r1, [r1] + strb r1, [r0] + ldr r0, =gBattleMoveDamage + ldrh r1, [r0] + movs r0, 0 + bl dp01_build_cmdbuf_x18_0_aa_health_bar_update + ldr r0, =gActiveBank + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end atk3B_8022C68 + + thumb_func_start atk3C_return +atk3C_return: @ 804B658 + push {lr} + bl b_movescr_stack_pop_cursor + pop {r0} + bx r0 + thumb_func_end atk3C_return + + thumb_func_start sub_804B664 +sub_804B664: @ 804B664 + push {lr} + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 11 + ands r0, r1 + cmp r0, 0 + beq _0804B67C + ldr r0, =gBankAttacker + ldrb r0, [r0] + bl sub_81A5718 +_0804B67C: + ldr r0, =gBattleMoveFlags + movs r1, 0 + strb r1, [r0] + ldr r0, =gActiveBank + strb r1, [r0] + ldr r1, =gFightStateTracker + movs r0, 0xB + strb r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end sub_804B664 + + thumb_func_start atk3E_end2 +atk3E_end2: @ 804B6A4 + ldr r1, =gActiveBank + movs r0, 0 + strb r0, [r1] + ldr r1, =gFightStateTracker + movs r0, 0xB + strb r0, [r1] + bx lr + .pool + thumb_func_end atk3E_end2 + + thumb_func_start atk3F_end3 +atk3F_end3: @ 804B6BC + push {lr} + bl b_movescr_stack_pop_cursor + ldr r3, =gBattleResources + ldr r0, [r3] + ldr r0, [r0, 0xC] + adds r1, r0, 0 + adds r1, 0x20 + ldrb r0, [r1] + cmp r0, 0 + beq _0804B6D6 + subs r0, 0x1 + strb r0, [r1] +_0804B6D6: + ldr r2, =gBattleMainFunc + ldr r0, [r3] + ldr r1, [r0, 0xC] + adds r0, r1, 0 + adds r0, 0x20 + ldrb r0, [r0] + lsls r0, 2 + adds r1, r0 + ldr r0, [r1] + str r0, [r2] + pop {r0} + bx r0 + .pool + thumb_func_end atk3F_end3 + + thumb_func_start atk41_call +atk41_call: @ 804B6F8 + push {r4,lr} + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + adds r0, 0x5 + bl b_movescr_stack_push + ldr r2, [r4] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atk41_call + + thumb_func_start atk42_jumpiftype2 +atk42_jumpiftype2: @ 804B728 + push {r4,lr} + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + lsls r0, 24 + lsrs r0, 24 + ldr r3, [r4] + ldr r2, =gBattleMons + movs r1, 0x58 + muls r0, r1 + adds r0, r2 + adds r1, r0, 0 + adds r1, 0x21 + ldrb r2, [r3, 0x2] + ldrb r1, [r1] + cmp r2, r1 + beq _0804B756 + adds r0, 0x22 + ldrb r0, [r0] + cmp r2, r0 + bne _0804B778 +_0804B756: + ldrb r1, [r3, 0x3] + ldrb r0, [r3, 0x4] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r3, 0x5] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r3, 0x6] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + b _0804B77C + .pool +_0804B778: + adds r0, r3, 0x7 + str r0, [r4] +_0804B77C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end atk42_jumpiftype2 + + thumb_func_start sub_804B784 +sub_804B784: @ 804B784 + push {r4,lr} + sub sp, 0x4 + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + ldrb r2, [r0, 0x1] + movs r0, 0 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + cmp r0, 0 + beq _0804B7C0 + ldr r2, [r4] + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + b _0804B7C6 + .pool +_0804B7C0: + ldr r0, [r4] + adds r0, 0x6 + str r0, [r4] +_0804B7C6: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_804B784 + + thumb_func_start sub_804B7D0 +sub_804B7D0: @ 804B7D0 + ldr r0, =gBankAttacker + ldrb r0, [r0] + ldr r1, =gBattleStruct + ldr r1, [r1] + adds r0, r1 + adds r0, 0x54 + movs r1, 0x1 + strb r1, [r0] + bx lr + .pool + thumb_func_end sub_804B7D0 + + thumb_func_start atk46_cmd46 +atk46_cmd46: @ 804B7EC + push {r4-r6,lr} + ldr r5, =gBattlescriptCurrInstr + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r6, =gActiveBank + strb r0, [r6] + ldr r2, [r5] + ldrb r1, [r2, 0x3] + ldrb r0, [r2, 0x4] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x6] + lsls r0, 24 + adds r3, r1, r0 + ldrb r4, [r2, 0x2] + adds r0, r4, 0 + cmp r0, 0x1 + beq _0804B822 + cmp r0, 0x11 + beq _0804B822 + cmp r0, 0x2 + bne _0804B848 +_0804B822: + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + ldrb r1, [r0, 0x2] + ldrh r2, [r3] + movs r0, 0 + bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim + ldr r0, =gActiveBank + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r4] + adds r0, 0x7 + str r0, [r4] + b _0804B8AA + .pool +_0804B848: + ldr r0, =gHitMarker + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0804B868 + adds r0, r2, 0x7 + bl b_movescr_stack_push + ldr r0, =gUnknown_082DABB9 + b _0804B8A8 + .pool +_0804B868: + adds r0, r4, 0 + subs r0, 0xA + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bls _0804B894 + ldr r1, =gStatuses3 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, =0x000400c0 + ands r0, r1 + cmp r0, 0 + beq _0804B894 + adds r0, r2, 0x7 + b _0804B8A8 + .pool +_0804B894: + ldrb r1, [r2, 0x2] + ldrh r2, [r3] + movs r0, 0 + bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim + ldrb r0, [r6] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r5] + adds r0, 0x7 +_0804B8A8: + str r0, [r5] +_0804B8AA: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end atk46_cmd46 + + thumb_func_start sub_804B8B0 +sub_804B8B0: @ 804B8B0 + push {r4-r7,lr} + ldr r6, =gBattlescriptCurrInstr + ldr r0, [r6] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r7, =gActiveBank + strb r0, [r7] + ldr r2, [r6] + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + adds r3, r1, r0 + ldrb r1, [r2, 0x6] + ldrb r0, [r2, 0x7] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x8] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x9] + lsls r0, 24 + adds r4, r1, r0 + ldrb r5, [r3] + adds r0, r5, 0 + cmp r0, 0x1 + beq _0804B8FA + cmp r0, 0x11 + beq _0804B8FA + cmp r0, 0x2 + bne _0804B920 +_0804B8FA: + ldrb r1, [r3] + ldrh r2, [r4] + movs r0, 0 + bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim + ldr r0, =gActiveBank + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0xA + str r0, [r1] + b _0804B976 + .pool +_0804B920: + ldr r0, =gHitMarker + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0804B934 + adds r0, r2, 0 + b _0804B972 + .pool +_0804B934: + adds r0, r5, 0 + subs r0, 0xA + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bls _0804B960 + ldr r1, =gStatuses3 + ldrb r0, [r7] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, =0x000400c0 + ands r0, r1 + cmp r0, 0 + beq _0804B960 + adds r0, r2, 0 + b _0804B972 + .pool +_0804B960: + ldrb r1, [r3] + ldrh r2, [r4] + movs r0, 0 + bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim + ldrb r0, [r7] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r6] +_0804B972: + adds r0, 0xA + str r0, [r6] +_0804B976: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804B8B0 + + thumb_func_start sub_804B97C +sub_804B97C: @ 804B97C + push {r4,lr} + movs r3, 0 + ldr r1, =gBattleScripting + ldrb r0, [r1, 0x1A] + movs r2, 0xF0 + ands r2, r0 + adds r4, r1, 0 + cmp r2, 0x20 + beq _0804B9AA + cmp r2, 0x20 + bgt _0804B99C + cmp r2, 0x10 + beq _0804B9A6 + b _0804B9B4 + .pool +_0804B99C: + cmp r2, 0x90 + beq _0804B9AE + cmp r2, 0xA0 + beq _0804B9B2 + b _0804B9B4 +_0804B9A6: + movs r3, 0xF + b _0804B9B4 +_0804B9AA: + movs r3, 0x27 + b _0804B9B4 +_0804B9AE: + movs r3, 0x16 + b _0804B9B4 +_0804B9B2: + movs r3, 0x2E +_0804B9B4: + ldrb r1, [r4, 0x1A] + movs r0, 0xF + ands r0, r1 + adds r0, r3, r0 + subs r0, 0x1 + movs r1, 0 + strb r0, [r4, 0x10] + strb r1, [r4, 0x11] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_804B97C + + thumb_func_start atk48_playstatchangeanimation +atk48_playstatchangeanimation: @ 804B9D8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + movs r7, 0 + movs r0, 0 + mov r8, r0 + movs r3, 0 + ldr r5, =gBattlescriptCurrInstr + ldr r0, [r5] + ldrb r0, [r0, 0x1] + str r3, [sp] + bl get_battle_side_of_something + ldr r2, =gActiveBank + strb r0, [r2] + ldr r0, [r5] + ldrb r4, [r0, 0x2] + ldrb r1, [r0, 0x3] + movs r0, 0x1 + ands r0, r1 + ldr r3, [sp] + cmp r0, 0 + beq _0804BAEC + movs r0, 0x2 + ands r0, r1 + movs r1, 0x15 + cmp r0, 0 + beq _0804BA18 + movs r1, 0x2D +_0804BA18: + cmp r4, 0 + beq _0804BAC0 + movs r0, 0x1 + mov r10, r0 + ldr r0, =gUnknown_0202409C + mov r9, r0 + lsls r5, r1, 16 +_0804BA26: + adds r0, r4, 0 + mov r1, r10 + ands r0, r1 + cmp r0, 0 + beq _0804BAB2 + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r1, [r0, 0x3] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0804BA58 + ldr r0, =gActiveBank + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r7, r0 + b _0804BAA0 + .pool +_0804BA58: + ldr r6, =gActiveBank + ldrb r0, [r6] + str r3, [sp] + bl GetBankIdentity + mov r1, r10 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSideTimers + adds r0, r1 + ldrb r0, [r0, 0x4] + ldr r3, [sp] + cmp r0, 0 + bne _0804BAB2 + ldr r0, =gBattleMons + ldrb r2, [r6] + movs r1, 0x58 + muls r2, r1 + adds r0, r2, r0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x1D + beq _0804BAB2 + cmp r0, 0x49 + beq _0804BAB2 + cmp r0, 0x33 + bne _0804BA96 + cmp r7, 0x6 + beq _0804BAB2 +_0804BA96: + cmp r0, 0x34 + bne _0804BA9E + cmp r7, 0x1 + beq _0804BAB2 +_0804BA9E: + adds r0, r7, r2 +_0804BAA0: + add r0, r9 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + ble _0804BAB2 + lsrs r0, r5, 16 + mov r8, r0 + adds r3, 0x1 +_0804BAB2: + lsrs r4, 1 + movs r1, 0x80 + lsls r1, 9 + adds r5, r1 + adds r7, 0x1 + cmp r4, 0 + bne _0804BA26 +_0804BAC0: + ldr r0, =gBattlescriptCurrInstr + mov r9, r0 + cmp r3, 0x1 + ble _0804BB4E + ldr r0, [r0] + ldrb r1, [r0, 0x3] + movs r0, 0x2 + ands r0, r1 + movs r1, 0x39 + mov r8, r1 + cmp r0, 0 + beq _0804BB4E + movs r0, 0x3A + b _0804BB4C + .pool +_0804BAEC: + movs r0, 0x2 + ands r0, r1 + movs r1, 0xE + cmp r0, 0 + beq _0804BAF8 + movs r1, 0x26 +_0804BAF8: + mov r9, r5 + cmp r4, 0 + beq _0804BB34 + ldr r6, =gUnknown_0202409C + adds r5, r2, 0 + lsls r2, r1, 16 +_0804BB04: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _0804BB26 + ldrb r1, [r5] + movs r0, 0x58 + muls r0, r1 + adds r0, r7, r0 + adds r0, r6 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0xB + bgt _0804BB26 + lsrs r1, r2, 16 + mov r8, r1 + adds r3, 0x1 +_0804BB26: + lsrs r4, 1 + movs r0, 0x80 + lsls r0, 9 + adds r2, r0 + adds r7, 0x1 + cmp r4, 0 + bne _0804BB04 +_0804BB34: + cmp r3, 0x1 + ble _0804BB4E + mov r1, r9 + ldr r0, [r1] + ldrb r1, [r0, 0x3] + movs r0, 0x2 + ands r0, r1 + movs r1, 0x37 + mov r8, r1 + cmp r0, 0 + beq _0804BB4E + movs r0, 0x38 +_0804BB4C: + mov r8, r0 +_0804BB4E: + mov r1, r9 + ldr r2, [r1] + ldrb r1, [r2, 0x3] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0804BB6C + cmp r3, 0x1 + bgt _0804BB6C + adds r0, r2, 0x4 + mov r1, r9 + b _0804BBBA + .pool +_0804BB6C: + cmp r3, 0 + beq _0804BBB4 + ldr r4, =gBattleScripting + ldrb r0, [r4, 0x1B] + cmp r0, 0 + bne _0804BBB4 + movs r0, 0 + movs r1, 0x1 + mov r2, r8 + str r3, [sp] + bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim + ldr r0, =gActiveBank + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r1, [r0, 0x3] + movs r0, 0x4 + ands r0, r1 + ldr r3, [sp] + cmp r0, 0 + beq _0804BBA4 + cmp r3, 0x1 + ble _0804BBA4 + movs r0, 0x1 + strb r0, [r4, 0x1B] +_0804BBA4: + ldr r1, =gBattlescriptCurrInstr + b _0804BBB6 + .pool +_0804BBB4: + mov r1, r9 +_0804BBB6: + ldr r0, [r1] + adds r0, 0x4 +_0804BBBA: + str r0, [r1] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end atk48_playstatchangeanimation + + thumb_func_start sub_804BBCC +sub_804BBCC: @ 804BBCC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + movs r0, 0 + mov r10, r0 + ldr r2, =gUnknown_020241EC + ldrh r1, [r2] + ldr r0, =0x0000ffff + movs r3, 0 + str r3, [sp, 0x18] + cmp r1, r0 + beq _0804BBEE + ldrh r2, [r2] + str r2, [sp, 0x18] +_0804BBEE: + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r4, [r0, 0x1] + str r4, [sp, 0x10] + ldrb r0, [r0, 0x2] + str r0, [sp, 0x14] + ldr r1, =gBattleMons + ldr r0, =gBankAttacker + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, r0, r1 + ldrh r0, [r1, 0x2E] + cmp r0, 0xAF + bne _0804BC34 + ldr r1, =gEnigmaBerries + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x7] + b _0804BC3E + .pool +_0804BC34: + ldrh r0, [r1, 0x2E] + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r0, 24 +_0804BC3E: + str r0, [sp, 0x8] + ldr r1, =gBattleStruct + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, 0xC8 + ldr r1, [r1] + adds r0, r1, r0 + str r0, [sp, 0xC] + ldrb r0, [r1, 0x13] + cmp r0, 0 + beq _0804BCF0 + movs r5, 0x3F + ands r5, r0 + str r5, [sp, 0x4] + b _0804BD02 + .pool +_0804BC68: + ldr r4, =gActiveBank + strb r2, [r4] + movs r0, 0 + movs r1, 0x1 + bl dp01_build_cmdbuf_x33_a_33_33 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + b _0804C15A + .pool +_0804BC80: + ldr r4, =gActiveBank + strb r2, [r4] + movs r0, 0 + movs r1, 0 + bl dp01_build_cmdbuf_x33_a_33_33 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldrb r1, [r6] + lsls r1, 2 + adds r1, r5 + ldr r0, [r1] + ldr r2, =0xfffbff3f + ands r0, r2 + str r0, [r1] + b _0804C15A + .pool +_0804BCAC: + strb r2, [r7] + ldr r0, [r5] + orrs r0, r6 + str r0, [r5] + ldr r0, =gBattleScripting + strb r4, [r0, 0x14] + bl sub_804AF30 + ldr r2, =gUnknown_082D86A8 + mov r0, r8 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + add r0, r9 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + bl b_movescr_stack_push + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DB87D + bl _0804C5B8 + .pool +_0804BCF0: + ldr r2, =gBattleMoves + ldr r0, =gCurrentMove + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x2] + str r0, [sp, 0x4] +_0804BD02: + ldr r1, =gBattleScripting + mov r12, r1 + b _0804BD1E + .pool +_0804BD14: + mov r2, r10 + cmp r2, 0 + beq _0804BD1E + bl _0804C5A4 +_0804BD1E: + mov r3, r12 + ldrb r0, [r3, 0x14] + cmp r0, 0x11 + bls _0804BD2A + bl _0804C570 +_0804BD2A: + lsls r0, 2 + ldr r1, =_0804BD38 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0804BD38: + .4byte _0804BD80 + .4byte _0804BE5C + .4byte _0804BF18 + .4byte _0804BF3C + .4byte _0804BF54 + .4byte _0804BF7C + .4byte _0804BFA0 + .4byte _0804C048 + .4byte _0804C0BE + .4byte _0804C0F4 + .4byte _0804C194 + .4byte _0804C088 + .4byte _0804C0A8 + .4byte _0804C1D8 + .4byte _0804C21C + .4byte _0804C3FC + .4byte _0804C4E4 + .4byte _0804C570 +_0804BD80: + ldr r6, =gBattleMons + ldr r5, =gBankTarget + ldrb r3, [r5] + movs r7, 0x58 + adds r2, r3, 0 + muls r2, r7 + adds r0, r6, 0 + adds r0, 0x50 + adds r0, r2, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 16 + ands r0, r1 + cmp r0, 0 + bne _0804BDA0 + b _0804C184 +_0804BDA0: + adds r0, r2, r6 + ldrh r0, [r0, 0x28] + cmp r0, 0 + bne _0804BDAA + b _0804C184 +_0804BDAA: + ldr r0, =gBankAttacker + ldrb r1, [r0] + cmp r1, r3 + bne _0804BDB4 + b _0804C184 +_0804BDB4: + adds r0, r1, 0 + bl GetBankSide + adds r4, r0, 0 + ldrb r0, [r5] + bl GetBankSide + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _0804BDCC + b _0804C184 +_0804BDCC: + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _0804BDDA + b _0804C184 +_0804BDDA: + ldr r2, =gSpecialStatuses + ldrb r3, [r5] + lsls r0, r3, 2 + adds r0, r3 + lsls r1, r0, 2 + adds r0, r2, 0 + adds r0, 0x8 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + bne _0804BDFE + adds r0, r2, 0 + adds r0, 0xC + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + bne _0804BDFE + b _0804C184 +_0804BDFE: + ldr r2, =gBattleMoves + ldr r0, =gCurrentMove + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _0804BE14 + b _0804C184 +_0804BE14: + adds r0, r3, 0 + muls r0, r7 + adds r1, r0, r6 + ldrb r2, [r1, 0x19] + movs r0, 0x19 + ldrsb r0, [r1, r0] + cmp r0, 0xB + ble _0804BE26 + b _0804C184 +_0804BE26: + adds r0, r2, 0x1 + strb r0, [r1, 0x19] + bl b_movescr_stack_push_cursor + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DAE0D + str r0, [r1] + b _0804C0B8 + .pool +_0804BE5C: + ldr r4, =gBattleMons + ldr r6, =gBankTarget + ldrb r2, [r6] + movs r5, 0x58 + mov r12, r5 + mov r1, r12 + muls r1, r2 + adds r7, r4, 0 + adds r7, 0x4C + adds r5, r1, r7 + ldr r3, [r5] + movs r0, 0x20 + ands r0, r3 + cmp r0, 0 + bne _0804BE7C + b _0804C184 +_0804BE7C: + adds r0, r1, r4 + ldrh r0, [r0, 0x28] + cmp r0, 0 + bne _0804BE86 + b _0804C184 +_0804BE86: + ldr r0, =gBankAttacker + ldrb r0, [r0] + cmp r0, r2 + bne _0804BE90 + b _0804C184 +_0804BE90: + ldr r0, =gSpecialStatuses + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 2 + adds r0, 0xC + adds r1, r0 + ldr r0, [r1] + cmp r0, 0 + bne _0804BEA4 + b _0804C184 +_0804BEA4: + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _0804BEB2 + b _0804C184 +_0804BEB2: + ldr r0, [sp, 0x4] + cmp r0, 0xA + beq _0804BEBA + b _0804C184 +_0804BEBA: + movs r0, 0x21 + negs r0, r0 + ands r3, r0 + str r3, [r5] + ldr r4, =gActiveBank + ldrb r0, [r6] + strb r0, [r4] + ldrb r0, [r6] + mov r1, r12 + muls r1, r0 + adds r0, r1, 0 + adds r0, r7 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r2, 0 + movs r3, 0x4 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + bl b_movescr_stack_push_cursor + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DB282 + str r0, [r1] + movs r2, 0x1 + mov r10, r2 + b _0804C184 + .pool +_0804BF18: + ldr r0, =gBankTarget + ldrb r1, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0x7 + movs r2, 0 + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + cmp r0, 0 + bne _0804BF32 + b _0804C184 +_0804BF32: + movs r3, 0x1 + mov r10, r3 + b _0804C184 + .pool +_0804BF3C: + ldr r0, =gBankTarget + ldrb r1, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0x4 + movs r2, 0 + movs r3, 0 + bl AbilityBattleEffects + b _0804C0B2 + .pool +_0804BF54: + movs r0, 0 + str r0, [sp] + movs r0, 0x5 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + cmp r0, 0 + bne _0804BF6C + b _0804C184 +_0804BF6C: + movs r5, 0x1 + mov r10, r5 + ldr r0, =gBattleScripting + mov r12, r0 + b _0804C570 + .pool +_0804BF7C: + ldr r0, =gBankAttacker + ldrb r1, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0x8 + movs r2, 0 + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + cmp r0, 0 + bne _0804BF96 + b _0804C184 +_0804BF96: + movs r1, 0x1 + mov r10, r1 + b _0804C184 + .pool +_0804BFA0: + ldr r0, =gHitMarker + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 18 + ands r0, r1 + cmp r0, 0 + beq _0804BFE4 + ldr r2, [sp, 0x8] + cmp r2, 0x1D + bne _0804BFE4 + ldr r0, =gUnknown_020241EC + ldrh r2, [r0] + adds r3, r0, 0 + cmp r2, 0xA5 + beq _0804BFE4 + ldr r4, [sp, 0xC] + ldrh r1, [r4] + cmp r1, 0 + beq _0804BFCC + ldr r0, =0x0000ffff + cmp r1, r0 + bne _0804BFE4 +_0804BFCC: + cmp r2, 0xE2 + bne _0804BFDE + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _0804BFDE + b _0804C4B6 +_0804BFDE: + ldrh r0, [r3] + ldr r1, [sp, 0xC] + strh r0, [r1] +_0804BFE4: + movs r4, 0 + ldr r2, =gBattleMons + ldr r3, =gBankAttacker + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + adds r2, 0xC + adds r0, r2 + ldrh r0, [r0] + ldr r5, [sp, 0xC] + ldrh r1, [r5] + mov r9, r3 + cmp r0, r1 + beq _0804C01C + mov r6, r9 + movs r3, 0x58 + adds r5, r1, 0 +_0804C006: + adds r4, 0x1 + cmp r4, 0x3 + bgt _0804C01C + lsls r0, r4, 1 + ldrb r1, [r6] + muls r1, r3 + adds r0, r1 + adds r0, r2 + ldrh r0, [r0] + cmp r0, r5 + bne _0804C006 +_0804C01C: + cmp r4, 0x4 + bne _0804C026 + movs r0, 0 + ldr r1, [sp, 0xC] + strh r0, [r1] +_0804C026: + mov r2, r12 + ldrb r0, [r2, 0x14] + adds r0, 0x1 + strb r0, [r2, 0x14] + b _0804C570 + .pool +_0804C048: + movs r4, 0 + ldr r0, =gNoOfAllBanks + ldrb r3, [r0] + cmp r4, r3 + blt _0804C054 + b _0804C202 +_0804C054: + ldr r7, =gBattleStruct + movs r6, 0 + movs r3, 0xD0 + adds r5, r0, 0 + ldr r2, =gBattleMons +_0804C05E: + ldr r0, [r7] + adds r0, r3 + ldrh r1, [r0] + cmp r1, 0 + beq _0804C06C + strh r1, [r2, 0x2E] + strh r6, [r0] +_0804C06C: + adds r3, 0x2 + adds r2, 0x58 + adds r4, 0x1 + ldrb r0, [r5] + cmp r4, r0 + blt _0804C05E + b _0804C202 + .pool +_0804C088: + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl berry_effects_maybe + lsls r0, 24 + cmp r0, 0 + beq _0804C184 + movs r2, 0x1 + mov r10, r2 + ldr r3, =gBattleScripting + mov r12, r3 + b _0804C570 + .pool +_0804C0A8: + movs r0, 0x4 + movs r1, 0 + movs r2, 0 + bl berry_effects_maybe +_0804C0B2: + lsls r0, 24 + cmp r0, 0 + beq _0804C184 +_0804C0B8: + movs r4, 0x1 + mov r10, r4 + b _0804C184 +_0804C0BE: + ldr r1, =gStatuses3 + ldr r0, =gBankAttacker + ldrb r2, [r0] + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, =0x000400c0 + ands r0, r1 + cmp r0, 0 + bne _0804C0D4 + b _0804C4B6 +_0804C0D4: + ldr r0, =gHitMarker + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0804C0E2 + b _0804BC68 +_0804C0E2: + b _0804C4B6 + .pool +_0804C0F4: + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _0804C120 + ldr r1, =gStatuses3 + ldr r0, =gBankAttacker + ldrb r2, [r0] + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, =0x000400c0 + ands r0, r1 + cmp r0, 0 + beq _0804C120 + adds r0, r2, 0 + bl sub_803F90C + lsls r0, 24 + cmp r0, 0 + beq _0804C184 +_0804C120: + ldr r4, =gActiveBank + ldr r5, =gBankAttacker + ldrb r0, [r5] + strb r0, [r4] + movs r0, 0 + movs r1, 0 + bl dp01_build_cmdbuf_x33_a_33_33 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, =gStatuses3 + ldrb r2, [r5] + lsls r2, 2 + adds r2, r0 + ldr r0, [r2] + ldr r1, =0xfffbff3f + ands r0, r1 + str r0, [r2] + ldr r2, =gSpecialStatuses + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_0804C15A: + ldr r1, =gBattleScripting + ldrb r0, [r1, 0x14] + adds r0, 0x1 + strb r0, [r1, 0x14] + b _0804C5BA + .pool +_0804C184: + ldr r1, =gBattleScripting + ldrb r0, [r1, 0x14] + adds r0, 0x1 + strb r0, [r1, 0x14] + mov r12, r1 + b _0804C570 + .pool +_0804C194: + ldr r0, =gSpecialStatuses + ldr r6, =gBankTarget + ldrb r2, [r6] + lsls r3, r2, 2 + adds r1, r3, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 29 + cmp r0, 0 + blt _0804C202 + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + cmp r2, r0 + bcs _0804C202 + ldr r5, =gStatuses3 + adds r0, r3, r5 + ldr r0, [r0] + ldr r1, =0x000400c0 + ands r0, r1 + cmp r0, 0 + bne _0804C1C2 + b _0804BC80 +_0804C1C2: + b _0804C202 + .pool +_0804C1D8: + movs r4, 0 + ldr r0, =gNoOfAllBanks + ldrb r2, [r0] + cmp r4, r2 + bge _0804C202 + ldr r2, =gDisableStructs + ldr r5, =0xfeffffff + adds r3, r0, 0 + ldr r1, =gUnknown_020240D4 +_0804C1EA: + ldrb r0, [r2, 0xA] + cmp r0, 0 + bne _0804C1F6 + ldr r0, [r1] + ands r0, r5 + str r0, [r1] +_0804C1F6: + adds r2, 0x1C + adds r1, 0x58 + adds r4, 0x1 + ldrb r0, [r3] + cmp r4, r0 + blt _0804C1EA +_0804C202: + mov r1, r12 + ldrb r0, [r1, 0x14] + adds r0, 0x1 + strb r0, [r1, 0x14] + b _0804C570 + .pool +_0804C21C: + ldr r1, =gHitMarker + ldr r3, [r1] + movs r0, 0x80 + lsls r0, 5 + ands r0, r3 + ldr r2, =gBankAttacker + mov r9, r2 + adds r5, r1, 0 + cmp r0, 0 + beq _0804C246 + ldr r0, =gActiveBank + ldrb r2, [r2] + strb r2, [r0] + ldr r1, =gBankTarget + ldrb r0, [r1] + mov r4, r9 + strb r0, [r4] + strb r2, [r1] + ldr r0, =0xffffefff + ands r3, r0 + str r3, [r5] +_0804C246: + ldr r0, [r5] + movs r1, 0x80 + lsls r1, 3 + ands r0, r1 + cmp r0, 0 + beq _0804C262 + ldr r0, =gUnknown_02024240 + mov r2, r9 + ldrb r1, [r2] + lsls r1, 1 + adds r1, r0 + ldr r0, =gUnknown_020241EC + ldrh r0, [r0] + strh r0, [r1] +_0804C262: + ldr r0, =gAbsentBankFlags + ldrb r1, [r0] + ldr r2, =gBitTable + mov r3, r9 + ldrb r4, [r3] + lsls r0, r4, 2 + adds r0, r2 + ldr r3, [r0] + ands r1, r3 + adds r6, r2, 0 + cmp r1, 0 + beq _0804C27C + b _0804C3E8 +_0804C27C: + ldr r0, =gBattleStruct + ldr r1, [r0] + adds r1, 0x91 + ldrb r1, [r1] + ands r1, r3 + adds r7, r0, 0 + cmp r1, 0 + beq _0804C28E + b _0804C3E8 +_0804C28E: + ldr r0, =gBattleMoves + ldr r2, [sp, 0x18] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r1, [r1] + mov r8, r0 + cmp r1, 0x7F + bne _0804C2A4 + b _0804C3E8 +_0804C2A4: + ldr r0, [r5] + movs r1, 0x80 + lsls r1, 18 + ands r0, r1 + cmp r0, 0 + beq _0804C308 + ldr r0, =gUnknown_02024248 + lsls r1, r4, 1 + adds r1, r0 + ldr r0, =gUnknown_020241EC + ldrh r0, [r0] + strh r0, [r1] + ldr r0, =gUnknown_02024260 + mov r3, r9 + ldrb r1, [r3] + lsls r1, 1 + adds r1, r0 + ldr r0, =gCurrentMove + ldrh r0, [r0] + strh r0, [r1] + b _0804C322 + .pool +_0804C308: + ldr r1, =gUnknown_02024248 + lsls r0, r4, 1 + adds r0, r1 + ldr r1, =0x0000ffff + strh r1, [r0] + ldr r1, =gUnknown_02024260 + mov r4, r9 + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + movs r1, 0x1 + negs r1, r1 + strh r1, [r0] +_0804C322: + ldr r2, =gBankTarget + ldrb r3, [r2] + lsls r0, r3, 2 + adds r0, r6 + ldr r0, [r0] + lsls r0, 28 + ldr r1, [r5] + ands r1, r0 + cmp r1, 0 + bne _0804C340 + ldr r0, =gUnknown_02024270 + adds r0, r3, r0 + mov r3, r9 + ldrb r1, [r3] + strb r1, [r0] +_0804C340: + ldr r0, [r5] + movs r1, 0x80 + lsls r1, 18 + ands r0, r1 + cmp r0, 0 + beq _0804C3DC + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _0804C3DC + ldr r0, =gUnknown_020241EC + ldrh r3, [r0] + ldr r0, =0x0000ffff + cmp r3, r0 + bne _0804C390 + ldr r1, =gUnknown_02024250 + ldrb r0, [r2] + lsls r0, 1 + adds r0, r1 + strh r3, [r0] + b _0804C3E8 + .pool +_0804C390: + ldr r0, =gUnknown_02024250 + ldrb r1, [r2] + lsls r1, 1 + adds r1, r0 + ldr r4, =gCurrentMove + ldrh r0, [r4] + strh r0, [r1] + ldr r0, [r7] + ldrb r3, [r0, 0x13] + cmp r3, 0 + beq _0804C3C0 + ldr r0, =gUnknown_02024258 + ldrb r1, [r2] + lsls r1, 1 + adds r1, r0 + movs r0, 0x3F + ands r0, r3 + b _0804C3E6 + .pool +_0804C3C0: + ldr r0, =gUnknown_02024258 + ldrb r2, [r2] + lsls r2, 1 + adds r2, r0 + ldrh r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + add r0, r8 + ldrb r0, [r0, 0x2] + strh r0, [r2] + b _0804C3E8 + .pool +_0804C3DC: + ldr r0, =gUnknown_02024250 + ldrb r1, [r2] + lsls r1, 1 + adds r1, r0 + ldr r0, =0x0000ffff +_0804C3E6: + strh r0, [r1] +_0804C3E8: + mov r4, r12 + ldrb r0, [r4, 0x14] + adds r0, 0x1 + strb r0, [r4, 0x14] + b _0804C570 + .pool +_0804C3FC: + ldr r0, =gAbsentBankFlags + ldrb r1, [r0] + ldr r7, =gBitTable + ldr r2, =gBankAttacker + ldrb r3, [r2] + lsls r0, r3, 2 + adds r0, r7 + ldr r4, [r0] + ands r1, r4 + mov r9, r2 + cmp r1, 0 + bne _0804C4B6 + ldr r6, =gBattleStruct + ldr r5, [r6] + adds r0, r5, 0 + adds r0, 0x91 + ldrb r0, [r0] + ands r0, r4 + cmp r0, 0 + bne _0804C4B6 + ldr r1, =gBattleMoves + ldr r2, [sp, 0x18] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x8] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0804C4B6 + ldr r0, =gHitMarker + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 18 + ands r0, r1 + cmp r0, 0 + beq _0804C4B6 + ldr r4, =gBankTarget + ldrb r0, [r4] + cmp r3, r0 + beq _0804C4B6 + ldrb r2, [r4] + lsls r0, r2, 2 + adds r0, r7 + ldr r0, [r0] + lsls r0, 28 + ands r1, r0 + cmp r1, 0 + bne _0804C4B6 + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _0804C4B6 + lsls r1, r2, 1 + adds r1, r5 + adds r1, 0x98 + ldr r3, =gUnknown_020241EC + ldrh r0, [r3] + strb r0, [r1] + ldrb r1, [r4] + ldr r0, [r6] + lsls r1, 1 + adds r1, r0 + adds r1, 0x99 + ldrh r0, [r3] + lsrs r0, 8 + strb r0, [r1] + ldrb r0, [r4] + mov r2, r9 + ldrb r1, [r2] + ldr r2, [r6] + lsls r0, 3 + lsls r1, 1 + adds r0, r1 + adds r0, r2 + adds r0, 0xE0 + ldrh r1, [r3] + strb r1, [r0] + ldrb r1, [r4] + mov r4, r9 + ldrb r0, [r4] + ldr r2, [r6] + lsls r1, 3 + lsls r0, 1 + adds r1, r0 + adds r1, r2 + adds r1, 0xE1 + ldrh r0, [r3] + lsrs r0, 8 + strb r0, [r1] +_0804C4B6: + mov r5, r12 + ldrb r0, [r5, 0x14] + adds r0, 0x1 + strb r0, [r5, 0x14] + b _0804C570 + .pool +_0804C4E4: + ldr r5, =gHitMarker + ldr r2, [r5] + movs r0, 0x80 + lsls r0, 12 + ands r0, r2 + cmp r0, 0 + bne _0804C568 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0804C568 + ldr r1, =gProtectStructs + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0, 0x1] + lsls r0, 29 + cmp r0, 0 + blt _0804C568 + ldr r0, =gBattleMoves + mov r9, r0 + ldr r1, =gCurrentMove + mov r8, r1 + ldrh r0, [r1] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + add r1, r9 + ldrb r0, [r1, 0x6] + cmp r0, 0x8 + bne _0804C568 + movs r6, 0x80 + lsls r6, 2 + adds r4, r6, 0 + ands r4, r2 + cmp r4, 0 + bne _0804C568 + ldr r7, =gBankTarget + ldrb r0, [r7] + bl GetBankIdentity + movs r1, 0x2 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, =gBattleMons + movs r0, 0x58 + muls r0, r2 + adds r0, r1 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _0804C55E + bl _0804BCAC +_0804C55E: + ldr r0, [r5] + orrs r0, r6 + str r0, [r5] + ldr r2, =gBattleScripting + mov r12, r2 +_0804C568: + mov r3, r12 + ldrb r0, [r3, 0x14] + adds r0, 0x1 + strb r0, [r3, 0x14] +_0804C570: + ldr r4, [sp, 0x10] + cmp r4, 0x1 + bne _0804C582 + mov r5, r10 + cmp r5, 0 + bne _0804C582 + movs r0, 0x11 + mov r1, r12 + strb r0, [r1, 0x14] +_0804C582: + ldr r2, [sp, 0x10] + cmp r2, 0x2 + bne _0804C598 + ldr r4, [sp, 0x14] + mov r3, r12 + ldrb r3, [r3, 0x14] + cmp r4, r3 + bne _0804C598 + movs r0, 0x11 + mov r4, r12 + strb r0, [r4, 0x14] +_0804C598: + mov r5, r12 + ldrb r0, [r5, 0x14] + cmp r0, 0x11 + beq _0804C5A4 + bl _0804BD14 +_0804C5A4: + mov r1, r12 + ldrb r0, [r1, 0x14] + cmp r0, 0x11 + bne _0804C5BA + mov r2, r10 + cmp r2, 0 + bne _0804C5BA + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x3 +_0804C5B8: + str r0, [r1] +_0804C5BA: + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_804BBCC + + thumb_func_start atk4A_damagecalc2 +atk4A_damagecalc2: @ 804C5F4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r4, 0 + movs r5, 0 + ldr r2, =gBattleMoves + ldr r0, =gCurrentMove + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x2] + mov r8, r0 + ldr r2, =gBattleMons + ldr r3, =gBankTarget + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x20 + ldrb r0, [r0] + mov r12, r2 + adds r7, r3, 0 + cmp r0, 0x1A + bne _0804C688 + mov r1, r8 + cmp r1, 0x4 + bne _0804C688 + ldr r3, =gLastUsedAbility + strb r0, [r3] + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x9 + orrs r0, r1 + strb r0, [r2] + ldr r1, =gUnknown_02024250 + ldrb r0, [r7] + lsls r0, 1 + adds r0, r1 + strh r4, [r0] + ldr r0, =gBattleCommunication + mov r2, r8 + strb r2, [r0, 0x6] + ldrb r0, [r7] + ldrb r1, [r3] + bl RecordAbilityBattle + b _0804C76A + .pool +_0804C678: + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r2, 0x8 + orrs r1, r2 + strb r1, [r0] + b _0804C76A + .pool +_0804C688: + ldr r1, =gUnknown_0831ACE8 + adds r0, r5, r1 + ldrb r0, [r0] + adds r6, r1, 0 + b _0804C74A + .pool +_0804C698: + adds r0, r5, r6 + ldrb r0, [r0] + cmp r0, r8 + bne _0804C744 + adds r2, r5, 0x1 + adds r3, r2, r6 + ldrb r1, [r7] + movs r0, 0x58 + muls r0, r1 + add r0, r12 + adds r0, 0x21 + ldrb r1, [r3] + adds r3, r2, 0 + ldrb r0, [r0] + cmp r1, r0 + bne _0804C6D6 + adds r0, r5, 0x2 + adds r0, r6 + ldrb r1, [r0] + cmp r1, 0 + beq _0804C678 + cmp r1, 0x5 + bne _0804C6CA + movs r0, 0x4 + orrs r4, r0 +_0804C6CA: + cmp r1, 0x14 + bne _0804C6D6 + movs r0, 0x2 + orrs r4, r0 + lsls r0, r4, 24 + lsrs r4, r0, 24 +_0804C6D6: + adds r2, r3, r6 + ldrb r1, [r7] + movs r0, 0x58 + muls r0, r1 + add r0, r12 + adds r1, r0, 0 + adds r1, 0x22 + ldrb r2, [r2] + ldrb r1, [r1] + cmp r2, r1 + bne _0804C744 + adds r0, 0x21 + ldrb r1, [r0] + cmp r1, r2 + beq _0804C6FE + adds r0, r5, 0x2 + adds r0, r6 + ldrb r0, [r0] + cmp r0, 0 + beq _0804C678 +_0804C6FE: + cmp r1, r2 + beq _0804C714 + adds r0, r5, 0x2 + adds r0, r6 + ldrb r0, [r0] + cmp r0, 0x5 + bne _0804C714 + movs r0, 0x4 + orrs r4, r0 + lsls r0, r4, 24 + lsrs r4, r0, 24 +_0804C714: + adds r2, r3, r6 + ldrb r1, [r7] + movs r0, 0x58 + muls r0, r1 + add r0, r12 + adds r1, r0, 0 + adds r1, 0x22 + ldrb r2, [r2] + ldrb r1, [r1] + cmp r2, r1 + bne _0804C744 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, r2 + beq _0804C744 + adds r0, r5, 0x2 + adds r0, r6 + ldrb r0, [r0] + cmp r0, 0x14 + bne _0804C744 + movs r0, 0x2 + orrs r4, r0 + lsls r0, r4, 24 + lsrs r4, r0, 24 +_0804C744: + adds r5, 0x3 + adds r0, r5, r6 + ldrb r0, [r0] +_0804C74A: + cmp r0, 0xFF + beq _0804C76A + cmp r0, 0xFE + bne _0804C698 + ldrb r1, [r7] + movs r0, 0x58 + muls r0, r1 + mov r1, r12 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 22 + ands r0, r1 + cmp r0, 0 + beq _0804C744 +_0804C76A: + ldr r2, =gBattleMons + ldr r0, =gBankTarget + mov r8, r0 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x20 + ldrb r6, [r0] + cmp r6, 0x19 + bne _0804C7E6 + movs r5, 0x29 + ands r5, r4 + cmp r5, 0 + bne _0804C7E6 + ldr r0, =gBankAttacker + ldrb r0, [r0] + ldr r7, =gCurrentMove + ldrh r1, [r7] + bl move_weather_interaction + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x2 + bne _0804C7E6 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _0804C7AC + movs r0, 0x6 + ands r4, r0 + cmp r4, 0x6 + bne _0804C7E6 +_0804C7AC: + ldr r2, =gBattleMoves + ldrh r1, [r7] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _0804C7E6 + ldr r3, =gLastUsedAbility + strb r6, [r3] + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, =gUnknown_02024250 + mov r2, r8 + ldrb r0, [r2] + lsls r0, 1 + adds r0, r1 + strh r5, [r0] + ldr r1, =gBattleCommunication + movs r0, 0x3 + strb r0, [r1, 0x6] + ldrb r0, [r2] + ldrb r1, [r3] + bl RecordAbilityBattle +_0804C7E6: + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0804C804 + ldr r2, =gProtectStructs + ldr r0, =gBankAttacker + ldrb r1, [r0] + lsls r1, 4 + adds r1, r2 + ldrb r0, [r1, 0x1] + movs r2, 0x2 + orrs r0, r2 + strb r0, [r1, 0x1] +_0804C804: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk4A_damagecalc2 + + thumb_func_start atk4B_cmd4b +atk4B_cmd4b: @ 804C844 + push {r4,lr} + ldr r4, =gActiveBank + ldr r0, =gBankAttacker + ldrb r0, [r0] + strb r0, [r4] + ldr r2, =gHitMarker + ldr r1, =gBitTable + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r2] + ands r0, r1 + cmp r0, 0 + bne _0804C872 + movs r0, 0 + movs r1, 0 + bl dp01_build_cmdbuf_x06_a + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_0804C872: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atk4B_cmd4b + + thumb_func_start atk4C_switch1 +atk4C_switch1: @ 804C894 + push {r4,r5,lr} + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + bne _0804C8E4 + ldr r5, =gBattlescriptCurrInstr + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r4, =gActiveBank + strb r0, [r4] + ldr r3, =gBattlePartyID + ldrb r0, [r4] + lsls r2, r0, 1 + adds r2, r3 + ldr r1, =gBattleStruct + ldr r1, [r1] + adds r0, r1 + adds r0, 0x5C + ldrb r0, [r0] + strh r0, [r2] + ldr r1, =gBitTable + ldrb r0, [r4] + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0] + movs r0, 0 + movs r1, 0 + bl dp01_build_cmdbuf_x00_a_b_0 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] +_0804C8E4: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end atk4C_switch1 + + thumb_func_start sub_804C904 +sub_804C904: @ 804C904 + push {r4-r7,lr} + sub sp, 0x58 + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + beq _0804C912 + b _0804CAA4 +_0804C912: + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r4, =gActiveBank + strb r0, [r4] + ldr r6, =gBattleMons + ldrb r0, [r4] + movs r5, 0x58 + adds r1, r0, 0 + muls r1, r5 + adds r1, r6 + mov r0, sp + movs r2, 0x58 + bl memcpy + ldrb r0, [r4] + muls r0, r5 + adds r3, r0, r6 + movs r2, 0 + ldr r5, =gBattleBufferB +_0804C93E: + adds r0, r3, r2 + ldrb r1, [r4] + lsls r1, 9 + adds r1, 0x4 + adds r1, r2, r1 + adds r1, r5 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x57 + bls _0804C93E + ldr r4, =gBattleMons + ldr r6, =gActiveBank + ldrb r0, [r6] + movs r7, 0x58 + adds r2, r0, 0 + muls r2, r7 + adds r2, r4 + ldr r3, =gBaseStats + ldrh r1, [r2] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0, 0x6] + adds r2, 0x21 + strb r0, [r2] + ldrb r0, [r6] + adds r1, r0, 0 + muls r1, r7 + adds r1, r4 + ldrh r2, [r1] + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0, 0x7] + adds r1, 0x22 + strb r0, [r1] + ldrb r0, [r6] + adds r1, r0, 0 + muls r1, r7 + adds r1, r4 + ldrh r0, [r1] + ldrb r1, [r1, 0x17] + lsrs r1, 7 + bl sub_806B694 + ldrb r1, [r6] + muls r1, r7 + adds r1, r4 + adds r1, 0x20 + strb r0, [r1] + ldrb r0, [r6] + bl GetBankSide + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, =gUnknown_020243D0 + adds r0, 0x29 + adds r0, r2, r0 + ldrb r1, [r0] + ldr r3, =gBitTable + ldr r2, =gBattlePartyID + ldrb r5, [r6] + lsls r0, r5, 1 + adds r0, r2 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + ands r1, r0 + mov r12, r4 + cmp r1, 0 + beq _0804C9DE + adds r0, r5, 0 + muls r0, r7 + add r0, r12 + movs r1, 0 + strh r1, [r0, 0x2E] +_0804C9DE: + ldr r2, =gBattleMoves + ldr r0, =gCurrentMove + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x7F + bne _0804CA26 + movs r2, 0 + adds r4, r6, 0 + movs r6, 0x58 + mov r5, r12 + adds r5, 0x18 + add r3, sp, 0x18 +_0804C9FE: + ldrb r0, [r4] + adds r1, r0, 0 + muls r1, r6 + adds r1, r2, r1 + adds r1, r5 + adds r0, r3, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r2, 0x1 + cmp r2, 0x7 + ble _0804C9FE + ldr r0, =gActiveBank + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + mov r1, r12 + adds r1, 0x50 + adds r0, r1 + ldr r1, [sp, 0x50] + str r1, [r0] +_0804CA26: + bl sub_803A284 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 10 + ands r0, r1 + cmp r0, 0 + beq _0804CA78 + ldr r4, =gBattleMons + ldr r0, =gActiveBank + ldrb r3, [r0] + movs r0, 0x58 + adds r2, r3, 0 + muls r2, r0 + adds r1, r2, r4 + ldrh r0, [r1, 0x2C] + lsrs r0, 1 + ldrh r1, [r1, 0x28] + cmp r0, r1 + bcc _0804CA78 + cmp r1, 0 + beq _0804CA78 + adds r0, r4, 0 + adds r0, 0x4C + adds r0, r2, r0 + ldr r0, [r0] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + bne _0804CA78 + ldr r0, =gBattleStruct + ldr r2, [r0] + adds r2, 0x92 + ldr r1, =gBitTable + lsls r0, r3, 2 + adds r0, r1 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] +_0804CA78: + ldr r0, =gBattleScripting + ldr r3, =gActiveBank + ldrb r2, [r3] + strb r2, [r0, 0x17] + ldr r1, =gBattleTextBuff1 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x7 + strb r0, [r1, 0x1] + strb r2, [r1, 0x2] + ldr r2, =gBattlePartyID + ldrb r0, [r3] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] +_0804CAA4: + add sp, 0x58 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_804C904 + + thumb_func_start atk4E_switch3 +atk4E_switch3: @ 804CAE8 + push {r4-r6,lr} + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + bne _0804CB86 + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r6, =gActiveBank + strb r0, [r6] + ldrb r0, [r6] + bl GetBankSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0804CB3E + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + ldr r1, =0x063f0902 + ands r0, r1 + cmp r0, 0 + bne _0804CB3E + ldr r4, =gBattleMons + ldrb r0, [r6] + movs r5, 0x58 + muls r0, r5 + adds r0, r4 + ldrh r0, [r0] + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + ldrb r1, [r6] + muls r1, r5 + adds r4, 0x48 + adds r1, r4 + ldr r2, [r1] + movs r1, 0x2 + bl SetPokedexFlag +_0804CB3E: + ldr r2, =gAbsentBankFlags + ldr r1, =gBitTable + ldr r5, =gActiveBank + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + ldrb r0, [r2] + bics r0, r1 + strb r0, [r2] + ldr r1, =gBattlePartyID + ldrb r0, [r5] + lsls r0, 1 + adds r0, r1 + ldrb r1, [r0] + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + ldrb r2, [r0, 0x2] + movs r0, 0 + bl dp01_build_cmdbuf_x05_a_b_c + ldrb r0, [r5] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r4] + adds r0, 0x3 + str r0, [r4] + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 11 + ands r0, r1 + cmp r0, 0 + beq _0804CB86 + bl sub_81A56B4 +_0804CB86: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end atk4E_switch3 + + thumb_func_start atk4F_jumpifcannotswitch +atk4F_jumpifcannotswitch: @ 804CBB0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + ldrb r1, [r0, 0x1] + movs r0, 0x7F + ands r0, r1 + bl get_battle_side_of_something + ldr r3, =gActiveBank + strb r0, [r3] + ldr r2, [r4] + ldrb r1, [r2, 0x1] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0804CC28 + ldr r1, =gBattleMons + ldrb r3, [r3] + movs r0, 0x58 + muls r0, r3 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + ldr r1, =0x0400e000 + ands r0, r1 + cmp r0, 0 + bne _0804CBFC + ldr r1, =gStatuses3 + lsls r0, r3, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 3 + ands r0, r1 + cmp r0, 0 + beq _0804CC28 +_0804CBFC: + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + b _0804CF00 + .pool +_0804CC28: + ldr r0, =gBattleTypeFlags + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 15 + ands r0, r1 + cmp r0, 0 + beq _0804CCC0 + ldr r5, =gActiveBank + ldrb r0, [r5] + bl GetBankSide + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gPlayerParty + mov r8, r1 + cmp r0, 0x1 + bne _0804CC4E + ldr r0, =gEnemyParty + mov r8, r0 +_0804CC4E: + movs r4, 0 + ldrb r1, [r5] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0804CC5C + movs r4, 0x3 +_0804CC5C: + adds r6, r4, 0x3 + cmp r4, r6 + bge _0804CCA4 + ldr r7, =gBattlePartyID +_0804CC64: + movs r0, 0x64 + muls r0, r4 + mov r1, r8 + adds r5, r1, r0 + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0804CC9E + adds r0, r5, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0804CC9E + adds r0, r5, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _0804CC9E + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 1 + adds r0, r7 + ldrh r0, [r0] + cmp r0, r4 + bne _0804CCA4 +_0804CC9E: + adds r4, 0x1 + cmp r4, r6 + blt _0804CC64 +_0804CCA4: + cmp r4, r6 + bne _0804CCAA + b _0804CED0 +_0804CCAA: + b _0804CEF8 + .pool +_0804CCC0: + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0804CD8C + movs r0, 0x80 + lsls r0, 16 + ands r1, r0 + cmp r1, 0 + beq _0804CD00 + ldr r5, =gActiveBank + ldrb r0, [r5] + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _0804CCEC + ldr r0, =gPlayerParty + b _0804CD16 + .pool +_0804CCEC: + ldr r1, =gEnemyParty + mov r8, r1 + ldrb r0, [r5] + movs r4, 0x3 + cmp r0, 0x1 + bne _0804CD32 + movs r4, 0 + b _0804CD32 + .pool +_0804CD00: + ldr r5, =gActiveBank + ldrb r0, [r5] + bl GetBankSide + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gPlayerParty + mov r8, r1 + cmp r0, 0x1 + bne _0804CD18 + ldr r0, =gEnemyParty +_0804CD16: + mov r8, r0 +_0804CD18: + movs r4, 0 + ldrb r0, [r5] + bl sub_806D864 + lsls r0, 24 + lsrs r0, 24 + bl sub_806D82C + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bne _0804CD32 + movs r4, 0x3 +_0804CD32: + adds r6, r4, 0x3 + cmp r4, r6 + bge _0804CCA4 + ldr r7, =gBattlePartyID +_0804CD3A: + movs r0, 0x64 + muls r0, r4 + mov r1, r8 + adds r5, r1, r0 + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0804CD74 + adds r0, r5, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0804CD74 + adds r0, r5, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _0804CD74 + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 1 + adds r0, r7 + ldrh r0, [r0] + cmp r0, r4 + bne _0804CCA4 +_0804CD74: + adds r4, 0x1 + cmp r4, r6 + blt _0804CD3A + b _0804CCA4 + .pool +_0804CD8C: + movs r0, 0x80 + lsls r0, 8 + ands r1, r0 + cmp r1, 0 + beq _0804CE10 + ldr r5, =gActiveBank + ldrb r0, [r5] + bl GetBankSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0804CE10 + ldr r0, =gEnemyParty + mov r8, r0 + movs r4, 0 + ldrb r0, [r5] + cmp r0, 0x3 + bne _0804CDB4 + movs r4, 0x3 +_0804CDB4: + adds r6, r4, 0x3 + cmp r4, r6 + blt _0804CDBC + b _0804CCA4 +_0804CDBC: + ldr r7, =gBattlePartyID +_0804CDBE: + movs r0, 0x64 + muls r0, r4 + mov r1, r8 + adds r5, r1, r0 + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0804CDFA + adds r0, r5, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0804CDFA + adds r0, r5, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _0804CDFA + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 1 + adds r0, r7 + ldrh r0, [r0] + cmp r0, r4 + beq _0804CDFA + b _0804CCA4 +_0804CDFA: + adds r4, 0x1 + cmp r4, r6 + blt _0804CDBE + b _0804CCA4 + .pool +_0804CE10: + ldr r0, =gActiveBank + ldrb r0, [r0] + bl GetBankSide + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + bne _0804CE54 + movs r0, 0x1 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + ands r0, r4 + cmp r0, 0 + beq _0804CE48 + movs r0, 0x3 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r6, r0, 24 + b _0804CE4A + .pool +_0804CE48: + adds r6, r7, 0 +_0804CE4A: + ldr r0, =gEnemyParty + mov r8, r0 + b _0804CE82 + .pool +_0804CE54: + movs r0, 0 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0804CE7C + movs r0, 0x2 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r6, r0, 24 + b _0804CE7E + .pool +_0804CE7C: + adds r6, r7, 0 +_0804CE7E: + ldr r1, =gPlayerParty + mov r8, r1 +_0804CE82: + movs r4, 0 +_0804CE84: + movs r0, 0x64 + muls r0, r4 + mov r1, r8 + adds r5, r1, r0 + adds r0, r5, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _0804CEC6 + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0804CEC6 + adds r0, r5, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0804CEC6 + ldr r1, =gBattlePartyID + lsls r0, r7, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r4, r0 + beq _0804CEC6 + lsls r0, r6, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r4, r0 + bne _0804CECC +_0804CEC6: + adds r4, 0x1 + cmp r4, 0x5 + ble _0804CE84 +_0804CECC: + cmp r4, 0x6 + bne _0804CEF8 +_0804CED0: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0804CF00 + .pool +_0804CEF8: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x6 + str r0, [r1] +_0804CF00: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk4F_jumpifcannotswitch + + thumb_func_start sub_804CF10 +sub_804CF10: @ 804CF10 + push {r4,r5,lr} + sub sp, 0x4 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + ldr r5, =gActiveBank + ldrb r0, [r5] + ldr r4, =gBattleStruct + ldr r1, [r4] + adds r1, r0, r1 + adds r1, 0x58 + ldr r3, =gBattlePartyID + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r5] + ldr r1, [r4] + adds r0, r1 + adds r0, 0x5C + movs r1, 0x6 + strb r1, [r0] + ldr r1, [r4] + adds r1, 0x93 + ldr r3, =gBitTable + ldrb r0, [r5] + lsls r0, 2 + adds r0, r3 + ldr r3, [r0] + ldrb r0, [r1] + bics r0, r3 + strb r0, [r1] + ldrb r0, [r5] + lsls r1, r0, 1 + adds r1, r0 + adds r1, 0x60 + ldr r0, [r4] + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x1 + movs r3, 0 + bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f + ldrb r0, [r5] + bl dp01_battle_side_mark_buffer_for_execution + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_804CF10 + + thumb_func_start atk50_openpartyscreen +atk50_openpartyscreen: @ 804CF88 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + movs r7, 0 + movs r0, 0 + mov r9, r0 + ldr r6, =gBattlescriptCurrInstr + ldr r2, [r6] + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + mov r8, r1 + ldrb r1, [r2, 0x1] + adds r0, r1, 0 + mov r12, r6 + cmp r0, 0x5 + beq _0804CFBE + b _0804D464 +_0804CFBE: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x41 + ands r1, r0 + cmp r1, 0x1 + beq _0804D0B0 + ldr r1, =gActiveBank + strb r7, [r1] + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + cmp r7, r0 + bcc _0804CFD8 + b _0804D450 +_0804CFD8: + ldr r7, =gHitMarker + ldr r6, =gBitTable + adds r4, r1, 0 + ldr r2, =gAbsentBankFlags + mov r8, r2 +_0804CFE2: + ldrb r2, [r4] + lsls r0, r2, 2 + adds r0, r6 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r7] + ands r0, r1 + cmp r0, 0 + beq _0804D088 + adds r0, r2, 0 + movs r1, 0x6 + movs r2, 0x6 + bl sub_80423F4 + lsls r0, 24 + cmp r0, 0 + beq _0804D054 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + mov r2, r8 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r7] + bics r0, r1 + str r0, [r7] + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + bl sub_8034464 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + b _0804D098 + .pool +_0804D054: + ldr r5, =gSpecialStatuses + ldrb r0, [r4] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _0804D098 + movs r0, 0x6 + bl sub_804CF10 + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + b _0804D098 + .pool +_0804D088: + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + bl sub_8034464 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_0804D098: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldr r1, =gNoOfAllBanks + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bcc _0804CFE2 + b _0804D450 + .pool +_0804D0B0: + ands r0, r1 + cmp r0, 0 + bne _0804D0B8 + b _0804D450 +_0804D0B8: + ldr r0, =gHitMarker + mov r8, r0 + ldr r0, [r0] + lsrs r5, r0, 28 + ldr r6, =gBitTable + ldr r0, [r6] + ands r0, r5 + cmp r0, 0 + beq _0804D170 + ldr r4, =gActiveBank + strb r7, [r4] + movs r0, 0 + movs r1, 0x6 + movs r2, 0x6 + bl sub_80423F4 + lsls r0, 24 + cmp r0, 0 + beq _0804D120 + ldr r2, =gAbsentBankFlags + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r1, [r0] + lsls r1, 28 + mov r2, r8 + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + movs r0, 0 + bl dp01_build_cmdbuf_x2A_2A_2A_2A + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + b _0804D170 + .pool +_0804D120: + ldr r6, =gSpecialStatuses + ldrb r0, [r4] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _0804D15C + ldr r0, =gBattleStruct + ldr r0, [r0] + adds r0, 0x5E + ldrb r0, [r0] + bl sub_804CF10 + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + b _0804D170 + .pool +_0804D15C: + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + bl sub_8034464 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + movs r0, 0x1 + mov r9, r0 +_0804D170: + ldr r6, =gBitTable + ldr r0, [r6, 0x8] + ands r0, r5 + cmp r0, 0 + beq _0804D22E + ldr r0, [r6] + ands r0, r5 + cmp r0, 0 + bne _0804D22E + ldr r4, =gActiveBank + movs r0, 0x2 + strb r0, [r4] + movs r0, 0x2 + movs r1, 0x6 + movs r2, 0x6 + bl sub_80423F4 + lsls r0, 24 + cmp r0, 0 + beq _0804D1D8 + ldr r2, =gAbsentBankFlags + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r2, =gHitMarker + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + movs r0, 0 + bl dp01_build_cmdbuf_x2A_2A_2A_2A + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + b _0804D22E + .pool +_0804D1D8: + ldr r6, =gSpecialStatuses + ldrb r0, [r4] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _0804D214 + ldr r0, =gBattleStruct + ldr r0, [r0] + adds r0, 0x5C + ldrb r0, [r0] + bl sub_804CF10 + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + b _0804D22E + .pool +_0804D214: + movs r0, 0x1 + mov r1, r9 + ands r0, r1 + cmp r0, 0 + bne _0804D22E + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + bl sub_8034464 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_0804D22E: + ldr r6, =gBitTable + ldr r0, [r6, 0x4] + ands r0, r5 + cmp r0, 0 + beq _0804D2E4 + ldr r4, =gActiveBank + movs r0, 0x1 + strb r0, [r4] + movs r0, 0x1 + movs r1, 0x6 + movs r2, 0x6 + bl sub_80423F4 + lsls r0, 24 + cmp r0, 0 + beq _0804D290 + ldr r2, =gAbsentBankFlags + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r2, =gHitMarker + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + movs r0, 0 + bl dp01_build_cmdbuf_x2A_2A_2A_2A + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + b _0804D2E4 + .pool +_0804D290: + ldr r6, =gSpecialStatuses + ldrb r0, [r4] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _0804D2CC + ldr r0, =gBattleStruct + ldr r0, [r0] + adds r0, 0x5F + ldrb r0, [r0] + bl sub_804CF10 + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + b _0804D2E4 + .pool +_0804D2CC: + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + bl sub_8034464 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + movs r0, 0x2 + mov r2, r9 + orrs r2, r0 + mov r9, r2 +_0804D2E4: + ldr r6, =gBitTable + ldr r0, [r6, 0xC] + ands r0, r5 + cmp r0, 0 + beq _0804D3A2 + ldr r0, [r6, 0x4] + ands r0, r5 + cmp r0, 0 + bne _0804D3A2 + ldr r4, =gActiveBank + movs r0, 0x3 + strb r0, [r4] + movs r0, 0x3 + movs r1, 0x6 + movs r2, 0x6 + bl sub_80423F4 + lsls r0, 24 + cmp r0, 0 + beq _0804D34C + ldr r2, =gAbsentBankFlags + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r2, =gHitMarker + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + movs r0, 0 + bl dp01_build_cmdbuf_x2A_2A_2A_2A + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + b _0804D3A2 + .pool +_0804D34C: + ldr r6, =gSpecialStatuses + ldrb r0, [r4] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _0804D388 + ldr r0, =gBattleStruct + ldr r0, [r0] + adds r0, 0x5D + ldrb r0, [r0] + bl sub_804CF10 + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + b _0804D3A2 + .pool +_0804D388: + movs r0, 0x2 + mov r1, r9 + ands r1, r0 + cmp r1, 0 + bne _0804D3A2 + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + bl sub_8034464 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_0804D3A2: + ldr r1, =gSpecialStatuses + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _0804D3FA + adds r0, r1, 0 + adds r0, 0x28 + ldrb r0, [r0] + lsls r0, 25 + cmp r0, 0 + blt _0804D3FA + cmp r5, 0 + beq _0804D3FA + ldr r0, =gAbsentBankFlags + ldrb r1, [r0] + ldr r0, =gBitTable + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _0804D3E4 + ldr r1, =gActiveBank + movs r0, 0x2 + strb r0, [r1] + b _0804D3E8 + .pool +_0804D3E4: + ldr r0, =gActiveBank + strb r1, [r0] +_0804D3E8: + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + bl sub_8034464 + ldr r0, =gActiveBank + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution +_0804D3FA: + ldr r1, =gSpecialStatuses + ldrb r0, [r1, 0x14] + lsls r0, 25 + cmp r0, 0 + blt _0804D450 + adds r0, r1, 0 + adds r0, 0x3C + ldrb r0, [r0] + lsls r0, 25 + cmp r0, 0 + blt _0804D450 + cmp r5, 0 + beq _0804D450 + ldr r0, =gAbsentBankFlags + ldrb r0, [r0] + ldr r1, =gBitTable + ldr r1, [r1, 0x4] + ands r0, r1 + cmp r0, 0 + beq _0804D438 + ldr r1, =gActiveBank + movs r0, 0x3 + b _0804D43C + .pool +_0804D438: + ldr r1, =gActiveBank + movs r0, 0x1 +_0804D43C: + strb r0, [r1] + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + bl sub_8034464 + ldr r0, =gActiveBank + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution +_0804D450: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x6 + str r0, [r1] + b _0804D804 + .pool +_0804D464: + cmp r0, 0x6 + beq _0804D46A + b _0804D658 +_0804D46A: + ldr r0, =gBattleTypeFlags + ldr r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0804D478 + b _0804D5F4 +_0804D478: + movs r0, 0x1 + ands r1, r0 + cmp r1, 0 + bne _0804D482 + b _0804D5F4 +_0804D482: + ldr r7, =gHitMarker + ldr r0, [r7] + lsrs r5, r0, 28 + ldr r4, =gBitTable + ldr r0, [r4, 0x8] + ands r0, r5 + cmp r0, 0 + beq _0804D52A + ldr r0, [r4] + ands r0, r5 + cmp r0, 0 + beq _0804D52A + ldr r6, =gActiveBank + movs r0, 0x2 + strb r0, [r6] + ldr r0, =gBattleBufferB + ldrb r1, [r0, 0x1] + movs r0, 0x2 + movs r2, 0x6 + bl sub_80423F4 + lsls r0, 24 + cmp r0, 0 + beq _0804D4F8 + ldr r2, =gAbsentBankFlags + ldrb r0, [r6] + lsls r0, 2 + adds r0, r4 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r6] + lsls r0, 2 + adds r0, r4 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r7] + bics r0, r1 + str r0, [r7] + movs r0, 0 + bl dp01_build_cmdbuf_x2A_2A_2A_2A + ldrb r0, [r6] + bl dp01_battle_side_mark_buffer_for_execution + b _0804D52A + .pool +_0804D4F8: + ldr r4, =gSpecialStatuses + ldrb r0, [r6] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _0804D52A + ldr r0, =gBattleStruct + ldr r0, [r0] + adds r0, 0x5C + ldrb r0, [r0] + bl sub_804CF10 + ldrb r1, [r6] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] +_0804D52A: + ldr r4, =gBitTable + ldr r0, [r4, 0xC] + ands r0, r5 + cmp r0, 0 + beq _0804D5DA + ldr r0, [r4, 0x4] + ands r5, r0 + cmp r5, 0 + beq _0804D5DA + ldr r5, =gActiveBank + movs r0, 0x3 + strb r0, [r5] + ldr r0, =gBattleBufferB + ldr r2, =0x00000201 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x3 + movs r2, 0x6 + bl sub_80423F4 + lsls r0, 24 + cmp r0, 0 + beq _0804D5A8 + ldr r2, =gAbsentBankFlags + ldrb r0, [r5] + lsls r0, 2 + adds r0, r4 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r2, =gHitMarker + ldrb r0, [r5] + lsls r0, 2 + adds r0, r4 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + movs r0, 0 + bl dp01_build_cmdbuf_x2A_2A_2A_2A + ldrb r0, [r5] + bl dp01_battle_side_mark_buffer_for_execution + b _0804D5DA + .pool +_0804D5A8: + ldr r4, =gSpecialStatuses + ldrb r0, [r5] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _0804D5DA + ldr r0, =gBattleStruct + ldr r0, [r0] + adds r0, 0x5D + ldrb r0, [r0] + bl sub_804CF10 + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] +_0804D5DA: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x6 + str r0, [r1] + mov r12, r1 + b _0804D5F8 + .pool +_0804D5F4: + adds r0, r2, 0x6 + str r0, [r6] +_0804D5F8: + ldr r0, =gHitMarker + ldr r0, [r0] + lsrs r5, r0, 28 + ldr r1, =gUnknown_0202420D + movs r0, 0 + strb r0, [r1] + ldr r4, =gBitTable + ldr r2, [r4] + ands r2, r5 + ldr r6, =gNoOfAllBanks + cmp r2, 0 + bne _0804D634 + adds r7, r6, 0 + ldrb r0, [r6] + cmp r2, r0 + bcs _0804D634 + adds r3, r1, 0 +_0804D61A: + ldrb r0, [r3] + adds r0, 0x1 + strb r0, [r3] + ldrb r2, [r3] + lsls r0, r2, 2 + adds r0, r4 + ldr r0, [r0] + ands r0, r5 + cmp r0, 0 + bne _0804D634 + ldrb r0, [r7] + cmp r2, r0 + bcc _0804D61A +_0804D634: + ldrb r0, [r1] + ldrb r6, [r6] + cmp r0, r6 + beq _0804D63E + b _0804D804 +_0804D63E: + mov r1, r8 + mov r2, r12 + str r1, [r2] + b _0804D804 + .pool +_0804D658: + movs r0, 0x80 + ands r0, r1 + movs r5, 0x1 + cmp r0, 0 + beq _0804D664 + movs r5, 0 +_0804D664: + movs r0, 0x7F + ands r0, r1 + bl get_battle_side_of_something + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, =gSpecialStatuses + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 25 + cmp r0, 0 + bge _0804D690 + ldr r0, [r6] + adds r0, 0x6 + str r0, [r6] + b _0804D804 + .pool +_0804D690: + adds r0, r7, 0 + movs r1, 0x6 + movs r2, 0x6 + bl sub_80423F4 + lsls r0, 24 + cmp r0, 0 + beq _0804D6E0 + ldr r2, =gActiveBank + strb r7, [r2] + ldr r3, =gAbsentBankFlags + ldr r4, =gBitTable + ldrb r0, [r2] + lsls r0, 2 + adds r0, r4 + ldr r0, [r0] + ldrb r1, [r3] + orrs r0, r1 + strb r0, [r3] + ldr r3, =gHitMarker + ldrb r0, [r2] + lsls r0, 2 + adds r0, r4 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r3] + bics r0, r1 + str r0, [r3] + mov r0, r8 + str r0, [r6] + b _0804D804 + .pool +_0804D6E0: + ldr r4, =gActiveBank + strb r7, [r4] + ldrb r0, [r4] + ldr r3, =gBattleStruct + ldr r1, [r3] + adds r1, r0, r1 + adds r1, 0x58 + ldr r2, =gBattlePartyID + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r4] + ldr r1, [r3] + adds r0, r1 + adds r0, 0x5C + movs r1, 0x6 + strb r1, [r0] + ldr r1, [r3] + adds r1, 0x93 + ldr r2, =gBitTable + ldrb r0, [r4] + lsls r0, 2 + adds r0, r2 + ldr r2, [r0] + ldrb r0, [r1] + bics r0, r2 + strb r0, [r1] + ldrb r1, [r4] + movs r0, 0x2 + eors r0, r1 + ldr r3, [r3] + adds r0, r3 + adds r0, 0x5C + ldrb r2, [r0] + ldrb r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + adds r0, 0x60 + adds r3, r0 + str r3, [sp] + movs r0, 0 + adds r1, r5, 0 + movs r3, 0 + bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r6] + adds r0, 0x6 + str r0, [r6] + ldrb r0, [r4] + bl GetBankIdentity + lsls r0, 24 + cmp r0, 0 + bne _0804D760 + ldr r1, =gUnknown_03005D10 + ldrb r0, [r1, 0x2] + cmp r0, 0xFE + bhi _0804D760 + adds r0, 0x1 + strb r0, [r1, 0x2] +_0804D760: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0804D7C4 + ldr r1, =gActiveBank + movs r0, 0 + strb r0, [r1] + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + cmp r0, 0 + beq _0804D804 + adds r4, r1, 0 +_0804D77C: + ldrb r0, [r4] + cmp r0, r7 + beq _0804D792 + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + bl sub_8034464 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_0804D792: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldr r1, =gNoOfAllBanks + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bcc _0804D77C + b _0804D804 + .pool +_0804D7C4: + adds r0, r7, 0 + bl GetBankIdentity + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl GetBankByPlayerAI + ldr r4, =gActiveBank + strb r0, [r4] + ldr r0, =gAbsentBankFlags + ldrb r1, [r0] + ldr r2, =gBitTable + ldrb r3, [r4] + lsls r0, r3, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _0804D7F4 + movs r0, 0x2 + eors r3, r0 + strb r3, [r4] +_0804D7F4: + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + bl sub_8034464 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_0804D804: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk50_openpartyscreen + + thumb_func_start atk51_cmd51 +atk51_cmd51: @ 804D820 + push {r4-r7,lr} + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + beq _0804D82C + b _0804DA8A +_0804D82C: + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r5, =gActiveBank + strb r0, [r5] + ldr r0, [r4] + ldrb r0, [r0, 0x2] + cmp r0, 0x1 + beq _0804D8CC + cmp r0, 0x1 + bgt _0804D858 + cmp r0, 0 + beq _0804D862 + b _0804DA82 + .pool +_0804D858: + cmp r0, 0x2 + beq _0804D8E8 + cmp r0, 0x3 + beq _0804D922 + b _0804DA82 +_0804D862: + movs r6, 0 + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + cmp r6, r0 + blt _0804D86E + b _0804DA82 +_0804D86E: + ldr r7, =gBattleBufferB +_0804D870: + ldrb r0, [r7] + cmp r0, 0x22 + bne _0804D8AA + ldr r5, =gBattleStruct + ldr r0, [r5] + adds r0, r6, r0 + adds r0, 0x5C + ldrb r1, [r7, 0x1] + strb r1, [r0] + ldr r0, [r5] + adds r0, 0x93 + ldrb r1, [r0] + ldr r2, =gBitTable + lsls r0, r6, 2 + adds r0, r2 + ldr r4, [r0] + ands r1, r4 + cmp r1, 0 + bne _0804D8AA + lsls r0, r6, 24 + lsrs r0, 24 + ldrb r1, [r7, 0x1] + bl sub_8184FBC + ldr r1, [r5] + adds r1, 0x93 + ldrb r0, [r1] + orrs r4, r0 + strb r4, [r1] +_0804D8AA: + movs r0, 0x80 + lsls r0, 2 + adds r7, r0 + adds r6, 0x1 + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + cmp r6, r0 + blt _0804D870 + b _0804DA82 + .pool +_0804D8CC: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0804D8DA + b _0804DA82 +_0804D8DA: + ldrb r0, [r5] + bl sub_803BDA0 + b _0804DA82 + .pool +_0804D8E8: + ldr r4, =gBattleStruct + ldr r0, [r4] + adds r0, 0x93 + ldrb r1, [r0] + ldr r6, =gBitTable + ldrb r2, [r5] + lsls r0, r2, 2 + adds r0, r6 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _0804D922 + ldr r0, =gBattleBufferB + lsls r1, r2, 9 + adds r0, 0x1 + adds r1, r0 + ldrb r1, [r1] + adds r0, r2, 0 + bl sub_8184FBC + ldr r2, [r4] + adds r2, 0x93 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] +_0804D922: + ldr r1, =gBattleCommunication + ldr r6, =gBattleBufferB + ldr r7, =gActiveBank + ldrb r0, [r7] + lsls r0, 9 + adds r2, r6, 0x1 + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + ldr r1, =gBattleStruct + mov r12, r1 + ldr r1, [r1] + adds r1, r0, r1 + adds r1, 0x5C + lsls r0, 9 + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, =gBattleTypeFlags + ldr r1, [r0] + movs r0, 0x42 + ands r0, r1 + cmp r0, 0x42 + bne _0804DA14 + ldrb r0, [r7] + mov r3, r12 + ldr r2, [r3] + lsls r1, r0, 1 + adds r1, r0 + adds r1, r2 + adds r1, 0x60 + ldrb r2, [r1] + movs r0, 0xF + ands r0, r2 + strb r0, [r1] + ldrb r0, [r7] + ldr r2, [r3] + lsls r1, r0, 1 + adds r1, r0 + adds r1, r2 + adds r1, 0x60 + lsls r0, 9 + adds r5, r6, 0x2 + adds r0, r5 + ldrb r2, [r0] + movs r3, 0xF0 + adds r0, r3, 0 + ands r0, r2 + ldrb r2, [r1] + orrs r0, r2 + strb r0, [r1] + ldrb r1, [r7] + mov r0, r12 + ldr r2, [r0] + lsls r0, r1, 1 + adds r0, r1 + adds r0, r2 + adds r0, 0x61 + lsls r1, 9 + adds r6, 0x3 + adds r1, r6 + ldrb r1, [r1] + strb r1, [r0] + ldrb r0, [r7] + movs r4, 0x2 + eors r0, r4 + mov r1, r12 + ldr r2, [r1] + lsls r1, r0, 1 + adds r1, r0 + adds r1, r2 + adds r1, 0x60 + ldrb r2, [r1] + adds r0, r3, 0 + ands r0, r2 + strb r0, [r1] + ldrb r0, [r7] + eors r0, r4 + mov r1, r12 + ldr r2, [r1] + lsls r1, r0, 1 + adds r1, r0 + adds r1, r2 + adds r1, 0x60 + ldrb r0, [r7] + lsls r0, 9 + adds r0, r5 + ldrb r0, [r0] + ands r3, r0 + lsrs r3, 4 + ldrb r0, [r1] + orrs r3, r0 + strb r3, [r1] + ldrb r0, [r7] + eors r4, r0 + mov r2, r12 + ldr r0, [r2] + lsls r1, r4, 1 + adds r1, r4 + adds r1, r0 + adds r1, 0x62 + ldrb r0, [r7] + lsls r0, 9 + adds r0, r6 + ldrb r0, [r0] + strb r0, [r1] + b _0804DA36 + .pool +_0804DA14: + movs r0, 0x80 + lsls r0, 15 + ands r1, r0 + cmp r1, 0 + beq _0804DA30 + ldrb r0, [r7] + mov r3, r12 + ldr r1, [r3] + adds r1, r0, r1 + adds r1, 0x5C + ldrb r1, [r1] + bl sub_80571DC + b _0804DA36 +_0804DA30: + ldrb r0, [r7] + bl sub_803BDA0 +_0804DA36: + ldr r1, =gBattleTextBuff1 + movs r5, 0xFD + strb r5, [r1] + movs r0, 0x6 + strb r0, [r1, 0x1] + ldr r4, =gBattleMons + ldr r3, =gBankAttacker + ldrb r0, [r3] + movs r2, 0x58 + muls r0, r2 + adds r0, r4 + ldrh r0, [r0] + strb r0, [r1, 0x2] + ldrb r0, [r3] + muls r0, r2 + adds r0, r4 + ldrh r0, [r0] + lsrs r0, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r2, =gBattleTextBuff2 + strb r5, [r2] + movs r0, 0x7 + strb r0, [r2, 0x1] + ldr r3, =gActiveBank + ldrb r0, [r3] + strb r0, [r2, 0x2] + ldr r1, =gBattleBufferB + ldrb r0, [r3] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2, 0x3] + movs r0, 0x1 + negs r0, r0 + strb r0, [r2, 0x4] +_0804DA82: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x3 + str r0, [r1] +_0804DA8A: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk51_cmd51 + + thumb_func_start atk52_cmd52 +atk52_cmd52: @ 804DAAC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r0, =gBattlescriptCurrInstr + mov r9, r0 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r4, =gActiveBank + strb r0, [r4] + ldrb r0, [r4] + bl sub_803FA70 + ldr r1, =gHitMarker + mov r8, r1 + ldr r1, =gBitTable + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + lsls r1, 28 + mov r2, r8 + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + ldr r2, =gSpecialStatuses + ldrb r0, [r4] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r2, [r1] + movs r0, 0x41 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldrb r0, [r4] + bl GetBankSide + ldr r5, =gUnknown_0202428E + lsls r0, 24 + lsrs r0, 23 + adds r0, r5 + ldrh r1, [r0] + movs r7, 0x80 + lsls r7, 2 + mov r10, r7 + mov r0, r10 + ands r0, r1 + cmp r0, 0 + beq _0804DB1C + b _0804DC30 +_0804DB1C: + ldrb r0, [r4] + bl GetBankSide + lsls r0, 24 + lsrs r0, 23 + adds r0, r5 + ldrh r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _0804DB34 + b _0804DC30 +_0804DB34: + ldr r7, =gBattleMons + ldrb r2, [r4] + movs r6, 0x58 + adds r0, r2, 0 + muls r0, r6 + adds r1, r0, r7 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0x2 + beq _0804DC30 + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x2 + beq _0804DC30 + adds r0, r1, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x1A + beq _0804DC30 + adds r0, r2, 0 + bl GetBankSide + lsls r0, 24 + lsrs r0, 23 + adds r0, r5 + ldrh r2, [r0] + mov r1, r10 + orrs r1, r2 + strh r1, [r0] + ldrb r0, [r4] + adds r2, r0, 0 + muls r2, r6 + adds r0, r7, 0 + adds r0, 0x50 + adds r2, r0 + ldr r0, [r2] + ldr r1, =0xfdffffff + ands r0, r1 + str r0, [r2] + mov r1, r8 + ldr r0, [r1] + movs r2, 0x41 + negs r2, r2 + ands r0, r2 + str r0, [r1] + ldrb r0, [r4] + bl GetBankSide + ldr r2, =gSideTimers + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1, 0xA] + movs r1, 0x5 + subs r1, r0 + lsls r1, 25 + lsrs r1, 24 + ldr r5, =gBattleMoveDamage + ldrb r0, [r4] + muls r0, r6 + adds r0, r7 + ldrh r0, [r0, 0x2C] + bl __divsi3 + str r0, [r5] + cmp r0, 0 + bne _0804DBC8 + movs r0, 0x1 + str r0, [r5] +_0804DBC8: + ldr r0, =gBattleScripting + ldrb r1, [r4] + strb r1, [r0, 0x17] + bl b_movescr_stack_push_cursor + mov r7, r9 + ldr r0, [r7] + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _0804DC14 + ldr r0, =gUnknown_082DAE90 + str r0, [r7] + b _0804DD8E + .pool +_0804DC14: + cmp r0, 0x1 + bne _0804DC24 + ldr r0, =gUnknown_082DAE59 + mov r1, r9 + str r0, [r1] + b _0804DD8E + .pool +_0804DC24: + ldr r0, =gUnknown_082DAEC7 + mov r2, r9 + str r0, [r2] + b _0804DD8E + .pool +_0804DC30: + ldr r2, =gBattleMons + ldr r1, =gActiveBank + ldrb r3, [r1] + movs r0, 0x58 + muls r0, r3 + adds r0, r2 + adds r0, 0x20 + ldrb r0, [r0] + adds r5, r1, 0 + ldr r4, =gDisableStructs + cmp r0, 0x36 + bne _0804DC5E + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + adds r2, r0, r4 + ldrb r1, [r2, 0x18] + lsls r0, r1, 30 + cmp r0, 0 + blt _0804DC5E + movs r0, 0x1 + orrs r0, r1 + strb r0, [r2, 0x18] +_0804DC5E: + ldrb r0, [r5] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r1, 0x18] + movs r0, 0x3 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x18] + ldrb r1, [r5] + movs r0, 0 + str r0, [sp] + movs r2, 0 + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + cmp r0, 0 + beq _0804DC88 + b _0804DD8E +_0804DC88: + ldrb r1, [r5] + movs r0, 0 + movs r2, 0 + bl berry_effects_maybe + lsls r0, 24 + cmp r0, 0 + bne _0804DD8E + ldrb r0, [r5] + bl GetBankSide + ldr r1, =gUnknown_0202428E + lsls r0, 24 + lsrs r0, 23 + adds r0, r1 + ldrh r2, [r0] + ldr r1, =0x0000fdff + ands r1, r2 + strh r1, [r0] + movs r4, 0 + ldr r0, =gNoOfAllBanks + ldrb r7, [r0] + cmp r4, r7 + bge _0804DCD8 + ldr r6, =gTurnOrder + adds r1, r5, 0 + ldr r5, =gUnknown_0202407A + movs r3, 0xC + adds r2, r0, 0 +_0804DCC2: + adds r0, r4, r6 + ldrb r0, [r0] + ldrb r7, [r1] + cmp r0, r7 + bne _0804DCD0 + adds r0, r4, r5 + strb r3, [r0] +_0804DCD0: + adds r4, 0x1 + ldrb r0, [r2] + cmp r4, r0 + blt _0804DCC2 +_0804DCD8: + movs r4, 0 + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + cmp r4, r0 + bge _0804DD0C + ldr r6, =gBattleStruct + ldr r5, =gBattleMons +_0804DCE6: + lsls r0, r4, 24 + lsrs r0, 24 + bl GetBankSide + lsls r0, 24 + lsrs r0, 23 + adds r0, 0xA8 + ldr r1, [r6] + adds r1, r0 + movs r0, 0x58 + muls r0, r4 + adds r0, r5 + ldrh r0, [r0, 0x28] + strh r0, [r1] + adds r4, 0x1 + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + cmp r4, r0 + blt _0804DCE6 +_0804DD0C: + ldr r0, =gBattlescriptCurrInstr + ldr r1, [r0] + ldrb r1, [r1, 0x1] + adds r5, r0, 0 + cmp r1, 0x5 + bne _0804DD88 + ldr r0, =gHitMarker + ldr r0, [r0] + lsrs r4, r0, 28 + ldr r1, =gUnknown_0202420D + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r2, =gBitTable + b _0804DD6E + .pool +_0804DD60: + ldr r0, =gNoOfAllBanks + ldrb r3, [r1] + ldrb r0, [r0] + cmp r3, r0 + bcs _0804DD88 + adds r0, r3, 0x1 + strb r0, [r1] +_0804DD6E: + ldrb r0, [r1] + lsls r0, 2 + adds r0, r2 + ldr r3, [r0] + adds r0, r4, 0 + ands r0, r3 + cmp r0, 0 + beq _0804DD60 + ldr r0, =gAbsentBankFlags + ldrb r0, [r0] + ands r0, r3 + cmp r0, 0 + bne _0804DD60 +_0804DD88: + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] +_0804DD8E: + 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 atk52_cmd52 + + thumb_func_start sub_804DDA8 +sub_804DDA8: @ 804DDA8 + push {r4,r5,lr} + ldr r5, =gBattlescriptCurrInstr + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl GetBankByPlayerAI + ldr r4, =gActiveBank + strb r0, [r4] + movs r0, 0 + bl dp01_build_cmdbuf_x08_8_8_8 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_804DDA8 + + thumb_func_start atk54_802511C +atk54_802511C: @ 804DDD8 + push {r4,r5,lr} + ldr r5, =gActiveBank + ldr r0, =gBankAttacker + ldrb r0, [r0] + strb r0, [r5] + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + ldrb r1, [r0, 0x1] + ldrb r0, [r0, 0x2] + lsls r0, 8 + orrs r1, r0 + movs r0, 0 + bl dp01_build_cmdbuf_x2B_aa_0 + ldrb r0, [r5] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r4] + adds r0, 0x3 + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end atk54_802511C + + thumb_func_start sub_804DE14 +sub_804DE14: @ 804DE14 + push {r4,r5,lr} + ldr r5, =gActiveBank + ldr r0, =gBankAttacker + ldrb r0, [r0] + strb r0, [r5] + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + ldrb r1, [r0, 0x1] + ldrb r0, [r0, 0x2] + lsls r0, 8 + orrs r1, r0 + movs r0, 0 + movs r2, 0 + bl sub_8034300 + ldrb r0, [r5] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r4] + adds r0, 0x3 + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_804DE14 + + thumb_func_start atk56_8025194 +atk56_8025194: @ 804DE50 + push {r4,r5,lr} + ldr r5, =gBattlescriptCurrInstr + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r4, =gActiveBank + strb r0, [r4] + movs r0, 0 + bl dp01_build_cmdbuf_x2D_2D_2D_2D + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end atk56_8025194 + + thumb_func_start atk57_80251C4_flee +atk57_80251C4_flee: @ 804DE80 + push {r4,lr} + movs r0, 0 + bl GetBankByPlayerAI + ldr r4, =gActiveBank + strb r0, [r4] + ldr r0, =gBattleOutcome + ldrb r1, [r0] + movs r0, 0 + bl dp01_build_cmdbuf_x37_a + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atk57_80251C4_flee + + thumb_func_start atk58_cmd58 +atk58_cmd58: @ 804DEB8 + push {r4,r5,lr} + ldr r5, =gBattlescriptCurrInstr + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r4, =gActiveBank + strb r0, [r4] + movs r0, 0 + movs r1, 0x1 + bl dp01_build_cmdbuf_x06_a + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end atk58_cmd58 + + thumb_func_start atk59_8025230 +atk59_8025230: @ 804DEEC + push {r4-r7,lr} + ldr r0, =gBattlescriptCurrInstr + ldr r2, [r0] + ldrb r6, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r6, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r6, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r6, r0 + ldrb r4, [r2, 0x5] + ldrb r0, [r2, 0x6] + lsls r0, 8 + orrs r4, r0 + ldrb r0, [r2, 0x7] + lsls r0, 16 + orrs r4, r0 + ldrb r0, [r2, 0x8] + lsls r0, 24 + orrs r4, r0 + ldr r0, =gBattleStruct + ldr r0, [r0] + ldrb r1, [r0, 0x10] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + ldrb r1, [r2, 0x9] + bl sub_8069318 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, =0x0000fffe + cmp r5, r0 + bne _0804DF56 + adds r7, r5, 0 +_0804DF3A: + ldr r0, =gBattleStruct + ldr r0, [r0] + ldrb r1, [r0, 0x10] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0 + bl sub_8069318 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r7 + beq _0804DF3A +_0804DF56: + cmp r5, 0 + bne _0804DF70 + ldr r0, =gBattlescriptCurrInstr + str r4, [r0] + b _0804E018 + .pool +_0804DF70: + ldr r0, =0x0000ffff + cmp r5, r0 + bne _0804DF88 + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0xA + str r0, [r1] + b _0804E018 + .pool +_0804DF88: + movs r0, 0 + bl GetBankByPlayerAI + ldr r1, =gActiveBank + strb r0, [r1] + ldr r2, =gBattlePartyID + ldrb r3, [r1] + lsls r0, r3, 1 + adds r0, r2 + ldr r1, =gBattleStruct + ldr r1, [r1] + ldrh r0, [r0] + ldrb r1, [r1, 0x10] + cmp r0, r1 + bne _0804DFC8 + ldr r4, =gBattleMons + movs r0, 0x58 + adds r2, r3, 0 + muls r2, r0 + adds r0, r4, 0 + adds r0, 0x50 + adds r0, r2, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + bne _0804DFC8 + adds r0, r2, r4 + adds r1, r5, 0 + bl sub_80691B0 +_0804DFC8: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0804E014 + movs r0, 0x2 + bl GetBankByPlayerAI + ldr r1, =gActiveBank + strb r0, [r1] + ldr r2, =gBattlePartyID + ldrb r3, [r1] + lsls r0, r3, 1 + adds r0, r2 + ldr r1, =gBattleStruct + ldr r1, [r1] + ldrh r0, [r0] + ldrb r1, [r1, 0x10] + cmp r0, r1 + bne _0804E014 + ldr r4, =gBattleMons + movs r0, 0x58 + adds r2, r3, 0 + muls r2, r0 + adds r0, r4, 0 + adds r0, 0x50 + adds r0, r2, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + bne _0804E014 + adds r0, r2, r4 + adds r1, r5, 0 + bl sub_80691B0 +_0804E014: + ldr r0, =gBattlescriptCurrInstr + str r6, [r0] +_0804E018: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk59_8025230 + + thumb_func_start sub_804E038 +sub_804E038: @ 804E038 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + ldr r0, =gActiveBank + movs r1, 0 + strb r1, [r0] + ldr r0, =gBattleScripting + ldrb r1, [r0, 0x1F] + adds r2, r0, 0 + cmp r1, 0x6 + bls _0804E052 + b _0804E3B8 +_0804E052: + lsls r0, r1, 2 + ldr r1, =_0804E068 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0804E068: + .4byte _0804E084 + .4byte _0804E0BC + .4byte _0804E162 + .4byte _0804E1B8 + .4byte _0804E1E4 + .4byte _0804E38C + .4byte _0804E3AC +_0804E084: + movs r4, 0 + str r4, [sp] + movs r0, 0x18 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl sub_8056A3C + ldr r0, =gUnknown_085CCABB + movs r1, 0xC + bl battle_show_message_maybe + ldr r1, =gBattleScripting + ldrb r0, [r1, 0x1F] + adds r0, 0x1 + strb r0, [r1, 0x1F] + ldr r0, =gBattleCommunication + strb r4, [r0, 0x1] + movs r0, 0 + bl sub_8056B74 + b _0804E3B8 + .pool +_0804E0BC: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0804E0E4 + ldr r4, =gBattleCommunication + ldrb r0, [r4, 0x1] + cmp r0, 0 + beq _0804E0E4 + movs r0, 0x5 + bl PlaySE + ldrb r0, [r4, 0x1] + bl sub_8056BAC + movs r0, 0 + strb r0, [r4, 0x1] + bl sub_8056B74 +_0804E0E4: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0804E10C + ldr r4, =gBattleCommunication + ldrb r0, [r4, 0x1] + cmp r0, 0 + bne _0804E10C + movs r0, 0x5 + bl PlaySE + ldrb r0, [r4, 0x1] + bl sub_8056BAC + movs r0, 0x1 + strb r0, [r4, 0x1] + bl sub_8056B74 +_0804E10C: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r5, 0x1 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _0804E150 + movs r0, 0x5 + bl PlaySE + ldr r0, =gBattleCommunication + ldrb r4, [r0, 0x1] + cmp r4, 0 + bne _0804E20A + str r5, [sp] + movs r0, 0x18 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl sub_8056A3C + movs r0, 0x1 + negs r0, r0 + str r4, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _0804E192 + .pool +_0804E150: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _0804E15A + b _0804E3B8 +_0804E15A: + movs r0, 0x5 + bl PlaySE + b _0804E20A +_0804E162: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0804E170 + b _0804E3B8 +_0804E170: + bl FreeAllWindowBuffers + ldr r0, =gPlayerParty + ldr r1, =gBattleStruct + ldr r1, [r1] + ldrb r1, [r1, 0x10] + ldr r2, =gPlayerPartyCount + ldrb r2, [r2] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldr r3, =sub_80A92F8 + ldr r4, =gUnknown_020244E2 + ldrh r4, [r4] + str r4, [sp] + bl sub_81BFA38 +_0804E192: + ldr r1, =gBattleScripting + ldrb r0, [r1, 0x1F] + adds r0, 0x1 + strb r0, [r1, 0x1F] + b _0804E3B8 + .pool +_0804E1B8: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0804E1C6 + b _0804E3B8 +_0804E1C6: + ldr r0, =gMain + ldr r1, [r0, 0x4] + ldr r0, =sub_8038420 + cmp r1, r0 + beq _0804E1D2 + b _0804E3B8 +_0804E1D2: + ldrb r0, [r2, 0x1F] + adds r0, 0x1 + b _0804E3B6 + .pool +_0804E1E4: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0804E1F2 + b _0804E3B8 +_0804E1F2: + ldr r0, =gMain + ldr r1, [r0, 0x4] + ldr r0, =sub_8038420 + cmp r1, r0 + beq _0804E1FE + b _0804E3B8 +_0804E1FE: + bl sub_81C1B94 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x4 + bne _0804E224 +_0804E20A: + ldr r1, =gBattleScripting + movs r0, 0x5 + strb r0, [r1, 0x1F] + b _0804E3B8 + .pool +_0804E224: + ldr r6, =gBattleStruct + ldr r0, [r6] + ldrb r0, [r0, 0x10] + movs r1, 0x64 + mov r8, r1 + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + ldr r7, =gPlayerParty + adds r0, r7 + adds r1, r5, 0 + adds r1, 0xD + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + bl sub_806E804 + cmp r0, 0 + beq _0804E274 + ldr r0, =0x0000013f + ldr r1, =gActiveBank + ldrb r1, [r1] + bl b_std_message + ldr r1, =gBattleScripting + movs r0, 0x6 + strb r0, [r1, 0x1F] + b _0804E3B8 + .pool +_0804E274: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + ldr r1, =gBattleTextBuff2 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x2 + strb r0, [r1, 0x1] + strb r4, [r1, 0x2] + lsrs r0, r4, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r0, [r6] + ldrb r0, [r0, 0x10] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r7 + adds r1, r5, 0 + bl sub_806B9A8 + ldr r0, [r6] + ldrb r0, [r0, 0x10] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r7 + ldr r7, =gUnknown_020244E2 + ldrh r1, [r7] + adds r2, r5, 0 + bl sub_80691F4 + ldr r0, =gBattlePartyID + ldr r1, [r6] + ldrh r0, [r0] + ldrb r1, [r1, 0x10] + cmp r0, r1 + bne _0804E30A + ldr r4, =gBattleMons + ldr r0, [r4, 0x50] + movs r1, 0x80 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + bne _0804E30A + ldr r0, =gDisableStructs + ldrb r1, [r0, 0x18] + lsrs r1, 4 + ldr r2, =gBitTable + lsls r0, r5, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _0804E30A + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_806B9E4 + ldrh r1, [r7] + adds r0, r4, 0 + adds r2, r5, 0 + bl sub_8069234 +_0804E30A: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0804E3B8 + ldr r2, =gBattlePartyID + ldr r0, =gBattleStruct + ldr r1, [r0] + ldrh r0, [r2, 0x4] + ldrb r1, [r1, 0x10] + cmp r0, r1 + bne _0804E3B8 + ldr r4, =gBattleMons + movs r1, 0x80 + lsls r1, 1 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + bne _0804E3B8 + ldr r0, =gDisableStructs + adds r0, 0x50 + ldrb r1, [r0] + lsrs r1, 4 + ldr r2, =gBitTable + lsls r0, r5, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _0804E3B8 + adds r4, 0xB0 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_806B9E4 + ldr r0, =gUnknown_020244E2 + ldrh r1, [r0] + adds r0, r4, 0 + adds r2, r5, 0 + bl sub_8069234 + b _0804E3B8 + .pool +_0804E38C: + movs r0, 0x1 + str r0, [sp] + movs r0, 0x18 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl sub_8056A3C + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0804E3B8 + .pool +_0804E3AC: + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + bne _0804E3B8 + movs r0, 0x2 +_0804E3B6: + strb r0, [r2, 0x1F] +_0804E3B8: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_804E038 + + thumb_func_start atk5B_80256E0 +atk5B_80256E0: @ 804E3C8 + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, =gBattleScripting + ldrb r4, [r5, 0x1F] + cmp r4, 0 + beq _0804E3E0 + cmp r4, 0x1 + beq _0804E410 + b _0804E4FA + .pool +_0804E3E0: + str r4, [sp] + movs r0, 0x18 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl sub_8056A3C + ldr r0, =gUnknown_085CCABB + movs r1, 0xC + bl battle_show_message_maybe + ldrb r0, [r5, 0x1F] + adds r0, 0x1 + strb r0, [r5, 0x1F] + ldr r0, =gBattleCommunication + strb r4, [r0, 0x1] + movs r0, 0 + bl sub_8056B74 + b _0804E4FA + .pool +_0804E410: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0804E438 + ldr r4, =gBattleCommunication + ldrb r0, [r4, 0x1] + cmp r0, 0 + beq _0804E438 + movs r0, 0x5 + bl PlaySE + ldrb r0, [r4, 0x1] + bl sub_8056BAC + movs r0, 0 + strb r0, [r4, 0x1] + bl sub_8056B74 +_0804E438: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0804E460 + ldr r4, =gBattleCommunication + ldrb r0, [r4, 0x1] + cmp r0, 0 + bne _0804E460 + movs r0, 0x5 + bl PlaySE + ldrb r0, [r4, 0x1] + bl sub_8056BAC + movs r0, 0x1 + strb r0, [r4, 0x1] + bl sub_8056B74 +_0804E460: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r4, 0x1 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _0804E4C4 + movs r0, 0x5 + bl PlaySE + ldr r0, =gBattleCommunication + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _0804E4A4 + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0804E4AC + .pool +_0804E4A4: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0804E4AC: + movs r0, 0x1 + str r0, [sp] + movs r0, 0x18 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl sub_8056A3C + b _0804E4FA + .pool +_0804E4C4: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0804E4FA + movs r0, 0x5 + bl PlaySE + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + str r4, [sp] + movs r0, 0x18 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl sub_8056A3C +_0804E4FA: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end atk5B_80256E0 + + thumb_func_start atk5C_cmd5c +atk5C_cmd5c: @ 804E508 + push {r4,lr} + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r2, =gActiveBank + strb r0, [r2] + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _0804E58C + ldr r0, =gHitMarker + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 1 + ands r0, r1 + cmp r0, 0 + beq _0804E55A + ldr r1, =gBattleMons + ldrb r2, [r2] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _0804E55A + ldr r0, =gDisableStructs + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0xA] + cmp r0, 0 + bne _0804E58C +_0804E55A: + movs r0, 0 + bl dp01_build_cmdbuf_x29_29_29_29 + ldr r0, =gActiveBank + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + b _0804E592 + .pool +_0804E58C: + ldr r0, [r4] + adds r0, 0x2 + str r0, [r4] +_0804E592: + pop {r4} + pop {r0} + bx r0 + thumb_func_end atk5C_cmd5c + + thumb_func_start sub_804E598 +sub_804E598: @ 804E598 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 16 + lsrs r6, r0, 16 + movs r7, 0 + movs r5, 0 + movs r0, 0x80 + lsls r0, 3 + cmp r6, r0 + bne _0804E5D8 + ldr r0, =gBattleResources + ldr r0, [r0] + ldr r0, [r0] + adds r0, 0x94 + ldrb r2, [r0] + ldr r0, =gBattleStruct + ldr r0, [r0] + adds r0, 0x4A + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + muls r0, r2 + b _0804E6CA + .pool +_0804E5D8: + ldr r0, =gTrainers + lsls r2, r6, 2 + adds r1, r2, r6 + lsls r1, 3 + adds r4, r1, r0 + ldrb r3, [r4] + mov r12, r0 + cmp r3, 0x1 + beq _0804E62E + cmp r3, 0x1 + bgt _0804E5F8 + cmp r3, 0 + beq _0804E602 + b _0804E644 + .pool +_0804E5F8: + cmp r3, 0x2 + beq _0804E618 + cmp r3, 0x3 + beq _0804E62E + b _0804E644 +_0804E602: + mov r0, r12 + adds r0, 0x24 + adds r0, r1, r0 + ldr r1, [r0] + adds r0, r4, 0 + adds r0, 0x20 + ldrb r0, [r0] + lsls r0, 3 + adds r0, r1 + subs r0, 0x8 + b _0804E642 +_0804E618: + mov r0, r12 + adds r0, 0x24 + adds r0, r1, r0 + ldr r1, [r0] + adds r0, r4, 0 + adds r0, 0x20 + ldrb r0, [r0] + lsls r0, 3 + adds r0, r1 + subs r0, 0x8 + b _0804E642 +_0804E62E: + mov r0, r12 + adds r0, 0x24 + adds r0, r1, r0 + ldr r1, [r0] + adds r0, r4, 0 + adds r0, 0x20 + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + subs r0, 0x10 +_0804E642: + ldrb r5, [r0, 0x2] +_0804E644: + ldr r1, =gUnknown_0831AEB8 + lsls r0, r7, 2 + adds r4, r0, r1 + ldrb r3, [r4] + ldr r0, =gBattleStruct + mov r8, r0 + mov r9, r1 + ldr r1, =gBattleTypeFlags + mov r10, r1 + cmp r3, 0xFF + beq _0804E67A + adds r0, r2, r6 + lsls r0, 3 + add r0, r12 + ldrb r1, [r0, 0x1] + cmp r3, r1 + beq _0804E67A + adds r2, r0, 0 + adds r0, r4, 0 +_0804E66A: + adds r0, 0x4 + adds r7, 0x1 + ldrb r1, [r0] + cmp r1, 0xFF + beq _0804E67A + ldrb r3, [r2, 0x1] + cmp r1, r3 + bne _0804E66A +_0804E67A: + mov r0, r10 + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + bne _0804E6B4 + movs r0, 0x1 + ands r1, r0 + cmp r1, 0 + beq _0804E6B4 + mov r3, r8 + ldr r0, [r3] + adds r0, 0x4A + ldrb r0, [r0] + lsls r0, 2 + adds r1, r5, 0 + muls r1, r0 + lsls r0, r7, 2 + add r0, r9 + ldrb r0, [r0, 0x1] + lsls r0, 1 + b _0804E6C8 + .pool +_0804E6B4: + mov r1, r8 + ldr r0, [r1] + adds r0, 0x4A + ldrb r0, [r0] + lsls r0, 2 + adds r1, r5, 0 + muls r1, r0 + lsls r0, r7, 2 + add r0, r9 + ldrb r0, [r0, 0x1] +_0804E6C8: + muls r0, r1 +_0804E6CA: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_804E598 + + thumb_func_start sub_804E6D8 +sub_804E6D8: @ 804E6D8 + push {r4,lr} + ldr r0, =gUnknown_02038BCA + ldrh r0, [r0] + bl sub_804E598 + adds r4, r0, 0 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _0804E6FC + ldr r0, =gUnknown_02038BCC + ldrh r0, [r0] + bl sub_804E598 + adds r4, r0 +_0804E6FC: + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + movs r1, 0x92 + lsls r1, 3 + adds r0, r1 + adds r1, r4, 0 + bl add_money + ldr r1, =gBattleTextBuff1 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x1 + strb r0, [r1, 0x1] + movs r0, 0x4 + strb r0, [r1, 0x2] + movs r0, 0x5 + strb r0, [r1, 0x3] + strb r4, [r1, 0x4] + movs r0, 0xFF + lsls r0, 8 + ands r0, r4 + lsrs r0, 8 + strb r0, [r1, 0x5] + movs r0, 0xFF + lsls r0, 16 + ands r0, r4 + lsrs r0, 16 + strb r0, [r1, 0x6] + lsrs r0, r4, 24 + strb r0, [r1, 0x7] + movs r0, 0xFF + strb r0, [r1, 0x8] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_804E6D8 + + thumb_func_start atk5E_8025A70 +atk5E_8025A70: @ 804E764 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r6, =gActiveBank + strb r0, [r6] + ldr r5, =gBattleCommunication + ldrb r0, [r5] + mov r8, r4 + cmp r0, 0 + beq _0804E794 + cmp r0, 0x1 + beq _0804E7AC + b _0804E800 + .pool +_0804E794: + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl dp01_build_cmdbuf_x00_a_b_0 + ldrb r0, [r6] + bl dp01_battle_side_mark_buffer_for_execution + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + b _0804E800 +_0804E7AC: + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + bne _0804E800 + ldrb r0, [r6] + lsls r0, 9 + ldr r1, =gUnknown_02023868 + adds r0, r1 + mov r12, r0 + movs r2, 0 + adds r4, r6, 0 + movs r5, 0x58 + ldr r6, =gUnknown_020240A8 + adds r7, r6, 0 + subs r7, 0x18 + mov r3, r12 + adds r3, 0xC +_0804E7CE: + lsls r1, r2, 1 + ldrb r0, [r4] + muls r0, r5 + adds r1, r0 + adds r1, r7 + ldrh r0, [r3] + strh r0, [r1] + ldrb r0, [r4] + adds r1, r0, 0 + muls r1, r5 + adds r1, r2, r1 + adds r1, r6 + mov r0, r12 + adds r0, 0x24 + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r3, 0x2 + adds r2, 0x1 + cmp r2, 0x3 + ble _0804E7CE + mov r1, r8 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] +_0804E800: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk5E_8025A70 + + thumb_func_start atk5F_8025B24 +atk5F_8025B24: @ 804E818 + push {lr} + ldr r0, =gActiveBank + ldr r2, =gBankAttacker + ldrb r3, [r2] + strb r3, [r0] + ldr r1, =gBankTarget + ldrb r0, [r1] + strb r0, [r2] + strb r3, [r1] + ldr r2, =gHitMarker + ldr r1, [r2] + movs r3, 0x80 + lsls r3, 5 + adds r0, r1, 0 + ands r0, r3 + cmp r0, 0 + beq _0804E854 + ldr r0, =0xffffefff + ands r1, r0 + b _0804E856 + .pool +_0804E854: + orrs r1, r3 +_0804E856: + str r1, [r2] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end atk5F_8025B24 + + thumb_func_start atk60_cmd60 +atk60_cmd60: @ 804E868 + push {lr} + ldr r0, =gBankAttacker + ldrb r0, [r0] + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _0804E882 + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl IncrementGameStat +_0804E882: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end atk60_cmd60 + + thumb_func_start atk61_8025BA4 +atk61_8025BA4: @ 804E898 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x30 + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + bne _0804E94C + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r1, =gActiveBank + strb r0, [r1] + ldrb r0, [r1] + bl GetBankSide + lsls r0, 24 + ldr r1, =gEnemyParty + mov r8, r1 + cmp r0, 0 + bne _0804E8CA + ldr r0, =gPlayerParty + mov r8, r0 +_0804E8CA: + movs r7, 0 + add r6, sp, 0x4 + mov r5, sp +_0804E8D0: + movs r0, 0x64 + muls r0, r7 + mov r1, r8 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + cmp r0, 0 + beq _0804E8F4 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + bne _0804E914 +_0804E8F4: + ldr r0, =0x0000ffff + strh r0, [r5] + movs r0, 0 + b _0804E926 + .pool +_0804E914: + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + strh r0, [r5] + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData +_0804E926: + str r0, [r6] + adds r6, 0x8 + adds r5, 0x8 + adds r7, 0x1 + cmp r7, 0x5 + ble _0804E8D0 + movs r0, 0 + mov r1, sp + movs r2, 0x1 + bl dp01_build_cmdbuf_x30_TODO + ldr r0, =gActiveBank + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] +_0804E94C: + add sp, 0x30 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk61_8025BA4 + + thumb_func_start atk62_08025C6C +atk62_08025C6C: @ 804E960 + push {r4,r5,lr} + ldr r5, =gBattlescriptCurrInstr + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r4, =gActiveBank + strb r0, [r4] + movs r0, 0 + bl dp01_build_cmdbuf_x31_31_31_31 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end atk62_08025C6C + + thumb_func_start atk63_jumptoattack +atk63_jumptoattack: @ 804E990 + push {r4,lr} + ldr r0, =gBattlescriptCurrInstr + ldr r1, [r0] + ldrb r1, [r1, 0x1] + adds r4, r0, 0 + cmp r1, 0 + beq _0804E9B4 + ldr r0, =gCurrentMove + ldr r1, =gRandomMove + ldrh r1, [r1] + strh r1, [r0] + b _0804E9C2 + .pool +_0804E9B4: + ldr r2, =gUnknown_020241EC + ldr r1, =gCurrentMove + ldr r0, =gRandomMove + ldrh r0, [r0] + strh r0, [r1] + strh r0, [r2] + adds r0, r1, 0 +_0804E9C2: + ldr r3, =gUnknown_082D86A8 + ldr r2, =gBattleMoves + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atk63_jumptoattack + + thumb_func_start atk64_statusanimation +atk64_statusanimation: @ 804E9F4 + push {r4,lr} + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + bne _0804EA5C + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r4, =gActiveBank + strb r0, [r4] + ldr r1, =gStatuses3 + ldrb r2, [r4] + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, =0x000400c0 + ands r0, r1 + cmp r0, 0 + bne _0804EA54 + ldr r0, =gDisableStructs + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0xA] + cmp r0, 0 + bne _0804EA54 + ldr r0, =gHitMarker + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0804EA54 + ldr r1, =gBattleMons + movs r0, 0x58 + muls r0, r2 + adds r1, 0x4C + adds r0, r1 + ldr r2, [r0] + movs r0, 0 + movs r1, 0 + bl dp01_build_cmdbuf_x1B_aaaa_b + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_0804EA54: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] +_0804EA5C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atk64_statusanimation + + thumb_func_start atk65_8025D90 +atk65_8025D90: @ 804EA84 + push {r4,r5,lr} + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + bne _0804EB04 + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r5, =gActiveBank + strb r0, [r5] + ldr r1, [r4] + ldrb r3, [r1, 0x2] + ldrb r0, [r1, 0x3] + lsls r0, 8 + orrs r3, r0 + ldrb r0, [r1, 0x4] + lsls r0, 16 + orrs r3, r0 + ldrb r0, [r1, 0x5] + lsls r0, 24 + orrs r3, r0 + ldr r1, =gStatuses3 + ldrb r2, [r5] + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, =0x000400c0 + ands r0, r1 + cmp r0, 0 + bne _0804EAFC + ldr r0, =gDisableStructs + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0xA] + cmp r0, 0 + bne _0804EAFC + ldr r0, =gHitMarker + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0804EAFC + ldr r1, =gBattleMons + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r2, [r0] + ands r2, r3 + movs r0, 0 + movs r1, 0x1 + bl dp01_build_cmdbuf_x1B_aaaa_b + ldrb r0, [r5] + bl dp01_battle_side_mark_buffer_for_execution +_0804EAFC: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x6 + str r0, [r1] +_0804EB04: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end atk65_8025D90 + + thumb_func_start atk66_8025E38 +atk66_8025E38: @ 804EB2C + push {r4,r5,lr} + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + bne _0804EB9E + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r5, =gActiveBank + strb r0, [r5] + ldr r4, [r4] + ldrb r2, [r4, 0x3] + ldrb r0, [r4, 0x4] + lsls r0, 8 + orrs r2, r0 + ldrb r0, [r4, 0x5] + lsls r0, 16 + orrs r2, r0 + ldrb r0, [r4, 0x6] + lsls r0, 24 + orrs r2, r0 + ldr r1, =gStatuses3 + ldrb r3, [r5] + lsls r0, r3, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, =0x000400c0 + ands r0, r1 + cmp r0, 0 + bne _0804EB96 + ldr r0, =gDisableStructs + lsls r1, r3, 3 + subs r1, r3 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0xA] + cmp r0, 0 + bne _0804EB96 + ldr r0, =gHitMarker + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0804EB96 + ldrb r1, [r4, 0x2] + movs r0, 0 + bl dp01_build_cmdbuf_x1B_aaaa_b + ldrb r0, [r5] + bl dp01_battle_side_mark_buffer_for_execution +_0804EB96: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x7 + str r0, [r1] +_0804EB9E: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end atk66_8025E38 + + thumb_func_start atk67_8025ECC +atk67_8025ECC: @ 804EBC0 + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, =gBattleCommunication + ldrb r4, [r5] + cmp r4, 0 + beq _0804EBD8 + cmp r4, 0x1 + beq _0804EC04 + b _0804EC96 + .pool +_0804EBD8: + str r4, [sp] + movs r0, 0x18 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl sub_8056A3C + ldr r0, =gUnknown_085CCABB + movs r1, 0xC + bl battle_show_message_maybe + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + strb r4, [r5, 0x1] + movs r0, 0 + bl sub_8056B74 + b _0804EC96 + .pool +_0804EC04: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0804EC2A + ldrb r0, [r5, 0x1] + cmp r0, 0 + beq _0804EC2A + movs r0, 0x5 + bl PlaySE + ldrb r0, [r5, 0x1] + bl sub_8056BAC + movs r0, 0 + strb r0, [r5, 0x1] + bl sub_8056B74 +_0804EC2A: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0804EC52 + ldr r4, =gBattleCommunication + ldrb r0, [r4, 0x1] + cmp r0, 0 + bne _0804EC52 + movs r0, 0x5 + bl PlaySE + ldrb r0, [r4, 0x1] + bl sub_8056BAC + movs r0, 0x1 + strb r0, [r4, 0x1] + bl sub_8056B74 +_0804EC52: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0804EC70 + ldr r0, =gBattleCommunication + movs r4, 0x1 + strb r4, [r0, 0x1] + b _0804EC7A + .pool +_0804EC70: + movs r4, 0x1 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _0804EC96 +_0804EC7A: + movs r0, 0x5 + bl PlaySE + str r4, [sp] + movs r0, 0x18 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl sub_8056A3C + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_0804EC96: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end atk67_8025ECC + + thumb_func_start sub_804ECA4 +sub_804ECA4: @ 804ECA4 + push {r4,r5,lr} + movs r1, 0 + ldr r2, =gNoOfAllBanks + ldr r5, =gBattlescriptCurrInstr + ldrb r0, [r2] + cmp r1, r0 + bge _0804ECC2 + ldr r4, =gUnknown_0202407A + movs r3, 0xC +_0804ECB6: + adds r0, r1, r4 + strb r3, [r0] + adds r1, 0x1 + ldrb r0, [r2] + cmp r1, r0 + blt _0804ECB6 +_0804ECC2: + ldr r0, [r5] + adds r0, 0x1 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_804ECA4 + + thumb_func_start atk69_8025FE0 +atk69_8025FE0: @ 804ECDC + push {r4-r7,lr} + ldr r7, =gBattleMons + ldr r6, =gBankTarget + ldrb r2, [r6] + movs r5, 0x58 + adds r0, r2, 0 + muls r0, r5 + adds r1, r0, r7 + ldrh r0, [r1, 0x2E] + cmp r0, 0xAF + bne _0804ED10 + ldr r1, =gEnigmaBerries + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r4, [r0, 0x7] + ldrb r6, [r0, 0x1A] + b _0804ED2A + .pool +_0804ED10: + ldrh r0, [r1, 0x2E] + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r0, [r6] + muls r0, r5 + adds r0, r7 + ldrh r0, [r0, 0x2E] + bl ItemId_GetHoldEffectParam + lsls r0, 24 + lsrs r6, r0, 24 +_0804ED2A: + ldr r1, =gUnknown_0202420F + ldr r5, =gBankTarget + ldrb r0, [r5] + strb r0, [r1] + cmp r4, 0x27 + bne _0804ED68 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, r6 + bcs _0804ED68 + ldrb r0, [r5] + movs r1, 0x27 + bl b_history__record_item_x12_of_player + ldr r2, =gSpecialStatuses + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] +_0804ED68: + ldr r2, =gBattleMons + ldr r3, =gBankTarget + ldrb r4, [r3] + movs r0, 0x58 + muls r0, r4 + adds r1, r2, 0 + adds r1, 0x50 + adds r0, r1 + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 17 + ands r1, r0 + adds r5, r2, 0 + cmp r1, 0 + bne _0804EE38 + ldr r2, =gBattleMoves + ldr r0, =gCurrentMove + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x65 + beq _0804EDBA + ldr r0, =gProtectStructs + lsls r1, r4, 4 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 30 + cmp r0, 0 + blt _0804EDBA + ldr r0, =gSpecialStatuses + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + lsrs r0, 7 + cmp r0, 0 + beq _0804EE38 +_0804EDBA: + ldrb r0, [r3] + movs r4, 0x58 + muls r0, r4 + adds r0, r5 + ldrh r1, [r0, 0x28] + ldr r2, =gBattleMoveDamage + ldr r0, [r2] + cmp r1, r0 + bgt _0804EE38 + subs r0, r1, 0x1 + str r0, [r2] + ldr r1, =gProtectStructs + ldrb r3, [r3] + lsls r0, r3, 4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + cmp r0, 0 + bge _0804EE10 + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + b _0804EE38 + .pool +_0804EE10: + ldr r0, =gSpecialStatuses + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + lsrs r0, 7 + cmp r0, 0 + beq _0804EE38 + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, =gUnknown_02024208 + adds r0, r3, 0 + muls r0, r4 + adds r0, r5 + ldrh r0, [r0, 0x2E] + strh r0, [r1] +_0804EE38: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk69_8025FE0 + + thumb_func_start atk6A_stash_item_for_side +atk6A_stash_item_for_side: @ 804EE58 + push {r4-r6,lr} + sub sp, 0x4 + ldr r6, =gBattlescriptCurrInstr + ldr r0, [r6] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r5, =gActiveBank + strb r0, [r5] + ldr r1, =gBattleStruct + ldrb r4, [r5] + lsls r0, r4, 1 + adds r0, 0xB8 + ldr r1, [r1] + adds r1, r0 + ldr r2, =gBattleMons + movs r3, 0x58 + adds r0, r4, 0 + muls r0, r3 + adds r0, r2 + ldrh r0, [r0, 0x2E] + strh r0, [r1] + ldrb r0, [r5] + muls r0, r3 + adds r0, r2 + movs r1, 0 + strh r1, [r0, 0x2E] + ldrb r0, [r5] + muls r0, r3 + adds r2, 0x2E + adds r0, r2 + str r0, [sp] + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + movs r3, 0x2 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r5] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r6] + adds r0, 0x2 + str r0, [r6] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end atk6A_stash_item_for_side + + thumb_func_start atk6B_end_battle_80261CC +atk6B_end_battle_80261CC: @ 804EEC8 + ldr r1, =gBattleTextBuff1 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x7 + strb r0, [r1, 0x1] + ldr r2, =gBankAttacker + ldrb r0, [r2] + strb r0, [r1, 0x2] + ldr r3, =gBattlePartyID + ldrb r0, [r2] + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .pool + thumb_func_end atk6B_end_battle_80261CC + + thumb_func_start atk6C_8026208 +atk6C_8026208: @ 804EF04 + push {r4,lr} + sub sp, 0x4 + ldr r0, =gBattleScripting + ldrb r1, [r0, 0x1E] + adds r4, r0, 0 + cmp r1, 0 + bne _0804EF28 + bl sub_804F498 + cmp r0, 0 + beq _0804EF24 + movs r0, 0x3 + b _0804EF26 + .pool +_0804EF24: + movs r0, 0x1 +_0804EF26: + strb r0, [r4, 0x1E] +_0804EF28: + ldrb r0, [r4, 0x1E] + subs r0, 0x1 + cmp r0, 0x9 + bls _0804EF32 + b _0804F0F2 +_0804EF32: + lsls r0, 2 + ldr r1, =_0804EF40 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0804EF40: + .4byte _0804EF68 + .4byte _0804EF94 + .4byte _0804EFAC + .4byte _0804F000 + .4byte _0804F014 + .4byte _0804F02C + .4byte _0804F014 + .4byte _0804F04C + .4byte _0804F07C + .4byte _0804F0C0 +_0804EF68: + ldr r1, =gUnknown_02022E1E + movs r0, 0x60 + strh r0, [r1] + movs r0, 0x2 + movs r1, 0x7 + movs r2, 0 + bl SetBgAttribute + movs r0, 0x2 + bl ShowBg + bl sub_804F17C + ldr r1, =gBattleScripting + movs r0, 0x2 + strb r0, [r1, 0x1E] + b _0804F0F2 + .pool +_0804EF94: + bl sub_804F1CC + lsls r0, 24 + cmp r0, 0 + beq _0804EFA0 + b _0804F0F2 +_0804EFA0: + ldr r1, =gBattleScripting + movs r0, 0x3 + strb r0, [r1, 0x1E] + b _0804F0F2 + .pool +_0804EFAC: + ldr r1, =gUnknown_02022E18 + movs r0, 0 + strh r0, [r1] + ldr r1, =gUnknown_02022E1A + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0 + movs r1, 0x7 + movs r2, 0x1 + bl SetBgAttribute + movs r0, 0x1 + movs r1, 0x7 + movs r2, 0 + bl SetBgAttribute + movs r0, 0 + bl ShowBg + movs r0, 0x1 + bl ShowBg + movs r0, 0x80 + str r0, [sp] + movs r0, 0x12 + movs r1, 0x7 + movs r2, 0x1D + movs r3, 0x13 + bl sub_8056A3C + ldr r1, =gBattleScripting + movs r0, 0x4 + strb r0, [r1, 0x1E] + b _0804F0F2 + .pool +_0804F000: + bl sub_804F100 + movs r0, 0xD + bl PutWindowTilemap + movs r0, 0xD + movs r1, 0x3 + bl CopyWindowToVram + b _0804F06A +_0804F014: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _0804F0F2 + ldr r0, =gUnknown_02022E1A + strh r1, [r0] + b _0804F06A + .pool +_0804F02C: + ldr r0, =gMain + ldrh r0, [r0, 0x2E] + cmp r0, 0 + beq _0804F0F2 + movs r0, 0x5 + bl PlaySE + bl sub_804F144 + movs r0, 0xD + movs r1, 0x2 + bl CopyWindowToVram + b _0804F06A + .pool +_0804F04C: + ldr r0, =gMain + ldrh r0, [r0, 0x2E] + cmp r0, 0 + beq _0804F0F2 + movs r0, 0x5 + bl PlaySE + movs r0, 0x81 + str r0, [sp] + movs r0, 0x12 + movs r1, 0x7 + movs r2, 0x1D + movs r3, 0x13 + bl sub_8056A3C +_0804F06A: + ldr r1, =gBattleScripting + ldrb r0, [r1, 0x1E] + adds r0, 0x1 + strb r0, [r1, 0x1E] + b _0804F0F2 + .pool +_0804F07C: + bl sub_804F344 + lsls r0, 24 + cmp r0, 0 + bne _0804F0F2 + movs r0, 0xE + bl ClearWindowTilemap + movs r0, 0xE + movs r1, 0x1 + bl CopyWindowToVram + movs r0, 0xD + bl ClearWindowTilemap + movs r0, 0xD + movs r1, 0x1 + bl CopyWindowToVram + movs r0, 0x2 + movs r1, 0x7 + movs r2, 0x2 + bl SetBgAttribute + movs r0, 0x2 + bl ShowBg + ldr r1, =gBattleScripting + movs r0, 0xA + strb r0, [r1, 0x1E] + b _0804F0F2 + .pool +_0804F0C0: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0804F0F2 + movs r0, 0 + movs r1, 0x7 + movs r2, 0 + bl SetBgAttribute + movs r0, 0x1 + movs r1, 0x7 + movs r2, 0x1 + bl SetBgAttribute + movs r0, 0 + bl ShowBg + movs r0, 0x1 + bl ShowBg + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_0804F0F2: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atk6C_8026208 + + thumb_func_start sub_804F100 +sub_804F100: @ 804F100 + push {lr} + sub sp, 0x14 + ldr r0, =gBattleStruct + ldr r0, [r0] + ldrb r1, [r0, 0x10] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + add r1, sp, 0x8 + bl sub_81D388C + ldr r0, =gBattleResources + ldr r0, [r0] + ldr r1, [r0, 0x10] + movs r0, 0xD + str r0, [sp] + movs r0, 0xF + str r0, [sp, 0x4] + movs r0, 0xD + add r2, sp, 0x8 + movs r3, 0xE + bl sub_81D3640 + add sp, 0x14 + pop {r0} + bx r0 + .pool + thumb_func_end sub_804F100 + + thumb_func_start sub_804F144 +sub_804F144: @ 804F144 + push {lr} + sub sp, 0x10 + ldr r0, =gBattleStruct + ldr r0, [r0] + ldrb r1, [r0, 0x10] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + add r1, sp, 0x4 + bl sub_81D388C + movs r0, 0xF + str r0, [sp] + movs r0, 0xD + add r1, sp, 0x4 + movs r2, 0xE + movs r3, 0xD + bl sub_81D3784 + add sp, 0x10 + pop {r0} + bx r0 + .pool + thumb_func_end sub_804F144 + + thumb_func_start sub_804F17C +sub_804F17C: @ 804F17C + push {lr} + ldr r1, =gUnknown_02022E1E + movs r0, 0 + strh r0, [r1] + ldr r1, =gUnknown_02022E1C + movs r2, 0xD0 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, =gUnknown_0831C2C8 + movs r1, 0x60 + movs r2, 0x20 + bl LoadPalette + ldr r1, =gUnknown_0831C2E8 + movs r0, 0xE + movs r2, 0 + movs r3, 0 + bl CopyToWindowPixelBuffer + movs r0, 0xE + bl PutWindowTilemap + movs r0, 0xE + movs r1, 0x3 + bl CopyWindowToVram + bl sub_804F384 + pop {r0} + bx r0 + .pool + thumb_func_end sub_804F17C + + thumb_func_start sub_804F1CC +sub_804F1CC: @ 804F1CC + push {r4,r5,lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _0804F1DC + movs r0, 0x1 + b _0804F216 +_0804F1DC: + ldr r4, =gUnknown_02022E1C + ldrh r1, [r4] + movs r5, 0x80 + lsls r5, 2 + cmp r1, r5 + bne _0804F1F0 + movs r0, 0 + b _0804F216 + .pool +_0804F1F0: + movs r0, 0xD0 + lsls r0, 1 + cmp r1, r0 + bne _0804F1FC + bl sub_804F220 +_0804F1FC: + ldrh r0, [r4] + adds r0, 0x8 + strh r0, [r4] + lsls r0, 16 + ldr r1, =0x01ff0000 + cmp r0, r1 + bls _0804F20C + strh r5, [r4] +_0804F20C: + ldrh r1, [r4] + eors r1, r5 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 +_0804F216: + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_804F1CC + + thumb_func_start sub_804F220 +sub_804F220: @ 804F220 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + ldr r6, =gBattleStruct + ldr r0, [r6] + ldrb r0, [r0, 0x10] + movs r5, 0x64 + muls r0, r5 + ldr r4, =gPlayerParty + adds r0, r4 + movs r1, 0x38 + bl GetMonData + mov r8, r0 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r0, [r6] + ldrb r0, [r0, 0x10] + muls r0, r5 + adds r0, r4 + bl pokemon_get_gender + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, [r6] + ldrb r0, [r0, 0x10] + muls r0, r5 + adds r0, r4 + ldr r5, =gStringVar4 + adds r1, r5, 0 + bl GetMonNickname + str r5, [sp] + mov r2, sp + movs r1, 0 + movs r0, 0xE + strb r0, [r2, 0x4] + mov r0, sp + strb r1, [r0, 0x5] + movs r4, 0x20 + strb r4, [r0, 0x6] + strb r1, [r0, 0x7] + strb r4, [r0, 0x8] + strb r1, [r0, 0x9] + strb r1, [r0, 0xA] + strb r1, [r0, 0xB] + mov r3, sp + ldrb r2, [r3, 0xC] + subs r1, 0x10 + adds r0, r1, 0 + ands r0, r2 + strb r0, [r3, 0xC] + mov r2, sp + movs r0, 0x10 + strb r0, [r2, 0xC] + ldrb r0, [r2, 0xD] + ands r1, r0 + strb r1, [r2, 0xD] + mov r0, sp + strb r4, [r0, 0xD] + movs r1, 0xFF + movs r2, 0 + bl AddTextPrinter + movs r0, 0xF9 + strb r0, [r5] + adds r5, 0x1 + movs r0, 0x5 + strb r0, [r5] + adds r5, 0x1 + adds r4, r5, 0 + adds r0, r4, 0 + mov r1, r8 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r5, r0, 0 + subs r4, r5, r4 + movs r2, 0x4 + subs r2, r4 + lsls r2, 16 + lsrs r2, 16 + movs r1, 0x77 + bl StringFill + adds r5, r0, 0 + cmp r7, 0xFF + beq _0804F320 + cmp r7, 0 + bne _0804F300 + movs r1, 0 + movs r2, 0xC + bl WriteColorChangeControlCode + adds r5, r0, 0 + movs r1, 0x1 + movs r2, 0xD + bl WriteColorChangeControlCode + adds r5, r0, 0 + movs r0, 0xB5 + b _0804F318 + .pool +_0804F300: + adds r0, r5, 0 + movs r1, 0 + movs r2, 0xE + bl WriteColorChangeControlCode + adds r5, r0, 0 + movs r1, 0x1 + movs r2, 0xF + bl WriteColorChangeControlCode + adds r5, r0, 0 + movs r0, 0xB6 +_0804F318: + strb r0, [r5] + adds r5, 0x1 + movs r0, 0xFF + strb r0, [r5] +_0804F320: + mov r0, sp + movs r1, 0xA + strb r1, [r0, 0x7] + strb r1, [r0, 0x9] + movs r1, 0xFF + movs r2, 0 + bl AddTextPrinter + movs r0, 0xE + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804F220 + + thumb_func_start sub_804F344 +sub_804F344: @ 804F344 + push {lr} + ldr r0, =gUnknown_02022E1C + ldrh r1, [r0] + movs r3, 0xD0 + lsls r3, 1 + adds r2, r0, 0 + cmp r1, r3 + bne _0804F35C + movs r0, 0 + b _0804F380 + .pool +_0804F35C: + ldrh r0, [r2] + adds r1, r0, 0 + subs r1, 0x10 + ldr r0, =0x0000019f + cmp r1, r0 + bgt _0804F370 + strh r3, [r2] + b _0804F372 + .pool +_0804F370: + strh r1, [r2] +_0804F372: + ldrh r1, [r2] + movs r0, 0xD0 + lsls r0, 1 + eors r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 +_0804F380: + pop {r1} + bx r1 + thumb_func_end sub_804F344 + + thumb_func_start sub_804F384 +sub_804F384: @ 804F384 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x10 + ldr r0, =gBattleStruct + mov r8, r0 + ldr r0, [r0] + ldrb r0, [r0, 0x10] + movs r6, 0x64 + muls r0, r6 + ldr r5, =gPlayerParty + adds r0, r5 + movs r1, 0xB + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + mov r1, r8 + ldr r0, [r1] + ldrb r0, [r0, 0x10] + muls r0, r6 + adds r0, r5 + movs r1, 0 + bl GetMonData + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0x1 + bl sub_80D2EDC + str r0, [sp] + ldr r5, =0xffff0000 + ldr r0, [sp, 0x4] + ands r0, r5 + movs r1, 0x80 + lsls r1, 2 + orrs r0, r1 + ldr r1, =0x0000ffff + ands r0, r1 + ldr r1, =0xd75a0000 + orrs r0, r1 + str r0, [sp, 0x4] + adds r0, r4, 0 + bl sub_80D30B0 + str r0, [sp, 0x8] + add r4, sp, 0x8 + ldr r0, [r4, 0x4] + ands r0, r5 + ldr r1, =0x0000d75a + orrs r0, r1 + str r0, [r4, 0x4] + mov r0, sp + bl LoadSpriteSheet + adds r0, r4, 0 + bl LoadSpritePalette + ldr r0, =gUnknown_0831C3C0 + movs r1, 0x80 + lsls r1, 1 + movs r2, 0xA + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x2E] + ldr r0, =gUnknown_02022E1C + ldrh r0, [r0] + strh r0, [r1, 0x30] + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_804F384 + + thumb_func_start sub_804F450 +sub_804F450: @ 804F450 + push {r4,lr} + adds r2, r0, 0 + ldr r0, =gUnknown_02022E1C + ldrh r1, [r2, 0x30] + ldrh r0, [r0] + subs r1, r0 + strh r1, [r2, 0x24] + lsls r1, 16 + cmp r1, 0 + beq _0804F470 + movs r0, 0x1 + strh r0, [r2, 0x2E] + b _0804F48C + .pool +_0804F470: + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0 + beq _0804F48C + adds r0, r2, 0 + bl DestroySprite + ldr r4, =0x0000d75a + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag +_0804F48C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_804F450 + + thumb_func_start sub_804F498 +sub_804F498: @ 804F498 + push {lr} + ldr r3, =gBattlePartyID + ldr r0, =gBattleStruct + ldr r0, [r0] + ldrh r1, [r3] + ldrb r2, [r0, 0x10] + cmp r1, r2 + beq _0804F4BA + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0804F4CC + ldrh r0, [r3, 0x4] + cmp r0, r2 + bne _0804F4CC +_0804F4BA: + movs r0, 0x1 + b _0804F4CE + .pool +_0804F4CC: + movs r0, 0 +_0804F4CE: + pop {r1} + bx r1 + thumb_func_end sub_804F498 + + thumb_func_start sub_804F4D4 +sub_804F4D4: @ 804F4D4 + push {lr} + bl sub_803F988 + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end sub_804F4D4 + + thumb_func_start atk6E_state0_side_becomes_attacker +atk6E_state0_side_becomes_attacker: @ 804F4EC + push {lr} + movs r0, 0 + bl GetBankByPlayerAI + ldr r1, =gBankAttacker + strb r0, [r1] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end atk6E_state0_side_becomes_attacker + + thumb_func_start atk6F_8026810 +atk6F_8026810: @ 804F50C + push {r4,r5,lr} + ldr r5, =gBattlescriptCurrInstr + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r4, =gActiveBank + strb r0, [r4] + movs r0, 0 + movs r1, 0 + bl dp01_build_cmdbuf_x33_a_33_33 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end atk6F_8026810 + + thumb_func_start atk70_record_ability_usage_of_side +atk70_record_ability_usage_of_side: @ 804F540 + push {r4,lr} + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r1, =gActiveBank + strb r0, [r1] + ldrb r0, [r1] + ldr r1, =gLastUsedAbility + ldrb r1, [r1] + bl RecordAbilityBattle + ldr r0, [r4] + adds r0, 0x1 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atk70_record_ability_usage_of_side + + thumb_func_start sub_804F574 +sub_804F574: @ 804F574 + ldr r2, =gBattleTextBuff2 + movs r0, 0xFD + strb r0, [r2] + movs r0, 0x2 + strb r0, [r2, 0x1] + ldr r0, =gUnknown_020244E2 + ldrh r1, [r0] + strb r1, [r2, 0x2] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r2, 0x3] + movs r0, 0xFF + strb r0, [r2, 0x4] + bx lr + .pool + thumb_func_end sub_804F574 + + thumb_func_start atk71_80268A0 +atk71_80268A0: @ 804F59C + push {lr} + bl sub_804F574 + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end atk71_80268A0 + + thumb_func_start atk72_flee +atk72_flee: @ 804F5B4 + push {lr} + ldr r0, =gUnknown_0202420D + ldrb r0, [r0] + bl sub_803EC20 + lsls r0, 24 + cmp r0, 0 + beq _0804F5E8 + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0804F5F0 + .pool +_0804F5E8: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0804F5F0: + pop {r0} + bx r0 + .pool + thumb_func_end atk72_flee + + thumb_func_start atk73_cmd73 +atk73_cmd73: @ 804F5F8 + push {r4-r6,lr} + ldr r0, =gBattleTypeFlags + ldr r4, [r0] + movs r6, 0x1 + ands r4, r6 + cmp r4, 0 + bne _0804F68E + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r1, =gActiveBank + strb r0, [r1] + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gBattleMons + movs r1, 0x58 + muls r1, r0 + adds r1, r2 + ldrh r5, [r1, 0x28] + movs r0, 0x64 + muls r0, r5 + ldrh r1, [r1, 0x2C] + bl __divsi3 + cmp r0, 0 + bne _0804F636 + movs r0, 0x1 +_0804F636: + cmp r0, 0x45 + bgt _0804F63E + cmp r5, 0 + bne _0804F65C +_0804F63E: + ldr r0, =gBattleStruct + ldr r0, [r0] + adds r0, 0xB1 + strb r4, [r0] + b _0804F68E + .pool +_0804F65C: + cmp r0, 0x27 + ble _0804F670 + ldr r0, =gBattleStruct + ldr r0, [r0] + adds r0, 0xB1 + strb r6, [r0] + b _0804F68E + .pool +_0804F670: + cmp r0, 0x9 + ble _0804F684 + ldr r0, =gBattleStruct + ldr r0, [r0] + adds r0, 0xB1 + movs r1, 0x2 + b _0804F68C + .pool +_0804F684: + ldr r0, =gBattleStruct + ldr r0, [r0] + adds r0, 0xB1 + movs r1, 0x3 +_0804F68C: + strb r1, [r0] +_0804F68E: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end atk73_cmd73 + + thumb_func_start atk74_hp_tresholds_2 +atk74_hp_tresholds_2: @ 804F6A4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, =gBattleTypeFlags + ldr r7, [r0] + movs r0, 0x1 + mov r8, r0 + ands r7, r0 + cmp r7, 0 + bne _0804F73E + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + adds r4, r0, 0 + ldr r0, =gActiveBank + strb r4, [r0] + movs r0, 0x1 + eors r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl GetBankSide + lsls r0, 24 + ldr r1, =gBattleStruct + ldr r6, [r1] + lsrs r0, 23 + adds r0, r6 + adds r0, 0xA8 + ldrb r5, [r0] + ldr r1, =gBattleMons + movs r0, 0x58 + muls r0, r4 + adds r0, r1 + ldrh r4, [r0, 0x28] + subs r1, r5, r4 + movs r0, 0x64 + muls r0, r1 + adds r1, r5, 0 + bl __divsi3 + adds r1, r0, 0 + cmp r4, r5 + bcc _0804F71C + adds r0, r6, 0 + adds r0, 0xB1 + strb r7, [r0] + b _0804F73E + .pool +_0804F71C: + cmp r0, 0x1D + bgt _0804F72A + adds r0, r6, 0 + adds r0, 0xB1 + mov r1, r8 + strb r1, [r0] + b _0804F73E +_0804F72A: + cmp r1, 0x45 + bgt _0804F736 + adds r1, r6, 0 + adds r1, 0xB1 + movs r0, 0x2 + b _0804F73C +_0804F736: + adds r1, r6, 0 + adds r1, 0xB1 + movs r0, 0x3 +_0804F73C: + strb r0, [r1] +_0804F73E: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk74_hp_tresholds_2 + + thumb_func_start atk75_8026A58 +atk75_8026A58: @ 804F754 + push {lr} + sub sp, 0x4 + ldr r2, =gUnknown_020244B8 + ldr r1, =gBankAttacker + ldrb r0, [r1] + strb r0, [r2] + ldr r2, =gBattlePartyID + ldrb r0, [r1] + lsls r0, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r1, =gEnemyParty + adds r0, r1 + ldr r1, =gUnknown_02024208 + ldrh r1, [r1] + lsls r2, 24 + lsrs r2, 24 + movs r3, 0x1 + str r3, [sp] + movs r3, 0 + bl ExecuteTableBasedItemEffect + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + add sp, 0x4 + pop {r0} + bx r0 + .pool + thumb_func_end atk75_8026A58 + + thumb_func_start sub_804F7AC +sub_804F7AC: @ 804F7AC + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r1, =gActiveBank + strb r0, [r1] + ldr r0, [r4] + ldrb r0, [r0, 0x2] + cmp r0, 0x1A + bls _0804F7CA + b _0804FD70 +_0804F7CA: + lsls r0, 2 + ldr r1, =_0804F7E0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0804F7E0: + .4byte _0804F84C + .4byte _0804F85C + .4byte _0804F8BC + .4byte _0804F8CC + .4byte _0804F8E4 + .4byte _0804F920 + .4byte _0804F958 + .4byte _0804F9E0 + .4byte _0804FA20 + .4byte _0804FACC + .4byte _0804FAE8 + .4byte _0804FB3C + .4byte _0804FB94 + .4byte _0804FC18 + .4byte _0804FC2C + .4byte _0804FC32 + .4byte _0804FC38 + .4byte _0804FC60 + .4byte _0804FC6A + .4byte _0804FC78 + .4byte _0804FC8C + .4byte _0804FCC4 + .4byte _0804FCD8 + .4byte _0804FCF0 + .4byte _0804FD1C + .4byte _0804FD30 + .4byte _0804FD5C +_0804F84C: + ldr r0, =gActiveBank + ldrb r0, [r0] + bl CancelMultiTurnMoves + b _0804FD70 + .pool +_0804F85C: + ldr r1, =gBankAttacker + ldr r4, =gBankTarget + ldrb r0, [r4] + strb r0, [r1] + ldrb r0, [r1] + bl GetBankSide + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gSideTimers + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r2, r1, r2 + ldrb r0, [r2, 0x8] + cmp r0, 0 + beq _0804F8A8 + ldr r1, =gBattleMons + ldrb r2, [r2, 0x9] + movs r0, 0x58 + muls r0, r2 + adds r0, r1 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _0804F8A8 + strb r2, [r4] + b _0804FD70 + .pool +_0804F8A8: + ldr r0, =gBankTarget + ldr r1, =gActiveBank + ldrb r1, [r1] + strb r1, [r0] + b _0804FD70 + .pool +_0804F8BC: + bl sub_803BB88 + ldr r1, =gBattleCommunication + strb r0, [r1] + b _0804FD70 + .pool +_0804F8CC: + ldr r0, =gCurrentMove + ldrh r0, [r0] + movs r1, 0 + bl GetMoveTarget + ldr r1, =gBankTarget + strb r0, [r1] + b _0804FD70 + .pool +_0804F8E4: + ldr r2, =gHitMarker + ldr r1, =gBitTable + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + lsls r0, 28 + ldr r2, [r2] + ands r2, r0 + cmp r2, 0 + beq _0804F914 + ldr r1, =gBattleCommunication + movs r0, 0x1 + strb r0, [r1] + b _0804FD70 + .pool +_0804F914: + ldr r0, =gBattleCommunication + strb r2, [r0] + b _0804FD70 + .pool +_0804F920: + ldr r4, =gSpecialStatuses + ldr r3, =gActiveBank + ldrb r0, [r3] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r1] + movs r0, 0x9 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldrb r0, [r3] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r1] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + b _0804FD70 + .pool +_0804F958: + ldr r4, =gBattlePartyID + ldr r1, =gBattleStruct + ldr r0, [r1] + ldrh r3, [r4] + ldrb r2, [r0, 0x10] + adds r6, r1, 0 + cmp r3, r2 + beq _0804F974 + ldrh r0, [r4, 0x4] + cmp r0, r2 + beq _0804F970 + b _0804FD70 +_0804F970: + cmp r3, r0 + bne _0804F988 +_0804F974: + ldr r1, =gActiveBank + movs r0, 0 + b _0804F98C + .pool +_0804F988: + ldr r1, =gActiveBank + movs r0, 0x2 +_0804F98C: + strb r0, [r1] + adds r5, r1, 0 + ldrb r2, [r5] + lsls r0, r2, 1 + adds r0, 0xC8 + ldr r1, [r6] + adds r4, r1, r0 + movs r3, 0 + ldr r1, =gBattleMons + movs r0, 0x58 + muls r0, r2 + adds r1, 0xC + adds r0, r1 + ldrh r0, [r0] + ldrh r2, [r4] + cmp r0, r2 + beq _0804F9CC + adds r6, r5, 0 + movs r5, 0x58 + adds r2, r1, 0 +_0804F9B4: + adds r3, 0x1 + cmp r3, 0x3 + bgt _0804F9CC + lsls r1, r3, 1 + ldrb r0, [r6] + muls r0, r5 + adds r1, r0 + adds r1, r2 + ldrh r0, [r1] + ldrh r1, [r4] + cmp r0, r1 + bne _0804F9B4 +_0804F9CC: + cmp r3, 0x4 + beq _0804F9D2 + b _0804FD70 +_0804F9D2: + movs r0, 0 + strh r0, [r4] + b _0804FD70 + .pool +_0804F9E0: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0xB + ands r0, r1 + cmp r0, 0x8 + beq _0804F9EE + b _0804FD70 +_0804F9EE: + ldr r1, =gBattleMons + ldrh r0, [r1, 0x28] + cmp r0, 0 + bne _0804F9F8 + b _0804FD70 +_0804F9F8: + adds r0, r1, 0 + adds r0, 0x80 + ldrh r0, [r0] + cmp r0, 0 + bne _0804FA04 + b _0804FD70 +_0804FA04: + ldr r0, =gHitMarker + ldr r1, [r0] + ldr r2, =0xffbfffff + ands r1, r2 + str r1, [r0] + b _0804FD70 + .pool +_0804FA20: + ldr r2, =gBattleCommunication + mov r8, r2 + movs r0, 0 + strb r0, [r2] + ldr r1, =gBattleScripting + ldr r6, =gActiveBank + ldrb r0, [r2, 0x1] + strb r0, [r6] + strb r0, [r1, 0x17] + ldr r0, =gBattleStruct + ldr r0, [r0] + adds r7, r0, 0 + adds r7, 0x92 + ldrb r3, [r7] + ldr r1, =gBitTable + ldrb r2, [r6] + lsls r0, r2, 2 + adds r0, r1 + ldr r5, [r0] + adds r0, r3, 0 + ands r0, r5 + cmp r0, 0 + beq _0804FA50 + b _0804FD70 +_0804FA50: + ldr r4, =gBattleMons + movs r0, 0x58 + mov r12, r0 + mov r1, r12 + muls r1, r2 + adds r2, r1, 0 + adds r1, r2, r4 + ldrh r0, [r1, 0x2C] + lsrs r0, 1 + ldrh r1, [r1, 0x28] + cmp r0, r1 + bcs _0804FA6A + b _0804FD70 +_0804FA6A: + cmp r1, 0 + bne _0804FA70 + b _0804FD70 +_0804FA70: + adds r0, r4, 0 + adds r0, 0x4C + adds r0, r2, r0 + ldr r0, [r0] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + beq _0804FA82 + b _0804FD70 +_0804FA82: + orrs r3, r5 + strb r3, [r7] + movs r0, 0x1 + mov r2, r8 + strb r0, [r2] + ldrb r0, [r6] + mov r1, r12 + muls r1, r0 + adds r0, r1, 0 + adds r1, r4, 0 + adds r1, 0x48 + adds r0, r1 + ldr r0, [r0] + bl GetNatureFromPersonality + ldr r1, =gUnknown_0831C4F8 + lsls r0, 24 + lsrs r0, 24 + adds r0, r1 + ldrb r0, [r0] + mov r2, r8 + strb r0, [r2, 0x5] + b _0804FD70 + .pool +_0804FACC: + ldr r4, =gBattleCommunication + adds r0, r4, 0 + bl sub_81A5258 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + bne _0804FADE + b _0804FD78 +_0804FADE: + strb r3, [r4, 0x1] + b _0804FD70 + .pool +_0804FAE8: + ldr r0, =gBattleMons + adds r0, 0x80 + movs r1, 0 + strh r1, [r0] + ldr r2, =gHitMarker + ldr r3, =gBitTable + ldr r1, [r3, 0x4] + lsls r1, 28 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + ldr r0, =gBattleStruct + ldr r2, [r0] + ldr r0, =0x000002a1 + adds r2, r0 + ldr r0, =gBattlePartyID + ldrh r0, [r0, 0x2] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r1, =gDisableStructs + adds r1, 0x34 + ldrb r0, [r1] + movs r2, 0x2 + b _0804FBF4 + .pool +_0804FB3C: + ldr r1, =gBattleMons + movs r0, 0 + strh r0, [r1, 0x28] + ldr r2, =gHitMarker + ldr r3, =gBitTable + ldr r1, [r3] + lsls r1, 28 + ldr r0, [r2] + orrs r0, r1 + movs r1, 0x80 + lsls r1, 15 + orrs r0, r1 + str r0, [r2] + ldr r0, =gBattleStruct + ldr r2, [r0] + movs r1, 0xA8 + lsls r1, 2 + adds r2, r1 + ldr r0, =gBattlePartyID + ldrh r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r2, =gDisableStructs + ldrb r0, [r2, 0x18] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2, 0x18] + b _0804FD70 + .pool +_0804FB94: + ldr r0, =gBattleMons + movs r1, 0 + strh r1, [r0, 0x28] + adds r0, 0x80 + strh r1, [r0] + ldr r2, =gHitMarker + ldr r3, =gBitTable + ldr r0, [r3] + lsls r0, 28 + ldr r1, [r2] + orrs r1, r0 + ldr r0, [r3, 0x4] + lsls r0, 28 + orrs r1, r0 + movs r0, 0x80 + lsls r0, 15 + orrs r1, r0 + str r1, [r2] + ldr r5, =gBattleStruct + ldr r2, [r5] + movs r0, 0xA8 + lsls r0, 2 + adds r2, r0 + ldr r4, =gBattlePartyID + ldrh r0, [r4] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r2, [r5] + ldr r1, =0x000002a1 + adds r2, r1 + ldrh r0, [r4, 0x2] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r1, =gDisableStructs + ldrb r0, [r1, 0x18] + movs r2, 0x2 + orrs r0, r2 + strb r0, [r1, 0x18] + adds r1, 0x34 + ldrb r0, [r1] +_0804FBF4: + orrs r0, r2 + strb r0, [r1] + b _0804FD70 + .pool +_0804FC18: + movs r0, 0 + bl sub_8033E10 + ldr r0, =gActiveBank + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution + b _0804FD70 + .pool +_0804FC2C: + bl sub_81A5BF8 + b _0804FD70 +_0804FC32: + bl sub_81A5D44 + b _0804FD70 +_0804FC38: + ldr r1, =gUnknown_085CD1C8 + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r0, [r0, 0x1] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl get_battle_strings_ + ldr r0, =gUnknown_02022E2C + movs r1, 0x16 + bl battle_show_message_maybe + b _0804FD70 + .pool +_0804FC60: + movs r0, 0x16 + bl IsTextPrinterActive + lsls r0, 16 + b _0804FD24 +_0804FC6A: + bl IsCryFinished + lsls r0, 24 + cmp r0, 0 + bne _0804FC76 + b _0804FD78 +_0804FC76: + b _0804FD70 +_0804FC78: + ldr r4, =gActiveBank + movs r0, 0x1 + strb r0, [r4] + ldr r0, =gBattleMons + adds r0, 0x58 + b _0804FCA2 + .pool +_0804FC8C: + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + cmp r0, 0x3 + bls _0804FD70 + ldr r4, =gActiveBank + movs r0, 0x3 + strb r0, [r4] + ldr r0, =gBattleMons + movs r2, 0x84 + lsls r2, 1 + adds r0, r2 +_0804FCA2: + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _0804FD70 + movs r0, 0 + movs r1, 0 + bl dp01_build_cmdbuf_x06_a + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + b _0804FD70 + .pool +_0804FCC4: + ldr r0, =gMPlay_BGM + ldr r1, =0x0000ffff + movs r2, 0x55 + bl m4aMPlayVolumeControl + b _0804FD70 + .pool +_0804FCD8: + ldr r0, =gMPlay_BGM + ldr r1, =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl + b _0804FD70 + .pool +_0804FCF0: + ldr r0, =gBattleStruct + ldr r2, [r0] + ldr r0, =0x000002a2 + adds r2, r0 + ldr r1, =gBitTable + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + b _0804FD70 + .pool +_0804FD1C: + ldr r0, =gActiveBank + ldrb r0, [r0] + bl sub_805725C +_0804FD24: + cmp r0, 0 + bne _0804FD78 + b _0804FD70 + .pool +_0804FD30: + ldr r0, =gActiveBank + ldrb r0, [r0] + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _0804FD50 + ldr r1, =gBattleOutcome + movs r0, 0x5 + strb r0, [r1] + b _0804FD70 + .pool +_0804FD50: + ldr r1, =gBattleOutcome + movs r0, 0xA + strb r0, [r1] + b _0804FD70 + .pool +_0804FD5C: + movs r1, 0xCE + lsls r1, 1 + movs r0, 0 + movs r2, 0x1 + bl sub_8034300 + ldr r0, =gActiveBank + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution +_0804FD70: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x3 + str r0, [r1] +_0804FD78: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_804F7AC + + thumb_func_start atk77_setprotect +atk77_setprotect: @ 804FD8C + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r6, 0x1 + ldr r2, =gUnknown_02024260 + ldr r1, =gBankAttacker + ldrb r3, [r1] + lsls r0, r3, 1 + adds r0, r2 + ldrh r0, [r0] + mov r8, r1 + ldr r7, =gDisableStructs + cmp r0, 0xB6 + beq _0804FDBC + cmp r0, 0xC5 + beq _0804FDBC + cmp r0, 0xCB + beq _0804FDBC + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + adds r0, r7 + movs r1, 0 + strb r1, [r0, 0x8] +_0804FDBC: + ldr r0, =gUnknown_02024082 + ldrb r1, [r0] + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + bne _0804FDCC + movs r6, 0 +_0804FDCC: + ldr r2, =gUnknown_0831C3D8 + mov r5, r8 + ldrb r1, [r5] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r7 + ldrb r4, [r0, 0x8] + lsls r4, 1 + adds r4, r2 + bl Random + ldrh r1, [r4] + lsls r0, 16 + lsrs r0, 16 + cmp r1, r0 + bcc _0804FE80 + cmp r6, 0 + beq _0804FE80 + ldr r4, =gBattleMoves + ldr r3, =gCurrentMove + ldrh r0, [r3] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r0, [r1] + cmp r0, 0x6F + bne _0804FE1C + ldr r0, =gProtectStructs + ldrb r1, [r5] + lsls r1, 4 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x1 + orrs r0, r2 + strb r0, [r1] + ldr r1, =gBattleCommunication + movs r0, 0 + strb r0, [r1, 0x5] +_0804FE1C: + ldrh r0, [r3] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r0, [r1] + cmp r0, 0x74 + bne _0804FE42 + ldr r0, =gProtectStructs + ldrb r1, [r5] + lsls r1, 4 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x2 + orrs r0, r2 + strb r0, [r1] + ldr r1, =gBattleCommunication + movs r0, 0x1 + strb r0, [r1, 0x5] +_0804FE42: + mov r1, r8 + ldrb r0, [r1] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r7 + ldrb r0, [r1, 0x8] + adds r0, 0x1 + strb r0, [r1, 0x8] + b _0804FEA2 + .pool +_0804FE80: + ldr r2, =gDisableStructs + ldr r0, =gBankAttacker + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strb r1, [r0, 0x8] + ldr r1, =gBattleCommunication + movs r0, 0x2 + strb r0, [r1, 0x5] + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] +_0804FEA2: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk77_setprotect + + thumb_func_start atk78_faintifabilitynotdamp +atk78_faintifabilitynotdamp: @ 804FEC8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, =gBattleExecBuffer + ldr r2, [r0] + cmp r2, 0 + bne _0804FFCC + ldr r1, =gBankTarget + strb r2, [r1] + ldr r0, =gNoOfAllBanks + ldrb r3, [r0] + adds r5, r1, 0 + mov r8, r0 + ldr r6, =gBattleMons + cmp r2, r3 + bcs _0804FF14 + adds r0, r6, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x6 + beq _0804FF14 + adds r2, r3, 0 + adds r4, r6, 0 + movs r3, 0x58 +_0804FEF8: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, r2 + bcs _0804FF14 + ldrb r0, [r5] + muls r0, r3 + adds r0, r4 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x6 + bne _0804FEF8 +_0804FF14: + ldrb r0, [r5] + mov r1, r8 + ldrb r1, [r1] + cmp r0, r1 + bne _0804FFB0 + ldr r4, =gActiveBank + ldr r7, =gBankAttacker + ldrb r0, [r7] + strb r0, [r4] + ldr r2, =gBattleMoveDamage + ldrb r1, [r4] + movs r0, 0x58 + muls r0, r1 + adds r0, r6 + ldrh r0, [r0, 0x28] + str r0, [r2] + ldr r1, =0x00007fff + movs r0, 0 + bl dp01_build_cmdbuf_x18_0_aa_health_bar_update + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + movs r0, 0 + strb r0, [r5] + mov r2, r8 + ldrb r0, [r2] + cmp r0, 0 + beq _0804FFCC + adds r3, r5, 0 + ldrb r5, [r7] + ldr r7, =gBitTable + adds r4, r0, 0 + ldr r6, =gAbsentBankFlags +_0804FF60: + ldrb r2, [r3] + cmp r2, r5 + beq _0804FF76 + ldrb r0, [r6] + ldrb r1, [r3] + lsls r1, 2 + adds r1, r7 + ldr r1, [r1] + ands r0, r1 + cmp r0, 0 + beq _0804FFCC +_0804FF76: + adds r0, r2, 0x1 + strb r0, [r3] + lsls r0, 24 + lsrs r0, 24 + cmp r0, r4 + bcc _0804FF60 + b _0804FFCC + .pool +_0804FFB0: + ldr r1, =gLastUsedAbility + movs r0, 0x6 + strb r0, [r1] + ldrb r0, [r5] + movs r1, 0x58 + muls r1, r0 + adds r1, r6 + adds r1, 0x20 + ldrb r1, [r1] + bl RecordAbilityBattle + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DB560 + str r0, [r1] +_0804FFCC: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk78_faintifabilitynotdamp + + thumb_func_start atk79_setuserhptozero +atk79_setuserhptozero: @ 804FFE4 + push {r4,lr} + sub sp, 0x4 + ldr r0, =gBattleExecBuffer + ldr r3, [r0] + cmp r3, 0 + bne _08050028 + ldr r4, =gActiveBank + ldr r0, =gBankAttacker + ldrb r0, [r0] + strb r0, [r4] + ldr r1, =gBattleMons + ldrb r0, [r4] + movs r2, 0x58 + muls r0, r2 + adds r0, r1 + strh r3, [r0, 0x28] + ldrb r0, [r4] + muls r0, r2 + adds r1, 0x28 + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x2A + movs r2, 0 + movs r3, 0x2 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_08050028: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atk79_setuserhptozero + + thumb_func_start sub_8050044 +sub_8050044: @ 8050044 + push {r4-r7,lr} + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r4, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r4, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r4, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r4, r0 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + adds r7, r3, 0 + cmp r0, 0 + beq _080500DC + ldr r0, =gBankTarget + ldrb r1, [r0] + adds r1, 0x1 + strb r1, [r0] + ldr r2, =gBankAttacker + lsls r1, 24 + lsrs r1, 24 + adds r3, r0, 0 + ldr r6, =gAbsentBankFlags + ldr r5, =gBitTable + ldr r0, =gNoOfAllBanks + mov r12, r0 + ldrb r0, [r2] + cmp r1, r0 + bne _0805009A +_0805008A: + ldrb r0, [r3] + adds r0, 0x1 + strb r0, [r3] + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r2] + cmp r0, r1 + beq _0805008A +_0805009A: + ldrb r0, [r6] + ldrb r1, [r3] + lsls r1, 2 + adds r1, r5 + ldr r1, [r1] + ands r0, r1 + cmp r0, 0 + bne _0805008A + ldrb r0, [r3] + mov r2, r12 + ldrb r2, [r2] + cmp r0, r2 + bcc _080500D8 + ldr r0, [r7] + adds r0, 0x5 + str r0, [r7] + b _080500E0 + .pool +_080500D8: + str r4, [r7] + b _080500E0 +_080500DC: + adds r0, r2, 0x5 + str r0, [r3] +_080500E0: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8050044 + + thumb_func_start sub_80500E8 +sub_80500E8: @ 80500E8 + push {r4-r6,lr} + ldr r4, =gBattlescriptCurrInstr + ldr r1, [r4] + ldrb r2, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + orrs r2, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + orrs r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + orrs r2, r0 + ldrb r0, [r1, 0x5] + ldr r3, =gBankTarget + cmp r0, 0x1 + bne _08050110 + ldr r0, =gBankAttacker + ldrb r0, [r0] + strb r0, [r3] +_08050110: + ldr r1, =gBattleMoveDamage + ldr r6, =gBattleMons + ldrb r0, [r3] + movs r5, 0x58 + muls r0, r5 + adds r0, r6 + ldrh r0, [r0, 0x2C] + lsrs r0, 1 + str r0, [r1] + cmp r0, 0 + bne _0805012A + movs r0, 0x1 + str r0, [r1] +_0805012A: + ldr r0, [r1] + negs r0, r0 + str r0, [r1] + ldrb r0, [r3] + muls r0, r5 + adds r0, r6 + ldrh r1, [r0, 0x28] + ldrh r0, [r0, 0x2C] + cmp r1, r0 + bne _08050158 + str r2, [r4] + b _0805015E + .pool +_08050158: + ldr r0, [r4] + adds r0, 0x6 + str r0, [r4] +_0805015E: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80500E8 + + thumb_func_start sub_8050164 +sub_8050164: @ 8050164 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + ldr r2, =gNoOfAllBanks + ldr r0, =gBankAttacker + mov r10, r0 + movs r1, 0 + add r0, sp, 0x4 +_0805017A: + strh r1, [r0] + subs r0, 0x2 + cmp r0, sp + bge _0805017A + movs r1, 0 + mov r8, r1 + movs r5, 0 + ldrb r1, [r2] + cmp r5, r1 + bge _080501D0 + ldr r0, =gBankAttacker + ldrb r6, [r0] + ldr r2, =0x0000ffff + mov r9, r2 + lsls r4, r6, 3 + mov r2, sp + ldr r0, =gBattleStruct + mov r12, r0 + adds r7, r1, 0 +_080501A0: + cmp r5, r6 + beq _080501C8 + mov r1, r12 + ldr r0, [r1] + adds r0, r4, r0 + adds r1, r0, 0 + adds r1, 0xE0 + ldrb r3, [r1] + adds r0, 0xE1 + ldrb r0, [r0] + lsls r0, 8 + orrs r3, r0 + cmp r3, 0 + beq _080501C8 + cmp r3, r9 + beq _080501C8 + strh r3, [r2] + adds r2, 0x2 + movs r0, 0x1 + add r8, r0 +_080501C8: + adds r4, 0x2 + adds r5, 0x1 + cmp r5, r7 + blt _080501A0 +_080501D0: + mov r1, r10 + ldrb r0, [r1] + ldr r2, =gBattleStruct + ldr r1, [r2] + lsls r0, 1 + adds r0, r1 + adds r1, r0, 0 + adds r1, 0x98 + ldrb r3, [r1] + adds r0, 0x99 + ldrb r0, [r0] + lsls r0, 8 + orrs r3, r0 + cmp r3, 0 + beq _08050220 + ldr r0, =0x0000ffff + cmp r3, r0 + beq _08050220 + ldr r2, =gHitMarker + ldr r0, [r2] + ldr r1, =0xfffffbff + ands r0, r1 + str r0, [r2] + ldr r4, =gCurrentMove + strh r3, [r4] + b _0805024A + .pool +_08050220: + mov r0, r8 + cmp r0, 0 + beq _08050290 + ldr r2, =gHitMarker + ldr r0, [r2] + ldr r1, =0xfffffbff + ands r0, r1 + str r0, [r2] + bl Random + lsls r0, 16 + lsrs r0, 16 + mov r1, r8 + bl __modsi3 + adds r5, r0, 0 + ldr r4, =gCurrentMove + lsls r0, r5, 1 + add r0, sp + ldrh r0, [r0] + strh r0, [r4] +_0805024A: + ldrh r0, [r4] + movs r1, 0 + bl GetMoveTarget + ldr r1, =gBankTarget + strb r0, [r1] + ldr r5, =gBattlescriptCurrInstr + ldr r3, =gUnknown_082D86A8 + ldr r2, =gBattleMoves + ldrh r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + str r0, [r5] + b _080502AE + .pool +_08050290: + ldr r2, =gSpecialStatuses + mov r0, r10 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_080502AE: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8050164 + + thumb_func_start sub_80502C8 +sub_80502C8: @ 80502C8 + push {lr} + ldr r2, =gBattleWeather + ldrh r0, [r2] + movs r1, 0x7 + ands r1, r0 + cmp r1, 0 + beq _080502F4 + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, =gBattleCommunication + movs r0, 0x2 + strb r0, [r1, 0x5] + b _08050304 + .pool +_080502F4: + movs r0, 0x1 + strh r0, [r2] + ldr r0, =gBattleCommunication + strb r1, [r0, 0x5] + ldr r0, =gUnknown_020243D0 + adds r0, 0x28 + movs r1, 0x5 + strb r1, [r0] +_08050304: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end sub_80502C8 + + thumb_func_start atk7E_setreflect +atk7E_setreflect: @ 805031C + push {r4-r6,lr} + ldr r6, =gBankAttacker + ldrb r0, [r6] + bl GetBankIdentity + ldr r4, =gUnknown_0202428E + movs r5, 0x1 + adds r1, r5, 0 + ands r1, r0 + lsls r1, 1 + adds r1, r4 + ldrh r1, [r1] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _0805035C + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, =gBattleCommunication + movs r0, 0 + b _080503D0 + .pool +_0805035C: + ldrb r0, [r6] + bl GetBankIdentity + adds r1, r5, 0 + ands r1, r0 + lsls r1, 1 + adds r1, r4 + ldrh r0, [r1] + movs r2, 0x1 + orrs r0, r2 + strh r0, [r1] + ldrb r0, [r6] + bl GetBankIdentity + ldr r4, =gSideTimers + adds r1, r5, 0 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x5 + strb r1, [r0] + ldrb r0, [r6] + bl GetBankIdentity + adds r1, r5, 0 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r6] + strb r1, [r0, 0x1] + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + ands r0, r5 + cmp r0, 0 + beq _080503CC + movs r0, 0x1 + bl sub_8069DEC + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x2 + bne _080503CC + ldr r0, =gBattleCommunication + strb r1, [r0, 0x5] + b _080503D2 + .pool +_080503CC: + ldr r1, =gBattleCommunication + movs r0, 0x1 +_080503D0: + strb r0, [r1, 0x5] +_080503D2: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end atk7E_setreflect + + thumb_func_start sub_80503E8 +sub_80503E8: @ 80503E8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r7, =gBattleMoveFlags + ldrb r5, [r7] + movs r0, 0x29 + ands r0, r5 + cmp r0, 0 + bne _0805041A + ldr r0, =gStatuses3 + mov r9, r0 + ldr r1, =gBankTarget + mov r8, r1 + ldrb r4, [r1] + lsls r0, r4, 2 + mov r2, r9 + adds r6, r0, r2 + ldr r2, [r6] + movs r0, 0x4 + mov r12, r0 + adds r3, r2, 0 + ands r3, r0 + cmp r3, 0 + beq _08050438 +_0805041A: + movs r0, 0x1 + orrs r0, r5 + strb r0, [r7] + ldr r1, =gBattleCommunication + movs r0, 0x1 + strb r0, [r1, 0x5] + b _08050488 + .pool +_08050438: + ldr r1, =gBattleMons + movs r0, 0x58 + muls r0, r4 + adds r1, r0, r1 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0xC + beq _08050454 + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0xC + bne _0805046C +_08050454: + movs r0, 0x1 + orrs r0, r5 + strb r0, [r7] + ldr r1, =gBattleCommunication + movs r0, 0x2 + strb r0, [r1, 0x5] + b _08050488 + .pool +_0805046C: + ldr r0, =gBankAttacker + ldrb r0, [r0] + orrs r2, r0 + str r2, [r6] + mov r2, r8 + ldrb r1, [r2] + lsls r1, 2 + add r1, r9 + ldr r0, [r1] + mov r2, r12 + orrs r0, r2 + str r0, [r1] + ldr r0, =gBattleCommunication + strb r3, [r0, 0x5] +_08050488: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80503E8 + + thumb_func_start atk80_manipulatedamage +atk80_manipulatedamage: @ 80504A8 + push {r4,lr} + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + ldrb r2, [r0, 0x1] + adds r4, r1, 0 + cmp r2, 0x1 + beq _080504D8 + cmp r2, 0x1 + bgt _080504C4 + cmp r2, 0 + beq _080504CA + b _08050518 + .pool +_080504C4: + cmp r2, 0x2 + beq _08050510 + b _08050518 +_080504CA: + ldr r1, =gBattleMoveDamage + ldr r0, [r1] + negs r0, r0 + b _08050516 + .pool +_080504D8: + ldr r3, =gBattleMoveDamage + ldr r0, [r3] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + str r0, [r3] + cmp r0, 0 + bne _080504EA + str r2, [r3] +_080504EA: + ldr r2, =gBattleMons + ldr r0, =gBankTarget + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x2C] + lsrs r1, r0, 1 + ldr r0, [r3] + cmp r1, r0 + bge _08050518 + str r1, [r3] + b _08050518 + .pool +_08050510: + ldr r1, =gBattleMoveDamage + ldr r0, [r1] + lsls r0, 1 +_08050516: + str r0, [r1] +_08050518: + ldr r0, [r4] + adds r0, 0x2 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atk80_manipulatedamage + + thumb_func_start atk81_setrest +atk81_setrest: @ 8050528 + push {r4-r7,lr} + sub sp, 0x4 + ldr r0, =gBattlescriptCurrInstr + mov r12, r0 + ldr r1, [r0] + ldrb r6, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + orrs r6, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + orrs r6, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + orrs r6, r0 + ldr r5, =gActiveBank + ldr r2, =gBankTarget + ldr r0, =gBankAttacker + ldrb r0, [r0] + strb r0, [r2] + strb r0, [r5] + ldr r4, =gBattleMoveDamage + ldr r1, =gBattleMons + ldrb r0, [r2] + movs r3, 0x58 + muls r0, r3 + adds r0, r1 + ldrh r0, [r0, 0x2C] + negs r0, r0 + str r0, [r4] + ldrb r0, [r2] + adds r4, r0, 0 + muls r4, r3 + adds r0, r4, r1 + ldrh r3, [r0, 0x28] + adds r7, r5, 0 + adds r5, r2, 0 + adds r2, r1, 0 + ldrh r0, [r0, 0x2C] + cmp r3, r0 + bne _08050598 + mov r0, r12 + str r6, [r0] + b _080505E8 + .pool +_08050598: + adds r0, r2, 0 + adds r0, 0x4C + adds r0, r4, r0 + ldr r1, [r0] + movs r0, 0xF8 + ands r1, r0 + cmp r1, 0 + beq _080505B4 + ldr r1, =gBattleCommunication + movs r0, 0x1 + strb r0, [r1, 0x5] + b _080505B8 + .pool +_080505B4: + ldr r0, =gBattleCommunication + strb r1, [r0, 0x5] +_080505B8: + ldrb r0, [r5] + movs r3, 0x58 + muls r0, r3 + adds r2, 0x4C + adds r0, r2 + movs r1, 0x3 + str r1, [r0] + ldrb r0, [r7] + muls r0, r3 + adds r0, r2 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r2, 0 + movs r3, 0x4 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r7] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_080505E8: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk81_setrest + + thumb_func_start atk82_jumpifnotfirstturn +atk82_jumpifnotfirstturn: @ 80505F8 + push {r4,r5,lr} + ldr r5, =gBattlescriptCurrInstr + ldr r4, [r5] + ldrb r3, [r4, 0x1] + ldrb r0, [r4, 0x2] + lsls r0, 8 + orrs r3, r0 + ldrb r0, [r4, 0x3] + lsls r0, 16 + orrs r3, r0 + ldrb r0, [r4, 0x4] + lsls r0, 24 + orrs r3, r0 + ldr r2, =gDisableStructs + ldr r0, =gBankAttacker + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x16] + cmp r0, 0 + beq _08050638 + adds r0, r4, 0x5 + str r0, [r5] + b _0805063A + .pool +_08050638: + str r3, [r5] +_0805063A: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end atk82_jumpifnotfirstturn + + thumb_func_start sub_8050640 +sub_8050640: @ 8050640 + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .pool + thumb_func_end sub_8050640 + + thumb_func_start sub_8050650 +sub_8050650: @ 8050650 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r3, r0, 24 + movs r2, 0 + ldr r0, =gNoOfAllBanks + ldrb r1, [r0] + mov r8, r0 + cmp r2, r1 + bge _080506C4 + ldr r0, =gBattleMons + mov r12, r0 + movs r0, 0x58 + muls r0, r3 + add r0, r12 + adds r5, r0, 0 + adds r5, 0x20 + adds r4, r1, 0 + movs r3, 0 + ldr r6, =gBattleScripting + ldr r7, =gBattleCommunication +_0805067C: + mov r0, r12 + adds r0, 0x50 + adds r0, r3, r0 + ldr r0, [r0] + movs r1, 0x70 + ands r0, r1 + cmp r0, 0 + beq _080506BC + ldrb r0, [r5] + cmp r0, 0x2B + beq _080506BC + movs r3, 0 + strb r2, [r6, 0x17] + ldr r1, =gBankTarget + ldrb r0, [r1] + cmp r0, 0xFF + beq _080506DC + cmp r0, r2 + beq _080506D0 + movs r0, 0x1 + strb r0, [r7, 0x5] + b _080506C4 + .pool +_080506BC: + adds r3, 0x58 + adds r2, 0x1 + cmp r2, r4 + blt _0805067C +_080506C4: + mov r1, r8 + ldrb r1, [r1] + cmp r2, r1 + beq _080506E0 + movs r0, 0x1 + b _080506E2 +_080506D0: + ldr r0, =gBattleCommunication + strb r3, [r0, 0x5] + b _080506C4 + .pool +_080506DC: + strb r2, [r1] + b _080506C4 +_080506E0: + movs r0, 0 +_080506E2: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8050650 + + thumb_func_start sub_80506EC +sub_80506EC: @ 80506EC + push {r4-r6,lr} + ldr r5, =gBattlescriptCurrInstr + ldr r1, [r5] + ldrb r4, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + orrs r4, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + orrs r4, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + orrs r4, r0 + ldr r6, =gBankTarget + ldrb r0, [r6] + bl sub_8050650 + lsls r0, 24 + cmp r0, 0 + beq _08050720 + str r4, [r5] + b _08050762 + .pool +_08050720: + ldr r1, =gBattleMons + ldrb r3, [r6] + movs r0, 0x58 + muls r0, r3 + adds r0, r1 + adds r0, 0x20 + ldrb r0, [r0] + adds r1, r0, 0 + cmp r1, 0xF + beq _08050738 + cmp r1, 0x48 + bne _0805075C +_08050738: + ldr r2, =gLastUsedAbility + strb r0, [r2] + ldr r1, =gBattleCommunication + movs r0, 0x2 + strb r0, [r1, 0x5] + str r4, [r5] + ldrb r1, [r2] + adds r0, r3, 0 + bl RecordAbilityBattle + b _08050762 + .pool +_0805075C: + ldr r0, [r5] + adds r0, 0x5 + str r0, [r5] +_08050762: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80506EC + + thumb_func_start sub_8050768 +sub_8050768: @ 8050768 + push {r4,r5,lr} + ldr r5, =gDisableStructs + ldr r4, =gBankAttacker + ldrb r1, [r4] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r0, r5 + ldrb r0, [r1, 0x9] + cmp r0, 0x3 + bne _080507A0 + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, =gBattleCommunication + movs r0, 0x1 + strb r0, [r1, 0x5] + b _080507CA + .pool +_080507A0: + adds r0, 0x1 + movs r3, 0 + strb r0, [r1, 0x9] + ldr r2, =gBattleTextBuff1 + movs r0, 0xFD + strb r0, [r2] + movs r0, 0x1 + strb r0, [r2, 0x1] + strb r0, [r2, 0x2] + strb r0, [r2, 0x3] + ldrb r1, [r4] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r0, [r0, 0x9] + strb r0, [r2, 0x4] + movs r0, 0xFF + strb r0, [r2, 0x5] + ldr r0, =gBattleCommunication + strb r3, [r0, 0x5] +_080507CA: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8050768 + + thumb_func_start atk86_stockpiletobasedamage +atk86_stockpiletobasedamage: @ 80507E4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + ldr r3, =gBattlescriptCurrInstr + ldr r1, [r3] + ldrb r2, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + orrs r2, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + orrs r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + orrs r2, r0 + ldr r7, =gDisableStructs + ldr r6, =gBankAttacker + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r7 + ldrb r0, [r0, 0x9] + cmp r0, 0 + bne _08050828 + str r2, [r3] + b _080508CA + .pool +_08050828: + ldr r0, =gBattleCommunication + ldrb r0, [r0, 0x6] + cmp r0, 0x1 + beq _080508B0 + ldr r0, =gBattleMoveDamage + mov r8, r0 + ldr r4, =gUnknown_0202428E + ldr r5, =gBankTarget + ldrb r0, [r5] + bl GetBankIdentity + movs r1, 0x1 + ands r1, r0 + lsls r1, 1 + adds r1, r4 + ldrh r3, [r1] + ldrb r0, [r6] + movs r4, 0x58 + muls r0, r4 + ldr r2, =gBattleMons + adds r0, r2 + ldrb r1, [r5] + muls r1, r4 + adds r1, r2 + ldr r2, =gCurrentMove + ldrh r2, [r2] + movs r4, 0 + str r4, [sp] + str r4, [sp, 0x4] + ldrb r4, [r6] + str r4, [sp, 0x8] + ldrb r4, [r5] + str r4, [sp, 0xC] + bl sub_806957C + ldrb r2, [r6] + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r7 + ldrb r1, [r1, 0x9] + adds r3, r0, 0 + muls r3, r1 + mov r1, r8 + str r3, [r1] + ldr r2, =gBattleScripting + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r7 + ldrb r0, [r0, 0x9] + strb r0, [r2, 0x18] + ldr r1, =gProtectStructs + ldrb r0, [r6] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 28 + cmp r0, 0 + bge _080508B0 + lsls r0, r3, 4 + subs r0, r3 + movs r1, 0xA + bl __divsi3 + mov r1, r8 + str r0, [r1] +_080508B0: + ldr r2, =gDisableStructs + ldr r0, =gBankAttacker + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strb r1, [r0, 0x9] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_080508CA: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk86_stockpiletobasedamage + + thumb_func_start atk87_stockpiletohprecovery +atk87_stockpiletohprecovery: @ 8050904 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r7, =gBattlescriptCurrInstr + ldr r1, [r7] + ldrb r2, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + orrs r2, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + orrs r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + orrs r2, r0 + ldr r0, =gDisableStructs + mov r8, r0 + ldr r6, =gBankAttacker + ldrb r3, [r6] + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + mov r1, r8 + adds r4, r0, r1 + ldrb r1, [r4, 0x9] + cmp r1, 0 + bne _08050954 + str r2, [r7] + ldr r0, =gBattleCommunication + strb r1, [r0, 0x5] + b _080509D0 + .pool +_08050954: + ldr r1, =gBattleMons + movs r0, 0x58 + muls r0, r3 + adds r1, r0, r1 + ldrh r0, [r1, 0x2C] + ldrh r3, [r1, 0x28] + cmp r0, r3 + bne _08050984 + movs r0, 0 + strb r0, [r4, 0x9] + str r2, [r7] + ldr r1, =gBankTarget + ldrb r0, [r6] + strb r0, [r1] + ldr r1, =gBattleCommunication + movs r0, 0x1 + strb r0, [r1, 0x5] + b _080509D0 + .pool +_08050984: + ldr r5, =gBattleMoveDamage + ldrh r0, [r1, 0x2C] + ldrb r1, [r4, 0x9] + movs r2, 0x3 + subs r2, r1 + movs r4, 0x1 + adds r1, r4, 0 + lsls r1, r2 + bl __divsi3 + str r0, [r5] + cmp r0, 0 + bne _080509A0 + str r4, [r5] +_080509A0: + ldr r0, [r5] + negs r0, r0 + str r0, [r5] + ldr r3, =gBattleScripting + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r8 + ldrb r0, [r0, 0x9] + movs r2, 0 + strb r0, [r3, 0x18] + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r8 + strb r2, [r0, 0x9] + ldr r0, [r7] + adds r0, 0x5 + str r0, [r7] + ldr r1, =gBankTarget + ldrb r0, [r6] + strb r0, [r1] +_080509D0: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk87_stockpiletohprecovery + + thumb_func_start atk88_negativedamage +atk88_negativedamage: @ 80509E8 + push {lr} + ldr r2, =gBattleMoveDamage + ldr r0, =gUnknown_020241F4 + ldr r0, [r0] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + negs r0, r0 + str r0, [r2] + cmp r0, 0 + bne _08050A04 + movs r0, 0x1 + negs r0, r0 + str r0, [r2] +_08050A04: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end atk88_negativedamage + + thumb_func_start sub_8050A1C +sub_8050A1C: @ 8050A1C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r8, r3 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r5, r2, 24 + movs r0, 0 + mov r9, r0 + mov r10, r0 + movs r0, 0x40 + ands r0, r5 + cmp r0, 0 + beq _08050A50 + ldr r0, =gActiveBank + ldr r1, =gBankAttacker + b _08050A54 + .pool +_08050A50: + ldr r0, =gActiveBank + ldr r1, =gBankTarget +_08050A54: + ldrb r1, [r1] + strb r1, [r0] + movs r0, 0xBF + ands r5, r0 + movs r0, 0x80 + ands r0, r5 + cmp r0, 0 + beq _08050A6E + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_08050A6E: + movs r0, 0x7F + ands r5, r0 + movs r0, 0x20 + ands r0, r5 + cmp r0, 0 + beq _08050A84 + mov r0, r10 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 +_08050A84: + movs r0, 0xDF + ands r5, r0 + ldr r1, =gBattleTextBuff1 + movs r4, 0 + movs r2, 0xFD + strb r2, [r1] + movs r0, 0x5 + strb r0, [r1, 0x1] + strb r7, [r1, 0x2] + movs r3, 0x1 + negs r3, r3 + mov r12, r3 + movs r0, 0xFF + strb r0, [r1, 0x3] + lsls r0, r6, 24 + cmp r0, 0 + blt _08050AA8 + b _08050D8C +_08050AA8: + ldr r4, =gSideTimers + ldr r1, =gActiveBank + ldrb r0, [r1] + bl GetBankIdentity + movs r1, 0x1 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x4] + cmp r0, 0 + beq _08050B48 + mov r2, r9 + cmp r2, 0 + bne _08050B48 + ldr r0, =gCurrentMove + ldrh r0, [r0] + cmp r0, 0xAE + beq _08050B78 + cmp r5, 0x1 + bne _08050B68 + ldr r4, =gSpecialStatuses + ldr r3, =gActiveBank + ldrb r0, [r3] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r0, [r1] + lsls r0, 31 + cmp r0, 0 + beq _08050B10 + ldr r0, =gBattlescriptCurrInstr + mov r4, r8 + str r4, [r0] + b _08050B68 + .pool +_08050B10: + mov r0, r8 + bl b_movescr_stack_push + ldr r1, =gBattleScripting + ldr r6, =gActiveBank + ldrb r0, [r6] + strb r0, [r1, 0x17] + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DAE03 + str r0, [r1] + ldrb r1, [r6] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + b _08050B68 + .pool +_08050B48: + ldr r0, =gCurrentMove + ldrh r0, [r0] + cmp r0, 0xAE + beq _08050B78 + mov r0, r10 + cmp r0, 0x1 + beq _08050B78 + movs r0, 0 + bl sub_80464AC + lsls r0, 24 + cmp r0, 0 + beq _08050B78 + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082D9F1C + str r0, [r1] +_08050B68: + movs r0, 0x1 + b _08050E80 + .pool +_08050B78: + ldr r2, =gBattleMons + ldr r1, =gActiveBank + ldrb r3, [r1] + movs r4, 0x58 + adds r0, r3, 0 + muls r0, r4 + adds r0, r2 + adds r0, 0x20 + ldrb r0, [r0] + mov r10, r2 + cmp r0, 0x1D + beq _08050B94 + cmp r0, 0x49 + bne _08050C2C +_08050B94: + mov r0, r9 + cmp r0, 0 + bne _08050C2C + ldr r0, =gCurrentMove + ldrh r0, [r0] + cmp r0, 0xAE + beq _08050C2C + cmp r5, 0x1 + bne _08050B68 + ldr r4, =gSpecialStatuses + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0] + lsls r0, 31 + cmp r0, 0 + beq _08050BD4 + ldr r0, =gBattlescriptCurrInstr + mov r1, r8 + str r1, [r0] + b _08050B68 + .pool +_08050BD4: + mov r0, r8 + bl b_movescr_stack_push + ldr r1, =gBattleScripting + ldr r2, =gActiveBank + ldrb r0, [r2] + strb r0, [r1, 0x17] + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DB5C7 + str r0, [r1] + ldr r1, =gLastUsedAbility + ldrb r0, [r2] + movs r3, 0x58 + muls r0, r3 + add r0, r10 + adds r0, 0x20 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r2] + ldrb r1, [r1] + bl RecordAbilityBattle + ldr r6, =gActiveBank + ldrb r1, [r6] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + b _08050B68 + .pool +_08050C2C: + ldr r1, =gActiveBank + ldrb r0, [r1] + movs r4, 0x58 + muls r0, r4 + add r0, r10 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x33 + bne _08050C8C + mov r2, r9 + cmp r2, 0 + bne _08050C8C + cmp r7, 0x6 + bne _08050C8C + cmp r5, 0x1 + bne _08050B68 + mov r0, r8 + bl b_movescr_stack_push + ldr r1, =gBattleScripting + ldr r3, =gActiveBank + ldrb r0, [r3] + strb r0, [r1, 0x17] + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DB62F + str r0, [r1] + ldr r1, =gLastUsedAbility + ldrb r0, [r3] + muls r0, r4 + add r0, r10 + adds r0, 0x20 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r3] + ldrb r1, [r1] + bl RecordAbilityBattle + b _08050B68 + .pool +_08050C8C: + ldr r4, =gActiveBank + ldrb r0, [r4] + movs r4, 0x58 + muls r0, r4 + add r0, r10 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x34 + bne _08050CF0 + mov r0, r9 + cmp r0, 0 + bne _08050CF0 + cmp r7, 0x1 + bne _08050CF0 + cmp r5, 0x1 + beq _08050CAE + b _08050B68 +_08050CAE: + mov r0, r8 + bl b_movescr_stack_push + ldr r1, =gBattleScripting + ldr r2, =gActiveBank + ldrb r0, [r2] + strb r0, [r1, 0x17] + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DB62F + str r0, [r1] + ldr r1, =gLastUsedAbility + ldrb r0, [r2] + muls r0, r4 + add r0, r10 + adds r0, 0x20 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r2] + ldrb r1, [r1] + bl RecordAbilityBattle + b _08050B68 + .pool +_08050CF0: + ldr r3, =gActiveBank + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + add r0, r10 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x13 + bne _08050D08 + cmp r5, 0 + bne _08050D08 + b _08050B68 +_08050D08: + lsls r0, r6, 24 + asrs r0, 28 + movs r1, 0x7 + ands r0, r1 + negs r0, r0 + lsls r0, 24 + ldr r3, =gBattleTextBuff2 + movs r4, 0 + movs r1, 0xFD + strb r1, [r3] + movs r2, 0x1 + lsrs r6, r0, 24 + asrs r0, 24 + subs r1, 0xFF + cmp r0, r1 + bne _08050D32 + strb r4, [r3, 0x1] + movs r0, 0xD3 + strb r0, [r3, 0x2] + strb r4, [r3, 0x3] + movs r2, 0x4 +_08050D32: + adds r0, r2, r3 + strb r4, [r0] + adds r2, 0x1 + adds r1, r2, r3 + movs r0, 0xD4 + strb r0, [r1] + adds r2, 0x1 + adds r0, r2, r3 + strb r4, [r0] + adds r2, 0x1 + adds r1, r2, r3 + movs r0, 0xFF + strb r0, [r1] + ldr r4, =gActiveBank + ldrb r2, [r4] + movs r0, 0x58 + muls r0, r2 + adds r0, r7, r0 + mov r1, r10 + adds r1, 0x18 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _08050DE2 + movs r1, 0 + ldr r0, =gBankTarget + ldrb r0, [r0] + ldr r3, =gBattleCommunication + mov r8, r3 + cmp r0, r2 + bne _08050D76 + movs r1, 0x1 +_08050D76: + mov r4, r8 + strb r1, [r4, 0x5] + b _08050E10 + .pool +_08050D8C: + asrs r6, r0, 28 + movs r0, 0x7 + ands r6, r0 + ldr r3, =gBattleTextBuff2 + strb r2, [r3] + movs r2, 0x1 + cmp r6, 0x2 + bne _08050DA6 + strb r4, [r3, 0x1] + movs r0, 0xD1 + strb r0, [r3, 0x2] + strb r4, [r3, 0x3] + movs r2, 0x4 +_08050DA6: + adds r0, r2, r3 + strb r4, [r0] + adds r2, 0x1 + adds r1, r2, r3 + movs r0, 0xD2 + strb r0, [r1] + adds r2, 0x1 + adds r0, r2, r3 + strb r4, [r0] + adds r2, 0x1 + adds r1, r2, r3 + ldrb r0, [r1] + mov r2, r12 + orrs r0, r2 + strb r0, [r1] + ldr r2, =gBattleMons + ldr r4, =gActiveBank + ldrb r3, [r4] + movs r0, 0x58 + muls r0, r3 + adds r0, r7, r0 + adds r1, r2, 0 + adds r1, 0x18 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + mov r10, r2 + cmp r0, 0xC + bne _08050DFC +_08050DE2: + ldr r1, =gBattleCommunication + movs r0, 0x2 + strb r0, [r1, 0x5] + mov r8, r1 + b _08050E10 + .pool +_08050DFC: + movs r1, 0 + ldr r0, =gBankTarget + ldrb r0, [r0] + ldr r2, =gBattleCommunication + mov r8, r2 + cmp r0, r3 + bne _08050E0C + movs r1, 0x1 +_08050E0C: + mov r3, r8 + strb r1, [r3, 0x5] +_08050E10: + ldr r2, =gActiveBank + ldrb r0, [r2] + movs r4, 0x58 + adds r1, r0, 0 + muls r1, r4 + adds r1, r7, r1 + mov r3, r10 + adds r3, 0x18 + adds r1, r3 + lsls r0, r6, 24 + asrs r0, 24 + ldrb r6, [r1] + adds r0, r6 + strb r0, [r1] + ldrb r0, [r2] + muls r0, r4 + adds r0, r7, r0 + adds r1, r0, r3 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0 + bge _08050E40 + movs r0, 0 + strb r0, [r1] +_08050E40: + ldr r1, =gActiveBank + ldrb r0, [r1] + muls r0, r4 + adds r0, r7, r0 + adds r1, r0, r3 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0xC + ble _08050E56 + movs r0, 0xC + strb r0, [r1] +_08050E56: + mov r2, r8 + ldrb r0, [r2, 0x5] + cmp r0, 0x2 + bne _08050E7E + movs r3, 0x1 + ands r3, r5 + cmp r3, 0 + beq _08050E70 + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] +_08050E70: + mov r4, r8 + ldrb r0, [r4, 0x5] + cmp r0, 0x2 + bne _08050E7E + cmp r3, 0 + bne _08050E7E + b _08050B68 +_08050E7E: + movs r0, 0 +_08050E80: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8050A1C + + thumb_func_start atk89_statbuffchange +atk89_statbuffchange: @ 8050EA0 + push {r4,r5,lr} + ldr r5, =gBattlescriptCurrInstr + ldr r2, [r5] + ldrb r3, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r3, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r3, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r3, r0 + ldr r0, =gBattleScripting + ldrb r4, [r0, 0x1A] + movs r0, 0xF0 + ands r0, r4 + lsls r0, 24 + asrs r0, 24 + movs r1, 0xF + ands r1, r4 + ldrb r2, [r2, 0x1] + bl sub_8050A1C + lsls r0, 24 + cmp r0, 0 + bne _08050EDC + ldr r0, [r5] + adds r0, 0x6 + str r0, [r5] +_08050EDC: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end atk89_statbuffchange + + thumb_func_start atk8A_normalisebuffs +atk8A_normalisebuffs: @ 8050EEC + push {r4-r7,lr} + movs r2, 0 + ldr r0, =gNoOfAllBanks + ldrb r1, [r0] + ldr r0, =gBattlescriptCurrInstr + mov r12, r0 + cmp r2, r1 + bge _08050F24 + ldr r0, =gBattleMons + movs r4, 0x6 + adds r5, r1, 0 + movs r7, 0x58 + adds r6, r0, 0 + adds r6, 0x18 +_08050F08: + adds r3, r2, 0x1 + movs r1, 0x7 + adds r0, r2, 0 + muls r0, r7 + adds r0, r6 + adds r0, 0x7 +_08050F14: + strb r4, [r0] + subs r0, 0x1 + subs r1, 0x1 + cmp r1, 0 + bge _08050F14 + adds r2, r3, 0 + cmp r2, r5 + blt _08050F08 +_08050F24: + mov r1, r12 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk8A_normalisebuffs + + thumb_func_start atk8B_setbide +atk8B_setbide: @ 8050F40 + push {r4,r5,lr} + ldr r4, =gBattleMons + ldr r3, =gBankAttacker + ldrb r0, [r3] + movs r5, 0x58 + adds r2, r0, 0 + muls r2, r5 + adds r4, 0x50 + adds r2, r4 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 5 + orrs r0, r1 + str r0, [r2] + ldr r1, =gUnknown_02024268 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r1 + ldr r1, =gCurrentMove + ldrh r1, [r1] + movs r2, 0 + strh r1, [r0] + ldr r1, =gUnknown_020241F8 + ldrb r0, [r3] + lsls r0, 2 + adds r0, r1 + str r2, [r0] + ldrb r0, [r3] + adds r1, r0, 0 + muls r1, r5 + adds r1, r4 + ldr r0, [r1] + movs r2, 0x80 + lsls r2, 2 + orrs r0, r2 + str r0, [r1] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end atk8B_setbide + + thumb_func_start atk8C_confuseifrepeatingattackends +atk8C_confuseifrepeatingattackends: @ 8050FB0 + push {lr} + ldr r1, =gBattleMons + ldr r0, =gBankAttacker + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0xC0 + lsls r1, 4 + ands r0, r1 + cmp r0, 0 + bne _08050FD2 + ldr r1, =gBattleCommunication + movs r0, 0x75 + strb r0, [r1, 0x3] +_08050FD2: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end atk8C_confuseifrepeatingattackends + + thumb_func_start atk8D_setloopcounter +atk8D_setloopcounter: @ 8050FF0 + push {r4,r5,lr} + ldr r0, =gBattlescriptCurrInstr + ldr r0, [r0] + ldrb r1, [r0, 0x1] + cmp r1, 0 + beq _0805100C + ldr r0, =gUnknown_02024212 + strb r1, [r0] + b _08051026 + .pool +_0805100C: + ldr r4, =gUnknown_02024212 + bl Random + movs r5, 0x3 + ands r0, r5 + strb r0, [r4] + cmp r0, 0x1 + bls _08051022 + bl Random + ands r0, r5 +_08051022: + adds r0, 0x2 + strb r0, [r4] +_08051026: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end atk8D_setloopcounter + + thumb_func_start atk8E_cmd8e +atk8E_cmd8e: @ 805103C + ldr r1, =gBattleScripting + movs r2, 0 + movs r0, 0xFD + strb r0, [r1, 0x8] + movs r0, 0x1 + strb r0, [r1, 0x9] + strb r0, [r1, 0xA] + strb r0, [r1, 0xB] + strb r2, [r1, 0xC] + movs r0, 0xFF + strb r0, [r1, 0xD] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .pool + thumb_func_end atk8E_cmd8e + + thumb_func_start sub_8051064 +sub_8051064: @ 8051064 + push {r4-r7,lr} + ldr r6, =gBattleMons + ldr r7, =gBankAttacker + ldrb r0, [r7] + movs r5, 0x58 + adds r1, r0, 0 + muls r1, r5 + adds r1, r6 + adds r1, 0x2A + ldr r4, =gBankTarget + ldrb r3, [r4] + adds r0, r3, 0 + muls r0, r5 + adds r0, r6 + adds r0, 0x2A + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bcc _080510AC + ldr r0, =gBattleStruct + ldr r1, [r0] + adds r1, r3, r1 + adds r1, 0x58 + ldr r2, =gBattlePartyID + lsls r0, r3, 1 + b _08051108 + .pool +_080510AC: + bl Random + movs r3, 0xFF + ands r3, r0 + ldrb r0, [r7] + muls r0, r5 + adds r0, r6 + adds r0, 0x2A + ldrb r2, [r0] + ldrb r4, [r4] + adds r0, r4, 0 + muls r0, r5 + adds r0, r6 + adds r0, 0x2A + ldrb r1, [r0] + adds r2, r1 + adds r0, r3, 0 + muls r0, r2 + asrs r0, 8 + adds r0, 0x1 + lsrs r1, 2 + cmp r0, r1 + bhi _080510FC + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + movs r0, 0 + b _08051116 + .pool +_080510FC: + ldr r0, =gBattleStruct + ldr r1, [r0] + adds r1, r4, r1 + adds r1, 0x58 + ldr r2, =gBattlePartyID + lsls r0, r4, 1 +_08051108: + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1] + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DADD8 + str r0, [r1] + movs r0, 0x1 +_08051116: + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8051064 + + thumb_func_start sub_805112C +sub_805112C: @ 805112C + 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] + ldr r5, =gBattleTypeFlags + ldr r0, [r5] + movs r1, 0x8 + ands r0, r1 + cmp r0, 0 + bne _0805114A + b _08051410 +_0805114A: + ldr r4, =gBankTarget + ldrb r0, [r4] + bl GetBankSide + lsls r0, 24 + ldr r1, =gEnemyParty + str r1, [sp] + cmp r0, 0 + bne _08051160 + ldr r0, =gPlayerParty + str r0, [sp] +_08051160: + ldr r2, [r5] + movs r1, 0x81 + lsls r1, 1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, r1 + beq _08051182 + ldr r1, =0x02000100 + adds r0, r2, 0 + ands r0, r1 + cmp r0, r1 + beq _08051182 + movs r0, 0x80 + lsls r0, 15 + ands r0, r2 + cmp r0, 0 + beq _080511C8 +_08051182: + ldr r2, =gBankTarget + ldrb r1, [r2] + movs r0, 0x2 + ands r0, r1 + adds r1, r2, 0 + cmp r0, 0 + beq _080511AC + movs r0, 0x3 + mov r9, r0 + movs r0, 0x6 + b _080511B2 + .pool +_080511AC: + movs r0, 0 + mov r9, r0 + movs r0, 0x3 +_080511B2: + mov r8, r0 + movs r0, 0x3 + mov r10, r0 + movs r0, 0x1 + str r0, [sp, 0x8] + ldr r2, =gBattlePartyID + ldrb r1, [r1] + b _0805128E + .pool +_080511C8: + movs r0, 0x42 + ands r0, r2 + cmp r0, 0x42 + beq _080511DA + ldr r1, =0x02000040 + adds r0, r2, 0 + ands r0, r1 + cmp r0, r1 + bne _0805121C +_080511DA: + ldrb r0, [r4] + bl sub_806D864 + lsls r0, 24 + lsrs r0, 24 + bl sub_806D82C + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bne _080511FC + movs r1, 0x3 + mov r9, r1 + movs r0, 0x6 + b _08051202 + .pool +_080511FC: + movs r1, 0 + mov r9, r1 + movs r0, 0x3 +_08051202: + mov r8, r0 + movs r1, 0x3 + mov r10, r1 + movs r0, 0x1 + str r0, [sp, 0x8] + ldr r2, =gBattlePartyID + ldr r0, =gBankTarget + ldrb r1, [r0] + b _0805128E + .pool +_0805121C: + movs r0, 0x80 + lsls r0, 8 + ands r0, r2 + cmp r0, 0 + beq _08051274 + ldrb r0, [r4] + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _08051240 + movs r1, 0 + mov r9, r1 + movs r0, 0x6 + mov r8, r0 + mov r10, r0 + movs r1, 0x2 + b _08051260 +_08051240: + ldrb r1, [r4] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08051252 + movs r0, 0x3 + mov r9, r0 + movs r1, 0x6 + b _08051258 +_08051252: + movs r0, 0 + mov r9, r0 + movs r1, 0x3 +_08051258: + mov r8, r1 + movs r0, 0x3 + mov r10, r0 + movs r1, 0x1 +_08051260: + str r1, [sp, 0x8] + ldr r2, =gBattlePartyID + ldr r0, =gBankTarget + ldrb r1, [r0] + b _0805128E + .pool +_08051274: + movs r0, 0x1 + ands r2, r0 + cmp r2, 0 + beq _080512A4 + movs r0, 0 + mov r9, r0 + movs r1, 0x6 + mov r8, r1 + mov r10, r1 + movs r0, 0x2 + str r0, [sp, 0x8] + ldr r2, =gBattlePartyID + ldrb r1, [r4] +_0805128E: + lsls r0, r1, 1 + adds r0, r2 + ldrh r7, [r0] + movs r0, 0x2 + eors r1, r0 + lsls r1, 1 + adds r1, r2 + ldrh r5, [r1] + b _080512BE + .pool +_080512A4: + movs r1, 0 + mov r9, r1 + movs r0, 0x6 + mov r8, r0 + mov r10, r0 + movs r1, 0x1 + str r1, [sp, 0x8] + ldr r1, =gBattlePartyID + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r5, [r0] + adds r7, r5, 0 +_080512BE: + mov r6, r9 + cmp r6, r8 + bge _080512FC +_080512C4: + movs r0, 0x64 + muls r0, r6 + ldr r1, [sp] + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _080512F6 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _080512F6 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _080512F6 + ldr r0, [sp, 0x4] + adds r0, 0x1 + str r0, [sp, 0x4] +_080512F6: + adds r6, 0x1 + cmp r6, r8 + blt _080512C4 +_080512FC: + ldr r1, [sp, 0x4] + ldr r0, [sp, 0x8] + cmp r1, r0 + bgt _08051328 + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08051414 + .pool +_08051328: + bl sub_8051064 + lsls r0, 24 + cmp r0, 0 + beq _08051378 +_08051332: + bl Random + lsls r0, 16 + lsrs r0, 16 + mov r1, r10 + bl __modsi3 + adds r6, r0, 0 + add r6, r9 + cmp r6, r7 + beq _08051332 + cmp r6, r5 + beq _08051332 + movs r0, 0x64 + muls r0, r6 + ldr r1, [sp] + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _08051332 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0x1 + beq _08051332 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _08051332 +_08051378: + ldr r4, =gBankTarget + ldrb r0, [r4] + ldr r1, =gBattleStruct + ldr r1, [r1] + adds r0, r1 + adds r0, 0x5C + strb r6, [r0] + bl sub_81B1250 + lsls r0, 24 + cmp r0, 0 + bne _08051396 + ldrb r0, [r4] + bl sub_803BDA0 +_08051396: + ldr r0, =gBattleTypeFlags + ldr r2, [r0] + movs r1, 0x81 + lsls r1, 1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, r1 + beq _080513C0 + movs r0, 0x42 + ands r0, r2 + cmp r0, 0x42 + beq _080513C0 + ldr r1, =0x02000100 + adds r0, r2, 0 + ands r0, r1 + cmp r0, r1 + beq _080513C0 + ldr r0, =0x02000040 + ands r2, r0 + cmp r2, r0 + bne _080513DE +_080513C0: + ldr r5, =gBankTarget + ldrb r0, [r5] + lsls r4, r6, 24 + lsrs r4, 24 + adds r1, r4, 0 + movs r2, 0 + bl sub_81B8E80 + ldrb r1, [r5] + movs r0, 0x2 + eors r0, r1 + adds r1, r4, 0 + movs r2, 0x1 + bl sub_81B8E80 +_080513DE: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 15 + ands r0, r1 + cmp r0, 0 + beq _08051414 + ldr r0, =gBankTarget + ldrb r0, [r0] + lsls r1, r6, 24 + lsrs r1, 24 + bl sub_80571DC + b _08051414 + .pool +_08051410: + bl sub_8051064 +_08051414: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_805112C + + thumb_func_start sub_8051424 +sub_8051424: @ 8051424 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r6, 0 + ldr r2, =gBattleMons + ldr r3, =gBankAttacker + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + adds r1, r2, 0 + adds r1, 0xC + adds r0, r1 + ldrh r0, [r0] + mov r8, r2 + cmp r0, 0 + beq _08051466 + movs r5, 0x58 + adds r2, r1, 0 +_0805144C: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x3 + bhi _08051466 + lsls r1, r6, 1 + ldrb r0, [r3] + muls r0, r5 + adds r1, r0 + adds r1, r2 + ldrh r0, [r1] + cmp r0, 0 + bne _0805144C +_08051466: + movs r3, 0 + cmp r3, r6 + bcs _080514E8 + ldr r0, =gBattleMoves + mov r10, r0 + ldr r5, =gBattleMons + mov r12, r5 + ldr r7, =gBankAttacker + ldrb r0, [r7] + movs r4, 0x58 + adds r5, r0, 0 + muls r5, r4 + movs r0, 0xC + add r0, r12 + mov r9, r0 +_08051484: + lsls r0, r3, 1 + adds r0, r5 + add r0, r9 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + add r0, r10 + ldrb r2, [r0, 0x2] + cmp r2, 0x9 + bne _080514C6 + mov r0, r8 + adds r1, r5, r0 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0x7 + beq _080514B2 + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x7 + bne _080514C4 +_080514B2: + movs r2, 0x7 + b _080514C6 + .pool +_080514C4: + movs r2, 0 +_080514C6: + ldrb r0, [r7] + muls r0, r4 + add r0, r12 + adds r1, r0, 0 + adds r1, 0x21 + ldrb r1, [r1] + cmp r2, r1 + beq _080514DE + adds r0, 0x22 + ldrb r0, [r0] + cmp r2, r0 + bne _080514E8 +_080514DE: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, r6 + bcc _08051484 +_080514E8: + cmp r3, r6 + bne _0805150C + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _080515B0 + .pool +_0805150C: + movs r7, 0x3 + ldr r5, =gBattleMoves + mov r9, r5 +_08051512: + bl Random + adds r3, r0, 0 + ands r3, r7 + cmp r3, r6 + bcs _08051512 + ldr r4, =gBattleMons + lsls r1, r3, 1 + ldr r3, =gBankAttacker + ldrb r2, [r3] + movs r0, 0x58 + adds r5, r2, 0 + muls r5, r0 + adds r1, r5 + adds r0, r4, 0 + adds r0, 0xC + adds r1, r0 + ldrh r1, [r1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + add r0, r9 + ldrb r2, [r0, 0x2] + mov r8, r4 + adds r4, r3, 0 + cmp r2, 0x9 + bne _08051572 + mov r0, r8 + adds r2, r5, r0 + adds r0, r2, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0x7 + beq _08051560 + adds r0, r2, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x7 + bne _08051570 +_08051560: + movs r2, 0x7 + b _08051572 + .pool +_08051570: + movs r2, 0 +_08051572: + ldrb r0, [r4] + movs r3, 0x58 + muls r0, r3 + add r0, r8 + adds r1, r0, 0 + adds r1, 0x21 + ldrb r5, [r1] + cmp r2, r5 + beq _08051512 + adds r0, 0x22 + ldrb r0, [r0] + cmp r2, r0 + beq _08051512 + strb r2, [r1] + ldrb r0, [r4] + muls r0, r3 + add r0, r8 + adds r0, 0x22 + strb r2, [r0] + ldr r1, =gBattleTextBuff1 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x3 + strb r0, [r1, 0x1] + strb r2, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_080515B0: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8051424 + + thumb_func_start atk91_givemoney +atk91_givemoney: @ 80515C8 + push {r4,lr} + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + ldr r1, =0x02000002 + ands r0, r1 + cmp r0, 0 + bne _08051650 + ldr r1, =gUnknown_0202432E + ldrh r0, [r1] + cmp r0, 0 + beq _08051650 + adds r1, r0, 0 + ldr r0, =gBattleStruct + ldr r0, [r0] + adds r0, 0x4A + ldrb r0, [r0] + adds r4, r1, 0 + muls r4, r0 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + movs r1, 0x92 + lsls r1, 3 + adds r0, r1 + adds r1, r4, 0 + bl add_money + ldr r1, =gBattleTextBuff1 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x1 + strb r0, [r1, 0x1] + movs r0, 0x2 + strb r0, [r1, 0x2] + movs r0, 0x5 + strb r0, [r1, 0x3] + strb r4, [r1, 0x4] + movs r0, 0xFF + lsls r0, 8 + ands r4, r0 + lsrs r4, 8 + strb r4, [r1, 0x5] + movs r0, 0xFF + strb r0, [r1, 0x6] + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, =gUnknown_082DB307 + str r0, [r4] + b _08051658 + .pool +_08051650: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_08051658: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atk91_givemoney + + thumb_func_start atk92_setlightscreen +atk92_setlightscreen: @ 8051664 + push {r4-r6,lr} + ldr r5, =gBankAttacker + ldrb r0, [r5] + bl GetBankIdentity + ldr r4, =gUnknown_0202428E + movs r6, 0x1 + adds r1, r6, 0 + ands r1, r0 + lsls r1, 1 + adds r1, r4 + ldrh r1, [r1] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080516A4 + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, =gBattleCommunication + movs r0, 0 + b _08051718 + .pool +_080516A4: + ldrb r0, [r5] + bl GetBankIdentity + adds r1, r6, 0 + ands r1, r0 + lsls r1, 1 + adds r1, r4 + ldrh r0, [r1] + movs r2, 0x2 + orrs r0, r2 + strh r0, [r1] + ldrb r0, [r5] + bl GetBankIdentity + ldr r4, =gSideTimers + adds r1, r6, 0 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x5 + strb r1, [r0, 0x2] + ldrb r0, [r5] + bl GetBankIdentity + adds r1, r6, 0 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r5] + strb r1, [r0, 0x3] + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + ands r0, r6 + cmp r0, 0 + beq _08051714 + movs r0, 0x1 + bl sub_8069DEC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _08051714 + ldr r1, =gBattleCommunication + movs r0, 0x4 + b _08051718 + .pool +_08051714: + ldr r1, =gBattleCommunication + movs r0, 0x3 +_08051718: + strb r0, [r1, 0x5] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end atk92_setlightscreen + + thumb_func_start atk93_ko_move +atk93_ko_move: @ 8051730 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r7, =gBattleMons + ldr r6, =gBankTarget + ldrb r2, [r6] + movs r5, 0x58 + adds r0, r2, 0 + muls r0, r5 + adds r1, r0, r7 + ldrh r0, [r1, 0x2E] + cmp r0, 0xAF + bne _08051768 + ldr r1, =gEnigmaBerries + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r4, [r0, 0x7] + ldrb r6, [r0, 0x1A] + b _08051782 + .pool +_08051768: + ldrh r0, [r1, 0x2E] + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r0, [r6] + muls r0, r5 + adds r0, r7 + ldrh r0, [r0, 0x2E] + bl ItemId_GetHoldEffectParam + lsls r0, 24 + lsrs r6, r0, 24 +_08051782: + ldr r1, =gUnknown_0202420F + ldr r5, =gBankTarget + ldrb r0, [r5] + strb r0, [r1] + cmp r4, 0x27 + bne _080517C0 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, r6 + bcs _080517C0 + ldrb r0, [r5] + movs r1, 0x27 + bl b_history__record_item_x12_of_player + ldr r2, =gSpecialStatuses + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] +_080517C0: + ldr r1, =gBattleMons + ldr r2, =gBankTarget + ldrb r3, [r2] + movs r6, 0x58 + adds r0, r3, 0 + muls r0, r6 + adds r5, r0, r1 + adds r0, r5, 0 + adds r0, 0x20 + ldrb r4, [r0] + mov r8, r1 + mov r9, r2 + cmp r4, 0x5 + bne _0805181C + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r0, =gLastUsedAbility + strb r4, [r0] + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DB552 + str r0, [r1] + mov r1, r9 + ldrb r0, [r1] + movs r1, 0x5 + bl RecordAbilityBattle + b _08051A70 + .pool +_0805181C: + ldr r1, =gStatuses3 + lsls r0, r3, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x18 + ands r0, r1 + cmp r0, 0 + bne _080518A0 + ldr r1, =gBattleMoves + ldr r0, =gCurrentMove + ldrh r0, [r0] + lsls r2, r0, 1 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + ldr r7, =gBankAttacker + ldrb r0, [r7] + muls r0, r6 + add r0, r8 + adds r0, 0x2A + ldrb r0, [r0] + adds r1, r5, 0 + adds r1, 0x2A + ldrb r1, [r1] + subs r0, r1 + ldrb r2, [r2, 0x3] + adds r0, r2 + lsls r0, 16 + lsrs r4, r0, 16 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + adds r0, 0x1 + cmp r0, r4 + blt _08051870 + b _08051A08 +_08051870: + ldrb r0, [r7] + adds r1, r0, 0 + muls r1, r6 + add r1, r8 + adds r1, 0x2A + mov r2, r9 + ldrb r0, [r2] + muls r0, r6 + add r0, r8 + adds r0, 0x2A + ldrb r1, [r1] + movs r4, 0x1 + ldrb r0, [r0] + cmp r1, r0 + bcs _08051936 + b _08051A08 + .pool +_080518A0: + ldr r1, =gDisableStructs + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + adds r0, r1 + ldr r1, =gBankAttacker + ldrb r0, [r0, 0x15] + adds r7, r1, 0 + ldrb r3, [r7] + cmp r0, r3 + bne _080518CA + ldrb r0, [r7] + muls r0, r6 + add r0, r8 + adds r0, 0x2A + adds r1, r5, 0 + adds r1, 0x2A + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bcs _08051942 +_080518CA: + ldr r1, =gBattleMoves + ldr r0, =gCurrentMove + ldrh r0, [r0] + lsls r2, r0, 1 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + ldr r6, =gBattleMons + ldrb r0, [r7] + movs r5, 0x58 + muls r0, r5 + adds r0, r6 + adds r0, 0x2A + ldrb r1, [r0] + ldr r0, =gBankTarget + mov r8, r0 + ldrb r0, [r0] + muls r0, r5 + adds r0, r6 + adds r0, 0x2A + ldrb r0, [r0] + subs r1, r0 + ldrb r2, [r2, 0x3] + adds r1, r2 + lsls r1, 16 + lsrs r4, r1, 16 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + adds r0, 0x1 + cmp r0, r4 + bge _08051934 + ldrb r0, [r7] + adds r1, r0, 0 + muls r1, r5 + adds r1, r6 + adds r1, 0x2A + mov r2, r8 + ldrb r0, [r2] + muls r0, r5 + adds r0, r6 + adds r0, 0x2A + ldrb r1, [r1] + movs r4, 0x1 + ldrb r0, [r0] + cmp r1, r0 + bcs _08051936 +_08051934: + movs r4, 0 +_08051936: + ldr r3, =gBattleMons + mov r8, r3 + ldr r0, =gBankTarget + mov r9, r0 + cmp r4, 0 + beq _08051A08 +_08051942: + ldr r0, =gProtectStructs + mov r1, r9 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 30 + cmp r0, 0 + bge _08051990 + ldr r1, =gBattleMoveDamage + movs r0, 0x58 + muls r0, r2 + add r0, r8 + ldrh r0, [r0, 0x28] + subs r0, 0x1 + str r0, [r1] + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x40 + b _080519EE + .pool +_08051990: + ldr r0, =gSpecialStatuses + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + lsrs r0, 7 + cmp r0, 0 + beq _080519DC + ldr r1, =gBattleMoveDamage + movs r3, 0x58 + adds r0, r2, 0 + muls r0, r3 + add r0, r8 + ldrh r0, [r0, 0x28] + subs r0, 0x1 + str r0, [r1] + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, =gUnknown_02024208 + mov r2, r9 + ldrb r0, [r2] + muls r0, r3 + add r0, r8 + ldrh r0, [r0, 0x2E] + strh r0, [r1] + b _080519F2 + .pool +_080519DC: + ldr r1, =gBattleMoveDamage + movs r0, 0x58 + muls r0, r2 + add r0, r8 + ldrh r0, [r0, 0x28] + str r0, [r1] + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x10 +_080519EE: + orrs r0, r1 + strb r0, [r2] +_080519F2: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08051A70 + .pool +_08051A08: + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r3, =gBattleMons + ldr r0, =gBankAttacker + ldrb r0, [r0] + movs r2, 0x58 + adds r1, r0, 0 + muls r1, r2 + adds r1, r3 + adds r1, 0x2A + ldr r0, =gBankTarget + ldrb r0, [r0] + muls r0, r2 + adds r0, r3 + adds r0, 0x2A + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bcc _08051A50 + ldr r1, =gBattleCommunication + movs r0, 0 + b _08051A54 + .pool +_08051A50: + ldr r1, =gBattleCommunication + movs r0, 0x1 +_08051A54: + strb r0, [r1, 0x5] + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_08051A70: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk93_ko_move + + thumb_func_start atk94_gethalfcurrentenemyhp +atk94_gethalfcurrentenemyhp: @ 8051A84 + push {lr} + ldr r3, =gBattleMoveDamage + ldr r2, =gBattleMons + ldr r0, =gBankTarget + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x28] + lsrs r0, 1 + str r0, [r3] + cmp r0, 0 + bne _08051AA2 + movs r0, 0x1 + str r0, [r3] +_08051AA2: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end atk94_gethalfcurrentenemyhp + + thumb_func_start sub_8051AC0 +sub_8051AC0: @ 8051AC0 + push {lr} + ldr r2, =gBattleWeather + ldrh r1, [r2] + movs r0, 0x18 + ands r0, r1 + cmp r0, 0 + beq _08051AEC + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, =gBattleCommunication + movs r0, 0x2 + strb r0, [r1, 0x5] + b _08051AFE + .pool +_08051AEC: + movs r0, 0x8 + strh r0, [r2] + ldr r1, =gBattleCommunication + movs r0, 0x3 + strb r0, [r1, 0x5] + ldr r0, =gUnknown_020243D0 + adds r0, 0x28 + movs r1, 0x5 + strb r1, [r0] +_08051AFE: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end sub_8051AC0 + + thumb_func_start sub_8051B18 +sub_8051B18: @ 8051B18 + push {r4,r5,lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0xD + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _08051B36 + b _08051C48 +_08051B36: + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x4D + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + cmp r0, 0 + beq _08051B4C + b _08051C48 +_08051B4C: + ldr r2, =gBattleWeather + ldrh r1, [r2] + movs r0, 0x18 + ands r0, r1 + adds r4, r2, 0 + ldr r5, =gBankAttacker + cmp r0, 0 + beq _08051BDA + ldr r0, =gBattleMons + ldrb r2, [r5] + movs r1, 0x58 + muls r1, r2 + adds r3, r1, r0 + adds r0, r3, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0x5 + beq _08051BD4 + cmp r0, 0x8 + beq _08051BD4 + cmp r0, 0x4 + beq _08051BD4 + adds r0, r3, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x5 + beq _08051BD4 + cmp r0, 0x8 + beq _08051BD4 + cmp r0, 0x4 + beq _08051BD4 + adds r0, r3, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x8 + beq _08051BD4 + ldr r0, =gStatuses3 + lsls r1, r2, 2 + adds r1, r0 + ldr r1, [r1] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08051BD4 + movs r0, 0x80 + lsls r0, 11 + ands r1, r0 + cmp r1, 0 + bne _08051BD4 + ldr r1, =gBattleMoveDamage + ldrh r0, [r3, 0x2C] + lsrs r0, 4 + str r0, [r1] + cmp r0, 0 + bne _08051BDA + movs r0, 0x1 + b _08051BD8 + .pool +_08051BD4: + ldr r1, =gBattleMoveDamage + movs r0, 0 +_08051BD8: + str r0, [r1] +_08051BDA: + ldrh r1, [r4] + movs r4, 0x80 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _08051C50 + ldr r1, =gBattleMons + ldrb r3, [r5] + movs r0, 0x58 + muls r0, r3 + adds r2, r0, r1 + adds r0, r2, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0xF + beq _08051C3C + adds r0, r2, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0xF + beq _08051C3C + ldr r0, =gStatuses3 + lsls r1, r3, 2 + adds r1, r0 + ldr r1, [r1] + adds r0, r1, 0 + ands r0, r4 + cmp r0, 0 + bne _08051C3C + movs r0, 0x80 + lsls r0, 11 + ands r1, r0 + cmp r1, 0 + bne _08051C3C + ldr r1, =gBattleMoveDamage + ldrh r0, [r2, 0x2C] + lsrs r0, 4 + str r0, [r1] + cmp r0, 0 + bne _08051C50 + movs r0, 0x1 + str r0, [r1] + b _08051C50 + .pool +_08051C3C: + ldr r1, =gBattleMoveDamage + movs r0, 0 + str r0, [r1] + b _08051C50 + .pool +_08051C48: + ldr r1, =gBattleMoveDamage + movs r0, 0 + str r0, [r1] + ldr r5, =gBankAttacker +_08051C50: + ldr r0, =gAbsentBankFlags + ldrb r1, [r0] + ldr r2, =gBitTable + ldrb r0, [r5] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08051C6A + ldr r1, =gBattleMoveDamage + movs r0, 0 + str r0, [r1] +_08051C6A: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8051B18 + + thumb_func_start atk97_tryinfatuatetarget +atk97_tryinfatuatetarget: @ 8051C90 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r4, =gBankAttacker + ldrb r0, [r4] + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _08051CC8 + ldr r1, =gBattlePartyID + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + b _08051CD8 + .pool +_08051CC8: + ldr r1, =gBattlePartyID + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gEnemyParty +_08051CD8: + adds r5, r1, r0 + ldr r4, =gBankTarget + ldrb r0, [r4] + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _08051D0C + ldr r1, =gBattlePartyID + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + b _08051D1C + .pool +_08051D0C: + ldr r1, =gBattlePartyID + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gEnemyParty +_08051D1C: + adds r4, r1, r0 + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + adds r0, r5, 0 + movs r1, 0 + bl GetMonData + mov r9, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + adds r7, r0, 0 + ldr r5, =gBankTarget + ldrb r0, [r5] + movs r6, 0x58 + muls r0, r6 + ldr r1, =gBattleMons + adds r0, r1 + adds r0, 0x20 + ldrb r2, [r0] + cmp r2, 0xC + bne _08051D94 + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DB5F5 + str r0, [r1] + ldr r0, =gLastUsedAbility + strb r2, [r0] + ldrb r0, [r5] + movs r1, 0xC + bl RecordAbilityBattle + b _08051E2C + .pool +_08051D94: + mov r0, r10 + mov r1, r9 + bl pokemon_species_get_gender_info + adds r4, r0, 0 + mov r0, r8 + adds r1, r7, 0 + bl pokemon_species_get_gender_info + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + beq _08051DE4 + ldrb r0, [r5] + muls r0, r6 + ldr r4, =gBattleMons + adds r4, 0x50 + adds r0, r4 + ldr r0, [r0] + movs r1, 0xF0 + lsls r1, 12 + ands r0, r1 + cmp r0, 0 + bne _08051DE4 + mov r0, r10 + mov r1, r9 + bl pokemon_species_get_gender_info + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _08051DE4 + mov r0, r8 + adds r1, r7, 0 + bl pokemon_species_get_gender_info + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _08051E08 +_08051DE4: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08051E2C + .pool +_08051E08: + ldrb r0, [r5] + adds r2, r0, 0 + muls r2, r6 + adds r2, r4 + ldr r1, =gBitTable + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + lsls r1, 16 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_08051E2C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk97_tryinfatuatetarget + + thumb_func_start sub_8051E48 +sub_8051E48: @ 8051E48 + push {r4-r7,lr} + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + bne _08051F34 + ldr r5, =gBattlescriptCurrInstr + ldr r1, [r5] + ldrb r0, [r1, 0x1] + cmp r0, 0x4 + beq _08051EA0 + bl get_battle_side_of_something + ldr r4, =gActiveBank + strb r0, [r4] + ldr r3, =gBattleMons + ldrb r1, [r4] + movs r0, 0x58 + adds r2, r1, 0 + muls r2, r0 + adds r0, r3, 0 + adds r0, 0x4C + adds r0, r2, r0 + ldr r1, [r0] + adds r3, 0x50 + adds r2, r3 + ldr r2, [r2] + movs r0, 0 + bl dp01_build_cmdbuf_x1A_aaaa_bbbb + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] + b _08051F34 + .pool +_08051EA0: + ldr r4, =gActiveBank + ldr r5, =gBankAttacker + ldrb r0, [r5] + strb r0, [r4] + ldr r6, =gAbsentBankFlags + ldrb r1, [r6] + ldr r7, =gBitTable + ldrb r2, [r4] + lsls r0, r2, 2 + adds r0, r7 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _08051EDC + ldr r3, =gBattleMons + movs r0, 0x58 + muls r2, r0 + adds r0, r3, 0 + adds r0, 0x4C + adds r0, r2, r0 + ldr r1, [r0] + adds r3, 0x50 + adds r2, r3 + ldr r2, [r2] + movs r0, 0 + bl dp01_build_cmdbuf_x1A_aaaa_bbbb + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_08051EDC: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08051F2C + ldrb r0, [r5] + bl GetBankIdentity + movs r1, 0x2 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl GetBankByPlayerAI + strb r0, [r4] + ldrb r1, [r6] + ldrb r2, [r4] + lsls r0, r2, 2 + adds r0, r7 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _08051F2C + ldr r3, =gBattleMons + movs r0, 0x58 + muls r2, r0 + adds r0, r3, 0 + adds r0, 0x4C + adds r0, r2, r0 + ldr r1, [r0] + adds r3, 0x50 + adds r2, r3 + ldr r2, [r2] + movs r0, 0 + bl dp01_build_cmdbuf_x1A_aaaa_bbbb + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_08051F2C: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] +_08051F34: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8051E48 + + thumb_func_start atk99_setmisteffect +atk99_setmisteffect: @ 8051F58 + push {r4-r6,lr} + ldr r6, =gSideTimers + ldr r4, =gBankAttacker + ldrb r0, [r4] + bl GetBankIdentity + movs r5, 0x1 + adds r1, r5, 0 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r0, [r0, 0x4] + cmp r0, 0 + beq _08051F98 + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x20 + orrs r0, r1 + strb r0, [r2] + ldr r0, =gBattleCommunication + strb r5, [r0, 0x5] + b _08051FE6 + .pool +_08051F98: + ldrb r0, [r4] + bl GetBankIdentity + adds r1, r5, 0 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x5 + strb r1, [r0, 0x4] + ldrb r0, [r4] + bl GetBankIdentity + adds r1, r5, 0 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r1, [r4] + strb r1, [r0, 0x5] + ldrb r0, [r4] + bl GetBankIdentity + ldr r2, =gUnknown_0202428E + adds r1, r5, 0 + ands r1, r0 + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r3, 0x80 + lsls r3, 1 + adds r0, r3, 0 + movs r3, 0 + orrs r0, r2 + strh r0, [r1] + ldr r0, =gBattleCommunication + strb r3, [r0, 0x5] +_08051FE6: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end atk99_setmisteffect + + thumb_func_start atk9A_setincreasedcriticalchance +atk9A_setincreasedcriticalchance: @ 8052000 + push {lr} + ldr r1, =gBattleMons + ldr r0, =gBankAttacker + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r1, [r0] + movs r3, 0x80 + lsls r3, 13 + adds r2, r1, 0 + ands r2, r3 + cmp r2, 0 + beq _08052040 + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x20 + orrs r0, r1 + strb r0, [r2] + ldr r1, =gBattleCommunication + movs r0, 0x1 + strb r0, [r1, 0x5] + b _08052048 + .pool +_08052040: + orrs r1, r3 + str r1, [r0] + ldr r0, =gBattleCommunication + strb r2, [r0, 0x5] +_08052048: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end atk9A_setincreasedcriticalchance + + thumb_func_start atk9B_transformdataexecution +atk9B_transformdataexecution: @ 805205C + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r1, =gUnknown_020241EC + ldr r2, =0x0000ffff + adds r0, r2, 0 + strh r0, [r1] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + ldr r7, =gBattleMons + ldr r0, =gBankTarget + mov r12, r0 + ldrb r1, [r0] + movs r6, 0x58 + adds r0, r1, 0 + muls r0, r6 + adds r5, r7, 0 + adds r5, 0x50 + adds r0, r5 + ldr r0, [r0] + movs r4, 0x80 + lsls r4, 14 + ands r0, r4 + cmp r0, 0 + bne _080520A2 + ldr r0, =gStatuses3 + lsls r1, 2 + adds r1, r0 + ldr r2, [r1] + ldr r0, =0x000400c0 + ands r2, r0 + cmp r2, 0 + beq _080520D8 +_080520A2: + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x20 + orrs r0, r1 + strb r0, [r2] + ldr r1, =gBattleCommunication + movs r0, 0x1 + b _080521EC + .pool +_080520D8: + ldr r3, =gBankAttacker + ldrb r0, [r3] + adds r1, r0, 0 + muls r1, r6 + adds r1, r5 + ldr r0, [r1] + orrs r0, r4 + str r0, [r1] + ldr r4, =gDisableStructs + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r4 + strh r2, [r0, 0x4] + ldrb r0, [r3] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r1, 0xB] + movs r0, 0x10 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0xB] + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r4 + mov r2, r12 + ldrb r1, [r2] + muls r1, r6 + adds r2, r7, 0 + adds r2, 0x48 + adds r1, r2 + ldr r1, [r1] + str r1, [r0] + ldrb r0, [r3] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r1, 0x18] + movs r0, 0xF + ands r0, r2 + strb r0, [r1, 0x18] + ldr r1, =gBattleTextBuff1 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x6 + strb r0, [r1, 0x1] + mov r2, r12 + ldrb r0, [r2] + muls r0, r6 + adds r0, r7 + ldrh r0, [r0] + strb r0, [r1, 0x2] + ldrb r0, [r2] + muls r0, r6 + adds r0, r7 + ldrh r0, [r0] + lsrs r0, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldrb r0, [r3] + muls r0, r6 + adds r5, r0, r7 + ldrb r0, [r2] + muls r0, r6 + adds r2, r0, r7 + movs r4, 0 + adds r6, r3, 0 + ldr r0, =gActiveBank + mov r8, r0 +_08052170: + adds r0, r5, r4 + adds r1, r2, r4 + ldrb r1, [r1] + strb r1, [r0] + adds r4, 0x1 + cmp r4, 0x23 + bls _08052170 + movs r4, 0 + ldr r7, =gBattleMoves + ldr r3, =gUnknown_02024090 + adds r5, r3, 0 + adds r5, 0x18 +_08052188: + lsls r1, r4, 1 + ldrb r2, [r6] + movs r0, 0x58 + muls r2, r0 + adds r1, r2 + adds r1, r3 + ldrh r1, [r1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrb r1, [r0, 0x4] + cmp r1, 0x4 + bhi _080521C4 + adds r0, r4, r2 + adds r0, r5 + b _080521CA + .pool +_080521C4: + adds r0, r4, r2 + adds r0, r5 + movs r1, 0x5 +_080521CA: + strb r1, [r0] + adds r4, 0x1 + cmp r4, 0x3 + ble _08052188 + ldrb r0, [r6] + mov r1, r8 + strb r0, [r1] + movs r0, 0 + movs r1, 0x2 + bl dp01_build_cmdbuf_x38_a + mov r2, r8 + ldrb r0, [r2] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, =gBattleCommunication + movs r0, 0 +_080521EC: + strb r0, [r1, 0x5] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atk9B_transformdataexecution + + thumb_func_start sub_80521FC +sub_80521FC: @ 80521FC + push {r4-r7,lr} + ldr r7, =gBattleMons + ldr r6, =gBankAttacker + ldrb r0, [r6] + movs r5, 0x58 + muls r0, r5 + adds r3, r0, r7 + ldrh r0, [r3, 0x2C] + lsrs r1, r0, 2 + adds r2, r1, 0 + cmp r1, 0 + bne _08052216 + movs r2, 0x1 +_08052216: + ldrh r0, [r3, 0x28] + cmp r0, r2 + bhi _0805223C + ldr r1, =gBattleMoveDamage + movs r0, 0 + str r0, [r1] + ldr r1, =gBattleCommunication + movs r0, 0x1 + strb r0, [r1, 0x5] + b _08052290 + .pool +_0805223C: + ldr r4, =gBattleMoveDamage + str r1, [r4] + cmp r1, 0 + bne _08052248 + movs r0, 0x1 + str r0, [r4] +_08052248: + ldrb r0, [r6] + adds r2, r0, 0 + muls r2, r5 + adds r3, r7, 0 + adds r3, 0x50 + adds r2, r3 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 17 + orrs r0, r1 + str r0, [r2] + ldrb r0, [r6] + adds r1, r0, 0 + muls r1, r5 + adds r1, r3 + ldr r0, [r1] + ldr r2, =0xffff1fff + ands r0, r2 + str r0, [r1] + ldr r2, =gDisableStructs + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, [r4] + movs r2, 0 + strb r1, [r0, 0xA] + ldr r0, =gBattleCommunication + strb r2, [r0, 0x5] + ldr r2, =gHitMarker + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 1 + orrs r0, r1 + str r0, [r2] +_08052290: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80521FC + + thumb_func_start sub_80522B8 +sub_80522B8: @ 80522B8 + push {r4,r5,lr} + lsls r0, 16 + lsrs r2, r0, 16 + movs r3, 0 + ldr r0, =gUnknown_0831C3E0 + ldrh r1, [r0] + ldr r4, =0x0000fffe + adds r5, r0, 0 + cmp r1, r4 + beq _080522E0 + cmp r1, r2 + beq _080522E0 + adds r1, r5, 0 +_080522D2: + adds r1, 0x2 + adds r3, 0x1 + ldrh r0, [r1] + cmp r0, r4 + beq _080522E0 + cmp r0, r2 + bne _080522D2 +_080522E0: + lsls r0, r3, 1 + adds r0, r5 + ldrh r1, [r0] + ldr r0, =0x0000fffe + eors r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80522B8 + + thumb_func_start atk9D_copyattack +atk9D_copyattack: @ 8052300 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, =gUnknown_020241EC + ldr r1, =0x0000ffff + adds r7, r1, 0 + strh r7, [r0] + ldr r5, =gUnknown_02024248 + ldr r6, =gBankTarget + ldrb r0, [r6] + lsls r0, 1 + adds r0, r5 + ldrh r0, [r0] + bl sub_80522B8 + lsls r0, 24 + cmp r0, 0 + bne _0805235A + ldr r3, =gBattleMons + ldr r2, =gBankAttacker + ldrb r1, [r2] + movs r0, 0x58 + adds r4, r1, 0 + muls r4, r0 + adds r0, r3, 0 + adds r0, 0x50 + adds r0, r4, r0 + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 14 + ands r1, r0 + mov r12, r3 + mov r9, r2 + cmp r1, 0 + bne _0805235A + ldrb r0, [r6] + lsls r0, 1 + adds r0, r5 + ldrh r1, [r0] + cmp r1, 0 + beq _0805235A + cmp r1, r7 + bne _08052394 +_0805235A: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _080524CC + .pool +_08052394: + movs r2, 0 + mov r3, r12 + adds r3, 0xC + adds r0, r4, r3 + ldrh r0, [r0] + ldr r4, =gBattlescriptCurrInstr + mov r10, r4 + cmp r0, r1 + beq _080523CE + mov r8, r3 + adds r7, r5, 0 + adds r5, r6, 0 + mov r4, r9 + movs r3, 0x58 +_080523B0: + adds r2, 0x1 + cmp r2, 0x3 + bgt _080523CE + lsls r1, r2, 1 + ldrb r0, [r4] + muls r0, r3 + adds r1, r0 + add r1, r8 + ldrb r0, [r5] + lsls r0, 1 + adds r0, r7 + ldrh r1, [r1] + ldrh r0, [r0] + cmp r1, r0 + bne _080523B0 +_080523CE: + cmp r2, 0x4 + bne _080524B0 + ldr r5, =gCurrMovePos + ldrb r1, [r5] + lsls r1, 1 + mov r2, r9 + ldrb r0, [r2] + movs r6, 0x58 + muls r0, r6 + adds r1, r0 + mov r0, r12 + adds r0, 0xC + adds r1, r0 + ldr r2, =gUnknown_02024248 + ldr r3, =gBankTarget + ldrb r0, [r3] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1] + ldr r4, =gBattleMoves + ldrb r0, [r3] + lsls r0, 1 + adds r0, r2 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r4, [r0, 0x4] + cmp r4, 0x4 + bhi _08052438 + mov r1, r9 + ldrb r0, [r1] + muls r0, r6 + ldrb r1, [r5] + adds r0, r1 + mov r1, r12 + adds r1, 0x24 + adds r0, r1 + strb r4, [r0] + b _0805244C + .pool +_08052438: + mov r4, r9 + ldrb r0, [r4] + muls r0, r6 + ldrb r1, [r5] + adds r0, r1 + mov r1, r12 + adds r1, 0x24 + adds r0, r1 + movs r1, 0x5 + strb r1, [r0] +_0805244C: + ldr r1, =gBattleTextBuff1 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x2 + strb r0, [r1, 0x1] + ldrb r0, [r3] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1, 0x2] + ldrb r0, [r3] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + lsrs r0, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, =gDisableStructs + mov r2, r9 + ldrb r0, [r2] + lsls r2, r0, 3 + subs r2, r0 + lsls r2, 2 + adds r2, r1 + ldrb r4, [r2, 0x18] + lsrs r3, r4, 4 + ldr r1, =gBitTable + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + orrs r1, r3 + lsls r1, 4 + movs r0, 0xF + ands r0, r4 + orrs r0, r1 + strb r0, [r2, 0x18] + mov r4, r10 + ldr r0, [r4] + adds r0, 0x5 + str r0, [r4] + b _080524CC + .pool +_080524B0: + mov r0, r10 + ldr r2, [r0] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + mov r2, r10 + str r1, [r2] +_080524CC: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end atk9D_copyattack + + thumb_func_start sub_80524DC +sub_80524DC: @ 80524DC + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r7, =gCurrentMove + movs r6, 0xB1 + lsls r6, 1 + ldr r5, =gUnknown_0831C3E0 + ldr r0, =gBattlescriptCurrInstr + mov r8, r0 +_080524EE: + bl Random + ldr r2, =0x000001ff + adds r1, r2, 0 + ands r0, r1 + adds r0, 0x1 + strh r0, [r7] + cmp r0, r6 + bhi _080524EE + movs r0, 0x3 +_08052502: + subs r0, 0x1 + cmp r0, 0 + bge _08052502 + ldr r4, =gCurrentMove + ldrh r2, [r4] + ldr r3, =0x0000ffff + subs r0, r5, 0x2 +_08052510: + adds r0, 0x2 + ldrh r1, [r0] + cmp r1, r2 + beq _0805251C + cmp r1, r3 + bne _08052510 +_0805251C: + ldr r0, =0x0000ffff + cmp r1, r0 + bne _080524EE + ldr r2, =gHitMarker + ldr r0, [r2] + ldr r1, =0xfffffbff + ands r0, r1 + str r0, [r2] + ldr r3, =gUnknown_082D86A8 + ldr r2, =gBattleMoves + ldrh r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + mov r1, r8 + str r0, [r1] + ldrh r0, [r4] + movs r1, 0 + bl GetMoveTarget + ldr r1, =gBankTarget + strb r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80524DC + + thumb_func_start atk9F_nightshadedamageeffect +atk9F_nightshadedamageeffect: @ 8052584 + ldr r3, =gBattleMoveDamage + ldr r2, =gBattleMons + ldr r0, =gBankAttacker + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x2A + ldrb r0, [r0] + str r0, [r3] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .pool + thumb_func_end atk9F_nightshadedamageeffect + + thumb_func_start atkA0_psywavedamageeffect +atkA0_psywavedamageeffect: @ 80525B4 + push {r4,lr} + movs r4, 0xF +_080525B8: + bl Random + adds r3, r4, 0 + ands r3, r0 + cmp r3, 0xA + bgt _080525B8 + lsls r0, r3, 2 + adds r0, r3 + lsls r3, r0, 1 + ldr r4, =gBattleMoveDamage + ldr r2, =gBattleMons + ldr r0, =gBankAttacker + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x2A + ldrb r1, [r0] + adds r0, r3, 0 + adds r0, 0x32 + muls r0, r1 + movs r1, 0x64 + bl __divsi3 + str r0, [r4] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atkA0_psywavedamageeffect + + thumb_func_start atkA1_counterdamagecalculator +atkA1_counterdamagecalculator: @ 8052608 + push {r4-r6,lr} + ldr r4, =gBankAttacker + ldrb r0, [r4] + bl GetBankSide + lsls r0, 24 + lsrs r6, r0, 24 + ldr r5, =gProtectStructs + ldrb r0, [r4] + lsls r0, 4 + adds r0, r5 + ldrb r0, [r0, 0xC] + bl GetBankSide + lsls r0, 24 + lsrs r2, r0, 24 + ldrb r0, [r4] + lsls r1, r0, 4 + adds r0, r5, 0x4 + adds r0, r1, r0 + ldr r3, [r0] + cmp r3, 0 + beq _080526BC + cmp r6, r2 + beq _080526BC + ldr r6, =gBattleMons + adds r0, r1, r5 + ldrb r0, [r0, 0xC] + movs r4, 0x58 + muls r0, r4 + adds r0, r6 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _080526BC + ldr r1, =gBattleMoveDamage + lsls r0, r3, 1 + str r0, [r1] + ldr r1, =gSideTimers + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r1, r0, r1 + ldrb r0, [r1, 0x8] + cmp r0, 0 + beq _08052690 + ldrb r1, [r1, 0x9] + adds r0, r1, 0 + muls r0, r4 + adds r0, r6 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _08052690 + ldr r0, =gBankTarget + strb r1, [r0] + b _080526A0 + .pool +_08052690: + ldr r2, =gBankTarget + ldr r1, =gProtectStructs + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0, 0xC] + strb r0, [r2] +_080526A0: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _080526EC + .pool +_080526BC: + ldr r2, =gSpecialStatuses + ldr r0, =gBankAttacker + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0] + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_080526EC: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end atkA1_counterdamagecalculator + + thumb_func_start atkA2_mirrorcoatdamagecalculator +atkA2_mirrorcoatdamagecalculator: @ 8052700 + push {r4-r6,lr} + ldr r4, =gBankAttacker + ldrb r0, [r4] + bl GetBankSide + lsls r0, 24 + lsrs r6, r0, 24 + ldr r5, =gProtectStructs + ldrb r0, [r4] + lsls r0, 4 + adds r0, r5 + ldrb r0, [r0, 0xD] + bl GetBankSide + lsls r0, 24 + lsrs r2, r0, 24 + ldrb r0, [r4] + lsls r1, r0, 4 + adds r0, r5, 0 + adds r0, 0x8 + adds r0, r1, r0 + ldr r3, [r0] + cmp r3, 0 + beq _080527B4 + cmp r6, r2 + beq _080527B4 + ldr r6, =gBattleMons + adds r0, r1, r5 + ldrb r0, [r0, 0xD] + movs r4, 0x58 + muls r0, r4 + adds r0, r6 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _080527B4 + ldr r1, =gBattleMoveDamage + lsls r0, r3, 1 + str r0, [r1] + ldr r1, =gSideTimers + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r1, r0, r1 + ldrb r0, [r1, 0x8] + cmp r0, 0 + beq _08052788 + ldrb r1, [r1, 0x9] + adds r0, r1, 0 + muls r0, r4 + adds r0, r6 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _08052788 + ldr r0, =gBankTarget + strb r1, [r0] + b _08052798 + .pool +_08052788: + ldr r2, =gBankTarget + ldr r1, =gProtectStructs + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0, 0xD] + strb r0, [r2] +_08052798: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _080527E4 + .pool +_080527B4: + ldr r2, =gSpecialStatuses + ldr r0, =gBankAttacker + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0] + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_080527E4: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end atkA2_mirrorcoatdamagecalculator + + thumb_func_start atkA3_disablelastusedattack +atkA3_disablelastusedattack: @ 80527F8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r4, 0 + ldr r2, =gBattleMons + ldr r3, =gBankTarget + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + adds r7, r2, 0 + adds r7, 0xC + adds r0, r7 + ldr r5, =gUnknown_02024248 + lsls r1, 1 + adds r1, r5 + ldrh r0, [r0] + mov r9, r2 + adds r6, r3, 0 + ldr r2, =gDisableStructs + mov r8, r2 + ldrh r1, [r1] + cmp r0, r1 + beq _0805284C + mov r12, r6 + movs r3, 0x58 +_0805282C: + adds r4, 0x1 + cmp r4, 0x3 + bgt _0805284C + lsls r2, r4, 1 + mov r0, r12 + ldrb r1, [r0] + adds r0, r1, 0 + muls r0, r3 + adds r2, r0 + adds r2, r7 + lsls r1, 1 + adds r1, r5 + ldrh r0, [r2] + ldrh r1, [r1] + cmp r0, r1 + bne _0805282C +_0805284C: + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r8 + ldrh r0, [r0, 0x4] + cmp r0, 0 + bne _08052910 + cmp r4, 0x4 + beq _08052910 + movs r5, 0x58 + adds r0, r1, 0 + muls r0, r5 + adds r0, r4, r0 + mov r1, r9 + adds r1, 0x24 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08052910 + ldr r1, =gBattleTextBuff1 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x2 + strb r0, [r1, 0x1] + lsls r2, r4, 1 + ldrb r0, [r6] + muls r0, r5 + adds r0, r2, r0 + mov r3, r9 + adds r3, 0xC + adds r0, r3 + ldrh r0, [r0] + strb r0, [r1, 0x2] + ldrb r0, [r6] + muls r0, r5 + adds r0, r2, r0 + adds r0, r3 + ldrh r0, [r0] + lsrs r0, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r8 + muls r1, r5 + adds r2, r1 + adds r2, r3 + ldrh r1, [r2] + strh r1, [r0, 0x4] + bl Random + ldrb r2, [r6] + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + add r1, r8 + movs r2, 0x3 + ands r2, r0 + adds r2, 0x2 + ldrb r3, [r1, 0xB] + movs r0, 0x10 + negs r0, r0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0xB] + ldrb r0, [r6] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + add r1, r8 + ldrb r3, [r1, 0xB] + lsls r2, r3, 28 + lsrs r2, 24 + movs r0, 0xF + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0xB] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0805292A + .pool +_08052910: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_0805292A: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atkA3_disablelastusedattack + + thumb_func_start atkA4_setencore +atkA4_setencore: @ 805293C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r5, 0 + ldr r3, =gBattleMons + ldr r4, =gBankTarget + ldrb r1, [r4] + movs r0, 0x58 + muls r0, r1 + adds r6, r3, 0 + adds r6, 0xC + adds r0, r6 + ldr r2, =gUnknown_02024248 + lsls r1, 1 + adds r1, r2 + ldrh r0, [r0] + mov r10, r3 + mov r8, r2 + ldr r2, =gDisableStructs + mov r9, r2 + ldrh r1, [r1] + cmp r0, r1 + beq _08052996 + mov r12, r4 + adds r7, r6, 0 + mov r6, r8 + movs r3, 0x58 +_08052976: + adds r5, 0x1 + cmp r5, 0x3 + bgt _08052996 + lsls r2, r5, 1 + mov r0, r12 + ldrb r1, [r0] + adds r0, r1, 0 + muls r0, r3 + adds r2, r0 + adds r2, r7 + lsls r1, 1 + adds r1, r6 + ldrh r0, [r2] + ldrh r1, [r1] + cmp r0, r1 + bne _08052976 +_08052996: + ldrb r0, [r4] + lsls r0, 1 + add r0, r8 + ldrh r2, [r0] + cmp r2, 0xA5 + beq _080529AA + cmp r2, 0xE3 + beq _080529AA + cmp r2, 0x77 + bne _080529AC +_080529AA: + movs r5, 0x4 +_080529AC: + ldrb r1, [r4] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + mov r2, r9 + adds r3, r0, r2 + ldrh r0, [r3, 0x6] + cmp r0, 0 + bne _08052A44 + cmp r5, 0x4 + beq _08052A44 + movs r0, 0x58 + adds r2, r1, 0 + muls r2, r0 + adds r0, r5, r2 + mov r1, r10 + adds r1, 0x24 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08052A44 + lsls r0, r5, 1 + adds r0, r2 + subs r1, 0x18 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r3, 0x6] + ldrb r1, [r4] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r9 + strb r5, [r0, 0xC] + bl Random + ldrb r2, [r4] + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + add r1, r9 + movs r2, 0x3 + ands r2, r0 + adds r2, 0x3 + ldrb r3, [r1, 0xE] + movs r0, 0x10 + negs r0, r0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0xE] + ldrb r0, [r4] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + add r1, r9 + ldrb r3, [r1, 0xE] + lsls r2, r3, 28 + lsrs r2, 24 + movs r0, 0xF + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0xE] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08052A5E + .pool +_08052A44: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_08052A5E: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atkA4_setencore + + thumb_func_start sub_8052A70 +sub_8052A70: @ 8052A70 + push {r4-r7,lr} + ldr r6, =gBattleMons + ldr r0, =gBankTarget + mov r12, r0 + ldrb r0, [r0] + movs r7, 0x58 + adds r2, r0, 0 + muls r2, r7 + adds r0, r6, 0 + adds r0, 0x50 + adds r0, r2, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + bne _08052B10 + ldr r5, =gBankAttacker + ldrb r0, [r5] + muls r0, r7 + adds r0, r6 + ldrh r3, [r0, 0x28] + adds r0, r2, r6 + ldrh r1, [r0, 0x28] + adds r3, r1 + asrs r3, 1 + ldr r4, =gBattleMoveDamage + subs r1, r3 + str r1, [r4] + ldr r2, =gBattleScripting + strb r1, [r2] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + asrs r0, 8 + strb r0, [r2, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + asrs r0, 16 + strb r0, [r2, 0x2] + lsrs r1, 24 + strb r1, [r2, 0x3] + ldrb r0, [r5] + muls r0, r7 + adds r0, r6 + ldrh r0, [r0, 0x28] + subs r0, r3 + str r0, [r4] + ldr r2, =gSpecialStatuses + mov r0, r12 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r2, 0x4 + adds r0, r2 + ldr r1, =0x0000ffff + str r1, [r0] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08052B2A + .pool +_08052B10: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_08052B2A: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8052A70 + + thumb_func_start atkA6_settypetorandomresistance +atkA6_settypetorandomresistance: @ 8052B34 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r1, =gUnknown_02024250 + ldr r4, =gBankAttacker + ldrb r0, [r4] + lsls r0, 1 + adds r2, r0, r1 + ldrh r1, [r2] + cmp r1, 0 + beq _08052B7E + ldr r0, =0x0000ffff + cmp r1, r0 + beq _08052B7E + ldrh r0, [r2] + bl sub_8052F48 + lsls r0, 24 + cmp r0, 0 + beq _08052C1C + ldr r1, =gBattleMons + ldr r2, =gUnknown_02024270 + ldrb r0, [r4] + adds r0, r2 + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 5 + ands r0, r1 + cmp r0, 0 + beq _08052C1C +_08052B7E: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08052D08 + .pool +_08052BB4: + mov r0, r12 + strb r5, [r0] + mov r1, r10 + ldrb r0, [r1] + muls r0, r2 + adds r0, r7 + adds r0, 0x22 + strb r5, [r0] + ldr r1, =gBattleTextBuff1 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x3 + strb r0, [r1, 0x1] + strb r5, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + ldr r1, =gBattlescriptCurrInstr + b _08052C0A + .pool +_08052BE0: + mov r0, r8 + adds r0, 0x1 + adds r0, r3 + ldrb r2, [r0] + strb r2, [r4] + mov r4, r10 + ldrb r0, [r4] + muls r0, r6 + ldr r7, =gBattleMons + adds r0, r7 + adds r0, 0x22 + strb r2, [r0] + ldr r1, =gBattleTextBuff1 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x3 + strb r0, [r1, 0x1] + strb r2, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + mov r1, r12 +_08052C0A: + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08052D08 + .pool +_08052C1C: + movs r4, 0 + mov r8, r4 + movs r7, 0x7F + mov r9, r7 +_08052C24: + bl Random + mov r4, r9 + ands r4, r0 + cmp r4, 0x70 + bhi _08052C24 + lsls r0, r4, 1 + adds r4, r0, r4 + ldr r6, =gUnknown_0831ACE8 + adds r3, r4, r6 + ldr r1, =gUnknown_02024258 + ldr r2, =gBankAttacker + ldrb r5, [r2] + lsls r0, r5, 1 + adds r0, r1 + ldrb r1, [r3] + mov r10, r2 + ldrh r0, [r0] + cmp r1, r0 + bne _08052C80 + adds r0, r4, 0x2 + adds r0, r6 + ldrb r0, [r0] + cmp r0, 0x5 + bhi _08052C80 + ldr r7, =gBattleMons + movs r2, 0x58 + adds r0, r5, 0 + muls r0, r2 + adds r3, r0, r7 + movs r0, 0x21 + adds r0, r3 + mov r12, r0 + adds r0, r4, 0x1 + adds r0, r6 + ldrb r5, [r0] + mov r1, r12 + ldrb r0, [r1] + adds r1, r5, 0 + cmp r0, r1 + beq _08052C80 + adds r0, r3, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, r1 + bne _08052BB4 +_08052C80: + movs r7, 0x1 + add r8, r7 + ldr r0, =0x000003e7 + cmp r8, r0 + ble _08052C24 + movs r0, 0 + mov r8, r0 + ldr r1, =gBattlescriptCurrInstr + mov r12, r1 + ldr r3, =gUnknown_0831ACE8 + adds r0, r4, 0x1 + adds r0, r3 + mov r9, r0 + adds r5, r3, 0 +_08052C9C: + ldrb r1, [r5] + cmp r1, 0xFF + bgt _08052CA6 + cmp r1, 0xFE + bge _08052CE0 +_08052CA6: + mov r4, r10 + ldrb r2, [r4] + lsls r0, r2, 1 + ldr r7, =gUnknown_02024258 + adds r0, r7 + ldrh r0, [r0] + cmp r1, r0 + bne _08052CE0 + ldrb r0, [r5, 0x2] + cmp r0, 0x5 + bhi _08052CE0 + movs r6, 0x58 + adds r0, r2, 0 + muls r0, r6 + ldr r1, =gBattleMons + adds r2, r0, r1 + adds r4, r2, 0 + adds r4, 0x21 + ldrb r0, [r4] + mov r7, r9 + ldrb r1, [r7] + cmp r0, r1 + beq _08052CE0 + adds r0, r2, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, r1 + beq _08052CE0 + b _08052BE0 +_08052CE0: + adds r5, 0x3 + movs r0, 0x3 + add r8, r0 + ldr r0, =0x0000014f + cmp r8, r0 + bls _08052C9C + mov r1, r12 + ldr r2, [r1] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + mov r4, r12 + str r1, [r4] +_08052D08: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atkA6_settypetorandomresistance + + thumb_func_start atkA7_setalwayshitflag +atkA7_setalwayshitflag: @ 8052D34 + push {r4,lr} + ldr r4, =gStatuses3 + ldr r3, =gBankTarget + ldrb r1, [r3] + lsls r1, 2 + adds r1, r4 + ldr r0, [r1] + movs r2, 0x19 + negs r2, r2 + ands r0, r2 + str r0, [r1] + ldrb r1, [r3] + lsls r1, 2 + adds r1, r4 + ldr r0, [r1] + movs r2, 0x10 + orrs r0, r2 + str r0, [r1] + ldr r2, =gDisableStructs + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, =gBankAttacker + ldrb r1, [r1] + strb r1, [r0, 0x15] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atkA7_setalwayshitflag + + thumb_func_start atkA8_copymovepermanently +atkA8_copymovepermanently: @ 8052D8C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + ldr r0, =gUnknown_020241EC + ldr r1, =0x0000ffff + adds r5, r1, 0 + strh r5, [r0] + ldr r3, =gBattleMons + ldr r2, =gBankAttacker + ldrb r1, [r2] + movs r0, 0x58 + adds r4, r1, 0 + muls r4, r0 + adds r0, r3, 0 + adds r0, 0x50 + adds r0, r4, r0 + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 14 + ands r1, r0 + mov r12, r3 + mov r10, r2 + cmp r1, 0 + beq _08052DC4 + b _08052F18 +_08052DC4: + ldr r0, =gUnknown_02024240 + ldr r2, =gBankTarget + ldrb r1, [r2] + lsls r1, 1 + adds r1, r0 + ldrh r1, [r1] + mov r9, r0 + mov r8, r2 + cmp r1, 0xA5 + bne _08052DDA + b _08052F18 +_08052DDA: + cmp r1, 0 + bne _08052DE0 + b _08052F18 +_08052DE0: + cmp r1, r5 + bne _08052DE6 + b _08052F18 +_08052DE6: + cmp r1, 0xA6 + bne _08052DEC + b _08052F18 +_08052DEC: + movs r7, 0 + mov r5, r9 + mov r0, r12 + adds r0, 0xC + adds r1, r4, r0 + mov r3, r8 +_08052DF8: + ldrh r2, [r1] + cmp r2, 0xA6 + beq _08052E0A + ldrb r0, [r3] + lsls r0, 1 + adds r0, r5 + ldrh r0, [r0] + cmp r2, r0 + beq _08052E12 +_08052E0A: + adds r1, 0x2 + adds r7, 0x1 + cmp r7, 0x3 + ble _08052DF8 +_08052E12: + cmp r7, 0x4 + beq _08052E18 + b _08052F18 +_08052E18: + ldr r4, =gCurrMovePos + ldrb r1, [r4] + lsls r1, 1 + mov r2, r10 + ldrb r0, [r2] + movs r3, 0x58 + muls r0, r3 + adds r1, r0 + mov r6, r12 + adds r6, 0xC + adds r1, r6 + mov r2, r8 + ldrb r0, [r2] + lsls r0, 1 + add r0, r9 + ldrh r0, [r0] + strh r0, [r1] + mov r1, r10 + ldrb r0, [r1] + adds r2, r0, 0 + muls r2, r3 + ldrb r4, [r4] + adds r2, r4 + mov r5, r12 + adds r5, 0x24 + adds r2, r5 + ldr r4, =gBattleMoves + mov r1, r8 + ldrb r0, [r1] + lsls r0, 1 + add r0, r9 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x4] + strb r0, [r2] + ldr r1, =gActiveBank + mov r2, r10 + ldrb r0, [r2] + strb r0, [r1] + movs r7, 0 + ldrb r0, [r2] + muls r0, r3 + adds r4, r0, r5 + adds r3, r0, 0 + add r2, sp, 0x4 + add r5, sp, 0xC +_08052E7A: + adds r0, r3, r6 + ldrh r0, [r0] + strh r0, [r2] + adds r1, r5, r7 + ldrb r0, [r4] + strb r0, [r1] + adds r4, 0x1 + adds r3, 0x2 + adds r2, 0x2 + adds r7, 0x1 + cmp r7, 0x3 + ble _08052E7A + add r2, sp, 0x4 + mov r0, r10 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + add r0, r12 + adds r0, 0x3B + ldrb r0, [r0] + strb r0, [r2, 0xC] + str r2, [sp] + movs r0, 0 + movs r1, 0x3 + movs r2, 0 + movs r3, 0x10 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldr r0, =gActiveBank + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, =gBattleTextBuff1 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x2 + strb r0, [r1, 0x1] + ldr r3, =gUnknown_02024240 + ldr r2, =gBankTarget + ldrb r0, [r2] + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strb r0, [r1, 0x2] + ldrb r0, [r2] + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + lsrs r0, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08052F32 + .pool +_08052F18: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_08052F32: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atkA8_copymovepermanently + + thumb_func_start sub_8052F48 +sub_8052F48: @ 8052F48 + push {lr} + lsls r0, 16 + lsrs r0, 16 + ldr r2, =gBattleMoves + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1] + cmp r0, 0x91 + beq _08052F72 + cmp r0, 0x27 + beq _08052F72 + cmp r0, 0x4B + beq _08052F72 + cmp r0, 0x97 + beq _08052F72 + cmp r0, 0x9B + beq _08052F72 + cmp r0, 0x1A + bne _08052F7C +_08052F72: + movs r0, 0x1 + b _08052F7E + .pool +_08052F7C: + movs r0, 0 +_08052F7E: + pop {r1} + bx r1 + thumb_func_end sub_8052F48 + + thumb_func_start sub_8052F84 +sub_8052F84: @ 8052F84 + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + beq _08052FA2 + cmp r1, 0xD6 + beq _08052FA2 + movs r0, 0x89 + lsls r0, 1 + cmp r1, r0 + beq _08052FA2 + cmp r1, 0x77 + beq _08052FA2 + cmp r1, 0x76 + bne _08052FA6 +_08052FA2: + movs r0, 0x1 + b _08052FA8 +_08052FA6: + movs r0, 0 +_08052FA8: + pop {r1} + bx r1 + thumb_func_end sub_8052F84 + + thumb_func_start move_weather_interaction +move_weather_interaction: @ 8052FAC + push {lr} + lsls r1, 16 + lsrs r2, r1, 16 + ldr r1, =gBattleMoves + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0] + adds r3, r1, 0 + cmp r0, 0x97 + bne _08052FD0 + ldr r0, =gBattleWeather + ldrh r1, [r0] + movs r0, 0x60 + ands r0, r1 + cmp r0, 0 + bne _08053010 +_08052FD0: + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0] + cmp r0, 0x91 + beq _08052FF2 + cmp r0, 0x27 + beq _08052FF2 + cmp r0, 0x4B + beq _08052FF2 + cmp r0, 0x97 + beq _08052FF2 + cmp r0, 0x9B + beq _08052FF2 + cmp r0, 0x1A + bne _08053010 +_08052FF2: + ldr r0, =gHitMarker + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 20 + ands r0, r1 + cmp r0, 0 + beq _08053010 + movs r0, 0x1 + b _08053012 + .pool +_08053010: + movs r0, 0x2 +_08053012: + pop {r1} + bx r1 + thumb_func_end move_weather_interaction + + thumb_func_start sub_8053018 +sub_8053018: @ 8053018 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r6, 0 + movs r5, 0 + ldr r0, =gBankAttacker + mov r9, r0 + movs r1, 0x58 + mov r8, r1 + ldr r7, =gUnknown_02024090 + movs r0, 0x84 + lsls r0, 1 + mov r10, r0 +_08053036: + lsls r4, r5, 1 + mov r1, r9 + ldrb r0, [r1] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r4, r0 + adds r0, r7 + ldrh r0, [r0] + bl sub_8052F84 + lsls r0, 24 + cmp r0, 0 + bne _08053076 + mov r1, r9 + ldrb r0, [r1] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r4, r0 + adds r0, r7 + ldrh r1, [r0] + cmp r1, r10 + beq _08053076 + cmp r1, 0xFD + beq _08053076 + adds r0, r1, 0 + bl sub_8052F48 + lsls r0, 24 + cmp r0, 0 + beq _08053084 +_08053076: + ldr r1, =gBitTable + lsls r0, r5, 2 + adds r0, r1 + ldr r0, [r0] + orrs r6, r0 + lsls r0, r6, 24 + lsrs r6, r0, 24 +_08053084: + adds r5, 0x1 + cmp r5, 0x3 + ble _08053036 + ldr r0, =gBankAttacker + ldrb r0, [r0] + adds r1, r6, 0 + movs r2, 0xFD + bl sub_803FECC + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0xF + bne _080530B8 + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0805311C + .pool +_080530B8: + movs r7, 0x3 + ldr r4, =gBitTable +_080530BC: + bl Random + adds r5, r7, 0 + ands r5, r0 + lsls r0, r5, 2 + adds r0, r4 + ldr r0, [r0] + ands r0, r6 + cmp r0, 0 + bne _080530BC + ldr r4, =gRandomMove + ldr r2, =gBattleMons + lsls r1, r5, 1 + ldr r0, =gBankAttacker + ldrb r3, [r0] + movs r0, 0x58 + muls r0, r3 + adds r1, r0 + adds r2, 0xC + adds r1, r2 + ldrh r0, [r1] + strh r0, [r4] + ldr r0, =gCurrMovePos + strb r5, [r0] + ldr r2, =gHitMarker + ldr r0, [r2] + ldr r1, =0xfffffbff + ands r0, r1 + str r0, [r2] + ldrh r0, [r4] + movs r1, 0 + bl GetMoveTarget + ldr r1, =gBankTarget + strb r0, [r1] + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_0805311C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8053018 + + thumb_func_start atkAA_destinybondeffect +atkAA_destinybondeffect: @ 8053150 + ldr r1, =gBattleMons + ldr r0, =gBankAttacker + ldrb r2, [r0] + movs r0, 0x58 + muls r2, r0 + adds r1, 0x50 + adds r2, r1 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 18 + orrs r0, r1 + str r0, [r2] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .pool + thumb_func_end atkAA_destinybondeffect + + thumb_func_start b_feature_update_destiny_bond +b_feature_update_destiny_bond: @ 8053180 + push {r4,r5,lr} + ldr r0, =gBankAttacker + ldrb r0, [r0] + bl GetBankSide + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, =gBankTarget + ldrb r0, [r4] + bl GetBankSide + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, =gBattleMons + ldrb r2, [r4] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 18 + ands r0, r1 + cmp r0, 0 + beq _080531CA + cmp r5, r3 + beq _080531CA + ldr r2, =gHitMarker + ldr r1, [r2] + movs r0, 0x80 + lsls r0, 17 + ands r0, r1 + cmp r0, 0 + bne _080531CA + movs r0, 0x40 + orrs r1, r0 + str r1, [r2] +_080531CA: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end b_feature_update_destiny_bond + + thumb_func_start atkAB_802A458 +atkAB_802A458: @ 80531E0 + push {lr} + bl b_feature_update_destiny_bond + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end atkAB_802A458 + + thumb_func_start atkAC_remaininghptopower +atkAC_remaininghptopower: @ 80531F8 + push {lr} + ldr r2, =gBattleMons + ldr r0, =gBankAttacker + ldrb r1, [r0] + movs r0, 0x58 + muls r1, r0 + adds r1, r2 + movs r2, 0x28 + ldrsh r0, [r1, r2] + movs r2, 0x2C + ldrsh r1, [r1, r2] + movs r2, 0x30 + bl sub_8075034 + lsls r0, 24 + lsrs r1, r0, 24 + movs r3, 0 + ldr r0, =gUnknown_0831C408 + ldrb r2, [r0] + cmp r1, r2 + ble _08053232 + adds r2, r0, 0 +_08053224: + adds r3, 0x2 + cmp r3, 0xB + bgt _08053232 + adds r0, r3, r2 + ldrb r0, [r0] + cmp r1, r0 + bgt _08053224 +_08053232: + ldr r2, =gUnknown_02024400 + ldr r1, =gUnknown_0831C408 + adds r0, r3, 0x1 + adds r0, r1 + ldrb r0, [r0] + strh r0, [r2] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end atkAC_remaininghptopower + + thumb_func_start atkAD_reducepprandom +atkAD_reducepprandom: @ 8053260 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r4, =gUnknown_02024248 + ldr r1, =gBankTarget + ldrb r3, [r1] + lsls r0, r3, 1 + adds r0, r4 + ldrh r2, [r0] + mov r8, r1 + cmp r2, 0 + bne _08053280 + b _08053408 +_08053280: + ldr r0, =0x0000ffff + cmp r2, r0 + bne _08053288 + b _08053408 +_08053288: + movs r7, 0 + ldr r0, =gBattleMons + movs r1, 0x58 + muls r1, r3 + adds r3, r0, 0 + adds r3, 0xC + adds r1, r3 + ldrh r1, [r1] + cmp r2, r1 + beq _080532C0 + adds r6, r4, 0 + mov r5, r8 + adds r4, r3, 0 + movs r3, 0x58 +_080532A4: + adds r7, 0x1 + cmp r7, 0x3 + bgt _080532C0 + ldrb r0, [r5] + lsls r2, r0, 1 + adds r2, r6 + lsls r1, r7, 1 + muls r0, r3 + adds r1, r0 + adds r1, r4 + ldrh r0, [r2] + ldrh r1, [r1] + cmp r0, r1 + bne _080532A4 +_080532C0: + cmp r7, 0x4 + bne _080532C6 + b _08053408 +_080532C6: + mov r4, r8 + ldrb r0, [r4] + movs r1, 0x58 + mov r9, r1 + mov r3, r9 + muls r3, r0 + adds r0, r3, 0 + adds r0, r7, r0 + ldr r1, =gBattleMons + adds r1, 0x24 + mov r10, r1 + add r0, r10 + ldrb r0, [r0] + cmp r0, 0x1 + bhi _080532E6 + b _08053408 +_080532E6: + bl Random + movs r1, 0x3 + ands r1, r0 + adds r6, r1, 0x2 + ldrb r0, [r4] + mov r3, r9 + muls r3, r0 + adds r0, r3, 0 + adds r0, r7, r0 + add r0, r10 + ldrb r0, [r0] + cmp r0, r6 + bge _08053304 + adds r6, r0, 0 +_08053304: + ldr r1, =gBattleTextBuff1 + movs r5, 0xFD + strb r5, [r1] + movs r0, 0x2 + strb r0, [r1, 0x1] + ldr r2, =gUnknown_02024248 + mov r3, r8 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1, 0x2] + ldrb r0, [r3] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + lsrs r0, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r4, =gBattleTextBuff2 + adds r0, r4, 0 + adds r1, r6, 0 + movs r2, 0 + movs r3, 0x1 + bl ConvertIntToDecimalStringN + strb r5, [r4] + movs r0, 0x1 + strb r0, [r4, 0x1] + strb r0, [r4, 0x2] + strb r0, [r4, 0x3] + strb r6, [r4, 0x4] + subs r0, 0x2 + strb r0, [r4, 0x5] + mov r1, r8 + ldrb r0, [r1] + mov r1, r9 + muls r1, r0 + adds r1, r7, r1 + add r1, r10 + ldrb r0, [r1] + subs r0, r6 + strb r0, [r1] + ldr r4, =gActiveBank + mov r3, r8 + ldrb r0, [r3] + strb r0, [r4] + ldr r1, =gDisableStructs + ldrb r3, [r4] + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x18] + lsrs r1, 4 + ldr r2, =gBitTable + lsls r0, r7, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _080533B8 + mov r2, r9 + muls r2, r3 + ldr r0, =gBattleMons + adds r0, 0x50 + adds r0, r2, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + bne _080533B8 + adds r1, r7, 0 + adds r1, 0x9 + lsls r1, 24 + lsrs r1, 24 + mov r3, r10 + adds r0, r2, r3 + adds r0, r7 + str r0, [sp] + movs r0, 0 + movs r2, 0 + movs r3, 0x1 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_080533B8: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + ldr r1, =gBattleMons + ldr r0, =gBankTarget + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r0, r7, r0 + adds r1, 0x24 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _08053422 + adds r0, r2, 0 + bl CancelMultiTurnMoves + b _08053422 + .pool +_08053408: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_08053422: + 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 atkAD_reducepprandom + + thumb_func_start atkAE_clearstatusifnotsoundproofed +atkAE_clearstatusifnotsoundproofed: @ 8053438 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + movs r4, 0 + str r4, [sp, 0x4] + mov r8, r4 + ldr r0, =gCurrentMove + ldrh r0, [r0] + cmp r0, 0xD7 + beq _08053454 + b _0805363E +_08053454: + ldr r6, =gBattleCommunication + mov r0, r8 + strb r0, [r6, 0x5] + ldr r5, =gBankAttacker + ldrb r0, [r5] + bl GetBankSide + lsls r0, 24 + ldr r1, =gEnemyParty + mov r10, r1 + cmp r0, 0 + bne _08053470 + ldr r2, =gPlayerParty + mov r10, r2 +_08053470: + ldr r4, =gBattleMons + ldrb r3, [r5] + movs r7, 0x58 + adds r2, r3, 0 + muls r2, r7 + adds r0, r2, r4 + adds r1, r0, 0 + adds r1, 0x20 + ldrb r0, [r1] + cmp r0, 0x2B + beq _080534C4 + adds r0, r4, 0 + adds r0, 0x4C + adds r0, r2, r0 + mov r1, r8 + str r1, [r0] + ldrb r0, [r5] + adds r2, r0, 0 + muls r2, r7 + adds r0, r4, 0 + adds r0, 0x50 + adds r2, r0 + ldr r0, [r2] + ldr r1, =0xf7ffffff + ands r0, r1 + str r0, [r2] + b _080534D4 + .pool +_080534C4: + ldrb r1, [r1] + adds r0, r3, 0 + bl RecordAbilityBattle + ldrb r0, [r6, 0x5] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r6, 0x5] +_080534D4: + ldr r7, =gActiveBank + ldr r0, =gBankAttacker + ldrb r0, [r0] + bl GetBankIdentity + movs r2, 0x2 + mov r9, r2 + mov r1, r9 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl GetBankByPlayerAI + ldr r1, =gBattleScripting + strb r0, [r1, 0x17] + strb r0, [r7] + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0805357A + ldr r0, =gAbsentBankFlags + ldrb r2, [r0] + ldr r1, =gBitTable + ldrb r3, [r7] + lsls r0, r3, 2 + adds r0, r1 + ldr r0, [r0] + ands r2, r0 + cmp r2, 0 + bne _0805357A + ldr r5, =gBattleMons + movs r6, 0x58 + adds r4, r3, 0 + muls r4, r6 + adds r0, r4, r5 + adds r1, r0, 0 + adds r1, 0x20 + ldrb r0, [r1] + cmp r0, 0x2B + beq _08053568 + adds r0, r5, 0 + adds r0, 0x4C + adds r0, r4, r0 + str r2, [r0] + ldrb r0, [r7] + adds r2, r0, 0 + muls r2, r6 + adds r0, r5, 0 + adds r0, 0x50 + adds r2, r0 + ldr r0, [r2] + ldr r1, =0xf7ffffff + ands r0, r1 + str r0, [r2] + b _0805357A + .pool +_08053568: + ldrb r1, [r1] + adds r0, r3, 0 + bl RecordAbilityBattle + ldr r1, =gBattleCommunication + ldrb r0, [r1, 0x5] + mov r2, r9 + orrs r0, r2 + strb r0, [r1, 0x5] +_0805357A: + movs r6, 0 + ldr r7, =gBattleMons +_0805357E: + movs r0, 0x64 + adds r4, r6, 0 + muls r4, r0 + add r4, r10 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + movs r1, 0x2E + bl GetMonData + lsls r0, 24 + lsrs r4, r0, 24 + cmp r5, 0 + beq _08053636 + movs r0, 0xCE + lsls r0, 1 + cmp r5, r0 + beq _08053636 + ldr r2, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r2 + ldrh r0, [r0] + cmp r0, r6 + bne _080535D0 + movs r0, 0x58 + muls r0, r1 + b _08053600 + .pool +_080535D0: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08053618 + ldr r0, =gActiveBank + ldrb r3, [r0] + lsls r0, r3, 1 + adds r0, r2 + ldrh r0, [r0] + cmp r0, r6 + bne _08053618 + ldr r0, =gAbsentBankFlags + ldrb r1, [r0] + ldr r2, =gBitTable + lsls r0, r3, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _08053618 + movs r0, 0x58 + muls r0, r3 +_08053600: + adds r0, r7 + adds r0, 0x20 + ldrb r0, [r0] + b _08053624 + .pool +_08053618: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_806B694 + lsls r0, 24 + lsrs r0, 24 +_08053624: + cmp r0, 0x2B + beq _08053636 + movs r0, 0x1 + lsls r0, r6 + mov r1, r8 + orrs r1, r0 + lsls r0, r1, 24 + lsrs r0, 24 + mov r8, r0 +_08053636: + adds r6, 0x1 + cmp r6, 0x5 + ble _0805357E + b _080536BC +_0805363E: + ldr r1, =gBattleCommunication + movs r0, 0x4 + strb r0, [r1, 0x5] + movs r2, 0x3F + mov r8, r2 + ldr r3, =gBattleMons + ldr r2, =gBankAttacker + ldrb r0, [r2] + movs r5, 0x58 + muls r0, r5 + movs r1, 0x4C + adds r1, r3 + mov r9, r1 + add r0, r9 + str r4, [r0] + ldrb r0, [r2] + adds r1, r0, 0 + muls r1, r5 + adds r7, r3, 0 + adds r7, 0x50 + adds r1, r7 + ldr r0, [r1] + ldr r6, =0xf7ffffff + ands r0, r6 + str r0, [r1] + ldrb r0, [r2] + bl GetBankIdentity + movs r1, 0x2 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl GetBankByPlayerAI + ldr r4, =gActiveBank + strb r0, [r4] + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080536BC + ldr r0, =gAbsentBankFlags + ldrb r2, [r0] + ldr r1, =gBitTable + ldrb r3, [r4] + lsls r0, r3, 2 + adds r0, r1 + ldr r0, [r0] + ands r2, r0 + cmp r2, 0 + bne _080536BC + adds r0, r3, 0 + muls r0, r5 + add r0, r9 + str r2, [r0] + ldrb r0, [r4] + adds r1, r0, 0 + muls r1, r5 + adds r1, r7 + ldr r0, [r1] + ands r0, r6 + str r0, [r1] +_080536BC: + mov r2, r8 + cmp r2, 0 + beq _080536DE + ldr r4, =gActiveBank + ldr r0, =gBankAttacker + ldrb r0, [r0] + strb r0, [r4] + add r0, sp, 0x4 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r3, 0x4 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_080536DE: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atkAE_clearstatusifnotsoundproofed + + thumb_func_start atkAF_cursetarget +atkAF_cursetarget: @ 805371C + push {r4,r5,lr} + ldr r5, =gBattleMons + ldr r0, =gBankTarget + ldrb r0, [r0] + movs r4, 0x58 + adds r1, r0, 0 + muls r1, r4 + adds r0, r5, 0 + adds r0, 0x50 + adds r1, r0 + ldr r2, [r1] + movs r3, 0x80 + lsls r3, 21 + adds r0, r2, 0 + ands r0, r3 + cmp r0, 0 + beq _08053768 + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0805378C + .pool +_08053768: + orrs r2, r3 + str r2, [r1] + ldr r1, =gBattleMoveDamage + ldr r0, =gBankAttacker + ldrb r0, [r0] + muls r0, r4 + adds r0, r5 + ldrh r0, [r0, 0x2C] + lsrs r0, 1 + str r0, [r1] + cmp r0, 0 + bne _08053784 + movs r0, 0x1 + str r0, [r1] +_08053784: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0805378C: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end atkAF_cursetarget + + thumb_func_start atkB0_setspikes +atkB0_setspikes: @ 80537A0 + push {r4,lr} + ldr r4, =gBankAttacker + ldrb r0, [r4] + bl GetBankSide + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gSideTimers + lsls r2, r0, 1 + adds r0, r2, r0 + lsls r0, 2 + adds r3, r0, r1 + ldrb r0, [r3, 0xA] + cmp r0, 0x3 + bne _08053804 + ldr r2, =gSpecialStatuses + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0] + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0805381E + .pool +_08053804: + ldr r1, =gUnknown_0202428E + adds r1, r2, r1 + ldrh r2, [r1] + movs r0, 0x10 + orrs r0, r2 + strh r0, [r1] + ldrb r0, [r3, 0xA] + adds r0, 0x1 + strb r0, [r3, 0xA] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0805381E: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atkB0_setspikes + + thumb_func_start atkB1_setforesight +atkB1_setforesight: @ 805382C + ldr r1, =gBattleMons + ldr r0, =gBankTarget + ldrb r2, [r0] + movs r0, 0x58 + muls r2, r0 + adds r1, 0x50 + adds r2, r1 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 22 + orrs r0, r1 + str r0, [r2] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .pool + thumb_func_end atkB1_setforesight + + thumb_func_start atkB2_setperishsong +atkB2_setperishsong: @ 805385C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r6, 0 + movs r3, 0 + ldr r0, =gNoOfAllBanks + adds r7, r0, 0 + ldr r0, =gBankAttacker + mov r8, r0 + ldrb r1, [r7] + cmp r6, r1 + bge _080538C8 + movs r5, 0x20 + ldr r0, =gBattleMons + mov r12, r0 + ldr r0, =gDisableStructs + adds r4, r0, 0 + adds r4, 0xF + ldr r2, =gStatuses3 +_08053884: + ldr r1, [r2] + adds r0, r1, 0 + ands r0, r5 + cmp r0, 0 + bne _0805389C + movs r0, 0x58 + muls r0, r3 + add r0, r12 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x2B + bne _080538B4 +_0805389C: + adds r6, 0x1 + b _080538BC + .pool +_080538B4: + orrs r1, r5 + str r1, [r2] + movs r0, 0x33 + strb r0, [r4] +_080538BC: + adds r4, 0x1C + adds r2, 0x4 + adds r3, 0x1 + ldrb r0, [r7] + cmp r3, r0 + blt _08053884 +_080538C8: + mov r1, r8 + ldrb r0, [r1] + bl sub_803F67C + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + cmp r6, r0 + bne _080538FC + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08053904 + .pool +_080538FC: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_08053904: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atkB2_setperishsong + + thumb_func_start atkB3_rolloutdamagecalculation +atkB3_rolloutdamagecalculation: @ 8053914 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _08053948 + ldr r0, =gBankAttacker + ldrb r0, [r0] + bl CancelMultiTurnMoves + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082D8A60 + str r0, [r1] + b _08053A60 + .pool +_08053948: + ldr r2, =gBattleMons + ldr r1, =gBankAttacker + ldrb r3, [r1] + movs r5, 0x58 + adds r0, r3, 0 + muls r0, r5 + adds r4, r2, 0 + adds r4, 0x50 + adds r0, r4 + ldr r0, [r0] + movs r7, 0x80 + lsls r7, 5 + ands r0, r7 + adds r6, r1, 0 + mov r9, r2 + ldr r1, =gDisableStructs + mov r12, r1 + ldr r2, =gCurrentMove + mov r8, r2 + cmp r0, 0 + bne _080539BA + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + add r0, r12 + ldrb r2, [r0, 0x11] + movs r1, 0x10 + negs r1, r1 + ands r1, r2 + movs r2, 0x5 + orrs r1, r2 + strb r1, [r0, 0x11] + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r12 + ldrb r2, [r0, 0x11] + movs r1, 0xF + ands r1, r2 + movs r2, 0x50 + orrs r1, r2 + strb r1, [r0, 0x11] + ldrb r0, [r6] + adds r1, r0, 0 + muls r1, r5 + adds r1, r4 + ldr r0, [r1] + orrs r0, r7 + str r0, [r1] + ldr r1, =gUnknown_02024268 + ldrb r0, [r6] + lsls r0, 1 + adds r0, r1 + mov r2, r8 + ldrh r1, [r2] + strh r1, [r0] +_080539BA: + ldrb r0, [r6] + lsls r2, r0, 3 + subs r2, r0 + lsls r2, 2 + add r2, r12 + ldrb r3, [r2, 0x11] + lsls r1, r3, 28 + lsrs r1, 28 + subs r1, 0x1 + movs r0, 0xF + ands r1, r0 + movs r0, 0x10 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x11] + cmp r1, 0 + bne _080539EE + ldrb r0, [r6] + adds r1, r0, 0 + muls r1, r5 + adds r1, r4 + ldr r0, [r1] + ldr r2, =0xffffefff + ands r0, r2 + str r0, [r1] +_080539EE: + ldr r3, =gUnknown_02024400 + ldr r2, =gBattleMoves + mov r0, r8 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + strh r0, [r3] + movs r2, 0x1 + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + mov r1, r12 + adds r4, r0, r1 + ldrb r0, [r4, 0x11] + lsls r0, 28 + lsrs r0, 28 + movs r1, 0x5 + subs r1, r0 + ldr r7, =gBattlescriptCurrInstr + adds r5, r3, 0 + cmp r2, r1 + bge _08053A3C + adds r1, r5, 0 + adds r3, r4, 0 + movs r4, 0x5 +_08053A28: + ldrh r0, [r1] + lsls r0, 1 + strh r0, [r1] + adds r2, 0x1 + ldrb r0, [r3, 0x11] + lsls r0, 28 + lsrs r0, 28 + subs r0, r4, r0 + cmp r2, r0 + blt _08053A28 +_08053A3C: + ldrb r1, [r6] + movs r0, 0x58 + muls r0, r1 + mov r1, r9 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 23 + ands r0, r1 + cmp r0, 0 + beq _08053A5A + ldrh r0, [r5] + lsls r0, 1 + strh r0, [r5] +_08053A5A: + ldr r0, [r7] + adds r0, 0x1 + str r0, [r7] +_08053A60: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atkB3_rolloutdamagecalculation + + thumb_func_start atkB4_jumpifconfusedandattackmaxed +atkB4_jumpifconfusedandattackmaxed: @ 8053A90 + push {r4,r5,lr} + ldr r5, =gBattleMons + ldr r0, =gBankTarget + ldrb r1, [r0] + movs r0, 0x58 + adds r3, r1, 0 + muls r3, r0 + adds r0, r5, 0 + adds r0, 0x50 + adds r0, r3, r0 + ldr r0, [r0] + movs r1, 0x7 + ands r0, r1 + ldr r4, =gBattlescriptCurrInstr + cmp r0, 0 + beq _08053AEC + ldr r2, [r4] + ldrb r0, [r2, 0x1] + adds r0, r3 + adds r1, r5, 0 + adds r1, 0x18 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0xC + bne _08053AEC + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + b _08053AF2 + .pool +_08053AEC: + ldr r0, [r4] + adds r0, 0x6 + str r0, [r4] +_08053AF2: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end atkB4_jumpifconfusedandattackmaxed + + thumb_func_start sub_8053AF8 +sub_8053AF8: @ 8053AF8 + push {r4,r5,lr} + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _08053B34 + ldr r2, =gDisableStructs + ldr r0, =gBankAttacker + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strb r1, [r0, 0x10] + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082D8A60 + str r0, [r1] + b _08053B8C + .pool +_08053B34: + ldr r5, =gDisableStructs + ldr r4, =gBankAttacker + ldrb r1, [r4] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r0, r5 + ldrb r0, [r1, 0x10] + cmp r0, 0x5 + beq _08053B4C + adds r0, 0x1 + strb r0, [r1, 0x10] +_08053B4C: + ldr r3, =gUnknown_02024400 + ldr r2, =gBattleMoves + ldr r0, =gCurrentMove + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + strh r0, [r3] + movs r2, 0x1 + ldrb r1, [r4] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r4, =gBattlescriptCurrInstr + ldrb r1, [r0, 0x10] + cmp r2, r1 + bge _08053B86 + adds r1, r3, 0 + adds r3, r0, 0 +_08053B78: + ldrh r0, [r1] + lsls r0, 1 + strh r0, [r1] + adds r2, 0x1 + ldrb r0, [r3, 0x10] + cmp r2, r0 + blt _08053B78 +_08053B86: + ldr r0, [r4] + adds r0, 0x1 + str r0, [r4] +_08053B8C: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8053AF8 + + thumb_func_start atkB6_happinesstodamagecalculation +atkB6_happinesstodamagecalculation: @ 8053BAC + push {r4,lr} + ldr r2, =gBattleMoves + ldr r0, =gCurrentMove + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x79 + bne _08053BEC + ldr r4, =gUnknown_02024400 + ldr r2, =gBattleMons + ldr r0, =gBankAttacker + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x2B + ldrb r1, [r0] + b _08053C02 + .pool +_08053BEC: + ldr r4, =gUnknown_02024400 + ldr r2, =gBattleMons + ldr r0, =gBankAttacker + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x2B + ldrb r0, [r0] + movs r1, 0xFF + subs r1, r0 +_08053C02: + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 1 + movs r1, 0x19 + bl __divsi3 + strh r0, [r4] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atkB6_happinesstodamagecalculation + + thumb_func_start atkB7_presentdamagecalculation +atkB7_presentdamagecalculation: @ 8053C30 + push {r4,lr} + bl Random + movs r4, 0xFF + ands r4, r0 + cmp r4, 0x65 + bgt _08053C4C + ldr r1, =gUnknown_02024400 + movs r0, 0x28 + strh r0, [r1] + b _08053C8E + .pool +_08053C4C: + cmp r4, 0xB1 + bgt _08053C5C + ldr r1, =gUnknown_02024400 + movs r0, 0x50 + strh r0, [r1] + b _08053C8E + .pool +_08053C5C: + cmp r4, 0xCB + bgt _08053C6C + ldr r1, =gUnknown_02024400 + movs r0, 0x78 + strh r0, [r1] + b _08053C8E + .pool +_08053C6C: + ldr r3, =gBattleMoveDamage + ldr r2, =gBattleMons + ldr r0, =gBankTarget + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x2C] + lsrs r0, 2 + str r0, [r3] + cmp r0, 0 + bne _08053C88 + movs r0, 0x1 + str r0, [r3] +_08053C88: + ldr r0, [r3] + negs r0, r0 + str r0, [r3] +_08053C8E: + cmp r4, 0xCB + bgt _08053CAC + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082D8A30 + b _08053CE6 + .pool +_08053CAC: + ldr r2, =gBattleMons + ldr r0, =gBankTarget + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r1, [r0, 0x2C] + ldrh r0, [r0, 0x28] + cmp r1, r0 + bne _08053CD8 + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082D9EFB + b _08053CE6 + .pool +_08053CD8: + ldr r2, =gBattleMoveFlags + ldrb r1, [r2] + movs r0, 0xF7 + ands r0, r1 + strb r0, [r2] + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082D9EE1 +_08053CE6: + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atkB7_presentdamagecalculation + + thumb_func_start atkB8_setsafeguard +atkB8_setsafeguard: @ 8053CFC + push {r4-r7,lr} + ldr r7, =gBankAttacker + ldrb r0, [r7] + bl GetBankIdentity + ldr r4, =gUnknown_0202428E + movs r6, 0x1 + adds r1, r6, 0 + ands r1, r0 + lsls r1, 1 + adds r1, r4 + ldrh r1, [r1] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08053D40 + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, =gBattleCommunication + movs r0, 0 + strb r0, [r1, 0x5] + b _08053D88 + .pool +_08053D40: + ldrb r0, [r7] + bl GetBankIdentity + adds r1, r6, 0 + ands r1, r0 + lsls r1, 1 + adds r1, r4 + ldrh r0, [r1] + movs r2, 0x20 + orrs r0, r2 + strh r0, [r1] + ldrb r0, [r7] + bl GetBankIdentity + ldr r5, =gSideTimers + adds r1, r6, 0 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r4, 0x5 + strb r4, [r0, 0x6] + ldrb r0, [r7] + bl GetBankIdentity + adds r1, r6, 0 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r7] + strb r1, [r0, 0x7] + ldr r0, =gBattleCommunication + strb r4, [r0, 0x5] +_08053D88: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atkB8_setsafeguard + + thumb_func_start atkB9_magnitudedamagecalculation +atkB9_magnitudedamagecalculation: @ 8053DA4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x4 + bgt _08053DD0 + ldr r1, =gUnknown_02024400 + movs r0, 0xA + strh r0, [r1] + movs r3, 0x4 + b _08053E3C + .pool +_08053DD0: + cmp r3, 0xE + bgt _08053DE4 + ldr r1, =gUnknown_02024400 + movs r0, 0x1E + strh r0, [r1] + movs r3, 0x5 + b _08053E3C + .pool +_08053DE4: + cmp r3, 0x22 + bgt _08053DF8 + ldr r1, =gUnknown_02024400 + movs r0, 0x32 + strh r0, [r1] + movs r3, 0x6 + b _08053E3C + .pool +_08053DF8: + cmp r3, 0x40 + bgt _08053E0C + ldr r1, =gUnknown_02024400 + movs r0, 0x46 + strh r0, [r1] + movs r3, 0x7 + b _08053E3C + .pool +_08053E0C: + cmp r3, 0x54 + bgt _08053E20 + ldr r1, =gUnknown_02024400 + movs r0, 0x5A + strh r0, [r1] + movs r3, 0x8 + b _08053E3C + .pool +_08053E20: + cmp r3, 0x5E + bgt _08053E34 + ldr r1, =gUnknown_02024400 + movs r0, 0x6E + strh r0, [r1] + movs r3, 0x9 + b _08053E3C + .pool +_08053E34: + ldr r1, =gUnknown_02024400 + movs r0, 0x96 + strh r0, [r1] + movs r3, 0xA +_08053E3C: + ldr r1, =gBattleTextBuff1 + movs r2, 0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x1 + strb r0, [r1, 0x1] + strb r0, [r1, 0x2] + movs r0, 0x2 + strb r0, [r1, 0x3] + strb r3, [r1, 0x4] + movs r0, 0xFF + strb r0, [r1, 0x5] + ldr r1, =gBankTarget + strb r2, [r1] + ldr r0, =gNoOfAllBanks + ldrb r3, [r0] + adds r6, r1, 0 + ldr r0, =gBattlescriptCurrInstr + mov r8, r0 + cmp r2, r3 + bcs _08053E94 + adds r4, r6, 0 + ldr r0, =gBankAttacker + ldrb r5, [r0] + ldr r1, =gBitTable + mov r12, r1 + ldr r7, =gAbsentBankFlags +_08053E72: + ldrb r2, [r4] + cmp r2, r5 + beq _08053E88 + ldrb r0, [r7] + ldrb r1, [r6] + lsls r1, 2 + add r1, r12 + ldr r1, [r1] + ands r0, r1 + cmp r0, 0 + beq _08053E94 +_08053E88: + adds r0, r2, 0x1 + strb r0, [r4] + lsls r0, 24 + lsrs r0, 24 + cmp r0, r3 + bcc _08053E72 +_08053E94: + mov r1, r8 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atkB9_magnitudedamagecalculation + + thumb_func_start atkBA_802B140 +atkBA_802B140: @ 8053EC8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, =gUnknown_02024212 + ldrb r0, [r0] + cmp r0, 0x1 + bne _08053EF8 + ldr r0, =gBankAttacker + ldrb r0, [r0] + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _08053EF4 + movs r0, 0x1 + b _08053F12 + .pool +_08053EF4: + movs r0, 0 + b _08053F12 +_08053EF8: + ldr r0, =gBankAttacker + ldrb r0, [r0] + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _08053F10 + movs r0, 0x3 + b _08053F12 + .pool +_08053F10: + movs r0, 0x2 +_08053F12: + bl GetBankByPlayerAI + ldr r1, =gBankTarget + strb r0, [r1] + ldr r0, =gUnknown_0202421C + ldr r1, =gBankTarget + ldrb r3, [r1] + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, 0 + beq _08053F2A + b _08054030 +_08053F2A: + ldr r5, =gBankAttacker + ldr r0, =gBattleStruct + ldr r1, [r0] + adds r1, r3, r1 + ldrb r2, [r5] + ldrb r1, [r1, 0xC] + cmp r2, r1 + bne _08054030 + ldr r4, =gBattleMons + movs r2, 0x58 + adds r0, r3, 0 + muls r0, r2 + adds r1, r4, 0 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + movs r1, 0x27 + ands r0, r1 + cmp r0, 0 + bne _08054030 + ldrb r0, [r5] + muls r0, r2 + adds r0, r4 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _08054030 + ldr r0, =gDisableStructs + lsls r1, r3, 3 + subs r1, r3 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x18] + lsls r0, 31 + cmp r0, 0 + bne _08054030 + ldr r0, =gUnknown_02024274 + lsls r1, r3, 1 + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0xE4 + bne _08054030 + movs r1, 0 + ldr r0, =gNoOfAllBanks + ldr r2, =gCurrentMove + mov r8, r2 + ldr r7, =gCurrMovePos + mov r10, r7 + ldr r2, =gUnknown_020241E9 + mov r9, r2 + ldr r7, =gHitMarker + mov r12, r7 + ldrb r2, [r0] + cmp r1, r2 + bge _08053FB6 + ldr r6, =gTurnOrder + ldr r5, =gBankTarget + ldr r4, =gUnknown_0202407A + movs r3, 0xB + adds r2, r0, 0 +_08053FA0: + adds r0, r1, r6 + ldrb r0, [r0] + ldrb r7, [r5] + cmp r0, r7 + bne _08053FAE + adds r0, r1, r4 + strb r3, [r0] +_08053FAE: + adds r1, 0x1 + ldrb r0, [r2] + cmp r1, r0 + blt _08053FA0 +_08053FB6: + movs r0, 0xE4 + mov r1, r8 + strh r0, [r1] + ldr r2, =gBankTarget + ldrb r0, [r2] + ldr r7, =gBattleStruct + ldr r1, [r7] + adds r0, r1 + adds r0, 0x80 + ldrb r0, [r0] + mov r1, r9 + strb r0, [r1] + mov r2, r10 + strb r0, [r2] + ldr r7, =gBattlescriptCurrInstr + ldr r0, [r7] + adds r0, 0x5 + str r0, [r7] + movs r0, 0x1 + ldr r1, =gBattleScripting + strb r0, [r1, 0x18] + mov r2, r12 + ldr r0, [r2] + ldr r1, =0xfffffbff + ands r0, r1 + str r0, [r2] + b _0805404A + .pool +_08054030: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_0805404A: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atkBA_802B140 + + thumb_func_start sub_805405C +sub_805405C: @ 805405C + push {lr} + ldr r2, =gBattleWeather + ldrh r1, [r2] + movs r0, 0x60 + ands r0, r1 + cmp r0, 0 + beq _08054088 + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, =gBattleCommunication + movs r0, 0x2 + strb r0, [r1, 0x5] + b _0805409A + .pool +_08054088: + movs r0, 0x20 + strh r0, [r2] + ldr r1, =gBattleCommunication + movs r0, 0x4 + strb r0, [r1, 0x5] + ldr r0, =gUnknown_020243D0 + adds r0, 0x28 + movs r1, 0x5 + strb r1, [r0] +_0805409A: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end sub_805405C + + thumb_func_start atkBC_maxattackhalvehp +atkBC_maxattackhalvehp: @ 80540B4 + push {r4,r5,lr} + ldr r5, =gBattleMons + ldr r4, =gBankAttacker + ldrb r0, [r4] + movs r3, 0x58 + muls r0, r3 + adds r2, r0, r5 + ldrh r0, [r2, 0x2C] + lsrs r1, r0, 1 + cmp r1, 0 + bne _080540CC + movs r1, 0x1 +_080540CC: + movs r0, 0x19 + ldrsb r0, [r2, r0] + cmp r0, 0xB + bgt _08054110 + ldrh r0, [r2, 0x28] + cmp r0, r1 + bls _08054110 + movs r0, 0xC + strb r0, [r2, 0x19] + ldr r1, =gBattleMoveDamage + ldrb r0, [r4] + muls r0, r3 + adds r0, r5 + ldrh r0, [r0, 0x2C] + lsrs r0, 1 + str r0, [r1] + cmp r0, 0 + bne _080540F4 + movs r0, 0x1 + str r0, [r1] +_080540F4: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0805412A + .pool +_08054110: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_0805412A: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end atkBC_maxattackhalvehp + + thumb_func_start atkBD_copyfoestats +atkBD_copyfoestats: @ 8054134 + push {r4-r7,lr} + movs r2, 0 + ldr r7, =gBattlescriptCurrInstr + ldr r6, =gBankAttacker + movs r4, 0x58 + ldr r3, =gUnknown_0202409C + ldr r5, =gBankTarget +_08054142: + ldrb r0, [r6] + adds r1, r0, 0 + muls r1, r4 + adds r1, r2, r1 + adds r1, r3 + ldrb r0, [r5] + muls r0, r4 + adds r0, r2, r0 + adds r0, r3 + ldrb r0, [r0] + strb r0, [r1] + adds r2, 0x1 + cmp r2, 0x7 + ble _08054142 + ldr r0, [r7] + adds r0, 0x5 + str r0, [r7] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atkBD_copyfoestats + + thumb_func_start atkBE_breakfree +atkBE_breakfree: @ 805417C + push {r4-r6,lr} + ldr r1, =gBattleMons + ldr r5, =gBankAttacker + ldrb r2, [r5] + movs r6, 0x58 + adds r0, r2, 0 + muls r0, r6 + adds r4, r1, 0 + adds r4, 0x50 + adds r0, r4 + ldr r0, [r0] + movs r1, 0xE0 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _08054210 + ldr r1, =gBattleScripting + ldr r3, =gBankTarget + ldrb r0, [r3] + strb r0, [r1, 0x17] + ldrb r0, [r5] + adds r1, r0, 0 + muls r1, r6 + adds r1, r4 + ldr r0, [r1] + ldr r2, =0xffff1fff + ands r0, r2 + str r0, [r1] + ldrb r0, [r5] + ldr r1, =gBattleStruct + ldr r2, [r1] + adds r0, r2 + ldrb r0, [r0, 0x14] + strb r0, [r3] + ldr r1, =gBattleTextBuff1 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x2 + strb r0, [r1, 0x1] + ldrb r0, [r5] + lsls r0, 1 + adds r0, r2 + ldrb r0, [r0, 0x4] + strb r0, [r1, 0x2] + ldrb r0, [r5] + lsls r0, 1 + adds r0, r2 + ldrb r0, [r0, 0x5] + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + bl b_movescr_stack_push_cursor + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DAFC5 + b _080542BA + .pool +_08054210: + ldr r4, =gStatuses3 + lsls r0, r2, 2 + adds r3, r0, r4 + ldr r1, [r3] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08054250 + movs r0, 0x5 + negs r0, r0 + ands r1, r0 + str r1, [r3] + ldrb r1, [r5] + lsls r1, 2 + adds r1, r4 + ldr r0, [r1] + movs r2, 0x4 + negs r2, r2 + ands r0, r2 + str r0, [r1] + bl b_movescr_stack_push_cursor + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DAFD6 + b _080542BA + .pool +_08054250: + adds r0, r2, 0 + bl GetBankSide + ldr r4, =gUnknown_0202428E + lsls r0, 24 + lsrs r0, 23 + adds r0, r4 + ldrh r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080542B4 + ldrb r0, [r5] + bl GetBankSide + lsls r0, 24 + lsrs r0, 23 + adds r0, r4 + ldrh r2, [r0] + ldr r1, =0x0000ffef + ands r1, r2 + movs r4, 0 + strh r1, [r0] + ldrb r0, [r5] + bl GetBankSide + ldr r2, =gSideTimers + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + strb r4, [r1, 0xA] + bl b_movescr_stack_push_cursor + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DAFDD + b _080542BA + .pool +_080542B4: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 +_080542BA: + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end atkBE_breakfree + + thumb_func_start atkBF_setcurled +atkBF_setcurled: @ 80542C8 + ldr r1, =gBattleMons + ldr r0, =gBankAttacker + ldrb r2, [r0] + movs r0, 0x58 + muls r2, r0 + adds r1, 0x50 + adds r2, r1 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 23 + orrs r0, r1 + str r0, [r2] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .pool + thumb_func_end atkBF_setcurled + + thumb_func_start atkC0_recoverbasedonsunlight +atkC0_recoverbasedonsunlight: @ 80542F8 + push {r4-r7,lr} + sub sp, 0x4 + ldr r1, =gBankTarget + ldr r5, =gBankAttacker + ldrb r0, [r5] + strb r0, [r1] + ldr r7, =gBattleMons + ldrb r0, [r5] + movs r6, 0x58 + muls r0, r6 + adds r0, r7 + ldrh r1, [r0, 0x28] + ldrh r0, [r0, 0x2C] + cmp r1, r0 + beq _080543D8 + ldr r4, =gBattleWeather + ldrh r0, [r4] + cmp r0, 0 + beq _0805434A + movs r0, 0 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0xD + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _0805434A + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x4D + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + cmp r0, 0 + beq _08054378 +_0805434A: + ldr r3, =gBattleMoveDamage + ldr r2, =gBattleMons + ldr r0, =gBankAttacker + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x2C] + lsrs r0, 1 + str r0, [r3] + adds r1, r3, 0 + b _080543B2 + .pool +_08054378: + ldrh r1, [r4] + movs r0, 0x60 + ands r0, r1 + cmp r0, 0 + beq _080543A4 + ldr r4, =gBattleMoveDamage + ldrb r0, [r5] + muls r0, r6 + adds r0, r7 + ldrh r1, [r0, 0x2C] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + movs r1, 0x1E + bl __divsi3 + str r0, [r4] + adds r1, r4, 0 + b _080543B2 + .pool +_080543A4: + ldr r1, =gBattleMoveDamage + ldrb r0, [r5] + muls r0, r6 + adds r0, r7 + ldrh r0, [r0, 0x2C] + lsrs r0, 2 + str r0, [r1] +_080543B2: + adds r2, r1, 0 + ldr r0, [r2] + cmp r0, 0 + bne _080543BE + movs r0, 0x1 + str r0, [r2] +_080543BE: + ldr r0, [r1] + negs r0, r0 + str r0, [r1] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _080543F2 + .pool +_080543D8: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_080543F2: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atkC0_recoverbasedonsunlight + + thumb_func_start sub_8054400 +sub_8054400: @ 8054400 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r2, =gBattleMons + ldr r0, =gBankAttacker + ldrb r1, [r0] + movs r0, 0x58 + adds r4, r1, 0 + muls r4, r0 + adds r4, r2 + ldrb r0, [r4, 0x14] + mov r10, r0 + mov r7, r10 + lsls r7, 27 + adds r0, r7, 0 + lsrs r0, 27 + mov r10, r0 + movs r1, 0x2 + mov r2, r10 + ands r2, r1 + asrs r2, 1 + ldrh r7, [r4, 0x14] + mov r9, r7 + mov r0, r9 + lsls r0, 22 + mov r9, r0 + lsrs r3, r0, 27 + adds r0, r1, 0 + ands r0, r3 + orrs r2, r0 + ldrb r7, [r4, 0x15] + mov r8, r7 + mov r0, r8 + lsls r0, 25 + mov r8, r0 + lsrs r3, r0, 27 + adds r0, r1, 0 + ands r0, r3 + lsls r0, 1 + orrs r2, r0 + ldr r6, [r4, 0x14] + lsls r6, 12 + lsrs r3, r6, 27 + adds r0, r1, 0 + ands r0, r3 + lsls r0, 2 + orrs r2, r0 + ldrh r5, [r4, 0x16] + lsls r5, 23 + lsrs r3, r5, 27 + adds r0, r1, 0 + ands r0, r3 + lsls r0, 3 + orrs r2, r0 + ldrb r3, [r4, 0x17] + lsls r3, 26 + lsrs r0, r3, 27 + ands r1, r0 + lsls r1, 4 + orrs r2, r1 + movs r1, 0x1 + adds r4, r1, 0 + mov r7, r10 + ands r4, r7 + mov r0, r9 + lsrs r0, 27 + mov r9, r0 + adds r0, r1, 0 + mov r7, r9 + ands r0, r7 + lsls r0, 1 + orrs r4, r0 + mov r0, r8 + lsrs r0, 27 + mov r8, r0 + adds r0, r1, 0 + mov r7, r8 + ands r0, r7 + lsls r0, 2 + orrs r4, r0 + lsrs r6, 27 + adds r0, r1, 0 + ands r0, r6 + lsls r0, 3 + orrs r4, r0 + lsrs r5, 27 + adds r0, r1, 0 + ands r0, r5 + lsls r0, 4 + orrs r4, r0 + lsrs r3, 27 + ands r1, r3 + lsls r1, 5 + orrs r4, r1 + ldr r5, =gUnknown_02024400 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + movs r1, 0x3F + bl __divsi3 + adds r0, 0x1E + strh r0, [r5] + ldr r6, =gBattleStruct + ldr r5, [r6] + lsls r0, r4, 4 + subs r0, r4 + movs r1, 0x3F + bl __divsi3 + adds r0, 0x1 + strb r0, [r5, 0x13] + ldr r1, [r6] + ldrb r0, [r1, 0x13] + cmp r0, 0x8 + bls _080544F0 + adds r0, 0x1 + strb r0, [r1, 0x13] +_080544F0: + ldr r2, [r6] + ldrb r0, [r2, 0x13] + movs r1, 0xC0 + orrs r0, r1 + strb r0, [r2, 0x13] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8054400 + + thumb_func_start atkC2_selectnexttarget +atkC2_selectnexttarget: @ 8054524 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, =gBankTarget + movs r1, 0 + strb r1, [r0] + ldr r1, =gNoOfAllBanks + ldrb r1, [r1] + adds r6, r0, 0 + ldr r0, =gBattlescriptCurrInstr + mov r8, r0 + cmp r1, 0 + beq _0805456E + adds r3, r6, 0 + ldr r0, =gBankAttacker + ldrb r5, [r0] + ldr r0, =gBitTable + mov r12, r0 + adds r4, r1, 0 + ldr r7, =gAbsentBankFlags +_0805454C: + ldrb r2, [r3] + cmp r2, r5 + beq _08054562 + ldrb r0, [r7] + ldrb r1, [r6] + lsls r1, 2 + add r1, r12 + ldr r1, [r1] + ands r0, r1 + cmp r0, 0 + beq _0805456E +_08054562: + adds r0, r2, 0x1 + strb r0, [r3] + lsls r0, 24 + lsrs r0, 24 + cmp r0, r4 + bcc _0805454C +_0805456E: + mov r1, r8 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atkC2_selectnexttarget + + thumb_func_start atkC3_setfutureattack +atkC3_setfutureattack: @ 8054598 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + ldr r0, =gUnknown_020243D0 + mov r8, r0 + ldr r6, =gBankTarget + ldrb r1, [r6] + adds r0, r1, r0 + ldrb r7, [r0] + cmp r7, 0 + beq _080545DC + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _080546CC + .pool +_080545DC: + adds r0, r1, 0 + bl GetBankIdentity + ldr r4, =gUnknown_0202428E + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + mov r10, r1 + ands r0, r1 + lsls r0, 1 + adds r0, r4 + ldrh r2, [r0] + movs r1, 0x40 + movs r5, 0 + mov r3, sp + strh r5, [r3, 0x10] + orrs r1, r2 + strh r1, [r0] + ldrb r0, [r6] + lsls r0, 1 + mov r1, r8 + adds r1, 0x18 + adds r0, r1 + ldr r1, =gCurrentMove + mov r9, r1 + ldrh r1, [r1] + strh r1, [r0] + mov r0, r8 + adds r0, 0x4 + ldrb r2, [r6] + adds r0, r2 + ldr r5, =gBankAttacker + ldrb r1, [r5] + strb r1, [r0] + ldrb r0, [r6] + add r0, r8 + movs r1, 0x3 + strb r1, [r0] + ldrb r0, [r6] + bl GetBankIdentity + mov r1, r10 + ands r1, r0 + lsls r1, 1 + adds r1, r4 + ldrh r3, [r1] + ldrb r0, [r5] + movs r4, 0x58 + muls r0, r4 + ldr r2, =gBattleMons + adds r0, r2 + ldrb r1, [r6] + muls r1, r4 + adds r1, r2 + mov r4, r9 + ldrh r2, [r4] + str r7, [sp] + str r7, [sp, 0x4] + ldrb r4, [r5] + str r4, [sp, 0x8] + ldrb r4, [r6] + str r4, [sp, 0xC] + bl sub_806957C + ldrb r1, [r6] + lsls r1, 2 + mov r2, r8 + adds r2, 0x8 + adds r1, r2 + str r0, [r1] + ldr r1, =gProtectStructs + ldrb r0, [r5] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 28 + cmp r0, 0 + bge _0805468C + ldrb r4, [r6] + lsls r4, 2 + adds r4, r2 + ldr r1, [r4] + lsls r0, r1, 4 + subs r0, r1 + movs r1, 0xA + bl __divsi3 + str r0, [r4] +_0805468C: + mov r5, r9 + ldrh r1, [r5] + ldr r0, =0x00000161 + cmp r1, r0 + bne _080546BC + ldr r0, =gBattleCommunication + mov r1, r10 + strb r1, [r0, 0x5] + b _080546C4 + .pool +_080546BC: + ldr r0, =gBattleCommunication + mov r2, sp + ldrb r2, [r2, 0x10] + strb r2, [r0, 0x5] +_080546C4: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_080546CC: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atkC3_setfutureattack + + thumb_func_start atkC4_802B910 +atkC4_802B910: @ 80546E4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, =gBankAttacker + ldrb r0, [r0] + bl GetBankSide + lsls r0, 24 + ldr r7, =gEnemyParty + cmp r0, 0 + bne _080546FE + ldr r7, =gPlayerParty +_080546FE: + ldr r2, =gBattleMons + ldr r0, =gBankTarget + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x28] + cmp r0, 0 + bne _08054740 + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + b _080548DC + .pool +_08054740: + ldr r6, =gBattleCommunication + ldrb r0, [r6] + mov r8, r0 + cmp r0, 0x5 + bls _0805474C + b _080548A8 +_0805474C: + adds r4, r6, 0 + movs r5, 0x64 +_08054750: + ldrb r0, [r4] + muls r0, r5 + adds r0, r7, r0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _08054794 + ldrb r0, [r6] + muls r0, r5 + adds r0, r7, r0 + movs r1, 0x41 + bl GetMonData + cmp r0, 0 + beq _08054794 + ldrb r0, [r4] + muls r0, r5 + adds r0, r7, r0 + movs r1, 0x41 + bl GetMonData + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _08054794 + ldrb r0, [r4] + muls r0, r5 + adds r0, r7, r0 + movs r1, 0x37 + bl GetMonData + cmp r0, 0 + beq _080547A4 +_08054794: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + adds r6, r4, 0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bls _08054750 +_080547A4: + ldr r1, =gBattleCommunication + mov r9, r1 + ldrb r2, [r1] + cmp r2, 0x5 + bhi _080548A8 + ldr r1, =gBattleTextBuff1 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x4 + strb r0, [r1, 0x1] + ldr r6, =gBankAttacker + ldrb r0, [r6] + strb r0, [r1, 0x2] + strb r2, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x9 + str r0, [r1] + ldr r2, =gBattleMoveDamage + mov r8, r2 + ldr r5, =gBaseStats + mov r1, r9 + ldrb r0, [r1] + movs r4, 0x64 + muls r0, r4 + adds r0, r7, r0 + movs r1, 0xB + bl GetMonData + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r3, [r1, 0x1] + mov r2, r8 + str r3, [r2] + ldr r2, =gBattleMoves + ldr r0, =gCurrentMove + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + muls r0, r3 + mov r1, r8 + str r0, [r1] + mov r2, r9 + ldrb r0, [r2] + muls r0, r4 + adds r0, r7, r0 + movs r1, 0x38 + bl GetMonData + lsls r0, 1 + movs r1, 0x5 + bl __udivsi3 + adds r0, 0x2 + mov r2, r8 + ldr r1, [r2] + muls r0, r1 + str r0, [r2] + ldr r3, =gBattleMons + ldr r1, =gBankTarget + ldrb r2, [r1] + movs r1, 0x58 + muls r1, r2 + adds r1, r3 + ldrh r2, [r1] + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r5 + ldrb r1, [r1, 0x2] + bl __divsi3 + mov r1, r8 + str r0, [r1] + movs r1, 0x32 + bl __divsi3 + adds r2, r0, 0x2 + mov r0, r8 + str r2, [r0] + ldr r1, =gProtectStructs + ldrb r0, [r6] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 28 + cmp r0, 0 + bge _08054870 + lsls r0, r2, 4 + subs r0, r2 + movs r1, 0xA + bl __divsi3 + mov r1, r8 + str r0, [r1] +_08054870: + mov r2, r9 + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + b _080548E2 + .pool +_080548A8: + mov r0, r8 + cmp r0, 0 + beq _080548C8 + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + b _080548DC + .pool +_080548C8: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x5] + ldrb r0, [r2, 0x6] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x7] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x8] +_080548DC: + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_080548E2: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atkC4_802B910 + + thumb_func_start atkC5_hidepreattack +atkC5_hidepreattack: @ 80548F4 + push {lr} + ldr r0, =gCurrentMove + ldrh r1, [r0] + cmp r1, 0x5B + beq _08054934 + cmp r1, 0x5B + bgt _0805490C + cmp r1, 0x13 + beq _08054918 + b _08054960 + .pool +_0805490C: + ldr r0, =0x00000123 + cmp r1, r0 + beq _0805494C + adds r0, 0x31 + cmp r1, r0 + bne _08054960 +_08054918: + ldr r2, =gStatuses3 + ldr r0, =gBankAttacker + ldrb r1, [r0] + lsls r1, 2 + adds r1, r2 + ldr r0, [r1] + movs r2, 0x40 + b _0805495C + .pool +_08054934: + ldr r2, =gStatuses3 + ldr r0, =gBankAttacker + ldrb r1, [r0] + lsls r1, 2 + adds r1, r2 + ldr r0, [r1] + movs r2, 0x80 + b _0805495C + .pool +_0805494C: + ldr r2, =gStatuses3 + ldr r0, =gBankAttacker + ldrb r1, [r0] + lsls r1, 2 + adds r1, r2 + ldr r0, [r1] + movs r2, 0x80 + lsls r2, 11 +_0805495C: + orrs r0, r2 + str r0, [r1] +_08054960: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end atkC5_hidepreattack + + thumb_func_start atkC6_unhidepostattack +atkC6_unhidepostattack: @ 8054978 + push {lr} + ldr r0, =gCurrentMove + ldrh r1, [r0] + cmp r1, 0x5B + beq _080549BC + cmp r1, 0x5B + bgt _08054990 + cmp r1, 0x13 + beq _0805499C + b _080549EA + .pool +_08054990: + ldr r0, =0x00000123 + cmp r1, r0 + beq _080549D8 + adds r0, 0x31 + cmp r1, r0 + bne _080549EA +_0805499C: + ldr r2, =gStatuses3 + ldr r0, =gBankAttacker + ldrb r1, [r0] + lsls r1, 2 + adds r1, r2 + ldr r0, [r1] + movs r2, 0x41 + negs r2, r2 + b _080549E6 + .pool +_080549BC: + ldr r2, =gStatuses3 + ldr r0, =gBankAttacker + ldrb r1, [r0] + lsls r1, 2 + adds r1, r2 + ldr r0, [r1] + movs r2, 0x81 + negs r2, r2 + b _080549E6 + .pool +_080549D8: + ldr r2, =gStatuses3 + ldr r0, =gBankAttacker + ldrb r1, [r0] + lsls r1, 2 + adds r1, r2 + ldr r0, [r1] + ldr r2, =0xfffbffff +_080549E6: + ands r0, r2 + str r0, [r1] +_080549EA: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end atkC6_unhidepostattack + + thumb_func_start atkC7_setminimize +atkC7_setminimize: @ 8054A08 + push {lr} + ldr r0, =gHitMarker + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 18 + ands r0, r1 + cmp r0, 0 + beq _08054A2C + ldr r2, =gStatuses3 + ldr r0, =gBankAttacker + ldrb r1, [r0] + lsls r1, 2 + adds r1, r2 + ldr r0, [r1] + movs r2, 0x80 + lsls r2, 1 + orrs r0, r2 + str r0, [r1] +_08054A2C: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end atkC7_setminimize + + thumb_func_start sub_8054A48 +sub_8054A48: @ 8054A48 + push {lr} + ldr r3, =gBattleWeather + ldrh r1, [r3] + movs r2, 0x80 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _08054A78 + ldr r2, =gBattleMoveFlags + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, =gBattleCommunication + movs r0, 0x2 + strb r0, [r1, 0x5] + b _08054A86 + .pool +_08054A78: + strh r2, [r3] + ldr r0, =gBattleCommunication + movs r1, 0x5 + strb r1, [r0, 0x5] + ldr r0, =gUnknown_020243D0 + adds r0, 0x28 + strb r1, [r0] +_08054A86: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end sub_8054A48 + + thumb_func_start atkC9_jumpifattackandspecialattackcannotfall +atkC9_jumpifattackandspecialattackcannotfall: @ 8054AA0 + push {r4,lr} + ldr r2, =gBattleMons + ldr r0, =gBankTarget + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r1, r0, r2 + movs r0, 0x19 + ldrsb r0, [r1, r0] + adds r3, r2, 0 + cmp r0, 0 + bne _08054AF4 + movs r0, 0x1C + ldrsb r0, [r1, r0] + cmp r0, 0 + bne _08054AF4 + ldr r0, =gBattleCommunication + ldrb r0, [r0, 0x6] + cmp r0, 0x1 + beq _08054AF4 + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08054B20 + .pool +_08054AF4: + ldr r4, =gActiveBank + ldr r0, =gBankAttacker + ldrb r0, [r0] + strb r0, [r4] + ldr r2, =gBattleMoveDamage + ldrb r1, [r4] + movs r0, 0x58 + muls r0, r1 + adds r0, r3 + ldrh r0, [r0, 0x28] + str r0, [r2] + ldr r1, =0x00007fff + movs r0, 0 + bl dp01_build_cmdbuf_x18_0_aa_health_bar_update + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_08054B20: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atkC9_jumpifattackandspecialattackcannotfall + + thumb_func_start atkCA_setforcedtarget +atkCA_setforcedtarget: @ 8054B3C + push {r4,r5,lr} + ldr r4, =gBankAttacker + ldrb r0, [r4] + bl GetBankSide + ldr r5, =gSideTimers + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + movs r0, 0x1 + strb r0, [r1, 0x8] + ldrb r0, [r4] + bl GetBankSide + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r0, [r4] + strb r0, [r1, 0x9] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end atkCA_setforcedtarget + + thumb_func_start atkCB_setcharge +atkCB_setcharge: @ 8054B88 + push {r4,lr} + ldr r0, =gStatuses3 + ldr r3, =gBankAttacker + ldrb r1, [r3] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + movs r2, 0x80 + lsls r2, 2 + orrs r0, r2 + str r0, [r1] + ldr r4, =gDisableStructs + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r2, [r0, 0x12] + movs r1, 0x10 + negs r1, r1 + ands r1, r2 + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0, 0x12] + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r2, [r0, 0x12] + movs r1, 0xF + ands r1, r2 + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0, 0x12] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atkCB_setcharge + + thumb_func_start atkCC_callterrainattack +atkCC_callterrainattack: @ 8054BEC + push {r4,lr} + ldr r2, =gHitMarker + ldr r0, [r2] + ldr r1, =0xfffffbff + ands r0, r1 + str r0, [r2] + ldr r4, =gCurrentMove + ldr r1, =gUnknown_0831C414 + ldr r0, =gUnknown_02022FF0 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r4] + ldrh r0, [r4] + movs r1, 0 + bl GetMoveTarget + ldr r1, =gBankTarget + strb r0, [r1] + ldr r3, =gUnknown_082D86A8 + ldr r2, =gBattleMoves + ldrh r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + bl b_movescr_stack_push + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atkCC_callterrainattack + + thumb_func_start atkCD_cureifburnedparalysedorpoisoned +atkCD_cureifburnedparalysedorpoisoned: @ 8054C60 + push {r4-r6,lr} + sub sp, 0x4 + ldr r1, =gBattleMons + ldr r3, =gBankAttacker + ldrb r0, [r3] + movs r6, 0x58 + muls r0, r6 + adds r5, r1, 0 + adds r5, 0x4C + adds r2, r0, r5 + ldr r0, [r2] + movs r1, 0xD8 + ands r0, r1 + cmp r0, 0 + beq _08054CBC + movs r0, 0 + str r0, [r2] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + ldr r4, =gActiveBank + ldrb r0, [r3] + strb r0, [r4] + ldrb r0, [r4] + muls r0, r6 + adds r0, r5 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r2, 0 + movs r3, 0x4 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + b _08054CD6 + .pool +_08054CBC: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_08054CD6: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end atkCD_cureifburnedparalysedorpoisoned + + thumb_func_start atkCE_settorment +atkCE_settorment: @ 8054CE4 + push {lr} + ldr r1, =gBattleMons + ldr r0, =gBankTarget + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r1, [r0] + movs r2, 0x80 + lsls r2, 24 + cmp r1, 0 + bge _08054D28 + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08054D34 + .pool +_08054D28: + orrs r1, r2 + str r1, [r0] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_08054D34: + pop {r0} + bx r0 + .pool + thumb_func_end atkCE_settorment + + thumb_func_start atkCF_jumpifnodamage +atkCF_jumpifnodamage: @ 8054D3C + push {lr} + ldr r2, =gProtectStructs + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r1, r0, 4 + adds r0, r2, 0x4 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + bne _08054D5C + adds r0, r2, 0 + adds r0, 0x8 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + beq _08054D74 +_08054D5C: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08054D8E + .pool +_08054D74: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_08054D8E: + pop {r0} + bx r0 + .pool + thumb_func_end atkCF_jumpifnodamage + + thumb_func_start atkD0_settaunt +atkD0_settaunt: @ 8054D98 + push {r4,lr} + ldr r4, =gDisableStructs + ldr r3, =gBankTarget + ldrb r0, [r3] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r2, r1, r4 + ldrb r1, [r2, 0x13] + lsls r0, r1, 28 + cmp r0, 0 + bne _08054DE8 + movs r0, 0x10 + negs r0, r0 + ands r0, r1 + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2, 0x13] + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r2, [r0, 0x13] + movs r1, 0xF + ands r1, r2 + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0, 0x13] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08054E02 + .pool +_08054DE8: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_08054E02: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atkD0_settaunt + + thumb_func_start atkD1_sethelpinghand +atkD1_sethelpinghand: @ 8054E0C + push {r4,lr} + ldr r4, =gBankAttacker + ldrb r0, [r4] + bl GetBankIdentity + movs r1, 0x2 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl GetBankByPlayerAI + ldr r3, =gBankTarget + strb r0, [r3] + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08054E90 + ldr r0, =gAbsentBankFlags + ldrb r1, [r0] + ldr r2, =gBitTable + ldrb r3, [r3] + lsls r0, r3, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _08054E90 + ldr r1, =gProtectStructs + ldrb r0, [r4] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 28 + cmp r0, 0 + blt _08054E90 + lsls r0, r3, 4 + adds r2, r0, r1 + ldrb r1, [r2] + lsls r0, r1, 28 + cmp r0, 0 + blt _08054E90 + movs r0, 0x8 + orrs r0, r1 + strb r0, [r2] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08054EAA + .pool +_08054E90: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_08054EAA: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atkD1_sethelpinghand + + thumb_func_start sub_8054EB4 +sub_8054EB4: @ 8054EB4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r4, =gBattleTypeFlags + ldr r0, [r4] + movs r1, 0x80 + lsls r1, 19 + ands r0, r1 + cmp r0, 0 + bne _08054F9A + ldr r0, =gBankAttacker + ldrb r0, [r0] + bl GetBankSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08054EE8 + ldr r0, [r4] + ldr r1, =0x0a3f0902 + ands r0, r1 + cmp r0, 0 + beq _08054F9A +_08054EE8: + ldr r6, =gBankAttacker + ldrb r0, [r6] + bl GetBankSide + lsls r0, 24 + lsrs r4, r0, 24 + ldr r7, =gBankTarget + ldrb r0, [r7] + bl GetBankSide + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + ldr r1, =0x0a3f0902 + ands r0, r1 + cmp r0, 0 + bne _08054F46 + ldr r0, =gUnknown_020243D0 + adds r2, r0, 0 + adds r2, 0x29 + adds r0, r4, r2 + ldrb r1, [r0] + ldr r4, =gBitTable + ldr r3, =gBattlePartyID + ldrb r0, [r6] + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r4 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _08054F9A + adds r0, r5, r2 + ldrb r1, [r0] + ldrb r0, [r7] + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r4 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _08054F9A +_08054F46: + ldr r0, =gBattleMons + mov r8, r0 + ldr r1, =gBankAttacker + ldrb r4, [r1] + movs r5, 0x58 + adds r0, r4, 0 + muls r0, r5 + add r0, r8 + mov r9, r0 + ldrh r3, [r0, 0x2E] + adds r1, r3, 0 + cmp r1, 0 + bne _08054F6E + ldr r0, =gBankTarget + ldrb r0, [r0] + muls r0, r5 + add r0, r8 + ldrh r0, [r0, 0x2E] + cmp r0, 0 + beq _08054F9A +_08054F6E: + cmp r1, 0xAF + beq _08054F9A + ldr r7, =gBankTarget + ldrb r0, [r7] + muls r0, r5 + mov r2, r8 + adds r1, r0, r2 + ldrh r2, [r1, 0x2E] + cmp r2, 0xAF + beq _08054F9A + adds r0, r3, 0 + subs r0, 0x79 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xB + bls _08054F9A + adds r0, r2, 0 + subs r0, 0x79 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xB + bhi _08054FDC +_08054F9A: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08055132 + .pool +_08054FDC: + adds r0, r1, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x3C + bne _08055010 + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DB63F + str r0, [r1] + ldr r1, =gLastUsedAbility + ldrb r0, [r7] + muls r0, r5 + add r0, r8 + adds r0, 0x20 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + ldrb r1, [r1] + bl RecordAbilityBattle + b _08055132 + .pool +_08055010: + ldr r3, =gBattleStruct + mov r10, r3 + lsls r0, r4, 1 + adds r0, 0xD0 + ldr r1, [r3] + adds r6, r1, r0 + mov r0, r9 + ldrh r0, [r0, 0x2E] + mov r9, r0 + strh r2, [r6] + ldr r1, =gBankAttacker + ldrb r0, [r1] + muls r0, r5 + add r0, r8 + movs r1, 0 + strh r1, [r0, 0x2E] + ldrb r0, [r7] + muls r0, r5 + add r0, r8 + mov r2, r9 + strh r2, [r0, 0x2E] + ldr r4, =gActiveBank + ldr r3, =gBankAttacker + ldrb r0, [r3] + strb r0, [r4] + str r6, [sp] + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + movs r3, 0x2 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldr r1, =gBankAttacker + ldrb r0, [r1] + bl dp01_battle_side_mark_buffer_for_execution + ldrb r0, [r7] + strb r0, [r4] + ldrb r0, [r7] + muls r0, r5 + mov r1, r8 + adds r1, 0x2E + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + movs r3, 0x2 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r7] + bl dp01_battle_side_mark_buffer_for_execution + ldrb r0, [r7] + mov r2, r10 + ldr r1, [r2] + lsls r0, 1 + adds r0, r1 + adds r0, 0xC8 + movs r3, 0 + strb r3, [r0] + ldrb r0, [r7] + ldr r1, [r2] + lsls r0, 1 + adds r0, r1 + adds r0, 0xC9 + strb r3, [r0] + ldr r1, =gBankAttacker + ldrb r0, [r1] + ldr r1, [r2] + lsls r0, 1 + adds r0, r1 + adds r0, 0xC8 + strb r3, [r0] + ldr r2, =gBankAttacker + ldrb r0, [r2] + mov r3, r10 + ldr r1, [r3] + lsls r0, 1 + adds r0, r1 + adds r0, 0xC9 + movs r1, 0 + strb r1, [r0] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + ldr r1, =gBattleTextBuff1 + movs r3, 0xFD + strb r3, [r1] + movs r2, 0xA + strb r2, [r1, 0x1] + ldrh r0, [r6] + strb r0, [r1, 0x2] + ldrh r0, [r6] + lsrs r0, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, =gBattleTextBuff2 + strb r3, [r1] + strb r2, [r1, 0x1] + mov r2, r9 + strb r2, [r1, 0x2] + mov r3, r9 + lsrs r0, r3, 8 + strb r0, [r1, 0x3] + movs r0, 0x1 + negs r0, r0 + strb r0, [r1, 0x4] + cmp r3, 0 + beq _08055118 + ldrh r0, [r6] + cmp r0, 0 + beq _0805512C + ldr r1, =gBattleCommunication + movs r0, 0x2 + b _08055130 + .pool +_08055118: + ldrh r0, [r6] + cmp r0, 0 + beq _0805512C + ldr r0, =gBattleCommunication + movs r1, 0 + strb r1, [r0, 0x5] + b _08055132 + .pool +_0805512C: + ldr r1, =gBattleCommunication + movs r0, 0x1 +_08055130: + strb r0, [r1, 0x5] +_08055132: + 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_8054EB4 + + thumb_func_start sub_8055148 +sub_8055148: @ 8055148 + push {r4,lr} + ldr r3, =gBattleMons + ldr r4, =gBankTarget + ldrb r0, [r4] + movs r2, 0x58 + muls r0, r2 + adds r0, r3 + adds r0, 0x20 + ldrb r1, [r0] + adds r0, r1, 0 + cmp r0, 0 + beq _0805519C + cmp r0, 0x19 + beq _0805519C + ldr r0, =gBankAttacker + ldrb r0, [r0] + muls r0, r2 + adds r0, r3 + adds r0, 0x20 + strb r1, [r0] + ldr r1, =gLastUsedAbility + ldrb r0, [r4] + muls r0, r2 + adds r0, r3 + adds r0, 0x20 + ldrb r0, [r0] + strb r0, [r1] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _080551B6 + .pool +_0805519C: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_080551B6: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8055148 + + thumb_func_start atkD4_802C408 +atkD4_802C408: @ 80551C0 + push {r4-r7,lr} + ldr r7, =gBattlescriptCurrInstr + ldr r2, [r7] + ldrb r3, [r2, 0x1] + cmp r3, 0 + beq _080551D8 + cmp r3, 0x1 + beq _08055210 + b _0805528C + .pool +_080551D8: + ldr r1, =gUnknown_020243D0 + ldr r4, =gBankAttacker + adds r0, r1, 0 + adds r0, 0x20 + ldrb r5, [r4] + adds r3, r0, r5 + ldrb r0, [r3] + cmp r0, 0 + bne _0805525C + movs r0, 0x2 + strb r0, [r3] + ldrb r0, [r4] + adds r1, 0x24 + adds r1, r0, r1 + ldr r2, =gBattlePartyID + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1] + ldr r0, [r7] + adds r0, 0x6 + b _0805528A + .pool +_08055210: + ldr r1, =gBattleTextBuff1 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x4 + strb r0, [r1, 0x1] + ldr r4, =gBankTarget + ldrb r0, [r4] + strb r0, [r1, 0x2] + ldr r0, =gUnknown_020243D0 + adds r0, 0x24 + ldrb r5, [r4] + adds r0, r5 + ldrb r0, [r0] + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, =gBattleMoveDamage + ldr r6, =gBattleMons + ldrb r0, [r4] + movs r5, 0x58 + muls r0, r5 + adds r0, r6 + ldrh r0, [r0, 0x2C] + lsrs r0, 1 + str r0, [r1] + cmp r0, 0 + bne _08055248 + str r3, [r1] +_08055248: + ldr r0, [r1] + negs r0, r0 + str r0, [r1] + ldrb r0, [r4] + muls r0, r5 + adds r0, r6 + ldrh r1, [r0, 0x28] + ldrh r0, [r0, 0x2C] + cmp r1, r0 + bne _08055288 +_0805525C: + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r7] + b _0805528C + .pool +_08055288: + adds r0, r2, 0x6 +_0805528A: + str r0, [r7] +_0805528C: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end atkD4_802C408 + + thumb_func_start sub_8055294 +sub_8055294: @ 8055294 + push {lr} + ldr r1, =gStatuses3 + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 2 + adds r2, r0, r1 + ldr r1, [r2] + movs r3, 0x80 + lsls r3, 3 + adds r0, r1, 0 + ands r0, r3 + cmp r0, 0 + beq _080552D8 + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _080552E4 + .pool +_080552D8: + orrs r1, r3 + str r1, [r2] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_080552E4: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8055294 + + thumb_func_start atkD6_doubledamagedealtifdamaged +atkD6_doubledamagedealtifdamaged: @ 80552EC + push {lr} + ldr r3, =gProtectStructs + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r2, r0, 4 + adds r0, r3, 0x4 + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, 0 + beq _0805530C + adds r0, r2, r3 + ldr r1, =gBankTarget + ldrb r0, [r0, 0xC] + ldrb r1, [r1] + cmp r0, r1 + beq _08055324 +_0805530C: + adds r0, r3, 0 + adds r0, 0x8 + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, 0 + beq _0805532A + adds r0, r2, r3 + ldr r1, =gBankTarget + ldrb r0, [r0, 0xD] + ldrb r1, [r1] + cmp r0, r1 + bne _0805532A +_08055324: + ldr r1, =gBattleScripting + movs r0, 0x2 + strb r0, [r1, 0xE] +_0805532A: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end atkD6_doubledamagedealtifdamaged + + thumb_func_start sub_805534C +sub_805534C: @ 805534C + push {r4,lr} + ldr r1, =gStatuses3 + ldr r0, =gBankTarget + ldrb r3, [r0] + lsls r0, r3, 2 + adds r4, r0, r1 + ldr r2, [r4] + movs r0, 0xC0 + lsls r0, 5 + ands r0, r2 + cmp r0, 0 + bne _08055374 + ldr r1, =gBattleMons + movs r0, 0x58 + muls r0, r3 + adds r1, 0x4C + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080553A0 +_08055374: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _080553B0 + .pool +_080553A0: + movs r0, 0x80 + lsls r0, 5 + orrs r2, r0 + str r2, [r4] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_080553B0: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805534C + + thumb_func_start atkD8_setdamagetohealthdifference +atkD8_setdamagetohealthdifference: @ 80553BC + push {lr} + ldr r2, =gBattleMons + ldr r0, =gBankTarget + ldrb r0, [r0] + movs r1, 0x58 + muls r0, r1 + adds r3, r0, r2 + ldr r0, =gBankAttacker + ldrb r0, [r0] + muls r0, r1 + adds r1, r0, r2 + ldrh r0, [r3, 0x28] + ldrh r2, [r1, 0x28] + cmp r0, r2 + bhi _08055408 + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0805541A + .pool +_08055408: + ldr r2, =gBattleMoveDamage + ldrh r0, [r3, 0x28] + ldrh r1, [r1, 0x28] + subs r0, r1 + str r0, [r2] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0805541A: + pop {r0} + bx r0 + .pool + thumb_func_end atkD8_setdamagetohealthdifference + + thumb_func_start atkD9_scaledamagebyhealthratio +atkD9_scaledamagebyhealthratio: @ 8055428 + push {r4,lr} + ldr r4, =gUnknown_02024400 + ldrh r0, [r4] + cmp r0, 0 + bne _08055464 + ldr r2, =gBattleMoves + ldr r0, =gCurrentMove + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r3, [r0, 0x1] + ldr r2, =gBattleMons + ldr r0, =gBankAttacker + ldrb r1, [r0] + movs r0, 0x58 + muls r1, r0 + adds r1, r2 + ldrh r0, [r1, 0x28] + muls r0, r3 + ldrh r1, [r1, 0x2C] + bl __divsi3 + strh r0, [r4] + lsls r0, 16 + cmp r0, 0 + bne _08055464 + movs r0, 0x1 + strh r0, [r4] +_08055464: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atkD9_scaledamagebyhealthratio + + thumb_func_start atkDA_abilityswap +atkDA_abilityswap: @ 805548C + push {r4-r6,lr} + ldr r5, =gBattleMons + ldr r0, =gBankAttacker + ldrb r0, [r0] + movs r4, 0x58 + muls r0, r4 + adds r0, r5 + adds r2, r0, 0 + adds r2, 0x20 + ldrb r1, [r2] + cmp r1, 0 + bne _080554B4 + ldr r0, =gBankTarget + ldrb r0, [r0] + muls r0, r4 + adds r0, r5 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0 + beq _080554D4 +_080554B4: + cmp r1, 0x19 + beq _080554D4 + ldr r6, =gBankTarget + ldrb r0, [r6] + muls r0, r4 + adds r0, r5 + adds r0, 0x20 + ldrb r3, [r0] + cmp r3, 0x19 + beq _080554D4 + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _08055504 +_080554D4: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0805551A + .pool +_08055504: + ldrb r1, [r2] + strb r3, [r2] + ldrb r0, [r6] + muls r0, r4 + adds r0, r5 + adds r0, 0x20 + strb r1, [r0] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0805551A: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end atkDA_abilityswap + + thumb_func_start atkDB_imprisoneffect +atkDB_imprisoneffect: @ 8055524 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r1, =gStatuses3 + ldr r4, =gBankAttacker + ldrb r2, [r4] + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 6 + ands r0, r1 + cmp r0, 0 + beq _08055574 + b _080555F6 + .pool +_0805554C: + ldr r0, =gStatuses3 + mov r2, r9 + ldrb r1, [r2] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + movs r2, 0x80 + lsls r2, 6 + orrs r0, r2 + str r0, [r1] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _080555EE + .pool +_08055574: + adds r0, r2, 0 + bl GetBankSide + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldrb r0, [r4] + bl sub_803F548 + movs r6, 0 + b _080555E6 +_0805558A: + adds r0, r6, 0 + bl GetBankSide + lsls r0, 24 + lsrs r0, 24 + cmp r8, r0 + beq _080555E0 + movs r4, 0 + ldr r7, =gBankAttacker + mov r9, r7 + ldr r0, =gBattleMons + mov r12, r0 + mov r1, r9 + ldrb r0, [r1] + mov r2, r12 + adds r2, 0xC + movs r1, 0x58 + muls r0, r1 + adds r3, r0, r2 + adds r5, r6, 0 + muls r5, r1 +_080555B4: + movs r2, 0 + ldrh r1, [r3] + mov r0, r12 + adds r0, 0xC + adds r0, r5, r0 +_080555BE: + ldrh r7, [r0] + cmp r1, r7 + bne _080555C8 + cmp r1, 0 + bne _080555D0 +_080555C8: + adds r0, 0x2 + adds r2, 0x1 + cmp r2, 0x3 + ble _080555BE +_080555D0: + cmp r2, 0x4 + bne _080555DC + adds r3, 0x2 + adds r4, 0x1 + cmp r4, 0x3 + ble _080555B4 +_080555DC: + cmp r4, 0x4 + bne _0805554C +_080555E0: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_080555E6: + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + cmp r6, r0 + bcc _0805558A +_080555EE: + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + cmp r6, r0 + bne _08055610 +_080555F6: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_08055610: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atkDB_imprisoneffect + + thumb_func_start atkDC_setgrudge +atkDC_setgrudge: @ 805562C + push {lr} + ldr r1, =gStatuses3 + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 2 + adds r2, r0, r1 + ldr r1, [r2] + movs r3, 0x80 + lsls r3, 7 + adds r0, r1, 0 + ands r0, r3 + cmp r0, 0 + beq _08055670 + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0805567C + .pool +_08055670: + orrs r1, r3 + str r1, [r2] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0805567C: + pop {r0} + bx r0 + .pool + thumb_func_end atkDC_setgrudge + + thumb_func_start atkDD_weightdamagecalculation +atkDD_weightdamagecalculation: @ 8055684 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r5, 0 + ldr r2, =gUnknown_0831C428 + ldrh r0, [r2] + ldr r1, =0x0000ffff + cmp r0, r1 + beq _080556FC + adds r6, r2, 0 + ldr r0, =gBattleMons + mov r8, r0 + adds r7, r1, 0 + adds r4, r6, 0 +_080556A0: + ldr r0, =gBankTarget + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + add r0, r8 + ldrh r0, [r0] + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + bl sub_80C0630 + ldrh r1, [r4] + lsls r0, 16 + lsrs r0, 16 + cmp r1, r0 + bhi _080556CE + adds r4, 0x4 + adds r5, 0x2 + ldrh r0, [r4] + cmp r0, r7 + bne _080556A0 +_080556CE: + lsls r0, r5, 1 + adds r0, r6 + ldrh r1, [r0] + ldr r0, =0x0000ffff + cmp r1, r0 + beq _080556FC + ldr r0, =gUnknown_02024400 + adds r1, r5, 0x1 + lsls r1, 1 + adds r1, r6 + ldrh r1, [r1] + strh r1, [r0] + b _08055702 + .pool +_080556FC: + ldr r1, =gUnknown_02024400 + movs r0, 0x78 + strh r0, [r1] +_08055702: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atkDD_weightdamagecalculation + + thumb_func_start atkDE_asistattackselect +atkDE_asistattackselect: @ 805571C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + movs r0, 0 + mov r10, r0 + ldr r0, =gBattleStruct + ldr r0, [r0] + adds r0, 0x18 + str r0, [sp, 0x4] + ldr r0, =gBankAttacker + ldrb r0, [r0] + bl GetBankIdentity + movs r1, 0x1 + ands r1, r0 + ldr r0, =gPlayerParty + str r0, [sp] + cmp r1, 0 + beq _0805574C + ldr r1, =gEnemyParty + str r1, [sp] +_0805574C: + movs r2, 0 +_0805574E: + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + adds r1, r2, 0x1 + str r1, [sp, 0x8] + ldrh r0, [r0] + cmp r2, r0 + beq _080557F4 + movs r0, 0x64 + adds r6, r2, 0 + muls r6, r0 + ldr r0, [sp] + adds r4, r0, r6 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + cmp r0, 0 + beq _080557F4 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _080557F4 + movs r5, 0 + ldr r1, =0x0000ffff + mov r8, r1 + mov r9, r6 + mov r1, r10 + lsls r0, r1, 1 + ldr r1, [sp, 0x4] + adds r6, r0, r1 +_08055798: + movs r7, 0 + adds r1, r5, 0 + adds r1, 0xD + ldr r0, [sp] + add r0, r9 + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + bl sub_8052F84 + lsls r0, 24 + adds r1, r5, 0x1 + cmp r0, 0 + bne _080557EE + ldr r0, =gUnknown_0831C3E0 + ldrh r2, [r0] + adds r3, r0, 0 + cmp r2, r8 + beq _080557E2 + cmp r4, r2 + beq _080557D8 + ldr r5, =0x0000ffff + adds r2, r3, 0 +_080557CA: + adds r2, 0x2 + adds r7, 0x1 + ldrh r0, [r2] + cmp r0, r5 + beq _080557E2 + cmp r4, r0 + bne _080557CA +_080557D8: + lsls r0, r7, 1 + adds r0, r3 + ldrh r0, [r0] + cmp r0, r8 + bne _080557EE +_080557E2: + cmp r4, 0 + beq _080557EE + strh r4, [r6] + adds r6, 0x2 + movs r0, 0x1 + add r10, r0 +_080557EE: + adds r5, r1, 0 + cmp r5, 0x3 + ble _08055798 +_080557F4: + ldr r2, [sp, 0x8] + cmp r2, 0x5 + ble _0805574E + mov r1, r10 + cmp r1, 0 + beq _0805586C + ldr r2, =gHitMarker + ldr r0, [r2] + ldr r1, =0xfffffbff + ands r0, r1 + str r0, [r2] + ldr r4, =gRandomMove + bl Random + movs r1, 0xFF + ands r1, r0 + mov r0, r10 + muls r0, r1 + asrs r0, 8 + lsls r0, 1 + ldr r1, [sp, 0x4] + adds r0, r1 + ldrh r0, [r0] + strh r0, [r4] + ldrh r0, [r4] + movs r1, 0 + bl GetMoveTarget + ldr r1, =gBankTarget + strb r0, [r1] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08055886 + .pool +_0805586C: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_08055886: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atkDE_asistattackselect + + thumb_func_start atkDF_setmagiccoat +atkDF_setmagiccoat: @ 805589C + push {lr} + ldr r1, =gBankTarget + ldr r3, =gBankAttacker + ldrb r0, [r3] + strb r0, [r1] + ldr r2, =gSpecialStatuses + ldrb r1, [r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0] + ldr r0, =gUnknown_02024082 + ldrb r1, [r0] + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + bne _080558FC + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08055914 + .pool +_080558FC: + ldr r0, =gProtectStructs + ldrb r1, [r3] + lsls r1, 4 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x10 + orrs r0, r2 + strb r0, [r1] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_08055914: + pop {r0} + bx r0 + .pool + thumb_func_end atkDF_setmagiccoat + + thumb_func_start atkE0_setstealstatchange +atkE0_setstealstatchange: @ 8055920 + push {lr} + ldr r2, =gSpecialStatuses + ldr r3, =gBankAttacker + ldrb r1, [r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0] + ldr r0, =gUnknown_02024082 + ldrb r1, [r0] + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + bne _08055978 + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0805598E + .pool +_08055978: + ldr r0, =gProtectStructs + ldrb r1, [r3] + lsls r1, 4 + adds r1, r0 + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0805598E: + pop {r0} + bx r0 + .pool + thumb_func_end atkE0_setstealstatchange + + thumb_func_start atkE1_802CBE4 +atkE1_802CBE4: @ 805599C + push {r4-r6,lr} + ldr r4, =gBattleScripting + ldr r0, =gBattleStruct + ldr r0, [r0] + adds r0, 0xD8 + ldrb r0, [r0] + strb r0, [r4, 0x17] + ldrb r0, [r4, 0x17] + bl GetBankSide + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, =gBattleTextBuff1 + movs r0, 0xFD + strb r0, [r2] + movs r0, 0x9 + strb r0, [r2, 0x1] + ldr r3, =gBattleMons + ldrb r1, [r4, 0x17] + movs r0, 0x58 + muls r0, r1 + adds r0, r3 + adds r0, 0x20 + ldrb r0, [r0] + strb r0, [r2, 0x2] + movs r0, 0xFF + strb r0, [r2, 0x3] + ldr r2, =gBankTarget + ldr r1, =gNoOfAllBanks + ldrb r0, [r2] + ldrb r1, [r1] + cmp r0, r1 + bcs _08055A22 + adds r4, r2, 0 + ldr r6, =gBitTable +_080559E2: + ldrb r0, [r4] + bl GetBankSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, r5 + beq _08055A04 + ldr r0, =gAbsentBankFlags + ldrb r1, [r0] + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + ands r1, r0 + ldr r2, =gNoOfAllBanks + cmp r1, 0 + beq _08055A18 +_08055A04: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldr r1, =gNoOfAllBanks + lsls r0, 24 + lsrs r0, 24 + adds r2, r1, 0 + ldrb r1, [r2] + cmp r0, r1 + bcc _080559E2 +_08055A18: + ldr r0, =gBankTarget + ldrb r0, [r0] + ldrb r2, [r2] + cmp r0, r2 + bcc _08055A64 +_08055A22: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08055A6C + .pool +_08055A64: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_08055A6C: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end atkE1_802CBE4 + + thumb_func_start atkE2_cmde2 +atkE2_cmde2: @ 8055A78 + push {r4-r6,lr} + sub sp, 0x4 + ldr r5, =gBattlescriptCurrInstr + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r4, =gActiveBank + strb r0, [r4] + ldr r3, =gBattleMons + ldrb r0, [r4] + movs r6, 0x58 + adds r1, r0, 0 + muls r1, r6 + adds r0, r1, r3 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x1E + bne _08055AD2 + adds r3, 0x4C + adds r1, r3 + movs r0, 0 + str r0, [r1] + ldr r2, =gBitTable + ldrb r1, [r4] + ldr r0, =gBattleStruct + ldr r0, [r0] + adds r0, r1, r0 + adds r0, 0x58 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r2 + ldrb r2, [r0] + adds r0, r1, 0 + muls r0, r6 + adds r0, r3 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r3, 0x4 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_08055AD2: + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end atkE2_cmde2 + + thumb_func_start atkE3_jumpiffainted +atkE3_jumpiffainted: @ 8055AF4 + push {r4,lr} + ldr r4, =gBattlescriptCurrInstr + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl get_battle_side_of_something + ldr r1, =gActiveBank + strb r0, [r1] + ldr r2, =gBattleMons + ldrb r1, [r1] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x28] + cmp r0, 0 + bne _08055B3C + ldr r2, [r4] + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + b _08055B42 + .pool +_08055B3C: + ldr r0, [r4] + adds r0, 0x6 + str r0, [r4] +_08055B42: + pop {r4} + pop {r0} + bx r0 + thumb_func_end atkE3_jumpiffainted + + thumb_func_start sub_8055B48 +sub_8055B48: @ 8055B48 + push {lr} + ldr r0, =gUnknown_02022FF0 + ldrb r0, [r0] + cmp r0, 0x7 + bhi _08055BE4 + lsls r0, 2 + ldr r1, =_08055B64 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08055B64: + .4byte _08055B84 + .4byte _08055B90 + .4byte _08055B9C + .4byte _08055BA8 + .4byte _08055BB4 + .4byte _08055BC0 + .4byte _08055BCC + .4byte _08055BD8 +_08055B84: + ldr r1, =gBattleCommunication + movs r0, 0x2 + b _08055BE8 + .pool +_08055B90: + ldr r1, =gBattleCommunication + movs r0, 0x1 + b _08055BE8 + .pool +_08055B9C: + ldr r1, =gBattleCommunication + movs r0, 0x1B + b _08055BE8 + .pool +_08055BA8: + ldr r1, =gBattleCommunication + movs r0, 0x17 + b _08055BE8 + .pool +_08055BB4: + ldr r1, =gBattleCommunication + movs r0, 0x16 + b _08055BE8 + .pool +_08055BC0: + ldr r1, =gBattleCommunication + movs r0, 0x18 + b _08055BE8 + .pool +_08055BCC: + ldr r1, =gBattleCommunication + movs r0, 0x7 + b _08055BE8 + .pool +_08055BD8: + ldr r1, =gBattleCommunication + movs r0, 0x8 + b _08055BE8 + .pool +_08055BE4: + ldr r1, =gBattleCommunication + movs r0, 0x5 +_08055BE8: + strb r0, [r1, 0x3] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end sub_8055B48 + + thumb_func_start atkE5_pickupitemcalculation +atkE5_pickupitemcalculation: @ 8055C00 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + bl InBattlePike + lsls r0, 24 + cmp r0, 0 + beq _08055C18 + b _08055DD8 +_08055C18: + bl InBattlePyramid + lsls r0, 24 + cmp r0, 0 + beq _08055CC4 + movs r6, 0 + mov r7, sp + ldr r0, =gBaseStats + mov r8, r0 +_08055C2A: + movs r0, 0x64 + adds r4, r6, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + strh r0, [r7] + adds r0, r4, 0 + movs r1, 0x2E + bl GetMonData + cmp r0, 0 + beq _08055C6C + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + add r0, r8 + ldrb r0, [r0, 0x17] + b _08055C76 + .pool +_08055C6C: + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + add r0, r8 + ldrb r0, [r0, 0x16] +_08055C76: + cmp r0, 0x35 + bne _08055CB6 + cmp r5, 0 + beq _08055CB6 + movs r0, 0xCE + lsls r0, 1 + cmp r5, r0 + beq _08055CB6 + ldrh r0, [r7] + cmp r0, 0 + bne _08055CB6 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + bne _08055CB6 + bl CalculateBattlePyramidPickupItemId + strh r0, [r7] + movs r0, 0x64 + muls r0, r6 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xC + mov r2, sp + bl SetMonData +_08055CB6: + adds r6, 0x1 + cmp r6, 0x5 + ble _08055C2A + b _08055DD8 + .pool +_08055CC4: + movs r6, 0 + movs r1, 0x64 + mov r8, r1 + ldr r7, =gPlayerParty + mov r10, sp +_08055CCE: + mov r4, r8 + muls r4, r6 + adds r4, r7 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + mov r1, r10 + strh r0, [r1] + adds r0, r4, 0 + movs r1, 0x2E + bl GetMonData + cmp r0, 0 + beq _08055D30 + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + ldr r1, =gBaseStats + adds r0, r1 + ldrb r0, [r0, 0x17] + b _08055D3C + .pool +_08055D10: + mov r0, r8 + muls r0, r6 + adds r0, r7 + adds r2, r1, 0 + adds r2, 0x63 + subs r2, r4 + lsls r2, 1 + ldr r1, =gRarePickupItems + adds r2, r1 + movs r1, 0xC + bl SetMonData + b _08055DD0 + .pool +_08055D30: + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + ldr r1, =gBaseStats + adds r0, r1 + ldrb r0, [r0, 0x16] +_08055D3C: + adds r1, r6, 0x1 + mov r9, r1 + cmp r0, 0x35 + bne _08055DD0 + cmp r5, 0 + beq _08055DD0 + movs r0, 0xCE + lsls r0, 1 + cmp r5, r0 + beq _08055DD0 + mov r1, r10 + ldrh r0, [r1] + cmp r0, 0 + bne _08055DD0 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + bne _08055DD0 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r4, r0, 16 + mov r0, r8 + muls r0, r6 + adds r0, r7 + movs r1, 0x38 + bl GetMonData + subs r0, 0x1 + movs r1, 0xA + bl __udivsi3 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x9 + bls _08055D9C + movs r1, 0x9 +_08055D9C: + movs r2, 0 + b _08055DAE + .pool +_08055DA4: + adds r0, r4, 0 + subs r0, 0x62 + cmp r0, 0x1 + bls _08055D10 + adds r2, 0x1 +_08055DAE: + cmp r2, 0x8 + bgt _08055DD0 + ldr r0, =gPickupProbabilities + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, r4 + ble _08055DA4 + mov r0, r8 + muls r0, r6 + adds r0, r7 + adds r2, r1, r2 + lsls r2, 1 + ldr r1, =gPickupItems + adds r2, r1 + movs r1, 0xC + bl SetMonData +_08055DD0: + mov r6, r9 + cmp r6, 0x5 + bgt _08055DD8 + b _08055CCE +_08055DD8: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atkE5_pickupitemcalculation + + thumb_func_start atkE6_castform_transform +atkE6_castform_transform: @ 8055DFC + push {r4,lr} + ldr r4, =gActiveBank + ldr r0, =gBattleScripting + ldrb r0, [r0, 0x17] + strb r0, [r4] + ldr r1, =gBattleMons + ldrb r2, [r4] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + ldr r3, =gBattleStruct + cmp r0, 0 + beq _08055E2C + ldr r0, [r3] + adds r0, 0x7F + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] +_08055E2C: + ldr r0, [r3] + adds r0, 0x7F + ldrb r2, [r0] + movs r0, 0 + movs r1, 0 + bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atkE6_castform_transform + + thumb_func_start atkE7_castform_switch +atkE7_castform_switch: @ 8055E64 + push {r4,lr} + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + ldr r0, =gBattleScripting + ldrb r0, [r0, 0x17] + bl castform_switch + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _08055E8E + ldr r0, =gUnknown_082DB4A9 + bl b_push_move_exec + ldr r0, =gBattleStruct + ldr r0, [r0] + adds r0, 0x7F + subs r1, r4, 0x1 + strb r1, [r0] +_08055E8E: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atkE7_castform_switch + + thumb_func_start atkE8_settypebasedhalvers +atkE8_settypebasedhalvers: @ 8055EA4 + push {r4,lr} + movs r4, 0 + ldr r2, =gBattleMoves + ldr r0, =gCurrentMove + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0xC9 + bne _08055EF4 + ldr r1, =gStatuses3 + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 2 + adds r2, r0, r1 + ldr r1, [r2] + movs r3, 0x80 + lsls r3, 9 + adds r0, r1, 0 + ands r0, r3 + cmp r0, 0 + bne _08055F18 + orrs r1, r3 + str r1, [r2] + ldr r0, =gBattleCommunication + strb r4, [r0, 0x5] + b _08055F1C + .pool +_08055EF4: + ldr r1, =gStatuses3 + ldr r0, =gBankAttacker + ldrb r0, [r0] + lsls r0, 2 + adds r2, r0, r1 + ldr r1, [r2] + movs r3, 0x80 + lsls r3, 10 + adds r0, r1, 0 + ands r0, r3 + cmp r0, 0 + bne _08055F18 + orrs r1, r3 + str r1, [r2] + ldr r1, =gBattleCommunication + movs r0, 0x1 + strb r0, [r1, 0x5] + movs r4, 0x1 +_08055F18: + cmp r4, 0 + beq _08055F38 +_08055F1C: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08055F52 + .pool +_08055F38: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_08055F52: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atkE8_settypebasedhalvers + + thumb_func_start atkE9_seteffectbyweather +atkE9_seteffectbyweather: @ 8055F5C + push {lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0xD + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _08055FFC + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x4D + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + cmp r0, 0 + bne _08055FFC + ldr r2, =gBattleWeather + ldrb r0, [r2] + cmp r0, 0 + beq _08055F9A + ldr r1, =gBattleScripting + movs r0, 0x2 + strb r0, [r1, 0xE] +_08055F9A: + ldrh r1, [r2] + movs r0, 0x7 + ands r0, r1 + cmp r0, 0 + beq _08055FB8 + ldr r0, =gBattleStruct + ldr r1, [r0] + movs r0, 0x8B + b _08055FFA + .pool +_08055FB8: + movs r0, 0x18 + ands r0, r1 + cmp r0, 0 + beq _08055FCC + ldr r0, =gBattleStruct + ldr r1, [r0] + movs r0, 0x85 + b _08055FFA + .pool +_08055FCC: + movs r0, 0x60 + ands r0, r1 + cmp r0, 0 + beq _08055FE0 + ldr r0, =gBattleStruct + ldr r1, [r0] + movs r0, 0x8A + b _08055FFA + .pool +_08055FE0: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08055FF4 + ldr r0, =gBattleStruct + ldr r1, [r0] + movs r0, 0x8F + b _08055FFA + .pool +_08055FF4: + ldr r0, =gBattleStruct + ldr r1, [r0] + movs r0, 0x80 +_08055FFA: + strb r0, [r1, 0x13] +_08055FFC: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + add sp, 0x4 + pop {r0} + bx r0 + .pool + thumb_func_end atkE9_seteffectbyweather + + thumb_func_start atkEA_recycleitem +atkEA_recycleitem: @ 8056014 + push {r4-r7,lr} + sub sp, 0x4 + ldr r7, =gActiveBank + ldr r0, =gBankAttacker + ldrb r0, [r0] + strb r0, [r7] + ldr r1, =gBattleStruct + ldrb r2, [r7] + lsls r0, r2, 1 + adds r0, 0xB8 + ldr r1, [r1] + adds r6, r1, r0 + ldrh r5, [r6] + cmp r5, 0 + beq _08056094 + ldr r4, =gBattleMons + movs r3, 0x58 + adds r0, r2, 0 + muls r0, r3 + adds r0, r4 + ldrh r0, [r0, 0x2E] + cmp r0, 0 + bne _08056094 + ldr r1, =gUnknown_02024208 + strh r5, [r1] + strh r0, [r6] + ldrb r0, [r7] + muls r0, r3 + adds r0, r4 + ldrh r1, [r1] + strh r1, [r0, 0x2E] + ldrb r0, [r7] + muls r0, r3 + adds r1, r4, 0 + adds r1, 0x2E + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + movs r3, 0x2 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r7] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _080560AE + .pool +_08056094: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_080560AE: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atkEA_recycleitem + + thumb_func_start atkEB_settypetoterrain +atkEB_settypetoterrain: @ 80560BC + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, =gBattleMons + mov r8, r0 + ldr r7, =gBankAttacker + ldrb r0, [r7] + movs r6, 0x58 + muls r0, r6 + mov r1, r8 + adds r3, r0, r1 + movs r0, 0x21 + adds r0, r3 + mov r12, r0 + ldr r5, =gUnknown_0831C483 + ldr r4, =gUnknown_02022FF0 + ldrb r0, [r4] + adds r0, r5 + ldrb r2, [r0] + mov r1, r12 + ldrb r0, [r1] + adds r1, r2, 0 + cmp r0, r1 + beq _08056144 + adds r0, r3, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, r1 + beq _08056144 + mov r0, r12 + strb r2, [r0] + ldrb r0, [r7] + adds r1, r0, 0 + muls r1, r6 + add r1, r8 + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + adds r1, 0x22 + strb r0, [r1] + ldr r1, =gBattleTextBuff1 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x3 + strb r0, [r1, 0x1] + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + strb r0, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0805615E + .pool +_08056144: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_0805615E: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atkEB_settypetoterrain + + thumb_func_start atkEC_802D2A0 +atkEC_802D2A0: @ 805616C + push {r4-r6,lr} + ldr r5, =gBankAttacker + ldrb r0, [r5] + bl GetBankIdentity + movs r1, 0x2 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl GetBankByPlayerAI + ldr r4, =gActiveBank + strb r0, [r4] + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r6, 0x1 + ands r0, r6 + cmp r0, 0 + beq _0805620C + ldr r0, =gAbsentBankFlags + ldrb r1, [r0] + ldr r2, =gBitTable + ldrb r3, [r4] + lsls r0, r3, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _0805620C + ldr r0, =gUnknown_0202421C + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, 0 + bne _0805620C + ldr r1, =gUnknown_02024274 + lsls r0, r3, 1 + adds r0, r1 + ldrh r2, [r0] + cmp r2, 0xE4 + bne _0805620C + ldr r0, =gUnknown_0202407A + adds r0, r3, r0 + movs r1, 0xB + strb r1, [r0] + ldr r0, =gCurrentMove + strh r2, [r0] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + ldr r0, =gBattleScripting + strb r6, [r0, 0x18] + ldrb r1, [r5] + adds r0, 0x20 + strb r1, [r0] + ldrb r0, [r4] + strb r0, [r5] + b _08056226 + .pool +_0805620C: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_08056226: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end atkEC_802D2A0 + + thumb_func_start atkED_802D364 +atkED_802D364: @ 8056230 + push {r4,lr} + ldr r1, =gUnknown_0202420E + ldr r3, =gBankAttacker + ldrb r0, [r3] + strb r0, [r1] + ldr r2, =gBankTarget + lsls r0, 24 + lsrs r0, 24 + adds r4, r1, 0 + ldrb r1, [r2] + cmp r0, r1 + bne _08056264 + ldr r1, =gBattleScripting + ldrb r0, [r1, 0x17] + strb r0, [r2] + strb r0, [r3] + b _0805626A + .pool +_08056264: + ldr r1, =gBattleScripting + ldrb r0, [r1, 0x17] + strb r0, [r2] +_0805626A: + ldrb r0, [r4] + strb r0, [r1, 0x17] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atkED_802D364 + + thumb_func_start atkEE_removereflectlightscreen +atkEE_removereflectlightscreen: @ 8056284 + push {r4,lr} + ldr r0, =gBankAttacker + ldrb r0, [r0] + bl GetBankSide + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gSideTimers + lsls r3, r0, 1 + adds r0, r3, r0 + lsls r0, 2 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0 + bne _080562AC + ldrb r1, [r4, 0x2] + cmp r1, 0 + beq _080562E4 +_080562AC: + ldr r2, =gUnknown_0202428E + adds r2, r3, r2 + ldrh r1, [r2] + ldr r0, =0x0000fffe + ands r0, r1 + movs r3, 0 + ldr r1, =0x0000fffd + ands r0, r1 + strh r0, [r2] + strb r3, [r4] + strb r3, [r4, 0x2] + ldr r1, =gBattleScripting + movs r0, 0x1 + strb r0, [r1, 0x18] + strb r0, [r1, 0x19] + b _080562EA + .pool +_080562E4: + ldr r0, =gBattleScripting + strb r1, [r0, 0x18] + strb r1, [r0, 0x19] +_080562EA: + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end atkEE_removereflectlightscreen + + thumb_func_start sub_8056300 +sub_8056300: @ 8056300 + push {r4-r6,lr} + movs r4, 0 + ldr r0, =gBattleExecBuffer + ldr r0, [r0] + cmp r0, 0 + beq _0805630E + b _08056696 +_0805630E: + ldr r5, =gActiveBank + ldr r0, =gBankAttacker + ldrb r0, [r0] + strb r0, [r5] + ldr r6, =gBankTarget + movs r1, 0x1 + eors r0, r1 + strb r0, [r6] + ldr r0, =gBattleTypeFlags + ldr r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0805635C + movs r0, 0 + movs r1, 0x5 + bl dp01_build_cmdbuf_x0D_a + ldrb r0, [r5] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DBE02 + b _08056694 + .pool +_0805635C: + movs r0, 0x80 + lsls r0, 2 + ands r1, r0 + cmp r1, 0 + beq _08056384 + movs r0, 0 + movs r1, 0x4 + bl dp01_build_cmdbuf_x0D_a + ldrb r0, [r5] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DBDCA + b _08056694 + .pool +_08056384: + ldr r0, =gUnknown_02024208 + ldrh r0, [r0] + cmp r0, 0x5 + bne _080563B0 + ldr r0, =gBattleStruct + ldr r0, [r0] + adds r0, 0x7C + ldrb r0, [r0] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 8 + subs r0, r1 + movs r1, 0x64 + bl __divsi3 + lsls r0, 24 + lsrs r5, r0, 24 + b _080563C8 + .pool +_080563B0: + ldr r3, =gBaseStats + ldr r2, =gBattleMons + ldrb r1, [r6] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r5, [r0, 0x8] +_080563C8: + ldr r2, =gUnknown_02024208 + ldrh r0, [r2] + cmp r0, 0x5 + bhi _080563D2 + b _080564C8 +_080563D2: + subs r0, 0x6 + cmp r0, 0x6 + bls _080563DA + b _080564D2 +_080563DA: + lsls r0, 2 + ldr r1, =_080563F4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080563F4: + .4byte _08056410 + .4byte _08056440 + .4byte _08056452 + .4byte _08056480 + .4byte _080564B0 + .4byte _08056472 + .4byte _08056472 +_08056410: + ldr r2, =gBattleMons + ldr r0, =gBankTarget + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r1, r0, 0 + adds r1, 0x21 + ldrb r1, [r1] + cmp r1, 0xB + beq _080564A4 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0xB + beq _080564A4 + cmp r1, 0x6 + beq _080564A4 + cmp r0, 0x6 + beq _080564A4 + b _08056472 + .pool +_08056440: + bl sav1_map_get_light_level + lsls r0, 24 + lsrs r0, 24 + movs r4, 0xA + cmp r0, 0x5 + bne _080564D2 + movs r4, 0x23 + b _080564D2 +_08056452: + ldr r2, =gBattleMons + ldr r0, =gBankTarget + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x2A + ldrb r1, [r0] + cmp r1, 0x27 + bhi _08056472 + movs r0, 0x28 + subs r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x9 + bhi _080564D2 +_08056472: + movs r4, 0xA + b _080564D2 + .pool +_08056480: + ldr r2, =gBattleMons + ldr r0, =gBankTarget + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0] + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + bl pokedex_flag_operation + lsls r0, 24 + movs r4, 0xA + cmp r0, 0 + beq _080564D2 +_080564A4: + movs r4, 0x1E + b _080564D2 + .pool +_080564B0: + ldr r0, =gUnknown_03005D10 + ldrb r0, [r0, 0x13] + adds r0, 0xA + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x28 + bls _080564D2 + movs r4, 0x28 + b _080564D2 + .pool +_080564C8: + ldr r1, =gUnknown_0831C48D + ldrh r0, [r2] + subs r0, 0x2 + adds r0, r1 + ldrb r4, [r0] +_080564D2: + adds r0, r5, 0 + muls r0, r4 + movs r1, 0xA + bl __divsi3 + ldr r5, =gBattleMons + ldr r1, =gBankTarget + ldrb r2, [r1] + movs r1, 0x58 + adds r4, r2, 0 + muls r4, r1 + adds r3, r4, r5 + ldrh r2, [r3, 0x2C] + lsls r1, r2, 1 + adds r1, r2 + ldrh r2, [r3, 0x28] + lsls r2, 1 + subs r2, r1, r2 + muls r0, r2 + bl __divsi3 + adds r6, r0, 0 + adds r5, 0x4C + adds r4, r5 + ldr r4, [r4] + movs r0, 0x27 + ands r0, r4 + cmp r0, 0 + beq _0805650E + lsls r6, 1 +_0805650E: + movs r0, 0xD8 + ands r4, r0 + cmp r4, 0 + beq _08056522 + lsls r0, r6, 4 + subs r0, r6 + movs r1, 0xA + bl __udivsi3 + adds r6, r0, 0 +_08056522: + ldr r1, =gUnknown_02024208 + ldrh r0, [r1] + cmp r0, 0x5 + beq _08056564 + cmp r0, 0x1 + bne _08056550 + ldr r0, =gUnknown_03005D10 + ldrb r1, [r0, 0x5] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0, 0x5] + b _08056564 + .pool +_08056550: + ldr r0, =gUnknown_03005D10 + ldrh r1, [r1] + adds r0, r1 + adds r1, r0, 0 + adds r1, 0x34 + ldrb r0, [r1] + cmp r0, 0xFE + bhi _08056564 + adds r0, 0x1 + strb r0, [r1] +_08056564: + cmp r6, 0xFE + bls _080565C8 + movs r0, 0 + movs r1, 0x4 + bl dp01_build_cmdbuf_x0D_a + ldr r0, =gActiveBank + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DBD84 + str r0, [r1] + ldr r1, =gBattlePartyID + ldr r0, =gBankTarget + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + adds r0, r1 + ldr r2, =gUnknown_02024208 + movs r1, 0x26 + bl SetMonData + bl calc_player_party_count + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + beq _08056656 + b _08056680 + .pool +_080565C8: + movs r0, 0xFF + lsls r0, 16 + adds r1, r6, 0 + bl __udivsi3 + bl Sqrt + lsls r0, 16 + lsrs r0, 16 + bl Sqrt + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, =0x000ffff0 + adds r1, r6, 0 + bl __udivsi3 + adds r6, r0, 0 + movs r4, 0 + b _080565FA + .pool +_080565F4: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_080565FA: + cmp r4, 0x3 + bhi _0805660A + bl Random + lsls r0, 16 + lsrs r0, 16 + cmp r0, r6 + bcc _080565F4 +_0805660A: + ldr r5, =gUnknown_02024208 + ldrh r0, [r5] + cmp r0, 0x1 + bne _08056614 + movs r4, 0x4 +_08056614: + movs r0, 0 + adds r1, r4, 0 + bl dp01_build_cmdbuf_x0D_a + ldr r0, =gActiveBank + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution + cmp r4, 0x4 + bne _0805668C + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DBD84 + str r0, [r1] + ldr r1, =gBattlePartyID + ldr r0, =gBankTarget + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x26 + adds r2, r5, 0 + bl SetMonData + bl calc_player_party_count + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + bne _08056680 +_08056656: + ldr r1, =gBattleCommunication + movs r0, 0 + strb r0, [r1, 0x5] + b _08056696 + .pool +_08056680: + ldr r1, =gBattleCommunication + movs r0, 0x1 + strb r0, [r1, 0x5] + b _08056696 + .pool +_0805668C: + ldr r0, =gBattleCommunication + strb r4, [r0, 0x5] + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DBDD4 +_08056694: + str r0, [r1] +_08056696: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8056300 + + thumb_func_start atkF0_catch_pokemon +atkF0_catch_pokemon: @ 80566A8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, =gBattlePartyID + mov r9, r0 + ldr r5, =gBankAttacker + ldrb r0, [r5] + movs r6, 0x1 + eors r0, r6 + lsls r0, 1 + add r0, r9 + ldrh r0, [r0] + movs r7, 0x64 + muls r0, r7 + ldr r1, =gEnemyParty + mov r8, r1 + add r0, r8 + bl pokemon_catch + lsls r0, 24 + cmp r0, 0 + beq _08056792 + bl sub_813B21C + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _08056734 + ldr r0, =gBattleCommunication + strb r1, [r0, 0x5] + ldr r4, =gStringVar1 + ldr r0, =0x00004036 + bl VarGet + lsls r0, 24 + lsrs r0, 24 + bl sav3_get_box_name + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + ldrb r0, [r5] + eors r0, r6 + lsls r0, 1 + add r0, r9 + ldrh r0, [r0] + muls r0, r7 + add r0, r8 + ldr r2, =gStringVar2 + movs r1, 0x2 + bl GetMonData + b _0805677E + .pool +_08056734: + ldr r4, =gStringVar1 + ldr r0, =0x00004036 + bl VarGet + lsls r0, 24 + lsrs r0, 24 + bl sav3_get_box_name + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + ldrb r0, [r5] + eors r0, r6 + lsls r0, 1 + add r0, r9 + ldrh r0, [r0] + muls r0, r7 + add r0, r8 + ldr r2, =gStringVar2 + movs r1, 0x2 + bl GetMonData + ldr r4, =gStringVar3 + bl get_unknown_box_id + lsls r0, 24 + lsrs r0, 24 + bl sav3_get_box_name + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + ldr r1, =gBattleCommunication + movs r0, 0x2 + strb r0, [r1, 0x5] +_0805677E: + ldr r0, =0x000008ab + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _08056792 + ldr r1, =gBattleCommunication + ldrb r0, [r1, 0x5] + adds r0, 0x1 + strb r0, [r1, 0x5] +_08056792: + ldr r0, =gBattlePartyID + mov r10, r0 + ldr r1, =gBankAttacker + mov r9, r1 + ldrb r0, [r1] + movs r4, 0x1 + eors r0, r4 + lsls r0, 1 + add r0, r10 + ldrh r0, [r0] + movs r1, 0x64 + mov r8, r1 + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + ldr r6, =gEnemyParty + adds r0, r6 + movs r1, 0xB + movs r2, 0 + bl GetMonData + ldr r5, =gUnknown_03005D10 + strh r0, [r5, 0x28] + mov r1, r9 + ldrb r0, [r1] + eors r0, r4 + lsls r0, 1 + add r0, r10 + ldrh r0, [r0] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r6 + adds r2, r5, 0 + adds r2, 0x2A + movs r1, 0x2 + bl GetMonData + mov r1, r9 + ldrb r0, [r1] + eors r4, r0 + lsls r4, 1 + add r4, r10 + ldrh r0, [r4] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r6 + movs r1, 0x26 + movs r2, 0 + bl GetMonData + movs r1, 0xF + ands r0, r1 + lsls r0, 2 + ldrb r2, [r5, 0x5] + movs r1, 0x3D + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r5, 0x5] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atkF0_catch_pokemon + + thumb_func_start atkF1_802D95C +atkF1_802D95C: @ 8056850 + push {r4,r5,lr} + ldr r4, =gEnemyParty + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0 + bl GetMonData + adds r4, r0, 0 + adds r0, r5, 0 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + bl pokedex_flag_operation + lsls r0, 24 + cmp r0, 0 + beq _080568A8 + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _080568C2 + .pool +_080568A8: + adds r0, r5, 0 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + adds r2, r4, 0 + bl SetPokedexFlag + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_080568C2: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end atkF1_802D95C + + thumb_func_start sub_80568CC +sub_80568CC: @ 80568CC + push {r4,lr} + sub sp, 0x4 + ldr r0, =gEnemyParty + movs r1, 0xB + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, =gBattleCommunication + ldrb r0, [r0] + cmp r0, 0x5 + bls _080568E8 + b _08056A2C +_080568E8: + lsls r0, 2 + ldr r1, =_08056900 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08056900: + .4byte _08056918 + .4byte _0805692A + .4byte _08056978 + .4byte _080569C8 + .4byte _080569E0 + .4byte _08056A18 +_08056918: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _08056A06 +_0805692A: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08056938 + b _08056A2C +_08056938: + bl FreeAllWindowBuffers + adds r0, r4, 0 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + ldr r3, =gBattleMons + ldr r1, =gBankTarget + ldrb r2, [r1] + movs r1, 0x58 + muls r2, r1 + adds r1, r3, 0 + adds r1, 0x54 + adds r1, r2, r1 + ldr r1, [r1] + adds r3, 0x48 + adds r2, r3 + ldr r2, [r2] + bl sub_80BFDF4 + ldr r1, =gBattleCommunication + strb r0, [r1, 0x1] + b _08056A08 + .pool +_08056978: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08056A2C + ldr r0, =gMain + ldr r1, [r0, 0x4] + ldr r0, =sub_8038420 + cmp r1, r0 + bne _08056A2C + ldr r2, =gTasks + ldr r4, =gBattleCommunication + ldrb r1, [r4, 0x1] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x4] + cmp r0, 0 + bne _08056A2C + ldr r0, =vblank_cb_08078BB4 + bl SetVBlankCallback + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _08056A2C + .pool +_080569C8: + bl c2_berry_program_update_menu + bl sub_8035AA4 + ldr r1, =gUnknown_02022E20 + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + b _08056A06 + .pool +_080569E0: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _08056A2C + ldr r0, =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + movs r0, 0 + bl ShowBg + movs r0, 0x3 + bl ShowBg +_08056A06: + ldr r1, =gBattleCommunication +_08056A08: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08056A2C + .pool +_08056A18: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08056A2C + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_08056A2C: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80568CC + + thumb_func_start sub_8056A3C +sub_8056A3C: @ 8056A3C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + ldr r4, [sp, 0x40] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0x10] + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x1C] + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0x14] + lsls r4, 24 + lsrs r4, 24 + mov r10, r4 + movs r1, 0 + add r0, sp, 0xC + strh r1, [r0] + ldr r6, [sp, 0x10] + cmp r6, r3 + ble _08056A76 + b _08056B62 +_08056A76: + mov r4, r8 + adds r0, r6, 0x1 + str r0, [sp, 0x18] + ldr r2, [sp, 0x1C] + cmp r4, r2 + bgt _08056B58 + add r5, sp, 0xC + lsls r7, r6, 24 + mov r9, r7 +_08056A88: + ldr r0, [sp, 0x10] + cmp r6, r0 + bne _08056AB4 + cmp r4, r8 + bne _08056A9C + ldr r0, =0x00001022 + b _08056AFE + .pool +_08056A9C: + ldr r2, [sp, 0x1C] + cmp r4, r2 + bne _08056AAC + ldr r0, =0x00001024 + b _08056AFE + .pool +_08056AAC: + ldr r0, =0x00001023 + b _08056AFE + .pool +_08056AB4: + ldr r7, [sp, 0x14] + cmp r6, r7 + bne _08056AE0 + cmp r4, r8 + bne _08056AC8 + ldr r0, =0x00001028 + b _08056AFE + .pool +_08056AC8: + ldr r0, [sp, 0x1C] + cmp r4, r0 + bne _08056AD8 + ldr r0, =0x0000102a + b _08056AFE + .pool +_08056AD8: + ldr r0, =0x00001029 + b _08056AFE + .pool +_08056AE0: + cmp r4, r8 + bne _08056AEC + ldr r0, =0x00001025 + b _08056AFE + .pool +_08056AEC: + ldr r2, [sp, 0x1C] + cmp r4, r2 + bne _08056AFC + ldr r0, =0x00001027 + b _08056AFE + .pool +_08056AFC: + ldr r0, =0x00001026 +_08056AFE: + strh r0, [r5] + movs r1, 0x1 + mov r0, r10 + ands r0, r1 + cmp r0, 0 + beq _08056B0E + movs r0, 0 + strh r0, [r5] +_08056B0E: + movs r0, 0x80 + mov r7, r10 + ands r0, r7 + cmp r0, 0 + beq _08056B38 + lsls r2, r4, 24 + lsrs r2, 24 + str r1, [sp] + str r1, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0x1 + add r1, sp, 0xC + mov r7, r9 + lsrs r3, r7, 24 + bl CopyToBgTilemapBufferRect_ChangePalette + b _08056B50 + .pool +_08056B38: + lsls r2, r4, 24 + lsrs r2, 24 + str r1, [sp] + str r1, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0 + add r1, sp, 0xC + mov r7, r9 + lsrs r3, r7, 24 + bl CopyToBgTilemapBufferRect_ChangePalette +_08056B50: + adds r4, 0x1 + ldr r0, [sp, 0x1C] + cmp r4, r0 + ble _08056A88 +_08056B58: + ldr r6, [sp, 0x18] + ldr r2, [sp, 0x14] + cmp r6, r2 + bgt _08056B62 + b _08056A76 +_08056B62: + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8056A3C + + thumb_func_start sub_8056B74 +sub_8056B74: @ 8056B74 + push {lr} + sub sp, 0x10 + adds r3, r0, 0 + add r0, sp, 0xC + movs r2, 0x1 + strh r2, [r0] + movs r1, 0x2 + strh r1, [r0, 0x2] + lsls r3, 25 + movs r0, 0x90 + lsls r0, 20 + adds r3, r0 + lsrs r3, 24 + str r2, [sp] + str r1, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0 + add r1, sp, 0xC + movs r2, 0x19 + bl CopyToBgTilemapBufferRect_ChangePalette + movs r0, 0 + bl CopyBgTilemapBufferToVram + add sp, 0x10 + pop {r0} + bx r0 + thumb_func_end sub_8056B74 + + thumb_func_start sub_8056BAC +sub_8056BAC: @ 8056BAC + push {lr} + sub sp, 0x10 + adds r3, r0, 0 + add r0, sp, 0xC + ldr r1, =0x00001016 + strh r1, [r0] + strh r1, [r0, 0x2] + lsls r3, 25 + movs r0, 0x90 + lsls r0, 20 + adds r3, r0 + lsrs r3, 24 + movs r0, 0x1 + str r0, [sp] + movs r0, 0x2 + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0 + add r1, sp, 0xC + movs r2, 0x19 + bl CopyToBgTilemapBufferRect_ChangePalette + movs r0, 0 + bl CopyBgTilemapBufferToVram + add sp, 0x10 + pop {r0} + bx r0 + .pool + thumb_func_end sub_8056BAC + + thumb_func_start atkF3_receive_new_pokemon_maybe +atkF3_receive_new_pokemon_maybe: @ 8056BEC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + ldr r0, =gBattleCommunication + ldrb r1, [r0] + adds r4, r0, 0 + cmp r1, 0x4 + bls _08056C04 + b _08056E62 +_08056C04: + lsls r0, r1, 2 + ldr r1, =_08056C18 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08056C18: + .4byte _08056C2C + .4byte _08056C60 + .4byte _08056CFC + .4byte _08056DD4 + .4byte _08056E2C +_08056C2C: + movs r4, 0 + str r4, [sp] + movs r0, 0x18 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl sub_8056A3C + ldr r0, =gUnknown_085CCABB + movs r1, 0xC + bl battle_show_message_maybe + ldr r1, =gBattleCommunication + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + strb r4, [r1, 0x1] + movs r0, 0 + bl sub_8056B74 + b _08056E62 + .pool +_08056C60: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08056C86 + ldrb r0, [r4, 0x1] + cmp r0, 0 + beq _08056C86 + movs r0, 0x5 + bl PlaySE + ldrb r0, [r4, 0x1] + bl sub_8056BAC + movs r0, 0 + strb r0, [r4, 0x1] + bl sub_8056B74 +_08056C86: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08056CAE + ldr r4, =gBattleCommunication + ldrb r0, [r4, 0x1] + cmp r0, 0 + bne _08056CAE + movs r0, 0x5 + bl PlaySE + ldrb r0, [r4, 0x1] + bl sub_8056BAC + movs r0, 0x1 + strb r0, [r4, 0x1] + bl sub_8056B74 +_08056CAE: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08056CE0 + movs r0, 0x5 + bl PlaySE + ldr r1, =gBattleCommunication + ldrb r0, [r1, 0x1] + cmp r0, 0 + bne _08056CF2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r0, 0x3 + bl BeginFastPaletteFade + b _08056E62 + .pool +_08056CE0: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _08056CEA + b _08056E62 +_08056CEA: + movs r0, 0x5 + bl PlaySE + ldr r1, =gBattleCommunication +_08056CF2: + movs r0, 0x4 + strb r0, [r1] + b _08056E62 + .pool +_08056CFC: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08056D0A + b _08056E62 +_08056D0A: + ldr r7, =gBattlePartyID + ldr r0, =gBankAttacker + mov r10, r0 + ldrb r0, [r0] + movs r4, 0x1 + eors r0, r4 + lsls r0, 1 + adds r0, r7 + ldrh r0, [r0] + movs r1, 0x64 + mov r9, r1 + mov r2, r9 + muls r2, r0 + adds r0, r2, 0 + ldr r1, =gEnemyParty + mov r8, r1 + add r0, r8 + ldr r1, =gBattleStruct + ldr r2, [r1] + adds r2, 0x6D + movs r1, 0x2 + bl GetMonData + bl FreeAllWindowBuffers + mov r2, r10 + ldrb r0, [r2] + eors r0, r4 + lsls r0, 1 + adds r0, r7 + ldrh r0, [r0] + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + add r0, r8 + movs r1, 0xB + bl GetMonData + adds r6, r0, 0 + lsls r6, 16 + lsrs r6, 16 + mov r2, r10 + ldrb r0, [r2] + eors r0, r4 + lsls r0, 1 + adds r0, r7 + ldrh r0, [r0] + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + add r0, r8 + bl pokemon_get_gender + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + mov r2, r10 + ldrb r0, [r2] + eors r4, r0 + lsls r4, 1 + adds r4, r7 + ldrh r0, [r4] + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + add r0, r8 + movs r1, 0 + movs r2, 0 + bl GetMonData + ldr r2, =gBattleStruct + ldr r1, [r2] + adds r1, 0x6D + str r0, [sp] + ldr r0, =sub_8038420 + str r0, [sp, 0x4] + movs r0, 0x2 + adds r2, r6, 0 + adds r3, r5, 0 + bl do_choose_name_or_words_screen + ldr r1, =gBattleCommunication + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08056E62 + .pool +_08056DD4: + ldr r0, =gMain + ldr r1, [r0, 0x4] + ldr r0, =sub_8038420 + cmp r1, r0 + bne _08056E62 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08056E62 + ldr r2, =gBattlePartyID + ldr r0, =gBankAttacker + ldrb r1, [r0] + movs r0, 0x1 + eors r0, r1 + lsls r0, 1 + adds r0, r2 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + adds r0, r1 + ldr r1, =gBattleStruct + ldr r2, [r1] + adds r2, 0x6D + movs r1, 0x2 + bl SetMonData + b _08056E48 + .pool +_08056E2C: + bl calc_player_party_count + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + bne _08056E48 + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08056E62 + .pool +_08056E48: + ldr r3, =gBattlescriptCurrInstr + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_08056E62: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end atkF3_receive_new_pokemon_maybe + + thumb_func_start sub_8056E78 +sub_8056E78: @ 8056E78 + ldr r2, =gBattleMons + ldr r0, =gBankAttacker + ldrb r1, [r0] + movs r0, 0x58 + muls r1, r0 + adds r1, r2 + ldr r0, =gBattleMoveDamage + ldr r2, [r0] + ldrh r0, [r1, 0x28] + subs r0, r2 + strh r0, [r1, 0x28] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .pool + thumb_func_end sub_8056E78 + + thumb_func_start atkF5_reset_attacker_bd_x4C +atkF5_reset_attacker_bd_x4C: @ 8056EA8 + ldr r1, =gBattleMons + ldr r0, =gBankAttacker + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x4C + adds r0, r1 + movs r1, 0 + str r1, [r0] + ldr r1, =gBattlescriptCurrInstr + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .pool + thumb_func_end atkF5_reset_attacker_bd_x4C + + thumb_func_start sub_8056ED0 +sub_8056ED0: @ 8056ED0 + ldr r1, =gFightStateTracker + movs r0, 0xC + strb r0, [r1] + bx lr + .pool + thumb_func_end sub_8056ED0 + + thumb_func_start sub_8056EDC +sub_8056EDC: @ 8056EDC + ldr r1, =gFightStateTracker + movs r0, 0xC + strb r0, [r1] + ldr r1, =gUnknown_02024082 + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + strb r0, [r1] + bx lr + .pool + thumb_func_end sub_8056EDC + + thumb_func_start sub_8056EF8 +sub_8056EF8: @ 8056EF8 + push {r4,r5,lr} + ldr r5, =gBattlescriptCurrInstr + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl GetBankByPlayerAI + ldr r4, =gActiveBank + strb r0, [r4] + movs r0, 0 + bl dp01_build_cmdbuf_x09_9_9_9 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8056EF8 + + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_5.s b/asm/battle_5.s new file mode 100644 index 0000000000..718ded432c --- /dev/null +++ b/asm/battle_5.s @@ -0,0 +1,582 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_8056F28 +sub_8056F28: @ 8056F28 + push {r4-r6,lr} + ldr r5, =gBattleResources + ldr r6, =gBattleTypeFlags + ldr r0, [r6] + movs r1, 0x80 + lsls r1, 19 + ands r0, r1 + cmp r0, 0 + beq _08056F3E + bl sub_81D55D0 +_08056F3E: + ldr r4, =gBattleStruct + movs r0, 0xA9 + lsls r0, 2 + bl AllocZeroed + str r0, [r4] + movs r0, 0x20 + bl AllocZeroed + str r0, [r5] + movs r0, 0xA0 + bl AllocZeroed + ldr r1, [r5] + str r0, [r1] + movs r0, 0x10 + bl AllocZeroed + ldr r1, [r5] + str r0, [r1, 0x4] + movs r0, 0x24 + bl AllocZeroed + ldr r1, [r5] + str r0, [r1, 0x8] + movs r0, 0x24 + bl AllocZeroed + ldr r1, [r5] + str r0, [r1, 0xC] + movs r0, 0xC + bl AllocZeroed + ldr r1, [r5] + str r0, [r1, 0x10] + movs r0, 0x1C + bl AllocZeroed + ldr r1, [r5] + str r0, [r1, 0x14] + movs r0, 0x54 + bl AllocZeroed + ldr r1, [r5] + str r0, [r1, 0x18] + movs r0, 0x24 + bl AllocZeroed + ldr r1, [r5] + str r0, [r1, 0x1C] + ldr r4, =gUnknown_020244A0 + movs r5, 0x80 + lsls r5, 5 + adds r0, r5, 0 + bl AllocZeroed + str r0, [r4] + ldr r4, =gUnknown_020244A4 + adds r0, r5, 0 + bl AllocZeroed + str r0, [r4] + ldr r4, =gUnknown_0202305C + movs r0, 0x80 + lsls r0, 6 + bl AllocZeroed + str r0, [r4] + ldr r4, =gUnknown_02023060 + adds r0, r5, 0 + bl AllocZeroed + str r0, [r4] + ldr r0, [r6] + movs r1, 0x80 + lsls r1, 20 + ands r0, r1 + cmp r0, 0 + beq _08056FFA + ldr r0, =0x00004054 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + ldr r2, =gSaveBlock1Ptr + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 5 + ldr r0, =0x00001a9c + adds r1, r0 + ldr r0, [r2] + adds r0, r1 + bl create_enemy_party +_08056FFA: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8056F28 + + thumb_func_start sub_8057028 +sub_8057028: @ 8057028 + push {r4-r6,lr} + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 19 + ands r0, r1 + cmp r0, 0 + beq _0805703C + bl sub_81D5694 +_0805703C: + ldr r6, =gBattleResources + ldr r0, [r6] + cmp r0, 0 + beq _080570D0 + ldr r4, =gBattleStruct + ldr r0, [r4] + bl Free + movs r5, 0 + str r5, [r4] + ldr r0, [r6] + ldr r0, [r0] + bl Free + ldr r0, [r6] + str r5, [r0] + ldr r0, [r0, 0x4] + bl Free + ldr r0, [r6] + str r5, [r0, 0x4] + ldr r0, [r0, 0x8] + bl Free + ldr r0, [r6] + str r5, [r0, 0x8] + ldr r0, [r0, 0xC] + bl Free + ldr r0, [r6] + str r5, [r0, 0xC] + ldr r0, [r0, 0x10] + bl Free + ldr r0, [r6] + str r5, [r0, 0x10] + ldr r0, [r0, 0x14] + bl Free + ldr r0, [r6] + str r5, [r0, 0x14] + ldr r0, [r0, 0x18] + bl Free + ldr r0, [r6] + str r5, [r0, 0x18] + ldr r0, [r0, 0x1C] + bl Free + ldr r0, [r6] + str r5, [r0, 0x1C] + bl Free + str r5, [r6] + ldr r4, =gUnknown_020244A0 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, =gUnknown_020244A4 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, =gUnknown_0202305C + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, =gUnknown_02023060 + ldr r0, [r4] + bl Free + str r5, [r4] +_080570D0: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8057028 + + thumb_func_start sub_80570F4 +sub_80570F4: @ 80570F4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08057140 + movs r0, 0x1 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x3 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, =gBattleMons + movs r0, 0x58 + adds r1, r3, 0 + muls r1, r0 + adds r1, r2 + adds r1, 0x2A + muls r0, r4 + adds r0, r2 + adds r0, 0x2A + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bls _0805714A + adds r4, r3, 0 + b _0805714A + .pool +_08057140: + movs r0, 0x1 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r4, r0, 24 +_0805714A: + ldr r2, =gBattleMons + movs r1, 0x58 + adds r0, r4, 0 + muls r0, r1 + adds r0, r2 + adds r3, r0, 0 + adds r3, 0x2A + adds r0, r5, 0 + muls r0, r1 + adds r0, r2 + adds r1, r0, 0 + adds r1, 0x2A + ldrb r0, [r3] + ldrb r2, [r1] + cmp r0, r2 + bls _080571B8 + ldrb r1, [r1] + subs r0, r1 + cmp r0, 0x1D + ble _08057198 + ldr r1, =gBattlePartyID + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x8 + bl happiness_algorithm + b _080571CE + .pool +_08057198: + ldr r1, =gBattlePartyID + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x6 + bl happiness_algorithm + b _080571CE + .pool +_080571B8: + ldr r1, =gBattlePartyID + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x6 + bl happiness_algorithm +_080571CE: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80570F4 + + thumb_func_start sub_80571DC +sub_80571DC: @ 80571DC + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + adds r0, r4, 0 + bl GetBankSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08057248 + movs r2, 0 + ldr r6, =gBattlePartyID + lsls r3, r4, 1 + ldr r5, =gUnknown_0203CF00 + ldr r4, =gBattleStruct +_080571FE: + adds r0, r2, r5 + ldr r1, [r4] + adds r1, r2, r1 + adds r1, 0x60 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x2 + ble _080571FE + adds r0, r3, r6 + ldrb r0, [r0] + bl pokemon_order_func + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r7, 0 + bl pokemon_order_func + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_81B8FB0 + movs r2, 0 + ldr r4, =gBattleStruct + ldr r3, =gUnknown_0203CF00 +_08057236: + ldr r0, [r4] + adds r0, r2, r0 + adds r0, 0x60 + adds r1, r2, r3 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x2 + ble _08057236 +_08057248: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80571DC + + thumb_func_start sub_805725C +sub_805725C: @ 805725C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r0, 0 + mov r8, r0 + ldr r1, =gBattleCommunication + mov r10, r1 + b _08057284 + .pool +_0805727C: + mov r2, r8 + cmp r2, 0 + beq _08057284 + b _08057406 +_08057284: + mov r1, r10 + ldrb r0, [r1] + cmp r0, 0x1 + bne _0805728E + b _08057390 +_0805728E: + cmp r0, 0x1 + ble _08057294 + b _080573FC +_08057294: + cmp r0, 0 + beq _0805729A + b _080573FC +_0805729A: + ldr r6, =gBattleMons + movs r0, 0x58 + mov r5, r9 + muls r5, r0 + adds r0, r6, 0 + adds r0, 0x4C + adds r4, r5, r0 + ldr r0, [r4] + movs r7, 0x7 + ands r0, r7 + cmp r0, 0 + beq _08057372 + mov r0, r9 + bl sub_8050650 + lsls r0, 24 + cmp r0, 0 + beq _080572FC + ldr r0, [r4] + movs r1, 0x8 + negs r1, r1 + ands r0, r1 + str r0, [r4] + adds r2, r6, 0 + adds r2, 0x50 + adds r2, r5, r2 + ldr r0, [r2] + ldr r1, =0xf7ffffff + ands r0, r1 + str r0, [r2] + bl b_movescr_stack_push_cursor + movs r0, 0x1 + mov r2, r10 + strb r0, [r2, 0x5] + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DB220 + str r0, [r1] + movs r0, 0x2 + mov r8, r0 + b _08057372 + .pool +_080572FC: + adds r0, r5, r6 + adds r0, 0x20 + ldrb r0, [r0] + movs r2, 0x1 + cmp r0, 0x30 + bne _0805730A + movs r2, 0x2 +_0805730A: + ldr r1, [r4] + adds r0, r1, 0 + ands r0, r7 + cmp r0, r2 + bcs _0805731E + movs r0, 0x8 + negs r0, r0 + ands r1, r0 + str r1, [r4] + b _08057322 +_0805731E: + subs r0, r1, r2 + str r0, [r4] +_08057322: + ldr r2, =gBattleMons + movs r0, 0x58 + mov r1, r9 + muls r1, r0 + adds r0, r2, 0 + adds r0, 0x4C + adds r0, r1, r0 + ldr r4, [r0] + movs r0, 0x7 + ands r4, r0 + cmp r4, 0 + beq _08057354 + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DB213 + str r0, [r1] + movs r1, 0x2 + mov r8, r1 + b _08057372 + .pool +_08057354: + adds r2, 0x50 + adds r2, r1, r2 + ldr r0, [r2] + ldr r1, =0xf7ffffff + ands r0, r1 + str r0, [r2] + bl b_movescr_stack_push_cursor + ldr r0, =gBattleCommunication + strb r4, [r0, 0x5] + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DB220 + str r0, [r1] + movs r2, 0x2 + mov r8, r2 +_08057372: + ldr r1, =gBattleCommunication + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + mov r10, r1 + b _080573FC + .pool +_08057390: + ldr r1, =gBattleMons + movs r0, 0x58 + mov r2, r9 + muls r2, r0 + adds r0, r2, 0 + adds r1, 0x4C + adds r4, r0, r1 + ldr r0, [r4] + movs r1, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080573F4 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x5 + bl __umodsi3 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + beq _080573D4 + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DB26A + str r0, [r1] + b _080573EC + .pool +_080573D4: + ldr r0, [r4] + movs r1, 0x21 + negs r1, r1 + ands r0, r1 + str r0, [r4] + bl b_movescr_stack_push_cursor + ldr r1, =gBattlescriptCurrInstr + ldr r0, =gUnknown_082DB277 + str r0, [r1] + mov r0, r10 + strb r5, [r0, 0x5] +_080573EC: + movs r1, 0x2 + mov r8, r1 + ldr r2, =gBattleCommunication + mov r10, r2 +_080573F4: + mov r1, r10 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080573FC: + mov r2, r10 + ldrb r0, [r2] + cmp r0, 0x2 + beq _08057406 + b _0805727C +_08057406: + mov r0, r8 + cmp r0, 0x2 + bne _08057430 + ldr r4, =gActiveBank + mov r1, r9 + strb r1, [r4] + ldrb r1, [r4] + movs r0, 0x58 + muls r0, r1 + ldr r1, =gUnknown_020240D0 + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r2, 0 + movs r3, 0x4 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_08057430: + mov r0, r8 + 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_805725C + + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_7.s b/asm/battle_7.s new file mode 100644 index 0000000000..ef67d6bc04 --- /dev/null +++ b/asm/battle_7.s @@ -0,0 +1,3815 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start dp11_init +dp11_init: @ 805D118 + push {r4,lr} + ldr r4, =gUnknown_020244D0 + movs r0, 0x10 + bl AllocZeroed + str r0, [r4] + movs r0, 0x10 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1] + movs r0, 0x30 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, 0x4] + movs r0, 0x10 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, 0x8] + movs r0, 0x50 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, 0xC] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end dp11_init + + thumb_func_start dp11_free +dp11_free: @ 805D158 + push {r4,r5,lr} + ldr r5, =gUnknown_020244D0 + ldr r0, [r5] + cmp r0, 0 + beq _0805D192 + ldr r0, [r0, 0xC] + bl Free + ldr r0, [r5] + movs r4, 0 + str r4, [r0, 0xC] + ldr r0, [r0, 0x8] + bl Free + ldr r0, [r5] + str r4, [r0, 0x8] + ldr r0, [r0, 0x4] + bl Free + ldr r0, [r5] + str r4, [r0, 0x4] + ldr r0, [r0] + bl Free + ldr r0, [r5] + str r4, [r0] + bl Free + str r4, [r5] +_0805D192: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end dp11_free + + thumb_func_start sub_805D19C +sub_805D19C: @ 805D19C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r0, 0x1 + negs r0, r0 + mov r9, r0 + ldr r4, =gActiveBank + ldrb r0, [r4] + lsls r2, r0, 9 + ldr r1, =gUnknown_02023068 + adds r2, r1 + mov r10, r2 + movs r1, 0 + movs r2, 0xFF + bl sub_803FECC + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r7, r0, 16 + ldr r0, =gBattleStruct + ldr r0, [r0] + adds r0, 0x92 + ldrb r1, [r0] + ldr r2, =gBitTable + ldrb r0, [r4] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + negs r0, r1 + orrs r0, r1 + asrs r4, r0, 31 + movs r0, 0x2 + ands r4, r0 + adds r6, r4, 0 + adds r5, r4, 0x2 + b _0805D20E + .pool +_0805D20C: + adds r4, 0x1 +_0805D20E: + cmp r4, r5 + bge _0805D234 + ldr r0, =gActiveBank + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + ldr r1, =gUnknown_020240CC + adds r0, r1 + ldr r0, [r0] + bl GetNatureFromPersonality + lsls r0, 24 + lsrs r0, 22 + adds r0, r4, r0 + ldr r2, =gUnknown_0831C494 + adds r0, r2 + ldrb r0, [r0] + cmp r0, r7 + ble _0805D20C +_0805D234: + subs r7, r4, r6 + cmp r4, r5 + bne _0805D23C + movs r7, 0x2 +_0805D23C: + movs r6, 0 + movs r4, 0 + mov r1, r10 + ldrh r0, [r1] + cmp r0, 0 + beq _0805D27C + mov r5, r10 +_0805D24A: + ldrh r0, [r5] + bl sub_805D4A8 + lsls r0, 24 + lsrs r0, 24 + cmp r7, r0 + bne _0805D26E + mov r0, r10 + adds r0, 0x8 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _0805D26E + ldr r0, =gBitTable + lsls r1, r4, 2 + adds r1, r0 + ldr r0, [r1] + orrs r6, r0 +_0805D26E: + adds r5, 0x2 + adds r4, 0x1 + cmp r4, 0x3 + bgt _0805D27C + ldrh r0, [r5] + cmp r0, 0 + bne _0805D24A +_0805D27C: + cmp r6, 0 + beq _0805D2AC + ldr r3, =gBattleStruct + ldr r1, [r3] + adds r1, 0x92 + ldrb r2, [r1] + movs r0, 0xF + ands r0, r2 + strb r0, [r1] + ldr r1, [r3] + adds r1, 0x92 + lsls r0, r6, 4 + ldrb r2, [r1] + orrs r0, r2 + strb r0, [r1] + lsls r0, r6, 24 + lsrs r0, 24 + bl BattleAI_SetupAIData + bl sub_8130BA4 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_0805D2AC: + movs r0, 0x1 + negs r0, r0 + cmp r9, r0 + beq _0805D2B6 + b _0805D40C +_0805D2B6: + mov r2, r8 + cmp r2, 0xF + bne _0805D2BE + b _0805D3EA +_0805D2BE: + movs r5, 0 + movs r6, 0 + ldr r7, =gBitTable + mov r4, r10 +_0805D2C6: + ldrh r0, [r4] + bl sub_805D4A8 + lsls r0, 24 + cmp r0, 0 + bne _0805D2DE + ldr r0, [r7] + mov r1, r8 + ands r0, r1 + cmp r0, 0 + bne _0805D2DE + adds r5, 0x1 +_0805D2DE: + ldrh r0, [r4] + bl sub_805D4A8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0805D2F8 + ldr r0, [r7] + mov r2, r8 + ands r0, r2 + cmp r0, 0 + bne _0805D2F8 + adds r5, 0x10 +_0805D2F8: + ldrh r0, [r4] + bl sub_805D4A8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _0805D316 + ldr r0, [r7] + mov r1, r8 + ands r0, r1 + cmp r0, 0 + bne _0805D316 + movs r2, 0x80 + lsls r2, 1 + adds r5, r2 +_0805D316: + adds r7, 0x4 + adds r4, 0x2 + ldr r0, =gBitTable + adds r0, 0xC + cmp r7, r0 + ble _0805D2C6 + movs r1, 0xF + ands r1, r5 + cmp r1, 0x1 + ble _0805D32C + adds r6, 0x1 +_0805D32C: + movs r0, 0xF0 + ands r0, r5 + cmp r0, 0x1F + ble _0805D336 + adds r6, 0x1 +_0805D336: + ldr r2, =0x000001ff + cmp r0, r2 + ble _0805D33E + adds r6, 0x1 +_0805D33E: + cmp r6, 0x1 + bgt _0805D346 + cmp r6, 0 + bne _0805D388 +_0805D346: + ldr r5, =gBitTable +_0805D348: + bl Random + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r0 + lsrs r4, r1, 16 + lsls r0, r4, 2 + adds r0, r5 + ldr r0, [r0] + mov r1, r8 + ands r0, r1 + cmp r0, 0 + bne _0805D366 + mov r9, r4 +_0805D366: + movs r0, 0x1 + negs r0, r0 + cmp r9, r0 + beq _0805D348 + b _0805D3D4 + .pool +_0805D388: + cmp r1, 0x1 + ble _0805D38E + movs r6, 0 +_0805D38E: + cmp r0, 0x1F + ble _0805D394 + movs r6, 0x1 +_0805D394: + cmp r0, r2 + ble _0805D39A + movs r6, 0x2 +_0805D39A: + bl Random + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r0 + lsrs r4, r1, 16 + ldr r1, =gBitTable + lsls r0, r4, 2 + adds r0, r1 + ldr r0, [r0] + mov r2, r8 + ands r0, r2 + cmp r0, 0 + bne _0805D3CC + lsls r0, r4, 1 + add r0, r10 + ldrh r0, [r0] + bl sub_805D4A8 + lsls r0, 24 + lsrs r0, 24 + cmp r6, r0 + bne _0805D3CC + mov r9, r4 +_0805D3CC: + movs r0, 0x1 + negs r0, r0 + cmp r9, r0 + beq _0805D39A +_0805D3D4: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x31 + bls _0805D40C +_0805D3EA: + ldr r2, =gProtectStructs + ldr r0, =gActiveBank + ldrb r1, [r0] + lsls r1, 4 + adds r1, r2 + ldrb r0, [r1, 0x2] + movs r2, 0x10 + orrs r0, r2 + strb r0, [r1, 0x2] + movs r0, 0 + b _0805D496 + .pool +_0805D40C: + mov r1, r9 + lsls r0, r1, 1 + mov r2, r10 + adds r1, r2, r0 + ldrh r0, [r1] + cmp r0, 0xAE + bne _0805D434 + ldrb r0, [r2, 0x12] + movs r5, 0 + cmp r0, 0x7 + beq _0805D442 + ldrb r1, [r2, 0x13] + movs r0, 0x7 + eors r1, r0 + negs r0, r1 + orrs r0, r1 + asrs r5, r0, 31 + movs r0, 0x10 + ands r5, r0 + b _0805D442 +_0805D434: + ldr r2, =gBattleMoves + ldrh r1, [r1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r5, [r0, 0x6] +_0805D442: + movs r0, 0x10 + ands r0, r5 + cmp r0, 0 + beq _0805D45C + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 8 + b _0805D48A + .pool +_0805D45C: + cmp r5, 0 + bne _0805D470 + bl sub_805D5F4 + lsls r0, 16 + lsrs r0, 16 + mov r2, r9 + orrs r2, r0 + mov r9, r2 + b _0805D490 +_0805D470: + ldr r0, =gActiveBank + ldrb r0, [r0] + bl GetBankIdentity + adds r1, r0, 0 + movs r2, 0x1 + movs r0, 0x1 + ands r0, r1 + eors r0, r2 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r0, 16 +_0805D48A: + mov r1, r9 + orrs r1, r0 + mov r9, r1 +_0805D490: + mov r2, r9 + lsls r0, r2, 16 + lsrs r0, 16 +_0805D496: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_805D19C + + thumb_func_start sub_805D4A8 +sub_805D4A8: @ 805D4A8 + push {lr} + lsls r0, 16 + lsrs r2, r0, 16 + ldr r1, =gBattleMoves + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x6] + adds r3, r1, 0 + cmp r0, 0x40 + bls _0805D4C2 + b _0805D5EE +_0805D4C2: + lsls r0, 2 + ldr r1, =_0805D4D4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0805D4D4: + .4byte _0805D5D8 + .4byte _0805D5E6 + .4byte _0805D5D8 + .4byte _0805D5EE + .4byte _0805D5D8 + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5D8 + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EA + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5D8 + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5EE + .4byte _0805D5E6 +_0805D5D8: + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _0805D5EE +_0805D5E6: + movs r0, 0x2 + b _0805D5F0 +_0805D5EA: + movs r0, 0x1 + b _0805D5F0 +_0805D5EE: + movs r0, 0 +_0805D5F0: + pop {r1} + bx r1 + thumb_func_end sub_805D4A8 + + thumb_func_start sub_805D5F4 +sub_805D5F4: @ 805D5F4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0805D6FA + ldr r0, =gActiveBank + ldrb r0, [r0] + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _0805D630 + movs r0, 0x1 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r0, 0x3 + b _0805D63E + .pool +_0805D630: + movs r0, 0 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r0, 0x2 +_0805D63E: + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, =gBattleMons + movs r2, 0x58 + mov r0, r8 + muls r0, r2 + adds r5, r0, r1 + adds r0, r7, 0 + muls r0, r2 + adds r6, r0, r1 + ldrh r0, [r5, 0x28] + ldrh r3, [r6, 0x28] + cmp r0, r3 + bne _0805D680 + bl Random + adds r3, r0, 0 + ldr r0, =gActiveBank + ldrb r1, [r0] + movs r2, 0x1 + movs r0, 0x1 + ands r0, r1 + eors r0, r2 + movs r1, 0x2 + ands r1, r3 + adds r0, r1 + b _0805D702 + .pool +_0805D680: + ldr r4, =gUnknown_0831C604 + ldr r0, =gActiveBank + mov r9, r0 + ldrb r0, [r0] + muls r0, r2 + adds r1, 0x48 + adds r0, r1 + ldr r0, [r0] + bl GetNatureFromPersonality + lsls r0, 24 + lsrs r0, 24 + adds r0, r4 + ldrb r4, [r0] + cmp r4, 0x1 + beq _0805D6CC + cmp r4, 0x1 + bgt _0805D6B4 + cmp r4, 0 + beq _0805D6BA + b _0805D6FA + .pool +_0805D6B4: + cmp r4, 0x2 + beq _0805D6DE + b _0805D6FA +_0805D6BA: + ldrh r0, [r5, 0x28] + ldrh r6, [r6, 0x28] + cmp r0, r6 + bls _0805D6C8 + mov r1, r8 + lsls r0, r1, 8 + b _0805D704 +_0805D6C8: + lsls r0, r7, 8 + b _0805D704 +_0805D6CC: + ldrh r0, [r5, 0x28] + ldrh r6, [r6, 0x28] + cmp r0, r6 + bcs _0805D6DA + mov r3, r8 + lsls r0, r3, 8 + b _0805D704 +_0805D6DA: + lsls r0, r7, 8 + b _0805D704 +_0805D6DE: + bl Random + adds r3, r0, 0 + mov r0, r9 + ldrb r1, [r0] + movs r2, 0x1 + movs r0, 0x1 + ands r0, r1 + eors r0, r2 + ands r4, r3 + adds r0, r4 + lsls r0, 24 + lsrs r0, 16 + b _0805D704 +_0805D6FA: + ldr r0, =gActiveBank + ldrb r1, [r0] + movs r0, 0x1 + eors r0, r1 +_0805D702: + lsls r0, 8 +_0805D704: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_805D5F4 + + thumb_func_start sub_805D714 +sub_805D714: @ 805D714 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x30] + lsls r1, 24 + lsrs r1, 24 + ldr r2, =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x3F + ldrb r3, [r0] + lsls r0, r3, 26 + cmp r0, 0 + bge _0805D766 + adds r0, r1, 0 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + blt _0805D766 + adds r2, r1, 0 + adds r2, 0x2C + ldrb r1, [r2] + lsls r0, r1, 25 + cmp r0, 0 + bge _0805D75C + movs r0, 0x41 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + b _0805D766 + .pool +_0805D75C: + lsls r0, r3, 27 + cmp r0, 0 + bge _0805D766 + ldr r0, =SpriteCallbackDummy + str r0, [r4, 0x1C] +_0805D766: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805D714 + + thumb_func_start sub_805D770 +sub_805D770: @ 805D770 + push {r4,lr} + adds r4, r0, 0 + lsls r1, 24 + adds r3, r4, 0 + adds r3, 0x2C + ldrb r0, [r3] + movs r2, 0x40 + orrs r0, r2 + strb r0, [r3] + ldr r0, =SpriteCallbackDummy + str r0, [r4, 0x1C] + cmp r1, 0 + bne _0805D798 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + b _0805D7A0 + .pool +_0805D798: + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_0805D7A0: + adds r0, r4, 0 + bl AnimateSprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_805D770 + + thumb_func_start sub_805D7AC +sub_805D7AC: @ 805D7AC + push {lr} + adds r2, r0, 0 + ldr r0, =gUnknown_020243FC + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0805D7E4 + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x24] + adds r0, r1 + strh r0, [r2, 0x24] + lsls r0, 16 + cmp r0, 0 + bne _0805D7E4 + movs r1, 0x26 + ldrsh r0, [r2, r1] + cmp r0, 0 + beq _0805D7E0 + ldr r0, =sub_805D7EC + b _0805D7E2 + .pool +_0805D7E0: + ldr r0, =SpriteCallbackDummy +_0805D7E2: + str r0, [r2, 0x1C] +_0805D7E4: + pop {r0} + bx r0 + .pool + thumb_func_end sub_805D7AC + + thumb_func_start sub_805D7EC +sub_805D7EC: @ 805D7EC + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x26] + subs r0, 0x2 + strh r0, [r1, 0x26] + lsls r0, 16 + cmp r0, 0 + bne _0805D800 + ldr r0, =SpriteCallbackDummy + str r0, [r1, 0x1C] +_0805D800: + pop {r0} + bx r0 + .pool + thumb_func_end sub_805D7EC + + thumb_func_start move_anim_start_t2_for_situation +move_anim_start_t2_for_situation: @ 805D808 + push {r4-r6,lr} + adds r4, r1, 0 + lsls r0, 24 + ldr r6, =gUnknown_020244D0 + ldr r1, [r6] + ldr r5, =gActiveBank + ldrb r2, [r5] + ldr r3, [r1, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r3 + ldrb r2, [r1] + movs r3, 0x10 + orrs r2, r3 + strb r2, [r1] + cmp r0, 0 + bne _0805D888 + cmp r4, 0x20 + bne _0805D844 + ldrb r0, [r5] + movs r1, 0x6 + bl move_anim_start_t2 + b _0805D902 + .pool +_0805D844: + cmp r4, 0x8 + beq _0805D850 + movs r0, 0x80 + ands r0, r4 + cmp r0, 0 + beq _0805D85A +_0805D850: + ldrb r0, [r5] + movs r1, 0 + bl move_anim_start_t2 + b _0805D902 +_0805D85A: + cmp r4, 0x10 + bne _0805D868 + ldrb r0, [r5] + movs r1, 0x2 + bl move_anim_start_t2 + b _0805D902 +_0805D868: + movs r0, 0x7 + ands r0, r4 + cmp r0, 0 + beq _0805D87A + ldrb r0, [r5] + movs r1, 0x4 + bl move_anim_start_t2 + b _0805D902 +_0805D87A: + cmp r4, 0x40 + bne _0805D8EA + ldrb r0, [r5] + movs r1, 0x5 + bl move_anim_start_t2 + b _0805D902 +_0805D888: + movs r0, 0xF0 + lsls r0, 12 + ands r0, r4 + cmp r0, 0 + beq _0805D89C + ldrb r0, [r5] + movs r1, 0x3 + bl move_anim_start_t2 + b _0805D902 +_0805D89C: + movs r0, 0x7 + ands r0, r4 + cmp r0, 0 + beq _0805D8AE + ldrb r0, [r5] + movs r1, 0x1 + bl move_anim_start_t2 + b _0805D902 +_0805D8AE: + movs r0, 0x80 + lsls r0, 21 + ands r0, r4 + cmp r0, 0 + beq _0805D8C2 + ldrb r0, [r5] + movs r1, 0x7 + bl move_anim_start_t2 + b _0805D902 +_0805D8C2: + movs r0, 0x80 + lsls r0, 20 + ands r0, r4 + cmp r0, 0 + beq _0805D8D6 + ldrb r0, [r5] + movs r1, 0x8 + bl move_anim_start_t2 + b _0805D902 +_0805D8D6: + movs r0, 0xE0 + lsls r0, 8 + ands r0, r4 + cmp r0, 0 + beq _0805D8EA + ldrb r0, [r5] + movs r1, 0x9 + bl move_anim_start_t2 + b _0805D902 +_0805D8EA: + ldr r0, [r6] + ldrb r2, [r5] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + strb r0, [r1] +_0805D902: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end move_anim_start_t2_for_situation + + thumb_func_start move_anim_start_t3 +move_anim_start_t3: @ 805D908 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r4, [sp, 0x24] + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp] + lsls r3, 24 + lsrs r5, r3, 24 + lsls r4, 16 + lsrs r7, r4, 16 + cmp r5, 0 + bne _0805D950 + movs r0, 0x80 + ands r0, r7 + cmp r0, 0 + beq _0805D950 + ldr r0, =gUnknown_020244E4 + adds r0, r6, r0 + movs r2, 0x7F + adds r1, r7, 0 + ands r1, r2 + strb r1, [r0] + movs r0, 0x1 + b _0805DA1E + .pool +_0805D950: + ldr r0, =gUnknown_020244D0 + mov r9, r0 + ldr r0, [r0] + ldr r0, [r0] + lsls r4, r6, 2 + adds r0, r4, r0 + ldrb r1, [r0] + movs r2, 0x4 + mov r8, r2 + mov r0, r8 + ands r0, r1 + cmp r0, 0 + beq _0805D9CC + adds r0, r5, 0 + bl sub_805DAA0 + lsls r0, 24 + cmp r0, 0 + bne _0805D980 + movs r0, 0x1 + b _0805DA1E + .pool +_0805D980: + mov r1, r9 + ldr r0, [r1] + ldr r0, [r0] + adds r0, r4, r0 + ldrb r1, [r0] + mov r0, r8 + ands r0, r1 + cmp r0, 0 + beq _0805D9CC + cmp r5, 0x2 + bne _0805D9CC + ldr r1, =gSprites + ldr r0, =gBankSpriteIds + adds r0, r6, r0 + ldrb r2, [r0] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + bge _0805D9CC + adds r0, r6, 0 + movs r1, 0x1 + bl refresh_graphics_maybe + adds r0, r6, 0 + bl sub_805E974 + movs r0, 0x1 + b _0805DA1E + .pool +_0805D9CC: + ldr r0, =gAnimationBankAttacker + mov r2, r10 + strb r2, [r0] + ldr r0, =gAnimationBankTarget + mov r1, sp + ldrb r1, [r1] + strb r1, [r0] + ldr r4, =gUnknown_020244D0 + ldr r0, [r4] + ldr r0, [r0, 0x8] + strh r7, [r0] + ldr r0, =gUnknown_082C9320 + adds r1, r5, 0 + movs r2, 0 + bl move_something + ldr r0, =task0A_0803415C + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r6, [r1, 0x8] + ldr r0, [r4] + movs r2, 0x8 + ldrsh r1, [r1, r2] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0] + movs r0, 0 +_0805DA1E: + 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 move_anim_start_t3 + + thumb_func_start task0A_0803415C +task0A_0803415C: @ 805DA48 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gAnimScriptCallback + ldr r0, [r0] + bl _call_via_r0 + ldr r0, =gAnimScriptActive + ldrb r0, [r0] + cmp r0, 0 + bne _0805DA8A + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0x8 + ldrsh r0, [r0, r1] + ldr r2, [r2, 0x4] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r2, [r1] + movs r0, 0x21 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, 0 + bl DestroyTask +_0805DA8A: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end task0A_0803415C + + thumb_func_start sub_805DAA0 +sub_805DAA0: @ 805DAA0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xD + bgt _0805DAB4 + cmp r0, 0xA + bge _0805DAB8 + cmp r0, 0x2 + beq _0805DAB8 + b _0805DABC +_0805DAB4: + cmp r0, 0x11 + bne _0805DABC +_0805DAB8: + movs r0, 0x1 + b _0805DABE +_0805DABC: + movs r0, 0 +_0805DABE: + pop {r1} + bx r1 + thumb_func_end sub_805DAA0 + + thumb_func_start move_anim_start_t4 +move_anim_start_t4: @ 805DAC4 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r3, 24 + lsrs r3, 24 + ldr r0, =gAnimationBankAttacker + strb r1, [r0] + ldr r0, =gAnimationBankTarget + strb r2, [r0] + ldr r0, =gUnknown_082C937C + adds r1, r3, 0 + movs r2, 0 + bl move_something + ldr r0, =task0A_08034248 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + movs r2, 0x8 + ldrsh r1, [r1, r2] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end move_anim_start_t4 + + thumb_func_start task0A_08034248 +task0A_08034248: @ 805DB34 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gAnimScriptCallback + ldr r0, [r0] + bl _call_via_r0 + ldr r0, =gAnimScriptActive + ldrb r0, [r0] + cmp r0, 0 + bne _0805DB76 + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0x8 + ldrsh r0, [r0, r1] + ldr r2, [r2, 0x4] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r2, [r1] + movs r0, 0x41 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, 0 + bl DestroyTask +_0805DB76: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end task0A_08034248 + + thumb_func_start sub_805DB8C +sub_805DB8C: @ 805DB8C + movs r0, 0 + bx lr + thumb_func_end sub_805DB8C + + thumb_func_start mplay_80342A4 +mplay_80342A4: @ 805DB90 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r5, 0 + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + beq _0805DBD8 + ldr r2, =gUnknown_020244D0 + ldr r0, [r2] + ldr r1, [r0, 0x4] + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x8] + adds r1, 0x1 + strb r1, [r0, 0x8] + ldr r2, [r2] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x8] + cmp r0, 0x1D + bls _0805DBDC + ldr r0, =gMPlay_SE1 + bl m4aMPlayStop + ldr r0, =gMPlay_SE2 + bl m4aMPlayStop +_0805DBD8: + cmp r5, 0 + beq _0805DBF0 +_0805DBDC: + movs r0, 0x1 + b _0805DC02 + .pool +_0805DBF0: + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r1, [r0, 0x4] + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + strb r5, [r0, 0x8] + movs r0, 0 +_0805DC02: + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end mplay_80342A4 + + thumb_func_start sub_805DC0C +sub_805DC0C: @ 805DC0C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r4, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + movs r1, 0 + bl GetMonData + str r0, [sp] + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r0, [r0] + mov r2, r8 + lsls r1, r2, 2 + adds r2, r1, r0 + ldrh r0, [r2, 0x2] + cmp r0, 0 + bne _0805DC50 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + ldr r6, [sp] + b _0805DC58 + .pool +_0805DC50: + ldrh r5, [r2, 0x2] + ldr r0, =gUnknown_020244BC + adds r0, r1, r0 + ldr r6, [r0] +_0805DC58: + adds r0, r4, 0 + movs r1, 0x1 + bl GetMonData + mov r10, r0 + mov r0, r8 + bl GetBankIdentity + lsls r0, 24 + lsls r2, r5, 3 + ldr r1, =gMonFrontPicTable + adds r2, r1 + ldr r1, =gUnknown_020244D4 + ldr r1, [r1] + lsrs r0, 22 + adds r1, 0x4 + adds r1, r0 + ldr r1, [r1] + adds r0, r2, 0 + adds r2, r5, 0 + adds r3, r6, 0 + bl HandleLoadSpecialPokePic_DontHandleDeoxys + mov r3, r8 + lsls r2, r3, 4 + movs r0, 0x80 + lsls r0, 1 + adds r7, r2, r0 + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r0, [r0] + lsls r1, r3, 2 + adds r0, r1, r0 + ldrh r0, [r0, 0x2] + str r1, [sp, 0x4] + mov r9, r2 + cmp r0, 0 + bne _0805DCBC + adds r0, r4, 0 + bl pokemon_get_pal + b _0805DCC6 + .pool +_0805DCBC: + adds r0, r5, 0 + mov r1, r10 + ldr r2, [sp] + bl species_and_otid_get_pal +_0805DCC6: + adds r6, r0, 0 + ldr r4, =0x0201c000 + adds r0, r6, 0 + adds r1, r4, 0 + bl LZDecompressWram + adds r0, r4, 0 + adds r1, r7, 0 + movs r2, 0x20 + bl LoadPalette + mov r1, r9 + adds r1, 0x80 + adds r0, r4, 0 + movs r2, 0x20 + bl LoadPalette + ldr r0, =0x00000181 + cmp r5, r0 + bne _0805DD1A + movs r7, 0x80 + lsls r7, 1 + add r7, r9 + ldr r5, =gBattleStruct + ldr r1, [r5] + movs r4, 0x80 + lsls r4, 1 + adds r1, r4 + adds r0, r6, 0 + bl LZDecompressWram + ldr r0, =gUnknown_020244E4 + add r0, r8 + ldrb r1, [r0] + lsls r1, 5 + adds r1, r4 + ldr r0, [r5] + adds r0, r1 + adds r1, r7, 0 + movs r2, 0x20 + bl LoadPalette +_0805DD1A: + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r0, [r0] + ldr r1, [sp, 0x4] + adds r0, r1, r0 + ldrh r0, [r0, 0x2] + cmp r0, 0 + beq _0805DD46 + ldr r3, =0x00007fff + adds r0, r7, 0 + movs r1, 0x10 + movs r2, 0x6 + bl BlendPalette + lsls r1, r7, 1 + ldr r0, =gPlttBufferFaded + adds r0, r1, r0 + ldr r2, =gPlttBufferUnfaded + adds r1, r2 + ldr r2, =0x04000008 + bl CpuSet +_0805DD46: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805DC0C + + thumb_func_start sub_805DD7C +sub_805DD7C: @ 805DD7C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r6, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + movs r1, 0 + bl GetMonData + str r0, [sp] + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r0, [r0] + mov r2, r8 + lsls r1, r2, 2 + adds r2, r1, r0 + ldrh r0, [r2, 0x2] + cmp r0, 0 + bne _0805DDC0 + adds r0, r6, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + ldr r4, [sp] + b _0805DDC8 + .pool +_0805DDC0: + ldrh r5, [r2, 0x2] + ldr r0, =gUnknown_020244BC + adds r0, r1, r0 + ldr r4, [r0] +_0805DDC8: + adds r0, r6, 0 + movs r1, 0x1 + bl GetMonData + str r0, [sp, 0x4] + mov r0, r8 + bl GetBankIdentity + lsls r0, 24 + lsrs r7, r0, 24 + movs r0, 0x1 + mov r1, r8 + bl sub_80688F8 + lsls r0, 24 + lsrs r0, 24 + mov r1, r8 + lsls r1, 2 + mov r10, r1 + cmp r0, 0x1 + beq _0805DE00 + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r0, [r0] + add r0, r10 + ldrh r0, [r0, 0x2] + cmp r0, 0 + beq _0805DE2C +_0805DE00: + lsls r0, r5, 3 + ldr r1, =gMonBackPicTable + adds r0, r1 + ldr r1, =gUnknown_020244D4 + ldr r1, [r1] + lsls r2, r7, 2 + adds r1, 0x4 + adds r1, r2 + ldr r1, [r1] + adds r2, r5, 0 + adds r3, r4, 0 + bl HandleLoadSpecialPokePic_DontHandleDeoxys + b _0805DE46 + .pool +_0805DE2C: + lsls r0, r5, 3 + ldr r1, =gMonBackPicTable + adds r0, r1 + ldr r1, =gUnknown_020244D4 + ldr r1, [r1] + lsls r2, r7, 2 + adds r1, 0x4 + adds r1, r2 + ldr r1, [r1] + adds r2, r5, 0 + adds r3, r4, 0 + bl HandleLoadSpecialPokePic +_0805DE46: + mov r2, r8 + lsls r1, r2, 4 + movs r0, 0x80 + lsls r0, 1 + adds r7, r1, r0 + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r0, [r0] + add r0, r10 + ldrh r0, [r0, 0x2] + mov r9, r1 + cmp r0, 0 + bne _0805DE74 + adds r0, r6, 0 + bl pokemon_get_pal + b _0805DE7E + .pool +_0805DE74: + adds r0, r5, 0 + ldr r1, [sp, 0x4] + ldr r2, [sp] + bl species_and_otid_get_pal +_0805DE7E: + adds r6, r0, 0 + ldr r4, =0x0201c000 + adds r0, r6, 0 + adds r1, r4, 0 + bl LZDecompressWram + adds r0, r4, 0 + adds r1, r7, 0 + movs r2, 0x20 + bl LoadPalette + mov r1, r9 + adds r1, 0x80 + adds r0, r4, 0 + movs r2, 0x20 + bl LoadPalette + ldr r0, =0x00000181 + cmp r5, r0 + bne _0805DED2 + movs r7, 0x80 + lsls r7, 1 + add r7, r9 + ldr r5, =gBattleStruct + ldr r1, [r5] + movs r4, 0x80 + lsls r4, 1 + adds r1, r4 + adds r0, r6, 0 + bl LZDecompressWram + ldr r0, =gUnknown_020244E4 + add r0, r8 + ldrb r1, [r0] + lsls r1, 5 + adds r1, r4 + ldr r0, [r5] + adds r0, r1 + adds r1, r7, 0 + movs r2, 0x20 + bl LoadPalette +_0805DED2: + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r0, [r0] + add r0, r10 + ldrh r0, [r0, 0x2] + cmp r0, 0 + beq _0805DEFC + ldr r3, =0x00007fff + adds r0, r7, 0 + movs r1, 0x10 + movs r2, 0x6 + bl BlendPalette + lsls r1, r7, 1 + ldr r0, =gPlttBufferFaded + adds r0, r1, r0 + ldr r2, =gPlttBufferUnfaded + adds r1, r2 + ldr r2, =0x04000008 + bl CpuSet +_0805DEFC: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805DD7C + + thumb_func_start nullsub_23 +nullsub_23: @ 805DF30 + bx lr + thumb_func_end nullsub_23 + + thumb_func_start nullsub_24 +nullsub_24: @ 805DF34 + bx lr + thumb_func_end nullsub_24 + + thumb_func_start sub_805DF38 +sub_805DF38: @ 805DF38 + push {r4,lr} + adds r4, r0, 0 + adds r0, r1, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r0, 24 + lsrs r0, 24 + bl GetBankIdentity + lsls r0, 24 + lsls r4, 3 + ldr r2, =gTrainerFrontPicTable + adds r2, r4, r2 + ldr r1, =gUnknown_020244D4 + ldr r1, [r1] + lsrs r0, 22 + adds r1, 0x4 + adds r1, r0 + ldr r1, [r1] + adds r0, r2, 0 + movs r2, 0 + bl DecompressPicFromTable_2 + ldr r0, =gTrainerFrontPicPaletteTable + adds r4, r0 + adds r0, r4, 0 + bl LoadCompressedObjectPalette + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805DF38 + + thumb_func_start sub_805DF84 +sub_805DF84: @ 805DF84 + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + lsls r5, 16 + lsrs r5, 16 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl GetBankIdentity + lsls r0, 24 + lsls r5, 3 + ldr r2, =gTrainerBackPicTable + adds r2, r5, r2 + ldr r1, =gUnknown_020244D4 + ldr r1, [r1] + lsrs r0, 22 + adds r1, 0x4 + adds r1, r0 + ldr r1, [r1] + adds r0, r2, 0 + movs r2, 0 + bl DecompressPicFromTable_2 + ldr r0, =gTrainerBackPicPaletteTable + adds r5, r0 + ldr r0, [r5] + lsls r4, 20 + movs r1, 0x80 + lsls r1, 17 + adds r4, r1 + lsrs r4, 16 + adds r1, r4, 0 + movs r2, 0x20 + bl LoadCompressedPalette + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805DF84 + + thumb_func_start nullsub_25 +nullsub_25: @ 805DFE0 + bx lr + thumb_func_end nullsub_25 + + thumb_func_start sub_805DFE4 +sub_805DFE4: @ 805DFE4 + push {lr} + lsls r0, 16 + ldr r1, =gTrainerFrontPicPaletteTable + lsrs r0, 13 + adds r0, r1 + ldrh r0, [r0, 0x4] + bl FreeSpritePaletteByTag + pop {r0} + bx r0 + .pool + thumb_func_end sub_805DFE4 + + thumb_func_start sub_805DFFC +sub_805DFFC: @ 805DFFC + push {r4-r7,lr} + ldr r4, =gUnknown_0832C128 + adds r0, r4, 0 + bl LoadSpritePalette + adds r4, 0x8 + adds r0, r4, 0 + bl LoadSpritePalette + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + bne _0805E034 + ldr r0, =gUnknown_0832C0D0 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_0832C0D8 + bl LoadCompressedObjectPic + movs r5, 0x2 + b _0805E056 + .pool +_0805E034: + ldr r4, =gUnknown_0832C0E0 + adds r0, r4, 0 + bl LoadCompressedObjectPic + adds r4, 0x8 + adds r0, r4, 0 + bl LoadCompressedObjectPic + ldr r4, =gUnknown_0832C0F0 + adds r0, r4, 0 + bl LoadCompressedObjectPic + adds r4, 0x8 + adds r0, r4, 0 + bl LoadCompressedObjectPic + movs r5, 0x4 +_0805E056: + movs r4, 0 + cmp r4, r5 + bcs _0805E076 + ldr r7, =gBanksBySide + ldr r6, =gUnknown_0832C108 +_0805E060: + adds r0, r4, r7 + ldrb r0, [r0] + lsls r0, 3 + adds r0, r6 + bl LoadCompressedObjectPic + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r5 + bcc _0805E060 +_0805E076: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805DFFC + + thumb_func_start sub_805E08C +sub_805E08C: @ 805E08C + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + movs r6, 0 + cmp r4, 0 + bne _0805E09C + b _0805E1AE +_0805E09C: + cmp r4, 0x1 + bne _0805E0B8 + ldr r4, =gUnknown_0832C128 + adds r0, r4, 0 + bl LoadSpritePalette + adds r4, 0x8 + adds r0, r4, 0 + bl LoadSpritePalette + b _0805E1AE + .pool +_0805E0B8: + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + bne _0805E120 + cmp r4, 0x2 + bne _0805E0F0 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0805E0E4 + ldr r0, =gUnknown_0832C100 + bl LoadCompressedObjectPic + b _0805E1AE + .pool +_0805E0E4: + ldr r0, =gUnknown_0832C0D0 + bl LoadCompressedObjectPic + b _0805E1AE + .pool +_0805E0F0: + cmp r4, 0x3 + bne _0805E100 + ldr r0, =gUnknown_0832C0D8 + bl LoadCompressedObjectPic + b _0805E1AE + .pool +_0805E100: + cmp r4, 0x4 + bne _0805E110 + ldr r0, =gBanksBySide + ldrb r0, [r0] + b _0805E198 + .pool +_0805E110: + cmp r4, 0x5 + bne _0805E1AC + ldr r0, =gBanksBySide + ldrb r0, [r0, 0x1] + b _0805E198 + .pool +_0805E120: + cmp r4, 0x2 + bne _0805E130 + ldr r0, =gUnknown_0832C0E0 + bl LoadCompressedObjectPic + b _0805E1AE + .pool +_0805E130: + cmp r4, 0x3 + bne _0805E140 + ldr r0, =gUnknown_0832C0E8 + bl LoadCompressedObjectPic + b _0805E1AE + .pool +_0805E140: + cmp r4, 0x4 + bne _0805E150 + ldr r0, =gUnknown_0832C0F0 + bl LoadCompressedObjectPic + b _0805E1AE + .pool +_0805E150: + cmp r4, 0x5 + bne _0805E160 + ldr r0, =gUnknown_0832C0F8 + bl LoadCompressedObjectPic + b _0805E1AE + .pool +_0805E160: + cmp r4, 0x6 + bne _0805E170 + ldr r0, =gBanksBySide + ldrb r0, [r0] + b _0805E198 + .pool +_0805E170: + cmp r4, 0x7 + bne _0805E180 + ldr r0, =gBanksBySide + ldrb r0, [r0, 0x1] + b _0805E198 + .pool +_0805E180: + cmp r4, 0x8 + bne _0805E190 + ldr r0, =gBanksBySide + ldrb r0, [r0, 0x2] + b _0805E198 + .pool +_0805E190: + cmp r5, 0x9 + bne _0805E1AC + ldr r0, =gBanksBySide + ldrb r0, [r0, 0x3] +_0805E198: + lsls r0, 3 + ldr r1, =gUnknown_0832C108 + adds r0, r1 + bl LoadCompressedObjectPic + b _0805E1AE + .pool +_0805E1AC: + movs r6, 0x1 +_0805E1AE: + adds r0, r6, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_805E08C + + thumb_func_start load_gfxc_health_bar +load_gfxc_health_bar: @ 805E1B8 + push {lr} + ldr r0, =gUnknown_08C093F0 + ldr r1, =gUnknown_020244D4 + ldr r1, [r1] + movs r2, 0xBA + lsls r2, 1 + adds r1, r2 + ldr r1, [r1] + bl LZDecompressWram + pop {r0} + bx r0 + .pool + thumb_func_end load_gfxc_health_bar + + thumb_func_start battle_load_something +battle_load_something: @ 805E1D8 + push {r4-r6,lr} + adds r5, r0, 0 + adds r4, r1, 0 + movs r6, 0 + ldrb r0, [r5] + cmp r0, 0x6 + bls _0805E1E8 + b _0805E346 +_0805E1E8: + lsls r0, 2 + ldr r1, =_0805E1F8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0805E1F8: + .4byte _0805E214 + .4byte _0805E21A + .4byte _0805E324 + .4byte _0805E230 + .4byte _0805E260 + .4byte _0805E29C + .4byte _0805E33C +_0805E214: + bl sub_805E378 + b _0805E324 +_0805E21A: + ldrb r0, [r4] + bl sub_805E08C + lsls r0, 24 + cmp r0, 0 + beq _0805E228 + b _0805E320 +_0805E228: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _0805E346 +_0805E230: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0805E24C + ldrb r0, [r4] + cmp r0, 0 + bne _0805E24C + bl battle_make_oam_safari_battle + b _0805E252 + .pool +_0805E24C: + ldrb r0, [r4] + bl battle_make_oam_normal_battle +_0805E252: + ldr r2, =gUnknown_03005D70 + ldrb r1, [r4] + adds r1, r2 + strb r0, [r1] + b _0805E30E + .pool +_0805E260: + ldrb r0, [r4] + bl sub_8072B18 + ldr r0, =gBanksBySide + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, 0x1 + bhi _0805E288 + ldr r0, =gUnknown_03005D70 + adds r0, r1, r0 + ldrb r0, [r0] + movs r1, 0 + bl nullsub_30 + b _0805E30E + .pool +_0805E288: + ldr r0, =gUnknown_03005D70 + adds r0, r1, r0 + ldrb r0, [r0] + movs r1, 0x1 + bl nullsub_30 + b _0805E30E + .pool +_0805E29C: + ldrb r0, [r4] + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _0805E2E4 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0805E302 + ldr r0, =gUnknown_03005D70 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + ldr r2, =gBattlePartyID + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gPlayerParty + adds r1, r2 + movs r2, 0 + bl healthbar_draw_field_maybe + b _0805E302 + .pool +_0805E2E4: + ldr r0, =gUnknown_03005D70 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + ldr r2, =gBattlePartyID + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gEnemyParty + adds r1, r2 + movs r2, 0 + bl healthbar_draw_field_maybe +_0805E302: + ldr r1, =gUnknown_03005D70 + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + bl sub_8072984 +_0805E30E: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldr r1, =gNoOfAllBanks + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bne _0805E346 +_0805E320: + movs r0, 0 + strb r0, [r4] +_0805E324: + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + b _0805E346 + .pool +_0805E33C: + bl sub_805EC84 + bl sub_81B8C68 + movs r6, 0x1 +_0805E346: + adds r0, r6, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end battle_load_something + + thumb_func_start sub_805E350 +sub_805E350: @ 805E350 + push {r4,lr} + ldr r4, =gUnknown_020244D0 + ldr r0, [r4] + ldr r0, [r0, 0x4] + movs r1, 0 + movs r2, 0x30 + bl memset + ldr r0, [r4] + ldr r0, [r0, 0x8] + movs r1, 0 + movs r2, 0x10 + bl memset + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805E350 + + thumb_func_start sub_805E378 +sub_805E378: @ 805E378 + push {lr} + bl sub_805E350 + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r0, [r0] + movs r1, 0 + movs r2, 0x10 + bl memset + pop {r0} + bx r0 + .pool + thumb_func_end sub_805E378 + + thumb_func_start sub_805E394 +sub_805E394: @ 805E394 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r4, 0 + ldr r5, =gNoOfAllBanks + ldrb r0, [r5] + cmp r4, r0 + bge _0805E3EA + ldr r0, =gSprites + mov r9, r0 + movs r0, 0x1 + mov r12, r0 + movs r0, 0x2 + negs r0, r0 + mov r8, r0 + ldr r7, =gUnknown_020244D0 + ldr r6, =gBankSpriteIds +_0805E3B8: + ldr r0, [r7] + ldr r0, [r0] + lsls r3, r4, 2 + adds r3, r0 + adds r0, r4, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r9 + adds r0, 0x3E + ldrb r1, [r0] + lsls r1, 29 + lsrs r1, 31 + mov r0, r12 + ands r1, r0 + ldrb r2, [r3] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r4, 0x1 + ldrb r0, [r5] + cmp r4, r0 + blt _0805E3B8 +_0805E3EA: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805E394 + + thumb_func_start sub_805E408 +sub_805E408: @ 805E408 + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gUnknown_020244D0 + ldr r1, [r1] + ldr r1, [r1] + lsls r3, r0, 2 + adds r3, r1 + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + lsls r1, 29 + lsrs r1, 31 + ldrb r2, [r3] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bx lr + .pool + thumb_func_end sub_805E408 + + thumb_func_start sub_805E448 +sub_805E448: @ 805E448 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp] + lsls r2, 24 + cmp r2, 0 + beq _0805E51C + ldr r0, =gBankSpriteIds + adds r5, r7, r0 + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + mov r8, r1 + add r0, r8 + ldr r4, =gUnknown_020244D0 + ldr r1, [r4] + ldr r1, [r1, 0x8] + ldrb r1, [r1] + bl StartSpriteAnim + lsls r0, r7, 20 + movs r2, 0x80 + lsls r2, 17 + adds r0, r2 + lsrs r6, r0, 16 + ldr r2, =gBattleStruct + ldr r0, [r4] + ldr r0, [r0, 0x8] + ldrh r1, [r0] + lsls r1, 5 + movs r3, 0x80 + lsls r3, 1 + adds r1, r3 + ldr r0, [r2] + adds r0, r1 + adds r1, r6, 0 + movs r2, 0x20 + bl LoadPalette + ldr r1, =gUnknown_020244E4 + adds r1, r7, r1 + ldr r0, [r4] + ldr r0, [r0, 0x8] + ldrh r0, [r0] + strb r0, [r1] + ldr r0, [r4] + ldr r1, [r0] + lsls r0, r7, 2 + adds r0, r1 + ldrh r0, [r0, 0x2] + cmp r0, 0 + beq _0805E4DE + ldr r3, =0x00007fff + adds r0, r6, 0 + movs r1, 0x10 + movs r2, 0x6 + bl BlendPalette + lsls r1, r6, 1 + ldr r0, =gPlttBufferFaded + adds r0, r1, r0 + ldr r2, =gPlttBufferUnfaded + adds r1, r2 + ldr r2, =0x04000008 + bl CpuSet +_0805E4DE: + adds r0, r7, 0 + bl sub_80A6138 + ldrb r2, [r5] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + add r1, r8 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0x22] + b _0805E77A + .pool +_0805E51C: + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + beq _0805E558 + movs r0, 0 + mov r10, r0 + ldr r0, =gUnknown_02039F34 + ldr r0, [r0] + ldr r2, [r0, 0x18] + ldrh r1, [r2, 0x2] + mov r8, r1 + ldr r3, [r2, 0x8] + mov r9, r3 + ldr r4, [r2, 0xC] + lsls r0, r1, 3 + ldr r1, =gMonBackPicTable + adds r0, r1 + ldr r1, =gUnknown_020244D4 + ldr r1, [r1] + ldr r1, [r1, 0x4] + ldr r3, [r2, 0x10] + b _0805E5FA + .pool +_0805E558: + adds r0, r7, 0 + bl GetBankIdentity + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r0, [sp] + bl GetBankSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0805E58C + ldr r1, =gBattlePartyID + ldr r2, [sp] + lsls r0, r2, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + b _0805E59C + .pool +_0805E58C: + ldr r1, =gBattlePartyID + ldr r3, [sp] + lsls r0, r3, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty +_0805E59C: + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + adds r0, r7, 0 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _0805E618 + ldr r0, =gBattlePartyID + lsls r4, r7, 1 + adds r4, r0 + ldrh r0, [r4] + movs r6, 0x64 + muls r0, r6 + ldr r5, =gPlayerParty + adds r0, r5 + movs r1, 0 + bl GetMonData + mov r9, r0 + ldrh r0, [r4] + muls r0, r6 + adds r0, r5 + movs r1, 0x1 + bl GetMonData + adds r4, r0, 0 + mov r1, r8 + lsls r0, r1, 3 + ldr r1, =gMonBackPicTable + adds r0, r1 + ldr r1, =gUnknown_020244D4 + ldr r1, [r1] + mov r3, r10 + lsls r2, r3, 2 + adds r1, 0x4 + adds r1, r2 + ldr r1, [r1] + ldr r3, =gUnknown_020244BC + lsls r2, r7, 2 + adds r2, r3 + ldr r3, [r2] +_0805E5FA: + mov r2, r8 + bl HandleLoadSpecialPokePic_DontHandleDeoxys + b _0805E662 + .pool +_0805E618: + ldr r0, =gBattlePartyID + lsls r4, r7, 1 + adds r4, r0 + ldrh r0, [r4] + movs r6, 0x64 + muls r0, r6 + ldr r5, =gEnemyParty + adds r0, r5 + movs r1, 0 + bl GetMonData + mov r9, r0 + ldrh r0, [r4] + muls r0, r6 + adds r0, r5 + movs r1, 0x1 + bl GetMonData + adds r4, r0, 0 + mov r1, r8 + lsls r0, r1, 3 + ldr r1, =gMonFrontPicTable + adds r0, r1 + ldr r1, =gUnknown_020244D4 + ldr r1, [r1] + mov r3, r10 + lsls r2, r3, 2 + adds r1, 0x4 + adds r1, r2 + ldr r1, [r1] + ldr r3, =gUnknown_020244BC + lsls r2, r7, 2 + adds r2, r3 + ldr r3, [r2] + mov r2, r8 + bl HandleLoadSpecialPokePic_DontHandleDeoxys +_0805E662: + ldr r0, =gUnknown_020244D4 + ldr r0, [r0] + mov r2, r10 + lsls r1, r2, 2 + adds r0, 0x4 + adds r0, r1 + ldr r2, [r0] + ldr r0, =gBankSpriteIds + adds r0, r7 + mov r10, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r3, =gSprites + adds r0, r3 + ldrh r0, [r0, 0x4] + lsls r0, 22 + lsrs r0, 17 + ldr r1, =0x06010000 + adds r0, r1 + ldr r1, =0x040000d4 + str r2, [r1] + str r0, [r1, 0x4] + ldr r0, =0x84000200 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + lsls r0, r7, 20 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r6, r0, 16 + mov r0, r8 + adds r1, r4, 0 + mov r2, r9 + bl species_and_otid_get_pal + mov r9, r0 + ldr r4, =0x0201c000 + adds r1, r4, 0 + bl LZDecompressWram + adds r0, r4, 0 + adds r1, r6, 0 + movs r2, 0x20 + bl LoadPalette + ldr r0, =0x00000181 + cmp r8, r0 + bne _0805E70A + mov r2, r10 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r1, 0x8 + adds r0, r1 + ldr r1, =gUnknown_08309AAC + mov r3, r8 + lsls r2, r3, 2 + adds r1, r2 + ldr r1, [r1] + str r1, [r0] + ldr r5, =gBattleStruct + ldr r1, [r5] + movs r4, 0x80 + lsls r4, 1 + adds r1, r4 + mov r0, r9 + bl LZDecompressWram + ldr r0, =gUnknown_020244E4 + ldr r1, [sp] + adds r0, r1, r0 + ldrb r1, [r0] + lsls r1, 5 + adds r1, r4 + ldr r0, [r5] + adds r0, r1 + adds r1, r6, 0 + movs r2, 0x20 + bl LoadPalette +_0805E70A: + ldr r3, =0x00007fff + adds r0, r6, 0 + movs r1, 0x10 + movs r2, 0x6 + bl BlendPalette + lsls r1, r6, 1 + ldr r0, =gPlttBufferFaded + adds r0, r1, r0 + ldr r2, =gPlttBufferUnfaded + adds r1, r2 + ldr r2, =0x04000008 + bl CpuSet + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + bne _0805E74A + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r7, 2 + adds r0, r1 + mov r2, r8 + strh r2, [r0, 0x2] + ldr r0, =gUnknown_020244E4 + adds r1, r7, r0 + ldr r3, [sp] + adds r0, r3, r0 + ldrb r0, [r0] + strb r0, [r1] +_0805E74A: + adds r0, r7, 0 + bl sub_80A6138 + mov r1, r10 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + ldr r2, =gSprites + adds r1, r2 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0x22] + mov r3, r10 + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, =gUnknown_020244E4 + adds r1, r7, r1 + ldrb r1, [r1] + bl StartSpriteAnim +_0805E77A: + 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_805E448 + + thumb_func_start sub_805E7DC +sub_805E7DC: @ 805E7DC + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + lsls r1, 24 + cmp r1, 0 + bne _0805E898 + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + beq _0805E7F8 + movs r4, 0 + b _0805E802 +_0805E7F8: + adds r0, r4, 0 + bl GetBankIdentity + lsls r0, 24 + lsrs r4, r0, 24 +_0805E802: + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + beq _0805E814 + ldr r0, =gUnknown_08C2D120 + b _0805E822 + .pool +_0805E814: + adds r0, r5, 0 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + beq _0805E83C + ldr r0, =gUnknown_08C2CEE0 +_0805E822: + ldr r1, =gUnknown_020244D4 + ldr r1, [r1] + lsls r4, 2 + adds r1, 0x4 + adds r1, r4 + ldr r1, [r1] + bl LZDecompressVram + b _0805E84E + .pool +_0805E83C: + ldr r0, =gUnknown_08C2D120 + ldr r1, =gUnknown_020244D4 + ldr r1, [r1] + lsls r4, 2 + adds r1, 0x4 + adds r1, r4 + ldr r1, [r1] + bl LZDecompressVram +_0805E84E: + movs r3, 0x1 + lsls r6, r5, 4 + ldr r7, =gUnknown_08C2CEBC + ldr r0, =gUnknown_020244D4 + ldr r0, [r0] + adds r0, 0x4 + adds r4, r0, r4 + ldr r2, =0x040000d4 + ldr r5, =0x84000200 +_0805E860: + ldr r0, [r4] + lsls r1, r3, 11 + adds r1, r0, r1 + str r0, [r2] + str r1, [r2, 0x4] + str r5, [r2, 0x8] + ldr r0, [r2, 0x8] + adds r3, 0x1 + cmp r3, 0x3 + ble _0805E860 + movs r0, 0x80 + lsls r0, 1 + adds r1, r6, r0 + adds r0, r7, 0 + movs r2, 0x20 + bl LoadCompressedPalette + b _0805E8E6 + .pool +_0805E898: + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + bne _0805E8E6 + adds r0, r4, 0 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + beq _0805E8D0 + ldr r1, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + adds r0, r1 + adds r1, r4, 0 + bl sub_805DC0C + b _0805E8E6 + .pool +_0805E8D0: + ldr r1, =gBattlePartyID + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + adds r1, r5, 0 + bl sub_805DD7C +_0805E8E6: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805E7DC + + thumb_func_start refresh_graphics_maybe +refresh_graphics_maybe: @ 805E8F4 + push {r4-r6,lr} + adds r5, r1, 0 + adds r4, r2, 0 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_805E7DC + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, =gSprites + adds r4, r0, r1 + ldr r0, =gUnknown_020244E4 + adds r0, r6, r0 + ldrb r1, [r0] + adds r0, r4, 0 + bl StartSpriteAnim + cmp r5, 0 + bne _0805E938 + adds r0, r6, 0 + bl sub_80A614C + b _0805E93E + .pool +_0805E938: + adds r0, r6, 0 + bl sub_80A6138 +_0805E93E: + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end refresh_graphics_maybe + + thumb_func_start sub_805E94C +sub_805E94C: @ 805E94C + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 16 + lsrs r1, 16 + cmp r1, 0xA4 + bne _0805E96C + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r0, [r0] + lsls r1, r2, 2 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] +_0805E96C: + pop {r0} + bx r0 + .pool + thumb_func_end sub_805E94C + + thumb_func_start sub_805E974 +sub_805E974: @ 805E974 + lsls r0, 24 + ldr r1, =gUnknown_020244D0 + ldr r1, [r1] + ldr r1, [r1] + lsrs r0, 22 + adds r0, r1 + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + bx lr + .pool + thumb_func_end sub_805E974 + + thumb_func_start sub_805E990 +sub_805E990: @ 805E990 + push {r4-r7,lr} + adds r5, r0, 0 + lsls r1, 24 + lsrs r6, r1, 24 + adds r7, r6, 0 + movs r1, 0x39 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + movs r1, 0x3A + bl GetMonData + adds r1, r0, 0 + lsls r4, 16 + asrs r4, 16 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl sub_8075060 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0805EA08 + ldr r7, =gUnknown_020244D0 + ldr r0, [r7] + ldr r2, [r0] + lsls r4, r6, 2 + adds r0, r4, r2 + ldrb r1, [r0] + movs r5, 0x2 + movs r3, 0x2 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _0805EA5A + adds r0, r6, 0 + eors r0, r5 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _0805E9F6 + movs r0, 0x5A + bl PlaySE +_0805E9F6: + ldr r0, [r7] + ldr r1, [r0] + adds r1, r4, r1 + ldrb r0, [r1] + orrs r0, r5 + strb r0, [r1] + b _0805EA5A + .pool +_0805EA08: + ldr r4, =gUnknown_020244D0 + ldr r0, [r4] + ldr r0, [r0] + lsls r1, r6, 2 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x3 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + bne _0805EA34 + movs r0, 0x5A + bl m4aSongNumStop + b _0805EA5A + .pool +_0805EA34: + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _0805EA5A + ldr r1, [r4] + movs r0, 0x2 + eors r7, r0 + ldr r1, [r1] + lsls r0, r7, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _0805EA5A + movs r0, 0x5A + bl m4aSongNumStop +_0805EA5A: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_805E990 + + thumb_func_start sub_805EA60 +sub_805EA60: @ 805EA60 + push {r4-r6,lr} + movs r0, 0 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r4, r0, 24 + ldr r5, =gUnknown_020244D0 + ldr r0, [r5] + ldr r0, [r0] + lsls r1, r4, 2 + adds r1, r0 + ldrb r2, [r1] + movs r6, 0x3 + negs r6, r6 + adds r0, r6, 0 + ands r0, r2 + strb r0, [r1] + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _0805EAA2 + ldr r2, [r5] + movs r0, 0x2 + adds r1, r4, 0 + eors r1, r0 + ldr r0, [r2] + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1] + adds r0, r6, 0 + ands r0, r2 + strb r0, [r1] +_0805EAA2: + movs r0, 0x5A + bl m4aSongNumStop + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805EA60 + + thumb_func_start sub_805EAB4 +sub_805EAB4: @ 805EAB4 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x39 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + movs r1, 0x3A + bl GetMonData + adds r1, r0, 0 + lsls r4, 16 + asrs r4, 16 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl sub_8075060 + lsls r0, 24 + lsrs r0, 24 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_805EAB4 + + thumb_func_start sub_805EAE8 +sub_805EAE8: @ 805EAE8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, =gMain + ldr r1, =0x00000439 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0805EB7E + movs r0, 0 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r0, 0x2 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r5, =gBattlePartyID + mov r1, r8 + lsls r0, r1, 1 + adds r0, r5 + ldrb r0, [r0] + bl pokemon_order_func + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + mov r1, r9 + lsls r0, r1, 1 + adds r0, r5 + ldrb r0, [r0] + bl pokemon_order_func + lsls r0, 24 + lsrs r5, r0, 24 + movs r7, 0x64 + adds r0, r4, 0 + muls r0, r7 + ldr r6, =gPlayerParty + adds r4, r0, r6 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _0805EB5A + adds r0, r4, 0 + mov r1, r8 + bl sub_805E990 +_0805EB5A: + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _0805EB7E + adds r0, r5, 0 + muls r0, r7 + adds r4, r0, r6 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _0805EB7E + adds r0, r4, 0 + mov r1, r9 + bl sub_805E990 +_0805EB7E: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805EAE8 + + thumb_func_start sub_805EB9C +sub_805EB9C: @ 805EB9C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r5, 0 + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + cmp r5, r0 + bge _0805EC6C + movs r0, 0x3 + mov r10, r8 + mov r1, r10 + ands r1, r0 + mov r10, r1 + movs r6, 0 + movs r2, 0x3F + negs r2, r2 + mov r9, r2 +_0805EBC8: + lsls r0, r5, 24 + lsrs r0, 24 + bl sub_80A6A90 + lsls r0, 24 + cmp r0, 0 + beq _0805EC60 + ldr r4, =gSprites + ldr r0, =gBankSpriteIds + adds r3, r5, r0 + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0, 0x1] + movs r7, 0x4 + negs r7, r7 + adds r2, r7, 0 + ands r1, r2 + mov r2, r10 + orrs r1, r2 + strb r1, [r0, 0x1] + mov r7, r8 + cmp r7, 0 + bne _0805EC3C + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r2, [r0, 0x4] + adds r2, r6, r2 + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + strb r0, [r2, 0x6] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0, 0x3] + mov r2, r9 + ands r1, r2 + strb r1, [r0, 0x3] + b _0805EC60 + .pool +_0805EC3C: + ldrb r0, [r3] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r4 + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r0, [r0, 0x4] + adds r0, r6, r0 + ldrb r1, [r0, 0x6] + movs r0, 0x1F + ands r1, r0 + lsls r1, 1 + ldrb r0, [r2, 0x3] + mov r3, r9 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x3] +_0805EC60: + adds r6, 0xC + adds r5, 0x1 + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + cmp r5, r0 + blt _0805EBC8 +_0805EC6C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805EB9C + + thumb_func_start sub_805EC84 +sub_805EC84: @ 805EC84 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, =gUnknown_0831C6A0 + bl LoadCompressedObjectPic + movs r0, 0x1 + bl GetBankByPlayerAI + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, =gUnknown_0831C6B0 + mov r8, r0 + adds r0, r5, 0 + movs r1, 0 + bl sub_80A5C6C + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80A5C6C + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 8 + movs r0, 0xE8 + lsls r0, 13 + adds r2, r0 + asrs r2, 16 + mov r0, r8 + adds r1, r4, 0 + movs r3, 0xC8 + bl CreateSprite + ldr r6, =gUnknown_020244D0 + ldr r1, [r6] + ldr r2, [r1, 0x4] + lsls r1, r5, 1 + adds r1, r5 + lsls r1, 2 + adds r2, r1, r2 + strb r0, [r2, 0x7] + ldr r7, =gSprites + ldr r0, [r6] + ldr r0, [r0, 0x4] + adds r1, r0 + ldrb r1, [r1, 0x7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r5, [r0, 0x2E] + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _0805ED56 + movs r0, 0x3 + bl GetBankByPlayerAI + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + adds r0, r5, 0 + movs r1, 0 + bl sub_80A5C6C + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80A5C6C + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 8 + movs r0, 0xE8 + lsls r0, 13 + adds r2, r0 + asrs r2, 16 + mov r0, r8 + adds r1, r4, 0 + movs r3, 0xC8 + bl CreateSprite + ldr r1, [r6] + ldr r2, [r1, 0x4] + lsls r1, r5, 1 + adds r1, r5 + lsls r1, 2 + adds r2, r1, r2 + strb r0, [r2, 0x7] + ldr r0, [r6] + ldr r0, [r0, 0x4] + adds r1, r0 + ldrb r1, [r1, 0x7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r5, [r0, 0x2E] +_0805ED56: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805EC84 + + thumb_func_start sub_805ED70 +@ int sub_805ED70(obj *a1) +sub_805ED70: @ 805ED70 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + movs r0, 0 + mov r8, r0 + ldrh r0, [r5, 0x2E] + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gBankSpriteIds + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r7, r0, r1 + adds r6, r7, 0 + adds r6, 0x3E + ldrb r1, [r6] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0805EDAC + adds r0, r4, 0 + bl sub_80A6A90 + lsls r0, 24 + cmp r0, 0 + bne _0805EDC0 +_0805EDAC: + ldr r0, =sub_805EE48 + str r0, [r5, 0x1C] + b _0805EE36 + .pool +_0805EDC0: + ldr r0, =gAnimScriptActive + ldrb r0, [r0] + cmp r0, 0 + bne _0805EDD2 + ldrb r1, [r6] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0805EDE4 +_0805EDD2: + movs r0, 0x1 + mov r8, r0 + ldr r2, =gUnknown_020244D0 + lsls r4, 2 + b _0805EE06 + .pool +_0805EDE4: + ldr r2, =gUnknown_020244D0 + ldr r0, [r2] + ldr r0, [r0] + lsls r1, r4, 2 + adds r3, r1, r0 + ldrh r0, [r3, 0x2] + adds r4, r1, 0 + cmp r0, 0 + beq _0805EE06 + ldr r0, =gUnknown_08305DCC + ldrh r1, [r3, 0x2] + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + bne _0805EE06 + movs r0, 0x1 + mov r8, r0 +_0805EE06: + ldr r0, [r2] + ldr r0, [r0] + adds r0, r4, r0 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0805EE1A + movs r0, 0x1 + mov r8, r0 +_0805EE1A: + ldrh r0, [r7, 0x20] + strh r0, [r5, 0x20] + ldrh r0, [r7, 0x24] + strh r0, [r5, 0x24] + adds r2, r5, 0 + adds r2, 0x3E + mov r0, r8 + lsls r3, r0, 2 + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2] +_0805EE36: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805ED70 + + thumb_func_start sub_805EE48 +sub_805EE48: @ 805EE48 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + bx lr + thumb_func_end sub_805EE48 + + thumb_func_start sub_805EE54 +sub_805EE54: @ 805EE54 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r6, r4, 0 + lsls r1, 16 + lsrs r5, r1, 16 + adds r0, r4, 0 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + beq _0805EED0 + ldr r0, =gUnknown_020244D0 + ldr r3, [r0] + ldr r1, [r3] + lsls r0, r4, 2 + adds r1, r0, r1 + ldrh r0, [r1, 0x2] + cmp r0, 0 + beq _0805EE7E + adds r5, r0, 0 +_0805EE7E: + ldr r0, =gUnknown_08305DCC + adds r0, r5, r0 + ldrb r0, [r0] + cmp r0, 0 + beq _0805EEB4 + ldr r2, =gSprites + ldr r1, [r3, 0x4] + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, =sub_805ED70 + b _0805EECE + .pool +_0805EEB4: + ldr r2, =gSprites + ldr r1, [r3, 0x4] + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, =sub_805EE48 +_0805EECE: + str r1, [r0] +_0805EED0: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805EE54 + + thumb_func_start sub_805EEE0 +sub_805EEE0: @ 805EEE0 + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gSprites + ldr r1, =gUnknown_020244D0 + ldr r1, [r1] + ldr r3, [r1, 0x4] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r1, [r1, 0x7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, =sub_805EE48 + str r1, [r0] + bx lr + .pool + thumb_func_end sub_805EEE0 + + thumb_func_start sub_805EF14 +sub_805EF14: @ 805EF14 + push {r4-r6,lr} + ldr r3, =0x06000240 + movs r0, 0 + movs r6, 0xF0 + lsls r6, 8 +_0805EF1E: + adds r5, r0, 0x1 + movs r4, 0xF +_0805EF22: + ldrh r1, [r3] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + bne _0805EF32 + adds r0, r6, 0 + orrs r0, r1 + strh r0, [r3] +_0805EF32: + ldrh r1, [r3] + movs r2, 0xF0 + lsls r2, 4 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _0805EF46 + adds r0, r2, 0 + orrs r0, r1 + strh r0, [r3] +_0805EF46: + ldrh r1, [r3] + movs r2, 0xF0 + movs r0, 0xF0 + ands r0, r1 + cmp r0, 0 + bne _0805EF58 + adds r0, r1, 0 + orrs r0, r2 + strh r0, [r3] +_0805EF58: + ldrh r1, [r3] + movs r2, 0xF + movs r0, 0xF + ands r0, r1 + cmp r0, 0 + bne _0805EF6A + adds r0, r1, 0 + orrs r0, r2 + strh r0, [r3] +_0805EF6A: + adds r3, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _0805EF22 + adds r0, r5, 0 + cmp r0, 0x8 + ble _0805EF1E + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805EF14 + + thumb_func_start sub_805EF84 +sub_805EF84: @ 805EF84 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r2, [r0] + lsls r0, r4, 2 + adds r0, r2 + movs r3, 0 + movs r2, 0 + strh r2, [r0, 0x2] + ldr r0, =gUnknown_020244E4 + adds r0, r4, r0 + strb r3, [r0] + cmp r1, 0 + bne _0805EFAC + adds r0, r4, 0 + bl sub_805E974 +_0805EFAC: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805EF84 + + thumb_func_start init_uns_table_pokemon_copy +init_uns_table_pokemon_copy: @ 805EFBC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r6, 0 + ldr r4, =gUnknown_020244D4 + str r6, [r4] + movs r0, 0xC0 + lsls r0, 1 + bl AllocZeroed + str r0, [r4] + movs r0, 0x80 + lsls r0, 8 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1] +_0805EFE2: + ldr r0, =gUnknown_020244D4 + ldr r1, [r0] + lsls r4, r6, 2 + adds r2, r1, 0x4 + adds r2, r4 + lsls r3, r6, 13 + ldr r0, [r1] + adds r0, r3 + str r0, [r2] + lsls r3, r6, 1 + adds r0, r3, r6 + lsls r0, 3 + adds r1, r0, r1 + ldr r2, =gUnknown_08329D98 + adds r1, 0x14 + adds r0, r2 + ldm r0!, {r2,r5,r7} + stm r1!, {r2,r5,r7} + ldm r0!, {r2,r5,r7} + stm r1!, {r2,r5,r7} + movs r5, 0 + mov r9, r3 + lsls r0, r6, 5 + mov r8, r0 + adds r1, r6, 0x1 + mov r10, r1 + mov r12, r8 + adds r7, r4, 0 +_0805F01A: + ldr r2, =gUnknown_020244D4 + ldr r1, [r2] + lsls r4, r5, 3 + add r4, r12 + adds r3, r1, 0 + adds r3, 0x74 + adds r3, r4 + adds r0, r1, 0x4 + adds r0, r7 + lsls r2, r5, 11 + ldr r0, [r0] + adds r0, r2 + str r0, [r3] + adds r1, r4 + adds r1, 0x78 + movs r0, 0x80 + lsls r0, 4 + strh r0, [r1] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _0805F01A + ldr r1, =gUnknown_020244D4 + ldr r2, [r1] + mov r5, r9 + adds r0, r5, r6 + lsls r0, 3 + adds r1, r2, 0 + adds r1, 0x20 + adds r1, r0 + mov r0, r8 + adds r0, 0x74 + adds r2, r0 + str r2, [r1] + mov r7, r10 + lsls r0, r7, 24 + lsrs r6, r0, 24 + cmp r6, 0x3 + bls _0805EFE2 + movs r0, 0x80 + lsls r0, 5 + bl AllocZeroed + ldr r1, =gUnknown_020244D4 + ldr r1, [r1] + movs r2, 0xBA + lsls r2, 1 + adds r1, r2 + str r0, [r1] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end init_uns_table_pokemon_copy + + thumb_func_start sub_805F094 +sub_805F094: @ 805F094 + push {r4-r6,lr} + ldr r6, =gUnknown_020244D4 + ldr r0, [r6] + cmp r0, 0 + beq _0805F106 + movs r1, 0xBE + lsls r1, 1 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0 + beq _0805F0BA + bl Free + ldr r0, [r6] + movs r1, 0xBE + lsls r1, 1 + adds r0, r1 + movs r1, 0 + str r1, [r0] +_0805F0BA: + ldr r0, [r6] + movs r1, 0xBC + lsls r1, 1 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0 + beq _0805F0D8 + bl Free + ldr r0, [r6] + movs r1, 0xBC + lsls r1, 1 + adds r0, r1 + movs r1, 0 + str r1, [r0] +_0805F0D8: + ldr r0, [r6] + movs r5, 0xBA + lsls r5, 1 + adds r0, r5 + ldr r0, [r0] + bl Free + ldr r0, [r6] + adds r5, r0, r5 + movs r4, 0 + str r4, [r5] + ldr r0, [r0] + bl Free + ldr r0, [r6] + str r4, [r0] + str r4, [r0, 0x4] + str r4, [r0, 0x8] + str r4, [r0, 0xC] + str r4, [r0, 0x10] + bl Free + str r4, [r6] +_0805F106: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805F094 + + thumb_func_start sub_805F110 +sub_805F110: @ 805F110 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x37 + bl GetMonData + ldr r1, =0x00000fff + ands r1, r0 + cmp r1, 0 + bne _0805F158 + adds r0, r5, 0 + movs r1, 0x39 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + movs r1, 0x3A + bl GetMonData + adds r1, r0, 0 + lsls r4, 16 + asrs r4, 16 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl sub_8075060 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + ble _0805F158 + movs r0, 0x1 + b _0805F15A + .pool +_0805F158: + movs r0, 0 +_0805F15A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_805F110 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_9.s b/asm/battle_9.s new file mode 100644 index 0000000000..00d893f212 --- /dev/null +++ b/asm/battle_9.s @@ -0,0 +1,2847 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start ai_switch_perish_song +ai_switch_perish_song: @ 8062BF8 + push {lr} + ldr r1, =gStatuses3 + ldr r0, =gActiveBank + ldrb r2, [r0] + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08062C50 + ldr r0, =gDisableStructs + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0xF] + lsls r0, 28 + cmp r0, 0 + bne _08062C50 + ldr r0, =gBattleStruct + ldr r0, [r0] + adds r0, r2, r0 + movs r1, 0xA5 + lsls r1, 2 + adds r0, r1 + movs r1, 0x6 + strb r1, [r0] + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0 + bl dp01_build_cmdbuf_x21_a_bb + movs r0, 0x1 + b _08062C52 + .pool +_08062C50: + movs r0, 0 +_08062C52: + pop {r1} + bx r1 + thumb_func_end ai_switch_perish_song + + thumb_func_start sub_8062C58 +sub_8062C58: @ 8062C58 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08062C72 + b _08062E2C +_08062C72: + ldr r0, =gActiveBank + ldrb r0, [r0] + bl GetBankIdentity + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r4, =gBattleMons + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x58 + muls r0, r1 + adds r0, r4 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x19 + beq _08062C9E + b _08062E2C +_08062C9E: + mov r0, r10 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r2, r0, 24 + movs r6, 0 + mov r8, r4 + movs r7, 0x58 + adds r0, r2, 0 + muls r0, r7 + adds r4, r0, r4 + movs r0, 0x20 + adds r0, r4 + mov r9, r0 +_08062CBA: + lsls r1, r6, 1 + ldr r5, =gActiveBank + ldrb r0, [r5] + muls r0, r7 + adds r1, r0 + mov r0, r8 + adds r0, 0xC + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0 + beq _08062CE8 + ldrh r1, [r4] + mov r3, r9 + ldrb r2, [r3] + bl ai_rate_move + lsls r0, 24 + lsrs r1, r0, 24 + movs r0, 0x2 + ands r1, r0 + cmp r1, 0 + beq _08062CE8 + b _08062E2C +_08062CE8: + adds r6, 0x1 + cmp r6, 0x3 + ble _08062CBA + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + ldr r1, =0x00808000 + ands r0, r1 + cmp r0, 0 + beq _08062D50 + ldrb r1, [r5] + movs r0, 0x2 + ands r0, r1 + adds r1, r5, 0 + cmp r0, 0 + bne _08062D20 + movs r4, 0 + movs r0, 0x3 + str r0, [sp] + b _08062D58 + .pool +_08062D20: + movs r4, 0x3 + movs r3, 0x6 + str r3, [sp] + b _08062D58 +_08062D28: + ldr r0, =gActiveBank + ldrb r0, [r0] + ldr r1, =gBattleStruct + ldr r1, [r1] + adds r0, r1 + movs r1, 0xA5 + lsls r1, 2 + adds r0, r1 + strb r6, [r0] + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0 + bl dp01_build_cmdbuf_x21_a_bb + movs r0, 0x1 + b _08062E2E + .pool +_08062D50: + movs r4, 0 + movs r3, 0x6 + str r3, [sp] + adds r1, r5, 0 +_08062D58: + ldrb r0, [r1] + bl GetBankSide + lsls r0, 24 + ldr r1, =gEnemyParty + mov r9, r1 + cmp r0, 0 + bne _08062D6C + ldr r3, =gPlayerParty + mov r9, r3 +_08062D6C: + adds r6, r4, 0 + ldr r0, [sp] + cmp r6, r0 + bge _08062E2C +_08062D74: + movs r0, 0x64 + adds r5, r6, 0 + muls r5, r0 + mov r1, r9 + adds r4, r1, r5 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _08062E24 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + cmp r0, 0 + beq _08062E24 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _08062E24 + ldr r1, =gBattlePartyID + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r6, r0 + beq _08062E24 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + adds r0, r4, 0 + movs r1, 0x2E + bl GetMonData + mov r0, r10 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r2, r0, 24 + movs r4, 0 + mov r8, r5 + ldr r1, =gBattleMons + movs r0, 0x58 + muls r0, r2 + adds r5, r0, r1 + adds r7, r5, 0 + adds r7, 0x20 +_08062DE0: + adds r1, r4, 0 + adds r1, 0xD + mov r0, r9 + add r0, r8 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + beq _08062E1E + ldrh r1, [r5] + ldrb r2, [r7] + bl ai_rate_move + lsls r0, 24 + lsrs r1, r0, 24 + movs r0, 0x2 + ands r1, r0 + cmp r1, 0 + beq _08062E1E + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bls _08062D28 +_08062E1E: + adds r4, 0x1 + cmp r4, 0x3 + ble _08062DE0 +_08062E24: + adds r6, 0x1 + ldr r3, [sp] + cmp r6, r3 + blt _08062D74 +_08062E2C: + movs r0, 0 +_08062E2E: + 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_8062C58 + + thumb_func_start sub_8062E54 +sub_8062E54: @ 8062E54 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + movs r0, 0x1 + bl ai_has_super_effective_move_on_field + lsls r0, 24 + cmp r0, 0 + beq _08062E82 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + beq _08062E82 + b _080630AC +_08062E82: + ldr r1, =gUnknown_02024250 + ldr r5, =gActiveBank + ldrb r3, [r5] + lsls r0, r3, 1 + adds r4, r0, r1 + ldrh r1, [r4] + cmp r1, 0 + bne _08062E94 + b _080630AC +_08062E94: + ldr r0, =0x0000ffff + cmp r1, r0 + bne _08062E9C + b _080630AC +_08062E9C: + ldr r2, =gBattleMoves + ldrh r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _08062EB0 + b _080630AC +_08062EB0: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08062F1A + mov r8, r3 + mov r0, r8 + bl GetBankIdentity + movs r4, 0x2 + eors r0, r4 + lsls r0, 24 + lsrs r0, 24 + bl GetBankByPlayerAI + ldr r1, =gAbsentBankFlags + ldrb r1, [r1] + ldr r2, =gBitTable + lsls r0, 24 + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08062F04 + ldrb r7, [r5] + b _08062F1E + .pool +_08062F04: + ldrb r0, [r5] + bl GetBankIdentity + eors r0, r4 + lsls r0, 24 + lsrs r0, 24 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r7, r0, 24 + b _08062F1E +_08062F1A: + adds r7, r3, 0 + mov r8, r7 +_08062F1E: + ldr r3, =gBattleMoves + ldr r1, =gUnknown_02024250 + ldr r2, =gActiveBank + ldrb r0, [r2] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0, 0x2] + cmp r0, 0xA + bne _08062F4C + movs r0, 0x12 + b _08062F5E + .pool +_08062F4C: + cmp r0, 0xB + bne _08062F56 + movs r1, 0xB + str r1, [sp] + b _08062F60 +_08062F56: + cmp r0, 0xD + beq _08062F5C + b _080630AC +_08062F5C: + movs r0, 0xA +_08062F5E: + str r0, [sp] +_08062F60: + ldr r1, =gBattleMons + ldrb r3, [r2] + movs r0, 0x58 + muls r0, r3 + adds r0, r1 + adds r0, 0x20 + ldrb r0, [r0] + ldr r1, [sp] + cmp r0, r1 + bne _08062F76 + b _080630AC +_08062F76: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + ldr r1, =0x00808000 + ands r0, r1 + cmp r0, 0 + beq _08062FCC + movs r0, 0x2 + ands r3, r0 + cmp r3, 0 + bne _08062F9C + movs r4, 0 + movs r0, 0x3 + b _08062FD0 + .pool +_08062F9C: + movs r4, 0x3 + movs r1, 0x6 + mov r10, r1 + b _08062FD2 +_08062FA4: + ldr r0, =gActiveBank + ldrb r0, [r0] + ldr r1, =gBattleStruct + ldr r1, [r1] + adds r0, r1 + movs r2, 0xA5 + lsls r2, 2 + adds r0, r2 + strb r5, [r0] + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0 + bl dp01_build_cmdbuf_x21_a_bb + movs r0, 0x1 + b _080630AE + .pool +_08062FCC: + movs r4, 0 + movs r0, 0x6 +_08062FD0: + mov r10, r0 +_08062FD2: + ldrb r0, [r2] + bl GetBankSide + lsls r0, 24 + ldr r1, =gEnemyParty + str r1, [sp, 0x4] + cmp r0, 0 + bne _08062FE6 + ldr r2, =gPlayerParty + str r2, [sp, 0x4] +_08062FE6: + adds r5, r4, 0 + cmp r5, r10 + bge _080630AC + ldr r0, =gBaseStats + mov r9, r0 +_08062FF0: + movs r0, 0x64 + muls r0, r5 + ldr r1, [sp, 0x4] + adds r6, r1, r0 + adds r0, r6, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _080630A6 + adds r0, r6, 0 + movs r1, 0x41 + bl GetMonData + cmp r0, 0 + beq _080630A6 + adds r0, r6, 0 + movs r1, 0x41 + bl GetMonData + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _080630A6 + ldr r1, =gBattlePartyID + mov r2, r8 + lsls r0, r2, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r5, r0 + beq _080630A6 + lsls r0, r7, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r5, r0 + beq _080630A6 + ldr r0, =gBattleStruct + ldr r1, [r0] + adds r0, r2, r1 + adds r0, 0x5C + ldrb r0, [r0] + cmp r5, r0 + beq _080630A6 + adds r0, r7, r1 + adds r0, 0x5C + ldrb r0, [r0] + cmp r5, r0 + beq _080630A6 + adds r0, r6, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r6, 0 + movs r1, 0x2E + bl GetMonData + cmp r0, 0 + beq _08063088 + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + add r0, r9 + ldrb r0, [r0, 0x17] + b _08063092 + .pool +_08063088: + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + add r0, r9 + ldrb r0, [r0, 0x16] +_08063092: + ldr r1, [sp] + cmp r1, r0 + bne _080630A6 + bl Random + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _080630A6 + b _08062FA4 +_080630A6: + adds r5, 0x1 + cmp r5, r10 + blt _08062FF0 +_080630AC: + movs r0, 0 +_080630AE: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8062E54 + + thumb_func_start ai_switchout_natural_cure +ai_switchout_natural_cure: @ 80630C0 + push {r4,r5,lr} + ldr r3, =gBattleMons + ldr r5, =gActiveBank + ldrb r4, [r5] + movs r0, 0x58 + adds r2, r4, 0 + muls r2, r0 + adds r0, r3, 0 + adds r0, 0x4C + adds r0, r2, r0 + ldr r0, [r0] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + beq _08063188 + adds r1, r2, r3 + adds r0, r1, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x1E + bne _08063188 + ldrh r0, [r1, 0x2C] + ldrh r1, [r1, 0x28] + lsrs r0, 1 + cmp r1, r0 + bcc _08063188 + ldr r1, =gUnknown_02024250 + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + cmp r1, 0 + beq _08063106 + ldr r0, =0x0000ffff + cmp r1, r0 + bne _08063128 +_08063106: + bl Random + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _08063128 + ldrb r0, [r5] + b _08063190 + .pool +_08063128: + ldr r2, =gBattleMoves + ldr r1, =gUnknown_02024250 + ldr r4, =gActiveBank + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _08063160 + bl Random + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _08063160 + ldrb r0, [r4] + b _08063190 + .pool +_08063160: + movs r0, 0x8 + movs r1, 0x1 + bl ai_switchout_something + lsls r0, 24 + cmp r0, 0 + bne _080631AA + movs r0, 0x4 + movs r1, 0x1 + bl ai_switchout_something + lsls r0, 24 + cmp r0, 0 + bne _080631AA + bl Random + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + bne _0806318C +_08063188: + movs r0, 0 + b _080631AC +_0806318C: + ldr r0, =gActiveBank + ldrb r0, [r0] +_08063190: + ldr r1, =gBattleStruct + ldr r1, [r1] + adds r0, r1 + movs r1, 0xA5 + lsls r1, 2 + adds r0, r1 + movs r1, 0x6 + strb r1, [r0] + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0 + bl dp01_build_cmdbuf_x21_a_bb +_080631AA: + movs r0, 0x1 +_080631AC: + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end ai_switchout_natural_cure + + thumb_func_start ai_has_super_effective_move_on_field +ai_has_super_effective_move_on_field: @ 80631BC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r0, =gActiveBank + ldrb r0, [r0] + bl GetBankIdentity + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, =gAbsentBankFlags + ldrb r1, [r0] + ldr r2, =gBitTable + lsls r0, r3, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _08063256 + movs r4, 0 + ldr r6, =gBattleMons + movs r7, 0x58 + adds r0, r3, 0 + muls r0, r7 + adds r5, r0, r6 + movs r0, 0x20 + adds r0, r5 + mov r8, r0 +_0806320A: + lsls r1, r4, 1 + ldr r0, =gActiveBank + ldrb r0, [r0] + muls r0, r7 + adds r1, r0 + adds r0, r6, 0 + adds r0, 0xC + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0 + beq _08063250 + ldrh r1, [r5] + mov r3, r8 + ldrb r2, [r3] + bl ai_rate_move + lsls r0, 24 + lsrs r1, r0, 24 + movs r0, 0x2 + ands r1, r0 + cmp r1, 0 + beq _08063250 + mov r0, r9 + cmp r0, 0 + bne _08063278 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + bne _08063278 +_08063250: + adds r4, 0x1 + cmp r4, 0x3 + ble _0806320A +_08063256: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0806327C + b _080632FA + .pool +_08063278: + movs r0, 0x1 + b _080632FC +_0806327C: + movs r1, 0x2 + mov r0, r10 + eors r0, r1 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, =gAbsentBankFlags + ldrb r1, [r0] + ldr r2, =gBitTable + lsls r0, r3, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _080632FA + movs r4, 0 + ldr r6, =gBattleMons + movs r7, 0x58 + adds r0, r3, 0 + muls r0, r7 + adds r5, r0, r6 + movs r3, 0x20 + adds r3, r5 + mov r8, r3 +_080632AE: + lsls r1, r4, 1 + ldr r0, =gActiveBank + ldrb r0, [r0] + muls r0, r7 + adds r1, r0 + adds r0, r6, 0 + adds r0, 0xC + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0 + beq _080632F4 + ldrh r1, [r5] + mov r3, r8 + ldrb r2, [r3] + bl ai_rate_move + lsls r0, 24 + lsrs r1, r0, 24 + movs r0, 0x2 + ands r1, r0 + cmp r1, 0 + beq _080632F4 + mov r0, r9 + cmp r0, 0 + bne _08063278 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + bne _08063278 +_080632F4: + adds r4, 0x1 + cmp r4, 0x3 + ble _080632AE +_080632FA: + movs r0, 0 +_080632FC: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end ai_has_super_effective_move_on_field + + thumb_func_start ai_is_too_invested_in_stat_buffs +ai_is_too_invested_in_stat_buffs: @ 806331C + push {r4,lr} + movs r4, 0 + ldr r1, =gBattleMons + ldr r0, =gActiveBank + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x18 + adds r2, r0, r1 + movs r3, 0x7 +_08063330: + ldrb r1, [r2] + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r0, 0x6 + ble _08063346 + subs r1, 0x6 + lsls r0, r4, 24 + asrs r0, 24 + adds r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 +_08063346: + adds r2, 0x1 + subs r3, 0x1 + cmp r3, 0 + bge _08063330 + movs r0, 0 + cmp r4, 0x3 + bls _08063356 + movs r0, 0x1 +_08063356: + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end ai_is_too_invested_in_stat_buffs + + thumb_func_start ai_switchout_something +ai_switchout_something: @ 8063364 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0x4] + ldr r2, =gUnknown_02024250 + ldr r1, =gActiveBank + ldrb r3, [r1] + lsls r0, r3, 1 + adds r4, r0, r2 + ldrh r2, [r4] + adds r5, r1, 0 + cmp r2, 0 + bne _08063390 + b _080635EE +_08063390: + ldr r0, =0x0000ffff + cmp r2, r0 + bne _08063398 + b _080635EE +_08063398: + ldr r0, =gUnknown_02024270 + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, 0xFF + bne _080633A4 + b _080635EE +_080633A4: + ldr r2, =gBattleMoves + ldrh r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _080633B8 + b _080635EE +_080633B8: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0806342C + mov r9, r3 + mov r0, r9 + bl GetBankIdentity + movs r4, 0x2 + eors r0, r4 + lsls r0, 24 + lsrs r0, 24 + bl GetBankByPlayerAI + ldr r1, =gAbsentBankFlags + ldrb r1, [r1] + ldr r2, =gBitTable + lsls r0, 24 + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08063414 + ldrb r5, [r5] + mov r10, r5 + b _08063430 + .pool +_08063414: + ldrb r0, [r5] + bl GetBankIdentity + eors r0, r4 + lsls r0, 24 + lsrs r0, 24 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + b _08063430 +_0806342C: + mov r9, r3 + mov r10, r9 +_08063430: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + ldr r1, =0x00808000 + ands r0, r1 + cmp r0, 0 + beq _08063490 + ldr r2, =gActiveBank + ldrb r1, [r2] + movs r0, 0x2 + ands r0, r1 + adds r5, r2, 0 + cmp r0, 0 + bne _08063460 + movs r4, 0 + movs r0, 0x3 + str r0, [sp, 0x8] + b _08063498 + .pool +_08063460: + movs r4, 0x3 + movs r1, 0x6 + str r1, [sp, 0x8] + b _08063498 +_08063468: + ldr r0, =gActiveBank + ldrb r0, [r0] + ldr r1, =gBattleStruct + ldr r1, [r1] + adds r0, r1 + movs r2, 0xA5 + lsls r2, 2 + adds r0, r2 + strb r6, [r0] + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0 + bl dp01_build_cmdbuf_x21_a_bb + movs r0, 0x1 + b _080635F0 + .pool +_08063490: + movs r4, 0 + movs r0, 0x6 + str r0, [sp, 0x8] + ldr r5, =gActiveBank +_08063498: + ldrb r0, [r5] + bl GetBankSide + lsls r0, 24 + ldr r1, =gEnemyParty + str r1, [sp, 0xC] + cmp r0, 0 + bne _080634AC + ldr r2, =gPlayerParty + str r2, [sp, 0xC] +_080634AC: + adds r6, r4, 0 + b _080635E6 + .pool +_080634BC: + movs r0, 0x64 + muls r0, r6 + ldr r1, [sp, 0xC] + adds r5, r1, r0 + adds r0, r5, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + bne _080634D2 + b _080635E4 +_080634D2: + adds r0, r5, 0 + movs r1, 0x41 + bl GetMonData + cmp r0, 0 + bne _080634E0 + b _080635E4 +_080634E0: + adds r0, r5, 0 + movs r1, 0x41 + bl GetMonData + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _080635E4 + ldr r1, =gBattlePartyID + mov r2, r9 + lsls r0, r2, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r6, r0 + beq _080635E4 + mov r2, r10 + lsls r0, r2, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r6, r0 + beq _080635E4 + ldr r0, =gBattleStruct + ldr r1, [r0] + mov r2, r9 + adds r0, r2, r1 + adds r0, 0x5C + ldrb r0, [r0] + cmp r6, r0 + beq _080635E4 + mov r2, r10 + adds r0, r2, r1 + adds r0, 0x5C + ldrb r0, [r0] + cmp r6, r0 + beq _080635E4 + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r5, 0 + movs r1, 0x2E + bl GetMonData + cmp r0, 0 + beq _08063558 + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + ldr r1, =gBaseStats + adds r0, r1 + ldrb r2, [r0, 0x17] + b _08063564 + .pool +_08063558: + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + ldr r2, =gBaseStats + adds r0, r2 + ldrb r2, [r0, 0x16] +_08063564: + ldr r1, =gUnknown_02024250 + ldr r5, =gActiveBank + ldrb r0, [r5] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + adds r1, r4, 0 + bl ai_rate_move + ldr r1, [sp] + ands r1, r0 + cmp r1, 0 + beq _080635E4 + ldr r1, =gUnknown_02024270 + ldrb r0, [r5] + adds r0, r1 + ldrb r0, [r0] + mov r9, r0 + movs r4, 0 + movs r0, 0x64 + adds r1, r6, 0 + muls r1, r0 + mov r8, r1 + ldr r1, =gBattleMons + movs r0, 0x58 + mov r2, r9 + muls r2, r0 + adds r0, r2, 0 + adds r5, r0, r1 + adds r7, r5, 0 + adds r7, 0x20 +_080635A2: + adds r1, r4, 0 + adds r1, 0xD + ldr r0, [sp, 0xC] + add r0, r8 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + beq _080635DE + ldrh r1, [r5] + ldrb r2, [r7] + bl ai_rate_move + lsls r0, 24 + lsrs r1, r0, 24 + movs r0, 0x2 + ands r1, r0 + cmp r1, 0 + beq _080635DE + bl Random + lsls r0, 16 + lsrs r0, 16 + ldr r1, [sp, 0x4] + bl __modsi3 + cmp r0, 0 + bne _080635DE + b _08063468 +_080635DE: + adds r4, 0x1 + cmp r4, 0x3 + ble _080635A2 +_080635E4: + adds r6, 0x1 +_080635E6: + ldr r0, [sp, 0x8] + cmp r6, r0 + bge _080635EE + b _080634BC +_080635EE: + movs r0, 0 +_080635F0: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end ai_switchout_something + + thumb_func_start sub_8063614 +sub_8063614: @ 8063614 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r6, =gBattleMons + ldr r4, =gActiveBank + ldrb r2, [r4] + movs r5, 0x58 + adds r0, r2, 0 + muls r0, r5 + adds r1, r6, 0 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + ldr r1, =0x0400e000 + ands r0, r1 + cmp r0, 0 + beq _0806363E + b _0806386C +_0806363E: + ldr r0, =gStatuses3 + lsls r1, r2, 2 + adds r1, r0 + ldr r1, [r1] + movs r0, 0x80 + lsls r0, 3 + ands r1, r0 + cmp r1, 0 + beq _08063652 + b _0806386C +_08063652: + str r1, [sp] + movs r0, 0xC + adds r1, r2, 0 + movs r2, 0x17 + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _0806366A + b _0806386C +_0806366A: + ldrb r1, [r4] + str r0, [sp] + movs r0, 0xC + movs r2, 0x47 + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _08063682 + b _0806386C +_08063682: + str r0, [sp] + movs r0, 0xE + movs r1, 0 + movs r2, 0x2A + movs r3, 0 + bl AbilityBattleEffects + lsls r0, 24 + cmp r0, 0 + beq _080636B4 + ldrb r0, [r4] + muls r0, r5 + adds r1, r0, r6 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0x8 + bne _080636A8 + b _0806386C +_080636A8: + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x8 + bne _080636B4 + b _0806386C +_080636B4: + ldr r0, =gBattleTypeFlags + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 11 + ands r0, r1 + cmp r0, 0 + beq _080636C4 + b _0806386C +_080636C4: + movs r0, 0 + mov r10, r0 + movs r0, 0x1 + ands r1, r0 + cmp r1, 0 + beq _0806372E + ldrb r7, [r4] + adds r0, r7, 0 + bl GetBankIdentity + movs r5, 0x2 + eors r0, r5 + lsls r0, 24 + lsrs r0, 24 + bl GetBankByPlayerAI + ldr r1, =gAbsentBankFlags + ldrb r1, [r1] + ldr r2, =gBitTable + lsls r0, 24 + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08063718 + ldrb r6, [r4] + b _08063732 + .pool +_08063718: + ldrb r0, [r4] + bl GetBankIdentity + eors r0, r5 + lsls r0, 24 + lsrs r0, 24 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r6, r0, 24 + b _08063732 +_0806372E: + ldrb r6, [r4] + adds r7, r6, 0 +_08063732: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + ldr r1, =0x00808000 + ands r0, r1 + cmp r0, 0 + beq _08063768 + ldr r2, =gActiveBank + ldrb r1, [r2] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _08063760 + movs r4, 0 + movs r1, 0x3 + mov r8, r1 + b _08063770 + .pool +_08063760: + movs r4, 0x3 + movs r0, 0x6 + mov r8, r0 + b _08063770 +_08063768: + movs r4, 0 + movs r1, 0x6 + mov r8, r1 + ldr r2, =gActiveBank +_08063770: + ldrb r0, [r2] + bl GetBankSide + lsls r0, 24 + ldr r1, =gEnemyParty + mov r9, r1 + cmp r0, 0 + bne _08063784 + ldr r0, =gPlayerParty + mov r9, r0 +_08063784: + adds r5, r4, 0 + cmp r5, r8 + bge _080637F2 +_0806378A: + movs r0, 0x64 + muls r0, r5 + mov r1, r9 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _080637EC + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + cmp r0, 0 + beq _080637EC + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _080637EC + ldr r1, =gBattlePartyID + lsls r0, r7, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r5, r0 + beq _080637EC + lsls r0, r6, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r5, r0 + beq _080637EC + ldr r0, =gBattleStruct + ldr r1, [r0] + adds r0, r7, r1 + adds r0, 0x5C + ldrb r0, [r0] + cmp r5, r0 + beq _080637EC + adds r0, r6, r1 + adds r0, 0x5C + ldrb r0, [r0] + cmp r5, r0 + beq _080637EC + movs r0, 0x1 + add r10, r0 +_080637EC: + adds r5, 0x1 + cmp r5, r8 + blt _0806378A +_080637F2: + mov r1, r10 + cmp r1, 0 + beq _0806386C + bl ai_switch_perish_song + lsls r0, 24 + cmp r0, 0 + bne _08063852 + bl sub_8062C58 + lsls r0, 24 + cmp r0, 0 + bne _08063852 + bl sub_8062E54 + lsls r0, 24 + cmp r0, 0 + bne _08063852 + bl ai_switchout_natural_cure + lsls r0, 24 + cmp r0, 0 + bne _08063852 + movs r0, 0 + bl ai_has_super_effective_move_on_field + lsls r0, 24 + cmp r0, 0 + bne _0806386C + bl ai_is_too_invested_in_stat_buffs + lsls r0, 24 + cmp r0, 0 + bne _0806386C + movs r0, 0x8 + movs r1, 0x2 + bl ai_switchout_something + lsls r0, 24 + cmp r0, 0 + bne _08063852 + movs r0, 0x4 + movs r1, 0x3 + bl ai_switchout_something + lsls r0, 24 + cmp r0, 0 + beq _0806386C +_08063852: + movs r0, 0x1 + b _0806386E + .pool +_0806386C: + movs r0, 0 +_0806386E: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8063614 + + thumb_func_start sub_8063880 +sub_8063880: @ 8063880 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r4, =gActiveBank + ldrb r0, [r4] + bl GetBankIdentity + lsls r0, 24 + lsrs r6, r0, 24 + adds r5, r6, 0 + ldrb r0, [r4] + bl GetBankSide + lsls r0, 24 + ldr r1, =gEnemyParty + mov r8, r1 + cmp r0, 0 + bne _080638A8 + ldr r2, =gPlayerParty + mov r8, r2 +_080638A8: + ldr r7, =gBattleTypeFlags + ldr r0, [r7] + movs r1, 0x8 + ands r0, r1 + cmp r0, 0 + bne _080638B6 + b _080639E6 +_080638B6: + bl sub_8063614 + lsls r0, 24 + cmp r0, 0 + bne _080638C2 + b _080639DC +_080638C2: + ldrb r0, [r4] + ldr r2, =gBattleStruct + ldr r1, [r2] + adds r0, r1 + movs r1, 0xA5 + lsls r1, 2 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x6 + bne _080639B8 + bl sub_8063A90 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x6 + bne _080639A6 + ldr r0, [r7] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08063910 + adds r0, r6, 0 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r5, r0, 24 + adds r6, r5, 0 + b _08063928 + .pool +_08063910: + adds r0, r5, 0 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r6, r0, 24 + movs r0, 0x2 + eors r5, r0 + adds r0, r5, 0 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r5, r0, 24 +_08063928: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + ldr r1, =0x00808000 + ands r0, r1 + cmp r0, 0 + beq _08063958 + ldr r0, =gActiveBank + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _08063954 + movs r0, 0 + movs r7, 0x3 + b _0806395C + .pool +_08063954: + movs r0, 0x3 + b _0806395A +_08063958: + movs r0, 0 +_0806395A: + movs r7, 0x6 +_0806395C: + adds r4, r0, 0 + cmp r4, r7 + bge _080639A6 +_08063962: + movs r0, 0x64 + muls r0, r4 + add r0, r8 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _080639A0 + ldr r1, =gBattlePartyID + lsls r0, r6, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r4, r0 + beq _080639A0 + lsls r0, r5, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r4, r0 + beq _080639A0 + ldr r0, =gBattleStruct + ldr r1, [r0] + adds r0, r6, r1 + adds r0, 0x5C + ldrb r0, [r0] + cmp r4, r0 + beq _080639A0 + adds r0, r5, r1 + adds r0, 0x5C + ldrb r0, [r0] + cmp r4, r0 + bne _080639A6 +_080639A0: + adds r4, 0x1 + cmp r4, r7 + blt _08063962 +_080639A6: + ldr r0, =gActiveBank + ldrb r0, [r0] + ldr r2, =gBattleStruct + ldr r1, [r2] + adds r0, r1 + movs r1, 0xA5 + lsls r1, 2 + adds r0, r1 + strb r4, [r0] +_080639B8: + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r0, [r2] + adds r0, r1, r0 + adds r1, r0, 0 + adds r1, 0x5C + movs r2, 0xA5 + lsls r2, 2 + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1] + b _080639F8 + .pool +_080639DC: + bl sub_8063EE0 + lsls r0, 24 + cmp r0, 0 + bne _080639F8 +_080639E6: + ldr r0, =gActiveBank + ldrb r0, [r0] + movs r2, 0x1 + eors r2, r0 + lsls r2, 8 + movs r0, 0x1 + movs r1, 0 + bl dp01_build_cmdbuf_x21_a_bb +_080639F8: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8063880 + + thumb_func_start sub_8063A08 +sub_8063A08: @ 8063A08 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r6, r3, 0 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + movs r7, 0 + ldr r0, =gUnknown_0831ACE8 + mov r10, r0 + ldrb r0, [r0] + cmp r0, 0xFF + beq _08063A7A + mov r5, r10 +_08063A36: + ldrb r0, [r5] + cmp r0, 0xFE + beq _08063A6C + ldr r1, [sp] + cmp r0, r1 + bne _08063A6C + ldrb r4, [r5, 0x1] + cmp r4, r9 + bne _08063A56 + ldrb r1, [r6] + ldrb r0, [r5, 0x2] + muls r0, r1 + movs r1, 0xA + bl __divsi3 + strb r0, [r6] +_08063A56: + cmp r4, r8 + bne _08063A6C + cmp r9, r8 + beq _08063A6C + ldrb r1, [r6] + ldrb r0, [r5, 0x2] + muls r0, r1 + movs r1, 0xA + bl __divsi3 + strb r0, [r6] +_08063A6C: + adds r5, 0x3 + adds r7, 0x3 + mov r1, r10 + adds r0, r7, r1 + ldrb r0, [r0] + cmp r0, 0xFF + bne _08063A36 +_08063A7A: + 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_8063A08 + + thumb_func_start sub_8063A90 +sub_8063A90: @ 8063A90 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + ldr r4, =gActiveBank + ldrb r2, [r4] + ldr r0, =gBattleStruct + ldr r0, [r0] + adds r0, r2, r0 + adds r1, r0, 0 + adds r1, 0x5C + ldrb r0, [r1] + cmp r0, 0x6 + beq _08063AB2 + b _08063E50 +_08063AB2: + ldr r0, =gBattleTypeFlags + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 11 + ands r0, r1 + cmp r0, 0 + beq _08063AE0 + ldr r1, =gBattlePartyID + lsls r0, r2, 1 + adds r0, r1 + ldrb r0, [r0] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + b _08063E50 + .pool +_08063AE0: + movs r0, 0x1 + ands r1, r0 + cmp r1, 0 + beq _08063B6C + str r2, [sp, 0x10] + adds r0, r2, 0 + bl GetBankIdentity + movs r5, 0x2 + eors r0, r5 + lsls r0, 24 + lsrs r0, 24 + bl GetBankByPlayerAI + ldr r1, =gAbsentBankFlags + ldrb r1, [r1] + ldr r2, =gBitTable + lsls r0, 24 + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08063B20 + ldrb r4, [r4] + str r4, [sp, 0x14] + b _08063B36 + .pool +_08063B20: + ldrb r0, [r4] + bl GetBankIdentity + eors r0, r5 + lsls r0, 24 + lsrs r0, 24 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x14] +_08063B36: + bl Random + movs r3, 0x2 + ands r0, r3 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + ldr r0, =gAbsentBankFlags + ldrb r1, [r0] + ldr r2, =gBitTable + ldr r4, [sp, 0x4] + lsls r0, r4, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08063B8A + eors r4, r3 + lsls r0, r4, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + b _08063B8A + .pool +_08063B6C: + adds r0, r2, 0 + bl GetBankIdentity + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + ldrb r4, [r4] + str r4, [sp, 0x14] + str r4, [sp, 0x10] +_08063B8A: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + ldr r1, =0x00808000 + ands r0, r1 + cmp r0, 0 + beq _08063BC2 + ldr r2, =gActiveBank + ldrb r1, [r2] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _08063BB8 + movs r0, 0 + str r0, [sp, 0x18] + movs r1, 0x3 + str r1, [sp, 0x1C] + b _08063BCC + .pool +_08063BB8: + movs r4, 0x3 + str r4, [sp, 0x18] + movs r0, 0x6 + str r0, [sp, 0x1C] + b _08063BCC +_08063BC2: + movs r1, 0 + str r1, [sp, 0x18] + movs r2, 0x6 + str r2, [sp, 0x1C] + ldr r2, =gActiveBank +_08063BCC: + ldrb r0, [r2] + bl GetBankSide + lsls r0, 24 + ldr r4, =gEnemyParty + str r4, [sp, 0x20] + cmp r0, 0 + bne _08063BE0 + ldr r0, =gPlayerParty + str r0, [sp, 0x20] +_08063BE0: + movs r1, 0 + mov r9, r1 +_08063BE4: + movs r2, 0 + str r2, [sp, 0x8] + movs r4, 0x6 + str r4, [sp, 0xC] + ldr r7, [sp, 0x18] + ldr r0, [sp, 0x1C] + cmp r7, r0 + blt _08063BF6 + b _08063CF2 +_08063BF6: + lsls r0, r7, 2 + ldr r1, =gBitTable + adds r0, r1 + mov r8, r0 + mov r10, sp +_08063C00: + movs r0, 0x64 + muls r0, r7 + ldr r2, [sp, 0x20] + adds r4, r2, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + beq _08063CD8 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _08063CD8 + mov r4, r8 + ldr r0, [r4] + mov r1, r9 + ands r0, r1 + cmp r0, 0 + bne _08063CD8 + ldr r1, =gBattlePartyID + ldr r2, [sp, 0x10] + lsls r0, r2, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r7 + beq _08063CD8 + ldr r4, [sp, 0x14] + lsls r0, r4, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r7 + beq _08063CD8 + ldr r0, =gBattleStruct + ldr r1, [r0] + adds r0, r2, r1 + adds r0, 0x5C + ldrb r0, [r0] + cmp r7, r0 + beq _08063CD8 + adds r0, r4, r1 + adds r0, 0x5C + ldrb r0, [r0] + cmp r7, r0 + beq _08063CD8 + ldr r1, =gBaseStats + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + adds r0, r1 + ldrb r5, [r0, 0x6] + ldrb r6, [r0, 0x7] + movs r0, 0xA + mov r1, r10 + strb r0, [r1] + movs r0, 0x58 + ldr r2, [sp, 0x4] + adds r4, r2, 0 + muls r4, r0 + ldr r0, =gBattleMons + adds r4, r0 + adds r0, r4, 0 + adds r0, 0x21 + ldrb r0, [r0] + adds r1, r5, 0 + adds r2, r6, 0 + mov r3, sp + bl sub_8063A08 + adds r4, 0x22 + ldrb r0, [r4] + adds r1, r5, 0 + adds r2, r6, 0 + mov r3, sp + bl sub_8063A08 + ldr r2, [sp, 0x8] + mov r1, r10 + ldrb r1, [r1] + cmp r2, r1 + bcs _08063CE6 + mov r2, r10 + ldrb r2, [r2] + str r2, [sp, 0x8] + lsls r0, r7, 24 + lsrs r0, 24 + str r0, [sp, 0xC] + b _08063CE6 + .pool +_08063CD8: + mov r4, r8 + ldr r0, [r4] + mov r1, r9 + orrs r1, r0 + lsls r0, r1, 24 + lsrs r0, 24 + mov r9, r0 +_08063CE6: + movs r2, 0x4 + add r8, r2 + adds r7, 0x1 + ldr r4, [sp, 0x1C] + cmp r7, r4 + blt _08063C00 +_08063CF2: + ldr r0, [sp, 0xC] + cmp r0, 0x6 + beq _08063D54 + movs r7, 0 + movs r0, 0x64 + ldr r1, [sp, 0xC] + adds r5, r1, 0 + muls r5, r0 +_08063D02: + adds r1, r7, 0 + adds r1, 0xD + ldr r2, [sp, 0x20] + adds r0, r2, r5 + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + beq _08063D2A + ldr r0, =gActiveBank + ldrb r1, [r0] + adds r0, r4, 0 + ldr r2, [sp, 0x4] + bl move_effectiveness_something + movs r1, 0x2 + ands r1, r0 + cmp r1, 0 + bne _08063D30 +_08063D2A: + adds r7, 0x1 + cmp r7, 0x3 + ble _08063D02 +_08063D30: + cmp r7, 0x4 + beq _08063D36 + b _08063E4E +_08063D36: + ldr r4, [sp, 0xC] + lsls r0, r4, 2 + ldr r1, =gBitTable + adds r0, r1 + ldr r0, [r0] + mov r2, r9 + orrs r2, r0 + lsls r0, r2, 24 + lsrs r0, 24 + mov r9, r0 + b _08063D58 + .pool +_08063D54: + movs r4, 0x3F + mov r9, r4 +_08063D58: + mov r0, r9 + cmp r0, 0x3F + beq _08063D60 + b _08063BE4 +_08063D60: + ldr r0, =gUnknown_02024400 + movs r1, 0 + strh r1, [r0] + ldr r0, =gBattleStruct + ldr r0, [r0] + strb r1, [r0, 0x13] + ldr r0, =gBattleScripting + movs r2, 0x1 + strb r2, [r0, 0xE] + ldr r0, =gBattleMoveFlags + strb r1, [r0] + ldr r0, =gCritMultiplier + strb r2, [r0] + movs r1, 0 + str r1, [sp, 0x8] + movs r2, 0x6 + str r2, [sp, 0xC] + ldr r7, [sp, 0x18] + ldr r4, [sp, 0x1C] + cmp r7, r4 + bge _08063E4E +_08063D8A: + movs r0, 0x64 + adds r6, r7, 0 + muls r6, r0 + ldr r0, [sp, 0x20] + adds r4, r0, r6 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + adds r1, r7, 0x1 + mov r10, r1 + cmp r0, 0 + beq _08063E46 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _08063E46 + ldr r1, =gBattlePartyID + ldr r2, [sp, 0x10] + lsls r0, r2, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r7 + beq _08063E46 + ldr r4, [sp, 0x14] + lsls r0, r4, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r7 + beq _08063E46 + ldr r0, =gBattleStruct + ldr r1, [r0] + adds r0, r2, r1 + adds r0, 0x5C + ldrb r0, [r0] + cmp r7, r0 + beq _08063E46 + adds r0, r4, r1 + adds r0, 0x5C + ldrb r0, [r0] + cmp r7, r0 + beq _08063E46 + movs r5, 0 + mov r9, r6 + ldr r0, =gBattleMoveDamage + mov r8, r0 + ldr r6, =gActiveBank +_08063DEE: + adds r1, r5, 0 + adds r1, 0xD + ldr r0, [sp, 0x20] + add r0, r9 + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0 + mov r1, r8 + str r0, [r1] + cmp r4, 0 + beq _08063E2A + ldr r0, =gBattleMoves + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + cmp r0, 0x1 + beq _08063E2A + ldrb r0, [r6] + ldr r1, [sp, 0x4] + bl sub_8046E7C + ldrb r1, [r6] + adds r0, r4, 0 + ldr r2, [sp, 0x4] + bl move_effectiveness_something +_08063E2A: + mov r2, r8 + ldr r0, [r2] + ldr r4, [sp, 0x8] + cmp r4, r0 + bge _08063E40 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x8] + lsls r0, r7, 24 + lsrs r0, 24 + str r0, [sp, 0xC] +_08063E40: + adds r5, 0x1 + cmp r5, 0x3 + ble _08063DEE +_08063E46: + mov r7, r10 + ldr r0, [sp, 0x1C] + cmp r7, r0 + blt _08063D8A +_08063E4E: + ldr r0, [sp, 0xC] +_08063E50: + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8063A90 + + thumb_func_start ai_identify_item_effect +ai_identify_item_effect: @ 8063E84 + push {r4,lr} + adds r2, r1, 0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x13 + bne _08063E94 + movs r0, 0x1 + b _08063EDA +_08063E94: + ldrb r1, [r2, 0x4] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08063EA2 + movs r0, 0x2 + b _08063EDA +_08063EA2: + ldrb r4, [r2, 0x3] + movs r3, 0x3F + adds r0, r3, 0 + ands r0, r4 + cmp r0, 0 + beq _08063EB2 + movs r0, 0x3 + b _08063EDA +_08063EB2: + ldrb r1, [r2] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _08063EC8 + ldrb r0, [r2, 0x1] + cmp r0, 0 + bne _08063EC8 + ldrb r0, [r2, 0x2] + cmp r0, 0 + beq _08063ECC +_08063EC8: + movs r0, 0x4 + b _08063EDA +_08063ECC: + movs r0, 0x80 + ands r0, r4 + cmp r0, 0 + bne _08063ED8 + movs r0, 0x6 + b _08063EDA +_08063ED8: + movs r0, 0x5 +_08063EDA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end ai_identify_item_effect + + thumb_func_start sub_8063EE0 +sub_8063EE0: @ 8063EE0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + movs r0, 0 + mov r10, r0 + movs r7, 0 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 15 + ands r0, r1 + cmp r0, 0 + beq _08063F12 + ldr r0, =gActiveBank + ldrb r0, [r0] + bl GetBankIdentity + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _08063F12 + b _0806437C +_08063F12: + ldr r0, =gActiveBank + ldrb r0, [r0] + bl GetBankSide + lsls r0, 24 + ldr r5, =gEnemyParty + cmp r0, 0 + bne _08063F24 + ldr r5, =gPlayerParty +_08063F24: + movs r1, 0 + mov r8, r1 +_08063F28: + movs r0, 0x64 + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + adds r4, r5, r0 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _08063F64 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + cmp r0, 0 + beq _08063F64 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _08063F64 + mov r0, r10 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 +_08063F64: + movs r0, 0x1 + add r8, r0 + mov r1, r8 + cmp r1, 0x5 + ble _08063F28 + movs r2, 0 + mov r8, r2 +_08063F72: + ldr r1, =gBattleResources + mov r0, r8 + cmp r0, 0 + beq _08063F8E + ldr r0, [r1] + ldr r0, [r0, 0x18] + adds r0, 0x50 + ldrb r0, [r0] + mov r2, r8 + subs r0, r2 + adds r0, 0x1 + cmp r10, r0 + ble _08063F8E + b _08064370 +_08063F8E: + ldr r0, [r1] + ldr r0, [r0, 0x18] + mov r2, r8 + lsls r1, r2, 1 + adds r0, 0x48 + adds r0, r1 + ldrh r0, [r0] + mov r9, r0 + str r1, [sp] + cmp r0, 0 + bne _08063FA6 + b _08064370 +_08063FA6: + ldr r1, =gItemEffectInfoPointers + subs r0, 0xD + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + cmp r1, 0 + bne _08063FB6 + b _08064370 +_08063FB6: + mov r0, r9 + cmp r0, 0xAF + bne _08063FE8 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003214 + adds r5, r0, r1 + b _08063FEA + .pool +_08063FE8: + adds r5, r1, 0 +_08063FEA: + mov r2, r9 + lsls r0, r2, 24 + lsrs r0, 24 + adds r1, r5, 0 + bl ai_identify_item_effect + ldr r4, =gActiveBank + ldrb r1, [r4] + lsrs r1, 1 + ldr r3, =gBattleStruct + ldr r2, [r3] + adds r1, r2 + adds r1, 0xC4 + strb r0, [r1] + ldrb r0, [r4] + lsrs r0, 1 + ldr r1, [r3] + adds r0, r1 + adds r0, 0xC4 + ldrb r0, [r0] + subs r0, 0x1 + cmp r0, 0x5 + bls _0806401A + b _08064324 +_0806401A: + lsls r0, 2 + ldr r1, =_08064030 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08064030: + .4byte _08064048 + .4byte _08064074 + .4byte _080640BC + .4byte _08064214 + .4byte _080642F4 + .4byte _0806437C +_08064048: + ldr r2, =gBattleMons + ldr r0, =gActiveBank + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r1, [r0, 0x2C] + ldrh r0, [r0, 0x28] + lsrs r1, 2 + cmp r0, r1 + bcc _08064060 + b _08064324 +_08064060: + cmp r0, 0 + bne _08064066 + b _08064324 +_08064066: + movs r7, 0x1 + b _08064328 + .pool +_08064074: + mov r0, r9 + movs r1, 0x4 + movs r2, 0x4 + bl sub_806CDDC + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _08064088 + b _08064324 +_08064088: + ldr r2, =gBattleMons + ldr r0, =gActiveBank + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r1, r0, r2 + ldrh r2, [r1, 0x28] + cmp r2, 0 + bne _0806409C + b _08064324 +_0806409C: + ldrh r3, [r1, 0x2C] + lsrs r0, r3, 2 + cmp r2, r0 + bcc _08064066 + adds r0, r2, 0 + subs r0, r3, r0 + adds r1, r5, r4 + ldrb r1, [r1] + cmp r0, r1 + bgt _080640B2 + b _08064324 +_080640B2: + b _08064066 + .pool +_080640BC: + ldr r3, =gActiveBank + ldrb r0, [r3] + lsrs r0, 1 + ldr r2, =gBattleStruct + ldr r1, [r2] + adds r0, r1 + adds r0, 0xC6 + movs r1, 0 + strb r1, [r0] + ldrb r1, [r5, 0x3] + movs r6, 0x20 + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08064100 + ldr r1, =gBattleMons + ldrb r4, [r3] + movs r0, 0x58 + muls r0, r4 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + beq _08064100 + lsrs r1, r4, 1 + ldr r0, [r2] + adds r1, r0 + adds r1, 0xC6 + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + movs r7, 0x1 +_08064100: + ldrb r1, [r5, 0x3] + movs r6, 0x10 + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0806413A + ldr r1, =gBattleMons + ldrb r4, [r3] + movs r0, 0x58 + muls r0, r4 + adds r1, 0x4C + adds r0, r1 + ldr r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _0806412A + movs r0, 0x80 + ands r1, r0 + cmp r1, 0 + beq _0806413A +_0806412A: + lsrs r1, r4, 1 + ldr r0, [r2] + adds r1, r0 + adds r1, 0xC6 + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + movs r7, 0x1 +_0806413A: + ldrb r1, [r5, 0x3] + movs r6, 0x8 + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0806416C + ldr r1, =gBattleMons + ldrb r4, [r3] + movs r0, 0x58 + muls r0, r4 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + movs r1, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0806416C + lsrs r1, r4, 1 + ldr r0, [r2] + adds r1, r0 + adds r1, 0xC6 + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + movs r7, 0x1 +_0806416C: + ldrb r1, [r5, 0x3] + movs r6, 0x4 + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0806419E + ldr r1, =gBattleMons + ldrb r4, [r3] + movs r0, 0x58 + muls r0, r4 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + movs r1, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0806419E + lsrs r1, r4, 1 + ldr r0, [r2] + adds r1, r0 + adds r1, 0xC6 + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + movs r7, 0x1 +_0806419E: + ldrb r1, [r5, 0x3] + movs r6, 0x2 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080641D0 + ldr r1, =gBattleMons + ldrb r4, [r3] + movs r0, 0x58 + muls r0, r4 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080641D0 + lsrs r1, r4, 1 + ldr r0, [r2] + adds r1, r0 + adds r1, 0xC6 + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + movs r7, 0x1 +_080641D0: + ldrb r1, [r5, 0x3] + movs r4, 0x1 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080641DE + b _08064324 +_080641DE: + ldr r1, =gBattleMons + ldrb r3, [r3] + movs r0, 0x58 + muls r0, r3 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + bne _080641F6 + b _08064324 +_080641F6: + lsrs r1, r3, 1 + ldr r0, [r2] + adds r1, r0 + adds r1, 0xC6 + ldrb r0, [r1] + orrs r0, r4 + strb r0, [r1] + b _08064066 + .pool +_08064214: + ldr r4, =gActiveBank + ldrb r0, [r4] + lsrs r0, 1 + ldr r3, =gBattleStruct + ldr r1, [r3] + adds r0, r1 + adds r0, 0xC6 + movs r1, 0 + strb r1, [r0] + ldr r1, =gDisableStructs + ldrb r2, [r4] + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x16] + cmp r0, 0 + beq _08064324 + ldrb r1, [r5] + movs r6, 0xF + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _08064254 + lsrs r2, 1 + ldr r0, [r3] + adds r2, r0 + adds r2, 0xC6 + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] +_08064254: + ldrb r1, [r5, 0x1] + movs r7, 0xF0 + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + beq _08064272 + ldrb r0, [r4] + lsrs r0, 1 + ldr r1, [r3] + adds r0, r1 + adds r0, 0xC6 + ldrb r1, [r0] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0] +_08064272: + ldrb r1, [r5, 0x1] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _0806428E + ldrb r0, [r4] + lsrs r0, 1 + ldr r1, [r3] + adds r0, r1 + adds r0, 0xC6 + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_0806428E: + ldrb r1, [r5, 0x2] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _080642AA + ldrb r0, [r4] + lsrs r0, 1 + ldr r1, [r3] + adds r0, r1 + adds r0, 0xC6 + ldrb r1, [r0] + movs r2, 0x8 + orrs r1, r2 + strb r1, [r0] +_080642AA: + ldrb r1, [r5, 0x2] + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + beq _080642C6 + ldrb r0, [r4] + lsrs r0, 1 + ldr r1, [r3] + adds r0, r1 + adds r0, 0xC6 + ldrb r1, [r0] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0] +_080642C6: + ldrb r1, [r5] + movs r0, 0x30 + ands r0, r1 + cmp r0, 0 + bne _080642D2 + b _08064066 +_080642D2: + ldrb r0, [r4] + lsrs r0, 1 + ldr r1, [r3] + adds r0, r1 + adds r0, 0xC6 + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] + b _08064066 + .pool +_080642F4: + ldr r4, =gActiveBank + ldrb r0, [r4] + bl GetBankSide + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, =gDisableStructs + ldrb r1, [r4] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x16] + cmp r0, 0 + beq _08064324 + ldr r0, =gSideTimers + lsls r1, r3, 1 + adds r1, r3 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x4] + cmp r0, 0 + bne _08064324 + b _08064066 +_08064324: + cmp r7, 0 + beq _08064370 +_08064328: + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0 + bl dp01_build_cmdbuf_x21_a_bb + ldr r0, =gActiveBank + ldrb r0, [r0] + lsrs r0, 1 + ldr r1, =gBattleStruct + ldr r1, [r1] + lsls r0, 1 + adds r0, r1 + adds r0, 0xC0 + mov r1, r9 + strb r1, [r0] + ldr r0, =gBattleResources + ldr r0, [r0] + ldr r0, [r0, 0x18] + adds r0, 0x48 + ldr r2, [sp] + adds r0, r2 + movs r1, 0 + strh r1, [r0] + adds r0, r7, 0 + b _0806437E + .pool +_08064370: + movs r0, 0x1 + add r8, r0 + mov r1, r8 + cmp r1, 0x3 + bgt _0806437C + b _08063F72 +_0806437C: + movs r0, 0 +_0806437E: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8063EE0 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_anim.s b/asm/battle_anim.s index f7dfc1ed04..3fb24e627e 100644 --- a/asm/battle_anim.s +++ b/asm/battle_anim.s @@ -11,38 +11,38 @@ sub_80A3934: @ 80A3934 mov r7, r9 mov r6, r8 push {r6,r7} - ldr r0, =gUnknown_020383FC + ldr r0, =gAnimFramesToWait movs r1, 0 strb r1, [r0] - ldr r0, =gUnknown_020383FD + ldr r0, =gAnimScriptActive strb r1, [r0] - ldr r0, =gUnknown_020383FE + ldr r0, =gAnimVisualTaskCount strb r1, [r0] - ldr r0, =gUnknown_020383FF + ldr r0, =gAnimSoundTaskCount strb r1, [r0] - ldr r0, =gUnknown_02038400 + ldr r0, =gDisableStructMoveAnim movs r1, 0 str r1, [r0] - ldr r0, =gUnknown_02038404 + ldr r0, =gMoveDmgMoveAnim str r1, [r0] - ldr r0, =gUnknown_02038408 + ldr r0, =gMovePowerMoveAnim movs r2, 0 strh r1, [r0] - ldr r0, =gUnknown_0203841A + ldr r0, =gHappinessMoveAnim strb r2, [r0] ldr r4, =gUnknown_02038430 ldr r5, =gUnknown_02038432 ldr r6, =gUnknown_02038433 - ldr r7, =gUnknown_02038434 - ldr r0, =gUnknown_02038436 + ldr r7, =gAnimMoveIndex + ldr r0, =gAnimationBankAttacker mov r12, r0 - ldr r1, =gUnknown_02038437 + ldr r1, =gAnimationBankTarget mov r8, r1 ldr r0, =gUnknown_02038440 mov r9, r0 ldr r1, =0x0000ffff adds r3, r1, 0 - ldr r1, =gUnknown_0203840A + ldr r1, =gAnimSpriteIndexArray movs r2, 0x7 _080A397E: ldrh r0, [r1] @@ -52,7 +52,7 @@ _080A397E: subs r2, 0x1 cmp r2, 0 bge _080A397E - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r2, 0 adds r0, r1, 0 adds r0, 0xE @@ -92,12 +92,12 @@ move_anim_start_t1: @ 80A3A10 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 - ldr r2, =gUnknown_02038436 - ldr r0, =gUnknown_0202420B + ldr r2, =gAnimationBankAttacker + ldr r0, =gBankAttacker ldrb r0, [r0] strb r0, [r2] - ldr r2, =gUnknown_02038437 - ldr r0, =gEnemyMonIndex + ldr r2, =gAnimationBankTarget + ldr r0, =gBankTarget ldrb r0, [r0] strb r0, [r2] ldr r0, =gUnknown_082C8D6C @@ -134,13 +134,13 @@ move_something: @ 80A3A48 mov r0, r8 lsls r0, 2 mov r10, r0 - ldr r6, =gUnknown_0202406E + ldr r6, =gBattlePartyID movs r7, 0x64 ldr r5, =gUnknown_02038438 _080A3A84: lsls r0, r4, 24 lsrs r0, 24 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080A3AA8 @@ -163,23 +163,23 @@ _080A3AAE: adds r4, 0x1 cmp r4, 0x3 ble _080A3A84 - ldr r3, =gUnknown_02038434 + ldr r3, =gAnimMoveIndex ldr r5, =gUnknown_02038430 - ldr r1, =gUnknown_020383FD + ldr r1, =gAnimScriptActive mov r12, r1 - ldr r7, =gUnknown_020383F8 + ldr r7, =gAnimScriptCallback ldr r6, =move_anim_execute b _080A3B10 .pool _080A3AE8: - ldr r3, =gUnknown_02038434 + ldr r3, =gAnimMoveIndex ldr r5, =gUnknown_02038430 mov r0, r8 lsls r0, 2 mov r10, r0 - ldr r1, =gUnknown_020383FD + ldr r1, =gAnimScriptActive mov r12, r1 - ldr r7, =gUnknown_020383F8 + ldr r7, =gAnimScriptCallback ldr r6, =move_anim_execute ldr r2, =gUnknown_02039F34 ldr r1, =gUnknown_02038438 @@ -204,7 +204,7 @@ _080A3B38: mov r1, r8 strh r1, [r3] _080A3B3C: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r2, 0 adds r0, r1, 0 adds r0, 0xE @@ -221,18 +221,18 @@ _080A3B44: ldr r0, [sp] add r0, r10 ldr r0, [r0] - ldr r1, =gUnknown_020383F0 + ldr r1, =gBattleAnimScriptPtr str r0, [r1] movs r0, 0x1 mov r1, r12 strb r0, [r1] movs r0, 0 - ldr r1, =gUnknown_020383FC + ldr r1, =gAnimFramesToWait strb r0, [r1] str r6, [r7] ldr r0, =0x0000ffff adds r2, r0, 0 - ldr r1, =gUnknown_0203840A + ldr r1, =gAnimSpriteIndexArray movs r4, 0x7 _080A3B76: ldrh r0, [r1] @@ -288,10 +288,10 @@ _080A3BC2: move_anim_8072740: @ 80A3BFC push {r4,lr} adds r4, r0, 0 - bl obj_free_rotscale_entry + bl FreeSpriteOamMatrix adds r0, r4, 0 - bl RemoveObjectAndFreeTiles - ldr r1, =gUnknown_020383FE + bl DestroySprite + ldr r1, =gAnimVisualTaskCount ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] @@ -307,7 +307,7 @@ move_anim_task_del: @ 80A3C1C lsls r0, 24 lsrs r0, 24 bl DestroyTask - ldr r1, =gUnknown_020383FE + ldr r1, =gAnimVisualTaskCount ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] @@ -322,7 +322,7 @@ move_anim_related_task_del: @ 80A3C38 lsls r0, 24 lsrs r0, 24 bl DestroyTask - ldr r1, =gUnknown_020383FF + ldr r1, =gAnimSoundTaskCount ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] @@ -338,7 +338,7 @@ sub_80A3C54: @ 80A3C54 lsrs r3, r0, 16 movs r2, 0 ldr r4, =0x0000ffff - ldr r1, =gUnknown_0203840A + ldr r1, =gAnimSpriteIndexArray _080A3C60: ldrh r0, [r1] cmp r0, r4 @@ -365,7 +365,7 @@ sub_80A3C84: @ 80A3C84 movs r2, 0 ldr r0, =0x0000ffff adds r4, r0, 0 - ldr r1, =gUnknown_0203840A + ldr r1, =gAnimSpriteIndexArray _080A3C92: ldrh r0, [r1] cmp r0, r3 @@ -388,13 +388,13 @@ _080A3CB0: thumb_func_start move_anim_waiter move_anim_waiter: @ 80A3CB8 push {lr} - ldr r2, =gUnknown_020383FC + ldr r2, =gAnimFramesToWait ldrb r1, [r2] movs r0, 0 ldrsb r0, [r2, r0] cmp r0, 0 bgt _080A3CDC - ldr r0, =gUnknown_020383F8 + ldr r0, =gAnimScriptCallback ldr r1, =move_anim_execute str r1, [r0] movs r0, 0 @@ -413,20 +413,20 @@ move_anim_execute: @ 80A3CE4 push {r4,lr} ldr r4, =gUnknown_08525E98 _080A3CE8: - ldr r0, =gUnknown_020383F0 + ldr r0, =gBattleAnimScriptPtr ldr r0, [r0] ldrb r0, [r0] lsls r0, 2 adds r0, r4 ldr r0, [r0] bl _call_via_r0 - ldr r0, =gUnknown_020383FC + ldr r0, =gAnimFramesToWait ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 bne _080A3D0C - ldr r0, =gUnknown_020383FD + ldr r0, =gAnimScriptActive ldrb r0, [r0] cmp r0, 0 bne _080A3CE8 @@ -440,7 +440,7 @@ _080A3D0C: thumb_func_start ma00_load_graphics ma00_load_graphics: @ 80A3D24 push {r4-r6,lr} - ldr r6, =gUnknown_020383F0 + ldr r6, =gBattleAnimScriptPtr ldr r0, [r6] adds r1, r0, 0x1 str r1, [r6] @@ -465,10 +465,10 @@ ma00_load_graphics: @ 80A3D24 lsrs r4, 16 adds r0, r4, 0 bl sub_80A3C54 - ldr r1, =gUnknown_020383FC + ldr r1, =gAnimFramesToWait movs r0, 0x1 strb r0, [r1] - ldr r1, =gUnknown_020383F8 + ldr r1, =gAnimScriptCallback ldr r0, =move_anim_waiter str r0, [r1] pop {r4-r6} @@ -481,7 +481,7 @@ ma00_load_graphics: @ 80A3D24 @ void ma01_080728D0() ma01_080728D0: @ 80A3D8C push {r4-r6,lr} - ldr r6, =gUnknown_020383F0 + ldr r6, =gBattleAnimScriptPtr ldr r0, [r6] adds r1, r0, 0x1 str r1, [r6] @@ -496,9 +496,9 @@ ma01_080728D0: @ 80A3D8C adds r0, r1 ldrh r5, [r0, 0x6] adds r0, r5, 0 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag adds r0, r5, 0 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag ldr r0, [r6] adds r0, 0x2 str r0, [r6] @@ -515,7 +515,7 @@ ma01_080728D0: @ 80A3D8C thumb_func_start ma02_instanciate_template ma02_instanciate_template: @ 80A3DD8 push {r4-r7,lr} - ldr r5, =gUnknown_020383F0 + ldr r5, =gBattleAnimScriptPtr ldr r1, [r5] adds r3, r1, 0x1 str r3, [r5] @@ -540,7 +540,7 @@ ma02_instanciate_template: @ 80A3DD8 cmp r0, 0 beq _080A3E28 adds r6, r5, 0 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs adds r3, r0, 0 _080A3E10: ldr r2, [r6] @@ -573,7 +573,7 @@ _080A3E48: _080A3E4A: lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget b _080A3E6A .pool _080A3E58: @@ -587,7 +587,7 @@ _080A3E62: _080A3E64: lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker _080A3E6A: ldrb r0, [r0] bl sub_80A82E4 @@ -604,7 +604,7 @@ _080A3E6A: bgt _080A3E88 movs r6, 0x3 _080A3E88: - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -621,8 +621,8 @@ _080A3E88: lsrs r3, 24 adds r0, r7, 0 adds r1, r4, 0 - bl AddObjectAndAnimateForOneFrame - ldr r1, =gUnknown_020383FE + bl CreateSpriteAndAnimate + ldr r1, =gAnimVisualTaskCount ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] @@ -635,7 +635,7 @@ _080A3E88: thumb_func_start sub_80A3ECC sub_80A3ECC: @ 80A3ECC push {r4-r7,lr} - ldr r4, =gUnknown_020383F0 + ldr r4, =gBattleAnimScriptPtr ldr r1, [r4] adds r3, r1, 0x1 str r3, [r4] @@ -660,7 +660,7 @@ sub_80A3ECC: @ 80A3ECC cmp r0, 0 beq _080A3F1C adds r5, r4, 0 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs adds r3, r0, 0 _080A3F04: ldr r2, [r5] @@ -682,7 +682,7 @@ _080A3F1C: lsls r0, 24 lsrs r0, 24 bl _call_via_r6 - ldr r1, =gUnknown_020383FE + ldr r1, =gAnimVisualTaskCount ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] @@ -695,11 +695,11 @@ _080A3F1C: thumb_func_start ma04_wait_countdown ma04_wait_countdown: @ 80A3F48 push {r4,lr} - ldr r1, =gUnknown_020383F0 + ldr r1, =gBattleAnimScriptPtr ldr r0, [r1] adds r2, r0, 0x1 str r2, [r1] - ldr r3, =gUnknown_020383FC + ldr r3, =gAnimFramesToWait ldrb r0, [r0, 0x1] strb r0, [r3] lsls r0, 24 @@ -712,7 +712,7 @@ ma04_wait_countdown: @ 80A3F48 _080A3F66: adds r0, r2, 0x1 str r0, [r1] - ldr r1, =gUnknown_020383F8 + ldr r1, =gAnimScriptCallback ldr r0, =move_anim_waiter str r0, [r1] pop {r4} @@ -724,20 +724,20 @@ _080A3F66: thumb_func_start sub_80A3F88 sub_80A3F88: @ 80A3F88 push {lr} - ldr r0, =gUnknown_020383FE + ldr r0, =gAnimVisualTaskCount ldrb r2, [r0] cmp r2, 0 bne _080A3FAC - ldr r0, =gUnknown_020383F0 + ldr r0, =gBattleAnimScriptPtr ldr r1, [r0] adds r1, 0x1 str r1, [r0] - ldr r0, =gUnknown_020383FC + ldr r0, =gAnimFramesToWait strb r2, [r0] b _080A3FB2 .pool _080A3FAC: - ldr r1, =gUnknown_020383FC + ldr r1, =gAnimFramesToWait movs r0, 0x1 strb r0, [r1] _080A3FB2: @@ -763,11 +763,11 @@ sub_80A3FC4: @ 80A3FC4 push {r7} movs r0, 0 mov r8, r0 - ldr r0, =gUnknown_020383FE + ldr r0, =gAnimVisualTaskCount ldrb r0, [r0] cmp r0, 0 bne _080A3FEC - ldr r0, =gUnknown_020383FF + ldr r0, =gAnimSoundTaskCount ldrb r0, [r0] cmp r0, 0 bne _080A3FEC @@ -779,17 +779,17 @@ sub_80A3FC4: @ 80A3FC4 cmp r0, 0xFF beq _080A4004 _080A3FEC: - ldr r1, =gUnknown_0203842E + ldr r1, =gSoundAnimFramesToWait movs r0, 0 strh r0, [r1] b _080A401E .pool _080A4004: - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _080A403C - ldr r1, =gUnknown_0203842E + ldr r1, =gSoundAnimFramesToWait ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] @@ -798,7 +798,7 @@ _080A4004: cmp r0, 0x5A bhi _080A4030 _080A401E: - ldr r1, =gUnknown_020383FC + ldr r1, =gAnimFramesToWait movs r0, 0x1 strb r0, [r1] b _080A40A2 @@ -809,13 +809,13 @@ _080A4030: ldr r0, =gMPlay_SE2 bl m4aMPlayStop _080A403C: - ldr r1, =gUnknown_0203842E + ldr r1, =gSoundAnimFramesToWait movs r0, 0 strh r0, [r1] movs r5, 0 ldr r7, =0x0000ffff ldr r6, =gUnknown_08524B44 - ldr r4, =gUnknown_0203840A + ldr r4, =gAnimSpriteIndexArray _080A404A: ldrh r0, [r4] cmp r0, r7 @@ -823,12 +823,12 @@ _080A404A: lsls r0, 3 adds r0, r6 ldrh r0, [r0, 0x6] - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag ldrh r0, [r4] lsls r0, 3 adds r0, r6 ldrh r0, [r0, 0x6] - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag ldrh r1, [r4] adds r0, r7, 0 orrs r0, r1 @@ -854,7 +854,7 @@ _080A406E: movs r0, 0x1 bl sub_8072A88 _080A409C: - ldr r0, =gUnknown_020383FD + ldr r0, =gAnimScriptActive mov r1, r8 strb r1, [r0] _080A40A2: @@ -869,7 +869,7 @@ _080A40A2: thumb_func_start ma09_play_sound ma09_play_sound: @ 80A40CC push {r4,lr} - ldr r4, =gUnknown_020383F0 + ldr r4, =gBattleAnimScriptPtr ldr r0, [r4] adds r1, r0, 0x1 str r1, [r4] @@ -877,7 +877,7 @@ ma09_play_sound: @ 80A40CC ldrb r1, [r1, 0x1] lsls r1, 8 orrs r0, r1 - bl audio_play + bl PlaySE ldr r0, [r4] adds r0, 0x2 str r0, [r4] @@ -900,12 +900,12 @@ sub_80A40F4: @ 80A40F4 ldr r1, =gTasks + 0x8 mov r8, r1 adds r6, r0, r1 - ldr r1, =gUnknown_020241E4 + ldr r1, =gBankSpriteIds movs r2, 0 ldrsh r0, [r6, r2] adds r0, r1 ldrb r5, [r0] - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r5, 4 adds r0, r5 lsls r0, 2 @@ -991,7 +991,7 @@ _080A41BE: thumb_func_start sub_80A41D8 sub_80A41D8: @ 80A41D8 push {r4,r5,lr} - ldr r1, =gUnknown_020383F0 + ldr r1, =gBattleAnimScriptPtr ldr r2, [r1] adds r0, r2, 0x1 str r0, [r1] @@ -1000,11 +1000,11 @@ sub_80A41D8: @ 80A41D8 ands r0, r1 cmp r0, 0 beq _080A41F8 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget b _080A41FA .pool _080A41F8: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker _080A41FA: ldrb r4, [r0] adds r0, r4, 0 @@ -1013,7 +1013,7 @@ _080A41FA: cmp r0, 0 beq _080A4266 adds r0, r4, 0 - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 movs r1, 0xFF lsls r1, 24 @@ -1041,7 +1041,7 @@ _080A4232: bl CreateTask lsls r0, 24 lsrs r2, r0, 24 - ldr r1, =gUnknown_020383FE + ldr r1, =gAnimVisualTaskCount ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] @@ -1065,7 +1065,7 @@ _080A4266: cmp r0, 0 beq _080A42D8 adds r0, r4, 0 - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 movs r1, 0xFF lsls r1, 24 @@ -1093,7 +1093,7 @@ _080A42A6: bl CreateTask lsls r0, 24 lsrs r2, r0, 24 - ldr r1, =gUnknown_020383FE + ldr r1, =gAnimVisualTaskCount ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] @@ -1108,14 +1108,14 @@ _080A42A6: strh r1, [r0, 0xC] strh r1, [r0, 0xE] _080A42D8: - ldr r1, =gUnknown_020383F0 + ldr r1, =gBattleAnimScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] - ldr r1, =gUnknown_020383FC + ldr r1, =gAnimFramesToWait movs r0, 0x1 strb r0, [r1] - ldr r1, =gUnknown_020383F8 + ldr r1, =gAnimScriptCallback ldr r0, =move_anim_waiter str r0, [r1] pop {r4,r5} @@ -1134,7 +1134,7 @@ b_side_obj__get_some_boolean: @ 80A4310 lsls r0, 24 cmp r0, 0 beq _080A4330 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] cmp r4, r0 beq _080A4374 @@ -1160,8 +1160,8 @@ _080A4330: ands r0, r1 cmp r0, 0 beq _080A4374 - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 + ldr r2, =gSprites + ldr r0, =gBankSpriteIds adds r0, r5, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -1263,11 +1263,11 @@ _080A43F8: movs r1, 0x1 movs r2, 0 bl lcd_bg_operations - ldr r0, =gUnknown_020241E4 + ldr r0, =gBankSpriteIds adds r0, r6, r0 ldrb r4, [r0] ldr r5, =gUnknown_02022E18 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r4, 4 adds r1, r4 lsls r1, 2 @@ -1295,7 +1295,7 @@ _080A43F8: strh r0, [r5] _080A447A: ldr r5, =gUnknown_02022E1A - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r4, 4 adds r1, r4 lsls r1, 2 @@ -1309,7 +1309,7 @@ _080A447A: mov r0, r9 cmp r0, 0 beq _080A44B0 - ldr r0, =gUnknown_020241E4 + ldr r0, =gBankSpriteIds adds r0, r6, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -1356,7 +1356,7 @@ _080A44B0: .pool _080A4524: adds r0, r6, 0 - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r3, r0, 24 _080A452E: @@ -1428,11 +1428,11 @@ _080A455E: movs r1, 0x1 movs r2, 0 bl lcd_bg_operations - ldr r0, =gUnknown_020241E4 + ldr r0, =gBankSpriteIds adds r2, r5, r0 ldrb r4, [r2] ldr r5, =gUnknown_02022E1C - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r1, r4, 4 adds r1, r4 lsls r1, 2 @@ -1482,7 +1482,7 @@ _080A460E: adds r0, r4, 0 bl CpuSet adds r0, r6, 0 - bl battle_get_per_side_status + bl GetBankIdentity adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 @@ -1691,7 +1691,7 @@ task_pA_ma0A_obj_to_bg_pal: @ 80A47D8 ldrb r6, [r5, 0x14] mov r0, sp bl sub_80A6B30 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r4, 4 adds r1, r4 lsls r1, 2 @@ -1769,7 +1769,7 @@ _080A4896: thumb_func_start ma0B_0807324C ma0B_0807324C: @ 80A48B0 push {r4,r5,lr} - ldr r0, =gUnknown_020383F0 + ldr r0, =gBattleAnimScriptPtr ldr r2, [r0] adds r1, r2, 0x1 str r1, [r0] @@ -1790,19 +1790,19 @@ _080A48D2: cmp r4, 0x2 bne _080A48E0 _080A48D6: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _080A48E2 .pool _080A48E0: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _080A48E2: ldrb r5, [r0] ldr r3, =gUnknown_02038430 ldrb r0, [r3] cmp r0, 0xFF beq _080A4908 - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 + ldr r2, =gSprites + ldr r0, =gBankSpriteIds adds r0, r5, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -1821,8 +1821,8 @@ _080A4908: ldrb r0, [r3, 0x1] cmp r0, 0xFF beq _080A4948 - ldr r3, =gUnknown_02020630 - ldr r2, =gUnknown_020241E4 + ldr r3, =gSprites + ldr r2, =gBankSpriteIds movs r1, 0x2 adds r0, r5, 0 eors r0, r1 @@ -1855,7 +1855,7 @@ _080A494A: adds r1, r2 strh r4, [r1, 0x8] strh r5, [r1, 0xC] - ldr r1, =gUnknown_020383F0 + ldr r1, =gBattleAnimScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -1883,7 +1883,7 @@ sub_80A4980: @ 80A4980 cmp r0, 0x1 beq _080A4A0A ldrb r0, [r1, 0xC] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 movs r1, 0xFF lsls r1, 24 @@ -1943,7 +1943,7 @@ _080A4A0A: thumb_func_start sub_80A4A18 sub_80A4A18: @ 80A4A18 push {r4,r5,lr} - ldr r0, =gUnknown_020383F0 + ldr r0, =gBattleAnimScriptPtr ldr r2, [r0] adds r1, r2, 0x1 str r1, [r0] @@ -1964,11 +1964,11 @@ _080A4A3A: cmp r5, 0x2 bne _080A4A48 _080A4A3E: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _080A4A4A .pool _080A4A48: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _080A4A4A: ldrb r4, [r0] adds r0, r4, 0 @@ -1977,7 +1977,7 @@ _080A4A4A: cmp r0, 0 beq _080A4A8A adds r0, r4, 0 - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 movs r1, 0xFF lsls r1, 24 @@ -2010,7 +2010,7 @@ _080A4A8A: cmp r0, 0 beq _080A4ACA adds r0, r4, 0 - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 movs r1, 0xFF lsls r1, 24 @@ -2032,7 +2032,7 @@ _080A4AC2: movs r2, 0 bl sub_80A438C _080A4ACA: - ldr r1, =gUnknown_020383F0 + ldr r1, =gBattleAnimScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -2045,7 +2045,7 @@ _080A4ACA: thumb_func_start ma23_8073484 ma23_8073484: @ 80A4ADC push {r4-r6,lr} - ldr r0, =gUnknown_020383F0 + ldr r0, =gBattleAnimScriptPtr ldr r2, [r0] adds r1, r2, 0x1 str r1, [r0] @@ -2066,11 +2066,11 @@ _080A4AFE: cmp r5, 0x2 bne _080A4B0C _080A4B02: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _080A4B0E .pool _080A4B0C: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _080A4B0E: ldrb r6, [r0] adds r0, r6, 0 @@ -2078,8 +2078,8 @@ _080A4B0E: lsls r0, 24 cmp r0, 0 beq _080A4B38 - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 + ldr r2, =gSprites + ldr r0, =gBankSpriteIds adds r0, r6, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -2103,8 +2103,8 @@ _080A4B38: lsls r0, 24 cmp r0, 0 beq _080A4B78 - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 + ldr r2, =gSprites + ldr r0, =gBankSpriteIds adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -2134,7 +2134,7 @@ _080A4B7A: adds r1, r2 strh r5, [r1, 0x8] strh r6, [r1, 0xC] - ldr r1, =gUnknown_020383F0 + ldr r1, =gBattleAnimScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -2163,7 +2163,7 @@ sub_80A4BB0: @ 80A4BB0 beq _080A4C3E ldrb r4, [r1, 0xC] adds r0, r4, 0 - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 movs r1, 0xFF lsls r1, 24 @@ -2223,7 +2223,7 @@ _080A4C3E: thumb_func_start ma0C_set_BLDCNT_to_x3F40_and_BLDALPHA_to_argument ma0C_set_BLDCNT_to_x3F40_and_BLDALPHA_to_argument: @ 80A4C48 push {r4,r5,lr} - ldr r2, =gUnknown_020383F0 + ldr r2, =gBattleAnimScriptPtr ldr r0, [r2] adds r1, r0, 0x1 str r1, [r2] @@ -2251,7 +2251,7 @@ ma0C_set_BLDCNT_to_x3F40_and_BLDALPHA_to_argument: @ 80A4C48 thumb_func_start ma1E_set_BLDCNT ma1E_set_BLDCNT: @ 80A4C80 push {lr} - ldr r3, =gUnknown_020383F0 + ldr r3, =gBattleAnimScriptPtr ldr r0, [r3] adds r2, r0, 0x1 str r2, [r3] @@ -2273,7 +2273,7 @@ ma1E_set_BLDCNT: @ 80A4C80 thumb_func_start ma0D_reset_BLDCNT_and_BLDALPHA ma0D_reset_BLDCNT_and_BLDALPHA: @ 80A4CA8 push {lr} - ldr r1, =gUnknown_020383F0 + ldr r1, =gBattleAnimScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -2291,11 +2291,11 @@ ma0D_reset_BLDCNT_and_BLDALPHA: @ 80A4CA8 thumb_func_start ma0E_call ma0E_call: @ 80A4CCC push {r4,lr} - ldr r4, =gUnknown_020383F0 + ldr r4, =gBattleAnimScriptPtr ldr r1, [r4] adds r3, r1, 0x1 str r3, [r4] - ldr r2, =gUnknown_020383F4 + ldr r2, =gBattleAnimScriptRetAddr adds r0, r1, 0x5 str r0, [r2] ldrb r1, [r1, 0x1] @@ -2317,8 +2317,8 @@ ma0E_call: @ 80A4CCC thumb_func_start sub_80A4D00 sub_80A4D00: @ 80A4D00 - ldr r0, =gUnknown_020383F0 - ldr r1, =gUnknown_020383F4 + ldr r0, =gBattleAnimScriptPtr + ldr r1, =gBattleAnimScriptRetAddr ldr r1, [r1] str r1, [r0] bx lr @@ -2328,7 +2328,7 @@ sub_80A4D00: @ 80A4D00 thumb_func_start ma10_080736AC ma10_080736AC: @ 80A4D14 push {r4,r5,lr} - ldr r5, =gUnknown_020383F0 + ldr r5, =gBattleAnimScriptPtr ldr r1, [r5] adds r0, r1, 0x1 str r0, [r5] @@ -2341,7 +2341,7 @@ ma10_080736AC: @ 80A4D14 orrs r4, r0 adds r1, 0x4 str r1, [r5] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs lsls r2, 1 adds r2, r0 strh r4, [r2] @@ -2354,7 +2354,7 @@ ma10_080736AC: @ 80A4D14 thumb_func_start ma11_if_else ma11_if_else: @ 80A4D48 push {lr} - ldr r3, =gUnknown_020383F0 + ldr r3, =gBattleAnimScriptPtr ldr r2, [r3] adds r0, r2, 0x1 str r0, [r3] @@ -2387,7 +2387,7 @@ _080A4D62: thumb_func_start ma12_cond_if ma12_cond_if: @ 80A4D88 push {r4,r5,lr} - ldr r5, =gUnknown_020383F0 + ldr r5, =gBattleAnimScriptPtr ldr r4, [r5] adds r2, r4, 0x1 str r2, [r5] @@ -2422,7 +2422,7 @@ _080A4DC4: thumb_func_start ma13_goto ma13_goto: @ 80A4DCC - ldr r3, =gUnknown_020383F0 + ldr r3, =gBattleAnimScriptPtr ldr r0, [r3] adds r2, r0, 0x1 str r2, [r3] @@ -2465,7 +2465,7 @@ _080A4E12: thumb_func_start ma14_load_background ma14_load_background: @ 80A4E18 push {r4,lr} - ldr r1, =gUnknown_020383F0 + ldr r1, =gBattleAnimScriptPtr ldr r2, [r1] adds r0, r2, 0x1 str r0, [r1] @@ -2497,7 +2497,7 @@ sub_80A4E5C: @ 80A4E5C push {r4-r7,lr} mov r7, r8 push {r7} - ldr r2, =gUnknown_020383F0 + ldr r2, =gBattleAnimScriptPtr ldr r1, [r2] adds r0, r1, 0x1 str r0, [r2] @@ -2526,9 +2526,9 @@ sub_80A4E5C: @ 80A4E5C b _080A4EDA .pool _080A4EA8: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080A4ECC @@ -2763,7 +2763,7 @@ _080A50A6: thumb_func_start ma15_load_battle_screen_elements ma15_load_battle_screen_elements: @ 80A50AC push {lr} - ldr r1, =gUnknown_020383F0 + ldr r1, =gBattleAnimScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -2794,16 +2794,16 @@ ma16_wait_for_battle_screen_elements_s2: @ 80A50F0 ldrb r0, [r0] cmp r0, 0x2 bne _080A5114 - ldr r1, =gUnknown_020383F0 + ldr r1, =gBattleAnimScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] - ldr r1, =gUnknown_020383FC + ldr r1, =gAnimFramesToWait movs r0, 0 b _080A5118 .pool _080A5114: - ldr r1, =gUnknown_020383FC + ldr r1, =gAnimFramesToWait movs r0, 0x1 _080A5118: strb r0, [r1] @@ -2819,16 +2819,16 @@ sub_80A5124: @ 80A5124 ldrb r2, [r0] cmp r2, 0 bne _080A5148 - ldr r0, =gUnknown_020383F0 + ldr r0, =gBattleAnimScriptPtr ldr r1, [r0] adds r1, 0x1 str r1, [r0] - ldr r0, =gUnknown_020383FC + ldr r0, =gAnimFramesToWait strb r2, [r0] b _080A514E .pool _080A5148: - ldr r1, =gUnknown_020383FC + ldr r1, =gAnimFramesToWait movs r0, 0x1 strb r0, [r1] _080A514E: @@ -2840,7 +2840,7 @@ _080A514E: thumb_func_start ma18_load_background_probably ma18_load_background_probably: @ 80A5158 push {r4,lr} - ldr r4, =gUnknown_020383F0 + ldr r4, =gBattleAnimScriptPtr ldr r1, [r4] adds r0, r1, 0x1 str r0, [r4] @@ -2866,7 +2866,7 @@ sub_80A5178: @ 80A5178 bne _080A51C0 ldr r0, =gUnknown_020244D0 ldr r1, [r0] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r2, [r0] ldr r1, [r1, 0x4] lsls r0, r2, 1 @@ -2879,7 +2879,7 @@ sub_80A5178: @ 80A5178 cmp r0, 0 beq _080A51C0 adds r0, r2, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r4, 0xC0 cmp r0, 0 @@ -2892,8 +2892,8 @@ _080A51C0: lsls r0, 24 cmp r0, 0 beq _080A51E8 - ldr r0, =gUnknown_02038436 - ldr r1, =gUnknown_02038437 + ldr r0, =gAnimationBankAttacker + ldr r1, =gAnimationBankTarget ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 @@ -2905,15 +2905,15 @@ _080A51C0: b _080A524C .pool _080A51E8: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080A5226 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080A5252 @@ -2933,9 +2933,9 @@ _080A5218: lsls r0, 24 b _080A5250 _080A5226: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -2988,7 +2988,7 @@ sub_80A5278: @ 80A5278 bne _080A52C0 ldr r0, =gUnknown_020244D0 ldr r1, [r0] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r2, [r0] ldr r1, [r1, 0x4] lsls r0, r2, 1 @@ -3001,7 +3001,7 @@ sub_80A5278: @ 80A5278 cmp r0, 0 beq _080A52C0 adds r0, r2, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r4, 0xC0 cmp r0, 0 @@ -3010,9 +3010,9 @@ sub_80A5278: @ 80A5278 b _080A52DE .pool _080A52C0: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080A52D8 @@ -3100,7 +3100,7 @@ _080A534A: thumb_func_start ma19_08073BC8 ma19_08073BC8: @ 80A5354 push {r4,r5,lr} - ldr r5, =gUnknown_020383F0 + ldr r5, =gBattleAnimScriptPtr ldr r0, [r5] adds r1, r0, 0x1 str r1, [r5] @@ -3115,7 +3115,7 @@ ma19_08073BC8: @ 80A5354 lsls r1, 24 asrs r1, 24 adds r0, r4, 0 - bl audio_play_and_stuff + bl PlaySE12WithPanning ldr r0, [r5] adds r0, 0x3 str r0, [r5] @@ -3128,7 +3128,7 @@ ma19_08073BC8: @ 80A5354 thumb_func_start ma1A_8073C00 ma1A_8073C00: @ 80A538C push {r4,lr} - ldr r4, =gUnknown_020383F0 + ldr r4, =gBattleAnimScriptPtr ldr r1, [r4] adds r0, r1, 0x1 str r0, [r4] @@ -3137,7 +3137,7 @@ ma1A_8073C00: @ 80A538C bl sub_80A5178 lsls r0, 24 asrs r0, 24 - bl sub_80A3870 + bl SE12PanpotControl ldr r0, [r4] adds r0, 0x1 str r0, [r4] @@ -3154,7 +3154,7 @@ ma1B_8073C2C: @ 80A53B8 mov r6, r9 mov r5, r8 push {r5-r7} - ldr r0, =gUnknown_020383F0 + ldr r0, =gBattleAnimScriptPtr mov r10, r0 ldr r0, [r0] adds r1, r0, 0x1 @@ -3216,8 +3216,8 @@ ma1B_8073C2C: @ 80A53B8 strh r5, [r1, 0x10] mov r0, r9 adds r1, r5, 0 - bl audio_play_and_stuff - ldr r1, =gUnknown_020383FF + bl PlaySE12WithPanning + ldr r1, =gAnimSoundTaskCount ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] @@ -3296,14 +3296,14 @@ _080A54E4: lsrs r4, r2, 16 adds r0, r5, 0 bl DestroyTask - ldr r1, =gUnknown_020383FF + ldr r1, =gAnimSoundTaskCount ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] _080A54F4: lsls r0, r4, 24 asrs r0, 24 - bl sub_80A3870 + bl SE12PanpotControl _080A54FC: pop {r4-r7} pop {r0} @@ -3318,7 +3318,7 @@ sub_80A5508: @ 80A5508 mov r5, r9 mov r4, r8 push {r4-r6} - ldr r0, =gUnknown_020383F0 + ldr r0, =gBattleAnimScriptPtr mov r9, r0 ldr r0, [r0] adds r1, r0, 0x1 @@ -3360,8 +3360,8 @@ sub_80A5508: @ 80A5508 strh r4, [r1, 0x10] mov r0, r8 adds r1, r4, 0 - bl audio_play_and_stuff - ldr r1, =gUnknown_020383FF + bl PlaySE12WithPanning + ldr r1, =gAnimSoundTaskCount ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] @@ -3386,7 +3386,7 @@ sub_80A559C: @ 80A559C mov r6, r9 mov r5, r8 push {r5-r7} - ldr r0, =gUnknown_020383F0 + ldr r0, =gBattleAnimScriptPtr mov r10, r0 ldr r0, [r0] adds r1, r0, 0x1 @@ -3448,8 +3448,8 @@ sub_80A559C: @ 80A559C strh r6, [r1, 0x10] mov r0, r9 adds r1, r6, 0 - bl audio_play_and_stuff - ldr r1, =gUnknown_020383FF + bl PlaySE12WithPanning + ldr r1, =gAnimSoundTaskCount ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] @@ -3473,7 +3473,7 @@ ma1C_8073ED0: @ 80A565C mov r6, r9 mov r5, r8 push {r5,r6} - ldr r6, =gUnknown_020383F0 + ldr r6, =gBattleAnimScriptPtr ldr r0, [r6] adds r1, r0, 0x1 str r1, [r6] @@ -3513,7 +3513,7 @@ ma1C_8073ED0: @ 80A565C strh r2, [r1, 0x18] ldr r1, [r1] bl _call_via_r1 - ldr r1, =gUnknown_020383FF + ldr r1, =gAnimSoundTaskCount ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] @@ -3559,12 +3559,12 @@ sub_80A56E4: @ 80A56E4 lsrs r4, 24 lsls r1, 24 asrs r1, 24 - bl audio_play_and_stuff + bl PlaySE12WithPanning cmp r4, 0 bne _080A5732 adds r0, r5, 0 bl DestroyTask - ldr r1, =gUnknown_020383FF + ldr r1, =gAnimSoundTaskCount ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] @@ -3580,7 +3580,7 @@ ma1D_08073FB4: @ 80A5740 push {r4-r6,lr} mov r6, r8 push {r6} - ldr r6, =gUnknown_020383F0 + ldr r6, =gBattleAnimScriptPtr ldr r0, [r6] adds r1, r0, 0x1 str r1, [r6] @@ -3612,7 +3612,7 @@ ma1D_08073FB4: @ 80A5740 strh r4, [r1, 0xA] mov r0, r8 strh r0, [r1, 0xC] - ldr r1, =gUnknown_020383FF + ldr r1, =gAnimSoundTaskCount ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] @@ -3646,10 +3646,10 @@ sub_80A57B4: @ 80A57B4 ldrh r0, [r2, 0x8] movs r1, 0xA ldrsb r1, [r2, r1] - bl audio_play_and_stuff + bl PlaySE12WithPanning adds r0, r4, 0 bl DestroyTask - ldr r1, =gUnknown_020383FF + ldr r1, =gAnimSoundTaskCount ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] @@ -3663,7 +3663,7 @@ _080A57E8: thumb_func_start sub_80A57F8 sub_80A57F8: @ 80A57F8 push {r4-r6,lr} - ldr r4, =gUnknown_020383F0 + ldr r4, =gBattleAnimScriptPtr ldr r1, [r4] adds r3, r1, 0x1 str r3, [r4] @@ -3685,7 +3685,7 @@ sub_80A57F8: @ 80A57F8 cmp r0, 0 beq _080A5842 adds r5, r4, 0 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs adds r3, r0, 0 _080A582A: ldr r2, [r5] @@ -3707,7 +3707,7 @@ _080A5842: lsls r0, 24 lsrs r0, 24 bl _call_via_r6 - ldr r1, =gUnknown_020383FF + ldr r1, =gAnimSoundTaskCount ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] @@ -3720,16 +3720,16 @@ _080A5842: thumb_func_start ma20_wait_for_something ma20_wait_for_something: @ 80A586C push {r4,r5,lr} - ldr r0, =gUnknown_020383FF + ldr r0, =gAnimSoundTaskCount ldrb r5, [r0] cmp r5, 0 bne _080A58B4 - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _080A58CC - ldr r4, =gUnknown_0203842E + ldr r4, =gSoundAnimFramesToWait ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] @@ -3745,24 +3745,24 @@ ma20_wait_for_something: @ 80A586C b _080A58DE .pool _080A58B4: - ldr r1, =gUnknown_0203842E + ldr r1, =gSoundAnimFramesToWait movs r0, 0 strh r0, [r1] _080A58BA: - ldr r1, =gUnknown_020383FC + ldr r1, =gAnimFramesToWait movs r0, 0x1 strb r0, [r1] b _080A58DE .pool _080A58CC: - ldr r0, =gUnknown_0203842E + ldr r0, =gSoundAnimFramesToWait movs r2, 0 strh r1, [r0] - ldr r1, =gUnknown_020383F0 + ldr r1, =gBattleAnimScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] - ldr r0, =gUnknown_020383FC + ldr r0, =gAnimFramesToWait strb r2, [r0] _080A58DE: pop {r4,r5} @@ -3774,7 +3774,7 @@ _080A58DE: thumb_func_start ma21_08074164 ma21_08074164: @ 80A58F0 push {r4-r6,lr} - ldr r5, =gUnknown_020383F0 + ldr r5, =gBattleAnimScriptPtr ldr r4, [r5] adds r3, r4, 0x1 str r3, [r5] @@ -3783,7 +3783,7 @@ ma21_08074164: @ 80A58F0 ldrb r0, [r3, 0x2] lsls r0, 8 orrs r1, r0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs lsls r2, 1 adds r2, r0 lsls r1, 16 @@ -3818,7 +3818,7 @@ _080A593E: thumb_func_start sub_80A5944 sub_80A5944: @ 80A5944 push {r4,lr} - ldr r4, =gUnknown_020383F0 + ldr r4, =gBattleAnimScriptPtr ldr r0, [r4] adds r0, 0x1 str r0, [r4] @@ -3853,21 +3853,21 @@ _080A597E: thumb_func_start sub_80A5984 sub_80A5984: @ 80A5984 push {r4,lr} - ldr r0, =gUnknown_020383F0 + ldr r0, =gBattleAnimScriptPtr ldr r1, [r0] ldrb r2, [r1, 0x1] adds r1, 0x2 str r1, [r0] cmp r2, 0 beq _080A59A0 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget b _080A59A2 .pool _080A59A0: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker _080A59A2: ldrb r0, [r0] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r4, r0, 24 bl sub_80A4DF0 @@ -3897,7 +3897,7 @@ _080A59D2: thumb_func_start sub_80A59DC sub_80A59DC: @ 80A59DC push {lr} - ldr r0, =gUnknown_020383F0 + ldr r0, =gBattleAnimScriptPtr ldr r1, [r0] adds r1, 0x1 str r1, [r0] @@ -3922,18 +3922,18 @@ _080A5A04: thumb_func_start sub_80A5A0C sub_80A5A0C: @ 80A5A0C push {r4-r7,lr} - ldr r1, =gUnknown_020383F0 + ldr r1, =gBattleAnimScriptPtr ldr r0, [r1] ldrb r6, [r0, 0x1] adds r0, 0x2 str r0, [r1] - ldr r7, =gUnknown_02038436 + ldr r7, =gAnimationBankAttacker ldrb r0, [r7] - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -3946,7 +3946,7 @@ sub_80A5A0C: @ 80A5A0C _080A5A48: ldrb r0, [r7] _080A5A4A: - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r4, r0, 24 bl sub_80A4DF0 @@ -3975,7 +3975,7 @@ _080A5A78: thumb_func_start ma2B_make_side_invisible ma2B_make_side_invisible: @ 80A5A80 push {r4,lr} - ldr r4, =gUnknown_020383F0 + ldr r4, =gBattleAnimScriptPtr ldr r0, [r4] ldrb r0, [r0, 0x1] bl obj_id_for_side_relative_to_move @@ -3983,7 +3983,7 @@ ma2B_make_side_invisible: @ 80A5A80 lsrs r2, r0, 24 cmp r2, 0xFF beq _080A5AA8 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -4006,7 +4006,7 @@ _080A5AA8: thumb_func_start ma2C_make_side_visible ma2C_make_side_visible: @ 80A5ABC push {r4,lr} - ldr r4, =gUnknown_020383F0 + ldr r4, =gBattleAnimScriptPtr ldr r0, [r4] ldrb r0, [r0, 0x1] bl obj_id_for_side_relative_to_move @@ -4014,7 +4014,7 @@ ma2C_make_side_visible: @ 80A5ABC lsrs r2, r0, 24 cmp r2, 0xFF beq _080A5AE6 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -4038,7 +4038,7 @@ _080A5AE6: thumb_func_start sub_80A5AFC sub_80A5AFC: @ 80A5AFC push {r4-r7,lr} - ldr r1, =gUnknown_020383F0 + ldr r1, =gBattleAnimScriptPtr ldr r0, [r1] ldrb r7, [r0, 0x1] adds r0, 0x2 @@ -4051,13 +4051,13 @@ sub_80A5AFC: @ 80A5AFC lsls r0, 24 cmp r0, 0 beq _080A5BA6 - ldr r6, =gUnknown_02038436 + ldr r6, =gAnimationBankAttacker ldrb r0, [r6] - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -4065,7 +4065,7 @@ sub_80A5AFC: @ 80A5AFC cmp r7, 0 bne _080A5B54 ldrb r0, [r6] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 @@ -4073,7 +4073,7 @@ sub_80A5AFC: @ 80A5AFC .pool _080A5B54: ldrb r0, [r5] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x1 @@ -4083,7 +4083,7 @@ _080A5B60: lsrs r2, r0, 24 cmp r2, 0xFF beq _080A5BA6 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -4120,7 +4120,7 @@ _080A5BA6: thumb_func_start sub_80A5BAC sub_80A5BAC: @ 80A5BAC push {r4-r7,lr} - ldr r1, =gUnknown_020383F0 + ldr r1, =gBattleAnimScriptPtr ldr r0, [r1] ldrb r7, [r0, 0x1] adds r0, 0x2 @@ -4133,13 +4133,13 @@ sub_80A5BAC: @ 80A5BAC lsls r0, 24 cmp r0, 0 beq _080A5C38 - ldr r6, =gUnknown_02038436 + ldr r6, =gAnimationBankAttacker ldrb r0, [r6] - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -4147,7 +4147,7 @@ sub_80A5BAC: @ 80A5BAC cmp r7, 0 bne _080A5C04 ldrb r0, [r6] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 @@ -4155,7 +4155,7 @@ sub_80A5BAC: @ 80A5BAC .pool _080A5C04: ldrb r0, [r5] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x1 @@ -4167,7 +4167,7 @@ _080A5C10: beq _080A5C38 cmp r4, 0x2 bne _080A5C38 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -4193,7 +4193,7 @@ ma2F_stop_music: @ 80A5C44 bl m4aMPlayStop ldr r0, =gMPlay_SE2 bl m4aMPlayStop - ldr r1, =gUnknown_020383F0 + ldr r1, =gBattleAnimScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] diff --git a/asm/battle_anim_80FE840.s b/asm/battle_anim_80FE840.s index d4662b4974..ba712ef89a 100644 --- a/asm/battle_anim_80FE840.s +++ b/asm/battle_anim_80FE840.s @@ -9,7 +9,7 @@ sub_80FE840: @ 80FE840 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs ldrh r0, [r5] ldrh r1, [r4, 0x20] adds r0, r1 @@ -22,9 +22,9 @@ sub_80FE840: @ 80FE840 strh r0, [r4, 0x2E] ldrh r0, [r5, 0x6] strh r0, [r4, 0x30] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080FE87C @@ -36,7 +36,7 @@ _080FE87C: ldrh r0, [r5, 0x8] _080FE87E: strh r0, [r4, 0x34] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0xA] strh r0, [r4, 0x36] ldr r0, =sub_80FE898 @@ -93,10 +93,10 @@ sub_80FE8E0: @ 80FE8E0 adds r4, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -126,13 +126,13 @@ sub_80FE930: @ 80FE930 adds r4, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs ldrb r1, [r5, 0x6] adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldrh r0, [r5, 0x4] strh r0, [r4, 0x2E] - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -162,12 +162,12 @@ sub_80FE988: @ 80FE988 adds r4, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r6, =gUnknown_0203841E + ldr r6, =gBattleAnimArgs ldrh r0, [r6, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -205,21 +205,21 @@ sub_80FE9E4: @ 80FE9E4 cmp r0, 0 beq _080FE9FA adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite b _080FEA4E _080FE9FA: movs r1, 0x38 ldrsh r0, [r4, r1] cmp r0, 0x7F ble _080FEA14 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] bl sub_80A82E4 adds r0, 0x1 b _080FEA1E .pool _080FEA14: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] bl sub_80A82E4 adds r0, 0x6 @@ -279,7 +279,7 @@ sub_80FEA58: @ 80FEA58 strh r0, [r5, 0xA] movs r0, 0x6 strh r0, [r5, 0x8] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r0, 0xF strh r0, [r1] strh r2, [r1, 0x2] @@ -287,7 +287,7 @@ sub_80FEA58: @ 80FEA58 strh r0, [r1, 0x4] strh r2, [r1, 0x6] ldr r4, =gUnknown_08592210 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] bl sub_80A82E4 adds r3, r0, 0 @@ -297,7 +297,7 @@ sub_80FEA58: @ 80FEA58 adds r0, r4, 0 movs r1, 0 movs r2, 0 - bl AddObjectAndAnimateForOneFrame + bl CreateSpriteAndAnimate _080FEAB2: movs r1, 0xA ldrsh r0, [r5, r1] @@ -318,10 +318,10 @@ sub_80FEAD8: @ 80FEAD8 adds r4, r0, 0 movs r1, 0x1 bl sub_80A6980 - ldr r6, =gUnknown_0203841E + ldr r6, =gBattleAnimArgs ldrh r0, [r6, 0x6] strh r0, [r4, 0x2E] - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -373,8 +373,8 @@ sub_80FEB44: @ 80FEB44 movs r0, 0x7 ands r1, r0 adds r0, r5, 0 - bl StartObjectImageAnim - ldr r4, =gUnknown_02038436 + bl StartSpriteAnim + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -388,7 +388,7 @@ sub_80FEB44: @ 80FEB44 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080FEB90 @@ -410,7 +410,7 @@ _080FEB94: strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -494,21 +494,21 @@ sub_80FEC48: @ 80FEC48 adds r6, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080FEC68 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080FEC68: - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] movs r1, 0 bl sub_80A5C6C @@ -578,7 +578,7 @@ sub_80FECF0: @ 80FECF0 strb r0, [r2] adds r0, r4, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0x3C strh r0, [r4, 0x2E] ldr r0, =sub_80A64B0 @@ -598,10 +598,10 @@ sub_80FED28: @ 80FED28 adds r4, r0, 0 movs r1, 0x1 bl sub_80A6980 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs ldrb r1, [r5, 0x8] adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x1 @@ -655,7 +655,7 @@ sub_80FED74: @ 80FED74 lsrs r0, 16 cmp r0, 0x7F bhi _080FEDC8 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] bl sub_80A8328 movs r1, 0x3 @@ -669,7 +669,7 @@ sub_80FED74: @ 80FED74 b _080FEDEC .pool _080FEDC8: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] bl sub_80A8328 adds r0, 0x1 @@ -730,9 +730,9 @@ _080FEE36: bl move_anim_task_del b _080FEE70 _080FEE3E: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -763,7 +763,7 @@ sub_80FEE78: @ 80FEE78 adds r4, r0, 0 movs r1, 0 bl sub_80A69CC - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs ldrh r0, [r5, 0x6] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] @@ -771,7 +771,7 @@ sub_80FEE78: @ 80FEE78 strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] movs r1, 0x3 bl sub_80A5C6C @@ -823,14 +823,14 @@ sub_80FEECC: @ 80FEECC lsrs r0, 16 cmp r0, 0x7F bhi _080FEF18 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] bl sub_80A82E4 subs r0, 0x1 b _080FEF22 .pool _080FEF18: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] bl sub_80A82E4 adds r0, 0x1 @@ -860,7 +860,7 @@ sub_80FEF44: @ 80FEF44 adds r4, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs ldrh r0, [r5, 0x6] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] @@ -868,7 +868,7 @@ sub_80FEF44: @ 80FEF44 strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] movs r1, 0x3 bl sub_80A5C6C @@ -950,7 +950,7 @@ _080FEFF6: sub_80FEFFC: @ 80FEFFC push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -963,7 +963,7 @@ sub_80FEFFC: @ 80FEFFC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x2] @@ -1026,9 +1026,9 @@ _080FF08C: sub_80FF090: @ 80FF090 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080FF0B4 @@ -1080,25 +1080,25 @@ sub_80FF0F4: @ 80FF0F4 adds r5, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080FF114 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080FF114: - ldr r6, =gUnknown_0203841E + ldr r6, =gBattleAnimArgs ldrh r0, [r6, 0x8] strh r0, [r5, 0x2E] movs r1, 0xC ldrsh r0, [r6, r1] cmp r0, 0 bne _080FF154 - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -1117,7 +1117,7 @@ _080FF114: b _080FF174 .pool _080FF154: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x32 @@ -1134,18 +1134,18 @@ _080FF154: adds r0, r1 _080FF174: strh r0, [r5, 0x36] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0xA] strh r0, [r5, 0x38] adds r0, r5, 0 bl sub_80A68D4 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -1265,7 +1265,7 @@ sub_80FF268: @ 80FF268 lsrs r0, 24 cmp r0, 0x1 bne _080FF28A - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 @@ -1277,7 +1277,7 @@ _080FF28A: ldrh r0, [r4, 0x22] adds r0, 0x20 strh r0, [r4, 0x22] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x2] @@ -1350,7 +1350,7 @@ _080FF2F8: ldrsh r0, [r4, r1] cmp r0, 0x7F bgt _080FF338 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] bl sub_80A8328 lsls r0, 24 @@ -1359,7 +1359,7 @@ _080FF2F8: b _080FF346 .pool _080FF338: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] bl sub_80A8328 lsls r0, 24 @@ -1402,10 +1402,10 @@ sub_80FF374: @ 80FF374 movs r1, 0x80 orrs r0, r1 strb r0, [r2] - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrb r1, [r4, 0x4] adds r0, r5, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim ldrh r0, [r4, 0x4] strh r0, [r5, 0x3A] ldrh r0, [r4, 0x6] @@ -1422,7 +1422,7 @@ sub_80FF374: @ 80FF374 sub_80FF3B0: @ 80FF3B0 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r0, 0xE] ldr r0, =0x0000ffff cmp r1, r0 @@ -1496,7 +1496,7 @@ _080FF424: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim b _080FF452 _080FF44C: adds r0, r4, 0 @@ -1520,7 +1520,7 @@ sub_80FF458: @ 80FF458 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r1, r0, 24 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r10, r0 lsls r0, r1, 4 adds r0, r1 @@ -1550,7 +1550,7 @@ _080FF498: lsls r0, 28 lsrs r0, 30 strh r0, [r6, 0x24] - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget mov r9, r0 ldrb r0, [r0] bl sub_80A8328 @@ -1590,7 +1590,7 @@ _080FF498: ands r5, r0 orrs r5, r1 strb r5, [r4, 0x5] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] strh r0, [r6, 0x8] ldrh r0, [r1, 0x2] @@ -1631,7 +1631,7 @@ sub_80FF53C: @ 80FF53C ldrh r0, [r4, 0x1C] adds r1, r0 strh r1, [r4, 0x1C] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, r6, 4 adds r0, r6 lsls r0, 2 @@ -1639,9 +1639,9 @@ sub_80FF53C: @ 80FF53C lsls r1, 16 asrs r1, 24 strh r1, [r5, 0x24] - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080FF586 @@ -1682,7 +1682,7 @@ sub_80FF5CC: @ 80FF5CC push {r4-r7,lr} lsls r0, 24 lsrs r3, r0, 24 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r0, 0xE] ldr r0, =0x0000ffff cmp r1, r0 @@ -1704,7 +1704,7 @@ sub_80FF5CC: @ 80FF5CC lsrs r4, 24 adds r0, r4, 0 bl sub_80A7344 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites lsls r1, r4, 4 adds r1, r4 lsls r1, 2 @@ -1785,13 +1785,13 @@ sub_80FF698: @ 80FF698 beq _080FF704 b _080FF756 _080FF6AA: - ldr r6, =gUnknown_02038437 + ldr r6, =gAnimationBankTarget ldrb r0, [r6] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080FF6C2 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r2, 0 ldrsh r0, [r1, r2] negs r0, r0 @@ -1801,7 +1801,7 @@ _080FF6C2: movs r1, 0 bl sub_80A5C6C lsls r0, 24 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4] adds r0, r1 @@ -1842,10 +1842,10 @@ _080FF704: beq _080FF756 adds r0, r5, 0 movs r1, 0x1 - bl sub_80082B8 + bl ChangeSpriteAffineAnim movs r0, 0x19 strh r0, [r5, 0x2E] - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -1878,7 +1878,7 @@ sub_80FF768: @ 80FF768 ldrsh r0, [r5, r1] cmp r0, 0 bne _080FF7D4 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -1891,7 +1891,7 @@ sub_80FF768: @ 80FF768 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrh r0, [r4] strh r0, [r5, 0x24] ldrh r0, [r4, 0x2] @@ -1903,7 +1903,7 @@ sub_80FF768: @ 80FF768 strb r0, [r1] ldrb r1, [r4, 0x6] adds r0, r5, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldrh r0, [r4, 0x8] strh r0, [r5, 0x32] ldrh r0, [r5, 0x2E] @@ -1941,7 +1941,7 @@ sub_80FF7EC: @ 80FF7EC push {r4-r6} sub sp, 0x4 mov r9, r0 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -1956,7 +1956,7 @@ sub_80FF7EC: @ 80FF7EC lsls r0, 24 lsrs r0, 24 mov r8, r0 - ldr r6, =gUnknown_02038437 + ldr r6, =gAnimationBankTarget ldrb r0, [r6] movs r1, 0x2 bl sub_80A5C6C @@ -1978,7 +1978,7 @@ sub_80FF7EC: @ 80FF7EC lsrs r3, r4, 16 mov r10, r3 asrs r4, 16 - ldr r6, =gUnknown_0203841E + ldr r6, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r6, r1] muls r0, r4 @@ -2012,7 +2012,7 @@ sub_80FF7EC: @ 80FF7EC strb r0, [r1] ldrb r1, [r6, 0x8] mov r0, r9 - bl StartObjectImageAnim + bl StartSpriteAnim ldrh r0, [r6, 0xA] mov r1, r9 strh r0, [r1, 0x32] @@ -2095,12 +2095,12 @@ sub_80FF934: @ 80FF934 ldrsh r0, [r6, r1] cmp r0, 0 bne _080FF974 - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C lsls r0, 24 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs lsrs r0, 24 ldrh r2, [r4] adds r0, r2 @@ -2274,7 +2274,7 @@ sub_80FFA84: @ 80FFA84 bne _080FFA98 adds r0, r4, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim _080FFA98: ldrh r0, [r4, 0x2E] adds r0, 0x1 @@ -2349,7 +2349,7 @@ sub_80FFB18: @ 80FFB18 adds r5, r0, 0 movs r1, 0 bl sub_80A69CC - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -2360,7 +2360,7 @@ sub_80FFB18: @ 80FFB18 bl sub_80A5C6C lsls r0, 24 lsrs r2, r0, 24 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r1, [r0] movs r0, 0x2 eors r0, r1 @@ -2453,14 +2453,14 @@ _080FFBEC: sub_80FFBF4: @ 80FFBF4 push {r4-r6,lr} adds r5, r0, 0 - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x1 bl sub_80A5C6C lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -2519,7 +2519,7 @@ sub_80FFC70: @ 80FFC70 adds r0, r4, 0 movs r1, 0 bl sub_80A6980 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r4, 0x30] _080FFC8A: @@ -2551,7 +2551,7 @@ sub_80FFCB4: @ 80FFCB4 adds r5, r0, 0 movs r1, 0 bl sub_80A6980 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -2562,7 +2562,7 @@ sub_80FFCB4: @ 80FFCB4 bl sub_80A5C6C lsls r0, 24 lsrs r2, r0, 24 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r1, [r0] movs r0, 0x2 eors r0, r1 @@ -2645,7 +2645,7 @@ _080FFD56: lsls r1, 24 asrs r1, 24 movs r0, 0x7D - bl audio_play_and_stuff + bl PlaySE12WithPanning _080FFD8A: adds r0, r4, 0 bl sub_80FF9E0 @@ -2663,7 +2663,7 @@ _080FFD8A: lsls r1, 24 asrs r1, 24 movs r0, 0x7D - bl audio_play_and_stuff + bl PlaySE12WithPanning _080FFDB2: pop {r4,r5} pop {r0} @@ -2683,7 +2683,7 @@ sub_80FFDBC: @ 80FFDBC lsls r0, 24 cmp r0, 0 bne _080FFDE4 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r0, 0x2] strh r1, [r4, 0x30] movs r1, 0x78 @@ -2692,7 +2692,7 @@ sub_80FFDBC: @ 80FFDBC b _080FFE06 .pool _080FFDE4: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0x2 ldrsh r3, [r0, r1] adds r1, r3, 0 @@ -2772,7 +2772,7 @@ _080FFE6A: strh r0, [r4, 0x34] adds r0, r4, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim b _080FFEBA _080FFE82: movs r1, 0x36 @@ -2954,7 +2954,7 @@ sub_80FFFC0: @ 80FFFC0 lsls r0, 3 ldr r1, =gTasks adds r5, r0, r1 - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] bl sub_80A82E4 lsls r0, 24 @@ -2982,7 +2982,7 @@ sub_80FFFC0: @ 80FFFC0 bl sub_80A861C strh r0, [r5, 0x1E] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 movs r2, 0x1 @@ -3010,7 +3010,7 @@ _08100028: movs r3, 0x1A ldrsh r2, [r5, r3] ldrb r3, [r5, 0x10] - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xC] @@ -3019,7 +3019,7 @@ _08100028: adds r0, r6, 0 bl move_anim_task_del _08100060: - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites movs r0, 0xC ldrsh r1, [r5, r0] lsls r0, r1, 4 @@ -3124,7 +3124,7 @@ sub_8100128: @ 8100128 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r4, r0, r1 movs r1, 0x8 ldrsh r5, [r6, r1] @@ -3261,7 +3261,7 @@ _08100204: strb r0, [r1] ldrb r1, [r6, 0xE] adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r4, 0 bl sub_80A68D4 ldrh r0, [r6, 0x8] @@ -3333,7 +3333,7 @@ _08100272: strb r0, [r1] ldrb r1, [r6, 0xE] adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r4, 0 bl sub_80A68D4 ldrh r0, [r6, 0x8] @@ -3392,7 +3392,7 @@ _081002E8: strb r1, [r0] ldrb r1, [r6, 0xE] adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r4, 0 bl sub_80A68D4 ldrh r0, [r6, 0x8] @@ -3446,7 +3446,7 @@ _08100380: strb r1, [r0] ldrb r1, [r6, 0xE] adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r4, 0 bl sub_80A68D4 ldrh r0, [r6, 0x8] @@ -3503,7 +3503,7 @@ _081003D2: strb r0, [r1] ldrb r1, [r6, 0xE] adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r4, 0 bl sub_80A68D4 ldrh r0, [r6, 0x8] @@ -3555,7 +3555,7 @@ _08100464: strb r1, [r0] ldrb r1, [r6, 0xE] adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r4, 0 bl sub_80A68D4 ldrh r0, [r6, 0x8] @@ -3571,7 +3571,7 @@ _081004B6: cmp r0, 0 beq _081004FC adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldrh r0, [r6, 0x8] adds r0, 0x1 b _081004FA @@ -3638,7 +3638,7 @@ sub_8100524: @ 8100524 ble _081005BA movs r0, 0 strh r0, [r6, 0x24] - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r8, r0 movs r2, 0xC ldrsh r1, [r6, r2] @@ -3658,7 +3658,7 @@ sub_8100524: @ 8100524 lsls r2, 16 asrs r2, 16 ldrb r3, [r6, 0x10] - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 @@ -3688,7 +3688,7 @@ sub_8100524: @ 8100524 strh r0, [r1, 0x22] ldrb r1, [r6, 0xE] adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldrh r0, [r6, 0x10] adds r4, 0x43 strb r0, [r4] @@ -3755,7 +3755,7 @@ sub_81005D4: @ 81005D4 subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _08100636: pop {r4} pop {r0} @@ -3767,26 +3767,26 @@ _08100636: sub_8100640: @ 8100640 push {r4-r7,lr} adds r4, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0xC ldrsh r0, [r0, r1] cmp r0, 0 bne _0810065C - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _0810065E .pool _0810065C: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _0810065E: ldrb r6, [r0] adds r0, r6, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08100688 movs r0, 0 strh r0, [r4, 0x36] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x6] strh r0, [r4, 0x32] ldr r0, =0x0000fff0 @@ -3795,7 +3795,7 @@ _0810065E: _08100688: movs r0, 0x1 strh r0, [r4, 0x36] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x6] negs r0, r0 strh r0, [r4, 0x32] @@ -3857,7 +3857,7 @@ _081006E4: strb r0, [r4, 0x5] b _08100738 _08100700: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] movs r1, 0x3 bl sub_80A5C6C @@ -3903,7 +3903,7 @@ sub_810074C: @ 810074C strh r0, [r4, 0x3C] movs r1, 0x30 ldrsh r2, [r4, r1] - ldr r1, =gUnknown_08329F40 + ldr r1, =gSineTable movs r5, 0x2E ldrsh r0, [r4, r5] lsls r0, 1 @@ -3975,7 +3975,7 @@ sub_81007C4: @ 81007C4 .pool _081007E8: ldr r0, =0x0000274f - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 movs r2, 0x80 @@ -3984,7 +3984,7 @@ _081007E8: adds r0, r4 strh r0, [r5, 0x18] ldr r0, =0x000027b0 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 adds r0, r4 @@ -4039,7 +4039,7 @@ _0810081C: bne _08100876 strh r7, [r5, 0x1E] _08100876: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r2, 0xE ldrsh r1, [r0, r2] movs r0, 0x1 @@ -4060,7 +4060,7 @@ sub_8100898: @ 8100898 push {r4-r7,lr} sub sp, 0x4 adds r6, r0, 0 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 @@ -4074,11 +4074,11 @@ _081008B4: ldrsh r0, [r1, r3] cmp r0, 0 bne _081008C4 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker b _081008C6 .pool _081008C4: - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget _081008C6: ldrb r0, [r4] movs r1, 0x2 @@ -4090,7 +4090,7 @@ _081008C6: bl sub_80A5C6C lsls r0, 24 lsrs r2, r0, 24 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r0, 0x8] strh r1, [r6, 0x2E] movs r3, 0x2 @@ -4237,13 +4237,13 @@ _081009F2: sub_81009F8: @ 81009F8 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08100A20 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 @@ -4252,7 +4252,7 @@ sub_81009F8: @ 81009F8 b _08100A2C .pool _08100A20: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r0] ldrh r2, [r4, 0x20] adds r1, r2 @@ -4277,19 +4277,19 @@ _08100A2C: sub_8100A50: @ 8100A50 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08100A6A adds r0, r5, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim _08100A6A: ldr r0, =sub_81009DC str r0, [r5, 0x1C] - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs movs r0, 0 ldrsh r1, [r4, r0] adds r0, r5, 0 @@ -4308,7 +4308,7 @@ _08100A6A: sub_8100A94: @ 8100A94 push {r4,lr} adds r4, r0, 0 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -4327,7 +4327,7 @@ sub_8100A94: @ 8100A94 strh r0, [r4, 0x38] ldrb r1, [r1, 0xC] adds r0, r4, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim ldr r1, =move_anim_8074EE0 adds r0, r4, 0 bl oamt_set_x3A_32 @@ -4343,7 +4343,7 @@ sub_8100A94: @ 8100A94 sub_8100AE0: @ 8100AE0 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -4357,7 +4357,7 @@ sub_8100AE0: @ 8100AE0 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08100B14 @@ -4367,7 +4367,7 @@ sub_8100AE0: @ 8100AE0 _08100B14: ldr r0, =sub_8100CCC str r0, [r5, 0x1C] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r2, 0x4 ldrsh r1, [r0, r2] adds r3, r0, 0 @@ -4427,7 +4427,7 @@ sub_8100B88: @ 8100B88 mov r7, r8 push {r7} adds r6, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0x6 ldrsh r0, [r0, r1] cmp r0, 0x1 @@ -4439,7 +4439,7 @@ sub_8100B88: @ 8100B88 b _08100C24 .pool _08100BA8: - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] movs r4, 0x2 eors r0, r4 @@ -4453,7 +4453,7 @@ _08100BA8: b _08100C34 .pool _08100BC8: - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] movs r1, 0 bl sub_80A5C6C @@ -4494,7 +4494,7 @@ _08100BC8: b _08100C3E .pool _08100C24: - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -4509,9 +4509,9 @@ _08100C34: _08100C3E: strh r7, [r6, 0x20] strh r4, [r6, 0x22] - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08100C56 @@ -4521,7 +4521,7 @@ _08100C3E: _08100C56: ldr r0, =sub_8100CCC str r0, [r6, 0x1C] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r2, 0x4 ldrsh r1, [r0, r2] adds r3, r0, 0 @@ -4655,7 +4655,7 @@ sub_8100D38: @ 8100D38 adds r0, r2, 0 ands r0, r1 strb r0, [r3] - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites movs r0, 0x2E ldrsh r1, [r5, r0] lsls r0, r1, 4 @@ -4686,7 +4686,7 @@ _08100D94: movs r2, 0x4 orrs r0, r2 strb r0, [r1] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites movs r0, 0x2E ldrsh r1, [r5, r0] lsls r0, r1, 4 @@ -4728,16 +4728,16 @@ _08100DE0: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite movs r0, 0x30 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r0, r5, 0 bl move_anim_8072740 _08100E10: @@ -4751,12 +4751,12 @@ _08100E10: sub_8100E1C: @ 8100E1C push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrh r0, [r4, 0x4] strh r0, [r5, 0x2E] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08100E44 @@ -4771,10 +4771,10 @@ _08100E44: adds r0, r1 _08100E4A: strh r0, [r5, 0x20] - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrb r1, [r4, 0xA] adds r0, r5, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldrh r0, [r4, 0x6] negs r0, r0 strh r0, [r5, 0x30] @@ -4861,17 +4861,17 @@ sub_8100EF0: @ 8100EF0 lsls r0, 24 cmp r0, 0 beq _08100F06 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x2] adds r0, 0x8 strh r0, [r1, 0x2] _08100F06: - ldr r6, =gUnknown_02038436 + ldr r6, =gAnimationBankAttacker ldrb r0, [r6] movs r1, 0 bl sub_80A60AC lsls r0, 24 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4] adds r0, r1 @@ -4885,7 +4885,7 @@ _08100F06: adds r0, r4 strh r0, [r5, 0x22] ldrb r0, [r6] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08100F44 @@ -4923,11 +4923,11 @@ _08100F6C: orrs r0, r1 strb r0, [r5, 0x5] _08100F84: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r5, 0x2E] ldr r0, =0x00002828 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 movs r1, 0x80 @@ -5090,7 +5090,7 @@ _081010C2: sub_81010CC: @ 81010CC push {r4-r6,lr} adds r4, r0, 0 - ldr r6, =gUnknown_02038437 + ldr r6, =gAnimationBankTarget ldrb r0, [r6] movs r1, 0x2 bl sub_80A5C6C @@ -5222,7 +5222,7 @@ _081011CC: strh r0, [r4, 0x30] adds r0, r4, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim b _08101272 _081011E8: adds r0, r4, 0 @@ -5384,7 +5384,7 @@ _08101304: sub_810130C: @ 810130C push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs movs r1, 0x4 ldrsh r0, [r5, r1] cmp r0, 0 @@ -5421,16 +5421,16 @@ _08101320: sub_810135C: @ 810135C push {r4-r6,lr} adds r5, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 bne _08101378 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _0810137A .pool _08101378: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _0810137A: ldrb r6, [r0] bl battle_type_is_double @@ -5444,7 +5444,7 @@ _0810137A: lsls r0, 24 cmp r0, 0 beq _081013C4 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrb r1, [r4, 0xC] adds r2, r5, 0 adds r2, 0x20 @@ -5463,7 +5463,7 @@ _0810137A: b _08101414 .pool _081013C4: - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs movs r2, 0xC ldrsh r0, [r4, r2] cmp r0, 0 @@ -5494,13 +5494,13 @@ _081013FA: ldrh r4, [r4, 0x2] adds r0, r4 strh r0, [r5, 0x22] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r2, 0 ldrsh r1, [r0, r2] adds r0, r5, 0 bl sub_80A6864 _08101414: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0xA] strh r0, [r5, 0x2E] ldrh r0, [r1, 0x6] @@ -5523,13 +5523,13 @@ sub_8101440: @ 8101440 push {r4,lr} adds r4, r0, 0 bl sub_80A6838 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08101474 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r0] ldrh r2, [r4, 0x20] adds r1, r2 @@ -5541,7 +5541,7 @@ sub_8101440: @ 8101440 b _0810148E .pool _08101474: - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 @@ -5552,7 +5552,7 @@ _08101474: strh r0, [r4, 0x22] adds r0, r4, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim _0810148E: ldr r0, =sub_81014A0 str r0, [r4, 0x1C] @@ -5611,13 +5611,13 @@ sub_81014F4: @ 81014F4 push {r4,lr} adds r4, r0, 0 bl sub_80A6838 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0810152C - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -5631,7 +5631,7 @@ sub_81014F4: @ 81014F4 b _0810154A .pool _0810152C: - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 @@ -5644,7 +5644,7 @@ _0810152C: strh r0, [r4, 0x34] adds r0, r4, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim _0810154A: ldr r0, =sub_8101560 str r0, [r4, 0x1C] @@ -5783,7 +5783,7 @@ _08101604: lsls r1, 24 asrs r1, 24 movs r0, 0xD2 - bl audio_play_and_stuff + bl PlaySE12WithPanning _0810166A: ldrh r0, [r5, 0x38] movs r1, 0x1 @@ -5885,7 +5885,7 @@ _08101718: strh r1, [r5, 0x24] movs r0, 0x6 strh r0, [r5, 0x2E] - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -5980,7 +5980,7 @@ _081017A4: lsls r1, 24 asrs r1, 24 movs r0, 0xC0 - bl audio_play_and_stuff + bl PlaySE12WithPanning b _08101814 .pool _0810180C: @@ -6000,7 +6000,7 @@ _08101814: sub_8101820: @ 8101820 push {lr} adds r2, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r0, 0xE] ldr r0, =0x0000ffff cmp r1, r0 @@ -6063,7 +6063,7 @@ _08101890: sub_8101898: @ 8101898 push {r4,lr} adds r3, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0] strh r0, [r3, 0x6] lsls r0, 16 @@ -6157,7 +6157,7 @@ sub_8101940: @ 8101940 strb r0, [r2] movs r0, 0 strh r0, [r3, 0x2E] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 @@ -6199,9 +6199,9 @@ sub_8101998: @ 8101998 adds r4, r0, 0 movs r0, 0x6 strh r0, [r4, 0x2E] - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r2, 0x2 negs r2, r2 @@ -6213,7 +6213,7 @@ _081019B6: strh r1, [r4, 0x30] movs r0, 0 strh r0, [r4, 0x32] - ldr r1, =gUnknown_020241E4 + ldr r1, =gBankSpriteIds ldrb r0, [r5] adds r0, r1 ldrb r0, [r0] @@ -6237,8 +6237,8 @@ sub_81019E8: @ 81019E8 ldrsh r6, [r5, r0] cmp r6, 0 bne _08101A24 - ldr r1, =gUnknown_020241E4 - ldr r4, =gUnknown_02038436 + ldr r1, =gBankSpriteIds + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] @@ -6246,7 +6246,7 @@ sub_81019E8: @ 81019E8 movs r1, 0 bl sub_80A7270 ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x3A] @@ -6301,9 +6301,9 @@ sub_8101A74: @ 8101A74 adds r4, r0, 0 movs r0, 0x4 strh r0, [r4, 0x2E] - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r1, 0x3 cmp r0, 0 @@ -6315,7 +6315,7 @@ _08101A92: strh r1, [r4, 0x30] movs r0, 0 strh r0, [r4, 0x32] - ldr r1, =gUnknown_020241E4 + ldr r1, =gBankSpriteIds ldrb r0, [r5] adds r0, r1 ldrb r0, [r0] @@ -6360,19 +6360,19 @@ sub_8101AE8: @ 8101AE8 ldrsh r0, [r5, r1] cmp r0, 0 bne _08101B38 - ldr r1, =gUnknown_020241E4 - ldr r4, =gUnknown_02038436 + ldr r1, =gBankSpriteIds + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] strh r0, [r5, 0x34] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x3A] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08101B2C @@ -6465,14 +6465,14 @@ _08101BB6: b _08101C8E _08101BBC: strh r5, [r4, 0x30] - ldr r1, =gUnknown_020241E4 - ldr r2, =gUnknown_02038436 + ldr r1, =gBankSpriteIds + ldr r2, =gAnimationBankAttacker ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] strh r0, [r4, 0x32] ldrb r0, [r2] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x34] @@ -6575,20 +6575,20 @@ sub_8101C94: @ 8101C94 adds r0, r6 lsls r0, 3 adds r5, r0, r1 - ldr r1, =gUnknown_020241E4 - ldr r2, =gUnknown_02038436 + ldr r1, =gBankSpriteIds + ldr r2, =gAnimationBankAttacker ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] movs r4, 0 strh r0, [r5, 0x8] ldrb r0, [r2] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r2, r0, 24 strh r2, [r5, 0xA] strh r4, [r5, 0xC] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r3, 0 ldrsh r1, [r0, r3] cmp r1, 0 @@ -6716,7 +6716,7 @@ _08101D9E: _08101DC4: movs r0, 0x8 strh r0, [r4, 0xE] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r3, 0x8 ldrsh r1, [r4, r3] lsls r0, r1, 4 @@ -6758,7 +6758,7 @@ _08101E12: ands r0, r2 cmp r0, 0 beq _08101E34 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -6771,7 +6771,7 @@ _08101E12: b _08101E48 .pool _08101E34: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r3, 0x8 ldrsh r1, [r4, r3] lsls r0, r1, 4 @@ -6788,7 +6788,7 @@ _08101E48: b _08101ED4 .pool _08101E54: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -6813,7 +6813,7 @@ _08101E70: _08101E80: movs r0, 0x3 strh r0, [r4, 0xE] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r3, 0x8 ldrsh r1, [r4, r3] lsls r0, r1, 4 @@ -6848,7 +6848,7 @@ _08101EB4: adds r2, r0 _08101EC2: strh r2, [r4, 0x10] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -6917,16 +6917,16 @@ _08101F38: sub_8101F40: @ 8101F40 push {r4-r6,lr} adds r5, r0, 0 - ldr r6, =gUnknown_0203841E + ldr r6, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _08101F5C - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker b _08101F5E .pool _08101F5C: - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget _08101F5E: ldrb r0, [r4] movs r1, 0x2 @@ -6962,7 +6962,7 @@ _08101F5E: sub_8101FA8: @ 8101FA8 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -6992,13 +6992,13 @@ sub_8101FA8: @ 8101FA8 sub_8101FF0: @ 8101FF0 push {r4-r6,lr} adds r4, r0, 0 - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldr r2, =0x0000ffd0 adds r0, r2 ldrh r1, [r1] @@ -7013,7 +7013,7 @@ sub_8101FF0: @ 8101FF0 strh r0, [r4, 0x22] adds r0, r4, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim strh r6, [r4, 0x2E] strh r6, [r4, 0x30] ldr r0, =sub_810208C @@ -7110,16 +7110,16 @@ _081020D4: sub_81020D8: @ 81020D8 push {r4-r6,lr} adds r5, r0, 0 - ldr r6, =gUnknown_0203841E + ldr r6, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _081020F4 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker b _081020F6 .pool _081020F4: - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget _081020F6: ldrb r0, [r4] movs r1, 0 @@ -7139,7 +7139,7 @@ _081020F6: strh r0, [r5, 0x22] movs r0, 0 strh r0, [r5, 0x2E] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x6] strh r0, [r5, 0x30] ldr r0, =sub_810213C @@ -7191,7 +7191,7 @@ _08102178: sub_810217C: @ 810217C push {r4-r6,lr} adds r4, r0, 0 - ldr r6, =gUnknown_02038436 + ldr r6, =gAnimationBankAttacker ldrb r0, [r6] movs r1, 0x2 bl sub_80A5C6C @@ -7266,7 +7266,7 @@ sub_81021CC: @ 81021CC lsls r1, 24 asrs r1, 24 movs r0, 0xC2 - bl audio_play_and_stuff + bl PlaySE12WithPanning _0810221E: movs r1, 0 strh r1, [r4, 0x2E] @@ -7316,12 +7316,12 @@ sub_8102268: @ 8102268 ldrsh r0, [r6, r1] cmp r0, 0 bne _081022B2 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C lsls r0, 24 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r5] adds r0, r1 @@ -7346,7 +7346,7 @@ _081022AC: adds r0, 0x1 strh r0, [r6, 0x2E] _081022B2: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r0, 0xE] ldr r0, =0x0000ffff cmp r1, r0 @@ -7374,7 +7374,7 @@ sub_81022D4: @ 81022D4 ldrsh r0, [r4, r1] cmp r0, 0x1 bne _08102300 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldr r0, =0x0000ffff strh r0, [r1, 0xE] b _0810233E @@ -7432,7 +7432,7 @@ sub_810234C: @ 810234C movs r1, 0x40 orrs r0, r1 strb r0, [r2] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] ldr r0, =sub_810237C @@ -7465,7 +7465,7 @@ _08102390: strb r0, [r2] movs r0, 0x1E strh r0, [r5, 0x2E] - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -7539,11 +7539,11 @@ sub_8102434: @ 8102434 lsls r0, 24 lsrs r7, r0, 24 movs r4, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 bcs _08102490 - ldr r6, =gUnknown_0203841E + ldr r6, =gBattleAnimArgs ldr r5, =gUnknown_03005D70 _08102448: movs r1, 0 @@ -7551,7 +7551,7 @@ _08102448: cmp r0, 0x1 bne _08102464 adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08102464 @@ -7564,7 +7564,7 @@ _08102464: cmp r0, 0x1 bne _08102482 adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -7576,7 +7576,7 @@ _08102482: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 bcc _08102448 @@ -7605,7 +7605,7 @@ _081024B2: lsls r0, 24 lsrs r4, r0, 24 _081024C2: - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 bcc _081024B2 @@ -7630,7 +7630,7 @@ sub_81024E0: @ 81024E0 movs r0, 0x28 b _081024FE _081024F6: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r0] strh r1, [r4, 0x20] ldrh r0, [r0, 0x2] @@ -7673,12 +7673,12 @@ _0810253A: sub_8102540: @ 8102540 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] movs r1, 0x2 bl sub_80A5C6C lsls r0, 24 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r2] adds r0, r1 @@ -7797,7 +7797,7 @@ sub_81025C0: @ 81025C0 mov r2, r8 bl sub_80A8048 ldr r0, =0x000027d2 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 movs r4, 0x80 @@ -7808,7 +7808,7 @@ sub_81025C0: @ 81025C0 orrs r0, r1 mov r10, r0 ldr r0, =0x000027d3 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 lsls r4, r0 @@ -7969,7 +7969,7 @@ _08102794: cmp r0, 0 bne _08102832 movs r2, 0 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites movs r5, 0x14 adds r5, r3 mov r12, r5 @@ -8049,7 +8049,7 @@ _08102832: sub_8102844: @ 8102844 push {r4-r6,lr} adds r5, r0, 0 - ldr r6, =gUnknown_0203841E + ldr r6, =gBattleAnimArgs movs r1, 0x4 ldrsh r0, [r6, r1] cmp r0, 0x1 @@ -8068,7 +8068,7 @@ _08102862: strh r0, [r5, 0x2E] ldrh r0, [r6, 0x4] strh r0, [r5, 0x30] - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -8113,9 +8113,9 @@ _08102862: b _081028FA .pool _081028D4: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0810291C @@ -8242,7 +8242,7 @@ sub_81029B4: @ 81029B4 lsrs r0, 24 strh r0, [r6, 0x8] ldr r0, =0x00002771 - bl AllocObjectPalette + bl AllocSpritePalette lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0xA] @@ -8253,7 +8253,7 @@ sub_81029B4: @ 81029B4 lsls r1, 17 adds r0, r1 lsrs r3, r0, 16 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x8 ldrsh r1, [r6, r0] lsls r0, r1, 4 @@ -8288,7 +8288,7 @@ _08102A0C: movs r0, 0 strh r0, [r6, 0xE] movs r5, 0 - ldr r7, =gUnknown_02020630 + ldr r7, =gSprites movs r1, 0x1C adds r1, r7 mov r9, r1 @@ -8333,9 +8333,9 @@ _08102A88: _08102A9A: ldr r0, =sub_8102AE0 str r0, [r6] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -8374,9 +8374,9 @@ sub_8102AE0: @ 8102AE0 ldrsh r0, [r0, r1] cmp r0, 0 bne _08102B32 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -8394,7 +8394,7 @@ _08102B1C: bl SetGpuRegBits _08102B26: ldr r0, =0x00002771 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag adds r0, r4, 0 bl move_anim_task_del _08102B32: @@ -8440,7 +8440,7 @@ _08102B58: b _08102BC2 .pool _08102B80: - ldr r4, =gUnknown_08329F40 + ldr r4, =gSineTable movs r1, 0x2E ldrsh r0, [r5, r1] lsls r0, 1 @@ -8502,7 +8502,7 @@ sub_8102BE8: @ 8102BE8 mov r9, r0 ldr r4, =gUnknown_08593020 ldrh r0, [r4] - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xFF @@ -8538,7 +8538,7 @@ _08102C32: mov r1, r8 adds r0, r5, r1 ldrh r0, [r0] - bl AllocObjectPalette + bl AllocSpritePalette lsls r0, 24 lsrs r3, r0, 24 adds r4, 0x1 @@ -8598,7 +8598,7 @@ _08102CAA: lsls r0, 2 adds r0, r6 ldrh r0, [r0] - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 @@ -8618,10 +8618,10 @@ sub_8102CD4: @ 8102CD4 sub sp, 0x4 adds r5, r0, 0 bl sub_80A6838 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrb r1, [r4] adds r0, r5, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r2, =gUnknown_08593020 movs r0, 0x2 ldrsh r1, [r4, r0] @@ -8630,7 +8630,7 @@ sub_8102CD4: @ 8102CD4 lsls r0, 2 adds r0, r2 ldrh r0, [r0] - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF @@ -8657,7 +8657,7 @@ _08102D10: b _08102D4E .pool _08102D34: - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -8833,7 +8833,7 @@ _08102E7E: lsls r0, 2 adds r0, r2 ldrh r0, [r0] - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF @@ -8855,14 +8855,14 @@ _08102EA6: sub_8102EB0: @ 8102EB0 push {r4-r7,lr} adds r6, r0, 0 - ldr r7, =gUnknown_02038436 + ldr r7, =gAnimationBankAttacker ldrb r0, [r7] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08102ECE - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r2, 0x2 ldrsh r0, [r1, r2] negs r0, r0 @@ -8872,7 +8872,7 @@ _08102ECE: movs r1, 0x2 bl sub_80A5C6C lsls r0, 24 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4, 0x2] adds r0, r1 @@ -8888,7 +8888,7 @@ _08102ECE: strh r0, [r6, 0x22] ldrb r1, [r4] adds r0, r6, 0 - bl StartObjectImageAnim + bl StartSpriteAnim strh r5, [r6, 0x32] strh r5, [r6, 0x34] ldrh r0, [r6, 0x20] @@ -8984,7 +8984,7 @@ _08102FB2: sub_8102FB8: @ 8102FB8 push {r4-r6,lr} adds r5, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 @@ -9002,7 +9002,7 @@ sub_8102FB8: @ 8102FB8 _08102FDC: ldr r6, =0x0000fff0 _08102FDE: - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -9038,10 +9038,10 @@ sub_8103028: @ 8103028 ldrh r0, [r4, 0x22] adds r0, 0x8 strh r0, [r4, 0x22] - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs ldrb r1, [r5, 0x2] adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r2, =gUnknown_08593020 movs r0, 0x4 ldrsh r1, [r5, r0] @@ -9050,7 +9050,7 @@ sub_8103028: @ 8103028 lsls r0, 2 adds r0, r2 ldrh r0, [r0] - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF @@ -9149,7 +9149,7 @@ sub_810310C: @ 810310C lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0810312C @@ -9192,35 +9192,35 @@ _08103158: sub_8103164: @ 8103164 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _08103180 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _08103182 .pool _08103180: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _08103182: ldrb r4, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_810310C adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r1, 31 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x2] strh r0, [r5, 0x2E] adds r0, r1, 0x2 strh r0, [r5, 0x30] adds r0, r5, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r1, =sub_81031D0 adds r0, r5, 0 bl oamt_set_x3A_32 @@ -9249,7 +9249,7 @@ sub_81031D0: @ 81031D0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r0, =sub_80A67D8 str r0, [r4, 0x1C] _081031F8: @@ -9263,16 +9263,16 @@ _081031F8: sub_8103208: @ 8103208 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _08103224 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _08103226 .pool _08103224: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _08103226: ldrb r0, [r0] adds r1, r4, 0 @@ -9303,7 +9303,7 @@ sub_8103250: @ 8103250 ble _08103276 adds r0, r4, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim ldr r1, =move_anim_8074EE0 adds r0, r4, 0 bl oamt_set_x3A_32 @@ -9320,16 +9320,16 @@ _08103276: sub_8103284: @ 8103284 push {r4-r6,lr} adds r4, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _081032A0 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _081032A2 .pool _081032A0: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _081032A2: ldrb r5, [r0] adds r0, r5, 0 @@ -9437,7 +9437,7 @@ _08103362: adds r1, 0x43 strb r0, [r1] _08103372: - ldr r1, =gUnknown_08329F40 + ldr r1, =gSineTable movs r3, 0x30 ldrsh r0, [r2, r3] lsls r0, 1 @@ -9458,36 +9458,36 @@ _08103388: sub_8103390: @ 8103390 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _081033AC - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _081033AE .pool _081033AC: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _081033AE: ldrb r4, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_810310C adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _081033D4 adds r0, r5, 0 movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0x2 b _081033DE .pool _081033D4: adds r0, r5, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0x3 _081033DE: strh r0, [r5, 0x2E] @@ -9516,7 +9516,7 @@ sub_81033F0: @ 81033F0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r1, =sub_810342C adds r0, r4, 0 bl oamt_set_x3A_32 @@ -9552,7 +9552,7 @@ sub_8103448: @ 8103448 push {r4,r5,lr} adds r4, r0, 0 bl sub_80A6838 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs movs r0, 0 ldrsh r1, [r5, r0] adds r0, r4, 0 @@ -9586,16 +9586,16 @@ sub_8103448: @ 8103448 sub_8103498: @ 8103498 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _081034B4 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _081034B6 .pool _081034B4: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _081034B6: ldrb r0, [r0] adds r1, r4, 0 @@ -9674,7 +9674,7 @@ _08103538: sub_810353C: @ 810353C push {r4,lr} adds r4, r0, 0 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites movs r0, 0x32 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -9716,7 +9716,7 @@ _0810357A: sub_810358C: @ 810358C push {r4-r6,lr} adds r5, r0, 0 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -9729,17 +9729,17 @@ sub_810358C: @ 810358C lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02038437 + ldr r1, =gBankSpriteIds + ldr r0, =gAnimationBankTarget ldrb r0, [r0] adds r0, r1 ldrb r6, [r0] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _081035E4 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r5, 0x20] ldrh r2, [r0] subs r1, r2 @@ -9748,7 +9748,7 @@ sub_810358C: @ 810358C b _081035EE .pool _081035E4: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r5, 0x20] adds r0, r2 @@ -9783,7 +9783,7 @@ sub_8103620: @ 8103620 adds r4, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x6] @@ -9846,8 +9846,8 @@ sub_81036A0: @ 81036A0 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02038436 + ldr r1, =gBankSpriteIds + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -9871,12 +9871,12 @@ sub_81036DC: @ 81036DC push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02038436 + ldr r1, =gBankSpriteIds + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] adds r1, r0, r1 ldrb r4, [r1] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08103718 @@ -9917,7 +9917,7 @@ _08103726: ldrh r0, [r1, 0x8] adds r0, 0xB0 strh r0, [r1, 0x8] - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 @@ -9942,7 +9942,7 @@ _08103776: ldrh r0, [r1, 0x8] subs r0, 0xB0 strh r0, [r1, 0x8] - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 @@ -9992,13 +9992,13 @@ sub_81037D8: @ 81037D8 push {r4,r5,lr} adds r4, r0, 0 bl sub_80A6838 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08103804 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r4, 0x20] ldrh r2, [r0] subs r1, r2 @@ -10007,7 +10007,7 @@ sub_81037D8: @ 81037D8 b _08103810 .pool _08103804: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -10018,9 +10018,9 @@ _08103810: ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810384C @@ -10110,20 +10110,20 @@ sub_81038C8: @ 81038C8 lsls r0, 24 cmp r0, 0 beq _081038EC - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] b _0810390E .pool _081038EC: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810390E - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] @@ -10137,12 +10137,12 @@ _0810390E: adds r0, r5, 0 movs r1, 0x1 bl sub_80A69CC - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C lsls r0, 24 - ldr r6, =gUnknown_0203841E + ldr r6, =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r6, 0x4] adds r0, r1 @@ -10234,7 +10234,7 @@ sub_81039CC: @ 81039CC subs r1, 0x1 strh r1, [r0, 0xA] adds r0, r3, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _081039F6: pop {r0} bx r0 @@ -10540,14 +10540,14 @@ sub_8103C0C: @ 8103C0C subs r3, r4 lsls r3, 24 lsrs r3, 24 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r12, r0 lsls r0, 4 add r0, r12 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r6, r0, r1 movs r1, 0x10 ldrsh r0, [r5, r1] @@ -10609,7 +10609,7 @@ _08103C90: lsls r1, 24 asrs r1, 24 movs r0, 0x9A - bl audio_play_and_stuff + bl PlaySE12WithPanning movs r3, 0xA ldrsh r0, [r4, r3] cmp r0, 0x2 @@ -10654,7 +10654,7 @@ sub_8103CF0: @ 8103CF0 adds r0, r1 movs r1, 0x2 strh r1, [r0, 0x10] - ldr r3, =gUnknown_0203841E + ldr r3, =gBattleAnimArgs ldrh r0, [r3] negs r0, r0 strh r0, [r3] @@ -10676,8 +10676,8 @@ _08103D54: strh r0, [r3, 0x4] b _08103DB6 _08103D5C: - ldr r1, =gUnknown_02024076 - ldr r0, =gUnknown_02038437 + ldr r1, =gBanksBySide + ldr r0, =gAnimationBankTarget ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -10693,7 +10693,7 @@ _08103D5C: lsls r0, 3 adds r0, r1 strh r3, [r0, 0x10] - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r0, [r2] negs r0, r0 strh r0, [r2] @@ -10716,7 +10716,7 @@ _08103DB0: _08103DB4: strh r0, [r2, 0x4] _08103DB6: - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] movs r1, 0 bl sub_80A5C6C @@ -10742,7 +10742,7 @@ _08103DB6: ands r0, r1 cmp r0, 0 beq _08103E20 - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r1, [r4] movs r0, 0x2 eors r0, r1 @@ -10759,7 +10759,7 @@ _08103DB6: .pool _08103E20: mov r5, sp - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -10781,7 +10781,7 @@ _08103E42: lsls r1, 3 adds r1, r0 mov r2, sp - ldr r3, =gUnknown_0203841E + ldr r3, =gBattleAnimArgs ldrh r0, [r3] ldrh r2, [r2] adds r0, r2 @@ -10811,7 +10811,7 @@ _08103E8A: lsrs r0, 16 lsls r4, r0, 16 asrs r4, 16 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs ldrh r1, [r5, 0x4] movs r0, 0x2 negs r0, r0 @@ -10882,7 +10882,7 @@ _08103F28: adds r0, r3, r7 lsls r0, 3 adds r5, r0, r1 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrh r0, [r4, 0x6] strh r0, [r5, 0xE] ldrh r1, [r4, 0x8] @@ -10897,7 +10897,7 @@ _08103F28: asrs r0, 16 cmp r0, 0x3F ble _08103FA0 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] bl sub_80A82E4 lsls r0, 24 @@ -10914,7 +10914,7 @@ _08103F78: asrs r0, 16 cmp r0, 0x3F ble _08103FA0 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] bl sub_80A82E4 lsls r0, 24 @@ -10927,7 +10927,7 @@ _08103F78: b _08103FB0 .pool _08103FA0: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] bl sub_80A82E4 lsls r0, 24 @@ -10969,7 +10969,7 @@ sub_8103FE8: @ 8103FE8 bl sub_80A69CC ldr r0, =gUnknown_085934A0 ldrh r0, [r0, 0x2] - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 movs r1, 0x80 @@ -11050,7 +11050,7 @@ sub_8104088: @ 8104088 adds r5, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -11060,15 +11060,15 @@ sub_8104088: @ 8104088 movs r1, 0x3 bl sub_80A5C6C lsls r0, 24 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4, 0x6] adds r0, r1 lsls r0, 16 lsrs r7, r0, 16 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _081040CC @@ -11145,9 +11145,9 @@ sub_8104154: @ 8104154 lsls r0, 16 asrs r0, 24 strh r0, [r4, 0x24] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08104178 @@ -11200,7 +11200,7 @@ sub_81041C4: @ 81041C4 bl sub_80A69CC movs r0, 0x14 strh r0, [r4, 0x2E] - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -11240,7 +11240,7 @@ sub_810421C: @ 810421C lsls r1, 24 asrs r1, 24 movs r0, 0xA6 - bl audio_play_and_stuff + bl PlaySE12WithPanning ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 @@ -11352,9 +11352,9 @@ sub_8104304: @ 8104304 adds r4, r0, 0 movs r1, 0 bl sub_80A69CC - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08104322 @@ -11362,7 +11362,7 @@ sub_8104304: @ 8104304 adds r0, 0x10 strh r0, [r4, 0x22] _08104322: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x8] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x4] @@ -11398,7 +11398,7 @@ sub_8104364: @ 8104364 movs r0, 0x10 mov r8, r0 ldr r6, =0x0000fff0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -11409,7 +11409,7 @@ sub_8104364: @ 8104364 movs r6, 0x10 adds r0, r5, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim _08104390: lsls r0, r7, 16 asrs r0, 16 @@ -11423,7 +11423,7 @@ _08104390: strh r0, [r5, 0x22] movs r0, 0x6 strh r0, [r5, 0x2E] - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -11481,7 +11481,7 @@ sub_8104414: @ 8104414 movs r2, 0x10 mov r9, r2 ldr r6, =0x0000fff0 - ldr r7, =gUnknown_0203841E + ldr r7, =gBattleAnimArgs ldrh r1, [r7] movs r2, 0 ldrsh r0, [r7, r2] @@ -11494,7 +11494,7 @@ sub_8104414: @ 8104414 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 - bl StartObjectImageAnim + bl StartSpriteAnim _08104448: mov r0, r8 lsls r1, r0, 16 @@ -11510,7 +11510,7 @@ _08104448: movs r0, 0x6 strh r0, [r5, 0x2E] strh r1, [r5, 0x30] - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -11561,7 +11561,7 @@ sub_81044BC: @ 81044BC beq _08104520 adds r0, r4, 0 movs r1, 0 - bl SeekObjectImageAnim + bl SeekSpriteAnim adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] @@ -11645,7 +11645,7 @@ _08104548: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r0, =sub_8104594 str r0, [r4, 0x1C] _0810458A: @@ -11690,7 +11690,7 @@ sub_81045B0: @ 81045B0 movs r2, 0xD0 movs r3, 0 bl obj_id_set_rotscale - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 @@ -11741,7 +11741,7 @@ sub_8104614: @ 8104614 lsrs r4, 24 adds r0, r4, 0 bl sub_80A7344 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 @@ -11786,7 +11786,7 @@ sub_8104674: @ 8104674 strh r0, [r4, 0x10] strh r5, [r4, 0x12] strh r5, [r4, 0x14] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] bl sub_80A82E4 lsls r0, 24 @@ -11936,7 +11936,7 @@ _081047D0: _081047D8: ldrb r0, [r4, 0x8] bl sub_80A7344 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -11973,7 +11973,7 @@ sub_8104800: @ 8104800 asrs r4, r0, 16 cmp r4, 0 blt _081048DA - bl rotscale_alloc_entry + bl AllocOamMatrix lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0xFF @@ -11981,13 +11981,13 @@ sub_8104800: @ 8104800 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 bl obj_delete_but_dont_free_vram b _081048DA .pool _08104844: - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites lsls r3, r4, 4 adds r3, r4 lsls r3, 2 @@ -12059,7 +12059,7 @@ _08104844: lsls r3, 30 lsrs r3, 30 adds r0, r4, 0 - bl CalcVecFromObjectCenterToObjectUpperLeft + bl CalcCenterToCornerVec _081048DA: pop {r3,r4} mov r8, r3 @@ -12098,7 +12098,7 @@ sub_81048F0: @ 81048F0 ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix adds r0, r4, 0 bl obj_delete_but_dont_free_vram _0810492E: @@ -12118,7 +12118,7 @@ sub_8104938: @ 8104938 lsls r0, 3 ldr r1, =gTasks adds r4, r0, r1 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs movs r1, 0x2 ldrsh r0, [r5, r1] cmp r0, 0 @@ -12184,7 +12184,7 @@ _081049CA: ldrh r2, [r4, 0x10] adds r2, 0x3 strh r2, [r4, 0x10] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -12207,7 +12207,7 @@ _081049CA: _08104A00: adds r0, r4, 0 bl sub_80A7D34 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -12234,7 +12234,7 @@ _08104A34: ldrsh r0, [r4, r1] cmp r0, 0 beq _08104A5C - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -12267,7 +12267,7 @@ _08104A64: lsls r0, 16 cmp r0, 0 bne _08104A9C - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -12345,15 +12345,15 @@ _08104B10: sub_8104B1C: @ 8104B1C push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08104B50 adds r0, r4, 0 movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -12367,7 +12367,7 @@ sub_8104B1C: @ 8104B1C _08104B50: adds r0, r4, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -12378,7 +12378,7 @@ _08104B50: ldr r0, =0x0000ffc0 _08104B6A: strh r0, [r4, 0x30] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] movs r1, 0x3 bl sub_80A5C6C @@ -12406,25 +12406,25 @@ _08104B6A: sub_8104BAC: @ 8104BAC push {r4-r6,lr} adds r6, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _08104BC8 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _08104BCA .pool _08104BC8: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _08104BCA: ldrb r5, [r0] adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08104BE4 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r2, 0x2 ldrsh r0, [r1, r2] negs r0, r0 @@ -12434,7 +12434,7 @@ _08104BE4: movs r1, 0x2 bl sub_80A5C6C lsls r0, 24 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4, 0x2] adds r0, r1 @@ -12540,7 +12540,7 @@ sub_8104CA4: @ 8104CA4 strh r0, [r4, 0xE] movs r0, 0x3 strh r0, [r4, 0x10] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -12559,9 +12559,9 @@ sub_8104CA4: @ 8104CA4 strh r2, [r4, 0x18] movs r0, 0x2 strh r0, [r4, 0x1A] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -12605,7 +12605,7 @@ sub_8104D28: @ 8104D28 ands r0, r1 cmp r0, 0 beq _08104D78 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x8 ldrsh r1, [r3, r0] lsls r0, r1, 4 @@ -12618,7 +12618,7 @@ sub_8104D28: @ 8104D28 b _08104D8C .pool _08104D78: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r5, 0x8 ldrsh r1, [r3, r5] lsls r0, r1, 4 @@ -12646,7 +12646,7 @@ _08104DA4: beq _08104E0C b _08104E6C _08104DAA: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r5, 0x8 ldrsh r1, [r3, r5] lsls r0, r1, 4 @@ -12670,7 +12670,7 @@ _08104DAA: b _08104E6C .pool _08104DDC: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r5, 0x8 ldrsh r1, [r3, r5] lsls r0, r1, 4 @@ -12694,7 +12694,7 @@ _08104DDC: b _08104E6C .pool _08104E0C: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x8 ldrsh r1, [r3, r0] lsls r0, r1, 4 @@ -12759,7 +12759,7 @@ sub_8104E74: @ 8104E74 lsls r1, 3 ldr r0, =gTasks adds r5, r1, r0 - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] bl sub_80A6190 lsls r0, 24 @@ -12777,7 +12777,7 @@ sub_8104E74: @ 8104E74 bl sub_80A861C strh r0, [r5, 0x26] ldrb r0, [r4] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -12959,7 +12959,7 @@ _0810500E: sub_810501C: @ 810501C push {r4-r6,lr} adds r4, r0, 0 - ldr r6, =gUnknown_02038437 + ldr r6, =gAnimationBankTarget ldrb r0, [r6] movs r1, 0 bl sub_80A5C6C @@ -13086,7 +13086,7 @@ _081050DC: lsls r1, 24 asrs r1, 24 movs r0, 0xCD - bl audio_play_and_stuff + bl PlaySE12WithPanning _08105122: ldrh r0, [r4, 0x34] ldrh r2, [r4, 0x36] @@ -13187,18 +13187,18 @@ sub_81051C4: @ 81051C4 mov r1, sp adds r1, 0x2 strh r5, [r1] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r3, 0x4 ldrsh r2, [r0, r3] adds r7, r1, 0 adds r1, r0, 0 cmp r2, 0 bne _081051F0 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _081051F2 .pool _081051F0: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _081051F2: ldrb r5, [r0] ldrb r1, [r1, 0x6] @@ -13235,11 +13235,11 @@ _08105234: lsls r0, 24 lsrs r4, r0, 24 adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08105260 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs mov r0, sp ldrh r1, [r0] subs r1, r4 @@ -13250,7 +13250,7 @@ _08105234: b _0810526A .pool _08105260: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs mov r0, sp ldrh r0, [r0] subs r0, r4 @@ -13276,7 +13276,7 @@ sub_8105284: @ 8105284 cmp r0, 0 beq _0810529E adds r0, r4, 0 - bl obj_free_rotscale_entry + bl FreeSpriteOamMatrix adds r0, r4, 0 bl move_anim_8072740 _0810529E: @@ -13300,24 +13300,24 @@ sub_81052A4: @ 81052A4 mov r1, sp adds r1, 0x2 strh r6, [r1] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r2, 0xA ldrsh r0, [r0, r2] cmp r0, 0 bne _081052DC - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r7, [r0] - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget b _081052E2 .pool _081052DC: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r7, [r0] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker _081052E2: ldrb r0, [r0] mov r8, r0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r3, 0xC ldrsh r0, [r0, r3] cmp r0, 0 @@ -13335,7 +13335,7 @@ _08105308: str r3, [sp, 0x4] _08105310: adds r0, r7, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810536C @@ -13343,7 +13343,7 @@ _08105310: mov r1, r10 bl sub_80A5C6C lsls r0, 24 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r1] adds r0, r1 @@ -13358,14 +13358,14 @@ _08105310: lsls r0, 24 cmp r0, 0 beq _0810535C - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 + ldr r2, =gSprites + ldr r0, =gBankSpriteIds adds r0, r4, r0 b _081053EA .pool _0810535C: - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 + ldr r2, =gSprites + ldr r0, =gBankSpriteIds add r0, r8 b _081053EA .pool @@ -13375,7 +13375,7 @@ _0810536C: bl sub_80A5C6C lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r1, [r1] subs r0, r1 lsls r0, 16 @@ -13393,8 +13393,8 @@ _0810536C: lsls r0, 24 cmp r0, 0 beq _081053E4 - ldr r3, =gUnknown_02020630 - ldr r2, =gUnknown_020241E4 + ldr r3, =gSprites + ldr r2, =gBankSpriteIds adds r0, r7, r2 ldrb r1, [r0] lsls r0, r1, 4 @@ -13423,8 +13423,8 @@ _081053E0: adds r0, r6, 0 b _081053F4 _081053E4: - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 + ldr r2, =gSprites + ldr r0, =gBankSpriteIds adds r0, r7, r0 _081053EA: ldrb r1, [r0] @@ -13444,7 +13444,7 @@ _081053FA: ldr r1, [sp, 0x4] bl sub_80A5C6C lsls r0, 24 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4, 0x2] adds r0, r1 @@ -13486,13 +13486,13 @@ _0810544C: strh r0, [r2, 0x2] _0810546C: mov r0, r8 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08105490 mov r3, sp mov r2, sp - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x6] ldrh r2, [r2] adds r0, r2 @@ -13503,7 +13503,7 @@ _0810546C: _08105490: mov r3, sp mov r0, sp - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r0, [r0] ldrh r1, [r2, 0x6] subs r0, r1 @@ -13547,7 +13547,7 @@ sub_81054E8: @ 81054E8 push {r4,lr} adds r4, r0, 0 ldr r0, =0x000027db - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF @@ -13556,7 +13556,7 @@ sub_81054E8: @ 81054E8 ldr r1, =0x01010000 adds r0, r1 lsrs r0, 16 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrb r2, [r1, 0xA] ldrh r3, [r1, 0x8] movs r1, 0xF @@ -13564,7 +13564,7 @@ sub_81054E8: @ 81054E8 _0810550E: adds r0, r4, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim ldr r1, =sub_80A77C8 str r1, [r4, 0x1C] adds r0, r4, 0 @@ -13581,9 +13581,9 @@ sub_8105538: @ 8105538 adds r4, r0, 0 movs r1, 0 bl sub_80A69CC - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r1, 0xA0 cmp r0, 0 @@ -13594,7 +13594,7 @@ _08105554: lsls r0, 2 strh r0, [r4, 0x2E] strh r1, [r4, 0x30] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r4, 0x3C] ldr r0, =sub_810557C @@ -13622,9 +13622,9 @@ sub_810557C: @ 810557C strh r0, [r4, 0x24] subs r2, 0x20 strh r2, [r4, 0x2E] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r1, 0xA0 cmp r0, 0 @@ -13653,7 +13653,7 @@ _081055AC: strh r5, [r4, 0x2E] adds r0, r4, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim ldr r0, =sub_81055F4 str r0, [r4, 0x1C] _081055E0: @@ -13676,7 +13676,7 @@ sub_81055F4: @ 81055F4 ble _08105612 adds r0, r4, 0 movs r1, 0x2 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim ldr r0, =sub_810561C str r0, [r4, 0x1C] _08105612: @@ -13698,7 +13698,7 @@ sub_810561C: @ 810561C beq _08105682 adds r0, r4, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim movs r0, 0 strh r0, [r4, 0x2E] movs r1, 0x3C @@ -13817,7 +13817,7 @@ _08105712: sub_810571C: @ 810571C push {lr} adds r3, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r0, 0xE] ldr r0, =0x0000ffff cmp r1, r0 @@ -13905,7 +13905,7 @@ sub_81057B8: @ 81057B8 lsrs r3, r0, 24 cmp r3, 0 bne _08105802 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -13950,9 +13950,9 @@ sub_8105810: @ 8105810 strh r0, [r4, 0xE] movs r0, 0x3 strh r0, [r4, 0x20] - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08105850 @@ -14007,7 +14007,7 @@ _081058A0: beq _08105962 b _08105992 _081058AA: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 @@ -14040,7 +14040,7 @@ _081058CC: lsls r0, 16 cmp r0, 0 beq _08105904 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r4, 0x26 ldrsh r1, [r3, r4] lsls r0, r1, 4 @@ -14052,7 +14052,7 @@ _081058CC: b _08105916 .pool _08105904: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 @@ -14102,7 +14102,7 @@ _0810595A: strh r0, [r3, 0x8] b _08105992 _08105962: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r4, 0x26 ldrsh r1, [r3, r4] lsls r0, r1, 4 @@ -14197,7 +14197,7 @@ sub_81059E0: @ 81059E0 ands r0, r1 cmp r0, 0 beq _08105A3C - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites movs r6, 0x26 ldrsh r1, [r4, r6] lsls r0, r1, 4 @@ -14212,7 +14212,7 @@ sub_81059E0: @ 81059E0 b _08105A52 .pool _08105A3C: - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -14292,7 +14292,7 @@ sub_8105AAC: @ 8105AAC strh r0, [r4, 0x16] strh r0, [r4, 0x18] strh r0, [r4, 0x22] - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] movs r1, 0 bl sub_80A5C6C @@ -14409,12 +14409,12 @@ _08105B9E: movs r3, 0x26 ldrsh r2, [r4, r3] movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _08105C42 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r2, 4 adds r1, r2 lsls r1, 2 @@ -14525,7 +14525,7 @@ sub_8105C48: @ 8105C48 subs r0, 0x1 strh r0, [r1] adds r0, r3, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _08105CAA: pop {r4} pop {r0} @@ -14540,7 +14540,7 @@ sub_8105CB4: @ 8105CB4 lsls r0, 24 lsrs r6, r0, 24 ldr r0, =0x000027de - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag mov r1, sp strb r0, [r1] movs r4, 0x1 @@ -14550,7 +14550,7 @@ _08105CCC: subs r0, r5, r4 lsls r0, 16 lsrs r0, 16 - bl AllocObjectPalette + bl AllocSpritePalette mov r2, sp adds r1, r2, r4 strb r0, [r1] @@ -14620,7 +14620,7 @@ sub_8105D60: @ 8105D60 movs r4, 0x2 _08105D6A: ldrh r0, [r5] - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag adds r5, 0x2 subs r4, 0x1 cmp r4, 0 @@ -14665,7 +14665,7 @@ sub_8105D88: @ 8105D88 lsls r2, 1 adds r2, r0 ldrh r0, [r2] - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 4 ldrb r2, [r5, 0x5] movs r1, 0xF @@ -14684,18 +14684,18 @@ sub_8105DE8: @ 8105DE8 adds r5, r0, 0 movs r1, 0 bl sub_80A69CC - ldr r6, =gUnknown_02038436 + ldr r6, =gAnimationBankAttacker ldrb r0, [r6] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08105E08 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _08105E08: - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrh r0, [r4, 0x8] strh r0, [r5, 0x2E] ldrb r0, [r6] @@ -14962,7 +14962,7 @@ sub_8106020: @ 8106020 ldr r2, =gUnknown_08593988 adds r0, r5, 0 bl sub_80A7CFC - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 @@ -14972,7 +14972,7 @@ sub_8106020: @ 8106020 b _081060A4 .pool _0810607C: - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 @@ -15027,7 +15027,7 @@ sub_81060B0: @ 81060B0 ldr r2, =gUnknown_08593988 adds r0, r5, 0 bl sub_80A7CFC - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 @@ -15037,7 +15037,7 @@ sub_81060B0: @ 81060B0 b _08106134 .pool _0810610C: - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 @@ -15072,7 +15072,7 @@ sub_8106140: @ 8106140 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -15136,7 +15136,7 @@ sub_81061C4: @ 81061C4 ldrsh r0, [r4, r1] cmp r0, 0 bne _081061E8 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] strh r0, [r4, 0x30] ldrh r0, [r1, 0x2] @@ -15200,7 +15200,7 @@ _08106244: thumb_func_start sub_810624C sub_810624C: @ 810624C push {lr} - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r1, [r2] strh r1, [r0, 0x20] movs r1, 0xA0 @@ -15561,9 +15561,9 @@ _0810653A: b _0810658A .pool _08106578: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -15773,7 +15773,7 @@ _08106730: sub_810673C: @ 810673C push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -15792,7 +15792,7 @@ sub_810673C: @ 810673C movs r1, 0x80 orrs r0, r1 strb r0, [r2] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x2] @@ -15906,7 +15906,7 @@ _08106828: movs r0, 0x1 strh r0, [r4, 0x38] _08106858: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r0, 0xE] ldr r0, =0x0000ffff cmp r1, r0 @@ -15924,7 +15924,7 @@ _08106868: sub_8106878: @ 8106878 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -15937,7 +15937,7 @@ sub_8106878: @ 8106878 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0xA @@ -16029,7 +16029,7 @@ _08106940: sub_8106944: @ 8106944 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -16042,7 +16042,7 @@ sub_8106944: @ 8106944 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0xA @@ -16102,7 +16102,7 @@ sub_81069D0: @ 81069D0 ldrsh r0, [r4, r1] cmp r0, 0 bne _081069EE - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r0] ldrh r2, [r4, 0x20] adds r1, r2 @@ -16238,7 +16238,7 @@ sub_8106AD0: @ 8106AD0 ldrsh r0, [r4, r1] cmp r0, 0 bne _08106AF4 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] strh r0, [r4, 0x30] ldrh r0, [r1, 0x2] @@ -16302,7 +16302,7 @@ sub_8106B54: @ 8106B54 ldrsh r0, [r4, r1] cmp r0, 0 bne _08106B8E - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -16313,8 +16313,8 @@ sub_8106B54: @ 8106B54 strh r0, [r4, 0x22] adds r0, r4, 0 movs r1, 0 - bl StartObjectImageAnim - ldr r0, =gUnknown_02038437 + bl StartSpriteAnim + ldr r0, =gAnimationBankTarget ldrb r0, [r0] bl sub_80A82E4 subs r0, 0x1 @@ -16454,7 +16454,7 @@ sub_8106C80: @ 8106C80 ldrsh r0, [r4, r1] cmp r0, 0 bne _08106CB4 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -16465,7 +16465,7 @@ sub_8106C80: @ 8106C80 strh r0, [r4, 0x22] ldrb r1, [r1, 0x4] adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] @@ -16491,7 +16491,7 @@ _08106CC8: sub_8106CD0: @ 8106CD0 push {r4,r5,lr} adds r5, r0, 0 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r2, 0x4 ldrsh r0, [r1, r2] cmp r0, 0 @@ -16505,11 +16505,11 @@ _08106CEC: ldrsh r0, [r1, r2] cmp r0, 0 bne _08106CFC - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker b _08106CFE .pool _08106CFC: - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget _08106CFE: ldrb r0, [r4] movs r1, 0x2 @@ -16523,7 +16523,7 @@ _08106CFE: lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r2, 0x2 ldrsh r1, [r0, r2] adds r2, r0, 0 @@ -16545,7 +16545,7 @@ _08106D38: lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r0, =sub_8106D5C str r0, [r5, 0x1C] _08106D50: @@ -16575,7 +16575,7 @@ sub_8106D5C: @ 8106D5C lsls r1, 24 lsrs r1, 24 adds r0, r2, 0 - bl StartObjectImageAnim + bl StartSpriteAnim b _08106D8C _08106D86: adds r0, r2, 0 @@ -16591,7 +16591,7 @@ sub_8106D90: @ 8106D90 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrb r0, [r0] bl obj_id_for_side_relative_to_move adds r1, r0, 0 @@ -16640,25 +16640,25 @@ _08106DF4: sub_8106E00: @ 8106E00 push {r4-r7,lr} adds r5, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _08106E1C - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _08106E1E .pool _08106E1C: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _08106E1E: ldrb r6, [r0] adds r0, r6, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08106E38 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r2, 0x2 ldrsh r0, [r1, r2] negs r0, r0 @@ -16668,7 +16668,7 @@ _08106E38: movs r1, 0x2 bl sub_80A5C6C lsls r0, 24 - ldr r7, =gUnknown_0203841E + ldr r7, =gBattleAnimArgs lsrs r0, 24 ldrh r3, [r7, 0x2] adds r0, r3 @@ -16768,7 +16768,7 @@ sub_8106F00: @ 8106F00 ldrsh r0, [r4, r1] cmp r0, 0 bne _08106F22 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r0] movs r0, 0x78 subs r0, r1 @@ -16821,7 +16821,7 @@ sub_8106F60: @ 8106F60 bne _08106F8E movs r5, 0x78 strh r5, [r6, 0x20] - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs movs r2, 0 ldrsh r0, [r4, r2] lsrs r1, r0, 31 @@ -16831,7 +16831,7 @@ sub_8106F60: @ 8106F60 strh r0, [r6, 0x22] ldrb r1, [r4, 0x2] adds r0, r6, 0 - bl StartObjectImageAnim + bl StartSpriteAnim strh r5, [r6, 0x38] ldrh r0, [r4, 0x4] strh r0, [r6, 0x34] @@ -16892,7 +16892,7 @@ _08106F8E: strh r5, [r6, 0x34] adds r0, r6, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim _0810700A: pop {r4-r6} pop {r0} @@ -16992,7 +16992,7 @@ sub_81070AC: @ 81070AC ands r0, r1 cmp r0, 0 beq _081070F8 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r1, [r4] movs r0, 0x2 eors r0, r1 @@ -17012,11 +17012,11 @@ sub_81070AC: @ 81070AC strh r0, [r5, 0x22] adds r0, r5, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim b _08107118 .pool _081070F8: - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -17054,8 +17054,8 @@ sub_8107144: @ 8107144 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r3, =gUnknown_0203841E - ldr r1, =gUnknown_02038400 + ldr r3, =gBattleAnimArgs + ldr r1, =gDisableStructMoveAnim ldr r1, [r1] ldrb r2, [r1, 0x10] movs r1, 0x1 @@ -17072,8 +17072,8 @@ update_fury_cutter_counter_copy: @ 8107168 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_0203841E - ldr r1, =gUnknown_02038400 + ldr r2, =gBattleAnimArgs + ldr r1, =gDisableStructMoveAnim ldr r1, [r1] ldrb r1, [r1, 0x10] strh r1, [r2, 0xE] @@ -17098,7 +17098,7 @@ sub_8107188: @ 8107188 ldrsh r0, [r5, r1] cmp r0, 0 bne _081071B0 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] strh r0, [r5, 0xA] ldrh r0, [r1, 0x2] @@ -17135,7 +17135,7 @@ _081071B0: ldr r0, =gUnknown_08595020 adds r1, r4, 0 movs r3, 0x4 - bl AddObjectToFront + bl CreateSprite _081071F8: movs r0, 0x8 ldrsh r1, [r5, r0] @@ -17186,7 +17186,7 @@ _08107246: cmp r0, 0 beq _0810725A adds r0, r2, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0810725A: pop {r0} bx r0 @@ -17196,9 +17196,9 @@ _0810725A: sub_8107260: @ 8107260 push {r4-r6,lr} adds r6, r0, 0 - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08107290 @@ -17207,7 +17207,7 @@ sub_8107260: @ 8107260 bl sub_80A5C6C lsls r0, 24 lsrs r0, 24 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrh r1, [r4] subs r0, r1 b _081072A2 @@ -17217,7 +17217,7 @@ _08107290: movs r1, 0x2 bl sub_80A5C6C lsls r0, 24 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4] adds r0, r1 @@ -17237,23 +17237,23 @@ _081072A2: movs r1, 0x40 orrs r0, r1 strb r0, [r2] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _081072D8 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _081072D8: - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs ldrh r0, [r5, 0xC] strh r0, [r6, 0x2E] ldrh r0, [r6, 0x20] strh r0, [r6, 0x30] - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -17270,7 +17270,7 @@ _081072D8: strh r0, [r6, 0x36] adds r0, r6, 0 bl obj_translate_based_on_private_1_2_3_4 - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy bl CreateInvisibleSpriteWithCallback adds r4, r0, 0 lsls r4, 24 @@ -17290,7 +17290,7 @@ _081072D8: ldrh r1, [r6, 0x22] subs r1, r0 strh r1, [r6, 0x22] - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r4, 4 adds r1, r4 lsls r1, 2 @@ -17326,7 +17326,7 @@ sub_8107380: @ 8107380 ldrh r1, [r5, 0x38] lsls r1, 24 lsrs r1, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 @@ -17372,7 +17372,7 @@ _081073EC: ldr r0, =sub_8107408 str r0, [r5, 0x1C] adds r0, r7, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _081073F6: add sp, 0x4 pop {r3} @@ -17422,13 +17422,13 @@ sub_810744C: @ 810744C adds r5, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810747C - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 lsls r0, 16 @@ -17437,7 +17437,7 @@ sub_810744C: @ 810744C b _08107482 .pool _0810747C: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r6, [r0, 0x4] adds r7, r0, 0 _08107482: @@ -17445,7 +17445,7 @@ _08107482: strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -17486,14 +17486,14 @@ _08107482: sub_81074E4: @ 81074E4 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r0, 0xE] ldr r0, =0x0000ffff cmp r1, r0 bne _08107506 adds r0, r4, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim adds r2, r4, 0 adds r2, 0x2C ldrb r1, [r2] @@ -17525,11 +17525,11 @@ sub_8107528: @ 8107528 adds r4, r0 lsls r4, 3 adds r4, r1 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0] strh r0, [r4, 0x8] ldr r0, =0x0000279c - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 movs r1, 0x80 @@ -17621,7 +17621,7 @@ sub_81075EC: @ 81075EC strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -17644,7 +17644,7 @@ sub_81075EC: @ 81075EC lsls r0, 8 bl __divsi3 strh r0, [r5, 0x38] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r2, [r0, 0x6] strh r2, [r5, 0x3C] ldrh r1, [r0, 0xE] @@ -17728,7 +17728,7 @@ sub_81076C8: @ 81076C8 adds r1, r0 lsls r1, 3 adds r1, r2 - ldr r3, =gUnknown_0203841E + ldr r3, =gBattleAnimArgs ldrh r0, [r3] movs r2, 0 strh r0, [r1, 0x8] @@ -17744,7 +17744,7 @@ sub_81076F4: @ 81076F4 push {lr} lsls r0, 24 lsrs r3, r0, 24 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r0, [r2, 0xE] adds r0, 0x3 movs r1, 0xFF @@ -17773,7 +17773,7 @@ _08107722: sub_8107730: @ 8107730 push {r4-r7,lr} adds r4, r0, 0 - ldr r7, =gUnknown_02038436 + ldr r7, =gAnimationBankAttacker ldrb r0, [r7] movs r1, 0 bl sub_80A5C6C @@ -17797,7 +17797,7 @@ sub_8107730: @ 8107730 cmp r0, 0 bne _0810778A ldrb r0, [r7] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08107784 @@ -17846,29 +17846,29 @@ _081077BA: sub_81077C0: @ 81077C0 push {r4-r7,lr} adds r6, r0, 0 - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _0810780A - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r4, r1] negs r0, r0 strh r0, [r4] ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 cmp r0, 0 beq _08107802 ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -17879,7 +17879,7 @@ _08107802: negs r0, r0 strh r0, [r4] _0810780A: - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs movs r1, 0xA ldrsh r0, [r5, r1] movs r1, 0xFF @@ -17898,9 +17898,9 @@ _0810781E: _08107828: adds r0, r6, 0 bl sub_80A69CC - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08107842 @@ -17910,7 +17910,7 @@ _08107828: _08107842: ldrh r0, [r5, 0x8] strh r0, [r6, 0x2E] - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -17944,7 +17944,7 @@ sub_8107894: @ 8107894 adds r4, r0, 0 movs r1, 0x1 bl sub_80A6980 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r0, 0x8] strh r1, [r4, 0x2E] ldrh r0, [r0, 0x4] @@ -17969,7 +17969,7 @@ sub_8107894: @ 8107894 sub_81078D0: @ 81078D0 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0x6 ldrsh r0, [r0, r1] cmp r0, 0 @@ -17984,7 +17984,7 @@ _081078EC: movs r1, 0x1 bl sub_80A69CC _081078F4: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r4, 0x3C] ldr r0, =sub_810790C @@ -18069,9 +18069,9 @@ sub_8107954: @ 8107954 movs r1, 0x3 movs r2, 0x1 bl lcd_bg_operations - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -18101,7 +18101,7 @@ _081079EA: mov r2, sp ldrh r2, [r2, 0xA] bl sub_80A6CC0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -18174,9 +18174,9 @@ _08107A32: b _08107B0E .pool _08107AB4: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1 @@ -18967,7 +18967,7 @@ sub_81080E4: @ 81080E4 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -19062,7 +19062,7 @@ _081081B6: ands r0, r1 cmp r0, 0 beq _08108200 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -19083,7 +19083,7 @@ _081081B6: b _08108212 .pool _08108200: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -19105,7 +19105,7 @@ _08108222: lsls r0, 24 lsrs r0, 24 bl sub_80A7E6C - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -19178,7 +19178,7 @@ _081082A0: ands r0, r1 cmp r0, 0 beq _081082D8 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -19190,7 +19190,7 @@ _081082A0: b _081082EA .pool _081082D8: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -19225,7 +19225,7 @@ _081082EA: b _0810835E .pool _08108320: - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -19278,13 +19278,13 @@ _0810837A: thumb_func_start sub_8108384 sub_8108384: @ 8108384 push {r4,r5,lr} - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _081083B8 - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -19298,7 +19298,7 @@ _081083B4: adds r0, r2, 0 b _081083FA _081083B8: - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -19350,7 +19350,7 @@ sub_8108408: @ 8108408 lsls r1, 24 lsrs r1, 24 str r1, [sp] - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -19396,13 +19396,13 @@ _08108472: mov r1, r10 mov r2, r9 ldr r3, [sp, 0x8] - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 lsls r6, r5, 16 cmp r2, 0x40 beq _081084DA - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -19554,7 +19554,7 @@ _0810859A: subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _081085BE: pop {r4} pop {r0} @@ -19576,9 +19576,9 @@ sub_81085C8: @ 81085C8 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xA] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08108600 @@ -19652,7 +19652,7 @@ _0810866A: ldrsh r0, [r4, r2] cmp r0, 0 bne _081086E4 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs movs r1, 0x1 mov r8, r1 mov r2, r8 @@ -19675,7 +19675,7 @@ _0810866A: ldr r1, [r0] adds r0, r2, 0 bl _call_via_r1 - ldr r1, =gUnknown_020383FE + ldr r1, =gAnimVisualTaskCount ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] @@ -19696,7 +19696,7 @@ _081086B4: ldr r1, [r0] adds r0, r2, 0 bl _call_via_r1 - ldr r1, =gUnknown_020383FE + ldr r1, =gAnimVisualTaskCount ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] @@ -19736,7 +19736,7 @@ sub_810871C: @ 810871C adds r4, r0, 0 lsls r1, 24 lsrs r6, r1, 24 - ldr r1, =gUnknown_08329F40 + ldr r1, =gSineTable movs r2, 0x18 ldrsh r0, [r4, r2] lsls r0, 1 @@ -19754,12 +19754,12 @@ sub_810871C: @ 810871C ldrsh r1, [r4, r2] movs r2, 0 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _08108776 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 @@ -19835,7 +19835,7 @@ sub_81087C0: @ 81087C0 movs r3, 0x22 ldrsh r2, [r5, r3] movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x30] @@ -19846,10 +19846,10 @@ sub_81087C0: @ 81087C0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 movs r1, 0x3 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim movs r2, 0x30 ldrsh r1, [r5, r2] lsls r0, r1, 4 @@ -19877,7 +19877,7 @@ sub_81087C0: @ 81087C0 str r1, [r0] _08108850: adds r0, r5, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _08108856: pop {r4,r5} pop {r0} @@ -19936,9 +19936,9 @@ sub_810886C: @ 810886C ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _081088D8: pop {r4} pop {r0} @@ -19956,7 +19956,7 @@ sub_81088E4: @ 81088E4 lsls r1, 3 ldr r0, =gTasks adds r5, r1, r0 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -19971,7 +19971,7 @@ sub_81088E4: @ 81088E4 lsrs r0, 24 strh r0, [r5, 0x10] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r2, 0x1 negs r2, r2 @@ -20197,12 +20197,12 @@ sub_8108AC0: @ 8108AC0 movs r3, 0x10 ldrsh r2, [r6, r3] movs r3, 0xA - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _08108B1A - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites lsls r4, r0, 4 adds r4, r0 lsls r4, 2 @@ -20304,7 +20304,7 @@ _08108BA6: subs r0, 0x1 strh r0, [r2, 0x18] adds r0, r5, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _08108BC6: adds r0, r4, 0x1 lsls r0, 16 @@ -20320,7 +20320,7 @@ _08108BD0: thumb_func_start sub_8108BE0 sub_8108BE0: @ 8108BE0 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r1, [r2] strh r1, [r0, 0x20] ldrh r1, [r2, 0x2] @@ -20403,9 +20403,9 @@ sub_8108C54: @ 8108C54 cmp r0, 0 bne _08108C8C adds r0, r4, 0 - bl obj_free_rotscale_entry + bl FreeSpriteOamMatrix adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _08108C8C: pop {r4} pop {r0} @@ -20418,7 +20418,7 @@ sub_8108C94: @ 8108C94 adds r4, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -20431,7 +20431,7 @@ sub_8108C94: @ 8108C94 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x4] strh r0, [r4, 0x34] ldrh r0, [r1, 0x6] @@ -20581,10 +20581,10 @@ _08108DE2: mov r3, r10 asrs r2, r3, 16 movs r3, 0x82 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -20593,7 +20593,7 @@ _08108DE2: strh r0, [r4, 0x2E] mov r0, r9 strh r0, [r4, 0x30] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] bl sub_80A82E4 subs r0, 0x1 @@ -20636,10 +20636,10 @@ _08108E58: mov r3, r10 asrs r2, r3, 16 movs r3, 0x82 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -20648,7 +20648,7 @@ _08108E58: strh r0, [r4, 0x2E] mov r0, r9 strh r0, [r4, 0x30] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] bl sub_80A82E4 subs r0, 0x1 @@ -20686,7 +20686,7 @@ _08108EAA: sub_8108EC8: @ 8108EC8 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0] strh r0, [r4, 0x2E] movs r0, 0x3C @@ -20715,7 +20715,7 @@ sub_8108EC8: @ 8108EC8 sub_8108F08: @ 8108F08 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs movs r0, 0 ldrsh r1, [r5, r0] adds r0, r4, 0 @@ -20746,13 +20746,13 @@ sub_8108F4C: @ 8108F4C push {r4,lr} adds r4, r0, 0 bl sub_80A6838 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08108F88 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 @@ -20768,7 +20768,7 @@ sub_8108F4C: @ 8108F4C b _08108F9E .pool _08108F88: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -20798,13 +20798,13 @@ _08108F9E: sub_8108FBC: @ 8108FBC push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08108FF0 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 @@ -20819,7 +20819,7 @@ sub_8108FBC: @ 8108FBC b _08109008 .pool _08108FF0: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -20886,13 +20886,13 @@ sub_8109064: @ 8109064 push {r4,lr} adds r4, r0, 0 bl sub_80A6838 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08109090 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r4, 0x20] ldrh r2, [r0] subs r1, r2 @@ -20900,7 +20900,7 @@ sub_8109064: @ 8109064 b _081090A2 .pool _08109090: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r0] ldrh r2, [r4, 0x20] adds r1, r2 @@ -21037,33 +21037,33 @@ sub_810916C: @ 810916C sub_8109198: @ 8109198 push {r4-r6,lr} adds r6, r0, 0 - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _081091DE movs r0, 0x2 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI ldrb r1, [r5] lsls r0, 24 lsrs r0, 24 cmp r1, r0 beq _081091D6 movs r0, 0x3 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI ldrb r1, [r5] lsls r0, 24 lsrs r0, 24 cmp r1, r0 bne _081091DE _081091D6: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] @@ -21080,7 +21080,7 @@ _081091DE: thumb_func_start sub_8109200 sub_8109200: @ 8109200 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r1, [r2] negs r1, r1 strh r1, [r2] @@ -21099,7 +21099,7 @@ sub_810921C: @ 810921C adds r4, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x4] movs r1, 0 strh r0, [r4, 0x3C] @@ -21128,7 +21128,7 @@ sub_8109244: @ 8109244 strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -21164,7 +21164,7 @@ sub_810929C: @ 810929C beq _081092E4 movs r4, 0 strh r4, [r6, 0x2E] - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -21259,7 +21259,7 @@ sub_8109338: @ 8109338 sub_8109364: @ 8109364 push {r4,lr} adds r4, r0, 0 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -21291,7 +21291,7 @@ sub_81093A4: @ 81093A4 adds r4, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x4] strh r0, [r4, 0x30] ldrh r0, [r1, 0x6] @@ -21398,7 +21398,7 @@ sub_8109460: @ 8109460 strh r5, [r4, 0xA] strh r5, [r4, 0xC] strh r5, [r4, 0xE] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -21407,9 +21407,9 @@ sub_8109460: @ 8109460 adds r0, r2 ldrh r0, [r0, 0x22] strh r0, [r4, 0x10] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x12] @@ -21495,7 +21495,7 @@ _08109542: ands r0, r1 cmp r0, 0 beq _08109578 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -21506,7 +21506,7 @@ _08109542: b _08109588 .pool _08109578: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -21530,7 +21530,7 @@ _0810958A: ble _081095B8 movs r0, 0 strh r0, [r4, 0xE] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -21553,7 +21553,7 @@ _081095C8: lsls r0, 24 lsrs r0, 24 bl sub_80A7E6C - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -21648,7 +21648,7 @@ _08109672: ands r0, r1 cmp r0, 0 beq _081096AC - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -21660,7 +21660,7 @@ _08109672: b _081096BE .pool _081096AC: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -21720,7 +21720,7 @@ _0810971A: ands r0, r1 cmp r0, 0 beq _08109738 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -21742,7 +21742,7 @@ _08109748: ldrsh r0, [r4, r1] cmp r0, 0 beq _08109764 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -21759,7 +21759,7 @@ _08109764: lsrs r5, r0, 24 cmp r5, 0 bne _081097AA - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -21814,15 +21814,15 @@ sub_81097B4: @ 81097B4 lsls r0, 16 lsrs r0, 16 mov r9, r0 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r1 ldrh r4, [r0, 0x20] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0810980C @@ -21862,12 +21862,12 @@ _08109834: ldr r3, [sp, 0x4] asrs r2, r3, 16 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _081098B6 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -21965,7 +21965,7 @@ sub_81098EC: @ 81098EC subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _08109926: pop {r4} pop {r0} @@ -21978,7 +21978,7 @@ sub_8109930: @ 8109930 push {r4,lr} lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -21992,9 +21992,9 @@ sub_8109930: @ 8109930 adds r0, r2 lsls r0, 16 lsrs r4, r0, 16 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08109970 @@ -22100,7 +22100,7 @@ _08109A0C: thumb_func_start sub_8109A10 sub_8109A10: @ 8109A10 push {r4,r5,lr} - ldr r3, =gUnknown_0203841E + ldr r3, =gBattleAnimArgs ldrh r1, [r3] movs r2, 0 strh r1, [r0, 0x20] @@ -22242,15 +22242,15 @@ _08109B18: adds r0, r5, 0 movs r1, 0 bl sub_80A69CC - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrb r1, [r4, 0x4] adds r0, r5, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldrh r0, [r4, 0x4] strh r0, [r5, 0x3C] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08109B48 @@ -22261,7 +22261,7 @@ _08109B48: ldr r0, =0x0000fffc _08109B4A: strh r0, [r5, 0x36] - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] bl sub_80A8328 movs r1, 0x3 @@ -22279,9 +22279,9 @@ _08109B70: ldrh r0, [r5, 0x30] adds r0, 0xC0 strh r0, [r5, 0x30] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08109B94 @@ -22356,7 +22356,7 @@ _08109BCE: lsls r0, 1 strh r0, [r5, 0x2E] strh r1, [r5, 0x30] - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -22421,7 +22421,7 @@ _08109C82: movs r1, 0 ldrsb r1, [r0, r1] movs r0, 0x90 - bl audio_play_and_stuff + bl PlaySE12WithPanning b _08109CAA .pool _08109CA4: @@ -22442,7 +22442,7 @@ sub_8109CB0: @ 8109CB0 ldrsh r0, [r4, r2] cmp r0, 0 bne _08109CC8 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0] strh r0, [r4, 0x30] adds r0, r1, 0x1 @@ -22485,7 +22485,7 @@ _08109CC8: lsrs r0, 16 cmp r0, 0x83 bls _08109D3C - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] bl sub_80A8328 movs r1, 0x3 @@ -22500,7 +22500,7 @@ _08109CC8: b _08109D80 .pool _08109D3C: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] bl sub_80A8328 lsls r0, 24 @@ -22578,9 +22578,9 @@ sub_8109DBC: @ 8109DBC lsls r1, 3 ldr r0, =gTasks adds r4, r1, r0 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r2, 0x1 negs r2, r2 @@ -22590,7 +22590,7 @@ sub_8109DBC: @ 8109DBC movs r1, 0x1 _08109DE2: strh r1, [r4, 0x20] - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r1, [r0] movs r0, 0x2 eors r0, r1 @@ -22682,7 +22682,7 @@ _08109E94: ldrsh r0, [r2, r7] cmp r1, r0 bge _08109ED6 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r3, r2, 0 adds r3, 0x8 _08109EA6: @@ -22754,7 +22754,7 @@ _08109F1C: ldrsh r0, [r2, r7] cmp r1, r0 bge _08109F5E - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r3, r2, 0 adds r3, 0x8 _08109F2E: @@ -22829,7 +22829,7 @@ _08109FB0: ldrsh r0, [r2, r3] cmp r1, r0 bge _08109FF2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r3, r2, 0 adds r3, 0x8 _08109FC2: @@ -22878,7 +22878,7 @@ _0810A010: ldrsh r0, [r2, r3] cmp r1, r0 bge _0810A04E - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites adds r3, r2, 0 adds r3, 0x8 movs r5, 0 @@ -22926,7 +22926,7 @@ sub_810A060: @ 810A060 mov r0, sp ldrb r0, [r0, 0x8] lsls r0, 4 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrb r2, [r1] ldrh r3, [r1, 0x2] movs r1, 0x10 @@ -22957,7 +22957,7 @@ sub_810A094: @ 810A094 movs r3, 0x8 ldrsh r0, [r2, r3] mov r9, r1 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs mov r8, r4 cmp r0, 0 bne _0810A0CA @@ -22973,8 +22973,8 @@ _0810A0CA: ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02038437 + ldr r1, =gBankSpriteIds + ldr r0, =gAnimationBankTarget ldrb r0, [r0] adds r0, r1 ldrb r6, [r0] @@ -23007,7 +23007,7 @@ _0810A106: mov r12, r0 cmp r1, 0x1 bne _0810A154 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r3, r6, 4 adds r0, r3, r6 lsls r0, 2 @@ -23028,7 +23028,7 @@ _0810A144: b _0810A16E .pool _0810A154: - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r4, r6, 4 adds r2, r4, r6 lsls r2, 2 @@ -23075,13 +23075,13 @@ _0810A194: sub_810A1A8: @ 810A1A8 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810A1D0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r4, 0x20] ldrh r2, [r0] subs r1, r2 @@ -23089,7 +23089,7 @@ sub_810A1A8: @ 810A1A8 b _0810A1DC .pool _0810A1D0: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -23129,13 +23129,13 @@ _0810A20E: sub_810A214: @ 810A214 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810A23C - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r4, 0x20] ldrh r0, [r0] subs r1, r0 @@ -23143,7 +23143,7 @@ sub_810A214: @ 810A214 b _0810A246 .pool _0810A23C: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0] ldrh r1, [r4, 0x20] adds r0, r1 @@ -23178,7 +23178,7 @@ _0810A26E: sub_810A274: @ 810A274 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -23191,13 +23191,13 @@ sub_810A274: @ 810A274 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810A2C4 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r0, [r5, 0x20] ldrh r1, [r2] subs r0, r1 @@ -23209,7 +23209,7 @@ sub_810A274: @ 810A274 b _0810A2D8 .pool _0810A2C4: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r0] ldrh r2, [r5, 0x20] adds r1, r2 @@ -23243,7 +23243,7 @@ _0810A2D8: sub_810A308: @ 810A308 push {r4-r7,lr} adds r5, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0x1 @@ -23261,11 +23261,11 @@ _0810A324: beq _0810A35C b _0810A380 _0810A32E: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _0810A382 .pool _0810A338: - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r6, 0x2 eors r0, r6 @@ -23282,7 +23282,7 @@ _0810A354: eors r4, r0 b _0810A384 _0810A35C: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] movs r4, 0x2 eors r0, r4 @@ -23290,17 +23290,17 @@ _0810A35C: lsls r0, 24 cmp r0, 0 beq _0810A380 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] eors r4, r0 b _0810A384 .pool _0810A380: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _0810A382: ldrb r4, [r0] _0810A384: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r2, 0xA ldrsh r0, [r0, r2] cmp r0, 0 @@ -23329,8 +23329,8 @@ _0810A3BE: lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r7, =gUnknown_08329F40 - ldr r6, =gUnknown_0203841E + ldr r7, =gSineTable + ldr r6, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r6, r1] lsls r0, 1 @@ -23382,7 +23382,7 @@ _0810A422: lsls r0, r1, 1 adds r0, r7 ldrh r0, [r0] - ldr r3, =gUnknown_02021BC0 + ldr r3, =gOamMatrices lsls r2, 3 adds r2, r3 adds r1, 0x40 @@ -23412,12 +23412,12 @@ sub_810A46C: @ 810A46C adds r4, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs ldrh r0, [r5, 0x6] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] - ldr r6, =gUnknown_02038437 + ldr r6, =gAnimationBankTarget ldrb r0, [r6] movs r1, 0x2 bl sub_80A5C6C @@ -23576,24 +23576,24 @@ sub_810A5BC: @ 810A5BC lsls r0, 24 cmp r0, 0 bne _0810A5D8 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0810A5E0 _0810A5D8: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x2] negs r0, r0 strh r0, [r1, 0x2] _0810A5E0: - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C lsls r0, 24 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4, 0x2] adds r0, r1 @@ -23623,7 +23623,7 @@ _0810A5E0: sub_810A628: @ 810A628 push {r4-r6,lr} adds r5, r0, 0 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x6] strh r0, [r5, 0x2E] movs r2, 0xE @@ -23633,11 +23633,11 @@ sub_810A628: @ 810A628 ands r0, r1 cmp r0, 0 beq _0810A64C - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget b _0810A64E .pool _0810A64C: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker _0810A64E: ldrb r6, [r0] bl sub_80A4DF0 @@ -23645,12 +23645,12 @@ _0810A64E: cmp r0, 0 bne _0810A666 adds r0, r6, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0810A66E _0810A666: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] negs r0, r0 strh r0, [r1] @@ -23659,7 +23659,7 @@ _0810A66E: movs r1, 0x2 bl sub_80A5C6C lsls r0, 24 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs lsrs r0, 24 ldrh r3, [r4] adds r0, r3 @@ -23772,7 +23772,7 @@ sub_810A75C: @ 810A75C ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 - ldr r3, =gUnknown_0203841E + ldr r3, =gBattleAnimArgs movs r5, 0x6 ldrsh r0, [r3, r5] lsls r0, 2 @@ -23807,7 +23807,7 @@ _0810A7B2: orrs r1, r0 strb r1, [r4, 0x3] _0810A7B6: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] ldr r0, =sub_80A64B0 @@ -23827,7 +23827,7 @@ sub_810A7DC: @ 810A7DC adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r6, =gUnknown_02038437 + ldr r6, =gAnimationBankTarget ldrb r0, [r6] movs r1, 0 bl sub_80A5C6C @@ -23837,7 +23837,7 @@ sub_810A7DC: @ 810A7DC lsls r4, 3 adds r4, r1 lsls r0, 24 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r5] adds r0, r1 @@ -24002,7 +24002,7 @@ _0810A952: lsls r2, 16 asrs r2, 16 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 adds r0, r7, 0x1 @@ -24017,7 +24017,7 @@ _0810A970: _0810A978: cmp r7, 0 beq _0810A9AC - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites lsls r3, r5, 4 adds r3, r5 lsls r3, 2 @@ -24100,7 +24100,7 @@ _0810AA12: cmp r0, 0xF bne _0810AA26 adds r0, r3, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0810AA26: pop {r0} bx r0 @@ -24110,7 +24110,7 @@ _0810AA26: sub_810AA2C: @ 810AA2C push {r4-r7,lr} adds r4, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r0] ldrh r2, [r4, 0x20] adds r1, r2 @@ -24128,10 +24128,10 @@ sub_810AA2C: @ 810AA2C adds r3, r4, 0 adds r3, 0x43 ldrb r3, [r3] - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 @@ -24147,7 +24147,7 @@ sub_810AA2C: @ 810AA2C ands r0, r5 orrs r0, r1 strh r0, [r6, 0x4] - ldr r1, =gUnknown_020383FE + ldr r1, =gAnimVisualTaskCount ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] @@ -24215,16 +24215,16 @@ sub_810AAFC: @ 810AAFC lsls r1, 3 ldr r0, =gTasks adds r5, r1, r0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _0810AB28 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker b _0810AB2A .pool _0810AB28: - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget _0810AB2A: ldrb r0, [r4] movs r1, 0x2 @@ -24238,7 +24238,7 @@ _0810AB2A: lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x26] - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r0, [r2, 0x2] movs r1, 0 strh r0, [r5, 0x14] @@ -24291,7 +24291,7 @@ sub_810AB78: @ 810AB78 movs r3, 0x26 ldrsh r2, [r5, r3] movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 @@ -24299,7 +24299,7 @@ sub_810AB78: @ 810AB78 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 ldr r1, =gUnknown_08595858 movs r2, 0x1A @@ -24409,7 +24409,7 @@ sub_810AC8C: @ 810AC8C subs r1, 0x1 strh r1, [r0, 0x16] adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0810ACB4: pop {r4} pop {r0} @@ -24422,7 +24422,7 @@ sub_810ACC0: @ 810ACC0 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r0, =sub_810AC8C str r0, [r4, 0x1C] pop {r4} @@ -24435,16 +24435,16 @@ sub_810ACC0: @ 810ACC0 sub_810ACD8: @ 810ACD8 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _0810ACF4 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker b _0810ACF6 .pool _0810ACF4: - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget _0810ACF6: ldrb r0, [r4] movs r1, 0x2 @@ -24473,16 +24473,16 @@ _0810ACF6: sub_810AD30: @ 810AD30 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _0810AD4C - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker b _0810AD4E .pool _0810AD4C: - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget _0810AD4E: ldrb r0, [r4] movs r1, 0x2 @@ -24496,7 +24496,7 @@ _0810AD4E: lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x2] strh r0, [r5, 0x24] ldrh r0, [r1, 0x4] @@ -24517,8 +24517,8 @@ sub_810AD98: @ 810AD98 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x1 - bl StartObjectRotScalAnim - ldr r4, =gUnknown_02038436 + bl StartSpriteAffineAnim + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -24539,7 +24539,7 @@ sub_810AD98: @ 810AD98 movs r0, 0x10 strh r0, [r5, 0x3C] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -24585,7 +24585,7 @@ _0810AE20: ldrh r1, [r4, 0x20] adds r0, r2, r1 strh r0, [r4, 0x20] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites movs r0, 0x3A ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -24646,7 +24646,7 @@ _0810AE90: lsrs r0, 24 movs r6, 0 strh r0, [r5, 0x26] - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -24654,7 +24654,7 @@ _0810AE90: lsrs r0, 24 strh r0, [r5, 0x24] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0810AECC @@ -24669,7 +24669,7 @@ _0810AECC: ldr r0, =0x0000fffe _0810AED2: strh r0, [r5, 0x22] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r5, r0] lsls r0, r1, 4 @@ -24690,7 +24690,7 @@ _0810AEF0: ble _0810AFC0 movs r0, 0 strh r0, [r5, 0xA] - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites movs r1, 0x26 ldrsh r0, [r5, r1] lsls r2, r0, 4 @@ -24736,7 +24736,7 @@ _0810AF4C: ble _0810AFC0 movs r0, 0 strh r0, [r5, 0xA] - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites movs r2, 0x26 ldrsh r0, [r5, r2] lsls r2, r0, 4 @@ -24769,7 +24769,7 @@ _0810AF92: b _0810AFC0 .pool _0810AFA0: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r5, r0] lsls r0, r1, 4 @@ -24820,9 +24820,9 @@ _0810AFF4: _0810AFFA: b _0810B14E _0810AFFC: - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r2, 0x1 negs r2, r2 @@ -24833,7 +24833,7 @@ _0810AFFC: _0810B012: movs r6, 0 strh r1, [r5, 0xA] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r2, [r0, r1] adds r3, r0, 0 @@ -24878,7 +24878,7 @@ _0810B070: movs r0, 0x78 subs r0, r1 strh r0, [r5, 0xE] - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x3 bl sub_80A5C6C @@ -25000,12 +25000,12 @@ sub_810B154: @ 810B154 movs r3, 0x12 ldrsh r2, [r4, r3] movs r3, 0x23 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _0810B18A - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -25102,9 +25102,9 @@ sub_810B1F0: @ 810B1F0 ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0810B230: pop {r4} pop {r0} @@ -25124,7 +25124,7 @@ sub_810B23C: @ 810B23C beq _0810B280 b _0810B294 _0810B24E: - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -25139,7 +25139,7 @@ _0810B24E: strh r0, [r5, 0x22] adds r0, r5, 0 movs r1, 0x2 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] @@ -25191,7 +25191,7 @@ _0810B2C8: .4byte _0810B404 .4byte _0810B414 _0810B2DC: - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -25206,7 +25206,7 @@ _0810B2DC: strh r0, [r5, 0x16] movs r0, 0x4 strh r0, [r5, 0x18] - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] movs r1, 0x2 bl sub_80A5C6C @@ -25372,12 +25372,12 @@ sub_810B430: @ 810B430 movs r3, 0x16 ldrsh r2, [r4, r3] movs r3, 0x23 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _0810B49C - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -25433,7 +25433,7 @@ _0810B49C: lsls r1, 24 asrs r1, 24 movs r0, 0x76 - bl audio_play_and_stuff + bl PlaySE12WithPanning _0810B4BE: movs r0, 0x12 ldrsh r3, [r4, r0] @@ -25506,7 +25506,7 @@ sub_810B51C: @ 810B51C subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0810B552: pop {r4} pop {r0} @@ -25539,7 +25539,7 @@ _0810B584: beq _0810B600 b _0810B60E _0810B58A: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] movs r1, 0x1 bl sub_80A5C6C @@ -25561,7 +25561,7 @@ _0810B5A4: bgt _0810B5A4 strh r1, [r5, 0x24] _0810B5B4: - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -25624,12 +25624,12 @@ sub_810B614: @ 810B614 ldrh r3, [r4, 0x20] lsls r3, 24 lsrs r3, 24 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _0810B658 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 @@ -25693,7 +25693,7 @@ sub_810B684: @ 810B684 subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0810B6B8: pop {r4} pop {r0} @@ -25721,7 +25721,7 @@ sub_810B6C4: @ 810B6C4 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -25734,7 +25734,7 @@ sub_810B6C4: @ 810B6C4 lsls r0, 24 lsrs r0, 24 mov r8, r0 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -25746,7 +25746,7 @@ sub_810B6C4: @ 810B6C4 bl sub_80A5C6C lsls r0, 24 lsrs r6, r0, 24 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x8] strh r0, [r5, 0x2E] ldrh r0, [r1] @@ -25823,7 +25823,7 @@ _0810B79E: movs r2, 0x98 lsls r2, 1 mov r12, r2 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs mov r10, r1 cmp r0, r12 bhi _0810B80A @@ -25945,7 +25945,7 @@ _0810B8A6: sub_810B8AC: @ 810B8AC push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0] strh r0, [r4, 0x2E] movs r0, 0x3C @@ -25976,20 +25976,20 @@ sub_810B8EC: @ 810B8EC adds r4, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] movs r1, 0x2 bl sub_80A5C6C lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810B92C - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r4, 0x32] ldrh r0, [r0, 0x4] subs r1, r0 @@ -25997,18 +25997,18 @@ sub_810B8EC: @ 810B8EC b _0810B936 .pool _0810B92C: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x4] ldrh r1, [r4, 0x32] adds r0, r1 strh r0, [r4, 0x32] _0810B936: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] movs r1, 0x3 bl sub_80A5C6C lsls r0, 24 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs lsrs r0, 24 ldrh r2, [r1, 0x6] adds r0, r2 @@ -26030,7 +26030,7 @@ _0810B936: sub_810B974: @ 810B974 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs movs r1, 0x4 ldrsh r0, [r5, r1] cmp r0, 0 @@ -26041,7 +26041,7 @@ sub_810B974: @ 810B974 b _0810B9C6 .pool _0810B990: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 @@ -26049,9 +26049,9 @@ _0810B990: adds r3, 0x22 movs r1, 0x1 bl sub_80A8924 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810B9B6 @@ -26119,7 +26119,7 @@ sub_810BA24: @ 810BA24 adds r5, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r6, =gUnknown_0203841E + ldr r6, =gBattleAnimArgs ldrh r0, [r6, 0x8] strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] @@ -26130,7 +26130,7 @@ sub_810BA24: @ 810BA24 ldrsh r0, [r6, r1] cmp r0, 0 bne _0810BA74 - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -26148,7 +26148,7 @@ sub_810BA24: @ 810BA24 b _0810BA86 .pool _0810BA74: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x32 @@ -26157,13 +26157,13 @@ _0810BA74: movs r1, 0x1 bl sub_80A8924 _0810BA86: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810BAAC - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r5, 0x32] ldrh r0, [r0, 0x4] subs r1, r0 @@ -26171,7 +26171,7 @@ _0810BA86: b _0810BAB6 .pool _0810BAAC: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x4] ldrh r2, [r5, 0x32] adds r0, r2 @@ -26277,9 +26277,9 @@ sub_810BB60: @ 810BB60 strh r5, [r4, 0x24] movs r0, 0x80 strh r0, [r4, 0x2E] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 ldr r1, =0x0000ffec cmp r0, 0 @@ -26312,9 +26312,9 @@ _0810BB90: sub_810BBC8: @ 810BBC8 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 ldr r1, =0x0000ffec cmp r0, 0 @@ -26420,7 +26420,7 @@ sub_810BC94: @ 810BC94 adds r5, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x8] strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] @@ -26431,7 +26431,7 @@ sub_810BC94: @ 810BC94 ldrsh r0, [r1, r2] cmp r0, 0 bne _0810BCE0 - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -26447,7 +26447,7 @@ sub_810BC94: @ 810BC94 b _0810BCF2 .pool _0810BCE0: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x32 @@ -26456,13 +26456,13 @@ _0810BCE0: movs r1, 0x1 bl sub_80A8924 _0810BCF2: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810BD1C - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r5, 0x32] ldrh r2, [r0, 0x4] subs r1, r2 @@ -26471,7 +26471,7 @@ _0810BCF2: b _0810BD26 .pool _0810BD1C: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x4] ldrh r2, [r5, 0x32] adds r0, r2 @@ -26541,7 +26541,7 @@ _0810BD8E: strh r0, [r5, 0x22] strh r1, [r5, 0x26] strh r1, [r5, 0x24] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldr r6, =sub_810BDD8 mov r3, sp adds r2, r7, 0 @@ -26634,7 +26634,7 @@ sub_810BE48: @ 810BE48 ldrsh r0, [r4, r1] cmp r0, 0 bne _0810BEB4 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs movs r1, 0x4 ldrsh r0, [r5, r1] cmp r0, 0 @@ -26645,7 +26645,7 @@ sub_810BE48: @ 810BE48 b _0810BEA2 .pool _0810BE6C: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 @@ -26653,9 +26653,9 @@ _0810BE6C: adds r3, 0x22 movs r1, 0 bl sub_80A8924 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810BE92 @@ -26697,7 +26697,7 @@ _0810BEC8: sub_810BED0: @ 810BED0 push {r4-r6,lr} adds r5, r0, 0 - ldr r6, =gUnknown_0203841E + ldr r6, =gBattleAnimArgs movs r1, 0x8 ldrsh r0, [r6, r1] cmp r0, 0 @@ -26712,7 +26712,7 @@ sub_810BED0: @ 810BED0 b _0810BF32 .pool _0810BEF4: - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] adds r2, r5, 0 adds r2, 0x20 @@ -26721,7 +26721,7 @@ _0810BEF4: movs r1, 0 bl sub_80A8924 ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810BF20 @@ -26736,13 +26736,13 @@ _0810BF20: adds r0, r1 _0810BF26: strh r0, [r5, 0x20] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x2] ldrh r1, [r5, 0x22] adds r0, r1 strh r0, [r5, 0x22] _0810BF32: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _0810BF90 .pool _0810BF40: @@ -26755,7 +26755,7 @@ _0810BF40: bl sub_80A6980 b _0810BF8E _0810BF52: - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] adds r2, r5, 0 adds r2, 0x20 @@ -26764,7 +26764,7 @@ _0810BF52: movs r1, 0 bl sub_80A8924 ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810BF7C @@ -26779,17 +26779,17 @@ _0810BF7C: adds r0, r1 _0810BF82: strh r0, [r5, 0x20] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x2] ldrh r1, [r5, 0x22] adds r0, r1 strh r0, [r5, 0x22] _0810BF8E: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _0810BF90: ldrb r0, [r0] strh r0, [r5, 0x3C] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0xA ldrsh r0, [r0, r1] cmp r0, 0 @@ -26806,9 +26806,9 @@ _0810BFB4: movs r0, 0x40 _0810BFB6: strh r0, [r5, 0x3A] - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0810BFCC @@ -26816,7 +26816,7 @@ _0810BFB6: adds r0, 0x8 strh r0, [r5, 0x22] _0810BFCC: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x6] strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] @@ -27179,7 +27179,7 @@ _0810C2DA: sub_810C2F0: @ 810C2F0 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -27453,16 +27453,16 @@ sub_810C560: @ 810C560 mov r7, r8 push {r7} adds r5, r0, 0 - ldr r6, =gUnknown_0203841E + ldr r6, =gBattleAnimArgs ldrh r0, [r6] strh r0, [r5, 0x2E] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker mov r8, r0 ldrb r0, [r0] movs r1, 0x2 bl sub_80A5C6C adds r4, r0, 0 - ldr r7, =gUnknown_02038437 + ldr r7, =gAnimationBankTarget ldrb r0, [r7] movs r1, 0x2 bl sub_80A5C6C @@ -27474,7 +27474,7 @@ sub_810C560: @ 810C560 lsls r0, 8 strh r0, [r5, 0x3C] _0810C594: - ldr r3, =gUnknown_02024076 + ldr r3, =gBanksBySide ldrb r0, [r7] adds r0, r3 ldrb r1, [r0] @@ -27506,7 +27506,7 @@ _0810C594: bne _0810C5F0 movs r0, 0x1 bl obj_id_for_side_relative_to_move - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -27523,7 +27523,7 @@ _0810C5F0: movs r0, 0x1 strh r0, [r5, 0x3A] _0810C5F4: - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -27536,7 +27536,7 @@ _0810C5F4: lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r6, =gUnknown_0203841E + ldr r6, =gBattleAnimArgs movs r1, 0xE ldrsh r0, [r6, r1] cmp r0, 0 @@ -27545,7 +27545,7 @@ _0810C5F4: ldrh r1, [r5, 0x20] adds r0, r1 strh r0, [r5, 0x30] - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -27567,7 +27567,7 @@ _0810C65C: ldrh r1, [r5, 0x20] adds r0, r1 strh r0, [r5, 0x30] - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -27643,7 +27643,7 @@ _0810C6F4: _0810C6F6: adds r0, r4, 0 bl sub_80A6F3C - ldr r1, =gUnknown_08329F40 + ldr r1, =gSineTable movs r2, 0x38 ldrsh r0, [r4, r2] lsls r0, 1 @@ -27676,7 +27676,7 @@ _0810C728: _0810C736: movs r5, 0x50 strh r5, [r4, 0x2E] - ldr r6, =gUnknown_02038437 + ldr r6, =gAnimationBankTarget ldrb r0, [r6] movs r1, 0 bl sub_80A5C6C @@ -27699,7 +27699,7 @@ _0810C736: lsls r0, 24 cmp r0, 0 bne _0810C78C - ldr r1, =gUnknown_02024076 + ldr r1, =gBanksBySide ldrb r0, [r6] adds r0, r1 ldrb r1, [r0] @@ -27716,7 +27716,7 @@ _0810C78C: _0810C78E: movs r0, 0 strh r0, [r4, 0x26] - ldr r1, =gUnknown_08329F40 + ldr r1, =gSineTable movs r2, 0x38 ldrsh r0, [r4, r2] lsls r0, 1 @@ -27737,7 +27737,7 @@ _0810C78E: _0810C7BC: adds r0, r4, 0 bl sub_80A6F3C - ldr r1, =gUnknown_08329F40 + ldr r1, =gSineTable movs r2, 0x38 ldrsh r0, [r4, r2] lsls r0, 1 @@ -27843,8 +27843,8 @@ _0810C85A: lsls r0, 24 cmp r0, 0 bne _0810C8B4 - ldr r1, =gUnknown_02024076 - ldr r0, =gUnknown_02038437 + ldr r1, =gBanksBySide + ldr r0, =gAnimationBankTarget ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -27886,7 +27886,7 @@ _0810C8D0: ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix ldrb r1, [r4, 0x1] movs r0, 0x4 negs r0, r0 @@ -27894,8 +27894,8 @@ _0810C8D0: strb r0, [r4, 0x1] _0810C8FE: adds r0, r4, 0 - bl RemoveObjectAndFreeTiles - ldr r1, =gUnknown_020383FE + bl DestroySprite + ldr r1, =gAnimVisualTaskCount ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] @@ -28050,7 +28050,7 @@ sub_810C9E4: @ 810C9E4 ldrh r0, [r4, 0x2] lsls r0, 20 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 @@ -28154,7 +28154,7 @@ _0810CAE2: movs r2, 0x8 negs r2, r2 movs r3, 0x12 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x40 @@ -28162,11 +28162,11 @@ _0810CAE2: lsls r4, r5, 4 adds r4, r5 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 adds r0, r4, 0 mov r1, r9 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim mov r0, sp ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] @@ -28235,13 +28235,13 @@ _0810CB82: adds r3, r4, 0 adds r3, 0x43 ldrb r3, [r3] - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x2E] cmp r0, 0x40 beq _0810CBE6 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -28272,9 +28272,9 @@ _0810CBE6: ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite b _0810CC32 .pool _0810CC04: @@ -28296,9 +28296,9 @@ _0810CC04: ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0810CC32: pop {r4} pop {r0} @@ -28335,9 +28335,9 @@ sub_810CC3C: @ 810CC3C ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0810CC7C: pop {r4} pop {r0} @@ -28349,7 +28349,7 @@ _0810CC7C: unc_080B06FC: @ 810CC88 push {r4-r6,lr} adds r5, r0, 0 - ldr r0, =gUnknown_02038400 + ldr r0, =gDisableStructMoveAnim ldr r0, [r0] ldrb r1, [r0, 0x11] lsrs r0, r1, 4 @@ -28364,16 +28364,16 @@ unc_080B06FC: @ 810CC88 movs r1, 0x4 _0810CCA6: adds r0, r5, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim adds r0, r5, 0 movs r1, 0x1 bl sub_80A69CC - ldr r6, =gUnknown_0203841E + ldr r6, =gBattleAnimArgs ldrh r0, [r6, 0x8] strh r0, [r5, 0x2E] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810CCCE @@ -28381,7 +28381,7 @@ _0810CCA6: negs r0, r0 strh r0, [r6, 0x4] _0810CCCE: - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -28420,7 +28420,7 @@ sub_810CD1C: @ 810CD1C beq _0810CD3E adds r0, r4, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r0, =sub_80A67D8 str r0, [r4, 0x1C] ldr r1, =move_anim_8072740 @@ -28527,11 +28527,11 @@ sub_810CDFC: @ 810CDFC push {lr} lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrb r3, [r1] lsls r3, 1 adds r3, r1 - ldr r1, =gUnknown_02038400 + ldr r1, =gDisableStructMoveAnim ldr r1, [r1] ldrb r1, [r1, 0x11] lsrs r2, r1, 4 @@ -28550,7 +28550,7 @@ sub_810CDFC: @ 810CDFC unc_080B08A0: @ 810CE2C push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs movs r0, 0 ldrsh r1, [r5, r0] adds r0, r4, 0 @@ -28576,14 +28576,14 @@ unc_080B08A0: @ 810CE2C sub_810CE68: @ 810CE68 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0x1 bne _0810CE90 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810CE90 @@ -28594,10 +28594,10 @@ sub_810CE68: @ 810CE68 negs r0, r0 strh r0, [r4, 0x6] _0810CE90: - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrb r1, [r4, 0xC] adds r0, r5, 0 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0 strh r0, [r4, 0xC] adds r0, r5, 0 @@ -28616,7 +28616,7 @@ sub_810CEB4: @ 810CEB4 lsls r0, 24 cmp r0, 0 beq _0810CED0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r0, 0x2] negs r1, r1 strh r1, [r0, 0x2] @@ -28636,9 +28636,9 @@ _0810CED0: sub_810CEE0: @ 810CEE0 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrb r1, [r4, 0x8] - bl StartObjectImageAnim + bl StartSpriteAnim movs r1, 0x6 ldrsh r0, [r4, r1] cmp r0, 0 @@ -28653,7 +28653,7 @@ _0810CF04: movs r1, 0x1 bl sub_80A6980 _0810CF0C: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r5, 0x2E] ldr r0, =sub_80A64B0 @@ -28674,17 +28674,17 @@ sub_810CF30: @ 810CF30 mov r6, r8 push {r6,r7} adds r5, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r2, 0 ldrsh r1, [r0, r2] mov r9, r0 cmp r1, 0 bne _0810CF54 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _0810CF56 .pool _0810CF54: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _0810CF56: ldrb r0, [r0] mov r8, r0 @@ -28702,7 +28702,7 @@ _0810CF56: _0810CF74: ldrb r1, [r4, 0x4] adds r0, r5, 0 - bl StartObjectImageAnim + bl StartSpriteAnim mov r0, r8 movs r1, 0x2 bl sub_80A5C6C @@ -28771,7 +28771,7 @@ _0810D000: negs r0, r0 lsrs r4, r0, 16 _0810D012: - ldr r0, =gUnknown_02024076 + ldr r0, =gBanksBySide add r0, r8 ldrb r1, [r0] adds r0, r7, 0 @@ -28807,7 +28807,7 @@ _0810D028: adds r3, 0x1 lsls r3, 24 lsrs r3, 24 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x3C] @@ -28818,10 +28818,10 @@ _0810D028: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 movs r1, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim movs r2, 0x3C ldrsh r1, [r5, r2] lsls r0, r1, 4 @@ -28829,7 +28829,7 @@ _0810D028: lsls r0, 2 adds r4, 0x1C adds r0, r4 - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy str r1, [r0] _0810D08C: ldr r0, =sub_810D0B8 @@ -28856,7 +28856,7 @@ sub_810D0B8: @ 810D0B8 ldrsh r0, [r5, r1] cmp r0, 0x40 beq _0810D0F4 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 @@ -28865,14 +28865,14 @@ sub_810D0B8: @ 810D0B8 ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix movs r0, 0x3C ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0810D0F4: adds r0, r5, 0 bl move_anim_8072740 @@ -28895,7 +28895,7 @@ sub_810D10C: @ 810D10C bl sub_80A6980 movs r0, 0x1E strh r0, [r4, 0x2E] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 @@ -28974,21 +28974,21 @@ _0810D1A4: sub_810D1B4: @ 810D1B4 push {r4-r6,lr} adds r6, r0, 0 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r1, [r0] movs r0, 0x2 - ldr r2, =gUnknown_02038437 + ldr r2, =gAnimationBankTarget eors r0, r1 ldrb r1, [r2] cmp r0, r1 bne _0810D1E0 ldrb r0, [r2] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0810D1E0 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r2, 0 ldrsh r0, [r1, r2] negs r0, r0 @@ -28997,18 +28997,18 @@ _0810D1E0: adds r0, r6, 0 movs r1, 0x1 bl sub_80A6980 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810D1FE - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _0810D1FE: - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrh r0, [r4, 0x6] movs r5, 0 strh r0, [r6, 0x2E] @@ -29072,10 +29072,10 @@ sub_810D278: @ 810D278 adds r4, r0, 0 movs r1, 0x1 bl sub_80A6980 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs ldrb r1, [r5, 0x4] adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldrh r0, [r5, 0x6] strh r0, [r4, 0x2E] ldr r0, =sub_80A64B0 @@ -29094,7 +29094,7 @@ sub_810D2B0: @ 810D2B0 push {r4,lr} adds r4, r0, 0 movs r1, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] @@ -29120,7 +29120,7 @@ sub_810D2E4: @ 810D2E4 adds r4, r0, 0 movs r1, 0x1 bl sub_80A6980 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] ldr r0, =sub_810D308 @@ -29146,7 +29146,7 @@ sub_810D308: @ 810D308 bne _0810D34C movs r0, 0x6 strh r0, [r5, 0x2E] - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -29196,7 +29196,7 @@ sub_810D37C: @ 810D37C adds r0, r4, 0 movs r1, 0x1 bl sub_80A6980 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x4] strh r0, [r4, 0x30] ldrh r0, [r1, 0x6] @@ -29262,16 +29262,16 @@ _0810D404: sub_810D40C: @ 810D40C push {r4,r5,lr} adds r5, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _0810D428 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker b _0810D42A .pool _0810D428: - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget _0810D42A: ldrb r0, [r4] movs r1, 0 @@ -29285,7 +29285,7 @@ _0810D42A: lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x2] ldrh r2, [r5, 0x20] adds r0, r2 @@ -29381,12 +29381,12 @@ _0810D4EC: sub_810D4F4: @ 810D4F4 push {r4-r6,lr} adds r5, r0, 0 - ldr r6, =gUnknown_0203841E + ldr r6, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _0810D520 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -29397,7 +29397,7 @@ sub_810D4F4: @ 810D4F4 b _0810D532 .pool _0810D520: - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -29418,7 +29418,7 @@ _0810D532: ldrh r2, [r5, 0x4] lsls r1, r2, 22 lsrs r1, 22 - ldr r3, =gUnknown_0203841E + ldr r3, =gBattleAnimArgs movs r4, 0x2 ldrsh r0, [r3, r4] lsls r0, 4 @@ -29515,12 +29515,12 @@ _0810D604: sub_810D608: @ 810D608 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _0810D664 - ldr r4, =gUnknown_0202420B + ldr r4, =gBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -29533,7 +29533,7 @@ sub_810D608: @ 810D608 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] bl sub_80A8328 movs r1, 0x3 @@ -29545,11 +29545,11 @@ sub_810D608: @ 810D608 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget b _0810D680 .pool _0810D664: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] bl sub_80A8328 movs r1, 0x3 @@ -29561,7 +29561,7 @@ _0810D664: ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker _0810D680: ldrb r0, [r0] strh r0, [r5, 0x3C] @@ -29633,7 +29633,7 @@ _0810D704: sub_810D714: @ 810D714 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrh r0, [r4] strh r0, [r5, 0x20] movs r2, 0x78 @@ -29712,7 +29712,7 @@ _0810D7BA: strh r0, [r7, 0x2E] b _0810D818 _0810D7C2: - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -29725,7 +29725,7 @@ _0810D7C2: adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r2, =gUnknown_02038437 + ldr r2, =gAnimationBankTarget mov r8, r2 ldrb r0, [r2] movs r1, 0x2 @@ -29803,12 +29803,12 @@ _0810D870: sub_810D874: @ 810D874 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _0810D8B8 - ldr r4, =gUnknown_0202420B + ldr r4, =gBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -29821,15 +29821,15 @@ sub_810D874: @ 810D874 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r4, [r0] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _0810D8BE .pool _0810D8B8: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r4, [r0] - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _0810D8BE: ldrb r0, [r0] bl sub_80A8328 @@ -29857,7 +29857,7 @@ _0810D8BE: .pool _0810D8F8: adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0810D918 @@ -29929,7 +29929,7 @@ _0810D976: sub_810D984: @ 810D984 push {r4-r6,lr} adds r5, r0, 0 - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -29942,7 +29942,7 @@ sub_810D984: @ 810D984 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x6] strh r0, [r5, 0x30] ldrh r0, [r1] @@ -29954,7 +29954,7 @@ sub_810D984: @ 810D984 ldr r0, =gUnknown_02038432 ldrb r6, [r0] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0810D9CE @@ -29977,7 +29977,7 @@ _0810D9E2: lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldrh r0, [r5, 0x32] strh r0, [r5, 0x24] ldrh r0, [r5, 0x34] @@ -29994,7 +29994,7 @@ _0810D9E2: sub_810DA10: @ 810DA10 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 @@ -30015,18 +30015,18 @@ _0810DA34: beq _0810DA48 adds r0, r4, 0 movs r1, 0x2 - bl StartObjectImageAnim + bl StartSpriteAnim b _0810DA5E _0810DA48: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810DA5E adds r0, r4, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim _0810DA5E: ldr r0, =sub_80A67D8 str r0, [r4, 0x1C] @@ -30094,7 +30094,7 @@ sub_810DABC: @ 810DABC bne _0810DB0E movs r0, 0 bl sub_80A6DAC - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0] strh r0, [r4, 0x18] b _0810DB06 @@ -30128,9 +30128,9 @@ _0810DB1A: ldrh r1, [r4, 0x1C] adds r0, r1 strh r0, [r4, 0x1C] - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0810DB50 @@ -30167,7 +30167,7 @@ _0810DB60: strh r1, [r4, 0x1A] ands r0, r2 strh r0, [r4, 0x1C] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r2, 0xE ldrsh r1, [r0, r2] movs r0, 0x1 @@ -30191,21 +30191,21 @@ _0810DB98: sub_810DBAC: @ 810DBAC push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs movs r1, 0x6 ldrsh r0, [r4, r1] cmp r0, 0 bne _0810DBC2 adds r0, r5, 0 movs r1, 0x2 - bl StartObjectImageAnim + bl StartSpriteAnim _0810DBC2: adds r0, r5, 0 movs r1, 0x1 bl sub_80A69CC ldrh r0, [r4, 0x4] strh r0, [r5, 0x2E] - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -30251,19 +30251,19 @@ sub_810DC2C: @ 810DC2C push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs movs r1, 0x6 ldrsh r0, [r5, r1] cmp r0, 0 bne _0810DC44 adds r0, r4, 0 movs r1, 0x2 - bl StartObjectImageAnim + bl StartSpriteAnim _0810DC44: adds r0, r4, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] mov r6, sp adds r6, 0x2 @@ -30271,9 +30271,9 @@ _0810DC44: mov r2, sp adds r3, r6, 0 bl sub_80A8924 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810DC72 @@ -30325,7 +30325,7 @@ _0810DCC8: sub_810DCD0: @ 810DCD0 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs ldrh r0, [r5, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] @@ -30389,7 +30389,7 @@ _0810DD4A: sub_810DD50: @ 810DD50 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 @@ -30397,18 +30397,18 @@ sub_810DD50: @ 810DD50 adds r3, 0x22 movs r1, 0x1 bl sub_80A8924 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810DD7C - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] negs r0, r0 strh r0, [r1] _0810DD7C: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r2, [r0] ldrh r1, [r4, 0x20] adds r2, r1 @@ -30439,7 +30439,7 @@ _0810DD7C: sub_810DDC4: @ 810DDC4 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs movs r1, 0x4 ldrsh r0, [r5, r1] cmp r0, 0 @@ -30450,7 +30450,7 @@ sub_810DDC4: @ 810DDC4 b _0810DE16 .pool _0810DDE0: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 @@ -30458,9 +30458,9 @@ _0810DDE0: adds r3, 0x22 movs r1, 0x1 bl sub_80A8924 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810DE06 @@ -30586,13 +30586,13 @@ sub_810DED8: @ 810DED8 adds r4, r0 lsls r4, 3 adds r4, r1 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x2] strh r0, [r4, 0x8] ldrh r0, [r1] strh r0, [r4, 0xA] ldr r0, =0x00002719 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xC] @@ -30680,23 +30680,23 @@ sub_810DFA8: @ 810DFA8 adds r6, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810DFC8 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _0810DFC8: - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] ldrh r0, [r6, 0x20] strh r0, [r6, 0x30] - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -30748,13 +30748,13 @@ _0810E03C: sub_810E044: @ 810E044 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810E070 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] negs r0, r0 strh r0, [r1] @@ -30772,7 +30772,7 @@ _0810E070: lsls r0, 24 cmp r0, 0 beq _0810E088 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r0, 0x2] negs r1, r1 strh r1, [r0, 0x2] @@ -30790,7 +30790,7 @@ _0810E088: movs r1, 0x3 bl sub_80A5C6C lsls r0, 24 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r1, [r2] ldrh r3, [r5, 0x20] adds r1, r3 @@ -30805,7 +30805,7 @@ _0810E088: ldrsh r0, [r2, r3] cmp r0, 0 bne _0810E0EC - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -30821,7 +30821,7 @@ _0810E088: b _0810E0FE .pool _0810E0EC: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x32 @@ -30830,7 +30830,7 @@ _0810E0EC: movs r1, 0x1 bl sub_80A8924 _0810E0FE: - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrh r0, [r4, 0x4] ldrh r1, [r5, 0x32] adds r0, r1 @@ -30846,7 +30846,7 @@ _0810E0FE: bl oamt_set_x3A_32 ldrb r1, [r4, 0xA] adds r0, r5, 0 - bl SeekObjectImageAnim + bl SeekSpriteAnim pop {r4,r5} pop {r0} bx r0 @@ -30859,7 +30859,7 @@ sub_810E13C: @ 810E13C adds r4, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x6] @@ -30868,7 +30868,7 @@ sub_810E13C: @ 810E13C str r0, [r4, 0x1C] movs r0, 0 bl obj_id_for_side_relative_to_move - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -30929,9 +30929,9 @@ _0810E1C2: sub_810E1C8: @ 810E1C8 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810E1F8 @@ -30942,7 +30942,7 @@ sub_810E1C8: @ 810E1C8 strh r0, [r5, 0x22] adds r0, r5, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim b _0810E1FE .pool _0810E1F8: @@ -30950,12 +30950,12 @@ _0810E1F8: strh r0, [r5, 0x20] strh r0, [r5, 0x22] _0810E1FE: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0] strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -31022,7 +31022,7 @@ _0810E274: _0810E296: movs r0, 0 bl obj_id_for_side_relative_to_move - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -31064,7 +31064,7 @@ sub_810E2C8: @ 810E2C8 ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix ldrb r1, [r4, 0x1] movs r0, 0x4 negs r0, r0 @@ -31072,8 +31072,8 @@ sub_810E2C8: @ 810E2C8 strb r0, [r4, 0x1] _0810E2FA: adds r0, r4, 0 - bl RemoveObjectAndFreeTiles - ldr r1, =gUnknown_020383FE + bl DestroySprite + ldr r1, =gAnimVisualTaskCount ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] @@ -31092,26 +31092,26 @@ sub_810E314: @ 810E314 adds r7, r0, 0 adds r5, r7, 0 adds r5, 0x2E - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r0, 0xE] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _0810E33C - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _0810E33E .pool _0810E33C: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _0810E33E: ldrb r6, [r0] adds r0, r6, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0810E354 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] negs r0, r0 strh r0, [r1] @@ -31120,7 +31120,7 @@ _0810E354: movs r1, 0 bl sub_80A5C6C lsls r0, 24 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4] adds r0, r1 @@ -31290,7 +31290,7 @@ _0810E4AA: ands r0, r2 orrs r0, r1 strb r0, [r5] - ldr r3, =gUnknown_08329F40 + ldr r3, =gSineTable ldrh r0, [r5, 0x2] lsls r0, 1 adds r0, r3 @@ -31314,7 +31314,7 @@ _0810E4AA: lsls r1, r0, 1 adds r1, r3 ldrh r4, [r1] - ldr r1, =gUnknown_02021BC0 + ldr r1, =gOamMatrices lsls r2, 3 adds r2, r1 adds r0, 0x40 @@ -31951,7 +31951,7 @@ _0810E97C: adds r0, 0xC adds r0, r1 ldrb r1, [r0] - ldr r3, =gUnknown_08329F40 + ldr r3, =gSineTable mov r2, r12 lsls r0, r2, 1 adds r0, r3 @@ -31974,7 +31974,7 @@ _0810E97C: lsls r1, r0, 1 adds r1, r3 ldrh r6, [r1] - ldr r1, =gUnknown_02021BC0 + ldr r1, =gOamMatrices lsls r2, 3 adds r2, r1 adds r0, 0x40 @@ -32049,7 +32049,7 @@ _0810EA36: sub_810EA4C: @ 810EA4C push {r4,r5,lr} adds r4, r0, 0 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] bl sub_80A8328 movs r1, 0x3 @@ -32061,7 +32061,7 @@ sub_810EA4C: @ 810EA4C ands r0, r2 orrs r0, r1 strb r0, [r4, 0x5] - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -32086,7 +32086,7 @@ sub_810EA4C: @ 810EA4C sub_810EAA0: @ 810EAA0 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 @@ -32101,14 +32101,14 @@ _0810EABC: movs r1, 0 bl sub_80A6980 _0810EAC4: - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs movs r2, 0x4 ldrsh r0, [r4, r2] cmp r0, 0 bne _0810EADC - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810EAF2 @@ -32117,9 +32117,9 @@ _0810EADC: ldrsh r0, [r4, r1] cmp r0, 0x1 bne _0810EAF8 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0810EAF8 @@ -32128,10 +32128,10 @@ _0810EAF2: adds r0, 0x8 strh r0, [r5, 0x20] _0810EAF8: - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrb r1, [r4, 0x8] adds r0, r5, 0 - bl SeekObjectImageAnim + bl SeekSpriteAnim ldrh r0, [r5, 0x20] subs r0, 0x20 strh r0, [r5, 0x20] @@ -32177,7 +32177,7 @@ sub_810EB40: @ 810EB40 strh r1, [r4, 0x2E] strh r1, [r4, 0x24] adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim _0810EB6A: ldrh r0, [r4, 0x3C] subs r0, 0x1 @@ -32214,7 +32214,7 @@ sub_810EB88: @ 810EB88 ands r0, r1 cmp r0, 0 bne _0810EC02 - ldr r1, =gUnknown_020383FE + ldr r1, =gAnimVisualTaskCount ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] @@ -32224,7 +32224,7 @@ sub_810EB88: @ 810EB88 negs r5, r5 adds r1, r5, 0 bl Sin - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs strh r0, [r4] movs r1, 0x8 ldrsh r0, [r7, r1] @@ -32237,7 +32237,7 @@ sub_810EB88: @ 810EB88 strh r0, [r4, 0x6] ldr r0, =gUnknown_085973E8 mov r8, r0 - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -32253,7 +32253,7 @@ sub_810EB88: @ 810EB88 mov r0, r8 adds r1, r4, 0 movs r3, 0x3 - bl AddObjectAndAnimateForOneFrame + bl CreateSpriteAndAnimate _0810EC02: ldrh r0, [r7, 0x8] adds r0, 0x8 @@ -32290,7 +32290,7 @@ _0810EC46: bl sub_80A69CC movs r0, 0 bl obj_id_for_side_relative_to_move - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -32341,7 +32341,7 @@ _0810ECAA: beq _0810ECE0 b _0810ED1E _0810ECB0: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] movs r1, 0x1 bl sub_80A5C6C @@ -32380,7 +32380,7 @@ _0810ECE0: bge _0810ED1E movs r0, 0 bl obj_id_for_side_relative_to_move - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -32408,7 +32408,7 @@ sub_810ED28: @ 810ED28 adds r4, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x6] @@ -32417,7 +32417,7 @@ sub_810ED28: @ 810ED28 str r0, [r4, 0x1C] movs r0, 0 bl obj_id_for_side_relative_to_move - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -32540,16 +32540,16 @@ sub_810EE14: @ 810EE14 beq _0810EE80 b _0810EEEC _0810EE28: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 bne _0810EE40 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker b _0810EE42 .pool _0810EE40: - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget _0810EE42: ldrb r0, [r4] movs r1, 0 @@ -32607,7 +32607,7 @@ _0810EE92: lsrs r1, 27 movs r0, 0xF4 lsls r0, 6 - ldr r2, =gUnknown_02021BC0 + ldr r2, =gOamMatrices lsls r1, 3 adds r1, r2 movs r2, 0x6 @@ -32682,7 +32682,7 @@ _0810EF3C: subs r0, r1 _0810EF44: strh r0, [r5, 0x30] - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r0, [r2] strh r0, [r5, 0x32] lsls r0, 16 @@ -32700,11 +32700,11 @@ _0810EF60: ldrsh r0, [r2, r1] cmp r0, 0 bne _0810EF74 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker b _0810EF76 .pool _0810EF74: - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget _0810EF76: ldrb r0, [r4] movs r1, 0 @@ -32861,7 +32861,7 @@ sub_810F084: @ 810F084 mov r8, r0 ldrh r4, [r0, 0x20] ldrh r5, [r0, 0x22] - ldr r6, =gUnknown_02038436 + ldr r6, =gAnimationBankAttacker ldrb r0, [r6] movs r1, 0x2 bl sub_80A5C6C @@ -32983,7 +32983,7 @@ sub_810F184: @ 810F184 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -32992,7 +32992,7 @@ sub_810F184: @ 810F184 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -33008,7 +33008,7 @@ _0810F1BC: bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -33038,9 +33038,9 @@ sub_810F1EC: @ 810F1EC lsls r0, 24 lsrs r0, 24 mov r8, r0 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810F212 @@ -33064,12 +33064,12 @@ _0810F212: bne _0810F2B8 _0810F22E: movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r4, r0, 24 adds r7, r4, 0 adds r0, r4, 0 - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 movs r1, 0x1 @@ -33109,9 +33109,9 @@ _0810F284: lsls r0, 24 cmp r0, 0 beq _0810F2B8 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0810F2B0 @@ -33126,13 +33126,13 @@ _0810F2B0: movs r0, 0x28 b _0810F2F2 _0810F2B8: - ldr r6, =gUnknown_02038436 + ldr r6, =gAnimationBankAttacker ldrb r0, [r6] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810F2CE - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] negs r0, r0 strh r0, [r1] @@ -33141,7 +33141,7 @@ _0810F2CE: movs r1, 0 bl sub_80A5C6C lsls r0, 24 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4] adds r0, r1 @@ -33155,9 +33155,9 @@ _0810F2CE: adds r0, r4 _0810F2F2: strh r0, [r5, 0x22] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x4] - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 movs r1, 0x80 @@ -33193,7 +33193,7 @@ sub_810F340: @ 810F340 push {r4,r5,lr} adds r5, r0, 0 movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r4, r0, 24 movs r1, 0x3C @@ -33209,8 +33209,8 @@ _0810F35C: lsls r0, 24 cmp r0, 0 beq _0810F382 - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 + ldr r2, =gSprites + ldr r0, =gBankSpriteIds adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -33230,8 +33230,8 @@ _0810F382: lsls r0, 24 cmp r0, 0 beq _0810F3AC - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 + ldr r2, =gSprites + ldr r0, =gBankSpriteIds adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -33370,7 +33370,7 @@ sub_810F46C: @ 810F46C cmp r0, 0 bne _0810F502 movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 @@ -33379,8 +33379,8 @@ sub_810F46C: @ 810F46C lsls r0, 24 cmp r0, 0 beq _0810F4D4 - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 + ldr r2, =gSprites + ldr r0, =gBankSpriteIds adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -33402,8 +33402,8 @@ _0810F4D4: lsls r0, 24 cmp r0, 0 beq _0810F502 - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 + ldr r2, =gSprites + ldr r0, =gBankSpriteIds adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -33441,11 +33441,11 @@ sub_810F524: @ 810F524 cmp r0, 0 bne _0810F57C movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 movs r1, 0x1 @@ -33489,7 +33489,7 @@ sub_810F58C: @ 810F58C ldrsh r0, [r4, r1] cmp r0, 0 bne _0810F618 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs movs r1, 0x6 ldrsh r0, [r5, r1] movs r6, 0 @@ -33505,9 +33505,9 @@ _0810F5A6: lsls r0, 24 cmp r0, 0 beq _0810F5EE - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0810F5E0 @@ -33529,7 +33529,7 @@ _0810F5E0: strh r0, [r4, 0x22] b _0810F610 _0810F5EE: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 @@ -33568,7 +33568,7 @@ _0810F62C: sub_810F634: @ 810F634 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -33582,13 +33582,13 @@ sub_810F634: @ 810F634 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0810F684 adds r0, r5, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim ldrh r0, [r5, 0x20] subs r0, 0x28 strh r0, [r5, 0x20] @@ -33623,7 +33623,7 @@ _0810F692: sub_810F6B0: @ 810F6B0 push {r4-r7,lr} adds r5, r0, 0 - ldr r6, =gUnknown_02038436 + ldr r6, =gAnimationBankAttacker ldrb r0, [r6] movs r1, 0x1 bl sub_80A861C @@ -33645,7 +33645,7 @@ sub_810F6B0: @ 810F6B0 lsls r1, 16 lsrs r7, r1, 16 ldrb r0, [r6] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -33702,7 +33702,7 @@ sub_810F740: @ 810F740 movs r0, 0 strh r0, [r4, 0x2E] adds r0, r4, 0 - bl obj_alloc_rotscale_entry + bl InitSpriteAffineAnim ldr r0, =sub_810F774 str r0, [r4, 0x1C] pop {r4} @@ -33733,7 +33733,7 @@ _0810F786: ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix ldrb r1, [r4, 0x1] movs r0, 0x4 negs r0, r0 @@ -33831,9 +33831,9 @@ sub_810F83C: @ 810F83C strh r0, [r4, 0x8] strh r1, [r4, 0xA] strh r1, [r4, 0xC] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r1, 0x8 cmp r0, 0 @@ -33890,7 +33890,7 @@ _0810F8D8: ldrsh r0, [r4, r1] cmp r0, 0 beq _0810F900 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -33906,7 +33906,7 @@ _0810F8D8: b _0810F936 .pool _0810F900: - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -33952,7 +33952,7 @@ sub_810F940: @ 810F940 movs r0, 0x10 strh r0, [r5, 0xE] strh r1, [r5, 0x10] - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -34051,7 +34051,7 @@ _0810FA1A: movs r3, 0x24 ldrsh r2, [r4, r3] movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 movs r0, 0xC @@ -34081,7 +34081,7 @@ _0810FA5C: beq _0810FAA8 b _0810FABE _0810FA66: - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r2, 4 adds r1, r2 lsls r1, 2 @@ -34090,7 +34090,7 @@ _0810FA66: b _0810FAB6 .pool _0810FA78: - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r2, 4 adds r1, r2 lsls r1, 2 @@ -34102,7 +34102,7 @@ _0810FA78: b _0810FABC .pool _0810FA90: - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -34114,7 +34114,7 @@ _0810FA90: b _0810FABE .pool _0810FAA8: - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r2, 4 adds r1, r2 lsls r1, 2 @@ -34180,9 +34180,9 @@ _0810FB10: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0810FB2C: adds r0, r5, 0x1 lsls r0, 16 @@ -34255,12 +34255,12 @@ _0810FB9C: sub_810FBA8: @ 810FBA8 push {r4-r6,lr} adds r5, r0, 0 - ldr r6, =gUnknown_0203841E + ldr r6, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _0810FBD4 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -34298,14 +34298,14 @@ sub_810FBF0: @ 810FBF0 lsls r0, 24 cmp r0, 0 beq _0810FC94 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 bne _0810FC60 ldr r0, =0x0000fff6 strh r0, [r5, 0x1C] - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x5 bl sub_80A861C @@ -34316,7 +34316,7 @@ sub_810FBF0: @ 810FBF0 bl sub_80A861C adds r0, 0x8 strh r0, [r5, 0x20] - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x5 bl sub_80A861C @@ -34331,7 +34331,7 @@ sub_810FBF0: @ 810FBF0 _0810FC60: movs r0, 0xA strh r0, [r5, 0x1C] - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x4 bl sub_80A861C @@ -34342,7 +34342,7 @@ _0810FC60: bl sub_80A861C subs r0, 0x8 strh r0, [r5, 0x20] - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x4 bl sub_80A861C @@ -34350,14 +34350,14 @@ _0810FC60: b _0810FD12 .pool _0810FC94: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 bne _0810FCE8 ldr r0, =0x0000fff6 strh r0, [r5, 0x1C] - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x4 bl sub_80A861C @@ -34368,7 +34368,7 @@ _0810FC94: bl sub_80A861C adds r0, 0x8 strh r0, [r5, 0x20] - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x4 bl sub_80A861C @@ -34383,7 +34383,7 @@ _0810FC94: _0810FCE8: movs r0, 0xA strh r0, [r5, 0x1C] - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x5 bl sub_80A861C @@ -34394,7 +34394,7 @@ _0810FCE8: bl sub_80A861C subs r0, 0x8 strh r0, [r5, 0x20] - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x5 bl sub_80A861C @@ -34450,12 +34450,12 @@ _0810FD60: movs r3, 0x20 ldrsh r2, [r5, r3] movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _0810FDB4 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r4, r1, 4 adds r4, r1 lsls r4, 2 @@ -34474,7 +34474,7 @@ _0810FD60: movs r1, 0x3 ands r1, r0 adds r0, r4, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim _0810FDB4: ldrh r0, [r5, 0xC] adds r0, 0x1 @@ -34515,9 +34515,9 @@ sub_810FDF0: @ 810FDF0 ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0810FE0E: pop {r4} pop {r0} @@ -34535,7 +34535,7 @@ sub_810FE14: @ 810FE14 lsls r1, 3 ldr r0, =gTasks adds r4, r1, r0 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] bl sub_80A6190 lsls r0, 24 @@ -34543,7 +34543,7 @@ sub_810FE14: @ 810FE14 adds r0, r1, 0 subs r0, 0x20 strh r0, [r4, 0x24] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0x1 @@ -34590,9 +34590,9 @@ _0810FE86: movs r0, 0 strh r0, [r4, 0x24] _0810FE92: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -34697,7 +34697,7 @@ _0810FF66: ldrsh r0, [r5, r2] cmp r1, r0 bgt _0810FFFE - ldr r0, =gUnknown_08329F40 + ldr r0, =gSineTable mov r9, r0 movs r7, 0x3 ldr r1, =gUnknown_02038C28 @@ -34811,7 +34811,7 @@ sub_8110034: @ 8110034 lsls r0, 3 ldr r1, =gTasks adds r7, r0, r1 - bl rotscale_alloc_entry + bl AllocOamMatrix lsls r0, 24 lsrs r5, r0, 24 mov r10, r5 @@ -34823,7 +34823,7 @@ sub_8110034: @ 8110034 b _08110116 .pool _0811006C: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrb r0, [r1] bl duplicate_obj_of_side_rel2move_in_transparent_mode lsls r0, 16 @@ -34833,20 +34833,20 @@ _0811006C: cmp r0, 0 bge _08110094 adds r0, r5, 0 - bl rotscale_free_entry + bl FreeOamMatrix mov r0, r8 bl move_anim_task_del b _08110116 .pool _08110094: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r4, r0, 4 adds r4, r0 lsls r4, 2 adds r0, r2, 0 adds r0, 0x1C adds r0, r4, r0 - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy str r1, [r0] adds r4, r2 ldrb r0, [r4, 0x1] @@ -34888,8 +34888,8 @@ _08110094: lsls r3, 30 lsrs r3, 30 adds r0, r4, 0 - bl CalcVecFromObjectCenterToObjectUpperLeft - ldr r1, =gUnknown_0203841E + bl CalcCenterToCornerVec + ldr r1, =gBattleAnimArgs ldrb r0, [r1] bl obj_id_for_side_relative_to_move lsls r0, 24 @@ -34942,7 +34942,7 @@ _08110166: ldrh r0, [r4, 0xA] adds r0, 0x4 strh r0, [r4, 0xA] - ldr r1, =gUnknown_08329F40 + ldr r1, =gSineTable movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 1 @@ -34980,7 +34980,7 @@ _081101B8: ldrh r0, [r4, 0xA] subs r0, 0x4 strh r0, [r4, 0xA] - ldr r1, =gUnknown_08329F40 + ldr r1, =gSineTable movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 1 @@ -35020,7 +35020,7 @@ _08110208: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 bl obj_delete_but_dont_free_vram _0811021A: @@ -35033,7 +35033,7 @@ _08110228: ldrh r0, [r4, 0x24] lsls r0, 24 lsrs r0, 24 - bl rotscale_free_entry + bl FreeOamMatrix adds r0, r5, 0 bl move_anim_task_del _08110238: @@ -35062,7 +35062,7 @@ _08110256: beq _0811034A b _08110360 _08110260: - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -35115,10 +35115,10 @@ _081102B8: lsls r1, 24 asrs r1, 24 movs r0, 0xCB - bl audio_play_and_stuff + bl PlaySE12WithPanning adds r0, r5, 0 movs r1, 0x1 - bl sub_80082B8 + bl ChangeSpriteAffineAnim _081102E2: ldrh r0, [r5, 0x2E] adds r0, 0x1 @@ -35198,8 +35198,8 @@ sub_8110368: @ 8110368 beq _08110394 adds r0, r6, 0 movs r1, 0x2 - bl StartObjectRotScalAnim - ldr r0, =gUnknown_0203841E + bl StartSpriteAffineAnim + ldr r0, =gBattleAnimArgs ldrh r1, [r0, 0x4] negs r1, r1 strh r1, [r0, 0x4] @@ -35209,16 +35209,16 @@ sub_8110368: @ 8110368 b _081103C4 .pool _08110394: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _081103C4 adds r0, r6, 0 movs r1, 0x1 - bl StartObjectRotScalAnim - ldr r1, =gUnknown_0203841E + bl StartSpriteAffineAnim + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x2] negs r0, r0 strh r0, [r1, 0x2] @@ -35232,12 +35232,12 @@ _08110394: negs r0, r0 strh r0, [r1] _081103C4: - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A60AC lsls r0, 24 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4] adds r0, r1 @@ -35287,23 +35287,23 @@ sub_8110438: @ 8110438 lsls r0, 24 cmp r0, 0 beq _0811045C - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] negs r0, r0 strh r0, [r1] adds r0, r6, 0 movs r1, 0x2 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim b _08110478 .pool _0811045C: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08110478 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r0, 0x2] negs r1, r1 strh r1, [r0, 0x2] @@ -35311,12 +35311,12 @@ _0811045C: negs r1, r1 strh r1, [r0] _08110478: - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A60AC lsls r0, 24 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4] adds r0, r1 @@ -35362,7 +35362,7 @@ sub_81104E4: @ 81104E4 lsls r0, 24 cmp r0, 0 beq _08110500 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r2, 0x4 ldrsh r1, [r0, r2] lsrs r2, r1, 31 @@ -35373,7 +35373,7 @@ _08110500: adds r0, r5, 0 movs r1, 0x1 bl sub_80A69CC - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x4] strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] @@ -35384,7 +35384,7 @@ _08110500: ldrsh r0, [r1, r2] cmp r0, 0 bne _08110548 - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -35400,7 +35400,7 @@ _08110500: b _0811055A .pool _08110548: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x32 @@ -35411,7 +35411,7 @@ _08110548: _0811055A: adds r0, r5, 0 bl sub_80A6FD4 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x6] strh r0, [r5, 0x38] ldr r0, =sub_811057C @@ -35457,7 +35457,7 @@ _081105AE: sub_81105B4: @ 81105B4 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 @@ -35465,13 +35465,13 @@ sub_81105B4: @ 81105B4 adds r3, 0x22 movs r1, 0 bl sub_80A8924 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _081105F0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r4, 0x20] ldrh r2, [r0] subs r1, r2 @@ -35479,7 +35479,7 @@ sub_81105B4: @ 81105B4 b _081105FC .pool _081105F0: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -35490,9 +35490,9 @@ _081105FC: ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08110618 @@ -35648,20 +35648,20 @@ sub_8110720: @ 8110720 lsls r0, 24 cmp r0, 0 beq _08110740 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] b _08110762 .pool _08110740: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08110762 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] @@ -35676,30 +35676,30 @@ _08110762: lsls r0, 24 cmp r0, 0 bne _081107B2 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _081107B2 ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 cmp r0, 0 beq _081107A0 ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081107B2 _081107A0: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r2, 0x4 ldrsh r1, [r0, r2] negs r1, r1 @@ -35712,13 +35712,13 @@ _081107B2: adds r0, r7, 0 movs r1, 0x1 bl sub_80A69CC - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C adds r4, r0, 0 lsls r4, 24 - ldr r6, =gUnknown_0203841E + ldr r6, =gBattleAnimArgs lsrs r4, 24 ldrh r0, [r6, 0x4] adds r4, r0 @@ -35780,21 +35780,21 @@ sub_8110850: @ 8110850 adds r6, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08110870 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _08110870: - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -35936,16 +35936,16 @@ _08110988: sub_8110994: @ 8110994 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _081109B0 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker b _081109B2 .pool _081109B0: - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget _081109B2: ldrb r0, [r4] movs r1, 0x2 @@ -35975,12 +35975,12 @@ _081109B2: sub_81109F0: @ 81109F0 push {r4-r6,lr} adds r5, r0, 0 - ldr r6, =gUnknown_0203841E + ldr r6, =gBattleAnimArgs movs r1, 0x6 ldrsh r0, [r6, r1] cmp r0, 0 beq _08110A10 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x20 @@ -35999,9 +35999,9 @@ _08110A10: strh r0, [r5, 0x22] ldrb r1, [r6, 0x2] adds r0, r5, 0 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r5, 0 - bl AnimateObject + bl AnimateSprite strh r4, [r5, 0x2E] strh r4, [r5, 0x30] movs r0, 0x4 @@ -36059,14 +36059,14 @@ sub_8110A70: @ 8110A70 sub_8110AB4: @ 8110AB4 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrb r1, [r4, 0xA] - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r5, 0 - bl AnimateObject - ldr r0, =gUnknown_02038436 + bl AnimateSprite + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08110AE4 @@ -36081,7 +36081,7 @@ _08110AE4: adds r0, r1 _08110AEA: strh r0, [r5, 0x20] - ldr r3, =gUnknown_0203841E + ldr r3, =gBattleAnimArgs ldrh r2, [r3, 0x2] ldrh r0, [r5, 0x22] adds r2, r0 @@ -36117,7 +36117,7 @@ _08110AEA: sub_8110B38: @ 8110B38 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0xC ldrsh r0, [r0, r1] cmp r0, 0 @@ -36132,7 +36132,7 @@ _08110B54: movs r1, 0 bl sub_80A6980 _08110B5C: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x6] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x4] @@ -36249,14 +36249,14 @@ _08110C10: lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _08110C6E - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08110C6E @@ -36475,14 +36475,14 @@ sub_8110E4C: @ 8110E4C ldrsh r0, [r5, r1] cmp r0, 0 bne _08110EC8 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs movs r2, 0x6 ldrsh r0, [r4, r2] cmp r0, 0 beq _08110E98 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08110E98 @@ -36506,12 +36506,12 @@ _08110E98: ldr r0, =0x0000ffc0 strh r0, [r5, 0x20] _08110E9C: - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrh r0, [r4] strh r0, [r5, 0x22] ldr r1, =gUnknown_08596BC0 adds r0, r5, 0 - bl SetSpriteOamTables_NoPriorityFromTable + bl SetSubspriteTables ldrh r0, [r4, 0x2] strh r0, [r5, 0x30] ldrh r0, [r4, 0x4] @@ -36581,9 +36581,9 @@ _08110F24: sub_8110F30: @ 8110F30 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs ldrb r1, [r5, 0x8] - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r4, 0 movs r1, 0 bl sub_80A69CC @@ -36620,7 +36620,7 @@ sub_8110F74: @ 8110F74 lsls r1, 3 ldr r0, =gTasks adds r6, r1, r0 - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -36636,7 +36636,7 @@ sub_8110F74: @ 8110F74 lsls r1, 13 adds r0, r1 lsrs r7, r0, 16 - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -36786,7 +36786,7 @@ _081110E4: ldrh r1, [r4, 0x12] subs r0, r1 strh r0, [r4, 0x16] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -36823,7 +36823,7 @@ _08111134: lsls r1, 24 asrs r1, 24 movs r0, 0xA2 - bl audio_play_and_stuff + bl PlaySE12WithPanning b _0811120C .pool _08111148: @@ -36855,7 +36855,7 @@ _08111170: adds r0, 0x1 strh r0, [r4, 0x8] _0811117A: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r1, 0x26 ldrsh r0, [r4, r1] lsls r1, r0, 4 @@ -36907,7 +36907,7 @@ _081111AC: lsls r1, 24 asrs r1, 24 movs r0, 0xAF - bl audio_play_and_stuff + bl PlaySE12WithPanning _081111EA: ldrh r0, [r4, 0x18] subs r0, 0x1 @@ -36995,12 +36995,12 @@ _08111270: asrs r2, 16 adds r0, r3, 0 movs r3, 0x23 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _081112FC - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -37079,7 +37079,7 @@ sub_811131C: @ 811131C strh r0, [r1, 0x1E] _08111348: adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0811134E: pop {r4} pop {r0} @@ -37090,7 +37090,7 @@ _0811134E: thumb_func_start sub_811135C sub_811135C: @ 811135C push {lr} - ldr r0, =gUnknown_02038400 + ldr r0, =gDisableStructMoveAnim ldr r0, [r0] ldrb r1, [r0, 0x11] lsrs r0, r1, 4 @@ -37117,9 +37117,9 @@ _0811137E: sub_8111388: @ 8111388 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs ldrb r1, [r5, 0x8] - bl StartObjectImageAnim + bl StartSpriteAnim ldrh r0, [r5] strh r0, [r4, 0x24] ldrh r0, [r5, 0x2] @@ -37193,16 +37193,16 @@ _08111412: sub_8111418: @ 8111418 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08111434 adds r0, r4, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim _08111434: adds r0, r4, 0 bl sub_80A7820 @@ -37216,7 +37216,7 @@ _08111434: sub_8111444: @ 8111444 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] movs r1, 0 bl sub_80A5C6C @@ -37228,7 +37228,7 @@ sub_8111444: @ 8111444 bl sub_80A5C6C lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r3, [r2] ldrh r5, [r4, 0x20] adds r1, r3, r5 @@ -37242,7 +37242,7 @@ sub_8111444: @ 8111444 strh r0, [r4, 0x38] ldrb r1, [r2, 0x6] adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r0, =sub_811149C str r0, [r4, 0x1C] pop {r4,r5} @@ -37298,11 +37298,11 @@ sub_81114EC: @ 81114EC push {lr} lsls r0, 24 lsrs r3, r0, 24 - ldr r2, =gUnknown_02038404 + ldr r2, =gMoveDmgMoveAnim ldr r0, [r2] cmp r0, 0x20 bgt _08111500 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r0, 0 strh r0, [r1, 0xE] _08111500: @@ -37311,13 +37311,13 @@ _08111500: subs r0, 0x21 cmp r0, 0x20 bhi _08111510 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r0, 0x1 strh r0, [r1, 0xE] _08111510: cmp r2, 0x41 ble _0811151A - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r0, 0x2 strh r0, [r1, 0xE] _0811151A: @@ -37413,7 +37413,7 @@ _081115BC: ldrh r4, [r4, 0xC] adds r0, r4 strh r0, [r6] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r2, 0xE ldrsh r1, [r0, r2] ldr r0, =0x00000fff @@ -37438,12 +37438,12 @@ sub_811160C: @ 811160C adds r4, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -37526,7 +37526,7 @@ _081116CC: movs r1, 0 ldrsb r1, [r0, r1] movs r0, 0xC4 - bl audio_play_and_stuff + bl PlaySE12WithPanning _081116DE: pop {r4} pop {r0} @@ -37573,7 +37573,7 @@ _0811172E: cmp r0, 0 ble _0811173A movs r0, 0xC4 - bl audio_play + bl PlaySE _0811173A: movs r1, 0x3A ldrsh r0, [r4, r1] @@ -37782,7 +37782,7 @@ sub_811188C: @ 811188C movs r2, 0x80 movs r3, 0 bl obj_id_set_rotscale - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 @@ -37801,7 +37801,7 @@ sub_811188C: @ 811188C movs r2, 0 movs r1, 0x80 strh r1, [r0, 0x8] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r1, [r1] strh r1, [r0, 0xA] strh r2, [r0, 0xC] @@ -37925,7 +37925,7 @@ sub_81119E0: @ 81119E0 adds r4, r0, 0 ldrh r5, [r4, 0x20] ldrh r6, [r4, 0x22] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker mov r8, r0 ldrb r0, [r0] movs r1, 0x2 @@ -37944,7 +37944,7 @@ sub_81119E0: @ 81119E0 strh r0, [r4, 0x22] mov r1, r9 strh r1, [r4, 0x2E] - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r1, [r2] strh r1, [r4, 0x30] ldrh r1, [r2, 0x2] @@ -38042,7 +38042,7 @@ _08111AD2: lsls r0, 16 cmp r0, 0 bgt _08111B96 - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -38104,7 +38104,7 @@ _08111B3C: lsls r0, 16 cmp r0, 0 bgt _08111B96 - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -38276,7 +38276,7 @@ _08111C80: lsrs r1, 16 movs r0, 0x52 bl SetGpuReg - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites movs r0, 0x8 ldrsh r1, [r5, r0] lsls r0, r1, 4 @@ -38285,9 +38285,9 @@ _08111C80: adds r0, r4 movs r1, 0x50 strh r1, [r0, 0x2E] - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08111CF4 @@ -38326,7 +38326,7 @@ _08111CF4: ldr r1, =0x0000ff90 _08111D12: strh r1, [r0, 0x32] - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites movs r0, 0x8 ldrsh r1, [r5, r0] lsls r0, r1, 4 @@ -38348,7 +38348,7 @@ _08111D12: adds r0, r1 lsls r0, 2 adds r0, r4 - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy bl oamt_set_x3A_32 movs r0, 0x8 ldrsh r1, [r5, r0] @@ -38443,7 +38443,7 @@ _08111DDA: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 bl obj_delete_but_dont_free_vram movs r0, 0x1 @@ -38510,9 +38510,9 @@ sub_8111E78: @ 8111E78 lsls r0, 3 ldr r1, =gTasks adds r5, r0, r1 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r6, r0, 24 movs r1, 0x26 @@ -38537,7 +38537,7 @@ _08111EBC: _08111ED0: ldr r7, =0x00002771 adds r0, r7, 0 - bl AllocObjectPalette + bl AllocSpritePalette lsls r0, 24 lsrs r0, 24 movs r2, 0 @@ -38554,14 +38554,14 @@ _08111ED0: cmp r0, 0 bge _08111F0C adds r0, r7, 0 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag _08111EFE: adds r0, r4, 0 bl move_anim_task_del b _081120CC .pool _08111F0C: - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites movs r1, 0x8 ldrsh r0, [r5, r1] lsls r1, r0, 4 @@ -38604,7 +38604,7 @@ _08111F0C: adds r2, r4 ldr r0, =gUnknown_020244D0 ldr r1, [r0] - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] ldr r1, [r1] lsls r0, 2 @@ -38680,7 +38680,7 @@ _08111FD0: b _081120C6 .pool _08112014: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x22 ldrsh r1, [r5, r0] lsls r0, r1, 4 @@ -38801,7 +38801,7 @@ sub_81120DC: @ 81120DC strh r0, [r4, 0x12] cmp r0, 0 bne _08112114 - ldr r1, =gUnknown_08329F40 + ldr r1, =gSineTable movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 1 @@ -38816,7 +38816,7 @@ _08112114: ldrsh r0, [r4, r2] cmp r0, 0x1 bne _08112136 - ldr r1, =gUnknown_08329F40 + ldr r1, =gSineTable movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 1 @@ -38864,9 +38864,9 @@ sub_8112170: @ 8112170 lsls r0, 3 ldr r1, =gTasks adds r4, r0, r1 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r6, r0, 24 movs r1, 0x26 @@ -38914,7 +38914,7 @@ _081121DC: b _08112258 .pool _081121F0: - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites movs r0, 0x24 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -38934,7 +38934,7 @@ _081121F0: adds r0, r3 bl obj_delete_but_dont_free_vram ldr r0, =0x00002771 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag movs r0, 0x50 movs r1, 0 bl SetGpuReg @@ -38974,12 +38974,12 @@ sub_8112264: @ 8112264 mov r5, r8 push {r5-r7} adds r7, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _081122AC - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -38994,11 +38994,11 @@ sub_8112264: @ 8112264 lsls r2, 13 adds r0, r2 lsrs r5, r0, 16 - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget b _081122D0 .pool _081122AC: - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -39013,7 +39013,7 @@ _081122AC: lsls r2, 13 adds r0, r2 lsrs r5, r0, 16 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker _081122D0: ldrb r0, [r4] movs r1, 0 @@ -39043,7 +39043,7 @@ _081122D0: mov r1, r10 subs r0, r1, r6 lsls r0, 4 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs movs r2, 0x2 ldrsh r1, [r5, r2] bl __divsi3 @@ -39163,10 +39163,10 @@ sub_81123C4: @ 81123C4 strh r0, [r1, 0x18] movs r0, 0x10 strh r0, [r1, 0x1A] - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r0, [r2] strh r0, [r1, 0x1C] - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -39189,7 +39189,7 @@ _08112434: _08112436: lsls r1, r4, 16 asrs r3, r1, 16 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r2, [r0] str r1, [sp, 0x10] cmp r3, r2 @@ -39213,7 +39213,7 @@ _08112436: adds r1, r6, 0 adds r2, r7, 0 movs r3, 0x37 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r8, r0 @@ -39235,7 +39235,7 @@ _08112436: lsls r5, r0, 4 add r5, r8 lsls r5, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r4, r5, r1 lsls r0, r6, 4 strh r0, [r4, 0x2E] @@ -39244,7 +39244,7 @@ _08112436: mov r2, r10 subs r0, r2, r6 lsls r0, 4 - ldr r3, =gUnknown_0203841E + ldr r3, =gBattleAnimArgs movs r2, 0x2 ldrsh r1, [r3, r2] bl __divsi3 @@ -39254,19 +39254,19 @@ _08112436: asrs r0, 16 subs r0, r7 lsls r0, 4 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs movs r3, 0x2 ldrsh r1, [r2, r3] bl __divsi3 strh r0, [r4, 0x34] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x2] strh r0, [r4, 0x36] mov r2, r10 strh r2, [r4, 0x38] mov r3, r9 strh r3, [r4, 0x3A] - ldr r0, =gUnknown_0202064C + ldr r0, =gSprites + 0x1C adds r5, r0 ldr r0, =sub_8112384 str r0, [r5] @@ -39304,7 +39304,7 @@ _08112530: adds r1, r7, 0 ldr r2, [sp, 0xC] movs r3, 0x37 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r8, r0 @@ -39314,7 +39314,7 @@ _08112530: mov r10, r3 movs r0, 0x28 mov r9, r0 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites mov r1, r8 lsls r5, r1, 4 add r5, r8 @@ -39327,7 +39327,7 @@ _08112530: strh r0, [r4, 0x30] subs r0, r3, r7 lsls r0, 4 - ldr r3, =gUnknown_0203841E + ldr r3, =gBattleAnimArgs movs r2, 0x2 ldrsh r1, [r3, r2] bl __divsi3 @@ -39336,12 +39336,12 @@ _08112530: ldr r1, [sp, 0xC] subs r0, r3, r1 lsls r0, 4 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs movs r3, 0x2 ldrsh r1, [r2, r3] bl __divsi3 strh r0, [r4, 0x34] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x2] strh r0, [r4, 0x36] mov r2, r10 @@ -39532,9 +39532,9 @@ _081126F4: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 @@ -39594,9 +39594,9 @@ sub_8112758: @ 8112758 movs r0, 0x54 movs r1, 0x10 bl SetGpuReg - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _081127A0 @@ -39869,9 +39869,9 @@ sub_81129F0: @ 81129F0 adds r4, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08112A24 @@ -40064,9 +40064,9 @@ sub_8112B78: @ 8112B78 movs r1, 0xC bl Sin strh r0, [r5, 0x24] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08112B9C @@ -40195,7 +40195,7 @@ sub_8112C6C: @ 8112C6C mov r8, r0 mov r0, r8 strh r0, [r4, 0xA] - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -40290,20 +40290,20 @@ _08112D56: ldrsh r2, [r4, r0] ldrb r3, [r4, 0x14] ldr r0, =gUnknown_08596E30 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _08112DAA - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r5, r0, r1 strh r7, [r5, 0x2E] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide movs r1, 0 lsls r0, 24 cmp r0, 0 @@ -40545,7 +40545,7 @@ _08112F08: subs r0, 0x1 strh r0, [r1, 0x16] adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _08112F56: pop {r4} pop {r0} @@ -40561,8 +40561,8 @@ sub_8112F60: @ 8112F60 movs r2, 0x4 orrs r1, r2 strb r1, [r3] - ldr r2, =gUnknown_020241E4 - ldr r1, =gUnknown_02038436 + ldr r2, =gBankSpriteIds + ldr r1, =gAnimationBankAttacker ldrb r1, [r1] adds r1, r2 ldrb r1, [r1] @@ -40571,14 +40571,14 @@ sub_8112F60: @ 8112F60 strh r1, [r0, 0x2E] movs r1, 0xA strh r1, [r0, 0x30] - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r1, [r2] strh r1, [r0, 0x32] ldrh r1, [r2, 0x2] strh r1, [r0, 0x34] ldr r1, =sub_8112FB8 str r1, [r0, 0x1C] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r3, 0x38 ldrsh r1, [r0, r3] lsls r0, r1, 4 @@ -40608,7 +40608,7 @@ sub_8112FB8: @ 8112FB8 movs r2, 0x30 ldrsh r1, [r5, r2] bl Sin - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites movs r1, 0x38 ldrsh r2, [r5, r1] lsls r1, r2, 4 @@ -40642,7 +40642,7 @@ sub_8112FB8: @ 8112FB8 b _08113054 .pool _08113020: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x38 ldrsh r1, [r5, r0] lsls r0, r1, 4 @@ -40679,7 +40679,7 @@ _08113054: sub_8113064: @ 8113064 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -40693,11 +40693,11 @@ sub_8113064: @ 8113064 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _081130B4 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r0, [r5, 0x20] ldrh r1, [r2] subs r0, r1 @@ -40712,7 +40712,7 @@ sub_8113064: @ 8113064 b _081130BE .pool _081130B4: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r5, 0x20] adds r0, r2 @@ -40752,7 +40752,7 @@ sub_8113100: @ 8113100 push {r4,r5,lr} adds r5, r0, 0 bl sub_80A6838 - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -40765,13 +40765,13 @@ sub_8113100: @ 8113100 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08113164 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r0, [r5, 0x20] ldrh r1, [r2, 0x2] subs r0, r1 @@ -40790,7 +40790,7 @@ sub_8113100: @ 8113100 b _0811318E .pool _08113164: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r5, 0x20] adds r0, r2 @@ -40809,9 +40809,9 @@ _08113164: strh r0, [r5, 0x36] adds r0, r5, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim _0811318E: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x8] strh r0, [r5, 0x2E] ldr r0, =sub_80A6EEC @@ -40829,16 +40829,16 @@ _0811318E: sub_81131B4: @ 81131B4 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _081131D0 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker b _081131D2 .pool _081131D0: - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget _081131D2: ldrb r0, [r4] movs r1, 0 @@ -40852,7 +40852,7 @@ _081131D2: lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs movs r0, 0x2 ldrsh r1, [r4, r0] adds r0, r5, 0 @@ -40876,15 +40876,15 @@ _081131D2: sub_8113224: @ 8113224 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0811323E adds r0, r4, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim _0811323E: adds r0, r4, 0 bl sub_8113100 @@ -40898,7 +40898,7 @@ _0811323E: sub_8113250: @ 8113250 push {r4-r7,lr} adds r6, r0, 0 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -40915,10 +40915,10 @@ sub_8113250: @ 8113250 strh r5, [r6, 0x36] movs r0, 0x1 strh r0, [r6, 0x38] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0] strh r0, [r6, 0x3A] - ldr r4, =gUnknown_0202420B + ldr r4, =gBankAttacker ldrb r0, [r4] movs r1, 0 bl sub_80A861C @@ -41106,9 +41106,9 @@ sub_81133E8: @ 81133E8 lsls r1, 3 ldr r0, =gTasks adds r4, r1, r0 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -41133,7 +41133,7 @@ _0811342A: strb r0, [r1, 0x8] mov r0, sp strb r5, [r0, 0x9] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] bl sub_80A6190 lsls r0, 24 @@ -41294,7 +41294,7 @@ sub_8113574: @ 8113574 bgt _081135CA ldr r7, =gUnknown_02038C28 mov r12, r7 - ldr r0, =gUnknown_08329F40 + ldr r0, =gSineTable mov r8, r0 ldr r6, =gUnknown_02039B28 _08113592: @@ -41346,7 +41346,7 @@ sub_81135EC: @ 81135EC mov r6, r8 push {r6} adds r4, r0, 0 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs movs r0, 0x4 ldrsh r1, [r5, r0] lsls r0, r1, 1 @@ -41354,7 +41354,7 @@ sub_81135EC: @ 81135EC movs r1, 0x5 bl __divsi3 adds r6, r0, 0 - ldr r1, =gUnknown_02038436 + ldr r1, =gAnimationBankAttacker mov r8, r1 ldrb r0, [r1] movs r1, 0x2 @@ -41470,17 +41470,17 @@ sub_81136E8: @ 81136E8 adds r0, r5 lsls r0, 3 adds r0, r1 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r1, [r1] strh r1, [r0, 0x8] - ldr r1, =gUnknown_02038436 + ldr r1, =gAnimationBankAttacker ldrb r4, [r1] movs r1, 0x10 strh r1, [r0, 0xA] movs r0, 0x52 bl SetGpuReg adds r0, r4, 0 - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -41543,9 +41543,9 @@ sub_811375C: @ 811375C strh r5, [r6, 0xC] cmp r4, 0x10 bne _081137DE - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02038436 + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -41582,7 +41582,7 @@ sub_81137E4: @ 81137E4 adds r2, r0 lsls r2, 3 adds r2, r1 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0] strh r0, [r2, 0x8] movs r1, 0x80 @@ -41661,9 +41661,9 @@ sub_8113888: @ 8113888 lsls r1, 5 movs r0, 0x52 bl SetGpuReg - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -41690,14 +41690,14 @@ _081138C4: sub_81138D4: @ 81138D4 push {r4-r6,lr} adds r4, r0, 0 - ldr r6, =gUnknown_02038437 + ldr r6, =gAnimationBankTarget ldrb r0, [r6] movs r1, 0x2 bl sub_80A5C6C lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x30] - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -41816,7 +41816,7 @@ _081139D4: sub_81139DC: @ 81139DC push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs ldrh r0, [r5] ldrh r1, [r4, 0x20] adds r0, r1 @@ -41827,7 +41827,7 @@ sub_81139DC: @ 81139DC strh r0, [r4, 0x22] ldrb r1, [r5, 0x4] adds r0, r4, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim ldrh r0, [r5, 0x6] strh r0, [r4, 0x2E] ldrh r0, [r5, 0x8] @@ -41912,17 +41912,17 @@ _08113A8A: sub_8113A90: @ 8113A90 push {r4-r7,lr} adds r4, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r2, 0 ldrsh r1, [r0, r2] adds r3, r0, 0 cmp r1, 0 bne _08113AAC - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _08113AAE .pool _08113AAC: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _08113AAE: ldrb r5, [r0] movs r6, 0x14 @@ -42002,7 +42002,7 @@ _08113B54: strh r0, [r4, 0x22] adds r0, r4, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim movs r6, 0xEC _08113B60: movs r0, 0x20 @@ -42054,7 +42054,7 @@ sub_8113BAC: @ 8113BAC lsls r1, 3 ldr r0, =gTasks adds r5, r1, r0 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x1 bl sub_80A5C6C @@ -42085,7 +42085,7 @@ sub_8113BAC: @ 8113BAC adds r0, 0x20 strh r0, [r5, 0x26] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08113C1C @@ -42096,9 +42096,9 @@ _08113C1C: ldr r0, =0x0000ffc0 _08113C1E: strh r0, [r5, 0x18] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xE] @@ -42415,9 +42415,9 @@ _08113EBC: b _081140A6 .pool _08113EF8: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xE] @@ -42472,7 +42472,7 @@ _08113F78: b _08114044 .pool _08113F84: - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x1 bl sub_80A5C6C @@ -42500,7 +42500,7 @@ _08113F84: adds r0, 0x4 strh r0, [r5, 0x26] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08113FD8 @@ -42969,7 +42969,7 @@ sub_8114374: @ 8114374 lsls r0, 24 lsrs r0, 24 movs r4, 0 - ldr r7, =gUnknown_02020630 + ldr r7, =gSprites movs r1, 0x3 ands r0, r1 lsls r5, r0, 2 @@ -43014,9 +43014,9 @@ sub_81143C0: @ 81143C0 lsls r0, 24 lsrs r0, 24 mov r10, r0 - ldr r6, =gUnknown_02038436 + ldr r6, =gAnimationBankAttacker ldrb r0, [r6] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 movs r1, 0x1 @@ -43028,9 +43028,9 @@ sub_81143C0: @ 81143C0 adds r1, r4, 0 movs r2, 0x1 bl sub_80A438C - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r9, r0 - ldr r0, =gUnknown_020241E4 + ldr r0, =gBankSpriteIds mov r8, r0 ldrb r0, [r6] add r0, r8 @@ -43091,9 +43091,9 @@ sub_8114470: @ 8114470 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 movs r1, 0x1 @@ -43127,7 +43127,7 @@ _081144AC: sub_81144BC: @ 81144BC push {r4,lr} adds r4, r0, 0 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -43138,7 +43138,7 @@ sub_81144BC: @ 81144BC strh r0, [r4, 0x22] ldrb r1, [r1, 0x4] adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r0, =sub_80A67D8 str r0, [r4, 0x1C] ldr r1, =move_anim_8072740 @@ -43202,15 +43202,15 @@ _0811455C: lsls r0, 24 cmp r0, 0 bne _081145D6 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _0811458C ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 cmp r0, 0 bne _081145D6 @@ -43223,8 +43223,8 @@ _0811458C: lsrs r0, 24 cmp r0, 0x1 bne _081145D6 - ldr r3, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 + ldr r3, =gSprites + ldr r1, =gBankSpriteIds ldrb r0, [r4] eors r0, r5 adds r0, r1 @@ -43262,13 +43262,13 @@ _081145D6: b _0811465C .pool _08114614: - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08114640 - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -43279,7 +43279,7 @@ _08114614: b _08114650 .pool _08114640: - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -43299,7 +43299,7 @@ _0811465C: adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] adds r1, r4, 0 adds r2, r5, 0 @@ -43325,7 +43325,7 @@ _0811465C: movs r2, 0x20 bl LoadCompressedPalette ldr r2, =gUnknown_02022E18 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r4, 4 adds r1, r4 lsls r1, 2 @@ -43343,7 +43343,7 @@ _0811465C: lsrs r0, 4 adds r0, 0x10 adds r1, r0, 0 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs movs r3, 0x2 ldrsh r0, [r2, r3] cmp r0, 0 @@ -43366,7 +43366,7 @@ _08114714: lsls r0, 3 adds r0, r1 strh r5, [r0, 0x8] - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r1, [r2] strh r1, [r0, 0xA] ldrh r1, [r2, 0x2] @@ -43424,7 +43424,7 @@ _08114776: bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -43447,7 +43447,7 @@ _081147B8: adds r0, r1 lsls r0, 2 adds r0, r5 - bl RemoveObjectAndFreeTiles + bl DestroySprite mov r0, sp bl sub_80A6B30 mov r0, sp @@ -43457,8 +43457,8 @@ _081147B8: ldrsh r0, [r4, r1] cmp r0, 0x1 bne _08114886 - ldr r2, =gUnknown_020241E4 - ldr r0, =gUnknown_02038436 + ldr r2, =gBankSpriteIds + ldr r0, =gAnimationBankAttacker ldrb r1, [r0] movs r0, 0x2 eors r0, r1 @@ -43538,7 +43538,7 @@ sub_811489C: @ 811489C lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r2, 0 ldrsh r1, [r0, r2] adds r2, r0, 0 @@ -43586,7 +43586,7 @@ _08114902: beq _0811492E _08114908: adds r0, r4, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 @@ -43594,7 +43594,7 @@ _08114908: lsls r0, 24 cmp r0, 0 beq _0811492C - ldr r0, =gUnknown_020241E4 + ldr r0, =gBankSpriteIds adds r0, r4, r0 ldrb r2, [r0] b _0811492E @@ -43604,7 +43604,7 @@ _0811492C: _0811492E: cmp r2, 0xFF beq _0811494A - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -43612,7 +43612,7 @@ _0811492E: ldrb r0, [r0, 0x5] lsrs r0, 4 adds r0, 0x10 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrb r1, [r1, 0x2] bl sub_80A750C _0811494A: @@ -43633,14 +43633,14 @@ sub_8114960: @ 8114960 ldrb r0, [r2] cmp r0, 0x1 bhi _08114974 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r0, 0 strh r0, [r1, 0xE] _08114974: ldrb r0, [r2] cmp r0, 0x2 bne _08114980 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r0, 0x1 strh r0, [r1, 0xE] _08114980: @@ -43655,7 +43655,7 @@ _08114980: sub_8114994: @ 8114994 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -43670,7 +43670,7 @@ sub_8114994: @ 8114994 strh r0, [r4, 0x22] movs r0, 0x14 strh r0, [r4, 0x2E] - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -43716,7 +43716,7 @@ sub_81149FC: @ 81149FC strh r1, [r5, 0x24] movs r0, 0x14 strh r0, [r5, 0x2E] - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -43764,21 +43764,21 @@ sub_8114A7C: @ 8114A7C adds r6, r0, 0 movs r1, 0x1 bl sub_80A6980 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08114A9C - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _08114A9C: - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -43814,7 +43814,7 @@ sub_8114AF0: @ 8114AF0 adds r6, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A60AC @@ -43849,7 +43849,7 @@ _08114B38: lsls r0, 16 lsrs r4, r0, 16 _08114B48: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r6, 0x2E] mov r1, r8 @@ -43885,12 +43885,12 @@ sub_8114B80: @ 8114B80 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] - ldr r6, =gUnknown_0203841E + ldr r6, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _08114BF4 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -44041,7 +44041,7 @@ sub_8114CBC: @ 8114CBC lsls r0, 3 ldr r1, =gTasks adds r1, r0, r1 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r3, 0 ldrsh r0, [r0, r3] cmp r0, 0 @@ -44096,9 +44096,9 @@ _08114D3C: lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1C] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1E] @@ -44118,7 +44118,7 @@ _08114D70: _08114D78: ldrh r0, [r0] strh r0, [r4, 0x22] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] bl sub_80A6190 lsls r0, 24 @@ -44133,7 +44133,7 @@ _08114D78: movs r0, 0 strh r0, [r4, 0x24] _08114D9A: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r3, 0x1C ldrsh r1, [r4, r3] lsls r0, r1, 4 @@ -44174,7 +44174,7 @@ _08114DD4: adds r0, 0x1 strh r0, [r4, 0xE] _08114DF6: - ldr r1, =gUnknown_08329F40 + ldr r1, =gSineTable movs r2, 0xC ldrsh r0, [r4, r2] lsls r0, 1 @@ -44219,7 +44219,7 @@ _08114E4E: ldrh r0, [r4, 0x22] subs r0, r2 strh r0, [r1] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r1, 0x1C ldrsh r0, [r4, r1] lsls r1, r0, 4 @@ -44247,7 +44247,7 @@ _08114E7E: _08114E8C: adds r0, r2, 0 bl move_anim_task_del - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x1C ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -44275,7 +44275,7 @@ sub_8114EB4: @ 8114EB4 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -44289,9 +44289,9 @@ sub_8114EB4: @ 8114EB4 movs r4, 0 strh r4, [r1, 0x24] strh r4, [r1, 0x26] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -44321,7 +44321,7 @@ sub_8114F14: @ 8114F14 lsls r0, 3 ldr r1, =gTasks adds r1, r0, r1 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r3, 0 ldrsh r0, [r0, r3] cmp r0, 0 @@ -44365,7 +44365,7 @@ _08114F78: lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1C] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites movs r0, 0x1C ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -44442,9 +44442,9 @@ _08115018: lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1C] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1E] @@ -44458,7 +44458,7 @@ _08115044: _08115046: ldrh r0, [r0] strh r0, [r4, 0x20] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] bl sub_80A6190 lsls r0, 24 @@ -44478,7 +44478,7 @@ _0811506C: bl sub_81150E0 b _081150C2 _0811507A: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x1C ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -44490,7 +44490,7 @@ _0811507A: b _081150C2 .pool _08115094: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x1C ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -44628,17 +44628,17 @@ _0811516E: sub_81151A0: @ 81151A0 push {r4-r7,lr} adds r5, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r2, 0 ldrsh r1, [r0, r2] adds r7, r0, 0 cmp r1, 0 bne _081151BC - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _081151BE .pool _081151BC: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _081151BE: ldrb r4, [r0] movs r6, 0x18 @@ -44709,16 +44709,16 @@ _0811523C: sub_8115244: @ 8115244 push {r4-r6,lr} adds r6, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _08115260 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _08115262 .pool _08115260: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _08115262: ldrb r5, [r0] adds r0, r5, 0 @@ -44728,7 +44728,7 @@ _08115262: lsrs r0, 24 ldr r2, =0x0000fff0 adds r0, r2 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs movs r3, 0x2 ldrsh r1, [r4, r3] lsls r1, 5 @@ -44777,7 +44777,7 @@ sub_81152DC: @ 81152DC lsls r0, 3 ldr r1, =gTasks adds r4, r0, r1 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r2, [r0, 0x2] movs r3, 0x2 ldrsh r1, [r0, r3] @@ -44788,7 +44788,7 @@ sub_81152DC: @ 81152DC b _08115314 .pool _08115308: - ldr r0, =gUnknown_02038408 + ldr r0, =gMovePowerMoveAnim ldrh r0, [r0] movs r1, 0xA bl __udivsi3 @@ -44829,7 +44829,7 @@ _08115346: adds r1, r4, 0 adds r1, 0x8 adds r1, r0 - ldr r0, =gUnknown_020241E4 + ldr r0, =gBankSpriteIds adds r0, r5, r0 ldrb r0, [r0] strh r0, [r1] @@ -45084,7 +45084,7 @@ _08115540: ldrsh r0, [r4, r7] cmp r2, r0 bge _08115578 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r12, r0 adds r5, r4, 0 adds r5, 0x8 @@ -45155,7 +45155,7 @@ _081155C0: ldrsh r0, [r3, r7] cmp r2, r0 bge _081155F4 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites adds r5, r3, 0 adds r5, 0x8 _081155D0: @@ -45189,9 +45189,9 @@ sub_8115600: @ 8115600 push {lr} lsls r0, 24 lsrs r1, r0, 24 - ldr r3, =gUnknown_0203841E + ldr r3, =gBattleAnimArgs movs r2, 0 - ldr r0, =gUnknown_02038408 + ldr r0, =gMovePowerMoveAnim ldrh r0, [r0] cmp r0, 0x63 bls _08115614 @@ -45210,18 +45210,18 @@ sub_8115628: @ 8115628 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r1, [r2] movs r0, 0x1 ands r0, r1 adds r6, r2, 0 cmp r0, 0 beq _08115648 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget b _0811564A .pool _08115648: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker _0811564A: ldrb r0, [r0] adds r5, r0, 0 @@ -45288,7 +45288,7 @@ sub_81156D0: @ 81156D0 lsls r0, 3 ldr r1, =gTasks adds r2, r0, r1 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r4, 0xE ldrsh r1, [r0, r4] movs r4, 0xE @@ -45322,7 +45322,7 @@ _0811571C: sub_811572C: @ 811572C push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs ldrh r0, [r5] ldrh r1, [r4, 0x20] adds r0, r1 @@ -45333,9 +45333,9 @@ sub_811572C: @ 811572C strh r0, [r4, 0x22] ldrh r0, [r5, 0x4] strh r0, [r4, 0x2E] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 @@ -45353,9 +45353,9 @@ _0811576C: strh r1, [r4, 0x36] adds r0, r4, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim _0811577A: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x8] strh r0, [r4, 0x34] ldr r1, =sub_8115798 @@ -45427,7 +45427,7 @@ sub_81157FC: @ 81157FC push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r4, r1] bl sub_811583C @@ -45514,7 +45514,7 @@ _0811589A: sub_81158A4: @ 81158A4 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrh r0, [r4, 0x2] strh r0, [r5, 0x2E] strh r0, [r5, 0x30] @@ -45650,7 +45650,7 @@ _081159AA: sub_81159B4: @ 81159B4 push {r4,lr} adds r4, r0, 0 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -45693,7 +45693,7 @@ sub_8115A04: @ 8115A04 adds r4, r0 lsls r4, 3 adds r4, r1 - ldr r3, =gUnknown_0203841E + ldr r3, =gBattleAnimArgs ldrh r1, [r3] movs r5, 0 strh r1, [r4, 0x8] @@ -45831,7 +45831,7 @@ sub_8115B0C: @ 8115B0C adds r0, r6 lsls r0, 3 adds r0, r3 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r1, [r2] strh r1, [r0, 0x8] ldrh r1, [r2, 0x2] @@ -45846,15 +45846,15 @@ sub_8115B0C: @ 8115B0C strh r1, [r0, 0x12] strh r5, [r0, 0x18] movs r4, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r1, [r0] mov r9, r3 mov r8, r2 cmp r5, r1 bge _08115B74 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r3, [r0] - ldr r7, =gUnknown_02038437 + ldr r7, =gAnimationBankTarget movs r0, 0x1 mov r12, r0 adds r2, r1, 0 @@ -46013,7 +46013,7 @@ sub_8115C80: @ 8115C80 adds r4, r0 lsls r4, 3 adds r4, r1 - ldr r3, =gUnknown_0203841E + ldr r3, =gBattleAnimArgs ldrh r1, [r3] movs r5, 0 strh r1, [r4, 0x8] @@ -46058,7 +46058,7 @@ sub_8115CD0: @ 8115CD0 lsls r4, 3 adds r4, r1 ldrh r0, [r4, 0x8] - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 adds r0, 0x10 @@ -46153,7 +46153,7 @@ sub_8115D94: @ 8115D94 adds r4, r0 lsls r4, 3 adds r4, r1 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs ldrh r0, [r5, 0x2] strh r0, [r4, 0x8] ldrh r0, [r5, 0x2] @@ -46171,7 +46171,7 @@ sub_8115D94: @ 8115D94 ldrh r0, [r5] strh r0, [r4, 0x16] ldrh r0, [r5] - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 adds r0, 0x10 @@ -46230,7 +46230,7 @@ _08115E28: .pool _08115E4C: ldrh r0, [r4, 0x16] - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 adds r0, 0x10 @@ -46304,7 +46304,7 @@ sub_8115EB8: @ 8115EB8 lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x16] - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 adds r0, 0x10 @@ -46336,11 +46336,11 @@ sub_8115F10: @ 8115F10 lsrs r0, 24 mov r8, r0 movs r2, 0 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r6, [r0] - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r7, [r0] - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrh r1, [r4] movs r5, 0x80 lsls r5, 1 @@ -46410,7 +46410,7 @@ sub_8115F94: @ 8115F94 ldrsh r0, [r4, r1] cmp r0, 0 bne _08115FD6 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] strh r0, [r4, 0xC] ldrh r0, [r1, 0x2] @@ -46429,10 +46429,10 @@ _08115FD6: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] mov r9, r0 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] mov r10, r0 ldrh r1, [r4, 0xC] @@ -46449,7 +46449,7 @@ _08115FF8: ands r0, r1 cmp r0, 0 beq _08116028 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, =gUnknown_03005D70 add r0, r9 ldrb r1, [r0] @@ -46460,7 +46460,7 @@ _08115FF8: adds r0, r2 ldr r0, [r0] ldrh r0, [r0, 0x2] - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 adds r1, r6, 0 @@ -46529,7 +46529,7 @@ sub_81160A4: @ 81160A4 movs r1, 0x4 orrs r0, r1 strb r0, [r2] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] negs r0, r0 strh r0, [r4, 0x2E] @@ -46561,14 +46561,14 @@ _081160EC: b _081160F6 .pool _081160F4: - ldr r1, =gUnknown_02021BBC + ldr r1, =gSpriteCoordOffsetX _081160F6: adds r0, r4, 0 bl oamt_set_x3A_32 b _0811610C .pool _08116104: - ldr r1, =gUnknown_02021BBE + ldr r1, =gSpriteCoordOffsetY adds r0, r4, 0 bl oamt_set_x3A_32 _0811610C: @@ -46580,7 +46580,7 @@ _0811610C: orrs r1, r0 ldrh r0, [r1] strh r0, [r4, 0x36] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x6] strh r0, [r4, 0x38] subs r0, 0x2 @@ -46650,13 +46650,13 @@ _0811618A: cmp r0, 0x1 bhi _081161DC movs r4, 0 - ldr r5, =gUnknown_0202406C + ldr r5, =gNoOfAllBanks ldrb r0, [r5] cmp r4, r0 bcs _081161DC - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites mov r12, r2 - ldr r6, =gUnknown_020241E4 + ldr r6, =gBankSpriteIds movs r7, 0x3 negs r7, r7 _081161BA: @@ -46690,9 +46690,9 @@ _081161E2: thumb_func_start sub_81161F4 sub_81161F4: @ 81161F4 push {r4-r6,lr} - ldr r6, =gUnknown_02020630 - ldr r4, =gUnknown_020241E4 - ldr r5, =gUnknown_02038436 + ldr r6, =gSprites + ldr r4, =gBankSpriteIds + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] adds r0, r4 ldrb r0, [r0] @@ -46707,7 +46707,7 @@ sub_81161F4: @ 81161F4 adds r0, r2, 0 ands r0, r3 strb r0, [r1] - ldr r3, =gUnknown_02038437 + ldr r3, =gAnimationBankTarget ldrb r0, [r3] adds r0, r4 ldrb r1, [r0] @@ -46719,7 +46719,7 @@ sub_81161F4: @ 81161F4 ldrb r1, [r0] ands r2, r1 strb r2, [r0] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0x2 @@ -46782,7 +46782,7 @@ sub_81162A4: @ 81162A4 adds r2, r0 lsls r2, 3 adds r2, r1 - ldr r3, =gUnknown_0203841E + ldr r3, =gBattleAnimArgs ldrh r1, [r3] strh r1, [r2, 0x8] ldrh r1, [r3, 0x2] @@ -46888,9 +46888,9 @@ _08116382: sub_8116388: @ 8116388 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrb r1, [r4, 0x6] - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0 @@ -46920,9 +46920,9 @@ _081163B4: sub_81163D0: @ 81163D0 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrb r1, [r4, 0x6] - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0 @@ -46937,7 +46937,7 @@ _081163F4: movs r1, 0x1 bl sub_80A6980 _081163FC: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x8] strh r0, [r5, 0x2E] ldr r0, =sub_80A67BC @@ -46955,9 +46955,9 @@ _081163FC: sub_8116420: @ 8116420 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08116444 @@ -46965,7 +46965,7 @@ sub_8116420: @ 8116420 lsls r0, 24 cmp r0, 0 bne _08116444 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x2] negs r0, r0 strh r0, [r1, 0x2] @@ -46982,7 +46982,7 @@ _08116444: sub_8116458: @ 8116458 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs movs r0, 0x2 ldrsh r1, [r5, r0] movs r0, 0x1 @@ -46996,7 +46996,7 @@ sub_8116458: @ 8116458 _08116474: ldrb r1, [r5, 0x2] adds r0, r4, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim movs r1, 0 ldrsh r0, [r5, r1] cmp r0, 0 @@ -47046,13 +47046,13 @@ _0811649C: sub_81164F0: @ 81164F0 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs ldrb r0, [r5] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x2E] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -47079,7 +47079,7 @@ sub_81164F0: @ 81164F0 strh r0, [r4, 0x26] ldrb r1, [r5, 0x6] adds r0, r4, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim ldr r1, =move_anim_8074EE0 adds r0, r4, 0 bl oamt_set_x3A_32 @@ -47095,7 +47095,7 @@ sub_81164F0: @ 81164F0 sub_8116560: @ 8116560 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 @@ -47110,7 +47110,7 @@ _0811657C: movs r1, 0x1 bl sub_80A6980 _08116584: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x6] strh r0, [r4, 0x2E] ldr r1, =move_anim_8072740 @@ -47128,9 +47128,9 @@ _08116584: sub_81165A8: @ 81165A8 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrb r1, [r4, 0x6] - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0 @@ -47192,7 +47192,7 @@ sub_8116620: @ 8116620 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r4, r1] bl sub_811583C @@ -47231,7 +47231,7 @@ sub_8116664: @ 8116664 movs r0, 0x1 bl sub_811583C adds r5, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x7 @@ -47256,14 +47256,14 @@ _081166B8: movs r5, 0 _081166BA: mov r0, sp - ldr r1, =gUnknown_02038436 + ldr r1, =gAnimationBankAttacker b _081166CA .pool _081166C4: movs r5, 0 _081166C6: mov r0, sp - ldr r1, =gUnknown_02038437 + ldr r1, =gAnimationBankTarget _081166CA: ldrb r1, [r1] strb r1, [r0] @@ -47271,10 +47271,10 @@ _081166CA: .pool _081166D4: mov r1, sp - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] strb r0, [r1] - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] strb r0, [r1, 0x1] b _0811670E @@ -47287,13 +47287,13 @@ _081166EC: _081166F4: movs r5, 0 mov r2, sp - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _08116706 .pool _08116700: movs r5, 0 mov r2, sp - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _08116706: ldrb r0, [r0] movs r1, 0x2 @@ -47343,7 +47343,7 @@ sub_811675C: @ 811675C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] bl sub_811583C @@ -47371,49 +47371,49 @@ _0811678C: .4byte _0811682C .4byte _0811682C _081167B4: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldr r0, =0x00000b0c b _08116830 .pool _081167C4: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r0, 0x9E lsls r0, 4 b _08116830 .pool _081167D0: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldr r0, =0x00002f1e b _08116830 .pool _081167E0: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r0, 0x90 lsls r0, 7 b _08116830 .pool _081167EC: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldr r0, =0x00007ecb b _08116830 .pool _081167FC: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldr r0, =0x00007ecb b _08116830 .pool _0811680C: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldr r0, =0x00002a16 b _08116830 .pool _0811681C: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldr r0, =0x00000d2e b _08116830 .pool _0811682C: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldr r0, =0x00007fff _08116830: strh r0, [r1, 0x8] @@ -47433,9 +47433,9 @@ sub_8116848: @ 8116848 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0] - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 adds r0, 0x10 @@ -47462,7 +47462,7 @@ sub_8116874: @ 8116874 strh r1, [r2, 0x8] lsrs r1, 16 strh r1, [r2, 0xA] - ldr r3, =gUnknown_0203841E + ldr r3, =gBattleAnimArgs ldrh r1, [r3, 0x2] strh r1, [r2, 0xC] ldrh r1, [r3, 0x4] @@ -47580,7 +47580,7 @@ sub_8116960: @ 8116960 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrb r0, [r4] ldrb r1, [r4, 0x2] ldrb r2, [r4, 0x4] @@ -47630,7 +47630,7 @@ sub_81169C0: @ 81169C0 lsls r1, 3 ldr r0, =gTasks adds r1, r0 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r0, [r2] movs r3, 0 strh r0, [r1, 0x8] @@ -47679,7 +47679,7 @@ _08116A28: lsls r0, 16 cmp r0, 0 blt _08116AA6 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites movs r1, 0x14 ldrsh r0, [r4, r1] lsls r1, r0, 4 @@ -47867,15 +47867,15 @@ _08116BA2: lsls r0, 24 cmp r0, 0 bne _08116C26 - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _08116BD2 ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 cmp r0, 0 bne _08116C26 @@ -47888,8 +47888,8 @@ _08116BD2: lsrs r0, 24 cmp r0, 0x1 bne _08116C26 - ldr r3, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 + ldr r3, =gSprites + ldr r1, =gBankSpriteIds ldrb r0, [r5] eors r0, r6 adds r0, r1 @@ -47932,13 +47932,13 @@ _08116C26: b _08116CAC .pool _08116C64: - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08116C90 - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -47949,7 +47949,7 @@ _08116C64: b _08116CA0 .pool _08116C90: - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -47969,7 +47969,7 @@ _08116CAC: adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] adds r1, r4, 0 adds r2, r5, 0 @@ -47997,7 +47997,7 @@ _08116CAC: movs r2, 0x2 bl LoadPalette ldr r2, =gUnknown_02022E18 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r4, 4 adds r1, r4 lsls r1, 2 @@ -48120,14 +48120,14 @@ _08116DF6: bl SetGpuReg movs r0, 0 bl obj_id_for_side_relative_to_move - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites movs r0, 0x8 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite mov r0, sp bl sub_80A6B30 mov r0, sp @@ -48137,8 +48137,8 @@ _08116DF6: ldrsh r0, [r5, r1] cmp r0, 0x1 bne _08116E7C - ldr r2, =gUnknown_020241E4 - ldr r0, =gUnknown_02038436 + ldr r2, =gBankSpriteIds + ldr r0, =gAnimationBankAttacker ldrb r1, [r0] movs r0, 0x2 eors r0, r1 @@ -48185,7 +48185,7 @@ sub_8116EB4: @ 8116EB4 bl AllocZeroed str r0, [r4] movs r2, 0 - ldr r3, =gUnknown_0203841E + ldr r3, =gBattleAnimArgs _08116EC8: ldr r1, [r4] lsls r0, r2, 1 @@ -48223,11 +48223,11 @@ sub_8116F04: @ 8116F04 ldrsh r0, [r1, r2] cmp r0, 0 bne _08116F24 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _08116F26 .pool _08116F24: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _08116F26: ldrb r0, [r0] strb r0, [r1] @@ -48306,14 +48306,14 @@ _08116FBA: cmp r0, 0 bne _08117036 ldrb r0, [r1] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _08116FEC ldr r0, [r4] ldrb r0, [r0] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 cmp r0, 0 bne _08117036 @@ -48325,8 +48325,8 @@ _08116FEC: lsrs r5, r0, 24 cmp r5, 0x1 bne _08117036 - ldr r3, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 + ldr r3, =gSprites + ldr r1, =gBankSpriteIds ldr r0, [r4] ldrb r0, [r0, 0x1] adds r0, r1 @@ -48370,11 +48370,11 @@ _08117078: ldr r4, =gUnknown_0203A110 ldr r0, [r4] ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _081170A8 - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID ldr r0, [r4] ldrb r0, [r0] lsls r0, 1 @@ -48386,7 +48386,7 @@ _08117078: b _081170BA .pool _081170A8: - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID ldr r0, [r4] ldrb r0, [r0] lsls r0, 1 @@ -48425,7 +48425,7 @@ sub_81170EC: @ 81170EC lsrs r5, r0, 24 movs r0, 0 mov r8, r0 - ldr r6, =gUnknown_020241E4 + ldr r6, =gBankSpriteIds ldr r4, =gUnknown_0203A110 ldr r2, [r4] ldrb r0, [r2] @@ -48601,7 +48601,7 @@ _08117280: strh r4, [r1, 0xE] ldrb r0, [r3, 0x2] strh r0, [r1, 0x14] - ldr r2, =gUnknown_020241E4 + ldr r2, =gBankSpriteIds ldrb r0, [r3, 0x1] adds r0, r2 ldrb r0, [r0] @@ -48619,7 +48619,7 @@ _08117280: lsls r1, 24 asrs r1, 24 movs r0, 0xEF - bl audio_play_and_stuff + bl PlaySE12WithPanning b _081172E0 .pool _081172CC: @@ -48630,7 +48630,7 @@ _081172CC: lsls r1, 24 asrs r1, 24 movs r0, 0xF5 - bl audio_play_and_stuff + bl PlaySE12WithPanning _081172E0: add sp, 0x10 pop {r3} @@ -48789,9 +48789,9 @@ _081173E6: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite movs r1, 0xC ldrsh r0, [r5, r1] cmp r0, 0 @@ -48802,7 +48802,7 @@ _081173E6: adds r0, r1 lsls r0, 2 adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0811743A: movs r1, 0x14 ldrsh r0, [r5, r1] @@ -49044,7 +49044,7 @@ sub_8117610: @ 8117610 lsrs r6, r0, 24 movs r4, 0 movs r2, 0 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r3, [r0] movs r5, 0x1 _08117620: @@ -49060,7 +49060,7 @@ _0811762E: cmp r2, 0x3 bls _08117620 movs r2, 0x5 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs adds r1, r0, 0 adds r1, 0x8 _0811763C: @@ -49091,14 +49091,14 @@ sub_8117660: @ 8117660 bl CreateTask lsls r0, 24 lsrs r5, r0, 24 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0 beq _0811769C - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0811769C @@ -49114,7 +49114,7 @@ _0811769C: adds r1, r5 lsls r1, 3 adds r1, r0 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r0, [r2] strh r0, [r1, 0xA] ldrh r0, [r2, 0x2] @@ -49169,7 +49169,7 @@ sub_81176D8: @ 81176D8 strh r3, [r1, 0x1C] ands r2, r0 strh r2, [r1, 0x1E] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r3, 0xE ldrsh r2, [r0, r3] movs r7, 0xE @@ -49196,10 +49196,10 @@ sub_8117754: @ 8117754 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner - ldr r1, =gUnknown_0203841E + bl GetBankSide + ldr r1, =gBattleAnimArgs lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0xE] @@ -49217,10 +49217,10 @@ sub_8117780: @ 8117780 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_side_get_owner - ldr r1, =gUnknown_0203841E + bl GetBankSide + ldr r1, =gBattleAnimArgs lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0xE] @@ -49237,12 +49237,12 @@ sub_81177AC: @ 81177AC push {r4,r5,lr} lsls r0, 24 lsrs r3, r0, 24 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs movs r4, 0 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r2, [r0] movs r0, 0x2 - ldr r1, =gUnknown_02038437 + ldr r1, =gAnimationBankTarget eors r0, r2 ldrb r1, [r1] cmp r0, r1 @@ -49264,9 +49264,9 @@ sub_81177E4: @ 81177E4 lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites _081177EE: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] cmp r4, r0 beq _0811782C @@ -49276,14 +49276,14 @@ _081177EE: lsls r0, 24 cmp r0, 0 beq _0811782C - ldr r0, =gUnknown_020241E4 + ldr r0, =gBankSpriteIds adds r0, r4, r0 ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r6 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs adds r2, 0x3E movs r0, 0x1 ldrb r3, [r1] @@ -49431,11 +49431,11 @@ _08117930: .pool _08117964: adds r0, r7, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08117988 - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r7, 1 adds r0, r1 ldrh r1, [r0] @@ -49445,7 +49445,7 @@ _08117964: b _08117996 .pool _08117988: - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r7, 1 adds r0, r1 ldrh r1, [r0] @@ -49459,7 +49459,7 @@ _08117996: lsls r0, 16 lsrs r4, r0, 16 _081179A2: - ldr r5, =gUnknown_020241E4 + ldr r5, =gBankSpriteIds adds r0, r7, r5 ldrb r1, [r0] adds r0, r7, 0 @@ -49728,9 +49728,9 @@ _08117BB2: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite movs r1, 0xC ldrsh r0, [r5, r1] cmp r0, 0 @@ -49741,7 +49741,7 @@ _08117BB2: adds r0, r1 lsls r0, 2 adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite _08117C06: adds r0, r6, 0 bl move_anim_task_del @@ -49758,7 +49758,7 @@ sub_8117C24: @ 8117C24 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldr r1, =gUnknown_02022FF0 ldrb r1, [r1] strh r1, [r2] @@ -49823,7 +49823,7 @@ sub_8117CA0: @ 8117CA0 lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -49854,13 +49854,13 @@ _08117CD2: _08117CE4: cmp r0, 0x1 bne _08117CF0 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _08117CF6 .pool _08117CF0: cmp r0, 0x2 bne _08117CFC - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _08117CF6: ldrb r0, [r0] adds r4, r0, 0 @@ -49868,7 +49868,7 @@ _08117CF6: _08117CFC: ldr r0, =gUnknown_020244D4 ldr r1, [r0] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r2, 0x2 ldrsh r0, [r0, r2] movs r2, 0xBE @@ -49898,7 +49898,7 @@ sub_8117D3C: @ 8117D3C lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -49929,13 +49929,13 @@ _08117D6E: _08117D80: cmp r0, 0x1 bne _08117D8C - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _08117D92 .pool _08117D8C: cmp r0, 0x2 bne _08117D98 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _08117D92: ldrb r0, [r0] adds r4, r0, 0 @@ -49946,7 +49946,7 @@ _08117D98: adds r0, r1 ldr r1, =gUnknown_020244D4 ldr r2, [r1] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r3, 0x2 ldrsh r1, [r1, r3] movs r3, 0xBE @@ -49973,7 +49973,7 @@ sub_8117DD8: @ 8117DD8 lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -50004,13 +50004,13 @@ _08117E0A: _08117E1C: cmp r0, 0x1 bne _08117E28 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _08117E2E .pool _08117E28: cmp r0, 0x2 bne _08117E34 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _08117E2E: ldrb r0, [r0] adds r4, r0, 0 @@ -50042,13 +50042,13 @@ sub_8117E60: @ 8117E60 lsrs r1, r0, 24 cmp r1, 0 beq _08117E80 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r0, 0x1 strh r0, [r1, 0xE] b _08117E84 .pool _08117E80: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs strh r1, [r0, 0xE] _08117E84: adds r0, r4, 0 @@ -50064,11 +50064,11 @@ sub_8117E94: @ 8117E94 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02038436 - ldr r1, =gEnemyMonIndex + ldr r2, =gAnimationBankAttacker + ldr r1, =gBankTarget ldrb r1, [r1] strb r1, [r2] - ldr r2, =gUnknown_02038437 + ldr r2, =gAnimationBankTarget ldr r1, =gUnknown_0202420E ldrb r1, [r1] strb r1, [r2] @@ -50083,23 +50083,23 @@ sub_8117EC4: @ 8117EC4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _08117EF8 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r0, 0x1 b _08117EFC .pool _08117EF8: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r0, 0 _08117EFC: strh r0, [r1, 0xE] @@ -50116,8 +50116,8 @@ sub_8117F10: @ 8117F10 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02038437 - ldr r1, =gEnemyMonIndex + ldr r2, =gAnimationBankTarget + ldr r1, =gBankTarget ldrb r1, [r1] strb r1, [r2] bl move_anim_task_del @@ -50131,11 +50131,11 @@ sub_8117F30: @ 8117F30 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02038436 - ldr r1, =gUnknown_0202420B + ldr r2, =gAnimationBankAttacker + ldr r1, =gBankAttacker ldrb r1, [r1] strb r1, [r2] - ldr r2, =gUnknown_02038437 + ldr r2, =gAnimationBankTarget ldr r1, =gUnknown_0202420E ldrb r1, [r1] strb r1, [r2] @@ -50165,7 +50165,7 @@ _08117F78: adds r3, r0 ldr r0, =gUnknown_020244D0 ldr r4, [r0] - ldr r2, =gUnknown_02038436 + ldr r2, =gAnimationBankAttacker ldrb r0, [r2] ldr r1, [r4] lsls r0, 2 @@ -50184,7 +50184,7 @@ _08117F78: strb r0, [r1] ldr r0, =sub_8117FD0 str r0, [r3] - ldr r1, =gUnknown_020383FE + ldr r1, =gAnimVisualTaskCount ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] @@ -50200,7 +50200,7 @@ sub_8117FD0: @ 8117FD0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r2, 0xE ldrsh r1, [r0, r2] movs r0, 0x80 @@ -50209,7 +50209,7 @@ sub_8117FD0: @ 8117FD0 bne _08118014 ldr r0, =gUnknown_020244D0 ldr r1, [r0] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r3, [r0] ldr r0, [r1] lsls r3, 2 @@ -51592,8 +51592,8 @@ _08118BA8: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] - ldr r4, =gUnknown_02020630 - ldr r5, =gUnknown_0202449C + ldr r4, =gSprites + ldr r5, =gBattleStruct ldr r0, [r5] adds r0, 0x7D ldrb r0, [r0] @@ -52078,7 +52078,7 @@ sub_8118FBC: @ 8118FBC lsls r5, 16 lsrs r5, 16 adds r0, r4, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_020244D4 diff --git a/asm/battle_anim_8170478.s b/asm/battle_anim_8170478.s index 608e5d2007..690138efbc 100644 --- a/asm/battle_anim_8170478.s +++ b/asm/battle_anim_8170478.s @@ -16,7 +16,7 @@ sub_8170478: @ 8170478 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x10] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r4, [r0] ldr r0, =gUnknown_02022E24 movs r1, 0 @@ -59,7 +59,7 @@ sub_8170478: @ 8170478 ldr r0, =gUnknown_03005D70 adds r4, r0 ldrb r0, [r4] - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites mov r9, r1 lsls r4, r0, 4 adds r4, r0 @@ -69,12 +69,12 @@ sub_8170478: @ 8170478 ldrh r6, [r4, 0x38] lsls r6, 24 lsrs r6, 24 - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy bl CreateInvisibleSpriteWithCallback lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x14] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy bl CreateInvisibleSpriteWithCallback mov r10, r0 mov r2, r10 @@ -146,7 +146,7 @@ sub_8170478: @ 8170478 movs r0, 0x1C add r9, r0 add r6, r9 - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy str r1, [r6] add r4, r9 str r1, [r4] @@ -212,7 +212,7 @@ sub_8170660: @ 8170660 push {r7} lsls r0, 24 lsrs r7, r0, 24 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] mov r8, r0 ldr r1, =gTasks @@ -359,16 +359,16 @@ _0817076C: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites adds r0, r6 - bl RemoveObjectAndFreeTiles + bl DestroySprite movs r0, 0xC ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 - bl RemoveObjectAndFreeTiles + bl DestroySprite movs r0, 0x1 movs r1, 0x1 movs r2, 0 @@ -440,7 +440,7 @@ sub_8170834: @ 8170834 lsls r5, r0, 4 adds r5, r0 lsls r5, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r5, r0 ldrb r1, [r5, 0x6] mov r10, r1 @@ -448,11 +448,11 @@ sub_8170834: @ 8170834 lsls r4, 24 lsrs r4, 24 ldr r0, =0x0000d709 - bl AllocObjectPalette + bl AllocSpritePalette mov r2, r9 strb r0, [r2] ldr r0, =0x0000d70a - bl AllocObjectPalette + bl AllocSpritePalette strb r0, [r7] ldrb r0, [r5, 0x5] lsrs r0, 4 @@ -464,7 +464,7 @@ sub_8170834: @ 8170834 lsls r6, r4, 4 adds r6, r4 lsls r6, 2 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites adds r6, r2 ldrb r4, [r6, 0x5] lsrs r4, 4 @@ -504,7 +504,7 @@ sub_8170834: @ 8170834 lsls r1, r2, 4 add r1, r10 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 mov r0, r9 ldrb r2, [r0] @@ -540,7 +540,7 @@ sub_8170920: @ 8170920 lsrs r4, 24 mov r1, sp adds r1, 0x1 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r2, [r0] mov r0, sp bl sub_8170834 @@ -564,7 +564,7 @@ sub_817094C: @ 817094C ldr r1, =gUnknown_03005D70 adds r0, r1 ldrb r0, [r0] - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites mov r8, r1 lsls r5, r0, 4 adds r5, r0 @@ -576,16 +576,16 @@ sub_817094C: @ 817094C lsls r6, 24 lsrs r6, 24 ldr r0, =0x0000d709 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag ldr r0, =0x0000d70a - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag ldr r0, =0x0000d6ff - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =0x0000d704 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsls r4, 4 ldrb r2, [r5, 0x5] @@ -628,7 +628,7 @@ sub_81709EC: @ 81709EC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] bl sub_817094C adds r0, r4, 0 @@ -648,7 +648,7 @@ sub_8170A0C: @ 8170A0C adds r1, r0 lsls r1, 3 adds r1, r2 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r0, [r2] strh r0, [r1, 0x1C] ldrh r0, [r2, 0x2] @@ -682,7 +682,7 @@ sub_8170A38: @ 8170A38 blt _08170AF8 strh r6, [r4, 0x8] ldr r0, =0x0000d709 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r2, r0, 24 movs r3, 0x1C @@ -765,8 +765,8 @@ sub_8170B04: @ 8170B04 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02038436 + ldr r1, =gBankSpriteIds + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] adds r0, r1 ldrb r5, [r0] @@ -823,7 +823,7 @@ _08170B76: _08170B84: adds r0, r5, 0 bl sub_80A7344 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r5, 4 adds r0, r5 lsls r0, 2 @@ -851,17 +851,17 @@ sub_8170BB0: @ 8170BB0 sub sp, 0xC lsls r0, 24 lsrs r5, r0, 24 - ldr r1, =gUnknown_020241E4 - ldr r4, =gUnknown_02038436 + ldr r1, =gBankSpriteIds + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] adds r1, r0, r1 ldrb r1, [r1] mov r9, r1 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08170BF8 - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -872,7 +872,7 @@ sub_8170BB0: @ 8170BB0 b _08170C08 .pool _08170BF8: - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -904,7 +904,7 @@ _08170C08: b _08170CEE .pool _08170C44: - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] movs r1, 0 bl sub_80A5C6C @@ -916,7 +916,7 @@ _08170C44: bl sub_80A5C6C adds r1, r0, 0 lsls r1, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites mov r3, r9 lsls r0, r3, 4 add r0, r9 @@ -1041,12 +1041,12 @@ sub_8170D4C: @ 8170D4C ldrb r0, [r0, 0x8] cmp r0, 0x5 bne _08170D70 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldr r0, =0x0000ffff b _08170D74 .pool _08170D70: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r0, 0 _08170D74: strh r0, [r1, 0xE] @@ -1150,11 +1150,11 @@ sub_8170E04: @ 8170E04 movs r1, 0x20 movs r2, 0x50 movs r3, 0x1D - bl AddObjectToFront + bl CreateSprite adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites mov r9, r1 lsls r4, r5, 4 adds r4, r5 @@ -1162,7 +1162,7 @@ sub_8170E04: @ 8170E04 adds r6, r4, r1 movs r0, 0x22 strh r0, [r6, 0x2E] - ldr r2, =gUnknown_02038437 + ldr r2, =gAnimationBankTarget mov r8, r2 ldrb r0, [r2] movs r1, 0 @@ -1186,7 +1186,7 @@ sub_8170E04: @ 8170E04 ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r3, [r0, 0x8] - ldr r1, =gUnknown_020241E4 + ldr r1, =gBankSpriteIds mov r2, r8 ldrb r0, [r2] adds r0, r1 @@ -1236,7 +1236,7 @@ sub_8170EF0: @ 8170EF0 lsls r0, 3 adds r0, r1 ldrb r1, [r0, 0x8] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 @@ -1283,7 +1283,7 @@ _08170F54: lsls r4, 24 lsrs r4, 24 movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 bl sub_80A82E4 @@ -1301,11 +1301,11 @@ _08170F54: movs r2, 0x50 orrs r5, r2 adds r2, r5, 0 - bl AddObjectToFront + bl CreateSprite adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r9, r0 lsls r4, r5, 4 adds r4, r5 @@ -1313,7 +1313,7 @@ _08170F54: adds r6, r4, r0 movs r0, 0x22 strh r0, [r6, 0x2E] - ldr r1, =gUnknown_02038437 + ldr r1, =gAnimationBankTarget mov r8, r1 ldrb r0, [r1] movs r1, 0 @@ -1332,11 +1332,11 @@ _08170F54: movs r0, 0x1C add r9, r0 add r4, r9 - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r4] movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, =gUnknown_020241E4 + bl GetBankByPlayerAI + ldr r1, =gBankSpriteIds lsls r0, 24 lsrs r0, 24 adds r0, r1 @@ -1369,10 +1369,10 @@ sub_8171030: @ 8171030 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, =gUnknown_020241E4 + bl GetBankByPlayerAI + ldr r1, =gBankSpriteIds lsls r0, 24 lsrs r0, 24 adds r0, r1 @@ -1387,7 +1387,7 @@ sub_8171030: @ 8171030 bne _0817108A movs r0, 0x3D movs r1, 0 - bl audio_play_and_stuff + bl PlaySE12WithPanning ldr r0, =gTasks lsls r4, r5, 2 adds r4, r5 @@ -1420,10 +1420,10 @@ sub_81710A8: @ 81710A8 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites movs r0, 0 - bl battle_get_side_with_given_state - ldr r4, =gUnknown_020241E4 + bl GetBankByPlayerAI + ldr r4, =gBankSpriteIds lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -1438,7 +1438,7 @@ sub_81710A8: @ 81710A8 cmp r0, 0 bge _081710F4 movs r0, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -1448,7 +1448,7 @@ sub_81710A8: @ 81710A8 lsls r0, 2 adds r0, r6 movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r5, 0 bl DestroyTask _081710F4: @@ -1504,7 +1504,7 @@ sub_8171134: @ 8171134 _08171160: adds r0, r4, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 @@ -1550,7 +1550,7 @@ _08171188: movs r2, 0x1 movs r3, 0x1C bl sub_8171D98 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r1, [r0] movs r0, 0 movs r2, 0xE @@ -1583,9 +1583,9 @@ sub_81711E8: @ 81711E8 strh r0, [r4, 0x38] ldr r0, =sub_8171240 str r0, [r4, 0x1C] - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02038437 + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r0, =gAnimationBankTarget ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -1606,8 +1606,8 @@ _08171224: sub_8171240: @ 8171240 push {r4-r7,lr} adds r7, r0, 0 - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02038437 + ldr r1, =gBankSpriteIds + ldr r0, =gAnimationBankTarget ldrb r0, [r0] adds r0, r1 ldrb r4, [r0] @@ -1627,7 +1627,7 @@ sub_8171240: @ 8171240 cmp r0, 0xB bne _08171272 movs r0, 0x3C - bl audio_play + bl PlaySE _08171272: movs r1, 0x8 ldrsh r0, [r5, r1] @@ -1654,7 +1654,7 @@ _08171296: movs r0, 0x1C str r0, [r1] ldr r2, =gUnknown_030062E4 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 @@ -1690,7 +1690,7 @@ _081712E8: ldrh r1, [r5, 0xE] adds r0, r1 strh r0, [r5, 0xE] - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r4, 4 adds r1, r4 lsls r1, 2 @@ -1710,7 +1710,7 @@ _081712E8: _0817132C: adds r0, r4, 0 bl sub_80A7344 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 @@ -1740,7 +1740,7 @@ _08171354: bl DestroyTask adds r0, r7, 0 movs r1, 0x2 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0 strh r0, [r7, 0x38] ldr r0, =sub_817138C @@ -1846,19 +1846,19 @@ _08171434: b _08171452 _0817143A: movs r0, 0x38 - bl audio_play + bl PlaySE b _08171486 _08171442: movs r0, 0x39 - bl audio_play + bl PlaySE b _08171486 _0817144A: movs r0, 0x3A - bl audio_play + bl PlaySE b _08171486 _08171452: movs r0, 0x3B - bl audio_play + bl PlaySE b _08171486 _0817145A: movs r2, 0x38 @@ -1939,7 +1939,7 @@ sub_81714D4: @ 81714D4 strb r0, [r2] adds r0, r4, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r0, [r0, 0x8] @@ -1947,7 +1947,7 @@ sub_81714D4: @ 81714D4 ldr r0, =sub_8171520 str r0, [r4, 0x1C] movs r0, 0x17 - bl audio_play + bl PlaySE _08171510: pop {r4,r5} pop {r0} @@ -2052,12 +2052,12 @@ _081715AE: bge _081715EA adds r0, r4, 0 movs r1, 0x2 - bl sub_80082B8 + bl ChangeSpriteAffineAnim b _081717AE _081715EA: adds r0, r4, 0 movs r1, 0x1 - bl sub_80082B8 + bl ChangeSpriteAffineAnim b _081717AE _081715F4: ldr r1, =gUnknown_020244D0 @@ -2145,12 +2145,12 @@ _0817166E: bge _0817169C adds r0, r4, 0 movs r1, 0x2 - bl sub_80082B8 + bl ChangeSpriteAffineAnim b _081716A4 _0817169C: adds r0, r4, 0 movs r1, 0x1 - bl sub_80082B8 + bl ChangeSpriteAffineAnim _081716A4: ldr r1, =gUnknown_020244D0 ldr r5, [r1] @@ -2264,23 +2264,23 @@ _08171768: strh r0, [r4, 0x34] adds r0, r4, 0 movs r1, 0x3 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim movs r6, 0x36 ldrsh r0, [r4, r6] cmp r0, 0 bge _081717A0 adds r0, r4, 0 movs r1, 0x2 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim b _081717A8 .pool _081717A0: adds r0, r4, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim _081717A8: movs r0, 0x17 - bl audio_play + bl PlaySE _081717AE: pop {r4-r6} pop {r0} @@ -2333,7 +2333,7 @@ sub_81717F8: @ 81717F8 push {r7} sub sp, 0x4 adds r6, r0, 0 - ldr r7, =gUnknown_02038437 + ldr r7, =gAnimationBankTarget ldrh r0, [r6, 0x36] adds r0, 0x1 movs r1, 0 @@ -2344,7 +2344,7 @@ sub_81717F8: @ 81717F8 cmp r1, 0x28 bne _0817183C movs r0, 0xFE - bl audio_play + bl PlaySE ldrb r1, [r6, 0x5] lsrs r1, 4 movs r0, 0x80 @@ -2375,22 +2375,22 @@ _0817183C: _0817185A: cmp r1, 0x5F bne _08171880 - ldr r0, =gUnknown_020244B9 + ldr r0, =gDoingBattleAnim movs r1, 0 strb r1, [r0] movs r0, 0x1 bl sub_8072A88 bl m4aMPlayAllStop ldr r0, =0x00000213 - bl audio_play + bl PlaySE b _081718BC .pool _08171880: ldr r0, =0x0000013b cmp r1, r0 bne _081718BC - ldr r5, =gUnknown_02020630 - ldr r4, =gUnknown_020241E4 + ldr r5, =gSprites + ldr r4, =gBankSpriteIds ldrb r0, [r7] adds r0, r4 ldrb r1, [r0] @@ -2401,7 +2401,7 @@ _08171880: ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix ldrb r0, [r7] adds r0, r4 ldrb r1, [r0] @@ -2409,7 +2409,7 @@ _08171880: adds r0, r1 lsls r0, 2 adds r0, r5 - bl RemoveObjectAndFreeTiles + bl DestroySprite mov r0, r8 strh r0, [r6, 0x2E] ldr r0, =sub_81718D8 @@ -2461,7 +2461,7 @@ _081718F6: bl SetGpuReg ldr r0, [r4, 0x14] ldrh r0, [r0, 0x2] - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 adds r0, 0x10 @@ -2554,9 +2554,9 @@ sub_81719C0: @ 81719C0 .pool _081719D8: adds r0, r4, 0 - bl obj_free_rotscale_entry + bl FreeSpriteOamMatrix adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _081719E4: pop {r4} pop {r0} @@ -2590,7 +2590,7 @@ _08171A14: movs r0, 0x4 bl sub_8171D60 movs r7, 0 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites mov r9, r2 movs r0, 0x1C add r0, r9 @@ -2602,7 +2602,7 @@ _08171A26: ldrsh r2, [r6, r0] ldr r0, =gUnknown_085E5250 mov r3, r8 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 @@ -2638,7 +2638,7 @@ _08171A26: ldr r0, =gUnknown_085E51B4 ldrb r1, [r0, 0x4] adds r0, r5, 0 - bl StartObjectImageAnim + bl StartSpriteAnim _08171A82: adds r7, 0x1 cmp r7, 0x2 @@ -2676,7 +2676,7 @@ sub_8171AAC: @ 8171AAC cmp r0, 0 beq _08171ADC adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _08171ADC: pop {r4} pop {r0} @@ -2689,10 +2689,10 @@ sub_8171AE4: @ 8171AE4 sub sp, 0x4 adds r4, r0, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r4, 0 movs r1, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim ldr r0, =sub_8171BAC str r0, [r4, 0x1C] ldr r0, =gUnknown_02024208 @@ -2715,16 +2715,16 @@ sub_8171AE4: @ 8171AE4 movs r2, 0x1 movs r3, 0x1C bl sub_8171D98 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r1, [r0] movs r0, 0x1 movs r2, 0xE adds r3, r5, 0 bl sub_81729E8 _08171B36: - ldr r6, =gUnknown_02020630 - ldr r5, =gUnknown_020241E4 - ldr r4, =gUnknown_02038437 + ldr r6, =gSprites + ldr r5, =gBankSpriteIds + ldr r4, =gAnimationBankTarget ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] @@ -2746,7 +2746,7 @@ _08171B36: lsls r0, 2 adds r0, r6 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] @@ -2754,7 +2754,7 @@ _08171B36: adds r0, r1 lsls r0, 2 adds r0, r6 - bl AnimateObject + bl AnimateSprite ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] @@ -2790,9 +2790,9 @@ sub_8171BAC: @ 8171BAC orrs r0, r1 strb r0, [r2] _08171BCA: - ldr r4, =gUnknown_02020630 - ldr r3, =gUnknown_020241E4 - ldr r2, =gUnknown_02038437 + ldr r4, =gSprites + ldr r3, =gBankSpriteIds + ldr r2, =gAnimationBankTarget ldrb r0, [r2] adds r0, r3 ldrb r1, [r0] @@ -2808,7 +2808,7 @@ _08171BCA: bge _08171C04 adds r0, r1, 0 movs r1, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim movs r5, 0x1 b _08171C24 .pool @@ -2839,9 +2839,9 @@ _08171C24: beq _08171C8A cmp r5, 0 beq _08171C8A - ldr r4, =gUnknown_02020630 - ldr r3, =gUnknown_020241E4 - ldr r2, =gUnknown_02038437 + ldr r4, =gSprites + ldr r3, =gBankSpriteIds + ldr r2, =gAnimationBankTarget ldrb r0, [r2] adds r0, r3 ldrb r1, [r0] @@ -2876,7 +2876,7 @@ _08171C24: strh r5, [r7, 0x2E] ldr r0, =sub_81719C0 str r0, [r7, 0x1C] - ldr r0, =gUnknown_020244B9 + ldr r0, =gDoingBattleAnim strb r6, [r0] movs r0, 0x1 bl sub_8072A88 @@ -2970,7 +2970,7 @@ _08171D3E: strh r0, [r4, 0x2E] ldr r0, =sub_81719C0 str r0, [r4, 0x1C] - ldr r1, =gUnknown_020244B9 + ldr r1, =gDoingBattleAnim movs r0, 0 strb r0, [r1] movs r0, 0x1 @@ -2990,7 +2990,7 @@ sub_8171D60: @ 8171D60 lsrs r5, r0, 21 adds r4, r5, r1 ldrh r0, [r4, 0x6] - bl GetObjectTileRangeStartByTag + bl GetSpriteTileStartByTag lsls r0, 16 ldr r1, =0xffff0000 cmp r0, r1 @@ -3060,7 +3060,7 @@ sub_8171D98: @ 8171D98 strh r1, [r0, 0x10] strh r5, [r0, 0x26] movs r0, 0xF - bl audio_play + bl PlaySE adds r0, r4, 0 pop {r3-r5} mov r8, r3 @@ -3131,7 +3131,7 @@ sub_8171E50: @ 8171E50 lsls r0, 3 ldr r4, =gUnknown_085E51F0 adds r0, r4 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r10, r0 @@ -3142,14 +3142,14 @@ sub_8171E50: @ 8171E50 lsls r4, r0, 4 add r4, r10 lsls r4, 2 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites adds r7, r4, r5 ldr r0, =gUnknown_085E51B4 ldr r1, [sp] adds r0, r1, r0 ldrb r1, [r0] adds r0, r7, 0 - bl StartObjectImageAnim + bl StartSpriteAnim adds r5, 0x1C adds r4, r5 ldr r0, =sub_8171F68 @@ -3193,7 +3193,7 @@ _08171EEC: ands r0, r1 cmp r0, 0 bne _08171F22 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r2, r10 lsls r1, r2, 4 add r1, r10 @@ -3308,7 +3308,7 @@ sub_8171FC4: @ 8171FC4 ldrb r1, [r1, 0x10] str r1, [sp, 0xC] movs r7, 0 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites mov r10, r3 mov r1, r8 lsls r0, r1, 1 @@ -3322,7 +3322,7 @@ _0817200A: ldr r1, [sp] ldr r2, [sp, 0x4] ldr r3, [sp, 0xC] - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x40 @@ -3337,8 +3337,8 @@ _0817200A: add r0, r8 ldrb r1, [r0] adds r0, r5, 0 - bl StartObjectImageAnim - ldr r0, =gUnknown_0202064C + bl StartSpriteAnim + ldr r0, =gSprites + 0x1C adds r4, r0 ldr r0, =sub_8172508 str r0, [r4] @@ -3375,7 +3375,7 @@ _0817206A: ands r0, r1 cmp r0, 0 bne _08172092 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r6, 4 adds r1, r6 lsls r1, 2 @@ -3426,7 +3426,7 @@ sub_81720C8: @ 81720C8 ldrb r1, [r1, 0x10] str r1, [sp, 0xC] movs r7, 0 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites mov r10, r3 mov r1, r8 lsls r0, r1, 1 @@ -3440,7 +3440,7 @@ _0817210E: ldr r1, [sp] ldr r2, [sp, 0x4] ldr r3, [sp, 0xC] - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x40 @@ -3455,8 +3455,8 @@ _0817210E: add r0, r8 ldrb r1, [r0] adds r0, r5, 0 - bl StartObjectImageAnim - ldr r0, =gUnknown_0202064C + bl StartSpriteAnim + ldr r0, =gSprites + 0x1C adds r4, r0 ldr r0, =sub_8172508 str r0, [r4] @@ -3493,7 +3493,7 @@ _0817216E: ands r0, r1 cmp r0, 0 bne _08172196 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r6, 4 adds r1, r6 lsls r1, 2 @@ -3546,7 +3546,7 @@ sub_81721CC: @ 81721CC adds r0, r1 lsls r0, 3 str r0, [sp, 0x10] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites mov r8, r3 ldr r0, =gUnknown_085E51B4 adds r1, r0 @@ -3558,7 +3558,7 @@ _08172212: ldr r1, [sp] ldr r2, [sp, 0x4] ldr r3, [sp, 0xC] - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x40 @@ -3572,8 +3572,8 @@ _08172212: mov r3, r10 ldrb r1, [r3] adds r0, r5, 0 - bl StartObjectImageAnim - ldr r0, =gUnknown_0202064C + bl StartSpriteAnim + ldr r0, =gSprites + 0x1C adds r4, r0 ldr r0, =sub_8172508 str r0, [r4] @@ -3609,7 +3609,7 @@ _0817226E: ands r0, r1 cmp r0, 0 bne _08172296 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r6, 4 adds r1, r6 lsls r1, 2 @@ -3660,7 +3660,7 @@ sub_81722CC: @ 81722CC ldrb r1, [r1, 0x10] str r1, [sp, 0xC] movs r7, 0 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites mov r10, r3 mov r1, r8 lsls r0, r1, 1 @@ -3674,7 +3674,7 @@ _08172312: ldr r1, [sp] ldr r2, [sp, 0x4] ldr r3, [sp, 0xC] - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x40 @@ -3689,8 +3689,8 @@ _08172312: add r0, r8 ldrb r1, [r0] adds r0, r5, 0 - bl StartObjectImageAnim - ldr r0, =gUnknown_0202064C + bl StartSpriteAnim + ldr r0, =gSprites + 0x1C adds r4, r0 ldr r0, =sub_8172508 str r0, [r4] @@ -3729,7 +3729,7 @@ _08172376: ands r0, r1 cmp r0, 0 bne _0817239E - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r6, 4 adds r1, r6 lsls r1, 2 @@ -3793,7 +3793,7 @@ _08172404: adds r1, r0 lsls r1, 3 str r1, [sp, 0x10] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites mov r9, r3 ldr r1, =gUnknown_085E51B4 adds r0, r1 @@ -3805,7 +3805,7 @@ _08172430: ldr r1, [sp] ldr r2, [sp, 0x4] ldr r3, [sp, 0xC] - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x40 @@ -3819,8 +3819,8 @@ _08172430: mov r3, r10 ldrb r1, [r3] adds r0, r5, 0 - bl StartObjectImageAnim - ldr r0, =gUnknown_0202064C + bl StartSpriteAnim + ldr r0, =gSprites + 0x1C adds r4, r0 ldr r0, =sub_8172508 str r0, [r4] @@ -3870,7 +3870,7 @@ _0817248C: ands r0, r1 cmp r0, 0 bne _081724D0 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r6, 4 adds r1, r6 lsls r1, 2 @@ -3969,7 +3969,7 @@ sub_8172560: @ 8172560 adds r0, r1 lsls r0, 3 str r0, [sp, 0x10] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites mov r8, r3 ldr r0, =gUnknown_085E51B4 adds r1, r0 @@ -3981,7 +3981,7 @@ _081725A6: ldr r1, [sp] ldr r2, [sp, 0x4] ldr r3, [sp, 0xC] - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x40 @@ -3995,8 +3995,8 @@ _081725A6: mov r3, r10 ldrb r1, [r3] adds r0, r5, 0 - bl StartObjectImageAnim - ldr r0, =gUnknown_0202064C + bl StartSpriteAnim + ldr r0, =gSprites + 0x1C adds r4, r0 ldr r0, =sub_817265C str r0, [r4] @@ -4030,7 +4030,7 @@ _081725FE: ands r0, r1 cmp r0, 0 bne _08172626 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r6, 4 adds r1, r6 lsls r1, 2 @@ -4147,7 +4147,7 @@ _08172708: ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] ldr r3, [sp, 0x10] - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x40 @@ -4156,14 +4156,14 @@ _08172708: lsls r4, r6, 4 adds r4, r6 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r5, r4, r0 ldr r0, =gUnknown_085E51B4 add r0, r9 ldrb r1, [r0] adds r0, r5, 0 - bl StartObjectImageAnim - ldr r1, =gUnknown_0202064C + bl StartSpriteAnim + ldr r1, =gSprites + 0x1C adds r4, r1 ldr r0, =sub_8172508 str r0, [r4] @@ -4216,7 +4216,7 @@ _08172790: ands r0, r1 cmp r0, 0 bne _081727C4 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r6, 4 adds r1, r6 lsls r1, 2 @@ -4269,7 +4269,7 @@ sub_81727E8: @ 81727E8 adds r0, r1 lsls r0, 3 str r0, [sp, 0x10] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites mov r8, r3 ldr r0, =gUnknown_085E51B4 adds r1, r0 @@ -4281,7 +4281,7 @@ _0817282E: ldr r1, [sp] ldr r2, [sp, 0x4] ldr r3, [sp, 0xC] - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x40 @@ -4295,8 +4295,8 @@ _0817282E: mov r3, r10 ldrb r1, [r3] adds r0, r5, 0 - bl StartObjectImageAnim - ldr r0, =gUnknown_0202064C + bl StartSpriteAnim + ldr r0, =gSprites + 0x1C adds r4, r0 ldr r0, =sub_81728E0 str r0, [r4] @@ -4327,7 +4327,7 @@ _08172880: ands r0, r1 cmp r0, 0 bne _081728A8 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r6, 4 adds r1, r6 lsls r1, 2 @@ -4415,7 +4415,7 @@ sub_8172944: @ 8172944 cmp r0, 0x1 bne _081729CA adds r0, r7, 0 - bl RemoveObjectAndFreeResources + bl DestroySpriteAndFreeResources b _081729E2 .pool _08172970: @@ -4454,9 +4454,9 @@ _081729AA: ldr r4, =gUnknown_085E50F4 _081729B4: ldrh r0, [r5, 0x6] - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag ldrh r0, [r4, 0x4] - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag adds r5, 0x8 adds r4, 0x8 adds r6, 0x1 @@ -4464,12 +4464,12 @@ _081729B4: ble _081729B4 _081729CA: adds r0, r7, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite b _081729E2 .pool _081729DC: adds r0, r7, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _081729E2: pop {r4-r7} pop {r0} @@ -4729,8 +4729,8 @@ sub_8172BF0: @ 8172BF0 lsrs r7, r0, 24 movs r0, 0 mov r8, r0 - ldr r0, =gUnknown_020241E4 - ldr r3, =gUnknown_02038436 + ldr r0, =gBankSpriteIds + ldr r3, =gAnimationBankAttacker ldrb r2, [r3] adds r0, r2, r0 ldrb r6, [r0] @@ -4754,7 +4754,7 @@ _08172C30: beq _08172CDA b _08172D8A _08172C36: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0] strh r0, [r5, 0x1E] movs r2, 0xA0 @@ -4764,11 +4764,11 @@ _08172C36: adds r0, r4 strh r0, [r5, 0x8] ldrb r0, [r3] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08172C78 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r3, r6, 4 adds r1, r3, r6 lsls r1, 2 @@ -4783,7 +4783,7 @@ _08172C36: b _08172C90 .pool _08172C78: - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r4, r6, 4 adds r2, r4, r6 lsls r2, 2 @@ -4838,11 +4838,11 @@ _08172CDA: adds r0, r2 strh r0, [r5, 0x8] ldrb r0, [r3] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08172D10 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r3, r6, 4 adds r2, r3, r6 lsls r2, 2 @@ -4857,7 +4857,7 @@ _08172CDA: b _08172D28 .pool _08172D10: - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r2, r6, 4 adds r1, r2, r6 lsls r1, 2 @@ -4877,14 +4877,14 @@ _08172D28: adds r0, r1 ldrb r1, [r0, 0x8] strh r1, [r0, 0x8] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _08172D68 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r4, r6 lsls r1, 2 adds r1, r0 @@ -4897,7 +4897,7 @@ _08172D28: b _08172D84 .pool _08172D68: - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r4, r6 lsls r1, 2 adds r1, r0 @@ -4949,9 +4949,9 @@ _08172DC0: beq _08172E4E b _08172E84 _08172DC6: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -5009,12 +5009,12 @@ _08172E14: strh r0, [r4, 0x26] b _08172E84 _08172E4E: - ldr r1, =gUnknown_020241E4 - ldr r4, =gUnknown_02038436 + ldr r1, =gBankSpriteIds + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] adds r0, r1 ldrb r1, [r0] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 @@ -5045,10 +5045,10 @@ sub_8172E9C: @ 8172E9C push {lr} lsls r0, 24 lsrs r0, 24 - ldr r3, =gUnknown_0203841E + ldr r3, =gBattleAnimArgs ldr r1, =gUnknown_020244D0 ldr r2, [r1] - ldr r1, =gUnknown_02038436 + ldr r1, =gAnimationBankAttacker ldrb r1, [r1] ldr r2, [r2] lsls r1, 2 @@ -5068,7 +5068,7 @@ sub_8172ED0: @ 8172ED0 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02038437 + ldr r2, =gAnimationBankTarget ldr r1, =gUnknown_0202420E ldrb r1, [r1] strb r1, [r2] @@ -5129,7 +5129,7 @@ _08172F4E: cmp r0, 0 beq _08172FC8 ldr r0, =0x000027f9 - bl GetObjectTileRangeStartByTag + bl GetSpriteTileStartByTag lsls r0, 16 lsrs r0, 16 cmp r0, r7 @@ -5249,7 +5249,7 @@ _0817303A: ldr r0, =gUnknown_085CE388 adds r1, r5, 0 movs r3, 0x5 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 b _081730D6 @@ -5262,10 +5262,10 @@ _08173074: ldr r0, =gUnknown_085CE3A0 adds r1, r5, 0 movs r3, 0x5 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r2, r5, 4 adds r2, r5 lsls r2, 2 @@ -5280,10 +5280,10 @@ _081730A8: ldr r0, =gUnknown_085CE3A0 adds r1, r5, 0 movs r3, 0x5 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r2, r5, 4 adds r2, r5 lsls r2, 2 @@ -5311,7 +5311,7 @@ _081730D6: mov r9, r1 cmp r0, 0 bne _08173118 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r2, r5, 4 adds r0, r2, r5 lsls r0, 2 @@ -5323,7 +5323,7 @@ _081730D6: b _08173160 .pool _08173118: - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 @@ -5347,7 +5347,7 @@ _08173118: cmp r0, 0 bne _08173160 mov r0, r8 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r1, 0x3F cmp r0, 0 @@ -5357,9 +5357,9 @@ _08173156: lsls r1, 24 asrs r1, 24 movs r0, 0x66 - bl audio_play_and_stuff + bl PlaySE12WithPanning _08173160: - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r4, r5 lsls r0, 2 adds r0, r1 @@ -5466,9 +5466,9 @@ sub_81731FC: @ 81731FC subs r1, 0x1 strh r1, [r0, 0x20] adds r0, r4, 0 - bl obj_free_rotscale_entry + bl FreeSpriteOamMatrix adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _08173246: pop {r4} pop {r0} @@ -5517,9 +5517,9 @@ _08173264: subs r1, 0x1 strh r1, [r0, 0x20] adds r0, r4, 0 - bl obj_free_rotscale_entry + bl FreeSpriteOamMatrix adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _081732A6: pop {r4} pop {r0} @@ -5538,7 +5538,7 @@ sub_81732B0: @ 81732B0 ldr r0, =gUnknown_08525CB4 bl LoadCompressedObjectPaletteUsingHeap ldr r0, =0x0000281d - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag adds r0, r4, 0 bl move_anim_task_del pop {r4} @@ -5555,9 +5555,9 @@ sub_81732E4: @ 81732E4 lsrs r4, 24 ldr r5, =0x0000281d adds r0, r5, 0 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag adds r0, r5, 0 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag adds r0, r4, 0 bl move_anim_task_del pop {r4,r5} @@ -5575,19 +5575,19 @@ sub_817330C: @ 817330C movs r0, 0x1E strh r0, [r4, 0x2E] movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_80A5C6C lsls r0, 24 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r5, 0x4] adds r0, r1 strh r0, [r4, 0x32] movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 movs r1, 0x1 @@ -5601,9 +5601,9 @@ sub_817330C: @ 817330C strh r0, [r4, 0x38] adds r0, r4, 0 bl sub_80A68D4 - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02038436 + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -5626,9 +5626,9 @@ sub_817330C: @ 817330C sub_817339C: @ 817339C push {lr} adds r3, r0, 0 - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02038436 + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -5677,9 +5677,9 @@ _081733F6: sub_8173400: @ 8173400 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gUnknown_02020630 - ldr r3, =gUnknown_020241E4 - ldr r2, =gUnknown_02038436 + ldr r5, =gSprites + ldr r3, =gBankSpriteIds + ldr r2, =gAnimationBankAttacker ldrb r0, [r2] adds r0, r3 ldrb r1, [r0] @@ -5706,7 +5706,7 @@ sub_8173400: @ 8173400 lsls r0, 2 adds r0, r5 movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r4, 0 bl move_anim_8072740 _08173448: @@ -5721,7 +5721,7 @@ sub_817345C: @ 817345C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -5732,21 +5732,21 @@ sub_817345C: @ 817345C .pool _08173478: movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, =gUnknown_02038436 + bl GetBankByPlayerAI + ldr r1, =gAnimationBankAttacker strb r0, [r1] movs r0, 0x1 b _08173498 .pool _0817348C: movs r0, 0x1 - bl battle_get_side_with_given_state - ldr r1, =gUnknown_02038436 + bl GetBankByPlayerAI + ldr r1, =gAnimationBankAttacker strb r0, [r1] movs r0, 0 _08173498: - bl battle_get_side_with_given_state - ldr r1, =gUnknown_02038437 + bl GetBankByPlayerAI + ldr r1, =gAnimationBankTarget strb r0, [r1] _081734A0: adds r0, r4, 0 @@ -5768,21 +5768,21 @@ sub_81734B4: @ 81734B4 ldrh r1, [r0] cmp r1, 0x53 bne _081734D4 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r0, 0x1 b _0817350C .pool _081734D4: cmp r1, 0xFA bne _081734E4 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r0, 0x2 b _0817350C .pool _081734E4: cmp r1, 0x80 bne _081734F4 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r0, 0x3 b _0817350C .pool @@ -5791,12 +5791,12 @@ _081734F4: lsls r0, 1 cmp r1, r0 bne _08173508 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r0, 0x4 b _0817350C .pool _08173508: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r0, 0 _0817350C: strh r0, [r1] @@ -5812,13 +5812,13 @@ sub_817351C: @ 817351C push {lr} lsls r0, 24 lsrs r0, 24 - ldr r3, =gUnknown_02038436 + ldr r3, =gAnimationBankAttacker ldr r1, =gUnknown_020244D0 ldr r2, [r1] ldr r1, [r2, 0x8] ldrh r1, [r1] strb r1, [r3] - ldr r3, =gUnknown_02038437 + ldr r3, =gAnimationBankTarget ldr r1, [r2, 0x8] ldrh r1, [r1] lsrs r1, 8 diff --git a/asm/battle_anin_80A9C70.s b/asm/battle_anin_80A9C70.s new file mode 100644 index 0000000000..1455134ecd --- /dev/null +++ b/asm/battle_anin_80A9C70.s @@ -0,0 +1,930 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_80A9C70 +sub_80A9C70: @ 80A9C70 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + ldr r0, =gBankSpriteIds + adds r0, r4, r0 + ldrb r6, [r0] + ldr r0, =sub_80A9DB4 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, =gUnknown_08524F84 + bl LoadCompressedObjectPicUsingHeap + ldr r0, =gUnknown_0852588C + bl LoadCompressedObjectPaletteUsingHeap + ldr r1, =gTasks + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r1, r0, r1 + strh r4, [r1, 0x8] + cmp r5, 0 + beq _080A9D30 + movs r0, 0x1F + strh r0, [r1, 0xA] + movs r5, 0 + lsls r0, r6, 4 + ldr r7, =gSprites + adds r0, r6 + lsls r0, 2 + adds r6, r0, r7 +_080A9CC4: + movs r0, 0x20 + ldrsh r1, [r6, r0] + ldrh r2, [r6, 0x22] + adds r2, 0x20 + lsls r2, 16 + asrs r2, 16 + ldr r0, =gUnknown_0853EF60 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r3, r0, r7 + lsls r0, r5, 1 + adds r0, r5 + lsls r1, r0, 4 + adds r0, r1 + strh r0, [r3, 0x2E] + movs r0, 0xFF + lsls r0, 8 + strh r0, [r3, 0x30] + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + cmp r5, 0x4 + bls _080A9D08 + movs r0, 0x15 + strh r0, [r3, 0x3A] +_080A9D08: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x9 + bls _080A9CC4 + b _080A9D90 + .pool +_080A9D30: + movs r0, 0xF8 + lsls r0, 7 + strh r0, [r1, 0xA] + movs r5, 0 + lsls r0, r6, 4 + ldr r7, =gSprites + adds r0, r6 + lsls r0, 2 + adds r6, r0, r7 +_080A9D42: + movs r2, 0x20 + ldrsh r1, [r6, r2] + ldrh r2, [r6, 0x22] + subs r2, 0x20 + lsls r2, 16 + asrs r2, 16 + ldr r0, =gUnknown_0853EF60 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r3, r0, r7 + lsls r0, r5, 1 + adds r0, r5 + lsls r1, r0, 4 + adds r0, r1 + strh r0, [r3, 0x2E] + movs r0, 0x80 + lsls r0, 1 + strh r0, [r3, 0x30] + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + cmp r5, 0x4 + bls _080A9D86 + movs r0, 0x15 + strh r0, [r3, 0x3A] +_080A9D86: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x9 + bls _080A9D42 +_080A9D90: + ldr r0, =gSprites + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + movs r0, 0x1 + strh r0, [r1, 0x3C] + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80A9C70 + + thumb_func_start sub_80A9DB4 +sub_80A9DB4: @ 80A9DB4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r1, [r4, 0xC] + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0x2 + bne _080A9E3A + movs r0, 0 + strh r0, [r4, 0xC] + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 20 + movs r2, 0x80 + lsls r2, 17 + adds r0, r2 + lsrs r0, 16 + ldrb r2, [r4, 0x10] + ldrh r3, [r4, 0xA] + movs r1, 0x10 + bl BlendPalette + ldrh r2, [r4, 0x12] + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A9E10 + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080A9E3E + movs r0, 0x1 + eors r0, r2 + strh r0, [r4, 0x12] + b _080A9E3E + .pool +_080A9E10: + ldrh r1, [r4, 0x10] + subs r0, r1, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + cmp r0, 0 + bge _080A9E3E + strh r1, [r4, 0x10] + movs r0, 0x1 + eors r0, r2 + strh r0, [r4, 0x12] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080A9E3E + adds r0, r5, 0 + bl DestroyTask + b _080A9E3E +_080A9E3A: + adds r0, r1, 0x1 + strh r0, [r4, 0xC] +_080A9E3E: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A9DB4 + + thumb_func_start sub_80A9E44 +sub_80A9E44: @ 80A9E44 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x3A] + movs r3, 0x3A + ldrsh r0, [r2, r3] + cmp r0, 0 + bne _080A9E70 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x5 + negs r1, r1 + ands r1, r0 + strb r1, [r3] + ldr r1, =sub_80A9E78 + str r1, [r2, 0x1C] + adds r0, r2, 0 + bl _call_via_r1 + b _080A9E74 + .pool +_080A9E70: + subs r0, r1, 0x1 + strh r0, [r2, 0x3A] +_080A9E74: + pop {r0} + bx r0 + thumb_func_end sub_80A9E44 + + thumb_func_start sub_80A9E78 +sub_80A9E78: @ 80A9E78 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x20 + bl Cos + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Sin + strh r0, [r4, 0x26] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x7F + bgt _080A9EA4 + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1D + b _080A9EAA +_080A9EA4: + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1F +_080A9EAA: + strb r0, [r1] + ldrh r0, [r4, 0x2E] + adds r0, 0x8 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x38] + adds r0, r1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x34 + bne _080A9EEC + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080A9EE6 + adds r0, r4, 0 + bl DestroySpriteAndFreeResources + b _080A9EEC +_080A9EE6: + adds r0, r4, 0 + bl DestroySprite +_080A9EEC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A9E78 + + thumb_func_start sub_80A9EF4 +sub_80A9EF4: @ 80A9EF4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r4, =gAnimationBankTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_80A5C6C + lsls r0, 24 + lsrs r0, 8 + ldr r1, =0xffe00000 + adds r0, r1 + lsrs r5, r0, 16 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_80A5C6C + lsls r0, 24 + lsrs r0, 8 + ldr r1, =0xffdc0000 + adds r0, r1 + lsrs r4, r0, 16 + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A9F32 + lsls r0, r5, 16 + ldr r1, =0xfffa0000 + adds r0, r1 + lsrs r5, r0, 16 +_080A9F32: + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + ldr r0, =gUnknown_0853EF48 + lsls r1, r5, 16 + asrs r1, 16 + lsls r2, r4, 16 + asrs r2, 16 + movs r3, 0x4 + bl CreateSprite + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =0x0000271a + bl GetSpriteTileStartByTag + lsls r0, 16 + ldr r1, =0xffff0000 + cmp r0, r1 + bne _080A9F7C + ldr r1, =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080A9F7C: + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + ldr r1, =gUnknown_0853EF40 + bl SetSubspriteTables + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + strh r4, [r0, 0x26] + ldr r1, =sub_80A9FD0 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A9EF4 + + thumb_func_start sub_80A9FD0 +sub_80A9FD0: @ 80A9FD0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + adds r2, r0, 0 + strh r0, [r1, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _080AA004 + ldr r0, =sub_80AA020 + str r0, [r1] + movs r0, 0 + strh r0, [r1, 0xA] + b _080AA01A + .pool +_080AA004: + lsls r0, r2, 24 + lsrs r0, 24 + movs r1, 0x10 + subs r1, r0 + lsls r1, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg +_080AA01A: + pop {r0} + bx r0 + thumb_func_end sub_80A9FD0 + + thumb_func_start sub_80AA020 +sub_80AA020: @ 80AA020 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =0x0000271a + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r5, r0, r1 + ldrh r0, [r5, 0xA] + adds r1, r0, 0x1 + strh r1, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xD + ble _080AA0B0 + ldrh r0, [r5, 0xC] + adds r0, 0x1 + movs r6, 0 + strh r0, [r5, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080AA0B0 + ldr r3, =gPlttBufferFaded + lsls r2, 4 + mov r12, r2 + ldr r1, =0x0000010d + add r1, r12 + lsls r1, 1 + adds r1, r3 + ldrh r4, [r1] + movs r2, 0x87 + lsls r2, 1 + add r2, r12 + lsls r2, 1 + adds r2, r3 + ldrh r0, [r2] + strh r0, [r1] + ldr r0, =0x0000010f + add r0, r12 + lsls r0, 1 + adds r0, r3 + ldrh r1, [r0] + strh r1, [r2] + strh r4, [r0] + strh r6, [r5, 0xC] + ldrh r0, [r5, 0xE] + adds r0, 0x1 + strh r0, [r5, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080AA0B0 + strh r6, [r5, 0xE] + strh r6, [r5, 0xA] + ldrh r0, [r5, 0x10] + adds r0, 0x1 + strh r0, [r5, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080AA0B0 + movs r0, 0x9 + strh r0, [r5, 0xA] + ldr r0, =sub_80AA0D0 + str r0, [r5] +_080AA0B0: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AA020 + + thumb_func_start sub_80AA0D0 +sub_80AA0D0: @ 80AA0D0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r2, r1, r2 + ldrh r0, [r2, 0xA] + subs r0, 0x1 + adds r3, r0, 0 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080AA108 + ldr r0, =sub_80AA124 + str r0, [r2] + movs r0, 0 + strh r0, [r2, 0xA] + b _080AA11E + .pool +_080AA108: + lsls r0, r3, 24 + lsrs r0, 24 + movs r1, 0x10 + subs r1, r0 + lsls r1, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg +_080AA11E: + pop {r0} + bx r0 + thumb_func_end sub_80AA0D0 + + thumb_func_start sub_80AA124 +sub_80AA124: @ 80AA124 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r1 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x25 + bne _080AA16C + ldrh r0, [r1, 0x26] + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, =gSprites + adds r4, r0 + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite + b _080AA186 + .pool +_080AA16C: + cmp r0, 0x27 + bne _080AA186 + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + adds r0, r4, 0 + bl move_anim_task_del +_080AA186: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AA124 + + thumb_func_start sub_80AA18C +sub_80AA18C: @ 80AA18C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r3, 0 + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r0, [r0, 0x8] + ldrh r0, [r0] + subs r0, 0xF + cmp r0, 0x2B + bls _080AA1A4 + b _080AA328 +_080AA1A4: + lsls r0, 2 + ldr r1, =_080AA1B8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080AA1B8: + .4byte _080AA268 + .4byte _080AA26E + .4byte _080AA274 + .4byte _080AA27A + .4byte _080AA280 + .4byte _080AA286 + .4byte _080AA28C + .4byte _080AA292 + .4byte _080AA298 + .4byte _080AA29E + .4byte _080AA2A4 + .4byte _080AA2AA + .4byte _080AA2B0 + .4byte _080AA2B6 + .4byte _080AA328 + .4byte _080AA328 + .4byte _080AA328 + .4byte _080AA328 + .4byte _080AA328 + .4byte _080AA328 + .4byte _080AA328 + .4byte _080AA328 + .4byte _080AA328 + .4byte _080AA328 + .4byte _080AA2BC + .4byte _080AA2C0 + .4byte _080AA2C4 + .4byte _080AA2C8 + .4byte _080AA2CC + .4byte _080AA2D0 + .4byte _080AA2D4 + .4byte _080AA2D8 + .4byte _080AA2E0 + .4byte _080AA2E8 + .4byte _080AA2F0 + .4byte _080AA2F8 + .4byte _080AA300 + .4byte _080AA308 + .4byte _080AA328 + .4byte _080AA328 + .4byte _080AA310 + .4byte _080AA314 + .4byte _080AA318 + .4byte _080AA320 +_080AA268: + movs r5, 0 + movs r2, 0 + b _080AA330 +_080AA26E: + movs r5, 0 + movs r2, 0x1 + b _080AA330 +_080AA274: + movs r5, 0 + movs r2, 0x3 + b _080AA330 +_080AA27A: + movs r5, 0 + movs r2, 0x5 + b _080AA330 +_080AA280: + movs r5, 0 + movs r2, 0x6 + b _080AA330 +_080AA286: + movs r5, 0 + movs r2, 0x2 + b _080AA330 +_080AA28C: + movs r5, 0 + movs r2, 0x4 + b _080AA330 +_080AA292: + movs r5, 0x1 + movs r2, 0 + b _080AA330 +_080AA298: + movs r5, 0x1 + movs r2, 0x1 + b _080AA330 +_080AA29E: + movs r5, 0x1 + movs r2, 0x3 + b _080AA330 +_080AA2A4: + movs r5, 0x1 + movs r2, 0x5 + b _080AA330 +_080AA2AA: + movs r5, 0x1 + movs r2, 0x6 + b _080AA330 +_080AA2B0: + movs r5, 0x1 + movs r2, 0x2 + b _080AA330 +_080AA2B6: + movs r5, 0x1 + movs r2, 0x4 + b _080AA330 +_080AA2BC: + movs r5, 0 + b _080AA2DA +_080AA2C0: + movs r5, 0 + b _080AA2E2 +_080AA2C4: + movs r5, 0 + b _080AA2EA +_080AA2C8: + movs r5, 0 + b _080AA2F2 +_080AA2CC: + movs r5, 0 + b _080AA2FA +_080AA2D0: + movs r5, 0 + b _080AA302 +_080AA2D4: + movs r5, 0 + b _080AA30A +_080AA2D8: + movs r5, 0x1 +_080AA2DA: + movs r2, 0 + movs r3, 0x1 + b _080AA330 +_080AA2E0: + movs r5, 0x1 +_080AA2E2: + movs r2, 0x1 + movs r3, 0x1 + b _080AA330 +_080AA2E8: + movs r5, 0x1 +_080AA2EA: + movs r2, 0x3 + movs r3, 0x1 + b _080AA330 +_080AA2F0: + movs r5, 0x1 +_080AA2F2: + movs r2, 0x5 + movs r3, 0x1 + b _080AA330 +_080AA2F8: + movs r5, 0x1 +_080AA2FA: + movs r2, 0x6 + movs r3, 0x1 + b _080AA330 +_080AA300: + movs r5, 0x1 +_080AA302: + movs r2, 0x2 + movs r3, 0x1 + b _080AA330 +_080AA308: + movs r5, 0x1 +_080AA30A: + movs r2, 0x4 + movs r3, 0x1 + b _080AA330 +_080AA310: + movs r5, 0 + b _080AA31A +_080AA314: + movs r5, 0 + b _080AA322 +_080AA318: + movs r5, 0x1 +_080AA31A: + movs r2, 0xFF + movs r3, 0 + b _080AA330 +_080AA320: + movs r5, 0x1 +_080AA322: + movs r2, 0xFF + movs r3, 0x1 + b _080AA330 +_080AA328: + adds r0, r4, 0 + bl move_anim_task_del + b _080AA352 +_080AA330: + ldr r0, =gBattleAnimArgs + movs r1, 0 + strh r5, [r0] + strh r2, [r0, 0x2] + strh r1, [r0, 0x4] + strh r1, [r0, 0x6] + strh r3, [r0, 0x8] + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_8116EB4 + str r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 +_080AA352: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AA18C + + thumb_func_start move_anim_start_t2 +move_anim_start_t2: @ 80AA364 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r0, =gAnimationBankAttacker + strb r4, [r0] + ldr r0, =gAnimationBankTarget + strb r4, [r0] + ldr r0, =gUnknown_082C92FC + movs r2, 0 + bl move_something + ldr r0, =task0A_80788BC + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end move_anim_start_t2 + + thumb_func_start task0A_80788BC +task0A_80788BC: @ 80AA3B4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gAnimScriptCallback + ldr r0, [r0] + bl _call_via_r0 + ldr r0, =gAnimScriptActive + ldrb r0, [r0] + cmp r0, 0 + bne _080AA3F6 + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0x8 + ldrsh r0, [r0, r1] + ldr r2, [r2, 0x4] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r2, [r1] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, 0 + bl DestroyTask +_080AA3F6: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end task0A_80788BC + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_controller_linkopponent.s b/asm/battle_controller_linkopponent.s new file mode 100644 index 0000000000..bfeafd0f4c --- /dev/null +++ b/asm/battle_controller_linkopponent.s @@ -0,0 +1,6266 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start nullsub_28 +nullsub_28: @ 8064390 + bx lr + thumb_func_end nullsub_28 + + thumb_func_start SetBankFuncToLinkOpponentBufferRunCommand +SetBankFuncToLinkOpponentBufferRunCommand: @ 8064394 + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_80643B0 + str r1, [r0] + bx lr + .pool + thumb_func_end SetBankFuncToLinkOpponentBufferRunCommand + + thumb_func_start sub_80643B0 +sub_80643B0: @ 80643B0 + push {lr} + ldr r2, =gBattleExecBuffer + ldr r1, =gBitTable + ldr r0, =gActiveBank + ldrb r3, [r0] + lsls r0, r3, 2 + adds r0, r1 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _080643FC + ldr r0, =gBattleBufferA + lsls r1, r3, 9 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0x38 + bhi _080643F8 + ldr r0, =gUnknown_0831C7B4 + ldrb r1, [r1] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + bl _call_via_r0 + b _080643FC + .pool +_080643F8: + bl sub_8065068 +_080643FC: + pop {r0} + bx r0 + thumb_func_end sub_80643B0 + + thumb_func_start sub_8064400 +sub_8064400: @ 8064400 + push {lr} + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _08064424 + bl sub_8065068 +_08064424: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8064400 + + thumb_func_start sub_8064438 +sub_8064438: @ 8064438 + push {lr} + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _0806445C + bl sub_8065068 +_0806445C: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8064438 + + thumb_func_start sub_8064470 +sub_8064470: @ 8064470 + push {r4-r6,lr} + ldr r5, =gSprites + ldr r6, =gBankSpriteIds + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r2, r0, 2 + adds r0, r5, 0 + adds r0, 0x1C + adds r0, r2, r0 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _080644C2 + adds r0, r2, r5 + ldrh r0, [r0, 0x6] + bl sub_805DFE4 + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl FreeSpriteOamMatrix + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl DestroySprite + bl sub_8065068 +_080644C2: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8064470 + + thumb_func_start sub_80644D8 +sub_80644D8: @ 80644D8 + push {r4,lr} + ldr r4, =gUnknown_020244D0 + ldr r1, [r4] + ldr r3, =gActiveBank + ldrb r0, [r3] + ldr r2, [r1, 0x4] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1, 0x9] + subs r0, 0x1 + strb r0, [r1, 0x9] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _08064510 + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strb r1, [r0, 0x9] + bl sub_8065068 +_08064510: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80644D8 + + thumb_func_start sub_8064520 +sub_8064520: @ 8064520 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r0, 0 + mov r8, r0 + movs r4, 0 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _0806454C + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08064584 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08064584 +_0806454C: + ldr r2, =gSprites + ldr r1, =gUnknown_03005D70 + ldr r3, =gActiveBank + ldrb r0, [r3] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + adds r7, r3, 0 + cmp r1, r0 + bne _080645C2 + b _080645CA + .pool +_08064584: + ldr r3, =gSprites + ldr r6, =gUnknown_03005D70 + ldr r2, =gActiveBank + ldrb r4, [r2] + adds r0, r4, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r5, r3, 0 + adds r5, 0x1C + adds r0, r5 + ldr r3, [r0] + ldr r0, =SpriteCallbackDummy + adds r7, r2, 0 + cmp r3, r0 + bne _080645C0 + movs r0, 0x2 + eors r4, r0 + adds r0, r4, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r0, [r0] + cmp r0, r3 + bne _080645C0 + movs r1, 0x1 + mov r8, r1 +_080645C0: + movs r4, 0x1 +_080645C2: + mov r0, r8 + cmp r0, 0 + bne _080645CA + b _08064714 +_080645CA: + cmp r4, 0 + bne _080645DE + ldrb r1, [r7] + movs r0, 0x2 + eors r0, r1 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + bne _0806469C +_080645DE: + ldr r1, =gUnknown_020244D0 + mov r12, r1 + ldr r0, [r1] + ldr r7, =gActiveBank + ldrb r2, [r7] + ldr r3, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r4, r0, r3 + ldrb r1, [r4, 0x1] + movs r5, 0x1 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _08064600 + b _08064714 +_08064600: + movs r6, 0x2 + adds r1, r6, 0 + eors r1, r2 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x1] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _08064714 + ldrb r1, [r4] + movs r3, 0x7F + adds r0, r3, 0 + ands r0, r1 + strb r0, [r4] + mov r1, r12 + ldr r0, [r1] + ldrb r2, [r7] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r4, 0x2 + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + strb r0, [r1, 0x1] + mov r0, r12 + ldr r2, [r0] + ldrb r0, [r7] + adds r1, r6, 0 + eors r1, r0 + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + ands r3, r1 + strb r3, [r0] + mov r1, r12 + ldr r2, [r1] + ldrb r0, [r7] + adds r1, r6, 0 + eors r1, r0 + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x1] + ands r4, r1 + strb r4, [r0, 0x1] + ldr r4, =0x000027f9 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag + b _080646F2 + .pool +_0806469C: + ldr r3, =gUnknown_020244D0 + ldr r0, [r3] + ldrb r1, [r7] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r2, r0, r2 + ldrb r1, [r2, 0x1] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08064714 + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + ldr r0, [r3] + ldrb r2, [r7] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldrb r0, [r7] + bl GetBankIdentity + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bne _080646F2 + ldr r4, =0x000027f9 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag +_080646F2: + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r3, =gActiveBank + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + strb r1, [r0, 0x9] + ldr r1, =gBattleBankFunc + ldrb r0, [r3] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_80644D8 + str r1, [r0] +_08064714: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8064520 + + thumb_func_start sub_8064734 +sub_8064734: @ 8064734 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r0, 0 + mov r10, r0 + ldr r5, =gUnknown_020244D0 + ldr r0, [r5] + ldr r4, =gActiveBank + ldrb r2, [r4] + ldr r1, [r0, 0x4] + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0] + movs r6, 0xC4 + lsls r6, 1 + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + bne _08064776 + ldr r0, =gBattlePartyID + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gEnemyParty + adds r1, r0 + adds r0, r2, 0 + bl sub_8172EF0 +_08064776: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + bne _080647B4 + ldr r2, [r5] + ldrb r1, [r4] + movs r0, 0x2 + adds r3, r0, 0 + eors r3, r1 + ldr r1, [r2, 0x4] + lsls r2, r3, 1 + adds r0, r2, r3 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + bne _080647B4 + ldr r0, =gBattlePartyID + adds r0, r2, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gEnemyParty + adds r1, r0 + adds r0, r3, 0 + bl sub_8172EF0 +_080647B4: + ldr r3, =gUnknown_020244D0 + ldr r0, [r3] + ldr r2, =gActiveBank + ldrb r5, [r2] + ldr r4, [r0, 0x4] + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 2 + adds r6, r0, r4 + ldrb r1, [r6] + movs r0, 0x8 + mov r12, r0 + ands r0, r1 + mov r8, r3 + mov r9, r2 + cmp r0, 0 + bne _08064898 + movs r7, 0x2 + adds r1, r7, 0 + eors r1, r5 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0] + mov r0, r12 + ands r0, r1 + cmp r0, 0 + bne _08064898 + ldrb r1, [r6, 0x1] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0806487A + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _0806484A + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0806484A + ldr r4, =gUnknown_03005D70 + mov r1, r9 + ldrb r0, [r1] + adds r1, r7, 0 + eors r1, r0 + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, =gBattlePartyID + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gEnemyParty + adds r1, r2 + movs r2, 0 + bl healthbar_draw_field_maybe + mov r1, r9 + ldrb r0, [r1] + eors r0, r7 + bl sub_8076918 + mov r1, r9 + ldrb r0, [r1] + eors r0, r7 + adds r0, r4 + ldrb r0, [r0] + bl sub_80729D0 +_0806484A: + ldr r5, =gUnknown_03005D70 + ldr r4, =gActiveBank + ldrb r1, [r4] + adds r0, r1, r5 + ldrb r0, [r0] + ldr r2, =gBattlePartyID + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gEnemyParty + adds r1, r2 + movs r2, 0 + bl healthbar_draw_field_maybe + ldrb r0, [r4] + bl sub_8076918 + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + bl sub_80729D0 +_0806487A: + ldr r4, =gUnknown_020244D0 + ldr r0, [r4] + ldr r3, =gActiveBank + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x1] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0, 0x1] + mov r8, r4 + mov r9, r3 +_08064898: + mov r1, r8 + ldr r0, [r1] + mov r1, r9 + ldrb r2, [r1] + ldr r3, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x1] + movs r0, 0xC0 + ands r0, r1 + cmp r0, 0x80 + bne _0806495A + movs r1, 0x2 + eors r1, r2 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x1] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0806495A + bl IsCryPlayingOrClearCrySongs + lsls r0, 24 + cmp r0, 0 + bne _0806495A + mov r1, r8 + ldr r0, [r1] + mov r1, r9 + ldrb r2, [r1] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x1] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _0806493C + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x42 + ands r0, r1 + cmp r0, 0x42 + bne _08064930 + adds r0, r2, 0 + bl GetBankIdentity + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0806493C + ldr r0, =gMPlay_BGM + bl m4aMPlayContinue + b _0806493C + .pool +_08064930: + ldr r0, =gMPlay_BGM + ldr r1, =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl +_0806493C: + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x1] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0, 0x1] + movs r0, 0x1 + mov r10, r0 +_0806495A: + mov r1, r10 + cmp r1, 0 + bne _08064962 + b _08064AC0 +_08064962: + ldr r2, =gSprites + ldr r0, =gUnknown_03005D7C + ldr r5, =gActiveBank + ldrb r3, [r5] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r4, [r0] + ldr r0, =SpriteCallbackDummy + cmp r4, r0 + beq _08064982 + b _08064AC0 +_08064982: + ldr r0, =gBankSpriteIds + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + cmp r0, r4 + beq _08064998 + b _08064AC0 +_08064998: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080649E2 + adds r0, r3, 0 + bl GetBankIdentity + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bne _080649E2 + ldr r3, =gUnknown_020244D0 + ldr r0, [r3] + ldrb r2, [r5] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x9] + adds r0, 0x1 + strb r0, [r1, 0x9] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08064AC0 + ldr r0, [r3] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strb r1, [r0, 0x9] +_080649E2: + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08064A3A + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08064A3A + ldr r1, =gUnknown_03005D7C + ldr r5, =gActiveBank + ldrb r0, [r5] + movs r4, 0x2 + eors r0, r4 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + bl DestroySprite + ldrb r0, [r5] + eors r4, r0 + ldr r1, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_805EE54 +_08064A3A: + ldr r1, =gUnknown_03005D7C + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + bl DestroySprite + ldrb r5, [r4] + ldr r1, =gBattlePartyID + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r5, 0 + bl sub_805EE54 + ldr r3, =gUnknown_020244D0 + ldr r0, [r3] + ldr r2, [r0, 0x8] + ldrb r1, [r2, 0x9] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x9] + ldr r0, [r3] + ldrb r2, [r4] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldr r0, [r3] + ldrb r2, [r4] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r0, 0x7F + ands r0, r2 + strb r0, [r1, 0x1] + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8064520 + str r1, [r0] +_08064AC0: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8064734 + + thumb_func_start sub_8064B04 +sub_8064B04: @ 8064B04 + push {r4-r7,lr} + ldr r4, =gSprites + ldr r0, =gBankSpriteIds + ldr r7, =gActiveBank + ldrb r3, [r7] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r2, r0, 2 + adds r0, r4, 0 + adds r0, 0x1C + adds r0, r2, r0 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _08064BB6 + adds r0, r2, r4 + movs r1, 0x24 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _08064BB6 + ldr r6, =gUnknown_020244D0 + ldr r0, [r6] + ldr r1, [r0, 0x4] + lsls r4, r3, 1 + adds r0, r4, r3 + lsls r0, 2 + adds r2, r0, r1 + ldrb r5, [r2] + movs r0, 0x80 + ands r0, r5 + cmp r0, 0 + bne _08064B7C + ldr r0, =gBattlePartyID + adds r0, r4, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gEnemyParty + adds r1, r0 + adds r0, r3, 0 + bl sub_8172EF0 + b _08064BB6 + .pool +_08064B7C: + ldrb r1, [r2, 0x1] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08064BB6 + movs r0, 0x7F + ands r0, r5 + strb r0, [r2] + ldr r0, [r6] + ldrb r2, [r7] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldr r4, =0x000027f9 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag + bl sub_8065068 +_08064BB6: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8064B04 + + thumb_func_start sub_8064BC0 +sub_8064BC0: @ 8064BC0 + push {r4-r6,lr} + ldr r6, =gActiveBank + ldrb r0, [r6] + ldr r5, =gUnknown_03005D70 + adds r1, r0, r5 + ldrb r1, [r1] + movs r2, 0 + movs r3, 0 + bl sub_8074AA0 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r6] + adds r0, r5 + ldrb r0, [r0] + bl sub_80729D0 + lsls r4, 16 + asrs r1, r4, 16 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08064C08 + ldrb r0, [r6] + adds r0, r5 + ldrb r0, [r0] + movs r2, 0 + bl heathbar_draw_hp + b _08064C0C + .pool +_08064C08: + bl sub_8065068 +_08064C0C: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8064BC0 + + thumb_func_start sub_8064C14 +sub_8064C14: @ 8064C14 + push {lr} + ldr r2, =gSprites + ldr r0, =gBankSpriteIds + ldr r1, =gActiveBank + ldrb r3, [r1] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 31 + cmp r0, 0 + bne _08064C42 + ldr r0, =gUnknown_03005D70 + adds r0, r3, r0 + ldrb r0, [r0] + bl sub_8072984 + bl sub_8065068 +_08064C42: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8064C14 + + thumb_func_start sub_8064C58 +sub_8064C58: @ 8064C58 + push {r4-r6,lr} + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r6, =gActiveBank + ldrb r2, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08064CB2 + ldr r5, =gBankSpriteIds + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + ldrb r0, [r6] + bl sub_805EEE0 + ldr r1, =gUnknown_03005D70 + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + bl sub_8072984 + bl sub_8065068 +_08064CB2: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8064C58 + + thumb_func_start sub_8064CCC +sub_8064CCC: @ 8064CCC + push {lr} + movs r0, 0 + bl IsTextPrinterActive + lsls r0, 16 + cmp r0, 0 + bne _08064CDE + bl sub_8065068 +_08064CDE: + pop {r0} + bx r0 + thumb_func_end sub_8064CCC + + thumb_func_start sub_8064CE4 +sub_8064CE4: @ 8064CE4 + push {r4,lr} + ldr r1, =gBankSpriteIds + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + ldr r2, =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, r0, r2 + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0x20 + bne _08064D30 + movs r3, 0 + movs r0, 0 + strh r0, [r4, 0x30] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + subs r0, 0x5 + ands r0, r1 + strb r0, [r2] + ldr r0, =gDoingBattleAnim + strb r3, [r0] + bl sub_8065068 + b _08064D5A + .pool +_08064D30: + ldrh r0, [r4, 0x30] + movs r1, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08064D54 + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_08064D54: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] +_08064D5A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8064CE4 + + thumb_func_start sub_8064D60 +sub_8064D60: @ 8064D60 + push {r4,lr} + ldr r2, =gSprites + ldr r0, =gUnknown_03005D70 + ldr r4, =gActiveBank + ldrb r3, [r4] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _08064DAC + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r3, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08064DA0 + adds r0, r3, 0 + adds r1, r3, 0 + adds r2, r3, 0 + movs r3, 0x6 + bl move_anim_start_t4 +_08064DA0: + ldr r0, =gBattleBankFunc + ldrb r1, [r4] + lsls r1, 2 + adds r1, r0 + ldr r0, =sub_8064DD0 + str r0, [r1] +_08064DAC: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8064D60 + + thumb_func_start sub_8064DD0 +sub_8064DD0: @ 8064DD0 + push {r4,lr} + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r4, =gActiveBank + ldrb r1, [r4] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08064E2A + bl IsCryPlayingOrClearCrySongs + lsls r0, 24 + cmp r0, 0 + bne _08064E2A + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldrb r0, [r4] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + beq _08064E1A + ldr r0, =nullsub_18 + cmp r1, r0 + bne _08064E2A +_08064E1A: + ldr r0, =gMPlay_BGM + ldr r1, =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl + bl sub_8065068 +_08064E2A: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8064DD0 + + thumb_func_start sub_8064E50 +sub_8064E50: @ 8064E50 + push {r4-r7,lr} + ldr r4, =gUnknown_020244D0 + ldr r0, [r4] + ldr r5, =gActiveBank + ldrb r2, [r5] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r3, r0, r1 + ldrb r1, [r3, 0x1] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08064F0C + ldr r7, =gSprites + ldr r6, =gBankSpriteIds + adds r0, r2, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r7, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _08064F0C + ldrb r1, [r3] + movs r0, 0x7F + ands r0, r1 + strb r0, [r3] + ldr r0, [r4] + ldrb r2, [r5] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldr r4, =0x000027f9 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + movs r1, 0 + bl StartSpriteAnim + ldr r4, =gUnknown_03005D70 + ldrb r1, [r5] + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, =gBattlePartyID + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gEnemyParty + adds r1, r2 + movs r2, 0 + bl healthbar_draw_field_maybe + ldrb r0, [r5] + bl sub_8076918 + ldrb r0, [r5] + adds r0, r4 + ldrb r0, [r0] + bl sub_80729D0 + ldrb r0, [r5] + bl sub_805E408 + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8064D60 + str r1, [r0] +_08064F0C: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8064E50 + + thumb_func_start sub_8064F40 +sub_8064F40: @ 8064F40 + push {r4-r6,lr} + ldr r6, =gUnknown_020244D0 + ldr r0, [r6] + ldr r5, =gActiveBank + ldrb r2, [r5] + ldr r1, [r0, 0x4] + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x88 + ands r0, r1 + cmp r0, 0 + bne _08064F72 + ldr r0, =gBattlePartyID + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gEnemyParty + adds r1, r0 + adds r0, r2, 0 + bl sub_8172EF0 +_08064F72: + ldr r4, =gSprites + ldr r0, =gUnknown_03005D7C + ldrb r2, [r5] + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r3, r0, 2 + adds r0, r4, 0 + adds r0, 0x1C + adds r0, r3, r0 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _08064FDC + ldr r0, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _08064FDC + adds r0, r3, r4 + bl DestroySprite + ldrb r4, [r5] + ldr r1, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_805EE54 + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8064E50 + str r1, [r0] +_08064FDC: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8064F40 + + thumb_func_start sub_8065008 +sub_8065008: @ 8065008 + push {lr} + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _0806502A + bl sub_8065068 +_0806502A: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8065008 + + thumb_func_start sub_8065038 +sub_8065038: @ 8065038 + push {lr} + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _0806505A + bl sub_8065068 +_0806505A: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8065038 + + thumb_func_start sub_8065068 +sub_8065068: @ 8065068 + push {r4,lr} + sub sp, 0x4 + ldr r1, =gBattleBankFunc + ldr r4, =gActiveBank + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_80643B0 + str r1, [r0] + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080650BC + bl link_get_multiplayer_id + mov r1, sp + strb r0, [r1] + movs r0, 0x2 + movs r1, 0x4 + mov r2, sp + bl PrepareBufferDataTransferLink + ldr r1, =gBattleBufferA + ldrb r0, [r4] + lsls r0, 9 + adds r0, r1 + movs r1, 0x38 + strb r1, [r0] + b _080650CE + .pool +_080650BC: + ldr r2, =gBattleExecBuffer + ldr r1, =gBitTable + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + ldr r0, [r2] + bics r0, r1 + str r0, [r2] +_080650CE: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8065068 + + thumb_func_start dp01t_00_2_getattr +dp01t_00_2_getattr: @ 80650E0 + push {r4-r6,lr} + sub sp, 0x100 + movs r6, 0 + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + bne _08065118 + ldr r0, =gBattlePartyID + lsls r1, r2, 1 + adds r1, r0 + ldrb r0, [r1] + mov r1, sp + bl dp01_getattr_by_ch1_for_opponent_pokemon + adds r6, r0, 0 + b _0806513A + .pool +_08065118: + ldrb r4, [r1] + movs r5, 0 +_0806511C: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _08065132 + lsls r0, r5, 24 + lsrs r0, 24 + mov r2, sp + adds r1, r2, r6 + bl dp01_getattr_by_ch1_for_opponent_pokemon + adds r6, r0 +_08065132: + lsrs r4, 1 + adds r5, 0x1 + cmp r5, 0x5 + ble _0806511C +_0806513A: + lsls r1, r6, 16 + lsrs r1, 16 + movs r0, 0x1 + mov r2, sp + bl dp01_build_cmdbuf_x1D_1D_numargs_varargs + bl sub_8065068 + add sp, 0x100 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end dp01t_00_2_getattr + + thumb_func_start dp01_getattr_by_ch1_for_opponent_pokemon +dp01_getattr_by_ch1_for_opponent_pokemon: @ 8065154 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x90 + adds r7, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0 + ldr r2, =gBattleBufferA + ldr r3, =gActiveBank + ldrb r0, [r3] + lsls r0, 9 + adds r1, r2, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x3B + bls _0806517E + bl _080658EA +_0806517E: + lsls r0, 2 + ldr r1, =_08065194 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08065194: + .4byte _08065284 + .4byte _080654A8 + .4byte _080654B8 + .4byte _080654C8 + .4byte _08065530 + .4byte _08065530 + .4byte _08065530 + .4byte _08065530 + .4byte _0806554C + .4byte _08065588 + .4byte _08065588 + .4byte _08065588 + .4byte _08065588 + .4byte _080658EA + .4byte _080658EA + .4byte _080658EA + .4byte _080658EA + .4byte _080655A4 + .4byte _080655B4 + .4byte _080655E4 + .4byte _080655F4 + .4byte _08065604 + .4byte _08065614 + .4byte _08065624 + .4byte _08065634 + .4byte _08065644 + .4byte _08065654 + .4byte _08065664 + .4byte _08065674 + .4byte _08065684 + .4byte _08065694 + .4byte _080656A4 + .4byte _080656F4 + .4byte _08065704 + .4byte _08065714 + .4byte _08065724 + .4byte _08065734 + .4byte _08065744 + .4byte _08065754 + .4byte _08065764 + .4byte _08065774 + .4byte _080657A8 + .4byte _080657B8 + .4byte _080657C8 + .4byte _080657D8 + .4byte _080657E8 + .4byte _080657F8 + .4byte _08065808 + .4byte _08065818 + .4byte _08065838 + .4byte _08065848 + .4byte _08065858 + .4byte _08065868 + .4byte _08065878 + .4byte _08065888 + .4byte _08065898 + .4byte _080658A8 + .4byte _080658B8 + .4byte _080658C8 + .4byte _080658D8 +_08065284: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + mov r1, sp + strh r0, [r1] + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2E] + movs r6, 0 + add r0, sp, 0x24 + mov r9, r0 + movs r1, 0x3B + add r1, sp + mov r10, r1 + mov r2, sp + adds r2, 0x2B + str r2, [sp, 0x80] + mov r0, sp + adds r0, 0x2A + str r0, [sp, 0x7C] + mov r1, sp + adds r1, 0x68 + str r1, [sp, 0x8C] + adds r2, 0x5 + str r2, [sp, 0x84] + adds r0, 0x12 + str r0, [sp, 0x88] + mov r8, r4 + add r4, sp, 0xC +_080652D0: + adds r1, r6, 0 + adds r1, 0xD + mov r0, r8 + bl GetMonData + strh r0, [r4] + adds r1, r6, 0 + adds r1, 0x11 + mov r0, r8 + bl GetMonData + mov r2, r9 + adds r1, r2, r6 + strb r0, [r1] + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _080652D0 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x15 + bl GetMonData + mov r1, r10 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x20 + bl GetMonData + ldr r2, [sp, 0x80] + strb r0, [r2] + adds r0, r4, 0 + movs r1, 0x19 + bl GetMonData + str r0, [sp, 0x44] + adds r0, r4, 0 + movs r1, 0x27 + bl GetMonData + mov r3, sp + movs r5, 0x1F + ands r0, r5 + ldrb r2, [r3, 0x14] + movs r1, 0x20 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x14] + adds r0, r4, 0 + movs r1, 0x28 + bl GetMonData + mov r3, sp + movs r6, 0x1F + ands r0, r6 + lsls r0, 5 + ldrh r2, [r3, 0x14] + ldr r1, =0xfffffc1f + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x14] + adds r0, r4, 0 + movs r1, 0x29 + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, 2 + ldrb r2, [r3, 0x15] + movs r1, 0x7D + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x15] + adds r0, r4, 0 + movs r1, 0x2A + bl GetMonData + movs r1, 0x1F + ands r1, r0 + lsls r1, 15 + ldr r0, [sp, 0x14] + ldr r2, =0xfff07fff + ands r0, r2 + orrs r0, r1 + str r0, [sp, 0x14] + adds r0, r4, 0 + movs r1, 0x2B + bl GetMonData + mov r3, sp + ands r0, r6 + lsls r0, 4 + ldrh r2, [r3, 0x16] + ldr r1, =0xfffffe0f + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x16] + adds r0, r4, 0 + movs r1, 0x2C + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, 1 + ldrb r2, [r3, 0x17] + movs r1, 0x3F + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + str r0, [sp, 0x48] + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData + str r0, [sp, 0x4C] + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + ldr r1, [sp, 0x7C] + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + mov r1, sp + strh r0, [r1, 0x28] + adds r0, r4, 0 + movs r1, 0x3A + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2C] + adds r0, r4, 0 + movs r1, 0x3B + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2] + adds r0, r4, 0 + movs r1, 0x3C + bl GetMonData + mov r1, sp + strh r0, [r1, 0x4] + adds r0, r4, 0 + movs r1, 0x3D + bl GetMonData + mov r1, sp + strh r0, [r1, 0x6] + adds r0, r4, 0 + movs r1, 0x3E + bl GetMonData + mov r1, sp + strh r0, [r1, 0x8] + adds r0, r4, 0 + movs r1, 0x3F + bl GetMonData + mov r1, sp + strh r0, [r1, 0xA] + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + mov r3, sp + movs r1, 0x1 + ands r0, r1 + lsls r0, 6 + ldrb r2, [r3, 0x17] + movs r1, 0x41 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0x2E + bl GetMonData + mov r3, sp + lsls r0, 7 + ldrb r2, [r3, 0x17] + movs r1, 0x7F + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0x1 + bl GetMonData + str r0, [sp, 0x54] + adds r0, r4, 0 + movs r1, 0x2 + ldr r2, [sp, 0x8C] + bl GetMonData + ldr r0, [sp, 0x84] + ldr r1, [sp, 0x8C] + bl StringCopy10 + adds r0, r4, 0 + movs r1, 0x7 + ldr r2, [sp, 0x88] + bl GetMonData + mov r2, sp + movs r6, 0 +_08065488: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, 0x1 + cmp r6, 0x57 + bls _08065488 + b _080658EA + .pool +_080654A8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0xB + b _08065822 + .pool +_080654B8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0xC + b _08065822 + .pool +_080654C8: + movs r6, 0 + add r2, sp, 0x58 + mov r9, r2 + add r0, sp, 0x60 + mov r10, r0 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gEnemyParty + adds r4, r1, r0 + mov r8, r9 +_080654DE: + adds r1, r6, 0 + adds r1, 0xD + adds r0, r4, 0 + bl GetMonData + mov r1, r8 + strh r0, [r1] + adds r1, r6, 0 + adds r1, 0x11 + adds r0, r4, 0 + bl GetMonData + mov r2, r10 + adds r1, r2, r6 + strb r0, [r1] + movs r0, 0x2 + add r8, r0 + adds r6, 0x1 + cmp r6, 0x3 + ble _080654DE + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x15 + bl GetMonData + mov r1, r9 + strb r0, [r1, 0xC] + mov r2, r9 + movs r6, 0 +_0806551C: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, 0x1 + cmp r6, 0xF + bls _0806551C + b _080658EA + .pool +_08065530: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r1, [r3] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + adds r1, 0x9 + b _08065822 + .pool +_0806554C: + movs r6, 0 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r2, =gEnemyParty + mov r8, r2 +_08065558: + adds r1, r6, 0 + adds r1, 0x11 + mov r2, r8 + adds r0, r4, r2 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, 0x1 + cmp r6, 0x3 + ble _08065558 + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x15 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, 0x1 + b _080658EA + .pool +_08065588: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r1, [r3] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + adds r1, 0x8 + b _080658E2 + .pool +_080655A4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x1 + b _080655BE + .pool +_080655B4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x19 +_080655BE: + bl GetMonData + adds r1, r0, 0 + strb r1, [r7] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r0, 16 + strb r0, [r7, 0x2] + movs r6, 0x3 + b _080658EA + .pool +_080655E4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x1A + b _080658E2 + .pool +_080655F4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x1B + b _080658E2 + .pool +_08065604: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x1C + b _080658E2 + .pool +_08065614: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x1D + b _080658E2 + .pool +_08065624: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x1E + b _080658E2 + .pool +_08065634: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x1F + b _080658E2 + .pool +_08065644: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x20 + b _080658E2 + .pool +_08065654: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x22 + b _080658E2 + .pool +_08065664: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x23 + b _080658E2 + .pool +_08065674: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x24 + b _080658E2 + .pool +_08065684: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x25 + b _080658E2 + .pool +_08065694: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x26 + b _080658E2 + .pool +_080656A4: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x27 + bl GetMonData + strb r0, [r7] + adds r0, r4, 0 + movs r1, 0x28 + bl GetMonData + strb r0, [r7, 0x1] + adds r0, r4, 0 + movs r1, 0x29 + bl GetMonData + strb r0, [r7, 0x2] + adds r0, r4, 0 + movs r1, 0x2A + bl GetMonData + strb r0, [r7, 0x3] + adds r0, r4, 0 + movs r1, 0x2B + bl GetMonData + strb r0, [r7, 0x4] + adds r0, r4, 0 + movs r1, 0x2C + bl GetMonData + strb r0, [r7, 0x5] + movs r6, 0x6 + b _080658EA + .pool +_080656F4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x27 + b _080658E2 + .pool +_08065704: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x28 + b _080658E2 + .pool +_08065714: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x29 + b _080658E2 + .pool +_08065724: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x2A + b _080658E2 + .pool +_08065734: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x2B + b _080658E2 + .pool +_08065744: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x2C + b _080658E2 + .pool +_08065754: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0 + b _0806577E + .pool +_08065764: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x9 + b _08065822 + .pool +_08065774: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x37 +_0806577E: + bl GetMonData + adds r1, r0, 0 + strb r1, [r7] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r0, 16 + strb r0, [r7, 0x2] + lsrs r0, r1, 24 + strb r0, [r7, 0x3] + movs r6, 0x4 + b _080658EA + .pool +_080657A8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x38 + b _080658E2 + .pool +_080657B8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x39 + b _08065822 + .pool +_080657C8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x3A + b _08065822 + .pool +_080657D8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x3B + b _08065822 + .pool +_080657E8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x3C + b _08065822 + .pool +_080657F8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x3D + b _08065822 + .pool +_08065808: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x3E + b _08065822 + .pool +_08065818: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x3F +_08065822: + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + strb r0, [r7] + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r6, 0x2 + b _080658EA + .pool +_08065838: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x16 + b _080658E2 + .pool +_08065848: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x17 + b _080658E2 + .pool +_08065858: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x18 + b _080658E2 + .pool +_08065868: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x21 + b _080658E2 + .pool +_08065878: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x2F + b _080658E2 + .pool +_08065888: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x30 + b _080658E2 + .pool +_08065898: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x32 + b _080658E2 + .pool +_080658A8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x33 + b _080658E2 + .pool +_080658B8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x34 + b _080658E2 + .pool +_080658C8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x35 + b _080658E2 + .pool +_080658D8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x36 +_080658E2: + bl GetMonData + strb r0, [r7] + movs r6, 0x1 +_080658EA: + adds r0, r6, 0 + add sp, 0x90 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end dp01_getattr_by_ch1_for_opponent_pokemon + + thumb_func_start sub_8065900 +sub_8065900: @ 8065900 + push {lr} + bl sub_8065068 + pop {r0} + bx r0 + thumb_func_end sub_8065900 + + thumb_func_start sub_806590C +sub_806590C: @ 806590C + push {r4,r5,lr} + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + bne _0806593C + ldr r0, =gBattlePartyID + lsls r1, r2, 1 + adds r1, r0 + ldrb r0, [r1] + bl sub_8065964 + b _0806595A + .pool +_0806593C: + ldrb r4, [r1] + movs r5, 0 +_08065940: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _0806594E + adds r0, r5, 0 + bl sub_8065964 +_0806594E: + lsrs r4, 1 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _08065940 +_0806595A: + bl sub_8065068 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_806590C + + thumb_func_start sub_8065964 +sub_8065964: @ 8065964 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x38 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r3, =gActiveBank + ldrb r0, [r3] + lsls r0, 9 + ldr r2, =gUnknown_02023067 + adds r4, r0, r2 + adds r7, r4, 0 + subs r1, r2, 0x2 + adds r0, r1 + ldrb r0, [r0] + adds r6, r3, 0 + adds r3, r2, 0 + cmp r0, 0x3B + bls _08065992 + bl _08066270 +_08065992: + lsls r0, 2 + ldr r1, =_080659A8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080659A8: + .4byte _08065A98 + .4byte _08065C30 + .4byte _08065C4C + .4byte _08065C68 + .4byte _08065CBC + .4byte _08065CBC + .4byte _08065CBC + .4byte _08065CBC + .4byte _08065CDC + .4byte _08065D44 + .4byte _08065D44 + .4byte _08065D44 + .4byte _08065D44 + .4byte _08066270 + .4byte _08066270 + .4byte _08066270 + .4byte _08066270 + .4byte _08065D6C + .4byte _08065D88 + .4byte _08065DA4 + .4byte _08065DC0 + .4byte _08065DDC + .4byte _08065DF8 + .4byte _08065E14 + .4byte _08065E30 + .4byte _08065E4C + .4byte _08065E68 + .4byte _08065E84 + .4byte _08065EA0 + .4byte _08065EBC + .4byte _08065ED8 + .4byte _08065EF4 + .4byte _08065F68 + .4byte _08065F84 + .4byte _08065FA0 + .4byte _08065FBC + .4byte _08065FD8 + .4byte _08065FF4 + .4byte _08066010 + .4byte _0806602C + .4byte _08066048 + .4byte _08066064 + .4byte _08066080 + .4byte _0806609C + .4byte _080660B8 + .4byte _080660D4 + .4byte _080660F0 + .4byte _0806610C + .4byte _08066128 + .4byte _08066144 + .4byte _08066160 + .4byte _0806617C + .4byte _08066198 + .4byte _080661B4 + .4byte _080661D0 + .4byte _080661EC + .4byte _08066208 + .4byte _08066224 + .4byte _08066240 + .4byte _0806625C +_08065A98: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + adds r2, r7, 0 + bl SetMonData + adds r2, r7, 0 + adds r2, 0x2E + adds r0, r4, 0 + movs r1, 0xC + bl SetMonData + movs r0, 0 + mov r8, r0 + movs r0, 0x3B + adds r0, r7 + mov r10, r0 + adds r0, r7, 0 + adds r0, 0x2B + str r0, [sp, 0x20] + adds r0, 0x19 + str r0, [sp, 0x28] + adds r0, 0x4 + str r0, [sp, 0x2C] + adds r0, 0x4 + str r0, [sp, 0x30] + subs r0, 0x22 + str r0, [sp, 0x1C] + subs r0, 0x2 + str r0, [sp, 0x18] + adds r0, 0x4 + str r0, [sp, 0x24] + adds r0, r7, 0x2 + str r0, [sp, 0x4] + adds r0, r7, 0x4 + str r0, [sp, 0x8] + adds r0, r7, 0x6 + str r0, [sp, 0xC] + adds r0, 0x2 + str r0, [sp, 0x10] + adds r0, 0x2 + str r0, [sp, 0x14] + mov r9, r4 + adds r6, r7, 0 + adds r6, 0x24 + adds r4, r7, 0 + adds r4, 0xC +_08065AFE: + mov r1, r8 + adds r1, 0xD + mov r0, r9 + adds r2, r4, 0 + bl SetMonData + mov r1, r8 + adds r1, 0x11 + mov r0, r9 + adds r2, r6, 0 + bl SetMonData + adds r6, 0x1 + adds r4, 0x2 + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x3 + ble _08065AFE + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x15 + mov r2, r10 + bl SetMonData + adds r0, r4, 0 + movs r1, 0x20 + ldr r2, [sp, 0x20] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x19 + ldr r2, [sp, 0x28] + bl SetMonData + ldrb r0, [r7, 0x14] + lsls r0, 27 + lsrs r0, 27 + mov r1, sp + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x27 + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r7, 0x14] + lsls r0, 22 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x28 + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r7, 0x15] + lsls r0, 25 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x29 + mov r2, sp + bl SetMonData + mov r1, sp + ldr r0, [r7, 0x14] + lsls r0, 12 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2A + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r7, 0x16] + lsls r0, 23 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2B + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r7, 0x17] + lsls r0, 26 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2C + mov r2, sp + bl SetMonData + adds r0, r4, 0 + movs r1, 0 + ldr r2, [sp, 0x2C] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x37 + ldr r2, [sp, 0x30] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x38 + ldr r2, [sp, 0x1C] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x39 + ldr r2, [sp, 0x18] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3A + ldr r2, [sp, 0x24] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3B + ldr r2, [sp, 0x4] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3C + ldr r2, [sp, 0x8] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3D + ldr r2, [sp, 0xC] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3E + ldr r2, [sp, 0x10] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3F + ldr r2, [sp, 0x14] + bl SetMonData + b _08066270 + .pool +_08065C30: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0xB + bl SetMonData + b _08066270 + .pool +_08065C4C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0xC + bl SetMonData + b _08066270 + .pool +_08065C68: + movs r0, 0 + mov r8, r0 + movs r0, 0xC + adds r0, r4 + mov r9, r0 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gEnemyParty + adds r7, r1, r0 + adds r6, r4, 0 + adds r6, 0x8 +_08065C80: + mov r1, r8 + adds r1, 0xD + adds r0, r7, 0 + adds r2, r4, 0 + bl SetMonData + mov r1, r8 + adds r1, 0x11 + adds r0, r7, 0 + adds r2, r6, 0 + bl SetMonData + adds r6, 0x1 + adds r4, 0x2 + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x3 + ble _08065C80 + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x15 + mov r2, r9 + bl SetMonData + b _08066270 + .pool +_08065CBC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldr r3, =gBattleBufferA + ldrb r2, [r6] + lsls r2, 9 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, 0x9 + b _08065D5A + .pool +_08065CDC: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gEnemyParty + adds r4, r0 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + adds r0, r4, 0 + movs r1, 0x11 + str r3, [sp, 0x34] + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x1 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x12 + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x2 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x13 + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x3 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x14 + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x4 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x15 + bl SetMonData + b _08066270 + .pool +_08065D44: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldr r3, =gBattleBufferA + ldrb r2, [r6] + lsls r2, 9 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, 0x8 +_08065D5A: + adds r3, 0x3 + adds r2, r3 + bl SetMonData + b _08066270 + .pool +_08065D6C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1 + bl SetMonData + b _08066270 + .pool +_08065D88: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x19 + bl SetMonData + b _08066270 + .pool +_08065DA4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1A + bl SetMonData + b _08066270 + .pool +_08065DC0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1B + bl SetMonData + b _08066270 + .pool +_08065DDC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1C + bl SetMonData + b _08066270 + .pool +_08065DF8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1D + bl SetMonData + b _08066270 + .pool +_08065E14: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1E + bl SetMonData + b _08066270 + .pool +_08065E30: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1F + bl SetMonData + b _08066270 + .pool +_08065E4C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x20 + bl SetMonData + b _08066270 + .pool +_08065E68: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x22 + bl SetMonData + b _08066270 + .pool +_08065E84: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x23 + bl SetMonData + b _08066270 + .pool +_08065EA0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x24 + bl SetMonData + b _08066270 + .pool +_08065EBC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x25 + bl SetMonData + b _08066270 + .pool +_08065ED8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x26 + bl SetMonData + b _08066270 + .pool +_08065EF4: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gEnemyParty + adds r4, r0 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + adds r0, r4, 0 + movs r1, 0x27 + str r3, [sp, 0x34] + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x1 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x28 + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x2 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x29 + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x3 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x2A + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x4 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x2B + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x5 + adds r2, r0 + adds r0, r4, 0 + b _08066002 + .pool +_08065F68: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x27 + bl SetMonData + b _08066270 + .pool +_08065F84: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x28 + bl SetMonData + b _08066270 + .pool +_08065FA0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x29 + bl SetMonData + b _08066270 + .pool +_08065FBC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x2A + bl SetMonData + b _08066270 + .pool +_08065FD8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x2B + bl SetMonData + b _08066270 + .pool +_08065FF4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 +_08066002: + movs r1, 0x2C + bl SetMonData + b _08066270 + .pool +_08066010: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0 + bl SetMonData + b _08066270 + .pool +_0806602C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x9 + bl SetMonData + b _08066270 + .pool +_08066048: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x37 + bl SetMonData + b _08066270 + .pool +_08066064: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x38 + bl SetMonData + b _08066270 + .pool +_08066080: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x39 + bl SetMonData + b _08066270 + .pool +_0806609C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3A + bl SetMonData + b _08066270 + .pool +_080660B8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3B + bl SetMonData + b _08066270 + .pool +_080660D4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3C + bl SetMonData + b _08066270 + .pool +_080660F0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3D + bl SetMonData + b _08066270 + .pool +_0806610C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3E + bl SetMonData + b _08066270 + .pool +_08066128: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3F + bl SetMonData + b _08066270 + .pool +_08066144: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x16 + bl SetMonData + b _08066270 + .pool +_08066160: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x17 + bl SetMonData + b _08066270 + .pool +_0806617C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x18 + bl SetMonData + b _08066270 + .pool +_08066198: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x21 + bl SetMonData + b _08066270 + .pool +_080661B4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x2F + bl SetMonData + b _08066270 + .pool +_080661D0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x30 + bl SetMonData + b _08066270 + .pool +_080661EC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x32 + bl SetMonData + b _08066270 + .pool +_08066208: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x33 + bl SetMonData + b _08066270 + .pool +_08066224: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x34 + bl SetMonData + b _08066270 + .pool +_08066240: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x35 + bl SetMonData + b _08066270 + .pool +_0806625C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x36 + bl SetMonData +_08066270: + add sp, 0x38 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8065964 + + thumb_func_start sub_8066284 +sub_8066284: @ 8066284 + push {r4-r7,lr} + ldr r1, =gBattlePartyID + ldr r7, =gActiveBank + ldrb r2, [r7] + lsls r0, r2, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + adds r3, r1, 0 + muls r3, r0 + ldr r4, =gBattleBufferA + lsls r2, 9 + adds r0, r4, 0x1 + adds r0, r2, r0 + ldrb r0, [r0] + ldr r1, =gEnemyParty + adds r0, r1 + adds r5, r3, r0 + movs r3, 0 + adds r0, r4, 0x2 + adds r2, r0 + ldrb r2, [r2] + cmp r3, r2 + bcs _080662DC + adds r6, r4, 0 + adds r2, r7, 0 + adds r4, r0, 0 +_080662BA: + adds r1, r5, r3 + ldrb r0, [r2] + lsls r0, 9 + adds r0, 0x3 + adds r0, r3, r0 + adds r0, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + ldrb r0, [r2] + lsls r0, 9 + adds r0, r4 + ldrb r0, [r0] + cmp r3, r0 + bcc _080662BA +_080662DC: + bl sub_8065068 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8066284 + + thumb_func_start sub_80662F8 +sub_80662F8: @ 80662F8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r7, =gBattlePartyID + ldr r6, =gActiveBank + ldrb r0, [r6] + lsls r0, 1 + adds r0, r7 + ldrh r0, [r0] + movs r1, 0x64 + mov r10, r1 + mov r2, r10 + muls r2, r0 + adds r0, r2, 0 + ldr r1, =gEnemyParty + mov r9, r1 + add r0, r9 + movs r1, 0xB + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrb r1, [r6] + lsls r0, r1, 1 + adds r0, r7 + ldrh r0, [r0] + mov r2, r10 + muls r2, r0 + adds r0, r2, 0 + add r0, r9 + bl sub_805DC0C + ldrb r0, [r6] + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_806A068 + ldr r0, =gUnknown_0202499C + mov r8, r0 + ldrb r0, [r6] + movs r1, 0x2 + bl sub_80A5C6C + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldrb r0, [r6] + bl sub_80A6138 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r6] + bl sub_80A82E4 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + mov r0, r8 + adds r1, r5, 0 + adds r2, r4, 0 + bl CreateSprite + ldr r4, =gBankSpriteIds + ldrb r1, [r6] + adds r1, r4 + strb r0, [r1] + ldr r5, =gSprites + ldrb r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =0x0000ff10 + strh r1, [r0, 0x24] + ldrb r2, [r6] + adds r0, r2, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x2E] + ldrb r3, [r6] + adds r0, r3, r4 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + lsls r3, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r2, [r6] + adds r4, r2, r4 + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =gUnknown_020244E4 + adds r2, r1 + ldrb r1, [r2] + bl StartSpriteAnim + ldrb r4, [r6] + lsls r0, r4, 1 + adds r0, r7 + ldrh r0, [r0] + mov r1, r10 + muls r1, r0 + adds r0, r1, 0 + add r0, r9 + movs r1, 0xB + bl GetMonData + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_805EE54 + ldr r1, =gBattleBankFunc + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8064B04 + str r1, [r0] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80662F8 + + thumb_func_start sub_8066448 +sub_8066448: @ 8066448 + push {r4,lr} + ldr r1, =gBattlePartyID + ldr r4, =gActiveBank + ldrb r0, [r4] + lsls r2, r0, 1 + adds r2, r1 + ldr r3, =gBattleBufferA + lsls r0, 9 + adds r1, r3, 0x1 + adds r0, r1 + ldrb r0, [r0] + strh r0, [r2] + ldrb r0, [r4] + lsls r1, r0, 9 + adds r3, 0x2 + adds r1, r3 + ldrb r1, [r1] + bl sub_8066494 + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8064F40 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8066448 + + thumb_func_start sub_8066494 +sub_8066494: @ 8066494 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + lsls r1, 24 + lsrs r1, 24 + adds r0, r6, 0 + bl sub_805EF84 + ldr r0, =gBattlePartyID + lsls r4, r6, 1 + adds r4, r0 + ldr r0, =gBattleBufferA + lsls r1, r6, 9 + adds r0, 0x1 + adds r1, r0 + ldrb r0, [r1] + strh r0, [r4] + ldrh r0, [r4] + movs r1, 0x64 + mov r9, r1 + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + ldr r5, =gEnemyParty + adds r0, r5 + movs r1, 0xB + bl GetMonData + mov r8, r0 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r0, =sub_805D714 + bl CreateInvisibleSpriteWithCallback + ldr r1, =gUnknown_03005D7C + mov r10, r1 + add r10, r6 + mov r1, r10 + strb r0, [r1] + ldrh r0, [r4] + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + adds r0, r5 + adds r1, r6, 0 + bl sub_805DC0C + adds r0, r6, 0 + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r8 + bl sub_806A068 + ldr r0, =gUnknown_0202499C + mov r9, r0 + adds r0, r6, 0 + movs r1, 0x2 + bl sub_80A5C6C + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + adds r0, r6, 0 + bl sub_80A6138 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + bl sub_80A82E4 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + mov r0, r9 + adds r1, r5, 0 + adds r2, r4, 0 + bl CreateSprite + ldr r4, =gBankSpriteIds + adds r4, r6, r4 + strb r0, [r4] + ldr r5, =gSprites + mov r0, r10 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r4] + strh r1, [r0, 0x30] + mov r0, r10 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x32] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x2E] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + mov r1, r8 + strh r1, [r0, 0x32] + ldrb r0, [r4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + lsls r3, r6, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =gUnknown_020244E4 + adds r6, r1 + ldrb r1, [r6] + bl StartSpriteAnim + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =SpriteCallbackDummy + str r1, [r0] + movs r0, 0 + movs r1, 0xFE + bl sub_80753E8 + mov r1, r10 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r5 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0x2E] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8066494 + + thumb_func_start sub_8066624 +sub_8066624: @ 8066624 + push {r4-r6,lr} + ldr r1, =gBattleBufferA + ldr r6, =gActiveBank + ldrb r2, [r6] + lsls r0, r2, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r3, [r0] + cmp r3, 0 + bne _0806666C + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + strb r3, [r0, 0x4] + ldr r1, =gBattleBankFunc + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_80666BC + str r1, [r0] + b _080666A8 + .pool +_0806666C: + ldr r5, =gBankSpriteIds + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + ldrb r0, [r6] + bl sub_805EEE0 + ldr r1, =gUnknown_03005D70 + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + bl sub_8072984 + bl sub_8065068 +_080666A8: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8066624 + + thumb_func_start sub_80666BC +sub_80666BC: @ 80666BC + push {r4-r6,lr} + ldr r6, =gUnknown_020244D0 + ldr r4, [r6] + ldr r5, =gActiveBank + ldrb r2, [r5] + ldr r1, [r4, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r3, r0, r1 + ldrb r0, [r3, 0x4] + cmp r0, 0 + beq _080666E4 + cmp r0, 0x1 + beq _08066712 + b _0806673A + .pool +_080666E4: + ldr r1, [r4] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080666FE + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_080666FE: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0, 0x4] + b _0806673A +_08066712: + ldrb r1, [r3] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _0806673A + strb r0, [r3, 0x4] + ldrb r2, [r5] + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x2 + bl move_anim_start_t4 + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8064C58 + str r1, [r0] +_0806673A: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80666BC + + thumb_func_start sub_8066748 +sub_8066748: @ 8066748 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r4, =gBattleTypeFlags + ldr r0, [r4] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08066840 + ldr r5, =gActiveBank + ldrb r0, [r5] + bl GetBankIdentity + movs r1, 0x2 + ands r1, r0 + movs r7, 0xC8 + cmp r1, 0 + beq _08066770 + movs r7, 0x98 +_08066770: + ldr r0, [r4] + movs r1, 0x80 + lsls r1, 1 + ands r0, r1 + cmp r0, 0 + beq _080667A8 + ldrb r0, [r5] + cmp r0, 0x1 + bne _08066794 + ldr r0, =gUnknown_02038BCA + b _08066796 + .pool +_08066794: + ldr r0, =gUnknown_02038BCC +_08066796: + ldrh r0, [r0] + bl sub_8162AA0 + lsls r0, 24 + lsrs r0, 24 + b _0806694C + .pool +_080667A8: + ldrb r0, [r5] + bl sub_806D864 + ldr r6, =gUnknown_020229E8 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r6 + movs r4, 0xFF + ldrb r0, [r1] + cmp r0, 0x4 + beq _080667D8 + ldrb r0, [r5] + bl sub_806D864 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r6 + ldrh r1, [r1] + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0x5 + bne _080667F4 +_080667D8: + ldrb r0, [r5] + bl sub_806D864 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r0, [r1, 0x13] + cmp r0, 0 + bne _080668AA + b _080668BC + .pool +_080667F4: + ldrb r0, [r5] + bl sub_806D864 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r6 + ldrh r1, [r1] + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0x2 + beq _08066822 + ldrb r0, [r5] + bl sub_806D864 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r6 + ldrh r0, [r1] + ands r4, r0 + cmp r4, 0x1 + bne _08066838 +_08066822: + ldrb r0, [r5] + bl sub_806D864 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r0, [r1, 0x13] + cmp r0, 0 + bne _08066916 + b _08066924 +_08066838: + ldrb r0, [r5] + bl sub_806D864 + b _0806693A +_08066840: + movs r7, 0xB0 + ldr r0, =gUnknown_02038BCA + ldrh r1, [r0] + movs r0, 0xC0 + lsls r0, 4 + cmp r1, r0 + bne _08066858 + bl sub_8068B48 + b _08066948 + .pool +_08066858: + bl link_get_multiplayer_id + ldr r6, =gUnknown_020229E8 + movs r5, 0x1 + eors r0, r5 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r6 + movs r4, 0xFF + ldrb r0, [r1] + cmp r0, 0x4 + beq _08066892 + bl link_get_multiplayer_id + eors r0, r5 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r6 + ldrh r1, [r1] + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0x5 + bne _080668C8 +_08066892: + bl link_get_multiplayer_id + eors r0, r5 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r0, [r1, 0x13] + cmp r0, 0 + beq _080668BC +_080668AA: + ldr r0, =gTrainerPicIndices + adds r0, 0x4F + ldrb r0, [r0] + b _0806694C + .pool +_080668BC: + ldr r0, =gTrainerPicIndices + adds r0, 0x4E + ldrb r0, [r0] + b _0806694C + .pool +_080668C8: + bl link_get_multiplayer_id + eors r0, r5 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r6 + ldrh r1, [r1] + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0x2 + beq _080668FE + bl link_get_multiplayer_id + eors r0, r5 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r6 + ldrh r0, [r1] + ands r4, r0 + cmp r4, 0x1 + bne _08066930 +_080668FE: + bl link_get_multiplayer_id + eors r0, r5 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r0, [r1, 0x13] + cmp r0, 0 + beq _08066924 +_08066916: + ldr r0, =gTrainerPicIndices + adds r0, 0x51 + ldrb r0, [r0] + b _0806694C + .pool +_08066924: + ldr r0, =gTrainerPicIndices + adds r0, 0x50 + ldrb r0, [r0] + b _0806694C + .pool +_08066930: + bl link_get_multiplayer_id + eors r0, r5 + lsls r0, 24 + lsrs r0, 24 +_0806693A: + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r0, [r1, 0x13] + bl sub_806F000 +_08066948: + lsls r0, 16 + lsrs r0, 16 +_0806694C: + mov r8, r0 + ldr r5, =gActiveBank + ldrb r1, [r5] + bl sub_805DF38 + ldrb r0, [r5] + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r8 + bl template_build_for_pokemon_or_trainer + ldr r6, =gUnknown_0202499C + mov r9, r7 + ldr r1, =gUnknown_083054E0 + mov r2, r8 + lsls r0, r2, 2 + adds r0, r1 + ldrb r0, [r0] + movs r4, 0x8 + subs r4, r0 + lsls r4, 18 + movs r0, 0xA0 + lsls r0, 14 + adds r4, r0 + asrs r4, 16 + ldrb r0, [r5] + bl sub_80A82E4 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + adds r0, r6, 0 + mov r1, r9 + adds r2, r4, 0 + bl CreateSprite + ldr r6, =gBankSpriteIds + ldrb r1, [r5] + adds r1, r6 + strb r0, [r1] + ldr r4, =gSprites + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =0x0000ff10 + strh r1, [r0, 0x24] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x2 + strh r1, [r0, 0x2E] + ldr r1, =gTrainerFrontPicPaletteTable + mov r2, r8 + lsls r0, r2, 3 + adds r0, r1 + ldrh r0, [r0, 0x4] + bl IndexOfSpritePaletteTag + ldrb r1, [r5] + adds r1, r6 + ldrb r1, [r1] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r4 + lsls r0, 4 + ldrb r3, [r2, 0x5] + movs r1, 0xF + ands r1, r3 + orrs r1, r0 + strb r1, [r2, 0x5] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + mov r1, r8 + strh r1, [r0, 0x6] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, =sub_805D7AC + str r1, [r0] + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8064400 + str r1, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8066748 + + thumb_func_start sub_8066A58 +sub_8066A58: @ 8066A58 + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r0, =gActiveBank + ldrb r0, [r0] + cmp r0, 0x1 + bne _08066A74 + ldr r0, =gUnknown_02038BCA + b _08066A76 + .pool +_08066A74: + ldr r0, =gUnknown_02038BCC +_08066A76: + ldrh r0, [r0] + bl sub_8162AA0 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r6, =gActiveBank + ldrb r1, [r6] + bl sub_805DF38 + ldrb r0, [r6] + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r8 + bl template_build_for_pokemon_or_trainer + ldr r0, =gUnknown_0202499C + ldr r2, =gUnknown_083054E0 + mov r3, r8 + lsls r1, r3, 2 + adds r1, r2 + ldrb r1, [r1] + movs r2, 0x8 + subs r2, r1 + lsls r2, 18 + movs r1, 0xA0 + lsls r1, 14 + adds r2, r1 + asrs r2, 16 + movs r1, 0xB0 + movs r3, 0x1E + bl CreateSprite + ldr r5, =gBankSpriteIds + ldrb r1, [r6] + adds r1, r5 + strb r0, [r1] + ldr r4, =gSprites + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x60 + strh r1, [r0, 0x24] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x20] + adds r1, 0x20 + strh r1, [r0, 0x20] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =0x0000fffe + strh r1, [r0, 0x2E] + ldr r1, =gTrainerFrontPicPaletteTable + mov r2, r8 + lsls r0, r2, 3 + adds r0, r1 + ldrh r0, [r0, 0x4] + bl IndexOfSpritePaletteTag + ldrb r1, [r6] + adds r1, r5 + ldrb r1, [r1] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r4 + lsls r0, 4 + ldrb r3, [r2, 0x5] + movs r1, 0xF + ands r1, r3 + orrs r1, r0 + strb r1, [r2, 0x5] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + mov r3, r8 + strh r3, [r0, 0x6] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, =sub_805D7AC + str r1, [r0] + ldr r1, =gBattleBankFunc + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8064438 + str r1, [r0] + bl sub_8065068 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8066A58 + + thumb_func_start sub_8066B94 +sub_8066B94: @ 8066B94 + push {r4-r6,lr} + ldr r6, =gBankSpriteIds + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, =gSprites + adds r0, r5 + bl oamt_add_pos2_onto_pos1 + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x23 + strh r1, [r0, 0x2E] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x8C + lsls r1, 1 + strh r1, [r0, 0x32] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r1, [r0, 0x22] + strh r1, [r0, 0x36] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =sub_80A6EEC + str r1, [r0] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =SpriteCallbackDummy + bl oamt_set_x3A_32 + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8064470 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8066B94 + + thumb_func_start sub_8066C40 +sub_8066C40: @ 8066C40 + push {r4-r6,lr} + ldr r6, =gUnknown_020244D0 + ldr r4, [r6] + ldr r5, =gActiveBank + ldrb r2, [r5] + ldr r0, [r4, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r3, r1, r0 + ldrb r0, [r3, 0x4] + cmp r0, 0 + bne _08066C94 + ldr r1, [r4] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08066C74 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_08066C74: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x4] + adds r1, 0x1 + strb r1, [r0, 0x4] + b _08066CD0 + .pool +_08066C94: + ldrb r1, [r3] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _08066CD0 + strb r0, [r3, 0x4] + movs r0, 0x10 + movs r1, 0x3F + bl PlaySE12WithPanning + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldrb r0, [r5] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, =sub_8039934 + str r1, [r0] + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8064C14 + str r1, [r0] +_08066CD0: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8066C40 + + thumb_func_start sub_8066CEC +sub_8066CEC: @ 8066CEC + push {lr} + bl sub_8065068 + pop {r0} + bx r0 + thumb_func_end sub_8066CEC + + thumb_func_start sub_8066CF8 +sub_8066CF8: @ 8066CF8 + push {lr} + bl sub_8065068 + pop {r0} + bx r0 + thumb_func_end sub_8066CF8 + + thumb_func_start sub_8066D04 +sub_8066D04: @ 8066D04 + push {lr} + bl sub_8065068 + pop {r0} + bx r0 + thumb_func_end sub_8066D04 + + thumb_func_start sub_8066D10 +sub_8066D10: @ 8066D10 + push {lr} + bl sub_8065068 + pop {r0} + bx r0 + thumb_func_end sub_8066D10 + + thumb_func_start sub_8066D1C +sub_8066D1C: @ 8066D1C + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r5, =gActiveBank + ldrb r0, [r5] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + beq _08066D32 + b _08066E58 +_08066D32: + ldr r0, =gBattleBufferA + mov r12, r0 + ldrb r1, [r5] + lsls r1, 9 + adds r0, 0x1 + adds r0, r1, r0 + ldrb r6, [r0] + mov r0, r12 + adds r0, 0x2 + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, 8 + orrs r6, r0 + ldr r0, =gUnknown_02038432 + mov r8, r0 + mov r0, r12 + adds r0, 0x3 + adds r1, r0 + ldrb r0, [r1] + mov r1, r8 + strb r0, [r1] + ldr r3, =gMovePowerMoveAnim + ldrb r1, [r5] + lsls r1, 9 + mov r0, r12 + adds r0, 0x4 + adds r0, r1, r0 + ldrb r2, [r0] + mov r0, r12 + adds r0, 0x5 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 8 + orrs r2, r0 + strh r2, [r3] + ldr r3, =gMoveDmgMoveAnim + ldrb r1, [r5] + lsls r1, 9 + mov r0, r12 + adds r0, 0x6 + adds r0, r1, r0 + ldrb r2, [r0] + mov r0, r12 + adds r0, 0x7 + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, 8 + orrs r2, r0 + mov r0, r12 + adds r0, 0x8 + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, 16 + orrs r2, r0 + mov r0, r12 + adds r0, 0x9 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 24 + orrs r2, r0 + str r2, [r3] + ldr r2, =gHappinessMoveAnim + ldrb r0, [r5] + lsls r0, 9 + mov r1, r12 + adds r1, 0xA + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + ldr r4, =gWeatherMoveAnim + ldrb r1, [r5] + lsls r1, 9 + mov r0, r12 + adds r0, 0xC + adds r0, r1, r0 + ldrb r2, [r0] + mov r0, r12 + adds r0, 0xD + adds r1, r0 + ldrb r0, [r1] + lsls r0, 8 + orrs r2, r0 + strh r2, [r4] + ldr r7, =gDisableStructMoveAnim + ldrb r1, [r5] + lsls r1, 9 + mov r0, r12 + adds r0, 0x10 + adds r1, r0 + str r1, [r7] + ldr r2, =gUnknown_020244BC + ldrb r0, [r5] + lsls r0, 2 + adds r0, r2 + ldr r1, [r1] + str r1, [r0] + mov r0, r8 + ldrb r1, [r0] + adds r0, r6, 0 + bl sub_805DB8C + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _08066E30 + bl sub_8065068 + b _08066E58 + .pool +_08066E30: + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strb r3, [r0, 0x4] + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8066E70 + str r1, [r0] + ldrh r1, [r4] + ldr r2, [r7] + adds r0, r6, 0 + bl sub_817E0FC +_08066E58: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8066D1C + + thumb_func_start sub_8066E70 +sub_8066E70: @ 8066E70 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r2, =gBattleBufferA + ldr r6, =gActiveBank + ldrb r3, [r6] + lsls r1, r3, 9 + adds r0, r2, 0x1 + mov r10, r0 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, r2, 0x2 + mov r9, r5 + adds r0, r1, r5 + ldrb r0, [r0] + lsls r0, 8 + orrs r4, r0 + adds r2, 0xB + adds r1, r2 + ldrb r1, [r1] + mov r8, r1 + ldr r7, =gUnknown_020244D0 + ldr r5, [r7] + ldr r1, [r5, 0x4] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0, 0x4] + cmp r2, 0x1 + beq _08066F08 + cmp r2, 0x1 + bgt _08066EC8 + cmp r2, 0 + beq _08066ED2 + b _08066FE4 + .pool +_08066EC8: + cmp r2, 0x2 + beq _08066F32 + cmp r2, 0x3 + beq _08066FA8 + b _08066FE4 +_08066ED2: + ldr r1, [r5] + lsls r0, r3, 2 + adds r1, r0, r1 + ldrb r2, [r1] + movs r0, 0xC + ands r0, r2 + cmp r0, 0x4 + bne _08066EF4 + movs r0, 0x8 + orrs r0, r2 + strb r0, [r1] + ldrb r2, [r6] + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_08066EF4: + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0, 0x4] + b _08066FE4 +_08066F08: + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08066FE4 + movs r0, 0 + bl sub_805EB9C + adds r0, r4, 0 + bl move_anim_start_t1 + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x2 + strb r1, [r0, 0x4] + b _08066FE4 +_08066F32: + ldr r0, =gAnimScriptCallback + ldr r0, [r0] + bl _call_via_r0 + ldr r0, =gAnimScriptActive + ldrb r0, [r0] + cmp r0, 0 + bne _08066FE4 + movs r0, 0x1 + bl sub_805EB9C + ldr r0, [r7] + ldrb r2, [r6] + ldr r1, [r0] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08066F80 + mov r0, r8 + cmp r0, 0x1 + bhi _08066F80 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x6 + bl move_anim_start_t4 + ldr r0, [r7] + ldrb r1, [r6] + ldr r0, [r0] + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x9 + negs r0, r0 + ands r0, r2 + strb r0, [r1] +_08066F80: + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + strb r1, [r0, 0x4] + b _08066FE4 + .pool +_08066FA8: + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _08066FE4 + bl sub_805E394 + ldrb r0, [r6] + lsls r2, r0, 9 + mov r3, r10 + adds r1, r2, r3 + ldrb r1, [r1] + add r2, r9 + ldrb r2, [r2] + lsls r2, 8 + orrs r1, r2 + bl sub_805E94C + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strb r4, [r0, 0x4] + bl sub_8065068 +_08066FE4: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8066E70 + + thumb_func_start sub_8066FF4 +sub_8066FF4: @ 8066FF4 + push {r4,r5,lr} + ldr r0, =gUnknown_02022E14 + movs r1, 0 + strh r1, [r0] + ldr r0, =gUnknown_02022E16 + strh r1, [r0] + ldr r5, =gActiveBank + ldrb r4, [r5] + lsls r4, 9 + ldr r0, =gUnknown_02023066 + adds r4, r0 + ldrh r0, [r4] + bl battle_pick_message + ldr r0, =gUnknown_02022E2C + movs r1, 0 + bl battle_show_message_maybe + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8064CCC + str r1, [r0] + ldrh r0, [r4] + bl sub_817C95C + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8066FF4 + + thumb_func_start sub_806704C +sub_806704C: @ 806704C + push {lr} + bl sub_8065068 + pop {r0} + bx r0 + thumb_func_end sub_806704C + + thumb_func_start sub_8067058 +sub_8067058: @ 8067058 + push {lr} + bl sub_8065068 + pop {r0} + bx r0 + thumb_func_end sub_8067058 + + thumb_func_start sub_8067064 +sub_8067064: @ 8067064 + push {lr} + bl sub_8065068 + pop {r0} + bx r0 + thumb_func_end sub_8067064 + + thumb_func_start sub_8067070 +sub_8067070: @ 8067070 + push {lr} + bl sub_8065068 + pop {r0} + bx r0 + thumb_func_end sub_8067070 + + thumb_func_start sub_806707C +sub_806707C: @ 806707C + push {lr} + bl sub_8065068 + pop {r0} + bx r0 + thumb_func_end sub_806707C + + thumb_func_start sub_8067088 +sub_8067088: @ 8067088 + push {lr} + bl sub_8065068 + pop {r0} + bx r0 + thumb_func_end sub_8067088 + + thumb_func_start sub_8067094 +sub_8067094: @ 8067094 + push {lr} + bl sub_8065068 + pop {r0} + bx r0 + thumb_func_end sub_8067094 + + thumb_func_start sub_80670A0 +sub_80670A0: @ 80670A0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + movs r0, 0 + bl load_gfxc_health_bar + ldr r3, =gBattleBufferA + ldr r0, =gActiveBank + mov r9, r0 + ldrb r4, [r0] + lsls r2, r4, 9 + adds r0, r3, 0x2 + adds r0, r2, r0 + ldrb r1, [r0] + adds r3, 0x3 + adds r2, r3 + ldrb r0, [r2] + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + asrs r7, r1, 16 + ldr r0, =0x00007fff + cmp r7, r0 + beq _08067130 + ldr r6, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r6 + ldrh r0, [r0] + movs r5, 0x64 + muls r0, r5 + ldr r4, =gEnemyParty + adds r0, r4 + movs r1, 0x3A + bl GetMonData + mov r8, r0 + mov r1, r9 + ldrb r0, [r1] + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + muls r0, r5 + adds r0, r4 + movs r1, 0x39 + bl GetMonData + adds r3, r0, 0 + mov r1, r9 + ldrb r0, [r1] + ldr r1, =gUnknown_03005D70 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + mov r2, r8 + bl sub_807294C + b _0806715A + .pool +_08067130: + ldr r1, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x3A + bl GetMonData + adds r2, r0, 0 + mov r1, r9 + ldrb r0, [r1] + ldr r1, =gUnknown_03005D70 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + movs r3, 0 + bl sub_807294C +_0806715A: + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8064BC0 + str r1, [r0] + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80670A0 + + thumb_func_start sub_8067190 +sub_8067190: @ 8067190 + push {lr} + bl sub_8065068 + pop {r0} + bx r0 + thumb_func_end sub_8067190 + + thumb_func_start sub_806719C +sub_806719C: @ 806719C + push {r4,lr} + ldr r4, =gActiveBank + ldrb r0, [r4] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _080671F0 + ldr r0, =gUnknown_03005D70 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + ldr r2, =gBattlePartyID + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gEnemyParty + adds r1, r2 + movs r2, 0x9 + bl healthbar_draw_field_maybe + ldrb r2, [r4] + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8065008 + str r1, [r0] +_080671F0: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_806719C + + thumb_func_start sub_8067214 +sub_8067214: @ 8067214 + push {r4,r5,lr} + ldr r5, =gActiveBank + ldrb r0, [r5] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _08067264 + ldr r4, =gBattleBufferA + ldrb r3, [r5] + lsls r3, 9 + adds r0, r4, 0x1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, 0x2 + adds r1, r3, r1 + ldrb r1, [r1] + adds r2, r4, 0x3 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, 8 + orrs r1, r2 + adds r2, r4, 0x4 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, 16 + orrs r1, r2 + adds r4, 0x5 + adds r3, r4 + ldrb r2, [r3] + lsls r2, 24 + orrs r1, r2 + bl move_anim_start_t2_for_situation + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8065008 + str r1, [r0] +_08067264: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8067214 + + thumb_func_start sub_806727C +sub_806727C: @ 806727C + push {lr} + bl sub_8065068 + pop {r0} + bx r0 + thumb_func_end sub_806727C + + thumb_func_start sub_8067288 +sub_8067288: @ 8067288 + push {lr} + bl sub_8065068 + pop {r0} + bx r0 + thumb_func_end sub_8067288 + + thumb_func_start sub_8067294 +sub_8067294: @ 8067294 + push {lr} + bl sub_8065068 + pop {r0} + bx r0 + thumb_func_end sub_8067294 + + thumb_func_start sub_80672A0 +sub_80672A0: @ 80672A0 + push {lr} + bl sub_8065068 + pop {r0} + bx r0 + thumb_func_end sub_80672A0 + + thumb_func_start sub_80672AC +sub_80672AC: @ 80672AC + push {lr} + bl sub_8065068 + pop {r0} + bx r0 + thumb_func_end sub_80672AC + + thumb_func_start sub_80672B8 +sub_80672B8: @ 80672B8 + push {lr} + bl sub_8065068 + pop {r0} + bx r0 + thumb_func_end sub_80672B8 + + thumb_func_start sub_80672C4 +sub_80672C4: @ 80672C4 + push {lr} + bl sub_8065068 + pop {r0} + bx r0 + thumb_func_end sub_80672C4 + + thumb_func_start sub_80672D0 +sub_80672D0: @ 80672D0 + push {lr} + bl sub_8065068 + pop {r0} + bx r0 + thumb_func_end sub_80672D0 + + thumb_func_start sub_80672DC +sub_80672DC: @ 80672DC + push {lr} + bl sub_8065068 + pop {r0} + bx r0 + thumb_func_end sub_80672DC + + thumb_func_start sub_80672E8 +sub_80672E8: @ 80672E8 + push {lr} + ldr r2, =gUnknown_02022D0C + ldrb r1, [r2] + movs r0, 0x80 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + bl sub_8065068 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80672E8 + + thumb_func_start sub_8067304 +sub_8067304: @ 8067304 + push {lr} + ldr r3, =gUnknown_02022D0C + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + movs r1, 0x7F + ands r1, r0 + ldrb r2, [r3] + movs r0, 0x80 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl sub_8065068 + pop {r0} + bx r0 + .pool + thumb_func_end sub_8067304 + + thumb_func_start sub_806733C +sub_806733C: @ 806733C + push {lr} + ldr r2, =gUnknown_02022D0C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + bl sub_8065068 + pop {r0} + bx r0 + .pool + thumb_func_end sub_806733C + + thumb_func_start sub_8067354 +sub_8067354: @ 8067354 + push {lr} + ldr r3, =gUnknown_02022D0C + ldr r1, [r3] + lsls r1, 24 + lsrs r1, 31 + movs r0, 0x1 + eors r1, r0 + lsls r1, 7 + ldrb r2, [r3] + movs r0, 0x7F + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl sub_8065068 + pop {r0} + bx r0 + .pool + thumb_func_end sub_8067354 + + thumb_func_start sub_806737C +sub_806737C: @ 806737C + push {r4,lr} + ldr r3, =gSprites + ldr r2, =gBankSpriteIds + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + bge _080673B0 + bl sub_8065068 + b _080673DA + .pool +_080673B0: + ldr r1, =gDoingBattleAnim + movs r0, 0x1 + strb r0, [r1] + ldrb r0, [r4] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0 + strh r1, [r0, 0x30] + ldrb r0, [r4] + bl sub_80769F4 + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8064CE4 + str r1, [r0] +_080673DA: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_806737C + + thumb_func_start sub_80673EC +sub_80673EC: @ 80673EC + push {lr} + bl sub_8065068 + pop {r0} + bx r0 + thumb_func_end sub_80673EC + + thumb_func_start sub_80673F8 +sub_80673F8: @ 80673F8 + push {r4,lr} + ldr r4, =gActiveBank + ldrb r0, [r4] + bl GetBankSide + lsls r0, 24 + movs r3, 0x3F + cmp r0, 0 + bne _0806740C + movs r3, 0xC0 +_0806740C: + ldr r2, =gBattleBufferA + ldrb r1, [r4] + lsls r1, 9 + adds r0, r2, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + lsls r1, r3, 24 + asrs r1, 24 + bl PlaySE12WithPanning + bl sub_8065068 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80673F8 + + thumb_func_start sub_806743C +sub_806743C: @ 806743C + push {r4,r5,lr} + ldr r4, =gBattleBufferA + ldr r5, =gActiveBank + ldrb r0, [r5] + lsls r3, r0, 9 + adds r0, r4, 0x3 + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, 0 + beq _08067478 + bl sub_805EA60 + ldrb r1, [r5] + lsls r1, 9 + adds r0, r4, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, r4, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + bl PlayBGM + b _0806748C + .pool +_08067478: + adds r0, r4, 0x1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, 0x2 + adds r1, r3, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + bl PlayFanfare +_0806748C: + bl sub_8065068 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_806743C + + thumb_func_start sub_8067498 +sub_8067498: @ 8067498 + push {lr} + ldr r1, =gBattlePartyID + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x19 + movs r2, 0x5 + bl PlayCry3 + bl sub_8065068 + pop {r0} + bx r0 + .pool + thumb_func_end sub_8067498 + + thumb_func_start sub_80674D4 +sub_80674D4: @ 80674D4 + push {lr} + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + bl battle_intro_launch + ldr r2, =gUnknown_020243FC + ldrh r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r2] + bl sub_8065068 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80674D4 + + thumb_func_start sub_8067508 +sub_8067508: @ 8067508 + push {r4-r6,lr} + ldr r5, =gBankSpriteIds + ldr r6, =gActiveBank + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + bl oamt_add_pos2_onto_pos1 + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x23 + strh r1, [r0, 0x2E] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x8C + lsls r1, 1 + strh r1, [r0, 0x32] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x22] + strh r1, [r0, 0x36] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =sub_80A6EEC + str r1, [r0] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =sub_80676FC + bl oamt_set_x3A_32 + ldr r0, =c3_08038DC4 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r4, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r4 + ldrb r0, [r6] + strh r0, [r1, 0x8] + ldr r3, =gUnknown_020244D0 + ldr r0, [r3] + ldrb r2, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080675CA + ldr r0, =gUnknown_020244B4 + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + ldr r1, =sub_8073C30 + str r1, [r0] +_080675CA: + ldr r0, [r3] + ldr r2, [r0, 0x8] + ldrb r0, [r2, 0x9] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x9] + ldr r1, =gBattleBankFunc + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, =nullsub_28 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8067508 + + thumb_func_start c3_08038DC4 +c3_08038DC4: @ 8067618 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r7, =gActiveBank + ldrb r0, [r7] + mov r9, r0 + ldr r1, =gTasks + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x8] + strb r0, [r7] + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08067652 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08067684 +_08067652: + ldr r0, =gBattleBufferA + ldrb r1, [r7] + lsls r2, r1, 9 + adds r0, 0x1 + adds r2, r0 + ldr r0, =gBattlePartyID + lsls r1, 1 + adds r1, r0 + ldrh r0, [r1] + strb r0, [r2] + ldrb r0, [r7] + movs r1, 0 + bl sub_8066494 + b _080676C4 + .pool +_08067684: + ldr r4, =gBattleBufferA + ldrb r0, [r7] + lsls r1, r0, 9 + adds r4, 0x1 + adds r1, r4 + ldr r6, =gBattlePartyID + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, 0 + bl sub_8066494 + ldrb r0, [r7] + movs r5, 0x2 + eors r0, r5 + strb r0, [r7] + ldrb r0, [r7] + lsls r1, r0, 9 + adds r1, r4 + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, 0 + bl sub_8066494 + ldrb r0, [r7] + eors r0, r5 + strb r0, [r7] +_080676C4: + ldr r1, =gBattleBankFunc + ldr r2, =gActiveBank + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8064734 + str r1, [r0] + mov r0, r9 + strb r0, [r2] + mov r0, r8 + bl DestroyTask + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end c3_08038DC4 + + thumb_func_start sub_80676FC +sub_80676FC: @ 80676FC + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x6] + bl sub_805DFE4 + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80676FC + + thumb_func_start sub_8067718 +sub_8067718: @ 8067718 + push {r4-r7,lr} + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08067748 + adds r0, r2, 0 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _08067748 + bl sub_8065068 + b _08067812 + .pool +_08067748: + ldr r4, =gUnknown_020244D0 + ldr r0, [r4] + ldr r3, =gActiveBank + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + ldr r1, =gBattleBufferA + ldrb r2, [r3] + lsls r0, r2, 9 + adds r1, 0x2 + adds r0, r1 + ldrb r0, [r0] + adds r7, r3, 0 + cmp r0, 0 + beq _080677B4 + ldr r0, [r4] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r3, r0, r1 + ldrb r2, [r3, 0x1] + lsls r1, r2, 27 + lsrs r0, r1, 28 + cmp r0, 0x1 + bhi _080677AC + adds r0, 0x1 + movs r1, 0xF + ands r0, r1 + lsls r0, 1 + movs r1, 0x1F + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x1] + b _08067812 + .pool +_080677AC: + movs r0, 0x1F + negs r0, r0 + ands r0, r2 + strb r0, [r3, 0x1] +_080677B4: + adds r5, r7, 0 + ldrb r0, [r5] + lsls r3, r0, 9 + ldr r4, =gUnknown_02023068 + adds r1, r3, r4 + subs r2, r4, 0x3 + adds r2, r3, r2 + ldrb r2, [r2] + subs r4, 0x2 + adds r3, r4 + ldrb r3, [r3] + bl sub_80735DC + ldr r2, =gUnknown_020244B4 + ldrb r1, [r5] + adds r1, r2 + movs r3, 0 + strb r0, [r1] + ldr r6, =gUnknown_020244D0 + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strb r3, [r0, 0x5] + ldrb r2, [r5] + lsls r0, r2, 9 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _08067806 + ldr r0, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + movs r1, 0x5D + strb r1, [r0, 0x5] +_08067806: + ldr r0, =gBattleBankFunc + ldrb r1, [r7] + lsls r1, 2 + adds r1, r0 + ldr r0, =sub_806782C + str r0, [r1] +_08067812: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8067718 + + thumb_func_start sub_806782C +sub_806782C: @ 806782C + push {r4,lr} + ldr r4, =gUnknown_020244D0 + ldr r0, [r4] + ldr r3, =gActiveBank + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x5] + adds r2, r1, 0x1 + strb r2, [r0, 0x5] + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0x5C + bls _08067864 + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strb r1, [r0, 0x5] + bl sub_8065068 +_08067864: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_806782C + + thumb_func_start sub_8067874 +sub_8067874: @ 8067874 + push {lr} + ldr r0, =gUnknown_020244D0 + ldr r1, [r0] + ldr r0, =gActiveBank + ldrb r3, [r0] + ldr r1, [r1, 0x4] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080678A6 + ldr r2, =gTasks + ldr r0, =gUnknown_020244B4 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, =sub_8073C30 + str r1, [r0] +_080678A6: + bl sub_8065068 + pop {r0} + bx r0 + .pool + thumb_func_end sub_8067874 + + thumb_func_start sub_80678C4 +sub_80678C4: @ 80678C4 + push {lr} + bl sub_8065068 + pop {r0} + bx r0 + thumb_func_end sub_80678C4 + + thumb_func_start sub_80678D0 +sub_80678D0: @ 80678D0 + push {r4,lr} + ldr r4, =gActiveBank + ldrb r0, [r4] + bl sub_80A6A90 + lsls r0, 24 + cmp r0, 0 + beq _08067916 + ldr r3, =gSprites + ldr r0, =gBankSpriteIds + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + ldr r0, =gBattleBufferA + lsls r1, 9 + adds r0, 0x1 + adds r1, r0 + adds r2, 0x3E + movs r0, 0x1 + ldrb r1, [r1] + ands r1, r0 + lsls r1, 2 + ldrb r3, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + bl sub_805E408 +_08067916: + bl sub_8065068 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80678D0 + + thumb_func_start sub_8067930 +sub_8067930: @ 8067930 + push {r4-r6,lr} + sub sp, 0x4 + ldr r5, =gActiveBank + ldrb r0, [r5] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _08067992 + ldr r4, =gBattleBufferA + ldrb r2, [r5] + lsls r1, r2, 9 + adds r0, r4, 0x1 + adds r0, r1, r0 + ldrb r6, [r0] + adds r0, r4, 0x2 + adds r0, r1, r0 + ldrb r3, [r0] + adds r4, 0x3 + adds r1, r4 + ldrb r0, [r1] + lsls r0, 8 + orrs r3, r0 + str r3, [sp] + adds r0, r2, 0 + adds r1, r2, 0 + adds r3, r6, 0 + bl move_anim_start_t3 + lsls r0, 24 + cmp r0, 0 + beq _08067980 + bl sub_8065068 + b _0806798C + .pool +_08067980: + ldr r0, =gBattleBankFunc + ldrb r1, [r5] + lsls r1, 2 + adds r1, r0 + ldr r0, =sub_8065038 + str r0, [r1] +_0806798C: + adds r0, r6, 0 + bl sub_817E32C +_08067992: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8067930 + + thumb_func_start sub_80679A4 +sub_80679A4: @ 80679A4 + push {lr} + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 9 + ldr r1, =gUnknown_02023066 + adds r0, r1 + bl sub_81851A8 + bl sub_8065068 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80679A4 + + thumb_func_start sub_80679C4 +sub_80679C4: @ 80679C4 + push {lr} + bl sub_8065068 + pop {r0} + bx r0 + thumb_func_end sub_80679C4 + + thumb_func_start sub_80679D0 +sub_80679D0: @ 80679D0 + push {r4,r5,lr} + ldr r5, =gActiveBank + ldrb r0, [r5] + lsls r0, 9 + ldr r4, =gUnknown_02023068 + adds r0, r4 + bl sub_81851A8 + ldrb r0, [r5] + lsls r0, 9 + subs r4, 0x3 + adds r0, r4 + ldrb r2, [r0] + cmp r2, 0x3 + bne _08067A00 + ldr r0, =gBattleOutcome + strb r2, [r0] + b _08067A08 + .pool +_08067A00: + ldr r0, =gBattleOutcome + movs r1, 0x3 + eors r1, r2 + strb r1, [r0] +_08067A08: + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + ldr r1, =gBattleBufferA + ldr r4, =gActiveBank + ldrb r0, [r4] + lsls r0, 9 + adds r1, 0x2 + adds r0, r1 + ldrb r0, [r0] + ldr r1, =0x00000ca9 + adds r3, r1 + movs r1, 0x1 + ands r1, r0 + lsls r1, 3 + ldrb r2, [r3] + movs r0, 0x9 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r0, 0x5 + bl FadeOutMapMusic + movs r0, 0x3 + bl BeginFastPaletteFade + bl sub_8065068 + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_80587B0 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80679D0 + + thumb_func_start nullsub_92 +nullsub_92: @ 8067A70 + bx lr + thumb_func_end nullsub_92 + + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_814AEAC.s b/asm/battle_controller_linkpartner.s similarity index 86% rename from asm/battle_814AEAC.s rename to asm/battle_controller_linkpartner.s index 67f8052b5f..09dd9077b8 100644 --- a/asm/battle_814AEAC.s +++ b/asm/battle_controller_linkpartner.s @@ -10,25 +10,25 @@ nullsub_112: @ 814AEAC bx lr thumb_func_end nullsub_112 - thumb_func_start sub_814AEB0 -sub_814AEB0: @ 814AEB0 - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 + thumb_func_start SetBankFuncToLinkPartnerBufferRunCommand +SetBankFuncToLinkPartnerBufferRunCommand: @ 814AEB0 + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r1 - ldr r1, =bx_exec_buffer_A_ch0_tbl4 + ldr r1, =LinkPartnerBufferRunCommand str r1, [r0] bx lr .pool - thumb_func_end sub_814AEB0 + thumb_func_end SetBankFuncToLinkPartnerBufferRunCommand - thumb_func_start bx_exec_buffer_A_ch0_tbl4 -bx_exec_buffer_A_ch0_tbl4: @ 814AECC + thumb_func_start LinkPartnerBufferRunCommand +LinkPartnerBufferRunCommand: @ 814AECC push {lr} - ldr r2, =gUnknown_02024068 + ldr r2, =gBattleExecBuffer ldr r1, =gBitTable - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r3, [r0] lsls r0, r3, 2 adds r0, r1 @@ -37,13 +37,13 @@ bx_exec_buffer_A_ch0_tbl4: @ 814AECC ands r1, r0 cmp r1, 0 beq _0814AF18 - ldr r0, =gUnknown_02023064 + ldr r0, =gBattleBufferA lsls r1, r3, 9 adds r1, r0 ldrb r0, [r1] cmp r0, 0x38 bhi _0814AF14 - ldr r0, =gUnknown_085C9A94 + ldr r0, =gLinkPartnerBufferCommands ldrb r1, [r1] lsls r1, 2 adds r1, r0 @@ -52,18 +52,18 @@ bx_exec_buffer_A_ch0_tbl4: @ 814AECC b _0814AF18 .pool _0814AF14: - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted _0814AF18: pop {r0} bx r0 - thumb_func_end bx_exec_buffer_A_ch0_tbl4 + thumb_func_end LinkPartnerBufferRunCommand thumb_func_start sub_814AF1C sub_814AF1C: @ 814AF1C push {lr} - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02024064 + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r0, =gActiveBank ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -73,10 +73,10 @@ sub_814AF1C: @ 814AF1C adds r2, 0x1C adds r0, r2 ldr r1, [r0] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy cmp r1, r0 bne _0814AF40 - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted _0814AF40: pop {r0} bx r0 @@ -86,9 +86,9 @@ _0814AF40: thumb_func_start sub_814AF54 sub_814AF54: @ 814AF54 push {r4-r6,lr} - ldr r6, =gUnknown_02020630 - ldr r5, =gUnknown_020241E4 - ldr r4, =gUnknown_02024064 + ldr r6, =gSprites + ldr r5, =gBankSpriteIds + ldr r4, =gActiveBank ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] @@ -99,7 +99,7 @@ sub_814AF54: @ 814AF54 adds r1, 0x1C adds r0, r1 ldr r1, [r0] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy cmp r1, r0 bne _0814AFA4 movs r0, 0 @@ -111,7 +111,7 @@ sub_814AF54: @ 814AF54 adds r0, r1 lsls r0, 2 adds r0, r6 - bl obj_free_rotscale_entry + bl FreeSpriteOamMatrix ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] @@ -119,8 +119,8 @@ sub_814AF54: @ 814AF54 adds r0, r1 lsls r0, 2 adds r0, r6 - bl RemoveObjectAndFreeTiles - bl dp01_tbl4_exec_completed + bl DestroySprite + bl LinkPartnerBufferExecCompleted _0814AFA4: pop {r4-r6} pop {r0} @@ -133,7 +133,7 @@ sub_814AFBC: @ 814AFBC push {r4,lr} ldr r4, =gUnknown_020244D0 ldr r1, [r4] - ldr r3, =gUnknown_02024064 + ldr r3, =gActiveBank ldrb r0, [r3] ldr r2, [r1, 0x4] lsls r1, r0, 1 @@ -156,7 +156,7 @@ sub_814AFBC: @ 814AFBC adds r0, r2 movs r1, 0 strb r1, [r0, 0x9] - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted _0814AFF4: pop {r4} pop {r0} @@ -183,9 +183,9 @@ sub_814B004: @ 814B004 cmp r0, 0 beq _0814B05C _0814B028: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r1, =gUnknown_03005D70 - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -195,15 +195,15 @@ _0814B028: adds r2, 0x1C adds r0, r2 ldr r1, [r0] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy cmp r1, r0 bne _0814B094 b _0814B092 .pool _0814B05C: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r5, =gUnknown_03005D70 - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r3, [r0] adds r0, r3, r5 ldrb r1, [r0] @@ -214,7 +214,7 @@ _0814B05C: adds r4, 0x1C adds r0, r4 ldr r2, [r0] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy cmp r2, r0 bne _0814B094 movs r0, 0x2 @@ -231,7 +231,7 @@ _0814B05C: _0814B092: movs r6, 0x1 _0814B094: - bl sub_80A36C8 + bl IsCryPlayingOrClearCrySongs lsls r0, 24 cmp r0, 0 beq _0814B0A0 @@ -241,7 +241,7 @@ _0814B0A0: beq _0814B0C6 ldr r0, =gUnknown_020244D0 ldr r0, [r0] - ldr r3, =gUnknown_02024064 + ldr r3, =gActiveBank ldrb r1, [r3] ldr r2, [r0, 0x4] lsls r0, r1, 1 @@ -250,7 +250,7 @@ _0814B0A0: adds r0, r2 movs r1, 0x3 strb r1, [r0, 0x9] - ldr r1, =gUnknown_03005D60 + ldr r1, =gBattleBankFunc ldrb r0, [r3] lsls r0, 2 adds r0, r1 @@ -273,7 +273,7 @@ sub_814B0E8: @ 814B0E8 ldr r0, =gUnknown_020244D0 mov r12, r0 ldr r0, [r0] - ldr r7, =gUnknown_02024064 + ldr r7, =gActiveBank ldrb r2, [r7] ldr r3, [r0, 0x4] lsls r0, r2, 1 @@ -306,7 +306,7 @@ _0814B114: beq _0814B136 b _0814B252 _0814B136: - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites mov r10, r1 ldr r0, =gUnknown_03005D7C mov r9, r0 @@ -319,10 +319,10 @@ _0814B136: adds r5, 0x1C adds r0, r5 ldr r3, [r0] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy cmp r3, r0 bne _0814B252 - ldr r0, =gUnknown_020241E4 + ldr r0, =gBankSpriteIds adds r0, r2, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -367,14 +367,14 @@ _0814B136: adds r0, r1 lsls r0, 2 add r0, r10 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r4, =gUnknown_03005D70 ldrb r0, [r7] mov r1, r8 eors r1, r0 adds r0, r1, r4 ldrb r0, [r0] - ldr r2, =gUnknown_0202406E + ldr r2, =gBattlePartyID lsls r1, 1 adds r1, r2 ldrh r2, [r1] @@ -396,21 +396,21 @@ _0814B136: bl sub_80729D0 _0814B1F0: ldr r1, =gUnknown_03005D7C - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r0, [r4] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r5, =gUnknown_03005D70 ldrb r1, [r4] adds r0, r1, r5 ldrb r0, [r0] - ldr r2, =gUnknown_0202406E + ldr r2, =gBattlePartyID lsls r1, 1 adds r1, r2 ldrh r2, [r1] @@ -434,7 +434,7 @@ _0814B1F0: negs r0, r0 ands r0, r1 strb r0, [r2, 0x9] - ldr r1, =gUnknown_03005D60 + ldr r1, =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -454,9 +454,9 @@ _0814B252: thumb_func_start sub_814B290 sub_814B290: @ 814B290 push {lr} - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02024064 + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r0, =gActiveBank ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -474,7 +474,7 @@ sub_814B290: @ 814B290 ldrsh r0, [r1, r2] cmp r0, 0 bne _0814B2BE - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted _0814B2BE: pop {r0} bx r0 @@ -484,7 +484,7 @@ _0814B2BE: thumb_func_start bx_t4_healthbar_update bx_t4_healthbar_update: @ 814B2D0 push {r4-r6,lr} - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank ldrb r0, [r5] ldr r6, =gUnknown_03005D70 adds r1, r0, r6 @@ -513,7 +513,7 @@ bx_t4_healthbar_update: @ 814B2D0 b _0814B332 .pool _0814B318: - ldr r2, =gUnknown_0202406E + ldr r2, =gBattlePartyID ldrb r1, [r5] lsls r0, r1, 1 adds r0, r2 @@ -523,7 +523,7 @@ _0814B318: ldr r2, =gPlayerParty adds r0, r2 bl sub_805E990 - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted _0814B332: pop {r4-r6} pop {r0} @@ -534,9 +534,9 @@ _0814B332: thumb_func_start sub_814B340 sub_814B340: @ 814B340 push {r4-r6,lr} - ldr r6, =gUnknown_02020630 - ldr r5, =gUnknown_020241E4 - ldr r4, =gUnknown_02024064 + ldr r6, =gSprites + ldr r5, =gBankSpriteIds + ldr r4, =gActiveBank ldrb r2, [r4] adds r0, r2, r5 ldrb r1, [r0] @@ -551,7 +551,7 @@ sub_814B340: @ 814B340 adds r1, r0 cmp r1, 0xA0 ble _0814B3BC - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r2, 1 adds r0, r1 ldrh r1, [r0] @@ -574,7 +574,7 @@ sub_814B340: @ 814B340 ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] @@ -582,13 +582,13 @@ sub_814B340: @ 814B340 adds r0, r1 lsls r0, 2 adds r0, r6 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r1, =gUnknown_03005D70 ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] bl sub_8072984 - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted _0814B3BC: pop {r4-r6} pop {r0} @@ -601,7 +601,7 @@ sub_814B3DC: @ 814B3DC push {r4-r6,lr} ldr r0, =gUnknown_020244D0 ldr r0, [r0] - ldr r6, =gUnknown_02024064 + ldr r6, =gActiveBank ldrb r2, [r6] ldr r1, [r0, 0x4] lsls r0, r2, 1 @@ -613,15 +613,15 @@ sub_814B3DC: @ 814B3DC ands r0, r1 cmp r0, 0 bne _0814B430 - ldr r5, =gUnknown_020241E4 + ldr r5, =gBankSpriteIds adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 - bl obj_free_rotscale_entry + bl FreeSpriteOamMatrix ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] @@ -629,13 +629,13 @@ sub_814B3DC: @ 814B3DC adds r0, r1 lsls r0, 2 adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r1, =gUnknown_03005D70 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8072984 - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted _0814B430: pop {r4-r6} pop {r0} @@ -651,7 +651,7 @@ bx_t4_button_a: @ 814B44C lsls r0, 16 cmp r0, 0 bne _0814B45E - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted _0814B45E: pop {r0} bx r0 @@ -660,12 +660,12 @@ _0814B45E: thumb_func_start dp01t_0F_4_move_anim dp01t_0F_4_move_anim: @ 814B464 push {r4,lr} - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02024064 + ldr r1, =gBankSpriteIds + ldr r0, =gActiveBank ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 @@ -683,9 +683,9 @@ dp01t_0F_4_move_anim: @ 814B464 subs r0, 0x5 ands r0, r1 strb r0, [r2] - ldr r0, =gUnknown_020244B9 + ldr r0, =gDoingBattleAnim strb r3, [r0] - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted b _0814B4DA .pool _0814B4B0: @@ -720,9 +720,9 @@ _0814B4DA: thumb_func_start sub_814B4E0 sub_814B4E0: @ 814B4E0 push {r4,lr} - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, =gUnknown_03005D70 - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r3, [r4] adds r0, r3, r0 ldrb r1, [r0] @@ -732,7 +732,7 @@ sub_814B4E0: @ 814B4E0 adds r2, 0x1C adds r0, r2 ldr r1, [r0] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy cmp r1, r0 bne _0814B532 adds r0, r3, 0 @@ -753,7 +753,7 @@ sub_814B4E0: @ 814B4E0 movs r3, 0x6 bl move_anim_start_t4 _0814B526: - ldr r0, =gUnknown_03005D60 + ldr r0, =gBattleBankFunc ldrb r1, [r4] lsls r1, 2 adds r1, r0 @@ -771,7 +771,7 @@ sub_814B554: @ 814B554 push {lr} ldr r0, =gUnknown_020244D0 ldr r1, [r0] - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r3, [r0] ldr r1, [r1, 0x4] lsls r0, r3, 1 @@ -783,8 +783,8 @@ sub_814B554: @ 814B554 ands r0, r1 cmp r0, 0 bne _0814B590 - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 + ldr r2, =gSprites + ldr r0, =gBankSpriteIds adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -793,10 +793,10 @@ sub_814B554: @ 814B554 adds r2, 0x1C adds r0, r2 ldr r1, [r0] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy cmp r1, r0 bne _0814B590 - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted _0814B590: pop {r0} bx r0 @@ -810,7 +810,7 @@ sub_814B5A8: @ 814B5A8 push {r7} ldr r3, =gUnknown_020244D0 ldr r0, [r3] - ldr r7, =gUnknown_02024064 + ldr r7, =gActiveBank ldrb r1, [r7] ldr r2, [r0, 0x4] lsls r0, r1, 1 @@ -840,13 +840,13 @@ sub_814B5A8: @ 814B5A8 strb r0, [r1, 0x1] ldr r4, =0x000027f9 adds r0, r4, 0 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag adds r0, r4, 0 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag ldr r0, =c3_0802FDF4 movs r1, 0xA bl CreateTask - ldr r0, =gUnknown_0202406E + ldr r0, =gBattlePartyID mov r8, r0 ldrb r1, [r7] lsls r0, r1, 1 @@ -857,17 +857,17 @@ sub_814B5A8: @ 814B5A8 ldr r5, =gPlayerParty adds r0, r5 bl sub_805E990 - ldr r1, =gUnknown_020241E4 + ldr r1, =gBankSpriteIds ldrb r0, [r7] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r4, =gUnknown_03005D70 ldrb r1, [r7] adds r0, r1, r4 @@ -885,7 +885,7 @@ sub_814B5A8: @ 814B5A8 adds r0, r4 ldrb r0, [r0] bl sub_80729D0 - ldr r1, =gUnknown_03005D60 + ldr r1, =gBattleBankFunc ldrb r0, [r7] lsls r0, 2 adds r0, r1 @@ -905,7 +905,7 @@ sub_814B69C: @ 814B69C push {r4-r6,lr} ldr r6, =gUnknown_020244D0 ldr r0, [r6] - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r2, [r4] ldr r1, [r0, 0x4] lsls r3, r2, 1 @@ -917,7 +917,7 @@ sub_814B69C: @ 814B69C ands r0, r1 cmp r0, 0 bne _0814B6CE - ldr r0, =gUnknown_0202406E + ldr r0, =gBattlePartyID adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 @@ -927,7 +927,7 @@ sub_814B69C: @ 814B69C adds r0, r2, 0 bl sub_8172EF0 _0814B6CE: - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites ldr r0, =gUnknown_03005D7C ldrb r2, [r4] adds r0, r2, r0 @@ -939,7 +939,7 @@ _0814B6CE: adds r0, 0x1C adds r0, r3, r0 ldr r1, [r0] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy cmp r1, r0 bne _0814B714 ldr r0, [r6] @@ -954,8 +954,8 @@ _0814B6CE: cmp r0, 0 bne _0814B714 adds r0, r3, r5 - bl RemoveObjectAndFreeTiles - ldr r1, =gUnknown_03005D60 + bl DestroySprite + ldr r1, =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -968,16 +968,16 @@ _0814B714: .pool thumb_func_end sub_814B69C - thumb_func_start dp01_tbl4_exec_completed -dp01_tbl4_exec_completed: @ 814B740 + thumb_func_start LinkPartnerBufferExecCompleted +LinkPartnerBufferExecCompleted: @ 814B740 push {r4,lr} sub sp, 0x4 - ldr r1, =gUnknown_03005D60 - ldr r4, =gUnknown_02024064 + ldr r1, =gBattleBankFunc + ldr r4, =gActiveBank ldrb r0, [r4] lsls r0, 2 adds r0, r1 - ldr r1, =bx_exec_buffer_A_ch0_tbl4 + ldr r1, =LinkPartnerBufferRunCommand str r1, [r0] ldr r0, =gBattleTypeFlags ldr r0, [r0] @@ -991,8 +991,8 @@ dp01_tbl4_exec_completed: @ 814B740 movs r0, 0x2 movs r1, 0x4 mov r2, sp - bl dp01_prepare_buffer_wireless_probably - ldr r1, =gUnknown_02023064 + bl PrepareBufferDataTransferLink + ldr r1, =gBattleBufferA ldrb r0, [r4] lsls r0, 9 adds r0, r1 @@ -1001,7 +1001,7 @@ dp01_tbl4_exec_completed: @ 814B740 b _0814B7A6 .pool _0814B794: - ldr r2, =gUnknown_02024068 + ldr r2, =gBattleExecBuffer ldr r1, =gBitTable ldrb r0, [r4] lsls r0, 2 @@ -1016,14 +1016,14 @@ _0814B7A6: pop {r0} bx r0 .pool - thumb_func_end dp01_tbl4_exec_completed + thumb_func_end LinkPartnerBufferExecCompleted thumb_func_start sub_814B7B8 sub_814B7B8: @ 814B7B8 push {lr} ldr r0, =gUnknown_020244D0 ldr r2, [r0] - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 1 @@ -1035,7 +1035,7 @@ sub_814B7B8: @ 814B7B8 ands r0, r1 cmp r0, 0 bne _0814B7DA - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted _0814B7DA: pop {r0} bx r0 @@ -1047,7 +1047,7 @@ sub_814B7E8: @ 814B7E8 push {lr} ldr r0, =gUnknown_020244D0 ldr r2, [r0] - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 1 @@ -1059,7 +1059,7 @@ sub_814B7E8: @ 814B7E8 ands r0, r1 cmp r0, 0 bne _0814B80A - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted _0814B80A: pop {r0} bx r0 @@ -1071,8 +1071,8 @@ dp01t_00_4_getattr: @ 814B818 push {r4-r6,lr} sub sp, 0x100 movs r6, 0 - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 @@ -1080,7 +1080,7 @@ dp01t_00_4_getattr: @ 814B818 ldrb r0, [r1] cmp r0, 0 bne _0814B850 - ldr r0, =gUnknown_0202406E + ldr r0, =gBattlePartyID lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] @@ -1114,7 +1114,7 @@ _0814B872: movs r0, 0x1 mov r2, sp bl dp01_build_cmdbuf_x1D_1D_numargs_varargs - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted add sp, 0x100 pop {r4-r6} pop {r0} @@ -1133,8 +1133,8 @@ dp01_getattr_by_ch1_for_player_pokemon__: @ 814B88C lsls r0, 24 lsrs r5, r0, 24 movs r6, 0 - ldr r2, =gUnknown_02023064 - ldr r3, =gUnknown_02024064 + ldr r2, =gBattleBufferA + ldr r3, =gActiveBank ldrb r0, [r3] lsls r0, 9 adds r1, r2, 0x1 @@ -2002,7 +2002,7 @@ _0814C022: thumb_func_start sub_814C038 sub_814C038: @ 814C038 push {lr} - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_814C038 @@ -2010,8 +2010,8 @@ sub_814C038: @ 814C038 thumb_func_start sub_814C044 sub_814C044: @ 814C044 push {r4,r5,lr} - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 @@ -2019,7 +2019,7 @@ sub_814C044: @ 814C044 ldrb r0, [r1] cmp r0, 0 bne _0814C074 - ldr r0, =gUnknown_0202406E + ldr r0, =gBattlePartyID lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] @@ -2044,7 +2044,7 @@ _0814C086: cmp r5, 0x5 bls _0814C078 _0814C092: - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r4,r5} pop {r0} bx r0 @@ -2060,7 +2060,7 @@ sub_814C09C: @ 814C09C sub sp, 0x34 lsls r0, 24 lsrs r5, r0, 24 - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r0, [r0] lsls r0, 9 ldr r2, =gUnknown_02023067 @@ -2151,12 +2151,12 @@ _0814C1D0: adds r0, r4, 0 movs r1, 0xB adds r2, r6, 0 - bl pokemon_setattr + bl SetMonData adds r2, r6, 0 adds r2, 0x2E adds r0, r4, 0 movs r1, 0xC - bl pokemon_setattr + bl SetMonData movs r0, 0 mov r8, r0 movs r0, 0x3B @@ -2197,12 +2197,12 @@ _0814C236: adds r1, 0xD mov r0, r9 adds r2, r4, 0 - bl pokemon_setattr + bl SetMonData mov r1, r8 adds r1, 0x11 mov r0, r9 adds r2, r7, 0 - bl pokemon_setattr + bl SetMonData adds r7, 0x1 adds r4, 0x2 movs r0, 0x1 @@ -2218,15 +2218,15 @@ _0814C236: adds r0, r4, 0 movs r1, 0x15 mov r2, r10 - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0x20 ldr r2, [sp, 0x20] - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0x19 ldr r2, [sp, 0x28] - bl pokemon_setattr + bl SetMonData ldrb r0, [r6, 0x14] lsls r0, 27 lsrs r0, 27 @@ -2235,7 +2235,7 @@ _0814C236: adds r0, r4, 0 movs r1, 0x27 mov r2, sp - bl pokemon_setattr + bl SetMonData mov r1, sp ldrh r0, [r6, 0x14] lsls r0, 22 @@ -2244,7 +2244,7 @@ _0814C236: adds r0, r4, 0 movs r1, 0x28 mov r2, sp - bl pokemon_setattr + bl SetMonData mov r1, sp ldrb r0, [r6, 0x15] lsls r0, 25 @@ -2253,7 +2253,7 @@ _0814C236: adds r0, r4, 0 movs r1, 0x29 mov r2, sp - bl pokemon_setattr + bl SetMonData mov r1, sp ldr r0, [r6, 0x14] lsls r0, 12 @@ -2262,7 +2262,7 @@ _0814C236: adds r0, r4, 0 movs r1, 0x2A mov r2, sp - bl pokemon_setattr + bl SetMonData mov r1, sp ldrh r0, [r6, 0x16] lsls r0, 23 @@ -2271,7 +2271,7 @@ _0814C236: adds r0, r4, 0 movs r1, 0x2B mov r2, sp - bl pokemon_setattr + bl SetMonData mov r1, sp ldrb r0, [r6, 0x17] lsls r0, 26 @@ -2280,47 +2280,47 @@ _0814C236: adds r0, r4, 0 movs r1, 0x2C mov r2, sp - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0 ldr r2, [sp, 0x2C] - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0x37 ldr r2, [sp, 0x30] - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0x38 ldr r2, [sp, 0x1C] - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0x39 ldr r2, [sp, 0x18] - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0x3A ldr r2, [sp, 0x24] - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0x3B ldr r2, [sp, 0x4] - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0x3C ldr r2, [sp, 0x8] - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0x3D ldr r2, [sp, 0xC] - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0x3E ldr r2, [sp, 0x10] - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0x3F ldr r2, [sp, 0x14] - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C368: @@ -2328,12 +2328,12 @@ _0814C368: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0xB - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C388: @@ -2341,12 +2341,12 @@ _0814C388: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0xC - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C3A8: @@ -2368,12 +2368,12 @@ _0814C3C2: adds r1, 0xD adds r0, r7, 0 adds r2, r4, 0 - bl pokemon_setattr + bl SetMonData mov r1, r8 adds r1, 0x11 adds r0, r7, 0 adds r2, r6, 0 - bl pokemon_setattr + bl SetMonData adds r6, 0x1 adds r4, 0x2 movs r0, 0x1 @@ -2387,7 +2387,7 @@ _0814C3C2: adds r0, r1 movs r1, 0x15 mov r2, r9 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C400: @@ -2395,8 +2395,8 @@ _0814C400: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r3, =gUnknown_02023064 - ldr r1, =gUnknown_02024064 + ldr r3, =gBattleBufferA + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r1, r3, 0x1 @@ -2411,41 +2411,41 @@ _0814C428: muls r4, r0 ldr r0, =gPlayerParty adds r4, r0 - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank ldrb r2, [r5] lsls r2, 9 adds r2, r7 adds r0, r4, 0 movs r1, 0x11 - bl pokemon_setattr + bl SetMonData ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x1 adds r2, r0 adds r0, r4, 0 movs r1, 0x12 - bl pokemon_setattr + bl SetMonData ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x2 adds r2, r0 adds r0, r4, 0 movs r1, 0x13 - bl pokemon_setattr + bl SetMonData ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x3 adds r2, r0 adds r0, r4, 0 movs r1, 0x14 - bl pokemon_setattr + bl SetMonData ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x4 adds r2, r0 adds r0, r4, 0 movs r1, 0x15 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C48C: @@ -2453,8 +2453,8 @@ _0814C48C: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r3, =gUnknown_02023064 - ldr r1, =gUnknown_02024064 + ldr r3, =gBattleBufferA + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r1, r3, 0x1 @@ -2464,7 +2464,7 @@ _0814C48C: _0814C4A4: adds r3, 0x3 adds r2, r3 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C4BC: @@ -2472,12 +2472,12 @@ _0814C4BC: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C4DC: @@ -2485,12 +2485,12 @@ _0814C4DC: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x19 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C4FC: @@ -2498,12 +2498,12 @@ _0814C4FC: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1A - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C51C: @@ -2511,12 +2511,12 @@ _0814C51C: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1B - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C53C: @@ -2524,12 +2524,12 @@ _0814C53C: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1C - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C55C: @@ -2537,12 +2537,12 @@ _0814C55C: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1D - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C57C: @@ -2550,12 +2550,12 @@ _0814C57C: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1E - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C59C: @@ -2563,12 +2563,12 @@ _0814C59C: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1F - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C5BC: @@ -2576,12 +2576,12 @@ _0814C5BC: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x20 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C5DC: @@ -2589,12 +2589,12 @@ _0814C5DC: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x22 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C5FC: @@ -2602,12 +2602,12 @@ _0814C5FC: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x23 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C61C: @@ -2615,12 +2615,12 @@ _0814C61C: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x24 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C63C: @@ -2628,12 +2628,12 @@ _0814C63C: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x25 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C65C: @@ -2641,12 +2641,12 @@ _0814C65C: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x26 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C67C: @@ -2655,41 +2655,41 @@ _0814C67C: muls r4, r0 ldr r0, =gPlayerParty adds r4, r0 - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank ldrb r2, [r5] lsls r2, 9 adds r2, r7 adds r0, r4, 0 movs r1, 0x27 - bl pokemon_setattr + bl SetMonData ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x1 adds r2, r0 adds r0, r4, 0 movs r1, 0x28 - bl pokemon_setattr + bl SetMonData ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x2 adds r2, r0 adds r0, r4, 0 movs r1, 0x29 - bl pokemon_setattr + bl SetMonData ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x3 adds r2, r0 adds r0, r4, 0 movs r1, 0x2A - bl pokemon_setattr + bl SetMonData ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x4 adds r2, r0 adds r0, r4, 0 movs r1, 0x2B - bl pokemon_setattr + bl SetMonData ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x5 @@ -2702,12 +2702,12 @@ _0814C6EC: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x27 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C70C: @@ -2715,12 +2715,12 @@ _0814C70C: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x28 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C72C: @@ -2728,12 +2728,12 @@ _0814C72C: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x29 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C74C: @@ -2741,12 +2741,12 @@ _0814C74C: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x2A - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C76C: @@ -2754,12 +2754,12 @@ _0814C76C: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x2B - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C78C: @@ -2767,13 +2767,13 @@ _0814C78C: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 _0814C79C: movs r1, 0x2C - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C7AC: @@ -2781,12 +2781,12 @@ _0814C7AC: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C7CC: @@ -2794,12 +2794,12 @@ _0814C7CC: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x9 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C7EC: @@ -2807,12 +2807,12 @@ _0814C7EC: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x37 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C80C: @@ -2820,12 +2820,12 @@ _0814C80C: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x38 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C82C: @@ -2833,12 +2833,12 @@ _0814C82C: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x39 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C84C: @@ -2846,12 +2846,12 @@ _0814C84C: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3A - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C86C: @@ -2859,12 +2859,12 @@ _0814C86C: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3B - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C88C: @@ -2872,12 +2872,12 @@ _0814C88C: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3C - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C8AC: @@ -2885,12 +2885,12 @@ _0814C8AC: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3D - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C8CC: @@ -2898,12 +2898,12 @@ _0814C8CC: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3E - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C8EC: @@ -2911,12 +2911,12 @@ _0814C8EC: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3F - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C90C: @@ -2924,12 +2924,12 @@ _0814C90C: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x16 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C92C: @@ -2937,12 +2937,12 @@ _0814C92C: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x17 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C94C: @@ -2950,12 +2950,12 @@ _0814C94C: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x18 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C96C: @@ -2963,12 +2963,12 @@ _0814C96C: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x21 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C98C: @@ -2976,12 +2976,12 @@ _0814C98C: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x2F - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C9AC: @@ -2989,12 +2989,12 @@ _0814C9AC: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x30 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C9CC: @@ -3002,12 +3002,12 @@ _0814C9CC: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x32 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814C9EC: @@ -3015,12 +3015,12 @@ _0814C9EC: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x33 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814CA0C: @@ -3028,12 +3028,12 @@ _0814CA0C: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x34 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814CA2C: @@ -3041,12 +3041,12 @@ _0814CA2C: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x35 - bl pokemon_setattr + bl SetMonData b _0814CA62 .pool _0814CA4C: @@ -3054,15 +3054,15 @@ _0814CA4C: muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x36 - bl pokemon_setattr + bl SetMonData _0814CA62: - ldr r2, =gUnknown_0202406E - ldr r0, =gUnknown_02024064 + ldr r2, =gBattlePartyID + ldr r0, =gActiveBank ldrb r1, [r0] lsls r0, r1, 1 adds r0, r2 @@ -3086,8 +3086,8 @@ _0814CA62: thumb_func_start sub_814CA98 sub_814CA98: @ 814CA98 push {r4-r7,lr} - ldr r1, =gUnknown_0202406E - ldr r7, =gUnknown_02024064 + ldr r1, =gBattlePartyID + ldr r7, =gActiveBank ldrb r2, [r7] lsls r0, r2, 1 adds r0, r1 @@ -3095,7 +3095,7 @@ sub_814CA98: @ 814CA98 movs r0, 0x64 adds r3, r1, 0 muls r3, r0 - ldr r4, =gUnknown_02023064 + ldr r4, =gBattleBufferA lsls r2, 9 adds r0, r4, 0x1 adds r0, r2, r0 @@ -3131,7 +3131,7 @@ _0814CACE: cmp r3, r0 bcc _0814CACE _0814CAF0: - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r4-r7} pop {r0} bx r0 @@ -3143,9 +3143,9 @@ sub_814CB0C: @ 814CB0C push {r4-r6,lr} mov r6, r8 push {r6} - ldr r0, =gUnknown_0202406E + ldr r0, =gBattlePartyID mov r8, r0 - ldr r6, =gUnknown_02024064 + ldr r6, =gActiveBank ldrb r1, [r6] lsls r0, r1, 1 add r0, r8 @@ -3167,7 +3167,7 @@ sub_814CB0C: @ 814CB0C lsls r4, 16 lsrs r4, 16 ldrb r0, [r6] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -3194,12 +3194,12 @@ sub_814CB0C: @ 814CB0C mov r0, r8 adds r1, r5, 0 adds r2, r4, 0 - bl AddObjectToFront - ldr r4, =gUnknown_020241E4 + bl CreateSprite + ldr r4, =gBankSpriteIds ldrb r1, [r6] adds r1, r4 strb r0, [r1] - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites ldrb r0, [r6] adds r0, r4 ldrb r1, [r0] @@ -3240,8 +3240,8 @@ sub_814CB0C: @ 814CB0C ldr r1, =gUnknown_020244E4 adds r2, r1 ldrb r1, [r2] - bl StartObjectImageAnim - ldr r1, =gUnknown_03005D60 + bl StartSpriteAnim + ldr r1, =gBattleBankFunc ldrb r0, [r6] lsls r0, 2 adds r0, r1 @@ -3258,15 +3258,15 @@ sub_814CB0C: @ 814CB0C thumb_func_start sub_814CC28 sub_814CC28: @ 814CC28 push {r4-r6,lr} - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank ldrb r0, [r5] - ldr r4, =gUnknown_02023064 + ldr r4, =gBattleBufferA lsls r1, r0, 9 adds r6, r4, 0x2 adds r1, r6 ldrb r1, [r1] bl sub_805EF84 - ldr r2, =gUnknown_0202406E + ldr r2, =gBattlePartyID ldrb r0, [r5] lsls r1, r0, 1 adds r1, r2 @@ -3289,7 +3289,7 @@ sub_814CC28: @ 814CC28 adds r1, r6 ldrb r1, [r1] bl sub_814CC98 - ldr r1, =gUnknown_03005D60 + ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -3315,10 +3315,10 @@ sub_814CC98: @ 814CC98 lsrs r1, 24 adds r0, r6, 0 bl sub_805EF84 - ldr r0, =gUnknown_0202406E + ldr r0, =gBattlePartyID lsls r2, r6, 1 adds r2, r0 - ldr r0, =gUnknown_02023064 + ldr r0, =gBattleBufferA lsls r1, r6, 9 adds r0, 0x1 adds r1, r0 @@ -3343,7 +3343,7 @@ sub_814CC98: @ 814CC98 mov r1, r9 strb r0, [r1] adds r0, r6, 0 - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -3370,11 +3370,11 @@ sub_814CC98: @ 814CC98 mov r0, r10 adds r1, r5, 0 adds r2, r4, 0 - bl AddObjectToFront - ldr r4, =gUnknown_020241E4 + bl CreateSprite + ldr r4, =gBankSpriteIds adds r4, r6, r4 strb r0, [r4] - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites mov r0, r9 ldrb r1, [r0] lsls r0, r1, 4 @@ -3422,7 +3422,7 @@ sub_814CC98: @ 814CC98 ldr r1, =gUnknown_020244E4 adds r6, r1 ldrb r1, [r6] - bl StartObjectImageAnim + bl StartSpriteAnim ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 @@ -3440,7 +3440,7 @@ sub_814CC98: @ 814CC98 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy str r1, [r0] movs r0, 0 movs r1, 0xFF @@ -3467,8 +3467,8 @@ sub_814CC98: @ 814CC98 thumb_func_start sub_814CE14 sub_814CE14: @ 814CE14 push {r4-r6,lr} - ldr r1, =gUnknown_02023064 - ldr r6, =gUnknown_02024064 + ldr r1, =gBattleBufferA + ldr r6, =gActiveBank ldrb r2, [r6] lsls r0, r2, 9 adds r1, 0x1 @@ -3484,7 +3484,7 @@ sub_814CE14: @ 814CE14 lsls r0, 2 adds r0, r1 strb r3, [r0, 0x4] - ldr r1, =gUnknown_03005D60 + ldr r1, =gBattleBankFunc ldrb r0, [r6] lsls r0, 2 adds r0, r1 @@ -3493,15 +3493,15 @@ sub_814CE14: @ 814CE14 b _0814CE92 .pool _0814CE5C: - ldr r5, =gUnknown_020241E4 + ldr r5, =gBankSpriteIds adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 - bl obj_free_rotscale_entry + bl FreeSpriteOamMatrix ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] @@ -3509,13 +3509,13 @@ _0814CE5C: adds r0, r1 lsls r0, 2 adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r1, =gUnknown_03005D70 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8072984 - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted _0814CE92: pop {r4-r6} pop {r0} @@ -3528,7 +3528,7 @@ sub_814CEA4: @ 814CEA4 push {r4-r6,lr} ldr r6, =gUnknown_020244D0 ldr r4, [r6] - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank ldrb r2, [r5] ldr r1, [r4, 0x4] lsls r0, r2, 1 @@ -3580,7 +3580,7 @@ _0814CEFA: adds r1, r2, 0 movs r3, 0x1 bl move_anim_start_t4 - ldr r1, =gUnknown_03005D60 + ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -3604,9 +3604,9 @@ sub_814CF30: @ 814CF30 ands r0, r1 cmp r0, 0 beq _0814CF60 - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r0, [r0] - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x2 ands r1, r0 movs r7, 0x20 @@ -3618,7 +3618,7 @@ sub_814CF30: @ 814CF30 _0814CF60: movs r7, 0x50 _0814CF62: - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank ldrb r0, [r5] bl sub_806D864 ldr r6, =gUnknown_020229E8 @@ -3693,12 +3693,12 @@ _0814CFF2: adds r1, r6 ldrb r4, [r1, 0x13] _0814D002: - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank ldrb r1, [r5] adds r0, r4, 0 bl sub_805DF84 ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -3725,12 +3725,12 @@ _0814D002: adds r0, r6, 0 mov r1, r8 adds r2, r4, 0 - bl AddObjectToFront - ldr r6, =gUnknown_020241E4 + bl CreateSprite + ldr r6, =gBankSpriteIds ldrb r1, [r5] adds r1, r6 strb r0, [r1] - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldrb r3, [r5] adds r0, r3, r6 ldrb r0, [r0] @@ -3772,7 +3772,7 @@ _0814D002: adds r0, r4 ldr r1, =sub_805D7AC str r1, [r0] - ldr r1, =gUnknown_03005D60 + ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -3789,7 +3789,7 @@ _0814D002: thumb_func_start sub_814D0E4 sub_814D0E4: @ 814D0E4 push {lr} - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_814D0E4 @@ -3797,15 +3797,15 @@ sub_814D0E4: @ 814D0E4 thumb_func_start sub_814D0F0 sub_814D0F0: @ 814D0F0 push {r4-r6,lr} - ldr r6, =gUnknown_020241E4 - ldr r4, =gUnknown_02024064 + ldr r6, =gBankSpriteIds + ldr r4, =gActiveBank ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites adds r0, r5 bl oamt_add_pos2_onto_pos1 ldrb r0, [r4] @@ -3853,9 +3853,9 @@ sub_814D0F0: @ 814D0F0 adds r0, r1 lsls r0, 2 adds r0, r5 - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy bl oamt_set_x3A_32 - ldr r1, =gUnknown_03005D60 + ldr r1, =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -3872,7 +3872,7 @@ sub_814D19C: @ 814D19C push {r4-r6,lr} ldr r6, =gUnknown_020244D0 ldr r4, [r6] - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank ldrb r2, [r5] ldr r0, [r4, 0x4] lsls r1, r2, 1 @@ -3916,7 +3916,7 @@ _0814D1F0: cmp r4, 0 bne _0814D266 strb r4, [r3, 0x4] - ldr r2, =gUnknown_0202406E + ldr r2, =gBattlePartyID ldrb r1, [r5] lsls r0, r1, 1 adds r0, r2 @@ -3929,9 +3929,9 @@ _0814D1F0: movs r1, 0x40 negs r1, r1 movs r0, 0x10 - bl audio_play_and_stuff - ldr r2, =gUnknown_02020630 - ldr r3, =gUnknown_020241E4 + bl PlaySE12WithPanning + ldr r2, =gSprites + ldr r3, =gBankSpriteIds ldrb r0, [r5] adds r0, r3 ldrb r1, [r0] @@ -3959,7 +3959,7 @@ _0814D1F0: adds r0, r2 ldr r1, =sub_8039C00 str r1, [r0] - ldr r1, =gUnknown_03005D60 + ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -3975,7 +3975,7 @@ _0814D266: thumb_func_start sub_814D288 sub_814D288: @ 814D288 push {lr} - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_814D288 @@ -3983,7 +3983,7 @@ sub_814D288: @ 814D288 thumb_func_start sub_814D294 sub_814D294: @ 814D294 push {lr} - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_814D294 @@ -3991,7 +3991,7 @@ sub_814D294: @ 814D294 thumb_func_start sub_814D2A0 sub_814D2A0: @ 814D2A0 push {lr} - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_814D2A0 @@ -3999,7 +3999,7 @@ sub_814D2A0: @ 814D2A0 thumb_func_start sub_814D2AC sub_814D2AC: @ 814D2AC push {lr} - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_814D2AC @@ -4009,7 +4009,7 @@ sub_814D2B8: @ 814D2B8 push {r4-r7,lr} mov r7, r8 push {r7} - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank ldrb r0, [r5] bl mplay_80342A4 lsls r0, 24 @@ -4017,7 +4017,7 @@ sub_814D2B8: @ 814D2B8 beq _0814D2CE b _0814D3F4 _0814D2CE: - ldr r0, =gUnknown_02023064 + ldr r0, =gBattleBufferA mov r12, r0 ldrb r1, [r5] lsls r1, 9 @@ -4038,7 +4038,7 @@ _0814D2CE: ldrb r0, [r1] mov r1, r8 strb r0, [r1] - ldr r3, =gUnknown_02038408 + ldr r3, =gMovePowerMoveAnim ldrb r1, [r5] lsls r1, 9 mov r0, r12 @@ -4052,7 +4052,7 @@ _0814D2CE: lsls r0, 8 orrs r2, r0 strh r2, [r3] - ldr r3, =gUnknown_02038404 + ldr r3, =gMoveDmgMoveAnim ldrb r1, [r5] lsls r1, 9 mov r0, r12 @@ -4078,7 +4078,7 @@ _0814D2CE: lsls r0, 24 orrs r2, r0 str r2, [r3] - ldr r2, =gUnknown_0203841A + ldr r2, =gHappinessMoveAnim ldrb r0, [r5] lsls r0, 9 mov r1, r12 @@ -4086,7 +4086,7 @@ _0814D2CE: adds r0, r1 ldrb r0, [r0] strb r0, [r2] - ldr r4, =gUnknown_0203841C + ldr r4, =gWeatherMoveAnim ldrb r1, [r5] lsls r1, 9 mov r0, r12 @@ -4100,7 +4100,7 @@ _0814D2CE: lsls r0, 8 orrs r2, r0 strh r2, [r4] - ldr r7, =gUnknown_02038400 + ldr r7, =gDisableStructMoveAnim ldrb r1, [r5] lsls r1, 9 mov r0, r12 @@ -4121,7 +4121,7 @@ _0814D2CE: lsrs r3, r0, 24 cmp r3, 0 beq _0814D3CC - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted b _0814D3F4 .pool _0814D3CC: @@ -4134,7 +4134,7 @@ _0814D3CC: lsls r0, 2 adds r0, r2 strb r3, [r0, 0x4] - ldr r1, =gUnknown_03005D60 + ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -4160,8 +4160,8 @@ bx_move_anim_4: @ 814D40C mov r6, r9 mov r5, r8 push {r5-r7} - ldr r2, =gUnknown_02023064 - ldr r6, =gUnknown_02024064 + ldr r2, =gBattleBufferA + ldr r6, =gActiveBank ldrb r3, [r6] lsls r1, r3, 9 adds r0, r2, 0x1 @@ -4249,10 +4249,10 @@ _0814D4A4: strb r1, [r0, 0x4] b _0814D580 _0814D4CE: - ldr r0, =gUnknown_020383F8 + ldr r0, =gAnimScriptCallback ldr r0, [r0] bl _call_via_r0 - ldr r0, =gUnknown_020383FD + ldr r0, =gAnimScriptActive ldrb r0, [r0] cmp r0, 0 bne _0814D580 @@ -4288,7 +4288,7 @@ _0814D4CE: _0814D51C: ldr r0, =gUnknown_020244D0 ldr r2, [r0] - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 1 @@ -4326,7 +4326,7 @@ _0814D544: lsls r0, 2 adds r0, r2 strb r4, [r0, 0x4] - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted _0814D580: pop {r3-r5} mov r8, r3 @@ -4345,7 +4345,7 @@ sub_814D590: @ 814D590 strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank ldrb r4, [r5] lsls r4, 9 ldr r0, =gUnknown_02023066 @@ -4355,7 +4355,7 @@ sub_814D590: @ 814D590 ldr r0, =gUnknown_02022E2C movs r1, 0 bl battle_show_message_maybe - ldr r1, =gUnknown_03005D60 + ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -4372,7 +4372,7 @@ sub_814D590: @ 814D590 thumb_func_start sub_814D5E8 sub_814D5E8: @ 814D5E8 push {lr} - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_814D5E8 @@ -4380,7 +4380,7 @@ sub_814D5E8: @ 814D5E8 thumb_func_start sub_814D5F4 sub_814D5F4: @ 814D5F4 push {lr} - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_814D5F4 @@ -4388,7 +4388,7 @@ sub_814D5F4: @ 814D5F4 thumb_func_start sub_814D600 sub_814D600: @ 814D600 push {lr} - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_814D600 @@ -4396,7 +4396,7 @@ sub_814D600: @ 814D600 thumb_func_start sub_814D60C sub_814D60C: @ 814D60C push {lr} - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_814D60C @@ -4404,7 +4404,7 @@ sub_814D60C: @ 814D60C thumb_func_start sub_814D618 sub_814D618: @ 814D618 push {lr} - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_814D618 @@ -4412,7 +4412,7 @@ sub_814D618: @ 814D618 thumb_func_start sub_814D624 sub_814D624: @ 814D624 push {lr} - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_814D624 @@ -4420,7 +4420,7 @@ sub_814D624: @ 814D624 thumb_func_start sub_814D630 sub_814D630: @ 814D630 push {lr} - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_814D630 @@ -4434,8 +4434,8 @@ sub_814D63C: @ 814D63C sub sp, 0x4 movs r0, 0 bl load_gfxc_health_bar - ldr r3, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 + ldr r3, =gBattleBufferA + ldr r0, =gActiveBank mov r9, r0 ldrb r4, [r0] lsls r2, r4, 9 @@ -4452,7 +4452,7 @@ sub_814D63C: @ 814D63C ldr r0, =0x00007fff cmp r7, r0 beq _0814D6CC - ldr r6, =gUnknown_0202406E + ldr r6, =gBattlePartyID lsls r0, r4, 1 adds r0, r6 ldrh r0, [r0] @@ -4484,7 +4484,7 @@ sub_814D63C: @ 814D63C b _0814D6F6 .pool _0814D6CC: - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -4504,8 +4504,8 @@ _0814D6CC: movs r3, 0 bl sub_807294C _0814D6F6: - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r1 @@ -4524,7 +4524,7 @@ _0814D6F6: thumb_func_start sub_814D72C sub_814D72C: @ 814D72C push {lr} - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_814D72C @@ -4532,7 +4532,7 @@ sub_814D72C: @ 814D72C thumb_func_start sub_814D738 sub_814D738: @ 814D738 push {r4,lr} - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r0, [r4] bl mplay_80342A4 lsls r0, 24 @@ -4542,7 +4542,7 @@ sub_814D738: @ 814D738 ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] - ldr r2, =gUnknown_0202406E + ldr r2, =gBattlePartyID lsls r1, 1 adds r1, r2 ldrh r2, [r1] @@ -4565,7 +4565,7 @@ sub_814D738: @ 814D738 negs r0, r0 ands r0, r2 strb r0, [r1] - ldr r1, =gUnknown_03005D60 + ldr r1, =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -4581,13 +4581,13 @@ _0814D78C: thumb_func_start sub_814D7B0 sub_814D7B0: @ 814D7B0 push {r4,r5,lr} - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank ldrb r0, [r5] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _0814D800 - ldr r4, =gUnknown_02023064 + ldr r4, =gBattleBufferA ldrb r3, [r5] lsls r3, 9 adds r0, r4, 0x1 @@ -4612,7 +4612,7 @@ sub_814D7B0: @ 814D7B0 lsls r2, 24 orrs r1, r2 bl move_anim_start_t2_for_situation - ldr r1, =gUnknown_03005D60 + ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -4628,7 +4628,7 @@ _0814D800: thumb_func_start sub_814D818 sub_814D818: @ 814D818 push {lr} - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_814D818 @@ -4636,7 +4636,7 @@ sub_814D818: @ 814D818 thumb_func_start sub_814D824 sub_814D824: @ 814D824 push {lr} - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_814D824 @@ -4644,7 +4644,7 @@ sub_814D824: @ 814D824 thumb_func_start sub_814D830 sub_814D830: @ 814D830 push {lr} - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_814D830 @@ -4652,7 +4652,7 @@ sub_814D830: @ 814D830 thumb_func_start sub_814D83C sub_814D83C: @ 814D83C push {lr} - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_814D83C @@ -4660,7 +4660,7 @@ sub_814D83C: @ 814D83C thumb_func_start sub_814D848 sub_814D848: @ 814D848 push {lr} - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_814D848 @@ -4668,7 +4668,7 @@ sub_814D848: @ 814D848 thumb_func_start sub_814D854 sub_814D854: @ 814D854 push {lr} - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_814D854 @@ -4676,7 +4676,7 @@ sub_814D854: @ 814D854 thumb_func_start sub_814D860 sub_814D860: @ 814D860 push {lr} - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_814D860 @@ -4684,7 +4684,7 @@ sub_814D860: @ 814D860 thumb_func_start sub_814D86C sub_814D86C: @ 814D86C push {lr} - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_814D86C @@ -4692,7 +4692,7 @@ sub_814D86C: @ 814D86C thumb_func_start sub_814D878 sub_814D878: @ 814D878 push {lr} - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_814D878 @@ -4706,7 +4706,7 @@ sub_814D884: @ 814D884 negs r0, r0 ands r0, r1 strb r0, [r2] - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 .pool @@ -4716,8 +4716,8 @@ sub_814D884: @ 814D884 sub_814D8A0: @ 814D8A0 push {lr} ldr r3, =gUnknown_02022D0C - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 @@ -4731,7 +4731,7 @@ sub_814D8A0: @ 814D8A0 ands r0, r2 orrs r0, r1 strb r0, [r3] - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 .pool @@ -4745,7 +4745,7 @@ sub_814D8D8: @ 814D8D8 movs r0, 0x7F ands r0, r1 strb r0, [r2] - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 .pool @@ -4766,7 +4766,7 @@ sub_814D8F0: @ 814D8F0 ands r0, r2 orrs r0, r1 strb r0, [r3] - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 .pool @@ -4775,9 +4775,9 @@ sub_814D8F0: @ 814D8F0 thumb_func_start dp01t_29_4_blink dp01t_29_4_blink: @ 814D918 push {r4,lr} - ldr r3, =gUnknown_02020630 - ldr r2, =gUnknown_020241E4 - ldr r4, =gUnknown_02024064 + ldr r3, =gSprites + ldr r2, =gBankSpriteIds + ldr r4, =gActiveBank ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] @@ -4790,11 +4790,11 @@ dp01t_29_4_blink: @ 814D918 lsls r0, 29 cmp r0, 0 bge _0814D94C - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted b _0814D976 .pool _0814D94C: - ldr r1, =gUnknown_020244B9 + ldr r1, =gDoingBattleAnim movs r0, 0x1 strb r0, [r1] ldrb r0, [r4] @@ -4808,7 +4808,7 @@ _0814D94C: strh r1, [r0, 0x30] ldrb r0, [r4] bl sub_80769F4 - ldr r1, =gUnknown_03005D60 + ldr r1, =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -4824,7 +4824,7 @@ _0814D976: thumb_func_start sub_814D988 sub_814D988: @ 814D988 push {lr} - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_814D988 @@ -4832,16 +4832,16 @@ sub_814D988: @ 814D988 thumb_func_start sub_814D994 sub_814D994: @ 814D994 push {r4,lr} - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r3, 0x3F cmp r0, 0 bne _0814D9A8 movs r3, 0xC0 _0814D9A8: - ldr r2, =gUnknown_02023064 + ldr r2, =gBattleBufferA ldrb r1, [r4] lsls r1, 9 adds r0, r2, 0x1 @@ -4854,8 +4854,8 @@ _0814D9A8: orrs r0, r1 lsls r1, r3, 24 asrs r1, 24 - bl audio_play_and_stuff - bl dp01_tbl4_exec_completed + bl PlaySE12WithPanning + bl LinkPartnerBufferExecCompleted pop {r4} pop {r0} bx r0 @@ -4865,8 +4865,8 @@ _0814D9A8: thumb_func_start sub_814D9D8 sub_814D9D8: @ 814D9D8 push {r4,r5,lr} - ldr r4, =gUnknown_02023064 - ldr r5, =gUnknown_02024064 + ldr r4, =gBattleBufferA + ldr r5, =gActiveBank ldrb r0, [r5] lsls r3, r0, 9 adds r0, r4, 0x3 @@ -4885,7 +4885,7 @@ sub_814D9D8: @ 814D9D8 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 - bl song_play_for_text + bl PlayBGM b _0814DA28 .pool _0814DA14: @@ -4897,9 +4897,9 @@ _0814DA14: ldrb r1, [r1] lsls r1, 8 orrs r0, r1 - bl fanfare_play + bl PlayFanfare _0814DA28: - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r4,r5} pop {r0} bx r0 @@ -4908,8 +4908,8 @@ _0814DA28: thumb_func_start sub_814DA34 sub_814DA34: @ 814DA34 push {lr} - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_02024064 + ldr r1, =gBattlePartyID + ldr r0, =gActiveBank ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -4925,8 +4925,8 @@ sub_814DA34: @ 814DA34 movs r1, 0x19 negs r1, r1 movs r2, 0x5 - bl sub_80A32E4 - bl dp01_tbl4_exec_completed + bl PlayCry3 + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 .pool @@ -4935,8 +4935,8 @@ sub_814DA34: @ 814DA34 thumb_func_start dp01t_2E_4_battle_intro dp01t_2E_4_battle_intro: @ 814DA74 push {lr} - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 @@ -4948,7 +4948,7 @@ dp01t_2E_4_battle_intro: @ 814DA74 movs r1, 0x1 orrs r0, r1 strh r0, [r2] - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 .pool @@ -4957,15 +4957,15 @@ dp01t_2E_4_battle_intro: @ 814DA74 thumb_func_start sub_814DAA8 sub_814DAA8: @ 814DAA8 push {r4-r7,lr} - ldr r5, =gUnknown_020241E4 - ldr r6, =gUnknown_02024064 + ldr r5, =gBankSpriteIds + ldr r6, =gActiveBank ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 bl oamt_add_pos2_onto_pos1 ldrb r0, [r6] @@ -5031,9 +5031,9 @@ sub_814DAA8: @ 814DAA8 lsls r0, 2 adds r0, r4 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r0, =0x0000d6f9 - bl AllocObjectPalette + bl AllocSpritePalette lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r6] @@ -5120,9 +5120,9 @@ _0814DC06: adds r1, r4, r2 movs r2, 0x20 bl LoadCompressedPalette - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r5, =gUnknown_02024064 + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r5, =gActiveBank ldrb r0, [r5] adds r0, r1 ldrb r0, [r0] @@ -5176,7 +5176,7 @@ _0814DC80: movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x9] - ldr r1, =gUnknown_03005D60 + ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -5212,7 +5212,7 @@ sub_814DCCC: @ 814DCCC b _0814DDB4 .pool _0814DCF8: - ldr r7, =gUnknown_02024064 + ldr r7, =gActiveBank ldrb r0, [r7] mov r9, r0 ldrh r0, [r1, 0x8] @@ -5228,12 +5228,12 @@ _0814DCF8: cmp r0, 0 beq _0814DD48 _0814DD18: - ldr r0, =gUnknown_02023064 + ldr r0, =gBattleBufferA ldrb r1, [r7] lsls r2, r1, 9 adds r0, 0x1 adds r2, r0 - ldr r0, =gUnknown_0202406E + ldr r0, =gBattlePartyID lsls r1, 1 adds r1, r0 ldrh r0, [r1] @@ -5244,12 +5244,12 @@ _0814DD18: b _0814DD9C .pool _0814DD48: - ldr r4, =gUnknown_02023064 + ldr r4, =gBattleBufferA ldrb r0, [r7] lsls r1, r0, 9 adds r4, 0x1 adds r1, r4 - ldr r5, =gUnknown_0202406E + ldr r5, =gBattlePartyID lsls r0, 1 adds r0, r5 ldrh r0, [r0] @@ -5284,8 +5284,8 @@ _0814DD48: eors r0, r6 strb r0, [r7] _0814DD9C: - ldr r1, =gUnknown_03005D60 - ldr r2, =gUnknown_02024064 + ldr r1, =gBattleBankFunc + ldr r2, =gActiveBank ldrb r0, [r2] lsls r0, 2 adds r0, r1 @@ -5308,8 +5308,8 @@ _0814DDB4: thumb_func_start sub_814DDD8 sub_814DDD8: @ 814DDD8 push {r4-r6,lr} - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x1 @@ -5318,17 +5318,17 @@ sub_814DDD8: @ 814DDD8 cmp r0, 0 beq _0814DE08 adds r0, r2, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0814DE08 - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted b _0814DE7C .pool _0814DE08: ldr r6, =gUnknown_020244D0 ldr r0, [r6] - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank ldrb r1, [r5] ldr r2, [r0, 0x4] lsls r0, r1, 1 @@ -5378,7 +5378,7 @@ _0814DE08: movs r1, 0x5D strb r1, [r0, 0x5] _0814DE70: - ldr r0, =gUnknown_03005D60 + ldr r0, =gBattleBankFunc ldrb r1, [r5] lsls r1, 2 adds r1, r0 @@ -5396,7 +5396,7 @@ sub_814DE9C: @ 814DE9C push {r4,lr} ldr r4, =gUnknown_020244D0 ldr r0, [r4] - ldr r3, =gUnknown_02024064 + ldr r3, =gActiveBank ldrb r1, [r3] ldr r2, [r0, 0x4] lsls r0, r1, 1 @@ -5419,7 +5419,7 @@ sub_814DE9C: @ 814DE9C adds r0, r2 movs r1, 0 strb r1, [r0, 0x5] - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted _0814DED4: pop {r4} pop {r0} @@ -5432,7 +5432,7 @@ sub_814DEE4: @ 814DEE4 push {lr} ldr r0, =gUnknown_020244D0 ldr r1, [r0] - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r3, [r0] ldr r1, [r1, 0x4] lsls r0, r3, 1 @@ -5455,7 +5455,7 @@ sub_814DEE4: @ 814DEE4 ldr r1, =sub_8073C30 str r1, [r0] _0814DF16: - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 .pool @@ -5464,7 +5464,7 @@ _0814DF16: thumb_func_start sub_814DF34 sub_814DF34: @ 814DF34 push {lr} - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_814DF34 @@ -5472,14 +5472,14 @@ sub_814DF34: @ 814DF34 thumb_func_start sub_814DF40 sub_814DF40: @ 814DF40 push {r4,lr} - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r0, [r4] bl sub_80A6A90 lsls r0, 24 cmp r0, 0 beq _0814DF86 - ldr r3, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 + ldr r3, =gSprites + ldr r0, =gBankSpriteIds ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] @@ -5487,7 +5487,7 @@ sub_814DF40: @ 814DF40 adds r2, r0 lsls r2, 2 adds r2, r3 - ldr r0, =gUnknown_02023064 + ldr r0, =gBattleBufferA lsls r1, 9 adds r0, 0x1 adds r1, r0 @@ -5505,7 +5505,7 @@ sub_814DF40: @ 814DF40 ldrb r0, [r4] bl sub_805E408 _0814DF86: - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r4} pop {r0} bx r0 @@ -5516,13 +5516,13 @@ _0814DF86: sub_814DFA0: @ 814DFA0 push {r4-r6,lr} sub sp, 0x4 - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank ldrb r0, [r5] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _0814E002 - ldr r4, =gUnknown_02023064 + ldr r4, =gBattleBufferA ldrb r2, [r5] lsls r1, r2, 9 adds r0, r4, 0x1 @@ -5544,11 +5544,11 @@ sub_814DFA0: @ 814DFA0 lsls r0, 24 cmp r0, 0 beq _0814DFF0 - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted b _0814DFFC .pool _0814DFF0: - ldr r0, =gUnknown_03005D60 + ldr r0, =gBattleBankFunc ldrb r1, [r5] lsls r1, 2 adds r1, r0 @@ -5568,13 +5568,13 @@ _0814E002: thumb_func_start sub_814E014 sub_814E014: @ 814E014 push {lr} - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r0, [r0] lsls r0, 9 ldr r1, =gUnknown_02023066 adds r0, r1 bl sub_81851A8 - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 .pool @@ -5583,7 +5583,7 @@ sub_814E014: @ 814E014 thumb_func_start sub_814E034 sub_814E034: @ 814E034 push {lr} - bl dp01_tbl4_exec_completed + bl LinkPartnerBufferExecCompleted pop {r0} bx r0 thumb_func_end sub_814E034 @@ -5591,13 +5591,13 @@ sub_814E034: @ 814E034 thumb_func_start sub_814E040 sub_814E040: @ 814E040 push {r4,r5,lr} - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank ldrb r0, [r5] lsls r0, 9 ldr r4, =gUnknown_02023068 adds r0, r4 bl sub_81851A8 - ldr r2, =gUnknown_0202433A + ldr r2, =gBattleOutcome ldrb r0, [r5] lsls r0, 9 subs r1, r4, 0x3 @@ -5623,11 +5623,11 @@ sub_814E040: @ 814E040 orrs r0, r1 strb r0, [r3] movs r0, 0x5 - bl sub_80A2F50 + bl FadeOutMapMusic movs r0, 0x3 bl BeginFastPaletteFade - bl dp01_tbl4_exec_completed - ldr r1, =gUnknown_03005D60 + bl LinkPartnerBufferExecCompleted + ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 diff --git a/asm/battle_controller_opponent.s b/asm/battle_controller_opponent.s new file mode 100644 index 0000000000..ed5bb8ab1e --- /dev/null +++ b/asm/battle_controller_opponent.s @@ -0,0 +1,6676 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start nullsub_26 +nullsub_26: @ 805F160 + bx lr + thumb_func_end nullsub_26 + + thumb_func_start SetBankFuncToOpponentBufferRunCommand +SetBankFuncToOpponentBufferRunCommand: @ 805F164 + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =OpponentBufferRunCommand + str r1, [r0] + bx lr + .pool + thumb_func_end SetBankFuncToOpponentBufferRunCommand + + thumb_func_start OpponentBufferRunCommand +OpponentBufferRunCommand: @ 805F180 + push {lr} + ldr r2, =gBattleExecBuffer + ldr r1, =gBitTable + ldr r0, =gActiveBank + ldrb r3, [r0] + lsls r0, r3, 2 + adds r0, r1 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _0805F1CC + ldr r0, =gBattleBufferA + lsls r1, r3, 9 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0x38 + bhi _0805F1C8 + ldr r0, =gOpponentBufferCommands + ldrb r1, [r1] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + bl _call_via_r0 + b _0805F1CC + .pool +_0805F1C8: + bl OpponentBufferExecCompleted +_0805F1CC: + pop {r0} + bx r0 + thumb_func_end OpponentBufferRunCommand + + thumb_func_start sub_805F1D0 +sub_805F1D0: @ 805F1D0 + push {lr} + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _0805F1F4 + bl OpponentBufferExecCompleted +_0805F1F4: + pop {r0} + bx r0 + .pool + thumb_func_end sub_805F1D0 + + thumb_func_start sub_805F208 +sub_805F208: @ 805F208 + push {lr} + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _0805F22C + bl OpponentBufferExecCompleted +_0805F22C: + pop {r0} + bx r0 + .pool + thumb_func_end sub_805F208 + + thumb_func_start sub_805F240 +sub_805F240: @ 805F240 + push {r4-r6,lr} + ldr r5, =gSprites + ldr r6, =gBankSpriteIds + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r2, r0, 2 + adds r0, r5, 0 + adds r0, 0x1C + adds r0, r2, r0 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _0805F292 + adds r0, r2, r5 + ldrh r0, [r0, 0x6] + bl sub_805DFE4 + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl FreeSpriteOamMatrix + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl DestroySprite + bl OpponentBufferExecCompleted +_0805F292: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805F240 + + thumb_func_start sub_805F2A8 +sub_805F2A8: @ 805F2A8 + push {r4,lr} + ldr r4, =gUnknown_020244D0 + ldr r1, [r4] + ldr r3, =gActiveBank + ldrb r0, [r3] + ldr r2, [r1, 0x4] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1, 0x9] + subs r0, 0x1 + strb r0, [r1, 0x9] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _0805F2E0 + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strb r1, [r0, 0x9] + bl OpponentBufferExecCompleted +_0805F2E0: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805F2A8 + + thumb_func_start sub_805F2F0 +sub_805F2F0: @ 805F2F0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r0, 0 + mov r10, r0 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _0805F32C + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _0805F31E + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0805F32C +_0805F31E: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _0805F368 +_0805F32C: + ldr r2, =gSprites + ldr r1, =gUnknown_03005D70 + ldr r3, =gActiveBank + ldrb r0, [r3] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _0805F34E + movs r1, 0x1 + mov r10, r1 +_0805F34E: + movs r6, 0 + b _0805F3A2 + .pool +_0805F368: + ldr r3, =gSprites + ldr r6, =gUnknown_03005D70 + ldr r2, =gActiveBank + ldrb r4, [r2] + adds r0, r4, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r3, 0x1C + adds r0, r3 + ldr r5, [r0] + ldr r0, =SpriteCallbackDummy + cmp r5, r0 + bne _0805F3A0 + movs r0, 0x2 + eors r4, r0 + adds r0, r4, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + cmp r0, r5 + bne _0805F3A0 + movs r0, 0x1 + mov r10, r0 +_0805F3A0: + movs r6, 0x1 +_0805F3A2: + ldr r3, =gUnknown_020244D8 + ldr r1, =gUnknown_020244D0 + mov r8, r1 + ldr r2, [r1] + ldr r7, =gActiveBank + ldrb r1, [r7] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r5, [r2, 0x4] + adds r0, r5, r0 + str r0, [r3] + ldr r2, =gUnknown_020244DC + ldrb r0, [r7] + movs r1, 0x2 + mov r9, r1 + mov r1, r9 + eors r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r5, r0 + str r0, [r2] + mov r0, r10 + cmp r0, 0 + bne _0805F3D8 + b _0805F53C +_0805F3D8: + cmp r6, 0x1 + bne _0805F494 + ldrb r2, [r7] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r4, r0, r5 + ldrb r1, [r4, 0x1] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + bne _0805F3F2 + b _0805F53C +_0805F3F2: + mov r0, r9 + eors r0, r2 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r0, [r1, 0x1] + ands r6, r0 + cmp r6, 0 + bne _0805F408 + b _0805F53C +_0805F408: + ldrb r1, [r4] + movs r3, 0x7F + adds r0, r3, 0 + ands r0, r1 + strb r0, [r4] + mov r1, r8 + ldr r0, [r1] + ldrb r2, [r7] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r4, 0x2 + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + strb r0, [r1, 0x1] + mov r0, r8 + ldr r2, [r0] + ldrb r0, [r7] + mov r1, r9 + eors r1, r0 + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + ands r3, r1 + strb r3, [r0] + mov r1, r8 + ldr r2, [r1] + ldrb r0, [r7] + mov r1, r9 + eors r1, r0 + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x1] + ands r4, r1 + strb r4, [r0, 0x1] + ldr r4, =0x000027f9 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag + b _0805F51A + .pool +_0805F494: + ldrb r2, [r7] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r0, 0x1] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0805F53C + adds r0, r2, 0 + bl GetBankIdentity + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bne _0805F4E4 + mov r0, r8 + ldr r2, [r0] + ldrb r0, [r7] + mov r1, r9 + eors r1, r0 + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0] + movs r0, 0xC0 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + bne _0805F53C + ldr r4, =0x000027f9 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag +_0805F4E4: + mov r1, r8 + ldr r0, [r1] + ldr r1, =gActiveBank + ldrb r2, [r1] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x7F + ands r0, r2 + strb r0, [r1] + mov r1, r8 + ldr r0, [r1] + ldr r1, =gActiveBank + ldrb r2, [r1] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] +_0805F51A: + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r3, =gActiveBank + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + strb r1, [r0, 0x9] + ldr r1, =gBattleBankFunc + ldrb r0, [r3] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_805F2A8 + str r1, [r0] +_0805F53C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805F2F0 + + thumb_func_start sub_805F560 +sub_805F560: @ 805F560 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + mov r10, r0 + ldr r5, =gUnknown_020244D0 + ldr r0, [r5] + ldr r4, =gActiveBank + ldrb r2, [r4] + ldr r1, [r0, 0x4] + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0] + movs r6, 0xC4 + lsls r6, 1 + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + bne _0805F5A6 + ldr r0, =gBattlePartyID + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gEnemyParty + adds r1, r0 + adds r0, r2, 0 + bl sub_8172EF0 +_0805F5A6: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + ldr r1, =0x00008040 + ands r0, r1 + cmp r0, 0 + bne _0805F5EE + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _0805F5EE + ldr r2, [r5] + ldrb r1, [r4] + movs r0, 0x2 + adds r3, r0, 0 + eors r3, r1 + ldr r1, [r2, 0x4] + lsls r2, r3, 1 + adds r0, r2, r3 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + bne _0805F5EE + ldr r0, =gBattlePartyID + adds r0, r2, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gEnemyParty + adds r1, r0 + adds r0, r3, 0 + bl sub_8172EF0 +_0805F5EE: + ldr r2, =gUnknown_020244D0 + ldr r0, [r2] + ldr r1, =gActiveBank + mov r8, r1 + ldrb r4, [r1] + ldr r5, [r0, 0x4] + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r3, r0, r5 + ldrb r1, [r3] + movs r6, 0x8 + adds r0, r6, 0 + ands r0, r1 + mov r9, r2 + cmp r0, 0 + bne _0805F6D0 + movs r7, 0x2 + adds r1, r7, 0 + eors r1, r4 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r0] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + bne _0805F6D0 + ldrb r1, [r3, 0x1] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0805F6B4 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _0805F684 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0805F684 + ldr r4, =gUnknown_03005D70 + mov r1, r8 + ldrb r0, [r1] + adds r1, r7, 0 + eors r1, r0 + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, =gBattlePartyID + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gEnemyParty + adds r1, r2 + movs r2, 0 + bl healthbar_draw_field_maybe + mov r1, r8 + ldrb r0, [r1] + eors r0, r7 + bl sub_8076918 + mov r1, r8 + ldrb r0, [r1] + eors r0, r7 + adds r0, r4 + ldrb r0, [r0] + bl sub_80729D0 +_0805F684: + ldr r5, =gUnknown_03005D70 + ldr r4, =gActiveBank + ldrb r1, [r4] + adds r0, r1, r5 + ldrb r0, [r0] + ldr r2, =gBattlePartyID + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gEnemyParty + adds r1, r2 + movs r2, 0 + bl healthbar_draw_field_maybe + ldrb r0, [r4] + bl sub_8076918 + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + bl sub_80729D0 +_0805F6B4: + ldr r3, =gUnknown_020244D0 + ldr r2, [r3] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x1] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0, 0x1] + mov r9, r3 +_0805F6D0: + mov r1, r9 + ldr r0, [r1] + ldr r4, =gActiveBank + ldrb r2, [r4] + ldr r3, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x1] + movs r0, 0xC0 + ands r0, r1 + cmp r0, 0x80 + bne _0805F792 + movs r1, 0x2 + eors r1, r2 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x1] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0805F792 + bl IsCryPlayingOrClearCrySongs + lsls r0, 24 + cmp r0, 0 + bne _0805F792 + mov r1, r9 + ldr r0, [r1] + ldrb r4, [r4] + ldr r1, [r0, 0x4] + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x1] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _0805F774 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x42 + ands r0, r1 + cmp r0, 0x42 + bne _0805F768 + adds r0, r4, 0 + bl GetBankIdentity + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0805F774 + ldr r0, =gMPlay_BGM + bl m4aMPlayContinue + b _0805F774 + .pool +_0805F768: + ldr r0, =gMPlay_BGM + ldr r1, =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl +_0805F774: + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x1] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0, 0x1] + movs r0, 0x1 + str r0, [sp] +_0805F792: + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _0805F7B2 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _0805F810 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0805F810 +_0805F7B2: + ldr r2, =gSprites + ldr r0, =gUnknown_03005D7C + ldr r1, =gActiveBank + ldrb r4, [r1] + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r3, [r0] + ldr r0, =SpriteCallbackDummy + cmp r3, r0 + bne _0805F86E + ldr r0, =gBankSpriteIds + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + cmp r0, r3 + bne _0805F86E + movs r1, 0x1 + mov r10, r1 + b _0805F86E + .pool +_0805F810: + ldr r2, =gSprites + ldr r7, =gUnknown_03005D7C + ldr r0, =gActiveBank + ldrb r3, [r0] + adds r0, r3, r7 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r4, [r0] + ldr r0, =SpriteCallbackDummy + cmp r4, r0 + bne _0805F86E + ldr r6, =gBankSpriteIds + adds r0, r3, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r5, [r0] + cmp r5, r4 + bne _0805F86E + movs r0, 0x2 + eors r3, r0 + adds r0, r3, r7 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r4, [r0] + cmp r4, r5 + bne _0805F86E + adds r0, r3, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + cmp r0, r4 + bne _0805F86E + movs r0, 0x1 + mov r10, r0 +_0805F86E: + ldr r1, [sp] + cmp r1, 0 + beq _0805F958 + mov r0, r10 + cmp r0, 0 + beq _0805F958 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _0805F8D2 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0805F8D2 + ldr r1, =gUnknown_03005D7C + ldr r5, =gActiveBank + ldrb r0, [r5] + movs r4, 0x2 + eors r0, r4 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + bl DestroySprite + ldrb r0, [r5] + eors r4, r0 + ldr r1, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_805EE54 +_0805F8D2: + ldr r1, =gUnknown_03005D7C + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + bl DestroySprite + ldrb r5, [r4] + ldr r1, =gBattlePartyID + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r5, 0 + bl sub_805EE54 + ldr r3, =gUnknown_020244D0 + ldr r0, [r3] + ldr r2, [r0, 0x8] + ldrb r1, [r2, 0x9] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x9] + ldr r0, [r3] + ldrb r2, [r4] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldr r0, [r3] + ldrb r2, [r4] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r0, 0x7F + ands r0, r2 + strb r0, [r1, 0x1] + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_805F2F0 + str r1, [r0] +_0805F958: + 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_805F560 + + thumb_func_start sub_805F994 +sub_805F994: @ 805F994 + push {r4,r5,lr} + ldr r2, =gSprites + ldr r0, =gBankSpriteIds + ldr r1, =gActiveBank + ldrb r3, [r1] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x24 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _0805F9E0 + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r1, [r0, 0x4] + lsls r2, r3, 1 + adds r0, r2, r3 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0xC0 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + bne _0805F9E0 + ldr r0, =gBattlePartyID + adds r0, r2, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gEnemyParty + adds r1, r0 + adds r0, r3, 0 + bl sub_8172EF0 +_0805F9E0: + ldr r2, =gSprites + ldr r0, =gBankSpriteIds + ldr r5, =gActiveBank + ldrb r3, [r5] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _0805FA48 + ldr r4, =gUnknown_020244D0 + ldr r0, [r4] + ldr r1, [r0, 0x4] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r2, r0, r1 + ldrb r1, [r2, 0x1] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0805FA48 + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + ldr r0, [r4] + ldrb r2, [r5] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldr r4, =0x000027f9 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag + bl OpponentBufferExecCompleted +_0805FA48: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805F994 + + thumb_func_start sub_805FA70 +sub_805FA70: @ 805FA70 + push {r4-r6,lr} + ldr r6, =gActiveBank + ldrb r0, [r6] + ldr r5, =gUnknown_03005D70 + adds r1, r0, r5 + ldrb r1, [r1] + movs r2, 0 + movs r3, 0 + bl sub_8074AA0 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r6] + adds r0, r5 + ldrb r0, [r0] + bl sub_80729D0 + lsls r4, 16 + asrs r1, r4, 16 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _0805FAB8 + ldrb r0, [r6] + adds r0, r5 + ldrb r0, [r0] + movs r2, 0 + bl heathbar_draw_hp + b _0805FABC + .pool +_0805FAB8: + bl OpponentBufferExecCompleted +_0805FABC: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_805FA70 + + thumb_func_start sub_805FAC4 +sub_805FAC4: @ 805FAC4 + push {lr} + ldr r2, =gSprites + ldr r0, =gBankSpriteIds + ldr r1, =gActiveBank + ldrb r3, [r1] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 31 + cmp r0, 0 + bne _0805FAF2 + ldr r0, =gUnknown_03005D70 + adds r0, r3, r0 + ldrb r0, [r0] + bl sub_8072984 + bl OpponentBufferExecCompleted +_0805FAF2: + pop {r0} + bx r0 + .pool + thumb_func_end sub_805FAC4 + + thumb_func_start sub_805FB08 +sub_805FB08: @ 805FB08 + push {r4-r6,lr} + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r6, =gActiveBank + ldrb r2, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0805FB62 + ldr r5, =gBankSpriteIds + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + ldrb r0, [r6] + bl sub_805EEE0 + ldr r1, =gUnknown_03005D70 + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + bl sub_8072984 + bl OpponentBufferExecCompleted +_0805FB62: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805FB08 + + thumb_func_start bx_t7_button_a +bx_t7_button_a: @ 805FB7C + push {lr} + movs r0, 0 + bl IsTextPrinterActive + lsls r0, 16 + cmp r0, 0 + bne _0805FB8E + bl OpponentBufferExecCompleted +_0805FB8E: + pop {r0} + bx r0 + thumb_func_end bx_t7_button_a + + thumb_func_start bx_blink_t7 +bx_blink_t7: @ 805FB94 + push {r4,lr} + ldr r1, =gBankSpriteIds + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + ldr r2, =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, r0, r2 + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0x20 + bne _0805FBE0 + movs r3, 0 + movs r0, 0 + strh r0, [r4, 0x30] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + subs r0, 0x5 + ands r0, r1 + strb r0, [r2] + ldr r0, =gDoingBattleAnim + strb r3, [r0] + bl OpponentBufferExecCompleted + b _0805FC0A + .pool +_0805FBE0: + ldrh r0, [r4, 0x30] + movs r1, 0x3 + ands r0, r1 + cmp r0, 0 + bne _0805FC04 + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_0805FC04: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] +_0805FC0A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end bx_blink_t7 + + thumb_func_start sub_805FC10 +sub_805FC10: @ 805FC10 + push {r4,lr} + ldr r2, =gSprites + ldr r0, =gUnknown_03005D70 + ldr r4, =gActiveBank + ldrb r3, [r4] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _0805FC5C + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r3, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0805FC50 + adds r0, r3, 0 + adds r1, r3, 0 + adds r2, r3, 0 + movs r3, 0x6 + bl move_anim_start_t4 +_0805FC50: + ldr r0, =gBattleBankFunc + ldrb r1, [r4] + lsls r1, 2 + adds r1, r0 + ldr r0, =bx_803AEDC + str r0, [r1] +_0805FC5C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805FC10 + + thumb_func_start bx_803AEDC +bx_803AEDC: @ 805FC80 + push {r4,lr} + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r4, =gActiveBank + ldrb r1, [r4] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0805FCDA + bl IsCryPlayingOrClearCrySongs + lsls r0, 24 + cmp r0, 0 + bne _0805FCDA + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldrb r0, [r4] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + beq _0805FCCA + ldr r0, =nullsub_18 + cmp r1, r0 + bne _0805FCDA +_0805FCCA: + ldr r0, =gMPlay_BGM + ldr r1, =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl + bl OpponentBufferExecCompleted +_0805FCDA: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end bx_803AEDC + + thumb_func_start sub_805FD00 +sub_805FD00: @ 805FD00 + push {r4-r7,lr} + ldr r4, =gUnknown_020244D0 + ldr r0, [r4] + ldr r5, =gActiveBank + ldrb r2, [r5] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r3, r0, r1 + ldrb r1, [r3, 0x1] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0805FDBC + ldr r7, =gSprites + ldr r6, =gBankSpriteIds + adds r0, r2, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r7, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _0805FDBC + ldrb r1, [r3] + movs r0, 0x7F + ands r0, r1 + strb r0, [r3] + ldr r0, [r4] + ldrb r2, [r5] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldr r4, =0x000027f9 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + movs r1, 0 + bl StartSpriteAnim + ldr r4, =gUnknown_03005D70 + ldrb r1, [r5] + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, =gBattlePartyID + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gEnemyParty + adds r1, r2 + movs r2, 0 + bl healthbar_draw_field_maybe + ldrb r0, [r5] + bl sub_8076918 + ldrb r0, [r5] + adds r0, r4 + ldrb r0, [r0] + bl sub_80729D0 + ldrb r0, [r5] + bl sub_805E408 + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_805FC10 + str r1, [r0] +_0805FDBC: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805FD00 + + thumb_func_start sub_805FDF0 +sub_805FDF0: @ 805FDF0 + push {r4-r6,lr} + ldr r6, =gUnknown_020244D0 + ldr r0, [r6] + ldr r5, =gActiveBank + ldrb r2, [r5] + ldr r1, [r0, 0x4] + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x88 + ands r0, r1 + cmp r0, 0 + bne _0805FE22 + ldr r0, =gBattlePartyID + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gEnemyParty + adds r1, r0 + adds r0, r2, 0 + bl sub_8172EF0 +_0805FE22: + ldr r4, =gSprites + ldr r0, =gUnknown_03005D7C + ldrb r2, [r5] + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r3, r0, 2 + adds r0, r4, 0 + adds r0, 0x1C + adds r0, r3, r0 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _0805FE8C + ldr r0, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _0805FE8C + adds r0, r3, r4 + bl DestroySprite + ldrb r4, [r5] + ldr r1, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_805EE54 + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_805FD00 + str r1, [r0] +_0805FE8C: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805FDF0 + + thumb_func_start sub_805FEB8 +sub_805FEB8: @ 805FEB8 + push {lr} + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _0805FEDA + bl OpponentBufferExecCompleted +_0805FEDA: + pop {r0} + bx r0 + .pool + thumb_func_end sub_805FEB8 + + thumb_func_start bx_803B0F4 +bx_803B0F4: @ 805FEE8 + push {lr} + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _0805FF0A + bl OpponentBufferExecCompleted +_0805FF0A: + pop {r0} + bx r0 + .pool + thumb_func_end bx_803B0F4 + + thumb_func_start OpponentBufferExecCompleted +OpponentBufferExecCompleted: @ 805FF18 + push {r4,lr} + sub sp, 0x4 + ldr r1, =gBattleBankFunc + ldr r4, =gActiveBank + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =OpponentBufferRunCommand + str r1, [r0] + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0805FF6C + bl link_get_multiplayer_id + mov r1, sp + strb r0, [r1] + movs r0, 0x2 + movs r1, 0x4 + mov r2, sp + bl PrepareBufferDataTransferLink + ldr r1, =gBattleBufferA + ldrb r0, [r4] + lsls r0, 9 + adds r0, r1 + movs r1, 0x38 + strb r1, [r0] + b _0805FF7E + .pool +_0805FF6C: + ldr r2, =gBattleExecBuffer + ldr r1, =gBitTable + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + ldr r0, [r2] + bics r0, r1 + str r0, [r2] +_0805FF7E: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end OpponentBufferExecCompleted + + thumb_func_start dp01t_00_7_getattr +dp01t_00_7_getattr: @ 805FF90 + push {r4-r6,lr} + sub sp, 0x100 + movs r6, 0 + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + bne _0805FFC8 + ldr r0, =gBattlePartyID + lsls r1, r2, 1 + adds r1, r0 + ldrb r0, [r1] + mov r1, sp + bl sub_8060004 + adds r6, r0, 0 + b _0805FFEA + .pool +_0805FFC8: + ldrb r4, [r1] + movs r5, 0 +_0805FFCC: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _0805FFE2 + lsls r0, r5, 24 + lsrs r0, 24 + mov r2, sp + adds r1, r2, r6 + bl sub_8060004 + adds r6, r0 +_0805FFE2: + lsrs r4, 1 + adds r5, 0x1 + cmp r5, 0x5 + ble _0805FFCC +_0805FFEA: + lsls r1, r6, 16 + lsrs r1, 16 + movs r0, 0x1 + mov r2, sp + bl dp01_build_cmdbuf_x1D_1D_numargs_varargs + bl OpponentBufferExecCompleted + add sp, 0x100 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end dp01t_00_7_getattr + + thumb_func_start sub_8060004 +sub_8060004: @ 8060004 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x90 + adds r7, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0 + ldr r2, =gBattleBufferA + ldr r3, =gActiveBank + ldrb r0, [r3] + lsls r0, 9 + adds r1, r2, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x3B + bls _0806002E + bl _0806079A +_0806002E: + lsls r0, 2 + ldr r1, =_08060044 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08060044: + .4byte _08060134 + .4byte _08060358 + .4byte _08060368 + .4byte _08060378 + .4byte _080603E0 + .4byte _080603E0 + .4byte _080603E0 + .4byte _080603E0 + .4byte _080603FC + .4byte _08060438 + .4byte _08060438 + .4byte _08060438 + .4byte _08060438 + .4byte _0806079A + .4byte _0806079A + .4byte _0806079A + .4byte _0806079A + .4byte _08060454 + .4byte _08060464 + .4byte _08060494 + .4byte _080604A4 + .4byte _080604B4 + .4byte _080604C4 + .4byte _080604D4 + .4byte _080604E4 + .4byte _080604F4 + .4byte _08060504 + .4byte _08060514 + .4byte _08060524 + .4byte _08060534 + .4byte _08060544 + .4byte _08060554 + .4byte _080605A4 + .4byte _080605B4 + .4byte _080605C4 + .4byte _080605D4 + .4byte _080605E4 + .4byte _080605F4 + .4byte _08060604 + .4byte _08060614 + .4byte _08060624 + .4byte _08060658 + .4byte _08060668 + .4byte _08060678 + .4byte _08060688 + .4byte _08060698 + .4byte _080606A8 + .4byte _080606B8 + .4byte _080606C8 + .4byte _080606E8 + .4byte _080606F8 + .4byte _08060708 + .4byte _08060718 + .4byte _08060728 + .4byte _08060738 + .4byte _08060748 + .4byte _08060758 + .4byte _08060768 + .4byte _08060778 + .4byte _08060788 +_08060134: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + mov r1, sp + strh r0, [r1] + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2E] + movs r6, 0 + add r0, sp, 0x24 + mov r9, r0 + movs r1, 0x3B + add r1, sp + mov r10, r1 + mov r2, sp + adds r2, 0x2B + str r2, [sp, 0x80] + mov r0, sp + adds r0, 0x2A + str r0, [sp, 0x7C] + mov r1, sp + adds r1, 0x68 + str r1, [sp, 0x8C] + adds r2, 0x5 + str r2, [sp, 0x84] + adds r0, 0x12 + str r0, [sp, 0x88] + mov r8, r4 + add r4, sp, 0xC +_08060180: + adds r1, r6, 0 + adds r1, 0xD + mov r0, r8 + bl GetMonData + strh r0, [r4] + adds r1, r6, 0 + adds r1, 0x11 + mov r0, r8 + bl GetMonData + mov r2, r9 + adds r1, r2, r6 + strb r0, [r1] + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _08060180 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x15 + bl GetMonData + mov r1, r10 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x20 + bl GetMonData + ldr r2, [sp, 0x80] + strb r0, [r2] + adds r0, r4, 0 + movs r1, 0x19 + bl GetMonData + str r0, [sp, 0x44] + adds r0, r4, 0 + movs r1, 0x27 + bl GetMonData + mov r3, sp + movs r5, 0x1F + ands r0, r5 + ldrb r2, [r3, 0x14] + movs r1, 0x20 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x14] + adds r0, r4, 0 + movs r1, 0x28 + bl GetMonData + mov r3, sp + movs r6, 0x1F + ands r0, r6 + lsls r0, 5 + ldrh r2, [r3, 0x14] + ldr r1, =0xfffffc1f + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x14] + adds r0, r4, 0 + movs r1, 0x29 + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, 2 + ldrb r2, [r3, 0x15] + movs r1, 0x7D + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x15] + adds r0, r4, 0 + movs r1, 0x2A + bl GetMonData + movs r1, 0x1F + ands r1, r0 + lsls r1, 15 + ldr r0, [sp, 0x14] + ldr r2, =0xfff07fff + ands r0, r2 + orrs r0, r1 + str r0, [sp, 0x14] + adds r0, r4, 0 + movs r1, 0x2B + bl GetMonData + mov r3, sp + ands r0, r6 + lsls r0, 4 + ldrh r2, [r3, 0x16] + ldr r1, =0xfffffe0f + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x16] + adds r0, r4, 0 + movs r1, 0x2C + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, 1 + ldrb r2, [r3, 0x17] + movs r1, 0x3F + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + str r0, [sp, 0x48] + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData + str r0, [sp, 0x4C] + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + ldr r1, [sp, 0x7C] + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + mov r1, sp + strh r0, [r1, 0x28] + adds r0, r4, 0 + movs r1, 0x3A + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2C] + adds r0, r4, 0 + movs r1, 0x3B + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2] + adds r0, r4, 0 + movs r1, 0x3C + bl GetMonData + mov r1, sp + strh r0, [r1, 0x4] + adds r0, r4, 0 + movs r1, 0x3D + bl GetMonData + mov r1, sp + strh r0, [r1, 0x6] + adds r0, r4, 0 + movs r1, 0x3E + bl GetMonData + mov r1, sp + strh r0, [r1, 0x8] + adds r0, r4, 0 + movs r1, 0x3F + bl GetMonData + mov r1, sp + strh r0, [r1, 0xA] + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + mov r3, sp + movs r1, 0x1 + ands r0, r1 + lsls r0, 6 + ldrb r2, [r3, 0x17] + movs r1, 0x41 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0x2E + bl GetMonData + mov r3, sp + lsls r0, 7 + ldrb r2, [r3, 0x17] + movs r1, 0x7F + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0x1 + bl GetMonData + str r0, [sp, 0x54] + adds r0, r4, 0 + movs r1, 0x2 + ldr r2, [sp, 0x8C] + bl GetMonData + ldr r0, [sp, 0x84] + ldr r1, [sp, 0x8C] + bl StringCopy10 + adds r0, r4, 0 + movs r1, 0x7 + ldr r2, [sp, 0x88] + bl GetMonData + mov r2, sp + movs r6, 0 +_08060338: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, 0x1 + cmp r6, 0x57 + bls _08060338 + b _0806079A + .pool +_08060358: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0xB + b _080606D2 + .pool +_08060368: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0xC + b _080606D2 + .pool +_08060378: + movs r6, 0 + add r2, sp, 0x58 + mov r9, r2 + add r0, sp, 0x60 + mov r10, r0 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gEnemyParty + adds r4, r1, r0 + mov r8, r9 +_0806038E: + adds r1, r6, 0 + adds r1, 0xD + adds r0, r4, 0 + bl GetMonData + mov r1, r8 + strh r0, [r1] + adds r1, r6, 0 + adds r1, 0x11 + adds r0, r4, 0 + bl GetMonData + mov r2, r10 + adds r1, r2, r6 + strb r0, [r1] + movs r0, 0x2 + add r8, r0 + adds r6, 0x1 + cmp r6, 0x3 + ble _0806038E + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x15 + bl GetMonData + mov r1, r9 + strb r0, [r1, 0xC] + mov r2, r9 + movs r6, 0 +_080603CC: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, 0x1 + cmp r6, 0xF + bls _080603CC + b _0806079A + .pool +_080603E0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r1, [r3] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + adds r1, 0x9 + b _080606D2 + .pool +_080603FC: + movs r6, 0 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r2, =gEnemyParty + mov r8, r2 +_08060408: + adds r1, r6, 0 + adds r1, 0x11 + mov r2, r8 + adds r0, r4, r2 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, 0x1 + cmp r6, 0x3 + ble _08060408 + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x15 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, 0x1 + b _0806079A + .pool +_08060438: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r1, [r3] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + adds r1, 0x8 + b _08060792 + .pool +_08060454: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x1 + b _0806046E + .pool +_08060464: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x19 +_0806046E: + bl GetMonData + adds r1, r0, 0 + strb r1, [r7] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r0, 16 + strb r0, [r7, 0x2] + movs r6, 0x3 + b _0806079A + .pool +_08060494: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x1A + b _08060792 + .pool +_080604A4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x1B + b _08060792 + .pool +_080604B4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x1C + b _08060792 + .pool +_080604C4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x1D + b _08060792 + .pool +_080604D4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x1E + b _08060792 + .pool +_080604E4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x1F + b _08060792 + .pool +_080604F4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x20 + b _08060792 + .pool +_08060504: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x22 + b _08060792 + .pool +_08060514: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x23 + b _08060792 + .pool +_08060524: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x24 + b _08060792 + .pool +_08060534: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x25 + b _08060792 + .pool +_08060544: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x26 + b _08060792 + .pool +_08060554: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x27 + bl GetMonData + strb r0, [r7] + adds r0, r4, 0 + movs r1, 0x28 + bl GetMonData + strb r0, [r7, 0x1] + adds r0, r4, 0 + movs r1, 0x29 + bl GetMonData + strb r0, [r7, 0x2] + adds r0, r4, 0 + movs r1, 0x2A + bl GetMonData + strb r0, [r7, 0x3] + adds r0, r4, 0 + movs r1, 0x2B + bl GetMonData + strb r0, [r7, 0x4] + adds r0, r4, 0 + movs r1, 0x2C + bl GetMonData + strb r0, [r7, 0x5] + movs r6, 0x6 + b _0806079A + .pool +_080605A4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x27 + b _08060792 + .pool +_080605B4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x28 + b _08060792 + .pool +_080605C4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x29 + b _08060792 + .pool +_080605D4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x2A + b _08060792 + .pool +_080605E4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x2B + b _08060792 + .pool +_080605F4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x2C + b _08060792 + .pool +_08060604: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0 + b _0806062E + .pool +_08060614: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x9 + b _080606D2 + .pool +_08060624: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x37 +_0806062E: + bl GetMonData + adds r1, r0, 0 + strb r1, [r7] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r0, 16 + strb r0, [r7, 0x2] + lsrs r0, r1, 24 + strb r0, [r7, 0x3] + movs r6, 0x4 + b _0806079A + .pool +_08060658: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x38 + b _08060792 + .pool +_08060668: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x39 + b _080606D2 + .pool +_08060678: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x3A + b _080606D2 + .pool +_08060688: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x3B + b _080606D2 + .pool +_08060698: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x3C + b _080606D2 + .pool +_080606A8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x3D + b _080606D2 + .pool +_080606B8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x3E + b _080606D2 + .pool +_080606C8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x3F +_080606D2: + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + strb r0, [r7] + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r6, 0x2 + b _0806079A + .pool +_080606E8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x16 + b _08060792 + .pool +_080606F8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x17 + b _08060792 + .pool +_08060708: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x18 + b _08060792 + .pool +_08060718: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x21 + b _08060792 + .pool +_08060728: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x2F + b _08060792 + .pool +_08060738: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x30 + b _08060792 + .pool +_08060748: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x32 + b _08060792 + .pool +_08060758: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x33 + b _08060792 + .pool +_08060768: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x34 + b _08060792 + .pool +_08060778: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x35 + b _08060792 + .pool +_08060788: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x36 +_08060792: + bl GetMonData + strb r0, [r7] + movs r6, 0x1 +_0806079A: + adds r0, r6, 0 + add sp, 0x90 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8060004 + + thumb_func_start dp01t_01_2_read_pokmon_data_slice +dp01t_01_2_read_pokmon_data_slice: @ 80607B0 + push {r4-r7,lr} + sub sp, 0x58 + ldr r2, =gBattlePartyID + ldr r5, =gActiveBank + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + adds r4, r2, 0 + muls r4, r0 + ldr r3, =gBattleBufferA + lsls r1, 9 + adds r0, r3, 0x1 + adds r0, r1, r0 + ldrb r2, [r0] + ldr r0, =gEnemyParty + adds r0, r2, r0 + adds r6, r4, r0 + mov r0, sp + adds r4, r0, r2 + movs r2, 0 + adds r0, r3, 0x2 + adds r1, r0 + adds r7, r5, 0 + mov r12, r3 + ldrb r1, [r1] + cmp r2, r1 + bcs _08060806 + adds r3, r0, 0 +_080607EC: + adds r1, r4, r2 + adds r0, r6, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + ldrb r0, [r5] + lsls r0, 9 + adds r0, r3 + ldrb r0, [r0] + cmp r2, r0 + bcc _080607EC +_08060806: + ldrb r0, [r7] + lsls r0, 9 + mov r1, r12 + adds r1, 0x2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + adds r2, r4, 0 + bl dp01_build_cmdbuf_x1D_1D_numargs_varargs + bl OpponentBufferExecCompleted + add sp, 0x58 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end dp01t_01_2_read_pokmon_data_slice + + thumb_func_start dp01t_02_7_setattr +dp01t_02_7_setattr: @ 8060838 + push {r4,r5,lr} + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + bne _08060868 + ldr r0, =gBattlePartyID + lsls r1, r2, 1 + adds r1, r0 + ldrb r0, [r1] + bl sub_8060890 + b _08060886 + .pool +_08060868: + ldrb r4, [r1] + movs r5, 0 +_0806086C: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _0806087A + adds r0, r5, 0 + bl sub_8060890 +_0806087A: + lsrs r4, 1 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _0806086C +_08060886: + bl OpponentBufferExecCompleted + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end dp01t_02_7_setattr + + thumb_func_start sub_8060890 +sub_8060890: @ 8060890 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x38 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r3, =gActiveBank + ldrb r0, [r3] + lsls r0, 9 + ldr r2, =gUnknown_02023067 + adds r4, r0, r2 + adds r7, r4, 0 + subs r1, r2, 0x2 + adds r0, r1 + ldrb r0, [r0] + adds r6, r3, 0 + adds r3, r2, 0 + cmp r0, 0x3B + bls _080608BE + bl _0806119C +_080608BE: + lsls r0, 2 + ldr r1, =_080608D4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080608D4: + .4byte _080609C4 + .4byte _08060B5C + .4byte _08060B78 + .4byte _08060B94 + .4byte _08060BE8 + .4byte _08060BE8 + .4byte _08060BE8 + .4byte _08060BE8 + .4byte _08060C08 + .4byte _08060C70 + .4byte _08060C70 + .4byte _08060C70 + .4byte _08060C70 + .4byte _0806119C + .4byte _0806119C + .4byte _0806119C + .4byte _0806119C + .4byte _08060C98 + .4byte _08060CB4 + .4byte _08060CD0 + .4byte _08060CEC + .4byte _08060D08 + .4byte _08060D24 + .4byte _08060D40 + .4byte _08060D5C + .4byte _08060D78 + .4byte _08060D94 + .4byte _08060DB0 + .4byte _08060DCC + .4byte _08060DE8 + .4byte _08060E04 + .4byte _08060E20 + .4byte _08060E94 + .4byte _08060EB0 + .4byte _08060ECC + .4byte _08060EE8 + .4byte _08060F04 + .4byte _08060F20 + .4byte _08060F3C + .4byte _08060F58 + .4byte _08060F74 + .4byte _08060F90 + .4byte _08060FAC + .4byte _08060FC8 + .4byte _08060FE4 + .4byte _08061000 + .4byte _0806101C + .4byte _08061038 + .4byte _08061054 + .4byte _08061070 + .4byte _0806108C + .4byte _080610A8 + .4byte _080610C4 + .4byte _080610E0 + .4byte _080610FC + .4byte _08061118 + .4byte _08061134 + .4byte _08061150 + .4byte _0806116C + .4byte _08061188 +_080609C4: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + adds r2, r7, 0 + bl SetMonData + adds r2, r7, 0 + adds r2, 0x2E + adds r0, r4, 0 + movs r1, 0xC + bl SetMonData + movs r0, 0 + mov r8, r0 + movs r0, 0x3B + adds r0, r7 + mov r10, r0 + adds r0, r7, 0 + adds r0, 0x2B + str r0, [sp, 0x20] + adds r0, 0x19 + str r0, [sp, 0x28] + adds r0, 0x4 + str r0, [sp, 0x2C] + adds r0, 0x4 + str r0, [sp, 0x30] + subs r0, 0x22 + str r0, [sp, 0x1C] + subs r0, 0x2 + str r0, [sp, 0x18] + adds r0, 0x4 + str r0, [sp, 0x24] + adds r0, r7, 0x2 + str r0, [sp, 0x4] + adds r0, r7, 0x4 + str r0, [sp, 0x8] + adds r0, r7, 0x6 + str r0, [sp, 0xC] + adds r0, 0x2 + str r0, [sp, 0x10] + adds r0, 0x2 + str r0, [sp, 0x14] + mov r9, r4 + adds r6, r7, 0 + adds r6, 0x24 + adds r4, r7, 0 + adds r4, 0xC +_08060A2A: + mov r1, r8 + adds r1, 0xD + mov r0, r9 + adds r2, r4, 0 + bl SetMonData + mov r1, r8 + adds r1, 0x11 + mov r0, r9 + adds r2, r6, 0 + bl SetMonData + adds r6, 0x1 + adds r4, 0x2 + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x3 + ble _08060A2A + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x15 + mov r2, r10 + bl SetMonData + adds r0, r4, 0 + movs r1, 0x20 + ldr r2, [sp, 0x20] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x19 + ldr r2, [sp, 0x28] + bl SetMonData + ldrb r0, [r7, 0x14] + lsls r0, 27 + lsrs r0, 27 + mov r1, sp + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x27 + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r7, 0x14] + lsls r0, 22 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x28 + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r7, 0x15] + lsls r0, 25 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x29 + mov r2, sp + bl SetMonData + mov r1, sp + ldr r0, [r7, 0x14] + lsls r0, 12 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2A + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r7, 0x16] + lsls r0, 23 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2B + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r7, 0x17] + lsls r0, 26 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2C + mov r2, sp + bl SetMonData + adds r0, r4, 0 + movs r1, 0 + ldr r2, [sp, 0x2C] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x37 + ldr r2, [sp, 0x30] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x38 + ldr r2, [sp, 0x1C] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x39 + ldr r2, [sp, 0x18] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3A + ldr r2, [sp, 0x24] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3B + ldr r2, [sp, 0x4] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3C + ldr r2, [sp, 0x8] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3D + ldr r2, [sp, 0xC] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3E + ldr r2, [sp, 0x10] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3F + ldr r2, [sp, 0x14] + bl SetMonData + b _0806119C + .pool +_08060B5C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0xB + bl SetMonData + b _0806119C + .pool +_08060B78: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0xC + bl SetMonData + b _0806119C + .pool +_08060B94: + movs r0, 0 + mov r8, r0 + movs r0, 0xC + adds r0, r4 + mov r9, r0 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gEnemyParty + adds r7, r1, r0 + adds r6, r4, 0 + adds r6, 0x8 +_08060BAC: + mov r1, r8 + adds r1, 0xD + adds r0, r7, 0 + adds r2, r4, 0 + bl SetMonData + mov r1, r8 + adds r1, 0x11 + adds r0, r7, 0 + adds r2, r6, 0 + bl SetMonData + adds r6, 0x1 + adds r4, 0x2 + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x3 + ble _08060BAC + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x15 + mov r2, r9 + bl SetMonData + b _0806119C + .pool +_08060BE8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldr r3, =gBattleBufferA + ldrb r2, [r6] + lsls r2, 9 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, 0x9 + b _08060C86 + .pool +_08060C08: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gEnemyParty + adds r4, r0 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + adds r0, r4, 0 + movs r1, 0x11 + str r3, [sp, 0x34] + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x1 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x12 + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x2 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x13 + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x3 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x14 + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x4 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x15 + bl SetMonData + b _0806119C + .pool +_08060C70: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldr r3, =gBattleBufferA + ldrb r2, [r6] + lsls r2, 9 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, 0x8 +_08060C86: + adds r3, 0x3 + adds r2, r3 + bl SetMonData + b _0806119C + .pool +_08060C98: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1 + bl SetMonData + b _0806119C + .pool +_08060CB4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x19 + bl SetMonData + b _0806119C + .pool +_08060CD0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1A + bl SetMonData + b _0806119C + .pool +_08060CEC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1B + bl SetMonData + b _0806119C + .pool +_08060D08: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1C + bl SetMonData + b _0806119C + .pool +_08060D24: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1D + bl SetMonData + b _0806119C + .pool +_08060D40: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1E + bl SetMonData + b _0806119C + .pool +_08060D5C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1F + bl SetMonData + b _0806119C + .pool +_08060D78: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x20 + bl SetMonData + b _0806119C + .pool +_08060D94: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x22 + bl SetMonData + b _0806119C + .pool +_08060DB0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x23 + bl SetMonData + b _0806119C + .pool +_08060DCC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x24 + bl SetMonData + b _0806119C + .pool +_08060DE8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x25 + bl SetMonData + b _0806119C + .pool +_08060E04: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x26 + bl SetMonData + b _0806119C + .pool +_08060E20: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gEnemyParty + adds r4, r0 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + adds r0, r4, 0 + movs r1, 0x27 + str r3, [sp, 0x34] + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x1 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x28 + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x2 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x29 + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x3 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x2A + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x4 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x2B + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x5 + adds r2, r0 + adds r0, r4, 0 + b _08060F2E + .pool +_08060E94: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x27 + bl SetMonData + b _0806119C + .pool +_08060EB0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x28 + bl SetMonData + b _0806119C + .pool +_08060ECC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x29 + bl SetMonData + b _0806119C + .pool +_08060EE8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x2A + bl SetMonData + b _0806119C + .pool +_08060F04: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x2B + bl SetMonData + b _0806119C + .pool +_08060F20: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 +_08060F2E: + movs r1, 0x2C + bl SetMonData + b _0806119C + .pool +_08060F3C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0 + bl SetMonData + b _0806119C + .pool +_08060F58: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x9 + bl SetMonData + b _0806119C + .pool +_08060F74: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x37 + bl SetMonData + b _0806119C + .pool +_08060F90: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x38 + bl SetMonData + b _0806119C + .pool +_08060FAC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x39 + bl SetMonData + b _0806119C + .pool +_08060FC8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3A + bl SetMonData + b _0806119C + .pool +_08060FE4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3B + bl SetMonData + b _0806119C + .pool +_08061000: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3C + bl SetMonData + b _0806119C + .pool +_0806101C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3D + bl SetMonData + b _0806119C + .pool +_08061038: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3E + bl SetMonData + b _0806119C + .pool +_08061054: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3F + bl SetMonData + b _0806119C + .pool +_08061070: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x16 + bl SetMonData + b _0806119C + .pool +_0806108C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x17 + bl SetMonData + b _0806119C + .pool +_080610A8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x18 + bl SetMonData + b _0806119C + .pool +_080610C4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x21 + bl SetMonData + b _0806119C + .pool +_080610E0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x2F + bl SetMonData + b _0806119C + .pool +_080610FC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x30 + bl SetMonData + b _0806119C + .pool +_08061118: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x32 + bl SetMonData + b _0806119C + .pool +_08061134: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x33 + bl SetMonData + b _0806119C + .pool +_08061150: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x34 + bl SetMonData + b _0806119C + .pool +_0806116C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x35 + bl SetMonData + b _0806119C + .pool +_08061188: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x36 + bl SetMonData +_0806119C: + add sp, 0x38 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8060890 + + thumb_func_start sub_80611B0 +sub_80611B0: @ 80611B0 + push {r4-r7,lr} + ldr r1, =gBattlePartyID + ldr r7, =gActiveBank + ldrb r2, [r7] + lsls r0, r2, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + adds r3, r1, 0 + muls r3, r0 + ldr r4, =gBattleBufferA + lsls r2, 9 + adds r0, r4, 0x1 + adds r0, r2, r0 + ldrb r0, [r0] + ldr r1, =gEnemyParty + adds r0, r1 + adds r5, r3, r0 + movs r3, 0 + adds r0, r4, 0x2 + adds r2, r0 + ldrb r2, [r2] + cmp r3, r2 + bcs _08061208 + adds r6, r4, 0 + adds r2, r7, 0 + adds r4, r0, 0 +_080611E6: + adds r1, r5, r3 + ldrb r0, [r2] + lsls r0, 9 + adds r0, 0x3 + adds r0, r3, r0 + adds r0, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + ldrb r0, [r2] + lsls r0, 9 + adds r0, r4 + ldrb r0, [r0] + cmp r3, r0 + bcc _080611E6 +_08061208: + bl OpponentBufferExecCompleted + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80611B0 + + thumb_func_start sub_8061224 +sub_8061224: @ 8061224 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r6, =gActiveBank + ldrb r0, [r6] + lsls r0, 1 + ldr r1, =gBattlePartyID + adds r0, r1 + ldrh r0, [r0] + movs r7, 0x64 + muls r0, r7 + ldr r2, =gEnemyParty + mov r10, r2 + add r0, r10 + movs r1, 0xB + bl GetMonData + mov r8, r0 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldrb r1, [r6] + lsls r0, r1, 1 + ldr r2, =gBattlePartyID + adds r0, r2 + ldrh r0, [r0] + muls r0, r7 + add r0, r10 + bl sub_805DC0C + ldrb r0, [r6] + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r8 + bl sub_806A068 + ldr r0, =gUnknown_0202499C + mov r9, r0 + ldrb r0, [r6] + movs r1, 0x2 + bl sub_80A5C6C + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldrb r0, [r6] + bl sub_80A6138 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r6] + bl sub_80A82E4 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + mov r0, r9 + adds r1, r5, 0 + adds r2, r4, 0 + bl CreateSprite + ldr r4, =gBankSpriteIds + ldrb r1, [r6] + adds r1, r4 + strb r0, [r1] + ldr r5, =gSprites + ldrb r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =0x0000ff10 + strh r1, [r0, 0x24] + ldrb r2, [r6] + adds r0, r2, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x2E] + ldrb r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + mov r1, r8 + strh r1, [r0, 0x32] + ldrb r3, [r6] + adds r0, r3, r4 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + lsls r3, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r2, [r6] + adds r4, r2, r4 + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =gUnknown_020244E4 + adds r2, r1 + ldrb r1, [r2] + bl StartSpriteAnim + ldrb r4, [r6] + lsls r0, r4, 1 + ldr r2, =gBattlePartyID + adds r0, r2 + ldrh r0, [r0] + muls r0, r7 + add r0, r10 + movs r1, 0xB + bl GetMonData + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_805EE54 + ldr r1, =gBattleBankFunc + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_805F994 + str r1, [r0] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8061224 + + thumb_func_start sub_806137C +sub_806137C: @ 806137C + push {r4,lr} + ldr r4, =gActiveBank + ldrb r0, [r4] + ldr r1, =gBattleStruct + ldr r1, [r1] + adds r0, r1 + adds r0, 0x5C + movs r1, 0x6 + strb r1, [r0] + ldr r1, =gBattlePartyID + ldrb r0, [r4] + lsls r2, r0, 1 + adds r2, r1 + ldr r3, =gBattleBufferA + lsls r0, 9 + adds r1, r3, 0x1 + adds r0, r1 + ldrb r0, [r0] + strh r0, [r2] + ldrb r0, [r4] + lsls r1, r0, 9 + adds r3, 0x2 + adds r1, r3 + ldrb r1, [r1] + bl sub_80613DC + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_805FDF0 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_806137C + + thumb_func_start sub_80613DC +sub_80613DC: @ 80613DC + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + lsls r1, 24 + lsrs r1, 24 + adds r0, r6, 0 + bl sub_805EF84 + ldr r0, =gBattlePartyID + lsls r4, r6, 1 + adds r4, r0 + ldr r0, =gBattleBufferA + lsls r1, r6, 9 + adds r0, 0x1 + adds r1, r0 + ldrb r0, [r1] + strh r0, [r4] + ldrh r0, [r4] + movs r1, 0x64 + mov r9, r1 + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + ldr r5, =gEnemyParty + adds r0, r5 + movs r1, 0xB + bl GetMonData + mov r8, r0 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r0, =sub_805D714 + bl CreateInvisibleSpriteWithCallback + ldr r1, =gUnknown_03005D7C + mov r10, r1 + add r10, r6 + mov r1, r10 + strb r0, [r1] + ldrh r0, [r4] + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + adds r0, r5 + adds r1, r6, 0 + bl sub_805DC0C + adds r0, r6, 0 + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r8 + bl sub_806A068 + ldr r0, =gUnknown_0202499C + mov r9, r0 + adds r0, r6, 0 + movs r1, 0x2 + bl sub_80A5C6C + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + adds r0, r6, 0 + bl sub_80A6138 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + bl sub_80A82E4 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + mov r0, r9 + adds r1, r5, 0 + adds r2, r4, 0 + bl CreateSprite + ldr r4, =gBankSpriteIds + adds r4, r6, r4 + strb r0, [r4] + ldr r5, =gSprites + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x2E] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + mov r1, r8 + strh r1, [r0, 0x32] + mov r0, r10 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r4] + strh r1, [r0, 0x30] + mov r0, r10 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x32] + ldrb r0, [r4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + lsls r3, r6, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =gUnknown_020244E4 + adds r6, r1 + ldrb r1, [r6] + bl StartSpriteAnim + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =SpriteCallbackDummy + str r1, [r0] + movs r0, 0 + movs r1, 0xFE + bl sub_80753E8 + mov r1, r10 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r5 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0x2E] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80613DC + + thumb_func_start sub_806156C +sub_806156C: @ 806156C + push {r4-r6,lr} + ldr r1, =gBattleBufferA + ldr r6, =gActiveBank + ldrb r2, [r6] + lsls r0, r2, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r3, [r0] + cmp r3, 0 + bne _080615B4 + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + strb r3, [r0, 0x4] + ldr r1, =gBattleBankFunc + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8061604 + str r1, [r0] + b _080615F0 + .pool +_080615B4: + ldr r5, =gBankSpriteIds + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + ldrb r0, [r6] + bl sub_805EEE0 + ldr r1, =gUnknown_03005D70 + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + bl sub_8072984 + bl OpponentBufferExecCompleted +_080615F0: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_806156C + + thumb_func_start sub_8061604 +sub_8061604: @ 8061604 + push {r4-r6,lr} + ldr r6, =gUnknown_020244D0 + ldr r4, [r6] + ldr r5, =gActiveBank + ldrb r2, [r5] + ldr r1, [r4, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r3, r0, r1 + ldrb r0, [r3, 0x4] + cmp r0, 0 + beq _0806162C + cmp r0, 0x1 + beq _0806165A + b _08061682 + .pool +_0806162C: + ldr r1, [r4] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08061646 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_08061646: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0, 0x4] + b _08061682 +_0806165A: + ldrb r1, [r3] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _08061682 + strb r0, [r3, 0x4] + ldrb r2, [r5] + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x2 + bl move_anim_start_t4 + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_805FB08 + str r1, [r0] +_08061682: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8061604 + + thumb_func_start sub_8061690 +sub_8061690: @ 8061690 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, =gBattleTypeFlags + ldr r2, [r0] + movs r0, 0x80 + lsls r0, 20 + ands r0, r2 + cmp r0, 0 + beq _080616B0 + bl sub_806B830 + b _0806175A + .pool +_080616B0: + ldr r3, =gUnknown_02038BCA + ldrh r1, [r3] + ldr r0, =0x000003fe + cmp r1, r0 + bne _080616C8 + bl sub_81A4CB0 + b _0806175A + .pool +_080616C8: + movs r0, 0x80 + lsls r0, 19 + ands r0, r2 + cmp r0, 0 + beq _08061708 + movs r0, 0x80 + lsls r0, 8 + ands r2, r0 + cmp r2, 0 + beq _08061700 + ldr r0, =gActiveBank + ldrb r0, [r0] + cmp r0, 0x1 + bne _080616F0 + ldrh r0, [r3] + bl sub_81D5588 + b _0806175A + .pool +_080616F0: + ldr r0, =gUnknown_02038BCC + ldrh r0, [r0] + bl sub_81D5588 + b _0806175A + .pool +_08061700: + ldrh r0, [r3] + bl sub_81D5588 + b _0806175A +_08061708: + ldr r0, =0x003f0100 + ands r0, r2 + cmp r0, 0 + beq _0806174C + ldr r0, =0x00808000 + ands r2, r0 + cmp r2, 0 + beq _08061744 + ldr r0, =gActiveBank + ldrb r0, [r0] + cmp r0, 0x1 + bne _08061734 + ldrh r0, [r3] + bl sub_8162AA0 + b _0806175A + .pool +_08061734: + ldr r0, =gUnknown_02038BCC + ldrh r0, [r0] + bl sub_8162AA0 + b _0806175A + .pool +_08061744: + ldrh r0, [r3] + bl sub_8162AA0 + b _0806175A +_0806174C: + movs r0, 0x80 + lsls r0, 4 + ands r0, r2 + cmp r0, 0 + beq _08061760 + bl sub_8165244 +_0806175A: + lsls r0, 24 + lsrs r4, r0, 24 + b _08061796 +_08061760: + movs r0, 0x80 + lsls r0, 8 + ands r2, r0 + cmp r2, 0 + beq _08061788 + ldr r0, =gActiveBank + ldrb r0, [r0] + cmp r0, 0x1 + beq _08061788 + ldr r2, =gTrainers + ldr r0, =gUnknown_02038BCC + ldrh r1, [r0] + b _0806178C + .pool +_08061788: + ldr r2, =gTrainers + ldrh r1, [r3] +_0806178C: + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r4, [r0, 0x3] +_08061796: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + ldr r1, =0x00008040 + ands r0, r1 + cmp r0, 0 + beq _080617C8 + ldr r0, =gActiveBank + ldrb r0, [r0] + bl GetBankIdentity + movs r1, 0x2 + ands r1, r0 + movs r7, 0xC8 + cmp r1, 0 + beq _080617CA + movs r7, 0x98 + b _080617CA + .pool +_080617C8: + movs r7, 0xB0 +_080617CA: + mov r8, r4 + ldr r5, =gActiveBank + ldrb r1, [r5] + mov r0, r8 + bl sub_805DF38 + ldrb r0, [r5] + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r8 + bl template_build_for_pokemon_or_trainer + ldr r6, =gUnknown_0202499C + mov r9, r7 + ldr r1, =gUnknown_083054E0 + mov r2, r8 + lsls r0, r2, 2 + adds r0, r1 + ldrb r0, [r0] + movs r4, 0x8 + subs r4, r0 + lsls r4, 18 + movs r0, 0xA0 + lsls r0, 14 + adds r4, r0 + asrs r4, 16 + ldrb r0, [r5] + bl sub_80A82E4 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + adds r0, r6, 0 + mov r1, r9 + adds r2, r4, 0 + bl CreateSprite + ldr r6, =gBankSpriteIds + ldrb r1, [r5] + adds r1, r6 + strb r0, [r1] + ldr r4, =gSprites + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =0x0000ff10 + strh r1, [r0, 0x24] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x2 + strh r1, [r0, 0x2E] + ldr r1, =gTrainerFrontPicPaletteTable + mov r2, r8 + lsls r0, r2, 3 + adds r0, r1 + ldrh r0, [r0, 0x4] + bl IndexOfSpritePaletteTag + ldrb r1, [r5] + adds r1, r6 + ldrb r1, [r1] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r4 + lsls r0, 4 + ldrb r3, [r2, 0x5] + movs r1, 0xF + ands r1, r3 + orrs r1, r0 + strb r1, [r2, 0x5] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + mov r1, r8 + strh r1, [r0, 0x6] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, =sub_805D7AC + str r1, [r0] + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_805F1D0 + str r1, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8061690 + + thumb_func_start sub_80618D8 +sub_80618D8: @ 80618D8 + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r0, =gBattleTypeFlags + ldr r2, [r0] + movs r0, 0x80 + lsls r0, 20 + ands r0, r2 + cmp r0, 0 + beq _080618F8 + bl sub_806B830 + b _080619A2 + .pool +_080618F8: + ldr r3, =gUnknown_02038BCA + ldrh r1, [r3] + ldr r0, =0x000003fe + cmp r1, r0 + bne _08061910 + bl sub_81A4CB0 + b _080619A2 + .pool +_08061910: + movs r0, 0x80 + lsls r0, 19 + ands r0, r2 + cmp r0, 0 + beq _08061950 + movs r0, 0x80 + lsls r0, 8 + ands r2, r0 + cmp r2, 0 + beq _08061948 + ldr r0, =gActiveBank + ldrb r0, [r0] + cmp r0, 0x1 + bne _08061938 + ldrh r0, [r3] + bl sub_81D5588 + b _080619A2 + .pool +_08061938: + ldr r0, =gUnknown_02038BCC + ldrh r0, [r0] + bl sub_81D5588 + b _080619A2 + .pool +_08061948: + ldrh r0, [r3] + bl sub_81D5588 + b _080619A2 +_08061950: + ldr r0, =0x003f0100 + ands r0, r2 + cmp r0, 0 + beq _08061994 + ldr r0, =0x00808000 + ands r2, r0 + cmp r2, 0 + beq _0806198C + ldr r0, =gActiveBank + ldrb r0, [r0] + cmp r0, 0x1 + bne _0806197C + ldrh r0, [r3] + bl sub_8162AA0 + b _080619A2 + .pool +_0806197C: + ldr r0, =gUnknown_02038BCC + ldrh r0, [r0] + bl sub_8162AA0 + b _080619A2 + .pool +_0806198C: + ldrh r0, [r3] + bl sub_8162AA0 + b _080619A2 +_08061994: + movs r0, 0x80 + lsls r0, 4 + ands r0, r2 + cmp r0, 0 + beq _080619A8 + bl sub_8165244 +_080619A2: + lsls r0, 24 + lsrs r0, 24 + b _080619DE +_080619A8: + movs r0, 0x80 + lsls r0, 8 + ands r2, r0 + cmp r2, 0 + beq _080619D0 + ldr r0, =gActiveBank + ldrb r0, [r0] + cmp r0, 0x1 + beq _080619D0 + ldr r2, =gTrainers + ldr r0, =gUnknown_02038BCC + ldrh r1, [r0] + b _080619D4 + .pool +_080619D0: + ldr r2, =gTrainers + ldrh r1, [r3] +_080619D4: + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x3] +_080619DE: + mov r8, r0 + ldr r6, =gActiveBank + ldrb r1, [r6] + bl sub_805DF38 + ldrb r0, [r6] + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r8 + bl template_build_for_pokemon_or_trainer + ldr r0, =gUnknown_0202499C + ldr r2, =gUnknown_083054E0 + mov r3, r8 + lsls r1, r3, 2 + adds r1, r2 + ldrb r1, [r1] + movs r2, 0x8 + subs r2, r1 + lsls r2, 18 + movs r1, 0xA0 + lsls r1, 14 + adds r2, r1 + asrs r2, 16 + movs r1, 0xB0 + movs r3, 0x1E + bl CreateSprite + ldr r5, =gBankSpriteIds + ldrb r1, [r6] + adds r1, r5 + strb r0, [r1] + ldr r4, =gSprites + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x60 + strh r1, [r0, 0x24] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x20] + adds r1, 0x20 + strh r1, [r0, 0x20] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =0x0000fffe + strh r1, [r0, 0x2E] + ldr r1, =gTrainerFrontPicPaletteTable + mov r2, r8 + lsls r0, r2, 3 + adds r0, r1 + ldrh r0, [r0, 0x4] + bl IndexOfSpritePaletteTag + ldrb r1, [r6] + adds r1, r5 + ldrb r1, [r1] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r4 + lsls r0, 4 + ldrb r3, [r2, 0x5] + movs r1, 0xF + ands r1, r3 + orrs r1, r0 + strb r1, [r2, 0x5] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + mov r3, r8 + strh r3, [r0, 0x6] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, =sub_805D7AC + str r1, [r0] + ldr r1, =gBattleBankFunc + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_805F208 + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80618D8 + + thumb_func_start sub_8061AF0 +sub_8061AF0: @ 8061AF0 + push {r4-r6,lr} + ldr r6, =gBankSpriteIds + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, =gSprites + adds r0, r5 + bl oamt_add_pos2_onto_pos1 + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x23 + strh r1, [r0, 0x2E] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x8C + lsls r1, 1 + strh r1, [r0, 0x32] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r1, [r0, 0x22] + strh r1, [r0, 0x36] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =sub_80A6EEC + str r1, [r0] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =SpriteCallbackDummy + bl oamt_set_x3A_32 + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_805F240 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8061AF0 + + thumb_func_start sub_8061B9C +sub_8061B9C: @ 8061B9C + push {r4-r6,lr} + ldr r6, =gUnknown_020244D0 + ldr r4, [r6] + ldr r5, =gActiveBank + ldrb r2, [r5] + ldr r0, [r4, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r3, r1, r0 + ldrb r0, [r3, 0x4] + cmp r0, 0 + bne _08061BF0 + ldr r1, [r4] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08061BD0 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_08061BD0: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x4] + adds r1, 0x1 + strb r1, [r0, 0x4] + b _08061C2C + .pool +_08061BF0: + ldrb r1, [r3] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _08061C2C + strb r0, [r3, 0x4] + movs r0, 0x10 + movs r1, 0x3F + bl PlaySE12WithPanning + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldrb r0, [r5] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, =sub_8039934 + str r1, [r0] + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_805FAC4 + str r1, [r0] +_08061C2C: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8061B9C + + thumb_func_start sub_8061C48 +sub_8061C48: @ 8061C48 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8061C48 + + thumb_func_start sub_8061C54 +sub_8061C54: @ 8061C54 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8061C54 + + thumb_func_start sub_8061C60 +sub_8061C60: @ 8061C60 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8061C60 + + thumb_func_start sub_8061C6C +sub_8061C6C: @ 8061C6C + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8061C6C + + thumb_func_start sub_8061C78 +sub_8061C78: @ 8061C78 + push {r4-r6,lr} + ldr r6, =gActiveBank + ldrb r0, [r6] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + beq _08061C8A + b _08061D9E +_08061C8A: + ldr r0, =gBattleBufferA + mov r12, r0 + ldrb r2, [r6] + lsls r2, 9 + adds r0, 0x1 + adds r0, r2, r0 + ldrb r0, [r0] + mov r1, r12 + adds r1, 0x2 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + ldr r5, =gUnknown_02038432 + mov r1, r12 + adds r1, 0x3 + adds r2, r1 + ldrb r1, [r2] + strb r1, [r5] + ldr r4, =gMovePowerMoveAnim + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x4 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0x5 + adds r2, r1 + ldrb r1, [r2] + lsls r1, 8 + orrs r3, r1 + strh r3, [r4] + ldr r4, =gMoveDmgMoveAnim + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x6 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0x7 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r3, r1 + mov r1, r12 + adds r1, 0x8 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 16 + orrs r3, r1 + mov r1, r12 + adds r1, 0x9 + adds r2, r1 + ldrb r1, [r2] + lsls r1, 24 + orrs r3, r1 + str r3, [r4] + ldr r3, =gHappinessMoveAnim + ldrb r1, [r6] + lsls r1, 9 + mov r2, r12 + adds r2, 0xA + adds r1, r2 + ldrb r1, [r1] + strb r1, [r3] + ldr r4, =gWeatherMoveAnim + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0xC + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0xD + adds r2, r1 + ldrb r1, [r2] + lsls r1, 8 + orrs r3, r1 + strh r3, [r4] + ldr r3, =gDisableStructMoveAnim + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x10 + adds r2, r1 + str r2, [r3] + ldr r3, =gUnknown_020244BC + ldrb r1, [r6] + lsls r1, 2 + adds r1, r3 + ldr r2, [r2] + str r2, [r1] + ldrb r1, [r5] + bl sub_805DB8C + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _08061D80 + bl OpponentBufferExecCompleted + b _08061D9E + .pool +_08061D80: + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strb r3, [r0, 0x4] + ldr r1, =gBattleBankFunc + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, =bx_move_anim_7 + str r1, [r0] +_08061D9E: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8061C78 + + thumb_func_start bx_move_anim_7 +bx_move_anim_7: @ 8061DB0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r2, =gBattleBufferA + ldr r6, =gActiveBank + ldrb r3, [r6] + lsls r1, r3, 9 + adds r0, r2, 0x1 + mov r10, r0 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, r2, 0x2 + mov r9, r5 + adds r0, r1, r5 + ldrb r0, [r0] + lsls r0, 8 + orrs r4, r0 + adds r2, 0xB + adds r1, r2 + ldrb r1, [r1] + mov r8, r1 + ldr r7, =gUnknown_020244D0 + ldr r5, [r7] + ldr r1, [r5, 0x4] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0, 0x4] + cmp r2, 0x1 + beq _08061E48 + cmp r2, 0x1 + bgt _08061E08 + cmp r2, 0 + beq _08061E12 + b _08061F24 + .pool +_08061E08: + cmp r2, 0x2 + beq _08061E72 + cmp r2, 0x3 + beq _08061EE8 + b _08061F24 +_08061E12: + ldr r1, [r5] + lsls r0, r3, 2 + adds r1, r0, r1 + ldrb r2, [r1] + movs r0, 0xC + ands r0, r2 + cmp r0, 0x4 + bne _08061E34 + movs r0, 0x8 + orrs r0, r2 + strb r0, [r1] + ldrb r2, [r6] + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_08061E34: + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0, 0x4] + b _08061F24 +_08061E48: + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08061F24 + movs r0, 0 + bl sub_805EB9C + adds r0, r4, 0 + bl move_anim_start_t1 + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x2 + strb r1, [r0, 0x4] + b _08061F24 +_08061E72: + ldr r0, =gAnimScriptCallback + ldr r0, [r0] + bl _call_via_r0 + ldr r0, =gAnimScriptActive + ldrb r0, [r0] + cmp r0, 0 + bne _08061F24 + movs r0, 0x1 + bl sub_805EB9C + ldr r0, [r7] + ldrb r2, [r6] + ldr r1, [r0] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08061EC0 + mov r0, r8 + cmp r0, 0x1 + bhi _08061EC0 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x6 + bl move_anim_start_t4 + ldr r0, [r7] + ldrb r1, [r6] + ldr r0, [r0] + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x9 + negs r0, r0 + ands r0, r2 + strb r0, [r1] +_08061EC0: + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + strb r1, [r0, 0x4] + b _08061F24 + .pool +_08061EE8: + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _08061F24 + bl sub_805E394 + ldrb r0, [r6] + lsls r2, r0, 9 + mov r3, r10 + adds r1, r2, r3 + ldrb r1, [r1] + add r2, r9 + ldrb r2, [r2] + lsls r2, 8 + orrs r1, r2 + bl sub_805E94C + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strb r4, [r0, 0x4] + bl OpponentBufferExecCompleted +_08061F24: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end bx_move_anim_7 + + thumb_func_start sub_8061F34 +sub_8061F34: @ 8061F34 + push {r4,r5,lr} + ldr r0, =gUnknown_02022E14 + movs r1, 0 + strh r1, [r0] + ldr r0, =gUnknown_02022E16 + strh r1, [r0] + ldr r5, =gActiveBank + ldrb r4, [r5] + lsls r4, 9 + ldr r0, =gUnknown_02023066 + adds r4, r0 + ldrh r0, [r4] + bl battle_pick_message + ldr r0, =gUnknown_02022E2C + movs r1, 0 + bl battle_show_message_maybe + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =bx_t7_button_a + str r1, [r0] + ldrb r0, [r5] + ldrh r1, [r4] + bl sub_81A57E4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8061F34 + + thumb_func_start sub_8061F90 +sub_8061F90: @ 8061F90 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8061F90 + + thumb_func_start sub_8061F9C +sub_8061F9C: @ 8061F9C + push {lr} + bl sub_8063880 + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8061F9C + + thumb_func_start sub_8061FAC +sub_8061FAC: @ 8061FAC + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8061FAC + + thumb_func_start sub_8061FB8 +sub_8061FB8: @ 8061FB8 + push {r4-r6,lr} + ldr r0, =gBattleTypeFlags + ldr r2, [r0] + movs r0, 0x80 + lsls r0, 10 + ands r0, r2 + cmp r0, 0 + beq _08061FE4 + bl sub_805D19C + adds r2, r0, 0 + lsls r2, 16 + lsrs r2, 16 + movs r0, 0x1 + movs r1, 0xA +_08061FD6: + bl dp01_build_cmdbuf_x21_a_bb +_08061FDA: + bl OpponentBufferExecCompleted + b _08062156 + .pool +_08061FE4: + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 9 + ldr r1, =gUnknown_02023068 + adds r5, r0, r1 + movs r0, 0x93 + lsls r0, 3 + ands r2, r0 + cmp r2, 0 + beq _080620C4 + movs r0, 0xF + bl BattleAI_SetupAIData + bl sub_8130BA4 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + beq _08062022 + cmp r4, 0x5 + bgt _0806201C + cmp r4, 0x4 + beq _08062028 + b _08062040 + .pool +_0806201C: + cmp r4, 0x6 + beq _08062030 + b _08062040 +_08062022: + movs r0, 0x1 + movs r1, 0x4 + b _0806202C +_08062028: + movs r0, 0x1 + movs r1, 0x3 +_0806202C: + movs r2, 0 + b _08061FD6 +_08062030: + ldr r0, =gBankTarget + ldrb r2, [r0] + movs r0, 0x1 + movs r1, 0xF + b _08061FD6 + .pool +_08062040: + ldr r3, =gBattleMoves + lsls r0, r4, 1 + adds r2, r5, r0 + ldrh r1, [r2] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x6] + movs r0, 0x12 + ands r0, r1 + cmp r0, 0 + beq _08062062 + ldr r0, =gBankTarget + ldr r1, =gActiveBank + ldrb r1, [r1] + strb r1, [r0] +_08062062: + ldrh r1, [r2] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x6] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0806209C + movs r0, 0 + bl GetBankByPlayerAI + ldr r5, =gBankTarget + strb r0, [r5] + ldr r0, =gAbsentBankFlags + ldrb r1, [r0] + ldr r2, =gBitTable + ldrb r0, [r5] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _0806209C + movs r0, 0x2 + bl GetBankByPlayerAI + strb r0, [r5] +_0806209C: + ldr r0, =gBankTarget + ldrb r0, [r0] + lsls r0, 8 + orrs r4, r0 + movs r0, 0x1 + movs r1, 0xA + adds r2, r4, 0 + bl dp01_build_cmdbuf_x21_a_bb + b _08061FDA + .pool +_080620C4: + movs r6, 0x3 +_080620C6: + bl Random + adds r4, r0, 0 + ands r4, r6 + lsls r0, r4, 1 + adds r0, r5, r0 + ldrh r2, [r0] + cmp r2, 0 + beq _080620C6 + ldr r1, =gBattleMoves + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x6] + movs r0, 0x12 + ands r0, r1 + cmp r0, 0 + beq _08062108 + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 8 + orrs r4, r0 + movs r0, 0x1 + movs r1, 0xA + adds r2, r4, 0 + bl dp01_build_cmdbuf_x21_a_bb + b _08062152 + .pool +_08062108: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0806213C + bl Random + movs r1, 0x2 + ands r1, r0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r1, 0 + bl GetBankByPlayerAI + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 16 + orrs r2, r4 + movs r0, 0x1 + movs r1, 0xA + bl dp01_build_cmdbuf_x21_a_bb + b _08062152 + .pool +_0806213C: + movs r0, 0 + bl GetBankByPlayerAI + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 16 + orrs r2, r4 + movs r0, 0x1 + movs r1, 0xA + bl dp01_build_cmdbuf_x21_a_bb +_08062152: + bl OpponentBufferExecCompleted +_08062156: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8061FB8 + + thumb_func_start sub_806215C +sub_806215C: @ 806215C + push {lr} + ldr r0, =gActiveBank + ldrb r0, [r0] + lsrs r0, 1 + ldr r1, =gBattleStruct + ldr r1, [r1] + lsls r0, 1 + adds r0, r1 + adds r0, 0xC0 + ldrb r1, [r0] + movs r0, 0x1 + bl dp01_build_cmdbuf_x23_aa_0 + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_806215C + + thumb_func_start sub_8062188 +sub_8062188: @ 8062188 + push {r4-r7,lr} + ldr r0, =gActiveBank + ldrb r0, [r0] + ldr r1, =gBattleStruct + ldr r1, [r1] + adds r0, r1 + movs r2, 0xA5 + lsls r2, 2 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0x6 + bne _08062254 + bl sub_8063A90 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x6 + bne _0806225A + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080621D4 + movs r0, 0x1 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r5, r0, 24 + adds r7, r5, 0 + b _080621E8 + .pool +_080621D4: + movs r0, 0x1 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r7, r0, 24 + movs r0, 0x3 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r5, r0, 24 +_080621E8: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + ldr r1, =0x00808000 + ands r0, r1 + cmp r0, 0 + beq _08062214 + ldr r0, =gActiveBank + ldrb r0, [r0] + cmp r0, 0x1 + bne _08062210 + movs r0, 0 + movs r6, 0x3 + b _08062218 + .pool +_08062210: + movs r0, 0x3 + b _08062216 +_08062214: + movs r0, 0 +_08062216: + movs r6, 0x6 +_08062218: + adds r4, r0, 0 + b _0806221E +_0806221C: + adds r4, 0x1 +_0806221E: + cmp r4, r6 + bge _0806225A + movs r0, 0x64 + muls r0, r4 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _0806221C + ldr r1, =gBattlePartyID + lsls r0, r7, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r4, r0 + beq _0806221C + lsls r0, r5, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r4, r0 + beq _0806221C + b _0806225A + .pool +_08062254: + ldrb r4, [r1] + movs r0, 0x6 + strb r0, [r1] +_0806225A: + ldr r0, =gActiveBank + ldrb r0, [r0] + ldr r1, =gBattleStruct + ldr r1, [r1] + adds r0, r1 + adds r0, 0x5C + strb r4, [r0] + lsls r1, r4, 24 + lsrs r1, 24 + movs r0, 0x1 + movs r2, 0 + bl dp01_build_cmdbuf_x22_a_three_bytes + bl OpponentBufferExecCompleted + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8062188 + + thumb_func_start sub_8062288 +sub_8062288: @ 8062288 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8062288 + + thumb_func_start sub_8062294 +sub_8062294: @ 8062294 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + movs r0, 0 + bl load_gfxc_health_bar + ldr r3, =gBattleBufferA + ldr r0, =gActiveBank + mov r9, r0 + ldrb r4, [r0] + lsls r2, r4, 9 + adds r0, r3, 0x3 + adds r0, r2, r0 + ldrb r1, [r0] + lsls r1, 8 + adds r3, 0x2 + adds r2, r3 + ldrb r0, [r2] + orrs r0, r1 + lsls r0, 16 + asrs r7, r0, 16 + ldr r0, =0x00007fff + cmp r7, r0 + beq _08062324 + ldr r6, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r6 + ldrh r0, [r0] + movs r5, 0x64 + muls r0, r5 + ldr r4, =gEnemyParty + adds r0, r4 + movs r1, 0x3A + bl GetMonData + mov r8, r0 + mov r1, r9 + ldrb r0, [r1] + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + muls r0, r5 + adds r0, r4 + movs r1, 0x39 + bl GetMonData + adds r3, r0, 0 + mov r1, r9 + ldrb r0, [r1] + ldr r1, =gUnknown_03005D70 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + mov r2, r8 + bl sub_807294C + b _0806234E + .pool +_08062324: + ldr r1, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x3A + bl GetMonData + adds r2, r0, 0 + mov r1, r9 + ldrb r0, [r1] + ldr r1, =gUnknown_03005D70 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + movs r3, 0 + bl sub_807294C +_0806234E: + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_805FA70 + str r1, [r0] + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8062294 + + thumb_func_start sub_8062384 +sub_8062384: @ 8062384 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8062384 + + thumb_func_start sub_8062390 +sub_8062390: @ 8062390 + push {r4,lr} + ldr r4, =gActiveBank + ldrb r0, [r4] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _080623E4 + ldr r0, =gUnknown_03005D70 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + ldr r2, =gBattlePartyID + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gEnemyParty + adds r1, r2 + movs r2, 0x9 + bl healthbar_draw_field_maybe + ldrb r2, [r4] + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_805FEB8 + str r1, [r0] +_080623E4: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8062390 + + thumb_func_start sub_8062408 +sub_8062408: @ 8062408 + push {r4,r5,lr} + ldr r5, =gActiveBank + ldrb r0, [r5] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _08062458 + ldr r4, =gBattleBufferA + ldrb r3, [r5] + lsls r3, 9 + adds r0, r4, 0x1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, 0x2 + adds r1, r3, r1 + ldrb r1, [r1] + adds r2, r4, 0x3 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, 8 + orrs r1, r2 + adds r2, r4, 0x4 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, 16 + orrs r1, r2 + adds r4, 0x5 + adds r3, r4 + ldrb r2, [r3] + lsls r2, 24 + orrs r1, r2 + bl move_anim_start_t2_for_situation + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_805FEB8 + str r1, [r0] +_08062458: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8062408 + + thumb_func_start sub_8062470 +sub_8062470: @ 8062470 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8062470 + + thumb_func_start sub_806247C +sub_806247C: @ 806247C + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_806247C + + thumb_func_start sub_8062488 +sub_8062488: @ 8062488 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8062488 + + thumb_func_start sub_8062494 +sub_8062494: @ 8062494 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8062494 + + thumb_func_start sub_80624A0 +sub_80624A0: @ 80624A0 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_80624A0 + + thumb_func_start sub_80624AC +sub_80624AC: @ 80624AC + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_80624AC + + thumb_func_start sub_80624B8 +sub_80624B8: @ 80624B8 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_80624B8 + + thumb_func_start sub_80624C4 +sub_80624C4: @ 80624C4 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_80624C4 + + thumb_func_start sub_80624D0 +sub_80624D0: @ 80624D0 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_80624D0 + + thumb_func_start sub_80624DC +sub_80624DC: @ 80624DC + push {lr} + ldr r2, =gUnknown_02022D0C + ldrb r1, [r2] + movs r0, 0x80 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_80624DC + + thumb_func_start sub_80624F8 +sub_80624F8: @ 80624F8 + push {lr} + ldr r3, =gUnknown_02022D0C + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + movs r1, 0x7F + ands r1, r0 + ldrb r2, [r3] + movs r0, 0x80 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_80624F8 + + thumb_func_start sub_8062530 +sub_8062530: @ 8062530 + push {lr} + ldr r2, =gUnknown_02022D0C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_8062530 + + thumb_func_start sub_8062548 +sub_8062548: @ 8062548 + push {lr} + ldr r3, =gUnknown_02022D0C + ldr r1, [r3] + lsls r1, 24 + lsrs r1, 31 + movs r0, 0x1 + eors r1, r0 + lsls r1, 7 + ldrb r2, [r3] + movs r0, 0x7F + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_8062548 + + thumb_func_start dp01t_29_7_blink +dp01t_29_7_blink: @ 8062570 + push {r4,lr} + ldr r3, =gSprites + ldr r2, =gBankSpriteIds + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + bge _080625A4 + bl OpponentBufferExecCompleted + b _080625CE + .pool +_080625A4: + ldr r1, =gDoingBattleAnim + movs r0, 0x1 + strb r0, [r1] + ldrb r0, [r4] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0 + strh r1, [r0, 0x30] + ldrb r0, [r4] + bl sub_80769F4 + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =bx_blink_t7 + str r1, [r0] +_080625CE: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end dp01t_29_7_blink + + thumb_func_start sub_80625E0 +sub_80625E0: @ 80625E0 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_80625E0 + + thumb_func_start sub_80625EC +sub_80625EC: @ 80625EC + push {r4,lr} + ldr r4, =gActiveBank + ldrb r0, [r4] + bl GetBankSide + lsls r0, 24 + movs r3, 0x3F + cmp r0, 0 + bne _08062600 + movs r3, 0xC0 +_08062600: + ldr r2, =gBattleBufferA + ldrb r1, [r4] + lsls r1, 9 + adds r0, r2, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + lsls r1, r3, 24 + asrs r1, 24 + bl PlaySE12WithPanning + bl OpponentBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80625EC + + thumb_func_start sub_8062630 +sub_8062630: @ 8062630 + push {r4,r5,lr} + ldr r4, =gBattleBufferA + ldr r5, =gActiveBank + ldrb r0, [r5] + lsls r3, r0, 9 + adds r0, r4, 0x3 + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, 0 + beq _0806266C + bl sub_805EA60 + ldrb r1, [r5] + lsls r1, 9 + adds r0, r4, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, r4, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + bl PlayBGM + b _08062680 + .pool +_0806266C: + adds r0, r4, 0x1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, 0x2 + adds r1, r3, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + bl PlayFanfare +_08062680: + bl OpponentBufferExecCompleted + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8062630 + + thumb_func_start sub_806268C +sub_806268C: @ 806268C + push {lr} + ldr r1, =gBattlePartyID + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x19 + movs r2, 0x5 + bl PlayCry3 + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_806268C + + thumb_func_start dp01t_2E_7_battle_intro +dp01t_2E_7_battle_intro: @ 80626C8 + push {lr} + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + bl battle_intro_launch + ldr r2, =gUnknown_020243FC + ldrh r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r2] + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end dp01t_2E_7_battle_intro + + thumb_func_start sub_80626FC +sub_80626FC: @ 80626FC + push {r4-r6,lr} + ldr r5, =gBankSpriteIds + ldr r6, =gActiveBank + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + bl oamt_add_pos2_onto_pos1 + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x23 + strh r1, [r0, 0x2E] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x8C + lsls r1, 1 + strh r1, [r0, 0x32] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x22] + strh r1, [r0, 0x36] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =sub_80A6EEC + str r1, [r0] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =sub_806280C + bl oamt_set_x3A_32 + ldr r0, =sub_8062828 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r4, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r4 + ldrb r0, [r6] + strh r0, [r1, 0x8] + ldr r3, =gUnknown_020244D0 + ldr r0, [r3] + ldrb r2, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080627BE + ldr r0, =gUnknown_020244B4 + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + ldr r1, =sub_8073C30 + str r1, [r0] +_080627BE: + ldr r0, [r3] + ldr r2, [r0, 0x8] + ldrb r0, [r2, 0x9] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x9] + ldr r1, =gBattleBankFunc + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, =nullsub_26 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80626FC + + thumb_func_start sub_806280C +sub_806280C: @ 806280C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x6] + bl sub_805DFE4 + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_806280C + + thumb_func_start sub_8062828 +sub_8062828: @ 8062828 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r7, =gActiveBank + ldrb r0, [r7] + mov r9, r0 + ldr r1, =gTasks + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x8] + strb r0, [r7] + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _0806286C + ldr r0, =gBattleTypeFlags + ldr r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0806286C + movs r0, 0x80 + lsls r0, 8 + ands r1, r0 + cmp r1, 0 + beq _080628A0 +_0806286C: + ldr r0, =gBattleBufferA + ldrb r1, [r7] + lsls r2, r1, 9 + adds r0, 0x1 + adds r2, r0 + ldr r0, =gBattlePartyID + lsls r1, 1 + adds r1, r0 + ldrh r0, [r1] + strb r0, [r2] + ldrb r0, [r7] + movs r1, 0 + bl sub_80613DC + b _080628E0 + .pool +_080628A0: + ldr r4, =gBattleBufferA + ldrb r0, [r7] + lsls r1, r0, 9 + adds r4, 0x1 + adds r1, r4 + ldr r6, =gBattlePartyID + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, 0 + bl sub_80613DC + ldrb r0, [r7] + movs r5, 0x2 + eors r0, r5 + strb r0, [r7] + ldrb r0, [r7] + lsls r1, r0, 9 + adds r1, r4 + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, 0 + bl sub_80613DC + ldrb r0, [r7] + eors r0, r5 + strb r0, [r7] +_080628E0: + ldr r1, =gBattleBankFunc + ldr r2, =gActiveBank + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_805F560 + str r1, [r0] + mov r0, r9 + strb r0, [r2] + mov r0, r8 + bl DestroyTask + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8062828 + + thumb_func_start dp01t_30_7_0803D67C +dp01t_30_7_0803D67C: @ 8062918 + push {r4-r7,lr} + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08062948 + adds r0, r2, 0 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _08062948 + bl OpponentBufferExecCompleted + b _08062A12 + .pool +_08062948: + ldr r4, =gUnknown_020244D0 + ldr r0, [r4] + ldr r3, =gActiveBank + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + ldr r1, =gBattleBufferA + ldrb r2, [r3] + lsls r0, r2, 9 + adds r1, 0x2 + adds r0, r1 + ldrb r0, [r0] + adds r7, r3, 0 + cmp r0, 0 + beq _080629B4 + ldr r0, [r4] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r3, r0, r1 + ldrb r2, [r3, 0x1] + lsls r1, r2, 27 + lsrs r0, r1, 28 + cmp r0, 0x1 + bhi _080629AC + adds r0, 0x1 + movs r1, 0xF + ands r0, r1 + lsls r0, 1 + movs r1, 0x1F + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x1] + b _08062A12 + .pool +_080629AC: + movs r0, 0x1F + negs r0, r0 + ands r0, r2 + strb r0, [r3, 0x1] +_080629B4: + adds r5, r7, 0 + ldrb r0, [r5] + lsls r3, r0, 9 + ldr r4, =gUnknown_02023068 + adds r1, r3, r4 + subs r2, r4, 0x3 + adds r2, r3, r2 + ldrb r2, [r2] + subs r4, 0x2 + adds r3, r4 + ldrb r3, [r3] + bl sub_80735DC + ldr r2, =gUnknown_020244B4 + ldrb r1, [r5] + adds r1, r2 + movs r3, 0 + strb r0, [r1] + ldr r6, =gUnknown_020244D0 + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strb r3, [r0, 0x5] + ldrb r2, [r5] + lsls r0, r2, 9 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _08062A06 + ldr r0, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + movs r1, 0x5D + strb r1, [r0, 0x5] +_08062A06: + ldr r0, =gBattleBankFunc + ldrb r1, [r7] + lsls r1, 2 + adds r1, r0 + ldr r0, =bx_0803D790_t7 + str r0, [r1] +_08062A12: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end dp01t_30_7_0803D67C + + thumb_func_start bx_0803D790_t7 +bx_0803D790_t7: @ 8062A2C + push {r4,lr} + ldr r4, =gUnknown_020244D0 + ldr r0, [r4] + ldr r3, =gActiveBank + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x5] + adds r2, r1, 0x1 + strb r2, [r0, 0x5] + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0x5C + bls _08062A64 + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strb r1, [r0, 0x5] + bl OpponentBufferExecCompleted +_08062A64: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end bx_0803D790_t7 + + thumb_func_start sub_8062A74 +sub_8062A74: @ 8062A74 + push {lr} + ldr r0, =gUnknown_020244D0 + ldr r1, [r0] + ldr r0, =gActiveBank + ldrb r3, [r0] + ldr r1, [r1, 0x4] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08062AA6 + ldr r2, =gTasks + ldr r0, =gUnknown_020244B4 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, =sub_8073C30 + str r1, [r0] +_08062AA6: + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_8062A74 + + thumb_func_start sub_8062AC4 +sub_8062AC4: @ 8062AC4 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8062AC4 + + thumb_func_start sub_8062AD0 +sub_8062AD0: @ 8062AD0 + push {r4,lr} + ldr r4, =gActiveBank + ldrb r0, [r4] + bl sub_80A6A90 + lsls r0, 24 + cmp r0, 0 + beq _08062B16 + ldr r3, =gSprites + ldr r0, =gBankSpriteIds + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + ldr r0, =gBattleBufferA + lsls r1, 9 + adds r0, 0x1 + adds r1, r0 + adds r2, 0x3E + movs r0, 0x1 + ldrb r1, [r1] + ands r1, r0 + lsls r1, 2 + ldrb r3, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + bl sub_805E408 +_08062B16: + bl OpponentBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8062AD0 + + thumb_func_start dp01t_34_7_move_anim_start_t3 +dp01t_34_7_move_anim_start_t3: @ 8062B30 + push {r4-r6,lr} + sub sp, 0x4 + ldr r6, =gActiveBank + ldrb r0, [r6] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _08062B88 + ldr r5, =gBattleBufferA + ldrb r2, [r6] + lsls r1, r2, 9 + adds r0, r5, 0x1 + adds r0, r1, r0 + ldrb r3, [r0] + adds r0, r5, 0x2 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, 0x3 + adds r1, r5 + ldrb r0, [r1] + lsls r0, 8 + orrs r4, r0 + str r4, [sp] + adds r0, r2, 0 + adds r1, r2, 0 + bl move_anim_start_t3 + lsls r0, 24 + cmp r0, 0 + beq _08062B7C + bl OpponentBufferExecCompleted + b _08062B88 + .pool +_08062B7C: + ldr r0, =gBattleBankFunc + ldrb r1, [r6] + lsls r1, 2 + adds r1, r0 + ldr r0, =bx_803B0F4 + str r0, [r1] +_08062B88: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end dp01t_34_7_move_anim_start_t3 + + thumb_func_start sub_8062B98 +sub_8062B98: @ 8062B98 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8062B98 + + thumb_func_start sub_8062BA4 +sub_8062BA4: @ 8062BA4 + push {lr} + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8062BA4 + + thumb_func_start sub_8062BB0 +sub_8062BB0: @ 8062BB0 + push {lr} + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x6 + ands r0, r1 + cmp r0, 0x2 + bne _08062BDA + ldr r2, =gMain + ldr r0, =0x00000439 + adds r3, r2, r0 + ldrb r1, [r3] + movs r0, 0x3 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + ldr r0, =gUnknown_03005D00 + ldr r0, [r0] + str r0, [r2] + ldr r0, [r2, 0x8] + bl SetMainCallback2 +_08062BDA: + bl OpponentBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_8062BB0 + + thumb_func_start nullsub_91 +nullsub_91: @ 8062BF4 + bx lr + thumb_func_end nullsub_91 + + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s new file mode 100644 index 0000000000..821a7bbb26 --- /dev/null +++ b/asm/battle_controller_player.s @@ -0,0 +1,10419 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start nullsub_21 +nullsub_21: @ 8057458 + bx lr + thumb_func_end nullsub_21 + + thumb_func_start SetBankFuncToPlayerBufferRunCommand +SetBankFuncToPlayerBufferRunCommand: @ 805745C + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =PlayerBufferRunCommand + str r1, [r0] + ldr r0, =gDoingBattleAnim + movs r1, 0 + strb r1, [r0] + ldr r0, =gUnknown_020244CC + strb r1, [r0] + bx lr + .pool + thumb_func_end SetBankFuncToPlayerBufferRunCommand + + thumb_func_start PlayerBufferExecCompleted +PlayerBufferExecCompleted: @ 805748C + push {r4,lr} + sub sp, 0x4 + ldr r1, =gBattleBankFunc + ldr r4, =gActiveBank + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =PlayerBufferRunCommand + str r1, [r0] + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080574E0 + bl link_get_multiplayer_id + mov r1, sp + strb r0, [r1] + movs r0, 0x2 + movs r1, 0x4 + mov r2, sp + bl PrepareBufferDataTransferLink + ldr r1, =gBattleBufferA + ldrb r0, [r4] + lsls r0, 9 + adds r0, r1 + movs r1, 0x38 + strb r1, [r0] + b _080574F2 + .pool +_080574E0: + ldr r2, =gBattleExecBuffer + ldr r1, =gBitTable + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + ldr r0, [r2] + bics r0, r1 + str r0, [r2] +_080574F2: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end PlayerBufferExecCompleted + + thumb_func_start PlayerBufferRunCommand +PlayerBufferRunCommand: @ 8057504 + push {lr} + ldr r2, =gBattleExecBuffer + ldr r1, =gBitTable + ldr r0, =gActiveBank + ldrb r3, [r0] + lsls r0, r3, 2 + adds r0, r1 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08057550 + ldr r0, =gBattleBufferA + lsls r1, r3, 9 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0x38 + bhi _0805754C + ldr r0, =gPlayerBufferCommands + ldrb r1, [r1] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + bl _call_via_r0 + b _08057550 + .pool +_0805754C: + bl PlayerBufferExecCompleted +_08057550: + pop {r0} + bx r0 + thumb_func_end PlayerBufferRunCommand + + thumb_func_start bx_0802E404 +bx_0802E404: @ 8057554 + push {lr} + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x24 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _08057576 + bl PlayerBufferExecCompleted +_08057576: + pop {r0} + bx r0 + .pool + thumb_func_end bx_0802E404 + + thumb_func_start sub_8057588 +sub_8057588: @ 8057588 + push {r4-r7,lr} + ldr r3, =gBattleBufferA + ldr r4, =gActiveBank + ldrb r0, [r4] + lsls r2, r0, 9 + adds r1, r3, 0x2 + adds r1, r2, r1 + ldrb r5, [r1] + adds r3, 0x3 + adds r2, r3 + ldrb r1, [r2] + lsls r1, 8 + orrs r5, r1 + movs r1, 0x1 + movs r2, 0x7 + movs r3, 0x1 + bl dp11b_obj_instanciate + ldrb r0, [r4] + movs r1, 0 + movs r2, 0x7 + movs r3, 0x1 + bl dp11b_obj_instanciate + ldr r0, =gMain + ldrh r1, [r0, 0x30] + movs r0, 0xF0 + ands r0, r1 + cmp r0, 0 + beq _080575EC + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r0, [r0, 0x13] + cmp r0, 0x2 + bne _080575EC + ldr r1, =gUnknown_020244CC + ldrb r0, [r1] + adds r0, 0x1 + b _080575F0 + .pool +_080575EC: + ldr r1, =gUnknown_020244CC + movs r0, 0 +_080575F0: + strb r0, [r1] + ldr r0, =gMain + ldrh r2, [r0, 0x2E] + movs r3, 0x1 + adds r0, r3, 0 + ands r0, r2 + cmp r0, 0 + beq _08057658 + movs r0, 0x5 + bl PlaySE + ldr r1, =gUnknown_020244AC + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _08057640 + cmp r0, 0x1 + bgt _08057630 + cmp r0, 0 + beq _0805763A + b _080577C2 + .pool +_08057630: + cmp r0, 0x2 + beq _08057646 + cmp r0, 0x3 + beq _0805764C + b _080577C2 +_0805763A: + movs r0, 0x1 + movs r1, 0 + b _080577BC +_08057640: + movs r0, 0x1 + movs r1, 0x1 + b _080577BC +_08057646: + movs r0, 0x1 + movs r1, 0x2 + b _080577BC +_0805764C: + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0 + bl dp01_build_cmdbuf_x21_a_bb + b _080577C2 +_08057658: + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + beq _08057698 + ldr r5, =gUnknown_020244AC + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _08057674 + b _080577E8 +_08057674: + movs r0, 0x5 + bl PlaySE + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + bl sub_8059CF8 + ldrb r1, [r4] + adds r1, r5 + ldrb r0, [r1] + movs r2, 0x1 + b _08057732 + .pool +_08057698: + movs r0, 0x10 + ands r0, r2 + cmp r0, 0 + beq _080576D8 + ldr r5, =gUnknown_020244AC + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _080576B4 + b _080577E8 +_080576B4: + movs r0, 0x5 + bl PlaySE + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + bl sub_8059CF8 + ldrb r1, [r4] + adds r1, r5 + ldrb r0, [r1] + movs r2, 0x1 + b _08057732 + .pool +_080576D8: + movs r7, 0x40 + adds r0, r7, 0 + ands r0, r2 + cmp r0, 0 + beq _08057700 + ldr r5, =gUnknown_020244AC + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080577E8 + b _0805771A + .pool +_08057700: + movs r0, 0x80 + ands r0, r2 + cmp r0, 0 + beq _0805774C + ldr r5, =gUnknown_020244AC + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _080577E8 +_0805771A: + movs r0, 0x5 + bl PlaySE + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + bl sub_8059CF8 + ldrb r1, [r4] + adds r1, r5 + ldrb r0, [r1] + movs r2, 0x2 +_08057732: + eors r0, r2 + strb r0, [r1] + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + movs r1, 0 + bl sub_8059CB4 + b _080577E8 + .pool +_0805774C: + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + bne _0805775A + ldrb r0, [r1] + cmp r0, 0x3B + bls _080577DC +_0805775A: + ldr r4, =gBattleTypeFlags + ldr r0, [r4] + ands r0, r3 + cmp r0, 0 + beq _080577E8 + ldr r6, =gActiveBank + ldrb r0, [r6] + bl GetBankIdentity + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _080577E8 + movs r0, 0 + bl GetBankByPlayerAI + ldr r1, =gAbsentBankFlags + ldrb r1, [r1] + ldr r2, =gBitTable + lsls r0, 24 + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _080577E8 + ldr r0, [r4] + ands r0, r7 + cmp r0, 0 + bne _080577E8 + ldr r0, =gBattleBufferA + ldrb r1, [r6] + lsls r1, 9 + adds r0, 0x1 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0x1 + bne _080577B2 + cmp r5, 0xC + bhi _080577E8 + adds r0, r5, 0 + movs r1, 0x1 + bl AddBagItem +_080577B2: + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + movs r1, 0xC +_080577BC: + movs r2, 0 + bl dp01_build_cmdbuf_x21_a_bb +_080577C2: + bl PlayerBufferExecCompleted + b _080577E8 + .pool +_080577DC: + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + beq _080577E8 + bl sub_8073314 +_080577E8: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8057588 + + thumb_func_start sub_80577F0 +sub_80577F0: @ 80577F0 + push {r4,lr} + ldr r4, =gActiveBank + ldrb r0, [r4] + movs r1, 0x1 + bl dp11b_obj_free + ldrb r0, [r4] + movs r1, 0 + bl dp11b_obj_free + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8057824 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80577F0 + + thumb_func_start sub_8057824 +sub_8057824: @ 8057824 + push {r4,r5,lr} + sub sp, 0x4 + ldr r1, =gUnknown_0831C5F8 + mov r0, sp + movs r2, 0x4 + bl memcpy + ldr r0, =gUnknown_03005D74 + ldrb r0, [r0] + movs r1, 0x1 + movs r2, 0xF + movs r3, 0x1 + bl dp11b_obj_instanciate + movs r4, 0 + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + cmp r0, 0 + beq _08057866 +_0805784A: + ldr r0, =gUnknown_03005D74 + ldrb r0, [r0] + cmp r4, r0 + beq _0805785C + lsls r0, r4, 24 + lsrs r0, 24 + movs r1, 0x1 + bl dp11b_obj_free +_0805785C: + adds r4, 0x1 + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + cmp r4, r0 + blt _0805784A +_08057866: + ldr r2, =gMain + ldrh r1, [r2, 0x2C] + movs r0, 0xF0 + ands r0, r1 + cmp r0, 0 + beq _0805789C + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r0, [r0, 0x13] + cmp r0, 0x2 + bne _0805789C + ldr r1, =gUnknown_020244CC + ldrb r0, [r1] + adds r0, 0x1 + b _080578A0 + .pool +_0805789C: + ldr r1, =gUnknown_020244CC + movs r0, 0 +_080578A0: + strb r0, [r1] + ldrh r2, [r2, 0x2E] + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + beq _08057910 + movs r0, 0x5 + bl PlaySE + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r4, =gUnknown_03005D74 + ldrb r0, [r4] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, =sub_8039B2C + str r1, [r0] + ldr r1, =gUnknown_020244B0 + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r2, [r0] + ldrb r0, [r4] + lsls r0, 8 + orrs r2, r0 + movs r0, 0x1 + movs r1, 0xA + bl dp01_build_cmdbuf_x21_a_bb + ldrb r0, [r4] + movs r1, 0x1 + bl dp11b_obj_free + bl PlayerBufferExecCompleted + b _08057BC8 + .pool +_08057910: + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + bne _0805791E + ldrb r0, [r1] + cmp r0, 0x3B + bls _0805798C +_0805791E: + movs r0, 0x5 + bl PlaySE + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r5, =gUnknown_03005D74 + ldrb r0, [r5] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, =sub_8039B2C + str r1, [r0] + ldr r1, =gBattleBankFunc + ldr r4, =gActiveBank + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8057BFC + str r1, [r0] + ldrb r0, [r4] + movs r1, 0x1 + movs r2, 0x7 + movs r3, 0x1 + bl dp11b_obj_instanciate + ldrb r0, [r4] + movs r1, 0 + movs r2, 0x7 + movs r3, 0x1 + bl dp11b_obj_instanciate + ldrb r0, [r5] + movs r1, 0x1 + bl dp11b_obj_free + b _08057BC8 + .pool +_0805798C: + movs r0, 0x60 + ands r0, r2 + cmp r0, 0 + bne _08057996 + b _08057AB0 +_08057996: + movs r0, 0x5 + bl PlaySE + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r3, =gUnknown_03005D74 + ldrb r0, [r3] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, =sub_8039B2C + str r1, [r0] + adds r5, r3, 0 +_080579B8: + ldrb r0, [r5] + bl GetBankIdentity + lsls r0, 24 + lsrs r1, r0, 24 + movs r4, 0 + mov r0, sp + b _080579E2 + .pool +_080579D8: + adds r4, 0x1 + cmp r4, 0x3 + bgt _080579E8 + mov r2, sp + adds r0, r2, r4 +_080579E2: + ldrb r0, [r0] + cmp r1, r0 + bne _080579D8 +_080579E8: + subs r4, 0x1 + cmp r4, 0 + bge _080579F0 + movs r4, 0x4 +_080579F0: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + bl GetBankByPlayerAI + strb r0, [r5] + ldr r1, =gNoOfAllBanks + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + beq _080579E8 + movs r4, 0 + ldrb r0, [r5] + bl GetBankIdentity + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08057A6E + cmp r0, 0x1 + bgt _08057A28 + cmp r0, 0 + beq _08057A32 + b _08057A70 + .pool +_08057A28: + cmp r0, 0x2 + beq _08057A32 + cmp r0, 0x3 + beq _08057A6E + b _08057A70 +_08057A32: + ldr r2, =gActiveBank + ldrb r0, [r2] + ldrb r1, [r5] + cmp r0, r1 + bne _08057A6E + ldr r1, =gBattlePartyID + ldrb r2, [r2] + lsls r0, r2, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gUnknown_020244B0 + adds r2, r1 + ldrb r1, [r2] + adds r1, 0xD + bl GetMonData + ldr r2, =gBattleMoves + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r1, [r1, 0x6] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08057A70 +_08057A6E: + adds r4, 0x1 +_08057A70: + ldr r0, =gAbsentBankFlags + ldrb r1, [r0] + ldr r2, =gBitTable + ldrb r0, [r5] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + ldr r0, =gUnknown_03005D74 + cmp r1, 0 + beq _08057A88 + movs r4, 0 +_08057A88: + cmp r4, 0 + beq _080579B8 + b _08057BB0 + .pool +_08057AB0: + movs r0, 0x90 + ands r0, r2 + cmp r0, 0 + bne _08057ABA + b _08057BC8 +_08057ABA: + movs r0, 0x5 + bl PlaySE + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r3, =gUnknown_03005D74 + ldrb r0, [r3] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, =sub_8039B2C + str r1, [r0] + adds r5, r3, 0 +_08057ADC: + ldrb r0, [r5] + bl GetBankIdentity + lsls r0, 24 + lsrs r1, r0, 24 + movs r4, 0 + mov r0, sp + b _08057B06 + .pool +_08057AFC: + adds r4, 0x1 + cmp r4, 0x3 + bgt _08057B0C + mov r2, sp + adds r0, r2, r4 +_08057B06: + ldrb r0, [r0] + cmp r1, r0 + bne _08057AFC +_08057B0C: + adds r4, 0x1 + cmp r4, 0x3 + ble _08057B14 + movs r4, 0 +_08057B14: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + bl GetBankByPlayerAI + strb r0, [r5] + ldr r1, =gNoOfAllBanks + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + beq _08057B0C + movs r4, 0 + ldrb r0, [r5] + bl GetBankIdentity + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08057B92 + cmp r0, 0x1 + bgt _08057B4C + cmp r0, 0 + beq _08057B56 + b _08057B94 + .pool +_08057B4C: + cmp r0, 0x2 + beq _08057B56 + cmp r0, 0x3 + beq _08057B92 + b _08057B94 +_08057B56: + ldr r2, =gActiveBank + ldrb r0, [r2] + ldrb r1, [r5] + cmp r0, r1 + bne _08057B92 + ldr r1, =gBattlePartyID + ldrb r2, [r2] + lsls r0, r2, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gUnknown_020244B0 + adds r2, r1 + ldrb r1, [r2] + adds r1, 0xD + bl GetMonData + ldr r2, =gBattleMoves + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r1, [r1, 0x6] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08057B94 +_08057B92: + adds r4, 0x1 +_08057B94: + ldr r0, =gAbsentBankFlags + ldrb r1, [r0] + ldr r2, =gBitTable + ldrb r0, [r5] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + ldr r0, =gUnknown_03005D74 + cmp r1, 0 + beq _08057BAC + movs r4, 0 +_08057BAC: + cmp r4, 0 + beq _08057ADC +_08057BB0: + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, =sub_8039AD8 + str r1, [r0] +_08057BC8: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8057824 + + thumb_func_start sub_8057BFC +sub_8057BFC: @ 8057BFC + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r0, 0 + mov r8, r0 + ldr r3, =gActiveBank + ldrb r0, [r3] + lsls r0, 9 + ldr r1, =gUnknown_02023068 + adds r6, r0, r1 + ldr r2, =gMain + ldrh r1, [r2, 0x2C] + movs r0, 0xF0 + ands r0, r1 + adds r7, r3, 0 + cmp r0, 0 + beq _08057C44 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r0, [r0, 0x13] + cmp r0, 0x2 + bne _08057C44 + ldr r1, =gUnknown_020244CC + ldrb r0, [r1] + adds r0, 0x1 + b _08057C48 + .pool +_08057C44: + ldr r1, =gUnknown_020244CC + movs r0, 0 +_08057C48: + strb r0, [r1] + ldrh r2, [r2, 0x2E] + movs r5, 0x1 + adds r0, r5, 0 + ands r0, r2 + cmp r0, 0 + bne _08057C58 + b _08057E04 +_08057C58: + movs r0, 0x5 + bl PlaySE + ldr r1, =gUnknown_020244B0 + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + lsls r0, 1 + adds r1, r6, r0 + ldrh r0, [r1] + cmp r0, 0xAE + bne _08057C98 + ldrb r0, [r6, 0x12] + movs r4, 0 + cmp r0, 0x7 + beq _08057CA6 + ldrb r1, [r6, 0x13] + movs r0, 0x7 + eors r1, r0 + negs r0, r1 + orrs r0, r1 + asrs r4, r0, 31 + movs r0, 0x10 + ands r4, r0 + b _08057CA6 + .pool +_08057C98: + ldr r2, =gBattleMoves + ldrh r1, [r1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r4, [r0, 0x6] +_08057CA6: + movs r0, 0x10 + ands r0, r4 + cmp r0, 0 + beq _08057CC4 + ldr r0, =gUnknown_03005D74 + ldr r1, =gActiveBank + ldrb r1, [r1] + strb r1, [r0] + b _08057CDE + .pool +_08057CC4: + ldr r0, =gActiveBank + ldrb r0, [r0] + bl GetBankIdentity + adds r1, r0, 0 + movs r2, 0x1 + movs r0, 0x1 + ands r0, r1 + eors r0, r2 + bl GetBankByPlayerAI + ldr r1, =gUnknown_03005D74 + strb r0, [r1] +_08057CDE: + ldr r5, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r3, [r0] + lsls r2, r3, 9 + adds r1, r5, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r7, r0, 0 + cmp r1, 0 + bne _08057D18 + movs r0, 0x2 + ands r0, r4 + cmp r0, 0 + beq _08057D5A + adds r0, r5, 0x2 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, 0 + bne _08057D5A + movs r0, 0x1 + add r8, r0 + b _08057D5A + .pool +_08057D18: + movs r0, 0x7D + ands r0, r4 + cmp r0, 0 + bne _08057D24 + movs r0, 0x1 + add r8, r0 +_08057D24: + ldr r0, =gUnknown_020244B0 + adds r0, r3, r0 + adds r1, r6, 0 + adds r1, 0x8 + ldrb r0, [r0] + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _08057D62 + movs r0, 0x12 + ands r0, r4 + cmp r0, 0 + bne _08057D5A + movs r0, 0 + bl sub_8069DEC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _08057D5A + ldrb r0, [r7] + bl sub_8069F34 + ldr r1, =gUnknown_03005D74 + strb r0, [r1] + movs r0, 0 + mov r8, r0 +_08057D5A: + ldr r7, =gActiveBank + mov r0, r8 + cmp r0, 0 + bne _08057D80 +_08057D62: + ldr r1, =gUnknown_020244B0 + ldrb r0, [r7] + adds r0, r1 + ldrb r2, [r0] + ldr r0, =gUnknown_03005D74 + ldrb r0, [r0] + lsls r0, 8 + orrs r2, r0 + b _08057E1C + .pool +_08057D80: + ldr r1, =gBattleBankFunc + ldrb r0, [r7] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8057824 + str r1, [r0] + movs r0, 0x12 + ands r4, r0 + cmp r4, 0 + beq _08057DA8 + ldr r1, =gUnknown_03005D74 + ldrb r0, [r7] + b _08057DD8 + .pool +_08057DA8: + movs r0, 0x1 + bl GetBankByPlayerAI + ldr r1, =gAbsentBankFlags + ldrb r1, [r1] + ldr r2, =gBitTable + lsls r0, 24 + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08057DD0 + movs r0, 0x3 + b _08057DD2 + .pool +_08057DD0: + movs r0, 0x1 +_08057DD2: + bl GetBankByPlayerAI + ldr r1, =gUnknown_03005D74 +_08057DD8: + strb r0, [r1] + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r0, =gUnknown_03005D74 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, =sub_8039AD8 + b _08057F9C + .pool +_08057E04: + movs r6, 0x2 + adds r0, r6, 0 + ands r0, r2 + cmp r0, 0 + bne _08057E14 + ldrb r0, [r1] + cmp r0, 0x3B + bls _08057E30 +_08057E14: + movs r0, 0x5 + bl PlaySE + ldr r2, =0x0000ffff +_08057E1C: + movs r0, 0x1 + movs r1, 0xA + bl dp01_build_cmdbuf_x21_a_bb + bl PlayerBufferExecCompleted + b _08057F9E + .pool +_08057E30: + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + beq _08057E60 + ldr r4, =gUnknown_020244B0 + ldrb r0, [r7] + adds r2, r0, r4 + ldrb r1, [r2] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _08057E4A + b _08057F9E +_08057E4A: + ldrb r0, [r2] + bl battle_menu_cursor_related + ldrb r1, [r7] + adds r1, r4 + ldrb r0, [r1] + movs r2, 0x1 + eors r0, r2 + b _08057F08 + .pool +_08057E60: + movs r0, 0x10 + ands r0, r2 + cmp r0, 0 + beq _08057EA4 + ldr r4, =gUnknown_020244B0 + ldrb r0, [r7] + adds r3, r0, r4 + ldrb r2, [r3] + movs r6, 0x1 + adds r0, r5, 0 + ands r0, r2 + cmp r0, 0 + beq _08057E7C + b _08057F9E +_08057E7C: + ldr r1, =gUnknown_03005D78 + adds r0, r6, 0 + eors r0, r2 + ldrb r1, [r1] + cmp r0, r1 + bcc _08057E8A + b _08057F9E +_08057E8A: + ldrb r0, [r3] + bl battle_menu_cursor_related + ldrb r1, [r7] + adds r1, r4 + ldrb r0, [r1] + eors r0, r6 + b _08057F08 + .pool +_08057EA4: + movs r0, 0x40 + ands r0, r2 + cmp r0, 0 + beq _08057ED4 + ldr r4, =gUnknown_020244B0 + ldrb r0, [r7] + adds r2, r0, r4 + ldrb r1, [r2] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _08057F9E + ldrb r0, [r2] + bl battle_menu_cursor_related + ldrb r1, [r7] + adds r1, r4 + ldrb r0, [r1] + movs r2, 0x2 + eors r0, r2 + b _08057F08 + .pool +_08057ED4: + movs r0, 0x80 + ands r0, r2 + cmp r0, 0 + beq _08057F30 + ldr r4, =gUnknown_020244B0 + ldrb r0, [r7] + adds r3, r0, r4 + ldrb r2, [r3] + movs r5, 0x2 + adds r0, r6, 0 + ands r0, r2 + cmp r0, 0 + bne _08057F9E + ldr r1, =gUnknown_03005D78 + adds r0, r5, 0 + eors r0, r2 + ldrb r1, [r1] + cmp r0, r1 + bcs _08057F9E + ldrb r0, [r3] + bl battle_menu_cursor_related + ldrb r1, [r7] + adds r1, r4 + ldrb r0, [r1] + eors r0, r5 +_08057F08: + strb r0, [r1] + movs r0, 0x5 + bl PlaySE + ldrb r0, [r7] + adds r0, r4 + ldrb r0, [r0] + movs r1, 0 + bl battle_menu_cursor_related_2 + bl sub_8059B3C + bl sub_8059BB0 + b _08057F9E + .pool +_08057F30: + movs r0, 0x4 + ands r0, r2 + cmp r0, 0 + beq _08057F9E + ldr r0, =gUnknown_03005D78 + ldrb r0, [r0] + cmp r0, 0x1 + bls _08057F9E + ldr r0, =gBattleTypeFlags + ldr r5, [r0] + ands r5, r6 + cmp r5, 0 + bne _08057F9E + ldr r4, =gUnknown_020244B0 + ldrb r0, [r7] + adds r0, r4 + ldrb r0, [r0] + movs r1, 0x1D + bl battle_menu_cursor_related_2 + ldrb r0, [r7] + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _08057F78 + ldr r0, =gUnknown_03005D74 + strb r5, [r0] + b _08057F80 + .pool +_08057F78: + ldr r1, =gUnknown_03005D74 + adds r0, 0x1 + strb r0, [r1] + adds r0, r1, 0 +_08057F80: + ldrb r0, [r0] + movs r1, 0x1B + bl battle_menu_cursor_related_2 + ldr r0, =gUnknown_085CCACA + movs r1, 0xB + bl battle_show_message_maybe + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8058138 +_08057F9C: + str r1, [r0] +_08057F9E: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8057BFC + + thumb_func_start sub_8057FBC +sub_8057FBC: @ 8057FBC + push {r4-r7,lr} + movs r7, 0 + ldr r4, =gMain + ldrh r1, [r4, 0x2E] + movs r6, 0x1 + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _08057FD6 + movs r0, 0x5 + bl PlaySE + movs r7, 0x1 +_08057FD6: + ldrh r1, [r4, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08057FF8 + movs r0, 0x5 + bl PlaySE + ldr r1, =gUnknown_02022E14 + movs r0, 0 + strh r0, [r1] + ldr r1, =gUnknown_02022E16 + movs r2, 0xA0 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + movs r7, 0xFF +_08057FF8: + ldrh r1, [r4, 0x2E] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08058038 + ldr r5, =gUnknown_020244B0 + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r2, r0, r5 + ldrb r1, [r2] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _08058038 + ldrb r0, [r2] + bl battle_menu_cursor_related + ldrb r1, [r4] + adds r1, r5 + ldrb r0, [r1] + movs r2, 0x1 + eors r0, r2 + strb r0, [r1] + movs r0, 0x5 + bl PlaySE + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + movs r1, 0 + bl battle_menu_cursor_related_2 +_08058038: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08058086 + ldr r5, =gUnknown_020244B0 + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r3, r0, r5 + ldrb r2, [r3] + movs r6, 0x1 + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + bne _08058086 + ldr r1, =gUnknown_03005D78 + adds r0, r6, 0 + eors r0, r2 + ldrb r1, [r1] + cmp r0, r1 + bcs _08058086 + ldrb r0, [r3] + bl battle_menu_cursor_related + ldrb r1, [r4] + adds r1, r5 + ldrb r0, [r1] + eors r0, r6 + strb r0, [r1] + movs r0, 0x5 + bl PlaySE + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + movs r1, 0 + bl battle_menu_cursor_related_2 +_08058086: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080580C8 + ldr r5, =gUnknown_020244B0 + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r2, r0, r5 + ldrb r1, [r2] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080580C8 + ldrb r0, [r2] + bl battle_menu_cursor_related + ldrb r1, [r4] + adds r1, r5 + ldrb r0, [r1] + movs r2, 0x2 + eors r0, r2 + strb r0, [r1] + movs r0, 0x5 + bl PlaySE + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + movs r1, 0 + bl battle_menu_cursor_related_2 +_080580C8: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08058116 + ldr r5, =gUnknown_020244B0 + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r3, r0, r5 + ldrb r2, [r3] + movs r6, 0x2 + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + bne _08058116 + ldr r1, =gUnknown_03005D78 + adds r0, r6, 0 + eors r0, r2 + ldrb r1, [r1] + cmp r0, r1 + bcs _08058116 + ldrb r0, [r3] + bl battle_menu_cursor_related + ldrb r1, [r4] + adds r1, r5 + ldrb r0, [r1] + eors r0, r6 + strb r0, [r1] + movs r0, 0x5 + bl PlaySE + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + movs r1, 0 + bl battle_menu_cursor_related_2 +_08058116: + adds r0, r7, 0 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8057FBC + + thumb_func_start sub_8058138 +sub_8058138: @ 8058138 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x5 + ands r0, r1 + cmp r0, 0 + bne _08058152 + b _08058500 +_08058152: + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_020244B0 + mov r10, r0 + ldr r1, =gActiveBank + mov r8, r1 + ldrb r1, [r1] + adds r2, r1, r0 + ldr r5, =gUnknown_03005D74 + ldrb r0, [r2] + ldrb r3, [r5] + cmp r0, r3 + bne _08058170 + b _080584A8 +_08058170: + lsls r1, 9 + ldr r0, =gUnknown_02023068 + adds r1, r0 + mov r9, r1 + ldrb r1, [r2] + lsls r1, 1 + add r1, r9 + ldrh r6, [r1] + ldrb r0, [r5] + lsls r0, 1 + add r0, r9 + ldrh r0, [r0] + strh r0, [r1] + ldrb r0, [r5] + lsls r0, 1 + add r0, r9 + strh r6, [r0] + mov r1, r8 + ldrb r0, [r1] + add r0, r10 + ldrb r1, [r0] + mov r7, r9 + adds r7, 0x8 + adds r1, r7, r1 + ldrb r6, [r1] + ldrb r0, [r5] + adds r0, r7, r0 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r5] + adds r0, r7, r0 + strb r6, [r0] + mov r2, r8 + ldrb r0, [r2] + add r0, r10 + ldrb r1, [r0] + mov r2, r9 + adds r2, 0xC + adds r1, r2, r1 + ldrb r6, [r1] + ldrb r0, [r5] + adds r0, r2, r0 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r5] + adds r2, r0 + strb r6, [r2] + mov r3, r8 + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + ldr r2, =gDisableStructs + adds r6, r0, r2 + ldrb r4, [r6, 0x18] + lsls r3, r4, 24 + lsrs r2, r3, 28 + ldr r0, =gBitTable + mov r12, r0 + add r1, r10 + ldrb r0, [r1] + lsls r0, 2 + add r0, r12 + ldr r0, [r0] + ands r2, r0 + cmp r2, 0 + beq _0805822A + lsrs r1, r3, 28 + bics r1, r0 + lsls r1, 4 + movs r2, 0xF + adds r0, r2, 0 + ands r0, r4 + orrs r0, r1 + strb r0, [r6, 0x18] + mov r1, r8 + ldrb r0, [r1] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + ldr r3, =gDisableStructs + adds r1, r3 + ldrb r4, [r1, 0x18] + lsrs r3, r4, 4 + ldrb r0, [r5] + lsls r0, 2 + add r0, r12 + ldr r0, [r0] + orrs r0, r3 + lsls r0, 4 + ands r2, r4 + orrs r2, r0 + strb r2, [r1, 0x18] +_0805822A: + bl sub_8059AAC + movs r6, 0 + mov r12, r7 + mov r5, sp + adds r5, 0x18 + str r5, [sp, 0x1C] + ldr r2, =gBattleMons + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r4, r0, 0 + adds r4, 0x3B + mov r7, r8 + mov r10, r2 + movs r5, 0x3 +_0805824E: + mov r1, sp + adds r3, r1, r6 + ldrb r1, [r4] + lsls r2, r6, 1 + adds r0, r5, 0 + lsls r0, r2 + ands r1, r0 + asrs r1, r2 + strb r1, [r3] + adds r6, 0x1 + cmp r6, 0x3 + ble _0805824E + ldr r1, =gUnknown_020244B0 + ldrb r0, [r7] + adds r0, r1 + ldrb r0, [r0] + add r0, sp + ldrb r0, [r0] + ldr r2, [sp, 0x1C] + strb r0, [r2] + ldrb r0, [r7] + adds r0, r1 + ldrb r0, [r0] + mov r3, sp + adds r2, r3, r0 + ldr r1, =gUnknown_03005D74 + ldrb r0, [r1] + add r0, sp + ldrb r0, [r0] + movs r3, 0 + strb r0, [r2] + ldrb r0, [r1] + mov r5, sp + adds r1, r5, r0 + ldr r2, [sp, 0x1C] + ldrb r0, [r2] + strb r0, [r1] + strb r3, [r2] + movs r6, 0 + ldr r2, [sp, 0x1C] +_0805829E: + mov r3, sp + adds r0, r3, r6 + ldrb r1, [r0] + lsls r0, r6, 1 + lsls r1, r0 + ldrb r0, [r2] + orrs r0, r1 + strb r0, [r2] + adds r6, 0x1 + cmp r6, 0x3 + ble _0805829E + ldrb r1, [r7] + movs r0, 0x58 + muls r0, r1 + add r0, r10 + adds r0, 0x3B + ldr r5, [sp, 0x1C] + ldrb r1, [r5] + strb r1, [r0] + movs r6, 0 + adds r4, r7, 0 + movs r3, 0x58 + movs r0, 0x24 + add r0, r10 + mov r8, r0 + mov r2, r9 + mov r7, r10 + adds r7, 0xC + mov r5, r12 +_080582D8: + lsls r1, r6, 1 + ldrb r0, [r4] + muls r0, r3 + adds r1, r0 + adds r1, r7 + ldrh r0, [r2] + strh r0, [r1] + ldrb r0, [r4] + adds r1, r0, 0 + muls r1, r3 + adds r1, r6, r1 + add r1, r8 + adds r0, r5, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r2, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _080582D8 + ldr r2, =gActiveBank + ldrb r1, [r2] + movs r0, 0x58 + muls r0, r1 + mov r1, r10 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + beq _0805831A + b _080584A8 +_0805831A: + movs r6, 0 + mov r1, sp + adds r1, 0x4 + str r1, [sp, 0x20] + add r3, sp, 0xC + mov r10, r3 + ldr r5, =gBattlePartyID + mov r9, r5 + mov r8, r2 + movs r7, 0x64 + ldr r5, =gPlayerParty + adds r4, r1, 0 +_08058332: + mov r1, r8 + ldrb r0, [r1] + lsls r0, 1 + add r0, r9 + ldrh r0, [r0] + muls r0, r7 + adds r0, r5 + adds r1, r6, 0 + adds r1, 0xD + bl GetMonData + strh r0, [r4] + mov r2, r8 + ldrb r0, [r2] + lsls r0, 1 + add r0, r9 + ldrh r0, [r0] + muls r0, r7 + adds r0, r5 + adds r1, r6, 0 + adds r1, 0x11 + bl GetMonData + mov r3, r10 + adds r1, r3, r6 + strb r0, [r1] + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _08058332 + ldr r1, =gBattlePartyID + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x15 + bl GetMonData + ldr r5, [sp, 0x1C] + strb r0, [r5] + movs r6, 0 + movs r5, 0x3 + ldr r4, [sp, 0x1C] +_08058392: + mov r0, sp + adds r3, r0, r6 + lsls r2, r6, 1 + adds r1, r5, 0 + lsls r1, r2 + ldrb r0, [r4] + ands r0, r1 + asrs r0, r2 + strb r0, [r3] + adds r6, 0x1 + cmp r6, 0x3 + ble _08058392 + ldr r4, =gUnknown_020244B0 + ldr r3, =gActiveBank + ldrb r0, [r3] + adds r0, r4 + ldrb r1, [r0] + lsls r1, 1 + ldr r2, [sp, 0x20] + adds r1, r2, r1 + ldrh r6, [r1] + ldr r2, =gUnknown_03005D74 + ldrb r0, [r2] + lsls r0, 1 + ldr r5, [sp, 0x20] + adds r0, r5, r0 + ldrh r0, [r0] + movs r5, 0 + strh r0, [r1] + ldrb r0, [r2] + lsls r0, 1 + ldr r1, [sp, 0x20] + adds r0, r1, r0 + strh r6, [r0] + ldrb r0, [r3] + adds r0, r4 + ldrb r1, [r0] + add r1, r10 + ldrb r6, [r1] + ldrb r0, [r2] + add r0, r10 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r2] + add r0, r10 + strb r6, [r0] + ldrb r0, [r3] + adds r0, r4 + ldrb r0, [r0] + add r0, sp + ldrb r0, [r0] + ldr r1, [sp, 0x1C] + strb r0, [r1] + ldrb r0, [r3] + adds r0, r4 + ldrb r0, [r0] + mov r3, sp + adds r1, r3, r0 + ldrb r0, [r2] + add r0, sp + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r2] + adds r1, r3, r0 + ldr r2, [sp, 0x1C] + ldrb r0, [r2] + strb r0, [r1] + strb r5, [r2] + movs r6, 0 + ldr r2, [sp, 0x1C] +_0805841E: + mov r3, sp + adds r0, r3, r6 + ldrb r1, [r0] + lsls r0, r6, 1 + lsls r1, r0 + ldrb r0, [r2] + orrs r0, r1 + strb r0, [r2] + adds r6, 0x1 + cmp r6, 0x3 + ble _0805841E + movs r6, 0 + ldr r5, =gBattlePartyID + mov r10, r5 + ldr r0, =gActiveBank + mov r9, r0 + movs r1, 0x64 + mov r8, r1 + ldr r7, =gPlayerParty + ldr r5, [sp, 0x20] + adds r5, 0x8 + ldr r4, [sp, 0x20] +_0805844A: + mov r2, r9 + ldrb r0, [r2] + lsls r0, 1 + add r0, r10 + ldrh r0, [r0] + mov r3, r8 + muls r3, r0 + adds r0, r3, 0 + adds r0, r7 + adds r1, r6, 0 + adds r1, 0xD + adds r2, r4, 0 + bl SetMonData + mov r1, r9 + ldrb r0, [r1] + lsls r0, 1 + add r0, r10 + ldrh r0, [r0] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + adds r0, r7 + adds r1, r6, 0 + adds r1, 0x11 + adds r2, r5, 0 + bl SetMonData + adds r5, 0x1 + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _0805844A + ldr r1, =gBattlePartyID + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x15 + ldr r2, [sp, 0x1C] + bl SetMonData +_080584A8: + ldr r1, =gBattleBankFunc + ldr r2, =gActiveBank + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8057BFC + str r1, [r0] + ldr r3, =gUnknown_020244B0 + ldrb r0, [r2] + adds r0, r3 + ldr r1, =gUnknown_03005D74 + ldrb r1, [r1] + strb r1, [r0] + ldrb r0, [r2] + adds r0, r3 + ldrb r0, [r0] + movs r1, 0 + bl battle_menu_cursor_related_2 + b _08058532 + .pool +_08058500: + movs r0, 0x6 + ands r0, r1 + cmp r0, 0 + beq _08058554 + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_03005D74 + ldrb r0, [r0] + bl battle_menu_cursor_related + ldr r1, =gUnknown_020244B0 + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + movs r1, 0 + bl battle_menu_cursor_related_2 + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8057BFC + str r1, [r0] +_08058532: + bl sub_8059B18 + bl sub_8059B3C + bl sub_8059BB0 + b _080586E8 + .pool +_08058554: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080585A4 + ldr r3, =gUnknown_03005D74 + ldrb r2, [r3] + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + bne _0805856A + b _080586E8 +_0805856A: + ldr r0, =gUnknown_020244B0 + ldr r1, =gActiveBank + ldrb r1, [r1] + adds r1, r0 + ldrb r5, [r1] + cmp r2, r5 + bne _08058590 +_08058578: + ldrb r0, [r1] + movs r1, 0x1D + bl battle_menu_cursor_related_2 + b _08058596 + .pool +_08058590: + ldrb r0, [r3] + bl battle_menu_cursor_related +_08058596: + ldr r4, =gUnknown_03005D74 + ldrb r0, [r4] + movs r1, 0x1 + b _0805862C + .pool +_080585A4: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080585E8 + ldr r3, =gUnknown_03005D74 + ldrb r2, [r3] + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + beq _080585BA + b _080586E8 +_080585BA: + ldr r1, =gUnknown_03005D78 + movs r0, 0x1 + eors r0, r2 + ldrb r1, [r1] + cmp r0, r1 + bcc _080585C8 + b _080586E8 +_080585C8: + ldr r0, =gUnknown_020244B0 + ldr r1, =gActiveBank + ldrb r1, [r1] + adds r1, r0 + ldrb r0, [r1] + cmp r2, r0 + beq _08058578 + b _08058590 + .pool +_080585E8: + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0805865C + ldr r3, =gUnknown_03005D74 + ldrb r2, [r3] + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + beq _080586E8 + ldr r0, =gUnknown_020244B0 + ldr r1, =gActiveBank + ldrb r1, [r1] + adds r1, r0 + ldrb r5, [r1] + cmp r2, r5 + bne _08058620 + ldrb r0, [r1] + movs r1, 0x1D + bl battle_menu_cursor_related_2 + b _08058626 + .pool +_08058620: + ldrb r0, [r3] + bl battle_menu_cursor_related +_08058626: + ldr r4, =gUnknown_03005D74 + ldrb r0, [r4] + movs r1, 0x2 +_0805862C: + eors r0, r1 + strb r0, [r4] + movs r0, 0x5 + bl PlaySE + ldr r1, =gUnknown_020244B0 + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r4] + ldrb r0, [r0] + cmp r1, r0 + beq _080586CA + ldrb r0, [r4] + movs r1, 0x1B + bl battle_menu_cursor_related_2 + b _080586E8 + .pool +_0805865C: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080586E8 + ldr r3, =gUnknown_03005D74 + ldrb r2, [r3] + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + bne _080586E8 + ldr r1, =gUnknown_03005D78 + movs r0, 0x2 + eors r0, r2 + ldrb r1, [r1] + cmp r0, r1 + bcs _080586E8 + ldr r0, =gUnknown_020244B0 + ldr r1, =gActiveBank + ldrb r1, [r1] + adds r1, r0 + ldrb r0, [r1] + cmp r2, r0 + bne _080586A4 + ldrb r0, [r1] + movs r1, 0x1D + bl battle_menu_cursor_related_2 + b _080586AA + .pool +_080586A4: + ldrb r0, [r3] + bl battle_menu_cursor_related +_080586AA: + ldr r4, =gUnknown_03005D74 + ldrb r0, [r4] + movs r1, 0x2 + eors r0, r1 + strb r0, [r4] + movs r0, 0x5 + bl PlaySE + ldr r1, =gUnknown_020244B0 + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r4] + ldrb r0, [r0] + cmp r1, r0 + bne _080586E0 +_080586CA: + adds r0, r1, 0 + movs r1, 0 + bl battle_menu_cursor_related_2 + b _080586E8 + .pool +_080586E0: + ldrb r0, [r4] + movs r1, 0x1B + bl battle_menu_cursor_related_2 +_080586E8: + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8058138 + + thumb_func_start sub_80586F8 +sub_80586F8: @ 80586F8 + push {lr} + ldr r0, =gLinkVSyncDisabled + ldrb r0, [r0] + cmp r0, 0 + bne _0805875C + ldr r0, =gUnknown_03003124 + ldrb r0, [r0] + cmp r0, 0 + bne _08058798 + movs r0, 0x5A + bl m4aSongNumStop + ldr r3, =gMain + ldr r0, =0x00000439 + adds r2, r3, r0 + ldrb r1, [r2] + movs r0, 0x3 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldr r0, =gUnknown_03005D00 + ldr r0, [r0] + str r0, [r3] + ldr r0, =sub_8038D64 + bl SetMainCallback2 + ldr r0, =gBattleOutcome + ldrb r0, [r0] + cmp r0, 0x1 + bne _08058738 + bl sub_817E3F4 +_08058738: + bl FreeAllWindowBuffers + b _08058798 + .pool +_0805875C: + bl sub_800A520 + lsls r0, 24 + cmp r0, 0 + beq _08058798 + movs r0, 0x5A + bl m4aSongNumStop + ldr r3, =gMain + ldr r0, =0x00000439 + adds r2, r3, r0 + ldrb r1, [r2] + movs r0, 0x3 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldr r0, =gUnknown_03005D00 + ldr r0, [r0] + str r0, [r3] + ldr r0, =sub_8038D64 + bl SetMainCallback2 + ldr r0, =gBattleOutcome + ldrb r0, [r0] + cmp r0, 0x1 + bne _08058794 + bl sub_817E3F4 +_08058794: + bl FreeAllWindowBuffers +_08058798: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80586F8 + + thumb_func_start sub_80587B0 +sub_80587B0: @ 80587B0 + push {lr} + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08058832 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08058810 + bl sub_800A520 + lsls r0, 24 + cmp r0, 0 + beq _08058832 + ldr r0, =gLinkVSyncDisabled + ldrb r0, [r0] + cmp r0, 0 + bne _080587F0 + bl sub_800AC34 + b _080587F4 + .pool +_080587F0: + bl sub_800ADF8 +_080587F4: + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_80586F8 + str r1, [r0] + b _08058832 + .pool +_08058810: + movs r0, 0x5A + bl m4aSongNumStop + ldr r2, =gMain + ldr r0, =0x00000439 + adds r3, r2, r0 + ldrb r1, [r3] + movs r0, 0x3 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + ldr r0, =gUnknown_03005D00 + ldr r0, [r0] + str r0, [r2] + ldr r0, [r2, 0x8] + bl SetMainCallback2 +_08058832: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80587B0 + + thumb_func_start sub_8058844 +sub_8058844: @ 8058844 + push {lr} + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _08058868 + bl PlayerBufferExecCompleted +_08058868: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8058844 + + thumb_func_start sub_805887C +sub_805887C: @ 805887C + push {lr} + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _080588A0 + bl PlayerBufferExecCompleted +_080588A0: + pop {r0} + bx r0 + .pool + thumb_func_end sub_805887C + + thumb_func_start bx_802F7A0 +bx_802F7A0: @ 80588B4 + push {r4-r6,lr} + ldr r6, =gSprites + ldr r5, =gBankSpriteIds + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r6, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _08058908 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r0, [r0, 0x8] + bl nullsub_25 + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl FreeSpriteOamMatrix + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl DestroySprite + bl PlayerBufferExecCompleted +_08058908: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end bx_802F7A0 + + thumb_func_start sub_8058924 +sub_8058924: @ 8058924 + push {r4,lr} + ldr r4, =gUnknown_020244D0 + ldr r1, [r4] + ldr r3, =gActiveBank + ldrb r0, [r3] + ldr r2, [r1, 0x4] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1, 0x9] + subs r0, 0x1 + strb r0, [r1, 0x9] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _0805895C + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strb r1, [r0, 0x9] + bl PlayerBufferExecCompleted +_0805895C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8058924 + + thumb_func_start sub_805896C +sub_805896C: @ 805896C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r7, 0 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08058998 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _080589D0 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080589D0 +_08058998: + ldr r2, =gSprites + ldr r1, =gUnknown_03005D70 + ldr r3, =gActiveBank + ldrb r0, [r3] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + mov r10, r3 + cmp r1, r0 + bne _08058A0A + b _08058A0E + .pool +_080589D0: + ldr r3, =gSprites + ldr r6, =gUnknown_03005D70 + ldr r2, =gActiveBank + ldrb r4, [r2] + adds r0, r4, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r5, r3, 0 + adds r5, 0x1C + adds r0, r5 + ldr r3, [r0] + ldr r0, =SpriteCallbackDummy + mov r10, r2 + cmp r3, r0 + bne _08058A0A + movs r0, 0x2 + eors r4, r0 + adds r0, r4, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r0, [r0] + cmp r0, r3 + bne _08058A0A + movs r7, 0x1 +_08058A0A: + cmp r7, 0 + beq _08058B08 +_08058A0E: + ldr r0, =gUnknown_020244D0 + mov r9, r0 + ldr r0, [r0] + mov r6, r10 + ldrb r2, [r6] + ldr r3, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r4, r0, r3 + ldrb r1, [r4, 0x1] + movs r5, 0x1 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _08058B08 + movs r1, 0x2 + mov r8, r1 + mov r1, r8 + eors r1, r2 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x1] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _08058B08 + ldrb r1, [r4] + movs r3, 0x7F + adds r0, r3, 0 + ands r0, r1 + strb r0, [r4] + mov r2, r9 + ldr r0, [r2] + ldrb r2, [r6] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r4, 0x2 + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + strb r0, [r1, 0x1] + mov r0, r9 + ldr r2, [r0] + ldrb r0, [r6] + mov r1, r8 + eors r1, r0 + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + ands r3, r1 + strb r3, [r0] + mov r1, r9 + ldr r2, [r1] + ldrb r0, [r6] + mov r1, r8 + eors r1, r0 + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x1] + ands r4, r1 + strb r4, [r0, 0x1] + ldr r4, =0x000027f9 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag + ldr r7, =gBattlePartyID + ldrb r1, [r6] + lsls r0, r1, 1 + adds r0, r7 + ldrh r0, [r0] + movs r5, 0x64 + muls r0, r5 + ldr r4, =gPlayerParty + adds r0, r4 + bl sub_805E990 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08058AE4 + ldrb r0, [r6] + mov r1, r8 + eors r1, r0 + lsls r0, r1, 1 + adds r0, r7 + ldrh r0, [r0] + muls r0, r5 + adds r0, r4 + bl sub_805E990 +_08058AE4: + mov r2, r9 + ldr r0, [r2] + mov r2, r10 + ldrb r1, [r2] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + strb r1, [r0, 0x9] + ldr r1, =gBattleBankFunc + mov r2, r10 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8058924 + str r1, [r0] +_08058B08: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805896C + + thumb_func_start sub_8058B40 +sub_8058B40: @ 8058B40 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r0, 0 + mov r9, r0 + mov r8, r0 + ldr r4, =gUnknown_020244D0 + ldr r0, [r4] + ldr r7, =gActiveBank + ldrb r2, [r7] + ldr r1, [r0, 0x4] + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r5, 0x88 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _08058B80 + ldr r0, =gBattlePartyID + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r1, r0 + adds r0, r2, 0 + bl sub_8172EF0 +_08058B80: + ldr r1, [r4] + ldrb r0, [r7] + movs r6, 0x2 + adds r2, r6, 0 + eors r2, r0 + ldr r1, [r1, 0x4] + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _08058BB2 + ldr r0, =gBattlePartyID + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r1, r0 + adds r0, r2, 0 + bl sub_8172EF0 +_08058BB2: + ldr r0, [r4] + ldrb r2, [r7] + ldr r3, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r4, r0, r3 + ldrb r1, [r4] + movs r5, 0x8 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _08058C82 + adds r1, r6, 0 + eors r1, r2 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _08058C82 + ldrb r1, [r4, 0x1] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08058C68 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08058C38 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08058C38 + ldr r4, =gUnknown_03005D70 + ldrb r0, [r7] + adds r1, r6, 0 + eors r1, r0 + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, =gBattlePartyID + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gPlayerParty + adds r1, r2 + movs r2, 0 + bl healthbar_draw_field_maybe + ldrb r0, [r7] + eors r0, r6 + bl sub_8076918 + ldrb r0, [r7] + eors r0, r6 + adds r0, r4 + ldrb r0, [r0] + bl sub_80729D0 +_08058C38: + ldr r5, =gUnknown_03005D70 + ldr r4, =gActiveBank + ldrb r1, [r4] + adds r0, r1, r5 + ldrb r0, [r0] + ldr r2, =gBattlePartyID + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gPlayerParty + adds r1, r2 + movs r2, 0 + bl healthbar_draw_field_maybe + ldrb r0, [r4] + bl sub_8076918 + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + bl sub_80729D0 +_08058C68: + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x1] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0, 0x1] +_08058C82: + ldr r5, =gUnknown_020244D0 + ldr r0, [r5] + ldr r4, =gActiveBank + ldrb r2, [r4] + ldr r3, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x1] + movs r0, 0xC0 + ands r0, r1 + cmp r0, 0x80 + bne _08058D32 + movs r1, 0x2 + eors r1, r2 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x1] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08058D32 + bl IsCryPlayingOrClearCrySongs + lsls r0, 24 + cmp r0, 0 + bne _08058D32 + ldr r0, [r5] + ldrb r1, [r4] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x1] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _08058D14 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x42 + ands r0, r1 + cmp r0, 0x42 + bne _08058D08 + ldr r0, =gMPlay_BGM + bl m4aMPlayContinue + b _08058D14 + .pool +_08058D08: + ldr r0, =gMPlay_BGM + ldr r1, =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl +_08058D14: + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x1] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0, 0x1] + movs r0, 0x1 + mov r9, r0 +_08058D32: + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08058D52 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08058DAC + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08058DAC +_08058D52: + ldr r2, =gSprites + ldr r0, =gUnknown_03005D7C + ldr r1, =gActiveBank + ldrb r4, [r1] + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r3, [r0] + ldr r0, =SpriteCallbackDummy + cmp r3, r0 + bne _08058E0A + ldr r0, =gBankSpriteIds + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + cmp r0, r3 + bne _08058E0A + b _08058E06 + .pool +_08058DAC: + ldr r2, =gSprites + ldr r7, =gUnknown_03005D7C + ldr r0, =gActiveBank + ldrb r3, [r0] + adds r0, r3, r7 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r4, [r0] + ldr r0, =SpriteCallbackDummy + cmp r4, r0 + bne _08058E0A + ldr r6, =gBankSpriteIds + adds r0, r3, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r5, [r0] + cmp r5, r4 + bne _08058E0A + movs r0, 0x2 + eors r3, r0 + adds r0, r3, r7 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r4, [r0] + cmp r4, r5 + bne _08058E0A + adds r0, r3, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + cmp r0, r4 + bne _08058E0A +_08058E06: + movs r0, 0x1 + mov r8, r0 +_08058E0A: + mov r0, r9 + cmp r0, 0 + beq _08058EAA + mov r0, r8 + cmp r0, 0 + beq _08058EAA + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08058E48 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08058E48 + ldr r2, =gUnknown_03005D7C + ldr r0, =gActiveBank + ldrb r1, [r0] + movs r0, 0x2 + eors r0, r1 + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + bl DestroySprite +_08058E48: + ldr r1, =gUnknown_03005D7C + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + bl DestroySprite + ldr r3, =gUnknown_020244D0 + ldr r0, [r3] + ldr r2, [r0, 0x8] + ldrb r1, [r2, 0x9] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x9] + ldr r0, [r3] + ldrb r2, [r4] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldr r0, [r3] + ldrb r2, [r4] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r0, 0x7F + ands r0, r2 + strb r0, [r1, 0x1] + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_805896C + str r1, [r0] +_08058EAA: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8058B40 + + thumb_func_start sub_8058EDC +sub_8058EDC: @ 8058EDC + push {r4-r6,lr} + ldr r2, =gSprites + ldr r0, =gUnknown_03005D70 + ldr r6, =gActiveBank + ldrb r3, [r6] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r4, [r0] + ldr r0, =SpriteCallbackDummy + cmp r4, r0 + bne _08058F94 + ldr r5, =gUnknown_020244D0 + ldr r0, [r5] + ldr r1, [r0, 0x4] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x1] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08058F94 + ldr r0, =gBankSpriteIds + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + cmp r0, r4 + bne _08058F94 + adds r0, r3, 0 + bl sub_805E408 + ldr r0, [r5] + ldrb r2, [r6] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x7F + ands r0, r2 + strb r0, [r1] + ldr r0, [r5] + ldrb r2, [r6] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldr r4, =0x000027f9 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag + ldr r0, [r5] + ldrb r2, [r6] + ldr r1, [r0] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08058F88 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x6 + bl move_anim_start_t4 +_08058F88: + ldr r0, =gBattleBankFunc + ldrb r1, [r6] + lsls r1, 2 + adds r1, r0 + ldr r0, =sub_8058FC0 + str r0, [r1] +_08058F94: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8058EDC + + thumb_func_start sub_8058FC0 +sub_8058FC0: @ 8058FC0 + push {r4,lr} + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r4, =gActiveBank + ldrb r1, [r4] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0805900E + bl IsCryPlayingOrClearCrySongs + lsls r0, 24 + cmp r0, 0 + bne _0805900E + ldr r0, =gMPlay_BGM + ldr r1, =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl + ldr r2, =gBattlePartyID + ldrb r1, [r4] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, =gPlayerParty + adds r0, r2 + bl sub_805E990 + bl PlayerBufferExecCompleted +_0805900E: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8058FC0 + + thumb_func_start sub_805902C +sub_805902C: @ 805902C + push {r4-r6,lr} + ldr r6, =gUnknown_020244D0 + ldr r0, [r6] + ldr r5, =gActiveBank + ldrb r2, [r5] + ldr r1, [r0, 0x4] + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x88 + ands r0, r1 + cmp r0, 0 + bne _0805905E + ldr r0, =gBattlePartyID + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r1, r0 + adds r0, r2, 0 + bl sub_8172EF0 +_0805905E: + ldr r4, =gSprites + ldr r0, =gUnknown_03005D7C + ldrb r2, [r5] + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r3, r0, 2 + adds r0, r4, 0 + adds r0, 0x1C + adds r0, r3, r0 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _080590D2 + ldr r0, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _080590D2 + adds r0, r3, r4 + bl DestroySprite + ldr r4, =gUnknown_03005D70 + ldrb r1, [r5] + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, =gBattlePartyID + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gPlayerParty + adds r1, r2 + movs r2, 0 + bl healthbar_draw_field_maybe + ldrb r0, [r5] + bl sub_8076918 + ldrb r0, [r5] + adds r0, r4 + ldrb r0, [r0] + bl sub_80729D0 + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8058EDC + str r1, [r0] +_080590D2: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805902C + + thumb_func_start c3_0802FDF4 +c3_0802FDF4: @ 8059100 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl IsCryPlayingOrClearCrySongs + lsls r0, 24 + cmp r0, 0 + bne _08059122 + ldr r0, =gMPlay_BGM + ldr r1, =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl + adds r0, r4, 0 + bl DestroyTask +_08059122: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end c3_0802FDF4 + + thumb_func_start bx_t1_healthbar_update +bx_t1_healthbar_update: @ 8059130 + push {r4-r6,lr} + ldr r5, =gActiveBank + ldrb r0, [r5] + ldr r6, =gUnknown_03005D70 + adds r1, r0, r6 + ldrb r1, [r1] + movs r2, 0 + movs r3, 0 + bl sub_8074AA0 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r5] + adds r0, r6 + ldrb r0, [r0] + bl sub_80729D0 + lsls r4, 16 + asrs r1, r4, 16 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08059178 + ldrb r0, [r5] + adds r0, r6 + ldrb r0, [r0] + movs r2, 0 + bl heathbar_draw_hp + b _08059192 + .pool +_08059178: + ldr r2, =gBattlePartyID + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, =gPlayerParty + adds r0, r2 + bl sub_805E990 + bl PlayerBufferExecCompleted +_08059192: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end bx_t1_healthbar_update + + thumb_func_start sub_80591A0 +sub_80591A0: @ 80591A0 + push {lr} + movs r0, 0 + bl IsTextPrinterActive + lsls r0, 16 + cmp r0, 0 + bne _080591B2 + bl PlayerBufferExecCompleted +_080591B2: + pop {r0} + bx r0 + thumb_func_end sub_80591A0 + + thumb_func_start sub_80591B8 +sub_80591B8: @ 80591B8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r1, =gTasks + lsls r0, 2 + add r0, r9 + lsls r0, 3 + adds r0, r1 + mov r8, r0 + ldrb r0, [r0, 0x8] + mov r10, r0 + mov r1, r8 + ldrb r7, [r1, 0xC] + str r7, [sp, 0x8] + ldrh r2, [r1, 0xA] + str r2, [sp, 0xC] + bl battle_type_is_double + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080591FE + ldr r1, =gBattlePartyID + lsls r0, r7, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r10, r0 + bne _080591FE + b _08059314 +_080591FE: + movs r0, 0x64 + mov r1, r10 + muls r1, r0 + ldr r0, =gPlayerParty + adds r6, r1, r0 + adds r0, r6, 0 + movs r1, 0xB + bl GetMonData + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r6, 0 + movs r1, 0x38 + bl GetMonData + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + movs r1, 0x19 + bl GetMonData + str r0, [sp, 0x4] + ldr r3, =gExperienceTables + adds r4, 0x1 + lsls r4, 2 + ldr r2, =gBaseStats + lsls r1, r5, 3 + subs r1, r5 + lsls r1, 2 + adds r1, r2 + ldrb r2, [r1, 0x13] + movs r1, 0xCA + lsls r1, 1 + muls r1, r2 + adds r4, r1 + adds r4, r3 + ldr r2, [r4] + str r2, [sp] + ldr r3, [sp, 0xC] + lsls r1, r3, 16 + asrs r1, 16 + adds r0, r1 + cmp r0, r2 + bcc _080592EC + adds r0, r6, 0 + movs r1, 0x19 + mov r2, sp + bl SetMonData + adds r0, r6, 0 + bl pokemon_calc_effective_stats + ldr r2, [sp] + add r0, sp, 0x4 + ldrh r0, [r0] + subs r2, r0 + ldr r0, [sp, 0xC] + subs r2, r0, r2 + ldr r4, =gActiveBank + ldrb r5, [r4] + strb r7, [r4] + lsls r2, 16 + lsrs r2, 16 + movs r0, 0x1 + movs r1, 0xB + bl dp01_build_cmdbuf_x21_a_bb + strb r5, [r4] + bl battle_type_is_double + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080592D4 + ldr r2, =gBattlePartyID + lsls r0, r7, 1 + adds r0, r2 + mov r1, r10 + ldrh r0, [r0] + cmp r1, r0 + beq _080592B2 + movs r0, 0x2 + eors r7, r0 + lsls r0, r7, 1 + adds r0, r2 + ldrh r0, [r0] + cmp r1, r0 + bne _080592D4 +_080592B2: + ldr r0, =sub_8059544 + b _08059316 + .pool +_080592D4: + ldr r0, =gTasks + mov r2, r9 + lsls r1, r2, 2 + add r1, r9 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_805965C + b _08059318 + .pool +_080592EC: + str r0, [sp, 0x4] + add r2, sp, 0x4 + adds r0, r6, 0 + movs r1, 0x19 + bl SetMonData + ldr r1, =gBattleBankFunc + ldr r3, [sp, 0x8] + lsls r0, r3, 2 + adds r0, r1 + ldr r1, =sub_80591A0 + str r1, [r0] + mov r0, r9 + bl DestroyTask + b _0805931A + .pool +_08059314: + ldr r0, =sub_8059330 +_08059316: + mov r1, r8 +_08059318: + str r0, [r1] +_0805931A: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80591B8 + + thumb_func_start sub_8059330 +sub_8059330: @ 8059330 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gTasks + lsls r2, r0, 2 + mov r8, r2 + add r8, r0 + mov r0, r8 + lsls r0, 3 + mov r8, r0 + add r8, r1 + mov r2, r8 + ldrb r1, [r2, 0x8] + movs r0, 0xA + ldrsh r2, [r2, r0] + mov r9, r2 + mov r2, r8 + ldrb r2, [r2, 0xC] + mov r10, r2 + movs r0, 0x64 + adds r6, r1, 0 + muls r6, r0 + ldr r0, =gPlayerParty + adds r6, r0 + adds r0, r6, 0 + movs r1, 0x38 + bl GetMonData + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + movs r1, 0xB + bl GetMonData + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r6, 0 + movs r1, 0x19 + bl GetMonData + adds r3, r0, 0 + ldr r6, =gExperienceTables + lsls r1, r4, 2 + ldr r2, =gBaseStats + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + adds r0, r2 + ldrb r2, [r0, 0x13] + movs r0, 0xCA + lsls r0, 1 + muls r0, r2 + adds r1, r0 + adds r1, r6 + ldr r1, [r1] + subs r3, r1 + adds r4, 0x1 + lsls r4, 2 + adds r4, r0 + adds r4, r6 + ldr r2, [r4] + subs r2, r1 + ldr r0, =gUnknown_03005D70 + add r0, r10 + ldrb r1, [r0] + mov r0, r9 + negs r0, r0 + str r0, [sp] + mov r0, r10 + bl sub_807294C + movs r0, 0x21 + bl PlaySE + ldr r0, =sub_8059400 + mov r1, r8 + str r0, [r1] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8059330 + + thumb_func_start sub_8059400 +sub_8059400: @ 8059400 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r1, =gTasks + lsls r0, 2 + add r0, r8 + lsls r0, 3 + adds r6, r0, r1 + ldrh r1, [r6, 0x1C] + movs r2, 0x1C + ldrsh r0, [r6, r2] + cmp r0, 0xC + bgt _08059430 + adds r0, r1, 0x1 + strh r0, [r6, 0x1C] + b _0805952C + .pool +_08059430: + ldrb r0, [r6, 0x8] + mov r9, r0 + ldrh r2, [r6, 0xA] + mov r10, r2 + ldrb r7, [r6, 0xC] + ldr r5, =gUnknown_03005D70 + adds r5, r7, r5 + ldrb r1, [r5] + adds r0, r7, 0 + movs r2, 0x1 + movs r3, 0 + bl sub_8074AA0 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r5] + bl sub_80729D0 + lsls r4, 16 + asrs r4, 16 + movs r0, 0x1 + negs r0, r0 + cmp r4, r0 + bne _0805952C + movs r0, 0x21 + bl m4aSongNumStop + movs r0, 0x64 + mov r1, r9 + muls r1, r0 + ldr r0, =gPlayerParty + adds r5, r1, r0 + 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, 0x19 + bl GetMonData + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + ldr r3, =gExperienceTables + adds r4, 0x1 + lsls r4, 2 + ldr r2, =gBaseStats + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r1, [r1, 0x13] + movs r0, 0xCA + lsls r0, 1 + muls r0, r1 + adds r4, r0 + adds r4, r3 + ldr r1, [r4] + str r1, [sp] + mov r2, r10 + lsls r0, r2, 16 + asrs r4, r0, 16 + ldr r0, [sp, 0x4] + adds r0, r4 + cmp r0, r1 + blt _08059510 + adds r0, r5, 0 + movs r1, 0x19 + mov r2, sp + bl SetMonData + adds r0, r5, 0 + bl pokemon_calc_effective_stats + ldr r2, [sp] + add r0, sp, 0x4 + ldrh r0, [r0] + subs r2, r0 + subs r2, r4, r2 + ldr r4, =gActiveBank + ldrb r5, [r4] + strb r7, [r4] + lsls r2, 16 + lsrs r2, 16 + movs r0, 0x1 + movs r1, 0xB + bl dp01_build_cmdbuf_x21_a_bb + strb r5, [r4] + ldr r0, =sub_8059544 + str r0, [r6] + b _0805952C + .pool +_08059510: + str r0, [sp, 0x4] + add r2, sp, 0x4 + adds r0, r5, 0 + movs r1, 0x19 + bl SetMonData + ldr r1, =gBattleBankFunc + lsls r0, r7, 2 + adds r0, r1 + ldr r1, =sub_80591A0 + str r1, [r0] + mov r0, r8 + bl DestroyTask +_0805952C: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8059400 + + thumb_func_start sub_8059544 +sub_8059544: @ 8059544 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldrb r4, [r0, 0xC] + ldrb r6, [r0, 0x8] + bl battle_type_is_double + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08059578 + ldr r1, =gBattlePartyID + movs r0, 0x2 + adds r2, r4, 0 + eors r2, r0 + lsls r0, r2, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r6, r0 + bne _08059578 + adds r4, r2, 0 +_08059578: + adds r0, r4, 0 + adds r1, r4, 0 + adds r2, r4, 0 + movs r3, 0 + bl move_anim_start_t4 + ldr r0, =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_80595A4 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8059544 + + thumb_func_start sub_80595A4 +sub_80595A4: @ 80595A4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r2, r0, r1 + ldrb r5, [r2, 0xC] + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r1, [r0, 0x4] + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08059646 + ldrb r4, [r2, 0x8] + movs r0, 0x64 + adds r1, r4, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r7, r1, r0 + adds r0, r7, 0 + movs r1, 0x38 + bl GetMonData + bl battle_type_is_double + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08059624 + ldr r1, =gBattlePartyID + movs r0, 0x2 + adds r2, r5, 0 + eors r2, r0 + lsls r0, r2, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r4, r0 + bne _08059624 + ldr r0, =gUnknown_03005D70 + adds r0, r2, r0 + ldrb r0, [r0] + adds r1, r7, 0 + movs r2, 0 + bl healthbar_draw_field_maybe + b _08059638 + .pool +_08059624: + ldr r0, =gUnknown_03005D70 + adds r0, r5, r0 + ldrb r0, [r0] + movs r1, 0x64 + muls r1, r4 + ldr r2, =gPlayerParty + adds r1, r2 + movs r2, 0 + bl healthbar_draw_field_maybe +_08059638: + ldr r0, =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_805965C + str r0, [r1] +_08059646: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80595A4 + + thumb_func_start sub_805965C +sub_805965C: @ 805965C + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, =gTasks + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + ldrb r1, [r4, 0x8] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x38 + bl GetMonData + ldrb r0, [r4, 0xC] + ldr r1, =gBattleBankFunc + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_80591A0 + str r1, [r0] + adds r0, r5, 0 + bl DestroyTask + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805965C + + thumb_func_start sub_80596A8 +sub_80596A8: @ 80596A8 + push {r4-r6,lr} + ldr r6, =gSprites + ldr r5, =gBankSpriteIds + ldr r4, =gActiveBank + ldrb r2, [r4] + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r3, 0x22 + ldrsh r1, [r0, r3] + movs r3, 0x26 + ldrsh r0, [r0, r3] + adds r1, r0 + cmp r1, 0xA0 + ble _08059724 + ldr r1, =gBattlePartyID + lsls r0, r2, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + bl nullsub_24 + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl DestroySprite + ldr r1, =gUnknown_03005D70 + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + bl sub_8072984 + bl PlayerBufferExecCompleted +_08059724: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80596A8 + + thumb_func_start sub_8059744 +sub_8059744: @ 8059744 + push {r4-r6,lr} + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r6, =gActiveBank + ldrb r2, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08059798 + ldr r5, =gBankSpriteIds + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + ldr r1, =gUnknown_03005D70 + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + bl sub_8072984 + bl PlayerBufferExecCompleted +_08059798: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8059744 + + thumb_func_start sub_80597B4 +sub_80597B4: @ 80597B4 + push {lr} + movs r0, 0 + bl IsTextPrinterActive + lsls r0, 16 + cmp r0, 0 + bne _080597C6 + bl PlayerBufferExecCompleted +_080597C6: + pop {r0} + bx r0 + thumb_func_end sub_80597B4 + + thumb_func_start sub_80597CC +sub_80597CC: @ 80597CC + push {r4,lr} + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0805980A + ldr r1, =gBattleBankFunc + ldr r2, =gActiveBank + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8059828 + str r1, [r0] + ldr r3, =gTasks + ldr r1, =gUnknown_03005D7C + ldrb r0, [r2] + adds r0, r1 + ldrb r0, [r0] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r3 + ldrb r4, [r1, 0x8] + bl DestroyTask + bl FreeAllWindowBuffers + adds r0, r4, 0 + bl sub_81B89AC +_0805980A: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80597CC + + thumb_func_start sub_8059828 +sub_8059828: @ 8059828 + push {lr} + ldr r0, =gMain + ldr r1, [r0, 0x4] + ldr r0, =sub_8038420 + cmp r1, r0 + bne _08059898 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08059898 + ldr r0, =gUnknown_0203CEE8 + ldrb r0, [r0] + cmp r0, 0x1 + bne _08059870 + ldr r0, =gUnknown_0203CEE9 + ldrb r1, [r0] + ldr r2, =gUnknown_0203CF00 + movs r0, 0x1 + bl dp01_build_cmdbuf_x22_a_three_bytes + b _0805987A + .pool +_08059870: + movs r0, 0x1 + movs r1, 0x6 + movs r2, 0 + bl dp01_build_cmdbuf_x22_a_three_bytes +_0805987A: + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0xF + ands r0, r1 + cmp r0, 0x1 + bne _08059894 + bl b_link_standby_message +_08059894: + bl PlayerBufferExecCompleted +_08059898: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8059828 + + thumb_func_start sub_80598A4 +sub_80598A4: @ 80598A4 + push {lr} + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080598CC + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_80598E0 + str r1, [r0] + bl nullsub_35 + bl FreeAllWindowBuffers + bl sub_81AABB0 +_080598CC: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80598A4 + + thumb_func_start sub_80598E0 +sub_80598E0: @ 80598E0 + push {lr} + ldr r0, =gMain + ldr r1, [r0, 0x4] + ldr r0, =sub_8038420 + cmp r1, r0 + bne _08059906 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08059906 + ldr r0, =gUnknown_0203CE7C + ldrh r1, [r0] + movs r0, 0x1 + bl dp01_build_cmdbuf_x23_aa_0 + bl PlayerBufferExecCompleted +_08059906: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80598E0 + + thumb_func_start bx_wait_t1 +bx_wait_t1: @ 805991C + push {lr} + ldr r0, =gDoingBattleAnim + ldrb r0, [r0] + cmp r0, 0 + beq _08059942 + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08059946 +_08059942: + bl PlayerBufferExecCompleted +_08059946: + pop {r0} + bx r0 + .pool + thumb_func_end bx_wait_t1 + + thumb_func_start bx_blink_t1 +bx_blink_t1: @ 8059958 + push {r4,lr} + ldr r1, =gBankSpriteIds + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + ldr r2, =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, r0, r2 + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0x20 + bne _080599A4 + movs r3, 0 + movs r0, 0 + strh r0, [r4, 0x30] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + subs r0, 0x5 + ands r0, r1 + strb r0, [r2] + ldr r0, =gDoingBattleAnim + strb r3, [r0] + bl PlayerBufferExecCompleted + b _080599CE + .pool +_080599A4: + ldrh r0, [r4, 0x30] + movs r1, 0x3 + ands r0, r1 + cmp r0, 0 + bne _080599C8 + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080599C8: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] +_080599CE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end bx_blink_t1 + + thumb_func_start sub_80599D4 +sub_80599D4: @ 80599D4 + push {r4,lr} + sub sp, 0x4 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08059A02 + ldr r4, =gUnknown_03005D74 + ldrb r0, [r4] + cmp r0, 0 + beq _08059A02 + movs r0, 0x5 + bl PlaySE + ldrb r0, [r4] + bl sub_8056BAC + movs r0, 0 + strb r0, [r4] + movs r0, 0 + bl sub_8056B74 +_08059A02: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08059A2C + ldr r4, =gUnknown_03005D74 + ldrb r0, [r4] + cmp r0, 0 + bne _08059A2C + movs r0, 0x5 + bl PlaySE + ldrb r0, [r4] + bl sub_8056BAC + movs r0, 0x1 + strb r0, [r4] + movs r0, 0x1 + bl sub_8056B74 +_08059A2C: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _08059A7A + str r2, [sp] + movs r0, 0x18 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl sub_8056A3C + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_03005D74 + ldrb r0, [r0] + cmp r0, 0 + beq _08059A6C + movs r0, 0x1 + movs r1, 0xE + movs r2, 0 + bl dp01_build_cmdbuf_x21_a_bb + b _08059A76 + .pool +_08059A6C: + movs r0, 0x1 + movs r1, 0xD + movs r2, 0 + bl dp01_build_cmdbuf_x21_a_bb +_08059A76: + bl PlayerBufferExecCompleted +_08059A7A: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08059AA0 + movs r0, 0x1 + str r0, [sp] + movs r0, 0x18 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl sub_8056A3C + movs r0, 0x5 + bl PlaySE + bl PlayerBufferExecCompleted +_08059AA0: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80599D4 + + thumb_func_start sub_8059AAC +sub_8059AAC: @ 8059AAC + push {r4-r7,lr} + ldr r0, =gActiveBank + ldrb r1, [r0] + lsls r1, 9 + ldr r3, =gUnknown_02023068 + ldr r2, =gUnknown_03005D78 + movs r0, 0 + strb r0, [r2] + movs r5, 0 + ldr r7, =gUnknown_02022E2C + adds r4, r1, r3 + adds r6, r2, 0 +_08059AC4: + lsls r0, r5, 24 + lsrs r0, 24 + bl battle_menu_cursor_related + ldrh r1, [r4] + movs r0, 0xD + muls r1, r0 + ldr r0, =gMoveNames + adds r1, r0 + adds r0, r7, 0 + bl StringCopy + adds r1, r5, 0x3 + lsls r1, 24 + lsrs r1, 24 + adds r0, r7, 0 + bl battle_show_message_maybe + ldrh r0, [r4] + cmp r0, 0 + beq _08059AF4 + ldrb r0, [r6] + adds r0, 0x1 + strb r0, [r6] +_08059AF4: + adds r4, 0x2 + adds r5, 0x1 + cmp r5, 0x3 + ble _08059AC4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8059AAC + + thumb_func_start sub_8059B18 +sub_8059B18: @ 8059B18 + push {r4,lr} + ldr r4, =gUnknown_02022E2C + ldr r1, =gUnknown_085CCA6F + adds r0, r4, 0 + bl StringCopy + adds r0, r4, 0 + movs r1, 0x7 + bl battle_show_message_maybe + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8059B18 + + thumb_func_start sub_8059B3C +sub_8059B3C: @ 8059B3C + push {r4-r7,lr} + ldr r5, =gBattleBufferA + ldr r7, =gActiveBank + ldrb r0, [r7] + lsls r0, 9 + adds r1, r5, 0x2 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _08059B98 + bl sub_814FBAC + ldrb r1, [r7] + lsls r4, r1, 9 + adds r0, r5, 0x4 + adds r4, r0 + ldr r6, =gUnknown_02022E2C + ldr r5, =gUnknown_020244B0 + adds r1, r5 + adds r0, r4, 0 + adds r0, 0x8 + ldrb r1, [r1] + adds r0, r1 + ldrb r1, [r0] + adds r0, r6, 0 + movs r2, 0x1 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + movs r1, 0xBA + strb r1, [r0] + adds r0, 0x1 + ldrb r1, [r7] + adds r1, r5 + adds r4, 0xC + ldrb r1, [r1] + adds r4, r1 + ldrb r1, [r4] + movs r2, 0x1 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + adds r0, r6, 0 + movs r1, 0x9 + bl battle_show_message_maybe +_08059B98: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8059B3C + + thumb_func_start sub_8059BB0 +sub_8059BB0: @ 8059BB0 + push {r4-r6,lr} + ldr r5, =gActiveBank + ldrb r4, [r5] + lsls r4, 9 + ldr r0, =gUnknown_02023068 + adds r4, r0 + ldr r6, =gUnknown_02022E2C + ldr r1, =gUnknown_085CCA73 + adds r0, r6, 0 + bl StringCopy + movs r1, 0xFC + strb r1, [r0] + adds r0, 0x1 + movs r1, 0x6 + strb r1, [r0] + adds r0, 0x1 + movs r1, 0x1 + strb r1, [r0] + adds r0, 0x1 + ldr r3, =gBattleMoves + ldr r2, =gUnknown_020244B0 + ldrb r1, [r5] + adds r1, r2 + ldrb r1, [r1] + lsls r1, 1 + adds r4, r1 + ldrh r2, [r4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r3 + ldrb r2, [r1, 0x2] + lsls r1, r2, 3 + subs r1, r2 + ldr r2, =gTypeNames + adds r1, r2 + bl StringCopy + adds r0, r6, 0 + movs r1, 0xA + bl battle_show_message_maybe + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8059BB0 + + thumb_func_start battle_menu_cursor_related_2 +battle_menu_cursor_related_2: @ 8059C28 + push {lr} + sub sp, 0x10 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + lsls r1, 24 + lsrs r1, 24 + add r2, sp, 0xC + adds r0, r1, 0x1 + strh r0, [r2] + adds r0, r2, 0 + adds r1, 0x2 + strh r1, [r0, 0x2] + movs r1, 0x1 + adds r0, r3, 0 + ands r0, r1 + lsls r2, r0, 3 + adds r2, r0 + adds r2, 0x1 + movs r0, 0x2 + ands r3, r0 + adds r3, 0x37 + str r1, [sp] + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0 + add r1, sp, 0xC + bl CopyToBgTilemapBufferRect_ChangePalette + movs r0, 0 + bl CopyBgTilemapBufferToVram + add sp, 0x10 + pop {r0} + bx r0 + thumb_func_end battle_menu_cursor_related_2 + + thumb_func_start battle_menu_cursor_related +battle_menu_cursor_related: @ 8059C70 + push {lr} + sub sp, 0x10 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + add r0, sp, 0xC + ldr r1, =0x00001016 + strh r1, [r0] + strh r1, [r0, 0x2] + movs r1, 0x1 + adds r0, r3, 0 + ands r0, r1 + lsls r2, r0, 3 + adds r2, r0 + adds r2, 0x1 + movs r0, 0x2 + ands r3, r0 + adds r3, 0x37 + str r1, [sp] + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0 + add r1, sp, 0xC + bl CopyToBgTilemapBufferRect_ChangePalette + movs r0, 0 + bl CopyBgTilemapBufferToVram + add sp, 0x10 + pop {r0} + bx r0 + .pool + thumb_func_end battle_menu_cursor_related + + thumb_func_start sub_8059CB4 +sub_8059CB4: @ 8059CB4 + push {r4,lr} + sub sp, 0x10 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + add r0, sp, 0xC + movs r4, 0x1 + strh r4, [r0] + movs r1, 0x2 + strh r1, [r0, 0x2] + adds r0, r3, 0 + ands r0, r4 + lsls r2, r0, 3 + subs r2, r0 + adds r2, 0x10 + lsls r2, 24 + lsrs r2, 24 + ands r3, r1 + adds r3, 0x23 + str r4, [sp] + str r1, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0 + add r1, sp, 0xC + bl CopyToBgTilemapBufferRect_ChangePalette + movs r0, 0 + bl CopyBgTilemapBufferToVram + add sp, 0x10 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8059CB4 + + thumb_func_start sub_8059CF8 +sub_8059CF8: @ 8059CF8 + push {lr} + sub sp, 0x10 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + add r0, sp, 0xC + ldr r1, =0x00001016 + strh r1, [r0] + strh r1, [r0, 0x2] + movs r1, 0x1 + adds r0, r3, 0 + ands r0, r1 + lsls r2, r0, 3 + subs r2, r0 + adds r2, 0x10 + lsls r2, 24 + lsrs r2, 24 + movs r0, 0x2 + ands r3, r0 + adds r3, 0x23 + str r1, [sp] + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0 + add r1, sp, 0xC + bl CopyToBgTilemapBufferRect_ChangePalette + movs r0, 0 + bl CopyBgTilemapBufferToVram + add sp, 0x10 + pop {r0} + bx r0 + .pool + thumb_func_end sub_8059CF8 + + thumb_func_start sub_8059D40 +sub_8059D40: @ 8059D40 + push {lr} + ldr r0, =sub_80A92F8 + bl SetMainCallback2 + pop {r0} + bx r0 + .pool + thumb_func_end sub_8059D40 + + thumb_func_start sub_8059D50 +sub_8059D50: @ 8059D50 + push {lr} + ldr r0, =sub_80A92F8 + bl SetMainCallback2 + pop {r0} + bx r0 + .pool + thumb_func_end sub_8059D50 + + thumb_func_start sub_8059D60 +sub_8059D60: @ 8059D60 + push {lr} + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _08059D82 + bl PlayerBufferExecCompleted +_08059D82: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8059D60 + + thumb_func_start bx_8030B2C +bx_8030B2C: @ 8059D90 + push {lr} + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _08059DB2 + bl PlayerBufferExecCompleted +_08059DB2: + pop {r0} + bx r0 + .pool + thumb_func_end bx_8030B2C + + thumb_func_start b_link_standby_message +b_link_standby_message: @ 8059DC0 + push {lr} + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08059DE0 + ldr r0, =gUnknown_02022E14 + movs r1, 0 + strh r1, [r0] + ldr r0, =gUnknown_02022E16 + strh r1, [r0] + ldr r0, =gUnknown_085CCA29 + movs r1, 0 + bl battle_show_message_maybe +_08059DE0: + pop {r0} + bx r0 + .pool + thumb_func_end b_link_standby_message + + thumb_func_start dp01t_00_1_getattr +dp01t_00_1_getattr: @ 8059DF4 + push {r4-r6,lr} + sub sp, 0x100 + movs r6, 0 + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + bne _08059E2C + ldr r0, =gBattlePartyID + lsls r1, r2, 1 + adds r1, r0 + ldrb r0, [r1] + mov r1, sp + bl dp01_getattr_by_ch1_for_player_pokemon_ + adds r6, r0, 0 + b _08059E4E + .pool +_08059E2C: + ldrb r4, [r1] + movs r5, 0 +_08059E30: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _08059E46 + lsls r0, r5, 24 + lsrs r0, 24 + mov r2, sp + adds r1, r2, r6 + bl dp01_getattr_by_ch1_for_player_pokemon_ + adds r6, r0 +_08059E46: + lsrs r4, 1 + adds r5, 0x1 + cmp r5, 0x5 + ble _08059E30 +_08059E4E: + lsls r1, r6, 16 + lsrs r1, 16 + movs r0, 0x1 + mov r2, sp + bl dp01_build_cmdbuf_x1D_1D_numargs_varargs + bl PlayerBufferExecCompleted + add sp, 0x100 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end dp01t_00_1_getattr + + thumb_func_start dp01_getattr_by_ch1_for_player_pokemon_ +dp01_getattr_by_ch1_for_player_pokemon_: @ 8059E68 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x90 + adds r7, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0 + ldr r2, =gBattleBufferA + ldr r3, =gActiveBank + ldrb r0, [r3] + lsls r0, 9 + adds r1, r2, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x3B + bls _08059E92 + bl _0805A5FE +_08059E92: + lsls r0, 2 + ldr r1, =_08059EA8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08059EA8: + .4byte _08059F98 + .4byte _0805A1BC + .4byte _0805A1CC + .4byte _0805A1DC + .4byte _0805A244 + .4byte _0805A244 + .4byte _0805A244 + .4byte _0805A244 + .4byte _0805A260 + .4byte _0805A29C + .4byte _0805A29C + .4byte _0805A29C + .4byte _0805A29C + .4byte _0805A5FE + .4byte _0805A5FE + .4byte _0805A5FE + .4byte _0805A5FE + .4byte _0805A2B8 + .4byte _0805A2C8 + .4byte _0805A2F8 + .4byte _0805A308 + .4byte _0805A318 + .4byte _0805A328 + .4byte _0805A338 + .4byte _0805A348 + .4byte _0805A358 + .4byte _0805A368 + .4byte _0805A378 + .4byte _0805A388 + .4byte _0805A398 + .4byte _0805A3A8 + .4byte _0805A3B8 + .4byte _0805A408 + .4byte _0805A418 + .4byte _0805A428 + .4byte _0805A438 + .4byte _0805A448 + .4byte _0805A458 + .4byte _0805A468 + .4byte _0805A478 + .4byte _0805A488 + .4byte _0805A4BC + .4byte _0805A4CC + .4byte _0805A4DC + .4byte _0805A4EC + .4byte _0805A4FC + .4byte _0805A50C + .4byte _0805A51C + .4byte _0805A52C + .4byte _0805A54C + .4byte _0805A55C + .4byte _0805A56C + .4byte _0805A57C + .4byte _0805A58C + .4byte _0805A59C + .4byte _0805A5AC + .4byte _0805A5BC + .4byte _0805A5CC + .4byte _0805A5DC + .4byte _0805A5EC +_08059F98: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + mov r1, sp + strh r0, [r1] + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2E] + movs r6, 0 + add r0, sp, 0x24 + mov r9, r0 + movs r1, 0x3B + add r1, sp + mov r10, r1 + mov r2, sp + adds r2, 0x2B + str r2, [sp, 0x80] + mov r0, sp + adds r0, 0x2A + str r0, [sp, 0x7C] + mov r1, sp + adds r1, 0x68 + str r1, [sp, 0x8C] + adds r2, 0x5 + str r2, [sp, 0x84] + adds r0, 0x12 + str r0, [sp, 0x88] + mov r8, r4 + add r4, sp, 0xC +_08059FE4: + adds r1, r6, 0 + adds r1, 0xD + mov r0, r8 + bl GetMonData + strh r0, [r4] + adds r1, r6, 0 + adds r1, 0x11 + mov r0, r8 + bl GetMonData + mov r2, r9 + adds r1, r2, r6 + strb r0, [r1] + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _08059FE4 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x15 + bl GetMonData + mov r1, r10 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x20 + bl GetMonData + ldr r2, [sp, 0x80] + strb r0, [r2] + adds r0, r4, 0 + movs r1, 0x19 + bl GetMonData + str r0, [sp, 0x44] + adds r0, r4, 0 + movs r1, 0x27 + bl GetMonData + mov r3, sp + movs r5, 0x1F + ands r0, r5 + ldrb r2, [r3, 0x14] + movs r1, 0x20 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x14] + adds r0, r4, 0 + movs r1, 0x28 + bl GetMonData + mov r3, sp + movs r6, 0x1F + ands r0, r6 + lsls r0, 5 + ldrh r2, [r3, 0x14] + ldr r1, =0xfffffc1f + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x14] + adds r0, r4, 0 + movs r1, 0x29 + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, 2 + ldrb r2, [r3, 0x15] + movs r1, 0x7D + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x15] + adds r0, r4, 0 + movs r1, 0x2A + bl GetMonData + movs r1, 0x1F + ands r1, r0 + lsls r1, 15 + ldr r0, [sp, 0x14] + ldr r2, =0xfff07fff + ands r0, r2 + orrs r0, r1 + str r0, [sp, 0x14] + adds r0, r4, 0 + movs r1, 0x2B + bl GetMonData + mov r3, sp + ands r0, r6 + lsls r0, 4 + ldrh r2, [r3, 0x16] + ldr r1, =0xfffffe0f + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x16] + adds r0, r4, 0 + movs r1, 0x2C + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, 1 + ldrb r2, [r3, 0x17] + movs r1, 0x3F + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + str r0, [sp, 0x48] + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData + str r0, [sp, 0x4C] + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + ldr r1, [sp, 0x7C] + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + mov r1, sp + strh r0, [r1, 0x28] + adds r0, r4, 0 + movs r1, 0x3A + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2C] + adds r0, r4, 0 + movs r1, 0x3B + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2] + adds r0, r4, 0 + movs r1, 0x3C + bl GetMonData + mov r1, sp + strh r0, [r1, 0x4] + adds r0, r4, 0 + movs r1, 0x3D + bl GetMonData + mov r1, sp + strh r0, [r1, 0x6] + adds r0, r4, 0 + movs r1, 0x3E + bl GetMonData + mov r1, sp + strh r0, [r1, 0x8] + adds r0, r4, 0 + movs r1, 0x3F + bl GetMonData + mov r1, sp + strh r0, [r1, 0xA] + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + mov r3, sp + movs r1, 0x1 + ands r0, r1 + lsls r0, 6 + ldrb r2, [r3, 0x17] + movs r1, 0x41 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0x2E + bl GetMonData + mov r3, sp + lsls r0, 7 + ldrb r2, [r3, 0x17] + movs r1, 0x7F + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0x1 + bl GetMonData + str r0, [sp, 0x54] + adds r0, r4, 0 + movs r1, 0x2 + ldr r2, [sp, 0x8C] + bl GetMonData + ldr r0, [sp, 0x84] + ldr r1, [sp, 0x8C] + bl StringCopy10 + adds r0, r4, 0 + movs r1, 0x7 + ldr r2, [sp, 0x88] + bl GetMonData + mov r2, sp + movs r6, 0 +_0805A19C: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, 0x1 + cmp r6, 0x57 + bls _0805A19C + b _0805A5FE + .pool +_0805A1BC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xB + b _0805A536 + .pool +_0805A1CC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xC + b _0805A536 + .pool +_0805A1DC: + movs r6, 0 + add r2, sp, 0x58 + mov r9, r2 + add r0, sp, 0x60 + mov r10, r0 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r4, r1, r0 + mov r8, r9 +_0805A1F2: + adds r1, r6, 0 + adds r1, 0xD + adds r0, r4, 0 + bl GetMonData + mov r1, r8 + strh r0, [r1] + adds r1, r6, 0 + adds r1, 0x11 + adds r0, r4, 0 + bl GetMonData + mov r2, r10 + adds r1, r2, r6 + strb r0, [r1] + movs r0, 0x2 + add r8, r0 + adds r6, 0x1 + cmp r6, 0x3 + ble _0805A1F2 + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x15 + bl GetMonData + mov r1, r9 + strb r0, [r1, 0xC] + mov r2, r9 + movs r6, 0 +_0805A230: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, 0x1 + cmp r6, 0xF + bls _0805A230 + b _0805A5FE + .pool +_0805A244: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldrb r1, [r3] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + adds r1, 0x9 + b _0805A536 + .pool +_0805A260: + movs r6, 0 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r2, =gPlayerParty + mov r8, r2 +_0805A26C: + adds r1, r6, 0 + adds r1, 0x11 + mov r2, r8 + adds r0, r4, r2 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, 0x1 + cmp r6, 0x3 + ble _0805A26C + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x15 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, 0x1 + b _0805A5FE + .pool +_0805A29C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldrb r1, [r3] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + adds r1, 0x8 + b _0805A5F6 + .pool +_0805A2B8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1 + b _0805A2D2 + .pool +_0805A2C8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x19 +_0805A2D2: + bl GetMonData + adds r1, r0, 0 + strb r1, [r7] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r0, 16 + strb r0, [r7, 0x2] + movs r6, 0x3 + b _0805A5FE + .pool +_0805A2F8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1A + b _0805A5F6 + .pool +_0805A308: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1B + b _0805A5F6 + .pool +_0805A318: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1C + b _0805A5F6 + .pool +_0805A328: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1D + b _0805A5F6 + .pool +_0805A338: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1E + b _0805A5F6 + .pool +_0805A348: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1F + b _0805A5F6 + .pool +_0805A358: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x20 + b _0805A5F6 + .pool +_0805A368: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x22 + b _0805A5F6 + .pool +_0805A378: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x23 + b _0805A5F6 + .pool +_0805A388: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x24 + b _0805A5F6 + .pool +_0805A398: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x25 + b _0805A5F6 + .pool +_0805A3A8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x26 + b _0805A5F6 + .pool +_0805A3B8: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x27 + bl GetMonData + strb r0, [r7] + adds r0, r4, 0 + movs r1, 0x28 + bl GetMonData + strb r0, [r7, 0x1] + adds r0, r4, 0 + movs r1, 0x29 + bl GetMonData + strb r0, [r7, 0x2] + adds r0, r4, 0 + movs r1, 0x2A + bl GetMonData + strb r0, [r7, 0x3] + adds r0, r4, 0 + movs r1, 0x2B + bl GetMonData + strb r0, [r7, 0x4] + adds r0, r4, 0 + movs r1, 0x2C + bl GetMonData + strb r0, [r7, 0x5] + movs r6, 0x6 + b _0805A5FE + .pool +_0805A408: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x27 + b _0805A5F6 + .pool +_0805A418: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x28 + b _0805A5F6 + .pool +_0805A428: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x29 + b _0805A5F6 + .pool +_0805A438: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x2A + b _0805A5F6 + .pool +_0805A448: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x2B + b _0805A5F6 + .pool +_0805A458: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x2C + b _0805A5F6 + .pool +_0805A468: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0 + b _0805A492 + .pool +_0805A478: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x9 + b _0805A536 + .pool +_0805A488: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x37 +_0805A492: + bl GetMonData + adds r1, r0, 0 + strb r1, [r7] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r0, 16 + strb r0, [r7, 0x2] + lsrs r0, r1, 24 + strb r0, [r7, 0x3] + movs r6, 0x4 + b _0805A5FE + .pool +_0805A4BC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x38 + b _0805A5F6 + .pool +_0805A4CC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x39 + b _0805A536 + .pool +_0805A4DC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3A + b _0805A536 + .pool +_0805A4EC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3B + b _0805A536 + .pool +_0805A4FC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3C + b _0805A536 + .pool +_0805A50C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3D + b _0805A536 + .pool +_0805A51C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3E + b _0805A536 + .pool +_0805A52C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3F +_0805A536: + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + strb r0, [r7] + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r6, 0x2 + b _0805A5FE + .pool +_0805A54C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x16 + b _0805A5F6 + .pool +_0805A55C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x17 + b _0805A5F6 + .pool +_0805A56C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x18 + b _0805A5F6 + .pool +_0805A57C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x21 + b _0805A5F6 + .pool +_0805A58C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x2F + b _0805A5F6 + .pool +_0805A59C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x30 + b _0805A5F6 + .pool +_0805A5AC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x32 + b _0805A5F6 + .pool +_0805A5BC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x33 + b _0805A5F6 + .pool +_0805A5CC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x34 + b _0805A5F6 + .pool +_0805A5DC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x35 + b _0805A5F6 + .pool +_0805A5EC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x36 +_0805A5F6: + bl GetMonData + strb r0, [r7] + movs r6, 0x1 +_0805A5FE: + adds r0, r6, 0 + add sp, 0x90 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end dp01_getattr_by_ch1_for_player_pokemon_ + + thumb_func_start sub_805A614 +sub_805A614: @ 805A614 + push {r4-r7,lr} + sub sp, 0x58 + ldr r2, =gBattlePartyID + ldr r5, =gActiveBank + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + adds r4, r2, 0 + muls r4, r0 + ldr r3, =gBattleBufferA + lsls r1, 9 + adds r0, r3, 0x1 + adds r0, r1, r0 + ldrb r2, [r0] + ldr r0, =gPlayerParty + adds r0, r2, r0 + adds r6, r4, r0 + mov r0, sp + adds r4, r0, r2 + movs r2, 0 + adds r0, r3, 0x2 + adds r1, r0 + adds r7, r5, 0 + mov r12, r3 + ldrb r1, [r1] + cmp r2, r1 + bcs _0805A66A + adds r3, r0, 0 +_0805A650: + adds r1, r4, r2 + adds r0, r6, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + ldrb r0, [r5] + lsls r0, 9 + adds r0, r3 + ldrb r0, [r0] + cmp r2, r0 + bcc _0805A650 +_0805A66A: + ldrb r0, [r7] + lsls r0, 9 + mov r1, r12 + adds r1, 0x2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + adds r2, r4, 0 + bl dp01_build_cmdbuf_x1D_1D_numargs_varargs + bl PlayerBufferExecCompleted + add sp, 0x58 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805A614 + + thumb_func_start dp01t_02_1_setattr +dp01t_02_1_setattr: @ 805A69C + push {r4,r5,lr} + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + bne _0805A6CC + ldr r0, =gBattlePartyID + lsls r1, r2, 1 + adds r1, r0 + ldrb r0, [r1] + bl dp01_setattr_by_ch1_for_player_pokemon + b _0805A6EA + .pool +_0805A6CC: + ldrb r4, [r1] + movs r5, 0 +_0805A6D0: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _0805A6DE + adds r0, r5, 0 + bl dp01_setattr_by_ch1_for_player_pokemon +_0805A6DE: + lsrs r4, 1 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _0805A6D0 +_0805A6EA: + bl PlayerBufferExecCompleted + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end dp01t_02_1_setattr + + thumb_func_start dp01_setattr_by_ch1_for_player_pokemon +dp01_setattr_by_ch1_for_player_pokemon: @ 805A6F4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x34 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 9 + ldr r2, =gUnknown_02023067 + adds r3, r0, r2 + adds r6, r3, 0 + subs r1, r2, 0x2 + adds r0, r1 + ldrb r0, [r0] + adds r7, r2, 0 + cmp r0, 0x3B + bls _0805A720 + bl _0805B0BA +_0805A720: + lsls r0, 2 + ldr r1, =_0805A738 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0805A738: + .4byte _0805A828 + .4byte _0805A9C0 + .4byte _0805A9E0 + .4byte _0805AA00 + .4byte _0805AA58 + .4byte _0805AA58 + .4byte _0805AA58 + .4byte _0805AA58 + .4byte _0805AA80 + .4byte _0805AAE4 + .4byte _0805AAE4 + .4byte _0805AAE4 + .4byte _0805AAE4 + .4byte _0805B0BA + .4byte _0805B0BA + .4byte _0805B0BA + .4byte _0805B0BA + .4byte _0805AB14 + .4byte _0805AB34 + .4byte _0805AB54 + .4byte _0805AB74 + .4byte _0805AB94 + .4byte _0805ABB4 + .4byte _0805ABD4 + .4byte _0805ABF4 + .4byte _0805AC14 + .4byte _0805AC34 + .4byte _0805AC54 + .4byte _0805AC74 + .4byte _0805AC94 + .4byte _0805ACB4 + .4byte _0805ACD4 + .4byte _0805AD44 + .4byte _0805AD64 + .4byte _0805AD84 + .4byte _0805ADA4 + .4byte _0805ADC4 + .4byte _0805ADE4 + .4byte _0805AE04 + .4byte _0805AE24 + .4byte _0805AE44 + .4byte _0805AE64 + .4byte _0805AE84 + .4byte _0805AEA4 + .4byte _0805AEC4 + .4byte _0805AEE4 + .4byte _0805AF04 + .4byte _0805AF24 + .4byte _0805AF44 + .4byte _0805AF64 + .4byte _0805AF84 + .4byte _0805AFA4 + .4byte _0805AFC4 + .4byte _0805AFE4 + .4byte _0805B004 + .4byte _0805B024 + .4byte _0805B044 + .4byte _0805B064 + .4byte _0805B084 + .4byte _0805B0A4 +_0805A828: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + adds r2, r6, 0 + bl SetMonData + adds r2, r6, 0 + adds r2, 0x2E + adds r0, r4, 0 + movs r1, 0xC + bl SetMonData + movs r0, 0 + mov r8, r0 + movs r0, 0x3B + adds r0, r6 + mov r10, r0 + adds r0, r6, 0 + adds r0, 0x2B + str r0, [sp, 0x20] + adds r0, 0x19 + str r0, [sp, 0x28] + adds r0, 0x4 + str r0, [sp, 0x2C] + adds r0, 0x4 + str r0, [sp, 0x30] + subs r0, 0x22 + str r0, [sp, 0x1C] + subs r0, 0x2 + str r0, [sp, 0x18] + adds r0, 0x4 + str r0, [sp, 0x24] + adds r0, r6, 0x2 + str r0, [sp, 0x4] + adds r0, r6, 0x4 + str r0, [sp, 0x8] + adds r0, r6, 0x6 + str r0, [sp, 0xC] + adds r0, 0x2 + str r0, [sp, 0x10] + adds r0, 0x2 + str r0, [sp, 0x14] + mov r9, r4 + adds r7, r6, 0 + adds r7, 0x24 + adds r4, r6, 0 + adds r4, 0xC +_0805A88E: + mov r1, r8 + adds r1, 0xD + mov r0, r9 + adds r2, r4, 0 + bl SetMonData + mov r1, r8 + adds r1, 0x11 + mov r0, r9 + adds r2, r7, 0 + bl SetMonData + adds r7, 0x1 + adds r4, 0x2 + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x3 + ble _0805A88E + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x15 + mov r2, r10 + bl SetMonData + adds r0, r4, 0 + movs r1, 0x20 + ldr r2, [sp, 0x20] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x19 + ldr r2, [sp, 0x28] + bl SetMonData + ldrb r0, [r6, 0x14] + lsls r0, 27 + lsrs r0, 27 + mov r1, sp + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x27 + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r6, 0x14] + lsls r0, 22 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x28 + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r6, 0x15] + lsls r0, 25 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x29 + mov r2, sp + bl SetMonData + mov r1, sp + ldr r0, [r6, 0x14] + lsls r0, 12 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2A + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r6, 0x16] + lsls r0, 23 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2B + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r6, 0x17] + lsls r0, 26 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2C + mov r2, sp + bl SetMonData + adds r0, r4, 0 + movs r1, 0 + ldr r2, [sp, 0x2C] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x37 + ldr r2, [sp, 0x30] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x38 + ldr r2, [sp, 0x1C] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x39 + ldr r2, [sp, 0x18] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3A + ldr r2, [sp, 0x24] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3B + ldr r2, [sp, 0x4] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3C + ldr r2, [sp, 0x8] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3D + ldr r2, [sp, 0xC] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3E + ldr r2, [sp, 0x10] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3F + ldr r2, [sp, 0x14] + bl SetMonData + b _0805B0BA + .pool +_0805A9C0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0xB + bl SetMonData + b _0805B0BA + .pool +_0805A9E0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0xC + bl SetMonData + b _0805B0BA + .pool +_0805AA00: + movs r0, 0 + mov r8, r0 + movs r0, 0xC + adds r0, r3 + mov r9, r0 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r7, r1, r0 + adds r6, r3, 0 + adds r6, 0x8 + adds r4, r3, 0 +_0805AA1A: + mov r1, r8 + adds r1, 0xD + adds r0, r7, 0 + adds r2, r4, 0 + bl SetMonData + mov r1, r8 + adds r1, 0x11 + adds r0, r7, 0 + adds r2, r6, 0 + bl SetMonData + adds r6, 0x1 + adds r4, 0x2 + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x3 + ble _0805AA1A + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x15 + mov r2, r9 + bl SetMonData + b _0805B0BA + .pool +_0805AA58: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r3, =gBattleBufferA + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, 0x9 + b _0805AAFC + .pool +_0805AA80: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + ldr r5, =gActiveBank + ldrb r2, [r5] + lsls r2, 9 + adds r2, r7 + adds r0, r4, 0 + movs r1, 0x11 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x1 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x12 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x2 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x13 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x3 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x14 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x4 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x15 + bl SetMonData + b _0805B0BA + .pool +_0805AAE4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r3, =gBattleBufferA + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, 0x8 +_0805AAFC: + adds r3, 0x3 + adds r2, r3 + bl SetMonData + b _0805B0BA + .pool +_0805AB14: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1 + bl SetMonData + b _0805B0BA + .pool +_0805AB34: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x19 + bl SetMonData + b _0805B0BA + .pool +_0805AB54: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1A + bl SetMonData + b _0805B0BA + .pool +_0805AB74: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1B + bl SetMonData + b _0805B0BA + .pool +_0805AB94: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1C + bl SetMonData + b _0805B0BA + .pool +_0805ABB4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1D + bl SetMonData + b _0805B0BA + .pool +_0805ABD4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1E + bl SetMonData + b _0805B0BA + .pool +_0805ABF4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1F + bl SetMonData + b _0805B0BA + .pool +_0805AC14: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x20 + bl SetMonData + b _0805B0BA + .pool +_0805AC34: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x22 + bl SetMonData + b _0805B0BA + .pool +_0805AC54: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x23 + bl SetMonData + b _0805B0BA + .pool +_0805AC74: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x24 + bl SetMonData + b _0805B0BA + .pool +_0805AC94: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x25 + bl SetMonData + b _0805B0BA + .pool +_0805ACB4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x26 + bl SetMonData + b _0805B0BA + .pool +_0805ACD4: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + ldr r5, =gActiveBank + ldrb r2, [r5] + lsls r2, 9 + adds r2, r7 + adds r0, r4, 0 + movs r1, 0x27 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x1 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x28 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x2 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x29 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x3 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x2A + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x4 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x2B + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x5 + adds r2, r0 + adds r0, r4, 0 + b _0805ADF4 + .pool +_0805AD44: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x27 + bl SetMonData + b _0805B0BA + .pool +_0805AD64: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x28 + bl SetMonData + b _0805B0BA + .pool +_0805AD84: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x29 + bl SetMonData + b _0805B0BA + .pool +_0805ADA4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x2A + bl SetMonData + b _0805B0BA + .pool +_0805ADC4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x2B + bl SetMonData + b _0805B0BA + .pool +_0805ADE4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 +_0805ADF4: + movs r1, 0x2C + bl SetMonData + b _0805B0BA + .pool +_0805AE04: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0 + bl SetMonData + b _0805B0BA + .pool +_0805AE24: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x9 + bl SetMonData + b _0805B0BA + .pool +_0805AE44: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x37 + bl SetMonData + b _0805B0BA + .pool +_0805AE64: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x38 + bl SetMonData + b _0805B0BA + .pool +_0805AE84: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x39 + bl SetMonData + b _0805B0BA + .pool +_0805AEA4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3A + bl SetMonData + b _0805B0BA + .pool +_0805AEC4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3B + bl SetMonData + b _0805B0BA + .pool +_0805AEE4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3C + bl SetMonData + b _0805B0BA + .pool +_0805AF04: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3D + bl SetMonData + b _0805B0BA + .pool +_0805AF24: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3E + bl SetMonData + b _0805B0BA + .pool +_0805AF44: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3F + bl SetMonData + b _0805B0BA + .pool +_0805AF64: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x16 + bl SetMonData + b _0805B0BA + .pool +_0805AF84: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x17 + bl SetMonData + b _0805B0BA + .pool +_0805AFA4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x18 + bl SetMonData + b _0805B0BA + .pool +_0805AFC4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x21 + bl SetMonData + b _0805B0BA + .pool +_0805AFE4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x2F + bl SetMonData + b _0805B0BA + .pool +_0805B004: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x30 + bl SetMonData + b _0805B0BA + .pool +_0805B024: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x32 + bl SetMonData + b _0805B0BA + .pool +_0805B044: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x33 + bl SetMonData + b _0805B0BA + .pool +_0805B064: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x34 + bl SetMonData + b _0805B0BA + .pool +_0805B084: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x35 + bl SetMonData + b _0805B0BA + .pool +_0805B0A4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x36 + bl SetMonData +_0805B0BA: + ldr r2, =gBattlePartyID + ldr r0, =gActiveBank + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, =gPlayerParty + adds r0, r2 + bl sub_805E990 + add sp, 0x34 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end dp01_setattr_by_ch1_for_player_pokemon + + thumb_func_start sub_805B0F0 +sub_805B0F0: @ 805B0F0 + push {r4-r7,lr} + ldr r1, =gBattlePartyID + ldr r7, =gActiveBank + ldrb r2, [r7] + lsls r0, r2, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + adds r3, r1, 0 + muls r3, r0 + ldr r4, =gBattleBufferA + lsls r2, 9 + adds r0, r4, 0x1 + adds r0, r2, r0 + ldrb r0, [r0] + ldr r1, =gPlayerParty + adds r0, r1 + adds r5, r3, r0 + movs r3, 0 + adds r0, r4, 0x2 + adds r2, r0 + ldrb r2, [r2] + cmp r3, r2 + bcs _0805B148 + adds r6, r4, 0 + adds r2, r7, 0 + adds r4, r0, 0 +_0805B126: + adds r1, r5, r3 + ldrb r0, [r2] + lsls r0, 9 + adds r0, 0x3 + adds r0, r3, r0 + adds r0, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + ldrb r0, [r2] + lsls r0, 9 + adds r0, r4 + ldrb r0, [r0] + cmp r3, r0 + bcc _0805B126 +_0805B148: + bl PlayerBufferExecCompleted + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805B0F0 + + thumb_func_start sub_805B164 +sub_805B164: @ 805B164 + push {r4,lr} + ldr r2, =gBattlePartyID + ldr r4, =gActiveBank + ldrb r1, [r4] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, =gPlayerParty + adds r0, r2 + bl sub_805DD7C + ldr r2, =gSprites + ldr r0, =gBankSpriteIds + ldrb r3, [r4] + adds r0, r3, r0 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + lsls r3, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =bx_0802E404 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805B164 + + thumb_func_start sub_805B1CC +sub_805B1CC: @ 805B1CC + push {r4-r6,lr} + ldr r5, =gActiveBank + ldrb r0, [r5] + ldr r4, =gBattleBufferA + lsls r1, r0, 9 + adds r6, r4, 0x2 + adds r1, r6 + ldrb r1, [r1] + bl sub_805EF84 + ldr r2, =gBattlePartyID + ldrb r0, [r5] + lsls r1, r0, 1 + adds r1, r2 + lsls r0, 9 + adds r4, 0x1 + adds r0, r4 + ldrb r0, [r0] + movs r4, 0 + strh r0, [r1] + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, =gPlayerParty + adds r0, r2 + bl sub_805DD7C + ldr r1, =gUnknown_020244AC + ldrb r0, [r5] + adds r0, r1 + strb r4, [r0] + ldr r1, =gUnknown_020244B0 + ldrb r0, [r5] + adds r0, r1 + strb r4, [r0] + ldrb r0, [r5] + lsls r1, r0, 9 + adds r1, r6 + ldrb r1, [r1] + bl sub_805B258 + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_805902C + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805B1CC + + thumb_func_start sub_805B258 +sub_805B258: @ 805B258 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + lsls r1, 24 + lsrs r1, 24 + adds r0, r6, 0 + bl sub_805EF84 + ldr r0, =gBattlePartyID + lsls r2, r6, 1 + adds r2, r0 + ldr r0, =gBattleBufferA + lsls r1, r6, 9 + adds r0, 0x1 + adds r1, r0 + ldrb r0, [r1] + strh r0, [r2] + ldrh r1, [r2] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + mov r8, r0 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r0, =sub_805D714 + bl CreateInvisibleSpriteWithCallback + ldr r1, =gUnknown_03005D7C + mov r9, r1 + add r9, r6 + mov r1, r9 + strb r0, [r1] + adds r0, r6, 0 + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r8 + bl sub_806A068 + ldr r0, =gUnknown_0202499C + mov r10, r0 + adds r0, r6, 0 + movs r1, 0x2 + bl sub_80A5C6C + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + adds r0, r6, 0 + bl sub_80A6138 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + bl sub_80A82E4 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + mov r0, r10 + adds r1, r5, 0 + adds r2, r4, 0 + bl CreateSprite + ldr r4, =gBankSpriteIds + adds r4, r6, r4 + strb r0, [r4] + ldr r5, =gSprites + mov r0, r9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r4] + strh r1, [r0, 0x30] + mov r0, r9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x32] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x2E] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + mov r1, r8 + strh r1, [r0, 0x32] + ldrb r0, [r4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + lsls r3, r6, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =gUnknown_020244E4 + adds r6, r1 + ldrb r1, [r6] + bl StartSpriteAnim + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =SpriteCallbackDummy + str r1, [r0] + movs r0, 0 + movs r1, 0xFF + bl sub_80753E8 + mov r1, r9 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r5 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0x2E] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805B258 + + thumb_func_start sub_805B3D4 +sub_805B3D4: @ 805B3D4 + push {r4-r6,lr} + ldr r1, =gBattleBufferA + ldr r6, =gActiveBank + ldrb r2, [r6] + lsls r0, r2, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r3, [r0] + cmp r3, 0 + bne _0805B41C + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + strb r3, [r0, 0x4] + ldr r1, =gBattleBankFunc + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_805B464 + str r1, [r0] + b _0805B452 + .pool +_0805B41C: + ldr r5, =gBankSpriteIds + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + ldr r1, =gUnknown_03005D70 + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + bl sub_8072984 + bl PlayerBufferExecCompleted +_0805B452: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805B3D4 + + thumb_func_start sub_805B464 +sub_805B464: @ 805B464 + push {r4-r6,lr} + ldr r6, =gUnknown_020244D0 + ldr r4, [r6] + ldr r5, =gActiveBank + ldrb r2, [r5] + ldr r1, [r4, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r3, r0, r1 + ldrb r0, [r3, 0x4] + cmp r0, 0 + beq _0805B48C + cmp r0, 0x1 + beq _0805B4BA + b _0805B4E2 + .pool +_0805B48C: + ldr r1, [r4] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0805B4A6 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_0805B4A6: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0, 0x4] + b _0805B4E2 +_0805B4BA: + ldrb r1, [r3] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _0805B4E2 + strb r0, [r3, 0x4] + ldrb r2, [r5] + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x1 + bl move_anim_start_t4 + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8059744 + str r1, [r0] +_0805B4E2: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805B464 + + thumb_func_start sub_805B4F0 +sub_805B4F0: @ 805B4F0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0805B5B4 + bl link_get_multiplayer_id + ldr r5, =gUnknown_020229E8 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r5 + movs r4, 0xFF + ldrb r0, [r1] + cmp r0, 0x4 + beq _0805B538 + bl link_get_multiplayer_id + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r5 + ldrh r1, [r1] + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0x5 + bne _0805B558 +_0805B538: + bl link_get_multiplayer_id + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r0, [r1, 0x13] + adds r4, r0, 0x2 + b _0805B5BA + .pool +_0805B558: + bl link_get_multiplayer_id + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r5 + ldrh r1, [r1] + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0x2 + beq _0805B58A + bl link_get_multiplayer_id + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r5 + ldrh r0, [r1] + ands r4, r0 + cmp r4, 0x1 + bne _0805B5A0 +_0805B58A: + bl link_get_multiplayer_id + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r0, [r1, 0x13] + adds r4, r0, 0x4 + b _0805B5BA +_0805B5A0: + bl link_get_multiplayer_id + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r4, [r1, 0x13] + b _0805B5BA +_0805B5B4: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r4, [r0, 0x8] +_0805B5BA: + ldr r0, =gBattleTypeFlags + ldr r1, [r0] + movs r2, 0x40 + ands r1, r2 + adds r5, r0, 0 + cmp r1, 0 + beq _0805B63C + ldr r0, =gActiveBank + ldrb r0, [r0] + bl GetBankIdentity + movs r1, 0x2 + ands r1, r0 + movs r0, 0x20 + mov r9, r0 + cmp r1, 0 + beq _0805B5E0 + movs r1, 0x5A + mov r9, r1 +_0805B5E0: + ldr r0, [r5] + movs r1, 0x80 + lsls r1, 15 + ands r0, r1 + cmp r0, 0 + beq _0805B618 + ldr r0, =gUnknown_02038BCE + ldrh r1, [r0] + ldr r0, =0x00000c03 + cmp r1, r0 + beq _0805B618 + movs r0, 0x5A + mov r9, r0 + ldr r1, =gUnknown_083054E0 + b _0805B642 + .pool +_0805B618: + ldr r1, =gUnknown_08305D2C + lsls r0, r4, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x8 + subs r0, r1 + lsls r0, 18 + movs r1, 0xA0 + lsls r1, 15 + adds r0, r1 + lsrs r7, r0, 16 + ldr r5, =gBattleTypeFlags + b _0805B656 + .pool +_0805B63C: + movs r0, 0x50 + mov r9, r0 + ldr r1, =gUnknown_08305D2C +_0805B642: + lsls r0, r4, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x8 + subs r0, r1 + lsls r0, 18 + movs r1, 0xA0 + lsls r1, 15 + adds r0, r1 + lsrs r7, r0, 16 +_0805B656: + ldr r0, [r5] + movs r1, 0x80 + lsls r1, 15 + ands r0, r1 + cmp r0, 0 + bne _0805B664 + b _0805B794 +_0805B664: + ldr r0, =gUnknown_02038BCE + ldrh r1, [r0] + ldr r0, =0x00000c03 + cmp r1, r0 + bne _0805B670 + b _0805B794 +_0805B670: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r0, [r0, 0x8] + bl sub_806F000 + lsls r0, 16 + lsrs r4, r0, 16 + adds r5, r4, 0 + ldr r6, =gActiveBank + ldrb r1, [r6] + adds r0, r5, 0 + bl sub_805DF38 + ldrb r0, [r6] + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl sub_806A1C0 + ldr r0, =gUnknown_0202499C + mov r8, r0 + lsls r4, r7, 16 + asrs r4, 16 + ldrb r0, [r6] + bl sub_80A82E4 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + mov r0, r8 + mov r1, r9 + adds r2, r4, 0 + bl CreateSprite + ldr r4, =gBankSpriteIds + ldrb r1, [r6] + adds r1, r4 + strb r0, [r1] + ldr r0, =gTrainerFrontPicPaletteTable + lsls r5, 3 + adds r5, r0 + ldrh r0, [r5, 0x4] + bl IndexOfSpritePaletteTag + ldr r5, =gSprites + ldrb r1, [r6] + adds r1, r4 + ldrb r1, [r1] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r5 + lsls r0, 4 + ldrb r3, [r2, 0x5] + movs r1, 0xF + ands r1, r3 + orrs r1, r0 + strb r1, [r2, 0x5] + ldrb r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0xF0 + strh r1, [r0, 0x24] + ldrb r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x30 + strh r1, [r0, 0x26] + ldrb r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =0x0000fffe + strh r1, [r0, 0x2E] + ldrb r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =sub_805D7AC + str r1, [r0] + ldrb r0, [r6] + adds r0, r4 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r2, [r1, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldrb r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3F + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + b _0805B82A + .pool +_0805B794: + ldr r5, =gActiveBank + ldrb r1, [r5] + adds r0, r4, 0 + bl sub_805DF84 + ldrb r0, [r5] + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl template_build_for_pokemon_or_trainer + ldr r6, =gUnknown_0202499C + mov r8, r9 + lsls r4, r7, 16 + asrs r4, 16 + ldrb r0, [r5] + bl sub_80A82E4 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + adds r0, r6, 0 + mov r1, r8 + adds r2, r4, 0 + bl CreateSprite + ldr r6, =gBankSpriteIds + ldrb r1, [r5] + adds r1, r6 + strb r0, [r1] + ldr r4, =gSprites + ldrb r3, [r5] + adds r0, r3, r6 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + lsls r3, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0xF0 + strh r1, [r0, 0x24] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =0x0000fffe + strh r1, [r0, 0x2E] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, =sub_805D7AC + str r1, [r0] +_0805B82A: + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8058844 + str r1, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805B4F0 + + thumb_func_start dp01t_08_1_8032428 +dp01t_08_1_8032428: @ 805B864 + push {r4-r6,lr} + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0805B920 + bl link_get_multiplayer_id + ldr r5, =gUnknown_020229E8 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r5 + movs r4, 0xFF + ldrb r0, [r1] + cmp r0, 0x4 + beq _0805B8A6 + bl link_get_multiplayer_id + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r5 + ldrh r1, [r1] + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0x5 + bne _0805B8C4 +_0805B8A6: + bl link_get_multiplayer_id + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r0, [r1, 0x13] + adds r4, r0, 0x2 + b _0805B926 + .pool +_0805B8C4: + bl link_get_multiplayer_id + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r5 + ldrh r1, [r1] + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0x2 + beq _0805B8F6 + bl link_get_multiplayer_id + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r5 + ldrh r0, [r1] + ands r4, r0 + cmp r4, 0x1 + bne _0805B90C +_0805B8F6: + bl link_get_multiplayer_id + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r0, [r1, 0x13] + adds r4, r0, 0x4 + b _0805B926 +_0805B90C: + bl link_get_multiplayer_id + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r4, [r1, 0x13] + b _0805B926 +_0805B920: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r4, [r0, 0x8] +_0805B926: + ldr r5, =gActiveBank + ldrb r1, [r5] + adds r0, r4, 0 + bl sub_805DF84 + ldrb r0, [r5] + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl template_build_for_pokemon_or_trainer + ldr r0, =gUnknown_0202499C + ldr r1, =gUnknown_08305D2C + lsls r4, 2 + adds r4, r1 + ldrb r1, [r4] + movs r2, 0x8 + subs r2, r1 + lsls r2, 18 + movs r1, 0xA0 + lsls r1, 15 + adds r2, r1 + asrs r2, 16 + movs r1, 0x50 + movs r3, 0x1E + bl CreateSprite + ldr r6, =gBankSpriteIds + ldrb r1, [r5] + adds r1, r6 + strb r0, [r1] + ldr r4, =gSprites + ldrb r3, [r5] + adds r0, r3, r6 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + lsls r3, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =0x0000ffa0 + strh r1, [r0, 0x24] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x2 + strh r1, [r0, 0x2E] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, =sub_805D7AC + str r1, [r0] + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_805887C + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end dp01t_08_1_8032428 + + thumb_func_start sub_805B9F8 +sub_805B9F8: @ 805B9F8 + push {r4-r6,lr} + ldr r5, =gBankSpriteIds + ldr r6, =gActiveBank + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + bl oamt_add_pos2_onto_pos1 + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x32 + strh r1, [r0, 0x2E] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =0x0000ffd8 + strh r1, [r0, 0x32] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x22] + strh r1, [r0, 0x36] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =sub_80A6EEC + str r1, [r0] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =SpriteCallbackDummy + bl oamt_set_x3A_32 + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x1 + bl StartSpriteAnim + ldr r1, =gBattleBankFunc + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, =bx_802F7A0 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805B9F8 + + thumb_func_start sub_805BAB8 +sub_805BAB8: @ 805BAB8 + push {r4-r6,lr} + ldr r6, =gUnknown_020244D0 + ldr r4, [r6] + ldr r5, =gActiveBank + ldrb r2, [r5] + ldr r0, [r4, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r3, r1, r0 + ldrb r0, [r3, 0x4] + cmp r0, 0 + bne _0805BB0C + ldr r1, [r4] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0805BAEC + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_0805BAEC: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x4] + adds r1, 0x1 + strb r1, [r0, 0x4] + b _0805BB82 + .pool +_0805BB0C: + ldrb r1, [r3] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _0805BB82 + strb r4, [r3, 0x4] + ldr r2, =gBattlePartyID + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, =gPlayerParty + adds r0, r2 + bl sub_805E990 + movs r1, 0x40 + negs r1, r1 + movs r0, 0x10 + bl PlaySE12WithPanning + ldr r2, =gSprites + ldr r3, =gBankSpriteIds + ldrb r0, [r5] + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r4, [r0, 0x30] + ldrb r0, [r5] + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x5 + strh r1, [r0, 0x32] + ldrb r0, [r5] + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, =sub_8039C00 + str r1, [r0] + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_80596A8 + str r1, [r0] +_0805BB82: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805BAB8 + + thumb_func_start sub_805BBA4 +sub_805BBA4: @ 805BBA4 + push {lr} + sub sp, 0x4 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r1, 0x2 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + bl PlayerBufferExecCompleted + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_805BBA4 + + thumb_func_start sub_805BBC4 +sub_805BBC4: @ 805BBC4 + push {r4,r5,lr} + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r1, [r0, 0x8] + movs r0, 0x4 + strb r0, [r1, 0x8] + ldr r1, =gDoingBattleAnim + movs r0, 0x1 + strb r0, [r1] + ldr r5, =gActiveBank + ldrb r4, [r5] + movs r0, 0x1 + bl GetBankByPlayerAI + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r4, 0 + adds r1, r4, 0 + movs r3, 0x3 + bl move_anim_start_t4 + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =bx_wait_t1 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805BBC4 + + thumb_func_start sub_805BC18 +sub_805BC18: @ 805BC18 + push {r4,r5,lr} + ldr r1, =gBattleBufferA + ldr r5, =gActiveBank + ldrb r0, [r5] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r1, [r0] + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r0, [r0, 0x8] + strb r1, [r0, 0x8] + ldr r1, =gDoingBattleAnim + movs r0, 0x1 + strb r0, [r1] + ldrb r4, [r5] + movs r0, 0x1 + bl GetBankByPlayerAI + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r4, 0 + adds r1, r4, 0 + movs r3, 0x3 + bl move_anim_start_t4 + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =bx_wait_t1 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805BC18 + + thumb_func_start sub_805BC78 +sub_805BC78: @ 805BC78 + push {lr} + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0805BC96 +_0805BC8C: + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _0805BC8C +_0805BC96: + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_805BC78 + + thumb_func_start dp01t_0F_1_move_anim +dp01t_0F_1_move_anim: @ 805BCA8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r5, =gActiveBank + ldrb r0, [r5] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + beq _0805BCBE + b _0805BDE4 +_0805BCBE: + ldr r0, =gBattleBufferA + mov r12, r0 + ldrb r1, [r5] + lsls r1, 9 + adds r0, 0x1 + adds r0, r1, r0 + ldrb r6, [r0] + mov r0, r12 + adds r0, 0x2 + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, 8 + orrs r6, r0 + ldr r0, =gUnknown_02038432 + mov r8, r0 + mov r0, r12 + adds r0, 0x3 + adds r1, r0 + ldrb r0, [r1] + mov r1, r8 + strb r0, [r1] + ldr r3, =gMovePowerMoveAnim + ldrb r1, [r5] + lsls r1, 9 + mov r0, r12 + adds r0, 0x4 + adds r0, r1, r0 + ldrb r2, [r0] + mov r0, r12 + adds r0, 0x5 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 8 + orrs r2, r0 + strh r2, [r3] + ldr r3, =gMoveDmgMoveAnim + ldrb r1, [r5] + lsls r1, 9 + mov r0, r12 + adds r0, 0x6 + adds r0, r1, r0 + ldrb r2, [r0] + mov r0, r12 + adds r0, 0x7 + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, 8 + orrs r2, r0 + mov r0, r12 + adds r0, 0x8 + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, 16 + orrs r2, r0 + mov r0, r12 + adds r0, 0x9 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 24 + orrs r2, r0 + str r2, [r3] + ldr r2, =gHappinessMoveAnim + ldrb r0, [r5] + lsls r0, 9 + mov r1, r12 + adds r1, 0xA + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + ldr r4, =gWeatherMoveAnim + ldrb r1, [r5] + lsls r1, 9 + mov r0, r12 + adds r0, 0xC + adds r0, r1, r0 + ldrb r2, [r0] + mov r0, r12 + adds r0, 0xD + adds r1, r0 + ldrb r0, [r1] + lsls r0, 8 + orrs r2, r0 + strh r2, [r4] + ldr r7, =gDisableStructMoveAnim + ldrb r1, [r5] + lsls r1, 9 + mov r0, r12 + adds r0, 0x10 + adds r1, r0 + str r1, [r7] + ldr r2, =gUnknown_020244BC + ldrb r0, [r5] + lsls r0, 2 + adds r0, r2 + ldr r1, [r1] + str r1, [r0] + mov r0, r8 + ldrb r1, [r0] + adds r0, r6, 0 + bl sub_805DB8C + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _0805BDBC + bl PlayerBufferExecCompleted + b _0805BDE4 + .pool +_0805BDBC: + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strb r3, [r0, 0x4] + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =bx_move_anim_1 + str r1, [r0] + ldrh r1, [r4] + ldr r2, [r7] + adds r0, r6, 0 + bl sub_817E0FC +_0805BDE4: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end dp01t_0F_1_move_anim + + thumb_func_start bx_move_anim_1 +bx_move_anim_1: @ 805BDFC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r2, =gBattleBufferA + ldr r6, =gActiveBank + ldrb r3, [r6] + lsls r1, r3, 9 + adds r0, r2, 0x1 + mov r10, r0 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, r2, 0x2 + mov r9, r5 + adds r0, r1, r5 + ldrb r0, [r0] + lsls r0, 8 + orrs r4, r0 + adds r2, 0xB + adds r1, r2 + ldrb r1, [r1] + mov r8, r1 + ldr r7, =gUnknown_020244D0 + ldr r5, [r7] + ldr r1, [r5, 0x4] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0, 0x4] + cmp r2, 0x1 + beq _0805BE94 + cmp r2, 0x1 + bgt _0805BE54 + cmp r2, 0 + beq _0805BE5E + b _0805BF70 + .pool +_0805BE54: + cmp r2, 0x2 + beq _0805BEBE + cmp r2, 0x3 + beq _0805BF34 + b _0805BF70 +_0805BE5E: + ldr r1, [r5] + lsls r0, r3, 2 + adds r1, r0, r1 + ldrb r2, [r1] + movs r0, 0xC + ands r0, r2 + cmp r0, 0x4 + bne _0805BE80 + movs r0, 0x8 + orrs r0, r2 + strb r0, [r1] + ldrb r2, [r6] + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_0805BE80: + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0, 0x4] + b _0805BF70 +_0805BE94: + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0805BF70 + movs r0, 0 + bl sub_805EB9C + adds r0, r4, 0 + bl move_anim_start_t1 + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x2 + strb r1, [r0, 0x4] + b _0805BF70 +_0805BEBE: + ldr r0, =gAnimScriptCallback + ldr r0, [r0] + bl _call_via_r0 + ldr r0, =gAnimScriptActive + ldrb r0, [r0] + cmp r0, 0 + bne _0805BF70 + movs r0, 0x1 + bl sub_805EB9C + ldr r0, [r7] + ldrb r2, [r6] + ldr r1, [r0] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0805BF0C + mov r0, r8 + cmp r0, 0x1 + bhi _0805BF0C + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x6 + bl move_anim_start_t4 + ldr r0, [r7] + ldrb r1, [r6] + ldr r0, [r0] + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x9 + negs r0, r0 + ands r0, r2 + strb r0, [r1] +_0805BF0C: + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + strb r1, [r0, 0x4] + b _0805BF70 + .pool +_0805BF34: + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _0805BF70 + bl sub_805E394 + ldrb r0, [r6] + lsls r2, r0, 9 + mov r3, r10 + adds r1, r2, r3 + ldrb r1, [r1] + add r2, r9 + ldrb r2, [r2] + lsls r2, 8 + orrs r1, r2 + bl sub_805E94C + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strb r4, [r0, 0x4] + bl PlayerBufferExecCompleted +_0805BF70: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end bx_move_anim_1 + + thumb_func_start sub_805BF80 +sub_805BF80: @ 805BF80 + push {r4,r5,lr} + ldr r0, =gUnknown_02022E14 + movs r1, 0 + strh r1, [r0] + ldr r0, =gUnknown_02022E16 + strh r1, [r0] + ldr r5, =gActiveBank + ldrb r4, [r5] + lsls r4, 9 + ldr r0, =gUnknown_02023066 + adds r4, r0 + ldrh r0, [r4] + bl battle_pick_message + ldr r0, =gUnknown_02022E2C + movs r1, 0 + bl battle_show_message_maybe + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_80597B4 + str r1, [r0] + ldrh r0, [r4] + bl sub_817C95C + ldrb r0, [r5] + ldrh r1, [r4] + bl sub_81A57E4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805BF80 + + thumb_func_start dp01t_11_1_message_for_player_only +dp01t_11_1_message_for_player_only: @ 805BFE0 + push {lr} + ldr r0, =gActiveBank + ldrb r0, [r0] + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _0805BFFC + bl sub_805BF80 + b _0805C000 + .pool +_0805BFFC: + bl PlayerBufferExecCompleted +_0805C000: + pop {r0} + bx r0 + thumb_func_end dp01t_11_1_message_for_player_only + + thumb_func_start sub_805C004 +sub_805C004: @ 805C004 + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _0805C02A + ldr r0, =gUnknown_02022E14 + strh r1, [r0] + ldr r1, =gUnknown_02022E16 + movs r0, 0xA0 + strh r0, [r1] + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8057588 + str r1, [r0] +_0805C02A: + pop {r0} + bx r0 + .pool + thumb_func_end sub_805C004 + + thumb_func_start dp01t_12_6_battle_menu +dp01t_12_6_battle_menu: @ 805C044 + push {r4,lr} + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_805C004 + str r1, [r0] + bl sub_817F2A8 + ldr r0, =gUnknown_085CCA3A + movs r1, 0x2 + bl battle_show_message_maybe + movs r4, 0 +_0805C062: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_8059CF8 + adds r4, 0x1 + cmp r4, 0x3 + ble _0805C062 + ldr r1, =gUnknown_020244AC + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + movs r1, 0 + bl sub_8059CB4 + ldr r0, =gUnknown_085CC9F3 + bl get_battle_strings_ + ldr r0, =gUnknown_02022E2C + movs r1, 0x1 + bl battle_show_message_maybe + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end dp01t_12_6_battle_menu + + thumb_func_start sub_805C0B0 +sub_805C0B0: @ 805C0B0 + push {r4,lr} + sub sp, 0x4 + ldr r4, =gActiveBank + ldrb r0, [r4] + bl GetBankSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _0805C108 + str r0, [sp] + movs r0, 0x18 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl sub_8056A3C + ldr r0, =gUnknown_085CCABB + movs r1, 0xC + bl battle_show_message_maybe + ldr r1, =gUnknown_03005D74 + movs r0, 0x1 + strb r0, [r1] + movs r0, 0x1 + bl sub_8056B74 + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_80599D4 + str r1, [r0] + b _0805C10C + .pool +_0805C108: + bl PlayerBufferExecCompleted +_0805C10C: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_805C0B0 + + thumb_func_start sub_805C114 +sub_805C114: @ 805C114 + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _0805C13E + ldr r0, =gUnknown_02022E14 + strh r1, [r0] + ldr r1, =gUnknown_02022E16 + movs r2, 0xA0 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8057BFC + str r1, [r0] +_0805C13E: + pop {r0} + bx r0 + .pool + thumb_func_end sub_805C114 + + thumb_func_start sub_805C158 +sub_805C158: @ 805C158 + push {lr} + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r0, =gBattleStruct + ldr r0, [r0] + adds r1, r0 + movs r0, 0xA6 + lsls r0, 2 + adds r1, r0 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bne _0805C194 + ldr r1, =gUnknown_0203BD30 + ldr r0, =gRngValue + ldr r0, [r0] + str r0, [r1] + bl sub_805D19C + adds r2, r0, 0 + lsls r2, 16 + lsrs r2, 16 + movs r0, 0x1 + movs r1, 0xA + bl dp01_build_cmdbuf_x21_a_bb + bl PlayerBufferExecCompleted +_0805C194: + pop {r0} + bx r0 + .pool + thumb_func_end sub_805C158 + + thumb_func_start dp01t_14_5_move_menu_pokedude +dp01t_14_5_move_menu_pokedude: @ 805C1A8 + push {lr} + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 10 + ands r0, r1 + cmp r0, 0 + beq _0805C1EC + ldr r2, =gActiveBank + ldrb r0, [r2] + ldr r1, =gBattleStruct + ldr r1, [r1] + adds r0, r1 + movs r1, 0xA6 + lsls r1, 2 + adds r0, r1 + movs r1, 0x8 + strb r1, [r0] + ldr r1, =gBattleBankFunc + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_805C158 + b _0805C1FC + .pool +_0805C1EC: + bl sub_805C210 + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_805C114 +_0805C1FC: + str r1, [r0] + pop {r0} + bx r0 + .pool + thumb_func_end dp01t_14_5_move_menu_pokedude + + thumb_func_start sub_805C210 +sub_805C210: @ 805C210 + push {lr} + bl sub_8059AAC + ldr r1, =gUnknown_03005D74 + movs r0, 0xFF + strb r0, [r1] + ldr r1, =gUnknown_020244B0 + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + movs r1, 0 + bl battle_menu_cursor_related_2 + bl sub_8059B18 + bl sub_8059B3C + bl sub_8059BB0 + pop {r0} + bx r0 + .pool + thumb_func_end sub_805C210 + + thumb_func_start sub_805C248 +sub_805C248: @ 805C248 + push {r4,r5,lr} + sub sp, 0x4 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, =gBattleBankFunc + ldr r2, =gActiveBank + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_80598A4 + str r1, [r0] + ldr r1, =gUnknown_020244B8 + ldrb r0, [r2] + strb r0, [r1] + movs r3, 0 + ldr r5, =gUnknown_0203CF00 + ldr r4, =gBattleBufferA +_0805C276: + adds r0, r3, r5 + ldrb r1, [r2] + lsls r1, 9 + adds r1, 0x1 + adds r1, r3, r1 + adds r1, r4 + ldrb r1, [r1] + strb r1, [r0] + adds r3, 0x1 + cmp r3, 0x2 + ble _0805C276 + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805C248 + + thumb_func_start sub_805C2AC +sub_805C2AC: @ 805C2AC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + movs r3, 0 + ldr r0, =gUnknown_0203CF00 + mov r12, r0 + ldr r1, =gBattleBufferA + mov r8, r1 + ldr r2, =gActiveBank + ldr r7, =gBattleTypeFlags + mov r6, r12 + mov r5, r8 + adds r4, r2, 0 +_0805C2C8: + adds r0, r3, r6 + ldrb r1, [r4] + lsls r1, 9 + adds r1, 0x4 + adds r1, r3, r1 + adds r1, r5 + ldrb r1, [r1] + strb r1, [r0] + adds r3, 0x1 + cmp r3, 0x2 + ble _0805C2C8 + ldr r0, [r7] + movs r1, 0x80 + lsls r1, 11 + ands r0, r1 + cmp r0, 0 + beq _0805C330 + ldrb r3, [r2] + lsls r0, r3, 9 + mov r1, r8 + adds r1, 0x1 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0xF + ands r0, r1 + cmp r0, 0x2 + beq _0805C330 + ldr r1, =gBattlePartyID + lsls r0, r3, 1 + adds r0, r1 + ldrb r1, [r0] + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x1 + mov r2, r12 + bl dp01_build_cmdbuf_x22_a_three_bytes + bl PlayerBufferExecCompleted + b _0805C3BC + .pool +_0805C330: + ldr r0, =TaskDummy + movs r1, 0xFF + bl CreateTask + ldr r3, =gUnknown_03005D7C + ldr r4, =gActiveBank + ldrb r1, [r4] + adds r1, r3 + movs r2, 0 + mov r8, r2 + strb r0, [r1] + ldr r5, =gTasks + ldrb r2, [r4] + adds r3, r2, r3 + ldrb r0, [r3] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r5 + ldr r5, =gBattleBufferA + lsls r2, 9 + adds r6, r5, 0x1 + adds r2, r6 + ldrb r2, [r2] + movs r0, 0xF + ands r0, r2 + strh r0, [r1, 0x8] + ldr r3, =gBattleStruct + ldr r1, [r3] + adds r1, 0x49 + ldrb r0, [r4] + lsls r0, 9 + adds r0, r6 + ldrb r0, [r0] + lsrs r0, 4 + strb r0, [r1] + ldr r2, [r3] + adds r2, 0x8B + ldrb r0, [r4] + lsls r0, 9 + adds r1, r5, 0x2 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + ldr r1, [r3] + adds r1, 0xB0 + ldrb r0, [r4] + lsls r0, 9 + adds r5, 0x3 + adds r0, r5 + ldrb r0, [r0] + strb r0, [r1] + movs r0, 0x1 + negs r0, r0 + mov r1, r8 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_80597CC + str r1, [r0] + ldr r1, =gUnknown_020244B8 + ldrb r0, [r4] + strb r0, [r1] +_0805C3BC: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805C2AC + + thumb_func_start sub_805C3EC +sub_805C3EC: @ 805C3EC + push {lr} + sub sp, 0x4 + bl sub_805EA60 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r1, 0x2 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + bl PlayerBufferExecCompleted + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_805C3EC + + thumb_func_start sub_805C410 +sub_805C410: @ 805C410 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + movs r0, 0 + bl load_gfxc_health_bar + ldr r3, =gBattleBufferA + ldr r0, =gActiveBank + mov r9, r0 + ldrb r1, [r0] + lsls r1, 9 + adds r0, r3, 0x2 + adds r0, r1, r0 + ldrb r2, [r0] + adds r3, 0x3 + adds r1, r3 + ldrb r0, [r1] + lsls r0, 8 + orrs r2, r0 + lsls r2, 16 + asrs r7, r2, 16 + cmp r7, 0 + ble _0805C44A + ldr r1, =gUnknown_0203CD70 + ldr r0, [r1] + adds r0, r7 + str r0, [r1] +_0805C44A: + ldr r0, =0x00007fff + cmp r7, r0 + beq _0805C4B4 + ldr r6, =gBattlePartyID + mov r1, r9 + ldrb r0, [r1] + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + movs r5, 0x64 + muls r0, r5 + ldr r4, =gPlayerParty + adds r0, r4 + movs r1, 0x3A + bl GetMonData + mov r8, r0 + mov r2, r9 + ldrb r0, [r2] + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + muls r0, r5 + adds r0, r4 + movs r1, 0x39 + bl GetMonData + adds r3, r0, 0 + mov r1, r9 + ldrb r0, [r1] + ldr r1, =gUnknown_03005D70 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + mov r2, r8 + bl sub_807294C + b _0805C4F2 + .pool +_0805C4B4: + ldr r1, =gBattlePartyID + mov r2, r9 + ldrb r0, [r2] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3A + bl GetMonData + adds r2, r0, 0 + mov r1, r9 + ldrb r0, [r1] + ldr r4, =gUnknown_03005D70 + adds r1, r0, r4 + ldrb r1, [r1] + str r7, [sp] + movs r3, 0 + bl sub_807294C + mov r2, r9 + ldrb r0, [r2] + adds r0, r4 + ldrb r0, [r0] + movs r1, 0 + movs r2, 0 + bl heathbar_draw_hp +_0805C4F2: + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =bx_t1_healthbar_update + str r1, [r0] + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805C410 + + thumb_func_start sub_805C528 +sub_805C528: @ 805C528 + push {r4-r7,lr} + ldr r5, =gBattleBufferA + ldr r6, =gActiveBank + ldrb r0, [r6] + lsls r0, 9 + adds r1, r5, 0x1 + adds r0, r1 + ldrb r7, [r0] + movs r0, 0x64 + adds r1, r7, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + cmp r0, 0x63 + bls _0805C560 + bl PlayerBufferExecCompleted + b _0805C5AC + .pool +_0805C560: + movs r0, 0x1 + bl load_gfxc_health_bar + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + ldrb r1, [r6] + lsls r1, 9 + adds r0, r5, 0x2 + adds r0, r1, r0 + ldrb r4, [r0] + adds r0, r5, 0x3 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 8 + orrs r4, r0 + ldr r0, =sub_80591B8 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r7, [r1, 0x8] + strh r4, [r1, 0xA] + ldrb r0, [r6] + strh r0, [r1, 0xC] + ldr r1, =gBattleBankFunc + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, =nullsub_21 + str r1, [r0] +_0805C5AC: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805C528 + + thumb_func_start sub_805C5C4 +sub_805C5C4: @ 805C5C4 + push {r4,lr} + ldr r4, =gActiveBank + ldrb r0, [r4] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _0805C618 + ldr r0, =gUnknown_03005D70 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + ldr r2, =gBattlePartyID + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gPlayerParty + adds r1, r2 + movs r2, 0x9 + bl healthbar_draw_field_maybe + ldrb r2, [r4] + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8059D60 + str r1, [r0] +_0805C618: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805C5C4 + + thumb_func_start sub_805C63C +sub_805C63C: @ 805C63C + push {r4,r5,lr} + ldr r5, =gActiveBank + ldrb r0, [r5] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _0805C68C + ldr r4, =gBattleBufferA + ldrb r3, [r5] + lsls r3, 9 + adds r0, r4, 0x1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, 0x2 + adds r1, r3, r1 + ldrb r1, [r1] + adds r2, r4, 0x3 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, 8 + orrs r1, r2 + adds r2, r4, 0x4 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, 16 + orrs r1, r2 + adds r4, 0x5 + adds r3, r4 + ldrb r2, [r3] + lsls r2, 24 + orrs r1, r2 + bl move_anim_start_t2_for_situation + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8059D60 + str r1, [r0] +_0805C68C: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805C63C + + thumb_func_start sub_805C6A4 +sub_805C6A4: @ 805C6A4 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x4 + ldr r0, =gBattlePartyID + mov r8, r0 + ldr r4, =gActiveBank + ldrb r0, [r4] + lsls r0, 1 + add r0, r8 + ldrh r0, [r0] + movs r6, 0x64 + muls r0, r6 + ldr r5, =gPlayerParty + adds r0, r5 + movs r1, 0x37 + bl GetMonData + ldr r2, =gBattleBufferA + ldrb r1, [r4] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + eors r0, r1 + mov r1, sp + strb r0, [r1] + ldrb r0, [r4] + lsls r0, 1 + add r0, r8 + ldrh r0, [r0] + muls r0, r6 + adds r0, r5 + movs r1, 0x37 + mov r2, sp + bl SetMonData + bl PlayerBufferExecCompleted + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805C6A4 + + thumb_func_start sub_805C710 +sub_805C710: @ 805C710 + push {lr} + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_805C710 + + thumb_func_start sub_805C71C +sub_805C71C: @ 805C71C + push {r4,r5,lr} + ldr r3, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r2, [r0] + lsls r2, 9 + adds r0, r3, 0x1 + adds r0, r2, r0 + ldrb r5, [r0] + adds r0, r3, 0x2 + adds r0, r2, r0 + ldrb r0, [r0] + lsls r0, 8 + orrs r5, r0 + adds r0, r3, 0x3 + adds r0, r2, r0 + ldrb r0, [r0] + lsls r0, 16 + orrs r5, r0 + adds r0, r3, 0x4 + adds r0, r2, r0 + ldrb r4, [r0] + lsls r4, 24 + adds r0, r3, 0x5 + adds r0, r2, r0 + ldrb r1, [r0] + adds r0, r3, 0x6 + adds r0, r2, r0 + ldrb r0, [r0] + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + adds r3, 0x7 + adds r2, r3 + orrs r5, r4 + lsrs r4, r1, 16 + movs r0, 0x80 + lsls r0, 5 + cmp r4, r0 + bhi _0805C78C + ldr r0, =0x040000d4 + str r2, [r0] + str r5, [r0, 0x4] + lsrs r1, 17 + movs r2, 0x80 + lsls r2, 24 + orrs r1, r2 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + b _0805C7B8 + .pool +_0805C78C: + ldr r3, =0x040000d4 + str r2, [r3] + str r5, [r3, 0x4] + ldr r0, =0x80000800 + str r0, [r3, 0x8] + ldr r0, [r3, 0x8] + movs r0, 0x80 + lsls r0, 5 + adds r2, r0 + adds r5, r0 + ldr r1, =0xfffff000 + adds r4, r1 + cmp r4, r0 + bhi _0805C78C + str r2, [r3] + str r5, [r3, 0x4] + lsrs r0, r4, 1 + movs r1, 0x80 + lsls r1, 24 + orrs r0, r1 + str r0, [r3, 0x8] + ldr r0, [r3, 0x8] +_0805C7B8: + bl PlayerBufferExecCompleted + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805C71C + + thumb_func_start sub_805C7D0 +sub_805C7D0: @ 805C7D0 + push {lr} + ldr r2, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r1, [r0] + lsls r1, 9 + adds r0, r2, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + bl PlayBGM + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_805C7D0 + + thumb_func_start sub_805C800 +sub_805C800: @ 805C800 + push {lr} + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_805C800 + + thumb_func_start sub_805C80C +sub_805C80C: @ 805C80C + push {lr} + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl dp01_build_cmdbuf_x21_a_bb + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_805C80C + + thumb_func_start sub_805C820 +sub_805C820: @ 805C820 + push {lr} + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl dp01_build_cmdbuf_x22_a_three_bytes + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_805C820 + + thumb_func_start sub_805C834 +sub_805C834: @ 805C834 + push {lr} + movs r0, 0x1 + movs r1, 0 + bl dp01_build_cmdbuf_x23_aa_0 + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_805C834 + + thumb_func_start sub_805C848 +sub_805C848: @ 805C848 + push {lr} + movs r0, 0x1 + movs r1, 0 + bl dp01_build_cmdbuf_x24_aa_0 + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_805C848 + + thumb_func_start sub_805C85C +sub_805C85C: @ 805C85C + push {lr} + ldr r2, =gUnknown_02022D0C + ldrb r1, [r2] + movs r0, 0x80 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_805C85C + + thumb_func_start sub_805C878 +sub_805C878: @ 805C878 + push {lr} + ldr r3, =gUnknown_02022D0C + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + movs r1, 0x7F + ands r1, r0 + ldrb r2, [r3] + movs r0, 0x80 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_805C878 + + thumb_func_start sub_805C8B0 +sub_805C8B0: @ 805C8B0 + push {lr} + ldr r2, =gUnknown_02022D0C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_805C8B0 + + thumb_func_start sub_805C8C8 +sub_805C8C8: @ 805C8C8 + push {lr} + ldr r3, =gUnknown_02022D0C + ldr r1, [r3] + lsls r1, 24 + lsrs r1, 31 + movs r0, 0x1 + eors r1, r0 + lsls r1, 7 + ldrb r2, [r3] + movs r0, 0x7F + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_805C8C8 + + thumb_func_start dp01t_29_1_blink +dp01t_29_1_blink: @ 805C8F0 + push {r4,lr} + ldr r3, =gSprites + ldr r2, =gBankSpriteIds + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + bge _0805C924 + bl PlayerBufferExecCompleted + b _0805C94E + .pool +_0805C924: + ldr r1, =gDoingBattleAnim + movs r0, 0x1 + strb r0, [r1] + ldrb r0, [r4] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0 + strh r1, [r0, 0x30] + ldrb r0, [r4] + bl sub_80769F4 + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =bx_blink_t1 + str r1, [r0] +_0805C94E: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end dp01t_29_1_blink + + thumb_func_start sub_805C960 +sub_805C960: @ 805C960 + push {lr} + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_805C960 + + thumb_func_start sub_805C96C +sub_805C96C: @ 805C96C + push {r4,lr} + ldr r4, =gActiveBank + ldrb r0, [r4] + bl GetBankSide + lsls r0, 24 + movs r3, 0x3F + cmp r0, 0 + bne _0805C980 + movs r3, 0xC0 +_0805C980: + ldr r2, =gBattleBufferA + ldrb r1, [r4] + lsls r1, 9 + adds r0, r2, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + lsls r1, r3, 24 + asrs r1, 24 + bl PlaySE12WithPanning + bl PlayerBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805C96C + + thumb_func_start sub_805C9B0 +sub_805C9B0: @ 805C9B0 + push {r4,r5,lr} + ldr r4, =gBattleBufferA + ldr r5, =gActiveBank + ldrb r0, [r5] + lsls r3, r0, 9 + adds r0, r4, 0x3 + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, 0 + beq _0805C9EC + bl sub_805EA60 + ldrb r1, [r5] + lsls r1, 9 + adds r0, r4, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, r4, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + bl PlayBGM + b _0805CA00 + .pool +_0805C9EC: + adds r0, r4, 0x1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, 0x2 + adds r1, r3, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + bl PlayFanfare +_0805CA00: + bl PlayerBufferExecCompleted + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_805C9B0 + + thumb_func_start sub_805CA0C +sub_805CA0C: @ 805CA0C + push {lr} + ldr r1, =gBattlePartyID + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x19 + negs r1, r1 + movs r2, 0x5 + bl PlayCry3 + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_805CA0C + + thumb_func_start dp01t_2E_1_battle_intro +dp01t_2E_1_battle_intro: @ 805CA4C + push {lr} + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + bl battle_intro_launch + ldr r2, =gUnknown_020243FC + ldrh r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r2] + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end dp01t_2E_1_battle_intro + + thumb_func_start dp01t_2F_1_pokemon_enter +dp01t_2F_1_pokemon_enter: @ 805CA80 + push {r4-r7,lr} + ldr r6, =gBankSpriteIds + ldr r7, =gActiveBank + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, =gSprites + adds r0, r5 + bl oamt_add_pos2_onto_pos1 + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x32 + strh r1, [r0, 0x2E] + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =0x0000ffd8 + strh r1, [r0, 0x32] + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r1, [r0, 0x22] + strh r1, [r0, 0x36] + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =sub_80A6EEC + str r1, [r0] + ldrb r2, [r7] + adds r0, r2, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x38] + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =sub_805CC00 + bl oamt_set_x3A_32 + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x1 + bl StartSpriteAnim + ldr r0, =0x0000d6f8 + bl AllocSpritePalette + adds r4, r0, 0 + lsls r4, 24 + ldr r1, =gTrainerBackPicPaletteTable + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r0, [r0, 0x8] + lsls r0, 3 + adds r0, r1 + ldr r0, [r0] + lsrs r4, 20 + movs r2, 0x80 + lsls r2, 1 + adds r1, r4, r2 + movs r2, 0x20 + bl LoadCompressedPalette + ldrb r0, [r7] + adds r0, r6 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r4 + strb r0, [r1, 0x5] + ldr r0, =task05_08033660 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r4, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r4 + ldrb r0, [r7] + strh r0, [r1, 0x8] + ldr r3, =gUnknown_020244D0 + ldr r0, [r3] + ldrb r2, [r7] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0805CBA2 + ldr r0, =gUnknown_020244B4 + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + ldr r1, =sub_8073C30 + str r1, [r0] +_0805CBA2: + ldr r0, [r3] + ldr r2, [r0, 0x8] + ldrb r0, [r2, 0x9] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x9] + ldr r1, =gBattleBankFunc + ldrb r0, [r7] + lsls r0, 2 + adds r0, r1 + ldr r1, =nullsub_21 + str r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end dp01t_2F_1_pokemon_enter + + thumb_func_start sub_805CC00 +sub_805CC00: @ 805CC00 + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r4, [r5, 0x38] + lsls r4, 24 + lsrs r4, 24 + bl FreeSpriteOamMatrix + ldrb r0, [r5, 0x5] + lsrs r0, 4 + bl GetSpritePaletteTagByPaletteNum + lsls r0, 16 + lsrs r0, 16 + bl FreeSpritePaletteByTag + adds r0, r5, 0 + bl DestroySprite + ldr r1, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + adds r1, r4, 0 + bl sub_805DD7C + ldr r0, =gBankSpriteIds + adds r4, r0 + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + movs r1, 0 + bl StartSpriteAnim + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805CC00 + + thumb_func_start task05_08033660 +task05_08033660: @ 805CC68 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r1, =gTasks + lsls r0, 2 + add r0, r8 + lsls r0, 3 + adds r1, r0, r1 + ldrh r2, [r1, 0xA] + movs r3, 0xA + ldrsh r0, [r1, r3] + cmp r0, 0x1E + bgt _0805CC94 + adds r0, r2, 0x1 + strh r0, [r1, 0xA] + b _0805CD50 + .pool +_0805CC94: + ldr r7, =gActiveBank + ldrb r0, [r7] + mov r9, r0 + ldrh r0, [r1, 0x8] + strb r0, [r7] + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _0805CCB4 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0805CCE4 +_0805CCB4: + ldr r0, =gBattleBufferA + ldrb r1, [r7] + lsls r2, r1, 9 + adds r0, 0x1 + adds r2, r0 + ldr r0, =gBattlePartyID + lsls r1, 1 + adds r1, r0 + ldrh r0, [r1] + strb r0, [r2] + ldrb r0, [r7] + movs r1, 0 + bl sub_805B258 + b _0805CD38 + .pool +_0805CCE4: + ldr r4, =gBattleBufferA + ldrb r0, [r7] + lsls r1, r0, 9 + adds r4, 0x1 + adds r1, r4 + ldr r5, =gBattlePartyID + lsls r0, 1 + adds r0, r5 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, 0 + bl sub_805B258 + ldrb r0, [r7] + movs r6, 0x2 + eors r0, r6 + strb r0, [r7] + ldrb r0, [r7] + lsls r1, r0, 9 + adds r1, r4 + lsls r0, 1 + adds r0, r5 + ldrh r0, [r0] + strb r0, [r1] + ldrb r1, [r7] + lsls r0, r1, 1 + adds r0, r5 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, =gPlayerParty + adds r0, r2 + bl sub_805DD7C + ldrb r0, [r7] + movs r1, 0 + bl sub_805B258 + ldrb r0, [r7] + eors r0, r6 + strb r0, [r7] +_0805CD38: + ldr r1, =gBattleBankFunc + ldr r2, =gActiveBank + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8058B40 + str r1, [r0] + mov r3, r9 + strb r3, [r2] + mov r0, r8 + bl DestroyTask +_0805CD50: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end task05_08033660 + + thumb_func_start sub_805CD74 +sub_805CD74: @ 805CD74 + push {r4-r6,lr} + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0805CDA4 + adds r0, r2, 0 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _0805CDA4 + bl PlayerBufferExecCompleted + b _0805CE18 + .pool +_0805CDA4: + ldr r6, =gUnknown_020244D0 + ldr r0, [r6] + ldr r5, =gActiveBank + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + ldrb r0, [r5] + lsls r3, r0, 9 + ldr r4, =gUnknown_02023068 + adds r1, r3, r4 + subs r2, r4, 0x3 + adds r2, r3, r2 + ldrb r2, [r2] + subs r4, 0x2 + adds r3, r4 + ldrb r3, [r3] + bl sub_80735DC + ldr r2, =gUnknown_020244B4 + ldrb r1, [r5] + adds r1, r2 + movs r3, 0 + strb r0, [r1] + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strb r3, [r0, 0x5] + ldrb r2, [r5] + lsls r0, r2, 9 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _0805CE0C + ldr r0, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + movs r1, 0x5D + strb r1, [r0, 0x5] +_0805CE0C: + ldr r0, =gBattleBankFunc + ldrb r1, [r5] + lsls r1, 2 + adds r1, r0 + ldr r0, =sub_805CE38 + str r0, [r1] +_0805CE18: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805CD74 + + thumb_func_start sub_805CE38 +sub_805CE38: @ 805CE38 + push {r4,lr} + ldr r4, =gUnknown_020244D0 + ldr r0, [r4] + ldr r3, =gActiveBank + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x5] + adds r2, r1, 0x1 + strb r2, [r0, 0x5] + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0x5C + bls _0805CE70 + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strb r1, [r0, 0x5] + bl PlayerBufferExecCompleted +_0805CE70: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805CE38 + + thumb_func_start sub_805CE80 +sub_805CE80: @ 805CE80 + push {lr} + ldr r0, =gUnknown_020244D0 + ldr r1, [r0] + ldr r0, =gActiveBank + ldrb r3, [r0] + ldr r1, [r1, 0x4] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0805CEB2 + ldr r2, =gTasks + ldr r0, =gUnknown_020244B4 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, =sub_8073C30 + str r1, [r0] +_0805CEB2: + bl PlayerBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_805CE80 + + thumb_func_start sub_805CED0 +sub_805CED0: @ 805CED0 + push {r4,lr} + ldr r4, =gActiveBank + ldrb r0, [r4] + movs r1, 0x1 + bl dp11b_obj_free + ldrb r0, [r4] + movs r1, 0 + bl dp11b_obj_free + bl PlayerBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805CED0 + + thumb_func_start dp01t_33_1_enemy_move +dp01t_33_1_enemy_move: @ 805CEF4 + push {r4,lr} + ldr r4, =gActiveBank + ldrb r0, [r4] + bl sub_80A6A90 + lsls r0, 24 + cmp r0, 0 + beq _0805CF3A + ldr r3, =gSprites + ldr r0, =gBankSpriteIds + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + ldr r0, =gBattleBufferA + lsls r1, 9 + adds r0, 0x1 + adds r1, r0 + adds r2, 0x3E + movs r0, 0x1 + ldrb r1, [r1] + ands r1, r0 + lsls r1, 2 + ldrb r3, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + bl sub_805E408 +_0805CF3A: + bl PlayerBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end dp01t_33_1_enemy_move + + thumb_func_start sub_805CF54 +sub_805CF54: @ 805CF54 + push {r4-r6,lr} + sub sp, 0x4 + ldr r5, =gActiveBank + ldrb r0, [r5] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _0805CFB6 + ldr r4, =gBattleBufferA + ldrb r2, [r5] + lsls r1, r2, 9 + adds r0, r4, 0x1 + adds r0, r1, r0 + ldrb r6, [r0] + adds r0, r4, 0x2 + adds r0, r1, r0 + ldrb r3, [r0] + adds r4, 0x3 + adds r1, r4 + ldrb r0, [r1] + lsls r0, 8 + orrs r3, r0 + str r3, [sp] + adds r0, r2, 0 + adds r1, r2, 0 + adds r3, r6, 0 + bl move_anim_start_t3 + lsls r0, 24 + cmp r0, 0 + beq _0805CFA4 + bl PlayerBufferExecCompleted + b _0805CFB0 + .pool +_0805CFA4: + ldr r0, =gBattleBankFunc + ldrb r1, [r5] + lsls r1, 2 + adds r1, r0 + ldr r0, =bx_8030B2C + str r0, [r1] +_0805CFB0: + adds r0, r6, 0 + bl sub_817E32C +_0805CFB6: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805CF54 + + thumb_func_start dp01t_35_1_link_standby_message_and_free_vram +dp01t_35_1_link_standby_message_and_free_vram: @ 805CFC8 + push {r4,r5,lr} + ldr r5, =gActiveBank + ldrb r0, [r5] + lsls r0, 9 + ldr r4, =gUnknown_02023066 + adds r0, r4 + bl sub_81851A8 + ldrb r0, [r5] + lsls r0, 9 + subs r4, 0x1 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0805D002 + cmp r0, 0x1 + bgt _0805CFF8 + cmp r0, 0 + beq _0805CFFE + b _0805D020 + .pool +_0805CFF8: + cmp r0, 0x2 + beq _0805D01C + b _0805D020 +_0805CFFE: + bl b_link_standby_message +_0805D002: + ldr r4, =gActiveBank + ldrb r0, [r4] + movs r1, 0x1 + bl dp11b_obj_free + ldrb r0, [r4] + movs r1, 0 + bl dp11b_obj_free + b _0805D020 + .pool +_0805D01C: + bl b_link_standby_message +_0805D020: + bl PlayerBufferExecCompleted + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end dp01t_35_1_link_standby_message_and_free_vram + + thumb_func_start sub_805D02C +sub_805D02C: @ 805D02C + push {r4,lr} + ldr r1, =gBattleBufferA + ldr r4, =gActiveBank + ldrb r3, [r4] + lsls r0, r3, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r2, [r0] + cmp r2, 0x1 + beq _0805D074 + cmp r2, 0x1 + bgt _0805D054 + cmp r2, 0 + beq _0805D05A + b _0805D084 + .pool +_0805D054: + cmp r2, 0x2 + beq _0805D07C + b _0805D084 +_0805D05A: + ldr r0, =gUnknown_020244AC + adds r0, r3, r0 + strb r2, [r0] + ldr r1, =gUnknown_020244B0 + ldrb r0, [r4] + adds r0, r1 + strb r2, [r0] + b _0805D084 + .pool +_0805D074: + ldr r0, =gUnknown_020244AC + b _0805D07E + .pool +_0805D07C: + ldr r0, =gUnknown_020244B0 +_0805D07E: + adds r0, r3, r0 + movs r1, 0 + strb r1, [r0] +_0805D084: + bl PlayerBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805D02C + + thumb_func_start sub_805D094 +sub_805D094: @ 805D094 + push {r4,r5,lr} + ldr r5, =gActiveBank + ldrb r0, [r5] + lsls r0, 9 + ldr r4, =gUnknown_02023068 + adds r0, r4 + bl sub_81851A8 + ldr r2, =gBattleOutcome + ldrb r0, [r5] + lsls r0, 9 + subs r1, r4, 0x3 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + ldrb r0, [r5] + lsls r0, 9 + subs r4, 0x2 + adds r0, r4 + ldrb r0, [r0] + ldr r1, =0x00000ca9 + adds r3, r1 + movs r1, 0x1 + ands r1, r0 + lsls r1, 3 + ldrb r2, [r3] + movs r0, 0x9 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r0, 0x5 + bl FadeOutMapMusic + movs r0, 0x3 + bl BeginFastPaletteFade + bl PlayerBufferExecCompleted + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_80587B0 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_805D094 + + thumb_func_start nullsub_22 +nullsub_22: @ 805D114 + bx lr + thumb_func_end nullsub_22 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_controller_player_partner.s b/asm/battle_controller_player_partner.s new file mode 100644 index 0000000000..75a9115210 --- /dev/null +++ b/asm/battle_controller_player_partner.s @@ -0,0 +1,6347 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start nullsub_77 +nullsub_77: @ 81BADF0 + bx lr + thumb_func_end nullsub_77 + + thumb_func_start SetBankFuncToPlayerPartnerBufferRunCommand +SetBankFuncToPlayerPartnerBufferRunCommand: @ 81BADF4 + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =PlayerPartnerBufferRunCommand + str r1, [r0] + bx lr + .pool + thumb_func_end SetBankFuncToPlayerPartnerBufferRunCommand + + thumb_func_start PlayerPartnerBufferRunCommand +PlayerPartnerBufferRunCommand: @ 81BAE10 + push {lr} + ldr r2, =gBattleExecBuffer + ldr r1, =gBitTable + ldr r0, =gActiveBank + ldrb r3, [r0] + lsls r0, r3, 2 + adds r0, r1 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _081BAE5C + ldr r0, =gBattleBufferA + lsls r1, r3, 9 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0x38 + bhi _081BAE58 + ldr r0, =gPlayerPartnerBufferCommands + ldrb r1, [r1] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + bl _call_via_r0 + b _081BAE5C + .pool +_081BAE58: + bl PlayerPartnerBufferExecCompleted +_081BAE5C: + pop {r0} + bx r0 + thumb_func_end PlayerPartnerBufferRunCommand + + thumb_func_start sub_81BAE60 +sub_81BAE60: @ 81BAE60 + push {lr} + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _081BAE84 + bl PlayerPartnerBufferExecCompleted +_081BAE84: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BAE60 + + thumb_func_start sub_81BAE98 +sub_81BAE98: @ 81BAE98 + push {r4-r6,lr} + ldr r6, =gSprites + ldr r5, =gBankSpriteIds + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r6, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _081BAEE8 + movs r0, 0 + bl nullsub_25 + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl FreeSpriteOamMatrix + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl DestroySprite + bl PlayerPartnerBufferExecCompleted +_081BAEE8: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BAE98 + + thumb_func_start sub_81BAF00 +sub_81BAF00: @ 81BAF00 + push {r4,lr} + ldr r4, =gUnknown_020244D0 + ldr r1, [r4] + ldr r3, =gActiveBank + ldrb r0, [r3] + ldr r2, [r1, 0x4] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1, 0x9] + subs r0, 0x1 + strb r0, [r1, 0x9] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _081BAF38 + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strb r1, [r0, 0x9] + bl PlayerPartnerBufferExecCompleted +_081BAF38: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BAF00 + + thumb_func_start sub_81BAF48 +sub_81BAF48: @ 81BAF48 + push {r4-r6,lr} + movs r6, 0 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _081BAF6C + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _081BAFA0 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081BAFA0 +_081BAF6C: + ldr r2, =gSprites + ldr r1, =gUnknown_03005D70 + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _081BAFD8 + b _081BAFD6 + .pool +_081BAFA0: + ldr r2, =gSprites + ldr r5, =gUnknown_03005D70 + ldr r0, =gActiveBank + ldrb r3, [r0] + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, r2, 0 + adds r4, 0x1C + adds r0, r4 + ldr r2, [r0] + ldr r0, =SpriteCallbackDummy + cmp r2, r0 + bne _081BAFD8 + movs r0, 0x2 + eors r3, r0 + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r0, [r0] + cmp r0, r2 + bne _081BAFD8 +_081BAFD6: + movs r6, 0x1 +_081BAFD8: + bl IsCryPlayingOrClearCrySongs + lsls r0, 24 + cmp r0, 0 + beq _081BAFE4 + movs r6, 0 +_081BAFE4: + cmp r6, 0 + beq _081BB00A + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r3, =gActiveBank + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + strb r1, [r0, 0x9] + ldr r1, =gBattleBankFunc + ldrb r0, [r3] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_81BAF00 + str r1, [r0] +_081BB00A: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BAF48 + + thumb_func_start sub_81BB02C +sub_81BB02C: @ 81BB02C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, =gUnknown_020244D0 + mov r12, r0 + ldr r0, [r0] + ldr r7, =gActiveBank + ldrb r2, [r7] + ldr r3, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r4, r0, r3 + ldrb r1, [r4] + movs r5, 0x8 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _081BB058 + b _081BB196 +_081BB058: + movs r1, 0x2 + mov r8, r1 + adds r1, r2, 0 + mov r0, r8 + eors r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0] + adds r0, r5, 0 + ands r0, r1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + beq _081BB07A + b _081BB196 +_081BB07A: + ldr r1, =gSprites + mov r10, r1 + ldr r0, =gUnknown_03005D7C + mov r9, r0 + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + mov r5, r10 + adds r5, 0x1C + adds r0, r5 + ldr r3, [r0] + ldr r0, =SpriteCallbackDummy + cmp r3, r0 + bne _081BB196 + ldr r0, =gBankSpriteIds + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r0, [r0] + cmp r0, r3 + bne _081BB196 + ldrb r0, [r4, 0x9] + adds r0, 0x1 + strb r0, [r4, 0x9] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081BB196 + mov r1, r12 + ldr r0, [r1] + ldrb r1, [r7] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strb r6, [r0, 0x9] + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _081BB134 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + bne _081BB134 + ldrb r0, [r7] + mov r1, r8 + eors r0, r1 + add r0, r9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r10 + bl DestroySprite + ldr r4, =gUnknown_03005D70 + ldrb r0, [r7] + mov r1, r8 + eors r1, r0 + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, =gBattlePartyID + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gPlayerParty + adds r1, r2 + movs r2, 0 + bl healthbar_draw_field_maybe + ldrb r0, [r7] + mov r1, r8 + eors r0, r1 + bl sub_8076918 + ldrb r0, [r7] + mov r1, r8 + eors r0, r1 + adds r0, r4 + ldrb r0, [r0] + bl sub_80729D0 +_081BB134: + ldr r1, =gUnknown_03005D7C + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + bl DestroySprite + ldr r5, =gUnknown_03005D70 + ldrb r1, [r4] + adds r0, r1, r5 + ldrb r0, [r0] + ldr r2, =gBattlePartyID + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gPlayerParty + adds r1, r2 + movs r2, 0 + bl healthbar_draw_field_maybe + ldrb r0, [r4] + bl sub_8076918 + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + bl sub_80729D0 + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r2, [r0, 0x8] + ldrb r1, [r2, 0x9] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x9] + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_81BAF48 + str r1, [r0] +_081BB196: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BB02C + + thumb_func_start sub_81BB1D4 +sub_81BB1D4: @ 81BB1D4 + push {lr} + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 27 + cmp r0, 0 + bge _081BB202 + movs r2, 0x24 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _081BB202 + bl PlayerPartnerBufferExecCompleted +_081BB202: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BB1D4 + + thumb_func_start bx_t3_healthbar_update +bx_t3_healthbar_update: @ 81BB214 + push {r4-r6,lr} + ldr r5, =gActiveBank + ldrb r0, [r5] + ldr r6, =gUnknown_03005D70 + adds r1, r0, r6 + ldrb r1, [r1] + movs r2, 0 + movs r3, 0 + bl sub_8074AA0 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r5] + adds r0, r6 + ldrb r0, [r0] + bl sub_80729D0 + lsls r4, 16 + asrs r1, r4, 16 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _081BB25C + ldrb r0, [r5] + adds r0, r6 + ldrb r0, [r0] + movs r2, 0 + bl heathbar_draw_hp + b _081BB276 + .pool +_081BB25C: + ldr r2, =gBattlePartyID + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, =gPlayerParty + adds r0, r2 + bl sub_805E990 + bl PlayerPartnerBufferExecCompleted +_081BB276: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end bx_t3_healthbar_update + + thumb_func_start sub_81BB284 +sub_81BB284: @ 81BB284 + push {lr} + movs r0, 0 + bl IsTextPrinterActive + lsls r0, 16 + cmp r0, 0 + bne _081BB296 + bl PlayerPartnerBufferExecCompleted +_081BB296: + pop {r0} + bx r0 + thumb_func_end sub_81BB284 + + thumb_func_start sub_81BB29C +sub_81BB29C: @ 81BB29C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r1, =gTasks + lsls r0, 2 + add r0, r9 + lsls r0, 3 + adds r0, r1 + mov r8, r0 + ldrb r0, [r0, 0x8] + mov r10, r0 + mov r1, r8 + ldrb r7, [r1, 0xC] + str r7, [sp, 0x8] + ldrh r2, [r1, 0xA] + str r2, [sp, 0xC] + bl battle_type_is_double + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081BB2E2 + ldr r1, =gBattlePartyID + lsls r0, r7, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r10, r0 + bne _081BB2E2 + b _081BB3F8 +_081BB2E2: + movs r0, 0x64 + mov r1, r10 + muls r1, r0 + ldr r0, =gPlayerParty + adds r6, r1, r0 + adds r0, r6, 0 + movs r1, 0xB + bl GetMonData + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r6, 0 + movs r1, 0x38 + bl GetMonData + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + movs r1, 0x19 + bl GetMonData + str r0, [sp, 0x4] + ldr r3, =gExperienceTables + adds r4, 0x1 + lsls r4, 2 + ldr r2, =gBaseStats + lsls r1, r5, 3 + subs r1, r5 + lsls r1, 2 + adds r1, r2 + ldrb r2, [r1, 0x13] + movs r1, 0xCA + lsls r1, 1 + muls r1, r2 + adds r4, r1 + adds r4, r3 + ldr r2, [r4] + str r2, [sp] + ldr r3, [sp, 0xC] + lsls r1, r3, 16 + asrs r1, 16 + adds r0, r1 + cmp r0, r2 + bcc _081BB3D0 + adds r0, r6, 0 + movs r1, 0x19 + mov r2, sp + bl SetMonData + adds r0, r6, 0 + bl pokemon_calc_effective_stats + ldr r2, [sp] + add r0, sp, 0x4 + ldrh r0, [r0] + subs r2, r0 + ldr r0, [sp, 0xC] + subs r2, r0, r2 + ldr r4, =gActiveBank + ldrb r5, [r4] + strb r7, [r4] + lsls r2, 16 + lsrs r2, 16 + movs r0, 0x1 + movs r1, 0xB + bl dp01_build_cmdbuf_x21_a_bb + strb r5, [r4] + bl battle_type_is_double + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081BB3B8 + ldr r2, =gBattlePartyID + lsls r0, r7, 1 + adds r0, r2 + mov r1, r10 + ldrh r0, [r0] + cmp r1, r0 + beq _081BB396 + movs r0, 0x2 + eors r7, r0 + lsls r0, r7, 1 + adds r0, r2 + ldrh r0, [r0] + cmp r1, r0 + bne _081BB3B8 +_081BB396: + ldr r0, =sub_81BB628 + b _081BB3FA + .pool +_081BB3B8: + ldr r0, =gTasks + mov r2, r9 + lsls r1, r2, 2 + add r1, r9 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81BB740 + b _081BB3FC + .pool +_081BB3D0: + str r0, [sp, 0x4] + add r2, sp, 0x4 + adds r0, r6, 0 + movs r1, 0x19 + bl SetMonData + ldr r1, =gBattleBankFunc + ldr r3, [sp, 0x8] + lsls r0, r3, 2 + adds r0, r1 + ldr r1, =sub_81BB284 + str r1, [r0] + mov r0, r9 + bl DestroyTask + b _081BB3FE + .pool +_081BB3F8: + ldr r0, =sub_81BB414 +_081BB3FA: + mov r1, r8 +_081BB3FC: + str r0, [r1] +_081BB3FE: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BB29C + + thumb_func_start sub_81BB414 +sub_81BB414: @ 81BB414 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gTasks + lsls r2, r0, 2 + mov r8, r2 + add r8, r0 + mov r0, r8 + lsls r0, 3 + mov r8, r0 + add r8, r1 + mov r2, r8 + ldrb r1, [r2, 0x8] + movs r0, 0xA + ldrsh r2, [r2, r0] + mov r9, r2 + mov r2, r8 + ldrb r2, [r2, 0xC] + mov r10, r2 + movs r0, 0x64 + adds r6, r1, 0 + muls r6, r0 + ldr r0, =gPlayerParty + adds r6, r0 + adds r0, r6, 0 + movs r1, 0x38 + bl GetMonData + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + movs r1, 0xB + bl GetMonData + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r6, 0 + movs r1, 0x19 + bl GetMonData + adds r3, r0, 0 + ldr r6, =gExperienceTables + lsls r1, r4, 2 + ldr r2, =gBaseStats + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + adds r0, r2 + ldrb r2, [r0, 0x13] + movs r0, 0xCA + lsls r0, 1 + muls r0, r2 + adds r1, r0 + adds r1, r6 + ldr r1, [r1] + subs r3, r1 + adds r4, 0x1 + lsls r4, 2 + adds r4, r0 + adds r4, r6 + ldr r2, [r4] + subs r2, r1 + ldr r0, =gUnknown_03005D70 + add r0, r10 + ldrb r1, [r0] + mov r0, r9 + negs r0, r0 + str r0, [sp] + mov r0, r10 + bl sub_807294C + movs r0, 0x21 + bl PlaySE + ldr r0, =sub_81BB4E4 + mov r1, r8 + str r0, [r1] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BB414 + + thumb_func_start sub_81BB4E4 +sub_81BB4E4: @ 81BB4E4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r1, =gTasks + lsls r0, 2 + add r0, r8 + lsls r0, 3 + adds r6, r0, r1 + ldrh r1, [r6, 0x1C] + movs r2, 0x1C + ldrsh r0, [r6, r2] + cmp r0, 0xC + bgt _081BB514 + adds r0, r1, 0x1 + strh r0, [r6, 0x1C] + b _081BB610 + .pool +_081BB514: + ldrb r0, [r6, 0x8] + mov r9, r0 + ldrh r2, [r6, 0xA] + mov r10, r2 + ldrb r7, [r6, 0xC] + ldr r5, =gUnknown_03005D70 + adds r5, r7, r5 + ldrb r1, [r5] + adds r0, r7, 0 + movs r2, 0x1 + movs r3, 0 + bl sub_8074AA0 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r5] + bl sub_80729D0 + lsls r4, 16 + asrs r4, 16 + movs r0, 0x1 + negs r0, r0 + cmp r4, r0 + bne _081BB610 + movs r0, 0x21 + bl m4aSongNumStop + movs r0, 0x64 + mov r1, r9 + muls r1, r0 + ldr r0, =gPlayerParty + adds r5, r1, r0 + 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, 0x19 + bl GetMonData + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + ldr r3, =gExperienceTables + adds r4, 0x1 + lsls r4, 2 + ldr r2, =gBaseStats + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r1, [r1, 0x13] + movs r0, 0xCA + lsls r0, 1 + muls r0, r1 + adds r4, r0 + adds r4, r3 + ldr r1, [r4] + str r1, [sp] + mov r2, r10 + lsls r0, r2, 16 + asrs r4, r0, 16 + ldr r0, [sp, 0x4] + adds r0, r4 + cmp r0, r1 + blt _081BB5F4 + adds r0, r5, 0 + movs r1, 0x19 + mov r2, sp + bl SetMonData + adds r0, r5, 0 + bl pokemon_calc_effective_stats + ldr r2, [sp] + add r0, sp, 0x4 + ldrh r0, [r0] + subs r2, r0 + subs r2, r4, r2 + ldr r4, =gActiveBank + ldrb r5, [r4] + strb r7, [r4] + lsls r2, 16 + lsrs r2, 16 + movs r0, 0x1 + movs r1, 0xB + bl dp01_build_cmdbuf_x21_a_bb + strb r5, [r4] + ldr r0, =sub_81BB628 + str r0, [r6] + b _081BB610 + .pool +_081BB5F4: + str r0, [sp, 0x4] + add r2, sp, 0x4 + adds r0, r5, 0 + movs r1, 0x19 + bl SetMonData + ldr r1, =gBattleBankFunc + lsls r0, r7, 2 + adds r0, r1 + ldr r1, =sub_81BB284 + str r1, [r0] + mov r0, r8 + bl DestroyTask +_081BB610: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BB4E4 + + thumb_func_start sub_81BB628 +sub_81BB628: @ 81BB628 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldrb r4, [r0, 0xC] + ldrb r6, [r0, 0x8] + bl battle_type_is_double + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081BB65C + ldr r1, =gBattlePartyID + movs r0, 0x2 + adds r2, r4, 0 + eors r2, r0 + lsls r0, r2, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r6, r0 + bne _081BB65C + adds r4, r2, 0 +_081BB65C: + adds r0, r4, 0 + adds r1, r4, 0 + adds r2, r4, 0 + movs r3, 0 + bl move_anim_start_t4 + ldr r0, =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81BB688 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BB628 + + thumb_func_start sub_81BB688 +sub_81BB688: @ 81BB688 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r2, r0, r1 + ldrb r5, [r2, 0xC] + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r1, [r0, 0x4] + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _081BB72A + ldrb r4, [r2, 0x8] + movs r0, 0x64 + adds r1, r4, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r7, r1, r0 + adds r0, r7, 0 + movs r1, 0x38 + bl GetMonData + bl battle_type_is_double + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081BB708 + ldr r1, =gBattlePartyID + movs r0, 0x2 + adds r2, r5, 0 + eors r2, r0 + lsls r0, r2, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r4, r0 + bne _081BB708 + ldr r0, =gUnknown_03005D70 + adds r0, r2, r0 + ldrb r0, [r0] + adds r1, r7, 0 + movs r2, 0 + bl healthbar_draw_field_maybe + b _081BB71C + .pool +_081BB708: + ldr r0, =gUnknown_03005D70 + adds r0, r5, r0 + ldrb r0, [r0] + movs r1, 0x64 + muls r1, r4 + ldr r2, =gPlayerParty + adds r1, r2 + movs r2, 0 + bl healthbar_draw_field_maybe +_081BB71C: + ldr r0, =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81BB740 + str r0, [r1] +_081BB72A: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BB688 + + thumb_func_start sub_81BB740 +sub_81BB740: @ 81BB740 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, =gTasks + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + ldrb r1, [r4, 0x8] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x38 + bl GetMonData + ldrb r0, [r4, 0xC] + ldr r1, =gBattleBankFunc + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_81BB284 + str r1, [r0] + adds r0, r5, 0 + bl DestroyTask + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BB740 + + thumb_func_start sub_81BB78C +sub_81BB78C: @ 81BB78C + push {r4-r6,lr} + ldr r6, =gSprites + ldr r5, =gBankSpriteIds + ldr r4, =gActiveBank + ldrb r2, [r4] + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r3, 0x22 + ldrsh r1, [r0, r3] + movs r3, 0x26 + ldrsh r0, [r0, r3] + adds r1, r0 + cmp r1, 0xA0 + ble _081BB808 + ldr r1, =gBattlePartyID + lsls r0, r2, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + bl nullsub_24 + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl DestroySprite + ldr r1, =gUnknown_03005D70 + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + bl sub_8072984 + bl PlayerPartnerBufferExecCompleted +_081BB808: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BB78C + + thumb_func_start sub_81BB828 +sub_81BB828: @ 81BB828 + push {r4-r6,lr} + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r6, =gActiveBank + ldrb r2, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _081BB87C + ldr r5, =gBankSpriteIds + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + ldr r1, =gUnknown_03005D70 + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + bl sub_8072984 + bl PlayerPartnerBufferExecCompleted +_081BB87C: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BB828 + + thumb_func_start sub_81BB898 +sub_81BB898: @ 81BB898 + push {lr} + movs r0, 0 + bl IsTextPrinterActive + lsls r0, 16 + cmp r0, 0 + bne _081BB8AA + bl PlayerPartnerBufferExecCompleted +_081BB8AA: + pop {r0} + bx r0 + thumb_func_end sub_81BB898 + + thumb_func_start bx_blink_t3 +bx_blink_t3: @ 81BB8B0 + push {r4,lr} + ldr r1, =gBankSpriteIds + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + ldr r2, =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, r0, r2 + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0x20 + bne _081BB8FC + movs r3, 0 + movs r0, 0 + strh r0, [r4, 0x30] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + subs r0, 0x5 + ands r0, r1 + strb r0, [r2] + ldr r0, =gDoingBattleAnim + strb r3, [r0] + bl PlayerPartnerBufferExecCompleted + b _081BB926 + .pool +_081BB8FC: + ldrh r0, [r4, 0x30] + movs r1, 0x3 + ands r0, r1 + cmp r0, 0 + bne _081BB920 + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_081BB920: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] +_081BB926: + pop {r4} + pop {r0} + bx r0 + thumb_func_end bx_blink_t3 + + thumb_func_start sub_81BB92C +sub_81BB92C: @ 81BB92C + push {r4,lr} + ldr r2, =gSprites + ldr r0, =gUnknown_03005D70 + ldr r4, =gActiveBank + ldrb r3, [r4] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _081BB97E + adds r0, r3, 0 + bl sub_805E408 + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldrb r2, [r4] + ldr r1, [r0] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _081BB972 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x6 + bl move_anim_start_t4 +_081BB972: + ldr r0, =gBattleBankFunc + ldrb r1, [r4] + lsls r1, 2 + adds r1, r0 + ldr r0, =dp01t_35_3_free_vram + str r0, [r1] +_081BB97E: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BB92C + + thumb_func_start dp01t_35_3_free_vram +dp01t_35_3_free_vram: @ 81BB9A0 + push {lr} + ldr r0, =gUnknown_020244D0 + ldr r1, [r0] + ldr r0, =gActiveBank + ldrb r3, [r0] + ldr r1, [r1, 0x4] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _081BB9DC + ldr r2, =gSprites + ldr r0, =gBankSpriteIds + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _081BB9DC + bl PlayerPartnerBufferExecCompleted +_081BB9DC: + pop {r0} + bx r0 + .pool + thumb_func_end dp01t_35_3_free_vram + + thumb_func_start sub_81BB9F4 +sub_81BB9F4: @ 81BB9F4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r3, =gUnknown_020244D0 + ldr r0, [r3] + ldr r7, =gActiveBank + ldrb r1, [r7] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r2, r0, r2 + ldrb r1, [r2, 0x1] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081BBAB0 + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + ldr r0, [r3] + ldrb r2, [r7] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldr r4, =0x000027f9 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag + ldr r0, =c3_0802FDF4 + movs r1, 0xA + bl CreateTask + ldr r0, =gBattlePartyID + mov r8, r0 + ldrb r1, [r7] + lsls r0, r1, 1 + add r0, r8 + ldrh r0, [r0] + movs r6, 0x64 + muls r0, r6 + ldr r5, =gPlayerParty + adds r0, r5 + bl sub_805E990 + ldr r1, =gBankSpriteIds + ldrb r0, [r7] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + movs r1, 0 + bl StartSpriteAnim + ldr r4, =gUnknown_03005D70 + ldrb r1, [r7] + adds r0, r1, r4 + ldrb r0, [r0] + lsls r1, 1 + add r1, r8 + ldrh r1, [r1] + muls r1, r6 + adds r1, r5 + movs r2, 0 + bl healthbar_draw_field_maybe + ldrb r0, [r7] + bl sub_8076918 + ldrb r0, [r7] + adds r0, r4 + ldrb r0, [r0] + bl sub_80729D0 + ldr r1, =gBattleBankFunc + ldrb r0, [r7] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_81BB92C + str r1, [r0] +_081BBAB0: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BB9F4 + + thumb_func_start sub_81BBAE8 +sub_81BBAE8: @ 81BBAE8 + push {r4-r6,lr} + ldr r6, =gUnknown_020244D0 + ldr r0, [r6] + ldr r4, =gActiveBank + ldrb r2, [r4] + ldr r1, [r0, 0x4] + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x88 + ands r0, r1 + cmp r0, 0 + bne _081BBB1A + ldr r0, =gBattlePartyID + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r1, r0 + adds r0, r2, 0 + bl sub_8172EF0 +_081BBB1A: + ldr r5, =gSprites + ldr r0, =gUnknown_03005D7C + ldrb r2, [r4] + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r3, r0, 2 + adds r0, r5, 0 + adds r0, 0x1C + adds r0, r3, r0 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _081BBB60 + ldr r0, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _081BBB60 + adds r0, r3, r5 + bl DestroySprite + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_81BB9F4 + str r1, [r0] +_081BBB60: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BBAE8 + + thumb_func_start PlayerPartnerBufferExecCompleted +PlayerPartnerBufferExecCompleted: @ 81BBB8C + push {r4,lr} + sub sp, 0x4 + ldr r1, =gBattleBankFunc + ldr r4, =gActiveBank + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =PlayerPartnerBufferRunCommand + str r1, [r0] + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081BBBE0 + bl link_get_multiplayer_id + mov r1, sp + strb r0, [r1] + movs r0, 0x2 + movs r1, 0x4 + mov r2, sp + bl PrepareBufferDataTransferLink + ldr r1, =gBattleBufferA + ldrb r0, [r4] + lsls r0, 9 + adds r0, r1 + movs r1, 0x38 + strb r1, [r0] + b _081BBBF2 + .pool +_081BBBE0: + ldr r2, =gBattleExecBuffer + ldr r1, =gBitTable + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + ldr r0, [r2] + bics r0, r1 + str r0, [r2] +_081BBBF2: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end PlayerPartnerBufferExecCompleted + + thumb_func_start sub_81BBC04 +sub_81BBC04: @ 81BBC04 + push {lr} + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _081BBC26 + bl PlayerPartnerBufferExecCompleted +_081BBC26: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BBC04 + + thumb_func_start bx_80E8A6C +bx_80E8A6C: @ 81BBC34 + push {lr} + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _081BBC56 + bl PlayerPartnerBufferExecCompleted +_081BBC56: + pop {r0} + bx r0 + .pool + thumb_func_end bx_80E8A6C + + thumb_func_start dp01t_00_3_getattr +dp01t_00_3_getattr: @ 81BBC64 + push {r4-r6,lr} + sub sp, 0x100 + movs r6, 0 + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + bne _081BBC9C + ldr r0, =gBattlePartyID + lsls r1, r2, 1 + adds r1, r0 + ldrb r0, [r1] + mov r1, sp + bl dp01_getattr_by_ch1_for_player_pokemon + adds r6, r0, 0 + b _081BBCBE + .pool +_081BBC9C: + ldrb r4, [r1] + movs r5, 0 +_081BBCA0: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _081BBCB6 + lsls r0, r5, 24 + lsrs r0, 24 + mov r2, sp + adds r1, r2, r6 + bl dp01_getattr_by_ch1_for_player_pokemon + adds r6, r0 +_081BBCB6: + lsrs r4, 1 + adds r5, 0x1 + cmp r5, 0x5 + ble _081BBCA0 +_081BBCBE: + lsls r1, r6, 16 + lsrs r1, 16 + movs r0, 0x1 + mov r2, sp + bl dp01_build_cmdbuf_x1D_1D_numargs_varargs + bl PlayerPartnerBufferExecCompleted + add sp, 0x100 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end dp01t_00_3_getattr + + thumb_func_start dp01_getattr_by_ch1_for_player_pokemon +dp01_getattr_by_ch1_for_player_pokemon: @ 81BBCD8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x90 + adds r7, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0 + ldr r2, =gBattleBufferA + ldr r3, =gActiveBank + ldrb r0, [r3] + lsls r0, 9 + adds r1, r2, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x3B + bls _081BBD02 + bl _081BC46E +_081BBD02: + lsls r0, 2 + ldr r1, =_081BBD18 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081BBD18: + .4byte _081BBE08 + .4byte _081BC02C + .4byte _081BC03C + .4byte _081BC04C + .4byte _081BC0B4 + .4byte _081BC0B4 + .4byte _081BC0B4 + .4byte _081BC0B4 + .4byte _081BC0D0 + .4byte _081BC10C + .4byte _081BC10C + .4byte _081BC10C + .4byte _081BC10C + .4byte _081BC46E + .4byte _081BC46E + .4byte _081BC46E + .4byte _081BC46E + .4byte _081BC128 + .4byte _081BC138 + .4byte _081BC168 + .4byte _081BC178 + .4byte _081BC188 + .4byte _081BC198 + .4byte _081BC1A8 + .4byte _081BC1B8 + .4byte _081BC1C8 + .4byte _081BC1D8 + .4byte _081BC1E8 + .4byte _081BC1F8 + .4byte _081BC208 + .4byte _081BC218 + .4byte _081BC228 + .4byte _081BC278 + .4byte _081BC288 + .4byte _081BC298 + .4byte _081BC2A8 + .4byte _081BC2B8 + .4byte _081BC2C8 + .4byte _081BC2D8 + .4byte _081BC2E8 + .4byte _081BC2F8 + .4byte _081BC32C + .4byte _081BC33C + .4byte _081BC34C + .4byte _081BC35C + .4byte _081BC36C + .4byte _081BC37C + .4byte _081BC38C + .4byte _081BC39C + .4byte _081BC3BC + .4byte _081BC3CC + .4byte _081BC3DC + .4byte _081BC3EC + .4byte _081BC3FC + .4byte _081BC40C + .4byte _081BC41C + .4byte _081BC42C + .4byte _081BC43C + .4byte _081BC44C + .4byte _081BC45C +_081BBE08: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + mov r1, sp + strh r0, [r1] + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2E] + movs r6, 0 + add r0, sp, 0x24 + mov r9, r0 + movs r1, 0x3B + add r1, sp + mov r10, r1 + mov r2, sp + adds r2, 0x2B + str r2, [sp, 0x80] + mov r0, sp + adds r0, 0x2A + str r0, [sp, 0x7C] + mov r1, sp + adds r1, 0x68 + str r1, [sp, 0x8C] + adds r2, 0x5 + str r2, [sp, 0x84] + adds r0, 0x12 + str r0, [sp, 0x88] + mov r8, r4 + add r4, sp, 0xC +_081BBE54: + adds r1, r6, 0 + adds r1, 0xD + mov r0, r8 + bl GetMonData + strh r0, [r4] + adds r1, r6, 0 + adds r1, 0x11 + mov r0, r8 + bl GetMonData + mov r2, r9 + adds r1, r2, r6 + strb r0, [r1] + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _081BBE54 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x15 + bl GetMonData + mov r1, r10 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x20 + bl GetMonData + ldr r2, [sp, 0x80] + strb r0, [r2] + adds r0, r4, 0 + movs r1, 0x19 + bl GetMonData + str r0, [sp, 0x44] + adds r0, r4, 0 + movs r1, 0x27 + bl GetMonData + mov r3, sp + movs r5, 0x1F + ands r0, r5 + ldrb r2, [r3, 0x14] + movs r1, 0x20 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x14] + adds r0, r4, 0 + movs r1, 0x28 + bl GetMonData + mov r3, sp + movs r6, 0x1F + ands r0, r6 + lsls r0, 5 + ldrh r2, [r3, 0x14] + ldr r1, =0xfffffc1f + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x14] + adds r0, r4, 0 + movs r1, 0x29 + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, 2 + ldrb r2, [r3, 0x15] + movs r1, 0x7D + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x15] + adds r0, r4, 0 + movs r1, 0x2A + bl GetMonData + movs r1, 0x1F + ands r1, r0 + lsls r1, 15 + ldr r0, [sp, 0x14] + ldr r2, =0xfff07fff + ands r0, r2 + orrs r0, r1 + str r0, [sp, 0x14] + adds r0, r4, 0 + movs r1, 0x2B + bl GetMonData + mov r3, sp + ands r0, r6 + lsls r0, 4 + ldrh r2, [r3, 0x16] + ldr r1, =0xfffffe0f + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x16] + adds r0, r4, 0 + movs r1, 0x2C + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, 1 + ldrb r2, [r3, 0x17] + movs r1, 0x3F + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + str r0, [sp, 0x48] + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData + str r0, [sp, 0x4C] + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + ldr r1, [sp, 0x7C] + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + mov r1, sp + strh r0, [r1, 0x28] + adds r0, r4, 0 + movs r1, 0x3A + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2C] + adds r0, r4, 0 + movs r1, 0x3B + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2] + adds r0, r4, 0 + movs r1, 0x3C + bl GetMonData + mov r1, sp + strh r0, [r1, 0x4] + adds r0, r4, 0 + movs r1, 0x3D + bl GetMonData + mov r1, sp + strh r0, [r1, 0x6] + adds r0, r4, 0 + movs r1, 0x3E + bl GetMonData + mov r1, sp + strh r0, [r1, 0x8] + adds r0, r4, 0 + movs r1, 0x3F + bl GetMonData + mov r1, sp + strh r0, [r1, 0xA] + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + mov r3, sp + movs r1, 0x1 + ands r0, r1 + lsls r0, 6 + ldrb r2, [r3, 0x17] + movs r1, 0x41 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0x2E + bl GetMonData + mov r3, sp + lsls r0, 7 + ldrb r2, [r3, 0x17] + movs r1, 0x7F + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0x1 + bl GetMonData + str r0, [sp, 0x54] + adds r0, r4, 0 + movs r1, 0x2 + ldr r2, [sp, 0x8C] + bl GetMonData + ldr r0, [sp, 0x84] + ldr r1, [sp, 0x8C] + bl StringCopy10 + adds r0, r4, 0 + movs r1, 0x7 + ldr r2, [sp, 0x88] + bl GetMonData + mov r2, sp + movs r6, 0 +_081BC00C: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, 0x1 + cmp r6, 0x57 + bls _081BC00C + b _081BC46E + .pool +_081BC02C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xB + b _081BC3A6 + .pool +_081BC03C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xC + b _081BC3A6 + .pool +_081BC04C: + movs r6, 0 + add r2, sp, 0x58 + mov r9, r2 + add r0, sp, 0x60 + mov r10, r0 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r4, r1, r0 + mov r8, r9 +_081BC062: + adds r1, r6, 0 + adds r1, 0xD + adds r0, r4, 0 + bl GetMonData + mov r1, r8 + strh r0, [r1] + adds r1, r6, 0 + adds r1, 0x11 + adds r0, r4, 0 + bl GetMonData + mov r2, r10 + adds r1, r2, r6 + strb r0, [r1] + movs r0, 0x2 + add r8, r0 + adds r6, 0x1 + cmp r6, 0x3 + ble _081BC062 + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x15 + bl GetMonData + mov r1, r9 + strb r0, [r1, 0xC] + mov r2, r9 + movs r6, 0 +_081BC0A0: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, 0x1 + cmp r6, 0xF + bls _081BC0A0 + b _081BC46E + .pool +_081BC0B4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldrb r1, [r3] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + adds r1, 0x9 + b _081BC3A6 + .pool +_081BC0D0: + movs r6, 0 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r2, =gPlayerParty + mov r8, r2 +_081BC0DC: + adds r1, r6, 0 + adds r1, 0x11 + mov r2, r8 + adds r0, r4, r2 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, 0x1 + cmp r6, 0x3 + ble _081BC0DC + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x15 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, 0x1 + b _081BC46E + .pool +_081BC10C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldrb r1, [r3] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + adds r1, 0x8 + b _081BC466 + .pool +_081BC128: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1 + b _081BC142 + .pool +_081BC138: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x19 +_081BC142: + bl GetMonData + adds r1, r0, 0 + strb r1, [r7] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r0, 16 + strb r0, [r7, 0x2] + movs r6, 0x3 + b _081BC46E + .pool +_081BC168: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1A + b _081BC466 + .pool +_081BC178: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1B + b _081BC466 + .pool +_081BC188: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1C + b _081BC466 + .pool +_081BC198: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1D + b _081BC466 + .pool +_081BC1A8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1E + b _081BC466 + .pool +_081BC1B8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1F + b _081BC466 + .pool +_081BC1C8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x20 + b _081BC466 + .pool +_081BC1D8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x22 + b _081BC466 + .pool +_081BC1E8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x23 + b _081BC466 + .pool +_081BC1F8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x24 + b _081BC466 + .pool +_081BC208: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x25 + b _081BC466 + .pool +_081BC218: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x26 + b _081BC466 + .pool +_081BC228: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x27 + bl GetMonData + strb r0, [r7] + adds r0, r4, 0 + movs r1, 0x28 + bl GetMonData + strb r0, [r7, 0x1] + adds r0, r4, 0 + movs r1, 0x29 + bl GetMonData + strb r0, [r7, 0x2] + adds r0, r4, 0 + movs r1, 0x2A + bl GetMonData + strb r0, [r7, 0x3] + adds r0, r4, 0 + movs r1, 0x2B + bl GetMonData + strb r0, [r7, 0x4] + adds r0, r4, 0 + movs r1, 0x2C + bl GetMonData + strb r0, [r7, 0x5] + movs r6, 0x6 + b _081BC46E + .pool +_081BC278: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x27 + b _081BC466 + .pool +_081BC288: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x28 + b _081BC466 + .pool +_081BC298: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x29 + b _081BC466 + .pool +_081BC2A8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x2A + b _081BC466 + .pool +_081BC2B8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x2B + b _081BC466 + .pool +_081BC2C8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x2C + b _081BC466 + .pool +_081BC2D8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0 + b _081BC302 + .pool +_081BC2E8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x9 + b _081BC3A6 + .pool +_081BC2F8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x37 +_081BC302: + bl GetMonData + adds r1, r0, 0 + strb r1, [r7] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r0, 16 + strb r0, [r7, 0x2] + lsrs r0, r1, 24 + strb r0, [r7, 0x3] + movs r6, 0x4 + b _081BC46E + .pool +_081BC32C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x38 + b _081BC466 + .pool +_081BC33C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x39 + b _081BC3A6 + .pool +_081BC34C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3A + b _081BC3A6 + .pool +_081BC35C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3B + b _081BC3A6 + .pool +_081BC36C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3C + b _081BC3A6 + .pool +_081BC37C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3D + b _081BC3A6 + .pool +_081BC38C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3E + b _081BC3A6 + .pool +_081BC39C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3F +_081BC3A6: + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + strb r0, [r7] + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r6, 0x2 + b _081BC46E + .pool +_081BC3BC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x16 + b _081BC466 + .pool +_081BC3CC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x17 + b _081BC466 + .pool +_081BC3DC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x18 + b _081BC466 + .pool +_081BC3EC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x21 + b _081BC466 + .pool +_081BC3FC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x2F + b _081BC466 + .pool +_081BC40C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x30 + b _081BC466 + .pool +_081BC41C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x32 + b _081BC466 + .pool +_081BC42C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x33 + b _081BC466 + .pool +_081BC43C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x34 + b _081BC466 + .pool +_081BC44C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x35 + b _081BC466 + .pool +_081BC45C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x36 +_081BC466: + bl GetMonData + strb r0, [r7] + movs r6, 0x1 +_081BC46E: + adds r0, r6, 0 + add sp, 0x90 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end dp01_getattr_by_ch1_for_player_pokemon + + thumb_func_start sub_81BC484 +sub_81BC484: @ 81BC484 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81BC484 + + thumb_func_start sub_81BC490 +sub_81BC490: @ 81BC490 + push {r4,r5,lr} + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + bne _081BC4C0 + ldr r0, =gBattlePartyID + lsls r1, r2, 1 + adds r1, r0 + ldrb r0, [r1] + bl sub_81BC4E8 + b _081BC4DE + .pool +_081BC4C0: + ldrb r4, [r1] + movs r5, 0 +_081BC4C4: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _081BC4D2 + adds r0, r5, 0 + bl sub_81BC4E8 +_081BC4D2: + lsrs r4, 1 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _081BC4C4 +_081BC4DE: + bl PlayerPartnerBufferExecCompleted + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81BC490 + + thumb_func_start sub_81BC4E8 +sub_81BC4E8: @ 81BC4E8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x34 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 9 + ldr r2, =gUnknown_02023067 + adds r3, r0, r2 + adds r6, r3, 0 + subs r1, r2, 0x2 + adds r0, r1 + ldrb r0, [r0] + adds r7, r2, 0 + cmp r0, 0x3B + bls _081BC514 + bl _081BCEAE +_081BC514: + lsls r0, 2 + ldr r1, =_081BC52C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081BC52C: + .4byte _081BC61C + .4byte _081BC7B4 + .4byte _081BC7D4 + .4byte _081BC7F4 + .4byte _081BC84C + .4byte _081BC84C + .4byte _081BC84C + .4byte _081BC84C + .4byte _081BC874 + .4byte _081BC8D8 + .4byte _081BC8D8 + .4byte _081BC8D8 + .4byte _081BC8D8 + .4byte _081BCEAE + .4byte _081BCEAE + .4byte _081BCEAE + .4byte _081BCEAE + .4byte _081BC908 + .4byte _081BC928 + .4byte _081BC948 + .4byte _081BC968 + .4byte _081BC988 + .4byte _081BC9A8 + .4byte _081BC9C8 + .4byte _081BC9E8 + .4byte _081BCA08 + .4byte _081BCA28 + .4byte _081BCA48 + .4byte _081BCA68 + .4byte _081BCA88 + .4byte _081BCAA8 + .4byte _081BCAC8 + .4byte _081BCB38 + .4byte _081BCB58 + .4byte _081BCB78 + .4byte _081BCB98 + .4byte _081BCBB8 + .4byte _081BCBD8 + .4byte _081BCBF8 + .4byte _081BCC18 + .4byte _081BCC38 + .4byte _081BCC58 + .4byte _081BCC78 + .4byte _081BCC98 + .4byte _081BCCB8 + .4byte _081BCCD8 + .4byte _081BCCF8 + .4byte _081BCD18 + .4byte _081BCD38 + .4byte _081BCD58 + .4byte _081BCD78 + .4byte _081BCD98 + .4byte _081BCDB8 + .4byte _081BCDD8 + .4byte _081BCDF8 + .4byte _081BCE18 + .4byte _081BCE38 + .4byte _081BCE58 + .4byte _081BCE78 + .4byte _081BCE98 +_081BC61C: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + adds r2, r6, 0 + bl SetMonData + adds r2, r6, 0 + adds r2, 0x2E + adds r0, r4, 0 + movs r1, 0xC + bl SetMonData + movs r0, 0 + mov r8, r0 + movs r0, 0x3B + adds r0, r6 + mov r10, r0 + adds r0, r6, 0 + adds r0, 0x2B + str r0, [sp, 0x20] + adds r0, 0x19 + str r0, [sp, 0x28] + adds r0, 0x4 + str r0, [sp, 0x2C] + adds r0, 0x4 + str r0, [sp, 0x30] + subs r0, 0x22 + str r0, [sp, 0x1C] + subs r0, 0x2 + str r0, [sp, 0x18] + adds r0, 0x4 + str r0, [sp, 0x24] + adds r0, r6, 0x2 + str r0, [sp, 0x4] + adds r0, r6, 0x4 + str r0, [sp, 0x8] + adds r0, r6, 0x6 + str r0, [sp, 0xC] + adds r0, 0x2 + str r0, [sp, 0x10] + adds r0, 0x2 + str r0, [sp, 0x14] + mov r9, r4 + adds r7, r6, 0 + adds r7, 0x24 + adds r4, r6, 0 + adds r4, 0xC +_081BC682: + mov r1, r8 + adds r1, 0xD + mov r0, r9 + adds r2, r4, 0 + bl SetMonData + mov r1, r8 + adds r1, 0x11 + mov r0, r9 + adds r2, r7, 0 + bl SetMonData + adds r7, 0x1 + adds r4, 0x2 + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x3 + ble _081BC682 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x15 + mov r2, r10 + bl SetMonData + adds r0, r4, 0 + movs r1, 0x20 + ldr r2, [sp, 0x20] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x19 + ldr r2, [sp, 0x28] + bl SetMonData + ldrb r0, [r6, 0x14] + lsls r0, 27 + lsrs r0, 27 + mov r1, sp + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x27 + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r6, 0x14] + lsls r0, 22 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x28 + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r6, 0x15] + lsls r0, 25 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x29 + mov r2, sp + bl SetMonData + mov r1, sp + ldr r0, [r6, 0x14] + lsls r0, 12 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2A + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r6, 0x16] + lsls r0, 23 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2B + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r6, 0x17] + lsls r0, 26 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2C + mov r2, sp + bl SetMonData + adds r0, r4, 0 + movs r1, 0 + ldr r2, [sp, 0x2C] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x37 + ldr r2, [sp, 0x30] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x38 + ldr r2, [sp, 0x1C] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x39 + ldr r2, [sp, 0x18] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3A + ldr r2, [sp, 0x24] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3B + ldr r2, [sp, 0x4] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3C + ldr r2, [sp, 0x8] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3D + ldr r2, [sp, 0xC] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3E + ldr r2, [sp, 0x10] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3F + ldr r2, [sp, 0x14] + bl SetMonData + b _081BCEAE + .pool +_081BC7B4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0xB + bl SetMonData + b _081BCEAE + .pool +_081BC7D4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0xC + bl SetMonData + b _081BCEAE + .pool +_081BC7F4: + movs r0, 0 + mov r8, r0 + movs r0, 0xC + adds r0, r3 + mov r9, r0 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r7, r1, r0 + adds r6, r3, 0 + adds r6, 0x8 + adds r4, r3, 0 +_081BC80E: + mov r1, r8 + adds r1, 0xD + adds r0, r7, 0 + adds r2, r4, 0 + bl SetMonData + mov r1, r8 + adds r1, 0x11 + adds r0, r7, 0 + adds r2, r6, 0 + bl SetMonData + adds r6, 0x1 + adds r4, 0x2 + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x3 + ble _081BC80E + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x15 + mov r2, r9 + bl SetMonData + b _081BCEAE + .pool +_081BC84C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r3, =gBattleBufferA + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, 0x9 + b _081BC8F0 + .pool +_081BC874: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + ldr r5, =gActiveBank + ldrb r2, [r5] + lsls r2, 9 + adds r2, r7 + adds r0, r4, 0 + movs r1, 0x11 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x1 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x12 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x2 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x13 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x3 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x14 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x4 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x15 + bl SetMonData + b _081BCEAE + .pool +_081BC8D8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r3, =gBattleBufferA + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, 0x8 +_081BC8F0: + adds r3, 0x3 + adds r2, r3 + bl SetMonData + b _081BCEAE + .pool +_081BC908: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1 + bl SetMonData + b _081BCEAE + .pool +_081BC928: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x19 + bl SetMonData + b _081BCEAE + .pool +_081BC948: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1A + bl SetMonData + b _081BCEAE + .pool +_081BC968: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1B + bl SetMonData + b _081BCEAE + .pool +_081BC988: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1C + bl SetMonData + b _081BCEAE + .pool +_081BC9A8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1D + bl SetMonData + b _081BCEAE + .pool +_081BC9C8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1E + bl SetMonData + b _081BCEAE + .pool +_081BC9E8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1F + bl SetMonData + b _081BCEAE + .pool +_081BCA08: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x20 + bl SetMonData + b _081BCEAE + .pool +_081BCA28: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x22 + bl SetMonData + b _081BCEAE + .pool +_081BCA48: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x23 + bl SetMonData + b _081BCEAE + .pool +_081BCA68: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x24 + bl SetMonData + b _081BCEAE + .pool +_081BCA88: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x25 + bl SetMonData + b _081BCEAE + .pool +_081BCAA8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x26 + bl SetMonData + b _081BCEAE + .pool +_081BCAC8: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + ldr r5, =gActiveBank + ldrb r2, [r5] + lsls r2, 9 + adds r2, r7 + adds r0, r4, 0 + movs r1, 0x27 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x1 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x28 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x2 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x29 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x3 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x2A + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x4 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x2B + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x5 + adds r2, r0 + adds r0, r4, 0 + b _081BCBE8 + .pool +_081BCB38: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x27 + bl SetMonData + b _081BCEAE + .pool +_081BCB58: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x28 + bl SetMonData + b _081BCEAE + .pool +_081BCB78: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x29 + bl SetMonData + b _081BCEAE + .pool +_081BCB98: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x2A + bl SetMonData + b _081BCEAE + .pool +_081BCBB8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x2B + bl SetMonData + b _081BCEAE + .pool +_081BCBD8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 +_081BCBE8: + movs r1, 0x2C + bl SetMonData + b _081BCEAE + .pool +_081BCBF8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0 + bl SetMonData + b _081BCEAE + .pool +_081BCC18: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x9 + bl SetMonData + b _081BCEAE + .pool +_081BCC38: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x37 + bl SetMonData + b _081BCEAE + .pool +_081BCC58: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x38 + bl SetMonData + b _081BCEAE + .pool +_081BCC78: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x39 + bl SetMonData + b _081BCEAE + .pool +_081BCC98: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3A + bl SetMonData + b _081BCEAE + .pool +_081BCCB8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3B + bl SetMonData + b _081BCEAE + .pool +_081BCCD8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3C + bl SetMonData + b _081BCEAE + .pool +_081BCCF8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3D + bl SetMonData + b _081BCEAE + .pool +_081BCD18: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3E + bl SetMonData + b _081BCEAE + .pool +_081BCD38: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3F + bl SetMonData + b _081BCEAE + .pool +_081BCD58: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x16 + bl SetMonData + b _081BCEAE + .pool +_081BCD78: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x17 + bl SetMonData + b _081BCEAE + .pool +_081BCD98: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x18 + bl SetMonData + b _081BCEAE + .pool +_081BCDB8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x21 + bl SetMonData + b _081BCEAE + .pool +_081BCDD8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x2F + bl SetMonData + b _081BCEAE + .pool +_081BCDF8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x30 + bl SetMonData + b _081BCEAE + .pool +_081BCE18: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x32 + bl SetMonData + b _081BCEAE + .pool +_081BCE38: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x33 + bl SetMonData + b _081BCEAE + .pool +_081BCE58: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x34 + bl SetMonData + b _081BCEAE + .pool +_081BCE78: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x35 + bl SetMonData + b _081BCEAE + .pool +_081BCE98: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x36 + bl SetMonData +_081BCEAE: + ldr r2, =gBattlePartyID + ldr r0, =gActiveBank + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, =gPlayerParty + adds r0, r2 + bl sub_805E990 + add sp, 0x34 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BC4E8 + + thumb_func_start sub_81BCEE4 +sub_81BCEE4: @ 81BCEE4 + push {r4-r7,lr} + ldr r1, =gBattlePartyID + ldr r7, =gActiveBank + ldrb r2, [r7] + lsls r0, r2, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + adds r3, r1, 0 + muls r3, r0 + ldr r4, =gBattleBufferA + lsls r2, 9 + adds r0, r4, 0x1 + adds r0, r2, r0 + ldrb r0, [r0] + ldr r1, =gPlayerParty + adds r0, r1 + adds r5, r3, r0 + movs r3, 0 + adds r0, r4, 0x2 + adds r2, r0 + ldrb r2, [r2] + cmp r3, r2 + bcs _081BCF3C + adds r6, r4, 0 + adds r2, r7, 0 + adds r4, r0, 0 +_081BCF1A: + adds r1, r5, r3 + ldrb r0, [r2] + lsls r0, 9 + adds r0, 0x3 + adds r0, r3, r0 + adds r0, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + ldrb r0, [r2] + lsls r0, 9 + adds r0, r4 + ldrb r0, [r0] + cmp r3, r0 + bcc _081BCF1A +_081BCF3C: + bl PlayerPartnerBufferExecCompleted + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BCEE4 + + thumb_func_start sub_81BCF58 +sub_81BCF58: @ 81BCF58 + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r0, =gBattlePartyID + mov r8, r0 + ldr r6, =gActiveBank + ldrb r1, [r6] + lsls r0, r1, 1 + add r0, r8 + ldrh r0, [r0] + movs r5, 0x64 + muls r0, r5 + ldr r4, =gPlayerParty + adds r0, r4 + bl sub_805DD7C + ldrb r0, [r6] + lsls r0, 1 + add r0, r8 + ldrh r0, [r0] + muls r0, r5 + adds r0, r4 + movs r1, 0xB + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r6] + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_806A068 + ldr r0, =gUnknown_0202499C + mov r8, r0 + ldrb r0, [r6] + movs r1, 0x2 + bl sub_80A5C6C + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldrb r0, [r6] + bl sub_80A6138 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r6] + bl sub_80A82E4 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + mov r0, r8 + adds r1, r5, 0 + adds r2, r4, 0 + bl CreateSprite + ldr r4, =gBankSpriteIds + ldrb r1, [r6] + adds r1, r4 + strb r0, [r1] + ldr r5, =gSprites + ldrb r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =0x0000ff10 + strh r1, [r0, 0x24] + ldrb r2, [r6] + adds r0, r2, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x2E] + ldrb r3, [r6] + adds r0, r3, r4 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + lsls r3, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r2, [r6] + adds r4, r2, r4 + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =gUnknown_020244E4 + adds r2, r1 + ldrb r1, [r2] + bl StartSpriteAnim + ldr r1, =gBattleBankFunc + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_81BB1D4 + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BCF58 + + thumb_func_start sub_81BD074 +sub_81BD074: @ 81BD074 + push {r4-r6,lr} + ldr r5, =gActiveBank + ldrb r0, [r5] + ldr r4, =gBattleBufferA + lsls r1, r0, 9 + adds r6, r4, 0x2 + adds r1, r6 + ldrb r1, [r1] + bl sub_805EF84 + ldr r2, =gBattlePartyID + ldrb r0, [r5] + lsls r1, r0, 1 + adds r1, r2 + lsls r0, 9 + adds r4, 0x1 + adds r0, r4 + ldrb r0, [r0] + strh r0, [r1] + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, =gPlayerParty + adds r0, r2 + bl sub_805DD7C + ldrb r0, [r5] + lsls r1, r0, 9 + adds r1, r6 + ldrb r1, [r1] + bl sub_81BD0E4 + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_81BBAE8 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BD074 + + thumb_func_start sub_81BD0E4 +sub_81BD0E4: @ 81BD0E4 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + lsls r1, 24 + lsrs r1, 24 + adds r0, r6, 0 + bl sub_805EF84 + ldr r0, =gBattlePartyID + lsls r2, r6, 1 + adds r2, r0 + ldr r0, =gBattleBufferA + lsls r1, r6, 9 + adds r0, 0x1 + adds r1, r0 + ldrb r0, [r1] + strh r0, [r2] + ldrh r1, [r2] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + mov r8, r0 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r0, =sub_805D714 + bl CreateInvisibleSpriteWithCallback + ldr r1, =gUnknown_03005D7C + mov r9, r1 + add r9, r6 + mov r1, r9 + strb r0, [r1] + adds r0, r6, 0 + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r8 + bl sub_806A068 + ldr r0, =gUnknown_0202499C + mov r10, r0 + adds r0, r6, 0 + movs r1, 0x2 + bl sub_80A5C6C + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + adds r0, r6, 0 + bl sub_80A6138 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + bl sub_80A82E4 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + mov r0, r10 + adds r1, r5, 0 + adds r2, r4, 0 + bl CreateSprite + ldr r4, =gBankSpriteIds + adds r4, r6, r4 + strb r0, [r4] + ldr r5, =gSprites + mov r0, r9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r4] + strh r1, [r0, 0x30] + mov r0, r9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x32] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x2E] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + mov r1, r8 + strh r1, [r0, 0x32] + ldrb r0, [r4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + lsls r3, r6, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =gUnknown_020244E4 + adds r6, r1 + ldrb r1, [r6] + bl StartSpriteAnim + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =SpriteCallbackDummy + str r1, [r0] + movs r0, 0 + movs r1, 0xFF + bl sub_80753E8 + mov r1, r9 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r5 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0x2E] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BD0E4 + + thumb_func_start sub_81BD260 +sub_81BD260: @ 81BD260 + push {r4-r6,lr} + ldr r1, =gBattleBufferA + ldr r6, =gActiveBank + ldrb r2, [r6] + lsls r0, r2, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r3, [r0] + cmp r3, 0 + bne _081BD2A8 + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + strb r3, [r0, 0x4] + ldr r1, =gBattleBankFunc + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_81BD2F0 + str r1, [r0] + b _081BD2DE + .pool +_081BD2A8: + ldr r5, =gBankSpriteIds + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + ldr r1, =gUnknown_03005D70 + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + bl sub_8072984 + bl PlayerPartnerBufferExecCompleted +_081BD2DE: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BD260 + + thumb_func_start sub_81BD2F0 +sub_81BD2F0: @ 81BD2F0 + push {r4-r6,lr} + ldr r6, =gUnknown_020244D0 + ldr r4, [r6] + ldr r5, =gActiveBank + ldrb r2, [r5] + ldr r1, [r4, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r3, r0, r1 + ldrb r0, [r3, 0x4] + cmp r0, 0 + beq _081BD318 + cmp r0, 0x1 + beq _081BD346 + b _081BD36E + .pool +_081BD318: + ldr r1, [r4] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _081BD332 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_081BD332: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0, 0x4] + b _081BD36E +_081BD346: + ldrb r1, [r3] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _081BD36E + strb r0, [r3, 0x4] + ldrb r2, [r5] + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x1 + bl move_anim_start_t4 + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_81BB828 + str r1, [r0] +_081BD36E: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BD2F0 + + thumb_func_start sub_81BD37C +sub_81BD37C: @ 81BD37C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r2, =gUnknown_02038BCE + ldrh r1, [r2] + ldr r0, =0x00000c03 + cmp r1, r0 + bne _081BD3A8 + movs r4, 0x7 + movs r0, 0x5A + mov r9, r0 + ldr r0, =gUnknown_08305D2C + ldrb r1, [r0, 0x1C] + b _081BD3BE + .pool +_081BD3A8: + ldrh r0, [r2] + bl sub_8162AA0 + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x20 + mov r9, r0 + ldr r1, =gUnknown_083054E0 + lsls r0, r4, 2 + adds r0, r1 + ldrb r1, [r0] +_081BD3BE: + movs r0, 0x8 + subs r0, r1 + lsls r0, 18 + movs r1, 0xA0 + lsls r1, 15 + adds r0, r1 + lsrs r7, r0, 16 + ldr r0, =gUnknown_02038BCE + ldrh r1, [r0] + ldr r0, =0x00000c03 + cmp r1, r0 + bne _081BD494 + ldr r5, =gActiveBank + ldrb r1, [r5] + adds r0, r4, 0 + bl sub_805DF84 + ldrb r0, [r5] + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl template_build_for_pokemon_or_trainer + ldr r6, =gUnknown_0202499C + mov r8, r9 + lsls r4, r7, 16 + asrs r4, 16 + ldrb r0, [r5] + bl sub_80A82E4 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + adds r0, r6, 0 + mov r1, r8 + adds r2, r4, 0 + bl CreateSprite + ldr r6, =gBankSpriteIds + ldrb r1, [r5] + adds r1, r6 + strb r0, [r1] + ldr r4, =gSprites + ldrb r3, [r5] + adds r0, r3, r6 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + lsls r3, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0xF0 + strh r1, [r0, 0x24] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =0x0000fffe + strh r1, [r0, 0x2E] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, =sub_805D7AC + str r1, [r0] + b _081BD57C + .pool +_081BD494: + adds r5, r4, 0 + ldr r6, =gActiveBank + ldrb r1, [r6] + adds r0, r5, 0 + bl sub_805DF38 + ldrb r0, [r6] + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl sub_806A1C0 + ldr r0, =gUnknown_0202499C + mov r8, r0 + lsls r4, r7, 16 + asrs r4, 16 + ldrb r0, [r6] + bl sub_80A82E4 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + mov r0, r8 + mov r1, r9 + adds r2, r4, 0 + bl CreateSprite + ldr r4, =gBankSpriteIds + ldrb r1, [r6] + adds r1, r4 + strb r0, [r1] + ldr r0, =gTrainerFrontPicPaletteTable + lsls r5, 3 + adds r5, r0 + ldrh r0, [r5, 0x4] + bl IndexOfSpritePaletteTag + ldr r5, =gSprites + ldrb r1, [r6] + adds r1, r4 + ldrb r1, [r1] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r5 + lsls r0, 4 + ldrb r3, [r2, 0x5] + movs r1, 0xF + ands r1, r3 + orrs r1, r0 + strb r1, [r2, 0x5] + ldrb r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0xF0 + strh r1, [r0, 0x24] + ldrb r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x30 + strh r1, [r0, 0x26] + ldrb r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =0x0000fffe + strh r1, [r0, 0x2E] + ldrb r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =sub_805D7AC + str r1, [r0] + ldrb r0, [r6] + adds r0, r4 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r2, [r1, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldrb r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3F + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] +_081BD57C: + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_81BAE60 + str r1, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BD37C + + thumb_func_start sub_81BD5BC +sub_81BD5BC: @ 81BD5BC + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81BD5BC + + thumb_func_start sub_81BD5C8 +sub_81BD5C8: @ 81BD5C8 + push {r4-r6,lr} + ldr r6, =gBankSpriteIds + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, =gSprites + adds r0, r5 + bl oamt_add_pos2_onto_pos1 + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x23 + strh r1, [r0, 0x2E] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =0x0000ffd8 + strh r1, [r0, 0x32] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r1, [r0, 0x22] + strh r1, [r0, 0x36] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =sub_80A6EEC + str r1, [r0] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =SpriteCallbackDummy + bl oamt_set_x3A_32 + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_81BAE98 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BD5C8 + + thumb_func_start sub_81BD674 +sub_81BD674: @ 81BD674 + push {r4-r6,lr} + ldr r6, =gUnknown_020244D0 + ldr r4, [r6] + ldr r5, =gActiveBank + ldrb r2, [r5] + ldr r0, [r4, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r3, r1, r0 + ldrb r0, [r3, 0x4] + cmp r0, 0 + bne _081BD6C8 + ldr r1, [r4] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _081BD6A8 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_081BD6A8: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x4] + adds r1, 0x1 + strb r1, [r0, 0x4] + b _081BD73E + .pool +_081BD6C8: + ldrb r1, [r3] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _081BD73E + strb r4, [r3, 0x4] + ldr r2, =gBattlePartyID + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, =gPlayerParty + adds r0, r2 + bl sub_805E990 + movs r1, 0x40 + negs r1, r1 + movs r0, 0x10 + bl PlaySE12WithPanning + ldr r2, =gSprites + ldr r3, =gBankSpriteIds + ldrb r0, [r5] + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r4, [r0, 0x30] + ldrb r0, [r5] + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x5 + strh r1, [r0, 0x32] + ldrb r0, [r5] + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, =sub_8039C00 + str r1, [r0] + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_81BB78C + str r1, [r0] +_081BD73E: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BD674 + + thumb_func_start sub_81BD760 +sub_81BD760: @ 81BD760 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81BD760 + + thumb_func_start sub_81BD76C +sub_81BD76C: @ 81BD76C + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81BD76C + + thumb_func_start sub_81BD778 +sub_81BD778: @ 81BD778 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81BD778 + + thumb_func_start sub_81BD784 +sub_81BD784: @ 81BD784 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81BD784 + + thumb_func_start sub_81BD790 +sub_81BD790: @ 81BD790 + push {r4-r6,lr} + ldr r6, =gActiveBank + ldrb r0, [r6] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + beq _081BD7A2 + b _081BD8B6 +_081BD7A2: + ldr r0, =gBattleBufferA + mov r12, r0 + ldrb r2, [r6] + lsls r2, 9 + adds r0, 0x1 + adds r0, r2, r0 + ldrb r0, [r0] + mov r1, r12 + adds r1, 0x2 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + ldr r5, =gUnknown_02038432 + mov r1, r12 + adds r1, 0x3 + adds r2, r1 + ldrb r1, [r2] + strb r1, [r5] + ldr r4, =gMovePowerMoveAnim + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x4 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0x5 + adds r2, r1 + ldrb r1, [r2] + lsls r1, 8 + orrs r3, r1 + strh r3, [r4] + ldr r4, =gMoveDmgMoveAnim + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x6 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0x7 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r3, r1 + mov r1, r12 + adds r1, 0x8 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 16 + orrs r3, r1 + mov r1, r12 + adds r1, 0x9 + adds r2, r1 + ldrb r1, [r2] + lsls r1, 24 + orrs r3, r1 + str r3, [r4] + ldr r3, =gHappinessMoveAnim + ldrb r1, [r6] + lsls r1, 9 + mov r2, r12 + adds r2, 0xA + adds r1, r2 + ldrb r1, [r1] + strb r1, [r3] + ldr r4, =gWeatherMoveAnim + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0xC + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0xD + adds r2, r1 + ldrb r1, [r2] + lsls r1, 8 + orrs r3, r1 + strh r3, [r4] + ldr r3, =gDisableStructMoveAnim + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x10 + adds r2, r1 + str r2, [r3] + ldr r3, =gUnknown_020244BC + ldrb r1, [r6] + lsls r1, 2 + adds r1, r3 + ldr r2, [r2] + str r2, [r1] + ldrb r1, [r5] + bl sub_805DB8C + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _081BD898 + bl PlayerPartnerBufferExecCompleted + b _081BD8B6 + .pool +_081BD898: + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strb r3, [r0, 0x4] + ldr r1, =gBattleBankFunc + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, =bx_move_anim_3 + str r1, [r0] +_081BD8B6: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BD790 + + thumb_func_start bx_move_anim_3 +bx_move_anim_3: @ 81BD8C8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r2, =gBattleBufferA + ldr r6, =gActiveBank + ldrb r3, [r6] + lsls r1, r3, 9 + adds r0, r2, 0x1 + mov r10, r0 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, r2, 0x2 + mov r9, r5 + adds r0, r1, r5 + ldrb r0, [r0] + lsls r0, 8 + orrs r4, r0 + adds r2, 0xB + adds r1, r2 + ldrb r1, [r1] + mov r8, r1 + ldr r7, =gUnknown_020244D0 + ldr r5, [r7] + ldr r1, [r5, 0x4] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0, 0x4] + cmp r2, 0x1 + beq _081BD960 + cmp r2, 0x1 + bgt _081BD920 + cmp r2, 0 + beq _081BD92A + b _081BDA3C + .pool +_081BD920: + cmp r2, 0x2 + beq _081BD98A + cmp r2, 0x3 + beq _081BDA00 + b _081BDA3C +_081BD92A: + ldr r1, [r5] + lsls r0, r3, 2 + adds r1, r0, r1 + ldrb r2, [r1] + movs r0, 0xC + ands r0, r2 + cmp r0, 0x4 + bne _081BD94C + movs r0, 0x8 + orrs r0, r2 + strb r0, [r1] + ldrb r2, [r6] + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_081BD94C: + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0, 0x4] + b _081BDA3C +_081BD960: + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _081BDA3C + movs r0, 0 + bl sub_805EB9C + adds r0, r4, 0 + bl move_anim_start_t1 + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x2 + strb r1, [r0, 0x4] + b _081BDA3C +_081BD98A: + ldr r0, =gAnimScriptCallback + ldr r0, [r0] + bl _call_via_r0 + ldr r0, =gAnimScriptActive + ldrb r0, [r0] + cmp r0, 0 + bne _081BDA3C + movs r0, 0x1 + bl sub_805EB9C + ldr r0, [r7] + ldrb r2, [r6] + ldr r1, [r0] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _081BD9D8 + mov r0, r8 + cmp r0, 0x1 + bhi _081BD9D8 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x6 + bl move_anim_start_t4 + ldr r0, [r7] + ldrb r1, [r6] + ldr r0, [r0] + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x9 + negs r0, r0 + ands r0, r2 + strb r0, [r1] +_081BD9D8: + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + strb r1, [r0, 0x4] + b _081BDA3C + .pool +_081BDA00: + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _081BDA3C + bl sub_805E394 + ldrb r0, [r6] + lsls r2, r0, 9 + mov r3, r10 + adds r1, r2, r3 + ldrb r1, [r1] + add r2, r9 + ldrb r2, [r2] + lsls r2, 8 + orrs r1, r2 + bl sub_805E94C + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strb r4, [r0, 0x4] + bl PlayerPartnerBufferExecCompleted +_081BDA3C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end bx_move_anim_3 + + thumb_func_start sub_81BDA4C +sub_81BDA4C: @ 81BDA4C + push {r4,lr} + ldr r0, =gUnknown_02022E14 + movs r1, 0 + strh r1, [r0] + ldr r0, =gUnknown_02022E16 + strh r1, [r0] + ldr r4, =gActiveBank + ldrb r0, [r4] + lsls r0, 9 + ldr r1, =gUnknown_02023066 + adds r0, r1 + ldrh r0, [r0] + bl battle_pick_message + ldr r0, =gUnknown_02022E2C + movs r1, 0 + bl battle_show_message_maybe + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_81BB898 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BDA4C + + thumb_func_start sub_81BDAA0 +sub_81BDAA0: @ 81BDAA0 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81BDAA0 + + thumb_func_start sub_81BDAAC +sub_81BDAAC: @ 81BDAAC + push {lr} + bl sub_8063880 + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81BDAAC + + thumb_func_start sub_81BDABC +sub_81BDABC: @ 81BDABC + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81BDABC + + thumb_func_start sub_81BDAC8 +sub_81BDAC8: @ 81BDAC8 + push {r4-r6,lr} + ldr r6, =gActiveBank + ldrb r4, [r6] + lsls r4, 9 + ldr r0, =gUnknown_02023068 + adds r4, r0 + movs r0, 0xF + bl BattleAI_SetupAIData + bl sub_8130BA4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, =gBattleMoves + lsls r0, r5, 1 + adds r4, r0 + ldrh r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x6] + movs r0, 0x12 + ands r0, r1 + cmp r0, 0 + beq _081BDB02 + ldr r1, =gBankTarget + ldrb r0, [r6] + strb r0, [r1] +_081BDB02: + ldrh r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x6] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _081BDB3C + movs r0, 0x1 + bl GetBankByPlayerAI + ldr r4, =gBankTarget + strb r0, [r4] + ldr r0, =gAbsentBankFlags + ldrb r1, [r0] + ldr r2, =gBitTable + ldrb r0, [r4] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _081BDB3C + movs r0, 0x3 + bl GetBankByPlayerAI + strb r0, [r4] +_081BDB3C: + ldr r0, =gBankTarget + ldrb r2, [r0] + lsls r2, 8 + orrs r2, r5 + movs r0, 0x1 + movs r1, 0xA + bl dp01_build_cmdbuf_x21_a_bb + bl PlayerPartnerBufferExecCompleted + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BDAC8 + + thumb_func_start sub_81BDB70 +sub_81BDB70: @ 81BDB70 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81BDB70 + + thumb_func_start sub_81BDB7C +sub_81BDB7C: @ 81BDB7C + push {r4-r6,lr} + bl sub_8063A90 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x6 + bne _081BDBD0 + movs r0, 0 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r6, r0, 24 + movs r0, 0x2 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0x3 + b _081BDBA4 +_081BDBA2: + adds r4, 0x1 +_081BDBA4: + cmp r4, 0x5 + bgt _081BDBD0 + movs r0, 0x64 + muls r0, r4 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _081BDBA2 + ldr r1, =gBattlePartyID + lsls r0, r6, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r4, r0 + beq _081BDBA2 + lsls r0, r5, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r4, r0 + beq _081BDBA2 +_081BDBD0: + ldr r0, =gActiveBank + ldrb r0, [r0] + ldr r1, =gBattleStruct + ldr r1, [r1] + adds r0, r1 + adds r0, 0x5C + strb r4, [r0] + lsls r1, r4, 24 + lsrs r1, 24 + movs r0, 0x1 + movs r2, 0 + bl dp01_build_cmdbuf_x22_a_three_bytes + bl PlayerPartnerBufferExecCompleted + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BDB7C + + thumb_func_start sub_81BDC04 +sub_81BDC04: @ 81BDC04 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81BDC04 + + thumb_func_start sub_81BDC10 +sub_81BDC10: @ 81BDC10 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + movs r0, 0 + bl load_gfxc_health_bar + ldr r3, =gBattleBufferA + ldr r0, =gActiveBank + mov r9, r0 + ldrb r4, [r0] + lsls r2, r4, 9 + adds r0, r3, 0x2 + adds r0, r2, r0 + ldrb r1, [r0] + adds r3, 0x3 + adds r2, r3 + ldrb r0, [r2] + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + asrs r7, r1, 16 + ldr r0, =0x00007fff + cmp r7, r0 + beq _081BDCA0 + ldr r6, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r6 + ldrh r0, [r0] + movs r5, 0x64 + muls r0, r5 + ldr r4, =gPlayerParty + adds r0, r4 + movs r1, 0x3A + bl GetMonData + mov r8, r0 + mov r1, r9 + ldrb r0, [r1] + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + muls r0, r5 + adds r0, r4 + movs r1, 0x39 + bl GetMonData + adds r3, r0, 0 + mov r1, r9 + ldrb r0, [r1] + ldr r1, =gUnknown_03005D70 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + mov r2, r8 + bl sub_807294C + b _081BDCCA + .pool +_081BDCA0: + ldr r1, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3A + bl GetMonData + adds r2, r0, 0 + mov r1, r9 + ldrb r0, [r1] + ldr r1, =gUnknown_03005D70 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + movs r3, 0 + bl sub_807294C +_081BDCCA: + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =bx_t3_healthbar_update + str r1, [r0] + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BDC10 + + thumb_func_start sub_81BDD00 +sub_81BDD00: @ 81BDD00 + push {r4-r7,lr} + ldr r5, =gBattleBufferA + ldr r6, =gActiveBank + ldrb r0, [r6] + lsls r0, 9 + adds r1, r5, 0x1 + adds r0, r1 + ldrb r7, [r0] + movs r0, 0x64 + adds r1, r7, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + cmp r0, 0x63 + bls _081BDD38 + bl PlayerPartnerBufferExecCompleted + b _081BDD84 + .pool +_081BDD38: + movs r0, 0x1 + bl load_gfxc_health_bar + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + ldrb r1, [r6] + lsls r1, 9 + adds r0, r5, 0x2 + adds r0, r1, r0 + ldrb r4, [r0] + adds r0, r5, 0x3 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 8 + orrs r4, r0 + ldr r0, =sub_81BB29C + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r7, [r1, 0x8] + strh r4, [r1, 0xA] + ldrb r0, [r6] + strh r0, [r1, 0xC] + ldr r1, =gBattleBankFunc + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, =nullsub_21 + str r1, [r0] +_081BDD84: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BDD00 + + thumb_func_start sub_81BDD9C +sub_81BDD9C: @ 81BDD9C + push {r4,lr} + ldr r4, =gActiveBank + ldrb r0, [r4] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _081BDDF0 + ldr r0, =gUnknown_03005D70 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + ldr r2, =gBattlePartyID + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gPlayerParty + adds r1, r2 + movs r2, 0x9 + bl healthbar_draw_field_maybe + ldrb r2, [r4] + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_81BBC04 + str r1, [r0] +_081BDDF0: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BDD9C + + thumb_func_start sub_81BDE14 +sub_81BDE14: @ 81BDE14 + push {r4,r5,lr} + ldr r5, =gActiveBank + ldrb r0, [r5] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _081BDE64 + ldr r4, =gBattleBufferA + ldrb r3, [r5] + lsls r3, 9 + adds r0, r4, 0x1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, 0x2 + adds r1, r3, r1 + ldrb r1, [r1] + adds r2, r4, 0x3 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, 8 + orrs r1, r2 + adds r2, r4, 0x4 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, 16 + orrs r1, r2 + adds r4, 0x5 + adds r3, r4 + ldrb r2, [r3] + lsls r2, 24 + orrs r1, r2 + bl move_anim_start_t2_for_situation + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_81BBC04 + str r1, [r0] +_081BDE64: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BDE14 + + thumb_func_start sub_81BDE7C +sub_81BDE7C: @ 81BDE7C + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81BDE7C + + thumb_func_start sub_81BDE88 +sub_81BDE88: @ 81BDE88 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81BDE88 + + thumb_func_start sub_81BDE94 +sub_81BDE94: @ 81BDE94 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81BDE94 + + thumb_func_start sub_81BDEA0 +sub_81BDEA0: @ 81BDEA0 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81BDEA0 + + thumb_func_start sub_81BDEAC +sub_81BDEAC: @ 81BDEAC + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81BDEAC + + thumb_func_start sub_81BDEB8 +sub_81BDEB8: @ 81BDEB8 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81BDEB8 + + thumb_func_start sub_81BDEC4 +sub_81BDEC4: @ 81BDEC4 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81BDEC4 + + thumb_func_start sub_81BDED0 +sub_81BDED0: @ 81BDED0 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81BDED0 + + thumb_func_start sub_81BDEDC +sub_81BDEDC: @ 81BDEDC + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81BDEDC + + thumb_func_start sub_81BDEE8 +sub_81BDEE8: @ 81BDEE8 + push {lr} + ldr r2, =gUnknown_02022D0C + ldrb r1, [r2] + movs r0, 0x80 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BDEE8 + + thumb_func_start sub_81BDF04 +sub_81BDF04: @ 81BDF04 + push {lr} + ldr r3, =gUnknown_02022D0C + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + movs r1, 0x7F + ands r1, r0 + ldrb r2, [r3] + movs r0, 0x80 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BDF04 + + thumb_func_start sub_81BDF3C +sub_81BDF3C: @ 81BDF3C + push {lr} + ldr r2, =gUnknown_02022D0C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BDF3C + + thumb_func_start sub_81BDF54 +sub_81BDF54: @ 81BDF54 + push {lr} + ldr r3, =gUnknown_02022D0C + ldr r1, [r3] + lsls r1, 24 + lsrs r1, 31 + movs r0, 0x1 + eors r1, r0 + lsls r1, 7 + ldrb r2, [r3] + movs r0, 0x7F + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BDF54 + + thumb_func_start dp01t_29_3_blink +dp01t_29_3_blink: @ 81BDF7C + push {r4,lr} + ldr r3, =gSprites + ldr r2, =gBankSpriteIds + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + bge _081BDFB0 + bl PlayerPartnerBufferExecCompleted + b _081BDFDA + .pool +_081BDFB0: + ldr r1, =gDoingBattleAnim + movs r0, 0x1 + strb r0, [r1] + ldrb r0, [r4] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0 + strh r1, [r0, 0x30] + ldrb r0, [r4] + bl sub_80769F4 + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =bx_blink_t3 + str r1, [r0] +_081BDFDA: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end dp01t_29_3_blink + + thumb_func_start sub_81BDFEC +sub_81BDFEC: @ 81BDFEC + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81BDFEC + + thumb_func_start sub_81BDFF8 +sub_81BDFF8: @ 81BDFF8 + push {r4,lr} + ldr r4, =gActiveBank + ldrb r0, [r4] + bl GetBankSide + lsls r0, 24 + movs r3, 0x3F + cmp r0, 0 + bne _081BE00C + movs r3, 0xC0 +_081BE00C: + ldr r2, =gBattleBufferA + ldrb r1, [r4] + lsls r1, 9 + adds r0, r2, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + lsls r1, r3, 24 + asrs r1, 24 + bl PlaySE12WithPanning + bl PlayerPartnerBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BDFF8 + + thumb_func_start sub_81BE03C +sub_81BE03C: @ 81BE03C + push {r4,r5,lr} + ldr r4, =gBattleBufferA + ldr r5, =gActiveBank + ldrb r0, [r5] + lsls r3, r0, 9 + adds r0, r4, 0x3 + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, 0 + beq _081BE078 + bl sub_805EA60 + ldrb r1, [r5] + lsls r1, 9 + adds r0, r4, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, r4, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + bl PlayBGM + b _081BE08C + .pool +_081BE078: + adds r0, r4, 0x1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, 0x2 + adds r1, r3, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + bl PlayFanfare +_081BE08C: + bl PlayerPartnerBufferExecCompleted + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81BE03C + + thumb_func_start sub_81BE098 +sub_81BE098: @ 81BE098 + push {lr} + ldr r1, =gBattlePartyID + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x19 + negs r1, r1 + movs r2, 0x5 + bl PlayCry3 + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BE098 + + thumb_func_start dp01t_2E_3_battle_intro +dp01t_2E_3_battle_intro: @ 81BE0D8 + push {lr} + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + bl battle_intro_launch + ldr r2, =gUnknown_020243FC + ldrh r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r2] + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end dp01t_2E_3_battle_intro + + thumb_func_start sub_81BE10C +sub_81BE10C: @ 81BE10C + push {r4-r6,lr} + ldr r6, =gBankSpriteIds + ldr r5, =gActiveBank + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + bl oamt_add_pos2_onto_pos1 + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x32 + strh r1, [r0, 0x2E] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =0x0000ffd8 + strh r1, [r0, 0x32] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x22] + strh r1, [r0, 0x36] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =sub_80A6EEC + str r1, [r0] + ldrb r2, [r5] + adds r0, r2, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r2, [r0, 0x38] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =sub_805CC00 + bl oamt_set_x3A_32 + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x1 + bl StartSpriteAnim + ldr r0, =0x0000d6f9 + bl AllocSpritePalette + lsls r0, 24 + lsrs r4, r0, 24 + ldr r2, =gUnknown_02038BCE + ldrh r1, [r2] + ldr r0, =0x00000c03 + cmp r1, r0 + bne _081BE1FC + ldr r0, =gTrainerBackPicPaletteTable + ldr r0, [r0, 0x38] + lsls r4, 4 + movs r2, 0x80 + lsls r2, 1 + adds r1, r4, r2 + movs r2, 0x20 + bl LoadCompressedPalette + b _081BE21A + .pool +_081BE1FC: + ldrh r0, [r2] + bl sub_8162AA0 + lsls r0, 24 + ldr r1, =gTrainerFrontPicPaletteTable + lsrs r0, 21 + adds r0, r1 + ldr r0, [r0] + lsls r4, 4 + movs r2, 0x80 + lsls r2, 1 + adds r1, r4, r2 + movs r2, 0x20 + bl LoadCompressedPalette +_081BE21A: + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r5, =gActiveBank + ldrb r0, [r5] + adds r0, r1 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r4 + strb r0, [r1, 0x5] + ldr r0, =sub_81BE2C8 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r4, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r4 + ldrb r0, [r5] + strh r0, [r1, 0x8] + ldr r3, =gUnknown_020244D0 + ldr r0, [r3] + ldrb r2, [r5] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081BE27E + ldr r0, =gUnknown_020244B4 + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + ldr r1, =sub_8073C30 + str r1, [r0] +_081BE27E: + ldr r0, [r3] + ldr r2, [r0, 0x8] + ldrb r0, [r2, 0x9] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x9] + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =nullsub_77 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BE10C + + thumb_func_start sub_81BE2C8 +sub_81BE2C8: @ 81BE2C8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r1, =gTasks + lsls r0, 2 + add r0, r8 + lsls r0, 3 + adds r1, r0, r1 + ldrh r2, [r1, 0xA] + movs r3, 0xA + ldrsh r0, [r1, r3] + cmp r0, 0x17 + bgt _081BE2F4 + adds r0, r2, 0x1 + strh r0, [r1, 0xA] + b _081BE3B0 + .pool +_081BE2F4: + ldr r7, =gActiveBank + ldrb r0, [r7] + mov r9, r0 + ldrh r0, [r1, 0x8] + strb r0, [r7] + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _081BE314 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081BE344 +_081BE314: + ldr r0, =gBattleBufferA + ldrb r1, [r7] + lsls r2, r1, 9 + adds r0, 0x1 + adds r2, r0 + ldr r0, =gBattlePartyID + lsls r1, 1 + adds r1, r0 + ldrh r0, [r1] + strb r0, [r2] + ldrb r0, [r7] + movs r1, 0 + bl sub_81BD0E4 + b _081BE398 + .pool +_081BE344: + ldr r4, =gBattleBufferA + ldrb r0, [r7] + lsls r1, r0, 9 + adds r4, 0x1 + adds r1, r4 + ldr r5, =gBattlePartyID + lsls r0, 1 + adds r0, r5 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, 0 + bl sub_81BD0E4 + ldrb r0, [r7] + movs r6, 0x2 + eors r0, r6 + strb r0, [r7] + ldrb r0, [r7] + lsls r1, r0, 9 + adds r1, r4 + lsls r0, 1 + adds r0, r5 + ldrh r0, [r0] + strb r0, [r1] + ldrb r1, [r7] + lsls r0, r1, 1 + adds r0, r5 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, =gPlayerParty + adds r0, r2 + bl sub_805DD7C + ldrb r0, [r7] + movs r1, 0 + bl sub_81BD0E4 + ldrb r0, [r7] + eors r0, r6 + strb r0, [r7] +_081BE398: + ldr r1, =gBattleBankFunc + ldr r2, =gActiveBank + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_81BB02C + str r1, [r0] + mov r3, r9 + strb r3, [r2] + mov r0, r8 + bl DestroyTask +_081BE3B0: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BE2C8 + + thumb_func_start dp01t_30_3_80EB11C +dp01t_30_3_80EB11C: @ 81BE3D4 + push {r4-r6,lr} + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _081BE404 + adds r0, r2, 0 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _081BE404 + bl PlayerPartnerBufferExecCompleted + b _081BE478 + .pool +_081BE404: + ldr r6, =gUnknown_020244D0 + ldr r0, [r6] + ldr r5, =gActiveBank + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + ldrb r0, [r5] + lsls r3, r0, 9 + ldr r4, =gUnknown_02023068 + adds r1, r3, r4 + subs r2, r4, 0x3 + adds r2, r3, r2 + ldrb r2, [r2] + subs r4, 0x2 + adds r3, r4 + ldrb r3, [r3] + bl sub_80735DC + ldr r2, =gUnknown_020244B4 + ldrb r1, [r5] + adds r1, r2 + movs r3, 0 + strb r0, [r1] + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strb r3, [r0, 0x5] + ldrb r2, [r5] + lsls r0, r2, 9 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _081BE46C + ldr r0, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + movs r1, 0x5D + strb r1, [r0, 0x5] +_081BE46C: + ldr r0, =gBattleBankFunc + ldrb r1, [r5] + lsls r1, 2 + adds r1, r0 + ldr r0, =sub_81BE498 + str r0, [r1] +_081BE478: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end dp01t_30_3_80EB11C + + thumb_func_start sub_81BE498 +sub_81BE498: @ 81BE498 + push {r4,lr} + ldr r4, =gUnknown_020244D0 + ldr r0, [r4] + ldr r3, =gActiveBank + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x5] + adds r2, r1, 0x1 + strb r2, [r0, 0x5] + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0x5C + bls _081BE4D0 + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strb r1, [r0, 0x5] + bl PlayerPartnerBufferExecCompleted +_081BE4D0: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BE498 + + thumb_func_start sub_81BE4E0 +sub_81BE4E0: @ 81BE4E0 + push {lr} + ldr r0, =gUnknown_020244D0 + ldr r1, [r0] + ldr r0, =gActiveBank + ldrb r3, [r0] + ldr r1, [r1, 0x4] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081BE512 + ldr r2, =gTasks + ldr r0, =gUnknown_020244B4 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, =sub_8073C30 + str r1, [r0] +_081BE512: + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BE4E0 + + thumb_func_start sub_81BE530 +sub_81BE530: @ 81BE530 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81BE530 + + thumb_func_start sub_81BE53C +sub_81BE53C: @ 81BE53C + push {r4,lr} + ldr r4, =gActiveBank + ldrb r0, [r4] + bl sub_80A6A90 + lsls r0, 24 + cmp r0, 0 + beq _081BE582 + ldr r3, =gSprites + ldr r0, =gBankSpriteIds + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + ldr r0, =gBattleBufferA + lsls r1, 9 + adds r0, 0x1 + adds r1, r0 + adds r2, 0x3E + movs r0, 0x1 + ldrb r1, [r1] + ands r1, r0 + lsls r1, 2 + ldrb r3, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + bl sub_805E408 +_081BE582: + bl PlayerPartnerBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BE53C + + thumb_func_start sub_81BE59C +sub_81BE59C: @ 81BE59C + push {r4-r6,lr} + sub sp, 0x4 + ldr r6, =gActiveBank + ldrb r0, [r6] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _081BE5F4 + ldr r5, =gBattleBufferA + ldrb r2, [r6] + lsls r1, r2, 9 + adds r0, r5, 0x1 + adds r0, r1, r0 + ldrb r3, [r0] + adds r0, r5, 0x2 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, 0x3 + adds r1, r5 + ldrb r0, [r1] + lsls r0, 8 + orrs r4, r0 + str r4, [sp] + adds r0, r2, 0 + adds r1, r2, 0 + bl move_anim_start_t3 + lsls r0, 24 + cmp r0, 0 + beq _081BE5E8 + bl PlayerPartnerBufferExecCompleted + b _081BE5F4 + .pool +_081BE5E8: + ldr r0, =gBattleBankFunc + ldrb r1, [r6] + lsls r1, 2 + adds r1, r0 + ldr r0, =bx_80E8A6C + str r0, [r1] +_081BE5F4: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BE59C + + thumb_func_start sub_81BE604 +sub_81BE604: @ 81BE604 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81BE604 + + thumb_func_start sub_81BE610 +sub_81BE610: @ 81BE610 + push {lr} + bl PlayerPartnerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81BE610 + + thumb_func_start sub_81BE61C +sub_81BE61C: @ 81BE61C + push {r4,lr} + ldr r2, =gBattleOutcome + ldr r1, =gBattleBufferA + ldr r4, =gActiveBank + ldrb r0, [r4] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + movs r0, 0x5 + bl FadeOutMapMusic + movs r0, 0x3 + bl BeginFastPaletteFade + bl PlayerPartnerBufferExecCompleted + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_80587B0 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BE61C + + thumb_func_start nullsub_128 +nullsub_128: @ 81BE668 + bx lr + thumb_func_end nullsub_128 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_controller_recorded_opponent.s b/asm/battle_controller_recorded_opponent.s new file mode 100644 index 0000000000..4e2290b72f --- /dev/null +++ b/asm/battle_controller_recorded_opponent.s @@ -0,0 +1,5969 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start nullsub_70 +nullsub_70: @ 81864E8 + bx lr + thumb_func_end nullsub_70 + + thumb_func_start SetBankFuncToRecordedOpponentBufferRunCommand +SetBankFuncToRecordedOpponentBufferRunCommand: @ 81864EC + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =RecordedOpponentBufferRunCommand + str r1, [r0] + bx lr + .pool + thumb_func_end SetBankFuncToRecordedOpponentBufferRunCommand + + thumb_func_start RecordedOpponentBufferRunCommand +RecordedOpponentBufferRunCommand: @ 8186508 + push {lr} + ldr r2, =gBattleExecBuffer + ldr r1, =gBitTable + ldr r0, =gActiveBank + ldrb r3, [r0] + lsls r0, r3, 2 + adds r0, r1 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08186554 + ldr r0, =gBattleBufferA + lsls r1, r3, 9 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0x38 + bhi _08186550 + ldr r0, =gRecordedOpponentBufferCommands + ldrb r1, [r1] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + bl _call_via_r0 + b _08186554 + .pool +_08186550: + bl RecordedOpponentBufferExecCompleted +_08186554: + pop {r0} + bx r0 + thumb_func_end RecordedOpponentBufferRunCommand + + thumb_func_start sub_8186558 +sub_8186558: @ 8186558 + push {lr} + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _0818657C + bl RecordedOpponentBufferExecCompleted +_0818657C: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8186558 + + thumb_func_start sub_8186590 +sub_8186590: @ 8186590 + push {lr} + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _081865B4 + bl RecordedOpponentBufferExecCompleted +_081865B4: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8186590 + + thumb_func_start sub_81865C8 +sub_81865C8: @ 81865C8 + push {r4-r6,lr} + ldr r5, =gSprites + ldr r6, =gBankSpriteIds + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r2, r0, 2 + adds r0, r5, 0 + adds r0, 0x1C + adds r0, r2, r0 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _0818661A + adds r0, r2, r5 + ldrh r0, [r0, 0x6] + bl sub_805DFE4 + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl FreeSpriteOamMatrix + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl DestroySprite + bl RecordedOpponentBufferExecCompleted +_0818661A: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81865C8 + + thumb_func_start sub_8186630 +sub_8186630: @ 8186630 + push {r4,lr} + ldr r4, =gUnknown_020244D0 + ldr r1, [r4] + ldr r3, =gActiveBank + ldrb r0, [r3] + ldr r2, [r1, 0x4] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1, 0x9] + subs r0, 0x1 + strb r0, [r1, 0x9] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _08186668 + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strb r1, [r0, 0x9] + bl RecordedOpponentBufferExecCompleted +_08186668: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8186630 + + thumb_func_start sub_8186678 +sub_8186678: @ 8186678 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r0, 0 + mov r9, r0 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _081866A4 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _081866F8 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081866F8 +_081866A4: + ldr r4, =gSprites + ldr r0, =gUnknown_03005D70 + ldr r2, =gActiveBank + ldrb r3, [r2] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + mov r8, r2 + cmp r1, r0 + bne _08186764 + ldr r0, =gBankSpriteIds + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 27 + cmp r0, 0 + bge _08186764 + b _0818676A + .pool +_081866F8: + ldr r6, =gSprites + ldr r7, =gUnknown_03005D70 + ldr r2, =gActiveBank + ldrb r3, [r2] + adds r0, r3, r7 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r5, r6, 0 + adds r5, 0x1C + adds r0, r5 + ldr r4, [r0] + ldr r0, =SpriteCallbackDummy + mov r8, r2 + cmp r4, r0 + bne _08186764 + movs r0, 0x2 + adds r2, r3, 0 + eors r2, r0 + adds r0, r2, r7 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r0, [r0] + cmp r0, r4 + bne _08186764 + ldr r4, =gBankSpriteIds + adds r0, r3, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 27 + cmp r0, 0 + bge _08186764 + adds r0, r2, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 27 + cmp r0, 0 + bge _08186764 + movs r1, 0x1 + mov r9, r1 +_08186764: + mov r2, r9 + cmp r2, 0 + beq _0818683A +_0818676A: + mov r6, r8 + ldrb r0, [r6] + bl GetBankIdentity + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x1 + bne _08186816 + ldr r0, =gUnknown_020244D0 + mov r12, r0 + ldr r0, [r0] + ldrb r2, [r6] + ldr r5, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r4, r0, r5 + ldrb r1, [r4, 0x1] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _0818683A + movs r7, 0x2 + adds r1, r7, 0 + eors r1, r2 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r0, 0x1] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _0818683A + ldrb r1, [r4] + movs r3, 0x7F + adds r0, r3, 0 + ands r0, r1 + strb r0, [r4] + mov r1, r12 + ldr r0, [r1] + ldrb r2, [r6] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r4, 0x2 + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + strb r0, [r1, 0x1] + mov r0, r12 + ldr r2, [r0] + ldrb r0, [r6] + adds r1, r7, 0 + eors r1, r0 + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + ands r3, r1 + strb r3, [r0] + mov r1, r12 + ldr r2, [r1] + ldrb r0, [r6] + adds r1, r7, 0 + eors r1, r0 + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x1] + ands r4, r1 + strb r4, [r0, 0x1] + ldr r4, =0x000027f9 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag +_08186816: + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + mov r2, r8 + ldrb r1, [r2] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + strb r1, [r0, 0x9] + ldr r1, =gBattleBankFunc + mov r2, r8 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8186630 + str r1, [r0] +_0818683A: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8186678 + + thumb_func_start sub_818686C +sub_818686C: @ 818686C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r0, 0 + mov r9, r0 + mov r8, r0 + ldr r4, =gUnknown_020244D0 + ldr r0, [r4] + ldr r7, =gActiveBank + ldrb r2, [r7] + ldr r1, [r0, 0x4] + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r5, 0x88 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _081868AC + ldr r0, =gBattlePartyID + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gEnemyParty + adds r1, r0 + adds r0, r2, 0 + bl sub_8172EF0 +_081868AC: + ldr r1, [r4] + ldrb r0, [r7] + movs r6, 0x2 + adds r2, r6, 0 + eors r2, r0 + ldr r1, [r1, 0x4] + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _081868DE + ldr r0, =gBattlePartyID + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gEnemyParty + adds r1, r0 + adds r0, r2, 0 + bl sub_8172EF0 +_081868DE: + ldr r0, [r4] + ldrb r2, [r7] + ldr r3, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r4, r0, r3 + ldrb r1, [r4] + movs r5, 0x8 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _081869AE + adds r1, r6, 0 + eors r1, r2 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _081869AE + ldrb r1, [r4, 0x1] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08186994 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08186964 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08186964 + ldr r4, =gUnknown_03005D70 + ldrb r0, [r7] + adds r1, r6, 0 + eors r1, r0 + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, =gBattlePartyID + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gEnemyParty + adds r1, r2 + movs r2, 0 + bl healthbar_draw_field_maybe + ldrb r0, [r7] + eors r0, r6 + bl sub_8076918 + ldrb r0, [r7] + eors r0, r6 + adds r0, r4 + ldrb r0, [r0] + bl sub_80729D0 +_08186964: + ldr r5, =gUnknown_03005D70 + ldr r4, =gActiveBank + ldrb r1, [r4] + adds r0, r1, r5 + ldrb r0, [r0] + ldr r2, =gBattlePartyID + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gEnemyParty + adds r1, r2 + movs r2, 0 + bl healthbar_draw_field_maybe + ldrb r0, [r4] + bl sub_8076918 + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + bl sub_80729D0 +_08186994: + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x1] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0, 0x1] +_081869AE: + ldr r5, =gUnknown_020244D0 + ldr r0, [r5] + ldr r4, =gActiveBank + ldrb r2, [r4] + ldr r3, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x1] + movs r0, 0xC0 + ands r0, r1 + cmp r0, 0x80 + bne _08186A6A + movs r1, 0x2 + eors r1, r2 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x1] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08186A6A + bl IsCryPlayingOrClearCrySongs + lsls r0, 24 + cmp r0, 0 + bne _08186A6A + ldr r0, [r5] + ldrb r2, [r4] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x1] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _08186A4C + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x42 + ands r0, r1 + cmp r0, 0x42 + bne _08186A40 + adds r0, r2, 0 + bl GetBankIdentity + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08186A4C + ldr r0, =gMPlay_BGM + bl m4aMPlayContinue + b _08186A4C + .pool +_08186A40: + ldr r0, =gMPlay_BGM + ldr r1, =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl +_08186A4C: + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x1] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0, 0x1] + movs r0, 0x1 + mov r9, r0 +_08186A6A: + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + bne _08186AC8 + ldr r2, =gSprites + ldr r0, =gUnknown_03005D7C + ldr r1, =gActiveBank + ldrb r4, [r1] + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r3, [r0] + ldr r0, =SpriteCallbackDummy + cmp r3, r0 + bne _08186B26 + ldr r0, =gBankSpriteIds + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + cmp r0, r3 + bne _08186B26 + b _08186B22 + .pool +_08186AC8: + ldr r2, =gSprites + ldr r7, =gUnknown_03005D7C + ldr r0, =gActiveBank + ldrb r3, [r0] + adds r0, r3, r7 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r4, [r0] + ldr r0, =SpriteCallbackDummy + cmp r4, r0 + bne _08186B26 + ldr r6, =gBankSpriteIds + adds r0, r3, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r5, [r0] + cmp r5, r4 + bne _08186B26 + movs r0, 0x2 + eors r3, r0 + adds r0, r3, r7 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r4, [r0] + cmp r4, r5 + bne _08186B26 + adds r0, r3, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + cmp r0, r4 + bne _08186B26 +_08186B22: + movs r0, 0x1 + mov r8, r0 +_08186B26: + mov r0, r9 + cmp r0, 0 + beq _08186C10 + mov r0, r8 + cmp r0, 0 + beq _08186C10 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08186B8A + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08186B8A + ldr r1, =gUnknown_03005D7C + ldr r5, =gActiveBank + ldrb r0, [r5] + movs r4, 0x2 + eors r0, r4 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + bl DestroySprite + ldrb r0, [r5] + eors r4, r0 + ldr r1, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_805EE54 +_08186B8A: + ldr r1, =gUnknown_03005D7C + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + bl DestroySprite + ldrb r5, [r4] + ldr r1, =gBattlePartyID + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r5, 0 + bl sub_805EE54 + ldr r3, =gUnknown_020244D0 + ldr r0, [r3] + ldr r2, [r0, 0x8] + ldrb r1, [r2, 0x9] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x9] + ldr r0, [r3] + ldrb r2, [r4] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldr r0, [r3] + ldrb r2, [r4] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r0, 0x7F + ands r0, r2 + strb r0, [r1, 0x1] + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8186678 + str r1, [r0] +_08186C10: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818686C + + thumb_func_start sub_8186C48 +sub_8186C48: @ 8186C48 + push {r4-r7,lr} + ldr r4, =gSprites + ldr r0, =gBankSpriteIds + ldr r7, =gActiveBank + ldrb r3, [r7] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r2, r0, 2 + adds r0, r4, 0 + adds r0, 0x1C + adds r0, r2, r0 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _08186CFA + adds r0, r2, r4 + movs r1, 0x24 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _08186CFA + ldr r6, =gUnknown_020244D0 + ldr r0, [r6] + ldr r1, [r0, 0x4] + lsls r4, r3, 1 + adds r0, r4, r3 + lsls r0, 2 + adds r2, r0, r1 + ldrb r5, [r2] + movs r0, 0x80 + ands r0, r5 + cmp r0, 0 + bne _08186CC0 + ldr r0, =gBattlePartyID + adds r0, r4, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gEnemyParty + adds r1, r0 + adds r0, r3, 0 + bl sub_8172EF0 + b _08186CFA + .pool +_08186CC0: + ldrb r1, [r2, 0x1] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08186CFA + movs r0, 0x7F + ands r0, r5 + strb r0, [r2] + ldr r0, [r6] + ldrb r2, [r7] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldr r4, =0x000027f9 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag + bl RecordedOpponentBufferExecCompleted +_08186CFA: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8186C48 + + thumb_func_start sub_8186D04 +sub_8186D04: @ 8186D04 + push {r4-r6,lr} + ldr r6, =gActiveBank + ldrb r0, [r6] + ldr r5, =gUnknown_03005D70 + adds r1, r0, r5 + ldrb r1, [r1] + movs r2, 0 + movs r3, 0 + bl sub_8074AA0 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r6] + adds r0, r5 + ldrb r0, [r0] + bl sub_80729D0 + lsls r4, 16 + asrs r1, r4, 16 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08186D4C + ldrb r0, [r6] + adds r0, r5 + ldrb r0, [r0] + movs r2, 0 + bl heathbar_draw_hp + b _08186D50 + .pool +_08186D4C: + bl RecordedOpponentBufferExecCompleted +_08186D50: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8186D04 + + thumb_func_start sub_8186D58 +sub_8186D58: @ 8186D58 + push {lr} + ldr r2, =gSprites + ldr r0, =gBankSpriteIds + ldr r1, =gActiveBank + ldrb r3, [r1] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 31 + cmp r0, 0 + bne _08186D86 + ldr r0, =gUnknown_03005D70 + adds r0, r3, r0 + ldrb r0, [r0] + bl sub_8072984 + bl RecordedOpponentBufferExecCompleted +_08186D86: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8186D58 + + thumb_func_start sub_8186D9C +sub_8186D9C: @ 8186D9C + push {r4-r6,lr} + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r6, =gActiveBank + ldrb r2, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08186DF6 + ldr r5, =gBankSpriteIds + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + ldrb r0, [r6] + bl sub_805EEE0 + ldr r1, =gUnknown_03005D70 + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + bl sub_8072984 + bl RecordedOpponentBufferExecCompleted +_08186DF6: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8186D9C + + thumb_func_start sub_8186E10 +sub_8186E10: @ 8186E10 + push {lr} + movs r0, 0 + bl IsTextPrinterActive + lsls r0, 16 + cmp r0, 0 + bne _08186E22 + bl RecordedOpponentBufferExecCompleted +_08186E22: + pop {r0} + bx r0 + thumb_func_end sub_8186E10 + + thumb_func_start bx_blink_t2 +bx_blink_t2: @ 8186E28 + push {r4,lr} + ldr r1, =gBankSpriteIds + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + ldr r2, =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, r0, r2 + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0x20 + bne _08186E74 + movs r3, 0 + movs r0, 0 + strh r0, [r4, 0x30] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + subs r0, 0x5 + ands r0, r1 + strb r0, [r2] + ldr r0, =gDoingBattleAnim + strb r3, [r0] + bl RecordedOpponentBufferExecCompleted + b _08186E9E + .pool +_08186E74: + ldrh r0, [r4, 0x30] + movs r1, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08186E98 + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_08186E98: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] +_08186E9E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end bx_blink_t2 + + thumb_func_start sub_8186EA4 +sub_8186EA4: @ 8186EA4 + push {r4,lr} + ldr r2, =gSprites + ldr r0, =gUnknown_03005D70 + ldr r4, =gActiveBank + ldrb r3, [r4] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _08186EF0 + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r3, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08186EE4 + adds r0, r3, 0 + adds r1, r3, 0 + adds r2, r3, 0 + movs r3, 0x6 + bl move_anim_start_t4 +_08186EE4: + ldr r0, =gBattleBankFunc + ldrb r1, [r4] + lsls r1, 2 + adds r1, r0 + ldr r0, =sub_8186F14 + str r0, [r1] +_08186EF0: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8186EA4 + + thumb_func_start sub_8186F14 +sub_8186F14: @ 8186F14 + push {r4,lr} + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r4, =gActiveBank + ldrb r1, [r4] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08186F6E + bl IsCryPlayingOrClearCrySongs + lsls r0, 24 + cmp r0, 0 + bne _08186F6E + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldrb r0, [r4] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + beq _08186F5E + ldr r0, =nullsub_18 + cmp r1, r0 + bne _08186F6E +_08186F5E: + ldr r0, =gMPlay_BGM + ldr r1, =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl + bl RecordedOpponentBufferExecCompleted +_08186F6E: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8186F14 + + thumb_func_start sub_8186F94 +sub_8186F94: @ 8186F94 + push {r4-r7,lr} + ldr r4, =gUnknown_020244D0 + ldr r0, [r4] + ldr r5, =gActiveBank + ldrb r2, [r5] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r3, r0, r1 + ldrb r1, [r3, 0x1] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08187050 + ldr r7, =gSprites + ldr r6, =gBankSpriteIds + adds r0, r2, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r7, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _08187050 + ldrb r1, [r3] + movs r0, 0x7F + ands r0, r1 + strb r0, [r3] + ldr r0, [r4] + ldrb r2, [r5] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldr r4, =0x000027f9 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + movs r1, 0 + bl StartSpriteAnim + ldr r4, =gUnknown_03005D70 + ldrb r1, [r5] + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, =gBattlePartyID + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gEnemyParty + adds r1, r2 + movs r2, 0 + bl healthbar_draw_field_maybe + ldrb r0, [r5] + bl sub_8076918 + ldrb r0, [r5] + adds r0, r4 + ldrb r0, [r0] + bl sub_80729D0 + ldrb r0, [r5] + bl sub_805E408 + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8186EA4 + str r1, [r0] +_08187050: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8186F94 + + thumb_func_start sub_8187084 +sub_8187084: @ 8187084 + push {r4-r6,lr} + ldr r6, =gUnknown_020244D0 + ldr r0, [r6] + ldr r5, =gActiveBank + ldrb r2, [r5] + ldr r1, [r0, 0x4] + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x88 + ands r0, r1 + cmp r0, 0 + bne _081870B6 + ldr r0, =gBattlePartyID + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gEnemyParty + adds r1, r0 + adds r0, r2, 0 + bl sub_8172EF0 +_081870B6: + ldr r4, =gSprites + ldr r0, =gUnknown_03005D7C + ldrb r2, [r5] + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r3, r0, 2 + adds r0, r4, 0 + adds r0, 0x1C + adds r0, r3, r0 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _08187120 + ldr r0, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _08187120 + adds r0, r3, r4 + bl DestroySprite + ldrb r4, [r5] + ldr r1, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_805EE54 + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8186F94 + str r1, [r0] +_08187120: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8187084 + + thumb_func_start sub_818714C +sub_818714C: @ 818714C + push {lr} + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _0818716E + bl RecordedOpponentBufferExecCompleted +_0818716E: + pop {r0} + bx r0 + .pool + thumb_func_end sub_818714C + + thumb_func_start sub_818717C +sub_818717C: @ 818717C + push {lr} + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _0818719E + bl RecordedOpponentBufferExecCompleted +_0818719E: + pop {r0} + bx r0 + .pool + thumb_func_end sub_818717C + + thumb_func_start RecordedOpponentBufferExecCompleted +RecordedOpponentBufferExecCompleted: @ 81871AC + push {r4,lr} + sub sp, 0x4 + ldr r1, =gBattleBankFunc + ldr r4, =gActiveBank + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =RecordedOpponentBufferRunCommand + str r1, [r0] + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08187200 + bl link_get_multiplayer_id + mov r1, sp + strb r0, [r1] + movs r0, 0x2 + movs r1, 0x4 + mov r2, sp + bl PrepareBufferDataTransferLink + ldr r1, =gBattleBufferA + ldrb r0, [r4] + lsls r0, 9 + adds r0, r1 + movs r1, 0x38 + strb r1, [r0] + b _08187212 + .pool +_08187200: + ldr r2, =gBattleExecBuffer + ldr r1, =gBitTable + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + ldr r0, [r2] + bics r0, r1 + str r0, [r2] +_08187212: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end RecordedOpponentBufferExecCompleted + + thumb_func_start sub_8187224 +sub_8187224: @ 8187224 + push {r4-r6,lr} + sub sp, 0x100 + movs r6, 0 + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + bne _0818725C + ldr r0, =gBattlePartyID + lsls r1, r2, 1 + adds r1, r0 + ldrb r0, [r1] + mov r1, sp + bl sub_8187298 + adds r6, r0, 0 + b _0818727E + .pool +_0818725C: + ldrb r4, [r1] + movs r5, 0 +_08187260: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _08187276 + lsls r0, r5, 24 + lsrs r0, 24 + mov r2, sp + adds r1, r2, r6 + bl sub_8187298 + adds r6, r0 +_08187276: + lsrs r4, 1 + adds r5, 0x1 + cmp r5, 0x5 + ble _08187260 +_0818727E: + lsls r1, r6, 16 + lsrs r1, 16 + movs r0, 0x1 + mov r2, sp + bl dp01_build_cmdbuf_x1D_1D_numargs_varargs + bl RecordedOpponentBufferExecCompleted + add sp, 0x100 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8187224 + + thumb_func_start sub_8187298 +sub_8187298: @ 8187298 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x90 + adds r7, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0 + ldr r2, =gBattleBufferA + ldr r3, =gActiveBank + ldrb r0, [r3] + lsls r0, 9 + adds r1, r2, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x3B + bls _081872C2 + bl _08187A2E +_081872C2: + lsls r0, 2 + ldr r1, =_081872D8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081872D8: + .4byte _081873C8 + .4byte _081875EC + .4byte _081875FC + .4byte _0818760C + .4byte _08187674 + .4byte _08187674 + .4byte _08187674 + .4byte _08187674 + .4byte _08187690 + .4byte _081876CC + .4byte _081876CC + .4byte _081876CC + .4byte _081876CC + .4byte _08187A2E + .4byte _08187A2E + .4byte _08187A2E + .4byte _08187A2E + .4byte _081876E8 + .4byte _081876F8 + .4byte _08187728 + .4byte _08187738 + .4byte _08187748 + .4byte _08187758 + .4byte _08187768 + .4byte _08187778 + .4byte _08187788 + .4byte _08187798 + .4byte _081877A8 + .4byte _081877B8 + .4byte _081877C8 + .4byte _081877D8 + .4byte _081877E8 + .4byte _08187838 + .4byte _08187848 + .4byte _08187858 + .4byte _08187868 + .4byte _08187878 + .4byte _08187888 + .4byte _08187898 + .4byte _081878A8 + .4byte _081878B8 + .4byte _081878EC + .4byte _081878FC + .4byte _0818790C + .4byte _0818791C + .4byte _0818792C + .4byte _0818793C + .4byte _0818794C + .4byte _0818795C + .4byte _0818797C + .4byte _0818798C + .4byte _0818799C + .4byte _081879AC + .4byte _081879BC + .4byte _081879CC + .4byte _081879DC + .4byte _081879EC + .4byte _081879FC + .4byte _08187A0C + .4byte _08187A1C +_081873C8: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + mov r1, sp + strh r0, [r1] + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2E] + movs r6, 0 + add r0, sp, 0x24 + mov r9, r0 + movs r1, 0x3B + add r1, sp + mov r10, r1 + mov r2, sp + adds r2, 0x2B + str r2, [sp, 0x80] + mov r0, sp + adds r0, 0x2A + str r0, [sp, 0x7C] + mov r1, sp + adds r1, 0x68 + str r1, [sp, 0x8C] + adds r2, 0x5 + str r2, [sp, 0x84] + adds r0, 0x12 + str r0, [sp, 0x88] + mov r8, r4 + add r4, sp, 0xC +_08187414: + adds r1, r6, 0 + adds r1, 0xD + mov r0, r8 + bl GetMonData + strh r0, [r4] + adds r1, r6, 0 + adds r1, 0x11 + mov r0, r8 + bl GetMonData + mov r2, r9 + adds r1, r2, r6 + strb r0, [r1] + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _08187414 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x15 + bl GetMonData + mov r1, r10 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x20 + bl GetMonData + ldr r2, [sp, 0x80] + strb r0, [r2] + adds r0, r4, 0 + movs r1, 0x19 + bl GetMonData + str r0, [sp, 0x44] + adds r0, r4, 0 + movs r1, 0x27 + bl GetMonData + mov r3, sp + movs r5, 0x1F + ands r0, r5 + ldrb r2, [r3, 0x14] + movs r1, 0x20 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x14] + adds r0, r4, 0 + movs r1, 0x28 + bl GetMonData + mov r3, sp + movs r6, 0x1F + ands r0, r6 + lsls r0, 5 + ldrh r2, [r3, 0x14] + ldr r1, =0xfffffc1f + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x14] + adds r0, r4, 0 + movs r1, 0x29 + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, 2 + ldrb r2, [r3, 0x15] + movs r1, 0x7D + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x15] + adds r0, r4, 0 + movs r1, 0x2A + bl GetMonData + movs r1, 0x1F + ands r1, r0 + lsls r1, 15 + ldr r0, [sp, 0x14] + ldr r2, =0xfff07fff + ands r0, r2 + orrs r0, r1 + str r0, [sp, 0x14] + adds r0, r4, 0 + movs r1, 0x2B + bl GetMonData + mov r3, sp + ands r0, r6 + lsls r0, 4 + ldrh r2, [r3, 0x16] + ldr r1, =0xfffffe0f + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x16] + adds r0, r4, 0 + movs r1, 0x2C + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, 1 + ldrb r2, [r3, 0x17] + movs r1, 0x3F + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + str r0, [sp, 0x48] + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData + str r0, [sp, 0x4C] + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + ldr r1, [sp, 0x7C] + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + mov r1, sp + strh r0, [r1, 0x28] + adds r0, r4, 0 + movs r1, 0x3A + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2C] + adds r0, r4, 0 + movs r1, 0x3B + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2] + adds r0, r4, 0 + movs r1, 0x3C + bl GetMonData + mov r1, sp + strh r0, [r1, 0x4] + adds r0, r4, 0 + movs r1, 0x3D + bl GetMonData + mov r1, sp + strh r0, [r1, 0x6] + adds r0, r4, 0 + movs r1, 0x3E + bl GetMonData + mov r1, sp + strh r0, [r1, 0x8] + adds r0, r4, 0 + movs r1, 0x3F + bl GetMonData + mov r1, sp + strh r0, [r1, 0xA] + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + mov r3, sp + movs r1, 0x1 + ands r0, r1 + lsls r0, 6 + ldrb r2, [r3, 0x17] + movs r1, 0x41 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0x2E + bl GetMonData + mov r3, sp + lsls r0, 7 + ldrb r2, [r3, 0x17] + movs r1, 0x7F + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0x1 + bl GetMonData + str r0, [sp, 0x54] + adds r0, r4, 0 + movs r1, 0x2 + ldr r2, [sp, 0x8C] + bl GetMonData + ldr r0, [sp, 0x84] + ldr r1, [sp, 0x8C] + bl StringCopy10 + adds r0, r4, 0 + movs r1, 0x7 + ldr r2, [sp, 0x88] + bl GetMonData + mov r2, sp + movs r6, 0 +_081875CC: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, 0x1 + cmp r6, 0x57 + bls _081875CC + b _08187A2E + .pool +_081875EC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0xB + b _08187966 + .pool +_081875FC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0xC + b _08187966 + .pool +_0818760C: + movs r6, 0 + add r2, sp, 0x58 + mov r9, r2 + add r0, sp, 0x60 + mov r10, r0 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gEnemyParty + adds r4, r1, r0 + mov r8, r9 +_08187622: + adds r1, r6, 0 + adds r1, 0xD + adds r0, r4, 0 + bl GetMonData + mov r1, r8 + strh r0, [r1] + adds r1, r6, 0 + adds r1, 0x11 + adds r0, r4, 0 + bl GetMonData + mov r2, r10 + adds r1, r2, r6 + strb r0, [r1] + movs r0, 0x2 + add r8, r0 + adds r6, 0x1 + cmp r6, 0x3 + ble _08187622 + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x15 + bl GetMonData + mov r1, r9 + strb r0, [r1, 0xC] + mov r2, r9 + movs r6, 0 +_08187660: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, 0x1 + cmp r6, 0xF + bls _08187660 + b _08187A2E + .pool +_08187674: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r1, [r3] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + adds r1, 0x9 + b _08187966 + .pool +_08187690: + movs r6, 0 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r2, =gEnemyParty + mov r8, r2 +_0818769C: + adds r1, r6, 0 + adds r1, 0x11 + mov r2, r8 + adds r0, r4, r2 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, 0x1 + cmp r6, 0x3 + ble _0818769C + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x15 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, 0x1 + b _08187A2E + .pool +_081876CC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r1, [r3] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + adds r1, 0x8 + b _08187A26 + .pool +_081876E8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x1 + b _08187702 + .pool +_081876F8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x19 +_08187702: + bl GetMonData + adds r1, r0, 0 + strb r1, [r7] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r0, 16 + strb r0, [r7, 0x2] + movs r6, 0x3 + b _08187A2E + .pool +_08187728: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x1A + b _08187A26 + .pool +_08187738: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x1B + b _08187A26 + .pool +_08187748: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x1C + b _08187A26 + .pool +_08187758: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x1D + b _08187A26 + .pool +_08187768: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x1E + b _08187A26 + .pool +_08187778: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x1F + b _08187A26 + .pool +_08187788: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x20 + b _08187A26 + .pool +_08187798: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x22 + b _08187A26 + .pool +_081877A8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x23 + b _08187A26 + .pool +_081877B8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x24 + b _08187A26 + .pool +_081877C8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x25 + b _08187A26 + .pool +_081877D8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x26 + b _08187A26 + .pool +_081877E8: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x27 + bl GetMonData + strb r0, [r7] + adds r0, r4, 0 + movs r1, 0x28 + bl GetMonData + strb r0, [r7, 0x1] + adds r0, r4, 0 + movs r1, 0x29 + bl GetMonData + strb r0, [r7, 0x2] + adds r0, r4, 0 + movs r1, 0x2A + bl GetMonData + strb r0, [r7, 0x3] + adds r0, r4, 0 + movs r1, 0x2B + bl GetMonData + strb r0, [r7, 0x4] + adds r0, r4, 0 + movs r1, 0x2C + bl GetMonData + strb r0, [r7, 0x5] + movs r6, 0x6 + b _08187A2E + .pool +_08187838: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x27 + b _08187A26 + .pool +_08187848: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x28 + b _08187A26 + .pool +_08187858: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x29 + b _08187A26 + .pool +_08187868: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x2A + b _08187A26 + .pool +_08187878: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x2B + b _08187A26 + .pool +_08187888: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x2C + b _08187A26 + .pool +_08187898: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0 + b _081878C2 + .pool +_081878A8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x9 + b _08187966 + .pool +_081878B8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x37 +_081878C2: + bl GetMonData + adds r1, r0, 0 + strb r1, [r7] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r0, 16 + strb r0, [r7, 0x2] + lsrs r0, r1, 24 + strb r0, [r7, 0x3] + movs r6, 0x4 + b _08187A2E + .pool +_081878EC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x38 + b _08187A26 + .pool +_081878FC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x39 + b _08187966 + .pool +_0818790C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x3A + b _08187966 + .pool +_0818791C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x3B + b _08187966 + .pool +_0818792C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x3C + b _08187966 + .pool +_0818793C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x3D + b _08187966 + .pool +_0818794C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x3E + b _08187966 + .pool +_0818795C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x3F +_08187966: + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + strb r0, [r7] + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r6, 0x2 + b _08187A2E + .pool +_0818797C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x16 + b _08187A26 + .pool +_0818798C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x17 + b _08187A26 + .pool +_0818799C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x18 + b _08187A26 + .pool +_081879AC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x21 + b _08187A26 + .pool +_081879BC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x2F + b _08187A26 + .pool +_081879CC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x30 + b _08187A26 + .pool +_081879DC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x32 + b _08187A26 + .pool +_081879EC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x33 + b _08187A26 + .pool +_081879FC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x34 + b _08187A26 + .pool +_08187A0C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x35 + b _08187A26 + .pool +_08187A1C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x36 +_08187A26: + bl GetMonData + strb r0, [r7] + movs r6, 0x1 +_08187A2E: + adds r0, r6, 0 + add sp, 0x90 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8187298 + + thumb_func_start sub_8187A44 +sub_8187A44: @ 8187A44 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8187A44 + + thumb_func_start sub_8187A50 +sub_8187A50: @ 8187A50 + push {r4,r5,lr} + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + bne _08187A80 + ldr r0, =gBattlePartyID + lsls r1, r2, 1 + adds r1, r0 + ldrb r0, [r1] + bl dp01_setattr_for_opponent_pokemon + b _08187A9E + .pool +_08187A80: + ldrb r4, [r1] + movs r5, 0 +_08187A84: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _08187A92 + adds r0, r5, 0 + bl dp01_setattr_for_opponent_pokemon +_08187A92: + lsrs r4, 1 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _08187A84 +_08187A9E: + bl RecordedOpponentBufferExecCompleted + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8187A50 + + thumb_func_start dp01_setattr_for_opponent_pokemon +dp01_setattr_for_opponent_pokemon: @ 8187AA8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x38 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r3, =gActiveBank + ldrb r0, [r3] + lsls r0, 9 + ldr r2, =gUnknown_02023067 + adds r4, r0, r2 + adds r7, r4, 0 + subs r1, r2, 0x2 + adds r0, r1 + ldrb r0, [r0] + adds r6, r3, 0 + adds r3, r2, 0 + cmp r0, 0x3B + bls _08187AD6 + bl _081883B4 +_08187AD6: + lsls r0, 2 + ldr r1, =_08187AEC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08187AEC: + .4byte _08187BDC + .4byte _08187D74 + .4byte _08187D90 + .4byte _08187DAC + .4byte _08187E00 + .4byte _08187E00 + .4byte _08187E00 + .4byte _08187E00 + .4byte _08187E20 + .4byte _08187E88 + .4byte _08187E88 + .4byte _08187E88 + .4byte _08187E88 + .4byte _081883B4 + .4byte _081883B4 + .4byte _081883B4 + .4byte _081883B4 + .4byte _08187EB0 + .4byte _08187ECC + .4byte _08187EE8 + .4byte _08187F04 + .4byte _08187F20 + .4byte _08187F3C + .4byte _08187F58 + .4byte _08187F74 + .4byte _08187F90 + .4byte _08187FAC + .4byte _08187FC8 + .4byte _08187FE4 + .4byte _08188000 + .4byte _0818801C + .4byte _08188038 + .4byte _081880AC + .4byte _081880C8 + .4byte _081880E4 + .4byte _08188100 + .4byte _0818811C + .4byte _08188138 + .4byte _08188154 + .4byte _08188170 + .4byte _0818818C + .4byte _081881A8 + .4byte _081881C4 + .4byte _081881E0 + .4byte _081881FC + .4byte _08188218 + .4byte _08188234 + .4byte _08188250 + .4byte _0818826C + .4byte _08188288 + .4byte _081882A4 + .4byte _081882C0 + .4byte _081882DC + .4byte _081882F8 + .4byte _08188314 + .4byte _08188330 + .4byte _0818834C + .4byte _08188368 + .4byte _08188384 + .4byte _081883A0 +_08187BDC: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + adds r2, r7, 0 + bl SetMonData + adds r2, r7, 0 + adds r2, 0x2E + adds r0, r4, 0 + movs r1, 0xC + bl SetMonData + movs r0, 0 + mov r8, r0 + movs r0, 0x3B + adds r0, r7 + mov r10, r0 + adds r0, r7, 0 + adds r0, 0x2B + str r0, [sp, 0x20] + adds r0, 0x19 + str r0, [sp, 0x28] + adds r0, 0x4 + str r0, [sp, 0x2C] + adds r0, 0x4 + str r0, [sp, 0x30] + subs r0, 0x22 + str r0, [sp, 0x1C] + subs r0, 0x2 + str r0, [sp, 0x18] + adds r0, 0x4 + str r0, [sp, 0x24] + adds r0, r7, 0x2 + str r0, [sp, 0x4] + adds r0, r7, 0x4 + str r0, [sp, 0x8] + adds r0, r7, 0x6 + str r0, [sp, 0xC] + adds r0, 0x2 + str r0, [sp, 0x10] + adds r0, 0x2 + str r0, [sp, 0x14] + mov r9, r4 + adds r6, r7, 0 + adds r6, 0x24 + adds r4, r7, 0 + adds r4, 0xC +_08187C42: + mov r1, r8 + adds r1, 0xD + mov r0, r9 + adds r2, r4, 0 + bl SetMonData + mov r1, r8 + adds r1, 0x11 + mov r0, r9 + adds r2, r6, 0 + bl SetMonData + adds r6, 0x1 + adds r4, 0x2 + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x3 + ble _08187C42 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x15 + mov r2, r10 + bl SetMonData + adds r0, r4, 0 + movs r1, 0x20 + ldr r2, [sp, 0x20] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x19 + ldr r2, [sp, 0x28] + bl SetMonData + ldrb r0, [r7, 0x14] + lsls r0, 27 + lsrs r0, 27 + mov r1, sp + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x27 + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r7, 0x14] + lsls r0, 22 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x28 + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r7, 0x15] + lsls r0, 25 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x29 + mov r2, sp + bl SetMonData + mov r1, sp + ldr r0, [r7, 0x14] + lsls r0, 12 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2A + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r7, 0x16] + lsls r0, 23 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2B + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r7, 0x17] + lsls r0, 26 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2C + mov r2, sp + bl SetMonData + adds r0, r4, 0 + movs r1, 0 + ldr r2, [sp, 0x2C] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x37 + ldr r2, [sp, 0x30] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x38 + ldr r2, [sp, 0x1C] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x39 + ldr r2, [sp, 0x18] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3A + ldr r2, [sp, 0x24] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3B + ldr r2, [sp, 0x4] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3C + ldr r2, [sp, 0x8] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3D + ldr r2, [sp, 0xC] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3E + ldr r2, [sp, 0x10] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3F + ldr r2, [sp, 0x14] + bl SetMonData + b _081883B4 + .pool +_08187D74: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0xB + bl SetMonData + b _081883B4 + .pool +_08187D90: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0xC + bl SetMonData + b _081883B4 + .pool +_08187DAC: + movs r0, 0 + mov r8, r0 + movs r0, 0xC + adds r0, r4 + mov r9, r0 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gEnemyParty + adds r7, r1, r0 + adds r6, r4, 0 + adds r6, 0x8 +_08187DC4: + mov r1, r8 + adds r1, 0xD + adds r0, r7, 0 + adds r2, r4, 0 + bl SetMonData + mov r1, r8 + adds r1, 0x11 + adds r0, r7, 0 + adds r2, r6, 0 + bl SetMonData + adds r6, 0x1 + adds r4, 0x2 + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x3 + ble _08187DC4 + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x15 + mov r2, r9 + bl SetMonData + b _081883B4 + .pool +_08187E00: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldr r3, =gBattleBufferA + ldrb r2, [r6] + lsls r2, 9 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, 0x9 + b _08187E9E + .pool +_08187E20: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gEnemyParty + adds r4, r0 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + adds r0, r4, 0 + movs r1, 0x11 + str r3, [sp, 0x34] + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x1 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x12 + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x2 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x13 + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x3 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x14 + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x4 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x15 + bl SetMonData + b _081883B4 + .pool +_08187E88: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldr r3, =gBattleBufferA + ldrb r2, [r6] + lsls r2, 9 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, 0x8 +_08187E9E: + adds r3, 0x3 + adds r2, r3 + bl SetMonData + b _081883B4 + .pool +_08187EB0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1 + bl SetMonData + b _081883B4 + .pool +_08187ECC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x19 + bl SetMonData + b _081883B4 + .pool +_08187EE8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1A + bl SetMonData + b _081883B4 + .pool +_08187F04: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1B + bl SetMonData + b _081883B4 + .pool +_08187F20: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1C + bl SetMonData + b _081883B4 + .pool +_08187F3C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1D + bl SetMonData + b _081883B4 + .pool +_08187F58: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1E + bl SetMonData + b _081883B4 + .pool +_08187F74: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1F + bl SetMonData + b _081883B4 + .pool +_08187F90: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x20 + bl SetMonData + b _081883B4 + .pool +_08187FAC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x22 + bl SetMonData + b _081883B4 + .pool +_08187FC8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x23 + bl SetMonData + b _081883B4 + .pool +_08187FE4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x24 + bl SetMonData + b _081883B4 + .pool +_08188000: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x25 + bl SetMonData + b _081883B4 + .pool +_0818801C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x26 + bl SetMonData + b _081883B4 + .pool +_08188038: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gEnemyParty + adds r4, r0 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + adds r0, r4, 0 + movs r1, 0x27 + str r3, [sp, 0x34] + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x1 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x28 + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x2 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x29 + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x3 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x2A + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x4 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x2B + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x5 + adds r2, r0 + adds r0, r4, 0 + b _08188146 + .pool +_081880AC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x27 + bl SetMonData + b _081883B4 + .pool +_081880C8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x28 + bl SetMonData + b _081883B4 + .pool +_081880E4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x29 + bl SetMonData + b _081883B4 + .pool +_08188100: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x2A + bl SetMonData + b _081883B4 + .pool +_0818811C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x2B + bl SetMonData + b _081883B4 + .pool +_08188138: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 +_08188146: + movs r1, 0x2C + bl SetMonData + b _081883B4 + .pool +_08188154: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0 + bl SetMonData + b _081883B4 + .pool +_08188170: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x9 + bl SetMonData + b _081883B4 + .pool +_0818818C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x37 + bl SetMonData + b _081883B4 + .pool +_081881A8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x38 + bl SetMonData + b _081883B4 + .pool +_081881C4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x39 + bl SetMonData + b _081883B4 + .pool +_081881E0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3A + bl SetMonData + b _081883B4 + .pool +_081881FC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3B + bl SetMonData + b _081883B4 + .pool +_08188218: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3C + bl SetMonData + b _081883B4 + .pool +_08188234: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3D + bl SetMonData + b _081883B4 + .pool +_08188250: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3E + bl SetMonData + b _081883B4 + .pool +_0818826C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3F + bl SetMonData + b _081883B4 + .pool +_08188288: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x16 + bl SetMonData + b _081883B4 + .pool +_081882A4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x17 + bl SetMonData + b _081883B4 + .pool +_081882C0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x18 + bl SetMonData + b _081883B4 + .pool +_081882DC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x21 + bl SetMonData + b _081883B4 + .pool +_081882F8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x2F + bl SetMonData + b _081883B4 + .pool +_08188314: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x30 + bl SetMonData + b _081883B4 + .pool +_08188330: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x32 + bl SetMonData + b _081883B4 + .pool +_0818834C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x33 + bl SetMonData + b _081883B4 + .pool +_08188368: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x34 + bl SetMonData + b _081883B4 + .pool +_08188384: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x35 + bl SetMonData + b _081883B4 + .pool +_081883A0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x36 + bl SetMonData +_081883B4: + add sp, 0x38 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end dp01_setattr_for_opponent_pokemon + + thumb_func_start sub_81883C8 +sub_81883C8: @ 81883C8 + push {r4-r7,lr} + ldr r1, =gBattlePartyID + ldr r7, =gActiveBank + ldrb r2, [r7] + lsls r0, r2, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + adds r3, r1, 0 + muls r3, r0 + ldr r4, =gBattleBufferA + lsls r2, 9 + adds r0, r4, 0x1 + adds r0, r2, r0 + ldrb r0, [r0] + ldr r1, =gEnemyParty + adds r0, r1 + adds r5, r3, r0 + movs r3, 0 + adds r0, r4, 0x2 + adds r2, r0 + ldrb r2, [r2] + cmp r3, r2 + bcs _08188420 + adds r6, r4, 0 + adds r2, r7, 0 + adds r4, r0, 0 +_081883FE: + adds r1, r5, r3 + ldrb r0, [r2] + lsls r0, 9 + adds r0, 0x3 + adds r0, r3, r0 + adds r0, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + ldrb r0, [r2] + lsls r0, 9 + adds r0, r4 + ldrb r0, [r0] + cmp r3, r0 + bcc _081883FE +_08188420: + bl RecordedOpponentBufferExecCompleted + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81883C8 + + thumb_func_start sub_818843C +sub_818843C: @ 818843C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r7, =gBattlePartyID + ldr r6, =gActiveBank + ldrb r0, [r6] + lsls r0, 1 + adds r0, r7 + ldrh r0, [r0] + movs r1, 0x64 + mov r10, r1 + mov r2, r10 + muls r2, r0 + adds r0, r2, 0 + ldr r1, =gEnemyParty + mov r9, r1 + add r0, r9 + movs r1, 0xB + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrb r1, [r6] + lsls r0, r1, 1 + adds r0, r7 + ldrh r0, [r0] + mov r2, r10 + muls r2, r0 + adds r0, r2, 0 + add r0, r9 + bl sub_805DC0C + ldrb r0, [r6] + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_806A068 + ldr r0, =gUnknown_0202499C + mov r8, r0 + ldrb r0, [r6] + movs r1, 0x2 + bl sub_80A5C6C + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldrb r0, [r6] + bl sub_80A6138 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r6] + bl sub_80A82E4 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + mov r0, r8 + adds r1, r5, 0 + adds r2, r4, 0 + bl CreateSprite + ldr r4, =gBankSpriteIds + ldrb r1, [r6] + adds r1, r4 + strb r0, [r1] + ldr r5, =gSprites + ldrb r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =0x0000ff10 + strh r1, [r0, 0x24] + ldrb r2, [r6] + adds r0, r2, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x2E] + ldrb r3, [r6] + adds r0, r3, r4 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + lsls r3, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r2, [r6] + adds r4, r2, r4 + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =gUnknown_020244E4 + adds r2, r1 + ldrb r1, [r2] + bl StartSpriteAnim + ldrb r4, [r6] + lsls r0, r4, 1 + adds r0, r7 + ldrh r0, [r0] + mov r1, r10 + muls r1, r0 + adds r0, r1, 0 + add r0, r9 + movs r1, 0xB + bl GetMonData + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_805EE54 + ldr r1, =gBattleBankFunc + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8186C48 + str r1, [r0] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818843C + + thumb_func_start sub_818858C +sub_818858C: @ 818858C + push {r4,lr} + ldr r1, =gBattlePartyID + ldr r4, =gActiveBank + ldrb r0, [r4] + lsls r2, r0, 1 + adds r2, r1 + ldr r3, =gBattleBufferA + lsls r0, 9 + adds r1, r3, 0x1 + adds r0, r1 + ldrb r0, [r0] + strh r0, [r2] + ldrb r0, [r4] + lsls r1, r0, 9 + adds r3, 0x2 + adds r1, r3 + ldrb r1, [r1] + bl sub_81885D8 + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8187084 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818858C + + thumb_func_start sub_81885D8 +sub_81885D8: @ 81885D8 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + lsls r1, 24 + lsrs r1, 24 + adds r0, r6, 0 + bl sub_805EF84 + ldr r0, =gBattlePartyID + lsls r4, r6, 1 + adds r4, r0 + ldr r0, =gBattleBufferA + lsls r1, r6, 9 + adds r0, 0x1 + adds r1, r0 + ldrb r0, [r1] + strh r0, [r4] + ldrh r0, [r4] + movs r1, 0x64 + mov r9, r1 + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + ldr r5, =gEnemyParty + adds r0, r5 + movs r1, 0xB + bl GetMonData + mov r8, r0 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r0, =sub_805D714 + bl CreateInvisibleSpriteWithCallback + ldr r1, =gUnknown_03005D7C + mov r10, r1 + add r10, r6 + mov r1, r10 + strb r0, [r1] + ldrh r0, [r4] + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + adds r0, r5 + adds r1, r6, 0 + bl sub_805DC0C + adds r0, r6, 0 + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r8 + bl sub_806A068 + ldr r0, =gUnknown_0202499C + mov r9, r0 + adds r0, r6, 0 + movs r1, 0x2 + bl sub_80A5C6C + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + adds r0, r6, 0 + bl sub_80A6138 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + bl sub_80A82E4 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + mov r0, r9 + adds r1, r5, 0 + adds r2, r4, 0 + bl CreateSprite + ldr r4, =gBankSpriteIds + adds r4, r6, r4 + strb r0, [r4] + ldr r5, =gSprites + mov r0, r10 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r4] + strh r1, [r0, 0x30] + mov r0, r10 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x32] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x2E] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + mov r1, r8 + strh r1, [r0, 0x32] + ldrb r0, [r4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + lsls r3, r6, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =gUnknown_020244E4 + adds r6, r1 + ldrb r1, [r6] + bl StartSpriteAnim + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =SpriteCallbackDummy + str r1, [r0] + movs r0, 0 + movs r1, 0xFE + bl sub_80753E8 + mov r1, r10 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r5 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0x2E] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81885D8 + + thumb_func_start sub_8188768 +sub_8188768: @ 8188768 + push {r4-r6,lr} + ldr r1, =gBattleBufferA + ldr r6, =gActiveBank + ldrb r2, [r6] + lsls r0, r2, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r3, [r0] + cmp r3, 0 + bne _081887B0 + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + strb r3, [r0, 0x4] + ldr r1, =gBattleBankFunc + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8188800 + str r1, [r0] + b _081887EC + .pool +_081887B0: + ldr r5, =gBankSpriteIds + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + ldrb r0, [r6] + bl sub_805EEE0 + ldr r1, =gUnknown_03005D70 + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + bl sub_8072984 + bl RecordedOpponentBufferExecCompleted +_081887EC: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8188768 + + thumb_func_start sub_8188800 +sub_8188800: @ 8188800 + push {r4-r6,lr} + ldr r6, =gUnknown_020244D0 + ldr r4, [r6] + ldr r5, =gActiveBank + ldrb r2, [r5] + ldr r1, [r4, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r3, r0, r1 + ldrb r0, [r3, 0x4] + cmp r0, 0 + beq _08188828 + cmp r0, 0x1 + beq _08188856 + b _0818887E + .pool +_08188828: + ldr r1, [r4] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08188842 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_08188842: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0, 0x4] + b _0818887E +_08188856: + ldrb r1, [r3] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _0818887E + strb r0, [r3, 0x4] + ldrb r2, [r5] + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x2 + bl move_anim_start_t4 + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8186D9C + str r1, [r0] +_0818887E: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8188800 + + thumb_func_start sub_818888C +sub_818888C: @ 818888C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r5, =gBattleTypeFlags + ldr r0, [r5] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081888F6 + ldr r4, =gActiveBank + ldrb r0, [r4] + bl GetBankIdentity + movs r1, 0x2 + ands r1, r0 + movs r7, 0xC8 + cmp r1, 0 + beq _081888B4 + movs r7, 0x98 +_081888B4: + ldr r0, [r5] + movs r1, 0x80 + lsls r1, 1 + ands r0, r1 + cmp r0, 0 + beq _081888EC + ldrb r0, [r4] + cmp r0, 0x1 + bne _081888D8 + ldr r0, =gUnknown_02038BCA + b _081888DA + .pool +_081888D8: + ldr r0, =gUnknown_02038BCC +_081888DA: + ldrh r0, [r0] + bl sub_8162AA0 + lsls r0, 24 + lsrs r0, 24 + b _0818892C + .pool +_081888EC: + bl sub_8185F40 + lsls r0, 24 + lsrs r0, 24 + b _08188924 +_081888F6: + movs r7, 0xB0 + ldr r0, =gUnknown_02038BCA + ldrh r1, [r0] + movs r0, 0xC0 + lsls r0, 4 + cmp r1, r0 + bne _08188910 + bl sub_8068B48 + b _08188928 + .pool +_08188910: + ldr r2, =gUnknown_020229E8 + ldr r0, =gUnknown_0203C7B4 + ldrb r0, [r0] + movs r1, 0x1 + eors r1, r0 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x13] +_08188924: + bl sub_806F000 +_08188928: + lsls r0, 16 + lsrs r0, 16 +_0818892C: + mov r8, r0 + ldr r5, =gActiveBank + ldrb r1, [r5] + bl sub_805DF38 + ldrb r0, [r5] + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r8 + bl template_build_for_pokemon_or_trainer + ldr r6, =gUnknown_0202499C + mov r9, r7 + ldr r1, =gUnknown_083054E0 + mov r2, r8 + lsls r0, r2, 2 + adds r0, r1 + ldrb r0, [r0] + movs r4, 0x8 + subs r4, r0 + lsls r4, 18 + movs r0, 0xA0 + lsls r0, 14 + adds r4, r0 + asrs r4, 16 + ldrb r0, [r5] + bl sub_80A82E4 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + adds r0, r6, 0 + mov r1, r9 + adds r2, r4, 0 + bl CreateSprite + ldr r6, =gBankSpriteIds + ldrb r1, [r5] + adds r1, r6 + strb r0, [r1] + ldr r4, =gSprites + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =0x0000ff10 + strh r1, [r0, 0x24] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x2 + strh r1, [r0, 0x2E] + ldr r1, =gTrainerFrontPicPaletteTable + mov r2, r8 + lsls r0, r2, 3 + adds r0, r1 + ldrh r0, [r0, 0x4] + bl IndexOfSpritePaletteTag + ldrb r1, [r5] + adds r1, r6 + ldrb r1, [r1] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r4 + lsls r0, 4 + ldrb r3, [r2, 0x5] + movs r1, 0xF + ands r1, r3 + orrs r1, r0 + strb r1, [r2, 0x5] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + mov r1, r8 + strh r1, [r0, 0x6] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, =sub_805D7AC + str r1, [r0] + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8186558 + str r1, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818888C + + thumb_func_start sub_8188A40 +sub_8188A40: @ 8188A40 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8188A40 + + thumb_func_start sub_8188A4C +sub_8188A4C: @ 8188A4C + push {r4-r6,lr} + ldr r6, =gBankSpriteIds + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, =gSprites + adds r0, r5 + bl oamt_add_pos2_onto_pos1 + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x23 + strh r1, [r0, 0x2E] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x8C + lsls r1, 1 + strh r1, [r0, 0x32] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r1, [r0, 0x22] + strh r1, [r0, 0x36] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =sub_80A6EEC + str r1, [r0] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =SpriteCallbackDummy + bl oamt_set_x3A_32 + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_81865C8 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8188A4C + + thumb_func_start sub_8188AF8 +sub_8188AF8: @ 8188AF8 + push {r4-r6,lr} + ldr r6, =gUnknown_020244D0 + ldr r4, [r6] + ldr r5, =gActiveBank + ldrb r2, [r5] + ldr r0, [r4, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r3, r1, r0 + ldrb r0, [r3, 0x4] + cmp r0, 0 + bne _08188B4C + ldr r1, [r4] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08188B2C + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_08188B2C: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x4] + adds r1, 0x1 + strb r1, [r0, 0x4] + b _08188B88 + .pool +_08188B4C: + ldrb r1, [r3] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _08188B88 + strb r0, [r3, 0x4] + movs r0, 0x10 + movs r1, 0x3F + bl PlaySE12WithPanning + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldrb r0, [r5] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, =sub_8039934 + str r1, [r0] + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8186D58 + str r1, [r0] +_08188B88: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8188AF8 + + thumb_func_start sub_8188BA4 +sub_8188BA4: @ 8188BA4 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8188BA4 + + thumb_func_start sub_8188BB0 +sub_8188BB0: @ 8188BB0 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8188BB0 + + thumb_func_start sub_8188BBC +sub_8188BBC: @ 8188BBC + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8188BBC + + thumb_func_start sub_8188BC8 +sub_8188BC8: @ 8188BC8 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8188BC8 + + thumb_func_start sub_8188BD4 +sub_8188BD4: @ 8188BD4 + push {r4-r6,lr} + ldr r6, =gActiveBank + ldrb r0, [r6] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + beq _08188BE6 + b _08188CFA +_08188BE6: + ldr r0, =gBattleBufferA + mov r12, r0 + ldrb r2, [r6] + lsls r2, 9 + adds r0, 0x1 + adds r0, r2, r0 + ldrb r0, [r0] + mov r1, r12 + adds r1, 0x2 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + ldr r5, =gUnknown_02038432 + mov r1, r12 + adds r1, 0x3 + adds r2, r1 + ldrb r1, [r2] + strb r1, [r5] + ldr r4, =gMovePowerMoveAnim + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x4 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0x5 + adds r2, r1 + ldrb r1, [r2] + lsls r1, 8 + orrs r3, r1 + strh r3, [r4] + ldr r4, =gMoveDmgMoveAnim + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x6 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0x7 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r3, r1 + mov r1, r12 + adds r1, 0x8 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 16 + orrs r3, r1 + mov r1, r12 + adds r1, 0x9 + adds r2, r1 + ldrb r1, [r2] + lsls r1, 24 + orrs r3, r1 + str r3, [r4] + ldr r3, =gHappinessMoveAnim + ldrb r1, [r6] + lsls r1, 9 + mov r2, r12 + adds r2, 0xA + adds r1, r2 + ldrb r1, [r1] + strb r1, [r3] + ldr r4, =gWeatherMoveAnim + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0xC + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0xD + adds r2, r1 + ldrb r1, [r2] + lsls r1, 8 + orrs r3, r1 + strh r3, [r4] + ldr r3, =gDisableStructMoveAnim + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x10 + adds r2, r1 + str r2, [r3] + ldr r3, =gUnknown_020244BC + ldrb r1, [r6] + lsls r1, 2 + adds r1, r3 + ldr r2, [r2] + str r2, [r1] + ldrb r1, [r5] + bl sub_805DB8C + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _08188CDC + bl RecordedOpponentBufferExecCompleted + b _08188CFA + .pool +_08188CDC: + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strb r3, [r0, 0x4] + ldr r1, =gBattleBankFunc + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8188D0C + str r1, [r0] +_08188CFA: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8188BD4 + + thumb_func_start sub_8188D0C +sub_8188D0C: @ 8188D0C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r2, =gBattleBufferA + ldr r6, =gActiveBank + ldrb r3, [r6] + lsls r1, r3, 9 + adds r0, r2, 0x1 + mov r10, r0 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, r2, 0x2 + mov r9, r5 + adds r0, r1, r5 + ldrb r0, [r0] + lsls r0, 8 + orrs r4, r0 + adds r2, 0xB + adds r1, r2 + ldrb r1, [r1] + mov r8, r1 + ldr r7, =gUnknown_020244D0 + ldr r5, [r7] + ldr r1, [r5, 0x4] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0, 0x4] + cmp r2, 0x1 + beq _08188DA4 + cmp r2, 0x1 + bgt _08188D64 + cmp r2, 0 + beq _08188D6E + b _08188E80 + .pool +_08188D64: + cmp r2, 0x2 + beq _08188DCE + cmp r2, 0x3 + beq _08188E44 + b _08188E80 +_08188D6E: + ldr r1, [r5] + lsls r0, r3, 2 + adds r1, r0, r1 + ldrb r2, [r1] + movs r0, 0xC + ands r0, r2 + cmp r0, 0x4 + bne _08188D90 + movs r0, 0x8 + orrs r0, r2 + strb r0, [r1] + ldrb r2, [r6] + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_08188D90: + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0, 0x4] + b _08188E80 +_08188DA4: + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08188E80 + movs r0, 0 + bl sub_805EB9C + adds r0, r4, 0 + bl move_anim_start_t1 + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x2 + strb r1, [r0, 0x4] + b _08188E80 +_08188DCE: + ldr r0, =gAnimScriptCallback + ldr r0, [r0] + bl _call_via_r0 + ldr r0, =gAnimScriptActive + ldrb r0, [r0] + cmp r0, 0 + bne _08188E80 + movs r0, 0x1 + bl sub_805EB9C + ldr r0, [r7] + ldrb r2, [r6] + ldr r1, [r0] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08188E1C + mov r0, r8 + cmp r0, 0x1 + bhi _08188E1C + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x6 + bl move_anim_start_t4 + ldr r0, [r7] + ldrb r1, [r6] + ldr r0, [r0] + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x9 + negs r0, r0 + ands r0, r2 + strb r0, [r1] +_08188E1C: + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + strb r1, [r0, 0x4] + b _08188E80 + .pool +_08188E44: + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _08188E80 + bl sub_805E394 + ldrb r0, [r6] + lsls r2, r0, 9 + mov r3, r10 + adds r1, r2, r3 + ldrb r1, [r1] + add r2, r9 + ldrb r2, [r2] + lsls r2, 8 + orrs r1, r2 + bl sub_805E94C + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strb r4, [r0, 0x4] + bl RecordedOpponentBufferExecCompleted +_08188E80: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8188D0C + + thumb_func_start sub_8188E90 +sub_8188E90: @ 8188E90 + push {r4,lr} + ldr r0, =gUnknown_02022E14 + movs r1, 0 + strh r1, [r0] + ldr r0, =gUnknown_02022E16 + strh r1, [r0] + ldr r4, =gActiveBank + ldrb r0, [r4] + lsls r0, 9 + ldr r1, =gUnknown_02023066 + adds r0, r1 + ldrh r0, [r0] + bl battle_pick_message + ldr r0, =gUnknown_02022E2C + movs r1, 0 + bl battle_show_message_maybe + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8186E10 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8188E90 + + thumb_func_start sub_8188EE4 +sub_8188EE4: @ 8188EE4 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8188EE4 + + thumb_func_start sub_8188EF0 +sub_8188EF0: @ 8188EF0 + push {lr} + ldr r0, =gActiveBank + ldrb r0, [r0] + bl sub_8185054 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x1 + movs r2, 0 + bl dp01_build_cmdbuf_x21_a_bb + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_8188EF0 + + thumb_func_start sub_8188F14 +sub_8188F14: @ 8188F14 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8188F14 + + thumb_func_start sub_8188F20 +sub_8188F20: @ 8188F20 + push {r4,r5,lr} + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 10 + ands r0, r1 + cmp r0, 0 + beq _08188F48 + bl sub_805D19C + adds r2, r0, 0 + lsls r2, 16 + lsrs r2, 16 + movs r0, 0x1 + movs r1, 0xA + bl dp01_build_cmdbuf_x21_a_bb + b _08188F6C + .pool +_08188F48: + ldr r5, =gActiveBank + ldrb r0, [r5] + bl sub_8185054 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r5] + bl sub_8185054 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 16 + orrs r2, r4 + movs r0, 0x1 + movs r1, 0xA + bl dp01_build_cmdbuf_x21_a_bb +_08188F6C: + bl RecordedOpponentBufferExecCompleted + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8188F20 + + thumb_func_start sub_8188F7C +sub_8188F7C: @ 8188F7C + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8188F7C + + thumb_func_start sub_8188F88 +sub_8188F88: @ 8188F88 + push {r4,lr} + ldr r4, =gActiveBank + ldrb r0, [r4] + bl sub_8185054 + ldrb r1, [r4] + ldr r3, =gBattleStruct + ldr r2, [r3] + adds r1, r2 + adds r1, 0x5C + strb r0, [r1] + ldrb r0, [r4] + ldr r1, [r3] + adds r0, r1 + adds r0, 0x5C + ldrb r1, [r0] + movs r0, 0x1 + movs r2, 0 + bl dp01_build_cmdbuf_x22_a_three_bytes + bl RecordedOpponentBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8188F88 + + thumb_func_start sub_8188FC4 +sub_8188FC4: @ 8188FC4 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8188FC4 + + thumb_func_start sub_8188FD0 +sub_8188FD0: @ 8188FD0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + movs r0, 0 + bl load_gfxc_health_bar + ldr r3, =gBattleBufferA + ldr r0, =gActiveBank + mov r9, r0 + ldrb r4, [r0] + lsls r2, r4, 9 + adds r0, r3, 0x2 + adds r0, r2, r0 + ldrb r1, [r0] + adds r3, 0x3 + adds r2, r3 + ldrb r0, [r2] + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + asrs r7, r1, 16 + ldr r0, =0x00007fff + cmp r7, r0 + beq _08189060 + ldr r6, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r6 + ldrh r0, [r0] + movs r5, 0x64 + muls r0, r5 + ldr r4, =gEnemyParty + adds r0, r4 + movs r1, 0x3A + bl GetMonData + mov r8, r0 + mov r1, r9 + ldrb r0, [r1] + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + muls r0, r5 + adds r0, r4 + movs r1, 0x39 + bl GetMonData + adds r3, r0, 0 + mov r1, r9 + ldrb r0, [r1] + ldr r1, =gUnknown_03005D70 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + mov r2, r8 + bl sub_807294C + b _0818908A + .pool +_08189060: + ldr r1, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x3A + bl GetMonData + adds r2, r0, 0 + mov r1, r9 + ldrb r0, [r1] + ldr r1, =gUnknown_03005D70 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + movs r3, 0 + bl sub_807294C +_0818908A: + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8186D04 + str r1, [r0] + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8188FD0 + + thumb_func_start sub_81890C0 +sub_81890C0: @ 81890C0 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81890C0 + + thumb_func_start sub_81890CC +sub_81890CC: @ 81890CC + push {r4,lr} + ldr r4, =gActiveBank + ldrb r0, [r4] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _08189120 + ldr r0, =gUnknown_03005D70 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + ldr r2, =gBattlePartyID + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gEnemyParty + adds r1, r2 + movs r2, 0x9 + bl healthbar_draw_field_maybe + ldrb r2, [r4] + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_818714C + str r1, [r0] +_08189120: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81890CC + + thumb_func_start sub_8189144 +sub_8189144: @ 8189144 + push {r4,r5,lr} + ldr r5, =gActiveBank + ldrb r0, [r5] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _08189194 + ldr r4, =gBattleBufferA + ldrb r3, [r5] + lsls r3, 9 + adds r0, r4, 0x1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, 0x2 + adds r1, r3, r1 + ldrb r1, [r1] + adds r2, r4, 0x3 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, 8 + orrs r1, r2 + adds r2, r4, 0x4 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, 16 + orrs r1, r2 + adds r4, 0x5 + adds r3, r4 + ldrb r2, [r3] + lsls r2, 24 + orrs r1, r2 + bl move_anim_start_t2_for_situation + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_818714C + str r1, [r0] +_08189194: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8189144 + + thumb_func_start sub_81891AC +sub_81891AC: @ 81891AC + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81891AC + + thumb_func_start sub_81891B8 +sub_81891B8: @ 81891B8 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81891B8 + + thumb_func_start sub_81891C4 +sub_81891C4: @ 81891C4 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81891C4 + + thumb_func_start sub_81891D0 +sub_81891D0: @ 81891D0 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81891D0 + + thumb_func_start sub_81891DC +sub_81891DC: @ 81891DC + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81891DC + + thumb_func_start sub_81891E8 +sub_81891E8: @ 81891E8 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81891E8 + + thumb_func_start sub_81891F4 +sub_81891F4: @ 81891F4 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81891F4 + + thumb_func_start sub_8189200 +sub_8189200: @ 8189200 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8189200 + + thumb_func_start sub_818920C +sub_818920C: @ 818920C + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_818920C + + thumb_func_start sub_8189218 +sub_8189218: @ 8189218 + push {lr} + ldr r2, =gUnknown_02022D0C + ldrb r1, [r2] + movs r0, 0x80 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_8189218 + + thumb_func_start sub_8189234 +sub_8189234: @ 8189234 + push {lr} + ldr r3, =gUnknown_02022D0C + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + movs r1, 0x7F + ands r1, r0 + ldrb r2, [r3] + movs r0, 0x80 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_8189234 + + thumb_func_start sub_818926C +sub_818926C: @ 818926C + push {lr} + ldr r2, =gUnknown_02022D0C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_818926C + + thumb_func_start sub_8189284 +sub_8189284: @ 8189284 + push {lr} + ldr r3, =gUnknown_02022D0C + ldr r1, [r3] + lsls r1, 24 + lsrs r1, 31 + movs r0, 0x1 + eors r1, r0 + lsls r1, 7 + ldrb r2, [r3] + movs r0, 0x7F + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_8189284 + + thumb_func_start sub_81892AC +sub_81892AC: @ 81892AC + push {r4,lr} + ldr r3, =gSprites + ldr r2, =gBankSpriteIds + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + bge _081892E0 + bl RecordedOpponentBufferExecCompleted + b _0818930A + .pool +_081892E0: + ldr r1, =gDoingBattleAnim + movs r0, 0x1 + strb r0, [r1] + ldrb r0, [r4] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0 + strh r1, [r0, 0x30] + ldrb r0, [r4] + bl sub_80769F4 + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =bx_blink_t2 + str r1, [r0] +_0818930A: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81892AC + + thumb_func_start sub_818931C +sub_818931C: @ 818931C + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_818931C + + thumb_func_start sub_8189328 +sub_8189328: @ 8189328 + push {r4,lr} + ldr r4, =gActiveBank + ldrb r0, [r4] + bl GetBankSide + lsls r0, 24 + movs r3, 0x3F + cmp r0, 0 + bne _0818933C + movs r3, 0xC0 +_0818933C: + ldr r2, =gBattleBufferA + ldrb r1, [r4] + lsls r1, 9 + adds r0, r2, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + lsls r1, r3, 24 + asrs r1, 24 + bl PlaySE12WithPanning + bl RecordedOpponentBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8189328 + + thumb_func_start sub_818936C +sub_818936C: @ 818936C + push {r4,r5,lr} + ldr r4, =gBattleBufferA + ldr r5, =gActiveBank + ldrb r0, [r5] + lsls r3, r0, 9 + adds r0, r4, 0x3 + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, 0 + beq _081893A8 + bl sub_805EA60 + ldrb r1, [r5] + lsls r1, 9 + adds r0, r4, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, r4, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + bl PlayBGM + b _081893BC + .pool +_081893A8: + adds r0, r4, 0x1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, 0x2 + adds r1, r3, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + bl PlayFanfare +_081893BC: + bl RecordedOpponentBufferExecCompleted + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_818936C + + thumb_func_start sub_81893C8 +sub_81893C8: @ 81893C8 + push {lr} + ldr r1, =gBattlePartyID + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x19 + movs r2, 0x5 + bl PlayCry3 + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_81893C8 + + thumb_func_start sub_8189404 +sub_8189404: @ 8189404 + push {lr} + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + bl battle_intro_launch + ldr r2, =gUnknown_020243FC + ldrh r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r2] + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_8189404 + + thumb_func_start sub_8189438 +sub_8189438: @ 8189438 + push {r4-r6,lr} + ldr r5, =gBankSpriteIds + ldr r6, =gActiveBank + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + bl oamt_add_pos2_onto_pos1 + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x23 + strh r1, [r0, 0x2E] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x8C + lsls r1, 1 + strh r1, [r0, 0x32] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x22] + strh r1, [r0, 0x36] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =sub_80A6EEC + str r1, [r0] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =sub_818962C + bl oamt_set_x3A_32 + ldr r0, =c3_0803D564 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r4, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r4 + ldrb r0, [r6] + strh r0, [r1, 0x8] + ldr r3, =gUnknown_020244D0 + ldr r0, [r3] + ldrb r2, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081894FA + ldr r0, =gUnknown_020244B4 + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + ldr r1, =sub_8073C30 + str r1, [r0] +_081894FA: + ldr r0, [r3] + ldr r2, [r0, 0x8] + ldrb r0, [r2, 0x9] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x9] + ldr r1, =gBattleBankFunc + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, =nullsub_70 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8189438 + + thumb_func_start c3_0803D564 +c3_0803D564: @ 8189548 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r7, =gActiveBank + ldrb r0, [r7] + mov r9, r0 + ldr r1, =gTasks + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x8] + strb r0, [r7] + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08189582 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081895B4 +_08189582: + ldr r0, =gBattleBufferA + ldrb r1, [r7] + lsls r2, r1, 9 + adds r0, 0x1 + adds r2, r0 + ldr r0, =gBattlePartyID + lsls r1, 1 + adds r1, r0 + ldrh r0, [r1] + strb r0, [r2] + ldrb r0, [r7] + movs r1, 0 + bl sub_81885D8 + b _081895F4 + .pool +_081895B4: + ldr r4, =gBattleBufferA + ldrb r0, [r7] + lsls r1, r0, 9 + adds r4, 0x1 + adds r1, r4 + ldr r6, =gBattlePartyID + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, 0 + bl sub_81885D8 + ldrb r0, [r7] + movs r5, 0x2 + eors r0, r5 + strb r0, [r7] + ldrb r0, [r7] + lsls r1, r0, 9 + adds r1, r4 + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, 0 + bl sub_81885D8 + ldrb r0, [r7] + eors r0, r5 + strb r0, [r7] +_081895F4: + ldr r1, =gBattleBankFunc + ldr r2, =gActiveBank + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_818686C + str r1, [r0] + mov r0, r9 + strb r0, [r2] + mov r0, r8 + bl DestroyTask + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end c3_0803D564 + + thumb_func_start sub_818962C +sub_818962C: @ 818962C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x6] + bl sub_805DFE4 + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_818962C + + thumb_func_start sub_8189648 +sub_8189648: @ 8189648 + push {r4-r7,lr} + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08189678 + adds r0, r2, 0 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _08189678 + bl RecordedOpponentBufferExecCompleted + b _08189742 + .pool +_08189678: + ldr r4, =gUnknown_020244D0 + ldr r0, [r4] + ldr r3, =gActiveBank + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + ldr r1, =gBattleBufferA + ldrb r2, [r3] + lsls r0, r2, 9 + adds r1, 0x2 + adds r0, r1 + ldrb r0, [r0] + adds r7, r3, 0 + cmp r0, 0 + beq _081896E4 + ldr r0, [r4] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r3, r0, r1 + ldrb r2, [r3, 0x1] + lsls r1, r2, 27 + lsrs r0, r1, 28 + cmp r0, 0x1 + bhi _081896DC + adds r0, 0x1 + movs r1, 0xF + ands r0, r1 + lsls r0, 1 + movs r1, 0x1F + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x1] + b _08189742 + .pool +_081896DC: + movs r0, 0x1F + negs r0, r0 + ands r0, r2 + strb r0, [r3, 0x1] +_081896E4: + adds r5, r7, 0 + ldrb r0, [r5] + lsls r3, r0, 9 + ldr r4, =gUnknown_02023068 + adds r1, r3, r4 + subs r2, r4, 0x3 + adds r2, r3, r2 + ldrb r2, [r2] + subs r4, 0x2 + adds r3, r4 + ldrb r3, [r3] + bl sub_80735DC + ldr r2, =gUnknown_020244B4 + ldrb r1, [r5] + adds r1, r2 + movs r3, 0 + strb r0, [r1] + ldr r6, =gUnknown_020244D0 + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strb r3, [r0, 0x5] + ldrb r2, [r5] + lsls r0, r2, 9 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _08189736 + ldr r0, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + movs r1, 0x5D + strb r1, [r0, 0x5] +_08189736: + ldr r0, =gBattleBankFunc + ldrb r1, [r7] + lsls r1, 2 + adds r1, r0 + ldr r0, =sub_818975C + str r0, [r1] +_08189742: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8189648 + + thumb_func_start sub_818975C +sub_818975C: @ 818975C + push {r4,lr} + ldr r4, =gUnknown_020244D0 + ldr r0, [r4] + ldr r3, =gActiveBank + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x5] + adds r2, r1, 0x1 + strb r2, [r0, 0x5] + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0x5C + bls _08189794 + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strb r1, [r0, 0x5] + bl RecordedOpponentBufferExecCompleted +_08189794: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818975C + + thumb_func_start sub_81897A4 +sub_81897A4: @ 81897A4 + push {lr} + ldr r0, =gUnknown_020244D0 + ldr r1, [r0] + ldr r0, =gActiveBank + ldrb r3, [r0] + ldr r1, [r1, 0x4] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081897D6 + ldr r2, =gTasks + ldr r0, =gUnknown_020244B4 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, =sub_8073C30 + str r1, [r0] +_081897D6: + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_81897A4 + + thumb_func_start sub_81897F4 +sub_81897F4: @ 81897F4 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81897F4 + + thumb_func_start sub_8189800 +sub_8189800: @ 8189800 + push {r4,lr} + ldr r4, =gActiveBank + ldrb r0, [r4] + bl sub_80A6A90 + lsls r0, 24 + cmp r0, 0 + beq _08189846 + ldr r3, =gSprites + ldr r0, =gBankSpriteIds + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + ldr r0, =gBattleBufferA + lsls r1, 9 + adds r0, 0x1 + adds r1, r0 + adds r2, 0x3E + movs r0, 0x1 + ldrb r1, [r1] + ands r1, r0 + lsls r1, 2 + ldrb r3, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + bl sub_805E408 +_08189846: + bl RecordedOpponentBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8189800 + + thumb_func_start sub_8189860 +sub_8189860: @ 8189860 + push {r4-r6,lr} + sub sp, 0x4 + ldr r6, =gActiveBank + ldrb r0, [r6] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _081898B8 + ldr r5, =gBattleBufferA + ldrb r2, [r6] + lsls r1, r2, 9 + adds r0, r5, 0x1 + adds r0, r1, r0 + ldrb r3, [r0] + adds r0, r5, 0x2 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, 0x3 + adds r1, r5 + ldrb r0, [r1] + lsls r0, 8 + orrs r4, r0 + str r4, [sp] + adds r0, r2, 0 + adds r1, r2, 0 + bl move_anim_start_t3 + lsls r0, 24 + cmp r0, 0 + beq _081898AC + bl RecordedOpponentBufferExecCompleted + b _081898B8 + .pool +_081898AC: + ldr r0, =gBattleBankFunc + ldrb r1, [r6] + lsls r1, 2 + adds r1, r0 + ldr r0, =sub_818717C + str r0, [r1] +_081898B8: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8189860 + + thumb_func_start sub_81898C8 +sub_81898C8: @ 81898C8 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81898C8 + + thumb_func_start sub_81898D4 +sub_81898D4: @ 81898D4 + push {lr} + bl RecordedOpponentBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_81898D4 + + thumb_func_start sub_81898E0 +sub_81898E0: @ 81898E0 + push {lr} + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r2, [r0] + cmp r2, 0x3 + bne _08189908 + ldr r0, =gBattleOutcome + strb r2, [r0] + b _08189910 + .pool +_08189908: + ldr r0, =gBattleOutcome + movs r1, 0x3 + eors r1, r2 + strb r1, [r0] +_08189910: + movs r0, 0x5 + bl FadeOutMapMusic + movs r0, 0x3 + bl BeginFastPaletteFade + bl RecordedOpponentBufferExecCompleted + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_80587B0 + str r1, [r0] + pop {r0} + bx r0 + .pool + thumb_func_end sub_81898E0 + + thumb_func_start nullsub_119 +nullsub_119: @ 8189944 + bx lr + thumb_func_end nullsub_119 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_controller_recorded_player.s b/asm/battle_controller_recorded_player.s new file mode 100644 index 0000000000..118ebbda4f --- /dev/null +++ b/asm/battle_controller_recorded_player.s @@ -0,0 +1,6144 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start nullsub_120 +nullsub_120: @ 8189948 + bx lr + thumb_func_end nullsub_120 + + thumb_func_start SetBankFuncToRecordedPlayerBufferRunCommand +SetBankFuncToRecordedPlayerBufferRunCommand: @ 818994C + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =RecordedPlayerBufferRunCommand + str r1, [r0] + bx lr + .pool + thumb_func_end SetBankFuncToRecordedPlayerBufferRunCommand + + thumb_func_start RecordedPlayerBufferRunCommand +RecordedPlayerBufferRunCommand: @ 8189968 + push {lr} + ldr r2, =gBattleExecBuffer + ldr r1, =gBitTable + ldr r0, =gActiveBank + ldrb r3, [r0] + lsls r0, r3, 2 + adds r0, r1 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _081899B4 + ldr r0, =gBattleBufferA + lsls r1, r3, 9 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0x38 + bhi _081899B0 + ldr r0, =gRecordedPlayerBufferCommands + ldrb r1, [r1] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + bl _call_via_r0 + b _081899B4 + .pool +_081899B0: + bl RecordedPlayerBufferExecCompleted +_081899B4: + pop {r0} + bx r0 + thumb_func_end RecordedPlayerBufferRunCommand + + thumb_func_start sub_81899B8 +sub_81899B8: @ 81899B8 + push {lr} + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _081899DC + bl RecordedPlayerBufferExecCompleted +_081899DC: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81899B8 + + thumb_func_start sub_81899F0 +sub_81899F0: @ 81899F0 + push {r4-r6,lr} + ldr r6, =gSprites + ldr r5, =gBankSpriteIds + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r6, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _08189A40 + movs r0, 0 + bl nullsub_25 + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl FreeSpriteOamMatrix + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl DestroySprite + bl RecordedPlayerBufferExecCompleted +_08189A40: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81899F0 + + thumb_func_start sub_8189A58 +sub_8189A58: @ 8189A58 + push {r4,lr} + ldr r4, =gUnknown_020244D0 + ldr r1, [r4] + ldr r3, =gActiveBank + ldrb r0, [r3] + ldr r2, [r1, 0x4] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1, 0x9] + subs r0, 0x1 + strb r0, [r1, 0x9] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _08189A90 + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strb r1, [r0, 0x9] + bl RecordedPlayerBufferExecCompleted +_08189A90: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8189A58 + + thumb_func_start sub_8189AA0 +sub_8189AA0: @ 8189AA0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r6, 0 + ldr r4, =gActiveBank + ldrb r0, [r4] + bl GetBankIdentity + lsls r0, 24 + cmp r0, 0 + beq _08189ABA + b _08189C60 +_08189ABA: + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08189ADA + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08189B0C + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08189B0C +_08189ADA: + ldr r2, =gSprites + ldr r1, =gUnknown_03005D70 + ldrb r0, [r4] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _08189B42 + b _08189B48 + .pool +_08189B0C: + ldr r2, =gSprites + ldr r5, =gUnknown_03005D70 + ldr r0, =gActiveBank + ldrb r3, [r0] + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r4, [r0] + ldr r0, =SpriteCallbackDummy + cmp r4, r0 + bne _08189B42 + movs r0, 0x2 + eors r3, r0 + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + cmp r0, r4 + bne _08189B42 + movs r6, 0x1 +_08189B42: + cmp r6, 0 + bne _08189B48 + b _08189D18 +_08189B48: + ldr r0, =gUnknown_020244D0 + mov r9, r0 + ldr r0, [r0] + ldr r5, =gActiveBank + ldrb r2, [r5] + ldr r3, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r4, r0, r3 + ldrb r1, [r4, 0x1] + movs r6, 0x1 + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + bne _08189B6A + b _08189D18 +_08189B6A: + movs r1, 0x2 + mov r8, r1 + mov r1, r8 + eors r1, r2 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x1] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + bne _08189B86 + b _08189D18 +_08189B86: + ldrb r1, [r4] + movs r3, 0x7F + adds r0, r3, 0 + ands r0, r1 + strb r0, [r4] + mov r1, r9 + ldr r0, [r1] + ldrb r2, [r5] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r4, 0x2 + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + strb r0, [r1, 0x1] + mov r0, r9 + ldr r2, [r0] + ldrb r0, [r5] + mov r1, r8 + eors r1, r0 + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + ands r3, r1 + strb r3, [r0] + mov r1, r9 + ldr r2, [r1] + ldrb r0, [r5] + mov r1, r8 + eors r1, r0 + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x1] + ands r4, r1 + strb r4, [r0, 0x1] + ldr r4, =0x000027f9 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag + ldr r7, =gBattlePartyID + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r7 + ldrh r0, [r0] + movs r6, 0x64 + muls r0, r6 + ldr r4, =gPlayerParty + adds r0, r4 + bl sub_805E990 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08189C22 + ldrb r0, [r5] + mov r1, r8 + eors r1, r0 + lsls r0, r1, 1 + adds r0, r7 + ldrh r0, [r0] + muls r0, r6 + adds r0, r4 + bl sub_805E990 +_08189C22: + mov r1, r9 + ldr r0, [r1] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + strb r1, [r0, 0x9] + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + b _08189D10 + .pool +_08189C60: + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08189C80 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08189CB0 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08189CB0 +_08189C80: + ldr r2, =gSprites + ldr r1, =gUnknown_03005D70 + ldrb r0, [r4] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _08189CE6 + b _08189CE4 + .pool +_08189CB0: + ldr r2, =gSprites + ldr r5, =gUnknown_03005D70 + ldr r0, =gActiveBank + ldrb r3, [r0] + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r4, [r0] + ldr r0, =SpriteCallbackDummy + cmp r4, r0 + bne _08189CE6 + movs r0, 0x2 + eors r3, r0 + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + cmp r0, r4 + bne _08189CE6 +_08189CE4: + movs r6, 0x1 +_08189CE6: + bl IsCryPlayingOrClearCrySongs + lsls r0, 24 + cmp r0, 0 + beq _08189CF2 + movs r6, 0 +_08189CF2: + cmp r6, 0 + beq _08189D18 + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r3, =gActiveBank + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + strb r1, [r0, 0x9] + ldr r1, =gBattleBankFunc + ldrb r0, [r3] +_08189D10: + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8189A58 + str r1, [r0] +_08189D18: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8189AA0 + + thumb_func_start sub_8189D40 +sub_8189D40: @ 8189D40 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r0, 0 + mov r10, r0 + ldr r4, =gActiveBank + ldrb r0, [r4] + bl GetBankIdentity + lsls r0, 24 + cmp r0, 0 + bne _08189DBE + ldr r5, =gUnknown_020244D0 + ldr r0, [r5] + ldrb r2, [r4] + ldr r1, [r0, 0x4] + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r6, 0x88 + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + bne _08189D8C + ldr r0, =gBattlePartyID + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r1, r0 + adds r0, r2, 0 + bl sub_8172EF0 +_08189D8C: + ldr r2, [r5] + ldrb r1, [r4] + movs r0, 0x2 + adds r3, r0, 0 + eors r3, r1 + ldr r1, [r2, 0x4] + lsls r2, r3, 1 + adds r0, r2, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + bne _08189DBE + ldr r0, =gBattlePartyID + adds r0, r2, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r1, r0 + adds r0, r3, 0 + bl sub_8172EF0 +_08189DBE: + ldr r3, =gUnknown_020244D0 + ldr r0, [r3] + ldr r2, =gActiveBank + ldrb r5, [r2] + ldr r4, [r0, 0x4] + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 2 + adds r6, r0, r4 + ldrb r1, [r6] + movs r0, 0x8 + mov r12, r0 + ands r0, r1 + mov r9, r2 + mov r8, r3 + cmp r0, 0 + bne _08189EA2 + movs r7, 0x2 + adds r1, r7, 0 + eors r1, r5 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0] + mov r0, r12 + ands r0, r1 + cmp r0, 0 + bne _08189EA2 + ldrb r1, [r6, 0x1] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08189E84 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08189E54 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08189E54 + ldr r4, =gUnknown_03005D70 + mov r1, r9 + ldrb r0, [r1] + adds r1, r7, 0 + eors r1, r0 + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, =gBattlePartyID + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gPlayerParty + adds r1, r2 + movs r2, 0 + bl healthbar_draw_field_maybe + mov r1, r9 + ldrb r0, [r1] + eors r0, r7 + bl sub_8076918 + mov r1, r9 + ldrb r0, [r1] + eors r0, r7 + adds r0, r4 + ldrb r0, [r0] + bl sub_80729D0 +_08189E54: + ldr r5, =gUnknown_03005D70 + ldr r4, =gActiveBank + ldrb r1, [r4] + adds r0, r1, r5 + ldrb r0, [r0] + ldr r2, =gBattlePartyID + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gPlayerParty + adds r1, r2 + movs r2, 0 + bl healthbar_draw_field_maybe + ldrb r0, [r4] + bl sub_8076918 + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + bl sub_80729D0 +_08189E84: + ldr r4, =gUnknown_020244D0 + ldr r0, [r4] + ldr r3, =gActiveBank + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x1] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0, 0x1] + mov r9, r3 + mov r8, r4 +_08189EA2: + mov r1, r8 + ldr r0, [r1] + mov r1, r9 + ldrb r2, [r1] + ldr r3, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x1] + movs r0, 0xC0 + ands r0, r1 + cmp r0, 0x80 + bne _08189F62 + movs r1, 0x2 + eors r1, r2 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x1] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08189F62 + bl IsCryPlayingOrClearCrySongs + lsls r0, 24 + cmp r0, 0 + bne _08189F62 + mov r1, r8 + ldr r0, [r1] + mov r1, r9 + ldrb r2, [r1] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x1] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _08189F44 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x42 + ands r0, r1 + cmp r0, 0x42 + bne _08189F38 + adds r0, r2, 0 + bl GetBankIdentity + lsls r0, 24 + cmp r0, 0 + bne _08189F44 + ldr r0, =gMPlay_BGM + bl m4aMPlayContinue + b _08189F44 + .pool +_08189F38: + ldr r0, =gMPlay_BGM + ldr r1, =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl +_08189F44: + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x1] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0, 0x1] + movs r0, 0x1 + mov r10, r0 +_08189F62: + mov r1, r10 + cmp r1, 0 + beq _0818A02A + ldr r7, =gSprites + ldr r6, =gUnknown_03005D7C + ldr r5, =gActiveBank + ldrb r3, [r5] + adds r0, r3, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, r7, 0 + adds r4, 0x1C + adds r0, r4 + ldr r2, [r0] + ldr r0, =SpriteCallbackDummy + cmp r2, r0 + bne _0818A02A + ldr r0, =gBankSpriteIds + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r0, [r0] + cmp r0, r2 + bne _0818A02A + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08189FC8 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08189FC8 + ldrb r1, [r5] + movs r0, 0x2 + eors r0, r1 + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + bl DestroySprite +_08189FC8: + ldr r1, =gUnknown_03005D7C + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + bl DestroySprite + ldr r3, =gUnknown_020244D0 + ldr r0, [r3] + ldr r2, [r0, 0x8] + ldrb r1, [r2, 0x9] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x9] + ldr r0, [r3] + ldrb r2, [r4] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldr r0, [r3] + ldrb r2, [r4] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r0, 0x7F + ands r0, r2 + strb r0, [r1, 0x1] + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8189AA0 + str r1, [r0] +_0818A02A: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8189D40 + + thumb_func_start sub_818A064 +sub_818A064: @ 818A064 + push {lr} + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 27 + cmp r0, 0 + bge _0818A092 + movs r2, 0x24 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _0818A092 + bl RecordedPlayerBufferExecCompleted +_0818A092: + pop {r0} + bx r0 + .pool + thumb_func_end sub_818A064 + + thumb_func_start sub_818A0A4 +sub_818A0A4: @ 818A0A4 + push {r4-r6,lr} + ldr r5, =gActiveBank + ldrb r0, [r5] + ldr r6, =gUnknown_03005D70 + adds r1, r0, r6 + ldrb r1, [r1] + movs r2, 0 + movs r3, 0 + bl sub_8074AA0 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r5] + adds r0, r6 + ldrb r0, [r0] + bl sub_80729D0 + lsls r4, 16 + asrs r1, r4, 16 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _0818A0EC + ldrb r0, [r5] + adds r0, r6 + ldrb r0, [r0] + movs r2, 0 + bl heathbar_draw_hp + b _0818A106 + .pool +_0818A0EC: + ldr r2, =gBattlePartyID + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, =gPlayerParty + adds r0, r2 + bl sub_805E990 + bl RecordedPlayerBufferExecCompleted +_0818A106: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818A0A4 + + thumb_func_start sub_818A114 +sub_818A114: @ 818A114 + push {r4-r6,lr} + ldr r6, =gSprites + ldr r5, =gBankSpriteIds + ldr r4, =gActiveBank + ldrb r2, [r4] + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r3, 0x22 + ldrsh r1, [r0, r3] + movs r3, 0x26 + ldrsh r0, [r0, r3] + adds r1, r0 + cmp r1, 0xA0 + ble _0818A190 + ldr r1, =gBattlePartyID + lsls r0, r2, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + bl nullsub_24 + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl DestroySprite + ldr r1, =gUnknown_03005D70 + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + bl sub_8072984 + bl RecordedPlayerBufferExecCompleted +_0818A190: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818A114 + + thumb_func_start sub_818A1B0 +sub_818A1B0: @ 818A1B0 + push {r4-r6,lr} + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r6, =gActiveBank + ldrb r2, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0818A204 + ldr r5, =gBankSpriteIds + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + ldr r1, =gUnknown_03005D70 + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + bl sub_8072984 + bl RecordedPlayerBufferExecCompleted +_0818A204: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818A1B0 + + thumb_func_start sub_818A220 +sub_818A220: @ 818A220 + push {lr} + movs r0, 0 + bl IsTextPrinterActive + lsls r0, 16 + cmp r0, 0 + bne _0818A232 + bl RecordedPlayerBufferExecCompleted +_0818A232: + pop {r0} + bx r0 + thumb_func_end sub_818A220 + + thumb_func_start sub_818A238 +sub_818A238: @ 818A238 + push {r4,lr} + ldr r1, =gBankSpriteIds + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + ldr r2, =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, r0, r2 + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0x20 + bne _0818A284 + movs r3, 0 + movs r0, 0 + strh r0, [r4, 0x30] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + subs r0, 0x5 + ands r0, r1 + strb r0, [r2] + ldr r0, =gDoingBattleAnim + strb r3, [r0] + bl RecordedPlayerBufferExecCompleted + b _0818A2AE + .pool +_0818A284: + ldrh r0, [r4, 0x30] + movs r1, 0x3 + ands r0, r1 + cmp r0, 0 + bne _0818A2A8 + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_0818A2A8: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] +_0818A2AE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_818A238 + + thumb_func_start sub_818A2B4 +sub_818A2B4: @ 818A2B4 + push {r4,lr} + ldr r2, =gSprites + ldr r0, =gUnknown_03005D70 + ldr r4, =gActiveBank + ldrb r3, [r4] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _0818A306 + adds r0, r3, 0 + bl sub_805E408 + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldrb r2, [r4] + ldr r1, [r0] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0818A2FA + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x6 + bl move_anim_start_t4 +_0818A2FA: + ldr r0, =gBattleBankFunc + ldrb r1, [r4] + lsls r1, 2 + adds r1, r0 + ldr r0, =sub_818A328 + str r0, [r1] +_0818A306: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818A2B4 + + thumb_func_start sub_818A328 +sub_818A328: @ 818A328 + push {lr} + ldr r0, =gUnknown_020244D0 + ldr r1, [r0] + ldr r0, =gActiveBank + ldrb r3, [r0] + ldr r1, [r1, 0x4] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0818A364 + ldr r2, =gSprites + ldr r0, =gBankSpriteIds + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _0818A364 + bl RecordedPlayerBufferExecCompleted +_0818A364: + pop {r0} + bx r0 + .pool + thumb_func_end sub_818A328 + + thumb_func_start sub_818A37C +sub_818A37C: @ 818A37C + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r3, =gUnknown_020244D0 + ldr r0, [r3] + ldr r7, =gActiveBank + ldrb r1, [r7] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r2, r0, r2 + ldrb r1, [r2, 0x1] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0818A438 + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + ldr r0, [r3] + ldrb r2, [r7] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldr r4, =0x000027f9 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag + ldr r0, =c3_0802FDF4 + movs r1, 0xA + bl CreateTask + ldr r0, =gBattlePartyID + mov r8, r0 + ldrb r1, [r7] + lsls r0, r1, 1 + add r0, r8 + ldrh r0, [r0] + movs r6, 0x64 + muls r0, r6 + ldr r5, =gPlayerParty + adds r0, r5 + bl sub_805E990 + ldr r1, =gBankSpriteIds + ldrb r0, [r7] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + movs r1, 0 + bl StartSpriteAnim + ldr r4, =gUnknown_03005D70 + ldrb r1, [r7] + adds r0, r1, r4 + ldrb r0, [r0] + lsls r1, 1 + add r1, r8 + ldrh r1, [r1] + muls r1, r6 + adds r1, r5 + movs r2, 0 + bl healthbar_draw_field_maybe + ldrb r0, [r7] + bl sub_8076918 + ldrb r0, [r7] + adds r0, r4 + ldrb r0, [r0] + bl sub_80729D0 + ldr r1, =gBattleBankFunc + ldrb r0, [r7] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_818A2B4 + str r1, [r0] +_0818A438: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818A37C + + thumb_func_start sub_818A470 +sub_818A470: @ 818A470 + push {r4-r6,lr} + ldr r6, =gUnknown_020244D0 + ldr r0, [r6] + ldr r4, =gActiveBank + ldrb r2, [r4] + ldr r1, [r0, 0x4] + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x88 + ands r0, r1 + cmp r0, 0 + bne _0818A4A2 + ldr r0, =gBattlePartyID + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r1, r0 + adds r0, r2, 0 + bl sub_8172EF0 +_0818A4A2: + ldr r5, =gSprites + ldr r0, =gUnknown_03005D7C + ldrb r2, [r4] + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r3, r0, 2 + adds r0, r5, 0 + adds r0, 0x1C + adds r0, r3, r0 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _0818A4E8 + ldr r0, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _0818A4E8 + adds r0, r3, r5 + bl DestroySprite + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_818A37C + str r1, [r0] +_0818A4E8: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818A470 + + thumb_func_start RecordedPlayerBufferExecCompleted +RecordedPlayerBufferExecCompleted: @ 818A514 + push {r4,lr} + sub sp, 0x4 + ldr r1, =gBattleBankFunc + ldr r4, =gActiveBank + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =RecordedPlayerBufferRunCommand + str r1, [r0] + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0818A568 + bl link_get_multiplayer_id + mov r1, sp + strb r0, [r1] + movs r0, 0x2 + movs r1, 0x4 + mov r2, sp + bl PrepareBufferDataTransferLink + ldr r1, =gBattleBufferA + ldrb r0, [r4] + lsls r0, 9 + adds r0, r1 + movs r1, 0x38 + strb r1, [r0] + b _0818A57A + .pool +_0818A568: + ldr r2, =gBattleExecBuffer + ldr r1, =gBitTable + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + ldr r0, [r2] + bics r0, r1 + str r0, [r2] +_0818A57A: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end RecordedPlayerBufferExecCompleted + + thumb_func_start sub_818A58C +sub_818A58C: @ 818A58C + push {lr} + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _0818A5AE + bl RecordedPlayerBufferExecCompleted +_0818A5AE: + pop {r0} + bx r0 + .pool + thumb_func_end sub_818A58C + + thumb_func_start sub_818A5BC +sub_818A5BC: @ 818A5BC + push {lr} + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _0818A5DE + bl RecordedPlayerBufferExecCompleted +_0818A5DE: + pop {r0} + bx r0 + .pool + thumb_func_end sub_818A5BC + + thumb_func_start sub_818A5EC +sub_818A5EC: @ 818A5EC + push {r4-r6,lr} + sub sp, 0x100 + movs r6, 0 + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + bne _0818A624 + ldr r0, =gBattlePartyID + lsls r1, r2, 1 + adds r1, r0 + ldrb r0, [r1] + mov r1, sp + bl sub_818A660 + adds r6, r0, 0 + b _0818A646 + .pool +_0818A624: + ldrb r4, [r1] + movs r5, 0 +_0818A628: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _0818A63E + lsls r0, r5, 24 + lsrs r0, 24 + mov r2, sp + adds r1, r2, r6 + bl sub_818A660 + adds r6, r0 +_0818A63E: + lsrs r4, 1 + adds r5, 0x1 + cmp r5, 0x5 + ble _0818A628 +_0818A646: + lsls r1, r6, 16 + lsrs r1, 16 + movs r0, 0x1 + mov r2, sp + bl dp01_build_cmdbuf_x1D_1D_numargs_varargs + bl RecordedPlayerBufferExecCompleted + add sp, 0x100 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_818A5EC + + thumb_func_start sub_818A660 +sub_818A660: @ 818A660 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x90 + adds r7, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0 + ldr r2, =gBattleBufferA + ldr r3, =gActiveBank + ldrb r0, [r3] + lsls r0, 9 + adds r1, r2, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x3B + bls _0818A68A + bl _0818ADF6 +_0818A68A: + lsls r0, 2 + ldr r1, =_0818A6A0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0818A6A0: + .4byte _0818A790 + .4byte _0818A9B4 + .4byte _0818A9C4 + .4byte _0818A9D4 + .4byte _0818AA3C + .4byte _0818AA3C + .4byte _0818AA3C + .4byte _0818AA3C + .4byte _0818AA58 + .4byte _0818AA94 + .4byte _0818AA94 + .4byte _0818AA94 + .4byte _0818AA94 + .4byte _0818ADF6 + .4byte _0818ADF6 + .4byte _0818ADF6 + .4byte _0818ADF6 + .4byte _0818AAB0 + .4byte _0818AAC0 + .4byte _0818AAF0 + .4byte _0818AB00 + .4byte _0818AB10 + .4byte _0818AB20 + .4byte _0818AB30 + .4byte _0818AB40 + .4byte _0818AB50 + .4byte _0818AB60 + .4byte _0818AB70 + .4byte _0818AB80 + .4byte _0818AB90 + .4byte _0818ABA0 + .4byte _0818ABB0 + .4byte _0818AC00 + .4byte _0818AC10 + .4byte _0818AC20 + .4byte _0818AC30 + .4byte _0818AC40 + .4byte _0818AC50 + .4byte _0818AC60 + .4byte _0818AC70 + .4byte _0818AC80 + .4byte _0818ACB4 + .4byte _0818ACC4 + .4byte _0818ACD4 + .4byte _0818ACE4 + .4byte _0818ACF4 + .4byte _0818AD04 + .4byte _0818AD14 + .4byte _0818AD24 + .4byte _0818AD44 + .4byte _0818AD54 + .4byte _0818AD64 + .4byte _0818AD74 + .4byte _0818AD84 + .4byte _0818AD94 + .4byte _0818ADA4 + .4byte _0818ADB4 + .4byte _0818ADC4 + .4byte _0818ADD4 + .4byte _0818ADE4 +_0818A790: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + mov r1, sp + strh r0, [r1] + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2E] + movs r6, 0 + add r0, sp, 0x24 + mov r9, r0 + movs r1, 0x3B + add r1, sp + mov r10, r1 + mov r2, sp + adds r2, 0x2B + str r2, [sp, 0x80] + mov r0, sp + adds r0, 0x2A + str r0, [sp, 0x7C] + mov r1, sp + adds r1, 0x68 + str r1, [sp, 0x8C] + adds r2, 0x5 + str r2, [sp, 0x84] + adds r0, 0x12 + str r0, [sp, 0x88] + mov r8, r4 + add r4, sp, 0xC +_0818A7DC: + adds r1, r6, 0 + adds r1, 0xD + mov r0, r8 + bl GetMonData + strh r0, [r4] + adds r1, r6, 0 + adds r1, 0x11 + mov r0, r8 + bl GetMonData + mov r2, r9 + adds r1, r2, r6 + strb r0, [r1] + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _0818A7DC + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x15 + bl GetMonData + mov r1, r10 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x20 + bl GetMonData + ldr r2, [sp, 0x80] + strb r0, [r2] + adds r0, r4, 0 + movs r1, 0x19 + bl GetMonData + str r0, [sp, 0x44] + adds r0, r4, 0 + movs r1, 0x27 + bl GetMonData + mov r3, sp + movs r5, 0x1F + ands r0, r5 + ldrb r2, [r3, 0x14] + movs r1, 0x20 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x14] + adds r0, r4, 0 + movs r1, 0x28 + bl GetMonData + mov r3, sp + movs r6, 0x1F + ands r0, r6 + lsls r0, 5 + ldrh r2, [r3, 0x14] + ldr r1, =0xfffffc1f + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x14] + adds r0, r4, 0 + movs r1, 0x29 + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, 2 + ldrb r2, [r3, 0x15] + movs r1, 0x7D + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x15] + adds r0, r4, 0 + movs r1, 0x2A + bl GetMonData + movs r1, 0x1F + ands r1, r0 + lsls r1, 15 + ldr r0, [sp, 0x14] + ldr r2, =0xfff07fff + ands r0, r2 + orrs r0, r1 + str r0, [sp, 0x14] + adds r0, r4, 0 + movs r1, 0x2B + bl GetMonData + mov r3, sp + ands r0, r6 + lsls r0, 4 + ldrh r2, [r3, 0x16] + ldr r1, =0xfffffe0f + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x16] + adds r0, r4, 0 + movs r1, 0x2C + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, 1 + ldrb r2, [r3, 0x17] + movs r1, 0x3F + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + str r0, [sp, 0x48] + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData + str r0, [sp, 0x4C] + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + ldr r1, [sp, 0x7C] + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + mov r1, sp + strh r0, [r1, 0x28] + adds r0, r4, 0 + movs r1, 0x3A + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2C] + adds r0, r4, 0 + movs r1, 0x3B + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2] + adds r0, r4, 0 + movs r1, 0x3C + bl GetMonData + mov r1, sp + strh r0, [r1, 0x4] + adds r0, r4, 0 + movs r1, 0x3D + bl GetMonData + mov r1, sp + strh r0, [r1, 0x6] + adds r0, r4, 0 + movs r1, 0x3E + bl GetMonData + mov r1, sp + strh r0, [r1, 0x8] + adds r0, r4, 0 + movs r1, 0x3F + bl GetMonData + mov r1, sp + strh r0, [r1, 0xA] + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + mov r3, sp + movs r1, 0x1 + ands r0, r1 + lsls r0, 6 + ldrb r2, [r3, 0x17] + movs r1, 0x41 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0x2E + bl GetMonData + mov r3, sp + lsls r0, 7 + ldrb r2, [r3, 0x17] + movs r1, 0x7F + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0x1 + bl GetMonData + str r0, [sp, 0x54] + adds r0, r4, 0 + movs r1, 0x2 + ldr r2, [sp, 0x8C] + bl GetMonData + ldr r0, [sp, 0x84] + ldr r1, [sp, 0x8C] + bl StringCopy10 + adds r0, r4, 0 + movs r1, 0x7 + ldr r2, [sp, 0x88] + bl GetMonData + mov r2, sp + movs r6, 0 +_0818A994: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, 0x1 + cmp r6, 0x57 + bls _0818A994 + b _0818ADF6 + .pool +_0818A9B4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xB + b _0818AD2E + .pool +_0818A9C4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xC + b _0818AD2E + .pool +_0818A9D4: + movs r6, 0 + add r2, sp, 0x58 + mov r9, r2 + add r0, sp, 0x60 + mov r10, r0 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r4, r1, r0 + mov r8, r9 +_0818A9EA: + adds r1, r6, 0 + adds r1, 0xD + adds r0, r4, 0 + bl GetMonData + mov r1, r8 + strh r0, [r1] + adds r1, r6, 0 + adds r1, 0x11 + adds r0, r4, 0 + bl GetMonData + mov r2, r10 + adds r1, r2, r6 + strb r0, [r1] + movs r0, 0x2 + add r8, r0 + adds r6, 0x1 + cmp r6, 0x3 + ble _0818A9EA + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x15 + bl GetMonData + mov r1, r9 + strb r0, [r1, 0xC] + mov r2, r9 + movs r6, 0 +_0818AA28: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, 0x1 + cmp r6, 0xF + bls _0818AA28 + b _0818ADF6 + .pool +_0818AA3C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldrb r1, [r3] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + adds r1, 0x9 + b _0818AD2E + .pool +_0818AA58: + movs r6, 0 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r2, =gPlayerParty + mov r8, r2 +_0818AA64: + adds r1, r6, 0 + adds r1, 0x11 + mov r2, r8 + adds r0, r4, r2 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, 0x1 + cmp r6, 0x3 + ble _0818AA64 + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x15 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, 0x1 + b _0818ADF6 + .pool +_0818AA94: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldrb r1, [r3] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + adds r1, 0x8 + b _0818ADEE + .pool +_0818AAB0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1 + b _0818AACA + .pool +_0818AAC0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x19 +_0818AACA: + bl GetMonData + adds r1, r0, 0 + strb r1, [r7] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r0, 16 + strb r0, [r7, 0x2] + movs r6, 0x3 + b _0818ADF6 + .pool +_0818AAF0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1A + b _0818ADEE + .pool +_0818AB00: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1B + b _0818ADEE + .pool +_0818AB10: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1C + b _0818ADEE + .pool +_0818AB20: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1D + b _0818ADEE + .pool +_0818AB30: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1E + b _0818ADEE + .pool +_0818AB40: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1F + b _0818ADEE + .pool +_0818AB50: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x20 + b _0818ADEE + .pool +_0818AB60: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x22 + b _0818ADEE + .pool +_0818AB70: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x23 + b _0818ADEE + .pool +_0818AB80: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x24 + b _0818ADEE + .pool +_0818AB90: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x25 + b _0818ADEE + .pool +_0818ABA0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x26 + b _0818ADEE + .pool +_0818ABB0: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x27 + bl GetMonData + strb r0, [r7] + adds r0, r4, 0 + movs r1, 0x28 + bl GetMonData + strb r0, [r7, 0x1] + adds r0, r4, 0 + movs r1, 0x29 + bl GetMonData + strb r0, [r7, 0x2] + adds r0, r4, 0 + movs r1, 0x2A + bl GetMonData + strb r0, [r7, 0x3] + adds r0, r4, 0 + movs r1, 0x2B + bl GetMonData + strb r0, [r7, 0x4] + adds r0, r4, 0 + movs r1, 0x2C + bl GetMonData + strb r0, [r7, 0x5] + movs r6, 0x6 + b _0818ADF6 + .pool +_0818AC00: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x27 + b _0818ADEE + .pool +_0818AC10: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x28 + b _0818ADEE + .pool +_0818AC20: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x29 + b _0818ADEE + .pool +_0818AC30: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x2A + b _0818ADEE + .pool +_0818AC40: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x2B + b _0818ADEE + .pool +_0818AC50: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x2C + b _0818ADEE + .pool +_0818AC60: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0 + b _0818AC8A + .pool +_0818AC70: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x9 + b _0818AD2E + .pool +_0818AC80: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x37 +_0818AC8A: + bl GetMonData + adds r1, r0, 0 + strb r1, [r7] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r0, 16 + strb r0, [r7, 0x2] + lsrs r0, r1, 24 + strb r0, [r7, 0x3] + movs r6, 0x4 + b _0818ADF6 + .pool +_0818ACB4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x38 + b _0818ADEE + .pool +_0818ACC4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x39 + b _0818AD2E + .pool +_0818ACD4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3A + b _0818AD2E + .pool +_0818ACE4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3B + b _0818AD2E + .pool +_0818ACF4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3C + b _0818AD2E + .pool +_0818AD04: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3D + b _0818AD2E + .pool +_0818AD14: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3E + b _0818AD2E + .pool +_0818AD24: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3F +_0818AD2E: + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + strb r0, [r7] + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r6, 0x2 + b _0818ADF6 + .pool +_0818AD44: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x16 + b _0818ADEE + .pool +_0818AD54: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x17 + b _0818ADEE + .pool +_0818AD64: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x18 + b _0818ADEE + .pool +_0818AD74: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x21 + b _0818ADEE + .pool +_0818AD84: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x2F + b _0818ADEE + .pool +_0818AD94: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x30 + b _0818ADEE + .pool +_0818ADA4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x32 + b _0818ADEE + .pool +_0818ADB4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x33 + b _0818ADEE + .pool +_0818ADC4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x34 + b _0818ADEE + .pool +_0818ADD4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x35 + b _0818ADEE + .pool +_0818ADE4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x36 +_0818ADEE: + bl GetMonData + strb r0, [r7] + movs r6, 0x1 +_0818ADF6: + adds r0, r6, 0 + add sp, 0x90 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_818A660 + + thumb_func_start sub_818AE0C +sub_818AE0C: @ 818AE0C + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_818AE0C + + thumb_func_start sub_818AE18 +sub_818AE18: @ 818AE18 + push {r4,r5,lr} + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + bne _0818AE48 + ldr r0, =gBattlePartyID + lsls r1, r2, 1 + adds r1, r0 + ldrb r0, [r1] + bl sub_818AE70 + b _0818AE66 + .pool +_0818AE48: + ldrb r4, [r1] + movs r5, 0 +_0818AE4C: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _0818AE5A + adds r0, r5, 0 + bl sub_818AE70 +_0818AE5A: + lsrs r4, 1 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _0818AE4C +_0818AE66: + bl RecordedPlayerBufferExecCompleted + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_818AE18 + + thumb_func_start sub_818AE70 +sub_818AE70: @ 818AE70 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x34 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 9 + ldr r2, =gUnknown_02023067 + adds r3, r0, r2 + adds r6, r3, 0 + subs r1, r2, 0x2 + adds r0, r1 + ldrb r0, [r0] + adds r7, r2, 0 + cmp r0, 0x3B + bls _0818AE9C + bl _0818B836 +_0818AE9C: + lsls r0, 2 + ldr r1, =_0818AEB4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0818AEB4: + .4byte _0818AFA4 + .4byte _0818B13C + .4byte _0818B15C + .4byte _0818B17C + .4byte _0818B1D4 + .4byte _0818B1D4 + .4byte _0818B1D4 + .4byte _0818B1D4 + .4byte _0818B1FC + .4byte _0818B260 + .4byte _0818B260 + .4byte _0818B260 + .4byte _0818B260 + .4byte _0818B836 + .4byte _0818B836 + .4byte _0818B836 + .4byte _0818B836 + .4byte _0818B290 + .4byte _0818B2B0 + .4byte _0818B2D0 + .4byte _0818B2F0 + .4byte _0818B310 + .4byte _0818B330 + .4byte _0818B350 + .4byte _0818B370 + .4byte _0818B390 + .4byte _0818B3B0 + .4byte _0818B3D0 + .4byte _0818B3F0 + .4byte _0818B410 + .4byte _0818B430 + .4byte _0818B450 + .4byte _0818B4C0 + .4byte _0818B4E0 + .4byte _0818B500 + .4byte _0818B520 + .4byte _0818B540 + .4byte _0818B560 + .4byte _0818B580 + .4byte _0818B5A0 + .4byte _0818B5C0 + .4byte _0818B5E0 + .4byte _0818B600 + .4byte _0818B620 + .4byte _0818B640 + .4byte _0818B660 + .4byte _0818B680 + .4byte _0818B6A0 + .4byte _0818B6C0 + .4byte _0818B6E0 + .4byte _0818B700 + .4byte _0818B720 + .4byte _0818B740 + .4byte _0818B760 + .4byte _0818B780 + .4byte _0818B7A0 + .4byte _0818B7C0 + .4byte _0818B7E0 + .4byte _0818B800 + .4byte _0818B820 +_0818AFA4: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + adds r2, r6, 0 + bl SetMonData + adds r2, r6, 0 + adds r2, 0x2E + adds r0, r4, 0 + movs r1, 0xC + bl SetMonData + movs r0, 0 + mov r8, r0 + movs r0, 0x3B + adds r0, r6 + mov r10, r0 + adds r0, r6, 0 + adds r0, 0x2B + str r0, [sp, 0x20] + adds r0, 0x19 + str r0, [sp, 0x28] + adds r0, 0x4 + str r0, [sp, 0x2C] + adds r0, 0x4 + str r0, [sp, 0x30] + subs r0, 0x22 + str r0, [sp, 0x1C] + subs r0, 0x2 + str r0, [sp, 0x18] + adds r0, 0x4 + str r0, [sp, 0x24] + adds r0, r6, 0x2 + str r0, [sp, 0x4] + adds r0, r6, 0x4 + str r0, [sp, 0x8] + adds r0, r6, 0x6 + str r0, [sp, 0xC] + adds r0, 0x2 + str r0, [sp, 0x10] + adds r0, 0x2 + str r0, [sp, 0x14] + mov r9, r4 + adds r7, r6, 0 + adds r7, 0x24 + adds r4, r6, 0 + adds r4, 0xC +_0818B00A: + mov r1, r8 + adds r1, 0xD + mov r0, r9 + adds r2, r4, 0 + bl SetMonData + mov r1, r8 + adds r1, 0x11 + mov r0, r9 + adds r2, r7, 0 + bl SetMonData + adds r7, 0x1 + adds r4, 0x2 + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x3 + ble _0818B00A + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x15 + mov r2, r10 + bl SetMonData + adds r0, r4, 0 + movs r1, 0x20 + ldr r2, [sp, 0x20] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x19 + ldr r2, [sp, 0x28] + bl SetMonData + ldrb r0, [r6, 0x14] + lsls r0, 27 + lsrs r0, 27 + mov r1, sp + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x27 + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r6, 0x14] + lsls r0, 22 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x28 + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r6, 0x15] + lsls r0, 25 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x29 + mov r2, sp + bl SetMonData + mov r1, sp + ldr r0, [r6, 0x14] + lsls r0, 12 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2A + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r6, 0x16] + lsls r0, 23 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2B + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r6, 0x17] + lsls r0, 26 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2C + mov r2, sp + bl SetMonData + adds r0, r4, 0 + movs r1, 0 + ldr r2, [sp, 0x2C] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x37 + ldr r2, [sp, 0x30] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x38 + ldr r2, [sp, 0x1C] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x39 + ldr r2, [sp, 0x18] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3A + ldr r2, [sp, 0x24] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3B + ldr r2, [sp, 0x4] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3C + ldr r2, [sp, 0x8] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3D + ldr r2, [sp, 0xC] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3E + ldr r2, [sp, 0x10] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3F + ldr r2, [sp, 0x14] + bl SetMonData + b _0818B836 + .pool +_0818B13C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0xB + bl SetMonData + b _0818B836 + .pool +_0818B15C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0xC + bl SetMonData + b _0818B836 + .pool +_0818B17C: + movs r0, 0 + mov r8, r0 + movs r0, 0xC + adds r0, r3 + mov r9, r0 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r7, r1, r0 + adds r6, r3, 0 + adds r6, 0x8 + adds r4, r3, 0 +_0818B196: + mov r1, r8 + adds r1, 0xD + adds r0, r7, 0 + adds r2, r4, 0 + bl SetMonData + mov r1, r8 + adds r1, 0x11 + adds r0, r7, 0 + adds r2, r6, 0 + bl SetMonData + adds r6, 0x1 + adds r4, 0x2 + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x3 + ble _0818B196 + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x15 + mov r2, r9 + bl SetMonData + b _0818B836 + .pool +_0818B1D4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r3, =gBattleBufferA + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, 0x9 + b _0818B278 + .pool +_0818B1FC: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + ldr r5, =gActiveBank + ldrb r2, [r5] + lsls r2, 9 + adds r2, r7 + adds r0, r4, 0 + movs r1, 0x11 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x1 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x12 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x2 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x13 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x3 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x14 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x4 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x15 + bl SetMonData + b _0818B836 + .pool +_0818B260: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r3, =gBattleBufferA + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, 0x8 +_0818B278: + adds r3, 0x3 + adds r2, r3 + bl SetMonData + b _0818B836 + .pool +_0818B290: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1 + bl SetMonData + b _0818B836 + .pool +_0818B2B0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x19 + bl SetMonData + b _0818B836 + .pool +_0818B2D0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1A + bl SetMonData + b _0818B836 + .pool +_0818B2F0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1B + bl SetMonData + b _0818B836 + .pool +_0818B310: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1C + bl SetMonData + b _0818B836 + .pool +_0818B330: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1D + bl SetMonData + b _0818B836 + .pool +_0818B350: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1E + bl SetMonData + b _0818B836 + .pool +_0818B370: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1F + bl SetMonData + b _0818B836 + .pool +_0818B390: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x20 + bl SetMonData + b _0818B836 + .pool +_0818B3B0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x22 + bl SetMonData + b _0818B836 + .pool +_0818B3D0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x23 + bl SetMonData + b _0818B836 + .pool +_0818B3F0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x24 + bl SetMonData + b _0818B836 + .pool +_0818B410: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x25 + bl SetMonData + b _0818B836 + .pool +_0818B430: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x26 + bl SetMonData + b _0818B836 + .pool +_0818B450: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + ldr r5, =gActiveBank + ldrb r2, [r5] + lsls r2, 9 + adds r2, r7 + adds r0, r4, 0 + movs r1, 0x27 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x1 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x28 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x2 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x29 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x3 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x2A + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x4 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x2B + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x5 + adds r2, r0 + adds r0, r4, 0 + b _0818B570 + .pool +_0818B4C0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x27 + bl SetMonData + b _0818B836 + .pool +_0818B4E0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x28 + bl SetMonData + b _0818B836 + .pool +_0818B500: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x29 + bl SetMonData + b _0818B836 + .pool +_0818B520: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x2A + bl SetMonData + b _0818B836 + .pool +_0818B540: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x2B + bl SetMonData + b _0818B836 + .pool +_0818B560: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 +_0818B570: + movs r1, 0x2C + bl SetMonData + b _0818B836 + .pool +_0818B580: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0 + bl SetMonData + b _0818B836 + .pool +_0818B5A0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x9 + bl SetMonData + b _0818B836 + .pool +_0818B5C0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x37 + bl SetMonData + b _0818B836 + .pool +_0818B5E0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x38 + bl SetMonData + b _0818B836 + .pool +_0818B600: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x39 + bl SetMonData + b _0818B836 + .pool +_0818B620: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3A + bl SetMonData + b _0818B836 + .pool +_0818B640: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3B + bl SetMonData + b _0818B836 + .pool +_0818B660: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3C + bl SetMonData + b _0818B836 + .pool +_0818B680: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3D + bl SetMonData + b _0818B836 + .pool +_0818B6A0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3E + bl SetMonData + b _0818B836 + .pool +_0818B6C0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3F + bl SetMonData + b _0818B836 + .pool +_0818B6E0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x16 + bl SetMonData + b _0818B836 + .pool +_0818B700: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x17 + bl SetMonData + b _0818B836 + .pool +_0818B720: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x18 + bl SetMonData + b _0818B836 + .pool +_0818B740: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x21 + bl SetMonData + b _0818B836 + .pool +_0818B760: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x2F + bl SetMonData + b _0818B836 + .pool +_0818B780: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x30 + bl SetMonData + b _0818B836 + .pool +_0818B7A0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x32 + bl SetMonData + b _0818B836 + .pool +_0818B7C0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x33 + bl SetMonData + b _0818B836 + .pool +_0818B7E0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x34 + bl SetMonData + b _0818B836 + .pool +_0818B800: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x35 + bl SetMonData + b _0818B836 + .pool +_0818B820: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x36 + bl SetMonData +_0818B836: + ldr r2, =gBattlePartyID + ldr r0, =gActiveBank + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, =gPlayerParty + adds r0, r2 + bl sub_805E990 + add sp, 0x34 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818AE70 + + thumb_func_start sub_818B86C +sub_818B86C: @ 818B86C + push {r4-r7,lr} + ldr r1, =gBattlePartyID + ldr r7, =gActiveBank + ldrb r2, [r7] + lsls r0, r2, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + adds r3, r1, 0 + muls r3, r0 + ldr r4, =gBattleBufferA + lsls r2, 9 + adds r0, r4, 0x1 + adds r0, r2, r0 + ldrb r0, [r0] + ldr r1, =gPlayerParty + adds r0, r1 + adds r5, r3, r0 + movs r3, 0 + adds r0, r4, 0x2 + adds r2, r0 + ldrb r2, [r2] + cmp r3, r2 + bcs _0818B8C4 + adds r6, r4, 0 + adds r2, r7, 0 + adds r4, r0, 0 +_0818B8A2: + adds r1, r5, r3 + ldrb r0, [r2] + lsls r0, 9 + adds r0, 0x3 + adds r0, r3, r0 + adds r0, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + ldrb r0, [r2] + lsls r0, 9 + adds r0, r4 + ldrb r0, [r0] + cmp r3, r0 + bcc _0818B8A2 +_0818B8C4: + bl RecordedPlayerBufferExecCompleted + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818B86C + + thumb_func_start sub_818B8E0 +sub_818B8E0: @ 818B8E0 + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r0, =gBattlePartyID + mov r8, r0 + ldr r6, =gActiveBank + ldrb r1, [r6] + lsls r0, r1, 1 + add r0, r8 + ldrh r0, [r0] + movs r5, 0x64 + muls r0, r5 + ldr r4, =gPlayerParty + adds r0, r4 + bl sub_805DD7C + ldrb r0, [r6] + lsls r0, 1 + add r0, r8 + ldrh r0, [r0] + muls r0, r5 + adds r0, r4 + movs r1, 0xB + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r6] + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_806A068 + ldr r0, =gUnknown_0202499C + mov r8, r0 + ldrb r0, [r6] + movs r1, 0x2 + bl sub_80A5C6C + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldrb r0, [r6] + bl sub_80A6138 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r6] + bl sub_80A82E4 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + mov r0, r8 + adds r1, r5, 0 + adds r2, r4, 0 + bl CreateSprite + ldr r4, =gBankSpriteIds + ldrb r1, [r6] + adds r1, r4 + strb r0, [r1] + ldr r5, =gSprites + ldrb r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =0x0000ff10 + strh r1, [r0, 0x24] + ldrb r2, [r6] + adds r0, r2, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x2E] + ldrb r3, [r6] + adds r0, r3, r4 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + lsls r3, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r2, [r6] + adds r4, r2, r4 + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =gUnknown_020244E4 + adds r2, r1 + ldrb r1, [r2] + bl StartSpriteAnim + ldr r1, =gBattleBankFunc + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_818A064 + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818B8E0 + + thumb_func_start sub_818B9FC +sub_818B9FC: @ 818B9FC + push {r4-r6,lr} + ldr r5, =gActiveBank + ldrb r0, [r5] + ldr r4, =gBattleBufferA + lsls r1, r0, 9 + adds r6, r4, 0x2 + adds r1, r6 + ldrb r1, [r1] + bl sub_805EF84 + ldr r2, =gBattlePartyID + ldrb r0, [r5] + lsls r1, r0, 1 + adds r1, r2 + lsls r0, 9 + adds r4, 0x1 + adds r0, r4 + ldrb r0, [r0] + strh r0, [r1] + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, =gPlayerParty + adds r0, r2 + bl sub_805DD7C + ldrb r0, [r5] + lsls r1, r0, 9 + adds r1, r6 + ldrb r1, [r1] + bl sub_818BA6C + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_818A470 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818B9FC + + thumb_func_start sub_818BA6C +sub_818BA6C: @ 818BA6C + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + lsls r1, 24 + lsrs r1, 24 + adds r0, r6, 0 + bl sub_805EF84 + ldr r0, =gBattlePartyID + lsls r2, r6, 1 + adds r2, r0 + ldr r0, =gBattleBufferA + lsls r1, r6, 9 + adds r0, 0x1 + adds r1, r0 + ldrb r0, [r1] + strh r0, [r2] + ldrh r1, [r2] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + mov r8, r0 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r0, =sub_805D714 + bl CreateInvisibleSpriteWithCallback + ldr r1, =gUnknown_03005D7C + mov r9, r1 + add r9, r6 + mov r1, r9 + strb r0, [r1] + adds r0, r6, 0 + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r8 + bl sub_806A068 + ldr r0, =gUnknown_0202499C + mov r10, r0 + adds r0, r6, 0 + movs r1, 0x2 + bl sub_80A5C6C + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + adds r0, r6, 0 + bl sub_80A6138 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + bl sub_80A82E4 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + mov r0, r10 + adds r1, r5, 0 + adds r2, r4, 0 + bl CreateSprite + ldr r4, =gBankSpriteIds + adds r4, r6, r4 + strb r0, [r4] + ldr r5, =gSprites + mov r0, r9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r4] + strh r1, [r0, 0x30] + mov r0, r9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x32] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x2E] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + mov r1, r8 + strh r1, [r0, 0x32] + ldrb r0, [r4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + lsls r3, r6, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =gUnknown_020244E4 + adds r6, r1 + ldrb r1, [r6] + bl StartSpriteAnim + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =SpriteCallbackDummy + str r1, [r0] + movs r0, 0 + movs r1, 0xFF + bl sub_80753E8 + mov r1, r9 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r5 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0x2E] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818BA6C + + thumb_func_start sub_818BBE8 +sub_818BBE8: @ 818BBE8 + push {r4-r6,lr} + ldr r1, =gBattleBufferA + ldr r6, =gActiveBank + ldrb r2, [r6] + lsls r0, r2, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r3, [r0] + cmp r3, 0 + bne _0818BC30 + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + strb r3, [r0, 0x4] + ldr r1, =gBattleBankFunc + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_818BC78 + str r1, [r0] + b _0818BC66 + .pool +_0818BC30: + ldr r5, =gBankSpriteIds + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + ldr r1, =gUnknown_03005D70 + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + bl sub_8072984 + bl RecordedPlayerBufferExecCompleted +_0818BC66: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818BBE8 + + thumb_func_start sub_818BC78 +sub_818BC78: @ 818BC78 + push {r4-r6,lr} + ldr r6, =gUnknown_020244D0 + ldr r4, [r6] + ldr r5, =gActiveBank + ldrb r2, [r5] + ldr r1, [r4, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r3, r0, r1 + ldrb r0, [r3, 0x4] + cmp r0, 0 + beq _0818BCA0 + cmp r0, 0x1 + beq _0818BCCE + b _0818BCF6 + .pool +_0818BCA0: + ldr r1, [r4] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0818BCBA + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_0818BCBA: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0, 0x4] + b _0818BCF6 +_0818BCCE: + ldrb r1, [r3] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _0818BCF6 + strb r0, [r3, 0x4] + ldrb r2, [r5] + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x1 + bl move_anim_start_t4 + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_818A1B0 + str r1, [r0] +_0818BCF6: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818BC78 + + thumb_func_start sub_818BD04 +sub_818BD04: @ 818BD04 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, =gBattleTypeFlags + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 18 + ands r0, r1 + cmp r0, 0 + beq _0818BD48 + movs r0, 0x40 + ands r1, r0 + cmp r1, 0 + beq _0818BD30 + bl sub_8185F40 + lsls r0, 24 + lsrs r4, r0, 24 + b _0818BD4C + .pool +_0818BD30: + ldr r2, =gUnknown_020229E8 + ldr r0, =gUnknown_0203C7B4 + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + b _0818BD4A + .pool +_0818BD48: + ldr r0, =gUnknown_020229E8 +_0818BD4A: + ldrb r4, [r0, 0x13] +_0818BD4C: + ldr r0, =gBattleTypeFlags + ldr r1, [r0] + movs r2, 0x40 + ands r1, r2 + adds r5, r0, 0 + cmp r1, 0 + beq _0818BD98 + ldr r0, =gActiveBank + ldrb r0, [r0] + bl GetBankIdentity + movs r1, 0x2 + ands r1, r0 + movs r0, 0x20 + mov r9, r0 + cmp r1, 0 + beq _0818BD72 + movs r1, 0x5A + mov r9, r1 +_0818BD72: + ldr r0, [r5] + movs r1, 0x80 + lsls r1, 15 + ands r0, r1 + cmp r0, 0 + beq _0818BD9C + movs r0, 0x5A + mov r9, r0 + ldr r1, =gUnknown_083054E0 + b _0818BD9E + .pool +_0818BD98: + movs r0, 0x50 + mov r9, r0 +_0818BD9C: + ldr r1, =gUnknown_08305D2C +_0818BD9E: + lsls r0, r4, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x8 + subs r0, r1 + lsls r0, 18 + movs r1, 0xA0 + lsls r1, 15 + adds r0, r1 + lsrs r7, r0, 16 + ldr r0, [r5] + movs r1, 0x80 + lsls r1, 15 + ands r0, r1 + cmp r0, 0 + bne _0818BDC0 + b _0818BEDC +_0818BDC0: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r0, [r0, 0x8] + bl sub_806F000 + lsls r0, 16 + lsrs r4, r0, 16 + adds r5, r4, 0 + ldr r6, =gActiveBank + ldrb r1, [r6] + adds r0, r5, 0 + bl sub_805DF38 + ldrb r0, [r6] + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl sub_806A1C0 + ldr r0, =gUnknown_0202499C + mov r8, r0 + lsls r4, r7, 16 + asrs r4, 16 + ldrb r0, [r6] + bl sub_80A82E4 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + mov r0, r8 + mov r1, r9 + adds r2, r4, 0 + bl CreateSprite + ldr r4, =gBankSpriteIds + ldrb r1, [r6] + adds r1, r4 + strb r0, [r1] + ldr r0, =gTrainerFrontPicPaletteTable + lsls r5, 3 + adds r5, r0 + ldrh r0, [r5, 0x4] + bl IndexOfSpritePaletteTag + ldr r5, =gSprites + ldrb r1, [r6] + adds r1, r4 + ldrb r1, [r1] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r5 + lsls r0, 4 + ldrb r3, [r2, 0x5] + movs r1, 0xF + ands r1, r3 + orrs r1, r0 + strb r1, [r2, 0x5] + ldrb r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0xF0 + strh r1, [r0, 0x24] + ldrb r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x30 + strh r1, [r0, 0x26] + ldrb r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =0x0000fffe + strh r1, [r0, 0x2E] + ldrb r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =sub_805D7AC + str r1, [r0] + ldrb r0, [r6] + adds r0, r4 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r2, [r1, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldrb r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3F + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + b _0818BF72 + .pool +_0818BEDC: + ldr r5, =gActiveBank + ldrb r1, [r5] + adds r0, r4, 0 + bl sub_805DF84 + ldrb r0, [r5] + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl template_build_for_pokemon_or_trainer + ldr r6, =gUnknown_0202499C + mov r8, r9 + lsls r4, r7, 16 + asrs r4, 16 + ldrb r0, [r5] + bl sub_80A82E4 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + adds r0, r6, 0 + mov r1, r8 + adds r2, r4, 0 + bl CreateSprite + ldr r6, =gBankSpriteIds + ldrb r1, [r5] + adds r1, r6 + strb r0, [r1] + ldr r4, =gSprites + ldrb r3, [r5] + adds r0, r3, r6 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + lsls r3, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0xF0 + strh r1, [r0, 0x24] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =0x0000fffe + strh r1, [r0, 0x2E] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, =sub_805D7AC + str r1, [r0] +_0818BF72: + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_81899B8 + str r1, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818BD04 + + thumb_func_start sub_818BFAC +sub_818BFAC: @ 818BFAC + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_818BFAC + + thumb_func_start sub_818BFB8 +sub_818BFB8: @ 818BFB8 + push {r4-r6,lr} + ldr r6, =gBankSpriteIds + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, =gSprites + adds r0, r5 + bl oamt_add_pos2_onto_pos1 + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x23 + strh r1, [r0, 0x2E] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =0x0000ffd8 + strh r1, [r0, 0x32] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r1, [r0, 0x22] + strh r1, [r0, 0x36] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =sub_80A6EEC + str r1, [r0] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =SpriteCallbackDummy + bl oamt_set_x3A_32 + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_81899F0 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818BFB8 + + thumb_func_start sub_818C064 +sub_818C064: @ 818C064 + push {r4-r6,lr} + ldr r6, =gUnknown_020244D0 + ldr r4, [r6] + ldr r5, =gActiveBank + ldrb r2, [r5] + ldr r0, [r4, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r3, r1, r0 + ldrb r0, [r3, 0x4] + cmp r0, 0 + bne _0818C0B8 + ldr r1, [r4] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0818C098 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_0818C098: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x4] + adds r1, 0x1 + strb r1, [r0, 0x4] + b _0818C12E + .pool +_0818C0B8: + ldrb r1, [r3] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _0818C12E + strb r4, [r3, 0x4] + ldr r2, =gBattlePartyID + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, =gPlayerParty + adds r0, r2 + bl sub_805E990 + movs r1, 0x40 + negs r1, r1 + movs r0, 0x10 + bl PlaySE12WithPanning + ldr r2, =gSprites + ldr r3, =gBankSpriteIds + ldrb r0, [r5] + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r4, [r0, 0x30] + ldrb r0, [r5] + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x5 + strh r1, [r0, 0x32] + ldrb r0, [r5] + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, =sub_8039C00 + str r1, [r0] + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_818A114 + str r1, [r0] +_0818C12E: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818C064 + + thumb_func_start sub_818C150 +sub_818C150: @ 818C150 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_818C150 + + thumb_func_start sub_818C15C +sub_818C15C: @ 818C15C + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_818C15C + + thumb_func_start sub_818C168 +sub_818C168: @ 818C168 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_818C168 + + thumb_func_start sub_818C174 +sub_818C174: @ 818C174 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_818C174 + + thumb_func_start sub_818C180 +sub_818C180: @ 818C180 + push {r4-r6,lr} + ldr r6, =gActiveBank + ldrb r0, [r6] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + beq _0818C192 + b _0818C2A6 +_0818C192: + ldr r0, =gBattleBufferA + mov r12, r0 + ldrb r2, [r6] + lsls r2, 9 + adds r0, 0x1 + adds r0, r2, r0 + ldrb r0, [r0] + mov r1, r12 + adds r1, 0x2 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + ldr r5, =gUnknown_02038432 + mov r1, r12 + adds r1, 0x3 + adds r2, r1 + ldrb r1, [r2] + strb r1, [r5] + ldr r4, =gMovePowerMoveAnim + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x4 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0x5 + adds r2, r1 + ldrb r1, [r2] + lsls r1, 8 + orrs r3, r1 + strh r3, [r4] + ldr r4, =gMoveDmgMoveAnim + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x6 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0x7 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r3, r1 + mov r1, r12 + adds r1, 0x8 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 16 + orrs r3, r1 + mov r1, r12 + adds r1, 0x9 + adds r2, r1 + ldrb r1, [r2] + lsls r1, 24 + orrs r3, r1 + str r3, [r4] + ldr r3, =gHappinessMoveAnim + ldrb r1, [r6] + lsls r1, 9 + mov r2, r12 + adds r2, 0xA + adds r1, r2 + ldrb r1, [r1] + strb r1, [r3] + ldr r4, =gWeatherMoveAnim + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0xC + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0xD + adds r2, r1 + ldrb r1, [r2] + lsls r1, 8 + orrs r3, r1 + strh r3, [r4] + ldr r3, =gDisableStructMoveAnim + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x10 + adds r2, r1 + str r2, [r3] + ldr r3, =gUnknown_020244BC + ldrb r1, [r6] + lsls r1, 2 + adds r1, r3 + ldr r2, [r2] + str r2, [r1] + ldrb r1, [r5] + bl sub_805DB8C + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _0818C288 + bl RecordedPlayerBufferExecCompleted + b _0818C2A6 + .pool +_0818C288: + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strb r3, [r0, 0x4] + ldr r1, =gBattleBankFunc + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, =bx_move_anim_2 + str r1, [r0] +_0818C2A6: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818C180 + + thumb_func_start bx_move_anim_2 +bx_move_anim_2: @ 818C2B8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r2, =gBattleBufferA + ldr r6, =gActiveBank + ldrb r3, [r6] + lsls r1, r3, 9 + adds r0, r2, 0x1 + mov r10, r0 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, r2, 0x2 + mov r9, r5 + adds r0, r1, r5 + ldrb r0, [r0] + lsls r0, 8 + orrs r4, r0 + adds r2, 0xB + adds r1, r2 + ldrb r1, [r1] + mov r8, r1 + ldr r7, =gUnknown_020244D0 + ldr r5, [r7] + ldr r1, [r5, 0x4] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0, 0x4] + cmp r2, 0x1 + beq _0818C350 + cmp r2, 0x1 + bgt _0818C310 + cmp r2, 0 + beq _0818C31A + b _0818C42C + .pool +_0818C310: + cmp r2, 0x2 + beq _0818C37A + cmp r2, 0x3 + beq _0818C3F0 + b _0818C42C +_0818C31A: + ldr r1, [r5] + lsls r0, r3, 2 + adds r1, r0, r1 + ldrb r2, [r1] + movs r0, 0xC + ands r0, r2 + cmp r0, 0x4 + bne _0818C33C + movs r0, 0x8 + orrs r0, r2 + strb r0, [r1] + ldrb r2, [r6] + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_0818C33C: + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0, 0x4] + b _0818C42C +_0818C350: + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0818C42C + movs r0, 0 + bl sub_805EB9C + adds r0, r4, 0 + bl move_anim_start_t1 + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x2 + strb r1, [r0, 0x4] + b _0818C42C +_0818C37A: + ldr r0, =gAnimScriptCallback + ldr r0, [r0] + bl _call_via_r0 + ldr r0, =gAnimScriptActive + ldrb r0, [r0] + cmp r0, 0 + bne _0818C42C + movs r0, 0x1 + bl sub_805EB9C + ldr r0, [r7] + ldrb r2, [r6] + ldr r1, [r0] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0818C3C8 + mov r0, r8 + cmp r0, 0x1 + bhi _0818C3C8 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x6 + bl move_anim_start_t4 + ldr r0, [r7] + ldrb r1, [r6] + ldr r0, [r0] + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x9 + negs r0, r0 + ands r0, r2 + strb r0, [r1] +_0818C3C8: + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + strb r1, [r0, 0x4] + b _0818C42C + .pool +_0818C3F0: + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _0818C42C + bl sub_805E394 + ldrb r0, [r6] + lsls r2, r0, 9 + mov r3, r10 + adds r1, r2, r3 + ldrb r1, [r1] + add r2, r9 + ldrb r2, [r2] + lsls r2, 8 + orrs r1, r2 + bl sub_805E94C + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strb r4, [r0, 0x4] + bl RecordedPlayerBufferExecCompleted +_0818C42C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end bx_move_anim_2 + + thumb_func_start sub_818C43C +sub_818C43C: @ 818C43C + push {r4,lr} + ldr r0, =gUnknown_02022E14 + movs r1, 0 + strh r1, [r0] + ldr r0, =gUnknown_02022E16 + strh r1, [r0] + ldr r4, =gActiveBank + ldrb r0, [r4] + lsls r0, 9 + ldr r1, =gUnknown_02023066 + adds r0, r1 + ldrh r0, [r0] + bl battle_pick_message + ldr r0, =gUnknown_02022E2C + movs r1, 0 + bl battle_show_message_maybe + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_818A220 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818C43C + + thumb_func_start sub_818C490 +sub_818C490: @ 818C490 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_818C490 + + thumb_func_start sub_818C49C +sub_818C49C: @ 818C49C + push {lr} + ldr r1, =gBattleCommunication + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + ldrb r1, [r1, 0x4] + lsrs r0, 1 + cmp r1, r0 + bcc _0818C4C6 + ldr r0, =gActiveBank + ldrb r0, [r0] + bl sub_8185054 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x1 + movs r2, 0 + bl dp01_build_cmdbuf_x21_a_bb + bl RecordedPlayerBufferExecCompleted +_0818C4C6: + pop {r0} + bx r0 + .pool + thumb_func_end sub_818C49C + + thumb_func_start sub_818C4D8 +sub_818C4D8: @ 818C4D8 + push {lr} + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 10 + ands r0, r1 + cmp r0, 0 + beq _0818C508 + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_818C49C + str r1, [r0] + b _0818C522 + .pool +_0818C508: + ldr r0, =gActiveBank + ldrb r0, [r0] + bl sub_8185054 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x1 + movs r2, 0 + bl dp01_build_cmdbuf_x21_a_bb + bl RecordedPlayerBufferExecCompleted +_0818C522: + pop {r0} + bx r0 + .pool + thumb_func_end sub_818C4D8 + + thumb_func_start sub_818C52C +sub_818C52C: @ 818C52C + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_818C52C + + thumb_func_start sub_818C538 +sub_818C538: @ 818C538 + push {r4,r5,lr} + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 10 + ands r0, r1 + cmp r0, 0 + beq _0818C560 + bl sub_805D19C + adds r2, r0, 0 + lsls r2, 16 + lsrs r2, 16 + movs r0, 0x1 + movs r1, 0xA + bl dp01_build_cmdbuf_x21_a_bb + b _0818C584 + .pool +_0818C560: + ldr r5, =gActiveBank + ldrb r0, [r5] + bl sub_8185054 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r5] + bl sub_8185054 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 16 + orrs r2, r4 + movs r0, 0x1 + movs r1, 0xA + bl dp01_build_cmdbuf_x21_a_bb +_0818C584: + bl RecordedPlayerBufferExecCompleted + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818C538 + + thumb_func_start sub_818C594 +sub_818C594: @ 818C594 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_818C594 + + thumb_func_start sub_818C5A0 +sub_818C5A0: @ 818C5A0 + push {r4,lr} + ldr r4, =gActiveBank + ldrb r0, [r4] + bl sub_8185054 + ldrb r1, [r4] + ldr r3, =gBattleStruct + ldr r2, [r3] + adds r1, r2 + adds r1, 0x5C + strb r0, [r1] + ldrb r0, [r4] + ldr r1, [r3] + adds r0, r1 + adds r0, 0x5C + ldrb r1, [r0] + movs r0, 0x1 + movs r2, 0 + bl dp01_build_cmdbuf_x22_a_three_bytes + bl RecordedPlayerBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818C5A0 + + thumb_func_start sub_818C5DC +sub_818C5DC: @ 818C5DC + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_818C5DC + + thumb_func_start sub_818C5E8 +sub_818C5E8: @ 818C5E8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + movs r0, 0 + bl load_gfxc_health_bar + ldr r3, =gBattleBufferA + ldr r0, =gActiveBank + mov r9, r0 + ldrb r4, [r0] + lsls r2, r4, 9 + adds r0, r3, 0x2 + adds r0, r2, r0 + ldrb r1, [r0] + adds r3, 0x3 + adds r2, r3 + ldrb r0, [r2] + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + asrs r7, r1, 16 + ldr r0, =0x00007fff + cmp r7, r0 + beq _0818C678 + ldr r6, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r6 + ldrh r0, [r0] + movs r5, 0x64 + muls r0, r5 + ldr r4, =gPlayerParty + adds r0, r4 + movs r1, 0x3A + bl GetMonData + mov r8, r0 + mov r1, r9 + ldrb r0, [r1] + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + muls r0, r5 + adds r0, r4 + movs r1, 0x39 + bl GetMonData + adds r3, r0, 0 + mov r1, r9 + ldrb r0, [r1] + ldr r1, =gUnknown_03005D70 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + mov r2, r8 + bl sub_807294C + b _0818C6B2 + .pool +_0818C678: + ldr r1, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3A + bl GetMonData + adds r2, r0, 0 + mov r1, r9 + ldrb r0, [r1] + ldr r4, =gUnknown_03005D70 + adds r1, r0, r4 + ldrb r1, [r1] + str r7, [sp] + movs r3, 0 + bl sub_807294C + mov r1, r9 + ldrb r0, [r1] + adds r0, r4 + ldrb r0, [r0] + movs r1, 0 + movs r2, 0 + bl heathbar_draw_hp +_0818C6B2: + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_818A0A4 + str r1, [r0] + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818C5E8 + + thumb_func_start sub_818C6E8 +sub_818C6E8: @ 818C6E8 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_818C6E8 + + thumb_func_start sub_818C6F4 +sub_818C6F4: @ 818C6F4 + push {r4,lr} + ldr r4, =gActiveBank + ldrb r0, [r4] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _0818C748 + ldr r0, =gUnknown_03005D70 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + ldr r2, =gBattlePartyID + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gPlayerParty + adds r1, r2 + movs r2, 0x9 + bl healthbar_draw_field_maybe + ldrb r2, [r4] + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_818A58C + str r1, [r0] +_0818C748: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818C6F4 + + thumb_func_start sub_818C76C +sub_818C76C: @ 818C76C + push {r4,r5,lr} + ldr r5, =gActiveBank + ldrb r0, [r5] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _0818C7BC + ldr r4, =gBattleBufferA + ldrb r3, [r5] + lsls r3, 9 + adds r0, r4, 0x1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, 0x2 + adds r1, r3, r1 + ldrb r1, [r1] + adds r2, r4, 0x3 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, 8 + orrs r1, r2 + adds r2, r4, 0x4 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, 16 + orrs r1, r2 + adds r4, 0x5 + adds r3, r4 + ldrb r2, [r3] + lsls r2, 24 + orrs r1, r2 + bl move_anim_start_t2_for_situation + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_818A58C + str r1, [r0] +_0818C7BC: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818C76C + + thumb_func_start sub_818C7D4 +sub_818C7D4: @ 818C7D4 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_818C7D4 + + thumb_func_start sub_818C7E0 +sub_818C7E0: @ 818C7E0 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_818C7E0 + + thumb_func_start sub_818C7EC +sub_818C7EC: @ 818C7EC + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_818C7EC + + thumb_func_start sub_818C7F8 +sub_818C7F8: @ 818C7F8 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_818C7F8 + + thumb_func_start sub_818C804 +sub_818C804: @ 818C804 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_818C804 + + thumb_func_start sub_818C810 +sub_818C810: @ 818C810 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_818C810 + + thumb_func_start sub_818C81C +sub_818C81C: @ 818C81C + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_818C81C + + thumb_func_start sub_818C828 +sub_818C828: @ 818C828 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_818C828 + + thumb_func_start sub_818C834 +sub_818C834: @ 818C834 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_818C834 + + thumb_func_start sub_818C840 +sub_818C840: @ 818C840 + push {lr} + ldr r2, =gUnknown_02022D0C + ldrb r1, [r2] + movs r0, 0x80 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_818C840 + + thumb_func_start sub_818C85C +sub_818C85C: @ 818C85C + push {lr} + ldr r3, =gUnknown_02022D0C + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + movs r1, 0x7F + ands r1, r0 + ldrb r2, [r3] + movs r0, 0x80 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_818C85C + + thumb_func_start sub_818C894 +sub_818C894: @ 818C894 + push {lr} + ldr r2, =gUnknown_02022D0C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_818C894 + + thumb_func_start sub_818C8AC +sub_818C8AC: @ 818C8AC + push {lr} + ldr r3, =gUnknown_02022D0C + ldr r1, [r3] + lsls r1, 24 + lsrs r1, 31 + movs r0, 0x1 + eors r1, r0 + lsls r1, 7 + ldrb r2, [r3] + movs r0, 0x7F + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_818C8AC + + thumb_func_start sub_818C8D4 +sub_818C8D4: @ 818C8D4 + push {r4,lr} + ldr r3, =gSprites + ldr r2, =gBankSpriteIds + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + bge _0818C908 + bl RecordedPlayerBufferExecCompleted + b _0818C932 + .pool +_0818C908: + ldr r1, =gDoingBattleAnim + movs r0, 0x1 + strb r0, [r1] + ldrb r0, [r4] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0 + strh r1, [r0, 0x30] + ldrb r0, [r4] + bl sub_80769F4 + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_818A238 + str r1, [r0] +_0818C932: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818C8D4 + + thumb_func_start sub_818C944 +sub_818C944: @ 818C944 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_818C944 + + thumb_func_start sub_818C950 +sub_818C950: @ 818C950 + push {r4,lr} + ldr r4, =gActiveBank + ldrb r0, [r4] + bl GetBankSide + lsls r0, 24 + movs r3, 0x3F + cmp r0, 0 + bne _0818C964 + movs r3, 0xC0 +_0818C964: + ldr r2, =gBattleBufferA + ldrb r1, [r4] + lsls r1, 9 + adds r0, r2, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + lsls r1, r3, 24 + asrs r1, 24 + bl PlaySE12WithPanning + bl RecordedPlayerBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818C950 + + thumb_func_start sub_818C994 +sub_818C994: @ 818C994 + push {r4,r5,lr} + ldr r4, =gBattleBufferA + ldr r5, =gActiveBank + ldrb r0, [r5] + lsls r3, r0, 9 + adds r0, r4, 0x3 + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, 0 + beq _0818C9D0 + bl sub_805EA60 + ldrb r1, [r5] + lsls r1, 9 + adds r0, r4, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, r4, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + bl PlayBGM + b _0818C9E4 + .pool +_0818C9D0: + adds r0, r4, 0x1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, 0x2 + adds r1, r3, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + bl PlayFanfare +_0818C9E4: + bl RecordedPlayerBufferExecCompleted + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_818C994 + + thumb_func_start sub_818C9F0 +sub_818C9F0: @ 818C9F0 + push {lr} + ldr r1, =gBattlePartyID + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x19 + negs r1, r1 + movs r2, 0x5 + bl PlayCry3 + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_818C9F0 + + thumb_func_start dp01t_2E_2_battle_intro +dp01t_2E_2_battle_intro: @ 818CA30 + push {lr} + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + bl battle_intro_launch + ldr r2, =gUnknown_020243FC + ldrh r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r2] + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end dp01t_2E_2_battle_intro + + thumb_func_start sub_818CA64 +sub_818CA64: @ 818CA64 + push {r4-r6,lr} + ldr r5, =gBankSpriteIds + ldr r6, =gActiveBank + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + bl oamt_add_pos2_onto_pos1 + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x32 + strh r1, [r0, 0x2E] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =0x0000ffd8 + strh r1, [r0, 0x32] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x22] + strh r1, [r0, 0x36] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =sub_80A6EEC + str r1, [r0] + ldrb r2, [r6] + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r2, [r0, 0x38] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =sub_805CC00 + bl oamt_set_x3A_32 + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x1 + bl StartSpriteAnim + ldr r0, =0x0000d6f9 + bl AllocSpritePalette + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 18 + ands r0, r1 + cmp r0, 0 + beq _0818CB54 + ldr r4, =gUnknown_020229E8 + ldrb r0, [r6] + bl sub_806D864 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r0, [r1, 0x13] + b _0818CB5A + .pool +_0818CB54: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r0, [r0, 0x8] +_0818CB5A: + ldr r1, =gTrainerBackPicPaletteTable + lsls r0, 3 + adds r0, r1 + ldr r0, [r0] + lsls r4, r5, 4 + movs r2, 0x80 + lsls r2, 1 + adds r1, r4, r2 + movs r2, 0x20 + bl LoadCompressedPalette + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r5, =gActiveBank + ldrb r0, [r5] + adds r0, r1 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r4 + strb r0, [r1, 0x5] + ldr r0, =sub_818CC24 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r4, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r4 + ldrb r0, [r5] + strh r0, [r1, 0x8] + ldr r3, =gUnknown_020244D0 + ldr r0, [r3] + ldrb r2, [r5] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0818CBD4 + ldr r0, =gUnknown_020244B4 + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + ldr r1, =sub_8073C30 + str r1, [r0] +_0818CBD4: + ldr r0, [r3] + ldr r2, [r0, 0x8] + ldrb r0, [r2, 0x9] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x9] + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =nullsub_120 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818CA64 + + thumb_func_start sub_818CC24 +sub_818CC24: @ 818CC24 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r1, =gTasks + lsls r0, 2 + add r0, r8 + lsls r0, 3 + adds r1, r0, r1 + ldrh r2, [r1, 0xA] + movs r3, 0xA + ldrsh r0, [r1, r3] + cmp r0, 0x17 + bgt _0818CC50 + adds r0, r2, 0x1 + strh r0, [r1, 0xA] + b _0818CD0C + .pool +_0818CC50: + ldr r7, =gActiveBank + ldrb r0, [r7] + mov r9, r0 + ldrh r0, [r1, 0x8] + strb r0, [r7] + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _0818CC70 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0818CCA0 +_0818CC70: + ldr r0, =gBattleBufferA + ldrb r1, [r7] + lsls r2, r1, 9 + adds r0, 0x1 + adds r2, r0 + ldr r0, =gBattlePartyID + lsls r1, 1 + adds r1, r0 + ldrh r0, [r1] + strb r0, [r2] + ldrb r0, [r7] + movs r1, 0 + bl sub_818BA6C + b _0818CCF4 + .pool +_0818CCA0: + ldr r4, =gBattleBufferA + ldrb r0, [r7] + lsls r1, r0, 9 + adds r4, 0x1 + adds r1, r4 + ldr r5, =gBattlePartyID + lsls r0, 1 + adds r0, r5 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, 0 + bl sub_818BA6C + ldrb r0, [r7] + movs r6, 0x2 + eors r0, r6 + strb r0, [r7] + ldrb r0, [r7] + lsls r1, r0, 9 + adds r1, r4 + lsls r0, 1 + adds r0, r5 + ldrh r0, [r0] + strb r0, [r1] + ldrb r1, [r7] + lsls r0, r1, 1 + adds r0, r5 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, =gPlayerParty + adds r0, r2 + bl sub_805DD7C + ldrb r0, [r7] + movs r1, 0 + bl sub_818BA6C + ldrb r0, [r7] + eors r0, r6 + strb r0, [r7] +_0818CCF4: + ldr r1, =gBattleBankFunc + ldr r2, =gActiveBank + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8189D40 + str r1, [r0] + mov r3, r9 + strb r3, [r2] + mov r0, r8 + bl DestroyTask +_0818CD0C: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818CC24 + + thumb_func_start sub_818CD30 +sub_818CD30: @ 818CD30 + push {r4-r6,lr} + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0818CD60 + adds r0, r2, 0 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _0818CD60 + bl RecordedPlayerBufferExecCompleted + b _0818CDD4 + .pool +_0818CD60: + ldr r6, =gUnknown_020244D0 + ldr r0, [r6] + ldr r5, =gActiveBank + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + ldrb r0, [r5] + lsls r3, r0, 9 + ldr r4, =gUnknown_02023068 + adds r1, r3, r4 + subs r2, r4, 0x3 + adds r2, r3, r2 + ldrb r2, [r2] + subs r4, 0x2 + adds r3, r4 + ldrb r3, [r3] + bl sub_80735DC + ldr r2, =gUnknown_020244B4 + ldrb r1, [r5] + adds r1, r2 + movs r3, 0 + strb r0, [r1] + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strb r3, [r0, 0x5] + ldrb r2, [r5] + lsls r0, r2, 9 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _0818CDC8 + ldr r0, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + movs r1, 0x5D + strb r1, [r0, 0x5] +_0818CDC8: + ldr r0, =gBattleBankFunc + ldrb r1, [r5] + lsls r1, 2 + adds r1, r0 + ldr r0, =bx_increment_dp11b_field_5_till_x60_then_resume + str r0, [r1] +_0818CDD4: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818CD30 + + thumb_func_start bx_increment_dp11b_field_5_till_x60_then_resume +bx_increment_dp11b_field_5_till_x60_then_resume: @ 818CDF4 + push {r4,lr} + ldr r4, =gUnknown_020244D0 + ldr r0, [r4] + ldr r3, =gActiveBank + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x5] + adds r2, r1, 0x1 + strb r2, [r0, 0x5] + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0x5C + bls _0818CE2C + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strb r1, [r0, 0x5] + bl RecordedPlayerBufferExecCompleted +_0818CE2C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end bx_increment_dp11b_field_5_till_x60_then_resume + + thumb_func_start sub_818CE3C +sub_818CE3C: @ 818CE3C + push {lr} + ldr r0, =gUnknown_020244D0 + ldr r1, [r0] + ldr r0, =gActiveBank + ldrb r3, [r0] + ldr r1, [r1, 0x4] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0818CE6E + ldr r2, =gTasks + ldr r0, =gUnknown_020244B4 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, =sub_8073C30 + str r1, [r0] +_0818CE6E: + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_818CE3C + + thumb_func_start sub_818CE8C +sub_818CE8C: @ 818CE8C + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_818CE8C + + thumb_func_start sub_818CE98 +sub_818CE98: @ 818CE98 + push {r4,lr} + ldr r4, =gActiveBank + ldrb r0, [r4] + bl sub_80A6A90 + lsls r0, 24 + cmp r0, 0 + beq _0818CEDE + ldr r3, =gSprites + ldr r0, =gBankSpriteIds + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + ldr r0, =gBattleBufferA + lsls r1, 9 + adds r0, 0x1 + adds r1, r0 + adds r2, 0x3E + movs r0, 0x1 + ldrb r1, [r1] + ands r1, r0 + lsls r1, 2 + ldrb r3, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + bl sub_805E408 +_0818CEDE: + bl RecordedPlayerBufferExecCompleted + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818CE98 + + thumb_func_start sub_818CEF8 +sub_818CEF8: @ 818CEF8 + push {r4-r6,lr} + sub sp, 0x4 + ldr r6, =gActiveBank + ldrb r0, [r6] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _0818CF50 + ldr r5, =gBattleBufferA + ldrb r2, [r6] + lsls r1, r2, 9 + adds r0, r5, 0x1 + adds r0, r1, r0 + ldrb r3, [r0] + adds r0, r5, 0x2 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, 0x3 + adds r1, r5 + ldrb r0, [r1] + lsls r0, 8 + orrs r4, r0 + str r4, [sp] + adds r0, r2, 0 + adds r1, r2, 0 + bl move_anim_start_t3 + lsls r0, 24 + cmp r0, 0 + beq _0818CF44 + bl RecordedPlayerBufferExecCompleted + b _0818CF50 + .pool +_0818CF44: + ldr r0, =gBattleBankFunc + ldrb r1, [r6] + lsls r1, 2 + adds r1, r0 + ldr r0, =sub_818A5BC + str r0, [r1] +_0818CF50: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818CEF8 + + thumb_func_start sub_818CF60 +sub_818CF60: @ 818CF60 + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_818CF60 + + thumb_func_start sub_818CF6C +sub_818CF6C: @ 818CF6C + push {lr} + bl RecordedPlayerBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_818CF6C + + thumb_func_start sub_818CF78 +sub_818CF78: @ 818CF78 + push {r4,lr} + ldr r2, =gBattleOutcome + ldr r1, =gBattleBufferA + ldr r4, =gActiveBank + ldrb r0, [r4] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + movs r0, 0x5 + bl FadeOutMapMusic + movs r0, 0x3 + bl BeginFastPaletteFade + bl RecordedPlayerBufferExecCompleted + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_80587B0 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818CF78 + + thumb_func_start nullsub_121 +nullsub_121: @ 818CFC4 + bx lr + thumb_func_end nullsub_121 + + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_controller_wally.s b/asm/battle_controller_wally.s new file mode 100644 index 0000000000..895b0711c6 --- /dev/null +++ b/asm/battle_controller_wally.s @@ -0,0 +1,4787 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start nullsub_117 +nullsub_117: @ 81683B4 + bx lr + thumb_func_end nullsub_117 + + thumb_func_start SetBankFuncToWallyBufferRunCommand +SetBankFuncToWallyBufferRunCommand: @ 81683B8 + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =WallyBufferRunCommand + str r1, [r0] + ldr r2, =gBattleStruct + ldr r0, [r2] + adds r0, 0x94 + movs r1, 0 + strb r1, [r0] + ldr r0, [r2] + adds r0, 0x95 + strb r1, [r0] + ldr r0, [r2] + adds r0, 0x96 + strb r1, [r0] + ldr r0, [r2] + adds r0, 0x97 + strb r1, [r0] + bx lr + .pool + thumb_func_end SetBankFuncToWallyBufferRunCommand + + thumb_func_start WallyBufferRunCommand +WallyBufferRunCommand: @ 81683F4 + push {lr} + ldr r2, =gBattleExecBuffer + ldr r1, =gBitTable + ldr r0, =gActiveBank + ldrb r3, [r0] + lsls r0, r3, 2 + adds r0, r1 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08168440 + ldr r0, =gBattleBufferA + lsls r1, r3, 9 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0x38 + bhi _0816843C + ldr r0, =gWallyBufferCommands + ldrb r1, [r1] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + bl _call_via_r0 + b _08168440 + .pool +_0816843C: + bl WallyBufferExecCompleted +_08168440: + pop {r0} + bx r0 + thumb_func_end WallyBufferRunCommand + + thumb_func_start sub_8168444 +sub_8168444: @ 8168444 + push {r4,r5,lr} + ldr r1, =gBattleStruct + ldr r0, [r1] + adds r0, 0x94 + ldrb r0, [r0] + adds r4, r1, 0 + cmp r0, 0x5 + bls _08168456 + b _08168564 +_08168456: + lsls r0, 2 + ldr r1, =_08168468 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08168468: + .4byte _08168480 + .4byte _08168492 + .4byte _081684B0 + .4byte _081684CE + .4byte _08168508 + .4byte _08168540 +_08168480: + ldr r0, [r4] + adds r0, 0x96 + movs r1, 0x40 + strb r1, [r0] + ldr r1, [r4] + adds r1, 0x94 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_08168492: + ldr r1, [r4] + adds r1, 0x96 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _08168564 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + movs r1, 0 + b _081684E4 +_081684B0: + ldr r1, [r4] + adds r1, 0x96 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _08168564 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + movs r1, 0 + b _081684E4 +_081684CE: + ldr r1, [r4] + adds r1, 0x96 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _08168564 + movs r0, 0x1 + movs r1, 0x9 +_081684E4: + movs r2, 0 + bl dp01_build_cmdbuf_x21_a_bb + bl WallyBufferExecCompleted + ldr r1, [r4] + adds r1, 0x94 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r4] + adds r0, 0x95 + strb r5, [r0] + ldr r0, [r4] + adds r0, 0x96 + movs r1, 0x40 + strb r1, [r0] + b _08168564 +_08168508: + ldr r1, [r4] + adds r1, 0x96 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bne _08168564 + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_8059CF8 + movs r0, 0x1 + movs r1, 0 + bl sub_8059CB4 + ldr r0, [r4] + adds r0, 0x96 + movs r1, 0x40 + strb r1, [r0] + ldr r1, [r4] + adds r1, 0x94 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08168564 +_08168540: + ldr r1, [r4] + adds r1, 0x96 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bne _08168564 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0 + bl dp01_build_cmdbuf_x21_a_bb + bl WallyBufferExecCompleted +_08168564: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8168444 + + thumb_func_start sub_816856C +sub_816856C: @ 816856C + push {lr} + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _08168590 + bl WallyBufferExecCompleted +_08168590: + pop {r0} + bx r0 + .pool + thumb_func_end sub_816856C + + thumb_func_start sub_81685A4 +sub_81685A4: @ 81685A4 + push {lr} + movs r0, 0 + bl IsTextPrinterActive + lsls r0, 16 + cmp r0, 0 + bne _081685B6 + bl WallyBufferExecCompleted +_081685B6: + pop {r0} + bx r0 + thumb_func_end sub_81685A4 + + thumb_func_start bx_wait_t5 +bx_wait_t5: @ 81685BC + push {lr} + ldr r0, =gDoingBattleAnim + ldrb r0, [r0] + cmp r0, 0 + bne _081685CA + bl WallyBufferExecCompleted +_081685CA: + pop {r0} + bx r0 + .pool + thumb_func_end bx_wait_t5 + + thumb_func_start sub_81685D4 +sub_81685D4: @ 81685D4 + push {lr} + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081685FC + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8168610 + str r1, [r0] + bl nullsub_35 + bl FreeAllWindowBuffers + bl DoWallyTutorialBagMenu +_081685FC: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81685D4 + + thumb_func_start sub_8168610 +sub_8168610: @ 8168610 + push {lr} + ldr r0, =gMain + ldr r1, [r0, 0x4] + ldr r0, =sub_8038420 + cmp r1, r0 + bne _08168636 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08168636 + ldr r0, =gUnknown_0203CE7C + ldrh r1, [r0] + movs r0, 0x1 + bl dp01_build_cmdbuf_x23_aa_0 + bl WallyBufferExecCompleted +_08168636: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8168610 + + thumb_func_start sub_816864C +sub_816864C: @ 816864C + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r4, =gUnknown_020244D0 + ldr r0, [r4] + ldr r5, =gActiveBank + ldrb r2, [r5] + ldr r1, [r0, 0x4] + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r7, 0x88 + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + bne _08168684 + ldr r0, =gBattlePartyID + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r1, r0 + adds r0, r2, 0 + bl sub_8172EF0 +_08168684: + ldr r1, [r4] + ldrb r0, [r5] + movs r6, 0x2 + adds r2, r6, 0 + eors r2, r0 + ldr r1, [r1, 0x4] + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + bne _081686B6 + ldr r0, =gBattlePartyID + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r1, r0 + adds r0, r2, 0 + bl sub_8172EF0 +_081686B6: + ldr r0, [r4] + ldrb r2, [r5] + ldr r3, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0] + movs r4, 0x8 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _081686D2 + b _081687DC +_081686D2: + adds r1, r2, 0 + eors r1, r6 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0] + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + bne _081687DC + ldr r0, =gSprites + mov r8, r0 + ldr r7, =gUnknown_03005D7C + adds r0, r2, r7 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + mov r4, r8 + adds r4, 0x1C + adds r0, r4 + ldr r3, [r0] + ldr r0, =SpriteCallbackDummy + cmp r3, r0 + bne _081687DC + ldr r0, =gBankSpriteIds + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r0, [r0] + cmp r0, r3 + bne _081687DC + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _0816877A + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0816877A + ldrb r0, [r5] + eors r0, r6 + adds r0, r7 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + bl DestroySprite + ldr r4, =gUnknown_03005D70 + ldrb r0, [r5] + adds r1, r6, 0 + eors r1, r0 + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, =gBattlePartyID + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gPlayerParty + adds r1, r2 + movs r2, 0 + bl healthbar_draw_field_maybe + ldrb r0, [r5] + eors r0, r6 + bl sub_8076918 + ldrb r0, [r5] + eors r0, r6 + adds r0, r4 + ldrb r0, [r0] + bl sub_80729D0 +_0816877A: + ldr r1, =gUnknown_03005D7C + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + bl DestroySprite + ldr r5, =gUnknown_03005D70 + ldrb r1, [r4] + adds r0, r1, r5 + ldrb r0, [r0] + ldr r2, =gBattlePartyID + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gPlayerParty + adds r1, r2 + movs r2, 0 + bl healthbar_draw_field_maybe + ldrb r0, [r4] + bl sub_8076918 + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + bl sub_80729D0 + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r2, [r0, 0x8] + ldrb r1, [r2, 0x9] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x9] + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8168818 + str r1, [r0] +_081687DC: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_816864C + + thumb_func_start sub_8168818 +sub_8168818: @ 8168818 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r4, 0 + ldr r2, =gSprites + ldr r0, =gUnknown_03005D70 + ldr r1, =gActiveBank + mov r8, r1 + ldrb r3, [r1] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _08168842 + movs r4, 0x1 +_08168842: + cmp r4, 0 + beq _08168904 + ldr r7, =gUnknown_020244D0 + ldr r0, [r7] + ldr r4, [r0, 0x4] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r2, r0, r4 + ldrb r1, [r2, 0x1] + movs r5, 0x1 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _08168904 + movs r6, 0x2 + adds r1, r6, 0 + eors r1, r3 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0, 0x1] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _08168904 + ldrb r1, [r2] + movs r3, 0x7F + adds r0, r3, 0 + ands r0, r1 + strb r0, [r2] + ldr r0, [r7] + mov r1, r8 + ldrb r2, [r1] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r4, 0x2 + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + strb r0, [r1, 0x1] + ldr r2, [r7] + mov r1, r8 + ldrb r0, [r1] + adds r1, r6, 0 + eors r1, r0 + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + ands r3, r1 + strb r3, [r0] + ldr r2, [r7] + mov r1, r8 + ldrb r0, [r1] + adds r1, r6, 0 + eors r1, r0 + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x1] + ands r4, r1 + strb r4, [r0, 0x1] + ldr r4, =0x000027f9 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag + ldr r0, =c3_0802FDF4 + movs r1, 0xA + bl CreateTask + ldr r2, =gBattlePartyID + mov r0, r8 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, =gPlayerParty + adds r0, r2 + bl sub_805E990 + bl WallyBufferExecCompleted +_08168904: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8168818 + + thumb_func_start sub_8168934 +sub_8168934: @ 8168934 + push {r4-r6,lr} + ldr r5, =gActiveBank + ldrb r0, [r5] + ldr r6, =gUnknown_03005D70 + adds r1, r0, r6 + ldrb r1, [r1] + movs r2, 0 + movs r3, 0 + bl sub_8074AA0 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r5] + adds r0, r6 + ldrb r0, [r0] + bl sub_80729D0 + lsls r4, 16 + asrs r1, r4, 16 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _0816897C + ldrb r0, [r5] + adds r0, r6 + ldrb r0, [r0] + movs r2, 0 + bl heathbar_draw_hp + b _08168996 + .pool +_0816897C: + ldr r2, =gBattlePartyID + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, =gPlayerParty + adds r0, r2 + bl sub_805E990 + bl WallyBufferExecCompleted +_08168996: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8168934 + + thumb_func_start bx_blink_t5 +bx_blink_t5: @ 81689A4 + push {r4,lr} + ldr r1, =gBankSpriteIds + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + ldr r2, =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, r0, r2 + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0x20 + bne _081689F0 + movs r3, 0 + movs r0, 0 + strh r0, [r4, 0x30] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + subs r0, 0x5 + ands r0, r1 + strb r0, [r2] + ldr r0, =gDoingBattleAnim + strb r3, [r0] + bl WallyBufferExecCompleted + b _08168A1A + .pool +_081689F0: + ldrh r0, [r4, 0x30] + movs r1, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08168A14 + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_08168A14: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] +_08168A1A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end bx_blink_t5 + + thumb_func_start sub_8168A20 +sub_8168A20: @ 8168A20 + push {r4-r6,lr} + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r6, =gActiveBank + ldrb r2, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08168A74 + ldr r5, =gBankSpriteIds + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + ldr r1, =gUnknown_03005D70 + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + bl sub_8072984 + bl WallyBufferExecCompleted +_08168A74: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8168A20 + + thumb_func_start sub_8168A90 +sub_8168A90: @ 8168A90 + push {lr} + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _08168AB4 + bl WallyBufferExecCompleted +_08168AB4: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8168A90 + + thumb_func_start sub_8168AC8 +sub_8168AC8: @ 8168AC8 + push {lr} + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _08168AEA + bl WallyBufferExecCompleted +_08168AEA: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8168AC8 + + thumb_func_start WallyBufferExecCompleted +WallyBufferExecCompleted: @ 8168AF8 + push {r4,lr} + sub sp, 0x4 + ldr r1, =gBattleBankFunc + ldr r4, =gActiveBank + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =WallyBufferRunCommand + str r1, [r0] + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08168B4C + bl link_get_multiplayer_id + mov r1, sp + strb r0, [r1] + movs r0, 0x2 + movs r1, 0x4 + mov r2, sp + bl PrepareBufferDataTransferLink + ldr r1, =gBattleBufferA + ldrb r0, [r4] + lsls r0, 9 + adds r0, r1 + movs r1, 0x38 + strb r1, [r0] + b _08168B5E + .pool +_08168B4C: + ldr r2, =gBattleExecBuffer + ldr r1, =gBitTable + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + ldr r0, [r2] + bics r0, r1 + str r0, [r2] +_08168B5E: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end WallyBufferExecCompleted + + thumb_func_start sub_8168B70 +sub_8168B70: @ 8168B70 + push {lr} + ldr r0, =gUnknown_020244D0 + ldr r2, [r0] + ldr r0, =gActiveBank + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _08168B92 + bl WallyBufferExecCompleted +_08168B92: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8168B70 + + thumb_func_start dp01t_00_5_getattr +dp01t_00_5_getattr: @ 8168BA0 + push {r4-r6,lr} + sub sp, 0x100 + movs r6, 0 + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + bne _08168BD8 + ldr r0, =gBattlePartyID + lsls r1, r2, 1 + adds r1, r0 + ldrb r0, [r1] + mov r1, sp + bl sub_8168C14 + adds r6, r0, 0 + b _08168BFA + .pool +_08168BD8: + ldrb r4, [r1] + movs r5, 0 +_08168BDC: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _08168BF2 + lsls r0, r5, 24 + lsrs r0, 24 + mov r2, sp + adds r1, r2, r6 + bl sub_8168C14 + adds r6, r0 +_08168BF2: + lsrs r4, 1 + adds r5, 0x1 + cmp r5, 0x5 + ble _08168BDC +_08168BFA: + lsls r1, r6, 16 + lsrs r1, 16 + movs r0, 0x1 + mov r2, sp + bl dp01_build_cmdbuf_x1D_1D_numargs_varargs + bl WallyBufferExecCompleted + add sp, 0x100 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end dp01t_00_5_getattr + + thumb_func_start sub_8168C14 +sub_8168C14: @ 8168C14 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x90 + adds r7, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0 + ldr r2, =gBattleBufferA + ldr r3, =gActiveBank + ldrb r0, [r3] + lsls r0, 9 + adds r1, r2, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x3B + bls _08168C3E + bl _081693AA +_08168C3E: + lsls r0, 2 + ldr r1, =_08168C54 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08168C54: + .4byte _08168D44 + .4byte _08168F68 + .4byte _08168F78 + .4byte _08168F88 + .4byte _08168FF0 + .4byte _08168FF0 + .4byte _08168FF0 + .4byte _08168FF0 + .4byte _0816900C + .4byte _08169048 + .4byte _08169048 + .4byte _08169048 + .4byte _08169048 + .4byte _081693AA + .4byte _081693AA + .4byte _081693AA + .4byte _081693AA + .4byte _08169064 + .4byte _08169074 + .4byte _081690A4 + .4byte _081690B4 + .4byte _081690C4 + .4byte _081690D4 + .4byte _081690E4 + .4byte _081690F4 + .4byte _08169104 + .4byte _08169114 + .4byte _08169124 + .4byte _08169134 + .4byte _08169144 + .4byte _08169154 + .4byte _08169164 + .4byte _081691B4 + .4byte _081691C4 + .4byte _081691D4 + .4byte _081691E4 + .4byte _081691F4 + .4byte _08169204 + .4byte _08169214 + .4byte _08169224 + .4byte _08169234 + .4byte _08169268 + .4byte _08169278 + .4byte _08169288 + .4byte _08169298 + .4byte _081692A8 + .4byte _081692B8 + .4byte _081692C8 + .4byte _081692D8 + .4byte _081692F8 + .4byte _08169308 + .4byte _08169318 + .4byte _08169328 + .4byte _08169338 + .4byte _08169348 + .4byte _08169358 + .4byte _08169368 + .4byte _08169378 + .4byte _08169388 + .4byte _08169398 +_08168D44: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + mov r1, sp + strh r0, [r1] + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2E] + movs r6, 0 + add r0, sp, 0x24 + mov r9, r0 + movs r1, 0x3B + add r1, sp + mov r10, r1 + mov r2, sp + adds r2, 0x2B + str r2, [sp, 0x80] + mov r0, sp + adds r0, 0x2A + str r0, [sp, 0x7C] + mov r1, sp + adds r1, 0x68 + str r1, [sp, 0x8C] + adds r2, 0x5 + str r2, [sp, 0x84] + adds r0, 0x12 + str r0, [sp, 0x88] + mov r8, r4 + add r4, sp, 0xC +_08168D90: + adds r1, r6, 0 + adds r1, 0xD + mov r0, r8 + bl GetMonData + strh r0, [r4] + adds r1, r6, 0 + adds r1, 0x11 + mov r0, r8 + bl GetMonData + mov r2, r9 + adds r1, r2, r6 + strb r0, [r1] + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _08168D90 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x15 + bl GetMonData + mov r1, r10 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x20 + bl GetMonData + ldr r2, [sp, 0x80] + strb r0, [r2] + adds r0, r4, 0 + movs r1, 0x19 + bl GetMonData + str r0, [sp, 0x44] + adds r0, r4, 0 + movs r1, 0x27 + bl GetMonData + mov r3, sp + movs r5, 0x1F + ands r0, r5 + ldrb r2, [r3, 0x14] + movs r1, 0x20 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x14] + adds r0, r4, 0 + movs r1, 0x28 + bl GetMonData + mov r3, sp + movs r6, 0x1F + ands r0, r6 + lsls r0, 5 + ldrh r2, [r3, 0x14] + ldr r1, =0xfffffc1f + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x14] + adds r0, r4, 0 + movs r1, 0x29 + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, 2 + ldrb r2, [r3, 0x15] + movs r1, 0x7D + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x15] + adds r0, r4, 0 + movs r1, 0x2A + bl GetMonData + movs r1, 0x1F + ands r1, r0 + lsls r1, 15 + ldr r0, [sp, 0x14] + ldr r2, =0xfff07fff + ands r0, r2 + orrs r0, r1 + str r0, [sp, 0x14] + adds r0, r4, 0 + movs r1, 0x2B + bl GetMonData + mov r3, sp + ands r0, r6 + lsls r0, 4 + ldrh r2, [r3, 0x16] + ldr r1, =0xfffffe0f + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x16] + adds r0, r4, 0 + movs r1, 0x2C + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, 1 + ldrb r2, [r3, 0x17] + movs r1, 0x3F + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + str r0, [sp, 0x48] + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData + str r0, [sp, 0x4C] + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + ldr r1, [sp, 0x7C] + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + mov r1, sp + strh r0, [r1, 0x28] + adds r0, r4, 0 + movs r1, 0x3A + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2C] + adds r0, r4, 0 + movs r1, 0x3B + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2] + adds r0, r4, 0 + movs r1, 0x3C + bl GetMonData + mov r1, sp + strh r0, [r1, 0x4] + adds r0, r4, 0 + movs r1, 0x3D + bl GetMonData + mov r1, sp + strh r0, [r1, 0x6] + adds r0, r4, 0 + movs r1, 0x3E + bl GetMonData + mov r1, sp + strh r0, [r1, 0x8] + adds r0, r4, 0 + movs r1, 0x3F + bl GetMonData + mov r1, sp + strh r0, [r1, 0xA] + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + mov r3, sp + movs r1, 0x1 + ands r0, r1 + lsls r0, 6 + ldrb r2, [r3, 0x17] + movs r1, 0x41 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0x2E + bl GetMonData + mov r3, sp + lsls r0, 7 + ldrb r2, [r3, 0x17] + movs r1, 0x7F + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0x1 + bl GetMonData + str r0, [sp, 0x54] + adds r0, r4, 0 + movs r1, 0x2 + ldr r2, [sp, 0x8C] + bl GetMonData + ldr r0, [sp, 0x84] + ldr r1, [sp, 0x8C] + bl StringCopy10 + adds r0, r4, 0 + movs r1, 0x7 + ldr r2, [sp, 0x88] + bl GetMonData + mov r2, sp + movs r6, 0 +_08168F48: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, 0x1 + cmp r6, 0x57 + bls _08168F48 + b _081693AA + .pool +_08168F68: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xB + b _081692E2 + .pool +_08168F78: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xC + b _081692E2 + .pool +_08168F88: + movs r6, 0 + add r2, sp, 0x58 + mov r9, r2 + add r0, sp, 0x60 + mov r10, r0 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r4, r1, r0 + mov r8, r9 +_08168F9E: + adds r1, r6, 0 + adds r1, 0xD + adds r0, r4, 0 + bl GetMonData + mov r1, r8 + strh r0, [r1] + adds r1, r6, 0 + adds r1, 0x11 + adds r0, r4, 0 + bl GetMonData + mov r2, r10 + adds r1, r2, r6 + strb r0, [r1] + movs r0, 0x2 + add r8, r0 + adds r6, 0x1 + cmp r6, 0x3 + ble _08168F9E + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x15 + bl GetMonData + mov r1, r9 + strb r0, [r1, 0xC] + mov r2, r9 + movs r6, 0 +_08168FDC: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, 0x1 + cmp r6, 0xF + bls _08168FDC + b _081693AA + .pool +_08168FF0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldrb r1, [r3] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + adds r1, 0x9 + b _081692E2 + .pool +_0816900C: + movs r6, 0 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r2, =gPlayerParty + mov r8, r2 +_08169018: + adds r1, r6, 0 + adds r1, 0x11 + mov r2, r8 + adds r0, r4, r2 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, 0x1 + cmp r6, 0x3 + ble _08169018 + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x15 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, 0x1 + b _081693AA + .pool +_08169048: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldrb r1, [r3] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + adds r1, 0x8 + b _081693A2 + .pool +_08169064: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1 + b _0816907E + .pool +_08169074: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x19 +_0816907E: + bl GetMonData + adds r1, r0, 0 + strb r1, [r7] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r0, 16 + strb r0, [r7, 0x2] + movs r6, 0x3 + b _081693AA + .pool +_081690A4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1A + b _081693A2 + .pool +_081690B4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1B + b _081693A2 + .pool +_081690C4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1C + b _081693A2 + .pool +_081690D4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1D + b _081693A2 + .pool +_081690E4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1E + b _081693A2 + .pool +_081690F4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1F + b _081693A2 + .pool +_08169104: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x20 + b _081693A2 + .pool +_08169114: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x22 + b _081693A2 + .pool +_08169124: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x23 + b _081693A2 + .pool +_08169134: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x24 + b _081693A2 + .pool +_08169144: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x25 + b _081693A2 + .pool +_08169154: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x26 + b _081693A2 + .pool +_08169164: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x27 + bl GetMonData + strb r0, [r7] + adds r0, r4, 0 + movs r1, 0x28 + bl GetMonData + strb r0, [r7, 0x1] + adds r0, r4, 0 + movs r1, 0x29 + bl GetMonData + strb r0, [r7, 0x2] + adds r0, r4, 0 + movs r1, 0x2A + bl GetMonData + strb r0, [r7, 0x3] + adds r0, r4, 0 + movs r1, 0x2B + bl GetMonData + strb r0, [r7, 0x4] + adds r0, r4, 0 + movs r1, 0x2C + bl GetMonData + strb r0, [r7, 0x5] + movs r6, 0x6 + b _081693AA + .pool +_081691B4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x27 + b _081693A2 + .pool +_081691C4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x28 + b _081693A2 + .pool +_081691D4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x29 + b _081693A2 + .pool +_081691E4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x2A + b _081693A2 + .pool +_081691F4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x2B + b _081693A2 + .pool +_08169204: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x2C + b _081693A2 + .pool +_08169214: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0 + b _0816923E + .pool +_08169224: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x9 + b _081692E2 + .pool +_08169234: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x37 +_0816923E: + bl GetMonData + adds r1, r0, 0 + strb r1, [r7] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r0, 16 + strb r0, [r7, 0x2] + lsrs r0, r1, 24 + strb r0, [r7, 0x3] + movs r6, 0x4 + b _081693AA + .pool +_08169268: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x38 + b _081693A2 + .pool +_08169278: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x39 + b _081692E2 + .pool +_08169288: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3A + b _081692E2 + .pool +_08169298: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3B + b _081692E2 + .pool +_081692A8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3C + b _081692E2 + .pool +_081692B8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3D + b _081692E2 + .pool +_081692C8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3E + b _081692E2 + .pool +_081692D8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3F +_081692E2: + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + strb r0, [r7] + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r6, 0x2 + b _081693AA + .pool +_081692F8: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x16 + b _081693A2 + .pool +_08169308: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x17 + b _081693A2 + .pool +_08169318: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x18 + b _081693A2 + .pool +_08169328: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x21 + b _081693A2 + .pool +_08169338: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x2F + b _081693A2 + .pool +_08169348: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x30 + b _081693A2 + .pool +_08169358: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x32 + b _081693A2 + .pool +_08169368: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x33 + b _081693A2 + .pool +_08169378: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x34 + b _081693A2 + .pool +_08169388: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x35 + b _081693A2 + .pool +_08169398: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x36 +_081693A2: + bl GetMonData + strb r0, [r7] + movs r6, 0x1 +_081693AA: + adds r0, r6, 0 + add sp, 0x90 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8168C14 + + thumb_func_start sub_81693C0 +sub_81693C0: @ 81693C0 + push {lr} + bl sub_805A614 + pop {r0} + bx r0 + thumb_func_end sub_81693C0 + + thumb_func_start sub_81693CC +sub_81693CC: @ 81693CC + push {r4,r5,lr} + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + bne _081693FC + ldr r0, =gBattlePartyID + lsls r1, r2, 1 + adds r1, r0 + ldrb r0, [r1] + bl sub_8169424 + b _0816941A + .pool +_081693FC: + ldrb r4, [r1] + movs r5, 0 +_08169400: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _0816940E + adds r0, r5, 0 + bl sub_8169424 +_0816940E: + lsrs r4, 1 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _08169400 +_0816941A: + bl WallyBufferExecCompleted + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81693CC + + thumb_func_start sub_8169424 +sub_8169424: @ 8169424 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x34 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 9 + ldr r2, =gUnknown_02023067 + adds r3, r0, r2 + adds r6, r3, 0 + subs r1, r2, 0x2 + adds r0, r1 + ldrb r0, [r0] + adds r7, r2, 0 + cmp r0, 0x3B + bls _08169450 + bl _08169DEA +_08169450: + lsls r0, 2 + ldr r1, =_08169468 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08169468: + .4byte _08169558 + .4byte _081696F0 + .4byte _08169710 + .4byte _08169730 + .4byte _08169788 + .4byte _08169788 + .4byte _08169788 + .4byte _08169788 + .4byte _081697B0 + .4byte _08169814 + .4byte _08169814 + .4byte _08169814 + .4byte _08169814 + .4byte _08169DEA + .4byte _08169DEA + .4byte _08169DEA + .4byte _08169DEA + .4byte _08169844 + .4byte _08169864 + .4byte _08169884 + .4byte _081698A4 + .4byte _081698C4 + .4byte _081698E4 + .4byte _08169904 + .4byte _08169924 + .4byte _08169944 + .4byte _08169964 + .4byte _08169984 + .4byte _081699A4 + .4byte _081699C4 + .4byte _081699E4 + .4byte _08169A04 + .4byte _08169A74 + .4byte _08169A94 + .4byte _08169AB4 + .4byte _08169AD4 + .4byte _08169AF4 + .4byte _08169B14 + .4byte _08169B34 + .4byte _08169B54 + .4byte _08169B74 + .4byte _08169B94 + .4byte _08169BB4 + .4byte _08169BD4 + .4byte _08169BF4 + .4byte _08169C14 + .4byte _08169C34 + .4byte _08169C54 + .4byte _08169C74 + .4byte _08169C94 + .4byte _08169CB4 + .4byte _08169CD4 + .4byte _08169CF4 + .4byte _08169D14 + .4byte _08169D34 + .4byte _08169D54 + .4byte _08169D74 + .4byte _08169D94 + .4byte _08169DB4 + .4byte _08169DD4 +_08169558: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + adds r2, r6, 0 + bl SetMonData + adds r2, r6, 0 + adds r2, 0x2E + adds r0, r4, 0 + movs r1, 0xC + bl SetMonData + movs r0, 0 + mov r8, r0 + movs r0, 0x3B + adds r0, r6 + mov r10, r0 + adds r0, r6, 0 + adds r0, 0x2B + str r0, [sp, 0x20] + adds r0, 0x19 + str r0, [sp, 0x28] + adds r0, 0x4 + str r0, [sp, 0x2C] + adds r0, 0x4 + str r0, [sp, 0x30] + subs r0, 0x22 + str r0, [sp, 0x1C] + subs r0, 0x2 + str r0, [sp, 0x18] + adds r0, 0x4 + str r0, [sp, 0x24] + adds r0, r6, 0x2 + str r0, [sp, 0x4] + adds r0, r6, 0x4 + str r0, [sp, 0x8] + adds r0, r6, 0x6 + str r0, [sp, 0xC] + adds r0, 0x2 + str r0, [sp, 0x10] + adds r0, 0x2 + str r0, [sp, 0x14] + mov r9, r4 + adds r7, r6, 0 + adds r7, 0x24 + adds r4, r6, 0 + adds r4, 0xC +_081695BE: + mov r1, r8 + adds r1, 0xD + mov r0, r9 + adds r2, r4, 0 + bl SetMonData + mov r1, r8 + adds r1, 0x11 + mov r0, r9 + adds r2, r7, 0 + bl SetMonData + adds r7, 0x1 + adds r4, 0x2 + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x3 + ble _081695BE + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x15 + mov r2, r10 + bl SetMonData + adds r0, r4, 0 + movs r1, 0x20 + ldr r2, [sp, 0x20] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x19 + ldr r2, [sp, 0x28] + bl SetMonData + ldrb r0, [r6, 0x14] + lsls r0, 27 + lsrs r0, 27 + mov r1, sp + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x27 + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r6, 0x14] + lsls r0, 22 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x28 + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r6, 0x15] + lsls r0, 25 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x29 + mov r2, sp + bl SetMonData + mov r1, sp + ldr r0, [r6, 0x14] + lsls r0, 12 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2A + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r6, 0x16] + lsls r0, 23 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2B + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r6, 0x17] + lsls r0, 26 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2C + mov r2, sp + bl SetMonData + adds r0, r4, 0 + movs r1, 0 + ldr r2, [sp, 0x2C] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x37 + ldr r2, [sp, 0x30] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x38 + ldr r2, [sp, 0x1C] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x39 + ldr r2, [sp, 0x18] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3A + ldr r2, [sp, 0x24] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3B + ldr r2, [sp, 0x4] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3C + ldr r2, [sp, 0x8] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3D + ldr r2, [sp, 0xC] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3E + ldr r2, [sp, 0x10] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3F + ldr r2, [sp, 0x14] + bl SetMonData + b _08169DEA + .pool +_081696F0: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0xB + bl SetMonData + b _08169DEA + .pool +_08169710: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0xC + bl SetMonData + b _08169DEA + .pool +_08169730: + movs r0, 0 + mov r8, r0 + movs r0, 0xC + adds r0, r3 + mov r9, r0 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r7, r1, r0 + adds r6, r3, 0 + adds r6, 0x8 + adds r4, r3, 0 +_0816974A: + mov r1, r8 + adds r1, 0xD + adds r0, r7, 0 + adds r2, r4, 0 + bl SetMonData + mov r1, r8 + adds r1, 0x11 + adds r0, r7, 0 + adds r2, r6, 0 + bl SetMonData + adds r6, 0x1 + adds r4, 0x2 + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x3 + ble _0816974A + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x15 + mov r2, r9 + bl SetMonData + b _08169DEA + .pool +_08169788: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r3, =gBattleBufferA + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, 0x9 + b _0816982C + .pool +_081697B0: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + ldr r5, =gActiveBank + ldrb r2, [r5] + lsls r2, 9 + adds r2, r7 + adds r0, r4, 0 + movs r1, 0x11 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x1 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x12 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x2 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x13 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x3 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x14 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x4 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x15 + bl SetMonData + b _08169DEA + .pool +_08169814: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r3, =gBattleBufferA + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, 0x8 +_0816982C: + adds r3, 0x3 + adds r2, r3 + bl SetMonData + b _08169DEA + .pool +_08169844: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1 + bl SetMonData + b _08169DEA + .pool +_08169864: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x19 + bl SetMonData + b _08169DEA + .pool +_08169884: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1A + bl SetMonData + b _08169DEA + .pool +_081698A4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1B + bl SetMonData + b _08169DEA + .pool +_081698C4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1C + bl SetMonData + b _08169DEA + .pool +_081698E4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1D + bl SetMonData + b _08169DEA + .pool +_08169904: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1E + bl SetMonData + b _08169DEA + .pool +_08169924: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1F + bl SetMonData + b _08169DEA + .pool +_08169944: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x20 + bl SetMonData + b _08169DEA + .pool +_08169964: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x22 + bl SetMonData + b _08169DEA + .pool +_08169984: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x23 + bl SetMonData + b _08169DEA + .pool +_081699A4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x24 + bl SetMonData + b _08169DEA + .pool +_081699C4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x25 + bl SetMonData + b _08169DEA + .pool +_081699E4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x26 + bl SetMonData + b _08169DEA + .pool +_08169A04: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + ldr r5, =gActiveBank + ldrb r2, [r5] + lsls r2, 9 + adds r2, r7 + adds r0, r4, 0 + movs r1, 0x27 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x1 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x28 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x2 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x29 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x3 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x2A + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x4 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x2B + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x5 + adds r2, r0 + adds r0, r4, 0 + b _08169B24 + .pool +_08169A74: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x27 + bl SetMonData + b _08169DEA + .pool +_08169A94: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x28 + bl SetMonData + b _08169DEA + .pool +_08169AB4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x29 + bl SetMonData + b _08169DEA + .pool +_08169AD4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x2A + bl SetMonData + b _08169DEA + .pool +_08169AF4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x2B + bl SetMonData + b _08169DEA + .pool +_08169B14: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 +_08169B24: + movs r1, 0x2C + bl SetMonData + b _08169DEA + .pool +_08169B34: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0 + bl SetMonData + b _08169DEA + .pool +_08169B54: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x9 + bl SetMonData + b _08169DEA + .pool +_08169B74: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x37 + bl SetMonData + b _08169DEA + .pool +_08169B94: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x38 + bl SetMonData + b _08169DEA + .pool +_08169BB4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x39 + bl SetMonData + b _08169DEA + .pool +_08169BD4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3A + bl SetMonData + b _08169DEA + .pool +_08169BF4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3B + bl SetMonData + b _08169DEA + .pool +_08169C14: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3C + bl SetMonData + b _08169DEA + .pool +_08169C34: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3D + bl SetMonData + b _08169DEA + .pool +_08169C54: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3E + bl SetMonData + b _08169DEA + .pool +_08169C74: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3F + bl SetMonData + b _08169DEA + .pool +_08169C94: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x16 + bl SetMonData + b _08169DEA + .pool +_08169CB4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x17 + bl SetMonData + b _08169DEA + .pool +_08169CD4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x18 + bl SetMonData + b _08169DEA + .pool +_08169CF4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x21 + bl SetMonData + b _08169DEA + .pool +_08169D14: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x2F + bl SetMonData + b _08169DEA + .pool +_08169D34: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x30 + bl SetMonData + b _08169DEA + .pool +_08169D54: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x32 + bl SetMonData + b _08169DEA + .pool +_08169D74: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x33 + bl SetMonData + b _08169DEA + .pool +_08169D94: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x34 + bl SetMonData + b _08169DEA + .pool +_08169DB4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x35 + bl SetMonData + b _08169DEA + .pool +_08169DD4: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gActiveBank + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x36 + bl SetMonData +_08169DEA: + ldr r2, =gBattlePartyID + ldr r0, =gActiveBank + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, =gPlayerParty + adds r0, r2 + bl sub_805E990 + add sp, 0x34 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8169424 + + thumb_func_start sub_8169E20 +sub_8169E20: @ 8169E20 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8169E20 + + thumb_func_start sub_8169E2C +sub_8169E2C: @ 8169E2C + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8169E2C + + thumb_func_start sub_8169E38 +sub_8169E38: @ 8169E38 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_8169E38 + + thumb_func_start sub_8169E44 +sub_8169E44: @ 8169E44 + push {r4-r6,lr} + ldr r0, =gBattleBufferA + ldr r6, =gActiveBank + ldrb r2, [r6] + lsls r1, r2, 9 + adds r0, 0x1 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + bne _08169E80 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x1 + bl move_anim_start_t4 + ldr r0, =gBattleBankFunc + ldrb r1, [r6] + lsls r1, 2 + adds r1, r0 + ldr r0, =sub_8168A20 + str r0, [r1] + b _08169EB6 + .pool +_08169E80: + ldr r5, =gBankSpriteIds + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + ldr r1, =gUnknown_03005D70 + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + bl sub_8072984 + bl WallyBufferExecCompleted +_08169EB6: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8169E44 + + thumb_func_start sub_8169EC8 +sub_8169EC8: @ 8169EC8 + push {r4-r6,lr} + ldr r4, =gActiveBank + ldrb r1, [r4] + movs r0, 0x6 + bl sub_805DF84 + ldrb r0, [r4] + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x6 + bl template_build_for_pokemon_or_trainer + ldr r0, =gUnknown_0202499C + ldr r1, =gUnknown_08305D2C + ldrb r1, [r1, 0x18] + movs r2, 0x8 + subs r2, r1 + lsls r2, 18 + movs r1, 0xA0 + lsls r1, 15 + adds r2, r1 + asrs r2, 16 + movs r1, 0x50 + movs r3, 0x1E + bl CreateSprite + ldr r6, =gBankSpriteIds + ldrb r1, [r4] + adds r1, r6 + strb r0, [r1] + ldr r5, =gSprites + ldrb r3, [r4] + adds r0, r3, r6 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + lsls r3, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0xF0 + strh r1, [r0, 0x24] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =0x0000fffe + strh r1, [r0, 0x2E] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r5, 0x1C + adds r0, r5 + ldr r1, =sub_805D7AC + str r1, [r0] + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_816856C + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8169EC8 + + thumb_func_start dp01t_07_6_ +dp01t_07_6_: @ 8169F94 + push {r4-r6,lr} + ldr r4, =gActiveBank + ldrb r1, [r4] + movs r0, 0x6 + bl sub_805DF84 + ldrb r0, [r4] + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x6 + bl template_build_for_pokemon_or_trainer + ldr r0, =gUnknown_0202499C + ldr r1, =gUnknown_08305D2C + ldrb r1, [r1, 0x18] + movs r2, 0x8 + subs r2, r1 + lsls r2, 18 + movs r1, 0xA0 + lsls r1, 15 + adds r2, r1 + asrs r2, 16 + movs r1, 0x50 + movs r3, 0x1E + bl CreateSprite + ldr r6, =gBankSpriteIds + ldrb r1, [r4] + adds r1, r6 + strb r0, [r1] + ldr r5, =gSprites + ldrb r3, [r4] + adds r0, r3, r6 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + lsls r3, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =0x0000ffa0 + strh r1, [r0, 0x24] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x2 + strh r1, [r0, 0x2E] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r5, 0x1C + adds r0, r5 + ldr r1, =sub_805D7AC + str r1, [r0] + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8168A90 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end dp01t_07_6_ + + thumb_func_start sub_816A060 +sub_816A060: @ 816A060 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816A060 + + thumb_func_start sub_816A06C +sub_816A06C: @ 816A06C + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816A06C + + thumb_func_start sub_816A078 +sub_816A078: @ 816A078 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816A078 + + thumb_func_start sub_816A084 +sub_816A084: @ 816A084 + push {r4,r5,lr} + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r1, [r0, 0x8] + movs r0, 0x4 + strb r0, [r1, 0x8] + ldr r1, =gDoingBattleAnim + movs r0, 0x1 + strb r0, [r1] + ldr r5, =gActiveBank + ldrb r4, [r5] + movs r0, 0x1 + bl GetBankByPlayerAI + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r4, 0 + adds r1, r4, 0 + movs r3, 0x4 + bl move_anim_start_t4 + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =bx_wait_t5 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_816A084 + + thumb_func_start sub_816A0D8 +sub_816A0D8: @ 816A0D8 + push {r4,r5,lr} + ldr r1, =gBattleBufferA + ldr r5, =gActiveBank + ldrb r0, [r5] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r1, [r0] + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r0, [r0, 0x8] + strb r1, [r0, 0x8] + ldr r1, =gDoingBattleAnim + movs r0, 0x1 + strb r0, [r1] + ldrb r4, [r5] + movs r0, 0x1 + bl GetBankByPlayerAI + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r4, 0 + adds r1, r4, 0 + movs r3, 0x4 + bl move_anim_start_t4 + ldr r1, =gBattleBankFunc + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, =bx_wait_t5 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_816A0D8 + + thumb_func_start sub_816A138 +sub_816A138: @ 816A138 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816A138 + + thumb_func_start sub_816A144 +sub_816A144: @ 816A144 + push {r4-r6,lr} + ldr r0, =gBattleBufferA + mov r12, r0 + ldr r6, =gActiveBank + ldrb r2, [r6] + lsls r2, 9 + adds r0, 0x1 + adds r0, r2, r0 + ldrb r0, [r0] + mov r1, r12 + adds r1, 0x2 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + ldr r5, =gUnknown_02038432 + mov r1, r12 + adds r1, 0x3 + adds r2, r1 + ldrb r1, [r2] + strb r1, [r5] + ldr r4, =gMovePowerMoveAnim + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x4 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0x5 + adds r2, r1 + ldrb r1, [r2] + lsls r1, 8 + orrs r3, r1 + strh r3, [r4] + ldr r4, =gMoveDmgMoveAnim + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x6 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0x7 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r3, r1 + mov r1, r12 + adds r1, 0x8 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 16 + orrs r3, r1 + mov r1, r12 + adds r1, 0x9 + adds r2, r1 + ldrb r1, [r2] + lsls r1, 24 + orrs r3, r1 + str r3, [r4] + ldr r3, =gHappinessMoveAnim + ldrb r1, [r6] + lsls r1, 9 + mov r2, r12 + adds r2, 0xA + adds r1, r2 + ldrb r1, [r1] + strb r1, [r3] + ldr r4, =gWeatherMoveAnim + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0xC + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0xD + adds r2, r1 + ldrb r1, [r2] + lsls r1, 8 + orrs r3, r1 + strh r3, [r4] + ldr r3, =gDisableStructMoveAnim + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x10 + adds r2, r1 + str r2, [r3] + ldr r3, =gUnknown_020244BC + ldrb r1, [r6] + lsls r1, 2 + adds r1, r3 + ldr r2, [r2] + str r2, [r1] + ldrb r1, [r5] + bl sub_805DB8C + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _0816A23C + bl WallyBufferExecCompleted + b _0816A25A + .pool +_0816A23C: + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strb r3, [r0, 0x4] + ldr r1, =gBattleBankFunc + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, =bx_move_anim_5 + str r1, [r0] +_0816A25A: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_816A144 + + thumb_func_start bx_move_anim_5 +bx_move_anim_5: @ 816A26C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r2, =gBattleBufferA + ldr r6, =gActiveBank + ldrb r3, [r6] + lsls r1, r3, 9 + adds r0, r2, 0x1 + mov r9, r0 + adds r0, r1, r0 + ldrb r4, [r0] + adds r2, 0x2 + mov r8, r2 + add r1, r8 + ldrb r0, [r1] + lsls r0, 8 + orrs r4, r0 + ldr r7, =gUnknown_020244D0 + ldr r5, [r7] + ldr r1, [r5, 0x4] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0, 0x4] + cmp r2, 0x1 + beq _0816A2F6 + cmp r2, 0x1 + bgt _0816A2BC + cmp r2, 0 + beq _0816A2C6 + b _0816A3AC + .pool +_0816A2BC: + cmp r2, 0x2 + beq _0816A320 + cmp r2, 0x3 + beq _0816A370 + b _0816A3AC +_0816A2C6: + ldr r1, [r5] + lsls r0, r3, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0816A2E2 + adds r0, r3, 0 + adds r1, r3, 0 + adds r2, r3, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_0816A2E2: + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0, 0x4] + b _0816A3AC +_0816A2F6: + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0816A3AC + movs r0, 0 + bl sub_805EB9C + adds r0, r4, 0 + bl move_anim_start_t1 + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x2 + strb r1, [r0, 0x4] + b _0816A3AC +_0816A320: + ldr r0, =gAnimScriptCallback + ldr r0, [r0] + bl _call_via_r0 + ldr r0, =gAnimScriptActive + ldrb r0, [r0] + cmp r0, 0 + bne _0816A3AC + movs r0, 0x1 + bl sub_805EB9C + ldr r0, [r7] + ldrb r2, [r6] + ldr r1, [r0] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0816A354 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x6 + bl move_anim_start_t4 +_0816A354: + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + strb r1, [r0, 0x4] + b _0816A3AC + .pool +_0816A370: + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _0816A3AC + bl sub_805E394 + ldrb r0, [r6] + lsls r2, r0, 9 + mov r3, r9 + adds r1, r2, r3 + ldrb r1, [r1] + add r2, r8 + ldrb r2, [r2] + lsls r2, 8 + orrs r1, r2 + bl sub_805E94C + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strb r4, [r0, 0x4] + bl WallyBufferExecCompleted +_0816A3AC: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end bx_move_anim_5 + + thumb_func_start sub_816A3B8 +sub_816A3B8: @ 816A3B8 + push {r4,lr} + ldr r0, =gUnknown_02022E14 + movs r1, 0 + strh r1, [r0] + ldr r0, =gUnknown_02022E16 + strh r1, [r0] + ldr r4, =gActiveBank + ldrb r0, [r4] + lsls r0, 9 + ldr r1, =gUnknown_02023066 + adds r0, r1 + ldrh r0, [r0] + bl battle_pick_message + ldr r0, =gUnknown_02022E2C + movs r1, 0 + bl battle_show_message_maybe + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_81685A4 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_816A3B8 + + thumb_func_start dp01t_11_5_message_for_player_only +dp01t_11_5_message_for_player_only: @ 816A40C + push {lr} + ldr r0, =gActiveBank + ldrb r0, [r0] + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _0816A428 + bl sub_816A3B8 + b _0816A42C + .pool +_0816A428: + bl WallyBufferExecCompleted +_0816A42C: + pop {r0} + bx r0 + thumb_func_end dp01t_11_5_message_for_player_only + + thumb_func_start sub_816A430 +sub_816A430: @ 816A430 + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _0816A456 + ldr r0, =gUnknown_02022E14 + strh r1, [r0] + ldr r1, =gUnknown_02022E16 + movs r0, 0xA0 + strh r0, [r1] + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8168444 + str r1, [r0] +_0816A456: + pop {r0} + bx r0 + .pool + thumb_func_end sub_816A430 + + thumb_func_start dp01t_12_1_battle_menu +dp01t_12_1_battle_menu: @ 816A470 + push {r4,lr} + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_816A430 + str r1, [r0] + ldr r0, =gUnknown_085CCA3A + movs r1, 0x2 + bl battle_show_message_maybe + movs r4, 0 +_0816A48A: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_8059CF8 + adds r4, 0x1 + cmp r4, 0x3 + ble _0816A48A + ldr r1, =gUnknown_020244AC + ldr r0, =gActiveBank + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + movs r1, 0 + bl sub_8059CB4 + ldr r0, =gUnknown_085CCA15 + bl get_battle_strings_ + ldr r0, =gUnknown_02022E2C + movs r1, 0x1 + bl battle_show_message_maybe + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end dp01t_12_1_battle_menu + + thumb_func_start sub_816A4D8 +sub_816A4D8: @ 816A4D8 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816A4D8 + + thumb_func_start sub_816A4E4 +sub_816A4E4: @ 816A4E4 + push {r4,lr} + ldr r4, =gBattleStruct + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x95 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0816A522 + cmp r0, 0x1 + bgt _0816A504 + cmp r0, 0 + beq _0816A50A + b _0816A574 + .pool +_0816A504: + cmp r0, 0x2 + beq _0816A550 + b _0816A574 +_0816A50A: + bl sub_805C210 + ldr r1, [r4] + adds r1, 0x95 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r4] + adds r0, 0x97 + movs r1, 0x50 + strb r1, [r0] + b _0816A574 +_0816A522: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _0816A574 + ldr r0, =gUnknown_02022E14 + strh r1, [r0] + ldr r1, =gUnknown_02022E16 + movs r2, 0xA0 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, [r4] + adds r1, 0x95 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0816A574 + .pool +_0816A550: + adds r1, 0x97 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bne _0816A574 + movs r0, 0x5 + bl PlaySE + movs r2, 0x80 + lsls r2, 1 + movs r0, 0x1 + movs r1, 0xA + bl dp01_build_cmdbuf_x21_a_bb + bl WallyBufferExecCompleted +_0816A574: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_816A4E4 + + thumb_func_start sub_816A57C +sub_816A57C: @ 816A57C + push {lr} + sub sp, 0x4 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, =gBattleBankFunc + ldr r2, =gActiveBank + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_81685D4 + str r1, [r0] + ldr r1, =gUnknown_020244B8 + ldrb r0, [r2] + strb r0, [r1] + add sp, 0x4 + pop {r0} + bx r0 + .pool + thumb_func_end sub_816A57C + + thumb_func_start sub_816A5BC +sub_816A5BC: @ 816A5BC + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816A5BC + + thumb_func_start sub_816A5C8 +sub_816A5C8: @ 816A5C8 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816A5C8 + + thumb_func_start sub_816A5D4 +sub_816A5D4: @ 816A5D4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + movs r0, 0 + bl load_gfxc_health_bar + ldr r3, =gBattleBufferA + ldr r0, =gActiveBank + mov r9, r0 + ldrb r4, [r0] + lsls r2, r4, 9 + adds r0, r3, 0x2 + adds r0, r2, r0 + ldrb r1, [r0] + adds r3, 0x3 + adds r2, r3 + ldrb r0, [r2] + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + asrs r7, r1, 16 + ldr r0, =0x00007fff + cmp r7, r0 + beq _0816A664 + ldr r6, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r6 + ldrh r0, [r0] + movs r5, 0x64 + muls r0, r5 + ldr r4, =gPlayerParty + adds r0, r4 + movs r1, 0x3A + bl GetMonData + mov r8, r0 + mov r1, r9 + ldrb r0, [r1] + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + muls r0, r5 + adds r0, r4 + movs r1, 0x39 + bl GetMonData + adds r3, r0, 0 + mov r1, r9 + ldrb r0, [r1] + ldr r1, =gUnknown_03005D70 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + mov r2, r8 + bl sub_807294C + b _0816A69E + .pool +_0816A664: + ldr r1, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x3A + bl GetMonData + adds r2, r0, 0 + mov r1, r9 + ldrb r0, [r1] + ldr r4, =gUnknown_03005D70 + adds r1, r0, r4 + ldrb r1, [r1] + str r7, [sp] + movs r3, 0 + bl sub_807294C + mov r1, r9 + ldrb r0, [r1] + adds r0, r4 + ldrb r0, [r0] + movs r1, 0 + movs r2, 0 + bl heathbar_draw_hp +_0816A69E: + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_8168934 + str r1, [r0] + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_816A5D4 + + thumb_func_start sub_816A6D4 +sub_816A6D4: @ 816A6D4 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816A6D4 + + thumb_func_start sub_816A6E0 +sub_816A6E0: @ 816A6E0 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816A6E0 + + thumb_func_start sub_816A6EC +sub_816A6EC: @ 816A6EC + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816A6EC + + thumb_func_start sub_816A6F8 +sub_816A6F8: @ 816A6F8 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816A6F8 + + thumb_func_start sub_816A704 +sub_816A704: @ 816A704 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816A704 + + thumb_func_start sub_816A710 +sub_816A710: @ 816A710 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816A710 + + thumb_func_start sub_816A71C +sub_816A71C: @ 816A71C + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816A71C + + thumb_func_start sub_816A728 +sub_816A728: @ 816A728 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816A728 + + thumb_func_start sub_816A734 +sub_816A734: @ 816A734 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816A734 + + thumb_func_start sub_816A740 +sub_816A740: @ 816A740 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816A740 + + thumb_func_start sub_816A74C +sub_816A74C: @ 816A74C + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816A74C + + thumb_func_start sub_816A758 +sub_816A758: @ 816A758 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816A758 + + thumb_func_start sub_816A764 +sub_816A764: @ 816A764 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816A764 + + thumb_func_start sub_816A770 +sub_816A770: @ 816A770 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816A770 + + thumb_func_start sub_816A77C +sub_816A77C: @ 816A77C + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816A77C + + thumb_func_start sub_816A788 +sub_816A788: @ 816A788 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816A788 + + thumb_func_start sub_816A794 +sub_816A794: @ 816A794 + push {r4,lr} + ldr r3, =gSprites + ldr r2, =gBankSpriteIds + ldr r4, =gActiveBank + ldrb r0, [r4] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + bge _0816A7C8 + bl WallyBufferExecCompleted + b _0816A7F2 + .pool +_0816A7C8: + ldr r1, =gDoingBattleAnim + movs r0, 0x1 + strb r0, [r1] + ldrb r0, [r4] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0 + strh r1, [r0, 0x30] + ldrb r0, [r4] + bl sub_80769F4 + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =bx_blink_t5 + str r1, [r0] +_0816A7F2: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_816A794 + + thumb_func_start sub_816A804 +sub_816A804: @ 816A804 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816A804 + + thumb_func_start sub_816A810 +sub_816A810: @ 816A810 + push {lr} + ldr r2, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r1, [r0] + lsls r1, 9 + adds r0, r2, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + bl PlaySE + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_816A810 + + thumb_func_start sub_816A840 +sub_816A840: @ 816A840 + push {r4,r5,lr} + ldr r4, =gBattleBufferA + ldr r5, =gActiveBank + ldrb r0, [r5] + lsls r3, r0, 9 + adds r0, r4, 0x3 + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, 0 + beq _0816A87C + bl sub_805EA60 + ldrb r1, [r5] + lsls r1, 9 + adds r0, r4, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, r4, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + bl PlayBGM + b _0816A890 + .pool +_0816A87C: + adds r0, r4, 0x1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, 0x2 + adds r1, r3, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + bl PlayFanfare +_0816A890: + bl WallyBufferExecCompleted + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_816A840 + + thumb_func_start sub_816A89C +sub_816A89C: @ 816A89C + push {lr} + ldr r1, =gBattlePartyID + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x19 + bl PlayCry1 + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end sub_816A89C + + thumb_func_start dp01t_2E_5_battle_intro +dp01t_2E_5_battle_intro: @ 816A8D8 + push {lr} + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + bl battle_intro_launch + ldr r2, =gUnknown_020243FC + ldrh r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r2] + bl WallyBufferExecCompleted + pop {r0} + bx r0 + .pool + thumb_func_end dp01t_2E_5_battle_intro + + thumb_func_start sub_816A90C +sub_816A90C: @ 816A90C + push {r4-r7,lr} + ldr r6, =gBankSpriteIds + ldr r7, =gActiveBank + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, =gSprites + adds r0, r5 + bl oamt_add_pos2_onto_pos1 + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x32 + strh r1, [r0, 0x2E] + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =0x0000ffd8 + strh r1, [r0, 0x32] + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r1, [r0, 0x22] + strh r1, [r0, 0x36] + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =sub_80A6EEC + str r1, [r0] + ldrb r2, [r7] + adds r0, r2, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x38] + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =sub_805CC00 + bl oamt_set_x3A_32 + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x1 + bl StartSpriteAnim + ldr r0, =0x0000d6f8 + bl AllocSpritePalette + adds r4, r0, 0 + lsls r4, 24 + ldr r0, =gTrainerBackPicPaletteTable + ldr r0, [r0, 0x30] + lsrs r4, 20 + movs r2, 0x80 + lsls r2, 1 + adds r1, r4, r2 + movs r2, 0x20 + bl LoadCompressedPalette + ldrb r0, [r7] + adds r0, r6 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r4 + strb r0, [r1, 0x5] + ldr r0, =sub_816AC04 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r4, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r4 + ldrb r0, [r7] + strh r0, [r1, 0x8] + ldr r3, =gUnknown_020244D0 + ldr r0, [r3] + ldrb r2, [r7] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0816AA24 + ldr r0, =gUnknown_020244B4 + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + ldr r1, =sub_8073C30 + str r1, [r0] +_0816AA24: + ldr r0, [r3] + ldr r2, [r0, 0x8] + ldrb r0, [r2, 0x9] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x9] + ldr r1, =gBattleBankFunc + ldrb r0, [r7] + lsls r0, 2 + adds r0, r1 + ldr r1, =nullsub_21 + str r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_816A90C + + thumb_func_start sub_816AA80 +sub_816AA80: @ 816AA80 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r6, 2 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x2] + ldr r0, =gBattlePartyID + lsls r2, r6, 1 + adds r2, r0 + ldr r0, =gBattleBufferA + lsls r1, r6, 9 + adds r0, 0x1 + adds r1, r0 + ldrb r0, [r1] + strh r0, [r2] + ldrh r1, [r2] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + mov r8, r0 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r0, =sub_805D714 + bl CreateInvisibleSpriteWithCallback + ldr r1, =gUnknown_03005D7C + mov r9, r1 + add r9, r6 + mov r1, r9 + strb r0, [r1] + adds r0, r6, 0 + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r8 + bl sub_806A068 + ldr r0, =gUnknown_0202499C + mov r10, r0 + adds r0, r6, 0 + movs r1, 0x2 + bl sub_80A5C6C + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + adds r0, r6, 0 + bl sub_80A6138 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + bl sub_80A82E4 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + mov r0, r10 + adds r1, r5, 0 + adds r2, r4, 0 + bl CreateSprite + ldr r4, =gBankSpriteIds + adds r4, r6, r4 + strb r0, [r4] + ldr r5, =gSprites + mov r0, r9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r4] + strh r1, [r0, 0x30] + mov r0, r9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x32] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x2E] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + mov r1, r8 + strh r1, [r0, 0x32] + ldrb r0, [r4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + lsls r3, r6, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =gUnknown_020244E4 + adds r6, r1 + ldrb r1, [r6] + bl StartSpriteAnim + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =SpriteCallbackDummy + str r1, [r0] + movs r0, 0 + movs r1, 0xFF + bl sub_80753E8 + mov r1, r9 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r5 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0x2E] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_816AA80 + + thumb_func_start sub_816AC04 +sub_816AC04: @ 816AC04 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r1, r0, r1 + ldrh r2, [r1, 0xA] + movs r3, 0xA + ldrsh r0, [r1, r3] + cmp r0, 0x1E + bgt _0816AC28 + adds r0, r2, 0x1 + strh r0, [r1, 0xA] + b _0816AC5E + .pool +_0816AC28: + ldr r4, =gActiveBank + ldrb r5, [r4] + ldrh r0, [r1, 0x8] + strb r0, [r4] + ldr r0, =gBattleBufferA + ldrb r1, [r4] + lsls r2, r1, 9 + adds r0, 0x1 + adds r2, r0 + ldr r0, =gBattlePartyID + lsls r1, 1 + adds r1, r0 + ldrh r0, [r1] + strb r0, [r2] + ldrb r0, [r4] + bl sub_816AA80 + ldr r1, =gBattleBankFunc + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, =sub_816864C + str r1, [r0] + strb r5, [r4] + adds r0, r6, 0 + bl DestroyTask +_0816AC5E: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_816AC04 + + thumb_func_start sub_816AC78 +sub_816AC78: @ 816AC78 + push {r4,r5,lr} + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0816ACA8 + adds r0, r2, 0 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _0816ACA8 + bl WallyBufferExecCompleted + b _0816ACE6 + .pool +_0816ACA8: + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r5, =gActiveBank + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + ldrb r0, [r5] + lsls r4, r0, 9 + ldr r3, =gUnknown_02023068 + adds r1, r4, r3 + subs r2, r3, 0x3 + adds r2, r4, r2 + ldrb r2, [r2] + subs r3, 0x2 + adds r4, r3 + ldrb r3, [r4] + bl sub_80735DC + ldr r2, =gUnknown_020244B4 + ldrb r1, [r5] + adds r1, r2 + strb r0, [r1] + bl WallyBufferExecCompleted +_0816ACE6: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_816AC78 + + thumb_func_start sub_816ACFC +sub_816ACFC: @ 816ACFC + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816ACFC + + thumb_func_start sub_816AD08 +sub_816AD08: @ 816AD08 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816AD08 + + thumb_func_start sub_816AD14 +sub_816AD14: @ 816AD14 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816AD14 + + thumb_func_start sub_816AD20 +sub_816AD20: @ 816AD20 + push {r4-r6,lr} + sub sp, 0x4 + ldr r5, =gBattleBufferA + ldr r6, =gActiveBank + ldrb r2, [r6] + lsls r1, r2, 9 + adds r0, r5, 0x1 + adds r0, r1, r0 + ldrb r3, [r0] + adds r0, r5, 0x2 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, 0x3 + adds r1, r5 + ldrb r0, [r1] + lsls r0, 8 + orrs r4, r0 + str r4, [sp] + adds r0, r2, 0 + adds r1, r2, 0 + bl move_anim_start_t3 + lsls r0, 24 + cmp r0, 0 + beq _0816AD60 + bl WallyBufferExecCompleted + b _0816AD6C + .pool +_0816AD60: + ldr r0, =gBattleBankFunc + ldrb r1, [r6] + lsls r1, 2 + adds r1, r0 + ldr r0, =sub_8168AC8 + str r0, [r1] +_0816AD6C: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_816AD20 + + thumb_func_start sub_816AD7C +sub_816AD7C: @ 816AD7C + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816AD7C + + thumb_func_start sub_816AD88 +sub_816AD88: @ 816AD88 + push {lr} + bl WallyBufferExecCompleted + pop {r0} + bx r0 + thumb_func_end sub_816AD88 + + thumb_func_start sub_816AD94 +sub_816AD94: @ 816AD94 + push {r4,lr} + ldr r2, =gBattleOutcome + ldr r1, =gBattleBufferA + ldr r4, =gActiveBank + ldrb r0, [r4] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + movs r0, 0x5 + bl FadeOutMapMusic + movs r0, 0x3 + bl BeginFastPaletteFade + bl WallyBufferExecCompleted + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x6 + ands r0, r1 + cmp r0, 0x2 + bne _0816ADD0 + ldr r0, =gBattleBankFunc + ldrb r1, [r4] + lsls r1, 2 + adds r1, r0 + ldr r0, =sub_80587B0 + str r0, [r1] +_0816ADD0: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_816AD94 + + thumb_func_start nullsub_118 +nullsub_118: @ 816ADF0 + bx lr + thumb_func_end nullsub_118 + + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_message.s b/asm/battle_message.s index 89b159706a..6bd3f68359 100644 --- a/asm/battle_message.s +++ b/asm/battle_message.s @@ -16,7 +16,7 @@ battle_pick_message: @ 814E0C4 lsrs r6, r0, 16 movs r7, 0 ldr r4, =gUnknown_0203ABA8 - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank mov r8, r0 ldrb r1, [r0] lsls r1, 9 @@ -26,13 +26,13 @@ battle_pick_message: @ 814E0C4 ldr r2, =gUnknown_02024208 ldrh r0, [r1, 0x4] strh r0, [r2] - ldr r2, =gUnknown_0202420A + ldr r2, =gLastUsedAbility ldrb r0, [r1, 0x6] strb r0, [r2] - ldr r5, =gUnknown_02024474 + ldr r5, =gBattleScripting ldrb r0, [r1, 0x7] strb r0, [r5, 0x17] - ldr r3, =gUnknown_0202449C + ldr r3, =gBattleStruct ldr r0, [r3] adds r0, 0x52 ldrb r1, [r1, 0x8] @@ -53,7 +53,7 @@ battle_pick_message: @ 814E0C4 movs r2, 0 mov r12, r8 mov r9, r5 - ldr r1, =gUnknown_02022F58 + ldr r1, =gBattleTextBuff1 mov r10, r1 ldr r3, =gUnknown_0203ABA4 _0814E126: @@ -67,10 +67,10 @@ _0814E126: cmp r2, 0x3 ble _0814E126 movs r2, 0 - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 mov r8, r0 ldr r3, =gUnknown_0203ABA8 - ldr r5, =gUnknown_02022F68 + ldr r5, =gBattleTextBuff2 ldr r4, =gUnknown_02022F78 _0814E144: mov r0, r8 @@ -215,7 +215,7 @@ _0814E29E: _0814E2AC: mov r1, r12 ldrb r0, [r1] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0814E310 @@ -317,11 +317,11 @@ _0814E380: _0814E394: mov r1, r12 ldrb r0, [r1] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0814E3EC - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] adds r0, 0xB1 ldrb r2, [r0] @@ -385,11 +385,11 @@ _0814E428: _0814E430: mov r4, r9 ldrb r0, [r4, 0x17] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0814E488 - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] adds r0, 0xB1 ldrb r2, [r0] @@ -482,8 +482,8 @@ _0814E4F8: lsls r0, 1 cmp r1, r0 bls _0814E534 - ldr r0, =gUnknown_02022F68 - ldr r1, =gUnknown_0202449C + ldr r0, =gBattleTextBuff2 + ldr r1, =gBattleStruct ldr r1, [r1] adds r1, 0x8E ldrb r2, [r1] @@ -495,7 +495,7 @@ _0814E4F8: b _0814E544 .pool _0814E534: - ldr r0, =gUnknown_02022F68 + ldr r0, =gBattleTextBuff2 ldrh r2, [r2] movs r1, 0xD muls r1, r2 @@ -503,13 +503,13 @@ _0814E534: adds r1, r2 bl StringCopy _0814E544: - ldr r0, =gUnknown_02022F68 + ldr r0, =gBattleTextBuff2 bl sub_814F950 ldr r7, =gUnknown_085CBDAC b _0814E6D8 .pool _0814E55C: - ldr r4, =gUnknown_02022F58 + ldr r4, =gBattleTextBuff1 ldrb r1, [r4] movs r0, 0x80 ands r0, r1 @@ -520,7 +520,7 @@ _0814E55C: strb r0, [r4] mov r1, r12 ldrb r0, [r1] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -532,7 +532,7 @@ _0814E55C: eors r0, r1 strb r0, [r4] _0814E58A: - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldrb r0, [r0] subs r0, 0x2 lsls r0, 24 @@ -558,7 +558,7 @@ _0814E5B4: _0814E5C4: mov r1, r12 ldrb r0, [r1] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -576,7 +576,7 @@ _0814E5E0: ands r0, r1 cmp r0, 0 beq _0814E638 - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldrb r0, [r0] cmp r0, 0x2 beq _0814E628 @@ -615,7 +615,7 @@ _0814E638: lsls r0, 4 cmp r1, r0 bne _0814E680 - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldrb r0, [r0] cmp r0, 0x2 beq _0814E670 @@ -642,7 +642,7 @@ _0814E678: b _0814E6D8 .pool _0814E680: - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldrb r0, [r0] cmp r0, 0x2 beq _0814E6A8 @@ -868,7 +868,7 @@ _0814E7CC: .4byte _0814F5B4 .4byte _0814E8E4 _0814E8A0: - ldr r5, =gUnknown_02022F58 + ldr r5, =gBattleTextBuff1 ldrb r0, [r5] cmp r0, 0xFD bne _0814E8B8 @@ -887,7 +887,7 @@ _0814E8C8: adds r4, r5, 0 bl _0814F5C0 _0814E8CE: - ldr r1, =gUnknown_02022F68 + ldr r1, =gBattleTextBuff2 ldrb r0, [r1] cmp r0, 0xFD bne _0814E904 @@ -924,8 +924,8 @@ _0814E920: .pool _0814E92C: movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, =gUnknown_0202406E + bl GetBankByPlayerAI + ldr r1, =gBattlePartyID lsls r0, 24 lsrs r0, 23 adds r0, r1 @@ -943,8 +943,8 @@ _0814E92C: .pool _0814E960: movs r0, 0x1 - bl battle_get_side_with_given_state - ldr r1, =gUnknown_0202406E + bl GetBankByPlayerAI + ldr r1, =gBattlePartyID lsls r0, 24 lsrs r0, 23 adds r0, r1 @@ -962,8 +962,8 @@ _0814E960: .pool _0814E994: movs r0, 0x2 - bl battle_get_side_with_given_state - ldr r1, =gUnknown_0202406E + bl GetBankByPlayerAI + ldr r1, =gBattlePartyID lsls r0, 24 lsrs r0, 23 adds r0, r1 @@ -981,8 +981,8 @@ _0814E994: .pool _0814E9C8: movs r0, 0x3 - bl battle_get_side_with_given_state - ldr r1, =gUnknown_0202406E + bl GetBankByPlayerAI + ldr r1, =gBattlePartyID lsls r0, 24 lsrs r0, 23 adds r0, r1 @@ -999,7 +999,7 @@ _0814E9C8: bl _0814F5BE .pool _0814E9FC: - ldr r2, =gUnknown_0202406E + ldr r2, =gBattlePartyID ldr r1, =gUnknown_020229E8 lsls r0, r7, 3 subs r0, r7 @@ -1021,7 +1021,7 @@ _0814E9FC: bl _0814F5BE .pool _0814EA38: - ldr r2, =gUnknown_0202406E + ldr r2, =gBattlePartyID ldr r1, =gUnknown_020229E8 lsls r0, r7, 3 subs r0, r7 @@ -1045,7 +1045,7 @@ _0814EA38: bl _0814F5BE .pool _0814EA78: - ldr r2, =gUnknown_0202406E + ldr r2, =gBattlePartyID ldr r1, =gUnknown_020229E8 lsls r0, r7, 3 subs r0, r7 @@ -1069,7 +1069,7 @@ _0814EA78: bl _0814F5BE .pool _0814EAB8: - ldr r2, =gUnknown_0202406E + ldr r2, =gBattlePartyID ldr r1, =gUnknown_020229E8 lsls r0, r7, 3 subs r0, r7 @@ -1093,9 +1093,9 @@ _0814EAB8: bl _0814F5BE .pool _0814EAF8: - ldr r4, =gUnknown_0202420B + ldr r4, =gBankAttacker ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 adds r2, r4, 0 cmp r0, 0 @@ -1122,12 +1122,12 @@ _0814EB36: cmp r0, 0xFF bne _0814EB2C ldrb r0, [r2] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 movs r0, 0x1 ands r0, r1 - bl battle_get_side_with_given_state - ldr r1, =gUnknown_0202406E + bl GetBankByPlayerAI + ldr r1, =gBattlePartyID lsls r0, 24 lsrs r0, 23 adds r0, r1 @@ -1143,12 +1143,12 @@ _0814EB36: .pool _0814EB74: ldrb r0, [r2] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 movs r0, 0x1 ands r0, r1 - bl battle_get_side_with_given_state - ldr r1, =gUnknown_0202406E + bl GetBankByPlayerAI + ldr r1, =gBattlePartyID lsls r0, 24 lsrs r0, 23 adds r0, r1 @@ -1166,19 +1166,19 @@ _0814EB9E: bl _0814F5BE .pool _0814EBB0: - ldr r4, =gUnknown_0202420B + ldr r4, =gBankAttacker ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0814EBF8 ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 movs r0, 0x1 ands r0, r1 - bl battle_get_side_with_given_state - ldr r1, =gUnknown_0202406E + bl GetBankByPlayerAI + ldr r1, =gBattlePartyID lsls r0, 24 lsrs r0, 23 adds r0, 0x4 @@ -1195,12 +1195,12 @@ _0814EBB0: .pool _0814EBF8: ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 movs r0, 0x1 ands r0, r1 - bl battle_get_side_with_given_state - ldr r1, =gUnknown_0202406E + bl GetBankByPlayerAI + ldr r1, =gBattlePartyID lsls r0, 24 lsrs r0, 23 adds r0, 0x4 @@ -1219,9 +1219,9 @@ _0814EC24: bl _0814F5BE .pool _0814EC38: - ldr r5, =gUnknown_0202420B + ldr r5, =gBankAttacker ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0814ECA8 @@ -1236,7 +1236,7 @@ _0814EC38: _0814EC56: ldrb r1, [r4] adds r0, r1, 0 - ldr r3, =gUnknown_0202406E + ldr r3, =gBattlePartyID ldr r2, =gEnemyParty mov r12, r2 adds r2, r5, 0 @@ -1266,7 +1266,7 @@ _0814EC78: b _0814ECC2 .pool _0814ECA8: - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID ldrb r0, [r5] lsls r0, 1 adds r0, r1 @@ -1284,9 +1284,9 @@ _0814ECC2: bl _0814F5BE .pool _0814ECD4: - ldr r5, =gEnemyMonIndex + ldr r5, =gBankTarget ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0814ED44 @@ -1301,7 +1301,7 @@ _0814ECD4: _0814ECF2: ldrb r1, [r4] adds r0, r1, 0 - ldr r3, =gUnknown_0202406E + ldr r3, =gBattlePartyID ldr r2, =gEnemyParty mov r12, r2 adds r2, r5, 0 @@ -1331,7 +1331,7 @@ _0814ED14: b _0814ED5E .pool _0814ED44: - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID ldrb r0, [r5] lsls r0, 1 adds r0, r1 @@ -1351,7 +1351,7 @@ _0814ED5E: _0814ED70: ldr r5, =gUnknown_0202420E ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0814EDE0 @@ -1366,7 +1366,7 @@ _0814ED70: _0814ED8E: ldrb r1, [r4] adds r0, r1, 0 - ldr r3, =gUnknown_0202406E + ldr r3, =gBattlePartyID ldr r2, =gEnemyParty mov r12, r2 adds r2, r5, 0 @@ -1396,7 +1396,7 @@ _0814EDB0: b _0814EDFA .pool _0814EDE0: - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID ldrb r0, [r5] lsls r0, 1 adds r0, r1 @@ -1414,9 +1414,9 @@ _0814EDFA: bl _0814F5BE .pool _0814EE0C: - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0814EE7C @@ -1431,7 +1431,7 @@ _0814EE0C: _0814EE2A: ldrb r1, [r4] adds r0, r1, 0 - ldr r3, =gUnknown_0202406E + ldr r3, =gBattlePartyID ldr r2, =gEnemyParty mov r12, r2 adds r2, r5, 0 @@ -1461,7 +1461,7 @@ _0814EE4C: b _0814EE96 .pool _0814EE7C: - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID ldrb r0, [r5] lsls r0, 1 adds r0, r1 @@ -1479,9 +1479,9 @@ _0814EE96: b _0814F5BE .pool _0814EEA8: - ldr r5, =gUnknown_02024474 + ldr r5, =gBattleScripting ldrb r0, [r5, 0x17] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0814EF18 @@ -1496,7 +1496,7 @@ _0814EEA8: _0814EEC6: ldrb r1, [r4] adds r0, r1, 0 - ldr r3, =gUnknown_0202406E + ldr r3, =gBattlePartyID ldr r2, =gEnemyParty mov r12, r2 adds r2, r5, 0 @@ -1526,7 +1526,7 @@ _0814EEE8: b _0814EF32 .pool _0814EF18: - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID ldrb r0, [r5, 0x17] lsls r0, 1 adds r0, r1 @@ -1563,7 +1563,7 @@ _0814EF5C: cmp r1, r0 bls _0814EF88 _0814EF6A: - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] adds r0, 0x8E ldrb r1, [r0] @@ -1597,7 +1597,7 @@ _0814EF98: ands r1, r0 cmp r1, 0 bne _0814F014 - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting adds r0, 0x25 ldrb r0, [r0] cmp r0, 0 @@ -1622,7 +1622,7 @@ _0814EFEC: lsls r1, r0, 3 subs r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02024404 + ldr r0, =gEnigmaBerries adds r1, r0 mov r0, sp bl StringCopy @@ -1633,7 +1633,7 @@ _0814EFEC: .pool _0814F014: ldr r2, =gUnknown_020229E8 - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting adds r0, 0x25 ldrb r1, [r0] lsls r0, r1, 3 @@ -1648,7 +1648,7 @@ _0814F014: lsls r1, r2, 3 subs r1, r2 lsls r1, 2 - ldr r0, =gUnknown_02024404 + ldr r0, =gEnigmaBerries adds r1, r0 mov r0, sp bl StringCopy @@ -1664,32 +1664,32 @@ _0814F05C: _0814F064: ldrh r0, [r2] mov r1, sp - bl itemid_get_name + bl CopyItemName b _0814F5BE _0814F06E: ldr r0, =gUnknown_02024208 ldrh r0, [r0] mov r1, sp - bl itemid_get_name + bl CopyItemName b _0814F5BE .pool _0814F080: - ldr r0, =gUnknown_0202420A + ldr r0, =gLastUsedAbility b _0814F0C0 .pool _0814F088: ldr r1, =gUnknown_0203ABA4 - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker b _0814F0BC .pool _0814F098: ldr r1, =gUnknown_0203ABA4 - ldr r0, =gEnemyMonIndex + ldr r0, =gBankTarget b _0814F0BC .pool _0814F0A8: ldr r1, =gUnknown_0203ABA4 - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting ldrb r0, [r0, 0x17] b _0814F0BE .pool @@ -1783,7 +1783,7 @@ _0814F164: cmp r0, 0 beq _0814F1AC movs r2, 0 - ldr r4, =gUnknown_020244A8 + ldr r4, =gBattleResources ldr r3, [r4] _0814F178: mov r1, sp @@ -1910,7 +1910,7 @@ _0814F266: b _0814F5C0 .pool _0814F27C: - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting ldrb r0, [r0, 0x17] bl sub_806D864 _0814F284: @@ -1986,9 +1986,9 @@ _0814F328: b _0814F580 .pool _0814F330: - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting ldrb r0, [r0, 0x17] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0814F39C @@ -2005,7 +2005,7 @@ _0814F34E: adds r0, r1, 0 ldr r5, =gEnemyParty mov r12, r5 - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct cmp r0, 0xFF beq _0814F36E _0814F35C: @@ -2031,7 +2031,7 @@ _0814F36E: b _0814F3B4 .pool _0814F39C: - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] adds r0, 0x52 ldrb r1, [r0] @@ -2060,14 +2060,14 @@ _0814F3D4: b _0814F5C0 .pool _0814F3E4: - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker b _0814F3EE .pool _0814F3EC: - ldr r0, =gEnemyMonIndex + ldr r0, =gBankTarget _0814F3EE: ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 ldr r4, =gUnknown_085CBD9A cmp r0, 0 @@ -2078,14 +2078,14 @@ _0814F3FE: b _0814F5C0 .pool _0814F410: - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker b _0814F41A .pool _0814F418: - ldr r0, =gEnemyMonIndex + ldr r0, =gBankTarget _0814F41A: ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 ldr r4, =gUnknown_085CBD91 cmp r0, 0 @@ -2096,14 +2096,14 @@ _0814F42A: b _0814F5C0 .pool _0814F43C: - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker b _0814F446 .pool _0814F444: - ldr r0, =gEnemyMonIndex + ldr r0, =gBankTarget _0814F446: ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 ldr r4, =gUnknown_085CBDA3 cmp r0, 0 @@ -2464,7 +2464,7 @@ _0814F734: .pool _0814F744: ldrb r0, [r4, 0x1] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0814F768 @@ -2533,7 +2533,7 @@ _0814F7D0: _0814F7E2: adds r4, r5, r7 ldrb r0, [r4, 0x1] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0814F808 @@ -2599,7 +2599,7 @@ _0814F858: cmp r2, 0xAF bne _0814F8CC ldr r2, =gUnknown_020229E8 - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting adds r0, 0x25 ldrb r1, [r0] lsls r0, r1, 3 @@ -2614,7 +2614,7 @@ _0814F858: lsls r1, r2, 3 subs r1, r2 lsls r1, 2 - ldr r0, =gUnknown_02024404 + ldr r0, =gEnigmaBerries adds r1, r0 adds r0, r6, 0 bl StringCopy @@ -2631,12 +2631,12 @@ _0814F8BE: _0814F8CC: adds r0, r2, 0 adds r1, r6, 0 - bl itemid_get_name + bl CopyItemName b _0814F8DE _0814F8D6: adds r0, r2, 0 adds r1, r6, 0 - bl itemid_get_name + bl CopyItemName _0814F8DE: adds r5, 0x3 _0814F8E0: @@ -2784,7 +2784,7 @@ battle_show_message_maybe: @ 814F9EC lsls r1, 24 lsrs r7, r1, 24 ldr r1, =gUnknown_085CD660 - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting adds r0, 0x24 ldrb r0, [r0] lsls r0, 2 @@ -2864,7 +2864,7 @@ _0814FA36: ldrb r0, [r0, 0x6] cmp r0, 0xFF bne _0814FAC6 - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting adds r0, 0x24 ldrb r0, [r0] adds r1, r7, 0 @@ -2992,7 +2992,7 @@ _0814FB9C: thumb_func_start sub_814FBAC sub_814FBAC: @ 814FBAC push {r4,r5,lr} - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r2, [r0] lsls r1, r2, 9 ldr r0, =gUnknown_02023068 diff --git a/asm/battle_records.s b/asm/battle_records.s index 5c4ea66882..f7be163795 100644 --- a/asm/battle_records.s +++ b/asm/battle_records.s @@ -259,12 +259,12 @@ _0813C152: movs r4, 0x19 _0813C154: adds r0, r4, 0 - bl sub_80847F8 + bl GetGameStat ldr r1, =0x0000270e cmp r0, r1 bhi _0813C166 adds r0, r4, 0 - bl sav12_xor_increment + bl IncrementGameStat _0813C166: pop {r4} pop {r0} @@ -336,8 +336,8 @@ _0813C1D4: .pool thumb_func_end sub_813C170 - thumb_func_start sub_813C1F8 -sub_813C1F8: @ 813C1F8 + thumb_func_start InitLinkBattleRecords +InitLinkBattleRecords: @ 813C1F8 push {lr} ldr r0, =gSaveBlock1Ptr ldr r0, [r0] @@ -347,7 +347,7 @@ sub_813C1F8: @ 813C1F8 pop {r0} bx r0 .pool - thumb_func_end sub_813C1F8 + thumb_func_end InitLinkBattleRecords thumb_func_start sub_813C214 sub_813C214: @ 813C214 @@ -397,7 +397,7 @@ _0813C258: sub_813C264: @ 813C264 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_0202433A + ldr r0, =gBattleOutcome ldrb r0, [r0] cmp r0, 0x1 beq _0813C27C @@ -445,7 +445,7 @@ sub_813C2A0: @ 813C2A0 subs r2, 0x30 adds r3, r2 ldrh r2, [r3, 0xE] - ldr r3, =gUnknown_0202433A + ldr r3, =gBattleOutcome ldrb r3, [r3] lsls r4, 24 lsrs r4, 24 @@ -465,7 +465,7 @@ sub_813C2F4: @ 813C2F4 sub sp, 0xC ldr r4, =gStringVar1 movs r0, 0x17 - bl sub_80847F8 + bl GetGameStat adds r1, r0, 0 adds r0, r4, 0 movs r2, 0 @@ -473,7 +473,7 @@ sub_813C2F4: @ 813C2F4 bl ConvertIntToDecimalStringN ldr r4, =gStringVar2 movs r0, 0x18 - bl sub_80847F8 + bl GetGameStat adds r1, r0, 0 adds r0, r4, 0 movs r2, 0 @@ -481,7 +481,7 @@ sub_813C2F4: @ 813C2F4 bl ConvertIntToDecimalStringN ldr r4, =gStringVar3 movs r0, 0x19 - bl sub_80847F8 + bl GetGameStat adds r1, r0, 0 adds r0, r4, 0 movs r2, 0 diff --git a/asm/battle_setup.s b/asm/battle_setup.s index ae559ca278..1093fa1cb5 100644 --- a/asm/battle_setup.s +++ b/asm/battle_setup.s @@ -75,7 +75,7 @@ task_add_01_battle_start: @ 80B065C adds r1, r2 strh r4, [r1, 0xA] adds r0, r5, 0 - bl current_map_music_set__default_for_battle + bl PlayNewMapMusic__default_for_battle pop {r4,r5} pop {r0} bx r0 @@ -136,9 +136,9 @@ _080B06F2: movs r1, 0 bl task_add_01_battle_start movs r0, 0x7 - bl sav12_xor_increment + bl IncrementGameStat movs r0, 0x8 - bl sav12_xor_increment + bl IncrementGameStat bl sub_80EECC8 bl sub_80B1218 pop {r4} @@ -166,9 +166,9 @@ sub_80B072C: @ 80B072C movs r1, 0 bl task_add_01_battle_start movs r0, 0x7 - bl sav12_xor_increment + bl IncrementGameStat movs r0, 0x8 - bl sav12_xor_increment + bl IncrementGameStat bl sub_80EECC8 bl sub_80B1218 pop {r0} @@ -217,9 +217,9 @@ sub_80B07B4: @ 80B07B4 movs r1, 0 bl task_add_01_battle_start movs r0, 0x7 - bl sav12_xor_increment + bl IncrementGameStat movs r0, 0x8 - bl sav12_xor_increment + bl IncrementGameStat bl sub_80EECC8 bl sub_80B1218 pop {r0} @@ -236,9 +236,9 @@ task_add_01_battle_start_with_music_and_stats: @ 80B0804 movs r1, 0 bl task_add_01_battle_start movs r0, 0x7 - bl sav12_xor_increment + bl IncrementGameStat movs r0, 0x9 - bl sav12_xor_increment + bl IncrementGameStat bl sub_80B1234 pop {r0} bx r0 @@ -267,9 +267,9 @@ _080B0846: bl task_add_01_battle_start _080B0856: movs r0, 0x7 - bl sav12_xor_increment + bl IncrementGameStat movs r0, 0x9 - bl sav12_xor_increment + bl IncrementGameStat bl sub_80B1234 pop {r0} bx r0 @@ -315,9 +315,9 @@ sub_80B08A8: @ 80B08A8 movs r1, 0 bl task_add_01_battle_start movs r0, 0x7 - bl sav12_xor_increment + bl IncrementGameStat movs r0, 0x8 - bl sav12_xor_increment + bl IncrementGameStat bl sub_80EECC8 bl sub_80B1218 pop {r0} @@ -342,9 +342,9 @@ sub_80B08EC: @ 80B08EC movs r1, 0 bl task_add_01_battle_start movs r0, 0x7 - bl sav12_xor_increment + bl IncrementGameStat movs r0, 0x8 - bl sav12_xor_increment + bl IncrementGameStat bl sub_80EECC8 bl sub_80B1218 pop {r0} @@ -444,9 +444,9 @@ _080B09F4: bl task_add_01_battle_start _080B09FE: movs r0, 0x7 - bl sav12_xor_increment + bl IncrementGameStat movs r0, 0x8 - bl sav12_xor_increment + bl IncrementGameStat bl sub_80EECC8 bl sub_80B1218 pop {r4} @@ -482,9 +482,9 @@ _080B0A50: bl task_add_01_battle_start _080B0A5A: movs r0, 0x7 - bl sav12_xor_increment + bl IncrementGameStat movs r0, 0x8 - bl sav12_xor_increment + bl IncrementGameStat bl sub_80EECC8 bl sub_80B1218 pop {r0} @@ -540,9 +540,9 @@ _080B0AD6: ldr r1, =0x000001df bl task_add_01_battle_start movs r0, 0x7 - bl sav12_xor_increment + bl IncrementGameStat movs r0, 0x8 - bl sav12_xor_increment + bl IncrementGameStat bl sub_80EECC8 bl sub_80B1218 pop {r0} @@ -564,8 +564,8 @@ sub_80B0AF8: @ 80B0AF8 bl CpuSet movs r0, 0 movs r1, 0x80 - bl ResetSpriteRange - ldr r0, =gUnknown_0202433A + bl ResetOamRange + ldr r0, =gBattleOutcome ldrb r0, [r0] bl battle_exit_is_player_defeat cmp r0, 0x1 @@ -609,8 +609,8 @@ sub_80B0B6C: @ 80B0B6C bl CpuSet movs r0, 0 movs r1, 0x80 - bl ResetSpriteRange - ldr r0, =gUnknown_0202433A + bl ResetOamRange + ldr r0, =gBattleOutcome ldrb r0, [r0] bl battle_exit_is_player_defeat cmp r0, 0x1 @@ -1344,7 +1344,7 @@ sub_80B1158: @ 80B1158 sub sp, 0x8 ldr r0, =0x00004023 bl GetVarPointer - ldr r2, =gUnknown_020375F0 + ldr r2, =gScriptResult ldrh r1, [r2] strh r1, [r0] ldrh r0, [r2] @@ -1392,9 +1392,9 @@ sub_80B11A8: @ 80B11A8 bl prev_quest_postbuffer_cursor_backup_reset bl overworld_poison_timer_set movs r0, 0x7 - bl sav12_xor_increment + bl IncrementGameStat movs r0, 0x8 - bl sav12_xor_increment + bl IncrementGameStat bl sub_80EECC8 bl sub_80B1218 _080B11F0: @@ -1418,7 +1418,7 @@ sub_80B1204: @ 80B1204 sub_80B1218: @ 80B1218 push {lr} movs r0, 0x8 - bl sub_80847F8 + bl GetGameStat movs r1, 0x3C bl __umodsi3 cmp r0, 0 @@ -1433,7 +1433,7 @@ _080B122E: sub_80B1234: @ 80B1234 push {lr} movs r0, 0x9 - bl sub_80847F8 + bl GetGameStat movs r1, 0x14 bl __umodsi3 cmp r0, 0 @@ -1669,7 +1669,7 @@ battle_80801F0: @ 80B13F8 ldrh r1, [r0] cmp r1, 0 beq _080B141A - ldr r0, =gUnknown_020375F2 + ldr r0, =gScriptLastTalked strh r1, [r0] lsls r0, r1, 24 lsrs r0, 24 @@ -1793,7 +1793,7 @@ _080B153C: adds r1, r5, 0 bl TrainerBattleLoadArgs bl battle_80801F0 - ldr r0, =gUnknown_020375F2 + ldr r0, =gScriptLastTalked ldrb r0, [r0] bl sub_81A9AA8 ldr r1, =gUnknown_02038BCA @@ -1803,7 +1803,7 @@ _080B156C: ldr r0, =gUnknown_08550014 adds r1, r5, 0 bl TrainerBattleLoadArgs - ldr r0, =gUnknown_020375F2 + ldr r0, =gScriptLastTalked ldrb r0, [r0] bl sub_81A9AA8 _080B157C: @@ -1833,7 +1833,7 @@ _080B15A8: adds r1, r5, 0 bl TrainerBattleLoadArgs bl battle_80801F0 - ldr r0, =gUnknown_020375F2 + ldr r0, =gScriptLastTalked ldrb r0, [r0] bl battle_init ldr r1, =gUnknown_02038BCA @@ -1843,7 +1843,7 @@ _080B15D8: ldr r0, =gUnknown_08550014 adds r1, r5, 0 bl TrainerBattleLoadArgs - ldr r0, =gUnknown_020375F2 + ldr r0, =gScriptLastTalked ldrb r0, [r0] bl battle_init b _080B157C @@ -1882,7 +1882,7 @@ SingleTrainerWantsBattle: @ 80B162C lsrs r0, 24 ldr r2, =gUnknown_03005DF0 strb r0, [r2] - ldr r4, =gUnknown_020375F2 + ldr r4, =gScriptLastTalked ldr r3, =gUnknown_02037350 lsls r2, r0, 3 adds r2, r0 @@ -1910,7 +1910,7 @@ TwoTrainersWantBattle: @ 80B1670 lsrs r0, 24 ldr r2, =gUnknown_03005DF0 strb r0, [r2] - ldr r4, =gUnknown_020375F2 + ldr r4, =gScriptLastTalked ldr r3, =gUnknown_02037350 lsls r2, r0, 3 adds r2, r0 @@ -2228,7 +2228,7 @@ sub_80B1918: @ 80B1918 lsls r0, 3 cmp r1, r0 beq _080B1946 - ldr r0, =gUnknown_0202433A + ldr r0, =gBattleOutcome ldrb r0, [r0] bl battle_exit_is_player_defeat cmp r0, 0x1 @@ -2284,7 +2284,7 @@ sub_80B1994: @ 80B1994 b _080B19E2 .pool _080B19B4: - ldr r0, =gUnknown_0202433A + ldr r0, =gBattleOutcome ldrb r0, [r0] bl battle_exit_is_player_defeat cmp r0, 0x1 @@ -2332,7 +2332,7 @@ sub_80B1A14: @ 80B1A14 ldrb r0, [r0] cmp r0, 0x1 bhi _080B1A44 - ldr r0, =gUnknown_020375F2 + ldr r0, =gScriptLastTalked ldrb r0, [r0] bl sub_81A9AA8 lsls r0, 16 @@ -2370,7 +2370,7 @@ _080B1A7C: ldrb r0, [r0] cmp r0, 0x1 bhi _080B1AAC - ldr r0, =gUnknown_020375F2 + ldr r0, =gScriptLastTalked ldrb r0, [r0] bl battle_init adds r1, r0, 0 @@ -2577,7 +2577,7 @@ _080B1C54: _080B1C5C: ldr r0, =0x000001a7 _080B1C5E: - bl current_map_music_set + bl PlayNewMapMusic _080B1C62: pop {r0} bx r0 @@ -3484,7 +3484,7 @@ CheckIfMultipleTrainersWantBattle: @ 80B22D8 ldr r1, =gUnknown_02038BF8 movs r0, 0x1 strb r0, [r1] - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 b _080B230A .pool @@ -3492,7 +3492,7 @@ _080B2300: ldr r1, =gUnknown_02038BF8 movs r0, 0 strb r0, [r1] - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 _080B230A: strh r0, [r1] diff --git a/asm/battle_transition.s b/asm/battle_transition.s index 2d9aa39fee..b6b0e3bf57 100644 --- a/asm/battle_transition.s +++ b/asm/battle_transition.s @@ -2175,10 +2175,10 @@ sub_81470D0: @ 81470D0 movs r3, 0x4 ldrsh r2, [r5, r3] movs r3, 0 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r4, r0, 4 adds r4, r0 lsls r4, 2 @@ -2202,10 +2202,10 @@ sub_81470D0: @ 81470D0 ldr r0, =0x0000ffff strh r0, [r4, 0x32] adds r0, r4, 0 - bl obj_alloc_rotscale_entry + bl InitSpriteAffineAnim ldrb r1, [r5, 0x8] adds r0, r4, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim movs r0, 0 pop {r4,r5} pop {r1} @@ -3806,7 +3806,7 @@ _08147DE4: ldrsh r0, [r4, r1] bl sub_814849C movs r0, 0x68 - bl audio_play + bl PlaySE ldr r1, [r5] ldrb r0, [r1] adds r0, 0x1 @@ -4313,7 +4313,7 @@ sub_8148218: @ 8148218 lsls r5, r0, 4 adds r5, r0 lsls r5, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r5, r1 movs r2, 0x24 ldrsh r0, [r4, r2] @@ -4331,7 +4331,7 @@ sub_8148218: @ 8148218 ldrb r0, [r6, 0x1] orrs r0, r1 strb r0, [r6, 0x1] - bl rotscale_alloc_entry + bl AllocOamMatrix lsls r0, 24 lsrs r0, 24 movs r3, 0x1F @@ -4346,7 +4346,7 @@ sub_8148218: @ 8148218 ands r1, r2 orrs r1, r0 strb r1, [r5, 0x3] - bl rotscale_alloc_entry + bl AllocOamMatrix lsls r0, 24 lsrs r0, 24 mov r1, r9 @@ -4378,12 +4378,12 @@ sub_8148218: @ 8148218 movs r1, 0x1 movs r2, 0x3 movs r3, 0x3 - bl CalcVecFromObjectCenterToObjectUpperLeft + bl CalcCenterToCornerVec adds r0, r6, 0 movs r1, 0x1 movs r2, 0x3 movs r3, 0x3 - bl CalcVecFromObjectCenterToObjectUpperLeft + bl CalcCenterToCornerVec ldrb r0, [r5, 0x3] lsls r0, 26 lsrs r0, 27 @@ -4398,7 +4398,7 @@ sub_8148218: @ 8148218 movs r4, 0 ldrsh r2, [r3, r4] movs r3, 0 - bl sub_8008478 + bl SetOamMatrixRotationScaling ldrb r0, [r6, 0x3] lsls r0, 26 lsrs r0, 27 @@ -4406,7 +4406,7 @@ sub_8148218: @ 8148218 movs r2, 0x80 lsls r2, 2 movs r3, 0 - bl sub_8008478 + bl SetOamMatrixRotationScaling add sp, 0x4 pop {r3,r4} mov r8, r3 @@ -4569,7 +4569,7 @@ _0814847C: thumb_func_start sub_8148484 sub_8148484: @ 8148484 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r0, 16 asrs r0, 16 lsls r2, r0, 4 @@ -4583,7 +4583,7 @@ sub_8148484: @ 8148484 thumb_func_start sub_814849C sub_814849C: @ 814849C - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, 16 asrs r0, 16 lsls r1, r0, 4 @@ -4599,7 +4599,7 @@ sub_814849C: @ 814849C thumb_func_start sub_81484B8 sub_81484B8: @ 81484B8 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, 16 asrs r0, 16 lsls r1, r0, 4 @@ -6736,13 +6736,13 @@ sub_8149628: @ 8149628 movs r4, 0 _0814963C: ldr r0, =sub_8149864 - bl obj_add_empty_with_callback + bl CreateInvisibleSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r2, r1, r0 movs r0, 0xF0 strh r0, [r2, 0x20] @@ -7098,7 +7098,7 @@ _0814993E: adds r0, 0x1 strh r0, [r1, 0x20] adds r0, r3, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0814994C: pop {r4-r6} pop {r0} @@ -7843,8 +7843,8 @@ sub_8149F08: @ 8149F08 thumb_func_start sub_8149F2C sub_8149F2C: @ 8149F2C push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 diff --git a/asm/berry.s b/asm/berry.s index a6ee3d077a..54c4333d51 100644 --- a/asm/berry.s +++ b/asm/berry.s @@ -256,9 +256,9 @@ _080E178E: bx r1 thumb_func_end WaterBerryTree - thumb_func_start RemoveAllBerryTrees -@ void RemoveAllBerryTrees() -RemoveAllBerryTrees: @ 80E1794 + thumb_func_start ClearBerryTrees +@ void ClearBerryTrees() +ClearBerryTrees: @ 80E1794 push {r4-r6,lr} movs r2, 0 ldr r6, =gSaveBlock1Ptr @@ -280,7 +280,7 @@ _080E17A2: pop {r0} bx r0 .pool - thumb_func_end RemoveAllBerryTrees + thumb_func_end ClearBerryTrees thumb_func_start BerryTreeGrow @ bool8 BerryTreeGrow(struct BerryTreeInfo *berryTree) @@ -836,7 +836,7 @@ FieldObjectInteractionGetBerryTreeData: @ 80E1B94 lsrs r6, r0, 24 adds r0, r5, 0 bl ResetBerryTreeSparkleFlag - ldr r0, =gUnknown_020375F2 + ldr r0, =gScriptLastTalked ldrb r0, [r0] ldr r1, =gSaveBlock1Ptr ldr r2, [r1] @@ -846,26 +846,26 @@ FieldObjectInteractionGetBerryTreeData: @ 80E1B94 lsls r0, 24 cmp r0, 0 beq _080E1BE0 - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 movs r0, 0xFF strh r0, [r1] b _080E1BEE .pool _080E1BE0: - ldr r4, =gUnknown_020375E0 + ldr r4, =gSpecialVar_0x8004 adds r0, r5, 0 bl GetStageByBerryTreeId lsls r0, 24 lsrs r0, 24 strh r0, [r4] _080E1BEE: - ldr r4, =gUnknown_020375E2 + ldr r4, =gSpecialVar_0x8005 adds r0, r5, 0 bl GetNumStagesWateredByBerryTreeId lsls r0, 24 lsrs r0, 24 strh r0, [r4] - ldr r4, =gUnknown_020375E4 + ldr r4, =gSpecialVar_0x8006 adds r0, r5, 0 bl GetBerryCountByBerryTreeId lsls r0, 24 @@ -980,7 +980,7 @@ FieldObjectInteractionPickBerryTree: @ 80E1CDC bl GetBerryTypeByBerryTreeId lsls r0, 24 lsrs r0, 24 - ldr r6, =gUnknown_020375E0 + ldr r6, =gSpecialVar_0x8004 bl BerryTypeToItemId adds r4, r0, 0 lsls r4, 16 @@ -991,7 +991,7 @@ FieldObjectInteractionPickBerryTree: @ 80E1CDC lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl bag_add_item + bl AddBagItem lsls r0, 24 lsrs r0, 24 strh r0, [r6] @@ -1011,7 +1011,7 @@ FieldObjectInteractionRemoveBerryTree: @ 80E1D28 lsls r0, 24 lsrs r0, 24 bl RemoveBerryTree - ldr r0, =gUnknown_020375F2 + ldr r0, =gScriptLastTalked ldrb r0, [r0] ldr r1, =gSaveBlock1Ptr ldr r2, [r1] diff --git a/asm/berry_blender.s b/asm/berry_blender.s index c1610a4721..c63b72647c 100644 --- a/asm/berry_blender.s +++ b/asm/berry_blender.s @@ -70,8 +70,8 @@ sub_807F764: @ 807F764 str r0, [sp, 0xC] movs r0, 0x2 bl SetBgAffine - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer add sp, 0x10 pop {r4} @@ -224,11 +224,11 @@ _0807F940: .pool _0807F950: ldr r0, =gUnknown_08339AC0 - bl LoadObjectPic + bl LoadSpriteSheet ldr r0, =gUnknown_08339BD8 - bl LoadObjectPic + bl LoadSpriteSheet ldr r0, =gUnknown_08339B38 - bl LoadObjectPic + bl LoadSpriteSheet _0807F962: ldr r0, =gUnknown_020322A4 ldr r1, [r0] @@ -240,13 +240,13 @@ _0807F966: .pool _0807F980: ldr r0, =gUnknown_08339C24 - bl LoadObjectPic + bl LoadSpriteSheet ldr r0, =gUnknown_08339C58 - bl LoadObjectPic + bl LoadSpriteSheet ldr r0, =gUnknown_08339AD0 - bl LoadTaggedObjectPalette + bl LoadSpritePalette ldr r0, =gUnknown_08339AC8 - bl LoadTaggedObjectPalette + bl LoadSpritePalette ldr r4, =gUnknown_020322A4 ldr r0, [r4] ldr r2, =0x000011bc @@ -370,7 +370,7 @@ _0807FA94: ldr r0, [r4] adds r0, 0x63 strb r1, [r0] - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrb r0, [r0] bl sub_807FE54 ldr r0, =sub_807FAC8 @@ -412,8 +412,8 @@ _0807FB08: movs r0, 0 movs r1, 0 bl SetGpuReg - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes movs r0, 0 bl SetVBlankCallback movs r0, 0 @@ -489,7 +489,7 @@ _0807FBBE: ldrb r2, [r5, 0x1] ldr r0, =gUnknown_08339AD8 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite ldr r1, [r6] adds r1, 0x50 adds r1, r4 @@ -501,13 +501,13 @@ _0807FBBE: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 adds r1, r4, 0 adds r1, 0x8 lsls r1, 24 lsrs r1, 24 - bl StartObjectImageAnim + bl StartSpriteAnim adds r5, 0x2 adds r4, 0x1 cmp r4, 0x3 @@ -605,8 +605,8 @@ _0807FCB0: ldr r0, [r0] strb r4, [r0] _0807FCE2: - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl RunTextPrinters bl UpdatePaletteFade add sp, 0x4 @@ -651,11 +651,11 @@ sub_807FD08: @ 807FD08 cmp r0, 0x3 ble _0807FD50 adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite b _0807FD56 _0807FD50: movs r0, 0x74 - bl audio_play + bl PlaySE _0807FD56: ldrh r0, [r4, 0x30] strh r0, [r4, 0x20] @@ -718,7 +718,7 @@ sub_807FD90: @ 807FD90 mov r3, r8 lsls r3, 2 mov r8, r3 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites add r8, r0 ldr r5, =gUnknown_08339C78 lsls r4, r6, 2 @@ -947,7 +947,7 @@ _0807FFC0: adds r0, r2 str r1, [r0] movs r2, 0 - ldr r5, =gUnknown_020375E0 + ldr r5, =gSpecialVar_0x8004 movs r3, 0 _0807FFD6: ldr r0, [r4] @@ -1093,7 +1093,7 @@ _08080126: ldrb r2, [r4, 0x1] ldr r0, =gUnknown_08339AD8 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite ldr r1, [r6] adds r1, 0x54 adds r1, r5 @@ -1105,13 +1105,13 @@ _08080126: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 adds r1, r5, 0 adds r1, 0x8 lsls r1, 24 lsrs r1, 24 - bl StartObjectImageAnim + bl StartSpriteAnim adds r4, 0x2 adds r5, 0x1 cmp r5, 0x3 @@ -1413,7 +1413,7 @@ _080803E0: adds r0, r2 bl sub_8082CB4 movs r0, 0x2B - bl audio_play + bl PlaySE movs r0, 0x2 bl ShowBg b _08080546 @@ -1477,7 +1477,7 @@ _08080408: movs r0, 0 str r0, [r1] movs r0, 0x34 - bl audio_play + bl PlaySE bl sub_808074C bl sub_80807BC _0808048C: @@ -1515,7 +1515,7 @@ _080804D0: negs r2, r2 movs r1, 0x78 movs r3, 0x3 - bl AddObjectToFront + bl CreateSprite b _080804F8 .pool _080804E4: @@ -1550,13 +1550,13 @@ _08080508: str r2, [r0] ldr r0, =sub_8081898 bl SetMainCallback2 - bl current_map_music_get + bl GetCurrentMapMusic lsls r0, 16 lsrs r0, 16 ldr r4, =0x00000193 cmp r0, r4 beq _08080540 - bl current_map_music_get + bl GetCurrentMapMusic ldr r1, [r5] movs r2, 0xAA lsls r2, 1 @@ -1564,7 +1564,7 @@ _08080508: strh r0, [r1] _08080540: adds r0, r4, 0 - bl song_play_for_text + bl PlayBGM _08080546: ldr r0, =gUnknown_020322A4 ldr r1, [r0] @@ -1579,8 +1579,8 @@ _08080546: ldrsh r1, [r1, r2] bl nullsub_31 bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl RunTextPrinters bl UpdatePaletteFade add sp, 0x4 @@ -1596,8 +1596,8 @@ sub_8080588: @ 8080588 movs r0, 0 movs r1, 0 bl SetGpuReg - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes bl ResetTasks ldr r0, =sub_807F764 bl SetVBlankCallback @@ -1764,7 +1764,7 @@ _080806DC: lsls r0, 24 cmp r0, 0 bne _0808071A - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0x1 bne _0808071A @@ -1919,12 +1919,12 @@ _080807E4: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 mov r1, r8 lsrs r4, r1, 24 adds r1, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim add r1, sp, 0x8 movs r0, 0xFF strb r0, [r1] @@ -2128,7 +2128,7 @@ _08080A0A: ldrb r2, [r5, 0x1] ldr r0, =gUnknown_08339AD8 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite ldr r1, [r6] adds r1, 0x54 adds r1, r4 @@ -2140,13 +2140,13 @@ _08080A0A: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 adds r1, r4, 0 adds r1, 0x8 lsls r1, 24 lsrs r1, 24 - bl StartObjectImageAnim + bl StartSpriteAnim adds r5, 0x2 adds r4, 0x1 cmp r4, 0x3 @@ -2325,7 +2325,7 @@ _08080BB0: strb r0, [r1] bl sub_808074C movs r0, 0x2B - bl audio_play + bl PlaySE ldr r0, [r4] movs r5, 0xA0 lsls r5, 1 @@ -2394,7 +2394,7 @@ _08080BDC: movs r1, 0 str r1, [r0] movs r0, 0x34 - bl audio_play + bl PlaySE bl sub_80807BC _08080C5C: ldr r0, [r4] @@ -2429,7 +2429,7 @@ _08080CA0: negs r2, r2 movs r1, 0x78 movs r3, 0x3 - bl AddObjectToFront + bl CreateSprite _08080CAE: ldr r0, =gUnknown_020322A4 ldr r1, [r0] @@ -2461,7 +2461,7 @@ _08080CC4: strb r3, [r0] ldr r0, =sub_8081898 bl SetMainCallback2 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0x1 bne _08080D44 @@ -2492,7 +2492,7 @@ _08080D30: _08080D42: strb r0, [r1] _08080D44: - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldrh r0, [r1] cmp r0, 0x1 bls _08080D80 @@ -2518,18 +2518,18 @@ _08080D5A: lsls r3, 17 adds r5, r3 adds r4, 0x1 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r4, r0 blt _08080D5A _08080D80: - bl current_map_music_get + bl GetCurrentMapMusic lsls r0, 16 lsrs r0, 16 ldr r4, =0x00000193 cmp r0, r4 beq _08080D9E - bl current_map_music_get + bl GetCurrentMapMusic ldr r1, =gUnknown_020322A4 ldr r1, [r1] movs r5, 0xAA @@ -2538,9 +2538,9 @@ _08080D80: strh r0, [r1] _08080D9E: adds r0, r4, 0 - bl song_play_for_text + bl PlayBGM movs r0, 0x35 - bl audio_play + bl PlaySE bl sub_807F738 _08080DAE: ldr r0, =gUnknown_020322A4 @@ -2557,8 +2557,8 @@ _08080DAE: ldrsh r1, [r1, r2] bl nullsub_31 bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl RunTextPrinters bl UpdatePaletteFade add sp, 0x4 @@ -3120,7 +3120,7 @@ sub_8081288: @ 8081288 subs r2, r1 adds r1, r6, 0 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 adds r2, r1, 0 @@ -3130,16 +3130,16 @@ sub_8081288: @ 8081288 lsls r4, r1, 4 adds r4, r1 lsls r4, 2 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites adds r0, r4, r5 movs r1, 0x2 - bl StartObjectImageAnim + bl StartSpriteAnim adds r5, 0x1C adds r4, r5 ldr r0, =sub_8082F9C str r0, [r4] movs r0, 0x28 - bl audio_play + bl PlaySE b _08081358 .pool _08081314: @@ -3149,12 +3149,12 @@ _08081314: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0x1F - bl audio_play + bl PlaySE b _08081358 .pool _0808133C: @@ -3164,12 +3164,12 @@ _0808133C: lsls r0, r2, 4 adds r0, r2 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0x20 - bl audio_play + bl PlaySE _08081358: bl sub_8082E84 pop {r3} @@ -3366,7 +3366,7 @@ sub_80814F4: @ 80814F4 mov r5, r8 push {r5-r7} sub sp, 0x8 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0 beq _0808153C @@ -3593,7 +3593,7 @@ _080816D2: bge _080816F6 b _08081562 _080816F6: - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0 beq _08081722 @@ -3696,12 +3696,12 @@ _080817BA: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 adds r1, r5, 0x4 lsls r1, 24 lsrs r1, 24 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r0, [r4] adds r0, 0x4A ldrh r0, [r0] @@ -3853,8 +3853,8 @@ _0808191A: ldrsh r1, [r1, r2] bl nullsub_31 bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl RunTextPrinters bl UpdatePaletteFade pop {r4-r6} @@ -4788,7 +4788,7 @@ _0808204C: lsls r0, 24 lsrs r4, r0, 24 _08082064: - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r4, r0 bcc _0808204C @@ -5050,12 +5050,12 @@ _08082292: cmp r0, 0 bne _080822A8 movs r0, 0x22 - bl sav12_xor_increment + bl IncrementGameStat b _08082458 .pool _080822A8: movs r0, 0x21 - bl sav12_xor_increment + bl IncrementGameStat b _08082458 _080822B0: ldr r6, =gUnknown_020322A4 @@ -5303,8 +5303,8 @@ _0808249E: ldrsh r1, [r1, r2] bl nullsub_31 bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl RunTextPrinters bl UpdatePaletteFade pop {r3} @@ -5664,7 +5664,7 @@ _080827FC: cmp r0, 0 beq _080828DC movs r0, 0x37 - bl audio_play + bl PlaySE ldr r0, =gUnknown_020322A4 ldr r1, [r0] b _080828BC @@ -5773,8 +5773,8 @@ _080828DC: ldrsh r1, [r1, r2] bl nullsub_31 bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl RunTextPrinters bl UpdatePaletteFade add sp, 0x4 @@ -5953,8 +5953,8 @@ _08082A92: ldrsh r1, [r1, r2] bl nullsub_31 bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl RunTextPrinters bl UpdatePaletteFade pop {r4-r6} @@ -6402,7 +6402,7 @@ _08082E68: cmp r0, 0 beq _08082E80 adds r0, r2, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _08082E80: pop {r0} bx r0 @@ -6423,9 +6423,9 @@ sub_8082E84: @ 8082E84 adds r0, r1, 0x1 cmp r0, 0 beq _08082F40 - ldr r0, =gUnknown_08329F40 + ldr r0, =gSineTable mov r9, r0 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites mov r10, r2 adds r6, r1, 0x1 movs r3, 0x1F @@ -6471,7 +6471,7 @@ _08082EF4: adds r2, 0x50 ldr r0, =gUnknown_08339BE0 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 @@ -6494,7 +6494,7 @@ _08082EF4: ands r0, r2 subs r0, r7, r0 strh r0, [r4, 0x30] - ldr r3, =gUnknown_0202064C + ldr r3, =gSprites + 0x1C adds r5, r3 ldr r0, =sub_8082E3C str r0, [r5] @@ -6533,7 +6533,7 @@ sub_8082F68: @ 8082F68 cmp r0, 0 beq _08082F94 adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _08082F94: pop {r4} pop {r0} @@ -6569,7 +6569,7 @@ _08082FC0: cmp r0, 0 beq _08082FD4 adds r0, r2, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _08082FD4: pop {r0} bx r0 @@ -6634,7 +6634,7 @@ _0808302C: adds r0, 0x1 strh r0, [r4, 0x2E] movs r0, 0x38 - bl audio_play + bl PlaySE b _080830B2 _0808304C: ldrh r0, [r4, 0x32] @@ -6667,13 +6667,13 @@ _08083066: cmp r0, 0x3 bne _080830A0 adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, =gUnknown_08339C60 movs r2, 0x14 negs r2, r2 movs r1, 0x78 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite b _080830B2 .pool _080830A0: @@ -6684,7 +6684,7 @@ _080830A0: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim _080830B2: ldrh r0, [r4, 0x30] strh r0, [r4, 0x26] @@ -6725,7 +6725,7 @@ _080830DC: adds r0, 0x1 strh r0, [r4, 0x2E] movs r0, 0x15 - bl audio_play + bl PlaySE b _08083130 _080830FC: ldrh r0, [r4, 0x32] @@ -6753,7 +6753,7 @@ _08083112: adds r0, 0x1 strb r0, [r1] adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _08083130: ldrh r0, [r4, 0x30] strh r0, [r4, 0x26] @@ -7259,9 +7259,9 @@ _080834DE: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 @@ -7622,7 +7622,7 @@ _080837EA: ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] movs r1, 0x1 - bl remove_item + bl RemoveBagItem adds r0, r7, 0 bl sub_8136F2C ldr r1, [r4] @@ -8063,7 +8063,7 @@ _08083B9A: movs r1, 0x80 movs r2, 0x34 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r7, =gUnknown_020322A4 ldr r1, [r7] adds r1, 0x46 @@ -8074,10 +8074,10 @@ _08083B9A: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites adds r0, r6 movs r1, 0x3 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r0, [r7] adds r0, 0x46 ldrb r1, [r0] @@ -8087,13 +8087,13 @@ _08083B9A: adds r5, r6, 0 adds r5, 0x1C adds r0, r5 - ldr r4, =DummyObjectCallback + ldr r4, =SpriteCallbackDummy str r4, [r0] mov r0, r8 movs r1, 0xA0 movs r2, 0x34 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r1, [r7] adds r1, 0x47 strb r0, [r1] @@ -8109,7 +8109,7 @@ _08083B9A: movs r1, 0xC0 movs r2, 0x34 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r1, [r7] adds r1, 0x48 strb r0, [r1] @@ -8121,7 +8121,7 @@ _08083B9A: lsls r0, 2 adds r0, r6 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r0, [r7] adds r0, 0x48 ldrb r1, [r0] @@ -8303,7 +8303,7 @@ _08083DE2: cmp r0, 0 beq _08083E12 movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =gUnknown_020322A4 ldr r1, [r0] _08083DF8: @@ -8460,12 +8460,12 @@ sub_8083F3C: @ 8083F3C cmp r0, 0 bne _08083F62 ldr r0, =0x0000016f - bl fanfare_play + bl PlayFanfare ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _08083F62: - bl task_is_not_running_overworld_fanfare + bl IsFanfareTaskInactive lsls r0, 24 cmp r0, 0 beq _08083F82 @@ -8475,7 +8475,7 @@ _08083F62: lsls r1, 1 adds r0, r1 ldrh r0, [r0] - bl song_play_for_text + bl PlayBGM adds r0, r5, 0 bl DestroyTask _08083F82: diff --git a/asm/berry_tag_screen.s b/asm/berry_tag_screen.s index afb9a59fb0..b03c56ed42 100644 --- a/asm/berry_tag_screen.s +++ b/asm/berry_tag_screen.s @@ -34,8 +34,8 @@ sub_8177C14: @ 8177C14 sub_8177C54: @ 8177C54 push {lr} bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl do_scheduled_bg_tilemap_copies_to_vram bl UpdatePaletteFade pop {r0} @@ -45,8 +45,8 @@ sub_8177C54: @ 8177C54 thumb_func_start sub_8177C70 sub_8177C70: @ 8177C70 push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -130,10 +130,10 @@ _08177D2C: b _08177DDA .pool _08177D40: - bl ResetAllObjectData + bl ResetSpriteData b _08177DDC _08177D46: - bl ResetObjectPaletteAllocator + bl FreeAllSpritePalettes b _08177DDC _08177D4C: bl sub_81221AC @@ -830,9 +830,9 @@ sub_817836C: @ 817836C lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeTiles + bl DestroySprite bl sub_80D510C pop {r0} bx r0 @@ -893,7 +893,7 @@ sub_8178404: @ 8178404 ldrb r0, [r5, 0x15] cmp r0, 0 beq _08178448 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r0, [r4] ldr r1, =0x00001803 adds r0, r1 @@ -910,7 +910,7 @@ sub_8178404: @ 8178404 b _08178462 .pool _08178448: - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r0, [r4] ldr r1, =0x00001803 adds r0, r1 @@ -1080,9 +1080,9 @@ _08178598: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 @@ -1102,7 +1102,7 @@ sub_81785D0: @ 81785D0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0x1 negs r0, r0 movs r1, 0 @@ -1222,7 +1222,7 @@ sub_81786AC: @ 81786AC lsls r1, r0, 16 lsrs r1, 16 movs r0, 0x4 - bl bag_pocket_get_itemid + bl BagGetItemIdByPocketPosition lsls r0, 16 cmp r0, 0 beq _08178718 @@ -1238,7 +1238,7 @@ _081786F6: movs r0, 0 strh r0, [r4] movs r0, 0x5 - bl audio_play + bl PlaySE lsls r0, r7, 24 asrs r0, 24 bl sub_8178728 @@ -1274,7 +1274,7 @@ sub_8178728: @ 8178728 lsls r1, 16 lsrs r1, 16 movs r0, 0x4 - bl bag_pocket_get_itemid + bl BagGetItemIdByPocketPosition lsls r0, 16 cmp r0, 0 bne _08178760 @@ -1308,7 +1308,7 @@ _0817877A: lsls r1, 16 lsrs r1, 16 movs r0, 0x4 - bl bag_pocket_get_itemid + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 bl ItemIdToBerryType @@ -1475,7 +1475,7 @@ _081788A6: _081788B8: ldrh r5, [r6] _081788BA: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r3, =gUnknown_0203BCF4 ldr r0, [r3] ldr r1, =0x00001802 diff --git a/asm/big_shroomish_barboach.s b/asm/big_shroomish_barboach.s index f3bc3cf8a1..585dbf3564 100644 --- a/asm/big_shroomish_barboach.s +++ b/asm/big_shroomish_barboach.s @@ -225,7 +225,7 @@ sub_80F9984: @ 80F9984 adds r7, r1, 0 lsls r0, 16 lsrs r6, r0, 16 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult ldrh r0, [r1] cmp r0, 0xFF bne _080F99A0 @@ -327,8 +327,8 @@ _080F9A6E: .pool thumb_func_end sub_80F9A14 - thumb_func_start sub_80F9A7C -sub_80F9A7C: @ 80F9A7C + thumb_func_start InitSeedotSizeRecord +InitSeedotSizeRecord: @ 80F9A7C push {lr} ldr r0, =0x00004047 movs r1, 0x80 @@ -337,7 +337,7 @@ sub_80F9A7C: @ 80F9A7C pop {r0} bx r0 .pool - thumb_func_end sub_80F9A7C + thumb_func_end InitSeedotSizeRecord thumb_func_start sub_80F9A90 sub_80F9A90: @ 80F9A90 @@ -359,7 +359,7 @@ sub_80F9AAC: @ 80F9AAC ldr r0, =0x00004047 bl GetVarPointer adds r1, r0, 0 - ldr r4, =gUnknown_020375F0 + ldr r4, =gScriptResult movs r0, 0x95 lsls r0, 1 bl sub_80F9984 @@ -372,8 +372,8 @@ sub_80F9AAC: @ 80F9AAC .pool thumb_func_end sub_80F9AAC - thumb_func_start sub_80F9AD4 -sub_80F9AD4: @ 80F9AD4 + thumb_func_start InitLotadSizeRecord +InitLotadSizeRecord: @ 80F9AD4 push {lr} ldr r0, =0x0000404f movs r1, 0x80 @@ -382,7 +382,7 @@ sub_80F9AD4: @ 80F9AD4 pop {r0} bx r0 .pool - thumb_func_end sub_80F9AD4 + thumb_func_end InitLotadSizeRecord thumb_func_start sub_80F9AE8 sub_80F9AE8: @ 80F9AE8 @@ -403,7 +403,7 @@ sub_80F9B04: @ 80F9B04 ldr r0, =0x0000404f bl GetVarPointer adds r1, r0, 0 - ldr r4, =gUnknown_020375F0 + ldr r4, =gScriptResult ldr r0, =0x00000127 bl sub_80F9984 lsls r0, 24 @@ -466,7 +466,7 @@ _080F9B6A: ldrb r1, [r0] adds r0, r4, 0 mov r2, r8 - bl pokemon_setattr + bl SetMonData movs r7, 0x1 _080F9B9C: adds r5, 0x1 diff --git a/asm/bike.s b/asm/bike.s index 9c64bcf4e8..8a064bcf24 100644 --- a/asm/bike.s +++ b/asm/bike.s @@ -1164,7 +1164,7 @@ _08119A58: ldr r0, =gUnknown_02037350 adds r4, r0 movs r0, 0x22 - bl audio_play + bl PlaySE ldrb r0, [r4, 0x1] movs r1, 0x2 orrs r0, r1 diff --git a/asm/braille_puzzles.s b/asm/braille_puzzles.s index c835724716..7015f1d7ae 100644 --- a/asm/braille_puzzles.s +++ b/asm/braille_puzzles.s @@ -70,7 +70,7 @@ sub_817963C: @ 817963C bl MapGridSetMetatileIdAt bl DrawWholeMapView movs r0, 0x14 - bl audio_play + bl PlaySE ldr r0, =0x000008af bl FlagSet bl script_env_2_disable @@ -92,7 +92,7 @@ sub_81796AC: @ 81796AC cmp r0, r1 bne _081796F4 bl calc_player_party_count - ldr r0, =gUnknown_020244E9 + ldr r0, =gPlayerPartyCount ldrb r1, [r0] movs r0, 0x64 muls r0, r1 @@ -322,7 +322,7 @@ sub_8179860: @ 8179860 bl MapGridSetMetatileIdAt bl DrawWholeMapView movs r0, 0x14 - bl audio_play + bl PlaySE movs r0, 0x8B lsls r0, 4 bl FlagSet @@ -418,7 +418,7 @@ sub_8179944: @ 8179944 bl MapGridSetMetatileIdAt bl DrawWholeMapView movs r0, 0x14 - bl audio_play + bl PlaySE ldr r0, =0x000008b2 bl FlagSet bl script_env_2_disable diff --git a/asm/cable_car.s b/asm/cable_car.s index 3d82586fe5..cefd2ef890 100644 --- a/asm/cable_car.s +++ b/asm/cable_car.s @@ -165,9 +165,9 @@ _0814FD4E: b _08150224 .pool _0814FDD8: - bl ResetAllObjectData + bl ResetSpriteData bl ResetTasks - bl ResetObjectPaletteAllocator + bl FreeAllSpritePalettes bl ResetPaletteFade bl reset_temp_tile_data_buffers bl sub_80AAFA4 @@ -187,7 +187,7 @@ _0814FDFC: cmp r4, 0x13 bls _0814FDFC bl InitMapMusic - bl map_music_set_to_zero + bl ResetMapMusic movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_085CD66C @@ -214,8 +214,8 @@ _0814FDFC: adds r1, r2 movs r0, 0x3 bl SetBgTilemapBuffer - ldr r2, =gUnknown_02021BBC - ldr r1, =gUnknown_02021BBE + ldr r2, =gSpriteCoordOffsetX + ldr r1, =gSpriteCoordOffsetY movs r0, 0 strh r0, [r1] strh r0, [r2] @@ -241,7 +241,7 @@ _0814FE96: cmp r4, 0x2 bls _0814FE96 ldr r0, =gUnknown_085CDB74 - bl LoadTaggedObjectPalettes + bl LoadSpritePalettes ldr r0, =gUnknown_085CD67C adds r1, r5, 0 bl malloc_and_decompress @@ -435,7 +435,7 @@ _0814FFF8: b _08150224 .pool _08150090: - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrb r0, [r0] bl sub_81514C8 ldr r1, =gUnknown_0203ABAC @@ -558,7 +558,7 @@ _08150190: bl BeginNormalPaletteFade ldr r0, =0x000001a9 movs r1, 0x1 - bl sub_80A3194 + bl FadeInNewBGM movs r0, 0x1 bl sub_8150B6C ldr r1, =gMain @@ -587,7 +587,7 @@ _081501C8: ldr r0, =sub_81503E4 movs r1, 0 bl CreateTask - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0 bne _08150218 @@ -618,8 +618,8 @@ _08150226: mainloop: @ 815023C push {lr} bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade bl MapMusicMain pop {r0} @@ -643,7 +643,7 @@ c2_8011A1C: @ 8150258 bl HideBg movs r0, 0 bl sub_8150B6C - ldr r0, =gUnknown_02021BBC + ldr r0, =gSpriteCoordOffsetX strh r4, [r0] movs r0, 0 bl sub_80AB130 @@ -664,7 +664,7 @@ _08150298: cmp r4, 0x13 bls _08150298 bl ResetTasks - bl ResetAllObjectData + bl ResetSpriteData bl ResetPaletteFade movs r0, 0 bl UnsetBgTilemapBuffer @@ -942,7 +942,7 @@ _081504EA: movs r3, 0x10 bl BeginNormalPaletteFade movs r0, 0x4 - bl play_sound_effect + bl FadeOutBGM b _08150542 .pool _08150510: @@ -1091,7 +1091,7 @@ _081505F4: strb r0, [r1, 0x15] _08150630: bl sub_815115C - ldr r3, =gUnknown_02021BBC + ldr r3, =gSpriteCoordOffsetX movs r0, 0 ldrsh r2, [r3, r0] adds r1, r2, 0x1 @@ -1284,7 +1284,7 @@ _081507B6: ldrh r1, [r1, 0x4] cmp r0, r1 bcs _081507DC - ldr r4, =gUnknown_02021BBC + ldr r4, =gSpriteCoordOffsetX movs r1, 0 ldrsh r0, [r4, r1] b _081507E6 @@ -1339,8 +1339,8 @@ sub_8150800: @ 8150800 ldrb r1, [r0, 0x9] movs r0, 0x12 bl SetGpuReg - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r4} pop {r0} @@ -1362,7 +1362,7 @@ sub_8150868: @ 8150868 ldrb r0, [r6, 0x1] cmp r0, 0xFF beq _08150934 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0 bne _081508E4 @@ -1455,7 +1455,7 @@ sub_8150948: @ 8150948 bne _08150958 b _08150A60 _08150958: - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0 bne _081509C8 @@ -1641,7 +1641,7 @@ _08150AE0: cmp r0, 0xA0 ble _08150AEE adds r0, r2, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _08150AEE: pop {r0} bx r0 @@ -1710,7 +1710,7 @@ _08150B5A: cmp r0, 0x4F bgt _08150B68 adds r0, r2, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _08150B68: pop {r0} bx r0 @@ -1806,7 +1806,7 @@ _08150C1C: movs r0, 0x46 movs r1, 0 bl SetGpuReg - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r3, [r0] cmp r3, 0 bne _08150C74 @@ -1936,7 +1936,7 @@ sub_8150D28: @ 8150D28 ldr r0, [r0] str r0, [sp, 0x20] str r1, [sp, 0x24] - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] mov r8, r6 mov r10, r5 @@ -1961,7 +1961,7 @@ _08150D86: lsrs r6, r0, 24 cmp r6, 0x40 beq _08150DD0 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r6, 4 adds r1, r6 lsls r1, 2 @@ -1987,10 +1987,10 @@ _08150DD0: movs r1, 0xB0 movs r2, 0x2B movs r3, 0x67 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites lsls r0, r6, 4 adds r0, r6 lsls r0, 2 @@ -2007,7 +2007,7 @@ _08150DD0: movs r1, 0xC8 movs r2, 0x63 movs r3, 0x65 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 4 @@ -2067,7 +2067,7 @@ _08150E68: lsrs r6, r0, 24 cmp r6, 0x40 beq _08150ED4 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r6, 4 adds r1, r6 lsls r1, 2 @@ -2093,10 +2093,10 @@ _08150ED4: movs r1, 0x68 movs r2, 0x9 movs r3, 0x67 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites lsls r0, r6, 4 adds r0, r6 lsls r0, 2 @@ -2113,7 +2113,7 @@ _08150ED4: movs r1, 0x80 movs r2, 0x41 movs r3, 0x65 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 4 @@ -2138,7 +2138,7 @@ _08150ED4: bl sub_80AB130 _08150F3A: movs r4, 0 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites _08150F3E: lsls r1, r4, 20 movs r2, 0xC0 @@ -2151,7 +2151,7 @@ _08150F3E: asrs r2, 16 ldr r0, =gUnknown_085CDBCC movs r3, 0x68 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 4 @@ -2178,7 +2178,7 @@ _08150F3E: lsrs r0, 16 add r0, r8 ldrb r0, [r0] - ldr r5, =gUnknown_020375E0 + ldr r5, =gSpecialVar_0x8004 ldrh r4, [r5] lsls r4, 2 add r1, sp, 0x20 @@ -2200,7 +2200,7 @@ _08150F3E: lsrs r6, r0, 24 cmp r6, 0x40 beq _08151074 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r2, r6, 4 adds r0, r2, r6 lsls r0, 2 @@ -2252,7 +2252,7 @@ _08151036: adds r0, r4, 0 movs r1, 0x7 _08151044: - bl StartObjectImageAnim + bl StartSpriteAnim strh r7, [r4, 0x30] ldrh r0, [r4, 0x22] adds r0, 0x2 @@ -2262,10 +2262,10 @@ _08151052: adds r0, r4, 0 movs r1, 0x6 _08151056: - bl StartObjectImageAnim + bl StartSpriteAnim strh r5, [r4, 0x30] _0815105C: - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r2, r8 adds r1, r2, r6 lsls r1, 2 diff --git a/asm/cable_car_util.s b/asm/cable_car_util.s index dc7f49ffd5..7f396b6354 100644 --- a/asm/cable_car_util.s +++ b/asm/cable_car_util.s @@ -199,7 +199,7 @@ _08152208: cmp r5, r4 bcs _08152242 adds r3, r6, 0 - ldr r0, =gDefaultOamAttributes + ldr r0, =gDummyOamData mov r12, r0 movs r2, 0x4 mov r8, r2 @@ -254,7 +254,7 @@ _0815226C: bcs _08152292 ldr r0, =gUnknown_030024F8 mov r12, r0 - ldr r4, =gDefaultOamAttributes + ldr r4, =gDummyOamData adds r2, r5, 0 _0815227A: lsls r1, r3, 3 @@ -352,7 +352,7 @@ _08152322: lsls r0, r6, 3 ldr r1, =gUnknown_030024F8 adds r0, r1 - ldr r1, =gDefaultOamAttributes + ldr r1, =gDummyOamData ldm r1!, {r2,r3} stm r0!, {r2,r3} b _081523C0 @@ -448,7 +448,7 @@ sub_81523F4: @ 81523F4 cmp r4, 0 beq _08152430 ldrh r0, [r4, 0x10] - bl GetObjectTileRangeStartByTag + bl GetSpriteTileStartByTag lsls r0, 16 lsrs r5, r0, 16 ldr r0, =0x0000ffff @@ -656,7 +656,7 @@ _08152562: ldrh r3, [r3, 0x8] strh r3, [r5, 0xA] mov r0, r8 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 4 ldrb r1, [r5, 0x5] movs r4, 0xF @@ -748,7 +748,7 @@ _081525FC: lsls r1, r5, 3 ldr r0, =gUnknown_030024F8 adds r1, r0 - ldr r0, =gDefaultOamAttributes + ldr r0, =gDummyOamData ldm r0!, {r2,r3} stm r1!, {r2,r3} adds r0, r5, 0 diff --git a/asm/cable_club.s b/asm/cable_club.s index d716e488b4..73288455fa 100644 --- a/asm/cable_club.s +++ b/asm/cable_club.s @@ -432,7 +432,7 @@ sub_80B2688: @ 80B2688 cmp r0, 0x1 bne _080B26EC movs r0, 0x15 - bl audio_play + bl PlaySE ldr r0, =gUnknown_082780B3 bl box_related_two__3 ldr r0, =sub_80B270C @@ -440,7 +440,7 @@ sub_80B2688: @ 80B2688 .pool _080B26EC: movs r0, 0x16 - bl audio_play + bl PlaySE ldr r0, =gUnknown_08278131 bl box_related_two__3 ldr r0, =sub_80B2918 @@ -614,7 +614,7 @@ _080B2878: cmp r0, 0 beq _080B2898 movs r0, 0x5 - bl audio_play + bl PlaySE bl sub_800A620 ldr r0, =gTasks lsls r1, r6, 2 @@ -663,7 +663,7 @@ sub_80B28A8: @ 80B28A8 b _080B2908 .pool _080B28F4: - ldr r4, =gUnknown_020375F0 + ldr r4, =gScriptResult adds r0, r7, 0 adds r1, r6, 0 bl sub_80B2478 @@ -703,7 +703,7 @@ sub_80B2918: @ 80B2918 bl sub_80B24F8 cmp r0, 0x1 beq _080B29E6 - ldr r4, =gUnknown_020375F0 + ldr r4, =gScriptResult adds r0, r6, 0 adds r1, r5, 0 bl sub_80B2478 @@ -791,7 +791,7 @@ sub_80B2A08: @ 80B2A08 bl sub_80B24F8 cmp r0, 0x1 beq _080B2ACE - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0x4 bne _080B2A38 @@ -941,7 +941,7 @@ _080B2B5E: mov r1, r8 cmp r1, 0x1 ble _080B2B20 - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 strh r7, [r0] adds r0, r2, 0 add sp, 0x8 @@ -1067,7 +1067,7 @@ _080B2C7E: movs r0, 0 bl sub_800B330 bl sub_800A5B4 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult adds r1, r5, 0 bl task_map_chg_seq_0807EC34 _080B2C9C: @@ -1111,7 +1111,7 @@ sub_80B2CEC: @ 80B2CEC adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x5 strh r0, [r1] ldr r0, =gTasks @@ -1139,7 +1139,7 @@ sub_80B2D2C: @ 80B2D2C adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x6 strh r0, [r1] ldr r0, =gTasks @@ -1197,7 +1197,7 @@ sub_80B2DA4: @ 80B2DA4 push {r4,lr} movs r3, 0x2 movs r2, 0x2 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0x2 beq _080B2DDC @@ -1284,7 +1284,7 @@ sub_80B2E4C: @ 80B2E4C thumb_func_start sub_80B2E74 sub_80B2E74: @ 80B2E74 push {lr} - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r1, =gUnknown_020229C6 @@ -1353,7 +1353,7 @@ sub_80B2EE4: @ 80B2EE4 b _080B2FC6 .pool _080B2F0C: - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0x1 bne _080B2FA8 @@ -1415,7 +1415,7 @@ _080B2F74: _080B2F82: cmp r7, 0 beq _080B2FA8 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0xC strh r0, [r1] bl sub_800AD10 @@ -1517,7 +1517,7 @@ sub_80B3050: @ 80B3050 b _080B3134 .pool _080B3068: - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] subs r0, 0x1 cmp r0, 0x8 @@ -1855,15 +1855,15 @@ _080B3354: cmp r0, 0 beq _080B3370 ldr r0, =0x000001dd - bl current_map_music_set__default_for_battle + bl PlayNewMapMusic__default_for_battle b _080B3378 .pool _080B3370: movs r0, 0xEE lsls r0, 1 - bl current_map_music_set__default_for_battle + bl PlayNewMapMusic__default_for_battle _080B3378: - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] bl sub_80B3260 bl overworld_free_bg_tilemaps @@ -2025,18 +2025,18 @@ _080B34DE: cmp r0, 0 beq _080B34FC ldr r0, =0x000001dd - bl current_map_music_set__default_for_battle + bl PlayNewMapMusic__default_for_battle b _080B3504 .pool _080B34FC: movs r0, 0xEE lsls r0, 1 - bl current_map_music_set__default_for_battle + bl PlayNewMapMusic__default_for_battle _080B3504: ldr r1, =gUnknown_020229E8 ldr r0, =0x00002211 str r0, [r1, 0x14] - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] bl sub_80B3260 bl overworld_free_bg_tilemaps @@ -2156,11 +2156,11 @@ sub_80B360C: @ 80B360C negs r1, r1 ands r0, r1 str r0, [r2] - bl call_map_music_set_to_zero + bl call_ResetMapMusic bl copy_player_party_from_sav1 bl copy_bags_and_unk_data_to_save_blocks bl sub_813BF10 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] subs r0, 0x1 lsls r0, 16 @@ -2176,7 +2176,7 @@ sub_80B360C: @ 80B360C ldrb r0, [r0] cmp r0, 0 beq _080B36B2 - ldr r0, =gUnknown_0202433A + ldr r0, =gBattleOutcome ldrb r0, [r0] cmp r0, 0x1 beq _080B3670 @@ -2238,7 +2238,7 @@ _080B36D0: thumb_func_start sub_80B36EC sub_80B36EC: @ 80B36EC push {lr} - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] subs r0, r1, 0x1 lsls r0, 16 @@ -2308,7 +2308,7 @@ _080B376C: cmp r0, 0 beq _080B37CC bl sub_8087288 - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrb r0, [r0] bl sub_8009628 movs r0, 0x2 @@ -2584,7 +2584,7 @@ sub_80B39A4: @ 80B39A4 thumb_func_start sp02A_crash_sound sp02A_crash_sound: @ 80B39BC push {lr} - ldr r0, =gUnknown_020375E4 + ldr r0, =gSpecialVar_0x8006 ldrb r0, [r0] ldr r1, =c2_exit_to_overworld_1_continue_scripts_restart_music bl sub_80C4E74 @@ -2599,7 +2599,7 @@ sub_80B39D4: @ 80B39D4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gUnknown_020375E4 + ldr r0, =gSpecialVar_0x8006 strh r4, [r0] ldr r0, =gStringVar1 lsls r1, r4, 3 diff --git a/asm/calculate_base_damage.s b/asm/calculate_base_damage.s index 379a8c46ac..5aabfc4c36 100644 --- a/asm/calculate_base_damage.s +++ b/asm/calculate_base_damage.s @@ -36,7 +36,7 @@ sub_806957C: @ 806957C movs r5, 0 cmp r3, 0 bne _080695D4 - ldr r2, =gUnknown_020244E0 + ldr r2, =gBattleMovePower ldr r1, =gBattleMoves ldr r3, [sp, 0x8] lsls r0, r3, 1 @@ -48,7 +48,7 @@ sub_806957C: @ 806957C b _080695D8 .pool _080695D4: - ldr r0, =gUnknown_020244E0 + ldr r0, =gBattleMovePower strh r3, [r0] _080695D8: cmp r7, 0 @@ -82,7 +82,7 @@ _08069602: ldrh r0, [r6, 0x2E] cmp r0, 0xAF bne _08069634 - ldr r1, =gUnknown_02024404 + ldr r1, =gEnigmaBerries ldr r2, [sp, 0x10] lsls r0, r2, 3 subs r0, r2 @@ -95,12 +95,12 @@ _08069602: .pool _08069634: ldrh r0, [r6, 0x2E] - bl itemid_get_x12 + bl ItemId_GetHoldEffect lsls r0, 24 lsrs r0, 24 mov r9, r0 ldrh r0, [r6, 0x2E] - bl itemid_get_quality + bl ItemId_GetHoldEffectParam lsls r0, 24 lsrs r0, 24 _0806964A: @@ -109,7 +109,7 @@ _0806964A: ldrh r0, [r1, 0x2E] cmp r0, 0xAF bne _0806967E - ldr r1, =gUnknown_02024404 + ldr r1, =gEnigmaBerries ldr r2, [sp, 0x14] lsls r0, r2, 3 subs r0, r2 @@ -131,13 +131,13 @@ _0806966C: _0806967E: ldr r3, [sp, 0x4] ldrh r0, [r3, 0x2E] - bl itemid_get_x12 + bl ItemId_GetHoldEffect lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x20] ldr r1, [sp, 0x4] ldrh r0, [r1, 0x2E] - bl itemid_get_quality + bl ItemId_GetHoldEffectParam _08069694: adds r0, r6, 0 adds r0, 0x20 @@ -212,7 +212,7 @@ _08069708: str r0, [sp, 0x1C] _08069728: movs r2, 0 - ldr r4, =gUnknown_08329D74 + ldr r4, =gHoldEffectToType ldr r3, [sp, 0x4] adds r3, 0x20 str r3, [sp, 0x2C] @@ -405,7 +405,7 @@ _08069898: movs r1, 0 movs r2, 0x3A movs r3, 0 - bl ability_something + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 beq _080698C6 @@ -429,7 +429,7 @@ _080698C6: movs r1, 0 movs r2, 0x39 movs r3, 0 - bl ability_something + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 beq _080698F8 @@ -483,11 +483,11 @@ _08069936: movs r1, 0 movs r2, 0 movs r3, 0xFD - bl ability_something + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 beq _0806995A - ldr r1, =gUnknown_020244E0 + ldr r1, =gBattleMovePower ldrh r0, [r1] lsrs r0, 1 strh r0, [r1] @@ -501,11 +501,11 @@ _0806995A: movs r1, 0 movs r2, 0 movs r3, 0xFE - bl ability_something + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 beq _0806997E - ldr r1, =gUnknown_020244E0 + ldr r1, =gBattleMovePower ldrh r0, [r1] lsrs r0, 1 strh r0, [r1] @@ -525,7 +525,7 @@ _0806997E: lsrs r0, 16 cmp r1, r0 bhi _080699AE - ldr r4, =gUnknown_020244E0 + ldr r4, =gBattleMovePower ldrh r1, [r4] movs r0, 0x96 muls r0, r1 @@ -548,7 +548,7 @@ _080699AE: lsrs r0, 16 cmp r1, r0 bhi _080699DE - ldr r4, =gUnknown_020244E0 + ldr r4, =gBattleMovePower ldrh r1, [r4] movs r0, 0x96 muls r0, r1 @@ -571,7 +571,7 @@ _080699DE: lsrs r0, 16 cmp r1, r0 bhi _08069A0E - ldr r4, =gUnknown_020244E0 + ldr r4, =gBattleMovePower ldrh r1, [r4] movs r0, 0x96 muls r0, r1 @@ -594,7 +594,7 @@ _08069A0E: lsrs r0, 16 cmp r1, r0 bhi _08069A3E - ldr r4, =gUnknown_020244E0 + ldr r4, =gBattleMovePower ldrh r1, [r4] movs r0, 0x96 muls r0, r1 @@ -603,7 +603,7 @@ _08069A0E: strh r0, [r4] _08069A3E: ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA + ldr r0, =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -653,7 +653,7 @@ _08069AA6: bl __divsi3 adds r5, r0, 0 _08069ABE: - ldr r0, =gUnknown_020244E0 + ldr r0, =gBattleMovePower ldrh r0, [r0] muls r5, r0 adds r0, r6, 0 @@ -821,7 +821,7 @@ _08069C02: bl __divsi3 adds r5, r0, 0 _08069C1A: - ldr r0, =gUnknown_020244E0 + ldr r0, =gBattleMovePower ldrh r0, [r0] muls r5, r0 adds r0, r6, 0 @@ -933,7 +933,7 @@ _08069CFC: movs r1, 0 movs r2, 0xD movs r3, 0 - bl ability_something + bl AbilityBattleEffects lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -943,7 +943,7 @@ _08069CFC: movs r1, 0 movs r2, 0x4D movs r3, 0 - bl ability_something + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 bne _08069DAC @@ -978,7 +978,7 @@ _08069D64: ands r0, r1 cmp r0, 0 beq _08069D7C - ldr r0, =gUnknown_020241EA + ldr r0, =gCurrentMove ldrh r0, [r0] cmp r0, 0x4C bne _08069D7C @@ -1010,7 +1010,7 @@ _08069DA6: adds r0, r5, r0 asrs r5, r0, 1 _08069DAC: - ldr r0, =gUnknown_020244A8 + ldr r0, =gBattleResources ldr r0, [r0] ldr r0, [r0, 0x4] ldr r7, [sp, 0x10] diff --git a/asm/clear_save_data_screen.s b/asm/clear_save_data_screen.s index 118c6f4f7a..9eff4a7756 100644 --- a/asm/clear_save_data_screen.s +++ b/asm/clear_save_data_screen.s @@ -107,7 +107,7 @@ _0817AD68: .pool _0817ADA0: movs r0, 0x5 - bl audio_play + bl PlaySE adds r0, r5, 0 bl DestroyTask ldr r0, =sub_817AFD4 @@ -126,7 +126,7 @@ sub_817ADC0: @ 817ADC0 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - bl calls_flash_erase_block + bl ClearSaveData adds r0, r4, 0 bl DestroyTask ldr r0, =sub_817AFD4 @@ -272,7 +272,7 @@ _0817AEEC: cmp r1, r2 bls _0817AEEC bl ResetTasks - bl ResetAllObjectData + bl ResetSpriteData movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_085F06C0 diff --git a/asm/clock.s b/asm/clock.s index fff679dfc1..9a40213f52 100644 --- a/asm/clock.s +++ b/asm/clock.s @@ -10,11 +10,11 @@ sub_809E778: @ 809E778 push {lr} ldr r0, =0x00000895 bl FlagSet - bl GameFreakRTC_CalcLocalDateTime + bl RtcCalcLocalTime ldr r0, =gSaveBlock2Ptr ldr r2, [r0] adds r2, 0xA0 - ldr r3, =gUnknown_03005CF8 + ldr r3, =gLocalTime ldr r0, [r3] ldr r1, [r3, 0x4] str r0, [r2] @@ -39,8 +39,8 @@ sub_809E7B0: @ 809E7B0 lsls r0, 24 cmp r0, 0 bne _0809E7DA - bl GameFreakRTC_CalcLocalDateTime - ldr r4, =gUnknown_03005CF8 + bl RtcCalcLocalTime + ldr r4, =gLocalTime adds r0, r4, 0 bl sub_809E7E8 adds r0, r4, 0 @@ -70,7 +70,7 @@ sub_809E7E8: @ 809E7E8 subs r4, r0 lsls r4, 16 lsrs r4, 16 - bl sub_809D3A0 + bl ClearUpperFlags adds r0, r4, 0 bl sub_8122580 adds r0, r4, 0 @@ -111,7 +111,7 @@ sub_809E858: @ 809E858 adds r1, 0xA0 mov r0, sp adds r2, r5, 0 - bl GameFreakRTC_GetDelta + bl CalcTimeDifference mov r0, sp movs r2, 0 ldrsh r1, [r0, r2] diff --git a/asm/contest.s b/asm/contest.s index 0e66e6d651..0e2f457409 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -10,14 +10,14 @@ TaskDummy1: @ 80D7668 bx lr thumb_func_end TaskDummy1 - thumb_func_start sub_80D766C -sub_80D766C: @ 80D766C + thumb_func_start ResetLinkContestBoolean +ResetLinkContestBoolean: @ 80D766C ldr r1, =gUnknown_02039F2A movs r0, 0 strb r0, [r1] bx lr .pool - thumb_func_end sub_80D766C + thumb_func_end ResetLinkContestBoolean thumb_func_start sub_80D7678 sub_80D7678: @ 80D7678 @@ -570,10 +570,10 @@ _080D7B4E: movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] - bl ResetAllObjectData + bl ResetSpriteData bl ResetTasks - bl ResetObjectPaletteAllocator - ldr r1, =gUnknown_0300301C + bl FreeAllSpritePalettes + ldr r1, =gReservedSpritePaletteCount movs r0, 0x4 strb r0, [r1] ldr r0, =0x02000000 @@ -1048,7 +1048,7 @@ _080D8004: bl sub_80DC594 bl sub_80DC5E8 bl sub_80DC7EC - ldr r1, =gUnknown_02024076 + ldr r1, =gBanksBySide strb r4, [r1] movs r0, 0x1 strb r0, [r1, 0x1] @@ -1058,12 +1058,12 @@ _080D8004: strb r2, [r1, 0x3] ldr r0, =gBattleTypeFlags str r4, [r0] - ldr r4, =gUnknown_0202420B + ldr r4, =gBankAttacker strb r2, [r4] - ldr r0, =gEnemyMonIndex + ldr r0, =gBankTarget strb r3, [r0] bl sub_80DB0C4 - ldr r2, =gUnknown_020241E4 + ldr r2, =gBankSpriteIds ldrb r1, [r4] adds r1, r2 strb r0, [r1] @@ -1184,7 +1184,7 @@ _080D814C: strh r0, [r4, 0xA] movs r0, 0x61 movs r1, 0 - bl audio_play_and_stuff + bl PlaySE12WithPanning ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] @@ -1285,9 +1285,9 @@ _080D822C: thumb_func_start sub_80D823C sub_80D823C: @ 80D823C push {r4,r5,lr} - bl CallObjectCallbacks + bl AnimateSprites bl RunTasks - bl PrepareSpritesForOamLoad + bl BuildOamBuffer bl UpdatePaletteFade movs r4, 0 _080D8250: @@ -1365,8 +1365,8 @@ vblank_cb_battle: @ 80D827C movs r0, 0x46 bl SetGpuReg bl TransferPlttBuffer - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl sub_80BA0A8 pop {r0} bx r0 @@ -1473,7 +1473,7 @@ sub_80D8424: @ 80D8424 bne _080D8482 _080D843C: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =gUnknown_02039F25 ldrb r0, [r0] bl sub_80DBCA8 @@ -1703,7 +1703,7 @@ _080D8634: cmp r5, 0 beq _080D8670 movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =gTasks lsls r1, r7, 2 adds r1, r7 @@ -1734,7 +1734,7 @@ _080D868C: b _080D87FA _080D868E: movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0 bl sub_80DC490 ldr r0, =gStringVar1 @@ -1827,7 +1827,7 @@ _080D8756: cmp r6, 0x1 bls _080D87FA movs r0, 0x5 - bl audio_play + bl PlaySE b _080D87FA .pool _080D879C: @@ -1874,7 +1874,7 @@ _080D87C4: cmp r6, 0x1 bls _080D87FA movs r0, 0x5 - bl audio_play + bl PlaySE _080D87FA: pop {r4-r7} pop {r0} @@ -2530,7 +2530,7 @@ _080D8DD0: bl sub_80DB174 lsls r0, 24 lsrs r5, r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, r5, 4 adds r0, r5 lsls r0, 2 @@ -2547,8 +2547,8 @@ _080D8DD0: lsls r4, 3 adds r4, r0 strh r5, [r4, 0xC] - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_0202420B + ldr r1, =gBankSpriteIds + ldr r0, =gBankAttacker ldrb r0, [r0] adds r0, r1 strb r5, [r0] @@ -2571,14 +2571,14 @@ _080D8E7C: lsls r0, 3 adds r2, r0, r4 ldrb r5, [r2, 0xC] - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r1, 0x1C adds r0, r1 ldr r1, [r0] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy cmp r1, r0 beq _080D8EA0 bl _080DA100 @@ -2731,10 +2731,10 @@ _080D8FB8: bl _080DA100 .pool _080D9010: - ldr r0, =gUnknown_020383F8 + ldr r0, =gAnimScriptCallback ldr r0, [r0] bl _call_via_r0 - ldr r0, =gUnknown_020383FD + ldr r0, =gAnimScriptActive ldrb r4, [r0] cmp r4, 0 beq _080D9024 @@ -3135,7 +3135,7 @@ _080D935C: cmp r0, 0 beq _080D936E movs r0, 0x63 - bl audio_play + bl PlaySE _080D936E: ldr r0, =gTasks mov r2, r8 @@ -3481,12 +3481,12 @@ _080D961E: cmp r0, 0 beq _080D963C movs r0, 0x63 - bl audio_play + bl PlaySE b _080D9642 .pool _080D963C: movs r0, 0x64 - bl audio_play + bl PlaySE _080D9642: ldr r5, =gUnknown_02039F34 ldr r0, [r5] @@ -4116,7 +4116,7 @@ _080D9BD0: movs r1, 0x1 bl sub_80DDED0 ldr r0, =0x00000187 - bl fanfare_play + bl PlayFanfare b _080D9C3E .pool _080D9BE8: @@ -4235,7 +4235,7 @@ _080D9CB0: _080D9CC2: bl sub_80DDE0C movs r0, 0xDF - bl audio_play + bl PlaySE movs r0, 0x1 bl sub_80DDCDC b _080D9D6C @@ -4573,7 +4573,7 @@ _080D9FC0: lsls r2, 3 adds r2, r4 ldrb r5, [r2, 0xC] - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r5, 4 adds r0, r5 lsls r0, 2 @@ -4592,7 +4592,7 @@ _080D9FEC: lsls r0, 3 adds r4, r0, r4 ldrb r5, [r4, 0xC] - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r5, 4 adds r0, r5 lsls r0, 2 @@ -4604,9 +4604,9 @@ _080D9FEC: cmp r0, 0 bge _080DA100 adds r0, r6, 0 - bl obj_free_rotscale_entry + bl FreeSpriteOamMatrix adds r0, r6, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite movs r0, 0x14 strh r0, [r4, 0x8] b _080DA100 @@ -4760,7 +4760,7 @@ _080DA148: cmp r0, 0x1F bne _080DA15C strh r2, [r1, 0x2E] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r1, 0x1C] _080DA15C: pop {r0} @@ -4784,7 +4784,7 @@ sub_80DA164: @ 80DA164 negs r1, r1 cmp r0, r1 bge _080DA18E - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r2, 0x1C] adds r2, 0x3E ldrb r0, [r2] @@ -5411,7 +5411,7 @@ sub_80DA6B4: @ 80DA6B4 strh r0, [r1] movs r0, 0x62 movs r1, 0 - bl audio_play_and_stuff + bl PlaySE12WithPanning ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 @@ -6661,10 +6661,10 @@ sub_80DB0C4: @ 80DB0C4 movs r1, 0x70 movs r2, 0x24 movs r3, 0x1E - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 @@ -6677,7 +6677,7 @@ sub_80DB0C4: @ 80DB0C4 strb r1, [r5, 0x5] adds r4, 0x1C adds r2, r4 - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy str r1, [r2] pop {r4,r5} pop {r1} @@ -6696,10 +6696,10 @@ sub_80DB120: @ 80DB120 movs r1, 0x60 movs r2, 0xA movs r3, 0x1D - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 @@ -6746,7 +6746,7 @@ sub_80DB174: @ 80DB174 ldr r1, [r1, 0x4] adds r2, r5, 0 adds r3, r6, 0 - bl DecompressMonPic_DetectFrontOrBack_2 + bl HandleLoadSpecialPokePic_2 b _080DB1CC .pool _080DB1B8: @@ -6758,7 +6758,7 @@ _080DB1B8: ldr r1, [r1, 0x4] adds r2, r5, 0 adds r3, r6, 0 - bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack + bl HandleLoadSpecialPokePic_DontHandleDeoxys _080DB1CC: adds r0, r5, 0 adds r1, r7, 0 @@ -6782,10 +6782,10 @@ _080DB1CC: adds r0, r4, 0 movs r1, 0x70 movs r3, 0x1E - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r8, r0 lsls r0, r7, 4 adds r0, r7 @@ -6811,7 +6811,7 @@ _080DB1CC: mov r0, r8 adds r0, 0x1C adds r0, r6, r0 - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy str r1, [r0] ldrb r0, [r4, 0x5] lsrs r0, 4 @@ -6838,10 +6838,10 @@ _080DB280: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 movs r1, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim adds r0, r7, 0 pop {r3} mov r8, r3 @@ -7314,7 +7314,7 @@ _080DB648: beq _080DB688 movs r0, 0x26 _080DB672: - bl audio_play + bl PlaySE mov r1, r9 ldr r0, [r1] ldr r1, [r0, 0x4] @@ -8890,7 +8890,7 @@ _080DC226: cmp r3, 0 ble _080DC284 movs r0, 0x60 - bl audio_play + bl PlaySE ldr r4, =gMPlay_SE1 adds r0, r4, 0 bl m4aMPlayImmInit @@ -8904,7 +8904,7 @@ _080DC226: .pool _080DC284: movs r0, 0x16 - bl audio_play + bl PlaySE _080DC28A: mov r2, r10 cmp r2, 0 @@ -8937,7 +8937,7 @@ _080DC2A8: sub_80DC2BC: @ 80DC2BC push {r4,r5,lr} ldr r0, =gUnknown_08587A74 - bl LoadObjectPic + bl LoadSpriteSheet movs r4, 0 ldr r5, =gUnknown_08587A6C _080DC2C8: @@ -8949,7 +8949,7 @@ _080DC2C8: ldr r0, =gUnknown_08587AD0 movs r1, 0xB4 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite ldr r1, =gUnknown_02039F34 ldr r1, [r1] ldr r2, [r1, 0x14] @@ -9005,7 +9005,7 @@ _080DC350: bge _080DC356 movs r5, 0 _080DC356: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r3, r7, 4 adds r0, r3, r7 lsls r0, 2 @@ -9126,7 +9126,7 @@ sub_80DC408: @ 80DC408 negs r0, r0 ands r0, r2 strb r0, [r1, 0x2] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r3, 0x1C] b _080DC446 .pool @@ -9144,7 +9144,7 @@ _080DC446: sub_80DC44C: @ 80DC44C push {r4-r6,lr} movs r2, 0 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites ldr r5, =gUnknown_02039F34 ldr r4, =gUnknown_08587A6C ldr r3, =gUnknown_02039F26 @@ -9179,7 +9179,7 @@ sub_80DC490: @ 80DC490 lsrs r6, r0, 24 movs r3, 0 ldr r7, =gUnknown_02039F26 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites ldr r4, =gUnknown_02039F34 movs r2, 0 _080DC4A0: @@ -9229,10 +9229,10 @@ sub_80DC4F0: @ 80DC4F0 mov r7, r8 push {r7} ldr r0, =gUnknown_08587B08 - bl LoadTaggedObjectPalette + bl LoadSpritePalette movs r5, 0 ldr r7, =gUnknown_02039F34 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r8, r0 movs r6, 0 _080DC506: @@ -9250,7 +9250,7 @@ _080DC506: ldrb r2, [r1] movs r1, 0xCC movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r1, [r7] ldr r1, [r1, 0x14] lsls r4, r5, 2 @@ -9265,7 +9265,7 @@ _080DC506: lsls r0, 2 add r0, r8 ldr r1, =gUnknown_08587B80 - bl SetSpriteOamTables_NoPriorityFromTable + bl SetSubspriteTables ldr r0, [r7] ldr r0, [r0, 0x14] adds r4, r0 @@ -9297,15 +9297,15 @@ sub_80DC594: @ 80DC594 ldr r0, =gUnknown_08587BB0 bl LoadCompressedObjectPic ldr r0, =gUnknown_08587BB8 - bl LoadTaggedObjectPalette + bl LoadSpritePalette ldr r0, =gUnknown_08587BC8 movs r1, 0x1E movs r2, 0x2C movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -9872,7 +9872,7 @@ sub_80DC9EC: @ 80DC9EC ldr r0, =gUnknown_08589924 adds r4, r0 adds r0, r4, 0 - bl LoadTaggedObjectPalette + bl LoadSpritePalette ldr r2, [sp, 0xC] lsls r4, r2, 1 adds r4, r2 @@ -9883,7 +9883,7 @@ sub_80DC9EC: @ 80DC9EC movs r1, 0xB8 adds r2, r5, 0 movs r3, 0x1D - bl AddObjectToFront + bl CreateSprite mov r9, r0 mov r3, r9 lsls r3, 24 @@ -9893,7 +9893,7 @@ sub_80DC9EC: @ 80DC9EC movs r1, 0xF8 adds r2, r5, 0 movs r3, 0x1D - bl AddObjectToFront + bl CreateSprite mov r8, r0 mov r0, r8 lsls r0, 24 @@ -9902,7 +9902,7 @@ sub_80DC9EC: @ 80DC9EC lsls r5, r0, 4 add r5, r8 lsls r5, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r5, r1 ldrh r2, [r5, 0x4] lsls r1, r2, 22 @@ -9968,7 +9968,7 @@ sub_80DC9EC: @ 80DC9EC lsls r4, r3, 4 add r4, r9 lsls r4, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r4, r1 ldrh r1, [r4, 0x4] lsls r1, 22 @@ -10016,7 +10016,7 @@ sub_80DCB78: @ 80DCB78 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r5, r0, 4 adds r5, r0 lsls r5, 2 @@ -10029,11 +10029,11 @@ sub_80DCB78: @ 80DCB78 lsls r4, 2 adds r4, r1 adds r0, r4, 0 - bl obj_free_rotscale_entry + bl FreeSpriteOamMatrix adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r0, r5, 0 - bl RemoveObjectAndFreeResources + bl DestroySpriteAndFreeResources pop {r4,r5} pop {r0} bx r0 @@ -10085,7 +10085,7 @@ sub_80DCBE8: @ 80DCBE8 bl sub_80DCBB4 ldr r0, =gUnknown_02039F34 ldr r1, [r0] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites mov r8, r2 lsls r6, r4, 4 adds r6, r4 @@ -10104,32 +10104,32 @@ sub_80DCBE8: @ 80DCBE8 lsls r5, 24 lsrs r5, 24 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim lsls r4, r5, 4 adds r4, r5 lsls r4, 2 mov r1, r8 adds r0, r4, r1 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim movs r2, 0x1C add r8, r2 add r6, r8 ldr r0, =sub_80DCC84 str r0, [r6] add r4, r8 - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r4] mov r3, r9 cmp r3, 0 bne _080DCC70 movs r0, 0x65 - bl audio_play + bl PlaySE b _080DCC76 .pool _080DCC70: movs r0, 0x2 - bl audio_play + bl PlaySE _080DCC76: pop {r3,r4} mov r8, r3 @@ -10153,7 +10153,7 @@ sub_80DCC84: @ 80DCC84 ldrh r1, [r0, 0x2E] lsls r1, 24 lsrs r1, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 @@ -11481,7 +11481,7 @@ sub_80DD6DC: @ 80DD6DC movs r1, 0x4 orrs r0, r1 strb r0, [r3] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r2, 0x1C] ldr r0, =gUnknown_02039F34 ldr r0, [r0] @@ -11528,7 +11528,7 @@ _080DD748: .4byte _080DD8D4 .4byte _080DD8A0 _080DD76C: - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 @@ -11542,11 +11542,11 @@ _080DD76C: orrs r0, r2 strh r0, [r1, 0x4] movs r0, 0x20 - bl audio_play + bl PlaySE b _080DD8F8 .pool _080DD79C: - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 @@ -11562,11 +11562,11 @@ _080DD79C: orrs r0, r2 strh r0, [r1, 0x4] movs r0, 0x1F - bl audio_play + bl PlaySE b _080DD8F8 .pool _080DD7D0: - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 @@ -11582,11 +11582,11 @@ _080DD7D0: orrs r0, r2 strh r0, [r1, 0x4] movs r0, 0x1F - bl audio_play + bl PlaySE b _080DD8F8 .pool _080DD804: - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 @@ -11602,11 +11602,11 @@ _080DD804: orrs r0, r2 strh r0, [r1, 0x4] movs r0, 0x2D - bl audio_play + bl PlaySE b _080DD8F8 .pool _080DD838: - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 @@ -11622,11 +11622,11 @@ _080DD838: orrs r0, r2 strh r0, [r1, 0x4] movs r0, 0x2D - bl audio_play + bl PlaySE b _080DD8F8 .pool _080DD86C: - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 @@ -11642,11 +11642,11 @@ _080DD86C: orrs r0, r2 strh r0, [r1, 0x4] movs r0, 0x2D - bl audio_play + bl PlaySE b _080DD8F8 .pool _080DD8A0: - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 @@ -11662,11 +11662,11 @@ _080DD8A0: orrs r0, r2 strh r0, [r1, 0x4] movs r0, 0xC3 - bl audio_play + bl PlaySE b _080DD8F8 .pool _080DD8D4: - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 @@ -11682,10 +11682,10 @@ _080DD8D4: orrs r0, r2 strh r0, [r1, 0x4] movs r0, 0x2D - bl audio_play + bl PlaySE _080DD8F8: adds r2, r4, 0 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r2, r5 lsls r2, 2 adds r1, r2, r4 @@ -11721,7 +11721,7 @@ sub_80DD940: @ 80DD940 push {r6,r7} movs r5, 0 ldr r6, =gUnknown_02039F34 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r9, r0 ldr r0, =0x06010000 mov r8, r0 @@ -11834,7 +11834,7 @@ sub_80DDA20: @ 80DDA20 movs r0, 0x1 strh r0, [r4, 0xA] ldr r0, =0x0000abe2 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xC] @@ -11938,7 +11938,7 @@ sub_80DDB0C: @ 80DDB0C ldr r0, =sub_80DDB6C movs r1, 0xA bl CreateTask - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r4, =gUnknown_02039F34 ldr r2, [r4] ldr r0, [r2] @@ -11989,7 +11989,7 @@ sub_80DDB6C: @ 80DDB6C lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r2, r0, r1 ldr r0, =gTasks lsls r1, r3, 2 @@ -12039,7 +12039,7 @@ _080DDBD4: thumb_func_start sub_80DDBE8 sub_80DDBE8: @ 80DDBE8 push {r4,r5,lr} - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites ldr r4, =gUnknown_02039F34 ldr r0, [r4] ldr r2, [r0] @@ -12101,7 +12101,7 @@ task08_080CD1CC: @ 80DDC4C lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r3, r0, r1 ldr r0, =gTasks lsls r2, r4, 2 @@ -12260,7 +12260,7 @@ _080DDD9C: thumb_func_start sub_80DDDA8 sub_80DDDA8: @ 80DDDA8 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r0, =gUnknown_02039F34 ldr r2, [r0] ldr r0, [r2] @@ -12291,7 +12291,7 @@ sub_80DDDA8: @ 80DDDA8 thumb_func_start sub_80DDDE4 sub_80DDDE4: @ 80DDDE4 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0] @@ -12565,7 +12565,7 @@ sub_80DE008: @ 80DE008 ldr r0, =gUnknown_02039F34 mov r9, r0 mov r8, r9 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites movs r4, 0 movs r7, 0 _080DE026: @@ -12768,7 +12768,7 @@ _080DE146: adds r3, r5, 0 bl sub_80DECB8 movs r0, 0x63 - bl audio_play + bl PlaySE _080DE1CA: adds r7, 0x1 cmp r7, 0x3 @@ -12909,7 +12909,7 @@ sub_80DE224: @ 80DE224 movs r0, 0x1 bl sub_80DED60 movs r5, 0 - ldr r7, =gUnknown_02020630 + ldr r7, =gSprites movs r6, 0x4 _080DE2F0: ldr r0, [r4] @@ -13008,7 +13008,7 @@ sub_80DE350: @ 80DE350 strh r5, [r0] ldr r0, =gUnknown_02022E1A strh r5, [r0] - ldr r7, =gUnknown_02020630 + ldr r7, =gSprites _080DE3CA: ldr r0, [r6] ldr r0, [r0, 0x14] @@ -13059,7 +13059,7 @@ sub_80DE424: @ 80DE424 strh r0, [r1] movs r0, 0x62 movs r1, 0 - bl audio_play_and_stuff + bl PlaySE12WithPanning ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 @@ -13336,7 +13336,7 @@ _080DE680: strh r0, [r4, 0xC] movs r0, 0x61 movs r1, 0 - bl audio_play_and_stuff + bl PlaySE12WithPanning ldr r0, =sub_80DE5C0 str r0, [r4] _080DE690: @@ -13355,10 +13355,10 @@ sub_80DE69C: @ 80DE69C lsrs r0, 24 mov r8, r0 movs r7, 0 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites ldr r5, =gUnknown_02039F34 _080DE6AE: - bl rotscale_alloc_entry + bl AllocOamMatrix ldr r1, [r5] ldr r1, [r1, 0x14] lsls r4, r7, 2 @@ -13406,7 +13406,7 @@ _080DE6AE: lsls r0, 2 adds r0, r6 mov r1, r8 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim mov r0, r8 cmp r0, 0x2 bne _080DE74C @@ -13418,7 +13418,7 @@ _080DE6AE: adds r0, r1 lsls r0, 2 adds r0, r6 - bl AnimateObject + bl AnimateSprite ldr r0, [r5] ldr r0, [r0, 0x14] adds r0, r4, r0 @@ -13470,7 +13470,7 @@ sub_80DE794: @ 80DE794 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r3, =gUnknown_02039F34 ldr r0, [r3] ldr r0, [r0, 0x14] @@ -13524,9 +13524,9 @@ _080DE7EE: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl obj_free_rotscale_entry + bl FreeSpriteOamMatrix adds r4, 0x1 cmp r4, 0x3 ble _080DE7EE @@ -13695,12 +13695,12 @@ _080DE920: b _080DE9A2 .pool _080DE960: - ldr r1, =gUnknown_0203841A + ldr r1, =gHappinessMoveAnim movs r0, 0xFF b _080DE9A0 .pool _080DE96C: - ldr r1, =gUnknown_0203841A + ldr r1, =gHappinessMoveAnim movs r0, 0 b _080DE9A0 .pool @@ -13794,20 +13794,20 @@ sub_80DE9DC: @ 80DE9DC thumb_func_start sub_80DEA20 sub_80DEA20: @ 80DEA20 push {lr} - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy bl CreateInvisibleSpriteWithCallback - ldr r1, =gUnknown_020241E4 + ldr r1, =gBankSpriteIds strb r0, [r1, 0x3] - ldr r0, =gEnemyMonIndex + ldr r0, =gBankTarget ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl obj_alloc_rotscale_entry + bl InitSpriteAffineAnim bl sub_80DEA5C pop {r0} bx r0 @@ -13817,12 +13817,12 @@ sub_80DEA20: @ 80DEA20 thumb_func_start sub_80DEA5C sub_80DEA5C: @ 80DEA5C push {r4,lr} - ldr r0, =gUnknown_020241E4 + ldr r0, =gBankSpriteIds ldrb r0, [r0, 0x3] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 movs r0, 0 strh r0, [r4, 0x24] @@ -13905,12 +13905,12 @@ _080DEAD0: .4byte _080DEB60 .4byte _080DEB60 _080DEB54: - ldr r1, =gEnemyMonIndex + ldr r1, =gBankTarget movs r0, 0x2 b _080DEB64 .pool _080DEB60: - ldr r1, =gEnemyMonIndex + ldr r1, =gBankTarget movs r0, 0x3 _080DEB64: strb r0, [r1] @@ -14187,8 +14187,8 @@ sub_80DED60: @ 80DED60 .pool thumb_func_end sub_80DED60 - thumb_func_start sub_80DED74 -sub_80DED74: @ 80DED74 + thumb_func_start ResetContestLinkResults +ResetContestLinkResults: @ 80DED74 push {r4-r6,lr} movs r0, 0 ldr r6, =gSaveBlock2Ptr @@ -14214,7 +14214,7 @@ _080DED84: pop {r0} bx r0 .pool - thumb_func_end sub_80DED74 + thumb_func_end ResetContestLinkResults thumb_func_start sub_80DEDA8 sub_80DEDA8: @ 80DEDA8 @@ -14522,8 +14522,8 @@ _080DF03A: bx r1 thumb_func_end sub_80DEFA8 - thumb_func_start sub_80DF040 -sub_80DF040: @ 80DF040 + thumb_func_start ClearContestWinnerPicsInContestHall +ClearContestWinnerPicsInContestHall: @ 80DF040 push {r4-r7,lr} movs r2, 0 ldr r0, =gSaveBlock1Ptr @@ -14551,7 +14551,7 @@ _080DF04C: pop {r0} bx r0 .pool - thumb_func_end sub_80DF040 + thumb_func_end ClearContestWinnerPicsInContestHall thumb_func_start sub_80DF080 sub_80DF080: @ 80DF080 diff --git a/asm/contest_link_80F57C4.s b/asm/contest_link_80F57C4.s index 08eb2359cc..851ec87094 100644 --- a/asm/contest_link_80F57C4.s +++ b/asm/contest_link_80F57C4.s @@ -346,9 +346,9 @@ sub_80F5B00: @ 80F5B00 bl sub_80F57C4 bl dp12_8087EA4 bl ResetPaletteFade - bl ResetAllObjectData + bl ResetSpriteData bl ResetTasks - bl ResetObjectPaletteAllocator + bl FreeAllSpritePalettes bl sub_80F591C bl sub_80F6A9C movs r0, 0 @@ -412,7 +412,7 @@ sub_80F5B00: @ 80F5B00 _080F5BE4: movs r0, 0xDF lsls r0, 1 - bl song_play_for_text + bl PlayBGM _080F5BEC: ldr r0, =sub_80F5C24 bl SetVBlankCallback @@ -426,8 +426,8 @@ _080F5BEC: thumb_func_start sub_80F5C00 sub_80F5C00: @ 80F5C00 push {lr} - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl RunTasks bl UpdatePaletteFade movs r0, 0x1 @@ -489,8 +489,8 @@ sub_80F5C24: @ 80F5C24 ldrh r1, [r0] movs r0, 0x46 bl SetGpuReg - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_80BA0A8 pop {r0} @@ -543,12 +543,12 @@ _080F5D2A: cmp r0, 0 bne _080F5D58 movs r0, 0x23 - bl sav12_xor_increment - ldr r1, =gUnknown_020375E2 + bl IncrementGameStat + ldr r1, =gSpecialVar_0x8005 movs r0, 0x8 strh r0, [r1] bl InterviewBefore - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0x1 beq _080F5D58 @@ -580,7 +580,7 @@ _080F5D58: bl VarSet bl sub_8076D5C movs r0, 0x1 - bl save_game_when_memory_present + bl TrySavingData bl sav2_gender2_inplace_and_xFE adds r0, r5, 0 adds r1, r4, 0 @@ -623,7 +623,7 @@ _080F5E0A: bne _080F5EBA movs r0, 0xDF lsls r0, 1 - bl song_play_for_text + bl PlayBGM ldr r2, =gPaletteFade ldrb r1, [r2, 0x8] movs r0, 0x7F @@ -662,7 +662,7 @@ _080F5E2E: .pool _080F5E78: movs r0, 0x24 - bl sav12_xor_increment + bl IncrementGameStat ldr r1, =gUnknown_02039F20 ldr r0, =gUnknown_02039F25 ldrb r0, [r0] @@ -671,7 +671,7 @@ _080F5E78: cmp r0, 0 bne _080F5E92 movs r0, 0x25 - bl sav12_xor_increment + bl IncrementGameStat _080F5E92: ldr r0, =gUnknown_02039F2E ldrb r0, [r0] @@ -1399,7 +1399,7 @@ _080F648C: ldr r1, [r1, 0x8] adds r2, r6, 0 adds r3, r4, 0 - bl DecompressMonPic_DetectFrontOrBack_2 + bl HandleLoadSpecialPokePic_2 b _080F64F2 .pool _080F64E0: @@ -1410,7 +1410,7 @@ _080F64E0: ldr r1, [r1, 0x8] adds r2, r6, 0 adds r3, r4, 0 - bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack + bl HandleLoadSpecialPokePic_DontHandleDeoxys _080F64F2: adds r0, r6, 0 adds r1, r5, 0 @@ -1428,10 +1428,10 @@ _080F64F2: lsls r1, 1 movs r2, 0x50 movs r3, 0xA - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 @@ -1532,7 +1532,7 @@ _080F65F0: bne _080F669C movs r0, 0 strh r0, [r3, 0xA] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, =gUnknown_0203A034 ldr r0, [r0] ldr r0, [r0] @@ -2129,7 +2129,7 @@ sub_80F6AE8: @ 80F6AE8 movs r0, 0x8 movs r1, 0x8 bl sub_800DFB4 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldr r0, =gUnknown_02022B10 ldrb r1, [r0] lsls r0, r1, 4 @@ -2140,7 +2140,7 @@ sub_80F6AE8: @ 80F6AE8 movs r1, 0x1 strb r1, [r0] ldr r0, =gUnknown_0858D8E0 - bl LoadObjectPic + bl LoadSpriteSheet adds r1, r0, 0 lsls r1, 16 movs r0, 0x1 @@ -2155,7 +2155,7 @@ sub_80F6AE8: @ 80F6AE8 movs r1, 0x8 movs r2, 0x8 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -2247,7 +2247,7 @@ _080F6BD0: lsls r1, r7, 4 adds r1, r7 lsls r1, 2 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites adds r1, r3 ldrh r0, [r1, 0x4] lsls r0, 22 @@ -2464,13 +2464,13 @@ sub_80F6DC0: @ 80F6DC0 movs r4, 0x7 _080F6DD6: adds r0, r6, 0 - bl LoadObjectPic + bl LoadSpriteSheet adds r6, 0x8 subs r4, 0x1 cmp r4, 0 bge _080F6DD6 ldr r0, =gUnknown_0858D850 - bl LoadTaggedObjectPalette + bl LoadSpritePalette movs r4, 0 mov r6, sp _080F6DEE: @@ -2479,7 +2479,7 @@ _080F6DEE: lsls r1, 1 movs r2, 0x90 movs r3, 0xA - bl AddObjectToFront + bl CreateSprite adds r1, r5, r4 strb r0, [r1] ldrh r0, [r6] @@ -2488,7 +2488,7 @@ _080F6DEE: adds r4, 0x1 cmp r4, 0x7 ble _080F6DEE - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 @@ -2565,7 +2565,7 @@ sub_80F6E9C: @ 80F6E9C lsls r4, r5, 4 adds r4, r5 lsls r4, 2 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites adds r4, r5 movs r6, 0 movs r5, 0x88 @@ -2605,7 +2605,7 @@ sub_80F6EF4: @ 80F6EF4 lsls r1, r2, 4 adds r1, r2 lsls r1, 2 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites adds r1, r2 ldrh r2, [r1, 0x24] ldrh r3, [r1, 0x20] @@ -2642,7 +2642,7 @@ sub_80F6F40: @ 80F6F40 strh r1, [r0, 0x22] strh r2, [r0, 0x26] strh r2, [r0, 0x24] - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy str r1, [r0, 0x1C] ldr r0, =gUnknown_0203A034 ldr r0, [r0] @@ -2677,7 +2677,7 @@ sub_80F6F68: @ 80F6F68 strh r2, [r3, 0x20] _080F6F92: movs r4, 0 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites movs r5, 0x40 adds r2, r3, 0 adds r2, 0x2E @@ -2758,7 +2758,7 @@ sub_80F7014: @ 80F7014 ands r2, r0 strh r2, [r3, 0x3C] movs r4, 0 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites movs r5, 0x40 adds r2, r3, 0 adds r2, 0x2E @@ -2813,7 +2813,7 @@ sub_80F707C: @ 80F707C lsls r1, r2, 4 adds r1, r2 lsls r1, 2 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites adds r4, r1, r3 adds r0, 0x20 strh r0, [r4, 0x20] @@ -2900,7 +2900,7 @@ sub_80F7144: @ 80F7144 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites adds r2, r3 movs r0, 0x3E adds r0, r2 @@ -3303,7 +3303,7 @@ _080F741C: mov r0, r8 bl DestroyTask movs r0, 0x18 - bl audio_play + bl PlaySE _080F74A4: add sp, 0x10 pop {r3,r4} @@ -3449,7 +3449,7 @@ sub_80F75A8: @ 80F75A8 bne _080F7610 ldrh r0, [r4, 0x30] movs r1, 0 - bl cry_related + bl PlayCry1 movs r0, 0 strh r0, [r4, 0x30] b _080F7610 @@ -3478,7 +3478,7 @@ _080F75F6: ldrsh r0, [r4, r2] cmp r0, 0x78 bne _080F7610 - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x30] @@ -3517,7 +3517,7 @@ sub_80F7620: @ 80F7620 negs r1, r1 cmp r0, r1 bge _080F7664 - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r3, 0x1C] adds r2, r3, 0 adds r2, 0x3E @@ -3577,12 +3577,12 @@ sub_80F7670: @ 80F7670 adds r0, r4, 0 movs r2, 0x2C movs r3, 0x5 - bl AddObjectToFront + bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl Random - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r5, r4, 4 adds r5, r4 lsls r5, 2 @@ -3695,7 +3695,7 @@ _080F77B6: ble _080F77D6 _080F77C6: adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, [r5] ldr r1, [r0] ldrb r0, [r1, 0x7] @@ -4288,13 +4288,13 @@ _080F7C7E: cmp r1, 0 beq _080F7C8A movs r0, 0x16 - bl audio_play + bl PlaySE _080F7C8A: ldr r3, [sp, 0x8] cmp r3, 0 beq _080F7C96 movs r0, 0x15 - bl audio_play + bl PlaySE _080F7C96: add sp, 0x14 pop {r3-r5} @@ -4648,7 +4648,7 @@ sub_80F7F30: @ 80F7F30 ldrb r0, [r4] bl sub_80DB09C _080F7F5E: - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r5, [r0] pop {r4,r5} pop {r0} @@ -4781,7 +4781,7 @@ _080F8074: adds r0, r4 movs r1, 0x32 mov r2, sp - bl pokemon_setattr + bl SetMonData ldrb r0, [r6] muls r0, r5 adds r0, r4 @@ -4830,7 +4830,7 @@ _080F80E2: adds r0, r5 movs r1, 0x33 mov r2, sp - bl pokemon_setattr + bl SetMonData ldrb r0, [r7] muls r0, r6 adds r0, r5 @@ -4879,7 +4879,7 @@ _080F814E: adds r0, r5 movs r1, 0x34 mov r2, sp - bl pokemon_setattr + bl SetMonData ldrb r0, [r7] muls r0, r6 adds r0, r5 @@ -4922,7 +4922,7 @@ _080F8190: adds r0, r5 movs r1, 0x35 mov r2, sp - bl pokemon_setattr + bl SetMonData ldrb r0, [r7] muls r0, r6 adds r0, r5 @@ -4965,7 +4965,7 @@ _080F81F8: adds r0, r5 movs r1, 0x36 mov r2, sp - bl pokemon_setattr + bl SetMonData ldrb r0, [r7] muls r0, r6 adds r0, r5 @@ -4991,7 +4991,7 @@ _080F8250: sub_80F8264: @ 80F8264 push {r4,lr} ldr r4, =gStringVar1 - ldr r0, =gUnknown_020375E4 + ldr r0, =gSpecialVar_0x8006 ldrh r1, [r0] lsls r1, 6 ldr r0, =gUnknown_02039E0D @@ -5010,7 +5010,7 @@ sub_80F8264: @ 80F8264 sub_80F8290: @ 80F8290 push {lr} ldr r0, =gStringVar3 - ldr r1, =gUnknown_020375E4 + ldr r1, =gSpecialVar_0x8006 ldrh r1, [r1] lsls r1, 6 ldr r2, =gUnknown_02039E02 @@ -5026,9 +5026,9 @@ sub_80F82B4: @ 80F82B4 push {r4-r6,lr} movs r1, 0 movs r2, 0 - ldr r5, =gUnknown_020375E0 + ldr r5, =gSpecialVar_0x8004 ldr r4, =gUnknown_02039F00 - ldr r0, =gUnknown_020375E4 + ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] lsls r0, 1 adds r0, r4 @@ -5059,9 +5059,9 @@ _080F82DC: thumb_func_start sub_80F82FC sub_80F82FC: @ 80F82FC - ldr r2, =gUnknown_020375E0 + ldr r2, =gSpecialVar_0x8004 ldr r1, =gUnknown_02039F00 - ldr r0, =gUnknown_020375E4 + ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] lsls r0, 1 adds r0, r1 @@ -5077,7 +5077,7 @@ sub_80F831C: @ 80F831C movs r1, 0 ldr r2, =gUnknown_02039F20 ldrb r0, [r2] - ldr r3, =gUnknown_020375E2 + ldr r3, =gSpecialVar_0x8005 cmp r0, 0 beq _080F833C _080F832A: @@ -5215,9 +5215,9 @@ sub_80F840C: @ 80F840C thumb_func_start sub_80F8438 sub_80F8438: @ 80F8438 - ldr r2, =gUnknown_020375E0 + ldr r2, =gSpecialVar_0x8004 ldr r1, =gUnknown_02039E00 - ldr r0, =gUnknown_020375E4 + ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] lsls r0, 6 adds r0, r1 @@ -5271,7 +5271,7 @@ sub_80F8484: @ 80F8484 thumb_func_start sub_80F84B0 sub_80F84B0: @ 80F84B0 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldr r1, =gUnknown_02039F25 ldrb r1, [r1] strh r1, [r0] @@ -5401,7 +5401,7 @@ sub_80F85BC: @ 80F85BC movs r3, 0 ldr r5, =gUnknown_02039F30 mov r12, r5 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 mov r9, r0 add r1, sp, 0x4 mov r8, r1 @@ -5560,7 +5560,7 @@ sub_80F8714: @ 80F8714 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0x1 bne _080F8748 diff --git a/asm/contest_painting.s b/asm/contest_painting.s index d0fe69d187..156e46050d 100644 --- a/asm/contest_painting.s +++ b/asm/contest_painting.s @@ -155,7 +155,7 @@ _0812FEE2: orrs r0, r7 str r0, [r1, 0x8] ldr r0, [r1, 0x8] - bl ResetAllObjectData + bl ResetSpriteData b _0812FF36 .pool _0812FF14: @@ -552,8 +552,8 @@ _081302C0: sub_81302D0: @ 81302D0 push {lr} bl sub_8130280 - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -587,7 +587,7 @@ sub_81302E8: @ 81302E8 ldr r2, [r6] ldr r3, [r2] adds r2, r5, 0 - bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack + bl HandleLoadSpecialPokePic_DontHandleDeoxys ldr r0, [r4] ldr r0, [r0, 0x8] ldr r1, [r7] @@ -606,7 +606,7 @@ _08130348: ldr r2, [r6] ldr r3, [r2] adds r2, r5, 0 - bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack + bl HandleLoadSpecialPokePic_DontHandleDeoxys ldr r0, [r4] ldr r0, [r0, 0x4] ldr r1, [r7] diff --git a/asm/credits.s b/asm/credits.s index c9a6072ff8..be5e9e5c43 100644 --- a/asm/credits.s +++ b/asm/credits.s @@ -8,8 +8,8 @@ thumb_func_start sub_81754C8 sub_81754C8: @ 81754C8 push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -19,7 +19,7 @@ sub_81754C8: @ 81754C8 sub_81754DC: @ 81754DC push {lr} bl RunTasks - bl CallObjectCallbacks + bl AnimateSprites ldr r0, =gMain ldrh r1, [r0, 0x2C] movs r0, 0x2 @@ -43,12 +43,12 @@ sub_81754DC: @ 81754DC bne _08175522 bl sub_81754C8 bl RunTasks - bl CallObjectCallbacks + bl AnimateSprites ldr r1, =gUnknown_0203BCE5 movs r0, 0x1 strb r0, [r1] _08175522: - bl PrepareSpritesForOamLoad + bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 @@ -485,10 +485,10 @@ sub_81758E4: @ 81758E4 cmp r7, 0x1 beq _081759F0 _08175906: - bl ResetAllObjectData + bl ResetSpriteData bl dp13_810BB8C - bl ResetObjectPaletteAllocator - ldr r1, =gUnknown_0300301C + bl FreeAllSpritePalettes + ldr r1, =gReservedSpritePaletteCount movs r0, 0x8 strb r0, [r1] ldr r0, =gUnknown_085B0E04 @@ -553,9 +553,9 @@ _0817596E: adds r0, r1, 0 strh r0, [r2, 0x6] adds r0, r6, 0 - bl LoadObjectPic + bl LoadSpriteSheet ldr r0, =gUnknown_085E702C - bl LoadTaggedObjectPalette + bl LoadSpritePalette ldr r1, =gMain movs r0, 0x87 lsls r0, 3 @@ -719,8 +719,8 @@ sub_8175B1C: @ 8175B1C movs r0, 0 movs r2, 0 bl sub_8176D1C - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes movs r0, 0x1 negs r0, r0 movs r1, 0 @@ -863,7 +863,7 @@ sub_8175C34: @ 8175C34 beq _08175C94 _08175C62: movs r0, 0x4 - bl play_sound_effect + bl FadeOutBGM movs r0, 0x1 negs r0, r0 ldr r1, =0x0000ffff @@ -881,7 +881,7 @@ _08175C94: cmp r1, r0 bne _08175CA0 movs r0, 0x8 - bl play_sound_effect + bl FadeOutBGM _08175CA0: movs r0, 0x8 ldrsh r1, [r4, r0] @@ -1516,7 +1516,7 @@ _08176158: bge _081761D8 adds r0, r3, 0x1 strh r0, [r1] - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -1527,7 +1527,7 @@ _08176158: _081761D8: movs r0, 0 strh r0, [r1] - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -1702,7 +1702,7 @@ _08176390: b _08176514 .pool _0817639C: - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r1, r5, 2 adds r1, r5 lsls r1, 3 @@ -1732,7 +1732,7 @@ _081763C0: strh r0, [r1, 0x12] b _0817644E _081763D8: - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r2, r5, 2 adds r2, r5 lsls r2, 3 @@ -1803,7 +1803,7 @@ _0817644E: b _08176514 .pool _08176464: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r3, 0xC ldrsh r1, [r4, r3] lsls r0, r1, 4 @@ -1825,7 +1825,7 @@ _08176484: movs r1, 0x32 b _08176512 _08176490: - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r1, r5, 2 adds r1, r5 lsls r1, 3 @@ -1840,7 +1840,7 @@ _08176490: b _081764C8 .pool _081764B0: - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r1, r5, 2 adds r1, r5 lsls r1, 3 @@ -1859,7 +1859,7 @@ _081764C8: b _08176514 .pool _081764D4: - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r2, r5, 2 adds r2, r5 lsls r2, 3 @@ -2077,7 +2077,7 @@ _08176670: .4byte _08176884 .4byte _08176934 _08176684: - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites ldr r0, =gTasks lsls r4, r7, 2 adds r4, r7 @@ -2159,7 +2159,7 @@ _08176684: b _081769D4 .pool _0817672C: - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites ldr r0, =gTasks lsls r4, r7, 2 adds r4, r7 @@ -2242,7 +2242,7 @@ _0817672C: b _081769D4 .pool _081767D8: - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites ldr r0, =gTasks lsls r4, r7, 2 adds r4, r7 @@ -2326,7 +2326,7 @@ _081767D8: b _081769D4 .pool _08176884: - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites ldr r0, =gTasks lsls r4, r7, 2 adds r4, r7 @@ -2409,7 +2409,7 @@ _08176884: b _081769D4 .pool _08176934: - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites ldr r0, =gTasks lsls r4, r7, 2 adds r4, r7 @@ -2642,8 +2642,8 @@ _08176AD6: movs r0, 0x52 movs r1, 0 bl SetGpuReg - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes movs r0, 0x1 strb r0, [r6] b _08176C96 @@ -2675,7 +2675,7 @@ _08176B54: ldr r0, =gUnknown_085F5354 bl LoadCompressedObjectPic ldr r0, =gUnknown_085F5384 - bl LoadTaggedObjectPalettes + bl LoadSpritePalettes movs r0, 0x78 movs r1, 0x2E bl sub_817B834 @@ -2687,7 +2687,7 @@ _08176B54: lsls r4, 3 adds r4, r0 strh r2, [r4, 0x12] - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -2714,7 +2714,7 @@ _08176BD8: ldr r0, =gUnknown_085F5354 bl LoadCompressedObjectPic ldr r0, =gUnknown_085F5384 - bl LoadTaggedObjectPalettes + bl LoadSpritePalettes movs r0, 0x78 movs r1, 0x2E bl sub_817B88C @@ -2726,7 +2726,7 @@ _08176BD8: lsls r4, 3 adds r4, r0 strh r2, [r4, 0x12] - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -3082,7 +3082,7 @@ sub_8176EE8: @ 8176EE8 cmp r0, 0 beq _08176F04 adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite b _08176F88 .pool _08176F04: @@ -3107,7 +3107,7 @@ _08176F1C: _08176F34: adds r0, r4, 0 movs r1, 0 - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent b _08176F88 _08176F3E: adds r0, r4, 0 @@ -3116,17 +3116,17 @@ _08176F3E: _08176F44: adds r0, r4, 0 movs r1, 0x2 - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent b _08176F88 _08176F4E: adds r0, r4, 0 movs r1, 0x3 - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent b _08176F88 _08176F58: adds r0, r4, 0 movs r1, 0 - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent ldrh r1, [r4, 0x20] movs r2, 0x20 ldrsh r0, [r4, r2] @@ -3138,7 +3138,7 @@ _08176F6E: adds r0, r4, 0 movs r1, 0 _08176F72: - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent ldrh r2, [r4, 0x20] movs r0, 0x20 ldrsh r1, [r4, r0] @@ -3165,7 +3165,7 @@ sub_8176F90: @ 8176F90 cmp r0, 0 beq _08176FAC adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite b _08177048 .pool _08176FAC: @@ -3188,7 +3188,7 @@ _08176FC8: strh r0, [r4, 0x26] adds r0, r4, 0 movs r1, 0 - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent b _08177048 _08176FD4: movs r1, 0x20 @@ -3197,12 +3197,12 @@ _08176FD4: ble _08176FE6 adds r0, r4, 0 movs r1, 0x1 - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent b _08176FEE _08176FE6: adds r0, r4, 0 movs r1, 0x2 - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent _08176FEE: ldrh r2, [r4, 0x20] movs r0, 0x20 @@ -3226,7 +3226,7 @@ _08177010: strh r0, [r4, 0x3C] adds r0, r4, 0 movs r1, 0 - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent ldrh r1, [r4, 0x3C] movs r0, 0x3 ands r0, r1 @@ -3238,7 +3238,7 @@ _08177010: _0817702E: adds r0, r4, 0 movs r1, 0 - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent ldrh r2, [r4, 0x20] movs r0, 0x20 ldrsh r1, [r4, r0] @@ -3329,7 +3329,7 @@ _081770B4: adds r0, r4, 0 movs r2, 0 movs r3, 0 - bl SetSpriteTransformationMatrix + bl SetOamMatrix adds r2, r5, 0 adds r2, 0x3E ldrb r1, [r2] @@ -3364,7 +3364,7 @@ _0817710E: adds r0, r4, 0 movs r2, 0 movs r3, 0 - bl SetSpriteTransformationMatrix + bl SetOamMatrix b _0817714A _08177144: ldrh r0, [r5, 0x2E] @@ -3505,7 +3505,7 @@ sub_8177224: @ 8177224 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites lsls r1, r4, 4 adds r1, r4 lsls r1, 2 @@ -3538,7 +3538,7 @@ sub_8177224: @ 8177224 movs r3, 0x22 ldrsh r2, [r2, r3] movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -3550,7 +3550,7 @@ sub_8177224: @ 8177224 lsls r5, 24 lsrs r5, 24 adds r1, r5, 0 - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent adds r0, r4, 0 pop {r4-r7} pop {r1} @@ -3562,7 +3562,7 @@ sub_8177224: @ 8177224 sub_81772B8: @ 81772B8 push {r4,lr} adds r3, r0, 0 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites movs r1, 0x2E ldrsh r0, [r3, r1] lsls r1, r0, 4 @@ -3580,7 +3580,7 @@ sub_81772B8: @ 81772B8 beq _081772EC _081772DC: adds r0, r3, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite b _08177380 .pool _081772EC: diff --git a/asm/daycare.s b/asm/daycare.s index 929c543bb1..66066c51c9 100644 --- a/asm/daycare.s +++ b/asm/daycare.s @@ -401,7 +401,7 @@ sub_806FCF8: @ 806FCF8 add r2, sp, 0x64 mov r0, sp movs r1, 0x19 - bl pokemon_setattr + bl SetMonData mov r0, sp bl sub_806FCA4 _0806FD46: @@ -470,7 +470,7 @@ sub_806FDC4: @ 806FDC4 ldr r0, [r0] ldr r1, =0x00003030 adds r0, r1 - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldrb r1, [r1] bl sub_806FD9C lsls r0, 16 @@ -498,7 +498,7 @@ sub_806FDEC: @ 806FDEC add r2, sp, 0x50 mov r0, sp movs r1, 0x19 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted mov r0, sp bl sub_80690C0 lsls r0, 24 @@ -603,10 +603,10 @@ sub_806FED8: @ 806FED8 ldr r0, [r0] ldr r1, =0x00003030 adds r0, r1 - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldrb r1, [r1] bl sub_806FEC0 - ldr r1, =gUnknown_020375E2 + ldr r1, =gSpecialVar_0x8005 strh r0, [r1] pop {r0} bx r0 @@ -637,7 +637,7 @@ sub_806FF04: @ 806FF04 sub_806FF30: @ 806FF30 push {r4-r6,lr} ldr r6, =gSaveBlock1Ptr - ldr r5, =gUnknown_020375E0 + ldr r5, =gSpecialVar_0x8004 ldrh r0, [r5] movs r4, 0x8C adds r1, r0, 0 @@ -1150,7 +1150,7 @@ _08070304: strb r0, [r2] mov r0, r9 movs r1, 0x27 - bl pokemon_setattr + bl SetMonData b _080703AE _08070322: add r4, sp, 0x10 @@ -1205,7 +1205,7 @@ _08070370: movs r1, 0x2B _08070388: adds r2, r4, 0 - bl pokemon_setattr + bl SetMonData b _080703AE _08070390: add r4, sp, 0x10 @@ -1220,7 +1220,7 @@ _08070390: mov r0, r9 movs r1, 0x2C adds r2, r4, 0 - bl pokemon_setattr + bl SetMonData _080703AE: adds r0, r5, 0x1 lsls r0, 24 @@ -1919,7 +1919,7 @@ _08070918: strb r0, [r2] mov r0, sp movs r1, 0x2D - bl pokemon_setattr + bl SetMonData ldr r0, =gPlayerParty movs r1, 0xFA lsls r1, 1 @@ -1977,11 +1977,11 @@ sub_8070954: @ 8070954 adds r0, r7, 0 movs r1, 0x26 add r2, sp, 0x10 - bl pokemon_setattr + bl SetMonData ldr r2, =gEggName adds r0, r7, 0 movs r1, 0x2 - bl pokemon_setattr + bl SetMonData lsls r2, r5, 3 subs r2, r5 lsls r2, 2 @@ -1989,15 +1989,15 @@ sub_8070954: @ 8070954 adds r2, r0 adds r0, r7, 0 movs r1, 0x20 - bl pokemon_setattr + bl SetMonData adds r0, r7, 0 movs r1, 0x24 mov r2, r8 - bl pokemon_setattr + bl SetMonData adds r0, r7, 0 movs r1, 0x3 adds r2, r4, 0 - bl pokemon_setattr + bl SetMonData cmp r6, 0 beq _080709E6 add r2, sp, 0x14 @@ -2005,7 +2005,7 @@ sub_8070954: @ 8070954 strb r0, [r2] adds r0, r7, 0 movs r1, 0x23 - bl pokemon_setattr + bl SetMonData _080709E6: mov r2, sp adds r2, 0x15 @@ -2013,7 +2013,7 @@ _080709E6: strb r0, [r2] adds r0, r7, 0 movs r1, 0x2D - bl pokemon_setattr + bl SetMonData add sp, 0x18 pop {r3,r4} mov r8, r3 @@ -2065,11 +2065,11 @@ sub_8070A0C: @ 8070A0C adds r0, r6, 0 movs r1, 0x26 add r2, sp, 0x10 - bl pokemon_setattr + bl SetMonData ldr r2, =gEggName adds r0, r6, 0 movs r1, 0x2 - bl pokemon_setattr + bl SetMonData lsls r2, r5, 3 subs r2, r5 lsls r2, 2 @@ -2077,15 +2077,15 @@ sub_8070A0C: @ 8070A0C adds r2, r0 adds r0, r6, 0 movs r1, 0x20 - bl pokemon_setattr + bl SetMonData adds r0, r6, 0 movs r1, 0x24 mov r2, r9 - bl pokemon_setattr + bl SetMonData adds r0, r6, 0 movs r1, 0x3 adds r2, r4, 0 - bl pokemon_setattr + bl SetMonData add sp, 0x14 pop {r3,r4} mov r8, r3 @@ -2179,7 +2179,7 @@ _08070B34: lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 - ldr r0, =gUnknown_020244E9 + ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r5, r0 bcs _08070BC0 @@ -2214,10 +2214,10 @@ _08070B9A: adds r0, r4, 0 movs r1, 0x20 mov r2, sp - bl pokemon_setattr + bl SetMonData b _08070BB4 _08070BA8: - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 strh r5, [r0] movs r0, 0x1 b _08070BC2 @@ -2225,7 +2225,7 @@ _08070BA8: _08070BB4: adds r4, 0x64 adds r5, 0x1 - ldr r0, =gUnknown_020244E9 + ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r5, r0 bcc _08070B5C @@ -3075,12 +3075,12 @@ c3_080469FC: @ 8071204 b _0807124E .pool _0807123C: - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r1, [r0] b _0807124E .pool _08071248: - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x2 strh r0, [r1] _0807124E: @@ -3109,7 +3109,7 @@ _08071284: ands r0, r2 cmp r0, 0 beq _080712B4 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r1, [r0] ldrb r0, [r4, 0x8] movs r1, 0 diff --git a/asm/decompress.s b/asm/decompress.s deleted file mode 100644 index 19f8b8626d..0000000000 --- a/asm/decompress.s +++ /dev/null @@ -1,1019 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start LZDecompressWram -@ void LZDecompressWram(void *src, void *dest) -LZDecompressWram: @ 8034518 - push {lr} - bl LZ77UnCompWram - pop {r0} - bx r0 - thumb_func_end LZDecompressWram - - thumb_func_start LZDecompressVram -@ void LZDecompressVram(void *src, void *dest) -LZDecompressVram: @ 8034524 - push {lr} - bl LZ77UnCompVram - pop {r0} - bx r0 - thumb_func_end LZDecompressVram - - thumb_func_start LoadCompressedObjectPic -@ u16 LoadCompressedObjectPic(struct obj_tiles *pic) -LoadCompressedObjectPic: @ 8034530 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r0, [r4] - ldr r5, =0x0201c000 - adds r1, r5, 0 - bl LZ77UnCompWram - str r5, [sp] - ldrh r1, [r4, 0x6] - lsls r1, 16 - ldrh r0, [r4, 0x4] - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadObjectPic - lsls r0, 16 - lsrs r0, 16 - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end LoadCompressedObjectPic - - thumb_func_start LoadCompressedObjectPicOverrideBuffer -@ void LoadCompressedObjectPicOverrideBuffer(struct obj_tiles *pic, void *tempBuffer) -LoadCompressedObjectPicOverrideBuffer: @ 8034564 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, [r4] - bl LZ77UnCompWram - str r5, [sp] - ldrh r1, [r4, 0x6] - lsls r1, 16 - ldrh r0, [r4, 0x4] - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadObjectPic - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end LoadCompressedObjectPicOverrideBuffer - - thumb_func_start LoadCompressedObjectPalette -@ void LoadCompressedObjectPalette(struct TaggedObjectPalette *palette) -LoadCompressedObjectPalette: @ 803458C - push {r4,r5,lr} - sub sp, 0x8 - adds r5, r0, 0 - ldr r0, [r5] - ldr r4, =0x0201c000 - adds r1, r4, 0 - bl LZ77UnCompWram - str r4, [sp] - ldrh r2, [r5, 0x4] - ldr r1, =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - orrs r0, r2 - str r0, [sp, 0x4] - mov r0, sp - bl LoadTaggedObjectPalette - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end LoadCompressedObjectPalette - - thumb_func_start LoadCompressedObjectPaletteOverrideBuffer -@ void LoadCompressedObjectPaletteOverrideBuffer(struct TaggedObjectPalette *palette, void *tempBuffer) -LoadCompressedObjectPaletteOverrideBuffer: @ 80345C0 - push {r4,r5,lr} - sub sp, 0x8 - adds r5, r0, 0 - adds r4, r1, 0 - ldr r0, [r5] - bl LZ77UnCompWram - str r4, [sp] - ldrh r2, [r5, 0x4] - ldr r1, =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - orrs r0, r2 - str r0, [sp, 0x4] - mov r0, sp - bl LoadTaggedObjectPalette - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end LoadCompressedObjectPaletteOverrideBuffer - - thumb_func_start DecompressPicFromTable -@ void DecompressPicFromTable(void **picTable, void *dest, u32 index) -DecompressPicFromTable: @ 80345F0 - push {r4,r5,lr} - adds r3, r0, 0 - adds r4, r1, 0 - adds r5, r2, 0 - movs r0, 0xCE - lsls r0, 1 - cmp r5, r0 - ble _08034610 - ldr r0, =gMonFrontPicTable - ldr r0, [r0] - bl LZ77UnCompWram - b _08034618 - .pool -_08034610: - ldr r0, [r3] - adds r1, r4, 0 - bl LZ77UnCompWram -_08034618: - adds r0, r4, 0 - adds r1, r5, 0 - bl DuplicateDeoxysTiles - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end DecompressPicFromTable - - thumb_func_start DecompressMonPic_DetectFrontOrBack -@ void DecompressMonPic_DetectFrontOrBack(void **picTable, void *dest, u32 speciesId, u32 personality) -DecompressMonPic_DetectFrontOrBack: @ 8034628 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r0, r2, 3 - ldr r1, =gMonFrontPicTable - adds r0, r1 - movs r1, 0 - cmp r4, r0 - bne _0803463E - movs r1, 0x1 -_0803463E: - str r1, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - bl DecompressMonPic_2 - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end DecompressMonPic_DetectFrontOrBack - - thumb_func_start DecompressMonPic -@ void DecompressMonPic(void **picTable, void *dest, u32 speciesId, u32 personality, bool8 isFrontPic) -DecompressMonPic: @ 8034654 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - adds r4, r1, 0 - adds r7, r2, 0 - adds r5, r3, 0 - ldr r0, [sp, 0x18] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r7, 0xC9 - bne _080346D0 - movs r0, 0xC0 - lsls r0, 18 - ands r0, r5 - lsrs r0, 18 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r5 - lsrs r1, 12 - orrs r0, r1 - movs r1, 0xC0 - lsls r1, 2 - ands r1, r5 - lsrs r1, 6 - orrs r0, r1 - movs r1, 0x3 - ands r1, r5 - orrs r0, r1 - movs r1, 0x1C - bl __umodsi3 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _080346A2 - movs r1, 0xC9 - b _080346AC -_080346A2: - movs r2, 0xCE - lsls r2, 1 - adds r0, r1, r2 - lsls r0, 16 - lsrs r1, r0, 16 -_080346AC: - mov r0, r8 - cmp r0, 0 - bne _080346C0 - ldr r0, =gMonBackPicTable - lsls r1, 3 - adds r1, r0 - ldr r0, [r1] - b _080346DC - .pool -_080346C0: - ldr r0, =gMonFrontPicTable - lsls r1, 3 - adds r1, r0 - ldr r0, [r1] - b _080346DC - .pool -_080346D0: - movs r0, 0xCE - lsls r0, 1 - cmp r7, r0 - ble _080346E8 - ldr r0, =gMonFrontPicTable - ldr r0, [r0] -_080346DC: - adds r1, r4, 0 - bl LZ77UnCompWram - b _080346F0 - .pool -_080346E8: - ldr r0, [r6] - adds r1, r4, 0 - bl LZ77UnCompWram -_080346F0: - adds r0, r4, 0 - adds r1, r7, 0 - bl DuplicateDeoxysTiles - lsls r0, r7, 16 - lsrs r0, 16 - adds r1, r5, 0 - adds r2, r4, 0 - mov r3, r8 - bl DrawSpindaSpots - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end DecompressMonPic - - thumb_func_start Unused_LZDecompressWramIndirect -@ void Unused_LZDecompressWramIndirect(void **src) -Unused_LZDecompressWramIndirect: @ 8034710 - push {lr} - ldr r0, [r0] - bl LZ77UnCompWram - pop {r0} - bx r0 - thumb_func_end Unused_LZDecompressWramIndirect - - thumb_func_start sub_803471C -sub_803471C: @ 803471C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - mov r9, r0 - str r1, [sp] - str r2, [sp, 0x4] - adds r5, r3, 0 - movs r0, 0x1 - mov r1, r9 - ands r0, r1 - cmp r0, 0 - bne _0803473C - b _080348D4 -_0803473C: - asrs r0, r1, 1 - adds r0, 0x4 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - movs r0, 0 - ldr r2, [sp] - cmp r0, r2 - blt _08034750 - b _08034964 -_08034750: - movs r4, 0x8 - subs r1, r4, r1 - str r1, [sp, 0x10] -_08034756: - movs r7, 0 - adds r0, 0x1 - str r0, [sp, 0x14] - ldr r0, [sp, 0x10] - cmp r7, r0 - bge _080347D2 - ldr r1, [sp, 0x8] - lsls r1, 8 - str r1, [sp, 0x18] - movs r2, 0 - mov r10, r2 - mov r0, r9 - movs r4, 0x8 - subs r0, r4, r0 - str r0, [sp, 0xC] -_08034774: - movs r3, 0 - asrs r0, r7, 1 - adds r1, r7, 0 - movs r2, 0x1 - ands r1, r2 - str r1, [sp, 0x20] - lsls r0, 8 - mov r8, r0 - mov r12, r5 -_08034786: - lsls r1, r3, 5 - ldr r4, [sp, 0x18] - adds r0, r5, r4 - adds r0, r1 - mov r1, r8 - adds r2, r0, r1 - mov r1, r12 - add r1, r8 - movs r6, 0xF -_08034798: - ldr r4, [sp, 0x20] - cmp r4, 0 - bne _080347A8 - strb r4, [r1] - add r4, sp, 0x20 - ldrb r4, [r4] - strb r4, [r2, 0x10] - b _080347B6 -_080347A8: - mov r0, r10 - strb r0, [r1, 0x10] - movs r4, 0x80 - lsls r4, 1 - adds r4, r2, r4 - str r4, [sp, 0x1C] - strb r0, [r4] -_080347B6: - adds r2, 0x1 - adds r1, 0x1 - subs r6, 0x1 - cmp r6, 0 - bge _08034798 - movs r0, 0x20 - add r12, r0 - adds r3, 0x1 - cmp r3, 0x7 - ble _08034786 - adds r7, 0x1 - ldr r1, [sp, 0xC] - cmp r7, r1 - blt _08034774 -_080347D2: - movs r7, 0 - movs r2, 0 -_080347D6: - movs r6, 0 - adds r4, r7, 0x1 - mov r8, r4 - lsls r4, r7, 5 -_080347DE: - adds r0, r6, 0x1 - mov r10, r0 - lsls r1, r6, 8 - adds r0, r1, 0 - adds r0, 0xC0 - adds r0, r5, r0 - adds r0, r4 - adds r1, r5, r1 - adds r1, r4 - movs r3, 0x1F -_080347F2: - strb r2, [r1] - strb r2, [r0] - adds r0, 0x1 - adds r1, 0x1 - subs r3, 0x1 - cmp r3, 0 - bge _080347F2 - mov r6, r10 - cmp r6, 0x7 - ble _080347DE - mov r7, r8 - cmp r7, 0x1 - ble _080347D6 - mov r1, r9 - cmp r1, 0x5 - bne _08034818 - movs r2, 0x90 - lsls r2, 1 - adds r5, r2 -_08034818: - movs r7, 0 - cmp r7, r9 - bge _080348AE -_0803481E: - movs r3, 0 - adds r7, 0x1 - mov r8, r7 - cmp r3, r9 - bge _0803488E -_08034828: - adds r3, 0x1 - mov r10, r3 - ldr r4, [sp, 0x4] - adds r4, 0x20 - adds r7, r5, 0 - adds r7, 0x20 - movs r0, 0x12 - adds r0, r5 - mov r12, r0 - ldr r2, [sp, 0x4] - adds r3, r5, 0 - movs r6, 0x3 -_08034840: - ldrb r0, [r2] - mov r1, r12 - strb r0, [r1] - ldrb r0, [r2, 0x1] - strb r0, [r1, 0x1] - ldrb r0, [r2, 0x2] - strb r0, [r1, 0x1E] - ldrb r0, [r2, 0x3] - strb r0, [r1, 0x1F] - movs r0, 0x81 - lsls r0, 1 - adds r1, r3, r0 - ldrb r0, [r2, 0x10] - strb r0, [r1] - ldr r0, =0x00000103 - adds r1, r3, r0 - ldrb r0, [r2, 0x11] - strb r0, [r1] - movs r0, 0x90 - lsls r0, 1 - adds r1, r3, r0 - ldrb r0, [r2, 0x12] - strb r0, [r1] - ldr r0, =0x00000121 - adds r1, r3, r0 - ldrb r0, [r2, 0x13] - strb r0, [r1] - movs r1, 0x4 - add r12, r1 - adds r2, 0x4 - adds r3, 0x4 - subs r6, 0x1 - cmp r6, 0 - bge _08034840 - str r4, [sp, 0x4] - adds r5, r7, 0 - mov r3, r10 - cmp r3, r9 - blt _08034828 -_0803488E: - mov r2, r9 - cmp r2, 0x7 - bne _080348A0 - adds r5, 0x20 - b _080348A8 - .pool -_080348A0: - mov r4, r9 - cmp r4, 0x5 - bne _080348A8 - adds r5, 0x60 -_080348A8: - mov r7, r8 - cmp r7, r9 - blt _0803481E -_080348AE: - mov r0, r9 - cmp r0, 0x7 - bne _080348BC - movs r1, 0x80 - lsls r1, 1 - adds r5, r1 - b _080348C8 -_080348BC: - mov r2, r9 - cmp r2, 0x5 - bne _080348C8 - movs r4, 0xF0 - lsls r4, 1 - adds r5, r4 -_080348C8: - ldr r0, [sp, 0x14] - ldr r1, [sp] - cmp r0, r1 - bge _080348D2 - b _08034756 -_080348D2: - b _08034964 -_080348D4: - movs r6, 0 - ldr r2, [sp] - cmp r6, r2 - bge _08034964 -_080348DC: - adds r6, 0x1 - mov r10, r6 - mov r4, r9 - cmp r4, 0x6 - bne _080348F4 - movs r0, 0 - movs r3, 0xFF -_080348EA: - strb r0, [r5] - adds r5, 0x1 - subs r3, 0x1 - cmp r3, 0 - bge _080348EA -_080348F4: - movs r7, 0 - cmp r7, r9 - bge _08034948 -_080348FA: - adds r7, 0x1 - mov r8, r7 - mov r1, r9 - lsls r0, r1, 5 - cmp r1, 0x6 - bne _08034914 - movs r1, 0 - movs r3, 0x1F -_0803490A: - strb r1, [r5] - adds r5, 0x1 - subs r3, 0x1 - cmp r3, 0 - bge _0803490A -_08034914: - adds r1, r0, 0 - cmp r1, 0 - ble _0803492E - adds r3, r1, 0 -_0803491C: - ldr r2, [sp, 0x4] - ldrb r0, [r2] - strb r0, [r5] - adds r2, 0x1 - str r2, [sp, 0x4] - adds r5, 0x1 - subs r3, 0x1 - cmp r3, 0 - bne _0803491C -_0803492E: - mov r4, r9 - cmp r4, 0x6 - bne _08034942 - movs r0, 0 - movs r3, 0x1F -_08034938: - strb r0, [r5] - adds r5, 0x1 - subs r3, 0x1 - cmp r3, 0 - bge _08034938 -_08034942: - mov r7, r8 - cmp r7, r9 - blt _080348FA -_08034948: - mov r0, r9 - cmp r0, 0x6 - bne _0803495C - movs r0, 0 - movs r3, 0xFF -_08034952: - strb r0, [r5] - adds r5, 0x1 - subs r3, 0x1 - cmp r3, 0 - bge _08034952 -_0803495C: - mov r6, r10 - ldr r1, [sp] - cmp r6, r1 - blt _080348DC -_08034964: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_803471C - - thumb_func_start sub_8034974 -sub_8034974: @ 8034974 - adds r2, r0, 0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - ldrb r1, [r2, 0x2] - lsls r1, 8 - orrs r0, r1 - ldrb r1, [r2, 0x1] - orrs r0, r1 - bx lr - thumb_func_end sub_8034974 - - thumb_func_start LoadCompressedObjectPicUsingHeap -@ u32 LoadCompressedObjectPicUsingHeap(struct obj_tiles *pic) -LoadCompressedObjectPicUsingHeap: @ 8034988 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r0, [r4] - ldr r0, [r0] - lsrs r0, 8 - bl AllocZeroed - adds r5, r0, 0 - ldr r0, [r4] - adds r1, r5, 0 - bl LZ77UnCompWram - str r5, [sp] - ldrh r1, [r4, 0x6] - lsls r1, 16 - ldrh r0, [r4, 0x4] - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadObjectPic - adds r0, r5, 0 - bl Free - movs r0, 0 - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end LoadCompressedObjectPicUsingHeap - - thumb_func_start LoadCompressedObjectPaletteUsingHeap -@ u32 LoadCompressedObjectPaletteUsingHeap(struct TaggedObjectPalette *palette) -LoadCompressedObjectPaletteUsingHeap: @ 80349C4 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r0, [r4] - ldr r0, [r0] - lsrs r0, 8 - bl AllocZeroed - adds r5, r0, 0 - ldr r0, [r4] - adds r1, r5, 0 - bl LZ77UnCompWram - str r5, [sp] - ldrh r2, [r4, 0x4] - ldr r1, =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - orrs r0, r2 - str r0, [sp, 0x4] - mov r0, sp - bl LoadTaggedObjectPalette - adds r0, r5, 0 - bl Free - movs r0, 0 - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end LoadCompressedObjectPaletteUsingHeap - - thumb_func_start DecompressPicFromTable_2 -@ void DecompressPicFromTable_2(void **picTable, void *dest, u32 index) -DecompressPicFromTable_2: @ 8034A08 - push {r4,r5,lr} - adds r3, r0, 0 - adds r4, r1, 0 - adds r5, r2, 0 - movs r0, 0xCE - lsls r0, 1 - cmp r5, r0 - ble _08034A28 - ldr r0, =gMonFrontPicTable - ldr r0, [r0] - bl LZ77UnCompWram - b _08034A30 - .pool -_08034A28: - ldr r0, [r3] - adds r1, r4, 0 - bl LZ77UnCompWram -_08034A30: - adds r0, r4, 0 - adds r1, r5, 0 - bl DuplicateDeoxysTiles - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end DecompressPicFromTable_2 - - thumb_func_start DecompressMonPic_2 -@ void DecompressMonPic_2(void **picTable, void *dest, u32 speciesId, u32 personality, bool8 isFrontPic) -DecompressMonPic_2: @ 8034A40 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - adds r4, r1, 0 - adds r7, r2, 0 - adds r5, r3, 0 - ldr r0, [sp, 0x18] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r7, 0xC9 - bne _08034ABC - movs r0, 0xC0 - lsls r0, 18 - ands r0, r5 - lsrs r0, 18 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r5 - lsrs r1, 12 - orrs r0, r1 - movs r1, 0xC0 - lsls r1, 2 - ands r1, r5 - lsrs r1, 6 - orrs r0, r1 - movs r1, 0x3 - ands r1, r5 - orrs r0, r1 - movs r1, 0x1C - bl __umodsi3 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _08034A8E - movs r1, 0xC9 - b _08034A98 -_08034A8E: - movs r2, 0xCE - lsls r2, 1 - adds r0, r1, r2 - lsls r0, 16 - lsrs r1, r0, 16 -_08034A98: - mov r0, r8 - cmp r0, 0 - bne _08034AAC - ldr r0, =gMonBackPicTable - lsls r1, 3 - adds r1, r0 - ldr r0, [r1] - b _08034AC8 - .pool -_08034AAC: - ldr r0, =gMonFrontPicTable - lsls r1, 3 - adds r1, r0 - ldr r0, [r1] - b _08034AC8 - .pool -_08034ABC: - movs r0, 0xCE - lsls r0, 1 - cmp r7, r0 - ble _08034AD4 - ldr r0, =gMonFrontPicTable - ldr r0, [r0] -_08034AC8: - adds r1, r4, 0 - bl LZ77UnCompWram - b _08034ADC - .pool -_08034AD4: - ldr r0, [r6] - adds r1, r4, 0 - bl LZ77UnCompWram -_08034ADC: - adds r0, r4, 0 - adds r1, r7, 0 - bl DuplicateDeoxysTiles - lsls r0, r7, 16 - lsrs r0, 16 - adds r1, r5, 0 - adds r2, r4, 0 - mov r3, r8 - bl DrawSpindaSpots - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end DecompressMonPic_2 - - thumb_func_start DecompressMonPic_DetectFrontOrBack_2 -@ void DecompressMonPic_DetectFrontOrBack_2(void **picTable, void *dest, u32 speciesId, u32 personality) -DecompressMonPic_DetectFrontOrBack_2: @ 8034AFC - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r0, r2, 3 - ldr r1, =gMonFrontPicTable - adds r0, r1 - movs r1, 0 - cmp r4, r0 - bne _08034B12 - movs r1, 0x1 -_08034B12: - str r1, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - bl DecompressMonPic_2 - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end DecompressMonPic_DetectFrontOrBack_2 - - thumb_func_start sub_8034B28 -sub_8034B28: @ 8034B28 - push {lr} - adds r3, r0, 0 - movs r0, 0xCE - lsls r0, 1 - cmp r2, r0 - ble _08034B44 - ldr r0, =gMonFrontPicTable - ldr r0, [r0] - bl LZ77UnCompWram - b _08034B4A - .pool -_08034B44: - ldr r0, [r3] - bl LZ77UnCompWram -_08034B4A: - pop {r0} - bx r0 - thumb_func_end sub_8034B28 - - thumb_func_start DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack -@ void DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack(void **picTable, void *dest, u32 speciesId, u32 personality) -DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack: @ 8034B50 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r0, r2, 3 - ldr r1, =gMonFrontPicTable - adds r0, r1 - movs r1, 0 - cmp r4, r0 - bne _08034B66 - movs r1, 0x1 -_08034B66: - str r1, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - bl DecompressMonPicWithoutDuplicatingDeoxysTiles - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack - - thumb_func_start DecompressMonPicWithoutDuplicatingDeoxysTiles -@ void DecompressMonPicWithoutDuplicatingDeoxysTiles(void **picTable, void *dest, u32 speciesId, u32 personality, bool8 isFrontPic) -DecompressMonPicWithoutDuplicatingDeoxysTiles: @ 8034B7C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - adds r5, r1, 0 - adds r7, r2, 0 - adds r4, r3, 0 - ldr r0, [sp, 0x18] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r7, 0xC9 - bne _08034BF8 - movs r0, 0xC0 - lsls r0, 18 - ands r0, r4 - lsrs r0, 18 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r4 - lsrs r1, 12 - orrs r0, r1 - movs r1, 0xC0 - lsls r1, 2 - ands r1, r4 - lsrs r1, 6 - orrs r0, r1 - movs r1, 0x3 - ands r1, r4 - orrs r0, r1 - movs r1, 0x1C - bl __umodsi3 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _08034BCA - movs r1, 0xC9 - b _08034BD4 -_08034BCA: - movs r2, 0xCE - lsls r2, 1 - adds r0, r1, r2 - lsls r0, 16 - lsrs r1, r0, 16 -_08034BD4: - mov r0, r8 - cmp r0, 0 - bne _08034BE8 - ldr r0, =gMonBackPicTable - lsls r1, 3 - adds r1, r0 - ldr r0, [r1] - b _08034C04 - .pool -_08034BE8: - ldr r0, =gMonFrontPicTable - lsls r1, 3 - adds r1, r0 - ldr r0, [r1] - b _08034C04 - .pool -_08034BF8: - movs r0, 0xCE - lsls r0, 1 - cmp r7, r0 - ble _08034C10 - ldr r0, =gMonFrontPicTable - ldr r0, [r0] -_08034C04: - adds r1, r5, 0 - bl LZ77UnCompWram - b _08034C18 - .pool -_08034C10: - ldr r0, [r6] - adds r1, r5, 0 - bl LZ77UnCompWram -_08034C18: - lsls r0, r7, 16 - lsrs r0, 16 - adds r1, r4, 0 - adds r2, r5, 0 - mov r3, r8 - bl DrawSpindaSpots - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end DecompressMonPicWithoutDuplicatingDeoxysTiles - - thumb_func_start DuplicateDeoxysTiles -@ void DuplicateDeoxysTiles(void *pointer, u32 speciesId) -DuplicateDeoxysTiles: @ 8034C30 - push {lr} - adds r3, r0, 0 - movs r0, 0xCD - lsls r0, 1 - cmp r1, r0 - bne _08034C4A - movs r1, 0x80 - lsls r1, 4 - adds r0, r3, r1 - ldr r2, =0x04000200 - adds r1, r3, 0 - bl CpuSet -_08034C4A: - pop {r0} - bx r0 - .pool - thumb_func_end DuplicateDeoxysTiles - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/decoration.s b/asm/decoration.s index c22bd977ff..9d228be38e 100644 --- a/asm/decoration.s +++ b/asm/decoration.s @@ -260,7 +260,7 @@ sub_8126B80: @ 8126B80 cmp r1, r0 beq _08126BF4 movs r0, 0x5 - bl audio_play + bl PlaySE ldr r1, =gUnknown_085A6B48 ldr r0, =gUnknown_0203A150 ldrb r0, [r0] @@ -286,7 +286,7 @@ _08126BD8: .pool _08126BF4: movs r0, 0x5 - bl audio_play + bl PlaySE adds r0, r5, 0 bl sub_8126D6C _08126C00: @@ -849,13 +849,13 @@ _081270BC: bne _081270CE _081270C0: movs r0, 0x5 - bl audio_play + bl PlaySE adds r0, r5, 0 bl sub_812719C b _081270DE _081270CE: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =gUnknown_0203A173 strb r4, [r0] adds r0, r5, 0 @@ -1284,7 +1284,7 @@ sub_8127480: @ 8127480 cmp r1, 0x1 beq _08127492 movs r0, 0x5 - bl audio_play + bl PlaySE _08127492: adds r0, r4, 0 bl sub_8127744 @@ -1527,7 +1527,7 @@ sub_812764C: @ 812764C .pool _081276A4: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =gUnknown_085A6B78 movs r2, 0x16 ldrsh r1, [r5, r2] @@ -1541,7 +1541,7 @@ _081276A4: .pool _081276C4: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =gUnknown_0203A172 strb r4, [r0] bl sub_8127554 @@ -2473,9 +2473,9 @@ sub_8127E18: @ 8127E18 sub sp, 0x4 movs r6, 0 ldr r7, =gUnknown_02037318 - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 mov r8, r0 - ldr r1, =gUnknown_020375E4 + ldr r1, =gSpecialVar_0x8006 mov r10, r1 ldr r2, =gSaveBlock1Ptr mov r9, r2 @@ -2546,7 +2546,7 @@ _08127E82: strh r1, [r2] ldr r1, =gUnknown_0203AA36 ldrh r1, [r1] - ldr r4, =gUnknown_020375E6 + ldr r4, =gSpecialVar_0x8007 strh r1, [r4] mov r5, r9 ldr r2, [r5] @@ -2560,7 +2560,7 @@ _08127E82: mov r6, r10 movs r4, 0 ldrsh r3, [r6, r4] - ldr r5, =gUnknown_020375E6 + ldr r5, =gSpecialVar_0x8007 movs r6, 0 ldrsh r4, [r5, r6] str r4, [sp] @@ -2802,7 +2802,7 @@ ConfigureCameraObjectForPlacingDecoration: @ 8128118 lsls r1, 24 lsrs r1, 24 ldr r3, =gUnknown_0203AA38 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldr r5, =gUnknown_03005DD0 ldr r2, [r5, 0x4] lsls r0, r2, 4 @@ -2903,13 +2903,13 @@ _081281EA: ldrb r0, [r0, 0x8] cmp r0, 0 bne _0812820C - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy str r0, [sp] movs r0, 0xC1 b _08128214 .pool _0812820C: - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy movs r0, 0 str r0, [sp] movs r0, 0xC2 @@ -2918,7 +2918,7 @@ _08128214: bl AddPseudoFieldObject ldr r1, =gUnknown_0203AA39 strb r0, [r1] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r0, =gUnknown_0203AA39 ldrb r1, [r0] lsls r0, r1, 4 @@ -2938,7 +2938,7 @@ _08128214: adds r0, r1 lsls r0, 2 adds r0, r3 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, =gUnknown_03005DD0 ldr r0, [r0, 0x4] strb r0, [r4] @@ -3113,7 +3113,7 @@ sub_81283BC: @ 81283BC adds r0, r1 movs r1, 0 strh r1, [r0, 0x1C] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r0, =gUnknown_0203AA38 ldrb r1, [r0] lsls r0, r1, 4 @@ -3151,7 +3151,7 @@ sub_8128414: @ 8128414 adds r0, r1 movs r1, 0 strh r1, [r0, 0x1C] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r0, =gUnknown_0203AA38 ldrb r1, [r0] lsls r0, r1, 4 @@ -3846,7 +3846,7 @@ sub_8128950: @ 8128950 .pool _081289A4: movs r0, 0x20 - bl audio_play + bl PlaySE ldr r4, =gStringVar4 ldr r1, =gUnknown_085EA8A6 adds r0, r4, 0 @@ -3928,7 +3928,7 @@ _08128A44: ldr r0, =gUnknown_08275D1F bl script_env_1_execute_new_script _08128A64: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, =gUnknown_0203AA38 ldrb r1, [r0] lsls r0, r1, 4 @@ -4148,7 +4148,7 @@ _08128C10: _08128C30: bl sub_812A3C8 ldr r0, =0x00000be5 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag ldr r1, =gUnknown_03005DAC ldr r0, =sub_8128CD4 str r0, [r1] @@ -4367,7 +4367,7 @@ sub_8128DE0: @ 8128DE0 ldr r1, =gUnknown_0203AA3A movs r0, 0 strb r0, [r1] - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldr r3, =gUnknown_0203AA38 ldrb r1, [r3] lsls r0, r1, 4 @@ -4401,7 +4401,7 @@ sub_8128E18: @ 8128E18 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r4, r0, r1 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites ldr r3, =gUnknown_0203AA38 ldrb r1, [r3] lsls r0, r1, 4 @@ -4558,7 +4558,7 @@ _08128F66: ldrb r0, [r0] cmp r0, 0 beq _08128F94 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r2, =gUnknown_0203AA38 ldrb r1, [r2] lsls r0, r1, 4 @@ -4616,7 +4616,7 @@ sub_8128FD8: @ 8128FD8 movs r0, 0 movs r1, 0x1 bl sub_8197434 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, =gUnknown_0203AA38 ldrb r1, [r0] lsls r0, r1, 4 @@ -5078,7 +5078,7 @@ gpu_pal_decompress_alloc_tag_and_upload: @ 8129334 cmp r0, 0x4 beq _081293B4 ldr r0, =0x00000be5 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag adds r0, r5, 0 bl sub_81291E8 ldr r0, [r5] @@ -5100,18 +5100,18 @@ gpu_pal_decompress_alloc_tag_and_upload: @ 8129334 lsrs r1, 12 bl sub_8129068 ldr r0, =gUnknown_085A72BC - bl LoadTaggedObjectPalette + bl LoadSpritePalette ldr r0, =gUnknown_085A728C movs r1, 0 movs r2, 0 movs r3, 0 - bl AddObjectToFront + bl CreateSprite b _081293C6 .pool _081293B4: ldr r0, [r4, 0x1C] ldrh r0, [r0] - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy movs r2, 0x1 str r2, [sp] movs r2, 0 @@ -5166,7 +5166,7 @@ AddDecorationIconObjectFromIconTable: @ 81293D8 orrs r0, r2 str r0, [sp, 0x4] mov r0, sp - bl LoadObjectPic + bl LoadSpriteSheet adds r0, r5, 0 movs r1, 0x1 bl GetDecorationIconPicOrPalette @@ -5192,7 +5192,7 @@ AddDecorationIconObjectFromIconTable: @ 81293D8 movs r1, 0 movs r2, 0 movs r3, 0 - bl AddObjectToFront + bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 @@ -5297,14 +5297,14 @@ AddDecorationIconObjectFromFieldObject: @ 81294C0 orrs r0, r1 str r0, [sp, 0x8] add r0, sp, 0x4 - bl LoadObjectPic + bl LoadSpriteSheet str r5, [sp, 0xC] add r0, sp, 0xC ldr r1, [r0, 0x4] ands r1, r4 orrs r1, r7 str r1, [r0, 0x4] - bl LoadTaggedObjectPalette + bl LoadSpritePalette movs r0, 0x18 bl Alloc adds r4, r0, 0 @@ -5321,7 +5321,7 @@ AddDecorationIconObjectFromFieldObject: @ 81294C0 movs r1, 0 movs r2, 0 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0 @@ -5331,7 +5331,7 @@ AddDecorationIconObjectFromFieldObject: @ 81294C0 _081295A4: ldr r0, [r4, 0x1C] ldrh r0, [r0] - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy movs r2, 0x1 str r2, [sp] movs r2, 0 @@ -5390,7 +5390,7 @@ AddDecorationIconObject: @ 81295CC lsrs r4, r0, 24 cmp r4, 0x40 beq _08129696 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r3, r4, 4 adds r1, r3, r4 lsls r1, 2 @@ -5418,7 +5418,7 @@ _08129634: lsrs r4, r0, 24 cmp r4, 0x40 beq _08129696 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r2, r4, 4 adds r0, r2, r4 lsls r0, 2 @@ -5453,7 +5453,7 @@ _08129696: movs r0, 0x40 b _081296D8 _0812969A: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r3, r4, 4 adds r1, r3, r4 lsls r1, 2 @@ -5517,12 +5517,12 @@ sub_81296EC: @ 81296EC thumb_func_start sub_8129708 sub_8129708: @ 8129708 push {r4-r6,lr} - ldr r6, =gUnknown_020375E2 + ldr r6, =gSpecialVar_0x8005 movs r0, 0 strh r0, [r6] - ldr r2, =gUnknown_020375F0 + ldr r2, =gScriptResult strh r0, [r2] - ldr r4, =gUnknown_020375E0 + ldr r4, =gSpecialVar_0x8004 ldr r1, =gUnknown_0203AAC4 ldrh r0, [r4] ldrb r1, [r1] @@ -5533,7 +5533,7 @@ sub_8129708: @ 8129708 b _08129796 .pool _08129738: - ldr r1, =gUnknown_020375E4 + ldr r1, =gSpecialVar_0x8006 ldrb r0, [r2] strh r0, [r1] b _08129796 @@ -5598,9 +5598,9 @@ sub_81297AC: @ 81297AC bcs _081297F0 adds r3, r0, 0 ldr r5, [r3, 0x4] - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r4, [r0] - ldr r6, =gUnknown_020375E2 + ldr r6, =gSpecialVar_0x8005 _081297C4: lsls r0, r2, 1 adds r0, r2 @@ -5867,7 +5867,7 @@ SetUpPuttingAwayDecorationPlayerAvatar: @ 81299DC sub sp, 0x4 bl player_get_direction_lower_nybble ldr r3, =gUnknown_0203AA38 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r4, =gUnknown_03005DD0 ldr r1, [r4, 0x4] lsls r0, r1, 4 @@ -5881,7 +5881,7 @@ SetUpPuttingAwayDecorationPlayerAvatar: @ 81299DC movs r1, 0x78 movs r2, 0x50 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 str r0, [r4, 0x4] @@ -5890,13 +5890,13 @@ SetUpPuttingAwayDecorationPlayerAvatar: @ 81299DC ldrb r0, [r0, 0x8] cmp r0, 0 bne _08129A3C - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy str r0, [sp] movs r0, 0xC1 b _08129A44 .pool _08129A3C: - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy movs r0, 0 str r0, [sp] movs r0, 0xC2 @@ -5906,7 +5906,7 @@ _08129A44: bl AddPseudoFieldObject ldr r1, =gUnknown_0203AA39 strb r0, [r1] - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites ldr r0, =gUnknown_0203AA39 ldrb r0, [r0] lsls r1, r0, 4 @@ -5929,7 +5929,7 @@ _08129A44: adds r0, r1 lsls r0, 2 adds r0, r6 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, =gUnknown_03005DD0 ldr r0, [r0, 0x4] strb r0, [r5] @@ -6021,7 +6021,7 @@ sub_8129B34: @ 8129B34 movs r0, 0 movs r1, 0x1 bl sub_8197434 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldr r3, =gUnknown_0203AA38 ldrb r1, [r3] lsls r0, r1, 4 @@ -6115,7 +6115,7 @@ sub_8129BF8: @ 8129BF8 movs r1, 0 strh r1, [r0, 0x1C] bl sub_8128DE0 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r5, =gUnknown_0203AA38 ldrb r1, [r5] lsls r0, r1, 4 @@ -6134,7 +6134,7 @@ sub_8129BF8: @ 8129BF8 lsls r0, 2 adds r3, 0x1C adds r0, r3 - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy str r1, [r0] ldr r5, =gStringVar4 ldr r1, =gUnknown_085EAA62 @@ -6194,7 +6194,7 @@ _08129CA8: cmp r0, 0x1 bne _08129D3C _08129CDE: - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r4, =gUnknown_0203AA38 ldrb r1, [r4] lsls r0, r1, 4 @@ -6213,7 +6213,7 @@ _08129CDE: lsls r0, 2 adds r3, 0x1C adds r0, r3 - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy str r1, [r0] ldr r4, =gStringVar4 ldr r1, =gUnknown_085EAA62 @@ -6350,7 +6350,7 @@ sub_8129E0C: @ 8129E0C push {r4-r6,lr} lsls r0, 24 lsls r1, 24 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites ldr r6, =gUnknown_0203AA38 ldrb r3, [r6] lsls r2, r3, 4 @@ -6369,7 +6369,7 @@ sub_8129E0C: @ 8129E0C adds r3, r5, 0 adds r3, 0x1C adds r2, r3 - ldr r3, =DummyObjectCallback + ldr r3, =SpriteCallbackDummy str r3, [r2] ldr r4, =gUnknown_0203AA39 ldrb r3, [r4] @@ -7044,12 +7044,12 @@ sub_812A39C: @ 812A39C cmp r0, 0 bne _0812A3B8 ldr r0, =gUnknown_085A73D8 - bl LoadTaggedObjectPalette + bl LoadSpritePalette b _0812A3BE .pool _0812A3B8: ldr r0, =gUnknown_085A73E0 - bl LoadTaggedObjectPalette + bl LoadSpritePalette _0812A3BE: pop {r0} bx r0 @@ -7060,7 +7060,7 @@ _0812A3BE: sub_812A3C8: @ 812A3C8 push {lr} movs r0, 0x8 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag pop {r0} bx r0 thumb_func_end sub_812A3C8 diff --git a/asm/dewford_trend.s b/asm/dewford_trend.s index aef73f46dd..c3a7b192cd 100644 --- a/asm/dewford_trend.s +++ b/asm/dewford_trend.s @@ -5,8 +5,8 @@ .text - thumb_func_start sub_81224D4 -sub_81224D4: @ 81224D4 + thumb_func_start InitDewfordTrend +InitDewfordTrend: @ 81224D4 push {r4-r7,lr} movs r6, 0 ldr r5, =gSaveBlock1Ptr @@ -77,7 +77,7 @@ _08122522: pop {r0} bx r0 .pool - thumb_func_end sub_81224D4 + thumb_func_end InitDewfordTrend thumb_func_start sub_8122580 sub_8122580: @ 8122580 @@ -614,7 +614,7 @@ _08122980: sub_8122998: @ 8122998 push {lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r1, 3 ldr r0, [r2] @@ -667,7 +667,7 @@ sub_81229C8: @ 81229C8 negs r0, r0 lsrs r4, r0, 31 _08122A0C: - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r4, [r0] pop {r4} pop {r0} @@ -677,7 +677,7 @@ _08122A0C: thumb_func_start sub_8122A30 sub_8122A30: @ 8122A30 - ldr r2, =gUnknown_020375F0 + ldr r2, =gScriptResult ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r3, =0x00002e6c diff --git a/asm/diploma.s b/asm/diploma.s index bc3daf86b7..6d303d860c 100644 --- a/asm/diploma.s +++ b/asm/diploma.s @@ -8,8 +8,8 @@ thumb_func_start sub_8177874 sub_8177874: @ 8177874 push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -93,9 +93,9 @@ sub_8177888: @ 8177888 ldr r0, [r1, 0x8] bl remove_some_task bl ResetTasks - bl ResetAllObjectData + bl ResetSpriteData bl ResetPaletteFade - bl ResetObjectPaletteAllocator + bl FreeAllSpritePalettes ldr r0, =gUnknown_085E7088 movs r1, 0 movs r2, 0x40 @@ -159,8 +159,8 @@ _0817797C: sub_8177A08: @ 8177A08 push {lr} bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 diff --git a/asm/easy_chat.s b/asm/easy_chat.s index d967dd1400..7d5e0df406 100644 --- a/asm/easy_chat.s +++ b/asm/easy_chat.s @@ -56,8 +56,8 @@ sub_811A20C: @ 811A20C sub_811A278: @ 811A278 push {lr} bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 @@ -67,8 +67,8 @@ sub_811A278: @ 811A278 sub_811A290: @ 811A290 push {lr} bl TransferPlttBuffer - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests pop {r0} bx r0 thumb_func_end sub_811A290 @@ -209,7 +209,7 @@ _0811A3B6: cmp r6, 0 beq _0811A41C movs r0, 0x5 - bl audio_play + bl PlaySE adds r0, r6, 0 bl sub_811C158 ldrh r0, [r5] @@ -292,8 +292,8 @@ _0811A454: _0811A468: movs r0, 0 bl SetVBlankCallback - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes bl ResetPaletteFade b _0811A4C0 _0811A47C: @@ -360,7 +360,7 @@ sub_811A4D0: @ 811A4D0 easy_chat_input_maybe: @ 811A4F0 push {r4,r5,lr} movs r5, 0x3 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0x14 bls _0811A4FE @@ -425,7 +425,7 @@ _0811A5A0: .pool _0811A5B4: ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -456,7 +456,7 @@ _0811A5E6: .pool _0811A604: ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -465,13 +465,13 @@ _0811A604: adds r0, r1 ldr r1, =0x000027d0 adds r4, r0, r1 - ldr r0, =gUnknown_020375E4 + ldr r0, =gSpecialVar_0x8006 ldrb r5, [r0] b _0811A7C2 .pool _0811A630: ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -480,7 +480,7 @@ _0811A630: adds r0, r3 ldr r1, [r2] adds r1, r0 - ldr r0, =gUnknown_020375E4 + ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] lsls r0, 1 adds r0, 0x1C @@ -490,7 +490,7 @@ _0811A630: .pool _0811A664: ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -530,7 +530,7 @@ _0811A6B4: .pool _0811A6D4: ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -539,7 +539,7 @@ _0811A6D4: adds r0, r3 ldr r1, [r2] adds r1, r0 - ldr r0, =gUnknown_020375E4 + ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] lsls r0, 1 adds r0, 0x4 @@ -549,7 +549,7 @@ _0811A6D4: .pool _0811A708: ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -570,7 +570,7 @@ _0811A72C: .pool _0811A73C: ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -621,7 +621,7 @@ _0811A7BC: adds r4, r0, 0 _0811A7C2: bl overworld_free_bg_tilemaps - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrb r0, [r0] ldr r2, =sub_80861B0 adds r1, r4, 0 @@ -1659,7 +1659,7 @@ _0811AFAC: b _0811AFE6 .pool _0811AFC0: - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r1, [r0] ldr r0, =gUnknown_0203A118 ldr r0, [r0] @@ -1709,7 +1709,7 @@ _0811B00C: .pool _0811B020: bl sub_811BE9C - ldr r4, =gUnknown_020375F0 + ldr r4, =gScriptResult bl sub_811B4EC strh r0, [r4] bl sub_811B3E4 @@ -1860,7 +1860,7 @@ _0811B118: b _0811B14A .pool _0811B134: - ldr r4, =gUnknown_020375F0 + ldr r4, =gScriptResult bl sub_811B4EC strh r0, [r4] bl sub_811B3E4 @@ -2189,7 +2189,7 @@ sub_811B368: @ 811B368 .pool _0811B388: movs r0, 0x20 - bl audio_play + bl PlaySE movs r0, 0 _0811B390: pop {r1} @@ -2211,7 +2211,7 @@ sub_811B394: @ 811B394 cmp r5, 0 beq _0811B3BC movs r0, 0x20 - bl audio_play + bl PlaySE movs r0, 0 b _0811B3DC _0811B3BC: @@ -3792,18 +3792,18 @@ _0811BED0: adds r1, r0, 0 cmp r1, 0 beq _0811BEE4 - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 movs r0, 0x2 b _0811BF12 .pool _0811BEE4: - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 strh r1, [r0] b _0811BF14 .pool _0811BEF0: bl sub_811BE54 - ldr r4, =gUnknown_020375E0 + ldr r4, =gSpecialVar_0x8004 ldr r0, [r5] adds r0, 0x3C bl sub_81226D8 @@ -3814,7 +3814,7 @@ _0811BEF0: .pool _0811BF0C: bl sub_811BF40 - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 _0811BF12: strh r0, [r1] _0811BF14: @@ -7714,9 +7714,9 @@ sub_811DE5C: @ 811DE5C sub_811DE90: @ 811DE90 push {r4,r5,lr} ldr r0, =gUnknown_08597CA0 - bl LoadObjectPics + bl LoadSpriteSheets ldr r0, =gUnknown_08597CC0 - bl LoadTaggedObjectPalettes + bl LoadSpritePalettes movs r5, 0 ldr r4, =gUnknown_08597CE8 _0811DEA2: @@ -7755,7 +7755,7 @@ sub_811DEC4: @ 811DEC4 adds r2, r3 asrs r2, 16 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0203A11C @@ -7766,7 +7766,7 @@ sub_811DEC4: @ 811DEC4 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 str r1, [r2] movs r0, 0x1 @@ -7876,7 +7876,7 @@ sub_811DFC8: @ 811DFC8 movs r1, 0 movs r2, 0 movs r3, 0x3 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r5, =gUnknown_0203A11C @@ -7888,7 +7888,7 @@ sub_811DFC8: @ 811DFC8 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r1, r4 str r1, [r2] movs r0, 0x20 @@ -7897,7 +7897,7 @@ sub_811DFC8: @ 811DFC8 movs r1, 0 movs r2, 0 movs r3, 0x3 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, [r5] @@ -7936,7 +7936,7 @@ sub_811E050: @ 811E050 lsls r4, 2 adds r0, r4 ldr r0, [r0] - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, [r5] adds r4, r0, r4 movs r6, 0 @@ -7945,7 +7945,7 @@ sub_811E050: @ 811E050 lsls r4, 2 adds r0, r4 ldr r0, [r0] - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, [r5] adds r0, r4 str r6, [r0] @@ -8026,7 +8026,7 @@ sub_811E0EC: @ 811E0EC adds r0, r4 ldr r0, [r0] movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim mov r2, r8 ldr r1, [r2] adds r4, r1, r4 @@ -8045,7 +8045,7 @@ sub_811E0EC: @ 811E0EC adds r1, r6 ldr r0, [r1] movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim mov r1, r8 ldr r0, [r1] adds r0, r6 @@ -8061,7 +8061,7 @@ _0811E150: adds r0, r4 ldr r0, [r0] movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r1, [r6] adds r4, r1, r4 ldr r0, [r4] @@ -8079,7 +8079,7 @@ _0811E150: adds r1, r5 ldr r0, [r1] movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r0, [r6] adds r0, r5 ldr r1, [r0] @@ -8144,7 +8144,7 @@ _0811E1EC: adds r0, r4 ldr r0, [r0] adds r1, r6, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r1, [r5] adds r4, r1, r4 ldr r0, [r4] @@ -8157,7 +8157,7 @@ _0811E1EC: adds r1, r4 ldr r0, [r1] adds r1, r6, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r0, [r5] adds r0, r4 ldr r1, [r0] @@ -8175,7 +8175,7 @@ _0811E234: adds r0, r4 ldr r0, [r0] movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r1, [r6] adds r4, r1, r4 ldr r0, [r4] @@ -8193,7 +8193,7 @@ _0811E234: adds r1, r5 ldr r0, [r1] movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r0, [r6] adds r0, r5 ldr r1, [r0] @@ -8217,7 +8217,7 @@ sub_811E288: @ 811E288 movs r1, 0 movs r2, 0 movs r3, 0x4 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0203A11C @@ -8228,7 +8228,7 @@ sub_811E288: @ 811E288 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 str r1, [r2] ldr r0, =sub_811E2DC @@ -8347,7 +8347,7 @@ sub_811E380: @ 811E380 ldr r0, [r0] cmp r0, 0 beq _0811E3A2 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, [r4] movs r1, 0xB9 lsls r1, 2 @@ -8368,7 +8368,7 @@ sub_811E3AC: @ 811E3AC movs r1, 0xD0 movs r2, 0x80 movs r3, 0x6 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r5, =gUnknown_0203A11C @@ -8379,7 +8379,7 @@ sub_811E3AC: @ 811E3AC lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r1, r4 str r1, [r2] movs r6, 0 @@ -8389,7 +8389,7 @@ sub_811E3AC: @ 811E3AC movs r1, 0xD0 movs r2, 0x50 movs r3, 0x5 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, [r5] @@ -8445,7 +8445,7 @@ _0811E430: adds r0, r1 ldr r0, [r0] movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim b _0811E476 _0811E466: ldr r0, [r4] @@ -8454,7 +8454,7 @@ _0811E466: adds r0, r1 ldr r0, [r0] movs r1, 0x2 - bl StartObjectImageAnim + bl StartSpriteAnim _0811E476: ldr r0, =gUnknown_0203A11C ldr r1, [r0] @@ -8499,7 +8499,7 @@ sub_811E4AC: @ 811E4AC adds r0, r1 ldr r0, [r0] movs r1, 0x3 - bl StartObjectImageAnim + bl StartSpriteAnim pop {r0} bx r0 .pool @@ -8552,13 +8552,13 @@ _0811E502: lsls r4, 2 adds r0, r3, r4 ldr r0, [r0] - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, [r5] movs r1, 0xBA lsls r1, 2 adds r0, r1 ldr r0, [r0] - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r1, [r5] adds r4, r1, r4 str r6, [r4] @@ -8589,7 +8589,7 @@ sub_811E55C: @ 811E55C adds r0, r1 ldr r0, [r0] movs r1, 0x4 - bl StartObjectImageAnim + bl StartSpriteAnim pop {r0} bx r0 .pool @@ -8609,7 +8609,7 @@ sub_811E578: @ 811E578 adds r0, r1 ldr r0, [r0] movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim b _0811E5AE .pool _0811E59C: @@ -8620,7 +8620,7 @@ _0811E59C: adds r0, r1 ldr r0, [r0] movs r1, 0x2 - bl StartObjectImageAnim + bl StartSpriteAnim _0811E5AE: pop {r0} bx r0 @@ -8652,7 +8652,7 @@ sub_811E5D4: @ 811E5D4 movs r1, 0x60 movs r2, 0x50 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 @@ -8665,7 +8665,7 @@ sub_811E5D4: @ 811E5D4 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 str r0, [r2] _0811E602: @@ -8673,7 +8673,7 @@ _0811E602: movs r1, 0x60 movs r2, 0x9C movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 @@ -8686,7 +8686,7 @@ _0811E602: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 str r0, [r2] adds r0, 0x3F @@ -8823,7 +8823,7 @@ sub_811E720: @ 811E720 movs r1, 0xDC movs r2, 0x54 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 @@ -8836,7 +8836,7 @@ sub_811E720: @ 811E720 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 str r0, [r2] _0811E74E: @@ -8844,7 +8844,7 @@ _0811E74E: movs r1, 0xDC movs r2, 0x9C movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 @@ -8857,11 +8857,11 @@ _0811E74E: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 str r0, [r2] movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim _0811E77E: bl sub_811E7F8 pop {r4} @@ -8982,7 +8982,7 @@ _0811E852: cmp r0, 0x4 bne _0811E8D0 adds r0, r4, 0 - ldr r5, =DummyObjectCallback + ldr r5, =SpriteCallbackDummy movs r4, 0 str r4, [sp] adds r1, r5, 0 @@ -8993,7 +8993,7 @@ _0811E852: lsrs r2, r0, 24 cmp r2, 0x40 beq _0811E892 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -9004,7 +9004,7 @@ _0811E852: ands r1, r2 strb r1, [r0, 0x5] movs r1, 0x2 - bl StartObjectImageAnim + bl StartSpriteAnim _0811E892: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] @@ -9024,7 +9024,7 @@ _0811E8A0: lsrs r2, r0, 24 cmp r2, 0x40 beq _0811E8D0 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -9035,7 +9035,7 @@ _0811E8A0: ands r1, r2 strb r1, [r0, 0x5] movs r1, 0x3 - bl StartObjectImageAnim + bl StartSpriteAnim _0811E8D0: add sp, 0x4 pop {r4,r5} @@ -9851,7 +9851,7 @@ _0811EEC4: thumb_func_start sub_811EECC sub_811EECC: @ 811EECC push {r4,r5,lr} - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0x1 beq _0811EF04 @@ -10134,7 +10134,7 @@ _0811F0EC: thumb_func_start sub_811F0F8 sub_811F0F8: @ 811F0F8 push {lr} - bl sub_809D42C + bl IsNationalPokedexEnabled lsls r0, 24 lsrs r0, 24 pop {r1} @@ -10202,8 +10202,8 @@ _0811F174: .pool thumb_func_end sub_811F108 - thumb_func_start sub_811F184 -sub_811F184: @ 811F184 + thumb_func_start InitEasyChatPhrases +InitEasyChatPhrases: @ 811F184 push {r4-r7,lr} movs r2, 0 ldr r5, =gSaveBlock1Ptr @@ -10320,7 +10320,7 @@ _0811F244: pop {r0} bx r0 .pool - thumb_func_end sub_811F184 + thumb_func_end InitEasyChatPhrases thumb_func_start sub_811F28C sub_811F28C: @ 811F28C @@ -10447,7 +10447,7 @@ _0811F358: movs r1, 0x14 strh r1, [r0] _0811F37A: - bl sub_809D42C + bl IsNationalPokedexEnabled cmp r0, 0 beq _0811F398 ldr r0, =gUnknown_0203A120 diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s index 16c1be4740..d1d26b62ac 100644 --- a/asm/egg_hatch.s +++ b/asm/egg_hatch.s @@ -114,7 +114,7 @@ _0807141E: adds r2, r0 adds r2, 0x10 adds r0, r6, 0 - bl pokemon_setattr + bl SetMonData adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 @@ -127,7 +127,7 @@ _0807143C: lsls r2, r4, 2 adds r2, r7, r2 adds r0, r6, 0 - bl pokemon_setattr + bl SetMonData adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 @@ -139,30 +139,30 @@ _0807143C: adds r0, r6, 0 movs r1, 0x3 mov r2, r8 - bl pokemon_setattr + bl SetMonData adds r0, r6, 0 movs r1, 0x25 mov r2, r10 - bl pokemon_setattr + bl SetMonData adds r0, r6, 0 movs r1, 0x8 ldr r2, [sp, 0x40] - bl pokemon_setattr + bl SetMonData movs r0, 0x78 ldr r1, [sp, 0x44] strb r0, [r1] adds r0, r6, 0 movs r1, 0x20 ldr r2, [sp, 0x44] - bl pokemon_setattr + bl SetMonData adds r0, r6, 0 movs r1, 0x22 ldr r2, [sp, 0x4C] - bl pokemon_setattr + bl SetMonData adds r0, r6, 0 movs r1, 0x50 ldr r2, [sp, 0x48] - bl pokemon_setattr + bl SetMonData adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x64 @@ -197,7 +197,7 @@ sub_80714B8: @ 80714B8 adds r0, r5, 0 movs r1, 0x2D adds r2, r4, 0 - bl pokemon_setattr + bl SetMonData adds r0, r5, 0 movs r1, 0xB bl GetMonData @@ -210,7 +210,7 @@ sub_80714B8: @ 80714B8 adds r0, r5, 0 movs r1, 0x2 mov r2, sp - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 bl SpeciesToNationalPokedexNum adds r4, r0, 0 @@ -231,20 +231,20 @@ sub_80714B8: @ 80714B8 strh r0, [r2] adds r0, r5, 0 movs r1, 0x26 - bl pokemon_setattr + bl SetMonData add r2, sp, 0x10 movs r0, 0 strh r0, [r2] adds r0, r5, 0 movs r1, 0x24 - bl pokemon_setattr + bl SetMonData bl sav1_map_get_name mov r2, sp adds r2, 0x12 strb r0, [r2] adds r0, r5, 0 movs r1, 0x23 - bl pokemon_setattr + bl SetMonData adds r0, r5, 0 bl sub_806E924 adds r0, r5, 0 @@ -259,7 +259,7 @@ sub_80714B8: @ 80714B8 thumb_func_start sub_8071578 sub_8071578: @ 8071578 push {lr} - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrb r0, [r0] bl sub_80714B8 pop {r0} @@ -334,7 +334,7 @@ sub_8071614: @ 8071614 ldr r0, [r0] ldr r1, =0x00003030 adds r0, r1 - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldrb r1, [r1] bl sub_807158C lsls r0, 24 @@ -409,7 +409,7 @@ _08071688: adds r2, r1 ldr r1, [r2] adds r2, r4, 0 - bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack + bl HandleLoadSpecialPokePic_DontHandleDeoxys adds r0, r5, 0 bl sub_806E794 bl LoadCompressedObjectPalette @@ -427,10 +427,10 @@ _080716D8: movs r1, 0x78 movs r2, 0x4B movs r3, 0x6 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites lsls r1, r7, 4 adds r1, r7 lsls r1, 2 @@ -442,7 +442,7 @@ _080716D8: strb r0, [r2] adds r4, 0x1C adds r1, r4 - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r1] _08071712: adds r0, r7, 0 @@ -458,8 +458,8 @@ _08071712: thumb_func_start sub_807172C sub_807172C: @ 807172C push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -546,7 +546,7 @@ _080717EC: str r0, [r4] bl init_uns_table_pokemon_copy ldr r2, [r4] - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] movs r1, 0 strb r0, [r2, 0x4] @@ -554,8 +554,8 @@ _080717EC: strb r1, [r0, 0x7] ldr r0, =sub_807172C bl SetVBlankCallback - bl current_map_music_get - ldr r1, =gUnknown_020375E2 + bl GetCurrentMapMusic + ldr r1, =gSpecialVar_0x8005 strh r0, [r1] bl reset_temp_tile_data_buffers movs r0, 0 @@ -598,8 +598,8 @@ _080717EC: bl SetBgTilemapBuffer bl DeactivateAllTextPrinters bl ResetPaletteFade - bl ResetObjectPaletteAllocator - bl ResetAllObjectData + bl FreeAllSpritePalettes + bl ResetSpriteData bl ResetTasks bl remove_some_task bl m4aSoundVSyncOn @@ -634,11 +634,11 @@ _080718D0: .pool _08071904: ldr r0, =gUnknown_0832BFE4 - bl LoadObjectPic + bl LoadSpriteSheet ldr r0, =gUnknown_0832BFEC - bl LoadObjectPic + bl LoadSpriteSheet ldr r0, =gUnknown_0832BFF4 - bl LoadTaggedObjectPalette + bl LoadSpritePalette b _080719A6 .pool _08071924: @@ -715,8 +715,8 @@ _080719C8: _080719D6: bl RunTasks bl RunTextPrinters - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade add sp, 0x4 pop {r4} @@ -728,7 +728,7 @@ _080719D6: thumb_func_start sub_80719FC sub_80719FC: @ 80719FC push {lr} - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 @@ -736,7 +736,7 @@ sub_80719FC: @ 80719FC adds r0, r1 ldr r2, =gStringVar3 movs r1, 0x2 - bl pokemon_setattr + bl SetMonData bl sub_805F094 ldr r0, =gUnknown_03000DE0 ldr r0, [r0] @@ -762,7 +762,7 @@ c3_080472E4: @ 8071A3C ldrsh r0, [r4, r1] cmp r0, 0 bne _08071A5C - bl sub_80A2F30 + bl StopMapMusic bl play_some_sound _08071A5C: movs r1, 0x8 @@ -771,14 +771,14 @@ _08071A5C: bne _08071A6C movs r0, 0xBC lsls r0, 1 - bl song_play_for_text + bl PlayBGM _08071A6C: movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x3C ble _08071A80 ldr r0, =0x00000179 - bl song_play_for_text + bl PlayBGM adds r0, r5, 0 bl DestroyTask _08071A80: @@ -839,7 +839,7 @@ _08071AF4: movs r1, 0x78 movs r2, 0x4B movs r3, 0x5 - bl AddObjectToFront + bl CreateSprite ldr r4, =gUnknown_03000DE0 ldr r1, [r4] strb r0, [r1] @@ -891,7 +891,7 @@ _08071B7A: ldrb r0, [r1, 0x2] adds r0, 0x1 strb r0, [r1, 0x2] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, [r5] ldrb r1, [r0] lsls r0, r1, 4 @@ -904,7 +904,7 @@ _08071B7A: b _08071E06 .pool _08071BA0: - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldr r2, [r5] ldrb r1, [r2] lsls r0, r1, 4 @@ -914,7 +914,7 @@ _08071BA0: adds r1, 0x1C adds r0, r1 ldr r1, [r0] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy cmp r1, r0 beq _08071BBC b _08071E06 @@ -942,7 +942,7 @@ _08071BBC: b _08071DC8 .pool _08071BF8: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r3, [r5] ldrb r1, [r3, 0x1] lsls r0, r1, 4 @@ -951,7 +951,7 @@ _08071BF8: adds r2, 0x1C adds r0, r2 ldr r1, [r0] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy cmp r1, r0 beq _08071C12 b _08071E06 @@ -983,7 +983,7 @@ _08071C24: movs r3, 0x3 bl sub_8072214 ldr r0, =0x00000173 - bl fanfare_play + bl PlayFanfare ldr r1, [r5] ldrb r0, [r1, 0x2] adds r0, 0x1 @@ -998,7 +998,7 @@ _08071C24: b _08071E06 .pool _08071C88: - bl task_is_not_running_overworld_fanfare + bl IsFanfareTaskInactive lsls r0, 24 cmp r0, 0 bne _08071C94 @@ -1006,7 +1006,7 @@ _08071C88: _08071C94: b _08071DC4 _08071C96: - bl task_is_not_running_overworld_fanfare + bl IsFanfareTaskInactive lsls r0, 24 cmp r0, 0 bne _08071CA2 @@ -1166,8 +1166,8 @@ _08071DD4: _08071E06: bl RunTasks bl RunTextPrinters - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade add sp, 0x8 pop {r3,r4} @@ -1212,10 +1212,10 @@ _08071E54: cmp r0, 0xF bne _08071E84 movs r0, 0x17 - bl audio_play + bl PlaySE adds r0, r4, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim bl sub_8072140 _08071E84: pop {r4} @@ -1264,10 +1264,10 @@ _08071EBC: cmp r0, 0xF bne _08071EE8 movs r0, 0x17 - bl audio_play + bl PlaySE adds r0, r4, 0 movs r1, 0x2 - bl StartObjectImageAnim + bl StartSpriteAnim _08071EE8: pop {r4} pop {r0} @@ -1305,7 +1305,7 @@ sub_8071EF0: @ 8071EF0 adds r0, r1 movs r1, 0xB bl GetMonData - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r2, [r4] ldrb r1, [r2, 0x1] lsls r0, r1, 4 @@ -1337,10 +1337,10 @@ _08071F5C: cmp r0, 0xF bne _08071F90 movs r0, 0x17 - bl audio_play + bl PlaySE adds r0, r4, 0 movs r1, 0x2 - bl StartObjectImageAnim + bl StartSpriteAnim bl sub_8072140 bl sub_8072140 _08071F90: @@ -1349,7 +1349,7 @@ _08071F90: cmp r0, 0x1E bne _08071F9E movs r0, 0x17 - bl audio_play + bl PlaySE _08071F9E: pop {r4,r5} pop {r0} @@ -1422,7 +1422,7 @@ _08072004: cmp r4, 0 bne _08072032 movs r0, 0x71 - bl audio_play + bl PlaySE adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] @@ -1449,7 +1449,7 @@ sub_8072048: @ 8072048 ldrsh r0, [r5, r1] cmp r0, 0 bne _08072084 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldr r3, =gUnknown_03000DE0 ldr r0, [r3] ldrb r1, [r0, 0x1] @@ -1470,7 +1470,7 @@ sub_8072048: @ 8072048 lsls r0, 2 adds r0, r4 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim _08072084: movs r2, 0x2E ldrsh r0, [r5, r2] @@ -1489,7 +1489,7 @@ _0807209E: ldrsh r0, [r5, r1] cmp r0, 0x9 bgt _080720BC - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, =gUnknown_03000DE0 ldr r0, [r0] ldrb r1, [r0, 0x1] @@ -1506,7 +1506,7 @@ _080720BC: ldrsh r0, [r5, r2] cmp r0, 0x28 ble _080720CA - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r5, 0x1C] _080720CA: adds r0, r1, 0x1 @@ -1561,7 +1561,7 @@ _08072114: cmp r0, 0 ble _0807213A adds r0, r2, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0807213A: pop {r4} pop {r0} @@ -1646,11 +1646,11 @@ sub_8072194: @ 8072194 adds r1, r4, 0 adds r2, r5, 0 movs r3, 0x4 - bl AddObjectToFront + bl CreateSprite adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 @@ -1661,7 +1661,7 @@ sub_8072194: @ 8072194 mov r1, r9 strh r1, [r0, 0x34] mov r1, r10 - bl StartObjectImageAnim + bl StartSpriteAnim pop {r3-r5} mov r8, r3 mov r9, r4 diff --git a/asm/event_data.s b/asm/event_data.s deleted file mode 100644 index 0ae8b4eb75..0000000000 --- a/asm/event_data.s +++ /dev/null @@ -1,565 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_809D300 -sub_809D300: @ 809D300 - push {r4,lr} - ldr r4, =gSaveBlock1Ptr - ldr r0, [r4] - ldr r1, =0x00001270 - adds r0, r1 - movs r2, 0x96 - lsls r2, 1 - movs r1, 0 - bl memset - ldr r0, [r4] - ldr r1, =0x0000139c - adds r0, r1 - movs r2, 0x80 - lsls r2, 2 - movs r1, 0 - bl memset - ldr r0, =gUnknown_020375FC - movs r1, 0 - movs r2, 0x10 - bl memset - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_809D300 - - thumb_func_start sub_809D344 -sub_809D344: @ 809D344 - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00001270 - adds r2, r0, r1 - movs r1, 0 - str r1, [r2] - ldr r1, =0x0000139c - adds r0, r1 - movs r1, 0 - movs r2, 0x20 - bl memset - ldr r0, =0x000008ad - bl FlagReset - ldr r0, =0x000008ae - bl FlagReset - ldr r0, =0x00000889 - bl FlagReset - ldr r0, =0x000008c1 - bl FlagReset - movs r0, 0x88 - lsls r0, 4 - bl FlagReset - pop {r0} - bx r0 - .pool - thumb_func_end sub_809D344 - - thumb_func_start sub_809D3A0 -sub_809D3A0: @ 809D3A0 - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00001394 - adds r0, r1 - movs r1, 0 - movs r2, 0x8 - bl memset - pop {r0} - bx r0 - .pool - thumb_func_end sub_809D3A0 - - thumb_func_start sub_809D3C0 -sub_809D3C0: @ 809D3C0 - push {lr} - ldr r0, =0x00004046 - bl GetVarPointer - ldr r1, =gSaveBlock2Ptr - ldr r2, [r1] - movs r1, 0 - strb r1, [r2, 0x1A] - strh r1, [r0] - ldr r0, =0x00000896 - bl FlagReset - pop {r0} - bx r0 - .pool - thumb_func_end sub_809D3C0 - - thumb_func_start sub_809D3E8 -sub_809D3E8: @ 809D3E8 - push {r4,r5,lr} - ldr r0, =0x00004046 - bl GetVarPointer - ldr r4, =gSaveBlock2Ptr - ldr r2, [r4] - movs r5, 0 - movs r1, 0xDA - strb r1, [r2, 0x1A] - ldr r2, =0x00000302 - adds r1, r2, 0 - strh r1, [r0] - ldr r0, =0x00000896 - bl FlagSet - ldr r1, [r4] - movs r0, 0x1 - strb r0, [r1, 0x19] - ldr r0, [r4] - strb r5, [r0, 0x18] - bl sub_80BB358 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_809D3E8 - - thumb_func_start sub_809D42C -sub_809D42C: @ 809D42C - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x1A] - cmp r0, 0xDA - bne _0809D468 - ldr r0, =0x00004046 - bl VarGet - lsls r0, 16 - ldr r1, =0x03020000 - cmp r0, r1 - bne _0809D468 - ldr r0, =0x00000896 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0809D468 - movs r0, 0x1 - b _0809D46A - .pool -_0809D468: - movs r0, 0 -_0809D46A: - pop {r1} - bx r1 - thumb_func_end sub_809D42C - - thumb_func_start sub_809D470 -sub_809D470: @ 809D470 - push {lr} - ldr r0, =0x000008ac - bl FlagReset - pop {r0} - bx r0 - .pool - thumb_func_end sub_809D470 - - thumb_func_start sub_809D480 -sub_809D480: @ 809D480 - push {lr} - ldr r0, =0x000008ac - bl FlagSet - pop {r0} - bx r0 - .pool - thumb_func_end sub_809D480 - - thumb_func_start sub_809D490 -sub_809D490: @ 809D490 - push {lr} - ldr r0, =0x000008ac - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end sub_809D490 - - thumb_func_start sub_809D4A4 -sub_809D4A4: @ 809D4A4 - push {lr} - ldr r0, =0x000008db - bl FlagReset - pop {r0} - bx r0 - .pool - thumb_func_end sub_809D4A4 - - thumb_func_start sub_809D4B4 -sub_809D4B4: @ 809D4B4 - push {lr} - ldr r0, =0x000008db - bl FlagSet - pop {r0} - bx r0 - .pool - thumb_func_end sub_809D4B4 - - thumb_func_start sub_809D4C4 -sub_809D4C4: @ 809D4C4 - push {lr} - ldr r0, =0x000008db - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end sub_809D4C4 - - thumb_func_start sub_809D4D8 -sub_809D4D8: @ 809D4D8 - push {lr} - movs r0, 0xF2 - lsls r0, 1 - bl FlagReset - ldr r0, =0x000001e5 - bl FlagReset - movs r0, 0xF3 - lsls r0, 1 - bl FlagReset - ldr r0, =0x000001e7 - bl FlagReset - movs r0, 0xF4 - lsls r0, 1 - bl FlagReset - ldr r0, =0x000001e9 - bl FlagReset - movs r0, 0xF5 - lsls r0, 1 - bl FlagReset - ldr r0, =0x000001eb - bl FlagReset - movs r0, 0xF6 - lsls r0, 1 - bl FlagReset - ldr r0, =0x000001ed - bl FlagReset - movs r0, 0xF7 - lsls r0, 1 - bl FlagReset - ldr r0, =0x000001ef - bl FlagReset - movs r0, 0xF8 - lsls r0, 1 - bl FlagReset - ldr r0, =0x000001f1 - bl FlagReset - movs r0, 0xF9 - lsls r0, 1 - bl FlagReset - ldr r0, =0x000001f3 - bl FlagReset - pop {r0} - bx r0 - .pool - thumb_func_end sub_809D4D8 - - thumb_func_start sub_809D570 -sub_809D570: @ 809D570 - push {lr} - ldr r0, =0x000040dd - movs r1, 0 - bl VarSet - ldr r0, =0x000040de - movs r1, 0 - bl VarSet - ldr r0, =0x000040df - movs r1, 0 - bl VarSet - ldr r0, =0x000040e0 - movs r1, 0 - bl VarSet - ldr r0, =0x000040e1 - movs r1, 0 - bl VarSet - ldr r0, =0x000040e2 - movs r1, 0 - bl VarSet - ldr r0, =0x000040e3 - movs r1, 0 - bl VarSet - ldr r0, =0x000040e4 - movs r1, 0 - bl VarSet - pop {r0} - bx r0 - .pool - thumb_func_end sub_809D570 - - thumb_func_start sub_809D5D8 -sub_809D5D8: @ 809D5D8 - push {lr} - ldr r0, =0x0000402c - movs r1, 0 - bl VarSet - ldr r0, =0x000008c2 - bl FlagReset - pop {r0} - bx r0 - .pool - thumb_func_end sub_809D5D8 - - thumb_func_start sub_809D5F4 -sub_809D5F4: @ 809D5F4 - push {lr} - ldr r0, =0x0000402c - movs r1, 0x92 - lsls r1, 4 - bl VarSet - ldr r0, =0x000008c2 - bl FlagSet - pop {r0} - bx r0 - .pool - thumb_func_end sub_809D5F4 - - thumb_func_start sub_809D614 -sub_809D614: @ 809D614 - push {lr} - ldr r0, =0x000008c2 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0809D640 - ldr r0, =0x0000402c - bl VarGet - lsls r0, 16 - movs r1, 0x92 - lsls r1, 20 - cmp r0, r1 - bne _0809D640 - movs r0, 0x1 - b _0809D642 - .pool -_0809D640: - movs r0, 0 -_0809D642: - pop {r1} - bx r1 - thumb_func_end sub_809D614 - - thumb_func_start GetVarPointer -@ u16 *GetVarPointer(u16 varId) -GetVarPointer: @ 809D648 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - adds r2, r1, 0 - ldr r0, =0x00003fff - cmp r1, r0 - bhi _0809D660 - movs r0, 0 - b _0809D688 - .pool -_0809D660: - lsls r0, r1, 16 - cmp r0, 0 - bge _0809D67C - ldr r0, =gUnknown_081DBA0C - ldr r2, =0xffff8000 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - b _0809D688 - .pool -_0809D67C: - ldr r0, =gSaveBlock1Ptr - lsls r1, r2, 1 - ldr r2, =0xffff939c - adds r1, r2 - ldr r0, [r0] - adds r0, r1 -_0809D688: - pop {r1} - bx r1 - .pool - thumb_func_end GetVarPointer - - thumb_func_start VarGet -@ u16 VarGet(u16 varId) -VarGet: @ 809D694 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl GetVarPointer - cmp r0, 0 - beq _0809D6A8 - ldrh r0, [r0] - b _0809D6AA -_0809D6A8: - adds r0, r4, 0 -_0809D6AA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end VarGet - - thumb_func_start VarSet -@ bool8 VarSet(u16 varId, u16 value) -VarSet: @ 809D6B0 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r4, r1, 16 - bl GetVarPointer - cmp r0, 0 - beq _0809D6C8 - strh r4, [r0] - movs r0, 0x1 - b _0809D6CA -_0809D6C8: - movs r0, 0 -_0809D6CA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end VarSet - - thumb_func_start VarGetFieldObjectGraphicsId -@ u8 VarGetFieldObjectGraphicsId(u8 index) -VarGetFieldObjectGraphicsId: @ 809D6D0 - push {lr} - lsls r0, 24 - lsrs r0, 8 - ldr r1, =0x40100000 - adds r0, r1 - lsrs r0, 16 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end VarGetFieldObjectGraphicsId - - thumb_func_start GetFlagPointer -@ u8 *GetFlagPointer(u16 flagId) -GetFlagPointer: @ 809D6EC - push {lr} - lsls r1, r0, 16 - lsrs r2, r1, 16 - adds r3, r2, 0 - cmp r2, 0 - bne _0809D6FC - movs r0, 0 - b _0809D72E -_0809D6FC: - ldr r0, =0x00003fff - cmp r2, r0 - bhi _0809D71C - ldr r0, =gSaveBlock1Ptr - lsrs r1, 19 - ldr r2, =0x00001270 - adds r1, r2 - ldr r0, [r0] - b _0809D72C - .pool -_0809D71C: - ldr r1, =0xffffc000 - adds r0, r3, r1 - cmp r0, 0 - bge _0809D728 - ldr r2, =0xffffc007 - adds r0, r3, r2 -_0809D728: - asrs r0, 3 - ldr r1, =gUnknown_020375FC -_0809D72C: - adds r0, r1 -_0809D72E: - pop {r1} - bx r1 - .pool - thumb_func_end GetFlagPointer - - thumb_func_start FlagSet -@ bool8 FlagSet(u16 flagId) -FlagSet: @ 809D740 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl GetFlagPointer - adds r2, r0, 0 - cmp r2, 0 - beq _0809D760 - movs r0, 0x7 - ands r0, r4 - movs r1, 0x1 - lsls r1, r0 - ldrb r0, [r2] - orrs r1, r0 - strb r1, [r2] -_0809D760: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end FlagSet - - thumb_func_start FlagReset -@ bool8 FlagReset(u16 flagId) -FlagReset: @ 809D768 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl GetFlagPointer - adds r2, r0, 0 - cmp r2, 0 - beq _0809D788 - movs r0, 0x7 - ands r0, r4 - movs r1, 0x1 - lsls r1, r0 - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] -_0809D788: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end FlagReset - - thumb_func_start FlagGet -@ bool8 FlagGet(u16 flagId) -FlagGet: @ 809D790 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl GetFlagPointer - cmp r0, 0 - beq _0809D7B4 - ldrb r0, [r0] - movs r1, 0x7 - ands r1, r4 - asrs r0, r1 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809D7B4 - movs r0, 0x1 - b _0809D7B6 -_0809D7B4: - movs r0, 0 -_0809D7B6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end FlagGet - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/evolution_graphics.s b/asm/evolution_graphics.s index 1664079835..df64857c7e 100644 --- a/asm/evolution_graphics.s +++ b/asm/evolution_graphics.s @@ -27,7 +27,7 @@ _0817BA4C: str r1, [sp] movs r2, 0 movs r3, 0 - bl SetSpriteTransformationMatrix + bl SetOamMatrix adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 @@ -134,7 +134,7 @@ _0817BB16: b _0817BB30 _0817BB2A: adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0817BB30: pop {r4} pop {r0} @@ -150,12 +150,12 @@ sub_817BB38: @ 817BB38 movs r1, 0x78 movs r2, 0x58 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0817BB82 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites lsls r3, r0, 4 adds r3, r0 lsls r3, 2 @@ -238,7 +238,7 @@ _0817BBCC: b _0817BC00 _0817BBFA: adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0817BC00: pop {r4} pop {r0} @@ -254,12 +254,12 @@ sub_817BC08: @ 817BC08 movs r1, 0x78 movs r2, 0x8 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0817BC5E - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites lsls r3, r0, 4 adds r3, r0 lsls r3, 2 @@ -328,7 +328,7 @@ sub_817BC70: @ 817BC70 b _0817BCB2 _0817BCAC: adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0817BCB2: pop {r4} pop {r0} @@ -346,12 +346,12 @@ sub_817BCB8: @ 817BCB8 movs r1, 0x78 movs r2, 0x38 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0817BD0E - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites lsls r3, r0, 4 adds r3, r0 lsls r3, 2 @@ -491,7 +491,7 @@ _0817BDCA: b _0817BDEA _0817BDE4: adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0817BDEA: pop {r4,r5} pop {r0} @@ -507,13 +507,13 @@ sub_817BDF0: @ 817BDF0 movs r1, 0x78 movs r2, 0x38 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x40 beq _0817BE60 bl Random - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites lsls r5, r4, 4 adds r5, r4 lsls r5, 2 @@ -567,7 +567,7 @@ sub_817BE78: @ 817BE78 ldr r0, =gUnknown_085F540C bl LoadCompressedObjectPicUsingHeap ldr r0, =gUnknown_085F541C - bl LoadTaggedObjectPalettes + bl LoadSpritePalettes pop {r0} bx r0 .pool @@ -624,7 +624,7 @@ sub_817BEC4: @ 817BEC4 ldr r0, =sub_817BF14 str r0, [r5] movs r0, 0x8C - bl audio_play + bl PlaySE add sp, 0x4 pop {r4,r5} pop {r0} @@ -749,7 +749,7 @@ sub_817BFCC: @ 817BFCC ldr r1, =sub_817C000 str r1, [r0] movs r0, 0xB7 - bl audio_play + bl PlaySE pop {r4} pop {r0} bx r0 @@ -843,7 +843,7 @@ sub_817C080: @ 817C080 ldr r1, =sub_817C0B4 str r1, [r0] movs r0, 0x66 - bl audio_play + bl PlaySE pop {r4} pop {r0} bx r0 @@ -980,7 +980,7 @@ sub_817C174: @ 817C174 ldr r0, =sub_817C1D4 str r0, [r5] movs r0, 0xCA - bl audio_play + bl PlaySE add sp, 0x4 pop {r4,r5} pop {r0} @@ -1127,7 +1127,7 @@ sub_817C2B0: @ 817C2B0 ldr r0, =sub_817C310 str r0, [r5] movs r0, 0xCA - bl audio_play + bl PlaySE add sp, 0x4 pop {r4,r5} pop {r0} @@ -1260,7 +1260,7 @@ _0817C3BA: movs r0, 0x1E movs r2, 0 movs r3, 0 - bl SetSpriteTransformationMatrix + bl SetOamMatrix movs r0, 0x10 ldrsh r1, [r6, r0] adds r0, r4, 0 @@ -1272,8 +1272,8 @@ _0817C3BA: movs r0, 0x1F movs r2, 0 movs r3, 0 - bl SetSpriteTransformationMatrix - ldr r1, =gUnknown_02020630 + bl SetOamMatrix + ldr r1, =gSprites mov r9, r1 lsls r2, r5, 4 adds r2, r5 @@ -1547,7 +1547,7 @@ _0817C626: movs r0, 0x1E movs r2, 0 movs r3, 0 - bl SetSpriteTransformationMatrix + bl SetOamMatrix movs r3, 0x10 ldrsh r1, [r5, r3] adds r0, r4, 0 @@ -1559,7 +1559,7 @@ _0817C626: movs r0, 0x1F movs r2, 0 movs r3, 0 - bl SetSpriteTransformationMatrix + bl SetOamMatrix cmp r6, 0x2 bne _0817C670 ldr r0, =sub_817C510 @@ -1579,7 +1579,7 @@ sub_817C67C: @ 817C67C push {r6} lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites mov r8, r1 ldr r1, =gTasks lsls r4, r0, 2 @@ -1667,7 +1667,7 @@ sub_817C72C: @ 817C72C push {r6} lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites mov r8, r1 ldr r1, =gTasks lsls r4, r0, 2 diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s index 4b679428c9..45ca5f0aa9 100644 --- a/asm/evolution_scene.s +++ b/asm/evolution_scene.s @@ -191,11 +191,11 @@ evolution_cutscene: @ 813DA8C strb r0, [r1] bl c2_berry_program_update_menu bl sub_8035AA4 - bl ResetAllObjectData + bl ResetSpriteData bl remove_some_task bl ResetTasks - bl ResetObjectPaletteAllocator - ldr r0, =gUnknown_0300301C + bl FreeAllSpritePalettes + ldr r0, =gReservedSpritePaletteCount movs r2, 0x4 strb r2, [r0] movs r0, 0x64 @@ -254,18 +254,18 @@ evolution_cutscene: @ 813DA8C bl sub_806A068 ldr r0, =gUnknown_0202499C mov r8, r0 - ldr r1, =gDummyObjectRotScalAnimTable + ldr r1, =gDummySpriteAffineAnimTable str r1, [r0, 0x10] movs r1, 0x78 movs r2, 0x40 movs r3, 0x1E - bl AddObjectToFront + bl CreateSprite ldr r1, =gUnknown_0203AB80 ldr r2, [r1] lsls r1, r0, 24 lsrs r3, r1, 24 strb r0, [r2] - ldr r7, =gUnknown_02020630 + ldr r7, =gSprites lsls r1, r3, 4 adds r1, r3 lsls r1, 2 @@ -308,14 +308,14 @@ evolution_cutscene: @ 813DA8C mov r0, r10 movs r1, 0x3 bl sub_806A068 - ldr r0, =gDummyObjectRotScalAnimTable + ldr r0, =gDummySpriteAffineAnimTable mov r1, r8 str r0, [r1, 0x10] mov r0, r8 movs r1, 0x78 movs r2, 0x40 movs r3, 0x1E - bl AddObjectToFront + bl CreateSprite ldr r1, =gUnknown_0203AB80 ldr r2, [r1] lsls r1, r0, 24 @@ -484,9 +484,9 @@ sub_813DD7C: @ 813DD7C strb r0, [r1] bl c2_berry_program_update_menu bl sub_8035AA4 - bl ResetAllObjectData - bl ResetObjectPaletteAllocator - ldr r1, =gUnknown_0300301C + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r1, =gReservedSpritePaletteCount movs r0, 0x4 strb r0, [r1] lsls r0, r5, 3 @@ -510,18 +510,18 @@ sub_813DD7C: @ 813DD7C movs r1, 0x3 bl sub_806A068 ldr r0, =gUnknown_0202499C - ldr r1, =gDummyObjectRotScalAnimTable + ldr r1, =gDummySpriteAffineAnimTable str r1, [r0, 0x10] movs r1, 0x78 movs r2, 0x40 movs r3, 0x1E - bl AddObjectToFront + bl CreateSprite mov r2, r8 ldr r1, [r2] lsls r2, r0, 24 lsrs r2, 24 strb r0, [r1, 0x1] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r1, r2, 4 adds r1, r2 lsls r1, 2 @@ -624,9 +624,9 @@ _0813DFE0: bl SetHBlankCallback movs r0, 0 bl SetVBlankCallback - bl ResetAllObjectData - bl ResetObjectPaletteAllocator - ldr r1, =gUnknown_0300301C + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r1, =gReservedSpritePaletteCount movs r0, 0x4 strb r0, [r1] ldr r0, =gUnknown_02022E14 @@ -718,18 +718,18 @@ _0813E0F0: movs r1, 0x1 bl sub_806A068 ldr r0, =gUnknown_0202499C - ldr r1, =gDummyObjectRotScalAnimTable + ldr r1, =gDummySpriteAffineAnimTable str r1, [r0, 0x10] movs r1, 0x78 movs r2, 0x40 movs r3, 0x1E - bl AddObjectToFront + bl CreateSprite ldr r1, =gUnknown_0203AB80 ldr r1, [r1] lsls r2, r0, 24 lsrs r2, 24 strb r0, [r1, 0x1] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r1, r2, 4 adds r1, r2 lsls r1, 2 @@ -838,7 +838,7 @@ sub_813E1D4: @ 813E1D4 ldr r2, =gSpeciesNames adds r1, r2 bl StringCopy - ldr r1, =gUnknown_02021CC0 + ldr r1, =gAffineAnimsDisabled movs r0, 0x1 strb r0, [r1] adds r0, r4, 0 @@ -885,18 +885,18 @@ sub_813E1D4: @ 813E1D4 movs r1, 0x1 bl sub_806A068 ldr r0, =gUnknown_0202499C - ldr r1, =gDummyObjectRotScalAnimTable + ldr r1, =gDummySpriteAffineAnimTable str r1, [r0, 0x10] movs r1, 0x78 movs r2, 0x40 movs r3, 0x1E - bl AddObjectToFront + bl CreateSprite mov r1, r9 ldr r2, [r1] lsls r1, r0, 24 lsrs r6, r1, 24 strb r0, [r2, 0x1] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r1, r6, 4 adds r1, r6 lsls r1, 2 @@ -983,8 +983,8 @@ sub_813E1D4: @ 813E1D4 thumb_func_start sub_813E3A4 sub_813E3A4: @ 813E3A4 push {lr} - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl RunTextPrinters bl UpdatePaletteFade bl RunTasks @@ -995,8 +995,8 @@ sub_813E3A4: @ 813E3A4 thumb_func_start sub_813E3C0 sub_813E3C0: @ 813E3C0 push {lr} - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl RunTextPrinters bl UpdatePaletteFade bl RunTasks @@ -1031,7 +1031,7 @@ evovle_mon_internal_maybe: @ 813E3DC beq _0813E40C b _0813E546 _0813E40C: - ldr r6, =gUnknown_020244E9 + ldr r6, =gPlayerPartyCount ldrb r0, [r6] cmp r0, 0x5 bls _0813E416 @@ -1052,7 +1052,7 @@ _0813E416: adds r2, r1, r7 adds r2, 0xC movs r1, 0xB - bl pokemon_setattr + bl SetMonData ldrb r0, [r6] muls r0, r5 adds r0, r4 @@ -1063,25 +1063,25 @@ _0813E416: ldr r1, =gSpeciesNames adds r2, r1 movs r1, 0x2 - bl pokemon_setattr + bl SetMonData ldrb r0, [r6] muls r0, r5 adds r0, r4 movs r1, 0xC mov r2, sp - bl pokemon_setattr + bl SetMonData ldrb r0, [r6] muls r0, r5 adds r0, r4 movs r1, 0x8 mov r2, sp - bl pokemon_setattr + bl SetMonData ldrb r0, [r6] muls r0, r5 adds r0, r4 movs r1, 0xA mov r2, sp - bl pokemon_setattr + bl SetMonData movs r4, 0x32 ldr r0, [sp, 0x8] mov r8, r0 @@ -1094,12 +1094,12 @@ _0813E484: adds r0, r1 adds r1, r4, 0 mov r2, sp - bl pokemon_setattr + bl SetMonData adds r4, 0x1 cmp r4, 0x36 ble _0813E484 movs r4, 0x43 - ldr r7, =gUnknown_020244E9 + ldr r7, =gPlayerPartyCount _0813E4A0: ldrb r0, [r7] movs r6, 0x64 @@ -1108,17 +1108,17 @@ _0813E4A0: adds r0, r5 adds r1, r4, 0 mov r2, sp - bl pokemon_setattr + bl SetMonData adds r4, 0x1 cmp r4, 0x4F ble _0813E4A0 - ldr r4, =gUnknown_020244E9 + ldr r4, =gPlayerPartyCount ldrb r0, [r4] muls r0, r6 adds r0, r5 movs r1, 0x37 mov r2, sp - bl pokemon_setattr + bl SetMonData movs r0, 0xFF str r0, [sp] ldrb r0, [r4] @@ -1126,7 +1126,7 @@ _0813E4A0: adds r0, r5 movs r1, 0x40 mov r2, sp - bl pokemon_setattr + bl SetMonData ldrb r0, [r4] muls r0, r6 adds r0, r5 @@ -1170,7 +1170,7 @@ _0813E4A0: ldr r2, =gUnknown_085B58C4 mov r0, r9 movs r1, 0x2 - bl pokemon_setattr + bl SetMonData _0813E546: add sp, 0xC pop {r3-r5} @@ -1214,7 +1214,7 @@ evovle_mon_maybe: @ 813E570 ldrsh r0, [r3, r1] cmp r0, 0x8 bne _0813E5F0 - ldr r4, =gUnknown_02024332 + ldr r4, =gBattleCommunication ldrb r0, [r4, 0x2] lsls r1, r0, 2 adds r1, r0 @@ -1291,7 +1291,7 @@ _0813E670: movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, =gUnknown_0203AB80 ldr r0, [r0] ldrb r1, [r0] @@ -1375,7 +1375,7 @@ _0813E740: _0813E752: movs r0, 0xBC lsls r0, 1 - bl audio_play + bl PlaySE ldr r0, =gTasks mov r2, r8 adds r1, r2, r7 @@ -1384,7 +1384,7 @@ _0813E752: b _0813EC52 .pool _0813E770: - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 @@ -1392,7 +1392,7 @@ _0813E770: bl _0813F1A4 _0813E780: ldr r0, =0x00000179 - bl current_map_music_set + bl PlayNewMapMusic ldr r0, =gTasks mov r3, r8 adds r1, r3, r7 @@ -1422,7 +1422,7 @@ _0813E7C0: bl sub_8140000 movs r0, 0x11 bl sub_817BE94 - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication strb r0, [r1, 0x2] ldr r0, =gTasks mov r2, r8 @@ -1432,7 +1432,7 @@ _0813E7C0: b _0813EC52 .pool _0813E7E8: - ldr r4, =gUnknown_02024332 + ldr r4, =gBattleCommunication ldrb r0, [r4, 0x2] lsls r1, r0, 2 adds r1, r0 @@ -1459,7 +1459,7 @@ _0813E7FE: bl _0813F1A4 .pool _0813E828: - ldr r4, =gUnknown_02024332 + ldr r4, =gBattleCommunication ldrb r0, [r4, 0x2] lsls r1, r0, 2 adds r1, r0 @@ -1496,7 +1496,7 @@ _0813E874: ldr r1, [r2] movs r0, 0x3 strb r0, [r1, 0x3] - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 @@ -1515,7 +1515,7 @@ _0813E890: .pool _0813E8A4: bl sub_817C068 - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication strb r0, [r1, 0x2] ldr r0, =gTasks mov r3, r8 @@ -1525,7 +1525,7 @@ _0813E8A4: b _0813EC52 .pool _0813E8C0: - ldr r6, =gUnknown_02024332 + ldr r6, =gBattleCommunication ldrb r0, [r6, 0x2] lsls r1, r0, 2 adds r1, r0 @@ -1546,7 +1546,7 @@ _0813E8D6: b _0813EB96 .pool _0813E8EC: - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 @@ -1558,7 +1558,7 @@ _0813E8EC: bl _0813F1A4 _0813E902: movs r0, 0x21 - bl audio_play + bl PlaySE mov r2, r8 adds r1, r2, r7 lsls r1, 3 @@ -1566,7 +1566,7 @@ _0813E902: b _0813EC52 .pool _0813E918: - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _0813E926 @@ -1614,7 +1614,7 @@ _0813E974: b _0813EB92 .pool _0813E990: - bl sub_80A3678 + bl IsCryFinished lsls r0, 24 cmp r0, 0 bne _0813E99E @@ -1628,7 +1628,7 @@ _0813E99E: movs r1, 0 bl battle_show_message_maybe ldr r0, =0x00000173 - bl song_play_for_text + bl PlayBGM ldr r2, =gTasks mov r3, r8 adds r1, r3, r7 @@ -1641,7 +1641,7 @@ _0813E99E: adds r2, 0xC mov r0, r9 movs r1, 0xB - bl pokemon_setattr + bl SetMonData mov r0, r9 bl pokemon_calc_effective_stats ldrh r1, [r4, 0xA] @@ -1661,7 +1661,7 @@ _0813E99E: movs r1, 0x3 bl pokedex_flag_operation movs r0, 0xE - bl sav12_xor_increment + bl IncrementGameStat b _0813F1A4 .pool _0813EA1C: @@ -1693,7 +1693,7 @@ _0813EA2A: ands r0, r1 cmp r0, 0 bne _0813EA5E - bl sub_80A2F30 + bl StopMapMusic bl sub_8085784 _0813EA5E: ldrh r0, [r4, 0xE] @@ -1706,7 +1706,7 @@ _0813EA5E: movs r1, 0x2 add r2, sp, 0x4 bl GetMonData - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 add r1, sp, 0x4 bl StringCopy10 ldr r0, =0x0000ffff @@ -1762,7 +1762,7 @@ _0813EADC: ands r0, r1 cmp r0, 0 bne _0813EAF6 - bl sub_80A2F30 + bl StopMapMusic bl sub_8085784 _0813EAF6: movs r1, 0x1A @@ -1787,7 +1787,7 @@ _0813EB06: b _0813F1A4 .pool _0813EB34: - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 @@ -1886,7 +1886,7 @@ _0813EC10: beq _0813EC1E b _0813F1A4 _0813EC1E: - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _0813EC2A @@ -1894,7 +1894,7 @@ _0813EC1E: _0813EC2A: bl sub_804F574 ldr r0, =0x0000016f - bl fanfare_play + bl PlayFanfare ldr r0, =gUnknown_085CC270 ldr r0, [r0, 0xC] bl get_battle_strings_ @@ -1922,7 +1922,7 @@ _0813EC6C: beq _0813EC7A b _0813F1A4 _0813EC7A: - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _0813EC86 @@ -1985,7 +1985,7 @@ _0813ECFC: beq _0813ED0A b _0813F1A4 _0813ED0A: - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _0813ED16 @@ -2015,7 +2015,7 @@ _0813ED48: beq _0813ED56 b _0813F1A4 _0813ED56: - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _0813ED62 @@ -2042,7 +2042,7 @@ _0813ED90: lsls r0, 16 cmp r0, 0 bne _0813EDCE - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _0813EDCE @@ -2072,7 +2072,7 @@ _0813EDCE: beq _0813EDDC b _0813F1A4 _0813EDDC: - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -2097,7 +2097,7 @@ _0813EDEA: adds r0, 0x1 movs r2, 0 strh r0, [r1, 0x14] - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication strb r2, [r0, 0x1] movs r0, 0 bl sub_8056B74 @@ -2110,12 +2110,12 @@ _0813EE34: ands r0, r1 cmp r0, 0 beq _0813EE5C - ldr r4, =gUnknown_02024332 + ldr r4, =gBattleCommunication ldrb r0, [r4, 0x1] cmp r0, 0 beq _0813EE5C movs r0, 0x5 - bl audio_play + bl PlaySE ldrb r0, [r4, 0x1] bl sub_8056BAC movs r0, 0 @@ -2128,12 +2128,12 @@ _0813EE5C: ands r0, r1 cmp r0, 0 beq _0813EE84 - ldr r4, =gUnknown_02024332 + ldr r4, =gBattleCommunication ldrb r0, [r4, 0x1] cmp r0, 0 bne _0813EE84 movs r0, 0x5 - bl audio_play + bl PlaySE ldrb r0, [r4, 0x1] bl sub_8056BAC movs r0, 0x1 @@ -2154,8 +2154,8 @@ _0813EE84: movs r3, 0xD bl sub_8056A3C movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_02024332 + bl PlaySE + ldr r0, =gBattleCommunication ldrb r2, [r0, 0x1] cmp r2, 0 beq _0813EECC @@ -2204,7 +2204,7 @@ _0813EF00: movs r3, 0xD bl sub_8056A3C movs r0, 0x5 - bl audio_play + bl PlaySE ldr r1, =gTasks mov r2, r8 adds r0, r2, r7 @@ -2231,7 +2231,7 @@ _0813EF3E: lsls r5, 3 adds r5, r1 ldrb r1, [r5, 0x1C] - ldr r2, =gUnknown_020244E9 + ldr r2, =gPlayerPartyCount ldrb r2, [r2] subs r2, 0x1 lsls r2, 24 @@ -2303,7 +2303,7 @@ _0813EFC8: b _0813F1A4 .pool _0813F014: - ldr r1, =gUnknown_02022F68 + ldr r1, =gBattleTextBuff2 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 @@ -2359,7 +2359,7 @@ _0813F090: beq _0813F09E b _0813F1A4 _0813F09E: - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _0813F0AA @@ -2386,7 +2386,7 @@ _0813F0D8: lsls r0, 16 cmp r0, 0 bne _0813F1A4 - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _0813F1A4 @@ -2451,7 +2451,7 @@ _0813F180: lsls r0, 16 cmp r0, 0 bne _0813F1A4 - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _0813F1A4 @@ -2562,11 +2562,11 @@ _0813F294: adds r4, r0 ldrh r0, [r4, 0xA] movs r1, 0 - bl cry_related + bl PlayCry1 b _0813F6F2 .pool _0813F2AC: - bl sub_80A3678 + bl IsCryFinished lsls r0, 24 cmp r0, 0 bne _0813F2BA @@ -2576,7 +2576,7 @@ _0813F2BA: bl m4aSongNumStop movs r0, 0xBC lsls r0, 1 - bl audio_play + bl PlaySE ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 @@ -2585,7 +2585,7 @@ _0813F2BA: b _0813F6B4 .pool _0813F2DC: - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 @@ -2593,7 +2593,7 @@ _0813F2DC: bl _0813FCC4 _0813F2EC: ldr r0, =0x00000179 - bl song_play_for_text + bl PlayBGM ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 @@ -2618,7 +2618,7 @@ _0813F314: _0813F324: movs r0, 0x1 bl sub_8140000 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, =gUnknown_0203AB80 ldr r0, [r0] ldrb r1, [r0] @@ -2632,7 +2632,7 @@ _0813F324: adds r6, 0x10 adds r0, r6, 0 bl sub_817BE94 - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication strb r0, [r1, 0x2] ldr r1, =gTasks lsls r0, r7, 2 @@ -2648,7 +2648,7 @@ _0813F324: bl _0813FCC4 .pool _0813F380: - ldr r4, =gUnknown_02024332 + ldr r4, =gBattleCommunication ldrb r0, [r4, 0x2] lsls r1, r0, 2 adds r1, r0 @@ -2675,7 +2675,7 @@ _0813F396: bl _0813FCC4 .pool _0813F3C0: - ldr r4, =gUnknown_02024332 + ldr r4, =gBattleCommunication ldrb r0, [r4, 0x2] lsls r1, r0, 2 adds r1, r0 @@ -2708,7 +2708,7 @@ _0813F404: ldr r1, [r2] movs r0, 0x3 strb r0, [r1, 0x3] - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 @@ -2723,7 +2723,7 @@ _0813F420: .pool _0813F42C: bl sub_817C068 - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication strb r0, [r1, 0x2] ldr r1, =gTasks lsls r0, r7, 2 @@ -2733,7 +2733,7 @@ _0813F42C: b _0813F6B4 .pool _0813F448: - ldr r6, =gUnknown_02024332 + ldr r6, =gBattleCommunication ldrb r0, [r6, 0x2] lsls r1, r0, 2 adds r1, r0 @@ -2754,7 +2754,7 @@ _0813F45E: b _0813F6F2 .pool _0813F474: - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 @@ -2766,11 +2766,11 @@ _0813F474: bl _0813FCC4 _0813F48A: movs r0, 0x21 - bl audio_play + bl PlaySE b _0813F6AC .pool _0813F498: - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _0813F4A6 @@ -2797,7 +2797,7 @@ _0813F4A6: b _0813F6F2 .pool _0813F4E4: - bl sub_80A3678 + bl IsCryFinished lsls r0, 24 cmp r0, 0 bne _0813F4F2 @@ -2812,7 +2812,7 @@ _0813F4F2: movs r2, 0x1 bl sub_807F1A8 ldr r0, =0x00000173 - bl fanfare_play + bl PlayFanfare ldr r2, =gTasks lsls r1, r7, 2 adds r1, r7 @@ -2825,7 +2825,7 @@ _0813F4F2: adds r2, 0xC mov r0, r9 movs r1, 0xB - bl pokemon_setattr + bl SetMonData mov r0, r9 bl pokemon_calc_effective_stats ldrh r1, [r4, 0xA] @@ -2845,7 +2845,7 @@ _0813F4F2: movs r1, 0x3 bl pokedex_flag_operation movs r0, 0xE - bl sav12_xor_increment + bl IncrementGameStat b _0813FCC4 .pool _0813F570: @@ -2856,7 +2856,7 @@ _0813F570: beq _0813F57E b _0813FCC4 _0813F57E: - bl task_is_not_running_overworld_fanfare + bl IsFanfareTaskInactive lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -2890,7 +2890,7 @@ _0813F58C: movs r1, 0x2 add r2, sp, 0x4 bl GetMonData - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 add r1, sp, 0x4 bl StringCopy10 ldr r0, =0x0000ffff @@ -2912,7 +2912,7 @@ _0813F5F0: .pool _0813F5FC: ldr r0, =0x00000179 - bl song_play_for_text + bl PlayBGM ldr r1, =gUnknown_085EF6D2 movs r0, 0 movs r2, 0x1 @@ -2951,7 +2951,7 @@ _0813F634: b _0813FCC4 .pool _0813F668: - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 @@ -2963,7 +2963,7 @@ _0813F668: b _0813FCC4 _0813F67C: bl m4aMPlayAllStop - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, =gUnknown_0203AB80 ldr r0, [r0] ldrb r1, [r0] @@ -3053,7 +3053,7 @@ _0813F748: beq _0813F756 b _0813FCC4 _0813F756: - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _0813F762 @@ -3061,7 +3061,7 @@ _0813F756: _0813F762: bl sub_804F574 ldr r0, =0x0000016f - bl fanfare_play + bl PlayFanfare ldr r0, =gUnknown_085CC270 ldr r0, [r0, 0xC] bl get_battle_strings_ @@ -3090,7 +3090,7 @@ _0813F7A4: beq _0813F7B2 b _0813FCC4 _0813F7B2: - bl task_is_not_running_overworld_fanfare + bl IsFanfareTaskInactive lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3154,7 +3154,7 @@ _0813F838: beq _0813F846 b _0813FCC4 _0813F846: - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _0813F852 @@ -3185,7 +3185,7 @@ _0813F884: beq _0813F892 b _0813FCC4 _0813F892: - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _0813F89E @@ -3213,7 +3213,7 @@ _0813F8CC: lsls r0, 16 cmp r0, 0 bne _0813F90C - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _0813F90C @@ -3244,7 +3244,7 @@ _0813F90C: beq _0813F91A b _0813FCC4 _0813F91A: - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 @@ -3260,7 +3260,7 @@ _0813F928: movs r2, 0xE movs r3, 0 bl CreateYesNoMenu - ldr r3, =gUnknown_02024332 + ldr r3, =gBattleCommunication strb r4, [r3, 0x1] ldr r0, =gTasks mov r2, r8 @@ -3292,7 +3292,7 @@ _0813F986: beq _0813F9E4 b _0813FCC4 _0813F98C: - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication strb r6, [r0, 0x1] ldr r0, =gUnknown_085CC270 movs r1, 0x92 @@ -3328,7 +3328,7 @@ _0813F9C8: b _0813FCC4 .pool _0813F9E4: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x1] ldr r0, =gUnknown_085CC270 @@ -3382,7 +3382,7 @@ _0813FA3E: lsls r5, 3 adds r5, r1 ldrb r1, [r5, 0x1C] - ldr r2, =gUnknown_020244E9 + ldr r2, =gPlayerPartyCount ldrb r2, [r2] subs r2, 0x1 lsls r2, 24 @@ -3456,7 +3456,7 @@ _0813FAEC: b _0813FCC4 .pool _0813FB3C: - ldr r1, =gUnknown_02022F68 + ldr r1, =gBattleTextBuff2 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 @@ -3503,7 +3503,7 @@ _0813FBA4: beq _0813FBB2 b _0813FCC4 _0813FBB2: - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _0813FBBE @@ -3531,7 +3531,7 @@ _0813FBEC: lsls r0, 16 cmp r0, 0 bne _0813FCC4 - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _0813FCC4 @@ -3599,7 +3599,7 @@ _0813FCA0: lsls r0, 16 cmp r0, 0 bne _0813FCC4 - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _0813FCC4 @@ -3662,8 +3662,8 @@ sub_813FCDC: @ 813FCDC ldrh r1, [r0] movs r0, 0x1E bl SetGpuReg - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_80BA0A8 pop {r0} @@ -3706,8 +3706,8 @@ sub_813FD64: @ 813FD64 ldrh r1, [r0] movs r0, 0x1E bl SetGpuReg - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_80BA0A8 pop {r0} @@ -4178,7 +4178,7 @@ sub_81401E0: @ 81401E0 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites adds r0, r2 movs r2, 0 movs r3, 0 @@ -4193,14 +4193,14 @@ sub_8140208: @ 8140208 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r2, 0x1C adds r1, r2 ldr r1, [r1] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy cmp r1, r0 beq _08140230 movs r0, 0 diff --git a/asm/field_camera.s b/asm/field_camera.s index 354dd8f365..450e961747 100644 --- a/asm/field_camera.s +++ b/asm/field_camera.s @@ -772,7 +772,7 @@ CameraUpdateCallback: @ 808A0F4 ldr r2, [r3, 0x4] cmp r2, 0 beq _0808A114 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -817,9 +817,9 @@ InitCameraUpdateCallback: @ 808A134 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0808A150: adds r0, r5, 0 bl AddCameraObject @@ -1050,14 +1050,14 @@ UpdateCameraPanning: @ 808A314 beq _0808A322 bl _call_via_r0 _0808A322: - ldr r2, =gUnknown_02021BBC + ldr r2, =gSpriteCoordOffsetX ldr r0, =gUnknown_03005DEC ldr r1, =gUnknown_03000E28 ldrh r0, [r0] ldrh r1, [r1] subs r0, r1 strh r0, [r2] - ldr r2, =gUnknown_02021BBE + ldr r2, =gSpriteCoordOffsetY ldr r0, =gUnknown_03005DE8 ldr r1, =gUnknown_03000E2A ldrh r0, [r0] diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s index 5a50ed2846..8b52e3b76c 100644 --- a/asm/field_control_avatar.s +++ b/asm/field_control_avatar.s @@ -184,7 +184,7 @@ sub_809C014: @ 809C014 push {r4-r6,lr} sub sp, 0x8 adds r5, r0, 0 - ldr r0, =gUnknown_020375F2 + ldr r0, =gScriptLastTalked movs r1, 0 strh r1, [r0] ldr r0, =gUnknown_03005DF0 @@ -228,7 +228,7 @@ _0809C070: cmp r0, 0 beq _0809C096 movs r0, 0x5 - bl sav12_xor_increment + bl IncrementGameStat bl increment_var_x4026_on_birth_island_modulo_100 mov r0, sp adds r1, r4, 0 @@ -325,7 +325,7 @@ _0809C13A: cmp r0, 0 beq _0809C15C movs r0, 0x6 - bl audio_play + bl PlaySE bl sub_809FA9C _0809C14E: movs r0, 0x1 @@ -453,7 +453,7 @@ _0809C214: cmp r4, r0 beq _0809C244 movs r0, 0x5 - bl audio_play + bl PlaySE _0809C244: adds r0, r4, 0 bl script_env_1_execute_new_script @@ -582,13 +582,13 @@ _0809C34C: ble _0809C340 ldr r0, =gUnknown_03005DF0 strb r3, [r0] - ldr r1, =gUnknown_020375F2 + ldr r1, =gScriptLastTalked adds r0, r2, r3 lsls r0, 2 adds r0, r5 ldrb r0, [r0, 0x8] strh r0, [r1] - ldr r0, =gUnknown_020375F4 + ldr r0, =gScriptFacing strh r6, [r0] adds r0, r3, 0 bl GetFieldObjectScriptPointerByFieldObjectId @@ -668,13 +668,13 @@ _0809C400: _0809C40C: ldr r0, =gUnknown_03005DF0 strb r4, [r0] - ldr r1, =gUnknown_020375F2 + ldr r1, =gScriptLastTalked adds r0, r2, r4 lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x8] strh r0, [r1] - ldr r0, =gUnknown_020375F4 + ldr r0, =gScriptFacing strh r7, [r0] bl InTrainerHill cmp r0, 0x1 @@ -687,7 +687,7 @@ _0809C43C: bl GetFieldObjectScriptPointerByFieldObjectId _0809C442: adds r1, r0, 0 - ldr r0, =gUnknown_020375F2 + ldr r0, =gScriptLastTalked ldrb r0, [r0] bl sub_8099188 adds r1, r0, 0 @@ -764,13 +764,13 @@ _0809C4DC: beq _0809C530 b _0809C4CC _0809C4E2: - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 lsrs r0, r2, 16 movs r3, 0xFA lsls r3, 1 adds r0, r3 strh r0, [r1] - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 strh r2, [r0] ldrh r0, [r1] bl FlagGet @@ -784,7 +784,7 @@ _0809C4E2: _0809C510: cmp r5, 0x2 bne _0809C4CC - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 strh r2, [r0] bl sub_80E9680 lsls r0, 24 @@ -1395,7 +1395,7 @@ _0809CA48: cmp r0, 0 beq _0809CA64 movs r0, 0xD - bl sav12_xor_increment + bl IncrementGameStat ldr r0, =gUnknown_08291FC0 bl script_env_1_execute_new_script b _0809CB28 @@ -2172,7 +2172,7 @@ _0809D062: b _0809D084 _0809D07C: adds r0, r1, 0 - bl script_env_2_execute_new_script + bl ScriptContext2_RunNewScript _0809D082: movs r0, 0 _0809D084: @@ -2361,7 +2361,7 @@ _0809D1C8: bl walkrun_find_lowest_active_bit_in_bitfield bl sp13E_warp_to_last_warp movs r0, 0xE9 - bl audio_play + bl PlaySE movs r0, 0x1 b _0809D1E2 _0809D1E0: diff --git a/asm/field_door.s b/asm/field_door.s index 9cdcf7d907..987f0bd8c4 100644 --- a/asm/field_door.s +++ b/asm/field_door.s @@ -206,10 +206,10 @@ sub_808A568: @ 808A568 lsls r0, 24 cmp r0, 0 beq _0808A5E2 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] adds r1, 0x7 - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r2, [r0] adds r2, 0x7 adds r0, r4, 0 @@ -229,10 +229,10 @@ _0808A5B0: lsls r0, 24 cmp r0, 0 beq _0808A5E2 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] adds r1, 0x7 - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r2, [r0] adds r2, 0x7 ldr r3, [r4, 0x8] diff --git a/asm/field_effect.s b/asm/field_effect.s index 370fdf283b..08efc480bc 100644 --- a/asm/field_effect.s +++ b/asm/field_effect.s @@ -188,13 +188,13 @@ FieldEffectScript_LoadTiles: @ 80B5C3C bl FieldEffectScript_ReadWord adds r5, r0, 0 ldrh r0, [r5, 0x6] - bl GetObjectTileRangeStartByTag + bl GetSpriteTileStartByTag lsls r0, 16 ldr r1, =0xffff0000 cmp r0, r1 bne _080B5C5A adds r0, r5, 0 - bl LoadObjectPic + bl LoadSpriteSheet _080B5C5A: ldr r0, [r4] adds r0, 0x4 @@ -212,9 +212,9 @@ FieldEffectScript_LoadFadedPalette: @ 80B5C6C adds r5, r0, 0 bl FieldEffectScript_ReadWord adds r4, r0, 0 - bl LoadTaggedObjectPalette + bl LoadSpritePalette ldrh r0, [r4, 0x4] - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 bl sub_80ABE18 @@ -232,7 +232,7 @@ FieldEffectScript_LoadPalette: @ 80B5C94 push {r4,lr} adds r4, r0, 0 bl FieldEffectScript_ReadWord - bl LoadTaggedObjectPalette + bl LoadSpritePalette ldr r0, [r4] adds r0, 0x4 str r0, [r4] @@ -267,7 +267,7 @@ FieldEffectFreeGraphicsResources: @ 80B5CC8 ldrh r5, [r1] ldrb r4, [r0, 0x5] lsrs r4, 4 - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r0, r5, 0 bl FieldEffectFreeTilesIfUnused adds r0, r4, 0 @@ -298,14 +298,14 @@ FieldEffectFreeTilesIfUnused: @ 80B5D04 lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 - bl GetTagByObjectTileRangeStart + bl GetSpriteTileTagByTileStart lsls r0, 16 lsrs r3, r0, 16 ldr r0, =0x0000ffff cmp r3, r0 beq _080B5D58 movs r2, 0 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites _080B5D1E: lsls r0, r2, 4 adds r0, r2 @@ -335,7 +335,7 @@ _080B5D48: cmp r2, 0x3F bls _080B5D1E adds r0, r3, 0 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag _080B5D58: pop {r4,r5} pop {r0} @@ -350,14 +350,14 @@ FieldEffectFreePaletteIfUnused: @ 80B5D68 lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl GetObjectPaletteTagBySlot + bl GetSpritePaletteTagByPaletteNum lsls r0, 16 lsrs r5, r0, 16 ldr r0, =0x0000ffff cmp r5, r0 beq _080B5DB0 movs r2, 0 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites adds r3, r4, 0 _080B5D84: lsls r0, r2, 4 @@ -381,7 +381,7 @@ _080B5DA0: cmp r2, 0x3F bls _080B5D84 adds r0, r5, 0 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag _080B5DB0: pop {r4-r6} pop {r0} @@ -540,12 +540,12 @@ sub_80B5E6C: @ 80B5E6C strh r0, [r1, 0x2] ldr r0, =gNewGameBirchOamAttributes str r0, [sp, 0x4] - ldr r0, =gDummyObjectImageAnimTable + ldr r0, =gDummySpriteAnimTable str r0, [sp, 0x8] str r2, [sp, 0xC] - ldr r0, =gDummyObjectRotScalAnimTable + ldr r0, =gDummySpriteAffineAnimTable str r0, [sp, 0x10] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [sp, 0x14] lsls r5, 16 asrs r5, 16 @@ -555,7 +555,7 @@ sub_80B5E6C: @ 80B5E6C adds r1, r5, 0 adds r2, r6, 0 mov r3, r9 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 add sp, 0x18 @@ -607,7 +607,7 @@ AddNewGameBirchObject: @ 80B5F44 lsls r6, 24 lsrs r6, 24 ldr r0, =gNewGameBirchObjectPaletteInfo - bl LoadTaggedObjectPalette + bl LoadSpritePalette ldr r0, =gNewGameBirchObjectTemplate lsls r4, 16 asrs r4, 16 @@ -616,7 +616,7 @@ AddNewGameBirchObject: @ 80B5F44 adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 pop {r4-r6} @@ -653,7 +653,7 @@ sub_80B5F84: @ 80B5F84 lsls r0, 16 lsrs r5, r0, 16 ldrh r0, [r4, 0x4] - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag adds r0, 0x10 lsls r0, 24 lsrs r0, 24 @@ -716,7 +716,7 @@ sub_80B5FE8: @ 80B5FE8 lsrs r4, r0, 16 mov r1, r8 ldrh r0, [r1, 0x4] - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag adds r0, 0x10 lsls r0, 24 lsrs r0, 24 @@ -755,7 +755,7 @@ sub_80B6070: @ 80B6070 ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix _080B608E: adds r0, r5, 0 bl sub_818D820 @@ -985,7 +985,7 @@ sub_80B6214: @ 80B6214 sub_80B6250: @ 80B6250 push {r4,lr} adds r2, r0, 0 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites movs r1, 0x14 ldrsh r0, [r2, r1] lsls r1, r0, 4 @@ -1019,7 +1019,7 @@ _080B6282: sub_80B628C: @ 80B628C push {lr} adds r3, r0, 0 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x14 ldrsh r1, [r3, r0] lsls r0, r1, 4 @@ -1042,7 +1042,7 @@ _080B62AC: thumb_func_start sub_80B62B4 sub_80B62B4: @ 80B62B4 push {lr} - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r3, 0x14 ldrsh r1, [r0, r3] lsls r0, r1, 4 @@ -1054,7 +1054,7 @@ sub_80B62B4: @ 80B62B4 cmp r0, 0x6 ble _080B62E6 adds r0, r1, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite movs r0, 0x19 bl FieldEffectActiveListRemove ldr r0, =sub_80B61E4 @@ -1178,7 +1178,7 @@ sub_80B6360: @ 80B6360 sub_80B63D4: @ 80B63D4 push {lr} adds r3, r0, 0 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x14 ldrsh r1, [r3, r0] lsls r0, r1, 4 @@ -1205,7 +1205,7 @@ _080B63FA: sub_80B6404: @ 80B6404 push {lr} adds r3, r0, 0 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x14 ldrsh r1, [r3, r0] lsls r0, r1, 4 @@ -1228,7 +1228,7 @@ _080B6424: thumb_func_start sub_80B642C sub_80B642C: @ 80B642C push {lr} - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r3, 0x14 ldrsh r1, [r0, r3] lsls r0, r1, 4 @@ -1240,7 +1240,7 @@ sub_80B642C: @ 80B642C cmp r0, 0x6 ble _080B645E adds r0, r1, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite movs r0, 0x3E bl FieldEffectActiveListRemove ldr r0, =sub_80B6330 @@ -1273,13 +1273,13 @@ sub_80B646C: @ 80B646C lsls r6, 16 lsrs r6, 16 ldr r0, =sub_80B64C0 - bl obj_add_empty_with_callback + bl CreateInvisibleSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites adds r1, r2 strh r4, [r1, 0x24] strh r5, [r1, 0x26] @@ -1344,10 +1344,10 @@ _080B64F4: lsls r2, 16 asrs r2, 16 movs r3, 0 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -1368,7 +1368,7 @@ _080B64F4: subs r0, 0x1 strh r0, [r4, 0x3A] movs r0, 0x17 - bl audio_play + bl PlaySE _080B6550: movs r1, 0x3A ldrsh r0, [r4, r1] @@ -1410,7 +1410,7 @@ sub_80B6574: @ 80B6574 beq _080B65A4 movs r0, 0xB8 lsls r0, 1 - bl fanfare_play + bl PlayFanfare _080B65A4: pop {r0} bx r0 @@ -1452,7 +1452,7 @@ _080B65D8: ldr r3, =0x00001007 mov r10, r3 mov r0, r10 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 movs r1, 0x84 @@ -1475,7 +1475,7 @@ _080B65D8: mov r0, r8 ands r4, r0 mov r0, r10 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 movs r1, 0x83 @@ -1494,7 +1494,7 @@ _080B65D8: mov r3, r8 ands r4, r3 mov r0, r10 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 movs r1, 0x81 @@ -1512,7 +1512,7 @@ _080B65D8: lsls r4, 24 lsrs r4, 24 mov r0, r10 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 ldr r3, =0x01050000 @@ -1529,7 +1529,7 @@ _080B65D8: adds r3, r4, 0 bl sub_80B609C mov r0, r10 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 ldr r1, =0x01030000 @@ -1593,7 +1593,7 @@ _080B6718: lsrs r4, 24 ldr r0, =0x00001007 mov r8, r0 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 movs r1, 0x84 @@ -1614,7 +1614,7 @@ _080B6718: adds r3, r4, 0 bl sub_80B609C mov r0, r8 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 movs r1, 0x83 @@ -1626,7 +1626,7 @@ _080B6718: adds r3, r4, 0 bl sub_80B609C mov r0, r8 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 movs r1, 0x81 @@ -1638,7 +1638,7 @@ _080B6718: adds r3, r4, 0 bl sub_80B609C mov r0, r8 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 ldr r1, =0x01050000 @@ -1649,7 +1649,7 @@ _080B6718: adds r3, r4, 0 bl sub_80B609C mov r0, r8 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 ldr r1, =0x01030000 @@ -1701,7 +1701,7 @@ sub_80B6800: @ 80B6800 ldrsh r0, [r4, r1] cmp r0, 0 beq _080B6816 - bl task_is_not_running_overworld_fanfare + bl IsFanfareTaskInactive lsls r0, 24 cmp r0, 0 beq _080B681C @@ -1724,7 +1724,7 @@ nullsub_97: @ 80B6824 sub_80B6828: @ 80B6828 push {lr} adds r3, r0, 0 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 4 @@ -1755,14 +1755,14 @@ sub_80B6850: @ 80B6850 asrs r2, 16 adds r1, r3, 0 movs r3, 0 - bl AddObjectToBack + bl CreateSpriteAtEnd adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 ldrb r2, [r0, 0x5] movs r1, 0xD @@ -1778,7 +1778,7 @@ sub_80B6850: @ 80B6850 orrs r1, r2 strb r1, [r3] ldr r1, =gUnknown_0855C2AC - bl SetSpriteOamTables_NoPriorityFromTable + bl SetSubspriteTables adds r0, r4, 0 pop {r4} pop {r1} @@ -1804,7 +1804,7 @@ sub_80B68AC: @ 80B68AC strb r0, [r2] adds r0, r4, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim _080B68D0: adds r0, r4, 0 adds r0, 0x3F @@ -1839,16 +1839,16 @@ sub_80B68EC: @ 80B68EC lsls r2, 16 asrs r2, 16 movs r3, 0 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 ldr r1, =gUnknown_0855C2C4 - bl SetSpriteOamTables_NoPriorityFromTable + bl SetSubspriteTables b _080B6948 .pool _080B6934: @@ -1858,11 +1858,11 @@ _080B6934: lsls r2, 16 asrs r2, 16 movs r3, 0 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r4, r0, 24 _080B6948: - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 @@ -2175,7 +2175,7 @@ sub_80B6BCC: @ 80B6BCC lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 bl CameraObjectReset2 ldrb r1, [r6, 0x5] @@ -2261,7 +2261,7 @@ sub_80B6C90: @ 80B6C90 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r2, r0 adds r0, r2, 0 adds r0, 0x29 @@ -2270,7 +2270,7 @@ sub_80B6C90: @ 80B6C90 lsls r0, r4, 17 negs r0, r0 ldrh r1, [r2, 0x22] - ldr r3, =gUnknown_02021BBE + ldr r3, =gSpriteCoordOffsetY adds r1, r4 ldrh r3, [r3] adds r1, r3 @@ -2294,7 +2294,7 @@ sub_80B6C90: @ 80B6C90 ands r0, r2 strb r0, [r1, 0x1] movs r0, 0x2B - bl audio_play + bl PlaySE ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] @@ -2320,7 +2320,7 @@ sub_80B6D04: @ 80B6D04 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r5, r0, r1 ldrh r0, [r4, 0xA] ldrh r1, [r5, 0x26] @@ -2378,7 +2378,7 @@ _080B6D84: cmp r0, 0 blt _080B6DA8 movs r0, 0xD6 - bl audio_play + bl PlaySE ldrb r0, [r6] movs r1, 0x8 orrs r0, r1 @@ -2591,7 +2591,7 @@ _080B6F0A: strh r0, [r5, 0x8] _080B6F38: movs r0, 0x50 - bl audio_play + bl PlaySE _080B6F3E: movs r0, 0 pop {r4,r5} @@ -2669,7 +2669,7 @@ sub_80B6FB8: @ 80B6FB8 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 movs r0, 0xC ldrsh r1, [r5, r0] @@ -2707,7 +2707,7 @@ sub_80B7004: @ 80B7004 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 movs r0, 0xC ldrsh r1, [r5, r0] @@ -2888,7 +2888,7 @@ sub_80B7190: @ 80B7190 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 movs r0, 0xA ldrsh r1, [r5, r0] @@ -2919,7 +2919,7 @@ sub_80B71D0: @ 80B71D0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r5, r0, r1 movs r0, 0xA ldrsh r1, [r4, r0] @@ -2967,7 +2967,7 @@ sub_80B7230: @ 80B7230 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 movs r0, 0xA ldrsh r1, [r5, r0] @@ -2998,7 +2998,7 @@ sub_80B7270: @ 80B7270 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r5, r0, r1 movs r0, 0xA ldrsh r1, [r4, r0] @@ -3457,7 +3457,7 @@ _080B7604: lsls r2, r0, 4 adds r2, r0 lsls r2, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r2, r0 ldr r3, [r3] adds r0, r4, 0 @@ -3555,7 +3555,7 @@ sub_80B76B8: @ 80B76B8 movs r0, 0x32 bl FieldEffectStart movs r0, 0xB2 - bl audio_play + bl PlaySE ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] @@ -3623,7 +3623,7 @@ _080B7750: movs r7, 0x22 ldrsh r0, [r5, r7] adds r0, r1 - ldr r1, =gUnknown_02021BBE + ldr r1, =gSpriteCoordOffsetY movs r7, 0 ldrsh r1, [r1, r7] adds r0, r1 @@ -3787,7 +3787,7 @@ _080B78A4: lsls r2, r0, 4 adds r2, r0 lsls r2, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r2, r0 ldr r3, [r3] adds r0, r4, 0 @@ -3875,7 +3875,7 @@ sub_80B7968: @ 80B7968 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 adds r0, 0x2B ldrb r0, [r0] @@ -3891,7 +3891,7 @@ sub_80B7968: @ 80B7968 strb r0, [r4, 0x1] bl CameraObjectReset1 movs r0, 0xAF - bl audio_play + bl PlaySE movs r0, 0x4 bl sub_8093514 adds r1, r0, 0 @@ -3949,10 +3949,10 @@ sub_80B79F4: @ 80B79F4 movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 @@ -4036,7 +4036,7 @@ _080B7AA0: lsls r2, r0, 4 adds r2, r0 lsls r2, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r2, r0 ldr r3, [r3] adds r0, r4, 0 @@ -4127,7 +4127,7 @@ _080B7B6C: adds r0, r4, 0 bl FieldObjectSetSpecialAnim movs r0, 0x27 - bl audio_play + bl PlaySE _080B7B8C: movs r0, 0 pop {r4-r6} @@ -4140,7 +4140,7 @@ sub_80B7B94: @ 80B7B94 push {r4,lr} adds r3, r0, 0 adds r4, r1, 0 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0xA ldrsh r1, [r3, r0] lsls r0, r1, 4 @@ -4236,10 +4236,10 @@ sub_80B7C48: @ 80B7C48 movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 @@ -4747,7 +4747,7 @@ _080B8080: movs r0, 0x1 strh r0, [r4, 0xE] movs r0, 0x2D - bl audio_play + bl PlaySE _080B80AE: add sp, 0x8 pop {r4,r5} @@ -4776,7 +4776,7 @@ sub_80B80C4: @ 80B80C4 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r5, r0, r1 ldrh r0, [r4, 0xA] subs r0, 0x1 @@ -4966,7 +4966,7 @@ sub_80B8280: @ 80B8280 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r2, r0 adds r0, r2, 0 adds r0, 0x29 @@ -4975,7 +4975,7 @@ sub_80B8280: @ 80B8280 lsls r0, r4, 17 negs r0, r0 ldrh r1, [r2, 0x22] - ldr r3, =gUnknown_02021BBE + ldr r3, =gSpriteCoordOffsetY adds r1, r4 ldrh r3, [r3] adds r1, r3 @@ -5010,7 +5010,7 @@ sub_80B8280: @ 80B8280 lsrs r0, 24 strh r0, [r6, 0x26] movs r0, 0x2D - bl audio_play + bl PlaySE _080B82F6: pop {r4-r6} pop {r0} @@ -5038,7 +5038,7 @@ sub_80B830C: @ 80B830C lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r5, r0, r1 ldrh r0, [r4, 0xA] ldrh r1, [r5, 0x26] @@ -5456,7 +5456,7 @@ _080B869C: bne _080B86DC cmp r1, 0x78 bne _080B86DC - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 @@ -5483,7 +5483,7 @@ sub_80B86EC: @ 80B86EC ldrh r0, [r3, 0x12] subs r0, 0x10 strh r0, [r3, 0x12] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 @@ -5604,7 +5604,7 @@ overworld_bg_setup_2: @ 80B87B8 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 ldrh r1, [r4, 0x26] lsls r1, 24 @@ -5810,7 +5810,7 @@ sub_80B898C: @ 80B898C ldr r1, =0x00002878 movs r0, 0x46 bl SetGpuReg - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -5837,7 +5837,7 @@ sub_80B89DC: @ 80B89DC push {r4,lr} adds r4, r0, 0 bl sub_80B8B28 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -5934,7 +5934,7 @@ sub_80B8A64: @ 80B8A64 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 ldrh r1, [r4, 0x26] lsls r1, 24 @@ -6183,9 +6183,9 @@ sub_80B8C60: @ 80B8C60 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r2, r1 - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy str r1, [r2, 0x1C] ldrb r3, [r2, 0x5] movs r1, 0xD @@ -6226,13 +6226,13 @@ sub_80B8CC0: @ 80B8CC0 movs r1, 0 movs r2, 0x7D movs r3, 0xA - bl sub_80A32C0 + bl PlayCry2 b _080B8D00 .pool _080B8CF8: ldrh r0, [r1, 0x2E] movs r1, 0 - bl cry_related + bl PlayCry1 _080B8D00: pop {r0} bx r0 @@ -6555,14 +6555,14 @@ sub_80B8F98: @ 80B8F98 negs r2, r2 movs r1, 0x78 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, r0, 4 add r1, r8 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 ldrb r2, [r1, 0x5] movs r0, 0xD @@ -6684,14 +6684,14 @@ sub_80B90CC: @ 80B90CC movs r1, 0x78 movs r2, 0 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r2, r4, 4 adds r2, r4 lsls r2, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r2, r0 ldrb r1, [r2, 0x5] movs r0, 0xF @@ -6708,7 +6708,7 @@ sub_80B90CC: @ 80B90CC ldr r0, [r0] strh r0, [r2, 0x30] movs r0, 0x9E - bl audio_play + bl PlaySE adds r0, r4, 0 pop {r4} pop {r1} @@ -6745,7 +6745,7 @@ sub_80B9128: @ 80B9128 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 adds r3, r1, 0 adds r3, 0x3E @@ -7002,7 +7002,7 @@ _080B9362: adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0x9E - bl audio_play + bl PlaySE ldrb r0, [r4, 0xA] bl sub_80B9524 _080B9380: @@ -7041,10 +7041,10 @@ sub_80B9390: @ 80B9390 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites adds r0, r6 movs r1, 0x16 - bl StartObjectImageAnim + bl StartSpriteAnim ldrb r0, [r4, 0x1] movs r1, 0x10 orrs r0, r1 @@ -7062,7 +7062,7 @@ sub_80B9390: @ 80B9390 adds r0, r1 lsls r0, 2 adds r0, r6 - bl RemoveObjectAndFreeTiles + bl DestroySprite _080B93FC: ldrh r0, [r5, 0x8] adds r0, 0x1 @@ -7169,13 +7169,13 @@ sub_80B94C4: @ 80B94C4 movs r1, 0xFF movs r2, 0xB4 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r2, r1 ldrb r3, [r2, 0x5] movs r1, 0xF @@ -7197,7 +7197,7 @@ sub_80B94C4: @ 80B94C4 sub_80B9508: @ 80B9508 lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -7217,7 +7217,7 @@ sub_80B9524: @ 80B9524 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 ldr r0, =sub_80B963C str r0, [r4, 0x1C] @@ -7245,7 +7245,7 @@ sub_80B9560: @ 80B9560 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 @@ -7274,10 +7274,10 @@ sub_80B957C: @ 80B957C ldr r0, =gUnknown_0855C548 str r0, [r4, 0x10] adds r0, r4, 0 - bl obj_alloc_rotscale_entry + bl InitSpriteAffineAnim adds r0, r4, 0 movs r1, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim movs r0, 0x76 strh r0, [r4, 0x20] ldr r0, =0x0000ffd0 @@ -7331,14 +7331,14 @@ _080B95F6: ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix ldrb r1, [r4, 0x1] lsrs r1, 6 ldrb r2, [r4, 0x3] lsrs r2, 6 adds r0, r4, 0 movs r3, 0 - bl CalcVecFromObjectCenterToObjectUpperLeft + bl CalcCenterToCornerVec _080B9628: pop {r4} pop {r0} @@ -7373,7 +7373,7 @@ sub_80B963C: @ 80B963C lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 adds r3, r1, 0 adds r3, 0x3E @@ -7426,10 +7426,10 @@ sub_80B96B0: @ 80B96B0 ldr r0, =gUnknown_0855C548 str r0, [r4, 0x10] adds r0, r4, 0 - bl obj_alloc_rotscale_entry + bl InitSpriteAffineAnim adds r0, r4, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim movs r0, 0x5E strh r0, [r4, 0x20] ldr r0, =0x0000ffe0 @@ -7507,7 +7507,7 @@ _080B9756: ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] @@ -7529,7 +7529,7 @@ sub_80B9794: @ 80B9794 lsrs r4, 24 adds r0, r4, 0 bl sub_80B9524 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 @@ -7634,10 +7634,10 @@ _080B9856: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 movs r1, 0x16 - bl StartObjectImageAnim + bl StartSpriteAnim ldrb r1, [r4, 0x1] movs r0, 0x21 negs r0, r0 @@ -7684,7 +7684,7 @@ _080B98D0: lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 ldrb r0, [r5, 0xA] movs r1, 0x40 @@ -7725,7 +7725,7 @@ sub_80B9924: @ 80B9924 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 movs r2, 0xC ldrsh r0, [r4, r2] @@ -7771,7 +7771,7 @@ sub_80B9978: @ 80B9978 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 ldrb r1, [r5, 0x1] movs r0, 0x11 @@ -7847,9 +7847,9 @@ sub_80B9A28: @ 80B9A28 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] @@ -8096,7 +8096,7 @@ sub_80B9C28: @ 80B9C28 lsls r4, 24 lsrs r4, 24 movs r0, 0x58 - bl audio_play + bl PlaySE strh r4, [r5, 0xA] ldrh r0, [r5, 0x2] adds r0, 0x1 @@ -8130,7 +8130,7 @@ sub_80B9C54: @ 80B9C54 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 ldrb r0, [r1, 0x1] movs r2, 0x20 @@ -8151,7 +8151,7 @@ sub_80B9C54: @ 80B9C54 adds r0, r4, 0 bl sub_80B9D24 movs r0, 0x57 - bl audio_play + bl PlaySE ldrb r0, [r7, 0xA] bl sub_80B9BD0 movs r0, 0 @@ -8235,7 +8235,7 @@ _080B9D5A: asrs r1, r2, 16 asrs r2, r7, 16 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 @@ -8243,12 +8243,12 @@ _080B9D5A: lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 lsls r1, r5, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim strh r5, [r4, 0x2E] ldrb r1, [r6, 0x5] lsrs r1, 4 @@ -8333,7 +8333,7 @@ _080B9E02: ble _080B9E24 _080B9E1E: adds r0, r1, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _080B9E24: pop {r0} bx r0 @@ -8391,7 +8391,7 @@ sub_80B9E28: @ 80B9E28 adds r2, r1 ldrb r0, [r4, 0x4] strh r0, [r2, 0xA] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 @@ -8437,7 +8437,7 @@ sub_80B9EDC: @ 80B9EDC lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r6, r0, r1 movs r1, 0 ldrsh r0, [r5, r1] diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s index 9a04609345..fc2a8682af 100644 --- a/asm/field_effect_helpers.s +++ b/asm/field_effect_helpers.s @@ -26,7 +26,7 @@ SetUpReflection: @ 8153ED4 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r7, r1, r0 ldr r0, =objc_reflection_maybe str r0, [r7, 0x1C] @@ -51,12 +51,12 @@ SetUpReflection: @ 8153ED4 orrs r0, r1 mov r1, r8 strb r0, [r1] - ldr r0, =gDummyObjectImageAnimTable + ldr r0, =gDummySpriteAnimTable str r0, [r7, 0x8] adds r0, r7, 0 movs r1, 0 - bl StartObjectImageAnim - ldr r0, =gDummyObjectRotScalAnimTable + bl StartSpriteAnim + ldr r0, =gDummySpriteAffineAnimTable str r0, [r7, 0x10] mov r1, r8 ldrb r0, [r1] @@ -254,7 +254,7 @@ objc_reflection_maybe: @ 81540A8 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r5, r0, r1 ldr r0, [r7] ldr r1, =0x00020001 @@ -435,7 +435,7 @@ sub_8154228: @ 8154228 movs r1, 0 movs r2, 0 movs r3, 0x52 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 @@ -444,7 +444,7 @@ sub_8154228: @ 8154228 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 ldrb r2, [r1, 0x5] movs r0, 0xD @@ -471,7 +471,7 @@ _08154266: objid_set_invisible: @ 8154278 lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -503,7 +503,7 @@ sub_8154298: @ 8154298 lsls r0, r5, 4 adds r0, r5 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r2, r0, r1 adds r0, r2, 0 adds r0, 0x3E @@ -537,7 +537,7 @@ _081542E2: lsls r0, r5, 4 adds r0, r5 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r2, r0, r1 mov r0, sp ldrh r0, [r0] @@ -560,7 +560,7 @@ _081542E2: lsls r1, 24 lsrs r1, 24 adds r0, r2, 0 - bl StartObjectImageAnim + bl StartSpriteAnim _0815432E: add sp, 0x4 pop {r3} @@ -602,12 +602,12 @@ oei_shadow: @ 8154340 movs r1, 0 movs r2, 0 movs r3, 0x94 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _081543C4 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r2, r1, 4 adds r2, r1 lsls r2, 2 @@ -679,7 +679,7 @@ _08154412: lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 ldrb r0, [r1, 0x5] movs r2, 0xC @@ -763,7 +763,7 @@ oei_grass_normal: @ 81544AC movs r3, 0 ldrsh r2, [r4, r3] movs r3, 0 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 @@ -771,7 +771,7 @@ oei_grass_normal: @ 81544AC lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r3, r0, r1 adds r2, r3, 0 adds r2, 0x3E @@ -806,7 +806,7 @@ oei_grass_normal: @ 81544AC beq _08154538 adds r0, r3, 0 movs r1, 0x4 - bl SeekObjectImageAnim + bl SeekSpriteAnim _08154538: movs r0, 0 add sp, 0x4 @@ -964,7 +964,7 @@ sub_8154658: @ 8154658 movs r3, 0x4 ldrsh r2, [r4, r3] movs r3, 0 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 @@ -972,7 +972,7 @@ sub_8154658: @ 8154658 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r2, r0 adds r3, r2, 0 adds r3, 0x3E @@ -1016,7 +1016,7 @@ sub_81546C8: @ 81546C8 lsls r2, 24 lsrs r6, r2, 24 movs r5, 0 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r8, r0 lsls r3, 16 asrs r3, 16 @@ -1101,7 +1101,7 @@ sub_8154758: @ 8154758 movs r3, 0 ldrsh r2, [r4, r3] movs r3, 0 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 @@ -1109,7 +1109,7 @@ sub_8154758: @ 8154758 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r4, r0, r1 adds r2, r4, 0 adds r2, 0x3E @@ -1145,7 +1145,7 @@ sub_8154758: @ 8154758 beq _081547E8 adds r0, r4, 0 movs r1, 0x6 - bl SeekObjectImageAnim + bl SeekSpriteAnim _081547E8: movs r0, 0 add sp, 0x4 @@ -1295,7 +1295,7 @@ sub_81548FC: @ 81548FC movs r3, 0x4 ldrsh r2, [r4, r3] movs r3, 0 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 @@ -1303,7 +1303,7 @@ sub_81548FC: @ 81548FC lsls r2, r0, 4 adds r2, r0 lsls r2, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r2, r0 adds r3, r2, 0 adds r3, 0x3E @@ -1353,7 +1353,7 @@ sub_815496C: @ 815496C movs r1, 0 movs r2, 0 movs r3, 0 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 @@ -1361,7 +1361,7 @@ sub_815496C: @ 815496C lsls r2, r0, 4 adds r2, r0 lsls r2, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r2, r4 adds r3, r2, 0 adds r3, 0x3E @@ -1463,7 +1463,7 @@ _08154A5C: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r6, r0, r1 ldrh r5, [r6, 0x22] ldrh r7, [r6, 0x20] @@ -1491,7 +1491,7 @@ _08154A98: beq _08154AB2 adds r0, r4, 0 movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim _08154AB2: strh r7, [r4, 0x20] strh r5, [r4, 0x22] @@ -1550,7 +1550,7 @@ sub_8154B04: @ 8154B04 movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 @@ -1558,7 +1558,7 @@ sub_8154B04: @ 8154B04 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 adds r3, r0, 0 adds r3, 0x3E @@ -1579,7 +1579,7 @@ sub_8154B04: @ 8154B04 movs r1, 0xD strh r1, [r0, 0x3C] ldrb r1, [r4, 0x10] - bl StartObjectImageAnim + bl StartSpriteAnim _08154B62: movs r0, 0 pop {r4} @@ -1604,7 +1604,7 @@ sub_8154B78: @ 8154B78 movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 adds r5, r1, 0 @@ -1613,7 +1613,7 @@ sub_8154B78: @ 8154B78 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 adds r3, r0, 0 adds r3, 0x3E @@ -1634,7 +1634,7 @@ sub_8154B78: @ 8154B78 movs r1, 0x18 strh r1, [r0, 0x3C] ldrb r1, [r4, 0x10] - bl StartObjectImageAnim + bl StartSpriteAnim _08154BD8: adds r0, r5, 0 pop {r4,r5} @@ -1659,7 +1659,7 @@ sub_8154BEC: @ 8154BEC movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 adds r5, r1, 0 @@ -1668,7 +1668,7 @@ sub_8154BEC: @ 8154BEC lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 adds r3, r0, 0 adds r3, 0x3E @@ -1689,7 +1689,7 @@ sub_8154BEC: @ 8154BEC movs r1, 0x23 strh r1, [r0, 0x3C] ldrb r1, [r4, 0x10] - bl StartObjectImageAnim + bl StartSpriteAnim _08154C4C: adds r0, r5, 0 pop {r4,r5} @@ -1794,7 +1794,7 @@ sub_8154CEC: @ 8154CEC movs r1, 0 movs r2, 0 movs r3, 0 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x40 @@ -1804,7 +1804,7 @@ sub_8154CEC: @ 8154CEC lsls r3, r4, 4 adds r3, r4 lsls r3, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r3, r4 movs r1, 0x3E adds r1, r3 @@ -1840,7 +1840,7 @@ sub_8154CEC: @ 8154CEC subs r0, 0x4 strh r0, [r3, 0x26] movs r0, 0x46 - bl audio_play + bl PlaySE _08154D76: movs r0, 0 pop {r4-r6} @@ -1880,7 +1880,7 @@ _08154DC0: bl FieldEffectStop b _08154E0A _08154DCA: - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r2, =gUnknown_02037350 mov r0, sp ldrb r1, [r0] @@ -1935,7 +1935,7 @@ sub_8154E1C: @ 8154E1C movs r3, 0x4 ldrsh r2, [r4, r3] movs r3, 0 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 @@ -1943,7 +1943,7 @@ sub_8154E1C: @ 8154E1C lsls r2, r0, 4 adds r2, r0 lsls r2, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r2, r0 adds r3, r2, 0 adds r3, 0x3E @@ -1989,7 +1989,7 @@ oei_water_drop_tall: @ 8154E8C movs r3, 0x4 ldrsh r2, [r4, r3] movs r3, 0 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 @@ -1997,7 +1997,7 @@ oei_water_drop_tall: @ 8154E8C lsls r2, r0, 4 adds r2, r0 lsls r2, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r2, r0 adds r3, r2, 0 adds r3, 0x3E @@ -2047,7 +2047,7 @@ sub_8154EFC: @ 8154EFC movs r1, 0 movs r2, 0 movs r3, 0 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x40 @@ -2058,7 +2058,7 @@ sub_8154EFC: @ 8154EFC lsls r0, r5, 4 adds r0, r5 lsls r0, 2 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites adds r0, r3 ldr r1, =sub_8154FB4 str r1, [r0, 0x1C] @@ -2099,7 +2099,7 @@ sub_8154EFC: @ 8154EFC subs r1, 0x4 strh r1, [r0, 0x26] movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim _08154F92: movs r0, 0 pop {r4-r7} @@ -2149,7 +2149,7 @@ _08154FFC: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 ldrh r1, [r0, 0x20] strh r1, [r4, 0x20] @@ -2179,7 +2179,7 @@ _08154FFC: cmp r0, 0 bne _08155046 movs r0, 0x46 - bl audio_play + bl PlaySE _08155046: add sp, 0x4 pop {r4,r5} @@ -2199,7 +2199,7 @@ oei_ripples: @ 8155054 movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 @@ -2207,7 +2207,7 @@ oei_ripples: @ 8155054 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r2, r0 adds r3, r2, 0 adds r3, 0x3E @@ -2255,7 +2255,7 @@ sub_81550B4: @ 81550B4 movs r1, 0 movs r2, 0 movs r3, 0 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 @@ -2263,7 +2263,7 @@ sub_81550B4: @ 81550B4 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r2, r4 adds r3, r2, 0 adds r3, 0x3E @@ -2362,7 +2362,7 @@ _081551A0: lsls r1, r2, 4 adds r1, r2 lsls r1, 2 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites adds r1, r2 ldrh r2, [r1, 0x20] strh r2, [r4, 0x20] @@ -2406,7 +2406,7 @@ sub_81551F0: @ 81551F0 movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 @@ -2414,7 +2414,7 @@ sub_81551F0: @ 81551F0 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r2, r0 adds r3, r2, 0 adds r3, 0x3E @@ -2458,7 +2458,7 @@ sub_815525C: @ 815525C movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 @@ -2466,7 +2466,7 @@ sub_815525C: @ 815525C lsls r2, r0, 4 adds r2, r0 lsls r2, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r2, r0 adds r3, r2, 0 adds r3, 0x3E @@ -2510,7 +2510,7 @@ sub_81552C8: @ 81552C8 movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 @@ -2518,7 +2518,7 @@ sub_81552C8: @ 81552C8 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r2, r0 adds r3, r2, 0 adds r3, 0x3E @@ -2562,7 +2562,7 @@ sub_8155334: @ 8155334 movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 @@ -2570,7 +2570,7 @@ sub_8155334: @ 8155334 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r2, r0 adds r3, r2, 0 adds r3, 0x3E @@ -2651,7 +2651,7 @@ oei_ash: @ 81553D4 movs r3, 0 ldrsh r2, [r4, r3] ldrb r3, [r5, 0x8] - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 @@ -2659,7 +2659,7 @@ oei_ash: @ 81553D4 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r2, r0 adds r3, r2, 0 adds r3, 0x3E @@ -2822,7 +2822,7 @@ sub_8155534: @ 8155534 movs r3, 0x4 ldrsh r2, [r4, r3] movs r3, 0x96 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 @@ -2831,7 +2831,7 @@ sub_8155534: @ 8155534 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 adds r3, r1, 0 adds r3, 0x3E @@ -2866,7 +2866,7 @@ sub_81555AC: @ 81555AC lsls r0, 24 lsrs r0, 24 lsls r1, 24 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 @@ -2890,7 +2890,7 @@ sub_81555D8: @ 81555D8 lsls r0, 24 lsrs r0, 24 lsls r1, 24 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 @@ -2915,7 +2915,7 @@ sub_8155604: @ 8155604 lsls r0, 24 lsrs r0, 24 lsls r1, 24 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites lsls r3, r0, 4 adds r3, r0 lsls r3, 2 @@ -2978,7 +2978,7 @@ sub_8155658: @ 8155658 lsls r5, r0, 4 adds r5, r0 lsls r5, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r5, r0 adds r0, r4, 0 adds r1, r6, 0 @@ -3025,7 +3025,7 @@ sub_81556B0: @ 81556B0 add r0, sp ldrb r1, [r0] adds r0, r4, 0 - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent _081556DC: add sp, 0xC pop {r4,r5} @@ -3190,17 +3190,17 @@ sub_8155800: @ 8155800 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gUnknown_082EC6AC + ldr r0, =gDummySpriteTemplate movs r1, 0 movs r2, 0 movs r3, 0xFF - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r2, r1 ldr r1, =sub_8155850 str r1, [r2, 0x1C] @@ -3230,7 +3230,7 @@ sub_8155850: @ 8155850 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r3, r0, r1 ldrh r1, [r2, 0x32] adds r0, r1, 0x1 @@ -3274,7 +3274,7 @@ sub_8155890: @ 8155890 movs r3, 0x4 ldrsh r2, [r4, r3] movs r3, 0 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 @@ -3282,7 +3282,7 @@ sub_8155890: @ 8155890 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r2, r0 adds r3, r2, 0 adds r3, 0x3E @@ -3332,7 +3332,7 @@ sub_8155900: @ 8155900 movs r1, 0 movs r2, 0 movs r3, 0 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x40 @@ -3343,7 +3343,7 @@ sub_8155900: @ 8155900 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 adds r3, r0, 0 adds r3, 0x3E @@ -3391,7 +3391,7 @@ sub_8155900: @ 8155900 subs r1, 0x2 strh r1, [r0, 0x26] movs r1, 0x2 - bl SeekObjectImageAnim + bl SeekSpriteAnim _081559A4: movs r0, 0 pop {r4-r7} @@ -3437,7 +3437,7 @@ _081559F6: b _08155A76 .pool _08155A04: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldrb r1, [r1, 0x4] lsls r0, r1, 4 adds r0, r1 @@ -3469,11 +3469,11 @@ _08155A2C: beq _08155A46 adds r0, r4, 0 movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim _08155A46: strh r6, [r4, 0x20] strh r5, [r4, 0x22] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r2, =gUnknown_02037350 mov r0, sp ldrb r1, [r0] @@ -3519,7 +3519,7 @@ sub_8155A88: @ 8155A88 movs r3, 0x4 ldrsh r2, [r4, r3] movs r3, 0x52 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 @@ -3527,7 +3527,7 @@ sub_8155A88: @ 8155A88 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 adds r3, r1, 0 adds r3, 0x3E @@ -3599,7 +3599,7 @@ sub_8155B2C: @ 8155B2C movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 @@ -3607,7 +3607,7 @@ sub_8155B2C: @ 8155B2C lsls r2, r0, 4 adds r2, r0 lsls r2, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r2, r0 adds r3, r2, 0 adds r3, 0x3E @@ -3711,7 +3711,7 @@ _08155C08: movs r1, 0 movs r2, 0 movs r3, 0 - bl AddObjectToBack + bl CreateSpriteAtEnd mov r1, sp strb r0, [r1] lsls r0, 24 @@ -3723,7 +3723,7 @@ _08155C08: lsls r2, r0, 4 adds r2, r0 lsls r2, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r2, r0 movs r0, 0x3E adds r0, r2 @@ -3812,7 +3812,7 @@ _08155CB8: lsls r2, r1, 4 adds r2, r1 lsls r2, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r2, r1 adds r1, r2, 0 adds r1, 0x3E @@ -3854,7 +3854,7 @@ _08155CB8: strh r0, [r5, 0x2E] adds r0, r5, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim _08155D38: movs r3, 0x2E ldrsh r0, [r5, r3] @@ -3896,7 +3896,7 @@ sub_8155D78: @ 8155D78 ldrb r0, [r0] cmp r0, 0x1 bne _08155D96 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldrb r1, [r1, 0x1A] lsls r0, r1, 4 adds r0, r1 @@ -3925,7 +3925,7 @@ sub_8155DA0: @ 8155DA0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r1, r0, r1 movs r3, 0x3C ldrsh r0, [r1, r3] @@ -3970,12 +3970,12 @@ sub_8155DDC: @ 8155DDC movs r3, 0x4 ldrsh r2, [r4, r3] movs r3, 0x52 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _08155E3C - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r2, 4 adds r1, r2 lsls r1, 2 @@ -4254,7 +4254,7 @@ _08156022: b _0815611A .pool _08156034: - ldr r4, =gUnknown_08329F40 + ldr r4, =gSineTable movs r3, 0x2E ldrsh r0, [r5, r3] movs r1, 0x3 @@ -4526,7 +4526,7 @@ _08156212: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r5, r0, r1 adds r0, r6, 0 adds r0, 0x28 diff --git a/asm/field_ground_effect.s b/asm/field_ground_effect.s index 0fb3bdc857..e4c6631d48 100644 --- a/asm/field_ground_effect.s +++ b/asm/field_ground_effect.s @@ -1095,7 +1095,7 @@ SetObjectSubpriorityByZCoord: @ 8096E0C movs r5, 0 ldrsb r5, [r3, r5] ldrh r4, [r1, 0x22] - ldr r3, =gUnknown_02021BBE + ldr r3, =gSpriteCoordOffsetY subs r4, r5 ldrh r3, [r3] adds r4, r3 diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s index 01471c59f0..ff3c8c48dc 100644 --- a/asm/field_map_obj.s +++ b/asm/field_map_obj.s @@ -70,10 +70,10 @@ sub_808D450: @ 808D450 movs r1, 0 movs r2, 0 movs r3, 0x1F - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites mov r10, r1 lsls r4, r0, 4 adds r4, r0 @@ -90,10 +90,10 @@ sub_808D450: @ 808D450 orrs r0, r1 strb r0, [r4, 0x1] adds r0, r4, 0 - bl obj_alloc_rotscale_entry + bl InitSpriteAffineAnim adds r0, r4, 0 movs r1, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim adds r4, 0x3E ldrb r0, [r4] movs r6, 0x4 @@ -103,7 +103,7 @@ sub_808D450: @ 808D450 movs r1, 0 movs r2, 0 movs r3, 0x1F - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 @@ -116,10 +116,10 @@ sub_808D450: @ 808D450 orrs r5, r0 strb r5, [r4, 0x1] adds r0, r4, 0 - bl obj_alloc_rotscale_entry + bl InitSpriteAffineAnim adds r0, r4, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim adds r4, 0x3E ldrb r0, [r4] orrs r0, r6 @@ -725,7 +725,7 @@ RemoveFieldObjectInternal: @ 808D90C ands r0, r1 orrs r0, r2 str r0, [sp, 0x4] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 @@ -740,7 +740,7 @@ RemoveFieldObjectInternal: @ 808D90C adds r0, r1 lsls r0, 2 adds r0, r2 - bl RemoveObjectAndFreeTiles + bl DestroySprite add sp, 0x8 pop {r4} pop {r0} @@ -861,7 +861,7 @@ _0808DA24: movs r1, 0 movs r2, 0 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r8, r0 @@ -885,7 +885,7 @@ _0808DA64: lsls r0, r1, 4 add r0, r8 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r4, r0, r1 mov r2, r10 lsls r0, r2, 16 @@ -966,7 +966,7 @@ _0808DA64: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim _0808DB16: ldrb r0, [r6, 0xB] lsrs r0, 4 @@ -1050,7 +1050,7 @@ SpawnFieldObject: @ 808DB40 b _0808DBF2 .pool _0808DBBC: - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldr r1, =gUnknown_02037350 lsls r0, r2, 3 adds r0, r2 @@ -1074,7 +1074,7 @@ _0808DBBC: lsls r0, 2 adds r0, r4 adds r1, r2, 0 - bl SetSpriteOamTables_NoPriorityFromTable + bl SetSubspriteTables _0808DBF0: adds r0, r5, 0 _0808DBF2: @@ -1324,7 +1324,7 @@ _0808DDAE: asrs r2, 16 adds r0, r6, 0 mov r3, r9 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 adds r0, r6, 0 @@ -1337,10 +1337,10 @@ _0808DDAE: lsls r4, r5, 4 adds r4, r5 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 adds r0, r4, 0 - bl SetSpriteOamTables_NoPriorityFromTable + bl SetSubspriteTables adds r4, 0x42 ldrb r1, [r4] movs r0, 0x3F @@ -1420,7 +1420,7 @@ sprite_new: @ 808DE0C ldrsh r2, [r6, r0] mov r0, sp movs r3, 0 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x40 @@ -1428,7 +1428,7 @@ sprite_new: @ 808DE0C lsls r0, r6, 4 adds r0, r6 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r5, r0, r1 ldrh r0, [r4, 0x8] lsls r0, 16 @@ -1502,7 +1502,7 @@ _0808DF2C: cmp r1, 0 beq _0808DF48 adds r0, r5, 0 - bl SetSpriteOamTables_NoPriorityFromTable + bl SetSubspriteTables adds r2, r5, 0 adds r2, 0x42 ldrb r0, [r2] @@ -1525,7 +1525,7 @@ _0808DF48: lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 - bl StartObjectImageAnim + bl StartSpriteAnim _0808DF6C: adds r0, r6, 0 add sp, 0x20 @@ -1935,7 +1935,7 @@ _0808E27E: movs r1, 0 movs r2, 0 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x40 @@ -1943,7 +1943,7 @@ _0808E27E: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r4, r0, r1 mov r1, r10 lsls r0, r1, 16 @@ -2002,7 +2002,7 @@ _0808E312: cmp r1, 0 beq _0808E31E adds r0, r4, 0 - bl SetSpriteOamTables_NoPriorityFromTable + bl SetSubspriteTables _0808E31E: mov r0, r8 lsls r2, r0, 4 @@ -2035,7 +2035,7 @@ _0808E31E: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim _0808E362: adds r0, r6, 0 bl sub_808E38C @@ -2131,7 +2131,7 @@ FieldObjectSetGraphicsId: @ 808E3F8 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r4, r0, r1 ldrb r0, [r6, 0xC] lsls r1, r0, 28 @@ -2298,7 +2298,7 @@ FieldObjectTurn: @ 808E544 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites adds r4, r5 ldrb r0, [r6, 0x18] lsls r0, 28 @@ -2308,14 +2308,14 @@ FieldObjectTurn: @ 808E544 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldrb r1, [r6, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0 - bl SeekObjectImageAnim + bl SeekSpriteAnim _0808E58A: pop {r4-r6} pop {r0} @@ -2444,7 +2444,7 @@ _0808E648: strb r0, [r7, 0x5] adds r0, r7, 0 adds r1, r6, 0 - bl StartObjectImageAnim + bl StartSpriteAnim _0808E680: pop {r4-r7} pop {r0} @@ -2623,7 +2623,7 @@ sub_808E78C: @ 808E78C lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 ldrb r1, [r2, 0x3] movs r3, 0x4 @@ -2708,7 +2708,7 @@ sub_808E82C: @ 808E82C lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 strh r5, [r0, 0x24] strh r4, [r0, 0x26] @@ -2723,8 +2723,8 @@ _0808E870: thumb_func_start gpu_pal_allocator_reset__manage_upper_four gpu_pal_allocator_reset__manage_upper_four: @ 808E880 push {lr} - bl ResetObjectPaletteAllocator - ldr r1, =gUnknown_0300301C + bl FreeAllSpritePalettes + ldr r1, =gReservedSpritePaletteCount movs r0, 0xC strb r0, [r1] pop {r0} @@ -2789,13 +2789,13 @@ sub_808E8F4: @ 808E8F4 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x4] - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _0808E912 adds r0, r4, 0 - bl LoadTaggedObjectPalette + bl LoadSpritePalette lsls r0, 24 lsrs r0, 24 b _0808E914 @@ -3086,7 +3086,7 @@ sub_808EB08: @ 808EB08 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r7, r0, r1 ldrb r0, [r6, 0x5] bl GetFieldObjectGraphicsInfo @@ -3380,10 +3380,10 @@ AddCameraObject: @ 808ED34 movs r1, 0 movs r2, 0 movs r3, 0x4 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -3429,7 +3429,7 @@ ObjectCB_CameraObject: @ 808ED78 @ void CameraObject_0(struct obj *object) CameraObject_0: @ 808EDA0 push {lr} - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites movs r1, 0x2E ldrsh r2, [r0, r1] lsls r1, r2, 4 @@ -3462,7 +3462,7 @@ CameraObject_0: @ 808EDA0 @ void CameraObject_1(struct obj *object) CameraObject_1: @ 808EDDC push {r4,r5,lr} - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites movs r1, 0x2E ldrsh r2, [r0, r1] lsls r1, r2, 4 @@ -3493,7 +3493,7 @@ CameraObject_1: @ 808EDDC @ void CameraObject_2(struct obj *object) CameraObject_2: @ 808EE14 push {r4,lr} - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites movs r1, 0x2E ldrsh r2, [r0, r1] lsls r1, r2, 4 @@ -3522,7 +3522,7 @@ CameraObject_2: @ 808EE14 FindCameraObject: @ 808EE44 push {r4,r5,lr} movs r3, 0 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r5, r4, 0 adds r5, 0x1C _0808EE4E: @@ -3635,7 +3635,7 @@ sub_808EEEC: @ 808EEEC lsls r3, 24 lsrs r7, r3, 24 movs r5, 0 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites _0808EF06: lsls r0, r5, 4 adds r0, r5 @@ -3688,7 +3688,7 @@ obj_unfreeze: @ 808EF50 lsls r3, 24 lsrs r7, r3, 24 movs r5, 0x3F - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites movs r2, 0x1 negs r2, r2 _0808EF6E: @@ -4226,7 +4226,7 @@ npc_paltag_set_load: @ 808F2F8 movs r1, 0 movs r2, 0x6 bl pal_patch_for_npc_range - ldr r1, =gUnknown_0300301C + ldr r1, =gReservedSpritePaletteCount movs r0, 0x8 strb r0, [r1] b _0808F356 @@ -11744,7 +11744,7 @@ _08092AA8: _08092AAA: ldrb r1, [r1] adds r0, r4, 0 - bl SeekObjectImageAnim + bl SeekSpriteAnim _08092AB2: pop {r4} pop {r0} @@ -11780,7 +11780,7 @@ obj_npc_animation_step: @ 8092AB8 ldrb r1, [r2, 0x4] _08092AEA: adds r0, r4, 0 - bl SeekObjectImageAnim + bl SeekSpriteAnim _08092AF0: pop {r4} pop {r0} @@ -11833,7 +11833,7 @@ npc_set_running_behaviour_etc: @ 8092B2C strb r3, [r0] adds r0, 0x1 strb r3, [r0] - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites mov r0, r12 ldrb r2, [r0, 0x4] lsls r0, r2, 4 @@ -12303,7 +12303,7 @@ sub_8092E9C: @ 8092E9C lsls r0, 24 cmp r0, 0 bne _08092EE8 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r2, =gUnknown_02037350 mov r0, sp ldrb r1, [r0] @@ -12347,7 +12347,7 @@ sub_8092EF0: @ 8092EF0 lsls r0, 24 cmp r0, 0 bne _08092F2E - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r2, =gUnknown_02037350 mov r0, sp ldrb r1, [r0] @@ -12749,7 +12749,7 @@ FieldObjectSetSpecialAnim: @ 80931C0 movs r1, 0x7F ands r0, r1 strb r0, [r4] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 @@ -12811,7 +12811,7 @@ FieldObjectClearAnim: @ 809323C movs r2, 0x7F ands r1, r2 strb r1, [r0] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldrb r2, [r0, 0x4] lsls r1, r2, 4 adds r1, r2 @@ -16779,7 +16779,7 @@ sub_8094DE4: @ 8094DE4 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 - bl StartObjectImageAnim + bl StartSpriteAnim add sp, 0x4 pop {r4,r5} pop {r0} @@ -18054,7 +18054,7 @@ sub_80956C4: @ 80956C4 orrs r0, r1 strb r0, [r4, 0x1] adds r0, r4, 0 - bl obj_alloc_rotscale_entry + bl InitSpriteAffineAnim adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] @@ -18079,7 +18079,7 @@ sub_80956F4: @ 80956F4 ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix ldrb r0, [r4, 0x1] movs r1, 0x4 negs r1, r1 @@ -18090,7 +18090,7 @@ sub_80956F4: @ 80956F4 lsrs r2, 6 movs r3, 0 adds r0, r4, 0 - bl CalcVecFromObjectCenterToObjectUpperLeft + bl CalcCenterToCornerVec movs r0, 0x1 pop {r4} pop {r1} @@ -18133,7 +18133,7 @@ sub_8095740: @ 8095740 strb r0, [r2] adds r0, r4, 0 movs r1, 0 - bl StartObjectRotScalAnimIfDifferent + bl StartSpriteAffineAnimIfDifferent adds r0, r5, 0 adds r1, r4, 0 bl sub_8095774 @@ -18185,7 +18185,7 @@ sub_80957A0: @ 80957A0 strb r0, [r2] adds r0, r4, 0 movs r1, 0x1 - bl sub_80082F0 + bl ChangeSpriteAffineAnimIfDifferent adds r0, r5, 0 adds r1, r4, 0 bl sub_80957D4 @@ -18238,7 +18238,7 @@ sub_8095800: @ 8095800 strb r0, [r2] adds r0, r4, 0 movs r1, 0x2 - bl sub_80082F0 + bl ChangeSpriteAffineAnimIfDifferent adds r0, r5, 0 adds r1, r4, 0 bl sub_8095834 @@ -18291,7 +18291,7 @@ sub_8095860: @ 8095860 strb r0, [r2] adds r0, r4, 0 movs r1, 0x3 - bl sub_80082F0 + bl ChangeSpriteAffineAnimIfDifferent adds r0, r5, 0 adds r1, r4, 0 bl sub_8095894 @@ -18751,7 +18751,7 @@ sub_8095B84: @ 8095B84 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent adds r0, r6, 0 bl DoShadowFieldEffect add sp, 0x4 @@ -19478,10 +19478,10 @@ sub_80960C8: @ 80960C8 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r4, 0 movs r1, 0 - bl SeekObjectImageAnim + bl SeekSpriteAnim pop {r4,r5} pop {r0} bx r0 @@ -19834,10 +19834,10 @@ sub_8096330: @ 8096330 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r4, 0 movs r1, 0 - bl SeekObjectImageAnim + bl SeekSpriteAnim pop {r4,r5} pop {r0} bx r0 @@ -20153,7 +20153,7 @@ sub_8096530: @ 8096530 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 - ldr r2, =gUnknown_02021BBC + ldr r2, =gSpriteCoordOffsetX adds r0, r1 ldrh r2, [r2] adds r0, r2 @@ -20167,7 +20167,7 @@ sub_8096530: @ 8096530 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 - ldr r2, =gUnknown_02021BBE + ldr r2, =gSpriteCoordOffsetY adds r0, r1 ldrh r2, [r2] adds r0, r2 diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s index 146e360bb5..e88eaa650d 100644 --- a/asm/field_player_avatar.s +++ b/asm/field_player_avatar.s @@ -993,7 +993,7 @@ _0808B0E4: cmp r0, 0 beq _0808B108 movs r0, 0x2B - bl sav12_xor_increment + bl IncrementGameStat movs r0, 0x6 b _0808B152 _0808B108: @@ -1987,7 +1987,7 @@ PlayerJumpLedge: @ 808B840 lsls r4, 24 lsrs r4, 24 movs r0, 0xA - bl audio_play + bl PlaySE adds r0, r4, 0 bl GetJumpLedgeAnimId lsls r0, 24 @@ -2082,7 +2082,7 @@ sub_808B8F0: @ 808B8F0 lsls r4, 24 lsrs r4, 24 movs r0, 0x22 - bl audio_play + bl PlaySE adds r0, r4, 0 bl sub_80936CC lsls r0, 24 @@ -2101,7 +2101,7 @@ sub_808B914: @ 808B914 lsls r4, 24 lsrs r4, 24 movs r0, 0x22 - bl audio_play + bl PlaySE adds r0, r4, 0 bl sub_80936F8 lsls r0, 24 @@ -2120,7 +2120,7 @@ sub_808B938: @ 808B938 lsls r4, 24 lsrs r4, 24 movs r0, 0x22 - bl audio_play + bl PlaySE adds r0, r4, 0 bl sub_8093724 lsls r0, 24 @@ -2139,7 +2139,7 @@ sub_808B95C: @ 808B95C lsls r4, 24 lsrs r4, 24 movs r0, 0x22 - bl audio_play + bl PlaySE adds r0, r4, 0 bl sub_80934E8 lsls r0, 24 @@ -2158,7 +2158,7 @@ sub_808B980: @ 808B980 lsls r4, 24 lsrs r4, 24 movs r0, 0x7 - bl audio_play + bl PlaySE adds r0, r4, 0 bl sub_8093750 lsls r0, 24 @@ -2261,7 +2261,7 @@ PlayCollisionSoundIfNotFacingWarp: @ 808B9EC bne _0808BA54 _0808BA4E: movs r0, 0x7 - bl audio_play + bl PlaySE _0808BA54: add sp, 0x4 pop {r4} @@ -2348,7 +2348,7 @@ plaer_get_pos_including_state_based_drift: @ 808BADC beq _0808BAFC b _0808BC24 _0808BAFC: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldrb r1, [r3, 0x4] lsls r0, r1, 4 adds r0, r1 @@ -3118,7 +3118,7 @@ sub_808C0A8: @ 808C0A8 lsls r0, 24 cmp r0, 0 beq _0808C100 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldrb r1, [r5, 0x5] lsls r0, r1, 3 adds r0, r1 @@ -3165,10 +3165,10 @@ sub_808C114: @ 808C114 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim pop {r4,r5} pop {r0} bx r0 @@ -3199,7 +3199,7 @@ sub_808C15C: @ 808C15C lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 adds r0, r5, 0 bl sub_8092A0C @@ -3207,7 +3207,7 @@ sub_808C15C: @ 808C15C lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim pop {r4-r6} pop {r0} bx r0 @@ -3240,7 +3240,7 @@ sub_808C1B4: @ 808C1B4 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r8, r0 add r4, r8 adds r0, r5, 0 @@ -3249,14 +3249,14 @@ sub_808C1B4: @ 808C1B4 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldrb r1, [r6, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 movs r1, 0x1 - bl SeekObjectImageAnim + bl SeekSpriteAnim pop {r3} mov r8, r3 pop {r4-r6} @@ -3289,7 +3289,7 @@ sub_808C228: @ 808C228 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 adds r0, r5, 0 bl FieldObjectDirectionToImageAnimId @@ -3297,7 +3297,7 @@ sub_808C228: @ 808C228 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim pop {r4-r6} pop {r0} bx r0 @@ -3527,7 +3527,7 @@ _0808C3F0: ldrb r0, [r4, 0xB] lsrs r0, 4 str r0, [r2, 0x8] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 @@ -3540,7 +3540,7 @@ _0808C3F0: movs r0, 0xA bl FieldEffectStart movs r0, 0xD6 - bl audio_play + bl PlaySE ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] @@ -3653,7 +3653,7 @@ sub_808C544: @ 808C544 cmp r0, 0 beq _0808C5A0 movs r0, 0xA - bl audio_play + bl PlaySE ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 @@ -3754,7 +3754,7 @@ sub_808C61C: @ 808C61C strb r0, [r1, 0x6] bl script_env_2_enable movs r0, 0x2D - bl audio_play + bl PlaySE movs r0, 0x1 pop {r1} bx r1 @@ -4013,9 +4013,9 @@ sub_808C814: @ 808C814 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r0, r5, 0 bl DestroyTask _0808C87A: @@ -4371,7 +4371,7 @@ _0808CB32: lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 bl player_get_direction_lower_nybble lsls r0, 24 @@ -4381,7 +4381,7 @@ _0808CB32: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim _0808CB5C: movs r0, 0x1 pop {r4-r6} @@ -4606,7 +4606,7 @@ _0808CCBC: movs r2, 0 bl sub_8155604 _0808CD1A: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldrb r1, [r7, 0x4] lsls r0, r1, 4 adds r0, r1 @@ -4669,7 +4669,7 @@ fishB: @ 808CD94 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 bl player_get_direction_lower_nybble lsls r0, 24 @@ -4679,7 +4679,7 @@ fishB: @ 808CD94 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0 movs r1, 0x11 bl FillWindowPixelBuffer @@ -4717,7 +4717,7 @@ fishC: @ 808CE04 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 bl player_get_direction_lower_nybble lsls r0, 24 @@ -4727,7 +4727,7 @@ fishC: @ 808CE04 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0 movs r1, 0x11 bl FillWindowPixelBuffer @@ -4776,7 +4776,7 @@ fishE: @ 808CE8C push {r7} adds r6, r0, 0 bl sub_808CF78 - ldr r7, =gUnknown_02020630 + ldr r7, =gSprites ldr r5, =gUnknown_02037590 ldrb r0, [r5, 0x4] lsls r1, r0, 4 @@ -4884,10 +4884,10 @@ sub_808CF78: @ 808CF78 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r4, r0, r1 adds r0, r4, 0 - bl AnimateObject + bl AnimateSprite movs r0, 0 strh r0, [r4, 0x24] strh r0, [r4, 0x26] @@ -5043,7 +5043,7 @@ sub_808D094: @ 808D094 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r7, r0, r1 lsls r0, r2, 2 adds r0, r2 @@ -5223,7 +5223,7 @@ sub_808D1FC: @ 808D1FC lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r7, r0, r1 mov r1, r8 lsls r0, r1, 2 diff --git a/asm/field_poison.s b/asm/field_poison.s index d1405ce30f..c4008c33e7 100644 --- a/asm/field_poison.s +++ b/asm/field_poison.s @@ -77,7 +77,7 @@ sub_80F95C0: @ 80F95C0 adds r0, r4, 0 movs r1, 0x37 mov r2, sp - bl pokemon_setattr + bl SetMonData ldr r5, =gStringVar1 adds r0, r4, 0 movs r1, 0x2 @@ -203,12 +203,12 @@ _080F96C0: cmp r0, 0 beq _080F96F0 _080F96E6: - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r5, [r0] b _080F9718 .pool _080F96F0: - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 strh r0, [r1] b _080F9718 @@ -224,7 +224,7 @@ _080F96FC: b _080F9722 .pool _080F9714: - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r1, [r0] _080F9718: bl script_env_2_enable_and_set_ctx_running @@ -287,7 +287,7 @@ _080F9788: adds r0, r4, 0 movs r1, 0x39 mov r2, sp - bl pokemon_setattr + bl SetMonData adds r7, 0x1 _080F9794: adds r4, 0x64 diff --git a/asm/field_region_map.s b/asm/field_region_map.s index 12411dbf55..dc3cd7034d 100644 --- a/asm/field_region_map.s +++ b/asm/field_region_map.s @@ -59,8 +59,8 @@ sub_81701C4: @ 81701C4 movs r0, 0x1E movs r1, 0 bl SetGpuReg - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_085E5068 @@ -87,8 +87,8 @@ sub_81701C4: @ 81701C4 thumb_func_start sub_8170260 sub_8170260: @ 8170260 push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -98,8 +98,8 @@ sub_8170260: @ 8170260 sub_8170274: @ 8170274 push {lr} bl sub_8170290 - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade bl do_scheduled_bg_tilemap_copies_to_vram pop {r0} diff --git a/asm/field_tasks.s b/asm/field_tasks.s index 7368eed85c..5f9a49f94b 100644 --- a/asm/field_tasks.s +++ b/asm/field_tasks.s @@ -697,7 +697,7 @@ _0809DDAE: cmp r0, 0 beq _0809DE1E movs r0, 0x46 - bl audio_play + bl PlaySE b _0809DE1E _0809DDDC: ldrh r0, [r4, 0xC] @@ -973,7 +973,7 @@ _0809DFF4: bne _0809E008 _0809E002: movs r0, 0x47 - bl audio_play + bl PlaySE _0809E008: cmp r7, 0 beq _0809E044 @@ -1373,7 +1373,7 @@ _0809E306: ldrh r0, [r5, 0xA] strh r0, [r4] movs r0, 0x2A - bl audio_play + bl PlaySE mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] @@ -1418,7 +1418,7 @@ _0809E370: ldrh r0, [r5, 0xA] strh r0, [r4] movs r0, 0x29 - bl audio_play + bl PlaySE mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] @@ -1521,7 +1521,7 @@ _0809E456: movs r0, 0x87 lsls r0, 1 movs r1, 0x1 - bl sub_80D6724 + bl CheckBagHasItem lsls r0, 24 cmp r0, 0 beq _0809E47A diff --git a/asm/fldeff_80F9BCC.s b/asm/fldeff_80F9BCC.s index a881d207a4..ac1cd5a824 100644 --- a/asm/fldeff_80F9BCC.s +++ b/asm/fldeff_80F9BCC.s @@ -563,7 +563,7 @@ _080F9FFE: sub_80FA004: @ 80FA004 push {r4,lr} bl sub_80E8BC8 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0x1 beq _080FA0AE @@ -691,7 +691,7 @@ sub_80FA13C: @ 80FA13C push {r4,lr} bl sub_80F9F78 ldr r0, =gUnknown_0858E600 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r1, =gUnknown_02037590 ldrb r1, [r1, 0x4] lsls r2, r1, 4 @@ -712,7 +712,7 @@ sub_80FA13C: @ 80FA13C lsls r2, 16 asrs r2, 16 movs r3, 0x94 - bl AddObjectToFront + bl CreateSprite movs r0, 0 pop {r4} pop {r1} @@ -725,7 +725,7 @@ sub_80FA18C: @ 80FA18C push {r4,lr} adds r4, r0, 0 movs r0, 0x83 - bl audio_play + bl PlaySE movs r0, 0 strh r0, [r4, 0x2E] ldr r0, =sub_80FA1A8 @@ -848,7 +848,7 @@ _080FA26A: _080FA274: bl sub_80F9F78 ldr r0, =gUnknown_0858E618 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r1, =gUnknown_02037590 ldrb r1, [r1, 0x4] lsls r2, r1, 4 @@ -869,7 +869,7 @@ _080FA274: lsls r2, 16 asrs r2, 16 movs r3, 0x94 - bl AddObjectToFront + bl CreateSprite ldr r0, [r4, 0x1C] cmp r0, 0x1 beq _080FA2B2 @@ -890,7 +890,7 @@ sub_80FA2D8: @ 80FA2D8 push {r4,lr} adds r4, r0, 0 movs r0, 0x9B - bl audio_play + bl PlaySE ldr r0, =gUnknown_02038C08 ldr r1, [r0, 0x1C] adds r2, r4, 0 @@ -999,7 +999,7 @@ sub_80FA3AC: @ 80FA3AC push {r4,lr} bl sub_80F9F78 ldr r0, =gUnknown_0858E630 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r1, =gUnknown_02037590 ldrb r1, [r1, 0x4] lsls r2, r1, 4 @@ -1020,7 +1020,7 @@ sub_80FA3AC: @ 80FA3AC lsls r2, 16 asrs r2, 16 movs r3, 0x94 - bl AddObjectToFront + bl CreateSprite movs r0, 0 pop {r4} pop {r1} @@ -1033,7 +1033,7 @@ sub_80FA3FC: @ 80FA3FC push {r4,lr} adds r4, r0, 0 movs r0, 0xA9 - bl audio_play + bl PlaySE movs r0, 0 strh r0, [r4, 0x2E] ldr r0, =sub_80FA418 @@ -1219,7 +1219,7 @@ sub_80FA57C: @ 80FA57C adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer movs r0, 0x3 - bl audio_play + bl PlaySE ldr r0, =0x00004054 bl VarGet lsls r0, 16 @@ -1385,19 +1385,19 @@ _080FA6C8: b _080FA6F6 _080FA6D8: movs r0, 0x4A - bl audio_play + bl PlaySE b _080FA6F6 _080FA6E0: movs r0, 0x4B - bl audio_play + bl PlaySE b _080FA6F6 _080FA6E8: movs r0, 0x4C - bl audio_play + bl PlaySE b _080FA6F6 _080FA6F0: movs r0, 0x4E - bl audio_play + bl PlaySE _080FA6F6: pop {r0} bx r0 @@ -1425,7 +1425,7 @@ sub_80FA704: @ 80FA704 lsls r4, 16 lsrs r4, 16 movs r0, 0x4D - bl audio_play + bl PlaySE lsls r5, 16 asrs r5, 16 lsls r4, 16 @@ -1625,35 +1625,35 @@ _080FA830: .4byte _080FA958 _080FA920: movs r0, 0x3E - bl audio_play + bl PlaySE b _080FA95E _080FA928: movs r0, 0x3F - bl audio_play + bl PlaySE b _080FA95E _080FA930: movs r0, 0x40 - bl audio_play + bl PlaySE b _080FA95E _080FA938: movs r0, 0x41 - bl audio_play + bl PlaySE b _080FA95E _080FA940: movs r0, 0x42 - bl audio_play + bl PlaySE b _080FA95E _080FA948: movs r0, 0x43 - bl audio_play + bl PlaySE b _080FA95E _080FA950: movs r0, 0x44 - bl audio_play + bl PlaySE b _080FA95E _080FA958: movs r0, 0x45 - bl audio_play + bl PlaySE _080FA95E: adds r0, r4, 0 bl DestroyTask @@ -1704,14 +1704,14 @@ sub_80FA9A4: @ 80FA9A4 cmp r0, 0x8 bne _080FA9BC movs r0, 0xC3 - bl audio_play + bl PlaySE _080FA9BC: movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1F ble _080FA9CA adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _080FA9CA: pop {r4} pop {r0} @@ -1754,12 +1754,12 @@ sub_80FA9D0: @ 80FA9D0 movs r3, 0 ldrsh r2, [r4, r3] movs r3, 0 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _080FAA5E - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 @@ -1834,7 +1834,7 @@ _080FAABC: b _080FAB8C _080FAAC6: ldr r0, =gUnknown_0858E68C - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r1, =gUnknown_02037590 ldrb r1, [r1, 0x4] lsls r2, r1, 4 @@ -1851,12 +1851,12 @@ _080FAAC6: ldrb r2, [r2] adds r2, 0x20 movs r3, 0 - bl AddObjectToFront + bl CreateSprite b _080FAB8C .pool _080FAAFC: ldr r0, =gUnknown_0858E68C - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r1, =gUnknown_02037590 ldrb r1, [r1, 0x4] lsls r2, r1, 4 @@ -1875,7 +1875,7 @@ _080FAAFC: .pool _080FAB2C: ldr r0, =gUnknown_0858E68C - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r1, =gUnknown_02037590 ldrb r1, [r1, 0x4] lsls r2, r1, 4 @@ -1892,12 +1892,12 @@ _080FAB2C: adds r2, 0x10 _080FAB4C: movs r3, 0x94 - bl AddObjectToFront + bl CreateSprite b _080FAB8C .pool _080FAB64: ldr r0, =gUnknown_0858E68C - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r1, =gUnknown_02037590 ldrb r1, [r1, 0x4] lsls r2, r1, 4 @@ -1914,7 +1914,7 @@ _080FAB64: ldrb r2, [r2] adds r2, 0x10 movs r3, 0x94 - bl AddObjectToFront + bl CreateSprite _080FAB8C: movs r0, 0 add sp, 0x4 @@ -1929,7 +1929,7 @@ door_restore_tilemap: @ 80FABA4 push {r4,r5,lr} adds r5, r0, 0 movs r0, 0x83 - bl audio_play + bl PlaySE ldr r4, =gUnknown_02038C08 ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] @@ -2063,7 +2063,7 @@ _080FACC2: ldr r0, =gStringVar2 ldr r1, =gUnknown_085EA88B bl StringCopy - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =0x00004054 @@ -2087,7 +2087,7 @@ _080FAD14: ldr r0, =gStringVar2 ldr r1, =gUnknown_085EA890 bl StringCopy - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =0x00004054 @@ -2103,12 +2103,12 @@ _080FAD14: b _080FAD8A .pool _080FAD60: - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 b _080FAD70 .pool _080FAD6C: - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x2 _080FAD70: strh r0, [r1] @@ -2131,7 +2131,7 @@ _080FAD8A: b _080FADCE .pool _080FADA4: - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x3 strh r0, [r1] ldr r0, =0x00004054 @@ -2266,7 +2266,7 @@ _080FAEA2: overworld_posion_effect: @ 80FAEA8 push {lr} movs r0, 0x4F - bl audio_play + bl PlaySE ldr r0, =task50_overworld_posion_effect movs r1, 0x50 bl CreateTask @@ -2435,12 +2435,12 @@ sub_80FAFF8: @ 80FAFF8 sub_80FB00C: @ 80FB00C push {r4,r5,lr} ldr r0, =gUnknown_0858E864 - bl LoadTaggedObjectPalette + bl LoadSpritePalette ldr r0, =gUnknown_0858E880 movs r1, 0 movs r2, 0 movs r3, 0x52 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x40 @@ -2448,7 +2448,7 @@ sub_80FB00C: @ 80FB00C lsls r0, r5, 4 adds r0, r5 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r4, r0, r1 adds r2, r4, 0 adds r2, 0x20 @@ -2483,7 +2483,7 @@ _080FB06E: thumb_func_start sub_80FB074 sub_80FB074: @ 80FB074 push {r4-r7,lr} - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r7, r4, 0 movs r6, 0 movs r5, 0x3F @@ -2496,9 +2496,9 @@ _080FB07E: cmp r1, r0 bne _080FB098 adds r0, r4, 0 - bl FreeObjectPalette + bl FreeSpritePalette adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _080FB098: adds r4, 0x44 adds r6, 0x44 diff --git a/asm/fldeff_emotion.s b/asm/fldeff_emotion.s index 64a0997446..845f5618fb 100644 --- a/asm/fldeff_emotion.s +++ b/asm/fldeff_emotion.s @@ -12,7 +12,7 @@ oei_exclamation_mark: @ 80B4620 movs r1, 0 movs r2, 0 movs r3, 0x53 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 @@ -20,7 +20,7 @@ oei_exclamation_mark: @ 80B4620 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 movs r1, 0 movs r2, 0 @@ -39,7 +39,7 @@ sub_80B4658: @ 80B4658 movs r1, 0 movs r2, 0 movs r3, 0x52 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 @@ -47,7 +47,7 @@ sub_80B4658: @ 80B4658 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 movs r1, 0x21 movs r2, 0x1 @@ -66,7 +66,7 @@ sub_80B4690: @ 80B4690 movs r1, 0 movs r2, 0 movs r3, 0x52 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 @@ -74,7 +74,7 @@ sub_80B4690: @ 80B4690 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 adds r0, r4, 0 movs r1, 0x2E @@ -126,7 +126,7 @@ sub_80B46D8: @ 80B46D8 strh r3, [r0, 0x34] strh r1, [r0, 0x3C] adds r1, r2, 0 - bl StartObjectImageAnim + bl StartSpriteAnim pop {r4} pop {r0} bx r0 @@ -178,7 +178,7 @@ _080B4764: lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 ldrh r3, [r4, 0x34] ldrh r0, [r4, 0x36] diff --git a/asm/fldeff_strength.s b/asm/fldeff_strength.s index 738ff3bbab..e96a9c0665 100644 --- a/asm/fldeff_strength.s +++ b/asm/fldeff_strength.s @@ -17,7 +17,7 @@ hm_prepare_rocksmash: @ 8145DC4 movs r0, 0 b _08145DF2 _08145DD8: - ldr r4, =gUnknown_020375F0 + ldr r4, =gScriptResult bl brm_get_pokemon_selection lsls r0, 24 lsrs r0, 24 diff --git a/asm/front_pic_anim.s b/asm/front_pic_anim.s index aaa150644e..1b0119424b 100644 --- a/asm/front_pic_anim.s +++ b/asm/front_pic_anim.s @@ -26,7 +26,7 @@ sub_817F498: @ 817F498 movs r0, 0x8 ldrsh r4, [r2, r0] mov r8, r1 - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy mov r12, r0 cmp r4, 0 bne _0817F508 @@ -151,7 +151,7 @@ sub_817F594: @ 817F594 strh r5, [r4, 0xC] ldrh r0, [r5, 0x2E] lsls r0, 24 - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsrs r0, 23 adds r0, r1 ldrh r1, [r0] @@ -213,7 +213,7 @@ sub_817F618: @ 817F618 movs r2, 0x1 movs r3, 0x2 bl ObjAffineSet - ldr r0, =gUnknown_02021BC0 + ldr r0, =gOamMatrices lsls r4, 3 adds r4, r0 ldrh r0, [r5] @@ -246,7 +246,7 @@ sub_817F670: @ 817F670 cmp r0, 0x1 bne _0817F68E adds r0, r4, 0 - bl obj_alloc_rotscale_entry + bl InitSpriteAffineAnim _0817F68E: movs r1, 0x30 ldrsh r0, [r4, r1] @@ -254,13 +254,13 @@ _0817F68E: bne _0817F6A8 adds r0, r4, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim b _0817F6B0 .pool _0817F6A8: adds r0, r4, 0 movs r1, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim _0817F6B0: ldrb r3, [r4, 0x1] lsrs r1, r3, 6 @@ -269,7 +269,7 @@ _0817F6B0: lsls r3, 30 lsrs r3, 30 adds r0, r4, 0 - bl CalcVecFromObjectCenterToObjectUpperLeft + bl CalcCenterToCornerVec adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] @@ -396,7 +396,7 @@ sub_817F77C: @ 817F77C lsls r3, 30 lsrs r3, 30 adds r0, r4, 0 - bl CalcVecFromObjectCenterToObjectUpperLeft + bl CalcCenterToCornerVec ldr r0, =gUnknown_03001274 ldr r0, [r0] cmp r0, 0x1 @@ -426,7 +426,7 @@ _0817F7D0: ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix ldrb r2, [r4, 0x3] lsls r1, r2, 26 lsrs r1, 27 @@ -11677,7 +11677,7 @@ sub_8184D88: @ 8184D88 ands r0, r1 cmp r0, 0 beq _08184D9C - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r2, 0x1C] _08184D9C: pop {r0} diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s index 43a1a86c89..1f7a56418d 100644 --- a/asm/hall_of_fame.s +++ b/asm/hall_of_fame.s @@ -8,8 +8,8 @@ thumb_func_start sub_817354C sub_817354C: @ 817354C push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -20,8 +20,8 @@ sub_8173560: @ 8173560 push {lr} bl RunTasks bl RunTextPrinters - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 @@ -127,7 +127,7 @@ _0817365C: bl SetMainCallback2 movs r0, 0xDA lsls r0, 1 - bl song_play_for_text + bl PlayBGM movs r0, 0 b _0817368A .pool @@ -519,16 +519,16 @@ sub_81739C4: @ 81739C4 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r1, =gUnknown_03006214 + ldr r1, =gGameContinueCallback ldr r0, =sub_81736D8 str r0, [r1] movs r0, 0x3 - bl save_game_when_memory_present + bl TrySavingData lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _08173A34 - ldr r0, =gUnknown_030061FC + ldr r0, =gDamagedSaveSectors ldr r0, [r0] cmp r0, 0 beq _08173A34 @@ -559,7 +559,7 @@ _08173A16: .pool _08173A34: movs r0, 0x37 - bl audio_play + bl PlaySE ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 @@ -697,7 +697,7 @@ _08173B20: bl sub_818D3E4 lsls r0, 24 lsrs r0, 24 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 @@ -772,10 +772,10 @@ sub_8173BC0: @ 8173BC0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r3, r0, r1 ldr r1, [r3, 0x1C] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy cmp r1, r0 bne _08173C1A ldrb r1, [r3, 0x1] @@ -832,7 +832,7 @@ sub_8173C34: @ 8173C34 .pool _08173C78: ldr r2, =gUnknown_0203BCD4 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r8, r0 adds r0, r3, 0x5 lsls r0, 1 @@ -930,7 +930,7 @@ sub_8173D24: @ 8173D24 ldr r0, =gTasks + 0x8 mov r12, r0 mov r8, r1 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites movs r7, 0xD negs r7, r7 _08173D52: @@ -961,7 +961,7 @@ _08173D74: movs r1, 0xF bl sub_8174A38 movs r0, 0x69 - bl audio_play + bl PlaySE ldr r1, =gTasks mov r2, r8 adds r0, r2, r4 @@ -1022,7 +1022,7 @@ _08173E04: adds r4, r5, 0 adds r7, 0x8 mov r8, r7 - ldr r7, =gUnknown_02020630 + ldr r7, =gSprites movs r1, 0xD negs r1, r1 mov r12, r1 @@ -1204,7 +1204,7 @@ sub_8173F84: @ 8173F84 b _08174018 .pool _08173FAC: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r3, 0x10 ldrsh r1, [r4, r3] lsls r0, r1, 4 @@ -1272,7 +1272,7 @@ sub_8174028: @ 8174028 cmp r0, 0 beq _0817404E movs r0, 0x4 - bl play_sound_effect + bl FadeOutBGM ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 @@ -1342,7 +1342,7 @@ sub_81740B0: @ 81740B0 lsls r0, 3 adds r1, 0x12 adds r5, r0, r1 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites mov r9, r2 movs r6, 0x5 _081740DC: @@ -1356,7 +1356,7 @@ _081740DC: ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix adds r0, r4, 0 bl sub_818D820 _081740FA: @@ -1513,8 +1513,8 @@ _08174240: .pool _08174280: bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade bl sub_80F9C1C lsls r0, 24 @@ -1651,7 +1651,7 @@ _081743BC: _081743C6: strh r0, [r1, 0x8] movs r0, 0xA - bl sub_80847F8 + bl GetGameStat ldr r2, =gTasks adds r1, r5, r6 lsls r1, 3 @@ -1806,7 +1806,7 @@ _081744DE: bl sub_818D7D8 lsls r0, 16 lsrs r0, 16 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -1937,7 +1937,7 @@ _08174630: lsls r6, r0, 3 ldr r0, =gTasks + 0x8 mov r10, r0 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites mov r8, r1 movs r2, 0xD negs r2, r2 @@ -1984,7 +1984,7 @@ _0817466C: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 ldrb r2, [r0, 0x5] movs r1, 0xD @@ -2015,12 +2015,12 @@ _0817466C: lsls r1, 1 cmp r0, r1 beq _081746E6 - bl sub_80A369C + bl StopCryAndClearCrySongs ldrh r0, [r4, 0x8] lsls r0, 23 lsrs r0, 23 movs r1, 0 - bl cry_related + bl PlayCry1 _081746E6: adds r0, r4, 0 movs r1, 0 @@ -2109,11 +2109,11 @@ _081747A4: b _08174884 .pool _081747B8: - bl sub_80A36C8 + bl IsCryPlayingOrClearCrySongs lsls r0, 24 cmp r0, 0 beq _081747D2 - bl sub_80A369C + bl StopCryAndClearCrySongs ldr r0, =gMPlay_BGM ldr r1, =0x0000ffff movs r2, 0x80 @@ -2129,11 +2129,11 @@ _081747E4: ands r0, r2 cmp r0, 0 beq _08174828 - bl sub_80A36C8 + bl IsCryPlayingOrClearCrySongs lsls r0, 24 cmp r0, 0 beq _08174806 - bl sub_80A369C + bl StopCryAndClearCrySongs ldr r0, =gMPlay_BGM ldr r1, =0x0000ffff movs r2, 0x80 @@ -2977,11 +2977,11 @@ sub_8174F70: @ 8174F70 push {lr} bl remove_some_task bl ResetTasks - bl ResetAllObjectData + bl ResetSpriteData bl reset_temp_tile_data_buffers bl dp13_810BB8C - bl ResetObjectPaletteAllocator - ldr r1, =gUnknown_0300301C + bl FreeAllSpritePalettes + ldr r1, =gReservedSpritePaletteCount movs r0, 0x8 strb r0, [r1] ldr r0, =gUnknown_085E5394 @@ -3238,7 +3238,7 @@ sub_81751A4: @ 81751A4 cmp r0, 0x78 ble _081751BA adds r0, r5, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite b _081751F2 _081751BA: adds r0, r1, 0x1 @@ -3254,7 +3254,7 @@ _081751BA: movs r1, 0x3 ands r0, r1 adds r0, 0x8 - ldr r1, =gUnknown_08329F40 + ldr r1, =gSineTable lsls r4, 1 adds r4, r1 movs r2, 0 @@ -3301,13 +3301,13 @@ sub_81751FC: @ 81751FC asrs r2, 16 adds r1, r4, 0 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r1, r0 bl Random lsls r0, 16 @@ -3318,7 +3318,7 @@ sub_81751FC: @ 81751FC lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim bl Random movs r1, 0x3 ands r1, r0 @@ -3340,7 +3340,7 @@ _08175276: thumb_func_start sub_8175280 sub_8175280: @ 8175280 push {r4,lr} - ldr r4, =gUnknown_020375E0 + ldr r4, =gSpecialVar_0x8004 movs r0, 0xB4 strh r0, [r4] ldr r0, =sub_8175364 @@ -3357,7 +3357,7 @@ sub_8175280: @ 8175280 adds r0, r1 ldrh r1, [r4] strh r1, [r0, 0xA] - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 strh r2, [r0] _081752AA: pop {r4} @@ -3380,9 +3380,9 @@ _081752D4: bl sub_8152254 ldr r4, =0x000003e9 adds r0, r4, 0 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag adds r0, r4, 0 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag pop {r4} pop {r0} bx r0 @@ -3424,7 +3424,7 @@ _08175324: movs r1, 0x3 ands r0, r1 adds r0, 0x8 - ldr r1, =gUnknown_08329F40 + ldr r1, =gSineTable lsls r4, 1 adds r4, r1 movs r2, 0 @@ -3483,9 +3483,9 @@ _0817539C: bne _081753B8 adds r0, r4, 0 bl DestroyTask - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 strh r7, [r0] - ldr r1, =gUnknown_020375E2 + ldr r1, =gSpecialVar_0x8005 ldr r2, =0x0000ffff adds r0, r2, 0 strh r0, [r1] @@ -3584,9 +3584,9 @@ _08175494: b _081754B0 _081754A0: bl sub_81752C0 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 strh r7, [r0] - ldr r1, =gUnknown_020375E2 + ldr r1, =gSpecialVar_0x8005 ldr r2, =0x0000ffff adds r0, r2, 0 strh r0, [r1] diff --git a/asm/intro.s b/asm/intro.s index c7bbbc41f2..26ed312d6c 100644 --- a/asm/intro.s +++ b/asm/intro.s @@ -8,8 +8,8 @@ thumb_func_start sub_816CBE8 sub_816CBE8: @ 816CBE8 push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_80BA0A8 pop {r0} @@ -20,8 +20,8 @@ sub_816CBE8: @ 816CBE8 sub_816CC00: @ 816CC00 push {lr} bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade ldr r0, =gMain ldrh r0, [r0, 0x2E] @@ -186,8 +186,8 @@ _0816CCF4: bl load_copyright_graphics bl remove_some_task bl ResetTasks - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes movs r0, 0x1 negs r0, r0 ldr r1, =0x0000ffff @@ -309,17 +309,17 @@ c2_copyright_1: @ 816CEAC lsrs r0, 16 bl InitSaveBlockPointersWithRandomOffset bl sub_808447C - bl sub_8152680 + bl ResetSaveCounters movs r0, 0 bl sub_81534D0 - ldr r0, =gUnknown_03006210 + ldr r0, =gSaveFileStatus ldrh r0, [r0] cmp r0, 0 beq _0816CEDE cmp r0, 0x2 bne _0816CEE2 _0816CEDE: - bl init_sav2 + bl Sav2_ClearSetDefault _0816CEE2: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] @@ -447,11 +447,11 @@ task_intro_1: @ 816CF18 ldr r0, =gUnknown_085E4FEC bl LoadCompressedObjectPic ldr r0, =gUnknown_085E4FFC - bl LoadTaggedObjectPalettes + bl LoadSpritePalettes ldr r0, =gUnknown_085E4A74 bl LoadCompressedObjectPic ldr r0, =gUnknown_085E4A84 - bl LoadTaggedObjectPalettes + bl LoadSpritePalettes ldr r4, =gPlttBufferUnfaded + 0x200 movs r3, 0xF0 lsls r3, 1 @@ -581,7 +581,7 @@ task_intro_3: @ 816D190 ldr r0, [r5] cmp r0, 0x4C bne _0816D1BE - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 @@ -606,7 +606,7 @@ _0816D1CC: ldr r0, [r5] cmp r0, 0xFB bne _0816D1EE - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 @@ -744,7 +744,7 @@ _0816D2D8: lsls r2, 16 asrs r2, 16 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] @@ -789,7 +789,7 @@ sub_816D338: @ 816D338 cmp r0, 0xC bne _0816D350 adds r0, r1, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0816D350: pop {r0} bx r0 @@ -860,10 +860,10 @@ task_intro_4: @ 816D354 movs r1, 0x78 movs r2, 0xA0 movs r3, 0xA - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -934,8 +934,8 @@ task_intro_6: @ 816D48C bl intro_reset_and_hide_bgs movs r0, 0 bl SetVBlankCallback - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes ldr r0, =gUnknown_0203BD24 movs r1, 0 strh r1, [r0] @@ -993,22 +993,22 @@ _0816D51C: cmp r6, 0x2 bls _0816D51C ldr r0, =gUnknown_085F530C - bl LoadTaggedObjectPalettes + bl LoadSpritePalettes ldr r0, =gUnknown_085E4B08 - bl LoadTaggedObjectPalettes + bl LoadSpritePalettes ldr r0, =gUnknown_085E4BDC movs r5, 0x88 lsls r5, 1 adds r1, r5, 0 movs r2, 0x80 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r0, =gUnknown_085E4BA4 movs r1, 0x90 lsls r1, 1 movs r2, 0x6E movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite ldr r0, =gUnknown_0203BCC8 ldrh r0, [r0] cmp r0, 0 @@ -1025,7 +1025,7 @@ _0816D590: _0816D598: lsls r0, 24 lsrs r6, r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, r6, 4 adds r0, r6 lsls r0, 2 @@ -1048,7 +1048,7 @@ _0816D598: lsls r1, 1 movs r2, 0x50 movs r3, 0x4 - bl AddObjectToFront + bl CreateSprite movs r0, 0x40 negs r0, r0 movs r1, 0x3C @@ -1143,7 +1143,7 @@ _0816D6A4: ldr r3, =gTasks cmp r1, r0 bne _0816D6C8 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, r4, 2 adds r0, r4 lsls r0, 3 @@ -1161,7 +1161,7 @@ _0816D6C8: ldr r0, =0x000004be cmp r1, r0 bne _0816D6EA - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, r4, 2 adds r0, r4 lsls r0, 3 @@ -1179,7 +1179,7 @@ _0816D6EA: ldr r0, =0x00000572 cmp r1, r0 bne _0816D70C - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, r4, 2 adds r0, r4 lsls r0, 3 @@ -1197,7 +1197,7 @@ _0816D70C: ldr r0, =0x00000576 cmp r1, r0 bne _0816D72E - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, r4, 2 adds r0, r4 lsls r0, 3 @@ -1216,7 +1216,7 @@ _0816D72E: lsls r0, 3 cmp r1, r0 bne _0816D752 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, r4, 2 adds r0, r4 lsls r0, 3 @@ -1234,7 +1234,7 @@ _0816D752: ldr r0, =0x000006bf cmp r1, r0 bne _0816D774 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, r4, 2 adds r0, r4 lsls r0, 3 @@ -1493,7 +1493,7 @@ _0816D96E: cmp r1, r0 bge _0816D9BA adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite b _0816D9BA _0816D99C: ldrh r0, [r4, 0x34] @@ -1585,7 +1585,7 @@ _0816DA20: _0816DA50: adds r0, r4, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] @@ -1645,7 +1645,7 @@ _0816DABA: adds r0, r4, 0 movs r1, 0x1 _0816DABE: - bl StartObjectImageAnim + bl StartSpriteAnim ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] @@ -1726,7 +1726,7 @@ _0816DB42: cmp r0, r1 bgt _0816DB60 adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite b _0816DBA4 .pool _0816DB60: @@ -1806,8 +1806,8 @@ task_intro_10: @ 816DBAC movs r2, 0 movs r3, 0 bl sub_816F2A8 - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes movs r0, 0x1 negs r0, r0 ldr r1, =0x0000ffff @@ -1940,9 +1940,9 @@ task_intro_13: @ 816DD28 cmp r0, 0 bne _0816DD94 bl intro_reset_and_hide_bgs - bl ResetAllObjectData - bl ResetObjectPaletteAllocator - ldr r1, =gUnknown_0300301C + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r1, =gReservedSpritePaletteCount movs r0, 0x8 strb r0, [r1] ldr r0, =gUnknown_08D88494 @@ -2325,7 +2325,7 @@ _0816E09A: movs r1, 0 movs r2, 0x64 movs r3, 0xA - bl sub_80A344C + bl PlayCryInternal b _0816E14E .pool _0816E0C8: @@ -2428,7 +2428,7 @@ sub_816E190: @ 816E190 lsls r0, 24 lsrs r7, r0, 24 movs r4, 0 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites ldr r5, =gUnknown_085E4C64 _0816E19C: movs r0, 0 @@ -2437,7 +2437,7 @@ _0816E19C: lsrs r3, 24 ldr r0, =gUnknown_08596C10 movs r2, 0xA0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r2, r0, 4 @@ -2459,7 +2459,7 @@ _0816E19C: strh r7, [r2, 0x36] ldrb r1, [r5, 0x2] adds r0, r2, 0 - bl StartObjectImageAnim + bl StartSpriteAnim adds r5, 0x6 adds r4, 0x1 cmp r4, 0x5 @@ -2570,7 +2570,7 @@ task_intro_19: @ 816E2A0 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - bl ResetAllObjectData + bl ResetSpriteData ldr r0, =gUnknown_08D89224 movs r1, 0xC0 lsls r1, 19 @@ -2584,7 +2584,7 @@ task_intro_19: @ 816E2A0 ldr r0, =gUnknown_085E4C88 bl LoadCompressedObjectPic ldr r0, =gUnknown_085E4C98 - bl LoadTaggedObjectPalette + bl LoadSpritePalette movs r0, 0x2 negs r0, r0 ldr r1, =0x0000ffff @@ -2857,7 +2857,7 @@ _0816E528: movs r1, 0 movs r2, 0x78 movs r3, 0xA - bl sub_80A344C + bl PlayCryInternal b _0816E6BC _0816E544: ldrh r0, [r5, 0xC] @@ -3060,7 +3060,7 @@ sub_816E6D4: @ 816E6D4 mov r8, r0 movs r5, 0 ldr r7, =gUnknown_085E4CA8 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r9, r0 adds r4, r7, 0 movs r6, 0 @@ -3074,7 +3074,7 @@ _0816E6EE: lsls r3, r5, 24 lsrs r3, 24 ldr r0, =gUnknown_085E4D14 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r2, r0, 4 @@ -3116,7 +3116,7 @@ sub_816E74C: @ 816E74C ldr r7, =gUnknown_085E4CA8 adds r4, r7, 0x4 movs r6, 0x24 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r8, r0 _0816E75E: movs r3, 0x20 @@ -3128,7 +3128,7 @@ _0816E75E: lsls r3, r5, 24 lsrs r3, 24 ldr r0, =gUnknown_085E4D14 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r2, r0, 4 @@ -3200,7 +3200,7 @@ _0816E7C6: cmp r0, 0 beq _0816E82A adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite b _0816E82A _0816E80A: subs r0, r1, 0x1 @@ -3210,7 +3210,7 @@ _0816E80A: bne _0816E82A adds r0, r4, 0 movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] @@ -3265,7 +3265,7 @@ _0816E86E: cmp r0, 0x8C bls _0816E882 adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0816E882: pop {r4} pop {r0} @@ -3541,7 +3541,7 @@ task_intro_25: @ 816EAB8 ldr r0, =gUnknown_085E4BF4 bl LoadCompressedObjectPicUsingHeap ldr r0, =gUnknown_085E4C04 - bl LoadTaggedObjectPalettes + bl LoadSpritePalettes pop {r4} pop {r0} bx r0 @@ -3584,26 +3584,26 @@ _0816EB72: movs r1, 0xC8 movs r2, 0x30 movs r3, 0 - bl AddObjectToFront + bl CreateSprite adds r0, r4, 0 movs r1, 0xC8 movs r2, 0x50 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites adds r0, r5 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r4, 0 movs r1, 0xC8 movs r2, 0x70 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 lsls r0, r1, 4 @@ -3611,7 +3611,7 @@ _0816EB72: lsls r0, 2 adds r0, r5 movs r1, 0x2 - bl StartObjectImageAnim + bl StartSpriteAnim ldrh r0, [r6] adds r0, 0x1 strh r0, [r6] @@ -3631,26 +3631,26 @@ _0816EBE0: movs r1, 0x28 movs r2, 0x30 movs r3, 0 - bl AddObjectToFront + bl CreateSprite adds r0, r4, 0 movs r1, 0x28 movs r2, 0x50 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites adds r0, r5 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r4, 0 movs r1, 0x28 movs r2, 0x70 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 lsls r0, r1, 4 @@ -3658,7 +3658,7 @@ _0816EBE0: lsls r0, 2 adds r0, r5 movs r1, 0x2 - bl StartObjectImageAnim + bl StartSpriteAnim ldrh r0, [r6] adds r0, 0x1 strh r0, [r6] @@ -3771,7 +3771,7 @@ _0816ECDC: cmp r0, r1 bne _0816ED12 adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0816ED12: pop {r4} pop {r0} @@ -3789,7 +3789,7 @@ task_intro_27: @ 816ED20 ldr r0, =gUnknown_085E5048 bl LoadCompressedObjectPic ldr r0, =gUnknown_085E5058 - bl LoadTaggedObjectPalettes + bl LoadSpritePalettes movs r1, 0xD5 lsls r1, 6 movs r0, 0 @@ -4099,13 +4099,13 @@ _0816EFB6: movs r1, 0x78 movs r2, 0x58 movs r3, 0xF - bl AddObjectToFront + bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x67 - bl audio_play - ldr r1, =gUnknown_02020630 + bl PlaySE + ldr r1, =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 @@ -4519,7 +4519,7 @@ _0816F336: str r1, [sp] movs r2, 0 movs r3, 0 - bl SetSpriteTransformationMatrix + bl SetOamMatrix movs r0, 0x32 ldrsh r1, [r4, r0] lsls r0, r1, 1 @@ -4554,7 +4554,7 @@ _0816F386: b _0816F39A _0816F394: adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0816F39A: add sp, 0x4 pop {r4} @@ -4566,7 +4566,7 @@ _0816F39A: sub_816F3A4: @ 816F3A4 push {r4,lr} adds r4, r0, 0 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r1, 0x3C ldrsh r0, [r4, r1] lsls r1, r0, 4 @@ -4593,7 +4593,7 @@ sub_816F3A4: @ 816F3A4 strh r0, [r4, 0x22] adds r0, r4, 0 movs r1, 0x3 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0x80 lsls r0, 3 strh r0, [r4, 0x32] @@ -4618,7 +4618,7 @@ sub_816F3A4: @ 816F3A4 movs r1, 0x1 movs r2, 0x3 movs r3, 0x2 - bl CalcVecFromObjectCenterToObjectUpperLeft + bl CalcCenterToCornerVec b _0816F44C .pool _0816F420: @@ -4698,7 +4698,7 @@ sub_816F46C: @ 816F46C .pool _0816F4AC: ldrh r1, [r7, 0x36] - ldr r5, =gUnknown_08329F40 + ldr r5, =gSineTable lsls r0, r1, 24 lsrs r0, 23 adds r0, r5 @@ -4795,7 +4795,7 @@ _0816F550: adds r1, r4, 0 movs r2, 0 movs r3, 0 - bl SetSpriteTransformationMatrix + bl SetOamMatrix ldrh r0, [r7, 0x30] adds r0, 0x1 lsls r0, 24 @@ -4808,7 +4808,7 @@ _0816F550: str r6, [sp] mov r1, r8 mov r2, r9 - bl SetSpriteTransformationMatrix + bl SetOamMatrix ldrh r0, [r7, 0x30] adds r0, 0x2 lsls r0, 24 @@ -4821,7 +4821,7 @@ _0816F550: mov r1, r8 mov r2, r9 adds r3, r5, 0 - bl SetSpriteTransformationMatrix + bl SetOamMatrix _0816F59E: add sp, 0x4 pop {r3-r5} @@ -4849,7 +4849,7 @@ sub_816F5B4: @ 816F5B4 str r1, [sp] movs r2, 0 movs r3, 0 - bl SetSpriteTransformationMatrix + bl SetOamMatrix ldrh r0, [r4, 0x30] adds r0, 0x1 lsls r0, 24 @@ -4861,7 +4861,7 @@ sub_816F5B4: @ 816F5B4 str r1, [sp] movs r2, 0 movs r3, 0 - bl SetSpriteTransformationMatrix + bl SetOamMatrix ldrh r0, [r4, 0x30] adds r0, 0x2 lsls r0, 24 @@ -4873,7 +4873,7 @@ sub_816F5B4: @ 816F5B4 str r1, [sp] movs r2, 0 movs r3, 0 - bl SetSpriteTransformationMatrix + bl SetOamMatrix ldrh r1, [r4, 0x36] movs r2, 0x36 ldrsh r0, [r4, r2] @@ -4884,7 +4884,7 @@ sub_816F5B4: @ 816F5B4 strh r0, [r4, 0x36] ldrh r0, [r4, 0x36] adds r1, r0, 0 - ldr r2, =gUnknown_08329F40 + ldr r2, =gSineTable adds r0, 0x40 lsls r0, 24 lsrs r0, 23 @@ -4934,7 +4934,7 @@ sub_816F660: @ 816F660 ldrh r0, [r1, 0x36] adds r0, 0x8 strh r0, [r1, 0x36] - ldr r3, =gUnknown_08329F40 + ldr r3, =gSineTable lsls r0, 24 lsrs r0, 23 adds r0, r3 @@ -5017,7 +5017,7 @@ _0816F6E8: strh r0, [r4, 0x22] adds r0, r4, 0 movs r1, 0x3 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0x80 lsls r0, 3 strh r0, [r4, 0x32] @@ -5042,7 +5042,7 @@ _0816F6E8: movs r1, 0x1 movs r2, 0x3 movs r3, 0x2 - bl CalcVecFromObjectCenterToObjectUpperLeft + bl CalcCenterToCornerVec _0816F744: pop {r4} pop {r0} @@ -5083,7 +5083,7 @@ _0816F768: strh r0, [r4, 0x22] adds r0, r4, 0 movs r1, 0x3 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0x80 lsls r0, 3 strh r0, [r4, 0x32] @@ -5108,7 +5108,7 @@ _0816F768: movs r1, 0x1 movs r2, 0x3 movs r3, 0x2 - bl CalcVecFromObjectCenterToObjectUpperLeft + bl CalcCenterToCornerVec _0816F7C4: pop {r4} pop {r0} @@ -5153,10 +5153,10 @@ sub_816F7D0: @ 816F7D0 adds r1, r4, 0 adds r2, r5, 0 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites mov r9, r2 lsls r0, r7, 4 adds r0, r7 @@ -5196,10 +5196,10 @@ sub_816F7D0: @ 816F7D0 movs r1, 0 movs r2, 0x2 movs r3, 0x2 - bl CalcVecFromObjectCenterToObjectUpperLeft + bl CalcCenterToCornerVec adds r0, r4, 0 movs r1, 0x2 - bl StartObjectImageAnim + bl StartSpriteAnim mov r1, r8 cmp r1, 0 bne _0816F898 @@ -5229,10 +5229,10 @@ _0816F8A0: mov r1, r10 mov r2, r8 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites lsls r4, r7, 4 adds r4, r7 lsls r4, 2 @@ -5262,8 +5262,8 @@ _0816F8A0: movs r1, 0 movs r2, 0x2 movs r3, 0x2 - bl CalcVecFromObjectCenterToObjectUpperLeft - ldr r2, =gUnknown_0202064C + bl CalcCenterToCornerVec + ldr r2, =gSprites + 0x1C adds r4, r2 ldr r0, =sub_816F3A4 str r0, [r4] @@ -5271,7 +5271,7 @@ _0816F8A0: mov r1, r10 mov r2, r8 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r4, r7, 4 @@ -5287,7 +5287,7 @@ _0816F8A0: strh r2, [r5, 0x30] adds r0, r5, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim ldrb r0, [r5, 0x1] movs r1, 0x3 orrs r0, r1 @@ -5304,8 +5304,8 @@ _0816F8A0: movs r1, 0 movs r2, 0x2 movs r3, 0x2 - bl CalcVecFromObjectCenterToObjectUpperLeft - ldr r0, =gUnknown_0202064C + bl CalcCenterToCornerVec + ldr r0, =gSprites + 0x1C adds r4, r0 ldr r1, =sub_816F3A4 str r1, [r4] @@ -5320,7 +5320,7 @@ _0816F8A0: adds r1, r4, 0 movs r2, 0 movs r3, 0 - bl SetSpriteTransformationMatrix + bl SetOamMatrix mov r0, r9 lsls r0, 24 lsrs r0, 24 @@ -5329,7 +5329,7 @@ _0816F8A0: adds r1, r4, 0 movs r2, 0 movs r3, 0 - bl SetSpriteTransformationMatrix + bl SetOamMatrix mov r1, r8 lsls r1, 24 lsrs r1, 24 @@ -5341,7 +5341,7 @@ _0816F8A0: adds r1, r4, 0 movs r2, 0 movs r3, 0 - bl SetSpriteTransformationMatrix + bl SetOamMatrix ldr r0, [sp, 0x10] add sp, 0x14 pop {r3-r5} @@ -5378,14 +5378,14 @@ _0816F9F0: _0816FA04: adds r0, r4, 0 movs r1, 0 - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent ldrh r0, [r4, 0x20] subs r0, 0x1 b _0816FA60 _0816FA12: adds r0, r4, 0 movs r1, 0 - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent ldr r0, =gUnknown_030062A0 ldr r0, [r0] movs r1, 0x7 @@ -5586,7 +5586,7 @@ _0816FB7C: strb r1, [r2] adds r0, r6, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim b _0816FCE6 _0816FB94: ldr r0, =gUnknown_030062A0 @@ -5735,7 +5735,7 @@ _0816FCC4: bne _0816FD38 adds r0, r6, 0 movs r1, 0x2 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim ldrb r1, [r6, 0x1] movs r0, 0xD negs r0, r0 @@ -5783,7 +5783,7 @@ _0816FD24: cmp r0, 0 beq _0816FD38 adds r0, r6, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0816FD38: pop {r4-r6} pop {r0} @@ -5831,7 +5831,7 @@ _0816FD7C: bne _0816FDB0 adds r0, r4, 0 movs r1, 0x3 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim _0816FD90: ldrh r0, [r4, 0x2E] adds r0, 0x1 @@ -5847,7 +5847,7 @@ _0816FD9C: cmp r0, 0 beq _0816FDB0 adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0816FDB0: pop {r4} pop {r0} @@ -5890,13 +5890,13 @@ _0816FDD2: ldr r0, =gUnknown_085E4F5C asrs r2, 16 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 lsls r4, r6, 4 adds r4, r6 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 movs r1, 0 strh r1, [r4, 0x2E] @@ -5932,10 +5932,10 @@ _0816FDD2: adds r5, r3 ldrb r1, [r5] adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r4, 0 movs r1, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 @@ -5948,13 +5948,13 @@ _0816FDD2: asrs r2, 16 movs r1, 0x78 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 4 adds r0, r6 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 movs r2, 0 strh r2, [r0, 0x2E] @@ -5975,7 +5975,7 @@ _0816FDD2: orrs r1, r2 strb r1, [r0, 0x3] movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim adds r0, r6, 0 add sp, 0xC pop {r3-r5} @@ -6000,7 +6000,7 @@ sub_816FEDC: @ 816FEDC ldrsh r0, [r4, r1] cmp r0, 0 beq _0816FF48 - ldr r2, =gUnknown_08329F40 + ldr r2, =gSineTable ldrh r1, [r4, 0x32] lsls r0, r1, 24 lsrs r0, 23 @@ -6045,7 +6045,7 @@ _0816FF38: adds r3, r5, 0 str r1, [sp] movs r0, 0x1 - bl SetSpriteTransformationMatrix + bl SetOamMatrix _0816FF48: movs r2, 0x2E ldrsh r0, [r4, r2] @@ -6071,7 +6071,7 @@ _0816FF58: movs r1, 0x1 movs r2, 0x3 movs r3, 0x3 - bl CalcVecFromObjectCenterToObjectUpperLeft + bl CalcCenterToCornerVec adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] @@ -6207,7 +6207,7 @@ _08170056: movs r1, 0 movs r2, 0x3 movs r3, 0x3 - bl CalcVecFromObjectCenterToObjectUpperLeft + bl CalcCenterToCornerVec movs r0, 0 strh r0, [r5, 0x30] movs r0, 0x1 @@ -6239,7 +6239,7 @@ _081700A6: adds r0, r1, 0x1 strh r0, [r5, 0x30] _081700BE: - ldr r1, =gUnknown_08329F40 + ldr r1, =gSineTable ldrh r0, [r5, 0x30] lsls r0, 24 lsrs r0, 23 @@ -6259,7 +6259,7 @@ _081700BE: movs r0, 0x12 movs r2, 0 movs r3, 0 - bl SetSpriteTransformationMatrix + bl SetOamMatrix add sp, 0x4 pop {r4,r5} pop {r0} diff --git a/asm/intro_credits_graphics.s b/asm/intro_credits_graphics.s index 9748ca4b57..ad249a470f 100644 --- a/asm/intro_credits_graphics.s +++ b/asm/intro_credits_graphics.s @@ -70,7 +70,7 @@ _0817B11E: ldr r1, =gUnknown_0203BD28 movs r0, 0 strh r0, [r1] - ldr r1, =gUnknown_0300301C + ldr r1, =gReservedSpritePaletteCount movs r0, 0x8 strb r0, [r1] pop {r4} @@ -258,7 +258,7 @@ _0817B334: bl LoadPalette bl sub_817B7A4 _0817B370: - ldr r1, =gUnknown_0300301C + ldr r1, =gReservedSpritePaletteCount movs r0, 0x8 strb r0, [r1] ldr r1, =gUnknown_0203BD28 @@ -581,7 +581,7 @@ sub_817B62C: @ 817B62C cmp r0, 0 beq _0817B64C adds r0, r2, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite b _0817B690 .pool _0817B64C: @@ -642,7 +642,7 @@ sub_817B698: @ 817B698 movs r7, 0 cmp r7, r8 bcs _0817B74E - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r10, r0 movs r2, 0x3F mov r9, r2 @@ -654,7 +654,7 @@ _0817B6C2: ldrb r2, [r6, 0x2] ldrb r3, [r6, 0x3] ldr r0, =gUnknown_085F504C - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r5, r0, 4 @@ -668,7 +668,7 @@ _0817B6C2: lsrs r2, 6 adds r0, r4, 0 movs r3, 0 - bl CalcVecFromObjectCenterToObjectUpperLeft + bl CalcCenterToCornerVec ldrb r3, [r4, 0x5] movs r0, 0xC orrs r3, r0 @@ -693,7 +693,7 @@ _0817B6C2: movs r0, 0xF ands r3, r0 strb r3, [r4, 0x5] - ldr r0, =gUnknown_02020638 + ldr r0, =gSprites + 8 adds r5, r0 ldr r2, [sp, 0x8] str r2, [r5] @@ -701,7 +701,7 @@ _0817B6C2: lsls r1, 28 lsrs r1, 28 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim movs r1, 0 mov r0, sp ldrh r0, [r0] @@ -773,7 +773,7 @@ nullsub_65: @ 817B7C0 thumb_func_start sub_817B7C4 sub_817B7C4: @ 817B7C4 push {r4,lr} - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites movs r1, 0x2E ldrsh r2, [r0, r1] lsls r1, r2, 4 @@ -841,7 +841,7 @@ sub_817B834: @ 817B834 adds r1, r5, 0 adds r2, r4, 0 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 @@ -852,10 +852,10 @@ sub_817B834: @ 817B834 adds r1, r5, 0 adds r2, r4, 0 movs r3, 0x3 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -881,7 +881,7 @@ sub_817B88C: @ 817B88C adds r1, r5, 0 adds r2, r4, 0 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 @@ -892,10 +892,10 @@ sub_817B88C: @ 817B88C adds r1, r5, 0 adds r2, r4, 0 movs r3, 0x3 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -916,7 +916,7 @@ nullsub_66: @ 817B8E4 thumb_func_start sub_817B8E8 sub_817B8E8: @ 817B8E8 push {r4,lr} - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites movs r1, 0x2E ldrsh r2, [r0, r1] lsls r1, r2, 4 @@ -984,7 +984,7 @@ sub_817B948: @ 817B948 adds r1, r2, 0 adds r2, r5, 0 movs r3, 0x5 - bl AddObjectToFront + bl CreateSprite adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 @@ -995,17 +995,17 @@ sub_817B948: @ 817B948 adds r1, r4, 0 adds r2, r5, 0 movs r3, 0x6 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites lsls r4, r0, 4 adds r4, r0 lsls r4, 2 adds r0, r4, r5 strh r6, [r0, 0x2E] movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim adds r5, 0x1C adds r4, r5 ldr r0, =sub_817B8E8 @@ -1039,7 +1039,7 @@ sub_817B9C4: @ 817B9C4 adds r1, r2, 0 adds r2, r5, 0 movs r3, 0x5 - bl AddObjectToFront + bl CreateSprite adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 @@ -1050,17 +1050,17 @@ sub_817B9C4: @ 817B9C4 adds r1, r4, 0 adds r2, r5, 0 movs r3, 0x6 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites lsls r4, r0, 4 adds r4, r0 lsls r4, 2 adds r0, r4, r5 strh r6, [r0, 0x2E] movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim adds r5, 0x1C adds r4, r5 ldr r0, =sub_817B8E8 diff --git a/asm/item.s b/asm/item.s index fcc7eb6a8f..97582e190e 100644 --- a/asm/item.s +++ b/asm/item.s @@ -5,387 +5,9 @@ .text - thumb_func_start decrypt_bag_item_quantity -decrypt_bag_item_quantity: @ 80D6554 - adds r1, r0, 0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xAC - ldr r0, [r0] - ldrh r1, [r1] - eors r0, r1 - lsls r0, 16 - lsrs r0, 16 - bx lr - .pool - thumb_func_end decrypt_bag_item_quantity - thumb_func_start encrypt_bag_item_quantity -encrypt_bag_item_quantity: @ 80D656C - lsls r1, 16 - lsrs r1, 16 - ldr r2, =gSaveBlock2Ptr - ldr r2, [r2] - adds r2, 0xAC - ldr r2, [r2] - eors r1, r2 - strh r1, [r0] - bx lr - .pool - thumb_func_end encrypt_bag_item_quantity - - thumb_func_start sub_80D6584 -sub_80D6584: @ 80D6584 - ldrh r0, [r0] - bx lr - thumb_func_end sub_80D6584 - - thumb_func_start sub_80D6588 -sub_80D6588: @ 80D6588 - strh r1, [r0] - bx lr - thumb_func_end sub_80D6588 - - thumb_func_start encrypt_decrypt_all_item_quantities -encrypt_decrypt_all_item_quantities: @ 80D658C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - mov r8, r0 - movs r1, 0 - ldr r0, =gUnknown_02039DD8 - mov r9, r0 -_080D659E: - movs r6, 0 - lsls r5, r1, 3 - mov r2, r9 - adds r0, r5, r2 - adds r7, r1, 0x1 - ldrb r0, [r0, 0x4] - cmp r6, r0 - bcs _080D65CC - ldr r2, =gUnknown_02039DD8 -_080D65B0: - adds r4, r5, r2 - lsls r1, r6, 2 - ldr r0, [r4] - adds r0, r1 - adds r0, 0x2 - mov r1, r8 - str r2, [sp] - bl apply_u16_xor_crypto - adds r6, 0x1 - ldr r2, [sp] - ldrb r4, [r4, 0x4] - cmp r6, r4 - bcc _080D65B0 -_080D65CC: - adds r1, r7, 0 - cmp r1, 0x4 - bls _080D659E - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end encrypt_decrypt_all_item_quantities - - thumb_func_start call_encrypt_decrypt_all_item_quantities -call_encrypt_decrypt_all_item_quantities: @ 80D65E4 - push {lr} - bl encrypt_decrypt_all_item_quantities - pop {r0} - bx r0 - thumb_func_end call_encrypt_decrypt_all_item_quantities - - thumb_func_start init_bag_pockets -@ void init_bag_pockets() -init_bag_pockets: @ 80D65F0 - push {r4,lr} - ldr r1, =gUnknown_02039DD8 - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - movs r3, 0xAC - lsls r3, 3 - adds r0, r2, r3 - str r0, [r1] - movs r3, 0x1E - strb r3, [r1, 0x4] - movs r4, 0xBB - lsls r4, 3 - adds r0, r2, r4 - str r0, [r1, 0x20] - adds r0, r1, 0 - adds r0, 0x24 - strb r3, [r0] - movs r3, 0xCA - lsls r3, 3 - adds r0, r2, r3 - str r0, [r1, 0x8] - movs r0, 0x10 - strb r0, [r1, 0xC] - adds r4, 0xB8 - adds r0, r2, r4 - str r0, [r1, 0x10] - movs r0, 0x40 - strb r0, [r1, 0x14] - movs r0, 0xF2 - lsls r0, 3 - adds r2, r0 - str r2, [r1, 0x18] - movs r0, 0x2E - strb r0, [r1, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end init_bag_pockets - - thumb_func_start itemid_get_name -@ void itemid_get_name(int item_id, char *dest) -itemid_get_name: @ 80D6644 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 16 - lsrs r0, 16 - bl itemid_get_item - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - thumb_func_end itemid_get_name - - thumb_func_start sub_80D6660 -sub_80D6660: @ 80D6660 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 16 - lsrs r3, r0, 16 - adds r1, r3, 0 - cmp r3, 0x4 - bne _080D668C - cmp r2, 0x1 - bhi _080D667C - movs r0, 0x4 - bl itemid_get_item - adds r1, r0, 0 - b _080D667E -_080D667C: - ldr r1, =gUnknown_085EFCD4 -_080D667E: - adds r0, r4, 0 - bl StringCopy - b _080D66BE - .pool -_080D668C: - adds r0, r3, 0 - subs r0, 0x85 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2A - bhi _080D66B0 - lsls r1, r3, 3 - subs r1, r3 - lsls r1, 2 - ldr r0, =gUnknown_085897E4 - adds r1, r0 - adds r0, r4, 0 - bl GetBerryCountString - b _080D66BE - .pool -_080D66B0: - adds r0, r1, 0 - bl itemid_get_item - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy -_080D66BE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D6660 - - thumb_func_start GetBerryCountString -@ void GetBerryCountString(struct berry_info *berryInfo, u8 *dest, u32 berryCount) -GetBerryCountString: @ 80D66C4 - push {r4,lr} - ldr r4, =gUnknown_085EFCE5 - cmp r2, 0x1 - bhi _080D66CE - ldr r4, =gUnknown_085EFCDF -_080D66CE: - bl StringCopy - movs r1, 0 - strb r1, [r0] - adds r0, 0x1 - adds r1, r4, 0 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end GetBerryCountString - - thumb_func_start IsBagPocketNonEmpty -@ bool8 IsBagPocketNonEmpty(u8 pocketId) -IsBagPocketNonEmpty: @ 80D66EC - push {lr} - lsls r0, 24 - movs r2, 0 - ldr r1, =gUnknown_02039DD8 - lsrs r0, 21 - subs r0, 0x8 - adds r0, r1 - ldrb r1, [r0, 0x4] - cmp r2, r1 - bcs _080D671E - ldr r3, [r0] -_080D6702: - lsls r0, r2, 2 - adds r0, r3 - ldrh r0, [r0] - cmp r0, 0 - beq _080D6714 - movs r0, 0x1 - b _080D6720 - .pool -_080D6714: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r1 - bcc _080D6702 -_080D671E: - movs r0, 0 -_080D6720: - pop {r1} - bx r1 - thumb_func_end IsBagPocketNonEmpty - - thumb_func_start sub_80D6724 -sub_80D6724: @ 80D6724 - push {r4-r7,lr} - lsls r0, 16 - lsrs r7, r0, 16 - lsls r1, 16 - lsrs r5, r1, 16 - adds r0, r7, 0 - bl itemid_get_pocket_number - lsls r0, 24 - cmp r0, 0 - beq _080D67B6 - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - bne _080D6752 - ldr r0, =0x00004004 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080D6768 -_080D6752: - adds r0, r7, 0 - adds r1, r5, 0 - bl sub_80D710C - lsls r0, 24 - lsrs r0, 24 - b _080D67B8 - .pool -_080D6764: - movs r0, 0x1 - b _080D67B8 -_080D6768: - adds r0, r7, 0 - bl itemid_get_pocket_number - subs r0, 0x1 - lsls r0, 24 - movs r6, 0 - ldr r1, =gUnknown_02039DD8 - lsrs r4, r0, 21 - b _080D67AE - .pool -_080D6780: - adds r0, r4, r1 - ldr r1, [r0] - lsls r0, r6, 2 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r0, r7 - bne _080D67A6 - adds r0, r1, 0x2 - bl decrypt_bag_item_quantity - lsls r0, 16 - lsrs r0, 16 - cmp r0, r5 - bcs _080D6764 - subs r0, r5, r0 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _080D6764 -_080D67A6: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, =gUnknown_02039DD8 -_080D67AE: - adds r0, r4, r1 - ldrb r0, [r0, 0x4] - cmp r6, r0 - bcc _080D6780 -_080D67B6: - movs r0, 0 -_080D67B8: - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80D6724 - - thumb_func_start sub_80D67C4 -sub_80D67C4: @ 80D67C4 - push {r4,lr} - movs r4, 0x85 -_080D67C8: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80D6724 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1 - bne _080D67E4 - ldr r0, =gUnknown_020375F0 - strh r1, [r0] - movs r0, 0x1 - b _080D67F6 - .pool -_080D67E4: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xB2 - bls _080D67C8 - ldr r1, =gUnknown_020375F0 - movs r0, 0 - strh r0, [r1] - movs r0, 0 -_080D67F6: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80D67C4 - - thumb_func_start sub_80D6800 -sub_80D6800: @ 80D6800 + thumb_func_start CheckBagHasSpace +CheckBagHasSpace: @ 80D6800 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -397,7 +19,7 @@ sub_80D6800: @ 80D6800 mov r8, r0 lsls r1, 16 lsrs r5, r1, 16 - bl itemid_get_pocket_number + bl ItemId_GetPocket lsls r0, 24 cmp r0, 0 beq _080D6906 @@ -414,14 +36,14 @@ sub_80D6800: @ 80D6800 _080D6838: mov r0, r8 adds r1, r5, 0 - bl sub_80D7184 + bl CheckPyramidBagHasSpace lsls r0, 24 lsrs r0, 24 b _080D6916 .pool _080D684C: mov r0, r8 - bl itemid_get_pocket_number + bl ItemId_GetPocket subs r0, 0x1 lsls r0, 24 lsrs r2, r0, 24 @@ -431,7 +53,7 @@ _080D684C: movs r7, 0x63 _080D6860: movs r6, 0 - ldr r1, =gUnknown_02039DD8 + ldr r1, =gBagPockets lsls r4, r2, 3 adds r0, r4, r1 mov r9, r4 @@ -452,7 +74,7 @@ _080D6878: bne _080D68AC adds r0, r1, 0x2 str r2, [sp] - bl decrypt_bag_item_quantity + bl GetBagItemQuantity lsls r0, 16 lsrs r1, r0, 16 adds r0, r1, r5 @@ -472,7 +94,7 @@ _080D68AC: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 - ldr r1, =gUnknown_02039DD8 + ldr r1, =gBagPockets adds r0, r4, r1 ldrb r0, [r0, 0x4] cmp r6, r0 @@ -481,7 +103,7 @@ _080D68BC: cmp r5, 0 beq _080D6914 movs r6, 0 - ldr r3, =gUnknown_02039DD8 + ldr r3, =gBagPockets mov r1, r9 adds r0, r1, r3 ldrb r0, [r0, 0x4] @@ -533,11 +155,11 @@ _080D6916: pop {r4-r7} pop {r1} bx r1 - thumb_func_end sub_80D6800 + thumb_func_end CheckBagHasSpace - thumb_func_start bag_add_item -@ int bag_add_item(int item_id, int quantity) -bag_add_item: @ 80D6928 + thumb_func_start AddBagItem +@ int AddBagItem(int item_id, int quantity) +AddBagItem: @ 80D6928 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -549,7 +171,7 @@ bag_add_item: @ 80D6928 mov r9, r0 lsls r1, 16 lsrs r5, r1, 16 - bl itemid_get_pocket_number + bl ItemId_GetPocket lsls r0, 24 cmp r0, 0 bne _080D694C @@ -569,20 +191,20 @@ _080D694C: _080D6964: mov r0, r9 adds r1, r5, 0 - bl sub_80D7204 + bl AddPyramidBagItem lsls r0, 24 lsrs r0, 24 b _080D6A92 .pool _080D6978: mov r0, r9 - bl itemid_get_pocket_number + bl ItemId_GetPocket subs r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r1, r0, 3 - ldr r0, =gUnknown_02039DD8 + ldr r0, =gBagPockets adds r7, r1, r0 ldrb r0, [r7, 0x4] lsls r0, 2 @@ -617,7 +239,7 @@ _080D69BC: adds r4, r1, 0x2 adds r0, r4, 0 str r2, [sp, 0x4] - bl decrypt_bag_item_quantity + bl GetBagItemQuantity lsls r0, 16 lsrs r0, 16 adds r1, r0, r5 @@ -633,7 +255,7 @@ _080D69BC: lsrs r5, r0, 16 adds r0, r4, 0 adds r1, r2, 0 - bl encrypt_bag_item_quantity + bl SetBagItemQuantity ldr r2, [sp, 0x4] cmp r5, 0 beq _080D6A7E @@ -667,7 +289,7 @@ _080D6A18: bhi _080D6A40 adds r0, r1, 0x2 adds r1, r5, 0 - bl encrypt_bag_item_quantity + bl SetBagItemQuantity b _080D6A7E .pool _080D6A40: @@ -679,7 +301,7 @@ _080D6A40: adds r0, r1, 0x2 adds r1, r2, 0 str r2, [sp, 0x4] - bl encrypt_bag_item_quantity + bl SetBagItemQuantity ldr r2, [sp, 0x4] _080D6A56: adds r0, r6, 0x1 @@ -696,7 +318,7 @@ _080D6A68: lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 - bl encrypt_bag_item_quantity + bl SetBagItemQuantity b _080D6A7E _080D6A74: mov r0, r8 @@ -721,11 +343,11 @@ _080D6A92: pop {r4-r7} pop {r1} bx r1 - thumb_func_end bag_add_item + thumb_func_end AddBagItem - thumb_func_start remove_item + thumb_func_start RemoveBagItem @ pokescrcmd -remove_item: @ 80D6AA4 +RemoveBagItem: @ 80D6AA4 push {r4-r7,lr} mov r7, r9 mov r6, r8 @@ -736,7 +358,7 @@ remove_item: @ 80D6AA4 lsls r1, 16 lsrs r7, r1, 16 movs r4, 0 - bl itemid_get_pocket_number + bl ItemId_GetPocket lsls r0, 24 cmp r0, 0 beq _080D6B38 @@ -756,20 +378,20 @@ remove_item: @ 80D6AA4 _080D6AE0: mov r0, r8 adds r1, r7, 0 - bl sub_80D7334 + bl RemovePyramidBagItem lsls r0, 24 lsrs r0, 24 b _080D6C5A .pool _080D6AF4: mov r0, r8 - bl itemid_get_pocket_number + bl ItemId_GetPocket subs r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r1, r0, 3 - ldr r0, =gUnknown_02039DD8 + ldr r0, =gBagPockets adds r5, r1, r0 movs r6, 0 ldrb r2, [r5, 0x4] @@ -783,7 +405,7 @@ _080D6B10: cmp r0, r8 bne _080D6B28 adds r0, r1, 0x2 - bl decrypt_bag_item_quantity + bl GetBagItemQuantity adds r0, r4, r0 lsls r0, 16 lsrs r4, r0, 16 @@ -838,7 +460,7 @@ _080D6B70: cmp r0, r8 bne _080D6BE6 adds r0, r2, 0x2 - bl decrypt_bag_item_quantity + bl GetBagItemQuantity lsls r0, 16 lsrs r1, r0, 16 cmp r1, r7 @@ -849,7 +471,7 @@ _080D6B70: subs r1, r7 lsls r1, 16 lsrs r1, 16 - bl encrypt_bag_item_quantity + bl SetBagItemQuantity movs r7, 0 b _080D6BCA .pool @@ -861,12 +483,12 @@ _080D6BB8: adds r0, r4 adds r0, 0x2 movs r1, 0 - bl encrypt_bag_item_quantity + bl SetBagItemQuantity _080D6BCA: ldr r0, [r5] adds r0, r4 adds r0, 0x2 - bl decrypt_bag_item_quantity + bl GetBagItemQuantity lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0 @@ -891,7 +513,7 @@ _080D6BEE: cmp r0, r8 bne _080D6C4C adds r0, r2, 0x2 - bl decrypt_bag_item_quantity + bl GetBagItemQuantity lsls r0, 16 lsrs r1, r0, 16 cmp r1, r7 @@ -902,7 +524,7 @@ _080D6BEE: subs r1, r7 lsls r1, 16 lsrs r1, 16 - bl encrypt_bag_item_quantity + bl SetBagItemQuantity movs r7, 0 b _080D6C30 _080D6C1E: @@ -913,12 +535,12 @@ _080D6C1E: adds r0, r4 adds r0, 0x2 movs r1, 0 - bl encrypt_bag_item_quantity + bl SetBagItemQuantity _080D6C30: ldr r0, [r5] adds r0, r4 adds r0, 0x2 - bl decrypt_bag_item_quantity + bl GetBagItemQuantity lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0 @@ -945,22 +567,22 @@ _080D6C5A: pop {r4-r7} pop {r1} bx r1 - thumb_func_end remove_item + thumb_func_end RemoveBagItem - thumb_func_start sub_80D6C68 -sub_80D6C68: @ 80D6C68 + thumb_func_start GetPocketByItemId +GetPocketByItemId: @ 80D6C68 push {lr} lsls r0, 16 lsrs r0, 16 - bl itemid_get_pocket_number + bl ItemId_GetPocket lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 - thumb_func_end sub_80D6C68 + thumb_func_end GetPocketByItemId - thumb_func_start sub_80D6C7C -sub_80D6C7C: @ 80D6C7C + thumb_func_start ClearItemSlots +ClearItemSlots: @ 80D6C7C push {r4-r7,lr} adds r6, r0, 0 lsls r1, 24 @@ -976,7 +598,7 @@ _080D6C8E: strh r7, [r0] adds r0, 0x2 movs r1, 0 - bl encrypt_bag_item_quantity + bl SetBagItemQuantity adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 @@ -986,7 +608,7 @@ _080D6CA6: pop {r4-r7} pop {r0} bx r0 - thumb_func_end sub_80D6C7C + thumb_func_end ClearItemSlots thumb_func_start sub_80D6CAC sub_80D6CAC: @ 80D6CAC @@ -1076,7 +698,7 @@ _080D6D28: adds r0, r1, r2 ldr r1, =0x0000049a adds r0, r1 - bl sub_80D6584 + bl GetBagItemId lsls r0, 16 lsrs r0, 16 cmp r0, r5 @@ -1127,7 +749,7 @@ _080D6D9C: bne _080D6DD0 adds r4, r1, 0x2 adds r0, r4, 0 - bl sub_80D6584 + bl GetBagItemId lsls r0, 16 lsrs r2, r0, 16 adds r1, r2, r5 @@ -1141,7 +763,7 @@ _080D6D9C: lsrs r5, r0, 16 adds r0, r4, 0 adds r1, r3, 0 - bl sub_80D6588 + bl SetBagItemId cmp r5, 0 beq _080D6E20 _080D6DD0: @@ -1168,7 +790,7 @@ _080D6E04: lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 - bl sub_80D6588 + bl SetBagItemId b _080D6E20 _080D6E10: lsls r0, r1, 2 @@ -1177,7 +799,7 @@ _080D6E10: strh r1, [r0] adds r0, 0x2 adds r1, r5, 0 - bl sub_80D6588 + bl SetBagItemId _080D6E20: ldr r0, =gSaveBlock1Ptr ldr r0, [r0] @@ -1309,12 +931,12 @@ _080D6F0E: bx r0 thumb_func_end sub_80D6EDC - thumb_func_start bag_pocket_get_itemid -@ int bag_pocket_get_itemid(int pocket_id_plus_1, int item_index_in_pocket) -bag_pocket_get_itemid: @ 80D6F14 + thumb_func_start BagGetItemIdByPocketPosition +@ int BagGetItemIdByPocketPosition(int pocket_id_plus_1, int item_index_in_pocket) +BagGetItemIdByPocketPosition: @ 80D6F14 lsls r0, 24 lsls r1, 16 - ldr r2, =gUnknown_02039DD8 + ldr r2, =gBagPockets lsrs r0, 21 subs r0, 0x8 adds r0, r2 @@ -1324,15 +946,15 @@ bag_pocket_get_itemid: @ 80D6F14 ldrh r0, [r1] bx lr .pool - thumb_func_end bag_pocket_get_itemid + thumb_func_end BagGetItemIdByPocketPosition - thumb_func_start bag_pocket_get_item_quantity -@ int bag_pocket_get_item_quantity(int pocket_id_plus_1, int item_index_in_pocket) -bag_pocket_get_item_quantity: @ 80D6F30 + thumb_func_start BagGetQuantityByPocketPosition +@ int BagGetQuantityByPocketPosition(int pocket_id_plus_1, int item_index_in_pocket) +BagGetQuantityByPocketPosition: @ 80D6F30 push {lr} lsls r0, 24 lsls r1, 16 - ldr r2, =gUnknown_02039DD8 + ldr r2, =gBagPockets lsrs r0, 21 subs r0, 0x8 adds r0, r2 @@ -1340,13 +962,13 @@ bag_pocket_get_item_quantity: @ 80D6F30 ldr r0, [r0] adds r0, r1 adds r0, 0x2 - bl decrypt_bag_item_quantity + bl GetBagItemQuantity lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 .pool - thumb_func_end bag_pocket_get_item_quantity + thumb_func_end BagGetQuantityByPocketPosition thumb_func_start swap32 swap32: @ 80D6F58 @@ -1375,7 +997,7 @@ _080D6F7A: ldr r0, [r6] adds r0, r5 adds r0, 0x2 - bl decrypt_bag_item_quantity + bl GetBagItemQuantity lsls r0, 16 cmp r0, 0 bne _080D6F96 @@ -1424,7 +1046,7 @@ _080D6FCE: ldr r0, [r6] adds r0, r7 adds r0, 0x2 - bl decrypt_bag_item_quantity + bl GetBagItemQuantity lsls r0, 16 lsls r4, r5, 2 cmp r0, 0 @@ -1432,7 +1054,7 @@ _080D6FCE: ldr r0, [r6] adds r0, r4 adds r0, 0x2 - bl decrypt_bag_item_quantity + bl GetBagItemQuantity lsls r0, 16 cmp r0, 0 beq _080D7008 @@ -1531,17 +1153,17 @@ _080D708C: bx r0 thumb_func_end sub_80D702C - thumb_func_start sub_80D7094 -sub_80D7094: @ 80D7094 + thumb_func_start ClearBag +ClearBag: @ 80D7094 push {r4,r5,lr} movs r4, 0 - ldr r5, =gUnknown_02039DD8 + ldr r5, =gBagPockets _080D709A: lsls r1, r4, 3 adds r1, r5 ldr r0, [r1] ldrb r1, [r1, 0x4] - bl sub_80D6C7C + bl ClearItemSlots adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 @@ -1551,7 +1173,7 @@ _080D709A: pop {r0} bx r0 .pool - thumb_func_end sub_80D7094 + thumb_func_end ClearBag thumb_func_start CountTotalItemQuantityInBag @ u16 CountTotalItemQuantityInBag(u16 itemId) @@ -1561,7 +1183,7 @@ CountTotalItemQuantityInBag: @ 80D70BC lsrs r6, r0, 16 movs r7, 0 adds r0, r6, 0 - bl itemid_get_pocket_number + bl ItemId_GetPocket lsls r0, 24 lsrs r0, 21 ldr r1, =gUnknown_02039DD0 @@ -1578,7 +1200,7 @@ _080D70DA: cmp r0, r6 bne _080D70F2 adds r0, r1, 0x2 - bl decrypt_bag_item_quantity + bl GetBagItemQuantity adds r0, r7, r0 lsls r0, 16 lsrs r7, r0, 16 @@ -1597,8 +1219,8 @@ _080D70FE: .pool thumb_func_end CountTotalItemQuantityInBag - thumb_func_start sub_80D710C -sub_80D710C: @ 80D710C + thumb_func_start CheckPyramidBagHasItem +CheckPyramidBagHasItem: @ 80D710C push {r4,r5,lr} lsls r0, 16 lsrs r5, r0, 16 @@ -1655,10 +1277,10 @@ _080D717C: pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_80D710C + thumb_func_end CheckPyramidBagHasItem - thumb_func_start sub_80D7184 -sub_80D7184: @ 80D7184 + thumb_func_start CheckPyramidBagHasSpace +CheckPyramidBagHasSpace: @ 80D7184 push {r4,r5,lr} lsls r0, 16 lsrs r5, r0, 16 @@ -1719,10 +1341,10 @@ _080D71FC: pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_80D7184 + thumb_func_end CheckPyramidBagHasSpace - thumb_func_start sub_80D7204 -sub_80D7204: @ 80D7204 + thumb_func_start AddPyramidBagItem +AddPyramidBagItem: @ 80D7204 push {r4-r7,lr} mov r7, r9 mov r6, r8 @@ -1866,10 +1488,10 @@ _080D7326: pop {r4-r7} pop {r1} bx r1 - thumb_func_end sub_80D7204 + thumb_func_end AddPyramidBagItem - thumb_func_start sub_80D7334 -sub_80D7334: @ 80D7334 + thumb_func_start RemovePyramidBagItem +RemovePyramidBagItem: @ 80D7334 push {r4-r7,lr} mov r7, r9 mov r6, r8 @@ -2006,10 +1628,10 @@ _080D744E: pop {r4-r7} pop {r1} bx r1 - thumb_func_end sub_80D7334 + thumb_func_end RemovePyramidBagItem - thumb_func_start itemid_sanitize -itemid_sanitize: @ 80D745C + thumb_func_start SanitizeItemId +SanitizeItemId: @ 80D745C push {lr} lsls r0, 16 lsrs r1, r0, 16 @@ -2024,15 +1646,15 @@ _080D746E: _080D7470: pop {r1} bx r1 - thumb_func_end itemid_sanitize + thumb_func_end SanitizeItemId - thumb_func_start itemid_get_item -@ item *itemid_get_item(s16 itemId) -itemid_get_item: @ 80D7474 + thumb_func_start ItemId_GetItem +@ item *ItemId_GetItem(s16 itemId) +ItemId_GetItem: @ 80D7474 push {lr} lsls r0, 16 lsrs r0, 16 - bl itemid_sanitize + bl SanitizeItemId lsls r0, 16 lsrs r0, 16 movs r1, 0x2C @@ -2042,7 +1664,7 @@ itemid_get_item: @ 80D7474 pop {r1} bx r1 .pool - thumb_func_end itemid_get_item + thumb_func_end ItemId_GetItem thumb_func_start itemid_get_number itemid_get_number: @ 80D7494 @@ -2050,7 +1672,7 @@ itemid_get_number: @ 80D7494 lsls r0, 16 lsrs r0, 16 ldr r4, =gItems - bl itemid_sanitize + bl SanitizeItemId lsls r0, 16 lsrs r0, 16 movs r1, 0x2C @@ -2069,7 +1691,7 @@ itemid_get_market_price: @ 80D74B8 lsls r0, 16 lsrs r0, 16 ldr r4, =gItems - bl itemid_sanitize + bl SanitizeItemId lsls r0, 16 lsrs r0, 16 movs r1, 0x2C @@ -2082,13 +1704,13 @@ itemid_get_market_price: @ 80D74B8 .pool thumb_func_end itemid_get_market_price - thumb_func_start itemid_get_x12 -itemid_get_x12: @ 80D74DC + thumb_func_start ItemId_GetHoldEffect +ItemId_GetHoldEffect: @ 80D74DC push {r4,lr} lsls r0, 16 lsrs r0, 16 ldr r4, =gItems - bl itemid_sanitize + bl SanitizeItemId lsls r0, 16 lsrs r0, 16 movs r1, 0x2C @@ -2099,15 +1721,15 @@ itemid_get_x12: @ 80D74DC pop {r1} bx r1 .pool - thumb_func_end itemid_get_x12 + thumb_func_end ItemId_GetHoldEffect - thumb_func_start itemid_get_quality -itemid_get_quality: @ 80D7500 + thumb_func_start ItemId_GetHoldEffectParam +ItemId_GetHoldEffectParam: @ 80D7500 push {r4,lr} lsls r0, 16 lsrs r0, 16 ldr r4, =gItems - bl itemid_sanitize + bl SanitizeItemId lsls r0, 16 lsrs r0, 16 movs r1, 0x2C @@ -2118,15 +1740,15 @@ itemid_get_quality: @ 80D7500 pop {r1} bx r1 .pool - thumb_func_end itemid_get_quality + thumb_func_end ItemId_GetHoldEffectParam - thumb_func_start itemid_get_description -itemid_get_description: @ 80D7524 + thumb_func_start ItemId_GetDescription +ItemId_GetDescription: @ 80D7524 push {r4,lr} lsls r0, 16 lsrs r0, 16 ldr r4, =gItems - bl itemid_sanitize + bl SanitizeItemId lsls r0, 16 lsrs r0, 16 movs r1, 0x2C @@ -2138,7 +1760,7 @@ itemid_get_description: @ 80D7524 pop {r1} bx r1 .pool - thumb_func_end itemid_get_description + thumb_func_end ItemId_GetDescription thumb_func_start itemid_is_unique itemid_is_unique: @ 80D7548 @@ -2146,7 +1768,7 @@ itemid_is_unique: @ 80D7548 lsls r0, 16 lsrs r0, 16 ldr r4, =gItems - bl itemid_sanitize + bl SanitizeItemId lsls r0, 16 lsrs r0, 16 movs r1, 0x2C @@ -2165,7 +1787,7 @@ itemid_get_x19: @ 80D756C lsls r0, 16 lsrs r0, 16 ldr r4, =gItems - bl itemid_sanitize + bl SanitizeItemId lsls r0, 16 lsrs r0, 16 movs r1, 0x2C @@ -2178,13 +1800,13 @@ itemid_get_x19: @ 80D756C .pool thumb_func_end itemid_get_x19 - thumb_func_start itemid_get_pocket_number -itemid_get_pocket_number: @ 80D7590 + thumb_func_start ItemId_GetPocket +ItemId_GetPocket: @ 80D7590 push {r4,lr} lsls r0, 16 lsrs r0, 16 ldr r4, =gItems - bl itemid_sanitize + bl SanitizeItemId lsls r0, 16 lsrs r0, 16 movs r1, 0x2C @@ -2195,15 +1817,15 @@ itemid_get_pocket_number: @ 80D7590 pop {r1} bx r1 .pool - thumb_func_end itemid_get_pocket_number + thumb_func_end ItemId_GetPocket - thumb_func_start itemid_get_type -itemid_get_type: @ 80D75B4 + thumb_func_start ItemId_GetType +ItemId_GetType: @ 80D75B4 push {r4,lr} lsls r0, 16 lsrs r0, 16 ldr r4, =gItems - bl itemid_sanitize + bl SanitizeItemId lsls r0, 16 lsrs r0, 16 movs r1, 0x2C @@ -2214,15 +1836,15 @@ itemid_get_type: @ 80D75B4 pop {r1} bx r1 .pool - thumb_func_end itemid_get_type + thumb_func_end ItemId_GetType - thumb_func_start itemid_get_overworld_function -itemid_get_overworld_function: @ 80D75D8 + thumb_func_start ItemId_GetFieldFunc +ItemId_GetFieldFunc: @ 80D75D8 push {r4,lr} lsls r0, 16 lsrs r0, 16 ldr r4, =gItems - bl itemid_sanitize + bl SanitizeItemId lsls r0, 16 lsrs r0, 16 movs r1, 0x2C @@ -2234,15 +1856,15 @@ itemid_get_overworld_function: @ 80D75D8 pop {r1} bx r1 .pool - thumb_func_end itemid_get_overworld_function + thumb_func_end ItemId_GetFieldFunc - thumb_func_start itemid_get_usage -itemid_get_usage: @ 80D75FC + thumb_func_start ItemId_GetBattleUsage +ItemId_GetBattleUsage: @ 80D75FC push {r4,lr} lsls r0, 16 lsrs r0, 16 ldr r4, =gItems - bl itemid_sanitize + bl SanitizeItemId lsls r0, 16 lsrs r0, 16 movs r1, 0x2C @@ -2254,15 +1876,15 @@ itemid_get_usage: @ 80D75FC pop {r1} bx r1 .pool - thumb_func_end itemid_get_usage + thumb_func_end ItemId_GetBattleUsage - thumb_func_start itemid_get_battle_function -itemid_get_battle_function: @ 80D7620 + thumb_func_start ItemId_GetBattleFunc +ItemId_GetBattleFunc: @ 80D7620 push {r4,lr} lsls r0, 16 lsrs r0, 16 ldr r4, =gItems - bl itemid_sanitize + bl SanitizeItemId lsls r0, 16 lsrs r0, 16 movs r1, 0x2C @@ -2274,15 +1896,15 @@ itemid_get_battle_function: @ 80D7620 pop {r1} bx r1 .pool - thumb_func_end itemid_get_battle_function + thumb_func_end ItemId_GetBattleFunc - thumb_func_start itemid_get_x28 -itemid_get_x28: @ 80D7644 + thumb_func_start ItemId_GetSecondaryId +ItemId_GetSecondaryId: @ 80D7644 push {r4,lr} lsls r0, 16 lsrs r0, 16 ldr r4, =gItems - bl itemid_sanitize + bl SanitizeItemId lsls r0, 16 lsrs r0, 16 movs r1, 0x2C @@ -2294,6 +1916,6 @@ itemid_get_x28: @ 80D7644 pop {r1} bx r1 .pool - thumb_func_end itemid_get_x28 + thumb_func_end ItemId_GetSecondaryId .align 2, 0 @ Don't pad with nop. diff --git a/asm/item_use.s b/asm/item_use.s index e98b359fae..4f9e9e65aa 100644 --- a/asm/item_use.s +++ b/asm/item_use.s @@ -25,7 +25,7 @@ SetUpItemUseCallback: @ 80FD060 .pool _080FD084: ldrh r0, [r1] - bl itemid_get_type + bl ItemId_GetType _080FD08A: subs r0, 0x1 lsls r0, 24 @@ -231,7 +231,7 @@ CheckIfItemIsTMHMOrEvolutionStone: @ 80FD21C lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 - bl itemid_get_overworld_function + bl ItemId_GetFieldFunc ldr r1, =ItemUseOutOfBattle_TMHM cmp r0, r1 bne _080FD238 @@ -240,7 +240,7 @@ CheckIfItemIsTMHMOrEvolutionStone: @ 80FD21C .pool _080FD238: adds r0, r4, 0 - bl itemid_get_overworld_function + bl ItemId_GetFieldFunc ldr r1, =ItemUseOutOfBattle_EvolutionStone cmp r0, r1 beq _080FD24C @@ -383,7 +383,7 @@ ItemUseOnFieldCB_Bike: @ 80FD358 lsrs r4, r0, 24 ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] - bl itemid_get_x28 + bl ItemId_GetSecondaryId lsls r0, 24 cmp r0, 0 bne _080FD378 @@ -517,7 +517,7 @@ ItemUseOnFieldCB_Rod: @ 80FD468 lsrs r4, 24 ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] - bl itemid_get_x28 + bl ItemId_GetSecondaryId lsls r0, 24 lsrs r0, 24 bl StartFishing @@ -536,7 +536,7 @@ ItemUseOutOfBattle_Itemfinder: @ 80FD490 lsls r4, 24 lsrs r4, 24 movs r0, 0x27 - bl sav12_xor_increment + bl IncrementGameStat ldr r1, =gUnknown_0203A0F4 ldr r0, =ItemUseOnFieldCB_Itemfinder str r0, [r1] @@ -659,7 +659,7 @@ _080FD584: .pool _080FD5AC: movs r0, 0x48 - bl audio_play + bl PlaySE ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] @@ -1644,7 +1644,7 @@ sub_80FDD10: @ 80FDD10 _080FDD58: ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] - bl itemid_get_overworld_function + bl ItemId_GetFieldFunc adds r1, r0, 0 adds r0, r4, 0 bl _call_via_r1 @@ -1664,7 +1664,7 @@ sub_80FDD74: @ 80FDD74 ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] movs r1, 0x1 - bl remove_item + bl RemoveBagItem bl script_env_2_enable ldr r0, =gUnknown_08274482 bl script_env_1_execute_new_script @@ -1919,7 +1919,7 @@ sub_80FDF90: @ 80FDF90 lsls r4, 24 lsrs r4, 24 movs r0, 0x2 - bl audio_play + bl PlaySE ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 @@ -2005,10 +2005,10 @@ sub_80FE058: @ 80FE058 ldr r4, =gUnknown_0203CE7C ldrh r0, [r4] movs r1, 0x1 - bl remove_item + bl RemoveBagItem ldrh r0, [r4] ldr r1, =gStringVar2 - bl itemid_get_name + bl CopyItemName ldr r0, =gStringVar4 ldr r1, =gUnknown_085E9080 bl StringExpandPlaceholders @@ -2017,12 +2017,12 @@ sub_80FE058: @ 80FE058 cmp r0, 0 bne _080FE0AC ldrh r0, [r4] - bl itemid_get_pocket_number + bl ItemId_GetPocket lsls r0, 24 lsrs r0, 24 bl sub_81AB9A8 ldrh r0, [r4] - bl itemid_get_pocket_number + bl ItemId_GetPocket lsls r0, 24 lsrs r0, 24 bl sub_81ABA88 @@ -2101,7 +2101,7 @@ sub_80FE124: @ 80FE124 movs r0, 0 strh r0, [r1, 0x10] movs r0, 0x2F - bl audio_play + bl PlaySE adds r0, r5, 0 subs r0, 0x8 adds r0, r4, r0 @@ -2120,14 +2120,14 @@ sub_80FE164: @ 80FE164 lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _080FE1C2 ldr r4, =0x00004021 ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] - bl itemid_get_quality + bl ItemId_GetHoldEffectParam adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -2176,7 +2176,7 @@ sub_80FE1D0: @ 80FE1D0 cmp r0, 0x7 ble _080FE226 movs r0, 0x75 - bl audio_play + bl PlaySE bl InBattlePyramid lsls r0, 24 cmp r0, 0 @@ -2208,7 +2208,7 @@ ItemUseOutOfBattle_BlackWhiteFlute: @ 80FE234 ldr r4, =gUnknown_0203CE7C ldrh r0, [r4] ldr r1, =gStringVar2 - bl itemid_get_name + bl CopyItemName ldrh r0, [r4] cmp r0, 0x2B bne _080FE278 @@ -2364,7 +2364,7 @@ ItemUseInBattle_PokeBall: @ 80FE394 ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] movs r1, 0x1 - bl remove_item + bl RemoveBagItem bl InBattlePyramid lsls r0, 24 cmp r0, 0 @@ -2449,11 +2449,11 @@ sub_80FE440: @ 80FE440 cmp r0, 0x7 ble _080FE4AC movs r0, 0x1 - bl audio_play + bl PlaySE ldr r4, =gUnknown_0203CE7C ldrh r0, [r4] movs r1, 0x1 - bl remove_item + bl RemoveBagItem bl InBattlePyramid lsls r0, 24 cmp r0, 0 @@ -2486,7 +2486,7 @@ ItemUseInBattle_StatIncrease: @ 80FE4B8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID ldr r0, =gUnknown_020244B8 ldrb r0, [r0] lsls r0, 1 diff --git a/asm/link.s b/asm/link.s index 0d5cfde116..39cf6ba5ef 100644 --- a/asm/link.s +++ b/asm/link.s @@ -200,8 +200,8 @@ sub_80094EC: @ 80094EC sub_8009570: @ 8009570 push {r4,lr} sub sp, 0x4 - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes bl ResetTasks ldr r0, =sub_80096BC bl SetVBlankCallback @@ -240,8 +240,8 @@ _080095A0: movs r1, 0 bl CreateTask bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade ldr r0, =gUnknown_03000D60 str r4, [r0] @@ -307,7 +307,7 @@ sub_8009638: @ 8009638 movs r0, 0x80 lsls r0, 8 strh r0, [r5, 0x2] - bl sub_809D42C + bl IsNationalPokedexEnabled strb r0, [r5, 0x10] ldr r0, =0x0000087f bl FlagGet @@ -328,8 +328,8 @@ _0800969E: thumb_func_start sub_80096BC sub_80096BC: @ 80096BC push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -622,7 +622,7 @@ _08009956: cmp r0, 0 beq _08009968 movs r0, 0x1 - bl save_game_when_memory_present + bl TrySavingData _08009968: ldrh r1, [r4, 0x2E] movs r0, 0x4 @@ -664,8 +664,8 @@ c2_08009A8C: @ 80099BC movs r2, 0 bl sub_8009818 bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 @@ -1659,7 +1659,7 @@ _0800A1EA: cmp r1, r2 bne _0800A22C _0800A1F6: - ldr r1, =gUnknown_020375E2 + ldr r1, =gSpecialVar_0x8005 movs r0, 0x3 strh r0, [r1] ldr r3, =gUnknown_03000D5C @@ -3352,8 +3352,8 @@ c2_800ACD4: @ 800AF30 movs r1, 0xE0 lsls r1, 9 bl InitHeap - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes bl ResetPaletteFadeControl movs r0, 0 movs r1, 0 @@ -3429,13 +3429,13 @@ _0800AF8C: ldr r0, =sub_8009404 movs r1, 0 bl CreateTask - bl sub_80A2F30 + bl StopMapMusic ldr r1, =gMain movs r0, 0 str r0, [r1] bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade ldr r0, =sub_800B1A0 bl SetMainCallback2 @@ -3612,7 +3612,7 @@ _0800B1F2: .pool _0800B20C: movs r0, 0x16 - bl audio_play + bl PlaySE b _0800B260 _0800B214: ldr r0, =gLinkVSyncDisabled @@ -3663,7 +3663,7 @@ _0800B260: cmp r2, 0 beq _0800B2C2 movs r0, 0x15 - bl audio_play + bl PlaySE movs r0, 0 strb r0, [r4] ldr r1, =gUnknown_02022B00 @@ -9240,7 +9240,7 @@ _0800DDC8: ands r4, r1 orrs r4, r0 strb r4, [r7] - bl sub_809D42C + bl IsNationalPokedexEnabled ands r0, r6 ldrb r1, [r7, 0x1] ands r5, r1 @@ -9436,11 +9436,11 @@ _0800DFCA: ldr r0, =gUnknown_082ED5F0 adds r1, r3, 0 movs r3, 0 - bl AddObjectToFront + bl CreateSprite adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r4, r5, 4 adds r4, r5 lsls r4, 2 @@ -9449,7 +9449,7 @@ _0800DFCA: strh r0, [r4, 0x3C] ldr r0, =gUnknown_082ED5E0 ldrh r0, [r0, 0x6] - bl GetObjectTileRangeStartByTag + bl GetSpriteTileStartByTag strh r0, [r4, 0x3A] adds r4, 0x3E ldrb r0, [r4] @@ -9464,10 +9464,10 @@ _0800E024: ldr r0, =gUnknown_082ED5F0 adds r1, r3, 0 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r4, =gUnknown_02022B10 strb r0, [r4] - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 @@ -9477,7 +9477,7 @@ _0800E024: strh r1, [r0, 0x3C] ldr r0, =gUnknown_082ED5E0 ldrh r0, [r0, 0x6] - bl GetObjectTileRangeStartByTag + bl GetSpriteTileStartByTag ldrb r2, [r4] lsls r1, r2, 4 adds r1, r2 @@ -9504,7 +9504,7 @@ _0800E06A: thumb_func_start sub_800E084 sub_800E084: @ 800E084 push {r4,lr} - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldr r3, =gUnknown_02022B10 ldrb r1, [r3] lsls r0, r1, 4 @@ -9523,12 +9523,12 @@ sub_800E084: @ 800E084 adds r0, r1 lsls r0, 2 adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r3, =gMain movs r0, 0x84 lsls r0, 3 adds r3, r0 - ldr r0, =gDefaultOamAttributes + ldr r0, =gDummyOamData ldr r1, [r0] ldr r2, [r0, 0x4] str r1, [r3] @@ -9548,7 +9548,7 @@ sub_800E0E8: @ 800E0E8 push {r4,lr} ldr r4, =gUnknown_082ED5E0 ldrh r0, [r4, 0x6] - bl GetObjectTileRangeStartByTag + bl GetSpriteTileStartByTag lsls r0, 16 ldr r1, =0xffff0000 cmp r0, r1 @@ -9557,7 +9557,7 @@ sub_800E0E8: @ 800E0E8 bl LoadCompressedObjectPic _0800E100: ldr r0, =gUnknown_082ED5E8 - bl LoadTaggedObjectPalette + bl LoadSpritePalette ldr r1, =gUnknown_02022B10 movs r0, 0xFF strb r0, [r1] @@ -9628,7 +9628,7 @@ sub_800E174: @ 800E174 bne _0800E184 b _0800E346 _0800E184: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 @@ -16588,8 +16588,8 @@ sub_8011AC8: @ 8011AC8 thumb_func_start sub_8011AE8 sub_8011AE8: @ 8011AE8 push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -16598,8 +16598,8 @@ sub_8011AE8: @ 8011AE8 thumb_func_start sub_8011AFC sub_8011AFC: @ 8011AFC push {r4,lr} - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes bl ResetTasks bl ResetPaletteFade ldr r0, =sub_8011AE8 @@ -16633,8 +16633,8 @@ _08011B38: movs r0, 0 bl SetGpuReg bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade bl sub_8011BA4 ldr r0, =sub_8011BF8 @@ -16703,8 +16703,8 @@ _08011BEA: sub_8011BF8: @ 8011BF8 push {lr} bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 @@ -18044,7 +18044,7 @@ BerryBlenderLinkBecomeLeader: @ 801273C movs r0, 0 strb r0, [r1, 0xC] strb r0, [r1, 0xD] - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult strh r0, [r1] pop {r0} bx r0 @@ -18106,7 +18106,7 @@ _080127AC: .4byte _08012B54 .4byte _08012EB6 _08012828: - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r2, [r0] adds r3, r0, 0 cmp r2, 0x14 @@ -18891,7 +18891,7 @@ _08012EE6: bl script_env_2_enable_and_set_ctx_running adds r0, r4, 0 bl DestroyTask - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x5 strh r0, [r1] b _08012F50 @@ -18900,7 +18900,7 @@ _08012EFC: bl script_env_2_enable_and_set_ctx_running adds r0, r4, 0 bl DestroyTask - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x8 strh r0, [r1] b _08012F50 @@ -19218,7 +19218,7 @@ sub_801320C: @ 801320C b _08013270 _08013228: movs r0, 0x2 - bl audio_play + bl PlaySE ldrb r0, [r4, 0x12] bl sub_81AE70C ldr r0, =gStringVar2 @@ -19569,7 +19569,7 @@ BerryBlenderLinkJoinGroup: @ 80134A4 movs r0, 0 strb r0, [r1, 0x8] strb r0, [r1, 0x9] - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult strh r0, [r1] pop {r0} bx r0 @@ -19622,7 +19622,7 @@ _08013510: .4byte _08013B82 .4byte _08013B68 _08013570: - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r2, [r0] adds r3, r0, 0 cmp r2, 0x14 @@ -19667,7 +19667,7 @@ _080135E0: adds r0, r6, 0 adds r0, 0x9 ldr r2, =gUnknown_082EFB70 - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldrh r1, [r1] lsls r1, 2 adds r1, r2 @@ -19690,7 +19690,7 @@ _0801360C: movs r1, 0x10 bl sub_8017580 ldr r0, [r6, 0x4] - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldrh r1, [r1] bl sub_8016FC0 movs r4, 0 @@ -19765,7 +19765,7 @@ _080136D8: b _08013A72 _080136EA: movs r0, 0x2 - bl audio_play + bl PlaySE b _08013A72 _080136F2: ldrb r0, [r6, 0xE] @@ -19817,12 +19817,12 @@ _08013744: _08013756: strb r0, [r6, 0x8] movs r0, 0x6E - bl audio_play + bl PlaySE b _08013B82 .pool _08013768: movs r0, 0x7 - bl audio_play + bl PlaySE b _08013B82 _08013770: ldr r0, =gMain @@ -20194,13 +20194,13 @@ _08013AE4: lsls r0, 24 cmp r0, 0 beq _08013B82 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult movs r1, 0x6 b _08013B58 .pool _08013B14: bl sub_800E084 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult movs r1, 0x5 b _08013B58 .pool @@ -20226,7 +20226,7 @@ _08013B4A: lsls r0, 24 cmp r0, 0 beq _08013B82 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult movs r1, 0x8 _08013B58: strh r1, [r0] @@ -20311,7 +20311,7 @@ sub_8013BD8: @ 8013BD8 adds r1, r2 bl sub_8018404 ldr r1, =gUnknown_082F0530 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -20435,7 +20435,7 @@ _08013D28: cmp r0, 0x1 bne _08013D3A movs r0, 0x2 - bl audio_play + bl PlaySE _08013D3A: ldr r0, =gTasks lsls r1, r5, 2 @@ -20827,7 +20827,7 @@ _08013FFC: movs r2, 0x64 bl memcpy movs r0, 0x32 - bl sav12_xor_increment + bl IncrementGameStat bl sub_800A5B4 b _0801405A .pool @@ -21024,8 +21024,8 @@ _080141D4: _080141F2: bl RunTasks bl RunTextPrinters - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer pop {r4} pop {r0} bx r0 @@ -21155,7 +21155,7 @@ sub_8014304: @ 8014304 lsrs r5, 24 lsls r1, 16 lsrs r1, 16 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 strh r1, [r0] ldr r0, =0x00004087 bl VarSet @@ -21227,8 +21227,8 @@ _080143B4: _080143C6: bl RunTasks bl RunTextPrinters - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer pop {r4} pop {r0} bx r0 @@ -21544,7 +21544,7 @@ _0801474C: _08014764: adds r0, r4, 0 bl DestroyTask - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 strh r0, [r1] ldr r0, =gUnknown_02022C2C @@ -21600,7 +21600,7 @@ _080147CC: .4byte _08014992 .4byte _0801499C _080147F0: - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 strh r0, [r1] ldr r0, =gUnknown_02022C2C @@ -21744,7 +21744,7 @@ _0801494A: bl sub_80B2AF4 cmp r0, 0 beq _08014980 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult movs r1, 0xB strh r1, [r0] movs r0, 0x7 @@ -21835,7 +21835,7 @@ sub_8014A00: @ 8014A00 strb r2, [r1, 0xC] strb r2, [r1, 0xD] strb r4, [r1, 0x18] - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r2, [r0] pop {r4} pop {r0} @@ -22295,7 +22295,7 @@ _08014E4E: beq _08014EF2 adds r0, r4, 0 bl DestroyTask - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x5 strh r0, [r1] b _08014EF2 @@ -22384,7 +22384,7 @@ sub_8014EFC: @ 8014EFC strb r2, [r1, 0x9] subs r4, 0x15 strb r4, [r1, 0x12] - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r2, [r0] pop {r4} pop {r0} @@ -22542,7 +22542,7 @@ _080150B8: cmp r2, 0x1 bne _080150CE movs r0, 0x2 - bl audio_play + bl PlaySE _080150CE: ldrb r0, [r7, 0xE] bl sub_81AE70C @@ -22600,14 +22600,14 @@ _080150D6: adds r0, r4, 0 bl sub_8011FC8 movs r0, 0x6E - bl audio_play + bl PlaySE movs r0, 0x4 strb r0, [r7, 0x8] b _080152A0 .pool _08015160: movs r0, 0x7 - bl audio_play + bl PlaySE b _080152A0 _08015168: ldr r0, =gMain @@ -22725,7 +22725,7 @@ _0801526A: adds r0, r6, 0 bl DestroyTask bl sub_800EDD4 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x5 strh r0, [r1] b _080152A0 @@ -22773,7 +22773,7 @@ sub_80152A8: @ 80152A8 strb r2, [r1, 0x9] subs r4, 0x15 strb r4, [r1, 0x12] - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r2, [r0] pop {r4} pop {r0} @@ -22905,7 +22905,7 @@ _08015420: cmp r0, 0x1 bne _08015436 movs r0, 0x2 - bl audio_play + bl PlaySE _08015436: ldrb r0, [r5, 0x13] cmp r0, 0 @@ -22961,13 +22961,13 @@ _08015452: adds r0, r4, 0 bl sub_8011FC8 movs r0, 0x6E - bl audio_play + bl PlaySE movs r0, 0x4 strb r0, [r5, 0x8] b _080154D4 _080154B4: movs r0, 0x16 - bl audio_play + bl PlaySE movs r0, 0xA strb r0, [r5, 0x8] b _080154D4 @@ -23097,7 +23097,7 @@ _080155C2: adds r0, r4, 0 bl DestroyTask bl sub_800EDD4 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x5 strh r0, [r1] b _08015604 @@ -23141,7 +23141,7 @@ UnionRoomSpecial: @ 801560C strb r1, [r0, 0x16] strh r1, [r0, 0x10] strh r1, [r0, 0x12] - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r1, [r0] movs r0, 0xD0 movs r1, 0x1 @@ -23384,7 +23384,7 @@ _08015878: ldr r0, [r6, 0xC] movs r1, 0x4 bl sub_80175EC - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] movs r0, 0x3 @@ -23486,7 +23486,7 @@ _080159A0: movs r0, 0x4 bl _08016876 _080159A6: - ldr r4, =gUnknown_020375F0 + ldr r4, =gScriptResult ldrh r0, [r4] cmp r0, 0 beq _08015A0A @@ -23497,7 +23497,7 @@ _080159A6: movs r2, 0x1 bl sub_8011090 movs r0, 0x2 - bl audio_play + bl PlaySE ldr r0, =gStringVar1 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] @@ -23551,7 +23551,7 @@ _08015A1A: cmp r0, 0 beq _08015A4C movs r0, 0x5 - bl audio_play + bl PlaySE bl sub_80181CC movs r0, 0x18 bl _08016876 @@ -23565,7 +23565,7 @@ _08015A4C: movs r2, 0x1 bl sub_8011090 movs r0, 0x2 - bl audio_play + bl PlaySE bl sub_80181CC ldr r0, =gStringVar1 ldr r1, =gSaveBlock2Ptr @@ -23591,7 +23591,7 @@ _08015A96: b _08015AD0 _08015A9C: movs r0, 0x2 - bl audio_play + bl PlaySE _08015AA2: adds r0, r6, 0 bl sub_801A274 @@ -24223,7 +24223,7 @@ _0801609E: .pool _080160AC: movs r0, 0x49 - bl audio_play + bl PlaySE bl sub_800EF7C movs r0, 0 movs r1, 0xC @@ -25069,7 +25069,7 @@ var_800D_set_xB: @ 8016884 bl InUnionRoom cmp r0, 0x1 bne _08016894 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0xB strh r0, [r1] _08016894: @@ -26464,7 +26464,7 @@ _08017368: b _080173A0 _08017396: movs r0, 0x7 - bl audio_play + bl PlaySE _0801739C: movs r0, 0x1 negs r0, r0 @@ -27719,7 +27719,7 @@ _08017D14: beq _08017D74 adds r4, 0x1 _08017D2E: - ldr r0, =gUnknown_020244E9 + ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r4, r0 blt _08017D14 @@ -27728,7 +27728,7 @@ _08017D2E: .pool _08017D44: movs r4, 0 - ldr r0, =gUnknown_020244E9 + ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r4, r0 bge _08017D8E @@ -27757,7 +27757,7 @@ _08017D74: .pool _08017D84: adds r4, 0x1 - ldr r0, =gUnknown_020244E9 + ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r4, r0 blt _08017D50 @@ -28090,7 +28090,7 @@ sub_8018024: @ 8018024 push {r4-r6,lr} movs r6, 0 movs r5, 0 - ldr r0, =gUnknown_020244E9 + ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r6, r0 bge _08018064 @@ -28115,7 +28115,7 @@ _08018032: adds r6, 0x1 _0801805A: adds r5, 0x1 - ldr r0, =gUnknown_020244E9 + ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r5, r0 blt _08018032 @@ -28266,7 +28266,7 @@ _08018146: _0801816C: adds r5, 0x1 _0801816E: - ldr r0, =gUnknown_020244E9 + ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r5, r0 blt _08018146 @@ -28582,8 +28582,8 @@ sub_8018404: @ 8018404 thumb_func_start sub_8018424 sub_8018424: @ 8018424 push {lr} - bl ProcessObjectCopyRequests - bl LoadOamFromSprites + bl ProcessSpriteCopyRequests + bl LoadOam bl TransferPlttBuffer pop {r0} bx r0 @@ -28594,8 +28594,8 @@ sub_8018438: @ 8018438 push {lr} bl RunTasks bl RunTextPrinters - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer pop {r0} bx r0 thumb_func_end sub_8018438 @@ -28634,8 +28634,8 @@ _08018482: movs r0, 0 bl SetVBlankCallback bl ResetPaletteFade - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes bl ResetTasks bl remove_some_task movs r0, 0 @@ -28792,7 +28792,7 @@ _08018618: movs r0, 0x3 bl ShowBg ldr r0, =0x0000021d - bl song_play_for_text + bl PlayBGM ldr r0, =sub_8018424 bl SetVBlankCallback movs r0, 0xC5 @@ -29860,7 +29860,7 @@ _08018EC0: .pool _08018ECC: movs r0, 0 - bl save_game_when_memory_present + bl TrySavingData b _08018EEC _08018ED4: ldr r0, =gUnknown_085EF5E0 @@ -30057,7 +30057,7 @@ _0801905A: _08019062: movs r0, 0xB9 lsls r0, 1 - bl fanfare_play + bl PlayFanfare strh r4, [r5] b _0801907C _0801906E: @@ -30074,7 +30074,7 @@ _0801907C: strb r0, [r6] b _0801909A _08019084: - bl task_is_not_running_overworld_fanfare + bl IsFanfareTaskInactive lsls r0, 24 cmp r0, 0 beq _0801909A @@ -30491,7 +30491,7 @@ _0801940C: b _08019922 .pool _0801942C: - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0x5 beq _08019436 @@ -30992,7 +30992,7 @@ _080197F8: b _08019922 .pool _08019810: - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0x5 beq _0801981A @@ -31899,7 +31899,7 @@ sub_8019F04: @ 8019F04 push {r4-r6,lr} adds r5, r0, 0 movs r4, 0 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites _08019F0C: adds r0, r5, r4 ldrb r1, [r0] @@ -31907,7 +31907,7 @@ _08019F0C: adds r0, r1 lsls r0, 2 adds r0, r6 - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r4, 0x1 cmp r4, 0x27 ble _08019F0C @@ -32543,8 +32543,8 @@ sub_801A3F4: @ 801A3F4 bne _0801A414 bl RunTasks bl RunTextPrinters - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade _0801A414: pop {r0} @@ -32554,8 +32554,8 @@ _0801A414: thumb_func_start sub_801A418 sub_801A418: @ 801A418 push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -32618,7 +32618,7 @@ sub_801A43C: @ 801A43C bl InitWindows bl DeactivateAllTextPrinters bl ResetPaletteFade - bl ResetAllObjectData + bl ResetSpriteData bl ResetTasks bl remove_some_task bl m4aSoundVSyncOn @@ -32676,8 +32676,8 @@ sub_801A43C: @ 801A43C bl SetMainCallback2 bl RunTasks bl RunTextPrinters - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade add sp, 0xC pop {r4,r5} @@ -32991,7 +32991,7 @@ _0801A7F8: beq _0801A836 _0801A80C: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r2, =gTasks ldr r0, =gUnknown_03000DAC ldr r0, [r0] @@ -33410,7 +33410,7 @@ _0801AB1E: cmp r4, r6 ble _0801AB1E movs r0, 0x32 - bl sav12_xor_increment + bl IncrementGameStat bl calc_player_party_count ldr r0, =gUnknown_02038BCA movs r2, 0xC0 @@ -33539,8 +33539,8 @@ _0801AC38: thumb_func_start sub_801AC40 sub_801AC40: @ 801AC40 push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -33628,8 +33628,8 @@ _0801AD4C: movs r0, 0x4 bl AllocZeroed str r0, [r4] - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes bl ResetTasks movs r0, 0 bl ResetBgsAndClearDma3BusyFlags @@ -33868,8 +33868,8 @@ _0801AF98: _0801AFAE: bl RunTasks bl RunTextPrinters - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade _0801AFC2: add sp, 0xC @@ -34712,7 +34712,7 @@ _0801B628: ldr r1, [r0] adds r1, 0xA adds r0, r4, 0 - bl sub_80842F4 + bl CopyUnalignedWord mov r2, r8 ldr r1, [r2] adds r0, r6, 0 @@ -36531,7 +36531,7 @@ sub_801C4C0: @ 801C4C0 bl sub_80D2E84 lsls r0, 16 lsrs r0, 16 - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy str r7, [sp] str r7, [sp, 0x4] movs r2, 0xDC @@ -36542,7 +36542,7 @@ sub_801C4C0: @ 801C4C0 lsls r2, 1 adds r1, r2 strb r0, [r1] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, [r4] movs r1, 0xBE lsls r1, 1 @@ -36581,7 +36581,7 @@ _0801C52C: lsls r0, 3 ldr r1, =gUnknown_082F1D08 adds r0, r1 - bl LoadTaggedObjectPalette + bl LoadSpritePalette ldr r0, [r4] ldrb r0, [r0, 0x9] cmp r7, r0 @@ -36617,7 +36617,7 @@ _0801C572: adds r1, r5, 0 movs r2, 0x90 movs r3, 0x8 - bl AddObjectToFront + bl CreateSprite ldr r1, [r6] add r1, r10 adds r1, r4 @@ -36636,7 +36636,7 @@ _0801C572: mov r2, r9 str r2, [sp] str r2, [sp, 0x4] - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy adds r2, r5, 0 movs r3, 0x88 bl sub_80D2D78 @@ -36682,7 +36682,7 @@ sub_801C61C: @ 801C61C lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 bl sub_80D2EF8 _0801C640: @@ -36698,7 +36698,7 @@ _0801C640: cmp r5, r2 bcs _0801C6A4 adds r6, r4, 0 - ldr r7, =gUnknown_02020630 + ldr r7, =gSprites _0801C65A: ldr r0, [r6] lsls r4, r5, 1 @@ -36713,7 +36713,7 @@ _0801C65A: adds r0, r1 lsls r0, 2 adds r0, r7 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0801C678: ldr r0, [r6] movs r2, 0xBF @@ -36741,9 +36741,9 @@ _0801C6A4: movs r4, 0x80 lsls r4, 8 adds r0, r4, 0 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag adds r0, r4, 0 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag _0801C6B4: pop {r4-r7} pop {r0} @@ -38746,7 +38746,7 @@ _0801D6D8: b _0801D7FE _0801D6EA: ldrb r0, [r2, 0x4] - bl sub_80847F8 + bl GetGameStat adds r2, r0, 0 adds r0, r4, 0 movs r1, 0x12 @@ -39452,10 +39452,10 @@ _0801DC10: thumb_func_start sub_801DC20 sub_801DC20: @ 801DC20 push {r4-r6,lr} - ldr r6, =gUnknown_020375F0 + ldr r6, =gScriptResult bl sub_801B044 adds r4, r0, 0 - bl sub_809D490 + bl IsMysteryEventEnabled cmp r0, 0 beq _0801DC3A bl sub_801B0CC @@ -39768,8 +39768,8 @@ _0801DE74: b _0801DF04 _0801DE7A: bl ResetTasks - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes bl sub_801F4D0 b _0801DEBC _0801DE8C: @@ -39835,8 +39835,8 @@ _0801DF04: sub_801DF20: @ 801DF20 push {lr} bl TransferPlttBuffer - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl sub_80BA0A8 pop {r0} bx r0 @@ -39847,8 +39847,8 @@ sub_801DF38: @ 801DF38 push {lr} bl RunTasks bl sub_801F5B8 - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 @@ -40158,7 +40158,7 @@ _0801E1B4: cmp r0, 0 beq _0801E23A movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0x1 bl MoveMenuCursor b _0801E23A @@ -41252,7 +41252,7 @@ _0801EB04: bne _0801EBC2 bl sub_8076D5C movs r0, 0 - bl save_game_when_memory_present + bl TrySavingData ldr r0, =gUnknown_02022C84 ldr r1, [r0] movs r0, 0x8 @@ -41276,7 +41276,7 @@ _0801EB40: cmp r0, 0 bne _0801EBC2 movs r0, 0x37 - bl audio_play + bl PlaySE bl sav2_gender2_inplace_and_xFE ldr r0, =gUnknown_02022C84 ldr r1, [r0] @@ -44995,7 +44995,7 @@ _08020896: cmp r5, 0x4 bls _08020896 ldr r0, =gUnknown_082F315C - bl LoadTaggedObjectPalette + bl LoadSpritePalette ldr r4, =gUnknown_02022C8C movs r0, 0x18 bl Alloc @@ -45034,7 +45034,7 @@ sub_80208E8: @ 80208E8 movs r1, 0xA movs r2, 0x18 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_02022C8C @@ -45042,7 +45042,7 @@ sub_80208E8: @ 80208E8 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 str r1, [r2] pop {r0} @@ -45088,7 +45088,7 @@ sub_802093C: @ 802093C ldr r0, [r4] ldr r0, [r0] movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r1, [r4] ldr r2, [r1] mov r0, sp @@ -45104,7 +45104,7 @@ _0802097C: ldr r0, [r4] ldr r0, [r0] movs r1, 0x2 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r2, [r4] ldr r1, [r2] movs r0, 0x18 @@ -45132,7 +45132,7 @@ sub_80209AC: @ 80209AC ldr r0, =gUnknown_082F2DF2 adds r4, r0 movs r0, 0 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag adds r1, r0, 0 lsls r1, 24 lsrs r1, 4 @@ -45160,7 +45160,7 @@ sub_80209E0: @ 80209E0 ldr r0, [r0] ldr r0, [r0] movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim b _08020A0C .pool _08020A00: @@ -45168,7 +45168,7 @@ _08020A00: ldr r0, [r0] ldr r0, [r0] movs r1, 0x3 - bl StartObjectImageAnim + bl StartSpriteAnim _08020A0C: ldr r0, =gUnknown_02022C8C ldr r1, [r0] @@ -45206,13 +45206,13 @@ _08020A30: ldr r0, [r4] ldr r0, [r0] movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim b _08020A28 _08020A54: ldr r0, [r4] ldr r0, [r0] movs r1, 0x2 - bl StartObjectImageAnim + bl StartSpriteAnim b _08020A28 _08020A60: movs r0, 0x1 @@ -45229,7 +45229,7 @@ sub_8020A68: @ 8020A68 movs r1, 0x4C movs r2, 0x98 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r5, =gUnknown_02022C8C @@ -45237,14 +45237,14 @@ sub_8020A68: @ 8020A68 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r1, r4 str r1, [r2, 0x8] ldr r0, =gUnknown_082F31D4 movs r1, 0x40 movs r2, 0x98 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, [r5] @@ -45324,7 +45324,7 @@ sub_8020B20: @ 8020B20 movs r1, 0x8 movs r2, 0x98 movs r3, 0x3 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r5, =gUnknown_02022C8C @@ -45332,14 +45332,14 @@ sub_8020B20: @ 8020B20 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r1, r4 str r1, [r2, 0xC] ldr r0, =gUnknown_082F3244 movs r1, 0x20 movs r2, 0x98 movs r3, 0x4 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, [r5] @@ -45382,7 +45382,7 @@ sub_8020B80: @ 8020B80 ldr r0, [r3] ldr r0, [r0, 0x10] movs r1, 0x3 - bl StartObjectImageAnim + bl StartSpriteAnim b _08020BF6 .pool _08020BB8: @@ -45415,7 +45415,7 @@ _08020BD8: ldr r0, [r0, 0x10] lsls r1, r4, 24 lsrs r1, 24 - bl StartObjectImageAnim + bl StartSpriteAnim _08020BF6: pop {r4} pop {r0} @@ -45465,7 +45465,7 @@ _08020C26: strb r0, [r2] movs r0, 0xC8 lsls r0, 1 - bl current_map_music_set + bl PlayNewMapMusic ldr r0, =c1_overworld bl set_callback1 _08020C5A: @@ -45619,7 +45619,7 @@ sub_8020D8C: @ 8020D8C _08020DA8: ldrh r0, [r1] movs r1, 0x1 - bl remove_item + bl RemoveBagItem _08020DB0: ldr r4, =gUnknown_02022C90 ldr r2, [r4] @@ -45843,8 +45843,8 @@ _08020F66: sub_8020F74: @ 8020F74 push {lr} bl TransferPlttBuffer - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests pop {r0} bx r0 thumb_func_end sub_8020F74 @@ -45854,8 +45854,8 @@ sub_8020F88: @ 8020F88 push {lr} bl RunTasks bl RunTextPrinters - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer pop {r0} bx r0 thumb_func_end sub_8020F88 @@ -46010,7 +46010,7 @@ _080210BE: lsls r1, 19 ldr r2, =0x01000200 bl CpuSet - ldr r0, =gUnknown_0300301C + ldr r0, =gReservedSpritePaletteCount strb r4, [r0] movs r0, 0x3 bl sub_8034C54 @@ -46018,8 +46018,8 @@ _080210BE: .pool _080210E4: bl ResetPaletteFade - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes b _080212FC _080210F2: movs r0, 0 @@ -46183,7 +46183,7 @@ _08021278: bl sub_800DFB4 adds r0, r5, 0 bl sub_8022730 - ldr r0, =gUnknown_02021BBE + ldr r0, =gSpriteCoordOffsetY ldrh r1, [r0] negs r1, r1 lsls r1, 16 @@ -46389,7 +46389,7 @@ _08021446: sub_8021450: @ 8021450 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_02021BBE + ldr r0, =gSpriteCoordOffsetY ldrh r1, [r4, 0x2C] ldrh r2, [r4, 0x2A] adds r1, r2 @@ -46421,9 +46421,9 @@ sub_8021488: @ 8021488 ldr r2, =0x0000ff98 strh r2, [r0, 0x2A] strh r1, [r0, 0x2C] - ldr r0, =gUnknown_02021BBC + ldr r0, =gSpriteCoordOffsetX strh r1, [r0] - ldr r0, =gUnknown_02021BBE + ldr r0, =gSpriteCoordOffsetY strh r2, [r0] bx lr .pool @@ -46473,7 +46473,7 @@ _080214C6: lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 str r1, [r6] ldrb r0, [r1, 0x5] @@ -46574,7 +46574,7 @@ _08021558: bge _080215D0 ldr r0, [r6] movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim _080215D0: mov r0, r9 adds r0, 0x1 @@ -46665,12 +46665,12 @@ _0802166E: ands r0, r2 cmp r1, r0 blt _0802169A - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r5, 0x1C] adds r0, r5, 0 - bl obj_free_rotscale_entry + bl FreeSpriteOamMatrix adds r0, r5, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0802169A: pop {r4-r6} pop {r0} @@ -46692,9 +46692,9 @@ _080216B6: adds r0, r7 ldrh r4, [r0] adds r0, r4, 0 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag adds r0, r4, 0 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 @@ -46758,7 +46758,7 @@ _08021704: adds r0, r5, r4 ldr r0, [r0] movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim b _0802175A .pool _08021748: @@ -46769,7 +46769,7 @@ _08021748: adds r0, r5, r4 ldr r0, [r0] movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim _0802175A: adds r3, r5, r4 ldr r2, [r3] @@ -46894,13 +46894,13 @@ _080217E8: beq _08021860 ldr r0, [r7] movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim b _08021868 .pool _08021860: ldr r0, [r7] movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim _08021868: mov r0, r8 adds r0, 0x1 @@ -46941,11 +46941,11 @@ _080218A6: cmp r3, 0x1 bne _080218B4 movs r0, 0x4E - bl audio_play + bl PlaySE b _080218BA _080218B4: movs r0, 0x4D - bl audio_play + bl PlaySE _080218BA: ldr r4, [sp, 0xC] ldrb r0, [r4] @@ -48656,9 +48656,9 @@ sub_8022730: @ 8022730 ldr r0, =0x0000ff98 strh r0, [r6, 0x2A] strh r5, [r6, 0x2C] - ldr r1, =gUnknown_02021BBC + ldr r1, =gSpriteCoordOffsetX strh r5, [r1] - ldr r1, =gUnknown_02021BBE + ldr r1, =gSpriteCoordOffsetY strh r0, [r1] ldr r4, =gUnknown_082F41F4 _08022746: @@ -48671,12 +48671,12 @@ _08022746: cmp r5, 0x3 bls _08022746 ldr r0, =gUnknown_082F421C - bl LoadTaggedObjectPalettes + bl LoadSpritePalettes ldr r0, =gUnknown_082F430C movs r1, 0x78 movs r2, 0x58 movs r3, 0x5 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 movs r0, 0xAC @@ -48685,7 +48685,7 @@ _08022746: lsls r0, r2, 4 adds r0, r2 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 str r0, [r3] ldrb r1, [r0, 0x5] @@ -48726,7 +48726,7 @@ _080227AA: asrs r2, 16 ldr r0, =gUnknown_082F4324 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 movs r0, 0xAE @@ -48736,7 +48736,7 @@ _080227AA: lsls r1, r2, 4 adds r1, r2 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 str r1, [r3] ldrb r0, [r1, 0x5] @@ -48786,7 +48786,7 @@ _08022828: adds r2, 0x88 ldr r0, =gUnknown_082F433C movs r3, 0x6 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 lsls r0, r5, 2 @@ -48797,7 +48797,7 @@ _08022828: lsls r0, r2, 4 adds r0, r2 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 str r0, [r3] ldrb r1, [r0, 0x5] @@ -48835,7 +48835,7 @@ _0802288E: ldr r0, =gUnknown_082F4354 movs r2, 0x8 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 lsls r0, r5, 2 @@ -48846,7 +48846,7 @@ _0802288E: lsls r0, r2, 4 adds r0, r2 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 str r0, [r3] ldrb r1, [r0, 0x5] @@ -48910,19 +48910,19 @@ sub_8022960: @ 8022960 adds r5, r0, 0 movs r4, 0 movs r0, 0x4 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag movs r0, 0x3 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag movs r0, 0x2 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag movs r0, 0x1 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag movs r0, 0x4 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag movs r0, 0x2 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag movs r0, 0x1 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag movs r0, 0xD8 lsls r0, 1 adds r6, r5, r0 @@ -48930,7 +48930,7 @@ _08022996: lsls r0, r4, 2 adds r0, r6, r0 ldr r0, [r0] - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 @@ -48950,7 +48950,7 @@ _080229C4: lsls r0, r4, 2 adds r0, r6, r0 ldr r0, [r0] - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 @@ -48967,7 +48967,7 @@ _080229E0: adds r0, r5, r2 adds r0, r1 ldr r0, [r0] - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 @@ -48987,7 +48987,7 @@ _080229FC: cmp r0, 0 beq _08022A18 adds r0, r2, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _08022A18: pop {r4-r6} pop {r0} @@ -49025,7 +49025,7 @@ sub_8022A4C: @ 8022A4C push {r4,r5,lr} adds r3, r0, 0 movs r1, 0 - ldr r5, =DummyObjectCallback + ldr r5, =SpriteCallbackDummy adds r2, r3, 0 adds r2, 0x2E movs r4, 0 @@ -49585,7 +49585,7 @@ _08022E72: cmp r0, 0 beq _08022EA2 ldr r0, =0x000001e5 - bl current_map_music_set + bl PlayNewMapMusic movs r0, 0x7 movs r1, 0x1 movs r2, 0 @@ -49907,7 +49907,7 @@ _080230E8: ands r0, r2 strb r0, [r1] movs r0, 0x3D - bl audio_play + bl PlaySE b _080231A8 .pool _08023120: @@ -49964,7 +49964,7 @@ _08023184: cmp r0, 0 beq _080231AE movs r0, 0x2B - bl audio_play + bl PlaySE movs r0, 0xB movs r1, 0x1 movs r2, 0 @@ -50034,7 +50034,7 @@ _080231E4: adds r1, r4, r2 strb r0, [r1] movs r0, 0xD6 - bl audio_play + bl PlaySE b _080232DC .pool _0802321C: @@ -51113,7 +51113,7 @@ _08023A64: movs r0, 0x8 strh r0, [r4, 0x12] movs r0, 0xD6 - bl audio_play + bl PlaySE movs r0, 0x1 negs r0, r0 ldr r2, =0x000003ff @@ -51296,7 +51296,7 @@ _08023BE2: movs r0, 0x9 strh r0, [r5, 0x12] movs r0, 0x20 - bl audio_play + bl PlaySE movs r0, 0x1 negs r0, r0 movs r1, 0x8 @@ -51907,7 +51907,7 @@ _080240AE: cmp r0, 0 beq _0802412A movs r0, 0x5 - bl audio_play + bl PlaySE adds r0, r5, 0 bl sub_802222C b _08024124 @@ -52126,7 +52126,7 @@ _08024270: bl memset cmp r4, 0 bne _080242A2 - bl sub_80D67C4 + bl HasAtLeastOneBerry lsls r0, 24 cmp r0, 0 beq _0802429E @@ -52525,7 +52525,7 @@ sub_8024578: @ 8024578 adds r4, r0, 0 movs r5, 0 movs r0, 0x33 - bl sav12_xor_increment + bl IncrementGameStat strb r5, [r4, 0xD] movs r1, 0 strh r5, [r4, 0x10] @@ -52660,8 +52660,8 @@ sub_8024668: @ 8024668 .pool thumb_func_end sub_8024668 - thumb_func_start sub_802467C -sub_802467C: @ 802467C + thumb_func_start SetBerryPowder +SetBerryPowder: @ 802467C ldr r2, =gSaveBlock2Ptr ldr r2, [r2] adds r2, 0xAC @@ -52670,7 +52670,7 @@ sub_802467C: @ 802467C str r2, [r0] bx lr .pool - thumb_func_end sub_802467C + thumb_func_end SetBerryPowder thumb_func_start sub_8024690 sub_8024690: @ 8024690 @@ -52719,7 +52719,7 @@ sub_80246D4: @ 80246D4 lsls r1, 1 adds r0, r1 bl sub_8024668 - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldrh r1, [r1] cmp r0, r1 bcc _080246F8 @@ -52749,14 +52749,14 @@ sub_8024700: @ 8024700 cmp r1, r2 bhi _08024730 adds r0, r5, 0 - bl sub_802467C + bl SetBerryPowder movs r0, 0x1 b _0802473A .pool _08024730: adds r0, r5, 0 adds r1, r2, 0 - bl sub_802467C + bl SetBerryPowder movs r0, 0 _0802473A: pop {r4,r5} @@ -52783,7 +52783,7 @@ sub_8024740: @ 8024740 adds r1, r0, 0 subs r1, r5 adds r0, r4, 0 - bl sub_802467C + bl SetBerryPowder movs r0, 0x1 b _08024776 .pool @@ -52803,7 +52803,7 @@ sub_802477C: @ 802477C movs r1, 0xFA lsls r1, 1 adds r4, r0, r1 - ldr r5, =gUnknown_020375E0 + ldr r5, =gSpecialVar_0x8004 ldrh r0, [r5] bl sub_80246AC lsls r0, 24 @@ -52815,7 +52815,7 @@ sub_802477C: @ 802477C ldrh r0, [r5] subs r1, r0 adds r0, r4, 0 - bl sub_802467C + bl SetBerryPowder movs r0, 0x1 b _080247B6 .pool @@ -53083,9 +53083,9 @@ sub_802493C: @ 802493C adds r1, 0x44 adds r2, 0x48 bl sub_8026B5C - bl sub_80A2F30 + bl StopMapMusic ldr r0, =0x0000021e - bl current_map_music_set + bl PlayNewMapMusic b _08024A16 .pool _08024A10: @@ -53101,8 +53101,8 @@ _08024A16: sub_8024A1C: @ 8024A1C push {lr} bl ResetTasks - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes pop {r0} bx r0 thumb_func_end sub_8024A1C @@ -54072,7 +54072,7 @@ _08025202: b _08025226 _0802520C: movs r0, 0x1 - bl ducking_tick + bl WaitFanfare lsls r0, 24 cmp r0, 0 beq _08025226 @@ -54080,7 +54080,7 @@ _0802520C: bl sub_8026240 ldr r0, =0x0000020b movs r1, 0x4 - bl sub_80A2F88 + bl FadeOutAndPlayNewMapMusic _08025226: pop {r4,r5} pop {r0} @@ -54177,7 +54177,7 @@ _080252CC: .pool _080252DC: movs r0, 0x1 - bl ducking_tick + bl WaitFanfare lsls r0, 24 cmp r0, 0 beq _08025316 @@ -54201,7 +54201,7 @@ _080252DC: bl sub_8026240 ldr r0, =0x0000020b movs r1, 0x4 - bl sub_80A2F88 + bl FadeOutAndPlayNewMapMusic _08025316: pop {r4,r5} pop {r0} @@ -54782,11 +54782,11 @@ _080257B0: bl ChangeBgY b _08025848 _08025802: - bl sub_80A2F30 + bl StopMapMusic b _08025848 _08025808: ldr r0, =0x0000021e - bl current_map_music_set + bl PlayNewMapMusic bl sub_8028E4C b _08025848 .pool @@ -55685,7 +55685,7 @@ sub_8025F48: @ 8025F48 ldrb r0, [r0] cmp r0, 0 bne _08025F88 - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 @@ -55712,7 +55712,7 @@ _08025F88: movs r0, 0x1F bl m4aSongNumStop movs r0, 0x1F - bl audio_play + bl PlaySE ldr r0, [r6] movs r2, 0xA2 lsls r2, 1 @@ -55731,12 +55731,12 @@ _08025FB8: ldrb r0, [r0] cmp r0, 0 bne _08025FEA - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _08025FEA movs r0, 0x16 - bl audio_play + bl PlaySE movs r0, 0x1 bl sub_80284CC ldr r0, [r6] @@ -55758,7 +55758,7 @@ _08025FEA: ldrb r0, [r0] cmp r0, 0x9 bls _0802601C - bl sub_80A2F30 + bl StopMapMusic ldr r0, [r4] adds r0, r5 movs r1, 0x1 @@ -55773,7 +55773,7 @@ _0802601C: cmp r0, 0x1 bne _0802603C movs r0, 0xB - bl pause_music_for_sound_maybe + bl PlayFanfareByFanfareNum ldr r0, [r4] movs r2, 0xAA lsls r2, 1 @@ -55843,7 +55843,7 @@ _0802609C: movs r0, 0x1F bl m4aSongNumStop movs r0, 0x1F - bl audio_play + bl PlaySE ldr r0, [r6] movs r3, 0xA2 lsls r3, 1 @@ -55862,12 +55862,12 @@ _080260CC: ldrb r0, [r0] cmp r0, 0 bne _080260FE - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _080260FE movs r0, 0x16 - bl audio_play + bl PlaySE movs r0, 0x1 bl sub_80284CC ldr r0, [r6] @@ -55907,7 +55907,7 @@ _08026106: adds r0, r1, r4 ldrb r0, [r0] adds r0, 0x4A - bl audio_play + bl PlaySE ldr r0, [r5] movs r1, 0xA4 lsls r1, 1 @@ -55945,7 +55945,7 @@ _08026172: ldrb r0, [r0] cmp r0, 0x9 bls _080261A0 - bl sub_80A2F30 + bl StopMapMusic ldr r0, [r4] adds r0, r5 movs r1, 0x1 @@ -55960,7 +55960,7 @@ _080261A0: cmp r0, 0x1 bne _080261C0 movs r0, 0xB - bl pause_music_for_sound_maybe + bl PlayFanfareByFanfareNum ldr r0, [r4] movs r3, 0xAA lsls r3, 1 @@ -55980,8 +55980,8 @@ _080261C0: sub_80261CC: @ 80261CC push {lr} bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 @@ -55991,8 +55991,8 @@ sub_80261CC: @ 80261CC sub_80261E4: @ 80261E4 push {lr} bl TransferPlttBuffer - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests pop {r0} bx r0 thumb_func_end sub_80261E4 @@ -56736,7 +56736,7 @@ _08026762: adds r0, r5 ldrb r0, [r0] adds r0, 0x4A - bl audio_play + bl PlaySE _080267AC: mov r0, r8 ldr r1, [r0] @@ -58567,7 +58567,7 @@ _080275CA: movs r1, 0x6 strb r1, [r0] movs r0, 0xD4 - bl audio_play + bl PlaySE b _08027600 .pool _080275E8: @@ -59121,7 +59121,7 @@ sub_80279C8: @ 80279C8 _080279F4: adds r0, r5, 0 movs r1, 0x1 - bl sub_80D6800 + bl CheckBagHasSpace lsls r0, 24 cmp r0, 0 bne _08027A06 @@ -59130,10 +59130,10 @@ _080279F4: _08027A06: adds r0, r6, 0 movs r1, 0x1 - bl bag_add_item + bl AddBagItem adds r0, r6, 0 movs r1, 0x1 - bl sub_80D6800 + bl CheckBagHasSpace lsls r0, 24 cmp r0, 0 beq _08027A20 @@ -59190,7 +59190,7 @@ sub_8027A48: @ 8027A48 sub_8027A5C: @ 8027A5C push {r4-r6,lr} movs r5, 0 - ldr r6, =gUnknown_020375F0 + ldr r6, =gScriptResult _08027A62: movs r0, 0x64 adds r1, r5, 0 @@ -59215,7 +59215,7 @@ _08027A94: adds r5, 0x1 cmp r5, 0x5 ble _08027A62 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] _08027AA0: @@ -60400,14 +60400,14 @@ sub_80283A8: @ 80283A8 str r4, [sp] str r5, [sp, 0x4] mov r0, sp - bl LoadObjectPic + bl LoadSpriteSheet adds r0, r4, 0 bl Free _080283E8: add r0, sp, 0x8 - bl LoadTaggedObjectPalette + bl LoadSpritePalette add r0, sp, 0x10 - bl LoadTaggedObjectPalette + bl LoadSpritePalette add sp, 0x18 pop {r4,r5} pop {r0} @@ -60444,7 +60444,7 @@ sub_8028408: @ 8028408 ldr r0, =gUnknown_082FB228 str r0, [sp, 0x20] str r3, [sp, 0x24] - ldr r0, =gDummyObjectRotScalAnimTable + ldr r0, =gDummySpriteAffineAnimTable str r0, [sp, 0x28] ldr r0, =sub_80284A8 str r0, [sp, 0x2C] @@ -60467,7 +60467,7 @@ sub_8028408: @ 8028408 mov r0, sp movs r2, 0x88 movs r3, 0x3 - bl AddObjectToFront + bl CreateSprite ldr r1, [r4] lsls r0, 24 lsrs r0, 24 @@ -60519,7 +60519,7 @@ sub_80284CC: @ 80284CC lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 movs r2, 0 movs r1, 0x1 @@ -60546,7 +60546,7 @@ sub_8028504: @ 8028504 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 movs r2, 0 movs r1, 0x2 @@ -60655,7 +60655,7 @@ _080285CC: cmp r4, 0 beq _080285F0 movs r0, 0xD4 - bl audio_play + bl PlaySE _080285F0: movs r1, 0x30 ldrsh r0, [r5, r1] @@ -60693,11 +60693,11 @@ _08028622: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 cmp r0, 0 beq _0802863C - bl RemoveObjectAndFreeResources + bl DestroySpriteAndFreeResources _0802863C: adds r0, r4, 0x1 lsls r0, 24 @@ -60716,7 +60716,7 @@ sub_8028654: @ 8028654 lsls r0, 24 lsrs r0, 24 lsls r1, 24 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r2, =gUnknown_02022C9C lsrs r1, 22 adds r1, r2 @@ -60779,9 +60779,9 @@ sub_80286B4: @ 80286B4 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites adds r0, r2 - bl StartObjectImageAnim + bl StartSpriteAnim pop {r0} bx r0 .pool @@ -60796,7 +60796,7 @@ nullsub_15: @ 80286E0 sub_80286E4: @ 80286E4 push {r4-r7,lr} movs r4, 0 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r12, r0 movs r6, 0 ldr r5, =gUnknown_02022CF4 @@ -60870,9 +60870,9 @@ sub_8028734: @ 8028734 bl AllocZeroed str r0, [r4] adds r0, r5, 0 - bl LoadObjectPic + bl LoadSpriteSheet add r0, sp, 0x20 - bl LoadTaggedObjectPalette + bl LoadSpritePalette movs r4, 0 _0802878A: lsls r1, r4, 20 @@ -60889,7 +60889,7 @@ _0802878A: asrs r2, 16 mov r0, sp movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r1, =gUnknown_02022CF4 ldr r1, [r1] lsls r2, r4, 1 @@ -60927,11 +60927,11 @@ _080287E8: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 cmp r0, 0 beq _08028806 - bl RemoveObjectAndFreeResources + bl DestroySpriteAndFreeResources _08028806: adds r0, r4, 0x1 lsls r0, 24 @@ -60970,7 +60970,7 @@ _0802883A: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r4, r0, r1 adds r0, r2, 0 adds r0, 0x16 @@ -61004,7 +61004,7 @@ _08028870: strh r1, [r0] movs r0, 0x24 str r3, [sp] - bl audio_play + bl PlaySE ldr r3, [sp] _08028896: mov r7, r9 @@ -61056,10 +61056,10 @@ _080288E0: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 @@ -61073,7 +61073,7 @@ _08028910: subs r0, r5 cmp r4, r0 bge _080289D6 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites _0802891C: cmp r5, 0x6 bls _08028984 @@ -61106,7 +61106,7 @@ _0802894C: lsls r0, 2 adds r0, r6 movs r1, 0x2 - bl StartObjectImageAnim + bl StartSpriteAnim b _0802899E _0802896A: lsls r1, r4, 1 @@ -61119,7 +61119,7 @@ _0802896A: lsls r0, 2 adds r0, r6 movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim b _0802899E _08028984: ldr r0, =gUnknown_02022CF4 @@ -61133,7 +61133,7 @@ _08028984: lsls r0, 2 adds r0, r6 movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim _0802899E: adds r0, r4, 0x1 lsls r0, 24 @@ -61154,10 +61154,10 @@ _080289B4: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 @@ -61177,7 +61177,7 @@ sub_80289E8: @ 80289E8 lsls r0, 24 lsrs r0, 24 movs r3, 0 - ldr r7, =gUnknown_02020630 + ldr r7, =gSprites movs r1, 0x1 ands r0, r1 lsls r4, r0, 2 @@ -61236,10 +61236,10 @@ sub_8028A34: @ 8028A34 orrs r0, r5 str r0, [sp, 0x4] mov r0, sp - bl LoadObjectPic + bl LoadSpriteSheet _08028A6A: add r0, sp, 0x8 - bl LoadTaggedObjectPalette + bl LoadSpritePalette adds r0, r4, 0 bl Free add sp, 0x10 @@ -61284,7 +61284,7 @@ _08028AB0: mov r0, sp movs r2, 0x8 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite ldr r1, [r4] lsls r0, 24 lsrs r0, 24 @@ -61316,7 +61316,7 @@ _08028AF0: mov r0, r9 movs r2, 0x31 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r1, [r7, 0xC] b _08028B40 .pool @@ -61328,7 +61328,7 @@ _08028B2C: mov r0, r9 movs r2, 0x34 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r1, [r4] _08028B40: lsls r0, 24 @@ -61340,10 +61340,10 @@ _08028B40: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 adds r1, r5, 0 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 @@ -61374,11 +61374,11 @@ _08028B86: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 cmp r0, 0 beq _08028BA0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _08028BA0: ldr r0, [r4] bl Free @@ -61399,11 +61399,11 @@ _08028BB8: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 cmp r0, 0 beq _08028BD2 - bl RemoveObjectAndFreeTiles + bl DestroySprite _08028BD2: ldr r0, [r4] bl Free @@ -61425,7 +61425,7 @@ sub_8028BF8: @ 8028BF8 lsls r0, 24 lsls r1, 24 lsrs r1, 24 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r2, =gUnknown_02022CB8 lsrs r0, 22 adds r0, r2 @@ -61455,7 +61455,7 @@ sub_8028C30: @ 8028C30 lsls r0, 24 lsrs r0, 24 movs r3, 0 - ldr r7, =gUnknown_02020630 + ldr r7, =gSprites ldr r6, =gUnknown_02022CE4 movs r1, 0x1 ands r0, r1 @@ -61492,7 +61492,7 @@ _08028C46: sub_8028C7C: @ 8028C7C lsls r0, 24 lsls r1, 24 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r2, =gUnknown_02022CB8 lsrs r0, 22 adds r0, r2 @@ -61522,9 +61522,9 @@ sub_8028CA4: @ 8028CA4 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites adds r0, r2 - bl StartObjectImageAnim + bl StartSpriteAnim pop {r0} bx r0 .pool @@ -61534,7 +61534,7 @@ sub_8028CA4: @ 8028CA4 sub_8028CD0: @ 8028CD0 lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 @@ -61628,9 +61628,9 @@ sub_8028D44: @ 8028D44 stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} - bl LoadObjectPic + bl LoadSpriteSheet add r0, sp, 0x20 - bl LoadTaggedObjectPalette + bl LoadSpritePalette movs r5, 0 ldr r7, =gUnknown_082FB356 adds r0, r7, 0x2 @@ -61652,7 +61652,7 @@ _08028D9E: ldrsh r2, [r2, r0] mov r0, sp movs r3, 0x4 - bl AddObjectToFront + bl CreateSprite ldr r1, [r4] lsls r0, 24 lsrs r0, 24 @@ -61683,7 +61683,7 @@ sub_8028DFC: @ 8028DFC mov r12, r0 ldr r4, =gUnknown_082FB356 adds r7, r4, 0x2 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites movs r5, 0x1 _08028E0C: lsls r2, r3, 2 @@ -61720,7 +61720,7 @@ sub_8028E4C: @ 8028E4C push {r4,r5,lr} movs r2, 0 ldr r5, =gUnknown_02022CB0 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites movs r3, 0 _08028E56: lsls r0, r2, 2 @@ -61757,11 +61757,11 @@ _08028E8A: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 cmp r0, 0 beq _08028EA4 - bl RemoveObjectAndFreeTiles + bl DestroySprite _08028EA4: ldr r0, [r4] bl Free @@ -61784,7 +61784,7 @@ sub_8028EC8: @ 8028EC8 lsls r0, 24 lsrs r0, 24 movs r3, 0 - ldr r7, =gUnknown_02020630 + ldr r7, =gSprites ldr r6, =gUnknown_02022CB0 movs r1, 0x1 ands r0, r1 @@ -63305,7 +63305,7 @@ _08029BDE: movs r0, 0 strh r0, [r2] movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0x1 bl sub_8028C30 b _08029F88 @@ -63421,7 +63421,7 @@ _08029D06: movs r0, 0 strh r0, [r2] movs r0, 0x5 - bl audio_play + bl PlaySE bl sub_8027748 ldr r1, =0x00000bb7 cmp r0, r1 @@ -63434,7 +63434,7 @@ _08029D06: b _08029D4C .pool _08029D3C: - bl sub_80A2F30 + bl StopMapMusic ldr r1, [r4] ldr r0, =0x00003014 adds r1, r0 @@ -63473,7 +63473,7 @@ _08029D4C: .pool _08029DA0: ldr r0, =0x0000016f - bl current_map_music_set + bl PlayNewMapMusic ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r6, =0x00003008 @@ -63520,7 +63520,7 @@ _08029DA0: lsrs r0, 16 ldr r5, =gStringVar1 adds r1, r5, 0 - bl itemid_get_name + bl CopyItemName movs r0, 0 adds r1, r5, 0 bl sub_81AFC0C @@ -63553,7 +63553,7 @@ _08029DA0: lsls r0, 16 lsrs r0, 16 adds r1, r5, 0 - bl itemid_get_name + bl CopyItemName movs r0, 0 adds r1, r5, 0 bl sub_81AFC0C @@ -63627,7 +63627,7 @@ _08029F2C: ldr r0, =0x0000020b movs r1, 0x14 movs r2, 0xA - bl sub_80A2FBC + bl FadeOutAndFadeInNewMapMusic ldr r0, =gUnknown_02022CF8 ldr r1, [r0] ldr r0, =0x00003014 @@ -63655,7 +63655,7 @@ _08029F5C: movs r0, 0 strh r0, [r2] movs r0, 0x5 - bl audio_play + bl PlaySE _08029F88: ldr r1, [r4] _08029F8A: @@ -63967,7 +63967,7 @@ _0802A1DC: cmp r2, 0 beq _0802A294 movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, [r7] ldr r3, =0x00003020 adds r1, r0, r3 @@ -63983,7 +63983,7 @@ _0802A294: cmp r0, 0 beq _0802A2CC movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, [r7] ldr r2, =0x00003020 adds r1, r0, r2 @@ -64013,7 +64013,7 @@ _0802A2CC: cmp r0, 0 beq _0802A35E movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, [r7] ldr r3, =0x00003020 adds r0, r3 @@ -65138,8 +65138,8 @@ sub_802AC2C: @ 802AC2C sub_802AC58: @ 802AC58 push {lr} bl TransferPlttBuffer - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests pop {r0} bx r0 thumb_func_end sub_802AC58 @@ -65148,8 +65148,8 @@ sub_802AC58: @ 802AC58 sub_802AC6C: @ 802AC6C push {lr} bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 @@ -65202,13 +65202,13 @@ _0802ACC8: _0802ACE0: movs r0, 0 bl SetVBlankCallback - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes ldr r0, =sub_802BD84 movs r1, 0x5 bl sub_802BE60 movs r0, 0x4 - bl sub_80A2F50 + bl FadeOutMapMusic ldr r0, =gUnknown_02022CFC ldr r1, [r0] b _0802ADC0 @@ -65234,14 +65234,14 @@ _0802AD3C: bl sub_802D0F0 cmp r0, 0 bne _0802AE08 - bl sub_80A303C + bl IsNotWaitingForBGMStop lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0802AE08 ldr r0, =0x0000021a movs r1, 0x8 - bl sub_80A2F88 + bl FadeOutAndPlayNewMapMusic ldr r0, =gUnknown_02022CFC ldr r1, [r0] b _0802ADC0 @@ -66997,14 +66997,14 @@ _0802BB00: beq _0802BB58 ldrh r0, [r1, 0x3E] ldrh r1, [r2] - bl bag_add_item + bl AddBagItem lsls r0, 24 cmp r0, 0 beq _0802BB58 ldr r0, [r4] ldrh r0, [r0, 0x3E] movs r1, 0x1 - bl sub_80D6800 + bl CheckBagHasSpace lsls r0, 24 cmp r0, 0 bne _0802BB50 @@ -67891,7 +67891,7 @@ sub_802C1DC: @ 802C1DC lsls r0, 1 adds r0, r1 ldrh r0, [r0] - bl audio_play + bl PlaySE ldr r0, [r4] adds r0, 0x4D strb r5, [r0] @@ -68066,7 +68066,7 @@ _0802C360: beq _0802C378 movs r0, 0x83 lsls r0, 1 - bl audio_play + bl PlaySE b _0802C386 .pool _0802C378: @@ -68075,7 +68075,7 @@ _0802C378: cmp r6, 0 beq _0802C386 movs r0, 0xA - bl audio_play + bl PlaySE _0802C386: add sp, 0x4 pop {r3-r5} @@ -68761,7 +68761,7 @@ _0802C892: beq _0802C8A4 adds r0, r5, 0 adds r1, r4, 0 - bl sub_80D6800 + bl CheckBagHasSpace lsls r0, 24 cmp r0, 0 beq _0802C88C @@ -68862,7 +68862,7 @@ _0802C924: bl sub_802C908 cmp r0, 0 beq _0802C95C - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 b _0802C966 .pool @@ -68870,7 +68870,7 @@ _0802C95C: adds r5, 0x1 cmp r5, 0x5 ble _0802C924 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 _0802C966: strh r0, [r1] @@ -68897,16 +68897,16 @@ _0802C97C: ldr r5, =gUnknown_082FBE30 _0802C98E: adds r0, r5, 0 - bl LoadTaggedObjectPalette + bl LoadSpritePalette adds r5, 0x8 adds r4, 0x1 cmp r4, 0x1 bls _0802C98E movs r0, 0x5 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag strb r0, [r6, 0xE] movs r0, 0x6 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag strb r0, [r6, 0xF] pop {r4-r6} pop {r0} @@ -68989,7 +68989,7 @@ _0802CA32: adds r0, r1 ldr r3, [r7, 0x8] mov r1, r8 - bl DecompressMonPic_DetectFrontOrBack + bl HandleLoadSpecialPokePic mov r3, r8 str r3, [sp, 0x18] adds r4, r6, 0 @@ -69000,7 +69000,7 @@ _0802CA32: lsls r2, 4 orrs r1, r2 str r1, [r0, 0x4] - bl LoadObjectPic + bl LoadSpriteSheet ldrh r0, [r7] ldr r1, [r7, 0x4] ldr r2, [r7, 0x8] @@ -69033,7 +69033,7 @@ _0802CA32: asrs r2, 16 mov r0, sp ldr r3, [sp, 0x30] - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 @@ -69045,7 +69045,7 @@ _0802CA32: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 str r0, [r2] ldr r0, =0x000081fc @@ -69090,7 +69090,7 @@ sub_802CB14: @ 802CB14 adds r4, r0 adds r4, r6 ldr r1, [r4] - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites subs r1, r0 lsls r0, r1, 4 subs r0, r1 @@ -69115,7 +69115,7 @@ sub_802CB14: @ 802CB14 ldr r1, =sub_802CB7C str r1, [r0, 0x1C] movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim pop {r4-r6} pop {r0} bx r0 @@ -69180,7 +69180,7 @@ _0802CBD6: movs r1, 0x4 orrs r0, r1 strb r0, [r3] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r2, 0x1C] _0802CBE6: pop {r0} @@ -69261,7 +69261,7 @@ _0802CC6C: ble _0802CC7C movs r0, 0 strh r0, [r2, 0x26] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r2, 0x1C] _0802CC7C: pop {r0} @@ -69303,7 +69303,7 @@ sub_802CCB0: @ 802CCB0 ldr r1, =0x000081a8 adds r3, r4, r1 ldr r7, =sub_802CD08 - ldr r6, =DummyObjectCallback + ldr r6, =SpriteCallbackDummy movs r5, 0xA adds r4, r0, 0 _0802CCD2: @@ -69458,7 +69458,7 @@ sub_802CDD4: @ 802CDD4 b _0802CE3C _0802CDE6: movs r0, 0x22 - bl audio_play + bl PlaySE strh r4, [r5, 0x30] ldrh r0, [r5, 0x2E] adds r0, 0x1 @@ -69474,7 +69474,7 @@ _0802CDF4: movs r0, 0 strh r0, [r5, 0x30] _0802CE06: - ldr r1, =gUnknown_08329F40 + ldr r1, =gSineTable movs r2, 0x30 ldrsh r0, [r5, r2] lsls r0, 1 @@ -69499,7 +69499,7 @@ _0802CE06: b _0802CE3C .pool _0802CE38: - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r5, 0x1C] _0802CE3C: pop {r4,r5} @@ -69520,12 +69520,12 @@ sub_802CE48: @ 802CE48 lsls r2, 16 asrs r2, 16 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _0802CE88 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r2, 4 adds r1, r2 lsls r1, 2 @@ -69568,7 +69568,7 @@ _0802CEA6: movs r3, 0 ldrsh r2, [r6, r3] movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 lsls r0, r5, 2 @@ -69578,7 +69578,7 @@ _0802CEA6: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 str r0, [r2] adds r5, 0x1 @@ -69603,7 +69603,7 @@ _0802CEE8: movs r3, 0 ldrsh r2, [r2, r3] movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 lsls r0, r5, 2 @@ -69613,7 +69613,7 @@ _0802CEE8: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 str r0, [r2] adds r0, 0x3F @@ -69697,7 +69697,7 @@ _0802CF92: ldr r0, [r2] mov r2, r8 lsrs r1, r2, 24 - bl StartObjectImageAnim + bl StartSpriteAnim adds r6, 0x1 adds r4, 0x14 subs r5, 0x1 @@ -69740,7 +69740,7 @@ _0802CFE8: ldr r0, [r2] mov r2, r8 lsrs r1, r2, 24 - bl StartObjectImageAnim + bl StartSpriteAnim adds r6, 0x1 subs r4, 0x14 subs r5, 0x1 @@ -70722,7 +70722,7 @@ sub_802D7E8: @ 802D7E8 ldr r1, [r5] adds r1, 0x26 adds r2, r4, 0 - bl sub_80D6660 + bl CopyItemNameHandlePlural ldr r0, [r5] adds r0, 0x66 adds r1, r4, 0 @@ -70785,7 +70785,7 @@ sub_802D884: @ 802D884 ldr r4, =gUnknown_02022D00 ldr r1, [r4] adds r1, 0x26 - bl itemid_get_name + bl CopyItemName bl sub_81AFBF0 ldr r1, [r4] adds r1, 0x26 @@ -70838,7 +70838,7 @@ sub_802D8FC: @ 802D8FC ldr r4, =gUnknown_02022D00 ldr r1, [r4] adds r1, 0x26 - bl itemid_get_name + bl CopyItemName bl sub_81AFBF0 ldr r1, [r4] adds r1, 0x26 @@ -70936,13 +70936,13 @@ _0802D9C8: b _0802DA00 _0802D9E0: ldrh r0, [r1, 0x14] - bl fanfare_play + bl PlayFanfare ldr r1, [r4] ldrb r0, [r1, 0xD] adds r0, 0x1 strb r0, [r1, 0xD] _0802D9EE: - bl task_is_not_running_overworld_fanfare + bl IsFanfareTaskInactive lsls r0, 24 cmp r0, 0 beq _0802DA0C @@ -72146,8 +72146,8 @@ sub_802E32C: @ 802E32C .pool thumb_func_end sub_802E32C - thumb_func_start sub_802E33C -sub_802E33C: @ 802E33C + thumb_func_start ResetPokeJumpResults +ResetPokeJumpResults: @ 802E33C push {lr} bl sub_802E32C movs r1, 0 @@ -72159,7 +72159,7 @@ sub_802E33C: @ 802E33C strh r1, [r0, 0x2] pop {r0} bx r0 - thumb_func_end sub_802E33C + thumb_func_end ResetPokeJumpResults thumb_func_start sub_802E354 sub_802E354: @ 802E354 @@ -72683,7 +72683,7 @@ sub_802E75C: @ 802E75C lsls r0, 3 ldr r1, =gUnknown_082FE6D8 adds r0, r1 - bl LoadTaggedObjectPalette + bl LoadSpritePalette movs r5, 0 movs r3, 0x10 ldrsh r0, [r4, r3] @@ -72702,7 +72702,7 @@ _0802E790: movs r3, 0x14 ldrsh r2, [r4, r3] ldrb r3, [r4, 0xE] - bl AddObjectToFront + bl CreateSprite lsls r1, r5, 1 adds r1, r4 lsls r0, 24 @@ -72725,7 +72725,7 @@ _0802E7C4: movs r3, 0xD negs r3, r3 mov r12, r3 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites _0802E7D8: lsls r0, r5, 1 adds r0, r4 @@ -72803,10 +72803,10 @@ sub_802E83C: @ 802E83C lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites adds r0, r5 movs r1, 0x4 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0x1C ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -72822,7 +72822,7 @@ sub_802E83C: @ 802E83C lsls r0, 2 adds r0, r5 movs r1, 0x5 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0x1E ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -72858,9 +72858,9 @@ _0802E8E0: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 @@ -72875,14 +72875,14 @@ _0802E8FC: lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x6] - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag ldr r1, =gUnknown_082FE6D8 movs r2, 0x8 ldrsh r0, [r4, r2] lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x4] - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag pop {r4,r5} pop {r0} bx r0 @@ -72942,22 +72942,22 @@ _0802E998: strb r0, [r2] _0802E9A6: movs r0, 0x38 - bl audio_play + bl PlaySE ldrh r1, [r6, 0x32] lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 - bl StartObjectImageAnim + bl StartSpriteAnim b _0802EA44 _0802E9BA: movs r0, 0x15 - bl audio_play + bl PlaySE ldrh r1, [r6, 0x32] lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 - bl StartObjectImageAnim - ldr r4, =gUnknown_02020630 + bl StartSpriteAnim + ldr r4, =gSprites movs r2, 0x1C ldrsh r0, [r5, r2] lsls r1, r0, 4 @@ -72990,7 +72990,7 @@ _0802EA04: movs r2, 0x4 orrs r0, r2 strb r0, [r1] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites movs r0, 0x1C ldrsh r1, [r5, r0] lsls r0, r1, 4 @@ -73036,8 +73036,8 @@ sub_802EA50: @ 802EA50 ldr r5, =gTasks + 0x8 adds r6, r4, r5 movs r0, 0x38 - bl audio_play - ldr r2, =gUnknown_02020630 + bl PlaySE + ldr r2, =gSprites movs r0, 0x1A ldrsh r1, [r6, r0] lsls r0, r1, 4 @@ -73254,16 +73254,16 @@ _0802EC08: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 - bl obj_free_rotscale_entry + bl FreeSpriteOamMatrix movs r3, 0xE ldrsh r1, [r5, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0802EC3E: ldrh r0, [r5] adds r0, 0x1 @@ -73280,20 +73280,20 @@ _0802EC4C: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite movs r0, 0x12 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldrh r0, [r5, 0x4] - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag ldrh r0, [r5, 0x6] - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag adds r0, r6, 0 bl DestroyTask _0802EC8A: @@ -73312,7 +73312,7 @@ sub_802EC98: @ 802EC98 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r1, r0 movs r1, 0x2E ldrsh r0, [r4, r1] @@ -73351,7 +73351,7 @@ _0802ECF6: cmp r0, 0 bne _0802ED04 movs r0, 0x39 - bl audio_play + bl PlaySE _0802ED04: ldrh r0, [r4, 0x32] adds r0, 0x1 @@ -73389,7 +73389,7 @@ _0802ED2C: strh r0, [r4, 0x2E] adds r0, r4, 0 movs r1, 0x2 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim b _0802EDC4 _0802ED4E: ldrh r0, [r4, 0x22] @@ -73411,7 +73411,7 @@ _0802ED4E: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0 strh r0, [r4, 0x32] b _0802EDA6 @@ -73437,7 +73437,7 @@ _0802ED86: adds r0, r4, 0 movs r1, 0x3 _0802EDA2: - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim _0802EDA6: ldrh r0, [r4, 0x2E] adds r0, 0x1 @@ -73473,7 +73473,7 @@ sub_802EDCC: @ 802EDCC lsrs r1, 24 lsls r2, 24 lsrs r2, 24 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r8, r0 lsls r4, r1, 4 adds r4, r1 @@ -73519,7 +73519,7 @@ sub_802EE30: @ 802EE30 lsls r0, 24 lsrs r0, 24 movs r3, 0 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -73582,7 +73582,7 @@ _0802EEA0: cmp r0, 0 blt _0802EF46 movs r0, 0x39 - bl audio_play + bl PlaySE movs r0, 0 strh r0, [r5, 0x26] ldrh r0, [r4] @@ -73598,14 +73598,14 @@ _0802EEC8: cmp r0, 0x7F ble _0802EEE6 movs r0, 0x39 - bl audio_play + bl PlaySE movs r0, 0 strh r0, [r4, 0x2] ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _0802EEE6: - ldr r0, =gUnknown_08329F40 + ldr r0, =gSineTable movs r2, 0x2 ldrsh r1, [r4, r2] lsls r1, 1 @@ -73624,14 +73624,14 @@ _0802EEFC: cmp r0, 0x7F ble _0802EF1A movs r0, 0x39 - bl audio_play + bl PlaySE movs r0, 0 strh r0, [r4, 0x2] ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _0802EF1A: - ldr r1, =gUnknown_08329F40 + ldr r1, =gSineTable movs r2, 0x2 ldrsh r0, [r4, r2] lsls r0, 1 @@ -73652,7 +73652,7 @@ _0802EF34: asrs r0, 16 cmp r0, 0x28 ble _0802EF46 - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r5, 0x1C] _0802EF46: pop {r4,r5} @@ -73692,7 +73692,7 @@ sub_802EF50: @ 802EF50 mov r0, sp bl LoadCompressedObjectPic adds r0, r4, 0 - bl LoadTaggedObjectPalette + bl LoadSpritePalette add sp, 0x10 pop {r4} pop {r0} @@ -73732,7 +73732,7 @@ sub_802EFA8: @ 802EFA8 adds r1, r2, 0 adds r2, r6, 0 mov r3, r8 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 add sp, 0x18 @@ -73785,7 +73785,7 @@ sub_802EFFC: @ 802EFFC adds r1, r2, 0 adds r2, r5, 0 mov r3, r10 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r3, r9 @@ -73797,12 +73797,12 @@ sub_802EFFC: @ 802EFFC adds r1, r4, 0 adds r2, r5, 0 mov r3, r10 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r4, r8 strh r0, [r4] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites mov r5, r9 movs r6, 0 ldrsh r1, [r5, r6] @@ -73832,7 +73832,7 @@ sub_802EFFC: @ 802EFFC lsls r0, 2 adds r0, r2 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim add sp, 0x18 pop {r3-r5} mov r8, r3 diff --git a/asm/load_save.s b/asm/load_save.s index 6cbb2bdb25..344e051476 100644 --- a/asm/load_save.s +++ b/asm/load_save.s @@ -29,8 +29,8 @@ _08076B8A: .pool thumb_func_end CheckForFlashMemory - thumb_func_start memclr_stdsav2 -memclr_stdsav2: @ 8076B94 + thumb_func_start ClearSav2 +ClearSav2: @ 8076B94 push {lr} sub sp, 0x4 mov r1, sp @@ -44,10 +44,10 @@ memclr_stdsav2: @ 8076B94 pop {r0} bx r0 .pool - thumb_func_end memclr_stdsav2 + thumb_func_end ClearSav2 - thumb_func_start clear_sav1 -clear_sav1: @ 8076BB8 + thumb_func_start ClearSav1 +ClearSav1: @ 8076BB8 push {lr} sub sp, 0x4 mov r1, sp @@ -61,7 +61,7 @@ clear_sav1: @ 8076BB8 pop {r0} bx r0 .pool - thumb_func_end clear_sav1 + thumb_func_end ClearSav1 thumb_func_start InitSaveBlockPointersWithRandomOffset @ void InitSaveBlockPointersWithRandomOffset(u8 offset) @@ -86,7 +86,7 @@ InitSaveBlockPointersWithRandomOffset: @ 8076BDC ldr r0, =gUnknown_02029808 adds r4, r0 str r4, [r1] - bl init_bag_pockets + bl SetBagItemsPointers bl sub_81617F4 pop {r4,r5} pop {r0} @@ -258,7 +258,7 @@ copy_player_party_to_sav1: @ 8076D8C push {r4,lr} ldr r0, =gSaveBlock1Ptr ldr r0, [r0] - ldr r1, =gUnknown_020244E9 + ldr r1, =gPlayerPartyCount ldrb r1, [r1] movs r2, 0x8D lsls r2, 2 @@ -290,7 +290,7 @@ _08076DA0: thumb_func_start copy_player_party_from_sav1 copy_player_party_from_sav1: @ 8076DD4 push {r4,r5,lr} - ldr r1, =gUnknown_020244E9 + ldr r1, =gPlayerPartyCount ldr r0, =gSaveBlock1Ptr ldr r0, [r0] movs r2, 0x8D @@ -398,23 +398,23 @@ _08076E7A: .pool thumb_func_end save_deserialize_npcs - thumb_func_start save_serialize_game -save_serialize_game: @ 8076EAC + thumb_func_start SaveSerializedGame +SaveSerializedGame: @ 8076EAC push {lr} bl copy_player_party_to_sav1 bl save_serialize_npcs pop {r0} bx r0 - thumb_func_end save_serialize_game + thumb_func_end SaveSerializedGame - thumb_func_start save_deserialize_game -save_deserialize_game: @ 8076EBC + thumb_func_start LoadSerializedGame +LoadSerializedGame: @ 8076EBC push {lr} bl copy_player_party_from_sav1 bl save_deserialize_npcs pop {r0} bx r0 - thumb_func_end save_deserialize_game + thumb_func_end LoadSerializedGame thumb_func_start copy_bags_and_unk_data_from_save_blocks copy_bags_and_unk_data_from_save_blocks: @ 8076ECC @@ -685,7 +685,7 @@ _080770A0: ldr r1, [r2] str r1, [r0] adds r0, r4, 0 - bl encrypt_decrypt_all_item_quantities + bl ApplyNewEncyprtionKeyToBagItems ldr r0, [r7] adds r0, 0xAC str r4, [r0] @@ -699,8 +699,8 @@ _080770A0: .pool thumb_func_end copy_bags_and_unk_data_to_save_blocks - thumb_func_start apply_u16_xor_crypto -apply_u16_xor_crypto: @ 8077100 + thumb_func_start ApplyNewEncyprtionKeyToHword +ApplyNewEncyprtionKeyToHword: @ 8077100 ldr r2, =gSaveBlock2Ptr ldr r2, [r2] adds r2, 0xAC @@ -711,7 +711,7 @@ apply_u16_xor_crypto: @ 8077100 strh r2, [r0] bx lr .pool - thumb_func_end apply_u16_xor_crypto + thumb_func_end ApplyNewEncyprtionKeyToHword thumb_func_start apply_u32_xor_crypto apply_u32_xor_crypto: @ 8077118 @@ -733,7 +733,7 @@ saveblock_apply_crypto: @ 8077130 adds r4, r0, 0 bl sub_8084864 adds r0, r4, 0 - bl call_encrypt_decrypt_all_item_quantities + bl ApplyNewEncyprtionKeyToBagItems_ adds r0, r4, 0 bl sub_8024690 ldr r5, =gSaveBlock1Ptr @@ -747,7 +747,7 @@ saveblock_apply_crypto: @ 8077130 ldr r1, =0x00000494 adds r0, r1 adds r1, r4, 0 - bl apply_u16_xor_crypto + bl ApplyNewEncyprtionKeyToHword pop {r4,r5} pop {r0} bx r0 diff --git a/asm/lottery_corner.s b/asm/lottery_corner.s index 49f20137fc..fff59640f0 100644 --- a/asm/lottery_corner.s +++ b/asm/lottery_corner.s @@ -5,8 +5,8 @@ .text - thumb_func_start sub_8177558 -sub_8177558: @ 8177558 + thumb_func_start ResetLotteryCorner +ResetLotteryCorner: @ 8177558 push {r4,lr} bl Random adds r4, r0, 0 @@ -23,7 +23,7 @@ sub_8177558: @ 8177558 pop {r0} bx r0 .pool - thumb_func_end sub_8177558 + thumb_func_end ResetLotteryCorner thumb_func_start sub_8177584 sub_8177584: @ 8177584 @@ -64,7 +64,7 @@ _081775B4: sub_81775CC: @ 81775CC push {lr} bl sub_817783C - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult strh r0, [r1] pop {r0} bx r0 @@ -79,7 +79,7 @@ sub_81775E0: @ 81775E0 mov r5, r8 push {r5-r7} sub sp, 0x8 - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 movs r0, 0 strh r0, [r1] movs r0, 0 @@ -107,14 +107,14 @@ _081775FC: movs r1, 0x1 bl GetMonData adds r1, r0, 0 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrh r0, [r0] lsls r1, 16 lsrs r1, 16 bl sub_817778C lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldrh r2, [r1] cmp r0, r2 bls _0817764E @@ -174,14 +174,14 @@ _0817766A: movs r1, 0x1 bl pokemon_getattr_encrypted adds r1, r0, 0 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrh r0, [r0] lsls r1, 16 lsrs r1, 16 bl sub_817778C lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldrh r2, [r1] cmp r0, r2 bls _081776D2 @@ -202,11 +202,11 @@ _081776D2: lsrs r7, r0, 16 cmp r7, 0xD bls _0817765E - ldr r3, =gUnknown_020375E0 + ldr r3, =gSpecialVar_0x8004 ldrh r0, [r3] cmp r0, 0 beq _0817776E - ldr r2, =gUnknown_020375E2 + ldr r2, =gSpecialVar_0x8005 ldr r1, =gUnknown_085E7080 subs r0, 0x1 lsls r0, 1 @@ -216,7 +216,7 @@ _081776D2: ldr r2, [sp] cmp r2, 0xE bne _0817773C - ldr r1, =gUnknown_020375E4 + ldr r1, =gSpecialVar_0x8006 movs r0, 0 strh r0, [r1] movs r0, 0x64 @@ -230,7 +230,7 @@ _081776D2: b _08177768 .pool _0817773C: - ldr r1, =gUnknown_020375E4 + ldr r1, =gSpecialVar_0x8006 movs r0, 0x1 strh r0, [r1] ldr r2, =gUnknown_03005D94 diff --git a/asm/mail.s b/asm/mail.s index b53707a0d4..77cbc4e832 100644 --- a/asm/mail.s +++ b/asm/mail.s @@ -227,10 +227,10 @@ _0812168E: bl ResetTasks b _081219D4 _08121694: - bl ResetAllObjectData + bl ResetSpriteData b _081219D4 _0812169A: - bl ResetObjectPaletteAllocator + bl FreeAllSpritePalettes bl reset_temp_tile_data_buffers movs r0, 0x10 movs r1, 0 @@ -513,7 +513,7 @@ _08121910: _08121940: adds r0, r4, 0 bl sub_80D2F68 - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy movs r0, 0 str r0, [sp] str r0, [sp, 0x4] @@ -524,7 +524,7 @@ _08121940: _08121958: adds r0, r4, 0 bl sub_80D2F68 - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy movs r0, 0 str r0, [sp] str r0, [sp, 0x4] @@ -883,8 +883,8 @@ _08121BCC: thumb_func_start sub_8121C50 sub_8121C50: @ 8121C50 push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -900,8 +900,8 @@ sub_8121C64: @ 8121C64 ldrb r0, [r0] cmp r0, 0 beq _08121C7C - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer _08121C7C: ldr r0, [r4] movs r1, 0x84 @@ -1004,7 +1004,7 @@ sub_8121D00: @ 8121D00 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 bl sub_80D2EF8 _08121D58: diff --git a/asm/main_menu.s b/asm/main_menu.s index 050c38c80d..24923524bd 100644 --- a/asm/main_menu.s +++ b/asm/main_menu.s @@ -10,8 +10,8 @@ CB2_MainMenu: @ 802F6B0 push {lr} bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 @@ -21,8 +21,8 @@ CB2_MainMenu: @ 802F6B0 @ void VBlankCB_MainMenu() VBlankCB_MainMenu: @ 802F6C8 push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -129,8 +129,8 @@ InitMainMenu: @ 802F6F4 bl LoadPalette bl remove_some_task bl ResetTasks - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes cmp r4, 0 beq _0802F7EC movs r0, 0x1 @@ -278,7 +278,7 @@ _0802F900: movs r0, 0x1 strh r0, [r4, 0x1E] _0802F946: - ldr r0, =gUnknown_03006210 + ldr r0, =gSaveFileStatus ldrh r0, [r0] cmp r0, 0x2 beq _0802F990 @@ -298,7 +298,7 @@ _0802F968: b _0802F9D0 _0802F972: strh r0, [r4] - bl sub_809D4C4 + bl IsMysteryGiftEnabled cmp r0, 0 beq _0802F982 ldrh r0, [r4] @@ -330,7 +330,7 @@ _0802F9A4: str r1, [r0] movs r0, 0x1 strh r0, [r4] - bl sub_809D4C4 + bl IsMysteryGiftEnabled cmp r0, 0x1 bne _0802F9FE ldrh r0, [r4] @@ -479,7 +479,7 @@ Task_MainMenuCheckBattery: @ 802FAB0 movs r0, 0x54 movs r1, 0x7 bl SetGpuReg - bl GameFreakRTC_GetErrorFlags + bl RtcGetErrorStatus movs r1, 0xFF lsls r1, 4 ands r1, r0 @@ -1085,7 +1085,7 @@ HandleMainMenuInput: @ 80300E0 cmp r0, 0 beq _08030130 movs r0, 0x5 - bl audio_play + bl PlaySE bl sub_80093CC movs r0, 0x1 negs r0, r0 @@ -1109,7 +1109,7 @@ _08030130: cmp r6, 0 beq _08030178 movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0x1 negs r0, r0 ldr r1, =0x0000ffff @@ -1720,7 +1720,7 @@ _08030664: cmp r1, 0 beq _08030688 movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0x1 negs r0, r0 movs r1, 0 @@ -1930,8 +1930,8 @@ task_new_game_prof_birch_speech_1: @ 80307B0 movs r2, 0x10 bl LoadPalette bl remove_some_task - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes bl dp13_810BB8C adds r0, r4, 0 bl AddBirchSpeechObjects @@ -1958,7 +1958,7 @@ task_new_game_prof_birch_speech_1: @ 80307B0 strh r1, [r0, 0x16] movs r0, 0xBB lsls r0, 1 - bl song_play_for_text + bl PlayBGM movs r0, 0 bl ShowBg movs r0, 0x1 @@ -1991,7 +1991,7 @@ task_new_game_prof_birch_speech_2: @ 80308B0 .pool _080308D4: ldrb r0, [r4, 0x18] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -2045,7 +2045,7 @@ task_new_game_prof_birch_speech_3: @ 8030928 ldrsh r0, [r4, r1] cmp r0, 0 beq _080309B6 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r1, 0x18 ldrsh r0, [r4, r1] lsls r1, r0, 4 @@ -2183,7 +2183,7 @@ sub_8030A70: @ 8030A70 lsls r0, 3 adds r0, r6 ldrb r0, [r0, 0x1A] - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 @@ -2264,7 +2264,7 @@ sub_8030B14: @ 8030B14 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r3, r0, r1 movs r1, 0 ldrsh r0, [r5, r1] @@ -2277,7 +2277,7 @@ sub_8030B14: @ 8030B14 .pool _08030B64: ldr r1, [r3, 0x1C] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy cmp r1, r0 bne _08030BBA ldrb r1, [r3, 0x1] @@ -2369,7 +2369,7 @@ task_new_game_prof_birch_speech_7: @ 8030C18 lsls r0, 16 cmp r0, 0 bne _08030C7C - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites ldr r0, =gTasks lsls r4, r6, 2 adds r4, r6 @@ -2466,7 +2466,7 @@ task_new_game_prof_birch_speech_9: @ 8030CD4 ldrsh r0, [r4, r1] cmp r0, 0 beq _08030D7A - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x18 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -2552,7 +2552,7 @@ task_new_game_prof_birch_speech_10: @ 8030D84 ldrsh r0, [r3, r1] cmp r0, 0 beq _08030DB8 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r1, 0xC ldrsh r0, [r3, r1] lsls r1, r0, 4 @@ -2638,7 +2638,7 @@ task_new_game_prof_birch_speech_13: @ 8030E38 b _08030E76 _08030E52: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =gSaveBlock2Ptr ldr r0, [r0] strb r4, [r0, 0x8] @@ -2666,7 +2666,7 @@ _08030E76: cmp r3, r0 beq _08030EB8 strh r3, [r4, 0x14] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0xC ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -2708,7 +2708,7 @@ sub_8030ED4: @ 8030ED4 adds r7, r1, 0 cmp r0, 0 bne _08030F0C - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r5, 4 adds r1, r5 lsls r1, 2 @@ -2719,7 +2719,7 @@ sub_8030ED4: @ 8030ED4 b _08030F72 .pool _08030F0C: - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r0, r5, 4 adds r0, r5 lsls r0, 2 @@ -2788,7 +2788,7 @@ sub_8030F7C: @ 8030F7C lsls r1, 3 adds r3, r1, r2 ldrb r1, [r3, 0xC] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 @@ -3043,8 +3043,8 @@ _080311A8: b _08031210 _080311AE: movs r0, 0x5 - bl audio_play - ldr r2, =gUnknown_02020630 + bl PlaySE + ldr r2, =gSprites ldr r0, =gTasks lsls r4, r5, 2 adds r4, r5 @@ -3075,7 +3075,7 @@ _080311AE: .pool _080311FC: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 @@ -3135,7 +3135,7 @@ task_new_game_prof_birch_speech_part2_6: @ 8031258 ldrsh r0, [r7, r1] cmp r0, 0 beq _08031320 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites movs r2, 0x1C ldrsh r1, [r7, r2] lsls r0, r1, 4 @@ -3239,7 +3239,7 @@ task_new_game_prof_birch_speech_part2_7: @ 803133C ldrsh r0, [r4, r1] cmp r0, 0 beq _080313D2 - ldr r7, =gUnknown_02020630 + ldr r7, =gSprites movs r1, 0x18 ldrsh r0, [r4, r1] lsls r1, r0, 4 @@ -3321,7 +3321,7 @@ task_new_game_prof_birch_speech_part2_8: @ 80313E4 adds r7, r1, 0 cmp r0, 0 beq _080314B0 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r3, 0x18 ldrsh r1, [r4, r3] lsls r0, r1, 4 @@ -3427,7 +3427,7 @@ task_new_game_prof_birch_speech_part2_9: @ 80314C4 ldrsh r0, [r6, r1] cmp r0, 0 beq _0803155C - ldr r7, =gUnknown_02020630 + ldr r7, =gSprites movs r1, 0xC ldrsh r0, [r6, r1] lsls r1, r0, 4 @@ -3463,10 +3463,10 @@ task_new_game_prof_birch_speech_part2_9: @ 80314C4 ldr r1, =gUnknown_082FF114 str r1, [r0] adds r0, r5, 0 - bl obj_alloc_rotscale_entry + bl InitSpriteAffineAnim adds r0, r5, 0 movs r1, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim adds r0, r7, 0 adds r0, 0x1C adds r4, r0 @@ -3480,7 +3480,7 @@ task_new_game_prof_birch_speech_part2_9: @ 80314C4 movs r3, 0x10 bl BeginNormalPaletteFade movs r0, 0x4 - bl play_sound_effect + bl FadeOutBGM ldr r0, =task_new_game_prof_birch_speech_part2_10 str r0, [r6] _0803155C: @@ -3504,7 +3504,7 @@ task_new_game_prof_birch_speech_part2_10: @ 8031580 lsls r1, 3 adds r3, r1, r2 ldrb r1, [r3, 0xC] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 @@ -3540,7 +3540,7 @@ task_new_game_prof_birch_speech_part2_11: @ 80315BC lsls r4, 3 adds r4, r0 ldrb r2, [r4, 0xC] - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -3709,8 +3709,8 @@ new_game_prof_birch_speech_part2_start: @ 8031678 ldr r0, =0x0000ffc4 strh r0, [r4, 0x10] bl remove_some_task - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes bl dp13_810BB8C adds r0, r5, 0 bl AddBirchSpeechObjects @@ -3728,7 +3728,7 @@ _080317DC: strh r0, [r4, 0x14] ldrb r3, [r4, 0x1C] _080317E0: - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r3, 4 adds r1, r3 lsls r1, 2 @@ -3886,7 +3886,7 @@ AddBirchSpeechObjects: @ 803192C bl AddNewGameBirchObject lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites mov r9, r1 lsls r2, r0, 4 adds r2, r0 @@ -4650,7 +4650,7 @@ fmt_pokedex: @ 8031F7C lsrs r0, 24 cmp r0, 0x1 bne _08031FFE - bl sub_809D42C + bl IsNationalPokedexEnabled cmp r0, 0 beq _08031FA4 movs r0, 0x1 diff --git a/asm/map_obj_8097404.s b/asm/map_obj_8097404.s index b8e2f98f7b..404ae3675b 100644 --- a/asm/map_obj_8097404.s +++ b/asm/map_obj_8097404.s @@ -20,7 +20,7 @@ sub_8097404: @ 8097404 movs r4, 0x1 orrs r0, r4 strb r0, [r5, 0x1] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 @@ -167,7 +167,7 @@ npc_sync_anim_pause_bits: @ 8097514 negs r0, r0 ands r0, r1 strb r0, [r5, 0x1] - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldrb r0, [r5, 0x4] lsls r1, r0, 4 adds r1, r0 @@ -811,7 +811,7 @@ obj_anim_image_set_and_seek: @ 8097994 ands r1, r3 strb r1, [r4] adds r1, r2, 0 - bl SeekObjectImageAnim + bl SeekSpriteAnim pop {r4} pop {r0} bx r0 @@ -864,7 +864,7 @@ sub_80979D4: @ 80979D4 adds r4, 0x28 movs r0, 0 ldrsb r0, [r4, r0] - ldr r2, =gUnknown_02021BBC + ldr r2, =gSpriteCoordOffsetX adds r0, r1 ldrh r2, [r2] adds r0, r2 @@ -877,7 +877,7 @@ sub_80979D4: @ 80979D4 subs r3, 0x15 movs r0, 0 ldrsb r0, [r3, r0] - ldr r2, =gUnknown_02021BBE + ldr r2, =gSpriteCoordOffsetY adds r0, r1 ldrh r2, [r2] adds r0, r2 @@ -991,7 +991,7 @@ sub_8097AF0: @ 8097AF0 movs r5, 0 movs r4, 0x3F _08097AF6: - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r2, r5, r0 adds r0, r2, 0 adds r0, 0x3E @@ -1005,7 +1005,7 @@ _08097AF6: cmp r1, r0 bne _08097B16 adds r0, r2, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _08097B16: adds r5, 0x44 subs r4, 0x1 @@ -1023,7 +1023,7 @@ sub_8097B2C: @ 8097B2C lsls r0, 24 lsrs r5, r0, 24 movs r3, 0 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites movs r4, 0 _08097B38: adds r2, r4, r6 @@ -1073,7 +1073,7 @@ sub_8097B78: @ 8097B78 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 adds r0, r5, 0 bl FieldObjectDirectionToImageAnimId @@ -1081,7 +1081,7 @@ sub_8097B78: @ 8097B78 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim _08097BAA: pop {r4,r5} pop {r0} @@ -1103,7 +1103,7 @@ sub_8097BB4: @ 8097BB4 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r4, r0, r1 adds r0, r5, 0 bl GetFieldObjectGraphicsInfo @@ -1141,7 +1141,7 @@ sub_8097BB4: @ 8097BB4 .pool _08097C20: adds r0, r4, 0 - bl SetSpriteOamTables_NoPriorityFromTable + bl SetSubspriteTables adds r2, r4, 0 adds r2, 0x42 ldrb r0, [r2] @@ -1153,7 +1153,7 @@ _08097C20: _08097C36: adds r0, r4, 0 movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim _08097C3E: pop {r4,r5} pop {r0} @@ -1174,7 +1174,7 @@ sub_8097C44: @ 8097C44 beq _08097C80 cmp r4, 0 beq _08097C74 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r2, 4 adds r1, r2 lsls r1, 2 @@ -1184,7 +1184,7 @@ sub_8097C44: @ 8097C44 b _08097C80 .pool _08097C74: - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r3, 4 adds r0, r3 lsls r0, 2 @@ -1211,7 +1211,7 @@ sub_8097C8C: @ 8097C8C b _08097CBA _08097CA2: movs r3, 0 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r2, 4 adds r1, r2 lsls r1, 2 @@ -1241,7 +1241,7 @@ sub_8097CC4: @ 8097CC4 lsrs r2, r0, 24 cmp r2, 0x40 beq _08097CEA - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r2, 4 adds r1, r2 lsls r1, 2 @@ -1369,7 +1369,7 @@ sub_8097D9C: @ 8097D9C lsrs r2, r0, 24 cmp r2, 0x40 beq _08097DC0 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r2, 4 adds r1, r2 lsls r1, 2 @@ -1695,7 +1695,7 @@ sub_8097FE4: @ 8097FE4 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r2, r0, r1 ldrh r1, [r4, 0xC] movs r0, 0x3 diff --git a/asm/map_obj_lock.s b/asm/map_obj_lock.s index 0482a706f1..7547f23c06 100644 --- a/asm/map_obj_lock.s +++ b/asm/map_obj_lock.s @@ -256,7 +256,7 @@ sub_8098574: @ 8098574 lsls r0, 2 ldr r1, =gUnknown_02037350 adds r0, r1 - ldr r1, =gUnknown_020375F4 + ldr r1, =gScriptFacing ldrb r1, [r1] bl FieldObjectFaceOppositeDirection pop {r0} diff --git a/asm/mauville_old_man.s b/asm/mauville_old_man.s index 213a24e2bb..e0b987f26c 100644 --- a/asm/mauville_old_man.s +++ b/asm/mauville_old_man.s @@ -95,8 +95,8 @@ sub_8120154: @ 8120154 bx r0 thumb_func_end sub_8120154 - thumb_func_start sub_8120160 -sub_8120160: @ 8120160 + thumb_func_start SetMauvilleOldMan +SetMauvilleOldMan: @ 8120160 push {lr} ldr r0, =gSaveBlock2Ptr ldr r0, [r0] @@ -141,7 +141,7 @@ _081201C0: bl sub_8120B5C pop {r0} bx r0 - thumb_func_end sub_8120160 + thumb_func_end SetMauvilleOldMan thumb_func_start sub_81201C8 sub_81201C8: @ 81201C8 @@ -157,7 +157,7 @@ sub_81201C8: @ 81201C8 thumb_func_start sub_81201DC sub_81201DC: @ 81201DC push {r4,lr} - ldr r4, =gUnknown_020375F0 + ldr r4, =gScriptResult bl sub_81201C8 lsls r0, 24 lsrs r0, 24 @@ -170,7 +170,7 @@ sub_81201DC: @ 81201DC thumb_func_start sub_81201F4 sub_81201F4: @ 81201F4 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r2, =0x00002e51 @@ -238,7 +238,7 @@ sub_8120280: @ 8120280 push {r4-r7,lr} ldr r0, =gSaveBlock1Ptr ldr r1, [r0] - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] ldr r2, =0x00002e36 adds r5, r1, r2 @@ -336,7 +336,7 @@ _0812031E: thumb_func_start sub_8120340 sub_8120340: @ 8120340 push {lr} - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrb r0, [r0] bl sub_81206C0 bl script_env_2_set_ctx_paused @@ -347,7 +347,7 @@ sub_8120340: @ 8120340 thumb_func_start sub_8120358 sub_8120358: @ 8120358 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r2, =0x00002e28 @@ -379,14 +379,14 @@ sub_812038C: @ 812038C ldr r0, =0x0000ffff cmp r1, r0 bne _081203AC - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 b _081203B6 .pool _081203AC: ldr r0, =gStringVar1 bl CopyEasyChatWord - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 _081203B6: strh r0, [r1] @@ -405,14 +405,14 @@ sub_81203C4: @ 81203C4 ldrb r0, [r2, 0x1] cmp r0, 0xA bne _081203EC - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] strb r0, [r2, 0x1] b _081203F2 .pool _081203EC: - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 strh r0, [r1] _081203F2: @@ -503,7 +503,7 @@ _081204C4: adds r0, 0x1 _081204C8: strb r0, [r5, 0x1] - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 strh r0, [r1] pop {r4-r6} @@ -850,7 +850,7 @@ _08120764: _0812077C: ldr r0, =gSaveBlock1Ptr ldr r2, [r0] - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] ldr r3, =0x00002e36 adds r1, r2, r3 @@ -1114,12 +1114,12 @@ _08120994: strh r0, [r5, 0xE] strh r0, [r5, 0x10] movs r0, 0x4 - bl sub_80A31E8 + bl FadeOutBGMTemporarily movs r0, 0x1 b _08120B4E .pool _081209B8: - bl sub_80A3200 + bl IsBGMPausedOrStopped lsls r0, 24 cmp r0, 0 bne _081209C4 @@ -1227,7 +1227,7 @@ _08120A7E: cmp r4, 0xFF bne _08120AB0 movs r0, 0x6 - bl sub_80A3228 + bl FadeInBGM ldr r0, =gMPlay_SE2 movs r1, 0x2 bl m4aMPlayFadeOutTemporarily @@ -1775,7 +1775,7 @@ sub_8120E74: @ 8120E74 bne _08120E80 movs r0, 0 _08120E80: - bl sub_80847F8 + bl GetGameStat pop {r1} bx r1 thumb_func_end sub_8120E74 @@ -2382,13 +2382,13 @@ _0812132C: cmp r4, r0 bne _0812135C _0812134E: - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] b _08121364 .pool _0812135C: - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r5, [r0] ldr r0, =gUnknown_03001178 strb r4, [r0] diff --git a/asm/menu_helpers.s b/asm/menu_helpers.s index 98003c7f06..f01fc85695 100644 --- a/asm/menu_helpers.s +++ b/asm/menu_helpers.s @@ -295,7 +295,7 @@ _08121FFC: b _08122028 _08122002: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =gUnknown_0203A138 ldr r1, [r0] adds r0, r4, 0 @@ -304,7 +304,7 @@ _08122002: .pool _08122018: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =gUnknown_0203A138 ldr r1, [r0, 0x4] adds r0, r4, 0 @@ -395,7 +395,7 @@ _081220B6: cmp r1, r0 beq _081220C6 movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0x1 b _081220C8 _081220C6: @@ -775,13 +775,13 @@ sub_8122344: @ 8122344 movs r5, 0 cmp r5, r6 bcs _0812239C - ldr r7, =gUnknown_02020630 + ldr r7, =gSprites _08122358: lsls r1, r5, 4 ldr r0, =gUnknown_0859F524 movs r2, 0 movs r3, 0 - bl AddObjectToFront + bl CreateSprite mov r1, r8 adds r4, r1, r5 strb r0, [r4] @@ -793,7 +793,7 @@ _08122358: lsls r0, 2 adds r0, r7 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim _0812237E: ldrb r1, [r4] lsls r0, r1, 4 @@ -828,7 +828,7 @@ sub_81223B0: @ 81223B0 movs r4, 0 cmp r4, r5 bcs _081223F6 - ldr r7, =gUnknown_02020630 + ldr r7, =gSprites _081223C0: subs r0, r5, 0x1 cmp r4, r0 @@ -839,7 +839,7 @@ _081223C0: adds r0, r1 lsls r0, 2 adds r0, r7 - bl RemoveObjectAndFreeResources + bl DestroySpriteAndFreeResources b _081223EC .pool _081223DC: @@ -849,7 +849,7 @@ _081223DC: adds r0, r1 lsls r0, 2 adds r0, r7 - bl RemoveObjectAndFreeTiles + bl DestroySprite _081223EC: adds r0, r4, 0x1 lsls r0, 24 @@ -873,7 +873,7 @@ sub_81223FC: @ 81223FC movs r3, 0 cmp r3, r4 bcs _0812243E - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites mov r12, r1 movs r1, 0x1 ands r0, r1 @@ -930,7 +930,7 @@ sub_8122448: @ 8122448 movs r3, 0 cmp r3, r4 bcs _081224C8 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites lsls r0, r7, 16 asrs r0, 16 subs r0, 0x8 diff --git a/asm/mon_markings.s b/asm/mon_markings.s index 0270a71a6e..7c927399f4 100644 --- a/asm/mon_markings.s +++ b/asm/mon_markings.s @@ -257,13 +257,13 @@ _0811FAFE: adds r0, r5, r0 lsls r0, 16 lsrs r0, 16 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag ldr r0, [r4] ldrh r0, [r0, 0x2] adds r0, r5, r0 lsls r0, 16 lsrs r0, 16 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 @@ -279,7 +279,7 @@ _0811FB28: ldr r0, [r0] cmp r0, 0 beq _0811FB9A - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, [r6] adds r0, 0xC adds r0, r4 @@ -300,7 +300,7 @@ _0811FB52: ldr r0, [r0] cmp r0, 0 beq _0811FB9A - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, [r6] adds r0, 0x14 adds r0, r4 @@ -316,7 +316,7 @@ _0811FB52: ldr r0, [r0, 0x24] cmp r0, 0 beq _0811FB8A - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, [r4] str r7, [r0, 0x24] _0811FB8A: @@ -324,7 +324,7 @@ _0811FB8A: ldr r0, [r0, 0x28] cmp r0, 0 beq _0811FB9A - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, [r4] str r7, [r0, 0x28] _0811FB9A: @@ -346,7 +346,7 @@ sub_811FBA4: @ 811FBA4 cmp r5, 0 beq _0811FBDC movs r0, 0x5 - bl audio_play + bl PlaySE ldr r2, =gUnknown_0203A124 ldr r1, [r2] ldrb r0, [r1, 0x5] @@ -368,7 +368,7 @@ _0811FBDC: cmp r4, 0 beq _0811FC0C movs r0, 0x5 - bl audio_play + bl PlaySE ldr r2, =gUnknown_0203A124 ldr r1, [r2] ldrb r0, [r1, 0x5] @@ -388,7 +388,7 @@ _0811FC0C: cmp r0, 0 beq _0811FC68 movs r0, 0x5 - bl audio_play + bl PlaySE ldr r2, =gUnknown_0203A124 ldr r0, [r2] movs r1, 0x5 @@ -436,7 +436,7 @@ _0811FC68: cmp r0, 0 beq _0811FC64 movs r0, 0x5 - bl audio_play + bl PlaySE _0811FC76: movs r0, 0 _0811FC78: @@ -523,14 +523,14 @@ sub_811FC80: @ 811FC80 ldr r0, =gUnknown_0859EF14 str r0, [r4, 0x8] str r7, [r4, 0xC] - ldr r0, =gDummyObjectRotScalAnimTable + ldr r0, =gDummySpriteAffineAnimTable str r0, [r4, 0x10] ldr r0, =TaskDummy7 str r0, [r4, 0x14] mov r0, sp - bl LoadObjectPics + bl LoadSpriteSheets mov r0, r10 - bl LoadTaggedObjectPalettes + bl LoadSpritePalettes movs r5, 0 mov r3, r8 lsls r3, 16 @@ -555,7 +555,7 @@ _0811FD58: asrs r1, r2, 16 asrs r2, r7, 16 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 @@ -570,12 +570,12 @@ _0811FD70: lsls r0, r3, 4 adds r0, r3 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 str r0, [r2] lsls r1, r5, 24 lsrs r1, 24 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 @@ -618,7 +618,7 @@ _0811FDC8: mov r3, r9 asrs r1, r3, 16 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 @@ -633,7 +633,7 @@ _0811FDEE: lsls r0, r3, 4 adds r0, r3 lsls r0, 2 - ldr r7, =gUnknown_02020630 + ldr r7, =gSprites adds r0, r7 str r0, [r1] strh r5, [r0, 0x2E] @@ -642,13 +642,13 @@ _0811FDEE: lsrs r5, r0, 16 cmp r5, 0x3 bls _0811FDC8 - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r4, 0x14] adds r0, r4, 0 movs r1, 0 movs r2, 0 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 @@ -674,7 +674,7 @@ _0811FDEE: ldr r0, [r6] ldr r0, [r0, 0x28] movs r1, 0x9 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r1, [r6] ldr r2, [r1, 0x28] ldr r3, [sp, 0x48] @@ -689,7 +689,7 @@ _0811FDEE: movs r1, 0x1 movs r2, 0x2 movs r3, 0 - bl CalcVecFromObjectCenterToObjectUpperLeft + bl CalcCenterToCornerVec b _0811FEAE .pool _0811FEA8: @@ -707,7 +707,7 @@ _0811FEAE: adds r0, r4, 0 movs r2, 0 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 @@ -717,7 +717,7 @@ _0811FEAE: lsls r1, r3, 4 adds r1, r3 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 str r1, [r2, 0x24] ldr r3, [sp, 0x4C] @@ -726,7 +726,7 @@ _0811FEAE: strh r0, [r1, 0x2E] ldr r0, [r2, 0x24] movs r1, 0x8 - bl StartObjectImageAnim + bl StartSpriteAnim b _0811FF28 .pool _0811FEFC: @@ -787,14 +787,14 @@ sub_811FF40: @ 811FF40 lsls r1, 24 lsrs r1, 24 adds r0, r2, 0 - bl StartObjectImageAnim + bl StartSpriteAnim b _0811FF76 .pool _0811FF6C: lsls r1, 25 lsrs r1, 24 adds r0, r2, 0 - bl StartObjectImageAnim + bl StartSpriteAnim _0811FF76: pop {r0} bx r0 @@ -885,7 +885,7 @@ sub_811FFD4: @ 811FFD4 ldr r0, =gUnknown_0859EFA4 str r0, [sp, 0x8] str r2, [sp, 0xC] - ldr r0, =gDummyObjectRotScalAnimTable + ldr r0, =gDummySpriteAffineAnimTable str r0, [sp, 0x10] ldr r0, =TaskDummy7 str r0, [sp, 0x14] @@ -897,14 +897,14 @@ sub_811FFD4: @ 811FFD4 orrs r0, r3 str r0, [r5, 0x4] adds r0, r5, 0 - bl LoadObjectPic + bl LoadSpriteSheet adds r0, r4, 0 - bl LoadTaggedObjectPalette + bl LoadSpritePalette mov r0, sp movs r1, 0 movs r2, 0 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 @@ -916,7 +916,7 @@ _08120068: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 _08120072: add sp, 0x28 diff --git a/asm/money.s b/asm/money.s index 5f83e756a8..41f2b2532c 100644 --- a/asm/money.s +++ b/asm/money.s @@ -18,9 +18,9 @@ DecryptMoney: @ 80E5114 .pool thumb_func_end DecryptMoney - thumb_func_start EncryptMoney -@ void EncryptMoney(u32 *moneyPointer, u32 moneyAmount) -EncryptMoney: @ 80E5128 + thumb_func_start SetMoney +@ void SetMoney(u32 *moneyPointer, u32 moneyAmount) +SetMoney: @ 80E5128 ldr r2, =gSaveBlock2Ptr ldr r2, [r2] adds r2, 0xAC @@ -29,7 +29,7 @@ EncryptMoney: @ 80E5128 str r2, [r0] bx lr .pool - thumb_func_end EncryptMoney + thumb_func_end SetMoney thumb_func_start IsEnoughMoney @ bool8 IsEnoughMoney(u32 *moneyPointer, u32 price) @@ -71,7 +71,7 @@ add_money: @ 80E5154 _080E5178: adds r0, r6, 0 adds r1, r5, 0 - bl EncryptMoney + bl SetMoney pop {r4-r6} pop {r0} bx r0 @@ -94,7 +94,7 @@ _080E51A0: subs r1, r4 _080E51A2: adds r0, r5, 0 - bl EncryptMoney + bl SetMoney pop {r4,r5} pop {r0} bx r0 @@ -108,7 +108,7 @@ sub_80E51B0: @ 80E51B0 movs r1, 0x92 lsls r1, 3 adds r0, r1 - ldr r1, =gUnknown_020375E2 + ldr r1, =gSpecialVar_0x8005 ldrh r1, [r1] bl IsEnoughMoney lsls r0, 24 @@ -126,7 +126,7 @@ sub_80E51D4: @ 80E51D4 movs r1, 0x92 lsls r1, 3 adds r0, r1 - ldr r1, =gUnknown_020375E2 + ldr r1, =gSpecialVar_0x8005 ldrh r1, [r1] bl subtract_money pop {r0} @@ -374,7 +374,7 @@ AddMoneyLabelObject: @ 80E53AC adds r1, r4, 0 adds r2, r5, 0 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r1, =gUnknown_02039F99 strb r0, [r1] pop {r4,r5} @@ -391,9 +391,9 @@ RemoveMoneyLabelObject: @ 80E53F4 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeResources + bl DestroySpriteAndFreeResources pop {r0} bx r0 .pool diff --git a/asm/mystery_event_menu.s b/asm/mystery_event_menu.s index a6086cf7a4..003fa80f57 100644 --- a/asm/mystery_event_menu.s +++ b/asm/mystery_event_menu.s @@ -8,8 +8,8 @@ thumb_func_start sub_8178944 sub_8178944: @ 8178944 push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -36,8 +36,8 @@ _08178968: sub_8178974: @ 8178974 push {r4,lr} sub sp, 0x8 - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes bl ResetTasks ldr r0, =sub_8178944 bl SetVBlankCallback @@ -87,10 +87,10 @@ _081789AC: ldr r0, =sub_8009404 movs r1, 0 bl CreateTask - bl sub_80A2F30 + bl StopMapMusic bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl RunTextPrinters bl UpdatePaletteFade movs r0, 0 @@ -255,7 +255,7 @@ _08178B8E: b _08178D00 _08178B98: movs r0, 0x15 - bl audio_play + bl PlaySE ldr r1, =gUnknown_085EE788 movs r0, 0x1 str r0, [sp] @@ -294,7 +294,7 @@ _08178BDC: cmp r0, 0 beq _08178C38 movs r0, 0x5 - bl audio_play + bl PlaySE bl sub_800A620 movs r0, 0x1 movs r1, 0x1 @@ -326,7 +326,7 @@ _08178C38: b _08178E58 _08178C42: movs r0, 0x5 - bl audio_play + bl PlaySE bl sub_80097E8 movs r0, 0x87 lsls r0, 3 @@ -415,7 +415,7 @@ _08178D00: b _08178E58 _08178D0E: movs r0, 0x5 - bl audio_play + bl PlaySE bl sub_80097E8 movs r2, 0x87 lsls r2, 3 @@ -484,7 +484,7 @@ _08178D74: cmp r0, 0 bne _08178E34 movs r0, 0 - bl save_game_when_memory_present + bl TrySavingData b _08178E34 .pool _08178DBC: @@ -526,7 +526,7 @@ _08178E0C: cmp r0, 0 beq _08178E58 movs r0, 0x5 - bl audio_play + bl PlaySE movs r2, 0x87 lsls r2, 3 adds r1, r4, r2 @@ -590,8 +590,8 @@ _08178E58: strb r1, [r0] _08178E98: bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl RunTextPrinters bl UpdatePaletteFade add sp, 0x8 diff --git a/asm/mystery_event_script.s b/asm/mystery_event_script.s index 2430cd87cd..389b8146a0 100644 --- a/asm/mystery_event_script.s +++ b/asm/mystery_event_script.s @@ -418,7 +418,7 @@ sub_8153ACC: @ 8153ACC subs r0, r1 ldr r1, [r4, 0x64] adds r0, r1 - bl script_env_2_execute_new_script + bl ScriptContext2_RunNewScript movs r0, 0 pop {r4} pop {r1} @@ -582,7 +582,7 @@ sub_8153BE4: @ 8153BE4 sub_8153C4C: @ 8153C4C push {r4,lr} adds r4, r0, 0 - bl sub_809D3E8 + bl EnableNationalPokedex ldr r0, =gStringVar4 ldr r1, =gUnknown_08674B9E bl StringExpandPlaceholders @@ -680,7 +680,7 @@ _08153D18: movs r2, 0xB bl StringCopyN _08153D22: - ldr r0, =gUnknown_020244E9 + ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r0, 0x6 bne _08153D4C @@ -780,7 +780,7 @@ sub_8153DD4: @ 8153DD4 sub_8153E1C: @ 8153E1C push {r4,lr} adds r4, r0, 0 - bl sub_809D5F4 + bl EnableResetRTC ldr r0, =gStringVar4 ldr r1, =gUnknown_085ECAD8 bl StringExpandPlaceholders diff --git a/asm/naming_screen.s b/asm/naming_screen.s index d189a83ee1..b385fc444b 100644 --- a/asm/naming_screen.s +++ b/asm/naming_screen.s @@ -104,8 +104,8 @@ _080E2E58: bl ResetPaletteFade b _080E2E86 _080E2E5E: - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes b _080E2E86 _080E2E68: bl ResetTasks @@ -247,7 +247,7 @@ _080E2F64: sub_80E2FA4: @ 80E2FA4 push {r4,r5,lr} movs r3, 0 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites movs r5, 0x5 negs r5, r5 _080E2FAE: @@ -972,7 +972,7 @@ sub_80E3640: @ 80E3640 movs r2, 0x1 bl sub_80E3948 movs r0, 0x6 - bl audio_play + bl PlaySE ldr r0, =gUnknown_02039F94 ldr r0, [r0] ldr r1, =0x00001e10 @@ -1490,7 +1490,7 @@ sub_80E3A74: @ 80E3A74 lsls r4, 24 lsrs r4, 24 movs r0, 0x4 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 movs r1, 0x87 @@ -1500,7 +1500,7 @@ sub_80E3A74: @ 80E3A74 add r6, sp, 0x8 strh r0, [r6] movs r0, 0x6 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 adds r0, r5 @@ -1508,14 +1508,14 @@ sub_80E3A74: @ 80E3A74 adds r1, 0xA strh r0, [r1] movs r0, 0x7 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 adds r0, r5 add r1, sp, 0xC strh r0, [r1] movs r0, 0x7 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 ldr r1, =0x00000101 @@ -1589,7 +1589,7 @@ sub_80E3B30: @ 80E3B30 beq _080E3B48 adds r0, r5, 0 movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim _080E3B48: ldrh r0, [r5, 0x36] movs r1, 0xFF @@ -1686,7 +1686,7 @@ _080E3BDE: lsls r4, 24 lsrs r4, 24 movs r0, 0x5 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 ldr r2, =0x01010000 @@ -1812,7 +1812,7 @@ sub_80E3CE4: @ 80E3CE4 movs r1, 0x26 movs r2, 0x58 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite ldr r5, =gUnknown_02039F94 ldr r1, [r5] ldr r4, =0x00001e23 @@ -1820,7 +1820,7 @@ sub_80E3CE4: @ 80E3CE4 strb r0, [r1] movs r0, 0x1 bl sub_80E3E3C - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites ldr r0, [r5] adds r0, r4 ldrb r0, [r0] @@ -1888,7 +1888,7 @@ sub_80E3D78: @ 80E3D78 lsls r1, r2, 4 adds r1, r2 lsls r1, 2 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites adds r5, r1, r2 lsrs r1, r0, 16 mov r8, r1 @@ -1943,7 +1943,7 @@ sub_80E3DFC: @ 80E3DFC lsls r2, r3, 4 adds r2, r3 lsls r2, 2 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites adds r2, r3 ldrh r3, [r2, 0x2E] strh r3, [r0] @@ -1970,7 +1970,7 @@ sub_80E3E3C: @ 80E3E3C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites ldr r1, =gUnknown_02039F94 ldr r4, [r1] ldr r1, =0x00001e23 @@ -1998,7 +1998,7 @@ sub_80E3E3C: @ 80E3E3C lsls r0, 2 adds r0, r5 movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim pop {r4,r5} pop {r0} bx r0 @@ -2009,7 +2009,7 @@ sub_80E3E3C: @ 80E3E3C sub_80E3E94: @ 80E3E94 push {r4,r5,lr} lsls r0, 24 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites ldr r1, =gUnknown_02039F94 ldr r4, [r1] ldr r1, =0x00001e23 @@ -2049,10 +2049,10 @@ sub_80E3ED8: @ 80E3ED8 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim pop {r0} bx r0 .pool @@ -2060,7 +2060,7 @@ sub_80E3ED8: @ 80E3ED8 thumb_func_start sub_80E3F04 sub_80E3F04: @ 80E3F04 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, =gUnknown_02039F94 ldr r0, [r0] ldr r1, =0x00001e23 @@ -2135,7 +2135,7 @@ sub_80E3F8C: @ 80E3F8C movs r1, 0xCC movs r2, 0x58 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_02039F94 @@ -2146,12 +2146,12 @@ sub_80E3F8C: @ 80E3F8C lsls r5, r0, 4 adds r5, r0 lsls r5, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r8, r0 add r5, r8 ldr r1, =gUnknown_0858C050 adds r0, r5, 0 - bl SetSpriteOamTables_NoPriorityFromTable + bl SetSubspriteTables adds r1, r5, 0 adds r1, 0x3E ldrb r0, [r1] @@ -2162,7 +2162,7 @@ sub_80E3F8C: @ 80E3F8C movs r1, 0xCC movs r2, 0x54 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x3A] @@ -2172,7 +2172,7 @@ sub_80E3F8C: @ 80E3F8C add r4, r8 ldr r1, =gUnknown_0858C058 adds r0, r4, 0 - bl SetSpriteOamTables_NoPriorityFromTable + bl SetSubspriteTables adds r4, 0x3E ldrb r0, [r4] orrs r0, r6 @@ -2181,7 +2181,7 @@ sub_80E3F8C: @ 80E3F8C movs r1, 0xCC movs r2, 0x53 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r2, r0, 4 @@ -2217,7 +2217,7 @@ sub_80E4050: @ 80E4050 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 movs r1, 0x2 strh r1, [r0, 0x2E] @@ -2260,7 +2260,7 @@ sub_80E40AC: @ 80E40AC lsls r5, r0, 4 adds r5, r0 lsls r5, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r5, r1 movs r2, 0x3C ldrsh r0, [r6, r2] @@ -2304,7 +2304,7 @@ sub_80E4104: @ 80E4104 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites adds r4, r0, r2 movs r0, 0x3C ldrsh r1, [r3, r0] @@ -2361,7 +2361,7 @@ sub_80E4178: @ 80E4178 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r2, r0, r1 adds r3, r2, 0 adds r3, 0x3E @@ -2402,7 +2402,7 @@ sub_80E41B8: @ 80E41B8 lsls r4, r5, 1 adds r0, r4, r0 ldrh r0, [r0] - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 4 mov r1, r8 ldrb r2, [r1, 0x5] @@ -2414,7 +2414,7 @@ sub_80E41B8: @ 80E41B8 ldr r0, =gUnknown_0858BEFE adds r4, r0 ldrh r0, [r4] - bl GetObjectTileRangeStartByTag + bl GetSpriteTileStartByTag adds r1, r6, 0 adds r1, 0x40 strh r0, [r1] @@ -2444,19 +2444,19 @@ sub_80E4218: @ 80E4218 movs r1, 0xCC movs r2, 0x74 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites adds r4, r6 ldr r0, =gUnknown_0858C070 mov r8, r0 adds r0, r4, 0 mov r1, r8 - bl SetSpriteOamTables_NoPriorityFromTable + bl SetSubspriteTables adds r4, 0x3E ldrb r0, [r4] movs r5, 0x4 @@ -2466,7 +2466,7 @@ sub_80E4218: @ 80E4218 movs r1, 0xCC movs r2, 0x8C movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 @@ -2475,7 +2475,7 @@ sub_80E4218: @ 80E4218 adds r4, r6 adds r0, r4, 0 mov r1, r8 - bl SetSpriteOamTables_NoPriorityFromTable + bl SetSubspriteTables adds r4, 0x3E ldrb r0, [r4] orrs r0, r5 @@ -2502,10 +2502,10 @@ sub_80E4290: @ 80E4290 asrs r1, 16 movs r2, 0x38 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 @@ -2540,7 +2540,7 @@ _080E42E2: ldr r0, =gUnknown_0858C168 movs r2, 0x3C movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 lsls r0, r1, 4 @@ -2615,7 +2615,7 @@ sub_80E4384: @ 80E4384 bl sub_808BD3C lsls r0, 24 lsrs r0, 24 - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy movs r2, 0 str r2, [sp] movs r2, 0x38 @@ -2624,7 +2624,7 @@ sub_80E4384: @ 80E4384 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 @@ -2634,7 +2634,7 @@ sub_80E4384: @ 80E4384 orrs r1, r2 strb r1, [r0, 0x5] movs r1, 0x4 - bl StartObjectImageAnim + bl StartSpriteAnim add sp, 0x4 pop {r0} bx r0 @@ -2648,17 +2648,17 @@ sub_80E43E0: @ 80E43E0 movs r1, 0x38 movs r2, 0x29 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 ldr r1, =gUnknown_0858C078 adds r0, r4, 0 - bl SetSpriteOamTables_NoPriorityFromTable + bl SetSubspriteTables ldrb r0, [r4, 0x5] movs r1, 0xC orrs r0, r1 @@ -2679,7 +2679,7 @@ sub_80E4420: @ 80E4420 ldr r1, =0x00001e34 adds r0, r3, r1 ldrh r0, [r0] - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy movs r2, 0 str r2, [sp] ldr r2, =0x00001e38 @@ -2693,7 +2693,7 @@ sub_80E4420: @ 80E4420 bl sub_80D2CC4 lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -2712,7 +2712,7 @@ sub_80E4420: @ 80E4420 sub_80E447C: @ 80E447C push {lr} sub sp, 0x4 - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy movs r0, 0 str r0, [sp] movs r0, 0x13 @@ -2722,7 +2722,7 @@ sub_80E447C: @ 80E447C adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 @@ -2732,7 +2732,7 @@ sub_80E447C: @ 80E447C orrs r1, r2 strb r1, [r0, 0x5] movs r1, 0x4 - bl StartObjectImageAnim + bl StartSpriteAnim add sp, 0x4 pop {r0} bx r0 @@ -2877,7 +2877,7 @@ sub_80E45A4: @ 80E45A4 b _080E45D2 _080E45BE: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =gUnknown_02039F94 ldr r0, [r0] ldr r1, =0x00001e10 @@ -3577,7 +3577,7 @@ _080E4B38: bl sub_80E3948 _080E4B42: movs r0, 0x17 - bl audio_play + bl PlaySE pop {r4-r6} pop {r0} bx r0 @@ -3606,7 +3606,7 @@ sub_80E4B54: @ 80E4B54 movs r0, 0x3 bl CopyBgTilemapBufferToVram movs r0, 0x5 - bl audio_play + bl PlaySE bl sub_80E4AB4 lsls r0, 24 lsrs r0, 24 @@ -3739,9 +3739,9 @@ choose_name_or_words_screen_load_bg_tile_patterns: @ 80E4C54 movs r3, 0 bl LoadBgTiles ldr r0, =gUnknown_0858C1C8 - bl LoadObjectPics + bl LoadSpriteSheets ldr r0, =gUnknown_0858C230 - bl LoadTaggedObjectPalettes + bl LoadSpritePalettes pop {r4-r6} pop {r0} bx r0 @@ -4059,8 +4059,8 @@ sub_80E4EF0: @ 80E4EF0 sub_80E4F58: @ 80E4F58 push {lr} bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 @@ -4090,8 +4090,8 @@ sub_80E4F84: @ 80E4F84 thumb_func_start sub_80E4F94 sub_80E4F94: @ 80E4F94 push {r4,r5,lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer ldr r5, =gUnknown_02039F94 ldr r0, [r5] diff --git a/asm/new_game.s b/asm/new_game.s index 36b09aaf66..5a13e5f3e0 100644 --- a/asm/new_game.s +++ b/asm/new_game.s @@ -5,260 +5,22 @@ .text - thumb_func_start write_word_to_mem -@ void write_word_to_mem(int value, int *mem) -write_word_to_mem: @ 80842CC - strb r0, [r1] - lsrs r2, r0, 8 - strb r2, [r1, 0x1] - lsrs r2, r0, 16 - strb r2, [r1, 0x2] - lsrs r0, 24 - strb r0, [r1, 0x3] - bx lr - thumb_func_end write_word_to_mem - thumb_func_start sub_80842DC -sub_80842DC: @ 80842DC - adds r2, r0, 0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - ldrb r1, [r2, 0x2] - lsls r1, 16 - orrs r0, r1 - ldrb r1, [r2, 0x1] - lsls r1, 8 - orrs r0, r1 - ldrb r1, [r2] - orrs r0, r1 - bx lr - thumb_func_end sub_80842DC - - thumb_func_start sub_80842F4 -sub_80842F4: @ 80842F4 - push {r4,lr} - adds r4, r0, 0 - adds r3, r1, 0 - movs r2, 0 -_080842FC: - adds r0, r4, r2 - adds r1, r3, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x3 - ble _080842FC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80842F4 - - thumb_func_start set_player_trainer_id -set_player_trainer_id: @ 8084310 - push {r4,lr} - bl Random - adds r4, r0, 0 - bl GetTrainerId - lsls r4, 16 - lsls r0, 16 - lsrs r0, 16 - orrs r4, r0 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - adds r1, 0xA - adds r0, r4, 0 - bl write_word_to_mem - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end set_player_trainer_id - - thumb_func_start init_options -init_options: @ 808433C - ldr r3, =gSaveBlock2Ptr - ldr r2, [r3] - ldrb r1, [r2, 0x14] - movs r0, 0x8 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x14] - ldr r2, [r3] - ldrb r1, [r2, 0x14] - movs r0, 0x7 - ands r0, r1 - strb r0, [r2, 0x14] - ldr r2, [r3] - ldrb r1, [r2, 0x15] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x15] - ldr r2, [r3] - ldrb r1, [r2, 0x15] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x15] - ldr r2, [r3] - ldrb r1, [r2, 0x15] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x15] - ldr r2, [r3] - ldrb r1, [r2, 0x15] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x15] - bx lr - .pool - thumb_func_end init_options - - thumb_func_start sub_8084390 -sub_8084390: @ 8084390 - push {r4,lr} - ldr r1, =gUnknown_030060B0 - movs r0, 0 - strb r0, [r1] - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - adds r0, 0x28 - movs r1, 0 - movs r2, 0x34 - bl memset - ldr r0, [r4] - adds r0, 0x5C - movs r1, 0 - movs r2, 0x34 - bl memset - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8084390 - - thumb_func_start sub_80843C0 -sub_80843C0: @ 80843C0 - push {r4-r7,lr} - bl sub_80DF040 - movs r2, 0x8 - ldr r0, =gSaveBlock1Ptr - mov r12, r0 - ldr r4, =0x00002e90 - ldr r3, =gUnknown_08339D1C -_080843D0: - mov r1, r12 - ldr r0, [r1] - lsls r1, r2, 5 - adds r0, r1 - adds r0, r4 - adds r1, r3, 0 - ldm r1!, {r5-r7} - stm r0!, {r5-r7} - ldm r1!, {r5-r7} - stm r0!, {r5-r7} - ldm r1!, {r5,r6} - stm r0!, {r5,r6} - adds r2, 0x1 - cmp r2, 0xC - ble _080843D0 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80843C0 - - thumb_func_start sub_8084400 -sub_8084400: @ 8084400 - push {r4,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - ldr r4, =gSaveBlock2Ptr - ldr r1, [r4] - ldr r0, =0x0000064c - adds r1, r0 - ldr r2, =0x05000238 - mov r0, sp - bl CpuSet - ldr r0, [r4] - ldr r1, =0x00000ee1 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - ldr r0, [r4] - ldr r1, =0x00000ee9 - adds r0, r1 - movs r1, 0x1 - negs r1, r1 - strb r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8084400 - - thumb_func_start sub_808444C -sub_808444C: @ 808444C - push {lr} - sub sp, 0x4 - movs r3, 0x1 - negs r3, r3 - str r3, [sp] - movs r0, 0x19 - movs r1, 0x28 - adds r2, r3, 0 - bl warp1_set - bl warp_in - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_808444C - - thumb_func_start init_sav2 -init_sav2: @ 808446C - push {lr} - bl memclr_stdsav2 - bl init_options - pop {r0} - bx r0 - thumb_func_end init_sav2 - - thumb_func_start sub_808447C -sub_808447C: @ 808447C - push {lr} - ldr r1, =gUnknown_020322D4 - movs r0, 0 - strb r0, [r1] - bl sub_80BB358 - bl zero_player_party_data - bl zero_enemy_party_data - bl sub_81AAB70 - bl sub_813624C - pop {r0} - bx r0 - .pool - thumb_func_end sub_808447C thumb_func_start NewGameInitData @ void NewGameInitData() NewGameInitData: @ 80844A0 push {r4,r5,lr} - ldr r0, =gUnknown_03006210 + ldr r0, =gSaveFileStatus ldrh r0, [r0] cmp r0, 0 beq _080844AE cmp r0, 0x2 bne _080844B2 _080844AE: - bl GameFreakRTC_Reset + bl RtcReset _080844B2: - ldr r1, =gUnknown_020322D4 + ldr r1, =gDifferentSaveFile movs r0, 0x1 strb r0, [r1] ldr r4, =gSaveBlock2Ptr @@ -266,80 +28,80 @@ _080844B2: adds r0, 0xAC movs r5, 0 str r5, [r0] - bl zero_player_party_data - bl zero_enemy_party_data - bl sub_80BB2D0 + bl ZeroPlayerPartyMons + bl ZeroEnemyPartyMons + bl ResetPokedex bl sub_8084400 - bl clear_sav1 - bl sub_80D436C + bl ClearSav1 + bl ClearMailData ldr r0, [r4] strb r5, [r0, 0x9] ldr r0, [r4] adds r0, 0xA8 str r5, [r0] - bl set_player_trainer_id - bl reset_playtime - bl sub_8084390 - bl sub_809D300 - bl sub_80EBEE0 - bl GabbyAndTyNewGameInitData - bl sub_80E8B28 - bl RemoveAllBerryTrees + bl InitPlayerTrainerId + bl PlayTimeCounter_Reset + bl ClearPokedexFlags + bl InitEventData + bl ClearTVShowData + bl ResetGabbyAndTy + bl ResetSecretBases + bl ClearBerryTrees ldr r4, =gSaveBlock1Ptr ldr r0, [r4] movs r1, 0x92 lsls r1, 3 adds r0, r1 ldr r1, =0x00000bb8 - bl EncryptMoney + bl SetMoney movs r0, 0 bl SetCoins - bl sub_80D766C - bl sub_80847A8 - bl sub_80843C0 - bl sub_813C1F8 - bl sub_80F9A7C - bl sub_80F9AD4 - ldr r0, =gUnknown_020244E9 + bl ResetLinkContestBoolean + bl ResetGameStats + bl ClearAllContestWinnerPics + bl InitLinkBattleRecords + bl InitSeedotSizeRecord + bl InitLotadSizeRecord + ldr r0, =gPlayerPartyCount strb r5, [r0] - bl zero_player_party_data - bl sub_80C7770 - bl sub_8161B34 - bl sub_8161B60 + bl ZeroPlayerPartyMons + bl ResetPokemonStorageSystem + bl ClearRoamerData + bl ClearRoamerLocationData ldr r0, [r4] ldr r1, =0x00000496 adds r0, r1 strh r5, [r0] - bl sub_80D7094 - bl sub_816ADF4 - bl sub_8136E88 - bl sub_81618B4 - bl sub_811F184 - bl sub_8120160 - bl sub_81224D4 - bl sub_813BA10 - bl sub_8177558 - bl sub_808444C + bl ClearBag + bl NewGameInitPCItems + bl ClearPokeblocks + bl ClearDecorationInventories + bl InitEasyChatPhrases + bl SetMauvilleOldMan + bl InitDewfordTrend + bl ResetFanClub + bl ResetLotteryCorner + bl WarpToTruck ldr r0, =gUnknown_082715DE - bl script_env_2_execute_new_script - bl sub_80845CC + bl ScriptContext2_RunNewScript + bl ResetMiniGamesResults bl copy_strings_to_sav1 - bl sub_818DA30 + bl SetLilycoveLady bl sub_819FAA0 bl sub_81A4B14 bl sub_8195E10 bl sub_801AFD8 bl sub_800E5AC bl sub_81D54BC - bl sub_80DED74 + bl ResetContestLinkResults pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end NewGameInitData - thumb_func_start sub_80845CC -sub_80845CC: @ 80845CC + thumb_func_start ResetMiniGamesResults +ResetMiniGamesResults: @ 80845CC push {r4-r6,lr} sub sp, 0x4 mov r0, sp @@ -359,8 +121,8 @@ sub_80845CC: @ 80845CC lsls r1, 1 adds r0, r1 movs r1, 0 - bl sub_802467C - bl sub_802E33C + bl SetBerryPowder + bl ResetPokeJumpResults mov r0, sp adds r0, 0x2 strh r5, [r0] @@ -375,6 +137,6 @@ sub_80845CC: @ 80845CC pop {r0} bx r0 .pool - thumb_func_end sub_80845CC + thumb_func_end ResetMiniGamesResults .align 2, 0 @ Don't pad with nop. diff --git a/asm/option_menu.s b/asm/option_menu.s index eaa453e04e..cc6acc5ac8 100644 --- a/asm/option_menu.s +++ b/asm/option_menu.s @@ -9,8 +9,8 @@ sub_80BA4B0: @ 80BA4B0 push {lr} bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 @@ -19,8 +19,8 @@ sub_80BA4B0: @ 80BA4B0 thumb_func_start sub_80BA4C8 sub_80BA4C8: @ 80BA4C8 push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -212,7 +212,7 @@ _080BA69C: bl ResetPaletteFade bl remove_some_task bl ResetTasks - bl ResetAllObjectData + bl ResetSpriteData ldr r1, =gMain movs r0, 0x87 lsls r0, 3 diff --git a/asm/play_time.s b/asm/play_time.s deleted file mode 100644 index 8dc5aa53fb..0000000000 --- a/asm/play_time.s +++ /dev/null @@ -1,125 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start reset_playtime -reset_playtime: @ 80841E4 - ldr r1, =gUnknown_03000E08 - movs r0, 0 - strb r0, [r1] - ldr r2, =gSaveBlock2Ptr - ldr r3, [r2] - movs r1, 0 - movs r0, 0 - strh r0, [r3, 0xE] - strb r1, [r3, 0x10] - ldr r0, [r2] - strb r1, [r0, 0x11] - ldr r0, [r2] - strb r1, [r0, 0x12] - bx lr - .pool - thumb_func_end reset_playtime - - thumb_func_start set_max_playtime_if_appropriate -set_max_playtime_if_appropriate: @ 8084208 - push {lr} - ldr r1, =gUnknown_03000E08 - movs r0, 0x1 - strb r0, [r1] - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrh r1, [r0, 0xE] - ldr r0, =0x000003e7 - cmp r1, r0 - bls _08084220 - bl set_max_playtime -_08084220: - pop {r0} - bx r0 - .pool - thumb_func_end set_max_playtime_if_appropriate - - thumb_func_start sub_8084230 -sub_8084230: @ 8084230 - ldr r1, =gUnknown_03000E08 - movs r0, 0 - strb r0, [r1] - bx lr - .pool - thumb_func_end sub_8084230 - - thumb_func_start PlayTimeCounter_Update -PlayTimeCounter_Update: @ 808423C - push {lr} - ldr r0, =gUnknown_03000E08 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08084294 - ldr r2, =gSaveBlock2Ptr - ldr r0, [r2] - ldrb r1, [r0, 0x12] - adds r1, 0x1 - movs r3, 0 - strb r1, [r0, 0x12] - ldr r1, [r2] - ldrb r0, [r1, 0x12] - cmp r0, 0x3B - bls _08084294 - strb r3, [r1, 0x12] - ldr r0, [r2] - ldrb r1, [r0, 0x11] - adds r1, 0x1 - strb r1, [r0, 0x11] - ldr r1, [r2] - ldrb r0, [r1, 0x11] - cmp r0, 0x3B - bls _08084294 - strb r3, [r1, 0x11] - ldr r0, [r2] - ldrb r1, [r0, 0x10] - adds r1, 0x1 - strb r1, [r0, 0x10] - ldr r1, [r2] - ldrb r0, [r1, 0x10] - cmp r0, 0x3B - bls _08084294 - strb r3, [r1, 0x10] - ldr r0, [r2] - ldrh r1, [r0, 0xE] - adds r1, 0x1 - strh r1, [r0, 0xE] - lsls r1, 16 - ldr r0, =0x03e70000 - cmp r1, r0 - bls _08084294 - bl set_max_playtime -_08084294: - pop {r0} - bx r0 - .pool - thumb_func_end PlayTimeCounter_Update - - thumb_func_start set_max_playtime -set_max_playtime: @ 80842A4 - ldr r1, =gUnknown_03000E08 - movs r0, 0x2 - strb r0, [r1] - ldr r2, =gSaveBlock2Ptr - ldr r3, [r2] - ldr r0, =0x000003e7 - strh r0, [r3, 0xE] - movs r1, 0x3B - strb r1, [r3, 0x10] - ldr r0, [r2] - strb r1, [r0, 0x11] - ldr r0, [r2] - strb r1, [r0, 0x12] - bx lr - .pool - thumb_func_end set_max_playtime - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/player_pc.s b/asm/player_pc.s index ad85fb3304..dc76f81382 100644 --- a/asm/player_pc.s +++ b/asm/player_pc.s @@ -5,8 +5,8 @@ .text - thumb_func_start sub_816ADF4 -sub_816ADF4: @ 816ADF4 + thumb_func_start NewGameInitPCItems +NewGameInitPCItems: @ 816ADF4 push {r4-r6,lr} movs r4, 0 ldr r0, =gSaveBlock1Ptr @@ -15,7 +15,7 @@ sub_816ADF4: @ 816ADF4 lsls r1, 3 adds r0, r1 movs r1, 0x32 - bl sub_80D6C7C + bl ClearItemSlots ldr r1, =gUnknown_085DFEFC ldrh r0, [r1] cmp r0, 0 @@ -53,7 +53,7 @@ _0816AE48: pop {r0} bx r0 .pool - thumb_func_end sub_816ADF4 + thumb_func_end NewGameInitPCItems thumb_func_start sub_816AE58 sub_816AE58: @ 816AE58 @@ -210,7 +210,7 @@ _0816AFC4: cmp r5, r0 bne _0816B014 movs r0, 0x5 - bl audio_play + bl PlaySE ldrb r0, [r4, 0x8] movs r1, 0 bl sub_8198070 @@ -504,7 +504,7 @@ sub_816B248: @ 816B248 cmp r4, r0 beq _0816B2B4 movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =gUnknown_085DFEDC lsls r1, r4, 3 adds r0, 0x4 @@ -529,7 +529,7 @@ _0816B298: .pool _0816B2B4: movs r0, 0x5 - bl audio_play + bl PlaySE adds r0, r6, 0 bl sub_816B4A4 _0816B2C0: @@ -1033,7 +1033,7 @@ sub_816B674: @ 816B674 .pool _0816B6D4: movs r0, 0x5 - bl audio_play + bl PlaySE mov r1, r8 ldrb r0, [r1, 0x9] bl RemoveScrollIndicatorArrowPair @@ -1042,7 +1042,7 @@ _0816B6D4: b _0816B71E _0816B6EA: movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0 bl sub_81D1D04 movs r0, 0x1 @@ -1192,13 +1192,13 @@ sub_816B82C: @ 816B82C cmp r4, r0 bne _0816B858 movs r0, 0x5 - bl audio_play + bl PlaySE adds r0, r5, 0 bl sub_816BBD4 b _0816B86E _0816B858: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =gUnknown_085DFF04 lsls r1, r4, 3 adds r0, 0x4 @@ -1398,7 +1398,7 @@ _0816B9FC: b _0816BA10 _0816BA04: movs r0, 0x5 - bl audio_play + bl PlaySE _0816BA0A: adds r0, r4, 0 bl sub_816BAAC @@ -1428,7 +1428,7 @@ sub_816BA18: @ 816BA18 adds r5, r1, r0 ldrh r0, [r5, 0x20] movs r1, 0x1 - bl bag_add_item + bl AddBagItem lsls r0, 24 cmp r0, 0 bne _0816BA68 @@ -1850,7 +1850,7 @@ sub_816BDC8: @ 816BDC8 lsls r0, r1, 16 lsrs r0, 16 adds r1, r2, 0 - bl itemid_get_name + bl CopyItemName pop {r0} bx r0 thumb_func_end sub_816BDC8 @@ -1864,7 +1864,7 @@ sub_816BDDC: @ 816BDDC cmp r1, 0x1 beq _0816BDEE movs r0, 0x5 - bl audio_play + bl PlaySE _0816BDEE: ldr r0, =gUnknown_0203BCC4 ldr r0, [r0] @@ -1999,7 +1999,7 @@ sub_816BEF0: @ 816BEF0 lsls r1, 3 adds r0, r1 ldrh r0, [r0] - bl itemid_get_description + bl ItemId_GetDescription b _0816BF32 .pool _0816BF2C: @@ -2173,9 +2173,9 @@ sub_816C060: @ 816C060 bne _0816C0B2 ldr r4, =0x000013f6 adds r0, r4, 0 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag adds r0, r4, 0 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag adds r0, r4, 0 adds r1, r4, 0 adds r2, r6, 0 @@ -2185,7 +2185,7 @@ sub_816C060: @ 816C060 cmp r2, 0x40 beq _0816C0B2 strb r2, [r5] - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r2, 4 adds r1, r2 lsls r1, 2 @@ -2218,16 +2218,16 @@ sub_816C0C8: @ 816C0C8 beq _0816C0FA ldr r4, =0x000013f6 adds r0, r4, 0 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag adds r0, r4, 0 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeTiles + bl DestroySprite movs r0, 0xFF strb r0, [r5] _0816C0FA: @@ -2416,7 +2416,7 @@ _0816C2AC: .pool _0816C2B4: adds r0, r1, 0 - bl itemid_get_description + bl ItemId_GetDescription _0816C2BA: pop {r1} bx r1 @@ -2485,7 +2485,7 @@ sub_816C30C: @ 816C30C cmp r1, r0 beq _0816C39E movs r0, 0x5 - bl audio_play + bl PlaySE adds r0, r5, 0 bl sub_816C450 b _0816C39E @@ -2509,13 +2509,13 @@ _0816C35C: .pool _0816C384: movs r0, 0x5 - bl audio_play + bl PlaySE adds r0, r5, 0 bl sub_816C400 b _0816C39E _0816C392: movs r0, 0x5 - bl audio_play + bl PlaySE adds r0, r5, 0 bl sub_816C71C _0816C39E: @@ -2653,7 +2653,7 @@ sub_816C450: @ 816C450 adds r1, r0 ldrh r0, [r1] ldr r1, =gStringVar1 - bl itemid_get_name + bl CopyItemName ldr r0, =0x0000fff7 bl sub_816C228 bl sub_816C2C0 @@ -2771,7 +2771,7 @@ sub_816C5A0: @ 816C5A0 lsls r0, 16 lsrs r6, r0, 16 movs r0, 0x5 - bl audio_play + bl PlaySE mov r2, r8 ldrb r0, [r2, 0xA] adds r1, r4, 0x2 @@ -2960,7 +2960,7 @@ _0816C774: adds r0, r1, r2 ldrh r0, [r0] ldr r1, =gStringVar1 - bl itemid_get_name + bl CopyItemName ldr r0, =0x0000fffe bl sub_816C228 bl sub_816C2C0 @@ -2986,7 +2986,7 @@ _0816C7BC: adds r0, r1, r2 ldrh r0, [r0] ldr r1, =gStringVar1 - bl itemid_get_name + bl CopyItemName ldr r0, =0x0000fffc bl sub_816C228 bl sub_816C2C0 @@ -3073,7 +3073,7 @@ _0816C888: cmp r0, 0 beq _0816C8BC movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0x4 bl sub_816BCC4 movs r3, 0x6 @@ -3094,7 +3094,7 @@ _0816C8BC: cmp r0, 0 beq _0816C8EC movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0x4 bl sub_816BCC4 mov r1, r8 @@ -3145,7 +3145,7 @@ sub_816C8FC: @ 816C8FC adds r0, r1 ldrh r0, [r0] ldrh r1, [r4, 0x4] - bl bag_add_item + bl AddBagItem lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3157,7 +3157,7 @@ sub_816C8FC: @ 816C8FC adds r0, r2 ldrh r0, [r0] ldr r1, =gStringVar1 - bl itemid_get_name + bl CopyItemName ldr r0, =gStringVar2 movs r2, 0x4 ldrsh r1, [r4, r2] @@ -3234,7 +3234,7 @@ sub_816C9B8: @ 816C9B8 adds r0, r2 ldrh r0, [r0] ldr r1, =gStringVar1 - bl itemid_get_name + bl CopyItemName ldr r0, =gStringVar2 movs r2, 0x4 ldrsh r1, [r7, r2] diff --git a/asm/pokeblock_feed.s b/asm/pokeblock_feed.s index 904e0a6cf6..8f63be4527 100644 --- a/asm/pokeblock_feed.s +++ b/asm/pokeblock_feed.s @@ -9,8 +9,8 @@ sub_8179B68: @ 8179B68 push {lr} bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl do_scheduled_bg_tilemap_copies_to_vram bl UpdatePaletteFade pop {r0} @@ -20,8 +20,8 @@ sub_8179B68: @ 8179B68 thumb_func_start sub_8179B84 sub_8179B84: @ 8179B84 push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -84,7 +84,7 @@ _08179C20: b _08179D30 .pool _08179C34: - bl ResetAllObjectData + bl ResetSpriteData ldr r1, =gMain movs r2, 0x87 lsls r2, 3 @@ -92,7 +92,7 @@ _08179C34: b _08179D3A .pool _08179C48: - bl ResetObjectPaletteAllocator + bl FreeAllSpritePalettes b _08179D32 _08179C4E: bl init_uns_table_pokemon_copy @@ -327,7 +327,7 @@ _08179E48: ldr r1, [r1, 0x8] adds r2, r5, 0 adds r3, r4, 0 - bl DecompressMonPic_DetectFrontOrBack_2 + bl HandleLoadSpecialPokePic_2 ldr r0, =gUnknown_0203BD18 ldr r1, [r0] b _08179F5E @@ -781,8 +781,8 @@ sub_817A2C0: @ 817A2C0 ands r0, r1 cmp r0, 0 bne _0817A304 - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes ldr r0, =gMPlay_BGM ldr r1, =0x0000ffff movs r2, 0x80 @@ -849,7 +849,7 @@ sub_817A358: @ 817A358 movs r1, 0x30 movs r2, 0x50 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r8, r0 @@ -870,7 +870,7 @@ sub_817A358: @ 817A358 ldr r2, =0x0000105a adds r1, r2 strb r0, [r1] - ldr r7, =gUnknown_02020630 + ldr r7, =gSprites mov r1, r8 lsls r0, r1, 4 add r0, r8 @@ -880,7 +880,7 @@ sub_817A358: @ 817A358 adds r0, r7, 0 adds r0, 0x1C adds r0, r5, r0 - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy str r1, [r0] mov r2, r9 ldr r0, [r2] @@ -908,7 +908,7 @@ sub_817A358: @ 817A358 lsls r3, 30 lsrs r3, 30 adds r0, r6, 0 - bl CalcVecFromObjectCenterToObjectUpperLeft + bl CalcCenterToCornerVec mov r2, r9 ldr r0, [r2] ldr r1, =0x00001053 @@ -930,7 +930,7 @@ _0817A402: sub_817A434: @ 817A434 lsls r0, 24 lsrs r0, 24 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -970,13 +970,13 @@ sub_817A468: @ 817A468 bne _0817A48E ldrh r0, [r4, 0x32] movs r1, 0 - bl cry_related + bl PlayCry1 _0817A48E: movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x9 bne _0817A49A - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r4, 0x1C] _0817A49A: pop {r4} @@ -995,7 +995,7 @@ sub_817A4A4: @ 817A4A4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites lsls r3, r4, 4 adds r3, r4 lsls r3, 2 @@ -1014,9 +1014,9 @@ sub_817A4A4: @ 817A4A4 str r2, [r1] adds r5, 0x1C adds r3, r5 - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy str r1, [r3] - bl obj_alloc_rotscale_entry + bl InitSpriteAffineAnim adds r0, r4, 0 pop {r4,r5} pop {r1} @@ -1034,7 +1034,7 @@ sub_817A4F8: @ 817A4F8 lsrs r7, r0, 24 lsls r5, 24 lsrs r5, 24 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r8, r0 lsls r0, r7, 4 adds r0, r7 @@ -1044,7 +1044,7 @@ sub_817A4F8: @ 817A4F8 ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix ldrb r0, [r4, 0x1] movs r1, 0x3 orrs r0, r1 @@ -1067,9 +1067,9 @@ _0817A548: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl obj_alloc_rotscale_entry + bl InitSpriteAffineAnim pop {r3} mov r8, r3 pop {r4-r7} @@ -1085,10 +1085,10 @@ sub_817A56C: @ 817A56C movs r1, 0xAE movs r2, 0x54 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -1121,7 +1121,7 @@ sub_817A5A0: @ 817A5A0 cmp r0, 0xA bne _0817A5C6 adds r0, r2, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0817A5C6: pop {r0} bx r0 @@ -1304,7 +1304,7 @@ _0817A7C8: lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 adds r0, r4, 0 stm r0!, {r1} @@ -1342,7 +1342,7 @@ _0817A818: ldr r0, [r4] ldr r1, =gUnknown_085F04FC str r1, [r0, 0x10] - bl obj_alloc_rotscale_entry + bl InitSpriteAffineAnim _0817A850: ldr r0, =0x00001050 adds r1, r4, r0 @@ -1368,13 +1368,13 @@ _0817A858: adds r1, 0xA lsls r1, 24 lsrs r1, 24 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim b _0817A8C8 .pool _0817A898: ldr r0, [r4] ldrb r1, [r2] - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim b _0817A8C8 _0817A8A2: bl sub_817A9E4 @@ -1406,7 +1406,7 @@ _0817A8E0: ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix ldr r2, =0x00001050 adds r1, r4, r2 movs r0, 0x46 @@ -1569,7 +1569,7 @@ sub_817AA3C: @ 817AA3C ldr r0, =gUnknown_0203BD18 ldr r0, [r0] ldr r0, [r0] - bl obj_free_rotscale_entry + bl FreeSpriteOamMatrix movs r0, 0 pop {r1} bx r1 diff --git a/asm/pokedex.s b/asm/pokedex.s index 2b9dd2d35b..14deef48d6 100644 --- a/asm/pokedex.s +++ b/asm/pokedex.s @@ -5,8 +5,8 @@ .text - thumb_func_start sub_80BB2D0 -sub_80BB2D0: @ 80BB2D0 + thumb_func_start ResetPokedex +ResetPokedex: @ 80BB2D0 push {r4-r6,lr} ldr r0, =gUnknown_02039B50 movs r2, 0 @@ -30,7 +30,7 @@ sub_80BB2D0: @ 80BB2D0 str r1, [r0, 0x1C] str r1, [r0, 0x20] str r1, [r0, 0x24] - bl sub_809D3C0 + bl DisableNationalPokedex movs r1, 0 movs r2, 0 ldr r3, =gSaveBlock1Ptr @@ -62,7 +62,7 @@ _080BB30C: pop {r0} bx r0 .pool - thumb_func_end sub_80BB2D0 + thumb_func_end ResetPokedex thumb_func_start sub_80BB358 sub_80BB358: @ 80BB358 @@ -79,8 +79,8 @@ sub_80BB358: @ 80BB358 thumb_func_start sub_80BB370 sub_80BB370: @ 80BB370 push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -381,10 +381,10 @@ _080BB582: _080BB5FC: bl remove_some_task bl ResetTasks - bl ResetAllObjectData + bl ResetSpriteData bl ResetPaletteFade - bl ResetObjectPaletteAllocator - ldr r1, =gUnknown_0300301C + bl FreeAllSpritePalettes + ldr r1, =gReservedSpritePaletteCount movs r0, 0x8 strb r0, [r1] bl dp13_810BB8C @@ -409,7 +409,7 @@ _080BB628: ldr r3, =0x00000612 adds r1, r3 strh r0, [r1] - bl sub_809D42C + bl IsNationalPokedexEnabled adds r1, r0, 0 cmp r1, 0 bne _080BB65E @@ -439,7 +439,7 @@ _080BB65E: adds r0, r3 movs r1, 0 strb r1, [r0] - bl sub_809D42C + bl IsNationalPokedexEnabled cmp r0, 0 bne _080BB6D0 movs r0, 0 @@ -515,8 +515,8 @@ _080BB74C: sub_80BB774: @ 80BB774 push {lr} bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 @@ -601,7 +601,7 @@ _080BB810: cmp r0, 0 beq _080BB8A4 bl sub_80BD8D0 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldr r0, [r7] ldr r5, =0x00000626 adds r0, r5 @@ -673,7 +673,7 @@ _080BB8A4: ldr r1, =sub_80BBA78 str r1, [r0] movs r0, 0x5 - bl audio_play + bl PlaySE b _080BBA06 .pool _080BB8FC: @@ -684,7 +684,7 @@ _080BB8FC: cmp r1, 0 beq _080BB9A0 movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0x1 negs r0, r0 str r4, [sp] @@ -736,7 +736,7 @@ _080BB8FC: str r0, [r3] movs r0, 0x2 _080BB976: - bl audio_play + bl PlaySE bl sub_80BC890 b _080BBA06 .pool @@ -760,7 +760,7 @@ _080BB9A0: ldr r1, =sub_80BBDE8 str r1, [r0] movs r0, 0x3 - bl audio_play + bl PlaySE b _080BBA06 .pool _080BB9D8: @@ -931,7 +931,7 @@ _080BBB34: ldr r1, =sub_80BBDE8 str r1, [r0] movs r0, 0x3 - bl audio_play + bl PlaySE _080BBB58: ldr r2, =gMain ldrh r1, [r2, 0x2E] @@ -972,7 +972,7 @@ _080BBB98: strh r0, [r1] _080BBBB6: movs r0, 0x5 - bl audio_play + bl PlaySE b _080BBBE8 .pool _080BBBC4: @@ -992,7 +992,7 @@ _080BBBC4: adds r0, 0x1 strh r0, [r1] movs r0, 0x5 - bl audio_play + bl PlaySE _080BBBE8: add sp, 0x4 pop {r4-r7} @@ -1006,7 +1006,7 @@ sub_80BBBF4: @ 80BBBF4 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r5, =gUnknown_02039B4C ldr r3, [r5] ldr r6, =0x00000626 @@ -1181,7 +1181,7 @@ _080BBD7C: adds r3, 0x4 adds r1, r3 strh r0, [r1] - bl sub_809D42C + bl IsNationalPokedexEnabled adds r1, r0, 0 cmp r1, 0 bne _080BBDB6 @@ -1227,7 +1227,7 @@ sub_80BBDE8: @ 80BBDE8 adds r1, r2 ldrh r1, [r1] strb r1, [r0, 0x19] - bl sub_809D42C + bl IsNationalPokedexEnabled adds r1, r0, 0 cmp r1, 0 bne _080BBE18 @@ -1334,7 +1334,7 @@ _080BBEEC: cmp r0, 0 beq _080BBF70 bl sub_80BD8D0 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r0, [r5] ldr r2, =0x00000626 adds r0, r2 @@ -1399,7 +1399,7 @@ _080BBF70: ldr r1, =sub_80BC0F8 str r1, [r0] movs r0, 0x5 - bl audio_play + bl PlaySE b _080BC08A .pool _080BBFC8: @@ -1435,7 +1435,7 @@ _080BBFC8: str r0, [r1] movs r0, 0x2 _080BC00A: - bl audio_play + bl PlaySE bl sub_80BC890 b _080BC08A .pool @@ -1459,7 +1459,7 @@ _080BC024: ldr r1, =sub_80BC3DC str r1, [r0] movs r0, 0x3 - bl audio_play + bl PlaySE b _080BC08A .pool _080BC05C: @@ -1640,7 +1640,7 @@ _080BC1E4: ldr r1, =sub_80BC3DC str r1, [r0] movs r0, 0x34 - bl audio_play + bl PlaySE b _080BC238 .pool _080BC214: @@ -1659,7 +1659,7 @@ _080BC214: ldr r1, =sub_80BC47C str r1, [r0] movs r0, 0x3 - bl audio_play + bl PlaySE _080BC238: ldr r2, =gMain ldrh r1, [r2, 0x2E] @@ -1700,7 +1700,7 @@ _080BC278: strh r0, [r1] _080BC296: movs r0, 0x5 - bl audio_play + bl PlaySE b _080BC2C8 .pool _080BC2A4: @@ -1720,7 +1720,7 @@ _080BC2A4: adds r0, 0x1 strh r0, [r1] movs r0, 0x5 - bl audio_play + bl PlaySE _080BC2C8: add sp, 0x4 pop {r4-r6} @@ -1734,7 +1734,7 @@ sub_80BC2D4: @ 80BC2D4 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r5, =gUnknown_02039B4C ldr r3, [r5] ldr r4, =0x00000626 @@ -1875,7 +1875,7 @@ sub_80BC3DC: @ 80BC3DC adds r3, 0x4 adds r1, r3 strh r0, [r1] - bl sub_809D42C + bl IsNationalPokedexEnabled adds r1, r0, 0 cmp r1, 0 bne _080BC42A @@ -1940,7 +1940,7 @@ sub_80BC47C: @ 80BC47C adds r3, 0x4 adds r1, r3 strh r0, [r1] - bl sub_809D42C + bl IsNationalPokedexEnabled adds r1, r0, 0 cmp r1, 0 bne _080BC4CA @@ -2136,15 +2136,15 @@ _080BC682: b _080BC838 .pool _080BC6CC: - bl ResetAllObjectData - bl ResetObjectPaletteAllocator - ldr r1, =gUnknown_0300301C + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r1, =gReservedSpritePaletteCount movs r0, 0x8 strb r0, [r1] ldr r0, =gUnknown_0855D26C bl LoadCompressedObjectPic ldr r0, =gUnknown_0855D27C - bl LoadTaggedObjectPalettes + bl LoadSpritePalettes adds r0, r5, 0 bl sub_80BDB7C b _080BC7F8 @@ -2295,7 +2295,7 @@ sub_80BC844: @ 80BC844 b _080BC862 .pool _080BC858: - bl sub_809D42C + bl IsNationalPokedexEnabled cmp r0, 0 bne _080BC870 ldr r0, =gUnknown_08DC16F6 @@ -2383,7 +2383,7 @@ _080BC8FC: b _080BC92C .pool _080BC910: - bl sub_809D42C + bl IsNationalPokedexEnabled cmp r0, 0 beq _080BC924 mov r0, sp @@ -3611,7 +3611,7 @@ _080BD2DA: bl sub_80BDACC lsls r0, 24 lsrs r1, r0, 24 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 @@ -3635,7 +3635,7 @@ _080BD334: bl sub_80BDACC lsls r0, 24 lsrs r1, r0, 24 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 @@ -3661,7 +3661,7 @@ _080BD366: bl sub_80BDACC lsls r0, 24 lsrs r1, r0, 24 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 @@ -3739,7 +3739,7 @@ _080BD440: movs r3, 0 ldr r4, =0x0000ffff mov r12, r4 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r8, r0 adds r2, r7, 0 _080BD44C: @@ -3804,7 +3804,7 @@ _080BD4DC: movs r3, 0 ldr r2, =0x0000ffff mov r12, r2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites mov r8, r4 adds r2, r7, 0 _080BD4E8: @@ -3930,7 +3930,7 @@ _080BD5D8: bl sub_80BDACC lsls r0, 24 lsrs r1, r0, 24 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 @@ -3972,7 +3972,7 @@ _080BD638: bl sub_80BDACC lsls r0, 24 lsrs r1, r0, 24 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 @@ -4079,7 +4079,7 @@ _080BD734: adds r2, r4, 0 bl sub_80BCE84 movs r0, 0x6C - bl audio_play + bl PlaySE b _080BD81A .pool _080BD74C: @@ -4124,7 +4124,7 @@ _080BD75E: movs r1, 0xE bl sub_80BD2B4 movs r0, 0x6D - bl audio_play + bl PlaySE b _080BD81A .pool _080BD7B4: @@ -4175,7 +4175,7 @@ _080BD7D2: movs r1, 0xE bl sub_80BD2B4 movs r0, 0x6D - bl audio_play + bl PlaySE _080BD81A: mov r0, r10 cmp r0, 0 @@ -4258,7 +4258,7 @@ sub_80BD8D0: @ 80BD8D0 movs r4, 0 ldr r0, =gUnknown_02039B4C mov r12, r0 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites ldr r5, =0x0000ffff _080BD8DC: mov r1, r12 @@ -4535,7 +4535,7 @@ _080BDAE8: adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r4, r5, 4 adds r4, r5 lsls r4, 2 @@ -4600,10 +4600,10 @@ sub_80BDB7C: @ 80BDB7C movs r1, 0xB8 movs r2, 0x4 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites mov r10, r1 lsls r0, r7, 4 adds r0, r7 @@ -4615,7 +4615,7 @@ sub_80BDB7C: @ 80BDB7C movs r1, 0xB8 movs r2, 0x9C movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 4 @@ -4633,18 +4633,18 @@ sub_80BDB7C: @ 80BDB7C movs r1, 0xE6 movs r2, 0x14 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r5, =gUnknown_0855D1C4 adds r0, r5, 0 movs r1, 0x10 movs r2, 0x78 movs r3, 0 - bl AddObjectToFront + bl CreateSprite adds r0, r5, 0 movs r1, 0x30 movs r2, 0x78 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 4 @@ -4652,12 +4652,12 @@ sub_80BDB7C: @ 80BDB7C lsls r0, 2 add r0, r10 movs r1, 0x3 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r5, 0 movs r1, 0x10 movs r2, 0x90 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r4, r7, 4 @@ -4666,7 +4666,7 @@ sub_80BDB7C: @ 80BDB7C add r4, r10 adds r0, r4, 0 movs r1, 0x2 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0x80 mov r9, r0 mov r1, r9 @@ -4675,7 +4675,7 @@ sub_80BDB7C: @ 80BDB7C movs r1, 0x30 movs r2, 0x90 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 4 @@ -4683,13 +4683,13 @@ sub_80BDB7C: @ 80BDB7C lsls r0, 2 add r0, r10 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r6, =gUnknown_0855D1DC adds r0, r6, 0 movs r1, 0 movs r2, 0x50 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r1, r7, 4 @@ -4719,7 +4719,7 @@ sub_80BDB7C: @ 80BDB7C movs r1, 0 movs r2, 0x50 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r1, r7, 4 @@ -4743,7 +4743,7 @@ sub_80BDB7C: @ 80BDB7C beq _080BDCCC b _080BE414 _080BDCCC: - bl sub_809D42C + bl IsNationalPokedexEnabled cmp r0, 0 beq _080BDCD6 b _080BDF4C @@ -4753,12 +4753,12 @@ _080BDCD6: movs r1, 0x20 movs r2, 0x28 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite adds r0, r4, 0 movs r1, 0x20 movs r2, 0x48 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 4 @@ -4766,14 +4766,14 @@ _080BDCD6: lsls r0, 2 add r0, r10 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0 mov r8, r0 ldr r0, =gUnknown_0855D224 movs r1, 0x18 movs r2, 0x30 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_02039B4C @@ -4793,7 +4793,7 @@ _080BDCD6: lsls r1, r5, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim cmp r5, 0 beq _080BDD6C movs r0, 0x1 @@ -4812,7 +4812,7 @@ _080BDD78: movs r1, 0x20 movs r2, 0x30 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_02039B4C @@ -4837,15 +4837,15 @@ _080BDDB0: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 lsls r1, r5, 24 lsrs r1, 24 - bl StartObjectImageAnim + bl StartSpriteAnim b _080BDDE8 .pool _080BDDD4: - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r7, 4 adds r0, r7 lsls r0, 2 @@ -4861,7 +4861,7 @@ _080BDDE8: movs r1, 0x28 movs r2, 0x30 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r5, =gUnknown_02039B4C @@ -4879,18 +4879,18 @@ _080BDDE8: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 lsls r1, 24 lsrs r1, 24 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0 mov r8, r0 adds r0, r6, 0 movs r1, 0x18 movs r2, 0x50 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, [r5] @@ -4908,7 +4908,7 @@ _080BDDE8: lsls r1, r5, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim cmp r5, 0 beq _080BDE80 movs r0, 0x1 @@ -4927,7 +4927,7 @@ _080BDE8C: movs r1, 0x20 movs r2, 0x50 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_02039B4C @@ -4952,15 +4952,15 @@ _080BDEC4: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 lsls r1, r5, 24 lsrs r1, 24 - bl StartObjectImageAnim + bl StartSpriteAnim b _080BDEFC .pool _080BDEE8: - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r7, 4 adds r0, r7 lsls r0, 2 @@ -4975,7 +4975,7 @@ _080BDEFC: movs r1, 0x28 movs r2, 0x50 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_02039B4C @@ -4993,11 +4993,11 @@ _080BDEFC: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites adds r0, r2 lsls r1, 24 lsrs r1, 24 - bl StartObjectImageAnim + bl StartSpriteAnim b _080BE3E2 .pool _080BDF4C: @@ -5006,12 +5006,12 @@ _080BDF4C: movs r1, 0x20 movs r2, 0x28 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite adds r0, r4, 0 movs r1, 0x20 movs r2, 0x4C movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 4 @@ -5019,18 +5019,18 @@ _080BDF4C: lsls r0, 2 add r0, r10 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r4, =gUnknown_0855D20C adds r0, r4, 0 movs r1, 0x11 movs r2, 0x2D movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite adds r0, r4, 0 movs r1, 0x11 movs r2, 0x37 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 4 @@ -5038,17 +5038,17 @@ _080BDF4C: lsls r0, 2 add r0, r10 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r4, 0 movs r1, 0x11 movs r2, 0x51 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite adds r0, r4, 0 movs r1, 0x11 movs r2, 0x5B movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 4 @@ -5056,7 +5056,7 @@ _080BDF4C: lsls r0, 2 add r0, r10 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0 bl sub_80C0844 lsls r0, 16 @@ -5067,7 +5067,7 @@ _080BDF4C: movs r1, 0x28 movs r2, 0x2D movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 adds r0, r6, 0 @@ -5083,7 +5083,7 @@ _080BDF4C: lsls r1, r5, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim cmp r5, 0 beq _080BE024 movs r0, 0x1 @@ -5102,7 +5102,7 @@ _080BE030: movs r1, 0x30 movs r2, 0x2D movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 adds r0, r6, 0 @@ -5123,15 +5123,15 @@ _080BE060: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 lsls r1, r5, 24 lsrs r1, 24 - bl StartObjectImageAnim + bl StartSpriteAnim b _080BE090 .pool _080BE07C: - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r7, 4 adds r0, r7 lsls r0, 2 @@ -5147,7 +5147,7 @@ _080BE090: movs r1, 0x38 movs r2, 0x2D movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 adds r0, r6, 0 @@ -5161,18 +5161,18 @@ _080BE090: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 lsls r1, 24 lsrs r1, 24 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0 mov r8, r0 adds r0, r5, 0 movs r1, 0x28 movs r2, 0x37 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_02039B4C @@ -5191,7 +5191,7 @@ _080BE090: lsls r1, r5, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim cmp r5, 0 beq _080BE11C movs r0, 0x1 @@ -5210,7 +5210,7 @@ _080BE128: movs r1, 0x30 movs r2, 0x37 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_02039B4C @@ -5235,15 +5235,15 @@ _080BE160: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 lsls r1, r5, 24 lsrs r1, 24 - bl StartObjectImageAnim + bl StartSpriteAnim b _080BE198 .pool _080BE184: - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r7, 4 adds r0, r7 lsls r0, 2 @@ -5259,7 +5259,7 @@ _080BE198: movs r1, 0x38 movs r2, 0x37 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_02039B4C @@ -5277,11 +5277,11 @@ _080BE198: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 lsls r1, 24 lsrs r1, 24 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0x1 bl sub_80C0844 lsls r0, 16 @@ -5292,7 +5292,7 @@ _080BE198: movs r1, 0x28 movs r2, 0x51 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 adds r0, r6, 0 @@ -5307,7 +5307,7 @@ _080BE198: lsls r1, r5, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim cmp r5, 0 beq _080BE230 movs r1, 0x1 @@ -5326,7 +5326,7 @@ _080BE23C: movs r1, 0x30 movs r2, 0x51 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 adds r0, r6, 0 @@ -5347,15 +5347,15 @@ _080BE26C: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 lsls r1, r5, 24 lsrs r1, 24 - bl StartObjectImageAnim + bl StartSpriteAnim b _080BE29C .pool _080BE288: - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r7, 4 adds r0, r7 lsls r0, 2 @@ -5371,7 +5371,7 @@ _080BE29C: movs r1, 0x38 movs r2, 0x51 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 adds r0, r6, 0 @@ -5385,18 +5385,18 @@ _080BE29C: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 lsls r1, 24 lsrs r1, 24 - bl StartObjectImageAnim + bl StartSpriteAnim movs r1, 0 mov r8, r1 adds r0, r5, 0 movs r1, 0x28 movs r2, 0x5B movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_02039B4C @@ -5415,7 +5415,7 @@ _080BE29C: lsls r1, r5, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim cmp r5, 0 beq _080BE328 movs r0, 0x1 @@ -5434,7 +5434,7 @@ _080BE334: movs r1, 0x30 movs r2, 0x5B movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_02039B4C @@ -5459,15 +5459,15 @@ _080BE36C: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 lsls r1, r5, 24 lsrs r1, 24 - bl StartObjectImageAnim + bl StartSpriteAnim b _080BE3A4 .pool _080BE390: - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r7, 4 adds r0, r7 lsls r0, 2 @@ -5482,7 +5482,7 @@ _080BE3A4: movs r1, 0x38 movs r2, 0x5B movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_02039B4C @@ -5500,20 +5500,20 @@ _080BE3A4: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites adds r0, r2 lsls r1, 24 lsrs r1, 24 - bl StartObjectImageAnim + bl StartSpriteAnim _080BE3E2: ldr r0, =gUnknown_0855D254 movs r1, 0x88 movs r2, 0x60 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r7, 4 adds r0, r7 lsls r0, 2 @@ -5525,7 +5525,7 @@ _080BE414: movs r1, 0x88 movs r2, 0x50 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 4 @@ -5565,7 +5565,7 @@ sub_80BE44C: @ 80BE44C cmp r0, 0 beq _080BE464 adds r0, r1, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _080BE464: pop {r0} bx r0 @@ -5664,7 +5664,7 @@ sub_80BE4E0: @ 80BE4E0 b _080BE5EC .pool _080BE520: - ldr r2, =gUnknown_08329F40 + ldr r2, =gSineTable ldrh r0, [r4, 0x38] lsls r0, 24 lsrs r0, 23 @@ -5706,7 +5706,7 @@ _080BE55C: str r2, [sp] movs r2, 0 movs r3, 0 - bl SetSpriteTransformationMatrix + bl SetOamMatrix adds r1, r6, 0x1 movs r0, 0x1F ands r1, r0 @@ -5788,7 +5788,7 @@ sub_80BE604: @ 80BE604 cmp r0, 0x3 beq _080BE62C adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite b _080BE648 .pool _080BE62C: @@ -5827,7 +5827,7 @@ sub_80BE658: @ 80BE658 cmp r0, 0x3 beq _080BE680 adds r0, r3, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite b _080BE750 .pool _080BE680: @@ -5896,7 +5896,7 @@ _080BE6EC: _080BE6F8: lsrs r0, 24 adds r4, r1, 0 - ldr r1, =gUnknown_08329F40 + ldr r1, =gSineTable lsls r0, 1 adds r0, r1 movs r1, 0 @@ -5958,7 +5958,7 @@ sub_80BE758: @ 80BE758 cmp r0, 0x3 beq _080BE774 adds r0, r1, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _080BE774: pop {r0} bx r0 @@ -5981,7 +5981,7 @@ sub_80BE780: @ 80BE780 cmp r0, 0x3 beq _080BE7AC adds r0, r6, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite b _080BE824 .pool _080BE7AC: @@ -5993,7 +5993,7 @@ _080BE7AC: adds r1, r0 lsls r1, 24 lsrs r1, 24 - ldr r4, =gUnknown_08329F40 + ldr r4, =gSineTable lsls r0, r1, 1 adds r0, r4 ldrh r3, [r0] @@ -6009,7 +6009,7 @@ _080BE7AC: negs r3, r3 lsrs r3, 16 str r1, [sp] - bl SetSpriteTransformationMatrix + bl SetOamMatrix ldr r1, [r7] adds r1, r5 ldrh r0, [r6, 0x30] @@ -6068,7 +6068,7 @@ sub_80BE834: @ 80BE834 cmp r2, 0x3 beq _080BE85C adds r0, r3, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite b _080BE8D4 .pool _080BE85C: @@ -6105,7 +6105,7 @@ _080BE86C: ldrh r0, [r0] lsls r0, 4 strh r0, [r3, 0x26] - ldr r1, =gUnknown_08329F40 + ldr r1, =gSineTable ldrh r2, [r3, 0x32] lsls r0, r2, 24 lsrs r0, 23 @@ -6492,7 +6492,7 @@ _080BEC08: movs r3, 0 bl sub_80C0E9C strh r0, [r4, 0x10] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r3, 0x10 ldrsh r0, [r4, r3] lsls r1, r0, 4 @@ -6528,7 +6528,7 @@ _080BEC76: ldrsh r0, [r1, r2] cmp r0, 0 beq _080BEC98 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x10 ldrsh r1, [r1, r0] lsls r0, r1, 4 @@ -6603,7 +6603,7 @@ _080BED04: ldrsh r0, [r0, r1] cmp r0, 0 bne _080BED58 - bl sub_80A369C + bl StopCryAndClearCrySongs ldr r0, =gUnknown_02039B54 ldr r0, [r0] ldrh r0, [r0] @@ -6613,7 +6613,7 @@ _080BED04: movs r1, 0 movs r2, 0x7D movs r3, 0xA - bl sub_80A32C0 + bl PlayCry2 b _080BEDA0 .pool _080BED58: @@ -6621,7 +6621,7 @@ _080BED58: strb r0, [r2] b _080BEDA0 _080BED5E: - bl sub_80A36C8 + bl IsCryPlayingOrClearCrySongs lsls r0, 24 cmp r0, 0 bne _080BEDA0 @@ -6720,7 +6720,7 @@ sub_80BEDF4: @ 80BEDF4 ldr r0, =sub_80BF038 str r0, [r4] movs r0, 0x6C - bl audio_play + bl PlaySE b _080BEFBA .pool _080BEE34: @@ -6797,7 +6797,7 @@ _080BEEC0: cmp r1, 0 bne _080BEED8 movs r0, 0x20 - bl audio_play + bl PlaySE b _080BEFBA .pool _080BEED8: @@ -6817,7 +6817,7 @@ _080BEEF0: ldr r0, =sub_80BEFD0 str r0, [r4] movs r0, 0x15 - bl audio_play + bl PlaySE b _080BEFBA .pool _080BEF08: @@ -6832,7 +6832,7 @@ _080BEF0E: ldr r0, =sub_80BF070 str r0, [r4] movs r0, 0x3 - bl audio_play + bl PlaySE b _080BEFBA .pool _080BEF28: @@ -6866,7 +6866,7 @@ _080BEF44: movs r1, 0xD bl sub_80BFD0C movs r0, 0x6D - bl audio_play + bl PlaySE b _080BEFBA .pool _080BEF78: @@ -6901,7 +6901,7 @@ _080BEF96: movs r1, 0xD bl sub_80BFD0C movs r0, 0x6D - bl audio_play + bl PlaySE _080BEFBA: add sp, 0x4 pop {r4,r5} @@ -7342,7 +7342,7 @@ _080BF3D0: adds r1, r2 movs r3, 0 strh r0, [r1, 0x10] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r4, 0x10 ldrsh r0, [r1, r4] lsls r1, r0, 4 @@ -7539,7 +7539,7 @@ sub_80BF5CC: @ 80BF5CC lsrs r4, r0, 24 movs r0, 0x2 bl sub_814545C - bl sub_80A36EC + bl IsCryPlaying lsls r0, 24 cmp r0, 0 beq _080BF5EC @@ -7608,7 +7608,7 @@ _080BF636: ldr r1, =sub_80BF790 str r1, [r0] movs r0, 0x3 - bl audio_play + bl PlaySE b _080BF772 .pool _080BF694: @@ -7650,7 +7650,7 @@ _080BF6B0: ldr r1, =sub_80BF790 str r1, [r0] movs r0, 0x6D - bl audio_play + bl PlaySE b _080BF772 .pool _080BF700: @@ -7678,7 +7678,7 @@ _080BF71E: cmp r0, 0 bne _080BF73C movs r0, 0x20 - bl audio_play + bl PlaySE b _080BF772 .pool _080BF73C: @@ -7705,7 +7705,7 @@ _080BF73C: ldr r1, =sub_80BF790 str r1, [r0] movs r0, 0x6D - bl audio_play + bl PlaySE _080BF772: add sp, 0x4 pop {r4,r5} @@ -7932,7 +7932,7 @@ _080BF982: bl sub_80C0EF8 lsls r0, 24 lsrs r6, r0, 24 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r4, r6, 4 adds r4, r6 lsls r4, 2 @@ -7972,7 +7972,7 @@ _080BF982: movs r0, 0x1 movs r2, 0 movs r3, 0 - bl SetSpriteTransformationMatrix + bl SetOamMatrix ldr r0, =gUnknown_0856E610 ldrb r1, [r4, 0x5] lsrs r1, 4 @@ -8002,7 +8002,7 @@ _080BFA34: bl sub_80C0E9C lsls r0, 24 lsrs r6, r0, 24 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r4, r6, 4 adds r4, r6 lsls r4, 2 @@ -8041,7 +8041,7 @@ _080BFA34: movs r0, 0x2 movs r2, 0 movs r3, 0 - bl SetSpriteTransformationMatrix + bl SetOamMatrix ldr r0, =gUnknown_0856E610 ldrb r1, [r4, 0x5] lsrs r1, 4 @@ -8185,7 +8185,7 @@ sub_80BFBB0: @ 80BFBB0 ldr r1, =sub_80BFC78 str r1, [r0] movs r0, 0x3 - bl audio_play + bl PlaySE b _080BFC5C .pool _080BFC10: @@ -8225,7 +8225,7 @@ _080BFC2C: ldr r1, =sub_80BFC78 str r1, [r0] movs r0, 0x6D - bl audio_play + bl PlaySE _080BFC5C: add sp, 0x4 pop {r4,r5} @@ -8589,7 +8589,7 @@ _080BFF78: adds r0, r2 b _080C0038 _080BFF82: - bl sub_809D42C + bl IsNationalPokedexEnabled adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x1 @@ -8612,7 +8612,7 @@ _080BFFA8: adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r4, 4 adds r1, r4 lsls r1, 2 @@ -8684,7 +8684,7 @@ _080C0044: lsls r0, 16 lsrs r0, 16 movs r1, 0 - bl cry_related + bl PlayCry1 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 @@ -8719,7 +8719,7 @@ sub_80C0088: @ 80C0088 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 @@ -8815,7 +8815,7 @@ _080C0168: lsls r2, 16 ldrh r3, [r4, 0x24] orrs r2, r3 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites movs r3, 0xE ldrsh r4, [r4, r3] lsls r3, r4, 4 @@ -9937,9 +9937,9 @@ _080C0A60: bne _080C0A7E movs r0, 0 bl ClearGpuRegBits - bl ResetAllObjectData - bl ResetObjectPaletteAllocator - ldr r1, =gUnknown_0300301C + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r1, =gReservedSpritePaletteCount movs r0, 0x8 strb r0, [r1] _080C0A7E: @@ -11142,7 +11142,7 @@ _080C1332: movs r0, 0x3 movs r3, 0 bl copy_decompressed_tile_data_to_vram_autofree - bl sub_809D42C + bl IsNationalPokedexEnabled cmp r0, 0 bne _080C13E4 ldr r1, =gUnknown_08DC3A0C @@ -11175,7 +11175,7 @@ _080C1414: ldr r0, =gUnknown_0855D26C bl LoadCompressedObjectPic ldr r0, =gUnknown_0855D27C - bl LoadTaggedObjectPalettes + bl LoadSpritePalettes adds r0, r4, 0 bl sub_80C2594 movs r1, 0 @@ -11358,7 +11358,7 @@ sub_80C15B0: @ 80C15B0 cmp r0, 0 beq _080C15E4 movs r0, 0x3 - bl audio_play + bl PlaySE ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 @@ -11394,12 +11394,12 @@ _080C160C: b _080C16BC _080C1612: movs r0, 0x15 - bl audio_play + bl PlaySE strh r4, [r5, 0xA] b _080C1626 _080C161C: movs r0, 0x15 - bl audio_play + bl PlaySE movs r0, 0x4 strh r0, [r5, 0xA] _080C1626: @@ -11409,7 +11409,7 @@ _080C1626: .pool _080C1630: movs r0, 0x3 - bl audio_play + bl PlaySE ldr r0, =sub_80C1D38 str r0, [r5] b _080C16BC @@ -11429,7 +11429,7 @@ _080C1640: cmp r0, 0 ble _080C167C movs r0, 0x6D - bl audio_play + bl PlaySE ldrh r0, [r4, 0x8] subs r0, 0x1 strh r0, [r4, 0x8] @@ -11458,7 +11458,7 @@ _080C167C: cmp r0, 0x1 bgt _080C16BC movs r0, 0x6D - bl audio_play + bl PlaySE ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] @@ -11520,7 +11520,7 @@ sub_80C170C: @ 80C170C ldrsh r0, [r0, r1] cmp r0, 0 beq _080C1740 - bl sub_809D42C + bl IsNationalPokedexEnabled ldr r6, =gUnknown_0856EDB8 cmp r0, 0 bne _080C174C @@ -11528,7 +11528,7 @@ sub_80C170C: @ 80C170C b _080C174C .pool _080C1740: - bl sub_809D42C + bl IsNationalPokedexEnabled ldr r6, =gUnknown_0856ED9C cmp r0, 0 bne _080C174C @@ -11543,7 +11543,7 @@ _080C174C: cmp r3, 0 beq _080C178C movs r0, 0x17 - bl audio_play + bl PlaySE adds r0, r5, 0 bl sub_80C23B8 ldr r0, =gTasks @@ -11594,7 +11594,7 @@ _080C178C: ldr r4, =gSaveBlock2Ptr ldr r1, [r4] strb r0, [r1, 0x19] - bl sub_809D42C + bl IsNationalPokedexEnabled cmp r0, 0 bne _080C17E8 ldr r1, [r4] @@ -11620,7 +11620,7 @@ _080C17E8: adds r0, r2 strh r1, [r0] movs r0, 0x3 - bl audio_play + bl PlaySE ldr r0, =sub_80C1D38 str r0, [r6] b _080C1994 @@ -11631,7 +11631,7 @@ _080C183C: ldr r0, =sub_80C19A4 str r0, [r6] movs r0, 0x70 - bl audio_play + bl PlaySE movs r0, 0 movs r1, 0x2 bl CopyWindowToVram @@ -11639,7 +11639,7 @@ _080C183C: .pool _080C1860: movs r0, 0x15 - bl audio_play + bl PlaySE ldr r0, =sub_80C1B64 str r0, [r6] b _080C1994 @@ -11662,7 +11662,7 @@ _080C1870: cmp r0, 0xFF beq _080C18B6 movs r0, 0x5 - bl audio_play + bl PlaySE movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 2 @@ -11696,7 +11696,7 @@ _080C18B6: cmp r0, 0xFF beq _080C1900 movs r0, 0x5 - bl audio_play + bl PlaySE movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 2 @@ -11730,7 +11730,7 @@ _080C1900: cmp r0, 0xFF beq _080C194A movs r0, 0x5 - bl audio_play + bl PlaySE movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 2 @@ -11764,7 +11764,7 @@ _080C194A: cmp r0, 0xFF beq _080C1994 movs r0, 0x5 - bl audio_play + bl PlaySE movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 2 @@ -11867,7 +11867,7 @@ sub_80C1A4C: @ 80C1A4C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _080C1AA6 @@ -11879,14 +11879,14 @@ sub_80C1A4C: @ 80C1A4C cmp r0, 0 beq _080C1A84 movs r0, 0x1F - bl audio_play + bl PlaySE ldr r0, =gUnknown_085E8773 bl sub_80C2618 b _080C1A90 .pool _080C1A84: movs r0, 0x20 - bl audio_play + bl PlaySE ldr r0, =gUnknown_085E8785 bl sub_80C2618 _080C1A90: @@ -11956,7 +11956,7 @@ sub_80C1AB8: @ 80C1AB8 ldr r1, =sub_80C1D38 str r1, [r0] movs r0, 0x3 - bl audio_play + bl PlaySE b _080C1B54 .pool _080C1B40: @@ -11968,7 +11968,7 @@ _080C1B40: ldr r0, =sub_80C16CC str r0, [r1] movs r0, 0x17 - bl audio_play + bl PlaySE _080C1B54: pop {r4,r5} pop {r0} @@ -12060,7 +12060,7 @@ sub_80C1BCC: @ 80C1BCC cmp r0, 0 beq _080C1C30 movs r0, 0x15 - bl audio_play + bl PlaySE bl sub_80C267C movs r0, 0x1 bl sub_80C21D4 @@ -12072,7 +12072,7 @@ _080C1C30: cmp r0, 0 beq _080C1C68 movs r0, 0x17 - bl audio_play + bl PlaySE bl sub_80C267C movs r0, 0x1 bl sub_80C21D4 @@ -12124,7 +12124,7 @@ _080C1CA6: beq _080C1D2E _080C1CAA: movs r0, 0x5 - bl audio_play + bl PlaySE ldrh r0, [r4] ldrh r1, [r6] adds r0, r1 @@ -12172,7 +12172,7 @@ _080C1D0C: beq _080C1D2E _080C1D10: movs r0, 0x5 - bl audio_play + bl PlaySE ldrh r0, [r4] ldrh r1, [r6] adds r0, r1 @@ -12368,7 +12368,7 @@ _080C1E94: b _080C1EC4 .pool _080C1EA4: - bl sub_809D42C + bl IsNationalPokedexEnabled cmp r0, 0 bne _080C1ED0 ldr r2, =gUnknown_0856ED48 @@ -12722,7 +12722,7 @@ sub_80C20F8: @ 80C20F8 movs r1, 0x2D movs r2, 0x41 bl sub_80C1270 - bl sub_809D42C + bl IsNationalPokedexEnabled cmp r0, 0 beq _080C21B6 ldrh r0, [r5, 0xE] @@ -13206,7 +13206,7 @@ _080C2550: lsls r0, 7 adds r0, r2, r0 lsls r0, 24 - ldr r1, =gUnknown_08329F40 + ldr r1, =gSineTable lsrs r0, 23 adds r0, r1 movs r1, 0 @@ -13249,10 +13249,10 @@ sub_80C2594: @ 80C2594 movs r1, 0xB8 movs r2, 0x4 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -13271,7 +13271,7 @@ sub_80C2594: @ 80C2594 movs r1, 0xB8 movs r2, 0x6C movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 diff --git a/asm/pokedex_area_screen.s b/asm/pokedex_area_screen.s index 65a7c0b1c9..7cb1f37c9a 100644 --- a/asm/pokedex_area_screen.s +++ b/asm/pokedex_area_screen.s @@ -1070,7 +1070,7 @@ _0813D2A8: movs r2, 0x7F ands r1, r2 strh r1, [r0] - ldr r3, =gUnknown_08329F40 + ldr r3, =gSineTable ldr r1, [r7] ldr r2, =0x0000061a adds r0, r1, r2 @@ -1287,8 +1287,8 @@ _0813D45C: .4byte _0813D544 .4byte _0813D56C _0813D48C: - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes movs r0, 0x3 bl HideBg movs r0, 0x2 @@ -1460,7 +1460,7 @@ _0813D5F8: beq _0813D614 strh r1, [r6, 0xA] movs r0, 0x3 - bl audio_play + bl PlaySE b _0813D698 .pool _0813D614: @@ -1481,7 +1481,7 @@ _0813D614: _0813D630: strh r3, [r6, 0xA] movs r0, 0x6D - bl audio_play + bl PlaySE b _0813D698 .pool _0813D640: @@ -1560,9 +1560,9 @@ sub_813D6D0: @ 813D6D0 mov r5, r8 push {r5-r7} ldr r0, =gUnknown_085B401C - bl LoadObjectPic + bl LoadSpriteSheet ldr r0, =gUnknown_085B4024 - bl LoadTaggedObjectPalette + bl LoadSpritePalette ldr r0, =gUnknown_03001204 movs r1, 0 strh r1, [r0] @@ -1642,12 +1642,12 @@ _0813D710: ldrsh r2, [r3, r0] ldr r0, =gUnknown_085B4034 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _0813D7BE - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r2, r1, 4 adds r2, r1 lsls r2, 2 @@ -1708,9 +1708,9 @@ _0813D7D8: sub_813D824: @ 813D824 push {r4,r5,lr} movs r0, 0x2 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag movs r0, 0x2 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag movs r4, 0 ldr r1, =gUnknown_0203AB7C ldr r0, [r1] @@ -1729,7 +1729,7 @@ _0813D846: adds r0, r2 adds r0, r1 ldr r0, [r0] - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 @@ -1742,9 +1742,9 @@ _0813D846: bcc _0813D846 _0813D86C: movs r0, 0x3 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag movs r0, 0x3 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag movs r4, 0 _0813D87A: ldr r0, =gUnknown_0203AB7C @@ -1757,7 +1757,7 @@ _0813D87A: ldr r0, [r0] cmp r0, 0 beq _0813D892 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0813D892: adds r0, r4, 0x1 lsls r0, 16 @@ -1784,9 +1784,9 @@ sub_813D8A8: @ 813D8A8 ldr r0, =gUnknown_08DC4140 bl LZ77UnCompWram mov r0, sp - bl LoadObjectPic + bl LoadSpriteSheet ldr r0, =gUnknown_085B40EC - bl LoadTaggedObjectPalette + bl LoadSpritePalette add sp, 0x8 pop {r0} bx r0 @@ -1824,7 +1824,7 @@ _0813D904: .pool _0813D920: movs r4, 0 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites _0813D924: lsls r1, r4, 21 movs r6, 0xA0 @@ -1834,7 +1834,7 @@ _0813D924: ldr r0, =gUnknown_085B40FC movs r2, 0x8C movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 diff --git a/asm/pokedex_cry_screen.s b/asm/pokedex_cry_screen.s index 2ef4cb5445..f6d5ec2713 100644 --- a/asm/pokedex_cry_screen.s +++ b/asm/pokedex_cry_screen.s @@ -179,7 +179,7 @@ _081454B8: _081454C2: cmp r0, 0x8 bls _081454E6 - bl sub_80A36EC + bl IsCryPlaying lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 @@ -253,12 +253,12 @@ sub_8145534: @ 8145534 bne _08145582 movs r0, 0x4 strb r0, [r1, 0x1B] - bl sub_80A36EC + bl IsCryPlaying lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0814557C - bl sub_80A36B4 + bl StopCry ldr r1, [r6] strh r4, [r1, 0x18] movs r0, 0x2 @@ -282,7 +282,7 @@ sub_8145588: @ 8145588 movs r1, 0 movs r2, 0x7D movs r3, 0xA - bl sub_80A32C0 + bl PlayCry2 ldr r0, =gUnknown_0203AB90 ldr r1, [r0] movs r0, 0x1 @@ -676,9 +676,9 @@ _08145884: .pool _081458B0: ldr r0, =gUnknown_085B8C80 - bl LoadObjectPics + bl LoadSpriteSheets ldr r0, =gUnknown_085B8C90 - bl LoadTaggedObjectPalettes + bl LoadSpritePalettes ldr r0, =gUnknown_085B8C68 ldrb r1, [r4, 0x4] lsls r1, 19 @@ -693,7 +693,7 @@ _081458B0: adds r2, r3 asrs r2, 16 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite ldr r2, =gUnknown_0203AB98 ldr r3, [r2] lsls r0, 24 @@ -721,7 +721,7 @@ _081458F8: thumb_func_start sub_8145914 sub_8145914: @ 8145914 push {r4-r6,lr} - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldr r6, =gUnknown_0203AB98 ldr r0, [r6] ldrh r1, [r0, 0x4] @@ -731,17 +731,17 @@ sub_8145914: @ 8145914 adds r0, r4 ldrb r0, [r0, 0x5] lsrs r0, 4 - bl GetObjectPaletteTagBySlot + bl GetSpritePaletteTagByPaletteNum lsls r0, 16 lsrs r0, 16 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag ldr r0, [r6] ldrh r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r4, =gUnknown_0203AB90 ldr r0, [r4] bl Free @@ -761,7 +761,7 @@ sub_814596C: @ 814596C push {r4-r7,lr} sub sp, 0x14 adds r7, r0, 0 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r4, =gUnknown_0203AB98 ldr r0, [r4] ldrh r1, [r0, 0x4] @@ -935,8 +935,8 @@ _08145A82: ldrh r0, [r4, 0x6] str r0, [sp] movs r0, 0 - bl SetSpriteTransformationMatrix - ldr r2, =gUnknown_08329F40 + bl SetOamMatrix + ldr r2, =gSineTable ldr r0, [r6] ldrb r0, [r0] lsls r0, 24 diff --git a/asm/pokemon_1.s b/asm/pokemon_1.s index 9d0d4d1080..e10ed54c50 100644 --- a/asm/pokemon_1.s +++ b/asm/pokemon_1.s @@ -34,54 +34,54 @@ zero_pokemon_struct: @ 8067A8C adds r0, r4, 0 movs r1, 0x37 mov r2, sp - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0x38 mov r2, sp - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0x39 mov r2, sp - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0x3A mov r2, sp - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0x3B mov r2, sp - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0x3C mov r2, sp - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0x3D mov r2, sp - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0x3E mov r2, sp - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0x3F mov r2, sp - bl pokemon_setattr + bl SetMonData movs r0, 0xFF str r0, [sp] adds r0, r4, 0 movs r1, 0x40 mov r2, sp - bl pokemon_setattr + bl SetMonData add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end zero_pokemon_struct - thumb_func_start zero_player_party_data -@ void zero_player_party_data() -zero_player_party_data: @ 8067B0C + thumb_func_start ZeroPlayerPartyMons +@ void ZeroPlayerPartyMons() +ZeroPlayerPartyMons: @ 8067B0C push {r4,r5,lr} ldr r4, =gPlayerParty movs r0, 0xFA @@ -97,10 +97,10 @@ _08067B16: pop {r0} bx r0 .pool - thumb_func_end zero_player_party_data + thumb_func_end ZeroPlayerPartyMons - thumb_func_start zero_enemy_party_data -zero_enemy_party_data: @ 8067B2C + thumb_func_start ZeroEnemyPartyMons +ZeroEnemyPartyMons: @ 8067B2C push {r4,r5,lr} ldr r4, =gEnemyParty movs r0, 0xFA @@ -116,7 +116,7 @@ _08067B36: pop {r0} bx r0 .pool - thumb_func_end zero_enemy_party_data + thumb_func_end ZeroEnemyPartyMons thumb_func_start create_pokemon_set_level @ void create_pokemon_set_level(pokemon *mon, s16 species_num, u8 level, u8 forced_iv, char pokemon_id_is_nonrandom, int pokemon_id, u8 trainer_id_mode, int trainer_id) @@ -157,13 +157,13 @@ create_pokemon_set_level: @ 8067B4C mov r0, r8 movs r1, 0x38 add r2, sp, 0x10 - bl pokemon_setattr + bl SetMonData movs r0, 0xFF str r0, [sp, 0x14] add r2, sp, 0x14 mov r0, r8 movs r1, 0x40 - bl pokemon_setattr + bl SetMonData mov r0, r8 bl pokemon_calc_effective_stats add sp, 0x1C @@ -219,7 +219,7 @@ _08067C0C: add r2, sp, 0x14 adds r0, r7, 0 movs r1, 0 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted add r0, sp, 0x18 mov r9, r0 add r5, sp, 0xC @@ -280,14 +280,14 @@ _08067C8A: adds r0, r7, 0 movs r1, 0x1 mov r2, r9 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted adds r0, r7, 0 bl pokemon_calc_checksum strh r0, [r5] adds r0, r7, 0 movs r1, 0x9 adds r2, r5, 0 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted adds r0, r7, 0 bl pokemon_encrypt mov r0, sp @@ -296,21 +296,21 @@ _08067C8A: adds r0, r7, 0 movs r1, 0x2 mov r2, sp - bl pokemon_setattr_encrypted + bl SetMonData_encrypted ldr r2, =gGameLanguage adds r0, r7, 0 movs r1, 0x3 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted ldr r5, =gSaveBlock2Ptr ldr r2, [r5] adds r0, r7, 0 movs r1, 0x7 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted adds r0, r7, 0 movs r1, 0xB mov r2, sp adds r2, 0xE - bl pokemon_setattr_encrypted + bl SetMonData_encrypted ldr r4, =gBaseStats mov r2, sp ldrh r1, [r2, 0xE] @@ -331,7 +331,7 @@ _08067C8A: adds r2, r0 adds r0, r7, 0 movs r1, 0x19 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted mov r1, sp ldrh r0, [r1, 0xE] lsls r2, r0, 3 @@ -341,7 +341,7 @@ _08067C8A: adds r2, r4 adds r0, r7, 0 movs r1, 0x20 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted bl sav1_map_get_name lsls r0, 24 lsrs r0, 24 @@ -349,26 +349,26 @@ _08067C8A: adds r0, r7, 0 movs r1, 0x23 mov r2, r9 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted adds r0, r7, 0 movs r1, 0x24 add r2, sp, 0x10 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted ldr r2, =gGameVersion adds r0, r7, 0 movs r1, 0x25 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted movs r0, 0x4 str r0, [sp, 0x18] adds r0, r7, 0 movs r1, 0x26 mov r2, r9 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted ldr r2, [r5] adds r2, 0x8 adds r0, r7, 0 movs r1, 0x31 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted mov r2, sp ldrb r0, [r2, 0x11] cmp r0, 0x1F @@ -376,32 +376,32 @@ _08067C8A: adds r0, r7, 0 movs r1, 0x27 adds r2, 0x11 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted adds r0, r7, 0 movs r1, 0x28 mov r2, sp adds r2, 0x11 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted adds r0, r7, 0 movs r1, 0x29 mov r2, sp adds r2, 0x11 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted adds r0, r7, 0 movs r1, 0x2A mov r2, sp adds r2, 0x11 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted adds r0, r7, 0 movs r1, 0x2B mov r2, sp adds r2, 0x11 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted adds r0, r7, 0 movs r1, 0x2C mov r2, sp adds r2, 0x11 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted b _08067E50 .pool _08067DC8: @@ -417,7 +417,7 @@ _08067DC8: adds r0, r7, 0 movs r1, 0x27 adds r2, r4, 0 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted ldr r0, [sp, 0x18] movs r6, 0xF8 lsls r6, 2 @@ -427,7 +427,7 @@ _08067DC8: adds r0, r7, 0 movs r1, 0x28 adds r2, r4, 0 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted ldr r0, [sp, 0x18] movs r5, 0xF8 lsls r5, 7 @@ -437,7 +437,7 @@ _08067DC8: adds r0, r7, 0 movs r1, 0x29 adds r2, r4, 0 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted bl Random lsls r0, 16 lsrs r0, 16 @@ -448,7 +448,7 @@ _08067DC8: adds r0, r7, 0 movs r1, 0x2A adds r2, r4, 0 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted ldr r0, [sp, 0x18] ands r0, r6 lsrs r0, 5 @@ -456,7 +456,7 @@ _08067DC8: adds r0, r7, 0 movs r1, 0x2B adds r2, r4, 0 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted ldr r0, [sp, 0x18] ands r0, r5 lsrs r0, 10 @@ -464,7 +464,7 @@ _08067DC8: adds r0, r7, 0 movs r1, 0x2C adds r2, r4, 0 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted _08067E50: ldr r2, =gBaseStats mov r3, sp @@ -483,7 +483,7 @@ _08067E50: adds r0, r7, 0 movs r1, 0x2E mov r2, r9 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted _08067E76: adds r0, r7, 0 bl sub_8069270 @@ -747,7 +747,7 @@ sub_8068060: @ 8068060 adds r0, r4, 0 movs r1, 0x42 add r2, sp, 0x10 - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 bl pokemon_calc_effective_stats add sp, 0x14 @@ -779,28 +779,28 @@ sub_80680A0: @ 80680A0 adds r0, r5, 0 movs r1, 0x27 adds r2, r4, 0 - bl pokemon_setattr + bl SetMonData adds r2, r4, 0x1 adds r0, r5, 0 movs r1, 0x28 - bl pokemon_setattr + bl SetMonData adds r2, r4, 0x2 adds r0, r5, 0 movs r1, 0x29 - bl pokemon_setattr + bl SetMonData adds r2, r4, 0x3 adds r0, r5, 0 movs r1, 0x2A - bl pokemon_setattr + bl SetMonData adds r2, r4, 0x4 adds r0, r5, 0 movs r1, 0x2B - bl pokemon_setattr + bl SetMonData adds r4, 0x5 adds r0, r5, 0 movs r1, 0x2C adds r2, r4, 0 - bl pokemon_setattr + bl SetMonData adds r0, r5, 0 bl pokemon_calc_effective_stats add sp, 0x10 @@ -864,7 +864,7 @@ _0806816C: adds r1, 0x1A adds r0, r7, 0 add r2, sp, 0x10 - bl pokemon_setattr + bl SetMonData _08068180: lsls r0, r4, 25 lsrs r4, r0, 24 @@ -923,16 +923,16 @@ _080681D2: adds r2, 0xD adds r0, r7, 0 movs r1, 0x15 - bl pokemon_setattr + bl SetMonData adds r2, r6, 0x2 adds r0, r7, 0 movs r1, 0xC - bl pokemon_setattr + bl SetMonData adds r2, r6, 0 adds r2, 0x2B adds r0, r7, 0 movs r1, 0x20 - bl pokemon_setattr + bl SetMonData adds r1, r6, 0 adds r1, 0x20 add r0, sp, 0x10 @@ -959,41 +959,41 @@ _08068236: adds r0, r7, 0 movs r1, 0x3 mov r2, r9 - bl pokemon_setattr + bl SetMonData adds r0, r7, 0 movs r1, 0x2 add r2, sp, 0x10 - bl pokemon_setattr + bl SetMonData adds r2, r6, 0 adds r2, 0xE adds r0, r7, 0 movs r1, 0x1A - bl pokemon_setattr + bl SetMonData adds r2, r6, 0 adds r2, 0xF adds r0, r7, 0 movs r1, 0x1B - bl pokemon_setattr + bl SetMonData adds r2, r6, 0 adds r2, 0x10 adds r0, r7, 0 movs r1, 0x1C - bl pokemon_setattr + bl SetMonData adds r2, r6, 0 adds r2, 0x11 adds r0, r7, 0 movs r1, 0x1D - bl pokemon_setattr + bl SetMonData adds r2, r6, 0 adds r2, 0x12 adds r0, r7, 0 movs r1, 0x1E - bl pokemon_setattr + bl SetMonData adds r2, r6, 0 adds r2, 0x13 adds r0, r7, 0 movs r1, 0x1F - bl pokemon_setattr + bl SetMonData ldrb r0, [r6, 0x1B] lsrs r0, 7 mov r1, r8 @@ -1001,7 +1001,7 @@ _08068236: adds r0, r7, 0 movs r1, 0x2E mov r2, r8 - bl pokemon_setattr + bl SetMonData ldrb r0, [r6, 0x18] lsls r0, 27 lsrs r0, 27 @@ -1010,7 +1010,7 @@ _08068236: adds r0, r7, 0 movs r1, 0x27 mov r2, r8 - bl pokemon_setattr + bl SetMonData ldrh r0, [r6, 0x18] lsls r0, 22 lsrs r0, 27 @@ -1019,7 +1019,7 @@ _08068236: adds r0, r7, 0 movs r1, 0x28 mov r2, r8 - bl pokemon_setattr + bl SetMonData ldrb r0, [r6, 0x19] lsls r0, 25 lsrs r0, 27 @@ -1028,7 +1028,7 @@ _08068236: adds r0, r7, 0 movs r1, 0x29 mov r2, r8 - bl pokemon_setattr + bl SetMonData ldr r0, [r6, 0x18] lsls r0, 12 lsrs r0, 27 @@ -1037,7 +1037,7 @@ _08068236: adds r0, r7, 0 movs r1, 0x2A mov r2, r8 - bl pokemon_setattr + bl SetMonData ldrh r0, [r6, 0x1A] lsls r0, 23 lsrs r0, 27 @@ -1046,7 +1046,7 @@ _08068236: adds r0, r7, 0 movs r1, 0x2B mov r2, r8 - bl pokemon_setattr + bl SetMonData ldrb r0, [r6, 0x1B] lsls r0, 26 lsrs r0, 27 @@ -1055,7 +1055,7 @@ _08068236: adds r0, r7, 0 movs r1, 0x2C mov r2, r8 - bl pokemon_setattr + bl SetMonData adds r0, r7, 0 bl sub_806E924 adds r0, r7, 0 @@ -1158,15 +1158,15 @@ _080683D2: adds r0, r7, 0 movs r1, 0x15 mov r2, r10 - bl pokemon_setattr + bl SetMonData adds r0, r7, 0 movs r1, 0xC ldr r2, [sp, 0x38] - bl pokemon_setattr + bl SetMonData adds r0, r7, 0 movs r1, 0x20 ldr r2, [sp, 0x34] - bl pokemon_setattr + bl SetMonData add r0, sp, 0x10 ldr r1, [sp, 0x54] bl StringCopy @@ -1192,35 +1192,35 @@ _08068430: adds r0, r7, 0 movs r1, 0x3 mov r2, r9 - bl pokemon_setattr + bl SetMonData adds r0, r7, 0 movs r1, 0x2 add r2, sp, 0x10 - bl pokemon_setattr + bl SetMonData adds r0, r7, 0 movs r1, 0x1A ldr r2, [sp, 0x3C] - bl pokemon_setattr + bl SetMonData adds r0, r7, 0 movs r1, 0x1B ldr r2, [sp, 0x40] - bl pokemon_setattr + bl SetMonData adds r0, r7, 0 movs r1, 0x1C ldr r2, [sp, 0x44] - bl pokemon_setattr + bl SetMonData adds r0, r7, 0 movs r1, 0x1D ldr r2, [sp, 0x48] - bl pokemon_setattr + bl SetMonData adds r0, r7, 0 movs r1, 0x1E ldr r2, [sp, 0x4C] - bl pokemon_setattr + bl SetMonData adds r0, r7, 0 movs r1, 0x1F ldr r2, [sp, 0x50] - bl pokemon_setattr + bl SetMonData ldrb r0, [r6, 0x1B] lsrs r0, 7 mov r1, r8 @@ -1228,7 +1228,7 @@ _08068430: adds r0, r7, 0 movs r1, 0x2E mov r2, r8 - bl pokemon_setattr + bl SetMonData ldrb r0, [r6, 0x18] lsls r0, 27 lsrs r0, 27 @@ -1237,7 +1237,7 @@ _08068430: adds r0, r7, 0 movs r1, 0x27 mov r2, r8 - bl pokemon_setattr + bl SetMonData ldrh r0, [r6, 0x18] lsls r0, 22 lsrs r0, 27 @@ -1246,7 +1246,7 @@ _08068430: adds r0, r7, 0 movs r1, 0x28 mov r2, r8 - bl pokemon_setattr + bl SetMonData ldrb r0, [r6, 0x19] lsls r0, 25 lsrs r0, 27 @@ -1255,7 +1255,7 @@ _08068430: adds r0, r7, 0 movs r1, 0x29 mov r2, r8 - bl pokemon_setattr + bl SetMonData ldr r0, [r6, 0x18] lsls r0, 12 lsrs r0, 27 @@ -1264,7 +1264,7 @@ _08068430: adds r0, r7, 0 movs r1, 0x2A mov r2, r8 - bl pokemon_setattr + bl SetMonData ldrh r0, [r6, 0x1A] lsls r0, 23 lsrs r0, 27 @@ -1273,7 +1273,7 @@ _08068430: adds r0, r7, 0 movs r1, 0x2B mov r2, r8 - bl pokemon_setattr + bl SetMonData ldrb r0, [r6, 0x1B] lsls r0, 26 lsrs r0, 27 @@ -1282,7 +1282,7 @@ _08068430: adds r0, r7, 0 movs r1, 0x2C mov r2, r8 - bl pokemon_setattr + bl SetMonData adds r0, r7, 0 bl sub_806E924 adds r0, r7, 0 @@ -1364,7 +1364,7 @@ sub_8068528: @ 8068528 adds r2, 0xE adds r0, r7, 0 movs r1, 0xC - bl pokemon_setattr + bl SetMonData movs r4, 0 movs r2, 0x12 add r2, sp @@ -1393,7 +1393,7 @@ _080685E0: adds r1, 0x1A adds r0, r7, 0 add r2, sp, 0x10 - bl pokemon_setattr + bl SetMonData adds r4, 0x1 cmp r4, 0x5 ble _080685E0 @@ -1403,7 +1403,7 @@ _080685E0: adds r0, r7, 0 movs r1, 0x3 mov r2, r8 - bl pokemon_setattr + bl SetMonData mov r2, r9 ldrb r0, [r2] lsls r0, 27 @@ -1414,7 +1414,7 @@ _080685E0: adds r2, r0, 0 adds r0, r7, 0 movs r1, 0x7 - bl pokemon_setattr + bl SetMonData adds r0, r7, 0 bl pokemon_calc_effective_stats add sp, 0x14 @@ -1509,7 +1509,7 @@ _080686C6: adds r1, 0x1A adds r0, r7, 0 add r2, sp, 0x10 - bl pokemon_setattr + bl SetMonData _080686DA: lsls r0, r5, 25 lsrs r5, r0, 24 @@ -1752,7 +1752,7 @@ sub_80688A8: @ 80688A8 mov r0, r8 movs r1, 0x50 add r2, sp, 0x10 - bl pokemon_setattr + bl SetMonData add sp, 0x14 pop {r3} mov r8, r3 @@ -1871,7 +1871,7 @@ _080689E4: beq _080689CE _080689F4: adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080689CE @@ -1985,7 +1985,7 @@ _08068AAA: adds r0, r4, 0 movs r1, 0x3B mov r2, sp - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0x3C movs r2, 0 @@ -1994,7 +1994,7 @@ _08068AAA: adds r0, r4, 0 movs r1, 0x3C mov r2, sp - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0x3D movs r2, 0 @@ -2003,7 +2003,7 @@ _08068AAA: adds r0, r4, 0 movs r1, 0x3D mov r2, sp - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0x3E movs r2, 0 @@ -2012,7 +2012,7 @@ _08068AAA: adds r0, r4, 0 movs r1, 0x3E mov r2, sp - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0x3F movs r2, 0 @@ -2021,7 +2021,7 @@ _08068AAA: adds r0, r4, 0 movs r1, 0x3F mov r2, sp - bl pokemon_setattr + bl SetMonData _08068B34: adds r5, 0x1 cmp r5, 0x5 @@ -2133,13 +2133,13 @@ _08068BE0: DoScriptedWildBattle: @ 8068C18 push {r4-r7,lr} sub sp, 0x14 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r5, [r0] - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r4, [r0] - ldr r0, =gUnknown_020375E4 + ldr r0, =gSpecialVar_0x8006 ldrh r6, [r0] - bl zero_enemy_party_data + bl ZeroEnemyPartyMons ldr r7, =gEnemyParty lsls r4, 24 lsrs r4, 24 @@ -2163,7 +2163,7 @@ DoScriptedWildBattle: @ 8068C18 adds r0, r7, 0 movs r1, 0xC add r2, sp, 0x10 - bl pokemon_setattr + bl SetMonData _08068C60: add sp, 0x14 pop {r4-r7} @@ -2342,7 +2342,7 @@ pokemon_calc_effective_stats: @ 8068D0C adds r0, r5, 0 movs r1, 0x38 mov r2, sp - bl pokemon_setattr + bl SetMonData ldr r0, =0x0000012f cmp r7, r0 bne _08068DF8 @@ -2376,7 +2376,7 @@ _08068E12: adds r0, 0xA str r0, [sp, 0x4] _08068E26: - ldr r1, =gUnknown_02024474 + ldr r1, =gBattleScripting add r2, sp, 0x4 ldrb r0, [r2] mov r3, r8 @@ -2391,7 +2391,7 @@ _08068E26: _08068E3E: adds r0, r5, 0 movs r1, 0x3A - bl pokemon_setattr + bl SetMonData ldr r0, =gBaseStats subs r1, r6, r7 lsls r1, 2 @@ -2427,7 +2427,7 @@ _08068E5E: adds r0, r5, 0 movs r1, 0x3B adds r2, r4, 0 - bl pokemon_setattr + bl SetMonData ldrb r0, [r6, 0x2] lsls r0, 1 ldr r3, [sp, 0x20] @@ -2459,7 +2459,7 @@ _08068EA4: adds r0, r5, 0 movs r1, 0x3C adds r2, r4, 0 - bl pokemon_setattr + bl SetMonData ldrb r0, [r6, 0x3] lsls r0, 1 ldr r2, [sp, 0x28] @@ -2491,7 +2491,7 @@ _08068EEA: adds r0, r5, 0 movs r1, 0x3D adds r2, r4, 0 - bl pokemon_setattr + bl SetMonData ldrb r0, [r6, 0x4] lsls r0, 1 ldr r3, [sp, 0x30] @@ -2523,7 +2523,7 @@ _08068F30: adds r0, r5, 0 movs r1, 0x3E adds r2, r4, 0 - bl pokemon_setattr + bl SetMonData ldrb r0, [r6, 0x5] lsls r0, 1 ldr r2, [sp, 0x38] @@ -2555,7 +2555,7 @@ _08068F76: adds r0, r5, 0 movs r1, 0x3F adds r2, r4, 0 - bl pokemon_setattr + bl SetMonData ldr r0, =0x0000012f cmp r7, r0 bne _08068FD0 @@ -2588,7 +2588,7 @@ _08068FE8: add r2, sp, 0x1C adds r0, r5, 0 movs r1, 0x39 - bl pokemon_setattr + bl SetMonData _08068FF4: add sp, 0x40 pop {r3-r5} @@ -2615,21 +2615,21 @@ sub_8069004: @ 8069004 adds r0, r4, 0 movs r1, 0x37 mov r2, sp - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0x39 mov r2, sp - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0x3A mov r2, sp - bl pokemon_setattr + bl SetMonData movs r0, 0xFF str r0, [sp] adds r0, r4, 0 movs r1, 0x40 mov r2, sp - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 bl pokemon_calc_effective_stats add sp, 0x4 @@ -2781,7 +2781,7 @@ _0806914E: adds r0, r7, 0 adds r1, r4, 0 mov r2, sp - bl pokemon_setattr_encrypted + bl SetMonData_encrypted adds r1, r5, 0 adds r1, 0x11 ldrh r0, [r6] @@ -2791,7 +2791,7 @@ _0806914E: ldr r0, =gBattleMoves + 0x4 @ PP offset adds r2, r0 adds r0, r7, 0 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted ldrh r0, [r6] b _080691A4 .pool @@ -2868,7 +2868,7 @@ sub_80691F4: @ 80691F4 adds r1, 0xD adds r0, r5, 0 mov r2, sp - bl pokemon_setattr + bl SetMonData adds r4, 0x11 mov r0, sp ldrh r0, [r0] @@ -2879,7 +2879,7 @@ sub_80691F4: @ 80691F4 adds r2, r0 adds r0, r5, 0 adds r1, r4, 0 - bl pokemon_setattr + bl SetMonData add sp, 0x4 pop {r4,r5} pop {r0} @@ -3194,12 +3194,12 @@ _08069494: adds r1, 0xD adds r0, r6, 0 adds r2, r5, 0 - bl pokemon_setattr + bl SetMonData adds r1, r4, 0 adds r1, 0x11 adds r2, r7, r4 adds r0, r6, 0 - bl pokemon_setattr + bl SetMonData adds r5, 0x2 adds r4, 0x1 cmp r4, 0x3 @@ -3207,7 +3207,7 @@ _08069494: adds r0, r6, 0 movs r1, 0x15 mov r2, r9 - bl pokemon_setattr + bl SetMonData add sp, 0x10 pop {r3,r4} mov r8, r3 @@ -3279,12 +3279,12 @@ _08069540: adds r1, 0xD adds r0, r6, 0 adds r2, r5, 0 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted adds r1, r4, 0 adds r1, 0x11 adds r2, r7, r4 adds r0, r6, 0 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted adds r5, 0x2 adds r4, 0x1 cmp r4, 0x3 @@ -3292,7 +3292,7 @@ _08069540: adds r0, r6, 0 movs r1, 0x15 mov r2, r9 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted add sp, 0x10 pop {r3,r4} mov r8, r3 diff --git a/asm/pokemon_2.s b/asm/pokemon_2.s index c7d0175805..2346d09160 100644 --- a/asm/pokemon_2.s +++ b/asm/pokemon_2.s @@ -25,9 +25,9 @@ _08069E04: b _08069EC2 _08069E0A: movs r5, 0 - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r3, [r0] - ldr r4, =gUnknown_02024210 + ldr r4, =gAbsentBankFlags ldr r2, =gBitTable _08069E14: cmp r5, r3 @@ -52,16 +52,16 @@ _08069E40: _08069E42: lsls r0, r5, 24 lsrs r0, 24 - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _08069E74 - ldr r0, =gUnknown_02024210 + ldr r0, =gAbsentBankFlags ldrb r1, [r0] ldr r2, =gBitTable lsls r0, r5, 2 @@ -84,16 +84,16 @@ _08069E88: _08069E8A: lsls r0, r5, 24 lsrs r0, 24 - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 - ldr r0, =gEnemyMonIndex + ldr r0, =gBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _08069EBC - ldr r0, =gUnknown_02024210 + ldr r0, =gAbsentBankFlags ldrb r1, [r0] ldr r2, =gBitTable lsls r0, r5, 2 @@ -131,7 +131,7 @@ sub_8069ED8: @ 8069ED8 cmp r0, 0 bne _08069F1C adds r0, r2, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08069F1C @@ -169,7 +169,7 @@ sub_8069F34: @ 8069F34 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x1 movs r6, 0x1 adds r4, r6, 0 @@ -203,7 +203,7 @@ _08069F7C: adds r0, r4, 0 b _08069FA6 _08069F80: - ldr r0, =gUnknown_02024210 + ldr r0, =gAbsentBankFlags ldrb r1, [r0] ldr r2, =gBitTable lsls r0, r4, 2 @@ -220,7 +220,7 @@ _08069FA0: eors r5, r0 adds r0, r5, 0 _08069FA6: - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 pop {r4-r6} @@ -1938,9 +1938,9 @@ _0806AC98: bx r1 thumb_func_end pokemon_getattr_encrypted - thumb_func_start pokemon_setattr -@ int pokemon_setattr(pokemon *mon, enum pokemon_data_request req, void *data) -pokemon_setattr: @ 806ACAC + thumb_func_start SetMonData +@ int SetMonData(pokemon *mon, enum pokemon_data_request req, void *data) +SetMonData: @ 806ACAC push {lr} adds r3, r0, 0 adds r0, r1, 0 @@ -2056,15 +2056,15 @@ _0806AD86: b _0806AD96 _0806AD90: adds r0, r3, 0 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted _0806AD96: pop {r0} bx r0 - thumb_func_end pokemon_setattr + thumb_func_end SetMonData - thumb_func_start pokemon_setattr_encrypted -@ int pokemon_setattr_encrypted(pokemon *mon, enum pokemon_data_request req, void *data) -pokemon_setattr_encrypted: @ 806AD9C + thumb_func_start SetMonData_encrypted +@ int SetMonData_encrypted(pokemon *mon, enum pokemon_data_request req, void *data) +SetMonData_encrypted: @ 806AD9C push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -2863,7 +2863,7 @@ _0806B3EC: pop {r0} bx r0 .pool - thumb_func_end pokemon_setattr_encrypted + thumb_func_end SetMonData_encrypted thumb_func_start memcpy_pokemon @ void *memcpy_pokemon(void *dest, void *src, unsigned int size) @@ -2882,17 +2882,17 @@ pokemon_catch: @ 806B414 ldr r4, =gSaveBlock2Ptr ldr r2, [r4] movs r1, 0x7 - bl pokemon_setattr + bl SetMonData ldr r2, [r4] adds r2, 0x8 adds r0, r6, 0 movs r1, 0x31 - bl pokemon_setattr + bl SetMonData ldr r2, [r4] adds r2, 0xA adds r0, r6, 0 movs r1, 0x1 - bl pokemon_setattr + bl SetMonData movs r5, 0 b _0806B446 .pool @@ -2916,7 +2916,7 @@ _0806B446: adds r1, r6, 0 movs r2, 0x64 bl memcpy_pokemon - ldr r1, =gUnknown_020244E9 + ldr r1, =gPlayerPartyCount adds r0, r5, 0x1 strb r0, [r1] movs r0, 0 @@ -2968,9 +2968,9 @@ _0806B4B2: mov r1, r8 movs r2, 0x50 bl memcpy_pokemon - ldr r0, =gUnknown_020375F6 + ldr r0, =gSpecialVar_0x8012 strh r5, [r0] - ldr r0, =gUnknown_020375F8 + ldr r0, =gSpecialVar_0x8013 strh r6, [r0] bl get_unknown_box_id lsls r0, 16 @@ -3014,7 +3014,7 @@ _0806B530: @ u8 calc_player_party_count() calc_player_party_count: @ 806B53C push {r4,lr} - ldr r0, =gUnknown_020244E9 + ldr r0, =gPlayerPartyCount movs r1, 0 strb r1, [r0] b _0806B554 @@ -3089,7 +3089,7 @@ sub_806B5C4: @ 806B5C4 push {r4-r6,lr} movs r6, 0 bl calc_player_party_count - ldr r1, =gUnknown_020244E9 + ldr r1, =gPlayerPartyCount ldrb r0, [r1] cmp r0, 0x1 beq _0806B628 @@ -3126,7 +3126,7 @@ _0806B5DC: adds r6, 0x1 _0806B616: adds r5, 0x1 - ldr r0, =gUnknown_020244E9 + ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r5, r0 blt _0806B5DC @@ -3201,7 +3201,7 @@ sub_806B694: @ 806B694 lsls r1, 24 cmp r1, 0 beq _0806B6B8 - ldr r2, =gUnknown_0202420A + ldr r2, =gLastUsedAbility ldr r1, =gBaseStats lsls r0, r3, 3 subs r0, r3 @@ -3211,7 +3211,7 @@ sub_806B694: @ 806B694 b _0806B6C6 .pool _0806B6B8: - ldr r2, =gUnknown_0202420A + ldr r2, =gLastUsedAbility ldr r1, =gBaseStats lsls r0, r3, 3 subs r0, r3 @@ -3262,8 +3262,8 @@ create_enemy_party: @ 806B70C push {r5-r7} sub sp, 0x14 adds r5, r0, 0 - bl zero_enemy_party_data - ldr r4, =gUnknown_020244A8 + bl ZeroEnemyPartyMons + ldr r4, =gBattleResources ldr r0, [r4] ldr r0, [r0] adds r1, r5, 0 @@ -3272,7 +3272,7 @@ create_enemy_party: @ 806B70C movs r0, 0 mov r9, r0 _0806B730: - ldr r1, =gUnknown_020244A8 + ldr r1, =gBattleResources ldr r3, [r1] ldr r2, [r3] mov r4, r9 @@ -3312,7 +3312,7 @@ _0806B730: adds r0, r5, 0 movs r3, 0xF bl create_pokemon_set_level - ldr r1, =gUnknown_020244A8 + ldr r1, =gBattleResources ldr r0, [r1] adds r1, r7, 0 adds r1, 0x88 @@ -3320,7 +3320,7 @@ _0806B730: adds r2, r1 adds r0, r5, 0 movs r1, 0xC - bl pokemon_setattr + bl SetMonData movs r5, 0 mov r10, r4 mov r7, r9 @@ -3329,12 +3329,12 @@ _0806B730: _0806B7A0: adds r1, r5, 0 adds r1, 0x1A - ldr r2, =gUnknown_020244A8 + ldr r2, =gBattleResources ldr r0, [r2] ldr r2, [r0] adds r2, r7 adds r0, r6, r4 - bl pokemon_setattr + bl SetMonData adds r5, 0x1 cmp r5, 0x5 ble _0806B7A0 @@ -3352,15 +3352,15 @@ _0806B7A0: _0806B7CE: adds r1, r5, 0 adds r1, 0xD - ldr r2, =gUnknown_020244A8 + ldr r2, =gBattleResources ldr r0, [r2] ldr r2, [r0] adds r2, r6 adds r0, r7, 0 - bl pokemon_setattr + bl SetMonData adds r1, r5, 0 adds r1, 0x11 - ldr r3, =gUnknown_020244A8 + ldr r3, =gBattleResources ldr r0, [r3] ldr r0, [r0] adds r0, 0x4C @@ -3372,7 +3372,7 @@ _0806B7CE: ldr r0, =gBattleMoves + 0x4 @ PP offset adds r2, r0 adds r0, r7, 0 - bl pokemon_setattr + bl SetMonData adds r6, 0x2 adds r4, 0x2 adds r5, 0x1 @@ -3398,7 +3398,7 @@ _0806B80A: sub_806B830: @ 806B830 push {r4,r5,lr} ldr r5, =gUnknown_08329EB8 - ldr r0, =gUnknown_020244A8 + ldr r0, =gBattleResources ldr r0, [r0] ldr r4, [r0] ldrb r0, [r4, 0x9] @@ -3427,7 +3427,7 @@ sub_806B830: @ 806B830 sub_806B870: @ 806B870 push {r4,r5,lr} ldr r5, =gUnknown_08329EB8 - ldr r0, =gUnknown_020244A8 + ldr r0, =gBattleResources ldr r0, [r0] ldr r4, [r0] ldrb r0, [r4, 0x9] @@ -3618,7 +3618,7 @@ sub_806B9A8: @ 806B9A8 adds r0, r5, 0 movs r1, 0x15 mov r2, sp - bl pokemon_setattr + bl SetMonData add sp, 0x4 pop {r4,r5} pop {r0} @@ -3945,8 +3945,8 @@ _0806BA4E: movs r1, 0x7 bl GetMonData ldr r0, [sp, 0x14] - bl battle_side_get_owner - ldr r1, =gUnknown_0202449C + bl GetBankSide + ldr r1, =gBattleStruct lsls r0, 24 lsrs r0, 23 adds r0, 0xA8 diff --git a/asm/pokemon_3.s b/asm/pokemon_3.s index ec4cc00504..ca77a64a4f 100644 --- a/asm/pokemon_3.s +++ b/asm/pokemon_3.s @@ -75,7 +75,7 @@ ExecuteTableBasedItemEffect: @ 806BD28 ands r0, r1 cmp r0, 0 beq _0806BDA8 - ldr r2, =gUnknown_02024404 + ldr r2, =gEnigmaBerries ldr r0, =gUnknown_020244B8 ldrb r1, [r0] lsls r0, r1, 3 @@ -94,7 +94,7 @@ _0806BDA8: b _0806BDC4 .pool _0806BDBC: - bl itemid_get_x12 + bl ItemId_GetHoldEffect lsls r0, 24 lsrs r0, 24 _0806BDC4: @@ -113,23 +113,23 @@ _0806BDC4: lsrs r1, r0, 24 cmp r1, 0 beq _0806BE64 - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank strb r2, [r0] ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r1, 31 str r1, [sp, 0x1C] - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldr r4, [sp, 0xC] subs r4, 0xD ldrb r0, [r0] cmp r1, r0 bge _0806BE70 - ldr r2, =gUnknown_0202406E + ldr r2, =gBattlePartyID lsls r0, r1, 1 adds r0, r2 ldrh r3, [r0] @@ -147,7 +147,7 @@ _0806BE3C: ldr r1, [sp, 0x1C] adds r1, 0x2 str r1, [sp, 0x1C] - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r1, r0 bge _0806BE70 @@ -164,7 +164,7 @@ _0806BE3C: b _0806BE70 .pool _0806BE64: - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank strb r1, [r0] movs r3, 0x4 str r3, [sp, 0x38] @@ -199,7 +199,7 @@ _0806BE9A: ands r0, r1 cmp r0, 0 beq _0806BECC - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 @@ -296,7 +296,7 @@ _0806BF76: cmp r0, 0 beq _0806BFA4 ldr r1, =gBattleMons - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -322,7 +322,7 @@ _0806BFA4: bl _0806CD4C _0806BFB2: ldr r6, =gBattleMons - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank ldrb r0, [r5] movs r4, 0x58 muls r0, r4 @@ -361,7 +361,7 @@ _0806BFFC: cmp r3, 0 beq _0806C042 ldr r7, =gBattleMons - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank ldrb r0, [r5] movs r4, 0x58 muls r0, r4 @@ -395,7 +395,7 @@ _0806C042: bl _0806CD4C _0806C050: ldr r6, =gBattleMons - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank ldrb r0, [r5] movs r4, 0x58 muls r0, r4 @@ -432,7 +432,7 @@ _0806C08C: cmp r3, 0 beq _0806C0D2 ldr r7, =gBattleMons - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank ldrb r0, [r5] movs r4, 0x58 muls r0, r4 @@ -466,7 +466,7 @@ _0806C0D2: bl _0806CD4C _0806C0E0: ldr r6, =gBattleMons - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank ldrb r0, [r5] movs r4, 0x58 muls r0, r4 @@ -504,10 +504,10 @@ _0806C120: adds r6, r2, 0 cmp r0, 0 beq _0806C168 - ldr r5, =gUnknown_02024294 - ldr r4, =gUnknown_02024064 + ldr r5, =gSideTimers + ldr r4, =gActiveBank ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 @@ -518,7 +518,7 @@ _0806C120: cmp r0, 0 bne _0806C168 ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 @@ -569,7 +569,7 @@ _0806C168: mov r0, r8 movs r1, 0x19 mov r2, sp - bl pokemon_setattr + bl SetMonData mov r0, r8 bl pokemon_calc_effective_stats movs r0, 0 @@ -780,7 +780,7 @@ _0806C300: mov r0, r8 movs r1, 0x15 mov r2, sp - bl pokemon_setattr + bl SetMonData mov r0, r8 adds r1, r5, 0 movs r2, 0 @@ -809,7 +809,7 @@ _0806C300: mov r0, r8 adds r1, r4, 0 mov r2, sp - bl pokemon_setattr + bl SetMonData movs r5, 0 str r5, [sp, 0x20] _0806C3D8: @@ -925,7 +925,7 @@ _0806C4B4: ldrb r1, [r0] add r2, sp, 0x4 mov r0, r8 - bl pokemon_setattr + bl SetMonData mov r0, r8 bl pokemon_calc_effective_stats ldr r0, [sp, 0x28] @@ -964,7 +964,7 @@ _0806C4FC: ldr r3, [sp, 0x38] cmp r3, 0x4 beq _0806C55C - ldr r2, =gUnknown_02024210 + ldr r2, =gAbsentBankFlags ldr r1, =gBitTable lsls r0, r3, 2 adds r0, r1 @@ -972,7 +972,7 @@ _0806C4FC: ldrb r0, [r2] bics r0, r1 strb r0, [r2] - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r3, 1 adds r0, r1 ldrb r0, [r0] @@ -982,14 +982,14 @@ _0806C4FC: lsrs r1, 24 ldr r0, [sp, 0x38] bl battle_data_fill - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r0, [r0] b _0806C574 .pool _0806C55C: - ldr r3, =gUnknown_02024210 + ldr r3, =gAbsentBankFlags ldr r1, =gBitTable - ldr r2, =gUnknown_02024064 + ldr r2, =gActiveBank ldrb r0, [r2] eors r0, r4 lsls r0, 2 @@ -1000,7 +1000,7 @@ _0806C55C: strb r0, [r3] ldrb r0, [r2] _0806C574: - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0806C5B2 @@ -1068,7 +1068,7 @@ _0806C5F4: movs r0, 0x1 b _0806C610 _0806C60A: - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting adds r0, 0x23 ldrb r0, [r0] _0806C610: @@ -1111,7 +1111,7 @@ _0806C65E: mov r0, r8 movs r1, 0x39 mov r2, sp - bl pokemon_setattr + bl SetMonData ldr r0, =gMain ldr r1, =0x00000439 adds r0, r1 @@ -1134,9 +1134,9 @@ _0806C65E: ands r0, r3 cmp r0, 0 bne _0806C6EC - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0806C6EC @@ -1274,7 +1274,7 @@ _0806C7CC: mov r0, r8 mov r1, r9 mov r2, sp - bl pokemon_setattr + bl SetMonData ldr r0, =gMain ldr r1, =0x00000439 adds r0, r1 @@ -1299,7 +1299,7 @@ _0806C7CC: ands r1, r0 cmp r1, 0 bne _0806C82E - ldr r1, =gUnknown_020242BC + ldr r1, =gDisableStructs lsls r0, r2, 3 subs r0, r2 lsls r0, 2 @@ -1425,7 +1425,7 @@ _0806C914: mov r0, r8 adds r1, r6, 0 mov r2, sp - bl pokemon_setattr + bl SetMonData ldr r0, =gMain ldr r1, =0x00000439 adds r0, r1 @@ -1450,7 +1450,7 @@ _0806C914: ands r0, r1 cmp r0, 0 bne _0806C978 - ldr r1, =gUnknown_020242BC + ldr r1, =gDisableStructs lsls r0, r2, 3 subs r0, r2 lsls r0, 2 @@ -1613,7 +1613,7 @@ _0806CA9A: ldrb r1, [r0] add r2, sp, 0x4 mov r0, r8 - bl pokemon_setattr + bl SetMonData mov r0, r8 bl pokemon_calc_effective_stats movs r3, 0 @@ -1685,7 +1685,7 @@ _0806CB10: mov r0, r8 movs r1, 0x15 mov r2, sp - bl pokemon_setattr + bl SetMonData mov r0, r8 adds r1, r6, 0 movs r2, 0 @@ -1713,7 +1713,7 @@ _0806CB10: mov r0, r8 adds r1, r4, 0 mov r2, sp - bl pokemon_setattr + bl SetMonData movs r5, 0 str r5, [sp, 0x20] b _0806CD3A @@ -1923,7 +1923,7 @@ _0806CD22: add r2, sp, 0x8 mov r0, r8 movs r1, 0x20 - bl pokemon_setattr + bl SetMonData movs r5, 0 str r5, [sp, 0x20] _0806CD30: @@ -1985,7 +1985,7 @@ HealStatusConditions: @ 806CD6C adds r0, r5, 0 movs r1, 0x37 mov r2, sp - bl pokemon_setattr + bl SetMonData ldr r0, =gMain ldr r1, =0x00000439 adds r0, r1 @@ -2045,7 +2045,7 @@ _0806CE08: cmp r3, 0xAF bne _0806CE1A _0806CE0C: - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 @@ -2199,11 +2199,11 @@ _0806CF1C: thumb_func_start sub_806CF24 sub_806CF24: @ 806CF24 push {lr} - ldr r2, =gEnemyMonIndex + ldr r2, =gBankTarget ldr r1, =gUnknown_020244B8 ldrb r1, [r1] strb r1, [r2] - ldr r3, =gUnknown_02022F58 + ldr r3, =gBattleTextBuff1 ldr r2, =gUnknown_085CBE00 ldr r1, =gUnknown_08329EC8 adds r0, r1 @@ -2213,7 +2213,7 @@ sub_806CF24: @ 806CF24 ldr r1, [r0] adds r0, r3, 0 bl StringCopy - ldr r0, =gUnknown_02022F68 + ldr r0, =gBattleTextBuff2 ldr r1, =gUnknown_085CB38A bl StringCopy ldr r0, =gUnknown_085CB3AA @@ -2269,7 +2269,7 @@ _0806CFD8: ldrb r0, [r2] strb r0, [r1] movs r5, 0 - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker mov r8, r0 movs r6, 0 _0806CFE6: @@ -2310,7 +2310,7 @@ _0806D02E: ands r0, r1 cmp r0, 0 beq _0806D04E - ldr r1, =gUnknown_0202420B + ldr r1, =gBankAttacker ldr r0, =gUnknown_020244B8 ldrb r0, [r0] strb r0, [r1] @@ -2407,7 +2407,7 @@ GetEvolutionTargetSpecies: @ 806D098 b _0806D114 .pool _0806D10C: - bl itemid_get_x12 + bl ItemId_GetHoldEffect lsls r0, 24 lsrs r0, 24 _0806D114: @@ -2507,8 +2507,8 @@ _0806D1DC: adds r0, r3 b _0806D228 _0806D1E6: - bl GameFreakRTC_CalcLocalDateTime - ldr r0, =gUnknown_03005CF8 + bl RtcCalcLocalTime + ldr r0, =gLocalTime ldrb r0, [r0, 0x2] subs r0, 0xC lsls r0, 24 @@ -2525,8 +2525,8 @@ _0806D202: b _0806D21E .pool _0806D208: - bl GameFreakRTC_CalcLocalDateTime - ldr r0, =gUnknown_03005CF8 + bl RtcCalcLocalTime + ldr r0, =gLocalTime ldrb r0, [r0, 0x2] cmp r0, 0xB bls _0806D216 @@ -2708,7 +2708,7 @@ _0806D350: mov r0, r8 movs r1, 0xC mov r2, sp - bl pokemon_setattr + bl SetMonData _0806D370: ldrh r2, [r4, 0x4] mov r10, r2 @@ -2945,8 +2945,8 @@ _0806D50A: bx r1 thumb_func_end HoennToNationalOrder - thumb_func_start speciesid_conv -speciesid_conv: @ 806D510 + thumb_func_start SpeciesToCryId +SpeciesToCryId: @ 806D510 push {lr} lsls r0, 16 lsrs r0, 16 @@ -2969,7 +2969,7 @@ _0806D53C: _0806D53E: pop {r1} bx r1 - thumb_func_end speciesid_conv + thumb_func_end SpeciesToCryId thumb_func_start sub_806D544 sub_806D544: @ 806D544 @@ -3312,7 +3312,7 @@ sub_806D778: @ 806D778 adds r2, r4 adds r0, r5, 0 movs r1, 0x2 - bl pokemon_setattr + bl SetMonData _0806D7D4: add sp, 0x4 pop {r3,r4} @@ -3549,7 +3549,7 @@ _0806D94A: ands r0, r1 cmp r0, 0 beq _0806D98C - ldr r0, =gUnknown_02024404 + ldr r0, =gEnigmaBerries ldrb r4, [r0, 0x7] b _0806D9A8 .pool @@ -3562,7 +3562,7 @@ _0806D98C: b _0806D9A8 .pool _0806D9A0: - bl itemid_get_x12 + bl ItemId_GetHoldEffect lsls r0, 24 lsrs r4, r0, 24 _0806D9A8: @@ -3710,7 +3710,7 @@ _0806DAB8: adds r0, r7, 0 movs r1, 0x20 mov r2, sp - bl pokemon_setattr + bl SetMonData _0806DAC2: add sp, 0x4 pop {r4-r7} @@ -3855,7 +3855,7 @@ _0806DBC8: ands r0, r1 cmp r0, 0 beq _0806DC00 - ldr r0, =gUnknown_02024404 + ldr r0, =gEnigmaBerries ldrb r0, [r0, 0x7] b _0806DC1C .pool @@ -3868,7 +3868,7 @@ _0806DC00: b _0806DC1C .pool _0806DC14: - bl itemid_get_x12 + bl ItemId_GetHoldEffect lsls r0, 24 lsrs r0, 24 _0806DC1C: @@ -3913,7 +3913,7 @@ _0806DC58: adds r1, r6, 0 adds r1, 0x1A mov r0, r8 - bl pokemon_setattr + bl SetMonData adds r6, 0x1 cmp r6, 0x5 bgt _0806DC7A @@ -4046,7 +4046,7 @@ _0806DD46: adds r0, r6, r0 movs r1, 0x22 mov r2, sp - bl pokemon_setattr + bl SetMonData _0806DD70: add sp, 0x4 pop {r4-r6} @@ -4222,7 +4222,7 @@ _0806DEA2: adds r0, r1 movs r1, 0x22 mov r2, sp - bl pokemon_setattr + bl SetMonData _0806DEB2: adds r6, 0x1 cmp r6, 0x5 @@ -4289,7 +4289,7 @@ _0806DEE0: adds r0, r4, 0 movs r1, 0x22 mov r2, sp - bl pokemon_setattr + bl SetMonData _0806DF3A: cmp r5, 0x5 beq _0806DF64 @@ -4308,7 +4308,7 @@ _0806DF3A: adds r0, r4, 0 movs r1, 0x22 mov r2, sp - bl pokemon_setattr + bl SetMonData adds r5, 0x1 _0806DF64: adds r5, 0x1 @@ -4366,7 +4366,7 @@ sub_806DF74: @ 806DF74 add r2, sp, 0x4 adds r0, r5, 0 movs r1, 0x19 - bl pokemon_setattr + bl SetMonData _0806DFD4: mov r0, sp ldrb r0, [r0] @@ -4387,7 +4387,7 @@ _0806DFF8: adds r0, r5, 0 movs r1, 0x38 mov r2, sp - bl pokemon_setattr + bl SetMonData movs r0, 0x1 _0806E004: add sp, 0x8 @@ -4893,7 +4893,7 @@ sub_806E3C0: @ 806E3C0 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 - bl sub_809D42C + bl IsNationalPokedexEnabled cmp r0, 0 beq _0806E3DA adds r0, r4, 0 @@ -5157,38 +5157,38 @@ _0806E646: thumb_func_start sub_806E64C sub_806E64C: @ 806E64C push {lr} - bl map_music_set_to_zero + bl ResetMapMusic bl m4aMPlayAllStop bl song_id_for_battle lsls r0, 16 lsrs r0, 16 - bl song_play_for_text + bl PlayBGM pop {r0} bx r0 thumb_func_end sub_806E64C - thumb_func_start current_map_music_set__default_for_battle -current_map_music_set__default_for_battle: @ 806E668 + thumb_func_start PlayNewMapMusic__default_for_battle +PlayNewMapMusic__default_for_battle: @ 806E668 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 - bl map_music_set_to_zero + bl ResetMapMusic bl m4aMPlayAllStop cmp r4, 0 beq _0806E682 adds r0, r4, 0 - bl current_map_music_set + bl PlayNewMapMusic b _0806E68E _0806E682: bl song_id_for_battle lsls r0, 16 lsrs r0, 16 - bl current_map_music_set + bl PlayNewMapMusic _0806E68E: pop {r4} pop {r0} bx r0 - thumb_func_end current_map_music_set__default_for_battle + thumb_func_end PlayNewMapMusic__default_for_battle thumb_func_start sub_806E694 sub_806E694: @ 806E694 @@ -5196,7 +5196,7 @@ sub_806E694: @ 806E694 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 - bl map_music_set_to_zero + bl ResetMapMusic bl m4aMPlayAllStop ldr r0, =sub_806E6CC movs r1, 0 @@ -5230,14 +5230,14 @@ sub_806E6CC: @ 806E6CC cmp r0, 0 beq _0806E6F0 ldrh r0, [r1, 0x8] - bl current_map_music_set + bl PlayNewMapMusic b _0806E6FC .pool _0806E6F0: bl song_id_for_battle lsls r0, 16 lsrs r0, 16 - bl current_map_music_set + bl PlayNewMapMusic _0806E6FC: adds r0, r4, 0 bl DestroyTask @@ -5580,7 +5580,7 @@ _0806E938: adds r1, 0x11 adds r0, r5, 0 mov r2, sp - bl pokemon_setattr_encrypted + bl SetMonData_encrypted _0806E984: adds r6, 0x1 cmp r6, 0x3 @@ -5594,14 +5594,14 @@ _0806E984: thumb_func_start sub_806E994 sub_806E994: @ 806E994 push {r4,r5,lr} - ldr r2, =gUnknown_0202420A - ldr r5, =gUnknown_0202449C + ldr r2, =gLastUsedAbility + ldr r5, =gBattleStruct ldr r1, [r5] adds r0, r1, 0 adds r0, 0xB0 ldrb r0, [r0] strb r0, [r2] - ldr r4, =gUnknown_02022F58 + ldr r4, =gBattleTextBuff1 movs r0, 0xFD strb r0, [r4] movs r0, 0x4 @@ -5612,11 +5612,11 @@ sub_806E994: @ 806E994 movs r0, 0xFF strb r0, [r4, 0x4] ldrb r0, [r1] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0806E9E8 - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID ldr r0, [r5] adds r0, 0x49 ldrb r0, [r0] @@ -5627,7 +5627,7 @@ sub_806E994: @ 806E994 b _0806E9F6 .pool _0806E9E8: - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID ldr r0, [r5] adds r0, 0x49 ldrb r0, [r0] @@ -5636,7 +5636,7 @@ _0806E9E8: ldrh r0, [r0] _0806E9F6: strb r0, [r4, 0x3] - ldr r4, =gUnknown_02022F68 + ldr r4, =gBattleTextBuff2 movs r0, 0xFD strb r0, [r4] movs r0, 0x4 @@ -5644,7 +5644,7 @@ _0806E9F6: ldr r1, =gUnknown_020244B8 ldrb r0, [r1] strb r0, [r4, 0x2] - ldr r2, =gUnknown_0202406E + ldr r2, =gBattlePartyID ldrb r0, [r1] lsls r0, 1 adds r0, r2 @@ -5803,7 +5803,7 @@ _0806EB6C: adds r2, r1 _0806EB6E: movs r1, 0xC - bl pokemon_setattr + bl SetMonData b _0806EB90 .pool _0806EB80: @@ -5813,7 +5813,7 @@ _0806EB80: ldr r1, =gBaseStats + 0xe @ item 2 offset adds r2, r1 movs r1, 0xC - bl pokemon_setattr + bl SetMonData _0806EB90: pop {r3} mov r8, r3 @@ -5994,7 +5994,7 @@ sub_806ECEC: @ 806ECEC lsrs r2, 24 lsls r3, 24 lsrs r3, 24 - ldr r0, =gUnknown_02024280 + ldr r0, =gHitMarker ldr r0, [r0] movs r1, 0x80 ands r0, r1 @@ -6056,9 +6056,9 @@ _0806ED66: lsls r1, 24 asrs r1, 24 adds r0, r4, 0 - bl cry_related + bl PlayCry1 _0806ED7C: - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy b _0806EDFA .pool _0806ED84: @@ -6067,7 +6067,7 @@ _0806ED84: lsls r1, 24 asrs r1, 24 adds r0, r4, 0 - bl cry_related + bl PlayCry1 adds r0, r4, 0 bl sub_806F0D4 lsls r0, 24 @@ -6075,7 +6075,7 @@ _0806ED84: beq _0806EDA6 adds r0, r5, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim _0806EDA6: ldr r0, =gUnknown_08329B87 subs r4, 0x1 @@ -6136,7 +6136,7 @@ sub_806EE0C: @ 806EE0C beq _0806EE2E adds r0, r5, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim _0806EE2E: ldr r0, =gUnknown_08329B87 subs r4, 0x1 @@ -6203,7 +6203,7 @@ sub_806EEB4: @ 806EEB4 adds r4, r0, 0 lsls r1, 16 lsrs r2, r1, 16 - ldr r0, =gUnknown_02024280 + ldr r0, =gHitMarker ldr r0, [r0] movs r1, 0x80 ands r0, r1 @@ -6215,7 +6215,7 @@ sub_806EEB4: @ 806EEB4 ands r0, r1 cmp r0, 0 bne _0806EEE8 - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy b _0806EEFC .pool _0806EEE8: diff --git a/asm/porthole.s b/asm/porthole.s index a82ffc02fa..2ba6ec83a6 100644 --- a/asm/porthole.s +++ b/asm/porthole.s @@ -176,7 +176,7 @@ _080FB6E2: sub_80FB6EC: @ 80FB6EC push {r4,lr} sub sp, 0x4 - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy movs r0, 0 str r0, [sp] movs r0, 0x8C @@ -185,7 +185,7 @@ sub_80FB6EC: @ 80FB6EC bl AddPseudoFieldObject lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -209,7 +209,7 @@ sub_80FB6EC: @ 80FB6EC lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim b _080FB75E .pool _080FB74C: @@ -219,7 +219,7 @@ _080FB74C: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim _080FB75E: add sp, 0x4 pop {r4} diff --git a/asm/record_mixing.s b/asm/record_mixing.s index b5da0864fc..9efd38fe07 100644 --- a/asm/record_mixing.s +++ b/asm/record_mixing.s @@ -498,7 +498,7 @@ sub_80E7128: @ 80E7128 cmp r0, 0x32 bne _080E7150 movs r0, 0xE2 - bl audio_play + bl PlaySE movs r0, 0 strh r0, [r4, 0x8] _080E7150: @@ -547,7 +547,7 @@ _080E71A0: ldr r0, =0x00005110 bl Alloc str r0, [r4] - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrb r0, [r0] bl sub_8009628 movs r0, 0x80 @@ -605,7 +605,7 @@ _080E724C: movs r0, 0x3 strh r0, [r5] movs r0, 0xE0 - bl audio_play + bl PlaySE b _080E730A .pool _080E726C: @@ -781,7 +781,7 @@ _080E73B8: b _080E7566 _080E73DA: movs r0, 0x15 - bl audio_play + bl PlaySE movs r1, 0 movs r0, 0xC9 strh r0, [r5, 0x8] @@ -789,7 +789,7 @@ _080E73DA: b _080E7566 _080E73EA: movs r0, 0x16 - bl audio_play + bl PlaySE ldr r0, =0x0000012d b _080E7564 .pool @@ -2253,14 +2253,14 @@ sub_80E7F68: @ 80E7F68 ldrh r0, [r4] cmp r0, 0 beq _080E7FEC - bl sub_80D6C68 + bl GetPocketByItemId lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bne _080E7FEC ldrh r0, [r4] movs r1, 0x1 - bl sub_80D6724 + bl CheckBagHasItem lsls r0, 24 cmp r0, 0 bne _080E7FE4 @@ -2272,7 +2272,7 @@ sub_80E7F68: @ 80E7F68 bne _080E7FE4 ldrh r0, [r4] movs r1, 0x1 - bl bag_add_item + bl AddBagItem lsls r0, 24 cmp r0, 0 beq _080E7FE4 @@ -2484,12 +2484,12 @@ _080E8150: adds r5, r1, 0 adds r5, 0x34 adds r0, r5, 0 - bl sub_80842DC + bl ReadUnalignedWord adds r4, r0, 0 mov r1, r9 ldr r0, [r1] adds r0, 0xA - bl sub_80842DC + bl ReadUnalignedWord cmp r4, r0 beq _080E819A movs r2, 0x1 @@ -2497,12 +2497,12 @@ _080E8150: str r6, [sp, 0x4] _080E819A: adds r0, r5, 0 - bl sub_80842DC + bl ReadUnalignedWord adds r4, r0, 0 mov r1, r9 ldr r0, [r1] adds r0, 0xA - bl sub_80842DC + bl ReadUnalignedWord cmp r4, r0 bne _080E81B8 ldr r2, [sp, 0xC] @@ -2619,7 +2619,7 @@ _080E8286: ldr r1, [r2] adds r1, 0xA adds r0, r5, 0 - bl sub_80842F4 + bl CopyUnalignedWord movs r0, 0x2 strb r0, [r4, 0xE] mov r0, r10 @@ -2662,13 +2662,13 @@ _080E82DA: ldr r1, [r2] adds r1, 0xA adds r0, r5, 0 - bl sub_80842F4 + bl CopyUnalignedWord mov r0, r10 ldr r1, [r0] ldr r2, [sp, 0x8] adds r1, r2 adds r0, r6, 0 - bl sub_80842F4 + bl CopyUnalignedWord mov r0, r10 ldr r1, [r0] mov r0, r9 @@ -2810,10 +2810,10 @@ sub_80E841C: @ 80E841C _080E842E: adds r0, r7, 0 adds r0, 0x34 - bl sub_80842DC + bl ReadUnalignedWord adds r4, r0, 0 adds r0, r6, 0 - bl sub_80842DC + bl ReadUnalignedWord cmp r4, r0 bne _080E844E ldrb r0, [r7, 0x2] @@ -3109,13 +3109,13 @@ _080E8666: ldr r6, [sp, 0x1C] adds r0, r6, r0 str r3, [sp, 0x4C] - bl sub_80842DC + bl ReadUnalignedWord adds r4, r0, 0 ldr r1, [sp, 0x50] ldr r0, [r1] add r0, r9 adds r0, r7 - bl sub_80842DC + bl ReadUnalignedWord ldr r3, [sp, 0x4C] cmp r4, r0 bne _080E86A8 @@ -3271,7 +3271,7 @@ _080E878E: adds r5, r0, r6 adds r0, r5, 0 str r3, [sp, 0x4C] - bl sub_80842DC + bl ReadUnalignedWord adds r4, r0, 0 movs r6, 0x90 lsls r6, 1 @@ -3279,18 +3279,18 @@ _080E878E: mov r1, r9 ldr r0, [r1] adds r0, r6 - bl sub_80842DC + bl ReadUnalignedWord ldr r3, [sp, 0x4C] cmp r4, r0 bne _080E8808 adds r0, r5, 0x4 - bl sub_80842DC + bl ReadUnalignedWord adds r4, r0, 0 mov r2, r9 ldr r0, [r2] adds r0, r6 adds r0, 0x4 - bl sub_80842DC + bl ReadUnalignedWord ldr r3, [sp, 0x4C] cmp r4, r0 bne _080E8808 diff --git a/asm/region_map.s b/asm/region_map.s index 52328cf8a2..7169818132 100644 --- a/asm/region_map.s +++ b/asm/region_map.s @@ -426,29 +426,29 @@ sub_812305C: @ 812305C ldr r0, [r0, 0x1C] cmp r0, 0 beq _08123080 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, [r4] adds r0, 0x58 ldrh r0, [r0] - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag ldr r0, [r4] adds r0, 0x5A ldrh r0, [r0] - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag _08123080: ldr r0, [r4] ldr r0, [r0, 0x20] cmp r0, 0 beq _081230A0 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, [r4] adds r0, 0x70 ldrh r0, [r0] - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag ldr r0, [r4] adds r0, 0x72 ldrh r0, [r0] - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag _081230A0: pop {r4} pop {r0} @@ -1287,7 +1287,7 @@ sub_81236C4: @ 81236C4 lsrs r5, 24 ldr r4, =gUnknown_0203A144 ldr r6, [r4] - ldr r7, =gUnknown_08329F40 + ldr r7, =gSineTable mov r12, r7 adds r4, r5, 0 adds r4, 0x40 @@ -2639,14 +2639,14 @@ _08124158: _0812416E: str r0, [sp, 0x14] adds r0, r2, 0 - bl LoadObjectPic + bl LoadSpriteSheet adds r0, r7, 0 - bl LoadTaggedObjectPalette + bl LoadSpritePalette mov r0, sp movs r1, 0x38 movs r2, 0x48 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 @@ -2656,7 +2656,7 @@ _0812416E: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r3, r0, r1 str r3, [r2, 0x1C] adds r2, 0x78 @@ -2680,7 +2680,7 @@ _0812416E: strh r0, [r1, 0x22] ldr r0, [r2, 0x1C] movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim b _08124204 .pool _081241DC: @@ -2711,7 +2711,7 @@ _08124204: movs r0, 0x2 strh r0, [r1, 0x30] adds r0, r6, 0 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag ldr r1, [r4] ldr r2, [r1, 0x1C] lsls r0, 24 @@ -2738,15 +2738,15 @@ sub_8124238: @ 8124238 ldr r0, [r0, 0x1C] cmp r0, 0 beq _0812425C - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, [r4] adds r0, 0x58 ldrh r0, [r0] - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag ldr r0, [r4] adds r0, 0x5A ldrh r0, [r0] - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag _0812425C: pop {r4} pop {r0} @@ -2807,9 +2807,9 @@ sub_8124288: @ 8124288 ldr r0, =gUnknown_085A1C30 str r0, [sp, 0x8] str r5, [sp, 0xC] - ldr r0, =gDummyObjectRotScalAnimTable + ldr r0, =gDummySpriteAffineAnimTable str r0, [sp, 0x10] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [sp, 0x14] ldr r0, =gUnknown_02037318 ldrb r0, [r0, 0x14] @@ -2833,14 +2833,14 @@ _08124304: str r0, [sp, 0x20] _08124316: adds r0, r6, 0 - bl LoadObjectPic + bl LoadSpriteSheet adds r0, r4, 0 - bl LoadTaggedObjectPalette + bl LoadSpritePalette mov r0, sp movs r1, 0 movs r2, 0 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0203A144 @@ -2848,7 +2848,7 @@ _08124316: lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 str r1, [r2, 0x20] adds r0, r2, 0 @@ -2914,7 +2914,7 @@ sub_81243B0: @ 81243B0 strb r0, [r2] ldr r0, [r3] ldr r1, [r0, 0x20] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r1, 0x1C] _081243CE: pop {r0} @@ -3378,9 +3378,9 @@ _081246E4: .pool _08124754: bl ResetPaletteFade - bl ResetAllObjectData - bl FreeAllObjectTiles - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeSpriteTileRanges + bl FreeAllSpritePalettes b _0812489C _08124766: movs r0, 0 @@ -3516,8 +3516,8 @@ _081248AA: thumb_func_start sub_81248C0 sub_81248C0: @ 81248C0 push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -3530,8 +3530,8 @@ sub_81248D4: @ 81248D4 ldr r0, [r0] ldr r0, [r0] bl _call_via_r0 - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl do_scheduled_bg_tilemap_copies_to_vram pop {r0} bx r0 @@ -3739,9 +3739,9 @@ sub_8124A70: @ 8124A70 orrs r0, r1 str r0, [sp, 0x4] mov r0, sp - bl LoadObjectPic + bl LoadSpriteSheet ldr r0, =gUnknown_085A1F10 - bl LoadTaggedObjectPalette + bl LoadSpritePalette bl sub_8124AD4 bl sub_8124BE4 add sp, 0x8 @@ -3818,12 +3818,12 @@ _08124B44: ldrsh r2, [r3, r0] ldr r0, =gUnknown_085A1F7C movs r3, 0xA - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x40 beq _08124BB8 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites mov r8, r1 lsls r4, r5, 4 adds r0, r4, r5 @@ -3854,12 +3854,12 @@ _08124B9C: _08124BA2: adds r4, r5 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 lsls r1, r7, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim mov r2, r9 strh r2, [r4, 0x2E] _08124BB8: @@ -3903,7 +3903,7 @@ sub_8124BE4: @ 8124BE4 mov r5, sp adds r5, 0x6 add r7, sp, 0x4 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites mov r9, r1 movs r0, 0x1C add r0, r9 @@ -3942,7 +3942,7 @@ _08124C0C: ldrsh r2, [r5, r0] ldr r0, =gUnknown_085A1F7C movs r3, 0xA - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 @@ -3963,7 +3963,7 @@ _08124C0C: str r0, [r2] adds r0, r4, 0 movs r1, 0x6 - bl StartObjectImageAnim + bl StartSpriteAnim strh r6, [r4, 0x2E] _08124C84: mov r0, r8 diff --git a/asm/reset_rtc_screen.s b/asm/reset_rtc_screen.s index 8edd73d7fb..ccef727ffe 100644 --- a/asm/reset_rtc_screen.s +++ b/asm/reset_rtc_screen.s @@ -144,7 +144,7 @@ _0809E9CE: b _0809E9FE _0809E9F8: adds r0, r3, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0809E9FE: pop {r0} bx r0 @@ -275,7 +275,7 @@ _0809EAEA: b _0809EAFE _0809EAF8: adds r0, r3, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0809EAFE: pop {r0} bx r0 @@ -290,16 +290,16 @@ sub_809EB04: @ 809EB04 lsls r5, 24 lsrs r5, 24 ldr r0, =gUnknown_085104C4 - bl LoadTaggedObjectPalette + bl LoadSpritePalette ldr r0, =gUnknown_085104F0 mov r8, r0 movs r1, 0x35 movs r2, 0x44 movs r3, 0 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 @@ -316,7 +316,7 @@ sub_809EB04: @ 809EB04 movs r1, 0x35 movs r2, 0x44 movs r3, 0 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 lsls r0, r1, 4 @@ -343,7 +343,7 @@ sub_809EB8C: @ 809EB8C push {lr} ldr r0, =gUnknown_085104C4 ldrh r0, [r0, 0x4] - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag pop {r0} bx r0 .pool @@ -695,7 +695,7 @@ _0809EE4A: _0809EE5C: strh r0, [r5, 0x4] movs r0, 0x5 - bl audio_play + bl PlaySE b _0809EEF4 _0809EE66: cmp r4, 0x5 @@ -707,7 +707,7 @@ _0809EE66: ands r0, r1 cmp r0, 0 beq _0809EEF4 - ldr r1, =gUnknown_03005CF8 + ldr r1, =gLocalTime ldrh r0, [r5, 0x6] strh r0, [r1] ldrh r0, [r5, 0x8] @@ -717,7 +717,7 @@ _0809EE66: ldrh r0, [r5, 0xC] strb r0, [r1, 0x4] movs r0, 0x5 - bl audio_play + bl PlaySE ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 @@ -744,7 +744,7 @@ _0809EEB4: cmp r0, 0 beq _0809EEF4 movs r0, 0x5 - bl audio_play + bl PlaySE ldrb r0, [r5, 0x10] ldrh r3, [r5, 0x6] ldrb r1, [r5, 0x8] @@ -787,7 +787,7 @@ sub_809EF00: @ 809EF00 adds r5, r6, r0 movs r0, 0 strh r0, [r5] - ldr r1, =gUnknown_03005CF8 + ldr r1, =gLocalTime ldrh r0, [r1] strh r0, [r5, 0x6] movs r0, 0x2 @@ -885,11 +885,11 @@ _0809EFCA: ldr r0, [r1, 0x8] movs r0, 0 movs r1, 0x80 - bl ResetSpriteRange - bl LoadOamFromSprites + bl ResetOamRange + bl LoadOam bl remove_some_task bl dp12_8087EA4 - bl ResetAllObjectData + bl ResetSpriteData bl ResetTasks bl ResetPaletteFade bl sub_809F048 @@ -938,8 +938,8 @@ sub_809F048: @ 809F048 sub_809F090: @ 809F090 push {lr} bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl do_scheduled_bg_tilemap_copies_to_vram bl UpdatePaletteFade pop {r0} @@ -949,8 +949,8 @@ sub_809F090: @ 809F090 thumb_func_start sub_809F0AC sub_809F0AC: @ 809F0AC push {lr} - bl ProcessObjectCopyRequests - bl LoadOamFromSprites + bl ProcessSpriteCopyRequests + bl LoadOam bl TransferPlttBuffer pop {r0} bx r0 @@ -1021,7 +1021,7 @@ _0809F11C: movs r1, 0x1 movs r3, 0 bl Print - ldr r1, =gUnknown_03005CF8 + ldr r1, =gLocalTime ldrh r3, [r1] ldrb r0, [r1, 0x2] str r0, [sp] @@ -1090,7 +1090,7 @@ _0809F1E4: cmp r0, 0 beq _0809F1F8 movs r0, 0x5 - bl audio_play + bl PlaySE adds r0, r7, 0 bl DestroyTask _0809F1F8: @@ -1154,7 +1154,7 @@ _0809F268: beq _0809F276 b _0809F404 _0809F276: - ldr r0, =gUnknown_03006210 + ldr r0, =gSaveFileStatus ldrh r0, [r0] cmp r0, 0 beq _0809F282 @@ -1168,7 +1168,7 @@ _0809F282: b _0809F404 .pool _0809F29C: - bl GameFreakRTC_CalcLocalDateTime + bl RtcCalcLocalTime ldr r0, =sub_809F0F8 movs r1, 0x50 bl CreateTask @@ -1195,7 +1195,7 @@ _0809F2CA: bl sub_8198070 ldr r0, =gUnknown_085ECA38 bl sub_809F0C0 - ldr r2, =gUnknown_03005CF8 + ldr r2, =gLocalTime ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xA0 @@ -1239,8 +1239,8 @@ _0809F334: _0809F340: ldrb r0, [r5, 0x2] bl DestroyTask - bl GameFreakRTC_Reset - ldr r4, =gUnknown_03005CF8 + bl RtcReset + ldr r4, =gLocalTime movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0x2 @@ -1249,7 +1249,7 @@ _0809F340: ldrsb r2, [r4, r2] movs r3, 0x4 ldrsb r3, [r4, r3] - bl GameFreakRTC_CalcRTCToLocalDelta + bl RtcCalcLocalTimeOffset ldr r0, =gSaveBlock2Ptr ldr r2, [r0] adds r2, 0xA0 @@ -1260,7 +1260,7 @@ _0809F340: ldr r0, =0x00004040 ldrh r1, [r4] bl VarSet - bl sub_809D5D8 + bl DisableResetRTC ldr r0, =gUnknown_085ECA4F bl sub_809F0C0 movs r0, 0x4 @@ -1269,7 +1269,7 @@ _0809F340: .pool _0809F398: movs r0, 0 - bl save_game_when_memory_present + bl TrySavingData lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1277,14 +1277,14 @@ _0809F398: ldr r0, =gUnknown_085ECA8A bl sub_809F0C0 movs r0, 0x49 - bl audio_play + bl PlaySE b _0809F3C4 .pool _0809F3B8: ldr r0, =gUnknown_085ECA9A bl sub_809F0C0 movs r0, 0x16 - bl audio_play + bl PlaySE _0809F3C4: movs r0, 0x5 strh r0, [r5] diff --git a/asm/reshow_battle_screen.s b/asm/reshow_battle_screen.s new file mode 100644 index 0000000000..beec0a0898 --- /dev/null +++ b/asm/reshow_battle_screen.s @@ -0,0 +1,1040 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start nullsub_35 +nullsub_35: @ 80A92F4 + bx lr + thumb_func_end nullsub_35 + + thumb_func_start sub_80A92F8 +sub_80A92F8: @ 80A92F8 + push {lr} + ldr r2, =gPaletteFade + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + movs r0, 0 + bl SetHBlankCallback + movs r0, 0 + bl SetVBlankCallback + movs r0, 0x4C + movs r1, 0 + bl SetGpuReg + ldr r0, =gBattleScripting + adds r2, r0, 0 + adds r2, 0x21 + movs r1, 0 + strb r1, [r2] + adds r0, 0x22 + strb r1, [r0] + ldr r0, =c2_80777E8 + bl SetMainCallback2 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A92F8 + + thumb_func_start c2_80777E8 +c2_80777E8: @ 80A933C + push {r4-r7,lr} + sub sp, 0x8 + ldr r0, =gBattleScripting + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0x13 + bls _080A934C + b _080A95A4 +_080A934C: + lsls r0, 2 + ldr r1, =_080A9360 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080A9360: + .4byte _080A93B0 + .4byte _080A942C + .4byte _080A9444 + .4byte _080A944A + .4byte _080A9450 + .4byte _080A9460 + .4byte _080A9466 + .4byte _080A948E + .4byte _080A9492 + .4byte _080A9496 + .4byte _080A949A + .4byte _080A94B8 + .4byte _080A94C0 + .4byte _080A94C8 + .4byte _080A94D0 + .4byte _080A94D8 + .4byte _080A94E0 + .4byte _080A94E8 + .4byte _080A94F0 + .4byte _080A94F8 +_080A93B0: + bl dp12_8087EA4 + bl trs_config + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0 + bl SetBgAttribute + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0 + bl SetBgAttribute + movs r0, 0 + bl ShowBg + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + movs r0, 0x3 + bl ShowBg + bl ResetPaletteFade + ldr r0, =gUnknown_02022E14 + movs r1, 0 + strh r1, [r0] + ldr r0, =gUnknown_02022E16 + strh r1, [r0] + ldr r0, =gUnknown_02022E18 + strh r1, [r0] + ldr r0, =gUnknown_02022E1A + strh r1, [r0] + ldr r0, =gUnknown_02022E1C + strh r1, [r0] + ldr r0, =gUnknown_02022E1E + strh r1, [r0] + ldr r0, =gUnknown_02022E20 + strh r1, [r0] + ldr r0, =gUnknown_02022E22 + strh r1, [r0] + b _080A95D2 + .pool +_080A942C: + movs r0, 0 + str r0, [sp, 0x4] + movs r1, 0xC0 + lsls r1, 19 + ldr r2, =0x01006000 + add r0, sp, 0x4 + bl CpuFastSet + b _080A95D2 + .pool +_080A9444: + bl sub_8035AA4 + b _080A95D2 +_080A944A: + bl ResetSpriteData + b _080A95D2 +_080A9450: + bl FreeAllSpritePalettes + ldr r1, =gReservedSpritePaletteCount + movs r0, 0x4 + strb r0, [r1] + b _080A95D2 + .pool +_080A9460: + bl sub_805E350 + b _080A95D2 +_080A9466: + ldr r5, =gBattleScripting + adds r4, r5, 0 + adds r4, 0x22 + ldrb r0, [r4] + bl sub_805E08C + lsls r0, 24 + cmp r0, 0 + beq _080A9484 + movs r0, 0 + strb r0, [r4] + b _080A95D2 + .pool +_080A9484: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + adds r1, r5, 0 + b _080A94AA +_080A948E: + movs r0, 0 + b _080A949C +_080A9492: + movs r0, 0x1 + b _080A949C +_080A9496: + movs r0, 0x2 + b _080A949C +_080A949A: + movs r0, 0x3 +_080A949C: + bl sub_80A9614 + lsls r0, 24 + cmp r0, 0 + beq _080A94A8 + b _080A95D2 +_080A94A8: + ldr r1, =gBattleScripting +_080A94AA: + adds r1, 0x21 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + b _080A95D2 + .pool +_080A94B8: + movs r0, 0 + bl sub_80A9708 + b _080A95D2 +_080A94C0: + movs r0, 0x1 + bl sub_80A9708 + b _080A95D2 +_080A94C8: + movs r0, 0x2 + bl sub_80A9708 + b _080A95D2 +_080A94D0: + movs r0, 0x3 + bl sub_80A9708 + b _080A95D2 +_080A94D8: + movs r0, 0 + bl sub_80A9ADC + b _080A95D2 +_080A94E0: + movs r0, 0x1 + bl sub_80A9ADC + b _080A95D2 +_080A94E8: + movs r0, 0x2 + bl sub_80A9ADC + b _080A95D2 +_080A94F0: + movs r0, 0x3 + bl sub_80A9ADC + b _080A95D2 +_080A94F8: + bl sub_805EC84 + movs r0, 0x1 + bl GetBankByPlayerAI + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r7, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r7 + ldrh r0, [r0] + movs r6, 0x64 + muls r0, r6 + ldr r5, =gEnemyParty + adds r0, r5 + movs r1, 0xB + bl GetMonData + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_805EE54 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _080A955C + movs r0, 0x3 + bl GetBankByPlayerAI + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 1 + adds r0, r7 + ldrh r0, [r0] + muls r0, r6 + adds r0, r5 + movs r1, 0xB + bl GetMonData + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_805EE54 +_080A955C: + ldr r1, =gUnknown_020244AC + ldr r0, =gUnknown_020244B8 + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + movs r1, 0 + bl sub_8059CB4 + ldr r0, =gLinkVSyncDisabled + ldrb r0, [r0] + cmp r0, 0 + beq _080A95D2 + ldr r0, =gUnknown_03003124 + ldrb r0, [r0] + cmp r0, 0 + beq _080A95D2 + bl sub_800E0E8 + movs r0, 0 + movs r1, 0 + bl sub_800DFB4 + b _080A95D2 + .pool +_080A95A4: + ldr r0, =vblank_cb_08078BB4 + bl SetVBlankCallback + bl sub_80A95F4 + movs r0, 0x1 + str r0, [sp] + movs r0, 0xFF + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginHardwarePaletteFade + ldr r2, =gPaletteFade + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x8] + ldr r0, =sub_8038420 + bl SetMainCallback2 + bl sub_805EF14 +_080A95D2: + ldr r1, =gBattleScripting + adds r1, 0x21 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end c2_80777E8 + + thumb_func_start sub_80A95F4 +sub_80A95F4: @ 80A95F4 + ldr r3, =0x0400000a + ldrb r2, [r3] + movs r1, 0xD + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + strb r0, [r3] + ldr r2, =0x0400000c + ldrb r0, [r2] + ands r1, r0 + strb r1, [r2] + bx lr + .pool + thumb_func_end sub_80A95F4 + + thumb_func_start sub_80A9614 +sub_80A9614: @ 80A9614 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + cmp r4, r0 + bcs _080A96FC + adds r0, r4, 0 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + beq _080A9676 + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r4, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + bne _080A966C + ldr r1, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + adds r0, r1 + adds r1, r4, 0 + bl sub_805DC0C + b _080A96F4 + .pool +_080A966C: + adds r0, r4, 0 + movs r1, 0 + bl sub_805E7DC + b _080A96F4 +_080A9676: + ldr r0, =gBattleTypeFlags + ldr r1, [r0] + movs r2, 0x80 + ands r1, r2 + cmp r1, 0 + beq _080A9698 + cmp r4, 0 + bne _080A9698 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r0, [r0, 0x8] + b _080A96AA + .pool +_080A9698: + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 2 + ands r0, r1 + cmp r0, 0 + beq _080A96B2 + cmp r4, 0 + bne _080A96B2 + movs r0, 0x6 +_080A96AA: + movs r1, 0 + bl sub_805DF84 + b _080A96F4 +_080A96B2: + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r4, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + bne _080A96EC + ldr r1, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + adds r1, r4, 0 + bl sub_805DD7C + b _080A96F4 + .pool +_080A96EC: + adds r0, r4, 0 + movs r1, 0 + bl sub_805E7DC +_080A96F4: + ldr r0, =gBattleScripting + adds r0, 0x22 + movs r1, 0 + strb r1, [r0] +_080A96FC: + movs r0, 0x1 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80A9614 + + thumb_func_start sub_80A9708 +sub_80A9708: @ 80A9708 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + cmp r7, r0 + bcc _080A9722 + b _080A9AA0 +_080A9722: + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r0, [r0] + lsls r2, r7, 2 + adds r0, r2, r0 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + str r2, [sp] + cmp r0, 0 + beq _080A9748 + adds r0, r7, 0 + bl sub_80A614C + b _080A974E + .pool +_080A9748: + adds r0, r7, 0 + bl sub_80A6138 +_080A974E: + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + adds r0, r7, 0 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _080A9762 + b _080A986C +_080A9762: + ldr r1, =gBattlePartyID + lsls r0, r7, 1 + adds r6, r0, r1 + ldrh r0, [r6] + movs r1, 0x64 + mov r10, r1 + mov r2, r10 + muls r2, r0 + adds r0, r2, 0 + ldr r1, =gEnemyParty + mov r9, r1 + add r0, r9 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + bne _080A9786 + b _080A9AA0 +_080A9786: + ldrh r0, [r6] + mov r2, r10 + muls r2, r0 + adds r0, r2, 0 + add r0, r9 + movs r1, 0xB + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r7, 0 + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_806A068 + ldr r5, =gUnknown_0202499C + adds r0, r7, 0 + movs r1, 0x2 + bl sub_80A5C6C + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r7, 0 + bl sub_80A82E4 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + adds r0, r5, 0 + adds r1, r4, 0 + mov r2, r8 + bl CreateSprite + ldr r1, =gBankSpriteIds + adds r4, r7, r1 + strb r0, [r4] + ldr r5, =gSprites + ldrb r0, [r4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + lsls r3, r7, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =SpriteCallbackDummy + str r1, [r0] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r7, [r0, 0x2E] + ldrh r0, [r6] + mov r1, r10 + muls r1, r0 + adds r0, r1, 0 + add r0, r9 + movs r1, 0xB + bl GetMonData + ldrb r2, [r4] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r5 + strh r0, [r1, 0x32] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =gUnknown_020244E4 + adds r1, r7, r1 + ldrb r1, [r1] + bl StartSpriteAnim + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r0, [r0] + ldr r2, [sp] + adds r0, r2, r0 + b _080A9A50 + .pool +_080A986C: + ldr r0, =gBattleTypeFlags + ldr r1, [r0] + movs r2, 0x80 + ands r1, r2 + cmp r1, 0 + beq _080A98D0 + cmp r7, 0 + bne _080A98D0 + ldr r5, =gSaveBlock2Ptr + ldr r0, [r5] + ldrb r4, [r0, 0x8] + movs r0, 0 + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl template_build_for_pokemon_or_trainer + ldr r6, =gUnknown_0202499C + ldr r1, =gUnknown_08305D2C + ldr r0, [r5] + ldrb r0, [r0, 0x8] + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0] + movs r4, 0x8 + subs r4, r0 + lsls r4, 18 + movs r0, 0xA0 + lsls r0, 15 + adds r4, r0 + asrs r4, 16 + movs r0, 0 + bl sub_80A82E4 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + adds r0, r6, 0 + b _080A9914 + .pool +_080A98D0: + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 2 + ands r0, r1 + cmp r0, 0 + beq _080A9968 + cmp r7, 0 + bne _080A9968 + movs r0, 0 + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x6 + bl template_build_for_pokemon_or_trainer + ldr r5, =gUnknown_0202499C + ldr r0, =gUnknown_08305D2C + ldrb r0, [r0, 0x18] + movs r4, 0x8 + subs r4, r0 + lsls r4, 18 + movs r1, 0xA0 + lsls r1, 15 + adds r4, r1 + asrs r4, 16 + movs r0, 0 + bl sub_80A82E4 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + adds r0, r5, 0 +_080A9914: + movs r1, 0x50 + adds r2, r4, 0 + bl CreateSprite + ldr r3, =gBankSpriteIds + strb r0, [r3] + ldr r4, =gSprites + ldrb r0, [r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + strb r0, [r1, 0x5] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =SpriteCallbackDummy + str r1, [r0] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r7, [r0, 0x2E] + b _080A9A70 + .pool +_080A9968: + ldr r1, =gBattlePartyID + lsls r0, r7, 1 + adds r6, r0, r1 + ldrh r0, [r6] + movs r2, 0x64 + mov r10, r2 + mov r1, r10 + muls r1, r0 + adds r0, r1, 0 + ldr r2, =gPlayerParty + mov r9, r2 + add r0, r9 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + bne _080A998C + b _080A9AA0 +_080A998C: + ldrh r0, [r6] + mov r1, r10 + muls r1, r0 + adds r0, r1, 0 + add r0, r9 + movs r1, 0xB + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r7, 0 + bl GetBankIdentity + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_806A068 + ldr r5, =gUnknown_0202499C + adds r0, r7, 0 + movs r1, 0x2 + bl sub_80A5C6C + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r7, 0 + bl sub_80A82E4 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + adds r0, r5, 0 + adds r1, r4, 0 + mov r2, r8 + bl CreateSprite + ldr r1, =gBankSpriteIds + adds r4, r7, r1 + strb r0, [r4] + ldr r5, =gSprites + ldrb r0, [r4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + lsls r3, r7, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =SpriteCallbackDummy + str r1, [r0] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r7, [r0, 0x2E] + ldrh r0, [r6] + mov r2, r10 + muls r2, r0 + adds r0, r2, 0 + add r0, r9 + movs r1, 0xB + bl GetMonData + ldrb r2, [r4] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r5 + strh r0, [r1, 0x32] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =gUnknown_020244E4 + adds r1, r7, r1 + ldrb r1, [r1] + bl StartSpriteAnim + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r0, [r0] + ldr r1, [sp] + adds r0, r1, r0 +_080A9A50: + ldrh r1, [r0, 0x2] + ldr r0, =0x00000181 + cmp r1, r0 + bne _080A9A70 + ldrb r0, [r4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r0, r5, 0 + adds r0, 0x8 + adds r1, r0 + ldr r0, =gUnknown_08309AAC + ldr r2, =0x00000604 + adds r0, r2 + ldr r0, [r0] + str r0, [r1] +_080A9A70: + ldr r1, =gSprites + ldr r0, =gBankSpriteIds + adds r0, r7, r0 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r0, [r0] + ldr r1, [sp] + adds r0, r1, r0 + ldr r1, [r0] + lsls r1, 31 + adds r2, 0x3E + lsrs r1, 31 + lsls r1, 2 + ldrb r3, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] +_080A9AA0: + 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_80A9708 + + thumb_func_start sub_80A9ADC +sub_80A9ADC: @ 80A9ADC + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + cmp r5, r0 + bcc _080A9AEC + b _080A9C5E +_080A9AEC: + ldr r0, =gBattleTypeFlags + ldr r1, [r0] + movs r2, 0x80 + ands r1, r2 + cmp r1, 0 + beq _080A9B0C + cmp r5, 0 + bne _080A9B0C + bl battle_make_oam_safari_battle + b _080A9B24 + .pool +_080A9B0C: + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 2 + ands r0, r1 + cmp r0, 0 + beq _080A9B1E + cmp r5, 0 + bne _080A9B1E + b _080A9C5E +_080A9B1E: + adds r0, r5, 0 + bl battle_make_oam_normal_battle +_080A9B24: + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, =gUnknown_03005D70 + adds r4, r5, r0 + strb r6, [r4] + adds r0, r5, 0 + bl sub_8072B18 + adds r0, r6, 0 + bl sub_80729D0 + adds r0, r5, 0 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + beq _080A9B6C + ldrb r0, [r4] + ldr r1, =gBattlePartyID + lsls r4, r5, 1 + adds r1, r4, r1 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gEnemyParty + adds r1, r2 + movs r2, 0 + bl healthbar_draw_field_maybe + b _080A9BB8 + .pool +_080A9B6C: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080A9BA0 + ldrb r0, [r4] + ldr r1, =gBattlePartyID + lsls r4, r5, 1 + adds r1, r4, r1 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gPlayerParty + adds r1, r2 + movs r2, 0xA + bl healthbar_draw_field_maybe + b _080A9BB8 + .pool +_080A9BA0: + ldrb r0, [r4] + ldr r1, =gBattlePartyID + lsls r4, r5, 1 + adds r1, r4, r1 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, =gPlayerParty + adds r1, r2 + movs r2, 0 + bl healthbar_draw_field_maybe +_080A9BB8: + adds r0, r5, 0 + bl GetBankIdentity + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _080A9BD4 + adds r0, r5, 0 + bl GetBankIdentity + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _080A9BF0 +_080A9BD4: + ldr r0, =gUnknown_03005D70 + adds r0, r5, r0 + ldrb r0, [r0] + movs r1, 0x1 + bl nullsub_30 + b _080A9BFC + .pool +_080A9BF0: + ldr r0, =gUnknown_03005D70 + adds r0, r5, r0 + ldrb r0, [r0] + movs r1, 0 + bl nullsub_30 +_080A9BFC: + adds r0, r5, 0 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + beq _080A9C34 + ldr r0, =gBattlePartyID + adds r0, r4, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + bne _080A9C5E + adds r0, r6, 0 + bl sub_8072984 + b _080A9C5E + .pool +_080A9C34: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080A9C5E + ldr r0, =gBattlePartyID + adds r0, r4, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + bne _080A9C5E + adds r0, r6, 0 + bl sub_8072984 +_080A9C5E: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A9ADC + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom3.s b/asm/rom3.s index 380f605a1e..88c5a015b2 100644 --- a/asm/rom3.s +++ b/asm/rom3.s @@ -40,18 +40,18 @@ _08032686: sub_803269C: @ 803269C push {r4-r7,lr} sub sp, 0x14 - ldr r0, =gUnknown_03005D04 + ldr r0, =gBattleMainFunc ldr r1, =nullsub_20 str r1, [r0] movs r0, 0 str r0, [sp, 0x10] movs r1, 0 - ldr r7, =gUnknown_03005D60 + ldr r7, =gBattleBankFunc ldr r6, =gUnknown_020244AC movs r2, 0 ldr r5, =gUnknown_020244B0 ldr r4, =nullsub_21 - ldr r3, =gUnknown_02024076 + ldr r3, =gBanksBySide _080326B8: lsls r0, r1, 2 adds r0, r7 @@ -72,7 +72,7 @@ _080326B8: cmp r1, 0x3 ble _080326B8 bl battle_wireless_setup_if_required_maybe - ldr r0, =gUnknown_02024068 + ldr r0, =gBattleExecBuffer movs r5, 0 str r5, [r0] bl sub_80A3934 @@ -85,7 +85,7 @@ _080326B8: ands r0, r1 cmp r0, 0 beq _08032728 - bl zero_enemy_party_data + bl ZeroEnemyPartyMons ldr r4, =gEnemyParty movs r1, 0x90 lsls r1, 1 @@ -101,7 +101,7 @@ _080326B8: adds r0, r4, 0 movs r1, 0xC add r2, sp, 0x10 - bl pokemon_setattr + bl SetMonData _08032728: ldr r0, =gUnknown_02022FF4 str r5, [r0] @@ -160,7 +160,7 @@ _080327B4: cmp r0, 0 bne _080327E2 movs r4, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r1, [r0] cmp r4, r1 bge _080327E2 @@ -176,7 +176,7 @@ _080327D0: blt _080327D0 _080327E2: movs r4, 0 - ldr r3, =gUnknown_0202449C + ldr r3, =gBattleStruct movs r2, 0xD2 lsls r2, 1 movs r1, 0 @@ -189,7 +189,7 @@ _080327EC: cmp r4, 0x5F bls _080327EC movs r4, 0 - ldr r3, =gUnknown_0202449C + ldr r3, =gBattleStruct movs r2, 0x81 lsls r2, 2 movs r1, 0 @@ -221,7 +221,7 @@ b_setup_bx: @ 8032824 ands r5, r3 cmp r5, 0 beq _080328E4 - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =sub_8039ECC str r0, [r1] movs r4, 0x80 @@ -229,33 +229,33 @@ b_setup_bx: @ 8032824 ands r4, r3 cmp r4, 0 beq _08032874 - ldr r2, =gUnknown_03005D60 - ldr r0, =sub_818994C + ldr r2, =gBattleBankFunc + ldr r0, =SetBankFuncToRecordedPlayerBufferRunCommand str r0, [r2] - ldr r1, =gUnknown_02024076 + ldr r1, =gBanksBySide movs r0, 0 strb r0, [r1] b _0803287E .pool _08032874: - ldr r2, =gUnknown_03005D60 - ldr r0, =sub_805745C + ldr r2, =gBattleBankFunc + ldr r0, =SetBankFuncToPlayerBufferRunCommand str r0, [r2] - ldr r1, =gUnknown_02024076 + ldr r1, =gBanksBySide strb r4, [r1] _0803287E: - ldr r3, =sub_805F164 + ldr r3, =SetBankFuncToOpponentBufferRunCommand str r3, [r2, 0x4] movs r0, 0x1 strb r0, [r1, 0x1] - ldr r0, =sub_81BADF4 + ldr r0, =SetBankFuncToPlayerPartnerBufferRunCommand str r0, [r2, 0x8] movs r0, 0x2 strb r0, [r1, 0x2] str r3, [r2, 0xC] movs r0, 0x3 strb r0, [r1, 0x3] - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks movs r0, 0x4 strb r0, [r1] movs r0, 0 @@ -270,7 +270,7 @@ _0803287E: movs r0, 0x3 movs r1, 0x1 bl sub_81B8D64 - ldr r0, =gUnknown_0202406E + ldr r0, =gBattlePartyID movs r1, 0 strh r1, [r0] strh r1, [r0, 0x2] @@ -285,7 +285,7 @@ _080328E4: beq _080328F0 b _080329E0 _080328F0: - ldr r0, =gUnknown_03005D04 + ldr r0, =gBattleMainFunc ldr r2, =sub_8039ECC str r2, [r0] movs r1, 0x80 @@ -293,7 +293,7 @@ _080328F0: mov r12, r2 cmp r1, 0 beq _08032918 - ldr r1, =gUnknown_03005D60 + ldr r1, =gBattleBankFunc ldr r0, =sub_815936C b _08032934 .pool @@ -303,28 +303,28 @@ _08032918: ands r3, r0 cmp r3, 0 beq _08032930 - ldr r1, =gUnknown_03005D60 - ldr r0, =bx_goto_buffer_A_ch0_tbl3 + ldr r1, =gBattleBankFunc + ldr r0, =SetBankFuncToWallyBufferRunCommand b _08032934 .pool _08032930: - ldr r1, =gUnknown_03005D60 - ldr r0, =sub_805745C + ldr r1, =gBattleBankFunc + ldr r0, =SetBankFuncToPlayerBufferRunCommand _08032934: str r0, [r1] mov r10, r1 - ldr r4, =gUnknown_02024076 + ldr r4, =gBanksBySide movs r0, 0 mov r9, r0 mov r1, r9 strb r1, [r4] mov r5, r10 - ldr r2, =sub_805F164 + ldr r2, =SetBankFuncToOpponentBufferRunCommand mov r8, r2 str r2, [r5, 0x4] movs r6, 0x1 strb r6, [r4, 0x1] - ldr r2, =gUnknown_0202406C + ldr r2, =gNoOfAllBanks movs r7, 0x2 strb r7, [r2] ldr r0, =gBattleTypeFlags @@ -347,30 +347,30 @@ _08032964: cmp r1, 0 beq _080329B4 mov r1, r12 - ldr r0, =gUnknown_03005D04 + ldr r0, =gBattleMainFunc str r1, [r0] - ldr r0, =sub_818994C + ldr r0, =SetBankFuncToRecordedPlayerBufferRunCommand str r0, [r5] mov r1, r9 strb r1, [r4] - ldr r0, =sub_81864EC + ldr r0, =SetBankFuncToRecordedOpponentBufferRunCommand str r0, [r5, 0x4] strb r6, [r4, 0x1] strb r7, [r2] b _08032CB2 .pool _080329B4: - ldr r0, =sub_818994C + ldr r0, =SetBankFuncToRecordedPlayerBufferRunCommand str r0, [r5, 0x4] strb r1, [r4, 0x1] - ldr r0, =sub_81864EC + ldr r0, =SetBankFuncToRecordedOpponentBufferRunCommand str r0, [r5] strb r6, [r4] strb r7, [r2] b _08032CB2 .pool _080329CC: - ldr r0, =sub_818994C + ldr r0, =SetBankFuncToRecordedPlayerBufferRunCommand mov r2, r10 str r0, [r2] strb r1, [r4] @@ -381,14 +381,14 @@ _080329CC: .pool _080329E0: ldr r1, =sub_8039ECC - ldr r2, =gUnknown_03005D04 + ldr r2, =gBattleMainFunc str r1, [r2] - ldr r2, =gUnknown_03005D60 - ldr r0, =sub_805745C + ldr r2, =gBattleBankFunc + ldr r0, =SetBankFuncToPlayerBufferRunCommand str r0, [r2] - ldr r4, =gUnknown_02024076 + ldr r4, =gBanksBySide strb r5, [r4] - ldr r6, =sub_805F164 + ldr r6, =SetBankFuncToOpponentBufferRunCommand str r6, [r2, 0x4] strb r7, [r4, 0x1] str r0, [r2, 0x8] @@ -401,7 +401,7 @@ _080329E0: mov r8, r0 mov r1, r8 strb r1, [r4, 0x3] - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks mov r10, r0 movs r1, 0x4 mov r9, r1 @@ -420,9 +420,9 @@ _08032A20: cmp r0, r1 bne _08032AA0 ldr r0, =sub_8039ECC - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc str r0, [r1] - ldr r0, =sub_818994C + ldr r0, =SetBankFuncToRecordedPlayerBufferRunCommand str r0, [r2] strb r5, [r4] str r6, [r2, 0x4] @@ -448,7 +448,7 @@ _08032A20: movs r0, 0x3 movs r1, 0x1 bl sub_81B8D64 - ldr r0, =gUnknown_0202406E + ldr r0, =gBattlePartyID strh r5, [r0] strh r5, [r0, 0x2] mov r1, r8 @@ -472,7 +472,7 @@ _08032AAA: mov r12, r1 adds r7, r4, 0 mov r8, r0 - ldr r6, =gUnknown_0202406E + ldr r6, =gBattlePartyID movs r4, 0 movs r2, 0x3 mov r9, r2 @@ -511,9 +511,9 @@ _08032B06: adds r3, r4, r0 ldrh r1, [r3, 0x18] lsls r1, 2 - ldr r2, =gUnknown_03005D60 + ldr r2, =gBattleBankFunc adds r1, r2 - ldr r2, =sub_818994C + ldr r2, =SetBankFuncToRecordedPlayerBufferRunCommand str r2, [r1] ldrh r1, [r3, 0x18] mov r12, r0 @@ -579,9 +579,9 @@ _08032B92: adds r2, r4, r0 ldrh r0, [r2, 0x18] lsls r0, 2 - ldr r1, =gUnknown_03005D60 + ldr r1, =gBattleBankFunc adds r0, r1 - ldr r1, =sub_818994C + ldr r1, =SetBankFuncToRecordedPlayerBufferRunCommand str r1, [r0] ldrh r1, [r2, 0x18] cmp r1, 0x2 @@ -614,9 +614,9 @@ _08032BD8: adds r2, r4, r0 ldrh r0, [r2, 0x18] lsls r0, 2 - ldr r1, =gUnknown_03005D60 + ldr r1, =gBattleBankFunc adds r0, r1 - ldr r1, =sub_81864EC + ldr r1, =SetBankFuncToRecordedOpponentBufferRunCommand str r1, [r0] ldrh r0, [r2, 0x18] cmp r0, 0x2 @@ -670,7 +670,7 @@ _08032C3C: ands r1, r3 cmp r1, 0 beq _08032C7C - ldr r0, =sub_818994C + ldr r0, =SetBankFuncToRecordedPlayerBufferRunCommand str r0, [r2] strb r5, [r4] str r0, [r2, 0x8] @@ -681,7 +681,7 @@ _08032C3C: ands r3, r0 cmp r3, 0 beq _08032C70 - ldr r0, =sub_81864EC + ldr r0, =SetBankFuncToRecordedOpponentBufferRunCommand str r0, [r2, 0x4] strb r7, [r4, 0x1] str r0, [r2, 0xC] @@ -697,7 +697,7 @@ _08032C70: strb r2, [r4, 0x3] b _08032CB2 _08032C7C: - ldr r0, =sub_818994C + ldr r0, =SetBankFuncToRecordedPlayerBufferRunCommand str r0, [r2, 0x4] strb r1, [r4, 0x1] str r0, [r2, 0xC] @@ -708,7 +708,7 @@ _08032C7C: ands r3, r0 cmp r3, 0 beq _08032CA8 - ldr r0, =sub_81864EC + ldr r0, =SetBankFuncToRecordedOpponentBufferRunCommand str r0, [r2] strb r7, [r4] str r0, [r2, 0x8] @@ -750,31 +750,31 @@ b_setup_bx_link: @ 8032CC0 ands r4, r1 cmp r4, 0 beq _08032D1C - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =sub_8039ECC str r0, [r1] - ldr r2, =gUnknown_03005D60 - ldr r0, =sub_805745C + ldr r2, =gBattleBankFunc + ldr r0, =SetBankFuncToPlayerBufferRunCommand str r0, [r2] - ldr r1, =gUnknown_02024076 + ldr r1, =gBanksBySide strb r3, [r1] - ldr r0, =sub_8064394 + ldr r0, =SetBankFuncToLinkOpponentBufferRunCommand str r0, [r2, 0x4] strb r5, [r1, 0x1] - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks movs r0, 0x2 b _0803303A .pool _08032D1C: - ldr r2, =gUnknown_03005D60 - ldr r0, =sub_805745C + ldr r2, =gBattleBankFunc + ldr r0, =SetBankFuncToPlayerBufferRunCommand str r0, [r2, 0x4] - ldr r1, =gUnknown_02024076 + ldr r1, =gBanksBySide strb r4, [r1, 0x1] - ldr r0, =sub_8064394 + ldr r0, =SetBankFuncToLinkOpponentBufferRunCommand str r0, [r2] strb r5, [r1] - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks movs r0, 0x2 b _0803303A .pool @@ -788,16 +788,16 @@ _08032D48: ands r3, r1 cmp r3, 0 beq _08032D98 - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =sub_8039ECC str r0, [r1] - ldr r2, =gUnknown_03005D60 - ldr r4, =sub_805745C + ldr r2, =gBattleBankFunc + ldr r4, =SetBankFuncToPlayerBufferRunCommand str r4, [r2] - ldr r1, =gUnknown_02024076 + ldr r1, =gBanksBySide movs r0, 0 strb r0, [r1] - ldr r3, =sub_8064394 + ldr r3, =SetBankFuncToLinkOpponentBufferRunCommand str r3, [r2, 0x4] strb r5, [r1, 0x1] str r4, [r2, 0x8] @@ -809,12 +809,12 @@ _08032D48: b _08032DB4 .pool _08032D98: - ldr r2, =gUnknown_03005D60 - ldr r0, =sub_805745C + ldr r2, =gBattleBankFunc + ldr r0, =SetBankFuncToPlayerBufferRunCommand str r0, [r2, 0x4] - ldr r1, =gUnknown_02024076 + ldr r1, =gBanksBySide strb r3, [r1, 0x1] - ldr r3, =sub_8064394 + ldr r3, =SetBankFuncToLinkOpponentBufferRunCommand str r3, [r2] strb r5, [r1] str r0, [r2, 0xC] @@ -824,7 +824,7 @@ _08032D98: movs r0, 0x3 strb r0, [r1, 0x2] _08032DB4: - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks strb r6, [r0] b _0803303C .pool @@ -839,31 +839,31 @@ _08032DD0: ands r3, r1 cmp r3, 0 beq _08032E1C - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =sub_8039ECC str r0, [r1] - ldr r2, =gUnknown_03005D60 - ldr r0, =sub_805745C + ldr r2, =gBattleBankFunc + ldr r0, =SetBankFuncToPlayerBufferRunCommand str r0, [r2] - ldr r1, =gUnknown_02024076 + ldr r1, =gBanksBySide movs r0, 0 strb r0, [r1] - ldr r3, =sub_805F164 + ldr r3, =SetBankFuncToOpponentBufferRunCommand str r3, [r2, 0x4] strb r5, [r1, 0x1] - ldr r0, =sub_814AEB0 + ldr r0, =SetBankFuncToLinkPartnerBufferRunCommand b _08032E2E .pool _08032E1C: - ldr r2, =gUnknown_03005D60 - ldr r0, =sub_814AEB0 + ldr r2, =gBattleBankFunc + ldr r0, =SetBankFuncToLinkPartnerBufferRunCommand str r0, [r2] - ldr r1, =gUnknown_02024076 + ldr r1, =gBanksBySide strb r3, [r1] - ldr r3, =sub_8064394 + ldr r3, =SetBankFuncToLinkOpponentBufferRunCommand str r3, [r2, 0x4] strb r5, [r1, 0x1] - ldr r0, =sub_805745C + ldr r0, =SetBankFuncToPlayerBufferRunCommand _08032E2E: str r0, [r2, 0x8] movs r0, 0x2 @@ -871,7 +871,7 @@ _08032E2E: str r3, [r2, 0xC] movs r0, 0x3 strb r0, [r1, 0x3] - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks strb r4, [r0] movs r0, 0 movs r1, 0 @@ -885,7 +885,7 @@ _08032E2E: movs r0, 0x3 movs r1, 0x1 bl sub_81B8D64 - ldr r0, =gUnknown_0202406E + ldr r0, =gBattlePartyID movs r1, 0 strh r1, [r0] strh r1, [r0, 0x2] @@ -903,7 +903,7 @@ _08032E8C: ands r0, r1 cmp r0, 0 beq _08032EA4 - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =sub_8039ECC str r0, [r1] _08032EA4: @@ -911,9 +911,9 @@ _08032EA4: mov r10, r0 ldr r1, =gUnknown_020229E8 mov r12, r1 - ldr r7, =gUnknown_02024076 + ldr r7, =gBanksBySide mov r8, r0 - ldr r6, =gUnknown_0202406E + ldr r6, =gBattlePartyID movs r4, 0 movs r2, 0x3 mov r9, r2 @@ -952,9 +952,9 @@ _08032F02: adds r3, r4, r0 ldrh r1, [r3, 0x18] lsls r1, 2 - ldr r2, =gUnknown_03005D60 + ldr r2, =gBattleBankFunc adds r1, r2 - ldr r2, =sub_805745C + ldr r2, =SetBankFuncToPlayerBufferRunCommand str r2, [r1] ldrh r1, [r3, 0x18] mov r12, r0 @@ -1020,9 +1020,9 @@ _08032F8E: adds r2, r4, r0 ldrh r0, [r2, 0x18] lsls r0, 2 - ldr r1, =gUnknown_03005D60 + ldr r1, =gBattleBankFunc adds r0, r1 - ldr r1, =sub_814AEB0 + ldr r1, =SetBankFuncToLinkPartnerBufferRunCommand str r1, [r0] ldrh r1, [r2, 0x18] cmp r1, 0x2 @@ -1055,9 +1055,9 @@ _08032FD4: adds r2, r4, r0 ldrh r0, [r2, 0x18] lsls r0, 2 - ldr r1, =gUnknown_03005D60 + ldr r1, =gBattleBankFunc adds r0, r1 - ldr r1, =sub_8064394 + ldr r1, =SetBankFuncToLinkOpponentBufferRunCommand str r1, [r0] ldrh r0, [r2, 0x18] cmp r0, 0x2 @@ -1105,7 +1105,7 @@ _08033028: bgt _08033036 b _08032EB8 _08033036: - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks movs r0, 0x4 _0803303A: strb r0, [r1] @@ -1144,7 +1144,7 @@ _08033074: movs r0, 0x1 add r0, r8 mov r10, r0 - ldr r0, =gUnknown_02024076 + ldr r0, =gBanksBySide add r0, r8 mov r9, r0 mov r0, r8 @@ -1189,7 +1189,7 @@ _080330AA: bl GetMonData cmp r0, 0 bne _08033170 - ldr r0, =gUnknown_0202406E + ldr r0, =gBattlePartyID adds r0, r6, r0 strh r5, [r0] b _08033178 @@ -1238,7 +1238,7 @@ _0803312C: bl GetMonData cmp r0, 0 bne _08033170 - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID mov r0, r8 subs r0, 0x2 lsls r0, 1 @@ -1258,7 +1258,7 @@ _08033170: _08033178: mov r8, r10 _0803317A: - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r8, r0 bge _08033184 @@ -1271,7 +1271,7 @@ _08033184: ands r0, r1 cmp r0, 0 beq _0803319C - ldr r0, =gUnknown_0202406E + ldr r0, =gBattlePartyID movs r1, 0 strh r1, [r0, 0x2] movs r1, 0x3 @@ -1305,7 +1305,7 @@ dp01_prepare_buffer: @ 80331B8 adds r0, r3, 0 adds r1, r2, 0 adds r2, r4, 0 - bl dp01_prepare_buffer_wireless_probably + bl PrepareBufferDataTransferLink b _08033236 .pool _080331E4: @@ -1318,8 +1318,8 @@ _080331EE: movs r3, 0 cmp r3, r2 bge _08033236 - ldr r6, =gUnknown_02023064 - ldr r5, =gUnknown_02024064 + ldr r6, =gBattleBufferA + ldr r5, =gActiveBank _080331F8: ldrb r0, [r5] lsls r0, 9 @@ -1337,8 +1337,8 @@ _08033218: movs r3, 0 cmp r3, r2 bge _08033236 - ldr r6, =gUnknown_02023864 - ldr r5, =gUnknown_02024064 + ldr r6, =gBattleBufferB + ldr r5, =gActiveBank _08033222: ldrb r0, [r5] lsls r0, 9 @@ -1435,8 +1435,8 @@ sub_8033244: @ 8033244 .pool thumb_func_end sub_8033244 - thumb_func_start dp01_prepare_buffer_wireless_probably -dp01_prepare_buffer_wireless_probably: @ 80332F4 + thumb_func_start PrepareBufferDataTransferLink +PrepareBufferDataTransferLink: @ 80332F4 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -1499,7 +1499,7 @@ _08033346: ldrsh r1, [r0, r7] ldr r0, [r4] adds r1, r0 - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r0, [r0] strb r0, [r1, 0x1] ldrb r1, [r3] @@ -1511,7 +1511,7 @@ _08033346: ldrsh r1, [r0, r2] ldr r0, [r4] adds r1, r0 - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r0, [r0] strb r0, [r1, 0x2] ldrb r1, [r3] @@ -1523,7 +1523,7 @@ _08033346: ldrsh r1, [r0, r7] ldr r0, [r4] adds r1, r0 - ldr r0, =gEnemyMonIndex + ldr r0, =gBankTarget ldrb r0, [r0] strb r0, [r1, 0x3] ldrb r1, [r3] @@ -1561,7 +1561,7 @@ _08033346: ldrsh r1, [r0, r7] ldr r0, [r4] adds r1, r0 - ldr r0, =gUnknown_02024210 + ldr r0, =gAbsentBankFlags ldrb r0, [r0] strb r0, [r1, 0x6] ldrb r1, [r3] @@ -1617,7 +1617,7 @@ _08033434: pop {r0} bx r0 .pool - thumb_func_end dp01_prepare_buffer_wireless_probably + thumb_func_end PrepareBufferDataTransferLink thumb_func_start task00_wireless_something task00_wireless_something: @ 8033474 @@ -2040,7 +2040,7 @@ _080337CC: beq _08033874 b _0803388A _080337D2: - ldr r2, =gUnknown_02024068 + ldr r2, =gBattleExecBuffer ldr r1, =gBitTable lsls r0, r4, 2 adds r0, r1 @@ -2050,7 +2050,7 @@ _080337D2: cmp r1, 0 bne _0803389C lsls r0, r4, 9 - ldr r1, =gUnknown_02023064 + ldr r1, =gBattleBufferA adds r0, r1 adds r1, r3, 0 adds r1, 0x8 @@ -2064,7 +2064,7 @@ _080337D2: ands r0, r1 cmp r0, 0 bne _0803388A - ldr r2, =gUnknown_0202420B + ldr r2, =gBankAttacker movs r4, 0x26 ldrsh r0, [r5, r4] mov r3, r8 @@ -2072,13 +2072,13 @@ _080337D2: adds r0, r1 ldrb r0, [r0, 0x2] strb r0, [r2] - ldr r2, =gEnemyMonIndex + ldr r2, =gBankTarget movs r4, 0x26 ldrsh r0, [r5, r4] adds r0, r1 ldrb r0, [r0, 0x3] strb r0, [r2] - ldr r2, =gUnknown_02024210 + ldr r2, =gAbsentBankFlags movs r3, 0x26 ldrsh r0, [r5, r3] adds r0, r1 @@ -2094,7 +2094,7 @@ _080337D2: .pool _0803385C: lsls r0, r4, 9 - ldr r1, =gUnknown_02023864 + ldr r1, =gBattleBufferB adds r0, r1 adds r1, r3, 0 adds r1, 0x8 @@ -2104,7 +2104,7 @@ _0803385C: .pool _08033874: ldrb r2, [r3, 0x8] - ldr r3, =gUnknown_02024068 + ldr r3, =gBattleExecBuffer ldr r1, =gBitTable lsls r0, r4, 2 adds r0, r1 @@ -2518,7 +2518,7 @@ dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes: @ 8033B0C movs r1, 0 movs r2, 0xD movs r3, 0 - bl ability_something + bl AbilityBattleEffects lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -2528,7 +2528,7 @@ dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes: @ 8033B0C movs r1, 0 movs r2, 0x4D movs r3, 0 - bl ability_something + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 bne _08033BAC @@ -2585,7 +2585,7 @@ dp01_build_cmdbuf_x10_TODO: @ 8033BE4 ldr r2, =gUnknown_02022D10 movs r0, 0x10 strb r0, [r2] - ldr r0, =gUnknown_0202433A + ldr r0, =gBattleOutcome ldrb r0, [r0] strb r0, [r2, 0x1] strb r1, [r2, 0x2] @@ -2593,7 +2593,7 @@ dp01_build_cmdbuf_x10_TODO: @ 8033BE4 strb r1, [r2, 0x3] adds r0, r2, 0x4 mov r12, r0 - ldr r4, =gUnknown_020241EA + ldr r4, =gCurrentMove ldrh r0, [r4] strh r0, [r2, 0x4] ldr r0, =gUnknown_020241EC @@ -2603,13 +2603,13 @@ dp01_build_cmdbuf_x10_TODO: @ 8033BE4 ldr r0, =gUnknown_02024208 ldrh r0, [r0] strh r0, [r1, 0x4] - ldr r0, =gUnknown_0202420A + ldr r0, =gLastUsedAbility ldrb r0, [r0] strb r0, [r1, 0x6] - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting ldrb r0, [r0, 0x17] strb r0, [r1, 0x7] - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] adds r1, r0, 0 adds r1, 0x52 @@ -2652,12 +2652,12 @@ _08033C6A: adds r5, 0x10 mov r4, r12 adds r4, 0x20 - ldr r6, =gUnknown_02022F68 + ldr r6, =gBattleTextBuff2 mov r2, r12 adds r2, 0x30 _08033C88: adds r1, r5, r3 - ldr r7, =gUnknown_02022F58 + ldr r7, =gBattleTextBuff1 adds r0, r3, r7 ldrb r0, [r0] strb r0, [r1] @@ -2708,7 +2708,7 @@ dp01_build_cmdbuf_x11_TODO: @ 8033CFC strb r1, [r2, 0x3] adds r0, r2, 0x4 mov r12, r0 - ldr r0, =gUnknown_020241EA + ldr r0, =gCurrentMove ldrh r0, [r0] strh r0, [r2, 0x4] ldr r0, =gUnknown_020241EC @@ -2718,13 +2718,13 @@ dp01_build_cmdbuf_x11_TODO: @ 8033CFC ldr r0, =gUnknown_02024208 ldrh r0, [r0] strh r0, [r1, 0x4] - ldr r0, =gUnknown_0202420A + ldr r0, =gLastUsedAbility ldrb r0, [r0] strb r0, [r1, 0x6] - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting ldrb r0, [r0, 0x17] strb r0, [r1, 0x7] - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] adds r0, 0x52 ldrb r0, [r0] @@ -2751,12 +2751,12 @@ _08033D5E: adds r5, 0x10 mov r4, r12 adds r4, 0x20 - ldr r6, =gUnknown_02022F68 + ldr r6, =gBattleTextBuff2 mov r2, r12 adds r2, 0x30 _08033D7C: adds r1, r5, r3 - ldr r7, =gUnknown_02022F58 + ldr r7, =gBattleTextBuff1 adds r0, r3, r7 ldrb r0, [r0] strb r0, [r1] diff --git a/asm/rom4.s b/asm/rom4.s index bd848781ad..2f047b6394 100644 --- a/asm/rom4.s +++ b/asm/rom4.s @@ -9,7 +9,7 @@ sub_8084620: @ 8084620 push {r4,lr} ldr r0, =gUnknown_08271857 - bl script_env_2_execute_new_script + bl ScriptContext2_RunNewScript ldr r0, =gSaveBlock1Ptr ldr r4, [r0] movs r0, 0x92 @@ -20,7 +20,7 @@ sub_8084620: @ 8084620 adds r1, r0, 0 lsrs r1, 1 adds r0, r4, 0 - bl EncryptMoney + bl SetMoney bl sp000_heal_pokemon bl sub_8084720 bl copy_saved_warp3_bank_and_enter_x_to_warp1 @@ -65,7 +65,7 @@ sub_808469C: @ 808469C ldr r0, =0x00000888 bl FlagReset ldr r0, =gUnknown_08271862 - bl script_env_2_execute_new_script + bl ScriptContext2_RunNewScript pop {r0} bx r0 .pool @@ -138,8 +138,8 @@ sub_8084788: @ 8084788 .pool thumb_func_end sub_8084788 - thumb_func_start sub_80847A8 -sub_80847A8: @ 80847A8 + thumb_func_start ResetGameStats +ResetGameStats: @ 80847A8 push {r4,lr} movs r4, 0 _080847AC: @@ -153,18 +153,18 @@ _080847AC: pop {r4} pop {r0} bx r0 - thumb_func_end sub_80847A8 + thumb_func_end ResetGameStats - thumb_func_start sav12_xor_increment -@ void sav12_xor_increment(u8 a1) -sav12_xor_increment: @ 80847C4 + thumb_func_start IncrementGameStat +@ void IncrementGameStat(u8 a1) +IncrementGameStat: @ 80847C4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x33 bhi _080847EC adds r0, r4, 0 - bl sub_80847F8 + bl GetGameStat adds r1, r0, 0 ldr r0, =0x00fffffe cmp r1, r0 @@ -182,10 +182,10 @@ _080847EC: pop {r0} bx r0 .pool - thumb_func_end sav12_xor_increment + thumb_func_end IncrementGameStat - thumb_func_start sub_80847F8 -sub_80847F8: @ 80847F8 + thumb_func_start GetGameStat +GetGameStat: @ 80847F8 push {lr} lsls r0, 24 lsrs r1, r0, 24 @@ -210,7 +210,7 @@ _08084828: _0808482A: pop {r1} bx r1 - thumb_func_end sub_80847F8 + thumb_func_end GetGameStat thumb_func_start sav12_xor_set sav12_xor_set: @ 8084830 @@ -1376,7 +1376,7 @@ _080850C8: bl set_current_map_header_from_sav1_save_old_name bl CopyFieldObjectTemplatesToSav1 bl sav2_set_x9_depending_on_sav1_map - bl sub_809D344 + bl ClearTempFieldEventData bl wild_pokemon_reroll bl prev_quest_postbuffer_cursor_backup_reset adds r0, r6, 0 @@ -1464,7 +1464,7 @@ _080851A2: lsrs r6, r0, 24 bl sub_80EB218 bl sav2_set_x9_depending_on_sav1_map - bl sub_809D344 + bl ClearTempFieldEventData bl wild_pokemon_reroll bl prev_quest_postbuffer_cursor_backup_reset ldr r0, =gSaveBlock1Ptr @@ -2204,13 +2204,13 @@ _08085774: bx r1 thumb_func_end warp1_target_get_music - thumb_func_start call_map_music_set_to_zero -call_map_music_set_to_zero: @ 8085778 + thumb_func_start call_ResetMapMusic +call_ResetMapMusic: @ 8085778 push {lr} - bl map_music_set_to_zero + bl ResetMapMusic pop {r0} bx r0 - thumb_func_end call_map_music_set_to_zero + thumb_func_end call_ResetMapMusic thumb_func_start sub_8085784 sub_8085784: @ 8085784 @@ -2249,13 +2249,13 @@ _080857C8: beq _080857D6 ldr r4, =0x0000016d _080857D6: - bl current_map_music_get + bl GetCurrentMapMusic lsls r0, 16 lsrs r0, 16 cmp r4, r0 beq _080857E8 adds r0, r4, 0 - bl current_map_music_set + bl PlayNewMapMusic _080857E8: pop {r4} pop {r0} @@ -2294,7 +2294,7 @@ sub_8085810: @ 8085810 bl warp1_target_get_music lsls r0, 16 lsrs r4, r0, 16 - bl current_map_music_get + bl GetCurrentMapMusic lsls r0, 16 lsrs r5, r0, 16 ldr r0, =0x000001bb @@ -2326,13 +2326,13 @@ _08085856: adds r0, r4, 0 movs r1, 0x4 movs r2, 0x4 - bl sub_80A2FBC + bl FadeOutAndFadeInNewMapMusic b _08085890 .pool _08085888: adds r0, r4, 0 movs r1, 0x8 - bl sub_80A2F88 + bl FadeOutAndPlayNewMapMusic _08085890: pop {r4-r6} pop {r0} @@ -2342,7 +2342,7 @@ _08085890: thumb_func_start sub_8085898 sub_8085898: @ 8085898 push {r4,lr} - bl current_map_music_get + bl GetCurrentMapMusic adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 @@ -2355,7 +2355,7 @@ sub_8085898: @ 8085898 lsls r0, 16 lsrs r0, 16 movs r1, 0x8 - bl sub_80A2F88 + bl FadeOutAndPlayNewMapMusic _080858BE: pop {r4} pop {r0} @@ -2367,7 +2367,7 @@ sub_80858C4: @ 80858C4 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 - bl current_map_music_get + bl GetCurrentMapMusic lsls r0, 16 lsrs r1, r0, 16 cmp r1, r4 @@ -2377,7 +2377,7 @@ sub_80858C4: @ 80858C4 beq _080858E4 adds r0, r4, 0 movs r1, 0x8 - bl sub_80A2F88 + bl FadeOutAndPlayNewMapMusic _080858E4: pop {r4} pop {r0} @@ -2407,7 +2407,7 @@ _0808590A: thumb_func_start music_something music_something: @ 8085910 push {r4,r5,lr} - bl current_map_music_get + bl GetCurrentMapMusic lsls r0, 16 lsrs r5, r0, 16 bl warp1_target_get_music @@ -2419,7 +2419,7 @@ music_something: @ 8085910 lsrs r0, 24 cmp r0, 0x1 beq _0808597E - bl current_map_music_get + bl GetCurrentMapMusic lsls r0, 16 lsrs r0, 16 cmp r4, r0 @@ -2454,7 +2454,7 @@ _08085972: bl is_warp1_light_level_8_or_9 lsls r0, 24 lsrs r0, 24 - bl sub_80A2F50 + bl FadeOutMapMusic _0808597E: pop {r4,r5} pop {r0} @@ -2465,7 +2465,7 @@ _0808597E: thumb_func_start sub_80859A0 sub_80859A0: @ 80859A0 push {lr} - bl sub_80A303C + bl IsNotWaitingForBGMStop lsls r0, 24 lsrs r0, 24 pop {r1} @@ -2476,7 +2476,7 @@ sub_80859A0: @ 80859A0 sub_80859B0: @ 80859B0 push {lr} movs r0, 0x4 - bl sub_80A2F50 + bl FadeOutMapMusic pop {r0} bx r0 thumb_func_end sub_80859B0 @@ -2531,7 +2531,7 @@ _080859F0: asrs r2, 24 adds r1, r4, 0 movs r3, 0x1 - bl sub_80A32C0 + bl PlayCry2 _08085A2C: add sp, 0x4 pop {r4} @@ -3061,10 +3061,10 @@ c2_overworld_basic: @ 8085E24 push {lr} bl script_env_2_run_current_script bl RunTasks - bl CallObjectCallbacks + bl AnimateSprites bl CameraUpdate bl UpdateCameraPanning - bl PrepareSpritesForOamLoad + bl BuildOamBuffer bl UpdatePaletteFade bl sub_80A0A38 bl do_scheduled_bg_tilemap_copies_to_vram @@ -3167,11 +3167,11 @@ _08085EEC: CB2_NewGame: @ 8085EF8 push {lr} bl sub_808631C - bl sub_80A2F30 + bl StopMapMusic bl ResetSafariZoneFlag_ bl NewGameInitData bl player_avatar_init_params_reset - bl set_max_playtime_if_appropriate + bl PlayTimeCounter_Start bl script_env_1_init bl script_env_2_disable ldr r1, =gUnknown_03005DAC @@ -3208,7 +3208,7 @@ c2_whiteout: @ 8085F58 cmp r0, 0x77 bls _08085FB0 bl sub_808631C - bl sub_80A2F30 + bl StopMapMusic bl ResetSafariZoneFlag_ bl sub_8084620 bl player_avatar_init_params_reset @@ -3391,7 +3391,7 @@ _08086132: c2_8056854: @ 8086140 push {lr} bl sub_808631C - bl sub_80A2F30 + bl StopMapMusic ldr r0, =c1_link_related bl set_callback1 bl sub_8086C2C @@ -3494,9 +3494,9 @@ _08086222: sub_8086230: @ 8086230 push {r4,lr} bl sub_808631C - bl sub_80A2F30 + bl StopMapMusic bl ResetSafariZoneFlag_ - ldr r0, =gUnknown_03006210 + ldr r0, =gSaveFileStatus ldrh r0, [r0] cmp r0, 0xFF bne _0808624A @@ -3545,7 +3545,7 @@ _080862B0: _080862BA: bl sub_8087D74 _080862BE: - bl set_max_playtime_if_appropriate + bl PlayTimeCounter_Start bl script_env_1_init bl script_env_2_disable bl sub_8195E10 @@ -3635,8 +3635,8 @@ SetFieldVBlankCallback: @ 8086380 thumb_func_start VBlankCB_Field VBlankCB_Field: @ 8086390 push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl sub_80BA0A8 bl FieldUpdateBgTilemapScroll bl TransferPlttBuffer @@ -4168,8 +4168,8 @@ _08086816: ldr r0, [r1, 0x8] movs r0, 0 movs r1, 0x80 - bl ResetSpriteRange - bl LoadOamFromSprites + bl ResetOamRange + bl LoadOam add sp, 0x4 pop {r4-r7} pop {r0} @@ -4292,7 +4292,7 @@ sub_8086988: @ 8086988 push {r4,lr} adds r4, r0, 0 bl ResetTasks - bl ResetAllObjectData + bl ResetSpriteData bl ResetPaletteFade bl dp12_8087EA4 bl dp13_810BB8C @@ -5760,7 +5760,7 @@ sub_8087510: @ 8087510 sub_808751C: @ 808751C push {lr} movs r0, 0x6 - bl audio_play + bl PlaySE bl sub_809FA9C bl script_env_2_enable pop {r0} @@ -5772,7 +5772,7 @@ sub_8087530: @ 8087530 push {r4,lr} adds r4, r0, 0 movs r0, 0x5 - bl audio_play + bl PlaySE adds r0, r4, 0 bl script_env_1_execute_new_script bl script_env_2_enable @@ -5785,7 +5785,7 @@ sub_8087530: @ 8087530 sub_808754C: @ 808754C push {lr} movs r0, 0x6 - bl audio_play + bl PlaySE ldr r0, =gUnknown_082774EF bl script_env_1_execute_new_script bl script_env_2_enable @@ -5799,7 +5799,7 @@ sub_8087568: @ 8087568 push {r4,lr} adds r4, r0, 0 movs r0, 0x5 - bl audio_play + bl PlaySE adds r0, r4, 0 bl script_env_1_execute_new_script bl script_env_2_enable @@ -6157,9 +6157,9 @@ sub_808780C: @ 808780C lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeTiles + bl DestroySprite _08087838: movs r0, 0 strb r0, [r5] @@ -6713,7 +6713,7 @@ _08087C56: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 adds r3, r0, 0 adds r3, 0x3E @@ -6780,7 +6780,7 @@ sub_8087C8C: @ 8087C8C lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 - bl StartObjectImageAnim + bl StartSpriteAnim b _08087D0A .pool _08087CF8: @@ -6790,7 +6790,7 @@ _08087CF8: lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent _08087D0A: adds r0, r5, 0 movs r1, 0 diff --git a/asm/rom5.s b/asm/rom5.s deleted file mode 100644 index 5f2cb20e90..0000000000 --- a/asm/rom5.s +++ /dev/null @@ -1,1961 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start nullsub_35 -nullsub_35: @ 80A92F4 - bx lr - thumb_func_end nullsub_35 - - thumb_func_start sub_80A92F8 -sub_80A92F8: @ 80A92F8 - push {lr} - ldr r2, =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - movs r0, 0 - bl SetHBlankCallback - movs r0, 0 - bl SetVBlankCallback - movs r0, 0x4C - movs r1, 0 - bl SetGpuReg - ldr r0, =gUnknown_02024474 - adds r2, r0, 0 - adds r2, 0x21 - movs r1, 0 - strb r1, [r2] - adds r0, 0x22 - strb r1, [r0] - ldr r0, =c2_80777E8 - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A92F8 - - thumb_func_start c2_80777E8 -c2_80777E8: @ 80A933C - push {r4-r7,lr} - sub sp, 0x8 - ldr r0, =gUnknown_02024474 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x13 - bls _080A934C - b _080A95A4 -_080A934C: - lsls r0, 2 - ldr r1, =_080A9360 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080A9360: - .4byte _080A93B0 - .4byte _080A942C - .4byte _080A9444 - .4byte _080A944A - .4byte _080A9450 - .4byte _080A9460 - .4byte _080A9466 - .4byte _080A948E - .4byte _080A9492 - .4byte _080A9496 - .4byte _080A949A - .4byte _080A94B8 - .4byte _080A94C0 - .4byte _080A94C8 - .4byte _080A94D0 - .4byte _080A94D8 - .4byte _080A94E0 - .4byte _080A94E8 - .4byte _080A94F0 - .4byte _080A94F8 -_080A93B0: - bl dp12_8087EA4 - bl trs_config - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - bl SetBgAttribute - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0 - bl SetBgAttribute - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg - bl ResetPaletteFade - ldr r0, =gUnknown_02022E14 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_02022E16 - strh r1, [r0] - ldr r0, =gUnknown_02022E18 - strh r1, [r0] - ldr r0, =gUnknown_02022E1A - strh r1, [r0] - ldr r0, =gUnknown_02022E1C - strh r1, [r0] - ldr r0, =gUnknown_02022E1E - strh r1, [r0] - ldr r0, =gUnknown_02022E20 - strh r1, [r0] - ldr r0, =gUnknown_02022E22 - strh r1, [r0] - b _080A95D2 - .pool -_080A942C: - movs r0, 0 - str r0, [sp, 0x4] - movs r1, 0xC0 - lsls r1, 19 - ldr r2, =0x01006000 - add r0, sp, 0x4 - bl CpuFastSet - b _080A95D2 - .pool -_080A9444: - bl sub_8035AA4 - b _080A95D2 -_080A944A: - bl ResetAllObjectData - b _080A95D2 -_080A9450: - bl ResetObjectPaletteAllocator - ldr r1, =gUnknown_0300301C - movs r0, 0x4 - strb r0, [r1] - b _080A95D2 - .pool -_080A9460: - bl sub_805E350 - b _080A95D2 -_080A9466: - ldr r5, =gUnknown_02024474 - adds r4, r5, 0 - adds r4, 0x22 - ldrb r0, [r4] - bl sub_805E08C - lsls r0, 24 - cmp r0, 0 - beq _080A9484 - movs r0, 0 - strb r0, [r4] - b _080A95D2 - .pool -_080A9484: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - adds r1, r5, 0 - b _080A94AA -_080A948E: - movs r0, 0 - b _080A949C -_080A9492: - movs r0, 0x1 - b _080A949C -_080A9496: - movs r0, 0x2 - b _080A949C -_080A949A: - movs r0, 0x3 -_080A949C: - bl sub_80A9614 - lsls r0, 24 - cmp r0, 0 - beq _080A94A8 - b _080A95D2 -_080A94A8: - ldr r1, =gUnknown_02024474 -_080A94AA: - adds r1, 0x21 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - b _080A95D2 - .pool -_080A94B8: - movs r0, 0 - bl sub_80A9708 - b _080A95D2 -_080A94C0: - movs r0, 0x1 - bl sub_80A9708 - b _080A95D2 -_080A94C8: - movs r0, 0x2 - bl sub_80A9708 - b _080A95D2 -_080A94D0: - movs r0, 0x3 - bl sub_80A9708 - b _080A95D2 -_080A94D8: - movs r0, 0 - bl sub_80A9ADC - b _080A95D2 -_080A94E0: - movs r0, 0x1 - bl sub_80A9ADC - b _080A95D2 -_080A94E8: - movs r0, 0x2 - bl sub_80A9ADC - b _080A95D2 -_080A94F0: - movs r0, 0x3 - bl sub_80A9ADC - b _080A95D2 -_080A94F8: - bl sub_805EC84 - movs r0, 0x1 - bl battle_get_side_with_given_state - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r7, =gUnknown_0202406E - lsls r0, r4, 1 - adds r0, r7 - ldrh r0, [r0] - movs r6, 0x64 - muls r0, r6 - ldr r5, =gEnemyParty - adds r0, r5 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_805EE54 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _080A955C - movs r0, 0x3 - bl battle_get_side_with_given_state - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 1 - adds r0, r7 - ldrh r0, [r0] - muls r0, r6 - adds r0, r5 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_805EE54 -_080A955C: - ldr r1, =gUnknown_020244AC - ldr r0, =gUnknown_020244B8 - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - movs r1, 0 - bl sub_8059CB4 - ldr r0, =gLinkVSyncDisabled - ldrb r0, [r0] - cmp r0, 0 - beq _080A95D2 - ldr r0, =gUnknown_03003124 - ldrb r0, [r0] - cmp r0, 0 - beq _080A95D2 - bl sub_800E0E8 - movs r0, 0 - movs r1, 0 - bl sub_800DFB4 - b _080A95D2 - .pool -_080A95A4: - ldr r0, =vblank_cb_08078BB4 - bl SetVBlankCallback - bl sub_80A95F4 - movs r0, 0x1 - str r0, [sp] - movs r0, 0xFF - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginHardwarePaletteFade - ldr r2, =gPaletteFade - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - ldr r0, =sub_8038420 - bl SetMainCallback2 - bl sub_805EF14 -_080A95D2: - ldr r1, =gUnknown_02024474 - adds r1, 0x21 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end c2_80777E8 - - thumb_func_start sub_80A95F4 -sub_80A95F4: @ 80A95F4 - ldr r3, =0x0400000a - ldrb r2, [r3] - movs r1, 0xD - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3] - ldr r2, =0x0400000c - ldrb r0, [r2] - ands r1, r0 - strb r1, [r2] - bx lr - .pool - thumb_func_end sub_80A95F4 - - thumb_func_start sub_80A9614 -sub_80A9614: @ 80A9614 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gUnknown_0202406C - ldrb r0, [r0] - cmp r4, r0 - bcs _080A96FC - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080A9676 - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r4, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - bne _080A966C - ldr r1, =gUnknown_0202406E - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - adds r1, r4, 0 - bl sub_805DC0C - b _080A96F4 - .pool -_080A966C: - adds r0, r4, 0 - movs r1, 0 - bl sub_805E7DC - b _080A96F4 -_080A9676: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r2, 0x80 - ands r1, r2 - cmp r1, 0 - beq _080A9698 - cmp r4, 0 - bne _080A9698 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - b _080A96AA - .pool -_080A9698: - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 2 - ands r0, r1 - cmp r0, 0 - beq _080A96B2 - cmp r4, 0 - bne _080A96B2 - movs r0, 0x6 -_080A96AA: - movs r1, 0 - bl sub_805DF84 - b _080A96F4 -_080A96B2: - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r4, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - bne _080A96EC - ldr r1, =gUnknown_0202406E - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - adds r1, r4, 0 - bl sub_805DD7C - b _080A96F4 - .pool -_080A96EC: - adds r0, r4, 0 - movs r1, 0 - bl sub_805E7DC -_080A96F4: - ldr r0, =gUnknown_02024474 - adds r0, 0x22 - movs r1, 0 - strb r1, [r0] -_080A96FC: - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80A9614 - - thumb_func_start sub_80A9708 -sub_80A9708: @ 80A9708 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, =gUnknown_0202406C - ldrb r0, [r0] - cmp r7, r0 - bcc _080A9722 - b _080A9AA0 -_080A9722: - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r0, [r0] - lsls r2, r7, 2 - adds r0, r2, r0 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - str r2, [sp] - cmp r0, 0 - beq _080A9748 - adds r0, r7, 0 - bl sub_80A614C - b _080A974E - .pool -_080A9748: - adds r0, r7, 0 - bl sub_80A6138 -_080A974E: - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - adds r0, r7, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080A9762 - b _080A986C -_080A9762: - ldr r1, =gUnknown_0202406E - lsls r0, r7, 1 - adds r6, r0, r1 - ldrh r0, [r6] - movs r1, 0x64 - mov r10, r1 - mov r2, r10 - muls r2, r0 - adds r0, r2, 0 - ldr r1, =gEnemyParty - mov r9, r1 - add r0, r9 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _080A9786 - b _080A9AA0 -_080A9786: - ldrh r0, [r6] - mov r2, r10 - muls r2, r0 - adds r0, r2, 0 - add r0, r9 - movs r1, 0xB - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r7, 0 - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_806A068 - ldr r5, =gUnknown_0202499C - adds r0, r7, 0 - movs r1, 0x2 - bl sub_80A5C6C - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r7, 0 - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r5, 0 - adds r1, r4, 0 - mov r2, r8 - bl AddObjectToFront - ldr r1, =gUnknown_020241E4 - adds r4, r7, r1 - strb r0, [r4] - ldr r5, =gUnknown_02020630 - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, r7, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =DummyObjectCallback - str r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r7, [r0, 0x2E] - ldrh r0, [r6] - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - add r0, r9 - movs r1, 0xB - bl GetMonData - ldrb r2, [r4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r5 - strh r0, [r1, 0x32] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =gUnknown_020244E4 - adds r1, r7, r1 - ldrb r1, [r1] - bl StartObjectImageAnim - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r0, [r0] - ldr r2, [sp] - adds r0, r2, r0 - b _080A9A50 - .pool -_080A986C: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r2, 0x80 - ands r1, r2 - cmp r1, 0 - beq _080A98D0 - cmp r7, 0 - bne _080A98D0 - ldr r5, =gSaveBlock2Ptr - ldr r0, [r5] - ldrb r4, [r0, 0x8] - movs r0, 0 - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl template_build_for_pokemon_or_trainer - ldr r6, =gUnknown_0202499C - ldr r1, =gUnknown_08305D2C - ldr r0, [r5] - ldrb r0, [r0, 0x8] - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0] - movs r4, 0x8 - subs r4, r0 - lsls r4, 18 - movs r0, 0xA0 - lsls r0, 15 - adds r4, r0 - asrs r4, 16 - movs r0, 0 - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r6, 0 - b _080A9914 - .pool -_080A98D0: - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 2 - ands r0, r1 - cmp r0, 0 - beq _080A9968 - cmp r7, 0 - bne _080A9968 - movs r0, 0 - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x6 - bl template_build_for_pokemon_or_trainer - ldr r5, =gUnknown_0202499C - ldr r0, =gUnknown_08305D2C - ldrb r0, [r0, 0x18] - movs r4, 0x8 - subs r4, r0 - lsls r4, 18 - movs r1, 0xA0 - lsls r1, 15 - adds r4, r1 - asrs r4, 16 - movs r0, 0 - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r5, 0 -_080A9914: - movs r1, 0x50 - adds r2, r4, 0 - bl AddObjectToFront - ldr r3, =gUnknown_020241E4 - strb r0, [r3] - ldr r4, =gUnknown_02020630 - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - strb r0, [r1, 0x5] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =DummyObjectCallback - str r1, [r0] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r7, [r0, 0x2E] - b _080A9A70 - .pool -_080A9968: - ldr r1, =gUnknown_0202406E - lsls r0, r7, 1 - adds r6, r0, r1 - ldrh r0, [r6] - movs r2, 0x64 - mov r10, r2 - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - ldr r2, =gPlayerParty - mov r9, r2 - add r0, r9 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _080A998C - b _080A9AA0 -_080A998C: - ldrh r0, [r6] - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - add r0, r9 - movs r1, 0xB - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r7, 0 - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_806A068 - ldr r5, =gUnknown_0202499C - adds r0, r7, 0 - movs r1, 0x2 - bl sub_80A5C6C - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r7, 0 - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r5, 0 - adds r1, r4, 0 - mov r2, r8 - bl AddObjectToFront - ldr r1, =gUnknown_020241E4 - adds r4, r7, r1 - strb r0, [r4] - ldr r5, =gUnknown_02020630 - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, r7, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =DummyObjectCallback - str r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r7, [r0, 0x2E] - ldrh r0, [r6] - mov r2, r10 - muls r2, r0 - adds r0, r2, 0 - add r0, r9 - movs r1, 0xB - bl GetMonData - ldrb r2, [r4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r5 - strh r0, [r1, 0x32] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =gUnknown_020244E4 - adds r1, r7, r1 - ldrb r1, [r1] - bl StartObjectImageAnim - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r0, [r0] - ldr r1, [sp] - adds r0, r1, r0 -_080A9A50: - ldrh r1, [r0, 0x2] - ldr r0, =0x00000181 - cmp r1, r0 - bne _080A9A70 - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r0, r5, 0 - adds r0, 0x8 - adds r1, r0 - ldr r0, =gUnknown_08309AAC - ldr r2, =0x00000604 - adds r0, r2 - ldr r0, [r0] - str r0, [r1] -_080A9A70: - ldr r1, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 - adds r0, r7, r0 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r0, [r0] - ldr r1, [sp] - adds r0, r1, r0 - ldr r1, [r0] - lsls r1, 31 - adds r2, 0x3E - lsrs r1, 31 - lsls r1, 2 - ldrb r3, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] -_080A9AA0: - 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_80A9708 - - thumb_func_start sub_80A9ADC -sub_80A9ADC: @ 80A9ADC - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gUnknown_0202406C - ldrb r0, [r0] - cmp r5, r0 - bcc _080A9AEC - b _080A9C5E -_080A9AEC: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r2, 0x80 - ands r1, r2 - cmp r1, 0 - beq _080A9B0C - cmp r5, 0 - bne _080A9B0C - bl battle_make_oam_safari_battle - b _080A9B24 - .pool -_080A9B0C: - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 2 - ands r0, r1 - cmp r0, 0 - beq _080A9B1E - cmp r5, 0 - bne _080A9B1E - b _080A9C5E -_080A9B1E: - adds r0, r5, 0 - bl battle_make_oam_normal_battle -_080A9B24: - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, =gUnknown_03005D70 - adds r4, r5, r0 - strb r6, [r4] - adds r0, r5, 0 - bl sub_8072B18 - adds r0, r6, 0 - bl sub_80729D0 - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080A9B6C - ldrb r0, [r4] - ldr r1, =gUnknown_0202406E - lsls r4, r5, 1 - adds r1, r4, r1 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gEnemyParty - adds r1, r2 - movs r2, 0 - bl healthbar_draw_field_maybe - b _080A9BB8 - .pool -_080A9B6C: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080A9BA0 - ldrb r0, [r4] - ldr r1, =gUnknown_0202406E - lsls r4, r5, 1 - adds r1, r4, r1 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gPlayerParty - adds r1, r2 - movs r2, 0xA - bl healthbar_draw_field_maybe - b _080A9BB8 - .pool -_080A9BA0: - ldrb r0, [r4] - ldr r1, =gUnknown_0202406E - lsls r4, r5, 1 - adds r1, r4, r1 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gPlayerParty - adds r1, r2 - movs r2, 0 - bl healthbar_draw_field_maybe -_080A9BB8: - adds r0, r5, 0 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _080A9BD4 - adds r0, r5, 0 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _080A9BF0 -_080A9BD4: - ldr r0, =gUnknown_03005D70 - adds r0, r5, r0 - ldrb r0, [r0] - movs r1, 0x1 - bl nullsub_30 - b _080A9BFC - .pool -_080A9BF0: - ldr r0, =gUnknown_03005D70 - adds r0, r5, r0 - ldrb r0, [r0] - movs r1, 0 - bl nullsub_30 -_080A9BFC: - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080A9C34 - ldr r0, =gUnknown_0202406E - adds r0, r4, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _080A9C5E - adds r0, r6, 0 - bl sub_8072984 - b _080A9C5E - .pool -_080A9C34: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080A9C5E - ldr r0, =gUnknown_0202406E - adds r0, r4, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _080A9C5E - adds r0, r6, 0 - bl sub_8072984 -_080A9C5E: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A9ADC - - thumb_func_start sub_80A9C70 -sub_80A9C70: @ 80A9C70 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r0, =gUnknown_020241E4 - adds r0, r4, r0 - ldrb r6, [r0] - ldr r0, =sub_80A9DB4 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, =gUnknown_08524F84 - bl LoadCompressedObjectPicUsingHeap - ldr r0, =gUnknown_0852588C - bl LoadCompressedObjectPaletteUsingHeap - ldr r1, =gTasks - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r1, r0, r1 - strh r4, [r1, 0x8] - cmp r5, 0 - beq _080A9D30 - movs r0, 0x1F - strh r0, [r1, 0xA] - movs r5, 0 - lsls r0, r6, 4 - ldr r7, =gUnknown_02020630 - adds r0, r6 - lsls r0, 2 - adds r6, r0, r7 -_080A9CC4: - movs r0, 0x20 - ldrsh r1, [r6, r0] - ldrh r2, [r6, 0x22] - adds r2, 0x20 - lsls r2, 16 - asrs r2, 16 - ldr r0, =gUnknown_0853EF60 - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r3, r0, r7 - lsls r0, r5, 1 - adds r0, r5 - lsls r1, r0, 4 - adds r0, r1 - strh r0, [r3, 0x2E] - movs r0, 0xFF - lsls r0, 8 - strh r0, [r3, 0x30] - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - cmp r5, 0x4 - bls _080A9D08 - movs r0, 0x15 - strh r0, [r3, 0x3A] -_080A9D08: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x9 - bls _080A9CC4 - b _080A9D90 - .pool -_080A9D30: - movs r0, 0xF8 - lsls r0, 7 - strh r0, [r1, 0xA] - movs r5, 0 - lsls r0, r6, 4 - ldr r7, =gUnknown_02020630 - adds r0, r6 - lsls r0, 2 - adds r6, r0, r7 -_080A9D42: - movs r2, 0x20 - ldrsh r1, [r6, r2] - ldrh r2, [r6, 0x22] - subs r2, 0x20 - lsls r2, 16 - asrs r2, 16 - ldr r0, =gUnknown_0853EF60 - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r3, r0, r7 - lsls r0, r5, 1 - adds r0, r5 - lsls r1, r0, 4 - adds r0, r1 - strh r0, [r3, 0x2E] - movs r0, 0x80 - lsls r0, 1 - strh r0, [r3, 0x30] - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - cmp r5, 0x4 - bls _080A9D86 - movs r0, 0x15 - strh r0, [r3, 0x3A] -_080A9D86: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x9 - bls _080A9D42 -_080A9D90: - ldr r0, =gUnknown_02020630 - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x3C] - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80A9C70 - - thumb_func_start sub_80A9DB4 -sub_80A9DB4: @ 80A9DB4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r1, [r4, 0xC] - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0x2 - bne _080A9E3A - movs r0, 0 - strh r0, [r4, 0xC] - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 20 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r0, 16 - ldrb r2, [r4, 0x10] - ldrh r3, [r4, 0xA] - movs r1, 0x10 - bl BlendPalette - ldrh r2, [r4, 0x12] - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A9E10 - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080A9E3E - movs r0, 0x1 - eors r0, r2 - strh r0, [r4, 0x12] - b _080A9E3E - .pool -_080A9E10: - ldrh r1, [r4, 0x10] - subs r0, r1, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - cmp r0, 0 - bge _080A9E3E - strh r1, [r4, 0x10] - movs r0, 0x1 - eors r0, r2 - strh r0, [r4, 0x12] - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080A9E3E - adds r0, r5, 0 - bl DestroyTask - b _080A9E3E -_080A9E3A: - adds r0, r1, 0x1 - strh r0, [r4, 0xC] -_080A9E3E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A9DB4 - - thumb_func_start sub_80A9E44 -sub_80A9E44: @ 80A9E44 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x3A] - movs r3, 0x3A - ldrsh r0, [r2, r3] - cmp r0, 0 - bne _080A9E70 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r3] - ldr r1, =sub_80A9E78 - str r1, [r2, 0x1C] - adds r0, r2, 0 - bl _call_via_r1 - b _080A9E74 - .pool -_080A9E70: - subs r0, r1, 0x1 - strh r0, [r2, 0x3A] -_080A9E74: - pop {r0} - bx r0 - thumb_func_end sub_80A9E44 - - thumb_func_start sub_80A9E78 -sub_80A9E78: @ 80A9E78 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x20 - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Sin - strh r0, [r4, 0x26] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x7F - bgt _080A9EA4 - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1D - b _080A9EAA -_080A9EA4: - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1F -_080A9EAA: - strb r0, [r1] - ldrh r0, [r4, 0x2E] - adds r0, 0x8 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x38] - adds r0, r1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x34 - bne _080A9EEC - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080A9EE6 - adds r0, r4, 0 - bl RemoveObjectAndFreeResources - b _080A9EEC -_080A9EE6: - adds r0, r4, 0 - bl RemoveObjectAndFreeTiles -_080A9EEC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A9E78 - - thumb_func_start sub_80A9EF4 -sub_80A9EF4: @ 80A9EF4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r4, =gUnknown_02038437 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 8 - ldr r1, =0xffe00000 - adds r0, r1 - lsrs r5, r0, 16 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 8 - ldr r1, =0xffdc0000 - adds r0, r1 - lsrs r4, r0, 16 - bl sub_80A4DF0 - lsls r0, 24 - cmp r0, 0 - beq _080A9F32 - lsls r0, r5, 16 - ldr r1, =0xfffa0000 - adds r0, r1 - lsrs r5, r0, 16 -_080A9F32: - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - ldr r0, =gUnknown_0853EF48 - lsls r1, r5, 16 - asrs r1, 16 - lsls r2, r4, 16 - asrs r2, 16 - movs r3, 0x4 - bl AddObjectToFront - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =0x0000271a - bl GetObjectTileRangeStartByTag - lsls r0, 16 - ldr r1, =0xffff0000 - cmp r0, r1 - bne _080A9F7C - ldr r1, =gUnknown_02020630 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_080A9F7C: - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - ldr r1, =gUnknown_0853EF40 - bl SetSpriteOamTables_NoPriorityFromTable - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - strh r4, [r0, 0x26] - ldr r1, =sub_80A9FD0 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A9EF4 - - thumb_func_start sub_80A9FD0 -sub_80A9FD0: @ 80A9FD0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - adds r2, r0, 0 - strh r0, [r1, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _080AA004 - ldr r0, =sub_80AA020 - str r0, [r1] - movs r0, 0 - strh r0, [r1, 0xA] - b _080AA01A - .pool -_080AA004: - lsls r0, r2, 24 - lsrs r0, 24 - movs r1, 0x10 - subs r1, r0 - lsls r1, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg -_080AA01A: - pop {r0} - bx r0 - thumb_func_end sub_80A9FD0 - - thumb_func_start sub_80AA020 -sub_80AA020: @ 80AA020 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =0x0000271a - bl IndexOfObjectPaletteTag - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - ldrh r0, [r5, 0xA] - adds r1, r0, 0x1 - strh r1, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xD - ble _080AA0B0 - ldrh r0, [r5, 0xC] - adds r0, 0x1 - movs r6, 0 - strh r0, [r5, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080AA0B0 - ldr r3, =gPlttBufferFaded - lsls r2, 4 - mov r12, r2 - ldr r1, =0x0000010d - add r1, r12 - lsls r1, 1 - adds r1, r3 - ldrh r4, [r1] - movs r2, 0x87 - lsls r2, 1 - add r2, r12 - lsls r2, 1 - adds r2, r3 - ldrh r0, [r2] - strh r0, [r1] - ldr r0, =0x0000010f - add r0, r12 - lsls r0, 1 - adds r0, r3 - ldrh r1, [r0] - strh r1, [r2] - strh r4, [r0] - strh r6, [r5, 0xC] - ldrh r0, [r5, 0xE] - adds r0, 0x1 - strh r0, [r5, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080AA0B0 - strh r6, [r5, 0xE] - strh r6, [r5, 0xA] - ldrh r0, [r5, 0x10] - adds r0, 0x1 - strh r0, [r5, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080AA0B0 - movs r0, 0x9 - strh r0, [r5, 0xA] - ldr r0, =sub_80AA0D0 - str r0, [r5] -_080AA0B0: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80AA020 - - thumb_func_start sub_80AA0D0 -sub_80AA0D0: @ 80AA0D0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r2, r1, r2 - ldrh r0, [r2, 0xA] - subs r0, 0x1 - adds r3, r0, 0 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080AA108 - ldr r0, =sub_80AA124 - str r0, [r2] - movs r0, 0 - strh r0, [r2, 0xA] - b _080AA11E - .pool -_080AA108: - lsls r0, r3, 24 - lsrs r0, 24 - movs r1, 0x10 - subs r1, r0 - lsls r1, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg -_080AA11E: - pop {r0} - bx r0 - thumb_func_end sub_80AA0D0 - - thumb_func_start sub_80AA124 -sub_80AA124: @ 80AA124 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r1 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x25 - bne _080AA16C - ldrh r0, [r1, 0x26] - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, =gUnknown_02020630 - adds r4, r0 - adds r0, r4, 0 - bl obj_free_rotscale_entry - adds r0, r4, 0 - bl RemoveObjectAndFreeTiles - b _080AA186 - .pool -_080AA16C: - cmp r0, 0x27 - bne _080AA186 - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - adds r0, r4, 0 - bl move_anim_task_del -_080AA186: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AA124 - - thumb_func_start sub_80AA18C -sub_80AA18C: @ 80AA18C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r3, 0 - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r0, [r0, 0x8] - ldrh r0, [r0] - subs r0, 0xF - cmp r0, 0x2B - bls _080AA1A4 - b _080AA328 -_080AA1A4: - lsls r0, 2 - ldr r1, =_080AA1B8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080AA1B8: - .4byte _080AA268 - .4byte _080AA26E - .4byte _080AA274 - .4byte _080AA27A - .4byte _080AA280 - .4byte _080AA286 - .4byte _080AA28C - .4byte _080AA292 - .4byte _080AA298 - .4byte _080AA29E - .4byte _080AA2A4 - .4byte _080AA2AA - .4byte _080AA2B0 - .4byte _080AA2B6 - .4byte _080AA328 - .4byte _080AA328 - .4byte _080AA328 - .4byte _080AA328 - .4byte _080AA328 - .4byte _080AA328 - .4byte _080AA328 - .4byte _080AA328 - .4byte _080AA328 - .4byte _080AA328 - .4byte _080AA2BC - .4byte _080AA2C0 - .4byte _080AA2C4 - .4byte _080AA2C8 - .4byte _080AA2CC - .4byte _080AA2D0 - .4byte _080AA2D4 - .4byte _080AA2D8 - .4byte _080AA2E0 - .4byte _080AA2E8 - .4byte _080AA2F0 - .4byte _080AA2F8 - .4byte _080AA300 - .4byte _080AA308 - .4byte _080AA328 - .4byte _080AA328 - .4byte _080AA310 - .4byte _080AA314 - .4byte _080AA318 - .4byte _080AA320 -_080AA268: - movs r5, 0 - movs r2, 0 - b _080AA330 -_080AA26E: - movs r5, 0 - movs r2, 0x1 - b _080AA330 -_080AA274: - movs r5, 0 - movs r2, 0x3 - b _080AA330 -_080AA27A: - movs r5, 0 - movs r2, 0x5 - b _080AA330 -_080AA280: - movs r5, 0 - movs r2, 0x6 - b _080AA330 -_080AA286: - movs r5, 0 - movs r2, 0x2 - b _080AA330 -_080AA28C: - movs r5, 0 - movs r2, 0x4 - b _080AA330 -_080AA292: - movs r5, 0x1 - movs r2, 0 - b _080AA330 -_080AA298: - movs r5, 0x1 - movs r2, 0x1 - b _080AA330 -_080AA29E: - movs r5, 0x1 - movs r2, 0x3 - b _080AA330 -_080AA2A4: - movs r5, 0x1 - movs r2, 0x5 - b _080AA330 -_080AA2AA: - movs r5, 0x1 - movs r2, 0x6 - b _080AA330 -_080AA2B0: - movs r5, 0x1 - movs r2, 0x2 - b _080AA330 -_080AA2B6: - movs r5, 0x1 - movs r2, 0x4 - b _080AA330 -_080AA2BC: - movs r5, 0 - b _080AA2DA -_080AA2C0: - movs r5, 0 - b _080AA2E2 -_080AA2C4: - movs r5, 0 - b _080AA2EA -_080AA2C8: - movs r5, 0 - b _080AA2F2 -_080AA2CC: - movs r5, 0 - b _080AA2FA -_080AA2D0: - movs r5, 0 - b _080AA302 -_080AA2D4: - movs r5, 0 - b _080AA30A -_080AA2D8: - movs r5, 0x1 -_080AA2DA: - movs r2, 0 - movs r3, 0x1 - b _080AA330 -_080AA2E0: - movs r5, 0x1 -_080AA2E2: - movs r2, 0x1 - movs r3, 0x1 - b _080AA330 -_080AA2E8: - movs r5, 0x1 -_080AA2EA: - movs r2, 0x3 - movs r3, 0x1 - b _080AA330 -_080AA2F0: - movs r5, 0x1 -_080AA2F2: - movs r2, 0x5 - movs r3, 0x1 - b _080AA330 -_080AA2F8: - movs r5, 0x1 -_080AA2FA: - movs r2, 0x6 - movs r3, 0x1 - b _080AA330 -_080AA300: - movs r5, 0x1 -_080AA302: - movs r2, 0x2 - movs r3, 0x1 - b _080AA330 -_080AA308: - movs r5, 0x1 -_080AA30A: - movs r2, 0x4 - movs r3, 0x1 - b _080AA330 -_080AA310: - movs r5, 0 - b _080AA31A -_080AA314: - movs r5, 0 - b _080AA322 -_080AA318: - movs r5, 0x1 -_080AA31A: - movs r2, 0xFF - movs r3, 0 - b _080AA330 -_080AA320: - movs r5, 0x1 -_080AA322: - movs r2, 0xFF - movs r3, 0x1 - b _080AA330 -_080AA328: - adds r0, r4, 0 - bl move_anim_task_del - b _080AA352 -_080AA330: - ldr r0, =gUnknown_0203841E - movs r1, 0 - strh r5, [r0] - strh r2, [r0, 0x2] - strh r1, [r0, 0x4] - strh r1, [r0, 0x6] - strh r3, [r0, 0x8] - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_8116EB4 - str r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 -_080AA352: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80AA18C - - thumb_func_start move_anim_start_t2 -move_anim_start_t2: @ 80AA364 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r0, =gUnknown_02038436 - strb r4, [r0] - ldr r0, =gUnknown_02038437 - strb r4, [r0] - ldr r0, =gUnknown_082C92FC - movs r2, 0 - bl move_something - ldr r0, =task0A_80788BC - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end move_anim_start_t2 - - thumb_func_start task0A_80788BC -task0A_80788BC: @ 80AA3B4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gUnknown_020383F8 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, =gUnknown_020383FD - ldrb r0, [r0] - cmp r0, 0 - bne _080AA3F6 - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x8 - ldrsh r0, [r0, r1] - ldr r2, [r2, 0x4] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, 0 - bl DestroyTask -_080AA3F6: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end task0A_80788BC - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom6.s b/asm/rom6.s index 7769796159..9ded5bf72e 100644 --- a/asm/rom6.s +++ b/asm/rom6.s @@ -31,7 +31,7 @@ npc_before_player_of_type: @ 8135424 ldrb r0, [r2, 0x5] cmp r0, r5 bne _08135470 - ldr r1, =gUnknown_020375F2 + ldr r1, =gScriptLastTalked ldrb r0, [r2, 0x8] strh r0, [r1] movs r0, 0x1 @@ -208,10 +208,10 @@ _081355B8: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 ldrb r1, [r6, 0x8] - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0x6 bl FieldEffectActiveListRemove ldr r1, =gTasks @@ -262,7 +262,7 @@ sub_8135654: @ 8135654 lsls r0, 24 cmp r0, 0 beq _0813568C - ldr r4, =gUnknown_020375F0 + ldr r4, =gScriptResult bl brm_get_pokemon_selection lsls r0, 24 lsrs r0, 24 @@ -330,7 +330,7 @@ oei_rocksmash: @ 81356E4 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] movs r0, 0x13 - bl sav12_xor_increment + bl IncrementGameStat movs r0, 0 pop {r1} bx r1 @@ -341,7 +341,7 @@ oei_rocksmash: @ 81356E4 sub_8135714: @ 8135714 push {lr} movs r0, 0x83 - bl audio_play + bl PlaySE movs r0, 0x25 bl FieldEffectActiveListRemove bl script_env_2_enable_and_set_ctx_running @@ -570,8 +570,8 @@ sub_8135908: @ 8135908 sub_813591C: @ 813591C push {lr} bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl do_scheduled_bg_tilemap_copies_to_vram bl UpdatePaletteFade pop {r0} @@ -581,8 +581,8 @@ sub_813591C: @ 813591C thumb_func_start sub_8135938 sub_8135938: @ 8135938 push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -665,7 +665,7 @@ _081359F6: b _08135BA6 .pool _08135A08: - bl ResetObjectPaletteAllocator + bl FreeAllSpritePalettes b _08135B9E _08135A0E: bl ResetPaletteFade @@ -681,7 +681,7 @@ _08135A0E: b _08135BA6 .pool _08135A30: - bl ResetAllObjectData + bl ResetSpriteData b _08135B9E _08135A36: ldr r0, =gUnknown_0203AB50 @@ -1054,7 +1054,7 @@ sub_8135D7C: @ 8135D7C sub_8135DAC: @ 8135DAC push {r4,lr} ldr r0, =0x00000111 - bl itemid_get_item + bl ItemId_GetItem adds r4, r0, 0 movs r0, 0x1 adds r1, r4, 0 @@ -1249,8 +1249,8 @@ sub_8135F70: @ 8135F70 cmp r1, 0x1 beq _08135F9C movs r0, 0x5 - bl audio_play - ldr r2, =gUnknown_02020630 + bl PlaySE + ldr r2, =gSprites ldr r0, =gUnknown_0203AB50 ldr r0, [r0] ldr r1, =0x00000e74 @@ -1857,7 +1857,7 @@ sub_8136444: @ 8136444 asrs r5, 16 adds r1, r4, 0 adds r2, r5, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 pop {r4,r5} @@ -1895,7 +1895,7 @@ _0813648E: ldr r0, =gUnknown_085B26F0 str r0, [r4, 0x10] adds r0, r4, 0 - bl obj_alloc_rotscale_entry + bl InitSpriteAffineAnim movs r0, 0x1 strh r0, [r4, 0x2E] strh r5, [r4, 0x30] @@ -1920,8 +1920,8 @@ _081364B4: ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry - ldr r0, =DummyObjectCallback + bl FreeOamMatrix + ldr r0, =SpriteCallbackDummy str r0, [r4, 0x1C] _081364E0: pop {r4,r5} @@ -1994,8 +1994,8 @@ _0813655A: adds r1, r4, 0 bl sub_81AE6C8 bl sub_8136418 - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes ldr r0, [r6] movs r1, 0x80 lsls r1, 4 @@ -2083,7 +2083,7 @@ _08136602: cmp r1, r0 beq _08136708 movs r0, 0x5 - bl audio_play + bl PlaySE ldrh r0, [r4, 0x4] ldr r1, =0x00002005 bl sub_8136110 @@ -2135,8 +2135,8 @@ _081366B6: .pool _081366D0: movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_020375F0 + bl PlaySE + ldr r0, =gScriptResult ldr r2, =0x0000ffff adds r1, r2, 0 strh r1, [r0] @@ -2149,7 +2149,7 @@ _081366D0: .pool _081366F8: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =gUnknown_0203CE7C strh r4, [r0] adds r0, r7, 0 @@ -2193,7 +2193,7 @@ _08136742: cmp r0, 0 beq _0813676C movs r0, 0x5 - bl audio_play + bl PlaySE ldrb r0, [r7] ldr r1, =gUnknown_0203AB4E subs r2, r1, 0x2 @@ -2274,7 +2274,7 @@ _081367CA: .pool _08136810: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 @@ -2294,7 +2294,7 @@ _08136830: b _08136848 _0813683A: movs r0, 0x5 - bl audio_play + bl PlaySE mov r0, r8 movs r1, 0 bl sub_8136854 @@ -2491,13 +2491,13 @@ sub_81369E0: @ 81369E0 cmp r4, r0 bne _08136A18 movs r0, 0x5 - bl audio_play + bl PlaySE adds r0, r5, 0 bl sub_8136DE8 b _08136A3C _08136A18: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r1, =gUnknown_085B2668 ldr r0, =gUnknown_0203AB50 ldr r0, [r0] @@ -2693,7 +2693,7 @@ sub_8136BC0: @ 8136BC0 ldrb r0, [r0] bl sub_8136F68 movs r0, 0x5 - bl audio_play + bl PlaySE ldr r5, =gUnknown_0203AB4E subs r6, r5, 0x2 lsls r4, r7, 2 @@ -2783,7 +2783,7 @@ sub_8136C8C: @ 8136C8C adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldr r3, =gUnknown_085B262C ldr r2, [r5] ldrh r1, [r7] @@ -2853,7 +2853,7 @@ sub_8136D2C: @ 8136D2C adds r1, r3 ldr r1, [r1] bl StringCopy - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult ldrh r0, [r5] strh r0, [r1] lsls r0, 24 @@ -2875,7 +2875,7 @@ sub_8136D90: @ 8136D90 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r6, =gUnknown_020375E0 + ldr r6, =gSpecialVar_0x8004 ldr r0, =gSaveBlock1Ptr ldr r5, =gUnknown_0203CE7C ldrh r1, [r5] @@ -2888,7 +2888,7 @@ sub_8136D90: @ 8136D90 lsls r0, 24 lsrs r0, 24 strh r0, [r6] - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult ldrh r0, [r5] strh r0, [r1] lsls r0, 24 @@ -2978,8 +2978,8 @@ sub_8136E20: @ 8136E20 .pool thumb_func_end sub_8136E20 - thumb_func_start sub_8136E88 -sub_8136E88: @ 8136E88 + thumb_func_start ClearPokeblocks +ClearPokeblocks: @ 8136E88 push {r4,lr} movs r4, 0 _08136E8C: @@ -2993,7 +2993,7 @@ _08136E8C: pop {r4} pop {r0} bx r0 - thumb_func_end sub_8136E88 + thumb_func_end ClearPokeblocks thumb_func_start sub_8136EA4 sub_8136EA4: @ 8136EA4 @@ -3333,7 +3333,7 @@ sub_81370FC: @ 81370FC lsls r0, 24 cmp r0, 0 beq _08137134 - ldr r4, =gUnknown_020375F0 + ldr r4, =gScriptResult bl brm_get_pokemon_selection lsls r0, 24 lsrs r0, 24 @@ -3404,7 +3404,7 @@ hm2_flash: @ 8137178 sub_81371B4: @ 81371B4 push {lr} movs r0, 0xCF - bl audio_play + bl PlaySE ldr r0, =0x00000888 bl FlagSet ldr r0, =gUnknown_082926F8 @@ -3418,8 +3418,8 @@ sub_81371B4: @ 81371B4 sub_81371D4: @ 81371D4 push {lr} bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 @@ -3428,8 +3428,8 @@ sub_81371D4: @ 81371D4 thumb_func_start sub_81371EC sub_81371EC: @ 81371EC push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -3503,7 +3503,7 @@ c2_change_map: @ 8137200 ldr r0, [r1, 0x8] bl ResetPaletteFade bl ResetTasks - bl ResetAllObjectData + bl ResetSpriteData ldr r3, =0x04000208 ldrh r2, [r3] strh r4, [r3] @@ -4055,7 +4055,7 @@ _08137760: bl FlagSet _0813776C: movs r0, 0x1 - bl sub_80847F8 + bl GetGameStat cmp r0, 0 bne _0813778E ldr r0, =gSaveBlock2Ptr @@ -4119,7 +4119,7 @@ _081377BC: adds r0, r4, 0 movs r1, 0x43 add r2, sp, 0x18 - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 bl sub_80EE5A4 strb r0, [r5, 0x1] @@ -4132,7 +4132,7 @@ _0813780A: cmp r7, 0x1 bne _0813785A movs r0, 0x2A - bl sav12_xor_increment + bl IncrementGameStat ldr r0, =0x0000089b bl FlagSet mov r3, sp @@ -4321,9 +4321,9 @@ sub_8137988: @ 8137988 lsls r0, 24 cmp r0, 0 beq _081379CE - bl GameFreakRTC_CalcLocalDateTime + bl RtcCalcLocalTime ldr r1, =gUnknown_085B2B44 - ldr r0, =gUnknown_03005CF8 + ldr r0, =gLocalTime ldrb r0, [r0, 0x2] lsls r0, 24 asrs r0, 24 @@ -4410,13 +4410,13 @@ sub_8137A20: @ 8137A20 thumb_func_start sub_8137A4C sub_8137A4C: @ 8137A4C push {lr} - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0 bne _08137A70 movs r0, 0 bl sub_80C0844 - ldr r1, =gUnknown_020375E2 + ldr r1, =gSpecialVar_0x8005 strh r0, [r1] movs r0, 0x1 bl sub_80C0844 @@ -4425,14 +4425,14 @@ sub_8137A4C: @ 8137A4C _08137A70: movs r0, 0 bl pokedex_count - ldr r1, =gUnknown_020375E2 + ldr r1, =gSpecialVar_0x8005 strh r0, [r1] movs r0, 0x1 bl pokedex_count _08137A80: - ldr r1, =gUnknown_020375E4 + ldr r1, =gSpecialVar_0x8006 strh r0, [r1] - bl sub_809D42C + bl IsNationalPokedexEnabled lsls r0, 16 lsrs r0, 16 pop {r1} @@ -4626,7 +4626,7 @@ _08137C06: thumb_func_start sub_8137C10 sub_8137C10: @ 8137C10 push {lr} - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] bl sub_8137A98 bl box_related_two__2 @@ -4899,7 +4899,7 @@ _08137E58: lsls r0, 24 lsrs r4, r0, 24 _08137E5C: - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r4, [r0] pop {r4-r7} pop {r0} @@ -5625,7 +5625,7 @@ _0813840A: lsls r0, 24 lsrs r6, r0, 24 _08138410: - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r6, r0 bcc _08138358 @@ -5682,7 +5682,7 @@ _08138454: lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 lsls r3, r5, 4 ldrb r2, [r1, 0x5] @@ -5742,7 +5742,7 @@ sub_81384F0: @ 81384F0 movs r4, 0 ldr r5, =gUnknown_085B2B68 _081384F6: - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r4, r0 bne _0813851C @@ -6151,7 +6151,7 @@ sub_81388E4: @ 81388E4 ldr r0, =gUnknown_0203AB5D strb r1, [r0] movs r0, 0x2C - bl audio_play + bl PlaySE ldr r0, =sub_8138910 movs r1, 0x8 bl CreateTask @@ -6174,7 +6174,7 @@ sub_8138910: @ 8138910 ldrb r0, [r0] cmp r0, r2 bne _0813896C - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrb r0, [r0] ldr r2, =gUnknown_085B2B7E lsls r1, 1 @@ -6364,7 +6364,7 @@ _08138A92: thumb_func_start sub_8138AA4 sub_8138AA4: @ 8138AA4 push {lr} - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrb r0, [r0] ldr r1, =gUnknown_085B2B7E ldrh r1, [r1, 0x8] @@ -6386,12 +6386,12 @@ sub_8138AC0: @ 8138AC0 thumb_func_start sub_8138AD0 sub_8138AD0: @ 8138AD0 - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldr r0, =gSaveBlock1Ptr ldr r2, [r0] ldrh r0, [r2] strh r0, [r1] - ldr r1, =gUnknown_020375E2 + ldr r1, =gSpecialVar_0x8005 ldrh r0, [r2, 0x2] strh r0, [r1] bx lr @@ -6464,7 +6464,7 @@ _08138B74: thumb_func_start sub_8138B80 sub_8138B80: @ 8138B80 - ldr r0, =gUnknown_0202433A + ldr r0, =gBattleOutcome ldrb r0, [r0] bx lr .pool @@ -6474,7 +6474,7 @@ sub_8138B80: @ 8138B80 sub_8138B8C: @ 8138B8C push {lr} sub sp, 0x4 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0 beq _08138BB0 @@ -6506,7 +6506,7 @@ _08138BC2: thumb_func_start sub_8138BC8 sub_8138BC8: @ 8138BC8 push {lr} - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] bl FlagSet pop {r0} @@ -6517,7 +6517,7 @@ sub_8138BC8: @ 8138BC8 thumb_func_start sub_8138BDC sub_8138BDC: @ 8138BDC push {lr} - ldr r0, =gUnknown_03005CF8 + ldr r0, =gLocalTime movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0x7 @@ -6753,7 +6753,7 @@ sub_8138D88: @ 8138D88 lsls r0, 16 cmp r0, 0 beq _08138DC4 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0 bne _08138DAC @@ -6773,7 +6773,7 @@ _08138DB8: b _08138DE6 .pool _08138DC4: - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0 bne _08138DD4 @@ -6857,7 +6857,7 @@ _08138E5A: _08138E5C: movs r5, 0xFF _08138E5E: - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0 bne _08138E70 @@ -7036,7 +7036,7 @@ sub_8138FAC: @ 8138FAC thumb_func_start sub_8138FD4 sub_8138FD4: @ 8138FD4 push {lr} - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldr r0, =0x000001f5 strh r0, [r1] bl FlagSet @@ -7048,7 +7048,7 @@ sub_8138FD4: @ 8138FD4 thumb_func_start sub_8138FEC sub_8138FEC: @ 8138FEC push {lr} - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldr r0, =0x000001f5 strh r0, [r1] bl FlagReset @@ -7214,7 +7214,7 @@ _081390E6: cmp r0, 0xC bne _0813913C _08139128: - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 b _0813914A .pool @@ -7224,7 +7224,7 @@ _0813913C: lsrs r5, r0, 24 cmp r5, 0x5 bls _081390E6 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 _0813914A: strh r0, [r1] @@ -7336,7 +7336,7 @@ sub_8139200: @ 8139200 sub_8139228: @ 8139228 push {lr} movs r0, 0x20 - bl sub_80847F8 + bl GetGameStat lsls r0, 16 lsrs r0, 16 pop {r1} @@ -7368,7 +7368,7 @@ sub_8139248: @ 8139248 ldrh r2, [r2] adds r1, r2 ldr r2, =gUnknown_085B2B88 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] adds r0, r2 ldrb r0, [r0] @@ -7398,7 +7398,7 @@ _08139296: thumb_func_start sub_81392AC sub_81392AC: @ 81392AC push {lr} - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldr r0, =0x00000213 strh r0, [r1] bl FlagGet @@ -7418,7 +7418,7 @@ _081392CE: thumb_func_start sub_81392D4 sub_81392D4: @ 81392D4 push {lr} - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 movs r0, 0x85 lsls r0, 2 strh r0, [r1] @@ -7439,7 +7439,7 @@ _081392F2: thumb_func_start sub_81392F8 sub_81392F8: @ 81392F8 push {lr} - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldr r0, =0x00000215 strh r0, [r1] bl FlagGet @@ -7459,7 +7459,7 @@ _0813931A: thumb_func_start sub_8139320 sub_8139320: @ 8139320 push {lr} - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldr r0, =0x00000216 strh r0, [r1] bl FlagGet @@ -7501,7 +7501,7 @@ sub_8139370: @ 8139370 push {r4,lr} sub sp, 0x4 movs r0, 0x2A - bl sav12_xor_increment + bl IncrementGameStat ldr r0, =0x0000089b bl FlagSet movs r1, 0x1 @@ -7517,7 +7517,7 @@ sub_8139370: @ 8139370 adds r0, r4, 0 movs r1, 0x47 mov r2, sp - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 bl sub_80EE5A4 lsls r0, 24 @@ -7637,28 +7637,28 @@ sub_813946C: @ 813946C adds r0, r5, 0 movs r1, 0x2E add r2, sp, 0x10 - bl pokemon_setattr + bl SetMonData add r1, sp, 0x10 movs r0, 0x21 strh r0, [r1] adds r0, r5, 0 movs r1, 0xD add r2, sp, 0x10 - bl pokemon_setattr + bl SetMonData add r0, sp, 0x10 strh r4, [r0] adds r0, r5, 0 movs r1, 0xE add r2, sp, 0x10 - bl pokemon_setattr + bl SetMonData adds r0, r5, 0 movs r1, 0xF add r2, sp, 0x10 - bl pokemon_setattr + bl SetMonData adds r0, r5, 0 movs r1, 0x10 add r2, sp, 0x10 - bl pokemon_setattr + bl SetMonData add sp, 0x14 pop {r4,r5} pop {r0} @@ -7751,24 +7751,24 @@ sub_8139560: @ 8139560 adds r1, r0 lsls r1, 3 adds r1, r2 - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] movs r2, 0 strh r0, [r1, 0x8] strh r2, [r1, 0xA] - ldr r0, =gUnknown_020375E4 + ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] strh r0, [r1, 0xC] - ldr r0, =gUnknown_020375E6 + ldr r0, =gSpecialVar_0x8007 ldrh r0, [r0] strh r0, [r1, 0xE] - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] strh r0, [r1, 0x10] movs r0, 0 bl SetCameraPanningCallback movs r0, 0xD6 - bl audio_play + bl PlaySE pop {r0} bx r0 .pool @@ -7931,7 +7931,7 @@ _081396D8: thumb_func_start sub_81396E0 sub_81396E0: @ 81396E0 push {lr} - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 @@ -7960,7 +7960,7 @@ sub_813970C: @ 813970C lsls r0, 16 lsrs r0, 16 adds r3, r0, 0 - ldr r2, =gUnknown_03005CF8 + ldr r2, =gLocalTime movs r1, 0 ldrsh r0, [r2, r1] subs r0, r3 @@ -7993,7 +7993,7 @@ _0813974C: sub_8139754: @ 8139754 push {r4,lr} ldr r0, =0x000040c2 - ldr r4, =gUnknown_03005CF8 + ldr r4, =gLocalTime ldrh r1, [r4] bl VarSet ldrh r0, [r4] @@ -8006,7 +8006,7 @@ sub_8139754: @ 8139754 thumb_func_start sub_8139770 sub_8139770: @ 8139770 push {r4-r6,lr} - ldr r6, =gUnknown_020375E0 + ldr r6, =gSpecialVar_0x8004 ldrh r0, [r6] movs r5, 0x64 muls r0, r5 @@ -8044,7 +8044,7 @@ _081397BE: thumb_func_start sub_81397C4 sub_81397C4: @ 81397C4 push {r4,r5,lr} - ldr r2, =gUnknown_020375F0 + ldr r2, =gScriptResult ldrh r1, [r2] ldr r0, =0x0000270f cmp r1, r0 @@ -8123,7 +8123,7 @@ _08139862: thumb_func_start sub_813986C sub_813986C: @ 813986C push {lr} - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0x4 bhi _081398B8 @@ -8169,7 +8169,7 @@ _081398BA: thumb_func_start sub_81398C0 sub_81398C0: @ 81398C0 push {r4,lr} - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldr r2, =0xfffffedf adds r0, r2, 0 ldrh r2, [r1] @@ -8407,8 +8407,8 @@ sub_8139A78: @ 8139A78 strh r3, [r4, 0x4] movs r6, 0x1 strh r6, [r4, 0x8] - ldr r0, =gUnknown_020375E2 - ldr r1, =gUnknown_020375E4 + ldr r0, =gSpecialVar_0x8005 + ldr r1, =gSpecialVar_0x8006 ldrh r2, [r0] ldrh r0, [r1] cmp r2, r0 @@ -8439,7 +8439,7 @@ _08139ACE: adds r0, r5, 0 bl sub_8139C2C movs r0, 0x59 - bl audio_play + bl PlaySE pop {r4-r6} pop {r0} bx r0 @@ -8485,7 +8485,7 @@ sub_8139AF4: @ 8139AF4 cmp r1, r0 bne _08139B54 movs r0, 0x49 - bl audio_play + bl PlaySE adds r0, r5, 0 bl DestroyTask bl script_env_2_enable_and_set_ctx_running @@ -8532,7 +8532,7 @@ sub_8139B60: @ 8139B60 adds r2, r4, 0 bl Print ldr r6, =gUnknown_085B2BB4 - ldr r4, =gUnknown_020375E2 + ldr r4, =gSpecialVar_0x8005 ldrh r0, [r4] lsls r0, 2 adds r0, r6 @@ -8769,7 +8769,7 @@ _08139D7C: sub_8139D98: @ 8139D98 push {r4-r7,lr} sub sp, 0x18 - ldr r6, =gUnknown_020375E0 + ldr r6, =gSpecialVar_0x8004 ldrh r0, [r6] movs r5, 0x64 muls r0, r5 @@ -8808,7 +8808,7 @@ sub_8139D98: @ 8139D98 movs r1, 0x2C bl GetMonData str r0, [sp, 0x14] - ldr r1, =gUnknown_020375E2 + ldr r1, =gSpecialVar_0x8005 movs r0, 0 strh r0, [r1] movs r4, 0 @@ -8825,10 +8825,10 @@ _08139E00: lsrs r4, r0, 24 cmp r4, 0x5 bls _08139E00 - ldr r2, =gUnknown_020375E4 + ldr r2, =gSpecialVar_0x8006 movs r0, 0 strh r0, [r2] - ldr r1, =gUnknown_020375E6 + ldr r1, =gSpecialVar_0x8007 ldr r0, [sp] strh r0, [r1] movs r4, 0x1 @@ -9123,10 +9123,10 @@ sub_813A080: @ 813A080 lsls r0, 24 cmp r0, 0 bne _0813A0D8 - ldr r1, =gUnknown_020375E2 + ldr r1, =gSpecialVar_0x8005 movs r0, 0x5 strh r0, [r1] - ldr r1, =gUnknown_020375E4 + ldr r1, =gSpecialVar_0x8006 movs r0, 0x4 strh r0, [r1] b _0813A110 @@ -9138,8 +9138,8 @@ _0813A0D0: b _0813A10E _0813A0D8: movs r3, 0 - ldr r6, =gUnknown_020375E2 - ldr r7, =gUnknown_020375E4 + ldr r6, =gSpecialVar_0x8005 + ldr r7, =gSpecialVar_0x8006 lsls r1, r4, 1 lsls r2, r5, 2 ldr r4, =gUnknown_085B2CDC @@ -9187,7 +9187,7 @@ sub_813A128: @ 813A128 lsls r0, 3 ldr r1, =gTasks adds r3, r0, r1 - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldrh r0, [r1] strh r0, [r3, 0x1E] ldrh r0, [r1] @@ -9381,7 +9381,7 @@ _0813A2BE: strh r4, [r3, 0x26] b _0813A2D2 _0813A2C6: - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x7F strh r0, [r1] adds r0, r4, 0 @@ -9439,7 +9439,7 @@ sub_813A2DC: @ 813A2DC ldr r5, =gUnknown_085B2CF0 _0813A33A: lsls r1, r4, 2 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] lsls r0, 6 adds r1, r0 @@ -9574,7 +9574,7 @@ sub_813A46C: @ 813A46C push {r4,r5,lr} sub sp, 0x4 movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =sub_813A4EC bl FindTaskIdByFunc lsls r0, 24 @@ -9649,18 +9649,18 @@ sub_813A4EC: @ 813A4EC b _0813A566 .pool _0813A51C: - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x7F strh r0, [r1] movs r0, 0x5 - bl audio_play + bl PlaySE b _0813A54C .pool _0813A530: - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r4, [r0] movs r0, 0x5 - bl audio_play + bl PlaySE movs r1, 0x14 ldrsh r0, [r6, r1] cmp r0, 0 @@ -9978,7 +9978,7 @@ _0813A7A8: thumb_func_start sub_813A7B8 sub_813A7B8: @ 813A7B8 push {lr} - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldrh r0, [r1] cmp r0, 0x5 bls _0813A7C6 @@ -10198,7 +10198,7 @@ sub_813A9A4: @ 813A9A4 ldr r0, [r0] ldr r2, =0x00000eb8 adds r1, r0, r2 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r2, [r1] ldrh r0, [r0] cmp r2, r0 @@ -10222,7 +10222,7 @@ sub_813A9D0: @ 813A9D0 ldr r1, =0x00000eb8 adds r2, r0, r1 ldrh r1, [r2] - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] adds r1, r0 ldr r0, =0x0000270f @@ -10378,9 +10378,9 @@ _0813AB18: _0813AB2C: ldr r4, =0x0000157c adds r0, r4, 0 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag adds r0, r4, 0 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag lsls r0, r5, 24 lsrs r0, 24 str r4, [sp] @@ -10455,9 +10455,9 @@ sub_813ABD4: @ 813ABD4 lsrs r5, 16 ldr r4, =0x0000157c adds r0, r4, 0 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag adds r0, r4, 0 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag adds r0, r4, 0 adds r1, r4, 0 adds r2, r5, 0 @@ -10468,7 +10468,7 @@ sub_813ABD4: @ 813ABD4 lsrs r0, 24 cmp r0, 0x40 beq _0813AC32 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldrb r0, [r4] lsls r1, r0, 4 adds r1, r0 @@ -10517,9 +10517,9 @@ sub_813AC44: @ 813AC44 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeResources + bl DestroySpriteAndFreeResources _0813AC6A: ldr r1, =gUnknown_0203AB6C movs r0, 0x40 @@ -10533,13 +10533,13 @@ _0813AC70: thumb_func_start sub_813AC7C sub_813AC7C: @ 813AC7C push {lr} - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0 beq _0813ACB8 ldr r0, =gStringVar1 ldr r2, =gUnknown_085B320C - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldrh r1, [r1] lsls r1, 1 adds r1, r2 @@ -10554,7 +10554,7 @@ sub_813AC7C: @ 813AC7C _0813ACB8: ldr r0, =gStringVar1 ldr r2, =gUnknown_085B31F8 - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldrh r1, [r1] lsls r1, 1 adds r1, r2 @@ -10583,7 +10583,7 @@ sub_813ACE8: @ 813ACE8 lsrs r0, 24 cmp r0, 0x1 bhi _0813AD20 - ldr r0, =gUnknown_020375E4 + ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] cmp r0, 0 bne _0813AD18 @@ -10728,7 +10728,7 @@ _0813AE1E: ldrh r2, [r1] adds r2, r5 lsls r2, 2 - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldrh r1, [r1] lsls r1, 6 adds r2, r1 @@ -10789,7 +10789,7 @@ _0813AE90: sub_813AEB4: @ 813AEB4 push {r4,lr} movs r1, 0 - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 strh r1, [r0] ldr r0, =0x0000400e bl VarGet @@ -10822,7 +10822,7 @@ _0813AEE2: b _0813AF38 .pool _0813AF0C: - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 strh r2, [r0] b _0813AF38 .pool @@ -10930,7 +10930,7 @@ task_deoxys_sound: @ 813AFDC lsrs r0, 24 cmp r0, 0x1 bne _0813B004 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x3 b _0813B06A .pool @@ -10961,7 +10961,7 @@ _0813B004: mov r0, r8 movs r1, 0 bl VarSet - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] b _0813B070 @@ -10971,7 +10971,7 @@ _0813B05C: bne _0813B080 ldr r0, =0x000008d4 bl FlagSet - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x2 _0813B06A: strh r0, [r1] @@ -10991,7 +10991,7 @@ _0813B080: ldr r0, =0x00004035 adds r1, r5, 0 bl VarSet - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 strh r0, [r1] adds r0, r7, 0 @@ -11028,13 +11028,13 @@ sub_813B0B4: @ 813B0B4 cmp r4, 0 bne _0813B0F0 movs r0, 0xC4 - bl audio_play + bl PlaySE b _0813B0F8 .pool _0813B0F0: movs r0, 0x82 lsls r0, 1 - bl audio_play + bl PlaySE _0813B0F8: ldr r0, =sub_813B160 movs r1, 0x8 @@ -11512,7 +11512,7 @@ _0813B4D8: thumb_func_start sub_813B4E0 sub_813B4E0: @ 813B4E0 push {lr} - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] bl sub_81D15CC cmp r0, 0 @@ -11649,7 +11649,7 @@ _0813B5FE: bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 movs r2, 0x2 bl link_0800A448 b _0813B708 @@ -11668,7 +11668,7 @@ _0813B622: beq _0813B62E b _0813B790 _0813B62E: - ldr r5, =gUnknown_020375E2 + ldr r5, =gSpecialVar_0x8005 ldr r0, =gUnknown_020223C4 movs r1, 0x80 lsls r1, 1 @@ -11677,28 +11677,28 @@ _0813B62E: strh r0, [r5] movs r0, 0x1 bl sub_800A5EC - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0x1 bne _0813B668 ldrh r1, [r5] cmp r1, 0x1 bne _0813B668 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r1, [r0] b _0813B790 .pool _0813B668: - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] adds r2, r0, 0 cmp r1, 0 bne _0813B68C - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0x1 bne _0813B68C - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x2 b _0813B6AC .pool @@ -11706,16 +11706,16 @@ _0813B68C: ldrh r0, [r2] cmp r0, 0x1 bne _0813B6A8 - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0 bne _0813B6A8 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x3 b _0813B6AC .pool _0813B6A8: - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 _0813B6AC: strh r0, [r1] @@ -11736,7 +11736,7 @@ _0813B6C2: bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r2, 0x2 bl link_0800A448 b _0813B708 @@ -11751,7 +11751,7 @@ _0813B6E4: lsls r0, 24 cmp r0, 0 beq _0813B790 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult ldr r0, =gUnknown_020223C4 ldrh r0, [r0] strh r0, [r1] @@ -11773,7 +11773,7 @@ _0813B728: lsls r0, 24 cmp r0, 0 bne _0813B74C - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0x2 bne _0813B790 @@ -11782,7 +11782,7 @@ _0813B728: b _0813B790 .pool _0813B74C: - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0x3 bne _0813B790 @@ -11846,7 +11846,7 @@ _0813B7C6: thumb_func_start sub_813B7D8 sub_813B7D8: @ 813B7D8 push {lr} - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0 bne _0813B7F8 @@ -11874,7 +11874,7 @@ sub_813B80C: @ 813B80C movs r1, 0x8 bl CreateTask movs r0, 0x9D - bl audio_play + bl PlaySE pop {r0} bx r0 .pool @@ -11896,7 +11896,7 @@ sub_813B824: @ 813B824 strh r0, [r4, 0x2] movs r0, 0x2 ldrsh r1, [r4, r0] - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r1, r0 bne _0813B858 @@ -11906,11 +11906,11 @@ sub_813B824: @ 813B824 movs r0, 0 strh r0, [r4, 0x2] movs r0, 0x9D - bl audio_play + bl PlaySE _0813B858: movs r0, 0 ldrsh r1, [r4, r0] - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] subs r0, 0x1 cmp r1, r0 @@ -12041,8 +12041,8 @@ _0813B94E: thumb_func_start sub_813B968 sub_813B968: @ 813B968 push {r4,r5,lr} - ldr r5, =gUnknown_020375F0 - ldr r0, =gUnknown_020375E0 + ldr r5, =gScriptResult + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] movs r1, 0x7 bl __udivsi3 @@ -12124,8 +12124,8 @@ _0813BA08: bx r1 thumb_func_end sub_813B9C0 - thumb_func_start sub_813BA10 -sub_813BA10: @ 813BA10 + thumb_func_start ResetFanClub +ResetFanClub: @ 813BA10 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r2, =0x0000141e @@ -12138,7 +12138,7 @@ sub_813BA10: @ 813BA10 strh r2, [r0] bx lr .pool - thumb_func_end sub_813BA10 + thumb_func_end ResetFanClub thumb_func_start sub_813BA30 sub_813BA30: @ 813BA30 @@ -12529,7 +12529,7 @@ sub_813BD60: @ 813BD60 ldr r1, =0x0000141e adds r0, r1 ldrh r0, [r0] - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldrh r1, [r1] asrs r0, r1 movs r1, 0x1 @@ -12567,7 +12567,7 @@ sub_813BDB4: @ 813BDB4 push {lr} movs r3, 0 movs r2, 0 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] subs r0, 0x8 cmp r0, 0x7 @@ -12714,7 +12714,7 @@ sub_813BF10: @ 813BF10 cmp r0, 0x2 bne _0813BF40 bl sub_813BA30 - ldr r0, =gUnknown_0202433A + ldr r0, =gBattleOutcome ldrb r0, [r0] cmp r0, 0x1 bne _0813BF3C @@ -12759,7 +12759,7 @@ sub_813BF60: @ 813BF60 thumb_func_start sub_813BF7C sub_813BF7C: @ 813BF7C push {lr} - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrb r0, [r0] bl sub_813BADC lsls r0, 24 diff --git a/asm/rom_8034C54.s b/asm/rom_8034C54.s index 25eea3ffcc..c83e3aab77 100644 --- a/asm/rom_8034C54.s +++ b/asm/rom_8034C54.s @@ -147,7 +147,7 @@ sub_8034D14: @ 8034D14 beq _08034DD4 ldr r0, [r5, 0x8] ldrh r0, [r0, 0x6] - bl GetObjectTileRangeStartByTag + bl GetSpriteTileStartByTag ldr r2, [r6] ldr r1, [r2, 0x4] adds r1, r4, r1 @@ -165,7 +165,7 @@ sub_8034D14: @ 8034D14 cmp r0, 0 beq _08034D94 adds r0, r1, 0 - bl LoadObjectPic + bl LoadSpriteSheet b _08034DB4 .pool _08034D94: @@ -207,7 +207,7 @@ _08034DD4: _08034DE0: ldr r0, [r5, 0xC] ldrh r0, [r0, 0x4] - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag ldr r6, =gUnknown_02022E10 ldr r1, [r6] ldr r1, [r1, 0x4] @@ -224,7 +224,7 @@ _08034DE0: cmp r0, 0xFF bne _08034E14 ldr r0, [r5, 0xC] - bl LoadTaggedObjectPalette + bl LoadSpritePalette ldr r1, [r6] ldr r1, [r1, 0x4] adds r1, r4, r1 @@ -1015,7 +1015,7 @@ _08035426: lsls r0, 2 adds r0, r1 ldrh r0, [r0, 0x10] - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag _08035442: adds r0, r4, 0 bl sub_80355B4 @@ -1028,7 +1028,7 @@ _08035442: lsls r0, 2 adds r0, r1 ldrh r0, [r0, 0x12] - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag _0803545E: ldr r0, =gUnknown_02022E10 ldr r0, [r0] @@ -1275,15 +1275,15 @@ sub_80355F8: @ 80355F8 thumb_func_start sub_8035608 sub_8035608: @ 8035608 push {lr} - bl ResetAllObjectData + bl ResetSpriteData ldr r0, =gUnknown_0831AC88 movs r1, 0 movs r2, 0 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -1303,8 +1303,8 @@ sub_8035608: @ 8035608 thumb_func_start sub_8035648 sub_8035648: @ 8035648 push {lr} - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer pop {r0} bx r0 thumb_func_end sub_8035648 @@ -1325,7 +1325,7 @@ trs_config: @ 8035658 ands r1, r0 cmp r1, 0 beq _080356A4 - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting adds r0, 0x24 movs r1, 0x1 strb r1, [r0] @@ -1339,12 +1339,12 @@ trs_config: @ 8035658 b _080356AA .pool _080356A4: - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting adds r0, 0x24 strb r1, [r0] _080356AA: ldr r1, =gUnknown_0831ABA0 - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting adds r0, 0x24 ldrb r0, [r0] lsls r0, 2 @@ -1817,7 +1817,7 @@ _08035B92: b _08035C36 .pool _08035BCC: - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting adds r0, 0x25 ldrb r0, [r0] cmp r5, r0 @@ -1882,7 +1882,7 @@ _08035C36: thumb_func_start sub_8035C4C sub_8035C4C: @ 8035C4C push {lr} - ldr r0, =gUnknown_0202433A + ldr r0, =gBattleOutcome ldrb r2, [r0] cmp r2, 0x3 bne _08035C68 @@ -1901,7 +1901,7 @@ _08035C68: cmp r2, 0x1 bne _08035CAE ldr r2, =gUnknown_020229E8 - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting adds r0, 0x25 ldrb r1, [r0] lsls r0, r1, 3 @@ -1925,7 +1925,7 @@ _08035CA4: b _08035CFC _08035CAE: ldr r2, =gUnknown_020229E8 - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting adds r0, 0x25 ldrb r1, [r0] lsls r0, r1, 3 @@ -1951,7 +1951,7 @@ _08035CE2: cmp r2, 0x1 bne _08035D20 ldr r2, =gUnknown_020229E8 - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting adds r0, 0x25 ldrb r1, [r0] lsls r0, r1, 3 @@ -1972,7 +1972,7 @@ _08035CFC: .pool _08035D20: ldr r2, =gUnknown_020229E8 - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting adds r0, 0x25 ldrb r1, [r0] lsls r0, r1, 3 @@ -2114,7 +2114,7 @@ _08035E3A: bge _08035DBC b _08035EA6 _08035E44: - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting adds r0, 0x25 ldrb r5, [r0] movs r0, 0x1 @@ -2173,7 +2173,7 @@ _08035EA6: .pool _08035EC4: ldr r0, =0x00002710 - bl AllocObjectPalette + bl AllocSpritePalette lsls r0, 24 ldr r2, =gPlttBufferUnfaded lsrs r0, 19 @@ -2189,8 +2189,8 @@ _08035EC4: movs r1, 0x6F movs r2, 0x50 movs r3, 0 - bl AddObjectToFront - ldr r4, =gUnknown_0202449C + bl CreateSprite + ldr r4, =gBattleStruct ldr r1, [r4] adds r1, 0x7D strb r0, [r1] @@ -2198,11 +2198,11 @@ _08035EC4: movs r1, 0x81 movs r2, 0x50 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r1, [r4] adds r1, 0x7E strb r0, [r1] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r0, [r4] adds r0, 0x7D ldrb r1, [r0] @@ -2356,11 +2356,11 @@ _08036070: bl sub_8035C4C _0803607C: movs r0, 0x78 - bl audio_play + bl PlaySE adds r0, r7, 0 bl DestroyTask - ldr r4, =gUnknown_02020630 - ldr r5, =gUnknown_0202449C + ldr r4, =gSprites + ldr r5, =gBattleStruct ldr r0, [r5] adds r0, 0x7D ldrb r0, [r0] @@ -3099,7 +3099,7 @@ _080367B4: ldr r0, =intro_end bl SetMainCallback2 _080367BA: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0 strb r0, [r1] b _080367D0 @@ -3240,11 +3240,11 @@ _080368BE: _080368FE: bl c2_berry_program_update_menu bl sub_8035AA4 - bl ResetAllObjectData + bl ResetSpriteData bl ResetTasks bl sub_8036154 - bl ResetObjectPaletteAllocator - ldr r1, =gUnknown_0300301C + bl FreeAllSpritePalettes + ldr r1, =gReservedSpritePaletteCount movs r0, 0x4 strb r0, [r1] ldr r0, =vblank_cb_08078BB4 @@ -3336,7 +3336,7 @@ _08036A10: cmp r4, r5 ble _08036A10 movs r1, 0 - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication strb r1, [r0] add sp, 0x4 pop {r4,r5} @@ -3429,7 +3429,7 @@ _08036AEE: mov r2, r9 cmp r2, 0x5 ble _08036A72 - ldr r4, =gUnknown_0202449C + ldr r4, =gBattleStruct ldr r0, [r4] movs r1, 0xC1 lsls r1, 1 @@ -3461,7 +3461,7 @@ _08036AEE: thumb_func_start sub_8036B44 sub_8036B44: @ 8036B44 push {r4-r7,lr} - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r5, [r0] movs r0, 0xC2 lsls r0, 1 @@ -3573,7 +3573,7 @@ _08036C20: cmp r0, 0x1 bne _08036CDC movs r5, 0 - ldr r3, =gUnknown_02024404 + ldr r3, =gEnigmaBerries ldr r0, =gSaveBlock1Ptr mov r8, r0 adds r6, r3, 0 @@ -3659,7 +3659,7 @@ _08036CDC: bl GetBerryInfo adds r6, r0, 0 movs r5, 0 - ldr r4, =gUnknown_02024404 + ldr r4, =gEnigmaBerries adds r7, r4, 0 adds r7, 0x38 adds r3, r4, 0 @@ -3729,7 +3729,7 @@ _08036D66: _08036D6E: ldr r0, =gUnknown_020229E8 mov r12, r0 - ldr r3, =gUnknown_02024404 + ldr r3, =gEnigmaBerries adds r6, r3, 0 movs r1, 0x8 adds r1, r6 @@ -3792,7 +3792,7 @@ _08036DC0: .pool _08036DF0: movs r5, 0 - ldr r4, =gUnknown_02024404 + ldr r4, =gEnigmaBerries mov r9, r4 _08036DF6: lsls r0, r5, 8 @@ -3845,7 +3845,7 @@ _08036E1C: orrs r0, r4 strb r0, [r1] movs r4, 0 - ldr r0, =gUnknown_02024404 + ldr r0, =gEnigmaBerries adds r0, 0x8 adds r2, r0 adds r3, r0 @@ -4029,18 +4029,18 @@ _08036FA0: sub_8036FAC: @ 8036FAC push {r4-r6,lr} bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl link_get_multiplayer_id lsls r0, 24 lsrs r6, r0, 24 - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting adds r0, 0x25 strb r6, [r0] movs r0, 0x1 adds r5, r6, 0 eors r5, r0 - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication ldrb r0, [r0] cmp r0, 0x12 bls _08036FD8 @@ -4087,7 +4087,7 @@ _0803703C: movs r0, 0x3 bl ShowBg bl sub_805EF14 - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x1 strb r0, [r1] _08037068: @@ -4118,7 +4118,7 @@ _08037098: lsls r0, 24 cmp r0, 0 beq _080370EE - ldr r4, =gUnknown_0202449C + ldr r4, =gBattleStruct ldr r0, [r4] movs r5, 0xC0 lsls r5, 1 @@ -4151,7 +4151,7 @@ _080370D8: adds r1, r5 movs r2, 0x20 bl link_0800A448 - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication strb r6, [r0] _080370EE: ldr r0, =gLinkVSyncDisabled @@ -4175,7 +4175,7 @@ _08037124: orrs r1, r0 str r1, [r2] _08037134: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0xF strb r0, [r1] bl berry_801017C @@ -4211,7 +4211,7 @@ _08037152: movs r0, 0x5A strh r0, [r2, 0xC] strh r1, [r2, 0x12] - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r3, [r0] movs r4, 0xC1 lsls r4, 1 @@ -4236,7 +4236,7 @@ _08037152: ldrh r0, [r4] bl sub_8185F90 bl sub_8068AA4 - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication b _08037446 .pool _080371D8: @@ -4252,7 +4252,7 @@ _080371E4: ldr r1, =gPlayerParty movs r2, 0xC8 bl link_0800A448 - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication b _08037446 .pool _08037200: @@ -4270,7 +4270,7 @@ _0803720E: adds r1, r2 movs r2, 0xC8 bl memcpy - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication b _08037446 .pool _08037230: @@ -4286,7 +4286,7 @@ _0803723C: ldr r1, =gUnknown_020245B4 movs r2, 0xC8 bl link_0800A448 - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication b _08037446 .pool _08037258: @@ -4304,7 +4304,7 @@ _08037266: adds r1, r2 movs r2, 0xC8 bl memcpy - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication b _08037446 .pool _08037288: @@ -4320,7 +4320,7 @@ _08037294: ldr r1, =gUnknown_0202467C movs r2, 0xC8 bl link_0800A448 - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication b _08037446 .pool _080372B0: @@ -4356,13 +4356,13 @@ _080372BE: adds r0, r4, 0 adds r0, 0x64 bl shedinja_something - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication b _08037446 .pool _08037318: bl sub_8032768 bl sub_8184E58 - ldr r2, =gUnknown_02024332 + ldr r2, =gBattleCommunication movs r0, 0 strb r0, [r2, 0x1] strb r0, [r2, 0x2] @@ -4416,7 +4416,7 @@ _08037378: ldr r1, =gUnknown_0203BD2C movs r2, 0x4 bl link_0800A448 - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication b _08037446 .pool _080373A0: @@ -4439,7 +4439,7 @@ _080373A0: movs r2, 0x4 bl memcpy _080373CA: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication b _08037446 .pool _080373E0: @@ -4469,14 +4469,14 @@ _080373E0: b _0803744C .pool _0803742C: - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] movs r1, 0x1 strb r1, [r0, 0x1] _08037438: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication ldrb r0, [r1, 0x1] subs r0, 0x1 strb r0, [r1, 0x1] @@ -4499,18 +4499,18 @@ sub_8037458: @ 8037458 push {r4-r7,lr} sub sp, 0x4 bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl link_get_multiplayer_id lsls r0, 24 lsrs r6, r0, 24 - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting adds r0, 0x25 strb r6, [r0] movs r0, 0x1 adds r7, r6, 0 eors r7, r0 - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication ldrb r0, [r0] cmp r0, 0x10 bls _08037486 @@ -4555,7 +4555,7 @@ _080374E0: movs r0, 0x3 bl ShowBg bl sub_805EF14 - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x1 strb r0, [r1] _0803750C: @@ -4619,7 +4619,7 @@ _08037530: lsls r0, 24 cmp r0, 0 beq _080375C4 - ldr r4, =gUnknown_0202449C + ldr r4, =gBattleStruct ldr r0, [r4] movs r5, 0xC0 lsls r5, 1 @@ -4640,7 +4640,7 @@ _08037530: adds r1, r5 movs r2, 0x20 bl link_0800A448 - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x2 strb r0, [r1] _080375C4: @@ -4665,7 +4665,7 @@ _080375FC: orrs r1, r0 str r1, [r2] _0803760C: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0xD strb r0, [r1] bl berry_801017C @@ -4983,7 +4983,7 @@ _0803788A: _08037908: bl sub_8032768 bl sub_8184E58 - ldr r2, =gUnknown_02024332 + ldr r2, =gBattleCommunication movs r0, 0 strb r0, [r2, 0x1] strb r0, [r2, 0x2] @@ -5035,7 +5035,7 @@ _0803795C: _08037982: bl memcpy _08037986: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] @@ -5200,12 +5200,12 @@ _08037B02: bl link_get_multiplayer_id lsls r0, 24 lsrs r7, r0, 24 - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting adds r0, 0x25 movs r2, 0 mov r8, r2 strb r7, [r0] - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] adds r1, r0, 0 adds r1, 0xB4 @@ -5213,9 +5213,9 @@ _08037B02: adds r0, 0xAC mov r10, r0 bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad - ldr r5, =gUnknown_02024332 + bl AnimateSprites + bl BuildOamBuffer + ldr r5, =gBattleCommunication ldrb r0, [r5] cmp r0, 0x1 beq _08037BA4 @@ -5334,7 +5334,7 @@ _08037C1E: cmp r5, r9 blt _08037BC6 _08037C2E: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] @@ -5435,7 +5435,7 @@ intro_end: @ 8037D2C push {r4-r7,lr} mov r7, r8 push {r7} - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] movs r1, 0xB4 adds r1, r0 @@ -5443,9 +5443,9 @@ intro_end: @ 8037D2C adds r7, r0, 0 adds r7, 0xAC bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad - ldr r5, =gUnknown_02024332 + bl AnimateSprites + bl BuildOamBuffer + ldr r5, =gBattleCommunication ldrb r0, [r5] cmp r0, 0 beq _08037D64 @@ -5517,13 +5517,13 @@ sub_8037DF4: @ 8037DF4 bl link_get_multiplayer_id lsls r0, 24 lsrs r7, r0, 24 - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting adds r0, 0x25 strb r7, [r0] bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad - ldr r0, =gUnknown_02024332 + bl AnimateSprites + bl BuildOamBuffer + ldr r0, =gBattleCommunication ldrb r0, [r0] cmp r0, 0xA bls _08037E20 @@ -5562,7 +5562,7 @@ _08037E64: movs r0, 0x3 bl ShowBg bl sub_805EF14 - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x1 strb r0, [r1] _08037E90: @@ -5592,7 +5592,7 @@ _08037EBE: lsls r0, 24 cmp r0, 0 beq _08037F02 - ldr r4, =gUnknown_0202449C + ldr r4, =gBattleStruct ldr r0, [r4] movs r5, 0xC0 lsls r5, 1 @@ -5613,7 +5613,7 @@ _08037EBE: adds r1, r5 movs r2, 0x20 bl link_0800A448 - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] @@ -5639,7 +5639,7 @@ _08037F30: orrs r1, r0 str r1, [r2] _08037F40: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x7 strb r0, [r1] bl berry_801017C @@ -5742,8 +5742,8 @@ _0803800C: subs r6, 0x1 cmp r6, 0 bge _08037FA4 - bl zero_enemy_party_data - ldr r1, =gUnknown_02024332 + bl ZeroEnemyPartyMons + ldr r1, =gBattleCommunication ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] @@ -6070,7 +6070,7 @@ _08038242: _080382CC: bl sub_8032768 bl sub_8184E58 - ldr r3, =gUnknown_02024332 + ldr r3, =gBattleCommunication movs r0, 0 strb r0, [r3, 0x1] strb r0, [r3, 0x2] @@ -6118,7 +6118,7 @@ _0803832C: lsls r0, 24 cmp r0, 0 beq _080383F8 - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r4, [r0] movs r0, 0xC0 lsls r0, 1 @@ -6167,7 +6167,7 @@ _08038386: movs r2, 0x4 bl memcpy _080383A6: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] @@ -6216,8 +6216,8 @@ _080383F8: sub_8038420: @ 8038420 push {lr} sub sp, 0x4 - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl RunTextPrinters bl UpdatePaletteFade bl RunTasks @@ -6238,8 +6238,8 @@ sub_8038420: @ 8038420 lsls r0, 24 cmp r0, 0 beq _08038482 - ldr r2, =gUnknown_020375F0 - ldr r1, =gUnknown_0202433A + ldr r2, =gScriptResult + ldr r1, =gBattleOutcome movs r0, 0x5 strb r0, [r1] movs r0, 0x5 @@ -6278,7 +6278,7 @@ sub_803849C: @ 803849C negs r0, r0 ands r0, r2 strb r0, [r1] - bl zero_enemy_party_data + bl ZeroEnemyPartyMons movs r0, 0x5A bl m4aSongNumStop bl sub_805F094 @@ -6452,7 +6452,7 @@ _08038610: _08038624: cmp r2, 0x1 bne _0803862C - bl zero_enemy_party_data + bl ZeroEnemyPartyMons _0803862C: ldr r0, [r4] movs r1, 0x80 @@ -6712,7 +6712,7 @@ _08038820: adds r1, 0xD adds r0, r5, 0 adds r2, r4, 0 - bl pokemon_setattr + bl SetMonData adds r1, r6, 0 adds r1, 0x11 ldrh r0, [r4] @@ -6722,7 +6722,7 @@ _08038820: ldr r0, =gBattleMoves + 0x4 @ PP offset adds r2, r0 adds r0, r5, 0 - bl pokemon_setattr + bl SetMonData adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 @@ -6799,7 +6799,7 @@ _08038896: adds r0, r4, 0 movs r1, 0xC adds r2, r5, 0 - bl pokemon_setattr + bl SetMonData b _080389AC .pool _080388E8: @@ -6873,7 +6873,7 @@ _0803892A: adds r0, r4, 0 movs r1, 0xC adds r2, r5, 0 - bl pokemon_setattr + bl SetMonData movs r6, 0 adds r5, r4, 0 mov r0, r8 @@ -6884,7 +6884,7 @@ _08038982: adds r1, 0xD adds r0, r5, 0 adds r2, r4, 0 - bl pokemon_setattr + bl SetMonData adds r1, r6, 0 adds r1, 0x11 ldrh r0, [r4] @@ -6894,7 +6894,7 @@ _08038982: ldr r0, =gBattleMoves + 0x4 @ PP offset adds r2, r0 adds r0, r5, 0 - bl pokemon_setattr + bl SetMonData adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 @@ -7021,8 +7021,8 @@ _08038A3A: ldrh r1, [r0] movs r0, 0x46 bl SetGpuReg - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_80BA0A8 pop {r0} @@ -7079,13 +7079,13 @@ _08038B36: beq _08038B6A ldr r4, =0x00002710 adds r0, r4, 0 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag adds r0, r4, 0 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag adds r0, r5, 0 - bl obj_free_rotscale_entry + bl FreeSpriteOamMatrix adds r0, r5, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _08038B6A: pop {r4,r5} pop {r0} @@ -7098,11 +7098,11 @@ sub_8038B74: @ 8038B74 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim ldr r0, =sub_8038B04 str r0, [r4, 0x1C] movs r0, 0x68 - bl audio_play + bl PlaySE pop {r4} pop {r0} bx r0 @@ -7124,7 +7124,7 @@ sub_8038B94: @ 8038B94 str r0, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting adds r0, 0x25 ldrb r2, [r0] ldr r0, =gBattleTypeFlags @@ -7445,14 +7445,14 @@ _08038E1A: movs r2, 0x40 bl LoadCompressedPalette bl sub_803570C - bl ResetAllObjectData + bl ResetSpriteData bl ResetTasks bl sub_8036154 movs r0, 0x4A movs r1, 0x37 bl SetGpuReg - bl ResetObjectPaletteAllocator - ldr r1, =gUnknown_0300301C + bl FreeAllSpritePalettes + ldr r1, =gReservedSpritePaletteCount movs r0, 0x4 strb r0, [r1] ldr r0, =vblank_cb_08078BB4 @@ -7477,7 +7477,7 @@ _08038E1A: bl sub_8038B94 ldr r0, =sub_8038F14 bl SetMainCallback2 - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication strb r4, [r0] _08038EB6: add sp, 0x4 @@ -7491,8 +7491,8 @@ _08038EB6: sub_8038F14: @ 8038F14 push {lr} bl sub_8038F34 - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl RunTextPrinters bl UpdatePaletteFade bl RunTasks @@ -7504,7 +7504,7 @@ sub_8038F14: @ 8038F14 sub_8038F34: @ 8038F34 push {r4-r6,lr} sub sp, 0x8 - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication ldrb r1, [r0] adds r4, r0, 0 cmp r1, 0x9 @@ -7536,7 +7536,7 @@ _08038F80: bl ShowBg movs r0, 0x2 bl ShowBg - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0xFF strb r0, [r1, 0x1] b _08039174 @@ -7740,7 +7740,7 @@ _08039166: bne _08039172 bl sub_800AC34 _08039172: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication _08039174: ldrb r0, [r1] adds r0, 0x1 @@ -7923,10 +7923,10 @@ _080392FE: adds r4, 0x1 cmp r4, 0x1 ble _080392FE - bl ResetAllObjectData + bl ResetSpriteData bl ResetTasks - bl ResetObjectPaletteAllocator - ldr r1, =gUnknown_0300301C + bl FreeAllSpritePalettes + ldr r1, =gReservedSpritePaletteCount movs r0, 0x4 strb r0, [r1] ldr r0, =vblank_cb_08078BB4 @@ -7941,7 +7941,7 @@ _080392FE: movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication strb r4, [r0] add sp, 0x8 pop {r4} @@ -7954,8 +7954,8 @@ _080392FE: sub_803937C: @ 803937C push {lr} bl sub_803939C - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl RunTextPrinters bl UpdatePaletteFade bl RunTasks @@ -7967,7 +7967,7 @@ sub_803937C: @ 803937C sub_803939C: @ 803939C push {r4,r5,lr} sub sp, 0x4 - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication ldrb r1, [r0] adds r4, r0, 0 cmp r1, 0xC @@ -8002,7 +8002,7 @@ _080393F4: bl ShowBg movs r0, 0x2 bl ShowBg - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication ldrb r0, [r1] adds r0, 0x1 b _0803975C @@ -8024,7 +8024,7 @@ _08039414: movs r1, 0x5 bl CreateTask _08039434: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication ldrb r0, [r1] adds r0, 0x1 b _0803975C @@ -8037,7 +8037,7 @@ _08039450: beq _0803945E b _0803975E _0803945E: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication ldrb r0, [r1] adds r0, 0x1 b _0803975C @@ -8054,7 +8054,7 @@ _0803947E: ldr r0, =gUnknown_085CD28F movs r1, 0 bl battle_show_message_maybe - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication ldrb r0, [r1] adds r0, 0x1 b _0803975C @@ -8077,7 +8077,7 @@ _080394AC: ldr r0, =gUnknown_085CCABB movs r1, 0xC bl battle_show_message_maybe - ldr r4, =gUnknown_02024332 + ldr r4, =gBattleCommunication movs r0, 0x1 strb r0, [r4, 0x1] bl sub_8056B74 @@ -8096,7 +8096,7 @@ _080394D8: b _0803975E _080394EC: movs r0, 0x5 - bl audio_play + bl PlaySE ldrb r0, [r4, 0x1] bl sub_8056BAC movs r0, 0 @@ -8113,7 +8113,7 @@ _08039500: b _0803975E _08039510: movs r0, 0x5 - bl audio_play + bl PlaySE ldrb r0, [r4, 0x1] bl sub_8056BAC movs r0, 0x1 @@ -8128,8 +8128,8 @@ _08039526: cmp r0, 0 beq _08039560 movs r0, 0x5 - bl audio_play - ldr r4, =gUnknown_02024332 + bl PlaySE + ldr r4, =gBattleCommunication ldrb r0, [r4, 0x1] cmp r0, 0 beq _08039540 @@ -8155,8 +8155,8 @@ _08039560: b _0803975E _0803956A: movs r0, 0x5 - bl audio_play - ldr r1, =gUnknown_02024332 + bl PlaySE + ldr r1, =gBattleCommunication ldrb r0, [r1] adds r0, 0x1 b _0803975C @@ -8188,7 +8188,7 @@ _0803958A: movs r1, 0 bl battle_show_message_maybe _080395B4: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication ldrb r0, [r1] adds r0, 0x1 b _0803975C @@ -8216,7 +8216,7 @@ _080395DA: bne _080395F6 bl sub_800AC34 _080395F6: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication ldrb r0, [r1] adds r0, 0x1 b _0803975C @@ -8268,7 +8268,7 @@ _08039678: cmp r0, 0x1 bne _080396A0 movs r0, 0x37 - bl audio_play + bl PlaySE ldr r0, =gUnknown_085CD2CB _08039686: bl get_battle_strings_ @@ -8294,7 +8294,7 @@ _080396A8: lsls r0, 16 cmp r0, 0 bne _0803975E - ldr r4, =gUnknown_02024332 + ldr r4, =gBattleCommunication ldrb r0, [r4, 0x1] subs r0, 0x1 strb r0, [r4, 0x1] @@ -8355,7 +8355,7 @@ _0803974A: movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x20 strb r0, [r1, 0x1] movs r0, 0x8 @@ -8401,7 +8401,7 @@ shedinja_something: @ 803976C adds r0, r4, 0 movs r1, 0x3 adds r2, r5, 0 - bl pokemon_setattr + bl SetMonData _080397B4: add sp, 0x10 pop {r4,r5} @@ -8431,7 +8431,7 @@ oac_poke_opponent: @ 80397DC ldr r1, =sub_803980C str r1, [r0, 0x1C] movs r1, 0 - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent movs r0, 0x80 lsls r0, 10 ldr r1, =0x00002108 @@ -8495,7 +8495,7 @@ sub_8039838: @ 8039838 str r0, [r4, 0x1C] adds r0, r4, 0 movs r1, 0 - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent movs r0, 0x80 lsls r0, 10 ldr r1, =0x00002108 @@ -8626,7 +8626,7 @@ _0803995C: mov r0, r9 ldrh r4, [r0, 0x32] _08039960: - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r6, 1 adds r5, r0, r1 ldrh r0, [r5] @@ -8755,15 +8755,15 @@ sub_8039A48: @ 8039A48 cmp r0, 0 bge _08039A7C adds r0, r4, 0 - bl obj_free_rotscale_entry + bl FreeSpriteOamMatrix adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite b _08039AC8 _08039A7C: ldrh r0, [r4, 0x2E] lsls r0, 24 lsrs r0, 24 - bl battle_get_per_side_status + bl GetBankIdentity ldr r1, =gUnknown_020244D4 ldr r1, [r1] lsls r0, 24 @@ -8796,7 +8796,7 @@ _08039AAE: adds r1, r0 ldrb r1, [r1] adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim _08039AC8: pop {r4} pop {r0} @@ -8887,7 +8887,7 @@ sub_8039B58: @ 8039B58 ands r0, r1 cmp r0, 0 beq _08039BA0 - ldr r0, =gUnknown_02024280 + ldr r0, =gHitMarker ldr r0, [r0] movs r1, 0x80 ands r0, r1 @@ -8907,7 +8907,7 @@ _08039B80: beq _08039B94 adds r0, r4, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim _08039B94: ldrh r1, [r4, 0x32] adds r0, r4, 0 @@ -9062,7 +9062,7 @@ _08039C76: movs r2, 0x2 orrs r0, r2 strb r0, [r1] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r3, r5, 4 adds r0, r3, r5 lsls r0, 2 @@ -9071,7 +9071,7 @@ _08039C76: b _08039CFE .pool _08039CD0: - ldr r0, =gUnknown_020241E4 + ldr r0, =gBankSpriteIds adds r0, r4, r0 ldrb r7, [r0] ldr r2, =gUnknown_020244D0 @@ -9088,7 +9088,7 @@ _08039CD0: movs r2, 0x4 orrs r0, r2 strb r0, [r1] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r3, r5, 4 adds r0, r3, r5 lsls r0, 2 @@ -9150,7 +9150,7 @@ dp11b_obj_free: @ 8039D48 ands r0, r1 cmp r0, 0 beq _08039DEA - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldrb r1, [r3, 0x2] lsls r0, r1, 4 adds r0, r1 @@ -9159,7 +9159,7 @@ dp11b_obj_free: @ 8039D48 ldrh r1, [r0, 0x34] lsls r1, 24 lsrs r4, r1, 24 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, [r6] ldr r1, [r0, 0x4] adds r1, r5, r1 @@ -9181,7 +9181,7 @@ _08039D9C: ands r0, r1 cmp r0, 0 beq _08039DEA - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldrb r1, [r3, 0x3] lsls r0, r1, 4 adds r0, r1 @@ -9190,7 +9190,7 @@ _08039D9C: ldrh r1, [r0, 0x34] lsls r1, 24 lsrs r4, r1, 24 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, [r6] ldr r1, [r0, 0x4] adds r1, r5, r1 @@ -9200,7 +9200,7 @@ _08039D9C: _08039DD6: ands r0, r2 strb r0, [r1] - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r4, 4 adds r1, r4 lsls r1, 2 @@ -9236,7 +9236,7 @@ _08039E14: movs r2, 0x32 ldrsh r1, [r4, r2] bl Sin - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r5, 4 adds r1, r5 lsls r1, 2 @@ -9300,7 +9300,7 @@ sub_8039E84: @ 8039E84 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r0, =sub_8039E60 str r0, [r4, 0x1C] pop {r4} @@ -9343,10 +9343,10 @@ nullsub_20: @ 8039EC8 sub_8039ECC: @ 8039ECC push {lr} bl sub_8039F40 - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0 strb r0, [r1, 0x1] - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =bc_8012FAC str r0, [r1] pop {r0} @@ -9357,17 +9357,17 @@ sub_8039ECC: @ 8039ECC thumb_func_start sub_8039EF0 sub_8039EF0: @ 8039EF0 push {r4,r5,lr} - ldr r0, =gUnknown_03005D04 + ldr r0, =gBattleMainFunc ldr r0, [r0] bl _call_via_r0 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank movs r0, 0 strb r0, [r1] - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r0, 0 beq _08039F2A - ldr r5, =gUnknown_03005D60 + ldr r5, =gBattleBankFunc adds r4, r1, 0 _08039F0C: ldrb r0, [r4] @@ -9378,7 +9378,7 @@ _08039F0C: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] @@ -9411,12 +9411,12 @@ sub_8039F40: @ 8039F40 mov r8, r0 ldr r1, =gUnknown_02024248 mov r12, r1 - ldr r5, =gUnknown_020242BC + ldr r5, =gDisableStructs movs r4, 0 ldr r7, =gUnknown_02024240 ldr r6, =gUnknown_02024268 _08039F70: - ldr r0, =gUnknown_020242AC + ldr r0, =gStatuses3 adds r0, r4, r0 str r3, [r0] movs r1, 0 @@ -9445,7 +9445,7 @@ _08039F78: strb r0, [r1] strh r3, [r6] strh r3, [r7] - ldr r1, =gUnknown_020244A8 + ldr r1, =gBattleResources ldr r0, [r1] ldr r0, [r0, 0x4] adds r0, r4 @@ -9466,7 +9466,7 @@ _08039F78: cmp r2, 0x3 ble _08039F70 movs r5, 0 - ldr r3, =gUnknown_02024294 + ldr r3, =gSideTimers ldr r4, =gUnknown_0202428E movs r2, 0x1 _08039FD8: @@ -9484,9 +9484,9 @@ _08039FDC: cmp r2, 0 bge _08039FD8 movs r1, 0 - ldr r2, =gUnknown_0202420B + ldr r2, =gBankAttacker strb r1, [r2] - ldr r0, =gEnemyMonIndex + ldr r0, =gBankTarget strb r1, [r0] ldr r2, =gBattleWeather strh r1, [r2] @@ -9499,7 +9499,7 @@ _0803A004: adds r2, 0x1 cmp r2, 0x2B bls _0803A004 - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker movs r0, 0 str r0, [r2] ldr r0, =gBattleTypeFlags @@ -9532,15 +9532,15 @@ _0803A090: lsls r0, 24 cmp r0, 0 beq _0803A0AE - ldr r1, =gUnknown_02024280 + ldr r1, =gHitMarker ldr r0, [r1] movs r1, 0x80 orrs r0, r1 - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker _0803A0AC: str r0, [r2] _0803A0AE: - ldr r3, =gUnknown_02024474 + ldr r3, =gBattleScripting ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x15] @@ -9550,14 +9550,14 @@ _0803A0AE: strb r0, [r3, 0x1D] ldr r0, =gUnknown_02024212 strb r1, [r0] - ldr r0, =gUnknown_0202433A + ldr r0, =gBattleOutcome strb r1, [r0] - ldr r0, =gUnknown_02024068 + ldr r0, =gBattleExecBuffer str r1, [r0] ldr r0, =gUnknown_0202432E movs r2, 0 strh r1, [r0] - ldr r1, =gUnknown_020244A8 + ldr r1, =gBattleResources ldr r0, [r1] ldr r0, [r0, 0x8] adds r0, 0x20 @@ -9571,11 +9571,11 @@ _0803A0AE: ldr r7, =gUnknown_020243FC ldr r0, =gUnknown_03005D54 mov r8, r0 - ldr r1, =gUnknown_02024210 + ldr r1, =gAbsentBankFlags mov r9, r1 ldr r2, =gEnemyParty mov r10, r2 - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r2, 0 adds r0, r1, 0x7 _0803A0FA: @@ -9594,7 +9594,7 @@ _0803A0FA: strb r4, [r0] mov r1, r9 strb r4, [r1] - ldr r5, =gUnknown_0202449C + ldr r5, =gBattleStruct ldr r0, [r5] adds r0, 0x6C strb r4, [r0] @@ -9670,7 +9670,7 @@ _0803A16A: cmp r2, 0x7 ble _0803A16A movs r2, 0 - ldr r4, =gUnknown_0202449C + ldr r4, =gBattleStruct movs r3, 0xA5 lsls r3, 2 movs r1, 0x6 @@ -9713,7 +9713,7 @@ _0803A1E4: ands r0, r2 orrs r0, r1 strb r0, [r3, 0x5] - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct ldr r0, [r2] movs r1, 0xA8 lsls r1, 2 @@ -9742,8 +9742,8 @@ sub_803A284: @ 803A284 mov r5, r8 push {r5-r7} sub sp, 0x20 - ldr r4, =gUnknown_020242BC - ldr r5, =gUnknown_02024064 + ldr r4, =gDisableStructs + ldr r5, =gActiveBank ldrb r1, [r5] lsls r0, r1, 3 subs r0, r1 @@ -9757,7 +9757,7 @@ sub_803A284: @ 803A284 ldr r0, [r0] str r0, [r1] ldr r2, =gBattleMoves - ldr r3, =gUnknown_020241EA + ldr r3, =gCurrentMove ldrh r1, [r3] lsls r0, r1, 1 adds r0, r1 @@ -9766,7 +9766,7 @@ sub_803A284: @ 803A284 ldrb r0, [r0] mov r12, r4 mov r9, r5 - ldr r6, =gUnknown_020242AC + ldr r6, =gStatuses3 mov r10, r6 cmp r0, 0x7F beq _0803A35C @@ -9786,14 +9786,14 @@ _0803A2D4: cmp r5, 0x7 ble _0803A2D4 movs r5, 0 - ldr r7, =gUnknown_0202406C + ldr r7, =gNoOfAllBanks ldrb r7, [r7] cmp r5, r7 bge _0803A348 ldr r0, =gUnknown_020240D4 mov r8, r0 - ldr r4, =gUnknown_020242BC - ldr r3, =gUnknown_020242AC + ldr r4, =gDisableStructs + ldr r3, =gStatuses3 _0803A2F6: movs r0, 0x58 muls r0, r5 @@ -9806,7 +9806,7 @@ _0803A2F6: cmp r0, 0 beq _0803A31A ldrb r0, [r4, 0x14] - ldr r6, =gUnknown_02024064 + ldr r6, =gActiveBank ldrb r6, [r6] cmp r0, r6 bne _0803A31A @@ -9820,7 +9820,7 @@ _0803A31A: cmp r0, 0 beq _0803A33A ldrb r0, [r4, 0x15] - ldr r7, =gUnknown_02024064 + ldr r7, =gActiveBank ldrb r7, [r7] cmp r0, r7 bne _0803A33A @@ -9834,12 +9834,12 @@ _0803A33A: adds r4, 0x1C adds r3, 0x4 adds r5, 0x1 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r5, r0 blt _0803A2F6 _0803A348: - ldr r1, =gUnknown_020241EA + ldr r1, =gCurrentMove ldrh r0, [r1] lsls r1, r0, 1 adds r1, r0 @@ -9870,7 +9870,7 @@ _0803A35C: ands r0, r2 str r0, [r1] movs r5, 0 - ldr r6, =gUnknown_0202406C + ldr r6, =gNoOfAllBanks ldrb r6, [r6] cmp r5, r6 bge _0803A430 @@ -9878,16 +9878,16 @@ _0803A35C: movs r6, 0 _0803A390: ldrb r0, [r7] - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 lsls r0, r5, 24 lsrs r0, 24 - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 cmp r4, r0 beq _0803A3D0 - ldr r1, =gUnknown_020242AC + ldr r1, =gStatuses3 lsls r0, r5, 2 adds r2, r0, r1 ldr r1, [r2] @@ -9895,7 +9895,7 @@ _0803A390: ands r0, r1 cmp r0, 0 beq _0803A3D0 - ldr r0, =gUnknown_020242BC + ldr r0, =gDisableStructs adds r0, r6, r0 ldrb r0, [r0, 0x15] ldrb r3, [r7] @@ -9910,13 +9910,13 @@ _0803A390: _0803A3D0: adds r6, 0x1C adds r5, 0x1 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r5, r0 blt _0803A390 - ldr r6, =gUnknown_020242BC + ldr r6, =gDisableStructs mov r12, r6 - ldr r7, =gUnknown_02024064 + ldr r7, =gActiveBank mov r9, r7 b _0803A430 .pool @@ -9937,17 +9937,17 @@ _0803A414: str r1, [r0] _0803A430: movs r5, 0 - ldr r3, =gUnknown_0202449C + ldr r3, =gBattleStruct mov r8, r3 ldr r6, =gUnknown_020244AC mov r10, r6 - ldr r7, =gUnknown_0202406C + ldr r7, =gNoOfAllBanks ldrb r7, [r7] cmp r5, r7 bge _0803A490 ldr r3, =gUnknown_020240D4 ldr r7, =gBitTable - ldr r6, =gUnknown_02024064 + ldr r6, =gActiveBank _0803A448: movs r0, 0x58 muls r0, r5 @@ -9983,7 +9983,7 @@ _0803A466: str r1, [r4] _0803A486: adds r5, 0x1 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r5, r0 blt _0803A448 @@ -10012,7 +10012,7 @@ _0803A4B4: adds r5, 0x1 cmp r5, 0x1B bls _0803A4B4 - ldr r7, =gUnknown_020241EA + ldr r7, =gCurrentMove ldrh r0, [r7] lsls r1, r0, 1 adds r1, r0 @@ -10210,7 +10210,7 @@ _0803A540: bics r0, r2 strb r0, [r1] movs r5, 0 - ldr r7, =gUnknown_0202406C + ldr r7, =gNoOfAllBanks ldrb r7, [r7] cmp r5, r7 bge _0803A6B4 @@ -10224,11 +10224,11 @@ _0803A656: lsls r0, r5, 24 lsrs r0, 24 str r3, [sp, 0x1C] - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 ldr r3, [sp, 0x1C] ldrb r0, [r3] - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 ldr r3, [sp, 0x1C] @@ -10260,7 +10260,7 @@ _0803A68C: adds r0, 0xE1 strb r6, [r0] adds r5, 0x1 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r5, r0 blt _0803A656 @@ -10282,7 +10282,7 @@ _0803A6B4: adds r0, r1 adds r0, 0xC9 strb r2, [r0] - ldr r0, =gUnknown_020244A8 + ldr r0, =gBattleResources ldr r0, [r0] ldr r1, [r0, 0x4] ldrb r0, [r3] @@ -10290,7 +10290,7 @@ _0803A6B4: adds r1, r0 movs r2, 0 str r2, [r1] - ldr r0, =gUnknown_020241EA + ldr r0, =gCurrentMove strh r2, [r0] ldr r0, [r6] adds r0, 0xDA @@ -10322,16 +10322,16 @@ sub_803A75C: @ 803A75C sub sp, 0x4 movs r5, 0 ldr r6, =gBattleMons - ldr r0, =gUnknown_020242AC + ldr r0, =gStatuses3 mov r8, r0 - ldr r1, =gUnknown_0202449C + ldr r1, =gBattleStruct mov r12, r1 ldr r2, =gUnknown_020244AC mov r9, r2 ldr r3, =gUnknown_020244B0 mov r10, r3 - ldr r7, =gUnknown_0202433C - ldr r4, =gUnknown_02024064 + ldr r7, =gProtectStructs + ldr r4, =gActiveBank movs r3, 0x58 adds r2, r6, 0 adds r2, 0x18 @@ -10345,7 +10345,7 @@ _0803A788: adds r5, 0x1 cmp r5, 0x7 ble _0803A788 - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -10354,13 +10354,13 @@ _0803A788: adds r0, r2 movs r1, 0 str r1, [r0] - ldr r3, =gUnknown_02024064 + ldr r3, =gActiveBank ldrb r0, [r3] lsls r0, 2 add r0, r8 str r1, [r0] movs r5, 0 - ldr r6, =gUnknown_0202406C + ldr r6, =gNoOfAllBanks ldrb r6, [r6] cmp r5, r6 bge _0803A830 @@ -10375,10 +10375,10 @@ _0803A7C6: ands r0, r1 cmp r0, 0 beq _0803A7E6 - ldr r2, =gUnknown_020242BC + ldr r2, =gDisableStructs adds r0, r4, r2 ldrb r0, [r0, 0x14] - ldr r6, =gUnknown_02024064 + ldr r6, =gActiveBank ldrb r6, [r6] cmp r0, r6 bne _0803A7E6 @@ -10386,7 +10386,7 @@ _0803A7C6: ands r1, r0 str r1, [r3] _0803A7E6: - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r0, [r1] lsls r0, 2 add r0, r8 @@ -10410,7 +10410,7 @@ _0803A800: ldr r0, [r2] adds r0, r5, r0 ldrb r0, [r0, 0x14] - ldr r6, =gUnknown_02024064 + ldr r6, =gActiveBank ldrb r6, [r6] cmp r0, r6 bne _0803A822 @@ -10421,17 +10421,17 @@ _0803A822: adds r3, 0x58 adds r4, 0x1C adds r5, 0x1 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r5, r0 blt _0803A7C6 _0803A830: - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r0, [r1] add r0, r9 movs r1, 0 strb r1, [r0] - ldr r2, =gUnknown_02024064 + ldr r2, =gActiveBank ldrb r0, [r2] add r0, r10 strb r1, [r0] @@ -10439,7 +10439,7 @@ _0803A830: lsls r0, r1, 3 subs r0, r1 lsls r0, 2 - ldr r3, =gUnknown_020242BC + ldr r3, =gDisableStructs adds r1, r0, r3 movs r5, 0 movs r2, 0 @@ -10449,7 +10449,7 @@ _0803A852: adds r5, 0x1 cmp r5, 0x1B bls _0803A852 - ldr r6, =gUnknown_02024064 + ldr r6, =gActiveBank ldrb r1, [r6] lsls r1, 4 adds r1, r7 @@ -10478,7 +10478,7 @@ _0803A852: adds r0, r6, 0 ands r0, r2 strb r0, [r1] - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r1, [r0] lsls r1, 4 adds r1, r7 @@ -10488,7 +10488,7 @@ _0803A852: mov r0, r10 ands r0, r2 strb r0, [r1] - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r1, [r0] lsls r1, 4 adds r1, r7 @@ -10497,7 +10497,7 @@ _0803A852: negs r0, r0 ands r0, r2 strb r0, [r1] - ldr r2, =gUnknown_02024064 + ldr r2, =gActiveBank ldrb r1, [r2] lsls r1, 4 adds r1, r7 @@ -10507,7 +10507,7 @@ _0803A852: adds r0, r5, 0 ands r0, r2 strb r0, [r1] - ldr r3, =gUnknown_02024064 + ldr r3, =gActiveBank ldrb r1, [r3] lsls r1, 4 adds r1, r7 @@ -10525,7 +10525,7 @@ _0803A852: adds r0, r3, 0 ands r0, r2 strb r0, [r1] - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r1, [r0] lsls r1, 4 adds r1, r7 @@ -10533,7 +10533,7 @@ _0803A852: mov r0, r9 ands r0, r2 strb r0, [r1, 0x1] - ldr r2, =gUnknown_02024064 + ldr r2, =gActiveBank ldrb r1, [r2] lsls r1, 4 adds r1, r7 @@ -10541,7 +10541,7 @@ _0803A852: mov r0, r8 ands r0, r2 strb r0, [r1, 0x1] - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r1, [r0] lsls r1, 4 adds r1, r7 @@ -10549,7 +10549,7 @@ _0803A852: adds r0, r6, 0 ands r0, r2 strb r0, [r1, 0x1] - ldr r2, =gUnknown_02024064 + ldr r2, =gActiveBank ldrb r1, [r2] lsls r1, 4 adds r1, r7 @@ -10558,14 +10558,14 @@ _0803A852: negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r0, [r1] lsls r0, 4 adds r0, r7 ldrb r1, [r0, 0x1] ands r5, r1 strb r5, [r0, 0x1] - ldr r2, =gUnknown_02024064 + ldr r2, =gActiveBank ldrb r0, [r2] lsls r0, 4 adds r0, r7 @@ -10592,7 +10592,7 @@ _0803A852: mov r2, r8 ands r2, r1 strb r2, [r0, 0x2] - ldr r3, =gUnknown_02024064 + ldr r3, =gActiveBank ldrb r0, [r3] lsls r0, 4 adds r0, r7 @@ -10610,7 +10610,7 @@ _0803A852: lsls r0, r1, 3 subs r0, r1 lsls r0, 2 - ldr r1, =gUnknown_020242BC + ldr r1, =gDisableStructs adds r0, r1 movs r2, 0 movs r1, 0x2 @@ -10621,7 +10621,7 @@ _0803A852: adds r0, r3 movs r3, 0 strh r2, [r0] - ldr r6, =gUnknown_02024064 + ldr r6, =gActiveBank ldrb r0, [r6] lsls r0, 1 ldr r1, =gUnknown_02024250 @@ -10632,7 +10632,7 @@ _0803A852: ldr r6, =gUnknown_02024258 adds r0, r6 strh r2, [r0] - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r0, [r1] lsls r0, 1 ldr r6, =gUnknown_02024260 @@ -10643,7 +10643,7 @@ _0803A852: ldr r1, =gUnknown_02024240 adds r0, r1 strh r2, [r0] - ldr r2, =gUnknown_02024064 + ldr r2, =gActiveBank ldrb r0, [r2] ldr r6, =gUnknown_02024270 adds r0, r6 @@ -10656,7 +10656,7 @@ _0803A852: adds r0, r1 adds r0, 0xC8 strb r3, [r0] - ldr r6, =gUnknown_02024064 + ldr r6, =gActiveBank ldrb r0, [r6] ldr r1, [r2] lsls r0, 1 @@ -10734,7 +10734,7 @@ _0803A852: bics r0, r2 strb r0, [r1] movs r5, 0 - ldr r3, =gUnknown_0202406C + ldr r3, =gNoOfAllBanks ldrb r3, [r3] cmp r5, r3 bge _0803AB02 @@ -10748,11 +10748,11 @@ _0803AAA4: lsls r0, r5, 24 lsrs r0, 24 str r3, [sp] - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 ldr r3, [sp] ldrb r0, [r3] - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 ldr r3, [sp] @@ -10784,15 +10784,15 @@ _0803AADA: adds r0, 0xE1 strb r6, [r0] adds r5, 0x1 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r5, r0 blt _0803AAA4 _0803AB02: - ldr r0, =gUnknown_020244A8 + ldr r0, =gBattleResources ldr r0, [r0] ldr r1, [r0, 0x4] - ldr r2, =gUnknown_02024064 + ldr r2, =gActiveBank ldrb r0, [r2] lsls r0, 2 adds r1, r0 @@ -10816,7 +10816,7 @@ _0803AB6C: ldrb r0, [r0, 0x6] adds r2, 0x21 strb r0, [r2] - ldr r6, =gUnknown_02024064 + ldr r6, =gActiveBank ldrb r0, [r6] adds r1, r0, 0 muls r1, r3 @@ -10847,7 +10847,7 @@ _0803AB6C: thumb_func_start bc_8012FAC bc_8012FAC: @ 803ABC0 push {r4,r5,lr} - ldr r5, =gUnknown_02024332 + ldr r5, =gBattleCommunication ldrb r0, [r5] cmp r0, 0 beq _0803ABD4 @@ -10856,7 +10856,7 @@ bc_8012FAC: @ 803ABC0 b _0803AC2E .pool _0803ABD4: - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r0, [r5, 0x1] strb r0, [r4] movs r0, 0 @@ -10871,20 +10871,20 @@ _0803ABD4: b _0803AC2E .pool _0803ABF8: - ldr r0, =gUnknown_02024068 + ldr r0, =gBattleExecBuffer ldr r2, [r0] cmp r2, 0 bne _0803AC2E ldrb r0, [r5, 0x1] adds r0, 0x1 strb r0, [r5, 0x1] - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bne _0803AC2C - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =bc_load_battlefield str r0, [r1] b _0803AC2E @@ -10900,13 +10900,13 @@ _0803AC2E: thumb_func_start bc_load_battlefield bc_load_battlefield: @ 803AC34 push {r4,r5,lr} - ldr r0, =gUnknown_02024068 + ldr r0, =gBattleExecBuffer ldr r5, [r0] cmp r5, 0 bne _0803AC64 movs r0, 0 - bl battle_get_side_with_given_state - ldr r4, =gUnknown_02024064 + bl GetBankByPlayerAI + ldr r4, =gActiveBank strb r0, [r4] ldr r0, =gUnknown_02022FF0 ldrb r1, [r0] @@ -10914,10 +10914,10 @@ bc_load_battlefield: @ 803AC34 bl dp01_build_cmdbuf_x2E_a ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =sub_803AC84 str r0, [r1] - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication strb r5, [r0] strb r5, [r0, 0x1] _0803AC64: @@ -10934,15 +10934,15 @@ sub_803AC84: @ 803AC84 mov r6, r9 mov r5, r8 push {r5-r7} - ldr r0, =gUnknown_02024068 + ldr r0, =gBattleExecBuffer ldr r1, [r0] cmp r1, 0 beq _0803AC98 b _0803AF4E _0803AC98: - ldr r2, =gUnknown_02024064 + ldr r2, =gActiveBank strb r1, [r2] - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r1, r0 bcc _0803ACA6 @@ -10962,9 +10962,9 @@ _0803ACB4: ands r0, r1 cmp r0, 0 beq _0803ACFC - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0803ACFC @@ -10990,8 +10990,8 @@ _0803ACFC: adds r3, r0, r2 movs r2, 0 ldr r6, =gBaseStats - ldr r5, =gUnknown_02023864 - ldr r4, =gUnknown_02024064 + ldr r5, =gBattleBufferB + ldr r4, =gActiveBank _0803AD0E: adds r0, r3, r2 ldrb r1, [r4] @@ -11046,8 +11046,8 @@ _0803AD0E: adds r1, 0x20 strb r0, [r1] ldrb r0, [r2] - bl battle_side_get_owner - ldr r1, =gUnknown_0202449C + bl GetBankSide + ldr r1, =gBattleStruct lsls r0, 24 lsrs r0, 23 adds r0, 0xA8 @@ -11060,7 +11060,7 @@ _0803AD0E: ldrh r0, [r0, 0x28] strh r0, [r1] movs r2, 0 - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank movs r5, 0x58 ldr r1, =gUnknown_0202409C adds r6, r4, 0 @@ -11087,9 +11087,9 @@ _0803ADAA: movs r0, 0 str r0, [r1] _0803ADCA: - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 cmp r0, 0 bne _0803ADE4 @@ -11105,7 +11105,7 @@ _0803ADE4: cmp r0, 0 beq _0803AE60 ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -11116,7 +11116,7 @@ _0803ADE4: bl dp01_battle_side_mark_buffer_for_execution _0803AE0A: ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -11143,7 +11143,7 @@ _0803AE0A: .pool _0803AE60: ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -11171,7 +11171,7 @@ _0803AE96: bl dp01_build_cmdbuf_x04_4_4_4 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -11192,15 +11192,15 @@ _0803AEC0: ands r0, r1 cmp r0, 0 beq _0803AEF6 - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _0803AEEA ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 @@ -11218,9 +11218,9 @@ _0803AEF6: ands r0, r1 cmp r0, 0 beq _0803AF20 - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 @@ -11243,7 +11243,7 @@ _0803AF32: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] @@ -11251,7 +11251,7 @@ _0803AF32: bcs _0803AF48 b _0803ACB4 _0803AF48: - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =bc_801333C str r0, [r1] _0803AF4E: @@ -11271,7 +11271,7 @@ bc_801333C: @ 803AF80 mov r7, r8 push {r7} sub sp, 0x30 - ldr r0, =gUnknown_02024068 + ldr r0, =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 beq _0803AF92 @@ -11330,8 +11330,8 @@ _0803AFFA: cmp r7, 0x5 ble _0803AFAA movs r0, 0x1 - bl battle_get_side_with_given_state - ldr r4, =gUnknown_02024064 + bl GetBankByPlayerAI + ldr r4, =gActiveBank strb r0, [r4] movs r0, 0 mov r1, sp @@ -11382,8 +11382,8 @@ _0803B072: cmp r7, 0x5 ble _0803B026 movs r0, 0 - bl battle_get_side_with_given_state - ldr r4, =gUnknown_02024064 + bl GetBankByPlayerAI + ldr r4, =gActiveBank strb r0, [r4] movs r0, 0 mov r1, sp @@ -11391,7 +11391,7 @@ _0803B072: bl dp01_build_cmdbuf_x30_TODO ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =bc_battle_begin_message b _0803B10A .pool @@ -11438,7 +11438,7 @@ _0803B0FA: adds r7, 0x1 cmp r7, 0x5 ble _0803B0B2 - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =bc_8013568 _0803B10A: str r0, [r1] @@ -11455,18 +11455,18 @@ _0803B10C: thumb_func_start bc_battle_begin_message bc_battle_begin_message: @ 803B120 push {lr} - ldr r0, =gUnknown_02024068 + ldr r0, =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _0803B142 movs r0, 0x1 - bl battle_get_side_with_given_state - ldr r1, =gUnknown_02024064 + bl GetBankByPlayerAI + ldr r1, =gActiveBank strb r0, [r1] ldrb r1, [r1] movs r0, 0 bl b_std_message - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =sub_803B180 str r0, [r1] _0803B142: @@ -11478,11 +11478,11 @@ _0803B142: thumb_func_start bc_8013568 bc_8013568: @ 803B158 push {lr} - ldr r0, =gUnknown_02024068 + ldr r0, =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _0803B170 - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =sub_803B3CC str r0, [r1] movs r0, 0 @@ -11497,7 +11497,7 @@ _0803B170: thumb_func_start sub_803B180 sub_803B180: @ 803B180 push {lr} - ldr r0, =gUnknown_02024068 + ldr r0, =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _0803B1D0 @@ -11524,13 +11524,13 @@ sub_803B180: @ 803B180 _0803B1B8: movs r0, 0x1 _0803B1BA: - bl battle_get_side_with_given_state + bl GetBankByPlayerAI adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 movs r0, 0x1 bl b_std_message - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =sub_803B25C str r0, [r1] _0803B1D0: @@ -11560,17 +11560,17 @@ sub_803B1DC: @ 803B1DC _0803B1FC: movs r5, 0x3 _0803B1FE: - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank movs r0, 0 strb r0, [r1] - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r0, 0 beq _0803B23A adds r4, r1, 0 _0803B20E: ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, r5 @@ -11583,14 +11583,14 @@ _0803B228: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _0803B20E _0803B23A: - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =bc_801362C str r0, [r1] pop {r4,r5} @@ -11623,20 +11623,20 @@ sub_803B25C: @ 803B25C b _0803B29A .pool _0803B288: - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =sub_803B1DC b _0803B2F0 .pool _0803B298: movs r5, 0x1 _0803B29A: - ldr r0, =gUnknown_02024068 + ldr r0, =gBattleExecBuffer ldr r2, [r0] cmp r2, 0 bne _0803B2F2 - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank strb r2, [r0] - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks adds r4, r0, 0 ldrb r1, [r1] cmp r2, r1 @@ -11644,7 +11644,7 @@ _0803B29A: adds r6, r4, 0 _0803B2B2: ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, r5 @@ -11663,15 +11663,15 @@ _0803B2D8: ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks lsls r0, 24 lsrs r0, 24 - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r1, [r1] cmp r0, r1 bcc _0803B2B2 _0803B2EC: - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =bc_801362C _0803B2F0: str r0, [r1] @@ -11685,13 +11685,13 @@ _0803B2F2: thumb_func_start bc_801362C bc_801362C: @ 803B314 push {r4-r7,lr} - ldr r0, =gUnknown_02024068 + ldr r0, =gBattleExecBuffer ldr r1, [r0] cmp r1, 0 bne _0803B384 - ldr r2, =gUnknown_02024064 + ldr r2, =gActiveBank strb r1, [r2] - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r1, r0 bcs _0803B37E @@ -11702,7 +11702,7 @@ bc_801362C: @ 803B314 adds r7, 0x48 _0803B334: ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -11730,14 +11730,14 @@ _0803B36C: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _0803B334 _0803B37E: - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =sub_803B3CC str r0, [r1] _0803B384: @@ -11750,11 +11750,11 @@ _0803B384: thumb_func_start sub_803B3AC sub_803B3AC: @ 803B3AC push {lr} - ldr r0, =gUnknown_02024068 + ldr r0, =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _0803B3BC - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =sub_803B3CC str r0, [r1] _0803B3BC: @@ -11766,7 +11766,7 @@ _0803B3BC: thumb_func_start sub_803B3CC sub_803B3CC: @ 803B3CC push {lr} - ldr r0, =gUnknown_02024068 + ldr r0, =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _0803B418 @@ -11794,14 +11794,14 @@ _0803B3F6: cmp r0, 0 bne _0803B412 adds r0, r3, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 movs r0, 0x1 bl b_std_message _0803B412: - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =sub_803B4C8 str r0, [r1] _0803B418: @@ -11831,17 +11831,17 @@ sub_803B42C: @ 803B42C _0803B44C: movs r5, 0x2 _0803B44E: - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank movs r0, 0 strb r0, [r1] - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r0, 0 beq _0803B48A adds r4, r1, 0 _0803B45E: ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, r5 @@ -11854,14 +11854,14 @@ _0803B478: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _0803B45E _0803B48A: - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct ldr r0, [r2] adds r0, 0x4C movs r1, 0 @@ -11874,7 +11874,7 @@ _0803B48A: lsls r2, 1 adds r0, r2 strb r1, [r0] - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =sub_803B628 str r0, [r1] pop {r4,r5} @@ -11904,20 +11904,20 @@ sub_803B4C8: @ 803B4C8 b _0803B500 .pool _0803B4F0: - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =sub_803B42C b _0803B572 .pool _0803B500: movs r6, 0 _0803B502: - ldr r0, =gUnknown_02024068 + ldr r0, =gBattleExecBuffer ldr r2, [r0] cmp r2, 0 bne _0803B574 - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank strb r2, [r0] - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks adds r4, r0, 0 ldrb r1, [r1] cmp r2, r1 @@ -11925,7 +11925,7 @@ _0803B502: adds r5, r4, 0 _0803B51A: ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, r6 @@ -11944,15 +11944,15 @@ _0803B540: ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks lsls r0, 24 lsrs r0, 24 - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r1, [r1] cmp r0, r1 bcc _0803B51A _0803B554: - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct ldr r0, [r2] adds r0, 0x4C movs r1, 0 @@ -11965,7 +11965,7 @@ _0803B554: lsls r2, 1 adds r0, r2 strb r1, [r0] - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =sub_803B628 _0803B572: str r0, [r1] @@ -11979,21 +11979,21 @@ _0803B574: thumb_func_start sub_803B598 sub_803B598: @ 803B598 push {r4,r5,lr} - ldr r0, =gUnknown_02024068 + ldr r0, =gBattleExecBuffer ldr r1, [r0] cmp r1, 0 bne _0803B606 - ldr r2, =gUnknown_02024064 + ldr r2, =gActiveBank strb r1, [r2] - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r1, r0 bcs _0803B5E6 adds r4, r2, 0 - ldr r5, =gUnknown_0202406E + ldr r5, =gBattlePartyID _0803B5B2: ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0803B5D4 @@ -12010,14 +12010,14 @@ _0803B5D4: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _0803B5B2 _0803B5E6: - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct ldr r0, [r2] adds r0, 0x4C movs r1, 0 @@ -12030,7 +12030,7 @@ _0803B5E6: lsls r2, 1 adds r0, r2 strb r1, [r0] - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =sub_803B628 str r0, [r1] _0803B606: @@ -12050,25 +12050,25 @@ sub_803B628: @ 803B628 sub sp, 0x4 movs r0, 0 mov r9, r0 - ldr r0, =gUnknown_02024068 + ldr r0, =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 beq _0803B642 b _0803B8B2 _0803B642: - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] adds r0, 0x4C ldrb r0, [r0] cmp r0, 0 bne _0803B6C2 movs r5, 0 - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks mov r10, r1 ldrb r3, [r1] cmp r5, r3 bge _0803B668 - ldr r2, =gUnknown_0202407E + ldr r2, =gTurnOrder _0803B65C: adds r0, r5, r2 strb r5, [r0] @@ -12086,8 +12086,8 @@ _0803B67C: ldrb r1, [r1] cmp r8, r1 bge _0803B6B6 - ldr r6, =gUnknown_0202407E - ldr r1, =gUnknown_0202406C + ldr r6, =gTurnOrder + ldr r1, =gNoOfAllBanks mov r10, r1 lsls r7, r5, 24 _0803B68E: @@ -12106,7 +12106,7 @@ _0803B68E: bl sub_803CEDC _0803B6AC: adds r4, 0x1 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _0803B68E @@ -12119,7 +12119,7 @@ _0803B6B8: cmp r5, r0 blt _0803B67C _0803B6C2: - ldr r5, =gUnknown_0202449C + ldr r5, =gBattleStruct ldr r0, [r5] movs r4, 0xD1 lsls r4, 1 @@ -12132,7 +12132,7 @@ _0803B6C2: movs r1, 0 movs r2, 0 movs r3, 0xFF - bl ability_something + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 beq _0803B6FC @@ -12143,15 +12143,15 @@ _0803B6C2: b _0803B8B2 .pool _0803B6FC: - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct ldr r0, [r2] adds r0, 0x4C - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bcs _0803B756 - ldr r5, =gUnknown_0202407E + ldr r5, =gTurnOrder adds r4, r2, 0 _0803B710: ldr r0, [r4] @@ -12163,7 +12163,7 @@ _0803B710: str r0, [sp] movs r2, 0 movs r3, 0 - bl ability_something + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 beq _0803B736 @@ -12185,7 +12185,7 @@ _0803B736: _0803B748: ldr r0, [r4] adds r0, 0x4C - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 @@ -12197,7 +12197,7 @@ _0803B756: movs r1, 0 movs r2, 0 movs r3, 0 - bl ability_something + bl AbilityBattleEffects lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -12209,21 +12209,21 @@ _0803B770: movs r1, 0 movs r2, 0 movs r3, 0 - bl ability_something + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 beq _0803B786 b _0803B8B2 _0803B786: - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct ldr r0, [r2] adds r0, 0xD9 - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bcs _0803B7DA - ldr r5, =gUnknown_0202407E + ldr r5, =gTurnOrder adds r4, r2, 0 _0803B79A: ldr r0, [r4] @@ -12253,14 +12253,14 @@ _0803B7BC: bne _0803B8B2 ldr r0, [r4] adds r0, 0xD9 - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bcc _0803B79A _0803B7DA: movs r5, 0 - ldr r1, =gUnknown_0202449C + ldr r1, =gBattleStruct mov r8, r1 movs r7, 0x6 ldr r6, =gUnknown_0202421C @@ -12285,20 +12285,20 @@ _0803B7EA: movs r0, 0 bl sub_803D580 bl sub_803D6A0 - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] adds r0, 0x91 - ldr r1, =gUnknown_02024210 + ldr r1, =gAbsentBankFlags ldrb r1, [r1] strb r1, [r0] ldr r0, =gUnknown_085CC23E movs r1, 0 bl battle_show_message_maybe - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =sub_803BE74 str r0, [r1] bl sub_803F988 - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r2, 0 adds r0, r1, 0x7 _0803B834: @@ -12307,9 +12307,9 @@ _0803B834: cmp r0, r1 bge _0803B834 movs r5, 0 - ldr r3, =gUnknown_0202406C - ldr r2, =gUnknown_0202449C - ldr r6, =gUnknown_02024474 + ldr r3, =gNoOfAllBanks + ldr r2, =gBattleStruct + ldr r6, =gBattleScripting ldr r7, =gBattleMoveFlags ldrb r0, [r3] cmp r5, r0 @@ -12361,7 +12361,7 @@ _0803B866: ands r0, r1 cmp r0, 0 beq _0803B8B2 - bl sub_80A369C + bl StopCryAndClearCrySongs ldr r0, =gUnknown_082DB8BE bl b_call_bc_move_exec _0803B8B2: @@ -12379,15 +12379,15 @@ _0803B8B2: thumb_func_start bc_8013B1C bc_8013B1C: @ 803B904 push {r4-r6,lr} - ldr r0, =gUnknown_02024068 + ldr r0, =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _0803B994 - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =sub_803B9BC str r0, [r1] - ldr r3, =gUnknown_0202406C - ldr r1, =gUnknown_02024332 + ldr r3, =gNoOfAllBanks + ldr r1, =gBattleCommunication movs r2, 0 adds r0, r1, 0x7 _0803B91C: @@ -12426,15 +12426,15 @@ _0803B932: beq _0803B964 lsls r0, r4, 24 lsrs r0, 24 - bl b_cancel_multi_turn_move_maybe + bl CancelMultiTurnMoves _0803B964: adds r4, 0x1 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _0803B932 _0803B96E: - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct ldr r0, [r2] movs r1, 0 strb r1, [r0] @@ -12468,7 +12468,7 @@ sub_803B9BC: @ 803B9BC push {r6,r7} movs r0, 0x1 bl sub_803D580 - ldr r0, =gUnknown_0202433A + ldr r0, =gBattleOutcome ldrb r0, [r0] cmp r0, 0 bne _0803B9EA @@ -12491,7 +12491,7 @@ _0803B9EA: beq _0803B9F8 b _0803BB78 _0803B9F8: - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] adds r0, 0x4D strb r1, [r0] @@ -12504,7 +12504,7 @@ _0803B9F8: _0803BA0E: movs r0, 0 bl sub_803D580 - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker ldr r0, [r2] ldr r1, =0xfffffdff ands r0, r1 @@ -12515,7 +12515,7 @@ _0803BA0E: ldr r1, =0xffefffff ands r0, r1 str r0, [r2] - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting strb r4, [r0, 0x18] strb r4, [r0, 0x19] strb r4, [r0, 0x14] @@ -12523,7 +12523,7 @@ _0803BA0E: str r4, [r0] ldr r0, =gBattleMoveFlags strb r4, [r0] - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r2, 0 adds r0, r1, 0x4 _0803BA40: @@ -12531,14 +12531,14 @@ _0803BA40: subs r0, 0x1 cmp r0, r1 bge _0803BA40 - ldr r0, =gUnknown_0202433A + ldr r0, =gBattleOutcome ldrb r0, [r0] cmp r0, 0 beq _0803BA98 - ldr r1, =gUnknown_02024083 + ldr r1, =gFightStateTracker movs r0, 0xC strb r0, [r1] - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =bc_bs_exec str r0, [r1] b _0803BB78 @@ -12546,7 +12546,7 @@ _0803BA40: _0803BA98: ldr r1, =gUnknown_03005D10 ldrb r0, [r1, 0x13] - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct mov r8, r2 cmp r0, 0xFE bhi _0803BAB2 @@ -12559,8 +12559,8 @@ _0803BA98: strb r0, [r1] _0803BAB2: movs r2, 0 - ldr r4, =gUnknown_0202406C - ldr r0, =gUnknown_02024210 + ldr r4, =gNoOfAllBanks + ldr r0, =gAbsentBankFlags mov r12, r0 ldr r1, =gUnknown_085CC23E mov r9, r1 @@ -12584,7 +12584,7 @@ _0803BACC: blt _0803BACC _0803BAE0: movs r2, 0 - ldr r3, =gUnknown_0202449C + ldr r3, =gBattleStruct movs r1, 0x6 _0803BAE6: ldr r0, [r3] @@ -12603,7 +12603,7 @@ _0803BAE6: mov r0, r9 movs r1, 0 bl battle_show_message_maybe - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =sub_803BE74 str r0, [r1] bl Random @@ -12649,7 +12649,7 @@ sub_803BB88: @ 803BB88 push {r4-r7,lr} sub sp, 0x4 ldr r1, =gBattleMons - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -12657,7 +12657,7 @@ sub_803BB88: @ 803BB88 ldrh r0, [r1, 0x2E] cmp r0, 0xAF bne _0803BBB8 - ldr r1, =gUnknown_02024404 + ldr r1, =gEnigmaBerries lsls r0, r2, 3 subs r0, r2 lsls r0, 2 @@ -12667,12 +12667,12 @@ sub_803BB88: @ 803BB88 .pool _0803BBB8: ldrh r0, [r1, 0x2E] - bl itemid_get_x12 + bl ItemId_GetHoldEffect lsls r0, 24 lsrs r2, r0, 24 _0803BBC2: ldr r1, =gUnknown_0202420F - ldr r3, =gUnknown_02024064 + ldr r3, =gActiveBank ldrb r0, [r3] strb r0, [r1] cmp r2, 0x25 @@ -12699,11 +12699,11 @@ _0803BBDE: b _0803BD4C _0803BBF2: adds r0, r2, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r5, r0 bge _0803BC86 @@ -12711,7 +12711,7 @@ _0803BBF2: _0803BC08: lsrs r4, r7, 24 adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r6, r0 @@ -12728,13 +12728,13 @@ _0803BC08: b _0803BD54 _0803BC2C: adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r6, r0 beq _0803BC76 ldr r3, =gBattleMons - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r0, [r0] movs r2, 0x58 muls r0, r2 @@ -12768,19 +12768,19 @@ _0803BC76: lsls r0, 17 adds r7, r0 adds r5, 0x1 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r5, r0 blt _0803BC08 _0803BC86: - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r1, [r4] movs r0, 0 str r0, [sp] movs r0, 0xF movs r2, 0x2A movs r3, 0 - bl ability_something + bl AbilityBattleEffects lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 @@ -12801,23 +12801,23 @@ _0803BC86: cmp r0, 0x8 bne _0803BCF8 _0803BCBE: - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting subs r1, r5, 0x1 strb r1, [r0, 0x17] - ldr r2, =gUnknown_0202420A + ldr r2, =gLastUsedAbility adds r0, r1, 0 muls r0, r3 adds r0, r6 adds r0, 0x20 ldrb r0, [r0] strb r0, [r2] - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x2 b _0803BD90 .pool _0803BCF8: ldr r1, =gBattleMons - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -12828,7 +12828,7 @@ _0803BCF8: ands r0, r1 cmp r0, 0 bne _0803BD22 - ldr r1, =gUnknown_020242AC + ldr r1, =gStatuses3 lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] @@ -12838,7 +12838,7 @@ _0803BCF8: cmp r0, 0 beq _0803BD40 _0803BD22: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0 strb r0, [r1, 0x5] movs r0, 0x1 @@ -12856,27 +12856,27 @@ _0803BD4C: b _0803BD92 .pool _0803BD54: - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting strb r5, [r0, 0x17] - ldr r1, =gUnknown_0202420A + ldr r1, =gLastUsedAbility ldrb r0, [r2] strb r0, [r1] - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x2 b _0803BD90 .pool _0803BD70: - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting strb r5, [r0, 0x17] - ldr r1, =gUnknown_0202420A + ldr r1, =gLastUsedAbility ldrb r0, [r2] strb r0, [r1] - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x2 b _0803BD90 .pool _0803BD8C: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x1 _0803BD90: strb r0, [r1, 0x5] @@ -12896,11 +12896,11 @@ sub_803BDA0: @ 803BDA0 lsls r0, 24 lsrs r5, r0, 24 movs r3, 0 - ldr r0, =gUnknown_0202406E + ldr r0, =gBattlePartyID mov r8, r0 ldr r1, =gUnknown_0203CF00 mov r12, r1 - ldr r7, =gUnknown_0202449C + ldr r7, =gBattleStruct lsls r0, r5, 1 adds r4, r0, r5 adds r6, r0, 0 @@ -12923,7 +12923,7 @@ _0803BDBC: adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r7, =gUnknown_0202449C + ldr r7, =gBattleStruct ldr r0, [r7] adds r0, r5, r0 adds r0, 0x5C @@ -13000,21 +13000,21 @@ sub_803BE74: @ 803BE74 mov r5, r8 push {r5-r7} sub sp, 0x1C - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication movs r1, 0 strb r1, [r0, 0x4] - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank strb r1, [r0] - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks bl _0803CD12 .pool _0803BE9C: - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r0, [r4] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r5, r0, 24 - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] @@ -13041,16 +13041,16 @@ _0803BED0: .4byte _0803CC38 _0803BEF4: bl sub_8185FD0 - ldr r1, =gUnknown_02024332 - ldr r0, =gUnknown_02024064 + ldr r1, =gBattleCommunication + ldr r0, =gActiveBank ldrb r0, [r0] adds r0, r1 bl _0803CC20 .pool _0803BF0C: - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r1, [r0] - ldr r4, =gUnknown_0202449C + ldr r4, =gBattleStruct ldr r0, [r4] adds r1, r0 adds r1, 0x5C @@ -13069,7 +13069,7 @@ _0803BF0C: beq _0803BF68 eors r5, r1 adds r0, r5, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI ldr r1, [r4] adds r1, 0x91 ldrb r1, [r1] @@ -13081,9 +13081,9 @@ _0803BF0C: ands r1, r0 cmp r1, 0 bne _0803BF68 - ldr r4, =gUnknown_02024332 + ldr r4, =gBattleCommunication adds r0, r5, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -13092,12 +13092,12 @@ _0803BF0C: beq _0803BF68 bl _0803CD04 _0803BF68: - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] adds r0, 0x91 ldrb r3, [r0] ldr r1, =gBitTable - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r2, [r4] lsls r0, r2, 2 adds r0, r1 @@ -13115,7 +13115,7 @@ _0803BF68: ands r0, r1 cmp r0, 0 bne _0803BFBC - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication ldrb r1, [r4] adds r1, r0 movs r0, 0x5 @@ -13123,7 +13123,7 @@ _0803BF68: bl _0803CD04 .pool _0803BFBC: - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication ldrb r1, [r4] adds r1, r0 movs r0, 0x4 @@ -13151,14 +13151,14 @@ _0803BFF0: ldr r0, =gUnknown_0202421C adds r0, r2, r0 strb r3, [r0] - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication ldrb r0, [r4] bl _0803CC72 .pool _0803C00C: ldr r0, =gUnknown_0202421C ldrb r1, [r0] - ldr r0, =gUnknown_02023864 + ldr r0, =gBattleBufferB ldrb r2, [r0, 0x1] ldrb r0, [r0, 0x2] lsls r0, 8 @@ -13168,9 +13168,9 @@ _0803C00C: bl _0803CB68 .pool _0803C02C: - ldr r3, =gUnknown_02024068 + ldr r3, =gBattleExecBuffer ldr r1, =gBitTable - ldr r6, =gUnknown_02024064 + ldr r6, =gActiveBank ldrb r5, [r6] lsls r0, r5, 2 adds r0, r1 @@ -13190,7 +13190,7 @@ _0803C02C: beq _0803C058 bl _0803CD04 _0803C058: - ldr r4, =gUnknown_02023864 + ldr r4, =gBattleBufferB lsls r0, r5, 9 adds r4, 0x1 adds r0, r4 @@ -13238,15 +13238,15 @@ _0803C0DC: lsls r0, 24 cmp r0, 0 beq _0803C134 - ldr r0, =gUnknown_02024332 - ldr r3, =gUnknown_02024064 + ldr r0, =gBattleCommunication + ldr r3, =gActiveBank ldrb r1, [r3] adds r1, r0 movs r4, 0 movs r0, 0x6 strb r0, [r1] ldrb r1, [r3] - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct ldr r0, [r2] adds r1, r0 adds r1, 0x54 @@ -13260,7 +13260,7 @@ _0803C0DC: ldrb r1, [r3] ldr r2, [r2] adds r2, r1, r2 - ldr r0, =gUnknown_02023864 + ldr r0, =gBattleBufferB lsls r1, 9 adds r0, 0x3 adds r1, r0 @@ -13269,8 +13269,8 @@ _0803C0DC: bl _0803CD70 .pool _0803C134: - ldr r3, =gUnknown_020242BC - ldr r5, =gUnknown_02024064 + ldr r3, =gDisableStructs + ldr r5, =gActiveBank ldrb r4, [r5] lsls r0, r4, 3 subs r0, r4 @@ -13284,7 +13284,7 @@ _0803C134: adds r0, r1 strh r2, [r0] ldrb r2, [r5] - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r1, [r0] adds r1, r2, r1 adds r1, 0x80 @@ -13294,7 +13294,7 @@ _0803C134: adds r0, r3 ldrb r0, [r0, 0xC] strb r0, [r1] - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication ldrb r0, [r5] adds r0, r1 movs r1, 0x4 @@ -13391,7 +13391,7 @@ _0803C230: bne _0803C23E b _0803C48C _0803C23E: - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r0, [r4] movs r1, 0x1 bl sub_8185008 @@ -13403,13 +13403,13 @@ _0803C23E: b _0803C784 .pool _0803C268: - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank ldrb r0, [r5] - ldr r3, =gUnknown_0202449C + ldr r3, =gBattleStruct ldr r1, [r3] adds r1, r0, r1 adds r1, 0x58 - ldr r2, =gUnknown_0202406E + ldr r2, =gBattlePartyID lsls r0, 1 adds r0, r2 ldrh r0, [r0] @@ -13434,7 +13434,7 @@ _0803C268: ands r0, r1 cmp r0, 0 bne _0803C2B8 - ldr r0, =gUnknown_020242AC + ldr r0, =gStatuses3 lsls r1, r2, 2 adds r1, r0 ldr r1, [r1] @@ -13444,7 +13444,7 @@ _0803C268: cmp r1, 0 beq _0803C2EC _0803C2B8: - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r0, [r0] lsls r1, r0, 1 adds r1, r0 @@ -13463,7 +13463,7 @@ _0803C2EC: adds r1, r2, 0 movs r2, 0x17 movs r3, 0 - bl ability_something + bl AbilityBattleEffects lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 @@ -13473,7 +13473,7 @@ _0803C2EC: movs r0, 0xC movs r2, 0x47 movs r3, 0 - bl ability_something + bl AbilityBattleEffects lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 @@ -13497,14 +13497,14 @@ _0803C2EC: cmp r0, 0x1A bne _0803C374 _0803C33C: - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank ldrb r1, [r5] movs r0, 0 str r0, [sp] movs r0, 0xF movs r2, 0x2A movs r3, 0 - bl ability_something + bl AbilityBattleEffects lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 @@ -13531,10 +13531,10 @@ _0803C374: orrs r1, r0 lsls r1, 24 lsrs r1, 24 - ldr r0, =gUnknown_0202420A + ldr r0, =gLastUsedAbility ldrb r3, [r0] - ldr r4, =gUnknown_0202449C - ldr r0, =gUnknown_02024064 + ldr r4, =gBattleStruct + ldr r0, =gActiveBank ldrb r0, [r0] lsls r2, r0, 1 adds r2, r0 @@ -13548,7 +13548,7 @@ _0803C374: b _0803C42E .pool _0803C3B0: - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r1, [r0] adds r4, r0, 0 cmp r1, 0x2 @@ -13557,7 +13557,7 @@ _0803C3B0: ldrb r0, [r0] cmp r0, 0x2 bne _0803C3D8 - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r3, [r0] adds r0, r3, 0 adds r0, 0x5C @@ -13571,7 +13571,7 @@ _0803C3D8: ldrb r0, [r0, 0x1] cmp r0, 0x2 bne _0803C410 - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r3, [r0] adds r0, r3, 0 adds r0, 0x5D @@ -13591,8 +13591,8 @@ _0803C400: b _0803C42E .pool _0803C410: - ldr r2, =gUnknown_0202449C - ldr r0, =gUnknown_02024064 + ldr r2, =gBattleStruct + ldr r0, =gActiveBank ldrb r0, [r0] lsls r1, r0, 1 adds r1, r0 @@ -13606,7 +13606,7 @@ _0803C410: movs r3, 0 bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f _0803C42E: - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution b _0803C6C4 @@ -13619,20 +13619,20 @@ _0803C440: b _0803C6C4 _0803C44C: ldr r1, =gUnknown_02024220 - ldr r3, =gUnknown_02024064 + ldr r3, =gActiveBank ldrb r0, [r3] lsls r0, 2 adds r0, r1 ldr r1, =gUnknown_082DAB11 str r1, [r0] - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication ldrb r1, [r3] adds r1, r0 movs r4, 0 movs r0, 0x6 strb r0, [r1] ldrb r1, [r3] - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct ldr r0, [r2] adds r1, r0 adds r1, 0x54 @@ -13641,8 +13641,8 @@ _0803C44C: b _0803C7A0 .pool _0803C48C: - ldr r2, =gUnknown_0202449C - ldr r4, =gUnknown_02024064 + ldr r2, =gBattleStruct + ldr r4, =gActiveBank ldrb r1, [r4] lsls r0, r1, 1 adds r0, r1 @@ -13656,19 +13656,19 @@ _0803C48C: b _0803C6C4 .pool _0803C4B4: - ldr r4, =gUnknown_02024332 - ldr r5, =gUnknown_02024064 + ldr r4, =gBattleCommunication + ldr r5, =gActiveBank ldrb r0, [r5] adds r0, r4 movs r1, 0x7 strb r1, [r0] ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity movs r6, 0x2 eors r0, r6 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -13677,11 +13677,11 @@ _0803C4B4: ldrb r0, [r5] bl sub_8185008 ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity eors r0, r6 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI ldr r1, =gBattleMons lsls r0, 24 lsrs r0, 24 @@ -13697,11 +13697,11 @@ _0803C4B4: cmp r0, 0 bne _0803C532 ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity eors r0, r6 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 muls r0, r7 @@ -13722,11 +13722,11 @@ _0803C532: _0803C550: ldr r4, =gUnknown_0202421C ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity eors r0, r6 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -13734,11 +13734,11 @@ _0803C550: cmp r0, 0x2 bne _0803C590 ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity eors r0, r6 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 movs r1, 0x2 @@ -13747,11 +13747,11 @@ _0803C550: .pool _0803C590: ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity eors r0, r6 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -13759,29 +13759,29 @@ _0803C590: cmp r0, 0x3 bne _0803C5B6 ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity eors r0, r6 b _0803C668 _0803C5B6: ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity eors r0, r6 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _0803C628 - ldr r4, =gUnknown_0202433C + ldr r4, =gProtectStructs ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity eors r0, r6 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 20 adds r0, r4 @@ -13789,13 +13789,13 @@ _0803C5B6: lsls r0, 29 cmp r0, 0 blt _0803C616 - ldr r4, =gUnknown_020242BC + ldr r4, =gDisableStructs ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity eors r0, r6 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 @@ -13807,7 +13807,7 @@ _0803C5B6: beq _0803C628 _0803C616: ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity eors r0, r6 b _0803C668 .pool @@ -13820,14 +13820,14 @@ _0803C628: cmp r0, 0 beq _0803C690 ldr r4, =gUnknown_0202421C - ldr r6, =gUnknown_02024064 + ldr r6, =gActiveBank ldrb r0, [r6] - bl battle_get_per_side_status + bl GetBankIdentity movs r5, 0x2 eors r0, r5 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -13839,12 +13839,12 @@ _0803C628: ldr r0, [r0] str r0, [r1] ldrb r0, [r6] - bl battle_get_per_side_status + bl GetBankIdentity eors r0, r5 _0803C668: lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 movs r1, 0x1 @@ -13852,14 +13852,14 @@ _0803C668: b _0803C6AE .pool _0803C690: - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r0, [r0] - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x2 eors r0, r1 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 movs r1, 0x3 @@ -13867,7 +13867,7 @@ _0803C690: _0803C6AE: movs r0, 0 bl dp01_build_cmdbuf_x32_32_32_32 - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution b _0803CD70 @@ -13885,8 +13885,8 @@ _0803C6C4: ands r2, r0 cmp r2, 0 beq _0803C720 - ldr r0, =gUnknown_02023864 - ldr r4, =gUnknown_02024064 + ldr r0, =gBattleBufferB + ldr r4, =gActiveBank ldrb r2, [r4] lsls r1, r2, 9 adds r0, 0x1 @@ -13899,7 +13899,7 @@ _0803C6C4: adds r0, r1 ldr r1, =gUnknown_082DB9BA str r1, [r0] - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication ldrb r0, [r4] adds r0, r1 movs r3, 0 @@ -13912,8 +13912,8 @@ _0803C720: ands r0, r1 cmp r0, 0x8 bne _0803C760 - ldr r0, =gUnknown_02023864 - ldr r4, =gUnknown_02024064 + ldr r0, =gBattleBufferB + ldr r4, =gActiveBank ldrb r1, [r4] lsls r1, 9 adds r0, 0x1 @@ -13923,7 +13923,7 @@ _0803C720: bne _0803C760 ldr r0, =gUnknown_082DAAFE bl b_call_bc_move_exec - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication ldrb r0, [r4] adds r0, r1 b _0803CC20 @@ -13933,8 +13933,8 @@ _0803C760: lsls r0, 24 cmp r0, 0 beq _0803C7C4 - ldr r0, =gUnknown_02023864 - ldr r4, =gUnknown_02024064 + ldr r0, =gBattleBufferB + ldr r4, =gActiveBank ldrb r2, [r4] lsls r1, r2, 9 adds r0, 0x1 @@ -13948,7 +13948,7 @@ _0803C760: ldr r1, =gUnknown_082DAB0B _0803C784: str r1, [r0] - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication ldrb r1, [r4] adds r1, r0 movs r3, 0 @@ -13956,7 +13956,7 @@ _0803C784: strb r0, [r1] _0803C792: ldrb r1, [r4] - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct ldr r0, [r2] adds r1, r0 adds r1, 0x54 @@ -13971,16 +13971,16 @@ _0803C7A0: b _0803CD70 .pool _0803C7C4: - ldr r2, =gUnknown_02024332 - ldr r0, =gUnknown_02024064 + ldr r2, =gBattleCommunication + ldr r0, =gActiveBank ldrb r1, [r0] adds r1, r2 b _0803CB74 .pool _0803C7D8: - ldr r4, =gUnknown_02024068 + ldr r4, =gBattleExecBuffer ldr r1, =gBitTable - ldr r3, =gUnknown_02024064 + ldr r3, =gActiveBank ldrb r5, [r3] lsls r0, r5, 2 adds r0, r1 @@ -14028,7 +14028,7 @@ _0803C830: .4byte _0803CA98 .4byte _0803CABC _0803C858: - ldr r1, =gUnknown_02023864 + ldr r1, =gBattleBufferB ldrb r3, [r4] lsls r0, r3, 9 adds r1, 0x1 @@ -14055,8 +14055,8 @@ _0803C87E: _0803C88A: movs r0, 0x2 bl sub_818603C - ldr r4, =gUnknown_02023864 - ldr r6, =gUnknown_02024064 + ldr r4, =gBattleBufferB + ldr r6, =gActiveBank ldrb r3, [r6] lsls r1, r3, 9 adds r5, r4, 0x2 @@ -14070,7 +14070,7 @@ _0803C88A: ldr r0, =0x0000ffff cmp r2, r0 bne _0803C8D0 - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication adds r0, r3, r0 movs r1, 0x1 strb r1, [r0] @@ -14086,14 +14086,14 @@ _0803C8D0: ldrb r0, [r6] movs r1, 0x1 bl sub_8185008 - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication ldrb r1, [r6] adds r1, r0 movs r3, 0 movs r0, 0x6 strb r0, [r1] ldrb r1, [r6] - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct ldr r0, [r2] adds r1, r0 adds r1, 0x54 @@ -14131,7 +14131,7 @@ _0803C91C: bl sub_8184FBC _0803C942: ldrb r0, [r6] - ldr r4, =gUnknown_0202449C + ldr r4, =gBattleStruct ldr r1, [r4] adds r1, r0, r1 adds r1, 0x80 @@ -14162,13 +14162,13 @@ _0803C942: adds r0, r7 ldrb r0, [r0] strb r0, [r4, 0xC] - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication ldrb r1, [r6] b _0803CB72 .pool _0803C99C: - ldr r2, =gUnknown_02023864 - ldr r5, =gUnknown_02024064 + ldr r2, =gBattleBufferB + ldr r5, =gActiveBank ldrb r4, [r5] lsls r1, r4, 9 adds r0, r2, 0x1 @@ -14185,13 +14185,13 @@ _0803C99C: _0803C9BA: ldr r0, =gUnknown_02024208 strh r3, [r0] - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication ldrb r1, [r5] b _0803CB72 .pool _0803C9D4: - ldr r0, =gUnknown_02023864 - ldr r4, =gUnknown_02024064 + ldr r0, =gBattleBufferB + ldr r4, =gActiveBank ldrb r2, [r4] lsls r1, r2, 9 adds r0, 0x1 @@ -14199,7 +14199,7 @@ _0803C9D4: ldrb r0, [r1] cmp r0, 0x6 bne _0803CA04 - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication adds r0, r2, r0 movs r1, 0x1 strb r1, [r0] @@ -14211,35 +14211,35 @@ _0803CA04: bl sub_803CDF8 b _0803CB6E _0803CA0A: - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 8 orrs r0, r1 str r0, [r2] - ldr r2, =gUnknown_02024332 - ldr r0, =gUnknown_02024064 + ldr r2, =gBattleCommunication + ldr r0, =gActiveBank ldrb r1, [r0] adds r1, r2 b _0803CB74 .pool _0803CA2C: - ldr r2, =gUnknown_02024332 - ldr r0, =gUnknown_02024064 + ldr r2, =gBattleCommunication + ldr r0, =gActiveBank ldrb r1, [r0] adds r1, r2 b _0803CB74 .pool _0803CA40: - ldr r2, =gUnknown_02024332 - ldr r0, =gUnknown_02024064 + ldr r2, =gBattleCommunication + ldr r0, =gActiveBank ldrb r1, [r0] adds r1, r2 b _0803CB74 .pool _0803CA54: - ldr r3, =gUnknown_02023864 - ldr r0, =gUnknown_02024064 + ldr r3, =gBattleBufferB + ldr r0, =gActiveBank ldrb r4, [r0] lsls r1, r4, 9 adds r0, r3, 0x1 @@ -14254,41 +14254,41 @@ _0803CA54: bne _0803CA72 b _0803CC1C _0803CA72: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication adds r1, r4, r1 b _0803CB74 .pool _0803CA84: - ldr r2, =gUnknown_02024332 - ldr r0, =gUnknown_02024064 + ldr r2, =gBattleCommunication + ldr r0, =gActiveBank ldrb r1, [r0] adds r1, r2 b _0803CB74 .pool _0803CA98: - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 8 orrs r0, r1 str r0, [r2] - ldr r2, =gUnknown_02024332 - ldr r0, =gUnknown_02024064 + ldr r2, =gBattleCommunication + ldr r0, =gActiveBank ldrb r1, [r0] adds r1, r2 b _0803CB74 .pool _0803CABC: - ldr r2, =gUnknown_02024332 - ldr r0, =gUnknown_02024064 + ldr r2, =gBattleCommunication + ldr r0, =gActiveBank ldrb r1, [r0] adds r1, r2 b _0803CB74 .pool _0803CAD0: - ldr r3, =gUnknown_02024068 + ldr r3, =gBattleExecBuffer ldr r6, =gBitTable - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r6 @@ -14327,8 +14327,8 @@ _0803CAFA: bne _0803CB3C adds r0, r5, 0 eors r0, r1 - bl battle_get_side_with_given_state - ldr r1, =gUnknown_0202449C + bl GetBankByPlayerAI + ldr r1, =gBattleStruct ldr r1, [r1] adds r1, 0x91 ldrb r1, [r1] @@ -14352,12 +14352,12 @@ _0803CB5C: adds r2, r4, 0 bl sub_8034464 _0803CB66: - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank _0803CB68: ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _0803CB6E: - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication ldrb r1, [r4] _0803CB72: adds r1, r0 @@ -14368,9 +14368,9 @@ _0803CB74: b _0803CD04 .pool _0803CB84: - ldr r3, =gUnknown_02024068 + ldr r3, =gBattleExecBuffer ldr r1, =gBitTable - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r1 @@ -14390,16 +14390,16 @@ _0803CB84: beq _0803CBAE b _0803CD04 _0803CBAE: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication ldrb r0, [r1, 0x4] adds r0, 0x1 strb r0, [r1, 0x4] b _0803CD04 .pool _0803CBC8: - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank ldrb r2, [r5] - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] adds r1, r2, r0 adds r0, r1, 0 @@ -14407,7 +14407,7 @@ _0803CBC8: ldrb r0, [r0] cmp r0, 0 beq _0803CCB4 - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication adds r0, r2, r0 adds r1, 0x84 ldrb r1, [r1] @@ -14415,9 +14415,9 @@ _0803CBC8: b _0803CD04 .pool _0803CBF4: - ldr r3, =gUnknown_02024068 + ldr r3, =gBattleExecBuffer ldr r1, =gBitTable - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r4, [r0] lsls r0, r4, 2 adds r0, r1 @@ -14436,7 +14436,7 @@ _0803CBF4: cmp r0, 0 bne _0803CD04 _0803CC1C: - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication adds r0, r4, r0 _0803CC20: movs r1, 0x1 @@ -14444,23 +14444,23 @@ _0803CC20: b _0803CD04 .pool _0803CC38: - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank ldrb r2, [r5] - ldr r4, =gUnknown_0202449C + ldr r4, =gBattleStruct ldr r0, [r4] adds r0, r2, r0 adds r0, 0x54 ldrb r0, [r0] cmp r0, 0 beq _0803CCB4 - ldr r0, =gUnknown_02023864 + ldr r0, =gBattleBufferB lsls r1, r2, 9 adds r0, 0x1 adds r1, r0 ldrb r0, [r1] cmp r0, 0xD bne _0803CC94 - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 8 @@ -14471,7 +14471,7 @@ _0803CC38: adds r0, r1 movs r1, 0x3 strb r1, [r0] - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication ldrb r0, [r5] _0803CC72: adds r0, r1 @@ -14483,7 +14483,7 @@ _0803CC94: adds r0, r2, 0 movs r1, 0x1 bl sub_8185008 - ldr r2, =gUnknown_02024332 + ldr r2, =gBattleCommunication ldrb r0, [r5] adds r2, r0, r2 ldr r1, [r4] @@ -14494,16 +14494,16 @@ _0803CC94: b _0803CD04 .pool _0803CCB4: - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker strb r2, [r0] - ldr r7, =gUnknown_02024214 + ldr r7, =gBattlescriptCurrInstr ldr r6, =gUnknown_02024220 ldrb r0, [r5] lsls r0, 2 adds r0, r6 ldr r4, [r0] str r4, [r7] - ldr r3, =gUnknown_02024068 + ldr r3, =gBattleExecBuffer ldr r1, =gBitTable ldrb r0, [r5] lsls r0, 2 @@ -14522,7 +14522,7 @@ _0803CCB4: ands r0, r1 cmp r0, 0 bne _0803CCFA - ldr r0, =gUnknown_0831BD10 + ldr r0, =gBattleScriptingCommandsTable ldrb r1, [r4] lsls r1, 2 adds r1, r0 @@ -14535,11 +14535,11 @@ _0803CCFA: ldr r1, [r7] str r1, [r0] _0803CD04: - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks lsls r1, 24 lsrs r1, 24 _0803CD12: @@ -14549,14 +14549,14 @@ _0803CD12: bcs _0803CD1E bl _0803BE9C _0803CD1E: - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication ldrb r0, [r0, 0x4] ldrb r1, [r5] cmp r0, r1 bne _0803CD70 movs r0, 0x1 bl sub_818603C - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =sub_803D2E8 str r0, [r1] ldr r0, =gBattleTypeFlags @@ -14578,7 +14578,7 @@ _0803CD4A: bne _0803CD66 lsls r0, r4, 24 lsrs r0, 24 - ldr r1, =gUnknown_0202449C + ldr r1, =gBattleStruct ldr r1, [r1] adds r1, r4, r1 adds r1, 0x5C @@ -14586,7 +14586,7 @@ _0803CD4A: bl sub_80571DC _0803CD66: adds r4, 0x1 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _0803CD4A @@ -14607,12 +14607,12 @@ sub_803CDB8: @ 803CDB8 push {r4,r5,lr} movs r3, 0 movs r1, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r2, [r0] adds r5, r0, 0 cmp r3, r2 bge _0803CDDA - ldr r4, =gUnknown_02024332 + ldr r4, =gBattleCommunication _0803CDCA: adds r0, r1, r4 ldrb r0, [r0] @@ -14642,13 +14642,13 @@ _0803CDF2: thumb_func_start sub_803CDF8 sub_803CDF8: @ 803CDF8 push {r4-r7,lr} - ldr r7, =gUnknown_02024064 + ldr r7, =gActiveBank ldrb r0, [r7] - ldr r6, =gUnknown_0202449C + ldr r6, =gBattleStruct ldr r1, [r6] adds r1, r0, r1 adds r1, 0x5C - ldr r4, =gUnknown_02023864 + ldr r4, =gBattleBufferB lsls r0, 9 adds r2, r4, 0x1 adds r0, r2 @@ -14764,7 +14764,7 @@ sub_803CEDC: @ 803CEDC ldrb r3, [r2] strb r3, [r4] strb r5, [r2] - ldr r2, =gUnknown_0202407E + ldr r2, =gTurnOrder adds r0, r2 ldrb r5, [r0] adds r1, r2 @@ -14801,7 +14801,7 @@ b_first_side: @ 803CF10 movs r1, 0 movs r2, 0xD movs r3, 0 - bl ability_something + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 bne _0803CFD8 @@ -14811,7 +14811,7 @@ b_first_side: @ 803CF10 movs r1, 0 movs r2, 0x4D movs r3, 0 - bl ability_something + bl AbilityBattleEffects lsls r0, 24 cmp r0, 0 bne _0803CFD8 @@ -14904,7 +14904,7 @@ _0803CFDC: ldrh r0, [r4, 0x2E] cmp r0, 0xAF bne _0803D02C - ldr r1, =gUnknown_02024404 + ldr r1, =gEnigmaBerries mov r3, r9 lsls r0, r3, 3 subs r0, r3 @@ -14916,11 +14916,11 @@ _0803CFDC: .pool _0803D02C: ldrh r0, [r4, 0x2E] - bl itemid_get_x12 + bl ItemId_GetHoldEffect lsls r0, 24 lsrs r6, r0, 24 ldrh r0, [r4, 0x2E] - bl itemid_get_quality + bl ItemId_GetHoldEffectParam lsls r0, 24 lsrs r5, r0, 24 _0803D040: @@ -14936,7 +14936,7 @@ _0803D040: cmp r0, 0 beq _0803D074 mov r0, r9 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0803D074 @@ -15008,7 +15008,7 @@ _0803D0B8: ldrh r0, [r4, 0x2E] cmp r0, 0xAF bne _0803D118 - ldr r1, =gUnknown_02024404 + ldr r1, =gEnigmaBerries mov r3, r10 lsls r0, r3, 3 subs r0, r3 @@ -15020,11 +15020,11 @@ _0803D0B8: .pool _0803D118: ldrh r0, [r4, 0x2E] - bl itemid_get_x12 + bl ItemId_GetHoldEffect lsls r0, 24 lsrs r6, r0, 24 ldrh r0, [r4, 0x2E] - bl itemid_get_quality + bl ItemId_GetHoldEffectParam lsls r0, 24 lsrs r5, r0, 24 _0803D12C: @@ -15040,7 +15040,7 @@ _0803D12C: cmp r0, 0 beq _0803D15C mov r0, r10 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0803D15C @@ -15096,7 +15096,7 @@ _0803D1B8: adds r2, r0, 0 cmp r1, 0 bne _0803D208 - ldr r0, =gUnknown_0202433C + ldr r0, =gProtectStructs lsls r1, r3, 4 adds r1, r0 ldrb r0, [r1] @@ -15107,7 +15107,7 @@ _0803D1B8: b _0803D20A .pool _0803D1E0: - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] add r0, r9 adds r0, 0x80 @@ -15132,7 +15132,7 @@ _0803D20A: ldrb r0, [r0] cmp r0, 0 bne _0803D254 - ldr r0, =gUnknown_0202433C + ldr r0, =gProtectStructs lsls r1, 4 adds r1, r0 ldrb r0, [r1] @@ -15143,7 +15143,7 @@ _0803D20A: b _0803D256 .pool _0803D22C: - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] add r0, r10 adds r0, 0x80 @@ -15255,9 +15255,9 @@ sub_803D2E8: @ 803D2E8 ands r0, r1 cmp r0, 0 beq _0803D354 - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank strb r3, [r0] - ldr r4, =gUnknown_0202406C + ldr r4, =gNoOfAllBanks mov r8, r0 ldrb r0, [r4] cmp r3, r0 @@ -15267,7 +15267,7 @@ _0803D310: ldr r7, =gUnknown_0202407A ldr r6, =gUnknown_0202421C mov r2, r8 - ldr r5, =gUnknown_0202407E + ldr r5, =gTurnOrder _0803D318: adds r1, r3, r7 ldrb r0, [r2] @@ -15293,9 +15293,9 @@ _0803D354: ands r1, r2 cmp r1, 0 beq _0803D3A4 - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank strb r3, [r0] - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks mov r8, r0 adds r2, r1, 0 ldrb r2, [r2] @@ -15313,7 +15313,7 @@ _0803D376: strb r0, [r7] lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks ldrb r1, [r1] cmp r0, r1 bcs _0803D3C0 @@ -15327,7 +15327,7 @@ _0803D376: _0803D3A4: ldr r1, =gUnknown_0202421C ldrb r0, [r1] - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank mov r8, r4 cmp r0, 0x3 bne _0803D3B4 @@ -15351,27 +15351,27 @@ _0803D3C0: adds r0, r1 ldrb r0, [r0] strb r0, [r6] - ldr r2, =gUnknown_0202407E + ldr r2, =gTurnOrder mov r3, r8 ldrb r0, [r3] strb r0, [r2] movs r3, 0x1 movs r5, 0 adds r4, r1, 0 - ldr r7, =gUnknown_03005D04 + ldr r7, =gBattleMainFunc mov r10, r7 ldr r0, =bc_80154A0 mov r12, r0 - ldr r1, =gUnknown_0202449C + ldr r1, =gBattleStruct mov r9, r1 - ldr r7, =gUnknown_0202406C + ldr r7, =gNoOfAllBanks ldrb r7, [r7] cmp r5, r7 bge _0803D41A adds r7, r6, 0 adds r6, r4, 0 adds r4, r2, 0 - ldr r2, =gUnknown_0202406C + ldr r2, =gNoOfAllBanks _0803D3FC: mov r0, r8 ldrb r0, [r0] @@ -15401,14 +15401,14 @@ _0803D448: movs r0, 0 mov r7, r8 strb r0, [r7] - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks ldrb r0, [r1] cmp r0, 0 beq _0803D48E ldr r6, =gUnknown_0202421C mov r2, r8 ldr r5, =gUnknown_0202407A - ldr r4, =gUnknown_0202407E + ldr r4, =gTurnOrder _0803D45E: ldrb r0, [r2] adds r0, r6 @@ -15431,7 +15431,7 @@ _0803D47C: strb r0, [r2] lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks ldrb r1, [r1] cmp r0, r1 bcc _0803D45E @@ -15439,13 +15439,13 @@ _0803D48E: movs r0, 0 mov r2, r8 strb r0, [r2] - ldr r4, =gUnknown_0202406C + ldr r4, =gNoOfAllBanks ldrb r0, [r4] cmp r0, 0 beq _0803D4D2 ldr r6, =gUnknown_0202421C ldr r5, =gUnknown_0202407A - ldr r4, =gUnknown_0202407E + ldr r4, =gTurnOrder _0803D4A2: ldrb r0, [r2] adds r0, r6 @@ -15468,7 +15468,7 @@ _0803D4C0: strb r0, [r2] lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks ldrb r1, [r1] cmp r0, r1 bcc _0803D4A2 @@ -15486,7 +15486,7 @@ _0803D4E8: lsls r2, r5, 24 mov r8, r2 _0803D4F8: - ldr r0, =gUnknown_0202407E + ldr r0, =gTurnOrder adds r1, r5, r0 ldrb r3, [r1] adds r0, r4, r0 @@ -15516,23 +15516,23 @@ _0803D4F8: bl sub_803CEDC _0803D534: adds r4, 0x1 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _0803D4F8 _0803D53E: adds r5, r7, 0 _0803D540: - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks ldrb r0, [r1] subs r0, 0x1 cmp r5, r0 blt _0803D4E8 _0803D54A: - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =bc_80154A0 str r0, [r1] - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] _0803D554: adds r0, 0x48 @@ -15558,19 +15558,19 @@ sub_803D580: @ 803D580 lsls r0, 24 lsrs r0, 24 mov r9, r0 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank movs r0, 0 strb r0, [r1] - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r2, [r0] adds r5, r1, 0 cmp r2, 0 beq _0803D678 - ldr r7, =gUnknown_0202433C + ldr r7, =gProtectStructs adds r6, r5, 0 ldr r0, =gUnknown_020240D4 mov r12, r0 - ldr r1, =gUnknown_020242BC + ldr r1, =gDisableStructs mov r8, r1 mov r10, r8 _0803D5AE: @@ -15666,13 +15666,13 @@ _0803D666: strb r0, [r5] lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks ldrb r1, [r1] cmp r0, r1 bcc _0803D5AE _0803D678: movs r0, 0 - ldr r2, =gUnknown_02024294 + ldr r2, =gSideTimers strb r0, [r2, 0x8] strb r0, [r2, 0x14] pop {r3-r5} @@ -15688,17 +15688,17 @@ _0803D678: thumb_func_start sub_803D6A0 sub_803D6A0: @ 803D6A0 push {r4-r6,lr} - ldr r2, =gUnknown_02024064 + ldr r2, =gActiveBank movs r0, 0 strb r0, [r2] - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r1, [r0] adds r6, r0, 0 cmp r1, 0 beq _0803D6DE adds r3, r2, 0 movs r4, 0 - ldr r5, =gUnknown_0202437C + ldr r5, =gSpecialStatuses _0803D6B8: ldrb r1, [r3] lsls r0, r1, 2 @@ -15730,25 +15730,25 @@ _0803D6DE: thumb_func_start bc_80154A0 bc_80154A0: @ 803D6F0 push {r4-r7,lr} - ldr r0, =gUnknown_02024280 + ldr r0, =gHitMarker ldr r0, [r0] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 bne _0803D7AE - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct ldr r0, [r2] adds r0, 0x48 - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks ldrb r0, [r0] mov r12, r2 adds r6, r1, 0 ldrb r1, [r6] cmp r0, r1 bcs _0803D7AE - ldr r5, =gUnknown_02024064 - ldr r4, =gUnknown_0202420B + ldr r5, =gActiveBank + ldr r4, =gBankAttacker movs r7, 0x84 lsls r7, 1 _0803D71C: @@ -15777,7 +15777,7 @@ _0803D71C: ands r0, r1 cmp r0, 0 bne _0803D7A0 - ldr r2, =gUnknown_020242BC + ldr r2, =gDisableStructs ldrb r1, [r4] lsls r0, r1, 3 subs r0, r1 @@ -15787,7 +15787,7 @@ _0803D71C: lsls r0, 31 cmp r0, 0 bne _0803D7A0 - ldr r0, =gUnknown_0202433C + ldr r0, =gProtectStructs lsls r1, r3, 4 adds r1, r0 ldrb r0, [r1] @@ -15811,7 +15811,7 @@ _0803D7AE: ldr r1, =gUnknown_02024082 movs r0, 0 strb r0, [r1] - ldr r1, =gUnknown_02024083 + ldr r1, =gFightStateTracker ldr r0, =gUnknown_0202407A movs r3, 0 ldrb r0, [r0] @@ -15819,18 +15819,18 @@ _0803D7AE: ldr r0, =gUnknown_02024400 movs r2, 0 strh r3, [r0] - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] strb r2, [r0, 0x13] - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =bc_bs_exec str r0, [r1] - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication strb r2, [r0, 0x3] strb r2, [r0, 0x4] - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting strb r2, [r0, 0x16] - ldr r0, =gUnknown_020244A8 + ldr r0, =gBattleResources ldr r0, [r0] ldr r0, [r0, 0x8] adds r0, 0x20 @@ -15845,15 +15845,15 @@ _0803D7E8: thumb_func_start bc_bs_exec bc_bs_exec: @ 803D818 push {r4-r6,lr} - ldr r6, =gUnknown_0202433A + ldr r6, =gBattleOutcome ldrb r0, [r6] - ldr r2, =gUnknown_02024083 + ldr r2, =gFightStateTracker cmp r0, 0 beq _0803D828 movs r0, 0xC strb r0, [r2] _0803D828: - ldr r5, =gUnknown_0202449C + ldr r5, =gBattleStruct ldr r0, [r5] adds r0, 0x4B ldr r4, =gUnknown_02024082 @@ -15865,17 +15865,17 @@ _0803D828: adds r0, r1 ldr r0, [r0] bl _call_via_r0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r1, [r4] ldrb r0, [r0] cmp r1, r0 bcc _0803D894 - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker ldr r0, [r2] ldr r1, =0xffefffff ands r0, r1 str r0, [r2] - ldr r3, =gUnknown_03005D04 + ldr r3, =gBattleMainFunc ldr r2, =gUnknown_0831BC44 ldrb r1, [r6] movs r0, 0x7F @@ -15892,7 +15892,7 @@ _0803D894: ldrb r0, [r0] cmp r0, r1 beq _0803D8AC - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker ldr r0, [r2] ldr r1, =0xfffffdff ands r0, r1 @@ -15909,7 +15909,7 @@ _0803D8AC: thumb_func_start sub_803D8C0 sub_803D8C0: @ 803D8C0 push {r4,lr} - ldr r1, =gUnknown_02024083 + ldr r1, =gFightStateTracker movs r0, 0 strb r0, [r1] ldr r1, =gBattleTypeFlags @@ -15918,18 +15918,18 @@ sub_803D8C0: @ 803D8C0 ands r0, r2 cmp r0, 0 beq _0803D920 - ldr r1, =gUnknown_020375F0 - ldr r4, =gUnknown_0202433A + ldr r1, =gScriptResult + ldr r4, =gBattleOutcome ldrb r0, [r4] strh r0, [r1] - ldr r1, =gUnknown_02022F58 + ldr r1, =gBattleTextBuff1 ldrb r0, [r4] strb r0, [r1] movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, =gUnknown_0202420B + bl GetBankByPlayerAI + ldr r1, =gBankAttacker strb r0, [r1] - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DAA35 str r0, [r1] ldrb r1, [r4] @@ -15948,7 +15948,7 @@ _0803D920: cmp r2, 0 beq _0803D95C bl sub_805EA60 - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DAA87 str r0, [r1] ldr r0, =gUnknown_02038BCA @@ -15969,7 +15969,7 @@ _0803D95C: b _0803DA9E _0803D968: bl sub_805EA60 - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DA92D str r0, [r1] ldr r2, =gTrainers @@ -16046,30 +16046,30 @@ _0803D9A8: .4byte _0803DA80 _0803DA74: ldr r0, =0x00000163 - bl song_play_for_text + bl PlayBGM b _0803DAA4 .pool _0803DA80: movs r0, 0xD4 lsls r0, 1 - bl song_play_for_text + bl PlayBGM b _0803DAA4 _0803DA8A: movs r0, 0xB1 lsls r0, 1 - bl song_play_for_text + bl PlayBGM b _0803DAA4 _0803DA94: movs r0, 0xCE lsls r0, 1 - bl song_play_for_text + bl PlayBGM b _0803DAA4 _0803DA9E: - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DA96A str r0, [r1] _0803DAA4: - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =sub_803DCD8 str r0, [r1] pop {r4} @@ -16081,7 +16081,7 @@ _0803DAA4: thumb_func_start sub_803DAC0 sub_803DAC0: @ 803DAC0 push {r4,lr} - ldr r1, =gUnknown_02024083 + ldr r1, =gFightStateTracker movs r0, 0 strb r0, [r1] ldr r0, =gBattleTypeFlags @@ -16094,13 +16094,13 @@ sub_803DAC0: @ 803DAC0 ands r1, r0 cmp r1, 0 beq _0803DB44 - ldr r3, =gUnknown_0202433A + ldr r3, =gBattleOutcome ldrb r2, [r3] movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _0803DB2C - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB9C8 str r0, [r1] movs r0, 0x7F @@ -16117,7 +16117,7 @@ sub_803DAC0: @ 803DAC0 b _0803DB82 .pool _0803DB2C: - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DAA0B str r0, [r1] movs r0, 0x7F @@ -16126,15 +16126,15 @@ _0803DB2C: b _0803DB82 .pool _0803DB44: - ldr r1, =gUnknown_02022F58 - ldr r4, =gUnknown_0202433A + ldr r1, =gBattleTextBuff1 + ldr r4, =gBattleOutcome ldrb r0, [r4] strb r0, [r1] movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, =gUnknown_0202420B + bl GetBankByPlayerAI + ldr r1, =gBankAttacker strb r0, [r1] - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DAA35 str r0, [r1] ldrb r1, [r4] @@ -16144,11 +16144,11 @@ _0803DB44: b _0803DB82 .pool _0803DB7C: - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DA96D str r0, [r1] _0803DB82: - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =sub_803DCD8 str r0, [r1] pop {r4} @@ -16160,7 +16160,7 @@ _0803DB82: thumb_func_start sub_803DBA0 sub_803DBA0: @ 803DBA0 push {lr} - ldr r1, =gUnknown_02024083 + ldr r1, =gFightStateTracker movs r0, 0 strb r0, [r1] ldr r1, =gBattleTypeFlags @@ -16173,10 +16173,10 @@ sub_803DBA0: @ 803DBA0 ands r2, r0 cmp r2, 0 beq _0803DBFC - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB9C1 str r0, [r1] - ldr r1, =gUnknown_0202433A + ldr r1, =gBattleOutcome movs r0, 0x9 strb r0, [r1] ldr r0, =gSaveBlock2Ptr @@ -16196,17 +16196,17 @@ _0803DBFC: ands r0, r1 cmp r0, 0 beq _0803DC24 - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB9C1 str r0, [r1] - ldr r1, =gUnknown_0202433A + ldr r1, =gBattleOutcome movs r0, 0x9 strb r0, [r1] b _0803DC6A .pool _0803DC24: - ldr r1, =gUnknown_0202433C - ldr r0, =gUnknown_0202420B + ldr r1, =gProtectStructs + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -16217,22 +16217,22 @@ _0803DC24: beq _0803DC54 cmp r0, 0x2 beq _0803DC64 - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DAAF0 b _0803DC68 .pool _0803DC54: - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DAADB b _0803DC68 .pool _0803DC64: - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DAAE9 _0803DC68: str r0, [r1] _0803DC6A: - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =sub_803DCD8 str r0, [r1] pop {r0} @@ -16242,18 +16242,18 @@ _0803DC6A: thumb_func_start bc_80158BC bc_80158BC: @ 803DC84 - ldr r1, =gUnknown_02024083 + ldr r1, =gFightStateTracker movs r0, 0 strb r0, [r1] - ldr r1, =gUnknown_02022F58 + ldr r1, =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x7 strb r0, [r1, 0x1] - ldr r2, =gUnknown_0202420B + ldr r2, =gBankAttacker ldrb r0, [r2] strb r0, [r1, 0x2] - ldr r3, =gUnknown_0202406E + ldr r3, =gBattlePartyID ldrb r0, [r2] lsls r0, 1 adds r0, r3 @@ -16261,10 +16261,10 @@ bc_80158BC: @ 803DC84 strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DAAF7 str r0, [r1] - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =sub_803DCD8 str r0, [r1] bx lr @@ -16276,7 +16276,7 @@ sub_803DCD8: @ 803DCD8 push {r4-r7,lr} mov r7, r8 push {r7} - ldr r0, =gUnknown_02024083 + ldr r0, =gFightStateTracker ldrb r0, [r0] subs r0, 0xB lsls r0, 24 @@ -16291,20 +16291,20 @@ _0803DCEE: ands r1, r0 cmp r1, 0 bne _0803DDB6 - ldr r2, =gUnknown_02024064 + ldr r2, =gActiveBank strb r1, [r2] - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r1, r0 bcs _0803DDB2 adds r5, r2, 0 - ldr r0, =gUnknown_0202406E + ldr r0, =gBattlePartyID mov r8, r0 movs r7, 0x64 ldr r6, =gPlayerParty _0803DD10: ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0803DDA0 @@ -16359,7 +16359,7 @@ _0803DDA0: ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] @@ -16386,8 +16386,8 @@ _0803DDD2: movs r0, 0x3 bl BeginFastPaletteFade movs r0, 0x5 - bl sub_80A2F50 - ldr r1, =gUnknown_03005D04 + bl FadeOutMapMusic + ldr r1, =gBattleMainFunc ldr r0, =sub_803DE40 str r0, [r1] ldr r1, =gUnknown_030061E8 @@ -16396,12 +16396,12 @@ _0803DDD2: b _0803DE2A .pool _0803DE10: - ldr r0, =gUnknown_02024068 + ldr r0, =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _0803DE2A - ldr r1, =gUnknown_0831BD10 - ldr r0, =gUnknown_02024214 + ldr r1, =gBattleScriptingCommandsTable + ldr r0, =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0] lsls r0, 2 @@ -16426,23 +16426,23 @@ sub_803DE40: @ 803DE40 ands r0, r1 cmp r0, 0 bne _0803DE86 - bl ResetAllObjectData + bl ResetSpriteData ldr r0, =gUnknown_03005D54 ldrb r0, [r0] cmp r0, 0 beq _0803DE62 - ldr r0, =gUnknown_0202433A + ldr r0, =gBattleOutcome ldrb r0, [r0] cmp r0, 0x1 beq _0803DE80 _0803DE62: - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =c4_overworld str r0, [r1] b _0803DEA2 .pool _0803DE80: - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =bc_evolution_cutscene str r0, [r1] _0803DE86: @@ -16497,7 +16497,7 @@ _0803DEC2: cmp r4, 0 beq _0803DF20 bl FreeAllWindowBuffers - ldr r0, =gUnknown_03005D04 + ldr r0, =gBattleMainFunc ldr r1, =sub_803DF48 str r1, [r0] lsls r3, r6, 24 @@ -16517,7 +16517,7 @@ _0803DF20: cmp r0, 0 bne _0803DEC0 _0803DF2E: - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =c4_overworld str r0, [r1] _0803DF34: @@ -16535,7 +16535,7 @@ sub_803DF48: @ 803DF48 ldr r0, =sub_8038420 cmp r1, r0 bne _0803DF5A - ldr r1, =gUnknown_03005D04 + ldr r1, =gBattleMainFunc ldr r0, =bc_evolution_cutscene str r0, [r1] _0803DF5A: @@ -16569,8 +16569,8 @@ _0803DF8C: cmp r0, 0 bne _0803DFEC _0803DF9E: - ldr r1, =gUnknown_020375F0 - ldr r5, =gUnknown_0202433A + ldr r1, =gScriptResult + ldr r5, =gBattleOutcome ldrb r0, [r5] strh r0, [r1] ldr r3, =gMain @@ -16616,14 +16616,14 @@ _0803DFEC: thumb_func_start bc_move_exec_returning bc_move_exec_returning: @ 803E018 push {lr} - ldr r0, =gUnknown_02024083 + ldr r0, =gFightStateTracker ldrb r0, [r0] subs r0, 0xB lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0803E060 - ldr r3, =gUnknown_020244A8 + ldr r3, =gBattleResources ldr r0, [r3] ldr r0, [r0, 0xC] adds r1, r0, 0 @@ -16634,7 +16634,7 @@ bc_move_exec_returning: @ 803E018 subs r0, 0x1 strb r0, [r1] _0803E03C: - ldr r2, =gUnknown_03005D04 + ldr r2, =gBattleMainFunc ldr r0, [r3] ldr r1, [r0, 0xC] adds r0, r1, 0 @@ -16647,12 +16647,12 @@ _0803E03C: b _0803E07A .pool _0803E060: - ldr r0, =gUnknown_02024068 + ldr r0, =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _0803E07A - ldr r1, =gUnknown_0831BD10 - ldr r0, =gUnknown_02024214 + ldr r1, =gBattleScriptingCommandsTable + ldr r0, =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0] lsls r0, 2 @@ -16668,12 +16668,12 @@ _0803E07A: thumb_func_start sub_803E08C sub_803E08C: @ 803E08C push {lr} - ldr r0, =gUnknown_02024068 + ldr r0, =gBattleExecBuffer ldr r0, [r0] cmp r0, 0 bne _0803E0A8 - ldr r1, =gUnknown_0831BD10 - ldr r0, =gUnknown_02024214 + ldr r1, =gBattleScriptingCommandsTable + ldr r0, =gBattlescriptCurrInstr ldr r0, [r0] ldrb r0, [r0] lsls r0, 2 @@ -16696,14 +16696,14 @@ sub_803E0B8: @ 803E0B8 sub sp, 0x4 movs r0, 0x4 str r0, [sp] - ldr r6, =gUnknown_0202420B - ldr r1, =gUnknown_0202407E + ldr r6, =gBankAttacker + ldr r1, =gTurnOrder ldr r0, =gUnknown_02024082 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] strb r0, [r6] - ldr r1, =gUnknown_0202449C + ldr r1, =gBattleStruct ldr r3, [r1] adds r0, r3, 0 adds r0, 0x91 @@ -16716,7 +16716,7 @@ sub_803E0B8: @ 803E0B8 ands r2, r0 cmp r2, 0 beq _0803E110 - ldr r1, =gUnknown_02024083 + ldr r1, =gFightStateTracker movs r0, 0xC b _0803E83C .pool @@ -16724,7 +16724,7 @@ _0803E110: ldr r1, =gCritMultiplier movs r0, 0x1 strb r0, [r1] - ldr r1, =gUnknown_02024474 + ldr r1, =gBattleScripting movs r0, 0x1 strb r0, [r1, 0xE] ldr r5, =0x000001a3 @@ -16734,13 +16734,13 @@ _0803E110: strb r2, [r0] ldr r0, =gUnknown_02024212 strb r2, [r0] - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication strb r2, [r0, 0x6] - ldr r2, =gUnknown_020241E8 + ldr r2, =gCurrMovePos ldr r0, =gUnknown_020241E9 mov r9, r0 ldrb r0, [r6] - ldr r3, =gUnknown_0202449C + ldr r3, =gBattleStruct ldr r1, [r3] adds r0, r1 adds r0, 0x80 @@ -16748,7 +16748,7 @@ _0803E110: mov r5, r9 strb r0, [r5] strb r0, [r2] - ldr r1, =gUnknown_0202433C + ldr r1, =gProtectStructs ldrb r4, [r6] lsls r0, r4, 4 adds r3, r0, r1 @@ -16761,12 +16761,12 @@ _0803E110: negs r0, r0 ands r0, r1 strb r0, [r3] - ldr r2, =gUnknown_020241EA + ldr r2, =gCurrentMove ldr r1, =gUnknown_020241EC movs r0, 0xA5 strh r0, [r1] strh r0, [r2] - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker ldr r0, [r2] movs r1, 0x80 lsls r1, 4 @@ -16774,9 +16774,9 @@ _0803E110: str r0, [r2] movs r0, 0xA5 movs r1, 0 - bl sub_80458E0 + bl GetMoveTarget ldrb r1, [r6] - ldr r3, =gUnknown_0202449C + ldr r3, =gBattleStruct ldr r2, [r3] b _0803E316 .pool @@ -16801,7 +16801,7 @@ _0803E1BC: cmp r7, 0 beq _0803E204 _0803E1E2: - ldr r3, =gUnknown_020241EA + ldr r3, =gCurrentMove ldr r2, =gUnknown_020241EC ldr r1, =gUnknown_02024268 lsls r0, r4, 1 @@ -16812,7 +16812,7 @@ _0803E1E2: b _0803E33C .pool _0803E204: - ldr r1, =gUnknown_020242BC + ldr r1, =gDisableStructs mov r12, r1 lsls r0, r4, 3 subs r0, r4 @@ -16831,7 +16831,7 @@ _0803E204: ldrh r0, [r0] cmp r1, r0 bne _0803E268 - ldr r2, =gUnknown_020241EA + ldr r2, =gCurrentMove ldr r0, =gUnknown_020241EC strh r3, [r0] strh r3, [r2] @@ -16847,9 +16847,9 @@ _0803E204: strb r0, [r5] ldrh r0, [r2] movs r1, 0 - bl sub_80458E0 + bl GetMoveTarget ldrb r1, [r6] - ldr r3, =gUnknown_0202449C + ldr r3, =gBattleStruct ldr r2, [r3] b _0803E316 .pool @@ -16862,7 +16862,7 @@ _0803E268: strb r2, [r5] mov r0, r8 strb r2, [r0] - ldr r3, =gUnknown_020241EA + ldr r3, =gCurrentMove ldr r2, =gUnknown_020241EC ldrb r0, [r0] lsls r0, 1 @@ -16899,9 +16899,9 @@ _0803E268: strb r0, [r1, 0xE] ldrh r0, [r3] movs r1, 0 - bl sub_80458E0 + bl GetMoveTarget ldrb r1, [r6] - ldr r3, =gUnknown_0202449C + ldr r3, =gBattleStruct ldr r2, [r3] b _0803E316 .pool @@ -16910,7 +16910,7 @@ _0803E2DC: mov r5, r8 ldrb r0, [r5] lsls r0, 1 - ldr r4, =gUnknown_0202420B + ldr r4, =gBankAttacker ldrb r2, [r4] movs r1, 0x58 muls r1, r2 @@ -16924,15 +16924,15 @@ _0803E2DC: ldrh r2, [r2] cmp r3, r2 beq _0803E334 - ldr r1, =gUnknown_020241EA + ldr r1, =gCurrentMove ldr r0, =gUnknown_020241EC strh r3, [r0] strh r3, [r1] ldrh r0, [r1] movs r1, 0 - bl sub_80458E0 + bl GetMoveTarget ldrb r1, [r4] - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct ldr r2, [r2] _0803E316: adds r1, r2 @@ -16940,13 +16940,13 @@ _0803E316: b _0803E33C .pool _0803E334: - ldr r1, =gUnknown_020241EA + ldr r1, =gCurrentMove ldr r0, =gUnknown_020241EC strh r3, [r0] strh r3, [r1] _0803E33C: ldr r2, =gBattleMons - ldr r1, =gUnknown_0202420B + ldr r1, =gBankAttacker ldrb r3, [r1] movs r0, 0x58 muls r0, r3 @@ -16956,30 +16956,30 @@ _0803E33C: cmp r0, 0 beq _0803E384 adds r0, r3, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0803E37C ldr r0, =gUnknown_03005D10 - ldr r1, =gUnknown_020241EA + ldr r1, =gCurrentMove ldrh r1, [r1] strh r1, [r0, 0x22] b _0803E384 .pool _0803E37C: ldr r0, =gUnknown_03005D10 - ldr r1, =gUnknown_020241EA + ldr r1, =gCurrentMove ldrh r1, [r1] strh r1, [r0, 0x24] _0803E384: mov r1, r8 ldrb r0, [r1] - bl battle_side_get_owner + bl GetBankSide movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r6, r0, 24 - ldr r1, =gUnknown_02024294 + ldr r1, =gSideTimers lsls r0, r6, 1 adds r0, r6 lsls r0, 2 @@ -16988,7 +16988,7 @@ _0803E384: cmp r0, 0 beq _0803E400 ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA + ldr r0, =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -16999,10 +16999,10 @@ _0803E384: bne _0803E400 mov r3, r8 ldrb r0, [r3] - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 ldrb r0, [r5, 0x9] - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -17015,7 +17015,7 @@ _0803E384: ldrh r0, [r0, 0x28] cmp r0, 0 beq _0803E400 - ldr r0, =gEnemyMonIndex + ldr r0, =gBankTarget strb r2, [r0] b _0803E76A .pool @@ -17024,13 +17024,13 @@ _0803E400: ldr r0, [r0] movs r1, 0x1 ands r0, r1 - ldr r5, =gUnknown_0202420B + ldr r5, =gBankAttacker mov r8, r5 cmp r0, 0 bne _0803E412 b _0803E6E0 _0803E412: - ldr r1, =gUnknown_02024294 + ldr r1, =gSideTimers lsls r0, r6, 1 adds r0, r6 lsls r0, 2 @@ -17041,7 +17041,7 @@ _0803E412: b _0803E630 _0803E424: ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA + ldr r0, =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -17056,9 +17056,9 @@ _0803E424: b _0803E630 _0803E440: ldr r3, =gBattleMons - ldr r2, =gUnknown_0202420B + ldr r2, =gBankAttacker ldrb r6, [r2] - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] adds r0, r6, r0 ldrb r1, [r0, 0xC] @@ -17078,26 +17078,26 @@ _0803E460: b _0803E630 _0803E468: adds r0, r6, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r6, r0, 24 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank strb r5, [r1] - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r5, r0 bcs _0803E4E0 adds r4, r1, 0 _0803E480: ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r6, r0 beq _0803E4CE - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r1, [r0] - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] adds r1, r0 ldrb r0, [r1, 0xC] @@ -17129,7 +17129,7 @@ _0803E4CE: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] @@ -17152,9 +17152,9 @@ _0803E4E8: ands r5, r0 cmp r5, 0 beq _0803E568 - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0803E548 @@ -17180,26 +17180,26 @@ _0803E548: _0803E558: movs r0, 0x2 _0803E55A: - bl battle_get_side_with_given_state - ldr r1, =gEnemyMonIndex + bl GetBankByPlayerAI + ldr r1, =gBankTarget strb r0, [r1] b _0803E578 .pool _0803E568: - ldr r2, =gEnemyMonIndex - ldr r0, =gUnknown_0202420B + ldr r2, =gBankTarget + ldr r0, =gBankAttacker ldrb r0, [r0] - ldr r1, =gUnknown_0202449C + ldr r1, =gBattleStruct ldr r1, [r1] adds r0, r1 ldrb r0, [r0, 0xC] strb r0, [r2] _0803E578: - ldr r7, =gUnknown_02024210 + ldr r7, =gAbsentBankFlags ldrb r0, [r7] ldr r1, =gBitTable mov r8, r1 - ldr r5, =gEnemyMonIndex + ldr r5, =gBankTarget ldrb r1, [r5] lsls r1, 2 add r1, r8 @@ -17209,12 +17209,12 @@ _0803E578: bne _0803E592 b _0803E76A _0803E592: - ldr r6, =gUnknown_0202420B + ldr r6, =gBankAttacker ldrb r0, [r6] - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -17224,12 +17224,12 @@ _0803E592: .pool _0803E5C4: ldrb r0, [r6] - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI strb r0, [r5] ldrb r1, [r7] ldrb r2, [r5] @@ -17237,8 +17237,8 @@ _0803E5C4: add r0, r8 b _0803E74E _0803E5E2: - ldr r4, =gUnknown_02024064 - ldr r0, =gUnknown_0202407E + ldr r4, =gActiveBank + ldr r0, =gTurnOrder ldr r3, [sp] adds r0, r3, r0 ldrb r0, [r0] @@ -17250,8 +17250,8 @@ _0803E5E2: adds r1, r2 adds r1, 0x20 ldrb r1, [r1] - bl b_history__record_ability_usage_of_player - ldr r2, =gUnknown_0202437C + bl RecordAbilityBattle + ldr r2, =gSpecialStatuses ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 @@ -17261,7 +17261,7 @@ _0803E5E2: movs r2, 0x2 orrs r1, r2 strb r1, [r0] - ldr r1, =gEnemyMonIndex + ldr r1, =gBankTarget ldrb r0, [r4] strb r0, [r1] b _0803E76A @@ -17287,7 +17287,7 @@ _0803E630: beq _0803E6E0 mov r5, r8 ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0803E684 @@ -17313,13 +17313,13 @@ _0803E684: _0803E694: movs r0, 0x2 _0803E696: - bl battle_get_side_with_given_state - ldr r1, =gEnemyMonIndex + bl GetBankByPlayerAI + ldr r1, =gBankTarget strb r0, [r1] - ldr r0, =gUnknown_02024210 + ldr r0, =gAbsentBankFlags ldrb r1, [r0] ldr r2, =gBitTable - ldr r5, =gEnemyMonIndex + ldr r5, =gBankTarget ldrb r0, [r5] lsls r0, 2 adds r0, r2 @@ -17327,12 +17327,12 @@ _0803E696: ands r1, r0 cmp r1, 0 beq _0803E76A - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -17341,15 +17341,15 @@ _0803E696: b _0803E758 .pool _0803E6E0: - ldr r5, =gEnemyMonIndex + ldr r5, =gBankTarget mov r2, r8 ldrb r0, [r2] - ldr r1, =gUnknown_0202449C + ldr r1, =gBattleStruct ldr r1, [r1] adds r0, r1 ldrb r0, [r0, 0xC] strb r0, [r5] - ldr r6, =gUnknown_02024210 + ldr r6, =gAbsentBankFlags ldrb r1, [r6] ldr r7, =gBitTable ldrb r0, [r5] @@ -17360,10 +17360,10 @@ _0803E6E0: cmp r1, 0 beq _0803E76A ldrb r0, [r2] - bl battle_side_get_owner + bl GetBankSide adds r4, r0, 0 ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -17374,12 +17374,12 @@ _0803E6E0: _0803E730: mov r1, r8 ldrb r0, [r1] - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI strb r0, [r5] ldrb r1, [r6] ldrb r2, [r5] @@ -17392,12 +17392,12 @@ _0803E74E: beq _0803E76A adds r0, r2, 0 _0803E758: - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x2 eors r0, r1 lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI strb r0, [r5] _0803E76A: ldr r0, =gBattleTypeFlags @@ -17408,8 +17408,8 @@ _0803E76A: adds r5, r0, 0 cmp r1, 0 beq _0803E808 - ldr r0, =gUnknown_0202433C - ldr r4, =gUnknown_0202420B + ldr r0, =gProtectStructs + ldr r4, =gBankAttacker ldrb r2, [r4] lsls r1, r2, 4 adds r1, r0 @@ -17424,7 +17424,7 @@ _0803E76A: ldrh r0, [r0, 0x28] cmp r0, 0 bne _0803E7B4 - ldr r1, =gUnknown_02024083 + ldr r1, =gFightStateTracker movs r0, 0xC b _0803E83C .pool @@ -17435,11 +17435,11 @@ _0803E7B4: ldr r0, [r0] cmp r0, 0 beq _0803E7EC - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r2, 0 movs r0, 0x4 strb r0, [r1, 0x5] - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldrb r0, [r4] lsls r0, 2 adds r0, r3 @@ -17452,19 +17452,19 @@ _0803E7B4: b _0803E824 .pool _0803E7EC: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x4 strb r0, [r1, 0x5] - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DB6AD str r0, [r1] b _0803E824 .pool _0803E808: - ldr r4, =gUnknown_02024214 + ldr r4, =gBattlescriptCurrInstr ldr r3, =gUnknown_082D86A8 ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA + ldr r0, =gCurrentMove ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 @@ -17482,11 +17482,11 @@ _0803E824: ands r0, r1 cmp r0, 0 beq _0803E838 - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r0, [r0] bl sub_81A56E8 _0803E838: - ldr r1, =gUnknown_02024083 + ldr r1, =gFightStateTracker movs r0, 0xA _0803E83C: strb r0, [r1] @@ -17504,8 +17504,8 @@ _0803E83C: thumb_func_start bs2_8016374 bs2_8016374: @ 803E868 push {r4,lr} - ldr r3, =gUnknown_0202420B - ldr r1, =gUnknown_0202407E + ldr r3, =gBankAttacker + ldr r1, =gTurnOrder ldr r0, =gUnknown_02024082 ldrb r0, [r0] adds r0, r1 @@ -17524,7 +17524,7 @@ bs2_8016374: @ 803E868 ldrb r0, [r3] adds r0, r1 strb r2, [r0] - ldr r2, =gUnknown_02022F58 + ldr r2, =gBattleTextBuff1 movs r0, 0xFD strb r0, [r2] movs r0, 0x7 @@ -17532,7 +17532,7 @@ bs2_8016374: @ 803E868 ldrb r4, [r3] strb r4, [r2, 0x2] ldrb r0, [r3] - ldr r1, =gUnknown_0202449C + ldr r1, =gBattleStruct ldr r1, [r1] adds r0, r1 adds r0, 0x58 @@ -17540,12 +17540,12 @@ bs2_8016374: @ 803E868 strb r0, [r2, 0x3] movs r0, 0xFF strb r0, [r2, 0x4] - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting strb r4, [r0, 0x17] - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DAB15 str r0, [r1] - ldr r1, =gUnknown_02024083 + ldr r1, =gFightStateTracker movs r0, 0xA strb r0, [r1] ldr r1, =gUnknown_03005D10 @@ -17568,9 +17568,9 @@ sub_803E90C: @ 803E90C mov r6, r9 mov r5, r8 push {r5-r7} - ldr r4, =gUnknown_0202420B - ldr r2, =gEnemyMonIndex - ldr r1, =gUnknown_0202407E + ldr r4, =gBankAttacker + ldr r2, =gBankTarget + ldr r1, =gTurnOrder ldr r0, =gUnknown_02024082 ldrb r0, [r0] adds r0, r1 @@ -17585,7 +17585,7 @@ sub_803E90C: @ 803E90C ldrb r0, [r4] bl sub_8045868 ldr r5, =gUnknown_02024208 - ldr r2, =gUnknown_02023864 + ldr r2, =gBattleBufferB ldrb r1, [r4] lsls r1, 9 adds r0, r2, 0x1 @@ -17599,14 +17599,14 @@ sub_803E90C: @ 803E90C strh r3, [r5] cmp r3, 0xC bhi _0803E998 - ldr r2, =gUnknown_02024214 + ldr r2, =gBattlescriptCurrInstr ldr r1, =gUnknown_082DBD08 ldrh r0, [r5] lsls r0, 2 adds r0, r1 ldr r0, [r0] str r0, [r2] - ldr r0, =gUnknown_02024083 + ldr r0, =gFightStateTracker mov r10, r0 b _0803EBF6 .pool @@ -17617,47 +17617,47 @@ _0803E998: lsrs r0, 16 cmp r0, 0x1 bhi _0803E9C0 - ldr r0, =gUnknown_02024214 + ldr r0, =gBattlescriptCurrInstr ldr r1, =gUnknown_082DBD54 ldr r1, [r1] str r1, [r0] - ldr r1, =gUnknown_02024083 + ldr r1, =gFightStateTracker mov r10, r1 b _0803EBF6 .pool _0803E9C0: ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0803E9E8 - ldr r0, =gUnknown_02024214 + ldr r0, =gBattlescriptCurrInstr ldr r1, =gUnknown_082DBD3C ldr r1, [r1] str r1, [r0] - ldr r2, =gUnknown_02024083 + ldr r2, =gFightStateTracker mov r10, r2 b _0803EBF6 .pool _0803E9E8: - ldr r3, =gUnknown_02024474 + ldr r3, =gBattleScripting ldrb r0, [r4] strb r0, [r3, 0x17] lsls r0, 24 lsrs r0, 25 - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct ldr r1, [r2] adds r0, r1 adds r0, 0xC4 ldrb r0, [r0] subs r0, 0x1 mov r8, r4 - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr mov r9, r1 ldr r6, =gUnknown_082DBD3C mov r12, r3 adds r7, r2, 0 - ldr r2, =gUnknown_02024083 + ldr r2, =gFightStateTracker mov r10, r2 cmp r0, 0x4 bls _0803EA14 @@ -17677,10 +17677,10 @@ _0803EA38: .4byte _0803EAE0 .4byte _0803EBB0 _0803EA4C: - ldr r5, =gUnknown_02024332 + ldr r5, =gBattleCommunication movs r0, 0 strb r0, [r5, 0x5] - ldr r2, =gUnknown_0202420B + ldr r2, =gBankAttacker ldrb r0, [r2] lsrs r0, 1 ldr r1, [r7] @@ -17694,10 +17694,10 @@ _0803EA4C: beq _0803EA98 movs r0, 0x3E ands r0, r1 - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr mov r9, r1 ldr r6, =gUnknown_082DBD3C - ldr r2, =gUnknown_02024083 + ldr r2, =gFightStateTracker mov r10, r2 cmp r0, 0 bne _0803EA7E @@ -17708,10 +17708,10 @@ _0803EA7E: b _0803EBDE .pool _0803EA98: - ldr r0, =gUnknown_02024214 + ldr r0, =gBattlescriptCurrInstr mov r9, r0 ldr r6, =gUnknown_082DBD3C - ldr r1, =gUnknown_02024083 + ldr r1, =gFightStateTracker mov r10, r1 mov r4, r8 adds r3, r7, 0 @@ -17741,10 +17741,10 @@ _0803EAA8: b _0803EBDE .pool _0803EAE0: - ldr r3, =gUnknown_02024332 + ldr r3, =gBattleCommunication movs r0, 0x4 strb r0, [r3, 0x5] - ldr r2, =gUnknown_0202420B + ldr r2, =gBankAttacker ldrb r0, [r2] lsrs r0, 1 ldr r1, [r7] @@ -17761,15 +17761,15 @@ _0803EAE0: beq _0803EB28 movs r0, 0x5 strb r0, [r3, 0x5] - ldr r2, =gUnknown_02024214 + ldr r2, =gBattlescriptCurrInstr mov r9, r2 ldr r6, =gUnknown_082DBD3C - ldr r0, =gUnknown_02024083 + ldr r0, =gFightStateTracker mov r10, r0 b _0803EBDE .pool _0803EB28: - ldr r3, =gUnknown_02022F58 + ldr r3, =gBattleTextBuff1 movs r4, 0xFD strb r4, [r3] movs r0, 0x5 @@ -17778,7 +17778,7 @@ _0803EB28: strb r2, [r3, 0x2] movs r0, 0xFF strb r0, [r3, 0x3] - ldr r1, =gUnknown_02022F68 + ldr r1, =gBattleTextBuff2 strb r4, [r1] strb r5, [r1, 0x1] movs r0, 0xD2 @@ -17788,10 +17788,10 @@ _0803EB28: strb r0, [r1, 0x4] ldrb r0, [r6] ands r2, r0 - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr mov r9, r1 ldr r6, =gUnknown_082DBD3C - ldr r0, =gUnknown_02024083 + ldr r0, =gFightStateTracker mov r10, r0 cmp r2, 0 bne _0803EB8C @@ -17836,21 +17836,21 @@ _0803EBB0: ands r1, r0 cmp r1, 0 beq _0803EBCC - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x2 strb r0, [r1, 0x5] b _0803EBD0 .pool _0803EBCC: - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication strb r1, [r0, 0x5] _0803EBD0: - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker mov r8, r0 - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr mov r9, r1 ldr r6, =gUnknown_082DBD3C - ldr r2, =gUnknown_02024083 + ldr r2, =gFightStateTracker mov r10, r2 _0803EBDE: mov r1, r8 @@ -17896,7 +17896,7 @@ sub_803EC20: @ 803EC20 ldrh r0, [r1, 0x2E] cmp r0, 0xAF bne _0803EC54 - ldr r1, =gUnknown_02024404 + ldr r1, =gEnigmaBerries lsls r0, r5, 3 subs r0, r5 lsls r0, 2 @@ -17906,7 +17906,7 @@ sub_803EC20: @ 803EC20 .pool _0803EC54: ldrh r0, [r1, 0x2E] - bl itemid_get_x12 + bl ItemId_GetHoldEffect lsls r0, 24 lsrs r1, r0, 24 _0803EC5E: @@ -17921,7 +17921,7 @@ _0803EC5E: adds r0, r1 ldrh r0, [r0, 0x2E] strh r0, [r2] - ldr r0, =gUnknown_0202433C + ldr r0, =gProtectStructs lsls r2, r5, 4 adds r2, r0 ldrb r1, [r2, 0x1] @@ -17950,7 +17950,7 @@ _0803EC9C: lsls r0, 24 cmp r0, 0 beq _0803ED38 - ldr r4, =gUnknown_0202449C + ldr r4, =gBattleStruct ldr r1, [r4] adds r1, 0x6C ldrb r0, [r1] @@ -17987,9 +17987,9 @@ _0803EC9C: bhi _0803ED0C b _0803EE12 _0803ED0C: - ldr r0, =gUnknown_0202420A + ldr r0, =gLastUsedAbility strb r6, [r0] - ldr r0, =gUnknown_0202433C + ldr r0, =gProtectStructs lsls r2, r5, 4 adds r2, r0 ldrb r1, [r2, 0x1] @@ -18002,9 +18002,9 @@ _0803ED0C: b _0803ED70 .pool _0803ED38: - ldr r0, =gUnknown_0202420A + ldr r0, =gLastUsedAbility strb r6, [r0] - ldr r0, =gUnknown_0202433C + ldr r0, =gProtectStructs lsls r2, r5, 4 adds r2, r0 ldrb r1, [r2, 0x1] @@ -18079,7 +18079,7 @@ _0803EDBC: _0803EDDA: ldrh r1, [r1, 0x6] bl __divsi3 - ldr r1, =gUnknown_0202449C + ldr r1, =gBattleStruct ldr r1, [r1] adds r1, 0x6C ldrb r2, [r1] @@ -18099,7 +18099,7 @@ _0803EE00: lsls r0, 24 lsrs r7, r0, 24 _0803EE06: - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r1, [r0] adds r1, 0x6C ldrb r0, [r1] @@ -18109,10 +18109,10 @@ _0803EE12: cmp r7, 0 beq _0803EE24 ldr r1, =gUnknown_02024082 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] strb r0, [r1] - ldr r1, =gUnknown_0202433A + ldr r1, =gBattleOutcome movs r0, 0x4 strb r0, [r1] _0803EE24: @@ -18130,8 +18130,8 @@ _0803EE24: thumb_func_start sub_803EE48 sub_803EE48: @ 803EE48 push {r4-r6,lr} - ldr r4, =gUnknown_0202420B - ldr r1, =gUnknown_0202407E + ldr r4, =gBankAttacker + ldr r1, =gTurnOrder ldr r5, =gUnknown_02024082 ldrb r0, [r5] adds r0, r1 @@ -18143,10 +18143,10 @@ sub_803EE48: @ 803EE48 ands r0, r1 cmp r0, 0 beq _0803EF0C - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r1, [r0] strb r1, [r5] - ldr r2, =gUnknown_02024064 + ldr r2, =gActiveBank movs r0, 0 strb r0, [r2] lsls r1, 24 @@ -18154,10 +18154,10 @@ sub_803EE48: @ 803EE48 beq _0803EEE0 adds r4, r2, 0 ldr r6, =gUnknown_0202421C - ldr r5, =gUnknown_0202433A + ldr r5, =gBattleOutcome _0803EE7C: ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0803EEBC @@ -18185,14 +18185,14 @@ _0803EECE: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _0803EE7C _0803EEE0: - ldr r2, =gUnknown_0202433A + ldr r2, =gBattleOutcome ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 @@ -18208,7 +18208,7 @@ _0803EEE0: .pool _0803EF0C: ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0803EF4C @@ -18219,13 +18219,13 @@ _0803EF0C: bne _0803EF98 ldrb r0, [r4] bl sub_8045868 - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x3 strb r0, [r1, 0x5] - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DAB02 str r0, [r1] - ldr r1, =gUnknown_02024083 + ldr r1, =gFightStateTracker movs r0, 0xA b _0803EF96 .pool @@ -18241,21 +18241,21 @@ _0803EF4C: ands r0, r1 cmp r0, 0 beq _0803EF8C - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x4 strb r0, [r1, 0x5] - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DAB02 str r0, [r1] - ldr r1, =gUnknown_02024083 + ldr r1, =gFightStateTracker movs r0, 0xA b _0803EF96 .pool _0803EF8C: - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] strb r0, [r5] - ldr r1, =gUnknown_0202433A + ldr r1, =gBattleOutcome movs r0, 0x6 _0803EF96: strb r0, [r1] @@ -18268,8 +18268,8 @@ _0803EF98: thumb_func_start sub_803EFA8 sub_803EFA8: @ 803EFA8 - ldr r2, =gUnknown_0202420B - ldr r1, =gUnknown_0202407E + ldr r2, =gBankAttacker + ldr r1, =gTurnOrder ldr r0, =gUnknown_02024082 ldrb r0, [r0] adds r0, r1 @@ -18280,11 +18280,11 @@ sub_803EFA8: @ 803EFA8 strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DBD58 ldr r0, [r0] str r0, [r1] - ldr r1, =gUnknown_02024083 + ldr r1, =gFightStateTracker movs r0, 0xA strb r0, [r1] bx lr @@ -18293,8 +18293,8 @@ sub_803EFA8: @ 803EFA8 thumb_func_start bs5_8016AC0 bs5_8016AC0: @ 803EFF0 - ldr r2, =gUnknown_0202420B - ldr r1, =gUnknown_0202407E + ldr r2, =gBankAttacker + ldr r1, =gTurnOrder ldr r0, =gUnknown_02024082 ldrb r0, [r0] adds r0, r1 @@ -18312,11 +18312,11 @@ bs5_8016AC0: @ 803EFF0 ldr r1, =gUnknown_02024208 movs r0, 0x5 strh r0, [r1] - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DBD08 ldr r0, [r0, 0x14] str r0, [r1] - ldr r1, =gUnknown_02024083 + ldr r1, =gFightStateTracker movs r0, 0xA strb r0, [r1] bx lr @@ -18326,8 +18326,8 @@ bs5_8016AC0: @ 803EFF0 thumb_func_start sub_803F050 sub_803F050: @ 803F050 push {r4-r6,lr} - ldr r3, =gUnknown_0202420B - ldr r1, =gUnknown_0202407E + ldr r3, =gBankAttacker + ldr r1, =gTurnOrder ldr r0, =gUnknown_02024082 ldrb r0, [r0] adds r0, r1 @@ -18338,8 +18338,8 @@ sub_803F050: @ 803F050 strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] - ldr r6, =gUnknown_02024332 - ldr r2, =gUnknown_02023864 + ldr r6, =gBattleCommunication + ldr r2, =gBattleBufferB ldrb r0, [r3] lsls r0, 9 adds r1, r2, 0x1 @@ -18361,7 +18361,7 @@ sub_803F050: @ 803F050 adds r0, 0x1 strb r0, [r1, 0x1F] _0803F096: - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct ldr r0, [r2] adds r1, r0, 0 adds r1, 0x7A @@ -18397,11 +18397,11 @@ _0803F0FC: _0803F0FE: strb r0, [r3] _0803F100: - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DBD58 ldr r0, [r0, 0x8] str r0, [r1] - ldr r1, =gUnknown_02024083 + ldr r1, =gFightStateTracker movs r0, 0xA strb r0, [r1] pop {r4-r6} @@ -18413,8 +18413,8 @@ _0803F100: thumb_func_start sub_803F120 sub_803F120: @ 803F120 push {r4,lr} - ldr r2, =gUnknown_0202420B - ldr r1, =gUnknown_0202407E + ldr r2, =gBankAttacker + ldr r1, =gTurnOrder ldr r0, =gUnknown_02024082 ldrb r0, [r0] adds r0, r1 @@ -18425,7 +18425,7 @@ sub_803F120: @ 803F120 strh r4, [r0] ldr r0, =gUnknown_02022E16 strh r4, [r0] - ldr r3, =gUnknown_0202449C + ldr r3, =gBattleStruct ldr r0, [r3] adds r2, r0, 0 adds r2, 0x7C @@ -18474,20 +18474,20 @@ _0803F188: bhi _0803F1C4 adds r0, 0x1 strb r0, [r1] - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication strb r4, [r0, 0x5] b _0803F1CA .pool _0803F1C4: - ldr r1, =gUnknown_02024332 + ldr r1, =gBattleCommunication movs r0, 0x1 strb r0, [r1, 0x5] _0803F1CA: - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DBD58 ldr r0, [r0, 0x4] str r0, [r1] - ldr r1, =gUnknown_02024083 + ldr r1, =gFightStateTracker movs r0, 0xA strb r0, [r1] pop {r4} @@ -18499,19 +18499,19 @@ _0803F1CA: thumb_func_start bs8_exit_by_flight bs8_exit_by_flight: @ 803F1F0 push {r4,lr} - ldr r2, =gUnknown_0202420B - ldr r1, =gUnknown_0202407E + ldr r2, =gBankAttacker + ldr r1, =gTurnOrder ldr r4, =gUnknown_02024082 ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] strb r0, [r2] movs r0, 0x11 - bl audio_play - ldr r0, =gUnknown_0202406C + bl PlaySE + ldr r0, =gNoOfAllBanks ldrb r0, [r0] strb r0, [r4] - ldr r1, =gUnknown_0202433A + ldr r1, =gBattleOutcome movs r0, 0x4 strb r0, [r1] pop {r4} @@ -18522,8 +18522,8 @@ bs8_exit_by_flight: @ 803F1F0 thumb_func_start bs9_8016C9C bs9_8016C9C: @ 803F22C - ldr r3, =gUnknown_0202420B - ldr r1, =gUnknown_0202407E + ldr r3, =gBankAttacker + ldr r1, =gTurnOrder ldr r0, =gUnknown_02024082 ldrb r0, [r0] adds r0, r1 @@ -18534,13 +18534,13 @@ bs9_8016C9C: @ 803F22C strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] - ldr r1, =gUnknown_02022F58 + ldr r1, =gBattleTextBuff1 movs r0, 0xFD strb r0, [r1] movs r0, 0x7 strb r0, [r1, 0x1] strb r2, [r1, 0x2] - ldr r2, =gUnknown_0202406E + ldr r2, =gBattlePartyID ldrb r0, [r3] lsls r0, 1 adds r0, r2 @@ -18548,11 +18548,11 @@ bs9_8016C9C: @ 803F22C strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] - ldr r1, =gUnknown_02024214 + ldr r1, =gBattlescriptCurrInstr ldr r0, =gUnknown_082DBD58 ldr r0, [r0, 0xC] str r0, [r1] - ldr r1, =gUnknown_02024083 + ldr r1, =gFightStateTracker movs r0, 0xA strb r0, [r1] ldr r1, =gUnknown_0202407A @@ -18570,11 +18570,11 @@ bsB_exit_by_move: @ 803F2A4 lsrs r1, r0, 24 cmp r1, 0 bne _0803F2C0 - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] adds r0, 0x4D strb r1, [r0] - ldr r1, =gUnknown_02024083 + ldr r1, =gFightStateTracker movs r0, 0xC strb r0, [r1] _0803F2C0: @@ -18589,13 +18589,13 @@ bsD_proceed: @ 803F2CC ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] - ldr r3, =gUnknown_02024083 + ldr r3, =gFightStateTracker ldr r2, =gUnknown_0202407A ldrb r0, [r1] adds r0, r2 ldrb r0, [r0] strb r0, [r3] - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker ldr r0, [r2] ldr r1, =0xf1e892af ands r0, r1 @@ -18607,12 +18607,12 @@ bsD_proceed: @ 803F2CC thumb_func_start bsC_8016D70 bsC_8016D70: @ 803F300 push {r4-r6,lr} - ldr r1, =gUnknown_0202407E + ldr r1, =gTurnOrder ldr r2, =gUnknown_02024082 ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] - ldr r6, =gUnknown_0202449C + ldr r6, =gBattleStruct ldr r1, [r6] adds r0, r1 adds r0, 0x5C @@ -18621,19 +18621,19 @@ bsC_8016D70: @ 803F300 ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] - ldr r3, =gUnknown_02024083 + ldr r3, =gFightStateTracker ldr r1, =gUnknown_0202407A ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] strb r0, [r3] bl sub_803D6A0 - ldr r2, =gUnknown_02024280 + ldr r2, =gHitMarker ldr r0, [r2] ldr r1, =0xf1e892af ands r0, r1 str r0, [r2] - ldr r0, =gUnknown_020241EA + ldr r0, =gCurrentMove movs r1, 0 strh r1, [r0] ldr r0, =gBattleMoveDamage @@ -18641,11 +18641,11 @@ bsC_8016D70: @ 803F300 str r4, [r0] ldr r0, =gBattleMoveFlags strb r1, [r0] - ldr r5, =gUnknown_02024474 + ldr r5, =gBattleScripting strb r1, [r5, 0x18] strb r1, [r5, 0x19] ldr r2, =gUnknown_02024250 - ldr r3, =gUnknown_0202420B + ldr r3, =gBankAttacker ldrb r0, [r3] lsls r0, 1 adds r0, r2 @@ -18660,11 +18660,11 @@ bsC_8016D70: @ 803F300 ldr r0, =gUnknown_02024400 strh r4, [r0] strb r1, [r5, 0x14] - ldr r0, =gUnknown_02024332 + ldr r0, =gBattleCommunication strb r1, [r0, 0x3] strb r1, [r0, 0x4] strb r1, [r5, 0x16] - ldr r0, =gUnknown_020244A8 + ldr r0, =gBattleResources ldr r0, [r0] ldr r0, [r0, 0x8] adds r0, 0x20 @@ -18707,12 +18707,12 @@ _0803F3E8: .4byte _0803F46C .4byte _0803F470 _0803F424: - ldr r0, =gEnemyMonIndex + ldr r0, =gBankTarget ldrb r0, [r0] b _0803F47A .pool _0803F430: - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r0, [r0] b _0803F47A .pool @@ -18725,7 +18725,7 @@ _0803F448: movs r0, 0 b _0803F47A _0803F44C: - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting ldrb r0, [r0, 0x17] b _0803F47A .pool @@ -18746,7 +18746,7 @@ _0803F46C: _0803F470: movs r0, 0x3 _0803F472: - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 _0803F47A: @@ -18814,7 +18814,7 @@ _0803F4DE: ands r0, r1 cmp r0, 0 bne _0803F532 - ldr r1, =gUnknown_020242BC + ldr r1, =gDisableStructs lsls r0, r5, 3 subs r0, r5 lsls r0, 2 @@ -18828,7 +18828,7 @@ _0803F4DE: ands r1, r0 cmp r1, 0 bne _0803F532 - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank strb r5, [r4] adds r1, r3, 0 adds r1, 0x9 @@ -18866,12 +18866,12 @@ sub_803F548: @ 803F548 movs r0, 0x4 mov r8, r0 adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r4, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 bge _0803F5F0 @@ -18884,7 +18884,7 @@ sub_803F548: @ 803F548 _0803F57E: lsls r0, r4, 24 lsrs r0, 24 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 adds r6, r4, 0x1 @@ -18937,7 +18937,7 @@ _0803F5CE: strb r0, [r1] _0803F5E6: adds r4, r6, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 blt _0803F57E @@ -18958,7 +18958,7 @@ _0803F5F0: ands r0, r1 cmp r0, 0 bne _0803F658 - ldr r1, =gUnknown_020242BC + ldr r1, =gDisableStructs lsls r0, r5, 3 subs r0, r5 lsls r0, 2 @@ -18973,7 +18973,7 @@ _0803F5F0: ands r1, r0 cmp r1, 0 bne _0803F658 - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank strb r5, [r4] mov r1, r8 adds r1, 0x9 @@ -19016,7 +19016,7 @@ sub_803F67C: @ 803F67C lsrs r3, r0, 24 movs r6, 0x4 movs r1, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks mov r8, r0 ldrb r0, [r0] cmp r1, r0 @@ -19091,7 +19091,7 @@ _0803F6FE: ands r0, r1 cmp r0, 0 bne _0803F762 - ldr r1, =gUnknown_020242BC + ldr r1, =gDisableStructs lsls r0, r3, 3 subs r0, r3 lsls r0, 2 @@ -19105,7 +19105,7 @@ _0803F6FE: ands r1, r0 cmp r1, 0 bne _0803F762 - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank strb r3, [r4] adds r1, r6, 0 adds r1, 0x9 @@ -19146,11 +19146,11 @@ sub_803F790: @ 803F790 cmp r0, 0 beq _0803F7D0 movs r2, 0 - ldr r4, =gUnknown_0202406C + ldr r4, =gNoOfAllBanks ldrb r0, [r4] cmp r2, r0 bge _0803F7EE - ldr r3, =gUnknown_02024068 + ldr r3, =gBattleExecBuffer ldr r5, =gBitTable _0803F7AC: ldm r5!, {r1} @@ -19166,11 +19166,11 @@ _0803F7AC: .pool _0803F7D0: movs r2, 0 - ldr r4, =gUnknown_0202406C + ldr r4, =gNoOfAllBanks ldrb r0, [r4] cmp r2, r0 bge _0803F7EE - ldr r3, =gUnknown_02024068 + ldr r3, =gBattleExecBuffer ldr r5, =gBitTable _0803F7DE: ldr r0, [r3] @@ -19199,7 +19199,7 @@ dp01_battle_side_mark_buffer_for_execution: @ 803F800 ands r0, r1 cmp r0, 0 beq _0803F834 - ldr r2, =gUnknown_02024068 + ldr r2, =gBattleExecBuffer ldr r1, =gBitTable lsls r0, r3, 2 adds r0, r1 @@ -19211,7 +19211,7 @@ dp01_battle_side_mark_buffer_for_execution: @ 803F800 b _0803F844 .pool _0803F834: - ldr r2, =gUnknown_02024068 + ldr r2, =gBattleExecBuffer ldr r1, =gBitTable lsls r0, r3, 2 adds r0, r1 @@ -19231,7 +19231,7 @@ sub_803F850: @ 803F850 lsls r0, 24 lsrs r7, r0, 24 movs r4, 0 - ldr r5, =gUnknown_02024068 + ldr r5, =gBattleExecBuffer ldr r1, =gBitTable lsls r0, r7, 2 adds r6, r0, r1 @@ -19251,7 +19251,7 @@ _0803F87A: lsrs r0, 24 cmp r4, r0 blt _0803F86C - ldr r2, =gUnknown_02024068 + ldr r2, =gBattleExecBuffer movs r1, 0x80 lsls r1, 21 lsls r1, r7 @@ -19264,8 +19264,8 @@ _0803F87A: .pool thumb_func_end sub_803F850 - thumb_func_start b_cancel_multi_turn_move_maybe -b_cancel_multi_turn_move_maybe: @ 803F8A0 + thumb_func_start CancelMultiTurnMoves +CancelMultiTurnMoves: @ 803F8A0 lsls r0, 24 lsrs r0, 24 ldr r1, =gBattleMons @@ -19285,14 +19285,14 @@ b_cancel_multi_turn_move_maybe: @ 803F8A0 ldr r2, =0xfffffcff ands r1, r2 str r1, [r3] - ldr r1, =gUnknown_020242AC + ldr r1, =gStatuses3 lsls r2, r0, 2 adds r2, r1 ldr r1, [r2] ldr r3, =0xfffbff3f ands r1, r3 str r1, [r2] - ldr r2, =gUnknown_020242BC + ldr r2, =gDisableStructs lsls r1, r0, 3 subs r1, r0 lsls r1, 2 @@ -19306,13 +19306,13 @@ b_cancel_multi_turn_move_maybe: @ 803F8A0 strb r0, [r1, 0x10] bx lr .pool - thumb_func_end b_cancel_multi_turn_move_maybe + thumb_func_end CancelMultiTurnMoves thumb_func_start sub_803F90C sub_803F90C: @ 803F90C push {lr} lsls r0, 24 - ldr r1, =gUnknown_0202433C + ldr r1, =gProtectStructs lsrs r0, 20 adds r1, r0, r1 ldrb r0, [r1] @@ -19362,7 +19362,7 @@ b_std_message: @ 803F964 adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank strb r1, [r4] movs r0, 0 adds r1, r2, 0 @@ -19383,14 +19383,14 @@ sub_803F988: @ 803F988 strb r3, [r0] strb r3, [r0, 0x1] movs r1, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r2, [r0] adds r6, r0, 0 cmp r1, r2 bge _0803F9B6 ldr r5, =gBitTable adds r4, r2, 0 - ldr r2, =gUnknown_0202406E + ldr r2, =gBattlePartyID _0803F9A4: ldrh r0, [r2] lsls r0, 2 @@ -19435,7 +19435,7 @@ sub_803F9EC: @ 803F9EC lsrs r5, r0, 24 movs r4, 0 adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -19449,16 +19449,16 @@ sub_803F9EC: @ 803F9EC adds r0, r1 strb r4, [r0] adds r5, r4, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r2, [r0] mov r8, r1 cmp r4, r2 bge _0803FA4A - ldr r0, =gUnknown_02024210 + ldr r0, =gAbsentBankFlags ldrb r7, [r0] ldr r1, =gBitTable adds r6, r2, 0 - ldr r3, =gUnknown_0202406E + ldr r3, =gBattlePartyID adds r2, r1, 0 _0803FA2E: ldr r0, [r2] @@ -19495,7 +19495,7 @@ sub_803FA70: @ 803FA70 lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -19505,7 +19505,7 @@ sub_803FA70: @ 803FA70 b _0803FAC2 _0803FA8C: movs r3, 0x1 - ldr r5, =gUnknown_0202406C + ldr r5, =gNoOfAllBanks ldrb r0, [r5] cmp r3, r0 bge _0803FAC2 @@ -19513,7 +19513,7 @@ _0803FA8C: mov r12, r0 movs r7, 0x2 ldr r6, =gBitTable - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r4, 1 adds r4, r0, r1 _0803FAA4: diff --git a/asm/rom_8045FFC.s b/asm/rom_8045FFC.s deleted file mode 100644 index a5ea96339d..0000000000 --- a/asm/rom_8045FFC.s +++ /dev/null @@ -1,61709 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start atk00_attackcanceler -atk00_attackcanceler: @ 8045FFC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - ldr r0, =gUnknown_0202433A - ldrb r0, [r0] - cmp r0, 0 - beq _08046020 - ldr r1, =gUnknown_02024083 - movs r0, 0xC - strb r0, [r1] - b _08046398 - .pool -_08046020: - ldr r2, =gBattleMons - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _08046064 - ldr r2, =gUnknown_02024280 - ldr r1, [r2] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - bne _08046064 - movs r0, 0x80 - lsls r0, 12 - orrs r1, r0 - str r1, [r2] - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082D8A4E - b _08046396 - .pool -_08046064: - bl sub_8041A6C - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _08046072 - b _08046398 -_08046072: - ldr r0, =gEnemyMonIndex - ldrb r1, [r0] - str r2, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl ability_something - lsls r0, 24 - cmp r0, 0 - beq _0804608A - b _08046398 -_0804608A: - ldr r4, =gBattleMons - ldr r0, =gUnknown_020241E8 - ldrb r1, [r0] - ldr r3, =gUnknown_0202420B - ldrb r2, [r3] - movs r0, 0x58 - muls r2, r0 - adds r1, r2 - adds r0, r4, 0 - adds r0, 0x24 - adds r1, r0 - ldrb r0, [r1] - ldr r5, =gUnknown_02024280 - cmp r0, 0 - bne _08046108 - ldr r0, =gUnknown_020241EA - ldrh r0, [r0] - cmp r0, 0xA5 - beq _08046108 - ldr r0, [r5] - ldr r1, =0x00800200 - ands r0, r1 - cmp r0, 0 - bne _08046108 - adds r0, r4, 0 - adds r0, 0x50 - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 5 - ands r0, r1 - cmp r0, 0 - bne _08046108 - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DB07A - str r0, [r1] - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - b _08046398 - .pool -_08046108: - ldr r0, [r5] - ldr r1, =0xff7fffff - ands r0, r1 - str r0, [r5] - movs r6, 0x80 - lsls r6, 18 - ands r0, r6 - cmp r0, 0 - bne _08046160 - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - adds r1, r4, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 5 - ands r0, r1 - cmp r0, 0 - bne _08046160 - bl sub_8045CBC - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _08046160 - cmp r2, 0x2 - bne _08046150 - ldr r0, [r5] - orrs r0, r6 - str r0, [r5] - b _08046398 - .pool -_08046150: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - b _08046398 - .pool -_08046160: - ldr r2, =gUnknown_02024280 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 18 - orrs r0, r1 - str r0, [r2] - ldr r2, =gUnknown_0202433C - ldr r1, =gEnemyMonIndex - ldrb r3, [r1] - lsls r0, r3, 4 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 27 - mov r8, r1 - mov r9, r2 - cmp r0, 0 - bge _080461E8 - ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x8] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080461E8 - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - ldr r2, =0x00000115 - adds r1, r3, 0 - bl sub_803F480 - mov r0, r8 - ldrb r1, [r0] - lsls r1, 4 - add r1, r9 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DB194 - b _08046396 - .pool -_080461E8: - movs r2, 0 - ldr r0, =gUnknown_0202406C - ldrb r0, [r0] - cmp r2, r0 - bge _0804622A - ldr r6, =gUnknown_0202433C - ldr r1, =gBattleMoves - mov r12, r1 - adds r5, r0, 0 - ldr r7, =gUnknown_0202407E -_080461FC: - adds r4, r2, r7 - ldrb r3, [r4] - lsls r0, r3, 4 - adds r0, r6 - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _08046224 - ldr r0, =gUnknown_020241EA - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - add r0, r12 - ldrb r1, [r0, 0x8] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08046224 - b _08046350 -_08046224: - adds r2, 0x1 - cmp r2, r5 - blt _080461FC -_0804622A: - ldr r0, =gUnknown_0202437C - mov r1, r8 - ldrb r2, [r1] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r3, [r1] - lsls r0, r3, 30 - cmp r0, 0 - bge _08046288 - movs r0, 0x3 - negs r0, r0 - ands r0, r3 - strb r0, [r1] - ldr r4, =gUnknown_0202420A - movs r0, 0x1F - strb r0, [r4] - bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DB53E - str r0, [r1] - mov r1, r8 - ldrb r0, [r1] - ldrb r1, [r4] - bl b_history__record_ability_usage_of_player - b _08046398 - .pool -_08046288: - lsls r0, r2, 4 - add r0, r9 - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - bne _08046296 - b _08046390 -_08046296: - ldr r1, =gBattleMoves - ldr r2, =gUnknown_020241EA - ldrh r3, [r2] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x8] - movs r0, 0x2 - ands r0, r1 - adds r4, r2, 0 - cmp r0, 0 - beq _08046390 - cmp r3, 0xAE - bne _080462D4 - ldr r2, =gBattleMons - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x7 - beq _080462D4 - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x7 - bne _08046390 -_080462D4: - ldrh r0, [r4] - bl sub_8052F48 - lsls r0, 24 - cmp r0, 0 - beq _080462FA - ldr r1, =gBattleMons - ldr r0, =gUnknown_0202420B - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 5 - ands r0, r1 - cmp r0, 0 - beq _08046390 -_080462FA: - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - bl b_cancel_multi_turn_move_maybe - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_02024250 - ldr r3, =gEnemyMonIndex - ldrb r0, [r3] - lsls r0, 1 - adds r0, r1 - movs r2, 0 - strh r2, [r0] - ldr r1, =gUnknown_02024258 - ldrb r0, [r3] - lsls r0, 1 - adds r0, r1 - strh r2, [r0] - ldr r1, =gUnknown_02024332 - movs r0, 0x1 - strb r0, [r1, 0x6] - b _08046390 - .pool -_08046350: - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - ldr r2, =0x00000121 - adds r1, r3, 0 - bl sub_803F480 - ldrb r1, [r4] - lsls r1, 4 - adds r1, r6 - ldrb r2, [r1] - movs r0, 0x21 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, =gUnknown_02024474 - ldrb r0, [r4] - strb r0, [r1, 0x17] - bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DB1AC - b _08046396 - .pool -_08046390: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 -_08046396: - str r0, [r1] -_08046398: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk00_attackcanceler - - thumb_func_start mcmd_jump_if_move_not_executed -mcmd_jump_if_move_not_executed: @ 80463AC - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r6, r1, 16 - ldr r1, =gUnknown_02024214 - ldr r5, [r1] - adds r4, r5, r0 - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _0804640C - ldr r1, =gUnknown_02024250 - ldr r3, =gEnemyMonIndex - ldrb r0, [r3] - lsls r0, 1 - adds r0, r1 - movs r2, 0 - strh r2, [r0] - ldr r1, =gUnknown_02024258 - ldrb r0, [r3] - lsls r0, 1 - adds r0, r1 - strh r2, [r0] - ldrb r4, [r5, 0x1] - ldrb r0, [r5, 0x2] - lsls r0, 8 - orrs r4, r0 - ldrb r0, [r5, 0x3] - lsls r0, 16 - orrs r4, r0 - ldrb r0, [r5, 0x4] - lsls r0, 24 - orrs r4, r0 - b _08046426 - .pool -_0804640C: - bl b_feature_update_destiny_bond - ldr r0, =gEnemyMonIndex - ldrb r1, [r0] - str r6, [sp] - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl ability_something - lsls r0, 24 - cmp r0, 0 - bne _0804642A -_08046426: - ldr r0, =gUnknown_02024214 - str r4, [r0] -_0804642A: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end mcmd_jump_if_move_not_executed - - thumb_func_start atk40_801DBA0 -atk40_801DBA0: @ 804643C - push {lr} - ldr r1, =gUnknown_0202433C - ldr r0, =gEnemyMonIndex - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - beq _0804649C - ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x8] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0804649C - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x5 - movs r1, 0 - bl mcmd_jump_if_move_not_executed - ldr r1, =gUnknown_02024332 - movs r0, 0x1 - strb r0, [r1, 0x6] - b _080464A4 - .pool -_0804649C: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_080464A4: - pop {r0} - bx r0 - .pool - thumb_func_end atk40_801DBA0 - - thumb_func_start sub_80464AC -sub_80464AC: @ 80464AC - push {r4,lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r4, 0 - ldr r1, =gUnknown_0202433C - ldr r0, =gEnemyMonIndex - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - beq _080464F8 - ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x8] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080464F8 - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x7 - adds r1, r3, 0 - bl mcmd_jump_if_move_not_executed - ldr r1, =gUnknown_02024332 - movs r0, 0x1 - strb r0, [r1, 0x6] - movs r4, 0x1 -_080464F8: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80464AC - - thumb_func_start sub_8046518 -sub_8046518: @ 8046518 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r2, =gUnknown_020242AC - ldr r3, =gEnemyMonIndex - ldrb r4, [r3] - lsls r0, r4, 2 - adds r0, r2 - ldr r1, [r0] - movs r0, 0x18 - ands r1, r0 - adds r6, r2, 0 - cmp r1, 0 - beq _0804654A - ldr r1, =gUnknown_020242BC - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r1 - ldr r1, =gUnknown_0202420B - ldrb r0, [r0, 0x15] - ldrb r1, [r1] - cmp r0, r1 - beq _08046634 -_0804654A: - ldr r0, =gUnknown_02024280 - ldr r1, [r0] - movs r2, 0x80 - lsls r2, 9 - ands r1, r2 - adds r2, r0, 0 - cmp r1, 0 - bne _08046590 - ldrb r0, [r3] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08046590 -_0804656A: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - b _08046634 - .pool -_08046590: - ldr r0, [r2] - ldr r1, =0xfffeffff - ands r0, r1 - str r0, [r2] - movs r1, 0x80 - lsls r1, 10 - ands r0, r1 - cmp r0, 0 - bne _080465B2 - ldrb r0, [r3] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0804656A -_080465B2: - ldr r0, [r2] - ldr r1, =0xfffdffff - ands r0, r1 - str r0, [r2] - movs r1, 0x80 - lsls r1, 11 - ands r0, r1 - cmp r0, 0 - bne _080465D2 - ldrb r0, [r3] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - ands r0, r1 - cmp r0, 0 - bne _0804656A -_080465D2: - ldr r0, [r2] - ldr r1, =0xfffbffff - ands r0, r1 - str r0, [r2] - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl ability_something - lsls r0, 24 - lsrs r0, 24 - lsls r4, r5, 1 - cmp r0, 0 - bne _08046622 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl ability_something - lsls r0, 24 - cmp r0, 0 - bne _08046622 - ldr r0, =gBattleWeather - ldrh r1, [r0] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - beq _08046622 - ldr r0, =gBattleMoves - adds r1, r4, r5 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x98 - beq _08046634 -_08046622: - ldr r1, =gBattleMoves - adds r0, r4, r5 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x11 - beq _08046634 - cmp r0, 0x4E - bne _08046654 -_08046634: - movs r0, 0x7 - adds r1, r5, 0 - bl mcmd_jump_if_move_not_executed - movs r0, 0x1 - b _08046656 - .pool -_08046654: - movs r0, 0 -_08046656: - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8046518 - - thumb_func_start atk01_accuracycheck -atk01_accuracycheck: @ 8046660 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - ldr r0, =gUnknown_02024214 - ldr r5, [r0] - ldrb r6, [r5, 0x5] - ldrb r1, [r5, 0x6] - lsls r1, 8 - orrs r6, r1 - adds r1, r6, 0x2 - lsls r1, 16 - lsrs r1, 16 - adds r7, r0, 0 - cmp r1, 0x1 - bhi _0804671C - ldr r2, =gUnknown_020242AC - ldr r3, =gEnemyMonIndex - ldrb r4, [r3] - lsls r0, r4, 2 - adds r0, r2 - ldr r1, [r0] - movs r0, 0x18 - ands r1, r0 - cmp r1, 0 - beq _080466D0 - ldr r0, =0x0000ffff - cmp r6, r0 - bne _080466D0 - ldr r1, =gUnknown_020242BC - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r1 - ldr r1, =gUnknown_0202420B - ldrb r0, [r0, 0x15] - ldrb r1, [r1] - cmp r0, r1 - bne _080466D0 - adds r0, r5, 0x7 - str r0, [r7] - b _080469D2 - .pool -_080466D0: - ldrb r0, [r3] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ldr r1, =0x000400c0 - ands r0, r1 - cmp r0, 0 - beq _08046700 - ldr r2, [r7] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r7] - b _080469D2 - .pool -_08046700: - movs r0, 0 - bl sub_80464AC - lsls r0, 24 - cmp r0, 0 - beq _0804670E - b _080469D2 -_0804670E: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x7 - str r0, [r1] - b _080469D2 - .pool -_0804671C: - cmp r6, 0 - bne _08046724 - ldr r0, =gUnknown_020241EA - ldrh r6, [r0] -_08046724: - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - ldrb r0, [r0, 0x13] - cmp r0, 0 - beq _08046744 - movs r1, 0x3F - mov r10, r1 - mov r2, r10 - ands r2, r0 - mov r10, r2 - b _08046752 - .pool -_08046744: - ldr r1, =gBattleMoves - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x2] - mov r10, r0 -_08046752: - adds r0, r6, 0 - bl sub_80464AC - lsls r0, 24 - cmp r0, 0 - beq _08046760 - b _080469D2 -_08046760: - adds r0, r6, 0 - bl sub_8046518 - lsls r0, 24 - cmp r0, 0 - beq _0804676E - b _080469D2 -_0804676E: - ldr r3, =gBattleMons - ldr r0, =gEnemyMonIndex - ldrb r0, [r0] - movs r2, 0x58 - adds r4, r0, 0 - muls r4, r2 - adds r0, r3, 0 - adds r0, 0x50 - adds r0, r4, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 22 - ands r0, r1 - cmp r0, 0 - beq _080467A8 - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - muls r0, r2 - adds r0, r3 - ldrb r5, [r0, 0x1E] - b _080467BE - .pool -_080467A8: - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - muls r0, r2 - adds r0, r3 - ldrb r0, [r0, 0x1E] - adds r0, 0x6 - adds r1, r4, r3 - ldrb r1, [r1, 0x1F] - subs r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 -_080467BE: - lsls r0, r5, 24 - cmp r0, 0 - bge _080467C6 - movs r5, 0 -_080467C6: - lsls r0, r5, 24 - asrs r0, 24 - cmp r0, 0xC - ble _080467D0 - movs r5, 0xC -_080467D0: - ldr r1, =gBattleMoves - lsls r4, r6, 1 - adds r0, r4, r6 - lsls r0, 2 - adds r7, r0, r1 - ldrb r3, [r7, 0x3] - mov r8, r3 - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl ability_something - lsls r0, 24 - lsrs r0, 24 - str r4, [sp, 0x4] - cmp r0, 0 - bne _08046822 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl ability_something - lsls r0, 24 - cmp r0, 0 - bne _08046822 - ldr r0, =gBattleWeather - ldrh r1, [r0] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _08046822 - ldrb r0, [r7] - cmp r0, 0x98 - bne _08046822 - movs r0, 0x32 - mov r8, r0 -_08046822: - ldr r1, =gUnknown_0831C0F4 - lsls r0, r5, 24 - asrs r0, 22 - adds r0, r1 - ldrb r1, [r0] - mov r4, r8 - muls r4, r1 - ldrb r1, [r0, 0x1] - adds r0, r4, 0 - bl __divsi3 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r7, =gBattleMons - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - movs r5, 0x58 - muls r0, r5 - adds r0, r7 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0xE - bne _08046860 - lsls r0, r4, 6 - adds r0, r4 - lsls r0, 1 - movs r1, 0x64 - bl __divsi3 - lsls r0, 16 - lsrs r4, r0, 16 -_08046860: - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl ability_something - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080468B8 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl ability_something - lsls r0, 24 - cmp r0, 0 - bne _080468B8 - ldr r0, =gEnemyMonIndex - ldrb r0, [r0] - muls r0, r5 - adds r0, r7 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x8 - bne _080468B8 - ldr r0, =gBattleWeather - ldrh r1, [r0] - movs r0, 0x18 - ands r0, r1 - cmp r0, 0 - beq _080468B8 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - movs r1, 0x64 - bl __divsi3 - lsls r0, 16 - lsrs r4, r0, 16 -_080468B8: - ldr r2, =gBattleMons - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - mov r9, r2 - cmp r0, 0x37 - bne _080468E4 - mov r1, r10 - cmp r1, 0x8 - bhi _080468E4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - movs r1, 0x64 - bl __divsi3 - lsls r0, 16 - lsrs r4, r0, 16 -_080468E4: - ldr r2, =gEnemyMonIndex - mov r8, r2 - ldrb r2, [r2] - movs r7, 0x58 - adds r0, r2, 0 - muls r0, r7 - mov r3, r9 - adds r1, r0, r3 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _08046928 - ldr r1, =gUnknown_02024404 - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r5, [r0, 0x7] - ldrb r2, [r0, 0x1A] - b _08046944 - .pool -_08046928: - ldrh r0, [r1, 0x2E] - bl itemid_get_x12 - lsls r0, 24 - lsrs r5, r0, 24 - mov r1, r8 - ldrb r0, [r1] - muls r0, r7 - add r0, r9 - ldrh r0, [r0, 0x2E] - bl itemid_get_quality - lsls r0, 24 - lsrs r2, r0, 24 -_08046944: - ldr r0, =gUnknown_0202420F - ldr r1, =gEnemyMonIndex - ldrb r1, [r1] - strb r1, [r0] - cmp r5, 0x16 - bne _08046960 - movs r0, 0x64 - subs r0, r2 - muls r0, r4 - movs r1, 0x64 - bl __divsi3 - lsls r0, 16 - lsrs r4, r0, 16 -_08046960: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - adds r0, 0x1 - cmp r0, r4 - ble _080469CA - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080469C0 - ldr r1, =gBattleMoves - ldr r2, [sp, 0x4] - adds r0, r2, r6 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x6] - cmp r0, 0x8 - beq _080469A2 - cmp r0, 0x20 - bne _080469C0 -_080469A2: - ldr r1, =gUnknown_02024332 - movs r0, 0x2 - b _080469C4 - .pool -_080469C0: - ldr r1, =gUnknown_02024332 - movs r0, 0 -_080469C4: - strb r0, [r1, 0x6] - bl b_wonderguard_and_levitate -_080469CA: - movs r0, 0x7 - adds r1, r6, 0 - bl mcmd_jump_if_move_not_executed -_080469D2: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk01_accuracycheck - - thumb_func_start atk02_attackstring -atk02_attackstring: @ 80469E8 - push {r4,r5,lr} - ldr r0, =gUnknown_02024068 - ldr r5, [r0] - cmp r5, 0 - bne _08046A20 - ldr r4, =gUnknown_02024280 - ldr r0, [r4] - movs r1, 0xC0 - lsls r1, 3 - ands r0, r1 - cmp r0, 0 - bne _08046A14 - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - movs r0, 0x4 - bl b_std_message - ldr r0, [r4] - movs r1, 0x80 - lsls r1, 3 - orrs r0, r1 - str r0, [r4] -_08046A14: - ldr r0, =gUnknown_02024214 - ldr r1, [r0] - adds r1, 0x1 - str r1, [r0] - ldr r0, =gUnknown_02024332 - strb r5, [r0, 0x7] -_08046A20: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk02_attackstring - - thumb_func_start atk03_ppreduce -atk03_ppreduce: @ 8046A3C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r6, 0x1 - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - beq _08046A54 - b _08046BEE -_08046A54: - ldr r1, =gUnknown_0202437C - ldr r2, =gUnknown_0202420B - ldrb r3, [r2] - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r4, r0, 31 - mov r9, r2 - cmp r4, 0 - bne _08046AF6 - ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x6] - cmp r0, 0x20 - beq _08046AA6 - cmp r0, 0x20 - bgt _08046AA0 - cmp r0, 0x8 - beq _08046ABC - b _08046AD6 - .pool -_08046AA0: - cmp r0, 0x40 - beq _08046ABC - b _08046AD6 -_08046AA6: - str r4, [sp] - movs r0, 0x12 - adds r1, r3, 0 - movs r2, 0x2E - movs r3, 0 - bl ability_something - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0x1 - b _08046AF6 -_08046ABC: - mov r0, r9 - ldrb r1, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x10 - movs r2, 0x2E - movs r3, 0 - bl ability_something - lsls r0, 24 - lsrs r0, 24 - adds r6, r0 - b _08046AF6 -_08046AD6: - ldr r1, =gEnemyMonIndex - mov r2, r9 - ldrb r0, [r2] - ldrb r7, [r1] - cmp r0, r7 - beq _08046AF6 - ldr r2, =gBattleMons - ldrb r1, [r1] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x2E - bne _08046AF6 - adds r6, 0x1 -_08046AF6: - ldr r0, =gUnknown_02024280 - ldr r4, [r0] - movs r0, 0xA0 - lsls r0, 4 - ands r4, r0 - cmp r4, 0 - bne _08046BDC - ldr r2, =gBattleMons - ldr r3, =gUnknown_020241E8 - ldr r1, =gUnknown_0202420B - ldrb r5, [r1] - movs r0, 0x58 - mov r8, r0 - mov r0, r8 - muls r0, r5 - ldrb r7, [r3] - adds r0, r7 - movs r7, 0x24 - adds r7, r2 - mov r12, r7 - add r0, r12 - ldrb r0, [r0] - mov r9, r1 - mov r10, r2 - adds r7, r3, 0 - cmp r0, 0 - beq _08046BDC - ldr r0, =gUnknown_0202433C - lsls r1, r5, 4 - adds r1, r0 - ldrb r0, [r1, 0x2] - movs r2, 0x8 - orrs r0, r2 - strb r0, [r1, 0x2] - mov r1, r9 - ldrb r0, [r1] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - ldrb r1, [r7] - adds r0, r1 - mov r1, r12 - adds r2, r0, r1 - ldrb r0, [r2] - cmp r0, r6 - ble _08046B70 - subs r0, r6 - strb r0, [r2] - b _08046B72 - .pool -_08046B70: - strb r4, [r2] -_08046B72: - mov r2, r9 - ldrb r3, [r2] - movs r4, 0x58 - adds r0, r3, 0 - muls r0, r4 - mov r1, r10 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _08046BDC - ldr r1, =gUnknown_020242BC - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x18] - lsrs r1, 4 - ldr r2, =gBitTable - ldrb r0, [r7] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08046BDC - ldr r0, =gUnknown_02024064 - strb r3, [r0] - ldrb r1, [r7] - adds r1, 0x9 - lsls r1, 24 - lsrs r1, 24 - mov r2, r9 - ldrb r0, [r2] - muls r0, r4 - mov r2, r10 - adds r2, 0x24 - adds r0, r2 - ldrb r7, [r7] - adds r0, r7 - str r0, [sp] - movs r0, 0 - movs r2, 0 - movs r3, 0x1 - bl dp01_build_cmdbuf_x02_a_b_varargs - mov r7, r9 - ldrb r0, [r7] - bl dp01_battle_side_mark_buffer_for_execution -_08046BDC: - ldr r2, =gUnknown_02024280 - ldr r0, [r2] - ldr r1, =0xfffff7ff - ands r0, r1 - str r0, [r2] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_08046BEE: - 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 atk03_ppreduce - - thumb_func_start atk04_critcalc -atk04_critcalc: @ 8046C18 - push {r4-r7,lr} - ldr r1, =gBattleMons - ldr r0, =gUnknown_0202420B - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x2E] - cmp r0, 0xAF - bne _08046C48 - ldr r1, =gUnknown_02024404 - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r6, [r0, 0x7] - b _08046C50 - .pool -_08046C48: - bl itemid_get_x12 - lsls r0, 24 - lsrs r6, r0, 24 -_08046C50: - ldr r1, =gUnknown_0202420F - ldr r3, =gUnknown_0202420B - ldrb r0, [r3] - strb r0, [r1] - ldr r4, =gBattleMons - ldrb r1, [r3] - movs r0, 0x58 - adds r7, r1, 0 - muls r7, r0 - adds r0, r4, 0 - adds r0, 0x50 - adds r0, r7, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 13 - ands r0, r1 - negs r0, r0 - asrs r5, r0, 31 - movs r0, 0x2 - ands r5, r0 - ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - mov r12, r3 - cmp r1, 0x2B - bne _08046C90 - adds r5, 0x1 -_08046C90: - adds r0, r5, 0 - cmp r1, 0x4B - bne _08046C98 - adds r0, 0x1 -_08046C98: - cmp r1, 0xC8 - bne _08046C9E - adds r0, 0x1 -_08046C9E: - adds r2, r0, 0 - cmp r1, 0xD1 - bne _08046CA6 - adds r2, 0x1 -_08046CA6: - movs r1, 0 - cmp r6, 0x3F - bne _08046CB6 - adds r0, r7, r4 - ldrh r0, [r0] - cmp r0, 0x71 - bne _08046CB6 - movs r1, 0x1 -_08046CB6: - lsls r5, r1, 1 - movs r3, 0 - cmp r6, 0x42 - bne _08046CD0 - mov r0, r12 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r4 - ldrh r0, [r0] - cmp r0, 0x53 - bne _08046CD0 - movs r3, 0x1 -_08046CD0: - lsls r1, r3, 1 - cmp r6, 0x29 - bne _08046CF0 - adds r0, r5, 0x1 - adds r0, r2, r0 - b _08046CF2 - .pool -_08046CF0: - adds r0, r2, r5 -_08046CF2: - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - adds r5, r0, 0 - cmp r5, 0x4 - bls _08046D00 - movs r5, 0x4 -_08046D00: - ldr r0, =gEnemyMonIndex - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r4 - adds r0, 0x20 - ldrb r4, [r0] - cmp r4, 0x4 - beq _08046D70 - cmp r4, 0x4B - beq _08046D70 - ldr r1, =gUnknown_020242AC - mov r2, r12 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - bne _08046D70 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x84 - lsls r1, 2 - ands r0, r1 - cmp r0, 0 - bne _08046D70 - bl Random - ldr r2, =gUnknown_0831C128 - lsls r1, r5, 1 - adds r1, r2 - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r1] - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _08046D70 - ldr r1, =gCritMultiplier - movs r0, 0x2 - b _08046D74 - .pool -_08046D70: - ldr r1, =gCritMultiplier - movs r0, 0x1 -_08046D74: - strb r0, [r1] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk04_critcalc - - thumb_func_start atk05_cmd5 -atk05_cmd5: @ 8046D8C - push {r4-r7,lr} - sub sp, 0x10 - ldr r4, =gUnknown_0202428E - ldr r5, =gEnemyMonIndex - ldrb r0, [r5] - bl battle_get_per_side_status - movs r1, 0x1 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - ldrh r3, [r1] - ldr r6, =gUnknown_0202420B - ldrb r0, [r6] - movs r4, 0x58 - muls r0, r4 - ldr r2, =gBattleMons - adds r0, r2 - ldrb r1, [r5] - muls r1, r4 - adds r1, r2 - ldr r7, =gUnknown_020241EA - ldrh r2, [r7] - ldr r4, =gUnknown_02024400 - ldrh r4, [r4] - str r4, [sp] - ldr r4, =gUnknown_0202449C - ldr r4, [r4] - ldrb r4, [r4, 0x13] - str r4, [sp, 0x4] - ldrb r4, [r6] - str r4, [sp, 0x8] - ldrb r4, [r5] - str r4, [sp, 0xC] - bl sub_806957C - ldr r4, =gBattleMoveDamage - ldr r1, =gCritMultiplier - ldrb r1, [r1] - muls r1, r0 - ldr r0, =gUnknown_02024474 - ldrb r0, [r0, 0xE] - adds r3, r1, 0 - muls r3, r0 - str r3, [r4] - ldr r1, =gUnknown_020242AC - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 2 - ands r0, r1 - cmp r0, 0 - beq _08046E10 - ldr r2, =gBattleMoves - ldrh r1, [r7] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x2] - cmp r0, 0xD - bne _08046E10 - lsls r0, r3, 1 - str r0, [r4] -_08046E10: - ldr r1, =gUnknown_0202433C - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 28 - cmp r0, 0 - bge _08046E32 - ldr r4, =gBattleMoveDamage - ldr r1, [r4] - lsls r0, r1, 4 - subs r0, r1 - movs r1, 0xA - bl __divsi3 - str r0, [r4] -_08046E32: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk05_cmd5 - - thumb_func_start sub_8046E7C -sub_8046E7C: @ 8046E7C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - adds r5, r1, 0 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r4, =gUnknown_0202428E - adds r0, r5, 0 - bl battle_get_per_side_status - movs r1, 0x1 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - ldrh r3, [r1] - movs r1, 0x58 - adds r0, r7, 0 - muls r0, r1 - ldr r2, =gBattleMons - adds r0, r2 - muls r1, r5 - adds r1, r2 - ldr r2, =gUnknown_020241EA - mov r8, r2 - ldrh r2, [r2] - ldr r6, =gUnknown_02024400 - ldrh r4, [r6] - str r4, [sp] - ldr r4, =gUnknown_0202449C - ldr r4, [r4] - ldrb r4, [r4, 0x13] - str r4, [sp, 0x4] - str r7, [sp, 0x8] - str r5, [sp, 0xC] - bl sub_806957C - ldr r4, =gBattleMoveDamage - movs r1, 0 - strh r1, [r6] - ldr r1, =gCritMultiplier - ldrb r1, [r1] - muls r1, r0 - ldr r0, =gUnknown_02024474 - ldrb r0, [r0, 0xE] - adds r3, r1, 0 - muls r3, r0 - str r3, [r4] - ldr r1, =gUnknown_020242AC - lsls r0, r7, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 2 - ands r0, r1 - cmp r0, 0 - beq _08046F0A - ldr r2, =gBattleMoves - mov r0, r8 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x2] - cmp r0, 0xD - bne _08046F0A - lsls r0, r3, 1 - str r0, [r4] -_08046F0A: - ldr r0, =gUnknown_0202433C - lsls r1, r7, 4 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 28 - cmp r0, 0 - bge _08046F28 - ldr r4, =gBattleMoveDamage - ldr r1, [r4] - lsls r0, r1, 4 - subs r0, r1 - movs r1, 0xA - bl __divsi3 - str r0, [r4] -_08046F28: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8046E7C - - thumb_func_start battle_attack_damage_modulate_by_effectivity -battle_attack_damage_modulate_by_effectivity: @ 8046F60 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, =gBattleMoveDamage - ldr r0, [r5] - muls r0, r4 - movs r1, 0xA - bl __divsi3 - str r0, [r5] - cmp r0, 0 - bne _08046F80 - cmp r4, 0 - beq _08046F80 - movs r0, 0x1 - str r0, [r5] -_08046F80: - cmp r4, 0x5 - beq _08046FB0 - cmp r4, 0x5 - bgt _08046F94 - cmp r4, 0 - beq _08046F9A - b _08047032 - .pool -_08046F94: - cmp r4, 0x14 - beq _08046FF0 - b _08047032 -_08046F9A: - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x8 - orrs r0, r1 - movs r1, 0xFB - ands r0, r1 - movs r1, 0xFD - ands r0, r1 - b _08047030 - .pool -_08046FB0: - ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _08047032 - ldr r2, =gBattleMoveFlags - ldrb r1, [r2] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _08047032 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08046FEC - movs r0, 0xFD - ands r0, r1 - b _08047030 - .pool -_08046FEC: - movs r0, 0x4 - b _0804702E -_08046FF0: - ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _08047032 - ldr r2, =gBattleMoveFlags - ldrb r1, [r2] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _08047032 - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0804702C - movs r0, 0xFB - ands r0, r1 - b _08047030 - .pool -_0804702C: - movs r0, 0x2 -_0804702E: - orrs r0, r1 -_08047030: - strb r0, [r2] -_08047032: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end battle_attack_damage_modulate_by_effectivity - - thumb_func_start sub_8047038 -sub_8047038: @ 8047038 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - movs r3, 0 - ldr r1, =gUnknown_020241EA - ldrh r0, [r1] - cmp r0, 0xA5 - bne _0804704C - b _08047260 -_0804704C: - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - ldrb r0, [r0, 0x13] - cmp r0, 0 - beq _08047068 - movs r1, 0x3F - mov r8, r1 - ands r1, r0 - mov r8, r1 - b _08047078 - .pool -_08047068: - ldr r2, =gBattleMoves - ldrh r1, [r1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x2] - mov r8, r0 -_08047078: - ldr r2, =gBattleMons - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - adds r5, r2, 0 - cmp r0, r8 - beq _0804709A - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, r8 - bne _080470B0 -_0804709A: - ldr r4, =gBattleMoveDamage - ldr r1, [r4] - lsls r0, r1, 4 - subs r0, r1 - str r0, [r4] - movs r1, 0xA - str r3, [sp, 0x4] - bl __divsi3 - str r0, [r4] - ldr r3, [sp, 0x4] -_080470B0: - ldr r2, =gEnemyMonIndex - ldrb r1, [r2] - movs r0, 0x58 - muls r0, r1 - adds r0, r5 - adds r0, 0x20 - ldrb r0, [r0] - adds r4, r2, 0 - cmp r0, 0x1A - bne _08047128 - mov r1, r8 - cmp r1, 0x4 - bne _08047128 - ldr r3, =gUnknown_0202420A - strb r0, [r3] - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x9 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_02024250 - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - movs r2, 0 - strh r2, [r0] - ldr r1, =gUnknown_02024258 - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - strh r2, [r0] - ldr r0, =gUnknown_02024332 - mov r1, r8 - strb r1, [r0, 0x6] - ldrb r0, [r4] - ldrb r1, [r3] - bl b_history__record_ability_usage_of_player - b _080471C4 - .pool -_08047128: - ldr r1, =gUnknown_0831ACE8 - adds r0, r3, r1 - ldrb r0, [r0] - adds r2, r1, 0 - b _080471A4 - .pool -_08047138: - adds r3, 0x3 - b _080471A0 -_0804713C: - ldr r5, =gUnknown_0831ACE8 - adds r0, r3, r5 - ldrb r0, [r0] - cmp r0, r8 - bne _08047198 - adds r1, r3, 0x1 - adds r1, r5 - ldr r2, =gBattleMons - ldr r7, =gEnemyMonIndex - ldrb r0, [r7] - movs r6, 0x58 - muls r0, r6 - adds r0, r2 - adds r0, 0x21 - ldrb r4, [r1] - ldrb r0, [r0] - cmp r4, r0 - bne _08047172 - adds r0, r3, 0x2 - adds r0, r5 - ldrb r0, [r0] - str r2, [sp] - str r3, [sp, 0x4] - bl battle_attack_damage_modulate_by_effectivity - ldr r3, [sp, 0x4] - ldr r2, [sp] -_08047172: - ldrb r0, [r7] - muls r0, r6 - adds r0, r2 - adds r1, r0, 0 - adds r1, 0x22 - ldrb r1, [r1] - cmp r4, r1 - bne _08047198 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, r4 - beq _08047198 - adds r0, r3, 0x2 - adds r0, r5 - ldrb r0, [r0] - str r3, [sp, 0x4] - bl battle_attack_damage_modulate_by_effectivity - ldr r3, [sp, 0x4] -_08047198: - adds r3, 0x3 - ldr r5, =gBattleMons - ldr r4, =gEnemyMonIndex - ldr r2, =gUnknown_0831ACE8 -_080471A0: - adds r0, r3, r2 - ldrb r0, [r0] -_080471A4: - cmp r0, 0xFF - beq _080471C4 - cmp r0, 0xFE - bne _0804713C - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - adds r1, r5, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 22 - ands r0, r1 - cmp r0, 0 - beq _08047138 -_080471C4: - ldr r2, =gBattleMons - ldr r5, =gEnemyMonIndex - ldrb r1, [r5] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r6, [r0] - cmp r6, 0x19 - bne _08047242 - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - ldr r7, =gUnknown_020241EA - ldrh r1, [r7] - bl move_weather_interaction - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _08047242 - ldr r1, =gBattleMoveFlags - mov r8, r1 - ldrb r4, [r1] - ands r0, r4 - cmp r0, 0 - beq _08047200 - movs r0, 0x6 - ands r0, r4 - cmp r0, 0x6 - bne _08047242 -_08047200: - ldr r2, =gBattleMoves - ldrh r1, [r7] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _08047242 - ldr r3, =gUnknown_0202420A - strb r6, [r3] - movs r0, 0x1 - orrs r0, r4 - mov r1, r8 - strb r0, [r1] - ldr r1, =gUnknown_02024250 - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - movs r2, 0 - strh r2, [r0] - ldr r1, =gUnknown_02024258 - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - strh r2, [r0] - ldr r1, =gUnknown_02024332 - movs r0, 0x3 - strb r0, [r1, 0x6] - ldrb r0, [r5] - ldrb r1, [r3] - bl b_history__record_ability_usage_of_player -_08047242: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08047260 - ldr r2, =gUnknown_0202433C - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - lsls r1, 4 - adds r1, r2 - ldrb r0, [r1, 0x1] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r1, 0x1] -_08047260: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8047038 - - thumb_func_start b_wonderguard_and_levitate -b_wonderguard_and_levitate: @ 80472A8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r6, 0 - movs r5, 0 - ldr r0, =gUnknown_020241EA - ldrh r1, [r0] - mov r9, r0 - cmp r1, 0xA5 - bne _080472C0 - b _08047508 -_080472C0: - ldr r2, =gBattleMoves - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _080472D2 - b _08047508 -_080472D2: - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - ldrb r0, [r0, 0x13] - cmp r0, 0 - beq _080472F4 - movs r1, 0x3F - mov r12, r1 - mov r2, r12 - ands r2, r0 - mov r12, r2 - b _080472F8 - .pool -_080472F4: - ldrb r1, [r1, 0x2] - mov r12, r1 -_080472F8: - ldr r2, =gBattleMons - ldr r3, =gEnemyMonIndex - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r1, [r0] - adds r7, r2, 0 - mov r8, r3 - cmp r1, 0x1A - bne _0804733C - mov r0, r12 - cmp r0, 0x4 - bne _0804733C - ldr r0, =gUnknown_0202420A - strb r1, [r0] - ldr r0, =gUnknown_02024332 - mov r1, r12 - strb r1, [r0, 0x6] - ldrb r0, [r3] - movs r1, 0x1A - bl b_history__record_ability_usage_of_player - b _08047508 - .pool -_0804733C: - ldr r1, =gUnknown_0831ACE8 - adds r0, r5, r1 - ldrb r0, [r0] - adds r4, r1, 0 - b _0804748E - .pool -_0804734C: - adds r0, r5, r4 - ldrb r0, [r0] - cmp r0, r12 - beq _08047356 - b _08047488 -_08047356: - adds r2, r5, 0x1 - adds r3, r2, r4 - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r7 - adds r0, 0x21 - ldrb r1, [r3] - adds r3, r2, 0 - ldrb r0, [r0] - cmp r1, r0 - bne _08047396 - adds r0, r5, 0x2 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _08047396 - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_0202433C - ldr r0, =gUnknown_0202420B - ldrb r2, [r0] - lsls r2, 4 - adds r2, r1 - ldrb r0, [r2, 0x1] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2, 0x1] -_08047396: - adds r2, r3, r4 - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r7 - adds r1, r0, 0 - adds r1, 0x22 - ldrb r2, [r2] - ldrb r1, [r1] - cmp r2, r1 - bne _080473DC - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, r2 - beq _080473DC - adds r0, r5, 0x2 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _080473DC - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_0202433C - ldr r0, =gUnknown_0202420B - ldrb r2, [r0] - lsls r2, 4 - adds r2, r1 - ldrb r0, [r2, 0x1] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2, 0x1] -_080473DC: - adds r2, r3, r4 - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r7 - adds r0, 0x21 - ldrb r1, [r2] - ldrb r0, [r0] - cmp r1, r0 - bne _08047400 - adds r0, r5, 0x2 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x14 - bne _08047400 - movs r0, 0x1 - orrs r6, r0 -_08047400: - adds r2, r3, r4 - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r7 - adds r1, r0, 0 - adds r1, 0x22 - ldrb r2, [r2] - ldrb r1, [r1] - cmp r2, r1 - bne _0804742E - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, r2 - beq _0804742E - adds r0, r5, 0x2 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x14 - bne _0804742E - movs r0, 0x1 - orrs r6, r0 -_0804742E: - adds r2, r3, r4 - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r7 - adds r0, 0x21 - ldrb r1, [r2] - ldrb r0, [r0] - cmp r1, r0 - bne _08047456 - adds r0, r5, 0x2 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x5 - bne _08047456 - movs r0, 0x2 - orrs r6, r0 - lsls r0, r6, 24 - lsrs r6, r0, 24 -_08047456: - adds r2, r3, r4 - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r7 - adds r1, r0, 0 - adds r1, 0x22 - ldrb r2, [r2] - ldrb r1, [r1] - cmp r2, r1 - bne _08047488 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, r2 - beq _08047488 - adds r0, r5, 0x2 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x5 - bne _08047488 - movs r0, 0x2 - orrs r6, r0 - lsls r0, r6, 24 - lsrs r6, r0, 24 -_08047488: - adds r5, 0x3 - adds r0, r5, r4 - ldrb r0, [r0] -_0804748E: - cmp r0, 0xFF - beq _080474B2 - cmp r0, 0xFE - beq _08047498 - b _0804734C -_08047498: - mov r2, r8 - ldrb r1, [r2] - movs r0, 0x58 - muls r0, r1 - adds r1, r7, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 22 - ands r0, r1 - cmp r0, 0 - beq _08047488 -_080474B2: - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r7 - adds r0, 0x20 - ldrb r4, [r0] - cmp r4, 0x19 - bne _08047508 - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - mov r2, r9 - ldrh r1, [r2] - bl move_weather_interaction - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _08047508 - movs r0, 0x3 - ands r6, r0 - cmp r6, 0x1 - beq _08047508 - ldr r2, =gBattleMoves - mov r0, r9 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _08047508 - ldr r0, =gUnknown_0202420A - strb r4, [r0] - ldr r1, =gUnknown_02024332 - movs r0, 0x3 - strb r0, [r1, 0x6] - mov r1, r8 - ldrb r0, [r1] - movs r1, 0x19 - bl b_history__record_ability_usage_of_player -_08047508: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end b_wonderguard_and_levitate - - thumb_func_start b_attack_effectivity_adapt -b_attack_effectivity_adapt: @ 804752C - push {r4-r7,lr} - adds r6, r2, 0 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 16 - lsrs r5, r1, 16 - ldr r7, =gBattleMoveDamage - ldr r0, [r7] - muls r0, r4 - movs r1, 0xA - bl __divsi3 - str r0, [r7] - cmp r0, 0 - bne _08047552 - cmp r4, 0 - beq _08047552 - movs r0, 0x1 - str r0, [r7] -_08047552: - cmp r4, 0x5 - beq _0804757A - cmp r4, 0x5 - bgt _08047564 - cmp r4, 0 - beq _0804756A - b _080475DE - .pool -_08047564: - cmp r4, 0x14 - beq _080475AC - b _080475DE -_0804756A: - ldrb r0, [r6] - movs r1, 0x8 - orrs r0, r1 - movs r1, 0xFB - ands r0, r1 - movs r1, 0xFD - ands r0, r1 - b _080475DC -_0804757A: - ldr r0, =gBattleMoves - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0 - beq _080475DE - ldrb r1, [r6] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _080475DE - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080475A8 - movs r0, 0xFD - ands r0, r1 - b _080475DC - .pool -_080475A8: - movs r0, 0x4 - b _080475DA -_080475AC: - ldr r0, =gBattleMoves - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0 - beq _080475DE - ldrb r1, [r6] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _080475DE - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080475D8 - movs r0, 0xFB - ands r0, r1 - b _080475DC - .pool -_080475D8: - movs r0, 0x2 -_080475DA: - orrs r0, r1 -_080475DC: - strb r0, [r6] -_080475DE: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end b_attack_effectivity_adapt - - thumb_func_start move_effectiveness_something -move_effectiveness_something: @ 80475E4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x4] - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - movs r0, 0 - mov r8, r0 - mov r0, sp - mov r1, r8 - strb r1, [r0] - mov r2, r10 - cmp r2, 0xA5 - bne _08047616 - movs r0, 0 - b _0804779E -_08047616: - ldr r1, =gBattleMoves - mov r3, r10 - lsls r2, r3, 1 - adds r0, r2, r3 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x2] - str r0, [sp, 0x8] - ldr r1, =gBattleMons - movs r0, 0x58 - ldr r3, [sp, 0x4] - muls r0, r3 - adds r3, r0, r1 - adds r0, r3, 0 - adds r0, 0x21 - ldrb r0, [r0] - str r2, [sp, 0xC] - adds r5, r1, 0 - ldr r1, [sp, 0x8] - cmp r0, r1 - beq _0804764A - adds r0, r3, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, r1 - bne _0804765C -_0804764A: - ldr r4, =gBattleMoveDamage - ldr r1, [r4] - lsls r0, r1, 4 - subs r0, r1 - str r0, [r4] - movs r1, 0xA - bl __divsi3 - str r0, [r4] -_0804765C: - movs r0, 0x58 - mov r2, r9 - muls r2, r0 - adds r0, r2, 0 - adds r0, r5 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1A - bne _08047690 - ldr r3, [sp, 0x8] - cmp r3, 0x4 - bne _08047690 - movs r1, 0x9 - mov r0, sp - ldrb r0, [r0] - orrs r0, r1 - mov r1, sp - strb r0, [r1] - b _08047740 - .pool -_08047690: - ldr r1, =gUnknown_0831ACE8 - mov r2, r8 - adds r0, r2, r1 - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0xFF - beq _08047740 - cmp r0, 0xFE - bne _080476B6 - movs r0, 0x58 - mov r3, r9 - muls r3, r0 - adds r0, r3, 0 - b _0804772E - .pool -_080476B0: - movs r0, 0x3 - add r8, r0 - b _08047718 -_080476B6: - ldr r7, =gUnknown_0831ACE8 - mov r1, r8 - adds r0, r1, r7 - ldrb r0, [r0] - ldr r2, [sp, 0x8] - cmp r0, r2 - bne _08047710 - adds r1, 0x1 - adds r1, r7 - ldr r2, =gBattleMons - movs r0, 0x58 - mov r3, r9 - muls r3, r0 - adds r0, r3, 0 - adds r5, r0, r2 - adds r6, r5, 0 - adds r6, 0x21 - ldrb r4, [r1] - ldrb r0, [r6] - cmp r4, r0 - bne _080476F0 - mov r0, r8 - adds r0, 0x2 - adds r0, r7 - ldrb r0, [r0] - mov r1, r10 - mov r2, sp - bl b_attack_effectivity_adapt -_080476F0: - adds r0, r5, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r4, r0 - bne _08047710 - ldrb r0, [r6] - cmp r0, r4 - beq _08047710 - mov r0, r8 - adds r0, 0x2 - adds r0, r7 - ldrb r0, [r0] - mov r1, r10 - mov r2, sp - bl b_attack_effectivity_adapt -_08047710: - movs r1, 0x3 - add r8, r1 - ldr r5, =gBattleMons - ldr r2, =gUnknown_0831ACE8 -_08047718: - mov r3, r8 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, 0xFF - beq _08047740 - cmp r0, 0xFE - bne _080476B6 - movs r0, 0x58 - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 -_0804772E: - adds r1, r5, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 22 - ands r0, r1 - cmp r0, 0 - beq _080476B0 -_08047740: - movs r0, 0x58 - mov r2, r9 - muls r2, r0 - adds r0, r2, 0 - adds r0, r5 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x19 - bne _0804779A - mov r0, sp - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0804779A - ldr r0, [sp, 0x4] - mov r1, r10 - bl move_weather_interaction - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x2 - bne _0804779A - mov r0, sp - ldrb r3, [r0] - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - beq _08047782 - movs r0, 0x6 - ands r0, r3 - cmp r0, 0x6 - bne _0804779A -_08047782: - ldr r0, =gBattleMoves - ldr r1, [sp, 0xC] - add r1, r10 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0 - beq _0804779A - mov r0, sp - movs r1, 0x1 - orrs r1, r3 - strb r1, [r0] -_0804779A: - mov r0, sp - ldrb r0, [r0] -_0804779E: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end move_effectiveness_something - - thumb_func_start ai_rate_move -ai_rate_move: @ 80477BC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x4] - movs r7, 0 - mov r0, sp - strb r7, [r0] - ldr r2, =gBaseStats - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x6] - mov r9, r1 - ldrb r0, [r0, 0x7] - mov r8, r0 - cmp r6, 0xA5 - bne _080477FC - movs r0, 0 - b _080478A0 - .pool -_080477FC: - ldr r2, =gBattleMoves - lsls r1, r6, 1 - adds r0, r1, r6 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x2] - mov r10, r0 - str r1, [sp, 0x8] - ldr r3, [sp, 0x4] - cmp r3, 0x1A - bne _08047824 - cmp r0, 0x4 - bne _08047824 - movs r1, 0x9 - mov r0, sp - strb r1, [r0] - b _0804786A - .pool -_08047824: - ldr r0, =gUnknown_0831ACE8 - adds r1, r7, r0 - ldrb r0, [r1] - cmp r0, 0xFF - beq _0804786A - adds r4, r1, 0 -_08047830: - ldrb r0, [r4] - cmp r0, 0xFE - beq _0804785C - cmp r0, r10 - bne _0804785C - ldrb r5, [r4, 0x1] - cmp r5, r9 - bne _0804784A - ldrb r0, [r4, 0x2] - adds r1, r6, 0 - mov r2, sp - bl b_attack_effectivity_adapt -_0804784A: - cmp r5, r8 - bne _0804785C - cmp r9, r8 - beq _0804785C - ldrb r0, [r4, 0x2] - adds r1, r6, 0 - mov r2, sp - bl b_attack_effectivity_adapt -_0804785C: - adds r4, 0x3 - adds r7, 0x3 - ldr r1, =gUnknown_0831ACE8 - adds r0, r7, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08047830 -_0804786A: - ldr r3, [sp, 0x4] - cmp r3, 0x19 - bne _0804789C - mov r0, sp - ldrb r2, [r0] - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _08047884 - movs r0, 0x6 - ands r0, r2 - cmp r0, 0x6 - bne _0804789C -_08047884: - ldr r0, =gBattleMoves - ldr r3, [sp, 0x8] - adds r1, r3, r6 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0 - beq _0804789C - mov r0, sp - movs r1, 0x8 - orrs r1, r2 - strb r1, [r0] -_0804789C: - mov r0, sp - ldrb r0, [r0] -_080478A0: - 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 ai_rate_move - - thumb_func_start sub_80478B8 -sub_80478B8: @ 80478B8 - push {r4,lr} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF - ands r0, r1 - movs r1, 0x64 - subs r1, r0 - lsls r1, 16 - lsrs r1, 16 - ldr r4, =gBattleMoveDamage - ldr r0, [r4] - cmp r0, 0 - beq _080478EA - muls r0, r1 - str r0, [r4] - movs r1, 0x64 - bl __divsi3 - str r0, [r4] - cmp r0, 0 - bne _080478EA - movs r0, 0x1 - str r0, [r4] -_080478EA: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80478B8 - - thumb_func_start atk07_cmd7 -atk07_cmd7: @ 80478F4 - push {r4-r7,lr} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF - ands r0, r1 - movs r1, 0x64 - subs r1, r0 - lsls r1, 16 - lsrs r1, 16 - ldr r4, =gBattleMoveDamage - ldr r0, [r4] - cmp r0, 0 - beq _08047926 - muls r0, r1 - str r0, [r4] - movs r1, 0x64 - bl __divsi3 - str r0, [r4] - cmp r0, 0 - bne _08047926 - movs r0, 0x1 - str r0, [r4] -_08047926: - ldr r7, =gBattleMons - ldr r6, =gEnemyMonIndex - ldrb r2, [r6] - movs r5, 0x58 - adds r0, r2, 0 - muls r0, r5 - adds r1, r0, r7 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _0804795C - ldr r1, =gUnknown_02024404 - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x7] - ldrb r6, [r0, 0x1A] - b _08047976 - .pool -_0804795C: - ldrh r0, [r1, 0x2E] - bl itemid_get_x12 - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r6] - muls r0, r5 - adds r0, r7 - ldrh r0, [r0, 0x2E] - bl itemid_get_quality - lsls r0, 24 - lsrs r6, r0, 24 -_08047976: - ldr r1, =gUnknown_0202420F - ldr r5, =gEnemyMonIndex - ldrb r0, [r5] - strb r0, [r1] - cmp r4, 0x27 - bne _080479B4 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, r6 - bcs _080479B4 - ldrb r0, [r5] - movs r1, 0x27 - bl b_history__record_item_x12_of_player - ldr r2, =gUnknown_0202437C - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] -_080479B4: - ldr r2, =gBattleMons - ldr r3, =gEnemyMonIndex - ldrb r4, [r3] - movs r0, 0x58 - muls r0, r4 - adds r1, r2, 0 - adds r1, 0x50 - adds r0, r1 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 17 - ands r1, r0 - adds r5, r2, 0 - cmp r1, 0 - bne _08047A84 - ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x65 - beq _08047A06 - ldr r0, =gUnknown_0202433C - lsls r1, r4, 4 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 30 - cmp r0, 0 - blt _08047A06 - ldr r0, =gUnknown_0202437C - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - lsrs r0, 7 - cmp r0, 0 - beq _08047A84 -_08047A06: - ldrb r0, [r3] - movs r4, 0x58 - muls r0, r4 - adds r0, r5 - ldrh r1, [r0, 0x28] - ldr r2, =gBattleMoveDamage - ldr r0, [r2] - cmp r1, r0 - bgt _08047A84 - subs r0, r1, 0x1 - str r0, [r2] - ldr r1, =gUnknown_0202433C - ldrb r3, [r3] - lsls r0, r3, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - cmp r0, 0 - bge _08047A5C - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - b _08047A84 - .pool -_08047A5C: - ldr r0, =gUnknown_0202437C - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - lsrs r0, 7 - cmp r0, 0 - beq _08047A84 - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_02024208 - adds r0, r3, 0 - muls r0, r4 - adds r0, r5 - ldrh r0, [r0, 0x2E] - strh r0, [r1] -_08047A84: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk07_cmd7 - - thumb_func_start atk08_cmd8 -atk08_cmd8: @ 8047AA4 - push {r4-r7,lr} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF - ands r0, r1 - movs r1, 0x64 - subs r1, r0 - lsls r1, 16 - lsrs r1, 16 - ldr r4, =gBattleMoveDamage - ldr r0, [r4] - cmp r0, 0 - beq _08047AD6 - muls r0, r1 - str r0, [r4] - movs r1, 0x64 - bl __divsi3 - str r0, [r4] - cmp r0, 0 - bne _08047AD6 - movs r0, 0x1 - str r0, [r4] -_08047AD6: - ldr r7, =gBattleMons - ldr r6, =gEnemyMonIndex - ldrb r2, [r6] - movs r5, 0x58 - adds r0, r2, 0 - muls r0, r5 - adds r1, r0, r7 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _08047B0C - ldr r1, =gUnknown_02024404 - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x7] - ldrb r6, [r0, 0x1A] - b _08047B26 - .pool -_08047B0C: - ldrh r0, [r1, 0x2E] - bl itemid_get_x12 - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r6] - muls r0, r5 - adds r0, r7 - ldrh r0, [r0, 0x2E] - bl itemid_get_quality - lsls r0, 24 - lsrs r6, r0, 24 -_08047B26: - ldr r1, =gUnknown_0202420F - ldr r5, =gEnemyMonIndex - ldrb r0, [r5] - strb r0, [r1] - cmp r4, 0x27 - bne _08047B64 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, r6 - bcs _08047B64 - ldrb r0, [r5] - movs r1, 0x27 - bl b_history__record_item_x12_of_player - ldr r2, =gUnknown_0202437C - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] -_08047B64: - ldr r4, =gBattleMons - ldr r6, =gEnemyMonIndex - ldrb r2, [r6] - movs r7, 0x58 - adds r3, r2, 0 - muls r3, r7 - adds r0, r4, 0 - adds r0, 0x50 - adds r0, r3, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - bne _08047C10 - ldr r5, =gUnknown_0202433C - lsls r0, r2, 4 - adds r0, r5 - ldrb r0, [r0] - lsls r0, 30 - cmp r0, 0 - blt _08047BA2 - ldr r0, =gUnknown_0202437C - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - lsrs r0, 7 - cmp r0, 0 - beq _08047C10 -_08047BA2: - adds r0, r3, r4 - ldrh r1, [r0, 0x28] - ldr r2, =gBattleMoveDamage - ldr r0, [r2] - cmp r1, r0 - bgt _08047C10 - subs r0, r1, 0x1 - str r0, [r2] - ldrb r3, [r6] - lsls r0, r3, 4 - adds r0, r5 - ldrb r0, [r0] - lsls r0, 30 - cmp r0, 0 - bge _08047BE8 - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - b _08047C10 - .pool -_08047BE8: - ldr r0, =gUnknown_0202437C - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - lsrs r0, 7 - cmp r0, 0 - beq _08047C10 - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_02024208 - adds r0, r3, 0 - muls r0, r7 - adds r0, r4 - ldrh r0, [r0, 0x2E] - strh r0, [r1] -_08047C10: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk08_cmd8 - - thumb_func_start atk09_attackanimation -atk09_attackanimation: @ 8047C30 - push {r4-r7,lr} - sub sp, 0x10 - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - beq _08047C3E - b _08047DB6 -_08047C3E: - ldr r0, =gUnknown_02024280 - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - ldr r5, =gUnknown_020241EA - cmp r0, 0 - beq _08047C8C - ldrh r0, [r5] - cmp r0, 0x90 - beq _08047C8C - cmp r0, 0xA4 - beq _08047C8C - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DABB9 - str r0, [r4] - ldr r1, =gUnknown_02024474 - ldrb r0, [r1, 0x18] - adds r0, 0x1 - strb r0, [r1, 0x18] - ldrb r0, [r1, 0x19] - adds r0, 0x1 - strb r0, [r1, 0x19] - b _08047DB6 - .pool -_08047C8C: - ldr r2, =gBattleMoves - ldrh r1, [r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x6] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _08047CB2 - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _08047CB2 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08047CBA -_08047CB2: - ldr r0, =gUnknown_02024474 - ldrb r0, [r0, 0x19] - cmp r0, 0 - bne _08047D88 -_08047CBA: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _08047DA8 - ldr r1, =gUnknown_02024064 - ldr r3, =gUnknown_0202420B - ldrb r0, [r3] - strb r0, [r1] - ldr r2, =gBattleMons - ldr r0, =gEnemyMonIndex - ldrb r1, [r0] - movs r0, 0x58 - adds r4, r1, 0 - muls r4, r0 - adds r0, r2, 0 - adds r0, 0x50 - adds r0, r4, r0 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 17 - ands r1, r0 - adds r7, r3, 0 - mov r12, r2 - cmp r1, 0 - beq _08047D18 - ldr r0, =gUnknown_02024212 - ldrb r6, [r0] - b _08047D42 - .pool -_08047D18: - ldr r3, =gUnknown_02024212 - ldrb r0, [r3] - cmp r0, 0x1 - bls _08047D40 - mov r1, r12 - adds r0, r4, r1 - ldrh r2, [r0, 0x28] - ldr r0, =gBattleMoveDamage - ldr r1, [r0] - movs r6, 0x1 - adds r4, r0, 0 - cmp r2, r1 - ble _08047D44 - ldrb r6, [r3] - b _08047D44 - .pool -_08047D40: - ldrb r6, [r3] -_08047D42: - ldr r4, =gBattleMoveDamage -_08047D44: - ldrh r1, [r5] - ldr r5, =gUnknown_02024474 - ldrb r2, [r5, 0x18] - ldr r0, =gUnknown_020244E0 - ldrh r3, [r0] - ldr r0, [r4] - str r0, [sp] - ldrb r4, [r7] - movs r0, 0x58 - muls r0, r4 - add r0, r12 - adds r0, 0x2B - ldrb r0, [r0] - str r0, [sp, 0x4] - ldrb r4, [r7] - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - ldr r4, =gUnknown_020242BC - adds r0, r4 - str r0, [sp, 0x8] - str r6, [sp, 0xC] - movs r0, 0 - bl dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes - ldrb r0, [r5, 0x18] - adds r0, 0x1 - strb r0, [r5, 0x18] - ldrb r0, [r5, 0x19] - adds r0, 0x1 - strb r0, [r5, 0x19] - ldrb r0, [r7] - bl dp01_battle_side_mark_buffer_for_execution -_08047D88: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - b _08047DB6 - .pool -_08047DA8: - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DABB9 - str r0, [r4] -_08047DB6: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk09_attackanimation - - thumb_func_start sub_8047DC8 -sub_8047DC8: @ 8047DC8 - push {lr} - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - bne _08047DDA - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_08047DDA: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8047DC8 - - thumb_func_start atk0B_graphicalhpupdate -atk0B_graphicalhpupdate: @ 8047DE8 - push {r4,lr} - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - bne _08047EAA - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _08047EA2 - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r2, =gUnknown_02024064 - strb r0, [r2] - ldr r1, =gBattleMons - ldrb r2, [r2] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _08047E68 - ldr r0, =gUnknown_020242BC - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0xA] - cmp r0, 0 - beq _08047E68 - ldr r0, =gUnknown_02024280 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 1 - ands r0, r1 - cmp r0, 0 - bne _08047E68 - movs r0, 0x80 - adds r1, r2, 0 - bl b_std_message - b _08047EA2 - .pool -_08047E68: - ldr r0, =gBattleMoveDamage - ldr r0, [r0] - ldr r1, =0x00002710 - cmp r0, r1 - bgt _08047E76 - lsls r0, 16 - lsrs r1, r0, 16 -_08047E76: - movs r0, 0 - bl dp01_build_cmdbuf_x18_0_aa_health_bar_update - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08047EA2 - ldr r0, =gBattleMoveDamage - ldr r0, [r0] - cmp r0, 0 - ble _08047EA2 - ldr r0, =gUnknown_03005D10 - ldrb r1, [r0, 0x5] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0, 0x5] -_08047EA2: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] -_08047EAA: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk0B_graphicalhpupdate - - thumb_func_start atk0C_datahpupdate -atk0C_datahpupdate: @ 8047EC4 - push {r4-r7,lr} - sub sp, 0x4 - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - beq _08047ED2 - b _080482A2 -_08047ED2: - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - ldrb r1, [r0, 0x13] - cmp r1, 0 - beq _08047EF4 - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08047EF4 - movs r6, 0x3F - ands r6, r1 - b _08047F04 - .pool -_08047EF4: - ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r6, [r0, 0x2] -_08047F04: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _08047F12 - b _08048274 -_08047F12: - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r7, =gUnknown_02024064 - strb r0, [r7] - ldr r1, =gBattleMons - ldrb r2, [r7] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _08048028 - ldr r0, =gUnknown_020242BC - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r4, r1, r0 - ldrb r1, [r4, 0xA] - mov r12, r0 - cmp r1, 0 - beq _08048028 - ldr r0, =gUnknown_02024280 - ldr r3, [r0] - movs r0, 0x80 - lsls r0, 1 - ands r3, r0 - cmp r3, 0 - bne _08048028 - adds r5, r1, 0 - ldr r6, =gBattleMoveDamage - ldr r4, [r6] - cmp r5, r4 - blt _08047FBC - ldr r0, =gUnknown_0202437C - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 2 - adds r0, 0x4 - adds r1, r0 - ldr r0, [r1] - cmp r0, 0 - bne _08047F76 - str r4, [r1] -_08047F76: - ldrb r0, [r7] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - add r1, r12 - ldr r2, [r6] - ldrb r0, [r1, 0xA] - subs r0, r2 - strb r0, [r1, 0xA] - ldr r1, =gUnknown_020241F4 - ldr r0, [r6] - str r0, [r1] - b _08047FEC - .pool -_08047FBC: - ldr r0, =gUnknown_0202437C - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 2 - adds r0, 0x4 - adds r1, r0 - ldr r0, [r1] - cmp r0, 0 - bne _08047FD0 - str r5, [r1] -_08047FD0: - ldr r2, =gUnknown_020241F4 - ldrb r1, [r7] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r12 - ldrb r0, [r0, 0xA] - str r0, [r2] - ldrb r1, [r7] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r12 - strb r3, [r0, 0xA] -_08047FEC: - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r12 - ldrb r0, [r0, 0xA] - cmp r0, 0 - beq _08048000 - b _0804829A -_08048000: - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - bl b_movescr_stack_push_cursor - ldr r0, =gUnknown_082DB6FB - str r0, [r4] - b _080482A2 - .pool -_08048028: - ldr r0, =gUnknown_02024280 - ldr r2, [r0] - ldr r1, =0xfffffeff - ands r2, r1 - str r2, [r0] - ldr r1, =gBattleMoveDamage - ldr r5, [r1] - mov r12, r0 - adds r7, r1, 0 - cmp r5, 0 - bge _0804807C - ldr r4, =gBattleMons - ldr r2, =gUnknown_02024064 - ldrb r0, [r2] - movs r3, 0x58 - adds r1, r0, 0 - muls r1, r3 - adds r1, r4 - ldrh r0, [r1, 0x28] - subs r0, r5 - strh r0, [r1, 0x28] - ldrb r0, [r2] - muls r0, r3 - adds r1, r0, r4 - ldrh r3, [r1, 0x2C] - ldrh r0, [r1, 0x28] - adds r5, r2, 0 - cmp r0, r3 - bhi _08048064 - b _0804823A -_08048064: - strh r3, [r1, 0x28] - b _0804823A - .pool -_0804807C: - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - beq _08048098 - movs r0, 0x21 - negs r0, r0 - ands r2, r0 - mov r0, r12 - str r2, [r0] - ldr r5, =gUnknown_02024064 - b _080480E0 - .pool -_08048098: - ldr r0, =gUnknown_020241F8 - ldr r2, =gUnknown_02024064 - ldrb r1, [r2] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - adds r0, r5 - str r0, [r1] - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - adds r5, r2, 0 - cmp r0, 0 - bne _080480D4 - ldr r1, =gUnknown_02024288 - ldrb r0, [r5] - adds r0, r1 - ldr r1, =gUnknown_0202420B - b _080480DC - .pool -_080480D4: - ldr r1, =gUnknown_02024288 - ldrb r0, [r5] - adds r0, r1 - ldr r1, =gEnemyMonIndex -_080480DC: - ldrb r1, [r1] - strb r1, [r0] -_080480E0: - ldr r4, =gBattleMons - ldrb r0, [r5] - movs r3, 0x58 - muls r0, r3 - adds r2, r0, r4 - ldrh r0, [r2, 0x28] - ldr r1, [r7] - cmp r0, r1 - ble _08048110 - subs r0, r1 - strh r0, [r2, 0x28] - ldr r0, =gUnknown_020241F4 - str r1, [r0] - adds r7, r0, 0 - b _08048120 - .pool -_08048110: - ldr r2, =gUnknown_020241F4 - str r0, [r2] - ldrb r0, [r5] - muls r0, r3 - adds r0, r4 - movs r1, 0 - strh r1, [r0, 0x28] - adds r7, r2, 0 -_08048120: - ldr r2, =gUnknown_0202437C - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r1, r2, 0x4 - adds r3, r0, r1 - ldr r0, [r3] - adds r4, r2, 0 - cmp r0, 0 - bne _08048148 - mov r1, r12 - ldr r0, [r1] - movs r1, 0x80 - lsls r1, 13 - ands r0, r1 - cmp r0, 0 - bne _08048148 - ldr r0, [r7] - str r0, [r3] -_08048148: - cmp r6, 0x8 - bhi _080481D0 - mov r1, r12 - ldr r0, [r1] - movs r1, 0x80 - lsls r1, 13 - ands r0, r1 - cmp r0, 0 - bne _080481CC - ldr r0, =gUnknown_020241EA - ldrh r0, [r0] - cmp r0, 0xDC - beq _080481CC - ldr r3, =gUnknown_0202433C - ldrb r0, [r5] - lsls r0, 4 - adds r1, r3, 0x4 - adds r0, r1 - ldr r2, [r7] - str r2, [r0] - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x8 - adds r0, r1 - str r2, [r0] - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _080481AC - ldrb r0, [r5] - lsls r0, 4 - adds r0, r3 - ldr r2, =gUnknown_0202420B - b _080481B4 - .pool -_080481AC: - ldrb r0, [r5] - lsls r0, 4 - adds r0, r3 - ldr r2, =gEnemyMonIndex -_080481B4: - ldrb r1, [r2] - strb r1, [r0, 0xC] - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r2] - strb r1, [r0, 0x10] - b _0804823A - .pool -_080481CC: - cmp r6, 0x8 - bls _0804823A -_080481D0: - mov r1, r12 - ldr r0, [r1] - movs r1, 0x80 - lsls r1, 13 - ands r0, r1 - cmp r0, 0 - bne _0804823A - ldr r3, =gUnknown_0202433C - ldrb r0, [r5] - lsls r0, 4 - adds r1, r3, 0 - adds r1, 0x8 - adds r0, r1 - ldr r2, [r7] - str r2, [r0] - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0xC - adds r0, r1 - str r2, [r0] - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _08048220 - ldrb r0, [r5] - lsls r0, 4 - adds r0, r3 - ldr r2, =gUnknown_0202420B - b _08048228 - .pool -_08048220: - ldrb r0, [r5] - lsls r0, 4 - adds r0, r3 - ldr r2, =gEnemyMonIndex -_08048228: - ldrb r1, [r2] - strb r1, [r0, 0xD] - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r2] - strb r1, [r0, 0x11] -_0804823A: - mov r1, r12 - ldr r0, [r1] - ldr r1, =0xffefffff - ands r0, r1 - mov r1, r12 - str r0, [r1] - ldrb r1, [r5] - movs r0, 0x58 - muls r0, r1 - ldr r1, =gUnknown_020240AC - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x2A - movs r2, 0 - movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - b _0804829A - .pool -_08048274: - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r1, =gUnknown_02024064 - strb r0, [r1] - ldr r2, =gUnknown_0202437C - ldrb r1, [r1] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0x4 - adds r1, r0, r2 - ldr r0, [r1] - cmp r0, 0 - bne _0804829A - ldr r0, =0x0000ffff - str r0, [r1] -_0804829A: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] -_080482A2: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk0C_datahpupdate - - thumb_func_start atk0D_critmessage -atk0D_critmessage: @ 80482BC - push {lr} - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - bne _080482F2 - ldr r0, =gCritMultiplier - ldrb r0, [r0] - cmp r0, 0x2 - bne _080482EA - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _080482EA - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - movs r0, 0xD9 - bl b_std_message - ldr r1, =gUnknown_02024332 - movs r0, 0x1 - strb r0, [r1, 0x7] -_080482EA: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_080482F2: - pop {r0} - bx r0 - .pool - thumb_func_end atk0D_critmessage - - thumb_func_start atk0E_missmessage -atk0E_missmessage: @ 8048310 - push {r4,lr} - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - bne _080483D0 - ldr r4, =gUnknown_02024064 - ldr r0, =gEnemyMonIndex - ldrb r0, [r0] - strb r0, [r4] - ldr r1, =gBattleMoveFlags - ldrb r2, [r1] - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - bne _080483C8 - movs r0, 0xFE - ands r0, r2 - cmp r0, 0x10 - beq _08048382 - cmp r0, 0x10 - bgt _0804835E - cmp r0, 0x4 - beq _08048372 - cmp r0, 0x4 - bgt _08048358 - cmp r0, 0x2 - beq _0804836C - b _08048382 - .pool -_08048358: - cmp r0, 0x8 - beq _080483C8 - b _08048382 -_0804835E: - cmp r0, 0x40 - beq _08048382 - cmp r0, 0x40 - bgt _08048382 - cmp r0, 0x20 - beq _080483C8 - b _08048382 -_0804836C: - movs r0, 0 - movs r1, 0xE - b _08048376 -_08048372: - movs r0, 0 - movs r1, 0xC -_08048376: - bl dp01_build_cmdbuf_x2B_aa_0 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _080483C8 -_08048382: - ldrb r1, [r1] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08048392 - movs r0, 0 - movs r1, 0xE - b _0804839E -_08048392: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080483B0 - movs r0, 0 - movs r1, 0xC -_0804839E: - bl dp01_build_cmdbuf_x2B_aa_0 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - b _080483C8 - .pool -_080483B0: - movs r0, 0x28 - ands r0, r1 - cmp r0, 0 - bne _080483C8 - movs r0, 0 - movs r1, 0xD - bl dp01_build_cmdbuf_x2B_aa_0 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution -_080483C8: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_080483D0: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk0E_missmessage - - thumb_func_start atk0F_resultmessage -atk0F_resultmessage: @ 80483E0 - push {r4-r7,lr} - movs r3, 0 - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - beq _080483EE - b _08048580 -_080483EE: - ldr r1, =gBattleMoveFlags - ldrb r2, [r1] - movs r4, 0x1 - adds r0, r4, 0 - ands r0, r2 - adds r6, r1, 0 - ldr r7, =gUnknown_02024332 - cmp r0, 0 - beq _0804842C - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _0804840E - ldrb r0, [r7, 0x6] - cmp r0, 0x2 - bls _0804842C -_0804840E: - ldr r1, =gUnknown_085CC834 - ldrb r0, [r7, 0x6] - lsls r0, 1 - adds r0, r1 - ldrh r3, [r0] - strb r4, [r7, 0x7] - b _0804856A - .pool -_0804842C: - movs r0, 0x1 - strb r0, [r7, 0x7] - ldrb r5, [r6] - movs r0, 0xFE - ands r0, r5 - cmp r0, 0x10 - beq _08048470 - cmp r0, 0x10 - bgt _08048452 - cmp r0, 0x4 - beq _0804846C - cmp r0, 0x4 - bgt _0804844C - cmp r0, 0x2 - beq _08048468 - b _080484B8 -_0804844C: - cmp r0, 0x8 - beq _080484C4 - b _080484B8 -_08048452: - cmp r0, 0x40 - beq _08048474 - cmp r0, 0x40 - bgt _08048462 - cmp r0, 0x20 - bne _08048460 - b _08048564 -_08048460: - b _080484B8 -_08048462: - cmp r0, 0x80 - beq _08048478 - b _080484B8 -_08048468: - movs r3, 0xDE - b _0804856E -_0804846C: - movs r3, 0xDD - b _0804856E -_08048470: - movs r3, 0xDA - b _0804856E -_08048474: - movs r3, 0x99 - b _0804856E -_08048478: - ldr r4, =gUnknown_02024208 - ldr r2, =gBattleMons - ldr r3, =gEnemyMonIndex - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x2E] - strh r0, [r4] - ldr r1, =gUnknown_0202420F - ldrb r0, [r3] - strb r0, [r1] - movs r0, 0x3F - ands r0, r5 - strb r0, [r6] - bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DB816 - b _0804857E - .pool -_080484B8: - adds r2, r6, 0 - ldrb r5, [r2] - movs r0, 0x8 - ands r0, r5 - cmp r0, 0 - beq _080484C8 -_080484C4: - movs r3, 0x1B - b _0804856E -_080484C8: - movs r0, 0x10 - ands r0, r5 - cmp r0, 0 - beq _080484F0 - movs r0, 0xEF - ands r0, r5 - movs r1, 0xFD - ands r0, r1 - movs r1, 0xFB - ands r0, r1 - strb r0, [r2] - bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DB1CE - b _0804857E - .pool -_080484F0: - movs r0, 0x40 - ands r0, r5 - cmp r0, 0 - beq _08048510 - movs r0, 0x3F - ands r0, r5 - strb r0, [r2] - bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DB1C7 - b _0804857E - .pool -_08048510: - movs r0, 0x80 - ands r0, r5 - cmp r0, 0 - beq _08048558 - ldr r4, =gUnknown_02024208 - ldr r2, =gBattleMons - ldr r3, =gEnemyMonIndex - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x2E] - strh r0, [r4] - ldr r1, =gUnknown_0202420F - ldrb r0, [r3] - strb r0, [r1] - movs r0, 0x3F - ands r0, r5 - strb r0, [r6] - bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DB816 - b _0804857E - .pool -_08048558: - movs r0, 0x20 - ands r0, r5 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08048568 -_08048564: - movs r3, 0xE5 - b _0804856E -_08048568: - strb r0, [r7, 0x7] -_0804856A: - cmp r3, 0 - beq _08048578 -_0804856E: - adds r0, r3, 0 - ldr r1, =gUnknown_0202420B - ldrb r1, [r1] - bl b_std_message -_08048578: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 -_0804857E: - str r0, [r1] -_08048580: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk0F_resultmessage - - thumb_func_start atk10_printstring -atk10_printstring: @ 8048590 - push {r4,lr} - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - bne _080485BA - ldr r4, =gUnknown_02024214 - ldr r1, [r4] - ldrb r0, [r1, 0x1] - ldrb r1, [r1, 0x2] - lsls r1, 8 - orrs r0, r1 - ldr r1, =gUnknown_0202420B - ldrb r1, [r1] - bl b_std_message - ldr r0, [r4] - adds r0, 0x3 - str r0, [r4] - ldr r1, =gUnknown_02024332 - movs r0, 0x1 - strb r0, [r1, 0x7] -_080485BA: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk10_printstring - - thumb_func_start atk11_printstring2 -atk11_printstring2: @ 80485D0 - push {r4,r5,lr} - ldr r5, =gUnknown_02024064 - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - strb r0, [r5] - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - ldrb r1, [r0, 0x1] - ldrb r0, [r0, 0x2] - lsls r0, 8 - orrs r1, r0 - movs r0, 0 - bl dp01_build_cmdbuf_x11_TODO - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r4] - adds r0, 0x3 - str r0, [r4] - ldr r1, =gUnknown_02024332 - movs r0, 0x1 - strb r0, [r1, 0x7] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk11_printstring2 - - thumb_func_start atk12_waitmessage -atk12_waitmessage: @ 8048614 - push {r4-r6,lr} - ldr r0, =gUnknown_02024068 - ldr r4, [r0] - cmp r4, 0 - bne _08048662 - ldr r6, =gUnknown_02024332 - ldrb r0, [r6, 0x7] - cmp r0, 0 - bne _0804863C - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x3 - str r0, [r1] - b _08048662 - .pool -_0804863C: - ldr r5, =gUnknown_02024214 - ldr r2, [r5] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldr r3, =gUnknown_0202432C - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] - lsls r0, 16 - lsrs r0, 16 - cmp r0, r1 - bcc _08048662 - movs r1, 0 - strh r4, [r3] - adds r0, r2, 0x3 - str r0, [r5] - strb r1, [r6, 0x7] -_08048662: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atk12_waitmessage - - thumb_func_start atk13_printfromtable -atk13_printfromtable: @ 8048670 - push {r4,r5,lr} - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - bne _080486AE - ldr r4, =gUnknown_02024214 - ldr r2, [r4] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - ldr r5, =gUnknown_02024332 - ldrb r0, [r5, 0x5] - lsls r0, 1 - adds r1, r0 - ldrh r0, [r1] - ldr r1, =gUnknown_0202420B - ldrb r1, [r1] - bl b_std_message - ldr r0, [r4] - adds r0, 0x5 - str r0, [r4] - movs r0, 0x1 - strb r0, [r5, 0x7] -_080486AE: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk13_printfromtable - - thumb_func_start atk14_printfromtable2 -atk14_printfromtable2: @ 80486C4 - push {r4-r6,lr} - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - bne _0804870E - ldr r5, =gUnknown_02024214 - ldr r2, [r5] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - ldr r6, =gUnknown_02024332 - ldrb r0, [r6, 0x5] - lsls r0, 1 - adds r1, r0 - ldr r4, =gUnknown_02024064 - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - strb r0, [r4] - ldrh r1, [r1] - movs r0, 0 - bl dp01_build_cmdbuf_x11_TODO - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x5 - str r0, [r5] - movs r0, 0x1 - strb r0, [r6, 0x7] -_0804870E: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atk14_printfromtable2 - - thumb_func_start sub_8048728 -sub_8048728: @ 8048728 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r0, =gUnknown_0202406C - ldrb r3, [r0] - cmp r1, r3 - bge _0804874E - ldr r4, =gUnknown_0202407E - ldrb r0, [r4] - cmp r0, r2 - beq _0804874E -_08048740: - adds r1, 0x1 - cmp r1, r3 - bge _0804874E - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, r2 - bne _08048740 -_0804874E: - lsls r0, r1, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8048728 - - thumb_func_start sub_8048760 -sub_8048760: @ 8048760 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - movs r0, 0 - mov r10, r0 - movs r7, 0 - movs r1, 0x1 - str r1, [sp, 0x4] - ldr r1, =gUnknown_02024332 - ldrb r3, [r1, 0x3] - movs r0, 0x40 - ands r0, r3 - cmp r0, 0 - beq _080487B8 - ldr r2, =gUnknown_0202420E - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - strb r0, [r2] - movs r0, 0xBF - ands r0, r3 - adds r3, r1, 0 - strb r0, [r3, 0x3] - movs r7, 0x40 - ldr r1, =gUnknown_02024474 - ldr r0, =gEnemyMonIndex - b _080487C4 - .pool -_080487B8: - ldr r2, =gUnknown_0202420E - ldr r0, =gEnemyMonIndex - ldrb r0, [r0] - strb r0, [r2] - ldr r1, =gUnknown_02024474 - ldr r0, =gUnknown_0202420B -_080487C4: - ldrb r0, [r0] - strb r0, [r1, 0x17] - mov r9, r2 - ldr r2, =gBattleMons - mov r4, r9 - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x13 - bne _08048828 - ldr r0, =gUnknown_02024280 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 6 - ands r0, r1 - cmp r0, 0 - bne _08048828 - cmp r5, 0 - bne _08048828 - ldr r1, =gUnknown_02024332 - ldrb r0, [r1, 0x3] - cmp r0, 0x9 - bhi _08048828 - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r2, =gUnknown_02024332 - strb r5, [r2, 0x3] - bl _080499B8 - .pool -_08048828: - mov r3, r9 - ldrb r0, [r3] - bl battle_get_per_side_status - ldr r2, =gUnknown_0202428E - movs r1, 0x1 - ands r1, r0 - lsls r1, 1 - adds r1, r2 - ldrh r1, [r1] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08048880 - ldr r0, =gUnknown_02024280 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 6 - ands r0, r1 - cmp r0, 0 - bne _08048880 - cmp r5, 0 - bne _08048880 - ldr r0, =gUnknown_02024332 - ldrb r1, [r0, 0x3] - cmp r1, 0x7 - bhi _08048880 - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r4, =gUnknown_02024332 - strb r5, [r4, 0x3] - bl _080499B8 - .pool -_08048880: - ldr r3, =gBattleMons - ldr r2, =gUnknown_0202420E - ldrb r1, [r2] - movs r0, 0x58 - muls r0, r1 - adds r0, r3 - ldrh r4, [r0, 0x28] - mov r9, r2 - mov r8, r3 - cmp r4, 0 - bne _080488C4 - ldr r1, =gUnknown_02024332 - ldrb r0, [r1, 0x3] - cmp r0, 0xB - beq _080488C4 - cmp r0, 0x1F - beq _080488C4 - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r2, =gUnknown_02024332 - strb r4, [r2, 0x3] - bl _080499B8 - .pool -_080488C4: - mov r3, r9 - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - mov r1, r8 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _080488FC - cmp r7, 0x40 - beq _080488FC - ldr r0, =gUnknown_02024214 - ldr r1, [r0] - adds r1, 0x1 - str r1, [r0] - movs r0, 0 - ldr r4, =gUnknown_02024332 - strb r0, [r4, 0x3] - bl _080499B8 - .pool -_080488FC: - ldr r1, =gUnknown_02024332 - ldrb r0, [r1, 0x3] - cmp r0, 0x6 - bls _08048906 - b _08048F40 -_08048906: - ldr r1, =gUnknown_0831C134 - ldr r2, =gUnknown_02024332 - ldrb r0, [r2, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0x10 - bne _08048918 - b _08048AFC -_08048918: - cmp r0, 0x10 - bhi _08048930 - cmp r0, 0x7 - beq _0804894A - cmp r0, 0x8 - beq _08048A00 - b _08048DF4 - .pool -_08048930: - cmp r0, 0x40 - bne _08048936 - b _08048C84 -_08048936: - cmp r0, 0x40 - bhi _08048942 - cmp r0, 0x20 - bne _08048940 - b _08048BEA -_08048940: - b _08048DF4 -_08048942: - cmp r0, 0x80 - bne _08048948 - b _08048D02 -_08048948: - b _08048DF4 -_0804894A: - mov r3, r9 - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - add r0, r8 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x2B - beq _080489AC - ldr r0, =gUnknown_02024064 - movs r1, 0 - strb r1, [r0] - ldr r1, =gUnknown_0202406C - ldrb r3, [r1] - adds r7, r0, 0 - mov r12, r1 - cmp r3, 0 - beq _080489B8 - mov r4, r8 - ldr r0, [r4, 0x50] - movs r1, 0x70 - ands r0, r1 - cmp r0, 0 - bne _080489B8 - adds r1, r7, 0 - mov r6, r8 - adds r6, 0x50 - movs r5, 0x58 - movs r4, 0x70 -_08048984: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, r3 - bcs _080489B8 - ldrb r0, [r7] - muls r0, r5 - adds r0, r6 - ldr r0, [r0] - ands r0, r4 - cmp r0, 0 - beq _08048984 - b _080489B8 - .pool -_080489AC: - ldr r0, =gUnknown_02024064 - ldr r2, =gUnknown_0202406C - ldrb r1, [r2] - strb r1, [r0] - adds r7, r0, 0 - mov r12, r2 -_080489B8: - mov r0, r9 - ldrb r2, [r0] - movs r0, 0x58 - adds r1, r2, 0 - muls r1, r0 - mov r0, r8 - adds r0, 0x4C - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - beq _080489D0 - b _08048DF4 -_080489D0: - ldrb r0, [r7] - mov r3, r12 - ldrb r3, [r3] - cmp r0, r3 - beq _080489DC - b _08048DF4 -_080489DC: - mov r4, r8 - adds r0, r1, r4 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x48 - bne _080489EA - b _08048DF4 -_080489EA: - cmp r0, 0xF - bne _080489F0 - b _08048DF4 -_080489F0: - adds r0, r2, 0 - bl b_cancel_multi_turn_move_maybe - b _08048DE4 - .pool -_08048A00: - mov r2, r9 - ldrb r1, [r2] - movs r0, 0x58 - muls r0, r1 - add r0, r8 - adds r0, 0x20 - ldrb r1, [r0] - cmp r1, 0x11 - bne _08048A70 - cmp r5, 0x1 - beq _08048A1A - cmp r6, 0x80 - bne _08048A70 -_08048A1A: - ldr r0, =gUnknown_0202420A - strb r1, [r0] - mov r3, r9 - ldrb r0, [r3] - movs r1, 0x11 - bl b_history__record_ability_usage_of_player - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DB5E9 - str r0, [r4] - ldr r2, =gUnknown_02024280 - ldr r1, [r2] - movs r0, 0x80 - lsls r0, 6 - ands r0, r1 - cmp r0, 0 - bne _08048A46 - b _08048D20 -_08048A46: - movs r0, 0x1 - ldr r4, =gUnknown_02024332 - strb r0, [r4, 0x5] -_08048A4C: - ldr r0, =0xffffdfff - ands r1, r0 - str r1, [r2] - bl _080499B2 - .pool -_08048A70: - mov r2, r9 - ldrb r0, [r2] - movs r1, 0x58 - muls r0, r1 - add r0, r8 - adds r1, r0, 0 - adds r1, 0x21 - ldrb r1, [r1] - cmp r1, 0x3 - beq _08048A94 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x3 - beq _08048A94 - cmp r1, 0x8 - beq _08048A94 - cmp r0, 0x8 - bne _08048AAE -_08048A94: - ldr r0, =gUnknown_02024280 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 6 - ands r0, r1 - cmp r0, 0 - beq _08048AAE - cmp r5, 0x1 - bne _08048AA8 - b _08048D66 -_08048AA8: - cmp r6, 0x80 - bne _08048AAE - b _08048D66 -_08048AAE: - mov r3, r9 - ldrb r1, [r3] - movs r0, 0x58 - muls r1, r0 - mov r4, r8 - adds r3, r1, r4 - adds r0, r3, 0 - adds r0, 0x21 - ldrb r4, [r0] - cmp r4, 0x3 - bne _08048AC6 - b _08048DF4 -_08048AC6: - adds r0, 0x1 - ldrb r0, [r0] - cmp r0, 0x3 - bne _08048AD0 - b _08048DF4 -_08048AD0: - cmp r4, 0x8 - bne _08048AD6 - b _08048DF4 -_08048AD6: - cmp r0, 0x8 - bne _08048ADC - b _08048DF4 -_08048ADC: - mov r0, r8 - adds r0, 0x4C - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - beq _08048AEA - b _08048DF4 -_08048AEA: - adds r0, r3, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x11 - bne _08048AF6 - b _08048DF4 -_08048AF6: - b _08048DE4 - .pool -_08048AFC: - mov r2, r9 - ldrb r1, [r2] - movs r0, 0x58 - muls r0, r1 - add r0, r8 - adds r0, 0x20 - ldrb r1, [r0] - cmp r1, 0x29 - bne _08048B54 - cmp r5, 0x1 - beq _08048B16 - cmp r6, 0x80 - bne _08048B54 -_08048B16: - ldr r0, =gUnknown_0202420A - strb r1, [r0] - mov r3, r9 - ldrb r0, [r3] - movs r1, 0x29 - bl b_history__record_ability_usage_of_player - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DB5D1 - str r0, [r4] - ldr r2, =gUnknown_02024280 - ldr r1, [r2] - movs r0, 0x80 - lsls r0, 6 - ands r0, r1 - cmp r0, 0 - beq _08048B42 - b _08048A46 -_08048B42: - b _08048D20 - .pool -_08048B54: - mov r2, r9 - ldrb r1, [r2] - movs r0, 0x58 - muls r0, r1 - mov r3, r8 - adds r1, r0, r3 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0xA - beq _08048B74 - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0xA - bne _08048BA4 -_08048B74: - ldr r0, =gUnknown_02024280 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 6 - ands r0, r1 - cmp r0, 0 - beq _08048BA4 - cmp r5, 0x1 - beq _08048B8A - cmp r6, 0x80 - bne _08048BA4 -_08048B8A: - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DB5D1 - b _08048D72 - .pool -_08048BA4: - mov r4, r9 - ldrb r0, [r4] - movs r1, 0x58 - adds r2, r0, 0 - muls r2, r1 - mov r0, r8 - adds r1, r2, r0 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0xA - bne _08048BBE - b _08048DF4 -_08048BBE: - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0xA - bne _08048BCA - b _08048DF4 -_08048BCA: - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x29 - bne _08048BD6 - b _08048DF4 -_08048BD6: - mov r0, r8 - adds r0, 0x4C - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - beq _08048BE4 - b _08048DF4 -_08048BE4: - movs r1, 0x1 - mov r10, r1 - b _08048DF4 -_08048BEA: - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl ability_something - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _08048C26 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl ability_something - lsls r0, 24 - cmp r0, 0 - bne _08048C26 - ldr r0, =gBattleWeather - ldrh r1, [r0] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _08048C26 - movs r2, 0 - str r2, [sp, 0x4] -_08048C26: - ldr r4, =gBattleMons - ldr r0, =gUnknown_0202420E - ldrb r3, [r0] - movs r0, 0x58 - adds r2, r3, 0 - muls r2, r0 - adds r1, r2, r4 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0xF - bne _08048C40 - b _08048DF4 -_08048C40: - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0xF - bne _08048C4C - b _08048DF4 -_08048C4C: - adds r0, r4, 0 - adds r0, 0x4C - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - beq _08048C5A - b _08048DF4 -_08048C5A: - ldr r4, [sp, 0x4] - cmp r4, 0 - bne _08048C62 - b _08048DF4 -_08048C62: - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x28 - bne _08048C6E - b _08048DF4 -_08048C6E: - adds r0, r3, 0 - bl b_cancel_multi_turn_move_maybe - b _08048DE4 - .pool -_08048C84: - mov r2, r9 - ldrb r1, [r2] - movs r0, 0x58 - muls r1, r0 - mov r3, r8 - adds r0, r1, r3 - adds r0, 0x20 - ldrb r2, [r0] - cmp r2, 0x7 - bne _08048CF4 - cmp r5, 0x1 - beq _08048CA2 - cmp r6, 0x80 - beq _08048CA2 - b _08048DF4 -_08048CA2: - ldr r0, =gUnknown_0202420A - strb r2, [r0] - mov r4, r9 - ldrb r0, [r4] - movs r1, 0x7 - bl b_history__record_ability_usage_of_player - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DB5DD - str r0, [r4] - ldr r2, =gUnknown_02024280 - ldr r1, [r2] - movs r0, 0x80 - lsls r0, 6 - ands r0, r1 - cmp r0, 0 - beq _08048CE8 - movs r0, 0x1 - ldr r3, =gUnknown_02024332 - strb r0, [r3, 0x5] - b _08048A4C - .pool -_08048CE8: - ldr r4, =gUnknown_02024332 - strb r0, [r4, 0x5] - bl _080499B2 - .pool -_08048CF4: - mov r0, r8 - adds r0, 0x4C - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _08048DF4 - b _08048DE4 -_08048D02: - mov r2, r9 - ldrb r1, [r2] - movs r0, 0x58 - muls r0, r1 - add r0, r8 - adds r0, 0x20 - ldrb r1, [r0] - cmp r1, 0x11 - bne _08048D2C - cmp r5, 0x1 - bne _08048D1A - b _08048A1A -_08048D1A: - cmp r6, 0x80 - bne _08048D2C - b _08048A1A -_08048D20: - ldr r1, =gUnknown_02024332 - strb r0, [r1, 0x5] - bl _080499B2 - .pool -_08048D2C: - mov r2, r9 - ldrb r0, [r2] - movs r1, 0x58 - muls r0, r1 - add r0, r8 - adds r1, r0, 0 - adds r1, 0x21 - ldrb r1, [r1] - cmp r1, 0x3 - beq _08048D50 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x3 - beq _08048D50 - cmp r1, 0x8 - beq _08048D50 - cmp r0, 0x8 - bne _08048D94 -_08048D50: - ldr r0, =gUnknown_02024280 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 6 - ands r0, r1 - cmp r0, 0 - beq _08048D94 - cmp r5, 0x1 - beq _08048D66 - cmp r6, 0x80 - bne _08048D94 -_08048D66: - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DB5E9 -_08048D72: - str r0, [r4] - ldr r1, =gUnknown_02024332 - movs r2, 0 - movs r0, 0x2 - strb r0, [r1, 0x5] - strb r2, [r1, 0x3] - bl _080499B8 - .pool -_08048D94: - mov r3, r9 - ldrb r0, [r3] - movs r6, 0x58 - muls r0, r6 - mov r2, r8 - adds r2, 0x4C - adds r5, r0, r2 - ldr r4, [r5] - cmp r4, 0 - bne _08048DF4 - mov r3, r8 - adds r1, r0, r3 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r3, [r0] - cmp r3, 0x3 - beq _08048DEA - adds r0, 0x1 - ldrb r0, [r0] - cmp r0, 0x3 - beq _08048DEA - cmp r3, 0x8 - beq _08048DEA - cmp r0, 0x8 - beq _08048DEA - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x11 - beq _08048DF4 - mov r4, r9 - ldrb r0, [r4] - adds r1, r0, 0 - muls r1, r6 - adds r1, r2 - ldr r0, [r1] - movs r2, 0x9 - negs r2, r2 - ands r0, r2 - str r0, [r1] -_08048DE4: - movs r0, 0x1 - mov r10, r0 - b _08048DF4 -_08048DEA: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0] -_08048DF4: - mov r1, r10 - cmp r1, 0x1 - beq _08048DFC - b _08048F1C -_08048DFC: - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r1, =gUnknown_0831C134 - ldr r0, =gUnknown_02024332 - ldrb r0, [r0, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r3, [r0] - cmp r3, 0x7 - bne _08048E50 - bl Random - ldr r2, =gBattleMons - ldr r1, =gUnknown_0202420E - ldrb r3, [r1] - movs r1, 0x58 - muls r3, r1 - adds r2, 0x4C - adds r3, r2 - movs r1, 0x3 - ands r1, r0 - adds r1, 0x2 - ldr r0, [r3] - orrs r0, r1 - str r0, [r3] - b _08048E64 - .pool -_08048E50: - ldr r2, =gBattleMons - ldr r0, =gUnknown_0202420E - ldrb r1, [r0] - movs r0, 0x58 - muls r1, r0 - adds r2, 0x4C - adds r1, r2 - ldr r0, [r1] - orrs r0, r3 - str r0, [r1] -_08048E64: - ldr r2, =gUnknown_02024214 - ldr r1, =gUnknown_0831C224 - ldr r5, =gUnknown_02024332 - ldrb r0, [r5, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - ldr r4, =gUnknown_02024064 - ldr r1, =gUnknown_0202420E - ldrb r0, [r1] - strb r0, [r4] - ldrb r1, [r1] - movs r0, 0x58 - muls r0, r1 - ldr r1, =gUnknown_020240D0 - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r2, =gUnknown_02024280 - ldr r1, [r2] - movs r0, 0x80 - lsls r0, 6 - ands r0, r1 - cmp r0, 0 - beq _08048ED8 - movs r0, 0x1 - strb r0, [r5, 0x5] - ldr r0, =0xffffdfff - ands r1, r0 - str r1, [r2] - b _08048EDA - .pool -_08048ED8: - strb r0, [r5, 0x5] -_08048EDA: - ldr r0, =gUnknown_02024332 - ldrb r2, [r0, 0x3] - cmp r2, 0x2 - beq _08048EF2 - cmp r2, 0x6 - beq _08048EF2 - cmp r2, 0x5 - beq _08048EF2 - cmp r2, 0x3 - beq _08048EF2 - bl _080499B8 -_08048EF2: - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - adds r0, 0xB2 - ldr r2, =gUnknown_02024332 - ldrb r1, [r2, 0x3] - strb r1, [r0] - ldr r2, =gUnknown_02024280 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 7 - orrs r0, r1 - str r0, [r2] - bl _080499B8 - .pool -_08048F1C: - mov r3, r10 - cmp r3, 0 - beq _08048F26 - bl _080499B8 -_08048F26: - ldr r0, =gUnknown_02024332 - strb r3, [r0, 0x3] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bl _080499B8 - .pool -_08048F40: - mov r4, r9 - ldrb r1, [r4] - movs r0, 0x58 - muls r1, r0 - mov r0, r8 - adds r0, 0x50 - adds r1, r0 - ldr r2, =gUnknown_0831C134 - ldr r0, =gUnknown_02024332 - ldrb r3, [r0, 0x3] - lsls r0, r3, 2 - adds r0, r2 - ldr r1, [r1] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08048F66 - bl _08049994 -_08048F66: - subs r0, r3, 0x7 - cmp r0, 0x34 - bls _08048F70 - bl _080499B2 -_08048F70: - lsls r0, 2 - ldr r1, =_08048F88 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08048F88: - .4byte _0804905C - .4byte _080490D0 - .4byte _08049244 - .4byte _0804915C - .4byte _080491D8 - .4byte _0804927C - .4byte _080492C4 - .4byte _08049390 - .4byte _080493D4 - .4byte _080493D4 - .4byte _080493D4 - .4byte _080493D4 - .4byte _080493D4 - .4byte _080493D4 - .4byte _080493D4 - .4byte _0804941C - .4byte _0804941C - .4byte _0804941C - .4byte _0804941C - .4byte _0804941C - .4byte _0804941C - .4byte _0804941C - .4byte _080494FC - .4byte _08049544 - .4byte _08049564 - .4byte _08049720 - .4byte _0804975C - .4byte _08049778 - .4byte _08049790 - .4byte _080497A8 - .4byte _08049808 - .4byte _08049820 - .4byte _08049468 - .4byte _08049468 - .4byte _08049468 - .4byte _08049468 - .4byte _08049468 - .4byte _08049468 - .4byte _08049468 - .4byte _080494B0 - .4byte _080494B0 - .4byte _080494B0 - .4byte _080494B0 - .4byte _080494B0 - .4byte _080494B0 - .4byte _080494B0 - .4byte _08049864 - .4byte _080498C0 - .4byte _080499B2 - .4byte _080499B2 - .4byte _080499B2 - .4byte _080499B2 - .4byte _080499A4 -_0804905C: - mov r1, r9 - ldrb r0, [r1] - movs r5, 0x58 - adds r1, r0, 0 - muls r1, r5 - mov r2, r8 - adds r0, r1, r2 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x14 - bne _08049076 - bl _08049994 -_08049076: - mov r4, r8 - adds r4, 0x50 - adds r0, r1, r4 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - beq _0804908A - bl _08049994 -_0804908A: - bl Random - mov r3, r9 - ldrb r1, [r3] - adds r2, r1, 0 - muls r2, r5 - adds r2, r4 - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - lsrs r1, 16 - adds r1, 0x2 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r1, =gUnknown_0831C224 - ldr r0, =gUnknown_02024332 - ldrb r0, [r0, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _080499B0 - .pool -_080490D0: - mov r4, r9 - ldrb r2, [r4] - movs r4, 0x58 - adds r0, r2, 0 - muls r0, r4 - add r0, r8 - adds r0, 0x20 - ldrb r1, [r0] - cmp r1, 0x27 - bne _08049114 - cmp r5, 0x1 - beq _080490F0 - cmp r6, 0x80 - beq _080490F0 - bl _08049994 -_080490F0: - ldr r0, =gUnknown_0202420A - strb r1, [r0] - mov r1, r9 - ldrb r0, [r1] - movs r1, 0x27 - bl b_history__record_ability_usage_of_player - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DB603 - str r0, [r1] - bl _080499B2 - .pool -_08049114: - adds r0, r2, 0 - bl sub_8048728 - ldr r1, =gUnknown_02024082 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bhi _0804912A - bl _08049994 -_0804912A: - mov r2, r9 - ldrb r0, [r2] - adds r2, r0, 0 - muls r2, r4 - mov r0, r8 - adds r0, 0x50 - adds r2, r0 - ldr r1, =gUnknown_0831C134 - ldr r0, =gUnknown_02024332 - ldrb r0, [r0, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r1, [r2] - ldr r0, [r0] - orrs r1, r0 - str r1, [r2] - bl _08049994 - .pool -_0804915C: - mov r3, r9 - ldrb r0, [r3] - movs r5, 0x58 - muls r0, r5 - mov r4, r8 - adds r4, 0x50 - adds r2, r0, r4 - ldr r1, [r2] - movs r0, 0x70 - ands r0, r1 - cmp r0, 0 - beq _08049178 - bl _08049994 -_08049178: - movs r0, 0x80 - lsls r0, 5 - orrs r1, r0 - str r1, [r2] - ldr r1, =gUnknown_02024268 - ldrb r0, [r3] - lsls r0, 1 - adds r0, r1 - ldr r1, =gUnknown_020241EA - ldrh r1, [r1] - strh r1, [r0] - bl Random - mov r2, r9 - ldrb r1, [r2] - adds r2, r1, 0 - muls r2, r5 - adds r2, r4 - movs r1, 0x3 - ands r1, r0 - adds r1, 0x2 - lsls r1, 4 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r1, =gUnknown_0831C224 - ldr r0, =gUnknown_02024332 - ldrb r0, [r0, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _080499B0 - .pool -_080491D8: - ldr r5, =gUnknown_0202420B - ldrb r0, [r5] - bl battle_get_per_side_status - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - bne _08049210 - ldr r4, =gUnknown_0202432E - ldrh r3, [r4] - ldr r2, =gBattleMons - ldrb r1, [r5] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x2A - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - adds r0, r3, r0 - strh r0, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r3, r0 - bls _08049210 - ldr r3, =0x0000ffff - adds r0, r3, 0 - strh r0, [r4] -_08049210: - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r1, =gUnknown_0831C224 - ldr r0, =gUnknown_02024332 - ldrb r0, [r0, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - b _080499B0 - .pool -_08049244: - mov r4, r9 - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - mov r1, r8 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - beq _0804925A - b _08049994 -_0804925A: - bl Random - ldr r4, =gUnknown_02024332 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - adds r0, 0x3 - strb r0, [r4, 0x3] - movs r0, 0 - movs r1, 0 - bl sub_8048760 - b _080499B2 - .pool -_0804927C: - mov r0, r9 - ldrb r1, [r0] - movs r0, 0x58 - adds r2, r1, 0 - muls r2, r0 - mov r0, r8 - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 5 - orrs r0, r1 - str r0, [r2] - ldr r1, =gUnknown_02024268 - mov r2, r9 - ldrb r0, [r2] - lsls r0, 1 - adds r0, r1 - ldr r1, =gUnknown_020241EA - ldrh r1, [r1] - strh r1, [r0] - ldr r0, =gUnknown_0202433C - ldrb r1, [r2] - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1, 0x1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1, 0x1] - b _08049994 - .pool -_080492C4: - mov r3, r9 - ldrb r0, [r3] - movs r6, 0x58 - muls r0, r6 - mov r4, r8 - adds r4, 0x50 - adds r0, r4 - ldr r5, [r0] - movs r0, 0xE0 - lsls r0, 8 - ands r5, r0 - cmp r5, 0 - beq _080492E0 - b _08049994 -_080492E0: - bl Random - mov r2, r9 - ldrb r1, [r2] - adds r2, r1, 0 - muls r2, r6 - adds r2, r4 - movs r1, 0x3 - ands r1, r0 - adds r1, 0x3 - lsls r1, 13 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - mov r3, r9 - ldrb r1, [r3] - ldr r2, =gUnknown_0202449C - ldr r0, [r2] - lsls r1, 1 - adds r1, r0 - ldr r6, =gUnknown_020241EA - ldrh r0, [r6] - strb r0, [r1, 0x4] - ldrb r1, [r3] - ldr r0, [r2] - lsls r1, 1 - adds r1, r0 - ldrh r0, [r6] - lsrs r0, 8 - strb r0, [r1, 0x5] - ldrb r1, [r3] - ldr r0, [r2] - adds r1, r0 - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - strb r0, [r1, 0x14] - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r1, =gUnknown_0831C224 - ldr r2, =gUnknown_02024332 - ldrb r0, [r2, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [r4] - strb r5, [r2, 0x5] - ldr r3, =gUnknown_085CC982 - ldrh r0, [r3] - ldrh r4, [r6] - cmp r0, r4 - bne _0804934E - b _080499B2 -_0804934E: - adds r1, r2, 0 - adds r2, r6, 0 -_08049352: - ldrb r0, [r1, 0x5] - adds r0, 0x1 - strb r0, [r1, 0x5] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _08049362 - b _080499B2 -_08049362: - ldrb r0, [r1, 0x5] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - ldrh r4, [r2] - cmp r0, r4 - bne _08049352 - b _080499B2 - .pool -_08049390: - ldr r1, =gBattleMoveDamage - ldr r0, =gUnknown_020241F4 - ldr r0, [r0] - cmp r0, 0 - bge _0804939C - adds r0, 0x3 -_0804939C: - asrs r0, 2 - str r0, [r1] - cmp r0, 0 - bne _080493A8 - movs r0, 0x1 - str r0, [r1] -_080493A8: - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r1, =gUnknown_0831C224 - ldr r0, =gUnknown_02024332 - ldrb r0, [r0, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - b _080499B0 - .pool -_080493D4: - ldr r4, =gUnknown_02024332 - ldrb r1, [r4, 0x3] - adds r1, 0xF2 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x10 - adds r2, r7, 0 - movs r3, 0 - bl sub_8050A1C - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _080493F2 - b _08049994 -_080493F2: - ldr r2, =gUnknown_02024474 - ldrb r1, [r4, 0x3] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2, 0x10] - strb r3, [r2, 0x11] - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082D8CD4 - b _080499B0 - .pool -_0804941C: - movs r0, 0x70 - negs r0, r0 - ldr r4, =gUnknown_02024332 - ldrb r1, [r4, 0x3] - adds r1, 0xEB - lsls r1, 24 - lsrs r1, 24 - adds r2, r7, 0 - movs r3, 0 - bl sub_8050A1C - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _0804943C - b _08049994 -_0804943C: - ldr r2, =gUnknown_02024474 - ldrb r1, [r4, 0x3] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2, 0x10] - strb r3, [r2, 0x11] - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082D8D65 - b _080499B0 - .pool -_08049468: - ldr r4, =gUnknown_02024332 - ldrb r1, [r4, 0x3] - adds r1, 0xDA - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x20 - adds r2, r7, 0 - movs r3, 0 - bl sub_8050A1C - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _08049486 - b _08049994 -_08049486: - ldr r2, =gUnknown_02024474 - ldrb r1, [r4, 0x3] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2, 0x10] - strb r3, [r2, 0x11] - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082D8CD4 - b _080499B0 - .pool -_080494B0: - movs r0, 0x60 - negs r0, r0 - ldr r4, =gUnknown_02024332 - ldrb r1, [r4, 0x3] - adds r1, 0xD3 - lsls r1, 24 - lsrs r1, 24 - adds r2, r7, 0 - movs r3, 0 - bl sub_8050A1C - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _080494D0 - b _08049994 -_080494D0: - ldr r2, =gUnknown_02024474 - ldrb r1, [r4, 0x3] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2, 0x10] - strb r3, [r2, 0x11] - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082D8D65 - b _080499B0 - .pool -_080494FC: - mov r0, r9 - ldrb r1, [r0] - movs r0, 0x58 - adds r2, r1, 0 - muls r2, r0 - mov r0, r8 - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 15 - orrs r0, r1 - str r0, [r2] - ldr r2, =gUnknown_020242BC - mov r3, r9 - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2 - strb r1, [r0, 0x19] - ldr r1, =gUnknown_02024268 - ldrb r0, [r3] - lsls r0, 1 - adds r0, r1 - ldr r1, =gUnknown_020241EA - ldrh r1, [r1] - strh r1, [r0] - b _08049994 - .pool -_08049544: - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - movs r0, 0x58 - adds r2, r1, 0 - muls r2, r0 - mov r0, r8 - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 16 -_0804955A: - orrs r0, r1 - str r0, [r2] - b _08049994 - .pool -_08049564: - ldr r5, =gBattleTypeFlags - ldr r0, [r5] - movs r1, 0x80 - lsls r1, 19 - ands r0, r1 - cmp r0, 0 - beq _08049574 - b _08049994 -_08049574: - ldr r6, =gUnknown_0202420B - ldrb r0, [r6] - bl battle_side_get_owner - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r6] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080495A8 - ldr r0, [r5] - ldr r1, =0x0a3f0902 - ands r0, r1 - cmp r0, 0 - bne _080495D4 - b _08049994 - .pool -_080495A8: - ldr r0, [r5] - ldr r1, =0x0a3f0902 - ands r0, r1 - cmp r0, 0 - bne _080495D4 - ldr r0, =gUnknown_020243D0 - adds r0, 0x29 - adds r0, r4, r0 - ldrb r1, [r0] - ldr r3, =gBitTable - ldr r2, =gUnknown_0202406E - ldrb r0, [r6] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _080495D4 - b _08049994 -_080495D4: - ldr r2, =gBattleMons - ldr r1, =gEnemyMonIndex - ldrb r0, [r1] - movs r5, 0x58 - muls r0, r5 - adds r4, r0, r2 - ldrh r0, [r4, 0x2E] - adds r7, r1, 0 - mov r8, r2 - cmp r0, 0 - beq _0804963C - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x3C - bne _0804963C - bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DB682 - str r0, [r1] - ldr r1, =gUnknown_0202420A - ldrb r0, [r7] - muls r0, r5 - add r0, r8 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - ldrb r1, [r1] - bl b_history__record_ability_usage_of_player - b _080499B2 - .pool -_0804963C: - ldr r4, =gUnknown_0202420B - mov r10, r4 - ldrb r2, [r4] - movs r0, 0x58 - mov r9, r0 - mov r0, r9 - muls r0, r2 - add r0, r8 - ldrh r4, [r0, 0x2E] - cmp r4, 0 - beq _08049654 - b _08049994 -_08049654: - ldrb r0, [r7] - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - add r0, r8 - ldrh r3, [r0, 0x2E] - adds r1, r3, 0 - cmp r1, 0xAF - bne _08049668 - b _08049994 -_08049668: - adds r0, r3, 0 - subs r0, 0x79 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xB - bhi _08049676 - b _08049994 -_08049676: - cmp r1, 0 - bne _0804967C - b _08049994 -_0804967C: - ldr r5, =gUnknown_0202449C - lsls r0, r2, 1 - adds r0, 0xD0 - ldr r1, [r5] - adds r1, r0 - ldr r2, =gUnknown_02024208 - strh r3, [r1] - strh r3, [r2] - ldrb r0, [r7] - mov r3, r9 - muls r3, r0 - adds r0, r3, 0 - add r0, r8 - movs r6, 0 - strh r4, [r0, 0x2E] - ldr r4, =gUnknown_02024064 - mov r1, r10 - ldrb r0, [r1] - strb r0, [r4] - str r2, [sp] - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs - mov r2, r10 - ldrb r0, [r2] - bl dp01_battle_side_mark_buffer_for_execution - ldrb r0, [r7] - strb r0, [r4] - ldrb r0, [r7] - mov r3, r9 - muls r3, r0 - adds r0, r3, 0 - mov r1, r8 - adds r1, 0x2E - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r7] - bl dp01_battle_side_mark_buffer_for_execution - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DB422 - str r0, [r4] - ldrb r0, [r7] - ldr r1, [r5] - lsls r0, 1 - adds r0, r1 - adds r0, 0xC8 - strb r6, [r0] - ldrb r0, [r7] - ldr r1, [r5] - lsls r0, 1 - adds r0, r1 - adds r0, 0xC9 - strb r6, [r0] - b _080499B2 - .pool -_08049720: - ldr r3, =gEnemyMonIndex - ldrb r1, [r3] - movs r0, 0x58 - adds r2, r1, 0 - muls r2, r0 - mov r0, r8 - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 19 - orrs r0, r1 - str r0, [r2] - ldr r2, =gUnknown_020242BC - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, =gUnknown_0202420B - ldrb r1, [r1] - strb r1, [r0, 0x14] - b _08049994 - .pool -_0804975C: - ldr r0, =gEnemyMonIndex - ldrb r1, [r0] - movs r0, 0x58 - adds r2, r1, 0 - muls r2, r0 - mov r0, r8 - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 20 - b _0804955A - .pool -_08049778: - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DAF27 - b _080499B0 - .pool -_08049790: - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DAFC3 - b _080499B0 - .pool -_080497A8: - ldr r6, =gEnemyMonIndex - ldrb r0, [r6] - movs r2, 0x58 - muls r0, r2 - mov r1, r8 - adds r1, 0x4C - adds r5, r0, r1 - ldr r4, [r5] - movs r0, 0x40 - ands r0, r4 - cmp r0, 0 - bne _080497C2 - b _08049994 -_080497C2: - movs r0, 0x41 - negs r0, r0 - ands r4, r0 - str r4, [r5] - ldr r4, =gUnknown_02024064 - ldrb r0, [r6] - strb r0, [r4] - ldrb r0, [r4] - muls r0, r2 - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DB361 - b _080499B0 - .pool -_08049808: - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DB117 - b _080499B0 - .pool -_08049820: - ldr r4, =gBattleMoveDamage - ldr r0, =gUnknown_020241F4 - ldr r0, [r0] - movs r1, 0x3 - bl __divsi3 - str r0, [r4] - cmp r0, 0 - bne _08049836 - movs r0, 0x1 - str r0, [r4] -_08049836: - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r1, =gUnknown_0831C224 - ldr r0, =gUnknown_02024332 - ldrb r0, [r0, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - b _080499B0 - .pool -_08049864: - mov r4, r9 - ldrb r0, [r4] - movs r5, 0x58 - muls r0, r5 - mov r4, r8 - adds r4, 0x50 - adds r2, r0, r4 - ldr r1, [r2] - movs r0, 0xC0 - lsls r0, 4 - ands r0, r1 - cmp r0, 0 - beq _08049880 - b _08049994 -_08049880: - movs r0, 0x80 - lsls r0, 5 - orrs r1, r0 - str r1, [r2] - ldr r1, =gUnknown_02024268 - mov r2, r9 - ldrb r0, [r2] - lsls r0, 1 - adds r0, r1 - ldr r1, =gUnknown_020241EA - ldrh r1, [r1] - strh r1, [r0] - bl Random - mov r3, r9 - ldrb r1, [r3] - adds r2, r1, 0 - muls r2, r5 - adds r2, r4 - movs r1, 0x1 - ands r1, r0 - adds r1, 0x2 - lsls r1, 10 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - b _080499B2 - .pool -_080498C0: - mov r4, r9 - ldrb r3, [r4] - movs r5, 0x58 - adds r0, r3, 0 - muls r0, r5 - mov r2, r8 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r2, [r0] - cmp r2, 0x3C - bne _08049900 - ldrh r0, [r1, 0x2E] - cmp r0, 0 - beq _08049994 - ldr r0, =gUnknown_0202420A - strb r2, [r0] - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DB63F - str r0, [r1] - ldrb r0, [r4] - movs r1, 0x3C - bl b_history__record_ability_usage_of_player - b _080499B2 - .pool -_08049900: - ldrh r0, [r1, 0x2E] - cmp r0, 0 - beq _08049994 - adds r0, r3, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_02024208 - mov r3, r9 - ldrb r0, [r3] - muls r0, r5 - add r0, r8 - ldrh r0, [r0, 0x2E] - strh r0, [r1] - ldrb r0, [r3] - muls r0, r5 - add r0, r8 - movs r5, 0 - movs r1, 0 - strh r1, [r0, 0x2E] - ldr r2, =gUnknown_020243D0 - adds r2, 0x29 - adds r2, r4, r2 - ldr r3, =gBitTable - ldr r1, =gUnknown_0202406E - mov r4, r9 - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DB168 - str r0, [r4] - mov r1, r9 - ldrb r0, [r1] - ldr r2, =gUnknown_0202449C - ldr r1, [r2] - lsls r0, 1 - adds r0, r1 - adds r0, 0xC8 - strb r5, [r0] - mov r3, r9 - ldrb r0, [r3] - ldr r1, [r2] - lsls r0, 1 - adds r0, r1 - adds r0, 0xC9 - strb r5, [r0] - b _080499B2 - .pool -_08049994: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - b _080499B2 - .pool -_080499A4: - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DB1D5 -_080499B0: - str r0, [r4] -_080499B2: - ldr r1, =gUnknown_02024332 - movs r0, 0 - strb r0, [r1, 0x3] -_080499B8: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8048760 - - thumb_func_start atk15_seteffectwithchancetarget -atk15_seteffectwithchancetarget: @ 80499D4 - push {r4,lr} - ldr r2, =gBattleMons - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x20 - bne _08049A10 - ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x5] - lsls r4, r0, 1 - b _08049A20 - .pool -_08049A10: - ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r4, [r0, 0x5] -_08049A20: - ldr r3, =gUnknown_02024332 - ldrb r2, [r3, 0x3] - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _08049A50 - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _08049A50 - movs r0, 0x7F - ands r0, r2 - strb r0, [r3, 0x3] - b _08049A7E - .pool -_08049A50: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, r4 - bcs _08049A9A - ldr r0, =gUnknown_02024332 - ldrb r0, [r0, 0x3] - cmp r0, 0 - beq _08049A9A - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _08049A9A - cmp r4, 0x63 - bls _08049A90 -_08049A7E: - movs r0, 0 - movs r1, 0x80 - bl sub_8048760 - b _08049AA2 - .pool -_08049A90: - movs r0, 0 - movs r1, 0 - bl sub_8048760 - b _08049AA2 -_08049A9A: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_08049AA2: - ldr r0, =gUnknown_02024332 - movs r1, 0 - strb r1, [r0, 0x3] - ldr r0, =gUnknown_02024474 - strb r1, [r0, 0x16] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk15_seteffectwithchancetarget - - thumb_func_start sub_8049AC0 -sub_8049AC0: @ 8049AC0 - push {lr} - movs r0, 0x1 - movs r1, 0 - bl sub_8048760 - pop {r0} - bx r0 - thumb_func_end sub_8049AC0 - - thumb_func_start sub_8049AD0 -sub_8049AD0: @ 8049AD0 - push {lr} - movs r0, 0 - movs r1, 0 - bl sub_8048760 - pop {r0} - bx r0 - thumb_func_end sub_8049AD0 - - thumb_func_start sub_8049AE0 -sub_8049AE0: @ 8049AE0 - push {lr} - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r2, =gUnknown_02024064 - strb r0, [r2] - ldr r3, =gUnknown_02024332 - ldrb r0, [r3, 0x3] - cmp r0, 0x6 - bhi _08049B14 - ldr r1, =gBattleMons - ldrb r2, [r2] - movs r0, 0x58 - muls r2, r0 - adds r1, 0x4C - b _08049B1E - .pool -_08049B14: - ldr r1, =gBattleMons - ldrb r2, [r2] - movs r0, 0x58 - muls r2, r0 - adds r1, 0x50 -_08049B1E: - adds r2, r1 - ldr r1, =gUnknown_0831C134 - ldrb r0, [r3, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - ldr r0, =gUnknown_02024332 - movs r2, 0 - strb r2, [r0, 0x3] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - ldr r0, =gUnknown_02024474 - strb r2, [r0, 0x16] - pop {r0} - bx r0 - .pool - thumb_func_end sub_8049AE0 - - thumb_func_start atk19_faintpokemon -atk19_faintpokemon: @ 8049B5C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - ldr r0, =gUnknown_02024214 - ldr r2, [r0] - ldrb r1, [r2, 0x2] - adds r6, r0, 0 - cmp r1, 0 - beq _08049BE0 - ldrb r0, [r2, 0x1] - bl get_battle_side_of_something - ldr r5, =gUnknown_02024064 - strb r0, [r5] - ldr r2, =gUnknown_02024280 - ldr r1, =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r2] - ands r0, r1 - cmp r0, 0 - bne _08049B94 - b _08049E2C -_08049B94: - ldr r1, [r6] - ldrb r4, [r1, 0x3] - ldrb r0, [r1, 0x4] - lsls r0, 8 - orrs r4, r0 - ldrb r0, [r1, 0x5] - lsls r0, 16 - orrs r4, r0 - ldrb r0, [r1, 0x6] - lsls r0, 24 - orrs r4, r0 - bl b_movescr_stack_pop_cursor - str r4, [r6] - ldrb r0, [r5] - bl battle_side_get_owner - ldr r1, =gUnknown_0202428E - lsls r0, 24 - lsrs r0, 23 - adds r0, r1 - ldrh r2, [r0] - ldr r1, =0x0000fdff - ands r1, r2 - strh r1, [r0] - b _08049E32 - .pool -_08049BE0: - ldrb r0, [r2, 0x1] - cmp r0, 0x1 - bne _08049C08 - ldr r1, =gUnknown_02024064 - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - strb r0, [r1] - ldr r0, =gEnemyMonIndex - ldrb r0, [r0] - mov r9, r0 - ldr r4, =gUnknown_082DA7AA - b _08049C18 - .pool -_08049C08: - ldr r1, =gUnknown_02024064 - ldr r0, =gEnemyMonIndex - ldrb r0, [r0] - strb r0, [r1] - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - mov r9, r0 - ldr r4, =gUnknown_082DA7B7 -_08049C18: - mov r8, r1 - ldr r0, =gUnknown_02024210 - ldrb r1, [r0] - ldr r2, =gBitTable - mov r7, r8 - ldrb r3, [r7] - lsls r0, r3, 2 - adds r0, r2 - ldr r2, [r0] - ands r1, r2 - cmp r1, 0 - beq _08049C32 - b _08049E2C -_08049C32: - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r3 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08049C42 - b _08049E2C -_08049C42: - ldr r5, =gUnknown_02024280 - lsls r1, r2, 28 - ldr r0, [r5] - orrs r0, r1 - str r0, [r5] - ldr r0, [r6] - adds r0, 0x7 - bl b_movescr_stack_push - str r4, [r6] - ldrb r0, [r7] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08049CA4 - ldr r0, [r5] - movs r1, 0x80 - lsls r1, 15 - orrs r0, r1 - str r0, [r5] - ldr r1, =gUnknown_03005D10 - ldrb r0, [r1] - cmp r0, 0xFE - bhi _08049C78 - adds r0, 0x1 - strb r0, [r1] -_08049C78: - ldrb r0, [r7] - bl sub_80570F4 - b _08049CCE - .pool -_08049CA4: - ldr r4, =gUnknown_03005D10 - ldrb r0, [r4, 0x1] - cmp r0, 0xFE - bhi _08049CB0 - adds r0, 0x1 - strb r0, [r4, 0x1] -_08049CB0: - ldr r1, =gUnknown_0202406E - mov r2, r8 - ldrb r0, [r2] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r4, 0x20] -_08049CCE: - ldr r2, =gUnknown_02024280 - ldr r1, [r2] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08049D0C - ldr r6, =gBattleMons - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - movs r5, 0x58 - muls r0, r5 - adds r0, r6 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08049D0C - movs r0, 0x41 - negs r0, r0 - ands r1, r0 - str r1, [r2] - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - bl b_movescr_stack_push - ldr r1, =gBattleMoveDamage - mov r0, r9 - muls r0, r5 - adds r0, r6 - ldrh r0, [r0, 0x28] - str r0, [r1] - ldr r0, =gUnknown_082DAE3E - str r0, [r4] -_08049D0C: - ldr r1, =gUnknown_020242AC - ldr r6, =gEnemyMonIndex - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 7 - ands r0, r1 - cmp r0, 0 - bne _08049D24 - b _08049E32 -_08049D24: - ldr r0, =gUnknown_02024280 - ldr r5, [r0] - movs r0, 0x80 - lsls r0, 17 - ands r5, r0 - cmp r5, 0 - beq _08049D34 - b _08049E32 -_08049D34: - ldr r3, =gUnknown_0202420B - mov r8, r3 - ldrb r0, [r3] - bl battle_side_get_owner - adds r4, r0, 0 - ldrb r0, [r6] - bl battle_side_get_owner - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _08049E32 - ldr r0, =gBattleMons - mov r9, r0 - mov r2, r8 - ldrb r1, [r2] - movs r7, 0x58 - adds r2, r1, 0 - muls r2, r7 - adds r0, r2, r0 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08049E32 - ldr r0, =gUnknown_020241EA - ldrh r0, [r0] - cmp r0, 0xA5 - beq _08049E32 - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - adds r0, r1, r0 - adds r0, 0x80 - ldrb r4, [r0] - adds r0, r4, r2 - mov r6, r9 - adds r6, 0x24 - adds r0, r6 - strb r5, [r0] - ldr r5, =gUnknown_02024214 - ldr r0, [r5] - bl b_movescr_stack_push - ldr r0, =gUnknown_082DB18D - str r0, [r5] - ldr r5, =gUnknown_02024064 - mov r3, r8 - ldrb r0, [r3] - strb r0, [r5] - adds r1, r4, 0 - adds r1, 0x9 - lsls r1, 24 - lsrs r1, 24 - ldrb r0, [r5] - muls r0, r7 - adds r0, r6 - adds r0, r4 - str r0, [sp] - movs r0, 0 - movs r2, 0 - movs r3, 0x1 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gUnknown_02022F58 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - lsls r4, 1 - mov r2, r8 - ldrb r0, [r2] - muls r0, r7 - adds r0, r4, r0 - mov r2, r9 - adds r2, 0xC - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1, 0x2] - mov r3, r8 - ldrb r0, [r3] - muls r0, r7 - adds r4, r0 - adds r4, r2 - ldrh r0, [r4] - lsrs r0, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - b _08049E32 - .pool -_08049E2C: - ldr r0, [r6] - adds r0, 0x7 - str r0, [r6] -_08049E32: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end atk19_faintpokemon - - thumb_func_start sub_8049E40 -sub_8049E40: @ 8049E40 - push {r4,r5,lr} - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - bne _08049E6A - ldr r5, =gUnknown_02024214 - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r4, =gUnknown_02024064 - strb r0, [r4] - movs r0, 0 - bl dp01_build_cmdbuf_x0A_A_A_A - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] -_08049E6A: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8049E40 - - thumb_func_start sub_8049E7C -sub_8049E7C: @ 8049E7C - push {r4,r5,lr} - sub sp, 0x4 - ldr r0, =gUnknown_02024068 - ldr r5, [r0] - cmp r5, 0 - bne _08049EE8 - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r4, =gUnknown_02024064 - strb r0, [r4] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 11 - ands r0, r1 - cmp r0, 0 - beq _08049EB4 - ldr r2, =gBattleMons - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _08049EDC -_08049EB4: - ldr r1, =gBattleMons - ldrb r0, [r4] - movs r2, 0x58 - muls r0, r2 - adds r1, 0x4C - adds r0, r1 - str r5, [r0] - ldrb r0, [r4] - muls r0, r2 - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_08049EDC: - bl sub_803A75C - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] -_08049EE8: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8049E7C - - thumb_func_start atk1C_jumpifstatus -atk1C_jumpifstatus: @ 8049F04 - push {r4,r5,lr} - ldr r5, =gUnknown_02024214 - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - lsls r0, 24 - lsrs r0, 24 - ldr r2, [r5] - ldrb r4, [r2, 0x2] - ldrb r1, [r2, 0x3] - lsls r1, 8 - adds r4, r1 - ldrb r1, [r2, 0x4] - lsls r1, 16 - adds r4, r1 - ldrb r1, [r2, 0x5] - lsls r1, 24 - adds r4, r1 - ldrb r3, [r2, 0x6] - ldrb r1, [r2, 0x7] - lsls r1, 8 - adds r3, r1 - ldrb r1, [r2, 0x8] - lsls r1, 16 - adds r3, r1 - ldrb r1, [r2, 0x9] - lsls r1, 24 - adds r3, r1 - ldr r2, =gBattleMons - movs r1, 0x58 - muls r1, r0 - adds r0, r2, 0 - adds r0, 0x4C - adds r0, r1, r0 - ldr r0, [r0] - ands r0, r4 - cmp r0, 0 - beq _08049F68 - adds r0, r1, r2 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08049F68 - str r3, [r5] - b _08049F70 - .pool -_08049F68: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0xA - str r0, [r1] -_08049F70: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk1C_jumpifstatus - - thumb_func_start atk1D_jumpifsecondarystatus -atk1D_jumpifsecondarystatus: @ 8049F7C - push {r4,r5,lr} - ldr r5, =gUnknown_02024214 - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - lsls r0, 24 - lsrs r0, 24 - ldr r2, [r5] - ldrb r4, [r2, 0x2] - ldrb r1, [r2, 0x3] - lsls r1, 8 - adds r4, r1 - ldrb r1, [r2, 0x4] - lsls r1, 16 - adds r4, r1 - ldrb r1, [r2, 0x5] - lsls r1, 24 - adds r4, r1 - ldrb r3, [r2, 0x6] - ldrb r1, [r2, 0x7] - lsls r1, 8 - adds r3, r1 - ldrb r1, [r2, 0x8] - lsls r1, 16 - adds r3, r1 - ldrb r1, [r2, 0x9] - lsls r1, 24 - adds r3, r1 - ldr r2, =gBattleMons - movs r1, 0x58 - muls r1, r0 - adds r0, r2, 0 - adds r0, 0x50 - adds r0, r1, r0 - ldr r0, [r0] - ands r0, r4 - cmp r0, 0 - beq _08049FE0 - adds r0, r1, r2 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08049FE0 - str r3, [r5] - b _08049FE8 - .pool -_08049FE0: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0xA - str r0, [r1] -_08049FE8: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk1D_jumpifsecondarystatus - - thumb_func_start atk1E_jumpifability -atk1E_jumpifability: @ 8049FF4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r6, =gUnknown_02024214 - ldr r2, [r6] - ldrb r5, [r2, 0x2] - mov r8, r5 - ldrb r1, [r2, 0x3] - ldrb r0, [r2, 0x4] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x6] - lsls r0, 24 - adds r7, r1, r0 - ldrb r0, [r2, 0x1] - cmp r0, 0x8 - bne _0804A054 - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0xD - adds r2, r5, 0 - movs r3, 0 - bl ability_something - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _0804A0C8 - ldr r1, =gUnknown_0202420A - strb r5, [r1] - str r7, [r6] - subs r4, 0x1 - lsls r0, r4, 24 - lsrs r0, 24 - ldrb r1, [r1] - b _0804A0B0 - .pool -_0804A054: - cmp r0, 0x9 - bne _0804A08C - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0xC - adds r2, r5, 0 - movs r3, 0 - bl ability_something - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _0804A0C8 - ldr r1, =gUnknown_0202420A - strb r5, [r1] - str r7, [r6] - subs r4, 0x1 - lsls r0, r4, 24 - lsrs r0, 24 - ldrb r1, [r1] - b _0804A0B0 - .pool -_0804A08C: - ldrb r0, [r2, 0x1] - bl get_battle_side_of_something - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r4 - adds r0, r1 - adds r0, 0x20 - ldrb r1, [r0] - cmp r1, r8 - bne _0804A0C8 - ldr r0, =gUnknown_0202420A - strb r1, [r0] - str r7, [r6] - ldrb r1, [r0] - adds r0, r4, 0 -_0804A0B0: - bl b_history__record_ability_usage_of_player - ldr r0, =gUnknown_02024474 - strb r4, [r0, 0x15] - b _0804A0CE - .pool -_0804A0C8: - ldr r0, [r6] - adds r0, 0x7 - str r0, [r6] -_0804A0CE: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end atk1E_jumpifability - - thumb_func_start sub_804A0DC -sub_804A0DC: @ 804A0DC - push {r4-r6,lr} - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r4, [r0, 0x1] - cmp r4, 0x1 - bne _0804A0FC - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - bl battle_get_per_side_status - b _0804A106 - .pool -_0804A0FC: - ldr r0, =gEnemyMonIndex - ldrb r0, [r0] - bl battle_get_per_side_status - movs r4, 0x1 -_0804A106: - ands r4, r0 - ldr r6, =gUnknown_02024214 - ldr r3, [r6] - ldrb r2, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r2, r0 - ldrb r1, [r3, 0x4] - ldrb r0, [r3, 0x5] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r3, 0x6] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r3, 0x7] - lsls r0, 24 - adds r5, r1, r0 - ldr r1, =gUnknown_0202428E - lsls r0, r4, 1 - adds r0, r1 - ldrh r0, [r0] - ands r2, r0 - cmp r2, 0 - beq _0804A148 - str r5, [r6] - b _0804A14E - .pool -_0804A148: - adds r0, r3, 0 - adds r0, 0x8 - str r0, [r6] -_0804A14E: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_804A0DC - - thumb_func_start sub_804A154 -sub_804A154: @ 804A154 - push {r4,r5,lr} - movs r5, 0 - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gBattleMons - ldr r3, [r4] - movs r1, 0x58 - muls r0, r1 - ldrb r1, [r3, 0x3] - adds r0, r1 - adds r2, 0x18 - adds r0, r2 - ldrb r2, [r0] - ldrb r0, [r3, 0x2] - cmp r0, 0x5 - bhi _0804A212 - lsls r0, 2 - ldr r1, =_0804A194 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0804A194: - .4byte _0804A1AC - .4byte _0804A1BC - .4byte _0804A1CC - .4byte _0804A1DC - .4byte _0804A1EC - .4byte _0804A200 -_0804A1AC: - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - cmp r2, r0 - bne _0804A212 - b _0804A20C - .pool -_0804A1BC: - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - cmp r2, r0 - beq _0804A212 - b _0804A20C - .pool -_0804A1CC: - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - cmp r2, r0 - bls _0804A212 - b _0804A20C - .pool -_0804A1DC: - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - cmp r2, r0 - bcs _0804A212 - b _0804A20C - .pool -_0804A1EC: - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - ands r2, r0 - cmp r2, 0 - beq _0804A212 - b _0804A20C - .pool -_0804A200: - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - ands r2, r0 - cmp r2, 0 - bne _0804A212 -_0804A20C: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_0804A212: - cmp r5, 0 - beq _0804A238 - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - adds r1, r0 - str r1, [r3] - b _0804A240 - .pool -_0804A238: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x9 - str r0, [r1] -_0804A240: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_804A154 - - thumb_func_start atk21_jumpifspecialstatusflag -atk21_jumpifspecialstatusflag: @ 804A24C - push {r4-r6,lr} - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r5, =gUnknown_02024064 - strb r0, [r5] - ldr r2, [r4] - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - adds r6, r1, r0 - ldrb r1, [r2, 0x7] - ldrb r0, [r2, 0x8] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x9] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0xA] - lsls r0, 24 - adds r3, r1, r0 - ldrb r0, [r2, 0x6] - cmp r0, 0 - beq _0804A2AC - ldr r0, =gUnknown_020242AC - ldrb r1, [r5] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - ands r0, r6 - cmp r0, 0 - bne _0804A2C4 - b _0804A2BC - .pool -_0804A2AC: - ldr r0, =gUnknown_020242AC - ldrb r1, [r5] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - ands r0, r6 - cmp r0, 0 - beq _0804A2C4 -_0804A2BC: - str r3, [r4] - b _0804A2CA - .pool -_0804A2C4: - adds r0, r2, 0 - adds r0, 0xB - str r0, [r4] -_0804A2CA: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end atk21_jumpifspecialstatusflag - - thumb_func_start sub_804A2D0 -sub_804A2D0: @ 804A2D0 - push {r4-r6,lr} - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - lsls r0, 24 - lsrs r0, 24 - ldr r3, [r4] - ldrb r5, [r3, 0x2] - ldrb r2, [r3, 0x3] - ldrb r1, [r3, 0x4] - lsls r1, 8 - adds r2, r1 - ldrb r1, [r3, 0x5] - lsls r1, 16 - adds r2, r1 - ldrb r1, [r3, 0x6] - lsls r1, 24 - adds r6, r2, r1 - ldr r2, =gBattleMons - movs r1, 0x58 - muls r0, r1 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, r5 - beq _0804A314 - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, r5 - bne _0804A320 -_0804A314: - str r6, [r4] - b _0804A324 - .pool -_0804A320: - adds r0, r3, 0x7 - str r0, [r4] -_0804A324: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_804A2D0 - - thumb_func_start sub_804A32C -sub_804A32C: @ 804A32C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r6, 0 - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - adds r0, 0x50 - mov r9, r0 - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r1, =gUnknown_0202420D - strb r0, [r1] - ldr r2, =gUnknown_020243FE - movs r1, 0x2 - ands r1, r0 - lsls r1, 24 - lsrs r1, 25 - adds r1, r2 - ldrb r1, [r1] - mov r8, r1 - ldr r0, =gUnknown_02024474 - ldrb r0, [r0, 0x1C] - cmp r0, 0x6 - bls _0804A368 - bl _0804ACB2 -_0804A368: - lsls r0, 2 - ldr r1, =_0804A38C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0804A38C: - .4byte _0804A3A8 - .4byte _0804A414 - .4byte _0804A52E - .4byte _0804A850 - .4byte _0804A954 - .4byte _0804AC40 - .4byte _0804AC88 -_0804A3A8: - ldr r4, =gUnknown_0202420D - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0804A3BC - bl _0804AC7C -_0804A3BC: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ldr r1, =0x063f0982 - ands r0, r1 - cmp r0, 0 - beq _0804A3CC - bl _0804AC7C -_0804A3CC: - ldr r1, =gUnknown_02024474 - ldrb r0, [r1, 0x1C] - adds r0, 0x1 - strb r0, [r1, 0x1C] - ldr r0, =gUnknown_0202449C - ldr r2, [r0] - adds r2, 0xDF - ldr r3, =gBitTable - ldr r1, =gUnknown_0202406E - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - bl _0804ACB2 - .pool -_0804A414: - movs r5, 0 - movs r7, 0 -_0804A418: - movs r0, 0x64 - adds r1, r7, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0804A486 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0804A486 - ldr r0, =gBitTable - lsls r1, r7, 2 - adds r1, r0 - ldr r0, [r1] - mov r1, r8 - ands r0, r1 - cmp r0, 0 - beq _0804A44C - adds r5, 0x1 -_0804A44C: - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAF - bne _0804A478 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003226 - adds r0, r2 - ldrb r4, [r0] - b _0804A480 - .pool -_0804A478: - bl itemid_get_x12 - lsls r0, 24 - lsrs r4, r0, 24 -_0804A480: - cmp r4, 0x19 - bne _0804A486 - adds r6, 0x1 -_0804A486: - adds r7, 0x1 - cmp r7, 0x5 - ble _0804A418 - ldr r3, =gBaseStats - ldr r2, =gBattleMons - ldr r0, =gUnknown_0202420D - ldrb r1, [r0] - movs r0, 0x58 - muls r1, r0 - adds r1, r2 - ldrh r2, [r1] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r3 - ldrb r2, [r0, 0x9] - adds r1, 0x2A - ldrb r0, [r1] - muls r0, r2 - movs r1, 0x7 - bl __divsi3 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r6, 0 - beq _0804A4FC - lsrs r4, r0, 17 - adds r0, r4, 0 - adds r1, r5, 0 - bl __divsi3 - mov r1, r9 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - bne _0804A4D2 - movs r0, 0x1 - strh r0, [r1] -_0804A4D2: - ldr r5, =gUnknown_02024402 - adds r0, r4, 0 - adds r1, r6, 0 - bl __divsi3 - strh r0, [r5] - lsls r0, 16 - cmp r0, 0 - bne _0804A516 - movs r0, 0x1 - strh r0, [r5] - b _0804A516 - .pool -_0804A4FC: - adds r0, r1, 0 - adds r1, r5, 0 - bl __divsi3 - mov r2, r9 - strh r0, [r2] - lsls r0, 16 - cmp r0, 0 - bne _0804A512 - movs r0, 0x1 - strh r0, [r2] -_0804A512: - ldr r0, =gUnknown_02024402 - strh r6, [r0] -_0804A516: - ldr r1, =gUnknown_02024474 - ldrb r0, [r1, 0x1C] - adds r0, 0x1 - movs r2, 0 - strb r0, [r1, 0x1C] - ldr r1, =gUnknown_0202449C - ldr r0, [r1] - strb r2, [r0, 0x10] - ldr r0, [r1] - adds r0, 0x53 - mov r4, r8 - strb r4, [r0] -_0804A52E: - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - beq _0804A538 - b _0804ACB2 -_0804A538: - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - ldrb r1, [r0, 0x10] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAF - bne _0804A57C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003226 - adds r0, r1 - ldrb r4, [r0] - b _0804A584 - .pool -_0804A57C: - bl itemid_get_x12 - lsls r0, 24 - lsrs r4, r0, 24 -_0804A584: - ldr r5, =gUnknown_0202449C - cmp r4, 0x19 - beq _0804A5AC - ldr r0, [r5] - adds r1, r0, 0 - adds r1, 0x53 - ldrb r0, [r1] - movs r2, 0x1 - ands r2, r0 - cmp r2, 0 - bne _0804A5AC - lsrs r0, 1 - strb r0, [r1] - ldr r1, =gUnknown_02024474 - b _0804A5D0 - .pool -_0804A5AC: - ldr r0, [r5] - ldrb r1, [r0, 0x10] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x38 - bl GetMonData - cmp r0, 0x64 - bne _0804A5E8 - ldr r1, [r5] - adds r1, 0x53 - ldrb r0, [r1] - lsrs r0, 1 - strb r0, [r1] - ldr r1, =gUnknown_02024474 - movs r2, 0 -_0804A5D0: - movs r0, 0x5 - strb r0, [r1, 0x1C] - ldr r0, =gBattleMoveDamage - str r2, [r0] - b _0804ACB2 - .pool -_0804A5E8: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - bne _0804A616 - ldr r0, =gBattleMons - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _0804A616 - ldr r0, [r5] - ldrb r0, [r0, 0x12] - cmp r0, 0 - bne _0804A616 - bl sub_805EA60 - ldr r0, =0x00000161 - bl song_play_for_text - ldr r1, [r5] - ldrb r0, [r1, 0x12] - adds r0, 0x1 - strb r0, [r1, 0x12] -_0804A616: - ldr r5, =gUnknown_0202449C - ldr r0, [r5] - ldrb r1, [r0, 0x10] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _0804A630 - b _0804A824 -_0804A630: - ldr r0, [r5] - adds r0, 0x53 - ldrb r0, [r0] - movs r3, 0x1 - ands r3, r0 - cmp r3, 0 - beq _0804A664 - ldr r1, =gBattleMoveDamage - mov r2, r9 - ldrh r0, [r2] - str r0, [r1] - mov r9, r1 - b _0804A66A - .pool -_0804A664: - ldr r0, =gBattleMoveDamage - str r3, [r0] - mov r9, r0 -_0804A66A: - cmp r4, 0x19 - bne _0804A67A - ldr r0, =gUnknown_02024402 - ldrh r1, [r0] - mov r2, r9 - ldr r0, [r2] - adds r0, r1 - str r0, [r2] -_0804A67A: - cmp r4, 0x28 - bne _0804A68E - mov r4, r9 - ldr r1, [r4] - movs r0, 0x96 - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - str r0, [r4] -_0804A68E: - ldr r5, =gBattleTypeFlags - ldr r0, [r5] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0804A6AA - ldr r4, =gBattleMoveDamage - ldr r1, [r4] - movs r0, 0x96 - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - str r0, [r4] -_0804A6AA: - ldr r4, =gUnknown_0202449C - ldr r0, [r4] - ldrb r1, [r0, 0x10] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - bl sub_806E8A8 - lsls r0, 24 - cmp r0, 0 - beq _0804A714 - ldr r0, [r5] - movs r1, 0x80 - lsls r1, 15 - ands r0, r1 - cmp r0, 0 - beq _0804A6F8 - ldr r0, [r4] - ldrb r0, [r0, 0x10] - cmp r0, 0x2 - bls _0804A6F8 - ldr r7, =0x00000149 - ldr r0, =gBattleMoveDamage - mov r9, r0 - b _0804A71A - .pool -_0804A6F8: - ldr r4, =gBattleMoveDamage - ldr r1, [r4] - movs r0, 0x96 - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - str r0, [r4] - movs r7, 0xA5 - lsls r7, 1 - mov r9, r4 - b _0804A71A - .pool -_0804A714: - ldr r7, =0x00000149 - ldr r1, =gBattleMoveDamage - mov r9, r1 -_0804A71A: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - beq _0804A786 - ldr r0, =gUnknown_0202406E - ldr r1, =gUnknown_0202449C - ldr r4, [r1] - ldrh r0, [r0, 0x4] - adds r5, r1, 0 - ldr r3, =gBitTable - ldr r2, =gUnknown_02024210 - ldrb r1, [r4, 0x10] - cmp r0, r1 - bne _0804A76C - ldrb r1, [r2] - ldr r0, [r3, 0x8] - ands r1, r0 - cmp r1, 0 - bne _0804A76C - adds r1, r4, 0 - adds r1, 0x8F - movs r0, 0x2 - strb r0, [r1] - b _0804A78E - .pool -_0804A76C: - ldrb r2, [r2] - ldr r0, [r3] - ands r2, r0 - cmp r2, 0 - bne _0804A77E - ldr r0, [r5] - adds r0, 0x8F - strb r2, [r0] - b _0804A78E -_0804A77E: - ldr r0, [r5] - adds r0, 0x8F - movs r1, 0x2 - b _0804A78C -_0804A786: - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - adds r0, 0x8F -_0804A78C: - strb r1, [r0] -_0804A78E: - ldr r1, =gUnknown_02022F58 - movs r2, 0 - mov r12, r2 - movs r3, 0xFD - strb r3, [r1] - movs r5, 0x4 - strb r5, [r1, 0x1] - ldr r6, =gUnknown_0202449C - ldr r2, [r6] - movs r4, 0x8F - adds r4, r2 - mov r8, r4 - ldrb r0, [r4] - strb r0, [r1, 0x2] - ldrb r0, [r2, 0x10] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, =gUnknown_02022F68 - strb r3, [r1] - mov r0, r12 - strb r0, [r1, 0x1] - strb r7, [r1, 0x2] - movs r4, 0xFF - lsls r4, 8 - ands r7, r4 - asrs r0, r7, 8 - strb r0, [r1, 0x3] - movs r0, 0x1 - negs r0, r0 - strb r0, [r1, 0x4] - ldr r1, =gUnknown_02022F78 - strb r3, [r1] - movs r0, 0x1 - strb r0, [r1, 0x1] - strb r5, [r1, 0x2] - movs r0, 0x5 - strb r0, [r1, 0x3] - mov r0, r9 - ldr r2, [r0] - strb r2, [r1, 0x4] - adds r0, r2, 0 - ands r0, r4 - asrs r0, 8 - strb r0, [r1, 0x5] - movs r0, 0xFF - lsls r0, 16 - ands r0, r2 - asrs r0, 16 - strb r0, [r1, 0x6] - lsrs r2, 24 - strb r2, [r1, 0x7] - movs r0, 0x1 - negs r0, r0 - strb r0, [r1, 0x8] - mov r2, r8 - ldrb r1, [r2] - movs r0, 0xD - bl b_std_message - ldr r0, [r6] - ldrb r1, [r0, 0x10] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r3, =gBattleMons - ldr r1, =gUnknown_0202420D - ldrb r2, [r1] - movs r1, 0x58 - muls r1, r2 - adds r1, r3 - ldrh r1, [r1] - bl sub_806DADC -_0804A824: - ldr r0, =gUnknown_0202449C - ldr r1, [r0] - adds r1, 0x53 - ldrb r0, [r1] - lsrs r0, 1 - strb r0, [r1] - b _0804A92A - .pool -_0804A850: - ldr r0, =gUnknown_02024068 - ldr r2, [r0] - cmp r2, 0 - beq _0804A85A - b _0804ACB2 -_0804A85A: - ldr r1, =gUnknown_02023864 - ldr r7, =gUnknown_0202449C - ldr r0, [r7] - adds r0, 0x8F - ldrb r0, [r0] - lsls r0, 9 - adds r0, r1 - strb r2, [r0] - ldr r0, [r7] - ldrb r0, [r0, 0x10] - movs r6, 0x64 - muls r0, r6 - ldr r5, =gPlayerParty - adds r0, r5 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0804A92A - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r6 - adds r0, r5 - movs r1, 0x38 - bl GetMonData - cmp r0, 0x64 - beq _0804A92A - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r6 - adds r0, r5 - movs r1, 0x3A - bl GetMonData - ldr r4, =gUnknown_020244A8 - ldr r1, [r4] - ldr r1, [r1, 0x10] - strh r0, [r1] - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r6 - adds r0, r5 - movs r1, 0x3B - bl GetMonData - ldr r1, [r4] - ldr r1, [r1, 0x10] - strh r0, [r1, 0x2] - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r6 - adds r0, r5 - movs r1, 0x3C - bl GetMonData - ldr r1, [r4] - ldr r1, [r1, 0x10] - strh r0, [r1, 0x4] - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r6 - adds r0, r5 - movs r1, 0x3D - bl GetMonData - ldr r1, [r4] - ldr r1, [r1, 0x10] - strh r0, [r1, 0x6] - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r6 - adds r0, r5 - movs r1, 0x3E - bl GetMonData - ldr r1, [r4] - ldr r1, [r1, 0x10] - strh r0, [r1, 0x8] - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r6 - adds r0, r5 - movs r1, 0x3F - bl GetMonData - ldr r1, [r4] - ldr r1, [r1, 0x10] - strh r0, [r1, 0xA] - ldr r4, =gUnknown_02024064 - ldr r1, [r7] - adds r0, r1, 0 - adds r0, 0x8F - ldrb r0, [r0] - strb r0, [r4] - ldrb r1, [r1, 0x10] - ldr r0, =gBattleMoveDamage - ldrh r2, [r0] - movs r0, 0 - bl dp01_build_cmdbuf_x19_a_bb - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_0804A92A: - ldr r1, =gUnknown_02024474 - ldrb r0, [r1, 0x1C] - adds r0, 0x1 - strb r0, [r1, 0x1C] - b _0804ACB2 - .pool -_0804A954: - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - beq _0804A95E - b _0804ACB2 -_0804A95E: - ldr r1, =gUnknown_02024064 - ldr r0, =gUnknown_0202449C - ldr r4, [r0] - adds r0, r4, 0 - adds r0, 0x8F - ldrb r0, [r0] - strb r0, [r1] - ldr r3, =gUnknown_02023864 - ldrb r2, [r1] - lsls r1, r2, 9 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0x21 - beq _0804A97C - b _0804AC28 -_0804A97C: - adds r0, r3, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, 0xB - beq _0804A988 - b _0804AC28 -_0804A988: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0804A9B2 - ldr r0, =gUnknown_0202406E - lsls r1, r2, 1 - adds r1, r0 - ldrh r0, [r1] - ldrb r4, [r4, 0x10] - cmp r0, r4 - bne _0804A9B2 - adds r1, r0, 0 - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - adds r1, r2, 0 - bl sub_805E990 -_0804A9B2: - ldr r1, =gUnknown_02022F58 - movs r3, 0xFD - strb r3, [r1] - movs r0, 0x4 - strb r0, [r1, 0x1] - ldr r6, =gUnknown_02024064 - ldrb r0, [r6] - strb r0, [r1, 0x2] - ldr r4, =gUnknown_0202449C - mov r9, r4 - ldr r2, [r4] - ldrb r0, [r2, 0x10] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r4, =gUnknown_02022F68 - strb r3, [r4] - movs r0, 0x1 - strb r0, [r4, 0x1] - strb r0, [r4, 0x2] - movs r0, 0x3 - strb r0, [r4, 0x3] - ldrb r0, [r2, 0x10] - movs r1, 0x64 - mov r8, r1 - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - ldr r7, =gPlayerParty - adds r0, r7 - movs r1, 0x38 - bl GetMonData - strb r0, [r4, 0x4] - movs r0, 0x1 - negs r0, r0 - strb r0, [r4, 0x5] - bl b_movescr_stack_push_cursor - ldr r2, =gUnknown_03005D54 - ldr r1, =gBitTable - mov r4, r9 - ldr r5, [r4] - ldrb r0, [r5, 0x10] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DABBD - str r0, [r1] - ldr r4, =gBattleMoveDamage - ldr r2, =gUnknown_02023864 - ldrb r1, [r6] - lsls r1, 9 - adds r0, r2, 0x2 - adds r0, r1, r0 - ldrb r3, [r0] - adds r2, 0x3 - adds r1, r2 - ldrb r0, [r1] - lsls r0, 8 - orrs r3, r0 - str r3, [r4] - ldrb r0, [r5, 0x10] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r7 - movs r1, 0 - bl happiness_algorithm - ldr r1, =gUnknown_0202406E - mov r2, r9 - ldr r0, [r2] - ldrb r2, [r0, 0x10] - ldrh r0, [r1] - cmp r0, r2 - bne _0804AB1E - ldr r4, =gBattleMons - ldrh r0, [r4, 0x28] - cmp r0, 0 - beq _0804AB1E - mov r0, r8 - muls r0, r2 - adds r0, r7 - movs r1, 0x38 - bl GetMonData - adds r1, r4, 0 - adds r1, 0x2A - strb r0, [r1] - mov r1, r9 - ldr r0, [r1] - ldrb r0, [r0, 0x10] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - adds r0, r7 - movs r1, 0x39 - bl GetMonData - strh r0, [r4, 0x28] - mov r1, r9 - ldr r0, [r1] - ldrb r0, [r0, 0x10] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - adds r0, r7 - movs r1, 0x3A - bl GetMonData - strh r0, [r4, 0x2C] - mov r1, r9 - ldr r0, [r1] - ldrb r0, [r0, 0x10] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - adds r0, r7 - movs r1, 0x3B - bl GetMonData - strh r0, [r4, 0x2] - mov r1, r9 - ldr r0, [r1] - ldrb r0, [r0, 0x10] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - adds r0, r7 - movs r1, 0x3C - bl GetMonData - strh r0, [r4, 0x4] - mov r1, r9 - ldr r0, [r1] - ldrb r0, [r0, 0x10] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - adds r0, r7 - movs r1, 0x3D - bl GetMonData - strh r0, [r4, 0x6] - mov r1, r9 - ldr r0, [r1] - ldrb r0, [r0, 0x10] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - adds r0, r7 - movs r1, 0x3D - bl GetMonData - strh r0, [r4, 0x6] - mov r1, r9 - ldr r0, [r1] - ldrb r0, [r0, 0x10] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - adds r0, r7 - movs r1, 0x3E - bl GetMonData - strh r0, [r4, 0x8] - mov r1, r9 - ldr r0, [r1] - ldrb r0, [r0, 0x10] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - adds r0, r7 - movs r1, 0x3F - bl GetMonData - strh r0, [r4, 0xA] -_0804AB1E: - ldr r0, =gUnknown_0202406E - ldr r7, =gUnknown_0202449C - ldr r1, [r7] - ldrb r2, [r1, 0x10] - ldrh r0, [r0, 0x4] - cmp r0, r2 - beq _0804AB2E - b _0804AC2E -_0804AB2E: - ldr r6, =gBattleMons - movs r4, 0xD8 - adds r4, r6 - mov r8, r4 - ldrh r0, [r4] - cmp r0, 0 - beq _0804AC2E - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0804AC2E - movs r5, 0x64 - adds r0, r2, 0 - muls r0, r5 - ldr r4, =gPlayerParty - adds r0, r4 - movs r1, 0x38 - bl GetMonData - adds r1, r6, 0 - adds r1, 0xDA - strb r0, [r1] - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r5 - adds r0, r4 - movs r1, 0x39 - bl GetMonData - mov r1, r8 - strh r0, [r1] - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r5 - adds r0, r4 - movs r1, 0x3A - bl GetMonData - adds r1, r6, 0 - adds r1, 0xDC - strh r0, [r1] - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r5 - adds r0, r4 - movs r1, 0x3B - bl GetMonData - adds r1, r6, 0 - adds r1, 0xB2 - strh r0, [r1] - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r5 - adds r0, r4 - movs r1, 0x3C - bl GetMonData - adds r1, r6, 0 - adds r1, 0xB4 - strh r0, [r1] - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r5 - adds r0, r4 - movs r1, 0x3D - bl GetMonData - movs r2, 0xB6 - adds r2, r6 - mov r8, r2 - strh r0, [r2] - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r5 - adds r0, r4 - movs r1, 0x3D - bl GetMonData - mov r1, r8 - strh r0, [r1] - ldr r0, [r7] - ldrb r0, [r0, 0x10] - muls r0, r5 - adds r0, r4 - movs r1, 0x3E - bl GetMonData - adds r1, r6, 0 - adds r1, 0xB8 - strh r0, [r1] - b _0804AC2E - .pool -_0804AC28: - ldr r1, =gBattleMoveDamage - movs r0, 0 - str r0, [r1] -_0804AC2E: - ldr r1, =gUnknown_02024474 - movs r0, 0x5 - strb r0, [r1, 0x1C] - b _0804ACB2 - .pool -_0804AC40: - ldr r0, =gBattleMoveDamage - ldr r0, [r0] - cmp r0, 0 - beq _0804AC58 - ldr r1, =gUnknown_02024474 - movs r0, 0x3 - strb r0, [r1, 0x1C] - b _0804ACB2 - .pool -_0804AC58: - ldr r2, =gUnknown_0202449C - ldr r1, [r2] - ldrb r0, [r1, 0x10] - adds r0, 0x1 - strb r0, [r1, 0x10] - ldr r0, [r2] - ldrb r0, [r0, 0x10] - cmp r0, 0x5 - bhi _0804AC7C - ldr r1, =gUnknown_02024474 - movs r0, 0x2 - strb r0, [r1, 0x1C] - b _0804ACB2 - .pool -_0804AC7C: - ldr r1, =gUnknown_02024474 - movs r0, 0x6 - strb r0, [r1, 0x1C] - b _0804ACB2 - .pool -_0804AC88: - ldr r0, =gUnknown_02024068 - ldr r5, [r0] - cmp r5, 0 - bne _0804ACB2 - ldr r4, =gBattleMons - ldr r2, =gUnknown_0202420D - ldrb r0, [r2] - movs r1, 0x58 - muls r0, r1 - adds r0, r4 - movs r3, 0 - strh r5, [r0, 0x2E] - ldrb r0, [r2] - muls r0, r1 - adds r0, r4 - adds r0, 0x20 - strb r3, [r0] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] -_0804ACB2: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_804A32C - - thumb_func_start sub_804ACD0 -sub_804ACD0: @ 804ACD0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0 - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - beq _0804ACE2 - b _0804AF22 -_0804ACE2: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 15 - ands r0, r1 - cmp r0, 0 - beq _0804AD48 - ldr r0, =gUnknown_02038BCE - ldrh r1, [r0] - ldr r0, =0x00000c03 - cmp r1, r0 - bne _0804AD48 - movs r5, 0 -_0804ACFC: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0804AD2C - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0804AD2C - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - adds r0, r6, r0 - lsls r0, 16 - lsrs r6, r0, 16 -_0804AD2C: - adds r5, 0x1 - cmp r5, 0x2 - ble _0804ACFC - b _0804ADA8 - .pool -_0804AD48: - movs r5, 0 -_0804AD4A: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0804ADA2 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0804ADA2 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 11 - ands r0, r1 - cmp r0, 0 - beq _0804AD94 - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - movs r1, 0xA8 - lsls r1, 2 - adds r0, r1 - ldrb r1, [r0] - ldr r2, =gBitTable - lsls r0, r5, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0804ADA2 -_0804AD94: - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - adds r0, r6, r0 - lsls r0, 16 - lsrs r6, r0, 16 -_0804ADA2: - adds r5, 0x1 - cmp r5, 0x5 - ble _0804AD4A -_0804ADA8: - cmp r6, 0 - bne _0804ADB6 - ldr r0, =gUnknown_0202433A - ldrb r1, [r0] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] -_0804ADB6: - movs r6, 0 - movs r5, 0 -_0804ADBA: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gEnemyParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0804AE10 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0804AE10 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 11 - ands r0, r1 - cmp r0, 0 - beq _0804AE02 - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - ldr r1, =0x000002a1 - adds r0, r1 - ldrb r1, [r0] - ldr r2, =gBitTable - lsls r0, r5, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0804AE10 -_0804AE02: - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - adds r0, r6, r0 - lsls r0, 16 - lsrs r6, r0, 16 -_0804AE10: - adds r5, 0x1 - cmp r5, 0x5 - ble _0804ADBA - ldr r2, =gUnknown_0202433A - cmp r6, 0 - bne _0804AE24 - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] -_0804AE24: - ldrb r0, [r2] - cmp r0, 0 - bne _0804AF1A - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - ldr r2, =0x02000002 - ands r1, r2 - mov r8, r0 - cmp r1, 0 - beq _0804AF1A - movs r3, 0 - movs r5, 0 - ldr r0, =gUnknown_0202406C - ldrb r1, [r0] - mov r12, r0 - ldr r7, =gUnknown_02024214 - cmp r3, r1 - bge _0804AE70 - ldr r0, =gUnknown_02024280 - movs r6, 0x80 - lsls r6, 21 - ldr r4, [r0] - adds r2, r1, 0 - ldr r1, =gUnknown_0202437C -_0804AE54: - adds r0, r6, 0 - lsls r0, r5 - ands r0, r4 - cmp r0, 0 - beq _0804AE68 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _0804AE68 - adds r3, 0x1 -_0804AE68: - adds r1, 0x28 - adds r5, 0x2 - cmp r5, r2 - blt _0804AE54 -_0804AE70: - movs r2, 0 - movs r5, 0x1 - mov r4, r12 - ldrb r1, [r4] - cmp r5, r1 - bge _0804AEAA - ldr r0, =gUnknown_02024280 - movs r4, 0x80 - lsls r4, 21 - mov r12, r4 - ldr r6, [r0] - ldr r0, =gUnknown_0202437C - adds r4, r1, 0 - adds r1, r0, 0 - adds r1, 0x14 -_0804AE8E: - mov r0, r12 - lsls r0, r5 - ands r0, r6 - cmp r0, 0 - beq _0804AEA2 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _0804AEA2 - adds r2, 0x1 -_0804AEA2: - adds r1, 0x28 - adds r5, 0x2 - cmp r5, r4 - blt _0804AE8E -_0804AEAA: - mov r1, r8 - ldr r0, [r1] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0804AEF0 - adds r0, r2, r3 - cmp r0, 0x1 - bgt _0804AEF8 - b _0804AF12 - .pool -_0804AEF0: - cmp r2, 0 - beq _0804AF12 - cmp r3, 0 - beq _0804AF12 -_0804AEF8: - ldr r2, [r7] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r1, r0 - str r1, [r7] - b _0804AF22 -_0804AF12: - ldr r0, [r7] - adds r0, 0x5 - str r0, [r7] - b _0804AF22 -_0804AF1A: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0804AF22: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_804ACD0 - - thumb_func_start sub_804AF30 -sub_804AF30: @ 804AF30 - ldr r1, =gBattleMoveFlags - movs r0, 0 - strb r0, [r1] - ldr r0, =gUnknown_02024474 - movs r2, 0 - movs r1, 0x1 - strb r1, [r0, 0xE] - ldr r0, =gCritMultiplier - strb r1, [r0] - ldr r0, =gUnknown_02024332 - strb r2, [r0, 0x3] - strb r2, [r0, 0x6] - ldr r2, =gUnknown_02024280 - ldr r0, [r2] - subs r1, 0x42 - ands r0, r1 - ldr r1, =0xffffbfff - ands r0, r1 - str r0, [r2] - bx lr - .pool - thumb_func_end sub_804AF30 - - thumb_func_start atk25_cmd25 -atk25_cmd25: @ 804AF70 - push {lr} - bl sub_804AF30 - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atk25_cmd25 - - thumb_func_start atk26_80225F0_storebyteforjump -atk26_80225F0_storebyteforjump: @ 804AF88 - ldr r3, =gUnknown_02024212 - ldr r2, =gUnknown_02024214 - ldr r0, [r2] - ldrb r1, [r0, 0x1] - strb r1, [r3] - adds r0, 0x2 - str r0, [r2] - bx lr - .pool - thumb_func_end atk26_80225F0_storebyteforjump - - thumb_func_start atk27_cmd27 -atk27_cmd27: @ 804AFA0 - push {lr} - ldr r1, =gUnknown_02024212 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bne _0804AFC4 - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0804AFDE - .pool -_0804AFC4: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r1, r0 - str r1, [r3] -_0804AFDE: - pop {r0} - bx r0 - .pool - thumb_func_end atk27_cmd27 - - thumb_func_start atk28_goto -atk28_goto: @ 804AFE8 - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r1, r0 - str r1, [r3] - bx lr - .pool - thumb_func_end atk28_goto - - thumb_func_start atk29_jumpifbyte -atk29_jumpifbyte: @ 804B008 - push {r4-r6,lr} - ldr r3, =gUnknown_02024214 - ldr r1, [r3] - ldrb r6, [r1, 0x1] - ldrb r2, [r1, 0x2] - ldrb r0, [r1, 0x3] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0x5] - lsls r0, 24 - adds r5, r2, r0 - ldrb r4, [r1, 0x6] - ldrb r2, [r1, 0x7] - ldrb r0, [r1, 0x8] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x9] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0xA] - lsls r0, 24 - adds r2, r0 - adds r1, 0xB - str r1, [r3] - cmp r6, 0x5 - bhi _0804B0A0 - lsls r0, r6, 2 - ldr r1, =_0804B054 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0804B054: - .4byte _0804B06C - .4byte _0804B074 - .4byte _0804B07C - .4byte _0804B084 - .4byte _0804B08C - .4byte _0804B096 -_0804B06C: - ldrb r0, [r5] - cmp r0, r4 - bne _0804B0A0 - b _0804B09E -_0804B074: - ldrb r0, [r5] - cmp r0, r4 - beq _0804B0A0 - b _0804B09E -_0804B07C: - ldrb r0, [r5] - cmp r0, r4 - bls _0804B0A0 - b _0804B09E -_0804B084: - ldrb r0, [r5] - cmp r0, r4 - bcs _0804B0A0 - b _0804B09E -_0804B08C: - ldrb r0, [r5] - ands r4, r0 - cmp r4, 0 - beq _0804B0A0 - b _0804B09E -_0804B096: - ldrb r0, [r5] - ands r4, r0 - cmp r4, 0 - bne _0804B0A0 -_0804B09E: - str r2, [r3] -_0804B0A0: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end atk29_jumpifbyte - - thumb_func_start sub_804B0A8 -sub_804B0A8: @ 804B0A8 - push {r4-r6,lr} - ldr r3, =gUnknown_02024214 - ldr r1, [r3] - ldrb r6, [r1, 0x1] - ldrb r2, [r1, 0x2] - ldrb r0, [r1, 0x3] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0x5] - lsls r0, 24 - adds r5, r2, r0 - ldrb r4, [r1, 0x6] - ldrb r0, [r1, 0x7] - lsls r0, 8 - orrs r4, r0 - ldrb r2, [r1, 0x8] - ldrb r0, [r1, 0x9] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0xA] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0xB] - lsls r0, 24 - adds r2, r0 - adds r1, 0xC - str r1, [r3] - cmp r6, 0x5 - bhi _0804B148 - lsls r0, r6, 2 - ldr r1, =_0804B0FC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0804B0FC: - .4byte _0804B114 - .4byte _0804B11C - .4byte _0804B124 - .4byte _0804B12C - .4byte _0804B134 - .4byte _0804B13E -_0804B114: - ldrh r0, [r5] - cmp r0, r4 - bne _0804B148 - b _0804B146 -_0804B11C: - ldrh r0, [r5] - cmp r0, r4 - beq _0804B148 - b _0804B146 -_0804B124: - ldrh r0, [r5] - cmp r0, r4 - bls _0804B148 - b _0804B146 -_0804B12C: - ldrh r0, [r5] - cmp r0, r4 - bcs _0804B148 - b _0804B146 -_0804B134: - ldrh r0, [r5] - ands r4, r0 - cmp r4, 0 - beq _0804B148 - b _0804B146 -_0804B13E: - ldrh r0, [r5] - ands r4, r0 - cmp r4, 0 - bne _0804B148 -_0804B146: - str r2, [r3] -_0804B148: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_804B0A8 - - thumb_func_start sub_804B150 -sub_804B150: @ 804B150 - push {r4-r6,lr} - ldr r3, =gUnknown_02024214 - ldr r1, [r3] - ldrb r6, [r1, 0x1] - ldrb r2, [r1, 0x2] - ldrb r0, [r1, 0x3] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0x5] - lsls r0, 24 - adds r5, r2, r0 - ldrb r4, [r1, 0x6] - ldrb r0, [r1, 0x7] - lsls r0, 8 - orrs r4, r0 - ldrb r0, [r1, 0x8] - lsls r0, 16 - orrs r4, r0 - ldrb r0, [r1, 0x9] - lsls r0, 24 - orrs r4, r0 - ldrb r2, [r1, 0xA] - ldrb r0, [r1, 0xB] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0xC] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0xD] - lsls r0, 24 - adds r2, r0 - adds r1, 0xE - str r1, [r3] - cmp r6, 0x5 - bhi _0804B1FC - lsls r0, r6, 2 - ldr r1, =_0804B1B0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0804B1B0: - .4byte _0804B1C8 - .4byte _0804B1D0 - .4byte _0804B1D8 - .4byte _0804B1E0 - .4byte _0804B1E8 - .4byte _0804B1F2 -_0804B1C8: - ldr r0, [r5] - cmp r0, r4 - bne _0804B1FC - b _0804B1FA -_0804B1D0: - ldr r0, [r5] - cmp r0, r4 - beq _0804B1FC - b _0804B1FA -_0804B1D8: - ldr r0, [r5] - cmp r0, r4 - bls _0804B1FC - b _0804B1FA -_0804B1E0: - ldr r0, [r5] - cmp r0, r4 - bcs _0804B1FC - b _0804B1FA -_0804B1E8: - ldr r0, [r5] - ands r0, r4 - cmp r0, 0 - beq _0804B1FC - b _0804B1FA -_0804B1F2: - ldr r0, [r5] - ands r0, r4 - cmp r0, 0 - bne _0804B1FC -_0804B1FA: - str r2, [r3] -_0804B1FC: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_804B150 - - thumb_func_start sub_804B204 -sub_804B204: @ 804B204 - push {r4-r7,lr} - ldr r2, =gUnknown_02024214 - ldr r3, [r2] - ldrb r1, [r3, 0x1] - ldrb r0, [r3, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r3, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 24 - adds r5, r1, r0 - ldrb r1, [r3, 0x5] - ldrb r0, [r3, 0x6] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r3, 0x7] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r3, 0x8] - lsls r0, 24 - adds r4, r1, r0 - ldrb r6, [r3, 0x9] - ldrb r1, [r3, 0xA] - ldrb r0, [r3, 0xB] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r3, 0xC] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r3, 0xD] - lsls r0, 24 - adds r1, r0 - mov r12, r1 - movs r1, 0 - cmp r1, r6 - bcs _0804B27C - ldrb r0, [r5] - ldrb r7, [r4] - cmp r0, r7 - beq _0804B260 - adds r0, r3, 0 - b _0804B278 - .pool -_0804B260: - adds r5, 0x1 - adds r4, 0x1 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, r6 - bcs _0804B27C - ldrb r0, [r5] - ldrb r3, [r4] - cmp r0, r3 - beq _0804B260 - ldr r0, [r2] -_0804B278: - adds r0, 0xE - str r0, [r2] -_0804B27C: - cmp r1, r6 - bne _0804B284 - mov r7, r12 - str r7, [r2] -_0804B284: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804B204 - - thumb_func_start sub_804B28C -sub_804B28C: @ 804B28C - push {r4-r7,lr} - movs r7, 0 - ldr r3, =gUnknown_02024214 - ldr r1, [r3] - ldrb r2, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - adds r5, r2, r0 - ldrb r2, [r1, 0x5] - ldrb r0, [r1, 0x6] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x7] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0x8] - lsls r0, 24 - adds r4, r2, r0 - ldrb r6, [r1, 0x9] - ldrb r2, [r1, 0xA] - ldrb r0, [r1, 0xB] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0xC] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0xD] - lsls r0, 24 - adds r2, r0 - mov r12, r2 - movs r1, 0 - cmp r7, r6 - bcs _0804B2F6 -_0804B2DA: - ldrb r0, [r5] - ldrb r2, [r4] - cmp r0, r2 - bne _0804B2E8 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_0804B2E8: - adds r5, 0x1 - adds r4, 0x1 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, r6 - bcc _0804B2DA -_0804B2F6: - cmp r7, r6 - beq _0804B304 - mov r0, r12 - b _0804B308 - .pool -_0804B304: - ldr r0, [r3] - adds r0, 0xE -_0804B308: - str r0, [r3] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804B28C - - thumb_func_start sub_804B310 -sub_804B310: @ 804B310 - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r1, r0 - ldrb r0, [r2, 0x5] - strb r0, [r1] - ldr r0, [r3] - adds r0, 0x6 - str r0, [r3] - bx lr - .pool - thumb_func_end sub_804B310 - - thumb_func_start sub_804B338 -sub_804B338: @ 804B338 - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r1, r0 - ldrb r0, [r2, 0x5] - ldrb r2, [r1] - adds r0, r2 - strb r0, [r1] - ldr r0, [r3] - adds r0, 0x6 - str r0, [r3] - bx lr - .pool - thumb_func_end sub_804B338 - - thumb_func_start sub_804B364 -sub_804B364: @ 804B364 - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r1, r0 - ldrb r0, [r1] - ldrb r2, [r2, 0x5] - subs r0, r2 - strb r0, [r1] - ldr r0, [r3] - adds r0, 0x6 - str r0, [r3] - bx lr - .pool - thumb_func_end sub_804B364 - - thumb_func_start atk31_copyarray -atk31_copyarray: @ 804B390 - push {r4-r6,lr} - ldr r3, =gUnknown_02024214 - ldr r1, [r3] - ldrb r2, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - adds r6, r2, r0 - ldrb r2, [r1, 0x5] - ldrb r0, [r1, 0x6] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x7] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0x8] - lsls r0, 24 - adds r5, r2, r0 - ldrb r4, [r1, 0x9] - movs r2, 0 - cmp r2, r4 - bge _0804B3D4 -_0804B3C6: - adds r0, r6, r2 - adds r1, r5, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, r4 - blt _0804B3C6 -_0804B3D4: - ldr r0, [r3] - adds r0, 0xA - str r0, [r3] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atk31_copyarray - - thumb_func_start atk32_memcpy_with_offset -atk32_memcpy_with_offset: @ 804B3E4 - push {r4-r7,lr} - ldr r3, =gUnknown_02024214 - ldr r1, [r3] - ldrb r2, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - adds r7, r2, r0 - ldrb r2, [r1, 0x5] - ldrb r0, [r1, 0x6] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x7] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0x8] - lsls r0, 24 - adds r6, r2, r0 - ldrb r2, [r1, 0x9] - ldrb r0, [r1, 0xA] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0xB] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0xC] - lsls r0, 24 - adds r5, r2, r0 - ldrb r4, [r1, 0xD] - movs r2, 0 - cmp r2, r4 - bge _0804B440 -_0804B42E: - adds r0, r7, r2 - ldrb r1, [r5] - adds r1, r2, r1 - adds r1, r6, r1 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, r4 - blt _0804B42E -_0804B440: - ldr r0, [r3] - adds r0, 0xE - str r0, [r3] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk32_memcpy_with_offset - - thumb_func_start atk33_orbyte -atk33_orbyte: @ 804B450 - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r1, r0 - ldrb r0, [r1] - ldrb r2, [r2, 0x5] - orrs r0, r2 - strb r0, [r1] - ldr r0, [r3] - adds r0, 0x6 - str r0, [r3] - bx lr - .pool - thumb_func_end atk33_orbyte - - thumb_func_start atk34_orhalfword -atk34_orhalfword: @ 804B47C - push {r4,lr} - ldr r4, =gUnknown_02024214 - ldr r3, [r4] - ldrb r2, [r3, 0x1] - ldrb r0, [r3, 0x2] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r3, 0x3] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r3, 0x4] - lsls r0, 24 - adds r2, r0 - ldrb r1, [r3, 0x5] - ldrb r0, [r3, 0x6] - lsls r0, 8 - orrs r1, r0 - ldrh r0, [r2] - orrs r1, r0 - strh r1, [r2] - ldr r0, [r4] - adds r0, 0x7 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk34_orhalfword - - thumb_func_start atk35_orword -atk35_orword: @ 804B4B4 - push {r4,lr} - ldr r4, =gUnknown_02024214 - ldr r2, [r4] - ldrb r3, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r3, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r3, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r3, r0 - ldrb r1, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - adds r1, r0 - ldr r0, [r3] - orrs r0, r1 - str r0, [r3] - ldr r0, [r4] - adds r0, 0x9 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk35_orword - - thumb_func_start atk36_bicbyte -atk36_bicbyte: @ 804B4F8 - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r1, r0 - ldrb r2, [r2, 0x5] - ldrb r0, [r1] - bics r0, r2 - strb r0, [r1] - ldr r0, [r3] - adds r0, 0x6 - str r0, [r3] - bx lr - .pool - thumb_func_end atk36_bicbyte - - thumb_func_start atk37_bichalfword -atk37_bichalfword: @ 804B524 - push {r4,lr} - ldr r4, =gUnknown_02024214 - ldr r3, [r4] - ldrb r1, [r3, 0x1] - ldrb r0, [r3, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r3, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 24 - adds r1, r0 - ldrb r2, [r3, 0x5] - ldrb r0, [r3, 0x6] - lsls r0, 8 - orrs r2, r0 - ldrh r0, [r1] - bics r0, r2 - strh r0, [r1] - ldr r0, [r4] - adds r0, 0x7 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk37_bichalfword - - thumb_func_start atk38_bicword -atk38_bicword: @ 804B55C - push {r4,lr} - ldr r4, =gUnknown_02024214 - ldr r2, [r4] - ldrb r3, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r3, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r3, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r3, r0 - ldrb r1, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - adds r1, r0 - ldr r0, [r3] - bics r0, r1 - str r0, [r3] - ldr r0, [r4] - adds r0, 0x9 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk38_bicword - - thumb_func_start atk39_pause -atk39_pause: @ 804B5A0 - push {r4,r5,lr} - ldr r0, =gUnknown_02024068 - ldr r4, [r0] - cmp r4, 0 - bne _0804B5CC - ldr r5, =gUnknown_02024214 - ldr r2, [r5] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldr r3, =gUnknown_0202432C - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] - lsls r0, 16 - lsrs r0, 16 - cmp r0, r1 - bcc _0804B5CC - strh r4, [r3] - adds r0, r2, 0x3 - str r0, [r5] -_0804B5CC: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk39_pause - - thumb_func_start sub_804B5E0 -sub_804B5E0: @ 804B5E0 - push {lr} - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - bne _0804B5F2 - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_0804B5F2: - pop {r0} - bx r0 - .pool - thumb_func_end sub_804B5E0 - - thumb_func_start atk3B_8022C68 -atk3B_8022C68: @ 804B600 - push {lr} - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _0804B620 - ldr r0, =gUnknown_02024064 - ldr r1, =gEnemyMonIndex - b _0804B624 - .pool -_0804B620: - ldr r0, =gUnknown_02024064 - ldr r1, =gUnknown_0202420B -_0804B624: - ldrb r1, [r1] - strb r1, [r0] - ldr r0, =gBattleMoveDamage - ldrh r1, [r0] - movs r0, 0 - bl dp01_build_cmdbuf_x18_0_aa_health_bar_update - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atk3B_8022C68 - - thumb_func_start atk3C_return -atk3C_return: @ 804B658 - push {lr} - bl b_movescr_stack_pop_cursor - pop {r0} - bx r0 - thumb_func_end atk3C_return - - thumb_func_start sub_804B664 -sub_804B664: @ 804B664 - push {lr} - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 11 - ands r0, r1 - cmp r0, 0 - beq _0804B67C - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - bl sub_81A5718 -_0804B67C: - ldr r0, =gBattleMoveFlags - movs r1, 0 - strb r1, [r0] - ldr r0, =gUnknown_02024064 - strb r1, [r0] - ldr r1, =gUnknown_02024083 - movs r0, 0xB - strb r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_804B664 - - thumb_func_start atk3E_end2 -atk3E_end2: @ 804B6A4 - ldr r1, =gUnknown_02024064 - movs r0, 0 - strb r0, [r1] - ldr r1, =gUnknown_02024083 - movs r0, 0xB - strb r0, [r1] - bx lr - .pool - thumb_func_end atk3E_end2 - - thumb_func_start atk3F_end3 -atk3F_end3: @ 804B6BC - push {lr} - bl b_movescr_stack_pop_cursor - ldr r3, =gUnknown_020244A8 - ldr r0, [r3] - ldr r0, [r0, 0xC] - adds r1, r0, 0 - adds r1, 0x20 - ldrb r0, [r1] - cmp r0, 0 - beq _0804B6D6 - subs r0, 0x1 - strb r0, [r1] -_0804B6D6: - ldr r2, =gUnknown_03005D04 - ldr r0, [r3] - ldr r1, [r0, 0xC] - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - lsls r0, 2 - adds r1, r0 - ldr r0, [r1] - str r0, [r2] - pop {r0} - bx r0 - .pool - thumb_func_end atk3F_end3 - - thumb_func_start atk41_call -atk41_call: @ 804B6F8 - push {r4,lr} - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - adds r0, 0x5 - bl b_movescr_stack_push - ldr r2, [r4] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk41_call - - thumb_func_start atk42_jumpiftype2 -atk42_jumpiftype2: @ 804B728 - push {r4,lr} - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - lsls r0, 24 - lsrs r0, 24 - ldr r3, [r4] - ldr r2, =gBattleMons - movs r1, 0x58 - muls r0, r1 - adds r0, r2 - adds r1, r0, 0 - adds r1, 0x21 - ldrb r2, [r3, 0x2] - ldrb r1, [r1] - cmp r2, r1 - beq _0804B756 - adds r0, 0x22 - ldrb r0, [r0] - cmp r2, r0 - bne _0804B778 -_0804B756: - ldrb r1, [r3, 0x3] - ldrb r0, [r3, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x6] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _0804B77C - .pool -_0804B778: - adds r0, r3, 0x7 - str r0, [r4] -_0804B77C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end atk42_jumpiftype2 - - thumb_func_start sub_804B784 -sub_804B784: @ 804B784 - push {r4,lr} - sub sp, 0x4 - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - ldrb r2, [r0, 0x1] - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r3, 0 - bl ability_something - lsls r0, 24 - cmp r0, 0 - beq _0804B7C0 - ldr r2, [r4] - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _0804B7C6 - .pool -_0804B7C0: - ldr r0, [r4] - adds r0, 0x6 - str r0, [r4] -_0804B7C6: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_804B784 - - thumb_func_start sub_804B7D0 -sub_804B7D0: @ 804B7D0 - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - ldr r1, =gUnknown_0202449C - ldr r1, [r1] - adds r0, r1 - adds r0, 0x54 - movs r1, 0x1 - strb r1, [r0] - bx lr - .pool - thumb_func_end sub_804B7D0 - - thumb_func_start atk46_cmd46 -atk46_cmd46: @ 804B7EC - push {r4-r6,lr} - ldr r5, =gUnknown_02024214 - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r6, =gUnknown_02024064 - strb r0, [r6] - ldr r2, [r5] - ldrb r1, [r2, 0x3] - ldrb r0, [r2, 0x4] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x6] - lsls r0, 24 - adds r3, r1, r0 - ldrb r4, [r2, 0x2] - adds r0, r4, 0 - cmp r0, 0x1 - beq _0804B822 - cmp r0, 0x11 - beq _0804B822 - cmp r0, 0x2 - bne _0804B848 -_0804B822: - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - ldrb r1, [r0, 0x2] - ldrh r2, [r3] - movs r0, 0 - bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r4] - adds r0, 0x7 - str r0, [r4] - b _0804B8AA - .pool -_0804B848: - ldr r0, =gUnknown_02024280 - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804B868 - adds r0, r2, 0x7 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DABB9 - b _0804B8A8 - .pool -_0804B868: - adds r0, r4, 0 - subs r0, 0xA - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _0804B894 - ldr r1, =gUnknown_020242AC - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =0x000400c0 - ands r0, r1 - cmp r0, 0 - beq _0804B894 - adds r0, r2, 0x7 - b _0804B8A8 - .pool -_0804B894: - ldrb r1, [r2, 0x2] - ldrh r2, [r3] - movs r0, 0 - bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim - ldrb r0, [r6] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x7 -_0804B8A8: - str r0, [r5] -_0804B8AA: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end atk46_cmd46 - - thumb_func_start sub_804B8B0 -sub_804B8B0: @ 804B8B0 - push {r4-r7,lr} - ldr r6, =gUnknown_02024214 - ldr r0, [r6] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r7, =gUnknown_02024064 - strb r0, [r7] - ldr r2, [r6] - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - adds r3, r1, r0 - ldrb r1, [r2, 0x6] - ldrb r0, [r2, 0x7] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x9] - lsls r0, 24 - adds r4, r1, r0 - ldrb r5, [r3] - adds r0, r5, 0 - cmp r0, 0x1 - beq _0804B8FA - cmp r0, 0x11 - beq _0804B8FA - cmp r0, 0x2 - bne _0804B920 -_0804B8FA: - ldrb r1, [r3] - ldrh r2, [r4] - movs r0, 0 - bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0xA - str r0, [r1] - b _0804B976 - .pool -_0804B920: - ldr r0, =gUnknown_02024280 - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804B934 - adds r0, r2, 0 - b _0804B972 - .pool -_0804B934: - adds r0, r5, 0 - subs r0, 0xA - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _0804B960 - ldr r1, =gUnknown_020242AC - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =0x000400c0 - ands r0, r1 - cmp r0, 0 - beq _0804B960 - adds r0, r2, 0 - b _0804B972 - .pool -_0804B960: - ldrb r1, [r3] - ldrh r2, [r4] - movs r0, 0 - bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim - ldrb r0, [r7] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r6] -_0804B972: - adds r0, 0xA - str r0, [r6] -_0804B976: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804B8B0 - - thumb_func_start sub_804B97C -sub_804B97C: @ 804B97C - push {r4,lr} - movs r3, 0 - ldr r1, =gUnknown_02024474 - ldrb r0, [r1, 0x1A] - movs r2, 0xF0 - ands r2, r0 - adds r4, r1, 0 - cmp r2, 0x20 - beq _0804B9AA - cmp r2, 0x20 - bgt _0804B99C - cmp r2, 0x10 - beq _0804B9A6 - b _0804B9B4 - .pool -_0804B99C: - cmp r2, 0x90 - beq _0804B9AE - cmp r2, 0xA0 - beq _0804B9B2 - b _0804B9B4 -_0804B9A6: - movs r3, 0xF - b _0804B9B4 -_0804B9AA: - movs r3, 0x27 - b _0804B9B4 -_0804B9AE: - movs r3, 0x16 - b _0804B9B4 -_0804B9B2: - movs r3, 0x2E -_0804B9B4: - ldrb r1, [r4, 0x1A] - movs r0, 0xF - ands r0, r1 - adds r0, r3, r0 - subs r0, 0x1 - movs r1, 0 - strb r0, [r4, 0x10] - strb r1, [r4, 0x11] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_804B97C - - thumb_func_start atk48_playstatchangeanimation -atk48_playstatchangeanimation: @ 804B9D8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r7, 0 - movs r0, 0 - mov r8, r0 - movs r3, 0 - ldr r5, =gUnknown_02024214 - ldr r0, [r5] - ldrb r0, [r0, 0x1] - str r3, [sp] - bl get_battle_side_of_something - ldr r2, =gUnknown_02024064 - strb r0, [r2] - ldr r0, [r5] - ldrb r4, [r0, 0x2] - ldrb r1, [r0, 0x3] - movs r0, 0x1 - ands r0, r1 - ldr r3, [sp] - cmp r0, 0 - beq _0804BAEC - movs r0, 0x2 - ands r0, r1 - movs r1, 0x15 - cmp r0, 0 - beq _0804BA18 - movs r1, 0x2D -_0804BA18: - cmp r4, 0 - beq _0804BAC0 - movs r0, 0x1 - mov r10, r0 - ldr r0, =gUnknown_0202409C - mov r9, r0 - lsls r5, r1, 16 -_0804BA26: - adds r0, r4, 0 - mov r1, r10 - ands r0, r1 - cmp r0, 0 - beq _0804BAB2 - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r1, [r0, 0x3] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0804BA58 - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r7, r0 - b _0804BAA0 - .pool -_0804BA58: - ldr r6, =gUnknown_02024064 - ldrb r0, [r6] - str r3, [sp] - bl battle_get_per_side_status - mov r1, r10 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02024294 - adds r0, r1 - ldrb r0, [r0, 0x4] - ldr r3, [sp] - cmp r0, 0 - bne _0804BAB2 - ldr r0, =gBattleMons - ldrb r2, [r6] - movs r1, 0x58 - muls r2, r1 - adds r0, r2, r0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1D - beq _0804BAB2 - cmp r0, 0x49 - beq _0804BAB2 - cmp r0, 0x33 - bne _0804BA96 - cmp r7, 0x6 - beq _0804BAB2 -_0804BA96: - cmp r0, 0x34 - bne _0804BA9E - cmp r7, 0x1 - beq _0804BAB2 -_0804BA9E: - adds r0, r7, r2 -_0804BAA0: - add r0, r9 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - ble _0804BAB2 - lsrs r0, r5, 16 - mov r8, r0 - adds r3, 0x1 -_0804BAB2: - lsrs r4, 1 - movs r1, 0x80 - lsls r1, 9 - adds r5, r1 - adds r7, 0x1 - cmp r4, 0 - bne _0804BA26 -_0804BAC0: - ldr r0, =gUnknown_02024214 - mov r9, r0 - cmp r3, 0x1 - ble _0804BB4E - ldr r0, [r0] - ldrb r1, [r0, 0x3] - movs r0, 0x2 - ands r0, r1 - movs r1, 0x39 - mov r8, r1 - cmp r0, 0 - beq _0804BB4E - movs r0, 0x3A - b _0804BB4C - .pool -_0804BAEC: - movs r0, 0x2 - ands r0, r1 - movs r1, 0xE - cmp r0, 0 - beq _0804BAF8 - movs r1, 0x26 -_0804BAF8: - mov r9, r5 - cmp r4, 0 - beq _0804BB34 - ldr r6, =gUnknown_0202409C - adds r5, r2, 0 - lsls r2, r1, 16 -_0804BB04: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _0804BB26 - ldrb r1, [r5] - movs r0, 0x58 - muls r0, r1 - adds r0, r7, r0 - adds r0, r6 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0xB - bgt _0804BB26 - lsrs r1, r2, 16 - mov r8, r1 - adds r3, 0x1 -_0804BB26: - lsrs r4, 1 - movs r0, 0x80 - lsls r0, 9 - adds r2, r0 - adds r7, 0x1 - cmp r4, 0 - bne _0804BB04 -_0804BB34: - cmp r3, 0x1 - ble _0804BB4E - mov r1, r9 - ldr r0, [r1] - ldrb r1, [r0, 0x3] - movs r0, 0x2 - ands r0, r1 - movs r1, 0x37 - mov r8, r1 - cmp r0, 0 - beq _0804BB4E - movs r0, 0x38 -_0804BB4C: - mov r8, r0 -_0804BB4E: - mov r1, r9 - ldr r2, [r1] - ldrb r1, [r2, 0x3] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0804BB6C - cmp r3, 0x1 - bgt _0804BB6C - adds r0, r2, 0x4 - mov r1, r9 - b _0804BBBA - .pool -_0804BB6C: - cmp r3, 0 - beq _0804BBB4 - ldr r4, =gUnknown_02024474 - ldrb r0, [r4, 0x1B] - cmp r0, 0 - bne _0804BBB4 - movs r0, 0 - movs r1, 0x1 - mov r2, r8 - str r3, [sp] - bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r1, [r0, 0x3] - movs r0, 0x4 - ands r0, r1 - ldr r3, [sp] - cmp r0, 0 - beq _0804BBA4 - cmp r3, 0x1 - ble _0804BBA4 - movs r0, 0x1 - strb r0, [r4, 0x1B] -_0804BBA4: - ldr r1, =gUnknown_02024214 - b _0804BBB6 - .pool -_0804BBB4: - mov r1, r9 -_0804BBB6: - ldr r0, [r1] - adds r0, 0x4 -_0804BBBA: - str r0, [r1] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end atk48_playstatchangeanimation - - thumb_func_start sub_804BBCC -sub_804BBCC: @ 804BBCC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - movs r0, 0 - mov r10, r0 - ldr r2, =gUnknown_020241EC - ldrh r1, [r2] - ldr r0, =0x0000ffff - movs r3, 0 - str r3, [sp, 0x18] - cmp r1, r0 - beq _0804BBEE - ldrh r2, [r2] - str r2, [sp, 0x18] -_0804BBEE: - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r4, [r0, 0x1] - str r4, [sp, 0x10] - ldrb r0, [r0, 0x2] - str r0, [sp, 0x14] - ldr r1, =gBattleMons - ldr r0, =gUnknown_0202420B - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, r0, r1 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _0804BC34 - ldr r1, =gUnknown_02024404 - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x7] - b _0804BC3E - .pool -_0804BC34: - ldrh r0, [r1, 0x2E] - bl itemid_get_x12 - lsls r0, 24 - lsrs r0, 24 -_0804BC3E: - str r0, [sp, 0x8] - ldr r1, =gUnknown_0202449C - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - lsls r0, 1 - adds r0, 0xC8 - ldr r1, [r1] - adds r0, r1, r0 - str r0, [sp, 0xC] - ldrb r0, [r1, 0x13] - cmp r0, 0 - beq _0804BCF0 - movs r5, 0x3F - ands r5, r0 - str r5, [sp, 0x4] - b _0804BD02 - .pool -_0804BC68: - ldr r4, =gUnknown_02024064 - strb r2, [r4] - movs r0, 0 - movs r1, 0x1 - bl dp01_build_cmdbuf_x33_a_33_33 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _0804C15A - .pool -_0804BC80: - ldr r4, =gUnknown_02024064 - strb r2, [r4] - movs r0, 0 - movs r1, 0 - bl dp01_build_cmdbuf_x33_a_33_33 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldrb r1, [r6] - lsls r1, 2 - adds r1, r5 - ldr r0, [r1] - ldr r2, =0xfffbff3f - ands r0, r2 - str r0, [r1] - b _0804C15A - .pool -_0804BCAC: - strb r2, [r7] - ldr r0, [r5] - orrs r0, r6 - str r0, [r5] - ldr r0, =gUnknown_02024474 - strb r4, [r0, 0x14] - bl sub_804AF30 - ldr r2, =gUnknown_082D86A8 - mov r0, r8 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - add r0, r9 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - bl b_movescr_stack_push - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DB87D - bl _0804C5B8 - .pool -_0804BCF0: - ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x2] - str r0, [sp, 0x4] -_0804BD02: - ldr r1, =gUnknown_02024474 - mov r12, r1 - b _0804BD1E - .pool -_0804BD14: - mov r2, r10 - cmp r2, 0 - beq _0804BD1E - bl _0804C5A4 -_0804BD1E: - mov r3, r12 - ldrb r0, [r3, 0x14] - cmp r0, 0x11 - bls _0804BD2A - bl _0804C570 -_0804BD2A: - lsls r0, 2 - ldr r1, =_0804BD38 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0804BD38: - .4byte _0804BD80 - .4byte _0804BE5C - .4byte _0804BF18 - .4byte _0804BF3C - .4byte _0804BF54 - .4byte _0804BF7C - .4byte _0804BFA0 - .4byte _0804C048 - .4byte _0804C0BE - .4byte _0804C0F4 - .4byte _0804C194 - .4byte _0804C088 - .4byte _0804C0A8 - .4byte _0804C1D8 - .4byte _0804C21C - .4byte _0804C3FC - .4byte _0804C4E4 - .4byte _0804C570 -_0804BD80: - ldr r6, =gBattleMons - ldr r5, =gEnemyMonIndex - ldrb r3, [r5] - movs r7, 0x58 - adds r2, r3, 0 - muls r2, r7 - adds r0, r6, 0 - adds r0, 0x50 - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 16 - ands r0, r1 - cmp r0, 0 - bne _0804BDA0 - b _0804C184 -_0804BDA0: - adds r0, r2, r6 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _0804BDAA - b _0804C184 -_0804BDAA: - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - cmp r1, r3 - bne _0804BDB4 - b _0804C184 -_0804BDB4: - adds r0, r1, 0 - bl battle_side_get_owner - adds r4, r0, 0 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _0804BDCC - b _0804C184 -_0804BDCC: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _0804BDDA - b _0804C184 -_0804BDDA: - ldr r2, =gUnknown_0202437C - ldrb r3, [r5] - lsls r0, r3, 2 - adds r0, r3 - lsls r1, r0, 2 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _0804BDFE - adds r0, r2, 0 - adds r0, 0xC - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _0804BDFE - b _0804C184 -_0804BDFE: - ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _0804BE14 - b _0804C184 -_0804BE14: - adds r0, r3, 0 - muls r0, r7 - adds r1, r0, r6 - ldrb r2, [r1, 0x19] - movs r0, 0x19 - ldrsb r0, [r1, r0] - cmp r0, 0xB - ble _0804BE26 - b _0804C184 -_0804BE26: - adds r0, r2, 0x1 - strb r0, [r1, 0x19] - bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DAE0D - str r0, [r1] - b _0804C0B8 - .pool -_0804BE5C: - ldr r4, =gBattleMons - ldr r6, =gEnemyMonIndex - ldrb r2, [r6] - movs r5, 0x58 - mov r12, r5 - mov r1, r12 - muls r1, r2 - adds r7, r4, 0 - adds r7, 0x4C - adds r5, r1, r7 - ldr r3, [r5] - movs r0, 0x20 - ands r0, r3 - cmp r0, 0 - bne _0804BE7C - b _0804C184 -_0804BE7C: - adds r0, r1, r4 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _0804BE86 - b _0804C184 -_0804BE86: - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - cmp r0, r2 - bne _0804BE90 - b _0804C184 -_0804BE90: - ldr r0, =gUnknown_0202437C - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 2 - adds r0, 0xC - adds r1, r0 - ldr r0, [r1] - cmp r0, 0 - bne _0804BEA4 - b _0804C184 -_0804BEA4: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _0804BEB2 - b _0804C184 -_0804BEB2: - ldr r0, [sp, 0x4] - cmp r0, 0xA - beq _0804BEBA - b _0804C184 -_0804BEBA: - movs r0, 0x21 - negs r0, r0 - ands r3, r0 - str r3, [r5] - ldr r4, =gUnknown_02024064 - ldrb r0, [r6] - strb r0, [r4] - ldrb r0, [r6] - mov r1, r12 - muls r1, r0 - adds r0, r1, 0 - adds r0, r7 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DB282 - str r0, [r1] - movs r2, 0x1 - mov r10, r2 - b _0804C184 - .pool -_0804BF18: - ldr r0, =gEnemyMonIndex - ldrb r1, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x7 - movs r2, 0 - movs r3, 0 - bl ability_something - lsls r0, 24 - cmp r0, 0 - bne _0804BF32 - b _0804C184 -_0804BF32: - movs r3, 0x1 - mov r10, r3 - b _0804C184 - .pool -_0804BF3C: - ldr r0, =gEnemyMonIndex - ldrb r1, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x4 - movs r2, 0 - movs r3, 0 - bl ability_something - b _0804C0B2 - .pool -_0804BF54: - movs r0, 0 - str r0, [sp] - movs r0, 0x5 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl ability_something - lsls r0, 24 - cmp r0, 0 - bne _0804BF6C - b _0804C184 -_0804BF6C: - movs r5, 0x1 - mov r10, r5 - ldr r0, =gUnknown_02024474 - mov r12, r0 - b _0804C570 - .pool -_0804BF7C: - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x8 - movs r2, 0 - movs r3, 0 - bl ability_something - lsls r0, 24 - cmp r0, 0 - bne _0804BF96 - b _0804C184 -_0804BF96: - movs r1, 0x1 - mov r10, r1 - b _0804C184 - .pool -_0804BFA0: - ldr r0, =gUnknown_02024280 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 18 - ands r0, r1 - cmp r0, 0 - beq _0804BFE4 - ldr r2, [sp, 0x8] - cmp r2, 0x1D - bne _0804BFE4 - ldr r0, =gUnknown_020241EC - ldrh r2, [r0] - adds r3, r0, 0 - cmp r2, 0xA5 - beq _0804BFE4 - ldr r4, [sp, 0xC] - ldrh r1, [r4] - cmp r1, 0 - beq _0804BFCC - ldr r0, =0x0000ffff - cmp r1, r0 - bne _0804BFE4 -_0804BFCC: - cmp r2, 0xE2 - bne _0804BFDE - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _0804BFDE - b _0804C4B6 -_0804BFDE: - ldrh r0, [r3] - ldr r1, [sp, 0xC] - strh r0, [r1] -_0804BFE4: - movs r4, 0 - ldr r2, =gBattleMons - ldr r3, =gUnknown_0202420B - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - adds r2, 0xC - adds r0, r2 - ldrh r0, [r0] - ldr r5, [sp, 0xC] - ldrh r1, [r5] - mov r9, r3 - cmp r0, r1 - beq _0804C01C - mov r6, r9 - movs r3, 0x58 - adds r5, r1, 0 -_0804C006: - adds r4, 0x1 - cmp r4, 0x3 - bgt _0804C01C - lsls r0, r4, 1 - ldrb r1, [r6] - muls r1, r3 - adds r0, r1 - adds r0, r2 - ldrh r0, [r0] - cmp r0, r5 - bne _0804C006 -_0804C01C: - cmp r4, 0x4 - bne _0804C026 - movs r0, 0 - ldr r1, [sp, 0xC] - strh r0, [r1] -_0804C026: - mov r2, r12 - ldrb r0, [r2, 0x14] - adds r0, 0x1 - strb r0, [r2, 0x14] - b _0804C570 - .pool -_0804C048: - movs r4, 0 - ldr r0, =gUnknown_0202406C - ldrb r3, [r0] - cmp r4, r3 - blt _0804C054 - b _0804C202 -_0804C054: - ldr r7, =gUnknown_0202449C - movs r6, 0 - movs r3, 0xD0 - adds r5, r0, 0 - ldr r2, =gBattleMons -_0804C05E: - ldr r0, [r7] - adds r0, r3 - ldrh r1, [r0] - cmp r1, 0 - beq _0804C06C - strh r1, [r2, 0x2E] - strh r6, [r0] -_0804C06C: - adds r3, 0x2 - adds r2, 0x58 - adds r4, 0x1 - ldrb r0, [r5] - cmp r4, r0 - blt _0804C05E - b _0804C202 - .pool -_0804C088: - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl berry_effects_maybe - lsls r0, 24 - cmp r0, 0 - beq _0804C184 - movs r2, 0x1 - mov r10, r2 - ldr r3, =gUnknown_02024474 - mov r12, r3 - b _0804C570 - .pool -_0804C0A8: - movs r0, 0x4 - movs r1, 0 - movs r2, 0 - bl berry_effects_maybe -_0804C0B2: - lsls r0, 24 - cmp r0, 0 - beq _0804C184 -_0804C0B8: - movs r4, 0x1 - mov r10, r4 - b _0804C184 -_0804C0BE: - ldr r1, =gUnknown_020242AC - ldr r0, =gUnknown_0202420B - ldrb r2, [r0] - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =0x000400c0 - ands r0, r1 - cmp r0, 0 - bne _0804C0D4 - b _0804C4B6 -_0804C0D4: - ldr r0, =gUnknown_02024280 - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804C0E2 - b _0804BC68 -_0804C0E2: - b _0804C4B6 - .pool -_0804C0F4: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _0804C120 - ldr r1, =gUnknown_020242AC - ldr r0, =gUnknown_0202420B - ldrb r2, [r0] - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =0x000400c0 - ands r0, r1 - cmp r0, 0 - beq _0804C120 - adds r0, r2, 0 - bl sub_803F90C - lsls r0, 24 - cmp r0, 0 - beq _0804C184 -_0804C120: - ldr r4, =gUnknown_02024064 - ldr r5, =gUnknown_0202420B - ldrb r0, [r5] - strb r0, [r4] - movs r0, 0 - movs r1, 0 - bl dp01_build_cmdbuf_x33_a_33_33 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, =gUnknown_020242AC - ldrb r2, [r5] - lsls r2, 2 - adds r2, r0 - ldr r0, [r2] - ldr r1, =0xfffbff3f - ands r0, r1 - str r0, [r2] - ldr r2, =gUnknown_0202437C - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_0804C15A: - ldr r1, =gUnknown_02024474 - ldrb r0, [r1, 0x14] - adds r0, 0x1 - strb r0, [r1, 0x14] - b _0804C5BA - .pool -_0804C184: - ldr r1, =gUnknown_02024474 - ldrb r0, [r1, 0x14] - adds r0, 0x1 - strb r0, [r1, 0x14] - mov r12, r1 - b _0804C570 - .pool -_0804C194: - ldr r0, =gUnknown_0202437C - ldr r6, =gEnemyMonIndex - ldrb r2, [r6] - lsls r3, r2, 2 - adds r1, r3, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 29 - cmp r0, 0 - blt _0804C202 - ldr r0, =gUnknown_0202406C - ldrb r0, [r0] - cmp r2, r0 - bcs _0804C202 - ldr r5, =gUnknown_020242AC - adds r0, r3, r5 - ldr r0, [r0] - ldr r1, =0x000400c0 - ands r0, r1 - cmp r0, 0 - bne _0804C1C2 - b _0804BC80 -_0804C1C2: - b _0804C202 - .pool -_0804C1D8: - movs r4, 0 - ldr r0, =gUnknown_0202406C - ldrb r2, [r0] - cmp r4, r2 - bge _0804C202 - ldr r2, =gUnknown_020242BC - ldr r5, =0xfeffffff - adds r3, r0, 0 - ldr r1, =gUnknown_020240D4 -_0804C1EA: - ldrb r0, [r2, 0xA] - cmp r0, 0 - bne _0804C1F6 - ldr r0, [r1] - ands r0, r5 - str r0, [r1] -_0804C1F6: - adds r2, 0x1C - adds r1, 0x58 - adds r4, 0x1 - ldrb r0, [r3] - cmp r4, r0 - blt _0804C1EA -_0804C202: - mov r1, r12 - ldrb r0, [r1, 0x14] - adds r0, 0x1 - strb r0, [r1, 0x14] - b _0804C570 - .pool -_0804C21C: - ldr r1, =gUnknown_02024280 - ldr r3, [r1] - movs r0, 0x80 - lsls r0, 5 - ands r0, r3 - ldr r2, =gUnknown_0202420B - mov r9, r2 - adds r5, r1, 0 - cmp r0, 0 - beq _0804C246 - ldr r0, =gUnknown_02024064 - ldrb r2, [r2] - strb r2, [r0] - ldr r1, =gEnemyMonIndex - ldrb r0, [r1] - mov r4, r9 - strb r0, [r4] - strb r2, [r1] - ldr r0, =0xffffefff - ands r3, r0 - str r3, [r5] -_0804C246: - ldr r0, [r5] - movs r1, 0x80 - lsls r1, 3 - ands r0, r1 - cmp r0, 0 - beq _0804C262 - ldr r0, =gUnknown_02024240 - mov r2, r9 - ldrb r1, [r2] - lsls r1, 1 - adds r1, r0 - ldr r0, =gUnknown_020241EC - ldrh r0, [r0] - strh r0, [r1] -_0804C262: - ldr r0, =gUnknown_02024210 - ldrb r1, [r0] - ldr r2, =gBitTable - mov r3, r9 - ldrb r4, [r3] - lsls r0, r4, 2 - adds r0, r2 - ldr r3, [r0] - ands r1, r3 - adds r6, r2, 0 - cmp r1, 0 - beq _0804C27C - b _0804C3E8 -_0804C27C: - ldr r0, =gUnknown_0202449C - ldr r1, [r0] - adds r1, 0x91 - ldrb r1, [r1] - ands r1, r3 - adds r7, r0, 0 - cmp r1, 0 - beq _0804C28E - b _0804C3E8 -_0804C28E: - ldr r0, =gBattleMoves - ldr r2, [sp, 0x18] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r1, [r1] - mov r8, r0 - cmp r1, 0x7F - bne _0804C2A4 - b _0804C3E8 -_0804C2A4: - ldr r0, [r5] - movs r1, 0x80 - lsls r1, 18 - ands r0, r1 - cmp r0, 0 - beq _0804C308 - ldr r0, =gUnknown_02024248 - lsls r1, r4, 1 - adds r1, r0 - ldr r0, =gUnknown_020241EC - ldrh r0, [r0] - strh r0, [r1] - ldr r0, =gUnknown_02024260 - mov r3, r9 - ldrb r1, [r3] - lsls r1, 1 - adds r1, r0 - ldr r0, =gUnknown_020241EA - ldrh r0, [r0] - strh r0, [r1] - b _0804C322 - .pool -_0804C308: - ldr r1, =gUnknown_02024248 - lsls r0, r4, 1 - adds r0, r1 - ldr r1, =0x0000ffff - strh r1, [r0] - ldr r1, =gUnknown_02024260 - mov r4, r9 - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - movs r1, 0x1 - negs r1, r1 - strh r1, [r0] -_0804C322: - ldr r2, =gEnemyMonIndex - ldrb r3, [r2] - lsls r0, r3, 2 - adds r0, r6 - ldr r0, [r0] - lsls r0, 28 - ldr r1, [r5] - ands r1, r0 - cmp r1, 0 - bne _0804C340 - ldr r0, =gUnknown_02024270 - adds r0, r3, r0 - mov r3, r9 - ldrb r1, [r3] - strb r1, [r0] -_0804C340: - ldr r0, [r5] - movs r1, 0x80 - lsls r1, 18 - ands r0, r1 - cmp r0, 0 - beq _0804C3DC - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _0804C3DC - ldr r0, =gUnknown_020241EC - ldrh r3, [r0] - ldr r0, =0x0000ffff - cmp r3, r0 - bne _0804C390 - ldr r1, =gUnknown_02024250 - ldrb r0, [r2] - lsls r0, 1 - adds r0, r1 - strh r3, [r0] - b _0804C3E8 - .pool -_0804C390: - ldr r0, =gUnknown_02024250 - ldrb r1, [r2] - lsls r1, 1 - adds r1, r0 - ldr r4, =gUnknown_020241EA - ldrh r0, [r4] - strh r0, [r1] - ldr r0, [r7] - ldrb r3, [r0, 0x13] - cmp r3, 0 - beq _0804C3C0 - ldr r0, =gUnknown_02024258 - ldrb r1, [r2] - lsls r1, 1 - adds r1, r0 - movs r0, 0x3F - ands r0, r3 - b _0804C3E6 - .pool -_0804C3C0: - ldr r0, =gUnknown_02024258 - ldrb r2, [r2] - lsls r2, 1 - adds r2, r0 - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - add r0, r8 - ldrb r0, [r0, 0x2] - strh r0, [r2] - b _0804C3E8 - .pool -_0804C3DC: - ldr r0, =gUnknown_02024250 - ldrb r1, [r2] - lsls r1, 1 - adds r1, r0 - ldr r0, =0x0000ffff -_0804C3E6: - strh r0, [r1] -_0804C3E8: - mov r4, r12 - ldrb r0, [r4, 0x14] - adds r0, 0x1 - strb r0, [r4, 0x14] - b _0804C570 - .pool -_0804C3FC: - ldr r0, =gUnknown_02024210 - ldrb r1, [r0] - ldr r7, =gBitTable - ldr r2, =gUnknown_0202420B - ldrb r3, [r2] - lsls r0, r3, 2 - adds r0, r7 - ldr r4, [r0] - ands r1, r4 - mov r9, r2 - cmp r1, 0 - bne _0804C4B6 - ldr r6, =gUnknown_0202449C - ldr r5, [r6] - adds r0, r5, 0 - adds r0, 0x91 - ldrb r0, [r0] - ands r0, r4 - cmp r0, 0 - bne _0804C4B6 - ldr r1, =gBattleMoves - ldr r2, [sp, 0x18] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x8] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0804C4B6 - ldr r0, =gUnknown_02024280 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 18 - ands r0, r1 - cmp r0, 0 - beq _0804C4B6 - ldr r4, =gEnemyMonIndex - ldrb r0, [r4] - cmp r3, r0 - beq _0804C4B6 - ldrb r2, [r4] - lsls r0, r2, 2 - adds r0, r7 - ldr r0, [r0] - lsls r0, 28 - ands r1, r0 - cmp r1, 0 - bne _0804C4B6 - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _0804C4B6 - lsls r1, r2, 1 - adds r1, r5 - adds r1, 0x98 - ldr r3, =gUnknown_020241EC - ldrh r0, [r3] - strb r0, [r1] - ldrb r1, [r4] - ldr r0, [r6] - lsls r1, 1 - adds r1, r0 - adds r1, 0x99 - ldrh r0, [r3] - lsrs r0, 8 - strb r0, [r1] - ldrb r0, [r4] - mov r2, r9 - ldrb r1, [r2] - ldr r2, [r6] - lsls r0, 3 - lsls r1, 1 - adds r0, r1 - adds r0, r2 - adds r0, 0xE0 - ldrh r1, [r3] - strb r1, [r0] - ldrb r1, [r4] - mov r4, r9 - ldrb r0, [r4] - ldr r2, [r6] - lsls r1, 3 - lsls r0, 1 - adds r1, r0 - adds r1, r2 - adds r1, 0xE1 - ldrh r0, [r3] - lsrs r0, 8 - strb r0, [r1] -_0804C4B6: - mov r5, r12 - ldrb r0, [r5, 0x14] - adds r0, 0x1 - strb r0, [r5, 0x14] - b _0804C570 - .pool -_0804C4E4: - ldr r5, =gUnknown_02024280 - ldr r2, [r5] - movs r0, 0x80 - lsls r0, 12 - ands r0, r2 - cmp r0, 0 - bne _0804C568 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0804C568 - ldr r1, =gUnknown_0202433C - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x1] - lsls r0, 29 - cmp r0, 0 - blt _0804C568 - ldr r0, =gBattleMoves - mov r9, r0 - ldr r1, =gUnknown_020241EA - mov r8, r1 - ldrh r0, [r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - add r1, r9 - ldrb r0, [r1, 0x6] - cmp r0, 0x8 - bne _0804C568 - movs r6, 0x80 - lsls r6, 2 - adds r4, r6, 0 - ands r4, r2 - cmp r4, 0 - bne _0804C568 - ldr r7, =gEnemyMonIndex - ldrb r0, [r7] - bl battle_get_per_side_status - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _0804C55E - bl _0804BCAC -_0804C55E: - ldr r0, [r5] - orrs r0, r6 - str r0, [r5] - ldr r2, =gUnknown_02024474 - mov r12, r2 -_0804C568: - mov r3, r12 - ldrb r0, [r3, 0x14] - adds r0, 0x1 - strb r0, [r3, 0x14] -_0804C570: - ldr r4, [sp, 0x10] - cmp r4, 0x1 - bne _0804C582 - mov r5, r10 - cmp r5, 0 - bne _0804C582 - movs r0, 0x11 - mov r1, r12 - strb r0, [r1, 0x14] -_0804C582: - ldr r2, [sp, 0x10] - cmp r2, 0x2 - bne _0804C598 - ldr r4, [sp, 0x14] - mov r3, r12 - ldrb r3, [r3, 0x14] - cmp r4, r3 - bne _0804C598 - movs r0, 0x11 - mov r4, r12 - strb r0, [r4, 0x14] -_0804C598: - mov r5, r12 - ldrb r0, [r5, 0x14] - cmp r0, 0x11 - beq _0804C5A4 - bl _0804BD14 -_0804C5A4: - mov r1, r12 - ldrb r0, [r1, 0x14] - cmp r0, 0x11 - bne _0804C5BA - mov r2, r10 - cmp r2, 0 - bne _0804C5BA - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x3 -_0804C5B8: - str r0, [r1] -_0804C5BA: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_804BBCC - - thumb_func_start atk4A_damagecalc2 -atk4A_damagecalc2: @ 804C5F4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r4, 0 - movs r5, 0 - ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x2] - mov r8, r0 - ldr r2, =gBattleMons - ldr r3, =gEnemyMonIndex - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - mov r12, r2 - adds r7, r3, 0 - cmp r0, 0x1A - bne _0804C688 - mov r1, r8 - cmp r1, 0x4 - bne _0804C688 - ldr r3, =gUnknown_0202420A - strb r0, [r3] - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x9 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_02024250 - ldrb r0, [r7] - lsls r0, 1 - adds r0, r1 - strh r4, [r0] - ldr r0, =gUnknown_02024332 - mov r2, r8 - strb r2, [r0, 0x6] - ldrb r0, [r7] - ldrb r1, [r3] - bl b_history__record_ability_usage_of_player - b _0804C76A - .pool -_0804C678: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0] - b _0804C76A - .pool -_0804C688: - ldr r1, =gUnknown_0831ACE8 - adds r0, r5, r1 - ldrb r0, [r0] - adds r6, r1, 0 - b _0804C74A - .pool -_0804C698: - adds r0, r5, r6 - ldrb r0, [r0] - cmp r0, r8 - bne _0804C744 - adds r2, r5, 0x1 - adds r3, r2, r6 - ldrb r1, [r7] - movs r0, 0x58 - muls r0, r1 - add r0, r12 - adds r0, 0x21 - ldrb r1, [r3] - adds r3, r2, 0 - ldrb r0, [r0] - cmp r1, r0 - bne _0804C6D6 - adds r0, r5, 0x2 - adds r0, r6 - ldrb r1, [r0] - cmp r1, 0 - beq _0804C678 - cmp r1, 0x5 - bne _0804C6CA - movs r0, 0x4 - orrs r4, r0 -_0804C6CA: - cmp r1, 0x14 - bne _0804C6D6 - movs r0, 0x2 - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_0804C6D6: - adds r2, r3, r6 - ldrb r1, [r7] - movs r0, 0x58 - muls r0, r1 - add r0, r12 - adds r1, r0, 0 - adds r1, 0x22 - ldrb r2, [r2] - ldrb r1, [r1] - cmp r2, r1 - bne _0804C744 - adds r0, 0x21 - ldrb r1, [r0] - cmp r1, r2 - beq _0804C6FE - adds r0, r5, 0x2 - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0 - beq _0804C678 -_0804C6FE: - cmp r1, r2 - beq _0804C714 - adds r0, r5, 0x2 - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0x5 - bne _0804C714 - movs r0, 0x4 - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_0804C714: - adds r2, r3, r6 - ldrb r1, [r7] - movs r0, 0x58 - muls r0, r1 - add r0, r12 - adds r1, r0, 0 - adds r1, 0x22 - ldrb r2, [r2] - ldrb r1, [r1] - cmp r2, r1 - bne _0804C744 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, r2 - beq _0804C744 - adds r0, r5, 0x2 - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0x14 - bne _0804C744 - movs r0, 0x2 - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_0804C744: - adds r5, 0x3 - adds r0, r5, r6 - ldrb r0, [r0] -_0804C74A: - cmp r0, 0xFF - beq _0804C76A - cmp r0, 0xFE - bne _0804C698 - ldrb r1, [r7] - movs r0, 0x58 - muls r0, r1 - mov r1, r12 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 22 - ands r0, r1 - cmp r0, 0 - beq _0804C744 -_0804C76A: - ldr r2, =gBattleMons - ldr r0, =gEnemyMonIndex - mov r8, r0 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r6, [r0] - cmp r6, 0x19 - bne _0804C7E6 - movs r5, 0x29 - ands r5, r4 - cmp r5, 0 - bne _0804C7E6 - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - ldr r7, =gUnknown_020241EA - ldrh r1, [r7] - bl move_weather_interaction - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x2 - bne _0804C7E6 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _0804C7AC - movs r0, 0x6 - ands r4, r0 - cmp r4, 0x6 - bne _0804C7E6 -_0804C7AC: - ldr r2, =gBattleMoves - ldrh r1, [r7] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _0804C7E6 - ldr r3, =gUnknown_0202420A - strb r6, [r3] - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_02024250 - mov r2, r8 - ldrb r0, [r2] - lsls r0, 1 - adds r0, r1 - strh r5, [r0] - ldr r1, =gUnknown_02024332 - movs r0, 0x3 - strb r0, [r1, 0x6] - ldrb r0, [r2] - ldrb r1, [r3] - bl b_history__record_ability_usage_of_player -_0804C7E6: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0804C804 - ldr r2, =gUnknown_0202433C - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - lsls r1, 4 - adds r1, r2 - ldrb r0, [r1, 0x1] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r1, 0x1] -_0804C804: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk4A_damagecalc2 - - thumb_func_start atk4B_cmd4b -atk4B_cmd4b: @ 804C844 - push {r4,lr} - ldr r4, =gUnknown_02024064 - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - strb r0, [r4] - ldr r2, =gUnknown_02024280 - ldr r1, =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r2] - ands r0, r1 - cmp r0, 0 - bne _0804C872 - movs r0, 0 - movs r1, 0 - bl dp01_build_cmdbuf_x06_a - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_0804C872: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk4B_cmd4b - - thumb_func_start atk4C_switch1 -atk4C_switch1: @ 804C894 - push {r4,r5,lr} - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - bne _0804C8E4 - ldr r5, =gUnknown_02024214 - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r4, =gUnknown_02024064 - strb r0, [r4] - ldr r3, =gUnknown_0202406E - ldrb r0, [r4] - lsls r2, r0, 1 - adds r2, r3 - ldr r1, =gUnknown_0202449C - ldr r1, [r1] - adds r0, r1 - adds r0, 0x5C - ldrb r0, [r0] - strh r0, [r2] - ldr r1, =gBitTable - ldrb r0, [r4] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0] - movs r0, 0 - movs r1, 0 - bl dp01_build_cmdbuf_x00_a_b_0 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] -_0804C8E4: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk4C_switch1 - - thumb_func_start sub_804C904 -sub_804C904: @ 804C904 - push {r4-r7,lr} - sub sp, 0x58 - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - beq _0804C912 - b _0804CAA4 -_0804C912: - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r4, =gUnknown_02024064 - strb r0, [r4] - ldr r6, =gBattleMons - ldrb r0, [r4] - movs r5, 0x58 - adds r1, r0, 0 - muls r1, r5 - adds r1, r6 - mov r0, sp - movs r2, 0x58 - bl memcpy - ldrb r0, [r4] - muls r0, r5 - adds r3, r0, r6 - movs r2, 0 - ldr r5, =gUnknown_02023864 -_0804C93E: - adds r0, r3, r2 - ldrb r1, [r4] - lsls r1, 9 - adds r1, 0x4 - adds r1, r2, r1 - adds r1, r5 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x57 - bls _0804C93E - ldr r4, =gBattleMons - ldr r6, =gUnknown_02024064 - ldrb r0, [r6] - movs r7, 0x58 - adds r2, r0, 0 - muls r2, r7 - adds r2, r4 - ldr r3, =gBaseStats - ldrh r1, [r2] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x6] - adds r2, 0x21 - strb r0, [r2] - ldrb r0, [r6] - adds r1, r0, 0 - muls r1, r7 - adds r1, r4 - ldrh r2, [r1] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x7] - adds r1, 0x22 - strb r0, [r1] - ldrb r0, [r6] - adds r1, r0, 0 - muls r1, r7 - adds r1, r4 - ldrh r0, [r1] - ldrb r1, [r1, 0x17] - lsrs r1, 7 - bl sub_806B694 - ldrb r1, [r6] - muls r1, r7 - adds r1, r4 - adds r1, 0x20 - strb r0, [r1] - ldrb r0, [r6] - bl battle_side_get_owner - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gUnknown_020243D0 - adds r0, 0x29 - adds r0, r2, r0 - ldrb r1, [r0] - ldr r3, =gBitTable - ldr r2, =gUnknown_0202406E - ldrb r5, [r6] - lsls r0, r5, 1 - adds r0, r2 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - ands r1, r0 - mov r12, r4 - cmp r1, 0 - beq _0804C9DE - adds r0, r5, 0 - muls r0, r7 - add r0, r12 - movs r1, 0 - strh r1, [r0, 0x2E] -_0804C9DE: - ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x7F - bne _0804CA26 - movs r2, 0 - adds r4, r6, 0 - movs r6, 0x58 - mov r5, r12 - adds r5, 0x18 - add r3, sp, 0x18 -_0804C9FE: - ldrb r0, [r4] - adds r1, r0, 0 - muls r1, r6 - adds r1, r2, r1 - adds r1, r5 - adds r0, r3, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r2, 0x1 - cmp r2, 0x7 - ble _0804C9FE - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - mov r1, r12 - adds r1, 0x50 - adds r0, r1 - ldr r1, [sp, 0x50] - str r1, [r0] -_0804CA26: - bl sub_803A284 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 10 - ands r0, r1 - cmp r0, 0 - beq _0804CA78 - ldr r4, =gBattleMons - ldr r0, =gUnknown_02024064 - ldrb r3, [r0] - movs r0, 0x58 - adds r2, r3, 0 - muls r2, r0 - adds r1, r2, r4 - ldrh r0, [r1, 0x2C] - lsrs r0, 1 - ldrh r1, [r1, 0x28] - cmp r0, r1 - bcc _0804CA78 - cmp r1, 0 - beq _0804CA78 - adds r0, r4, 0 - adds r0, 0x4C - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0804CA78 - ldr r0, =gUnknown_0202449C - ldr r2, [r0] - adds r2, 0x92 - ldr r1, =gBitTable - lsls r0, r3, 2 - adds r0, r1 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] -_0804CA78: - ldr r0, =gUnknown_02024474 - ldr r3, =gUnknown_02024064 - ldrb r2, [r3] - strb r2, [r0, 0x17] - ldr r1, =gUnknown_02022F58 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x7 - strb r0, [r1, 0x1] - strb r2, [r1, 0x2] - ldr r2, =gUnknown_0202406E - ldrb r0, [r3] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] -_0804CAA4: - add sp, 0x58 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_804C904 - - thumb_func_start atk4E_switch3 -atk4E_switch3: @ 804CAE8 - push {r4-r6,lr} - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - bne _0804CB86 - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r6, =gUnknown_02024064 - strb r0, [r6] - ldrb r0, [r6] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0804CB3E - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ldr r1, =0x063f0902 - ands r0, r1 - cmp r0, 0 - bne _0804CB3E - ldr r4, =gBattleMons - ldrb r0, [r6] - movs r5, 0x58 - muls r0, r5 - adds r0, r4 - ldrh r0, [r0] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - ldrb r1, [r6] - muls r1, r5 - adds r4, 0x48 - adds r1, r4 - ldr r2, [r1] - movs r1, 0x2 - bl SetPokedexFlag -_0804CB3E: - ldr r2, =gUnknown_02024210 - ldr r1, =gBitTable - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_0202406E - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrb r1, [r0] - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - ldrb r2, [r0, 0x2] - movs r0, 0 - bl dp01_build_cmdbuf_x05_a_b_c - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r4] - adds r0, 0x3 - str r0, [r4] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 11 - ands r0, r1 - cmp r0, 0 - beq _0804CB86 - bl sub_81A56B4 -_0804CB86: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atk4E_switch3 - - thumb_func_start atk4F_jumpifcannotswitch -atk4F_jumpifcannotswitch: @ 804CBB0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - ldrb r1, [r0, 0x1] - movs r0, 0x7F - ands r0, r1 - bl get_battle_side_of_something - ldr r3, =gUnknown_02024064 - strb r0, [r3] - ldr r2, [r4] - ldrb r1, [r2, 0x1] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0804CC28 - ldr r1, =gBattleMons - ldrb r3, [r3] - movs r0, 0x58 - muls r0, r3 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - ldr r1, =0x0400e000 - ands r0, r1 - cmp r0, 0 - bne _0804CBFC - ldr r1, =gUnknown_020242AC - lsls r0, r3, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 3 - ands r0, r1 - cmp r0, 0 - beq _0804CC28 -_0804CBFC: - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _0804CF00 - .pool -_0804CC28: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 15 - ands r0, r1 - cmp r0, 0 - beq _0804CCC0 - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gPlayerParty - mov r8, r1 - cmp r0, 0x1 - bne _0804CC4E - ldr r0, =gEnemyParty - mov r8, r0 -_0804CC4E: - movs r4, 0 - ldrb r1, [r5] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0804CC5C - movs r4, 0x3 -_0804CC5C: - adds r6, r4, 0x3 - cmp r4, r6 - bge _0804CCA4 - ldr r7, =gUnknown_0202406E -_0804CC64: - movs r0, 0x64 - muls r0, r4 - mov r1, r8 - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0804CC9E - adds r0, r5, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0804CC9E - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0804CC9E - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - cmp r0, r4 - bne _0804CCA4 -_0804CC9E: - adds r4, 0x1 - cmp r4, r6 - blt _0804CC64 -_0804CCA4: - cmp r4, r6 - bne _0804CCAA - b _0804CED0 -_0804CCAA: - b _0804CEF8 - .pool -_0804CCC0: - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0804CD8C - movs r0, 0x80 - lsls r0, 16 - ands r1, r0 - cmp r1, 0 - beq _0804CD00 - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0804CCEC - ldr r0, =gPlayerParty - b _0804CD16 - .pool -_0804CCEC: - ldr r1, =gEnemyParty - mov r8, r1 - ldrb r0, [r5] - movs r4, 0x3 - cmp r0, 0x1 - bne _0804CD32 - movs r4, 0 - b _0804CD32 - .pool -_0804CD00: - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gPlayerParty - mov r8, r1 - cmp r0, 0x1 - bne _0804CD18 - ldr r0, =gEnemyParty -_0804CD16: - mov r8, r0 -_0804CD18: - movs r4, 0 - ldrb r0, [r5] - bl sub_806D864 - lsls r0, 24 - lsrs r0, 24 - bl sub_806D82C - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bne _0804CD32 - movs r4, 0x3 -_0804CD32: - adds r6, r4, 0x3 - cmp r4, r6 - bge _0804CCA4 - ldr r7, =gUnknown_0202406E -_0804CD3A: - movs r0, 0x64 - muls r0, r4 - mov r1, r8 - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0804CD74 - adds r0, r5, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0804CD74 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0804CD74 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - cmp r0, r4 - bne _0804CCA4 -_0804CD74: - adds r4, 0x1 - cmp r4, r6 - blt _0804CD3A - b _0804CCA4 - .pool -_0804CD8C: - movs r0, 0x80 - lsls r0, 8 - ands r1, r0 - cmp r1, 0 - beq _0804CE10 - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0804CE10 - ldr r0, =gEnemyParty - mov r8, r0 - movs r4, 0 - ldrb r0, [r5] - cmp r0, 0x3 - bne _0804CDB4 - movs r4, 0x3 -_0804CDB4: - adds r6, r4, 0x3 - cmp r4, r6 - blt _0804CDBC - b _0804CCA4 -_0804CDBC: - ldr r7, =gUnknown_0202406E -_0804CDBE: - movs r0, 0x64 - muls r0, r4 - mov r1, r8 - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0804CDFA - adds r0, r5, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0804CDFA - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0804CDFA - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - cmp r0, r4 - beq _0804CDFA - b _0804CCA4 -_0804CDFA: - adds r4, 0x1 - cmp r4, r6 - blt _0804CDBE - b _0804CCA4 - .pool -_0804CE10: - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bne _0804CE54 - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ands r0, r4 - cmp r0, 0 - beq _0804CE48 - movs r0, 0x3 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r6, r0, 24 - b _0804CE4A - .pool -_0804CE48: - adds r6, r7, 0 -_0804CE4A: - ldr r0, =gEnemyParty - mov r8, r0 - b _0804CE82 - .pool -_0804CE54: - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0804CE7C - movs r0, 0x2 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r6, r0, 24 - b _0804CE7E - .pool -_0804CE7C: - adds r6, r7, 0 -_0804CE7E: - ldr r1, =gPlayerParty - mov r8, r1 -_0804CE82: - movs r4, 0 -_0804CE84: - movs r0, 0x64 - muls r0, r4 - mov r1, r8 - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0804CEC6 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0804CEC6 - adds r0, r5, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0804CEC6 - ldr r1, =gUnknown_0202406E - lsls r0, r7, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r4, r0 - beq _0804CEC6 - lsls r0, r6, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r4, r0 - bne _0804CECC -_0804CEC6: - adds r4, 0x1 - cmp r4, 0x5 - ble _0804CE84 -_0804CECC: - cmp r4, 0x6 - bne _0804CEF8 -_0804CED0: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0804CF00 - .pool -_0804CEF8: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x6 - str r0, [r1] -_0804CF00: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk4F_jumpifcannotswitch - - thumb_func_start sub_804CF10 -sub_804CF10: @ 804CF10 - push {r4,r5,lr} - sub sp, 0x4 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - ldr r4, =gUnknown_0202449C - ldr r1, [r4] - adds r1, r0, r1 - adds r1, 0x58 - ldr r3, =gUnknown_0202406E - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r5] - ldr r1, [r4] - adds r0, r1 - adds r0, 0x5C - movs r1, 0x6 - strb r1, [r0] - ldr r1, [r4] - adds r1, 0x93 - ldr r3, =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r3 - ldr r3, [r0] - ldrb r0, [r1] - bics r0, r3 - strb r0, [r1] - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r0 - adds r1, 0x60 - ldr r0, [r4] - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x1 - movs r3, 0 - bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_804CF10 - - thumb_func_start atk50_openpartyscreen -atk50_openpartyscreen: @ 804CF88 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - movs r7, 0 - movs r0, 0 - mov r9, r0 - ldr r6, =gUnknown_02024214 - ldr r2, [r6] - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - mov r8, r1 - ldrb r1, [r2, 0x1] - adds r0, r1, 0 - mov r12, r6 - cmp r0, 0x5 - beq _0804CFBE - b _0804D464 -_0804CFBE: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x41 - ands r1, r0 - cmp r1, 0x1 - beq _0804D0B0 - ldr r1, =gUnknown_02024064 - strb r7, [r1] - ldr r0, =gUnknown_0202406C - ldrb r0, [r0] - cmp r7, r0 - bcc _0804CFD8 - b _0804D450 -_0804CFD8: - ldr r7, =gUnknown_02024280 - ldr r6, =gBitTable - adds r4, r1, 0 - ldr r2, =gUnknown_02024210 - mov r8, r2 -_0804CFE2: - ldrb r2, [r4] - lsls r0, r2, 2 - adds r0, r6 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r7] - ands r0, r1 - cmp r0, 0 - beq _0804D088 - adds r0, r2, 0 - movs r1, 0x6 - movs r2, 0x6 - bl sub_80423F4 - lsls r0, 24 - cmp r0, 0 - beq _0804D054 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - mov r2, r8 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r7] - bics r0, r1 - str r0, [r7] - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - bl sub_8034464 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _0804D098 - .pool -_0804D054: - ldr r5, =gUnknown_0202437C - ldrb r0, [r4] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _0804D098 - movs r0, 0x6 - bl sub_804CF10 - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - b _0804D098 - .pool -_0804D088: - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - bl sub_8034464 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_0804D098: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, =gUnknown_0202406C - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _0804CFE2 - b _0804D450 - .pool -_0804D0B0: - ands r0, r1 - cmp r0, 0 - bne _0804D0B8 - b _0804D450 -_0804D0B8: - ldr r0, =gUnknown_02024280 - mov r8, r0 - ldr r0, [r0] - lsrs r5, r0, 28 - ldr r6, =gBitTable - ldr r0, [r6] - ands r0, r5 - cmp r0, 0 - beq _0804D170 - ldr r4, =gUnknown_02024064 - strb r7, [r4] - movs r0, 0 - movs r1, 0x6 - movs r2, 0x6 - bl sub_80423F4 - lsls r0, 24 - cmp r0, 0 - beq _0804D120 - ldr r2, =gUnknown_02024210 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r1, [r0] - lsls r1, 28 - mov r2, r8 - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - movs r0, 0 - bl dp01_build_cmdbuf_x2A_2A_2A_2A - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _0804D170 - .pool -_0804D120: - ldr r6, =gUnknown_0202437C - ldrb r0, [r4] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _0804D15C - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - adds r0, 0x5E - ldrb r0, [r0] - bl sub_804CF10 - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - b _0804D170 - .pool -_0804D15C: - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - bl sub_8034464 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - movs r0, 0x1 - mov r9, r0 -_0804D170: - ldr r6, =gBitTable - ldr r0, [r6, 0x8] - ands r0, r5 - cmp r0, 0 - beq _0804D22E - ldr r0, [r6] - ands r0, r5 - cmp r0, 0 - bne _0804D22E - ldr r4, =gUnknown_02024064 - movs r0, 0x2 - strb r0, [r4] - movs r0, 0x2 - movs r1, 0x6 - movs r2, 0x6 - bl sub_80423F4 - lsls r0, 24 - cmp r0, 0 - beq _0804D1D8 - ldr r2, =gUnknown_02024210 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r2, =gUnknown_02024280 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - movs r0, 0 - bl dp01_build_cmdbuf_x2A_2A_2A_2A - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _0804D22E - .pool -_0804D1D8: - ldr r6, =gUnknown_0202437C - ldrb r0, [r4] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _0804D214 - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - adds r0, 0x5C - ldrb r0, [r0] - bl sub_804CF10 - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - b _0804D22E - .pool -_0804D214: - movs r0, 0x1 - mov r1, r9 - ands r0, r1 - cmp r0, 0 - bne _0804D22E - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - bl sub_8034464 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_0804D22E: - ldr r6, =gBitTable - ldr r0, [r6, 0x4] - ands r0, r5 - cmp r0, 0 - beq _0804D2E4 - ldr r4, =gUnknown_02024064 - movs r0, 0x1 - strb r0, [r4] - movs r0, 0x1 - movs r1, 0x6 - movs r2, 0x6 - bl sub_80423F4 - lsls r0, 24 - cmp r0, 0 - beq _0804D290 - ldr r2, =gUnknown_02024210 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r2, =gUnknown_02024280 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - movs r0, 0 - bl dp01_build_cmdbuf_x2A_2A_2A_2A - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _0804D2E4 - .pool -_0804D290: - ldr r6, =gUnknown_0202437C - ldrb r0, [r4] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _0804D2CC - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - adds r0, 0x5F - ldrb r0, [r0] - bl sub_804CF10 - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - b _0804D2E4 - .pool -_0804D2CC: - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - bl sub_8034464 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - movs r0, 0x2 - mov r2, r9 - orrs r2, r0 - mov r9, r2 -_0804D2E4: - ldr r6, =gBitTable - ldr r0, [r6, 0xC] - ands r0, r5 - cmp r0, 0 - beq _0804D3A2 - ldr r0, [r6, 0x4] - ands r0, r5 - cmp r0, 0 - bne _0804D3A2 - ldr r4, =gUnknown_02024064 - movs r0, 0x3 - strb r0, [r4] - movs r0, 0x3 - movs r1, 0x6 - movs r2, 0x6 - bl sub_80423F4 - lsls r0, 24 - cmp r0, 0 - beq _0804D34C - ldr r2, =gUnknown_02024210 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r2, =gUnknown_02024280 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - movs r0, 0 - bl dp01_build_cmdbuf_x2A_2A_2A_2A - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _0804D3A2 - .pool -_0804D34C: - ldr r6, =gUnknown_0202437C - ldrb r0, [r4] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _0804D388 - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - adds r0, 0x5D - ldrb r0, [r0] - bl sub_804CF10 - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - b _0804D3A2 - .pool -_0804D388: - movs r0, 0x2 - mov r1, r9 - ands r1, r0 - cmp r1, 0 - bne _0804D3A2 - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - bl sub_8034464 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_0804D3A2: - ldr r1, =gUnknown_0202437C - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _0804D3FA - adds r0, r1, 0 - adds r0, 0x28 - ldrb r0, [r0] - lsls r0, 25 - cmp r0, 0 - blt _0804D3FA - cmp r5, 0 - beq _0804D3FA - ldr r0, =gUnknown_02024210 - ldrb r1, [r0] - ldr r0, =gBitTable - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _0804D3E4 - ldr r1, =gUnknown_02024064 - movs r0, 0x2 - strb r0, [r1] - b _0804D3E8 - .pool -_0804D3E4: - ldr r0, =gUnknown_02024064 - strb r1, [r0] -_0804D3E8: - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - bl sub_8034464 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution -_0804D3FA: - ldr r1, =gUnknown_0202437C - ldrb r0, [r1, 0x14] - lsls r0, 25 - cmp r0, 0 - blt _0804D450 - adds r0, r1, 0 - adds r0, 0x3C - ldrb r0, [r0] - lsls r0, 25 - cmp r0, 0 - blt _0804D450 - cmp r5, 0 - beq _0804D450 - ldr r0, =gUnknown_02024210 - ldrb r0, [r0] - ldr r1, =gBitTable - ldr r1, [r1, 0x4] - ands r0, r1 - cmp r0, 0 - beq _0804D438 - ldr r1, =gUnknown_02024064 - movs r0, 0x3 - b _0804D43C - .pool -_0804D438: - ldr r1, =gUnknown_02024064 - movs r0, 0x1 -_0804D43C: - strb r0, [r1] - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - bl sub_8034464 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution -_0804D450: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x6 - str r0, [r1] - b _0804D804 - .pool -_0804D464: - cmp r0, 0x6 - beq _0804D46A - b _0804D658 -_0804D46A: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0804D478 - b _0804D5F4 -_0804D478: - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - bne _0804D482 - b _0804D5F4 -_0804D482: - ldr r7, =gUnknown_02024280 - ldr r0, [r7] - lsrs r5, r0, 28 - ldr r4, =gBitTable - ldr r0, [r4, 0x8] - ands r0, r5 - cmp r0, 0 - beq _0804D52A - ldr r0, [r4] - ands r0, r5 - cmp r0, 0 - beq _0804D52A - ldr r6, =gUnknown_02024064 - movs r0, 0x2 - strb r0, [r6] - ldr r0, =gUnknown_02023864 - ldrb r1, [r0, 0x1] - movs r0, 0x2 - movs r2, 0x6 - bl sub_80423F4 - lsls r0, 24 - cmp r0, 0 - beq _0804D4F8 - ldr r2, =gUnknown_02024210 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r6] - lsls r0, 2 - adds r0, r4 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r7] - bics r0, r1 - str r0, [r7] - movs r0, 0 - bl dp01_build_cmdbuf_x2A_2A_2A_2A - ldrb r0, [r6] - bl dp01_battle_side_mark_buffer_for_execution - b _0804D52A - .pool -_0804D4F8: - ldr r4, =gUnknown_0202437C - ldrb r0, [r6] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _0804D52A - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - adds r0, 0x5C - ldrb r0, [r0] - bl sub_804CF10 - ldrb r1, [r6] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] -_0804D52A: - ldr r4, =gBitTable - ldr r0, [r4, 0xC] - ands r0, r5 - cmp r0, 0 - beq _0804D5DA - ldr r0, [r4, 0x4] - ands r5, r0 - cmp r5, 0 - beq _0804D5DA - ldr r5, =gUnknown_02024064 - movs r0, 0x3 - strb r0, [r5] - ldr r0, =gUnknown_02023864 - ldr r2, =0x00000201 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x3 - movs r2, 0x6 - bl sub_80423F4 - lsls r0, 24 - cmp r0, 0 - beq _0804D5A8 - ldr r2, =gUnknown_02024210 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r2, =gUnknown_02024280 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r4 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - movs r0, 0 - bl dp01_build_cmdbuf_x2A_2A_2A_2A - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - b _0804D5DA - .pool -_0804D5A8: - ldr r4, =gUnknown_0202437C - ldrb r0, [r5] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _0804D5DA - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - adds r0, 0x5D - ldrb r0, [r0] - bl sub_804CF10 - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] -_0804D5DA: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x6 - str r0, [r1] - mov r12, r1 - b _0804D5F8 - .pool -_0804D5F4: - adds r0, r2, 0x6 - str r0, [r6] -_0804D5F8: - ldr r0, =gUnknown_02024280 - ldr r0, [r0] - lsrs r5, r0, 28 - ldr r1, =gUnknown_0202420D - movs r0, 0 - strb r0, [r1] - ldr r4, =gBitTable - ldr r2, [r4] - ands r2, r5 - ldr r6, =gUnknown_0202406C - cmp r2, 0 - bne _0804D634 - adds r7, r6, 0 - ldrb r0, [r6] - cmp r2, r0 - bcs _0804D634 - adds r3, r1, 0 -_0804D61A: - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - ldrb r2, [r3] - lsls r0, r2, 2 - adds r0, r4 - ldr r0, [r0] - ands r0, r5 - cmp r0, 0 - bne _0804D634 - ldrb r0, [r7] - cmp r2, r0 - bcc _0804D61A -_0804D634: - ldrb r0, [r1] - ldrb r6, [r6] - cmp r0, r6 - beq _0804D63E - b _0804D804 -_0804D63E: - mov r1, r8 - mov r2, r12 - str r1, [r2] - b _0804D804 - .pool -_0804D658: - movs r0, 0x80 - ands r0, r1 - movs r5, 0x1 - cmp r0, 0 - beq _0804D664 - movs r5, 0 -_0804D664: - movs r0, 0x7F - ands r0, r1 - bl get_battle_side_of_something - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, =gUnknown_0202437C - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 25 - cmp r0, 0 - bge _0804D690 - ldr r0, [r6] - adds r0, 0x6 - str r0, [r6] - b _0804D804 - .pool -_0804D690: - adds r0, r7, 0 - movs r1, 0x6 - movs r2, 0x6 - bl sub_80423F4 - lsls r0, 24 - cmp r0, 0 - beq _0804D6E0 - ldr r2, =gUnknown_02024064 - strb r7, [r2] - ldr r3, =gUnknown_02024210 - ldr r4, =gBitTable - ldrb r0, [r2] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - ldrb r1, [r3] - orrs r0, r1 - strb r0, [r3] - ldr r3, =gUnknown_02024280 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r4 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r3] - bics r0, r1 - str r0, [r3] - mov r0, r8 - str r0, [r6] - b _0804D804 - .pool -_0804D6E0: - ldr r4, =gUnknown_02024064 - strb r7, [r4] - ldrb r0, [r4] - ldr r3, =gUnknown_0202449C - ldr r1, [r3] - adds r1, r0, r1 - adds r1, 0x58 - ldr r2, =gUnknown_0202406E - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r4] - ldr r1, [r3] - adds r0, r1 - adds r0, 0x5C - movs r1, 0x6 - strb r1, [r0] - ldr r1, [r3] - adds r1, 0x93 - ldr r2, =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r2 - ldr r2, [r0] - ldrb r0, [r1] - bics r0, r2 - strb r0, [r1] - ldrb r1, [r4] - movs r0, 0x2 - eors r0, r1 - ldr r3, [r3] - adds r0, r3 - adds r0, 0x5C - ldrb r2, [r0] - ldrb r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - adds r0, 0x60 - adds r3, r0 - str r3, [sp] - movs r0, 0 - adds r1, r5, 0 - movs r3, 0 - bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r6] - adds r0, 0x6 - str r0, [r6] - ldrb r0, [r4] - bl battle_get_per_side_status - lsls r0, 24 - cmp r0, 0 - bne _0804D760 - ldr r1, =gUnknown_03005D10 - ldrb r0, [r1, 0x2] - cmp r0, 0xFE - bhi _0804D760 - adds r0, 0x1 - strb r0, [r1, 0x2] -_0804D760: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0804D7C4 - ldr r1, =gUnknown_02024064 - movs r0, 0 - strb r0, [r1] - ldr r0, =gUnknown_0202406C - ldrb r0, [r0] - cmp r0, 0 - beq _0804D804 - adds r4, r1, 0 -_0804D77C: - ldrb r0, [r4] - cmp r0, r7 - beq _0804D792 - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - bl sub_8034464 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_0804D792: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, =gUnknown_0202406C - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _0804D77C - b _0804D804 - .pool -_0804D7C4: - adds r0, r7, 0 - bl battle_get_per_side_status - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r4, =gUnknown_02024064 - strb r0, [r4] - ldr r0, =gUnknown_02024210 - ldrb r1, [r0] - ldr r2, =gBitTable - ldrb r3, [r4] - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _0804D7F4 - movs r0, 0x2 - eors r3, r0 - strb r3, [r4] -_0804D7F4: - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - bl sub_8034464 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_0804D804: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk50_openpartyscreen - - thumb_func_start atk51_cmd51 -atk51_cmd51: @ 804D820 - push {r4-r7,lr} - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - beq _0804D82C - b _0804DA8A -_0804D82C: - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r5, =gUnknown_02024064 - strb r0, [r5] - ldr r0, [r4] - ldrb r0, [r0, 0x2] - cmp r0, 0x1 - beq _0804D8CC - cmp r0, 0x1 - bgt _0804D858 - cmp r0, 0 - beq _0804D862 - b _0804DA82 - .pool -_0804D858: - cmp r0, 0x2 - beq _0804D8E8 - cmp r0, 0x3 - beq _0804D922 - b _0804DA82 -_0804D862: - movs r6, 0 - ldr r0, =gUnknown_0202406C - ldrb r0, [r0] - cmp r6, r0 - blt _0804D86E - b _0804DA82 -_0804D86E: - ldr r7, =gUnknown_02023864 -_0804D870: - ldrb r0, [r7] - cmp r0, 0x22 - bne _0804D8AA - ldr r5, =gUnknown_0202449C - ldr r0, [r5] - adds r0, r6, r0 - adds r0, 0x5C - ldrb r1, [r7, 0x1] - strb r1, [r0] - ldr r0, [r5] - adds r0, 0x93 - ldrb r1, [r0] - ldr r2, =gBitTable - lsls r0, r6, 2 - adds r0, r2 - ldr r4, [r0] - ands r1, r4 - cmp r1, 0 - bne _0804D8AA - lsls r0, r6, 24 - lsrs r0, 24 - ldrb r1, [r7, 0x1] - bl sub_8184FBC - ldr r1, [r5] - adds r1, 0x93 - ldrb r0, [r1] - orrs r4, r0 - strb r4, [r1] -_0804D8AA: - movs r0, 0x80 - lsls r0, 2 - adds r7, r0 - adds r6, 0x1 - ldr r0, =gUnknown_0202406C - ldrb r0, [r0] - cmp r6, r0 - blt _0804D870 - b _0804DA82 - .pool -_0804D8CC: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0804D8DA - b _0804DA82 -_0804D8DA: - ldrb r0, [r5] - bl sub_803BDA0 - b _0804DA82 - .pool -_0804D8E8: - ldr r4, =gUnknown_0202449C - ldr r0, [r4] - adds r0, 0x93 - ldrb r1, [r0] - ldr r6, =gBitTable - ldrb r2, [r5] - lsls r0, r2, 2 - adds r0, r6 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0804D922 - ldr r0, =gUnknown_02023864 - lsls r1, r2, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r1, [r1] - adds r0, r2, 0 - bl sub_8184FBC - ldr r2, [r4] - adds r2, 0x93 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] -_0804D922: - ldr r1, =gUnknown_02024332 - ldr r6, =gUnknown_02023864 - ldr r7, =gUnknown_02024064 - ldrb r0, [r7] - lsls r0, 9 - adds r2, r6, 0x1 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - ldr r1, =gUnknown_0202449C - mov r12, r1 - ldr r1, [r1] - adds r1, r0, r1 - adds r1, 0x5C - lsls r0, 9 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x42 - ands r0, r1 - cmp r0, 0x42 - bne _0804DA14 - ldrb r0, [r7] - mov r3, r12 - ldr r2, [r3] - lsls r1, r0, 1 - adds r1, r0 - adds r1, r2 - adds r1, 0x60 - ldrb r2, [r1] - movs r0, 0xF - ands r0, r2 - strb r0, [r1] - ldrb r0, [r7] - ldr r2, [r3] - lsls r1, r0, 1 - adds r1, r0 - adds r1, r2 - adds r1, 0x60 - lsls r0, 9 - adds r5, r6, 0x2 - adds r0, r5 - ldrb r2, [r0] - movs r3, 0xF0 - adds r0, r3, 0 - ands r0, r2 - ldrb r2, [r1] - orrs r0, r2 - strb r0, [r1] - ldrb r1, [r7] - mov r0, r12 - ldr r2, [r0] - lsls r0, r1, 1 - adds r0, r1 - adds r0, r2 - adds r0, 0x61 - lsls r1, 9 - adds r6, 0x3 - adds r1, r6 - ldrb r1, [r1] - strb r1, [r0] - ldrb r0, [r7] - movs r4, 0x2 - eors r0, r4 - mov r1, r12 - ldr r2, [r1] - lsls r1, r0, 1 - adds r1, r0 - adds r1, r2 - adds r1, 0x60 - ldrb r2, [r1] - adds r0, r3, 0 - ands r0, r2 - strb r0, [r1] - ldrb r0, [r7] - eors r0, r4 - mov r1, r12 - ldr r2, [r1] - lsls r1, r0, 1 - adds r1, r0 - adds r1, r2 - adds r1, 0x60 - ldrb r0, [r7] - lsls r0, 9 - adds r0, r5 - ldrb r0, [r0] - ands r3, r0 - lsrs r3, 4 - ldrb r0, [r1] - orrs r3, r0 - strb r3, [r1] - ldrb r0, [r7] - eors r4, r0 - mov r2, r12 - ldr r0, [r2] - lsls r1, r4, 1 - adds r1, r4 - adds r1, r0 - adds r1, 0x62 - ldrb r0, [r7] - lsls r0, 9 - adds r0, r6 - ldrb r0, [r0] - strb r0, [r1] - b _0804DA36 - .pool -_0804DA14: - movs r0, 0x80 - lsls r0, 15 - ands r1, r0 - cmp r1, 0 - beq _0804DA30 - ldrb r0, [r7] - mov r3, r12 - ldr r1, [r3] - adds r1, r0, r1 - adds r1, 0x5C - ldrb r1, [r1] - bl sub_80571DC - b _0804DA36 -_0804DA30: - ldrb r0, [r7] - bl sub_803BDA0 -_0804DA36: - ldr r1, =gUnknown_02022F58 - movs r5, 0xFD - strb r5, [r1] - movs r0, 0x6 - strb r0, [r1, 0x1] - ldr r4, =gBattleMons - ldr r3, =gUnknown_0202420B - ldrb r0, [r3] - movs r2, 0x58 - muls r0, r2 - adds r0, r4 - ldrh r0, [r0] - strb r0, [r1, 0x2] - ldrb r0, [r3] - muls r0, r2 - adds r0, r4 - ldrh r0, [r0] - lsrs r0, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r2, =gUnknown_02022F68 - strb r5, [r2] - movs r0, 0x7 - strb r0, [r2, 0x1] - ldr r3, =gUnknown_02024064 - ldrb r0, [r3] - strb r0, [r2, 0x2] - ldr r1, =gUnknown_02023864 - ldrb r0, [r3] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2, 0x3] - movs r0, 0x1 - negs r0, r0 - strb r0, [r2, 0x4] -_0804DA82: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x3 - str r0, [r1] -_0804DA8A: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk51_cmd51 - - thumb_func_start atk52_cmd52 -atk52_cmd52: @ 804DAAC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r0, =gUnknown_02024214 - mov r9, r0 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r4, =gUnknown_02024064 - strb r0, [r4] - ldrb r0, [r4] - bl sub_803FA70 - ldr r1, =gUnknown_02024280 - mov r8, r1 - ldr r1, =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - lsls r1, 28 - mov r2, r8 - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - ldr r2, =gUnknown_0202437C - ldrb r0, [r4] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1] - movs r0, 0x41 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldrb r0, [r4] - bl battle_side_get_owner - ldr r5, =gUnknown_0202428E - lsls r0, 24 - lsrs r0, 23 - adds r0, r5 - ldrh r1, [r0] - movs r7, 0x80 - lsls r7, 2 - mov r10, r7 - mov r0, r10 - ands r0, r1 - cmp r0, 0 - beq _0804DB1C - b _0804DC30 -_0804DB1C: - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 23 - adds r0, r5 - ldrh r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _0804DB34 - b _0804DC30 -_0804DB34: - ldr r7, =gBattleMons - ldrb r2, [r4] - movs r6, 0x58 - adds r0, r2, 0 - muls r0, r6 - adds r1, r0, r7 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x2 - beq _0804DC30 - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x2 - beq _0804DC30 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1A - beq _0804DC30 - adds r0, r2, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 23 - adds r0, r5 - ldrh r2, [r0] - mov r1, r10 - orrs r1, r2 - strh r1, [r0] - ldrb r0, [r4] - adds r2, r0, 0 - muls r2, r6 - adds r0, r7, 0 - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - ldr r1, =0xfdffffff - ands r0, r1 - str r0, [r2] - mov r1, r8 - ldr r0, [r1] - movs r2, 0x41 - negs r2, r2 - ands r0, r2 - str r0, [r1] - ldrb r0, [r4] - bl battle_side_get_owner - ldr r2, =gUnknown_02024294 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0xA] - movs r1, 0x5 - subs r1, r0 - lsls r1, 25 - lsrs r1, 24 - ldr r5, =gBattleMoveDamage - ldrb r0, [r4] - muls r0, r6 - adds r0, r7 - ldrh r0, [r0, 0x2C] - bl __divsi3 - str r0, [r5] - cmp r0, 0 - bne _0804DBC8 - movs r0, 0x1 - str r0, [r5] -_0804DBC8: - ldr r0, =gUnknown_02024474 - ldrb r1, [r4] - strb r1, [r0, 0x17] - bl b_movescr_stack_push_cursor - mov r7, r9 - ldr r0, [r7] - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _0804DC14 - ldr r0, =gUnknown_082DAE90 - str r0, [r7] - b _0804DD8E - .pool -_0804DC14: - cmp r0, 0x1 - bne _0804DC24 - ldr r0, =gUnknown_082DAE59 - mov r1, r9 - str r0, [r1] - b _0804DD8E - .pool -_0804DC24: - ldr r0, =gUnknown_082DAEC7 - mov r2, r9 - str r0, [r2] - b _0804DD8E - .pool -_0804DC30: - ldr r2, =gBattleMons - ldr r1, =gUnknown_02024064 - ldrb r3, [r1] - movs r0, 0x58 - muls r0, r3 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - adds r5, r1, 0 - ldr r4, =gUnknown_020242BC - cmp r0, 0x36 - bne _0804DC5E - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r2, r0, r4 - ldrb r1, [r2, 0x18] - lsls r0, r1, 30 - cmp r0, 0 - blt _0804DC5E - movs r0, 0x1 - orrs r0, r1 - strb r0, [r2, 0x18] -_0804DC5E: - ldrb r0, [r5] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0x18] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x18] - ldrb r1, [r5] - movs r0, 0 - str r0, [sp] - movs r2, 0 - movs r3, 0 - bl ability_something - lsls r0, 24 - cmp r0, 0 - beq _0804DC88 - b _0804DD8E -_0804DC88: - ldrb r1, [r5] - movs r0, 0 - movs r2, 0 - bl berry_effects_maybe - lsls r0, 24 - cmp r0, 0 - bne _0804DD8E - ldrb r0, [r5] - bl battle_side_get_owner - ldr r1, =gUnknown_0202428E - lsls r0, 24 - lsrs r0, 23 - adds r0, r1 - ldrh r2, [r0] - ldr r1, =0x0000fdff - ands r1, r2 - strh r1, [r0] - movs r4, 0 - ldr r0, =gUnknown_0202406C - ldrb r7, [r0] - cmp r4, r7 - bge _0804DCD8 - ldr r6, =gUnknown_0202407E - adds r1, r5, 0 - ldr r5, =gUnknown_0202407A - movs r3, 0xC - adds r2, r0, 0 -_0804DCC2: - adds r0, r4, r6 - ldrb r0, [r0] - ldrb r7, [r1] - cmp r0, r7 - bne _0804DCD0 - adds r0, r4, r5 - strb r3, [r0] -_0804DCD0: - adds r4, 0x1 - ldrb r0, [r2] - cmp r4, r0 - blt _0804DCC2 -_0804DCD8: - movs r4, 0 - ldr r0, =gUnknown_0202406C - ldrb r0, [r0] - cmp r4, r0 - bge _0804DD0C - ldr r6, =gUnknown_0202449C - ldr r5, =gBattleMons -_0804DCE6: - lsls r0, r4, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 23 - adds r0, 0xA8 - ldr r1, [r6] - adds r1, r0 - movs r0, 0x58 - muls r0, r4 - adds r0, r5 - ldrh r0, [r0, 0x28] - strh r0, [r1] - adds r4, 0x1 - ldr r0, =gUnknown_0202406C - ldrb r0, [r0] - cmp r4, r0 - blt _0804DCE6 -_0804DD0C: - ldr r0, =gUnknown_02024214 - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r5, r0, 0 - cmp r1, 0x5 - bne _0804DD88 - ldr r0, =gUnknown_02024280 - ldr r0, [r0] - lsrs r4, r0, 28 - ldr r1, =gUnknown_0202420D - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r2, =gBitTable - b _0804DD6E - .pool -_0804DD60: - ldr r0, =gUnknown_0202406C - ldrb r3, [r1] - ldrb r0, [r0] - cmp r3, r0 - bcs _0804DD88 - adds r0, r3, 0x1 - strb r0, [r1] -_0804DD6E: - ldrb r0, [r1] - lsls r0, 2 - adds r0, r2 - ldr r3, [r0] - adds r0, r4, 0 - ands r0, r3 - cmp r0, 0 - beq _0804DD60 - ldr r0, =gUnknown_02024210 - ldrb r0, [r0] - ands r0, r3 - cmp r0, 0 - bne _0804DD60 -_0804DD88: - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] -_0804DD8E: - 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 atk52_cmd52 - - thumb_func_start sub_804DDA8 -sub_804DDA8: @ 804DDA8 - push {r4,r5,lr} - ldr r5, =gUnknown_02024214 - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl battle_get_side_with_given_state - ldr r4, =gUnknown_02024064 - strb r0, [r4] - movs r0, 0 - bl dp01_build_cmdbuf_x08_8_8_8 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_804DDA8 - - thumb_func_start atk54_802511C -atk54_802511C: @ 804DDD8 - push {r4,r5,lr} - ldr r5, =gUnknown_02024064 - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - strb r0, [r5] - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - ldrb r1, [r0, 0x1] - ldrb r0, [r0, 0x2] - lsls r0, 8 - orrs r1, r0 - movs r0, 0 - bl dp01_build_cmdbuf_x2B_aa_0 - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r4] - adds r0, 0x3 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk54_802511C - - thumb_func_start sub_804DE14 -sub_804DE14: @ 804DE14 - push {r4,r5,lr} - ldr r5, =gUnknown_02024064 - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - strb r0, [r5] - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - ldrb r1, [r0, 0x1] - ldrb r0, [r0, 0x2] - lsls r0, 8 - orrs r1, r0 - movs r0, 0 - movs r2, 0 - bl sub_8034300 - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r4] - adds r0, 0x3 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_804DE14 - - thumb_func_start atk56_8025194 -atk56_8025194: @ 804DE50 - push {r4,r5,lr} - ldr r5, =gUnknown_02024214 - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r4, =gUnknown_02024064 - strb r0, [r4] - movs r0, 0 - bl dp01_build_cmdbuf_x2D_2D_2D_2D - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk56_8025194 - - thumb_func_start atk57_80251C4_flee -atk57_80251C4_flee: @ 804DE80 - push {r4,lr} - movs r0, 0 - bl battle_get_side_with_given_state - ldr r4, =gUnknown_02024064 - strb r0, [r4] - ldr r0, =gUnknown_0202433A - ldrb r1, [r0] - movs r0, 0 - bl dp01_build_cmdbuf_x37_a - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk57_80251C4_flee - - thumb_func_start atk58_cmd58 -atk58_cmd58: @ 804DEB8 - push {r4,r5,lr} - ldr r5, =gUnknown_02024214 - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r4, =gUnknown_02024064 - strb r0, [r4] - movs r0, 0 - movs r1, 0x1 - bl dp01_build_cmdbuf_x06_a - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk58_cmd58 - - thumb_func_start atk59_8025230 -atk59_8025230: @ 804DEEC - push {r4-r7,lr} - ldr r0, =gUnknown_02024214 - ldr r2, [r0] - ldrb r6, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r6, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r6, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r6, r0 - ldrb r4, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - orrs r4, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - orrs r4, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - orrs r4, r0 - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - ldrb r1, [r0, 0x10] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - ldrb r1, [r2, 0x9] - bl sub_8069318 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, =0x0000fffe - cmp r5, r0 - bne _0804DF56 - adds r7, r5, 0 -_0804DF3A: - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - ldrb r1, [r0, 0x10] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0 - bl sub_8069318 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r7 - beq _0804DF3A -_0804DF56: - cmp r5, 0 - bne _0804DF70 - ldr r0, =gUnknown_02024214 - str r4, [r0] - b _0804E018 - .pool -_0804DF70: - ldr r0, =0x0000ffff - cmp r5, r0 - bne _0804DF88 - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0xA - str r0, [r1] - b _0804E018 - .pool -_0804DF88: - movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, =gUnknown_02024064 - strb r0, [r1] - ldr r2, =gUnknown_0202406E - ldrb r3, [r1] - lsls r0, r3, 1 - adds r0, r2 - ldr r1, =gUnknown_0202449C - ldr r1, [r1] - ldrh r0, [r0] - ldrb r1, [r1, 0x10] - cmp r0, r1 - bne _0804DFC8 - ldr r4, =gBattleMons - movs r0, 0x58 - adds r2, r3, 0 - muls r2, r0 - adds r0, r4, 0 - adds r0, 0x50 - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _0804DFC8 - adds r0, r2, r4 - adds r1, r5, 0 - bl sub_80691B0 -_0804DFC8: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0804E014 - movs r0, 0x2 - bl battle_get_side_with_given_state - ldr r1, =gUnknown_02024064 - strb r0, [r1] - ldr r2, =gUnknown_0202406E - ldrb r3, [r1] - lsls r0, r3, 1 - adds r0, r2 - ldr r1, =gUnknown_0202449C - ldr r1, [r1] - ldrh r0, [r0] - ldrb r1, [r1, 0x10] - cmp r0, r1 - bne _0804E014 - ldr r4, =gBattleMons - movs r0, 0x58 - adds r2, r3, 0 - muls r2, r0 - adds r0, r4, 0 - adds r0, 0x50 - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _0804E014 - adds r0, r2, r4 - adds r1, r5, 0 - bl sub_80691B0 -_0804E014: - ldr r0, =gUnknown_02024214 - str r6, [r0] -_0804E018: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk59_8025230 - - thumb_func_start sub_804E038 -sub_804E038: @ 804E038 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r0, =gUnknown_02024064 - movs r1, 0 - strb r1, [r0] - ldr r0, =gUnknown_02024474 - ldrb r1, [r0, 0x1F] - adds r2, r0, 0 - cmp r1, 0x6 - bls _0804E052 - b _0804E3B8 -_0804E052: - lsls r0, r1, 2 - ldr r1, =_0804E068 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0804E068: - .4byte _0804E084 - .4byte _0804E0BC - .4byte _0804E162 - .4byte _0804E1B8 - .4byte _0804E1E4 - .4byte _0804E38C - .4byte _0804E3AC -_0804E084: - movs r4, 0 - str r4, [sp] - movs r0, 0x18 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl sub_8056A3C - ldr r0, =gUnknown_085CCABB - movs r1, 0xC - bl battle_show_message_maybe - ldr r1, =gUnknown_02024474 - ldrb r0, [r1, 0x1F] - adds r0, 0x1 - strb r0, [r1, 0x1F] - ldr r0, =gUnknown_02024332 - strb r4, [r0, 0x1] - movs r0, 0 - bl sub_8056B74 - b _0804E3B8 - .pool -_0804E0BC: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0804E0E4 - ldr r4, =gUnknown_02024332 - ldrb r0, [r4, 0x1] - cmp r0, 0 - beq _0804E0E4 - movs r0, 0x5 - bl audio_play - ldrb r0, [r4, 0x1] - bl sub_8056BAC - movs r0, 0 - strb r0, [r4, 0x1] - bl sub_8056B74 -_0804E0E4: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804E10C - ldr r4, =gUnknown_02024332 - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _0804E10C - movs r0, 0x5 - bl audio_play - ldrb r0, [r4, 0x1] - bl sub_8056BAC - movs r0, 0x1 - strb r0, [r4, 0x1] - bl sub_8056B74 -_0804E10C: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r5, 0x1 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _0804E150 - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_02024332 - ldrb r4, [r0, 0x1] - cmp r4, 0 - bne _0804E20A - str r5, [sp] - movs r0, 0x18 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl sub_8056A3C - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _0804E192 - .pool -_0804E150: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0804E15A - b _0804E3B8 -_0804E15A: - movs r0, 0x5 - bl audio_play - b _0804E20A -_0804E162: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804E170 - b _0804E3B8 -_0804E170: - bl FreeAllWindowBuffers - ldr r0, =gPlayerParty - ldr r1, =gUnknown_0202449C - ldr r1, [r1] - ldrb r1, [r1, 0x10] - ldr r2, =gUnknown_020244E9 - ldrb r2, [r2] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldr r3, =sub_80A92F8 - ldr r4, =gUnknown_020244E2 - ldrh r4, [r4] - str r4, [sp] - bl sub_81BFA38 -_0804E192: - ldr r1, =gUnknown_02024474 - ldrb r0, [r1, 0x1F] - adds r0, 0x1 - strb r0, [r1, 0x1F] - b _0804E3B8 - .pool -_0804E1B8: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804E1C6 - b _0804E3B8 -_0804E1C6: - ldr r0, =gMain - ldr r1, [r0, 0x4] - ldr r0, =sub_8038420 - cmp r1, r0 - beq _0804E1D2 - b _0804E3B8 -_0804E1D2: - ldrb r0, [r2, 0x1F] - adds r0, 0x1 - b _0804E3B6 - .pool -_0804E1E4: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804E1F2 - b _0804E3B8 -_0804E1F2: - ldr r0, =gMain - ldr r1, [r0, 0x4] - ldr r0, =sub_8038420 - cmp r1, r0 - beq _0804E1FE - b _0804E3B8 -_0804E1FE: - bl sub_81C1B94 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bne _0804E224 -_0804E20A: - ldr r1, =gUnknown_02024474 - movs r0, 0x5 - strb r0, [r1, 0x1F] - b _0804E3B8 - .pool -_0804E224: - ldr r6, =gUnknown_0202449C - ldr r0, [r6] - ldrb r0, [r0, 0x10] - movs r1, 0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - ldr r7, =gPlayerParty - adds r0, r7 - adds r1, r5, 0 - adds r1, 0xD - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl sub_806E804 - cmp r0, 0 - beq _0804E274 - ldr r0, =0x0000013f - ldr r1, =gUnknown_02024064 - ldrb r1, [r1] - bl b_std_message - ldr r1, =gUnknown_02024474 - movs r0, 0x6 - strb r0, [r1, 0x1F] - b _0804E3B8 - .pool -_0804E274: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - ldr r1, =gUnknown_02022F68 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - strb r4, [r1, 0x2] - lsrs r0, r4, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r0, [r6] - ldrb r0, [r0, 0x10] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r7 - adds r1, r5, 0 - bl sub_806B9A8 - ldr r0, [r6] - ldrb r0, [r0, 0x10] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r7 - ldr r7, =gUnknown_020244E2 - ldrh r1, [r7] - adds r2, r5, 0 - bl sub_80691F4 - ldr r0, =gUnknown_0202406E - ldr r1, [r6] - ldrh r0, [r0] - ldrb r1, [r1, 0x10] - cmp r0, r1 - bne _0804E30A - ldr r4, =gBattleMons - ldr r0, [r4, 0x50] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _0804E30A - ldr r0, =gUnknown_020242BC - ldrb r1, [r0, 0x18] - lsrs r1, 4 - ldr r2, =gBitTable - lsls r0, r5, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0804E30A - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_806B9E4 - ldrh r1, [r7] - adds r0, r4, 0 - adds r2, r5, 0 - bl sub_8069234 -_0804E30A: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0804E3B8 - ldr r2, =gUnknown_0202406E - ldr r0, =gUnknown_0202449C - ldr r1, [r0] - ldrh r0, [r2, 0x4] - ldrb r1, [r1, 0x10] - cmp r0, r1 - bne _0804E3B8 - ldr r4, =gBattleMons - movs r1, 0x80 - lsls r1, 1 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _0804E3B8 - ldr r0, =gUnknown_020242BC - adds r0, 0x50 - ldrb r1, [r0] - lsrs r1, 4 - ldr r2, =gBitTable - lsls r0, r5, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0804E3B8 - adds r4, 0xB0 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_806B9E4 - ldr r0, =gUnknown_020244E2 - ldrh r1, [r0] - adds r0, r4, 0 - adds r2, r5, 0 - bl sub_8069234 - b _0804E3B8 - .pool -_0804E38C: - movs r0, 0x1 - str r0, [sp] - movs r0, 0x18 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl sub_8056A3C - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0804E3B8 - .pool -_0804E3AC: - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - bne _0804E3B8 - movs r0, 0x2 -_0804E3B6: - strb r0, [r2, 0x1F] -_0804E3B8: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_804E038 - - thumb_func_start atk5B_80256E0 -atk5B_80256E0: @ 804E3C8 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, =gUnknown_02024474 - ldrb r4, [r5, 0x1F] - cmp r4, 0 - beq _0804E3E0 - cmp r4, 0x1 - beq _0804E410 - b _0804E4FA - .pool -_0804E3E0: - str r4, [sp] - movs r0, 0x18 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl sub_8056A3C - ldr r0, =gUnknown_085CCABB - movs r1, 0xC - bl battle_show_message_maybe - ldrb r0, [r5, 0x1F] - adds r0, 0x1 - strb r0, [r5, 0x1F] - ldr r0, =gUnknown_02024332 - strb r4, [r0, 0x1] - movs r0, 0 - bl sub_8056B74 - b _0804E4FA - .pool -_0804E410: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0804E438 - ldr r4, =gUnknown_02024332 - ldrb r0, [r4, 0x1] - cmp r0, 0 - beq _0804E438 - movs r0, 0x5 - bl audio_play - ldrb r0, [r4, 0x1] - bl sub_8056BAC - movs r0, 0 - strb r0, [r4, 0x1] - bl sub_8056B74 -_0804E438: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804E460 - ldr r4, =gUnknown_02024332 - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _0804E460 - movs r0, 0x5 - bl audio_play - ldrb r0, [r4, 0x1] - bl sub_8056BAC - movs r0, 0x1 - strb r0, [r4, 0x1] - bl sub_8056B74 -_0804E460: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r4, 0x1 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _0804E4C4 - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_02024332 - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _0804E4A4 - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0804E4AC - .pool -_0804E4A4: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0804E4AC: - movs r0, 0x1 - str r0, [sp] - movs r0, 0x18 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl sub_8056A3C - b _0804E4FA - .pool -_0804E4C4: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0804E4FA - movs r0, 0x5 - bl audio_play - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - str r4, [sp] - movs r0, 0x18 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl sub_8056A3C -_0804E4FA: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk5B_80256E0 - - thumb_func_start atk5C_cmd5c -atk5C_cmd5c: @ 804E508 - push {r4,lr} - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r2, =gUnknown_02024064 - strb r0, [r2] - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _0804E58C - ldr r0, =gUnknown_02024280 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 1 - ands r0, r1 - cmp r0, 0 - beq _0804E55A - ldr r1, =gBattleMons - ldrb r2, [r2] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _0804E55A - ldr r0, =gUnknown_020242BC - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0xA] - cmp r0, 0 - bne _0804E58C -_0804E55A: - movs r0, 0 - bl dp01_build_cmdbuf_x29_29_29_29 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - b _0804E592 - .pool -_0804E58C: - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] -_0804E592: - pop {r4} - pop {r0} - bx r0 - thumb_func_end atk5C_cmd5c - - thumb_func_start sub_804E598 -sub_804E598: @ 804E598 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 16 - lsrs r6, r0, 16 - movs r7, 0 - movs r5, 0 - movs r0, 0x80 - lsls r0, 3 - cmp r6, r0 - bne _0804E5D8 - ldr r0, =gUnknown_020244A8 - ldr r0, [r0] - ldr r0, [r0] - adds r0, 0x94 - ldrb r2, [r0] - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - adds r0, 0x4A - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - muls r0, r2 - b _0804E6CA - .pool -_0804E5D8: - ldr r0, =gTrainers - lsls r2, r6, 2 - adds r1, r2, r6 - lsls r1, 3 - adds r4, r1, r0 - ldrb r3, [r4] - mov r12, r0 - cmp r3, 0x1 - beq _0804E62E - cmp r3, 0x1 - bgt _0804E5F8 - cmp r3, 0 - beq _0804E602 - b _0804E644 - .pool -_0804E5F8: - cmp r3, 0x2 - beq _0804E618 - cmp r3, 0x3 - beq _0804E62E - b _0804E644 -_0804E602: - mov r0, r12 - adds r0, 0x24 - adds r0, r1, r0 - ldr r1, [r0] - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r1 - subs r0, 0x8 - b _0804E642 -_0804E618: - mov r0, r12 - adds r0, 0x24 - adds r0, r1, r0 - ldr r1, [r0] - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r1 - subs r0, 0x8 - b _0804E642 -_0804E62E: - mov r0, r12 - adds r0, 0x24 - adds r0, r1, r0 - ldr r1, [r0] - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - subs r0, 0x10 -_0804E642: - ldrb r5, [r0, 0x2] -_0804E644: - ldr r1, =gUnknown_0831AEB8 - lsls r0, r7, 2 - adds r4, r0, r1 - ldrb r3, [r4] - ldr r0, =gUnknown_0202449C - mov r8, r0 - mov r9, r1 - ldr r1, =gBattleTypeFlags - mov r10, r1 - cmp r3, 0xFF - beq _0804E67A - adds r0, r2, r6 - lsls r0, 3 - add r0, r12 - ldrb r1, [r0, 0x1] - cmp r3, r1 - beq _0804E67A - adds r2, r0, 0 - adds r0, r4, 0 -_0804E66A: - adds r0, 0x4 - adds r7, 0x1 - ldrb r1, [r0] - cmp r1, 0xFF - beq _0804E67A - ldrb r3, [r2, 0x1] - cmp r1, r3 - bne _0804E66A -_0804E67A: - mov r0, r10 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - bne _0804E6B4 - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - beq _0804E6B4 - mov r3, r8 - ldr r0, [r3] - adds r0, 0x4A - ldrb r0, [r0] - lsls r0, 2 - adds r1, r5, 0 - muls r1, r0 - lsls r0, r7, 2 - add r0, r9 - ldrb r0, [r0, 0x1] - lsls r0, 1 - b _0804E6C8 - .pool -_0804E6B4: - mov r1, r8 - ldr r0, [r1] - adds r0, 0x4A - ldrb r0, [r0] - lsls r0, 2 - adds r1, r5, 0 - muls r1, r0 - lsls r0, r7, 2 - add r0, r9 - ldrb r0, [r0, 0x1] -_0804E6C8: - muls r0, r1 -_0804E6CA: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_804E598 - - thumb_func_start sub_804E6D8 -sub_804E6D8: @ 804E6D8 - push {r4,lr} - ldr r0, =gUnknown_02038BCA - ldrh r0, [r0] - bl sub_804E598 - adds r4, r0, 0 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _0804E6FC - ldr r0, =gUnknown_02038BCC - ldrh r0, [r0] - bl sub_804E598 - adds r4, r0 -_0804E6FC: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x92 - lsls r1, 3 - adds r0, r1 - adds r1, r4, 0 - bl add_money - ldr r1, =gUnknown_02022F58 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x1 - strb r0, [r1, 0x1] - movs r0, 0x4 - strb r0, [r1, 0x2] - movs r0, 0x5 - strb r0, [r1, 0x3] - strb r4, [r1, 0x4] - movs r0, 0xFF - lsls r0, 8 - ands r0, r4 - lsrs r0, 8 - strb r0, [r1, 0x5] - movs r0, 0xFF - lsls r0, 16 - ands r0, r4 - lsrs r0, 16 - strb r0, [r1, 0x6] - lsrs r0, r4, 24 - strb r0, [r1, 0x7] - movs r0, 0xFF - strb r0, [r1, 0x8] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_804E6D8 - - thumb_func_start atk5E_8025A70 -atk5E_8025A70: @ 804E764 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r6, =gUnknown_02024064 - strb r0, [r6] - ldr r5, =gUnknown_02024332 - ldrb r0, [r5] - mov r8, r4 - cmp r0, 0 - beq _0804E794 - cmp r0, 0x1 - beq _0804E7AC - b _0804E800 - .pool -_0804E794: - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl dp01_build_cmdbuf_x00_a_b_0 - ldrb r0, [r6] - bl dp01_battle_side_mark_buffer_for_execution - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _0804E800 -_0804E7AC: - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - bne _0804E800 - ldrb r0, [r6] - lsls r0, 9 - ldr r1, =gUnknown_02023868 - adds r0, r1 - mov r12, r0 - movs r2, 0 - adds r4, r6, 0 - movs r5, 0x58 - ldr r6, =gUnknown_020240A8 - adds r7, r6, 0 - subs r7, 0x18 - mov r3, r12 - adds r3, 0xC -_0804E7CE: - lsls r1, r2, 1 - ldrb r0, [r4] - muls r0, r5 - adds r1, r0 - adds r1, r7 - ldrh r0, [r3] - strh r0, [r1] - ldrb r0, [r4] - adds r1, r0, 0 - muls r1, r5 - adds r1, r2, r1 - adds r1, r6 - mov r0, r12 - adds r0, 0x24 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r3, 0x2 - adds r2, 0x1 - cmp r2, 0x3 - ble _0804E7CE - mov r1, r8 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] -_0804E800: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk5E_8025A70 - - thumb_func_start atk5F_8025B24 -atk5F_8025B24: @ 804E818 - push {lr} - ldr r0, =gUnknown_02024064 - ldr r2, =gUnknown_0202420B - ldrb r3, [r2] - strb r3, [r0] - ldr r1, =gEnemyMonIndex - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] - ldr r2, =gUnknown_02024280 - ldr r1, [r2] - movs r3, 0x80 - lsls r3, 5 - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - beq _0804E854 - ldr r0, =0xffffefff - ands r1, r0 - b _0804E856 - .pool -_0804E854: - orrs r1, r3 -_0804E856: - str r1, [r2] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atk5F_8025B24 - - thumb_func_start atk60_cmd60 -atk60_cmd60: @ 804E868 - push {lr} - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0804E882 - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl sav12_xor_increment -_0804E882: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atk60_cmd60 - - thumb_func_start atk61_8025BA4 -atk61_8025BA4: @ 804E898 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x30 - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - bne _0804E94C - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r1, =gUnknown_02024064 - strb r0, [r1] - ldrb r0, [r1] - bl battle_side_get_owner - lsls r0, 24 - ldr r1, =gEnemyParty - mov r8, r1 - cmp r0, 0 - bne _0804E8CA - ldr r0, =gPlayerParty - mov r8, r0 -_0804E8CA: - movs r7, 0 - add r6, sp, 0x4 - mov r5, sp -_0804E8D0: - movs r0, 0x64 - muls r0, r7 - mov r1, r8 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _0804E8F4 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - bne _0804E914 -_0804E8F4: - ldr r0, =0x0000ffff - strh r0, [r5] - movs r0, 0 - b _0804E926 - .pool -_0804E914: - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - strh r0, [r5] - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData -_0804E926: - str r0, [r6] - adds r6, 0x8 - adds r5, 0x8 - adds r7, 0x1 - cmp r7, 0x5 - ble _0804E8D0 - movs r0, 0 - mov r1, sp - movs r2, 0x1 - bl dp01_build_cmdbuf_x30_TODO - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] -_0804E94C: - add sp, 0x30 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk61_8025BA4 - - thumb_func_start atk62_08025C6C -atk62_08025C6C: @ 804E960 - push {r4,r5,lr} - ldr r5, =gUnknown_02024214 - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r4, =gUnknown_02024064 - strb r0, [r4] - movs r0, 0 - bl dp01_build_cmdbuf_x31_31_31_31 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk62_08025C6C - - thumb_func_start atk63_jumptoattack -atk63_jumptoattack: @ 804E990 - push {r4,lr} - ldr r0, =gUnknown_02024214 - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r4, r0, 0 - cmp r1, 0 - beq _0804E9B4 - ldr r0, =gUnknown_020241EA - ldr r1, =gUnknown_020241EE - ldrh r1, [r1] - strh r1, [r0] - b _0804E9C2 - .pool -_0804E9B4: - ldr r2, =gUnknown_020241EC - ldr r1, =gUnknown_020241EA - ldr r0, =gUnknown_020241EE - ldrh r0, [r0] - strh r0, [r1] - strh r0, [r2] - adds r0, r1, 0 -_0804E9C2: - ldr r3, =gUnknown_082D86A8 - ldr r2, =gBattleMoves - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk63_jumptoattack - - thumb_func_start atk64_statusanimation -atk64_statusanimation: @ 804E9F4 - push {r4,lr} - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - bne _0804EA5C - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r4, =gUnknown_02024064 - strb r0, [r4] - ldr r1, =gUnknown_020242AC - ldrb r2, [r4] - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =0x000400c0 - ands r0, r1 - cmp r0, 0 - bne _0804EA54 - ldr r0, =gUnknown_020242BC - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0xA] - cmp r0, 0 - bne _0804EA54 - ldr r0, =gUnknown_02024280 - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0804EA54 - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r2 - adds r1, 0x4C - adds r0, r1 - ldr r2, [r0] - movs r0, 0 - movs r1, 0 - bl dp01_build_cmdbuf_x1B_aaaa_b - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_0804EA54: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] -_0804EA5C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk64_statusanimation - - thumb_func_start atk65_8025D90 -atk65_8025D90: @ 804EA84 - push {r4,r5,lr} - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - bne _0804EB04 - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r5, =gUnknown_02024064 - strb r0, [r5] - ldr r1, [r4] - ldrb r3, [r1, 0x2] - ldrb r0, [r1, 0x3] - lsls r0, 8 - orrs r3, r0 - ldrb r0, [r1, 0x4] - lsls r0, 16 - orrs r3, r0 - ldrb r0, [r1, 0x5] - lsls r0, 24 - orrs r3, r0 - ldr r1, =gUnknown_020242AC - ldrb r2, [r5] - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =0x000400c0 - ands r0, r1 - cmp r0, 0 - bne _0804EAFC - ldr r0, =gUnknown_020242BC - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0xA] - cmp r0, 0 - bne _0804EAFC - ldr r0, =gUnknown_02024280 - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0804EAFC - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r2, [r0] - ands r2, r3 - movs r0, 0 - movs r1, 0x1 - bl dp01_build_cmdbuf_x1B_aaaa_b - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution -_0804EAFC: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x6 - str r0, [r1] -_0804EB04: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk65_8025D90 - - thumb_func_start atk66_8025E38 -atk66_8025E38: @ 804EB2C - push {r4,r5,lr} - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - bne _0804EB9E - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r5, =gUnknown_02024064 - strb r0, [r5] - ldr r4, [r4] - ldrb r2, [r4, 0x3] - ldrb r0, [r4, 0x4] - lsls r0, 8 - orrs r2, r0 - ldrb r0, [r4, 0x5] - lsls r0, 16 - orrs r2, r0 - ldrb r0, [r4, 0x6] - lsls r0, 24 - orrs r2, r0 - ldr r1, =gUnknown_020242AC - ldrb r3, [r5] - lsls r0, r3, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =0x000400c0 - ands r0, r1 - cmp r0, 0 - bne _0804EB96 - ldr r0, =gUnknown_020242BC - lsls r1, r3, 3 - subs r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0xA] - cmp r0, 0 - bne _0804EB96 - ldr r0, =gUnknown_02024280 - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0804EB96 - ldrb r1, [r4, 0x2] - movs r0, 0 - bl dp01_build_cmdbuf_x1B_aaaa_b - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution -_0804EB96: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x7 - str r0, [r1] -_0804EB9E: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk66_8025E38 - - thumb_func_start atk67_8025ECC -atk67_8025ECC: @ 804EBC0 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, =gUnknown_02024332 - ldrb r4, [r5] - cmp r4, 0 - beq _0804EBD8 - cmp r4, 0x1 - beq _0804EC04 - b _0804EC96 - .pool -_0804EBD8: - str r4, [sp] - movs r0, 0x18 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl sub_8056A3C - ldr r0, =gUnknown_085CCABB - movs r1, 0xC - bl battle_show_message_maybe - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - strb r4, [r5, 0x1] - movs r0, 0 - bl sub_8056B74 - b _0804EC96 - .pool -_0804EC04: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0804EC2A - ldrb r0, [r5, 0x1] - cmp r0, 0 - beq _0804EC2A - movs r0, 0x5 - bl audio_play - ldrb r0, [r5, 0x1] - bl sub_8056BAC - movs r0, 0 - strb r0, [r5, 0x1] - bl sub_8056B74 -_0804EC2A: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804EC52 - ldr r4, =gUnknown_02024332 - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _0804EC52 - movs r0, 0x5 - bl audio_play - ldrb r0, [r4, 0x1] - bl sub_8056BAC - movs r0, 0x1 - strb r0, [r4, 0x1] - bl sub_8056B74 -_0804EC52: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0804EC70 - ldr r0, =gUnknown_02024332 - movs r4, 0x1 - strb r4, [r0, 0x1] - b _0804EC7A - .pool -_0804EC70: - movs r4, 0x1 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _0804EC96 -_0804EC7A: - movs r0, 0x5 - bl audio_play - str r4, [sp] - movs r0, 0x18 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl sub_8056A3C - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_0804EC96: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk67_8025ECC - - thumb_func_start sub_804ECA4 -sub_804ECA4: @ 804ECA4 - push {r4,r5,lr} - movs r1, 0 - ldr r2, =gUnknown_0202406C - ldr r5, =gUnknown_02024214 - ldrb r0, [r2] - cmp r1, r0 - bge _0804ECC2 - ldr r4, =gUnknown_0202407A - movs r3, 0xC -_0804ECB6: - adds r0, r1, r4 - strb r3, [r0] - adds r1, 0x1 - ldrb r0, [r2] - cmp r1, r0 - blt _0804ECB6 -_0804ECC2: - ldr r0, [r5] - adds r0, 0x1 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_804ECA4 - - thumb_func_start atk69_8025FE0 -atk69_8025FE0: @ 804ECDC - push {r4-r7,lr} - ldr r7, =gBattleMons - ldr r6, =gEnemyMonIndex - ldrb r2, [r6] - movs r5, 0x58 - adds r0, r2, 0 - muls r0, r5 - adds r1, r0, r7 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _0804ED10 - ldr r1, =gUnknown_02024404 - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x7] - ldrb r6, [r0, 0x1A] - b _0804ED2A - .pool -_0804ED10: - ldrh r0, [r1, 0x2E] - bl itemid_get_x12 - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r6] - muls r0, r5 - adds r0, r7 - ldrh r0, [r0, 0x2E] - bl itemid_get_quality - lsls r0, 24 - lsrs r6, r0, 24 -_0804ED2A: - ldr r1, =gUnknown_0202420F - ldr r5, =gEnemyMonIndex - ldrb r0, [r5] - strb r0, [r1] - cmp r4, 0x27 - bne _0804ED68 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, r6 - bcs _0804ED68 - ldrb r0, [r5] - movs r1, 0x27 - bl b_history__record_item_x12_of_player - ldr r2, =gUnknown_0202437C - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] -_0804ED68: - ldr r2, =gBattleMons - ldr r3, =gEnemyMonIndex - ldrb r4, [r3] - movs r0, 0x58 - muls r0, r4 - adds r1, r2, 0 - adds r1, 0x50 - adds r0, r1 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 17 - ands r1, r0 - adds r5, r2, 0 - cmp r1, 0 - bne _0804EE38 - ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x65 - beq _0804EDBA - ldr r0, =gUnknown_0202433C - lsls r1, r4, 4 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 30 - cmp r0, 0 - blt _0804EDBA - ldr r0, =gUnknown_0202437C - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - lsrs r0, 7 - cmp r0, 0 - beq _0804EE38 -_0804EDBA: - ldrb r0, [r3] - movs r4, 0x58 - muls r0, r4 - adds r0, r5 - ldrh r1, [r0, 0x28] - ldr r2, =gBattleMoveDamage - ldr r0, [r2] - cmp r1, r0 - bgt _0804EE38 - subs r0, r1, 0x1 - str r0, [r2] - ldr r1, =gUnknown_0202433C - ldrb r3, [r3] - lsls r0, r3, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - cmp r0, 0 - bge _0804EE10 - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - b _0804EE38 - .pool -_0804EE10: - ldr r0, =gUnknown_0202437C - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - lsrs r0, 7 - cmp r0, 0 - beq _0804EE38 - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_02024208 - adds r0, r3, 0 - muls r0, r4 - adds r0, r5 - ldrh r0, [r0, 0x2E] - strh r0, [r1] -_0804EE38: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk69_8025FE0 - - thumb_func_start atk6A_stash_item_for_side -atk6A_stash_item_for_side: @ 804EE58 - push {r4-r6,lr} - sub sp, 0x4 - ldr r6, =gUnknown_02024214 - ldr r0, [r6] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r5, =gUnknown_02024064 - strb r0, [r5] - ldr r1, =gUnknown_0202449C - ldrb r4, [r5] - lsls r0, r4, 1 - adds r0, 0xB8 - ldr r1, [r1] - adds r1, r0 - ldr r2, =gBattleMons - movs r3, 0x58 - adds r0, r4, 0 - muls r0, r3 - adds r0, r2 - ldrh r0, [r0, 0x2E] - strh r0, [r1] - ldrb r0, [r5] - muls r0, r3 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0x2E] - ldrb r0, [r5] - muls r0, r3 - adds r2, 0x2E - adds r0, r2 - str r0, [sp] - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r6] - adds r0, 0x2 - str r0, [r6] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atk6A_stash_item_for_side - - thumb_func_start atk6B_end_battle_80261CC -atk6B_end_battle_80261CC: @ 804EEC8 - ldr r1, =gUnknown_02022F58 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x7 - strb r0, [r1, 0x1] - ldr r2, =gUnknown_0202420B - ldrb r0, [r2] - strb r0, [r1, 0x2] - ldr r3, =gUnknown_0202406E - ldrb r0, [r2] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .pool - thumb_func_end atk6B_end_battle_80261CC - - thumb_func_start atk6C_8026208 -atk6C_8026208: @ 804EF04 - push {r4,lr} - sub sp, 0x4 - ldr r0, =gUnknown_02024474 - ldrb r1, [r0, 0x1E] - adds r4, r0, 0 - cmp r1, 0 - bne _0804EF28 - bl sub_804F498 - cmp r0, 0 - beq _0804EF24 - movs r0, 0x3 - b _0804EF26 - .pool -_0804EF24: - movs r0, 0x1 -_0804EF26: - strb r0, [r4, 0x1E] -_0804EF28: - ldrb r0, [r4, 0x1E] - subs r0, 0x1 - cmp r0, 0x9 - bls _0804EF32 - b _0804F0F2 -_0804EF32: - lsls r0, 2 - ldr r1, =_0804EF40 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0804EF40: - .4byte _0804EF68 - .4byte _0804EF94 - .4byte _0804EFAC - .4byte _0804F000 - .4byte _0804F014 - .4byte _0804F02C - .4byte _0804F014 - .4byte _0804F04C - .4byte _0804F07C - .4byte _0804F0C0 -_0804EF68: - ldr r1, =gUnknown_02022E1E - movs r0, 0x60 - strh r0, [r1] - movs r0, 0x2 - movs r1, 0x7 - movs r2, 0 - bl SetBgAttribute - movs r0, 0x2 - bl ShowBg - bl sub_804F17C - ldr r1, =gUnknown_02024474 - movs r0, 0x2 - strb r0, [r1, 0x1E] - b _0804F0F2 - .pool -_0804EF94: - bl sub_804F1CC - lsls r0, 24 - cmp r0, 0 - beq _0804EFA0 - b _0804F0F2 -_0804EFA0: - ldr r1, =gUnknown_02024474 - movs r0, 0x3 - strb r0, [r1, 0x1E] - b _0804F0F2 - .pool -_0804EFAC: - ldr r1, =gUnknown_02022E18 - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_02022E1A - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0 - movs r1, 0x7 - movs r2, 0x1 - bl SetBgAttribute - movs r0, 0x1 - movs r1, 0x7 - movs r2, 0 - bl SetBgAttribute - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x80 - str r0, [sp] - movs r0, 0x12 - movs r1, 0x7 - movs r2, 0x1D - movs r3, 0x13 - bl sub_8056A3C - ldr r1, =gUnknown_02024474 - movs r0, 0x4 - strb r0, [r1, 0x1E] - b _0804F0F2 - .pool -_0804F000: - bl sub_804F100 - movs r0, 0xD - bl PutWindowTilemap - movs r0, 0xD - movs r1, 0x3 - bl CopyWindowToVram - b _0804F06A -_0804F014: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _0804F0F2 - ldr r0, =gUnknown_02022E1A - strh r1, [r0] - b _0804F06A - .pool -_0804F02C: - ldr r0, =gMain - ldrh r0, [r0, 0x2E] - cmp r0, 0 - beq _0804F0F2 - movs r0, 0x5 - bl audio_play - bl sub_804F144 - movs r0, 0xD - movs r1, 0x2 - bl CopyWindowToVram - b _0804F06A - .pool -_0804F04C: - ldr r0, =gMain - ldrh r0, [r0, 0x2E] - cmp r0, 0 - beq _0804F0F2 - movs r0, 0x5 - bl audio_play - movs r0, 0x81 - str r0, [sp] - movs r0, 0x12 - movs r1, 0x7 - movs r2, 0x1D - movs r3, 0x13 - bl sub_8056A3C -_0804F06A: - ldr r1, =gUnknown_02024474 - ldrb r0, [r1, 0x1E] - adds r0, 0x1 - strb r0, [r1, 0x1E] - b _0804F0F2 - .pool -_0804F07C: - bl sub_804F344 - lsls r0, 24 - cmp r0, 0 - bne _0804F0F2 - movs r0, 0xE - bl ClearWindowTilemap - movs r0, 0xE - movs r1, 0x1 - bl CopyWindowToVram - movs r0, 0xD - bl ClearWindowTilemap - movs r0, 0xD - movs r1, 0x1 - bl CopyWindowToVram - movs r0, 0x2 - movs r1, 0x7 - movs r2, 0x2 - bl SetBgAttribute - movs r0, 0x2 - bl ShowBg - ldr r1, =gUnknown_02024474 - movs r0, 0xA - strb r0, [r1, 0x1E] - b _0804F0F2 - .pool -_0804F0C0: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0804F0F2 - movs r0, 0 - movs r1, 0x7 - movs r2, 0 - bl SetBgAttribute - movs r0, 0x1 - movs r1, 0x7 - movs r2, 0x1 - bl SetBgAttribute - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_0804F0F2: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk6C_8026208 - - thumb_func_start sub_804F100 -sub_804F100: @ 804F100 - push {lr} - sub sp, 0x14 - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - ldrb r1, [r0, 0x10] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - add r1, sp, 0x8 - bl sub_81D388C - ldr r0, =gUnknown_020244A8 - ldr r0, [r0] - ldr r1, [r0, 0x10] - movs r0, 0xD - str r0, [sp] - movs r0, 0xF - str r0, [sp, 0x4] - movs r0, 0xD - add r2, sp, 0x8 - movs r3, 0xE - bl sub_81D3640 - add sp, 0x14 - pop {r0} - bx r0 - .pool - thumb_func_end sub_804F100 - - thumb_func_start sub_804F144 -sub_804F144: @ 804F144 - push {lr} - sub sp, 0x10 - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - ldrb r1, [r0, 0x10] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - add r1, sp, 0x4 - bl sub_81D388C - movs r0, 0xF - str r0, [sp] - movs r0, 0xD - add r1, sp, 0x4 - movs r2, 0xE - movs r3, 0xD - bl sub_81D3784 - add sp, 0x10 - pop {r0} - bx r0 - .pool - thumb_func_end sub_804F144 - - thumb_func_start sub_804F17C -sub_804F17C: @ 804F17C - push {lr} - ldr r1, =gUnknown_02022E1E - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_02022E1C - movs r2, 0xD0 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, =gUnknown_0831C2C8 - movs r1, 0x60 - movs r2, 0x20 - bl LoadPalette - ldr r1, =gUnknown_0831C2E8 - movs r0, 0xE - movs r2, 0 - movs r3, 0 - bl CopyToWindowPixelBuffer - movs r0, 0xE - bl PutWindowTilemap - movs r0, 0xE - movs r1, 0x3 - bl CopyWindowToVram - bl sub_804F384 - pop {r0} - bx r0 - .pool - thumb_func_end sub_804F17C - - thumb_func_start sub_804F1CC -sub_804F1CC: @ 804F1CC - push {r4,r5,lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _0804F1DC - movs r0, 0x1 - b _0804F216 -_0804F1DC: - ldr r4, =gUnknown_02022E1C - ldrh r1, [r4] - movs r5, 0x80 - lsls r5, 2 - cmp r1, r5 - bne _0804F1F0 - movs r0, 0 - b _0804F216 - .pool -_0804F1F0: - movs r0, 0xD0 - lsls r0, 1 - cmp r1, r0 - bne _0804F1FC - bl sub_804F220 -_0804F1FC: - ldrh r0, [r4] - adds r0, 0x8 - strh r0, [r4] - lsls r0, 16 - ldr r1, =0x01ff0000 - cmp r0, r1 - bls _0804F20C - strh r5, [r4] -_0804F20C: - ldrh r1, [r4] - eors r1, r5 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 -_0804F216: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_804F1CC - - thumb_func_start sub_804F220 -sub_804F220: @ 804F220 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - ldr r6, =gUnknown_0202449C - ldr r0, [r6] - ldrb r0, [r0, 0x10] - movs r5, 0x64 - muls r0, r5 - ldr r4, =gPlayerParty - adds r0, r4 - movs r1, 0x38 - bl GetMonData - mov r8, r0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r0, [r6] - ldrb r0, [r0, 0x10] - muls r0, r5 - adds r0, r4 - bl pokemon_get_gender - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, [r6] - ldrb r0, [r0, 0x10] - muls r0, r5 - adds r0, r4 - ldr r5, =gStringVar4 - adds r1, r5, 0 - bl GetMonNickname - str r5, [sp] - mov r2, sp - movs r1, 0 - movs r0, 0xE - strb r0, [r2, 0x4] - mov r0, sp - strb r1, [r0, 0x5] - movs r4, 0x20 - strb r4, [r0, 0x6] - strb r1, [r0, 0x7] - strb r4, [r0, 0x8] - strb r1, [r0, 0x9] - strb r1, [r0, 0xA] - strb r1, [r0, 0xB] - mov r3, sp - ldrb r2, [r3, 0xC] - subs r1, 0x10 - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3, 0xC] - mov r2, sp - movs r0, 0x10 - strb r0, [r2, 0xC] - ldrb r0, [r2, 0xD] - ands r1, r0 - strb r1, [r2, 0xD] - mov r0, sp - strb r4, [r0, 0xD] - movs r1, 0xFF - movs r2, 0 - bl AddTextPrinter - movs r0, 0xF9 - strb r0, [r5] - adds r5, 0x1 - movs r0, 0x5 - strb r0, [r5] - adds r5, 0x1 - adds r4, r5, 0 - adds r0, r4, 0 - mov r1, r8 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r5, r0, 0 - subs r4, r5, r4 - movs r2, 0x4 - subs r2, r4 - lsls r2, 16 - lsrs r2, 16 - movs r1, 0x77 - bl StringFill - adds r5, r0, 0 - cmp r7, 0xFF - beq _0804F320 - cmp r7, 0 - bne _0804F300 - movs r1, 0 - movs r2, 0xC - bl WriteColorChangeControlCode - adds r5, r0, 0 - movs r1, 0x1 - movs r2, 0xD - bl WriteColorChangeControlCode - adds r5, r0, 0 - movs r0, 0xB5 - b _0804F318 - .pool -_0804F300: - adds r0, r5, 0 - movs r1, 0 - movs r2, 0xE - bl WriteColorChangeControlCode - adds r5, r0, 0 - movs r1, 0x1 - movs r2, 0xF - bl WriteColorChangeControlCode - adds r5, r0, 0 - movs r0, 0xB6 -_0804F318: - strb r0, [r5] - adds r5, 0x1 - movs r0, 0xFF - strb r0, [r5] -_0804F320: - mov r0, sp - movs r1, 0xA - strb r1, [r0, 0x7] - strb r1, [r0, 0x9] - movs r1, 0xFF - movs r2, 0 - bl AddTextPrinter - movs r0, 0xE - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804F220 - - thumb_func_start sub_804F344 -sub_804F344: @ 804F344 - push {lr} - ldr r0, =gUnknown_02022E1C - ldrh r1, [r0] - movs r3, 0xD0 - lsls r3, 1 - adds r2, r0, 0 - cmp r1, r3 - bne _0804F35C - movs r0, 0 - b _0804F380 - .pool -_0804F35C: - ldrh r0, [r2] - adds r1, r0, 0 - subs r1, 0x10 - ldr r0, =0x0000019f - cmp r1, r0 - bgt _0804F370 - strh r3, [r2] - b _0804F372 - .pool -_0804F370: - strh r1, [r2] -_0804F372: - ldrh r1, [r2] - movs r0, 0xD0 - lsls r0, 1 - eors r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 -_0804F380: - pop {r1} - bx r1 - thumb_func_end sub_804F344 - - thumb_func_start sub_804F384 -sub_804F384: @ 804F384 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x10 - ldr r0, =gUnknown_0202449C - mov r8, r0 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - movs r6, 0x64 - muls r0, r6 - ldr r5, =gPlayerParty - adds r0, r5 - movs r1, 0xB - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r1, r8 - ldr r0, [r1] - ldrb r0, [r0, 0x10] - muls r0, r6 - adds r0, r5 - movs r1, 0 - bl GetMonData - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0x1 - bl sub_80D2EDC - str r0, [sp] - ldr r5, =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r5 - movs r1, 0x80 - lsls r1, 2 - orrs r0, r1 - ldr r1, =0x0000ffff - ands r0, r1 - ldr r1, =0xd75a0000 - orrs r0, r1 - str r0, [sp, 0x4] - adds r0, r4, 0 - bl sub_80D30B0 - str r0, [sp, 0x8] - add r4, sp, 0x8 - ldr r0, [r4, 0x4] - ands r0, r5 - ldr r1, =0x0000d75a - orrs r0, r1 - str r0, [r4, 0x4] - mov r0, sp - bl LoadObjectPic - adds r0, r4, 0 - bl LoadTaggedObjectPalette - ldr r0, =gUnknown_0831C3C0 - movs r1, 0x80 - lsls r1, 1 - movs r2, 0xA - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_02020630 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x2E] - ldr r0, =gUnknown_02022E1C - ldrh r0, [r0] - strh r0, [r1, 0x30] - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_804F384 - - thumb_func_start sub_804F450 -sub_804F450: @ 804F450 - push {r4,lr} - adds r2, r0, 0 - ldr r0, =gUnknown_02022E1C - ldrh r1, [r2, 0x30] - ldrh r0, [r0] - subs r1, r0 - strh r1, [r2, 0x24] - lsls r1, 16 - cmp r1, 0 - beq _0804F470 - movs r0, 0x1 - strh r0, [r2, 0x2E] - b _0804F48C - .pool -_0804F470: - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _0804F48C - adds r0, r2, 0 - bl RemoveObjectAndFreeTiles - ldr r4, =0x0000d75a - adds r0, r4, 0 - bl FreeObjectTilesByTag - adds r0, r4, 0 - bl FreeObjectPaletteByTag -_0804F48C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_804F450 - - thumb_func_start sub_804F498 -sub_804F498: @ 804F498 - push {lr} - ldr r3, =gUnknown_0202406E - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - ldrh r1, [r3] - ldrb r2, [r0, 0x10] - cmp r1, r2 - beq _0804F4BA - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0804F4CC - ldrh r0, [r3, 0x4] - cmp r0, r2 - bne _0804F4CC -_0804F4BA: - movs r0, 0x1 - b _0804F4CE - .pool -_0804F4CC: - movs r0, 0 -_0804F4CE: - pop {r1} - bx r1 - thumb_func_end sub_804F498 - - thumb_func_start sub_804F4D4 -sub_804F4D4: @ 804F4D4 - push {lr} - bl sub_803F988 - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_804F4D4 - - thumb_func_start atk6E_state0_side_becomes_attacker -atk6E_state0_side_becomes_attacker: @ 804F4EC - push {lr} - movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, =gUnknown_0202420B - strb r0, [r1] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atk6E_state0_side_becomes_attacker - - thumb_func_start atk6F_8026810 -atk6F_8026810: @ 804F50C - push {r4,r5,lr} - ldr r5, =gUnknown_02024214 - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r4, =gUnknown_02024064 - strb r0, [r4] - movs r0, 0 - movs r1, 0 - bl dp01_build_cmdbuf_x33_a_33_33 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk6F_8026810 - - thumb_func_start atk70_record_ability_usage_of_side -atk70_record_ability_usage_of_side: @ 804F540 - push {r4,lr} - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r1, =gUnknown_02024064 - strb r0, [r1] - ldrb r0, [r1] - ldr r1, =gUnknown_0202420A - ldrb r1, [r1] - bl b_history__record_ability_usage_of_player - ldr r0, [r4] - adds r0, 0x1 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk70_record_ability_usage_of_side - - thumb_func_start sub_804F574 -sub_804F574: @ 804F574 - ldr r2, =gUnknown_02022F68 - movs r0, 0xFD - strb r0, [r2] - movs r0, 0x2 - strb r0, [r2, 0x1] - ldr r0, =gUnknown_020244E2 - ldrh r1, [r0] - strb r1, [r2, 0x2] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r2, 0x3] - movs r0, 0xFF - strb r0, [r2, 0x4] - bx lr - .pool - thumb_func_end sub_804F574 - - thumb_func_start atk71_80268A0 -atk71_80268A0: @ 804F59C - push {lr} - bl sub_804F574 - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atk71_80268A0 - - thumb_func_start atk72_flee -atk72_flee: @ 804F5B4 - push {lr} - ldr r0, =gUnknown_0202420D - ldrb r0, [r0] - bl sub_803EC20 - lsls r0, 24 - cmp r0, 0 - beq _0804F5E8 - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0804F5F0 - .pool -_0804F5E8: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0804F5F0: - pop {r0} - bx r0 - .pool - thumb_func_end atk72_flee - - thumb_func_start atk73_cmd73 -atk73_cmd73: @ 804F5F8 - push {r4-r6,lr} - ldr r0, =gBattleTypeFlags - ldr r4, [r0] - movs r6, 0x1 - ands r4, r6 - cmp r4, 0 - bne _0804F68E - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r1, =gUnknown_02024064 - strb r0, [r1] - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gBattleMons - movs r1, 0x58 - muls r1, r0 - adds r1, r2 - ldrh r5, [r1, 0x28] - movs r0, 0x64 - muls r0, r5 - ldrh r1, [r1, 0x2C] - bl __divsi3 - cmp r0, 0 - bne _0804F636 - movs r0, 0x1 -_0804F636: - cmp r0, 0x45 - bgt _0804F63E - cmp r5, 0 - bne _0804F65C -_0804F63E: - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - adds r0, 0xB1 - strb r4, [r0] - b _0804F68E - .pool -_0804F65C: - cmp r0, 0x27 - ble _0804F670 - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - adds r0, 0xB1 - strb r6, [r0] - b _0804F68E - .pool -_0804F670: - cmp r0, 0x9 - ble _0804F684 - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - adds r0, 0xB1 - movs r1, 0x2 - b _0804F68C - .pool -_0804F684: - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - adds r0, 0xB1 - movs r1, 0x3 -_0804F68C: - strb r1, [r0] -_0804F68E: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atk73_cmd73 - - thumb_func_start atk74_hp_tresholds_2 -atk74_hp_tresholds_2: @ 804F6A4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, =gBattleTypeFlags - ldr r7, [r0] - movs r0, 0x1 - mov r8, r0 - ands r7, r0 - cmp r7, 0 - bne _0804F73E - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - adds r4, r0, 0 - ldr r0, =gUnknown_02024064 - strb r4, [r0] - movs r0, 0x1 - eors r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - ldr r1, =gUnknown_0202449C - ldr r6, [r1] - lsrs r0, 23 - adds r0, r6 - adds r0, 0xA8 - ldrb r5, [r0] - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r4 - adds r0, r1 - ldrh r4, [r0, 0x28] - subs r1, r5, r4 - movs r0, 0x64 - muls r0, r1 - adds r1, r5, 0 - bl __divsi3 - adds r1, r0, 0 - cmp r4, r5 - bcc _0804F71C - adds r0, r6, 0 - adds r0, 0xB1 - strb r7, [r0] - b _0804F73E - .pool -_0804F71C: - cmp r0, 0x1D - bgt _0804F72A - adds r0, r6, 0 - adds r0, 0xB1 - mov r1, r8 - strb r1, [r0] - b _0804F73E -_0804F72A: - cmp r1, 0x45 - bgt _0804F736 - adds r1, r6, 0 - adds r1, 0xB1 - movs r0, 0x2 - b _0804F73C -_0804F736: - adds r1, r6, 0 - adds r1, 0xB1 - movs r0, 0x3 -_0804F73C: - strb r0, [r1] -_0804F73E: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk74_hp_tresholds_2 - - thumb_func_start atk75_8026A58 -atk75_8026A58: @ 804F754 - push {lr} - sub sp, 0x4 - ldr r2, =gUnknown_020244B8 - ldr r1, =gUnknown_0202420B - ldrb r0, [r1] - strb r0, [r2] - ldr r2, =gUnknown_0202406E - ldrb r0, [r1] - lsls r0, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r1, =gEnemyParty - adds r0, r1 - ldr r1, =gUnknown_02024208 - ldrh r1, [r1] - lsls r2, 24 - lsrs r2, 24 - movs r3, 0x1 - str r3, [sp] - movs r3, 0 - bl ExecuteTableBasedItemEffect - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end atk75_8026A58 - - thumb_func_start sub_804F7AC -sub_804F7AC: @ 804F7AC - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r1, =gUnknown_02024064 - strb r0, [r1] - ldr r0, [r4] - ldrb r0, [r0, 0x2] - cmp r0, 0x1A - bls _0804F7CA - b _0804FD70 -_0804F7CA: - lsls r0, 2 - ldr r1, =_0804F7E0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0804F7E0: - .4byte _0804F84C - .4byte _0804F85C - .4byte _0804F8BC - .4byte _0804F8CC - .4byte _0804F8E4 - .4byte _0804F920 - .4byte _0804F958 - .4byte _0804F9E0 - .4byte _0804FA20 - .4byte _0804FACC - .4byte _0804FAE8 - .4byte _0804FB3C - .4byte _0804FB94 - .4byte _0804FC18 - .4byte _0804FC2C - .4byte _0804FC32 - .4byte _0804FC38 - .4byte _0804FC60 - .4byte _0804FC6A - .4byte _0804FC78 - .4byte _0804FC8C - .4byte _0804FCC4 - .4byte _0804FCD8 - .4byte _0804FCF0 - .4byte _0804FD1C - .4byte _0804FD30 - .4byte _0804FD5C -_0804F84C: - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl b_cancel_multi_turn_move_maybe - b _0804FD70 - .pool -_0804F85C: - ldr r1, =gUnknown_0202420B - ldr r4, =gEnemyMonIndex - ldrb r0, [r4] - strb r0, [r1] - ldrb r0, [r1] - bl battle_side_get_owner - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_02024294 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r2, r1, r2 - ldrb r0, [r2, 0x8] - cmp r0, 0 - beq _0804F8A8 - ldr r1, =gBattleMons - ldrb r2, [r2, 0x9] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _0804F8A8 - strb r2, [r4] - b _0804FD70 - .pool -_0804F8A8: - ldr r0, =gEnemyMonIndex - ldr r1, =gUnknown_02024064 - ldrb r1, [r1] - strb r1, [r0] - b _0804FD70 - .pool -_0804F8BC: - bl sub_803BB88 - ldr r1, =gUnknown_02024332 - strb r0, [r1] - b _0804FD70 - .pool -_0804F8CC: - ldr r0, =gUnknown_020241EA - ldrh r0, [r0] - movs r1, 0 - bl sub_80458E0 - ldr r1, =gEnemyMonIndex - strb r0, [r1] - b _0804FD70 - .pool -_0804F8E4: - ldr r2, =gUnknown_02024280 - ldr r1, =gBitTable - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - lsls r0, 28 - ldr r2, [r2] - ands r2, r0 - cmp r2, 0 - beq _0804F914 - ldr r1, =gUnknown_02024332 - movs r0, 0x1 - strb r0, [r1] - b _0804FD70 - .pool -_0804F914: - ldr r0, =gUnknown_02024332 - strb r2, [r0] - b _0804FD70 - .pool -_0804F920: - ldr r4, =gUnknown_0202437C - ldr r3, =gUnknown_02024064 - ldrb r0, [r3] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldrb r0, [r3] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - b _0804FD70 - .pool -_0804F958: - ldr r4, =gUnknown_0202406E - ldr r1, =gUnknown_0202449C - ldr r0, [r1] - ldrh r3, [r4] - ldrb r2, [r0, 0x10] - adds r6, r1, 0 - cmp r3, r2 - beq _0804F974 - ldrh r0, [r4, 0x4] - cmp r0, r2 - beq _0804F970 - b _0804FD70 -_0804F970: - cmp r3, r0 - bne _0804F988 -_0804F974: - ldr r1, =gUnknown_02024064 - movs r0, 0 - b _0804F98C - .pool -_0804F988: - ldr r1, =gUnknown_02024064 - movs r0, 0x2 -_0804F98C: - strb r0, [r1] - adds r5, r1, 0 - ldrb r2, [r5] - lsls r0, r2, 1 - adds r0, 0xC8 - ldr r1, [r6] - adds r4, r1, r0 - movs r3, 0 - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r2 - adds r1, 0xC - adds r0, r1 - ldrh r0, [r0] - ldrh r2, [r4] - cmp r0, r2 - beq _0804F9CC - adds r6, r5, 0 - movs r5, 0x58 - adds r2, r1, 0 -_0804F9B4: - adds r3, 0x1 - cmp r3, 0x3 - bgt _0804F9CC - lsls r1, r3, 1 - ldrb r0, [r6] - muls r0, r5 - adds r1, r0 - adds r1, r2 - ldrh r0, [r1] - ldrh r1, [r4] - cmp r0, r1 - bne _0804F9B4 -_0804F9CC: - cmp r3, 0x4 - beq _0804F9D2 - b _0804FD70 -_0804F9D2: - movs r0, 0 - strh r0, [r4] - b _0804FD70 - .pool -_0804F9E0: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0xB - ands r0, r1 - cmp r0, 0x8 - beq _0804F9EE - b _0804FD70 -_0804F9EE: - ldr r1, =gBattleMons - ldrh r0, [r1, 0x28] - cmp r0, 0 - bne _0804F9F8 - b _0804FD70 -_0804F9F8: - adds r0, r1, 0 - adds r0, 0x80 - ldrh r0, [r0] - cmp r0, 0 - bne _0804FA04 - b _0804FD70 -_0804FA04: - ldr r0, =gUnknown_02024280 - ldr r1, [r0] - ldr r2, =0xffbfffff - ands r1, r2 - str r1, [r0] - b _0804FD70 - .pool -_0804FA20: - ldr r2, =gUnknown_02024332 - mov r8, r2 - movs r0, 0 - strb r0, [r2] - ldr r1, =gUnknown_02024474 - ldr r6, =gUnknown_02024064 - ldrb r0, [r2, 0x1] - strb r0, [r6] - strb r0, [r1, 0x17] - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - adds r7, r0, 0 - adds r7, 0x92 - ldrb r3, [r7] - ldr r1, =gBitTable - ldrb r2, [r6] - lsls r0, r2, 2 - adds r0, r1 - ldr r5, [r0] - adds r0, r3, 0 - ands r0, r5 - cmp r0, 0 - beq _0804FA50 - b _0804FD70 -_0804FA50: - ldr r4, =gBattleMons - movs r0, 0x58 - mov r12, r0 - mov r1, r12 - muls r1, r2 - adds r2, r1, 0 - adds r1, r2, r4 - ldrh r0, [r1, 0x2C] - lsrs r0, 1 - ldrh r1, [r1, 0x28] - cmp r0, r1 - bcs _0804FA6A - b _0804FD70 -_0804FA6A: - cmp r1, 0 - bne _0804FA70 - b _0804FD70 -_0804FA70: - adds r0, r4, 0 - adds r0, 0x4C - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - beq _0804FA82 - b _0804FD70 -_0804FA82: - orrs r3, r5 - strb r3, [r7] - movs r0, 0x1 - mov r2, r8 - strb r0, [r2] - ldrb r0, [r6] - mov r1, r12 - muls r1, r0 - adds r0, r1, 0 - adds r1, r4, 0 - adds r1, 0x48 - adds r0, r1 - ldr r0, [r0] - bl GetNatureFromPersonality - ldr r1, =gUnknown_0831C4F8 - lsls r0, 24 - lsrs r0, 24 - adds r0, r1 - ldrb r0, [r0] - mov r2, r8 - strb r0, [r2, 0x5] - b _0804FD70 - .pool -_0804FACC: - ldr r4, =gUnknown_02024332 - adds r0, r4, 0 - bl sub_81A5258 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - bne _0804FADE - b _0804FD78 -_0804FADE: - strb r3, [r4, 0x1] - b _0804FD70 - .pool -_0804FAE8: - ldr r0, =gBattleMons - adds r0, 0x80 - movs r1, 0 - strh r1, [r0] - ldr r2, =gUnknown_02024280 - ldr r3, =gBitTable - ldr r1, [r3, 0x4] - lsls r1, 28 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - ldr r0, =gUnknown_0202449C - ldr r2, [r0] - ldr r0, =0x000002a1 - adds r2, r0 - ldr r0, =gUnknown_0202406E - ldrh r0, [r0, 0x2] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_020242BC - adds r1, 0x34 - ldrb r0, [r1] - movs r2, 0x2 - b _0804FBF4 - .pool -_0804FB3C: - ldr r1, =gBattleMons - movs r0, 0 - strh r0, [r1, 0x28] - ldr r2, =gUnknown_02024280 - ldr r3, =gBitTable - ldr r1, [r3] - lsls r1, 28 - ldr r0, [r2] - orrs r0, r1 - movs r1, 0x80 - lsls r1, 15 - orrs r0, r1 - str r0, [r2] - ldr r0, =gUnknown_0202449C - ldr r2, [r0] - movs r1, 0xA8 - lsls r1, 2 - adds r2, r1 - ldr r0, =gUnknown_0202406E - ldrh r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r2, =gUnknown_020242BC - ldrb r0, [r2, 0x18] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2, 0x18] - b _0804FD70 - .pool -_0804FB94: - ldr r0, =gBattleMons - movs r1, 0 - strh r1, [r0, 0x28] - adds r0, 0x80 - strh r1, [r0] - ldr r2, =gUnknown_02024280 - ldr r3, =gBitTable - ldr r0, [r3] - lsls r0, 28 - ldr r1, [r2] - orrs r1, r0 - ldr r0, [r3, 0x4] - lsls r0, 28 - orrs r1, r0 - movs r0, 0x80 - lsls r0, 15 - orrs r1, r0 - str r1, [r2] - ldr r5, =gUnknown_0202449C - ldr r2, [r5] - movs r0, 0xA8 - lsls r0, 2 - adds r2, r0 - ldr r4, =gUnknown_0202406E - ldrh r0, [r4] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r2, [r5] - ldr r1, =0x000002a1 - adds r2, r1 - ldrh r0, [r4, 0x2] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_020242BC - ldrb r0, [r1, 0x18] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r1, 0x18] - adds r1, 0x34 - ldrb r0, [r1] -_0804FBF4: - orrs r0, r2 - strb r0, [r1] - b _0804FD70 - .pool -_0804FC18: - movs r0, 0 - bl sub_8033E10 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - b _0804FD70 - .pool -_0804FC2C: - bl sub_81A5BF8 - b _0804FD70 -_0804FC32: - bl sub_81A5D44 - b _0804FD70 -_0804FC38: - ldr r1, =gUnknown_085CD1C8 - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl get_battle_strings_ - ldr r0, =gUnknown_02022E2C - movs r1, 0x16 - bl battle_show_message_maybe - b _0804FD70 - .pool -_0804FC60: - movs r0, 0x16 - bl IsTextPrinterActive - lsls r0, 16 - b _0804FD24 -_0804FC6A: - bl sub_80A3678 - lsls r0, 24 - cmp r0, 0 - bne _0804FC76 - b _0804FD78 -_0804FC76: - b _0804FD70 -_0804FC78: - ldr r4, =gUnknown_02024064 - movs r0, 0x1 - strb r0, [r4] - ldr r0, =gBattleMons - adds r0, 0x58 - b _0804FCA2 - .pool -_0804FC8C: - ldr r0, =gUnknown_0202406C - ldrb r0, [r0] - cmp r0, 0x3 - bls _0804FD70 - ldr r4, =gUnknown_02024064 - movs r0, 0x3 - strb r0, [r4] - ldr r0, =gBattleMons - movs r2, 0x84 - lsls r2, 1 - adds r0, r2 -_0804FCA2: - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _0804FD70 - movs r0, 0 - movs r1, 0 - bl dp01_build_cmdbuf_x06_a - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _0804FD70 - .pool -_0804FCC4: - ldr r0, =gMPlay_BGM - ldr r1, =0x0000ffff - movs r2, 0x55 - bl m4aMPlayVolumeControl - b _0804FD70 - .pool -_0804FCD8: - ldr r0, =gMPlay_BGM - ldr r1, =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl - b _0804FD70 - .pool -_0804FCF0: - ldr r0, =gUnknown_0202449C - ldr r2, [r0] - ldr r0, =0x000002a2 - adds r2, r0 - ldr r1, =gBitTable - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - b _0804FD70 - .pool -_0804FD1C: - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl sub_805725C -_0804FD24: - cmp r0, 0 - bne _0804FD78 - b _0804FD70 - .pool -_0804FD30: - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0804FD50 - ldr r1, =gUnknown_0202433A - movs r0, 0x5 - strb r0, [r1] - b _0804FD70 - .pool -_0804FD50: - ldr r1, =gUnknown_0202433A - movs r0, 0xA - strb r0, [r1] - b _0804FD70 - .pool -_0804FD5C: - movs r1, 0xCE - lsls r1, 1 - movs r0, 0 - movs r2, 0x1 - bl sub_8034300 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution -_0804FD70: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x3 - str r0, [r1] -_0804FD78: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_804F7AC - - thumb_func_start atk77_setprotect -atk77_setprotect: @ 804FD8C - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0x1 - ldr r2, =gUnknown_02024260 - ldr r1, =gUnknown_0202420B - ldrb r3, [r1] - lsls r0, r3, 1 - adds r0, r2 - ldrh r0, [r0] - mov r8, r1 - ldr r7, =gUnknown_020242BC - cmp r0, 0xB6 - beq _0804FDBC - cmp r0, 0xC5 - beq _0804FDBC - cmp r0, 0xCB - beq _0804FDBC - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r7 - movs r1, 0 - strb r1, [r0, 0x8] -_0804FDBC: - ldr r0, =gUnknown_02024082 - ldrb r1, [r0] - ldr r0, =gUnknown_0202406C - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - bne _0804FDCC - movs r6, 0 -_0804FDCC: - ldr r2, =gUnknown_0831C3D8 - mov r5, r8 - ldrb r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r7 - ldrb r4, [r0, 0x8] - lsls r4, 1 - adds r4, r2 - bl Random - ldrh r1, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r1, r0 - bcc _0804FE80 - cmp r6, 0 - beq _0804FE80 - ldr r4, =gBattleMoves - ldr r3, =gUnknown_020241EA - ldrh r0, [r3] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r1] - cmp r0, 0x6F - bne _0804FE1C - ldr r0, =gUnknown_0202433C - ldrb r1, [r5] - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x1 - orrs r0, r2 - strb r0, [r1] - ldr r1, =gUnknown_02024332 - movs r0, 0 - strb r0, [r1, 0x5] -_0804FE1C: - ldrh r0, [r3] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r1] - cmp r0, 0x74 - bne _0804FE42 - ldr r0, =gUnknown_0202433C - ldrb r1, [r5] - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r1] - ldr r1, =gUnknown_02024332 - movs r0, 0x1 - strb r0, [r1, 0x5] -_0804FE42: - mov r1, r8 - ldrb r0, [r1] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r7 - ldrb r0, [r1, 0x8] - adds r0, 0x1 - strb r0, [r1, 0x8] - b _0804FEA2 - .pool -_0804FE80: - ldr r2, =gUnknown_020242BC - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strb r1, [r0, 0x8] - ldr r1, =gUnknown_02024332 - movs r0, 0x2 - strb r0, [r1, 0x5] - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] -_0804FEA2: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk77_setprotect - - thumb_func_start atk78_faintifabilitynotdamp -atk78_faintifabilitynotdamp: @ 804FEC8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, =gUnknown_02024068 - ldr r2, [r0] - cmp r2, 0 - bne _0804FFCC - ldr r1, =gEnemyMonIndex - strb r2, [r1] - ldr r0, =gUnknown_0202406C - ldrb r3, [r0] - adds r5, r1, 0 - mov r8, r0 - ldr r6, =gBattleMons - cmp r2, r3 - bcs _0804FF14 - adds r0, r6, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x6 - beq _0804FF14 - adds r2, r3, 0 - adds r4, r6, 0 - movs r3, 0x58 -_0804FEF8: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, r2 - bcs _0804FF14 - ldrb r0, [r5] - muls r0, r3 - adds r0, r4 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x6 - bne _0804FEF8 -_0804FF14: - ldrb r0, [r5] - mov r1, r8 - ldrb r1, [r1] - cmp r0, r1 - bne _0804FFB0 - ldr r4, =gUnknown_02024064 - ldr r7, =gUnknown_0202420B - ldrb r0, [r7] - strb r0, [r4] - ldr r2, =gBattleMoveDamage - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - adds r0, r6 - ldrh r0, [r0, 0x28] - str r0, [r2] - ldr r1, =0x00007fff - movs r0, 0 - bl dp01_build_cmdbuf_x18_0_aa_health_bar_update - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - movs r0, 0 - strb r0, [r5] - mov r2, r8 - ldrb r0, [r2] - cmp r0, 0 - beq _0804FFCC - adds r3, r5, 0 - ldrb r5, [r7] - ldr r7, =gBitTable - adds r4, r0, 0 - ldr r6, =gUnknown_02024210 -_0804FF60: - ldrb r2, [r3] - cmp r2, r5 - beq _0804FF76 - ldrb r0, [r6] - ldrb r1, [r3] - lsls r1, 2 - adds r1, r7 - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - beq _0804FFCC -_0804FF76: - adds r0, r2, 0x1 - strb r0, [r3] - lsls r0, 24 - lsrs r0, 24 - cmp r0, r4 - bcc _0804FF60 - b _0804FFCC - .pool -_0804FFB0: - ldr r1, =gUnknown_0202420A - movs r0, 0x6 - strb r0, [r1] - ldrb r0, [r5] - movs r1, 0x58 - muls r1, r0 - adds r1, r6 - adds r1, 0x20 - ldrb r1, [r1] - bl b_history__record_ability_usage_of_player - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DB560 - str r0, [r1] -_0804FFCC: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk78_faintifabilitynotdamp - - thumb_func_start atk79_setuserhptozero -atk79_setuserhptozero: @ 804FFE4 - push {r4,lr} - sub sp, 0x4 - ldr r0, =gUnknown_02024068 - ldr r3, [r0] - cmp r3, 0 - bne _08050028 - ldr r4, =gUnknown_02024064 - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - strb r0, [r4] - ldr r1, =gBattleMons - ldrb r0, [r4] - movs r2, 0x58 - muls r0, r2 - adds r0, r1 - strh r3, [r0, 0x28] - ldrb r0, [r4] - muls r0, r2 - adds r1, 0x28 - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x2A - movs r2, 0 - movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_08050028: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk79_setuserhptozero - - thumb_func_start sub_8050044 -sub_8050044: @ 8050044 - push {r4-r7,lr} - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r4, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r4, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r4, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r4, r0 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - adds r7, r3, 0 - cmp r0, 0 - beq _080500DC - ldr r0, =gEnemyMonIndex - ldrb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - ldr r2, =gUnknown_0202420B - lsls r1, 24 - lsrs r1, 24 - adds r3, r0, 0 - ldr r6, =gUnknown_02024210 - ldr r5, =gBitTable - ldr r0, =gUnknown_0202406C - mov r12, r0 - ldrb r0, [r2] - cmp r1, r0 - bne _0805009A -_0805008A: - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r2] - cmp r0, r1 - beq _0805008A -_0805009A: - ldrb r0, [r6] - ldrb r1, [r3] - lsls r1, 2 - adds r1, r5 - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - bne _0805008A - ldrb r0, [r3] - mov r2, r12 - ldrb r2, [r2] - cmp r0, r2 - bcc _080500D8 - ldr r0, [r7] - adds r0, 0x5 - str r0, [r7] - b _080500E0 - .pool -_080500D8: - str r4, [r7] - b _080500E0 -_080500DC: - adds r0, r2, 0x5 - str r0, [r3] -_080500E0: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8050044 - - thumb_func_start sub_80500E8 -sub_80500E8: @ 80500E8 - push {r4-r6,lr} - ldr r4, =gUnknown_02024214 - ldr r1, [r4] - ldrb r2, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - orrs r2, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - orrs r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - orrs r2, r0 - ldrb r0, [r1, 0x5] - ldr r3, =gEnemyMonIndex - cmp r0, 0x1 - bne _08050110 - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - strb r0, [r3] -_08050110: - ldr r1, =gBattleMoveDamage - ldr r6, =gBattleMons - ldrb r0, [r3] - movs r5, 0x58 - muls r0, r5 - adds r0, r6 - ldrh r0, [r0, 0x2C] - lsrs r0, 1 - str r0, [r1] - cmp r0, 0 - bne _0805012A - movs r0, 0x1 - str r0, [r1] -_0805012A: - ldr r0, [r1] - negs r0, r0 - str r0, [r1] - ldrb r0, [r3] - muls r0, r5 - adds r0, r6 - ldrh r1, [r0, 0x28] - ldrh r0, [r0, 0x2C] - cmp r1, r0 - bne _08050158 - str r2, [r4] - b _0805015E - .pool -_08050158: - ldr r0, [r4] - adds r0, 0x6 - str r0, [r4] -_0805015E: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80500E8 - - thumb_func_start sub_8050164 -sub_8050164: @ 8050164 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - ldr r2, =gUnknown_0202406C - ldr r0, =gUnknown_0202420B - mov r10, r0 - movs r1, 0 - add r0, sp, 0x4 -_0805017A: - strh r1, [r0] - subs r0, 0x2 - cmp r0, sp - bge _0805017A - movs r1, 0 - mov r8, r1 - movs r5, 0 - ldrb r1, [r2] - cmp r5, r1 - bge _080501D0 - ldr r0, =gUnknown_0202420B - ldrb r6, [r0] - ldr r2, =0x0000ffff - mov r9, r2 - lsls r4, r6, 3 - mov r2, sp - ldr r0, =gUnknown_0202449C - mov r12, r0 - adds r7, r1, 0 -_080501A0: - cmp r5, r6 - beq _080501C8 - mov r1, r12 - ldr r0, [r1] - adds r0, r4, r0 - adds r1, r0, 0 - adds r1, 0xE0 - ldrb r3, [r1] - adds r0, 0xE1 - ldrb r0, [r0] - lsls r0, 8 - orrs r3, r0 - cmp r3, 0 - beq _080501C8 - cmp r3, r9 - beq _080501C8 - strh r3, [r2] - adds r2, 0x2 - movs r0, 0x1 - add r8, r0 -_080501C8: - adds r4, 0x2 - adds r5, 0x1 - cmp r5, r7 - blt _080501A0 -_080501D0: - mov r1, r10 - ldrb r0, [r1] - ldr r2, =gUnknown_0202449C - ldr r1, [r2] - lsls r0, 1 - adds r0, r1 - adds r1, r0, 0 - adds r1, 0x98 - ldrb r3, [r1] - adds r0, 0x99 - ldrb r0, [r0] - lsls r0, 8 - orrs r3, r0 - cmp r3, 0 - beq _08050220 - ldr r0, =0x0000ffff - cmp r3, r0 - beq _08050220 - ldr r2, =gUnknown_02024280 - ldr r0, [r2] - ldr r1, =0xfffffbff - ands r0, r1 - str r0, [r2] - ldr r4, =gUnknown_020241EA - strh r3, [r4] - b _0805024A - .pool -_08050220: - mov r0, r8 - cmp r0, 0 - beq _08050290 - ldr r2, =gUnknown_02024280 - ldr r0, [r2] - ldr r1, =0xfffffbff - ands r0, r1 - str r0, [r2] - bl Random - lsls r0, 16 - lsrs r0, 16 - mov r1, r8 - bl __modsi3 - adds r5, r0, 0 - ldr r4, =gUnknown_020241EA - lsls r0, r5, 1 - add r0, sp - ldrh r0, [r0] - strh r0, [r4] -_0805024A: - ldrh r0, [r4] - movs r1, 0 - bl sub_80458E0 - ldr r1, =gEnemyMonIndex - strb r0, [r1] - ldr r5, =gUnknown_02024214 - ldr r3, =gUnknown_082D86A8 - ldr r2, =gBattleMoves - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - str r0, [r5] - b _080502AE - .pool -_08050290: - ldr r2, =gUnknown_0202437C - mov r0, r10 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_080502AE: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8050164 - - thumb_func_start sub_80502C8 -sub_80502C8: @ 80502C8 - push {lr} - ldr r2, =gBattleWeather - ldrh r0, [r2] - movs r1, 0x7 - ands r1, r0 - cmp r1, 0 - beq _080502F4 - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_02024332 - movs r0, 0x2 - strb r0, [r1, 0x5] - b _08050304 - .pool -_080502F4: - movs r0, 0x1 - strh r0, [r2] - ldr r0, =gUnknown_02024332 - strb r1, [r0, 0x5] - ldr r0, =gUnknown_020243D0 - adds r0, 0x28 - movs r1, 0x5 - strb r1, [r0] -_08050304: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_80502C8 - - thumb_func_start atk7E_setreflect -atk7E_setreflect: @ 805031C - push {r4-r6,lr} - ldr r6, =gUnknown_0202420B - ldrb r0, [r6] - bl battle_get_per_side_status - ldr r4, =gUnknown_0202428E - movs r5, 0x1 - adds r1, r5, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - ldrh r1, [r1] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _0805035C - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_02024332 - movs r0, 0 - b _080503D0 - .pool -_0805035C: - ldrb r0, [r6] - bl battle_get_per_side_status - adds r1, r5, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - ldrh r0, [r1] - movs r2, 0x1 - orrs r0, r2 - strh r0, [r1] - ldrb r0, [r6] - bl battle_get_per_side_status - ldr r4, =gUnknown_02024294 - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x5 - strb r1, [r0] - ldrb r0, [r6] - bl battle_get_per_side_status - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r6] - strb r1, [r0, 0x1] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ands r0, r5 - cmp r0, 0 - beq _080503CC - movs r0, 0x1 - bl sub_8069DEC - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x2 - bne _080503CC - ldr r0, =gUnknown_02024332 - strb r1, [r0, 0x5] - b _080503D2 - .pool -_080503CC: - ldr r1, =gUnknown_02024332 - movs r0, 0x1 -_080503D0: - strb r0, [r1, 0x5] -_080503D2: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atk7E_setreflect - - thumb_func_start sub_80503E8 -sub_80503E8: @ 80503E8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r7, =gBattleMoveFlags - ldrb r5, [r7] - movs r0, 0x29 - ands r0, r5 - cmp r0, 0 - bne _0805041A - ldr r0, =gUnknown_020242AC - mov r9, r0 - ldr r1, =gEnemyMonIndex - mov r8, r1 - ldrb r4, [r1] - lsls r0, r4, 2 - mov r2, r9 - adds r6, r0, r2 - ldr r2, [r6] - movs r0, 0x4 - mov r12, r0 - adds r3, r2, 0 - ands r3, r0 - cmp r3, 0 - beq _08050438 -_0805041A: - movs r0, 0x1 - orrs r0, r5 - strb r0, [r7] - ldr r1, =gUnknown_02024332 - movs r0, 0x1 - strb r0, [r1, 0x5] - b _08050488 - .pool -_08050438: - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r4 - adds r1, r0, r1 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0xC - beq _08050454 - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0xC - bne _0805046C -_08050454: - movs r0, 0x1 - orrs r0, r5 - strb r0, [r7] - ldr r1, =gUnknown_02024332 - movs r0, 0x2 - strb r0, [r1, 0x5] - b _08050488 - .pool -_0805046C: - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - orrs r2, r0 - str r2, [r6] - mov r2, r8 - ldrb r1, [r2] - lsls r1, 2 - add r1, r9 - ldr r0, [r1] - mov r2, r12 - orrs r0, r2 - str r0, [r1] - ldr r0, =gUnknown_02024332 - strb r3, [r0, 0x5] -_08050488: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80503E8 - - thumb_func_start atk80_manipulatedamage -atk80_manipulatedamage: @ 80504A8 - push {r4,lr} - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - ldrb r2, [r0, 0x1] - adds r4, r1, 0 - cmp r2, 0x1 - beq _080504D8 - cmp r2, 0x1 - bgt _080504C4 - cmp r2, 0 - beq _080504CA - b _08050518 - .pool -_080504C4: - cmp r2, 0x2 - beq _08050510 - b _08050518 -_080504CA: - ldr r1, =gBattleMoveDamage - ldr r0, [r1] - negs r0, r0 - b _08050516 - .pool -_080504D8: - ldr r3, =gBattleMoveDamage - ldr r0, [r3] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - str r0, [r3] - cmp r0, 0 - bne _080504EA - str r2, [r3] -_080504EA: - ldr r2, =gBattleMons - ldr r0, =gEnemyMonIndex - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x2C] - lsrs r1, r0, 1 - ldr r0, [r3] - cmp r1, r0 - bge _08050518 - str r1, [r3] - b _08050518 - .pool -_08050510: - ldr r1, =gBattleMoveDamage - ldr r0, [r1] - lsls r0, 1 -_08050516: - str r0, [r1] -_08050518: - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk80_manipulatedamage - - thumb_func_start atk81_setrest -atk81_setrest: @ 8050528 - push {r4-r7,lr} - sub sp, 0x4 - ldr r0, =gUnknown_02024214 - mov r12, r0 - ldr r1, [r0] - ldrb r6, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - orrs r6, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - orrs r6, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - orrs r6, r0 - ldr r5, =gUnknown_02024064 - ldr r2, =gEnemyMonIndex - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - strb r0, [r2] - strb r0, [r5] - ldr r4, =gBattleMoveDamage - ldr r1, =gBattleMons - ldrb r0, [r2] - movs r3, 0x58 - muls r0, r3 - adds r0, r1 - ldrh r0, [r0, 0x2C] - negs r0, r0 - str r0, [r4] - ldrb r0, [r2] - adds r4, r0, 0 - muls r4, r3 - adds r0, r4, r1 - ldrh r3, [r0, 0x28] - adds r7, r5, 0 - adds r5, r2, 0 - adds r2, r1, 0 - ldrh r0, [r0, 0x2C] - cmp r3, r0 - bne _08050598 - mov r0, r12 - str r6, [r0] - b _080505E8 - .pool -_08050598: - adds r0, r2, 0 - adds r0, 0x4C - adds r0, r4, r0 - ldr r1, [r0] - movs r0, 0xF8 - ands r1, r0 - cmp r1, 0 - beq _080505B4 - ldr r1, =gUnknown_02024332 - movs r0, 0x1 - strb r0, [r1, 0x5] - b _080505B8 - .pool -_080505B4: - ldr r0, =gUnknown_02024332 - strb r1, [r0, 0x5] -_080505B8: - ldrb r0, [r5] - movs r3, 0x58 - muls r0, r3 - adds r2, 0x4C - adds r0, r2 - movs r1, 0x3 - str r1, [r0] - ldrb r0, [r7] - muls r0, r3 - adds r0, r2 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r7] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_080505E8: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk81_setrest - - thumb_func_start atk82_jumpifnotfirstturn -atk82_jumpifnotfirstturn: @ 80505F8 - push {r4,r5,lr} - ldr r5, =gUnknown_02024214 - ldr r4, [r5] - ldrb r3, [r4, 0x1] - ldrb r0, [r4, 0x2] - lsls r0, 8 - orrs r3, r0 - ldrb r0, [r4, 0x3] - lsls r0, 16 - orrs r3, r0 - ldrb r0, [r4, 0x4] - lsls r0, 24 - orrs r3, r0 - ldr r2, =gUnknown_020242BC - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x16] - cmp r0, 0 - beq _08050638 - adds r0, r4, 0x5 - str r0, [r5] - b _0805063A - .pool -_08050638: - str r3, [r5] -_0805063A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end atk82_jumpifnotfirstturn - - thumb_func_start sub_8050640 -sub_8050640: @ 8050640 - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .pool - thumb_func_end sub_8050640 - - thumb_func_start sub_8050650 -sub_8050650: @ 8050650 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r3, r0, 24 - movs r2, 0 - ldr r0, =gUnknown_0202406C - ldrb r1, [r0] - mov r8, r0 - cmp r2, r1 - bge _080506C4 - ldr r0, =gBattleMons - mov r12, r0 - movs r0, 0x58 - muls r0, r3 - add r0, r12 - adds r5, r0, 0 - adds r5, 0x20 - adds r4, r1, 0 - movs r3, 0 - ldr r6, =gUnknown_02024474 - ldr r7, =gUnknown_02024332 -_0805067C: - mov r0, r12 - adds r0, 0x50 - adds r0, r3, r0 - ldr r0, [r0] - movs r1, 0x70 - ands r0, r1 - cmp r0, 0 - beq _080506BC - ldrb r0, [r5] - cmp r0, 0x2B - beq _080506BC - movs r3, 0 - strb r2, [r6, 0x17] - ldr r1, =gEnemyMonIndex - ldrb r0, [r1] - cmp r0, 0xFF - beq _080506DC - cmp r0, r2 - beq _080506D0 - movs r0, 0x1 - strb r0, [r7, 0x5] - b _080506C4 - .pool -_080506BC: - adds r3, 0x58 - adds r2, 0x1 - cmp r2, r4 - blt _0805067C -_080506C4: - mov r1, r8 - ldrb r1, [r1] - cmp r2, r1 - beq _080506E0 - movs r0, 0x1 - b _080506E2 -_080506D0: - ldr r0, =gUnknown_02024332 - strb r3, [r0, 0x5] - b _080506C4 - .pool -_080506DC: - strb r2, [r1] - b _080506C4 -_080506E0: - movs r0, 0 -_080506E2: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8050650 - - thumb_func_start sub_80506EC -sub_80506EC: @ 80506EC - push {r4-r6,lr} - ldr r5, =gUnknown_02024214 - ldr r1, [r5] - ldrb r4, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - orrs r4, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - orrs r4, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - orrs r4, r0 - ldr r6, =gEnemyMonIndex - ldrb r0, [r6] - bl sub_8050650 - lsls r0, 24 - cmp r0, 0 - beq _08050720 - str r4, [r5] - b _08050762 - .pool -_08050720: - ldr r1, =gBattleMons - ldrb r3, [r6] - movs r0, 0x58 - muls r0, r3 - adds r0, r1 - adds r0, 0x20 - ldrb r0, [r0] - adds r1, r0, 0 - cmp r1, 0xF - beq _08050738 - cmp r1, 0x48 - bne _0805075C -_08050738: - ldr r2, =gUnknown_0202420A - strb r0, [r2] - ldr r1, =gUnknown_02024332 - movs r0, 0x2 - strb r0, [r1, 0x5] - str r4, [r5] - ldrb r1, [r2] - adds r0, r3, 0 - bl b_history__record_ability_usage_of_player - b _08050762 - .pool -_0805075C: - ldr r0, [r5] - adds r0, 0x5 - str r0, [r5] -_08050762: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80506EC - - thumb_func_start sub_8050768 -sub_8050768: @ 8050768 - push {r4,r5,lr} - ldr r5, =gUnknown_020242BC - ldr r4, =gUnknown_0202420B - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r0, r5 - ldrb r0, [r1, 0x9] - cmp r0, 0x3 - bne _080507A0 - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_02024332 - movs r0, 0x1 - strb r0, [r1, 0x5] - b _080507CA - .pool -_080507A0: - adds r0, 0x1 - movs r3, 0 - strb r0, [r1, 0x9] - ldr r2, =gUnknown_02022F58 - movs r0, 0xFD - strb r0, [r2] - movs r0, 0x1 - strb r0, [r2, 0x1] - strb r0, [r2, 0x2] - strb r0, [r2, 0x3] - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r0, [r0, 0x9] - strb r0, [r2, 0x4] - movs r0, 0xFF - strb r0, [r2, 0x5] - ldr r0, =gUnknown_02024332 - strb r3, [r0, 0x5] -_080507CA: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8050768 - - thumb_func_start atk86_stockpiletobasedamage -atk86_stockpiletobasedamage: @ 80507E4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - ldr r3, =gUnknown_02024214 - ldr r1, [r3] - ldrb r2, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - orrs r2, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - orrs r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - orrs r2, r0 - ldr r7, =gUnknown_020242BC - ldr r6, =gUnknown_0202420B - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r7 - ldrb r0, [r0, 0x9] - cmp r0, 0 - bne _08050828 - str r2, [r3] - b _080508CA - .pool -_08050828: - ldr r0, =gUnknown_02024332 - ldrb r0, [r0, 0x6] - cmp r0, 0x1 - beq _080508B0 - ldr r0, =gBattleMoveDamage - mov r8, r0 - ldr r4, =gUnknown_0202428E - ldr r5, =gEnemyMonIndex - ldrb r0, [r5] - bl battle_get_per_side_status - movs r1, 0x1 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - ldrh r3, [r1] - ldrb r0, [r6] - movs r4, 0x58 - muls r0, r4 - ldr r2, =gBattleMons - adds r0, r2 - ldrb r1, [r5] - muls r1, r4 - adds r1, r2 - ldr r2, =gUnknown_020241EA - ldrh r2, [r2] - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - ldrb r4, [r6] - str r4, [sp, 0x8] - ldrb r4, [r5] - str r4, [sp, 0xC] - bl sub_806957C - ldrb r2, [r6] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r7 - ldrb r1, [r1, 0x9] - adds r3, r0, 0 - muls r3, r1 - mov r1, r8 - str r3, [r1] - ldr r2, =gUnknown_02024474 - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r7 - ldrb r0, [r0, 0x9] - strb r0, [r2, 0x18] - ldr r1, =gUnknown_0202433C - ldrb r0, [r6] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 28 - cmp r0, 0 - bge _080508B0 - lsls r0, r3, 4 - subs r0, r3 - movs r1, 0xA - bl __divsi3 - mov r1, r8 - str r0, [r1] -_080508B0: - ldr r2, =gUnknown_020242BC - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strb r1, [r0, 0x9] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_080508CA: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk86_stockpiletobasedamage - - thumb_func_start atk87_stockpiletohprecovery -atk87_stockpiletohprecovery: @ 8050904 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r7, =gUnknown_02024214 - ldr r1, [r7] - ldrb r2, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - orrs r2, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - orrs r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - orrs r2, r0 - ldr r0, =gUnknown_020242BC - mov r8, r0 - ldr r6, =gUnknown_0202420B - ldrb r3, [r6] - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - mov r1, r8 - adds r4, r0, r1 - ldrb r1, [r4, 0x9] - cmp r1, 0 - bne _08050954 - str r2, [r7] - ldr r0, =gUnknown_02024332 - strb r1, [r0, 0x5] - b _080509D0 - .pool -_08050954: - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r3 - adds r1, r0, r1 - ldrh r0, [r1, 0x2C] - ldrh r3, [r1, 0x28] - cmp r0, r3 - bne _08050984 - movs r0, 0 - strb r0, [r4, 0x9] - str r2, [r7] - ldr r1, =gEnemyMonIndex - ldrb r0, [r6] - strb r0, [r1] - ldr r1, =gUnknown_02024332 - movs r0, 0x1 - strb r0, [r1, 0x5] - b _080509D0 - .pool -_08050984: - ldr r5, =gBattleMoveDamage - ldrh r0, [r1, 0x2C] - ldrb r1, [r4, 0x9] - movs r2, 0x3 - subs r2, r1 - movs r4, 0x1 - adds r1, r4, 0 - lsls r1, r2 - bl __divsi3 - str r0, [r5] - cmp r0, 0 - bne _080509A0 - str r4, [r5] -_080509A0: - ldr r0, [r5] - negs r0, r0 - str r0, [r5] - ldr r3, =gUnknown_02024474 - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r8 - ldrb r0, [r0, 0x9] - movs r2, 0 - strb r0, [r3, 0x18] - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r8 - strb r2, [r0, 0x9] - ldr r0, [r7] - adds r0, 0x5 - str r0, [r7] - ldr r1, =gEnemyMonIndex - ldrb r0, [r6] - strb r0, [r1] -_080509D0: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk87_stockpiletohprecovery - - thumb_func_start atk88_negativedamage -atk88_negativedamage: @ 80509E8 - push {lr} - ldr r2, =gBattleMoveDamage - ldr r0, =gUnknown_020241F4 - ldr r0, [r0] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - negs r0, r0 - str r0, [r2] - cmp r0, 0 - bne _08050A04 - movs r0, 0x1 - negs r0, r0 - str r0, [r2] -_08050A04: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atk88_negativedamage - - thumb_func_start sub_8050A1C -sub_8050A1C: @ 8050A1C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r8, r3 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r5, r2, 24 - movs r0, 0 - mov r9, r0 - mov r10, r0 - movs r0, 0x40 - ands r0, r5 - cmp r0, 0 - beq _08050A50 - ldr r0, =gUnknown_02024064 - ldr r1, =gUnknown_0202420B - b _08050A54 - .pool -_08050A50: - ldr r0, =gUnknown_02024064 - ldr r1, =gEnemyMonIndex -_08050A54: - ldrb r1, [r1] - strb r1, [r0] - movs r0, 0xBF - ands r5, r0 - movs r0, 0x80 - ands r0, r5 - cmp r0, 0 - beq _08050A6E - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_08050A6E: - movs r0, 0x7F - ands r5, r0 - movs r0, 0x20 - ands r0, r5 - cmp r0, 0 - beq _08050A84 - mov r0, r10 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 -_08050A84: - movs r0, 0xDF - ands r5, r0 - ldr r1, =gUnknown_02022F58 - movs r4, 0 - movs r2, 0xFD - strb r2, [r1] - movs r0, 0x5 - strb r0, [r1, 0x1] - strb r7, [r1, 0x2] - movs r3, 0x1 - negs r3, r3 - mov r12, r3 - movs r0, 0xFF - strb r0, [r1, 0x3] - lsls r0, r6, 24 - cmp r0, 0 - blt _08050AA8 - b _08050D8C -_08050AA8: - ldr r4, =gUnknown_02024294 - ldr r1, =gUnknown_02024064 - ldrb r0, [r1] - bl battle_get_per_side_status - movs r1, 0x1 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x4] - cmp r0, 0 - beq _08050B48 - mov r2, r9 - cmp r2, 0 - bne _08050B48 - ldr r0, =gUnknown_020241EA - ldrh r0, [r0] - cmp r0, 0xAE - beq _08050B78 - cmp r5, 0x1 - bne _08050B68 - ldr r4, =gUnknown_0202437C - ldr r3, =gUnknown_02024064 - ldrb r0, [r3] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r1] - lsls r0, 31 - cmp r0, 0 - beq _08050B10 - ldr r0, =gUnknown_02024214 - mov r4, r8 - str r4, [r0] - b _08050B68 - .pool -_08050B10: - mov r0, r8 - bl b_movescr_stack_push - ldr r1, =gUnknown_02024474 - ldr r6, =gUnknown_02024064 - ldrb r0, [r6] - strb r0, [r1, 0x17] - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DAE03 - str r0, [r1] - ldrb r1, [r6] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - b _08050B68 - .pool -_08050B48: - ldr r0, =gUnknown_020241EA - ldrh r0, [r0] - cmp r0, 0xAE - beq _08050B78 - mov r0, r10 - cmp r0, 0x1 - beq _08050B78 - movs r0, 0 - bl sub_80464AC - lsls r0, 24 - cmp r0, 0 - beq _08050B78 - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082D9F1C - str r0, [r1] -_08050B68: - movs r0, 0x1 - b _08050E80 - .pool -_08050B78: - ldr r2, =gBattleMons - ldr r1, =gUnknown_02024064 - ldrb r3, [r1] - movs r4, 0x58 - adds r0, r3, 0 - muls r0, r4 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - mov r10, r2 - cmp r0, 0x1D - beq _08050B94 - cmp r0, 0x49 - bne _08050C2C -_08050B94: - mov r0, r9 - cmp r0, 0 - bne _08050C2C - ldr r0, =gUnknown_020241EA - ldrh r0, [r0] - cmp r0, 0xAE - beq _08050C2C - cmp r5, 0x1 - bne _08050B68 - ldr r4, =gUnknown_0202437C - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - beq _08050BD4 - ldr r0, =gUnknown_02024214 - mov r1, r8 - str r1, [r0] - b _08050B68 - .pool -_08050BD4: - mov r0, r8 - bl b_movescr_stack_push - ldr r1, =gUnknown_02024474 - ldr r2, =gUnknown_02024064 - ldrb r0, [r2] - strb r0, [r1, 0x17] - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DB5C7 - str r0, [r1] - ldr r1, =gUnknown_0202420A - ldrb r0, [r2] - movs r3, 0x58 - muls r0, r3 - add r0, r10 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r2] - ldrb r1, [r1] - bl b_history__record_ability_usage_of_player - ldr r6, =gUnknown_02024064 - ldrb r1, [r6] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - b _08050B68 - .pool -_08050C2C: - ldr r1, =gUnknown_02024064 - ldrb r0, [r1] - movs r4, 0x58 - muls r0, r4 - add r0, r10 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x33 - bne _08050C8C - mov r2, r9 - cmp r2, 0 - bne _08050C8C - cmp r7, 0x6 - bne _08050C8C - cmp r5, 0x1 - bne _08050B68 - mov r0, r8 - bl b_movescr_stack_push - ldr r1, =gUnknown_02024474 - ldr r3, =gUnknown_02024064 - ldrb r0, [r3] - strb r0, [r1, 0x17] - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DB62F - str r0, [r1] - ldr r1, =gUnknown_0202420A - ldrb r0, [r3] - muls r0, r4 - add r0, r10 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r3] - ldrb r1, [r1] - bl b_history__record_ability_usage_of_player - b _08050B68 - .pool -_08050C8C: - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - movs r4, 0x58 - muls r0, r4 - add r0, r10 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x34 - bne _08050CF0 - mov r0, r9 - cmp r0, 0 - bne _08050CF0 - cmp r7, 0x1 - bne _08050CF0 - cmp r5, 0x1 - beq _08050CAE - b _08050B68 -_08050CAE: - mov r0, r8 - bl b_movescr_stack_push - ldr r1, =gUnknown_02024474 - ldr r2, =gUnknown_02024064 - ldrb r0, [r2] - strb r0, [r1, 0x17] - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DB62F - str r0, [r1] - ldr r1, =gUnknown_0202420A - ldrb r0, [r2] - muls r0, r4 - add r0, r10 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r2] - ldrb r1, [r1] - bl b_history__record_ability_usage_of_player - b _08050B68 - .pool -_08050CF0: - ldr r3, =gUnknown_02024064 - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - add r0, r10 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x13 - bne _08050D08 - cmp r5, 0 - bne _08050D08 - b _08050B68 -_08050D08: - lsls r0, r6, 24 - asrs r0, 28 - movs r1, 0x7 - ands r0, r1 - negs r0, r0 - lsls r0, 24 - ldr r3, =gUnknown_02022F68 - movs r4, 0 - movs r1, 0xFD - strb r1, [r3] - movs r2, 0x1 - lsrs r6, r0, 24 - asrs r0, 24 - subs r1, 0xFF - cmp r0, r1 - bne _08050D32 - strb r4, [r3, 0x1] - movs r0, 0xD3 - strb r0, [r3, 0x2] - strb r4, [r3, 0x3] - movs r2, 0x4 -_08050D32: - adds r0, r2, r3 - strb r4, [r0] - adds r2, 0x1 - adds r1, r2, r3 - movs r0, 0xD4 - strb r0, [r1] - adds r2, 0x1 - adds r0, r2, r3 - strb r4, [r0] - adds r2, 0x1 - adds r1, r2, r3 - movs r0, 0xFF - strb r0, [r1] - ldr r4, =gUnknown_02024064 - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r0, r7, r0 - mov r1, r10 - adds r1, 0x18 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _08050DE2 - movs r1, 0 - ldr r0, =gEnemyMonIndex - ldrb r0, [r0] - ldr r3, =gUnknown_02024332 - mov r8, r3 - cmp r0, r2 - bne _08050D76 - movs r1, 0x1 -_08050D76: - mov r4, r8 - strb r1, [r4, 0x5] - b _08050E10 - .pool -_08050D8C: - asrs r6, r0, 28 - movs r0, 0x7 - ands r6, r0 - ldr r3, =gUnknown_02022F68 - strb r2, [r3] - movs r2, 0x1 - cmp r6, 0x2 - bne _08050DA6 - strb r4, [r3, 0x1] - movs r0, 0xD1 - strb r0, [r3, 0x2] - strb r4, [r3, 0x3] - movs r2, 0x4 -_08050DA6: - adds r0, r2, r3 - strb r4, [r0] - adds r2, 0x1 - adds r1, r2, r3 - movs r0, 0xD2 - strb r0, [r1] - adds r2, 0x1 - adds r0, r2, r3 - strb r4, [r0] - adds r2, 0x1 - adds r1, r2, r3 - ldrb r0, [r1] - mov r2, r12 - orrs r0, r2 - strb r0, [r1] - ldr r2, =gBattleMons - ldr r4, =gUnknown_02024064 - ldrb r3, [r4] - movs r0, 0x58 - muls r0, r3 - adds r0, r7, r0 - adds r1, r2, 0 - adds r1, 0x18 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - mov r10, r2 - cmp r0, 0xC - bne _08050DFC -_08050DE2: - ldr r1, =gUnknown_02024332 - movs r0, 0x2 - strb r0, [r1, 0x5] - mov r8, r1 - b _08050E10 - .pool -_08050DFC: - movs r1, 0 - ldr r0, =gEnemyMonIndex - ldrb r0, [r0] - ldr r2, =gUnknown_02024332 - mov r8, r2 - cmp r0, r3 - bne _08050E0C - movs r1, 0x1 -_08050E0C: - mov r3, r8 - strb r1, [r3, 0x5] -_08050E10: - ldr r2, =gUnknown_02024064 - ldrb r0, [r2] - movs r4, 0x58 - adds r1, r0, 0 - muls r1, r4 - adds r1, r7, r1 - mov r3, r10 - adds r3, 0x18 - adds r1, r3 - lsls r0, r6, 24 - asrs r0, 24 - ldrb r6, [r1] - adds r0, r6 - strb r0, [r1] - ldrb r0, [r2] - muls r0, r4 - adds r0, r7, r0 - adds r1, r0, r3 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - bge _08050E40 - movs r0, 0 - strb r0, [r1] -_08050E40: - ldr r1, =gUnknown_02024064 - ldrb r0, [r1] - muls r0, r4 - adds r0, r7, r0 - adds r1, r0, r3 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0xC - ble _08050E56 - movs r0, 0xC - strb r0, [r1] -_08050E56: - mov r2, r8 - ldrb r0, [r2, 0x5] - cmp r0, 0x2 - bne _08050E7E - movs r3, 0x1 - ands r3, r5 - cmp r3, 0 - beq _08050E70 - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] -_08050E70: - mov r4, r8 - ldrb r0, [r4, 0x5] - cmp r0, 0x2 - bne _08050E7E - cmp r3, 0 - bne _08050E7E - b _08050B68 -_08050E7E: - movs r0, 0 -_08050E80: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8050A1C - - thumb_func_start atk89_statbuffchange -atk89_statbuffchange: @ 8050EA0 - push {r4,r5,lr} - ldr r5, =gUnknown_02024214 - ldr r2, [r5] - ldrb r3, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r3, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r3, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r3, r0 - ldr r0, =gUnknown_02024474 - ldrb r4, [r0, 0x1A] - movs r0, 0xF0 - ands r0, r4 - lsls r0, 24 - asrs r0, 24 - movs r1, 0xF - ands r1, r4 - ldrb r2, [r2, 0x1] - bl sub_8050A1C - lsls r0, 24 - cmp r0, 0 - bne _08050EDC - ldr r0, [r5] - adds r0, 0x6 - str r0, [r5] -_08050EDC: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk89_statbuffchange - - thumb_func_start atk8A_normalisebuffs -atk8A_normalisebuffs: @ 8050EEC - push {r4-r7,lr} - movs r2, 0 - ldr r0, =gUnknown_0202406C - ldrb r1, [r0] - ldr r0, =gUnknown_02024214 - mov r12, r0 - cmp r2, r1 - bge _08050F24 - ldr r0, =gBattleMons - movs r4, 0x6 - adds r5, r1, 0 - movs r7, 0x58 - adds r6, r0, 0 - adds r6, 0x18 -_08050F08: - adds r3, r2, 0x1 - movs r1, 0x7 - adds r0, r2, 0 - muls r0, r7 - adds r0, r6 - adds r0, 0x7 -_08050F14: - strb r4, [r0] - subs r0, 0x1 - subs r1, 0x1 - cmp r1, 0 - bge _08050F14 - adds r2, r3, 0 - cmp r2, r5 - blt _08050F08 -_08050F24: - mov r1, r12 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk8A_normalisebuffs - - thumb_func_start atk8B_setbide -atk8B_setbide: @ 8050F40 - push {r4,r5,lr} - ldr r4, =gBattleMons - ldr r3, =gUnknown_0202420B - ldrb r0, [r3] - movs r5, 0x58 - adds r2, r0, 0 - muls r2, r5 - adds r4, 0x50 - adds r2, r4 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 5 - orrs r0, r1 - str r0, [r2] - ldr r1, =gUnknown_02024268 - ldrb r0, [r3] - lsls r0, 1 - adds r0, r1 - ldr r1, =gUnknown_020241EA - ldrh r1, [r1] - movs r2, 0 - strh r1, [r0] - ldr r1, =gUnknown_020241F8 - ldrb r0, [r3] - lsls r0, 2 - adds r0, r1 - str r2, [r0] - ldrb r0, [r3] - adds r1, r0, 0 - muls r1, r5 - adds r1, r4 - ldr r0, [r1] - movs r2, 0x80 - lsls r2, 2 - orrs r0, r2 - str r0, [r1] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk8B_setbide - - thumb_func_start atk8C_confuseifrepeatingattackends -atk8C_confuseifrepeatingattackends: @ 8050FB0 - push {lr} - ldr r1, =gBattleMons - ldr r0, =gUnknown_0202420B - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0xC0 - lsls r1, 4 - ands r0, r1 - cmp r0, 0 - bne _08050FD2 - ldr r1, =gUnknown_02024332 - movs r0, 0x75 - strb r0, [r1, 0x3] -_08050FD2: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atk8C_confuseifrepeatingattackends - - thumb_func_start atk8D_setloopcounter -atk8D_setloopcounter: @ 8050FF0 - push {r4,r5,lr} - ldr r0, =gUnknown_02024214 - ldr r0, [r0] - ldrb r1, [r0, 0x1] - cmp r1, 0 - beq _0805100C - ldr r0, =gUnknown_02024212 - strb r1, [r0] - b _08051026 - .pool -_0805100C: - ldr r4, =gUnknown_02024212 - bl Random - movs r5, 0x3 - ands r0, r5 - strb r0, [r4] - cmp r0, 0x1 - bls _08051022 - bl Random - ands r0, r5 -_08051022: - adds r0, 0x2 - strb r0, [r4] -_08051026: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atk8D_setloopcounter - - thumb_func_start atk8E_cmd8e -atk8E_cmd8e: @ 805103C - ldr r1, =gUnknown_02024474 - movs r2, 0 - movs r0, 0xFD - strb r0, [r1, 0x8] - movs r0, 0x1 - strb r0, [r1, 0x9] - strb r0, [r1, 0xA] - strb r0, [r1, 0xB] - strb r2, [r1, 0xC] - movs r0, 0xFF - strb r0, [r1, 0xD] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .pool - thumb_func_end atk8E_cmd8e - - thumb_func_start sub_8051064 -sub_8051064: @ 8051064 - push {r4-r7,lr} - ldr r6, =gBattleMons - ldr r7, =gUnknown_0202420B - ldrb r0, [r7] - movs r5, 0x58 - adds r1, r0, 0 - muls r1, r5 - adds r1, r6 - adds r1, 0x2A - ldr r4, =gEnemyMonIndex - ldrb r3, [r4] - adds r0, r3, 0 - muls r0, r5 - adds r0, r6 - adds r0, 0x2A - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bcc _080510AC - ldr r0, =gUnknown_0202449C - ldr r1, [r0] - adds r1, r3, r1 - adds r1, 0x58 - ldr r2, =gUnknown_0202406E - lsls r0, r3, 1 - b _08051108 - .pool -_080510AC: - bl Random - movs r3, 0xFF - ands r3, r0 - ldrb r0, [r7] - muls r0, r5 - adds r0, r6 - adds r0, 0x2A - ldrb r2, [r0] - ldrb r4, [r4] - adds r0, r4, 0 - muls r0, r5 - adds r0, r6 - adds r0, 0x2A - ldrb r1, [r0] - adds r2, r1 - adds r0, r3, 0 - muls r0, r2 - asrs r0, 8 - adds r0, 0x1 - lsrs r1, 2 - cmp r0, r1 - bhi _080510FC - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - movs r0, 0 - b _08051116 - .pool -_080510FC: - ldr r0, =gUnknown_0202449C - ldr r1, [r0] - adds r1, r4, r1 - adds r1, 0x58 - ldr r2, =gUnknown_0202406E - lsls r0, r4, 1 -_08051108: - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1] - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DADD8 - str r0, [r1] - movs r0, 0x1 -_08051116: - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8051064 - - thumb_func_start sub_805112C -sub_805112C: @ 805112C - 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] - ldr r5, =gBattleTypeFlags - ldr r0, [r5] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - bne _0805114A - b _08051410 -_0805114A: - ldr r4, =gEnemyMonIndex - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - ldr r1, =gEnemyParty - str r1, [sp] - cmp r0, 0 - bne _08051160 - ldr r0, =gPlayerParty - str r0, [sp] -_08051160: - ldr r2, [r5] - movs r1, 0x81 - lsls r1, 1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, r1 - beq _08051182 - ldr r1, =0x02000100 - adds r0, r2, 0 - ands r0, r1 - cmp r0, r1 - beq _08051182 - movs r0, 0x80 - lsls r0, 15 - ands r0, r2 - cmp r0, 0 - beq _080511C8 -_08051182: - ldr r2, =gEnemyMonIndex - ldrb r1, [r2] - movs r0, 0x2 - ands r0, r1 - adds r1, r2, 0 - cmp r0, 0 - beq _080511AC - movs r0, 0x3 - mov r9, r0 - movs r0, 0x6 - b _080511B2 - .pool -_080511AC: - movs r0, 0 - mov r9, r0 - movs r0, 0x3 -_080511B2: - mov r8, r0 - movs r0, 0x3 - mov r10, r0 - movs r0, 0x1 - str r0, [sp, 0x8] - ldr r2, =gUnknown_0202406E - ldrb r1, [r1] - b _0805128E - .pool -_080511C8: - movs r0, 0x42 - ands r0, r2 - cmp r0, 0x42 - beq _080511DA - ldr r1, =0x02000040 - adds r0, r2, 0 - ands r0, r1 - cmp r0, r1 - bne _0805121C -_080511DA: - ldrb r0, [r4] - bl sub_806D864 - lsls r0, 24 - lsrs r0, 24 - bl sub_806D82C - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bne _080511FC - movs r1, 0x3 - mov r9, r1 - movs r0, 0x6 - b _08051202 - .pool -_080511FC: - movs r1, 0 - mov r9, r1 - movs r0, 0x3 -_08051202: - mov r8, r0 - movs r1, 0x3 - mov r10, r1 - movs r0, 0x1 - str r0, [sp, 0x8] - ldr r2, =gUnknown_0202406E - ldr r0, =gEnemyMonIndex - ldrb r1, [r0] - b _0805128E - .pool -_0805121C: - movs r0, 0x80 - lsls r0, 8 - ands r0, r2 - cmp r0, 0 - beq _08051274 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08051240 - movs r1, 0 - mov r9, r1 - movs r0, 0x6 - mov r8, r0 - mov r10, r0 - movs r1, 0x2 - b _08051260 -_08051240: - ldrb r1, [r4] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08051252 - movs r0, 0x3 - mov r9, r0 - movs r1, 0x6 - b _08051258 -_08051252: - movs r0, 0 - mov r9, r0 - movs r1, 0x3 -_08051258: - mov r8, r1 - movs r0, 0x3 - mov r10, r0 - movs r1, 0x1 -_08051260: - str r1, [sp, 0x8] - ldr r2, =gUnknown_0202406E - ldr r0, =gEnemyMonIndex - ldrb r1, [r0] - b _0805128E - .pool -_08051274: - movs r0, 0x1 - ands r2, r0 - cmp r2, 0 - beq _080512A4 - movs r0, 0 - mov r9, r0 - movs r1, 0x6 - mov r8, r1 - mov r10, r1 - movs r0, 0x2 - str r0, [sp, 0x8] - ldr r2, =gUnknown_0202406E - ldrb r1, [r4] -_0805128E: - lsls r0, r1, 1 - adds r0, r2 - ldrh r7, [r0] - movs r0, 0x2 - eors r1, r0 - lsls r1, 1 - adds r1, r2 - ldrh r5, [r1] - b _080512BE - .pool -_080512A4: - movs r1, 0 - mov r9, r1 - movs r0, 0x6 - mov r8, r0 - mov r10, r0 - movs r1, 0x1 - str r1, [sp, 0x8] - ldr r1, =gUnknown_0202406E - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r5, [r0] - adds r7, r5, 0 -_080512BE: - mov r6, r9 - cmp r6, r8 - bge _080512FC -_080512C4: - movs r0, 0x64 - muls r0, r6 - ldr r1, [sp] - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _080512F6 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _080512F6 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _080512F6 - ldr r0, [sp, 0x4] - adds r0, 0x1 - str r0, [sp, 0x4] -_080512F6: - adds r6, 0x1 - cmp r6, r8 - blt _080512C4 -_080512FC: - ldr r1, [sp, 0x4] - ldr r0, [sp, 0x8] - cmp r1, r0 - bgt _08051328 - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08051414 - .pool -_08051328: - bl sub_8051064 - lsls r0, 24 - cmp r0, 0 - beq _08051378 -_08051332: - bl Random - lsls r0, 16 - lsrs r0, 16 - mov r1, r10 - bl __modsi3 - adds r6, r0, 0 - add r6, r9 - cmp r6, r7 - beq _08051332 - cmp r6, r5 - beq _08051332 - movs r0, 0x64 - muls r0, r6 - ldr r1, [sp] - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08051332 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0x1 - beq _08051332 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08051332 -_08051378: - ldr r4, =gEnemyMonIndex - ldrb r0, [r4] - ldr r1, =gUnknown_0202449C - ldr r1, [r1] - adds r0, r1 - adds r0, 0x5C - strb r6, [r0] - bl sub_81B1250 - lsls r0, 24 - cmp r0, 0 - bne _08051396 - ldrb r0, [r4] - bl sub_803BDA0 -_08051396: - ldr r0, =gBattleTypeFlags - ldr r2, [r0] - movs r1, 0x81 - lsls r1, 1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, r1 - beq _080513C0 - movs r0, 0x42 - ands r0, r2 - cmp r0, 0x42 - beq _080513C0 - ldr r1, =0x02000100 - adds r0, r2, 0 - ands r0, r1 - cmp r0, r1 - beq _080513C0 - ldr r0, =0x02000040 - ands r2, r0 - cmp r2, r0 - bne _080513DE -_080513C0: - ldr r5, =gEnemyMonIndex - ldrb r0, [r5] - lsls r4, r6, 24 - lsrs r4, 24 - adds r1, r4, 0 - movs r2, 0 - bl sub_81B8E80 - ldrb r1, [r5] - movs r0, 0x2 - eors r0, r1 - adds r1, r4, 0 - movs r2, 0x1 - bl sub_81B8E80 -_080513DE: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 15 - ands r0, r1 - cmp r0, 0 - beq _08051414 - ldr r0, =gEnemyMonIndex - ldrb r0, [r0] - lsls r1, r6, 24 - lsrs r1, 24 - bl sub_80571DC - b _08051414 - .pool -_08051410: - bl sub_8051064 -_08051414: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_805112C - - thumb_func_start sub_8051424 -sub_8051424: @ 8051424 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r6, 0 - ldr r2, =gBattleMons - ldr r3, =gUnknown_0202420B - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - adds r1, r2, 0 - adds r1, 0xC - adds r0, r1 - ldrh r0, [r0] - mov r8, r2 - cmp r0, 0 - beq _08051466 - movs r5, 0x58 - adds r2, r1, 0 -_0805144C: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x3 - bhi _08051466 - lsls r1, r6, 1 - ldrb r0, [r3] - muls r0, r5 - adds r1, r0 - adds r1, r2 - ldrh r0, [r1] - cmp r0, 0 - bne _0805144C -_08051466: - movs r3, 0 - cmp r3, r6 - bcs _080514E8 - ldr r0, =gBattleMoves - mov r10, r0 - ldr r5, =gBattleMons - mov r12, r5 - ldr r7, =gUnknown_0202420B - ldrb r0, [r7] - movs r4, 0x58 - adds r5, r0, 0 - muls r5, r4 - movs r0, 0xC - add r0, r12 - mov r9, r0 -_08051484: - lsls r0, r3, 1 - adds r0, r5 - add r0, r9 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - add r0, r10 - ldrb r2, [r0, 0x2] - cmp r2, 0x9 - bne _080514C6 - mov r0, r8 - adds r1, r5, r0 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x7 - beq _080514B2 - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x7 - bne _080514C4 -_080514B2: - movs r2, 0x7 - b _080514C6 - .pool -_080514C4: - movs r2, 0 -_080514C6: - ldrb r0, [r7] - muls r0, r4 - add r0, r12 - adds r1, r0, 0 - adds r1, 0x21 - ldrb r1, [r1] - cmp r2, r1 - beq _080514DE - adds r0, 0x22 - ldrb r0, [r0] - cmp r2, r0 - bne _080514E8 -_080514DE: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r6 - bcc _08051484 -_080514E8: - cmp r3, r6 - bne _0805150C - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _080515B0 - .pool -_0805150C: - movs r7, 0x3 - ldr r5, =gBattleMoves - mov r9, r5 -_08051512: - bl Random - adds r3, r0, 0 - ands r3, r7 - cmp r3, r6 - bcs _08051512 - ldr r4, =gBattleMons - lsls r1, r3, 1 - ldr r3, =gUnknown_0202420B - ldrb r2, [r3] - movs r0, 0x58 - adds r5, r2, 0 - muls r5, r0 - adds r1, r5 - adds r0, r4, 0 - adds r0, 0xC - adds r1, r0 - ldrh r1, [r1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - add r0, r9 - ldrb r2, [r0, 0x2] - mov r8, r4 - adds r4, r3, 0 - cmp r2, 0x9 - bne _08051572 - mov r0, r8 - adds r2, r5, r0 - adds r0, r2, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x7 - beq _08051560 - adds r0, r2, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x7 - bne _08051570 -_08051560: - movs r2, 0x7 - b _08051572 - .pool -_08051570: - movs r2, 0 -_08051572: - ldrb r0, [r4] - movs r3, 0x58 - muls r0, r3 - add r0, r8 - adds r1, r0, 0 - adds r1, 0x21 - ldrb r5, [r1] - cmp r2, r5 - beq _08051512 - adds r0, 0x22 - ldrb r0, [r0] - cmp r2, r0 - beq _08051512 - strb r2, [r1] - ldrb r0, [r4] - muls r0, r3 - add r0, r8 - adds r0, 0x22 - strb r2, [r0] - ldr r1, =gUnknown_02022F58 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x3 - strb r0, [r1, 0x1] - strb r2, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_080515B0: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8051424 - - thumb_func_start atk91_givemoney -atk91_givemoney: @ 80515C8 - push {r4,lr} - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ldr r1, =0x02000002 - ands r0, r1 - cmp r0, 0 - bne _08051650 - ldr r1, =gUnknown_0202432E - ldrh r0, [r1] - cmp r0, 0 - beq _08051650 - adds r1, r0, 0 - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - adds r0, 0x4A - ldrb r0, [r0] - adds r4, r1, 0 - muls r4, r0 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x92 - lsls r1, 3 - adds r0, r1 - adds r1, r4, 0 - bl add_money - ldr r1, =gUnknown_02022F58 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x1 - strb r0, [r1, 0x1] - movs r0, 0x2 - strb r0, [r1, 0x2] - movs r0, 0x5 - strb r0, [r1, 0x3] - strb r4, [r1, 0x4] - movs r0, 0xFF - lsls r0, 8 - ands r4, r0 - lsrs r4, 8 - strb r4, [r1, 0x5] - movs r0, 0xFF - strb r0, [r1, 0x6] - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, =gUnknown_082DB307 - str r0, [r4] - b _08051658 - .pool -_08051650: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_08051658: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atk91_givemoney - - thumb_func_start atk92_setlightscreen -atk92_setlightscreen: @ 8051664 - push {r4-r6,lr} - ldr r5, =gUnknown_0202420B - ldrb r0, [r5] - bl battle_get_per_side_status - ldr r4, =gUnknown_0202428E - movs r6, 0x1 - adds r1, r6, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - ldrh r1, [r1] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080516A4 - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_02024332 - movs r0, 0 - b _08051718 - .pool -_080516A4: - ldrb r0, [r5] - bl battle_get_per_side_status - adds r1, r6, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - ldrh r0, [r1] - movs r2, 0x2 - orrs r0, r2 - strh r0, [r1] - ldrb r0, [r5] - bl battle_get_per_side_status - ldr r4, =gUnknown_02024294 - adds r1, r6, 0 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x5 - strb r1, [r0, 0x2] - ldrb r0, [r5] - bl battle_get_per_side_status - adds r1, r6, 0 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r5] - strb r1, [r0, 0x3] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ands r0, r6 - cmp r0, 0 - beq _08051714 - movs r0, 0x1 - bl sub_8069DEC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _08051714 - ldr r1, =gUnknown_02024332 - movs r0, 0x4 - b _08051718 - .pool -_08051714: - ldr r1, =gUnknown_02024332 - movs r0, 0x3 -_08051718: - strb r0, [r1, 0x5] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atk92_setlightscreen - - thumb_func_start atk93_ko_move -atk93_ko_move: @ 8051730 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r7, =gBattleMons - ldr r6, =gEnemyMonIndex - ldrb r2, [r6] - movs r5, 0x58 - adds r0, r2, 0 - muls r0, r5 - adds r1, r0, r7 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _08051768 - ldr r1, =gUnknown_02024404 - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x7] - ldrb r6, [r0, 0x1A] - b _08051782 - .pool -_08051768: - ldrh r0, [r1, 0x2E] - bl itemid_get_x12 - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r6] - muls r0, r5 - adds r0, r7 - ldrh r0, [r0, 0x2E] - bl itemid_get_quality - lsls r0, 24 - lsrs r6, r0, 24 -_08051782: - ldr r1, =gUnknown_0202420F - ldr r5, =gEnemyMonIndex - ldrb r0, [r5] - strb r0, [r1] - cmp r4, 0x27 - bne _080517C0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, r6 - bcs _080517C0 - ldrb r0, [r5] - movs r1, 0x27 - bl b_history__record_item_x12_of_player - ldr r2, =gUnknown_0202437C - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] -_080517C0: - ldr r1, =gBattleMons - ldr r2, =gEnemyMonIndex - ldrb r3, [r2] - movs r6, 0x58 - adds r0, r3, 0 - muls r0, r6 - adds r5, r0, r1 - adds r0, r5, 0 - adds r0, 0x20 - ldrb r4, [r0] - mov r8, r1 - mov r9, r2 - cmp r4, 0x5 - bne _0805181C - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r0, =gUnknown_0202420A - strb r4, [r0] - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DB552 - str r0, [r1] - mov r1, r9 - ldrb r0, [r1] - movs r1, 0x5 - bl b_history__record_ability_usage_of_player - b _08051A70 - .pool -_0805181C: - ldr r1, =gUnknown_020242AC - lsls r0, r3, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x18 - ands r0, r1 - cmp r0, 0 - bne _080518A0 - ldr r1, =gBattleMoves - ldr r0, =gUnknown_020241EA - ldrh r0, [r0] - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldr r7, =gUnknown_0202420B - ldrb r0, [r7] - muls r0, r6 - add r0, r8 - adds r0, 0x2A - ldrb r0, [r0] - adds r1, r5, 0 - adds r1, 0x2A - ldrb r1, [r1] - subs r0, r1 - ldrb r2, [r2, 0x3] - adds r0, r2 - lsls r0, 16 - lsrs r4, r0, 16 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - adds r0, 0x1 - cmp r0, r4 - blt _08051870 - b _08051A08 -_08051870: - ldrb r0, [r7] - adds r1, r0, 0 - muls r1, r6 - add r1, r8 - adds r1, 0x2A - mov r2, r9 - ldrb r0, [r2] - muls r0, r6 - add r0, r8 - adds r0, 0x2A - ldrb r1, [r1] - movs r4, 0x1 - ldrb r0, [r0] - cmp r1, r0 - bcs _08051936 - b _08051A08 - .pool -_080518A0: - ldr r1, =gUnknown_020242BC - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r1 - ldr r1, =gUnknown_0202420B - ldrb r0, [r0, 0x15] - adds r7, r1, 0 - ldrb r3, [r7] - cmp r0, r3 - bne _080518CA - ldrb r0, [r7] - muls r0, r6 - add r0, r8 - adds r0, 0x2A - adds r1, r5, 0 - adds r1, 0x2A - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bcs _08051942 -_080518CA: - ldr r1, =gBattleMoves - ldr r0, =gUnknown_020241EA - ldrh r0, [r0] - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldr r6, =gBattleMons - ldrb r0, [r7] - movs r5, 0x58 - muls r0, r5 - adds r0, r6 - adds r0, 0x2A - ldrb r1, [r0] - ldr r0, =gEnemyMonIndex - mov r8, r0 - ldrb r0, [r0] - muls r0, r5 - adds r0, r6 - adds r0, 0x2A - ldrb r0, [r0] - subs r1, r0 - ldrb r2, [r2, 0x3] - adds r1, r2 - lsls r1, 16 - lsrs r4, r1, 16 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - adds r0, 0x1 - cmp r0, r4 - bge _08051934 - ldrb r0, [r7] - adds r1, r0, 0 - muls r1, r5 - adds r1, r6 - adds r1, 0x2A - mov r2, r8 - ldrb r0, [r2] - muls r0, r5 - adds r0, r6 - adds r0, 0x2A - ldrb r1, [r1] - movs r4, 0x1 - ldrb r0, [r0] - cmp r1, r0 - bcs _08051936 -_08051934: - movs r4, 0 -_08051936: - ldr r3, =gBattleMons - mov r8, r3 - ldr r0, =gEnemyMonIndex - mov r9, r0 - cmp r4, 0 - beq _08051A08 -_08051942: - ldr r0, =gUnknown_0202433C - mov r1, r9 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 30 - cmp r0, 0 - bge _08051990 - ldr r1, =gBattleMoveDamage - movs r0, 0x58 - muls r0, r2 - add r0, r8 - ldrh r0, [r0, 0x28] - subs r0, 0x1 - str r0, [r1] - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x40 - b _080519EE - .pool -_08051990: - ldr r0, =gUnknown_0202437C - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - lsrs r0, 7 - cmp r0, 0 - beq _080519DC - ldr r1, =gBattleMoveDamage - movs r3, 0x58 - adds r0, r2, 0 - muls r0, r3 - add r0, r8 - ldrh r0, [r0, 0x28] - subs r0, 0x1 - str r0, [r1] - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_02024208 - mov r2, r9 - ldrb r0, [r2] - muls r0, r3 - add r0, r8 - ldrh r0, [r0, 0x2E] - strh r0, [r1] - b _080519F2 - .pool -_080519DC: - ldr r1, =gBattleMoveDamage - movs r0, 0x58 - muls r0, r2 - add r0, r8 - ldrh r0, [r0, 0x28] - str r0, [r1] - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x10 -_080519EE: - orrs r0, r1 - strb r0, [r2] -_080519F2: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08051A70 - .pool -_08051A08: - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r3, =gBattleMons - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - movs r2, 0x58 - adds r1, r0, 0 - muls r1, r2 - adds r1, r3 - adds r1, 0x2A - ldr r0, =gEnemyMonIndex - ldrb r0, [r0] - muls r0, r2 - adds r0, r3 - adds r0, 0x2A - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bcc _08051A50 - ldr r1, =gUnknown_02024332 - movs r0, 0 - b _08051A54 - .pool -_08051A50: - ldr r1, =gUnknown_02024332 - movs r0, 0x1 -_08051A54: - strb r0, [r1, 0x5] - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08051A70: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk93_ko_move - - thumb_func_start atk94_gethalfcurrentenemyhp -atk94_gethalfcurrentenemyhp: @ 8051A84 - push {lr} - ldr r3, =gBattleMoveDamage - ldr r2, =gBattleMons - ldr r0, =gEnemyMonIndex - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x28] - lsrs r0, 1 - str r0, [r3] - cmp r0, 0 - bne _08051AA2 - movs r0, 0x1 - str r0, [r3] -_08051AA2: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atk94_gethalfcurrentenemyhp - - thumb_func_start sub_8051AC0 -sub_8051AC0: @ 8051AC0 - push {lr} - ldr r2, =gBattleWeather - ldrh r1, [r2] - movs r0, 0x18 - ands r0, r1 - cmp r0, 0 - beq _08051AEC - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_02024332 - movs r0, 0x2 - strb r0, [r1, 0x5] - b _08051AFE - .pool -_08051AEC: - movs r0, 0x8 - strh r0, [r2] - ldr r1, =gUnknown_02024332 - movs r0, 0x3 - strb r0, [r1, 0x5] - ldr r0, =gUnknown_020243D0 - adds r0, 0x28 - movs r1, 0x5 - strb r1, [r0] -_08051AFE: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_8051AC0 - - thumb_func_start sub_8051B18 -sub_8051B18: @ 8051B18 - push {r4,r5,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl ability_something - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08051B36 - b _08051C48 -_08051B36: - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl ability_something - lsls r0, 24 - cmp r0, 0 - beq _08051B4C - b _08051C48 -_08051B4C: - ldr r2, =gBattleWeather - ldrh r1, [r2] - movs r0, 0x18 - ands r0, r1 - adds r4, r2, 0 - ldr r5, =gUnknown_0202420B - cmp r0, 0 - beq _08051BDA - ldr r0, =gBattleMons - ldrb r2, [r5] - movs r1, 0x58 - muls r1, r2 - adds r3, r1, r0 - adds r0, r3, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x5 - beq _08051BD4 - cmp r0, 0x8 - beq _08051BD4 - cmp r0, 0x4 - beq _08051BD4 - adds r0, r3, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x5 - beq _08051BD4 - cmp r0, 0x8 - beq _08051BD4 - cmp r0, 0x4 - beq _08051BD4 - adds r0, r3, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x8 - beq _08051BD4 - ldr r0, =gUnknown_020242AC - lsls r1, r2, 2 - adds r1, r0 - ldr r1, [r1] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08051BD4 - movs r0, 0x80 - lsls r0, 11 - ands r1, r0 - cmp r1, 0 - bne _08051BD4 - ldr r1, =gBattleMoveDamage - ldrh r0, [r3, 0x2C] - lsrs r0, 4 - str r0, [r1] - cmp r0, 0 - bne _08051BDA - movs r0, 0x1 - b _08051BD8 - .pool -_08051BD4: - ldr r1, =gBattleMoveDamage - movs r0, 0 -_08051BD8: - str r0, [r1] -_08051BDA: - ldrh r1, [r4] - movs r4, 0x80 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _08051C50 - ldr r1, =gBattleMons - ldrb r3, [r5] - movs r0, 0x58 - muls r0, r3 - adds r2, r0, r1 - adds r0, r2, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0xF - beq _08051C3C - adds r0, r2, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0xF - beq _08051C3C - ldr r0, =gUnknown_020242AC - lsls r1, r3, 2 - adds r1, r0 - ldr r1, [r1] - adds r0, r1, 0 - ands r0, r4 - cmp r0, 0 - bne _08051C3C - movs r0, 0x80 - lsls r0, 11 - ands r1, r0 - cmp r1, 0 - bne _08051C3C - ldr r1, =gBattleMoveDamage - ldrh r0, [r2, 0x2C] - lsrs r0, 4 - str r0, [r1] - cmp r0, 0 - bne _08051C50 - movs r0, 0x1 - str r0, [r1] - b _08051C50 - .pool -_08051C3C: - ldr r1, =gBattleMoveDamage - movs r0, 0 - str r0, [r1] - b _08051C50 - .pool -_08051C48: - ldr r1, =gBattleMoveDamage - movs r0, 0 - str r0, [r1] - ldr r5, =gUnknown_0202420B -_08051C50: - ldr r0, =gUnknown_02024210 - ldrb r1, [r0] - ldr r2, =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08051C6A - ldr r1, =gBattleMoveDamage - movs r0, 0 - str r0, [r1] -_08051C6A: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8051B18 - - thumb_func_start atk97_tryinfatuatetarget -atk97_tryinfatuatetarget: @ 8051C90 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, =gUnknown_0202420B - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08051CC8 - ldr r1, =gUnknown_0202406E - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - b _08051CD8 - .pool -_08051CC8: - ldr r1, =gUnknown_0202406E - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gEnemyParty -_08051CD8: - adds r5, r1, r0 - ldr r4, =gEnemyMonIndex - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08051D0C - ldr r1, =gUnknown_0202406E - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - b _08051D1C - .pool -_08051D0C: - ldr r1, =gUnknown_0202406E - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gEnemyParty -_08051D1C: - adds r4, r1, r0 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - adds r0, r5, 0 - movs r1, 0 - bl GetMonData - mov r9, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - adds r7, r0, 0 - ldr r5, =gEnemyMonIndex - ldrb r0, [r5] - movs r6, 0x58 - muls r0, r6 - ldr r1, =gBattleMons - adds r0, r1 - adds r0, 0x20 - ldrb r2, [r0] - cmp r2, 0xC - bne _08051D94 - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DB5F5 - str r0, [r1] - ldr r0, =gUnknown_0202420A - strb r2, [r0] - ldrb r0, [r5] - movs r1, 0xC - bl b_history__record_ability_usage_of_player - b _08051E2C - .pool -_08051D94: - mov r0, r10 - mov r1, r9 - bl pokemon_species_get_gender_info - adds r4, r0, 0 - mov r0, r8 - adds r1, r7, 0 - bl pokemon_species_get_gender_info - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _08051DE4 - ldrb r0, [r5] - muls r0, r6 - ldr r4, =gBattleMons - adds r4, 0x50 - adds r0, r4 - ldr r0, [r0] - movs r1, 0xF0 - lsls r1, 12 - ands r0, r1 - cmp r0, 0 - bne _08051DE4 - mov r0, r10 - mov r1, r9 - bl pokemon_species_get_gender_info - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _08051DE4 - mov r0, r8 - adds r1, r7, 0 - bl pokemon_species_get_gender_info - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _08051E08 -_08051DE4: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08051E2C - .pool -_08051E08: - ldrb r0, [r5] - adds r2, r0, 0 - muls r2, r6 - adds r2, r4 - ldr r1, =gBitTable - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - lsls r1, 16 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08051E2C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk97_tryinfatuatetarget - - thumb_func_start sub_8051E48 -sub_8051E48: @ 8051E48 - push {r4-r7,lr} - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - bne _08051F34 - ldr r5, =gUnknown_02024214 - ldr r1, [r5] - ldrb r0, [r1, 0x1] - cmp r0, 0x4 - beq _08051EA0 - bl get_battle_side_of_something - ldr r4, =gUnknown_02024064 - strb r0, [r4] - ldr r3, =gBattleMons - ldrb r1, [r4] - movs r0, 0x58 - adds r2, r1, 0 - muls r2, r0 - adds r0, r3, 0 - adds r0, 0x4C - adds r0, r2, r0 - ldr r1, [r0] - adds r3, 0x50 - adds r2, r3 - ldr r2, [r2] - movs r0, 0 - bl dp01_build_cmdbuf_x1A_aaaa_bbbb - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] - b _08051F34 - .pool -_08051EA0: - ldr r4, =gUnknown_02024064 - ldr r5, =gUnknown_0202420B - ldrb r0, [r5] - strb r0, [r4] - ldr r6, =gUnknown_02024210 - ldrb r1, [r6] - ldr r7, =gBitTable - ldrb r2, [r4] - lsls r0, r2, 2 - adds r0, r7 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08051EDC - ldr r3, =gBattleMons - movs r0, 0x58 - muls r2, r0 - adds r0, r3, 0 - adds r0, 0x4C - adds r0, r2, r0 - ldr r1, [r0] - adds r3, 0x50 - adds r2, r3 - ldr r2, [r2] - movs r0, 0 - bl dp01_build_cmdbuf_x1A_aaaa_bbbb - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_08051EDC: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08051F2C - ldrb r0, [r5] - bl battle_get_per_side_status - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - strb r0, [r4] - ldrb r1, [r6] - ldrb r2, [r4] - lsls r0, r2, 2 - adds r0, r7 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08051F2C - ldr r3, =gBattleMons - movs r0, 0x58 - muls r2, r0 - adds r0, r3, 0 - adds r0, 0x4C - adds r0, r2, r0 - ldr r1, [r0] - adds r3, 0x50 - adds r2, r3 - ldr r2, [r2] - movs r0, 0 - bl dp01_build_cmdbuf_x1A_aaaa_bbbb - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_08051F2C: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] -_08051F34: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8051E48 - - thumb_func_start atk99_setmisteffect -atk99_setmisteffect: @ 8051F58 - push {r4-r6,lr} - ldr r6, =gUnknown_02024294 - ldr r4, =gUnknown_0202420B - ldrb r0, [r4] - bl battle_get_per_side_status - movs r5, 0x1 - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x4] - cmp r0, 0 - beq _08051F98 - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r2] - ldr r0, =gUnknown_02024332 - strb r5, [r0, 0x5] - b _08051FE6 - .pool -_08051F98: - ldrb r0, [r4] - bl battle_get_per_side_status - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x5 - strb r1, [r0, 0x4] - ldrb r0, [r4] - bl battle_get_per_side_status - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r4] - strb r1, [r0, 0x5] - ldrb r0, [r4] - bl battle_get_per_side_status - ldr r2, =gUnknown_0202428E - adds r1, r5, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r3, 0x80 - lsls r3, 1 - adds r0, r3, 0 - movs r3, 0 - orrs r0, r2 - strh r0, [r1] - ldr r0, =gUnknown_02024332 - strb r3, [r0, 0x5] -_08051FE6: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atk99_setmisteffect - - thumb_func_start atk9A_setincreasedcriticalchance -atk9A_setincreasedcriticalchance: @ 8052000 - push {lr} - ldr r1, =gBattleMons - ldr r0, =gUnknown_0202420B - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r1, [r0] - movs r3, 0x80 - lsls r3, 13 - adds r2, r1, 0 - ands r2, r3 - cmp r2, 0 - beq _08052040 - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_02024332 - movs r0, 0x1 - strb r0, [r1, 0x5] - b _08052048 - .pool -_08052040: - orrs r1, r3 - str r1, [r0] - ldr r0, =gUnknown_02024332 - strb r2, [r0, 0x5] -_08052048: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atk9A_setincreasedcriticalchance - - thumb_func_start atk9B_transformdataexecution -atk9B_transformdataexecution: @ 805205C - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r1, =gUnknown_020241EC - ldr r2, =0x0000ffff - adds r0, r2, 0 - strh r0, [r1] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r7, =gBattleMons - ldr r0, =gEnemyMonIndex - mov r12, r0 - ldrb r1, [r0] - movs r6, 0x58 - adds r0, r1, 0 - muls r0, r6 - adds r5, r7, 0 - adds r5, 0x50 - adds r0, r5 - ldr r0, [r0] - movs r4, 0x80 - lsls r4, 14 - ands r0, r4 - cmp r0, 0 - bne _080520A2 - ldr r0, =gUnknown_020242AC - lsls r1, 2 - adds r1, r0 - ldr r2, [r1] - ldr r0, =0x000400c0 - ands r2, r0 - cmp r2, 0 - beq _080520D8 -_080520A2: - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_02024332 - movs r0, 0x1 - b _080521EC - .pool -_080520D8: - ldr r3, =gUnknown_0202420B - ldrb r0, [r3] - adds r1, r0, 0 - muls r1, r6 - adds r1, r5 - ldr r0, [r1] - orrs r0, r4 - str r0, [r1] - ldr r4, =gUnknown_020242BC - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - strh r2, [r0, 0x4] - ldrb r0, [r3] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0xB] - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0xB] - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - mov r2, r12 - ldrb r1, [r2] - muls r1, r6 - adds r2, r7, 0 - adds r2, 0x48 - adds r1, r2 - ldr r1, [r1] - str r1, [r0] - ldrb r0, [r3] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0x18] - movs r0, 0xF - ands r0, r2 - strb r0, [r1, 0x18] - ldr r1, =gUnknown_02022F58 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x6 - strb r0, [r1, 0x1] - mov r2, r12 - ldrb r0, [r2] - muls r0, r6 - adds r0, r7 - ldrh r0, [r0] - strb r0, [r1, 0x2] - ldrb r0, [r2] - muls r0, r6 - adds r0, r7 - ldrh r0, [r0] - lsrs r0, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldrb r0, [r3] - muls r0, r6 - adds r5, r0, r7 - ldrb r0, [r2] - muls r0, r6 - adds r2, r0, r7 - movs r4, 0 - adds r6, r3, 0 - ldr r0, =gUnknown_02024064 - mov r8, r0 -_08052170: - adds r0, r5, r4 - adds r1, r2, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r4, 0x1 - cmp r4, 0x23 - bls _08052170 - movs r4, 0 - ldr r7, =gBattleMoves - ldr r3, =gUnknown_02024090 - adds r5, r3, 0 - adds r5, 0x18 -_08052188: - lsls r1, r4, 1 - ldrb r2, [r6] - movs r0, 0x58 - muls r2, r0 - adds r1, r2 - adds r1, r3 - ldrh r1, [r1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrb r1, [r0, 0x4] - cmp r1, 0x4 - bhi _080521C4 - adds r0, r4, r2 - adds r0, r5 - b _080521CA - .pool -_080521C4: - adds r0, r4, r2 - adds r0, r5 - movs r1, 0x5 -_080521CA: - strb r1, [r0] - adds r4, 0x1 - cmp r4, 0x3 - ble _08052188 - ldrb r0, [r6] - mov r1, r8 - strb r0, [r1] - movs r0, 0 - movs r1, 0x2 - bl dp01_build_cmdbuf_x38_a - mov r2, r8 - ldrb r0, [r2] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gUnknown_02024332 - movs r0, 0 -_080521EC: - strb r0, [r1, 0x5] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atk9B_transformdataexecution - - thumb_func_start sub_80521FC -sub_80521FC: @ 80521FC - push {r4-r7,lr} - ldr r7, =gBattleMons - ldr r6, =gUnknown_0202420B - ldrb r0, [r6] - movs r5, 0x58 - muls r0, r5 - adds r3, r0, r7 - ldrh r0, [r3, 0x2C] - lsrs r1, r0, 2 - adds r2, r1, 0 - cmp r1, 0 - bne _08052216 - movs r2, 0x1 -_08052216: - ldrh r0, [r3, 0x28] - cmp r0, r2 - bhi _0805223C - ldr r1, =gBattleMoveDamage - movs r0, 0 - str r0, [r1] - ldr r1, =gUnknown_02024332 - movs r0, 0x1 - strb r0, [r1, 0x5] - b _08052290 - .pool -_0805223C: - ldr r4, =gBattleMoveDamage - str r1, [r4] - cmp r1, 0 - bne _08052248 - movs r0, 0x1 - str r0, [r4] -_08052248: - ldrb r0, [r6] - adds r2, r0, 0 - muls r2, r5 - adds r3, r7, 0 - adds r3, 0x50 - adds r2, r3 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 17 - orrs r0, r1 - str r0, [r2] - ldrb r0, [r6] - adds r1, r0, 0 - muls r1, r5 - adds r1, r3 - ldr r0, [r1] - ldr r2, =0xffff1fff - ands r0, r2 - str r0, [r1] - ldr r2, =gUnknown_020242BC - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, [r4] - movs r2, 0 - strb r1, [r0, 0xA] - ldr r0, =gUnknown_02024332 - strb r2, [r0, 0x5] - ldr r2, =gUnknown_02024280 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 1 - orrs r0, r1 - str r0, [r2] -_08052290: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80521FC - - thumb_func_start sub_80522B8 -sub_80522B8: @ 80522B8 - push {r4,r5,lr} - lsls r0, 16 - lsrs r2, r0, 16 - movs r3, 0 - ldr r0, =gUnknown_0831C3E0 - ldrh r1, [r0] - ldr r4, =0x0000fffe - adds r5, r0, 0 - cmp r1, r4 - beq _080522E0 - cmp r1, r2 - beq _080522E0 - adds r1, r5, 0 -_080522D2: - adds r1, 0x2 - adds r3, 0x1 - ldrh r0, [r1] - cmp r0, r4 - beq _080522E0 - cmp r0, r2 - bne _080522D2 -_080522E0: - lsls r0, r3, 1 - adds r0, r5 - ldrh r1, [r0] - ldr r0, =0x0000fffe - eors r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80522B8 - - thumb_func_start atk9D_copyattack -atk9D_copyattack: @ 8052300 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, =gUnknown_020241EC - ldr r1, =0x0000ffff - adds r7, r1, 0 - strh r7, [r0] - ldr r5, =gUnknown_02024248 - ldr r6, =gEnemyMonIndex - ldrb r0, [r6] - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - bl sub_80522B8 - lsls r0, 24 - cmp r0, 0 - bne _0805235A - ldr r3, =gBattleMons - ldr r2, =gUnknown_0202420B - ldrb r1, [r2] - movs r0, 0x58 - adds r4, r1, 0 - muls r4, r0 - adds r0, r3, 0 - adds r0, 0x50 - adds r0, r4, r0 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 14 - ands r1, r0 - mov r12, r3 - mov r9, r2 - cmp r1, 0 - bne _0805235A - ldrb r0, [r6] - lsls r0, 1 - adds r0, r5 - ldrh r1, [r0] - cmp r1, 0 - beq _0805235A - cmp r1, r7 - bne _08052394 -_0805235A: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _080524CC - .pool -_08052394: - movs r2, 0 - mov r3, r12 - adds r3, 0xC - adds r0, r4, r3 - ldrh r0, [r0] - ldr r4, =gUnknown_02024214 - mov r10, r4 - cmp r0, r1 - beq _080523CE - mov r8, r3 - adds r7, r5, 0 - adds r5, r6, 0 - mov r4, r9 - movs r3, 0x58 -_080523B0: - adds r2, 0x1 - cmp r2, 0x3 - bgt _080523CE - lsls r1, r2, 1 - ldrb r0, [r4] - muls r0, r3 - adds r1, r0 - add r1, r8 - ldrb r0, [r5] - lsls r0, 1 - adds r0, r7 - ldrh r1, [r1] - ldrh r0, [r0] - cmp r1, r0 - bne _080523B0 -_080523CE: - cmp r2, 0x4 - bne _080524B0 - ldr r5, =gUnknown_020241E8 - ldrb r1, [r5] - lsls r1, 1 - mov r2, r9 - ldrb r0, [r2] - movs r6, 0x58 - muls r0, r6 - adds r1, r0 - mov r0, r12 - adds r0, 0xC - adds r1, r0 - ldr r2, =gUnknown_02024248 - ldr r3, =gEnemyMonIndex - ldrb r0, [r3] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - ldr r4, =gBattleMoves - ldrb r0, [r3] - lsls r0, 1 - adds r0, r2 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r4, [r0, 0x4] - cmp r4, 0x4 - bhi _08052438 - mov r1, r9 - ldrb r0, [r1] - muls r0, r6 - ldrb r1, [r5] - adds r0, r1 - mov r1, r12 - adds r1, 0x24 - adds r0, r1 - strb r4, [r0] - b _0805244C - .pool -_08052438: - mov r4, r9 - ldrb r0, [r4] - muls r0, r6 - ldrb r1, [r5] - adds r0, r1 - mov r1, r12 - adds r1, 0x24 - adds r0, r1 - movs r1, 0x5 - strb r1, [r0] -_0805244C: - ldr r1, =gUnknown_02022F58 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - ldrb r0, [r3] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1, 0x2] - ldrb r0, [r3] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - lsrs r0, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, =gUnknown_020242BC - mov r2, r9 - ldrb r0, [r2] - lsls r2, r0, 3 - subs r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r4, [r2, 0x18] - lsrs r3, r4, 4 - ldr r1, =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - orrs r1, r3 - lsls r1, 4 - movs r0, 0xF - ands r0, r4 - orrs r0, r1 - strb r0, [r2, 0x18] - mov r4, r10 - ldr r0, [r4] - adds r0, 0x5 - str r0, [r4] - b _080524CC - .pool -_080524B0: - mov r0, r10 - ldr r2, [r0] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - mov r2, r10 - str r1, [r2] -_080524CC: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end atk9D_copyattack - - thumb_func_start sub_80524DC -sub_80524DC: @ 80524DC - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r7, =gUnknown_020241EA - movs r6, 0xB1 - lsls r6, 1 - ldr r5, =gUnknown_0831C3E0 - ldr r0, =gUnknown_02024214 - mov r8, r0 -_080524EE: - bl Random - ldr r2, =0x000001ff - adds r1, r2, 0 - ands r0, r1 - adds r0, 0x1 - strh r0, [r7] - cmp r0, r6 - bhi _080524EE - movs r0, 0x3 -_08052502: - subs r0, 0x1 - cmp r0, 0 - bge _08052502 - ldr r4, =gUnknown_020241EA - ldrh r2, [r4] - ldr r3, =0x0000ffff - subs r0, r5, 0x2 -_08052510: - adds r0, 0x2 - ldrh r1, [r0] - cmp r1, r2 - beq _0805251C - cmp r1, r3 - bne _08052510 -_0805251C: - ldr r0, =0x0000ffff - cmp r1, r0 - bne _080524EE - ldr r2, =gUnknown_02024280 - ldr r0, [r2] - ldr r1, =0xfffffbff - ands r0, r1 - str r0, [r2] - ldr r3, =gUnknown_082D86A8 - ldr r2, =gBattleMoves - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - mov r1, r8 - str r0, [r1] - ldrh r0, [r4] - movs r1, 0 - bl sub_80458E0 - ldr r1, =gEnemyMonIndex - strb r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80524DC - - thumb_func_start atk9F_nightshadedamageeffect -atk9F_nightshadedamageeffect: @ 8052584 - ldr r3, =gBattleMoveDamage - ldr r2, =gBattleMons - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x2A - ldrb r0, [r0] - str r0, [r3] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .pool - thumb_func_end atk9F_nightshadedamageeffect - - thumb_func_start atkA0_psywavedamageeffect -atkA0_psywavedamageeffect: @ 80525B4 - push {r4,lr} - movs r4, 0xF -_080525B8: - bl Random - adds r3, r4, 0 - ands r3, r0 - cmp r3, 0xA - bgt _080525B8 - lsls r0, r3, 2 - adds r0, r3 - lsls r3, r0, 1 - ldr r4, =gBattleMoveDamage - ldr r2, =gBattleMons - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x2A - ldrb r1, [r0] - adds r0, r3, 0 - adds r0, 0x32 - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - str r0, [r4] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkA0_psywavedamageeffect - - thumb_func_start atkA1_counterdamagecalculator -atkA1_counterdamagecalculator: @ 8052608 - push {r4-r6,lr} - ldr r4, =gUnknown_0202420B - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r6, r0, 24 - ldr r5, =gUnknown_0202433C - ldrb r0, [r4] - lsls r0, 4 - adds r0, r5 - ldrb r0, [r0, 0xC] - bl battle_side_get_owner - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r4] - lsls r1, r0, 4 - adds r0, r5, 0x4 - adds r0, r1, r0 - ldr r3, [r0] - cmp r3, 0 - beq _080526BC - cmp r6, r2 - beq _080526BC - ldr r6, =gBattleMons - adds r0, r1, r5 - ldrb r0, [r0, 0xC] - movs r4, 0x58 - muls r0, r4 - adds r0, r6 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _080526BC - ldr r1, =gBattleMoveDamage - lsls r0, r3, 1 - str r0, [r1] - ldr r1, =gUnknown_02024294 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0, r1 - ldrb r0, [r1, 0x8] - cmp r0, 0 - beq _08052690 - ldrb r1, [r1, 0x9] - adds r0, r1, 0 - muls r0, r4 - adds r0, r6 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08052690 - ldr r0, =gEnemyMonIndex - strb r1, [r0] - b _080526A0 - .pool -_08052690: - ldr r2, =gEnemyMonIndex - ldr r1, =gUnknown_0202433C - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0xC] - strb r0, [r2] -_080526A0: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _080526EC - .pool -_080526BC: - ldr r2, =gUnknown_0202437C - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0] - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_080526EC: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atkA1_counterdamagecalculator - - thumb_func_start atkA2_mirrorcoatdamagecalculator -atkA2_mirrorcoatdamagecalculator: @ 8052700 - push {r4-r6,lr} - ldr r4, =gUnknown_0202420B - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r6, r0, 24 - ldr r5, =gUnknown_0202433C - ldrb r0, [r4] - lsls r0, 4 - adds r0, r5 - ldrb r0, [r0, 0xD] - bl battle_side_get_owner - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r4] - lsls r1, r0, 4 - adds r0, r5, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r3, [r0] - cmp r3, 0 - beq _080527B4 - cmp r6, r2 - beq _080527B4 - ldr r6, =gBattleMons - adds r0, r1, r5 - ldrb r0, [r0, 0xD] - movs r4, 0x58 - muls r0, r4 - adds r0, r6 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _080527B4 - ldr r1, =gBattleMoveDamage - lsls r0, r3, 1 - str r0, [r1] - ldr r1, =gUnknown_02024294 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0, r1 - ldrb r0, [r1, 0x8] - cmp r0, 0 - beq _08052788 - ldrb r1, [r1, 0x9] - adds r0, r1, 0 - muls r0, r4 - adds r0, r6 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08052788 - ldr r0, =gEnemyMonIndex - strb r1, [r0] - b _08052798 - .pool -_08052788: - ldr r2, =gEnemyMonIndex - ldr r1, =gUnknown_0202433C - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0xD] - strb r0, [r2] -_08052798: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _080527E4 - .pool -_080527B4: - ldr r2, =gUnknown_0202437C - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0] - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_080527E4: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atkA2_mirrorcoatdamagecalculator - - thumb_func_start atkA3_disablelastusedattack -atkA3_disablelastusedattack: @ 80527F8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r4, 0 - ldr r2, =gBattleMons - ldr r3, =gEnemyMonIndex - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - adds r7, r2, 0 - adds r7, 0xC - adds r0, r7 - ldr r5, =gUnknown_02024248 - lsls r1, 1 - adds r1, r5 - ldrh r0, [r0] - mov r9, r2 - adds r6, r3, 0 - ldr r2, =gUnknown_020242BC - mov r8, r2 - ldrh r1, [r1] - cmp r0, r1 - beq _0805284C - mov r12, r6 - movs r3, 0x58 -_0805282C: - adds r4, 0x1 - cmp r4, 0x3 - bgt _0805284C - lsls r2, r4, 1 - mov r0, r12 - ldrb r1, [r0] - adds r0, r1, 0 - muls r0, r3 - adds r2, r0 - adds r2, r7 - lsls r1, 1 - adds r1, r5 - ldrh r0, [r2] - ldrh r1, [r1] - cmp r0, r1 - bne _0805282C -_0805284C: - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r8 - ldrh r0, [r0, 0x4] - cmp r0, 0 - bne _08052910 - cmp r4, 0x4 - beq _08052910 - movs r5, 0x58 - adds r0, r1, 0 - muls r0, r5 - adds r0, r4, r0 - mov r1, r9 - adds r1, 0x24 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08052910 - ldr r1, =gUnknown_02022F58 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - lsls r2, r4, 1 - ldrb r0, [r6] - muls r0, r5 - adds r0, r2, r0 - mov r3, r9 - adds r3, 0xC - adds r0, r3 - ldrh r0, [r0] - strb r0, [r1, 0x2] - ldrb r0, [r6] - muls r0, r5 - adds r0, r2, r0 - adds r0, r3 - ldrh r0, [r0] - lsrs r0, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r8 - muls r1, r5 - adds r2, r1 - adds r2, r3 - ldrh r1, [r2] - strh r1, [r0, 0x4] - bl Random - ldrb r2, [r6] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - add r1, r8 - movs r2, 0x3 - ands r2, r0 - adds r2, 0x2 - ldrb r3, [r1, 0xB] - movs r0, 0x10 - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0xB] - ldrb r0, [r6] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - add r1, r8 - ldrb r3, [r1, 0xB] - lsls r2, r3, 28 - lsrs r2, 24 - movs r0, 0xF - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0xB] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0805292A - .pool -_08052910: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_0805292A: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkA3_disablelastusedattack - - thumb_func_start atkA4_setencore -atkA4_setencore: @ 805293C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r5, 0 - ldr r3, =gBattleMons - ldr r4, =gEnemyMonIndex - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - adds r6, r3, 0 - adds r6, 0xC - adds r0, r6 - ldr r2, =gUnknown_02024248 - lsls r1, 1 - adds r1, r2 - ldrh r0, [r0] - mov r10, r3 - mov r8, r2 - ldr r2, =gUnknown_020242BC - mov r9, r2 - ldrh r1, [r1] - cmp r0, r1 - beq _08052996 - mov r12, r4 - adds r7, r6, 0 - mov r6, r8 - movs r3, 0x58 -_08052976: - adds r5, 0x1 - cmp r5, 0x3 - bgt _08052996 - lsls r2, r5, 1 - mov r0, r12 - ldrb r1, [r0] - adds r0, r1, 0 - muls r0, r3 - adds r2, r0 - adds r2, r7 - lsls r1, 1 - adds r1, r6 - ldrh r0, [r2] - ldrh r1, [r1] - cmp r0, r1 - bne _08052976 -_08052996: - ldrb r0, [r4] - lsls r0, 1 - add r0, r8 - ldrh r2, [r0] - cmp r2, 0xA5 - beq _080529AA - cmp r2, 0xE3 - beq _080529AA - cmp r2, 0x77 - bne _080529AC -_080529AA: - movs r5, 0x4 -_080529AC: - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - mov r2, r9 - adds r3, r0, r2 - ldrh r0, [r3, 0x6] - cmp r0, 0 - bne _08052A44 - cmp r5, 0x4 - beq _08052A44 - movs r0, 0x58 - adds r2, r1, 0 - muls r2, r0 - adds r0, r5, r2 - mov r1, r10 - adds r1, 0x24 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08052A44 - lsls r0, r5, 1 - adds r0, r2 - subs r1, 0x18 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r3, 0x6] - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r9 - strb r5, [r0, 0xC] - bl Random - ldrb r2, [r4] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - add r1, r9 - movs r2, 0x3 - ands r2, r0 - adds r2, 0x3 - ldrb r3, [r1, 0xE] - movs r0, 0x10 - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0xE] - ldrb r0, [r4] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - add r1, r9 - ldrb r3, [r1, 0xE] - lsls r2, r3, 28 - lsrs r2, 24 - movs r0, 0xF - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0xE] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08052A5E - .pool -_08052A44: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08052A5E: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkA4_setencore - - thumb_func_start sub_8052A70 -sub_8052A70: @ 8052A70 - push {r4-r7,lr} - ldr r6, =gBattleMons - ldr r0, =gEnemyMonIndex - mov r12, r0 - ldrb r0, [r0] - movs r7, 0x58 - adds r2, r0, 0 - muls r2, r7 - adds r0, r6, 0 - adds r0, 0x50 - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - bne _08052B10 - ldr r5, =gUnknown_0202420B - ldrb r0, [r5] - muls r0, r7 - adds r0, r6 - ldrh r3, [r0, 0x28] - adds r0, r2, r6 - ldrh r1, [r0, 0x28] - adds r3, r1 - asrs r3, 1 - ldr r4, =gBattleMoveDamage - subs r1, r3 - str r1, [r4] - ldr r2, =gUnknown_02024474 - strb r1, [r2] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - asrs r0, 8 - strb r0, [r2, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - asrs r0, 16 - strb r0, [r2, 0x2] - lsrs r1, 24 - strb r1, [r2, 0x3] - ldrb r0, [r5] - muls r0, r7 - adds r0, r6 - ldrh r0, [r0, 0x28] - subs r0, r3 - str r0, [r4] - ldr r2, =gUnknown_0202437C - mov r0, r12 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0x4 - adds r0, r2 - ldr r1, =0x0000ffff - str r1, [r0] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08052B2A - .pool -_08052B10: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08052B2A: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8052A70 - - thumb_func_start atkA6_settypetorandomresistance -atkA6_settypetorandomresistance: @ 8052B34 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r1, =gUnknown_02024250 - ldr r4, =gUnknown_0202420B - ldrb r0, [r4] - lsls r0, 1 - adds r2, r0, r1 - ldrh r1, [r2] - cmp r1, 0 - beq _08052B7E - ldr r0, =0x0000ffff - cmp r1, r0 - beq _08052B7E - ldrh r0, [r2] - bl sub_8052F48 - lsls r0, 24 - cmp r0, 0 - beq _08052C1C - ldr r1, =gBattleMons - ldr r2, =gUnknown_02024270 - ldrb r0, [r4] - adds r0, r2 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 5 - ands r0, r1 - cmp r0, 0 - beq _08052C1C -_08052B7E: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08052D08 - .pool -_08052BB4: - mov r0, r12 - strb r5, [r0] - mov r1, r10 - ldrb r0, [r1] - muls r0, r2 - adds r0, r7 - adds r0, 0x22 - strb r5, [r0] - ldr r1, =gUnknown_02022F58 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x3 - strb r0, [r1, 0x1] - strb r5, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r1, =gUnknown_02024214 - b _08052C0A - .pool -_08052BE0: - mov r0, r8 - adds r0, 0x1 - adds r0, r3 - ldrb r2, [r0] - strb r2, [r4] - mov r4, r10 - ldrb r0, [r4] - muls r0, r6 - ldr r7, =gBattleMons - adds r0, r7 - adds r0, 0x22 - strb r2, [r0] - ldr r1, =gUnknown_02022F58 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x3 - strb r0, [r1, 0x1] - strb r2, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - mov r1, r12 -_08052C0A: - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08052D08 - .pool -_08052C1C: - movs r4, 0 - mov r8, r4 - movs r7, 0x7F - mov r9, r7 -_08052C24: - bl Random - mov r4, r9 - ands r4, r0 - cmp r4, 0x70 - bhi _08052C24 - lsls r0, r4, 1 - adds r4, r0, r4 - ldr r6, =gUnknown_0831ACE8 - adds r3, r4, r6 - ldr r1, =gUnknown_02024258 - ldr r2, =gUnknown_0202420B - ldrb r5, [r2] - lsls r0, r5, 1 - adds r0, r1 - ldrb r1, [r3] - mov r10, r2 - ldrh r0, [r0] - cmp r1, r0 - bne _08052C80 - adds r0, r4, 0x2 - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0x5 - bhi _08052C80 - ldr r7, =gBattleMons - movs r2, 0x58 - adds r0, r5, 0 - muls r0, r2 - adds r3, r0, r7 - movs r0, 0x21 - adds r0, r3 - mov r12, r0 - adds r0, r4, 0x1 - adds r0, r6 - ldrb r5, [r0] - mov r1, r12 - ldrb r0, [r1] - adds r1, r5, 0 - cmp r0, r1 - beq _08052C80 - adds r0, r3, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, r1 - bne _08052BB4 -_08052C80: - movs r7, 0x1 - add r8, r7 - ldr r0, =0x000003e7 - cmp r8, r0 - ble _08052C24 - movs r0, 0 - mov r8, r0 - ldr r1, =gUnknown_02024214 - mov r12, r1 - ldr r3, =gUnknown_0831ACE8 - adds r0, r4, 0x1 - adds r0, r3 - mov r9, r0 - adds r5, r3, 0 -_08052C9C: - ldrb r1, [r5] - cmp r1, 0xFF - bgt _08052CA6 - cmp r1, 0xFE - bge _08052CE0 -_08052CA6: - mov r4, r10 - ldrb r2, [r4] - lsls r0, r2, 1 - ldr r7, =gUnknown_02024258 - adds r0, r7 - ldrh r0, [r0] - cmp r1, r0 - bne _08052CE0 - ldrb r0, [r5, 0x2] - cmp r0, 0x5 - bhi _08052CE0 - movs r6, 0x58 - adds r0, r2, 0 - muls r0, r6 - ldr r1, =gBattleMons - adds r2, r0, r1 - adds r4, r2, 0 - adds r4, 0x21 - ldrb r0, [r4] - mov r7, r9 - ldrb r1, [r7] - cmp r0, r1 - beq _08052CE0 - adds r0, r2, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, r1 - beq _08052CE0 - b _08052BE0 -_08052CE0: - adds r5, 0x3 - movs r0, 0x3 - add r8, r0 - ldr r0, =0x0000014f - cmp r8, r0 - bls _08052C9C - mov r1, r12 - ldr r2, [r1] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - mov r4, r12 - str r1, [r4] -_08052D08: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkA6_settypetorandomresistance - - thumb_func_start atkA7_setalwayshitflag -atkA7_setalwayshitflag: @ 8052D34 - push {r4,lr} - ldr r4, =gUnknown_020242AC - ldr r3, =gEnemyMonIndex - ldrb r1, [r3] - lsls r1, 2 - adds r1, r4 - ldr r0, [r1] - movs r2, 0x19 - negs r2, r2 - ands r0, r2 - str r0, [r1] - ldrb r1, [r3] - lsls r1, 2 - adds r1, r4 - ldr r0, [r1] - movs r2, 0x10 - orrs r0, r2 - str r0, [r1] - ldr r2, =gUnknown_020242BC - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, =gUnknown_0202420B - ldrb r1, [r1] - strb r1, [r0, 0x15] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkA7_setalwayshitflag - - thumb_func_start atkA8_copymovepermanently -atkA8_copymovepermanently: @ 8052D8C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - ldr r0, =gUnknown_020241EC - ldr r1, =0x0000ffff - adds r5, r1, 0 - strh r5, [r0] - ldr r3, =gBattleMons - ldr r2, =gUnknown_0202420B - ldrb r1, [r2] - movs r0, 0x58 - adds r4, r1, 0 - muls r4, r0 - adds r0, r3, 0 - adds r0, 0x50 - adds r0, r4, r0 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 14 - ands r1, r0 - mov r12, r3 - mov r10, r2 - cmp r1, 0 - beq _08052DC4 - b _08052F18 -_08052DC4: - ldr r0, =gUnknown_02024240 - ldr r2, =gEnemyMonIndex - ldrb r1, [r2] - lsls r1, 1 - adds r1, r0 - ldrh r1, [r1] - mov r9, r0 - mov r8, r2 - cmp r1, 0xA5 - bne _08052DDA - b _08052F18 -_08052DDA: - cmp r1, 0 - bne _08052DE0 - b _08052F18 -_08052DE0: - cmp r1, r5 - bne _08052DE6 - b _08052F18 -_08052DE6: - cmp r1, 0xA6 - bne _08052DEC - b _08052F18 -_08052DEC: - movs r7, 0 - mov r5, r9 - mov r0, r12 - adds r0, 0xC - adds r1, r4, r0 - mov r3, r8 -_08052DF8: - ldrh r2, [r1] - cmp r2, 0xA6 - beq _08052E0A - ldrb r0, [r3] - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - cmp r2, r0 - beq _08052E12 -_08052E0A: - adds r1, 0x2 - adds r7, 0x1 - cmp r7, 0x3 - ble _08052DF8 -_08052E12: - cmp r7, 0x4 - beq _08052E18 - b _08052F18 -_08052E18: - ldr r4, =gUnknown_020241E8 - ldrb r1, [r4] - lsls r1, 1 - mov r2, r10 - ldrb r0, [r2] - movs r3, 0x58 - muls r0, r3 - adds r1, r0 - mov r6, r12 - adds r6, 0xC - adds r1, r6 - mov r2, r8 - ldrb r0, [r2] - lsls r0, 1 - add r0, r9 - ldrh r0, [r0] - strh r0, [r1] - mov r1, r10 - ldrb r0, [r1] - adds r2, r0, 0 - muls r2, r3 - ldrb r4, [r4] - adds r2, r4 - mov r5, r12 - adds r5, 0x24 - adds r2, r5 - ldr r4, =gBattleMoves - mov r1, r8 - ldrb r0, [r1] - lsls r0, 1 - add r0, r9 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x4] - strb r0, [r2] - ldr r1, =gUnknown_02024064 - mov r2, r10 - ldrb r0, [r2] - strb r0, [r1] - movs r7, 0 - ldrb r0, [r2] - muls r0, r3 - adds r4, r0, r5 - adds r3, r0, 0 - add r2, sp, 0x4 - add r5, sp, 0xC -_08052E7A: - adds r0, r3, r6 - ldrh r0, [r0] - strh r0, [r2] - adds r1, r5, r7 - ldrb r0, [r4] - strb r0, [r1] - adds r4, 0x1 - adds r3, 0x2 - adds r2, 0x2 - adds r7, 0x1 - cmp r7, 0x3 - ble _08052E7A - add r2, sp, 0x4 - mov r0, r10 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - add r0, r12 - adds r0, 0x3B - ldrb r0, [r0] - strb r0, [r2, 0xC] - str r2, [sp] - movs r0, 0 - movs r1, 0x3 - movs r2, 0 - movs r3, 0x10 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gUnknown_02022F58 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - ldr r3, =gUnknown_02024240 - ldr r2, =gEnemyMonIndex - ldrb r0, [r2] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strb r0, [r1, 0x2] - ldrb r0, [r2] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - lsrs r0, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08052F32 - .pool -_08052F18: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08052F32: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkA8_copymovepermanently - - thumb_func_start sub_8052F48 -sub_8052F48: @ 8052F48 - push {lr} - lsls r0, 16 - lsrs r0, 16 - ldr r2, =gBattleMoves - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1] - cmp r0, 0x91 - beq _08052F72 - cmp r0, 0x27 - beq _08052F72 - cmp r0, 0x4B - beq _08052F72 - cmp r0, 0x97 - beq _08052F72 - cmp r0, 0x9B - beq _08052F72 - cmp r0, 0x1A - bne _08052F7C -_08052F72: - movs r0, 0x1 - b _08052F7E - .pool -_08052F7C: - movs r0, 0 -_08052F7E: - pop {r1} - bx r1 - thumb_func_end sub_8052F48 - - thumb_func_start sub_8052F84 -sub_8052F84: @ 8052F84 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _08052FA2 - cmp r1, 0xD6 - beq _08052FA2 - movs r0, 0x89 - lsls r0, 1 - cmp r1, r0 - beq _08052FA2 - cmp r1, 0x77 - beq _08052FA2 - cmp r1, 0x76 - bne _08052FA6 -_08052FA2: - movs r0, 0x1 - b _08052FA8 -_08052FA6: - movs r0, 0 -_08052FA8: - pop {r1} - bx r1 - thumb_func_end sub_8052F84 - - thumb_func_start move_weather_interaction -move_weather_interaction: @ 8052FAC - push {lr} - lsls r1, 16 - lsrs r2, r1, 16 - ldr r1, =gBattleMoves - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0] - adds r3, r1, 0 - cmp r0, 0x97 - bne _08052FD0 - ldr r0, =gBattleWeather - ldrh r1, [r0] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - bne _08053010 -_08052FD0: - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0x91 - beq _08052FF2 - cmp r0, 0x27 - beq _08052FF2 - cmp r0, 0x4B - beq _08052FF2 - cmp r0, 0x97 - beq _08052FF2 - cmp r0, 0x9B - beq _08052FF2 - cmp r0, 0x1A - bne _08053010 -_08052FF2: - ldr r0, =gUnknown_02024280 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 20 - ands r0, r1 - cmp r0, 0 - beq _08053010 - movs r0, 0x1 - b _08053012 - .pool -_08053010: - movs r0, 0x2 -_08053012: - pop {r1} - bx r1 - thumb_func_end move_weather_interaction - - thumb_func_start sub_8053018 -sub_8053018: @ 8053018 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r6, 0 - movs r5, 0 - ldr r0, =gUnknown_0202420B - mov r9, r0 - movs r1, 0x58 - mov r8, r1 - ldr r7, =gUnknown_02024090 - movs r0, 0x84 - lsls r0, 1 - mov r10, r0 -_08053036: - lsls r4, r5, 1 - mov r1, r9 - ldrb r0, [r1] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r4, r0 - adds r0, r7 - ldrh r0, [r0] - bl sub_8052F84 - lsls r0, 24 - cmp r0, 0 - bne _08053076 - mov r1, r9 - ldrb r0, [r1] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r4, r0 - adds r0, r7 - ldrh r1, [r0] - cmp r1, r10 - beq _08053076 - cmp r1, 0xFD - beq _08053076 - adds r0, r1, 0 - bl sub_8052F48 - lsls r0, 24 - cmp r0, 0 - beq _08053084 -_08053076: - ldr r1, =gBitTable - lsls r0, r5, 2 - adds r0, r1 - ldr r0, [r0] - orrs r6, r0 - lsls r0, r6, 24 - lsrs r6, r0, 24 -_08053084: - adds r5, 0x1 - cmp r5, 0x3 - ble _08053036 - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - adds r1, r6, 0 - movs r2, 0xFD - bl sub_803FECC - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0xF - bne _080530B8 - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0805311C - .pool -_080530B8: - movs r7, 0x3 - ldr r4, =gBitTable -_080530BC: - bl Random - adds r5, r7, 0 - ands r5, r0 - lsls r0, r5, 2 - adds r0, r4 - ldr r0, [r0] - ands r0, r6 - cmp r0, 0 - bne _080530BC - ldr r4, =gUnknown_020241EE - ldr r2, =gBattleMons - lsls r1, r5, 1 - ldr r0, =gUnknown_0202420B - ldrb r3, [r0] - movs r0, 0x58 - muls r0, r3 - adds r1, r0 - adds r2, 0xC - adds r1, r2 - ldrh r0, [r1] - strh r0, [r4] - ldr r0, =gUnknown_020241E8 - strb r5, [r0] - ldr r2, =gUnknown_02024280 - ldr r0, [r2] - ldr r1, =0xfffffbff - ands r0, r1 - str r0, [r2] - ldrh r0, [r4] - movs r1, 0 - bl sub_80458E0 - ldr r1, =gEnemyMonIndex - strb r0, [r1] - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_0805311C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8053018 - - thumb_func_start atkAA_destinybondeffect -atkAA_destinybondeffect: @ 8053150 - ldr r1, =gBattleMons - ldr r0, =gUnknown_0202420B - ldrb r2, [r0] - movs r0, 0x58 - muls r2, r0 - adds r1, 0x50 - adds r2, r1 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 18 - orrs r0, r1 - str r0, [r2] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .pool - thumb_func_end atkAA_destinybondeffect - - thumb_func_start b_feature_update_destiny_bond -b_feature_update_destiny_bond: @ 8053180 - push {r4,r5,lr} - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, =gEnemyMonIndex - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, =gBattleMons - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 18 - ands r0, r1 - cmp r0, 0 - beq _080531CA - cmp r5, r3 - beq _080531CA - ldr r2, =gUnknown_02024280 - ldr r1, [r2] - movs r0, 0x80 - lsls r0, 17 - ands r0, r1 - cmp r0, 0 - bne _080531CA - movs r0, 0x40 - orrs r1, r0 - str r1, [r2] -_080531CA: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end b_feature_update_destiny_bond - - thumb_func_start atkAB_802A458 -atkAB_802A458: @ 80531E0 - push {lr} - bl b_feature_update_destiny_bond - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atkAB_802A458 - - thumb_func_start atkAC_remaininghptopower -atkAC_remaininghptopower: @ 80531F8 - push {lr} - ldr r2, =gBattleMons - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - movs r0, 0x58 - muls r1, r0 - adds r1, r2 - movs r2, 0x28 - ldrsh r0, [r1, r2] - movs r2, 0x2C - ldrsh r1, [r1, r2] - movs r2, 0x30 - bl sub_8075034 - lsls r0, 24 - lsrs r1, r0, 24 - movs r3, 0 - ldr r0, =gUnknown_0831C408 - ldrb r2, [r0] - cmp r1, r2 - ble _08053232 - adds r2, r0, 0 -_08053224: - adds r3, 0x2 - cmp r3, 0xB - bgt _08053232 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r1, r0 - bgt _08053224 -_08053232: - ldr r2, =gUnknown_02024400 - ldr r1, =gUnknown_0831C408 - adds r0, r3, 0x1 - adds r0, r1 - ldrb r0, [r0] - strh r0, [r2] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atkAC_remaininghptopower - - thumb_func_start atkAD_reducepprandom -atkAD_reducepprandom: @ 8053260 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r4, =gUnknown_02024248 - ldr r1, =gEnemyMonIndex - ldrb r3, [r1] - lsls r0, r3, 1 - adds r0, r4 - ldrh r2, [r0] - mov r8, r1 - cmp r2, 0 - bne _08053280 - b _08053408 -_08053280: - ldr r0, =0x0000ffff - cmp r2, r0 - bne _08053288 - b _08053408 -_08053288: - movs r7, 0 - ldr r0, =gBattleMons - movs r1, 0x58 - muls r1, r3 - adds r3, r0, 0 - adds r3, 0xC - adds r1, r3 - ldrh r1, [r1] - cmp r2, r1 - beq _080532C0 - adds r6, r4, 0 - mov r5, r8 - adds r4, r3, 0 - movs r3, 0x58 -_080532A4: - adds r7, 0x1 - cmp r7, 0x3 - bgt _080532C0 - ldrb r0, [r5] - lsls r2, r0, 1 - adds r2, r6 - lsls r1, r7, 1 - muls r0, r3 - adds r1, r0 - adds r1, r4 - ldrh r0, [r2] - ldrh r1, [r1] - cmp r0, r1 - bne _080532A4 -_080532C0: - cmp r7, 0x4 - bne _080532C6 - b _08053408 -_080532C6: - mov r4, r8 - ldrb r0, [r4] - movs r1, 0x58 - mov r9, r1 - mov r3, r9 - muls r3, r0 - adds r0, r3, 0 - adds r0, r7, r0 - ldr r1, =gBattleMons - adds r1, 0x24 - mov r10, r1 - add r0, r10 - ldrb r0, [r0] - cmp r0, 0x1 - bhi _080532E6 - b _08053408 -_080532E6: - bl Random - movs r1, 0x3 - ands r1, r0 - adds r6, r1, 0x2 - ldrb r0, [r4] - mov r3, r9 - muls r3, r0 - adds r0, r3, 0 - adds r0, r7, r0 - add r0, r10 - ldrb r0, [r0] - cmp r0, r6 - bge _08053304 - adds r6, r0, 0 -_08053304: - ldr r1, =gUnknown_02022F58 - movs r5, 0xFD - strb r5, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - ldr r2, =gUnknown_02024248 - mov r3, r8 - ldrb r0, [r3] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1, 0x2] - ldrb r0, [r3] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - lsrs r0, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r4, =gUnknown_02022F68 - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - strb r5, [r4] - movs r0, 0x1 - strb r0, [r4, 0x1] - strb r0, [r4, 0x2] - strb r0, [r4, 0x3] - strb r6, [r4, 0x4] - subs r0, 0x2 - strb r0, [r4, 0x5] - mov r1, r8 - ldrb r0, [r1] - mov r1, r9 - muls r1, r0 - adds r1, r7, r1 - add r1, r10 - ldrb r0, [r1] - subs r0, r6 - strb r0, [r1] - ldr r4, =gUnknown_02024064 - mov r3, r8 - ldrb r0, [r3] - strb r0, [r4] - ldr r1, =gUnknown_020242BC - ldrb r3, [r4] - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x18] - lsrs r1, 4 - ldr r2, =gBitTable - lsls r0, r7, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _080533B8 - mov r2, r9 - muls r2, r3 - ldr r0, =gBattleMons - adds r0, 0x50 - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _080533B8 - adds r1, r7, 0 - adds r1, 0x9 - lsls r1, 24 - lsrs r1, 24 - mov r3, r10 - adds r0, r2, r3 - adds r0, r7 - str r0, [sp] - movs r0, 0 - movs r2, 0 - movs r3, 0x1 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_080533B8: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - ldr r1, =gBattleMons - ldr r0, =gEnemyMonIndex - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r0, r7, r0 - adds r1, 0x24 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08053422 - adds r0, r2, 0 - bl b_cancel_multi_turn_move_maybe - b _08053422 - .pool -_08053408: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08053422: - 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 atkAD_reducepprandom - - thumb_func_start atkAE_clearstatusifnotsoundproofed -atkAE_clearstatusifnotsoundproofed: @ 8053438 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r4, 0 - str r4, [sp, 0x4] - mov r8, r4 - ldr r0, =gUnknown_020241EA - ldrh r0, [r0] - cmp r0, 0xD7 - beq _08053454 - b _0805363E -_08053454: - ldr r6, =gUnknown_02024332 - mov r0, r8 - strb r0, [r6, 0x5] - ldr r5, =gUnknown_0202420B - ldrb r0, [r5] - bl battle_side_get_owner - lsls r0, 24 - ldr r1, =gEnemyParty - mov r10, r1 - cmp r0, 0 - bne _08053470 - ldr r2, =gPlayerParty - mov r10, r2 -_08053470: - ldr r4, =gBattleMons - ldrb r3, [r5] - movs r7, 0x58 - adds r2, r3, 0 - muls r2, r7 - adds r0, r2, r4 - adds r1, r0, 0 - adds r1, 0x20 - ldrb r0, [r1] - cmp r0, 0x2B - beq _080534C4 - adds r0, r4, 0 - adds r0, 0x4C - adds r0, r2, r0 - mov r1, r8 - str r1, [r0] - ldrb r0, [r5] - adds r2, r0, 0 - muls r2, r7 - adds r0, r4, 0 - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - ldr r1, =0xf7ffffff - ands r0, r1 - str r0, [r2] - b _080534D4 - .pool -_080534C4: - ldrb r1, [r1] - adds r0, r3, 0 - bl b_history__record_ability_usage_of_player - ldrb r0, [r6, 0x5] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r6, 0x5] -_080534D4: - ldr r7, =gUnknown_02024064 - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - bl battle_get_per_side_status - movs r2, 0x2 - mov r9, r2 - mov r1, r9 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r1, =gUnknown_02024474 - strb r0, [r1, 0x17] - strb r0, [r7] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0805357A - ldr r0, =gUnknown_02024210 - ldrb r2, [r0] - ldr r1, =gBitTable - ldrb r3, [r7] - lsls r0, r3, 2 - adds r0, r1 - ldr r0, [r0] - ands r2, r0 - cmp r2, 0 - bne _0805357A - ldr r5, =gBattleMons - movs r6, 0x58 - adds r4, r3, 0 - muls r4, r6 - adds r0, r4, r5 - adds r1, r0, 0 - adds r1, 0x20 - ldrb r0, [r1] - cmp r0, 0x2B - beq _08053568 - adds r0, r5, 0 - adds r0, 0x4C - adds r0, r4, r0 - str r2, [r0] - ldrb r0, [r7] - adds r2, r0, 0 - muls r2, r6 - adds r0, r5, 0 - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - ldr r1, =0xf7ffffff - ands r0, r1 - str r0, [r2] - b _0805357A - .pool -_08053568: - ldrb r1, [r1] - adds r0, r3, 0 - bl b_history__record_ability_usage_of_player - ldr r1, =gUnknown_02024332 - ldrb r0, [r1, 0x5] - mov r2, r9 - orrs r0, r2 - strb r0, [r1, 0x5] -_0805357A: - movs r6, 0 - ldr r7, =gBattleMons -_0805357E: - movs r0, 0x64 - adds r4, r6, 0 - muls r4, r0 - add r4, r10 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0x2E - bl GetMonData - lsls r0, 24 - lsrs r4, r0, 24 - cmp r5, 0 - beq _08053636 - movs r0, 0xCE - lsls r0, 1 - cmp r5, r0 - beq _08053636 - ldr r2, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r2 - ldrh r0, [r0] - cmp r0, r6 - bne _080535D0 - movs r0, 0x58 - muls r0, r1 - b _08053600 - .pool -_080535D0: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08053618 - ldr r0, =gUnknown_02024064 - ldrb r3, [r0] - lsls r0, r3, 1 - adds r0, r2 - ldrh r0, [r0] - cmp r0, r6 - bne _08053618 - ldr r0, =gUnknown_02024210 - ldrb r1, [r0] - ldr r2, =gBitTable - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08053618 - movs r0, 0x58 - muls r0, r3 -_08053600: - adds r0, r7 - adds r0, 0x20 - ldrb r0, [r0] - b _08053624 - .pool -_08053618: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_806B694 - lsls r0, 24 - lsrs r0, 24 -_08053624: - cmp r0, 0x2B - beq _08053636 - movs r0, 0x1 - lsls r0, r6 - mov r1, r8 - orrs r1, r0 - lsls r0, r1, 24 - lsrs r0, 24 - mov r8, r0 -_08053636: - adds r6, 0x1 - cmp r6, 0x5 - ble _0805357E - b _080536BC -_0805363E: - ldr r1, =gUnknown_02024332 - movs r0, 0x4 - strb r0, [r1, 0x5] - movs r2, 0x3F - mov r8, r2 - ldr r3, =gBattleMons - ldr r2, =gUnknown_0202420B - ldrb r0, [r2] - movs r5, 0x58 - muls r0, r5 - movs r1, 0x4C - adds r1, r3 - mov r9, r1 - add r0, r9 - str r4, [r0] - ldrb r0, [r2] - adds r1, r0, 0 - muls r1, r5 - adds r7, r3, 0 - adds r7, 0x50 - adds r1, r7 - ldr r0, [r1] - ldr r6, =0xf7ffffff - ands r0, r6 - str r0, [r1] - ldrb r0, [r2] - bl battle_get_per_side_status - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r4, =gUnknown_02024064 - strb r0, [r4] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080536BC - ldr r0, =gUnknown_02024210 - ldrb r2, [r0] - ldr r1, =gBitTable - ldrb r3, [r4] - lsls r0, r3, 2 - adds r0, r1 - ldr r0, [r0] - ands r2, r0 - cmp r2, 0 - bne _080536BC - adds r0, r3, 0 - muls r0, r5 - add r0, r9 - str r2, [r0] - ldrb r0, [r4] - adds r1, r0, 0 - muls r1, r5 - adds r1, r7 - ldr r0, [r1] - ands r0, r6 - str r0, [r1] -_080536BC: - mov r2, r8 - cmp r2, 0 - beq _080536DE - ldr r4, =gUnknown_02024064 - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - strb r0, [r4] - add r0, sp, 0x4 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_080536DE: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkAE_clearstatusifnotsoundproofed - - thumb_func_start atkAF_cursetarget -atkAF_cursetarget: @ 805371C - push {r4,r5,lr} - ldr r5, =gBattleMons - ldr r0, =gEnemyMonIndex - ldrb r0, [r0] - movs r4, 0x58 - adds r1, r0, 0 - muls r1, r4 - adds r0, r5, 0 - adds r0, 0x50 - adds r1, r0 - ldr r2, [r1] - movs r3, 0x80 - lsls r3, 21 - adds r0, r2, 0 - ands r0, r3 - cmp r0, 0 - beq _08053768 - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0805378C - .pool -_08053768: - orrs r2, r3 - str r2, [r1] - ldr r1, =gBattleMoveDamage - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - muls r0, r4 - adds r0, r5 - ldrh r0, [r0, 0x2C] - lsrs r0, 1 - str r0, [r1] - cmp r0, 0 - bne _08053784 - movs r0, 0x1 - str r0, [r1] -_08053784: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0805378C: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atkAF_cursetarget - - thumb_func_start atkB0_setspikes -atkB0_setspikes: @ 80537A0 - push {r4,lr} - ldr r4, =gUnknown_0202420B - ldrb r0, [r4] - bl battle_side_get_owner - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02024294 - lsls r2, r0, 1 - adds r0, r2, r0 - lsls r0, 2 - adds r3, r0, r1 - ldrb r0, [r3, 0xA] - cmp r0, 0x3 - bne _08053804 - ldr r2, =gUnknown_0202437C - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0] - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0805381E - .pool -_08053804: - ldr r1, =gUnknown_0202428E - adds r1, r2, r1 - ldrh r2, [r1] - movs r0, 0x10 - orrs r0, r2 - strh r0, [r1] - ldrb r0, [r3, 0xA] - adds r0, 0x1 - strb r0, [r3, 0xA] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0805381E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkB0_setspikes - - thumb_func_start atkB1_setforesight -atkB1_setforesight: @ 805382C - ldr r1, =gBattleMons - ldr r0, =gEnemyMonIndex - ldrb r2, [r0] - movs r0, 0x58 - muls r2, r0 - adds r1, 0x50 - adds r2, r1 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 22 - orrs r0, r1 - str r0, [r2] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .pool - thumb_func_end atkB1_setforesight - - thumb_func_start atkB2_setperishsong -atkB2_setperishsong: @ 805385C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r6, 0 - movs r3, 0 - ldr r0, =gUnknown_0202406C - adds r7, r0, 0 - ldr r0, =gUnknown_0202420B - mov r8, r0 - ldrb r1, [r7] - cmp r6, r1 - bge _080538C8 - movs r5, 0x20 - ldr r0, =gBattleMons - mov r12, r0 - ldr r0, =gUnknown_020242BC - adds r4, r0, 0 - adds r4, 0xF - ldr r2, =gUnknown_020242AC -_08053884: - ldr r1, [r2] - adds r0, r1, 0 - ands r0, r5 - cmp r0, 0 - bne _0805389C - movs r0, 0x58 - muls r0, r3 - add r0, r12 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x2B - bne _080538B4 -_0805389C: - adds r6, 0x1 - b _080538BC - .pool -_080538B4: - orrs r1, r5 - str r1, [r2] - movs r0, 0x33 - strb r0, [r4] -_080538BC: - adds r4, 0x1C - adds r2, 0x4 - adds r3, 0x1 - ldrb r0, [r7] - cmp r3, r0 - blt _08053884 -_080538C8: - mov r1, r8 - ldrb r0, [r1] - bl sub_803F67C - ldr r0, =gUnknown_0202406C - ldrb r0, [r0] - cmp r6, r0 - bne _080538FC - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08053904 - .pool -_080538FC: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08053904: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkB2_setperishsong - - thumb_func_start atkB3_rolloutdamagecalculation -atkB3_rolloutdamagecalculation: @ 8053914 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _08053948 - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - bl b_cancel_multi_turn_move_maybe - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082D8A60 - str r0, [r1] - b _08053A60 - .pool -_08053948: - ldr r2, =gBattleMons - ldr r1, =gUnknown_0202420B - ldrb r3, [r1] - movs r5, 0x58 - adds r0, r3, 0 - muls r0, r5 - adds r4, r2, 0 - adds r4, 0x50 - adds r0, r4 - ldr r0, [r0] - movs r7, 0x80 - lsls r7, 5 - ands r0, r7 - adds r6, r1, 0 - mov r9, r2 - ldr r1, =gUnknown_020242BC - mov r12, r1 - ldr r2, =gUnknown_020241EA - mov r8, r2 - cmp r0, 0 - bne _080539BA - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - add r0, r12 - ldrb r2, [r0, 0x11] - movs r1, 0x10 - negs r1, r1 - ands r1, r2 - movs r2, 0x5 - orrs r1, r2 - strb r1, [r0, 0x11] - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r12 - ldrb r2, [r0, 0x11] - movs r1, 0xF - ands r1, r2 - movs r2, 0x50 - orrs r1, r2 - strb r1, [r0, 0x11] - ldrb r0, [r6] - adds r1, r0, 0 - muls r1, r5 - adds r1, r4 - ldr r0, [r1] - orrs r0, r7 - str r0, [r1] - ldr r1, =gUnknown_02024268 - ldrb r0, [r6] - lsls r0, 1 - adds r0, r1 - mov r2, r8 - ldrh r1, [r2] - strh r1, [r0] -_080539BA: - ldrb r0, [r6] - lsls r2, r0, 3 - subs r2, r0 - lsls r2, 2 - add r2, r12 - ldrb r3, [r2, 0x11] - lsls r1, r3, 28 - lsrs r1, 28 - subs r1, 0x1 - movs r0, 0xF - ands r1, r0 - movs r0, 0x10 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x11] - cmp r1, 0 - bne _080539EE - ldrb r0, [r6] - adds r1, r0, 0 - muls r1, r5 - adds r1, r4 - ldr r0, [r1] - ldr r2, =0xffffefff - ands r0, r2 - str r0, [r1] -_080539EE: - ldr r3, =gUnknown_02024400 - ldr r2, =gBattleMoves - mov r0, r8 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - strh r0, [r3] - movs r2, 0x1 - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - mov r1, r12 - adds r4, r0, r1 - ldrb r0, [r4, 0x11] - lsls r0, 28 - lsrs r0, 28 - movs r1, 0x5 - subs r1, r0 - ldr r7, =gUnknown_02024214 - adds r5, r3, 0 - cmp r2, r1 - bge _08053A3C - adds r1, r5, 0 - adds r3, r4, 0 - movs r4, 0x5 -_08053A28: - ldrh r0, [r1] - lsls r0, 1 - strh r0, [r1] - adds r2, 0x1 - ldrb r0, [r3, 0x11] - lsls r0, 28 - lsrs r0, 28 - subs r0, r4, r0 - cmp r2, r0 - blt _08053A28 -_08053A3C: - ldrb r1, [r6] - movs r0, 0x58 - muls r0, r1 - mov r1, r9 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 23 - ands r0, r1 - cmp r0, 0 - beq _08053A5A - ldrh r0, [r5] - lsls r0, 1 - strh r0, [r5] -_08053A5A: - ldr r0, [r7] - adds r0, 0x1 - str r0, [r7] -_08053A60: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkB3_rolloutdamagecalculation - - thumb_func_start atkB4_jumpifconfusedandattackmaxed -atkB4_jumpifconfusedandattackmaxed: @ 8053A90 - push {r4,r5,lr} - ldr r5, =gBattleMons - ldr r0, =gEnemyMonIndex - ldrb r1, [r0] - movs r0, 0x58 - adds r3, r1, 0 - muls r3, r0 - adds r0, r5, 0 - adds r0, 0x50 - adds r0, r3, r0 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - ldr r4, =gUnknown_02024214 - cmp r0, 0 - beq _08053AEC - ldr r2, [r4] - ldrb r0, [r2, 0x1] - adds r0, r3 - adds r1, r5, 0 - adds r1, 0x18 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0xC - bne _08053AEC - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08053AF2 - .pool -_08053AEC: - ldr r0, [r4] - adds r0, 0x6 - str r0, [r4] -_08053AF2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end atkB4_jumpifconfusedandattackmaxed - - thumb_func_start sub_8053AF8 -sub_8053AF8: @ 8053AF8 - push {r4,r5,lr} - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _08053B34 - ldr r2, =gUnknown_020242BC - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strb r1, [r0, 0x10] - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082D8A60 - str r0, [r1] - b _08053B8C - .pool -_08053B34: - ldr r5, =gUnknown_020242BC - ldr r4, =gUnknown_0202420B - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r0, r5 - ldrb r0, [r1, 0x10] - cmp r0, 0x5 - beq _08053B4C - adds r0, 0x1 - strb r0, [r1, 0x10] -_08053B4C: - ldr r3, =gUnknown_02024400 - ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - strh r0, [r3] - movs r2, 0x1 - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r4, =gUnknown_02024214 - ldrb r1, [r0, 0x10] - cmp r2, r1 - bge _08053B86 - adds r1, r3, 0 - adds r3, r0, 0 -_08053B78: - ldrh r0, [r1] - lsls r0, 1 - strh r0, [r1] - adds r2, 0x1 - ldrb r0, [r3, 0x10] - cmp r2, r0 - blt _08053B78 -_08053B86: - ldr r0, [r4] - adds r0, 0x1 - str r0, [r4] -_08053B8C: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8053AF8 - - thumb_func_start atkB6_happinesstodamagecalculation -atkB6_happinesstodamagecalculation: @ 8053BAC - push {r4,lr} - ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x79 - bne _08053BEC - ldr r4, =gUnknown_02024400 - ldr r2, =gBattleMons - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x2B - ldrb r1, [r0] - b _08053C02 - .pool -_08053BEC: - ldr r4, =gUnknown_02024400 - ldr r2, =gBattleMons - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x2B - ldrb r0, [r0] - movs r1, 0xFF - subs r1, r0 -_08053C02: - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - movs r1, 0x19 - bl __divsi3 - strh r0, [r4] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkB6_happinesstodamagecalculation - - thumb_func_start atkB7_presentdamagecalculation -atkB7_presentdamagecalculation: @ 8053C30 - push {r4,lr} - bl Random - movs r4, 0xFF - ands r4, r0 - cmp r4, 0x65 - bgt _08053C4C - ldr r1, =gUnknown_02024400 - movs r0, 0x28 - strh r0, [r1] - b _08053C8E - .pool -_08053C4C: - cmp r4, 0xB1 - bgt _08053C5C - ldr r1, =gUnknown_02024400 - movs r0, 0x50 - strh r0, [r1] - b _08053C8E - .pool -_08053C5C: - cmp r4, 0xCB - bgt _08053C6C - ldr r1, =gUnknown_02024400 - movs r0, 0x78 - strh r0, [r1] - b _08053C8E - .pool -_08053C6C: - ldr r3, =gBattleMoveDamage - ldr r2, =gBattleMons - ldr r0, =gEnemyMonIndex - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x2C] - lsrs r0, 2 - str r0, [r3] - cmp r0, 0 - bne _08053C88 - movs r0, 0x1 - str r0, [r3] -_08053C88: - ldr r0, [r3] - negs r0, r0 - str r0, [r3] -_08053C8E: - cmp r4, 0xCB - bgt _08053CAC - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082D8A30 - b _08053CE6 - .pool -_08053CAC: - ldr r2, =gBattleMons - ldr r0, =gEnemyMonIndex - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r1, [r0, 0x2C] - ldrh r0, [r0, 0x28] - cmp r1, r0 - bne _08053CD8 - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082D9EFB - b _08053CE6 - .pool -_08053CD8: - ldr r2, =gBattleMoveFlags - ldrb r1, [r2] - movs r0, 0xF7 - ands r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082D9EE1 -_08053CE6: - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkB7_presentdamagecalculation - - thumb_func_start atkB8_setsafeguard -atkB8_setsafeguard: @ 8053CFC - push {r4-r7,lr} - ldr r7, =gUnknown_0202420B - ldrb r0, [r7] - bl battle_get_per_side_status - ldr r4, =gUnknown_0202428E - movs r6, 0x1 - adds r1, r6, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - ldrh r1, [r1] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08053D40 - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_02024332 - movs r0, 0 - strb r0, [r1, 0x5] - b _08053D88 - .pool -_08053D40: - ldrb r0, [r7] - bl battle_get_per_side_status - adds r1, r6, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - ldrh r0, [r1] - movs r2, 0x20 - orrs r0, r2 - strh r0, [r1] - ldrb r0, [r7] - bl battle_get_per_side_status - ldr r5, =gUnknown_02024294 - adds r1, r6, 0 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r4, 0x5 - strb r4, [r0, 0x6] - ldrb r0, [r7] - bl battle_get_per_side_status - adds r1, r6, 0 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r7] - strb r1, [r0, 0x7] - ldr r0, =gUnknown_02024332 - strb r4, [r0, 0x5] -_08053D88: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkB8_setsafeguard - - thumb_func_start atkB9_magnitudedamagecalculation -atkB9_magnitudedamagecalculation: @ 8053DA4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x4 - bgt _08053DD0 - ldr r1, =gUnknown_02024400 - movs r0, 0xA - strh r0, [r1] - movs r3, 0x4 - b _08053E3C - .pool -_08053DD0: - cmp r3, 0xE - bgt _08053DE4 - ldr r1, =gUnknown_02024400 - movs r0, 0x1E - strh r0, [r1] - movs r3, 0x5 - b _08053E3C - .pool -_08053DE4: - cmp r3, 0x22 - bgt _08053DF8 - ldr r1, =gUnknown_02024400 - movs r0, 0x32 - strh r0, [r1] - movs r3, 0x6 - b _08053E3C - .pool -_08053DF8: - cmp r3, 0x40 - bgt _08053E0C - ldr r1, =gUnknown_02024400 - movs r0, 0x46 - strh r0, [r1] - movs r3, 0x7 - b _08053E3C - .pool -_08053E0C: - cmp r3, 0x54 - bgt _08053E20 - ldr r1, =gUnknown_02024400 - movs r0, 0x5A - strh r0, [r1] - movs r3, 0x8 - b _08053E3C - .pool -_08053E20: - cmp r3, 0x5E - bgt _08053E34 - ldr r1, =gUnknown_02024400 - movs r0, 0x6E - strh r0, [r1] - movs r3, 0x9 - b _08053E3C - .pool -_08053E34: - ldr r1, =gUnknown_02024400 - movs r0, 0x96 - strh r0, [r1] - movs r3, 0xA -_08053E3C: - ldr r1, =gUnknown_02022F58 - movs r2, 0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x1 - strb r0, [r1, 0x1] - strb r0, [r1, 0x2] - movs r0, 0x2 - strb r0, [r1, 0x3] - strb r3, [r1, 0x4] - movs r0, 0xFF - strb r0, [r1, 0x5] - ldr r1, =gEnemyMonIndex - strb r2, [r1] - ldr r0, =gUnknown_0202406C - ldrb r3, [r0] - adds r6, r1, 0 - ldr r0, =gUnknown_02024214 - mov r8, r0 - cmp r2, r3 - bcs _08053E94 - adds r4, r6, 0 - ldr r0, =gUnknown_0202420B - ldrb r5, [r0] - ldr r1, =gBitTable - mov r12, r1 - ldr r7, =gUnknown_02024210 -_08053E72: - ldrb r2, [r4] - cmp r2, r5 - beq _08053E88 - ldrb r0, [r7] - ldrb r1, [r6] - lsls r1, 2 - add r1, r12 - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - beq _08053E94 -_08053E88: - adds r0, r2, 0x1 - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, r3 - bcc _08053E72 -_08053E94: - mov r1, r8 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkB9_magnitudedamagecalculation - - thumb_func_start atkBA_802B140 -atkBA_802B140: @ 8053EC8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, =gUnknown_02024212 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08053EF8 - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08053EF4 - movs r0, 0x1 - b _08053F12 - .pool -_08053EF4: - movs r0, 0 - b _08053F12 -_08053EF8: - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08053F10 - movs r0, 0x3 - b _08053F12 - .pool -_08053F10: - movs r0, 0x2 -_08053F12: - bl battle_get_side_with_given_state - ldr r1, =gEnemyMonIndex - strb r0, [r1] - ldr r0, =gUnknown_0202421C - ldr r1, =gEnemyMonIndex - ldrb r3, [r1] - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, 0 - beq _08053F2A - b _08054030 -_08053F2A: - ldr r5, =gUnknown_0202420B - ldr r0, =gUnknown_0202449C - ldr r1, [r0] - adds r1, r3, r1 - ldrb r2, [r5] - ldrb r1, [r1, 0xC] - cmp r2, r1 - bne _08054030 - ldr r4, =gBattleMons - movs r2, 0x58 - adds r0, r3, 0 - muls r0, r2 - adds r1, r4, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x27 - ands r0, r1 - cmp r0, 0 - bne _08054030 - ldrb r0, [r5] - muls r0, r2 - adds r0, r4 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08054030 - ldr r0, =gUnknown_020242BC - lsls r1, r3, 3 - subs r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x18] - lsls r0, 31 - cmp r0, 0 - bne _08054030 - ldr r0, =gUnknown_02024274 - lsls r1, r3, 1 - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0xE4 - bne _08054030 - movs r1, 0 - ldr r0, =gUnknown_0202406C - ldr r2, =gUnknown_020241EA - mov r8, r2 - ldr r7, =gUnknown_020241E8 - mov r10, r7 - ldr r2, =gUnknown_020241E9 - mov r9, r2 - ldr r7, =gUnknown_02024280 - mov r12, r7 - ldrb r2, [r0] - cmp r1, r2 - bge _08053FB6 - ldr r6, =gUnknown_0202407E - ldr r5, =gEnemyMonIndex - ldr r4, =gUnknown_0202407A - movs r3, 0xB - adds r2, r0, 0 -_08053FA0: - adds r0, r1, r6 - ldrb r0, [r0] - ldrb r7, [r5] - cmp r0, r7 - bne _08053FAE - adds r0, r1, r4 - strb r3, [r0] -_08053FAE: - adds r1, 0x1 - ldrb r0, [r2] - cmp r1, r0 - blt _08053FA0 -_08053FB6: - movs r0, 0xE4 - mov r1, r8 - strh r0, [r1] - ldr r2, =gEnemyMonIndex - ldrb r0, [r2] - ldr r7, =gUnknown_0202449C - ldr r1, [r7] - adds r0, r1 - adds r0, 0x80 - ldrb r0, [r0] - mov r1, r9 - strb r0, [r1] - mov r2, r10 - strb r0, [r2] - ldr r7, =gUnknown_02024214 - ldr r0, [r7] - adds r0, 0x5 - str r0, [r7] - movs r0, 0x1 - ldr r1, =gUnknown_02024474 - strb r0, [r1, 0x18] - mov r2, r12 - ldr r0, [r2] - ldr r1, =0xfffffbff - ands r0, r1 - str r0, [r2] - b _0805404A - .pool -_08054030: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_0805404A: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkBA_802B140 - - thumb_func_start sub_805405C -sub_805405C: @ 805405C - push {lr} - ldr r2, =gBattleWeather - ldrh r1, [r2] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _08054088 - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_02024332 - movs r0, 0x2 - strb r0, [r1, 0x5] - b _0805409A - .pool -_08054088: - movs r0, 0x20 - strh r0, [r2] - ldr r1, =gUnknown_02024332 - movs r0, 0x4 - strb r0, [r1, 0x5] - ldr r0, =gUnknown_020243D0 - adds r0, 0x28 - movs r1, 0x5 - strb r1, [r0] -_0805409A: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_805405C - - thumb_func_start atkBC_maxattackhalvehp -atkBC_maxattackhalvehp: @ 80540B4 - push {r4,r5,lr} - ldr r5, =gBattleMons - ldr r4, =gUnknown_0202420B - ldrb r0, [r4] - movs r3, 0x58 - muls r0, r3 - adds r2, r0, r5 - ldrh r0, [r2, 0x2C] - lsrs r1, r0, 1 - cmp r1, 0 - bne _080540CC - movs r1, 0x1 -_080540CC: - movs r0, 0x19 - ldrsb r0, [r2, r0] - cmp r0, 0xB - bgt _08054110 - ldrh r0, [r2, 0x28] - cmp r0, r1 - bls _08054110 - movs r0, 0xC - strb r0, [r2, 0x19] - ldr r1, =gBattleMoveDamage - ldrb r0, [r4] - muls r0, r3 - adds r0, r5 - ldrh r0, [r0, 0x2C] - lsrs r0, 1 - str r0, [r1] - cmp r0, 0 - bne _080540F4 - movs r0, 0x1 - str r0, [r1] -_080540F4: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0805412A - .pool -_08054110: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_0805412A: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atkBC_maxattackhalvehp - - thumb_func_start atkBD_copyfoestats -atkBD_copyfoestats: @ 8054134 - push {r4-r7,lr} - movs r2, 0 - ldr r7, =gUnknown_02024214 - ldr r6, =gUnknown_0202420B - movs r4, 0x58 - ldr r3, =gUnknown_0202409C - ldr r5, =gEnemyMonIndex -_08054142: - ldrb r0, [r6] - adds r1, r0, 0 - muls r1, r4 - adds r1, r2, r1 - adds r1, r3 - ldrb r0, [r5] - muls r0, r4 - adds r0, r2, r0 - adds r0, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r2, 0x1 - cmp r2, 0x7 - ble _08054142 - ldr r0, [r7] - adds r0, 0x5 - str r0, [r7] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkBD_copyfoestats - - thumb_func_start atkBE_breakfree -atkBE_breakfree: @ 805417C - push {r4-r6,lr} - ldr r1, =gBattleMons - ldr r5, =gUnknown_0202420B - ldrb r2, [r5] - movs r6, 0x58 - adds r0, r2, 0 - muls r0, r6 - adds r4, r1, 0 - adds r4, 0x50 - adds r0, r4 - ldr r0, [r0] - movs r1, 0xE0 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _08054210 - ldr r1, =gUnknown_02024474 - ldr r3, =gEnemyMonIndex - ldrb r0, [r3] - strb r0, [r1, 0x17] - ldrb r0, [r5] - adds r1, r0, 0 - muls r1, r6 - adds r1, r4 - ldr r0, [r1] - ldr r2, =0xffff1fff - ands r0, r2 - str r0, [r1] - ldrb r0, [r5] - ldr r1, =gUnknown_0202449C - ldr r2, [r1] - adds r0, r2 - ldrb r0, [r0, 0x14] - strb r0, [r3] - ldr r1, =gUnknown_02022F58 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - ldrb r0, [r5] - lsls r0, 1 - adds r0, r2 - ldrb r0, [r0, 0x4] - strb r0, [r1, 0x2] - ldrb r0, [r5] - lsls r0, 1 - adds r0, r2 - ldrb r0, [r0, 0x5] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DAFC5 - b _080542BA - .pool -_08054210: - ldr r4, =gUnknown_020242AC - lsls r0, r2, 2 - adds r3, r0, r4 - ldr r1, [r3] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08054250 - movs r0, 0x5 - negs r0, r0 - ands r1, r0 - str r1, [r3] - ldrb r1, [r5] - lsls r1, 2 - adds r1, r4 - ldr r0, [r1] - movs r2, 0x4 - negs r2, r2 - ands r0, r2 - str r0, [r1] - bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DAFD6 - b _080542BA - .pool -_08054250: - adds r0, r2, 0 - bl battle_side_get_owner - ldr r4, =gUnknown_0202428E - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - ldrh r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080542B4 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - ldrh r2, [r0] - ldr r1, =0x0000ffef - ands r1, r2 - movs r4, 0 - strh r1, [r0] - ldrb r0, [r5] - bl battle_side_get_owner - ldr r2, =gUnknown_02024294 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - strb r4, [r1, 0xA] - bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DAFDD - b _080542BA - .pool -_080542B4: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 -_080542BA: - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atkBE_breakfree - - thumb_func_start atkBF_setcurled -atkBF_setcurled: @ 80542C8 - ldr r1, =gBattleMons - ldr r0, =gUnknown_0202420B - ldrb r2, [r0] - movs r0, 0x58 - muls r2, r0 - adds r1, 0x50 - adds r2, r1 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 23 - orrs r0, r1 - str r0, [r2] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .pool - thumb_func_end atkBF_setcurled - - thumb_func_start atkC0_recoverbasedonsunlight -atkC0_recoverbasedonsunlight: @ 80542F8 - push {r4-r7,lr} - sub sp, 0x4 - ldr r1, =gEnemyMonIndex - ldr r5, =gUnknown_0202420B - ldrb r0, [r5] - strb r0, [r1] - ldr r7, =gBattleMons - ldrb r0, [r5] - movs r6, 0x58 - muls r0, r6 - adds r0, r7 - ldrh r1, [r0, 0x28] - ldrh r0, [r0, 0x2C] - cmp r1, r0 - beq _080543D8 - ldr r4, =gBattleWeather - ldrh r0, [r4] - cmp r0, 0 - beq _0805434A - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl ability_something - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0805434A - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl ability_something - lsls r0, 24 - cmp r0, 0 - beq _08054378 -_0805434A: - ldr r3, =gBattleMoveDamage - ldr r2, =gBattleMons - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x2C] - lsrs r0, 1 - str r0, [r3] - adds r1, r3, 0 - b _080543B2 - .pool -_08054378: - ldrh r1, [r4] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _080543A4 - ldr r4, =gBattleMoveDamage - ldrb r0, [r5] - muls r0, r6 - adds r0, r7 - ldrh r1, [r0, 0x2C] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - movs r1, 0x1E - bl __divsi3 - str r0, [r4] - adds r1, r4, 0 - b _080543B2 - .pool -_080543A4: - ldr r1, =gBattleMoveDamage - ldrb r0, [r5] - muls r0, r6 - adds r0, r7 - ldrh r0, [r0, 0x2C] - lsrs r0, 2 - str r0, [r1] -_080543B2: - adds r2, r1, 0 - ldr r0, [r2] - cmp r0, 0 - bne _080543BE - movs r0, 0x1 - str r0, [r2] -_080543BE: - ldr r0, [r1] - negs r0, r0 - str r0, [r1] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _080543F2 - .pool -_080543D8: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_080543F2: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkC0_recoverbasedonsunlight - - thumb_func_start sub_8054400 -sub_8054400: @ 8054400 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r2, =gBattleMons - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - movs r0, 0x58 - adds r4, r1, 0 - muls r4, r0 - adds r4, r2 - ldrb r0, [r4, 0x14] - mov r10, r0 - mov r7, r10 - lsls r7, 27 - adds r0, r7, 0 - lsrs r0, 27 - mov r10, r0 - movs r1, 0x2 - mov r2, r10 - ands r2, r1 - asrs r2, 1 - ldrh r7, [r4, 0x14] - mov r9, r7 - mov r0, r9 - lsls r0, 22 - mov r9, r0 - lsrs r3, r0, 27 - adds r0, r1, 0 - ands r0, r3 - orrs r2, r0 - ldrb r7, [r4, 0x15] - mov r8, r7 - mov r0, r8 - lsls r0, 25 - mov r8, r0 - lsrs r3, r0, 27 - adds r0, r1, 0 - ands r0, r3 - lsls r0, 1 - orrs r2, r0 - ldr r6, [r4, 0x14] - lsls r6, 12 - lsrs r3, r6, 27 - adds r0, r1, 0 - ands r0, r3 - lsls r0, 2 - orrs r2, r0 - ldrh r5, [r4, 0x16] - lsls r5, 23 - lsrs r3, r5, 27 - adds r0, r1, 0 - ands r0, r3 - lsls r0, 3 - orrs r2, r0 - ldrb r3, [r4, 0x17] - lsls r3, 26 - lsrs r0, r3, 27 - ands r1, r0 - lsls r1, 4 - orrs r2, r1 - movs r1, 0x1 - adds r4, r1, 0 - mov r7, r10 - ands r4, r7 - mov r0, r9 - lsrs r0, 27 - mov r9, r0 - adds r0, r1, 0 - mov r7, r9 - ands r0, r7 - lsls r0, 1 - orrs r4, r0 - mov r0, r8 - lsrs r0, 27 - mov r8, r0 - adds r0, r1, 0 - mov r7, r8 - ands r0, r7 - lsls r0, 2 - orrs r4, r0 - lsrs r6, 27 - adds r0, r1, 0 - ands r0, r6 - lsls r0, 3 - orrs r4, r0 - lsrs r5, 27 - adds r0, r1, 0 - ands r0, r5 - lsls r0, 4 - orrs r4, r0 - lsrs r3, 27 - ands r1, r3 - lsls r1, 5 - orrs r4, r1 - ldr r5, =gUnknown_02024400 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - movs r1, 0x3F - bl __divsi3 - adds r0, 0x1E - strh r0, [r5] - ldr r6, =gUnknown_0202449C - ldr r5, [r6] - lsls r0, r4, 4 - subs r0, r4 - movs r1, 0x3F - bl __divsi3 - adds r0, 0x1 - strb r0, [r5, 0x13] - ldr r1, [r6] - ldrb r0, [r1, 0x13] - cmp r0, 0x8 - bls _080544F0 - adds r0, 0x1 - strb r0, [r1, 0x13] -_080544F0: - ldr r2, [r6] - ldrb r0, [r2, 0x13] - movs r1, 0xC0 - orrs r0, r1 - strb r0, [r2, 0x13] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8054400 - - thumb_func_start atkC2_selectnexttarget -atkC2_selectnexttarget: @ 8054524 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, =gEnemyMonIndex - movs r1, 0 - strb r1, [r0] - ldr r1, =gUnknown_0202406C - ldrb r1, [r1] - adds r6, r0, 0 - ldr r0, =gUnknown_02024214 - mov r8, r0 - cmp r1, 0 - beq _0805456E - adds r3, r6, 0 - ldr r0, =gUnknown_0202420B - ldrb r5, [r0] - ldr r0, =gBitTable - mov r12, r0 - adds r4, r1, 0 - ldr r7, =gUnknown_02024210 -_0805454C: - ldrb r2, [r3] - cmp r2, r5 - beq _08054562 - ldrb r0, [r7] - ldrb r1, [r6] - lsls r1, 2 - add r1, r12 - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - beq _0805456E -_08054562: - adds r0, r2, 0x1 - strb r0, [r3] - lsls r0, 24 - lsrs r0, 24 - cmp r0, r4 - bcc _0805454C -_0805456E: - mov r1, r8 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkC2_selectnexttarget - - thumb_func_start atkC3_setfutureattack -atkC3_setfutureattack: @ 8054598 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - ldr r0, =gUnknown_020243D0 - mov r8, r0 - ldr r6, =gEnemyMonIndex - ldrb r1, [r6] - adds r0, r1, r0 - ldrb r7, [r0] - cmp r7, 0 - beq _080545DC - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _080546CC - .pool -_080545DC: - adds r0, r1, 0 - bl battle_get_per_side_status - ldr r4, =gUnknown_0202428E - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - mov r10, r1 - ands r0, r1 - lsls r0, 1 - adds r0, r4 - ldrh r2, [r0] - movs r1, 0x40 - movs r5, 0 - mov r3, sp - strh r5, [r3, 0x10] - orrs r1, r2 - strh r1, [r0] - ldrb r0, [r6] - lsls r0, 1 - mov r1, r8 - adds r1, 0x18 - adds r0, r1 - ldr r1, =gUnknown_020241EA - mov r9, r1 - ldrh r1, [r1] - strh r1, [r0] - mov r0, r8 - adds r0, 0x4 - ldrb r2, [r6] - adds r0, r2 - ldr r5, =gUnknown_0202420B - ldrb r1, [r5] - strb r1, [r0] - ldrb r0, [r6] - add r0, r8 - movs r1, 0x3 - strb r1, [r0] - ldrb r0, [r6] - bl battle_get_per_side_status - mov r1, r10 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - ldrh r3, [r1] - ldrb r0, [r5] - movs r4, 0x58 - muls r0, r4 - ldr r2, =gBattleMons - adds r0, r2 - ldrb r1, [r6] - muls r1, r4 - adds r1, r2 - mov r4, r9 - ldrh r2, [r4] - str r7, [sp] - str r7, [sp, 0x4] - ldrb r4, [r5] - str r4, [sp, 0x8] - ldrb r4, [r6] - str r4, [sp, 0xC] - bl sub_806957C - ldrb r1, [r6] - lsls r1, 2 - mov r2, r8 - adds r2, 0x8 - adds r1, r2 - str r0, [r1] - ldr r1, =gUnknown_0202433C - ldrb r0, [r5] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 28 - cmp r0, 0 - bge _0805468C - ldrb r4, [r6] - lsls r4, 2 - adds r4, r2 - ldr r1, [r4] - lsls r0, r1, 4 - subs r0, r1 - movs r1, 0xA - bl __divsi3 - str r0, [r4] -_0805468C: - mov r5, r9 - ldrh r1, [r5] - ldr r0, =0x00000161 - cmp r1, r0 - bne _080546BC - ldr r0, =gUnknown_02024332 - mov r1, r10 - strb r1, [r0, 0x5] - b _080546C4 - .pool -_080546BC: - ldr r0, =gUnknown_02024332 - mov r2, sp - ldrb r2, [r2, 0x10] - strb r2, [r0, 0x5] -_080546C4: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_080546CC: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkC3_setfutureattack - - thumb_func_start atkC4_802B910 -atkC4_802B910: @ 80546E4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - ldr r7, =gEnemyParty - cmp r0, 0 - bne _080546FE - ldr r7, =gPlayerParty -_080546FE: - ldr r2, =gBattleMons - ldr r0, =gEnemyMonIndex - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _08054740 - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - b _080548DC - .pool -_08054740: - ldr r6, =gUnknown_02024332 - ldrb r0, [r6] - mov r8, r0 - cmp r0, 0x5 - bls _0805474C - b _080548A8 -_0805474C: - adds r4, r6, 0 - movs r5, 0x64 -_08054750: - ldrb r0, [r4] - muls r0, r5 - adds r0, r7, r0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08054794 - ldrb r0, [r6] - muls r0, r5 - adds r0, r7, r0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _08054794 - ldrb r0, [r4] - muls r0, r5 - adds r0, r7, r0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _08054794 - ldrb r0, [r4] - muls r0, r5 - adds r0, r7, r0 - movs r1, 0x37 - bl GetMonData - cmp r0, 0 - beq _080547A4 -_08054794: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - adds r6, r4, 0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bls _08054750 -_080547A4: - ldr r1, =gUnknown_02024332 - mov r9, r1 - ldrb r2, [r1] - cmp r2, 0x5 - bhi _080548A8 - ldr r1, =gUnknown_02022F58 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x4 - strb r0, [r1, 0x1] - ldr r6, =gUnknown_0202420B - ldrb r0, [r6] - strb r0, [r1, 0x2] - strb r2, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x9 - str r0, [r1] - ldr r2, =gBattleMoveDamage - mov r8, r2 - ldr r5, =gBaseStats - mov r1, r9 - ldrb r0, [r1] - movs r4, 0x64 - muls r0, r4 - adds r0, r7, r0 - movs r1, 0xB - bl GetMonData - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r3, [r1, 0x1] - mov r2, r8 - str r3, [r2] - ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - muls r0, r3 - mov r1, r8 - str r0, [r1] - mov r2, r9 - ldrb r0, [r2] - muls r0, r4 - adds r0, r7, r0 - movs r1, 0x38 - bl GetMonData - lsls r0, 1 - movs r1, 0x5 - bl __udivsi3 - adds r0, 0x2 - mov r2, r8 - ldr r1, [r2] - muls r0, r1 - str r0, [r2] - ldr r3, =gBattleMons - ldr r1, =gEnemyMonIndex - ldrb r2, [r1] - movs r1, 0x58 - muls r1, r2 - adds r1, r3 - ldrh r2, [r1] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r5 - ldrb r1, [r1, 0x2] - bl __divsi3 - mov r1, r8 - str r0, [r1] - movs r1, 0x32 - bl __divsi3 - adds r2, r0, 0x2 - mov r0, r8 - str r2, [r0] - ldr r1, =gUnknown_0202433C - ldrb r0, [r6] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 28 - cmp r0, 0 - bge _08054870 - lsls r0, r2, 4 - subs r0, r2 - movs r1, 0xA - bl __divsi3 - mov r1, r8 - str r0, [r1] -_08054870: - mov r2, r9 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - b _080548E2 - .pool -_080548A8: - mov r0, r8 - cmp r0, 0 - beq _080548C8 - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - b _080548DC - .pool -_080548C8: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x8] -_080548DC: - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_080548E2: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkC4_802B910 - - thumb_func_start atkC5_hidepreattack -atkC5_hidepreattack: @ 80548F4 - push {lr} - ldr r0, =gUnknown_020241EA - ldrh r1, [r0] - cmp r1, 0x5B - beq _08054934 - cmp r1, 0x5B - bgt _0805490C - cmp r1, 0x13 - beq _08054918 - b _08054960 - .pool -_0805490C: - ldr r0, =0x00000123 - cmp r1, r0 - beq _0805494C - adds r0, 0x31 - cmp r1, r0 - bne _08054960 -_08054918: - ldr r2, =gUnknown_020242AC - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - movs r2, 0x40 - b _0805495C - .pool -_08054934: - ldr r2, =gUnknown_020242AC - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - movs r2, 0x80 - b _0805495C - .pool -_0805494C: - ldr r2, =gUnknown_020242AC - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - movs r2, 0x80 - lsls r2, 11 -_0805495C: - orrs r0, r2 - str r0, [r1] -_08054960: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atkC5_hidepreattack - - thumb_func_start atkC6_unhidepostattack -atkC6_unhidepostattack: @ 8054978 - push {lr} - ldr r0, =gUnknown_020241EA - ldrh r1, [r0] - cmp r1, 0x5B - beq _080549BC - cmp r1, 0x5B - bgt _08054990 - cmp r1, 0x13 - beq _0805499C - b _080549EA - .pool -_08054990: - ldr r0, =0x00000123 - cmp r1, r0 - beq _080549D8 - adds r0, 0x31 - cmp r1, r0 - bne _080549EA -_0805499C: - ldr r2, =gUnknown_020242AC - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - movs r2, 0x41 - negs r2, r2 - b _080549E6 - .pool -_080549BC: - ldr r2, =gUnknown_020242AC - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - movs r2, 0x81 - negs r2, r2 - b _080549E6 - .pool -_080549D8: - ldr r2, =gUnknown_020242AC - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - ldr r2, =0xfffbffff -_080549E6: - ands r0, r2 - str r0, [r1] -_080549EA: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atkC6_unhidepostattack - - thumb_func_start atkC7_setminimize -atkC7_setminimize: @ 8054A08 - push {lr} - ldr r0, =gUnknown_02024280 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 18 - ands r0, r1 - cmp r0, 0 - beq _08054A2C - ldr r2, =gUnknown_020242AC - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - movs r2, 0x80 - lsls r2, 1 - orrs r0, r2 - str r0, [r1] -_08054A2C: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atkC7_setminimize - - thumb_func_start sub_8054A48 -sub_8054A48: @ 8054A48 - push {lr} - ldr r3, =gBattleWeather - ldrh r1, [r3] - movs r2, 0x80 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _08054A78 - ldr r2, =gBattleMoveFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_02024332 - movs r0, 0x2 - strb r0, [r1, 0x5] - b _08054A86 - .pool -_08054A78: - strh r2, [r3] - ldr r0, =gUnknown_02024332 - movs r1, 0x5 - strb r1, [r0, 0x5] - ldr r0, =gUnknown_020243D0 - adds r0, 0x28 - strb r1, [r0] -_08054A86: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_8054A48 - - thumb_func_start atkC9_jumpifattackandspecialattackcannotfall -atkC9_jumpifattackandspecialattackcannotfall: @ 8054AA0 - push {r4,lr} - ldr r2, =gBattleMons - ldr r0, =gEnemyMonIndex - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r1, r0, r2 - movs r0, 0x19 - ldrsb r0, [r1, r0] - adds r3, r2, 0 - cmp r0, 0 - bne _08054AF4 - movs r0, 0x1C - ldrsb r0, [r1, r0] - cmp r0, 0 - bne _08054AF4 - ldr r0, =gUnknown_02024332 - ldrb r0, [r0, 0x6] - cmp r0, 0x1 - beq _08054AF4 - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08054B20 - .pool -_08054AF4: - ldr r4, =gUnknown_02024064 - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - strb r0, [r4] - ldr r2, =gBattleMoveDamage - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - adds r0, r3 - ldrh r0, [r0, 0x28] - str r0, [r2] - ldr r1, =0x00007fff - movs r0, 0 - bl dp01_build_cmdbuf_x18_0_aa_health_bar_update - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08054B20: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkC9_jumpifattackandspecialattackcannotfall - - thumb_func_start atkCA_setforcedtarget -atkCA_setforcedtarget: @ 8054B3C - push {r4,r5,lr} - ldr r4, =gUnknown_0202420B - ldrb r0, [r4] - bl battle_side_get_owner - ldr r5, =gUnknown_02024294 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - movs r0, 0x1 - strb r0, [r1, 0x8] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r0, [r4] - strb r0, [r1, 0x9] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atkCA_setforcedtarget - - thumb_func_start atkCB_setcharge -atkCB_setcharge: @ 8054B88 - push {r4,lr} - ldr r0, =gUnknown_020242AC - ldr r3, =gUnknown_0202420B - ldrb r1, [r3] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - movs r2, 0x80 - lsls r2, 2 - orrs r0, r2 - str r0, [r1] - ldr r4, =gUnknown_020242BC - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r2, [r0, 0x12] - movs r1, 0x10 - negs r1, r1 - ands r1, r2 - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0, 0x12] - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r2, [r0, 0x12] - movs r1, 0xF - ands r1, r2 - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x12] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkCB_setcharge - - thumb_func_start atkCC_callterrainattack -atkCC_callterrainattack: @ 8054BEC - push {r4,lr} - ldr r2, =gUnknown_02024280 - ldr r0, [r2] - ldr r1, =0xfffffbff - ands r0, r1 - str r0, [r2] - ldr r4, =gUnknown_020241EA - ldr r1, =gUnknown_0831C414 - ldr r0, =gUnknown_02022FF0 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r4] - ldrh r0, [r4] - movs r1, 0 - bl sub_80458E0 - ldr r1, =gEnemyMonIndex - strb r0, [r1] - ldr r3, =gUnknown_082D86A8 - ldr r2, =gBattleMoves - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - bl b_movescr_stack_push - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkCC_callterrainattack - - thumb_func_start atkCD_cureifburnedparalysedorpoisoned -atkCD_cureifburnedparalysedorpoisoned: @ 8054C60 - push {r4-r6,lr} - sub sp, 0x4 - ldr r1, =gBattleMons - ldr r3, =gUnknown_0202420B - ldrb r0, [r3] - movs r6, 0x58 - muls r0, r6 - adds r5, r1, 0 - adds r5, 0x4C - adds r2, r0, r5 - ldr r0, [r2] - movs r1, 0xD8 - ands r0, r1 - cmp r0, 0 - beq _08054CBC - movs r0, 0 - str r0, [r2] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - ldr r4, =gUnknown_02024064 - ldrb r0, [r3] - strb r0, [r4] - ldrb r0, [r4] - muls r0, r6 - adds r0, r5 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _08054CD6 - .pool -_08054CBC: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08054CD6: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atkCD_cureifburnedparalysedorpoisoned - - thumb_func_start atkCE_settorment -atkCE_settorment: @ 8054CE4 - push {lr} - ldr r1, =gBattleMons - ldr r0, =gEnemyMonIndex - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r1, [r0] - movs r2, 0x80 - lsls r2, 24 - cmp r1, 0 - bge _08054D28 - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08054D34 - .pool -_08054D28: - orrs r1, r2 - str r1, [r0] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08054D34: - pop {r0} - bx r0 - .pool - thumb_func_end atkCE_settorment - - thumb_func_start atkCF_jumpifnodamage -atkCF_jumpifnodamage: @ 8054D3C - push {lr} - ldr r2, =gUnknown_0202433C - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - lsls r1, r0, 4 - adds r0, r2, 0x4 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _08054D5C - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - beq _08054D74 -_08054D5C: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08054D8E - .pool -_08054D74: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08054D8E: - pop {r0} - bx r0 - .pool - thumb_func_end atkCF_jumpifnodamage - - thumb_func_start atkD0_settaunt -atkD0_settaunt: @ 8054D98 - push {r4,lr} - ldr r4, =gUnknown_020242BC - ldr r3, =gEnemyMonIndex - ldrb r0, [r3] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r2, r1, r4 - ldrb r1, [r2, 0x13] - lsls r0, r1, 28 - cmp r0, 0 - bne _08054DE8 - movs r0, 0x10 - negs r0, r0 - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2, 0x13] - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r2, [r0, 0x13] - movs r1, 0xF - ands r1, r2 - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x13] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08054E02 - .pool -_08054DE8: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08054E02: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkD0_settaunt - - thumb_func_start atkD1_sethelpinghand -atkD1_sethelpinghand: @ 8054E0C - push {r4,lr} - ldr r4, =gUnknown_0202420B - ldrb r0, [r4] - bl battle_get_per_side_status - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r3, =gEnemyMonIndex - strb r0, [r3] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08054E90 - ldr r0, =gUnknown_02024210 - ldrb r1, [r0] - ldr r2, =gBitTable - ldrb r3, [r3] - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08054E90 - ldr r1, =gUnknown_0202433C - ldrb r0, [r4] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 28 - cmp r0, 0 - blt _08054E90 - lsls r0, r3, 4 - adds r2, r0, r1 - ldrb r1, [r2] - lsls r0, r1, 28 - cmp r0, 0 - blt _08054E90 - movs r0, 0x8 - orrs r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08054EAA - .pool -_08054E90: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08054EAA: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkD1_sethelpinghand - - thumb_func_start sub_8054EB4 -sub_8054EB4: @ 8054EB4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r4, =gBattleTypeFlags - ldr r0, [r4] - movs r1, 0x80 - lsls r1, 19 - ands r0, r1 - cmp r0, 0 - bne _08054F9A - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08054EE8 - ldr r0, [r4] - ldr r1, =0x0a3f0902 - ands r0, r1 - cmp r0, 0 - beq _08054F9A -_08054EE8: - ldr r6, =gUnknown_0202420B - ldrb r0, [r6] - bl battle_side_get_owner - lsls r0, 24 - lsrs r4, r0, 24 - ldr r7, =gEnemyMonIndex - ldrb r0, [r7] - bl battle_side_get_owner - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ldr r1, =0x0a3f0902 - ands r0, r1 - cmp r0, 0 - bne _08054F46 - ldr r0, =gUnknown_020243D0 - adds r2, r0, 0 - adds r2, 0x29 - adds r0, r4, r2 - ldrb r1, [r0] - ldr r4, =gBitTable - ldr r3, =gUnknown_0202406E - ldrb r0, [r6] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08054F9A - adds r0, r5, r2 - ldrb r1, [r0] - ldrb r0, [r7] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08054F9A -_08054F46: - ldr r0, =gBattleMons - mov r8, r0 - ldr r1, =gUnknown_0202420B - ldrb r4, [r1] - movs r5, 0x58 - adds r0, r4, 0 - muls r0, r5 - add r0, r8 - mov r9, r0 - ldrh r3, [r0, 0x2E] - adds r1, r3, 0 - cmp r1, 0 - bne _08054F6E - ldr r0, =gEnemyMonIndex - ldrb r0, [r0] - muls r0, r5 - add r0, r8 - ldrh r0, [r0, 0x2E] - cmp r0, 0 - beq _08054F9A -_08054F6E: - cmp r1, 0xAF - beq _08054F9A - ldr r7, =gEnemyMonIndex - ldrb r0, [r7] - muls r0, r5 - mov r2, r8 - adds r1, r0, r2 - ldrh r2, [r1, 0x2E] - cmp r2, 0xAF - beq _08054F9A - adds r0, r3, 0 - subs r0, 0x79 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xB - bls _08054F9A - adds r0, r2, 0 - subs r0, 0x79 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xB - bhi _08054FDC -_08054F9A: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08055132 - .pool -_08054FDC: - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x3C - bne _08055010 - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DB63F - str r0, [r1] - ldr r1, =gUnknown_0202420A - ldrb r0, [r7] - muls r0, r5 - add r0, r8 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - ldrb r1, [r1] - bl b_history__record_ability_usage_of_player - b _08055132 - .pool -_08055010: - ldr r3, =gUnknown_0202449C - mov r10, r3 - lsls r0, r4, 1 - adds r0, 0xD0 - ldr r1, [r3] - adds r6, r1, r0 - mov r0, r9 - ldrh r0, [r0, 0x2E] - mov r9, r0 - strh r2, [r6] - ldr r1, =gUnknown_0202420B - ldrb r0, [r1] - muls r0, r5 - add r0, r8 - movs r1, 0 - strh r1, [r0, 0x2E] - ldrb r0, [r7] - muls r0, r5 - add r0, r8 - mov r2, r9 - strh r2, [r0, 0x2E] - ldr r4, =gUnknown_02024064 - ldr r3, =gUnknown_0202420B - ldrb r0, [r3] - strb r0, [r4] - str r6, [sp] - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldr r1, =gUnknown_0202420B - ldrb r0, [r1] - bl dp01_battle_side_mark_buffer_for_execution - ldrb r0, [r7] - strb r0, [r4] - ldrb r0, [r7] - muls r0, r5 - mov r1, r8 - adds r1, 0x2E - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r7] - bl dp01_battle_side_mark_buffer_for_execution - ldrb r0, [r7] - mov r2, r10 - ldr r1, [r2] - lsls r0, 1 - adds r0, r1 - adds r0, 0xC8 - movs r3, 0 - strb r3, [r0] - ldrb r0, [r7] - ldr r1, [r2] - lsls r0, 1 - adds r0, r1 - adds r0, 0xC9 - strb r3, [r0] - ldr r1, =gUnknown_0202420B - ldrb r0, [r1] - ldr r1, [r2] - lsls r0, 1 - adds r0, r1 - adds r0, 0xC8 - strb r3, [r0] - ldr r2, =gUnknown_0202420B - ldrb r0, [r2] - mov r3, r10 - ldr r1, [r3] - lsls r0, 1 - adds r0, r1 - adds r0, 0xC9 - movs r1, 0 - strb r1, [r0] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - ldr r1, =gUnknown_02022F58 - movs r3, 0xFD - strb r3, [r1] - movs r2, 0xA - strb r2, [r1, 0x1] - ldrh r0, [r6] - strb r0, [r1, 0x2] - ldrh r0, [r6] - lsrs r0, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, =gUnknown_02022F68 - strb r3, [r1] - strb r2, [r1, 0x1] - mov r2, r9 - strb r2, [r1, 0x2] - mov r3, r9 - lsrs r0, r3, 8 - strb r0, [r1, 0x3] - movs r0, 0x1 - negs r0, r0 - strb r0, [r1, 0x4] - cmp r3, 0 - beq _08055118 - ldrh r0, [r6] - cmp r0, 0 - beq _0805512C - ldr r1, =gUnknown_02024332 - movs r0, 0x2 - b _08055130 - .pool -_08055118: - ldrh r0, [r6] - cmp r0, 0 - beq _0805512C - ldr r0, =gUnknown_02024332 - movs r1, 0 - strb r1, [r0, 0x5] - b _08055132 - .pool -_0805512C: - ldr r1, =gUnknown_02024332 - movs r0, 0x1 -_08055130: - strb r0, [r1, 0x5] -_08055132: - 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_8054EB4 - - thumb_func_start sub_8055148 -sub_8055148: @ 8055148 - push {r4,lr} - ldr r3, =gBattleMons - ldr r4, =gEnemyMonIndex - ldrb r0, [r4] - movs r2, 0x58 - muls r0, r2 - adds r0, r3 - adds r0, 0x20 - ldrb r1, [r0] - adds r0, r1, 0 - cmp r0, 0 - beq _0805519C - cmp r0, 0x19 - beq _0805519C - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - muls r0, r2 - adds r0, r3 - adds r0, 0x20 - strb r1, [r0] - ldr r1, =gUnknown_0202420A - ldrb r0, [r4] - muls r0, r2 - adds r0, r3 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r1] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _080551B6 - .pool -_0805519C: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_080551B6: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8055148 - - thumb_func_start atkD4_802C408 -atkD4_802C408: @ 80551C0 - push {r4-r7,lr} - ldr r7, =gUnknown_02024214 - ldr r2, [r7] - ldrb r3, [r2, 0x1] - cmp r3, 0 - beq _080551D8 - cmp r3, 0x1 - beq _08055210 - b _0805528C - .pool -_080551D8: - ldr r1, =gUnknown_020243D0 - ldr r4, =gUnknown_0202420B - adds r0, r1, 0 - adds r0, 0x20 - ldrb r5, [r4] - adds r3, r0, r5 - ldrb r0, [r3] - cmp r0, 0 - bne _0805525C - movs r0, 0x2 - strb r0, [r3] - ldrb r0, [r4] - adds r1, 0x24 - adds r1, r0, r1 - ldr r2, =gUnknown_0202406E - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1] - ldr r0, [r7] - adds r0, 0x6 - b _0805528A - .pool -_08055210: - ldr r1, =gUnknown_02022F58 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x4 - strb r0, [r1, 0x1] - ldr r4, =gEnemyMonIndex - ldrb r0, [r4] - strb r0, [r1, 0x2] - ldr r0, =gUnknown_020243D0 - adds r0, 0x24 - ldrb r5, [r4] - adds r0, r5 - ldrb r0, [r0] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, =gBattleMoveDamage - ldr r6, =gBattleMons - ldrb r0, [r4] - movs r5, 0x58 - muls r0, r5 - adds r0, r6 - ldrh r0, [r0, 0x2C] - lsrs r0, 1 - str r0, [r1] - cmp r0, 0 - bne _08055248 - str r3, [r1] -_08055248: - ldr r0, [r1] - negs r0, r0 - str r0, [r1] - ldrb r0, [r4] - muls r0, r5 - adds r0, r6 - ldrh r1, [r0, 0x28] - ldrh r0, [r0, 0x2C] - cmp r1, r0 - bne _08055288 -_0805525C: - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r7] - b _0805528C - .pool -_08055288: - adds r0, r2, 0x6 -_0805528A: - str r0, [r7] -_0805528C: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end atkD4_802C408 - - thumb_func_start sub_8055294 -sub_8055294: @ 8055294 - push {lr} - ldr r1, =gUnknown_020242AC - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - lsls r0, 2 - adds r2, r0, r1 - ldr r1, [r2] - movs r3, 0x80 - lsls r3, 3 - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - beq _080552D8 - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _080552E4 - .pool -_080552D8: - orrs r1, r3 - str r1, [r2] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_080552E4: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8055294 - - thumb_func_start atkD6_doubledamagedealtifdamaged -atkD6_doubledamagedealtifdamaged: @ 80552EC - push {lr} - ldr r3, =gUnknown_0202433C - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - lsls r2, r0, 4 - adds r0, r3, 0x4 - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - beq _0805530C - adds r0, r2, r3 - ldr r1, =gEnemyMonIndex - ldrb r0, [r0, 0xC] - ldrb r1, [r1] - cmp r0, r1 - beq _08055324 -_0805530C: - adds r0, r3, 0 - adds r0, 0x8 - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - beq _0805532A - adds r0, r2, r3 - ldr r1, =gEnemyMonIndex - ldrb r0, [r0, 0xD] - ldrb r1, [r1] - cmp r0, r1 - bne _0805532A -_08055324: - ldr r1, =gUnknown_02024474 - movs r0, 0x2 - strb r0, [r1, 0xE] -_0805532A: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end atkD6_doubledamagedealtifdamaged - - thumb_func_start sub_805534C -sub_805534C: @ 805534C - push {r4,lr} - ldr r1, =gUnknown_020242AC - ldr r0, =gEnemyMonIndex - ldrb r3, [r0] - lsls r0, r3, 2 - adds r4, r0, r1 - ldr r2, [r4] - movs r0, 0xC0 - lsls r0, 5 - ands r0, r2 - cmp r0, 0 - bne _08055374 - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r3 - adds r1, 0x4C - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080553A0 -_08055374: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _080553B0 - .pool -_080553A0: - movs r0, 0x80 - lsls r0, 5 - orrs r2, r0 - str r2, [r4] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_080553B0: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805534C - - thumb_func_start atkD8_setdamagetohealthdifference -atkD8_setdamagetohealthdifference: @ 80553BC - push {lr} - ldr r2, =gBattleMons - ldr r0, =gEnemyMonIndex - ldrb r0, [r0] - movs r1, 0x58 - muls r0, r1 - adds r3, r0, r2 - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - muls r0, r1 - adds r1, r0, r2 - ldrh r0, [r3, 0x28] - ldrh r2, [r1, 0x28] - cmp r0, r2 - bhi _08055408 - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0805541A - .pool -_08055408: - ldr r2, =gBattleMoveDamage - ldrh r0, [r3, 0x28] - ldrh r1, [r1, 0x28] - subs r0, r1 - str r0, [r2] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0805541A: - pop {r0} - bx r0 - .pool - thumb_func_end atkD8_setdamagetohealthdifference - - thumb_func_start atkD9_scaledamagebyhealthratio -atkD9_scaledamagebyhealthratio: @ 8055428 - push {r4,lr} - ldr r4, =gUnknown_02024400 - ldrh r0, [r4] - cmp r0, 0 - bne _08055464 - ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r3, [r0, 0x1] - ldr r2, =gBattleMons - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - movs r0, 0x58 - muls r1, r0 - adds r1, r2 - ldrh r0, [r1, 0x28] - muls r0, r3 - ldrh r1, [r1, 0x2C] - bl __divsi3 - strh r0, [r4] - lsls r0, 16 - cmp r0, 0 - bne _08055464 - movs r0, 0x1 - strh r0, [r4] -_08055464: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkD9_scaledamagebyhealthratio - - thumb_func_start atkDA_abilityswap -atkDA_abilityswap: @ 805548C - push {r4-r6,lr} - ldr r5, =gBattleMons - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - movs r4, 0x58 - muls r0, r4 - adds r0, r5 - adds r2, r0, 0 - adds r2, 0x20 - ldrb r1, [r2] - cmp r1, 0 - bne _080554B4 - ldr r0, =gEnemyMonIndex - ldrb r0, [r0] - muls r0, r4 - adds r0, r5 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - beq _080554D4 -_080554B4: - cmp r1, 0x19 - beq _080554D4 - ldr r6, =gEnemyMonIndex - ldrb r0, [r6] - muls r0, r4 - adds r0, r5 - adds r0, 0x20 - ldrb r3, [r0] - cmp r3, 0x19 - beq _080554D4 - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _08055504 -_080554D4: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0805551A - .pool -_08055504: - ldrb r1, [r2] - strb r3, [r2] - ldrb r0, [r6] - muls r0, r4 - adds r0, r5 - adds r0, 0x20 - strb r1, [r0] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0805551A: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atkDA_abilityswap - - thumb_func_start atkDB_imprisoneffect -atkDB_imprisoneffect: @ 8055524 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r1, =gUnknown_020242AC - ldr r4, =gUnknown_0202420B - ldrb r2, [r4] - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 6 - ands r0, r1 - cmp r0, 0 - beq _08055574 - b _080555F6 - .pool -_0805554C: - ldr r0, =gUnknown_020242AC - mov r2, r9 - ldrb r1, [r2] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - movs r2, 0x80 - lsls r2, 6 - orrs r0, r2 - str r0, [r1] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _080555EE - .pool -_08055574: - adds r0, r2, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrb r0, [r4] - bl sub_803F548 - movs r6, 0 - b _080555E6 -_0805558A: - adds r0, r6, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r8, r0 - beq _080555E0 - movs r4, 0 - ldr r7, =gUnknown_0202420B - mov r9, r7 - ldr r0, =gBattleMons - mov r12, r0 - mov r1, r9 - ldrb r0, [r1] - mov r2, r12 - adds r2, 0xC - movs r1, 0x58 - muls r0, r1 - adds r3, r0, r2 - adds r5, r6, 0 - muls r5, r1 -_080555B4: - movs r2, 0 - ldrh r1, [r3] - mov r0, r12 - adds r0, 0xC - adds r0, r5, r0 -_080555BE: - ldrh r7, [r0] - cmp r1, r7 - bne _080555C8 - cmp r1, 0 - bne _080555D0 -_080555C8: - adds r0, 0x2 - adds r2, 0x1 - cmp r2, 0x3 - ble _080555BE -_080555D0: - cmp r2, 0x4 - bne _080555DC - adds r3, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - ble _080555B4 -_080555DC: - cmp r4, 0x4 - bne _0805554C -_080555E0: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_080555E6: - ldr r0, =gUnknown_0202406C - ldrb r0, [r0] - cmp r6, r0 - bcc _0805558A -_080555EE: - ldr r0, =gUnknown_0202406C - ldrb r0, [r0] - cmp r6, r0 - bne _08055610 -_080555F6: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08055610: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkDB_imprisoneffect - - thumb_func_start atkDC_setgrudge -atkDC_setgrudge: @ 805562C - push {lr} - ldr r1, =gUnknown_020242AC - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - lsls r0, 2 - adds r2, r0, r1 - ldr r1, [r2] - movs r3, 0x80 - lsls r3, 7 - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - beq _08055670 - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0805567C - .pool -_08055670: - orrs r1, r3 - str r1, [r2] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0805567C: - pop {r0} - bx r0 - .pool - thumb_func_end atkDC_setgrudge - - thumb_func_start atkDD_weightdamagecalculation -atkDD_weightdamagecalculation: @ 8055684 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r5, 0 - ldr r2, =gUnknown_0831C428 - ldrh r0, [r2] - ldr r1, =0x0000ffff - cmp r0, r1 - beq _080556FC - adds r6, r2, 0 - ldr r0, =gBattleMons - mov r8, r0 - adds r7, r1, 0 - adds r4, r6, 0 -_080556A0: - ldr r0, =gEnemyMonIndex - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - add r0, r8 - ldrh r0, [r0] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl sub_80C0630 - ldrh r1, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r1, r0 - bhi _080556CE - adds r4, 0x4 - adds r5, 0x2 - ldrh r0, [r4] - cmp r0, r7 - bne _080556A0 -_080556CE: - lsls r0, r5, 1 - adds r0, r6 - ldrh r1, [r0] - ldr r0, =0x0000ffff - cmp r1, r0 - beq _080556FC - ldr r0, =gUnknown_02024400 - adds r1, r5, 0x1 - lsls r1, 1 - adds r1, r6 - ldrh r1, [r1] - strh r1, [r0] - b _08055702 - .pool -_080556FC: - ldr r1, =gUnknown_02024400 - movs r0, 0x78 - strh r0, [r1] -_08055702: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkDD_weightdamagecalculation - - thumb_func_start atkDE_asistattackselect -atkDE_asistattackselect: @ 805571C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - movs r0, 0 - mov r10, r0 - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - adds r0, 0x18 - str r0, [sp, 0x4] - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - bl battle_get_per_side_status - movs r1, 0x1 - ands r1, r0 - ldr r0, =gPlayerParty - str r0, [sp] - cmp r1, 0 - beq _0805574C - ldr r1, =gEnemyParty - str r1, [sp] -_0805574C: - movs r2, 0 -_0805574E: - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - adds r1, r2, 0x1 - str r1, [sp, 0x8] - ldrh r0, [r0] - cmp r2, r0 - beq _080557F4 - movs r0, 0x64 - adds r6, r2, 0 - muls r6, r0 - ldr r0, [sp] - adds r4, r0, r6 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _080557F4 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _080557F4 - movs r5, 0 - ldr r1, =0x0000ffff - mov r8, r1 - mov r9, r6 - mov r1, r10 - lsls r0, r1, 1 - ldr r1, [sp, 0x4] - adds r6, r0, r1 -_08055798: - movs r7, 0 - adds r1, r5, 0 - adds r1, 0xD - ldr r0, [sp] - add r0, r9 - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl sub_8052F84 - lsls r0, 24 - adds r1, r5, 0x1 - cmp r0, 0 - bne _080557EE - ldr r0, =gUnknown_0831C3E0 - ldrh r2, [r0] - adds r3, r0, 0 - cmp r2, r8 - beq _080557E2 - cmp r4, r2 - beq _080557D8 - ldr r5, =0x0000ffff - adds r2, r3, 0 -_080557CA: - adds r2, 0x2 - adds r7, 0x1 - ldrh r0, [r2] - cmp r0, r5 - beq _080557E2 - cmp r4, r0 - bne _080557CA -_080557D8: - lsls r0, r7, 1 - adds r0, r3 - ldrh r0, [r0] - cmp r0, r8 - bne _080557EE -_080557E2: - cmp r4, 0 - beq _080557EE - strh r4, [r6] - adds r6, 0x2 - movs r0, 0x1 - add r10, r0 -_080557EE: - adds r5, r1, 0 - cmp r5, 0x3 - ble _08055798 -_080557F4: - ldr r2, [sp, 0x8] - cmp r2, 0x5 - ble _0805574E - mov r1, r10 - cmp r1, 0 - beq _0805586C - ldr r2, =gUnknown_02024280 - ldr r0, [r2] - ldr r1, =0xfffffbff - ands r0, r1 - str r0, [r2] - ldr r4, =gUnknown_020241EE - bl Random - movs r1, 0xFF - ands r1, r0 - mov r0, r10 - muls r0, r1 - asrs r0, 8 - lsls r0, 1 - ldr r1, [sp, 0x4] - adds r0, r1 - ldrh r0, [r0] - strh r0, [r4] - ldrh r0, [r4] - movs r1, 0 - bl sub_80458E0 - ldr r1, =gEnemyMonIndex - strb r0, [r1] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08055886 - .pool -_0805586C: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08055886: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkDE_asistattackselect - - thumb_func_start atkDF_setmagiccoat -atkDF_setmagiccoat: @ 805589C - push {lr} - ldr r1, =gEnemyMonIndex - ldr r3, =gUnknown_0202420B - ldrb r0, [r3] - strb r0, [r1] - ldr r2, =gUnknown_0202437C - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0] - ldr r0, =gUnknown_02024082 - ldrb r1, [r0] - ldr r0, =gUnknown_0202406C - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - bne _080558FC - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08055914 - .pool -_080558FC: - ldr r0, =gUnknown_0202433C - ldrb r1, [r3] - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x10 - orrs r0, r2 - strb r0, [r1] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08055914: - pop {r0} - bx r0 - .pool - thumb_func_end atkDF_setmagiccoat - - thumb_func_start atkE0_setstealstatchange -atkE0_setstealstatchange: @ 8055920 - push {lr} - ldr r2, =gUnknown_0202437C - ldr r3, =gUnknown_0202420B - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0] - ldr r0, =gUnknown_02024082 - ldrb r1, [r0] - ldr r0, =gUnknown_0202406C - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - bne _08055978 - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0805598E - .pool -_08055978: - ldr r0, =gUnknown_0202433C - ldrb r1, [r3] - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0805598E: - pop {r0} - bx r0 - .pool - thumb_func_end atkE0_setstealstatchange - - thumb_func_start atkE1_802CBE4 -atkE1_802CBE4: @ 805599C - push {r4-r6,lr} - ldr r4, =gUnknown_02024474 - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - adds r0, 0xD8 - ldrb r0, [r0] - strb r0, [r4, 0x17] - ldrb r0, [r4, 0x17] - bl battle_side_get_owner - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, =gUnknown_02022F58 - movs r0, 0xFD - strb r0, [r2] - movs r0, 0x9 - strb r0, [r2, 0x1] - ldr r3, =gBattleMons - ldrb r1, [r4, 0x17] - movs r0, 0x58 - muls r0, r1 - adds r0, r3 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r2, 0x2] - movs r0, 0xFF - strb r0, [r2, 0x3] - ldr r2, =gEnemyMonIndex - ldr r1, =gUnknown_0202406C - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - bcs _08055A22 - adds r4, r2, 0 - ldr r6, =gBitTable -_080559E2: - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, r5 - beq _08055A04 - ldr r0, =gUnknown_02024210 - ldrb r1, [r0] - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - ands r1, r0 - ldr r2, =gUnknown_0202406C - cmp r1, 0 - beq _08055A18 -_08055A04: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, =gUnknown_0202406C - lsls r0, 24 - lsrs r0, 24 - adds r2, r1, 0 - ldrb r1, [r2] - cmp r0, r1 - bcc _080559E2 -_08055A18: - ldr r0, =gEnemyMonIndex - ldrb r0, [r0] - ldrb r2, [r2] - cmp r0, r2 - bcc _08055A64 -_08055A22: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08055A6C - .pool -_08055A64: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08055A6C: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atkE1_802CBE4 - - thumb_func_start atkE2_cmde2 -atkE2_cmde2: @ 8055A78 - push {r4-r6,lr} - sub sp, 0x4 - ldr r5, =gUnknown_02024214 - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r4, =gUnknown_02024064 - strb r0, [r4] - ldr r3, =gBattleMons - ldrb r0, [r4] - movs r6, 0x58 - adds r1, r0, 0 - muls r1, r6 - adds r0, r1, r3 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1E - bne _08055AD2 - adds r3, 0x4C - adds r1, r3 - movs r0, 0 - str r0, [r1] - ldr r2, =gBitTable - ldrb r1, [r4] - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - adds r0, r1, r0 - adds r0, 0x58 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldrb r2, [r0] - adds r0, r1, 0 - muls r0, r6 - adds r0, r3 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_08055AD2: - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atkE2_cmde2 - - thumb_func_start atkE3_jumpiffainted -atkE3_jumpiffainted: @ 8055AF4 - push {r4,lr} - ldr r4, =gUnknown_02024214 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl get_battle_side_of_something - ldr r1, =gUnknown_02024064 - strb r0, [r1] - ldr r2, =gBattleMons - ldrb r1, [r1] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _08055B3C - ldr r2, [r4] - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08055B42 - .pool -_08055B3C: - ldr r0, [r4] - adds r0, 0x6 - str r0, [r4] -_08055B42: - pop {r4} - pop {r0} - bx r0 - thumb_func_end atkE3_jumpiffainted - - thumb_func_start sub_8055B48 -sub_8055B48: @ 8055B48 - push {lr} - ldr r0, =gUnknown_02022FF0 - ldrb r0, [r0] - cmp r0, 0x7 - bhi _08055BE4 - lsls r0, 2 - ldr r1, =_08055B64 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08055B64: - .4byte _08055B84 - .4byte _08055B90 - .4byte _08055B9C - .4byte _08055BA8 - .4byte _08055BB4 - .4byte _08055BC0 - .4byte _08055BCC - .4byte _08055BD8 -_08055B84: - ldr r1, =gUnknown_02024332 - movs r0, 0x2 - b _08055BE8 - .pool -_08055B90: - ldr r1, =gUnknown_02024332 - movs r0, 0x1 - b _08055BE8 - .pool -_08055B9C: - ldr r1, =gUnknown_02024332 - movs r0, 0x1B - b _08055BE8 - .pool -_08055BA8: - ldr r1, =gUnknown_02024332 - movs r0, 0x17 - b _08055BE8 - .pool -_08055BB4: - ldr r1, =gUnknown_02024332 - movs r0, 0x16 - b _08055BE8 - .pool -_08055BC0: - ldr r1, =gUnknown_02024332 - movs r0, 0x18 - b _08055BE8 - .pool -_08055BCC: - ldr r1, =gUnknown_02024332 - movs r0, 0x7 - b _08055BE8 - .pool -_08055BD8: - ldr r1, =gUnknown_02024332 - movs r0, 0x8 - b _08055BE8 - .pool -_08055BE4: - ldr r1, =gUnknown_02024332 - movs r0, 0x5 -_08055BE8: - strb r0, [r1, 0x3] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_8055B48 - - thumb_func_start atkE5_pickupitemcalculation -atkE5_pickupitemcalculation: @ 8055C00 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - bl InBattlePike - lsls r0, 24 - cmp r0, 0 - beq _08055C18 - b _08055DD8 -_08055C18: - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - beq _08055CC4 - movs r6, 0 - mov r7, sp - ldr r0, =gBaseStats - mov r8, r0 -_08055C2A: - movs r0, 0x64 - adds r4, r6, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - strh r0, [r7] - adds r0, r4, 0 - movs r1, 0x2E - bl GetMonData - cmp r0, 0 - beq _08055C6C - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - add r0, r8 - ldrb r0, [r0, 0x17] - b _08055C76 - .pool -_08055C6C: - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - add r0, r8 - ldrb r0, [r0, 0x16] -_08055C76: - cmp r0, 0x35 - bne _08055CB6 - cmp r5, 0 - beq _08055CB6 - movs r0, 0xCE - lsls r0, 1 - cmp r5, r0 - beq _08055CB6 - ldrh r0, [r7] - cmp r0, 0 - bne _08055CB6 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _08055CB6 - bl CalculateBattlePyramidPickupItemId - strh r0, [r7] - movs r0, 0x64 - muls r0, r6 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xC - mov r2, sp - bl pokemon_setattr -_08055CB6: - adds r6, 0x1 - cmp r6, 0x5 - ble _08055C2A - b _08055DD8 - .pool -_08055CC4: - movs r6, 0 - movs r1, 0x64 - mov r8, r1 - ldr r7, =gPlayerParty - mov r10, sp -_08055CCE: - mov r4, r8 - muls r4, r6 - adds r4, r7 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - mov r1, r10 - strh r0, [r1] - adds r0, r4, 0 - movs r1, 0x2E - bl GetMonData - cmp r0, 0 - beq _08055D30 - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - ldr r1, =gBaseStats - adds r0, r1 - ldrb r0, [r0, 0x17] - b _08055D3C - .pool -_08055D10: - mov r0, r8 - muls r0, r6 - adds r0, r7 - adds r2, r1, 0 - adds r2, 0x63 - subs r2, r4 - lsls r2, 1 - ldr r1, =gRarePickupItems - adds r2, r1 - movs r1, 0xC - bl pokemon_setattr - b _08055DD0 - .pool -_08055D30: - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - ldr r1, =gBaseStats - adds r0, r1 - ldrb r0, [r0, 0x16] -_08055D3C: - adds r1, r6, 0x1 - mov r9, r1 - cmp r0, 0x35 - bne _08055DD0 - cmp r5, 0 - beq _08055DD0 - movs r0, 0xCE - lsls r0, 1 - cmp r5, r0 - beq _08055DD0 - mov r1, r10 - ldrh r0, [r1] - cmp r0, 0 - bne _08055DD0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _08055DD0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r4, r0, 16 - mov r0, r8 - muls r0, r6 - adds r0, r7 - movs r1, 0x38 - bl GetMonData - subs r0, 0x1 - movs r1, 0xA - bl __udivsi3 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x9 - bls _08055D9C - movs r1, 0x9 -_08055D9C: - movs r2, 0 - b _08055DAE - .pool -_08055DA4: - adds r0, r4, 0 - subs r0, 0x62 - cmp r0, 0x1 - bls _08055D10 - adds r2, 0x1 -_08055DAE: - cmp r2, 0x8 - bgt _08055DD0 - ldr r0, =gPickupProbabilities - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, r4 - ble _08055DA4 - mov r0, r8 - muls r0, r6 - adds r0, r7 - adds r2, r1, r2 - lsls r2, 1 - ldr r1, =gPickupItems - adds r2, r1 - movs r1, 0xC - bl pokemon_setattr -_08055DD0: - mov r6, r9 - cmp r6, 0x5 - bgt _08055DD8 - b _08055CCE -_08055DD8: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkE5_pickupitemcalculation - - thumb_func_start atkE6_castform_transform -atkE6_castform_transform: @ 8055DFC - push {r4,lr} - ldr r4, =gUnknown_02024064 - ldr r0, =gUnknown_02024474 - ldrb r0, [r0, 0x17] - strb r0, [r4] - ldr r1, =gBattleMons - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - ldr r3, =gUnknown_0202449C - cmp r0, 0 - beq _08055E2C - ldr r0, [r3] - adds r0, 0x7F - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] -_08055E2C: - ldr r0, [r3] - adds r0, 0x7F - ldrb r2, [r0] - movs r0, 0 - movs r1, 0 - bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkE6_castform_transform - - thumb_func_start atkE7_castform_switch -atkE7_castform_switch: @ 8055E64 - push {r4,lr} - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r0, =gUnknown_02024474 - ldrb r0, [r0, 0x17] - bl castform_switch - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _08055E8E - ldr r0, =gUnknown_082DB4A9 - bl b_push_move_exec - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - adds r0, 0x7F - subs r1, r4, 0x1 - strb r1, [r0] -_08055E8E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkE7_castform_switch - - thumb_func_start atkE8_settypebasedhalvers -atkE8_settypebasedhalvers: @ 8055EA4 - push {r4,lr} - movs r4, 0 - ldr r2, =gBattleMoves - ldr r0, =gUnknown_020241EA - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0xC9 - bne _08055EF4 - ldr r1, =gUnknown_020242AC - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - lsls r0, 2 - adds r2, r0, r1 - ldr r1, [r2] - movs r3, 0x80 - lsls r3, 9 - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - bne _08055F18 - orrs r1, r3 - str r1, [r2] - ldr r0, =gUnknown_02024332 - strb r4, [r0, 0x5] - b _08055F1C - .pool -_08055EF4: - ldr r1, =gUnknown_020242AC - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - lsls r0, 2 - adds r2, r0, r1 - ldr r1, [r2] - movs r3, 0x80 - lsls r3, 10 - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - bne _08055F18 - orrs r1, r3 - str r1, [r2] - ldr r1, =gUnknown_02024332 - movs r0, 0x1 - strb r0, [r1, 0x5] - movs r4, 0x1 -_08055F18: - cmp r4, 0 - beq _08055F38 -_08055F1C: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08055F52 - .pool -_08055F38: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08055F52: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkE8_settypebasedhalvers - - thumb_func_start atkE9_seteffectbyweather -atkE9_seteffectbyweather: @ 8055F5C - push {lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl ability_something - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _08055FFC - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl ability_something - lsls r0, 24 - cmp r0, 0 - bne _08055FFC - ldr r2, =gBattleWeather - ldrb r0, [r2] - cmp r0, 0 - beq _08055F9A - ldr r1, =gUnknown_02024474 - movs r0, 0x2 - strb r0, [r1, 0xE] -_08055F9A: - ldrh r1, [r2] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - beq _08055FB8 - ldr r0, =gUnknown_0202449C - ldr r1, [r0] - movs r0, 0x8B - b _08055FFA - .pool -_08055FB8: - movs r0, 0x18 - ands r0, r1 - cmp r0, 0 - beq _08055FCC - ldr r0, =gUnknown_0202449C - ldr r1, [r0] - movs r0, 0x85 - b _08055FFA - .pool -_08055FCC: - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _08055FE0 - ldr r0, =gUnknown_0202449C - ldr r1, [r0] - movs r0, 0x8A - b _08055FFA - .pool -_08055FE0: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08055FF4 - ldr r0, =gUnknown_0202449C - ldr r1, [r0] - movs r0, 0x8F - b _08055FFA - .pool -_08055FF4: - ldr r0, =gUnknown_0202449C - ldr r1, [r0] - movs r0, 0x80 -_08055FFA: - strb r0, [r1, 0x13] -_08055FFC: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end atkE9_seteffectbyweather - - thumb_func_start atkEA_recycleitem -atkEA_recycleitem: @ 8056014 - push {r4-r7,lr} - sub sp, 0x4 - ldr r7, =gUnknown_02024064 - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - strb r0, [r7] - ldr r1, =gUnknown_0202449C - ldrb r2, [r7] - lsls r0, r2, 1 - adds r0, 0xB8 - ldr r1, [r1] - adds r6, r1, r0 - ldrh r5, [r6] - cmp r5, 0 - beq _08056094 - ldr r4, =gBattleMons - movs r3, 0x58 - adds r0, r2, 0 - muls r0, r3 - adds r0, r4 - ldrh r0, [r0, 0x2E] - cmp r0, 0 - bne _08056094 - ldr r1, =gUnknown_02024208 - strh r5, [r1] - strh r0, [r6] - ldrb r0, [r7] - muls r0, r3 - adds r0, r4 - ldrh r1, [r1] - strh r1, [r0, 0x2E] - ldrb r0, [r7] - muls r0, r3 - adds r1, r4, 0 - adds r1, 0x2E - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r7] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _080560AE - .pool -_08056094: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_080560AE: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkEA_recycleitem - - thumb_func_start atkEB_settypetoterrain -atkEB_settypetoterrain: @ 80560BC - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, =gBattleMons - mov r8, r0 - ldr r7, =gUnknown_0202420B - ldrb r0, [r7] - movs r6, 0x58 - muls r0, r6 - mov r1, r8 - adds r3, r0, r1 - movs r0, 0x21 - adds r0, r3 - mov r12, r0 - ldr r5, =gUnknown_0831C483 - ldr r4, =gUnknown_02022FF0 - ldrb r0, [r4] - adds r0, r5 - ldrb r2, [r0] - mov r1, r12 - ldrb r0, [r1] - adds r1, r2, 0 - cmp r0, r1 - beq _08056144 - adds r0, r3, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, r1 - beq _08056144 - mov r0, r12 - strb r2, [r0] - ldrb r0, [r7] - adds r1, r0, 0 - muls r1, r6 - add r1, r8 - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - adds r1, 0x22 - strb r0, [r1] - ldr r1, =gUnknown_02022F58 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x3 - strb r0, [r1, 0x1] - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0805615E - .pool -_08056144: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_0805615E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkEB_settypetoterrain - - thumb_func_start atkEC_802D2A0 -atkEC_802D2A0: @ 805616C - push {r4-r6,lr} - ldr r5, =gUnknown_0202420B - ldrb r0, [r5] - bl battle_get_per_side_status - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r4, =gUnknown_02024064 - strb r0, [r4] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r6, 0x1 - ands r0, r6 - cmp r0, 0 - beq _0805620C - ldr r0, =gUnknown_02024210 - ldrb r1, [r0] - ldr r2, =gBitTable - ldrb r3, [r4] - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0805620C - ldr r0, =gUnknown_0202421C - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _0805620C - ldr r1, =gUnknown_02024274 - lsls r0, r3, 1 - adds r0, r1 - ldrh r2, [r0] - cmp r2, 0xE4 - bne _0805620C - ldr r0, =gUnknown_0202407A - adds r0, r3, r0 - movs r1, 0xB - strb r1, [r0] - ldr r0, =gUnknown_020241EA - strh r2, [r0] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - ldr r0, =gUnknown_02024474 - strb r6, [r0, 0x18] - ldrb r1, [r5] - adds r0, 0x20 - strb r1, [r0] - ldrb r0, [r4] - strb r0, [r5] - b _08056226 - .pool -_0805620C: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08056226: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end atkEC_802D2A0 - - thumb_func_start atkED_802D364 -atkED_802D364: @ 8056230 - push {r4,lr} - ldr r1, =gUnknown_0202420E - ldr r3, =gUnknown_0202420B - ldrb r0, [r3] - strb r0, [r1] - ldr r2, =gEnemyMonIndex - lsls r0, 24 - lsrs r0, 24 - adds r4, r1, 0 - ldrb r1, [r2] - cmp r0, r1 - bne _08056264 - ldr r1, =gUnknown_02024474 - ldrb r0, [r1, 0x17] - strb r0, [r2] - strb r0, [r3] - b _0805626A - .pool -_08056264: - ldr r1, =gUnknown_02024474 - ldrb r0, [r1, 0x17] - strb r0, [r2] -_0805626A: - ldrb r0, [r4] - strb r0, [r1, 0x17] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkED_802D364 - - thumb_func_start atkEE_removereflectlightscreen -atkEE_removereflectlightscreen: @ 8056284 - push {r4,lr} - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - bl battle_side_get_owner - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02024294 - lsls r3, r0, 1 - adds r0, r3, r0 - lsls r0, 2 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0 - bne _080562AC - ldrb r1, [r4, 0x2] - cmp r1, 0 - beq _080562E4 -_080562AC: - ldr r2, =gUnknown_0202428E - adds r2, r3, r2 - ldrh r1, [r2] - ldr r0, =0x0000fffe - ands r0, r1 - movs r3, 0 - ldr r1, =0x0000fffd - ands r0, r1 - strh r0, [r2] - strb r3, [r4] - strb r3, [r4, 0x2] - ldr r1, =gUnknown_02024474 - movs r0, 0x1 - strb r0, [r1, 0x18] - strb r0, [r1, 0x19] - b _080562EA - .pool -_080562E4: - ldr r0, =gUnknown_02024474 - strb r1, [r0, 0x18] - strb r1, [r0, 0x19] -_080562EA: - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end atkEE_removereflectlightscreen - - thumb_func_start sub_8056300 -sub_8056300: @ 8056300 - push {r4-r6,lr} - movs r4, 0 - ldr r0, =gUnknown_02024068 - ldr r0, [r0] - cmp r0, 0 - beq _0805630E - b _08056696 -_0805630E: - ldr r5, =gUnknown_02024064 - ldr r0, =gUnknown_0202420B - ldrb r0, [r0] - strb r0, [r5] - ldr r6, =gEnemyMonIndex - movs r1, 0x1 - eors r0, r1 - strb r0, [r6] - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0805635C - movs r0, 0 - movs r1, 0x5 - bl dp01_build_cmdbuf_x0D_a - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DBE02 - b _08056694 - .pool -_0805635C: - movs r0, 0x80 - lsls r0, 2 - ands r1, r0 - cmp r1, 0 - beq _08056384 - movs r0, 0 - movs r1, 0x4 - bl dp01_build_cmdbuf_x0D_a - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DBDCA - b _08056694 - .pool -_08056384: - ldr r0, =gUnknown_02024208 - ldrh r0, [r0] - cmp r0, 0x5 - bne _080563B0 - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - adds r0, 0x7C - ldrb r0, [r0] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 8 - subs r0, r1 - movs r1, 0x64 - bl __divsi3 - lsls r0, 24 - lsrs r5, r0, 24 - b _080563C8 - .pool -_080563B0: - ldr r3, =gBaseStats - ldr r2, =gBattleMons - ldrb r1, [r6] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r5, [r0, 0x8] -_080563C8: - ldr r2, =gUnknown_02024208 - ldrh r0, [r2] - cmp r0, 0x5 - bhi _080563D2 - b _080564C8 -_080563D2: - subs r0, 0x6 - cmp r0, 0x6 - bls _080563DA - b _080564D2 -_080563DA: - lsls r0, 2 - ldr r1, =_080563F4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080563F4: - .4byte _08056410 - .4byte _08056440 - .4byte _08056452 - .4byte _08056480 - .4byte _080564B0 - .4byte _08056472 - .4byte _08056472 -_08056410: - ldr r2, =gBattleMons - ldr r0, =gEnemyMonIndex - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r1, r0, 0 - adds r1, 0x21 - ldrb r1, [r1] - cmp r1, 0xB - beq _080564A4 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0xB - beq _080564A4 - cmp r1, 0x6 - beq _080564A4 - cmp r0, 0x6 - beq _080564A4 - b _08056472 - .pool -_08056440: - bl sav1_map_get_light_level - lsls r0, 24 - lsrs r0, 24 - movs r4, 0xA - cmp r0, 0x5 - bne _080564D2 - movs r4, 0x23 - b _080564D2 -_08056452: - ldr r2, =gBattleMons - ldr r0, =gEnemyMonIndex - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x2A - ldrb r1, [r0] - cmp r1, 0x27 - bhi _08056472 - movs r0, 0x28 - subs r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bhi _080564D2 -_08056472: - movs r4, 0xA - b _080564D2 - .pool -_08056480: - ldr r2, =gBattleMons - ldr r0, =gEnemyMonIndex - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl pokedex_flag_operation - lsls r0, 24 - movs r4, 0xA - cmp r0, 0 - beq _080564D2 -_080564A4: - movs r4, 0x1E - b _080564D2 - .pool -_080564B0: - ldr r0, =gUnknown_03005D10 - ldrb r0, [r0, 0x13] - adds r0, 0xA - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x28 - bls _080564D2 - movs r4, 0x28 - b _080564D2 - .pool -_080564C8: - ldr r1, =gUnknown_0831C48D - ldrh r0, [r2] - subs r0, 0x2 - adds r0, r1 - ldrb r4, [r0] -_080564D2: - adds r0, r5, 0 - muls r0, r4 - movs r1, 0xA - bl __divsi3 - ldr r5, =gBattleMons - ldr r1, =gEnemyMonIndex - ldrb r2, [r1] - movs r1, 0x58 - adds r4, r2, 0 - muls r4, r1 - adds r3, r4, r5 - ldrh r2, [r3, 0x2C] - lsls r1, r2, 1 - adds r1, r2 - ldrh r2, [r3, 0x28] - lsls r2, 1 - subs r2, r1, r2 - muls r0, r2 - bl __divsi3 - adds r6, r0, 0 - adds r5, 0x4C - adds r4, r5 - ldr r4, [r4] - movs r0, 0x27 - ands r0, r4 - cmp r0, 0 - beq _0805650E - lsls r6, 1 -_0805650E: - movs r0, 0xD8 - ands r4, r0 - cmp r4, 0 - beq _08056522 - lsls r0, r6, 4 - subs r0, r6 - movs r1, 0xA - bl __udivsi3 - adds r6, r0, 0 -_08056522: - ldr r1, =gUnknown_02024208 - ldrh r0, [r1] - cmp r0, 0x5 - beq _08056564 - cmp r0, 0x1 - bne _08056550 - ldr r0, =gUnknown_03005D10 - ldrb r1, [r0, 0x5] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0, 0x5] - b _08056564 - .pool -_08056550: - ldr r0, =gUnknown_03005D10 - ldrh r1, [r1] - adds r0, r1 - adds r1, r0, 0 - adds r1, 0x34 - ldrb r0, [r1] - cmp r0, 0xFE - bhi _08056564 - adds r0, 0x1 - strb r0, [r1] -_08056564: - cmp r6, 0xFE - bls _080565C8 - movs r0, 0 - movs r1, 0x4 - bl dp01_build_cmdbuf_x0D_a - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DBD84 - str r0, [r1] - ldr r1, =gUnknown_0202406E - ldr r0, =gEnemyMonIndex - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - ldr r2, =gUnknown_02024208 - movs r1, 0x26 - bl pokemon_setattr - bl calc_player_party_count - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - beq _08056656 - b _08056680 - .pool -_080565C8: - movs r0, 0xFF - lsls r0, 16 - adds r1, r6, 0 - bl __udivsi3 - bl Sqrt - lsls r0, 16 - lsrs r0, 16 - bl Sqrt - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, =0x000ffff0 - adds r1, r6, 0 - bl __udivsi3 - adds r6, r0, 0 - movs r4, 0 - b _080565FA - .pool -_080565F4: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_080565FA: - cmp r4, 0x3 - bhi _0805660A - bl Random - lsls r0, 16 - lsrs r0, 16 - cmp r0, r6 - bcc _080565F4 -_0805660A: - ldr r5, =gUnknown_02024208 - ldrh r0, [r5] - cmp r0, 0x1 - bne _08056614 - movs r4, 0x4 -_08056614: - movs r0, 0 - adds r1, r4, 0 - bl dp01_build_cmdbuf_x0D_a - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - cmp r4, 0x4 - bne _0805668C - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DBD84 - str r0, [r1] - ldr r1, =gUnknown_0202406E - ldr r0, =gEnemyMonIndex - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x26 - adds r2, r5, 0 - bl pokemon_setattr - bl calc_player_party_count - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bne _08056680 -_08056656: - ldr r1, =gUnknown_02024332 - movs r0, 0 - strb r0, [r1, 0x5] - b _08056696 - .pool -_08056680: - ldr r1, =gUnknown_02024332 - movs r0, 0x1 - strb r0, [r1, 0x5] - b _08056696 - .pool -_0805668C: - ldr r0, =gUnknown_02024332 - strb r4, [r0, 0x5] - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DBDD4 -_08056694: - str r0, [r1] -_08056696: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8056300 - - thumb_func_start atkF0_catch_pokemon -atkF0_catch_pokemon: @ 80566A8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, =gUnknown_0202406E - mov r9, r0 - ldr r5, =gUnknown_0202420B - ldrb r0, [r5] - movs r6, 0x1 - eors r0, r6 - lsls r0, 1 - add r0, r9 - ldrh r0, [r0] - movs r7, 0x64 - muls r0, r7 - ldr r1, =gEnemyParty - mov r8, r1 - add r0, r8 - bl pokemon_catch - lsls r0, 24 - cmp r0, 0 - beq _08056792 - bl sub_813B21C - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08056734 - ldr r0, =gUnknown_02024332 - strb r1, [r0, 0x5] - ldr r4, =gStringVar1 - ldr r0, =0x00004036 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - bl sav3_get_box_name - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldrb r0, [r5] - eors r0, r6 - lsls r0, 1 - add r0, r9 - ldrh r0, [r0] - muls r0, r7 - add r0, r8 - ldr r2, =gStringVar2 - movs r1, 0x2 - bl GetMonData - b _0805677E - .pool -_08056734: - ldr r4, =gStringVar1 - ldr r0, =0x00004036 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - bl sav3_get_box_name - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldrb r0, [r5] - eors r0, r6 - lsls r0, 1 - add r0, r9 - ldrh r0, [r0] - muls r0, r7 - add r0, r8 - ldr r2, =gStringVar2 - movs r1, 0x2 - bl GetMonData - ldr r4, =gStringVar3 - bl get_unknown_box_id - lsls r0, 24 - lsrs r0, 24 - bl sav3_get_box_name - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldr r1, =gUnknown_02024332 - movs r0, 0x2 - strb r0, [r1, 0x5] -_0805677E: - ldr r0, =0x000008ab - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08056792 - ldr r1, =gUnknown_02024332 - ldrb r0, [r1, 0x5] - adds r0, 0x1 - strb r0, [r1, 0x5] -_08056792: - ldr r0, =gUnknown_0202406E - mov r10, r0 - ldr r1, =gUnknown_0202420B - mov r9, r1 - ldrb r0, [r1] - movs r4, 0x1 - eors r0, r4 - lsls r0, 1 - add r0, r10 - ldrh r0, [r0] - movs r1, 0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - ldr r6, =gEnemyParty - adds r0, r6 - movs r1, 0xB - movs r2, 0 - bl GetMonData - ldr r5, =gUnknown_03005D10 - strh r0, [r5, 0x28] - mov r1, r9 - ldrb r0, [r1] - eors r0, r4 - lsls r0, 1 - add r0, r10 - ldrh r0, [r0] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - adds r2, r5, 0 - adds r2, 0x2A - movs r1, 0x2 - bl GetMonData - mov r1, r9 - ldrb r0, [r1] - eors r4, r0 - lsls r4, 1 - add r4, r10 - ldrh r0, [r4] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - movs r1, 0x26 - movs r2, 0 - bl GetMonData - movs r1, 0xF - ands r0, r1 - lsls r0, 2 - ldrb r2, [r5, 0x5] - movs r1, 0x3D - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x5] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkF0_catch_pokemon - - thumb_func_start atkF1_802D95C -atkF1_802D95C: @ 8056850 - push {r4,r5,lr} - ldr r4, =gEnemyParty - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - adds r0, r5, 0 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl pokedex_flag_operation - lsls r0, 24 - cmp r0, 0 - beq _080568A8 - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _080568C2 - .pool -_080568A8: - adds r0, r5, 0 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - adds r2, r4, 0 - bl SetPokedexFlag - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_080568C2: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end atkF1_802D95C - - thumb_func_start sub_80568CC -sub_80568CC: @ 80568CC - push {r4,lr} - sub sp, 0x4 - ldr r0, =gEnemyParty - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, =gUnknown_02024332 - ldrb r0, [r0] - cmp r0, 0x5 - bls _080568E8 - b _08056A2C -_080568E8: - lsls r0, 2 - ldr r1, =_08056900 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08056900: - .4byte _08056918 - .4byte _0805692A - .4byte _08056978 - .4byte _080569C8 - .4byte _080569E0 - .4byte _08056A18 -_08056918: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _08056A06 -_0805692A: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08056938 - b _08056A2C -_08056938: - bl FreeAllWindowBuffers - adds r0, r4, 0 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - ldr r3, =gBattleMons - ldr r1, =gEnemyMonIndex - ldrb r2, [r1] - movs r1, 0x58 - muls r2, r1 - adds r1, r3, 0 - adds r1, 0x54 - adds r1, r2, r1 - ldr r1, [r1] - adds r3, 0x48 - adds r2, r3 - ldr r2, [r2] - bl sub_80BFDF4 - ldr r1, =gUnknown_02024332 - strb r0, [r1, 0x1] - b _08056A08 - .pool -_08056978: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08056A2C - ldr r0, =gMain - ldr r1, [r0, 0x4] - ldr r0, =sub_8038420 - cmp r1, r0 - bne _08056A2C - ldr r2, =gTasks - ldr r4, =gUnknown_02024332 - ldrb r1, [r4, 0x1] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x4] - cmp r0, 0 - bne _08056A2C - ldr r0, =vblank_cb_08078BB4 - bl SetVBlankCallback - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _08056A2C - .pool -_080569C8: - bl c2_berry_program_update_menu - bl sub_8035AA4 - ldr r1, =gUnknown_02022E20 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - b _08056A06 - .pool -_080569E0: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08056A2C - ldr r0, =0x0000ffff - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r0, 0 - bl ShowBg - movs r0, 0x3 - bl ShowBg -_08056A06: - ldr r1, =gUnknown_02024332 -_08056A08: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08056A2C - .pool -_08056A18: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08056A2C - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_08056A2C: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80568CC - - thumb_func_start sub_8056A3C -sub_8056A3C: @ 8056A3C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - ldr r4, [sp, 0x40] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x10] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x1C] - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x14] - lsls r4, 24 - lsrs r4, 24 - mov r10, r4 - movs r1, 0 - add r0, sp, 0xC - strh r1, [r0] - ldr r6, [sp, 0x10] - cmp r6, r3 - ble _08056A76 - b _08056B62 -_08056A76: - mov r4, r8 - adds r0, r6, 0x1 - str r0, [sp, 0x18] - ldr r2, [sp, 0x1C] - cmp r4, r2 - bgt _08056B58 - add r5, sp, 0xC - lsls r7, r6, 24 - mov r9, r7 -_08056A88: - ldr r0, [sp, 0x10] - cmp r6, r0 - bne _08056AB4 - cmp r4, r8 - bne _08056A9C - ldr r0, =0x00001022 - b _08056AFE - .pool -_08056A9C: - ldr r2, [sp, 0x1C] - cmp r4, r2 - bne _08056AAC - ldr r0, =0x00001024 - b _08056AFE - .pool -_08056AAC: - ldr r0, =0x00001023 - b _08056AFE - .pool -_08056AB4: - ldr r7, [sp, 0x14] - cmp r6, r7 - bne _08056AE0 - cmp r4, r8 - bne _08056AC8 - ldr r0, =0x00001028 - b _08056AFE - .pool -_08056AC8: - ldr r0, [sp, 0x1C] - cmp r4, r0 - bne _08056AD8 - ldr r0, =0x0000102a - b _08056AFE - .pool -_08056AD8: - ldr r0, =0x00001029 - b _08056AFE - .pool -_08056AE0: - cmp r4, r8 - bne _08056AEC - ldr r0, =0x00001025 - b _08056AFE - .pool -_08056AEC: - ldr r2, [sp, 0x1C] - cmp r4, r2 - bne _08056AFC - ldr r0, =0x00001027 - b _08056AFE - .pool -_08056AFC: - ldr r0, =0x00001026 -_08056AFE: - strh r0, [r5] - movs r1, 0x1 - mov r0, r10 - ands r0, r1 - cmp r0, 0 - beq _08056B0E - movs r0, 0 - strh r0, [r5] -_08056B0E: - movs r0, 0x80 - mov r7, r10 - ands r0, r7 - cmp r0, 0 - beq _08056B38 - lsls r2, r4, 24 - lsrs r2, 24 - str r1, [sp] - str r1, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x1 - add r1, sp, 0xC - mov r7, r9 - lsrs r3, r7, 24 - bl CopyToBgTilemapBufferRect_ChangePalette - b _08056B50 - .pool -_08056B38: - lsls r2, r4, 24 - lsrs r2, 24 - str r1, [sp] - str r1, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - add r1, sp, 0xC - mov r7, r9 - lsrs r3, r7, 24 - bl CopyToBgTilemapBufferRect_ChangePalette -_08056B50: - adds r4, 0x1 - ldr r0, [sp, 0x1C] - cmp r4, r0 - ble _08056A88 -_08056B58: - ldr r6, [sp, 0x18] - ldr r2, [sp, 0x14] - cmp r6, r2 - bgt _08056B62 - b _08056A76 -_08056B62: - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8056A3C - - thumb_func_start sub_8056B74 -sub_8056B74: @ 8056B74 - push {lr} - sub sp, 0x10 - adds r3, r0, 0 - add r0, sp, 0xC - movs r2, 0x1 - strh r2, [r0] - movs r1, 0x2 - strh r1, [r0, 0x2] - lsls r3, 25 - movs r0, 0x90 - lsls r0, 20 - adds r3, r0 - lsrs r3, 24 - str r2, [sp] - str r1, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - add r1, sp, 0xC - movs r2, 0x19 - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, 0 - bl CopyBgTilemapBufferToVram - add sp, 0x10 - pop {r0} - bx r0 - thumb_func_end sub_8056B74 - - thumb_func_start sub_8056BAC -sub_8056BAC: @ 8056BAC - push {lr} - sub sp, 0x10 - adds r3, r0, 0 - add r0, sp, 0xC - ldr r1, =0x00001016 - strh r1, [r0] - strh r1, [r0, 0x2] - lsls r3, 25 - movs r0, 0x90 - lsls r0, 20 - adds r3, r0 - lsrs r3, 24 - movs r0, 0x1 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - add r1, sp, 0xC - movs r2, 0x19 - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, 0 - bl CopyBgTilemapBufferToVram - add sp, 0x10 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8056BAC - - thumb_func_start atkF3_receive_new_pokemon_maybe -atkF3_receive_new_pokemon_maybe: @ 8056BEC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - ldr r0, =gUnknown_02024332 - ldrb r1, [r0] - adds r4, r0, 0 - cmp r1, 0x4 - bls _08056C04 - b _08056E62 -_08056C04: - lsls r0, r1, 2 - ldr r1, =_08056C18 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08056C18: - .4byte _08056C2C - .4byte _08056C60 - .4byte _08056CFC - .4byte _08056DD4 - .4byte _08056E2C -_08056C2C: - movs r4, 0 - str r4, [sp] - movs r0, 0x18 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl sub_8056A3C - ldr r0, =gUnknown_085CCABB - movs r1, 0xC - bl battle_show_message_maybe - ldr r1, =gUnknown_02024332 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - strb r4, [r1, 0x1] - movs r0, 0 - bl sub_8056B74 - b _08056E62 - .pool -_08056C60: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08056C86 - ldrb r0, [r4, 0x1] - cmp r0, 0 - beq _08056C86 - movs r0, 0x5 - bl audio_play - ldrb r0, [r4, 0x1] - bl sub_8056BAC - movs r0, 0 - strb r0, [r4, 0x1] - bl sub_8056B74 -_08056C86: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08056CAE - ldr r4, =gUnknown_02024332 - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _08056CAE - movs r0, 0x5 - bl audio_play - ldrb r0, [r4, 0x1] - bl sub_8056BAC - movs r0, 0x1 - strb r0, [r4, 0x1] - bl sub_8056B74 -_08056CAE: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08056CE0 - movs r0, 0x5 - bl audio_play - ldr r1, =gUnknown_02024332 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _08056CF2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0x3 - bl BeginFastPaletteFade - b _08056E62 - .pool -_08056CE0: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08056CEA - b _08056E62 -_08056CEA: - movs r0, 0x5 - bl audio_play - ldr r1, =gUnknown_02024332 -_08056CF2: - movs r0, 0x4 - strb r0, [r1] - b _08056E62 - .pool -_08056CFC: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08056D0A - b _08056E62 -_08056D0A: - ldr r7, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B - mov r10, r0 - ldrb r0, [r0] - movs r4, 0x1 - eors r0, r4 - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - movs r1, 0x64 - mov r9, r1 - mov r2, r9 - muls r2, r0 - adds r0, r2, 0 - ldr r1, =gEnemyParty - mov r8, r1 - add r0, r8 - ldr r1, =gUnknown_0202449C - ldr r2, [r1] - adds r2, 0x6D - movs r1, 0x2 - bl GetMonData - bl FreeAllWindowBuffers - mov r2, r10 - ldrb r0, [r2] - eors r0, r4 - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - add r0, r8 - movs r1, 0xB - bl GetMonData - adds r6, r0, 0 - lsls r6, 16 - lsrs r6, 16 - mov r2, r10 - ldrb r0, [r2] - eors r0, r4 - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - add r0, r8 - bl pokemon_get_gender - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - mov r2, r10 - ldrb r0, [r2] - eors r4, r0 - lsls r4, 1 - adds r4, r7 - ldrh r0, [r4] - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - add r0, r8 - movs r1, 0 - movs r2, 0 - bl GetMonData - ldr r2, =gUnknown_0202449C - ldr r1, [r2] - adds r1, 0x6D - str r0, [sp] - ldr r0, =sub_8038420 - str r0, [sp, 0x4] - movs r0, 0x2 - adds r2, r6, 0 - adds r3, r5, 0 - bl do_choose_name_or_words_screen - ldr r1, =gUnknown_02024332 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08056E62 - .pool -_08056DD4: - ldr r0, =gMain - ldr r1, [r0, 0x4] - ldr r0, =sub_8038420 - cmp r1, r0 - bne _08056E62 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08056E62 - ldr r2, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - movs r0, 0x1 - eors r0, r1 - lsls r0, 1 - adds r0, r2 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - ldr r1, =gUnknown_0202449C - ldr r2, [r1] - adds r2, 0x6D - movs r1, 0x2 - bl pokemon_setattr - b _08056E48 - .pool -_08056E2C: - bl calc_player_party_count - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bne _08056E48 - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08056E62 - .pool -_08056E48: - ldr r3, =gUnknown_02024214 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08056E62: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end atkF3_receive_new_pokemon_maybe - - thumb_func_start sub_8056E78 -sub_8056E78: @ 8056E78 - ldr r2, =gBattleMons - ldr r0, =gUnknown_0202420B - ldrb r1, [r0] - movs r0, 0x58 - muls r1, r0 - adds r1, r2 - ldr r0, =gBattleMoveDamage - ldr r2, [r0] - ldrh r0, [r1, 0x28] - subs r0, r2 - strh r0, [r1, 0x28] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .pool - thumb_func_end sub_8056E78 - - thumb_func_start atkF5_reset_attacker_bd_x4C -atkF5_reset_attacker_bd_x4C: @ 8056EA8 - ldr r1, =gBattleMons - ldr r0, =gUnknown_0202420B - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x4C - adds r0, r1 - movs r1, 0 - str r1, [r0] - ldr r1, =gUnknown_02024214 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .pool - thumb_func_end atkF5_reset_attacker_bd_x4C - - thumb_func_start sub_8056ED0 -sub_8056ED0: @ 8056ED0 - ldr r1, =gUnknown_02024083 - movs r0, 0xC - strb r0, [r1] - bx lr - .pool - thumb_func_end sub_8056ED0 - - thumb_func_start sub_8056EDC -sub_8056EDC: @ 8056EDC - ldr r1, =gUnknown_02024083 - movs r0, 0xC - strb r0, [r1] - ldr r1, =gUnknown_02024082 - ldr r0, =gUnknown_0202406C - ldrb r0, [r0] - strb r0, [r1] - bx lr - .pool - thumb_func_end sub_8056EDC - - thumb_func_start sub_8056EF8 -sub_8056EF8: @ 8056EF8 - push {r4,r5,lr} - ldr r5, =gUnknown_02024214 - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl battle_get_side_with_given_state - ldr r4, =gUnknown_02024064 - strb r0, [r4] - movs r0, 0 - bl dp01_build_cmdbuf_x09_9_9_9 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8056EF8 - - thumb_func_start sub_8056F28 -sub_8056F28: @ 8056F28 - push {r4-r6,lr} - ldr r5, =gUnknown_020244A8 - ldr r6, =gBattleTypeFlags - ldr r0, [r6] - movs r1, 0x80 - lsls r1, 19 - ands r0, r1 - cmp r0, 0 - beq _08056F3E - bl sub_81D55D0 -_08056F3E: - ldr r4, =gUnknown_0202449C - movs r0, 0xA9 - lsls r0, 2 - bl AllocZeroed - str r0, [r4] - movs r0, 0x20 - bl AllocZeroed - str r0, [r5] - movs r0, 0xA0 - bl AllocZeroed - ldr r1, [r5] - str r0, [r1] - movs r0, 0x10 - bl AllocZeroed - ldr r1, [r5] - str r0, [r1, 0x4] - movs r0, 0x24 - bl AllocZeroed - ldr r1, [r5] - str r0, [r1, 0x8] - movs r0, 0x24 - bl AllocZeroed - ldr r1, [r5] - str r0, [r1, 0xC] - movs r0, 0xC - bl AllocZeroed - ldr r1, [r5] - str r0, [r1, 0x10] - movs r0, 0x1C - bl AllocZeroed - ldr r1, [r5] - str r0, [r1, 0x14] - movs r0, 0x54 - bl AllocZeroed - ldr r1, [r5] - str r0, [r1, 0x18] - movs r0, 0x24 - bl AllocZeroed - ldr r1, [r5] - str r0, [r1, 0x1C] - ldr r4, =gUnknown_020244A0 - movs r5, 0x80 - lsls r5, 5 - adds r0, r5, 0 - bl AllocZeroed - str r0, [r4] - ldr r4, =gUnknown_020244A4 - adds r0, r5, 0 - bl AllocZeroed - str r0, [r4] - ldr r4, =gUnknown_0202305C - movs r0, 0x80 - lsls r0, 6 - bl AllocZeroed - str r0, [r4] - ldr r4, =gUnknown_02023060 - adds r0, r5, 0 - bl AllocZeroed - str r0, [r4] - ldr r0, [r6] - movs r1, 0x80 - lsls r1, 20 - ands r0, r1 - cmp r0, 0 - beq _08056FFA - ldr r0, =0x00004054 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r2, =gSaveBlock1Ptr - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 5 - ldr r0, =0x00001a9c - adds r1, r0 - ldr r0, [r2] - adds r0, r1 - bl create_enemy_party -_08056FFA: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8056F28 - - thumb_func_start sub_8057028 -sub_8057028: @ 8057028 - push {r4-r6,lr} - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 19 - ands r0, r1 - cmp r0, 0 - beq _0805703C - bl sub_81D5694 -_0805703C: - ldr r6, =gUnknown_020244A8 - ldr r0, [r6] - cmp r0, 0 - beq _080570D0 - ldr r4, =gUnknown_0202449C - ldr r0, [r4] - bl Free - movs r5, 0 - str r5, [r4] - ldr r0, [r6] - ldr r0, [r0] - bl Free - ldr r0, [r6] - str r5, [r0] - ldr r0, [r0, 0x4] - bl Free - ldr r0, [r6] - str r5, [r0, 0x4] - ldr r0, [r0, 0x8] - bl Free - ldr r0, [r6] - str r5, [r0, 0x8] - ldr r0, [r0, 0xC] - bl Free - ldr r0, [r6] - str r5, [r0, 0xC] - ldr r0, [r0, 0x10] - bl Free - ldr r0, [r6] - str r5, [r0, 0x10] - ldr r0, [r0, 0x14] - bl Free - ldr r0, [r6] - str r5, [r0, 0x14] - ldr r0, [r0, 0x18] - bl Free - ldr r0, [r6] - str r5, [r0, 0x18] - ldr r0, [r0, 0x1C] - bl Free - ldr r0, [r6] - str r5, [r0, 0x1C] - bl Free - str r5, [r6] - ldr r4, =gUnknown_020244A0 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_020244A4 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0202305C - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_02023060 - ldr r0, [r4] - bl Free - str r5, [r4] -_080570D0: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8057028 - - thumb_func_start sub_80570F4 -sub_80570F4: @ 80570F4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08057140 - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x3 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, =gBattleMons - movs r0, 0x58 - adds r1, r3, 0 - muls r1, r0 - adds r1, r2 - adds r1, 0x2A - muls r0, r4 - adds r0, r2 - adds r0, 0x2A - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bls _0805714A - adds r4, r3, 0 - b _0805714A - .pool -_08057140: - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r4, r0, 24 -_0805714A: - ldr r2, =gBattleMons - movs r1, 0x58 - adds r0, r4, 0 - muls r0, r1 - adds r0, r2 - adds r3, r0, 0 - adds r3, 0x2A - adds r0, r5, 0 - muls r0, r1 - adds r0, r2 - adds r1, r0, 0 - adds r1, 0x2A - ldrb r0, [r3] - ldrb r2, [r1] - cmp r0, r2 - bls _080571B8 - ldrb r1, [r1] - subs r0, r1 - cmp r0, 0x1D - ble _08057198 - ldr r1, =gUnknown_0202406E - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x8 - bl happiness_algorithm - b _080571CE - .pool -_08057198: - ldr r1, =gUnknown_0202406E - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x6 - bl happiness_algorithm - b _080571CE - .pool -_080571B8: - ldr r1, =gUnknown_0202406E - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x6 - bl happiness_algorithm -_080571CE: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80570F4 - - thumb_func_start sub_80571DC -sub_80571DC: @ 80571DC - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08057248 - movs r2, 0 - ldr r6, =gUnknown_0202406E - lsls r3, r4, 1 - ldr r5, =gUnknown_0203CF00 - ldr r4, =gUnknown_0202449C -_080571FE: - adds r0, r2, r5 - ldr r1, [r4] - adds r1, r2, r1 - adds r1, 0x60 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x2 - ble _080571FE - adds r0, r3, r6 - ldrb r0, [r0] - bl pokemon_order_func - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r7, 0 - bl pokemon_order_func - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_81B8FB0 - movs r2, 0 - ldr r4, =gUnknown_0202449C - ldr r3, =gUnknown_0203CF00 -_08057236: - ldr r0, [r4] - adds r0, r2, r0 - adds r0, 0x60 - adds r1, r2, r3 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x2 - ble _08057236 -_08057248: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80571DC - - thumb_func_start sub_805725C -sub_805725C: @ 805725C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r0, 0 - mov r8, r0 - ldr r1, =gUnknown_02024332 - mov r10, r1 - b _08057284 - .pool -_0805727C: - mov r2, r8 - cmp r2, 0 - beq _08057284 - b _08057406 -_08057284: - mov r1, r10 - ldrb r0, [r1] - cmp r0, 0x1 - bne _0805728E - b _08057390 -_0805728E: - cmp r0, 0x1 - ble _08057294 - b _080573FC -_08057294: - cmp r0, 0 - beq _0805729A - b _080573FC -_0805729A: - ldr r6, =gBattleMons - movs r0, 0x58 - mov r5, r9 - muls r5, r0 - adds r0, r6, 0 - adds r0, 0x4C - adds r4, r5, r0 - ldr r0, [r4] - movs r7, 0x7 - ands r0, r7 - cmp r0, 0 - beq _08057372 - mov r0, r9 - bl sub_8050650 - lsls r0, 24 - cmp r0, 0 - beq _080572FC - ldr r0, [r4] - movs r1, 0x8 - negs r1, r1 - ands r0, r1 - str r0, [r4] - adds r2, r6, 0 - adds r2, 0x50 - adds r2, r5, r2 - ldr r0, [r2] - ldr r1, =0xf7ffffff - ands r0, r1 - str r0, [r2] - bl b_movescr_stack_push_cursor - movs r0, 0x1 - mov r2, r10 - strb r0, [r2, 0x5] - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DB220 - str r0, [r1] - movs r0, 0x2 - mov r8, r0 - b _08057372 - .pool -_080572FC: - adds r0, r5, r6 - adds r0, 0x20 - ldrb r0, [r0] - movs r2, 0x1 - cmp r0, 0x30 - bne _0805730A - movs r2, 0x2 -_0805730A: - ldr r1, [r4] - adds r0, r1, 0 - ands r0, r7 - cmp r0, r2 - bcs _0805731E - movs r0, 0x8 - negs r0, r0 - ands r1, r0 - str r1, [r4] - b _08057322 -_0805731E: - subs r0, r1, r2 - str r0, [r4] -_08057322: - ldr r2, =gBattleMons - movs r0, 0x58 - mov r1, r9 - muls r1, r0 - adds r0, r2, 0 - adds r0, 0x4C - adds r0, r1, r0 - ldr r4, [r0] - movs r0, 0x7 - ands r4, r0 - cmp r4, 0 - beq _08057354 - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DB213 - str r0, [r1] - movs r1, 0x2 - mov r8, r1 - b _08057372 - .pool -_08057354: - adds r2, 0x50 - adds r2, r1, r2 - ldr r0, [r2] - ldr r1, =0xf7ffffff - ands r0, r1 - str r0, [r2] - bl b_movescr_stack_push_cursor - ldr r0, =gUnknown_02024332 - strb r4, [r0, 0x5] - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DB220 - str r0, [r1] - movs r2, 0x2 - mov r8, r2 -_08057372: - ldr r1, =gUnknown_02024332 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - mov r10, r1 - b _080573FC - .pool -_08057390: - ldr r1, =gBattleMons - movs r0, 0x58 - mov r2, r9 - muls r2, r0 - adds r0, r2, 0 - adds r1, 0x4C - adds r4, r0, r1 - ldr r0, [r4] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080573F4 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x5 - bl __umodsi3 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _080573D4 - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DB26A - str r0, [r1] - b _080573EC - .pool -_080573D4: - ldr r0, [r4] - movs r1, 0x21 - negs r1, r1 - ands r0, r1 - str r0, [r4] - bl b_movescr_stack_push_cursor - ldr r1, =gUnknown_02024214 - ldr r0, =gUnknown_082DB277 - str r0, [r1] - mov r0, r10 - strb r5, [r0, 0x5] -_080573EC: - movs r1, 0x2 - mov r8, r1 - ldr r2, =gUnknown_02024332 - mov r10, r2 -_080573F4: - mov r1, r10 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080573FC: - mov r2, r10 - ldrb r0, [r2] - cmp r0, 0x2 - beq _08057406 - b _0805727C -_08057406: - mov r0, r8 - cmp r0, 0x2 - bne _08057430 - ldr r4, =gUnknown_02024064 - mov r1, r9 - strb r1, [r4] - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - ldr r1, =gUnknown_020240D0 - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_08057430: - mov r0, r8 - 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_805725C - - thumb_func_start nullsub_21 -nullsub_21: @ 8057458 - bx lr - thumb_func_end nullsub_21 - - thumb_func_start sub_805745C -sub_805745C: @ 805745C - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_exec_buffer_A_ch0_tbl1 - str r1, [r0] - ldr r0, =gUnknown_020244B9 - movs r1, 0 - strb r1, [r0] - ldr r0, =gUnknown_020244CC - strb r1, [r0] - bx lr - .pool - thumb_func_end sub_805745C - - thumb_func_start dp01_tbl1_exec_completed -dp01_tbl1_exec_completed: @ 805748C - push {r4,lr} - sub sp, 0x4 - ldr r1, =gUnknown_03005D60 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_exec_buffer_A_ch0_tbl1 - str r1, [r0] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080574E0 - bl link_get_multiplayer_id - mov r1, sp - strb r0, [r1] - movs r0, 0x2 - movs r1, 0x4 - mov r2, sp - bl dp01_prepare_buffer_wireless_probably - ldr r1, =gUnknown_02023064 - ldrb r0, [r4] - lsls r0, 9 - adds r0, r1 - movs r1, 0x38 - strb r1, [r0] - b _080574F2 - .pool -_080574E0: - ldr r2, =gUnknown_02024068 - ldr r1, =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldr r0, [r2] - bics r0, r1 - str r0, [r2] -_080574F2: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end dp01_tbl1_exec_completed - - thumb_func_start bx_exec_buffer_A_ch0_tbl1 -bx_exec_buffer_A_ch0_tbl1: @ 8057504 - push {lr} - ldr r2, =gUnknown_02024068 - ldr r1, =gBitTable - ldr r0, =gUnknown_02024064 - ldrb r3, [r0] - lsls r0, r3, 2 - adds r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08057550 - ldr r0, =gUnknown_02023064 - lsls r1, r3, 9 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x38 - bhi _0805754C - ldr r0, =gUnknown_0831C514 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 - b _08057550 - .pool -_0805754C: - bl dp01_tbl1_exec_completed -_08057550: - pop {r0} - bx r0 - thumb_func_end bx_exec_buffer_A_ch0_tbl1 - - thumb_func_start bx_0802E404 -bx_0802E404: @ 8057554 - push {lr} - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x24 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08057576 - bl dp01_tbl1_exec_completed -_08057576: - pop {r0} - bx r0 - .pool - thumb_func_end bx_0802E404 - - thumb_func_start sub_8057588 -sub_8057588: @ 8057588 - push {r4-r7,lr} - ldr r3, =gUnknown_02023064 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - lsls r2, r0, 9 - adds r1, r3, 0x2 - adds r1, r2, r1 - ldrb r5, [r1] - adds r3, 0x3 - adds r2, r3 - ldrb r1, [r2] - lsls r1, 8 - orrs r5, r1 - movs r1, 0x1 - movs r2, 0x7 - movs r3, 0x1 - bl dp11b_obj_instanciate - ldrb r0, [r4] - movs r1, 0 - movs r2, 0x7 - movs r3, 0x1 - bl dp11b_obj_instanciate - ldr r0, =gMain - ldrh r1, [r0, 0x30] - movs r0, 0xF0 - ands r0, r1 - cmp r0, 0 - beq _080575EC - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x13] - cmp r0, 0x2 - bne _080575EC - ldr r1, =gUnknown_020244CC - ldrb r0, [r1] - adds r0, 0x1 - b _080575F0 - .pool -_080575EC: - ldr r1, =gUnknown_020244CC - movs r0, 0 -_080575F0: - strb r0, [r1] - ldr r0, =gMain - ldrh r2, [r0, 0x2E] - movs r3, 0x1 - adds r0, r3, 0 - ands r0, r2 - cmp r0, 0 - beq _08057658 - movs r0, 0x5 - bl audio_play - ldr r1, =gUnknown_020244AC - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08057640 - cmp r0, 0x1 - bgt _08057630 - cmp r0, 0 - beq _0805763A - b _080577C2 - .pool -_08057630: - cmp r0, 0x2 - beq _08057646 - cmp r0, 0x3 - beq _0805764C - b _080577C2 -_0805763A: - movs r0, 0x1 - movs r1, 0 - b _080577BC -_08057640: - movs r0, 0x1 - movs r1, 0x1 - b _080577BC -_08057646: - movs r0, 0x1 - movs r1, 0x2 - b _080577BC -_0805764C: - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb - b _080577C2 -_08057658: - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - beq _08057698 - ldr r5, =gUnknown_020244AC - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _08057674 - b _080577E8 -_08057674: - movs r0, 0x5 - bl audio_play - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl sub_8059CF8 - ldrb r1, [r4] - adds r1, r5 - ldrb r0, [r1] - movs r2, 0x1 - b _08057732 - .pool -_08057698: - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - beq _080576D8 - ldr r5, =gUnknown_020244AC - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _080576B4 - b _080577E8 -_080576B4: - movs r0, 0x5 - bl audio_play - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl sub_8059CF8 - ldrb r1, [r4] - adds r1, r5 - ldrb r0, [r1] - movs r2, 0x1 - b _08057732 - .pool -_080576D8: - movs r7, 0x40 - adds r0, r7, 0 - ands r0, r2 - cmp r0, 0 - beq _08057700 - ldr r5, =gUnknown_020244AC - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080577E8 - b _0805771A - .pool -_08057700: - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _0805774C - ldr r5, =gUnknown_020244AC - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080577E8 -_0805771A: - movs r0, 0x5 - bl audio_play - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl sub_8059CF8 - ldrb r1, [r4] - adds r1, r5 - ldrb r0, [r1] - movs r2, 0x2 -_08057732: - eors r0, r2 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - movs r1, 0 - bl sub_8059CB4 - b _080577E8 - .pool -_0805774C: - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - bne _0805775A - ldrb r0, [r1] - cmp r0, 0x3B - bls _080577DC -_0805775A: - ldr r4, =gBattleTypeFlags - ldr r0, [r4] - ands r0, r3 - cmp r0, 0 - beq _080577E8 - ldr r6, =gUnknown_02024064 - ldrb r0, [r6] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _080577E8 - movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, =gUnknown_02024210 - ldrb r1, [r1] - ldr r2, =gBitTable - lsls r0, 24 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _080577E8 - ldr r0, [r4] - ands r0, r7 - cmp r0, 0 - bne _080577E8 - ldr r0, =gUnknown_02023064 - ldrb r1, [r6] - lsls r1, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x1 - bne _080577B2 - cmp r5, 0xC - bhi _080577E8 - adds r0, r5, 0 - movs r1, 0x1 - bl bag_add_item -_080577B2: - movs r0, 0x5 - bl audio_play - movs r0, 0x1 - movs r1, 0xC -_080577BC: - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb -_080577C2: - bl dp01_tbl1_exec_completed - b _080577E8 - .pool -_080577DC: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _080577E8 - bl sub_8073314 -_080577E8: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8057588 - - thumb_func_start sub_80577F0 -sub_80577F0: @ 80577F0 - push {r4,lr} - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - movs r1, 0x1 - bl dp11b_obj_free - ldrb r0, [r4] - movs r1, 0 - bl dp11b_obj_free - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8057824 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80577F0 - - thumb_func_start sub_8057824 -sub_8057824: @ 8057824 - push {r4,r5,lr} - sub sp, 0x4 - ldr r1, =gUnknown_0831C5F8 - mov r0, sp - movs r2, 0x4 - bl memcpy - ldr r0, =gUnknown_03005D74 - ldrb r0, [r0] - movs r1, 0x1 - movs r2, 0xF - movs r3, 0x1 - bl dp11b_obj_instanciate - movs r4, 0 - ldr r0, =gUnknown_0202406C - ldrb r0, [r0] - cmp r0, 0 - beq _08057866 -_0805784A: - ldr r0, =gUnknown_03005D74 - ldrb r0, [r0] - cmp r4, r0 - beq _0805785C - lsls r0, r4, 24 - lsrs r0, 24 - movs r1, 0x1 - bl dp11b_obj_free -_0805785C: - adds r4, 0x1 - ldr r0, =gUnknown_0202406C - ldrb r0, [r0] - cmp r4, r0 - blt _0805784A -_08057866: - ldr r2, =gMain - ldrh r1, [r2, 0x2C] - movs r0, 0xF0 - ands r0, r1 - cmp r0, 0 - beq _0805789C - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x13] - cmp r0, 0x2 - bne _0805789C - ldr r1, =gUnknown_020244CC - ldrb r0, [r1] - adds r0, 0x1 - b _080578A0 - .pool -_0805789C: - ldr r1, =gUnknown_020244CC - movs r0, 0 -_080578A0: - strb r0, [r1] - ldrh r2, [r2, 0x2E] - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - beq _08057910 - movs r0, 0x5 - bl audio_play - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r4, =gUnknown_03005D74 - ldrb r0, [r4] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, =sub_8039B2C - str r1, [r0] - ldr r1, =gUnknown_020244B0 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r2, [r0] - ldrb r0, [r4] - lsls r0, 8 - orrs r2, r0 - movs r0, 0x1 - movs r1, 0xA - bl dp01_build_cmdbuf_x21_a_bb - ldrb r0, [r4] - movs r1, 0x1 - bl dp11b_obj_free - bl dp01_tbl1_exec_completed - b _08057BC8 - .pool -_08057910: - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - bne _0805791E - ldrb r0, [r1] - cmp r0, 0x3B - bls _0805798C -_0805791E: - movs r0, 0x5 - bl audio_play - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r5, =gUnknown_03005D74 - ldrb r0, [r5] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, =sub_8039B2C - str r1, [r0] - ldr r1, =gUnknown_03005D60 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8057BFC - str r1, [r0] - ldrb r0, [r4] - movs r1, 0x1 - movs r2, 0x7 - movs r3, 0x1 - bl dp11b_obj_instanciate - ldrb r0, [r4] - movs r1, 0 - movs r2, 0x7 - movs r3, 0x1 - bl dp11b_obj_instanciate - ldrb r0, [r5] - movs r1, 0x1 - bl dp11b_obj_free - b _08057BC8 - .pool -_0805798C: - movs r0, 0x60 - ands r0, r2 - cmp r0, 0 - bne _08057996 - b _08057AB0 -_08057996: - movs r0, 0x5 - bl audio_play - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r3, =gUnknown_03005D74 - ldrb r0, [r3] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, =sub_8039B2C - str r1, [r0] - adds r5, r3, 0 -_080579B8: - ldrb r0, [r5] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r1, r0, 24 - movs r4, 0 - mov r0, sp - b _080579E2 - .pool -_080579D8: - adds r4, 0x1 - cmp r4, 0x3 - bgt _080579E8 - mov r2, sp - adds r0, r2, r4 -_080579E2: - ldrb r0, [r0] - cmp r1, r0 - bne _080579D8 -_080579E8: - subs r4, 0x1 - cmp r4, 0 - bge _080579F0 - movs r4, 0x4 -_080579F0: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - bl battle_get_side_with_given_state - strb r0, [r5] - ldr r1, =gUnknown_0202406C - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - beq _080579E8 - movs r4, 0 - ldrb r0, [r5] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08057A6E - cmp r0, 0x1 - bgt _08057A28 - cmp r0, 0 - beq _08057A32 - b _08057A70 - .pool -_08057A28: - cmp r0, 0x2 - beq _08057A32 - cmp r0, 0x3 - beq _08057A6E - b _08057A70 -_08057A32: - ldr r2, =gUnknown_02024064 - ldrb r0, [r2] - ldrb r1, [r5] - cmp r0, r1 - bne _08057A6E - ldr r1, =gUnknown_0202406E - ldrb r2, [r2] - lsls r0, r2, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_020244B0 - adds r2, r1 - ldrb r1, [r2] - adds r1, 0xD - bl GetMonData - ldr r2, =gBattleMoves - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r1, [r1, 0x6] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08057A70 -_08057A6E: - adds r4, 0x1 -_08057A70: - ldr r0, =gUnknown_02024210 - ldrb r1, [r0] - ldr r2, =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - ldr r0, =gUnknown_03005D74 - cmp r1, 0 - beq _08057A88 - movs r4, 0 -_08057A88: - cmp r4, 0 - beq _080579B8 - b _08057BB0 - .pool -_08057AB0: - movs r0, 0x90 - ands r0, r2 - cmp r0, 0 - bne _08057ABA - b _08057BC8 -_08057ABA: - movs r0, 0x5 - bl audio_play - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r3, =gUnknown_03005D74 - ldrb r0, [r3] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, =sub_8039B2C - str r1, [r0] - adds r5, r3, 0 -_08057ADC: - ldrb r0, [r5] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r1, r0, 24 - movs r4, 0 - mov r0, sp - b _08057B06 - .pool -_08057AFC: - adds r4, 0x1 - cmp r4, 0x3 - bgt _08057B0C - mov r2, sp - adds r0, r2, r4 -_08057B06: - ldrb r0, [r0] - cmp r1, r0 - bne _08057AFC -_08057B0C: - adds r4, 0x1 - cmp r4, 0x3 - ble _08057B14 - movs r4, 0 -_08057B14: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - bl battle_get_side_with_given_state - strb r0, [r5] - ldr r1, =gUnknown_0202406C - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - beq _08057B0C - movs r4, 0 - ldrb r0, [r5] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08057B92 - cmp r0, 0x1 - bgt _08057B4C - cmp r0, 0 - beq _08057B56 - b _08057B94 - .pool -_08057B4C: - cmp r0, 0x2 - beq _08057B56 - cmp r0, 0x3 - beq _08057B92 - b _08057B94 -_08057B56: - ldr r2, =gUnknown_02024064 - ldrb r0, [r2] - ldrb r1, [r5] - cmp r0, r1 - bne _08057B92 - ldr r1, =gUnknown_0202406E - ldrb r2, [r2] - lsls r0, r2, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_020244B0 - adds r2, r1 - ldrb r1, [r2] - adds r1, 0xD - bl GetMonData - ldr r2, =gBattleMoves - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r1, [r1, 0x6] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08057B94 -_08057B92: - adds r4, 0x1 -_08057B94: - ldr r0, =gUnknown_02024210 - ldrb r1, [r0] - ldr r2, =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - ldr r0, =gUnknown_03005D74 - cmp r1, 0 - beq _08057BAC - movs r4, 0 -_08057BAC: - cmp r4, 0 - beq _08057ADC -_08057BB0: - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, =sub_8039AD8 - str r1, [r0] -_08057BC8: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8057824 - - thumb_func_start sub_8057BFC -sub_8057BFC: @ 8057BFC - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r0, 0 - mov r8, r0 - ldr r3, =gUnknown_02024064 - ldrb r0, [r3] - lsls r0, 9 - ldr r1, =gUnknown_02023068 - adds r6, r0, r1 - ldr r2, =gMain - ldrh r1, [r2, 0x2C] - movs r0, 0xF0 - ands r0, r1 - adds r7, r3, 0 - cmp r0, 0 - beq _08057C44 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x13] - cmp r0, 0x2 - bne _08057C44 - ldr r1, =gUnknown_020244CC - ldrb r0, [r1] - adds r0, 0x1 - b _08057C48 - .pool -_08057C44: - ldr r1, =gUnknown_020244CC - movs r0, 0 -_08057C48: - strb r0, [r1] - ldrh r2, [r2, 0x2E] - movs r5, 0x1 - adds r0, r5, 0 - ands r0, r2 - cmp r0, 0 - bne _08057C58 - b _08057E04 -_08057C58: - movs r0, 0x5 - bl audio_play - ldr r1, =gUnknown_020244B0 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - lsls r0, 1 - adds r1, r6, r0 - ldrh r0, [r1] - cmp r0, 0xAE - bne _08057C98 - ldrb r0, [r6, 0x12] - movs r4, 0 - cmp r0, 0x7 - beq _08057CA6 - ldrb r1, [r6, 0x13] - movs r0, 0x7 - eors r1, r0 - negs r0, r1 - orrs r0, r1 - asrs r4, r0, 31 - movs r0, 0x10 - ands r4, r0 - b _08057CA6 - .pool -_08057C98: - ldr r2, =gBattleMoves - ldrh r1, [r1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r4, [r0, 0x6] -_08057CA6: - movs r0, 0x10 - ands r0, r4 - cmp r0, 0 - beq _08057CC4 - ldr r0, =gUnknown_03005D74 - ldr r1, =gUnknown_02024064 - ldrb r1, [r1] - strb r1, [r0] - b _08057CDE - .pool -_08057CC4: - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl battle_get_per_side_status - adds r1, r0, 0 - movs r2, 0x1 - movs r0, 0x1 - ands r0, r1 - eors r0, r2 - bl battle_get_side_with_given_state - ldr r1, =gUnknown_03005D74 - strb r0, [r1] -_08057CDE: - ldr r5, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r3, [r0] - lsls r2, r3, 9 - adds r1, r5, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r7, r0, 0 - cmp r1, 0 - bne _08057D18 - movs r0, 0x2 - ands r0, r4 - cmp r0, 0 - beq _08057D5A - adds r0, r5, 0x2 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _08057D5A - movs r0, 0x1 - add r8, r0 - b _08057D5A - .pool -_08057D18: - movs r0, 0x7D - ands r0, r4 - cmp r0, 0 - bne _08057D24 - movs r0, 0x1 - add r8, r0 -_08057D24: - ldr r0, =gUnknown_020244B0 - adds r0, r3, r0 - adds r1, r6, 0 - adds r1, 0x8 - ldrb r0, [r0] - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _08057D62 - movs r0, 0x12 - ands r0, r4 - cmp r0, 0 - bne _08057D5A - movs r0, 0 - bl sub_8069DEC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08057D5A - ldrb r0, [r7] - bl sub_8069F34 - ldr r1, =gUnknown_03005D74 - strb r0, [r1] - movs r0, 0 - mov r8, r0 -_08057D5A: - ldr r7, =gUnknown_02024064 - mov r0, r8 - cmp r0, 0 - bne _08057D80 -_08057D62: - ldr r1, =gUnknown_020244B0 - ldrb r0, [r7] - adds r0, r1 - ldrb r2, [r0] - ldr r0, =gUnknown_03005D74 - ldrb r0, [r0] - lsls r0, 8 - orrs r2, r0 - b _08057E1C - .pool -_08057D80: - ldr r1, =gUnknown_03005D60 - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8057824 - str r1, [r0] - movs r0, 0x12 - ands r4, r0 - cmp r4, 0 - beq _08057DA8 - ldr r1, =gUnknown_03005D74 - ldrb r0, [r7] - b _08057DD8 - .pool -_08057DA8: - movs r0, 0x1 - bl battle_get_side_with_given_state - ldr r1, =gUnknown_02024210 - ldrb r1, [r1] - ldr r2, =gBitTable - lsls r0, 24 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08057DD0 - movs r0, 0x3 - b _08057DD2 - .pool -_08057DD0: - movs r0, 0x1 -_08057DD2: - bl battle_get_side_with_given_state - ldr r1, =gUnknown_03005D74 -_08057DD8: - strb r0, [r1] - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_03005D74 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, =sub_8039AD8 - b _08057F9C - .pool -_08057E04: - movs r6, 0x2 - adds r0, r6, 0 - ands r0, r2 - cmp r0, 0 - bne _08057E14 - ldrb r0, [r1] - cmp r0, 0x3B - bls _08057E30 -_08057E14: - movs r0, 0x5 - bl audio_play - ldr r2, =0x0000ffff -_08057E1C: - movs r0, 0x1 - movs r1, 0xA - bl dp01_build_cmdbuf_x21_a_bb - bl dp01_tbl1_exec_completed - b _08057F9E - .pool -_08057E30: - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - beq _08057E60 - ldr r4, =gUnknown_020244B0 - ldrb r0, [r7] - adds r2, r0, r4 - ldrb r1, [r2] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _08057E4A - b _08057F9E -_08057E4A: - ldrb r0, [r2] - bl battle_menu_cursor_related - ldrb r1, [r7] - adds r1, r4 - ldrb r0, [r1] - movs r2, 0x1 - eors r0, r2 - b _08057F08 - .pool -_08057E60: - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - beq _08057EA4 - ldr r4, =gUnknown_020244B0 - ldrb r0, [r7] - adds r3, r0, r4 - ldrb r2, [r3] - movs r6, 0x1 - adds r0, r5, 0 - ands r0, r2 - cmp r0, 0 - beq _08057E7C - b _08057F9E -_08057E7C: - ldr r1, =gUnknown_03005D78 - adds r0, r6, 0 - eors r0, r2 - ldrb r1, [r1] - cmp r0, r1 - bcc _08057E8A - b _08057F9E -_08057E8A: - ldrb r0, [r3] - bl battle_menu_cursor_related - ldrb r1, [r7] - adds r1, r4 - ldrb r0, [r1] - eors r0, r6 - b _08057F08 - .pool -_08057EA4: - movs r0, 0x40 - ands r0, r2 - cmp r0, 0 - beq _08057ED4 - ldr r4, =gUnknown_020244B0 - ldrb r0, [r7] - adds r2, r0, r4 - ldrb r1, [r2] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _08057F9E - ldrb r0, [r2] - bl battle_menu_cursor_related - ldrb r1, [r7] - adds r1, r4 - ldrb r0, [r1] - movs r2, 0x2 - eors r0, r2 - b _08057F08 - .pool -_08057ED4: - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _08057F30 - ldr r4, =gUnknown_020244B0 - ldrb r0, [r7] - adds r3, r0, r4 - ldrb r2, [r3] - movs r5, 0x2 - adds r0, r6, 0 - ands r0, r2 - cmp r0, 0 - bne _08057F9E - ldr r1, =gUnknown_03005D78 - adds r0, r5, 0 - eors r0, r2 - ldrb r1, [r1] - cmp r0, r1 - bcs _08057F9E - ldrb r0, [r3] - bl battle_menu_cursor_related - ldrb r1, [r7] - adds r1, r4 - ldrb r0, [r1] - eors r0, r5 -_08057F08: - strb r0, [r1] - movs r0, 0x5 - bl audio_play - ldrb r0, [r7] - adds r0, r4 - ldrb r0, [r0] - movs r1, 0 - bl battle_menu_cursor_related_2 - bl sub_8059B3C - bl sub_8059BB0 - b _08057F9E - .pool -_08057F30: - movs r0, 0x4 - ands r0, r2 - cmp r0, 0 - beq _08057F9E - ldr r0, =gUnknown_03005D78 - ldrb r0, [r0] - cmp r0, 0x1 - bls _08057F9E - ldr r0, =gBattleTypeFlags - ldr r5, [r0] - ands r5, r6 - cmp r5, 0 - bne _08057F9E - ldr r4, =gUnknown_020244B0 - ldrb r0, [r7] - adds r0, r4 - ldrb r0, [r0] - movs r1, 0x1D - bl battle_menu_cursor_related_2 - ldrb r0, [r7] - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _08057F78 - ldr r0, =gUnknown_03005D74 - strb r5, [r0] - b _08057F80 - .pool -_08057F78: - ldr r1, =gUnknown_03005D74 - adds r0, 0x1 - strb r0, [r1] - adds r0, r1, 0 -_08057F80: - ldrb r0, [r0] - movs r1, 0x1B - bl battle_menu_cursor_related_2 - ldr r0, =gUnknown_085CCACA - movs r1, 0xB - bl battle_show_message_maybe - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8058138 -_08057F9C: - str r1, [r0] -_08057F9E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8057BFC - - thumb_func_start sub_8057FBC -sub_8057FBC: @ 8057FBC - push {r4-r7,lr} - movs r7, 0 - ldr r4, =gMain - ldrh r1, [r4, 0x2E] - movs r6, 0x1 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _08057FD6 - movs r0, 0x5 - bl audio_play - movs r7, 0x1 -_08057FD6: - ldrh r1, [r4, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08057FF8 - movs r0, 0x5 - bl audio_play - ldr r1, =gUnknown_02022E14 - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_02022E16 - movs r2, 0xA0 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - movs r7, 0xFF -_08057FF8: - ldrh r1, [r4, 0x2E] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08058038 - ldr r5, =gUnknown_020244B0 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r2, r0, r5 - ldrb r1, [r2] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _08058038 - ldrb r0, [r2] - bl battle_menu_cursor_related - ldrb r1, [r4] - adds r1, r5 - ldrb r0, [r1] - movs r2, 0x1 - eors r0, r2 - strb r0, [r1] - movs r0, 0x5 - bl audio_play - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - movs r1, 0 - bl battle_menu_cursor_related_2 -_08058038: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08058086 - ldr r5, =gUnknown_020244B0 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r3, r0, r5 - ldrb r2, [r3] - movs r6, 0x1 - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - bne _08058086 - ldr r1, =gUnknown_03005D78 - adds r0, r6, 0 - eors r0, r2 - ldrb r1, [r1] - cmp r0, r1 - bcs _08058086 - ldrb r0, [r3] - bl battle_menu_cursor_related - ldrb r1, [r4] - adds r1, r5 - ldrb r0, [r1] - eors r0, r6 - strb r0, [r1] - movs r0, 0x5 - bl audio_play - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - movs r1, 0 - bl battle_menu_cursor_related_2 -_08058086: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080580C8 - ldr r5, =gUnknown_020244B0 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r2, r0, r5 - ldrb r1, [r2] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080580C8 - ldrb r0, [r2] - bl battle_menu_cursor_related - ldrb r1, [r4] - adds r1, r5 - ldrb r0, [r1] - movs r2, 0x2 - eors r0, r2 - strb r0, [r1] - movs r0, 0x5 - bl audio_play - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - movs r1, 0 - bl battle_menu_cursor_related_2 -_080580C8: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08058116 - ldr r5, =gUnknown_020244B0 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r3, r0, r5 - ldrb r2, [r3] - movs r6, 0x2 - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - bne _08058116 - ldr r1, =gUnknown_03005D78 - adds r0, r6, 0 - eors r0, r2 - ldrb r1, [r1] - cmp r0, r1 - bcs _08058116 - ldrb r0, [r3] - bl battle_menu_cursor_related - ldrb r1, [r4] - adds r1, r5 - ldrb r0, [r1] - eors r0, r6 - strb r0, [r1] - movs r0, 0x5 - bl audio_play - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - movs r1, 0 - bl battle_menu_cursor_related_2 -_08058116: - adds r0, r7, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8057FBC - - thumb_func_start sub_8058138 -sub_8058138: @ 8058138 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x5 - ands r0, r1 - cmp r0, 0 - bne _08058152 - b _08058500 -_08058152: - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_020244B0 - mov r10, r0 - ldr r1, =gUnknown_02024064 - mov r8, r1 - ldrb r1, [r1] - adds r2, r1, r0 - ldr r5, =gUnknown_03005D74 - ldrb r0, [r2] - ldrb r3, [r5] - cmp r0, r3 - bne _08058170 - b _080584A8 -_08058170: - lsls r1, 9 - ldr r0, =gUnknown_02023068 - adds r1, r0 - mov r9, r1 - ldrb r1, [r2] - lsls r1, 1 - add r1, r9 - ldrh r6, [r1] - ldrb r0, [r5] - lsls r0, 1 - add r0, r9 - ldrh r0, [r0] - strh r0, [r1] - ldrb r0, [r5] - lsls r0, 1 - add r0, r9 - strh r6, [r0] - mov r1, r8 - ldrb r0, [r1] - add r0, r10 - ldrb r1, [r0] - mov r7, r9 - adds r7, 0x8 - adds r1, r7, r1 - ldrb r6, [r1] - ldrb r0, [r5] - adds r0, r7, r0 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r5] - adds r0, r7, r0 - strb r6, [r0] - mov r2, r8 - ldrb r0, [r2] - add r0, r10 - ldrb r1, [r0] - mov r2, r9 - adds r2, 0xC - adds r1, r2, r1 - ldrb r6, [r1] - ldrb r0, [r5] - adds r0, r2, r0 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r5] - adds r2, r0 - strb r6, [r2] - mov r3, r8 - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - ldr r2, =gUnknown_020242BC - adds r6, r0, r2 - ldrb r4, [r6, 0x18] - lsls r3, r4, 24 - lsrs r2, r3, 28 - ldr r0, =gBitTable - mov r12, r0 - add r1, r10 - ldrb r0, [r1] - lsls r0, 2 - add r0, r12 - ldr r0, [r0] - ands r2, r0 - cmp r2, 0 - beq _0805822A - lsrs r1, r3, 28 - bics r1, r0 - lsls r1, 4 - movs r2, 0xF - adds r0, r2, 0 - ands r0, r4 - orrs r0, r1 - strb r0, [r6, 0x18] - mov r1, r8 - ldrb r0, [r1] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - ldr r3, =gUnknown_020242BC - adds r1, r3 - ldrb r4, [r1, 0x18] - lsrs r3, r4, 4 - ldrb r0, [r5] - lsls r0, 2 - add r0, r12 - ldr r0, [r0] - orrs r0, r3 - lsls r0, 4 - ands r2, r4 - orrs r2, r0 - strb r2, [r1, 0x18] -_0805822A: - bl sub_8059AAC - movs r6, 0 - mov r12, r7 - mov r5, sp - adds r5, 0x18 - str r5, [sp, 0x1C] - ldr r2, =gBattleMons - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r4, r0, 0 - adds r4, 0x3B - mov r7, r8 - mov r10, r2 - movs r5, 0x3 -_0805824E: - mov r1, sp - adds r3, r1, r6 - ldrb r1, [r4] - lsls r2, r6, 1 - adds r0, r5, 0 - lsls r0, r2 - ands r1, r0 - asrs r1, r2 - strb r1, [r3] - adds r6, 0x1 - cmp r6, 0x3 - ble _0805824E - ldr r1, =gUnknown_020244B0 - ldrb r0, [r7] - adds r0, r1 - ldrb r0, [r0] - add r0, sp - ldrb r0, [r0] - ldr r2, [sp, 0x1C] - strb r0, [r2] - ldrb r0, [r7] - adds r0, r1 - ldrb r0, [r0] - mov r3, sp - adds r2, r3, r0 - ldr r1, =gUnknown_03005D74 - ldrb r0, [r1] - add r0, sp - ldrb r0, [r0] - movs r3, 0 - strb r0, [r2] - ldrb r0, [r1] - mov r5, sp - adds r1, r5, r0 - ldr r2, [sp, 0x1C] - ldrb r0, [r2] - strb r0, [r1] - strb r3, [r2] - movs r6, 0 - ldr r2, [sp, 0x1C] -_0805829E: - mov r3, sp - adds r0, r3, r6 - ldrb r1, [r0] - lsls r0, r6, 1 - lsls r1, r0 - ldrb r0, [r2] - orrs r0, r1 - strb r0, [r2] - adds r6, 0x1 - cmp r6, 0x3 - ble _0805829E - ldrb r1, [r7] - movs r0, 0x58 - muls r0, r1 - add r0, r10 - adds r0, 0x3B - ldr r5, [sp, 0x1C] - ldrb r1, [r5] - strb r1, [r0] - movs r6, 0 - adds r4, r7, 0 - movs r3, 0x58 - movs r0, 0x24 - add r0, r10 - mov r8, r0 - mov r2, r9 - mov r7, r10 - adds r7, 0xC - mov r5, r12 -_080582D8: - lsls r1, r6, 1 - ldrb r0, [r4] - muls r0, r3 - adds r1, r0 - adds r1, r7 - ldrh r0, [r2] - strh r0, [r1] - ldrb r0, [r4] - adds r1, r0, 0 - muls r1, r3 - adds r1, r6, r1 - add r1, r8 - adds r0, r5, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r2, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _080582D8 - ldr r2, =gUnknown_02024064 - ldrb r1, [r2] - movs r0, 0x58 - muls r0, r1 - mov r1, r10 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - beq _0805831A - b _080584A8 -_0805831A: - movs r6, 0 - mov r1, sp - adds r1, 0x4 - str r1, [sp, 0x20] - add r3, sp, 0xC - mov r10, r3 - ldr r5, =gUnknown_0202406E - mov r9, r5 - mov r8, r2 - movs r7, 0x64 - ldr r5, =gPlayerParty - adds r4, r1, 0 -_08058332: - mov r1, r8 - ldrb r0, [r1] - lsls r0, 1 - add r0, r9 - ldrh r0, [r0] - muls r0, r7 - adds r0, r5 - adds r1, r6, 0 - adds r1, 0xD - bl GetMonData - strh r0, [r4] - mov r2, r8 - ldrb r0, [r2] - lsls r0, 1 - add r0, r9 - ldrh r0, [r0] - muls r0, r7 - adds r0, r5 - adds r1, r6, 0 - adds r1, 0x11 - bl GetMonData - mov r3, r10 - adds r1, r3, r6 - strb r0, [r1] - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _08058332 - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x15 - bl GetMonData - ldr r5, [sp, 0x1C] - strb r0, [r5] - movs r6, 0 - movs r5, 0x3 - ldr r4, [sp, 0x1C] -_08058392: - mov r0, sp - adds r3, r0, r6 - lsls r2, r6, 1 - adds r1, r5, 0 - lsls r1, r2 - ldrb r0, [r4] - ands r0, r1 - asrs r0, r2 - strb r0, [r3] - adds r6, 0x1 - cmp r6, 0x3 - ble _08058392 - ldr r4, =gUnknown_020244B0 - ldr r3, =gUnknown_02024064 - ldrb r0, [r3] - adds r0, r4 - ldrb r1, [r0] - lsls r1, 1 - ldr r2, [sp, 0x20] - adds r1, r2, r1 - ldrh r6, [r1] - ldr r2, =gUnknown_03005D74 - ldrb r0, [r2] - lsls r0, 1 - ldr r5, [sp, 0x20] - adds r0, r5, r0 - ldrh r0, [r0] - movs r5, 0 - strh r0, [r1] - ldrb r0, [r2] - lsls r0, 1 - ldr r1, [sp, 0x20] - adds r0, r1, r0 - strh r6, [r0] - ldrb r0, [r3] - adds r0, r4 - ldrb r1, [r0] - add r1, r10 - ldrb r6, [r1] - ldrb r0, [r2] - add r0, r10 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r2] - add r0, r10 - strb r6, [r0] - ldrb r0, [r3] - adds r0, r4 - ldrb r0, [r0] - add r0, sp - ldrb r0, [r0] - ldr r1, [sp, 0x1C] - strb r0, [r1] - ldrb r0, [r3] - adds r0, r4 - ldrb r0, [r0] - mov r3, sp - adds r1, r3, r0 - ldrb r0, [r2] - add r0, sp - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r2] - adds r1, r3, r0 - ldr r2, [sp, 0x1C] - ldrb r0, [r2] - strb r0, [r1] - strb r5, [r2] - movs r6, 0 - ldr r2, [sp, 0x1C] -_0805841E: - mov r3, sp - adds r0, r3, r6 - ldrb r1, [r0] - lsls r0, r6, 1 - lsls r1, r0 - ldrb r0, [r2] - orrs r0, r1 - strb r0, [r2] - adds r6, 0x1 - cmp r6, 0x3 - ble _0805841E - movs r6, 0 - ldr r5, =gUnknown_0202406E - mov r10, r5 - ldr r0, =gUnknown_02024064 - mov r9, r0 - movs r1, 0x64 - mov r8, r1 - ldr r7, =gPlayerParty - ldr r5, [sp, 0x20] - adds r5, 0x8 - ldr r4, [sp, 0x20] -_0805844A: - mov r2, r9 - ldrb r0, [r2] - lsls r0, 1 - add r0, r10 - ldrh r0, [r0] - mov r3, r8 - muls r3, r0 - adds r0, r3, 0 - adds r0, r7 - adds r1, r6, 0 - adds r1, 0xD - adds r2, r4, 0 - bl pokemon_setattr - mov r1, r9 - ldrb r0, [r1] - lsls r0, 1 - add r0, r10 - ldrh r0, [r0] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - adds r0, r7 - adds r1, r6, 0 - adds r1, 0x11 - adds r2, r5, 0 - bl pokemon_setattr - adds r5, 0x1 - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _0805844A - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x15 - ldr r2, [sp, 0x1C] - bl pokemon_setattr -_080584A8: - ldr r1, =gUnknown_03005D60 - ldr r2, =gUnknown_02024064 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8057BFC - str r1, [r0] - ldr r3, =gUnknown_020244B0 - ldrb r0, [r2] - adds r0, r3 - ldr r1, =gUnknown_03005D74 - ldrb r1, [r1] - strb r1, [r0] - ldrb r0, [r2] - adds r0, r3 - ldrb r0, [r0] - movs r1, 0 - bl battle_menu_cursor_related_2 - b _08058532 - .pool -_08058500: - movs r0, 0x6 - ands r0, r1 - cmp r0, 0 - beq _08058554 - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_03005D74 - ldrb r0, [r0] - bl battle_menu_cursor_related - ldr r1, =gUnknown_020244B0 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - movs r1, 0 - bl battle_menu_cursor_related_2 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8057BFC - str r1, [r0] -_08058532: - bl sub_8059B18 - bl sub_8059B3C - bl sub_8059BB0 - b _080586E8 - .pool -_08058554: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080585A4 - ldr r3, =gUnknown_03005D74 - ldrb r2, [r3] - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - bne _0805856A - b _080586E8 -_0805856A: - ldr r0, =gUnknown_020244B0 - ldr r1, =gUnknown_02024064 - ldrb r1, [r1] - adds r1, r0 - ldrb r5, [r1] - cmp r2, r5 - bne _08058590 -_08058578: - ldrb r0, [r1] - movs r1, 0x1D - bl battle_menu_cursor_related_2 - b _08058596 - .pool -_08058590: - ldrb r0, [r3] - bl battle_menu_cursor_related -_08058596: - ldr r4, =gUnknown_03005D74 - ldrb r0, [r4] - movs r1, 0x1 - b _0805862C - .pool -_080585A4: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080585E8 - ldr r3, =gUnknown_03005D74 - ldrb r2, [r3] - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - beq _080585BA - b _080586E8 -_080585BA: - ldr r1, =gUnknown_03005D78 - movs r0, 0x1 - eors r0, r2 - ldrb r1, [r1] - cmp r0, r1 - bcc _080585C8 - b _080586E8 -_080585C8: - ldr r0, =gUnknown_020244B0 - ldr r1, =gUnknown_02024064 - ldrb r1, [r1] - adds r1, r0 - ldrb r0, [r1] - cmp r2, r0 - beq _08058578 - b _08058590 - .pool -_080585E8: - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0805865C - ldr r3, =gUnknown_03005D74 - ldrb r2, [r3] - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _080586E8 - ldr r0, =gUnknown_020244B0 - ldr r1, =gUnknown_02024064 - ldrb r1, [r1] - adds r1, r0 - ldrb r5, [r1] - cmp r2, r5 - bne _08058620 - ldrb r0, [r1] - movs r1, 0x1D - bl battle_menu_cursor_related_2 - b _08058626 - .pool -_08058620: - ldrb r0, [r3] - bl battle_menu_cursor_related -_08058626: - ldr r4, =gUnknown_03005D74 - ldrb r0, [r4] - movs r1, 0x2 -_0805862C: - eors r0, r1 - strb r0, [r4] - movs r0, 0x5 - bl audio_play - ldr r1, =gUnknown_020244B0 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r4] - ldrb r0, [r0] - cmp r1, r0 - beq _080586CA - ldrb r0, [r4] - movs r1, 0x1B - bl battle_menu_cursor_related_2 - b _080586E8 - .pool -_0805865C: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080586E8 - ldr r3, =gUnknown_03005D74 - ldrb r2, [r3] - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - bne _080586E8 - ldr r1, =gUnknown_03005D78 - movs r0, 0x2 - eors r0, r2 - ldrb r1, [r1] - cmp r0, r1 - bcs _080586E8 - ldr r0, =gUnknown_020244B0 - ldr r1, =gUnknown_02024064 - ldrb r1, [r1] - adds r1, r0 - ldrb r0, [r1] - cmp r2, r0 - bne _080586A4 - ldrb r0, [r1] - movs r1, 0x1D - bl battle_menu_cursor_related_2 - b _080586AA - .pool -_080586A4: - ldrb r0, [r3] - bl battle_menu_cursor_related -_080586AA: - ldr r4, =gUnknown_03005D74 - ldrb r0, [r4] - movs r1, 0x2 - eors r0, r1 - strb r0, [r4] - movs r0, 0x5 - bl audio_play - ldr r1, =gUnknown_020244B0 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r4] - ldrb r0, [r0] - cmp r1, r0 - bne _080586E0 -_080586CA: - adds r0, r1, 0 - movs r1, 0 - bl battle_menu_cursor_related_2 - b _080586E8 - .pool -_080586E0: - ldrb r0, [r4] - movs r1, 0x1B - bl battle_menu_cursor_related_2 -_080586E8: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8058138 - - thumb_func_start sub_80586F8 -sub_80586F8: @ 80586F8 - push {lr} - ldr r0, =gLinkVSyncDisabled - ldrb r0, [r0] - cmp r0, 0 - bne _0805875C - ldr r0, =gUnknown_03003124 - ldrb r0, [r0] - cmp r0, 0 - bne _08058798 - movs r0, 0x5A - bl m4aSongNumStop - ldr r3, =gMain - ldr r0, =0x00000439 - adds r2, r3, r0 - ldrb r1, [r2] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r0, =gUnknown_03005D00 - ldr r0, [r0] - str r0, [r3] - ldr r0, =sub_8038D64 - bl SetMainCallback2 - ldr r0, =gUnknown_0202433A - ldrb r0, [r0] - cmp r0, 0x1 - bne _08058738 - bl sub_817E3F4 -_08058738: - bl FreeAllWindowBuffers - b _08058798 - .pool -_0805875C: - bl sub_800A520 - lsls r0, 24 - cmp r0, 0 - beq _08058798 - movs r0, 0x5A - bl m4aSongNumStop - ldr r3, =gMain - ldr r0, =0x00000439 - adds r2, r3, r0 - ldrb r1, [r2] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r0, =gUnknown_03005D00 - ldr r0, [r0] - str r0, [r3] - ldr r0, =sub_8038D64 - bl SetMainCallback2 - ldr r0, =gUnknown_0202433A - ldrb r0, [r0] - cmp r0, 0x1 - bne _08058794 - bl sub_817E3F4 -_08058794: - bl FreeAllWindowBuffers -_08058798: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80586F8 - - thumb_func_start sub_80587B0 -sub_80587B0: @ 80587B0 - push {lr} - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08058832 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08058810 - bl sub_800A520 - lsls r0, 24 - cmp r0, 0 - beq _08058832 - ldr r0, =gLinkVSyncDisabled - ldrb r0, [r0] - cmp r0, 0 - bne _080587F0 - bl sub_800AC34 - b _080587F4 - .pool -_080587F0: - bl sub_800ADF8 -_080587F4: - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_80586F8 - str r1, [r0] - b _08058832 - .pool -_08058810: - movs r0, 0x5A - bl m4aSongNumStop - ldr r2, =gMain - ldr r0, =0x00000439 - adds r3, r2, r0 - ldrb r1, [r3] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - ldr r0, =gUnknown_03005D00 - ldr r0, [r0] - str r0, [r2] - ldr r0, [r2, 0x8] - bl SetMainCallback2 -_08058832: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80587B0 - - thumb_func_start sub_8058844 -sub_8058844: @ 8058844 - push {lr} - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _08058868 - bl dp01_tbl1_exec_completed -_08058868: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8058844 - - thumb_func_start sub_805887C -sub_805887C: @ 805887C - push {lr} - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _080588A0 - bl dp01_tbl1_exec_completed -_080588A0: - pop {r0} - bx r0 - .pool - thumb_func_end sub_805887C - - thumb_func_start bx_802F7A0 -bx_802F7A0: @ 80588B4 - push {r4-r6,lr} - ldr r6, =gUnknown_02020630 - ldr r5, =gUnknown_020241E4 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r6, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _08058908 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - bl nullsub_25 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl obj_free_rotscale_entry - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl RemoveObjectAndFreeTiles - bl dp01_tbl1_exec_completed -_08058908: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end bx_802F7A0 - - thumb_func_start sub_8058924 -sub_8058924: @ 8058924 - push {r4,lr} - ldr r4, =gUnknown_020244D0 - ldr r1, [r4] - ldr r3, =gUnknown_02024064 - ldrb r0, [r3] - ldr r2, [r1, 0x4] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x9] - subs r0, 0x1 - strb r0, [r1, 0x9] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _0805895C - ldr r0, [r4] - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strb r1, [r0, 0x9] - bl dp01_tbl1_exec_completed -_0805895C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8058924 - - thumb_func_start sub_805896C -sub_805896C: @ 805896C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r7, 0 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08058998 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _080589D0 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080589D0 -_08058998: - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_03005D70 - ldr r3, =gUnknown_02024064 - ldrb r0, [r3] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - mov r10, r3 - cmp r1, r0 - bne _08058A0A - b _08058A0E - .pool -_080589D0: - ldr r3, =gUnknown_02020630 - ldr r6, =gUnknown_03005D70 - ldr r2, =gUnknown_02024064 - ldrb r4, [r2] - adds r0, r4, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r5, r3, 0 - adds r5, 0x1C - adds r0, r5 - ldr r3, [r0] - ldr r0, =DummyObjectCallback - mov r10, r2 - cmp r3, r0 - bne _08058A0A - movs r0, 0x2 - eors r4, r0 - adds r0, r4, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r0, [r0] - cmp r0, r3 - bne _08058A0A - movs r7, 0x1 -_08058A0A: - cmp r7, 0 - beq _08058B08 -_08058A0E: - ldr r0, =gUnknown_020244D0 - mov r9, r0 - ldr r0, [r0] - mov r6, r10 - ldrb r2, [r6] - ldr r3, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r4, r0, r3 - ldrb r1, [r4, 0x1] - movs r5, 0x1 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _08058B08 - movs r1, 0x2 - mov r8, r1 - mov r1, r8 - eors r1, r2 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x1] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _08058B08 - ldrb r1, [r4] - movs r3, 0x7F - adds r0, r3, 0 - ands r0, r1 - strb r0, [r4] - mov r2, r9 - ldr r0, [r2] - ldrb r2, [r6] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r4, 0x2 - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - strb r0, [r1, 0x1] - mov r0, r9 - ldr r2, [r0] - ldrb r0, [r6] - mov r1, r8 - eors r1, r0 - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - mov r1, r9 - ldr r2, [r1] - ldrb r0, [r6] - mov r1, r8 - eors r1, r0 - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - ands r4, r1 - strb r4, [r0, 0x1] - ldr r4, =0x000027f9 - adds r0, r4, 0 - bl FreeObjectTilesByTag - adds r0, r4, 0 - bl FreeObjectPaletteByTag - ldr r7, =gUnknown_0202406E - ldrb r1, [r6] - lsls r0, r1, 1 - adds r0, r7 - ldrh r0, [r0] - movs r5, 0x64 - muls r0, r5 - ldr r4, =gPlayerParty - adds r0, r4 - bl sub_805E990 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08058AE4 - ldrb r0, [r6] - mov r1, r8 - eors r1, r0 - lsls r0, r1, 1 - adds r0, r7 - ldrh r0, [r0] - muls r0, r5 - adds r0, r4 - bl sub_805E990 -_08058AE4: - mov r2, r9 - ldr r0, [r2] - mov r2, r10 - ldrb r1, [r2] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - strb r1, [r0, 0x9] - ldr r1, =gUnknown_03005D60 - mov r2, r10 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8058924 - str r1, [r0] -_08058B08: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805896C - - thumb_func_start sub_8058B40 -sub_8058B40: @ 8058B40 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r0, 0 - mov r9, r0 - mov r8, r0 - ldr r4, =gUnknown_020244D0 - ldr r0, [r4] - ldr r7, =gUnknown_02024064 - ldrb r2, [r7] - ldr r1, [r0, 0x4] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r5, 0x88 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _08058B80 - ldr r0, =gUnknown_0202406E - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8172EF0 -_08058B80: - ldr r1, [r4] - ldrb r0, [r7] - movs r6, 0x2 - adds r2, r6, 0 - eors r2, r0 - ldr r1, [r1, 0x4] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _08058BB2 - ldr r0, =gUnknown_0202406E - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8172EF0 -_08058BB2: - ldr r0, [r4] - ldrb r2, [r7] - ldr r3, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r4, r0, r3 - ldrb r1, [r4] - movs r5, 0x8 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _08058C82 - adds r1, r6, 0 - eors r1, r2 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _08058C82 - ldrb r1, [r4, 0x1] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08058C68 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08058C38 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08058C38 - ldr r4, =gUnknown_03005D70 - ldrb r0, [r7] - adds r1, r6, 0 - eors r1, r0 - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, =gUnknown_0202406E - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gPlayerParty - adds r1, r2 - movs r2, 0 - bl healthbar_draw_field_maybe - ldrb r0, [r7] - eors r0, r6 - bl sub_8076918 - ldrb r0, [r7] - eors r0, r6 - adds r0, r4 - ldrb r0, [r0] - bl sub_80729D0 -_08058C38: - ldr r5, =gUnknown_03005D70 - ldr r4, =gUnknown_02024064 - ldrb r1, [r4] - adds r0, r1, r5 - ldrb r0, [r0] - ldr r2, =gUnknown_0202406E - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gPlayerParty - adds r1, r2 - movs r2, 0 - bl healthbar_draw_field_maybe - ldrb r0, [r4] - bl sub_8076918 - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl sub_80729D0 -_08058C68: - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0, 0x1] -_08058C82: - ldr r5, =gUnknown_020244D0 - ldr r0, [r5] - ldr r4, =gUnknown_02024064 - ldrb r2, [r4] - ldr r3, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x1] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0x80 - bne _08058D32 - movs r1, 0x2 - eors r1, r2 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x1] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08058D32 - bl sub_80A36C8 - lsls r0, 24 - cmp r0, 0 - bne _08058D32 - ldr r0, [r5] - ldrb r1, [r4] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _08058D14 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x42 - ands r0, r1 - cmp r0, 0x42 - bne _08058D08 - ldr r0, =gMPlay_BGM - bl m4aMPlayContinue - b _08058D14 - .pool -_08058D08: - ldr r0, =gMPlay_BGM - ldr r1, =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl -_08058D14: - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x1] - movs r0, 0x1 - mov r9, r0 -_08058D32: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08058D52 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08058DAC - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08058DAC -_08058D52: - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_03005D7C - ldr r1, =gUnknown_02024064 - ldrb r4, [r1] - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r3, [r0] - ldr r0, =DummyObjectCallback - cmp r3, r0 - bne _08058E0A - ldr r0, =gUnknown_020241E4 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - cmp r0, r3 - bne _08058E0A - b _08058E06 - .pool -_08058DAC: - ldr r2, =gUnknown_02020630 - ldr r7, =gUnknown_03005D7C - ldr r0, =gUnknown_02024064 - ldrb r3, [r0] - adds r0, r3, r7 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r4, [r0] - ldr r0, =DummyObjectCallback - cmp r4, r0 - bne _08058E0A - ldr r6, =gUnknown_020241E4 - adds r0, r3, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r5, [r0] - cmp r5, r4 - bne _08058E0A - movs r0, 0x2 - eors r3, r0 - adds r0, r3, r7 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r4, [r0] - cmp r4, r5 - bne _08058E0A - adds r0, r3, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - cmp r0, r4 - bne _08058E0A -_08058E06: - movs r0, 0x1 - mov r8, r0 -_08058E0A: - mov r0, r9 - cmp r0, 0 - beq _08058EAA - mov r0, r8 - cmp r0, 0 - beq _08058EAA - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08058E48 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08058E48 - ldr r2, =gUnknown_03005D7C - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - movs r0, 0x2 - eors r0, r1 - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - bl RemoveObjectAndFreeTiles -_08058E48: - ldr r1, =gUnknown_03005D7C - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - bl RemoveObjectAndFreeTiles - ldr r3, =gUnknown_020244D0 - ldr r0, [r3] - ldr r2, [r0, 0x8] - ldrb r1, [r2, 0x9] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x9] - ldr r0, [r3] - ldrb r2, [r4] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r0, [r3] - ldrb r2, [r4] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0x7F - ands r0, r2 - strb r0, [r1, 0x1] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_805896C - str r1, [r0] -_08058EAA: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8058B40 - - thumb_func_start sub_8058EDC -sub_8058EDC: @ 8058EDC - push {r4-r6,lr} - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_03005D70 - ldr r6, =gUnknown_02024064 - ldrb r3, [r6] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r4, [r0] - ldr r0, =DummyObjectCallback - cmp r4, r0 - bne _08058F94 - ldr r5, =gUnknown_020244D0 - ldr r0, [r5] - ldr r1, [r0, 0x4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08058F94 - ldr r0, =gUnknown_020241E4 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - cmp r0, r4 - bne _08058F94 - adds r0, r3, 0 - bl sub_805E408 - ldr r0, [r5] - ldrb r2, [r6] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x7F - ands r0, r2 - strb r0, [r1] - ldr r0, [r5] - ldrb r2, [r6] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r4, =0x000027f9 - adds r0, r4, 0 - bl FreeObjectTilesByTag - adds r0, r4, 0 - bl FreeObjectPaletteByTag - ldr r0, [r5] - ldrb r2, [r6] - ldr r1, [r0] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08058F88 - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x6 - bl move_anim_start_t4 -_08058F88: - ldr r0, =gUnknown_03005D60 - ldrb r1, [r6] - lsls r1, 2 - adds r1, r0 - ldr r0, =sub_8058FC0 - str r0, [r1] -_08058F94: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8058EDC - - thumb_func_start sub_8058FC0 -sub_8058FC0: @ 8058FC0 - push {r4,lr} - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r4, =gUnknown_02024064 - ldrb r1, [r4] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0805900E - bl sub_80A36C8 - lsls r0, 24 - cmp r0, 0 - bne _0805900E - ldr r0, =gMPlay_BGM - ldr r1, =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl - ldr r2, =gUnknown_0202406E - ldrb r1, [r4] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, =gPlayerParty - adds r0, r2 - bl sub_805E990 - bl dp01_tbl1_exec_completed -_0805900E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8058FC0 - - thumb_func_start sub_805902C -sub_805902C: @ 805902C - push {r4-r6,lr} - ldr r6, =gUnknown_020244D0 - ldr r0, [r6] - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - ldr r1, [r0, 0x4] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x88 - ands r0, r1 - cmp r0, 0 - bne _0805905E - ldr r0, =gUnknown_0202406E - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8172EF0 -_0805905E: - ldr r4, =gUnknown_02020630 - ldr r0, =gUnknown_03005D7C - ldrb r2, [r5] - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r3, r0, 2 - adds r0, r4, 0 - adds r0, 0x1C - adds r0, r3, r0 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _080590D2 - ldr r0, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _080590D2 - adds r0, r3, r4 - bl RemoveObjectAndFreeTiles - ldr r4, =gUnknown_03005D70 - ldrb r1, [r5] - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, =gUnknown_0202406E - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gPlayerParty - adds r1, r2 - movs r2, 0 - bl healthbar_draw_field_maybe - ldrb r0, [r5] - bl sub_8076918 - ldrb r0, [r5] - adds r0, r4 - ldrb r0, [r0] - bl sub_80729D0 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8058EDC - str r1, [r0] -_080590D2: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805902C - - thumb_func_start c3_0802FDF4 -c3_0802FDF4: @ 8059100 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_80A36C8 - lsls r0, 24 - cmp r0, 0 - bne _08059122 - ldr r0, =gMPlay_BGM - ldr r1, =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl - adds r0, r4, 0 - bl DestroyTask -_08059122: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end c3_0802FDF4 - - thumb_func_start bx_t1_healthbar_update -bx_t1_healthbar_update: @ 8059130 - push {r4-r6,lr} - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - ldr r6, =gUnknown_03005D70 - adds r1, r0, r6 - ldrb r1, [r1] - movs r2, 0 - movs r3, 0 - bl sub_8074AA0 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r5] - adds r0, r6 - ldrb r0, [r0] - bl sub_80729D0 - lsls r4, 16 - asrs r1, r4, 16 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08059178 - ldrb r0, [r5] - adds r0, r6 - ldrb r0, [r0] - movs r2, 0 - bl heathbar_draw_hp - b _08059192 - .pool -_08059178: - ldr r2, =gUnknown_0202406E - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, =gPlayerParty - adds r0, r2 - bl sub_805E990 - bl dp01_tbl1_exec_completed -_08059192: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end bx_t1_healthbar_update - - thumb_func_start sub_80591A0 -sub_80591A0: @ 80591A0 - push {lr} - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _080591B2 - bl dp01_tbl1_exec_completed -_080591B2: - pop {r0} - bx r0 - thumb_func_end sub_80591A0 - - thumb_func_start sub_80591B8 -sub_80591B8: @ 80591B8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r1, =gTasks - lsls r0, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - mov r8, r0 - ldrb r0, [r0, 0x8] - mov r10, r0 - mov r1, r8 - ldrb r7, [r1, 0xC] - str r7, [sp, 0x8] - ldrh r2, [r1, 0xA] - str r2, [sp, 0xC] - bl battle_type_is_double - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080591FE - ldr r1, =gUnknown_0202406E - lsls r0, r7, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r10, r0 - bne _080591FE - b _08059314 -_080591FE: - movs r0, 0x64 - mov r1, r10 - muls r1, r0 - ldr r0, =gPlayerParty - adds r6, r1, r0 - adds r0, r6, 0 - movs r1, 0xB - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r6, 0 - movs r1, 0x38 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - movs r1, 0x19 - bl GetMonData - str r0, [sp, 0x4] - ldr r3, =gExperienceTables - adds r4, 0x1 - lsls r4, 2 - ldr r2, =gBaseStats - lsls r1, r5, 3 - subs r1, r5 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1, 0x13] - movs r1, 0xCA - lsls r1, 1 - muls r1, r2 - adds r4, r1 - adds r4, r3 - ldr r2, [r4] - str r2, [sp] - ldr r3, [sp, 0xC] - lsls r1, r3, 16 - asrs r1, 16 - adds r0, r1 - cmp r0, r2 - bcc _080592EC - adds r0, r6, 0 - movs r1, 0x19 - mov r2, sp - bl pokemon_setattr - adds r0, r6, 0 - bl pokemon_calc_effective_stats - ldr r2, [sp] - add r0, sp, 0x4 - ldrh r0, [r0] - subs r2, r0 - ldr r0, [sp, 0xC] - subs r2, r0, r2 - ldr r4, =gUnknown_02024064 - ldrb r5, [r4] - strb r7, [r4] - lsls r2, 16 - lsrs r2, 16 - movs r0, 0x1 - movs r1, 0xB - bl dp01_build_cmdbuf_x21_a_bb - strb r5, [r4] - bl battle_type_is_double - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080592D4 - ldr r2, =gUnknown_0202406E - lsls r0, r7, 1 - adds r0, r2 - mov r1, r10 - ldrh r0, [r0] - cmp r1, r0 - beq _080592B2 - movs r0, 0x2 - eors r7, r0 - lsls r0, r7, 1 - adds r0, r2 - ldrh r0, [r0] - cmp r1, r0 - bne _080592D4 -_080592B2: - ldr r0, =sub_8059544 - b _08059316 - .pool -_080592D4: - ldr r0, =gTasks - mov r2, r9 - lsls r1, r2, 2 - add r1, r9 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_805965C - b _08059318 - .pool -_080592EC: - str r0, [sp, 0x4] - add r2, sp, 0x4 - adds r0, r6, 0 - movs r1, 0x19 - bl pokemon_setattr - ldr r1, =gUnknown_03005D60 - ldr r3, [sp, 0x8] - lsls r0, r3, 2 - adds r0, r1 - ldr r1, =sub_80591A0 - str r1, [r0] - mov r0, r9 - bl DestroyTask - b _0805931A - .pool -_08059314: - ldr r0, =sub_8059330 -_08059316: - mov r1, r8 -_08059318: - str r0, [r1] -_0805931A: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80591B8 - - thumb_func_start sub_8059330 -sub_8059330: @ 8059330 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gTasks - lsls r2, r0, 2 - mov r8, r2 - add r8, r0 - mov r0, r8 - lsls r0, 3 - mov r8, r0 - add r8, r1 - mov r2, r8 - ldrb r1, [r2, 0x8] - movs r0, 0xA - ldrsh r2, [r2, r0] - mov r9, r2 - mov r2, r8 - ldrb r2, [r2, 0xC] - mov r10, r2 - movs r0, 0x64 - adds r6, r1, 0 - muls r6, r0 - ldr r0, =gPlayerParty - adds r6, r0 - adds r0, r6, 0 - movs r1, 0x38 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - movs r1, 0xB - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r6, 0 - movs r1, 0x19 - bl GetMonData - adds r3, r0, 0 - ldr r6, =gExperienceTables - lsls r1, r4, 2 - ldr r2, =gBaseStats - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - adds r0, r2 - ldrb r2, [r0, 0x13] - movs r0, 0xCA - lsls r0, 1 - muls r0, r2 - adds r1, r0 - adds r1, r6 - ldr r1, [r1] - subs r3, r1 - adds r4, 0x1 - lsls r4, 2 - adds r4, r0 - adds r4, r6 - ldr r2, [r4] - subs r2, r1 - ldr r0, =gUnknown_03005D70 - add r0, r10 - ldrb r1, [r0] - mov r0, r9 - negs r0, r0 - str r0, [sp] - mov r0, r10 - bl sub_807294C - movs r0, 0x21 - bl audio_play - ldr r0, =sub_8059400 - mov r1, r8 - str r0, [r1] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8059330 - - thumb_func_start sub_8059400 -sub_8059400: @ 8059400 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r1, =gTasks - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r6, r0, r1 - ldrh r1, [r6, 0x1C] - movs r2, 0x1C - ldrsh r0, [r6, r2] - cmp r0, 0xC - bgt _08059430 - adds r0, r1, 0x1 - strh r0, [r6, 0x1C] - b _0805952C - .pool -_08059430: - ldrb r0, [r6, 0x8] - mov r9, r0 - ldrh r2, [r6, 0xA] - mov r10, r2 - ldrb r7, [r6, 0xC] - ldr r5, =gUnknown_03005D70 - adds r5, r7, r5 - ldrb r1, [r5] - adds r0, r7, 0 - movs r2, 0x1 - movs r3, 0 - bl sub_8074AA0 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r5] - bl sub_80729D0 - lsls r4, 16 - asrs r4, 16 - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - bne _0805952C - movs r0, 0x21 - bl m4aSongNumStop - movs r0, 0x64 - mov r1, r9 - muls r1, r0 - ldr r0, =gPlayerParty - adds r5, r1, r0 - 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, 0x19 - bl GetMonData - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - ldr r3, =gExperienceTables - adds r4, 0x1 - lsls r4, 2 - ldr r2, =gBaseStats - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r1, [r1, 0x13] - movs r0, 0xCA - lsls r0, 1 - muls r0, r1 - adds r4, r0 - adds r4, r3 - ldr r1, [r4] - str r1, [sp] - mov r2, r10 - lsls r0, r2, 16 - asrs r4, r0, 16 - ldr r0, [sp, 0x4] - adds r0, r4 - cmp r0, r1 - blt _08059510 - adds r0, r5, 0 - movs r1, 0x19 - mov r2, sp - bl pokemon_setattr - adds r0, r5, 0 - bl pokemon_calc_effective_stats - ldr r2, [sp] - add r0, sp, 0x4 - ldrh r0, [r0] - subs r2, r0 - subs r2, r4, r2 - ldr r4, =gUnknown_02024064 - ldrb r5, [r4] - strb r7, [r4] - lsls r2, 16 - lsrs r2, 16 - movs r0, 0x1 - movs r1, 0xB - bl dp01_build_cmdbuf_x21_a_bb - strb r5, [r4] - ldr r0, =sub_8059544 - str r0, [r6] - b _0805952C - .pool -_08059510: - str r0, [sp, 0x4] - add r2, sp, 0x4 - adds r0, r5, 0 - movs r1, 0x19 - bl pokemon_setattr - ldr r1, =gUnknown_03005D60 - lsls r0, r7, 2 - adds r0, r1 - ldr r1, =sub_80591A0 - str r1, [r0] - mov r0, r8 - bl DestroyTask -_0805952C: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8059400 - - thumb_func_start sub_8059544 -sub_8059544: @ 8059544 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrb r4, [r0, 0xC] - ldrb r6, [r0, 0x8] - bl battle_type_is_double - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08059578 - ldr r1, =gUnknown_0202406E - movs r0, 0x2 - adds r2, r4, 0 - eors r2, r0 - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r6, r0 - bne _08059578 - adds r4, r2, 0 -_08059578: - adds r0, r4, 0 - adds r1, r4, 0 - adds r2, r4, 0 - movs r3, 0 - bl move_anim_start_t4 - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_80595A4 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8059544 - - thumb_func_start sub_80595A4 -sub_80595A4: @ 80595A4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r2, r0, r1 - ldrb r5, [r2, 0xC] - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r1, [r0, 0x4] - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08059646 - ldrb r4, [r2, 0x8] - movs r0, 0x64 - adds r1, r4, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r7, r1, r0 - adds r0, r7, 0 - movs r1, 0x38 - bl GetMonData - bl battle_type_is_double - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08059624 - ldr r1, =gUnknown_0202406E - movs r0, 0x2 - adds r2, r5, 0 - eors r2, r0 - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r4, r0 - bne _08059624 - ldr r0, =gUnknown_03005D70 - adds r0, r2, r0 - ldrb r0, [r0] - adds r1, r7, 0 - movs r2, 0 - bl healthbar_draw_field_maybe - b _08059638 - .pool -_08059624: - ldr r0, =gUnknown_03005D70 - adds r0, r5, r0 - ldrb r0, [r0] - movs r1, 0x64 - muls r1, r4 - ldr r2, =gPlayerParty - adds r1, r2 - movs r2, 0 - bl healthbar_draw_field_maybe -_08059638: - ldr r0, =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_805965C - str r0, [r1] -_08059646: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80595A4 - - thumb_func_start sub_805965C -sub_805965C: @ 805965C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldrb r1, [r4, 0x8] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x38 - bl GetMonData - ldrb r0, [r4, 0xC] - ldr r1, =gUnknown_03005D60 - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_80591A0 - str r1, [r0] - adds r0, r5, 0 - bl DestroyTask - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805965C - - thumb_func_start sub_80596A8 -sub_80596A8: @ 80596A8 - push {r4-r6,lr} - ldr r6, =gUnknown_02020630 - ldr r5, =gUnknown_020241E4 - ldr r4, =gUnknown_02024064 - ldrb r2, [r4] - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r3, 0x22 - ldrsh r1, [r0, r3] - movs r3, 0x26 - ldrsh r0, [r0, r3] - adds r1, r0 - cmp r1, 0xA0 - ble _08059724 - ldr r1, =gUnknown_0202406E - lsls r0, r2, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl nullsub_24 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl rotscale_free_entry - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl RemoveObjectAndFreeTiles - ldr r1, =gUnknown_03005D70 - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - bl sub_8072984 - bl dp01_tbl1_exec_completed -_08059724: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80596A8 - - thumb_func_start sub_8059744 -sub_8059744: @ 8059744 - push {r4-r6,lr} - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r6, =gUnknown_02024064 - ldrb r2, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08059798 - ldr r5, =gUnknown_020241E4 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - bl obj_free_rotscale_entry - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl RemoveObjectAndFreeTiles - ldr r1, =gUnknown_03005D70 - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl sub_8072984 - bl dp01_tbl1_exec_completed -_08059798: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8059744 - - thumb_func_start sub_80597B4 -sub_80597B4: @ 80597B4 - push {lr} - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _080597C6 - bl dp01_tbl1_exec_completed -_080597C6: - pop {r0} - bx r0 - thumb_func_end sub_80597B4 - - thumb_func_start sub_80597CC -sub_80597CC: @ 80597CC - push {r4,lr} - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0805980A - ldr r1, =gUnknown_03005D60 - ldr r2, =gUnknown_02024064 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8059828 - str r1, [r0] - ldr r3, =gTasks - ldr r1, =gUnknown_03005D7C - ldrb r0, [r2] - adds r0, r1 - ldrb r0, [r0] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r3 - ldrb r4, [r1, 0x8] - bl DestroyTask - bl FreeAllWindowBuffers - adds r0, r4, 0 - bl sub_81B89AC -_0805980A: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80597CC - - thumb_func_start sub_8059828 -sub_8059828: @ 8059828 - push {lr} - ldr r0, =gMain - ldr r1, [r0, 0x4] - ldr r0, =sub_8038420 - cmp r1, r0 - bne _08059898 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08059898 - ldr r0, =gUnknown_0203CEE8 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08059870 - ldr r0, =gUnknown_0203CEE9 - ldrb r1, [r0] - ldr r2, =gUnknown_0203CF00 - movs r0, 0x1 - bl dp01_build_cmdbuf_x22_a_three_bytes - b _0805987A - .pool -_08059870: - movs r0, 0x1 - movs r1, 0x6 - movs r2, 0 - bl dp01_build_cmdbuf_x22_a_three_bytes -_0805987A: - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0xF - ands r0, r1 - cmp r0, 0x1 - bne _08059894 - bl b_link_standby_message -_08059894: - bl dp01_tbl1_exec_completed -_08059898: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8059828 - - thumb_func_start sub_80598A4 -sub_80598A4: @ 80598A4 - push {lr} - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080598CC - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_80598E0 - str r1, [r0] - bl nullsub_35 - bl FreeAllWindowBuffers - bl sub_81AABB0 -_080598CC: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80598A4 - - thumb_func_start sub_80598E0 -sub_80598E0: @ 80598E0 - push {lr} - ldr r0, =gMain - ldr r1, [r0, 0x4] - ldr r0, =sub_8038420 - cmp r1, r0 - bne _08059906 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08059906 - ldr r0, =gUnknown_0203CE7C - ldrh r1, [r0] - movs r0, 0x1 - bl dp01_build_cmdbuf_x23_aa_0 - bl dp01_tbl1_exec_completed -_08059906: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80598E0 - - thumb_func_start bx_wait_t1 -bx_wait_t1: @ 805991C - push {lr} - ldr r0, =gUnknown_020244B9 - ldrb r0, [r0] - cmp r0, 0 - beq _08059942 - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08059946 -_08059942: - bl dp01_tbl1_exec_completed -_08059946: - pop {r0} - bx r0 - .pool - thumb_func_end bx_wait_t1 - - thumb_func_start bx_blink_t1 -bx_blink_t1: @ 8059958 - push {r4,lr} - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - ldr r2, =gUnknown_02020630 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x20 - bne _080599A4 - movs r3, 0 - movs r0, 0 - strh r0, [r4, 0x30] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - subs r0, 0x5 - ands r0, r1 - strb r0, [r2] - ldr r0, =gUnknown_020244B9 - strb r3, [r0] - bl dp01_tbl1_exec_completed - b _080599CE - .pool -_080599A4: - ldrh r0, [r4, 0x30] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _080599C8 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080599C8: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] -_080599CE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end bx_blink_t1 - - thumb_func_start sub_80599D4 -sub_80599D4: @ 80599D4 - push {r4,lr} - sub sp, 0x4 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08059A02 - ldr r4, =gUnknown_03005D74 - ldrb r0, [r4] - cmp r0, 0 - beq _08059A02 - movs r0, 0x5 - bl audio_play - ldrb r0, [r4] - bl sub_8056BAC - movs r0, 0 - strb r0, [r4] - movs r0, 0 - bl sub_8056B74 -_08059A02: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08059A2C - ldr r4, =gUnknown_03005D74 - ldrb r0, [r4] - cmp r0, 0 - bne _08059A2C - movs r0, 0x5 - bl audio_play - ldrb r0, [r4] - bl sub_8056BAC - movs r0, 0x1 - strb r0, [r4] - movs r0, 0x1 - bl sub_8056B74 -_08059A2C: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _08059A7A - str r2, [sp] - movs r0, 0x18 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl sub_8056A3C - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_03005D74 - ldrb r0, [r0] - cmp r0, 0 - beq _08059A6C - movs r0, 0x1 - movs r1, 0xE - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb - b _08059A76 - .pool -_08059A6C: - movs r0, 0x1 - movs r1, 0xD - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb -_08059A76: - bl dp01_tbl1_exec_completed -_08059A7A: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08059AA0 - movs r0, 0x1 - str r0, [sp] - movs r0, 0x18 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl sub_8056A3C - movs r0, 0x5 - bl audio_play - bl dp01_tbl1_exec_completed -_08059AA0: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80599D4 - - thumb_func_start sub_8059AAC -sub_8059AAC: @ 8059AAC - push {r4-r7,lr} - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - lsls r1, 9 - ldr r3, =gUnknown_02023068 - ldr r2, =gUnknown_03005D78 - movs r0, 0 - strb r0, [r2] - movs r5, 0 - ldr r7, =gUnknown_02022E2C - adds r4, r1, r3 - adds r6, r2, 0 -_08059AC4: - lsls r0, r5, 24 - lsrs r0, 24 - bl battle_menu_cursor_related - ldrh r1, [r4] - movs r0, 0xD - muls r1, r0 - ldr r0, =gMoveNames - adds r1, r0 - adds r0, r7, 0 - bl StringCopy - adds r1, r5, 0x3 - lsls r1, 24 - lsrs r1, 24 - adds r0, r7, 0 - bl battle_show_message_maybe - ldrh r0, [r4] - cmp r0, 0 - beq _08059AF4 - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] -_08059AF4: - adds r4, 0x2 - adds r5, 0x1 - cmp r5, 0x3 - ble _08059AC4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8059AAC - - thumb_func_start sub_8059B18 -sub_8059B18: @ 8059B18 - push {r4,lr} - ldr r4, =gUnknown_02022E2C - ldr r1, =gUnknown_085CCA6F - adds r0, r4, 0 - bl StringCopy - adds r0, r4, 0 - movs r1, 0x7 - bl battle_show_message_maybe - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8059B18 - - thumb_func_start sub_8059B3C -sub_8059B3C: @ 8059B3C - push {r4-r7,lr} - ldr r5, =gUnknown_02023064 - ldr r7, =gUnknown_02024064 - ldrb r0, [r7] - lsls r0, 9 - adds r1, r5, 0x2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08059B98 - bl sub_814FBAC - ldrb r1, [r7] - lsls r4, r1, 9 - adds r0, r5, 0x4 - adds r4, r0 - ldr r6, =gUnknown_02022E2C - ldr r5, =gUnknown_020244B0 - adds r1, r5 - adds r0, r4, 0 - adds r0, 0x8 - ldrb r1, [r1] - adds r0, r1 - ldrb r1, [r0] - adds r0, r6, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - movs r1, 0xBA - strb r1, [r0] - adds r0, 0x1 - ldrb r1, [r7] - adds r1, r5 - adds r4, 0xC - ldrb r1, [r1] - adds r4, r1 - ldrb r1, [r4] - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - adds r0, r6, 0 - movs r1, 0x9 - bl battle_show_message_maybe -_08059B98: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8059B3C - - thumb_func_start sub_8059BB0 -sub_8059BB0: @ 8059BB0 - push {r4-r6,lr} - ldr r5, =gUnknown_02024064 - ldrb r4, [r5] - lsls r4, 9 - ldr r0, =gUnknown_02023068 - adds r4, r0 - ldr r6, =gUnknown_02022E2C - ldr r1, =gUnknown_085CCA73 - adds r0, r6, 0 - bl StringCopy - movs r1, 0xFC - strb r1, [r0] - adds r0, 0x1 - movs r1, 0x6 - strb r1, [r0] - adds r0, 0x1 - movs r1, 0x1 - strb r1, [r0] - adds r0, 0x1 - ldr r3, =gBattleMoves - ldr r2, =gUnknown_020244B0 - ldrb r1, [r5] - adds r1, r2 - ldrb r1, [r1] - lsls r1, 1 - adds r4, r1 - ldrh r2, [r4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r1, 0x2] - lsls r1, r2, 3 - subs r1, r2 - ldr r2, =gTypeNames - adds r1, r2 - bl StringCopy - adds r0, r6, 0 - movs r1, 0xA - bl battle_show_message_maybe - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8059BB0 - - thumb_func_start battle_menu_cursor_related_2 -battle_menu_cursor_related_2: @ 8059C28 - push {lr} - sub sp, 0x10 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - lsls r1, 24 - lsrs r1, 24 - add r2, sp, 0xC - adds r0, r1, 0x1 - strh r0, [r2] - adds r0, r2, 0 - adds r1, 0x2 - strh r1, [r0, 0x2] - movs r1, 0x1 - adds r0, r3, 0 - ands r0, r1 - lsls r2, r0, 3 - adds r2, r0 - adds r2, 0x1 - movs r0, 0x2 - ands r3, r0 - adds r3, 0x37 - str r1, [sp] - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - add r1, sp, 0xC - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, 0 - bl CopyBgTilemapBufferToVram - add sp, 0x10 - pop {r0} - bx r0 - thumb_func_end battle_menu_cursor_related_2 - - thumb_func_start battle_menu_cursor_related -battle_menu_cursor_related: @ 8059C70 - push {lr} - sub sp, 0x10 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - add r0, sp, 0xC - ldr r1, =0x00001016 - strh r1, [r0] - strh r1, [r0, 0x2] - movs r1, 0x1 - adds r0, r3, 0 - ands r0, r1 - lsls r2, r0, 3 - adds r2, r0 - adds r2, 0x1 - movs r0, 0x2 - ands r3, r0 - adds r3, 0x37 - str r1, [sp] - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - add r1, sp, 0xC - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, 0 - bl CopyBgTilemapBufferToVram - add sp, 0x10 - pop {r0} - bx r0 - .pool - thumb_func_end battle_menu_cursor_related - - thumb_func_start sub_8059CB4 -sub_8059CB4: @ 8059CB4 - push {r4,lr} - sub sp, 0x10 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - add r0, sp, 0xC - movs r4, 0x1 - strh r4, [r0] - movs r1, 0x2 - strh r1, [r0, 0x2] - adds r0, r3, 0 - ands r0, r4 - lsls r2, r0, 3 - subs r2, r0 - adds r2, 0x10 - lsls r2, 24 - lsrs r2, 24 - ands r3, r1 - adds r3, 0x23 - str r4, [sp] - str r1, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - add r1, sp, 0xC - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, 0 - bl CopyBgTilemapBufferToVram - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8059CB4 - - thumb_func_start sub_8059CF8 -sub_8059CF8: @ 8059CF8 - push {lr} - sub sp, 0x10 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - add r0, sp, 0xC - ldr r1, =0x00001016 - strh r1, [r0] - strh r1, [r0, 0x2] - movs r1, 0x1 - adds r0, r3, 0 - ands r0, r1 - lsls r2, r0, 3 - subs r2, r0 - adds r2, 0x10 - lsls r2, 24 - lsrs r2, 24 - movs r0, 0x2 - ands r3, r0 - adds r3, 0x23 - str r1, [sp] - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - add r1, sp, 0xC - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, 0 - bl CopyBgTilemapBufferToVram - add sp, 0x10 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8059CF8 - - thumb_func_start sub_8059D40 -sub_8059D40: @ 8059D40 - push {lr} - ldr r0, =sub_80A92F8 - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8059D40 - - thumb_func_start sub_8059D50 -sub_8059D50: @ 8059D50 - push {lr} - ldr r0, =sub_80A92F8 - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8059D50 - - thumb_func_start sub_8059D60 -sub_8059D60: @ 8059D60 - push {lr} - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _08059D82 - bl dp01_tbl1_exec_completed -_08059D82: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8059D60 - - thumb_func_start bx_8030B2C -bx_8030B2C: @ 8059D90 - push {lr} - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _08059DB2 - bl dp01_tbl1_exec_completed -_08059DB2: - pop {r0} - bx r0 - .pool - thumb_func_end bx_8030B2C - - thumb_func_start b_link_standby_message -b_link_standby_message: @ 8059DC0 - push {lr} - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08059DE0 - ldr r0, =gUnknown_02022E14 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_02022E16 - strh r1, [r0] - ldr r0, =gUnknown_085CCA29 - movs r1, 0 - bl battle_show_message_maybe -_08059DE0: - pop {r0} - bx r0 - .pool - thumb_func_end b_link_standby_message - - thumb_func_start dp01t_00_1_getattr -dp01t_00_1_getattr: @ 8059DF4 - push {r4-r6,lr} - sub sp, 0x100 - movs r6, 0 - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - bne _08059E2C - ldr r0, =gUnknown_0202406E - lsls r1, r2, 1 - adds r1, r0 - ldrb r0, [r1] - mov r1, sp - bl dp01_getattr_by_ch1_for_player_pokemon_ - adds r6, r0, 0 - b _08059E4E - .pool -_08059E2C: - ldrb r4, [r1] - movs r5, 0 -_08059E30: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _08059E46 - lsls r0, r5, 24 - lsrs r0, 24 - mov r2, sp - adds r1, r2, r6 - bl dp01_getattr_by_ch1_for_player_pokemon_ - adds r6, r0 -_08059E46: - lsrs r4, 1 - adds r5, 0x1 - cmp r5, 0x5 - ble _08059E30 -_08059E4E: - lsls r1, r6, 16 - lsrs r1, 16 - movs r0, 0x1 - mov r2, sp - bl dp01_build_cmdbuf_x1D_1D_numargs_varargs - bl dp01_tbl1_exec_completed - add sp, 0x100 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end dp01t_00_1_getattr - - thumb_func_start dp01_getattr_by_ch1_for_player_pokemon_ -dp01_getattr_by_ch1_for_player_pokemon_: @ 8059E68 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x90 - adds r7, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - ldr r2, =gUnknown_02023064 - ldr r3, =gUnknown_02024064 - ldrb r0, [r3] - lsls r0, 9 - adds r1, r2, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3B - bls _08059E92 - bl _0805A5FE -_08059E92: - lsls r0, 2 - ldr r1, =_08059EA8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08059EA8: - .4byte _08059F98 - .4byte _0805A1BC - .4byte _0805A1CC - .4byte _0805A1DC - .4byte _0805A244 - .4byte _0805A244 - .4byte _0805A244 - .4byte _0805A244 - .4byte _0805A260 - .4byte _0805A29C - .4byte _0805A29C - .4byte _0805A29C - .4byte _0805A29C - .4byte _0805A5FE - .4byte _0805A5FE - .4byte _0805A5FE - .4byte _0805A5FE - .4byte _0805A2B8 - .4byte _0805A2C8 - .4byte _0805A2F8 - .4byte _0805A308 - .4byte _0805A318 - .4byte _0805A328 - .4byte _0805A338 - .4byte _0805A348 - .4byte _0805A358 - .4byte _0805A368 - .4byte _0805A378 - .4byte _0805A388 - .4byte _0805A398 - .4byte _0805A3A8 - .4byte _0805A3B8 - .4byte _0805A408 - .4byte _0805A418 - .4byte _0805A428 - .4byte _0805A438 - .4byte _0805A448 - .4byte _0805A458 - .4byte _0805A468 - .4byte _0805A478 - .4byte _0805A488 - .4byte _0805A4BC - .4byte _0805A4CC - .4byte _0805A4DC - .4byte _0805A4EC - .4byte _0805A4FC - .4byte _0805A50C - .4byte _0805A51C - .4byte _0805A52C - .4byte _0805A54C - .4byte _0805A55C - .4byte _0805A56C - .4byte _0805A57C - .4byte _0805A58C - .4byte _0805A59C - .4byte _0805A5AC - .4byte _0805A5BC - .4byte _0805A5CC - .4byte _0805A5DC - .4byte _0805A5EC -_08059F98: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - mov r1, sp - strh r0, [r1] - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2E] - movs r6, 0 - add r0, sp, 0x24 - mov r9, r0 - movs r1, 0x3B - add r1, sp - mov r10, r1 - mov r2, sp - adds r2, 0x2B - str r2, [sp, 0x80] - mov r0, sp - adds r0, 0x2A - str r0, [sp, 0x7C] - mov r1, sp - adds r1, 0x68 - str r1, [sp, 0x8C] - adds r2, 0x5 - str r2, [sp, 0x84] - adds r0, 0x12 - str r0, [sp, 0x88] - mov r8, r4 - add r4, sp, 0xC -_08059FE4: - adds r1, r6, 0 - adds r1, 0xD - mov r0, r8 - bl GetMonData - strh r0, [r4] - adds r1, r6, 0 - adds r1, 0x11 - mov r0, r8 - bl GetMonData - mov r2, r9 - adds r1, r2, r6 - strb r0, [r1] - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _08059FE4 - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x15 - bl GetMonData - mov r1, r10 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - ldr r2, [sp, 0x80] - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x19 - bl GetMonData - str r0, [sp, 0x44] - adds r0, r4, 0 - movs r1, 0x27 - bl GetMonData - mov r3, sp - movs r5, 0x1F - ands r0, r5 - ldrb r2, [r3, 0x14] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x14] - adds r0, r4, 0 - movs r1, 0x28 - bl GetMonData - mov r3, sp - movs r6, 0x1F - ands r0, r6 - lsls r0, 5 - ldrh r2, [r3, 0x14] - ldr r1, =0xfffffc1f - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x14] - adds r0, r4, 0 - movs r1, 0x29 - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, 2 - ldrb r2, [r3, 0x15] - movs r1, 0x7D - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x15] - adds r0, r4, 0 - movs r1, 0x2A - bl GetMonData - movs r1, 0x1F - ands r1, r0 - lsls r1, 15 - ldr r0, [sp, 0x14] - ldr r2, =0xfff07fff - ands r0, r2 - orrs r0, r1 - str r0, [sp, 0x14] - adds r0, r4, 0 - movs r1, 0x2B - bl GetMonData - mov r3, sp - ands r0, r6 - lsls r0, 4 - ldrh r2, [r3, 0x16] - ldr r1, =0xfffffe0f - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x16] - adds r0, r4, 0 - movs r1, 0x2C - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, 1 - ldrb r2, [r3, 0x17] - movs r1, 0x3F - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - str r0, [sp, 0x48] - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - str r0, [sp, 0x4C] - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - ldr r1, [sp, 0x7C] - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - mov r1, sp - strh r0, [r1, 0x28] - adds r0, r4, 0 - movs r1, 0x3A - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2C] - adds r0, r4, 0 - movs r1, 0x3B - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2] - adds r0, r4, 0 - movs r1, 0x3C - bl GetMonData - mov r1, sp - strh r0, [r1, 0x4] - adds r0, r4, 0 - movs r1, 0x3D - bl GetMonData - mov r1, sp - strh r0, [r1, 0x6] - adds r0, r4, 0 - movs r1, 0x3E - bl GetMonData - mov r1, sp - strh r0, [r1, 0x8] - adds r0, r4, 0 - movs r1, 0x3F - bl GetMonData - mov r1, sp - strh r0, [r1, 0xA] - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - mov r3, sp - movs r1, 0x1 - ands r0, r1 - lsls r0, 6 - ldrb r2, [r3, 0x17] - movs r1, 0x41 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0x2E - bl GetMonData - mov r3, sp - lsls r0, 7 - ldrb r2, [r3, 0x17] - movs r1, 0x7F - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - str r0, [sp, 0x54] - adds r0, r4, 0 - movs r1, 0x2 - ldr r2, [sp, 0x8C] - bl GetMonData - ldr r0, [sp, 0x84] - ldr r1, [sp, 0x8C] - bl StringCopy10 - adds r0, r4, 0 - movs r1, 0x7 - ldr r2, [sp, 0x88] - bl GetMonData - mov r2, sp - movs r6, 0 -_0805A19C: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, 0x1 - cmp r6, 0x57 - bls _0805A19C - b _0805A5FE - .pool -_0805A1BC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - b _0805A536 - .pool -_0805A1CC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xC - b _0805A536 - .pool -_0805A1DC: - movs r6, 0 - add r2, sp, 0x58 - mov r9, r2 - add r0, sp, 0x60 - mov r10, r0 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - mov r8, r9 -_0805A1F2: - adds r1, r6, 0 - adds r1, 0xD - adds r0, r4, 0 - bl GetMonData - mov r1, r8 - strh r0, [r1] - adds r1, r6, 0 - adds r1, 0x11 - adds r0, r4, 0 - bl GetMonData - mov r2, r10 - adds r1, r2, r6 - strb r0, [r1] - movs r0, 0x2 - add r8, r0 - adds r6, 0x1 - cmp r6, 0x3 - ble _0805A1F2 - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x15 - bl GetMonData - mov r1, r9 - strb r0, [r1, 0xC] - mov r2, r9 - movs r6, 0 -_0805A230: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, 0x1 - cmp r6, 0xF - bls _0805A230 - b _0805A5FE - .pool -_0805A244: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldrb r1, [r3] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r1, 0x9 - b _0805A536 - .pool -_0805A260: - movs r6, 0 - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r2, =gPlayerParty - mov r8, r2 -_0805A26C: - adds r1, r6, 0 - adds r1, 0x11 - mov r2, r8 - adds r0, r4, r2 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, 0x1 - cmp r6, 0x3 - ble _0805A26C - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x15 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, 0x1 - b _0805A5FE - .pool -_0805A29C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldrb r1, [r3] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r1, 0x8 - b _0805A5F6 - .pool -_0805A2B8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1 - b _0805A2D2 - .pool -_0805A2C8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x19 -_0805A2D2: - bl GetMonData - adds r1, r0, 0 - strb r1, [r7] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r7, 0x2] - movs r6, 0x3 - b _0805A5FE - .pool -_0805A2F8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1A - b _0805A5F6 - .pool -_0805A308: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1B - b _0805A5F6 - .pool -_0805A318: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1C - b _0805A5F6 - .pool -_0805A328: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1D - b _0805A5F6 - .pool -_0805A338: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1E - b _0805A5F6 - .pool -_0805A348: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1F - b _0805A5F6 - .pool -_0805A358: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x20 - b _0805A5F6 - .pool -_0805A368: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x22 - b _0805A5F6 - .pool -_0805A378: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x23 - b _0805A5F6 - .pool -_0805A388: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x24 - b _0805A5F6 - .pool -_0805A398: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x25 - b _0805A5F6 - .pool -_0805A3A8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x26 - b _0805A5F6 - .pool -_0805A3B8: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x27 - bl GetMonData - strb r0, [r7] - adds r0, r4, 0 - movs r1, 0x28 - bl GetMonData - strb r0, [r7, 0x1] - adds r0, r4, 0 - movs r1, 0x29 - bl GetMonData - strb r0, [r7, 0x2] - adds r0, r4, 0 - movs r1, 0x2A - bl GetMonData - strb r0, [r7, 0x3] - adds r0, r4, 0 - movs r1, 0x2B - bl GetMonData - strb r0, [r7, 0x4] - adds r0, r4, 0 - movs r1, 0x2C - bl GetMonData - strb r0, [r7, 0x5] - movs r6, 0x6 - b _0805A5FE - .pool -_0805A408: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x27 - b _0805A5F6 - .pool -_0805A418: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x28 - b _0805A5F6 - .pool -_0805A428: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x29 - b _0805A5F6 - .pool -_0805A438: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2A - b _0805A5F6 - .pool -_0805A448: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2B - b _0805A5F6 - .pool -_0805A458: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2C - b _0805A5F6 - .pool -_0805A468: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0 - b _0805A492 - .pool -_0805A478: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x9 - b _0805A536 - .pool -_0805A488: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x37 -_0805A492: - bl GetMonData - adds r1, r0, 0 - strb r1, [r7] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r7, 0x2] - lsrs r0, r1, 24 - strb r0, [r7, 0x3] - movs r6, 0x4 - b _0805A5FE - .pool -_0805A4BC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x38 - b _0805A5F6 - .pool -_0805A4CC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x39 - b _0805A536 - .pool -_0805A4DC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3A - b _0805A536 - .pool -_0805A4EC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3B - b _0805A536 - .pool -_0805A4FC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3C - b _0805A536 - .pool -_0805A50C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3D - b _0805A536 - .pool -_0805A51C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3E - b _0805A536 - .pool -_0805A52C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3F -_0805A536: - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - strb r0, [r7] - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r6, 0x2 - b _0805A5FE - .pool -_0805A54C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x16 - b _0805A5F6 - .pool -_0805A55C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x17 - b _0805A5F6 - .pool -_0805A56C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x18 - b _0805A5F6 - .pool -_0805A57C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x21 - b _0805A5F6 - .pool -_0805A58C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2F - b _0805A5F6 - .pool -_0805A59C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x30 - b _0805A5F6 - .pool -_0805A5AC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x32 - b _0805A5F6 - .pool -_0805A5BC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x33 - b _0805A5F6 - .pool -_0805A5CC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x34 - b _0805A5F6 - .pool -_0805A5DC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x35 - b _0805A5F6 - .pool -_0805A5EC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x36 -_0805A5F6: - bl GetMonData - strb r0, [r7] - movs r6, 0x1 -_0805A5FE: - adds r0, r6, 0 - add sp, 0x90 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end dp01_getattr_by_ch1_for_player_pokemon_ - - thumb_func_start sub_805A614 -sub_805A614: @ 805A614 - push {r4-r7,lr} - sub sp, 0x58 - ldr r2, =gUnknown_0202406E - ldr r5, =gUnknown_02024064 - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - adds r4, r2, 0 - muls r4, r0 - ldr r3, =gUnknown_02023064 - lsls r1, 9 - adds r0, r3, 0x1 - adds r0, r1, r0 - ldrb r2, [r0] - ldr r0, =gPlayerParty - adds r0, r2, r0 - adds r6, r4, r0 - mov r0, sp - adds r4, r0, r2 - movs r2, 0 - adds r0, r3, 0x2 - adds r1, r0 - adds r7, r5, 0 - mov r12, r3 - ldrb r1, [r1] - cmp r2, r1 - bcs _0805A66A - adds r3, r0, 0 -_0805A650: - adds r1, r4, r2 - adds r0, r6, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r5] - lsls r0, 9 - adds r0, r3 - ldrb r0, [r0] - cmp r2, r0 - bcc _0805A650 -_0805A66A: - ldrb r0, [r7] - lsls r0, 9 - mov r1, r12 - adds r1, 0x2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - adds r2, r4, 0 - bl dp01_build_cmdbuf_x1D_1D_numargs_varargs - bl dp01_tbl1_exec_completed - add sp, 0x58 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805A614 - - thumb_func_start dp01t_02_1_setattr -dp01t_02_1_setattr: @ 805A69C - push {r4,r5,lr} - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - bne _0805A6CC - ldr r0, =gUnknown_0202406E - lsls r1, r2, 1 - adds r1, r0 - ldrb r0, [r1] - bl dp01_setattr_by_ch1_for_player_pokemon - b _0805A6EA - .pool -_0805A6CC: - ldrb r4, [r1] - movs r5, 0 -_0805A6D0: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _0805A6DE - adds r0, r5, 0 - bl dp01_setattr_by_ch1_for_player_pokemon -_0805A6DE: - lsrs r4, 1 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _0805A6D0 -_0805A6EA: - bl dp01_tbl1_exec_completed - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end dp01t_02_1_setattr - - thumb_func_start dp01_setattr_by_ch1_for_player_pokemon -dp01_setattr_by_ch1_for_player_pokemon: @ 805A6F4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x34 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 9 - ldr r2, =gUnknown_02023067 - adds r3, r0, r2 - adds r6, r3, 0 - subs r1, r2, 0x2 - adds r0, r1 - ldrb r0, [r0] - adds r7, r2, 0 - cmp r0, 0x3B - bls _0805A720 - bl _0805B0BA -_0805A720: - lsls r0, 2 - ldr r1, =_0805A738 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0805A738: - .4byte _0805A828 - .4byte _0805A9C0 - .4byte _0805A9E0 - .4byte _0805AA00 - .4byte _0805AA58 - .4byte _0805AA58 - .4byte _0805AA58 - .4byte _0805AA58 - .4byte _0805AA80 - .4byte _0805AAE4 - .4byte _0805AAE4 - .4byte _0805AAE4 - .4byte _0805AAE4 - .4byte _0805B0BA - .4byte _0805B0BA - .4byte _0805B0BA - .4byte _0805B0BA - .4byte _0805AB14 - .4byte _0805AB34 - .4byte _0805AB54 - .4byte _0805AB74 - .4byte _0805AB94 - .4byte _0805ABB4 - .4byte _0805ABD4 - .4byte _0805ABF4 - .4byte _0805AC14 - .4byte _0805AC34 - .4byte _0805AC54 - .4byte _0805AC74 - .4byte _0805AC94 - .4byte _0805ACB4 - .4byte _0805ACD4 - .4byte _0805AD44 - .4byte _0805AD64 - .4byte _0805AD84 - .4byte _0805ADA4 - .4byte _0805ADC4 - .4byte _0805ADE4 - .4byte _0805AE04 - .4byte _0805AE24 - .4byte _0805AE44 - .4byte _0805AE64 - .4byte _0805AE84 - .4byte _0805AEA4 - .4byte _0805AEC4 - .4byte _0805AEE4 - .4byte _0805AF04 - .4byte _0805AF24 - .4byte _0805AF44 - .4byte _0805AF64 - .4byte _0805AF84 - .4byte _0805AFA4 - .4byte _0805AFC4 - .4byte _0805AFE4 - .4byte _0805B004 - .4byte _0805B024 - .4byte _0805B044 - .4byte _0805B064 - .4byte _0805B084 - .4byte _0805B0A4 -_0805A828: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - adds r2, r6, 0 - bl pokemon_setattr - adds r2, r6, 0 - adds r2, 0x2E - adds r0, r4, 0 - movs r1, 0xC - bl pokemon_setattr - movs r0, 0 - mov r8, r0 - movs r0, 0x3B - adds r0, r6 - mov r10, r0 - adds r0, r6, 0 - adds r0, 0x2B - str r0, [sp, 0x20] - adds r0, 0x19 - str r0, [sp, 0x28] - adds r0, 0x4 - str r0, [sp, 0x2C] - adds r0, 0x4 - str r0, [sp, 0x30] - subs r0, 0x22 - str r0, [sp, 0x1C] - subs r0, 0x2 - str r0, [sp, 0x18] - adds r0, 0x4 - str r0, [sp, 0x24] - adds r0, r6, 0x2 - str r0, [sp, 0x4] - adds r0, r6, 0x4 - str r0, [sp, 0x8] - adds r0, r6, 0x6 - str r0, [sp, 0xC] - adds r0, 0x2 - str r0, [sp, 0x10] - adds r0, 0x2 - str r0, [sp, 0x14] - mov r9, r4 - adds r7, r6, 0 - adds r7, 0x24 - adds r4, r6, 0 - adds r4, 0xC -_0805A88E: - mov r1, r8 - adds r1, 0xD - mov r0, r9 - adds r2, r4, 0 - bl pokemon_setattr - mov r1, r8 - adds r1, 0x11 - mov r0, r9 - adds r2, r7, 0 - bl pokemon_setattr - adds r7, 0x1 - adds r4, 0x2 - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x3 - ble _0805A88E - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x15 - mov r2, r10 - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x20 - ldr r2, [sp, 0x20] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x19 - ldr r2, [sp, 0x28] - bl pokemon_setattr - ldrb r0, [r6, 0x14] - lsls r0, 27 - lsrs r0, 27 - mov r1, sp - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x27 - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrh r0, [r6, 0x14] - lsls r0, 22 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x28 - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrb r0, [r6, 0x15] - lsls r0, 25 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x29 - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldr r0, [r6, 0x14] - lsls r0, 12 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2A - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrh r0, [r6, 0x16] - lsls r0, 23 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2B - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrb r0, [r6, 0x17] - lsls r0, 26 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2C - mov r2, sp - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0 - ldr r2, [sp, 0x2C] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x37 - ldr r2, [sp, 0x30] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x38 - ldr r2, [sp, 0x1C] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x39 - ldr r2, [sp, 0x18] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3A - ldr r2, [sp, 0x24] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3B - ldr r2, [sp, 0x4] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3C - ldr r2, [sp, 0x8] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3D - ldr r2, [sp, 0xC] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3E - ldr r2, [sp, 0x10] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3F - ldr r2, [sp, 0x14] - bl pokemon_setattr - b _0805B0BA - .pool -_0805A9C0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0xB - bl pokemon_setattr - b _0805B0BA - .pool -_0805A9E0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0xC - bl pokemon_setattr - b _0805B0BA - .pool -_0805AA00: - movs r0, 0 - mov r8, r0 - movs r0, 0xC - adds r0, r3 - mov r9, r0 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r7, r1, r0 - adds r6, r3, 0 - adds r6, 0x8 - adds r4, r3, 0 -_0805AA1A: - mov r1, r8 - adds r1, 0xD - adds r0, r7, 0 - adds r2, r4, 0 - bl pokemon_setattr - mov r1, r8 - adds r1, 0x11 - adds r0, r7, 0 - adds r2, r6, 0 - bl pokemon_setattr - adds r6, 0x1 - adds r4, 0x2 - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x3 - ble _0805AA1A - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x15 - mov r2, r9 - bl pokemon_setattr - b _0805B0BA - .pool -_0805AA58: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r3, =gUnknown_02023064 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, 0x9 - b _0805AAFC - .pool -_0805AA80: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - lsls r2, 9 - adds r2, r7 - adds r0, r4, 0 - movs r1, 0x11 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x1 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x12 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x2 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x13 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x3 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x14 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x4 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x15 - bl pokemon_setattr - b _0805B0BA - .pool -_0805AAE4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r3, =gUnknown_02023064 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, 0x8 -_0805AAFC: - adds r3, 0x3 - adds r2, r3 - bl pokemon_setattr - b _0805B0BA - .pool -_0805AB14: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1 - bl pokemon_setattr - b _0805B0BA - .pool -_0805AB34: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x19 - bl pokemon_setattr - b _0805B0BA - .pool -_0805AB54: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1A - bl pokemon_setattr - b _0805B0BA - .pool -_0805AB74: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1B - bl pokemon_setattr - b _0805B0BA - .pool -_0805AB94: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1C - bl pokemon_setattr - b _0805B0BA - .pool -_0805ABB4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1D - bl pokemon_setattr - b _0805B0BA - .pool -_0805ABD4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1E - bl pokemon_setattr - b _0805B0BA - .pool -_0805ABF4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1F - bl pokemon_setattr - b _0805B0BA - .pool -_0805AC14: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x20 - bl pokemon_setattr - b _0805B0BA - .pool -_0805AC34: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x22 - bl pokemon_setattr - b _0805B0BA - .pool -_0805AC54: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x23 - bl pokemon_setattr - b _0805B0BA - .pool -_0805AC74: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x24 - bl pokemon_setattr - b _0805B0BA - .pool -_0805AC94: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x25 - bl pokemon_setattr - b _0805B0BA - .pool -_0805ACB4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x26 - bl pokemon_setattr - b _0805B0BA - .pool -_0805ACD4: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - lsls r2, 9 - adds r2, r7 - adds r0, r4, 0 - movs r1, 0x27 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x1 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x28 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x2 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x29 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x3 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x2A - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x4 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x2B - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x5 - adds r2, r0 - adds r0, r4, 0 - b _0805ADF4 - .pool -_0805AD44: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x27 - bl pokemon_setattr - b _0805B0BA - .pool -_0805AD64: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x28 - bl pokemon_setattr - b _0805B0BA - .pool -_0805AD84: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x29 - bl pokemon_setattr - b _0805B0BA - .pool -_0805ADA4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x2A - bl pokemon_setattr - b _0805B0BA - .pool -_0805ADC4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x2B - bl pokemon_setattr - b _0805B0BA - .pool -_0805ADE4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 -_0805ADF4: - movs r1, 0x2C - bl pokemon_setattr - b _0805B0BA - .pool -_0805AE04: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0 - bl pokemon_setattr - b _0805B0BA - .pool -_0805AE24: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x9 - bl pokemon_setattr - b _0805B0BA - .pool -_0805AE44: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x37 - bl pokemon_setattr - b _0805B0BA - .pool -_0805AE64: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x38 - bl pokemon_setattr - b _0805B0BA - .pool -_0805AE84: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x39 - bl pokemon_setattr - b _0805B0BA - .pool -_0805AEA4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3A - bl pokemon_setattr - b _0805B0BA - .pool -_0805AEC4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3B - bl pokemon_setattr - b _0805B0BA - .pool -_0805AEE4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3C - bl pokemon_setattr - b _0805B0BA - .pool -_0805AF04: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3D - bl pokemon_setattr - b _0805B0BA - .pool -_0805AF24: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3E - bl pokemon_setattr - b _0805B0BA - .pool -_0805AF44: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3F - bl pokemon_setattr - b _0805B0BA - .pool -_0805AF64: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x16 - bl pokemon_setattr - b _0805B0BA - .pool -_0805AF84: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x17 - bl pokemon_setattr - b _0805B0BA - .pool -_0805AFA4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x18 - bl pokemon_setattr - b _0805B0BA - .pool -_0805AFC4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x21 - bl pokemon_setattr - b _0805B0BA - .pool -_0805AFE4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x2F - bl pokemon_setattr - b _0805B0BA - .pool -_0805B004: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x30 - bl pokemon_setattr - b _0805B0BA - .pool -_0805B024: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x32 - bl pokemon_setattr - b _0805B0BA - .pool -_0805B044: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x33 - bl pokemon_setattr - b _0805B0BA - .pool -_0805B064: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x34 - bl pokemon_setattr - b _0805B0BA - .pool -_0805B084: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x35 - bl pokemon_setattr - b _0805B0BA - .pool -_0805B0A4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x36 - bl pokemon_setattr -_0805B0BA: - ldr r2, =gUnknown_0202406E - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, =gPlayerParty - adds r0, r2 - bl sub_805E990 - add sp, 0x34 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end dp01_setattr_by_ch1_for_player_pokemon - - thumb_func_start sub_805B0F0 -sub_805B0F0: @ 805B0F0 - push {r4-r7,lr} - ldr r1, =gUnknown_0202406E - ldr r7, =gUnknown_02024064 - ldrb r2, [r7] - lsls r0, r2, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - adds r3, r1, 0 - muls r3, r0 - ldr r4, =gUnknown_02023064 - lsls r2, 9 - adds r0, r4, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - ldr r1, =gPlayerParty - adds r0, r1 - adds r5, r3, r0 - movs r3, 0 - adds r0, r4, 0x2 - adds r2, r0 - ldrb r2, [r2] - cmp r3, r2 - bcs _0805B148 - adds r6, r4, 0 - adds r2, r7, 0 - adds r4, r0, 0 -_0805B126: - adds r1, r5, r3 - ldrb r0, [r2] - lsls r0, 9 - adds r0, 0x3 - adds r0, r3, r0 - adds r0, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r0, [r2] - lsls r0, 9 - adds r0, r4 - ldrb r0, [r0] - cmp r3, r0 - bcc _0805B126 -_0805B148: - bl dp01_tbl1_exec_completed - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805B0F0 - - thumb_func_start sub_805B164 -sub_805B164: @ 805B164 - push {r4,lr} - ldr r2, =gUnknown_0202406E - ldr r4, =gUnknown_02024064 - ldrb r1, [r4] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, =gPlayerParty - adds r0, r2 - bl sub_805DD7C - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 - ldrb r3, [r4] - adds r0, r3, r0 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_0802E404 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805B164 - - thumb_func_start sub_805B1CC -sub_805B1CC: @ 805B1CC - push {r4-r6,lr} - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - ldr r4, =gUnknown_02023064 - lsls r1, r0, 9 - adds r6, r4, 0x2 - adds r1, r6 - ldrb r1, [r1] - bl sub_805EF84 - ldr r2, =gUnknown_0202406E - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r2 - lsls r0, 9 - adds r4, 0x1 - adds r0, r4 - ldrb r0, [r0] - movs r4, 0 - strh r0, [r1] - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, =gPlayerParty - adds r0, r2 - bl sub_805DD7C - ldr r1, =gUnknown_020244AC - ldrb r0, [r5] - adds r0, r1 - strb r4, [r0] - ldr r1, =gUnknown_020244B0 - ldrb r0, [r5] - adds r0, r1 - strb r4, [r0] - ldrb r0, [r5] - lsls r1, r0, 9 - adds r1, r6 - ldrb r1, [r1] - bl sub_805B258 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_805902C - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805B1CC - - thumb_func_start sub_805B258 -sub_805B258: @ 805B258 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_805EF84 - ldr r0, =gUnknown_0202406E - lsls r2, r6, 1 - adds r2, r0 - ldr r0, =gUnknown_02023064 - lsls r1, r6, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - strh r0, [r2] - ldrh r1, [r2] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - mov r8, r0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r0, =sub_805D714 - bl CreateInvisibleSpriteWithCallback - ldr r1, =gUnknown_03005D7C - mov r9, r1 - add r9, r6 - mov r1, r9 - strb r0, [r1] - adds r0, r6, 0 - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl sub_806A068 - ldr r0, =gUnknown_0202499C - mov r10, r0 - adds r0, r6, 0 - movs r1, 0x2 - bl sub_80A5C6C - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r6, 0 - bl sub_80A6138 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r10 - adds r1, r5, 0 - adds r2, r4, 0 - bl AddObjectToFront - ldr r4, =gUnknown_020241E4 - adds r4, r6, r4 - strb r0, [r4] - ldr r5, =gUnknown_02020630 - mov r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r4] - strh r1, [r0, 0x30] - mov r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x32] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x2E] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r8 - strh r1, [r0, 0x32] - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, r6, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =gUnknown_020244E4 - adds r6, r1 - ldrb r1, [r6] - bl StartObjectImageAnim - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =DummyObjectCallback - str r1, [r0] - movs r0, 0 - movs r1, 0xFF - bl sub_80753E8 - mov r1, r9 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r5 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x2E] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805B258 - - thumb_func_start sub_805B3D4 -sub_805B3D4: @ 805B3D4 - push {r4-r6,lr} - ldr r1, =gUnknown_02023064 - ldr r6, =gUnknown_02024064 - ldrb r2, [r6] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r3, [r0] - cmp r3, 0 - bne _0805B41C - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - strb r3, [r0, 0x4] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_805B464 - str r1, [r0] - b _0805B452 - .pool -_0805B41C: - ldr r5, =gUnknown_020241E4 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - bl obj_free_rotscale_entry - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl RemoveObjectAndFreeTiles - ldr r1, =gUnknown_03005D70 - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl sub_8072984 - bl dp01_tbl1_exec_completed -_0805B452: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805B3D4 - - thumb_func_start sub_805B464 -sub_805B464: @ 805B464 - push {r4-r6,lr} - ldr r6, =gUnknown_020244D0 - ldr r4, [r6] - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - ldr r1, [r4, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r1 - ldrb r0, [r3, 0x4] - cmp r0, 0 - beq _0805B48C - cmp r0, 0x1 - beq _0805B4BA - b _0805B4E2 - .pool -_0805B48C: - ldr r1, [r4] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0805B4A6 - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_0805B4A6: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0, 0x4] - b _0805B4E2 -_0805B4BA: - ldrb r1, [r3] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0805B4E2 - strb r0, [r3, 0x4] - ldrb r2, [r5] - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x1 - bl move_anim_start_t4 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8059744 - str r1, [r0] -_0805B4E2: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805B464 - - thumb_func_start sub_805B4F0 -sub_805B4F0: @ 805B4F0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0805B5B4 - bl link_get_multiplayer_id - ldr r5, =gUnknown_020229E8 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r5 - movs r4, 0xFF - ldrb r0, [r1] - cmp r0, 0x4 - beq _0805B538 - bl link_get_multiplayer_id - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r5 - ldrh r1, [r1] - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0x5 - bne _0805B558 -_0805B538: - bl link_get_multiplayer_id - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r0, [r1, 0x13] - adds r4, r0, 0x2 - b _0805B5BA - .pool -_0805B558: - bl link_get_multiplayer_id - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r5 - ldrh r1, [r1] - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0x2 - beq _0805B58A - bl link_get_multiplayer_id - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r5 - ldrh r0, [r1] - ands r4, r0 - cmp r4, 0x1 - bne _0805B5A0 -_0805B58A: - bl link_get_multiplayer_id - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r0, [r1, 0x13] - adds r4, r0, 0x4 - b _0805B5BA -_0805B5A0: - bl link_get_multiplayer_id - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r4, [r1, 0x13] - b _0805B5BA -_0805B5B4: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r4, [r0, 0x8] -_0805B5BA: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r2, 0x40 - ands r1, r2 - adds r5, r0, 0 - cmp r1, 0 - beq _0805B63C - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl battle_get_per_side_status - movs r1, 0x2 - ands r1, r0 - movs r0, 0x20 - mov r9, r0 - cmp r1, 0 - beq _0805B5E0 - movs r1, 0x5A - mov r9, r1 -_0805B5E0: - ldr r0, [r5] - movs r1, 0x80 - lsls r1, 15 - ands r0, r1 - cmp r0, 0 - beq _0805B618 - ldr r0, =gUnknown_02038BCE - ldrh r1, [r0] - ldr r0, =0x00000c03 - cmp r1, r0 - beq _0805B618 - movs r0, 0x5A - mov r9, r0 - ldr r1, =gUnknown_083054E0 - b _0805B642 - .pool -_0805B618: - ldr r1, =gUnknown_08305D2C - lsls r0, r4, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x8 - subs r0, r1 - lsls r0, 18 - movs r1, 0xA0 - lsls r1, 15 - adds r0, r1 - lsrs r7, r0, 16 - ldr r5, =gBattleTypeFlags - b _0805B656 - .pool -_0805B63C: - movs r0, 0x50 - mov r9, r0 - ldr r1, =gUnknown_08305D2C -_0805B642: - lsls r0, r4, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x8 - subs r0, r1 - lsls r0, 18 - movs r1, 0xA0 - lsls r1, 15 - adds r0, r1 - lsrs r7, r0, 16 -_0805B656: - ldr r0, [r5] - movs r1, 0x80 - lsls r1, 15 - ands r0, r1 - cmp r0, 0 - bne _0805B664 - b _0805B794 -_0805B664: - ldr r0, =gUnknown_02038BCE - ldrh r1, [r0] - ldr r0, =0x00000c03 - cmp r1, r0 - bne _0805B670 - b _0805B794 -_0805B670: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - bl sub_806F000 - lsls r0, 16 - lsrs r4, r0, 16 - adds r5, r4, 0 - ldr r6, =gUnknown_02024064 - ldrb r1, [r6] - adds r0, r5, 0 - bl sub_805DF38 - ldrb r0, [r6] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl sub_806A1C0 - ldr r0, =gUnknown_0202499C - mov r8, r0 - lsls r4, r7, 16 - asrs r4, 16 - ldrb r0, [r6] - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r8 - mov r1, r9 - adds r2, r4, 0 - bl AddObjectToFront - ldr r4, =gUnknown_020241E4 - ldrb r1, [r6] - adds r1, r4 - strb r0, [r1] - ldr r0, =gTrainerFrontPicPaletteTable - lsls r5, 3 - adds r5, r0 - ldrh r0, [r5, 0x4] - bl IndexOfObjectPaletteTag - ldr r5, =gUnknown_02020630 - ldrb r1, [r6] - adds r1, r4 - ldrb r1, [r1] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r5 - lsls r0, 4 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - orrs r1, r0 - strb r1, [r2, 0x5] - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0xF0 - strh r1, [r0, 0x24] - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x30 - strh r1, [r0, 0x26] - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =0x0000fffe - strh r1, [r0, 0x2E] - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_805D7AC - str r1, [r0] - ldrb r0, [r6] - adds r0, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r2, [r1, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3F - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - b _0805B82A - .pool -_0805B794: - ldr r5, =gUnknown_02024064 - ldrb r1, [r5] - adds r0, r4, 0 - bl sub_805DF84 - ldrb r0, [r5] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl template_build_for_pokemon_or_trainer - ldr r6, =gUnknown_0202499C - mov r8, r9 - lsls r4, r7, 16 - asrs r4, 16 - ldrb r0, [r5] - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r6, 0 - mov r1, r8 - adds r2, r4, 0 - bl AddObjectToFront - ldr r6, =gUnknown_020241E4 - ldrb r1, [r5] - adds r1, r6 - strb r0, [r1] - ldr r4, =gUnknown_02020630 - ldrb r3, [r5] - adds r0, r3, r6 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xF0 - strh r1, [r0, 0x24] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =0x0000fffe - strh r1, [r0, 0x2E] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, =sub_805D7AC - str r1, [r0] -_0805B82A: - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8058844 - str r1, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805B4F0 - - thumb_func_start dp01t_08_1_8032428 -dp01t_08_1_8032428: @ 805B864 - push {r4-r6,lr} - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0805B920 - bl link_get_multiplayer_id - ldr r5, =gUnknown_020229E8 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r5 - movs r4, 0xFF - ldrb r0, [r1] - cmp r0, 0x4 - beq _0805B8A6 - bl link_get_multiplayer_id - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r5 - ldrh r1, [r1] - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0x5 - bne _0805B8C4 -_0805B8A6: - bl link_get_multiplayer_id - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r0, [r1, 0x13] - adds r4, r0, 0x2 - b _0805B926 - .pool -_0805B8C4: - bl link_get_multiplayer_id - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r5 - ldrh r1, [r1] - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0x2 - beq _0805B8F6 - bl link_get_multiplayer_id - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r5 - ldrh r0, [r1] - ands r4, r0 - cmp r4, 0x1 - bne _0805B90C -_0805B8F6: - bl link_get_multiplayer_id - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r0, [r1, 0x13] - adds r4, r0, 0x4 - b _0805B926 -_0805B90C: - bl link_get_multiplayer_id - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r4, [r1, 0x13] - b _0805B926 -_0805B920: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r4, [r0, 0x8] -_0805B926: - ldr r5, =gUnknown_02024064 - ldrb r1, [r5] - adds r0, r4, 0 - bl sub_805DF84 - ldrb r0, [r5] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl template_build_for_pokemon_or_trainer - ldr r0, =gUnknown_0202499C - ldr r1, =gUnknown_08305D2C - lsls r4, 2 - adds r4, r1 - ldrb r1, [r4] - movs r2, 0x8 - subs r2, r1 - lsls r2, 18 - movs r1, 0xA0 - lsls r1, 15 - adds r2, r1 - asrs r2, 16 - movs r1, 0x50 - movs r3, 0x1E - bl AddObjectToFront - ldr r6, =gUnknown_020241E4 - ldrb r1, [r5] - adds r1, r6 - strb r0, [r1] - ldr r4, =gUnknown_02020630 - ldrb r3, [r5] - adds r0, r3, r6 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =0x0000ffa0 - strh r1, [r0, 0x24] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x2E] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, =sub_805D7AC - str r1, [r0] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_805887C - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end dp01t_08_1_8032428 - - thumb_func_start sub_805B9F8 -sub_805B9F8: @ 805B9F8 - push {r4-r6,lr} - ldr r5, =gUnknown_020241E4 - ldr r6, =gUnknown_02024064 - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - bl oamt_add_pos2_onto_pos1 - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x32 - strh r1, [r0, 0x2E] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =0x0000ffd8 - strh r1, [r0, 0x32] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x22] - strh r1, [r0, 0x36] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_80A6EEC - str r1, [r0] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =DummyObjectCallback - bl oamt_set_x3A_32 - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x1 - bl StartObjectImageAnim - ldr r1, =gUnknown_03005D60 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_802F7A0 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805B9F8 - - thumb_func_start sub_805BAB8 -sub_805BAB8: @ 805BAB8 - push {r4-r6,lr} - ldr r6, =gUnknown_020244D0 - ldr r4, [r6] - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - ldr r0, [r4, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r3, r1, r0 - ldrb r0, [r3, 0x4] - cmp r0, 0 - bne _0805BB0C - ldr r1, [r4] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0805BAEC - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_0805BAEC: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x4] - adds r1, 0x1 - strb r1, [r0, 0x4] - b _0805BB82 - .pool -_0805BB0C: - ldrb r1, [r3] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _0805BB82 - strb r4, [r3, 0x4] - ldr r2, =gUnknown_0202406E - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, =gPlayerParty - adds r0, r2 - bl sub_805E990 - movs r1, 0x40 - negs r1, r1 - movs r0, 0x10 - bl audio_play_and_stuff - ldr r2, =gUnknown_02020630 - ldr r3, =gUnknown_020241E4 - ldrb r0, [r5] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r4, [r0, 0x30] - ldrb r0, [r5] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x5 - strh r1, [r0, 0x32] - ldrb r0, [r5] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, =sub_8039C00 - str r1, [r0] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_80596A8 - str r1, [r0] -_0805BB82: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805BAB8 - - thumb_func_start sub_805BBA4 -sub_805BBA4: @ 805BBA4 - push {lr} - sub sp, 0x4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r1, 0x2 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - bl dp01_tbl1_exec_completed - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_805BBA4 - - thumb_func_start sub_805BBC4 -sub_805BBC4: @ 805BBC4 - push {r4,r5,lr} - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r1, [r0, 0x8] - movs r0, 0x4 - strb r0, [r1, 0x8] - ldr r1, =gUnknown_020244B9 - movs r0, 0x1 - strb r0, [r1] - ldr r5, =gUnknown_02024064 - ldrb r4, [r5] - movs r0, 0x1 - bl battle_get_side_with_given_state - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r4, 0 - movs r3, 0x3 - bl move_anim_start_t4 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_wait_t1 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805BBC4 - - thumb_func_start sub_805BC18 -sub_805BC18: @ 805BC18 - push {r4,r5,lr} - ldr r1, =gUnknown_02023064 - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r1, [r0] - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r0, [r0, 0x8] - strb r1, [r0, 0x8] - ldr r1, =gUnknown_020244B9 - movs r0, 0x1 - strb r0, [r1] - ldrb r4, [r5] - movs r0, 0x1 - bl battle_get_side_with_given_state - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r4, 0 - movs r3, 0x3 - bl move_anim_start_t4 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_wait_t1 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805BC18 - - thumb_func_start sub_805BC78 -sub_805BC78: @ 805BC78 - push {lr} - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0805BC96 -_0805BC8C: - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0805BC8C -_0805BC96: - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end sub_805BC78 - - thumb_func_start dp01t_0F_1_move_anim -dp01t_0F_1_move_anim: @ 805BCA8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - beq _0805BCBE - b _0805BDE4 -_0805BCBE: - ldr r0, =gUnknown_02023064 - mov r12, r0 - ldrb r1, [r5] - lsls r1, 9 - adds r0, 0x1 - adds r0, r1, r0 - ldrb r6, [r0] - mov r0, r12 - adds r0, 0x2 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, 8 - orrs r6, r0 - ldr r0, =gUnknown_02038432 - mov r8, r0 - mov r0, r12 - adds r0, 0x3 - adds r1, r0 - ldrb r0, [r1] - mov r1, r8 - strb r0, [r1] - ldr r3, =gUnknown_02038408 - ldrb r1, [r5] - lsls r1, 9 - mov r0, r12 - adds r0, 0x4 - adds r0, r1, r0 - ldrb r2, [r0] - mov r0, r12 - adds r0, 0x5 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 8 - orrs r2, r0 - strh r2, [r3] - ldr r3, =gUnknown_02038404 - ldrb r1, [r5] - lsls r1, 9 - mov r0, r12 - adds r0, 0x6 - adds r0, r1, r0 - ldrb r2, [r0] - mov r0, r12 - adds r0, 0x7 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, 8 - orrs r2, r0 - mov r0, r12 - adds r0, 0x8 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, 16 - orrs r2, r0 - mov r0, r12 - adds r0, 0x9 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 24 - orrs r2, r0 - str r2, [r3] - ldr r2, =gUnknown_0203841A - ldrb r0, [r5] - lsls r0, 9 - mov r1, r12 - adds r1, 0xA - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r4, =gUnknown_0203841C - ldrb r1, [r5] - lsls r1, 9 - mov r0, r12 - adds r0, 0xC - adds r0, r1, r0 - ldrb r2, [r0] - mov r0, r12 - adds r0, 0xD - adds r1, r0 - ldrb r0, [r1] - lsls r0, 8 - orrs r2, r0 - strh r2, [r4] - ldr r7, =gUnknown_02038400 - ldrb r1, [r5] - lsls r1, 9 - mov r0, r12 - adds r0, 0x10 - adds r1, r0 - str r1, [r7] - ldr r2, =gUnknown_020244BC - ldrb r0, [r5] - lsls r0, 2 - adds r0, r2 - ldr r1, [r1] - str r1, [r0] - mov r0, r8 - ldrb r1, [r0] - adds r0, r6, 0 - bl sub_805DB8C - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _0805BDBC - bl dp01_tbl1_exec_completed - b _0805BDE4 - .pool -_0805BDBC: - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strb r3, [r0, 0x4] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_move_anim_1 - str r1, [r0] - ldrh r1, [r4] - ldr r2, [r7] - adds r0, r6, 0 - bl sub_817E0FC -_0805BDE4: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end dp01t_0F_1_move_anim - - thumb_func_start bx_move_anim_1 -bx_move_anim_1: @ 805BDFC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r2, =gUnknown_02023064 - ldr r6, =gUnknown_02024064 - ldrb r3, [r6] - lsls r1, r3, 9 - adds r0, r2, 0x1 - mov r10, r0 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, r2, 0x2 - mov r9, r5 - adds r0, r1, r5 - ldrb r0, [r0] - lsls r0, 8 - orrs r4, r0 - adds r2, 0xB - adds r1, r2 - ldrb r1, [r1] - mov r8, r1 - ldr r7, =gUnknown_020244D0 - ldr r5, [r7] - ldr r1, [r5, 0x4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x4] - cmp r2, 0x1 - beq _0805BE94 - cmp r2, 0x1 - bgt _0805BE54 - cmp r2, 0 - beq _0805BE5E - b _0805BF70 - .pool -_0805BE54: - cmp r2, 0x2 - beq _0805BEBE - cmp r2, 0x3 - beq _0805BF34 - b _0805BF70 -_0805BE5E: - ldr r1, [r5] - lsls r0, r3, 2 - adds r1, r0, r1 - ldrb r2, [r1] - movs r0, 0xC - ands r0, r2 - cmp r0, 0x4 - bne _0805BE80 - movs r0, 0x8 - orrs r0, r2 - strb r0, [r1] - ldrb r2, [r6] - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_0805BE80: - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0, 0x4] - b _0805BF70 -_0805BE94: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0805BF70 - movs r0, 0 - bl sub_805EB9C - adds r0, r4, 0 - bl move_anim_start_t1 - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2 - strb r1, [r0, 0x4] - b _0805BF70 -_0805BEBE: - ldr r0, =gUnknown_020383F8 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, =gUnknown_020383FD - ldrb r0, [r0] - cmp r0, 0 - bne _0805BF70 - movs r0, 0x1 - bl sub_805EB9C - ldr r0, [r7] - ldrb r2, [r6] - ldr r1, [r0] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0805BF0C - mov r0, r8 - cmp r0, 0x1 - bhi _0805BF0C - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x6 - bl move_anim_start_t4 - ldr r0, [r7] - ldrb r1, [r6] - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - strb r0, [r1] -_0805BF0C: - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - strb r1, [r0, 0x4] - b _0805BF70 - .pool -_0805BF34: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _0805BF70 - bl sub_805E394 - ldrb r0, [r6] - lsls r2, r0, 9 - mov r3, r10 - adds r1, r2, r3 - ldrb r1, [r1] - add r2, r9 - ldrb r2, [r2] - lsls r2, 8 - orrs r1, r2 - bl sub_805E94C - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strb r4, [r0, 0x4] - bl dp01_tbl1_exec_completed -_0805BF70: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end bx_move_anim_1 - - thumb_func_start sub_805BF80 -sub_805BF80: @ 805BF80 - push {r4,r5,lr} - ldr r0, =gUnknown_02022E14 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_02022E16 - strh r1, [r0] - ldr r5, =gUnknown_02024064 - ldrb r4, [r5] - lsls r4, 9 - ldr r0, =gUnknown_02023066 - adds r4, r0 - ldrh r0, [r4] - bl battle_pick_message - ldr r0, =gUnknown_02022E2C - movs r1, 0 - bl battle_show_message_maybe - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_80597B4 - str r1, [r0] - ldrh r0, [r4] - bl sub_817C95C - ldrb r0, [r5] - ldrh r1, [r4] - bl sub_81A57E4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805BF80 - - thumb_func_start dp01t_11_1_message_for_player_only -dp01t_11_1_message_for_player_only: @ 805BFE0 - push {lr} - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0805BFFC - bl sub_805BF80 - b _0805C000 - .pool -_0805BFFC: - bl dp01_tbl1_exec_completed -_0805C000: - pop {r0} - bx r0 - thumb_func_end dp01t_11_1_message_for_player_only - - thumb_func_start sub_805C004 -sub_805C004: @ 805C004 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _0805C02A - ldr r0, =gUnknown_02022E14 - strh r1, [r0] - ldr r1, =gUnknown_02022E16 - movs r0, 0xA0 - strh r0, [r1] - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8057588 - str r1, [r0] -_0805C02A: - pop {r0} - bx r0 - .pool - thumb_func_end sub_805C004 - - thumb_func_start dp01t_12_6_battle_menu -dp01t_12_6_battle_menu: @ 805C044 - push {r4,lr} - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_805C004 - str r1, [r0] - bl sub_817F2A8 - ldr r0, =gUnknown_085CCA3A - movs r1, 0x2 - bl battle_show_message_maybe - movs r4, 0 -_0805C062: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_8059CF8 - adds r4, 0x1 - cmp r4, 0x3 - ble _0805C062 - ldr r1, =gUnknown_020244AC - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - movs r1, 0 - bl sub_8059CB4 - ldr r0, =gUnknown_085CC9F3 - bl get_battle_strings_ - ldr r0, =gUnknown_02022E2C - movs r1, 0x1 - bl battle_show_message_maybe - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end dp01t_12_6_battle_menu - - thumb_func_start sub_805C0B0 -sub_805C0B0: @ 805C0B0 - push {r4,lr} - sub sp, 0x4 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0805C108 - str r0, [sp] - movs r0, 0x18 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl sub_8056A3C - ldr r0, =gUnknown_085CCABB - movs r1, 0xC - bl battle_show_message_maybe - ldr r1, =gUnknown_03005D74 - movs r0, 0x1 - strb r0, [r1] - movs r0, 0x1 - bl sub_8056B74 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_80599D4 - str r1, [r0] - b _0805C10C - .pool -_0805C108: - bl dp01_tbl1_exec_completed -_0805C10C: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_805C0B0 - - thumb_func_start sub_805C114 -sub_805C114: @ 805C114 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _0805C13E - ldr r0, =gUnknown_02022E14 - strh r1, [r0] - ldr r1, =gUnknown_02022E16 - movs r2, 0xA0 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8057BFC - str r1, [r0] -_0805C13E: - pop {r0} - bx r0 - .pool - thumb_func_end sub_805C114 - - thumb_func_start sub_805C158 -sub_805C158: @ 805C158 - push {lr} - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - adds r1, r0 - movs r0, 0xA6 - lsls r0, 2 - adds r1, r0 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bne _0805C194 - ldr r1, =gUnknown_0203BD30 - ldr r0, =gRngValue - ldr r0, [r0] - str r0, [r1] - bl sub_805D19C - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - movs r0, 0x1 - movs r1, 0xA - bl dp01_build_cmdbuf_x21_a_bb - bl dp01_tbl1_exec_completed -_0805C194: - pop {r0} - bx r0 - .pool - thumb_func_end sub_805C158 - - thumb_func_start dp01t_14_5_move_menu_pokedude -dp01t_14_5_move_menu_pokedude: @ 805C1A8 - push {lr} - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 10 - ands r0, r1 - cmp r0, 0 - beq _0805C1EC - ldr r2, =gUnknown_02024064 - ldrb r0, [r2] - ldr r1, =gUnknown_0202449C - ldr r1, [r1] - adds r0, r1 - movs r1, 0xA6 - lsls r1, 2 - adds r0, r1 - movs r1, 0x8 - strb r1, [r0] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_805C158 - b _0805C1FC - .pool -_0805C1EC: - bl sub_805C210 - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_805C114 -_0805C1FC: - str r1, [r0] - pop {r0} - bx r0 - .pool - thumb_func_end dp01t_14_5_move_menu_pokedude - - thumb_func_start sub_805C210 -sub_805C210: @ 805C210 - push {lr} - bl sub_8059AAC - ldr r1, =gUnknown_03005D74 - movs r0, 0xFF - strb r0, [r1] - ldr r1, =gUnknown_020244B0 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - movs r1, 0 - bl battle_menu_cursor_related_2 - bl sub_8059B18 - bl sub_8059B3C - bl sub_8059BB0 - pop {r0} - bx r0 - .pool - thumb_func_end sub_805C210 - - thumb_func_start sub_805C248 -sub_805C248: @ 805C248 - push {r4,r5,lr} - sub sp, 0x4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gUnknown_03005D60 - ldr r2, =gUnknown_02024064 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_80598A4 - str r1, [r0] - ldr r1, =gUnknown_020244B8 - ldrb r0, [r2] - strb r0, [r1] - movs r3, 0 - ldr r5, =gUnknown_0203CF00 - ldr r4, =gUnknown_02023064 -_0805C276: - adds r0, r3, r5 - ldrb r1, [r2] - lsls r1, 9 - adds r1, 0x1 - adds r1, r3, r1 - adds r1, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r3, 0x1 - cmp r3, 0x2 - ble _0805C276 - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805C248 - - thumb_func_start sub_805C2AC -sub_805C2AC: @ 805C2AC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - movs r3, 0 - ldr r0, =gUnknown_0203CF00 - mov r12, r0 - ldr r1, =gUnknown_02023064 - mov r8, r1 - ldr r2, =gUnknown_02024064 - ldr r7, =gBattleTypeFlags - mov r6, r12 - mov r5, r8 - adds r4, r2, 0 -_0805C2C8: - adds r0, r3, r6 - ldrb r1, [r4] - lsls r1, 9 - adds r1, 0x4 - adds r1, r3, r1 - adds r1, r5 - ldrb r1, [r1] - strb r1, [r0] - adds r3, 0x1 - cmp r3, 0x2 - ble _0805C2C8 - ldr r0, [r7] - movs r1, 0x80 - lsls r1, 11 - ands r0, r1 - cmp r0, 0 - beq _0805C330 - ldrb r3, [r2] - lsls r0, r3, 9 - mov r1, r8 - adds r1, 0x1 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0xF - ands r0, r1 - cmp r0, 0x2 - beq _0805C330 - ldr r1, =gUnknown_0202406E - lsls r0, r3, 1 - adds r0, r1 - ldrb r1, [r0] - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x1 - mov r2, r12 - bl dp01_build_cmdbuf_x22_a_three_bytes - bl dp01_tbl1_exec_completed - b _0805C3BC - .pool -_0805C330: - ldr r0, =TaskDummy - movs r1, 0xFF - bl CreateTask - ldr r3, =gUnknown_03005D7C - ldr r4, =gUnknown_02024064 - ldrb r1, [r4] - adds r1, r3 - movs r2, 0 - mov r8, r2 - strb r0, [r1] - ldr r5, =gTasks - ldrb r2, [r4] - adds r3, r2, r3 - ldrb r0, [r3] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r5 - ldr r5, =gUnknown_02023064 - lsls r2, 9 - adds r6, r5, 0x1 - adds r2, r6 - ldrb r2, [r2] - movs r0, 0xF - ands r0, r2 - strh r0, [r1, 0x8] - ldr r3, =gUnknown_0202449C - ldr r1, [r3] - adds r1, 0x49 - ldrb r0, [r4] - lsls r0, 9 - adds r0, r6 - ldrb r0, [r0] - lsrs r0, 4 - strb r0, [r1] - ldr r2, [r3] - adds r2, 0x8B - ldrb r0, [r4] - lsls r0, 9 - adds r1, r5, 0x2 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r1, [r3] - adds r1, 0xB0 - ldrb r0, [r4] - lsls r0, 9 - adds r5, 0x3 - adds r0, r5 - ldrb r0, [r0] - strb r0, [r1] - movs r0, 0x1 - negs r0, r0 - mov r1, r8 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_80597CC - str r1, [r0] - ldr r1, =gUnknown_020244B8 - ldrb r0, [r4] - strb r0, [r1] -_0805C3BC: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805C2AC - - thumb_func_start sub_805C3EC -sub_805C3EC: @ 805C3EC - push {lr} - sub sp, 0x4 - bl sub_805EA60 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r1, 0x2 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - bl dp01_tbl1_exec_completed - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_805C3EC - - thumb_func_start sub_805C410 -sub_805C410: @ 805C410 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - movs r0, 0 - bl load_gfxc_health_bar - ldr r3, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - mov r9, r0 - ldrb r1, [r0] - lsls r1, 9 - adds r0, r3, 0x2 - adds r0, r1, r0 - ldrb r2, [r0] - adds r3, 0x3 - adds r1, r3 - ldrb r0, [r1] - lsls r0, 8 - orrs r2, r0 - lsls r2, 16 - asrs r7, r2, 16 - cmp r7, 0 - ble _0805C44A - ldr r1, =gUnknown_0203CD70 - ldr r0, [r1] - adds r0, r7 - str r0, [r1] -_0805C44A: - ldr r0, =0x00007fff - cmp r7, r0 - beq _0805C4B4 - ldr r6, =gUnknown_0202406E - mov r1, r9 - ldrb r0, [r1] - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - movs r5, 0x64 - muls r0, r5 - ldr r4, =gPlayerParty - adds r0, r4 - movs r1, 0x3A - bl GetMonData - mov r8, r0 - mov r2, r9 - ldrb r0, [r2] - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - muls r0, r5 - adds r0, r4 - movs r1, 0x39 - bl GetMonData - adds r3, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r1, =gUnknown_03005D70 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - mov r2, r8 - bl sub_807294C - b _0805C4F2 - .pool -_0805C4B4: - ldr r1, =gUnknown_0202406E - mov r2, r9 - ldrb r0, [r2] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3A - bl GetMonData - adds r2, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r4, =gUnknown_03005D70 - adds r1, r0, r4 - ldrb r1, [r1] - str r7, [sp] - movs r3, 0 - bl sub_807294C - mov r2, r9 - ldrb r0, [r2] - adds r0, r4 - ldrb r0, [r0] - movs r1, 0 - movs r2, 0 - bl heathbar_draw_hp -_0805C4F2: - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_t1_healthbar_update - str r1, [r0] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805C410 - - thumb_func_start sub_805C528 -sub_805C528: @ 805C528 - push {r4-r7,lr} - ldr r5, =gUnknown_02023064 - ldr r6, =gUnknown_02024064 - ldrb r0, [r6] - lsls r0, 9 - adds r1, r5, 0x1 - adds r0, r1 - ldrb r7, [r0] - movs r0, 0x64 - adds r1, r7, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - cmp r0, 0x63 - bls _0805C560 - bl dp01_tbl1_exec_completed - b _0805C5AC - .pool -_0805C560: - movs r0, 0x1 - bl load_gfxc_health_bar - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - ldrb r1, [r6] - lsls r1, 9 - adds r0, r5, 0x2 - adds r0, r1, r0 - ldrb r4, [r0] - adds r0, r5, 0x3 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 8 - orrs r4, r0 - ldr r0, =sub_80591B8 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r7, [r1, 0x8] - strh r4, [r1, 0xA] - ldrb r0, [r6] - strh r0, [r1, 0xC] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, =nullsub_21 - str r1, [r0] -_0805C5AC: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805C528 - - thumb_func_start sub_805C5C4 -sub_805C5C4: @ 805C5C4 - push {r4,lr} - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _0805C618 - ldr r0, =gUnknown_03005D70 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, =gUnknown_0202406E - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gPlayerParty - adds r1, r2 - movs r2, 0x9 - bl healthbar_draw_field_maybe - ldrb r2, [r4] - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8059D60 - str r1, [r0] -_0805C618: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805C5C4 - - thumb_func_start sub_805C63C -sub_805C63C: @ 805C63C - push {r4,r5,lr} - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _0805C68C - ldr r4, =gUnknown_02023064 - ldrb r3, [r5] - lsls r3, 9 - adds r0, r4, 0x1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, 0x2 - adds r1, r3, r1 - ldrb r1, [r1] - adds r2, r4, 0x3 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, 8 - orrs r1, r2 - adds r2, r4, 0x4 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, 16 - orrs r1, r2 - adds r4, 0x5 - adds r3, r4 - ldrb r2, [r3] - lsls r2, 24 - orrs r1, r2 - bl move_anim_start_t2_for_situation - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8059D60 - str r1, [r0] -_0805C68C: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805C63C - - thumb_func_start sub_805C6A4 -sub_805C6A4: @ 805C6A4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - ldr r0, =gUnknown_0202406E - mov r8, r0 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - lsls r0, 1 - add r0, r8 - ldrh r0, [r0] - movs r6, 0x64 - muls r0, r6 - ldr r5, =gPlayerParty - adds r0, r5 - movs r1, 0x37 - bl GetMonData - ldr r2, =gUnknown_02023064 - ldrb r1, [r4] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - eors r0, r1 - mov r1, sp - strb r0, [r1] - ldrb r0, [r4] - lsls r0, 1 - add r0, r8 - ldrh r0, [r0] - muls r0, r6 - adds r0, r5 - movs r1, 0x37 - mov r2, sp - bl pokemon_setattr - bl dp01_tbl1_exec_completed - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805C6A4 - - thumb_func_start sub_805C710 -sub_805C710: @ 805C710 - push {lr} - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_805C710 - - thumb_func_start sub_805C71C -sub_805C71C: @ 805C71C - push {r4,r5,lr} - ldr r3, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r2, [r0] - lsls r2, 9 - adds r0, r3, 0x1 - adds r0, r2, r0 - ldrb r5, [r0] - adds r0, r3, 0x2 - adds r0, r2, r0 - ldrb r0, [r0] - lsls r0, 8 - orrs r5, r0 - adds r0, r3, 0x3 - adds r0, r2, r0 - ldrb r0, [r0] - lsls r0, 16 - orrs r5, r0 - adds r0, r3, 0x4 - adds r0, r2, r0 - ldrb r4, [r0] - lsls r4, 24 - adds r0, r3, 0x5 - adds r0, r2, r0 - ldrb r1, [r0] - adds r0, r3, 0x6 - adds r0, r2, r0 - ldrb r0, [r0] - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - adds r3, 0x7 - adds r2, r3 - orrs r5, r4 - lsrs r4, r1, 16 - movs r0, 0x80 - lsls r0, 5 - cmp r4, r0 - bhi _0805C78C - ldr r0, =0x040000d4 - str r2, [r0] - str r5, [r0, 0x4] - lsrs r1, 17 - movs r2, 0x80 - lsls r2, 24 - orrs r1, r2 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - b _0805C7B8 - .pool -_0805C78C: - ldr r3, =0x040000d4 - str r2, [r3] - str r5, [r3, 0x4] - ldr r0, =0x80000800 - str r0, [r3, 0x8] - ldr r0, [r3, 0x8] - movs r0, 0x80 - lsls r0, 5 - adds r2, r0 - adds r5, r0 - ldr r1, =0xfffff000 - adds r4, r1 - cmp r4, r0 - bhi _0805C78C - str r2, [r3] - str r5, [r3, 0x4] - lsrs r0, r4, 1 - movs r1, 0x80 - lsls r1, 24 - orrs r0, r1 - str r0, [r3, 0x8] - ldr r0, [r3, 0x8] -_0805C7B8: - bl dp01_tbl1_exec_completed - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805C71C - - thumb_func_start sub_805C7D0 -sub_805C7D0: @ 805C7D0 - push {lr} - ldr r2, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - lsls r1, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - bl song_play_for_text - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end sub_805C7D0 - - thumb_func_start sub_805C800 -sub_805C800: @ 805C800 - push {lr} - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_805C800 - - thumb_func_start sub_805C80C -sub_805C80C: @ 805C80C - push {lr} - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_805C80C - - thumb_func_start sub_805C820 -sub_805C820: @ 805C820 - push {lr} - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl dp01_build_cmdbuf_x22_a_three_bytes - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_805C820 - - thumb_func_start sub_805C834 -sub_805C834: @ 805C834 - push {lr} - movs r0, 0x1 - movs r1, 0 - bl dp01_build_cmdbuf_x23_aa_0 - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_805C834 - - thumb_func_start sub_805C848 -sub_805C848: @ 805C848 - push {lr} - movs r0, 0x1 - movs r1, 0 - bl dp01_build_cmdbuf_x24_aa_0 - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_805C848 - - thumb_func_start sub_805C85C -sub_805C85C: @ 805C85C - push {lr} - ldr r2, =gUnknown_02022D0C - ldrb r1, [r2] - movs r0, 0x80 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end sub_805C85C - - thumb_func_start sub_805C878 -sub_805C878: @ 805C878 - push {lr} - ldr r3, =gUnknown_02022D0C - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x7F - ands r1, r0 - ldrb r2, [r3] - movs r0, 0x80 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end sub_805C878 - - thumb_func_start sub_805C8B0 -sub_805C8B0: @ 805C8B0 - push {lr} - ldr r2, =gUnknown_02022D0C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end sub_805C8B0 - - thumb_func_start sub_805C8C8 -sub_805C8C8: @ 805C8C8 - push {lr} - ldr r3, =gUnknown_02022D0C - ldr r1, [r3] - lsls r1, 24 - lsrs r1, 31 - movs r0, 0x1 - eors r1, r0 - lsls r1, 7 - ldrb r2, [r3] - movs r0, 0x7F - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end sub_805C8C8 - - thumb_func_start dp01t_29_1_blink -dp01t_29_1_blink: @ 805C8F0 - push {r4,lr} - ldr r3, =gUnknown_02020630 - ldr r2, =gUnknown_020241E4 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _0805C924 - bl dp01_tbl1_exec_completed - b _0805C94E - .pool -_0805C924: - ldr r1, =gUnknown_020244B9 - movs r0, 0x1 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0 - strh r1, [r0, 0x30] - ldrb r0, [r4] - bl sub_80769F4 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_blink_t1 - str r1, [r0] -_0805C94E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end dp01t_29_1_blink - - thumb_func_start sub_805C960 -sub_805C960: @ 805C960 - push {lr} - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_805C960 - - thumb_func_start sub_805C96C -sub_805C96C: @ 805C96C - push {r4,lr} - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - movs r3, 0x3F - cmp r0, 0 - bne _0805C980 - movs r3, 0xC0 -_0805C980: - ldr r2, =gUnknown_02023064 - ldrb r1, [r4] - lsls r1, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - lsls r1, r3, 24 - asrs r1, 24 - bl audio_play_and_stuff - bl dp01_tbl1_exec_completed - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805C96C - - thumb_func_start sub_805C9B0 -sub_805C9B0: @ 805C9B0 - push {r4,r5,lr} - ldr r4, =gUnknown_02023064 - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - lsls r3, r0, 9 - adds r0, r4, 0x3 - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, 0 - beq _0805C9EC - bl sub_805EA60 - ldrb r1, [r5] - lsls r1, 9 - adds r0, r4, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, r4, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - bl song_play_for_text - b _0805CA00 - .pool -_0805C9EC: - adds r0, r4, 0x1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, 0x2 - adds r1, r3, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - bl fanfare_play -_0805CA00: - bl dp01_tbl1_exec_completed - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_805C9B0 - - thumb_func_start sub_805CA0C -sub_805CA0C: @ 805CA0C - push {lr} - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x19 - negs r1, r1 - movs r2, 0x5 - bl sub_80A32E4 - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end sub_805CA0C - - thumb_func_start dp01t_2E_1_battle_intro -dp01t_2E_1_battle_intro: @ 805CA4C - push {lr} - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - bl battle_intro_launch - ldr r2, =gUnknown_020243FC - ldrh r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end dp01t_2E_1_battle_intro - - thumb_func_start dp01t_2F_1_pokemon_enter -dp01t_2F_1_pokemon_enter: @ 805CA80 - push {r4-r7,lr} - ldr r6, =gUnknown_020241E4 - ldr r7, =gUnknown_02024064 - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, =gUnknown_02020630 - adds r0, r5 - bl oamt_add_pos2_onto_pos1 - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x32 - strh r1, [r0, 0x2E] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =0x0000ffd8 - strh r1, [r0, 0x32] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r0, 0x22] - strh r1, [r0, 0x36] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_80A6EEC - str r1, [r0] - ldrb r2, [r7] - adds r0, r2, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x38] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =sub_805CC00 - bl oamt_set_x3A_32 - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x1 - bl StartObjectImageAnim - ldr r0, =0x0000d6f8 - bl AllocObjectPalette - adds r4, r0, 0 - lsls r4, 24 - ldr r1, =gTrainerBackPicPaletteTable - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - lsls r0, 3 - adds r0, r1 - ldr r0, [r0] - lsrs r4, 20 - movs r2, 0x80 - lsls r2, 1 - adds r1, r4, r2 - movs r2, 0x20 - bl LoadCompressedPalette - ldrb r0, [r7] - adds r0, r6 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r4 - strb r0, [r1, 0x5] - ldr r0, =task05_08033660 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r4, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - ldrb r0, [r7] - strh r0, [r1, 0x8] - ldr r3, =gUnknown_020244D0 - ldr r0, [r3] - ldrb r2, [r7] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0805CBA2 - ldr r0, =gUnknown_020244B4 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - ldr r1, =sub_8073C30 - str r1, [r0] -_0805CBA2: - ldr r0, [r3] - ldr r2, [r0, 0x8] - ldrb r0, [r2, 0x9] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x9] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - ldr r1, =nullsub_21 - str r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end dp01t_2F_1_pokemon_enter - - thumb_func_start sub_805CC00 -sub_805CC00: @ 805CC00 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r4, [r5, 0x38] - lsls r4, 24 - lsrs r4, 24 - bl obj_free_rotscale_entry - ldrb r0, [r5, 0x5] - lsrs r0, 4 - bl GetObjectPaletteTagBySlot - lsls r0, 16 - lsrs r0, 16 - bl FreeObjectPaletteByTag - adds r0, r5, 0 - bl RemoveObjectAndFreeTiles - ldr r1, =gUnknown_0202406E - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - adds r1, r4, 0 - bl sub_805DD7C - ldr r0, =gUnknown_020241E4 - adds r4, r0 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - movs r1, 0 - bl StartObjectImageAnim - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805CC00 - - thumb_func_start task05_08033660 -task05_08033660: @ 805CC68 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r1, =gTasks - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0xA] - movs r3, 0xA - ldrsh r0, [r1, r3] - cmp r0, 0x1E - bgt _0805CC94 - adds r0, r2, 0x1 - strh r0, [r1, 0xA] - b _0805CD50 - .pool -_0805CC94: - ldr r7, =gUnknown_02024064 - ldrb r0, [r7] - mov r9, r0 - ldrh r0, [r1, 0x8] - strb r0, [r7] - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _0805CCB4 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0805CCE4 -_0805CCB4: - ldr r0, =gUnknown_02023064 - ldrb r1, [r7] - lsls r2, r1, 9 - adds r0, 0x1 - adds r2, r0 - ldr r0, =gUnknown_0202406E - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - strb r0, [r2] - ldrb r0, [r7] - movs r1, 0 - bl sub_805B258 - b _0805CD38 - .pool -_0805CCE4: - ldr r4, =gUnknown_02023064 - ldrb r0, [r7] - lsls r1, r0, 9 - adds r4, 0x1 - adds r1, r4 - ldr r5, =gUnknown_0202406E - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r1, 0 - bl sub_805B258 - ldrb r0, [r7] - movs r6, 0x2 - eors r0, r6 - strb r0, [r7] - ldrb r0, [r7] - lsls r1, r0, 9 - adds r1, r4 - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - strb r0, [r1] - ldrb r1, [r7] - lsls r0, r1, 1 - adds r0, r5 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, =gPlayerParty - adds r0, r2 - bl sub_805DD7C - ldrb r0, [r7] - movs r1, 0 - bl sub_805B258 - ldrb r0, [r7] - eors r0, r6 - strb r0, [r7] -_0805CD38: - ldr r1, =gUnknown_03005D60 - ldr r2, =gUnknown_02024064 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8058B40 - str r1, [r0] - mov r3, r9 - strb r3, [r2] - mov r0, r8 - bl DestroyTask -_0805CD50: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end task05_08033660 - - thumb_func_start sub_805CD74 -sub_805CD74: @ 805CD74 - push {r4-r6,lr} - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0805CDA4 - adds r0, r2, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0805CDA4 - bl dp01_tbl1_exec_completed - b _0805CE18 - .pool -_0805CDA4: - ldr r6, =gUnknown_020244D0 - ldr r0, [r6] - ldr r5, =gUnknown_02024064 - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - ldrb r0, [r5] - lsls r3, r0, 9 - ldr r4, =gUnknown_02023068 - adds r1, r3, r4 - subs r2, r4, 0x3 - adds r2, r3, r2 - ldrb r2, [r2] - subs r4, 0x2 - adds r3, r4 - ldrb r3, [r3] - bl sub_80735DC - ldr r2, =gUnknown_020244B4 - ldrb r1, [r5] - adds r1, r2 - movs r3, 0 - strb r0, [r1] - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strb r3, [r0, 0x5] - ldrb r2, [r5] - lsls r0, r2, 9 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _0805CE0C - ldr r0, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0x5D - strb r1, [r0, 0x5] -_0805CE0C: - ldr r0, =gUnknown_03005D60 - ldrb r1, [r5] - lsls r1, 2 - adds r1, r0 - ldr r0, =sub_805CE38 - str r0, [r1] -_0805CE18: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805CD74 - - thumb_func_start sub_805CE38 -sub_805CE38: @ 805CE38 - push {r4,lr} - ldr r4, =gUnknown_020244D0 - ldr r0, [r4] - ldr r3, =gUnknown_02024064 - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x5] - adds r2, r1, 0x1 - strb r2, [r0, 0x5] - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x5C - bls _0805CE70 - ldr r0, [r4] - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strb r1, [r0, 0x5] - bl dp01_tbl1_exec_completed -_0805CE70: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805CE38 - - thumb_func_start sub_805CE80 -sub_805CE80: @ 805CE80 - push {lr} - ldr r0, =gUnknown_020244D0 - ldr r1, [r0] - ldr r0, =gUnknown_02024064 - ldrb r3, [r0] - ldr r1, [r1, 0x4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0805CEB2 - ldr r2, =gTasks - ldr r0, =gUnknown_020244B4 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, =sub_8073C30 - str r1, [r0] -_0805CEB2: - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end sub_805CE80 - - thumb_func_start sub_805CED0 -sub_805CED0: @ 805CED0 - push {r4,lr} - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - movs r1, 0x1 - bl dp11b_obj_free - ldrb r0, [r4] - movs r1, 0 - bl dp11b_obj_free - bl dp01_tbl1_exec_completed - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805CED0 - - thumb_func_start dp01t_33_1_enemy_move -dp01t_33_1_enemy_move: @ 805CEF4 - push {r4,lr} - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - bl sub_80A6A90 - lsls r0, 24 - cmp r0, 0 - beq _0805CF3A - ldr r3, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldr r0, =gUnknown_02023064 - lsls r1, 9 - adds r0, 0x1 - adds r1, r0 - adds r2, 0x3E - movs r0, 0x1 - ldrb r1, [r1] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - bl sub_805E408 -_0805CF3A: - bl dp01_tbl1_exec_completed - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end dp01t_33_1_enemy_move - - thumb_func_start sub_805CF54 -sub_805CF54: @ 805CF54 - push {r4-r6,lr} - sub sp, 0x4 - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _0805CFB6 - ldr r4, =gUnknown_02023064 - ldrb r2, [r5] - lsls r1, r2, 9 - adds r0, r4, 0x1 - adds r0, r1, r0 - ldrb r6, [r0] - adds r0, r4, 0x2 - adds r0, r1, r0 - ldrb r3, [r0] - adds r4, 0x3 - adds r1, r4 - ldrb r0, [r1] - lsls r0, 8 - orrs r3, r0 - str r3, [sp] - adds r0, r2, 0 - adds r1, r2, 0 - adds r3, r6, 0 - bl move_anim_start_t3 - lsls r0, 24 - cmp r0, 0 - beq _0805CFA4 - bl dp01_tbl1_exec_completed - b _0805CFB0 - .pool -_0805CFA4: - ldr r0, =gUnknown_03005D60 - ldrb r1, [r5] - lsls r1, 2 - adds r1, r0 - ldr r0, =bx_8030B2C - str r0, [r1] -_0805CFB0: - adds r0, r6, 0 - bl sub_817E32C -_0805CFB6: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805CF54 - - thumb_func_start dp01t_35_1_link_standby_message_and_free_vram -dp01t_35_1_link_standby_message_and_free_vram: @ 805CFC8 - push {r4,r5,lr} - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - lsls r0, 9 - ldr r4, =gUnknown_02023066 - adds r0, r4 - bl sub_81851A8 - ldrb r0, [r5] - lsls r0, 9 - subs r4, 0x1 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0805D002 - cmp r0, 0x1 - bgt _0805CFF8 - cmp r0, 0 - beq _0805CFFE - b _0805D020 - .pool -_0805CFF8: - cmp r0, 0x2 - beq _0805D01C - b _0805D020 -_0805CFFE: - bl b_link_standby_message -_0805D002: - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - movs r1, 0x1 - bl dp11b_obj_free - ldrb r0, [r4] - movs r1, 0 - bl dp11b_obj_free - b _0805D020 - .pool -_0805D01C: - bl b_link_standby_message -_0805D020: - bl dp01_tbl1_exec_completed - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end dp01t_35_1_link_standby_message_and_free_vram - - thumb_func_start sub_805D02C -sub_805D02C: @ 805D02C - push {r4,lr} - ldr r1, =gUnknown_02023064 - ldr r4, =gUnknown_02024064 - ldrb r3, [r4] - lsls r0, r3, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r2, [r0] - cmp r2, 0x1 - beq _0805D074 - cmp r2, 0x1 - bgt _0805D054 - cmp r2, 0 - beq _0805D05A - b _0805D084 - .pool -_0805D054: - cmp r2, 0x2 - beq _0805D07C - b _0805D084 -_0805D05A: - ldr r0, =gUnknown_020244AC - adds r0, r3, r0 - strb r2, [r0] - ldr r1, =gUnknown_020244B0 - ldrb r0, [r4] - adds r0, r1 - strb r2, [r0] - b _0805D084 - .pool -_0805D074: - ldr r0, =gUnknown_020244AC - b _0805D07E - .pool -_0805D07C: - ldr r0, =gUnknown_020244B0 -_0805D07E: - adds r0, r3, r0 - movs r1, 0 - strb r1, [r0] -_0805D084: - bl dp01_tbl1_exec_completed - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805D02C - - thumb_func_start sub_805D094 -sub_805D094: @ 805D094 - push {r4,r5,lr} - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - lsls r0, 9 - ldr r4, =gUnknown_02023068 - adds r0, r4 - bl sub_81851A8 - ldr r2, =gUnknown_0202433A - ldrb r0, [r5] - lsls r0, 9 - subs r1, r4, 0x3 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldrb r0, [r5] - lsls r0, 9 - subs r4, 0x2 - adds r0, r4 - ldrb r0, [r0] - ldr r1, =0x00000ca9 - adds r3, r1 - movs r1, 0x1 - ands r1, r0 - lsls r1, 3 - ldrb r2, [r3] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x5 - bl sub_80A2F50 - movs r0, 0x3 - bl BeginFastPaletteFade - bl dp01_tbl1_exec_completed - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_80587B0 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805D094 - - thumb_func_start nullsub_22 -nullsub_22: @ 805D114 - bx lr - thumb_func_end nullsub_22 - - thumb_func_start dp11_init -dp11_init: @ 805D118 - push {r4,lr} - ldr r4, =gUnknown_020244D0 - movs r0, 0x10 - bl AllocZeroed - str r0, [r4] - movs r0, 0x10 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1] - movs r0, 0x30 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, 0x4] - movs r0, 0x10 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, 0x8] - movs r0, 0x50 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, 0xC] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end dp11_init - - thumb_func_start dp11_free -dp11_free: @ 805D158 - push {r4,r5,lr} - ldr r5, =gUnknown_020244D0 - ldr r0, [r5] - cmp r0, 0 - beq _0805D192 - ldr r0, [r0, 0xC] - bl Free - ldr r0, [r5] - movs r4, 0 - str r4, [r0, 0xC] - ldr r0, [r0, 0x8] - bl Free - ldr r0, [r5] - str r4, [r0, 0x8] - ldr r0, [r0, 0x4] - bl Free - ldr r0, [r5] - str r4, [r0, 0x4] - ldr r0, [r0] - bl Free - ldr r0, [r5] - str r4, [r0] - bl Free - str r4, [r5] -_0805D192: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end dp11_free - - thumb_func_start sub_805D19C -sub_805D19C: @ 805D19C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r0, 0x1 - negs r0, r0 - mov r9, r0 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - lsls r2, r0, 9 - ldr r1, =gUnknown_02023068 - adds r2, r1 - mov r10, r2 - movs r1, 0 - movs r2, 0xFF - bl sub_803FECC - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r7, r0, 16 - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - adds r0, 0x92 - ldrb r1, [r0] - ldr r2, =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - negs r0, r1 - orrs r0, r1 - asrs r4, r0, 31 - movs r0, 0x2 - ands r4, r0 - adds r6, r4, 0 - adds r5, r4, 0x2 - b _0805D20E - .pool -_0805D20C: - adds r4, 0x1 -_0805D20E: - cmp r4, r5 - bge _0805D234 - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - ldr r1, =gUnknown_020240CC - adds r0, r1 - ldr r0, [r0] - bl GetNatureFromPersonality - lsls r0, 24 - lsrs r0, 22 - adds r0, r4, r0 - ldr r2, =gUnknown_0831C494 - adds r0, r2 - ldrb r0, [r0] - cmp r0, r7 - ble _0805D20C -_0805D234: - subs r7, r4, r6 - cmp r4, r5 - bne _0805D23C - movs r7, 0x2 -_0805D23C: - movs r6, 0 - movs r4, 0 - mov r1, r10 - ldrh r0, [r1] - cmp r0, 0 - beq _0805D27C - mov r5, r10 -_0805D24A: - ldrh r0, [r5] - bl sub_805D4A8 - lsls r0, 24 - lsrs r0, 24 - cmp r7, r0 - bne _0805D26E - mov r0, r10 - adds r0, 0x8 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _0805D26E - ldr r0, =gBitTable - lsls r1, r4, 2 - adds r1, r0 - ldr r0, [r1] - orrs r6, r0 -_0805D26E: - adds r5, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - bgt _0805D27C - ldrh r0, [r5] - cmp r0, 0 - bne _0805D24A -_0805D27C: - cmp r6, 0 - beq _0805D2AC - ldr r3, =gUnknown_0202449C - ldr r1, [r3] - adds r1, 0x92 - ldrb r2, [r1] - movs r0, 0xF - ands r0, r2 - strb r0, [r1] - ldr r1, [r3] - adds r1, 0x92 - lsls r0, r6, 4 - ldrb r2, [r1] - orrs r0, r2 - strb r0, [r1] - lsls r0, r6, 24 - lsrs r0, 24 - bl BattleAI_SetupAIData - bl sub_8130BA4 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_0805D2AC: - movs r0, 0x1 - negs r0, r0 - cmp r9, r0 - beq _0805D2B6 - b _0805D40C -_0805D2B6: - mov r2, r8 - cmp r2, 0xF - bne _0805D2BE - b _0805D3EA -_0805D2BE: - movs r5, 0 - movs r6, 0 - ldr r7, =gBitTable - mov r4, r10 -_0805D2C6: - ldrh r0, [r4] - bl sub_805D4A8 - lsls r0, 24 - cmp r0, 0 - bne _0805D2DE - ldr r0, [r7] - mov r1, r8 - ands r0, r1 - cmp r0, 0 - bne _0805D2DE - adds r5, 0x1 -_0805D2DE: - ldrh r0, [r4] - bl sub_805D4A8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0805D2F8 - ldr r0, [r7] - mov r2, r8 - ands r0, r2 - cmp r0, 0 - bne _0805D2F8 - adds r5, 0x10 -_0805D2F8: - ldrh r0, [r4] - bl sub_805D4A8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0805D316 - ldr r0, [r7] - mov r1, r8 - ands r0, r1 - cmp r0, 0 - bne _0805D316 - movs r2, 0x80 - lsls r2, 1 - adds r5, r2 -_0805D316: - adds r7, 0x4 - adds r4, 0x2 - ldr r0, =gBitTable - adds r0, 0xC - cmp r7, r0 - ble _0805D2C6 - movs r1, 0xF - ands r1, r5 - cmp r1, 0x1 - ble _0805D32C - adds r6, 0x1 -_0805D32C: - movs r0, 0xF0 - ands r0, r5 - cmp r0, 0x1F - ble _0805D336 - adds r6, 0x1 -_0805D336: - ldr r2, =0x000001ff - cmp r0, r2 - ble _0805D33E - adds r6, 0x1 -_0805D33E: - cmp r6, 0x1 - bgt _0805D346 - cmp r6, 0 - bne _0805D388 -_0805D346: - ldr r5, =gBitTable -_0805D348: - bl Random - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - lsrs r4, r1, 16 - lsls r0, r4, 2 - adds r0, r5 - ldr r0, [r0] - mov r1, r8 - ands r0, r1 - cmp r0, 0 - bne _0805D366 - mov r9, r4 -_0805D366: - movs r0, 0x1 - negs r0, r0 - cmp r9, r0 - beq _0805D348 - b _0805D3D4 - .pool -_0805D388: - cmp r1, 0x1 - ble _0805D38E - movs r6, 0 -_0805D38E: - cmp r0, 0x1F - ble _0805D394 - movs r6, 0x1 -_0805D394: - cmp r0, r2 - ble _0805D39A - movs r6, 0x2 -_0805D39A: - bl Random - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - lsrs r4, r1, 16 - ldr r1, =gBitTable - lsls r0, r4, 2 - adds r0, r1 - ldr r0, [r0] - mov r2, r8 - ands r0, r2 - cmp r0, 0 - bne _0805D3CC - lsls r0, r4, 1 - add r0, r10 - ldrh r0, [r0] - bl sub_805D4A8 - lsls r0, 24 - lsrs r0, 24 - cmp r6, r0 - bne _0805D3CC - mov r9, r4 -_0805D3CC: - movs r0, 0x1 - negs r0, r0 - cmp r9, r0 - beq _0805D39A -_0805D3D4: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x31 - bls _0805D40C -_0805D3EA: - ldr r2, =gUnknown_0202433C - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - lsls r1, 4 - adds r1, r2 - ldrb r0, [r1, 0x2] - movs r2, 0x10 - orrs r0, r2 - strb r0, [r1, 0x2] - movs r0, 0 - b _0805D496 - .pool -_0805D40C: - mov r1, r9 - lsls r0, r1, 1 - mov r2, r10 - adds r1, r2, r0 - ldrh r0, [r1] - cmp r0, 0xAE - bne _0805D434 - ldrb r0, [r2, 0x12] - movs r5, 0 - cmp r0, 0x7 - beq _0805D442 - ldrb r1, [r2, 0x13] - movs r0, 0x7 - eors r1, r0 - negs r0, r1 - orrs r0, r1 - asrs r5, r0, 31 - movs r0, 0x10 - ands r5, r0 - b _0805D442 -_0805D434: - ldr r2, =gBattleMoves - ldrh r1, [r1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r5, [r0, 0x6] -_0805D442: - movs r0, 0x10 - ands r0, r5 - cmp r0, 0 - beq _0805D45C - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 8 - b _0805D48A - .pool -_0805D45C: - cmp r5, 0 - bne _0805D470 - bl sub_805D5F4 - lsls r0, 16 - lsrs r0, 16 - mov r2, r9 - orrs r2, r0 - mov r9, r2 - b _0805D490 -_0805D470: - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl battle_get_per_side_status - adds r1, r0, 0 - movs r2, 0x1 - movs r0, 0x1 - ands r0, r1 - eors r0, r2 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 16 -_0805D48A: - mov r1, r9 - orrs r1, r0 - mov r9, r1 -_0805D490: - mov r2, r9 - lsls r0, r2, 16 - lsrs r0, 16 -_0805D496: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_805D19C - - thumb_func_start sub_805D4A8 -sub_805D4A8: @ 805D4A8 - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - ldr r1, =gBattleMoves - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x6] - adds r3, r1, 0 - cmp r0, 0x40 - bls _0805D4C2 - b _0805D5EE -_0805D4C2: - lsls r0, 2 - ldr r1, =_0805D4D4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0805D4D4: - .4byte _0805D5D8 - .4byte _0805D5E6 - .4byte _0805D5D8 - .4byte _0805D5EE - .4byte _0805D5D8 - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5D8 - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EA - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5D8 - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5EE - .4byte _0805D5E6 -_0805D5D8: - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _0805D5EE -_0805D5E6: - movs r0, 0x2 - b _0805D5F0 -_0805D5EA: - movs r0, 0x1 - b _0805D5F0 -_0805D5EE: - movs r0, 0 -_0805D5F0: - pop {r1} - bx r1 - thumb_func_end sub_805D4A8 - - thumb_func_start sub_805D5F4 -sub_805D5F4: @ 805D5F4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0805D6FA - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0805D630 - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r0, 0x3 - b _0805D63E - .pool -_0805D630: - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r0, 0x2 -_0805D63E: - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, =gBattleMons - movs r2, 0x58 - mov r0, r8 - muls r0, r2 - adds r5, r0, r1 - adds r0, r7, 0 - muls r0, r2 - adds r6, r0, r1 - ldrh r0, [r5, 0x28] - ldrh r3, [r6, 0x28] - cmp r0, r3 - bne _0805D680 - bl Random - adds r3, r0, 0 - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - movs r2, 0x1 - movs r0, 0x1 - ands r0, r1 - eors r0, r2 - movs r1, 0x2 - ands r1, r3 - adds r0, r1 - b _0805D702 - .pool -_0805D680: - ldr r4, =gUnknown_0831C604 - ldr r0, =gUnknown_02024064 - mov r9, r0 - ldrb r0, [r0] - muls r0, r2 - adds r1, 0x48 - adds r0, r1 - ldr r0, [r0] - bl GetNatureFromPersonality - lsls r0, 24 - lsrs r0, 24 - adds r0, r4 - ldrb r4, [r0] - cmp r4, 0x1 - beq _0805D6CC - cmp r4, 0x1 - bgt _0805D6B4 - cmp r4, 0 - beq _0805D6BA - b _0805D6FA - .pool -_0805D6B4: - cmp r4, 0x2 - beq _0805D6DE - b _0805D6FA -_0805D6BA: - ldrh r0, [r5, 0x28] - ldrh r6, [r6, 0x28] - cmp r0, r6 - bls _0805D6C8 - mov r1, r8 - lsls r0, r1, 8 - b _0805D704 -_0805D6C8: - lsls r0, r7, 8 - b _0805D704 -_0805D6CC: - ldrh r0, [r5, 0x28] - ldrh r6, [r6, 0x28] - cmp r0, r6 - bcs _0805D6DA - mov r3, r8 - lsls r0, r3, 8 - b _0805D704 -_0805D6DA: - lsls r0, r7, 8 - b _0805D704 -_0805D6DE: - bl Random - adds r3, r0, 0 - mov r0, r9 - ldrb r1, [r0] - movs r2, 0x1 - movs r0, 0x1 - ands r0, r1 - eors r0, r2 - ands r4, r3 - adds r0, r4 - lsls r0, 24 - lsrs r0, 16 - b _0805D704 -_0805D6FA: - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - movs r0, 0x1 - eors r0, r1 -_0805D702: - lsls r0, 8 -_0805D704: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_805D5F4 - - thumb_func_start sub_805D714 -sub_805D714: @ 805D714 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - ldr r2, =gUnknown_02020630 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x3F - ldrb r3, [r0] - lsls r0, r3, 26 - cmp r0, 0 - bge _0805D766 - adds r0, r1, 0 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _0805D766 - adds r2, r1, 0 - adds r2, 0x2C - ldrb r1, [r2] - lsls r0, r1, 25 - cmp r0, 0 - bge _0805D75C - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - b _0805D766 - .pool -_0805D75C: - lsls r0, r3, 27 - cmp r0, 0 - bge _0805D766 - ldr r0, =DummyObjectCallback - str r0, [r4, 0x1C] -_0805D766: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805D714 - - thumb_func_start sub_805D770 -sub_805D770: @ 805D770 - push {r4,lr} - adds r4, r0, 0 - lsls r1, 24 - adds r3, r4, 0 - adds r3, 0x2C - ldrb r0, [r3] - movs r2, 0x40 - orrs r0, r2 - strb r0, [r3] - ldr r0, =DummyObjectCallback - str r0, [r4, 0x1C] - cmp r1, 0 - bne _0805D798 - adds r0, r4, 0 - movs r1, 0x1 - bl StartObjectRotScalAnim - b _0805D7A0 - .pool -_0805D798: - adds r0, r4, 0 - movs r1, 0x1 - bl StartObjectRotScalAnim -_0805D7A0: - adds r0, r4, 0 - bl AnimateObject - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_805D770 - - thumb_func_start sub_805D7AC -sub_805D7AC: @ 805D7AC - push {lr} - adds r2, r0, 0 - ldr r0, =gUnknown_020243FC - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0805D7E4 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x24] - lsls r0, 16 - cmp r0, 0 - bne _0805D7E4 - movs r1, 0x26 - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _0805D7E0 - ldr r0, =sub_805D7EC - b _0805D7E2 - .pool -_0805D7E0: - ldr r0, =DummyObjectCallback -_0805D7E2: - str r0, [r2, 0x1C] -_0805D7E4: - pop {r0} - bx r0 - .pool - thumb_func_end sub_805D7AC - - thumb_func_start sub_805D7EC -sub_805D7EC: @ 805D7EC - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x26] - subs r0, 0x2 - strh r0, [r1, 0x26] - lsls r0, 16 - cmp r0, 0 - bne _0805D800 - ldr r0, =DummyObjectCallback - str r0, [r1, 0x1C] -_0805D800: - pop {r0} - bx r0 - .pool - thumb_func_end sub_805D7EC - - thumb_func_start move_anim_start_t2_for_situation -move_anim_start_t2_for_situation: @ 805D808 - push {r4-r6,lr} - adds r4, r1, 0 - lsls r0, 24 - ldr r6, =gUnknown_020244D0 - ldr r1, [r6] - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - ldr r3, [r1, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r1] - movs r3, 0x10 - orrs r2, r3 - strb r2, [r1] - cmp r0, 0 - bne _0805D888 - cmp r4, 0x20 - bne _0805D844 - ldrb r0, [r5] - movs r1, 0x6 - bl move_anim_start_t2 - b _0805D902 - .pool -_0805D844: - cmp r4, 0x8 - beq _0805D850 - movs r0, 0x80 - ands r0, r4 - cmp r0, 0 - beq _0805D85A -_0805D850: - ldrb r0, [r5] - movs r1, 0 - bl move_anim_start_t2 - b _0805D902 -_0805D85A: - cmp r4, 0x10 - bne _0805D868 - ldrb r0, [r5] - movs r1, 0x2 - bl move_anim_start_t2 - b _0805D902 -_0805D868: - movs r0, 0x7 - ands r0, r4 - cmp r0, 0 - beq _0805D87A - ldrb r0, [r5] - movs r1, 0x4 - bl move_anim_start_t2 - b _0805D902 -_0805D87A: - cmp r4, 0x40 - bne _0805D8EA - ldrb r0, [r5] - movs r1, 0x5 - bl move_anim_start_t2 - b _0805D902 -_0805D888: - movs r0, 0xF0 - lsls r0, 12 - ands r0, r4 - cmp r0, 0 - beq _0805D89C - ldrb r0, [r5] - movs r1, 0x3 - bl move_anim_start_t2 - b _0805D902 -_0805D89C: - movs r0, 0x7 - ands r0, r4 - cmp r0, 0 - beq _0805D8AE - ldrb r0, [r5] - movs r1, 0x1 - bl move_anim_start_t2 - b _0805D902 -_0805D8AE: - movs r0, 0x80 - lsls r0, 21 - ands r0, r4 - cmp r0, 0 - beq _0805D8C2 - ldrb r0, [r5] - movs r1, 0x7 - bl move_anim_start_t2 - b _0805D902 -_0805D8C2: - movs r0, 0x80 - lsls r0, 20 - ands r0, r4 - cmp r0, 0 - beq _0805D8D6 - ldrb r0, [r5] - movs r1, 0x8 - bl move_anim_start_t2 - b _0805D902 -_0805D8D6: - movs r0, 0xE0 - lsls r0, 8 - ands r0, r4 - cmp r0, 0 - beq _0805D8EA - ldrb r0, [r5] - movs r1, 0x9 - bl move_anim_start_t2 - b _0805D902 -_0805D8EA: - ldr r0, [r6] - ldrb r2, [r5] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] -_0805D902: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end move_anim_start_t2_for_situation - - thumb_func_start move_anim_start_t3 -move_anim_start_t3: @ 805D908 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r4, [sp, 0x24] - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp] - lsls r3, 24 - lsrs r5, r3, 24 - lsls r4, 16 - lsrs r7, r4, 16 - cmp r5, 0 - bne _0805D950 - movs r0, 0x80 - ands r0, r7 - cmp r0, 0 - beq _0805D950 - ldr r0, =gUnknown_020244E4 - adds r0, r6, r0 - movs r2, 0x7F - adds r1, r7, 0 - ands r1, r2 - strb r1, [r0] - movs r0, 0x1 - b _0805DA1E - .pool -_0805D950: - ldr r0, =gUnknown_020244D0 - mov r9, r0 - ldr r0, [r0] - ldr r0, [r0] - lsls r4, r6, 2 - adds r0, r4, r0 - ldrb r1, [r0] - movs r2, 0x4 - mov r8, r2 - mov r0, r8 - ands r0, r1 - cmp r0, 0 - beq _0805D9CC - adds r0, r5, 0 - bl sub_805DAA0 - lsls r0, 24 - cmp r0, 0 - bne _0805D980 - movs r0, 0x1 - b _0805DA1E - .pool -_0805D980: - mov r1, r9 - ldr r0, [r1] - ldr r0, [r0] - adds r0, r4, r0 - ldrb r1, [r0] - mov r0, r8 - ands r0, r1 - cmp r0, 0 - beq _0805D9CC - cmp r5, 0x2 - bne _0805D9CC - ldr r1, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 - adds r0, r6, r0 - ldrb r2, [r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _0805D9CC - adds r0, r6, 0 - movs r1, 0x1 - bl refresh_graphics_maybe - adds r0, r6, 0 - bl sub_805E974 - movs r0, 0x1 - b _0805DA1E - .pool -_0805D9CC: - ldr r0, =gUnknown_02038436 - mov r2, r10 - strb r2, [r0] - ldr r0, =gUnknown_02038437 - mov r1, sp - ldrb r1, [r1] - strb r1, [r0] - ldr r4, =gUnknown_020244D0 - ldr r0, [r4] - ldr r0, [r0, 0x8] - strh r7, [r0] - ldr r0, =gUnknown_082C9320 - adds r1, r5, 0 - movs r2, 0 - bl move_something - ldr r0, =task0A_0803415C - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r6, [r1, 0x8] - ldr r0, [r4] - movs r2, 0x8 - ldrsh r1, [r1, r2] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0] - movs r0, 0 -_0805DA1E: - 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 move_anim_start_t3 - - thumb_func_start task0A_0803415C -task0A_0803415C: @ 805DA48 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gUnknown_020383F8 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, =gUnknown_020383FD - ldrb r0, [r0] - cmp r0, 0 - bne _0805DA8A - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x8 - ldrsh r0, [r0, r1] - ldr r2, [r2, 0x4] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1] - movs r0, 0x21 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, 0 - bl DestroyTask -_0805DA8A: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end task0A_0803415C - - thumb_func_start sub_805DAA0 -sub_805DAA0: @ 805DAA0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD - bgt _0805DAB4 - cmp r0, 0xA - bge _0805DAB8 - cmp r0, 0x2 - beq _0805DAB8 - b _0805DABC -_0805DAB4: - cmp r0, 0x11 - bne _0805DABC -_0805DAB8: - movs r0, 0x1 - b _0805DABE -_0805DABC: - movs r0, 0 -_0805DABE: - pop {r1} - bx r1 - thumb_func_end sub_805DAA0 - - thumb_func_start move_anim_start_t4 -move_anim_start_t4: @ 805DAC4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r3, 24 - lsrs r3, 24 - ldr r0, =gUnknown_02038436 - strb r1, [r0] - ldr r0, =gUnknown_02038437 - strb r2, [r0] - ldr r0, =gUnknown_082C937C - adds r1, r3, 0 - movs r2, 0 - bl move_something - ldr r0, =task0A_08034248 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - movs r2, 0x8 - ldrsh r1, [r1, r2] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end move_anim_start_t4 - - thumb_func_start task0A_08034248 -task0A_08034248: @ 805DB34 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gUnknown_020383F8 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, =gUnknown_020383FD - ldrb r0, [r0] - cmp r0, 0 - bne _0805DB76 - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x8 - ldrsh r0, [r0, r1] - ldr r2, [r2, 0x4] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1] - movs r0, 0x41 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, 0 - bl DestroyTask -_0805DB76: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end task0A_08034248 - - thumb_func_start sub_805DB8C -sub_805DB8C: @ 805DB8C - movs r0, 0 - bx lr - thumb_func_end sub_805DB8C - - thumb_func_start mplay_80342A4 -mplay_80342A4: @ 805DB90 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r5, 0 - bl mplay_has_finished_maybe - lsls r0, 24 - cmp r0, 0 - beq _0805DBD8 - ldr r2, =gUnknown_020244D0 - ldr r0, [r2] - ldr r1, [r0, 0x4] - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x8] - adds r1, 0x1 - strb r1, [r0, 0x8] - ldr r2, [r2] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x8] - cmp r0, 0x1D - bls _0805DBDC - ldr r0, =gMPlay_SE1 - bl m4aMPlayStop - ldr r0, =gMPlay_SE2 - bl m4aMPlayStop -_0805DBD8: - cmp r5, 0 - beq _0805DBF0 -_0805DBDC: - movs r0, 0x1 - b _0805DC02 - .pool -_0805DBF0: - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r1, [r0, 0x4] - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - strb r5, [r0, 0x8] - movs r0, 0 -_0805DC02: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end mplay_80342A4 - - thumb_func_start sub_805DC0C -sub_805DC0C: @ 805DC0C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - movs r1, 0 - bl GetMonData - str r0, [sp] - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r0, [r0] - mov r2, r8 - lsls r1, r2, 2 - adds r2, r1, r0 - ldrh r0, [r2, 0x2] - cmp r0, 0 - bne _0805DC50 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - ldr r6, [sp] - b _0805DC58 - .pool -_0805DC50: - ldrh r5, [r2, 0x2] - ldr r0, =gUnknown_020244BC - adds r0, r1, r0 - ldr r6, [r0] -_0805DC58: - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - mov r10, r0 - mov r0, r8 - bl battle_get_per_side_status - lsls r0, 24 - lsls r2, r5, 3 - ldr r1, =gMonFrontPicTable - adds r2, r1 - ldr r1, =gUnknown_020244D4 - ldr r1, [r1] - lsrs r0, 22 - adds r1, 0x4 - adds r1, r0 - ldr r1, [r1] - adds r0, r2, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack - mov r3, r8 - lsls r2, r3, 4 - movs r0, 0x80 - lsls r0, 1 - adds r7, r2, r0 - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r0, [r0] - lsls r1, r3, 2 - adds r0, r1, r0 - ldrh r0, [r0, 0x2] - str r1, [sp, 0x4] - mov r9, r2 - cmp r0, 0 - bne _0805DCBC - adds r0, r4, 0 - bl pokemon_get_pal - b _0805DCC6 - .pool -_0805DCBC: - adds r0, r5, 0 - mov r1, r10 - ldr r2, [sp] - bl species_and_otid_get_pal -_0805DCC6: - adds r6, r0, 0 - ldr r4, =0x0201c000 - adds r0, r6, 0 - adds r1, r4, 0 - bl LZDecompressWram - adds r0, r4, 0 - adds r1, r7, 0 - movs r2, 0x20 - bl LoadPalette - mov r1, r9 - adds r1, 0x80 - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, =0x00000181 - cmp r5, r0 - bne _0805DD1A - movs r7, 0x80 - lsls r7, 1 - add r7, r9 - ldr r5, =gUnknown_0202449C - ldr r1, [r5] - movs r4, 0x80 - lsls r4, 1 - adds r1, r4 - adds r0, r6, 0 - bl LZDecompressWram - ldr r0, =gUnknown_020244E4 - add r0, r8 - ldrb r1, [r0] - lsls r1, 5 - adds r1, r4 - ldr r0, [r5] - adds r0, r1 - adds r1, r7, 0 - movs r2, 0x20 - bl LoadPalette -_0805DD1A: - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r0, [r0] - ldr r1, [sp, 0x4] - adds r0, r1, r0 - ldrh r0, [r0, 0x2] - cmp r0, 0 - beq _0805DD46 - ldr r3, =0x00007fff - adds r0, r7, 0 - movs r1, 0x10 - movs r2, 0x6 - bl BlendPalette - lsls r1, r7, 1 - ldr r0, =gPlttBufferFaded - adds r0, r1, r0 - ldr r2, =gPlttBufferUnfaded - adds r1, r2 - ldr r2, =0x04000008 - bl CpuSet -_0805DD46: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805DC0C - - thumb_func_start sub_805DD7C -sub_805DD7C: @ 805DD7C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r6, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - movs r1, 0 - bl GetMonData - str r0, [sp] - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r0, [r0] - mov r2, r8 - lsls r1, r2, 2 - adds r2, r1, r0 - ldrh r0, [r2, 0x2] - cmp r0, 0 - bne _0805DDC0 - adds r0, r6, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - ldr r4, [sp] - b _0805DDC8 - .pool -_0805DDC0: - ldrh r5, [r2, 0x2] - ldr r0, =gUnknown_020244BC - adds r0, r1, r0 - ldr r4, [r0] -_0805DDC8: - adds r0, r6, 0 - movs r1, 0x1 - bl GetMonData - str r0, [sp, 0x4] - mov r0, r8 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0x1 - mov r1, r8 - bl sub_80688F8 - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - lsls r1, 2 - mov r10, r1 - cmp r0, 0x1 - beq _0805DE00 - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r0, [r0] - add r0, r10 - ldrh r0, [r0, 0x2] - cmp r0, 0 - beq _0805DE2C -_0805DE00: - lsls r0, r5, 3 - ldr r1, =gMonBackPicTable - adds r0, r1 - ldr r1, =gUnknown_020244D4 - ldr r1, [r1] - lsls r2, r7, 2 - adds r1, 0x4 - adds r1, r2 - ldr r1, [r1] - adds r2, r5, 0 - adds r3, r4, 0 - bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack - b _0805DE46 - .pool -_0805DE2C: - lsls r0, r5, 3 - ldr r1, =gMonBackPicTable - adds r0, r1 - ldr r1, =gUnknown_020244D4 - ldr r1, [r1] - lsls r2, r7, 2 - adds r1, 0x4 - adds r1, r2 - ldr r1, [r1] - adds r2, r5, 0 - adds r3, r4, 0 - bl DecompressMonPic_DetectFrontOrBack -_0805DE46: - mov r2, r8 - lsls r1, r2, 4 - movs r0, 0x80 - lsls r0, 1 - adds r7, r1, r0 - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r0, [r0] - add r0, r10 - ldrh r0, [r0, 0x2] - mov r9, r1 - cmp r0, 0 - bne _0805DE74 - adds r0, r6, 0 - bl pokemon_get_pal - b _0805DE7E - .pool -_0805DE74: - adds r0, r5, 0 - ldr r1, [sp, 0x4] - ldr r2, [sp] - bl species_and_otid_get_pal -_0805DE7E: - adds r6, r0, 0 - ldr r4, =0x0201c000 - adds r0, r6, 0 - adds r1, r4, 0 - bl LZDecompressWram - adds r0, r4, 0 - adds r1, r7, 0 - movs r2, 0x20 - bl LoadPalette - mov r1, r9 - adds r1, 0x80 - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, =0x00000181 - cmp r5, r0 - bne _0805DED2 - movs r7, 0x80 - lsls r7, 1 - add r7, r9 - ldr r5, =gUnknown_0202449C - ldr r1, [r5] - movs r4, 0x80 - lsls r4, 1 - adds r1, r4 - adds r0, r6, 0 - bl LZDecompressWram - ldr r0, =gUnknown_020244E4 - add r0, r8 - ldrb r1, [r0] - lsls r1, 5 - adds r1, r4 - ldr r0, [r5] - adds r0, r1 - adds r1, r7, 0 - movs r2, 0x20 - bl LoadPalette -_0805DED2: - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r0, [r0] - add r0, r10 - ldrh r0, [r0, 0x2] - cmp r0, 0 - beq _0805DEFC - ldr r3, =0x00007fff - adds r0, r7, 0 - movs r1, 0x10 - movs r2, 0x6 - bl BlendPalette - lsls r1, r7, 1 - ldr r0, =gPlttBufferFaded - adds r0, r1, r0 - ldr r2, =gPlttBufferUnfaded - adds r1, r2 - ldr r2, =0x04000008 - bl CpuSet -_0805DEFC: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805DD7C - - thumb_func_start nullsub_23 -nullsub_23: @ 805DF30 - bx lr - thumb_func_end nullsub_23 - - thumb_func_start nullsub_24 -nullsub_24: @ 805DF34 - bx lr - thumb_func_end nullsub_24 - - thumb_func_start sub_805DF38 -sub_805DF38: @ 805DF38 - push {r4,lr} - adds r4, r0, 0 - adds r0, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_per_side_status - lsls r0, 24 - lsls r4, 3 - ldr r2, =gTrainerFrontPicTable - adds r2, r4, r2 - ldr r1, =gUnknown_020244D4 - ldr r1, [r1] - lsrs r0, 22 - adds r1, 0x4 - adds r1, r0 - ldr r1, [r1] - adds r0, r2, 0 - movs r2, 0 - bl DecompressPicFromTable_2 - ldr r0, =gTrainerFrontPicPaletteTable - adds r4, r0 - adds r0, r4, 0 - bl LoadCompressedObjectPalette - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805DF38 - - thumb_func_start sub_805DF84 -sub_805DF84: @ 805DF84 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - lsls r5, 16 - lsrs r5, 16 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl battle_get_per_side_status - lsls r0, 24 - lsls r5, 3 - ldr r2, =gTrainerBackPicTable - adds r2, r5, r2 - ldr r1, =gUnknown_020244D4 - ldr r1, [r1] - lsrs r0, 22 - adds r1, 0x4 - adds r1, r0 - ldr r1, [r1] - adds r0, r2, 0 - movs r2, 0 - bl DecompressPicFromTable_2 - ldr r0, =gTrainerBackPicPaletteTable - adds r5, r0 - ldr r0, [r5] - lsls r4, 20 - movs r1, 0x80 - lsls r1, 17 - adds r4, r1 - lsrs r4, 16 - adds r1, r4, 0 - movs r2, 0x20 - bl LoadCompressedPalette - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805DF84 - - thumb_func_start nullsub_25 -nullsub_25: @ 805DFE0 - bx lr - thumb_func_end nullsub_25 - - thumb_func_start sub_805DFE4 -sub_805DFE4: @ 805DFE4 - push {lr} - lsls r0, 16 - ldr r1, =gTrainerFrontPicPaletteTable - lsrs r0, 13 - adds r0, r1 - ldrh r0, [r0, 0x4] - bl FreeObjectPaletteByTag - pop {r0} - bx r0 - .pool - thumb_func_end sub_805DFE4 - - thumb_func_start sub_805DFFC -sub_805DFFC: @ 805DFFC - push {r4-r7,lr} - ldr r4, =gUnknown_0832C128 - adds r0, r4, 0 - bl LoadTaggedObjectPalette - adds r4, 0x8 - adds r0, r4, 0 - bl LoadTaggedObjectPalette - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - bne _0805E034 - ldr r0, =gUnknown_0832C0D0 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0832C0D8 - bl LoadCompressedObjectPic - movs r5, 0x2 - b _0805E056 - .pool -_0805E034: - ldr r4, =gUnknown_0832C0E0 - adds r0, r4, 0 - bl LoadCompressedObjectPic - adds r4, 0x8 - adds r0, r4, 0 - bl LoadCompressedObjectPic - ldr r4, =gUnknown_0832C0F0 - adds r0, r4, 0 - bl LoadCompressedObjectPic - adds r4, 0x8 - adds r0, r4, 0 - bl LoadCompressedObjectPic - movs r5, 0x4 -_0805E056: - movs r4, 0 - cmp r4, r5 - bcs _0805E076 - ldr r7, =gUnknown_02024076 - ldr r6, =gUnknown_0832C108 -_0805E060: - adds r0, r4, r7 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r6 - bl LoadCompressedObjectPic - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _0805E060 -_0805E076: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805DFFC - - thumb_func_start sub_805E08C -sub_805E08C: @ 805E08C - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - movs r6, 0 - cmp r4, 0 - bne _0805E09C - b _0805E1AE -_0805E09C: - cmp r4, 0x1 - bne _0805E0B8 - ldr r4, =gUnknown_0832C128 - adds r0, r4, 0 - bl LoadTaggedObjectPalette - adds r4, 0x8 - adds r0, r4, 0 - bl LoadTaggedObjectPalette - b _0805E1AE - .pool -_0805E0B8: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - bne _0805E120 - cmp r4, 0x2 - bne _0805E0F0 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0805E0E4 - ldr r0, =gUnknown_0832C100 - bl LoadCompressedObjectPic - b _0805E1AE - .pool -_0805E0E4: - ldr r0, =gUnknown_0832C0D0 - bl LoadCompressedObjectPic - b _0805E1AE - .pool -_0805E0F0: - cmp r4, 0x3 - bne _0805E100 - ldr r0, =gUnknown_0832C0D8 - bl LoadCompressedObjectPic - b _0805E1AE - .pool -_0805E100: - cmp r4, 0x4 - bne _0805E110 - ldr r0, =gUnknown_02024076 - ldrb r0, [r0] - b _0805E198 - .pool -_0805E110: - cmp r4, 0x5 - bne _0805E1AC - ldr r0, =gUnknown_02024076 - ldrb r0, [r0, 0x1] - b _0805E198 - .pool -_0805E120: - cmp r4, 0x2 - bne _0805E130 - ldr r0, =gUnknown_0832C0E0 - bl LoadCompressedObjectPic - b _0805E1AE - .pool -_0805E130: - cmp r4, 0x3 - bne _0805E140 - ldr r0, =gUnknown_0832C0E8 - bl LoadCompressedObjectPic - b _0805E1AE - .pool -_0805E140: - cmp r4, 0x4 - bne _0805E150 - ldr r0, =gUnknown_0832C0F0 - bl LoadCompressedObjectPic - b _0805E1AE - .pool -_0805E150: - cmp r4, 0x5 - bne _0805E160 - ldr r0, =gUnknown_0832C0F8 - bl LoadCompressedObjectPic - b _0805E1AE - .pool -_0805E160: - cmp r4, 0x6 - bne _0805E170 - ldr r0, =gUnknown_02024076 - ldrb r0, [r0] - b _0805E198 - .pool -_0805E170: - cmp r4, 0x7 - bne _0805E180 - ldr r0, =gUnknown_02024076 - ldrb r0, [r0, 0x1] - b _0805E198 - .pool -_0805E180: - cmp r4, 0x8 - bne _0805E190 - ldr r0, =gUnknown_02024076 - ldrb r0, [r0, 0x2] - b _0805E198 - .pool -_0805E190: - cmp r5, 0x9 - bne _0805E1AC - ldr r0, =gUnknown_02024076 - ldrb r0, [r0, 0x3] -_0805E198: - lsls r0, 3 - ldr r1, =gUnknown_0832C108 - adds r0, r1 - bl LoadCompressedObjectPic - b _0805E1AE - .pool -_0805E1AC: - movs r6, 0x1 -_0805E1AE: - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_805E08C - - thumb_func_start load_gfxc_health_bar -load_gfxc_health_bar: @ 805E1B8 - push {lr} - ldr r0, =gUnknown_08C093F0 - ldr r1, =gUnknown_020244D4 - ldr r1, [r1] - movs r2, 0xBA - lsls r2, 1 - adds r1, r2 - ldr r1, [r1] - bl LZDecompressWram - pop {r0} - bx r0 - .pool - thumb_func_end load_gfxc_health_bar - - thumb_func_start battle_load_something -battle_load_something: @ 805E1D8 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r6, 0 - ldrb r0, [r5] - cmp r0, 0x6 - bls _0805E1E8 - b _0805E346 -_0805E1E8: - lsls r0, 2 - ldr r1, =_0805E1F8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0805E1F8: - .4byte _0805E214 - .4byte _0805E21A - .4byte _0805E324 - .4byte _0805E230 - .4byte _0805E260 - .4byte _0805E29C - .4byte _0805E33C -_0805E214: - bl sub_805E378 - b _0805E324 -_0805E21A: - ldrb r0, [r4] - bl sub_805E08C - lsls r0, 24 - cmp r0, 0 - beq _0805E228 - b _0805E320 -_0805E228: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _0805E346 -_0805E230: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0805E24C - ldrb r0, [r4] - cmp r0, 0 - bne _0805E24C - bl battle_make_oam_safari_battle - b _0805E252 - .pool -_0805E24C: - ldrb r0, [r4] - bl battle_make_oam_normal_battle -_0805E252: - ldr r2, =gUnknown_03005D70 - ldrb r1, [r4] - adds r1, r2 - strb r0, [r1] - b _0805E30E - .pool -_0805E260: - ldrb r0, [r4] - bl sub_8072B18 - ldr r0, =gUnknown_02024076 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, 0x1 - bhi _0805E288 - ldr r0, =gUnknown_03005D70 - adds r0, r1, r0 - ldrb r0, [r0] - movs r1, 0 - bl nullsub_30 - b _0805E30E - .pool -_0805E288: - ldr r0, =gUnknown_03005D70 - adds r0, r1, r0 - ldrb r0, [r0] - movs r1, 0x1 - bl nullsub_30 - b _0805E30E - .pool -_0805E29C: - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0805E2E4 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0805E302 - ldr r0, =gUnknown_03005D70 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, =gUnknown_0202406E - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gPlayerParty - adds r1, r2 - movs r2, 0 - bl healthbar_draw_field_maybe - b _0805E302 - .pool -_0805E2E4: - ldr r0, =gUnknown_03005D70 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, =gUnknown_0202406E - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gEnemyParty - adds r1, r2 - movs r2, 0 - bl healthbar_draw_field_maybe -_0805E302: - ldr r1, =gUnknown_03005D70 - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - bl sub_8072984 -_0805E30E: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, =gUnknown_0202406C - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bne _0805E346 -_0805E320: - movs r0, 0 - strb r0, [r4] -_0805E324: - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _0805E346 - .pool -_0805E33C: - bl sub_805EC84 - bl sub_81B8C68 - movs r6, 0x1 -_0805E346: - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end battle_load_something - - thumb_func_start sub_805E350 -sub_805E350: @ 805E350 - push {r4,lr} - ldr r4, =gUnknown_020244D0 - ldr r0, [r4] - ldr r0, [r0, 0x4] - movs r1, 0 - movs r2, 0x30 - bl memset - ldr r0, [r4] - ldr r0, [r0, 0x8] - movs r1, 0 - movs r2, 0x10 - bl memset - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805E350 - - thumb_func_start sub_805E378 -sub_805E378: @ 805E378 - push {lr} - bl sub_805E350 - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r0, [r0] - movs r1, 0 - movs r2, 0x10 - bl memset - pop {r0} - bx r0 - .pool - thumb_func_end sub_805E378 - - thumb_func_start sub_805E394 -sub_805E394: @ 805E394 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r4, 0 - ldr r5, =gUnknown_0202406C - ldrb r0, [r5] - cmp r4, r0 - bge _0805E3EA - ldr r0, =gUnknown_02020630 - mov r9, r0 - movs r0, 0x1 - mov r12, r0 - movs r0, 0x2 - negs r0, r0 - mov r8, r0 - ldr r7, =gUnknown_020244D0 - ldr r6, =gUnknown_020241E4 -_0805E3B8: - ldr r0, [r7] - ldr r0, [r0] - lsls r3, r4, 2 - adds r3, r0 - adds r0, r4, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - adds r0, 0x3E - ldrb r1, [r0] - lsls r1, 29 - lsrs r1, 31 - mov r0, r12 - ands r1, r0 - ldrb r2, [r3] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - adds r4, 0x1 - ldrb r0, [r5] - cmp r4, r0 - blt _0805E3B8 -_0805E3EA: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805E394 - - thumb_func_start sub_805E408 -sub_805E408: @ 805E408 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_020244D0 - ldr r1, [r1] - ldr r1, [r1] - lsls r3, r0, 2 - adds r3, r1 - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - lsls r1, 29 - lsrs r1, 31 - ldrb r2, [r3] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bx lr - .pool - thumb_func_end sub_805E408 - - thumb_func_start sub_805E448 -sub_805E448: @ 805E448 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp] - lsls r2, 24 - cmp r2, 0 - beq _0805E51C - ldr r0, =gUnknown_020241E4 - adds r5, r7, r0 - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - mov r8, r1 - add r0, r8 - ldr r4, =gUnknown_020244D0 - ldr r1, [r4] - ldr r1, [r1, 0x8] - ldrb r1, [r1] - bl StartObjectImageAnim - lsls r0, r7, 20 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r6, r0, 16 - ldr r2, =gUnknown_0202449C - ldr r0, [r4] - ldr r0, [r0, 0x8] - ldrh r1, [r0] - lsls r1, 5 - movs r3, 0x80 - lsls r3, 1 - adds r1, r3 - ldr r0, [r2] - adds r0, r1 - adds r1, r6, 0 - movs r2, 0x20 - bl LoadPalette - ldr r1, =gUnknown_020244E4 - adds r1, r7, r1 - ldr r0, [r4] - ldr r0, [r0, 0x8] - ldrh r0, [r0] - strb r0, [r1] - ldr r0, [r4] - ldr r1, [r0] - lsls r0, r7, 2 - adds r0, r1 - ldrh r0, [r0, 0x2] - cmp r0, 0 - beq _0805E4DE - ldr r3, =0x00007fff - adds r0, r6, 0 - movs r1, 0x10 - movs r2, 0x6 - bl BlendPalette - lsls r1, r6, 1 - ldr r0, =gPlttBufferFaded - adds r0, r1, r0 - ldr r2, =gPlttBufferUnfaded - adds r1, r2 - ldr r2, =0x04000008 - bl CpuSet -_0805E4DE: - adds r0, r7, 0 - bl sub_80A6138 - ldrb r2, [r5] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - add r1, r8 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x22] - b _0805E77A - .pool -_0805E51C: - bl sub_80A4DF0 - lsls r0, 24 - cmp r0, 0 - beq _0805E558 - movs r0, 0 - mov r10, r0 - ldr r0, =gUnknown_02039F34 - ldr r0, [r0] - ldr r2, [r0, 0x18] - ldrh r1, [r2, 0x2] - mov r8, r1 - ldr r3, [r2, 0x8] - mov r9, r3 - ldr r4, [r2, 0xC] - lsls r0, r1, 3 - ldr r1, =gMonBackPicTable - adds r0, r1 - ldr r1, =gUnknown_020244D4 - ldr r1, [r1] - ldr r1, [r1, 0x4] - ldr r3, [r2, 0x10] - b _0805E5FA - .pool -_0805E558: - adds r0, r7, 0 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r0, [sp] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0805E58C - ldr r1, =gUnknown_0202406E - ldr r2, [sp] - lsls r0, r2, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - b _0805E59C - .pool -_0805E58C: - ldr r1, =gUnknown_0202406E - ldr r3, [sp] - lsls r0, r3, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty -_0805E59C: - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - adds r0, r7, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0805E618 - ldr r0, =gUnknown_0202406E - lsls r4, r7, 1 - adds r4, r0 - ldrh r0, [r4] - movs r6, 0x64 - muls r0, r6 - ldr r5, =gPlayerParty - adds r0, r5 - movs r1, 0 - bl GetMonData - mov r9, r0 - ldrh r0, [r4] - muls r0, r6 - adds r0, r5 - movs r1, 0x1 - bl GetMonData - adds r4, r0, 0 - mov r1, r8 - lsls r0, r1, 3 - ldr r1, =gMonBackPicTable - adds r0, r1 - ldr r1, =gUnknown_020244D4 - ldr r1, [r1] - mov r3, r10 - lsls r2, r3, 2 - adds r1, 0x4 - adds r1, r2 - ldr r1, [r1] - ldr r3, =gUnknown_020244BC - lsls r2, r7, 2 - adds r2, r3 - ldr r3, [r2] -_0805E5FA: - mov r2, r8 - bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack - b _0805E662 - .pool -_0805E618: - ldr r0, =gUnknown_0202406E - lsls r4, r7, 1 - adds r4, r0 - ldrh r0, [r4] - movs r6, 0x64 - muls r0, r6 - ldr r5, =gEnemyParty - adds r0, r5 - movs r1, 0 - bl GetMonData - mov r9, r0 - ldrh r0, [r4] - muls r0, r6 - adds r0, r5 - movs r1, 0x1 - bl GetMonData - adds r4, r0, 0 - mov r1, r8 - lsls r0, r1, 3 - ldr r1, =gMonFrontPicTable - adds r0, r1 - ldr r1, =gUnknown_020244D4 - ldr r1, [r1] - mov r3, r10 - lsls r2, r3, 2 - adds r1, 0x4 - adds r1, r2 - ldr r1, [r1] - ldr r3, =gUnknown_020244BC - lsls r2, r7, 2 - adds r2, r3 - ldr r3, [r2] - mov r2, r8 - bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack -_0805E662: - ldr r0, =gUnknown_020244D4 - ldr r0, [r0] - mov r2, r10 - lsls r1, r2, 2 - adds r0, 0x4 - adds r0, r1 - ldr r2, [r0] - ldr r0, =gUnknown_020241E4 - adds r0, r7 - mov r10, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r3, =gUnknown_02020630 - adds r0, r3 - ldrh r0, [r0, 0x4] - lsls r0, 22 - lsrs r0, 17 - ldr r1, =0x06010000 - adds r0, r1 - ldr r1, =0x040000d4 - str r2, [r1] - str r0, [r1, 0x4] - ldr r0, =0x84000200 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - lsls r0, r7, 20 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r6, r0, 16 - mov r0, r8 - adds r1, r4, 0 - mov r2, r9 - bl species_and_otid_get_pal - mov r9, r0 - ldr r4, =0x0201c000 - adds r1, r4, 0 - bl LZDecompressWram - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, =0x00000181 - cmp r8, r0 - bne _0805E70A - mov r2, r10 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r1, 0x8 - adds r0, r1 - ldr r1, =gUnknown_08309AAC - mov r3, r8 - lsls r2, r3, 2 - adds r1, r2 - ldr r1, [r1] - str r1, [r0] - ldr r5, =gUnknown_0202449C - ldr r1, [r5] - movs r4, 0x80 - lsls r4, 1 - adds r1, r4 - mov r0, r9 - bl LZDecompressWram - ldr r0, =gUnknown_020244E4 - ldr r1, [sp] - adds r0, r1, r0 - ldrb r1, [r0] - lsls r1, 5 - adds r1, r4 - ldr r0, [r5] - adds r0, r1 - adds r1, r6, 0 - movs r2, 0x20 - bl LoadPalette -_0805E70A: - ldr r3, =0x00007fff - adds r0, r6, 0 - movs r1, 0x10 - movs r2, 0x6 - bl BlendPalette - lsls r1, r6, 1 - ldr r0, =gPlttBufferFaded - adds r0, r1, r0 - ldr r2, =gPlttBufferUnfaded - adds r1, r2 - ldr r2, =0x04000008 - bl CpuSet - bl sub_80A4DF0 - lsls r0, 24 - cmp r0, 0 - bne _0805E74A - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r7, 2 - adds r0, r1 - mov r2, r8 - strh r2, [r0, 0x2] - ldr r0, =gUnknown_020244E4 - adds r1, r7, r0 - ldr r3, [sp] - adds r0, r3, r0 - ldrb r0, [r0] - strb r0, [r1] -_0805E74A: - adds r0, r7, 0 - bl sub_80A6138 - mov r1, r10 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - ldr r2, =gUnknown_02020630 - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x22] - mov r3, r10 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, =gUnknown_020244E4 - adds r1, r7, r1 - ldrb r1, [r1] - bl StartObjectImageAnim -_0805E77A: - 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_805E448 - - thumb_func_start sub_805E7DC -sub_805E7DC: @ 805E7DC - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - lsls r1, 24 - cmp r1, 0 - bne _0805E898 - bl sub_80A4DF0 - lsls r0, 24 - cmp r0, 0 - beq _0805E7F8 - movs r4, 0 - b _0805E802 -_0805E7F8: - adds r0, r4, 0 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r4, r0, 24 -_0805E802: - bl sub_80A4DF0 - lsls r0, 24 - cmp r0, 0 - beq _0805E814 - ldr r0, =gUnknown_08C2D120 - b _0805E822 - .pool -_0805E814: - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _0805E83C - ldr r0, =gUnknown_08C2CEE0 -_0805E822: - ldr r1, =gUnknown_020244D4 - ldr r1, [r1] - lsls r4, 2 - adds r1, 0x4 - adds r1, r4 - ldr r1, [r1] - bl LZDecompressVram - b _0805E84E - .pool -_0805E83C: - ldr r0, =gUnknown_08C2D120 - ldr r1, =gUnknown_020244D4 - ldr r1, [r1] - lsls r4, 2 - adds r1, 0x4 - adds r1, r4 - ldr r1, [r1] - bl LZDecompressVram -_0805E84E: - movs r3, 0x1 - lsls r6, r5, 4 - ldr r7, =gUnknown_08C2CEBC - ldr r0, =gUnknown_020244D4 - ldr r0, [r0] - adds r0, 0x4 - adds r4, r0, r4 - ldr r2, =0x040000d4 - ldr r5, =0x84000200 -_0805E860: - ldr r0, [r4] - lsls r1, r3, 11 - adds r1, r0, r1 - str r0, [r2] - str r1, [r2, 0x4] - str r5, [r2, 0x8] - ldr r0, [r2, 0x8] - adds r3, 0x1 - cmp r3, 0x3 - ble _0805E860 - movs r0, 0x80 - lsls r0, 1 - adds r1, r6, r0 - adds r0, r7, 0 - movs r2, 0x20 - bl LoadCompressedPalette - b _0805E8E6 - .pool -_0805E898: - bl sub_80A4DF0 - lsls r0, 24 - cmp r0, 0 - bne _0805E8E6 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _0805E8D0 - ldr r1, =gUnknown_0202406E - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - adds r1, r4, 0 - bl sub_805DC0C - b _0805E8E6 - .pool -_0805E8D0: - ldr r1, =gUnknown_0202406E - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - adds r1, r5, 0 - bl sub_805DD7C -_0805E8E6: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805E7DC - - thumb_func_start refresh_graphics_maybe -refresh_graphics_maybe: @ 805E8F4 - push {r4-r6,lr} - adds r5, r1, 0 - adds r4, r2, 0 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_805E7DC - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r4, r0, r1 - ldr r0, =gUnknown_020244E4 - adds r0, r6, r0 - ldrb r1, [r0] - adds r0, r4, 0 - bl StartObjectImageAnim - cmp r5, 0 - bne _0805E938 - adds r0, r6, 0 - bl sub_80A614C - b _0805E93E - .pool -_0805E938: - adds r0, r6, 0 - bl sub_80A6138 -_0805E93E: - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end refresh_graphics_maybe - - thumb_func_start sub_805E94C -sub_805E94C: @ 805E94C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0xA4 - bne _0805E96C - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r0, [r0] - lsls r1, r2, 2 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] -_0805E96C: - pop {r0} - bx r0 - .pool - thumb_func_end sub_805E94C - - thumb_func_start sub_805E974 -sub_805E974: @ 805E974 - lsls r0, 24 - ldr r1, =gUnknown_020244D0 - ldr r1, [r1] - ldr r1, [r1] - lsrs r0, 22 - adds r0, r1 - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - bx lr - .pool - thumb_func_end sub_805E974 - - thumb_func_start sub_805E990 -sub_805E990: @ 805E990 - push {r4-r7,lr} - adds r5, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - adds r7, r6, 0 - movs r1, 0x39 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0x3A - bl GetMonData - adds r1, r0, 0 - lsls r4, 16 - asrs r4, 16 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_8075060 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0805EA08 - ldr r7, =gUnknown_020244D0 - ldr r0, [r7] - ldr r2, [r0] - lsls r4, r6, 2 - adds r0, r4, r2 - ldrb r1, [r0] - movs r5, 0x2 - movs r3, 0x2 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _0805EA5A - adds r0, r6, 0 - eors r0, r5 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _0805E9F6 - movs r0, 0x5A - bl audio_play -_0805E9F6: - ldr r0, [r7] - ldr r1, [r0] - adds r1, r4, r1 - ldrb r0, [r1] - orrs r0, r5 - strb r0, [r1] - b _0805EA5A - .pool -_0805EA08: - ldr r4, =gUnknown_020244D0 - ldr r0, [r4] - ldr r0, [r0] - lsls r1, r6, 2 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - bne _0805EA34 - movs r0, 0x5A - bl m4aSongNumStop - b _0805EA5A - .pool -_0805EA34: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _0805EA5A - ldr r1, [r4] - movs r0, 0x2 - eors r7, r0 - ldr r1, [r1] - lsls r0, r7, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0805EA5A - movs r0, 0x5A - bl m4aSongNumStop -_0805EA5A: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_805E990 - - thumb_func_start sub_805EA60 -sub_805EA60: @ 805EA60 - push {r4-r6,lr} - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, =gUnknown_020244D0 - ldr r0, [r5] - ldr r0, [r0] - lsls r1, r4, 2 - adds r1, r0 - ldrb r2, [r1] - movs r6, 0x3 - negs r6, r6 - adds r0, r6, 0 - ands r0, r2 - strb r0, [r1] - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _0805EAA2 - ldr r2, [r5] - movs r0, 0x2 - adds r1, r4, 0 - eors r1, r0 - ldr r0, [r2] - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1] - adds r0, r6, 0 - ands r0, r2 - strb r0, [r1] -_0805EAA2: - movs r0, 0x5A - bl m4aSongNumStop - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805EA60 - - thumb_func_start sub_805EAB4 -sub_805EAB4: @ 805EAB4 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x39 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0x3A - bl GetMonData - adds r1, r0, 0 - lsls r4, 16 - asrs r4, 16 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_8075060 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_805EAB4 - - thumb_func_start sub_805EAE8 -sub_805EAE8: @ 805EAE8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, =gMain - ldr r1, =0x00000439 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0805EB7E - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r0, 0x2 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r5, =gUnknown_0202406E - mov r1, r8 - lsls r0, r1, 1 - adds r0, r5 - ldrb r0, [r0] - bl pokemon_order_func - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r1, r9 - lsls r0, r1, 1 - adds r0, r5 - ldrb r0, [r0] - bl pokemon_order_func - lsls r0, 24 - lsrs r5, r0, 24 - movs r7, 0x64 - adds r0, r4, 0 - muls r0, r7 - ldr r6, =gPlayerParty - adds r4, r0, r6 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0805EB5A - adds r0, r4, 0 - mov r1, r8 - bl sub_805E990 -_0805EB5A: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _0805EB7E - adds r0, r5, 0 - muls r0, r7 - adds r4, r0, r6 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0805EB7E - adds r0, r4, 0 - mov r1, r9 - bl sub_805E990 -_0805EB7E: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805EAE8 - - thumb_func_start sub_805EB9C -sub_805EB9C: @ 805EB9C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r5, 0 - ldr r0, =gUnknown_0202406C - ldrb r0, [r0] - cmp r5, r0 - bge _0805EC6C - movs r0, 0x3 - mov r10, r8 - mov r1, r10 - ands r1, r0 - mov r10, r1 - movs r6, 0 - movs r2, 0x3F - negs r2, r2 - mov r9, r2 -_0805EBC8: - lsls r0, r5, 24 - lsrs r0, 24 - bl sub_80A6A90 - lsls r0, 24 - cmp r0, 0 - beq _0805EC60 - ldr r4, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 - adds r3, r5, r0 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x1] - movs r7, 0x4 - negs r7, r7 - adds r2, r7, 0 - ands r1, r2 - mov r2, r10 - orrs r1, r2 - strb r1, [r0, 0x1] - mov r7, r8 - cmp r7, 0 - bne _0805EC3C - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r2, [r0, 0x4] - adds r2, r6, r2 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - strb r0, [r2, 0x6] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x3] - mov r2, r9 - ands r1, r2 - strb r1, [r0, 0x3] - b _0805EC60 - .pool -_0805EC3C: - ldrb r0, [r3] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r4 - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r0, [r0, 0x4] - adds r0, r6, r0 - ldrb r1, [r0, 0x6] - movs r0, 0x1F - ands r1, r0 - lsls r1, 1 - ldrb r0, [r2, 0x3] - mov r3, r9 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x3] -_0805EC60: - adds r6, 0xC - adds r5, 0x1 - ldr r0, =gUnknown_0202406C - ldrb r0, [r0] - cmp r5, r0 - blt _0805EBC8 -_0805EC6C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805EB9C - - thumb_func_start sub_805EC84 -sub_805EC84: @ 805EC84 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, =gUnknown_0831C6A0 - bl LoadCompressedObjectPic - movs r0, 0x1 - bl battle_get_side_with_given_state - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, =gUnknown_0831C6B0 - mov r8, r0 - adds r0, r5, 0 - movs r1, 0 - bl sub_80A5C6C - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80A5C6C - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 8 - movs r0, 0xE8 - lsls r0, 13 - adds r2, r0 - asrs r2, 16 - mov r0, r8 - adds r1, r4, 0 - movs r3, 0xC8 - bl AddObjectToFront - ldr r6, =gUnknown_020244D0 - ldr r1, [r6] - ldr r2, [r1, 0x4] - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 2 - adds r2, r1, r2 - strb r0, [r2, 0x7] - ldr r7, =gUnknown_02020630 - ldr r0, [r6] - ldr r0, [r0, 0x4] - adds r1, r0 - ldrb r1, [r1, 0x7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r5, [r0, 0x2E] - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _0805ED56 - movs r0, 0x3 - bl battle_get_side_with_given_state - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r5, 0 - movs r1, 0 - bl sub_80A5C6C - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80A5C6C - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 8 - movs r0, 0xE8 - lsls r0, 13 - adds r2, r0 - asrs r2, 16 - mov r0, r8 - adds r1, r4, 0 - movs r3, 0xC8 - bl AddObjectToFront - ldr r1, [r6] - ldr r2, [r1, 0x4] - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 2 - adds r2, r1, r2 - strb r0, [r2, 0x7] - ldr r0, [r6] - ldr r0, [r0, 0x4] - adds r1, r0 - ldrb r1, [r1, 0x7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r5, [r0, 0x2E] -_0805ED56: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805EC84 - - thumb_func_start sub_805ED70 -@ int sub_805ED70(obj *a1) -sub_805ED70: @ 805ED70 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - movs r0, 0 - mov r8, r0 - ldrh r0, [r5, 0x2E] - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gUnknown_020241E4 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r7, r0, r1 - adds r6, r7, 0 - adds r6, 0x3E - ldrb r1, [r6] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0805EDAC - adds r0, r4, 0 - bl sub_80A6A90 - lsls r0, 24 - cmp r0, 0 - bne _0805EDC0 -_0805EDAC: - ldr r0, =sub_805EE48 - str r0, [r5, 0x1C] - b _0805EE36 - .pool -_0805EDC0: - ldr r0, =gUnknown_020383FD - ldrb r0, [r0] - cmp r0, 0 - bne _0805EDD2 - ldrb r1, [r6] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0805EDE4 -_0805EDD2: - movs r0, 0x1 - mov r8, r0 - ldr r2, =gUnknown_020244D0 - lsls r4, 2 - b _0805EE06 - .pool -_0805EDE4: - ldr r2, =gUnknown_020244D0 - ldr r0, [r2] - ldr r0, [r0] - lsls r1, r4, 2 - adds r3, r1, r0 - ldrh r0, [r3, 0x2] - adds r4, r1, 0 - cmp r0, 0 - beq _0805EE06 - ldr r0, =gUnknown_08305DCC - ldrh r1, [r3, 0x2] - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - bne _0805EE06 - movs r0, 0x1 - mov r8, r0 -_0805EE06: - ldr r0, [r2] - ldr r0, [r0] - adds r0, r4, r0 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0805EE1A - movs r0, 0x1 - mov r8, r0 -_0805EE1A: - ldrh r0, [r7, 0x20] - strh r0, [r5, 0x20] - ldrh r0, [r7, 0x24] - strh r0, [r5, 0x24] - adds r2, r5, 0 - adds r2, 0x3E - mov r0, r8 - lsls r3, r0, 2 - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] -_0805EE36: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805ED70 - - thumb_func_start sub_805EE48 -sub_805EE48: @ 805EE48 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - bx lr - thumb_func_end sub_805EE48 - - thumb_func_start sub_805EE54 -sub_805EE54: @ 805EE54 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - lsls r1, 16 - lsrs r5, r1, 16 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _0805EED0 - ldr r0, =gUnknown_020244D0 - ldr r3, [r0] - ldr r1, [r3] - lsls r0, r4, 2 - adds r1, r0, r1 - ldrh r0, [r1, 0x2] - cmp r0, 0 - beq _0805EE7E - adds r5, r0, 0 -_0805EE7E: - ldr r0, =gUnknown_08305DCC - adds r0, r5, r0 - ldrb r0, [r0] - cmp r0, 0 - beq _0805EEB4 - ldr r2, =gUnknown_02020630 - ldr r1, [r3, 0x4] - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, =sub_805ED70 - b _0805EECE - .pool -_0805EEB4: - ldr r2, =gUnknown_02020630 - ldr r1, [r3, 0x4] - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, =sub_805EE48 -_0805EECE: - str r1, [r0] -_0805EED0: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805EE54 - - thumb_func_start sub_805EEE0 -sub_805EEE0: @ 805EEE0 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020244D0 - ldr r1, [r1] - ldr r3, [r1, 0x4] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r1, [r1, 0x7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, =sub_805EE48 - str r1, [r0] - bx lr - .pool - thumb_func_end sub_805EEE0 - - thumb_func_start sub_805EF14 -sub_805EF14: @ 805EF14 - push {r4-r6,lr} - ldr r3, =0x06000240 - movs r0, 0 - movs r6, 0xF0 - lsls r6, 8 -_0805EF1E: - adds r5, r0, 0x1 - movs r4, 0xF -_0805EF22: - ldrh r1, [r3] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - bne _0805EF32 - adds r0, r6, 0 - orrs r0, r1 - strh r0, [r3] -_0805EF32: - ldrh r1, [r3] - movs r2, 0xF0 - lsls r2, 4 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _0805EF46 - adds r0, r2, 0 - orrs r0, r1 - strh r0, [r3] -_0805EF46: - ldrh r1, [r3] - movs r2, 0xF0 - movs r0, 0xF0 - ands r0, r1 - cmp r0, 0 - bne _0805EF58 - adds r0, r1, 0 - orrs r0, r2 - strh r0, [r3] -_0805EF58: - ldrh r1, [r3] - movs r2, 0xF - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - bne _0805EF6A - adds r0, r1, 0 - orrs r0, r2 - strh r0, [r3] -_0805EF6A: - adds r3, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _0805EF22 - adds r0, r5, 0 - cmp r0, 0x8 - ble _0805EF1E - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805EF14 - - thumb_func_start sub_805EF84 -sub_805EF84: @ 805EF84 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r2, [r0] - lsls r0, r4, 2 - adds r0, r2 - movs r3, 0 - movs r2, 0 - strh r2, [r0, 0x2] - ldr r0, =gUnknown_020244E4 - adds r0, r4, r0 - strb r3, [r0] - cmp r1, 0 - bne _0805EFAC - adds r0, r4, 0 - bl sub_805E974 -_0805EFAC: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805EF84 - - thumb_func_start init_uns_table_pokemon_copy -init_uns_table_pokemon_copy: @ 805EFBC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r6, 0 - ldr r4, =gUnknown_020244D4 - str r6, [r4] - movs r0, 0xC0 - lsls r0, 1 - bl AllocZeroed - str r0, [r4] - movs r0, 0x80 - lsls r0, 8 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1] -_0805EFE2: - ldr r0, =gUnknown_020244D4 - ldr r1, [r0] - lsls r4, r6, 2 - adds r2, r1, 0x4 - adds r2, r4 - lsls r3, r6, 13 - ldr r0, [r1] - adds r0, r3 - str r0, [r2] - lsls r3, r6, 1 - adds r0, r3, r6 - lsls r0, 3 - adds r1, r0, r1 - ldr r2, =gUnknown_08329D98 - adds r1, 0x14 - adds r0, r2 - ldm r0!, {r2,r5,r7} - stm r1!, {r2,r5,r7} - ldm r0!, {r2,r5,r7} - stm r1!, {r2,r5,r7} - movs r5, 0 - mov r9, r3 - lsls r0, r6, 5 - mov r8, r0 - adds r1, r6, 0x1 - mov r10, r1 - mov r12, r8 - adds r7, r4, 0 -_0805F01A: - ldr r2, =gUnknown_020244D4 - ldr r1, [r2] - lsls r4, r5, 3 - add r4, r12 - adds r3, r1, 0 - adds r3, 0x74 - adds r3, r4 - adds r0, r1, 0x4 - adds r0, r7 - lsls r2, r5, 11 - ldr r0, [r0] - adds r0, r2 - str r0, [r3] - adds r1, r4 - adds r1, 0x78 - movs r0, 0x80 - lsls r0, 4 - strh r0, [r1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _0805F01A - ldr r1, =gUnknown_020244D4 - ldr r2, [r1] - mov r5, r9 - adds r0, r5, r6 - lsls r0, 3 - adds r1, r2, 0 - adds r1, 0x20 - adds r1, r0 - mov r0, r8 - adds r0, 0x74 - adds r2, r0 - str r2, [r1] - mov r7, r10 - lsls r0, r7, 24 - lsrs r6, r0, 24 - cmp r6, 0x3 - bls _0805EFE2 - movs r0, 0x80 - lsls r0, 5 - bl AllocZeroed - ldr r1, =gUnknown_020244D4 - ldr r1, [r1] - movs r2, 0xBA - lsls r2, 1 - adds r1, r2 - str r0, [r1] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end init_uns_table_pokemon_copy - - thumb_func_start sub_805F094 -sub_805F094: @ 805F094 - push {r4-r6,lr} - ldr r6, =gUnknown_020244D4 - ldr r0, [r6] - cmp r0, 0 - beq _0805F106 - movs r1, 0xBE - lsls r1, 1 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - beq _0805F0BA - bl Free - ldr r0, [r6] - movs r1, 0xBE - lsls r1, 1 - adds r0, r1 - movs r1, 0 - str r1, [r0] -_0805F0BA: - ldr r0, [r6] - movs r1, 0xBC - lsls r1, 1 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - beq _0805F0D8 - bl Free - ldr r0, [r6] - movs r1, 0xBC - lsls r1, 1 - adds r0, r1 - movs r1, 0 - str r1, [r0] -_0805F0D8: - ldr r0, [r6] - movs r5, 0xBA - lsls r5, 1 - adds r0, r5 - ldr r0, [r0] - bl Free - ldr r0, [r6] - adds r5, r0, r5 - movs r4, 0 - str r4, [r5] - ldr r0, [r0] - bl Free - ldr r0, [r6] - str r4, [r0] - str r4, [r0, 0x4] - str r4, [r0, 0x8] - str r4, [r0, 0xC] - str r4, [r0, 0x10] - bl Free - str r4, [r6] -_0805F106: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805F094 - - thumb_func_start sub_805F110 -sub_805F110: @ 805F110 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x37 - bl GetMonData - ldr r1, =0x00000fff - ands r1, r0 - cmp r1, 0 - bne _0805F158 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0x3A - bl GetMonData - adds r1, r0, 0 - lsls r4, 16 - asrs r4, 16 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_8075060 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - ble _0805F158 - movs r0, 0x1 - b _0805F15A - .pool -_0805F158: - movs r0, 0 -_0805F15A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_805F110 - - thumb_func_start nullsub_26 -nullsub_26: @ 805F160 - bx lr - thumb_func_end nullsub_26 - - thumb_func_start sub_805F164 -sub_805F164: @ 805F164 - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_exec_buffer_A_ch0_tbl7 - str r1, [r0] - bx lr - .pool - thumb_func_end sub_805F164 - - thumb_func_start bx_exec_buffer_A_ch0_tbl7 -bx_exec_buffer_A_ch0_tbl7: @ 805F180 - push {lr} - ldr r2, =gUnknown_02024068 - ldr r1, =gBitTable - ldr r0, =gUnknown_02024064 - ldrb r3, [r0] - lsls r0, r3, 2 - adds r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _0805F1CC - ldr r0, =gUnknown_02023064 - lsls r1, r3, 9 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x38 - bhi _0805F1C8 - ldr r0, =gUnknown_0831C6C8 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 - b _0805F1CC - .pool -_0805F1C8: - bl dp01_tbl7_exec_completed -_0805F1CC: - pop {r0} - bx r0 - thumb_func_end bx_exec_buffer_A_ch0_tbl7 - - thumb_func_start sub_805F1D0 -sub_805F1D0: @ 805F1D0 - push {lr} - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _0805F1F4 - bl dp01_tbl7_exec_completed -_0805F1F4: - pop {r0} - bx r0 - .pool - thumb_func_end sub_805F1D0 - - thumb_func_start sub_805F208 -sub_805F208: @ 805F208 - push {lr} - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _0805F22C - bl dp01_tbl7_exec_completed -_0805F22C: - pop {r0} - bx r0 - .pool - thumb_func_end sub_805F208 - - thumb_func_start sub_805F240 -sub_805F240: @ 805F240 - push {r4-r6,lr} - ldr r5, =gUnknown_02020630 - ldr r6, =gUnknown_020241E4 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r2, r0, 2 - adds r0, r5, 0 - adds r0, 0x1C - adds r0, r2, r0 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _0805F292 - adds r0, r2, r5 - ldrh r0, [r0, 0x6] - bl sub_805DFE4 - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl obj_free_rotscale_entry - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl RemoveObjectAndFreeTiles - bl dp01_tbl7_exec_completed -_0805F292: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805F240 - - thumb_func_start sub_805F2A8 -sub_805F2A8: @ 805F2A8 - push {r4,lr} - ldr r4, =gUnknown_020244D0 - ldr r1, [r4] - ldr r3, =gUnknown_02024064 - ldrb r0, [r3] - ldr r2, [r1, 0x4] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x9] - subs r0, 0x1 - strb r0, [r1, 0x9] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _0805F2E0 - ldr r0, [r4] - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strb r1, [r0, 0x9] - bl dp01_tbl7_exec_completed -_0805F2E0: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805F2A8 - - thumb_func_start sub_805F2F0 -sub_805F2F0: @ 805F2F0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r0, 0 - mov r10, r0 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _0805F32C - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _0805F31E - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0805F32C -_0805F31E: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _0805F368 -_0805F32C: - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_03005D70 - ldr r3, =gUnknown_02024064 - ldrb r0, [r3] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _0805F34E - movs r1, 0x1 - mov r10, r1 -_0805F34E: - movs r6, 0 - b _0805F3A2 - .pool -_0805F368: - ldr r3, =gUnknown_02020630 - ldr r6, =gUnknown_03005D70 - ldr r2, =gUnknown_02024064 - ldrb r4, [r2] - adds r0, r4, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r3, 0x1C - adds r0, r3 - ldr r5, [r0] - ldr r0, =DummyObjectCallback - cmp r5, r0 - bne _0805F3A0 - movs r0, 0x2 - eors r4, r0 - adds r0, r4, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - cmp r0, r5 - bne _0805F3A0 - movs r0, 0x1 - mov r10, r0 -_0805F3A0: - movs r6, 0x1 -_0805F3A2: - ldr r3, =gUnknown_020244D8 - ldr r1, =gUnknown_020244D0 - mov r8, r1 - ldr r2, [r1] - ldr r7, =gUnknown_02024064 - ldrb r1, [r7] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r5, [r2, 0x4] - adds r0, r5, r0 - str r0, [r3] - ldr r2, =gUnknown_020244DC - ldrb r0, [r7] - movs r1, 0x2 - mov r9, r1 - mov r1, r9 - eors r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r5, r0 - str r0, [r2] - mov r0, r10 - cmp r0, 0 - bne _0805F3D8 - b _0805F53C -_0805F3D8: - cmp r6, 0x1 - bne _0805F494 - ldrb r2, [r7] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r4, r0, r5 - ldrb r1, [r4, 0x1] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - bne _0805F3F2 - b _0805F53C -_0805F3F2: - mov r0, r9 - eors r0, r2 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r0, [r1, 0x1] - ands r6, r0 - cmp r6, 0 - bne _0805F408 - b _0805F53C -_0805F408: - ldrb r1, [r4] - movs r3, 0x7F - adds r0, r3, 0 - ands r0, r1 - strb r0, [r4] - mov r1, r8 - ldr r0, [r1] - ldrb r2, [r7] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r4, 0x2 - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - strb r0, [r1, 0x1] - mov r0, r8 - ldr r2, [r0] - ldrb r0, [r7] - mov r1, r9 - eors r1, r0 - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - mov r1, r8 - ldr r2, [r1] - ldrb r0, [r7] - mov r1, r9 - eors r1, r0 - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - ands r4, r1 - strb r4, [r0, 0x1] - ldr r4, =0x000027f9 - adds r0, r4, 0 - bl FreeObjectTilesByTag - adds r0, r4, 0 - bl FreeObjectPaletteByTag - b _0805F51A - .pool -_0805F494: - ldrb r2, [r7] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0, 0x1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0805F53C - adds r0, r2, 0 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _0805F4E4 - mov r0, r8 - ldr r2, [r0] - ldrb r0, [r7] - mov r1, r9 - eors r1, r0 - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0] - movs r0, 0xC0 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - bne _0805F53C - ldr r4, =0x000027f9 - adds r0, r4, 0 - bl FreeObjectTilesByTag - adds r0, r4, 0 - bl FreeObjectPaletteByTag -_0805F4E4: - mov r1, r8 - ldr r0, [r1] - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x7F - ands r0, r2 - strb r0, [r1] - mov r1, r8 - ldr r0, [r1] - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] -_0805F51A: - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r3, =gUnknown_02024064 - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - strb r1, [r0, 0x9] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r3] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_805F2A8 - str r1, [r0] -_0805F53C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805F2F0 - - thumb_func_start sub_805F560 -sub_805F560: @ 805F560 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - mov r10, r0 - ldr r5, =gUnknown_020244D0 - ldr r0, [r5] - ldr r4, =gUnknown_02024064 - ldrb r2, [r4] - ldr r1, [r0, 0x4] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0] - movs r6, 0xC4 - lsls r6, 1 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - bne _0805F5A6 - ldr r0, =gUnknown_0202406E - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gEnemyParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8172EF0 -_0805F5A6: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ldr r1, =0x00008040 - ands r0, r1 - cmp r0, 0 - bne _0805F5EE - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _0805F5EE - ldr r2, [r5] - ldrb r1, [r4] - movs r0, 0x2 - adds r3, r0, 0 - eors r3, r1 - ldr r1, [r2, 0x4] - lsls r2, r3, 1 - adds r0, r2, r3 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - bne _0805F5EE - ldr r0, =gUnknown_0202406E - adds r0, r2, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gEnemyParty - adds r1, r0 - adds r0, r3, 0 - bl sub_8172EF0 -_0805F5EE: - ldr r2, =gUnknown_020244D0 - ldr r0, [r2] - ldr r1, =gUnknown_02024064 - mov r8, r1 - ldrb r4, [r1] - ldr r5, [r0, 0x4] - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r3, r0, r5 - ldrb r1, [r3] - movs r6, 0x8 - adds r0, r6, 0 - ands r0, r1 - mov r9, r2 - cmp r0, 0 - bne _0805F6D0 - movs r7, 0x2 - adds r1, r7, 0 - eors r1, r4 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - bne _0805F6D0 - ldrb r1, [r3, 0x1] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0805F6B4 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _0805F684 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0805F684 - ldr r4, =gUnknown_03005D70 - mov r1, r8 - ldrb r0, [r1] - adds r1, r7, 0 - eors r1, r0 - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, =gUnknown_0202406E - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gEnemyParty - adds r1, r2 - movs r2, 0 - bl healthbar_draw_field_maybe - mov r1, r8 - ldrb r0, [r1] - eors r0, r7 - bl sub_8076918 - mov r1, r8 - ldrb r0, [r1] - eors r0, r7 - adds r0, r4 - ldrb r0, [r0] - bl sub_80729D0 -_0805F684: - ldr r5, =gUnknown_03005D70 - ldr r4, =gUnknown_02024064 - ldrb r1, [r4] - adds r0, r1, r5 - ldrb r0, [r0] - ldr r2, =gUnknown_0202406E - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gEnemyParty - adds r1, r2 - movs r2, 0 - bl healthbar_draw_field_maybe - ldrb r0, [r4] - bl sub_8076918 - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl sub_80729D0 -_0805F6B4: - ldr r3, =gUnknown_020244D0 - ldr r2, [r3] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0, 0x1] - mov r9, r3 -_0805F6D0: - mov r1, r9 - ldr r0, [r1] - ldr r4, =gUnknown_02024064 - ldrb r2, [r4] - ldr r3, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x1] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0x80 - bne _0805F792 - movs r1, 0x2 - eors r1, r2 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x1] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0805F792 - bl sub_80A36C8 - lsls r0, 24 - cmp r0, 0 - bne _0805F792 - mov r1, r9 - ldr r0, [r1] - ldrb r4, [r4] - ldr r1, [r0, 0x4] - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x1] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _0805F774 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x42 - ands r0, r1 - cmp r0, 0x42 - bne _0805F768 - adds r0, r4, 0 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0805F774 - ldr r0, =gMPlay_BGM - bl m4aMPlayContinue - b _0805F774 - .pool -_0805F768: - ldr r0, =gMPlay_BGM - ldr r1, =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl -_0805F774: - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x1] - movs r0, 0x1 - str r0, [sp] -_0805F792: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _0805F7B2 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _0805F810 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0805F810 -_0805F7B2: - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_03005D7C - ldr r1, =gUnknown_02024064 - ldrb r4, [r1] - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r3, [r0] - ldr r0, =DummyObjectCallback - cmp r3, r0 - bne _0805F86E - ldr r0, =gUnknown_020241E4 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - cmp r0, r3 - bne _0805F86E - movs r1, 0x1 - mov r10, r1 - b _0805F86E - .pool -_0805F810: - ldr r2, =gUnknown_02020630 - ldr r7, =gUnknown_03005D7C - ldr r0, =gUnknown_02024064 - ldrb r3, [r0] - adds r0, r3, r7 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r4, [r0] - ldr r0, =DummyObjectCallback - cmp r4, r0 - bne _0805F86E - ldr r6, =gUnknown_020241E4 - adds r0, r3, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r5, [r0] - cmp r5, r4 - bne _0805F86E - movs r0, 0x2 - eors r3, r0 - adds r0, r3, r7 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r4, [r0] - cmp r4, r5 - bne _0805F86E - adds r0, r3, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - cmp r0, r4 - bne _0805F86E - movs r0, 0x1 - mov r10, r0 -_0805F86E: - ldr r1, [sp] - cmp r1, 0 - beq _0805F958 - mov r0, r10 - cmp r0, 0 - beq _0805F958 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _0805F8D2 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0805F8D2 - ldr r1, =gUnknown_03005D7C - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - movs r4, 0x2 - eors r0, r4 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - bl RemoveObjectAndFreeTiles - ldrb r0, [r5] - eors r4, r0 - ldr r1, =gUnknown_0202406E - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_805EE54 -_0805F8D2: - ldr r1, =gUnknown_03005D7C - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - bl RemoveObjectAndFreeTiles - ldrb r5, [r4] - ldr r1, =gUnknown_0202406E - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - bl sub_805EE54 - ldr r3, =gUnknown_020244D0 - ldr r0, [r3] - ldr r2, [r0, 0x8] - ldrb r1, [r2, 0x9] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x9] - ldr r0, [r3] - ldrb r2, [r4] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r0, [r3] - ldrb r2, [r4] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0x7F - ands r0, r2 - strb r0, [r1, 0x1] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_805F2F0 - str r1, [r0] -_0805F958: - 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_805F560 - - thumb_func_start sub_805F994 -sub_805F994: @ 805F994 - push {r4,r5,lr} - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 - ldr r1, =gUnknown_02024064 - ldrb r3, [r1] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x24 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _0805F9E0 - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r1, [r0, 0x4] - lsls r2, r3, 1 - adds r0, r2, r3 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0xC0 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - bne _0805F9E0 - ldr r0, =gUnknown_0202406E - adds r0, r2, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gEnemyParty - adds r1, r0 - adds r0, r3, 0 - bl sub_8172EF0 -_0805F9E0: - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 - ldr r5, =gUnknown_02024064 - ldrb r3, [r5] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _0805FA48 - ldr r4, =gUnknown_020244D0 - ldr r0, [r4] - ldr r1, [r0, 0x4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r2, r0, r1 - ldrb r1, [r2, 0x1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0805FA48 - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - ldr r0, [r4] - ldrb r2, [r5] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r4, =0x000027f9 - adds r0, r4, 0 - bl FreeObjectTilesByTag - adds r0, r4, 0 - bl FreeObjectPaletteByTag - bl dp01_tbl7_exec_completed -_0805FA48: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805F994 - - thumb_func_start sub_805FA70 -sub_805FA70: @ 805FA70 - push {r4-r6,lr} - ldr r6, =gUnknown_02024064 - ldrb r0, [r6] - ldr r5, =gUnknown_03005D70 - adds r1, r0, r5 - ldrb r1, [r1] - movs r2, 0 - movs r3, 0 - bl sub_8074AA0 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r6] - adds r0, r5 - ldrb r0, [r0] - bl sub_80729D0 - lsls r4, 16 - asrs r1, r4, 16 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0805FAB8 - ldrb r0, [r6] - adds r0, r5 - ldrb r0, [r0] - movs r2, 0 - bl heathbar_draw_hp - b _0805FABC - .pool -_0805FAB8: - bl dp01_tbl7_exec_completed -_0805FABC: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_805FA70 - - thumb_func_start sub_805FAC4 -sub_805FAC4: @ 805FAC4 - push {lr} - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 - ldr r1, =gUnknown_02024064 - ldrb r3, [r1] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - bne _0805FAF2 - ldr r0, =gUnknown_03005D70 - adds r0, r3, r0 - ldrb r0, [r0] - bl sub_8072984 - bl dp01_tbl7_exec_completed -_0805FAF2: - pop {r0} - bx r0 - .pool - thumb_func_end sub_805FAC4 - - thumb_func_start sub_805FB08 -sub_805FB08: @ 805FB08 - push {r4-r6,lr} - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r6, =gUnknown_02024064 - ldrb r2, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0805FB62 - ldr r5, =gUnknown_020241E4 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - bl obj_free_rotscale_entry - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl RemoveObjectAndFreeTiles - ldrb r0, [r6] - bl sub_805EEE0 - ldr r1, =gUnknown_03005D70 - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl sub_8072984 - bl dp01_tbl7_exec_completed -_0805FB62: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805FB08 - - thumb_func_start bx_t7_button_a -bx_t7_button_a: @ 805FB7C - push {lr} - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _0805FB8E - bl dp01_tbl7_exec_completed -_0805FB8E: - pop {r0} - bx r0 - thumb_func_end bx_t7_button_a - - thumb_func_start bx_blink_t7 -bx_blink_t7: @ 805FB94 - push {r4,lr} - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - ldr r2, =gUnknown_02020630 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x20 - bne _0805FBE0 - movs r3, 0 - movs r0, 0 - strh r0, [r4, 0x30] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - subs r0, 0x5 - ands r0, r1 - strb r0, [r2] - ldr r0, =gUnknown_020244B9 - strb r3, [r0] - bl dp01_tbl7_exec_completed - b _0805FC0A - .pool -_0805FBE0: - ldrh r0, [r4, 0x30] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _0805FC04 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_0805FC04: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] -_0805FC0A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end bx_blink_t7 - - thumb_func_start sub_805FC10 -sub_805FC10: @ 805FC10 - push {r4,lr} - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_03005D70 - ldr r4, =gUnknown_02024064 - ldrb r3, [r4] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _0805FC5C - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r3, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0805FC50 - adds r0, r3, 0 - adds r1, r3, 0 - adds r2, r3, 0 - movs r3, 0x6 - bl move_anim_start_t4 -_0805FC50: - ldr r0, =gUnknown_03005D60 - ldrb r1, [r4] - lsls r1, 2 - adds r1, r0 - ldr r0, =bx_803AEDC - str r0, [r1] -_0805FC5C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805FC10 - - thumb_func_start bx_803AEDC -bx_803AEDC: @ 805FC80 - push {r4,lr} - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r4, =gUnknown_02024064 - ldrb r1, [r4] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0805FCDA - bl sub_80A36C8 - lsls r0, 24 - cmp r0, 0 - bne _0805FCDA - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldrb r0, [r4] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - beq _0805FCCA - ldr r0, =nullsub_18 - cmp r1, r0 - bne _0805FCDA -_0805FCCA: - ldr r0, =gMPlay_BGM - ldr r1, =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl - bl dp01_tbl7_exec_completed -_0805FCDA: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end bx_803AEDC - - thumb_func_start sub_805FD00 -sub_805FD00: @ 805FD00 - push {r4-r7,lr} - ldr r4, =gUnknown_020244D0 - ldr r0, [r4] - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r1 - ldrb r1, [r3, 0x1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0805FDBC - ldr r7, =gUnknown_02020630 - ldr r6, =gUnknown_020241E4 - adds r0, r2, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r7, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _0805FDBC - ldrb r1, [r3] - movs r0, 0x7F - ands r0, r1 - strb r0, [r3] - ldr r0, [r4] - ldrb r2, [r5] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r4, =0x000027f9 - adds r0, r4, 0 - bl FreeObjectTilesByTag - adds r0, r4, 0 - bl FreeObjectPaletteByTag - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - movs r1, 0 - bl StartObjectImageAnim - ldr r4, =gUnknown_03005D70 - ldrb r1, [r5] - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, =gUnknown_0202406E - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gEnemyParty - adds r1, r2 - movs r2, 0 - bl healthbar_draw_field_maybe - ldrb r0, [r5] - bl sub_8076918 - ldrb r0, [r5] - adds r0, r4 - ldrb r0, [r0] - bl sub_80729D0 - ldrb r0, [r5] - bl sub_805E408 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_805FC10 - str r1, [r0] -_0805FDBC: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805FD00 - - thumb_func_start sub_805FDF0 -sub_805FDF0: @ 805FDF0 - push {r4-r6,lr} - ldr r6, =gUnknown_020244D0 - ldr r0, [r6] - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - ldr r1, [r0, 0x4] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x88 - ands r0, r1 - cmp r0, 0 - bne _0805FE22 - ldr r0, =gUnknown_0202406E - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gEnemyParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8172EF0 -_0805FE22: - ldr r4, =gUnknown_02020630 - ldr r0, =gUnknown_03005D7C - ldrb r2, [r5] - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r3, r0, 2 - adds r0, r4, 0 - adds r0, 0x1C - adds r0, r3, r0 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _0805FE8C - ldr r0, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _0805FE8C - adds r0, r3, r4 - bl RemoveObjectAndFreeTiles - ldrb r4, [r5] - ldr r1, =gUnknown_0202406E - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_805EE54 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_805FD00 - str r1, [r0] -_0805FE8C: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805FDF0 - - thumb_func_start sub_805FEB8 -sub_805FEB8: @ 805FEB8 - push {lr} - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _0805FEDA - bl dp01_tbl7_exec_completed -_0805FEDA: - pop {r0} - bx r0 - .pool - thumb_func_end sub_805FEB8 - - thumb_func_start bx_803B0F4 -bx_803B0F4: @ 805FEE8 - push {lr} - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _0805FF0A - bl dp01_tbl7_exec_completed -_0805FF0A: - pop {r0} - bx r0 - .pool - thumb_func_end bx_803B0F4 - - thumb_func_start dp01_tbl7_exec_completed -dp01_tbl7_exec_completed: @ 805FF18 - push {r4,lr} - sub sp, 0x4 - ldr r1, =gUnknown_03005D60 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_exec_buffer_A_ch0_tbl7 - str r1, [r0] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0805FF6C - bl link_get_multiplayer_id - mov r1, sp - strb r0, [r1] - movs r0, 0x2 - movs r1, 0x4 - mov r2, sp - bl dp01_prepare_buffer_wireless_probably - ldr r1, =gUnknown_02023064 - ldrb r0, [r4] - lsls r0, 9 - adds r0, r1 - movs r1, 0x38 - strb r1, [r0] - b _0805FF7E - .pool -_0805FF6C: - ldr r2, =gUnknown_02024068 - ldr r1, =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldr r0, [r2] - bics r0, r1 - str r0, [r2] -_0805FF7E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end dp01_tbl7_exec_completed - - thumb_func_start dp01t_00_7_getattr -dp01t_00_7_getattr: @ 805FF90 - push {r4-r6,lr} - sub sp, 0x100 - movs r6, 0 - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - bne _0805FFC8 - ldr r0, =gUnknown_0202406E - lsls r1, r2, 1 - adds r1, r0 - ldrb r0, [r1] - mov r1, sp - bl sub_8060004 - adds r6, r0, 0 - b _0805FFEA - .pool -_0805FFC8: - ldrb r4, [r1] - movs r5, 0 -_0805FFCC: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _0805FFE2 - lsls r0, r5, 24 - lsrs r0, 24 - mov r2, sp - adds r1, r2, r6 - bl sub_8060004 - adds r6, r0 -_0805FFE2: - lsrs r4, 1 - adds r5, 0x1 - cmp r5, 0x5 - ble _0805FFCC -_0805FFEA: - lsls r1, r6, 16 - lsrs r1, 16 - movs r0, 0x1 - mov r2, sp - bl dp01_build_cmdbuf_x1D_1D_numargs_varargs - bl dp01_tbl7_exec_completed - add sp, 0x100 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end dp01t_00_7_getattr - - thumb_func_start sub_8060004 -sub_8060004: @ 8060004 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x90 - adds r7, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - ldr r2, =gUnknown_02023064 - ldr r3, =gUnknown_02024064 - ldrb r0, [r3] - lsls r0, 9 - adds r1, r2, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3B - bls _0806002E - bl _0806079A -_0806002E: - lsls r0, 2 - ldr r1, =_08060044 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08060044: - .4byte _08060134 - .4byte _08060358 - .4byte _08060368 - .4byte _08060378 - .4byte _080603E0 - .4byte _080603E0 - .4byte _080603E0 - .4byte _080603E0 - .4byte _080603FC - .4byte _08060438 - .4byte _08060438 - .4byte _08060438 - .4byte _08060438 - .4byte _0806079A - .4byte _0806079A - .4byte _0806079A - .4byte _0806079A - .4byte _08060454 - .4byte _08060464 - .4byte _08060494 - .4byte _080604A4 - .4byte _080604B4 - .4byte _080604C4 - .4byte _080604D4 - .4byte _080604E4 - .4byte _080604F4 - .4byte _08060504 - .4byte _08060514 - .4byte _08060524 - .4byte _08060534 - .4byte _08060544 - .4byte _08060554 - .4byte _080605A4 - .4byte _080605B4 - .4byte _080605C4 - .4byte _080605D4 - .4byte _080605E4 - .4byte _080605F4 - .4byte _08060604 - .4byte _08060614 - .4byte _08060624 - .4byte _08060658 - .4byte _08060668 - .4byte _08060678 - .4byte _08060688 - .4byte _08060698 - .4byte _080606A8 - .4byte _080606B8 - .4byte _080606C8 - .4byte _080606E8 - .4byte _080606F8 - .4byte _08060708 - .4byte _08060718 - .4byte _08060728 - .4byte _08060738 - .4byte _08060748 - .4byte _08060758 - .4byte _08060768 - .4byte _08060778 - .4byte _08060788 -_08060134: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - mov r1, sp - strh r0, [r1] - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2E] - movs r6, 0 - add r0, sp, 0x24 - mov r9, r0 - movs r1, 0x3B - add r1, sp - mov r10, r1 - mov r2, sp - adds r2, 0x2B - str r2, [sp, 0x80] - mov r0, sp - adds r0, 0x2A - str r0, [sp, 0x7C] - mov r1, sp - adds r1, 0x68 - str r1, [sp, 0x8C] - adds r2, 0x5 - str r2, [sp, 0x84] - adds r0, 0x12 - str r0, [sp, 0x88] - mov r8, r4 - add r4, sp, 0xC -_08060180: - adds r1, r6, 0 - adds r1, 0xD - mov r0, r8 - bl GetMonData - strh r0, [r4] - adds r1, r6, 0 - adds r1, 0x11 - mov r0, r8 - bl GetMonData - mov r2, r9 - adds r1, r2, r6 - strb r0, [r1] - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _08060180 - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x15 - bl GetMonData - mov r1, r10 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - ldr r2, [sp, 0x80] - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x19 - bl GetMonData - str r0, [sp, 0x44] - adds r0, r4, 0 - movs r1, 0x27 - bl GetMonData - mov r3, sp - movs r5, 0x1F - ands r0, r5 - ldrb r2, [r3, 0x14] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x14] - adds r0, r4, 0 - movs r1, 0x28 - bl GetMonData - mov r3, sp - movs r6, 0x1F - ands r0, r6 - lsls r0, 5 - ldrh r2, [r3, 0x14] - ldr r1, =0xfffffc1f - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x14] - adds r0, r4, 0 - movs r1, 0x29 - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, 2 - ldrb r2, [r3, 0x15] - movs r1, 0x7D - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x15] - adds r0, r4, 0 - movs r1, 0x2A - bl GetMonData - movs r1, 0x1F - ands r1, r0 - lsls r1, 15 - ldr r0, [sp, 0x14] - ldr r2, =0xfff07fff - ands r0, r2 - orrs r0, r1 - str r0, [sp, 0x14] - adds r0, r4, 0 - movs r1, 0x2B - bl GetMonData - mov r3, sp - ands r0, r6 - lsls r0, 4 - ldrh r2, [r3, 0x16] - ldr r1, =0xfffffe0f - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x16] - adds r0, r4, 0 - movs r1, 0x2C - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, 1 - ldrb r2, [r3, 0x17] - movs r1, 0x3F - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - str r0, [sp, 0x48] - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - str r0, [sp, 0x4C] - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - ldr r1, [sp, 0x7C] - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - mov r1, sp - strh r0, [r1, 0x28] - adds r0, r4, 0 - movs r1, 0x3A - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2C] - adds r0, r4, 0 - movs r1, 0x3B - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2] - adds r0, r4, 0 - movs r1, 0x3C - bl GetMonData - mov r1, sp - strh r0, [r1, 0x4] - adds r0, r4, 0 - movs r1, 0x3D - bl GetMonData - mov r1, sp - strh r0, [r1, 0x6] - adds r0, r4, 0 - movs r1, 0x3E - bl GetMonData - mov r1, sp - strh r0, [r1, 0x8] - adds r0, r4, 0 - movs r1, 0x3F - bl GetMonData - mov r1, sp - strh r0, [r1, 0xA] - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - mov r3, sp - movs r1, 0x1 - ands r0, r1 - lsls r0, 6 - ldrb r2, [r3, 0x17] - movs r1, 0x41 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0x2E - bl GetMonData - mov r3, sp - lsls r0, 7 - ldrb r2, [r3, 0x17] - movs r1, 0x7F - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - str r0, [sp, 0x54] - adds r0, r4, 0 - movs r1, 0x2 - ldr r2, [sp, 0x8C] - bl GetMonData - ldr r0, [sp, 0x84] - ldr r1, [sp, 0x8C] - bl StringCopy10 - adds r0, r4, 0 - movs r1, 0x7 - ldr r2, [sp, 0x88] - bl GetMonData - mov r2, sp - movs r6, 0 -_08060338: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, 0x1 - cmp r6, 0x57 - bls _08060338 - b _0806079A - .pool -_08060358: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0xB - b _080606D2 - .pool -_08060368: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0xC - b _080606D2 - .pool -_08060378: - movs r6, 0 - add r2, sp, 0x58 - mov r9, r2 - add r0, sp, 0x60 - mov r10, r0 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gEnemyParty - adds r4, r1, r0 - mov r8, r9 -_0806038E: - adds r1, r6, 0 - adds r1, 0xD - adds r0, r4, 0 - bl GetMonData - mov r1, r8 - strh r0, [r1] - adds r1, r6, 0 - adds r1, 0x11 - adds r0, r4, 0 - bl GetMonData - mov r2, r10 - adds r1, r2, r6 - strb r0, [r1] - movs r0, 0x2 - add r8, r0 - adds r6, 0x1 - cmp r6, 0x3 - ble _0806038E - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x15 - bl GetMonData - mov r1, r9 - strb r0, [r1, 0xC] - mov r2, r9 - movs r6, 0 -_080603CC: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, 0x1 - cmp r6, 0xF - bls _080603CC - b _0806079A - .pool -_080603E0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r1, [r3] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r1, 0x9 - b _080606D2 - .pool -_080603FC: - movs r6, 0 - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r2, =gEnemyParty - mov r8, r2 -_08060408: - adds r1, r6, 0 - adds r1, 0x11 - mov r2, r8 - adds r0, r4, r2 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, 0x1 - cmp r6, 0x3 - ble _08060408 - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x15 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, 0x1 - b _0806079A - .pool -_08060438: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r1, [r3] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r1, 0x8 - b _08060792 - .pool -_08060454: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x1 - b _0806046E - .pool -_08060464: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x19 -_0806046E: - bl GetMonData - adds r1, r0, 0 - strb r1, [r7] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r7, 0x2] - movs r6, 0x3 - b _0806079A - .pool -_08060494: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x1A - b _08060792 - .pool -_080604A4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x1B - b _08060792 - .pool -_080604B4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x1C - b _08060792 - .pool -_080604C4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x1D - b _08060792 - .pool -_080604D4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x1E - b _08060792 - .pool -_080604E4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x1F - b _08060792 - .pool -_080604F4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x20 - b _08060792 - .pool -_08060504: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x22 - b _08060792 - .pool -_08060514: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x23 - b _08060792 - .pool -_08060524: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x24 - b _08060792 - .pool -_08060534: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x25 - b _08060792 - .pool -_08060544: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x26 - b _08060792 - .pool -_08060554: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x27 - bl GetMonData - strb r0, [r7] - adds r0, r4, 0 - movs r1, 0x28 - bl GetMonData - strb r0, [r7, 0x1] - adds r0, r4, 0 - movs r1, 0x29 - bl GetMonData - strb r0, [r7, 0x2] - adds r0, r4, 0 - movs r1, 0x2A - bl GetMonData - strb r0, [r7, 0x3] - adds r0, r4, 0 - movs r1, 0x2B - bl GetMonData - strb r0, [r7, 0x4] - adds r0, r4, 0 - movs r1, 0x2C - bl GetMonData - strb r0, [r7, 0x5] - movs r6, 0x6 - b _0806079A - .pool -_080605A4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x27 - b _08060792 - .pool -_080605B4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x28 - b _08060792 - .pool -_080605C4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x29 - b _08060792 - .pool -_080605D4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x2A - b _08060792 - .pool -_080605E4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x2B - b _08060792 - .pool -_080605F4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x2C - b _08060792 - .pool -_08060604: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0 - b _0806062E - .pool -_08060614: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x9 - b _080606D2 - .pool -_08060624: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x37 -_0806062E: - bl GetMonData - adds r1, r0, 0 - strb r1, [r7] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r7, 0x2] - lsrs r0, r1, 24 - strb r0, [r7, 0x3] - movs r6, 0x4 - b _0806079A - .pool -_08060658: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x38 - b _08060792 - .pool -_08060668: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x39 - b _080606D2 - .pool -_08060678: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x3A - b _080606D2 - .pool -_08060688: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x3B - b _080606D2 - .pool -_08060698: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x3C - b _080606D2 - .pool -_080606A8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x3D - b _080606D2 - .pool -_080606B8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x3E - b _080606D2 - .pool -_080606C8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x3F -_080606D2: - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - strb r0, [r7] - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r6, 0x2 - b _0806079A - .pool -_080606E8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x16 - b _08060792 - .pool -_080606F8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x17 - b _08060792 - .pool -_08060708: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x18 - b _08060792 - .pool -_08060718: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x21 - b _08060792 - .pool -_08060728: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x2F - b _08060792 - .pool -_08060738: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x30 - b _08060792 - .pool -_08060748: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x32 - b _08060792 - .pool -_08060758: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x33 - b _08060792 - .pool -_08060768: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x34 - b _08060792 - .pool -_08060778: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x35 - b _08060792 - .pool -_08060788: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x36 -_08060792: - bl GetMonData - strb r0, [r7] - movs r6, 0x1 -_0806079A: - adds r0, r6, 0 - add sp, 0x90 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8060004 - - thumb_func_start dp01t_01_2_read_pokmon_data_slice -dp01t_01_2_read_pokmon_data_slice: @ 80607B0 - push {r4-r7,lr} - sub sp, 0x58 - ldr r2, =gUnknown_0202406E - ldr r5, =gUnknown_02024064 - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - adds r4, r2, 0 - muls r4, r0 - ldr r3, =gUnknown_02023064 - lsls r1, 9 - adds r0, r3, 0x1 - adds r0, r1, r0 - ldrb r2, [r0] - ldr r0, =gEnemyParty - adds r0, r2, r0 - adds r6, r4, r0 - mov r0, sp - adds r4, r0, r2 - movs r2, 0 - adds r0, r3, 0x2 - adds r1, r0 - adds r7, r5, 0 - mov r12, r3 - ldrb r1, [r1] - cmp r2, r1 - bcs _08060806 - adds r3, r0, 0 -_080607EC: - adds r1, r4, r2 - adds r0, r6, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r5] - lsls r0, 9 - adds r0, r3 - ldrb r0, [r0] - cmp r2, r0 - bcc _080607EC -_08060806: - ldrb r0, [r7] - lsls r0, 9 - mov r1, r12 - adds r1, 0x2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - adds r2, r4, 0 - bl dp01_build_cmdbuf_x1D_1D_numargs_varargs - bl dp01_tbl7_exec_completed - add sp, 0x58 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end dp01t_01_2_read_pokmon_data_slice - - thumb_func_start dp01t_02_7_setattr -dp01t_02_7_setattr: @ 8060838 - push {r4,r5,lr} - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - bne _08060868 - ldr r0, =gUnknown_0202406E - lsls r1, r2, 1 - adds r1, r0 - ldrb r0, [r1] - bl sub_8060890 - b _08060886 - .pool -_08060868: - ldrb r4, [r1] - movs r5, 0 -_0806086C: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _0806087A - adds r0, r5, 0 - bl sub_8060890 -_0806087A: - lsrs r4, 1 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _0806086C -_08060886: - bl dp01_tbl7_exec_completed - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end dp01t_02_7_setattr - - thumb_func_start sub_8060890 -sub_8060890: @ 8060890 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x38 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r3, =gUnknown_02024064 - ldrb r0, [r3] - lsls r0, 9 - ldr r2, =gUnknown_02023067 - adds r4, r0, r2 - adds r7, r4, 0 - subs r1, r2, 0x2 - adds r0, r1 - ldrb r0, [r0] - adds r6, r3, 0 - adds r3, r2, 0 - cmp r0, 0x3B - bls _080608BE - bl _0806119C -_080608BE: - lsls r0, 2 - ldr r1, =_080608D4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080608D4: - .4byte _080609C4 - .4byte _08060B5C - .4byte _08060B78 - .4byte _08060B94 - .4byte _08060BE8 - .4byte _08060BE8 - .4byte _08060BE8 - .4byte _08060BE8 - .4byte _08060C08 - .4byte _08060C70 - .4byte _08060C70 - .4byte _08060C70 - .4byte _08060C70 - .4byte _0806119C - .4byte _0806119C - .4byte _0806119C - .4byte _0806119C - .4byte _08060C98 - .4byte _08060CB4 - .4byte _08060CD0 - .4byte _08060CEC - .4byte _08060D08 - .4byte _08060D24 - .4byte _08060D40 - .4byte _08060D5C - .4byte _08060D78 - .4byte _08060D94 - .4byte _08060DB0 - .4byte _08060DCC - .4byte _08060DE8 - .4byte _08060E04 - .4byte _08060E20 - .4byte _08060E94 - .4byte _08060EB0 - .4byte _08060ECC - .4byte _08060EE8 - .4byte _08060F04 - .4byte _08060F20 - .4byte _08060F3C - .4byte _08060F58 - .4byte _08060F74 - .4byte _08060F90 - .4byte _08060FAC - .4byte _08060FC8 - .4byte _08060FE4 - .4byte _08061000 - .4byte _0806101C - .4byte _08061038 - .4byte _08061054 - .4byte _08061070 - .4byte _0806108C - .4byte _080610A8 - .4byte _080610C4 - .4byte _080610E0 - .4byte _080610FC - .4byte _08061118 - .4byte _08061134 - .4byte _08061150 - .4byte _0806116C - .4byte _08061188 -_080609C4: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - adds r2, r7, 0 - bl pokemon_setattr - adds r2, r7, 0 - adds r2, 0x2E - adds r0, r4, 0 - movs r1, 0xC - bl pokemon_setattr - movs r0, 0 - mov r8, r0 - movs r0, 0x3B - adds r0, r7 - mov r10, r0 - adds r0, r7, 0 - adds r0, 0x2B - str r0, [sp, 0x20] - adds r0, 0x19 - str r0, [sp, 0x28] - adds r0, 0x4 - str r0, [sp, 0x2C] - adds r0, 0x4 - str r0, [sp, 0x30] - subs r0, 0x22 - str r0, [sp, 0x1C] - subs r0, 0x2 - str r0, [sp, 0x18] - adds r0, 0x4 - str r0, [sp, 0x24] - adds r0, r7, 0x2 - str r0, [sp, 0x4] - adds r0, r7, 0x4 - str r0, [sp, 0x8] - adds r0, r7, 0x6 - str r0, [sp, 0xC] - adds r0, 0x2 - str r0, [sp, 0x10] - adds r0, 0x2 - str r0, [sp, 0x14] - mov r9, r4 - adds r6, r7, 0 - adds r6, 0x24 - adds r4, r7, 0 - adds r4, 0xC -_08060A2A: - mov r1, r8 - adds r1, 0xD - mov r0, r9 - adds r2, r4, 0 - bl pokemon_setattr - mov r1, r8 - adds r1, 0x11 - mov r0, r9 - adds r2, r6, 0 - bl pokemon_setattr - adds r6, 0x1 - adds r4, 0x2 - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x3 - ble _08060A2A - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x15 - mov r2, r10 - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x20 - ldr r2, [sp, 0x20] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x19 - ldr r2, [sp, 0x28] - bl pokemon_setattr - ldrb r0, [r7, 0x14] - lsls r0, 27 - lsrs r0, 27 - mov r1, sp - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x27 - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrh r0, [r7, 0x14] - lsls r0, 22 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x28 - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrb r0, [r7, 0x15] - lsls r0, 25 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x29 - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldr r0, [r7, 0x14] - lsls r0, 12 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2A - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrh r0, [r7, 0x16] - lsls r0, 23 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2B - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrb r0, [r7, 0x17] - lsls r0, 26 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2C - mov r2, sp - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0 - ldr r2, [sp, 0x2C] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x37 - ldr r2, [sp, 0x30] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x38 - ldr r2, [sp, 0x1C] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x39 - ldr r2, [sp, 0x18] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3A - ldr r2, [sp, 0x24] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3B - ldr r2, [sp, 0x4] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3C - ldr r2, [sp, 0x8] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3D - ldr r2, [sp, 0xC] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3E - ldr r2, [sp, 0x10] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3F - ldr r2, [sp, 0x14] - bl pokemon_setattr - b _0806119C - .pool -_08060B5C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0xB - bl pokemon_setattr - b _0806119C - .pool -_08060B78: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0xC - bl pokemon_setattr - b _0806119C - .pool -_08060B94: - movs r0, 0 - mov r8, r0 - movs r0, 0xC - adds r0, r4 - mov r9, r0 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gEnemyParty - adds r7, r1, r0 - adds r6, r4, 0 - adds r6, 0x8 -_08060BAC: - mov r1, r8 - adds r1, 0xD - adds r0, r7, 0 - adds r2, r4, 0 - bl pokemon_setattr - mov r1, r8 - adds r1, 0x11 - adds r0, r7, 0 - adds r2, r6, 0 - bl pokemon_setattr - adds r6, 0x1 - adds r4, 0x2 - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x3 - ble _08060BAC - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x15 - mov r2, r9 - bl pokemon_setattr - b _0806119C - .pool -_08060BE8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldr r3, =gUnknown_02023064 - ldrb r2, [r6] - lsls r2, 9 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, 0x9 - b _08060C86 - .pool -_08060C08: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gEnemyParty - adds r4, r0 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - adds r0, r4, 0 - movs r1, 0x11 - str r3, [sp, 0x34] - bl pokemon_setattr - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x1 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x12 - bl pokemon_setattr - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x2 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x13 - bl pokemon_setattr - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x3 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x14 - bl pokemon_setattr - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x4 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x15 - bl pokemon_setattr - b _0806119C - .pool -_08060C70: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldr r3, =gUnknown_02023064 - ldrb r2, [r6] - lsls r2, 9 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, 0x8 -_08060C86: - adds r3, 0x3 - adds r2, r3 - bl pokemon_setattr - b _0806119C - .pool -_08060C98: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1 - bl pokemon_setattr - b _0806119C - .pool -_08060CB4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x19 - bl pokemon_setattr - b _0806119C - .pool -_08060CD0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1A - bl pokemon_setattr - b _0806119C - .pool -_08060CEC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1B - bl pokemon_setattr - b _0806119C - .pool -_08060D08: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1C - bl pokemon_setattr - b _0806119C - .pool -_08060D24: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1D - bl pokemon_setattr - b _0806119C - .pool -_08060D40: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1E - bl pokemon_setattr - b _0806119C - .pool -_08060D5C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1F - bl pokemon_setattr - b _0806119C - .pool -_08060D78: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x20 - bl pokemon_setattr - b _0806119C - .pool -_08060D94: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x22 - bl pokemon_setattr - b _0806119C - .pool -_08060DB0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x23 - bl pokemon_setattr - b _0806119C - .pool -_08060DCC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x24 - bl pokemon_setattr - b _0806119C - .pool -_08060DE8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x25 - bl pokemon_setattr - b _0806119C - .pool -_08060E04: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x26 - bl pokemon_setattr - b _0806119C - .pool -_08060E20: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gEnemyParty - adds r4, r0 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - adds r0, r4, 0 - movs r1, 0x27 - str r3, [sp, 0x34] - bl pokemon_setattr - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x1 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x28 - bl pokemon_setattr - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x2 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x29 - bl pokemon_setattr - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x3 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x2A - bl pokemon_setattr - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x4 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x2B - bl pokemon_setattr - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x5 - adds r2, r0 - adds r0, r4, 0 - b _08060F2E - .pool -_08060E94: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x27 - bl pokemon_setattr - b _0806119C - .pool -_08060EB0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x28 - bl pokemon_setattr - b _0806119C - .pool -_08060ECC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x29 - bl pokemon_setattr - b _0806119C - .pool -_08060EE8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x2A - bl pokemon_setattr - b _0806119C - .pool -_08060F04: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x2B - bl pokemon_setattr - b _0806119C - .pool -_08060F20: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 -_08060F2E: - movs r1, 0x2C - bl pokemon_setattr - b _0806119C - .pool -_08060F3C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0 - bl pokemon_setattr - b _0806119C - .pool -_08060F58: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x9 - bl pokemon_setattr - b _0806119C - .pool -_08060F74: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x37 - bl pokemon_setattr - b _0806119C - .pool -_08060F90: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x38 - bl pokemon_setattr - b _0806119C - .pool -_08060FAC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x39 - bl pokemon_setattr - b _0806119C - .pool -_08060FC8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3A - bl pokemon_setattr - b _0806119C - .pool -_08060FE4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3B - bl pokemon_setattr - b _0806119C - .pool -_08061000: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3C - bl pokemon_setattr - b _0806119C - .pool -_0806101C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3D - bl pokemon_setattr - b _0806119C - .pool -_08061038: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3E - bl pokemon_setattr - b _0806119C - .pool -_08061054: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3F - bl pokemon_setattr - b _0806119C - .pool -_08061070: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x16 - bl pokemon_setattr - b _0806119C - .pool -_0806108C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x17 - bl pokemon_setattr - b _0806119C - .pool -_080610A8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x18 - bl pokemon_setattr - b _0806119C - .pool -_080610C4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x21 - bl pokemon_setattr - b _0806119C - .pool -_080610E0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x2F - bl pokemon_setattr - b _0806119C - .pool -_080610FC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x30 - bl pokemon_setattr - b _0806119C - .pool -_08061118: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x32 - bl pokemon_setattr - b _0806119C - .pool -_08061134: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x33 - bl pokemon_setattr - b _0806119C - .pool -_08061150: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x34 - bl pokemon_setattr - b _0806119C - .pool -_0806116C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x35 - bl pokemon_setattr - b _0806119C - .pool -_08061188: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x36 - bl pokemon_setattr -_0806119C: - add sp, 0x38 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8060890 - - thumb_func_start sub_80611B0 -sub_80611B0: @ 80611B0 - push {r4-r7,lr} - ldr r1, =gUnknown_0202406E - ldr r7, =gUnknown_02024064 - ldrb r2, [r7] - lsls r0, r2, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - adds r3, r1, 0 - muls r3, r0 - ldr r4, =gUnknown_02023064 - lsls r2, 9 - adds r0, r4, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - ldr r1, =gEnemyParty - adds r0, r1 - adds r5, r3, r0 - movs r3, 0 - adds r0, r4, 0x2 - adds r2, r0 - ldrb r2, [r2] - cmp r3, r2 - bcs _08061208 - adds r6, r4, 0 - adds r2, r7, 0 - adds r4, r0, 0 -_080611E6: - adds r1, r5, r3 - ldrb r0, [r2] - lsls r0, 9 - adds r0, 0x3 - adds r0, r3, r0 - adds r0, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r0, [r2] - lsls r0, 9 - adds r0, r4 - ldrb r0, [r0] - cmp r3, r0 - bcc _080611E6 -_08061208: - bl dp01_tbl7_exec_completed - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80611B0 - - thumb_func_start sub_8061224 -sub_8061224: @ 8061224 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r6, =gUnknown_02024064 - ldrb r0, [r6] - lsls r0, 1 - ldr r1, =gUnknown_0202406E - adds r0, r1 - ldrh r0, [r0] - movs r7, 0x64 - muls r0, r7 - ldr r2, =gEnemyParty - mov r10, r2 - add r0, r10 - movs r1, 0xB - bl GetMonData - mov r8, r0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldrb r1, [r6] - lsls r0, r1, 1 - ldr r2, =gUnknown_0202406E - adds r0, r2 - ldrh r0, [r0] - muls r0, r7 - add r0, r10 - bl sub_805DC0C - ldrb r0, [r6] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl sub_806A068 - ldr r0, =gUnknown_0202499C - mov r9, r0 - ldrb r0, [r6] - movs r1, 0x2 - bl sub_80A5C6C - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldrb r0, [r6] - bl sub_80A6138 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r6] - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r9 - adds r1, r5, 0 - adds r2, r4, 0 - bl AddObjectToFront - ldr r4, =gUnknown_020241E4 - ldrb r1, [r6] - adds r1, r4 - strb r0, [r1] - ldr r5, =gUnknown_02020630 - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =0x0000ff10 - strh r1, [r0, 0x24] - ldrb r2, [r6] - adds r0, r2, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x2E] - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r8 - strh r1, [r0, 0x32] - ldrb r3, [r6] - adds r0, r3, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r2, [r6] - adds r4, r2, r4 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =gUnknown_020244E4 - adds r2, r1 - ldrb r1, [r2] - bl StartObjectImageAnim - ldrb r4, [r6] - lsls r0, r4, 1 - ldr r2, =gUnknown_0202406E - adds r0, r2 - ldrh r0, [r0] - muls r0, r7 - add r0, r10 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_805EE54 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_805F994 - str r1, [r0] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8061224 - - thumb_func_start sub_806137C -sub_806137C: @ 806137C - push {r4,lr} - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - ldr r1, =gUnknown_0202449C - ldr r1, [r1] - adds r0, r1 - adds r0, 0x5C - movs r1, 0x6 - strb r1, [r0] - ldr r1, =gUnknown_0202406E - ldrb r0, [r4] - lsls r2, r0, 1 - adds r2, r1 - ldr r3, =gUnknown_02023064 - lsls r0, 9 - adds r1, r3, 0x1 - adds r0, r1 - ldrb r0, [r0] - strh r0, [r2] - ldrb r0, [r4] - lsls r1, r0, 9 - adds r3, 0x2 - adds r1, r3 - ldrb r1, [r1] - bl sub_80613DC - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_805FDF0 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_806137C - - thumb_func_start sub_80613DC -sub_80613DC: @ 80613DC - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_805EF84 - ldr r0, =gUnknown_0202406E - lsls r4, r6, 1 - adds r4, r0 - ldr r0, =gUnknown_02023064 - lsls r1, r6, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - strh r0, [r4] - ldrh r0, [r4] - movs r1, 0x64 - mov r9, r1 - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - ldr r5, =gEnemyParty - adds r0, r5 - movs r1, 0xB - bl GetMonData - mov r8, r0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r0, =sub_805D714 - bl CreateInvisibleSpriteWithCallback - ldr r1, =gUnknown_03005D7C - mov r10, r1 - add r10, r6 - mov r1, r10 - strb r0, [r1] - ldrh r0, [r4] - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - adds r0, r5 - adds r1, r6, 0 - bl sub_805DC0C - adds r0, r6, 0 - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl sub_806A068 - ldr r0, =gUnknown_0202499C - mov r9, r0 - adds r0, r6, 0 - movs r1, 0x2 - bl sub_80A5C6C - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r6, 0 - bl sub_80A6138 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r9 - adds r1, r5, 0 - adds r2, r4, 0 - bl AddObjectToFront - ldr r4, =gUnknown_020241E4 - adds r4, r6, r4 - strb r0, [r4] - ldr r5, =gUnknown_02020630 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x2E] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r8 - strh r1, [r0, 0x32] - mov r0, r10 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r4] - strh r1, [r0, 0x30] - mov r0, r10 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x32] - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, r6, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =gUnknown_020244E4 - adds r6, r1 - ldrb r1, [r6] - bl StartObjectImageAnim - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =DummyObjectCallback - str r1, [r0] - movs r0, 0 - movs r1, 0xFE - bl sub_80753E8 - mov r1, r10 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r5 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x2E] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80613DC - - thumb_func_start sub_806156C -sub_806156C: @ 806156C - push {r4-r6,lr} - ldr r1, =gUnknown_02023064 - ldr r6, =gUnknown_02024064 - ldrb r2, [r6] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r3, [r0] - cmp r3, 0 - bne _080615B4 - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - strb r3, [r0, 0x4] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8061604 - str r1, [r0] - b _080615F0 - .pool -_080615B4: - ldr r5, =gUnknown_020241E4 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - bl obj_free_rotscale_entry - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl RemoveObjectAndFreeTiles - ldrb r0, [r6] - bl sub_805EEE0 - ldr r1, =gUnknown_03005D70 - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl sub_8072984 - bl dp01_tbl7_exec_completed -_080615F0: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_806156C - - thumb_func_start sub_8061604 -sub_8061604: @ 8061604 - push {r4-r6,lr} - ldr r6, =gUnknown_020244D0 - ldr r4, [r6] - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - ldr r1, [r4, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r1 - ldrb r0, [r3, 0x4] - cmp r0, 0 - beq _0806162C - cmp r0, 0x1 - beq _0806165A - b _08061682 - .pool -_0806162C: - ldr r1, [r4] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08061646 - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_08061646: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0, 0x4] - b _08061682 -_0806165A: - ldrb r1, [r3] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _08061682 - strb r0, [r3, 0x4] - ldrb r2, [r5] - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x2 - bl move_anim_start_t4 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_805FB08 - str r1, [r0] -_08061682: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8061604 - - thumb_func_start sub_8061690 -sub_8061690: @ 8061690 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, =gBattleTypeFlags - ldr r2, [r0] - movs r0, 0x80 - lsls r0, 20 - ands r0, r2 - cmp r0, 0 - beq _080616B0 - bl sub_806B830 - b _0806175A - .pool -_080616B0: - ldr r3, =gUnknown_02038BCA - ldrh r1, [r3] - ldr r0, =0x000003fe - cmp r1, r0 - bne _080616C8 - bl sub_81A4CB0 - b _0806175A - .pool -_080616C8: - movs r0, 0x80 - lsls r0, 19 - ands r0, r2 - cmp r0, 0 - beq _08061708 - movs r0, 0x80 - lsls r0, 8 - ands r2, r0 - cmp r2, 0 - beq _08061700 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080616F0 - ldrh r0, [r3] - bl sub_81D5588 - b _0806175A - .pool -_080616F0: - ldr r0, =gUnknown_02038BCC - ldrh r0, [r0] - bl sub_81D5588 - b _0806175A - .pool -_08061700: - ldrh r0, [r3] - bl sub_81D5588 - b _0806175A -_08061708: - ldr r0, =0x003f0100 - ands r0, r2 - cmp r0, 0 - beq _0806174C - ldr r0, =0x00808000 - ands r2, r0 - cmp r2, 0 - beq _08061744 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08061734 - ldrh r0, [r3] - bl sub_8162AA0 - b _0806175A - .pool -_08061734: - ldr r0, =gUnknown_02038BCC - ldrh r0, [r0] - bl sub_8162AA0 - b _0806175A - .pool -_08061744: - ldrh r0, [r3] - bl sub_8162AA0 - b _0806175A -_0806174C: - movs r0, 0x80 - lsls r0, 4 - ands r0, r2 - cmp r0, 0 - beq _08061760 - bl sub_8165244 -_0806175A: - lsls r0, 24 - lsrs r4, r0, 24 - b _08061796 -_08061760: - movs r0, 0x80 - lsls r0, 8 - ands r2, r0 - cmp r2, 0 - beq _08061788 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08061788 - ldr r2, =gTrainers - ldr r0, =gUnknown_02038BCC - ldrh r1, [r0] - b _0806178C - .pool -_08061788: - ldr r2, =gTrainers - ldrh r1, [r3] -_0806178C: - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r4, [r0, 0x3] -_08061796: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ldr r1, =0x00008040 - ands r0, r1 - cmp r0, 0 - beq _080617C8 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl battle_get_per_side_status - movs r1, 0x2 - ands r1, r0 - movs r7, 0xC8 - cmp r1, 0 - beq _080617CA - movs r7, 0x98 - b _080617CA - .pool -_080617C8: - movs r7, 0xB0 -_080617CA: - mov r8, r4 - ldr r5, =gUnknown_02024064 - ldrb r1, [r5] - mov r0, r8 - bl sub_805DF38 - ldrb r0, [r5] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl template_build_for_pokemon_or_trainer - ldr r6, =gUnknown_0202499C - mov r9, r7 - ldr r1, =gUnknown_083054E0 - mov r2, r8 - lsls r0, r2, 2 - adds r0, r1 - ldrb r0, [r0] - movs r4, 0x8 - subs r4, r0 - lsls r4, 18 - movs r0, 0xA0 - lsls r0, 14 - adds r4, r0 - asrs r4, 16 - ldrb r0, [r5] - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r6, 0 - mov r1, r9 - adds r2, r4, 0 - bl AddObjectToFront - ldr r6, =gUnknown_020241E4 - ldrb r1, [r5] - adds r1, r6 - strb r0, [r1] - ldr r4, =gUnknown_02020630 - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =0x0000ff10 - strh r1, [r0, 0x24] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x2E] - ldr r1, =gTrainerFrontPicPaletteTable - mov r2, r8 - lsls r0, r2, 3 - adds r0, r1 - ldrh r0, [r0, 0x4] - bl IndexOfObjectPaletteTag - ldrb r1, [r5] - adds r1, r6 - ldrb r1, [r1] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r4 - lsls r0, 4 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - orrs r1, r0 - strb r1, [r2, 0x5] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - mov r1, r8 - strh r1, [r0, 0x6] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, =sub_805D7AC - str r1, [r0] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_805F1D0 - str r1, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8061690 - - thumb_func_start sub_80618D8 -sub_80618D8: @ 80618D8 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r0, =gBattleTypeFlags - ldr r2, [r0] - movs r0, 0x80 - lsls r0, 20 - ands r0, r2 - cmp r0, 0 - beq _080618F8 - bl sub_806B830 - b _080619A2 - .pool -_080618F8: - ldr r3, =gUnknown_02038BCA - ldrh r1, [r3] - ldr r0, =0x000003fe - cmp r1, r0 - bne _08061910 - bl sub_81A4CB0 - b _080619A2 - .pool -_08061910: - movs r0, 0x80 - lsls r0, 19 - ands r0, r2 - cmp r0, 0 - beq _08061950 - movs r0, 0x80 - lsls r0, 8 - ands r2, r0 - cmp r2, 0 - beq _08061948 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08061938 - ldrh r0, [r3] - bl sub_81D5588 - b _080619A2 - .pool -_08061938: - ldr r0, =gUnknown_02038BCC - ldrh r0, [r0] - bl sub_81D5588 - b _080619A2 - .pool -_08061948: - ldrh r0, [r3] - bl sub_81D5588 - b _080619A2 -_08061950: - ldr r0, =0x003f0100 - ands r0, r2 - cmp r0, 0 - beq _08061994 - ldr r0, =0x00808000 - ands r2, r0 - cmp r2, 0 - beq _0806198C - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0806197C - ldrh r0, [r3] - bl sub_8162AA0 - b _080619A2 - .pool -_0806197C: - ldr r0, =gUnknown_02038BCC - ldrh r0, [r0] - bl sub_8162AA0 - b _080619A2 - .pool -_0806198C: - ldrh r0, [r3] - bl sub_8162AA0 - b _080619A2 -_08061994: - movs r0, 0x80 - lsls r0, 4 - ands r0, r2 - cmp r0, 0 - beq _080619A8 - bl sub_8165244 -_080619A2: - lsls r0, 24 - lsrs r0, 24 - b _080619DE -_080619A8: - movs r0, 0x80 - lsls r0, 8 - ands r2, r0 - cmp r2, 0 - beq _080619D0 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - cmp r0, 0x1 - beq _080619D0 - ldr r2, =gTrainers - ldr r0, =gUnknown_02038BCC - ldrh r1, [r0] - b _080619D4 - .pool -_080619D0: - ldr r2, =gTrainers - ldrh r1, [r3] -_080619D4: - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x3] -_080619DE: - mov r8, r0 - ldr r6, =gUnknown_02024064 - ldrb r1, [r6] - bl sub_805DF38 - ldrb r0, [r6] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl template_build_for_pokemon_or_trainer - ldr r0, =gUnknown_0202499C - ldr r2, =gUnknown_083054E0 - mov r3, r8 - lsls r1, r3, 2 - adds r1, r2 - ldrb r1, [r1] - movs r2, 0x8 - subs r2, r1 - lsls r2, 18 - movs r1, 0xA0 - lsls r1, 14 - adds r2, r1 - asrs r2, 16 - movs r1, 0xB0 - movs r3, 0x1E - bl AddObjectToFront - ldr r5, =gUnknown_020241E4 - ldrb r1, [r6] - adds r1, r5 - strb r0, [r1] - ldr r4, =gUnknown_02020630 - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x60 - strh r1, [r0, 0x24] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x20] - adds r1, 0x20 - strh r1, [r0, 0x20] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =0x0000fffe - strh r1, [r0, 0x2E] - ldr r1, =gTrainerFrontPicPaletteTable - mov r2, r8 - lsls r0, r2, 3 - adds r0, r1 - ldrh r0, [r0, 0x4] - bl IndexOfObjectPaletteTag - ldrb r1, [r6] - adds r1, r5 - ldrb r1, [r1] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r4 - lsls r0, 4 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - orrs r1, r0 - strb r1, [r2, 0x5] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - mov r3, r8 - strh r3, [r0, 0x6] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, =sub_805D7AC - str r1, [r0] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_805F208 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80618D8 - - thumb_func_start sub_8061AF0 -sub_8061AF0: @ 8061AF0 - push {r4-r6,lr} - ldr r6, =gUnknown_020241E4 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, =gUnknown_02020630 - adds r0, r5 - bl oamt_add_pos2_onto_pos1 - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x23 - strh r1, [r0, 0x2E] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x8C - lsls r1, 1 - strh r1, [r0, 0x32] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r0, 0x22] - strh r1, [r0, 0x36] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_80A6EEC - str r1, [r0] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =DummyObjectCallback - bl oamt_set_x3A_32 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_805F240 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8061AF0 - - thumb_func_start sub_8061B9C -sub_8061B9C: @ 8061B9C - push {r4-r6,lr} - ldr r6, =gUnknown_020244D0 - ldr r4, [r6] - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - ldr r0, [r4, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r3, r1, r0 - ldrb r0, [r3, 0x4] - cmp r0, 0 - bne _08061BF0 - ldr r1, [r4] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08061BD0 - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_08061BD0: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x4] - adds r1, 0x1 - strb r1, [r0, 0x4] - b _08061C2C - .pool -_08061BF0: - ldrb r1, [r3] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _08061C2C - strb r0, [r3, 0x4] - movs r0, 0x10 - movs r1, 0x3F - bl audio_play_and_stuff - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldrb r0, [r5] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, =sub_8039934 - str r1, [r0] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_805FAC4 - str r1, [r0] -_08061C2C: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8061B9C - - thumb_func_start sub_8061C48 -sub_8061C48: @ 8061C48 - push {lr} - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8061C48 - - thumb_func_start sub_8061C54 -sub_8061C54: @ 8061C54 - push {lr} - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8061C54 - - thumb_func_start sub_8061C60 -sub_8061C60: @ 8061C60 - push {lr} - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8061C60 - - thumb_func_start sub_8061C6C -sub_8061C6C: @ 8061C6C - push {lr} - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8061C6C - - thumb_func_start sub_8061C78 -sub_8061C78: @ 8061C78 - push {r4-r6,lr} - ldr r6, =gUnknown_02024064 - ldrb r0, [r6] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - beq _08061C8A - b _08061D9E -_08061C8A: - ldr r0, =gUnknown_02023064 - mov r12, r0 - ldrb r2, [r6] - lsls r2, 9 - adds r0, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - mov r1, r12 - adds r1, 0x2 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - ldr r5, =gUnknown_02038432 - mov r1, r12 - adds r1, 0x3 - adds r2, r1 - ldrb r1, [r2] - strb r1, [r5] - ldr r4, =gUnknown_02038408 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x4 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0x5 - adds r2, r1 - ldrb r1, [r2] - lsls r1, 8 - orrs r3, r1 - strh r3, [r4] - ldr r4, =gUnknown_02038404 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x6 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0x7 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r3, r1 - mov r1, r12 - adds r1, 0x8 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 16 - orrs r3, r1 - mov r1, r12 - adds r1, 0x9 - adds r2, r1 - ldrb r1, [r2] - lsls r1, 24 - orrs r3, r1 - str r3, [r4] - ldr r3, =gUnknown_0203841A - ldrb r1, [r6] - lsls r1, 9 - mov r2, r12 - adds r2, 0xA - adds r1, r2 - ldrb r1, [r1] - strb r1, [r3] - ldr r4, =gUnknown_0203841C - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0xC - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0xD - adds r2, r1 - ldrb r1, [r2] - lsls r1, 8 - orrs r3, r1 - strh r3, [r4] - ldr r3, =gUnknown_02038400 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x10 - adds r2, r1 - str r2, [r3] - ldr r3, =gUnknown_020244BC - ldrb r1, [r6] - lsls r1, 2 - adds r1, r3 - ldr r2, [r2] - str r2, [r1] - ldrb r1, [r5] - bl sub_805DB8C - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _08061D80 - bl dp01_tbl7_exec_completed - b _08061D9E - .pool -_08061D80: - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strb r3, [r0, 0x4] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_move_anim_7 - str r1, [r0] -_08061D9E: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8061C78 - - thumb_func_start bx_move_anim_7 -bx_move_anim_7: @ 8061DB0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r2, =gUnknown_02023064 - ldr r6, =gUnknown_02024064 - ldrb r3, [r6] - lsls r1, r3, 9 - adds r0, r2, 0x1 - mov r10, r0 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, r2, 0x2 - mov r9, r5 - adds r0, r1, r5 - ldrb r0, [r0] - lsls r0, 8 - orrs r4, r0 - adds r2, 0xB - adds r1, r2 - ldrb r1, [r1] - mov r8, r1 - ldr r7, =gUnknown_020244D0 - ldr r5, [r7] - ldr r1, [r5, 0x4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x4] - cmp r2, 0x1 - beq _08061E48 - cmp r2, 0x1 - bgt _08061E08 - cmp r2, 0 - beq _08061E12 - b _08061F24 - .pool -_08061E08: - cmp r2, 0x2 - beq _08061E72 - cmp r2, 0x3 - beq _08061EE8 - b _08061F24 -_08061E12: - ldr r1, [r5] - lsls r0, r3, 2 - adds r1, r0, r1 - ldrb r2, [r1] - movs r0, 0xC - ands r0, r2 - cmp r0, 0x4 - bne _08061E34 - movs r0, 0x8 - orrs r0, r2 - strb r0, [r1] - ldrb r2, [r6] - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_08061E34: - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0, 0x4] - b _08061F24 -_08061E48: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08061F24 - movs r0, 0 - bl sub_805EB9C - adds r0, r4, 0 - bl move_anim_start_t1 - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2 - strb r1, [r0, 0x4] - b _08061F24 -_08061E72: - ldr r0, =gUnknown_020383F8 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, =gUnknown_020383FD - ldrb r0, [r0] - cmp r0, 0 - bne _08061F24 - movs r0, 0x1 - bl sub_805EB9C - ldr r0, [r7] - ldrb r2, [r6] - ldr r1, [r0] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08061EC0 - mov r0, r8 - cmp r0, 0x1 - bhi _08061EC0 - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x6 - bl move_anim_start_t4 - ldr r0, [r7] - ldrb r1, [r6] - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - strb r0, [r1] -_08061EC0: - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - strb r1, [r0, 0x4] - b _08061F24 - .pool -_08061EE8: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _08061F24 - bl sub_805E394 - ldrb r0, [r6] - lsls r2, r0, 9 - mov r3, r10 - adds r1, r2, r3 - ldrb r1, [r1] - add r2, r9 - ldrb r2, [r2] - lsls r2, 8 - orrs r1, r2 - bl sub_805E94C - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strb r4, [r0, 0x4] - bl dp01_tbl7_exec_completed -_08061F24: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end bx_move_anim_7 - - thumb_func_start sub_8061F34 -sub_8061F34: @ 8061F34 - push {r4,r5,lr} - ldr r0, =gUnknown_02022E14 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_02022E16 - strh r1, [r0] - ldr r5, =gUnknown_02024064 - ldrb r4, [r5] - lsls r4, 9 - ldr r0, =gUnknown_02023066 - adds r4, r0 - ldrh r0, [r4] - bl battle_pick_message - ldr r0, =gUnknown_02022E2C - movs r1, 0 - bl battle_show_message_maybe - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_t7_button_a - str r1, [r0] - ldrb r0, [r5] - ldrh r1, [r4] - bl sub_81A57E4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8061F34 - - thumb_func_start sub_8061F90 -sub_8061F90: @ 8061F90 - push {lr} - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8061F90 - - thumb_func_start sub_8061F9C -sub_8061F9C: @ 8061F9C - push {lr} - bl sub_8063880 - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8061F9C - - thumb_func_start sub_8061FAC -sub_8061FAC: @ 8061FAC - push {lr} - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8061FAC - - thumb_func_start sub_8061FB8 -sub_8061FB8: @ 8061FB8 - push {r4-r6,lr} - ldr r0, =gBattleTypeFlags - ldr r2, [r0] - movs r0, 0x80 - lsls r0, 10 - ands r0, r2 - cmp r0, 0 - beq _08061FE4 - bl sub_805D19C - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - movs r0, 0x1 - movs r1, 0xA -_08061FD6: - bl dp01_build_cmdbuf_x21_a_bb -_08061FDA: - bl dp01_tbl7_exec_completed - b _08062156 - .pool -_08061FE4: - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 9 - ldr r1, =gUnknown_02023068 - adds r5, r0, r1 - movs r0, 0x93 - lsls r0, 3 - ands r2, r0 - cmp r2, 0 - beq _080620C4 - movs r0, 0xF - bl BattleAI_SetupAIData - bl sub_8130BA4 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - beq _08062022 - cmp r4, 0x5 - bgt _0806201C - cmp r4, 0x4 - beq _08062028 - b _08062040 - .pool -_0806201C: - cmp r4, 0x6 - beq _08062030 - b _08062040 -_08062022: - movs r0, 0x1 - movs r1, 0x4 - b _0806202C -_08062028: - movs r0, 0x1 - movs r1, 0x3 -_0806202C: - movs r2, 0 - b _08061FD6 -_08062030: - ldr r0, =gEnemyMonIndex - ldrb r2, [r0] - movs r0, 0x1 - movs r1, 0xF - b _08061FD6 - .pool -_08062040: - ldr r3, =gBattleMoves - lsls r0, r4, 1 - adds r2, r5, r0 - ldrh r1, [r2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x6] - movs r0, 0x12 - ands r0, r1 - cmp r0, 0 - beq _08062062 - ldr r0, =gEnemyMonIndex - ldr r1, =gUnknown_02024064 - ldrb r1, [r1] - strb r1, [r0] -_08062062: - ldrh r1, [r2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x6] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0806209C - movs r0, 0 - bl battle_get_side_with_given_state - ldr r5, =gEnemyMonIndex - strb r0, [r5] - ldr r0, =gUnknown_02024210 - ldrb r1, [r0] - ldr r2, =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _0806209C - movs r0, 0x2 - bl battle_get_side_with_given_state - strb r0, [r5] -_0806209C: - ldr r0, =gEnemyMonIndex - ldrb r0, [r0] - lsls r0, 8 - orrs r4, r0 - movs r0, 0x1 - movs r1, 0xA - adds r2, r4, 0 - bl dp01_build_cmdbuf_x21_a_bb - b _08061FDA - .pool -_080620C4: - movs r6, 0x3 -_080620C6: - bl Random - adds r4, r0, 0 - ands r4, r6 - lsls r0, r4, 1 - adds r0, r5, r0 - ldrh r2, [r0] - cmp r2, 0 - beq _080620C6 - ldr r1, =gBattleMoves - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x6] - movs r0, 0x12 - ands r0, r1 - cmp r0, 0 - beq _08062108 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 8 - orrs r4, r0 - movs r0, 0x1 - movs r1, 0xA - adds r2, r4, 0 - bl dp01_build_cmdbuf_x21_a_bb - b _08062152 - .pool -_08062108: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0806213C - bl Random - movs r1, 0x2 - ands r1, r0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r1, 0 - bl battle_get_side_with_given_state - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 16 - orrs r2, r4 - movs r0, 0x1 - movs r1, 0xA - bl dp01_build_cmdbuf_x21_a_bb - b _08062152 - .pool -_0806213C: - movs r0, 0 - bl battle_get_side_with_given_state - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 16 - orrs r2, r4 - movs r0, 0x1 - movs r1, 0xA - bl dp01_build_cmdbuf_x21_a_bb -_08062152: - bl dp01_tbl7_exec_completed -_08062156: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8061FB8 - - thumb_func_start sub_806215C -sub_806215C: @ 806215C - push {lr} - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsrs r0, 1 - ldr r1, =gUnknown_0202449C - ldr r1, [r1] - lsls r0, 1 - adds r0, r1 - adds r0, 0xC0 - ldrb r1, [r0] - movs r0, 0x1 - bl dp01_build_cmdbuf_x23_aa_0 - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end sub_806215C - - thumb_func_start sub_8062188 -sub_8062188: @ 8062188 - push {r4-r7,lr} - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - ldr r1, =gUnknown_0202449C - ldr r1, [r1] - adds r0, r1 - movs r2, 0xA5 - lsls r2, 2 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0x6 - bne _08062254 - bl sub_8063A90 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x6 - bne _0806225A - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080621D4 - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r5, r0, 24 - adds r7, r5, 0 - b _080621E8 - .pool -_080621D4: - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0x3 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r5, r0, 24 -_080621E8: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ldr r1, =0x00808000 - ands r0, r1 - cmp r0, 0 - beq _08062214 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08062210 - movs r0, 0 - movs r6, 0x3 - b _08062218 - .pool -_08062210: - movs r0, 0x3 - b _08062216 -_08062214: - movs r0, 0 -_08062216: - movs r6, 0x6 -_08062218: - adds r4, r0, 0 - b _0806221E -_0806221C: - adds r4, 0x1 -_0806221E: - cmp r4, r6 - bge _0806225A - movs r0, 0x64 - muls r0, r4 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0806221C - ldr r1, =gUnknown_0202406E - lsls r0, r7, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r4, r0 - beq _0806221C - lsls r0, r5, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r4, r0 - beq _0806221C - b _0806225A - .pool -_08062254: - ldrb r4, [r1] - movs r0, 0x6 - strb r0, [r1] -_0806225A: - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - ldr r1, =gUnknown_0202449C - ldr r1, [r1] - adds r0, r1 - adds r0, 0x5C - strb r4, [r0] - lsls r1, r4, 24 - lsrs r1, 24 - movs r0, 0x1 - movs r2, 0 - bl dp01_build_cmdbuf_x22_a_three_bytes - bl dp01_tbl7_exec_completed - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8062188 - - thumb_func_start sub_8062288 -sub_8062288: @ 8062288 - push {lr} - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8062288 - - thumb_func_start sub_8062294 -sub_8062294: @ 8062294 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - movs r0, 0 - bl load_gfxc_health_bar - ldr r3, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - mov r9, r0 - ldrb r4, [r0] - lsls r2, r4, 9 - adds r0, r3, 0x3 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r1, 8 - adds r3, 0x2 - adds r2, r3 - ldrb r0, [r2] - orrs r0, r1 - lsls r0, 16 - asrs r7, r0, 16 - ldr r0, =0x00007fff - cmp r7, r0 - beq _08062324 - ldr r6, =gUnknown_0202406E - lsls r0, r4, 1 - adds r0, r6 - ldrh r0, [r0] - movs r5, 0x64 - muls r0, r5 - ldr r4, =gEnemyParty - adds r0, r4 - movs r1, 0x3A - bl GetMonData - mov r8, r0 - mov r1, r9 - ldrb r0, [r1] - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - muls r0, r5 - adds r0, r4 - movs r1, 0x39 - bl GetMonData - adds r3, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r1, =gUnknown_03005D70 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - mov r2, r8 - bl sub_807294C - b _0806234E - .pool -_08062324: - ldr r1, =gUnknown_0202406E - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x3A - bl GetMonData - adds r2, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r1, =gUnknown_03005D70 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - movs r3, 0 - bl sub_807294C -_0806234E: - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_805FA70 - str r1, [r0] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8062294 - - thumb_func_start sub_8062384 -sub_8062384: @ 8062384 - push {lr} - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8062384 - - thumb_func_start sub_8062390 -sub_8062390: @ 8062390 - push {r4,lr} - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _080623E4 - ldr r0, =gUnknown_03005D70 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, =gUnknown_0202406E - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gEnemyParty - adds r1, r2 - movs r2, 0x9 - bl healthbar_draw_field_maybe - ldrb r2, [r4] - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_805FEB8 - str r1, [r0] -_080623E4: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8062390 - - thumb_func_start sub_8062408 -sub_8062408: @ 8062408 - push {r4,r5,lr} - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _08062458 - ldr r4, =gUnknown_02023064 - ldrb r3, [r5] - lsls r3, 9 - adds r0, r4, 0x1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, 0x2 - adds r1, r3, r1 - ldrb r1, [r1] - adds r2, r4, 0x3 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, 8 - orrs r1, r2 - adds r2, r4, 0x4 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, 16 - orrs r1, r2 - adds r4, 0x5 - adds r3, r4 - ldrb r2, [r3] - lsls r2, 24 - orrs r1, r2 - bl move_anim_start_t2_for_situation - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_805FEB8 - str r1, [r0] -_08062458: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8062408 - - thumb_func_start sub_8062470 -sub_8062470: @ 8062470 - push {lr} - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8062470 - - thumb_func_start sub_806247C -sub_806247C: @ 806247C - push {lr} - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_806247C - - thumb_func_start sub_8062488 -sub_8062488: @ 8062488 - push {lr} - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8062488 - - thumb_func_start sub_8062494 -sub_8062494: @ 8062494 - push {lr} - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8062494 - - thumb_func_start sub_80624A0 -sub_80624A0: @ 80624A0 - push {lr} - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_80624A0 - - thumb_func_start sub_80624AC -sub_80624AC: @ 80624AC - push {lr} - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_80624AC - - thumb_func_start sub_80624B8 -sub_80624B8: @ 80624B8 - push {lr} - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_80624B8 - - thumb_func_start sub_80624C4 -sub_80624C4: @ 80624C4 - push {lr} - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_80624C4 - - thumb_func_start sub_80624D0 -sub_80624D0: @ 80624D0 - push {lr} - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_80624D0 - - thumb_func_start sub_80624DC -sub_80624DC: @ 80624DC - push {lr} - ldr r2, =gUnknown_02022D0C - ldrb r1, [r2] - movs r0, 0x80 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end sub_80624DC - - thumb_func_start sub_80624F8 -sub_80624F8: @ 80624F8 - push {lr} - ldr r3, =gUnknown_02022D0C - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x7F - ands r1, r0 - ldrb r2, [r3] - movs r0, 0x80 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end sub_80624F8 - - thumb_func_start sub_8062530 -sub_8062530: @ 8062530 - push {lr} - ldr r2, =gUnknown_02022D0C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end sub_8062530 - - thumb_func_start sub_8062548 -sub_8062548: @ 8062548 - push {lr} - ldr r3, =gUnknown_02022D0C - ldr r1, [r3] - lsls r1, 24 - lsrs r1, 31 - movs r0, 0x1 - eors r1, r0 - lsls r1, 7 - ldrb r2, [r3] - movs r0, 0x7F - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end sub_8062548 - - thumb_func_start dp01t_29_7_blink -dp01t_29_7_blink: @ 8062570 - push {r4,lr} - ldr r3, =gUnknown_02020630 - ldr r2, =gUnknown_020241E4 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _080625A4 - bl dp01_tbl7_exec_completed - b _080625CE - .pool -_080625A4: - ldr r1, =gUnknown_020244B9 - movs r0, 0x1 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0 - strh r1, [r0, 0x30] - ldrb r0, [r4] - bl sub_80769F4 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_blink_t7 - str r1, [r0] -_080625CE: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end dp01t_29_7_blink - - thumb_func_start sub_80625E0 -sub_80625E0: @ 80625E0 - push {lr} - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_80625E0 - - thumb_func_start sub_80625EC -sub_80625EC: @ 80625EC - push {r4,lr} - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - movs r3, 0x3F - cmp r0, 0 - bne _08062600 - movs r3, 0xC0 -_08062600: - ldr r2, =gUnknown_02023064 - ldrb r1, [r4] - lsls r1, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - lsls r1, r3, 24 - asrs r1, 24 - bl audio_play_and_stuff - bl dp01_tbl7_exec_completed - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80625EC - - thumb_func_start sub_8062630 -sub_8062630: @ 8062630 - push {r4,r5,lr} - ldr r4, =gUnknown_02023064 - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - lsls r3, r0, 9 - adds r0, r4, 0x3 - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, 0 - beq _0806266C - bl sub_805EA60 - ldrb r1, [r5] - lsls r1, 9 - adds r0, r4, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, r4, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - bl song_play_for_text - b _08062680 - .pool -_0806266C: - adds r0, r4, 0x1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, 0x2 - adds r1, r3, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - bl fanfare_play -_08062680: - bl dp01_tbl7_exec_completed - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8062630 - - thumb_func_start sub_806268C -sub_806268C: @ 806268C - push {lr} - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x19 - movs r2, 0x5 - bl sub_80A32E4 - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end sub_806268C - - thumb_func_start dp01t_2E_7_battle_intro -dp01t_2E_7_battle_intro: @ 80626C8 - push {lr} - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - bl battle_intro_launch - ldr r2, =gUnknown_020243FC - ldrh r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end dp01t_2E_7_battle_intro - - thumb_func_start sub_80626FC -sub_80626FC: @ 80626FC - push {r4-r6,lr} - ldr r5, =gUnknown_020241E4 - ldr r6, =gUnknown_02024064 - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - bl oamt_add_pos2_onto_pos1 - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x23 - strh r1, [r0, 0x2E] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x8C - lsls r1, 1 - strh r1, [r0, 0x32] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x22] - strh r1, [r0, 0x36] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_80A6EEC - str r1, [r0] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =sub_806280C - bl oamt_set_x3A_32 - ldr r0, =sub_8062828 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r4, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - ldrb r0, [r6] - strh r0, [r1, 0x8] - ldr r3, =gUnknown_020244D0 - ldr r0, [r3] - ldrb r2, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080627BE - ldr r0, =gUnknown_020244B4 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - ldr r1, =sub_8073C30 - str r1, [r0] -_080627BE: - ldr r0, [r3] - ldr r2, [r0, 0x8] - ldrb r0, [r2, 0x9] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x9] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, =nullsub_26 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80626FC - - thumb_func_start sub_806280C -sub_806280C: @ 806280C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x6] - bl sub_805DFE4 - adds r0, r4, 0 - bl obj_free_rotscale_entry - adds r0, r4, 0 - bl RemoveObjectAndFreeTiles - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_806280C - - thumb_func_start sub_8062828 -sub_8062828: @ 8062828 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r7, =gUnknown_02024064 - ldrb r0, [r7] - mov r9, r0 - ldr r1, =gTasks - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x8] - strb r0, [r7] - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _0806286C - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0806286C - movs r0, 0x80 - lsls r0, 8 - ands r1, r0 - cmp r1, 0 - beq _080628A0 -_0806286C: - ldr r0, =gUnknown_02023064 - ldrb r1, [r7] - lsls r2, r1, 9 - adds r0, 0x1 - adds r2, r0 - ldr r0, =gUnknown_0202406E - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - strb r0, [r2] - ldrb r0, [r7] - movs r1, 0 - bl sub_80613DC - b _080628E0 - .pool -_080628A0: - ldr r4, =gUnknown_02023064 - ldrb r0, [r7] - lsls r1, r0, 9 - adds r4, 0x1 - adds r1, r4 - ldr r6, =gUnknown_0202406E - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r1, 0 - bl sub_80613DC - ldrb r0, [r7] - movs r5, 0x2 - eors r0, r5 - strb r0, [r7] - ldrb r0, [r7] - lsls r1, r0, 9 - adds r1, r4 - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r1, 0 - bl sub_80613DC - ldrb r0, [r7] - eors r0, r5 - strb r0, [r7] -_080628E0: - ldr r1, =gUnknown_03005D60 - ldr r2, =gUnknown_02024064 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_805F560 - str r1, [r0] - mov r0, r9 - strb r0, [r2] - mov r0, r8 - bl DestroyTask - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8062828 - - thumb_func_start dp01t_30_7_0803D67C -dp01t_30_7_0803D67C: @ 8062918 - push {r4-r7,lr} - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08062948 - adds r0, r2, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08062948 - bl dp01_tbl7_exec_completed - b _08062A12 - .pool -_08062948: - ldr r4, =gUnknown_020244D0 - ldr r0, [r4] - ldr r3, =gUnknown_02024064 - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - ldr r1, =gUnknown_02023064 - ldrb r2, [r3] - lsls r0, r2, 9 - adds r1, 0x2 - adds r0, r1 - ldrb r0, [r0] - adds r7, r3, 0 - cmp r0, 0 - beq _080629B4 - ldr r0, [r4] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r1 - ldrb r2, [r3, 0x1] - lsls r1, r2, 27 - lsrs r0, r1, 28 - cmp r0, 0x1 - bhi _080629AC - adds r0, 0x1 - movs r1, 0xF - ands r0, r1 - lsls r0, 1 - movs r1, 0x1F - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x1] - b _08062A12 - .pool -_080629AC: - movs r0, 0x1F - negs r0, r0 - ands r0, r2 - strb r0, [r3, 0x1] -_080629B4: - adds r5, r7, 0 - ldrb r0, [r5] - lsls r3, r0, 9 - ldr r4, =gUnknown_02023068 - adds r1, r3, r4 - subs r2, r4, 0x3 - adds r2, r3, r2 - ldrb r2, [r2] - subs r4, 0x2 - adds r3, r4 - ldrb r3, [r3] - bl sub_80735DC - ldr r2, =gUnknown_020244B4 - ldrb r1, [r5] - adds r1, r2 - movs r3, 0 - strb r0, [r1] - ldr r6, =gUnknown_020244D0 - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strb r3, [r0, 0x5] - ldrb r2, [r5] - lsls r0, r2, 9 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _08062A06 - ldr r0, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0x5D - strb r1, [r0, 0x5] -_08062A06: - ldr r0, =gUnknown_03005D60 - ldrb r1, [r7] - lsls r1, 2 - adds r1, r0 - ldr r0, =bx_0803D790_t7 - str r0, [r1] -_08062A12: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end dp01t_30_7_0803D67C - - thumb_func_start bx_0803D790_t7 -bx_0803D790_t7: @ 8062A2C - push {r4,lr} - ldr r4, =gUnknown_020244D0 - ldr r0, [r4] - ldr r3, =gUnknown_02024064 - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x5] - adds r2, r1, 0x1 - strb r2, [r0, 0x5] - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x5C - bls _08062A64 - ldr r0, [r4] - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strb r1, [r0, 0x5] - bl dp01_tbl7_exec_completed -_08062A64: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end bx_0803D790_t7 - - thumb_func_start sub_8062A74 -sub_8062A74: @ 8062A74 - push {lr} - ldr r0, =gUnknown_020244D0 - ldr r1, [r0] - ldr r0, =gUnknown_02024064 - ldrb r3, [r0] - ldr r1, [r1, 0x4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08062AA6 - ldr r2, =gTasks - ldr r0, =gUnknown_020244B4 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, =sub_8073C30 - str r1, [r0] -_08062AA6: - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end sub_8062A74 - - thumb_func_start sub_8062AC4 -sub_8062AC4: @ 8062AC4 - push {lr} - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8062AC4 - - thumb_func_start sub_8062AD0 -sub_8062AD0: @ 8062AD0 - push {r4,lr} - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - bl sub_80A6A90 - lsls r0, 24 - cmp r0, 0 - beq _08062B16 - ldr r3, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldr r0, =gUnknown_02023064 - lsls r1, 9 - adds r0, 0x1 - adds r1, r0 - adds r2, 0x3E - movs r0, 0x1 - ldrb r1, [r1] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - bl sub_805E408 -_08062B16: - bl dp01_tbl7_exec_completed - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8062AD0 - - thumb_func_start dp01t_34_7_move_anim_start_t3 -dp01t_34_7_move_anim_start_t3: @ 8062B30 - push {r4-r6,lr} - sub sp, 0x4 - ldr r6, =gUnknown_02024064 - ldrb r0, [r6] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _08062B88 - ldr r5, =gUnknown_02023064 - ldrb r2, [r6] - lsls r1, r2, 9 - adds r0, r5, 0x1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r0, r5, 0x2 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, 0x3 - adds r1, r5 - ldrb r0, [r1] - lsls r0, 8 - orrs r4, r0 - str r4, [sp] - adds r0, r2, 0 - adds r1, r2, 0 - bl move_anim_start_t3 - lsls r0, 24 - cmp r0, 0 - beq _08062B7C - bl dp01_tbl7_exec_completed - b _08062B88 - .pool -_08062B7C: - ldr r0, =gUnknown_03005D60 - ldrb r1, [r6] - lsls r1, 2 - adds r1, r0 - ldr r0, =bx_803B0F4 - str r0, [r1] -_08062B88: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end dp01t_34_7_move_anim_start_t3 - - thumb_func_start sub_8062B98 -sub_8062B98: @ 8062B98 - push {lr} - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8062B98 - - thumb_func_start sub_8062BA4 -sub_8062BA4: @ 8062BA4 - push {lr} - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8062BA4 - - thumb_func_start sub_8062BB0 -sub_8062BB0: @ 8062BB0 - push {lr} - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x6 - ands r0, r1 - cmp r0, 0x2 - bne _08062BDA - ldr r2, =gMain - ldr r0, =0x00000439 - adds r3, r2, r0 - ldrb r1, [r3] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - ldr r0, =gUnknown_03005D00 - ldr r0, [r0] - str r0, [r2] - ldr r0, [r2, 0x8] - bl SetMainCallback2 -_08062BDA: - bl dp01_tbl7_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end sub_8062BB0 - - thumb_func_start nullsub_91 -nullsub_91: @ 8062BF4 - bx lr - thumb_func_end nullsub_91 - - thumb_func_start ai_switch_perish_song -ai_switch_perish_song: @ 8062BF8 - push {lr} - ldr r1, =gUnknown_020242AC - ldr r0, =gUnknown_02024064 - ldrb r2, [r0] - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08062C50 - ldr r0, =gUnknown_020242BC - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0xF] - lsls r0, 28 - cmp r0, 0 - bne _08062C50 - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - adds r0, r2, r0 - movs r1, 0xA5 - lsls r1, 2 - adds r0, r1 - movs r1, 0x6 - strb r1, [r0] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb - movs r0, 0x1 - b _08062C52 - .pool -_08062C50: - movs r0, 0 -_08062C52: - pop {r1} - bx r1 - thumb_func_end ai_switch_perish_song - - thumb_func_start sub_8062C58 -sub_8062C58: @ 8062C58 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08062C72 - b _08062E2C -_08062C72: - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl battle_get_per_side_status - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r4, =gBattleMons - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x58 - muls r0, r1 - adds r0, r4 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x19 - beq _08062C9E - b _08062E2C -_08062C9E: - mov r0, r10 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r2, r0, 24 - movs r6, 0 - mov r8, r4 - movs r7, 0x58 - adds r0, r2, 0 - muls r0, r7 - adds r4, r0, r4 - movs r0, 0x20 - adds r0, r4 - mov r9, r0 -_08062CBA: - lsls r1, r6, 1 - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - muls r0, r7 - adds r1, r0 - mov r0, r8 - adds r0, 0xC - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - beq _08062CE8 - ldrh r1, [r4] - mov r3, r9 - ldrb r2, [r3] - bl ai_rate_move - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0x2 - ands r1, r0 - cmp r1, 0 - beq _08062CE8 - b _08062E2C -_08062CE8: - adds r6, 0x1 - cmp r6, 0x3 - ble _08062CBA - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ldr r1, =0x00808000 - ands r0, r1 - cmp r0, 0 - beq _08062D50 - ldrb r1, [r5] - movs r0, 0x2 - ands r0, r1 - adds r1, r5, 0 - cmp r0, 0 - bne _08062D20 - movs r4, 0 - movs r0, 0x3 - str r0, [sp] - b _08062D58 - .pool -_08062D20: - movs r4, 0x3 - movs r3, 0x6 - str r3, [sp] - b _08062D58 -_08062D28: - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - ldr r1, =gUnknown_0202449C - ldr r1, [r1] - adds r0, r1 - movs r1, 0xA5 - lsls r1, 2 - adds r0, r1 - strb r6, [r0] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb - movs r0, 0x1 - b _08062E2E - .pool -_08062D50: - movs r4, 0 - movs r3, 0x6 - str r3, [sp] - adds r1, r5, 0 -_08062D58: - ldrb r0, [r1] - bl battle_side_get_owner - lsls r0, 24 - ldr r1, =gEnemyParty - mov r9, r1 - cmp r0, 0 - bne _08062D6C - ldr r3, =gPlayerParty - mov r9, r3 -_08062D6C: - adds r6, r4, 0 - ldr r0, [sp] - cmp r6, r0 - bge _08062E2C -_08062D74: - movs r0, 0x64 - adds r5, r6, 0 - muls r5, r0 - mov r1, r9 - adds r4, r1, r5 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08062E24 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _08062E24 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _08062E24 - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r6, r0 - beq _08062E24 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - adds r0, r4, 0 - movs r1, 0x2E - bl GetMonData - mov r0, r10 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r2, r0, 24 - movs r4, 0 - mov r8, r5 - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r2 - adds r5, r0, r1 - adds r7, r5, 0 - adds r7, 0x20 -_08062DE0: - adds r1, r4, 0 - adds r1, 0xD - mov r0, r9 - add r0, r8 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - beq _08062E1E - ldrh r1, [r5] - ldrb r2, [r7] - bl ai_rate_move - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0x2 - ands r1, r0 - cmp r1, 0 - beq _08062E1E - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _08062D28 -_08062E1E: - adds r4, 0x1 - cmp r4, 0x3 - ble _08062DE0 -_08062E24: - adds r6, 0x1 - ldr r3, [sp] - cmp r6, r3 - blt _08062D74 -_08062E2C: - movs r0, 0 -_08062E2E: - 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_8062C58 - - thumb_func_start sub_8062E54 -sub_8062E54: @ 8062E54 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r0, 0x1 - bl ai_has_super_effective_move_on_field - lsls r0, 24 - cmp r0, 0 - beq _08062E82 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - beq _08062E82 - b _080630AC -_08062E82: - ldr r1, =gUnknown_02024250 - ldr r5, =gUnknown_02024064 - ldrb r3, [r5] - lsls r0, r3, 1 - adds r4, r0, r1 - ldrh r1, [r4] - cmp r1, 0 - bne _08062E94 - b _080630AC -_08062E94: - ldr r0, =0x0000ffff - cmp r1, r0 - bne _08062E9C - b _080630AC -_08062E9C: - ldr r2, =gBattleMoves - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _08062EB0 - b _080630AC -_08062EB0: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08062F1A - mov r8, r3 - mov r0, r8 - bl battle_get_per_side_status - movs r4, 0x2 - eors r0, r4 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r1, =gUnknown_02024210 - ldrb r1, [r1] - ldr r2, =gBitTable - lsls r0, 24 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08062F04 - ldrb r7, [r5] - b _08062F1E - .pool -_08062F04: - ldrb r0, [r5] - bl battle_get_per_side_status - eors r0, r4 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r7, r0, 24 - b _08062F1E -_08062F1A: - adds r7, r3, 0 - mov r8, r7 -_08062F1E: - ldr r3, =gBattleMoves - ldr r1, =gUnknown_02024250 - ldr r2, =gUnknown_02024064 - ldrb r0, [r2] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x2] - cmp r0, 0xA - bne _08062F4C - movs r0, 0x12 - b _08062F5E - .pool -_08062F4C: - cmp r0, 0xB - bne _08062F56 - movs r1, 0xB - str r1, [sp] - b _08062F60 -_08062F56: - cmp r0, 0xD - beq _08062F5C - b _080630AC -_08062F5C: - movs r0, 0xA -_08062F5E: - str r0, [sp] -_08062F60: - ldr r1, =gBattleMons - ldrb r3, [r2] - movs r0, 0x58 - muls r0, r3 - adds r0, r1 - adds r0, 0x20 - ldrb r0, [r0] - ldr r1, [sp] - cmp r0, r1 - bne _08062F76 - b _080630AC -_08062F76: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ldr r1, =0x00808000 - ands r0, r1 - cmp r0, 0 - beq _08062FCC - movs r0, 0x2 - ands r3, r0 - cmp r3, 0 - bne _08062F9C - movs r4, 0 - movs r0, 0x3 - b _08062FD0 - .pool -_08062F9C: - movs r4, 0x3 - movs r1, 0x6 - mov r10, r1 - b _08062FD2 -_08062FA4: - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - ldr r1, =gUnknown_0202449C - ldr r1, [r1] - adds r0, r1 - movs r2, 0xA5 - lsls r2, 2 - adds r0, r2 - strb r5, [r0] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb - movs r0, 0x1 - b _080630AE - .pool -_08062FCC: - movs r4, 0 - movs r0, 0x6 -_08062FD0: - mov r10, r0 -_08062FD2: - ldrb r0, [r2] - bl battle_side_get_owner - lsls r0, 24 - ldr r1, =gEnemyParty - str r1, [sp, 0x4] - cmp r0, 0 - bne _08062FE6 - ldr r2, =gPlayerParty - str r2, [sp, 0x4] -_08062FE6: - adds r5, r4, 0 - cmp r5, r10 - bge _080630AC - ldr r0, =gBaseStats - mov r9, r0 -_08062FF0: - movs r0, 0x64 - muls r0, r5 - ldr r1, [sp, 0x4] - adds r6, r1, r0 - adds r0, r6, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _080630A6 - adds r0, r6, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _080630A6 - adds r0, r6, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _080630A6 - ldr r1, =gUnknown_0202406E - mov r2, r8 - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r5, r0 - beq _080630A6 - lsls r0, r7, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r5, r0 - beq _080630A6 - ldr r0, =gUnknown_0202449C - ldr r1, [r0] - adds r0, r2, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r5, r0 - beq _080630A6 - adds r0, r7, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r5, r0 - beq _080630A6 - adds r0, r6, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r6, 0 - movs r1, 0x2E - bl GetMonData - cmp r0, 0 - beq _08063088 - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - add r0, r9 - ldrb r0, [r0, 0x17] - b _08063092 - .pool -_08063088: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - add r0, r9 - ldrb r0, [r0, 0x16] -_08063092: - ldr r1, [sp] - cmp r1, r0 - bne _080630A6 - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080630A6 - b _08062FA4 -_080630A6: - adds r5, 0x1 - cmp r5, r10 - blt _08062FF0 -_080630AC: - movs r0, 0 -_080630AE: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8062E54 - - thumb_func_start ai_switchout_natural_cure -ai_switchout_natural_cure: @ 80630C0 - push {r4,r5,lr} - ldr r3, =gBattleMons - ldr r5, =gUnknown_02024064 - ldrb r4, [r5] - movs r0, 0x58 - adds r2, r4, 0 - muls r2, r0 - adds r0, r3, 0 - adds r0, 0x4C - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - beq _08063188 - adds r1, r2, r3 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1E - bne _08063188 - ldrh r0, [r1, 0x2C] - ldrh r1, [r1, 0x28] - lsrs r0, 1 - cmp r1, r0 - bcc _08063188 - ldr r1, =gUnknown_02024250 - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - cmp r1, 0 - beq _08063106 - ldr r0, =0x0000ffff - cmp r1, r0 - bne _08063128 -_08063106: - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08063128 - ldrb r0, [r5] - b _08063190 - .pool -_08063128: - ldr r2, =gBattleMoves - ldr r1, =gUnknown_02024250 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _08063160 - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08063160 - ldrb r0, [r4] - b _08063190 - .pool -_08063160: - movs r0, 0x8 - movs r1, 0x1 - bl ai_switchout_something - lsls r0, 24 - cmp r0, 0 - bne _080631AA - movs r0, 0x4 - movs r1, 0x1 - bl ai_switchout_something - lsls r0, 24 - cmp r0, 0 - bne _080631AA - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - bne _0806318C -_08063188: - movs r0, 0 - b _080631AC -_0806318C: - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] -_08063190: - ldr r1, =gUnknown_0202449C - ldr r1, [r1] - adds r0, r1 - movs r1, 0xA5 - lsls r1, 2 - adds r0, r1 - movs r1, 0x6 - strb r1, [r0] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb -_080631AA: - movs r0, 0x1 -_080631AC: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end ai_switchout_natural_cure - - thumb_func_start ai_has_super_effective_move_on_field -ai_has_super_effective_move_on_field: @ 80631BC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl battle_get_per_side_status - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, =gUnknown_02024210 - ldrb r1, [r0] - ldr r2, =gBitTable - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08063256 - movs r4, 0 - ldr r6, =gBattleMons - movs r7, 0x58 - adds r0, r3, 0 - muls r0, r7 - adds r5, r0, r6 - movs r0, 0x20 - adds r0, r5 - mov r8, r0 -_0806320A: - lsls r1, r4, 1 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - muls r0, r7 - adds r1, r0 - adds r0, r6, 0 - adds r0, 0xC - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - beq _08063250 - ldrh r1, [r5] - mov r3, r8 - ldrb r2, [r3] - bl ai_rate_move - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0x2 - ands r1, r0 - cmp r1, 0 - beq _08063250 - mov r0, r9 - cmp r0, 0 - bne _08063278 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _08063278 -_08063250: - adds r4, 0x1 - cmp r4, 0x3 - ble _0806320A -_08063256: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0806327C - b _080632FA - .pool -_08063278: - movs r0, 0x1 - b _080632FC -_0806327C: - movs r1, 0x2 - mov r0, r10 - eors r0, r1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, =gUnknown_02024210 - ldrb r1, [r0] - ldr r2, =gBitTable - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _080632FA - movs r4, 0 - ldr r6, =gBattleMons - movs r7, 0x58 - adds r0, r3, 0 - muls r0, r7 - adds r5, r0, r6 - movs r3, 0x20 - adds r3, r5 - mov r8, r3 -_080632AE: - lsls r1, r4, 1 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - muls r0, r7 - adds r1, r0 - adds r0, r6, 0 - adds r0, 0xC - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - beq _080632F4 - ldrh r1, [r5] - mov r3, r8 - ldrb r2, [r3] - bl ai_rate_move - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0x2 - ands r1, r0 - cmp r1, 0 - beq _080632F4 - mov r0, r9 - cmp r0, 0 - bne _08063278 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _08063278 -_080632F4: - adds r4, 0x1 - cmp r4, 0x3 - ble _080632AE -_080632FA: - movs r0, 0 -_080632FC: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end ai_has_super_effective_move_on_field - - thumb_func_start ai_is_too_invested_in_stat_buffs -ai_is_too_invested_in_stat_buffs: @ 806331C - push {r4,lr} - movs r4, 0 - ldr r1, =gBattleMons - ldr r0, =gUnknown_02024064 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x18 - adds r2, r0, r1 - movs r3, 0x7 -_08063330: - ldrb r1, [r2] - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0x6 - ble _08063346 - subs r1, 0x6 - lsls r0, r4, 24 - asrs r0, 24 - adds r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 -_08063346: - adds r2, 0x1 - subs r3, 0x1 - cmp r3, 0 - bge _08063330 - movs r0, 0 - cmp r4, 0x3 - bls _08063356 - movs r0, 0x1 -_08063356: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end ai_is_too_invested_in_stat_buffs - - thumb_func_start ai_switchout_something -ai_switchout_something: @ 8063364 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x4] - ldr r2, =gUnknown_02024250 - ldr r1, =gUnknown_02024064 - ldrb r3, [r1] - lsls r0, r3, 1 - adds r4, r0, r2 - ldrh r2, [r4] - adds r5, r1, 0 - cmp r2, 0 - bne _08063390 - b _080635EE -_08063390: - ldr r0, =0x0000ffff - cmp r2, r0 - bne _08063398 - b _080635EE -_08063398: - ldr r0, =gUnknown_02024270 - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080633A4 - b _080635EE -_080633A4: - ldr r2, =gBattleMoves - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _080633B8 - b _080635EE -_080633B8: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0806342C - mov r9, r3 - mov r0, r9 - bl battle_get_per_side_status - movs r4, 0x2 - eors r0, r4 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r1, =gUnknown_02024210 - ldrb r1, [r1] - ldr r2, =gBitTable - lsls r0, 24 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08063414 - ldrb r5, [r5] - mov r10, r5 - b _08063430 - .pool -_08063414: - ldrb r0, [r5] - bl battle_get_per_side_status - eors r0, r4 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - b _08063430 -_0806342C: - mov r9, r3 - mov r10, r9 -_08063430: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ldr r1, =0x00808000 - ands r0, r1 - cmp r0, 0 - beq _08063490 - ldr r2, =gUnknown_02024064 - ldrb r1, [r2] - movs r0, 0x2 - ands r0, r1 - adds r5, r2, 0 - cmp r0, 0 - bne _08063460 - movs r4, 0 - movs r0, 0x3 - str r0, [sp, 0x8] - b _08063498 - .pool -_08063460: - movs r4, 0x3 - movs r1, 0x6 - str r1, [sp, 0x8] - b _08063498 -_08063468: - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - ldr r1, =gUnknown_0202449C - ldr r1, [r1] - adds r0, r1 - movs r2, 0xA5 - lsls r2, 2 - adds r0, r2 - strb r6, [r0] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb - movs r0, 0x1 - b _080635F0 - .pool -_08063490: - movs r4, 0 - movs r0, 0x6 - str r0, [sp, 0x8] - ldr r5, =gUnknown_02024064 -_08063498: - ldrb r0, [r5] - bl battle_side_get_owner - lsls r0, 24 - ldr r1, =gEnemyParty - str r1, [sp, 0xC] - cmp r0, 0 - bne _080634AC - ldr r2, =gPlayerParty - str r2, [sp, 0xC] -_080634AC: - adds r6, r4, 0 - b _080635E6 - .pool -_080634BC: - movs r0, 0x64 - muls r0, r6 - ldr r1, [sp, 0xC] - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _080634D2 - b _080635E4 -_080634D2: - adds r0, r5, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - bne _080634E0 - b _080635E4 -_080634E0: - adds r0, r5, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _080635E4 - ldr r1, =gUnknown_0202406E - mov r2, r9 - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r6, r0 - beq _080635E4 - mov r2, r10 - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r6, r0 - beq _080635E4 - ldr r0, =gUnknown_0202449C - ldr r1, [r0] - mov r2, r9 - adds r0, r2, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r6, r0 - beq _080635E4 - mov r2, r10 - adds r0, r2, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r6, r0 - beq _080635E4 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r5, 0 - movs r1, 0x2E - bl GetMonData - cmp r0, 0 - beq _08063558 - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - ldr r1, =gBaseStats - adds r0, r1 - ldrb r2, [r0, 0x17] - b _08063564 - .pool -_08063558: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - ldr r2, =gBaseStats - adds r0, r2 - ldrb r2, [r0, 0x16] -_08063564: - ldr r1, =gUnknown_02024250 - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - adds r1, r4, 0 - bl ai_rate_move - ldr r1, [sp] - ands r1, r0 - cmp r1, 0 - beq _080635E4 - ldr r1, =gUnknown_02024270 - ldrb r0, [r5] - adds r0, r1 - ldrb r0, [r0] - mov r9, r0 - movs r4, 0 - movs r0, 0x64 - adds r1, r6, 0 - muls r1, r0 - mov r8, r1 - ldr r1, =gBattleMons - movs r0, 0x58 - mov r2, r9 - muls r2, r0 - adds r0, r2, 0 - adds r5, r0, r1 - adds r7, r5, 0 - adds r7, 0x20 -_080635A2: - adds r1, r4, 0 - adds r1, 0xD - ldr r0, [sp, 0xC] - add r0, r8 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - beq _080635DE - ldrh r1, [r5] - ldrb r2, [r7] - bl ai_rate_move - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0x2 - ands r1, r0 - cmp r1, 0 - beq _080635DE - bl Random - lsls r0, 16 - lsrs r0, 16 - ldr r1, [sp, 0x4] - bl __modsi3 - cmp r0, 0 - bne _080635DE - b _08063468 -_080635DE: - adds r4, 0x1 - cmp r4, 0x3 - ble _080635A2 -_080635E4: - adds r6, 0x1 -_080635E6: - ldr r0, [sp, 0x8] - cmp r6, r0 - bge _080635EE - b _080634BC -_080635EE: - movs r0, 0 -_080635F0: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end ai_switchout_something - - thumb_func_start sub_8063614 -sub_8063614: @ 8063614 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r6, =gBattleMons - ldr r4, =gUnknown_02024064 - ldrb r2, [r4] - movs r5, 0x58 - adds r0, r2, 0 - muls r0, r5 - adds r1, r6, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - ldr r1, =0x0400e000 - ands r0, r1 - cmp r0, 0 - beq _0806363E - b _0806386C -_0806363E: - ldr r0, =gUnknown_020242AC - lsls r1, r2, 2 - adds r1, r0 - ldr r1, [r1] - movs r0, 0x80 - lsls r0, 3 - ands r1, r0 - cmp r1, 0 - beq _08063652 - b _0806386C -_08063652: - str r1, [sp] - movs r0, 0xC - adds r1, r2, 0 - movs r2, 0x17 - movs r3, 0 - bl ability_something - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _0806366A - b _0806386C -_0806366A: - ldrb r1, [r4] - str r0, [sp] - movs r0, 0xC - movs r2, 0x47 - movs r3, 0 - bl ability_something - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08063682 - b _0806386C -_08063682: - str r0, [sp] - movs r0, 0xE - movs r1, 0 - movs r2, 0x2A - movs r3, 0 - bl ability_something - lsls r0, 24 - cmp r0, 0 - beq _080636B4 - ldrb r0, [r4] - muls r0, r5 - adds r1, r0, r6 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x8 - bne _080636A8 - b _0806386C -_080636A8: - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x8 - bne _080636B4 - b _0806386C -_080636B4: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 11 - ands r0, r1 - cmp r0, 0 - beq _080636C4 - b _0806386C -_080636C4: - movs r0, 0 - mov r10, r0 - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - beq _0806372E - ldrb r7, [r4] - adds r0, r7, 0 - bl battle_get_per_side_status - movs r5, 0x2 - eors r0, r5 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r1, =gUnknown_02024210 - ldrb r1, [r1] - ldr r2, =gBitTable - lsls r0, 24 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08063718 - ldrb r6, [r4] - b _08063732 - .pool -_08063718: - ldrb r0, [r4] - bl battle_get_per_side_status - eors r0, r5 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r6, r0, 24 - b _08063732 -_0806372E: - ldrb r6, [r4] - adds r7, r6, 0 -_08063732: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ldr r1, =0x00808000 - ands r0, r1 - cmp r0, 0 - beq _08063768 - ldr r2, =gUnknown_02024064 - ldrb r1, [r2] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08063760 - movs r4, 0 - movs r1, 0x3 - mov r8, r1 - b _08063770 - .pool -_08063760: - movs r4, 0x3 - movs r0, 0x6 - mov r8, r0 - b _08063770 -_08063768: - movs r4, 0 - movs r1, 0x6 - mov r8, r1 - ldr r2, =gUnknown_02024064 -_08063770: - ldrb r0, [r2] - bl battle_side_get_owner - lsls r0, 24 - ldr r1, =gEnemyParty - mov r9, r1 - cmp r0, 0 - bne _08063784 - ldr r0, =gPlayerParty - mov r9, r0 -_08063784: - adds r5, r4, 0 - cmp r5, r8 - bge _080637F2 -_0806378A: - movs r0, 0x64 - muls r0, r5 - mov r1, r9 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _080637EC - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _080637EC - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _080637EC - ldr r1, =gUnknown_0202406E - lsls r0, r7, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r5, r0 - beq _080637EC - lsls r0, r6, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r5, r0 - beq _080637EC - ldr r0, =gUnknown_0202449C - ldr r1, [r0] - adds r0, r7, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r5, r0 - beq _080637EC - adds r0, r6, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r5, r0 - beq _080637EC - movs r0, 0x1 - add r10, r0 -_080637EC: - adds r5, 0x1 - cmp r5, r8 - blt _0806378A -_080637F2: - mov r1, r10 - cmp r1, 0 - beq _0806386C - bl ai_switch_perish_song - lsls r0, 24 - cmp r0, 0 - bne _08063852 - bl sub_8062C58 - lsls r0, 24 - cmp r0, 0 - bne _08063852 - bl sub_8062E54 - lsls r0, 24 - cmp r0, 0 - bne _08063852 - bl ai_switchout_natural_cure - lsls r0, 24 - cmp r0, 0 - bne _08063852 - movs r0, 0 - bl ai_has_super_effective_move_on_field - lsls r0, 24 - cmp r0, 0 - bne _0806386C - bl ai_is_too_invested_in_stat_buffs - lsls r0, 24 - cmp r0, 0 - bne _0806386C - movs r0, 0x8 - movs r1, 0x2 - bl ai_switchout_something - lsls r0, 24 - cmp r0, 0 - bne _08063852 - movs r0, 0x4 - movs r1, 0x3 - bl ai_switchout_something - lsls r0, 24 - cmp r0, 0 - beq _0806386C -_08063852: - movs r0, 0x1 - b _0806386E - .pool -_0806386C: - movs r0, 0 -_0806386E: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8063614 - - thumb_func_start sub_8063880 -sub_8063880: @ 8063880 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r6, r0, 24 - adds r5, r6, 0 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - ldr r1, =gEnemyParty - mov r8, r1 - cmp r0, 0 - bne _080638A8 - ldr r2, =gPlayerParty - mov r8, r2 -_080638A8: - ldr r7, =gBattleTypeFlags - ldr r0, [r7] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - bne _080638B6 - b _080639E6 -_080638B6: - bl sub_8063614 - lsls r0, 24 - cmp r0, 0 - bne _080638C2 - b _080639DC -_080638C2: - ldrb r0, [r4] - ldr r2, =gUnknown_0202449C - ldr r1, [r2] - adds r0, r1 - movs r1, 0xA5 - lsls r1, 2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x6 - bne _080639B8 - bl sub_8063A90 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x6 - bne _080639A6 - ldr r0, [r7] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08063910 - adds r0, r6, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - b _08063928 - .pool -_08063910: - adds r0, r5, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0x2 - eors r5, r0 - adds r0, r5, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r5, r0, 24 -_08063928: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ldr r1, =0x00808000 - ands r0, r1 - cmp r0, 0 - beq _08063958 - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08063954 - movs r0, 0 - movs r7, 0x3 - b _0806395C - .pool -_08063954: - movs r0, 0x3 - b _0806395A -_08063958: - movs r0, 0 -_0806395A: - movs r7, 0x6 -_0806395C: - adds r4, r0, 0 - cmp r4, r7 - bge _080639A6 -_08063962: - movs r0, 0x64 - muls r0, r4 - add r0, r8 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _080639A0 - ldr r1, =gUnknown_0202406E - lsls r0, r6, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r4, r0 - beq _080639A0 - lsls r0, r5, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r4, r0 - beq _080639A0 - ldr r0, =gUnknown_0202449C - ldr r1, [r0] - adds r0, r6, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r4, r0 - beq _080639A0 - adds r0, r5, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r4, r0 - bne _080639A6 -_080639A0: - adds r4, 0x1 - cmp r4, r7 - blt _08063962 -_080639A6: - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - ldr r2, =gUnknown_0202449C - ldr r1, [r2] - adds r0, r1 - movs r1, 0xA5 - lsls r1, 2 - adds r0, r1 - strb r4, [r0] -_080639B8: - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r0, [r2] - adds r0, r1, r0 - adds r1, r0, 0 - adds r1, 0x5C - movs r2, 0xA5 - lsls r2, 2 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - b _080639F8 - .pool -_080639DC: - bl sub_8063EE0 - lsls r0, 24 - cmp r0, 0 - bne _080639F8 -_080639E6: - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - movs r2, 0x1 - eors r2, r0 - lsls r2, 8 - movs r0, 0x1 - movs r1, 0 - bl dp01_build_cmdbuf_x21_a_bb -_080639F8: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8063880 - - thumb_func_start sub_8063A08 -sub_8063A08: @ 8063A08 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r6, r3, 0 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - movs r7, 0 - ldr r0, =gUnknown_0831ACE8 - mov r10, r0 - ldrb r0, [r0] - cmp r0, 0xFF - beq _08063A7A - mov r5, r10 -_08063A36: - ldrb r0, [r5] - cmp r0, 0xFE - beq _08063A6C - ldr r1, [sp] - cmp r0, r1 - bne _08063A6C - ldrb r4, [r5, 0x1] - cmp r4, r9 - bne _08063A56 - ldrb r1, [r6] - ldrb r0, [r5, 0x2] - muls r0, r1 - movs r1, 0xA - bl __divsi3 - strb r0, [r6] -_08063A56: - cmp r4, r8 - bne _08063A6C - cmp r9, r8 - beq _08063A6C - ldrb r1, [r6] - ldrb r0, [r5, 0x2] - muls r0, r1 - movs r1, 0xA - bl __divsi3 - strb r0, [r6] -_08063A6C: - adds r5, 0x3 - adds r7, 0x3 - mov r1, r10 - adds r0, r7, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08063A36 -_08063A7A: - 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_8063A08 - - thumb_func_start sub_8063A90 -sub_8063A90: @ 8063A90 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - ldr r4, =gUnknown_02024064 - ldrb r2, [r4] - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - adds r0, r2, r0 - adds r1, r0, 0 - adds r1, 0x5C - ldrb r0, [r1] - cmp r0, 0x6 - beq _08063AB2 - b _08063E50 -_08063AB2: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 11 - ands r0, r1 - cmp r0, 0 - beq _08063AE0 - ldr r1, =gUnknown_0202406E - lsls r0, r2, 1 - adds r0, r1 - ldrb r0, [r0] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - b _08063E50 - .pool -_08063AE0: - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08063B6C - str r2, [sp, 0x10] - adds r0, r2, 0 - bl battle_get_per_side_status - movs r5, 0x2 - eors r0, r5 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r1, =gUnknown_02024210 - ldrb r1, [r1] - ldr r2, =gBitTable - lsls r0, 24 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08063B20 - ldrb r4, [r4] - str r4, [sp, 0x14] - b _08063B36 - .pool -_08063B20: - ldrb r0, [r4] - bl battle_get_per_side_status - eors r0, r5 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x14] -_08063B36: - bl Random - movs r3, 0x2 - ands r0, r3 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - ldr r0, =gUnknown_02024210 - ldrb r1, [r0] - ldr r2, =gBitTable - ldr r4, [sp, 0x4] - lsls r0, r4, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08063B8A - eors r4, r3 - lsls r0, r4, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - b _08063B8A - .pool -_08063B6C: - adds r0, r2, 0 - bl battle_get_per_side_status - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - ldrb r4, [r4] - str r4, [sp, 0x14] - str r4, [sp, 0x10] -_08063B8A: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ldr r1, =0x00808000 - ands r0, r1 - cmp r0, 0 - beq _08063BC2 - ldr r2, =gUnknown_02024064 - ldrb r1, [r2] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08063BB8 - movs r0, 0 - str r0, [sp, 0x18] - movs r1, 0x3 - str r1, [sp, 0x1C] - b _08063BCC - .pool -_08063BB8: - movs r4, 0x3 - str r4, [sp, 0x18] - movs r0, 0x6 - str r0, [sp, 0x1C] - b _08063BCC -_08063BC2: - movs r1, 0 - str r1, [sp, 0x18] - movs r2, 0x6 - str r2, [sp, 0x1C] - ldr r2, =gUnknown_02024064 -_08063BCC: - ldrb r0, [r2] - bl battle_side_get_owner - lsls r0, 24 - ldr r4, =gEnemyParty - str r4, [sp, 0x20] - cmp r0, 0 - bne _08063BE0 - ldr r0, =gPlayerParty - str r0, [sp, 0x20] -_08063BE0: - movs r1, 0 - mov r9, r1 -_08063BE4: - movs r2, 0 - str r2, [sp, 0x8] - movs r4, 0x6 - str r4, [sp, 0xC] - ldr r7, [sp, 0x18] - ldr r0, [sp, 0x1C] - cmp r7, r0 - blt _08063BF6 - b _08063CF2 -_08063BF6: - lsls r0, r7, 2 - ldr r1, =gBitTable - adds r0, r1 - mov r8, r0 - mov r10, sp -_08063C00: - movs r0, 0x64 - muls r0, r7 - ldr r2, [sp, 0x20] - adds r4, r2, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _08063CD8 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08063CD8 - mov r4, r8 - ldr r0, [r4] - mov r1, r9 - ands r0, r1 - cmp r0, 0 - bne _08063CD8 - ldr r1, =gUnknown_0202406E - ldr r2, [sp, 0x10] - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r7 - beq _08063CD8 - ldr r4, [sp, 0x14] - lsls r0, r4, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r7 - beq _08063CD8 - ldr r0, =gUnknown_0202449C - ldr r1, [r0] - adds r0, r2, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r7, r0 - beq _08063CD8 - adds r0, r4, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r7, r0 - beq _08063CD8 - ldr r1, =gBaseStats - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r5, [r0, 0x6] - ldrb r6, [r0, 0x7] - movs r0, 0xA - mov r1, r10 - strb r0, [r1] - movs r0, 0x58 - ldr r2, [sp, 0x4] - adds r4, r2, 0 - muls r4, r0 - ldr r0, =gBattleMons - adds r4, r0 - adds r0, r4, 0 - adds r0, 0x21 - ldrb r0, [r0] - adds r1, r5, 0 - adds r2, r6, 0 - mov r3, sp - bl sub_8063A08 - adds r4, 0x22 - ldrb r0, [r4] - adds r1, r5, 0 - adds r2, r6, 0 - mov r3, sp - bl sub_8063A08 - ldr r2, [sp, 0x8] - mov r1, r10 - ldrb r1, [r1] - cmp r2, r1 - bcs _08063CE6 - mov r2, r10 - ldrb r2, [r2] - str r2, [sp, 0x8] - lsls r0, r7, 24 - lsrs r0, 24 - str r0, [sp, 0xC] - b _08063CE6 - .pool -_08063CD8: - mov r4, r8 - ldr r0, [r4] - mov r1, r9 - orrs r1, r0 - lsls r0, r1, 24 - lsrs r0, 24 - mov r9, r0 -_08063CE6: - movs r2, 0x4 - add r8, r2 - adds r7, 0x1 - ldr r4, [sp, 0x1C] - cmp r7, r4 - blt _08063C00 -_08063CF2: - ldr r0, [sp, 0xC] - cmp r0, 0x6 - beq _08063D54 - movs r7, 0 - movs r0, 0x64 - ldr r1, [sp, 0xC] - adds r5, r1, 0 - muls r5, r0 -_08063D02: - adds r1, r7, 0 - adds r1, 0xD - ldr r2, [sp, 0x20] - adds r0, r2, r5 - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _08063D2A - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - adds r0, r4, 0 - ldr r2, [sp, 0x4] - bl move_effectiveness_something - movs r1, 0x2 - ands r1, r0 - cmp r1, 0 - bne _08063D30 -_08063D2A: - adds r7, 0x1 - cmp r7, 0x3 - ble _08063D02 -_08063D30: - cmp r7, 0x4 - beq _08063D36 - b _08063E4E -_08063D36: - ldr r4, [sp, 0xC] - lsls r0, r4, 2 - ldr r1, =gBitTable - adds r0, r1 - ldr r0, [r0] - mov r2, r9 - orrs r2, r0 - lsls r0, r2, 24 - lsrs r0, 24 - mov r9, r0 - b _08063D58 - .pool -_08063D54: - movs r4, 0x3F - mov r9, r4 -_08063D58: - mov r0, r9 - cmp r0, 0x3F - beq _08063D60 - b _08063BE4 -_08063D60: - ldr r0, =gUnknown_02024400 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - strb r1, [r0, 0x13] - ldr r0, =gUnknown_02024474 - movs r2, 0x1 - strb r2, [r0, 0xE] - ldr r0, =gBattleMoveFlags - strb r1, [r0] - ldr r0, =gCritMultiplier - strb r2, [r0] - movs r1, 0 - str r1, [sp, 0x8] - movs r2, 0x6 - str r2, [sp, 0xC] - ldr r7, [sp, 0x18] - ldr r4, [sp, 0x1C] - cmp r7, r4 - bge _08063E4E -_08063D8A: - movs r0, 0x64 - adds r6, r7, 0 - muls r6, r0 - ldr r0, [sp, 0x20] - adds r4, r0, r6 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - adds r1, r7, 0x1 - mov r10, r1 - cmp r0, 0 - beq _08063E46 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08063E46 - ldr r1, =gUnknown_0202406E - ldr r2, [sp, 0x10] - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r7 - beq _08063E46 - ldr r4, [sp, 0x14] - lsls r0, r4, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r7 - beq _08063E46 - ldr r0, =gUnknown_0202449C - ldr r1, [r0] - adds r0, r2, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r7, r0 - beq _08063E46 - adds r0, r4, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r7, r0 - beq _08063E46 - movs r5, 0 - mov r9, r6 - ldr r0, =gBattleMoveDamage - mov r8, r0 - ldr r6, =gUnknown_02024064 -_08063DEE: - adds r1, r5, 0 - adds r1, 0xD - ldr r0, [sp, 0x20] - add r0, r9 - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0 - mov r1, r8 - str r0, [r1] - cmp r4, 0 - beq _08063E2A - ldr r0, =gBattleMoves - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0x1 - beq _08063E2A - ldrb r0, [r6] - ldr r1, [sp, 0x4] - bl sub_8046E7C - ldrb r1, [r6] - adds r0, r4, 0 - ldr r2, [sp, 0x4] - bl move_effectiveness_something -_08063E2A: - mov r2, r8 - ldr r0, [r2] - ldr r4, [sp, 0x8] - cmp r4, r0 - bge _08063E40 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - lsls r0, r7, 24 - lsrs r0, 24 - str r0, [sp, 0xC] -_08063E40: - adds r5, 0x1 - cmp r5, 0x3 - ble _08063DEE -_08063E46: - mov r7, r10 - ldr r0, [sp, 0x1C] - cmp r7, r0 - blt _08063D8A -_08063E4E: - ldr r0, [sp, 0xC] -_08063E50: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8063A90 - - thumb_func_start ai_identify_item_effect -ai_identify_item_effect: @ 8063E84 - push {r4,lr} - adds r2, r1, 0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bne _08063E94 - movs r0, 0x1 - b _08063EDA -_08063E94: - ldrb r1, [r2, 0x4] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08063EA2 - movs r0, 0x2 - b _08063EDA -_08063EA2: - ldrb r4, [r2, 0x3] - movs r3, 0x3F - adds r0, r3, 0 - ands r0, r4 - cmp r0, 0 - beq _08063EB2 - movs r0, 0x3 - b _08063EDA -_08063EB2: - ldrb r1, [r2] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _08063EC8 - ldrb r0, [r2, 0x1] - cmp r0, 0 - bne _08063EC8 - ldrb r0, [r2, 0x2] - cmp r0, 0 - beq _08063ECC -_08063EC8: - movs r0, 0x4 - b _08063EDA -_08063ECC: - movs r0, 0x80 - ands r0, r4 - cmp r0, 0 - bne _08063ED8 - movs r0, 0x6 - b _08063EDA -_08063ED8: - movs r0, 0x5 -_08063EDA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end ai_identify_item_effect - - thumb_func_start sub_8063EE0 -sub_8063EE0: @ 8063EE0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r0, 0 - mov r10, r0 - movs r7, 0 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 15 - ands r0, r1 - cmp r0, 0 - beq _08063F12 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _08063F12 - b _0806437C -_08063F12: - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - ldr r5, =gEnemyParty - cmp r0, 0 - bne _08063F24 - ldr r5, =gPlayerParty -_08063F24: - movs r1, 0 - mov r8, r1 -_08063F28: - movs r0, 0x64 - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - adds r4, r5, r0 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08063F64 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _08063F64 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _08063F64 - mov r0, r10 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 -_08063F64: - movs r0, 0x1 - add r8, r0 - mov r1, r8 - cmp r1, 0x5 - ble _08063F28 - movs r2, 0 - mov r8, r2 -_08063F72: - ldr r1, =gUnknown_020244A8 - mov r0, r8 - cmp r0, 0 - beq _08063F8E - ldr r0, [r1] - ldr r0, [r0, 0x18] - adds r0, 0x50 - ldrb r0, [r0] - mov r2, r8 - subs r0, r2 - adds r0, 0x1 - cmp r10, r0 - ble _08063F8E - b _08064370 -_08063F8E: - ldr r0, [r1] - ldr r0, [r0, 0x18] - mov r2, r8 - lsls r1, r2, 1 - adds r0, 0x48 - adds r0, r1 - ldrh r0, [r0] - mov r9, r0 - str r1, [sp] - cmp r0, 0 - bne _08063FA6 - b _08064370 -_08063FA6: - ldr r1, =gItemEffectInfoPointers - subs r0, 0xD - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - cmp r1, 0 - bne _08063FB6 - b _08064370 -_08063FB6: - mov r0, r9 - cmp r0, 0xAF - bne _08063FE8 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003214 - adds r5, r0, r1 - b _08063FEA - .pool -_08063FE8: - adds r5, r1, 0 -_08063FEA: - mov r2, r9 - lsls r0, r2, 24 - lsrs r0, 24 - adds r1, r5, 0 - bl ai_identify_item_effect - ldr r4, =gUnknown_02024064 - ldrb r1, [r4] - lsrs r1, 1 - ldr r3, =gUnknown_0202449C - ldr r2, [r3] - adds r1, r2 - adds r1, 0xC4 - strb r0, [r1] - ldrb r0, [r4] - lsrs r0, 1 - ldr r1, [r3] - adds r0, r1 - adds r0, 0xC4 - ldrb r0, [r0] - subs r0, 0x1 - cmp r0, 0x5 - bls _0806401A - b _08064324 -_0806401A: - lsls r0, 2 - ldr r1, =_08064030 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08064030: - .4byte _08064048 - .4byte _08064074 - .4byte _080640BC - .4byte _08064214 - .4byte _080642F4 - .4byte _0806437C -_08064048: - ldr r2, =gBattleMons - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r1, [r0, 0x2C] - ldrh r0, [r0, 0x28] - lsrs r1, 2 - cmp r0, r1 - bcc _08064060 - b _08064324 -_08064060: - cmp r0, 0 - bne _08064066 - b _08064324 -_08064066: - movs r7, 0x1 - b _08064328 - .pool -_08064074: - mov r0, r9 - movs r1, 0x4 - movs r2, 0x4 - bl sub_806CDDC - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _08064088 - b _08064324 -_08064088: - ldr r2, =gBattleMons - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r1, r0, r2 - ldrh r2, [r1, 0x28] - cmp r2, 0 - bne _0806409C - b _08064324 -_0806409C: - ldrh r3, [r1, 0x2C] - lsrs r0, r3, 2 - cmp r2, r0 - bcc _08064066 - adds r0, r2, 0 - subs r0, r3, r0 - adds r1, r5, r4 - ldrb r1, [r1] - cmp r0, r1 - bgt _080640B2 - b _08064324 -_080640B2: - b _08064066 - .pool -_080640BC: - ldr r3, =gUnknown_02024064 - ldrb r0, [r3] - lsrs r0, 1 - ldr r2, =gUnknown_0202449C - ldr r1, [r2] - adds r0, r1 - adds r0, 0xC6 - movs r1, 0 - strb r1, [r0] - ldrb r1, [r5, 0x3] - movs r6, 0x20 - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08064100 - ldr r1, =gBattleMons - ldrb r4, [r3] - movs r0, 0x58 - muls r0, r4 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - beq _08064100 - lsrs r1, r4, 1 - ldr r0, [r2] - adds r1, r0 - adds r1, 0xC6 - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - movs r7, 0x1 -_08064100: - ldrb r1, [r5, 0x3] - movs r6, 0x10 - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0806413A - ldr r1, =gBattleMons - ldrb r4, [r3] - movs r0, 0x58 - muls r0, r4 - adds r1, 0x4C - adds r0, r1 - ldr r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _0806412A - movs r0, 0x80 - ands r1, r0 - cmp r1, 0 - beq _0806413A -_0806412A: - lsrs r1, r4, 1 - ldr r0, [r2] - adds r1, r0 - adds r1, 0xC6 - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - movs r7, 0x1 -_0806413A: - ldrb r1, [r5, 0x3] - movs r6, 0x8 - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0806416C - ldr r1, =gBattleMons - ldrb r4, [r3] - movs r0, 0x58 - muls r0, r4 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0806416C - lsrs r1, r4, 1 - ldr r0, [r2] - adds r1, r0 - adds r1, 0xC6 - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - movs r7, 0x1 -_0806416C: - ldrb r1, [r5, 0x3] - movs r6, 0x4 - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0806419E - ldr r1, =gBattleMons - ldrb r4, [r3] - movs r0, 0x58 - muls r0, r4 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0806419E - lsrs r1, r4, 1 - ldr r0, [r2] - adds r1, r0 - adds r1, 0xC6 - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - movs r7, 0x1 -_0806419E: - ldrb r1, [r5, 0x3] - movs r6, 0x2 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080641D0 - ldr r1, =gBattleMons - ldrb r4, [r3] - movs r0, 0x58 - muls r0, r4 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080641D0 - lsrs r1, r4, 1 - ldr r0, [r2] - adds r1, r0 - adds r1, 0xC6 - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - movs r7, 0x1 -_080641D0: - ldrb r1, [r5, 0x3] - movs r4, 0x1 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080641DE - b _08064324 -_080641DE: - ldr r1, =gBattleMons - ldrb r3, [r3] - movs r0, 0x58 - muls r0, r3 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _080641F6 - b _08064324 -_080641F6: - lsrs r1, r3, 1 - ldr r0, [r2] - adds r1, r0 - adds r1, 0xC6 - ldrb r0, [r1] - orrs r0, r4 - strb r0, [r1] - b _08064066 - .pool -_08064214: - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - lsrs r0, 1 - ldr r3, =gUnknown_0202449C - ldr r1, [r3] - adds r0, r1 - adds r0, 0xC6 - movs r1, 0 - strb r1, [r0] - ldr r1, =gUnknown_020242BC - ldrb r2, [r4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x16] - cmp r0, 0 - beq _08064324 - ldrb r1, [r5] - movs r6, 0xF - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _08064254 - lsrs r2, 1 - ldr r0, [r3] - adds r2, r0 - adds r2, 0xC6 - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] -_08064254: - ldrb r1, [r5, 0x1] - movs r7, 0xF0 - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _08064272 - ldrb r0, [r4] - lsrs r0, 1 - ldr r1, [r3] - adds r0, r1 - adds r0, 0xC6 - ldrb r1, [r0] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] -_08064272: - ldrb r1, [r5, 0x1] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _0806428E - ldrb r0, [r4] - lsrs r0, 1 - ldr r1, [r3] - adds r0, r1 - adds r0, 0xC6 - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_0806428E: - ldrb r1, [r5, 0x2] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _080642AA - ldrb r0, [r4] - lsrs r0, 1 - ldr r1, [r3] - adds r0, r1 - adds r0, 0xC6 - ldrb r1, [r0] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0] -_080642AA: - ldrb r1, [r5, 0x2] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _080642C6 - ldrb r0, [r4] - lsrs r0, 1 - ldr r1, [r3] - adds r0, r1 - adds r0, 0xC6 - ldrb r1, [r0] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0] -_080642C6: - ldrb r1, [r5] - movs r0, 0x30 - ands r0, r1 - cmp r0, 0 - bne _080642D2 - b _08064066 -_080642D2: - ldrb r0, [r4] - lsrs r0, 1 - ldr r1, [r3] - adds r0, r1 - adds r0, 0xC6 - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] - b _08064066 - .pool -_080642F4: - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, =gUnknown_020242BC - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x16] - cmp r0, 0 - beq _08064324 - ldr r0, =gUnknown_02024294 - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x4] - cmp r0, 0 - bne _08064324 - b _08064066 -_08064324: - cmp r7, 0 - beq _08064370 -_08064328: - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsrs r0, 1 - ldr r1, =gUnknown_0202449C - ldr r1, [r1] - lsls r0, 1 - adds r0, r1 - adds r0, 0xC0 - mov r1, r9 - strb r1, [r0] - ldr r0, =gUnknown_020244A8 - ldr r0, [r0] - ldr r0, [r0, 0x18] - adds r0, 0x48 - ldr r2, [sp] - adds r0, r2 - movs r1, 0 - strh r1, [r0] - adds r0, r7, 0 - b _0806437E - .pool -_08064370: - movs r0, 0x1 - add r8, r0 - mov r1, r8 - cmp r1, 0x3 - bgt _0806437C - b _08063F72 -_0806437C: - movs r0, 0 -_0806437E: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8063EE0 - - thumb_func_start nullsub_28 -nullsub_28: @ 8064390 - bx lr - thumb_func_end nullsub_28 - - thumb_func_start sub_8064394 -sub_8064394: @ 8064394 - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_80643B0 - str r1, [r0] - bx lr - .pool - thumb_func_end sub_8064394 - - thumb_func_start sub_80643B0 -sub_80643B0: @ 80643B0 - push {lr} - ldr r2, =gUnknown_02024068 - ldr r1, =gBitTable - ldr r0, =gUnknown_02024064 - ldrb r3, [r0] - lsls r0, r3, 2 - adds r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _080643FC - ldr r0, =gUnknown_02023064 - lsls r1, r3, 9 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x38 - bhi _080643F8 - ldr r0, =gUnknown_0831C7B4 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 - b _080643FC - .pool -_080643F8: - bl sub_8065068 -_080643FC: - pop {r0} - bx r0 - thumb_func_end sub_80643B0 - - thumb_func_start sub_8064400 -sub_8064400: @ 8064400 - push {lr} - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _08064424 - bl sub_8065068 -_08064424: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8064400 - - thumb_func_start sub_8064438 -sub_8064438: @ 8064438 - push {lr} - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _0806445C - bl sub_8065068 -_0806445C: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8064438 - - thumb_func_start sub_8064470 -sub_8064470: @ 8064470 - push {r4-r6,lr} - ldr r5, =gUnknown_02020630 - ldr r6, =gUnknown_020241E4 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r2, r0, 2 - adds r0, r5, 0 - adds r0, 0x1C - adds r0, r2, r0 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _080644C2 - adds r0, r2, r5 - ldrh r0, [r0, 0x6] - bl sub_805DFE4 - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl obj_free_rotscale_entry - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl RemoveObjectAndFreeTiles - bl sub_8065068 -_080644C2: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8064470 - - thumb_func_start sub_80644D8 -sub_80644D8: @ 80644D8 - push {r4,lr} - ldr r4, =gUnknown_020244D0 - ldr r1, [r4] - ldr r3, =gUnknown_02024064 - ldrb r0, [r3] - ldr r2, [r1, 0x4] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x9] - subs r0, 0x1 - strb r0, [r1, 0x9] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _08064510 - ldr r0, [r4] - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strb r1, [r0, 0x9] - bl sub_8065068 -_08064510: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80644D8 - - thumb_func_start sub_8064520 -sub_8064520: @ 8064520 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r0, 0 - mov r8, r0 - movs r4, 0 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _0806454C - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08064584 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08064584 -_0806454C: - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_03005D70 - ldr r3, =gUnknown_02024064 - ldrb r0, [r3] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - adds r7, r3, 0 - cmp r1, r0 - bne _080645C2 - b _080645CA - .pool -_08064584: - ldr r3, =gUnknown_02020630 - ldr r6, =gUnknown_03005D70 - ldr r2, =gUnknown_02024064 - ldrb r4, [r2] - adds r0, r4, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r5, r3, 0 - adds r5, 0x1C - adds r0, r5 - ldr r3, [r0] - ldr r0, =DummyObjectCallback - adds r7, r2, 0 - cmp r3, r0 - bne _080645C0 - movs r0, 0x2 - eors r4, r0 - adds r0, r4, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r0, [r0] - cmp r0, r3 - bne _080645C0 - movs r1, 0x1 - mov r8, r1 -_080645C0: - movs r4, 0x1 -_080645C2: - mov r0, r8 - cmp r0, 0 - bne _080645CA - b _08064714 -_080645CA: - cmp r4, 0 - bne _080645DE - ldrb r1, [r7] - movs r0, 0x2 - eors r0, r1 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - bne _0806469C -_080645DE: - ldr r1, =gUnknown_020244D0 - mov r12, r1 - ldr r0, [r1] - ldr r7, =gUnknown_02024064 - ldrb r2, [r7] - ldr r3, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r4, r0, r3 - ldrb r1, [r4, 0x1] - movs r5, 0x1 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _08064600 - b _08064714 -_08064600: - movs r6, 0x2 - adds r1, r6, 0 - eors r1, r2 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x1] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _08064714 - ldrb r1, [r4] - movs r3, 0x7F - adds r0, r3, 0 - ands r0, r1 - strb r0, [r4] - mov r1, r12 - ldr r0, [r1] - ldrb r2, [r7] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r4, 0x2 - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - strb r0, [r1, 0x1] - mov r0, r12 - ldr r2, [r0] - ldrb r0, [r7] - adds r1, r6, 0 - eors r1, r0 - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - mov r1, r12 - ldr r2, [r1] - ldrb r0, [r7] - adds r1, r6, 0 - eors r1, r0 - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - ands r4, r1 - strb r4, [r0, 0x1] - ldr r4, =0x000027f9 - adds r0, r4, 0 - bl FreeObjectTilesByTag - adds r0, r4, 0 - bl FreeObjectPaletteByTag - b _080646F2 - .pool -_0806469C: - ldr r3, =gUnknown_020244D0 - ldr r0, [r3] - ldrb r1, [r7] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r2, r0, r2 - ldrb r1, [r2, 0x1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08064714 - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - ldr r0, [r3] - ldrb r2, [r7] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldrb r0, [r7] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _080646F2 - ldr r4, =0x000027f9 - adds r0, r4, 0 - bl FreeObjectTilesByTag - adds r0, r4, 0 - bl FreeObjectPaletteByTag -_080646F2: - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r3, =gUnknown_02024064 - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - strb r1, [r0, 0x9] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r3] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_80644D8 - str r1, [r0] -_08064714: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8064520 - - thumb_func_start sub_8064734 -sub_8064734: @ 8064734 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r0, 0 - mov r10, r0 - ldr r5, =gUnknown_020244D0 - ldr r0, [r5] - ldr r4, =gUnknown_02024064 - ldrb r2, [r4] - ldr r1, [r0, 0x4] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0] - movs r6, 0xC4 - lsls r6, 1 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - bne _08064776 - ldr r0, =gUnknown_0202406E - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gEnemyParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8172EF0 -_08064776: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080647B4 - ldr r2, [r5] - ldrb r1, [r4] - movs r0, 0x2 - adds r3, r0, 0 - eors r3, r1 - ldr r1, [r2, 0x4] - lsls r2, r3, 1 - adds r0, r2, r3 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - bne _080647B4 - ldr r0, =gUnknown_0202406E - adds r0, r2, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gEnemyParty - adds r1, r0 - adds r0, r3, 0 - bl sub_8172EF0 -_080647B4: - ldr r3, =gUnknown_020244D0 - ldr r0, [r3] - ldr r2, =gUnknown_02024064 - ldrb r5, [r2] - ldr r4, [r0, 0x4] - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - adds r6, r0, r4 - ldrb r1, [r6] - movs r0, 0x8 - mov r12, r0 - ands r0, r1 - mov r8, r3 - mov r9, r2 - cmp r0, 0 - bne _08064898 - movs r7, 0x2 - adds r1, r7, 0 - eors r1, r5 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0] - mov r0, r12 - ands r0, r1 - cmp r0, 0 - bne _08064898 - ldrb r1, [r6, 0x1] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0806487A - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _0806484A - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0806484A - ldr r4, =gUnknown_03005D70 - mov r1, r9 - ldrb r0, [r1] - adds r1, r7, 0 - eors r1, r0 - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, =gUnknown_0202406E - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gEnemyParty - adds r1, r2 - movs r2, 0 - bl healthbar_draw_field_maybe - mov r1, r9 - ldrb r0, [r1] - eors r0, r7 - bl sub_8076918 - mov r1, r9 - ldrb r0, [r1] - eors r0, r7 - adds r0, r4 - ldrb r0, [r0] - bl sub_80729D0 -_0806484A: - ldr r5, =gUnknown_03005D70 - ldr r4, =gUnknown_02024064 - ldrb r1, [r4] - adds r0, r1, r5 - ldrb r0, [r0] - ldr r2, =gUnknown_0202406E - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gEnemyParty - adds r1, r2 - movs r2, 0 - bl healthbar_draw_field_maybe - ldrb r0, [r4] - bl sub_8076918 - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl sub_80729D0 -_0806487A: - ldr r4, =gUnknown_020244D0 - ldr r0, [r4] - ldr r3, =gUnknown_02024064 - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0, 0x1] - mov r8, r4 - mov r9, r3 -_08064898: - mov r1, r8 - ldr r0, [r1] - mov r1, r9 - ldrb r2, [r1] - ldr r3, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x1] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0x80 - bne _0806495A - movs r1, 0x2 - eors r1, r2 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x1] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0806495A - bl sub_80A36C8 - lsls r0, 24 - cmp r0, 0 - bne _0806495A - mov r1, r8 - ldr r0, [r1] - mov r1, r9 - ldrb r2, [r1] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x1] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _0806493C - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x42 - ands r0, r1 - cmp r0, 0x42 - bne _08064930 - adds r0, r2, 0 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806493C - ldr r0, =gMPlay_BGM - bl m4aMPlayContinue - b _0806493C - .pool -_08064930: - ldr r0, =gMPlay_BGM - ldr r1, =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl -_0806493C: - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x1] - movs r0, 0x1 - mov r10, r0 -_0806495A: - mov r1, r10 - cmp r1, 0 - bne _08064962 - b _08064AC0 -_08064962: - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_03005D7C - ldr r5, =gUnknown_02024064 - ldrb r3, [r5] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r4, [r0] - ldr r0, =DummyObjectCallback - cmp r4, r0 - beq _08064982 - b _08064AC0 -_08064982: - ldr r0, =gUnknown_020241E4 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - cmp r0, r4 - beq _08064998 - b _08064AC0 -_08064998: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080649E2 - adds r0, r3, 0 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _080649E2 - ldr r3, =gUnknown_020244D0 - ldr r0, [r3] - ldrb r2, [r5] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x9] - adds r0, 0x1 - strb r0, [r1, 0x9] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08064AC0 - ldr r0, [r3] - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strb r1, [r0, 0x9] -_080649E2: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08064A3A - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08064A3A - ldr r1, =gUnknown_03005D7C - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - movs r4, 0x2 - eors r0, r4 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - bl RemoveObjectAndFreeTiles - ldrb r0, [r5] - eors r4, r0 - ldr r1, =gUnknown_0202406E - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_805EE54 -_08064A3A: - ldr r1, =gUnknown_03005D7C - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - bl RemoveObjectAndFreeTiles - ldrb r5, [r4] - ldr r1, =gUnknown_0202406E - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - bl sub_805EE54 - ldr r3, =gUnknown_020244D0 - ldr r0, [r3] - ldr r2, [r0, 0x8] - ldrb r1, [r2, 0x9] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x9] - ldr r0, [r3] - ldrb r2, [r4] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r0, [r3] - ldrb r2, [r4] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0x7F - ands r0, r2 - strb r0, [r1, 0x1] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8064520 - str r1, [r0] -_08064AC0: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8064734 - - thumb_func_start sub_8064B04 -sub_8064B04: @ 8064B04 - push {r4-r7,lr} - ldr r4, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 - ldr r7, =gUnknown_02024064 - ldrb r3, [r7] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r2, r0, 2 - adds r0, r4, 0 - adds r0, 0x1C - adds r0, r2, r0 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _08064BB6 - adds r0, r2, r4 - movs r1, 0x24 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08064BB6 - ldr r6, =gUnknown_020244D0 - ldr r0, [r6] - ldr r1, [r0, 0x4] - lsls r4, r3, 1 - adds r0, r4, r3 - lsls r0, 2 - adds r2, r0, r1 - ldrb r5, [r2] - movs r0, 0x80 - ands r0, r5 - cmp r0, 0 - bne _08064B7C - ldr r0, =gUnknown_0202406E - adds r0, r4, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gEnemyParty - adds r1, r0 - adds r0, r3, 0 - bl sub_8172EF0 - b _08064BB6 - .pool -_08064B7C: - ldrb r1, [r2, 0x1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08064BB6 - movs r0, 0x7F - ands r0, r5 - strb r0, [r2] - ldr r0, [r6] - ldrb r2, [r7] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r4, =0x000027f9 - adds r0, r4, 0 - bl FreeObjectTilesByTag - adds r0, r4, 0 - bl FreeObjectPaletteByTag - bl sub_8065068 -_08064BB6: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8064B04 - - thumb_func_start sub_8064BC0 -sub_8064BC0: @ 8064BC0 - push {r4-r6,lr} - ldr r6, =gUnknown_02024064 - ldrb r0, [r6] - ldr r5, =gUnknown_03005D70 - adds r1, r0, r5 - ldrb r1, [r1] - movs r2, 0 - movs r3, 0 - bl sub_8074AA0 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r6] - adds r0, r5 - ldrb r0, [r0] - bl sub_80729D0 - lsls r4, 16 - asrs r1, r4, 16 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08064C08 - ldrb r0, [r6] - adds r0, r5 - ldrb r0, [r0] - movs r2, 0 - bl heathbar_draw_hp - b _08064C0C - .pool -_08064C08: - bl sub_8065068 -_08064C0C: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8064BC0 - - thumb_func_start sub_8064C14 -sub_8064C14: @ 8064C14 - push {lr} - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 - ldr r1, =gUnknown_02024064 - ldrb r3, [r1] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - bne _08064C42 - ldr r0, =gUnknown_03005D70 - adds r0, r3, r0 - ldrb r0, [r0] - bl sub_8072984 - bl sub_8065068 -_08064C42: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8064C14 - - thumb_func_start sub_8064C58 -sub_8064C58: @ 8064C58 - push {r4-r6,lr} - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r6, =gUnknown_02024064 - ldrb r2, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08064CB2 - ldr r5, =gUnknown_020241E4 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - bl obj_free_rotscale_entry - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl RemoveObjectAndFreeTiles - ldrb r0, [r6] - bl sub_805EEE0 - ldr r1, =gUnknown_03005D70 - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl sub_8072984 - bl sub_8065068 -_08064CB2: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8064C58 - - thumb_func_start sub_8064CCC -sub_8064CCC: @ 8064CCC - push {lr} - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _08064CDE - bl sub_8065068 -_08064CDE: - pop {r0} - bx r0 - thumb_func_end sub_8064CCC - - thumb_func_start sub_8064CE4 -sub_8064CE4: @ 8064CE4 - push {r4,lr} - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - ldr r2, =gUnknown_02020630 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x20 - bne _08064D30 - movs r3, 0 - movs r0, 0 - strh r0, [r4, 0x30] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - subs r0, 0x5 - ands r0, r1 - strb r0, [r2] - ldr r0, =gUnknown_020244B9 - strb r3, [r0] - bl sub_8065068 - b _08064D5A - .pool -_08064D30: - ldrh r0, [r4, 0x30] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08064D54 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_08064D54: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] -_08064D5A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8064CE4 - - thumb_func_start sub_8064D60 -sub_8064D60: @ 8064D60 - push {r4,lr} - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_03005D70 - ldr r4, =gUnknown_02024064 - ldrb r3, [r4] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _08064DAC - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r3, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08064DA0 - adds r0, r3, 0 - adds r1, r3, 0 - adds r2, r3, 0 - movs r3, 0x6 - bl move_anim_start_t4 -_08064DA0: - ldr r0, =gUnknown_03005D60 - ldrb r1, [r4] - lsls r1, 2 - adds r1, r0 - ldr r0, =sub_8064DD0 - str r0, [r1] -_08064DAC: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8064D60 - - thumb_func_start sub_8064DD0 -sub_8064DD0: @ 8064DD0 - push {r4,lr} - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r4, =gUnknown_02024064 - ldrb r1, [r4] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08064E2A - bl sub_80A36C8 - lsls r0, 24 - cmp r0, 0 - bne _08064E2A - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldrb r0, [r4] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - beq _08064E1A - ldr r0, =nullsub_18 - cmp r1, r0 - bne _08064E2A -_08064E1A: - ldr r0, =gMPlay_BGM - ldr r1, =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl - bl sub_8065068 -_08064E2A: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8064DD0 - - thumb_func_start sub_8064E50 -sub_8064E50: @ 8064E50 - push {r4-r7,lr} - ldr r4, =gUnknown_020244D0 - ldr r0, [r4] - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r1 - ldrb r1, [r3, 0x1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08064F0C - ldr r7, =gUnknown_02020630 - ldr r6, =gUnknown_020241E4 - adds r0, r2, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r7, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _08064F0C - ldrb r1, [r3] - movs r0, 0x7F - ands r0, r1 - strb r0, [r3] - ldr r0, [r4] - ldrb r2, [r5] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r4, =0x000027f9 - adds r0, r4, 0 - bl FreeObjectTilesByTag - adds r0, r4, 0 - bl FreeObjectPaletteByTag - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - movs r1, 0 - bl StartObjectImageAnim - ldr r4, =gUnknown_03005D70 - ldrb r1, [r5] - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, =gUnknown_0202406E - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gEnemyParty - adds r1, r2 - movs r2, 0 - bl healthbar_draw_field_maybe - ldrb r0, [r5] - bl sub_8076918 - ldrb r0, [r5] - adds r0, r4 - ldrb r0, [r0] - bl sub_80729D0 - ldrb r0, [r5] - bl sub_805E408 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8064D60 - str r1, [r0] -_08064F0C: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8064E50 - - thumb_func_start sub_8064F40 -sub_8064F40: @ 8064F40 - push {r4-r6,lr} - ldr r6, =gUnknown_020244D0 - ldr r0, [r6] - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - ldr r1, [r0, 0x4] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x88 - ands r0, r1 - cmp r0, 0 - bne _08064F72 - ldr r0, =gUnknown_0202406E - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gEnemyParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8172EF0 -_08064F72: - ldr r4, =gUnknown_02020630 - ldr r0, =gUnknown_03005D7C - ldrb r2, [r5] - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r3, r0, 2 - adds r0, r4, 0 - adds r0, 0x1C - adds r0, r3, r0 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _08064FDC - ldr r0, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _08064FDC - adds r0, r3, r4 - bl RemoveObjectAndFreeTiles - ldrb r4, [r5] - ldr r1, =gUnknown_0202406E - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_805EE54 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8064E50 - str r1, [r0] -_08064FDC: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8064F40 - - thumb_func_start sub_8065008 -sub_8065008: @ 8065008 - push {lr} - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _0806502A - bl sub_8065068 -_0806502A: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8065008 - - thumb_func_start sub_8065038 -sub_8065038: @ 8065038 - push {lr} - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _0806505A - bl sub_8065068 -_0806505A: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8065038 - - thumb_func_start sub_8065068 -sub_8065068: @ 8065068 - push {r4,lr} - sub sp, 0x4 - ldr r1, =gUnknown_03005D60 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_80643B0 - str r1, [r0] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080650BC - bl link_get_multiplayer_id - mov r1, sp - strb r0, [r1] - movs r0, 0x2 - movs r1, 0x4 - mov r2, sp - bl dp01_prepare_buffer_wireless_probably - ldr r1, =gUnknown_02023064 - ldrb r0, [r4] - lsls r0, 9 - adds r0, r1 - movs r1, 0x38 - strb r1, [r0] - b _080650CE - .pool -_080650BC: - ldr r2, =gUnknown_02024068 - ldr r1, =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldr r0, [r2] - bics r0, r1 - str r0, [r2] -_080650CE: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8065068 - - thumb_func_start dp01t_00_2_getattr -dp01t_00_2_getattr: @ 80650E0 - push {r4-r6,lr} - sub sp, 0x100 - movs r6, 0 - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - bne _08065118 - ldr r0, =gUnknown_0202406E - lsls r1, r2, 1 - adds r1, r0 - ldrb r0, [r1] - mov r1, sp - bl dp01_getattr_by_ch1_for_opponent_pokemon - adds r6, r0, 0 - b _0806513A - .pool -_08065118: - ldrb r4, [r1] - movs r5, 0 -_0806511C: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _08065132 - lsls r0, r5, 24 - lsrs r0, 24 - mov r2, sp - adds r1, r2, r6 - bl dp01_getattr_by_ch1_for_opponent_pokemon - adds r6, r0 -_08065132: - lsrs r4, 1 - adds r5, 0x1 - cmp r5, 0x5 - ble _0806511C -_0806513A: - lsls r1, r6, 16 - lsrs r1, 16 - movs r0, 0x1 - mov r2, sp - bl dp01_build_cmdbuf_x1D_1D_numargs_varargs - bl sub_8065068 - add sp, 0x100 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end dp01t_00_2_getattr - - thumb_func_start dp01_getattr_by_ch1_for_opponent_pokemon -dp01_getattr_by_ch1_for_opponent_pokemon: @ 8065154 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x90 - adds r7, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - ldr r2, =gUnknown_02023064 - ldr r3, =gUnknown_02024064 - ldrb r0, [r3] - lsls r0, 9 - adds r1, r2, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3B - bls _0806517E - bl _080658EA -_0806517E: - lsls r0, 2 - ldr r1, =_08065194 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08065194: - .4byte _08065284 - .4byte _080654A8 - .4byte _080654B8 - .4byte _080654C8 - .4byte _08065530 - .4byte _08065530 - .4byte _08065530 - .4byte _08065530 - .4byte _0806554C - .4byte _08065588 - .4byte _08065588 - .4byte _08065588 - .4byte _08065588 - .4byte _080658EA - .4byte _080658EA - .4byte _080658EA - .4byte _080658EA - .4byte _080655A4 - .4byte _080655B4 - .4byte _080655E4 - .4byte _080655F4 - .4byte _08065604 - .4byte _08065614 - .4byte _08065624 - .4byte _08065634 - .4byte _08065644 - .4byte _08065654 - .4byte _08065664 - .4byte _08065674 - .4byte _08065684 - .4byte _08065694 - .4byte _080656A4 - .4byte _080656F4 - .4byte _08065704 - .4byte _08065714 - .4byte _08065724 - .4byte _08065734 - .4byte _08065744 - .4byte _08065754 - .4byte _08065764 - .4byte _08065774 - .4byte _080657A8 - .4byte _080657B8 - .4byte _080657C8 - .4byte _080657D8 - .4byte _080657E8 - .4byte _080657F8 - .4byte _08065808 - .4byte _08065818 - .4byte _08065838 - .4byte _08065848 - .4byte _08065858 - .4byte _08065868 - .4byte _08065878 - .4byte _08065888 - .4byte _08065898 - .4byte _080658A8 - .4byte _080658B8 - .4byte _080658C8 - .4byte _080658D8 -_08065284: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - mov r1, sp - strh r0, [r1] - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2E] - movs r6, 0 - add r0, sp, 0x24 - mov r9, r0 - movs r1, 0x3B - add r1, sp - mov r10, r1 - mov r2, sp - adds r2, 0x2B - str r2, [sp, 0x80] - mov r0, sp - adds r0, 0x2A - str r0, [sp, 0x7C] - mov r1, sp - adds r1, 0x68 - str r1, [sp, 0x8C] - adds r2, 0x5 - str r2, [sp, 0x84] - adds r0, 0x12 - str r0, [sp, 0x88] - mov r8, r4 - add r4, sp, 0xC -_080652D0: - adds r1, r6, 0 - adds r1, 0xD - mov r0, r8 - bl GetMonData - strh r0, [r4] - adds r1, r6, 0 - adds r1, 0x11 - mov r0, r8 - bl GetMonData - mov r2, r9 - adds r1, r2, r6 - strb r0, [r1] - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _080652D0 - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x15 - bl GetMonData - mov r1, r10 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - ldr r2, [sp, 0x80] - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x19 - bl GetMonData - str r0, [sp, 0x44] - adds r0, r4, 0 - movs r1, 0x27 - bl GetMonData - mov r3, sp - movs r5, 0x1F - ands r0, r5 - ldrb r2, [r3, 0x14] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x14] - adds r0, r4, 0 - movs r1, 0x28 - bl GetMonData - mov r3, sp - movs r6, 0x1F - ands r0, r6 - lsls r0, 5 - ldrh r2, [r3, 0x14] - ldr r1, =0xfffffc1f - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x14] - adds r0, r4, 0 - movs r1, 0x29 - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, 2 - ldrb r2, [r3, 0x15] - movs r1, 0x7D - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x15] - adds r0, r4, 0 - movs r1, 0x2A - bl GetMonData - movs r1, 0x1F - ands r1, r0 - lsls r1, 15 - ldr r0, [sp, 0x14] - ldr r2, =0xfff07fff - ands r0, r2 - orrs r0, r1 - str r0, [sp, 0x14] - adds r0, r4, 0 - movs r1, 0x2B - bl GetMonData - mov r3, sp - ands r0, r6 - lsls r0, 4 - ldrh r2, [r3, 0x16] - ldr r1, =0xfffffe0f - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x16] - adds r0, r4, 0 - movs r1, 0x2C - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, 1 - ldrb r2, [r3, 0x17] - movs r1, 0x3F - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - str r0, [sp, 0x48] - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - str r0, [sp, 0x4C] - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - ldr r1, [sp, 0x7C] - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - mov r1, sp - strh r0, [r1, 0x28] - adds r0, r4, 0 - movs r1, 0x3A - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2C] - adds r0, r4, 0 - movs r1, 0x3B - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2] - adds r0, r4, 0 - movs r1, 0x3C - bl GetMonData - mov r1, sp - strh r0, [r1, 0x4] - adds r0, r4, 0 - movs r1, 0x3D - bl GetMonData - mov r1, sp - strh r0, [r1, 0x6] - adds r0, r4, 0 - movs r1, 0x3E - bl GetMonData - mov r1, sp - strh r0, [r1, 0x8] - adds r0, r4, 0 - movs r1, 0x3F - bl GetMonData - mov r1, sp - strh r0, [r1, 0xA] - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - mov r3, sp - movs r1, 0x1 - ands r0, r1 - lsls r0, 6 - ldrb r2, [r3, 0x17] - movs r1, 0x41 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0x2E - bl GetMonData - mov r3, sp - lsls r0, 7 - ldrb r2, [r3, 0x17] - movs r1, 0x7F - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - str r0, [sp, 0x54] - adds r0, r4, 0 - movs r1, 0x2 - ldr r2, [sp, 0x8C] - bl GetMonData - ldr r0, [sp, 0x84] - ldr r1, [sp, 0x8C] - bl StringCopy10 - adds r0, r4, 0 - movs r1, 0x7 - ldr r2, [sp, 0x88] - bl GetMonData - mov r2, sp - movs r6, 0 -_08065488: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, 0x1 - cmp r6, 0x57 - bls _08065488 - b _080658EA - .pool -_080654A8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0xB - b _08065822 - .pool -_080654B8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0xC - b _08065822 - .pool -_080654C8: - movs r6, 0 - add r2, sp, 0x58 - mov r9, r2 - add r0, sp, 0x60 - mov r10, r0 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gEnemyParty - adds r4, r1, r0 - mov r8, r9 -_080654DE: - adds r1, r6, 0 - adds r1, 0xD - adds r0, r4, 0 - bl GetMonData - mov r1, r8 - strh r0, [r1] - adds r1, r6, 0 - adds r1, 0x11 - adds r0, r4, 0 - bl GetMonData - mov r2, r10 - adds r1, r2, r6 - strb r0, [r1] - movs r0, 0x2 - add r8, r0 - adds r6, 0x1 - cmp r6, 0x3 - ble _080654DE - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x15 - bl GetMonData - mov r1, r9 - strb r0, [r1, 0xC] - mov r2, r9 - movs r6, 0 -_0806551C: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, 0x1 - cmp r6, 0xF - bls _0806551C - b _080658EA - .pool -_08065530: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r1, [r3] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r1, 0x9 - b _08065822 - .pool -_0806554C: - movs r6, 0 - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r2, =gEnemyParty - mov r8, r2 -_08065558: - adds r1, r6, 0 - adds r1, 0x11 - mov r2, r8 - adds r0, r4, r2 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, 0x1 - cmp r6, 0x3 - ble _08065558 - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x15 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, 0x1 - b _080658EA - .pool -_08065588: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r1, [r3] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r1, 0x8 - b _080658E2 - .pool -_080655A4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x1 - b _080655BE - .pool -_080655B4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x19 -_080655BE: - bl GetMonData - adds r1, r0, 0 - strb r1, [r7] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r7, 0x2] - movs r6, 0x3 - b _080658EA - .pool -_080655E4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x1A - b _080658E2 - .pool -_080655F4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x1B - b _080658E2 - .pool -_08065604: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x1C - b _080658E2 - .pool -_08065614: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x1D - b _080658E2 - .pool -_08065624: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x1E - b _080658E2 - .pool -_08065634: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x1F - b _080658E2 - .pool -_08065644: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x20 - b _080658E2 - .pool -_08065654: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x22 - b _080658E2 - .pool -_08065664: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x23 - b _080658E2 - .pool -_08065674: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x24 - b _080658E2 - .pool -_08065684: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x25 - b _080658E2 - .pool -_08065694: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x26 - b _080658E2 - .pool -_080656A4: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x27 - bl GetMonData - strb r0, [r7] - adds r0, r4, 0 - movs r1, 0x28 - bl GetMonData - strb r0, [r7, 0x1] - adds r0, r4, 0 - movs r1, 0x29 - bl GetMonData - strb r0, [r7, 0x2] - adds r0, r4, 0 - movs r1, 0x2A - bl GetMonData - strb r0, [r7, 0x3] - adds r0, r4, 0 - movs r1, 0x2B - bl GetMonData - strb r0, [r7, 0x4] - adds r0, r4, 0 - movs r1, 0x2C - bl GetMonData - strb r0, [r7, 0x5] - movs r6, 0x6 - b _080658EA - .pool -_080656F4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x27 - b _080658E2 - .pool -_08065704: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x28 - b _080658E2 - .pool -_08065714: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x29 - b _080658E2 - .pool -_08065724: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x2A - b _080658E2 - .pool -_08065734: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x2B - b _080658E2 - .pool -_08065744: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x2C - b _080658E2 - .pool -_08065754: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0 - b _0806577E - .pool -_08065764: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x9 - b _08065822 - .pool -_08065774: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x37 -_0806577E: - bl GetMonData - adds r1, r0, 0 - strb r1, [r7] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r7, 0x2] - lsrs r0, r1, 24 - strb r0, [r7, 0x3] - movs r6, 0x4 - b _080658EA - .pool -_080657A8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x38 - b _080658E2 - .pool -_080657B8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x39 - b _08065822 - .pool -_080657C8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x3A - b _08065822 - .pool -_080657D8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x3B - b _08065822 - .pool -_080657E8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x3C - b _08065822 - .pool -_080657F8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x3D - b _08065822 - .pool -_08065808: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x3E - b _08065822 - .pool -_08065818: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x3F -_08065822: - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - strb r0, [r7] - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r6, 0x2 - b _080658EA - .pool -_08065838: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x16 - b _080658E2 - .pool -_08065848: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x17 - b _080658E2 - .pool -_08065858: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x18 - b _080658E2 - .pool -_08065868: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x21 - b _080658E2 - .pool -_08065878: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x2F - b _080658E2 - .pool -_08065888: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x30 - b _080658E2 - .pool -_08065898: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x32 - b _080658E2 - .pool -_080658A8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x33 - b _080658E2 - .pool -_080658B8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x34 - b _080658E2 - .pool -_080658C8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x35 - b _080658E2 - .pool -_080658D8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x36 -_080658E2: - bl GetMonData - strb r0, [r7] - movs r6, 0x1 -_080658EA: - adds r0, r6, 0 - add sp, 0x90 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end dp01_getattr_by_ch1_for_opponent_pokemon - - thumb_func_start sub_8065900 -sub_8065900: @ 8065900 - push {lr} - bl sub_8065068 - pop {r0} - bx r0 - thumb_func_end sub_8065900 - - thumb_func_start sub_806590C -sub_806590C: @ 806590C - push {r4,r5,lr} - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - bne _0806593C - ldr r0, =gUnknown_0202406E - lsls r1, r2, 1 - adds r1, r0 - ldrb r0, [r1] - bl sub_8065964 - b _0806595A - .pool -_0806593C: - ldrb r4, [r1] - movs r5, 0 -_08065940: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _0806594E - adds r0, r5, 0 - bl sub_8065964 -_0806594E: - lsrs r4, 1 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _08065940 -_0806595A: - bl sub_8065068 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_806590C - - thumb_func_start sub_8065964 -sub_8065964: @ 8065964 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x38 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r3, =gUnknown_02024064 - ldrb r0, [r3] - lsls r0, 9 - ldr r2, =gUnknown_02023067 - adds r4, r0, r2 - adds r7, r4, 0 - subs r1, r2, 0x2 - adds r0, r1 - ldrb r0, [r0] - adds r6, r3, 0 - adds r3, r2, 0 - cmp r0, 0x3B - bls _08065992 - bl _08066270 -_08065992: - lsls r0, 2 - ldr r1, =_080659A8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080659A8: - .4byte _08065A98 - .4byte _08065C30 - .4byte _08065C4C - .4byte _08065C68 - .4byte _08065CBC - .4byte _08065CBC - .4byte _08065CBC - .4byte _08065CBC - .4byte _08065CDC - .4byte _08065D44 - .4byte _08065D44 - .4byte _08065D44 - .4byte _08065D44 - .4byte _08066270 - .4byte _08066270 - .4byte _08066270 - .4byte _08066270 - .4byte _08065D6C - .4byte _08065D88 - .4byte _08065DA4 - .4byte _08065DC0 - .4byte _08065DDC - .4byte _08065DF8 - .4byte _08065E14 - .4byte _08065E30 - .4byte _08065E4C - .4byte _08065E68 - .4byte _08065E84 - .4byte _08065EA0 - .4byte _08065EBC - .4byte _08065ED8 - .4byte _08065EF4 - .4byte _08065F68 - .4byte _08065F84 - .4byte _08065FA0 - .4byte _08065FBC - .4byte _08065FD8 - .4byte _08065FF4 - .4byte _08066010 - .4byte _0806602C - .4byte _08066048 - .4byte _08066064 - .4byte _08066080 - .4byte _0806609C - .4byte _080660B8 - .4byte _080660D4 - .4byte _080660F0 - .4byte _0806610C - .4byte _08066128 - .4byte _08066144 - .4byte _08066160 - .4byte _0806617C - .4byte _08066198 - .4byte _080661B4 - .4byte _080661D0 - .4byte _080661EC - .4byte _08066208 - .4byte _08066224 - .4byte _08066240 - .4byte _0806625C -_08065A98: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - adds r2, r7, 0 - bl pokemon_setattr - adds r2, r7, 0 - adds r2, 0x2E - adds r0, r4, 0 - movs r1, 0xC - bl pokemon_setattr - movs r0, 0 - mov r8, r0 - movs r0, 0x3B - adds r0, r7 - mov r10, r0 - adds r0, r7, 0 - adds r0, 0x2B - str r0, [sp, 0x20] - adds r0, 0x19 - str r0, [sp, 0x28] - adds r0, 0x4 - str r0, [sp, 0x2C] - adds r0, 0x4 - str r0, [sp, 0x30] - subs r0, 0x22 - str r0, [sp, 0x1C] - subs r0, 0x2 - str r0, [sp, 0x18] - adds r0, 0x4 - str r0, [sp, 0x24] - adds r0, r7, 0x2 - str r0, [sp, 0x4] - adds r0, r7, 0x4 - str r0, [sp, 0x8] - adds r0, r7, 0x6 - str r0, [sp, 0xC] - adds r0, 0x2 - str r0, [sp, 0x10] - adds r0, 0x2 - str r0, [sp, 0x14] - mov r9, r4 - adds r6, r7, 0 - adds r6, 0x24 - adds r4, r7, 0 - adds r4, 0xC -_08065AFE: - mov r1, r8 - adds r1, 0xD - mov r0, r9 - adds r2, r4, 0 - bl pokemon_setattr - mov r1, r8 - adds r1, 0x11 - mov r0, r9 - adds r2, r6, 0 - bl pokemon_setattr - adds r6, 0x1 - adds r4, 0x2 - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x3 - ble _08065AFE - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x15 - mov r2, r10 - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x20 - ldr r2, [sp, 0x20] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x19 - ldr r2, [sp, 0x28] - bl pokemon_setattr - ldrb r0, [r7, 0x14] - lsls r0, 27 - lsrs r0, 27 - mov r1, sp - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x27 - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrh r0, [r7, 0x14] - lsls r0, 22 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x28 - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrb r0, [r7, 0x15] - lsls r0, 25 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x29 - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldr r0, [r7, 0x14] - lsls r0, 12 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2A - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrh r0, [r7, 0x16] - lsls r0, 23 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2B - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrb r0, [r7, 0x17] - lsls r0, 26 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2C - mov r2, sp - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0 - ldr r2, [sp, 0x2C] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x37 - ldr r2, [sp, 0x30] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x38 - ldr r2, [sp, 0x1C] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x39 - ldr r2, [sp, 0x18] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3A - ldr r2, [sp, 0x24] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3B - ldr r2, [sp, 0x4] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3C - ldr r2, [sp, 0x8] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3D - ldr r2, [sp, 0xC] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3E - ldr r2, [sp, 0x10] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3F - ldr r2, [sp, 0x14] - bl pokemon_setattr - b _08066270 - .pool -_08065C30: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0xB - bl pokemon_setattr - b _08066270 - .pool -_08065C4C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0xC - bl pokemon_setattr - b _08066270 - .pool -_08065C68: - movs r0, 0 - mov r8, r0 - movs r0, 0xC - adds r0, r4 - mov r9, r0 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gEnemyParty - adds r7, r1, r0 - adds r6, r4, 0 - adds r6, 0x8 -_08065C80: - mov r1, r8 - adds r1, 0xD - adds r0, r7, 0 - adds r2, r4, 0 - bl pokemon_setattr - mov r1, r8 - adds r1, 0x11 - adds r0, r7, 0 - adds r2, r6, 0 - bl pokemon_setattr - adds r6, 0x1 - adds r4, 0x2 - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x3 - ble _08065C80 - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x15 - mov r2, r9 - bl pokemon_setattr - b _08066270 - .pool -_08065CBC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldr r3, =gUnknown_02023064 - ldrb r2, [r6] - lsls r2, 9 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, 0x9 - b _08065D5A - .pool -_08065CDC: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gEnemyParty - adds r4, r0 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - adds r0, r4, 0 - movs r1, 0x11 - str r3, [sp, 0x34] - bl pokemon_setattr - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x1 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x12 - bl pokemon_setattr - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x2 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x13 - bl pokemon_setattr - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x3 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x14 - bl pokemon_setattr - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x4 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x15 - bl pokemon_setattr - b _08066270 - .pool -_08065D44: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldr r3, =gUnknown_02023064 - ldrb r2, [r6] - lsls r2, 9 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, 0x8 -_08065D5A: - adds r3, 0x3 - adds r2, r3 - bl pokemon_setattr - b _08066270 - .pool -_08065D6C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1 - bl pokemon_setattr - b _08066270 - .pool -_08065D88: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x19 - bl pokemon_setattr - b _08066270 - .pool -_08065DA4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1A - bl pokemon_setattr - b _08066270 - .pool -_08065DC0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1B - bl pokemon_setattr - b _08066270 - .pool -_08065DDC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1C - bl pokemon_setattr - b _08066270 - .pool -_08065DF8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1D - bl pokemon_setattr - b _08066270 - .pool -_08065E14: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1E - bl pokemon_setattr - b _08066270 - .pool -_08065E30: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1F - bl pokemon_setattr - b _08066270 - .pool -_08065E4C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x20 - bl pokemon_setattr - b _08066270 - .pool -_08065E68: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x22 - bl pokemon_setattr - b _08066270 - .pool -_08065E84: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x23 - bl pokemon_setattr - b _08066270 - .pool -_08065EA0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x24 - bl pokemon_setattr - b _08066270 - .pool -_08065EBC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x25 - bl pokemon_setattr - b _08066270 - .pool -_08065ED8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x26 - bl pokemon_setattr - b _08066270 - .pool -_08065EF4: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gEnemyParty - adds r4, r0 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - adds r0, r4, 0 - movs r1, 0x27 - str r3, [sp, 0x34] - bl pokemon_setattr - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x1 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x28 - bl pokemon_setattr - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x2 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x29 - bl pokemon_setattr - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x3 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x2A - bl pokemon_setattr - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x4 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x2B - bl pokemon_setattr - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x5 - adds r2, r0 - adds r0, r4, 0 - b _08066002 - .pool -_08065F68: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x27 - bl pokemon_setattr - b _08066270 - .pool -_08065F84: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x28 - bl pokemon_setattr - b _08066270 - .pool -_08065FA0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x29 - bl pokemon_setattr - b _08066270 - .pool -_08065FBC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x2A - bl pokemon_setattr - b _08066270 - .pool -_08065FD8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x2B - bl pokemon_setattr - b _08066270 - .pool -_08065FF4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 -_08066002: - movs r1, 0x2C - bl pokemon_setattr - b _08066270 - .pool -_08066010: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0 - bl pokemon_setattr - b _08066270 - .pool -_0806602C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x9 - bl pokemon_setattr - b _08066270 - .pool -_08066048: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x37 - bl pokemon_setattr - b _08066270 - .pool -_08066064: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x38 - bl pokemon_setattr - b _08066270 - .pool -_08066080: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x39 - bl pokemon_setattr - b _08066270 - .pool -_0806609C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3A - bl pokemon_setattr - b _08066270 - .pool -_080660B8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3B - bl pokemon_setattr - b _08066270 - .pool -_080660D4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3C - bl pokemon_setattr - b _08066270 - .pool -_080660F0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3D - bl pokemon_setattr - b _08066270 - .pool -_0806610C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3E - bl pokemon_setattr - b _08066270 - .pool -_08066128: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3F - bl pokemon_setattr - b _08066270 - .pool -_08066144: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x16 - bl pokemon_setattr - b _08066270 - .pool -_08066160: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x17 - bl pokemon_setattr - b _08066270 - .pool -_0806617C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x18 - bl pokemon_setattr - b _08066270 - .pool -_08066198: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x21 - bl pokemon_setattr - b _08066270 - .pool -_080661B4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x2F - bl pokemon_setattr - b _08066270 - .pool -_080661D0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x30 - bl pokemon_setattr - b _08066270 - .pool -_080661EC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x32 - bl pokemon_setattr - b _08066270 - .pool -_08066208: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x33 - bl pokemon_setattr - b _08066270 - .pool -_08066224: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x34 - bl pokemon_setattr - b _08066270 - .pool -_08066240: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x35 - bl pokemon_setattr - b _08066270 - .pool -_0806625C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x36 - bl pokemon_setattr -_08066270: - add sp, 0x38 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8065964 - - thumb_func_start sub_8066284 -sub_8066284: @ 8066284 - push {r4-r7,lr} - ldr r1, =gUnknown_0202406E - ldr r7, =gUnknown_02024064 - ldrb r2, [r7] - lsls r0, r2, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - adds r3, r1, 0 - muls r3, r0 - ldr r4, =gUnknown_02023064 - lsls r2, 9 - adds r0, r4, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - ldr r1, =gEnemyParty - adds r0, r1 - adds r5, r3, r0 - movs r3, 0 - adds r0, r4, 0x2 - adds r2, r0 - ldrb r2, [r2] - cmp r3, r2 - bcs _080662DC - adds r6, r4, 0 - adds r2, r7, 0 - adds r4, r0, 0 -_080662BA: - adds r1, r5, r3 - ldrb r0, [r2] - lsls r0, 9 - adds r0, 0x3 - adds r0, r3, r0 - adds r0, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r0, [r2] - lsls r0, 9 - adds r0, r4 - ldrb r0, [r0] - cmp r3, r0 - bcc _080662BA -_080662DC: - bl sub_8065068 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8066284 - - thumb_func_start sub_80662F8 -sub_80662F8: @ 80662F8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r7, =gUnknown_0202406E - ldr r6, =gUnknown_02024064 - ldrb r0, [r6] - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - movs r1, 0x64 - mov r10, r1 - mov r2, r10 - muls r2, r0 - adds r0, r2, 0 - ldr r1, =gEnemyParty - mov r9, r1 - add r0, r9 - movs r1, 0xB - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r1, [r6] - lsls r0, r1, 1 - adds r0, r7 - ldrh r0, [r0] - mov r2, r10 - muls r2, r0 - adds r0, r2, 0 - add r0, r9 - bl sub_805DC0C - ldrb r0, [r6] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_806A068 - ldr r0, =gUnknown_0202499C - mov r8, r0 - ldrb r0, [r6] - movs r1, 0x2 - bl sub_80A5C6C - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldrb r0, [r6] - bl sub_80A6138 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r6] - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r8 - adds r1, r5, 0 - adds r2, r4, 0 - bl AddObjectToFront - ldr r4, =gUnknown_020241E4 - ldrb r1, [r6] - adds r1, r4 - strb r0, [r1] - ldr r5, =gUnknown_02020630 - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =0x0000ff10 - strh r1, [r0, 0x24] - ldrb r2, [r6] - adds r0, r2, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x2E] - ldrb r3, [r6] - adds r0, r3, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r2, [r6] - adds r4, r2, r4 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =gUnknown_020244E4 - adds r2, r1 - ldrb r1, [r2] - bl StartObjectImageAnim - ldrb r4, [r6] - lsls r0, r4, 1 - adds r0, r7 - ldrh r0, [r0] - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - add r0, r9 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_805EE54 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8064B04 - str r1, [r0] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80662F8 - - thumb_func_start sub_8066448 -sub_8066448: @ 8066448 - push {r4,lr} - ldr r1, =gUnknown_0202406E - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - lsls r2, r0, 1 - adds r2, r1 - ldr r3, =gUnknown_02023064 - lsls r0, 9 - adds r1, r3, 0x1 - adds r0, r1 - ldrb r0, [r0] - strh r0, [r2] - ldrb r0, [r4] - lsls r1, r0, 9 - adds r3, 0x2 - adds r1, r3 - ldrb r1, [r1] - bl sub_8066494 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8064F40 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8066448 - - thumb_func_start sub_8066494 -sub_8066494: @ 8066494 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_805EF84 - ldr r0, =gUnknown_0202406E - lsls r4, r6, 1 - adds r4, r0 - ldr r0, =gUnknown_02023064 - lsls r1, r6, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - strh r0, [r4] - ldrh r0, [r4] - movs r1, 0x64 - mov r9, r1 - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - ldr r5, =gEnemyParty - adds r0, r5 - movs r1, 0xB - bl GetMonData - mov r8, r0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r0, =sub_805D714 - bl CreateInvisibleSpriteWithCallback - ldr r1, =gUnknown_03005D7C - mov r10, r1 - add r10, r6 - mov r1, r10 - strb r0, [r1] - ldrh r0, [r4] - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - adds r0, r5 - adds r1, r6, 0 - bl sub_805DC0C - adds r0, r6, 0 - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl sub_806A068 - ldr r0, =gUnknown_0202499C - mov r9, r0 - adds r0, r6, 0 - movs r1, 0x2 - bl sub_80A5C6C - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r6, 0 - bl sub_80A6138 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r9 - adds r1, r5, 0 - adds r2, r4, 0 - bl AddObjectToFront - ldr r4, =gUnknown_020241E4 - adds r4, r6, r4 - strb r0, [r4] - ldr r5, =gUnknown_02020630 - mov r0, r10 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r4] - strh r1, [r0, 0x30] - mov r0, r10 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x32] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x2E] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r8 - strh r1, [r0, 0x32] - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, r6, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =gUnknown_020244E4 - adds r6, r1 - ldrb r1, [r6] - bl StartObjectImageAnim - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =DummyObjectCallback - str r1, [r0] - movs r0, 0 - movs r1, 0xFE - bl sub_80753E8 - mov r1, r10 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r5 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x2E] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8066494 - - thumb_func_start sub_8066624 -sub_8066624: @ 8066624 - push {r4-r6,lr} - ldr r1, =gUnknown_02023064 - ldr r6, =gUnknown_02024064 - ldrb r2, [r6] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r3, [r0] - cmp r3, 0 - bne _0806666C - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - strb r3, [r0, 0x4] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_80666BC - str r1, [r0] - b _080666A8 - .pool -_0806666C: - ldr r5, =gUnknown_020241E4 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - bl obj_free_rotscale_entry - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl RemoveObjectAndFreeTiles - ldrb r0, [r6] - bl sub_805EEE0 - ldr r1, =gUnknown_03005D70 - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl sub_8072984 - bl sub_8065068 -_080666A8: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8066624 - - thumb_func_start sub_80666BC -sub_80666BC: @ 80666BC - push {r4-r6,lr} - ldr r6, =gUnknown_020244D0 - ldr r4, [r6] - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - ldr r1, [r4, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r1 - ldrb r0, [r3, 0x4] - cmp r0, 0 - beq _080666E4 - cmp r0, 0x1 - beq _08066712 - b _0806673A - .pool -_080666E4: - ldr r1, [r4] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080666FE - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_080666FE: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0, 0x4] - b _0806673A -_08066712: - ldrb r1, [r3] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0806673A - strb r0, [r3, 0x4] - ldrb r2, [r5] - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x2 - bl move_anim_start_t4 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8064C58 - str r1, [r0] -_0806673A: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80666BC - - thumb_func_start sub_8066748 -sub_8066748: @ 8066748 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r4, =gBattleTypeFlags - ldr r0, [r4] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08066840 - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - bl battle_get_per_side_status - movs r1, 0x2 - ands r1, r0 - movs r7, 0xC8 - cmp r1, 0 - beq _08066770 - movs r7, 0x98 -_08066770: - ldr r0, [r4] - movs r1, 0x80 - lsls r1, 1 - ands r0, r1 - cmp r0, 0 - beq _080667A8 - ldrb r0, [r5] - cmp r0, 0x1 - bne _08066794 - ldr r0, =gUnknown_02038BCA - b _08066796 - .pool -_08066794: - ldr r0, =gUnknown_02038BCC -_08066796: - ldrh r0, [r0] - bl sub_8162AA0 - lsls r0, 24 - lsrs r0, 24 - b _0806694C - .pool -_080667A8: - ldrb r0, [r5] - bl sub_806D864 - ldr r6, =gUnknown_020229E8 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r6 - movs r4, 0xFF - ldrb r0, [r1] - cmp r0, 0x4 - beq _080667D8 - ldrb r0, [r5] - bl sub_806D864 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r6 - ldrh r1, [r1] - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0x5 - bne _080667F4 -_080667D8: - ldrb r0, [r5] - bl sub_806D864 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1, 0x13] - cmp r0, 0 - bne _080668AA - b _080668BC - .pool -_080667F4: - ldrb r0, [r5] - bl sub_806D864 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r6 - ldrh r1, [r1] - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0x2 - beq _08066822 - ldrb r0, [r5] - bl sub_806D864 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r6 - ldrh r0, [r1] - ands r4, r0 - cmp r4, 0x1 - bne _08066838 -_08066822: - ldrb r0, [r5] - bl sub_806D864 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1, 0x13] - cmp r0, 0 - bne _08066916 - b _08066924 -_08066838: - ldrb r0, [r5] - bl sub_806D864 - b _0806693A -_08066840: - movs r7, 0xB0 - ldr r0, =gUnknown_02038BCA - ldrh r1, [r0] - movs r0, 0xC0 - lsls r0, 4 - cmp r1, r0 - bne _08066858 - bl sub_8068B48 - b _08066948 - .pool -_08066858: - bl link_get_multiplayer_id - ldr r6, =gUnknown_020229E8 - movs r5, 0x1 - eors r0, r5 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r6 - movs r4, 0xFF - ldrb r0, [r1] - cmp r0, 0x4 - beq _08066892 - bl link_get_multiplayer_id - eors r0, r5 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r6 - ldrh r1, [r1] - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0x5 - bne _080668C8 -_08066892: - bl link_get_multiplayer_id - eors r0, r5 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1, 0x13] - cmp r0, 0 - beq _080668BC -_080668AA: - ldr r0, =gTrainerPicIndices - adds r0, 0x4F - ldrb r0, [r0] - b _0806694C - .pool -_080668BC: - ldr r0, =gTrainerPicIndices - adds r0, 0x4E - ldrb r0, [r0] - b _0806694C - .pool -_080668C8: - bl link_get_multiplayer_id - eors r0, r5 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r6 - ldrh r1, [r1] - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0x2 - beq _080668FE - bl link_get_multiplayer_id - eors r0, r5 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r6 - ldrh r0, [r1] - ands r4, r0 - cmp r4, 0x1 - bne _08066930 -_080668FE: - bl link_get_multiplayer_id - eors r0, r5 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1, 0x13] - cmp r0, 0 - beq _08066924 -_08066916: - ldr r0, =gTrainerPicIndices - adds r0, 0x51 - ldrb r0, [r0] - b _0806694C - .pool -_08066924: - ldr r0, =gTrainerPicIndices - adds r0, 0x50 - ldrb r0, [r0] - b _0806694C - .pool -_08066930: - bl link_get_multiplayer_id - eors r0, r5 - lsls r0, 24 - lsrs r0, 24 -_0806693A: - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1, 0x13] - bl sub_806F000 -_08066948: - lsls r0, 16 - lsrs r0, 16 -_0806694C: - mov r8, r0 - ldr r5, =gUnknown_02024064 - ldrb r1, [r5] - bl sub_805DF38 - ldrb r0, [r5] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl template_build_for_pokemon_or_trainer - ldr r6, =gUnknown_0202499C - mov r9, r7 - ldr r1, =gUnknown_083054E0 - mov r2, r8 - lsls r0, r2, 2 - adds r0, r1 - ldrb r0, [r0] - movs r4, 0x8 - subs r4, r0 - lsls r4, 18 - movs r0, 0xA0 - lsls r0, 14 - adds r4, r0 - asrs r4, 16 - ldrb r0, [r5] - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r6, 0 - mov r1, r9 - adds r2, r4, 0 - bl AddObjectToFront - ldr r6, =gUnknown_020241E4 - ldrb r1, [r5] - adds r1, r6 - strb r0, [r1] - ldr r4, =gUnknown_02020630 - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =0x0000ff10 - strh r1, [r0, 0x24] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x2E] - ldr r1, =gTrainerFrontPicPaletteTable - mov r2, r8 - lsls r0, r2, 3 - adds r0, r1 - ldrh r0, [r0, 0x4] - bl IndexOfObjectPaletteTag - ldrb r1, [r5] - adds r1, r6 - ldrb r1, [r1] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r4 - lsls r0, 4 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - orrs r1, r0 - strb r1, [r2, 0x5] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - mov r1, r8 - strh r1, [r0, 0x6] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, =sub_805D7AC - str r1, [r0] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8064400 - str r1, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8066748 - - thumb_func_start sub_8066A58 -sub_8066A58: @ 8066A58 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08066A74 - ldr r0, =gUnknown_02038BCA - b _08066A76 - .pool -_08066A74: - ldr r0, =gUnknown_02038BCC -_08066A76: - ldrh r0, [r0] - bl sub_8162AA0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r6, =gUnknown_02024064 - ldrb r1, [r6] - bl sub_805DF38 - ldrb r0, [r6] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl template_build_for_pokemon_or_trainer - ldr r0, =gUnknown_0202499C - ldr r2, =gUnknown_083054E0 - mov r3, r8 - lsls r1, r3, 2 - adds r1, r2 - ldrb r1, [r1] - movs r2, 0x8 - subs r2, r1 - lsls r2, 18 - movs r1, 0xA0 - lsls r1, 14 - adds r2, r1 - asrs r2, 16 - movs r1, 0xB0 - movs r3, 0x1E - bl AddObjectToFront - ldr r5, =gUnknown_020241E4 - ldrb r1, [r6] - adds r1, r5 - strb r0, [r1] - ldr r4, =gUnknown_02020630 - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x60 - strh r1, [r0, 0x24] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x20] - adds r1, 0x20 - strh r1, [r0, 0x20] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =0x0000fffe - strh r1, [r0, 0x2E] - ldr r1, =gTrainerFrontPicPaletteTable - mov r2, r8 - lsls r0, r2, 3 - adds r0, r1 - ldrh r0, [r0, 0x4] - bl IndexOfObjectPaletteTag - ldrb r1, [r6] - adds r1, r5 - ldrb r1, [r1] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r4 - lsls r0, 4 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - orrs r1, r0 - strb r1, [r2, 0x5] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - mov r3, r8 - strh r3, [r0, 0x6] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, =sub_805D7AC - str r1, [r0] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8064438 - str r1, [r0] - bl sub_8065068 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8066A58 - - thumb_func_start sub_8066B94 -sub_8066B94: @ 8066B94 - push {r4-r6,lr} - ldr r6, =gUnknown_020241E4 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, =gUnknown_02020630 - adds r0, r5 - bl oamt_add_pos2_onto_pos1 - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x23 - strh r1, [r0, 0x2E] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x8C - lsls r1, 1 - strh r1, [r0, 0x32] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r0, 0x22] - strh r1, [r0, 0x36] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_80A6EEC - str r1, [r0] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =DummyObjectCallback - bl oamt_set_x3A_32 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8064470 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8066B94 - - thumb_func_start sub_8066C40 -sub_8066C40: @ 8066C40 - push {r4-r6,lr} - ldr r6, =gUnknown_020244D0 - ldr r4, [r6] - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - ldr r0, [r4, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r3, r1, r0 - ldrb r0, [r3, 0x4] - cmp r0, 0 - bne _08066C94 - ldr r1, [r4] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08066C74 - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_08066C74: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x4] - adds r1, 0x1 - strb r1, [r0, 0x4] - b _08066CD0 - .pool -_08066C94: - ldrb r1, [r3] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _08066CD0 - strb r0, [r3, 0x4] - movs r0, 0x10 - movs r1, 0x3F - bl audio_play_and_stuff - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldrb r0, [r5] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, =sub_8039934 - str r1, [r0] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8064C14 - str r1, [r0] -_08066CD0: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8066C40 - - thumb_func_start sub_8066CEC -sub_8066CEC: @ 8066CEC - push {lr} - bl sub_8065068 - pop {r0} - bx r0 - thumb_func_end sub_8066CEC - - thumb_func_start sub_8066CF8 -sub_8066CF8: @ 8066CF8 - push {lr} - bl sub_8065068 - pop {r0} - bx r0 - thumb_func_end sub_8066CF8 - - thumb_func_start sub_8066D04 -sub_8066D04: @ 8066D04 - push {lr} - bl sub_8065068 - pop {r0} - bx r0 - thumb_func_end sub_8066D04 - - thumb_func_start sub_8066D10 -sub_8066D10: @ 8066D10 - push {lr} - bl sub_8065068 - pop {r0} - bx r0 - thumb_func_end sub_8066D10 - - thumb_func_start sub_8066D1C -sub_8066D1C: @ 8066D1C - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - beq _08066D32 - b _08066E58 -_08066D32: - ldr r0, =gUnknown_02023064 - mov r12, r0 - ldrb r1, [r5] - lsls r1, 9 - adds r0, 0x1 - adds r0, r1, r0 - ldrb r6, [r0] - mov r0, r12 - adds r0, 0x2 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, 8 - orrs r6, r0 - ldr r0, =gUnknown_02038432 - mov r8, r0 - mov r0, r12 - adds r0, 0x3 - adds r1, r0 - ldrb r0, [r1] - mov r1, r8 - strb r0, [r1] - ldr r3, =gUnknown_02038408 - ldrb r1, [r5] - lsls r1, 9 - mov r0, r12 - adds r0, 0x4 - adds r0, r1, r0 - ldrb r2, [r0] - mov r0, r12 - adds r0, 0x5 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 8 - orrs r2, r0 - strh r2, [r3] - ldr r3, =gUnknown_02038404 - ldrb r1, [r5] - lsls r1, 9 - mov r0, r12 - adds r0, 0x6 - adds r0, r1, r0 - ldrb r2, [r0] - mov r0, r12 - adds r0, 0x7 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, 8 - orrs r2, r0 - mov r0, r12 - adds r0, 0x8 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, 16 - orrs r2, r0 - mov r0, r12 - adds r0, 0x9 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 24 - orrs r2, r0 - str r2, [r3] - ldr r2, =gUnknown_0203841A - ldrb r0, [r5] - lsls r0, 9 - mov r1, r12 - adds r1, 0xA - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r4, =gUnknown_0203841C - ldrb r1, [r5] - lsls r1, 9 - mov r0, r12 - adds r0, 0xC - adds r0, r1, r0 - ldrb r2, [r0] - mov r0, r12 - adds r0, 0xD - adds r1, r0 - ldrb r0, [r1] - lsls r0, 8 - orrs r2, r0 - strh r2, [r4] - ldr r7, =gUnknown_02038400 - ldrb r1, [r5] - lsls r1, 9 - mov r0, r12 - adds r0, 0x10 - adds r1, r0 - str r1, [r7] - ldr r2, =gUnknown_020244BC - ldrb r0, [r5] - lsls r0, 2 - adds r0, r2 - ldr r1, [r1] - str r1, [r0] - mov r0, r8 - ldrb r1, [r0] - adds r0, r6, 0 - bl sub_805DB8C - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _08066E30 - bl sub_8065068 - b _08066E58 - .pool -_08066E30: - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strb r3, [r0, 0x4] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8066E70 - str r1, [r0] - ldrh r1, [r4] - ldr r2, [r7] - adds r0, r6, 0 - bl sub_817E0FC -_08066E58: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8066D1C - - thumb_func_start sub_8066E70 -sub_8066E70: @ 8066E70 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r2, =gUnknown_02023064 - ldr r6, =gUnknown_02024064 - ldrb r3, [r6] - lsls r1, r3, 9 - adds r0, r2, 0x1 - mov r10, r0 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, r2, 0x2 - mov r9, r5 - adds r0, r1, r5 - ldrb r0, [r0] - lsls r0, 8 - orrs r4, r0 - adds r2, 0xB - adds r1, r2 - ldrb r1, [r1] - mov r8, r1 - ldr r7, =gUnknown_020244D0 - ldr r5, [r7] - ldr r1, [r5, 0x4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x4] - cmp r2, 0x1 - beq _08066F08 - cmp r2, 0x1 - bgt _08066EC8 - cmp r2, 0 - beq _08066ED2 - b _08066FE4 - .pool -_08066EC8: - cmp r2, 0x2 - beq _08066F32 - cmp r2, 0x3 - beq _08066FA8 - b _08066FE4 -_08066ED2: - ldr r1, [r5] - lsls r0, r3, 2 - adds r1, r0, r1 - ldrb r2, [r1] - movs r0, 0xC - ands r0, r2 - cmp r0, 0x4 - bne _08066EF4 - movs r0, 0x8 - orrs r0, r2 - strb r0, [r1] - ldrb r2, [r6] - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_08066EF4: - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0, 0x4] - b _08066FE4 -_08066F08: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08066FE4 - movs r0, 0 - bl sub_805EB9C - adds r0, r4, 0 - bl move_anim_start_t1 - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2 - strb r1, [r0, 0x4] - b _08066FE4 -_08066F32: - ldr r0, =gUnknown_020383F8 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, =gUnknown_020383FD - ldrb r0, [r0] - cmp r0, 0 - bne _08066FE4 - movs r0, 0x1 - bl sub_805EB9C - ldr r0, [r7] - ldrb r2, [r6] - ldr r1, [r0] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08066F80 - mov r0, r8 - cmp r0, 0x1 - bhi _08066F80 - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x6 - bl move_anim_start_t4 - ldr r0, [r7] - ldrb r1, [r6] - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - strb r0, [r1] -_08066F80: - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - strb r1, [r0, 0x4] - b _08066FE4 - .pool -_08066FA8: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _08066FE4 - bl sub_805E394 - ldrb r0, [r6] - lsls r2, r0, 9 - mov r3, r10 - adds r1, r2, r3 - ldrb r1, [r1] - add r2, r9 - ldrb r2, [r2] - lsls r2, 8 - orrs r1, r2 - bl sub_805E94C - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strb r4, [r0, 0x4] - bl sub_8065068 -_08066FE4: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8066E70 - - thumb_func_start sub_8066FF4 -sub_8066FF4: @ 8066FF4 - push {r4,r5,lr} - ldr r0, =gUnknown_02022E14 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_02022E16 - strh r1, [r0] - ldr r5, =gUnknown_02024064 - ldrb r4, [r5] - lsls r4, 9 - ldr r0, =gUnknown_02023066 - adds r4, r0 - ldrh r0, [r4] - bl battle_pick_message - ldr r0, =gUnknown_02022E2C - movs r1, 0 - bl battle_show_message_maybe - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8064CCC - str r1, [r0] - ldrh r0, [r4] - bl sub_817C95C - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8066FF4 - - thumb_func_start sub_806704C -sub_806704C: @ 806704C - push {lr} - bl sub_8065068 - pop {r0} - bx r0 - thumb_func_end sub_806704C - - thumb_func_start sub_8067058 -sub_8067058: @ 8067058 - push {lr} - bl sub_8065068 - pop {r0} - bx r0 - thumb_func_end sub_8067058 - - thumb_func_start sub_8067064 -sub_8067064: @ 8067064 - push {lr} - bl sub_8065068 - pop {r0} - bx r0 - thumb_func_end sub_8067064 - - thumb_func_start sub_8067070 -sub_8067070: @ 8067070 - push {lr} - bl sub_8065068 - pop {r0} - bx r0 - thumb_func_end sub_8067070 - - thumb_func_start sub_806707C -sub_806707C: @ 806707C - push {lr} - bl sub_8065068 - pop {r0} - bx r0 - thumb_func_end sub_806707C - - thumb_func_start sub_8067088 -sub_8067088: @ 8067088 - push {lr} - bl sub_8065068 - pop {r0} - bx r0 - thumb_func_end sub_8067088 - - thumb_func_start sub_8067094 -sub_8067094: @ 8067094 - push {lr} - bl sub_8065068 - pop {r0} - bx r0 - thumb_func_end sub_8067094 - - thumb_func_start sub_80670A0 -sub_80670A0: @ 80670A0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - movs r0, 0 - bl load_gfxc_health_bar - ldr r3, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - mov r9, r0 - ldrb r4, [r0] - lsls r2, r4, 9 - adds r0, r3, 0x2 - adds r0, r2, r0 - ldrb r1, [r0] - adds r3, 0x3 - adds r2, r3 - ldrb r0, [r2] - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - asrs r7, r1, 16 - ldr r0, =0x00007fff - cmp r7, r0 - beq _08067130 - ldr r6, =gUnknown_0202406E - lsls r0, r4, 1 - adds r0, r6 - ldrh r0, [r0] - movs r5, 0x64 - muls r0, r5 - ldr r4, =gEnemyParty - adds r0, r4 - movs r1, 0x3A - bl GetMonData - mov r8, r0 - mov r1, r9 - ldrb r0, [r1] - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - muls r0, r5 - adds r0, r4 - movs r1, 0x39 - bl GetMonData - adds r3, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r1, =gUnknown_03005D70 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - mov r2, r8 - bl sub_807294C - b _0806715A - .pool -_08067130: - ldr r1, =gUnknown_0202406E - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x3A - bl GetMonData - adds r2, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r1, =gUnknown_03005D70 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - movs r3, 0 - bl sub_807294C -_0806715A: - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8064BC0 - str r1, [r0] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80670A0 - - thumb_func_start sub_8067190 -sub_8067190: @ 8067190 - push {lr} - bl sub_8065068 - pop {r0} - bx r0 - thumb_func_end sub_8067190 - - thumb_func_start sub_806719C -sub_806719C: @ 806719C - push {r4,lr} - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _080671F0 - ldr r0, =gUnknown_03005D70 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, =gUnknown_0202406E - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gEnemyParty - adds r1, r2 - movs r2, 0x9 - bl healthbar_draw_field_maybe - ldrb r2, [r4] - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8065008 - str r1, [r0] -_080671F0: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_806719C - - thumb_func_start sub_8067214 -sub_8067214: @ 8067214 - push {r4,r5,lr} - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _08067264 - ldr r4, =gUnknown_02023064 - ldrb r3, [r5] - lsls r3, 9 - adds r0, r4, 0x1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, 0x2 - adds r1, r3, r1 - ldrb r1, [r1] - adds r2, r4, 0x3 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, 8 - orrs r1, r2 - adds r2, r4, 0x4 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, 16 - orrs r1, r2 - adds r4, 0x5 - adds r3, r4 - ldrb r2, [r3] - lsls r2, 24 - orrs r1, r2 - bl move_anim_start_t2_for_situation - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8065008 - str r1, [r0] -_08067264: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8067214 - - thumb_func_start sub_806727C -sub_806727C: @ 806727C - push {lr} - bl sub_8065068 - pop {r0} - bx r0 - thumb_func_end sub_806727C - - thumb_func_start sub_8067288 -sub_8067288: @ 8067288 - push {lr} - bl sub_8065068 - pop {r0} - bx r0 - thumb_func_end sub_8067288 - - thumb_func_start sub_8067294 -sub_8067294: @ 8067294 - push {lr} - bl sub_8065068 - pop {r0} - bx r0 - thumb_func_end sub_8067294 - - thumb_func_start sub_80672A0 -sub_80672A0: @ 80672A0 - push {lr} - bl sub_8065068 - pop {r0} - bx r0 - thumb_func_end sub_80672A0 - - thumb_func_start sub_80672AC -sub_80672AC: @ 80672AC - push {lr} - bl sub_8065068 - pop {r0} - bx r0 - thumb_func_end sub_80672AC - - thumb_func_start sub_80672B8 -sub_80672B8: @ 80672B8 - push {lr} - bl sub_8065068 - pop {r0} - bx r0 - thumb_func_end sub_80672B8 - - thumb_func_start sub_80672C4 -sub_80672C4: @ 80672C4 - push {lr} - bl sub_8065068 - pop {r0} - bx r0 - thumb_func_end sub_80672C4 - - thumb_func_start sub_80672D0 -sub_80672D0: @ 80672D0 - push {lr} - bl sub_8065068 - pop {r0} - bx r0 - thumb_func_end sub_80672D0 - - thumb_func_start sub_80672DC -sub_80672DC: @ 80672DC - push {lr} - bl sub_8065068 - pop {r0} - bx r0 - thumb_func_end sub_80672DC - - thumb_func_start sub_80672E8 -sub_80672E8: @ 80672E8 - push {lr} - ldr r2, =gUnknown_02022D0C - ldrb r1, [r2] - movs r0, 0x80 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - bl sub_8065068 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80672E8 - - thumb_func_start sub_8067304 -sub_8067304: @ 8067304 - push {lr} - ldr r3, =gUnknown_02022D0C - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x7F - ands r1, r0 - ldrb r2, [r3] - movs r0, 0x80 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl sub_8065068 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8067304 - - thumb_func_start sub_806733C -sub_806733C: @ 806733C - push {lr} - ldr r2, =gUnknown_02022D0C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - bl sub_8065068 - pop {r0} - bx r0 - .pool - thumb_func_end sub_806733C - - thumb_func_start sub_8067354 -sub_8067354: @ 8067354 - push {lr} - ldr r3, =gUnknown_02022D0C - ldr r1, [r3] - lsls r1, 24 - lsrs r1, 31 - movs r0, 0x1 - eors r1, r0 - lsls r1, 7 - ldrb r2, [r3] - movs r0, 0x7F - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl sub_8065068 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8067354 - - thumb_func_start sub_806737C -sub_806737C: @ 806737C - push {r4,lr} - ldr r3, =gUnknown_02020630 - ldr r2, =gUnknown_020241E4 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _080673B0 - bl sub_8065068 - b _080673DA - .pool -_080673B0: - ldr r1, =gUnknown_020244B9 - movs r0, 0x1 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0 - strh r1, [r0, 0x30] - ldrb r0, [r4] - bl sub_80769F4 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8064CE4 - str r1, [r0] -_080673DA: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_806737C - - thumb_func_start sub_80673EC -sub_80673EC: @ 80673EC - push {lr} - bl sub_8065068 - pop {r0} - bx r0 - thumb_func_end sub_80673EC - - thumb_func_start sub_80673F8 -sub_80673F8: @ 80673F8 - push {r4,lr} - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - movs r3, 0x3F - cmp r0, 0 - bne _0806740C - movs r3, 0xC0 -_0806740C: - ldr r2, =gUnknown_02023064 - ldrb r1, [r4] - lsls r1, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - lsls r1, r3, 24 - asrs r1, 24 - bl audio_play_and_stuff - bl sub_8065068 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80673F8 - - thumb_func_start sub_806743C -sub_806743C: @ 806743C - push {r4,r5,lr} - ldr r4, =gUnknown_02023064 - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - lsls r3, r0, 9 - adds r0, r4, 0x3 - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, 0 - beq _08067478 - bl sub_805EA60 - ldrb r1, [r5] - lsls r1, 9 - adds r0, r4, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, r4, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - bl song_play_for_text - b _0806748C - .pool -_08067478: - adds r0, r4, 0x1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, 0x2 - adds r1, r3, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - bl fanfare_play -_0806748C: - bl sub_8065068 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_806743C - - thumb_func_start sub_8067498 -sub_8067498: @ 8067498 - push {lr} - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x19 - movs r2, 0x5 - bl sub_80A32E4 - bl sub_8065068 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8067498 - - thumb_func_start sub_80674D4 -sub_80674D4: @ 80674D4 - push {lr} - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - bl battle_intro_launch - ldr r2, =gUnknown_020243FC - ldrh r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] - bl sub_8065068 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80674D4 - - thumb_func_start sub_8067508 -sub_8067508: @ 8067508 - push {r4-r6,lr} - ldr r5, =gUnknown_020241E4 - ldr r6, =gUnknown_02024064 - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - bl oamt_add_pos2_onto_pos1 - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x23 - strh r1, [r0, 0x2E] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x8C - lsls r1, 1 - strh r1, [r0, 0x32] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x22] - strh r1, [r0, 0x36] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_80A6EEC - str r1, [r0] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =sub_80676FC - bl oamt_set_x3A_32 - ldr r0, =c3_08038DC4 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r4, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - ldrb r0, [r6] - strh r0, [r1, 0x8] - ldr r3, =gUnknown_020244D0 - ldr r0, [r3] - ldrb r2, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080675CA - ldr r0, =gUnknown_020244B4 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - ldr r1, =sub_8073C30 - str r1, [r0] -_080675CA: - ldr r0, [r3] - ldr r2, [r0, 0x8] - ldrb r0, [r2, 0x9] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x9] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, =nullsub_28 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8067508 - - thumb_func_start c3_08038DC4 -c3_08038DC4: @ 8067618 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r7, =gUnknown_02024064 - ldrb r0, [r7] - mov r9, r0 - ldr r1, =gTasks - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x8] - strb r0, [r7] - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08067652 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08067684 -_08067652: - ldr r0, =gUnknown_02023064 - ldrb r1, [r7] - lsls r2, r1, 9 - adds r0, 0x1 - adds r2, r0 - ldr r0, =gUnknown_0202406E - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - strb r0, [r2] - ldrb r0, [r7] - movs r1, 0 - bl sub_8066494 - b _080676C4 - .pool -_08067684: - ldr r4, =gUnknown_02023064 - ldrb r0, [r7] - lsls r1, r0, 9 - adds r4, 0x1 - adds r1, r4 - ldr r6, =gUnknown_0202406E - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r1, 0 - bl sub_8066494 - ldrb r0, [r7] - movs r5, 0x2 - eors r0, r5 - strb r0, [r7] - ldrb r0, [r7] - lsls r1, r0, 9 - adds r1, r4 - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r1, 0 - bl sub_8066494 - ldrb r0, [r7] - eors r0, r5 - strb r0, [r7] -_080676C4: - ldr r1, =gUnknown_03005D60 - ldr r2, =gUnknown_02024064 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8064734 - str r1, [r0] - mov r0, r9 - strb r0, [r2] - mov r0, r8 - bl DestroyTask - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end c3_08038DC4 - - thumb_func_start sub_80676FC -sub_80676FC: @ 80676FC - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x6] - bl sub_805DFE4 - adds r0, r4, 0 - bl obj_free_rotscale_entry - adds r0, r4, 0 - bl RemoveObjectAndFreeTiles - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80676FC - - thumb_func_start sub_8067718 -sub_8067718: @ 8067718 - push {r4-r7,lr} - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08067748 - adds r0, r2, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08067748 - bl sub_8065068 - b _08067812 - .pool -_08067748: - ldr r4, =gUnknown_020244D0 - ldr r0, [r4] - ldr r3, =gUnknown_02024064 - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - ldr r1, =gUnknown_02023064 - ldrb r2, [r3] - lsls r0, r2, 9 - adds r1, 0x2 - adds r0, r1 - ldrb r0, [r0] - adds r7, r3, 0 - cmp r0, 0 - beq _080677B4 - ldr r0, [r4] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r1 - ldrb r2, [r3, 0x1] - lsls r1, r2, 27 - lsrs r0, r1, 28 - cmp r0, 0x1 - bhi _080677AC - adds r0, 0x1 - movs r1, 0xF - ands r0, r1 - lsls r0, 1 - movs r1, 0x1F - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x1] - b _08067812 - .pool -_080677AC: - movs r0, 0x1F - negs r0, r0 - ands r0, r2 - strb r0, [r3, 0x1] -_080677B4: - adds r5, r7, 0 - ldrb r0, [r5] - lsls r3, r0, 9 - ldr r4, =gUnknown_02023068 - adds r1, r3, r4 - subs r2, r4, 0x3 - adds r2, r3, r2 - ldrb r2, [r2] - subs r4, 0x2 - adds r3, r4 - ldrb r3, [r3] - bl sub_80735DC - ldr r2, =gUnknown_020244B4 - ldrb r1, [r5] - adds r1, r2 - movs r3, 0 - strb r0, [r1] - ldr r6, =gUnknown_020244D0 - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strb r3, [r0, 0x5] - ldrb r2, [r5] - lsls r0, r2, 9 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _08067806 - ldr r0, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0x5D - strb r1, [r0, 0x5] -_08067806: - ldr r0, =gUnknown_03005D60 - ldrb r1, [r7] - lsls r1, 2 - adds r1, r0 - ldr r0, =sub_806782C - str r0, [r1] -_08067812: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8067718 - - thumb_func_start sub_806782C -sub_806782C: @ 806782C - push {r4,lr} - ldr r4, =gUnknown_020244D0 - ldr r0, [r4] - ldr r3, =gUnknown_02024064 - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x5] - adds r2, r1, 0x1 - strb r2, [r0, 0x5] - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x5C - bls _08067864 - ldr r0, [r4] - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strb r1, [r0, 0x5] - bl sub_8065068 -_08067864: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_806782C - - thumb_func_start sub_8067874 -sub_8067874: @ 8067874 - push {lr} - ldr r0, =gUnknown_020244D0 - ldr r1, [r0] - ldr r0, =gUnknown_02024064 - ldrb r3, [r0] - ldr r1, [r1, 0x4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080678A6 - ldr r2, =gTasks - ldr r0, =gUnknown_020244B4 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, =sub_8073C30 - str r1, [r0] -_080678A6: - bl sub_8065068 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8067874 - - thumb_func_start sub_80678C4 -sub_80678C4: @ 80678C4 - push {lr} - bl sub_8065068 - pop {r0} - bx r0 - thumb_func_end sub_80678C4 - - thumb_func_start sub_80678D0 -sub_80678D0: @ 80678D0 - push {r4,lr} - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - bl sub_80A6A90 - lsls r0, 24 - cmp r0, 0 - beq _08067916 - ldr r3, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldr r0, =gUnknown_02023064 - lsls r1, 9 - adds r0, 0x1 - adds r1, r0 - adds r2, 0x3E - movs r0, 0x1 - ldrb r1, [r1] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - bl sub_805E408 -_08067916: - bl sub_8065068 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80678D0 - - thumb_func_start sub_8067930 -sub_8067930: @ 8067930 - push {r4-r6,lr} - sub sp, 0x4 - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _08067992 - ldr r4, =gUnknown_02023064 - ldrb r2, [r5] - lsls r1, r2, 9 - adds r0, r4, 0x1 - adds r0, r1, r0 - ldrb r6, [r0] - adds r0, r4, 0x2 - adds r0, r1, r0 - ldrb r3, [r0] - adds r4, 0x3 - adds r1, r4 - ldrb r0, [r1] - lsls r0, 8 - orrs r3, r0 - str r3, [sp] - adds r0, r2, 0 - adds r1, r2, 0 - adds r3, r6, 0 - bl move_anim_start_t3 - lsls r0, 24 - cmp r0, 0 - beq _08067980 - bl sub_8065068 - b _0806798C - .pool -_08067980: - ldr r0, =gUnknown_03005D60 - ldrb r1, [r5] - lsls r1, 2 - adds r1, r0 - ldr r0, =sub_8065038 - str r0, [r1] -_0806798C: - adds r0, r6, 0 - bl sub_817E32C -_08067992: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8067930 - - thumb_func_start sub_80679A4 -sub_80679A4: @ 80679A4 - push {lr} - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 9 - ldr r1, =gUnknown_02023066 - adds r0, r1 - bl sub_81851A8 - bl sub_8065068 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80679A4 - - thumb_func_start sub_80679C4 -sub_80679C4: @ 80679C4 - push {lr} - bl sub_8065068 - pop {r0} - bx r0 - thumb_func_end sub_80679C4 - - thumb_func_start sub_80679D0 -sub_80679D0: @ 80679D0 - push {r4,r5,lr} - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - lsls r0, 9 - ldr r4, =gUnknown_02023068 - adds r0, r4 - bl sub_81851A8 - ldrb r0, [r5] - lsls r0, 9 - subs r4, 0x3 - adds r0, r4 - ldrb r2, [r0] - cmp r2, 0x3 - bne _08067A00 - ldr r0, =gUnknown_0202433A - strb r2, [r0] - b _08067A08 - .pool -_08067A00: - ldr r0, =gUnknown_0202433A - movs r1, 0x3 - eors r1, r2 - strb r1, [r0] -_08067A08: - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r1, =gUnknown_02023064 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - lsls r0, 9 - adds r1, 0x2 - adds r0, r1 - ldrb r0, [r0] - ldr r1, =0x00000ca9 - adds r3, r1 - movs r1, 0x1 - ands r1, r0 - lsls r1, 3 - ldrb r2, [r3] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x5 - bl sub_80A2F50 - movs r0, 0x3 - bl BeginFastPaletteFade - bl sub_8065068 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_80587B0 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80679D0 - - thumb_func_start nullsub_92 -nullsub_92: @ 8067A70 - bx lr - thumb_func_end nullsub_92 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_8072304.s b/asm/rom_8072304.s index 4f55c95772..16d2acf994 100644 --- a/asm/rom_8072304.s +++ b/asm/rom_8072304.s @@ -279,7 +279,7 @@ battle_make_oam_normal_battle: @ 80724DC cmp r0, 0 bne _080725F0 mov r0, r10 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08072574 @@ -288,17 +288,17 @@ battle_make_oam_normal_battle: @ 80724DC movs r1, 0xF0 movs r2, 0xA0 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 adds r0, r4, 0 movs r1, 0xF0 movs r2, 0xA0 movs r3, 0x1 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r7, r0, 24 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites lsls r1, r6, 4 adds r1, r6 lsls r1, 2 @@ -334,17 +334,17 @@ _08072574: movs r1, 0xF0 movs r2, 0xA0 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 adds r0, r4, 0 movs r1, 0xF0 movs r2, 0xA0 movs r3, 0x1 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r7, r0, 24 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r2, r7, 4 adds r2, r7 lsls r2, 2 @@ -363,7 +363,7 @@ _08072574: movs r0, 0x2 str r0, [sp] _080725BA: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, r6, 4 adds r0, r6 lsls r0, 2 @@ -382,12 +382,12 @@ _080725BA: .pool _080725F0: mov r0, r10 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08072694 mov r0, r10 - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 25 @@ -399,11 +399,11 @@ _080725F0: movs r1, 0xF0 movs r2, 0xA0 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 mov r0, r10 - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 25 @@ -414,10 +414,10 @@ _080725F0: movs r1, 0xF0 movs r2, 0xA0 movs r3, 0x1 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r7, r0, 24 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites lsls r0, r6, 4 adds r0, r6 lsls r0, 2 @@ -451,7 +451,7 @@ _080725F0: .pool _08072694: mov r0, r10 - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 25 @@ -463,11 +463,11 @@ _08072694: movs r1, 0xF0 movs r2, 0xA0 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 mov r0, r10 - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 25 @@ -478,10 +478,10 @@ _08072694: movs r1, 0xF0 movs r2, 0xA0 movs r3, 0x1 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r7, r0, 24 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites lsls r0, r6, 4 adds r0, r6 lsls r0, 2 @@ -514,7 +514,7 @@ _08072694: _08072716: str r0, [sp] _08072718: - ldr r0, =gUnknown_02024076 + ldr r0, =gBanksBySide add r0, r10 ldrb r1, [r0] lsls r0, r1, 1 @@ -525,25 +525,25 @@ _08072718: movs r1, 0x8C movs r2, 0x3C movs r3, 0 - bl AddObjectToBack + bl CreateSpriteAtEnd adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 lsls r4, r5, 4 adds r4, r5 lsls r4, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites mov r8, r1 add r4, r8 mov r0, r10 - bl battle_side_get_owner + bl GetBankSide adds r1, r0, 0 lsls r1, 24 lsrs r1, 21 ldr r0, =gUnknown_0832C28C adds r1, r0 adds r0, r4, 0 - bl SetSpriteOamTables_NoPriorityFromTable + bl SetSubspriteTables adds r2, r4, 0 adds r2, 0x42 ldrb r1, [r2] @@ -621,7 +621,7 @@ battle_make_oam_safari_battle: @ 8072804 movs r1, 0xF0 movs r2, 0xA0 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 @@ -629,10 +629,10 @@ battle_make_oam_safari_battle: @ 8072804 movs r1, 0xF0 movs r2, 0xA0 movs r3, 0x1 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites mov r9, r1 lsls r4, r6, 4 adds r4, r6 @@ -707,7 +707,7 @@ sub_80728B4: @ 80728B4 bgt _080728F8 cmp r0, 0 bne _080728F8 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r3, r5, 4 adds r1, r3, r5 lsls r1, 2 @@ -717,7 +717,7 @@ sub_80728B4: @ 80728B4 b _08072906 .pool _080728E4: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r3, r5, 4 adds r1, r3, r5 lsls r1, 2 @@ -727,7 +727,7 @@ _080728E4: b _08072906 .pool _080728F8: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r3, r5, 4 adds r1, r3, r5 lsls r1, 2 @@ -756,7 +756,7 @@ sub_8072924: @ 8072924 ldrh r1, [r0, 0x38] lsls r1, 24 lsrs r1, 24 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r2, r1, 4 adds r2, r1 lsls r2, 2 @@ -807,7 +807,7 @@ sub_8072984: @ 8072984 push {r4,lr} lsls r0, 24 lsrs r0, 24 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 @@ -848,7 +848,7 @@ sub_80729D0: @ 80729D0 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 @@ -892,7 +892,7 @@ sub_8072A24: @ 8072A24 push {r4,lr} lsls r0, 24 lsrs r0, 24 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites lsls r3, r0, 4 adds r3, r0 lsls r3, 2 @@ -910,7 +910,7 @@ sub_8072A44: @ 8072A44 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites lsls r4, r0, 4 adds r4, r0 lsls r4, 2 @@ -920,16 +920,16 @@ sub_8072A44: @ 8072A44 adds r0, r1 lsls r0, 2 adds r0, r5 - bl RemoveObjectAndFreeTiles + bl DestroySprite movs r0, 0x38 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite pop {r4,r5} pop {r0} bx r0 @@ -950,12 +950,12 @@ sub_8072A88: @ 8072A88 lsls r0, 24 lsrs r0, 24 movs r6, 0 - ldr r1, =gUnknown_0202406C + ldr r1, =gNoOfAllBanks mov r8, r1 ldrb r2, [r1] cmp r6, r2 bge _08072B00 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites mov r12, r1 movs r1, 0x3 ands r0, r1 @@ -1026,7 +1026,7 @@ sub_8072B18: @ 8072B18 cmp r0, 0 bne _08072B44 adds r0, r6, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08072B3E @@ -1039,7 +1039,7 @@ _08072B3E: b _08072B7C _08072B44: adds r0, r6, 0 - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1117,7 +1117,7 @@ healthbar_draw_level: @ 8072B94 movs r3, 0x2 bl write_to_rbox adds r5, r0, 0 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r4, 4 adds r1, r4 lsls r1, 2 @@ -1128,7 +1128,7 @@ healthbar_draw_level: @ 8072B94 ldrh r0, [r1, 0x3A] lsls r0, 24 lsrs r0, 24 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08072C18 @@ -1175,7 +1175,7 @@ heathbar_draw_hp: @ 8072C38 lsls r2, 24 lsrs r2, 24 mov r8, r2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r7, 4 adds r0, r7 lsls r0, 2 @@ -1183,7 +1183,7 @@ heathbar_draw_hp: @ 8072C38 ldrh r0, [r4, 0x3A] lsls r0, 24 lsrs r0, 24 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08072D10 @@ -1259,7 +1259,7 @@ _08072D10: add r0, sp, 0x4 movs r2, 0x14 bl memcpy - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r4, r7, 4 adds r0, r4, r7 lsls r0, 2 @@ -1274,7 +1274,7 @@ _08072D10: cmp r0, 0x1 beq _08072D46 adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1292,7 +1292,7 @@ _08072D60: ldrh r0, [r6, 0x3A] lsls r0, 24 lsrs r0, 24 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08072D7C @@ -1327,7 +1327,7 @@ _08072D86: add r2, sp, 0x4 bl RenderTextFont9 movs r4, 0 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites mov r2, r10 adds r0, r2, r7 lsls r0, 2 @@ -1386,7 +1386,7 @@ sub_8072E0C: @ 8072E0C lsls r2, 24 lsrs r2, 24 mov r8, r2 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites lsls r0, 4 add r0, r9 lsls r0, 2 @@ -1394,7 +1394,7 @@ sub_8072E0C: @ 8072E0C ldrh r0, [r7, 0x3A] lsls r0, 24 lsrs r0, 24 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08072F28 @@ -1616,7 +1616,7 @@ _08073024: adds r0, r1 ldr r0, [r0] adds r0, 0xE0 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r4, r7, 4 adds r4, r7 lsls r4, 2 @@ -1642,13 +1642,13 @@ _08073024: .pool _08073084: ldr r0, [sp, 0x2C] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080730B8 movs r0, 0x74 bl sub_80728A4 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites mov r3, r9 lsls r1, r3, 4 add r1, r9 @@ -1692,7 +1692,7 @@ sub_80730D4: @ 80730D4 mov r0, sp movs r2, 0x14 bl memcpy - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites ldr r2, [sp, 0x14] lsls r0, r2, 4 adds r0, r2 @@ -1701,7 +1701,7 @@ sub_80730D4: @ 80730D4 ldrh r0, [r0, 0x3A] lsls r0, 24 lsrs r0, 24 - bl battle_get_per_side_status + bl GetBankIdentity ldr r1, =gUnknown_020244D4 ldr r2, [r1] movs r3, 0xBA @@ -1798,7 +1798,7 @@ _080731AA: mov r9, r1 cmp r7, r9 bge _08073236 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites ldr r2, =0x04000008 mov r10, r2 ldr r3, [sp, 0x14] @@ -1847,7 +1847,7 @@ _080731F6: cmp r7, r9 blt _080731E6 _08073236: - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites ldr r3, [sp, 0x18] ldr r1, [sp, 0x14] adds r0, r3, r1 @@ -1856,7 +1856,7 @@ _08073236: ldrh r4, [r0, 0x38] lsls r4, 24 lsrs r4, 24 - ldr r5, =gUnknown_0202449C + ldr r5, =gBattleStruct ldr r0, [r5] adds r0, 0x7C ldrb r1, [r0] @@ -1955,15 +1955,15 @@ sub_8073314: @ 8073314 sub sp, 0x4 movs r0, 0 mov r9, r0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r9, r0 blt _0807332E b _080735BA _0807332E: - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites mov r10, r1 - ldr r2, =gUnknown_0202406E + ldr r2, =gBattlePartyID mov r8, r2 _08073336: ldr r0, =gUnknown_03005D70 @@ -1977,7 +1977,7 @@ _08073336: adds r1, 0x1C adds r0, r1 ldr r1, [r0] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy cmp r1, r0 beq _08073354 b _080735A8 @@ -1986,7 +1986,7 @@ _08073354: lsls r0, r2, 24 lsrs r7, r0, 24 adds r0, r7, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1998,7 +1998,7 @@ _0807336A: cmp r0, 0 bne _08073382 adds r0, r7, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08073382 @@ -2032,7 +2032,7 @@ _08073382: lsls r0, 27 lsrs r4, r0, 31 adds r0, r7, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080734B0 @@ -2240,7 +2240,7 @@ _080735A8: add r8, r0 movs r1, 0x1 add r9, r1 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r9, r0 bge _080735BA @@ -2277,14 +2277,14 @@ sub_80735DC: @ 80735DC str r3, [sp, 0x10] cmp r4, 0 beq _0807360C - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _0807365C _0807360C: ldr r0, [sp, 0x8] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08073630 @@ -2334,11 +2334,11 @@ _0807366C: ldr r0, =gUnknown_0832C334 bl LoadCompressedObjectPicUsingHeap ldr r0, =gUnknown_0832C34C - bl LoadObjectPic + bl LoadSpriteSheet ldr r0, =gUnknown_0832C33C - bl LoadTaggedObjectPalette + bl LoadSpritePalette ldr r0, =gUnknown_0832C344 - bl LoadTaggedObjectPalette + bl LoadSpritePalette mov r0, r9 lsls r6, r0, 1 adds r0, r6, r0 @@ -2350,7 +2350,7 @@ _0807366C: lsls r4, 16 asrs r2, r4, 16 movs r3, 0xA - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x14] @@ -2358,11 +2358,11 @@ _0807366C: ldr r1, [sp, 0x14] adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r7, r0, r1 ldr r1, =gUnknown_0832C2C4 adds r0, r7, 0 - bl SetSpriteOamTables_NoPriorityFromTable + bl SetSubspriteTables mov r2, r10 strh r2, [r7, 0x24] mov r3, r8 @@ -2391,7 +2391,7 @@ _08073700: _08073706: movs r0, 0 mov r8, r0 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites mov r10, r1 mov r7, sp mov r2, r9 @@ -2411,7 +2411,7 @@ _0807371C: asrs r1, r3, 16 asrs r2, 16 movs r3, 0x9 - bl AddObjectToBack + bl CreateSpriteAtEnd strb r0, [r7] ldr r0, [sp, 0x10] cmp r0, 0 @@ -2420,12 +2420,12 @@ _0807371C: lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r2, =gUnknown_0202064C + ldr r2, =gSprites + 0x1C adds r1, r2 ldr r0, =sub_80741C8 str r0, [r1] _0807374C: - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites mov r3, r9 cmp r3, 0 bne _0807376E @@ -2532,7 +2532,7 @@ _0807380A: b _0807371C _0807382C: ldr r0, [sp, 0x8] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0807383A @@ -2546,7 +2546,7 @@ _0807383A: beq _080738F4 ldr r5, =0x0000ffff mov r10, r5 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites ldr r0, =0x000003ff adds r7, r0, 0 ldr r1, =0xfffffc00 @@ -2628,7 +2628,7 @@ _080738F4: movs r1, 0x5 mov r10, r1 movs r7, 0 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites mov r8, r2 ldr r3, =0x000003ff mov r9, r3 @@ -2690,7 +2690,7 @@ _08073970: ands r0, r1 cmp r0, 0 beq _080739B8 - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] movs r2, 0xA8 lsls r2, 2 @@ -2751,7 +2751,7 @@ _080739E8: beq _08073AA4 ldr r1, =0x0000ffff mov r10, r1 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites ldr r2, =0x000003ff adds r7, r2, 0 ldr r3, =0xfffffc00 @@ -2834,7 +2834,7 @@ _08073AA4: movs r3, 0 mov r8, r3 movs r7, 0 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites mov r9, r5 ldr r6, =0x000003ff mov r12, r6 @@ -2896,7 +2896,7 @@ _08073B20: ands r0, r1 cmp r0, 0 beq _08073B6C - ldr r2, =gUnknown_0202449C + ldr r2, =gBattleStruct ldr r0, [r2] ldr r3, =0x000002a1 adds r0, r3 @@ -3006,7 +3006,7 @@ _08073BC6: _08073C0A: movs r0, 0x72 movs r1, 0 - bl audio_play_and_stuff + bl PlaySE12WithPanning adds r0, r4, 0 add sp, 0x24 pop {r3-r5} @@ -3071,7 +3071,7 @@ _08073C5E: mov r1, r10 lsls r1, 4 str r1, [sp, 0x10] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites movs r6, 0xD negs r6, r6 mov r12, r3 @@ -3117,7 +3117,7 @@ _08073CDA: _08073CE8: ldr r0, [sp, 0x8] str r3, [sp, 0x14] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r2, r0, 24 ldr r3, [sp, 0x14] @@ -3154,7 +3154,7 @@ _08073CE8: adds r0, r3 ldr r1, =sub_8074158 str r1, [r0] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites mov r12, r2 b _08073D82 .pool @@ -3184,7 +3184,7 @@ _08073D4C: adds r0, r3 ldr r1, =sub_8074158 str r1, [r0] - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r12, r0 _08073D82: adds r4, 0x1 @@ -3211,7 +3211,7 @@ _08073D82: ldr r1, =sub_8074090 str r1, [r3] ldr r1, =gUnknown_0832C2CC - bl SetSpriteOamTables_NoPriorityFromTable + bl SetSubspriteTables ldr r1, =gTasks ldr r0, [sp, 0xC] add r0, r8 @@ -3348,45 +3348,45 @@ _08073E96: lsls r0, r5, 4 adds r0, r5 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 - bl RemoveObjectAndFreeResources + bl DestroySpriteAndFreeResources mov r0, sp ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 - bl RemoveObjectAndFreeResources + bl DestroySpriteAndFreeResources b _08073F32 .pool _08073EFC: lsls r4, r5, 4 adds r4, r5 lsls r4, 2 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites adds r4, r5 adds r0, r4, 0 - bl obj_free_rotscale_entry + bl FreeSpriteOamMatrix adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite mov r0, sp ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 - bl obj_free_rotscale_entry + bl FreeSpriteOamMatrix mov r0, sp ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 - bl RemoveObjectAndFreeTiles + bl DestroySprite _08073F32: movs r4, 0x1 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites _08073F36: mov r1, sp adds r0, r1, r4 @@ -3395,7 +3395,7 @@ _08073F36: adds r0, r1 lsls r0, 2 adds r0, r5 - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r4, 0x1 cmp r4, 0x5 ble _08073F36 @@ -3486,16 +3486,16 @@ _08073FE6: lsls r0, r3, 4 adds r0, r3 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 - bl RemoveObjectAndFreeResources + bl DestroySpriteAndFreeResources mov r0, sp ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 - bl RemoveObjectAndFreeResources + bl DestroySpriteAndFreeResources movs r5, 0x1 _08074016: mov r1, sp @@ -3505,7 +3505,7 @@ _08074016: adds r0, r1 lsls r0, 2 adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r5, 0x1 cmp r5, 0x5 ble _08074016 @@ -3656,15 +3656,15 @@ _0807412C: lsls r1, 24 asrs r1, 24 movs r0, 0x74 - bl sub_80A383C + bl PlaySE2WithPanning b _0807414A _08074140: lsls r1, 24 asrs r1, 24 movs r0, 0x73 - bl sub_80A3808 + bl PlaySE1WithPanning _0807414A: - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r4, 0x1C] _0807414E: pop {r4} @@ -3725,7 +3725,7 @@ _08074196: movs r1, 0x4 orrs r0, r1 strb r0, [r2] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r3, 0x1C] _080741BC: pop {r4} @@ -3739,7 +3739,7 @@ sub_80741C8: @ 80741C8 ldrh r2, [r0, 0x2E] lsls r2, 24 lsrs r2, 24 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r1, r2, 4 adds r1, r2 lsls r1, 2 @@ -3822,7 +3822,7 @@ _08074272: movs r3, 0x2 bl write_to_rbox adds r6, r0, 0 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r7, 4 adds r1, r7 lsls r1, 2 @@ -3833,7 +3833,7 @@ _08074272: ldrh r0, [r1, 0x3A] lsls r0, 24 lsrs r0, 24 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080742F0 @@ -3893,7 +3893,7 @@ sub_8074310: @ 8074310 ands r1, r0 cmp r1, 0 bne _080743E6 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -3902,11 +3902,11 @@ sub_8074310: @ 8074310 lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080743E6 - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -3984,7 +3984,7 @@ draw_status_ailment_maybe: @ 80743F8 lsls r0, 24 lsrs r0, 24 mov r9, r0 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r2, r9 lsls r1, r2, 4 add r1, r9 @@ -3998,11 +3998,11 @@ draw_status_ailment_maybe: @ 80743F8 lsrs r0, 24 mov r10, r0 adds r0, r7, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08074468 - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r7, 1 adds r0, r1 ldrh r1, [r0] @@ -4024,7 +4024,7 @@ draw_status_ailment_maybe: @ 80743F8 b _08074484 .pool _08074468: - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r7, 1 adds r0, r1 ldrh r1, [r0] @@ -4119,7 +4119,7 @@ _08074524: lsls r3, 16 mov r8, r3 lsls r7, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites add r0, r9 lsls r0, 2 adds r5, r0, r1 @@ -4151,7 +4151,7 @@ _08074542: bne _08074598 movs r0, 0x1 bl sub_80728A4 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites mov r3, r10 lsls r1, r3, 4 add r1, r10 @@ -4175,7 +4175,7 @@ _080745B8: lsls r5, r1, 4 add r5, r9 lsls r5, 2 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites adds r5, r2 ldrb r4, [r5, 0x5] lsrs r4, 4 @@ -4216,7 +4216,7 @@ _080745B8: cmp r0, 0x1 beq _08074626 adds r0, r7, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -4238,7 +4238,7 @@ _08074626: lsls r4, r3, 4 add r4, r10 lsls r4, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r4, r1 ldrh r1, [r4, 0x4] lsls r1, 22 @@ -4383,7 +4383,7 @@ sub_8074770: @ 8074770 movs r3, 0x2 bl write_to_rbox adds r5, r0, 0 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 @@ -4439,7 +4439,7 @@ sub_80747D8: @ 80747D8 movs r3, 0x2 bl write_to_rbox adds r5, r0, 0 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 @@ -4481,7 +4481,7 @@ healthbar_draw_field_maybe: @ 8074860 lsrs r6, r0, 24 lsls r2, 24 lsrs r7, r2, 24 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r6, 4 adds r0, r6 lsls r0, 2 @@ -4497,9 +4497,9 @@ healthbar_draw_field_maybe: @ 8074860 cmp r0, 0 bne _0807489C mov r0, r9 - bl battle_side_get_owner + bl GetBankSide _0807489C: - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r6, 4 adds r0, r6 lsls r0, 2 @@ -4507,7 +4507,7 @@ _0807489C: ldrh r0, [r0, 0x3A] lsls r0, 24 lsrs r0, 24 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080748B8 @@ -4921,7 +4921,7 @@ _08074BB8: mov r9, r4 _08074BF4: movs r5, 0 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r8, r0 _08074BFA: ldr r0, =gUnknown_020244D0 @@ -5011,7 +5011,7 @@ _08074CA0: movs r4, 0x8 str r4, [sp, 0x4] bl sub_8074E8C - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r6, 1 adds r0, r1 ldrh r1, [r0] @@ -5040,7 +5040,7 @@ _08074CE6: bls _08074CE6 _08074CF8: movs r5, 0 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r8, r0 adds r0, r7, r6 lsls r4, r0, 2 @@ -5746,7 +5746,7 @@ sub_807521C: @ 807521C lsrs r4, r2, 24 ldr r5, =gUnknown_0831C620 ldrh r0, [r5, 0x6] - bl GetObjectTileRangeStartByTag + bl GetSpriteTileStartByTag lsls r0, 16 ldr r1, =0xffff0000 cmp r0, r1 @@ -5766,7 +5766,7 @@ _0807524E: lsls r5, r0, 4 add r5, r8 lsls r5, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r5, r0 strh r4, [r5, 0x30] ldr r0, =gUnknown_0831C688 @@ -5785,13 +5785,13 @@ _0807524E: adds r1, r6, 0 adds r2, r4, 0 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 mov r0, r8 strh r0, [r1, 0x2E] @@ -5799,18 +5799,18 @@ _0807524E: adds r0, 0x1 strh r0, [r5, 0x2E] adds r0, r1, 0 - bl AnimateObject + bl AnimateSprite mov r0, r9 mov r1, r10 adds r2, r4, 0 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 mov r0, r8 strh r0, [r4, 0x2E] @@ -5819,20 +5819,20 @@ _0807524E: strh r0, [r5, 0x2E] adds r0, r4, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r4, 0 - bl AnimateObject + bl AnimateSprite mov r0, r9 adds r1, r6, 0 adds r2, r7, 0 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 mov r0, r8 strh r0, [r4, 0x2E] @@ -5841,20 +5841,20 @@ _0807524E: strh r0, [r5, 0x2E] adds r0, r4, 0 movs r1, 0x2 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r4, 0 - bl AnimateObject + bl AnimateSprite mov r0, r9 mov r1, r10 adds r2, r7, 0 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 mov r0, r8 strh r0, [r4, 0x2E] @@ -5863,9 +5863,9 @@ _0807524E: strh r0, [r5, 0x2E] adds r0, r4, 0 movs r1, 0x3 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r4, 0 - bl AnimateObject + bl AnimateSprite mov r0, r8 pop {r3-r5} mov r8, r3 @@ -5887,20 +5887,20 @@ sub_8075370: @ 8075370 bne _080753A8 ldr r0, =gUnknown_0831C620 ldrh r0, [r0, 0x6] - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag ldr r0, =gUnknown_0831C628 ldrh r0, [r0, 0x4] - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0 bne _080753A4 adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite b _080753A8 .pool _080753A4: - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r4, 0x1C] _080753A8: pop {r4} @@ -5919,7 +5919,7 @@ sub_80753B4: @ 80753B4 ands r0, r1 cmp r0, 0 beq _080753DE - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 4 @@ -5930,7 +5930,7 @@ sub_80753B4: @ 80753B4 subs r1, 0x1 strh r1, [r0, 0x2E] adds r0, r3, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _080753DE: pop {r0} bx r0 @@ -5946,12 +5946,12 @@ sub_80753E8: @ 80753E8 lsrs r4, 16 lsls r5, 24 lsrs r5, 24 - ldr r1, =gUnknown_020244B9 + ldr r1, =gDoingBattleAnim movs r0, 0x1 strb r0, [r1] ldr r0, =gUnknown_020244D0 ldr r0, [r0] - ldr r6, =gUnknown_02024064 + ldr r6, =gActiveBank ldrb r1, [r6] ldr r2, [r0, 0x4] lsls r0, r1, 1 @@ -6016,11 +6016,11 @@ _08075488: mov r8, r0 ldrb r5, [r1, 0xE] adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080754B4 - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] @@ -6030,7 +6030,7 @@ _08075488: b _080754C2 .pool _080754B4: - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] @@ -6057,10 +6057,10 @@ _080754C2: movs r1, 0x20 movs r2, 0x50 movs r3, 0x1D - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites mov r9, r2 lsls r0, r7, 4 adds r0, r7 @@ -6077,7 +6077,7 @@ _080754C2: beq _08075548 cmp r2, 0xFF bne _08075584 - ldr r0, =gEnemyMonIndex + ldr r0, =gBankTarget strb r5, [r0] movs r0, 0x18 strh r0, [r4, 0x20] @@ -6104,7 +6104,7 @@ _08075548: lsrs r0, 24 adds r0, 0x18 strh r0, [r4, 0x22] - ldr r0, =gEnemyMonIndex + ldr r0, =gBankTarget strb r5, [r0] movs r3, 0 strh r3, [r4, 0x2E] @@ -6117,18 +6117,18 @@ _08075548: .pool _08075584: movs r0, 0x1 - bl battle_get_side_with_given_state - ldr r1, =gEnemyMonIndex + bl GetBankByPlayerAI + ldr r1, =gBankTarget strb r0, [r1] movs r0, 0x1 str r0, [sp] _08075592: - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r7, 4 adds r1, r7 lsls r1, 2 adds r4, r1, r0 - ldr r5, =gEnemyMonIndex + ldr r5, =gBankTarget ldrb r0, [r5] strh r0, [r4, 0x3A] ldr r2, [sp] @@ -6171,7 +6171,7 @@ _080755B8: ldr r1, =TaskDummy str r1, [r0] movs r0, 0x3D - bl audio_play + bl PlaySE _08075602: add sp, 0x4 pop {r3-r5} @@ -6206,7 +6206,7 @@ objc_0804ABD4: @ 8075620 mov r8, r0 adds r0, r7, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim adds r2, r7, 0 adds r2, 0x2C ldrb r0, [r2] @@ -6292,7 +6292,7 @@ sub_80756E0: @ 80756E0 strh r7, [r6, 0x38] ldr r0, =sub_807574C str r0, [r6, 0x1C] - ldr r5, =gUnknown_020241E4 + ldr r5, =gBankSpriteIds movs r1, 0x3A ldrsh r0, [r6, r1] adds r0, r5 @@ -6300,10 +6300,10 @@ sub_80756E0: @ 80756E0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 movs r1, 0x2 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim movs r1, 0x3A ldrsh r0, [r6, r1] adds r0, r5 @@ -6312,7 +6312,7 @@ sub_80756E0: @ 80756E0 adds r0, r1 lsls r0, 2 adds r0, r4 - bl AnimateObject + bl AnimateSprite movs r1, 0x3A ldrsh r0, [r6, r1] adds r0, r5 @@ -6341,10 +6341,10 @@ sub_807574C: @ 807574C cmp r0, 0xB bne _08075764 movs r0, 0x3C - bl audio_play + bl PlaySE _08075764: - ldr r6, =gUnknown_02020630 - ldr r5, =gUnknown_020241E4 + ldr r6, =gSprites + ldr r5, =gBankSpriteIds movs r1, 0x3A ldrsh r0, [r4, r1] adds r0, r5 @@ -6361,7 +6361,7 @@ _08075764: bge _080757BC adds r0, r4, 0 movs r1, 0x2 - bl StartObjectImageAnim + bl StartSpriteAnim movs r2, 0x3A ldrsh r0, [r4, r2] adds r0, r5 @@ -6505,19 +6505,19 @@ _0807589C: b _080758BA _080758A2: movs r0, 0x38 - bl audio_play + bl PlaySE b _080758EE _080758AA: movs r0, 0x39 - bl audio_play + bl PlaySE b _080758EE _080758B2: movs r0, 0x3A - bl audio_play + bl PlaySE b _080758EE _080758BA: movs r0, 0x3B - bl audio_play + bl PlaySE b _080758EE _080758C2: movs r2, 0x38 @@ -6595,11 +6595,11 @@ sub_8075930: @ 8075930 strb r0, [r2] adds r0, r4, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim ldr r0, =sub_8075970 str r0, [r4, 0x1C] movs r0, 0x17 - bl audio_play + bl PlaySE _08075964: pop {r4} pop {r0} @@ -6683,12 +6683,12 @@ _080759D2: bge _08075A0E adds r0, r4, 0 movs r1, 0x2 - bl sub_80082B8 + bl ChangeSpriteAffineAnim b _08075AB6 _08075A0E: adds r0, r4, 0 movs r1, 0x1 - bl sub_80082B8 + bl ChangeSpriteAffineAnim b _08075AB6 _08075A18: adds r0, r4, 0 @@ -6752,23 +6752,23 @@ _08075A70: strh r0, [r4, 0x34] adds r0, r4, 0 movs r1, 0x3 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim movs r1, 0x36 ldrsh r0, [r4, r1] cmp r0, 0 bge _08075AA8 adds r0, r4, 0 movs r1, 0x2 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim b _08075AB0 .pool _08075AA8: adds r0, r4, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim _08075AB0: movs r0, 0x17 - bl audio_play + bl PlaySE _08075AB6: pop {r4} pop {r0} @@ -6845,7 +6845,7 @@ _08075B04: .4byte _08075C7E .4byte _08075CA8 _08075B88: - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r7, 4 adds r1, r7 lsls r1, 2 @@ -6875,17 +6875,17 @@ _08075BB4: asrs r1, 24 adds r0, r6, 0 movs r2, 0 - bl sub_80A32E4 + bl PlayCry3 b _08075C2E _08075BCC: lsls r1, r5, 24 asrs r1, 24 adds r0, r6, 0 movs r2, 0xB - bl sub_80A32E4 + bl PlayCry3 b _08075C2E _08075BDA: - bl sub_80A369C + bl StopCryAndClearCrySongs ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 @@ -6915,14 +6915,14 @@ _08075BF8: asrs r1, 24 adds r0, r6, 0 movs r2, 0x1 - bl sub_80A3344 + bl PlayCry4 b _08075C2E _08075C22: lsls r1, r5, 24 asrs r1, 24 adds r0, r6, 0 movs r2, 0xC - bl sub_80A3344 + bl PlayCry4 _08075C2E: ldr r0, =gUnknown_020244D0 ldr r0, [r0] @@ -6965,11 +6965,11 @@ _08075C66: adds r0, 0x1 strh r0, [r1, 0x26] _08075C7E: - bl sub_80A36C8 + bl IsCryPlayingOrClearCrySongs lsls r0, 24 cmp r0, 0 bne _08075D04 - bl sub_80A369C + bl StopCryAndClearCrySongs ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 @@ -7005,14 +7005,14 @@ _08075CC0: asrs r1, 24 adds r0, r6, 0 movs r2, 0 - bl sub_80A3344 + bl PlayCry4 b _08075CE4 _08075CD8: lsls r1, r5, 24 asrs r1, 24 adds r0, r6, 0 movs r2, 0xB - bl sub_80A3344 + bl PlayCry4 _08075CE4: ldr r0, =gUnknown_020244D0 ldr r0, [r0] @@ -7052,7 +7052,7 @@ sub_8075D14: @ 8075D14 lsrs r5, r0, 24 adds r0, r6, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r5, 0 bl sub_8076B14 lsls r0, 16 @@ -7095,11 +7095,11 @@ sub_8075D14: @ 8075D14 b _08075EF4 _08075D88: adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08075DC0 - ldr r0, =gUnknown_0202406E + ldr r0, =gBattlePartyID lsls r2, r5, 1 adds r0, r2, r0 ldrh r1, [r0] @@ -7112,7 +7112,7 @@ _08075D88: b _08075DD4 .pool _08075DC0: - ldr r0, =gUnknown_0202406E + ldr r0, =gBattlePartyID lsls r2, r5, 1 adds r0, r2, r0 ldrh r1, [r0] @@ -7131,13 +7131,13 @@ _08075DD4: lsrs r0, 16 mov r9, r0 movs r0, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 cmp r5, r0 beq _08075E00 movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 cmp r5, r0 @@ -7161,7 +7161,7 @@ _08075E00: ands r0, r1 cmp r0, 0x42 bne _08075E4C - bl sub_80A38E4 + bl IsBGMPlaying lsls r0, 24 cmp r0, 0 beq _08075E56 @@ -7193,13 +7193,13 @@ _08075E70: .pool _08075E80: movs r0, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 cmp r5, r0 beq _08075E9C movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 cmp r5, r0 @@ -7240,7 +7240,7 @@ _08075EA2: strh r0, [r1, 0xA] strh r4, [r1, 0xC] strh r5, [r1, 0xE] - ldr r2, =gUnknown_020241E4 + ldr r2, =gBankSpriteIds movs r4, 0x3A ldrsh r0, [r6, r4] adds r0, r2 @@ -7251,7 +7251,7 @@ _08075EA2: strh r7, [r1, 0x14] strh r3, [r1, 0x26] _08075EF4: - ldr r4, =gUnknown_020241E4 + ldr r4, =gBankSpriteIds movs r1, 0x3A ldrsh r0, [r6, r1] adds r0, r4 @@ -7259,14 +7259,14 @@ _08075EF4: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites adds r0, r5 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim ldrh r0, [r6, 0x3A] lsls r0, 24 lsrs r0, 24 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -7298,7 +7298,7 @@ _08075F50: ldr r1, =sub_8039E44 _08075F66: str r1, [r0] - ldr r5, =gUnknown_020241E4 + ldr r5, =gBankSpriteIds movs r2, 0x3A ldrsh r0, [r6, r2] adds r0, r5 @@ -7306,9 +7306,9 @@ _08075F66: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 - bl AnimateObject + bl AnimateSprite movs r1, 0x3A ldrsh r0, [r6, r1] adds r0, r5 @@ -7357,8 +7357,8 @@ sub_8075FD4: @ 8075FD4 ldrh r0, [r5, 0x3A] lsls r0, 24 lsrs r6, r0, 24 - ldr r4, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 + ldr r4, =gSprites + ldr r0, =gBankSpriteIds adds r3, r6, r0 ldrb r1, [r3] lsls r0, r1, 4 @@ -7398,7 +7398,7 @@ _08076016: bge _08076040 adds r0, r1, 0 movs r1, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim movs r7, 0x1 b _0807605C .pool @@ -7427,8 +7427,8 @@ _0807605C: beq _080760DE cmp r7, 0 beq _080760DE - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 + ldr r2, =gSprites + ldr r0, =gBankSpriteIds adds r0, r6, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -7438,7 +7438,7 @@ _0807605C: movs r2, 0 movs r1, 0 strh r1, [r0, 0x26] - ldr r0, =gUnknown_020244B9 + ldr r0, =gDoingBattleAnim strb r2, [r0] ldr r4, =gUnknown_020244D0 ldr r0, [r4] @@ -7453,9 +7453,9 @@ _0807605C: ands r0, r2 strb r0, [r1] adds r0, r5, 0 - bl obj_free_rotscale_entry + bl FreeSpriteOamMatrix adds r0, r5, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite movs r3, 0 ldr r0, [r4] ldr r2, [r0, 0x4] @@ -7506,20 +7506,20 @@ sub_80760F8: @ 80760F8 beq _08076196 cmp r1, 0x5F bne _08076130 - ldr r0, =gUnknown_020244B9 + ldr r0, =gDoingBattleAnim movs r1, 0 strb r1, [r0] bl m4aMPlayAllStop ldr r0, =0x00000173 - bl audio_play + bl PlaySE b _08076196 .pool _08076130: ldr r0, =0x0000013b cmp r1, r0 bne _08076196 - ldr r5, =gUnknown_02020630 - ldr r4, =gUnknown_020241E4 + ldr r5, =gSprites + ldr r4, =gBankSpriteIds movs r1, 0x3A ldrsh r0, [r6, r1] adds r0, r4 @@ -7531,7 +7531,7 @@ _08076130: ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix movs r1, 0x3A ldrsh r0, [r6, r1] adds r0, r4 @@ -7540,9 +7540,9 @@ _08076130: adds r0, r1 lsls r0, 2 adds r0, r5 - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r0, r6, 0 - bl RemoveObjectAndFreeResources + bl DestroySpriteAndFreeResources ldr r0, =gMain ldr r1, =0x00000439 adds r0, r1 @@ -7654,7 +7654,7 @@ sub_8076204: @ 8076204 strh r7, [r5, 0x32] adds r0, r5, 0 movs r1, 0x4 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim _08076266: ldrh r4, [r5, 0x2E] adds r0, r5, 0 @@ -7762,7 +7762,7 @@ _080762F8: movs r0, 0x3A ldrsh r4, [r5, r0] movs r0, 0x2 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 cmp r4, r0 @@ -7776,7 +7776,7 @@ _0807635A: str r0, [r5, 0x1C] adds r0, r5, 0 movs r1, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim _08076364: pop {r3} mov r8, r3 @@ -7835,7 +7835,7 @@ sub_8076398: @ 8076398 movs r0, 0x3A ldrsh r4, [r5, r0] movs r0, 0x3 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 cmp r4, r0 @@ -7936,10 +7936,10 @@ sub_8076438: @ 8076438 mov r1, r9 mov r2, r10 adds r3, r4, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites mov r8, r1 lsls r4, r0, 4 adds r4, r0 @@ -8037,7 +8037,7 @@ _0807655E: _08076560: adds r0, r6, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim ldrh r0, [r6, 0x20] lsls r0, 24 lsrs r0, 24 @@ -8060,7 +8060,7 @@ _08076560: strh r0, [r6, 0x30] ldr r0, =sub_80765E0 str r0, [r6, 0x1C] - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r4, r7, 4 adds r4, r7 lsls r4, 2 @@ -8074,9 +8074,9 @@ _08076560: strb r0, [r2] adds r0, r4, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim adds r0, r4, 0 - bl AnimateObject + bl AnimateSprite movs r0, 0x80 lsls r0, 5 strh r0, [r4, 0x30] @@ -8121,7 +8121,7 @@ sub_80765E0: @ 80765E0 orrs r0, r1 strb r0, [r2] _08076610: - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r2, r6, 4 adds r0, r2, r6 lsls r0, 2 @@ -8135,7 +8135,7 @@ _08076610: bge _08076634 adds r0, r5, 0 movs r1, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim movs r1, 0x1 mov r12, r1 _08076634: @@ -8178,7 +8178,7 @@ _08076668: ldrsh r0, [r4, r3] cmp r0, 0x7F bgt _080766AC - ldr r1, =gUnknown_08329F40 + ldr r1, =gSineTable lsls r0, r2, 24 lsrs r0, 23 adds r0, r1 @@ -8219,7 +8219,7 @@ _080766BA: beq _0807670E cmp r7, 0 beq _0807670E - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites mov r3, r8 adds r0, r3, r6 lsls r0, 2 @@ -8245,7 +8245,7 @@ _080766FC: bl sub_806ED40 _08076708: adds r0, r4, 0 - bl RemoveObjectAndFreeResources + bl DestroySpriteAndFreeResources _0807670E: pop {r3,r4} mov r8, r3 @@ -8297,10 +8297,10 @@ sub_807671C: @ 807671C adds r1, r6, 0 mov r2, r8 adds r3, r4, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites lsls r3, r0, 4 adds r3, r0 lsls r3, 2 @@ -8375,7 +8375,7 @@ _0807680E: _08076810: adds r0, r4, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim ldrh r0, [r4, 0x20] lsls r0, 24 lsrs r0, 24 @@ -8401,13 +8401,13 @@ _08076810: lsls r4, r7, 4 adds r4, r7 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 adds r0, r4, 0 movs r1, 0x2 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim adds r0, r4, 0 - bl AnimateObject + bl AnimateSprite strh r5, [r4, 0x30] b _08076870 .pool @@ -8434,12 +8434,12 @@ sub_807687C: @ 807687C cmp r0, 0xB bne _08076894 movs r0, 0x3C - bl audio_play + bl PlaySE _08076894: ldrh r1, [r5, 0x2E] lsls r1, 24 lsrs r1, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 @@ -8452,7 +8452,7 @@ _08076894: bge _080768D8 adds r0, r5, 0 movs r1, 0x2 - bl StartObjectImageAnim + bl StartSpriteAnim adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] @@ -8490,7 +8490,7 @@ sub_80768F0: @ 80768F0 ands r0, r1 cmp r0, 0 beq _08076904 - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r2, 0x1C] _08076904: pop {r0} @@ -8501,7 +8501,7 @@ _08076904: thumb_func_start obj_delete_and_free_associated_resources_ obj_delete_and_free_associated_resources_: @ 807690C push {lr} - bl RemoveObjectAndFreeResources + bl DestroySpriteAndFreeResources pop {r0} bx r0 thumb_func_end obj_delete_and_free_associated_resources_ @@ -8518,7 +8518,7 @@ sub_8076918: @ 8076918 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites adds r4, r0, r6 movs r1, 0 movs r0, 0x5 @@ -8530,7 +8530,7 @@ sub_8076918: @ 8076918 ldr r0, =sub_80769CC str r0, [r4, 0x1C] adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08076966 @@ -8559,7 +8559,7 @@ _08076966: ldr r1, [r1] bl _call_via_r1 adds r0, r5, 0 - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 @@ -8609,7 +8609,7 @@ sub_80769CC: @ 80769CC ldr r0, [r2, 0x24] cmp r0, 0 bne _080769EA - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r2, 0x1C] _080769EA: pop {r0} @@ -8628,7 +8628,7 @@ sub_80769F4: @ 80769F4 bl CreateInvisibleSpriteWithCallback lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -8655,7 +8655,7 @@ oamc_804BEB4: @ 8076A38 ldrh r1, [r3, 0x30] lsls r1, 24 lsrs r1, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 @@ -8676,7 +8676,7 @@ oamc_804BEB4: @ 8076A38 strh r2, [r1, 0x24] strh r2, [r1, 0x26] adds r0, r3, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _08076A70: pop {r0} bx r0 @@ -8692,7 +8692,7 @@ sub_8076A78: @ 8076A78 lsls r6, r4, 3 adds r5, r6, r0 ldrh r0, [r5, 0x6] - bl GetObjectTileRangeStartByTag + bl GetSpriteTileStartByTag lsls r0, 16 ldr r1, =0xffff0000 cmp r0, r1 @@ -8716,7 +8716,7 @@ _08076AB0: lsls r0, r4, 3 adds r0, r1 ldrh r0, [r0, 0x6] - bl GetObjectTileRangeStartByTag + bl GetSpriteTileStartByTag adds r1, r0, 0 lsls r1, 16 ldr r0, =gUnknown_08C02300 @@ -8740,11 +8740,11 @@ sub_8076AE8: @ 8076AE8 lsrs r4, 21 adds r0, r4, r0 ldrh r0, [r0, 0x6] - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag ldr r0, =gUnknown_0832C460 adds r4, r0 ldrh r0, [r4, 0x4] - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag pop {r4} pop {r0} bx r0 @@ -8757,11 +8757,11 @@ sub_8076B14: @ 8076B14 lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08076B40 - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -8771,7 +8771,7 @@ sub_8076B14: @ 8076B14 b _08076B4E .pool _08076B40: - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] diff --git a/asm/rom_80A5C6C.s b/asm/rom_80A5C6C.s index c6abfe2c47..aa31ce7f9e 100644 --- a/asm/rom_80A5C6C.s +++ b/asm/rom_80A5C6C.s @@ -40,7 +40,7 @@ _080A5C9C: _080A5CB0: ldr r4, =gUnknown_08525F58 adds r0, r5, 0 - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 22 ldr r1, =gBattleTypeFlags @@ -56,7 +56,7 @@ _080A5CB0: _080A5CD8: ldr r4, =gUnknown_08525F58 adds r0, r5, 0 - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 22 ldr r1, =gBattleTypeFlags @@ -90,7 +90,7 @@ _080A5D24: b _080A5D9A _080A5D28: adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080A5D60 @@ -102,7 +102,7 @@ _080A5D28: ldrh r0, [r1, 0x2] cmp r0, 0 bne _080A5D98 - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] @@ -120,7 +120,7 @@ _080A5D60: ldrh r0, [r1, 0x2] cmp r0, 0 bne _080A5D98 - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] @@ -164,7 +164,7 @@ sub_80A5DB8: @ 80A5DB8 lsls r1, 16 lsrs r5, r1, 16 adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080A5DDA @@ -203,7 +203,7 @@ _080A5E04: ldrh r0, [r0, 0x2] cmp r0, 0 bne _080A5E3C - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -293,7 +293,7 @@ _080A5EC8: ldrh r0, [r0, 0x2] cmp r0, 0 bne _080A5F04 - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -394,7 +394,7 @@ sub_80A5FA0: @ 80A5FA0 adds r7, r4, 0 movs r5, 0 adds r0, r6, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -445,7 +445,7 @@ sub_80A600C: @ 80A600C lsls r2, 24 lsrs r7, r2, 24 adds r0, r6, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080A6030 @@ -476,7 +476,7 @@ _080A603E: lsrs r4, r0, 16 _080A605C: adds r0, r6, 0 - bl battle_get_per_side_status + bl GetBankIdentity ldr r3, =gUnknown_08525F58 lsls r0, 24 lsrs r0, 22 @@ -494,7 +494,7 @@ _080A605C: cmp r7, 0 beq _080A609C adds r0, r6, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080A6096 @@ -605,7 +605,7 @@ sub_80A614C: @ 80A614C lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080A6170 @@ -650,7 +650,7 @@ sub_80A6190: @ 80A6190 cmp r0, 0 bne _080A6238 adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080A61E4 @@ -662,7 +662,7 @@ sub_80A6190: @ 80A6190 ldrh r0, [r1, 0x2] cmp r0, 0 bne _080A621C - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] @@ -680,7 +680,7 @@ _080A61E4: ldrh r0, [r1, 0x2] cmp r0, 0 bne _080A621C - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] @@ -699,7 +699,7 @@ _080A621C: ldrh r4, [r1, 0x2] _080A621E: adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080A6238 @@ -724,33 +724,33 @@ obj_id_for_side_relative_to_move: @ 80A6240 adds r1, r0, 0 cmp r0, 0 bne _080A6268 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] bl sub_80A6A90 lsls r0, 24 cmp r0, 0 beq _080A62B6 - ldr r1, =gUnknown_020241E4 + ldr r1, =gBankSpriteIds ldrb r0, [r4] b _080A62C6 .pool _080A6268: cmp r0, 0x1 bne _080A6288 - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] bl sub_80A6A90 lsls r0, 24 cmp r0, 0 beq _080A62B6 - ldr r1, =gUnknown_020241E4 + ldr r1, =gBankSpriteIds ldrb r0, [r4] b _080A62C6 .pool _080A6288: cmp r1, 0x2 bne _080A62A4 - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] movs r4, 0x2 eors r0, r4 @@ -761,7 +761,7 @@ _080A6288: b _080A62C0 .pool _080A62A4: - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] movs r4, 0x2 eors r0, r4 @@ -774,7 +774,7 @@ _080A62B6: b _080A62CA .pool _080A62C0: - ldr r1, =gUnknown_020241E4 + ldr r1, =gBankSpriteIds ldrb r0, [r5] eors r0, r4 _080A62C6: @@ -1242,7 +1242,7 @@ sub_80A65EC: @ 80A65EC ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x34] - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -1274,7 +1274,7 @@ sub_80A6630: @ 80A6630 ble _080A6674 subs r0, r1, 0x1 strh r0, [r3, 0x2E] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r4, 0x34 ldrsh r1, [r3, r4] lsls r0, r1, 4 @@ -1325,7 +1325,7 @@ sub_80A6680: @ 80A6680 ldrh r2, [r4, 0x36] adds r0, r2 strh r0, [r4, 0x36] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites movs r0, 0x38 ldrsh r2, [r4, r0] lsls r0, r2, 4 @@ -1419,7 +1419,7 @@ _080A6744: move_anim_8074EE0: @ 80A674C push {r4,lr} adds r4, r0, 0 - bl obj_free_rotscale_entry + bl FreeSpriteOamMatrix adds r0, r4, 0 bl move_anim_8072740 pop {r4} @@ -1439,7 +1439,7 @@ sub_80A6760: @ 80A6760 ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x34] - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -1547,7 +1547,7 @@ sub_80A6814: @ 80A6814 sub_80A6838: @ 80A6838 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -1575,13 +1575,13 @@ sub_80A6864: @ 80A6864 lsls r1, 16 lsrs r5, r1, 16 mov r8, r5 - ldr r7, =gUnknown_02038436 + ldr r7, =gAnimationBankAttacker ldrb r0, [r7] movs r1, 0 bl sub_80A5C6C lsls r0, 24 lsrs r6, r0, 24 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] movs r1, 0 bl sub_80A5C6C @@ -1596,7 +1596,7 @@ sub_80A6864: @ 80A6864 .pool _080A68A4: ldrb r0, [r7] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080A68BC @@ -1729,7 +1729,7 @@ sub_80A6980: @ 80A6980 lsls r1, 24 cmp r1, 0 bne _080A69A8 - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0 bl sub_80A60AC @@ -1743,7 +1743,7 @@ sub_80A6980: @ 80A6980 lsrs r0, 24 strh r0, [r5, 0x22] _080A69A8: - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs movs r0, 0 ldrsh r1, [r4, r0] adds r0, r5, 0 @@ -1765,7 +1765,7 @@ sub_80A69CC: @ 80A69CC lsls r1, 24 cmp r1, 0 bne _080A69F0 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0 bl sub_80A60AC @@ -1777,7 +1777,7 @@ sub_80A69CC: @ 80A69CC b _080A6A04 .pool _080A69F0: - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A60AC @@ -1791,7 +1791,7 @@ _080A6A04: lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs movs r0, 0 ldrsh r1, [r4, r0] adds r0, r5, 0 @@ -1806,41 +1806,41 @@ _080A6A04: .pool thumb_func_end sub_80A69CC - thumb_func_start battle_side_get_owner -battle_side_get_owner: @ 80A6A30 + thumb_func_start GetBankSide +GetBankSide: @ 80A6A30 lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02024076 + ldr r1, =gBanksBySide adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 bx lr .pool - thumb_func_end battle_side_get_owner + thumb_func_end GetBankSide - thumb_func_start battle_get_per_side_status -battle_get_per_side_status: @ 80A6A44 + thumb_func_start GetBankIdentity +GetBankIdentity: @ 80A6A44 lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02024076 + ldr r1, =gBanksBySide adds r0, r1 ldrb r0, [r0] bx lr .pool - thumb_func_end battle_get_per_side_status + thumb_func_end GetBankIdentity - thumb_func_start battle_get_side_with_given_state -battle_get_side_with_given_state: @ 80A6A54 + thumb_func_start GetBankByPlayerAI +GetBankByPlayerAI: @ 80A6A54 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 movs r1, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r2, [r0] cmp r1, r2 bcs _080A6A7E - ldr r4, =gUnknown_02024076 + ldr r4, =gBanksBySide ldrb r0, [r4] cmp r0, r3 beq _080A6A7E @@ -1860,7 +1860,7 @@ _080A6A7E: pop {r1} bx r1 .pool - thumb_func_end battle_get_side_with_given_state + thumb_func_end GetBankByPlayerAI thumb_func_start sub_80A6A90 sub_80A6A90: @ 80A6A90 @@ -1872,28 +1872,28 @@ sub_80A6A90: @ 80A6A90 lsls r0, 24 cmp r0, 0 beq _080A6ABC - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] cmp r0, r4 beq _080A6B0A - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] cmp r0, r4 beq _080A6B0A b _080A6B18 .pool _080A6ABC: - ldr r0, =gUnknown_02024076 + ldr r0, =gBanksBySide adds r0, r4, r0 ldrb r0, [r0] cmp r0, 0xFF beq _080A6B18 adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080A6AF0 - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -1903,7 +1903,7 @@ _080A6ABC: b _080A6AFE .pool _080A6AF0: - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] @@ -2061,9 +2061,9 @@ sub_80A6BFC: @ 80A6BFC b _080A6C60 .pool _080A6C30: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1 @@ -2848,7 +2848,7 @@ obj_id_set_rotscale: @ 80A71B4 orrs r1, r0 str r1, [sp] _080A71F0: - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 @@ -2862,7 +2862,7 @@ _080A71F0: movs r2, 0x1 movs r3, 0x2 bl ObjAffineSet - ldr r0, =gUnknown_02021BC0 + ldr r0, =gOamMatrices lsls r4, 3 adds r4, r0 ldrh r0, [r5] @@ -2887,7 +2887,7 @@ sub_80A7238: @ 80A7238 lsls r0, 24 cmp r0, 0 beq _080A7268 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 @@ -2921,7 +2921,7 @@ sub_80A7270: @ 80A7270 lsls r1, 24 lsrs r1, 24 mov r8, r1 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r6, 4 adds r0, r6 lsls r0, 2 @@ -2947,7 +2947,7 @@ _080A72A6: ands r0, r1 strb r0, [r2] _080A72B4: - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r4, r6, 4 adds r0, r4, r6 lsls r0, 2 @@ -2994,7 +2994,7 @@ _080A72B4: orrs r0, r1 strb r0, [r5, 0x3] _080A7312: - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r4, r6 lsls r0, 2 adds r0, r1 @@ -3007,7 +3007,7 @@ _080A7312: lsrs r2, 6 lsls r3, 30 lsrs r3, 30 - bl CalcVecFromObjectCenterToObjectUpperLeft + bl CalcCenterToCornerVec pop {r3} mov r8, r3 pop {r4-r7} @@ -3028,7 +3028,7 @@ sub_80A7344: @ 80A7344 adds r1, r2, 0 movs r3, 0 bl obj_id_set_rotscale - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 @@ -3055,7 +3055,7 @@ sub_80A7344: @ 80A7344 lsrs r2, 6 lsls r3, 30 lsrs r3, 30 - bl CalcVecFromObjectCenterToObjectUpperLeft + bl CalcCenterToCornerVec pop {r4} pop {r0} bx r0 @@ -3067,7 +3067,7 @@ sub_80A73A0: @ 80A73A0 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -3075,7 +3075,7 @@ sub_80A73A0: @ 80A73A0 ldrb r0, [r2, 0x3] lsls r0, 26 lsrs r0, 27 - ldr r1, =gUnknown_02021BC0 + ldr r1, =gOamMatrices lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x4] @@ -3134,7 +3134,7 @@ sub_80A73E0: @ 80A73E0 lsls r3, 30 lsrs r3, 30 adds r0, r4, 0 - bl CalcVecFromObjectCenterToObjectUpperLeft + bl CalcCenterToCornerVec _080A742E: ldr r6, =0xffff0000 lsls r0, r7, 16 @@ -3168,7 +3168,7 @@ _080A745C: movs r2, 0x1 movs r3, 0x2 bl ObjAffineSet - ldr r0, =gUnknown_02021BC0 + ldr r0, =gOamMatrices lsls r4, 3 adds r4, r0 ldrh r0, [r5] @@ -3215,7 +3215,7 @@ sub_80A749C: @ 80A749C lsls r3, 30 lsrs r3, 30 adds r0, r4, 0 - bl CalcVecFromObjectCenterToObjectUpperLeft + bl CalcCenterToCornerVec add sp, 0x4 pop {r4} pop {r0} @@ -3372,7 +3372,7 @@ _080A75F6: _080A7602: cmp r7, 0 beq _080A7614 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] adds r1, r0, 0 adds r1, 0x10 @@ -3383,7 +3383,7 @@ _080A7614: mov r0, r8 cmp r0, 0 beq _080A7628 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] adds r1, r0, 0 adds r1, 0x10 @@ -3394,7 +3394,7 @@ _080A7628: mov r0, r9 cmp r0, 0 beq _080A764E - ldr r6, =gUnknown_02038436 + ldr r6, =gAnimationBankAttacker ldrb r0, [r6] movs r5, 0x2 eors r0, r5 @@ -3413,7 +3413,7 @@ _080A764E: mov r0, r10 cmp r0, 0 beq _080A7674 - ldr r6, =gUnknown_02038437 + ldr r6, =gAnimationBankTarget ldrb r0, [r6] movs r5, 0x2 eors r0, r5 @@ -3496,7 +3496,7 @@ _080A76F2: cmp r5, 0 beq _080A771A movs r0, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 bl b_side_obj__get_some_boolean @@ -3504,7 +3504,7 @@ _080A76F2: cmp r0, 0 beq _080A771A movs r0, 0 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 adds r0, 0x10 @@ -3514,7 +3514,7 @@ _080A771A: cmp r6, 0 beq _080A7746 movs r0, 0x2 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 bl b_side_obj__get_some_boolean @@ -3522,7 +3522,7 @@ _080A771A: cmp r0, 0 beq _080A7746 movs r0, 0x2 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 @@ -3534,7 +3534,7 @@ _080A7746: cmp r7, 0 beq _080A7772 movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 bl b_side_obj__get_some_boolean @@ -3542,7 +3542,7 @@ _080A7746: cmp r0, 0 beq _080A7772 movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 @@ -3555,7 +3555,7 @@ _080A7772: cmp r0, 0 beq _080A77A0 movs r0, 0x3 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 bl b_side_obj__get_some_boolean @@ -3563,7 +3563,7 @@ _080A7772: cmp r0, 0 beq _080A77A0 movs r0, 0x3 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 @@ -3592,7 +3592,7 @@ sub_80A77B4: @ 80A77B4 push {lr} lsls r0, 24 lsrs r0, 24 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r0, 24 pop {r1} @@ -3607,7 +3607,7 @@ sub_80A77C8: @ 80A77C8 ldrsh r0, [r4, r1] cmp r0, 0 bne _080A7806 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs movs r3, 0x6 ldrsh r0, [r2, r3] movs r1, 0 @@ -3651,7 +3651,7 @@ _080A781A: sub_80A7820: @ 80A7820 push {r4-r7,lr} adds r5, r0, 0 - ldr r6, =gUnknown_0203841E + ldr r6, =gBattleAnimArgs movs r1, 0xA ldrsh r0, [r6, r1] movs r1, 0xFF @@ -3670,9 +3670,9 @@ _080A7838: _080A7842: adds r0, r5, 0 bl sub_80A69CC - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080A785C @@ -3682,7 +3682,7 @@ _080A7842: _080A785C: ldrh r0, [r6, 0x8] strh r0, [r5, 0x2E] - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -3716,21 +3716,21 @@ sub_80A78AC: @ 80A78AC adds r6, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080A78CC - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080A78CC: - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -3779,7 +3779,7 @@ _080A7930: sub_80A7938: @ 80A7938 push {r4-r7,lr} adds r5, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r2, 0xC ldrsh r1, [r0, r2] cmp r1, 0 @@ -3799,23 +3799,23 @@ _080A7954: adds r0, r5, 0 adds r1, r4, 0 bl sub_80A69CC - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _080A7976 .pool _080A796C: adds r0, r5, 0 adds r1, r4, 0 bl sub_80A6980 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _080A7976: ldrb r6, [r0] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080A798E - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] @@ -3823,7 +3823,7 @@ _080A798E: adds r0, r5, 0 adds r1, r4, 0 bl sub_80A6980 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrh r0, [r4, 0x8] strh r0, [r5, 0x2E] adds r0, r6, 0 @@ -3864,7 +3864,7 @@ duplicate_obj_of_side_rel2move_in_transparent_mode: @ 80A79E8 cmp r1, 0xFF beq _080A7A52 movs r6, 0 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r1, r0, 2 @@ -3924,7 +3924,7 @@ obj_delete_but_dont_free_vram: @ 80A7A5C movs r2, 0x40 orrs r1, r2 strb r1, [r3] - bl RemoveObjectAndFreeTiles + bl DestroySprite pop {r0} bx r0 thumb_func_end obj_delete_but_dont_free_vram @@ -3936,7 +3936,7 @@ sub_80A7A74: @ 80A7A74 lsrs r5, r0, 24 movs r6, 0 movs r3, 0 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs movs r0, 0x4 ldrsh r1, [r2, r0] movs r4, 0 @@ -4082,7 +4082,7 @@ sub_80A7B98: @ 80A7B98 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrb r0, [r0] bl obj_id_for_side_relative_to_move lsls r0, 24 @@ -4099,7 +4099,7 @@ _080A7BBC: adds r0, r4 lsls r0, 3 adds r0, r1 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r3, 4 adds r1, r3 lsls r1, 2 @@ -4121,7 +4121,7 @@ _080A7BE2: thumb_func_start sub_80A7BF4 sub_80A7BF4: @ 80A7BF4 - ldr r3, =gUnknown_0203841E + ldr r3, =gBattleAnimArgs ldrh r1, [r3, 0x2] movs r2, 0 strh r1, [r0, 0xA] @@ -4222,9 +4222,9 @@ sub_80A7CB4: @ 80A7CB4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0] - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xFF @@ -4413,7 +4413,7 @@ _080A7E34: strh r0, [r4, 0x16] b _080A7E62 _080A7E3C: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -4451,7 +4451,7 @@ sub_80A7E6C: @ 80A7E6C lsrs r0, 15 movs r1, 0x40 subs r5, r1, r0 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 @@ -4460,7 +4460,7 @@ sub_80A7E6C: @ 80A7E6C lsls r1, 26 lsrs r1, 27 lsls r0, r5, 8 - ldr r2, =gUnknown_02021BC0 + ldr r2, =gOamMatrices lsls r1, 3 adds r1, r2 movs r2, 0x6 @@ -4495,7 +4495,7 @@ sub_80A7EC0: @ 80A7EC0 lsrs r0, 15 movs r1, 0x40 subs r5, r1, r0 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 @@ -4504,7 +4504,7 @@ sub_80A7EC0: @ 80A7EC0 lsls r1, 26 lsrs r1, 27 lsls r0, r5, 8 - ldr r2, =gUnknown_02021BC0 + ldr r2, =gOamMatrices lsls r1, 3 adds r1, r2 movs r2, 0x6 @@ -4530,7 +4530,7 @@ sub_80A7F18: @ 80A7F18 push {r4-r7,lr} lsls r0, 24 lsrs r2, r0, 24 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -4539,7 +4539,7 @@ sub_80A7F18: @ 80A7F18 lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 - ldr r1, =gUnknown_020241E4 + ldr r1, =gBankSpriteIds ldr r7, =0x00000181 ldr r0, =gUnknown_020244E4 adds r6, r5, r0 @@ -4567,7 +4567,7 @@ _080A7F42: _080A7F78: lsls r0, r4, 24 lsrs r0, 24 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080A7FD8 @@ -4579,7 +4579,7 @@ _080A7F78: ldrh r0, [r1, 0x2] cmp r0, 0 bne _080A7FC0 - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -4614,7 +4614,7 @@ _080A7FD8: ldrh r0, [r1, 0x2] cmp r0, 0 bne _080A8010 - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -4785,7 +4785,7 @@ _080A80FA: bl sub_80A7E6C b _080A8134 _080A8124: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -4807,7 +4807,7 @@ sub_80A8140: @ 80A8140 push {lr} lsls r0, 24 lsrs r2, r0, 24 - ldr r0, =gUnknown_0203841A + ldr r0, =gHappinessMoveAnim ldrb r0, [r0] movs r1, 0 cmp r0, 0x1E @@ -4820,7 +4820,7 @@ sub_80A8140: @ 80A8140 bhi _080A815E movs r1, 0x2 _080A815E: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs strh r1, [r0, 0xE] adds r0, r2, 0 bl move_anim_task_del @@ -4837,14 +4837,14 @@ sub_80A8174: @ 80A8174 lsls r0, 24 lsrs r4, r0, 24 adds r7, r4, 0 - ldr r6, =gUnknown_02038437 + ldr r6, =gAnimationBankTarget ldrb r0, [r6] bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080A81B4 - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 + ldr r2, =gSprites + ldr r1, =gBankSpriteIds ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] @@ -4863,15 +4863,15 @@ sub_80A8174: @ 80A8174 orrs r0, r2 strb r0, [r1, 0x5] _080A81B4: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker mov r8, r0 ldrb r0, [r0] bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080A81EC - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 + ldr r2, =gSprites + ldr r1, =gBankSpriteIds mov r3, r8 ldrb r0, [r3] adds r0, r1 @@ -4898,8 +4898,8 @@ _080A81EC: lsls r0, 24 cmp r0, 0 beq _080A8224 - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 + ldr r2, =gSprites + ldr r1, =gBankSpriteIds ldrb r0, [r6] eors r0, r5 adds r0, r1 @@ -4926,8 +4926,8 @@ _080A8224: lsls r0, 24 cmp r0, 0 beq _080A825C - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 + ldr r2, =gSprites + ldr r1, =gBankSpriteIds mov r3, r8 ldrb r0, [r3] eors r0, r5 @@ -4959,11 +4959,11 @@ _080A825C: sub_80A8278: @ 80A8278 push {r4-r6,lr} movs r5, 0 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r5, r0 bge _080A82D2 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites _080A8286: lsls r0, r5, 24 lsrs r4, r0, 24 @@ -4974,7 +4974,7 @@ _080A8286: beq _080A82C8 adds r0, r4, 0 bl sub_80A82E4 - ldr r3, =gUnknown_020241E4 + ldr r3, =gBankSpriteIds adds r3, r5, r3 ldrb r2, [r3] lsls r1, r2, 4 @@ -4998,7 +4998,7 @@ _080A8286: strb r2, [r0, 0x5] _080A82C8: adds r5, 0x1 - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r5, r0 blt _080A8286 @@ -5027,7 +5027,7 @@ _080A82FC: b _080A8320 _080A8300: adds r0, r4, 0 - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 movs r1, 0x1E @@ -5053,7 +5053,7 @@ sub_80A8328: @ 80A8328 push {r4,lr} lsls r0, 24 lsrs r0, 24 - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r4, r0, 24 bl sub_80A4DF0 @@ -5083,8 +5083,8 @@ _080A835C: bx r1 thumb_func_end sub_80A8328 - thumb_func_start battle_get_per_side_status_permutated -battle_get_per_side_status_permutated: @ 80A8364 + thumb_func_start GetBankIdentity_permutated +GetBankIdentity_permutated: @ 80A8364 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 @@ -5093,7 +5093,7 @@ battle_get_per_side_status_permutated: @ 80A8364 cmp r0, 0 bne _080A838A adds r0, r4, 0 - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -5109,7 +5109,7 @@ _080A838C: pop {r4} pop {r1} bx r1 - thumb_func_end battle_get_per_side_status_permutated + thumb_func_end GetBankIdentity_permutated thumb_func_start sub_80A8394 sub_80A8394: @ 80A8394 @@ -5142,7 +5142,7 @@ sub_80A8394: @ 80A8394 lsls r0, r7, 3 ldr r1, =gUnknown_08525FC0 adds r0, r1 - bl LoadObjectPic + bl LoadSpriteSheet lsls r0, 16 lsrs r0, 16 str r0, [sp, 0xC] @@ -5152,7 +5152,7 @@ sub_80A8394: @ 80A8394 lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x2] - bl AllocObjectPalette + bl AllocSpritePalette lsls r0, 24 lsrs r5, r0, 24 ldr r4, =gUnknown_020244D4 @@ -5236,7 +5236,7 @@ _080A8488: str r2, [sp] adds r2, r6, 0 mov r3, r8 - bl DecompressMonPic_2 + bl LoadSpecialPokePic_2 b _080A8540 .pool _080A84B0: @@ -5287,7 +5287,7 @@ _080A850A: str r2, [sp] adds r2, r6, 0 mov r3, r8 - bl DecompressMonPicWithoutDuplicatingDeoxysTiles + bl LoadSpecialPokePic_DontHandleDeoxys b _080A8540 .pool _080A8524: @@ -5303,7 +5303,7 @@ _080A8524: str r2, [sp] adds r2, r6, 0 mov r3, r8 - bl DecompressMonPic_2 + bl LoadSpecialPokePic_2 _080A8540: ldr r5, =gUnknown_020244D4 ldr r0, [r5] @@ -5360,14 +5360,14 @@ _080A85B2: lsls r2, 16 asrs r2, 16 ldr r3, [sp, 0x8] - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r4, r0, 24 bl sub_80A4DF0 lsls r0, 24 cmp r0, 0 beq _080A85EE - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 @@ -5378,7 +5378,7 @@ _080A85B2: str r2, [r1] adds r0, r3 movs r1, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim _080A85EE: adds r0, r4, 0 add sp, 0x10 @@ -5395,7 +5395,7 @@ _080A85EE: thumb_func_start sub_80A8610 sub_80A8610: @ 80A8610 push {lr} - bl RemoveObjectAndFreeResources + bl DestroySpriteAndFreeResources pop {r0} bx r0 thumb_func_end sub_80A8610 @@ -5486,7 +5486,7 @@ _080A86AC: .pool _080A86C4: mov r0, r8 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080A8790 @@ -5499,7 +5499,7 @@ _080A86C4: ldrh r0, [r1, 0x2] cmp r0, 0 bne _080A871C - ldr r0, =gUnknown_0202406E + ldr r0, =gBattlePartyID mov r1, r8 lsls r4, r1, 1 adds r4, r0 @@ -5589,7 +5589,7 @@ _080A8790: ldrh r0, [r1, 0x2] cmp r0, 0 bne _080A87DC - ldr r0, =gUnknown_0202406E + ldr r0, =gBattlePartyID mov r1, r8 lsls r4, r1, 1 adds r4, r0 @@ -5868,7 +5868,7 @@ sub_80A89C8: @ 80A89C8 sub sp, 0x4 lsls r6, r1, 24 lsrs r6, 24 - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy mov r10, r0 bl CreateInvisibleSpriteWithCallback mov r8, r0 @@ -5876,7 +5876,7 @@ sub_80A89C8: @ 80A89C8 lsls r0, 24 lsrs r0, 24 mov r8, r0 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r9, r0 mov r0, r8 lsls r3, r0, 4 @@ -5941,13 +5941,13 @@ sub_80A8A6C: @ 80A8A6C push {r4,lr} adds r4, r0, 0 bl sub_80A6838 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080A8AAC - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 @@ -5965,7 +5965,7 @@ sub_80A8A6C: @ 80A8A6C b _080A8AB6 .pool _080A8AAC: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -5998,13 +5998,13 @@ _080A8AB6: sub_80A8AEC: @ 80A8AEC push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080A8B1C - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 @@ -6017,7 +6017,7 @@ sub_80A8AEC: @ 80A8AEC b _080A8B26 .pool _080A8B1C: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -6037,7 +6037,7 @@ _080A8B26: strh r0, [r4, 0x38] ldrb r1, [r1, 0xC] adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r1, =move_anim_8074EE0 adds r0, r4, 0 bl oamt_set_x3A_32 @@ -6054,13 +6054,13 @@ sub_80A8B64: @ 80A8B64 push {r4,lr} adds r4, r0, 0 bl sub_80A6838 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080A8B90 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r4, 0x20] ldrh r2, [r0] subs r1, r2 @@ -6068,7 +6068,7 @@ sub_80A8B64: @ 80A8B64 b _080A8B9C .pool _080A8B90: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -6106,9 +6106,9 @@ sub_80A8BC4: @ 80A8BC4 lsrs r0, 24 movs r6, 0 strh r0, [r5, 0x8] - ldr r7, =gUnknown_02038436 + ldr r7, =gAnimationBankAttacker ldrb r0, [r7] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r1, 0x8 cmp r0, 0 @@ -6120,7 +6120,7 @@ _080A8BF8: strh r1, [r5, 0xA] strh r6, [r5, 0xC] strh r6, [r5, 0xE] - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites movs r0, 0x8 ldrsh r1, [r5, r0] lsls r0, r1, 4 @@ -6132,7 +6132,7 @@ _080A8BF8: subs r1, r2 strh r1, [r0, 0x24] ldr r0, =0x00002771 - bl AllocObjectPalette + bl AllocSpritePalette lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x10] @@ -6177,7 +6177,7 @@ _080A8C6A: adds r1, r2 ldr r2, =0x04000008 bl CpuSet - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrb r2, [r0, 0x2] ldrh r3, [r0] adds r0, r6, 0 @@ -6219,7 +6219,7 @@ _080A8CDA: adds r0, r4, 0 adds r1, r5, 0 bl sub_80A8D78 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -6244,7 +6244,7 @@ _080A8D10: adds r0, r4, 0 adds r1, r5, 0 bl sub_80A8D78 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -6281,7 +6281,7 @@ _080A8D58: cmp r0, 0 bne _080A8D6C ldr r0, =0x00002771 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag adds r0, r5, 0 bl move_anim_task_del _080A8D6C: @@ -6307,7 +6307,7 @@ sub_80A8D78: @ 80A8D78 asrs r0, 16 cmp r0, 0 blt _080A8DE8 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites lsls r4, r0, 4 adds r4, r0 lsls r4, 2 @@ -6389,7 +6389,7 @@ _080A8E26: sub_80A8E30: @ 80A8E30 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -6403,7 +6403,7 @@ sub_80A8E30: @ 80A8E30 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080A8E68 @@ -6476,7 +6476,7 @@ _080A8EDC: sub_80A8EE4: @ 80A8EE4 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs ldrh r0, [r5, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r5, 0x8] @@ -6487,9 +6487,9 @@ sub_80A8EE4: @ 80A8EE4 ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x36] - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080A8F24 diff --git a/asm/rom_80AEFFC.s b/asm/rom_80AEFFC.s index 8e7538a91a..8d28c089de 100644 --- a/asm/rom_80AEFFC.s +++ b/asm/rom_80AEFFC.s @@ -508,7 +508,7 @@ sub_80AF3E8: @ 80AF3E8 bl sub_8085784 bl pal_fill_for_maplights movs r0, 0x2E - bl audio_play + bl PlaySE ldr r0, =task0A_mpl_807E31C movs r1, 0xA bl CreateTask @@ -524,7 +524,7 @@ sub_80AF40C: @ 80AF40C bl sub_8085784 bl pal_fill_for_maplights movs r0, 0x2E - bl audio_play + bl PlaySE ldr r0, =task_map_chg_seq_0807E2CC movs r1, 0xA bl CreateTask @@ -913,7 +913,7 @@ sub_80AF734: @ 80AF734 bl sub_80AF0B4 bl play_some_sound movs r0, 0x9 - bl audio_play + bl PlaySE ldr r0, =gUnknown_03005DAC ldr r1, =mapldr_default str r1, [r0] @@ -1032,7 +1032,7 @@ sub_80AF848: @ 80AF848 bl music_something bl sub_80AF0B4 movs r0, 0x2D - bl audio_play + bl PlaySE ldr r0, =sub_80AFA0C movs r1, 0xA bl CreateTask @@ -1054,7 +1054,7 @@ sub_80AF87C: @ 80AF87C bl music_something bl sub_80AF0B4 movs r0, 0x2D - bl audio_play + bl PlaySE ldr r0, =sub_80AFA0C movs r1, 0xA bl CreateTask @@ -1142,7 +1142,7 @@ sub_80AF948: @ 80AF948 bl music_something bl sub_80AF0B4 movs r0, 0x9 - bl audio_play + bl PlaySE ldr r0, =sub_80AF8E0 movs r1, 0xA bl CreateTask @@ -1182,7 +1182,7 @@ _080AF99A: bl fade_screen bl music_something movs r0, 0x9 - bl audio_play + bl PlaySE b _080AF9C8 _080AF9B2: bl sub_80AF710 @@ -1334,7 +1334,7 @@ _080AFAD4: bl cur_mapdata_get_door_sound_at lsls r0, 16 lsrs r0, 16 - bl audio_play + bl PlaySE movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0 @@ -1516,7 +1516,7 @@ sub_80AFC60: @ 80AFC60 bl sub_80AF0B4 bl play_some_sound movs r0, 0x9 - bl audio_play + bl PlaySE ldr r0, =gUnknown_03005DAC ldr r1, =sub_80AF3C8 str r1, [r0] @@ -2225,7 +2225,7 @@ _080B01EE: bl player_bitmagic bl script_env_2_enable movs r0, 0x2D - bl audio_play + bl PlaySE bl sub_808D1C8 b _080B0222 _080B0202: @@ -2613,7 +2613,7 @@ sub_80B0534: @ 80B0534 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r1, r0 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0 bne _080B0568 diff --git a/asm/rom_80C6FA0.s b/asm/rom_80C6FA0.s index 519a8ddcfa..440b576d27 100644 --- a/asm/rom_80C6FA0.s +++ b/asm/rom_80C6FA0.s @@ -155,7 +155,7 @@ _080C7092: thumb_func_start sub_80C70AC sub_80C70AC: @ 80C70AC push {lr} - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrb r0, [r0] bl sub_80C7050 lsls r0, 24 @@ -991,8 +991,8 @@ _080C7764: bx r1 thumb_func_end sub_80C76A4 - thumb_func_start sub_80C7770 -sub_80C7770: @ 80C7770 + thumb_func_start ResetPokemonStorageSystem +ResetPokemonStorageSystem: @ 80C7770 push {r4-r6,lr} movs r0, 0 bl sub_80D1D18 @@ -1048,7 +1048,7 @@ _080C77C2: pop {r0} bx r0 .pool - thumb_func_end sub_80C7770 + thumb_func_end ResetPokemonStorageSystem thumb_func_start sub_80C77E8 sub_80C77E8: @ 80C77E8 @@ -1096,10 +1096,10 @@ sub_80C77E8: @ 80C77E8 cmp r0, 0 beq _080C7846 adds r0, r4, 0 - bl LoadTaggedObjectPalette + bl LoadSpritePalette _080C7846: mov r0, sp - bl LoadObjectPics + bl LoadSpriteSheets ldr r0, =gUnknown_02039D04 str r5, [r0] movs r1, 0x90 @@ -1141,21 +1141,21 @@ sub_80C7890: @ 80C7890 adds r2, 0x6 adds r0, r1, r2 ldrh r0, [r0] - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag _080C78AC: ldr r0, [r5] movs r4, 0x90 lsls r4, 2 adds r0, r4 ldrh r0, [r0] - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag ldr r0, [r5] adds r0, r4 ldrh r0, [r0] adds r0, 0x1 lsls r0, 16 lsrs r0, 16 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag pop {r4,r5} pop {r0} bx r0 @@ -1190,7 +1190,7 @@ sub_80C78F0: @ 80C78F0 cmp r0, 0 beq _080C790C movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0xC9 b _080C7954 .pool @@ -1200,7 +1200,7 @@ _080C790C: cmp r0, 0 beq _080C792C movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =gUnknown_02039D04 ldr r0, [r0] movs r1, 0x91 @@ -1215,7 +1215,7 @@ _080C792C: cmp r0, 0 beq _080C7940 movs r0, 0x5 - bl audio_play + bl PlaySE bl sub_80C7BB4 b _080C7952 _080C7940: @@ -1224,7 +1224,7 @@ _080C7940: cmp r0, 0 beq _080C7952 movs r0, 0x5 - bl audio_play + bl PlaySE bl sub_80C7B80 _080C7952: movs r0, 0xC8 @@ -1264,12 +1264,12 @@ sub_80C7958: @ 80C7958 adds r0, 0x1E strh r2, [r0] str r4, [sp, 0x20] - ldr r0, =gDummyObjectImageAnimTable + ldr r0, =gDummySpriteAnimTable str r0, [sp, 0x24] str r2, [sp, 0x28] - ldr r0, =gDummyObjectRotScalAnimTable + ldr r0, =gDummySpriteAffineAnimTable str r0, [sp, 0x2C] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [sp, 0x30] add r0, sp, 0x4 movs r2, 0x18 @@ -1295,14 +1295,14 @@ sub_80C7958: @ 80C7958 movs r1, 0xA0 movs r2, 0x60 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 ldr r3, [r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 str r0, [r3] ldrb r2, [r4, 0x1] @@ -1333,7 +1333,7 @@ _080C7A10: add r0, sp, 0x4 movs r1, 0x7C movs r2, 0x50 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 ldr r2, [r6] @@ -1343,7 +1343,7 @@ _080C7A10: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r1, r0, r1 str r1, [r2] movs r5, 0 @@ -1380,7 +1380,7 @@ _080C7A6E: ldr r0, [r0] lsls r1, r5, 24 lsrs r1, 24 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 @@ -1447,7 +1447,7 @@ sub_80C7B14: @ 80C7B14 ldr r0, [r0] cmp r0, 0 beq _080C7B2A - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r1, [r4] movs r0, 0 str r0, [r1] @@ -1462,7 +1462,7 @@ _080C7B2E: ldr r0, [r0] cmp r0, 0 beq _080C7B4A - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, [r6] adds r0, 0x4 adds r0, r4 @@ -1484,7 +1484,7 @@ _080C7B56: ldr r0, [r0] cmp r0, 0 beq _080C7B6A - bl RemoveObjectAndFreeTiles + bl DestroySprite _080C7B6A: adds r0, r5, 0x1 lsls r0, 16 @@ -1644,7 +1644,7 @@ sub_80C7BE4: @ 80C7BE4 lsls r1, 2 adds r0, r1 ldrh r0, [r0] - bl GetObjectTileRangeStartByTag + bl GetSpriteTileStartByTag adds r1, r0, 0 lsls r1, 16 lsrs r1, 11 @@ -1700,8 +1700,8 @@ _080C7D24: thumb_func_start sub_80C7D28 sub_80C7D28: @ 80C7D28 push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl sub_80D2AA4 bl TransferPlttBuffer ldr r0, =gUnknown_02039D08 @@ -1724,8 +1724,8 @@ c2_Box: @ 80C7D54 bl do_scheduled_bg_tilemap_copies_to_vram bl sub_80CA028 bl sub_80CAA14 - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer pop {r0} bx r0 thumb_func_end c2_Box @@ -1850,11 +1850,11 @@ sub_80C7E98: @ 80C7E98 push {r4,lr} sub sp, 0x4 bl ResetPaletteFade - bl ResetAllObjectData - bl FreeAllObjectTiles - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeSpriteTileRanges + bl FreeAllSpritePalettes bl ClearDma3Requests - ldr r1, =gUnknown_02021B3A + ldr r1, =gReservedSpriteTileCount movs r2, 0xA0 lsls r2, 2 adds r0, r2, 0 @@ -2189,7 +2189,7 @@ sub_80C81AC: @ 80C81AC .pool _080C81C4: movs r0, 0x2 - bl audio_play + bl PlaySE movs r0, 0x14 movs r1, 0 movs r2, 0x1 @@ -2374,7 +2374,7 @@ _080C831C: .4byte _080C85F8 _080C8384: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =gUnknown_02039D08 ldr r1, [r0] movs r0, 0x1 @@ -2446,7 +2446,7 @@ _080C8420: .pool _080C842C: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =box_related bl add_to_c3_somehow b _080C879E @@ -2458,7 +2458,7 @@ _080C8440: .pool _080C844C: movs r0, 0x5 - bl audio_play + bl PlaySE bl get_preferred_box ldr r4, =gUnknown_02039D08 ldr r1, [r4] @@ -2482,7 +2482,7 @@ _080C846E: .pool _080C8484: movs r0, 0x5 - bl audio_play + bl PlaySE bl get_preferred_box ldr r4, =gUnknown_02039D08 ldr r1, [r4] @@ -2532,7 +2532,7 @@ _080C84E6: .pool _080C84F8: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =sub_80C8D78 bl add_to_c3_somehow b _080C879E @@ -2543,7 +2543,7 @@ _080C850C: cmp r0, 0 bne _080C8528 movs r0, 0x5 - bl audio_play + bl PlaySE b _080C872C _080C851E: bl sub_80CEA6C @@ -2559,49 +2559,49 @@ _080C8528: .pool _080C8538: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =c3_0808DC50 bl add_to_c3_somehow b _080C879E .pool _080C854C: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =sub_80C8C90 bl add_to_c3_somehow b _080C879E .pool _080C8560: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =sub_80C8BEC bl add_to_c3_somehow b _080C879E .pool _080C8574: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =sub_80C9128 bl add_to_c3_somehow b _080C879E .pool _080C8588: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =sub_80C91DC bl add_to_c3_somehow b _080C879E .pool _080C859C: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =sub_80C93B0 bl add_to_c3_somehow b _080C879E .pool _080C85B0: movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0 b _080C8600 _080C85BA: @@ -2615,7 +2615,7 @@ _080C85BA: .pool _080C85D0: movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0x2 b _080C85E6 _080C85DA: @@ -2623,7 +2623,7 @@ _080C85DA: b _080C8600 _080C85DE: movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0x4 _080C85E6: bl sub_80D01D0 @@ -2635,7 +2635,7 @@ _080C85E6: .pool _080C85F8: movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0x5 _080C8600: bl sub_80D01D0 @@ -2647,7 +2647,7 @@ _080C8600: .pool _080C8614: movs r0, 0x20 - bl audio_play + bl PlaySE b _080C879E _080C861C: bl sub_80CD554 @@ -2729,12 +2729,12 @@ _080C86C8: .pool _080C86D8: movs r0, 0x20 - bl audio_play + bl PlaySE movs r0, 0xD b _080C86EA _080C86E2: movs r0, 0x20 - bl audio_play + bl PlaySE movs r0, 0x16 _080C86EA: bl sub_80CAC58 @@ -2875,7 +2875,7 @@ _080C8804: b _080C8856 _080C880A: movs r0, 0x5 - bl audio_play + bl PlaySE bl sub_80CA888 b _080C882C _080C8816: @@ -2948,7 +2948,7 @@ _080C88A0: b _080C8B82 _080C88AC: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r4, =gUnknown_02039D08 ldr r0, [r4] ldrb r0, [r0, 0x1] @@ -3046,7 +3046,7 @@ _080C899C: cmp r0, 0 bne _080C8A52 movs r0, 0x5 - bl audio_play + bl PlaySE bl sub_80CADC4 ldr r0, =sub_80C8B90 bl add_to_c3_somehow @@ -3054,7 +3054,7 @@ _080C899C: .pool _080C89BC: movs r0, 0x5 - bl audio_play + bl PlaySE bl sub_80CADC4 ldr r0, =sub_80C8BEC bl add_to_c3_somehow @@ -3066,7 +3066,7 @@ _080C89D4: cmp r0, 0 beq _080C8A52 movs r0, 0x5 - bl audio_play + bl PlaySE bl sub_80CADC4 ldr r0, =c3_0808DC50 bl add_to_c3_somehow @@ -3074,7 +3074,7 @@ _080C89D4: .pool _080C89F4: movs r0, 0x5 - bl audio_play + bl PlaySE bl sub_80CADC4 ldr r0, =sub_80C8C90 bl add_to_c3_somehow @@ -3095,7 +3095,7 @@ _080C8A0C: cmp r0, 0 bne _080C8A8C movs r0, 0x5 - bl audio_play + bl PlaySE bl sub_80CADC4 ldr r0, =sub_80C8D78 bl add_to_c3_somehow @@ -3141,35 +3141,35 @@ _080C8A8C: .pool _080C8A98: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =sub_80C8EB4 bl add_to_c3_somehow b _080C8B82 .pool _080C8AAC: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =sub_80C9B28 bl add_to_c3_somehow b _080C8B82 .pool _080C8AC0: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =sub_80C90A4 bl add_to_c3_somehow b _080C8B82 .pool _080C8AD4: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =sub_80C9128 bl add_to_c3_somehow b _080C8B82 .pool _080C8AE8: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =sub_80C91DC bl add_to_c3_somehow b _080C8B82 @@ -3181,14 +3181,14 @@ _080C8AFC: .pool _080C8B08: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =sub_80C93B0 bl add_to_c3_somehow b _080C8B82 .pool _080C8B1C: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =sub_80C9B88 bl add_to_c3_somehow b _080C8B82 @@ -3200,17 +3200,17 @@ _080C8B30: .pool _080C8B3C: movs r0, 0x20 - bl audio_play + bl PlaySE movs r0, 0xD b _080C8B58 _080C8B46: movs r0, 0x20 - bl audio_play + bl PlaySE movs r0, 0x11 b _080C8B58 _080C8B50: movs r0, 0x20 - bl audio_play + bl PlaySE movs r0, 0x16 _080C8B58: bl sub_80CAC58 @@ -4045,12 +4045,12 @@ _080C92D0: adds r0, r1 ldrh r0, [r0] movs r1, 0x1 - bl bag_add_item + bl AddBagItem lsls r0, 24 cmp r0, 0 bne _080C92FC movs r0, 0x20 - bl audio_play + bl PlaySE movs r0, 0x1A bl sub_80CAC58 ldr r1, [r5] @@ -4060,7 +4060,7 @@ _080C92D0: .pool _080C92FC: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =gUnknown_02039D0C ldrb r0, [r0] negs r4, r0 @@ -4263,7 +4263,7 @@ _080C94DA: cmp r0, 0 bne _080C9544 movs r0, 0x6 - bl audio_play + bl PlaySE bl sub_80D17B4 bl sub_80D1818 b _080C9522 @@ -4281,7 +4281,7 @@ _080C9500: cmp r0, 0 beq _080C9544 movs r0, 0x6 - bl audio_play + bl PlaySE b _080C9522 .pool _080C9518: @@ -4337,7 +4337,7 @@ _080C956C: .4byte _080C9654 _080C9584: movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0x1B bl sub_80CAC58 movs r0, 0 @@ -4374,7 +4374,7 @@ _080C95C8: adds r0, r1 ldrh r0, [r0] movs r1, 0x1 - bl bag_add_item + bl AddBagItem lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -4608,14 +4608,14 @@ _080C97C4: .pool _080C97DC: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =sub_80C9AC8 bl add_to_c3_somehow b _080C9818 .pool _080C97F0: movs r0, 0x5 - bl audio_play + bl PlaySE bl sub_80CADC4 ldr r0, =sub_80C9824 bl add_to_c3_somehow @@ -4623,7 +4623,7 @@ _080C97F0: .pool _080C9808: movs r0, 0x5 - bl audio_play + bl PlaySE bl sub_80CADC4 ldr r0, =sub_80C99D8 bl add_to_c3_somehow @@ -4712,7 +4712,7 @@ _080C98C6: b _080C99A0 _080C98D2: movs r0, 0x5 - bl audio_play + bl PlaySE bl sub_80D013C ldr r1, [r4] adds r2, r1, r5 @@ -4724,7 +4724,7 @@ _080C98D2: b _080C99CA _080C98EC: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, [r4] movs r1, 0xF2 lsls r1, 3 @@ -4778,7 +4778,7 @@ _080C993C: .pool _080C996C: movs r0, 0x5 - bl audio_play + bl PlaySE bl sub_80CADC4 ldr r1, [r4] adds r1, r5 @@ -5102,7 +5102,7 @@ _080C9C1C: cmp r0, 0 beq _080C9C40 movs r0, 0x20 - bl audio_play + bl PlaySE movs r0, 0xF bl sub_80CAC58 ldr r0, =gUnknown_02039D08 @@ -5122,7 +5122,7 @@ _080C9C40: .pool _080C9C58: movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0 bl sub_80CAC58 movs r0, 0 @@ -5166,7 +5166,7 @@ _080C9CAA: .pool _080C9CBC: movs r0, 0x3 - bl audio_play + bl PlaySE bl sub_80CADC4 b _080C9CD2 _080C9CC8: @@ -5190,7 +5190,7 @@ _080C9CE4: bne _080C9D08 bl sub_80CABE0 bl calc_player_party_count - ldr r1, =gUnknown_020244E9 + ldr r1, =gPlayerPartyCount strb r0, [r1] ldr r0, =gUnknown_02039D08 ldr r0, [r0] @@ -5233,7 +5233,7 @@ _080C9D50: cmp r0, 0 beq _080C9D74 movs r0, 0x20 - bl audio_play + bl PlaySE movs r0, 0xF bl sub_80CAC58 ldr r0, =gUnknown_02039D08 @@ -5253,7 +5253,7 @@ _080C9D74: .pool _080C9D8C: movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0x12 bl sub_80CAC58 movs r0, 0 @@ -5298,7 +5298,7 @@ _080C9DE0: .pool _080C9DF0: movs r0, 0x3 - bl audio_play + bl PlaySE bl sub_80CADC4 b _080C9E06 _080C9DFC: @@ -5322,7 +5322,7 @@ _080C9E18: bne _080C9E3C bl sub_80CABE0 bl calc_player_party_count - ldr r1, =gUnknown_020244E9 + ldr r1, =gPlayerPartyCount strb r0, [r1] ldr r0, =gUnknown_02039D08 ldr r0, [r0] @@ -5477,7 +5477,7 @@ sub_80C9F6C: @ 80C9F6C adds r0, r1 movs r1, 0xC mov r2, sp - bl pokemon_setattr + bl SetMonData b _080C9FB6 .pool _080C9FAC: @@ -5489,7 +5489,7 @@ _080C9FB6: mov r0, sp ldrh r0, [r0] movs r1, 0x1 - bl remove_item + bl RemoveBagItem _080C9FC0: add sp, 0x4 pop {r0} @@ -5610,7 +5610,7 @@ _080CA0C2: sub_80CA0C8: @ 80CA0C8 push {lr} ldr r0, =gUnknown_08572744 - bl LoadTaggedObjectPalette + bl LoadSpritePalette pop {r0} bx r0 .pool @@ -5694,7 +5694,7 @@ sub_80CA154: @ 80CA154 movs r0, 0x96 strh r0, [r1, 0x22] movs r0, 0x10 - bl GetObjectTileRangeStartByTag + bl GetSpriteTileStartByTag ldr r1, [r4] movs r2, 0xDA lsls r2, 4 @@ -5720,7 +5720,7 @@ sub_80CA1C4: @ 80CA1C4 str r0, [sp] str r1, [sp, 0x4] mov r0, sp - bl LoadObjectPic + bl LoadSpriteSheet movs r4, 0 _080CA1DA: lsls r1, r4, 6 @@ -5731,7 +5731,7 @@ _080CA1DA: ldr r0, =gUnknown_085728BC movs r2, 0x9 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_02039D08 @@ -5743,7 +5743,7 @@ _080CA1DA: lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 str r1, [r2] adds r0, r4, 0x1 @@ -5869,7 +5869,7 @@ _080CA2E6: negs r1, r1 ands r1, r0 strb r1, [r4, 0x1] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r4, 0x1C] _080CA30E: pop {r4} @@ -5942,13 +5942,13 @@ _080CA36C: movs r1, 0 str r1, [r0] adds r0, r3, 0 - bl LoadObjectPic + bl LoadSpriteSheet lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0 beq _080CA420 adds r0, r7, 0 - bl LoadTaggedObjectPalette + bl LoadSpritePalette lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xFF @@ -5964,7 +5964,7 @@ _080CA3C4: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 str r0, [r3] lsls r0, r4, 4 @@ -5987,7 +5987,7 @@ _080CA40C: movs r1, 0x28 movs r2, 0x30 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 @@ -6002,9 +6002,9 @@ _080CA420: cmp r0, 0 bne _080CA43C movs r0, 0x2 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag ldr r0, =0x0000dac6 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag _080CA43C: add sp, 0x28 pop {r4-r7} @@ -6038,7 +6038,7 @@ sub_80CA44C: @ 80CA44C movs r2, 0x1 str r2, [sp] adds r2, r4, 0 - bl DecompressMonPic + bl LoadSpecialPokePic ldr r1, [r6] ldr r2, =0x00000cdc adds r0, r1, r2 @@ -6266,7 +6266,7 @@ _080CA680: adds r1, 0x1 lsls r1, 24 lsrs r1, 24 - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 @@ -6293,7 +6293,7 @@ _080CA6C6: ldr r0, [r0] lsls r1, r4, 25 lsrs r1, 24 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 @@ -6826,7 +6826,7 @@ sub_80CAB4C: @ 80CAB4C movs r1, 0 strb r1, [r0] movs r0, 0x6 - bl audio_play + bl PlaySE bl sub_80CA7D4 pop {r0} bx r0 @@ -7669,7 +7669,7 @@ _080CB250: strh r0, [r1] ldrh r0, [r2, 0x34] strh r0, [r2, 0x20] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r2, 0x1C] _080CB266: pop {r0} @@ -7702,7 +7702,7 @@ _080CB28C: lsrs r0, 16 cmp r0, 0xB6 bls _080CB2A8 - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r2, 0x1C] _080CB2A8: pop {r0} @@ -8690,7 +8690,7 @@ _080CBA7C: adds r0, 0x10 _080CBA8E: strh r0, [r3, 0x22] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r3, 0x1C] ldr r0, =gUnknown_02039D08 ldr r2, [r0] @@ -9040,7 +9040,7 @@ _080CBD34: ldr r0, =0x00000a6c adds r1, r0 ldr r2, [r1] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r2, 0x1C] movs r0, 0 str r0, [r1] @@ -9085,7 +9085,7 @@ _080CBD8E: ldr r2, =0x00000a6c adds r0, r1, r2 ldr r2, [r0] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r2, 0x1C] ldr r4, =0x00000c5d adds r1, r4 @@ -9147,7 +9147,7 @@ _080CBE18: ldr r0, [r4] ldr r0, [r0] mov r8, r0 - ldr r5, =gUnknown_08329F40 + ldr r5, =gSineTable mov r0, r9 adds r1, r3, r0 ldrb r0, [r1] @@ -9249,7 +9249,7 @@ _080CBEBE: adds r1, r7 ldr r0, [r1] ldr r1, [r0] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r1, 0x1C] _080CBEF2: movs r0, 0x1 @@ -9323,7 +9323,7 @@ _080CBF80: ldr r0, [r0] cmp r0, 0 beq _080CBFC0 - bl obj_alloc_rotscale_entry + bl InitSpriteAffineAnim ldr r0, [r4] ldr r3, =0x00000b04 adds r0, r3 @@ -9345,7 +9345,7 @@ _080CBF80: ldr r0, [r1] ldr r0, [r0] movs r1, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim _080CBFC0: pop {r4} pop {r0} @@ -9407,7 +9407,7 @@ sub_80CC020: @ 80CC020 ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix ldr r0, [r4] ldr r1, =0x00000b04 adds r0, r1 @@ -9451,7 +9451,7 @@ sub_80CC064: @ 80CC064 ldr r0, [r0] ldr r0, [r0] movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim _080CC094: pop {r0} bx r0 @@ -9717,12 +9717,12 @@ sub_80CC230: @ 80CC230 asrs r2, 16 mov r0, sp mov r3, r9 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _080CC2FC - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -9770,7 +9770,7 @@ sub_80CC314: @ 80CC314 ldrh r0, [r4, 0x2E] bl sub_80CC1E0 adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite pop {r4} pop {r0} bx r0 @@ -10781,7 +10781,7 @@ sub_80CCB50: @ 80CCB50 adds r4, r1 strh r0, [r4] add r0, sp, 0x4 - bl LoadTaggedObjectPalettes + bl LoadSpritePalettes mov r2, r10 ldr r0, [r2] movs r6, 0xE7 @@ -10791,7 +10791,7 @@ sub_80CCB50: @ 80CCB50 lsls r1, 2 str r1, [r0] adds r0, r7, 0 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 mov r4, r10 @@ -10813,7 +10813,7 @@ sub_80CCB50: @ 80CCB50 orrs r0, r1 str r0, [r3] adds r0, r7, 0 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 mov r1, r10 @@ -10850,7 +10850,7 @@ sub_80CCB50: @ 80CCB50 movs r3, 0 bl sub_80C6D80 ldr r0, [sp, 0x2C] - bl LoadObjectPic + bl LoadSpriteSheet mov r0, r8 bl sav3_get_box_name bl sub_80CD00C @@ -10865,7 +10865,7 @@ _080CCC70: ldr r0, =gUnknown_0857B0A8 movs r2, 0x1C movs r3, 0x18 - bl AddObjectToFront + bl CreateSprite adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -10879,12 +10879,12 @@ _080CCC70: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 str r0, [r2] lsls r1, r4, 24 lsrs r1, 24 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 @@ -11016,7 +11016,7 @@ _080CCDB0: movs r3, 0 bl sub_80C6D80 adds r0, r6, 0 - bl LoadObjectPic + bl LoadSpriteSheet ldr r0, [sp, 0x28] bl sub_80D20F8 lsls r0, 24 @@ -11058,7 +11058,7 @@ _080CCE2E: add r0, sp, 0x4 movs r2, 0x1C movs r3, 0x18 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r1, r9 @@ -11071,7 +11071,7 @@ _080CCE2E: lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 str r1, [r2] mov r0, r8 @@ -11093,7 +11093,7 @@ _080CCE2E: str r1, [r0, 0x1C] lsls r1, r7, 24 lsrs r1, 24 - bl StartObjectImageAnim + bl StartSpriteAnim mov r1, r9 ldr r0, [r1] movs r3, 0xE4 @@ -11136,12 +11136,12 @@ sub_80CCEE0: @ 80CCEE0 cmp r0, 0 bne _080CCF00 movs r0, 0x4 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag b _080CCF06 .pool _080CCF00: movs r0, 0x3 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag _080CCF06: ldr r0, =gUnknown_02039D08 ldr r0, [r0] @@ -11186,7 +11186,7 @@ _080CCF44: ldrsh r1, [r2, r3] cmp r0, r1 bne _080CCF5C - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r2, 0x1C] _080CCF5C: pop {r0} @@ -11220,7 +11220,7 @@ _080CCF78: cmp r0, 0xC0 bls _080CCF96 adds r0, r2, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _080CCF96: pop {r0} bx r0 @@ -11297,7 +11297,7 @@ sub_80CD00C: @ 80CD00C sub_80CD02C: @ 80CD02C push {r4,r5,lr} ldr r0, =gUnknown_0857B080 - bl LoadObjectPic + bl LoadSpriteSheet movs r5, 0 _080CD036: lsls r1, r5, 4 @@ -11310,7 +11310,7 @@ _080CD036: ldr r0, =gUnknown_0857B0E0 movs r2, 0x1C movs r3, 0x16 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 @@ -11318,12 +11318,12 @@ _080CD036: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r4, r0, r1 lsls r1, r5, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0x1 cmp r5, 0 bne _080CD076 @@ -11672,7 +11672,7 @@ sub_80CD2E8: @ 80CD2E8 adds r1, r5, 0 adds r2, r6, 0 adds r3, r4, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 @@ -11682,10 +11682,10 @@ sub_80CD2E8: @ 80CD2E8 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites adds r6, r4, r5 adds r0, r6, 0 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0x3 mov r1, r8 ands r1, r0 @@ -11698,7 +11698,7 @@ sub_80CD2E8: @ 80CD2E8 strb r0, [r6, 0x5] adds r5, 0x1C adds r4, r5 - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r4] adds r0, r6, 0 b _080CD362 @@ -12346,7 +12346,7 @@ sub_80CD894: @ 80CD894 adds r0, r1, r2 ldr r0, [r0] movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim b _080CD8FC .pool _080CD8E4: @@ -12359,7 +12359,7 @@ _080CD8E4: adds r0, r1 ldr r0, [r0] movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim _080CD8FC: ldr r0, =gUnknown_02039D08 ldr r0, [r0] @@ -12547,7 +12547,7 @@ sub_80CDA68: @ 80CDA68 adds r0, r2, r3 ldr r0, [r0] movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim b _080CDAD8 .pool _080CDAC0: @@ -12560,7 +12560,7 @@ _080CDAC0: adds r0, r1 ldr r0, [r0] movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim _080CDAD8: bl sub_80CEB40 ldr r0, =gUnknown_02039D78 @@ -12838,7 +12838,7 @@ _080CDD08: adds r0, r1, r2 ldr r0, [r0] movs r1, 0x2 - bl StartObjectImageAnim + bl StartSpriteAnim b _080CDD4A .pool _080CDD1C: @@ -12851,7 +12851,7 @@ _080CDD1C: adds r0, r1 ldr r0, [r0] movs r1, 0x3 - bl StartObjectImageAnim + bl StartSpriteAnim bl sub_80CDF38 b _080CDD4A .pool @@ -12905,7 +12905,7 @@ _080CDD82: adds r0, r1 ldr r0, [r0] movs r1, 0x2 - bl StartObjectImageAnim + bl StartSpriteAnim bl sub_80CDFAC b _080CDDBC .pool @@ -12919,7 +12919,7 @@ _080CDDA4: adds r0, r1 ldr r0, [r0] movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim _080CDDBC: ldr r1, [r4] adds r1, r5 @@ -12987,7 +12987,7 @@ _080CDE2A: adds r0, r1 ldr r0, [r0] movs r1, 0x2 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r0, [r4] ldr r2, =0x00000d91 adds r0, r2 @@ -13011,7 +13011,7 @@ _080CDE68: adds r0, r1 ldr r0, [r0] movs r1, 0x3 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r0, [r4] ldr r2, =0x00000d91 adds r0, r2 @@ -13431,7 +13431,7 @@ _080CE208: adds r0, r1 ldr r0, [r0] movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0x1 _080CE21A: pop {r4-r6} @@ -13449,7 +13449,7 @@ sub_80CE22C: @ 80CE22C adds r0, r1 ldr r0, [r0] movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim bl sub_80CEB40 pop {r0} bx r0 @@ -13508,7 +13508,7 @@ _080CE2B8: adds r0, r1 ldr r0, [r0] movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0 _080CE2CA: pop {r1} @@ -13567,7 +13567,7 @@ sub_80CE324: @ 80CE324 adds r0, r1 ldr r0, [r0] movs r1, 0x3 - bl StartObjectImageAnim + bl StartSpriteAnim _080CE33E: pop {r0} bx r0 @@ -14295,7 +14295,7 @@ sub_80CE9A8: @ 80CE9A8 adds r0, r1 movs r1, 0x8 mov r2, sp - bl pokemon_setattr + bl SetMonData b _080CEA1C .pool _080CE9E8: @@ -14313,7 +14313,7 @@ _080CE9E8: adds r0, r1 movs r1, 0x8 mov r2, sp - bl pokemon_setattr + bl SetMonData _080CEA08: movs r0, 0 ldrsb r0, [r4, r0] @@ -15026,7 +15026,7 @@ _080CF020: beq _080CF0AC ldr r3, =0x00000d65 adds r4, r3 - bl itemid_get_item + bl ItemId_GetItem adds r1, r0, 0 adds r0, r4, 0 movs r2, 0 @@ -16469,18 +16469,18 @@ sub_80CFC14: @ 80CFC14 ldr r0, [r0] str r0, [r1] mov r0, sp - bl LoadObjectPics + bl LoadSpriteSheets adds r0, r4, 0 - bl LoadTaggedObjectPalettes + bl LoadSpritePalettes ldr r0, =0x0000daca - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag ldr r6, =gUnknown_02039D08 ldr r1, [r6] ldr r4, =0x00000cd8 adds r1, r4 strb r0, [r1] ldr r0, =0x0000dac7 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag ldr r1, [r6] ldr r5, =0x00000cd9 adds r1, r5 @@ -16501,7 +16501,7 @@ sub_80CFC14: @ 80CFC14 movs r3, 0 ldrsh r2, [r5, r3] movs r3, 0x6 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 @@ -16512,7 +16512,7 @@ sub_80CFC14: @ 80CFC14 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 str r1, [r3] ldr r0, =gUnknown_02039D7D @@ -16545,7 +16545,7 @@ sub_80CFC14: @ 80CFC14 adds r0, r4 ldr r0, [r0] movs r1, 0x3 - bl StartObjectImageAnim + bl StartSpriteAnim b _080CFD22 .pool _080CFD18: @@ -16572,7 +16572,7 @@ _080CFD40: ldr r0, =gUnknown_0857BA68 movs r1, 0 movs r2, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 @@ -16584,7 +16584,7 @@ _080CFD40: lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 str r1, [r2] lsls r3, r4, 2 @@ -16710,7 +16710,7 @@ sub_80CFE54: @ 80CFE54 ldr r2, =0x00000cb4 adds r0, r2 ldr r0, [r0] - bl StartObjectImageAnim + bl StartSpriteAnim pop {r0} bx r0 .pool @@ -16996,7 +16996,7 @@ sub_80D00AC: @ 80D00AC cmp r0, 0 beq _080D00CE movs r0, 0x5 - bl audio_play + bl PlaySE adds r5, 0x1 _080D00CE: ldrh r1, [r4, 0x2E] @@ -17005,7 +17005,7 @@ _080D00CE: cmp r0, 0 beq _080D00EC movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0x1 negs r0, r0 bl MoveMenuCursor @@ -17017,7 +17017,7 @@ _080D00EC: cmp r0, 0 beq _080D010A movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0x1 bl MoveMenuCursor b _080D010A @@ -18561,7 +18561,7 @@ _080D0CA0: bl LoadCompressedObjectPic mov r4, r9 ldrh r0, [r4, 0x6] - bl GetObjectTileRangeStartByTag + bl GetSpriteTileStartByTag mov r5, r8 ldr r1, [r5] lsls r5, r7, 4 @@ -18577,7 +18577,7 @@ _080D0CA0: adds r4, r7, r0 lsls r0, r4, 16 lsrs r0, 16 - bl AllocObjectPalette + bl AllocSpritePalette mov r2, r8 ldr r1, [r2] adds r1, r5 @@ -18598,7 +18598,7 @@ _080D0CA0: movs r1, 0 movs r2, 0 movs r3, 0xB - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r4, r8 @@ -18609,7 +18609,7 @@ _080D0CA0: lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 str r1, [r2] adds r1, 0x3E @@ -18821,7 +18821,7 @@ _080D0EF8: adds r0, r1 movs r1, 0xC mov r2, sp - bl pokemon_setattr + bl SetMonData adds r0, r7, 0 movs r1, 0x1 bl sub_80CBBDC @@ -18959,7 +18959,7 @@ _080D101C: adds r2, r5 adds r0, r4, 0 movs r1, 0xC - bl pokemon_setattr + bl SetMonData mov r1, r8 ldr r0, [r1] adds r0, r5 @@ -19041,7 +19041,7 @@ _080D10E0: ldr r1, =0x00002234 adds r2, r1 movs r1, 0xC - bl pokemon_setattr + bl SetMonData mov r0, r8 movs r1, 0 bl sub_80CBBDC @@ -19103,7 +19103,7 @@ _080D1170: adds r0, r1 movs r1, 0xC mov r2, sp - bl pokemon_setattr + bl SetMonData adds r0, r7, 0 movs r1, 0x1 bl sub_80CBBDC @@ -19209,7 +19209,7 @@ _080D1226: cmp r0, 0x8 beq _080D124E ldr r1, [r2, 0x1C] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy cmp r1, r0 beq _080D1268 ldr r0, =sub_80D1AD8 @@ -19273,7 +19273,7 @@ sub_80D12B8: @ 80D12B8 ldr r1, =0x00002234 adds r0, r1 ldrh r0, [r0] - bl itemid_get_item + bl ItemId_GetItem pop {r1} bx r1 .pool @@ -19669,7 +19669,7 @@ sub_80D15D4: @ 80D15D4 adds r0, r1 ldr r0, [r0] adds r1, r3, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim _080D15F6: pop {r0} bx r0 @@ -19894,7 +19894,7 @@ _080D17D4: _080D17DA: adds r0, r1 ldrh r0, [r0] - bl itemid_get_description + bl ItemId_GetDescription adds r4, r0, 0 movs r0, 0x2 movs r1, 0x11 @@ -20197,7 +20197,7 @@ sub_80D1A48: @ 80D1A48 lsrs r0, 24 movs r1, 0 bl sub_80D1740 - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r4, 0x1C] _080D1A68: pop {r4} @@ -20351,7 +20351,7 @@ _080D1B42: lsls r2, 24 lsrs r2, 24 bl sub_80D140C - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r4, 0x1C] _080D1B8A: pop {r4} @@ -20401,7 +20401,7 @@ _080D1BC2: lsls r0, 16 asrs r0, 20 strh r0, [r4, 0x22] - ldr r1, =gUnknown_08329F40 + ldr r1, =gSineTable movs r2, 0x38 ldrsh r0, [r4, r2] lsls r0, 4 @@ -20480,7 +20480,7 @@ _080D1C5E: lsls r1, 16 asrs r1, 20 strh r1, [r4, 0x22] - ldr r1, =gUnknown_08329F40 + ldr r1, =gSineTable movs r2, 0x38 ldrsh r0, [r4, r2] lsls r0, 4 @@ -20508,7 +20508,7 @@ _080D1C5E: lsls r2, 24 lsrs r2, 24 bl sub_80D140C - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x24] @@ -20535,7 +20535,7 @@ sub_80D1CCC: @ 80D1CCC negs r1, r1 cmp r0, r1 bge _080D1CFC - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r2, 0x1C] adds r0, r2, 0 bl sub_80D13C4 @@ -20650,7 +20650,7 @@ set_pokemon_data_from_any_box: @ 80D1D74 adds r0, r1 adds r1, r5, 0 adds r2, r6, 0 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted _080D1DAC: pop {r4-r6} pop {r0} @@ -20801,7 +20801,7 @@ sub_80D1E90: @ 80D1E90 adds r0, r1 movs r1, 0x2 adds r2, r5, 0 - bl pokemon_setattr_encrypted + bl SetMonData_encrypted _080D1EC6: pop {r4,r5} pop {r0} @@ -22748,7 +22748,7 @@ _080D2D2A: lsls r0, r4, 4 adds r0, r4 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 bl sub_80D30DC adds r0, r4, 0 @@ -22812,7 +22812,7 @@ sub_80D2D78: @ 80D2D78 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 bl sub_80D30DC adds r0, r4, 0 @@ -22980,7 +22980,7 @@ sub_80D2F04: @ 80D2F04 _080D2F0A: lsls r0, r4, 3 adds r0, r5 - bl LoadTaggedObjectPalette + bl LoadSpritePalette adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 @@ -23011,13 +23011,13 @@ _080D2F3A: lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x4] - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _080D2F5A adds r0, r4, 0 - bl LoadTaggedObjectPalette + bl LoadSpritePalette _080D2F5A: pop {r4} pop {r0} @@ -23037,13 +23037,13 @@ sub_80D2F68: @ 80D2F68 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x4] - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _080D2F8E adds r0, r4, 0 - bl LoadTaggedObjectPalette + bl LoadSpritePalette _080D2F8E: pop {r4} pop {r0} @@ -23060,7 +23060,7 @@ _080D2FA2: lsls r0, r4, 3 adds r0, r5 ldrh r0, [r0, 0x4] - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 @@ -23091,7 +23091,7 @@ _080D2FD2: lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x4] - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag pop {r0} bx r0 .pool @@ -23109,7 +23109,7 @@ sub_80D2FF0: @ 80D2FF0 lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x4] - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag pop {r0} bx r0 .pool @@ -23296,7 +23296,7 @@ _080D312A: lsrs r1, 17 ldr r3, =0x06010000 adds r1, r3 - bl AddTilesToObjectCopyRequests + bl RequestSpriteCopy mov r0, r8 ldrb r1, [r0] ldr r0, [r4, 0x8] @@ -23411,10 +23411,10 @@ sub_80D31B4: @ 80D31B4 adds r1, r4, 0 adds r2, r5, 0 mov r3, r8 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites lsls r3, r0, 4 adds r3, r0 lsls r3, 2 @@ -23469,7 +23469,7 @@ sub_80D328C: @ 80D328C str r1, [sp, 0x4] mov r1, sp str r1, [r0, 0xC] - bl RemoveObjectAndFreeTiles + bl DestroySprite add sp, 0x8 pop {r0} bx r0 @@ -24469,7 +24469,7 @@ sub_80D3A6C: @ 80D3A6C strh r0, [r1, 0x18] strh r2, [r1, 0x1A] movs r0, 0x12 - bl sav12_xor_increment + bl IncrementGameStat movs r0, 0 pop {r1} bx r1 @@ -24507,7 +24507,7 @@ sub_80D3ABC: @ 80D3ABC strh r0, [r1, 0x18] strh r2, [r1, 0x1A] movs r0, 0x12 - bl sav12_xor_increment + bl IncrementGameStat movs r0, 0 pop {r1} bx r1 @@ -24530,7 +24530,7 @@ sub_80D3B00: @ 80D3B00 push {r4-r7,lr} movs r6, 0 movs r0, 0x80 - bl audio_play + bl PlaySE ldr r4, =gUnknown_0203AB40 adds r1, r4, 0x2 adds r0, r4, 0 @@ -24599,7 +24599,7 @@ _080D3B64: bl AllocZeroed str r0, [r4] movs r6, 0 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites _080D3BA0: ldr r0, =gUnknown_02037590 ldrb r1, [r0, 0x4] @@ -24618,7 +24618,7 @@ _080D3BA0: adds r2, 0x14 ldr r0, =gUnknown_0857C66C movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r1, [r4] adds r1, r6 strb r0, [r1] @@ -25355,9 +25355,9 @@ _080D41D4: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites adds r0, r5 - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 @@ -25534,7 +25534,7 @@ _080D434A: sub_80D4354: @ 80D4354 push {lr} movs r0, 0x80 - bl audio_play + bl PlaySE movs r0, 0x2 bl FieldEffectActiveListRemove bl script_env_2_enable_and_set_ctx_running @@ -25542,8 +25542,8 @@ sub_80D4354: @ 80D4354 bx r0 thumb_func_end sub_80D4354 - thumb_func_start sub_80D436C -sub_80D436C: @ 80D436C + thumb_func_start ClearMailData +ClearMailData: @ 80D436C push {r4,r5,lr} movs r4, 0 ldr r5, =gSaveBlock1Ptr @@ -25565,7 +25565,7 @@ _080D4372: pop {r0} bx r0 .pool - thumb_func_end sub_80D436C + thumb_func_end ClearMailData thumb_func_start sub_80D439C sub_80D439C: @ 80D439C @@ -25816,11 +25816,11 @@ _080D4500: mov r0, r8 movs r1, 0x40 mov r2, r9 - bl pokemon_setattr + bl SetMonData mov r0, r8 movs r1, 0xC mov r2, sp - bl pokemon_setattr + bl SetMonData mov r1, r9 ldrb r0, [r1] b _080D45B6 @@ -25918,7 +25918,7 @@ sub_80D460C: @ 80D460C adds r0, r6, 0 movs r1, 0x40 adds r2, r4, 0 - bl pokemon_setattr + bl SetMonData mov r0, sp strb r5, [r0] mov r1, sp @@ -25927,7 +25927,7 @@ sub_80D460C: @ 80D460C adds r0, r6, 0 movs r1, 0xC mov r2, sp - bl pokemon_setattr + bl SetMonData ldrb r0, [r4] b _080D4672 .pool @@ -25980,11 +25980,11 @@ sub_80D4680: @ 80D4680 strb r1, [r0, 0x1] adds r0, r4, 0 movs r1, 0x40 - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0xC mov r2, sp - bl pokemon_setattr + bl SetMonData _080D46D2: add sp, 0x8 pop {r4} @@ -26080,11 +26080,11 @@ _080D4724: adds r0, r5, 0 movs r1, 0x40 mov r2, r9 - bl pokemon_setattr + bl SetMonData adds r0, r5, 0 movs r1, 0xC mov r2, sp - bl pokemon_setattr + bl SetMonData adds r0, r7, 0 b _080D47AC .pool @@ -26701,22 +26701,22 @@ RemoveBagObject: @ 80D4CA8 beq _080D4CEE adds r4, 0x64 adds r0, r4, 0 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag adds r0, r4, 0 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 - bl obj_free_rotscale_entry + bl FreeSpriteOamMatrix ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite movs r0, 0xFF strb r0, [r5] _080D4CEE: @@ -26741,7 +26741,7 @@ AddBagVisualObject: @ 80D4D00 movs r1, 0x44 movs r2, 0x42 movs r3, 0 - bl AddObjectToFront + bl CreateSprite strb r0, [r4] adds r0, r5, 0 movs r1, 0 @@ -26767,7 +26767,7 @@ SetBagVisualPocketId: @ 80D4D38 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites adds r2, r0, r2 cmp r1, 0 beq _080D4D84 @@ -26779,7 +26779,7 @@ SetBagVisualPocketId: @ 80D4D38 strh r0, [r2, 0x2E] adds r0, r2, 0 movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim b _080D4D90 .pool _080D4D84: @@ -26787,7 +26787,7 @@ _080D4D84: lsls r1, 24 lsrs r1, 24 adds r0, r2, 0 - bl StartObjectImageAnim + bl StartSpriteAnim _080D4D90: pop {r0} bx r0 @@ -26811,8 +26811,8 @@ _080D4DA8: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim - ldr r0, =DummyObjectCallback + bl StartSpriteAnim + ldr r0, =SpriteCallbackDummy str r0, [r4, 0x1C] _080D4DB8: pop {r4} @@ -26833,7 +26833,7 @@ ShakeBagVisual: @ 80D4DC4 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r4, r0, r1 adds r0, r4, 0 adds r0, 0x3F @@ -26844,7 +26844,7 @@ ShakeBagVisual: @ 80D4DC4 beq _080D4DF4 adds r0, r4, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim ldr r0, =ObjectCB_ShakeBagVisual str r0, [r4, 0x1C] _080D4DF4: @@ -26867,8 +26867,8 @@ ObjectCB_ShakeBagVisual: @ 80D4E0C beq _080D4E28 adds r0, r4, 0 movs r1, 0 - bl StartObjectRotScalAnim - ldr r0, =DummyObjectCallback + bl StartSpriteAffineAnim + ldr r0, =SpriteCallbackDummy str r0, [r4, 0x1C] _080D4E28: pop {r4} @@ -26889,16 +26889,16 @@ AddSwitchPocketRotatingBallObject: @ 80D4E34 ldr r0, =0x00000805 adds r4, r0 ldr r0, =gUnknown_0857FBA0 - bl LoadObjectPic + bl LoadSpriteSheet ldr r0, =gUnknown_0857FBA8 - bl LoadTaggedObjectPalette + bl LoadSpritePalette ldr r0, =gUnknown_0857FBB0 movs r1, 0x10 movs r2, 0x10 movs r3, 0 - bl AddObjectToFront + bl CreateSprite strb r0, [r4] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 @@ -26959,7 +26959,7 @@ _080D4ED8: _080D4EDA: str r0, [r4, 0x10] adds r0, r4, 0 - bl obj_alloc_rotscale_entry + bl InitSpriteAffineAnim adds r0, r4, 0 adds r0, 0x28 ldrb r0, [r0] @@ -27022,9 +27022,9 @@ AddBagItemIconObject: @ 80D4F38 bne _080D4F86 adds r4, 0x66 adds r0, r4, 0 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag adds r0, r4, 0 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag adds r0, r4, 0 adds r1, r4, 0 adds r2, r6, 0 @@ -27034,7 +27034,7 @@ AddBagItemIconObject: @ 80D4F38 cmp r2, 0x40 beq _080D4F86 strb r2, [r5] - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -27227,7 +27227,7 @@ sub_80D50D4: @ 80D50D4 adds r1, r4, 0 adds r2, r5, 0 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 pop {r4,r5} @@ -27240,7 +27240,7 @@ sub_80D50D4: @ 80D50D4 sub_80D510C: @ 80D510C push {lr} ldr r0, =0x00007544 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag pop {r0} bx r0 .pool @@ -27266,14 +27266,14 @@ sub_80D511C: @ 80D511C lsrs r0, 24 mov r8, r0 ldr r0, =0x00007544 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag adds r0, r4, 0 bl sub_80D5070 ldr r0, =gUnknown_0857FC7C adds r1, r5, 0 adds r2, r6, 0 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 adds r4, r1, 0 @@ -27283,10 +27283,10 @@ sub_80D511C: @ 80D511C lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim _080D5172: adds r0, r4, 0 pop {r3} @@ -27306,7 +27306,7 @@ sub_80D518C: @ 80D518C asrs r1, 16 movs r2, 0x74 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 pop {r1} @@ -27319,7 +27319,7 @@ sub_80D51AC: @ 80D51AC push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrb r0, [r4] bl obj_id_for_side_relative_to_move lsls r0, 24 @@ -27331,7 +27331,7 @@ sub_80D51AC: @ 80D51AC b _080D520C .pool _080D51D0: - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -27383,7 +27383,7 @@ sub_80D5220: @ 80D5220 adds r7, r1, 0 cmp r5, 0 bne _080D52C6 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r6, 0x8 ldrsh r1, [r3, r6] lsls r0, r1, 4 @@ -27466,7 +27466,7 @@ sub_80D52D0: @ 80D52D0 lsls r0, 24 lsrs r5, r0, 24 movs r6, 0 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r0, [r2] movs r3, 0 ldrsh r1, [r2, r3] @@ -27509,7 +27509,7 @@ _080D5320: _080D5324: movs r0, 0x3 _080D5326: - bl battle_get_side_with_given_state + bl GetBankByPlayerAI lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 @@ -27519,13 +27519,13 @@ _080D5326: bne _080D533C movs r6, 0x1 _080D533C: - ldr r0, =gUnknown_020241E4 + ldr r0, =gBankSpriteIds adds r0, r4, r0 b _080D5350 .pool _080D5348: - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02038436 + ldr r1, =gBankSpriteIds + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] adds r0, r1 _080D5350: @@ -27539,12 +27539,12 @@ _080D5356: b _080D53A6 .pool _080D5368: - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r3, 4 adds r0, r3 lsls r0, 2 adds r0, r1 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r1, [r2, 0x2] strh r1, [r0, 0x24] ldrh r1, [r2, 0x4] @@ -27594,7 +27594,7 @@ sub_80D53BC: @ 80D53BC mov r12, r1 cmp r0, 0 bne _080D5474 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r7, 0x8 ldrsh r1, [r3, r7] lsls r0, r1, 4 @@ -27686,7 +27686,7 @@ sub_80D5484: @ 80D5484 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrb r0, [r4] bl obj_id_for_side_relative_to_move lsls r0, 24 @@ -27698,7 +27698,7 @@ sub_80D5484: @ 80D5484 b _080D54F6 .pool _080D54A8: - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r3, 4 adds r1, r3 lsls r1, 2 @@ -27766,7 +27766,7 @@ _080D5526: ands r0, r1 cmp r0, 0 beq _080D5568 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -27791,7 +27791,7 @@ _080D5526: b _080D5592 .pool _080D5568: - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -27910,12 +27910,12 @@ sub_80D5644: @ 80D5644 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs ldrb r0, [r5] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -27966,7 +27966,7 @@ sub_80D56A4: @ 80D56A4 lsls r1, 16 asrs r1, 16 mov r12, r2 - ldr r7, =gUnknown_02020630 + ldr r7, =gSprites cmp r0, r1 bne _080D56F6 movs r0, 0 @@ -28030,7 +28030,7 @@ sub_80D5738: @ 80D5738 lsls r0, 24 lsrs r5, r0, 24 movs r6, 0x1 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrb r0, [r4] bl obj_id_for_side_relative_to_move lsls r0, 24 @@ -28103,7 +28103,7 @@ sub_80D57B8: @ 80D57B8 movs r2, 0xA ldrsh r1, [r5, r2] bl Sin - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r4, 4 adds r1, r4 lsls r1, 2 @@ -28151,13 +28151,13 @@ sub_80D5830: @ 80D5830 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D584C - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x2] negs r0, r0 strh r0, [r1, 0x2] @@ -28180,19 +28180,19 @@ sub_80D5860: @ 80D5860 movs r1, 0x4 orrs r0, r1 strb r0, [r2] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D5890 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x2] negs r0, r0 b _080D5894 .pool _080D5890: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x2] _080D5894: strh r0, [r4, 0x30] @@ -28200,8 +28200,8 @@ _080D5894: movs r0, 0 strh r2, [r4, 0x2E] strh r0, [r4, 0x32] - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02038436 + ldr r1, =gBankSpriteIds + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -28245,7 +28245,7 @@ sub_80D58F8: @ 80D58F8 movs r1, 0x4 orrs r0, r1 strb r0, [r2] - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs ldrb r0, [r5, 0x4] bl obj_id_for_side_relative_to_move lsls r0, 24 @@ -28291,27 +28291,27 @@ sub_80D5968: @ 80D5968 push {r4-r7,lr} sub sp, 0x4 adds r6, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D598C - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02038436 + ldr r1, =gBankSpriteIds + ldr r0, =gAnimationBankAttacker b _080D5990 .pool _080D598C: - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02038437 + ldr r1, =gBankSpriteIds + ldr r0, =gAnimationBankTarget _080D5990: ldrb r0, [r0] adds r0, r1 ldrb r7, [r0] - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs ldrh r0, [r5, 0x4] movs r3, 0 strh r0, [r6, 0x2E] - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r4, r7, 4 adds r4, r7 lsls r4, 2 @@ -28356,7 +28356,7 @@ _080D5A00: bne _080D5A06 strh r3, [r6, 0x30] _080D5A06: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r0, 0x2] lsls r0, r7, 8 orrs r0, r1 @@ -28383,7 +28383,7 @@ sub_80D5A24: @ 80D5A24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r3, r1, r0 ldrh r0, [r2, 0x2E] movs r6, 0x2E @@ -28437,27 +28437,27 @@ _080D5A8E: sub_80D5A94: @ 80D5A94 push {r4-r6,lr} adds r5, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D5AB0 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _080D5AB2 .pool _080D5AB0: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _080D5AB2: ldrb r2, [r0] - ldr r0, =gUnknown_020241E4 + ldr r0, =gBankSpriteIds adds r0, r2, r0 ldrb r6, [r0] adds r0, r2, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D5ADC - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x2] negs r0, r0 strh r0, [r1, 0x2] @@ -28469,11 +28469,11 @@ _080D5AB2: negs r0, r0 strh r0, [r1, 0x4] _080D5ADC: - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r0, [r2, 0x8] movs r4, 0 strh r0, [r5, 0x2E] - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r6, 4 adds r1, r6 lsls r1, 2 @@ -28522,27 +28522,27 @@ sub_80D5B48: @ 80D5B48 movs r1, 0x4 orrs r0, r1 strb r0, [r2] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D5B70 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _080D5B72 .pool _080D5B70: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _080D5B72: ldrb r1, [r0] - ldr r0, =gUnknown_020241E4 + ldr r0, =gBankSpriteIds adds r0, r1, r0 ldrb r7, [r0] adds r0, r1, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D5B9C - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x2] negs r0, r0 strh r0, [r1, 0x2] @@ -28554,10 +28554,10 @@ _080D5B72: negs r0, r0 strh r0, [r1, 0x4] _080D5B9C: - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs ldrh r0, [r5, 0x8] strh r0, [r6, 0x2E] - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r4, r7, 4 adds r4, r7 lsls r4, 2 @@ -28611,7 +28611,7 @@ _080D5C0C: thumb_func_start sub_80D5C20 sub_80D5C20: @ 80D5C20 push {r4,lr} - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites movs r1, 0x38 ldrsh r2, [r0, r1] lsls r1, r2, 4 @@ -28639,7 +28639,7 @@ sub_80D5C50: @ 80D5C50 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs movs r0, 0x6 ldrsh r1, [r5, r0] movs r0, 0x80 @@ -28647,9 +28647,9 @@ sub_80D5C50: @ 80D5C50 bl __divsi3 lsls r0, 16 lsrs r7, r0, 16 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D5C82 @@ -28716,7 +28716,7 @@ sub_80D5CE4: @ 80D5CE4 ldrh r2, [r5, 0x1E] adds r0, r2 strh r0, [r5, 0x1E] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r4, r1, 4 adds r4, r1 lsls r4, 2 @@ -28775,7 +28775,7 @@ _080D5D70: ldrh r1, [r4, 0x20] adds r2, r1 strh r2, [r4, 0x20] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -28807,7 +28807,7 @@ sub_80D5DB0: @ 80D5DB0 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0x2 @@ -28827,11 +28827,11 @@ _080D5DD8: beq _080D5DE8 b _080D5E10 _080D5DDE: - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker b _080D5DEA .pool _080D5DE8: - ldr r5, =gUnknown_02038437 + ldr r5, =gAnimationBankTarget _080D5DEA: ldrb r0, [r5] movs r4, 0x2 @@ -28840,7 +28840,7 @@ _080D5DEA: lsls r0, 24 cmp r0, 0 beq _080D5E10 - ldr r1, =gUnknown_020241E4 + ldr r1, =gBankSpriteIds ldrb r0, [r5] eors r0, r4 adds r0, r1 @@ -28858,18 +28858,18 @@ _080D5E18: lsls r0, 3 adds r5, r0, r1 strh r2, [r5, 0x8] - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D5E44 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x2] b _080D5E4A .pool _080D5E44: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x2] negs r0, r0 _080D5E4A: @@ -28898,7 +28898,7 @@ sub_80D5E6C: @ 80D5E6C lsls r1, 3 adds r1, r0 ldrb r2, [r1, 0x8] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -28931,18 +28931,18 @@ sub_80D5EB8: @ 80D5EB8 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 - ldr r6, =gUnknown_02038436 + ldr r6, =gAnimationBankAttacker ldrb r0, [r6] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D5ED4 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x2] negs r0, r0 strh r0, [r1, 0x2] _080D5ED4: - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrb r0, [r4, 0x8] bl obj_id_for_side_relative_to_move lsls r0, 24 @@ -28969,7 +28969,7 @@ _080D5ED4: b _080D5F18 .pool _080D5F14: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] _080D5F18: strh r0, [r2, 0x12] @@ -29019,7 +29019,7 @@ sub_80D5F3C: @ 80D5F3C ldrsh r0, [r4, r1] cmp r0, 0 bne _080D5F94 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r2, r7, 4 adds r1, r2, r7 lsls r1, 2 @@ -29031,11 +29031,11 @@ sub_80D5F3C: @ 80D5F3C .pool _080D5F94: ldrb r0, [r4, 0x12] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080D5FBC - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r2, r7, 4 adds r0, r2, r7 lsls r0, 2 @@ -29049,7 +29049,7 @@ _080D5F94: b _080D5FD6 .pool _080D5FBC: - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r2, r7, 4 adds r0, r2, r7 lsls r0, 2 @@ -29143,7 +29143,7 @@ sub_80D6064: @ 80D6064 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r6, =gUnknown_0203841E + ldr r6, =gBattleAnimArgs ldrb r0, [r6, 0x6] bl obj_id_for_side_relative_to_move adds r5, r0, 0 @@ -29246,7 +29246,7 @@ sub_80D6134: @ 80D6134 push {r7} lsls r0, 24 lsrs r7, r0, 24 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrb r0, [r4, 0x4] bl obj_id_for_side_relative_to_move lsls r0, 24 @@ -29283,7 +29283,7 @@ _080D6184: adds r0, r4, r7 lsls r0, 3 adds r5, r0, r1 - ldr r6, =gUnknown_0203841E + ldr r6, =gBattleAnimArgs ldrh r0, [r6, 0x2] strh r0, [r5, 0x10] mov r0, r8 @@ -29304,14 +29304,14 @@ _080D61B8: ldrsh r0, [r6, r1] cmp r0, 0 bne _080D61C8 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _080D61CA .pool _080D61C8: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _080D61CA: ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide movs r1, 0 lsls r0, 24 cmp r0, 0 @@ -29364,7 +29364,7 @@ sub_80D622C: @ 80D622C push {r7} lsls r0, 24 lsrs r5, r0, 24 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs ldrb r0, [r4, 0x4] bl obj_id_for_side_relative_to_move lsls r0, 24 @@ -29385,14 +29385,14 @@ sub_80D622C: @ 80D622C ldrsh r0, [r4, r1] cmp r0, 0 bne _080D6274 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _080D6276 .pool _080D6274: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _080D6276: ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _080D6288 @@ -29400,7 +29400,7 @@ _080D6276: negs r0, r0 strh r0, [r4, 0x2] _080D6288: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r2, 0x6 ldrsh r1, [r0, r2] adds r6, r0, 0 @@ -29534,7 +29534,7 @@ sub_80D6388: @ 80D6388 push {r7} lsls r0, 24 lsrs r7, r0, 24 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r2, 0 ldrsh r1, [r0, r2] mov r8, r0 @@ -29545,7 +29545,7 @@ sub_80D6388: @ 80D6388 adds r0, r5, r7 lsls r0, 3 adds r6, r0, r4 - ldr r0, =gUnknown_02038408 + ldr r0, =gMovePowerMoveAnim ldrh r0, [r0] movs r1, 0xC bl __udivsi3 @@ -29557,7 +29557,7 @@ _080D63C0: adds r0, r5, r7 lsls r0, 3 adds r6, r0, r4 - ldr r0, =gUnknown_02038404 + ldr r0, =gMoveDmgMoveAnim ldr r0, [r0] movs r1, 0xC bl __divsi3 @@ -29603,7 +29603,7 @@ _080D63EE: lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x16] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x16 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -29666,7 +29666,7 @@ sub_80D646C: @ 80D646C beq _080D64DE cmp r1, 0 beq _080D64C8 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x16 ldrsh r1, [r3, r0] lsls r0, r1, 4 @@ -29679,7 +29679,7 @@ sub_80D646C: @ 80D646C b _080D64DC .pool _080D64C8: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x16 ldrsh r1, [r3, r0] lsls r0, r1, 4 @@ -29700,7 +29700,7 @@ _080D64DE: ldrsh r4, [r3, r2] cmp r4, 0 beq _080D6508 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x16 ldrsh r1, [r3, r0] lsls r0, r1, 4 @@ -29712,7 +29712,7 @@ _080D64DE: b _080D6518 .pool _080D6508: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x16 ldrsh r1, [r3, r0] lsls r0, r1, 4 @@ -29728,7 +29728,7 @@ _080D6518: asrs r4, r0, 16 cmp r4, 0 bne _080D654A - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x16 ldrsh r1, [r3, r0] lsls r0, r1, 4 diff --git a/asm/rom_813C5BC.s b/asm/rom_813C5BC.s index ac01a48467..eeb6c57fe6 100644 --- a/asm/rom_813C5BC.s +++ b/asm/rom_813C5BC.s @@ -51,7 +51,7 @@ sub_813C5EC: @ 813C5EC beq _0813C61A _0813C610: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =sub_813C62C str r0, [r4] _0813C61A: @@ -281,9 +281,9 @@ sub_813C80C: @ 813C80C push {lr} bl remove_some_task bl ResetTasks - bl ResetAllObjectData + bl ResetSpriteData bl ResetPaletteFade - bl ResetObjectPaletteAllocator + bl FreeAllSpritePalettes pop {r0} bx r0 thumb_func_end sub_813C80C @@ -372,8 +372,8 @@ sub_813C890: @ 813C890 thumb_func_start sub_813C8D8 sub_813C8D8: @ 813C8D8 push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -383,8 +383,8 @@ sub_813C8D8: @ 813C8D8 sub_813C8EC: @ 813C8EC push {lr} bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 diff --git a/asm/rom_8145E84.s b/asm/rom_8145E84.s index 566d90c9bd..ebc7ec266a 100644 --- a/asm/rom_8145E84.s +++ b/asm/rom_8145E84.s @@ -36,8 +36,8 @@ _08145EAC: bl SetMainCallback2 _08145EC0: bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade pop {r4} pop {r0} diff --git a/asm/rom_8158B30.s b/asm/rom_8158B30.s index df78857e0a..05c81dcfca 100644 --- a/asm/rom_8158B30.s +++ b/asm/rom_8158B30.s @@ -15,7 +15,7 @@ sub_8158B30: @ 8158B30 adds r6, r0 lsls r6, 3 adds r6, r1 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] strh r0, [r6, 0x8] ldrh r0, [r1, 0x2] @@ -91,7 +91,7 @@ _08158BD0: ldrh r0, [r4, 0x8] lsls r1, r5, 24 asrs r1, 24 - bl audio_play_and_stuff + bl PlaySE12WithPanning _08158BEA: lsls r1, r6, 24 asrs r1, 24 @@ -133,7 +133,7 @@ sub_8158C04: @ 8158C04 ldrh r0, [r4, 0xA] lsls r1, 24 asrs r1, 24 - bl audio_play_and_stuff + bl PlaySE12WithPanning ldrh r0, [r4, 0x1E] adds r0, 0x1 strh r0, [r4, 0x1E] @@ -162,7 +162,7 @@ mas_80DCF38: @ 8158C58 lsls r0, 24 lsrs r0, 24 mov r8, r0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r0] str r1, [sp] ldrb r5, [r0, 0x4] @@ -256,7 +256,7 @@ sub_8158D08: @ 8158D08 ldrh r0, [r4, 0x8] movs r1, 0x1E ldrsb r1, [r4, r1] - bl audio_play_and_stuff + bl PlaySE12WithPanning ldrh r0, [r4, 0x10] subs r0, 0x1 strh r0, [r4, 0x10] @@ -314,7 +314,7 @@ sub_8158D8C: @ 8158D8C lsls r0, 24 cmp r0, 0 beq _08158DD0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -330,31 +330,31 @@ _08158DC8: bl move_anim_task_del b _08158E76 _08158DD0: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r2, 0 ldrsh r1, [r0, r2] adds r2, r0, 0 cmp r1, 0 bne _08158DEC - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r4, [r0] b _08158E12 .pool _08158DEC: cmp r1, 0x1 bne _08158DFC - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r4, [r0] b _08158E12 .pool _08158DFC: cmp r1, 0x2 bne _08158E08 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _08158E0A .pool _08158E08: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _08158E0A: ldrb r1, [r0] movs r0, 0x2 @@ -379,11 +379,11 @@ _08158E1E: .pool _08158E38: adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08158E5C - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -393,7 +393,7 @@ _08158E38: b _08158E6A .pool _08158E5C: - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -413,7 +413,7 @@ _08158E76: asrs r1, 24 adds r0, r4, 0 movs r2, 0x3 - bl sub_80A32E4 + bl PlayCry3 _08158E86: adds r0, r5, 0 bl move_anim_task_del @@ -439,7 +439,7 @@ sub_8158E9C: @ 8158E9C lsls r0, 24 cmp r0, 0 beq _08158EE0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -455,31 +455,31 @@ _08158ED8: bl move_anim_task_del b _08158F86 _08158EE0: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r2, 0 ldrsh r1, [r0, r2] adds r2, r0, 0 cmp r1, 0 bne _08158EFC - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r4, [r0] b _08158F22 .pool _08158EFC: cmp r1, 0x1 bne _08158F0C - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r4, [r0] b _08158F22 .pool _08158F0C: cmp r1, 0x2 bne _08158F18 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _08158F1A .pool _08158F18: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _08158F1A: ldrb r1, [r0] movs r0, 0x2 @@ -504,11 +504,11 @@ _08158F2E: .pool _08158F48: adds r0, r4, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _08158F6C - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -518,7 +518,7 @@ _08158F48: b _08158F7A .pool _08158F6C: - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -537,7 +537,7 @@ _08158F86: adds r0, r2, r6 lsls r0, 3 adds r0, r1 - ldr r3, =gUnknown_0203841E + ldr r3, =gBattleAnimArgs ldrh r1, [r3, 0x2] strh r1, [r0, 0x8] strh r4, [r0, 0xA] @@ -553,13 +553,13 @@ _08158F86: bne _08158FC8 adds r0, r4, 0 movs r2, 0x9 - bl sub_80A32E4 + bl PlayCry3 b _08158FD0 .pool _08158FC8: adds r0, r4, 0 movs r2, 0x7 - bl sub_80A32E4 + bl PlayCry3 _08158FD0: ldr r0, =gTasks adds r1, r5, r6 @@ -610,7 +610,7 @@ _08159028: ldrsh r0, [r1, r2] cmp r0, 0xFF bne _0815904E - bl sub_80A36EC + bl IsCryPlaying lsls r0, 24 cmp r0, 0 bne _0815906A @@ -618,12 +618,12 @@ _08159028: asrs r1, 24 adds r0, r6, 0 movs r2, 0xA - bl sub_80A32E4 + bl PlayCry3 adds r0, r4, 0 bl move_anim_task_del b _0815906A _0815904E: - bl sub_80A36EC + bl IsCryPlaying lsls r0, 24 cmp r0, 0 bne _0815906A @@ -631,7 +631,7 @@ _0815904E: asrs r1, 24 mov r0, r8 movs r2, 0x8 - bl sub_80A32E4 + bl PlayCry3 mov r0, r9 bl move_anim_task_del _0815906A: @@ -664,7 +664,7 @@ sub_8159078: @ 8159078 b _081590B0 .pool _081590A0: - bl sub_80A36EC + bl IsCryPlaying lsls r0, 24 cmp r0, 0 bne _081590B0 @@ -686,7 +686,7 @@ sub_81590B8: @ 81590B8 adds r0, r4 lsls r0, 3 adds r0, r1 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r1, [r1] strh r1, [r0, 0x1C] movs r0, 0x40 @@ -705,7 +705,7 @@ sub_81590B8: @ 81590B8 .pool _081590F8: ldr r1, =gUnknown_02038438 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -775,7 +775,7 @@ _0815918C: asrs r1, 24 mov r0, r8 movs r2, 0x4 - bl play_cry_maybe + bl PlayCry6 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 @@ -794,12 +794,12 @@ _081591B0: strh r1, [r0, 0x1A] b _08159204 _081591B8: - bl sub_80A36EC + bl IsCryPlaying lsls r0, 24 cmp r0, 0 bne _08159204 _081591C2: - bl sub_80A369C + bl StopCryAndClearCrySongs ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 @@ -819,14 +819,14 @@ _081591DC: asrs r1, 24 adds r0, r6, 0 movs r2, 0x6 - bl play_cry_maybe + bl PlayCry6 b _081591FE _081591F2: lsls r1, r5, 24 asrs r1, 24 mov r0, r8 movs r2, 0x6 - bl sub_80A32E4 + bl PlayCry3 _081591FE: adds r0, r4, 0 bl move_anim_task_del @@ -844,7 +844,7 @@ sub_8159210: @ 8159210 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r5, [r0] ldrb r0, [r0, 0x2] lsls r0, 24 @@ -854,7 +854,7 @@ sub_8159210: @ 8159210 lsls r1, 24 asrs r1, 24 adds r0, r5, 0 - bl sub_80A3808 + bl PlaySE1WithPanning adds r0, r4, 0 bl move_anim_task_del pop {r4,r5} @@ -869,7 +869,7 @@ sub_8159244: @ 8159244 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r5, [r0] ldrb r0, [r0, 0x2] lsls r0, 24 @@ -879,7 +879,7 @@ sub_8159244: @ 8159244 lsls r1, 24 asrs r1, 24 adds r0, r5, 0 - bl sub_80A383C + bl PlaySE2WithPanning adds r0, r4, 0 bl move_anim_task_del pop {r4,r5} @@ -898,7 +898,7 @@ sub_8159278: @ 8159278 lsls r0, 24 lsrs r0, 24 mov r8, r0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrb r5, [r0, 0x2] ldrb r6, [r0, 0x4] ldrh r1, [r0, 0x6] @@ -1010,8 +1010,8 @@ nullsub_114: @ 8159368 thumb_func_start sub_815936C sub_815936C: @ 815936C - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r1 @@ -1024,9 +1024,9 @@ sub_815936C: @ 815936C thumb_func_start bx_exec_buffer_A_ch0_tbl6 bx_exec_buffer_A_ch0_tbl6: @ 8159388 push {lr} - ldr r2, =gUnknown_02024068 + ldr r2, =gBattleExecBuffer ldr r1, =gBitTable - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r3, [r0] lsls r0, r3, 2 adds r0, r1 @@ -1035,7 +1035,7 @@ bx_exec_buffer_A_ch0_tbl6: @ 8159388 ands r1, r0 cmp r1, 0 beq _081593D4 - ldr r0, =gUnknown_02023064 + ldr r0, =gBattleBufferA lsls r1, r3, 9 adds r1, r0 ldrb r0, [r1] @@ -1067,9 +1067,9 @@ bx_battle_menu_t6_2: @ 81593D8 cmp r0, 0 beq _08159446 movs r0, 0x5 - bl audio_play + bl PlaySE ldr r1, =gUnknown_020244AC - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -1116,7 +1116,7 @@ _08159446: cmp r0, 0 beq _08159484 ldr r5, =gUnknown_020244AC - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] @@ -1125,7 +1125,7 @@ _08159446: cmp r0, 0 beq _0815954E movs r0, 0x5 - bl audio_play + bl PlaySE ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] @@ -1142,7 +1142,7 @@ _08159484: cmp r0, 0 beq _081594C0 ldr r5, =gUnknown_020244AC - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] @@ -1151,7 +1151,7 @@ _08159484: cmp r0, 0 bne _0815954E movs r0, 0x5 - bl audio_play + bl PlaySE ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] @@ -1168,7 +1168,7 @@ _081594C0: cmp r0, 0 beq _0815950C ldr r5, =gUnknown_020244AC - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] @@ -1177,7 +1177,7 @@ _081594C0: cmp r0, 0 beq _0815954E movs r0, 0x5 - bl audio_play + bl PlaySE ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] @@ -1202,7 +1202,7 @@ _0815950C: cmp r0, 0 beq _0815954E ldr r5, =gUnknown_020244AC - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] @@ -1211,7 +1211,7 @@ _0815950C: cmp r0, 0 bne _0815954E movs r0, 0x5 - bl audio_play + bl PlaySE ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] @@ -1237,9 +1237,9 @@ _0815954E: thumb_func_start sub_815955C sub_815955C: @ 815955C push {lr} - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02024064 + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldr r0, =gActiveBank ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -1249,7 +1249,7 @@ sub_815955C: @ 815955C adds r2, 0x1C adds r0, r2 ldr r1, [r0] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy cmp r1, r0 bne _08159580 bl dp01_tbl6_exec_completed @@ -1276,9 +1276,9 @@ _081595A6: thumb_func_start sub_81595AC sub_81595AC: @ 81595AC push {lr} - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r1, =gUnknown_03005D70 - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -1288,7 +1288,7 @@ sub_81595AC: @ 81595AC adds r2, 0x1C adds r0, r2 ldr r1, [r0] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy cmp r1, r0 bne _081595D0 bl dp01_tbl6_exec_completed @@ -1329,13 +1329,13 @@ _0815960E: thumb_func_start bx_wait_t6 bx_wait_t6: @ 8159624 push {lr} - ldr r0, =gUnknown_020244B9 + ldr r0, =gDoingBattleAnim ldrb r0, [r0] cmp r0, 0 beq _0815964A ldr r0, =gUnknown_020244D0 ldr r2, [r0] - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 1 @@ -1364,8 +1364,8 @@ sub_8159660: @ 8159660 ands r0, r1 cmp r0, 0 bne _08159684 - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r1 @@ -1409,7 +1409,7 @@ sub_81596D4: @ 81596D4 push {lr} ldr r0, =gUnknown_020244D0 ldr r2, [r0] - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 1 @@ -1432,8 +1432,8 @@ _081596F6: dp01_tbl6_exec_completed: @ 8159704 push {r4,lr} sub sp, 0x4 - ldr r1, =gUnknown_03005D60 - ldr r4, =gUnknown_02024064 + ldr r1, =gBattleBankFunc + ldr r4, =gActiveBank ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -1451,8 +1451,8 @@ dp01_tbl6_exec_completed: @ 8159704 movs r0, 0x2 movs r1, 0x4 mov r2, sp - bl dp01_prepare_buffer_wireless_probably - ldr r1, =gUnknown_02023064 + bl PrepareBufferDataTransferLink + ldr r1, =gBattleBufferA ldrb r0, [r4] lsls r0, 9 adds r0, r1 @@ -1461,7 +1461,7 @@ dp01_tbl6_exec_completed: @ 8159704 b _0815976A .pool _08159758: - ldr r2, =gUnknown_02024068 + ldr r2, =gBattleExecBuffer ldr r1, =gBitTable ldrb r0, [r4] lsls r0, 2 @@ -1483,7 +1483,7 @@ bx_80364D0: @ 815977C push {lr} ldr r0, =gUnknown_020244D0 ldr r2, [r0] - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 1 @@ -1564,13 +1564,13 @@ sub_8159800: @ 8159800 ldr r4, =gSaveBlock2Ptr ldr r0, [r4] ldrb r0, [r0, 0x8] - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank ldrb r1, [r5] bl sub_805DF84 ldr r0, [r4] ldrb r6, [r0, 0x8] ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -1592,12 +1592,12 @@ sub_8159800: @ 8159800 asrs r2, 16 movs r1, 0x50 movs r3, 0x1E - bl AddObjectToFront - ldr r6, =gUnknown_020241E4 + bl CreateSprite + ldr r6, =gBankSpriteIds ldrb r1, [r5] adds r1, r6 strb r0, [r1] - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldrb r3, [r5] adds r0, r3, r6 ldrb r0, [r0] @@ -1639,7 +1639,7 @@ sub_8159800: @ 8159800 adds r0, r4 ldr r1, =sub_805D7AC str r1, [r0] - ldr r1, =gUnknown_03005D60 + ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -1691,13 +1691,13 @@ sub_8159910: @ 8159910 ldr r1, [r0, 0x8] movs r0, 0x4 strb r0, [r1, 0x8] - ldr r1, =gUnknown_020244B9 + ldr r1, =gDoingBattleAnim movs r0, 0x1 strb r0, [r1] - ldr r5, =gUnknown_02024064 + ldr r5, =gActiveBank ldrb r4, [r5] movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 @@ -1705,7 +1705,7 @@ sub_8159910: @ 8159910 adds r1, r4, 0 movs r3, 0x4 bl move_anim_start_t4 - ldr r1, =gUnknown_03005D60 + ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -1720,8 +1720,8 @@ sub_8159910: @ 8159910 thumb_func_start sub_8159964 sub_8159964: @ 8159964 push {r4,r5,lr} - ldr r1, =gUnknown_02023064 - ldr r5, =gUnknown_02024064 + ldr r1, =gBattleBufferA + ldr r5, =gActiveBank ldrb r0, [r5] lsls r0, 9 adds r1, 0x1 @@ -1731,12 +1731,12 @@ sub_8159964: @ 8159964 ldr r0, [r0] ldr r0, [r0, 0x8] strb r1, [r0, 0x8] - ldr r1, =gUnknown_020244B9 + ldr r1, =gDoingBattleAnim movs r0, 0x1 strb r0, [r1] ldrb r4, [r5] movs r0, 0x1 - bl battle_get_side_with_given_state + bl GetBankByPlayerAI adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 @@ -1744,7 +1744,7 @@ sub_8159964: @ 8159964 adds r1, r4, 0 movs r3, 0x4 bl move_anim_start_t4 - ldr r1, =gUnknown_03005D60 + ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 adds r0, r1 @@ -1780,7 +1780,7 @@ dp01t_10_6_message: @ 81599DC strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r0, [r4] lsls r0, 9 ldr r1, =gUnknown_02023066 @@ -1790,7 +1790,7 @@ dp01t_10_6_message: @ 81599DC ldr r0, =gUnknown_02022E2C movs r1, 0 bl battle_show_message_maybe - ldr r1, =gUnknown_03005D60 + ldr r1, =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -1805,9 +1805,9 @@ dp01t_10_6_message: @ 81599DC thumb_func_start dp01t_11_6_message_for_player_only dp01t_11_6_message_for_player_only: @ 8159A30 push {lr} - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _08159A4C @@ -1834,8 +1834,8 @@ sub_8159A54: @ 8159A54 ldr r1, =gUnknown_02022E16 movs r0, 0xA0 strh r0, [r1] - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r1 @@ -1850,8 +1850,8 @@ _08159A7A: thumb_func_start sub_8159A94 sub_8159A94: @ 8159A94 push {r4,lr} - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 + ldr r1, =gBattleBankFunc + ldr r0, =gActiveBank ldrb r0, [r0] lsls r0, 2 adds r0, r1 @@ -1869,7 +1869,7 @@ _08159AAE: cmp r4, 0x3 ble _08159AAE ldr r1, =gUnknown_020244AC - ldr r0, =gUnknown_02024064 + ldr r0, =gActiveBank ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -1913,8 +1913,8 @@ sub_8159B14: @ 8159B14 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade - ldr r1, =gUnknown_03005D60 - ldr r2, =gUnknown_02024064 + ldr r1, =gBattleBankFunc + ldr r2, =gActiveBank ldrb r0, [r2] lsls r0, 2 adds r0, r1 @@ -1965,11 +1965,11 @@ sub_8159B78: @ 8159B78 sub_8159B84: @ 8159B84 push {lr} ldr r0, =gUnknown_03005D70 - ldr r1, =gUnknown_02024064 + ldr r1, =gActiveBank ldrb r1, [r1] adds r0, r1, r0 ldrb r0, [r0] - ldr r2, =gUnknown_0202406E + ldr r2, =gBattlePartyID lsls r1, 1 adds r1, r2 ldrh r2, [r1] @@ -2116,16 +2116,16 @@ sub_8159C74: @ 8159C74 thumb_func_start sub_8159C80 sub_8159C80: @ 8159C80 push {r4,lr} - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r3, 0x3F cmp r0, 0 bne _08159C94 movs r3, 0xC0 _08159C94: - ldr r2, =gUnknown_02023064 + ldr r2, =gBattleBufferA ldrb r1, [r4] lsls r1, 9 adds r0, r2, 0x1 @@ -2138,7 +2138,7 @@ _08159C94: orrs r0, r1 lsls r1, r3, 24 asrs r1, 24 - bl audio_play_and_stuff + bl PlaySE12WithPanning bl dp01_tbl6_exec_completed pop {r4} pop {r0} @@ -2149,8 +2149,8 @@ _08159C94: thumb_func_start dp01t_34_6_move_anim_start_t3 dp01t_34_6_move_anim_start_t3: @ 8159CC4 push {r4,r5,lr} - ldr r4, =gUnknown_02023064 - ldr r5, =gUnknown_02024064 + ldr r4, =gBattleBufferA + ldr r5, =gActiveBank ldrb r0, [r5] lsls r3, r0, 9 adds r0, r4, 0x3 @@ -2169,7 +2169,7 @@ dp01t_34_6_move_anim_start_t3: @ 8159CC4 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 - bl song_play_for_text + bl PlayBGM b _08159D14 .pool _08159D00: @@ -2181,7 +2181,7 @@ _08159D00: ldrb r1, [r1] lsls r1, 8 orrs r0, r1 - bl fanfare_play + bl PlayFanfare _08159D14: bl dp01_tbl6_exec_completed pop {r4,r5} @@ -2192,8 +2192,8 @@ _08159D14: thumb_func_start sub_8159D20 sub_8159D20: @ 8159D20 push {lr} - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_02024064 + ldr r1, =gBattlePartyID + ldr r0, =gActiveBank ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2207,7 +2207,7 @@ sub_8159D20: @ 8159D20 lsls r0, 16 lsrs r0, 16 movs r1, 0x19 - bl cry_related + bl PlayCry1 bl dp01_tbl6_exec_completed pop {r0} bx r0 @@ -2217,8 +2217,8 @@ sub_8159D20: @ 8159D20 thumb_func_start dp01t_2E_6_battle_intro dp01t_2E_6_battle_intro: @ 8159D5C push {lr} - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 + ldr r1, =gBattleBufferA + ldr r0, =gActiveBank ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 @@ -2240,11 +2240,11 @@ dp01t_2E_6_battle_intro: @ 8159D5C sub_8159D90: @ 8159D90 push {r4,r5,lr} ldr r5, =gUnknown_03005D70 - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r1, [r4] adds r0, r1, r5 ldrb r0, [r0] - ldr r2, =gUnknown_0202406E + ldr r2, =gBattlePartyID lsls r1, 1 adds r1, r2 ldrh r2, [r1] @@ -2260,7 +2260,7 @@ sub_8159D90: @ 8159D90 adds r0, r5 ldrb r0, [r0] bl sub_80729D0 - ldr r1, =gUnknown_03005D60 + ldr r1, =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 adds r0, r1 @@ -2308,8 +2308,8 @@ sub_8159E10: @ 8159E10 sub_8159E1C: @ 8159E1C push {r4-r6,lr} sub sp, 0x4 - ldr r5, =gUnknown_02023064 - ldr r6, =gUnknown_02024064 + ldr r5, =gBattleBufferA + ldr r6, =gActiveBank ldrb r2, [r6] lsls r1, r2, 9 adds r0, r5, 0x1 @@ -2334,7 +2334,7 @@ sub_8159E1C: @ 8159E1C b _08159E68 .pool _08159E5C: - ldr r0, =gUnknown_03005D60 + ldr r0, =gBattleBankFunc ldrb r1, [r6] lsls r1, 2 adds r1, r0 @@ -2367,9 +2367,9 @@ sub_8159E84: @ 8159E84 thumb_func_start sub_8159E90 sub_8159E90: @ 8159E90 push {r4,lr} - ldr r2, =gUnknown_0202433A - ldr r1, =gUnknown_02023064 - ldr r4, =gUnknown_02024064 + ldr r2, =gBattleOutcome + ldr r1, =gBattleBufferA + ldr r4, =gActiveBank ldrb r0, [r4] lsls r0, 9 adds r1, 0x1 @@ -2377,7 +2377,7 @@ sub_8159E90: @ 8159E90 ldrb r0, [r0] strb r0, [r2] movs r0, 0x5 - bl sub_80A2F50 + bl FadeOutMapMusic movs r0, 0x3 bl BeginFastPaletteFade bl dp01_tbl6_exec_completed @@ -2387,7 +2387,7 @@ sub_8159E90: @ 8159E90 ands r0, r1 cmp r0, 0x2 bne _08159ECC - ldr r0, =gUnknown_03005D60 + ldr r0, =gBattleBankFunc ldrb r1, [r4] lsls r1, 2 adds r1, r0 @@ -2460,7 +2460,7 @@ sub_8159F5C: @ 8159F5C push {r4,r5,lr} sub sp, 0x4 movs r0, 0xEC - bl audio_play + bl PlaySE ldr r5, =gPlttBufferUnfaded ldr r1, =sPaletteDecompressionBuffer movs r4, 0x80 @@ -2473,7 +2473,7 @@ sub_8159F5C: @ 8159F5C adds r2, r4, 0 bl CpuFastSet bl GetPlayerAvatarObjectId - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -2556,7 +2556,7 @@ _0815A044: ldr r0, =sub_815A090 str r0, [r4] bl GetPlayerAvatarObjectId - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -2620,7 +2620,7 @@ _0815A0BE: sub_815A0D4: @ 815A0D4 push {lr} adds r2, r0, 0 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] ldrh r3, [r2, 0x20] adds r0, r3 @@ -2698,7 +2698,7 @@ sub_815A160: @ 815A160 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r6, =gUnknown_02038437 + ldr r6, =gAnimationBankTarget ldrb r0, [r6] movs r1, 0x2 bl sub_80A5C6C @@ -2818,7 +2818,7 @@ sub_815A254: @ 815A254 push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -2865,7 +2865,7 @@ _0815A2B2: movs r1, 0 adds r2, r3, 0 bl sub_80A73E0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r5, 0x2E] strh r7, [r5, 0x32] @@ -2956,7 +2956,7 @@ _0815A35C: bl SetGpuReg adds r0, r4, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim movs r0, 0 strh r0, [r4, 0x32] adds r2, r4, 0 @@ -3166,7 +3166,7 @@ sub_815A504: @ 815A504 adds r1, r2 ldr r0, =sub_815A52C str r0, [r1] - ldr r1, =gUnknown_020383FE + ldr r1, =gAnimVisualTaskCount ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] @@ -3233,7 +3233,7 @@ _0815A57A: add r0, r9 strh r1, [r0, 0x12] _0815A59C: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r0, 0xE] ldr r0, =0x0000ffff cmp r1, r0 @@ -3261,7 +3261,7 @@ c3_80DE6F0: @ 815A5C8 adds r1, r2 ldr r0, =sub_815A5F0 str r0, [r1] - ldr r1, =gUnknown_020383FE + ldr r1, =gAnimVisualTaskCount ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] @@ -3354,7 +3354,7 @@ _0815A66E: adds r0, r2 strh r1, [r0, 0x12] _0815A692: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r1, [r0, 0xE] ldr r0, =0x0000ffff cmp r1, r0 @@ -3379,7 +3379,7 @@ sub_815A6C4: @ 815A6C4 adds r4, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] mov r5, sp adds r5, 0x2 @@ -3387,18 +3387,18 @@ sub_815A6C4: @ 815A6C4 mov r2, sp adds r3, r5, 0 bl sub_80A8924 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0815A6F8 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _0815A6F8: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x8] strh r0, [r4, 0x2E] mov r2, sp @@ -3491,7 +3491,7 @@ sub_815A7B0: @ 815A7B0 push {r4,r5,lr} adds r4, r0, 0 bl sub_80A6838 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs movs r0, 0 ldrsh r1, [r5, r0] adds r0, r4, 0 @@ -3521,7 +3521,7 @@ sub_815A7EC: @ 815A7EC bne _0815A84C adds r0, r4, 0 bl sub_80A6838 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs movs r2, 0 ldrsh r1, [r5, r2] adds r0, r4, 0 @@ -3530,9 +3530,9 @@ sub_815A7EC: @ 815A7EC lsls r0, 24 cmp r0, 0 bne _0815A840 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0815A830 @@ -3628,19 +3628,19 @@ sub_815A8C8: @ 815A8C8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0815A8EC - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r0, 0 b _0815A8F0 .pool _0815A8EC: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r0, 0x1 _0815A8F0: strh r0, [r1, 0xE] @@ -3657,16 +3657,16 @@ sub_815A904: @ 815A904 push {lr} lsls r0, 24 lsrs r2, r0, 24 - ldr r0, =gUnknown_02038404 + ldr r0, =gMoveDmgMoveAnim ldr r0, [r0] cmp r0, 0 ble _0815A920 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r0, 0 b _0815A924 .pool _0815A920: - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs movs r0, 0x1 _0815A924: strh r0, [r1, 0xE] @@ -3798,7 +3798,7 @@ _0815AA12: _0815AA32: adds r0, r4, 0 movs r1, 0x1 - bl sub_80082B8 + bl ChangeSpriteAffineAnim _0815AA3A: ldrh r0, [r4, 0x2E] adds r0, 0x1 @@ -3857,12 +3857,12 @@ sub_815AA6C: @ 815AA6C sub_815AAA4: @ 815AAA4 push {r4-r6,lr} adds r5, r0, 0 - ldr r6, =gUnknown_0203841E + ldr r6, =gBattleAnimArgs movs r1, 0x6 ldrsh r0, [r6, r1] cmp r0, 0 bne _0815AAD0 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -3918,7 +3918,7 @@ _0815AB2C: ldr r0, =0x0000fffe _0815AB32: strh r0, [r5, 0x30] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x8] strh r0, [r5, 0x2E] movs r2, 0x34 @@ -3965,7 +3965,7 @@ sub_815AB5C: @ 815AB5C lsls r1, 24 asrs r1, 24 movs r0, 0xDE - bl sub_80A3808 + bl PlaySE1WithPanning b _0815ABBA _0815AB9A: ldrh r0, [r4, 0x24] @@ -4108,16 +4108,16 @@ _0815ACB8: sub_815ACD0: @ 815ACD0 push {r4-r6,lr} adds r5, r0, 0 - ldr r6, =gUnknown_0203841E + ldr r6, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _0815ACEC - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker b _0815ACEE .pool _0815ACEC: - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget _0815ACEE: ldrb r0, [r4] movs r1, 0 @@ -4133,7 +4133,7 @@ _0815ACEE: lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r0, [r2, 0x4] strh r0, [r5, 0x26] movs r3, 0 @@ -4172,7 +4172,7 @@ sub_815AD4C: @ 815AD4C movs r1, 0xFF ands r0, r1 strh r0, [r2, 0x30] - ldr r1, =gUnknown_08329F40 + ldr r1, =gSineTable movs r3, 0x30 ldrsh r0, [r2, r3] lsls r0, 1 @@ -4224,23 +4224,23 @@ sub_815ADB0: @ 815ADB0 lsls r1, 3 ldr r0, =gTasks adds r5, r1, r0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _0815ADDC - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker b _0815ADDE .pool _0815ADDC: - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget _0815ADDE: ldrb r0, [r4] bl sub_80A6190 lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r7, r0, 24 adds r0, r6, 0 @@ -4259,7 +4259,7 @@ _0815AE08: strh r0, [r5, 0xE] movs r0, 0x8 strh r0, [r5, 0x10] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x2] strh r0, [r5, 0x12] strh r2, [r5, 0x14] @@ -4514,7 +4514,7 @@ sub_815AFF0: @ 815AFF0 movs r5, 0 strh r5, [r4, 0x8] strh r5, [r4, 0xA] - ldr r6, =gUnknown_02038436 + ldr r6, =gAnimationBankAttacker ldrb r0, [r6] movs r1, 0x2 bl sub_80A5C6C @@ -4610,7 +4610,7 @@ _0815B0BC: subs r3, r4 lsls r3, 24 lsrs r3, 24 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x40 @@ -4620,10 +4620,10 @@ _0815B0BC: lsls r1, 24 asrs r1, 24 movs r0, 0xBA - bl audio_play_and_stuff + bl PlaySE12WithPanning cmp r4, 0x40 beq _0815B120 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites lsls r1, r4, 4 adds r1, r4 lsls r1, 2 @@ -4640,7 +4640,7 @@ _0815B0BC: strb r0, [r3] adds r5, 0x1C adds r1, r5 - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r1] _0815B120: ldrh r1, [r6, 0xA] @@ -4721,7 +4721,7 @@ _0815B1B2: _0815B1B8: movs r5, 0 movs r7, 0 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites movs r0, 0x1C adds r0, r3 mov r8, r0 @@ -4743,7 +4743,7 @@ _0815B1C4: movs r1, 0x2 str r2, [sp] str r3, [sp, 0x4] - bl StartObjectImageAnim + bl StartSpriteAnim mov r0, r8 adds r1, r4, r0 ldr r0, =sub_815B23C @@ -4809,7 +4809,7 @@ sub_815B23C: @ 815B23C subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0815B270: pop {r4} pop {r0} @@ -4889,7 +4889,7 @@ _0815B2D8: strh r1, [r5, 0x26] movs r0, 0x14 strh r0, [r5, 0x2E] - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -4981,7 +4981,7 @@ _0815B3B4: beq _0815B478 b _0815B496 _0815B3BE: - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -5050,7 +5050,7 @@ _0815B424: bne _0815B496 movs r0, 0 strh r0, [r5, 0x34] - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r6, 4 adds r0, r6 lsls r0, 2 @@ -5093,9 +5093,9 @@ _0815B496: sub_815B49C: @ 815B49C push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0815B4BC @@ -5124,9 +5124,9 @@ sub_815B4D4: @ 815B4D4 ldrh r0, [r4, 0x2E] adds r0, 0x48 strh r0, [r4, 0x2E] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0815B4F8 @@ -5176,7 +5176,7 @@ _0815B500: adds r3, 0x1 lsls r3, 24 lsrs r3, 24 - bl AddObjectAndAnimateForOneFrame + bl CreateSpriteAndAnimate _0815B54C: movs r1, 0x20 ldrsh r0, [r4, r1] @@ -5316,7 +5316,7 @@ _0815B646: cmp r0, 0x3C ble _0815B654 adds r0, r3, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0815B654: pop {r0} bx r0 @@ -5425,7 +5425,7 @@ _0815B71E: movs r0, 0x90 lsls r0, 4 strh r0, [r4, 0x30] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] movs r1, 0x3 bl sub_80A5C6C @@ -5544,9 +5544,9 @@ _0815B81C: movs r0, 0x4C movs r1, 0 bl SetGpuReg - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -5569,7 +5569,7 @@ _0815B84E: add r1, r8 lsls r1, 3 adds r1, r0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0] strh r0, [r1, 0x1C] b _0815BA26 @@ -5607,9 +5607,9 @@ _0815B886: _0815B8A6: b _0815BA7A _0815B8A8: - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] - ldr r1, =gUnknown_02038437 + ldr r1, =gAnimationBankTarget ldrb r1, [r1] mov r2, r8 lsls r4, r2, 2 @@ -5631,7 +5631,7 @@ _0815B8A8: .pool _0815B8E0: ldrb r0, [r5] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r1, r0, 24 _0815B8EA: @@ -5641,7 +5641,7 @@ _0815B8EA: adds r2, 0x4 adds r2, r0 ldr r1, =gUnknown_020244E4 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -5732,9 +5732,9 @@ _0815B99C: lsls r0, 24 cmp r0, 0 beq _0815B9EC - ldr r3, =gUnknown_02020630 - ldr r4, =gUnknown_020241E4 - ldr r2, =gUnknown_02038436 + ldr r3, =gSprites + ldr r4, =gBankSpriteIds + ldr r2, =gAnimationBankAttacker ldrb r0, [r2] adds r0, r4 ldrb r1, [r0] @@ -5748,9 +5748,9 @@ _0815B99C: b _0815BA06 .pool _0815B9EC: - ldr r3, =gUnknown_02020630 - ldr r4, =gUnknown_020241E4 - ldr r2, =gUnknown_02038436 + ldr r3, =gSprites + ldr r4, =gBankSpriteIds + ldr r2, =gAnimationBankAttacker ldrb r0, [r2] adds r0, r4 ldrb r1, [r0] @@ -5771,7 +5771,7 @@ _0815BA06: lsls r0, 2 adds r0, r3 movs r1, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim _0815BA1C: ldr r0, =gTasks mov r1, r9 @@ -5820,9 +5820,9 @@ _0815BA82: movs r0, 0x4C movs r1, 0 bl SetGpuReg - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -5843,9 +5843,9 @@ _0815BAB6: lsls r0, 24 cmp r0, 0 bne _0815BAF6 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -5887,10 +5887,10 @@ c3_80DFBE4: @ 815BB18 push {r4,lr} lsls r0, 24 lsrs r0, 24 - ldr r4, =gUnknown_0203841E - ldr r3, =gUnknown_02020630 - ldr r2, =gUnknown_020241E4 - ldr r1, =gUnknown_02038436 + ldr r4, =gBattleAnimArgs + ldr r3, =gSprites + ldr r2, =gBankSpriteIds + ldr r1, =gAnimationBankAttacker ldrb r1, [r1] adds r1, r2 ldrb r2, [r1] @@ -5916,9 +5916,9 @@ sub_815BB58: @ 815BB58 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - ldr r1, =gUnknown_02038437 + ldr r1, =gAnimationBankTarget ldrb r1, [r1] movs r2, 0x1 bl sub_805E448 @@ -6001,9 +6001,9 @@ _0815BC02: b _0815BC5C .pool _0815BC34: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0815BC58 @@ -6167,7 +6167,7 @@ _0815BD8E: lsls r1, 24 asrs r1, 24 movs r0, 0xE4 - bl audio_play_and_stuff + bl PlaySE12WithPanning b _0815BDF2 _0815BDA6: mov r0, sp @@ -6232,7 +6232,7 @@ sub_815BE04: @ 815BE04 lsls r0, 16 lsrs r5, r0, 16 _0815BE2E: - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0 bl sub_80A5C6C @@ -6247,7 +6247,7 @@ _0815BE2E: lsrs r0, 24 adds r0, 0x20 strh r0, [r7, 0x22] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] strh r0, [r7, 0x30] ldrh r0, [r1, 0x2] @@ -6264,7 +6264,7 @@ _0815BE2E: lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 - bl AddObjectToFront + bl CreateSprite mov r9, r0 mov r1, r9 lsls r1, 24 @@ -6279,7 +6279,7 @@ _0815BE2E: lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 - bl AddObjectToFront + bl CreateSprite mov r8, r0 mov r1, r8 lsls r1, 24 @@ -6289,13 +6289,13 @@ _0815BE2E: lsls r2, r0, 4 add r2, r9 lsls r2, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites mov r10, r1 adds r5, r2, r1 adds r0, r5, 0 movs r1, 0x1 str r2, [sp] - bl StartObjectImageAnim + bl StartSpriteAnim mov r0, r8 lsls r6, r0, 4 add r6, r8 @@ -6304,8 +6304,8 @@ _0815BE2E: adds r4, r6, r1 adds r0, r4, 0 movs r1, 0x2 - bl StartObjectImageAnim - ldr r1, =gUnknown_0203841E + bl StartSpriteAnim + ldr r1, =gBattleAnimArgs ldrh r0, [r1] strh r0, [r5, 0x30] ldrh r0, [r1, 0x2] @@ -6378,7 +6378,7 @@ sub_815BF44: @ 815BF44 negs r1, r1 cmp r0, r1 bge _0815BF92 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x3A ldrsh r1, [r3, r0] lsls r0, r1, 4 @@ -6405,7 +6405,7 @@ _0815BF92: negs r0, r0 cmp r1, r0 bge _0815BFC6 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x3C ldrsh r1, [r3, r0] lsls r0, r1, 4 @@ -6449,7 +6449,7 @@ _0815BFE8: sub_815BFF4: @ 815BFF4 push {r4-r6,lr} adds r4, r0, 0 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites movs r0, 0x3A ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -6459,7 +6459,7 @@ sub_815BFF4: @ 815BFF4 adds r6, 0x1C adds r0, r3, r6 ldr r2, [r0] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy cmp r2, r0 bne _0815C040 movs r1, 0x3C @@ -6472,14 +6472,14 @@ sub_815BFF4: @ 815BFF4 cmp r0, r2 bne _0815C040 adds r0, r3, r5 - bl RemoveObjectAndFreeTiles + bl DestroySprite movs r0, 0x3C ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r0, r4, 0 bl move_anim_8072740 _0815C040: @@ -6527,7 +6527,7 @@ sub_815C050: @ 815C050 orrs r0, r1 mov r1, r12 strb r0, [r1] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r3, 0x1C] _0815C09C: pop {r0} @@ -6607,9 +6607,9 @@ _0815C124: b _0815C1CA .pool _0815C15C: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r4, r0, 24 bl battle_type_is_double @@ -6696,9 +6696,9 @@ _0815C224: adds r5, r0, r1 movs r0, 0 strh r0, [r5, 0xE] - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -6936,9 +6936,9 @@ _0815C41E: ldrh r0, [r4, 0x32] adds r0, 0x80 strh r0, [r4, 0x32] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0815C450 @@ -6982,7 +6982,7 @@ sub_815C478: @ 815C478 lsls r0, 3 ldr r1, =gTasks adds r4, r0, r1 - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs movs r1, 0x2 ldrsh r0, [r5, r1] cmp r0, 0 @@ -7038,14 +7038,14 @@ _0815C4BC: ldrsh r0, [r5, r1] cmp r0, 0 bne _0815C508 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _0815C50A .pool _0815C508: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _0815C50A: ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -7102,7 +7102,7 @@ _0815C570: _0815C57A: b _0815C6A8 _0815C57C: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -7142,7 +7142,7 @@ _0815C57C: b _0815C690 .pool _0815C5D0: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -7184,7 +7184,7 @@ _0815C5D0: b _0815C690 .pool _0815C628: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -7254,22 +7254,22 @@ _0815C6A8: sub_815C6B0: @ 815C6B0 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0815C6D4 strh r0, [r4, 0x20] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] b _0815C6DE .pool _0815C6D4: movs r0, 0xF0 strh r0, [r4, 0x20] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] subs r0, 0x1E _0815C6DE: @@ -7278,7 +7278,7 @@ _0815C6DE: strh r0, [r4, 0x32] ldrb r1, [r1, 0x2] adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r0, =sub_815C700 str r0, [r4, 0x1C] pop {r4} @@ -7294,9 +7294,9 @@ sub_815C700: @ 815C700 ldrh r0, [r4, 0x2E] adds r0, 0x3 strh r0, [r4, 0x2E] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0815C744 @@ -7367,7 +7367,7 @@ sub_815C770: @ 815C770 movs r0, 0x80 lsls r0, 4 strh r0, [r4, 0x24] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrb r0, [r0] bl obj_id_for_side_relative_to_move lsls r0, 24 @@ -7535,7 +7535,7 @@ _0815C8DA: lsls r0, 24 lsrs r0, 24 bl sub_80A73A0 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r7, r0] lsls r0, r1, 4 @@ -7597,12 +7597,12 @@ sub_815C95C: @ 815C95C ldrsh r0, [r5, r1] cmp r0, 0 bne _0815C9BC - ldr r6, =gUnknown_0203841E + ldr r6, =gBattleAnimArgs movs r2, 0x4 ldrsh r0, [r6, r2] cmp r0, 0 bne _0815C990 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -7705,17 +7705,17 @@ sub_815CA20: @ 815CA20 ldrsh r0, [r2, r1] cmp r0, 0 bne _0815CB2C - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r3, 0 ldrsh r1, [r0, r3] mov r8, r0 cmp r1, 0 bne _0815CA5C - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _0815CA5E .pool _0815CA5C: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _0815CA5E: ldrb r0, [r0] strh r0, [r2, 0x1E] @@ -7783,13 +7783,13 @@ _0815CAD2: cmp r0, 0 bne _0815CAF8 ldrb r0, [r6, 0x1E] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsls r2, r5, 4 cmp r0, 0 bne _0815CB08 _0815CAF8: - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r2, r5, 4 adds r1, r2, r5 lsls r1, 2 @@ -7798,7 +7798,7 @@ _0815CAF8: adds r0, 0x10 strh r0, [r1, 0x26] _0815CB08: - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r2, r5 lsls r0, 2 adds r0, r1 @@ -7824,7 +7824,7 @@ _0815CB2C: cmp r0, 0x3 bne _0815CB50 strh r4, [r2, 0xC] - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r5, 4 adds r1, r5 lsls r1, 2 @@ -7842,7 +7842,7 @@ _0815CB50: bne _0815CB78 adds r0, r5, 0 bl sub_80A7344 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r5, 4 adds r0, r5 lsls r0, 2 @@ -7919,7 +7919,7 @@ _0815CBFA: subs r0, r1 _0815CC02: strh r0, [r4, 0x30] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0] strh r0, [r4, 0x32] lsls r0, 16 @@ -8019,7 +8019,7 @@ sub_815CC94: @ 815CC94 ldrh r1, [r4] movs r0, 0x44 bl SetGpuReg - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r5, 0x2E] adds r0, r5, 0 @@ -8090,7 +8090,7 @@ _0815CD4A: bne _0815CDAA adds r0, r4, 0 movs r1, 0x1 - bl sub_80082B8 + bl ChangeSpriteAffineAnim b _0815CD7A _0815CD60: adds r0, r4, 0 @@ -8139,7 +8139,7 @@ _0815CDAA: sub_815CDB4: @ 815CDB4 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_80A5C6C @@ -8152,7 +8152,7 @@ sub_815CDB4: @ 815CDB4 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x2] @@ -8197,14 +8197,14 @@ sub_815CDFC: @ 815CDFC cmp r0, 0xC3 ble _0815CE48 _0815CE36: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] bl sub_80A82E4 subs r0, 0x1 b _0815CE52 .pool _0815CE48: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] bl sub_80A82E4 adds r0, 0x1 @@ -8304,16 +8304,16 @@ sub_815CED8: @ 815CED8 b _0815D058 .pool _0815CF18: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0815CFC4 movs r0, 0 str r0, [sp, 0x1C] - ldr r6, =gUnknown_0202406E - ldr r4, =gUnknown_02038437 + ldr r6, =gBattlePartyID + ldr r4, =gAnimationBankTarget ldrb r0, [r4] lsls r0, 1 adds r0, r6 @@ -8344,7 +8344,7 @@ _0815CF18: cmp r0, 0 bne _0815CFBC adds r0, r2, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0815CF9C @@ -8380,8 +8380,8 @@ _0815CFBE: _0815CFC4: movs r2, 0x1 str r2, [sp, 0x1C] - ldr r6, =gUnknown_0202406E - ldr r4, =gUnknown_02038437 + ldr r6, =gBattlePartyID + ldr r4, =gAnimationBankTarget ldrb r0, [r4] lsls r0, 1 adds r0, r6 @@ -8412,7 +8412,7 @@ _0815CFC4: cmp r0, 0 bne _0815D054 adds r0, r2, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0815D03C @@ -8445,12 +8445,12 @@ _0815D056: _0815D058: mov r10, r3 _0815D05A: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] bl sub_80A8328 lsls r0, 24 lsrs r7, r0, 24 - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] movs r1, 0 bl sub_80A5C6C @@ -8475,7 +8475,7 @@ _0815D05A: str r3, [sp, 0x8] mov r0, r8 str r0, [sp, 0xC] - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] str r0, [sp, 0x10] movs r0, 0x1 @@ -8488,7 +8488,7 @@ _0815D05A: adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r5, r6, 4 adds r5, r6 lsls r5, 2 @@ -8624,7 +8624,7 @@ sub_815D1BC: @ 815D1BC ldrh r0, [r5, 0x1E] adds r0, 0x80 strh r0, [r5, 0x1E] - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -8678,16 +8678,16 @@ sub_815D240: @ 815D240 lsls r1, 3 ldr r0, =gTasks adds r4, r1, r0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _0815D26C - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _0815D26E .pool _0815D26C: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _0815D26E: ldrb r5, [r0] movs r6, 0 @@ -8704,7 +8704,7 @@ _0815D26E: movs r0, 0x18 strh r0, [r4, 0x18] adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -8727,14 +8727,14 @@ _0815D2B4: ldrh r0, [r4, 0x22] adds r0, 0x42 strh r0, [r4, 0x24] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrb r0, [r0] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] adds r0, r5, 0 - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -8829,7 +8829,7 @@ sub_815D398: @ 815D398 ldr r1, =gTasks adds r6, r0, r1 ldrb r0, [r6, 0x12] - bl battle_get_per_side_status_permutated + bl GetBankIdentity_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -8964,7 +8964,7 @@ _0815D47E: lsls r2, r7, 16 asrs r2, 16 lsls r0, r2, 1 - ldr r7, =gUnknown_08329F40 + ldr r7, =gSineTable adds r0, r7 ldrh r0, [r0] lsls r0, 16 @@ -9171,7 +9171,7 @@ sub_815D64C: @ 815D64C adds r4, r0 movs r0, 0 strh r0, [r4, 0x8] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrb r0, [r0] bl obj_id_for_side_relative_to_move adds r1, r0, 0 @@ -9224,7 +9224,7 @@ sub_815D694: @ 815D694 ands r0, r5 cmp r0, 0 bne _0815D6F8 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 @@ -9236,7 +9236,7 @@ sub_815D694: @ 815D694 b _0815D708 .pool _0815D6F8: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 @@ -9343,10 +9343,10 @@ sub_815D7B4: @ 815D7B4 ldrh r6, [r4, 0x20] ldrh r5, [r4, 0x22] bl sub_80A6838 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrb r1, [r0] adds r0, r4, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim movs r0, 0x20 ldrsh r1, [r4, r0] movs r0, 0x22 @@ -9432,15 +9432,15 @@ _0815D86A: sub_815D870: @ 815D870 push {r4-r6,lr} adds r5, r0, 0 - ldr r6, =gUnknown_0203841E + ldr r6, =gBattleAnimArgs ldrh r0, [r6, 0x6] strh r0, [r5, 0x2E] ldrb r1, [r6] adds r0, r5, 0 - bl StartObjectRotScalAnim - ldr r0, =gUnknown_02038437 + bl StartSpriteAffineAnim + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0815D896 @@ -9448,7 +9448,7 @@ sub_815D870: @ 815D870 negs r0, r0 strh r0, [r6, 0x2] _0815D896: - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -9559,7 +9559,7 @@ _0815D95A: mov r12, r2 cmp r0, 0 beq _0815D998 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites movs r2, 0x26 ldrsh r0, [r4, r2] lsls r1, r0, 4 @@ -9574,7 +9574,7 @@ _0815D95A: b _0815D9AE .pool _0815D998: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -9631,7 +9631,7 @@ _0815D9F2: bgt _0815DA12 adds r0, r5, 0 bl DestroyTask - ldr r1, =gUnknown_020383FE + ldr r1, =gAnimVisualTaskCount ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] @@ -9744,7 +9744,7 @@ _0815DAA6: mov r12, r3 cmp r0, 0 beq _0815DB00 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites movs r2, 0x26 ldrsh r0, [r4, r2] lsls r1, r0, 4 @@ -9759,7 +9759,7 @@ _0815DAA6: b _0815DB16 .pool _0815DB00: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -9848,13 +9848,13 @@ sub_815DB90: @ 815DB90 lsls r0, 3 mov r1, r8 adds r4, r0, r1 - ldr r1, =gUnknown_020241E4 - ldr r2, =gUnknown_02038436 + ldr r1, =gBankSpriteIds + ldr r2, =gAnimationBankAttacker ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] strh r0, [r4, 0x26] - ldr r5, =gUnknown_0203841E + ldr r5, =gBattleAnimArgs ldrh r0, [r5] strh r0, [r4, 0x24] ldrh r0, [r5] @@ -9872,7 +9872,7 @@ sub_815DB90: @ 815DB90 strh r0, [r4, 0x14] _0815DBD4: ldrb r0, [r2] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0815DC04 @@ -9904,7 +9904,7 @@ _0815DC20: orrs r0, r1 _0815DC28: strh r0, [r4, 0xC] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r3, 0x4 ldrsh r1, [r0, r3] movs r2, 0x80 @@ -9966,7 +9966,7 @@ sub_815DCA4: @ 815DCA4 lsls r0, 3 ldr r1, =gTasks adds r5, r0, r1 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, 0 @@ -9984,11 +9984,11 @@ _0815DCC4: ldrsh r0, [r4, r1] cmp r0, 0 bne _0815DCE8 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _0815DCEA .pool _0815DCE8: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _0815DCEA: ldrb r4, [r0] adds r0, r4, 0 @@ -10008,7 +10008,7 @@ _0815DCEA: lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x14] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrb r0, [r0] bl obj_id_for_side_relative_to_move adds r1, r0, 0 @@ -10154,7 +10154,7 @@ _0815DE0C: strh r0, [r2, 0x2] movs r5, 0 mov r8, r2 - ldr r7, =gUnknown_02020630 + ldr r7, =gSprites _0815DE44: lsls r0, r5, 1 add r0, sp @@ -10171,7 +10171,7 @@ _0815DE44: lsls r3, 24 lsrs r3, 24 ldr r0, =gUnknown_085CE76C - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 @@ -10248,7 +10248,7 @@ sub_815DEBC: @ 815DEBC subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0815DF02: pop {r4} pop {r0} @@ -10268,14 +10268,14 @@ sub_815DF0C: @ 815DF0C adds r4, r1 movs r0, 0 strh r0, [r4, 0x8] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x2] strh r0, [r4, 0xA] ldrb r0, [r1] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -10357,9 +10357,9 @@ sub_815DFCC: @ 815DFCC lsrs r0, 24 movs r2, 0xD0 lsls r2, 1 - ldr r1, =gUnknown_02038436 + ldr r1, =gAnimationBankAttacker ldrb r3, [r1] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrb r1, [r1] str r1, [sp] movs r1, 0xA @@ -10386,14 +10386,14 @@ sub_815DFCC: @ 815DFCC sub_815E01C: @ 815E01C push {r4-r6,lr} adds r5, r0, 0 - ldr r6, =gUnknown_02038436 + ldr r6, =gAnimationBankAttacker ldrb r0, [r6] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0815E038 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] negs r0, r0 strh r0, [r1] @@ -10402,7 +10402,7 @@ _0815E038: movs r1, 0 bl sub_80A5C6C lsls r0, 24 - ldr r4, =gUnknown_0203841E + ldr r4, =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4] adds r0, r1 @@ -10443,14 +10443,14 @@ _0815E080: _0815E09A: adds r0, r5, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0xA0 lsls r0, 2 strh r0, [r5, 0x2E] _0815E0A8: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0815E0C8 @@ -10534,9 +10534,9 @@ _0815E144: strh r0, [r6, 0x14] strh r1, [r6, 0x16] _0815E14E: - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0815E188 @@ -10579,7 +10579,7 @@ _0815E1A8: subs r0, r4, r0 _0815E1AC: strh r0, [r6, 0x1E] - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] movs r1, 0x3 bl sub_80A5C6C @@ -10598,7 +10598,7 @@ _0815E1D0: asrs r0, 2 subs r0, r4, r0 strh r0, [r6, 0x20] - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -10670,7 +10670,7 @@ _0815E238: bl sub_815E34C movs r6, 0 mov r8, r4 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites _0815E272: add r0, sp, 0x10 movs r2, 0 @@ -10680,7 +10680,7 @@ _0815E272: ldrsh r2, [r3, r0] ldr r0, =gUnknown_085CE7EC movs r3, 0x23 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 @@ -10735,7 +10735,7 @@ _0815E2DC: _0815E2EC: strh r0, [r1, 0x26] _0815E2EE: - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r2, r3 lsls r0, 2 adds r0, r1 @@ -10907,7 +10907,7 @@ sub_815E404: @ 815E404 subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0815E43A: pop {r4} pop {r0} @@ -10919,7 +10919,7 @@ _0815E43A: sub_815E444: @ 815E444 push {r4,lr} adds r4, r0, 0 - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] @@ -10956,7 +10956,7 @@ sub_815E47C: @ 815E47C lsls r0, 3 ldr r1, =gTasks adds r7, r0, r1 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker mov r10, r0 ldrb r0, [r0] movs r1, 0x2 @@ -10971,7 +10971,7 @@ sub_815E47C: @ 815E47C lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x20] - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget mov r8, r0 ldrb r0, [r0] movs r1, 0x2 @@ -11014,13 +11014,13 @@ _0815E4EE: adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x26] cmp r0, 0x40 beq _0815E5B8 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites movs r0, 0x26 ldrsh r1, [r7, r0] lsls r0, r1, 4 @@ -11062,7 +11062,7 @@ _0815E4EE: bl sub_80A68D4 mov r1, r10 ldrb r0, [r1] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -11074,7 +11074,7 @@ _0815E4EE: lsls r0, 2 adds r0, r4 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim _0815E596: ldr r0, =sub_815E5CC str r0, [r7] @@ -11133,7 +11133,7 @@ _0815E5FE: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 bl sub_80A6900 ldrh r0, [r4, 0xC] @@ -11151,7 +11151,7 @@ _0815E634: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 bl sub_80A6900 lsls r0, 24 @@ -11175,7 +11175,7 @@ _0815E658: ldrh r2, [r4, 0xC] adds r2, 0x1 strh r2, [r4, 0xC] - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites movs r1, 0x26 ldrsh r0, [r4, r1] lsls r1, r0, 4 @@ -11204,14 +11204,14 @@ _0815E658: ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0815E6BE: ldrh r0, [r4, 0x8] adds r0, 0x1 @@ -11231,17 +11231,17 @@ _0815E6D2: sub_815E6D8: @ 815E6D8 push {r4-r6,lr} adds r4, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r2, 0 ldrsh r1, [r0, r2] adds r6, r0, 0 cmp r1, 0 bne _0815E6F4 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _0815E6F6 .pool _0815E6F4: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _0815E6F6: ldrb r5, [r0] ldrh r2, [r4, 0x4] @@ -11420,7 +11420,7 @@ sub_815E840: @ 815E840 push {r4,lr} lsls r0, 24 lsrs r1, r0, 24 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs movs r3, 0 ldrsh r0, [r2, r3] cmp r0, 0 @@ -11479,7 +11479,7 @@ sub_815E898: @ 815E898 ands r0, r1 cmp r0, 0 bne _0815E8E0 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -11490,7 +11490,7 @@ sub_815E898: @ 815E898 b _0815E8F0 .pool _0815E8E0: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -11507,7 +11507,7 @@ _0815E8F2: lsrs r5, r0, 24 cmp r5, 0 bne _0815E94E - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -11548,16 +11548,16 @@ _0815E94E: sub_815E954: @ 815E954 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _0815E970 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker b _0815E972 .pool _0815E970: - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget _0815E972: ldrb r0, [r4] movs r1, 0x2 @@ -11578,7 +11578,7 @@ _0815E972: _0815E996: movs r2, 0 strh r2, [r5, 0x2E] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1, 0x2] strh r0, [r5, 0x30] strh r2, [r5, 0x32] @@ -11644,7 +11644,7 @@ _0815EA10: sub_815EA14: @ 815EA14 push {lr} adds r3, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -11756,7 +11756,7 @@ _0815EAE4: ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] - ldr r3, =gUnknown_08329F40 + ldr r3, =gSineTable movs r0, 0x30 ldrsh r1, [r4, r0] lsls r0, r1, 2 @@ -11799,7 +11799,7 @@ _0815EB36: ldrh r0, [r4, 0x22] subs r0, r1 strh r0, [r4, 0x22] - ldr r3, =gUnknown_08329F40 + ldr r3, =gSineTable movs r0, 0x30 ldrsh r1, [r4, r0] lsls r0, r1, 2 @@ -11829,7 +11829,7 @@ _0815EB74: ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] - ldr r3, =gUnknown_08329F40 + ldr r3, =gSineTable movs r0, 0x30 ldrsh r1, [r4, r0] lsls r0, r1, 2 @@ -11950,7 +11950,7 @@ sub_815EC48: @ 815EC48 lsrs r7, r0, 24 cmp r7, 0x1 bne _0815ECB4 - ldr r5, =gUnknown_02038436 + ldr r5, =gAnimationBankAttacker ldrb r0, [r5] movs r1, 0 bl sub_80A5C6C @@ -11974,9 +11974,9 @@ _0815ECAC: b _0815ECD2 .pool _0815ECB4: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0815ECD0 @@ -12041,7 +12041,7 @@ _0815ED34: _0815ED44: b _0815EE50 _0815ED46: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r1, 0x26 ldrsh r0, [r3, r1] lsls r1, r0, 4 @@ -12067,7 +12067,7 @@ _0815ED72: b _0815EE50 .pool _0815ED78: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r1, 0x26 ldrsh r0, [r3, r1] lsls r1, r0, 4 @@ -12111,7 +12111,7 @@ _0815EDA8: strh r0, [r3, 0x8] b _0815EE78 _0815EDCE: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 @@ -12141,7 +12141,7 @@ _0815EDF8: bne _0815EE78 b _0815EE50 _0815EE08: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r1, 0x26 ldrsh r0, [r3, r1] lsls r1, r0, 4 @@ -12156,7 +12156,7 @@ _0815EE08: b _0815EE40 .pool _0815EE28: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r1, 0x26 ldrsh r0, [r3, r1] lsls r1, r0, 4 @@ -12187,7 +12187,7 @@ _0815EE54: b _0815EE78 .pool _0815EE60: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 @@ -12209,7 +12209,7 @@ _0815EE78: sub_815EE84: @ 815EE84 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -12217,18 +12217,18 @@ sub_815EE84: @ 815EE84 adds r0, r4, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker b _0815EEAA .pool _0815EEA8: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget _0815EEAA: ldrb r0, [r0] strh r0, [r4, 0x3C] ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -12578,7 +12578,7 @@ sub_815F10C: @ 815F10C lsls r2, 16 asrs r2, 16 movs r3, 0x5 - bl AddObjectToFront + bl CreateSprite _0815F16A: movs r0, 0x38 ldrsh r1, [r4, r0] @@ -12602,7 +12602,7 @@ _0815F17C: sub_815F18C: @ 815F18C push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -12610,7 +12610,7 @@ sub_815F18C: @ 815F18C movs r1, 0x3 bl sub_80A5C6C ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 beq _0815F1B8 @@ -12619,7 +12619,7 @@ sub_815F18C: @ 815F18C cmp r0, 0 beq _0815F1D0 _0815F1B8: - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r1, [r5, 0x20] ldrh r0, [r2] subs r0, r1, r0 @@ -12629,7 +12629,7 @@ _0815F1B8: b _0815F1DE .pool _0815F1D0: - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r1, [r5, 0x20] ldrh r0, [r2] adds r0, r1, r0 @@ -12720,7 +12720,7 @@ _0815F254: strh r0, [r4, 0xE] adds r0, r5, 0 bl sub_80A7344 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r5, 4 adds r0, r5 lsls r0, 2 @@ -12737,7 +12737,7 @@ _0815F2A0: b _0815F310 .pool _0815F2AC: - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0 bl refresh_graphics_maybe @@ -12745,8 +12745,8 @@ _0815F2AC: lsls r0, 24 cmp r0, 0 beq _0815F2EE - ldr r3, =gUnknown_02020630 - ldr r2, =gUnknown_020241E4 + ldr r3, =gSprites + ldr r2, =gBankSpriteIds ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] @@ -12766,7 +12766,7 @@ _0815F2AC: lsls r0, 2 adds r0, r3 movs r1, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim _0815F2EE: mov r4, r9 adds r3, r7, 0 @@ -12827,7 +12827,7 @@ _0815F360: beq _0815F43C b _0815F482 _0815F36A: - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r3, 4 adds r1, r3 lsls r1, 2 @@ -12849,7 +12849,7 @@ _0815F394: adds r1, 0x70 movs r5, 0 strh r1, [r4, 0x1C] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, r3, 4 adds r0, r3 lsls r0, 2 @@ -12887,7 +12887,7 @@ _0815F3CE: lsls r1, 24 asrs r1, 24 movs r0, 0x7D - bl audio_play_and_stuff + bl PlaySE12WithPanning ldr r1, =0xfffff800 adds r0, r1, 0 ldrh r2, [r4, 0x1C] @@ -12905,7 +12905,7 @@ _0815F400: movs r0, 0 strh r0, [r4, 0x1C] _0815F410: - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r3, 4 adds r1, r3 lsls r1, 2 @@ -12930,7 +12930,7 @@ _0815F43C: ldrh r0, [r4, 0x1C] adds r0, 0x70 strh r0, [r4, 0x1C] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r3, 4 adds r1, r3 lsls r1, 2 @@ -12957,7 +12957,7 @@ _0815F460: lsls r1, 24 asrs r1, 24 movs r0, 0x7D - bl audio_play_and_stuff + bl PlaySE12WithPanning adds r0, r6, 0 bl move_anim_task_del _0815F482: @@ -12971,9 +12971,9 @@ _0815F482: sub_815F48C: @ 815F48C push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gUnknown_02038437 + ldr r4, =gAnimationBankTarget ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0815F4B8 @@ -12995,7 +12995,7 @@ _0815F4B8: strb r0, [r1] ldr r4, =0x0000ffa0 _0815F4C8: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] movs r1, 0x3 bl sub_80A5C6C @@ -13047,7 +13047,7 @@ _0815F520: lsls r1, 24 asrs r1, 24 movs r0, 0xCD - bl audio_play_and_stuff + bl PlaySE12WithPanning movs r0, 0 strh r0, [r4, 0x26] b _0815F5D8 @@ -13056,7 +13056,7 @@ _0815F544: adds r1, 0x4 movs r5, 0 strh r1, [r4, 0x30] - ldr r2, =gUnknown_08329F40 + ldr r2, =gSineTable movs r3, 0x30 ldrsh r0, [r4, r3] lsls r0, 1 @@ -13076,7 +13076,7 @@ _0815F544: lsls r1, 24 asrs r1, 24 movs r0, 0xCD - bl audio_play_and_stuff + bl PlaySE12WithPanning strh r5, [r4, 0x30] strh r5, [r4, 0x26] b _0815F5D8 @@ -13086,7 +13086,7 @@ _0815F584: adds r1, 0x6 movs r3, 0 strh r1, [r4, 0x30] - ldr r2, =gUnknown_08329F40 + ldr r2, =gSineTable movs r5, 0x30 ldrsh r0, [r4, r5] lsls r0, 1 @@ -13118,7 +13118,7 @@ _0815F5B4: lsls r1, 24 asrs r1, 24 movs r0, 0xC0 - bl audio_play_and_stuff + bl PlaySE12WithPanning movs r0, 0 strh r0, [r4, 0x30] _0815F5D8: @@ -13195,7 +13195,7 @@ sub_815F620: @ 815F620 lsls r0, r6, 4 adds r0, r6 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 bl obj_delete_but_dont_free_vram _0815F66E: @@ -13204,7 +13204,7 @@ _0815F66E: b _0815F780 .pool _0815F67C: - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 @@ -13250,7 +13250,7 @@ _0815F67C: strh r1, [r0, 0x8] ldr r0, =gUnknown_020244D0 ldr r1, [r0] - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] ldr r1, [r1] lsls r0, 2 @@ -13375,7 +13375,7 @@ sub_815F7C4: @ 815F7C4 strh r0, [r4, 0x30] ldr r0, =gUnknown_020244D0 ldr r1, [r0] - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] ldr r1, [r1] lsls r0, 2 @@ -13477,10 +13477,10 @@ sub_815F8A0: @ 815F8A0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r3, =gUnknown_0203841E + ldr r3, =gBattleAnimArgs movs r2, 0 strh r2, [r3, 0xE] - ldr r1, =gUnknown_0203841A + ldr r1, =gHappinessMoveAnim ldrb r0, [r1] ldrb r1, [r1] adds r0, r1, 0 @@ -13569,14 +13569,14 @@ _0815F940: ldrh r1, [r6, 0xA] adds r0, r1 strh r0, [r6, 0xA] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 mov r9, r4 cmp r0, 0 bne _0815F998 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r3, r7, 4 adds r1, r3, r7 lsls r1, 2 @@ -13590,7 +13590,7 @@ _0815F940: b _0815F9B2 .pool _0815F998: - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r4, r7, 4 adds r2, r4, r7 lsls r2, 2 @@ -13647,7 +13647,7 @@ _0815F9F4: ldr r3, [r0, 0xC] mov r9, r3 ldrh r6, [r0] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] bl sub_80A82E4 lsls r0, 24 @@ -13656,13 +13656,13 @@ _0815F9F4: b _0815FB4E .pool _0815FA28: - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0815FAC8 - ldr r7, =gUnknown_0202406E + ldr r7, =gBattlePartyID ldrb r0, [r4] lsls r0, 1 adds r0, r7 @@ -13708,7 +13708,7 @@ _0815FA9C: _0815FA9E: movs r0, 0x1 bl obj_id_for_side_relative_to_move - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -13726,7 +13726,7 @@ _0815FA9E: b _0815FB50 .pool _0815FAC8: - ldr r7, =gUnknown_0202406E + ldr r7, =gBattlePartyID ldrb r0, [r4] lsls r0, 1 adds r0, r7 @@ -13772,7 +13772,7 @@ _0815FB2C: _0815FB2E: movs r0, 0x1 bl obj_id_for_side_relative_to_move - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -13788,7 +13788,7 @@ _0815FB2E: _0815FB4E: ldr r5, =0x0000ffe0 _0815FB50: - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] movs r1, 0x1 bl sub_80A5C6C @@ -13802,7 +13802,7 @@ _0815FB50: str r4, [sp, 0x8] mov r0, r9 str r0, [sp, 0xC] - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] str r0, [sp, 0x10] movs r0, 0 @@ -13822,7 +13822,7 @@ _0815FB50: ldrh r0, [r0, 0x2] cmp r0, 0 beq _0815FBBA - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r5, 4 adds r0, r5 lsls r0, 2 @@ -13864,14 +13864,14 @@ _0815FBE8: ldrh r2, [r6, 0xA] adds r0, r2 strh r0, [r6, 0xA] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 mov r9, r4 cmp r0, 0 bne _0815FC40 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r4, r5, 4 adds r2, r4, r5 lsls r2, 2 @@ -13887,7 +13887,7 @@ _0815FBE8: b _0815FC56 .pool _0815FC40: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r3, r5, 4 adds r1, r3, r5 lsls r1, 2 @@ -13918,15 +13918,15 @@ _0815FC56: ldrsh r0, [r6, r1] cmp r0, 0 bne _0815FCD6 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0815FCB4 lsls r4, r5, 16 asrs r4, 16 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] movs r1, 0 bl sub_80A5C6C @@ -13939,7 +13939,7 @@ _0815FC56: _0815FCB4: lsls r4, r5, 16 asrs r4, 16 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] movs r1, 0 bl sub_80A5C6C @@ -13951,7 +13951,7 @@ _0815FCCA: ldrh r0, [r6, 0x24] adds r0, 0x1 strh r0, [r6, 0x24] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldr r0, =0x0000ffff strh r0, [r1, 0xE] _0815FCD6: @@ -13991,12 +13991,12 @@ _0815FD08: lsls r0, r5, 4 adds r0, r5 lsls r0, 2 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites adds r0, r5 bl sub_80A8610 - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 mov r9, r4 cmp r0, 0 @@ -14051,17 +14051,17 @@ _0815FD8C: ldrh r3, [r2, 0xA] adds r0, r3 strh r0, [r2, 0xA] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker mov r10, r0 ldrb r0, [r0] str r2, [sp, 0x18] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 mov r9, r4 ldr r2, [sp, 0x18] cmp r0, 0 bne _0815FE0C - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r5, r7, 4 adds r0, r5, r7 lsls r0, 2 @@ -14091,7 +14091,7 @@ _0815FD8C: b _0815FE44 .pool _0815FE0C: - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r5, r7, 4 adds r0, r5, r7 lsls r0, 2 @@ -14126,7 +14126,7 @@ _0815FE44: adds r0, r1 ldrb r1, [r0, 0xA] strh r1, [r0, 0xA] - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r3, r7 lsls r0, 2 adds r0, r1 @@ -14160,7 +14160,7 @@ sub_815FE80: @ 815FE80 beq _0815FF3A b _0815FFBC _0815FE92: - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs movs r2, 0xE ldrsh r1, [r0, r2] movs r0, 0x1 @@ -14173,8 +14173,8 @@ _0815FE92: lsls r1, 24 asrs r1, 24 movs r0, 0x7A - bl audio_play_and_stuff - ldr r0, =gUnknown_02038437 + bl PlaySE12WithPanning + ldr r0, =gAnimationBankTarget ldrb r0, [r0] movs r1, 0x1 bl sub_80A5C6C @@ -14194,9 +14194,9 @@ _0815FE92: negs r0, r0 ands r0, r1 strb r0, [r2] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -14207,7 +14207,7 @@ _0815FE92: bne _0815FFBC movs r0, 0x1 bl obj_id_for_side_relative_to_move - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -14263,9 +14263,9 @@ _0815FF6E: ldrh r1, [r4, 0x32] adds r0, r1 strh r0, [r4, 0x32] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0815FF9C @@ -14332,14 +14332,14 @@ _0815FFF4: .4byte _081600CC .4byte _08160132 _08160008: - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] movs r1, 0 bl sub_80A5C6C lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] movs r1, 0 bl sub_80A5C6C @@ -14366,12 +14366,12 @@ _0816003E: b _08160150 .pool _08160058: - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02038436 + ldr r1, =gBankSpriteIds + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -14422,12 +14422,12 @@ _081600B4: strh r1, [r0, 0x26] b _08160150 _081600CC: - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02038436 + ldr r1, =gBankSpriteIds + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -14472,12 +14472,12 @@ _0816012A: strh r0, [r2, 0x26] b _08160150 _08160132: - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02038436 + ldr r1, =gBankSpriteIds + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -14509,9 +14509,9 @@ sub_8160164: @ 8160164 lsrs r0, 24 movs r5, 0 strh r0, [r4, 0xE] - ldr r0, =gUnknown_02038436 + ldr r0, =gAnimationBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 movs r2, 0x1 negs r2, r2 @@ -14521,7 +14521,7 @@ sub_8160164: @ 8160164 movs r1, 0x1 _08160198: strh r1, [r4, 0x10] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0xE ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -14579,14 +14579,14 @@ _0816020A: movs r2, 0xFF ands r0, r2 strh r0, [r4, 0x1E] - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites movs r6, 0xE ldrsh r0, [r4, r6] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 - ldr r3, =gUnknown_08329F40 + ldr r3, =gSineTable movs r6, 0x1E ldrsh r0, [r4, r6] lsls r0, 1 @@ -14637,14 +14637,14 @@ _08160284: movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x1E] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites movs r1, 0xE ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 - ldr r2, =gUnknown_08329F40 + ldr r2, =gSineTable movs r5, 0x1E ldrsh r0, [r4, r5] lsls r0, 1 @@ -14683,9 +14683,9 @@ _081602DA: sub_81602E0: @ 81602E0 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 ldrh r0, [r4, 0x2E] ldrh r1, [r4, 0x30] @@ -14726,13 +14726,13 @@ _08160326: sub_8160338: @ 8160338 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_02038437 + ldr r0, =gAnimationBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 cmp r0, 0 bne _0816037C - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 @@ -14747,7 +14747,7 @@ sub_8160338: @ 8160338 strh r0, [r4, 0x30] adds r0, r4, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim b _08160396 .pool _0816037C: @@ -14755,7 +14755,7 @@ _0816037C: strh r0, [r4, 0x2E] movs r0, 0xC0 strh r0, [r4, 0x30] - ldr r1, =gUnknown_0203841E + ldr r1, =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -14777,7 +14777,7 @@ _08160396: sub_81603A8: @ 81603A8 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gUnknown_02038436 + ldr r4, =gAnimationBankAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A5C6C @@ -14952,10 +14952,10 @@ sub_81604F0: @ 81604F0 push {lr} lsls r0, 24 lsrs r3, r0, 24 - ldr r2, =gUnknown_0203841E + ldr r2, =gBattleAnimArgs movs r0, 0 strh r0, [r2, 0xE] - ldr r0, =gUnknown_0203841C + ldr r0, =gWeatherMoveAnim ldrh r1, [r0] movs r0, 0x60 ands r0, r1 @@ -15005,7 +15005,7 @@ sub_8160544: @ 8160544 adds r4, r0 movs r0, 0 strh r0, [r4, 0x8] - ldr r0, =gUnknown_0203841E + ldr r0, =gBattleAnimArgs ldrb r0, [r0] bl obj_id_for_side_relative_to_move adds r1, r0, 0 @@ -15058,7 +15058,7 @@ sub_816058C: @ 816058C ands r0, r5 cmp r0, 0 bne _081605F0 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 @@ -15070,7 +15070,7 @@ sub_816058C: @ 816058C b _08160600 .pool _081605F0: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 @@ -15099,8 +15099,8 @@ _08160618: thumb_func_start sub_8160624 sub_8160624: @ 8160624 push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -15155,8 +15155,8 @@ _08160688: thumb_func_start sub_81606A0 sub_81606A0: @ 81606A0 push {r4-r6,lr} - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes bl ResetTasks bl clear_scheduled_bg_copies_to_vram ldr r6, =gUnknown_0203BC34 @@ -15164,7 +15164,7 @@ sub_81606A0: @ 81606A0 lsls r0, 1 bl AllocZeroed str r0, [r6] - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldrh r1, [r1] adds r0, 0x44 movs r5, 0 @@ -15181,9 +15181,9 @@ sub_81606A0: @ 81606A0 strb r0, [r4, 0x4] bl sub_8161280 ldr r0, =gUnknown_085CEBB0 - bl LoadObjectPic + bl LoadSpriteSheet ldr r0, =gUnknown_085CEBB8 - bl LoadTaggedObjectPalette + bl LoadSpritePalette bl sub_81610B8 ldr r0, =gUnknown_03006310 ldrh r1, [r4] @@ -15209,8 +15209,8 @@ sub_81606A0: @ 81606A0 thumb_func_start sub_8160740 sub_8160740: @ 8160740 push {r4,r5,lr} - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes bl ResetTasks bl clear_scheduled_bg_copies_to_vram ldr r5, =gUnknown_0203BC34 @@ -15221,12 +15221,12 @@ sub_8160740: @ 8160740 movs r1, 0x1C strb r1, [r0] ldr r0, [r5] - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldrh r1, [r1] adds r0, 0x44 strb r1, [r0] ldr r0, [r5] - ldr r1, =gUnknown_020375E2 + ldr r1, =gSpecialVar_0x8005 ldrh r1, [r1] adds r0, 0x45 strb r1, [r0] @@ -15238,9 +15238,9 @@ sub_8160740: @ 8160740 bl sub_81D2824 bl sub_8161280 ldr r0, =gUnknown_085CEBB0 - bl LoadObjectPic + bl LoadSpriteSheet ldr r0, =gUnknown_085CEBB8 - bl LoadTaggedObjectPalette + bl LoadSpritePalette bl sub_81610B8 ldr r0, =gUnknown_03006310 ldrh r1, [r4] @@ -15295,8 +15295,8 @@ sub_816082C: @ 816082C push {lr} bl sub_8160868 bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl do_scheduled_bg_tilemap_copies_to_vram bl UpdatePaletteFade pop {r0} @@ -15470,7 +15470,7 @@ _081609A8: beq _08160A04 ldr r0, =gUnknown_085EF8E4 bl sub_816084C - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 movs r0, 0x1 strh r0, [r1] ldr r1, [r5] @@ -15529,7 +15529,7 @@ _08160A64: asrs r1, r0, 24 cmp r1, 0 bne _08160A7C - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 strh r1, [r0] b _08160E82 .pool @@ -15750,7 +15750,7 @@ _08160C56: ldr r1, [r1] adds r1, 0x44 ldrb r1, [r1] - ldr r2, =gUnknown_020244E9 + ldr r2, =gPlayerPartyCount ldrb r2, [r2] subs r2, 0x1 lsls r2, 24 @@ -15915,7 +15915,7 @@ _08160D6C: ldr r1, [r7] movs r0, 0x1E strb r0, [r1] - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 movs r0, 0x1 strh r0, [r1] b _08160E8A @@ -15932,7 +15932,7 @@ _08160E0C: movs r0, 0x1F strb r0, [r1] ldr r0, =0x0000016f - bl fanfare_play + bl PlayFanfare b _08160E8A .pool _08160E38: @@ -15941,14 +15941,14 @@ _08160E38: cmp r0, 0 bne _08160E8A ldr r0, =0x0000016f - bl fanfare_play + bl PlayFanfare ldr r0, =gUnknown_0203BC34 ldr r1, [r0] movs r0, 0x20 b _08160E88 .pool _08160E58: - bl task_is_not_running_overworld_fanfare + bl IsFanfareTaskInactive lsls r0, 24 cmp r0, 0 beq _08160E8A @@ -15965,7 +15965,7 @@ _08160E70: cmp r0, 0 beq _08160E8A movs r0, 0x5 - bl audio_play + bl PlaySE _08160E82: ldr r0, =gUnknown_0203BC34 ldr r1, [r0] @@ -16000,8 +16000,8 @@ sub_8160EA0: @ 8160EA0 bl Free movs r0, 0 str r0, [r4] - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes pop {r4} pop {r0} bx r0 @@ -16015,7 +16015,7 @@ render_previous_quest_text: @ 8160EE0 lsls r0, 24 lsrs r5, r0, 24 movs r2, 0 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites ldr r4, =gUnknown_0203BC34 movs r3, 0x4 _08160EF0: @@ -16099,7 +16099,7 @@ sub_8160F50: @ 8160F50 beq _0816103E _08160F9C: movs r0, 0x5 - bl audio_play + bl PlaySE cmp r7, 0 bne _08160FC4 movs r0, 0x1 @@ -16127,7 +16127,7 @@ _08160FD4: b _0816103E _08160FE4: movs r0, 0x5 - bl audio_play + bl PlaySE bl sub_8161234 ldr r1, [r6] movs r0, 0xC @@ -16142,7 +16142,7 @@ _08160FE4: .pool _08161010: movs r0, 0x5 - bl audio_play + bl PlaySE bl sub_8161234 ldr r1, [r6] movs r0, 0x8 @@ -16254,7 +16254,7 @@ _081610E4: asrs r2, 16 adds r0, r5, 0 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r2, =gUnknown_0203BC34 ldr r1, [r2] adds r1, 0x1 @@ -16287,7 +16287,7 @@ _08161124: asrs r2, 16 adds r0, r7, 0 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r1, [r6] adds r2, r4, 0 adds r2, 0x8 @@ -16301,10 +16301,10 @@ _08161124: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites adds r0, r5 movs r1, 0x2 - bl StartObjectImageAnim + bl StartSpriteAnim adds r4, 0x1 cmp r4, 0x7 ble _0816111C @@ -16562,7 +16562,7 @@ sub_816137C: @ 816137C bne _081613CC _08161394: movs r5, 0 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldr r3, =gUnknown_0203BC34 movs r2, 0x4 _0816139C: @@ -16605,7 +16605,7 @@ _081613CC: _081613EE: movs r5, 0 ldr r7, =gUnknown_0203BC34 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites _081613F4: cmp r5, r6 bcs _08161420 @@ -16618,7 +16618,7 @@ _081613F4: lsls r0, 2 adds r0, r4 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim b _08161436 .pool _08161420: @@ -16631,7 +16631,7 @@ _08161420: lsls r0, 2 adds r0, r4 movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim _08161436: ldr r0, [r7] adds r0, 0x1 @@ -16671,7 +16671,7 @@ _0816147C: movs r5, 0 ldr r0, =gUnknown_0203BC34 mov r8, r0 - ldr r7, =gUnknown_02020630 + ldr r7, =gSprites _08161484: cmp r5, r6 bcs _081614B8 @@ -16687,7 +16687,7 @@ _08161484: lsls r0, 2 adds r0, r7 movs r1, 0x3 - bl StartObjectImageAnim + bl StartSpriteAnim b _081614D4 .pool _081614B8: @@ -16703,7 +16703,7 @@ _081614B8: lsls r0, 2 adds r0, r7 movs r1, 0x2 - bl StartObjectImageAnim + bl StartSpriteAnim _081614D4: mov r1, r8 ldr r0, [r1] @@ -16867,7 +16867,7 @@ _0816161A: .pool _08161628: movs r0, 0x1 - bl audio_play + bl PlaySE mov r1, r10 mov r0, r8 muls r0, r1 @@ -16906,7 +16906,7 @@ sub_816166C: @ 816166C lsls r4, 24 lsrs r4, 24 movs r0, 0x1 - bl audio_play + bl PlaySE ldr r5, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r5, r1] @@ -17046,7 +17046,7 @@ sub_81617B8: @ 81617B8 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =gUnknown_085E9712 movs r1, 0 bl sub_81B1B5C @@ -17157,8 +17157,8 @@ _081618AA: .pool thumb_func_end sub_8161880 - thumb_func_start sub_81618B4 -sub_81618B4: @ 81618B4 + thumb_func_start ClearDecorationInventories +ClearDecorationInventories: @ 81618B4 push {r4,lr} movs r4, 0 _081618B8: @@ -17172,7 +17172,7 @@ _081618B8: pop {r4} pop {r0} bx r0 - thumb_func_end sub_81618B4 + thumb_func_end ClearDecorationInventories thumb_func_start sub_81618D0 sub_81618D0: @ 81618D0 @@ -17514,8 +17514,8 @@ _08161B16: bx r1 thumb_func_end sub_8161B10 - thumb_func_start sub_8161B34 -sub_8161B34: @ 8161B34 + thumb_func_start ClearRoamerData +ClearRoamerData: @ 8161B34 push {r4,r5,lr} ldr r5, =gSaveBlock1Ptr ldr r0, [r5] @@ -17532,10 +17532,10 @@ sub_8161B34: @ 8161B34 pop {r0} bx r0 .pool - thumb_func_end sub_8161B34 + thumb_func_end ClearRoamerData - thumb_func_start sub_8161B60 -sub_8161B60: @ 8161B60 + thumb_func_start ClearRoamerLocationData +ClearRoamerLocationData: @ 8161B60 push {r4-r6,lr} movs r2, 0 ldr r6, =gUnknown_0203BC86 @@ -17560,7 +17560,7 @@ _08161B6C: pop {r0} bx r0 .pool - thumb_func_end sub_8161B60 + thumb_func_end ClearRoamerLocationData thumb_func_start sub_8161B94 sub_8161B94: @ 8161B94 @@ -17692,9 +17692,9 @@ _08161BC8: thumb_func_start sub_8161CBC sub_8161CBC: @ 8161CBC push {lr} - bl sub_8161B34 - bl sub_8161B60 - ldr r0, =gUnknown_020375E0 + bl ClearRoamerData + bl ClearRoamerLocationData + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] bl sub_8161B94 pop {r0} @@ -17868,7 +17868,7 @@ sub_8161E28: @ 8161E28 push {r4,r5,lr} sub sp, 0x4 ldr r5, =gEnemyParty - bl zero_enemy_party_data + bl ZeroEnemyPartyMons ldr r4, =gSaveBlock1Ptr ldr r0, [r4] ldr r1, =0x000031dc @@ -17885,43 +17885,43 @@ sub_8161E28: @ 8161E28 adds r2, r0 adds r0, r5, 0 movs r1, 0x37 - bl pokemon_setattr + bl SetMonData ldr r2, [r4] ldr r1, =0x000031e6 adds r2, r1 adds r0, r5, 0 movs r1, 0x39 - bl pokemon_setattr + bl SetMonData ldr r2, [r4] ldr r0, =0x000031ea adds r2, r0 adds r0, r5, 0 movs r1, 0x16 - bl pokemon_setattr + bl SetMonData ldr r2, [r4] ldr r1, =0x000031eb adds r2, r1 adds r0, r5, 0 movs r1, 0x17 - bl pokemon_setattr + bl SetMonData ldr r2, [r4] ldr r0, =0x000031ec adds r2, r0 adds r0, r5, 0 movs r1, 0x18 - bl pokemon_setattr + bl SetMonData ldr r2, [r4] ldr r1, =0x000031ed adds r2, r1 adds r0, r5, 0 movs r1, 0x21 - bl pokemon_setattr + bl SetMonData ldr r2, [r4] ldr r0, =0x000031ee adds r2, r0 adds r0, r5, 0 movs r1, 0x2F - bl pokemon_setattr + bl SetMonData add sp, 0x4 pop {r4,r5} pop {r0} @@ -18010,7 +18010,7 @@ sub_8161F64: @ 8161F64 sub_8161F74: @ 8161F74 push {lr} ldr r1, =gUnknown_085DF96C - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] lsls r0, 2 adds r0, r1 @@ -18116,7 +18116,7 @@ sub_8162054: @ 8162054 bl VarGet lsls r0, 16 lsrs r1, r0, 16 - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0x1 beq _08162094 @@ -18133,12 +18133,12 @@ _08162094: lsls r1, 24 lsrs r1, 24 bl sub_8164FCC - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult strh r0, [r1] b _081620E8 .pool _081620A8: - ldr r4, =gUnknown_020375F0 + ldr r4, =gScriptResult ldr r2, [r5] ldr r0, =0x00000cdc adds r2, r0 @@ -18186,7 +18186,7 @@ sub_81620F4: @ 81620F4 bl VarGet lsls r0, 16 lsrs r4, r0, 16 - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0x1 beq _08162134 @@ -18207,13 +18207,13 @@ _08162134: lsls r1, 4 adds r2, r1 adds r2, r0 - ldr r0, =gUnknown_020375E4 + ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] strh r0, [r2] b _081621B4 .pool _08162150: - ldr r0, =gUnknown_020375E4 + ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] cmp r0, 0 beq _08162180 @@ -18295,7 +18295,7 @@ _081621EE: adds r0, 0x1 strh r0, [r1] bl sub_8163E90 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult ldr r0, [r5] adds r0, r4 ldrh r0, [r0] @@ -19954,7 +19954,7 @@ sub_8163048: @ 8163048 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - bl zero_enemy_party_data + bl ZeroEnemyPartyMons ldr r0, =gUnknown_02038BCA ldrh r0, [r0] movs r1, 0 @@ -19972,7 +19972,7 @@ sub_816306C: @ 816306C adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - bl zero_enemy_party_data + bl ZeroEnemyPartyMons ldr r0, =gUnknown_02038BCA ldrh r0, [r0] movs r1, 0 @@ -19995,7 +19995,7 @@ sub_81630A0: @ 81630A0 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - bl zero_enemy_party_data + bl ZeroEnemyPartyMons ldr r0, =gUnknown_02038BCA ldrh r0, [r0] movs r1, 0 @@ -20405,7 +20405,7 @@ _081633EC: adds r0, r4, 0 movs r1, 0x20 add r2, sp, 0x14 - bl pokemon_setattr + bl SetMonData ldr r0, =gUnknown_0203BC8C ldr r0, [r0] add r0, r9 @@ -20415,7 +20415,7 @@ _081633EC: adds r2, r0 adds r0, r4, 0 movs r1, 0xC - bl pokemon_setattr + bl SetMonData ldr r7, [sp, 0x34] _0816341E: ldr r0, [sp, 0x1C] @@ -20524,14 +20524,14 @@ _081634D4: adds r0, r4, 0 movs r1, 0x20 add r2, sp, 0x4 - bl pokemon_setattr + bl SetMonData adds r2, r5, r7 lsls r2, 2 add r2, r10 adds r2, 0xE adds r0, r4, 0 movs r1, 0xC - bl pokemon_setattr + bl SetMonData mov r7, r8 cmp r7, 0x3 bne _08163494 @@ -20604,7 +20604,7 @@ _08163580: thumb_func_start sub_8163590 sub_8163590: @ 8163590 push {lr} - bl zero_enemy_party_data + bl ZeroEnemyPartyMons ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000ca9 @@ -20813,7 +20813,7 @@ _08163718: adds r0, r4, 0 movs r1, 0x20 add r2, sp, 0xC - bl pokemon_setattr + bl SetMonData ldr r1, =gUnknown_0203BC8C ldr r0, [r1] adds r0, r7, r0 @@ -20823,7 +20823,7 @@ _08163718: adds r2, r0 adds r0, r4, 0 movs r1, 0xC - bl pokemon_setattr + bl SetMonData mov r2, r10 lsls r0, r2, 24 lsrs r7, r0, 24 @@ -20942,7 +20942,7 @@ _08163846: adds r0, r4, 0 movs r1, 0x20 add r2, sp, 0xC - bl pokemon_setattr + bl SetMonData ldr r1, =gUnknown_0203BC8C ldr r0, [r1] add r0, r8 @@ -20952,7 +20952,7 @@ _08163846: adds r2, r0 adds r0, r4, 0 movs r1, 0xC - bl pokemon_setattr + bl SetMonData ldr r2, [sp, 0x14] lsls r0, r2, 24 lsrs r0, 24 @@ -21031,7 +21031,7 @@ _0816390A: sub_8163914: @ 8163914 push {lr} bl sub_8165C40 - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0 beq _08163930 @@ -21096,7 +21096,7 @@ sub_81639AC: @ 81639AC push {r4-r6,lr} sub sp, 0x4 bl sub_81864CC - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting adds r0, 0x26 ldrb r0, [r0] cmp r0, 0xA @@ -21164,7 +21164,7 @@ _08163A3C: adds r0, r4, 0 movs r1, 0xC mov r2, sp - bl pokemon_setattr + bl SetMonData adds r5, 0x1 cmp r5, 0x5 ble _08163A3C @@ -21210,8 +21210,8 @@ _08163AB0: sub_8163AC4: @ 8163AC4 push {r4-r6,lr} sub sp, 0x4 - ldr r0, =gUnknown_02024474 - ldr r2, =gUnknown_020375E0 + ldr r0, =gBattleScripting + ldr r2, =gSpecialVar_0x8004 ldrh r1, [r2] adds r0, 0x26 strb r1, [r0] @@ -21303,7 +21303,7 @@ _08163BA6: movs r1, 0x1 bl CreateTask movs r0, 0 - bl current_map_music_set__default_for_battle + bl PlayNewMapMusic__default_for_battle movs r0, 0 b _08163E10 .pool @@ -21327,7 +21327,7 @@ _08163BC4: adds r0, r4 movs r1, 0xC mov r2, sp - bl pokemon_setattr + bl SetMonData adds r5, 0x1 cmp r5, 0x5 ble _08163BC4 @@ -21335,12 +21335,12 @@ _08163BC4: movs r1, 0x1 bl CreateTask movs r0, 0 - bl current_map_music_set__default_for_battle + bl PlayNewMapMusic__default_for_battle movs r0, 0xC b _08163E10 .pool _08163C10: - bl zero_enemy_party_data + bl ZeroEnemyPartyMons movs r5, 0 ldr r4, =gSaveBlock2Ptr _08163C18: @@ -21370,7 +21370,7 @@ _08163C18: movs r1, 0x1 bl CreateTask movs r0, 0 - bl current_map_music_set__default_for_battle + bl PlayNewMapMusic__default_for_battle movs r0, 0xD b _08163E10 .pool @@ -21439,7 +21439,7 @@ _08163D12: movs r1, 0x1 bl CreateTask movs r0, 0 - bl current_map_music_set__default_for_battle + bl PlayNewMapMusic__default_for_battle movs r0, 0x4 b _08163E10 .pool @@ -21468,7 +21468,7 @@ _08163D5E: movs r1, 0x1 bl CreateTask movs r0, 0 - bl current_map_music_set__default_for_battle + bl PlayNewMapMusic__default_for_battle movs r0, 0x5 b _08163E10 .pool @@ -21491,7 +21491,7 @@ _08163D8E: movs r1, 0x1 bl CreateTask movs r0, 0 - bl current_map_music_set__default_for_battle + bl PlayNewMapMusic__default_for_battle movs r0, 0x6 b _08163E10 .pool @@ -21514,7 +21514,7 @@ _08163DC8: movs r1, 0x1 bl CreateTask movs r0, 0 - bl current_map_music_set__default_for_battle + bl PlayNewMapMusic__default_for_battle movs r0, 0xA b _08163E10 .pool @@ -21529,7 +21529,7 @@ _08163E00: movs r1, 0x1 bl CreateTask movs r0, 0 - bl current_map_music_set__default_for_battle + bl PlayNewMapMusic__default_for_battle movs r0, 0x7 _08163E10: bl sub_80B100C @@ -21560,7 +21560,7 @@ _08163E2C: movs r1, 0x1 bl CreateTask movs r0, 0 - bl current_map_music_set__default_for_battle + bl PlayNewMapMusic__default_for_battle movs r0, 0x12 bl sub_8145EF4 _08163E68: @@ -21668,7 +21668,7 @@ _08163F52: ldr r4, =gSaveBlock2Ptr ldr r1, [r4] adds r1, 0xA - bl sub_80842F4 + bl CopyUnalignedWord adds r0, r5, 0x4 ldr r1, [r4] bl StringCopy7 @@ -21784,7 +21784,7 @@ sub_8164040: @ 8164040 bl __udivsi3 lsls r0, 16 lsrs r1, r0, 16 - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0 bne _0816408E @@ -21800,7 +21800,7 @@ _0816408A: _0816408E: ldr r4, =gSaveBlock2Ptr ldr r0, [r4] - ldr r1, =gUnknown_020375E2 + ldr r1, =gSpecialVar_0x8005 ldrh r1, [r1] ldr r2, =0x00000ca8 adds r0, r2 @@ -22582,7 +22582,7 @@ _081646FC: ldr r0, =gSaveBlock2Ptr ldr r3, [r0] ldr r1, =gUnknown_03006298 - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] adds r0, 0x1 lsls r0, 1 @@ -22611,7 +22611,7 @@ _08164750: ldr r4, =gSaveBlock2Ptr ldr r3, [r4] ldr r1, =gUnknown_03006298 - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] subs r0, 0x1 lsls r0, 1 @@ -22715,7 +22715,7 @@ sub_8164828: @ 8164828 lsls r0, 16 lsrs r0, 16 mov r8, r0 - ldr r0, =gUnknown_020375F2 + ldr r0, =gScriptLastTalked ldrh r0, [r0] subs r5, r0, 0x2 ldr r0, =gSaveBlock2Ptr @@ -22748,7 +22748,7 @@ _08164884: cmp r1, r0 bne _0816487C _0816489A: - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0x4 bls _081648A4 @@ -23011,7 +23011,7 @@ _08164AF8: _08164B04: adds r0, 0x4 adds r1, r0 - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] ldr r1, [r1] lsls r0, 2 @@ -23035,7 +23035,7 @@ _08164B28: ldr r1, =gUnknown_085DD690 lsrs r0, 25 adds r0, r1 - ldr r1, =gUnknown_020375E2 + ldr r1, =gSpecialVar_0x8005 ldrh r1, [r1] ldr r0, [r0] lsls r1, 2 @@ -23077,7 +23077,7 @@ sub_8164B74: @ 8164B74 adds r0, r2 ldrh r6, [r0] bl link_get_multiplayer_id - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0x6 bls _08164BAC @@ -23127,7 +23127,7 @@ _08164C18: mov r1, sp movs r2, 0x4 bl link_0800A448 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 b _08164DB4 .pool @@ -23205,7 +23205,7 @@ _08164CB0: mov r4, r8 cmp r4, 0xD ble _08164C68 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x2 b _08164DB4 .pool @@ -23223,7 +23223,7 @@ _08164CE0: adds r1, r3 movs r2, 0x28 bl link_0800A448 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x3 b _08164DB4 .pool @@ -23269,13 +23269,13 @@ _08164D14: ldrb r0, [r0] cmp r0, 0 bne _08164DB0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x4 b _08164DB4 .pool _08164D98: bl sub_800AC34 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x5 b _08164DB4 .pool @@ -23285,7 +23285,7 @@ _08164DA8: cmp r0, 0 bne _08164DB6 _08164DB0: - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x6 _08164DB4: strh r0, [r1] @@ -23355,7 +23355,7 @@ sub_8164E04: @ 8164E04 adds r0, r2 ldrh r1, [r5] bl sub_8165B88 - ldr r6, =gUnknown_0202406E + ldr r6, =gBattlePartyID ldrh r0, [r6, 0x2] movs r5, 0x64 muls r0, r5 @@ -23395,7 +23395,7 @@ _08164E7C: cmp r2, 0xA ble _08164E7C ldr r0, [r6] - ldr r1, =gUnknown_0202433A + ldr r1, =gBattleOutcome ldrb r1, [r1] ldr r2, =0x00000d06 adds r0, r2 @@ -23626,7 +23626,7 @@ sub_816502C: @ 816502C movs r0, 0x45 mov r10, r0 _0816506A: - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult mov r9, r1 movs r0, 0 strh r0, [r1] @@ -23671,7 +23671,7 @@ _0816508C: ldr r0, [r7] adds r0, r4 mov r1, r10 - bl pokemon_setattr + bl SetMonData ldr r0, [r7] adds r0, r4 bl sub_80EE5A4 @@ -23682,12 +23682,12 @@ _081650D4: cmp r6, r8 blt _0816508C _081650DC: - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0 beq _08165132 movs r0, 0x2A - bl sav12_xor_increment + bl IncrementGameStat mov r0, r8 cmp r0, 0x1 ble _08165110 @@ -23782,7 +23782,7 @@ _081651A6: adds r0, 0xC ldr r1, [r5] adds r1, 0xA - bl sub_80842F4 + bl CopyUnalignedWord adds r0, r7, 0x4 ldr r1, [r5] bl StringCopy7 @@ -23902,7 +23902,7 @@ _08165294: thumb_func_start sub_81652B4 sub_81652B4: @ 81652B4 push {r4-r6,lr} - ldr r2, =gUnknown_020375F0 + ldr r2, =gScriptResult movs r0, 0 strh r0, [r2] ldr r1, =gSaveBlock2Ptr @@ -23944,7 +23944,7 @@ _081652F2: ldr r3, =0x00000bec adds r0, r1, r3 bl sub_816534C - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 strh r0, [r1] _08165316: @@ -24006,7 +24006,7 @@ sub_8165360: @ 8165360 thumb_func_start sub_816537C sub_816537C: @ 816537C push {lr} - ldr r0, =gUnknown_0202433A + ldr r0, =gBattleOutcome ldrb r0, [r0] cmp r0, 0x3 bne _08165398 @@ -24154,7 +24154,7 @@ _081654B0: adds r1, 0x1A adds r2, r5, r3 adds r0, r6, r4 - bl pokemon_setattr + bl SetMonData ldr r0, [sp, 0x44] adds r0, 0x1 str r0, [sp, 0x44] @@ -24195,13 +24195,13 @@ _081654DE: adds r0, r4, 0 movs r1, 0x7 ldr r2, =gTrainers + TRAINER_STEVEN * 0x28 + 0x4 @ Steven's name - bl pokemon_setattr + bl SetMonData movs r0, 0 str r0, [sp, 0x44] adds r0, r4, 0 movs r1, 0x31 ldr r2, [sp, 0x64] - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 bl pokemon_calc_effective_stats ldr r2, [sp, 0x60] @@ -24339,7 +24339,7 @@ _08165634: adds r0, r4, 0 movs r1, 0x20 ldr r2, [sp, 0x5C] - bl pokemon_setattr + bl SetMonData ldr r0, =gUnknown_0203BC8C ldr r1, [r0] ldr r2, [sp, 0x54] @@ -24351,7 +24351,7 @@ _08165634: adds r2, r0 adds r0, r4, 0 movs r1, 0xC - bl pokemon_setattr + bl SetMonData movs r0, 0 str r0, [sp, 0x44] movs r2, 0 @@ -24382,7 +24382,7 @@ _0816567E: adds r0, r4, 0 movs r1, 0x7 add r2, sp, 0x10 - bl pokemon_setattr + bl SetMonData adds r0, r7, 0 bl sub_8162F68 lsls r0, 24 @@ -24391,7 +24391,7 @@ _0816567E: adds r0, r4, 0 movs r1, 0x31 ldr r2, [sp, 0x64] - bl pokemon_setattr + bl SetMonData ldr r6, [sp, 0x60] mov r10, r6 cmp r6, 0x1 @@ -24493,7 +24493,7 @@ _0816579C: adds r0, r4, 0 movs r1, 0x7 add r2, sp, 0x10 - bl pokemon_setattr + bl SetMonData movs r2, 0x96 lsls r2, 1 adds r0, r7, r2 @@ -24506,7 +24506,7 @@ _0816579C: adds r0, r4, 0 movs r1, 0x31 ldr r2, [sp, 0x64] - bl pokemon_setattr + bl SetMonData ldr r3, [sp, 0x6C] adds r3, 0x2 str r3, [sp, 0x6C] @@ -24562,7 +24562,7 @@ _08165812: adds r0, r4, 0 movs r1, 0x31 ldr r2, [sp, 0x64] - bl pokemon_setattr + bl SetMonData adds r5, 0x2 movs r0, 0x1 add r10, r0 @@ -25603,7 +25603,7 @@ _0816605E: adds r0, r4, 0 movs r1, 0x20 add r2, sp, 0x14 - bl pokemon_setattr + bl SetMonData ldr r0, =gUnknown_0203BC8C ldr r0, [r0] add r0, r9 @@ -25613,7 +25613,7 @@ _0816605E: adds r2, r0 adds r0, r4, 0 movs r1, 0xC - bl pokemon_setattr + bl SetMonData ldr r0, [sp, 0x30] mov r8, r0 _08166092: @@ -25789,7 +25789,7 @@ _081661A6: adds r2, r6 adds r0, r4, 0 movs r1, 0x19 - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 bl pokemon_calc_effective_stats _081661E2: @@ -25877,8 +25877,8 @@ sub_81662C0: @ 81662C0 ldr r0, [r4] ldr r0, [r0] bl _call_via_r0 - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade ldr r4, [r4] ldr r1, [r4] @@ -25902,8 +25902,8 @@ _081662F0: sub_8166304: @ 8166304 push {lr} bl sub_81668F8 - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 @@ -25916,8 +25916,8 @@ sub_816631C: @ 816631C ldr r0, [r0] ldr r0, [r0] bl _call_via_r0 - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl RunTextPrinters bl UpdatePaletteFade pop {r0} @@ -25928,8 +25928,8 @@ sub_816631C: @ 816631C thumb_func_start sub_8166340 sub_8166340: @ 8166340 push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer ldr r0, =gUnknown_0203BCAC ldr r0, [r0] @@ -26005,8 +26005,8 @@ _081663E8: b _0816653C .pool _0816640C: - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes b _0816653C _08166416: movs r0, 0 @@ -26266,7 +26266,7 @@ _08166678: cmp r0, 0 beq _081666B8 movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0x1 bl sub_8167CA0 ldr r0, =gUnknown_0203BCAC @@ -26286,7 +26286,7 @@ _081666B8: cmp r0, 0 beq _081666F0 movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0 bl sub_8167CA0 ldr r0, =gUnknown_0203BCAC @@ -26307,7 +26307,7 @@ _081666F0: cmp r0, 0 beq _08166710 movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =gUnknown_0203BC90 ldr r0, [r0] adds r0, 0x50 @@ -26322,7 +26322,7 @@ _08166710: b _0816680E _0816671A: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =gUnknown_0203BCAC ldr r0, [r0] ldr r2, =0x00008041 @@ -26901,22 +26901,22 @@ _08166C70: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x6 bls _08166C70 movs r0, 0 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag movs r0, 0x1 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag movs r0, 0 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag movs r0, 0x1 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag movs r4, 0 _08166CAE: ldr r0, [r5] @@ -26925,7 +26925,7 @@ _08166CAE: adds r0, r2 adds r0, r1 ldr r0, [r0] - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 @@ -26942,9 +26942,9 @@ _08166CAE: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeTiles + bl DestroySprite _08166CE6: movs r0, 0 bl SetVBlankCallback @@ -27056,7 +27056,7 @@ _08166E02: bne _08166E18 _08166E06: movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0x2 bl rbox_fill_rectangle movs r0, 0x2 @@ -27395,7 +27395,7 @@ _081670B0: adds r0, r5, 0 adds r1, r6, 0 mov r2, sp - bl pokemon_setattr + bl SetMonData adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 @@ -27420,7 +27420,7 @@ _081670E2: adds r0, r5, 0 movs r1, 0x30 mov r2, sp - bl pokemon_setattr + bl SetMonData _081670F0: add sp, 0x4 pop {r3} @@ -27723,9 +27723,9 @@ sub_8167338: @ 8167338 mov r7, r8 push {r7} ldr r0, =gUnknown_085DFD18 - bl LoadObjectPic + bl LoadSpriteSheet ldr r0, =gUnknown_085DFD20 - bl LoadTaggedObjectPalette + bl LoadSpritePalette ldr r2, =gUnknown_0203BC90 ldr r0, [r2] adds r0, 0x54 @@ -27736,7 +27736,7 @@ sub_8167338: @ 8167338 ldr r6, =gUnknown_085DFD28 adds r0, r6, 0x2 mov r8, r0 - ldr r7, =gUnknown_0202064C + ldr r7, =gSprites + 0x1C _08167360: ldr r0, [r5] adds r0, 0x61 @@ -27753,7 +27753,7 @@ _08167360: ldrsh r2, [r2, r0] ldr r0, =gUnknown_085DFD5C movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 @@ -27817,7 +27817,7 @@ _081673F8: cmp r0, 0x3C ble _08167418 adds r0, r1, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, =gUnknown_0203BC90 ldr r1, [r0] adds r1, 0x54 @@ -28079,7 +28079,7 @@ sub_8167608: @ 8167608 adds r1, r0 str r1, [sp, 0x20] adds r0, r4, 0 - bl LoadTaggedObjectPalette + bl LoadSpritePalette ldr r1, [r7] lsls r0, 24 lsrs r0, 24 @@ -28087,7 +28087,7 @@ sub_8167608: @ 8167608 adds r1, r2 strh r0, [r1] adds r0, r5, 0 - bl LoadObjectPic + bl LoadSpriteSheet ldr r1, [r7] ldr r3, =0x00007b14 adds r1, r3 @@ -28096,7 +28096,7 @@ sub_8167608: @ 8167608 movs r1, 0x26 movs r2, 0x68 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 ldr r0, [r7] @@ -28106,9 +28106,9 @@ sub_8167608: @ 8167608 cmp r1, 0x40 bne _081676AC movs r0, 0x64 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag movs r0, 0x64 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag ldr r0, [r7] add r0, r8 movs r1, 0xFF @@ -28119,7 +28119,7 @@ _081676AC: ldr r0, [r7] add r0, r8 strb r1, [r0] - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldr r2, [r7] mov r0, r8 adds r3, r2, r0 @@ -28207,9 +28207,9 @@ sub_8167760: @ 8167760 adds r2, r4, 0 bl sub_81D321C mov r0, sp - bl LoadObjectPics + bl LoadSpriteSheets adds r0, r4, 0 - bl LoadTaggedObjectPalettes + bl LoadSpritePalettes movs r4, 0 ldr r1, =gUnknown_0203BCAC ldr r0, [r1] @@ -28225,7 +28225,7 @@ sub_8167760: @ 8167760 cmp r4, r0 bge _0816781C adds r5, r1, 0 - ldr r7, =gUnknown_02020630 + ldr r7, =gSprites movs r0, 0x1C adds r0, r7 mov r8, r0 @@ -28240,7 +28240,7 @@ _081677AC: adds r0, r6, 0 movs r1, 0xE2 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 @@ -28284,7 +28284,7 @@ _0816781C: cmp r4, 0x5 bhi _0816788A ldr r5, =gUnknown_0203BCAC - ldr r7, =gUnknown_02020630 + ldr r7, =gSprites _08167828: lsls r2, r4, 2 adds r2, r4 @@ -28296,7 +28296,7 @@ _08167828: adds r0, r6, 0 movs r1, 0xE6 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 @@ -28344,7 +28344,7 @@ _0816788A: adds r0, r6, 0 movs r1, 0xDE movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 @@ -28355,7 +28355,7 @@ _0816788A: adds r0, r1 adds r0, r4 strb r3, [r0] - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r2, r3, 4 adds r2, r3 lsls r2, 2 @@ -28387,9 +28387,9 @@ _08167902: mov r1, r10 bl sub_81D32B0 mov r0, r9 - bl LoadObjectPic + bl LoadSpriteSheet mov r0, r10 - bl LoadTaggedObjectPalette + bl LoadSpritePalette add sp, 0x60 pop {r3-r5} mov r8, r3 @@ -29304,13 +29304,13 @@ sub_8168180: @ 8168180 bne _081681A8 adds r0, r2, 0 movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim b _081681B0 .pool _081681A8: adds r0, r2, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim _081681B0: pop {r0} bx r0 @@ -29337,7 +29337,7 @@ sub_81681B4: @ 81681B4 _081681DC: movs r0, 0x66 _081681DE: - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 4 ldrb r2, [r4, 0x5] movs r1, 0xF @@ -29413,7 +29413,7 @@ sub_8168248: @ 8168248 mov r0, sp bl LoadCompressedObjectPic add r0, sp, 0x8 - bl LoadTaggedObjectPalette + bl LoadSpritePalette add sp, 0x10 pop {r0} bx r0 @@ -29451,12 +29451,12 @@ _081682B6: mov r0, r10 asrs r2, 16 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _081682FE - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r4, r1, 4 adds r4, r1 lsls r4, 2 @@ -29470,7 +29470,7 @@ _081682B6: lsls r1, r6, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim lsls r0, r6, 2 adds r0, r7 str r4, [r0] @@ -29557,7 +29557,7 @@ _08168398: _081683A0: ldrh r0, [r2, 0x30] strh r0, [r2, 0x20] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r2, 0x1C] _081683A8: pop {r4} @@ -29566,4781 +29566,4 @@ _081683A8: .pool thumb_func_end sub_8168374 - thumb_func_start nullsub_117 -nullsub_117: @ 81683B4 - bx lr - thumb_func_end nullsub_117 - - thumb_func_start bx_goto_buffer_A_ch0_tbl3 -bx_goto_buffer_A_ch0_tbl3: @ 81683B8 - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_exec_buffer_A_ch0_tbl2 - str r1, [r0] - ldr r2, =gUnknown_0202449C - ldr r0, [r2] - adds r0, 0x94 - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - adds r0, 0x95 - strb r1, [r0] - ldr r0, [r2] - adds r0, 0x96 - strb r1, [r0] - ldr r0, [r2] - adds r0, 0x97 - strb r1, [r0] - bx lr - .pool - thumb_func_end bx_goto_buffer_A_ch0_tbl3 - - thumb_func_start bx_exec_buffer_A_ch0_tbl2 -bx_exec_buffer_A_ch0_tbl2: @ 81683F4 - push {lr} - ldr r2, =gUnknown_02024068 - ldr r1, =gBitTable - ldr r0, =gUnknown_02024064 - ldrb r3, [r0] - lsls r0, r3, 2 - adds r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08168440 - ldr r0, =gUnknown_02023064 - lsls r1, r3, 9 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x38 - bhi _0816843C - ldr r0, =gUnknown_085DFDC0 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 - b _08168440 - .pool -_0816843C: - bl dp01_tbl5_exec_completed -_08168440: - pop {r0} - bx r0 - thumb_func_end bx_exec_buffer_A_ch0_tbl2 - - thumb_func_start sub_8168444 -sub_8168444: @ 8168444 - push {r4,r5,lr} - ldr r1, =gUnknown_0202449C - ldr r0, [r1] - adds r0, 0x94 - ldrb r0, [r0] - adds r4, r1, 0 - cmp r0, 0x5 - bls _08168456 - b _08168564 -_08168456: - lsls r0, 2 - ldr r1, =_08168468 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08168468: - .4byte _08168480 - .4byte _08168492 - .4byte _081684B0 - .4byte _081684CE - .4byte _08168508 - .4byte _08168540 -_08168480: - ldr r0, [r4] - adds r0, 0x96 - movs r1, 0x40 - strb r1, [r0] - ldr r1, [r4] - adds r1, 0x94 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08168492: - ldr r1, [r4] - adds r1, 0x96 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _08168564 - movs r0, 0x5 - bl audio_play - movs r0, 0x1 - movs r1, 0 - b _081684E4 -_081684B0: - ldr r1, [r4] - adds r1, 0x96 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _08168564 - movs r0, 0x5 - bl audio_play - movs r0, 0x1 - movs r1, 0 - b _081684E4 -_081684CE: - ldr r1, [r4] - adds r1, 0x96 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _08168564 - movs r0, 0x1 - movs r1, 0x9 -_081684E4: - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb - bl dp01_tbl5_exec_completed - ldr r1, [r4] - adds r1, 0x94 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r4] - adds r0, 0x95 - strb r5, [r0] - ldr r0, [r4] - adds r0, 0x96 - movs r1, 0x40 - strb r1, [r0] - b _08168564 -_08168508: - ldr r1, [r4] - adds r1, 0x96 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bne _08168564 - movs r0, 0x5 - bl audio_play - movs r0, 0 - bl sub_8059CF8 - movs r0, 0x1 - movs r1, 0 - bl sub_8059CB4 - ldr r0, [r4] - adds r0, 0x96 - movs r1, 0x40 - strb r1, [r0] - ldr r1, [r4] - adds r1, 0x94 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08168564 -_08168540: - ldr r1, [r4] - adds r1, 0x96 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bne _08168564 - movs r0, 0x5 - bl audio_play - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb - bl dp01_tbl5_exec_completed -_08168564: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8168444 - - thumb_func_start sub_816856C -sub_816856C: @ 816856C - push {lr} - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _08168590 - bl dp01_tbl5_exec_completed -_08168590: - pop {r0} - bx r0 - .pool - thumb_func_end sub_816856C - - thumb_func_start sub_81685A4 -sub_81685A4: @ 81685A4 - push {lr} - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _081685B6 - bl dp01_tbl5_exec_completed -_081685B6: - pop {r0} - bx r0 - thumb_func_end sub_81685A4 - - thumb_func_start bx_wait_t5 -bx_wait_t5: @ 81685BC - push {lr} - ldr r0, =gUnknown_020244B9 - ldrb r0, [r0] - cmp r0, 0 - bne _081685CA - bl dp01_tbl5_exec_completed -_081685CA: - pop {r0} - bx r0 - .pool - thumb_func_end bx_wait_t5 - - thumb_func_start sub_81685D4 -sub_81685D4: @ 81685D4 - push {lr} - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081685FC - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8168610 - str r1, [r0] - bl nullsub_35 - bl FreeAllWindowBuffers - bl DoWallyTutorialBagMenu -_081685FC: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81685D4 - - thumb_func_start sub_8168610 -sub_8168610: @ 8168610 - push {lr} - ldr r0, =gMain - ldr r1, [r0, 0x4] - ldr r0, =sub_8038420 - cmp r1, r0 - bne _08168636 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08168636 - ldr r0, =gUnknown_0203CE7C - ldrh r1, [r0] - movs r0, 0x1 - bl dp01_build_cmdbuf_x23_aa_0 - bl dp01_tbl5_exec_completed -_08168636: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8168610 - - thumb_func_start sub_816864C -sub_816864C: @ 816864C - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, =gUnknown_020244D0 - ldr r0, [r4] - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - ldr r1, [r0, 0x4] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r7, 0x88 - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - bne _08168684 - ldr r0, =gUnknown_0202406E - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8172EF0 -_08168684: - ldr r1, [r4] - ldrb r0, [r5] - movs r6, 0x2 - adds r2, r6, 0 - eors r2, r0 - ldr r1, [r1, 0x4] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - bne _081686B6 - ldr r0, =gUnknown_0202406E - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8172EF0 -_081686B6: - ldr r0, [r4] - ldrb r2, [r5] - ldr r3, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0] - movs r4, 0x8 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _081686D2 - b _081687DC -_081686D2: - adds r1, r2, 0 - eors r1, r6 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0] - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - bne _081687DC - ldr r0, =gUnknown_02020630 - mov r8, r0 - ldr r7, =gUnknown_03005D7C - adds r0, r2, r7 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - mov r4, r8 - adds r4, 0x1C - adds r0, r4 - ldr r3, [r0] - ldr r0, =DummyObjectCallback - cmp r3, r0 - bne _081687DC - ldr r0, =gUnknown_020241E4 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - cmp r0, r3 - bne _081687DC - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _0816877A - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0816877A - ldrb r0, [r5] - eors r0, r6 - adds r0, r7 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - bl RemoveObjectAndFreeTiles - ldr r4, =gUnknown_03005D70 - ldrb r0, [r5] - adds r1, r6, 0 - eors r1, r0 - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, =gUnknown_0202406E - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gPlayerParty - adds r1, r2 - movs r2, 0 - bl healthbar_draw_field_maybe - ldrb r0, [r5] - eors r0, r6 - bl sub_8076918 - ldrb r0, [r5] - eors r0, r6 - adds r0, r4 - ldrb r0, [r0] - bl sub_80729D0 -_0816877A: - ldr r1, =gUnknown_03005D7C - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - bl RemoveObjectAndFreeTiles - ldr r5, =gUnknown_03005D70 - ldrb r1, [r4] - adds r0, r1, r5 - ldrb r0, [r0] - ldr r2, =gUnknown_0202406E - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gPlayerParty - adds r1, r2 - movs r2, 0 - bl healthbar_draw_field_maybe - ldrb r0, [r4] - bl sub_8076918 - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl sub_80729D0 - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r2, [r0, 0x8] - ldrb r1, [r2, 0x9] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x9] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8168818 - str r1, [r0] -_081687DC: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816864C - - thumb_func_start sub_8168818 -sub_8168818: @ 8168818 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r4, 0 - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_03005D70 - ldr r1, =gUnknown_02024064 - mov r8, r1 - ldrb r3, [r1] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _08168842 - movs r4, 0x1 -_08168842: - cmp r4, 0 - beq _08168904 - ldr r7, =gUnknown_020244D0 - ldr r0, [r7] - ldr r4, [r0, 0x4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r2, r0, r4 - ldrb r1, [r2, 0x1] - movs r5, 0x1 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _08168904 - movs r6, 0x2 - adds r1, r6, 0 - eors r1, r3 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x1] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _08168904 - ldrb r1, [r2] - movs r3, 0x7F - adds r0, r3, 0 - ands r0, r1 - strb r0, [r2] - ldr r0, [r7] - mov r1, r8 - ldrb r2, [r1] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r4, 0x2 - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r2, [r7] - mov r1, r8 - ldrb r0, [r1] - adds r1, r6, 0 - eors r1, r0 - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - ldr r2, [r7] - mov r1, r8 - ldrb r0, [r1] - adds r1, r6, 0 - eors r1, r0 - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - ands r4, r1 - strb r4, [r0, 0x1] - ldr r4, =0x000027f9 - adds r0, r4, 0 - bl FreeObjectTilesByTag - adds r0, r4, 0 - bl FreeObjectPaletteByTag - ldr r0, =c3_0802FDF4 - movs r1, 0xA - bl CreateTask - ldr r2, =gUnknown_0202406E - mov r0, r8 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, =gPlayerParty - adds r0, r2 - bl sub_805E990 - bl dp01_tbl5_exec_completed -_08168904: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8168818 - - thumb_func_start sub_8168934 -sub_8168934: @ 8168934 - push {r4-r6,lr} - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - ldr r6, =gUnknown_03005D70 - adds r1, r0, r6 - ldrb r1, [r1] - movs r2, 0 - movs r3, 0 - bl sub_8074AA0 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r5] - adds r0, r6 - ldrb r0, [r0] - bl sub_80729D0 - lsls r4, 16 - asrs r1, r4, 16 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0816897C - ldrb r0, [r5] - adds r0, r6 - ldrb r0, [r0] - movs r2, 0 - bl heathbar_draw_hp - b _08168996 - .pool -_0816897C: - ldr r2, =gUnknown_0202406E - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, =gPlayerParty - adds r0, r2 - bl sub_805E990 - bl dp01_tbl5_exec_completed -_08168996: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8168934 - - thumb_func_start bx_blink_t5 -bx_blink_t5: @ 81689A4 - push {r4,lr} - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - ldr r2, =gUnknown_02020630 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x20 - bne _081689F0 - movs r3, 0 - movs r0, 0 - strh r0, [r4, 0x30] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - subs r0, 0x5 - ands r0, r1 - strb r0, [r2] - ldr r0, =gUnknown_020244B9 - strb r3, [r0] - bl dp01_tbl5_exec_completed - b _08168A1A - .pool -_081689F0: - ldrh r0, [r4, 0x30] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08168A14 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_08168A14: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] -_08168A1A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end bx_blink_t5 - - thumb_func_start sub_8168A20 -sub_8168A20: @ 8168A20 - push {r4-r6,lr} - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r6, =gUnknown_02024064 - ldrb r2, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08168A74 - ldr r5, =gUnknown_020241E4 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - bl obj_free_rotscale_entry - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl RemoveObjectAndFreeTiles - ldr r1, =gUnknown_03005D70 - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl sub_8072984 - bl dp01_tbl5_exec_completed -_08168A74: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8168A20 - - thumb_func_start sub_8168A90 -sub_8168A90: @ 8168A90 - push {lr} - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _08168AB4 - bl dp01_tbl5_exec_completed -_08168AB4: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8168A90 - - thumb_func_start sub_8168AC8 -sub_8168AC8: @ 8168AC8 - push {lr} - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _08168AEA - bl dp01_tbl5_exec_completed -_08168AEA: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8168AC8 - - thumb_func_start dp01_tbl5_exec_completed -dp01_tbl5_exec_completed: @ 8168AF8 - push {r4,lr} - sub sp, 0x4 - ldr r1, =gUnknown_03005D60 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_exec_buffer_A_ch0_tbl2 - str r1, [r0] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08168B4C - bl link_get_multiplayer_id - mov r1, sp - strb r0, [r1] - movs r0, 0x2 - movs r1, 0x4 - mov r2, sp - bl dp01_prepare_buffer_wireless_probably - ldr r1, =gUnknown_02023064 - ldrb r0, [r4] - lsls r0, 9 - adds r0, r1 - movs r1, 0x38 - strb r1, [r0] - b _08168B5E - .pool -_08168B4C: - ldr r2, =gUnknown_02024068 - ldr r1, =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldr r0, [r2] - bics r0, r1 - str r0, [r2] -_08168B5E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end dp01_tbl5_exec_completed - - thumb_func_start sub_8168B70 -sub_8168B70: @ 8168B70 - push {lr} - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _08168B92 - bl dp01_tbl5_exec_completed -_08168B92: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8168B70 - - thumb_func_start dp01t_00_5_getattr -dp01t_00_5_getattr: @ 8168BA0 - push {r4-r6,lr} - sub sp, 0x100 - movs r6, 0 - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - bne _08168BD8 - ldr r0, =gUnknown_0202406E - lsls r1, r2, 1 - adds r1, r0 - ldrb r0, [r1] - mov r1, sp - bl sub_8168C14 - adds r6, r0, 0 - b _08168BFA - .pool -_08168BD8: - ldrb r4, [r1] - movs r5, 0 -_08168BDC: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _08168BF2 - lsls r0, r5, 24 - lsrs r0, 24 - mov r2, sp - adds r1, r2, r6 - bl sub_8168C14 - adds r6, r0 -_08168BF2: - lsrs r4, 1 - adds r5, 0x1 - cmp r5, 0x5 - ble _08168BDC -_08168BFA: - lsls r1, r6, 16 - lsrs r1, 16 - movs r0, 0x1 - mov r2, sp - bl dp01_build_cmdbuf_x1D_1D_numargs_varargs - bl dp01_tbl5_exec_completed - add sp, 0x100 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end dp01t_00_5_getattr - - thumb_func_start sub_8168C14 -sub_8168C14: @ 8168C14 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x90 - adds r7, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - ldr r2, =gUnknown_02023064 - ldr r3, =gUnknown_02024064 - ldrb r0, [r3] - lsls r0, 9 - adds r1, r2, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3B - bls _08168C3E - bl _081693AA -_08168C3E: - lsls r0, 2 - ldr r1, =_08168C54 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08168C54: - .4byte _08168D44 - .4byte _08168F68 - .4byte _08168F78 - .4byte _08168F88 - .4byte _08168FF0 - .4byte _08168FF0 - .4byte _08168FF0 - .4byte _08168FF0 - .4byte _0816900C - .4byte _08169048 - .4byte _08169048 - .4byte _08169048 - .4byte _08169048 - .4byte _081693AA - .4byte _081693AA - .4byte _081693AA - .4byte _081693AA - .4byte _08169064 - .4byte _08169074 - .4byte _081690A4 - .4byte _081690B4 - .4byte _081690C4 - .4byte _081690D4 - .4byte _081690E4 - .4byte _081690F4 - .4byte _08169104 - .4byte _08169114 - .4byte _08169124 - .4byte _08169134 - .4byte _08169144 - .4byte _08169154 - .4byte _08169164 - .4byte _081691B4 - .4byte _081691C4 - .4byte _081691D4 - .4byte _081691E4 - .4byte _081691F4 - .4byte _08169204 - .4byte _08169214 - .4byte _08169224 - .4byte _08169234 - .4byte _08169268 - .4byte _08169278 - .4byte _08169288 - .4byte _08169298 - .4byte _081692A8 - .4byte _081692B8 - .4byte _081692C8 - .4byte _081692D8 - .4byte _081692F8 - .4byte _08169308 - .4byte _08169318 - .4byte _08169328 - .4byte _08169338 - .4byte _08169348 - .4byte _08169358 - .4byte _08169368 - .4byte _08169378 - .4byte _08169388 - .4byte _08169398 -_08168D44: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - mov r1, sp - strh r0, [r1] - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2E] - movs r6, 0 - add r0, sp, 0x24 - mov r9, r0 - movs r1, 0x3B - add r1, sp - mov r10, r1 - mov r2, sp - adds r2, 0x2B - str r2, [sp, 0x80] - mov r0, sp - adds r0, 0x2A - str r0, [sp, 0x7C] - mov r1, sp - adds r1, 0x68 - str r1, [sp, 0x8C] - adds r2, 0x5 - str r2, [sp, 0x84] - adds r0, 0x12 - str r0, [sp, 0x88] - mov r8, r4 - add r4, sp, 0xC -_08168D90: - adds r1, r6, 0 - adds r1, 0xD - mov r0, r8 - bl GetMonData - strh r0, [r4] - adds r1, r6, 0 - adds r1, 0x11 - mov r0, r8 - bl GetMonData - mov r2, r9 - adds r1, r2, r6 - strb r0, [r1] - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _08168D90 - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x15 - bl GetMonData - mov r1, r10 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - ldr r2, [sp, 0x80] - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x19 - bl GetMonData - str r0, [sp, 0x44] - adds r0, r4, 0 - movs r1, 0x27 - bl GetMonData - mov r3, sp - movs r5, 0x1F - ands r0, r5 - ldrb r2, [r3, 0x14] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x14] - adds r0, r4, 0 - movs r1, 0x28 - bl GetMonData - mov r3, sp - movs r6, 0x1F - ands r0, r6 - lsls r0, 5 - ldrh r2, [r3, 0x14] - ldr r1, =0xfffffc1f - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x14] - adds r0, r4, 0 - movs r1, 0x29 - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, 2 - ldrb r2, [r3, 0x15] - movs r1, 0x7D - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x15] - adds r0, r4, 0 - movs r1, 0x2A - bl GetMonData - movs r1, 0x1F - ands r1, r0 - lsls r1, 15 - ldr r0, [sp, 0x14] - ldr r2, =0xfff07fff - ands r0, r2 - orrs r0, r1 - str r0, [sp, 0x14] - adds r0, r4, 0 - movs r1, 0x2B - bl GetMonData - mov r3, sp - ands r0, r6 - lsls r0, 4 - ldrh r2, [r3, 0x16] - ldr r1, =0xfffffe0f - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x16] - adds r0, r4, 0 - movs r1, 0x2C - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, 1 - ldrb r2, [r3, 0x17] - movs r1, 0x3F - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - str r0, [sp, 0x48] - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - str r0, [sp, 0x4C] - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - ldr r1, [sp, 0x7C] - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - mov r1, sp - strh r0, [r1, 0x28] - adds r0, r4, 0 - movs r1, 0x3A - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2C] - adds r0, r4, 0 - movs r1, 0x3B - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2] - adds r0, r4, 0 - movs r1, 0x3C - bl GetMonData - mov r1, sp - strh r0, [r1, 0x4] - adds r0, r4, 0 - movs r1, 0x3D - bl GetMonData - mov r1, sp - strh r0, [r1, 0x6] - adds r0, r4, 0 - movs r1, 0x3E - bl GetMonData - mov r1, sp - strh r0, [r1, 0x8] - adds r0, r4, 0 - movs r1, 0x3F - bl GetMonData - mov r1, sp - strh r0, [r1, 0xA] - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - mov r3, sp - movs r1, 0x1 - ands r0, r1 - lsls r0, 6 - ldrb r2, [r3, 0x17] - movs r1, 0x41 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0x2E - bl GetMonData - mov r3, sp - lsls r0, 7 - ldrb r2, [r3, 0x17] - movs r1, 0x7F - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - str r0, [sp, 0x54] - adds r0, r4, 0 - movs r1, 0x2 - ldr r2, [sp, 0x8C] - bl GetMonData - ldr r0, [sp, 0x84] - ldr r1, [sp, 0x8C] - bl StringCopy10 - adds r0, r4, 0 - movs r1, 0x7 - ldr r2, [sp, 0x88] - bl GetMonData - mov r2, sp - movs r6, 0 -_08168F48: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, 0x1 - cmp r6, 0x57 - bls _08168F48 - b _081693AA - .pool -_08168F68: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - b _081692E2 - .pool -_08168F78: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xC - b _081692E2 - .pool -_08168F88: - movs r6, 0 - add r2, sp, 0x58 - mov r9, r2 - add r0, sp, 0x60 - mov r10, r0 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - mov r8, r9 -_08168F9E: - adds r1, r6, 0 - adds r1, 0xD - adds r0, r4, 0 - bl GetMonData - mov r1, r8 - strh r0, [r1] - adds r1, r6, 0 - adds r1, 0x11 - adds r0, r4, 0 - bl GetMonData - mov r2, r10 - adds r1, r2, r6 - strb r0, [r1] - movs r0, 0x2 - add r8, r0 - adds r6, 0x1 - cmp r6, 0x3 - ble _08168F9E - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x15 - bl GetMonData - mov r1, r9 - strb r0, [r1, 0xC] - mov r2, r9 - movs r6, 0 -_08168FDC: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, 0x1 - cmp r6, 0xF - bls _08168FDC - b _081693AA - .pool -_08168FF0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldrb r1, [r3] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r1, 0x9 - b _081692E2 - .pool -_0816900C: - movs r6, 0 - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r2, =gPlayerParty - mov r8, r2 -_08169018: - adds r1, r6, 0 - adds r1, 0x11 - mov r2, r8 - adds r0, r4, r2 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, 0x1 - cmp r6, 0x3 - ble _08169018 - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x15 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, 0x1 - b _081693AA - .pool -_08169048: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldrb r1, [r3] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r1, 0x8 - b _081693A2 - .pool -_08169064: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1 - b _0816907E - .pool -_08169074: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x19 -_0816907E: - bl GetMonData - adds r1, r0, 0 - strb r1, [r7] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r7, 0x2] - movs r6, 0x3 - b _081693AA - .pool -_081690A4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1A - b _081693A2 - .pool -_081690B4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1B - b _081693A2 - .pool -_081690C4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1C - b _081693A2 - .pool -_081690D4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1D - b _081693A2 - .pool -_081690E4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1E - b _081693A2 - .pool -_081690F4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1F - b _081693A2 - .pool -_08169104: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x20 - b _081693A2 - .pool -_08169114: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x22 - b _081693A2 - .pool -_08169124: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x23 - b _081693A2 - .pool -_08169134: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x24 - b _081693A2 - .pool -_08169144: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x25 - b _081693A2 - .pool -_08169154: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x26 - b _081693A2 - .pool -_08169164: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x27 - bl GetMonData - strb r0, [r7] - adds r0, r4, 0 - movs r1, 0x28 - bl GetMonData - strb r0, [r7, 0x1] - adds r0, r4, 0 - movs r1, 0x29 - bl GetMonData - strb r0, [r7, 0x2] - adds r0, r4, 0 - movs r1, 0x2A - bl GetMonData - strb r0, [r7, 0x3] - adds r0, r4, 0 - movs r1, 0x2B - bl GetMonData - strb r0, [r7, 0x4] - adds r0, r4, 0 - movs r1, 0x2C - bl GetMonData - strb r0, [r7, 0x5] - movs r6, 0x6 - b _081693AA - .pool -_081691B4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x27 - b _081693A2 - .pool -_081691C4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x28 - b _081693A2 - .pool -_081691D4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x29 - b _081693A2 - .pool -_081691E4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2A - b _081693A2 - .pool -_081691F4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2B - b _081693A2 - .pool -_08169204: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2C - b _081693A2 - .pool -_08169214: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0 - b _0816923E - .pool -_08169224: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x9 - b _081692E2 - .pool -_08169234: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x37 -_0816923E: - bl GetMonData - adds r1, r0, 0 - strb r1, [r7] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r7, 0x2] - lsrs r0, r1, 24 - strb r0, [r7, 0x3] - movs r6, 0x4 - b _081693AA - .pool -_08169268: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x38 - b _081693A2 - .pool -_08169278: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x39 - b _081692E2 - .pool -_08169288: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3A - b _081692E2 - .pool -_08169298: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3B - b _081692E2 - .pool -_081692A8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3C - b _081692E2 - .pool -_081692B8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3D - b _081692E2 - .pool -_081692C8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3E - b _081692E2 - .pool -_081692D8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3F -_081692E2: - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - strb r0, [r7] - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r6, 0x2 - b _081693AA - .pool -_081692F8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x16 - b _081693A2 - .pool -_08169308: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x17 - b _081693A2 - .pool -_08169318: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x18 - b _081693A2 - .pool -_08169328: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x21 - b _081693A2 - .pool -_08169338: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2F - b _081693A2 - .pool -_08169348: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x30 - b _081693A2 - .pool -_08169358: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x32 - b _081693A2 - .pool -_08169368: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x33 - b _081693A2 - .pool -_08169378: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x34 - b _081693A2 - .pool -_08169388: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x35 - b _081693A2 - .pool -_08169398: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x36 -_081693A2: - bl GetMonData - strb r0, [r7] - movs r6, 0x1 -_081693AA: - adds r0, r6, 0 - add sp, 0x90 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8168C14 - - thumb_func_start sub_81693C0 -sub_81693C0: @ 81693C0 - push {lr} - bl sub_805A614 - pop {r0} - bx r0 - thumb_func_end sub_81693C0 - - thumb_func_start sub_81693CC -sub_81693CC: @ 81693CC - push {r4,r5,lr} - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - bne _081693FC - ldr r0, =gUnknown_0202406E - lsls r1, r2, 1 - adds r1, r0 - ldrb r0, [r1] - bl sub_8169424 - b _0816941A - .pool -_081693FC: - ldrb r4, [r1] - movs r5, 0 -_08169400: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _0816940E - adds r0, r5, 0 - bl sub_8169424 -_0816940E: - lsrs r4, 1 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _08169400 -_0816941A: - bl dp01_tbl5_exec_completed - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81693CC - - thumb_func_start sub_8169424 -sub_8169424: @ 8169424 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x34 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 9 - ldr r2, =gUnknown_02023067 - adds r3, r0, r2 - adds r6, r3, 0 - subs r1, r2, 0x2 - adds r0, r1 - ldrb r0, [r0] - adds r7, r2, 0 - cmp r0, 0x3B - bls _08169450 - bl _08169DEA -_08169450: - lsls r0, 2 - ldr r1, =_08169468 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08169468: - .4byte _08169558 - .4byte _081696F0 - .4byte _08169710 - .4byte _08169730 - .4byte _08169788 - .4byte _08169788 - .4byte _08169788 - .4byte _08169788 - .4byte _081697B0 - .4byte _08169814 - .4byte _08169814 - .4byte _08169814 - .4byte _08169814 - .4byte _08169DEA - .4byte _08169DEA - .4byte _08169DEA - .4byte _08169DEA - .4byte _08169844 - .4byte _08169864 - .4byte _08169884 - .4byte _081698A4 - .4byte _081698C4 - .4byte _081698E4 - .4byte _08169904 - .4byte _08169924 - .4byte _08169944 - .4byte _08169964 - .4byte _08169984 - .4byte _081699A4 - .4byte _081699C4 - .4byte _081699E4 - .4byte _08169A04 - .4byte _08169A74 - .4byte _08169A94 - .4byte _08169AB4 - .4byte _08169AD4 - .4byte _08169AF4 - .4byte _08169B14 - .4byte _08169B34 - .4byte _08169B54 - .4byte _08169B74 - .4byte _08169B94 - .4byte _08169BB4 - .4byte _08169BD4 - .4byte _08169BF4 - .4byte _08169C14 - .4byte _08169C34 - .4byte _08169C54 - .4byte _08169C74 - .4byte _08169C94 - .4byte _08169CB4 - .4byte _08169CD4 - .4byte _08169CF4 - .4byte _08169D14 - .4byte _08169D34 - .4byte _08169D54 - .4byte _08169D74 - .4byte _08169D94 - .4byte _08169DB4 - .4byte _08169DD4 -_08169558: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - adds r2, r6, 0 - bl pokemon_setattr - adds r2, r6, 0 - adds r2, 0x2E - adds r0, r4, 0 - movs r1, 0xC - bl pokemon_setattr - movs r0, 0 - mov r8, r0 - movs r0, 0x3B - adds r0, r6 - mov r10, r0 - adds r0, r6, 0 - adds r0, 0x2B - str r0, [sp, 0x20] - adds r0, 0x19 - str r0, [sp, 0x28] - adds r0, 0x4 - str r0, [sp, 0x2C] - adds r0, 0x4 - str r0, [sp, 0x30] - subs r0, 0x22 - str r0, [sp, 0x1C] - subs r0, 0x2 - str r0, [sp, 0x18] - adds r0, 0x4 - str r0, [sp, 0x24] - adds r0, r6, 0x2 - str r0, [sp, 0x4] - adds r0, r6, 0x4 - str r0, [sp, 0x8] - adds r0, r6, 0x6 - str r0, [sp, 0xC] - adds r0, 0x2 - str r0, [sp, 0x10] - adds r0, 0x2 - str r0, [sp, 0x14] - mov r9, r4 - adds r7, r6, 0 - adds r7, 0x24 - adds r4, r6, 0 - adds r4, 0xC -_081695BE: - mov r1, r8 - adds r1, 0xD - mov r0, r9 - adds r2, r4, 0 - bl pokemon_setattr - mov r1, r8 - adds r1, 0x11 - mov r0, r9 - adds r2, r7, 0 - bl pokemon_setattr - adds r7, 0x1 - adds r4, 0x2 - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x3 - ble _081695BE - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x15 - mov r2, r10 - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x20 - ldr r2, [sp, 0x20] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x19 - ldr r2, [sp, 0x28] - bl pokemon_setattr - ldrb r0, [r6, 0x14] - lsls r0, 27 - lsrs r0, 27 - mov r1, sp - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x27 - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrh r0, [r6, 0x14] - lsls r0, 22 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x28 - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrb r0, [r6, 0x15] - lsls r0, 25 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x29 - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldr r0, [r6, 0x14] - lsls r0, 12 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2A - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrh r0, [r6, 0x16] - lsls r0, 23 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2B - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrb r0, [r6, 0x17] - lsls r0, 26 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2C - mov r2, sp - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0 - ldr r2, [sp, 0x2C] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x37 - ldr r2, [sp, 0x30] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x38 - ldr r2, [sp, 0x1C] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x39 - ldr r2, [sp, 0x18] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3A - ldr r2, [sp, 0x24] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3B - ldr r2, [sp, 0x4] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3C - ldr r2, [sp, 0x8] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3D - ldr r2, [sp, 0xC] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3E - ldr r2, [sp, 0x10] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3F - ldr r2, [sp, 0x14] - bl pokemon_setattr - b _08169DEA - .pool -_081696F0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0xB - bl pokemon_setattr - b _08169DEA - .pool -_08169710: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0xC - bl pokemon_setattr - b _08169DEA - .pool -_08169730: - movs r0, 0 - mov r8, r0 - movs r0, 0xC - adds r0, r3 - mov r9, r0 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r7, r1, r0 - adds r6, r3, 0 - adds r6, 0x8 - adds r4, r3, 0 -_0816974A: - mov r1, r8 - adds r1, 0xD - adds r0, r7, 0 - adds r2, r4, 0 - bl pokemon_setattr - mov r1, r8 - adds r1, 0x11 - adds r0, r7, 0 - adds r2, r6, 0 - bl pokemon_setattr - adds r6, 0x1 - adds r4, 0x2 - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x3 - ble _0816974A - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x15 - mov r2, r9 - bl pokemon_setattr - b _08169DEA - .pool -_08169788: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r3, =gUnknown_02023064 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, 0x9 - b _0816982C - .pool -_081697B0: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - lsls r2, 9 - adds r2, r7 - adds r0, r4, 0 - movs r1, 0x11 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x1 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x12 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x2 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x13 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x3 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x14 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x4 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x15 - bl pokemon_setattr - b _08169DEA - .pool -_08169814: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r3, =gUnknown_02023064 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, 0x8 -_0816982C: - adds r3, 0x3 - adds r2, r3 - bl pokemon_setattr - b _08169DEA - .pool -_08169844: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1 - bl pokemon_setattr - b _08169DEA - .pool -_08169864: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x19 - bl pokemon_setattr - b _08169DEA - .pool -_08169884: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1A - bl pokemon_setattr - b _08169DEA - .pool -_081698A4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1B - bl pokemon_setattr - b _08169DEA - .pool -_081698C4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1C - bl pokemon_setattr - b _08169DEA - .pool -_081698E4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1D - bl pokemon_setattr - b _08169DEA - .pool -_08169904: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1E - bl pokemon_setattr - b _08169DEA - .pool -_08169924: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1F - bl pokemon_setattr - b _08169DEA - .pool -_08169944: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x20 - bl pokemon_setattr - b _08169DEA - .pool -_08169964: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x22 - bl pokemon_setattr - b _08169DEA - .pool -_08169984: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x23 - bl pokemon_setattr - b _08169DEA - .pool -_081699A4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x24 - bl pokemon_setattr - b _08169DEA - .pool -_081699C4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x25 - bl pokemon_setattr - b _08169DEA - .pool -_081699E4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x26 - bl pokemon_setattr - b _08169DEA - .pool -_08169A04: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - lsls r2, 9 - adds r2, r7 - adds r0, r4, 0 - movs r1, 0x27 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x1 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x28 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x2 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x29 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x3 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x2A - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x4 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x2B - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x5 - adds r2, r0 - adds r0, r4, 0 - b _08169B24 - .pool -_08169A74: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x27 - bl pokemon_setattr - b _08169DEA - .pool -_08169A94: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x28 - bl pokemon_setattr - b _08169DEA - .pool -_08169AB4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x29 - bl pokemon_setattr - b _08169DEA - .pool -_08169AD4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x2A - bl pokemon_setattr - b _08169DEA - .pool -_08169AF4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x2B - bl pokemon_setattr - b _08169DEA - .pool -_08169B14: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 -_08169B24: - movs r1, 0x2C - bl pokemon_setattr - b _08169DEA - .pool -_08169B34: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0 - bl pokemon_setattr - b _08169DEA - .pool -_08169B54: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x9 - bl pokemon_setattr - b _08169DEA - .pool -_08169B74: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x37 - bl pokemon_setattr - b _08169DEA - .pool -_08169B94: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x38 - bl pokemon_setattr - b _08169DEA - .pool -_08169BB4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x39 - bl pokemon_setattr - b _08169DEA - .pool -_08169BD4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3A - bl pokemon_setattr - b _08169DEA - .pool -_08169BF4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3B - bl pokemon_setattr - b _08169DEA - .pool -_08169C14: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3C - bl pokemon_setattr - b _08169DEA - .pool -_08169C34: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3D - bl pokemon_setattr - b _08169DEA - .pool -_08169C54: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3E - bl pokemon_setattr - b _08169DEA - .pool -_08169C74: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3F - bl pokemon_setattr - b _08169DEA - .pool -_08169C94: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x16 - bl pokemon_setattr - b _08169DEA - .pool -_08169CB4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x17 - bl pokemon_setattr - b _08169DEA - .pool -_08169CD4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x18 - bl pokemon_setattr - b _08169DEA - .pool -_08169CF4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x21 - bl pokemon_setattr - b _08169DEA - .pool -_08169D14: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x2F - bl pokemon_setattr - b _08169DEA - .pool -_08169D34: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x30 - bl pokemon_setattr - b _08169DEA - .pool -_08169D54: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x32 - bl pokemon_setattr - b _08169DEA - .pool -_08169D74: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x33 - bl pokemon_setattr - b _08169DEA - .pool -_08169D94: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x34 - bl pokemon_setattr - b _08169DEA - .pool -_08169DB4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x35 - bl pokemon_setattr - b _08169DEA - .pool -_08169DD4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x36 - bl pokemon_setattr -_08169DEA: - ldr r2, =gUnknown_0202406E - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, =gPlayerParty - adds r0, r2 - bl sub_805E990 - add sp, 0x34 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8169424 - - thumb_func_start sub_8169E20 -sub_8169E20: @ 8169E20 - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8169E20 - - thumb_func_start sub_8169E2C -sub_8169E2C: @ 8169E2C - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8169E2C - - thumb_func_start sub_8169E38 -sub_8169E38: @ 8169E38 - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8169E38 - - thumb_func_start sub_8169E44 -sub_8169E44: @ 8169E44 - push {r4-r6,lr} - ldr r0, =gUnknown_02023064 - ldr r6, =gUnknown_02024064 - ldrb r2, [r6] - lsls r1, r2, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - bne _08169E80 - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x1 - bl move_anim_start_t4 - ldr r0, =gUnknown_03005D60 - ldrb r1, [r6] - lsls r1, 2 - adds r1, r0 - ldr r0, =sub_8168A20 - str r0, [r1] - b _08169EB6 - .pool -_08169E80: - ldr r5, =gUnknown_020241E4 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - bl obj_free_rotscale_entry - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl RemoveObjectAndFreeTiles - ldr r1, =gUnknown_03005D70 - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl sub_8072984 - bl dp01_tbl5_exec_completed -_08169EB6: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8169E44 - - thumb_func_start sub_8169EC8 -sub_8169EC8: @ 8169EC8 - push {r4-r6,lr} - ldr r4, =gUnknown_02024064 - ldrb r1, [r4] - movs r0, 0x6 - bl sub_805DF84 - ldrb r0, [r4] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x6 - bl template_build_for_pokemon_or_trainer - ldr r0, =gUnknown_0202499C - ldr r1, =gUnknown_08305D2C - ldrb r1, [r1, 0x18] - movs r2, 0x8 - subs r2, r1 - lsls r2, 18 - movs r1, 0xA0 - lsls r1, 15 - adds r2, r1 - asrs r2, 16 - movs r1, 0x50 - movs r3, 0x1E - bl AddObjectToFront - ldr r6, =gUnknown_020241E4 - ldrb r1, [r4] - adds r1, r6 - strb r0, [r1] - ldr r5, =gUnknown_02020630 - ldrb r3, [r4] - adds r0, r3, r6 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0xF0 - strh r1, [r0, 0x24] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =0x0000fffe - strh r1, [r0, 0x2E] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r5, 0x1C - adds r0, r5 - ldr r1, =sub_805D7AC - str r1, [r0] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_816856C - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8169EC8 - - thumb_func_start dp01t_07_6_ -dp01t_07_6_: @ 8169F94 - push {r4-r6,lr} - ldr r4, =gUnknown_02024064 - ldrb r1, [r4] - movs r0, 0x6 - bl sub_805DF84 - ldrb r0, [r4] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x6 - bl template_build_for_pokemon_or_trainer - ldr r0, =gUnknown_0202499C - ldr r1, =gUnknown_08305D2C - ldrb r1, [r1, 0x18] - movs r2, 0x8 - subs r2, r1 - lsls r2, 18 - movs r1, 0xA0 - lsls r1, 15 - adds r2, r1 - asrs r2, 16 - movs r1, 0x50 - movs r3, 0x1E - bl AddObjectToFront - ldr r6, =gUnknown_020241E4 - ldrb r1, [r4] - adds r1, r6 - strb r0, [r1] - ldr r5, =gUnknown_02020630 - ldrb r3, [r4] - adds r0, r3, r6 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =0x0000ffa0 - strh r1, [r0, 0x24] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x2 - strh r1, [r0, 0x2E] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r5, 0x1C - adds r0, r5 - ldr r1, =sub_805D7AC - str r1, [r0] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8168A90 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end dp01t_07_6_ - - thumb_func_start sub_816A060 -sub_816A060: @ 816A060 - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816A060 - - thumb_func_start sub_816A06C -sub_816A06C: @ 816A06C - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816A06C - - thumb_func_start sub_816A078 -sub_816A078: @ 816A078 - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816A078 - - thumb_func_start sub_816A084 -sub_816A084: @ 816A084 - push {r4,r5,lr} - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r1, [r0, 0x8] - movs r0, 0x4 - strb r0, [r1, 0x8] - ldr r1, =gUnknown_020244B9 - movs r0, 0x1 - strb r0, [r1] - ldr r5, =gUnknown_02024064 - ldrb r4, [r5] - movs r0, 0x1 - bl battle_get_side_with_given_state - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r4, 0 - movs r3, 0x4 - bl move_anim_start_t4 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_wait_t5 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816A084 - - thumb_func_start sub_816A0D8 -sub_816A0D8: @ 816A0D8 - push {r4,r5,lr} - ldr r1, =gUnknown_02023064 - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r1, [r0] - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r0, [r0, 0x8] - strb r1, [r0, 0x8] - ldr r1, =gUnknown_020244B9 - movs r0, 0x1 - strb r0, [r1] - ldrb r4, [r5] - movs r0, 0x1 - bl battle_get_side_with_given_state - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r4, 0 - movs r3, 0x4 - bl move_anim_start_t4 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_wait_t5 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816A0D8 - - thumb_func_start sub_816A138 -sub_816A138: @ 816A138 - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816A138 - - thumb_func_start sub_816A144 -sub_816A144: @ 816A144 - push {r4-r6,lr} - ldr r0, =gUnknown_02023064 - mov r12, r0 - ldr r6, =gUnknown_02024064 - ldrb r2, [r6] - lsls r2, 9 - adds r0, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - mov r1, r12 - adds r1, 0x2 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - ldr r5, =gUnknown_02038432 - mov r1, r12 - adds r1, 0x3 - adds r2, r1 - ldrb r1, [r2] - strb r1, [r5] - ldr r4, =gUnknown_02038408 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x4 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0x5 - adds r2, r1 - ldrb r1, [r2] - lsls r1, 8 - orrs r3, r1 - strh r3, [r4] - ldr r4, =gUnknown_02038404 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x6 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0x7 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r3, r1 - mov r1, r12 - adds r1, 0x8 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 16 - orrs r3, r1 - mov r1, r12 - adds r1, 0x9 - adds r2, r1 - ldrb r1, [r2] - lsls r1, 24 - orrs r3, r1 - str r3, [r4] - ldr r3, =gUnknown_0203841A - ldrb r1, [r6] - lsls r1, 9 - mov r2, r12 - adds r2, 0xA - adds r1, r2 - ldrb r1, [r1] - strb r1, [r3] - ldr r4, =gUnknown_0203841C - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0xC - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0xD - adds r2, r1 - ldrb r1, [r2] - lsls r1, 8 - orrs r3, r1 - strh r3, [r4] - ldr r3, =gUnknown_02038400 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x10 - adds r2, r1 - str r2, [r3] - ldr r3, =gUnknown_020244BC - ldrb r1, [r6] - lsls r1, 2 - adds r1, r3 - ldr r2, [r2] - str r2, [r1] - ldrb r1, [r5] - bl sub_805DB8C - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _0816A23C - bl dp01_tbl5_exec_completed - b _0816A25A - .pool -_0816A23C: - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strb r3, [r0, 0x4] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_move_anim_5 - str r1, [r0] -_0816A25A: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816A144 - - thumb_func_start bx_move_anim_5 -bx_move_anim_5: @ 816A26C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r2, =gUnknown_02023064 - ldr r6, =gUnknown_02024064 - ldrb r3, [r6] - lsls r1, r3, 9 - adds r0, r2, 0x1 - mov r9, r0 - adds r0, r1, r0 - ldrb r4, [r0] - adds r2, 0x2 - mov r8, r2 - add r1, r8 - ldrb r0, [r1] - lsls r0, 8 - orrs r4, r0 - ldr r7, =gUnknown_020244D0 - ldr r5, [r7] - ldr r1, [r5, 0x4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x4] - cmp r2, 0x1 - beq _0816A2F6 - cmp r2, 0x1 - bgt _0816A2BC - cmp r2, 0 - beq _0816A2C6 - b _0816A3AC - .pool -_0816A2BC: - cmp r2, 0x2 - beq _0816A320 - cmp r2, 0x3 - beq _0816A370 - b _0816A3AC -_0816A2C6: - ldr r1, [r5] - lsls r0, r3, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0816A2E2 - adds r0, r3, 0 - adds r1, r3, 0 - adds r2, r3, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_0816A2E2: - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0, 0x4] - b _0816A3AC -_0816A2F6: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0816A3AC - movs r0, 0 - bl sub_805EB9C - adds r0, r4, 0 - bl move_anim_start_t1 - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2 - strb r1, [r0, 0x4] - b _0816A3AC -_0816A320: - ldr r0, =gUnknown_020383F8 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, =gUnknown_020383FD - ldrb r0, [r0] - cmp r0, 0 - bne _0816A3AC - movs r0, 0x1 - bl sub_805EB9C - ldr r0, [r7] - ldrb r2, [r6] - ldr r1, [r0] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0816A354 - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x6 - bl move_anim_start_t4 -_0816A354: - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - strb r1, [r0, 0x4] - b _0816A3AC - .pool -_0816A370: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _0816A3AC - bl sub_805E394 - ldrb r0, [r6] - lsls r2, r0, 9 - mov r3, r9 - adds r1, r2, r3 - ldrb r1, [r1] - add r2, r8 - ldrb r2, [r2] - lsls r2, 8 - orrs r1, r2 - bl sub_805E94C - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strb r4, [r0, 0x4] - bl dp01_tbl5_exec_completed -_0816A3AC: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end bx_move_anim_5 - - thumb_func_start sub_816A3B8 -sub_816A3B8: @ 816A3B8 - push {r4,lr} - ldr r0, =gUnknown_02022E14 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_02022E16 - strh r1, [r0] - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - lsls r0, 9 - ldr r1, =gUnknown_02023066 - adds r0, r1 - ldrh r0, [r0] - bl battle_pick_message - ldr r0, =gUnknown_02022E2C - movs r1, 0 - bl battle_show_message_maybe - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_81685A4 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816A3B8 - - thumb_func_start dp01t_11_5_message_for_player_only -dp01t_11_5_message_for_player_only: @ 816A40C - push {lr} - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0816A428 - bl sub_816A3B8 - b _0816A42C - .pool -_0816A428: - bl dp01_tbl5_exec_completed -_0816A42C: - pop {r0} - bx r0 - thumb_func_end dp01t_11_5_message_for_player_only - - thumb_func_start sub_816A430 -sub_816A430: @ 816A430 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _0816A456 - ldr r0, =gUnknown_02022E14 - strh r1, [r0] - ldr r1, =gUnknown_02022E16 - movs r0, 0xA0 - strh r0, [r1] - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8168444 - str r1, [r0] -_0816A456: - pop {r0} - bx r0 - .pool - thumb_func_end sub_816A430 - - thumb_func_start dp01t_12_1_battle_menu -dp01t_12_1_battle_menu: @ 816A470 - push {r4,lr} - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_816A430 - str r1, [r0] - ldr r0, =gUnknown_085CCA3A - movs r1, 0x2 - bl battle_show_message_maybe - movs r4, 0 -_0816A48A: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_8059CF8 - adds r4, 0x1 - cmp r4, 0x3 - ble _0816A48A - ldr r1, =gUnknown_020244AC - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - movs r1, 0 - bl sub_8059CB4 - ldr r0, =gUnknown_085CCA15 - bl get_battle_strings_ - ldr r0, =gUnknown_02022E2C - movs r1, 0x1 - bl battle_show_message_maybe - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end dp01t_12_1_battle_menu - - thumb_func_start sub_816A4D8 -sub_816A4D8: @ 816A4D8 - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816A4D8 - - thumb_func_start sub_816A4E4 -sub_816A4E4: @ 816A4E4 - push {r4,lr} - ldr r4, =gUnknown_0202449C - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x95 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0816A522 - cmp r0, 0x1 - bgt _0816A504 - cmp r0, 0 - beq _0816A50A - b _0816A574 - .pool -_0816A504: - cmp r0, 0x2 - beq _0816A550 - b _0816A574 -_0816A50A: - bl sub_805C210 - ldr r1, [r4] - adds r1, 0x95 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r4] - adds r0, 0x97 - movs r1, 0x50 - strb r1, [r0] - b _0816A574 -_0816A522: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _0816A574 - ldr r0, =gUnknown_02022E14 - strh r1, [r0] - ldr r1, =gUnknown_02022E16 - movs r2, 0xA0 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, [r4] - adds r1, 0x95 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0816A574 - .pool -_0816A550: - adds r1, 0x97 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bne _0816A574 - movs r0, 0x5 - bl audio_play - movs r2, 0x80 - lsls r2, 1 - movs r0, 0x1 - movs r1, 0xA - bl dp01_build_cmdbuf_x21_a_bb - bl dp01_tbl5_exec_completed -_0816A574: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_816A4E4 - - thumb_func_start sub_816A57C -sub_816A57C: @ 816A57C - push {lr} - sub sp, 0x4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gUnknown_03005D60 - ldr r2, =gUnknown_02024064 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_81685D4 - str r1, [r0] - ldr r1, =gUnknown_020244B8 - ldrb r0, [r2] - strb r0, [r1] - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_816A57C - - thumb_func_start sub_816A5BC -sub_816A5BC: @ 816A5BC - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816A5BC - - thumb_func_start sub_816A5C8 -sub_816A5C8: @ 816A5C8 - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816A5C8 - - thumb_func_start sub_816A5D4 -sub_816A5D4: @ 816A5D4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - movs r0, 0 - bl load_gfxc_health_bar - ldr r3, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - mov r9, r0 - ldrb r4, [r0] - lsls r2, r4, 9 - adds r0, r3, 0x2 - adds r0, r2, r0 - ldrb r1, [r0] - adds r3, 0x3 - adds r2, r3 - ldrb r0, [r2] - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - asrs r7, r1, 16 - ldr r0, =0x00007fff - cmp r7, r0 - beq _0816A664 - ldr r6, =gUnknown_0202406E - lsls r0, r4, 1 - adds r0, r6 - ldrh r0, [r0] - movs r5, 0x64 - muls r0, r5 - ldr r4, =gPlayerParty - adds r0, r4 - movs r1, 0x3A - bl GetMonData - mov r8, r0 - mov r1, r9 - ldrb r0, [r1] - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - muls r0, r5 - adds r0, r4 - movs r1, 0x39 - bl GetMonData - adds r3, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r1, =gUnknown_03005D70 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - mov r2, r8 - bl sub_807294C - b _0816A69E - .pool -_0816A664: - ldr r1, =gUnknown_0202406E - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3A - bl GetMonData - adds r2, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r4, =gUnknown_03005D70 - adds r1, r0, r4 - ldrb r1, [r1] - str r7, [sp] - movs r3, 0 - bl sub_807294C - mov r1, r9 - ldrb r0, [r1] - adds r0, r4 - ldrb r0, [r0] - movs r1, 0 - movs r2, 0 - bl heathbar_draw_hp -_0816A69E: - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8168934 - str r1, [r0] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816A5D4 - - thumb_func_start sub_816A6D4 -sub_816A6D4: @ 816A6D4 - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816A6D4 - - thumb_func_start sub_816A6E0 -sub_816A6E0: @ 816A6E0 - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816A6E0 - - thumb_func_start sub_816A6EC -sub_816A6EC: @ 816A6EC - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816A6EC - - thumb_func_start sub_816A6F8 -sub_816A6F8: @ 816A6F8 - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816A6F8 - - thumb_func_start sub_816A704 -sub_816A704: @ 816A704 - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816A704 - - thumb_func_start sub_816A710 -sub_816A710: @ 816A710 - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816A710 - - thumb_func_start sub_816A71C -sub_816A71C: @ 816A71C - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816A71C - - thumb_func_start sub_816A728 -sub_816A728: @ 816A728 - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816A728 - - thumb_func_start sub_816A734 -sub_816A734: @ 816A734 - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816A734 - - thumb_func_start sub_816A740 -sub_816A740: @ 816A740 - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816A740 - - thumb_func_start sub_816A74C -sub_816A74C: @ 816A74C - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816A74C - - thumb_func_start sub_816A758 -sub_816A758: @ 816A758 - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816A758 - - thumb_func_start sub_816A764 -sub_816A764: @ 816A764 - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816A764 - - thumb_func_start sub_816A770 -sub_816A770: @ 816A770 - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816A770 - - thumb_func_start sub_816A77C -sub_816A77C: @ 816A77C - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816A77C - - thumb_func_start sub_816A788 -sub_816A788: @ 816A788 - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816A788 - - thumb_func_start sub_816A794 -sub_816A794: @ 816A794 - push {r4,lr} - ldr r3, =gUnknown_02020630 - ldr r2, =gUnknown_020241E4 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _0816A7C8 - bl dp01_tbl5_exec_completed - b _0816A7F2 - .pool -_0816A7C8: - ldr r1, =gUnknown_020244B9 - movs r0, 0x1 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0 - strh r1, [r0, 0x30] - ldrb r0, [r4] - bl sub_80769F4 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_blink_t5 - str r1, [r0] -_0816A7F2: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816A794 - - thumb_func_start sub_816A804 -sub_816A804: @ 816A804 - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816A804 - - thumb_func_start sub_816A810 -sub_816A810: @ 816A810 - push {lr} - ldr r2, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - lsls r1, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - bl audio_play - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end sub_816A810 - - thumb_func_start sub_816A840 -sub_816A840: @ 816A840 - push {r4,r5,lr} - ldr r4, =gUnknown_02023064 - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - lsls r3, r0, 9 - adds r0, r4, 0x3 - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, 0 - beq _0816A87C - bl sub_805EA60 - ldrb r1, [r5] - lsls r1, 9 - adds r0, r4, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, r4, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - bl song_play_for_text - b _0816A890 - .pool -_0816A87C: - adds r0, r4, 0x1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, 0x2 - adds r1, r3, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - bl fanfare_play -_0816A890: - bl dp01_tbl5_exec_completed - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_816A840 - - thumb_func_start sub_816A89C -sub_816A89C: @ 816A89C - push {lr} - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x19 - bl cry_related - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end sub_816A89C - - thumb_func_start dp01t_2E_5_battle_intro -dp01t_2E_5_battle_intro: @ 816A8D8 - push {lr} - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - bl battle_intro_launch - ldr r2, =gUnknown_020243FC - ldrh r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end dp01t_2E_5_battle_intro - - thumb_func_start sub_816A90C -sub_816A90C: @ 816A90C - push {r4-r7,lr} - ldr r6, =gUnknown_020241E4 - ldr r7, =gUnknown_02024064 - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, =gUnknown_02020630 - adds r0, r5 - bl oamt_add_pos2_onto_pos1 - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x32 - strh r1, [r0, 0x2E] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =0x0000ffd8 - strh r1, [r0, 0x32] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r0, 0x22] - strh r1, [r0, 0x36] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_80A6EEC - str r1, [r0] - ldrb r2, [r7] - adds r0, r2, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x38] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =sub_805CC00 - bl oamt_set_x3A_32 - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x1 - bl StartObjectImageAnim - ldr r0, =0x0000d6f8 - bl AllocObjectPalette - adds r4, r0, 0 - lsls r4, 24 - ldr r0, =gTrainerBackPicPaletteTable - ldr r0, [r0, 0x30] - lsrs r4, 20 - movs r2, 0x80 - lsls r2, 1 - adds r1, r4, r2 - movs r2, 0x20 - bl LoadCompressedPalette - ldrb r0, [r7] - adds r0, r6 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r4 - strb r0, [r1, 0x5] - ldr r0, =sub_816AC04 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r4, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - ldrb r0, [r7] - strh r0, [r1, 0x8] - ldr r3, =gUnknown_020244D0 - ldr r0, [r3] - ldrb r2, [r7] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0816AA24 - ldr r0, =gUnknown_020244B4 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - ldr r1, =sub_8073C30 - str r1, [r0] -_0816AA24: - ldr r0, [r3] - ldr r2, [r0, 0x8] - ldrb r0, [r2, 0x9] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x9] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - ldr r1, =nullsub_21 - str r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816A90C - - thumb_func_start sub_816AA80 -sub_816AA80: @ 816AA80 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r6, 2 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x2] - ldr r0, =gUnknown_0202406E - lsls r2, r6, 1 - adds r2, r0 - ldr r0, =gUnknown_02023064 - lsls r1, r6, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - strh r0, [r2] - ldrh r1, [r2] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - mov r8, r0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r0, =sub_805D714 - bl CreateInvisibleSpriteWithCallback - ldr r1, =gUnknown_03005D7C - mov r9, r1 - add r9, r6 - mov r1, r9 - strb r0, [r1] - adds r0, r6, 0 - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl sub_806A068 - ldr r0, =gUnknown_0202499C - mov r10, r0 - adds r0, r6, 0 - movs r1, 0x2 - bl sub_80A5C6C - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r6, 0 - bl sub_80A6138 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r10 - adds r1, r5, 0 - adds r2, r4, 0 - bl AddObjectToFront - ldr r4, =gUnknown_020241E4 - adds r4, r6, r4 - strb r0, [r4] - ldr r5, =gUnknown_02020630 - mov r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r4] - strh r1, [r0, 0x30] - mov r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x32] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x2E] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r8 - strh r1, [r0, 0x32] - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, r6, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =gUnknown_020244E4 - adds r6, r1 - ldrb r1, [r6] - bl StartObjectImageAnim - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =DummyObjectCallback - str r1, [r0] - movs r0, 0 - movs r1, 0xFF - bl sub_80753E8 - mov r1, r9 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r5 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x2E] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816AA80 - - thumb_func_start sub_816AC04 -sub_816AC04: @ 816AC04 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0xA] - movs r3, 0xA - ldrsh r0, [r1, r3] - cmp r0, 0x1E - bgt _0816AC28 - adds r0, r2, 0x1 - strh r0, [r1, 0xA] - b _0816AC5E - .pool -_0816AC28: - ldr r4, =gUnknown_02024064 - ldrb r5, [r4] - ldrh r0, [r1, 0x8] - strb r0, [r4] - ldr r0, =gUnknown_02023064 - ldrb r1, [r4] - lsls r2, r1, 9 - adds r0, 0x1 - adds r2, r0 - ldr r0, =gUnknown_0202406E - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - strb r0, [r2] - ldrb r0, [r4] - bl sub_816AA80 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_816864C - str r1, [r0] - strb r5, [r4] - adds r0, r6, 0 - bl DestroyTask -_0816AC5E: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816AC04 - - thumb_func_start sub_816AC78 -sub_816AC78: @ 816AC78 - push {r4,r5,lr} - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0816ACA8 - adds r0, r2, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0816ACA8 - bl dp01_tbl5_exec_completed - b _0816ACE6 - .pool -_0816ACA8: - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r5, =gUnknown_02024064 - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - ldrb r0, [r5] - lsls r4, r0, 9 - ldr r3, =gUnknown_02023068 - adds r1, r4, r3 - subs r2, r3, 0x3 - adds r2, r4, r2 - ldrb r2, [r2] - subs r3, 0x2 - adds r4, r3 - ldrb r3, [r4] - bl sub_80735DC - ldr r2, =gUnknown_020244B4 - ldrb r1, [r5] - adds r1, r2 - strb r0, [r1] - bl dp01_tbl5_exec_completed -_0816ACE6: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816AC78 - - thumb_func_start sub_816ACFC -sub_816ACFC: @ 816ACFC - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816ACFC - - thumb_func_start sub_816AD08 -sub_816AD08: @ 816AD08 - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816AD08 - - thumb_func_start sub_816AD14 -sub_816AD14: @ 816AD14 - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816AD14 - - thumb_func_start sub_816AD20 -sub_816AD20: @ 816AD20 - push {r4-r6,lr} - sub sp, 0x4 - ldr r5, =gUnknown_02023064 - ldr r6, =gUnknown_02024064 - ldrb r2, [r6] - lsls r1, r2, 9 - adds r0, r5, 0x1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r0, r5, 0x2 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, 0x3 - adds r1, r5 - ldrb r0, [r1] - lsls r0, 8 - orrs r4, r0 - str r4, [sp] - adds r0, r2, 0 - adds r1, r2, 0 - bl move_anim_start_t3 - lsls r0, 24 - cmp r0, 0 - beq _0816AD60 - bl dp01_tbl5_exec_completed - b _0816AD6C - .pool -_0816AD60: - ldr r0, =gUnknown_03005D60 - ldrb r1, [r6] - lsls r1, 2 - adds r1, r0 - ldr r0, =sub_8168AC8 - str r0, [r1] -_0816AD6C: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816AD20 - - thumb_func_start sub_816AD7C -sub_816AD7C: @ 816AD7C - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816AD7C - - thumb_func_start sub_816AD88 -sub_816AD88: @ 816AD88 - push {lr} - bl dp01_tbl5_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_816AD88 - - thumb_func_start sub_816AD94 -sub_816AD94: @ 816AD94 - push {r4,lr} - ldr r2, =gUnknown_0202433A - ldr r1, =gUnknown_02023064 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - movs r0, 0x5 - bl sub_80A2F50 - movs r0, 0x3 - bl BeginFastPaletteFade - bl dp01_tbl5_exec_completed - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x6 - ands r0, r1 - cmp r0, 0x2 - bne _0816ADD0 - ldr r0, =gUnknown_03005D60 - ldrb r1, [r4] - lsls r1, 2 - adds r1, r0 - ldr r0, =sub_80587B0 - str r0, [r1] -_0816ADD0: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816AD94 - - thumb_func_start nullsub_118 -nullsub_118: @ 816ADF0 - bx lr - thumb_func_end nullsub_118 - .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_81700F8.s b/asm/rom_81700F8.s index 124d12bf37..4c35e747cf 100644 --- a/asm/rom_81700F8.s +++ b/asm/rom_81700F8.s @@ -31,17 +31,17 @@ sub_81700F8: @ 81700F8 lsrs r0, 16 bl InitSaveBlockPointersWithRandomOffset bl sub_808447C - bl sub_8152680 + bl ResetSaveCounters movs r0, 0 bl sub_81534D0 - ldr r0, =gUnknown_03006210 + ldr r0, =gSaveFileStatus ldrh r0, [r0] cmp r0, 0 beq _08170148 cmp r0, 0x2 bne _0817014C _08170148: - bl init_sav2 + bl Sav2_ClearSetDefault _0817014C: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] diff --git a/asm/rom_817C95C.s b/asm/rom_817C95C.s index 343f213476..528c7655a7 100644 --- a/asm/rom_817C95C.s +++ b/asm/rom_817C95C.s @@ -29,37 +29,37 @@ sub_817C95C: @ 817C95C beq _0817C988 bl _0817E0A6 _0817C988: - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] movs r1, 0x81 lsls r1, 2 adds r7, r0, r1 - ldr r5, =gUnknown_0202420B + ldr r5, =gBankAttacker ldrb r0, [r5] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gEnemyMonIndex + ldr r0, =gBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gUnknown_0202420E ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r0, =gUnknown_0203ABA8 ldr r0, [r0] ldrb r0, [r0, 0x7] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] cmp r4, 0 bne _0817CA00 - ldr r2, =gUnknown_0202406E + ldr r2, =gBattlePartyID ldrb r0, [r5] lsls r0, 1 adds r0, r2 @@ -70,7 +70,7 @@ _0817C988: b _0817CA10 .pool _0817CA00: - ldr r2, =gUnknown_0202406E + ldr r2, =gBattlePartyID ldrb r0, [r5] lsls r0, 1 adds r0, r2 @@ -83,7 +83,7 @@ _0817CA10: str r1, [sp, 0x8] cmp r6, 0 bne _0817CA3C - ldr r0, =gEnemyMonIndex + ldr r0, =gBankTarget ldrb r0, [r0] lsls r0, 1 adds r0, r2 @@ -94,7 +94,7 @@ _0817CA10: b _0817CA4C .pool _0817CA3C: - ldr r0, =gEnemyMonIndex + ldr r0, =gBankTarget ldrb r0, [r0] lsls r0, 1 adds r0, r2 @@ -105,7 +105,7 @@ _0817CA3C: _0817CA4C: adds r1, r0 str r1, [sp, 0xC] - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r0, [r0] ldr r1, =gUnknown_0203ABA8 ldr r1, [r1] @@ -134,20 +134,20 @@ _0817CA4C: bl _0817E0A2 .pool _0817CA9C: - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r0, [r0] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 25 mov r8, r0 - ldr r0, =gEnemyMonIndex + ldr r0, =gBankTarget ldrb r0, [r0] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r5, r0, 25 ldr r0, =gUnknown_0202420E ldrb r0, [r0] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r3, r0, 25 ldr r1, [sp] @@ -571,8 +571,8 @@ _0817D0DC: adds r3, r4 lsls r3, 2 adds r3, r7, r3 - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -601,8 +601,8 @@ _0817D124: adds r2, r4 lsls r2, 2 adds r2, r7, r2 - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -634,8 +634,8 @@ _0817D16C: adds r0, r4 lsls r0, 2 adds r5, r7, r0 - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -715,8 +715,8 @@ _0817D216: adds r2, r4 lsls r2, 2 adds r2, r7, r2 - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -775,8 +775,8 @@ _0817D296: adds r2, r4 lsls r2, 2 adds r2, r7, r2 - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -833,8 +833,8 @@ _0817D314: lsls r0, r4, 4 adds r3, r0 adds r3, r7, r3 - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -899,7 +899,7 @@ _0817D38C: bl sub_817E684 bl _0817E0A6 _0817D3A6: - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] adds r0, 0xB3 movs r1, 0x1 @@ -911,7 +911,7 @@ _0817D3B8: movs r2, 0 b _0817D48E _0817D3C0: - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldrb r2, [r0, 0x2] cmp r2, 0 bne _0817D3CC @@ -934,14 +934,14 @@ _0817D3E8: movs r0, 0x16 b _0817D48C _0817D3F2: - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldrb r2, [r0, 0x2] cmp r2, 0 bne _0817D3FE bl _0817E0A6 _0817D3FE: - ldr r0, =gUnknown_0202420B - ldr r1, =gEnemyMonIndex + ldr r0, =gBankAttacker + ldr r1, =gBankTarget ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 @@ -969,7 +969,7 @@ _0817D436: movs r0, 0x1B b _0817D48C _0817D440: - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldrb r2, [r0, 0x2] cmp r2, 0 bne _0817D44C @@ -982,7 +982,7 @@ _0817D44C: b _0817D48C .pool _0817D45C: - ldr r0, =gUnknown_02022F58 + ldr r0, =gBattleTextBuff1 ldrb r2, [r0, 0x2] cmp r2, 0 bne _0817D468 @@ -1014,8 +1014,8 @@ _0817D498: lsls r0, r6, 4 adds r2, r0 adds r2, r7, r2 - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1091,8 +1091,8 @@ _0817D53C: lsls r0, r6, 4 adds r2, r0 adds r2, r7, r2 - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1161,8 +1161,8 @@ _0817D5CE: lsls r0, r6, 4 adds r2, r0 adds r2, r7, r2 - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1226,8 +1226,8 @@ _0817D65E: lsls r0, r6, 4 adds r2, r0 adds r2, r7, r2 - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1301,7 +1301,7 @@ _0817D6F2: strb r0, [r1] bl _0817E0A6 _0817D704: - ldr r5, =gUnknown_0202406E + ldr r5, =gBattlePartyID ldr r6, =gUnknown_0202420E ldrb r0, [r6] lsls r0, 1 @@ -1314,7 +1314,7 @@ _0817D704: lsls r4, 3 adds r2, r4 adds r2, r7, r2 - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r5 @@ -1353,8 +1353,8 @@ _0817D76C: bne _0817D77E bl _0817E0A6 _0817D77E: - ldr r6, =gUnknown_0202406E - ldr r5, =gUnknown_0202420B + ldr r6, =gBattlePartyID + ldr r5, =gBankAttacker ldrb r0, [r5] lsls r0, 1 adds r0, r6 @@ -1395,7 +1395,7 @@ _0817D7B2: b _0817D934 .pool _0817D7D8: - ldr r5, =gUnknown_0202406E + ldr r5, =gBattlePartyID ldr r6, =gUnknown_0202420E ldrb r0, [r6] lsls r0, 1 @@ -1408,7 +1408,7 @@ _0817D7D8: lsls r4, 3 adds r2, r4 adds r2, r7, r2 - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r5 @@ -1439,7 +1439,7 @@ _0817D7D8: b _0817D88C .pool _0817D838: - ldr r5, =gUnknown_0202406E + ldr r5, =gBattlePartyID ldr r6, =gUnknown_0202420E ldrb r0, [r6] lsls r0, 1 @@ -1452,7 +1452,7 @@ _0817D838: lsls r4, 3 adds r2, r4 adds r2, r7, r2 - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r5 @@ -1496,9 +1496,9 @@ _0817D8A4: bne _0817D8B6 bl _0817E0A6 _0817D8B6: - ldr r2, =gUnknown_0202406E + ldr r2, =gBattlePartyID mov r8, r2 - ldr r6, =gUnknown_0202420B + ldr r6, =gBankAttacker ldrb r0, [r6] lsls r0, 1 add r0, r8 @@ -1573,8 +1573,8 @@ _0817D94C: lsls r0, r6, 4 adds r2, r0 adds r2, r7, r2 - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1627,7 +1627,7 @@ _0817D9AE: movs r0, 0x9 b _0817E086 _0817D9C2: - ldr r5, =gUnknown_0202406E + ldr r5, =gBattlePartyID ldr r6, =gUnknown_0202420E ldrb r0, [r6] lsls r0, 1 @@ -1640,7 +1640,7 @@ _0817D9C2: lsls r4, 3 adds r2, r4 adds r2, r7, r2 - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r5 @@ -1671,8 +1671,8 @@ _0817D9C2: b _0817DB76 .pool _0817DA24: - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1702,7 +1702,7 @@ _0817DA48: b _0817E0A6 .pool _0817DA68: - ldr r5, =gUnknown_0202406E + ldr r5, =gBattlePartyID ldr r6, =gUnknown_0202420E ldrb r0, [r6] lsls r0, 1 @@ -1715,7 +1715,7 @@ _0817DA68: lsls r4, 3 adds r2, r4 adds r2, r7, r2 - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r5 @@ -1747,8 +1747,8 @@ _0817DA68: b _0817DB76 .pool _0817DACC: - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1790,7 +1790,7 @@ _0817DB10: b _0817E0A6 .pool _0817DB24: - ldr r5, =gUnknown_0202406E + ldr r5, =gBattlePartyID ldr r6, =gUnknown_0202420E ldrb r0, [r6] lsls r0, 1 @@ -1803,7 +1803,7 @@ _0817DB24: lsls r4, 3 adds r3, r4 adds r3, r7, r3 - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r5 @@ -1838,8 +1838,8 @@ _0817DB76: b _0817E0A6 .pool _0817DB90: - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1875,8 +1875,8 @@ _0817DBD4: lsls r0, r1, 4 adds r3, r0 adds r3, r7, r3 - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1943,8 +1943,8 @@ _0817DC62: adds r2, r6 lsls r2, 2 adds r2, r7, r2 - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2021,8 +2021,8 @@ _0817DCFC: lsls r0, r4, 4 adds r2, r0 adds r2, r7, r2 - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2049,8 +2049,8 @@ _0817DD38: lsls r0, r4, 4 adds r2, r0 adds r2, r7, r2 - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2121,8 +2121,8 @@ _0817DDC8: adds r2, r4 lsls r2, 2 adds r2, r7, r2 - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2154,8 +2154,8 @@ _0817DE10: adds r2, r4 lsls r2, 2 adds r2, r7, r2 - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2253,8 +2253,8 @@ _0817DEDC: adds r2, r4 lsls r2, 2 adds r2, r7, r2 - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2331,8 +2331,8 @@ _0817DF70: adds r2, r4 lsls r2, 2 adds r2, r7, r2 - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2413,8 +2413,8 @@ _0817DFE6: negs r0, r0 ands r0, r2 strb r0, [r1] - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2551,22 +2551,22 @@ sub_817E0FC: @ 817E0FC bne _0817E122 b _0817E310 _0817E122: - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] movs r1, 0x81 lsls r1, 2 adds r1, r0, r1 str r1, [sp, 0x8] - ldr r2, =gUnknown_0202420B + ldr r2, =gBankAttacker mov r10, r2 ldrb r0, [r2] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 mov r9, r0 - ldr r0, =gEnemyMonIndex + ldr r0, =gBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r4, r0, 24 mov r1, r10 @@ -2593,7 +2593,7 @@ _0817E122: _0817E184: mov r2, r10 ldrb r0, [r2] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 25 lsls r0, 3 @@ -2604,7 +2604,7 @@ _0817E184: mov r2, r10 ldrb r1, [r2] lsls r1, 1 - ldr r2, =gUnknown_0202406E + ldr r2, =gBattlePartyID adds r1, r2 ldrh r2, [r1] adds r2, 0x1 @@ -2617,7 +2617,7 @@ _0817E184: strb r1, [r0] mov r1, r10 ldrb r0, [r1] - bl battle_get_per_side_status + bl GetBankIdentity lsls r0, 24 lsrs r0, 25 lsls r0, 3 @@ -2685,7 +2685,7 @@ _0817E23C: mov r1, r10 ldrb r0, [r1] lsls r0, 1 - ldr r2, =gUnknown_0202406E + ldr r2, =gBattlePartyID adds r0, r2 ldrh r1, [r0] adds r1, 0x1 @@ -2723,7 +2723,7 @@ _0817E27A: mov r1, r10 ldrb r0, [r1] lsls r0, 1 - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID adds r0, r1 ldrh r1, [r0] adds r1, 0x1 @@ -2807,14 +2807,14 @@ sub_817E32C: @ 817E32C ands r0, r1 cmp r0, 0 beq _0817E3EE - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] movs r1, 0x81 lsls r1, 2 adds r4, r0, r1 - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r2, r0, 24 cmp r5, 0x12 @@ -2916,7 +2916,7 @@ sub_817E3F4: @ 817E3F4 movs r7, 0 str r7, [sp, 0x14] mov r8, r0 - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r1, [r0] adds r0, r1, 0 adds r0, 0xB3 @@ -3158,7 +3158,7 @@ _0817E5C8: ldr r3, [sp, 0x10] cmp r3, 0x2 bhi _0817E620 - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting adds r0, 0x25 ldrb r0, [r0] bl sub_806D82C @@ -3168,7 +3168,7 @@ _0817E5C8: b _0817E670 .pool _0817E620: - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting adds r0, 0x25 ldrb r0, [r0] bl sub_806D82C @@ -3184,7 +3184,7 @@ _0817E630: _0817E63A: lsls r0, r3, 24 lsrs r0, 24 - ldr r1, =gUnknown_02024474 + ldr r1, =gBattleScripting adds r1, 0x25 ldrb r1, [r1] bl sub_806EF84 @@ -3197,7 +3197,7 @@ _0817E63A: b _0817E670 .pool _0817E65C: - ldr r0, =gUnknown_02024474 + ldr r0, =gBattleScripting adds r0, 0x25 ldrb r1, [r0] movs r0, 0x1 @@ -3235,7 +3235,7 @@ sub_817E684: @ 817E684 lsls r3, 24 lsrs r3, 24 mov r9, r3 - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] movs r1, 0xD2 lsls r1, 1 @@ -3244,14 +3244,14 @@ sub_817E684: @ 817E684 movs r2, 0x81 lsls r2, 2 adds r7, r0, r2 - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gEnemyMonIndex + ldr r0, =gBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r3, r0, 24 mov r0, r10 @@ -3297,8 +3297,8 @@ _0817E6F0: .4byte _0817E760 .4byte _0817E760 _0817E760: - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -3324,13 +3324,13 @@ _0817E760: _0817E79C: ldr r1, =gUnknown_0860A834 add r1, r12 - ldr r7, =gUnknown_0202406E + ldr r7, =gBattlePartyID lsls r0, r4, 1 adds r0, r4 lsls r2, r0, 4 ldr r4, =0x0000ffff ldr r1, [r1] - ldr r3, =gUnknown_0202420B + ldr r3, =gBankAttacker ldrh r0, [r1] cmp r6, r0 bne _0817E7E0 @@ -3703,20 +3703,20 @@ sub_817EA80: @ 817EA80 push {r7} lsls r0, 24 lsrs r7, r0, 24 - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] movs r1, 0x81 lsls r1, 2 adds r5, r0, r1 - ldr r3, =gUnknown_0202420B + ldr r3, =gBankAttacker mov r8, r3 ldrb r0, [r3] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gEnemyMonIndex + ldr r0, =gBankTarget ldrb r0, [r0] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r2, r0, 24 lsls r0, r4, 1 @@ -4005,8 +4005,8 @@ _0817ECCC: ldrb r0, [r0] lsrs r0, 5 subs r6, r0, 0x1 - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -4164,8 +4164,8 @@ _0817EE1C: cmp r7, 0x1 bne _0817EEBC adds r2, r4, 0 - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_0202420B + ldr r1, =gBattlePartyID + ldr r0, =gBankAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -4227,7 +4227,7 @@ _0817EE8E: b _0817EEBC _0817EE96: adds r2, r4, 0 - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID mov r3, r8 ldrb r0, [r3] lsls r0, 1 @@ -4269,9 +4269,9 @@ sub_817EECC: @ 817EECC beq _0817EEE6 b _0817F1FA _0817EEE6: - ldr r4, =gUnknown_0202420B + ldr r4, =gBankAttacker ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -4291,7 +4291,7 @@ _0817EEF8: bgt _0817EF10 b _0817F1FA _0817EF10: - ldr r0, =gEnemyMonIndex + ldr r0, =gBankTarget ldrb r0, [r0] muls r0, r1 adds r0, r5 @@ -4302,7 +4302,7 @@ _0817EF10: ble _0817EF24 b _0817F1FA _0817EF24: - ldr r0, =gUnknown_020241EA + ldr r0, =gCurrentMove ldrh r1, [r0] cmp r1, 0xED bne _0817EF2E @@ -4367,7 +4367,7 @@ _0817EF8A: beq _0817EF98 b _0817F1FA _0817EF98: - ldr r2, =gUnknown_0202420B + ldr r2, =gBankAttacker ldrb r0, [r2] adds r0, r6 ldrb r0, [r0] @@ -4378,7 +4378,7 @@ _0817EF98: ldr r0, =gBattleMoveDamage ldr r0, [r0] str r0, [r1] - ldr r0, =gUnknown_020241EA + ldr r0, =gCurrentMove ldrh r1, [r0] str r1, [sp, 0x24] movs r5, 0 @@ -4386,11 +4386,11 @@ _0817EF98: mov r10, r3 mov r8, r0 add r7, sp, 0x10 - ldr r4, =gEnemyMonIndex + ldr r4, =gBankTarget mov r9, r4 _0817EFC2: lsls r1, r5, 1 - ldr r6, =gUnknown_0202420B + ldr r6, =gBankAttacker ldrb r0, [r6] movs r2, 0x58 muls r0, r2 @@ -4414,13 +4414,13 @@ _0817EFC2: ldr r4, =gUnknown_0202428E mov r1, r9 ldrb r0, [r1] - bl battle_get_per_side_status + bl GetBankIdentity movs r1, 0x1 ands r1, r0 lsls r1, 1 adds r1, r4 ldrh r3, [r1] - ldr r2, =gUnknown_0202420B + ldr r2, =gBankAttacker ldrb r0, [r2] movs r4, 0x58 muls r0, r4 @@ -4437,7 +4437,7 @@ _0817EFC2: str r4, [sp] movs r4, 0 str r4, [sp, 0x4] - ldr r6, =gUnknown_0202420B + ldr r6, =gBankAttacker ldrb r4, [r6] str r4, [sp, 0x8] mov r6, r9 @@ -4447,8 +4447,8 @@ _0817EFC2: adds r3, r0, 0 ldr r4, =gBattleMoveDamage str r3, [r4] - ldr r1, =gUnknown_020242AC - ldr r2, =gUnknown_0202420B + ldr r1, =gStatuses3 + ldr r2, =gBankAttacker ldrb r0, [r2] lsls r0, 2 adds r0, r1 @@ -4471,8 +4471,8 @@ _0817EFC2: lsls r0, r3, 1 str r0, [r4] _0817F06A: - ldr r0, =gUnknown_0202433C - ldr r6, =gUnknown_0202420B + ldr r0, =gProtectStructs + ldr r6, =gBankAttacker ldrb r1, [r6] lsls r1, 4 adds r1, r0 @@ -4513,9 +4513,9 @@ _0817F0B4: cmp r5, 0x3 ble _0817EFC2 movs r5, 0 - ldr r3, =gUnknown_0202420B + ldr r3, =gBankAttacker ldr r6, =gUnknown_020244B0 - ldr r4, =gUnknown_0202406E + ldr r4, =gBattlePartyID mov r8, r4 movs r7, 0x64 mov r9, r7 @@ -4545,9 +4545,9 @@ _0817F0D8: movs r7, 0 _0817F0F6: movs r5, 0 - ldr r4, =gEnemyMonIndex + ldr r4, =gBankTarget ldr r6, =gEnemyParty - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r0, [r0] add r0, r10 ldrb r3, [r0] @@ -4582,7 +4582,7 @@ _0817F11A: adds r6, r0, 0 lsls r6, 16 lsrs r6, 16 - ldr r2, =gUnknown_0202420B + ldr r2, =gBankAttacker ldrb r0, [r2] lsls r0, 1 add r0, r8 @@ -4598,7 +4598,7 @@ _0817F11A: adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 - ldr r4, =gUnknown_0202420B + ldr r4, =gBankAttacker ldrb r3, [r4] mov r2, r10 adds r0, r3, r2 @@ -4625,7 +4625,7 @@ _0817F1D4: _0817F1DC: ldr r2, =gBattleMoveDamage ldr r1, =gUnknown_020244B0 - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -4634,7 +4634,7 @@ _0817F1DC: adds r0, 0x10 ldr r0, [r0] str r0, [r2] - ldr r0, =gUnknown_020241EA + ldr r0, =gCurrentMove mov r3, sp ldrh r3, [r3, 0x24] strh r3, [r0] @@ -4695,7 +4695,7 @@ _0817F270: cmp r2, 0x95 bne _0817F294 ldr r2, =gBattleMons - ldr r0, =gUnknown_0202420B + ldr r0, =gBankAttacker ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -4731,7 +4731,7 @@ sub_817F2A8: @ 817F2A8 ands r0, r1 cmp r0, 0 beq _0817F324 - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r3, [r0] ldr r0, =0x0000025b adds r4, r3, r0 @@ -4801,7 +4801,7 @@ sub_817F33C: @ 817F33C lsls r1, 16 lsrs r7, r1, 16 adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 ldr r6, =gEnemyParty cmp r0, 0 @@ -4809,7 +4809,7 @@ sub_817F33C: @ 817F33C ldr r6, =gPlayerParty _0817F356: movs r4, 0 - ldr r1, =gUnknown_0202406E + ldr r1, =gBattlePartyID lsls r0, r5, 1 adds r5, r0, r1 b _0817F36E diff --git a/asm/rom_8184DA4.s b/asm/rom_8184DA4.s index 1882225cc7..f22214f939 100644 --- a/asm/rom_8184DA4.s +++ b/asm/rom_8184DA4.s @@ -63,7 +63,7 @@ _08184DFC: ldr r0, [r5] ldr r1, =gUnknown_0203C7B8 str r0, [r1] - ldr r3, =gUnknown_020244A8 + ldr r3, =gBattleResources ldr r0, [r3] ldr r0, [r0, 0x14] ldr r0, [r0, 0xC] @@ -334,8 +334,8 @@ sub_8185054: @ 8185054 cmp r0, 0xFF bne _081850BC _0818507A: - ldr r2, =gUnknown_020375F0 - ldr r1, =gUnknown_0202433A + ldr r2, =gScriptResult + ldr r1, =gBattleOutcome movs r0, 0x5 strb r0, [r1] movs r0, 0x5 @@ -1536,7 +1536,7 @@ sub_8185AB0: @ 8185AB0 ands r0, r3 orrs r0, r1 strb r0, [r2] - ldr r1, =gUnknown_0202433A + ldr r1, =gBattleOutcome movs r0, 0 strb r0, [r1] ldr r0, =gBattleTypeFlags @@ -1596,8 +1596,8 @@ sub_8185B60: @ 8185B60 push {r5-r7} sub sp, 0x4 adds r7, r0, 0 - bl zero_player_party_data - bl zero_enemy_party_data + bl ZeroPlayerPartyMons + bl ZeroEnemyPartyMons movs r6, 0 ldr r0, =gPlayerParty mov r8, r0 @@ -1905,7 +1905,7 @@ sub_8185E24: @ 8185E24 ldr r0, =gUnknown_0203C7B0 str r5, [r0] movs r0, 0 - bl current_map_music_set__default_for_battle + bl PlayNewMapMusic__default_for_battle ldr r0, =sub_8185E8C bl SetMainCallback2 _08185E6E: @@ -1920,8 +1920,8 @@ _08185E6E: thumb_func_start sub_8185E8C sub_8185E8C: @ 8185E8C push {lr} - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl RunTasks pop {r0} bx r0 @@ -2008,7 +2008,7 @@ sub_8185F40: @ 8185F40 push {r4,r5,lr} movs r2, 0 ldr r0, =gUnknown_020229E8 - ldr r3, =gUnknown_02024064 + ldr r3, =gActiveBank ldrh r1, [r0, 0x18] adds r4, r0, 0 ldrb r0, [r3] @@ -2095,9 +2095,9 @@ sub_8185FC4: @ 8185FC4 thumb_func_start sub_8185FD0 sub_8185FD0: @ 8185FD0 push {r4-r7,lr} - ldr r4, =gUnknown_02024064 + ldr r4, =gActiveBank ldrb r0, [r4] - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -2167,7 +2167,7 @@ _0818606C: lsls r4, r1, 24 lsrs r5, r4, 24 adds r0, r5, 0 - bl battle_side_get_owner + bl GetBankSide lsls r0, 24 lsrs r0, 24 str r4, [sp, 0x4C] @@ -2357,7 +2357,7 @@ _081861A6: mov r1, r10 subs r0, r2, r1 lsls r0, 2 - ldr r2, =gUnknown_020242BC + ldr r2, =gDisableStructs adds r0, r2 ldrb r1, [r0, 0x18] lsrs r1, 4 @@ -2378,7 +2378,7 @@ _081861A6: negs r3, r3 add r3, r8 mov r12, r3 - ldr r4, =gUnknown_020242BC + ldr r4, =gDisableStructs mov r9, r4 movs r6, 0x58 mov r1, r10 @@ -2425,7 +2425,7 @@ _0818622C: ldr r1, =gBattleMons adds r4, r1 adds r4, 0x3B - ldr r0, =gUnknown_020242BC + ldr r0, =gDisableStructs adds r6, r3, r0 _08186274: ldr r2, [sp, 0x3C] @@ -2469,7 +2469,7 @@ _081862BC: mov r3, sp adds r3, 0x20 str r3, [sp, 0x40] - ldr r0, =gUnknown_0202406E + ldr r0, =gBattlePartyID ldr r4, [sp, 0x44] adds r6, r4, r0 _081862CA: @@ -2493,7 +2493,7 @@ _081862CA: cmp r5, 0x3 ble _081862CA movs r5, 0 - ldr r0, =gUnknown_0202406E + ldr r0, =gBattlePartyID ldr r2, [sp, 0x44] adds r7, r2, r0 movs r3, 0x64 @@ -2536,7 +2536,7 @@ _08186304: cmp r5, 0x3 ble _08186304 movs r5, 0 - ldr r0, =gUnknown_0202406E + ldr r0, =gBattlePartyID ldr r1, [sp, 0x44] adds r7, r1, r0 movs r2, 0x64 @@ -2555,7 +2555,7 @@ _08186360: adds r1, r5, 0 adds r1, 0xD adds r2, r4, 0 - bl pokemon_setattr + bl SetMonData ldrh r0, [r7] mov r2, r9 muls r2, r0 @@ -2564,7 +2564,7 @@ _08186360: adds r1, r5, 0 adds r1, 0x11 adds r2, r6, 0 - bl pokemon_setattr + bl SetMonData adds r6, 0x1 adds r4, 0x2 adds r5, 0x1 @@ -2574,7 +2574,7 @@ _08186360: ldr r3, [sp, 0x40] strb r0, [r3] movs r5, 0 - ldr r4, =gUnknown_0202406E + ldr r4, =gBattlePartyID ldr r6, =gPlayerParty ldr r3, [sp, 0x3C] ldr r2, [sp, 0x40] @@ -2597,12 +2597,12 @@ _081863A2: adds r0, r6 movs r1, 0x15 ldr r2, [sp, 0x40] - bl pokemon_setattr + bl SetMonData _081863CA: ldr r2, =gUnknown_02024274 ldr r3, [sp, 0x44] adds r2, r3, r2 - ldr r0, =gUnknown_0202449C + ldr r0, =gBattleStruct ldr r0, [r0] add r0, r10 adds r0, 0x80 @@ -2621,7 +2621,7 @@ _081863EE: ldr r6, [sp, 0x38] mov r10, r6 _081863F2: - ldr r0, =gUnknown_0202406C + ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r10, r0 bge _081863FC @@ -2732,7 +2732,7 @@ sub_81864C0: @ 81864C0 thumb_func_start sub_81864CC sub_81864CC: @ 81864CC ldr r0, =gUnknown_0203CCE8 - ldr r1, =gUnknown_0202433A + ldr r1, =gBattleOutcome ldrb r1, [r1] strb r1, [r0] bx lr @@ -2746,98969 +2746,4 @@ sub_81864E0: @ 81864E0 .pool thumb_func_end sub_81864E0 - thumb_func_start nullsub_70 -nullsub_70: @ 81864E8 - bx lr - thumb_func_end nullsub_70 - - thumb_func_start sub_81864EC -sub_81864EC: @ 81864EC - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8186508 - str r1, [r0] - bx lr - .pool - thumb_func_end sub_81864EC - - thumb_func_start sub_8186508 -sub_8186508: @ 8186508 - push {lr} - ldr r2, =gUnknown_02024068 - ldr r1, =gBitTable - ldr r0, =gUnknown_02024064 - ldrb r3, [r0] - lsls r0, r3, 2 - adds r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08186554 - ldr r0, =gUnknown_02023064 - lsls r1, r3, 9 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x38 - bhi _08186550 - ldr r0, =gUnknown_0860AE90 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 - b _08186554 - .pool -_08186550: - bl sub_81871AC -_08186554: - pop {r0} - bx r0 - thumb_func_end sub_8186508 - - thumb_func_start sub_8186558 -sub_8186558: @ 8186558 - push {lr} - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _0818657C - bl sub_81871AC -_0818657C: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8186558 - - thumb_func_start sub_8186590 -sub_8186590: @ 8186590 - push {lr} - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _081865B4 - bl sub_81871AC -_081865B4: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8186590 - - thumb_func_start sub_81865C8 -sub_81865C8: @ 81865C8 - push {r4-r6,lr} - ldr r5, =gUnknown_02020630 - ldr r6, =gUnknown_020241E4 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r2, r0, 2 - adds r0, r5, 0 - adds r0, 0x1C - adds r0, r2, r0 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _0818661A - adds r0, r2, r5 - ldrh r0, [r0, 0x6] - bl sub_805DFE4 - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl obj_free_rotscale_entry - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl RemoveObjectAndFreeTiles - bl sub_81871AC -_0818661A: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81865C8 - - thumb_func_start sub_8186630 -sub_8186630: @ 8186630 - push {r4,lr} - ldr r4, =gUnknown_020244D0 - ldr r1, [r4] - ldr r3, =gUnknown_02024064 - ldrb r0, [r3] - ldr r2, [r1, 0x4] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x9] - subs r0, 0x1 - strb r0, [r1, 0x9] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _08186668 - ldr r0, [r4] - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strb r1, [r0, 0x9] - bl sub_81871AC -_08186668: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8186630 - - thumb_func_start sub_8186678 -sub_8186678: @ 8186678 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r0, 0 - mov r9, r0 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _081866A4 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _081866F8 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081866F8 -_081866A4: - ldr r4, =gUnknown_02020630 - ldr r0, =gUnknown_03005D70 - ldr r2, =gUnknown_02024064 - ldrb r3, [r2] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - mov r8, r2 - cmp r1, r0 - bne _08186764 - ldr r0, =gUnknown_020241E4 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 27 - cmp r0, 0 - bge _08186764 - b _0818676A - .pool -_081866F8: - ldr r6, =gUnknown_02020630 - ldr r7, =gUnknown_03005D70 - ldr r2, =gUnknown_02024064 - ldrb r3, [r2] - adds r0, r3, r7 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r5, r6, 0 - adds r5, 0x1C - adds r0, r5 - ldr r4, [r0] - ldr r0, =DummyObjectCallback - mov r8, r2 - cmp r4, r0 - bne _08186764 - movs r0, 0x2 - adds r2, r3, 0 - eors r2, r0 - adds r0, r2, r7 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r0, [r0] - cmp r0, r4 - bne _08186764 - ldr r4, =gUnknown_020241E4 - adds r0, r3, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 27 - cmp r0, 0 - bge _08186764 - adds r0, r2, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 27 - cmp r0, 0 - bge _08186764 - movs r1, 0x1 - mov r9, r1 -_08186764: - mov r2, r9 - cmp r2, 0 - beq _0818683A -_0818676A: - mov r6, r8 - ldrb r0, [r6] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1 - bne _08186816 - ldr r0, =gUnknown_020244D0 - mov r12, r0 - ldr r0, [r0] - ldrb r2, [r6] - ldr r5, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r4, r0, r5 - ldrb r1, [r4, 0x1] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0818683A - movs r7, 0x2 - adds r1, r7, 0 - eors r1, r2 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0, 0x1] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0818683A - ldrb r1, [r4] - movs r3, 0x7F - adds r0, r3, 0 - ands r0, r1 - strb r0, [r4] - mov r1, r12 - ldr r0, [r1] - ldrb r2, [r6] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r4, 0x2 - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - strb r0, [r1, 0x1] - mov r0, r12 - ldr r2, [r0] - ldrb r0, [r6] - adds r1, r7, 0 - eors r1, r0 - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - mov r1, r12 - ldr r2, [r1] - ldrb r0, [r6] - adds r1, r7, 0 - eors r1, r0 - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - ands r4, r1 - strb r4, [r0, 0x1] - ldr r4, =0x000027f9 - adds r0, r4, 0 - bl FreeObjectTilesByTag - adds r0, r4, 0 - bl FreeObjectPaletteByTag -_08186816: - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - mov r2, r8 - ldrb r1, [r2] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - strb r1, [r0, 0x9] - ldr r1, =gUnknown_03005D60 - mov r2, r8 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8186630 - str r1, [r0] -_0818683A: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8186678 - - thumb_func_start sub_818686C -sub_818686C: @ 818686C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r0, 0 - mov r9, r0 - mov r8, r0 - ldr r4, =gUnknown_020244D0 - ldr r0, [r4] - ldr r7, =gUnknown_02024064 - ldrb r2, [r7] - ldr r1, [r0, 0x4] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r5, 0x88 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _081868AC - ldr r0, =gUnknown_0202406E - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gEnemyParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8172EF0 -_081868AC: - ldr r1, [r4] - ldrb r0, [r7] - movs r6, 0x2 - adds r2, r6, 0 - eors r2, r0 - ldr r1, [r1, 0x4] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _081868DE - ldr r0, =gUnknown_0202406E - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gEnemyParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8172EF0 -_081868DE: - ldr r0, [r4] - ldrb r2, [r7] - ldr r3, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r4, r0, r3 - ldrb r1, [r4] - movs r5, 0x8 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _081869AE - adds r1, r6, 0 - eors r1, r2 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _081869AE - ldrb r1, [r4, 0x1] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08186994 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08186964 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08186964 - ldr r4, =gUnknown_03005D70 - ldrb r0, [r7] - adds r1, r6, 0 - eors r1, r0 - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, =gUnknown_0202406E - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gEnemyParty - adds r1, r2 - movs r2, 0 - bl healthbar_draw_field_maybe - ldrb r0, [r7] - eors r0, r6 - bl sub_8076918 - ldrb r0, [r7] - eors r0, r6 - adds r0, r4 - ldrb r0, [r0] - bl sub_80729D0 -_08186964: - ldr r5, =gUnknown_03005D70 - ldr r4, =gUnknown_02024064 - ldrb r1, [r4] - adds r0, r1, r5 - ldrb r0, [r0] - ldr r2, =gUnknown_0202406E - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gEnemyParty - adds r1, r2 - movs r2, 0 - bl healthbar_draw_field_maybe - ldrb r0, [r4] - bl sub_8076918 - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl sub_80729D0 -_08186994: - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0, 0x1] -_081869AE: - ldr r5, =gUnknown_020244D0 - ldr r0, [r5] - ldr r4, =gUnknown_02024064 - ldrb r2, [r4] - ldr r3, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x1] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0x80 - bne _08186A6A - movs r1, 0x2 - eors r1, r2 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x1] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08186A6A - bl sub_80A36C8 - lsls r0, 24 - cmp r0, 0 - bne _08186A6A - ldr r0, [r5] - ldrb r2, [r4] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x1] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _08186A4C - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x42 - ands r0, r1 - cmp r0, 0x42 - bne _08186A40 - adds r0, r2, 0 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08186A4C - ldr r0, =gMPlay_BGM - bl m4aMPlayContinue - b _08186A4C - .pool -_08186A40: - ldr r0, =gMPlay_BGM - ldr r1, =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl -_08186A4C: - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x1] - movs r0, 0x1 - mov r9, r0 -_08186A6A: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - bne _08186AC8 - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_03005D7C - ldr r1, =gUnknown_02024064 - ldrb r4, [r1] - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r3, [r0] - ldr r0, =DummyObjectCallback - cmp r3, r0 - bne _08186B26 - ldr r0, =gUnknown_020241E4 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - cmp r0, r3 - bne _08186B26 - b _08186B22 - .pool -_08186AC8: - ldr r2, =gUnknown_02020630 - ldr r7, =gUnknown_03005D7C - ldr r0, =gUnknown_02024064 - ldrb r3, [r0] - adds r0, r3, r7 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r4, [r0] - ldr r0, =DummyObjectCallback - cmp r4, r0 - bne _08186B26 - ldr r6, =gUnknown_020241E4 - adds r0, r3, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r5, [r0] - cmp r5, r4 - bne _08186B26 - movs r0, 0x2 - eors r3, r0 - adds r0, r3, r7 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r4, [r0] - cmp r4, r5 - bne _08186B26 - adds r0, r3, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - cmp r0, r4 - bne _08186B26 -_08186B22: - movs r0, 0x1 - mov r8, r0 -_08186B26: - mov r0, r9 - cmp r0, 0 - beq _08186C10 - mov r0, r8 - cmp r0, 0 - beq _08186C10 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08186B8A - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08186B8A - ldr r1, =gUnknown_03005D7C - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - movs r4, 0x2 - eors r0, r4 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - bl RemoveObjectAndFreeTiles - ldrb r0, [r5] - eors r4, r0 - ldr r1, =gUnknown_0202406E - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_805EE54 -_08186B8A: - ldr r1, =gUnknown_03005D7C - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - bl RemoveObjectAndFreeTiles - ldrb r5, [r4] - ldr r1, =gUnknown_0202406E - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - bl sub_805EE54 - ldr r3, =gUnknown_020244D0 - ldr r0, [r3] - ldr r2, [r0, 0x8] - ldrb r1, [r2, 0x9] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x9] - ldr r0, [r3] - ldrb r2, [r4] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r0, [r3] - ldrb r2, [r4] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0x7F - ands r0, r2 - strb r0, [r1, 0x1] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8186678 - str r1, [r0] -_08186C10: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818686C - - thumb_func_start sub_8186C48 -sub_8186C48: @ 8186C48 - push {r4-r7,lr} - ldr r4, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 - ldr r7, =gUnknown_02024064 - ldrb r3, [r7] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r2, r0, 2 - adds r0, r4, 0 - adds r0, 0x1C - adds r0, r2, r0 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _08186CFA - adds r0, r2, r4 - movs r1, 0x24 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08186CFA - ldr r6, =gUnknown_020244D0 - ldr r0, [r6] - ldr r1, [r0, 0x4] - lsls r4, r3, 1 - adds r0, r4, r3 - lsls r0, 2 - adds r2, r0, r1 - ldrb r5, [r2] - movs r0, 0x80 - ands r0, r5 - cmp r0, 0 - bne _08186CC0 - ldr r0, =gUnknown_0202406E - adds r0, r4, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gEnemyParty - adds r1, r0 - adds r0, r3, 0 - bl sub_8172EF0 - b _08186CFA - .pool -_08186CC0: - ldrb r1, [r2, 0x1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08186CFA - movs r0, 0x7F - ands r0, r5 - strb r0, [r2] - ldr r0, [r6] - ldrb r2, [r7] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r4, =0x000027f9 - adds r0, r4, 0 - bl FreeObjectTilesByTag - adds r0, r4, 0 - bl FreeObjectPaletteByTag - bl sub_81871AC -_08186CFA: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8186C48 - - thumb_func_start sub_8186D04 -sub_8186D04: @ 8186D04 - push {r4-r6,lr} - ldr r6, =gUnknown_02024064 - ldrb r0, [r6] - ldr r5, =gUnknown_03005D70 - adds r1, r0, r5 - ldrb r1, [r1] - movs r2, 0 - movs r3, 0 - bl sub_8074AA0 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r6] - adds r0, r5 - ldrb r0, [r0] - bl sub_80729D0 - lsls r4, 16 - asrs r1, r4, 16 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08186D4C - ldrb r0, [r6] - adds r0, r5 - ldrb r0, [r0] - movs r2, 0 - bl heathbar_draw_hp - b _08186D50 - .pool -_08186D4C: - bl sub_81871AC -_08186D50: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8186D04 - - thumb_func_start sub_8186D58 -sub_8186D58: @ 8186D58 - push {lr} - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 - ldr r1, =gUnknown_02024064 - ldrb r3, [r1] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - bne _08186D86 - ldr r0, =gUnknown_03005D70 - adds r0, r3, r0 - ldrb r0, [r0] - bl sub_8072984 - bl sub_81871AC -_08186D86: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8186D58 - - thumb_func_start sub_8186D9C -sub_8186D9C: @ 8186D9C - push {r4-r6,lr} - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r6, =gUnknown_02024064 - ldrb r2, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08186DF6 - ldr r5, =gUnknown_020241E4 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - bl obj_free_rotscale_entry - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl RemoveObjectAndFreeTiles - ldrb r0, [r6] - bl sub_805EEE0 - ldr r1, =gUnknown_03005D70 - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl sub_8072984 - bl sub_81871AC -_08186DF6: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8186D9C - - thumb_func_start sub_8186E10 -sub_8186E10: @ 8186E10 - push {lr} - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _08186E22 - bl sub_81871AC -_08186E22: - pop {r0} - bx r0 - thumb_func_end sub_8186E10 - - thumb_func_start bx_blink_t2 -bx_blink_t2: @ 8186E28 - push {r4,lr} - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - ldr r2, =gUnknown_02020630 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x20 - bne _08186E74 - movs r3, 0 - movs r0, 0 - strh r0, [r4, 0x30] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - subs r0, 0x5 - ands r0, r1 - strb r0, [r2] - ldr r0, =gUnknown_020244B9 - strb r3, [r0] - bl sub_81871AC - b _08186E9E - .pool -_08186E74: - ldrh r0, [r4, 0x30] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08186E98 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_08186E98: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] -_08186E9E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end bx_blink_t2 - - thumb_func_start sub_8186EA4 -sub_8186EA4: @ 8186EA4 - push {r4,lr} - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_03005D70 - ldr r4, =gUnknown_02024064 - ldrb r3, [r4] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _08186EF0 - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r3, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08186EE4 - adds r0, r3, 0 - adds r1, r3, 0 - adds r2, r3, 0 - movs r3, 0x6 - bl move_anim_start_t4 -_08186EE4: - ldr r0, =gUnknown_03005D60 - ldrb r1, [r4] - lsls r1, 2 - adds r1, r0 - ldr r0, =sub_8186F14 - str r0, [r1] -_08186EF0: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8186EA4 - - thumb_func_start sub_8186F14 -sub_8186F14: @ 8186F14 - push {r4,lr} - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r4, =gUnknown_02024064 - ldrb r1, [r4] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08186F6E - bl sub_80A36C8 - lsls r0, 24 - cmp r0, 0 - bne _08186F6E - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldrb r0, [r4] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - beq _08186F5E - ldr r0, =nullsub_18 - cmp r1, r0 - bne _08186F6E -_08186F5E: - ldr r0, =gMPlay_BGM - ldr r1, =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl - bl sub_81871AC -_08186F6E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8186F14 - - thumb_func_start sub_8186F94 -sub_8186F94: @ 8186F94 - push {r4-r7,lr} - ldr r4, =gUnknown_020244D0 - ldr r0, [r4] - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r1 - ldrb r1, [r3, 0x1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08187050 - ldr r7, =gUnknown_02020630 - ldr r6, =gUnknown_020241E4 - adds r0, r2, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r7, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _08187050 - ldrb r1, [r3] - movs r0, 0x7F - ands r0, r1 - strb r0, [r3] - ldr r0, [r4] - ldrb r2, [r5] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r4, =0x000027f9 - adds r0, r4, 0 - bl FreeObjectTilesByTag - adds r0, r4, 0 - bl FreeObjectPaletteByTag - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - movs r1, 0 - bl StartObjectImageAnim - ldr r4, =gUnknown_03005D70 - ldrb r1, [r5] - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, =gUnknown_0202406E - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gEnemyParty - adds r1, r2 - movs r2, 0 - bl healthbar_draw_field_maybe - ldrb r0, [r5] - bl sub_8076918 - ldrb r0, [r5] - adds r0, r4 - ldrb r0, [r0] - bl sub_80729D0 - ldrb r0, [r5] - bl sub_805E408 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8186EA4 - str r1, [r0] -_08187050: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8186F94 - - thumb_func_start sub_8187084 -sub_8187084: @ 8187084 - push {r4-r6,lr} - ldr r6, =gUnknown_020244D0 - ldr r0, [r6] - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - ldr r1, [r0, 0x4] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x88 - ands r0, r1 - cmp r0, 0 - bne _081870B6 - ldr r0, =gUnknown_0202406E - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gEnemyParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8172EF0 -_081870B6: - ldr r4, =gUnknown_02020630 - ldr r0, =gUnknown_03005D7C - ldrb r2, [r5] - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r3, r0, 2 - adds r0, r4, 0 - adds r0, 0x1C - adds r0, r3, r0 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _08187120 - ldr r0, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _08187120 - adds r0, r3, r4 - bl RemoveObjectAndFreeTiles - ldrb r4, [r5] - ldr r1, =gUnknown_0202406E - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_805EE54 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8186F94 - str r1, [r0] -_08187120: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8187084 - - thumb_func_start sub_818714C -sub_818714C: @ 818714C - push {lr} - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _0818716E - bl sub_81871AC -_0818716E: - pop {r0} - bx r0 - .pool - thumb_func_end sub_818714C - - thumb_func_start sub_818717C -sub_818717C: @ 818717C - push {lr} - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _0818719E - bl sub_81871AC -_0818719E: - pop {r0} - bx r0 - .pool - thumb_func_end sub_818717C - - thumb_func_start sub_81871AC -sub_81871AC: @ 81871AC - push {r4,lr} - sub sp, 0x4 - ldr r1, =gUnknown_03005D60 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8186508 - str r1, [r0] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08187200 - bl link_get_multiplayer_id - mov r1, sp - strb r0, [r1] - movs r0, 0x2 - movs r1, 0x4 - mov r2, sp - bl dp01_prepare_buffer_wireless_probably - ldr r1, =gUnknown_02023064 - ldrb r0, [r4] - lsls r0, 9 - adds r0, r1 - movs r1, 0x38 - strb r1, [r0] - b _08187212 - .pool -_08187200: - ldr r2, =gUnknown_02024068 - ldr r1, =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldr r0, [r2] - bics r0, r1 - str r0, [r2] -_08187212: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81871AC - - thumb_func_start sub_8187224 -sub_8187224: @ 8187224 - push {r4-r6,lr} - sub sp, 0x100 - movs r6, 0 - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - bne _0818725C - ldr r0, =gUnknown_0202406E - lsls r1, r2, 1 - adds r1, r0 - ldrb r0, [r1] - mov r1, sp - bl sub_8187298 - adds r6, r0, 0 - b _0818727E - .pool -_0818725C: - ldrb r4, [r1] - movs r5, 0 -_08187260: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _08187276 - lsls r0, r5, 24 - lsrs r0, 24 - mov r2, sp - adds r1, r2, r6 - bl sub_8187298 - adds r6, r0 -_08187276: - lsrs r4, 1 - adds r5, 0x1 - cmp r5, 0x5 - ble _08187260 -_0818727E: - lsls r1, r6, 16 - lsrs r1, 16 - movs r0, 0x1 - mov r2, sp - bl dp01_build_cmdbuf_x1D_1D_numargs_varargs - bl sub_81871AC - add sp, 0x100 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8187224 - - thumb_func_start sub_8187298 -sub_8187298: @ 8187298 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x90 - adds r7, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - ldr r2, =gUnknown_02023064 - ldr r3, =gUnknown_02024064 - ldrb r0, [r3] - lsls r0, 9 - adds r1, r2, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3B - bls _081872C2 - bl _08187A2E -_081872C2: - lsls r0, 2 - ldr r1, =_081872D8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081872D8: - .4byte _081873C8 - .4byte _081875EC - .4byte _081875FC - .4byte _0818760C - .4byte _08187674 - .4byte _08187674 - .4byte _08187674 - .4byte _08187674 - .4byte _08187690 - .4byte _081876CC - .4byte _081876CC - .4byte _081876CC - .4byte _081876CC - .4byte _08187A2E - .4byte _08187A2E - .4byte _08187A2E - .4byte _08187A2E - .4byte _081876E8 - .4byte _081876F8 - .4byte _08187728 - .4byte _08187738 - .4byte _08187748 - .4byte _08187758 - .4byte _08187768 - .4byte _08187778 - .4byte _08187788 - .4byte _08187798 - .4byte _081877A8 - .4byte _081877B8 - .4byte _081877C8 - .4byte _081877D8 - .4byte _081877E8 - .4byte _08187838 - .4byte _08187848 - .4byte _08187858 - .4byte _08187868 - .4byte _08187878 - .4byte _08187888 - .4byte _08187898 - .4byte _081878A8 - .4byte _081878B8 - .4byte _081878EC - .4byte _081878FC - .4byte _0818790C - .4byte _0818791C - .4byte _0818792C - .4byte _0818793C - .4byte _0818794C - .4byte _0818795C - .4byte _0818797C - .4byte _0818798C - .4byte _0818799C - .4byte _081879AC - .4byte _081879BC - .4byte _081879CC - .4byte _081879DC - .4byte _081879EC - .4byte _081879FC - .4byte _08187A0C - .4byte _08187A1C -_081873C8: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - mov r1, sp - strh r0, [r1] - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2E] - movs r6, 0 - add r0, sp, 0x24 - mov r9, r0 - movs r1, 0x3B - add r1, sp - mov r10, r1 - mov r2, sp - adds r2, 0x2B - str r2, [sp, 0x80] - mov r0, sp - adds r0, 0x2A - str r0, [sp, 0x7C] - mov r1, sp - adds r1, 0x68 - str r1, [sp, 0x8C] - adds r2, 0x5 - str r2, [sp, 0x84] - adds r0, 0x12 - str r0, [sp, 0x88] - mov r8, r4 - add r4, sp, 0xC -_08187414: - adds r1, r6, 0 - adds r1, 0xD - mov r0, r8 - bl GetMonData - strh r0, [r4] - adds r1, r6, 0 - adds r1, 0x11 - mov r0, r8 - bl GetMonData - mov r2, r9 - adds r1, r2, r6 - strb r0, [r1] - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _08187414 - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x15 - bl GetMonData - mov r1, r10 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - ldr r2, [sp, 0x80] - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x19 - bl GetMonData - str r0, [sp, 0x44] - adds r0, r4, 0 - movs r1, 0x27 - bl GetMonData - mov r3, sp - movs r5, 0x1F - ands r0, r5 - ldrb r2, [r3, 0x14] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x14] - adds r0, r4, 0 - movs r1, 0x28 - bl GetMonData - mov r3, sp - movs r6, 0x1F - ands r0, r6 - lsls r0, 5 - ldrh r2, [r3, 0x14] - ldr r1, =0xfffffc1f - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x14] - adds r0, r4, 0 - movs r1, 0x29 - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, 2 - ldrb r2, [r3, 0x15] - movs r1, 0x7D - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x15] - adds r0, r4, 0 - movs r1, 0x2A - bl GetMonData - movs r1, 0x1F - ands r1, r0 - lsls r1, 15 - ldr r0, [sp, 0x14] - ldr r2, =0xfff07fff - ands r0, r2 - orrs r0, r1 - str r0, [sp, 0x14] - adds r0, r4, 0 - movs r1, 0x2B - bl GetMonData - mov r3, sp - ands r0, r6 - lsls r0, 4 - ldrh r2, [r3, 0x16] - ldr r1, =0xfffffe0f - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x16] - adds r0, r4, 0 - movs r1, 0x2C - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, 1 - ldrb r2, [r3, 0x17] - movs r1, 0x3F - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - str r0, [sp, 0x48] - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - str r0, [sp, 0x4C] - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - ldr r1, [sp, 0x7C] - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - mov r1, sp - strh r0, [r1, 0x28] - adds r0, r4, 0 - movs r1, 0x3A - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2C] - adds r0, r4, 0 - movs r1, 0x3B - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2] - adds r0, r4, 0 - movs r1, 0x3C - bl GetMonData - mov r1, sp - strh r0, [r1, 0x4] - adds r0, r4, 0 - movs r1, 0x3D - bl GetMonData - mov r1, sp - strh r0, [r1, 0x6] - adds r0, r4, 0 - movs r1, 0x3E - bl GetMonData - mov r1, sp - strh r0, [r1, 0x8] - adds r0, r4, 0 - movs r1, 0x3F - bl GetMonData - mov r1, sp - strh r0, [r1, 0xA] - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - mov r3, sp - movs r1, 0x1 - ands r0, r1 - lsls r0, 6 - ldrb r2, [r3, 0x17] - movs r1, 0x41 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0x2E - bl GetMonData - mov r3, sp - lsls r0, 7 - ldrb r2, [r3, 0x17] - movs r1, 0x7F - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - str r0, [sp, 0x54] - adds r0, r4, 0 - movs r1, 0x2 - ldr r2, [sp, 0x8C] - bl GetMonData - ldr r0, [sp, 0x84] - ldr r1, [sp, 0x8C] - bl StringCopy10 - adds r0, r4, 0 - movs r1, 0x7 - ldr r2, [sp, 0x88] - bl GetMonData - mov r2, sp - movs r6, 0 -_081875CC: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, 0x1 - cmp r6, 0x57 - bls _081875CC - b _08187A2E - .pool -_081875EC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0xB - b _08187966 - .pool -_081875FC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0xC - b _08187966 - .pool -_0818760C: - movs r6, 0 - add r2, sp, 0x58 - mov r9, r2 - add r0, sp, 0x60 - mov r10, r0 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gEnemyParty - adds r4, r1, r0 - mov r8, r9 -_08187622: - adds r1, r6, 0 - adds r1, 0xD - adds r0, r4, 0 - bl GetMonData - mov r1, r8 - strh r0, [r1] - adds r1, r6, 0 - adds r1, 0x11 - adds r0, r4, 0 - bl GetMonData - mov r2, r10 - adds r1, r2, r6 - strb r0, [r1] - movs r0, 0x2 - add r8, r0 - adds r6, 0x1 - cmp r6, 0x3 - ble _08187622 - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x15 - bl GetMonData - mov r1, r9 - strb r0, [r1, 0xC] - mov r2, r9 - movs r6, 0 -_08187660: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, 0x1 - cmp r6, 0xF - bls _08187660 - b _08187A2E - .pool -_08187674: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r1, [r3] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r1, 0x9 - b _08187966 - .pool -_08187690: - movs r6, 0 - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r2, =gEnemyParty - mov r8, r2 -_0818769C: - adds r1, r6, 0 - adds r1, 0x11 - mov r2, r8 - adds r0, r4, r2 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, 0x1 - cmp r6, 0x3 - ble _0818769C - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x15 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, 0x1 - b _08187A2E - .pool -_081876CC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r1, [r3] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r1, 0x8 - b _08187A26 - .pool -_081876E8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x1 - b _08187702 - .pool -_081876F8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x19 -_08187702: - bl GetMonData - adds r1, r0, 0 - strb r1, [r7] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r7, 0x2] - movs r6, 0x3 - b _08187A2E - .pool -_08187728: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x1A - b _08187A26 - .pool -_08187738: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x1B - b _08187A26 - .pool -_08187748: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x1C - b _08187A26 - .pool -_08187758: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x1D - b _08187A26 - .pool -_08187768: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x1E - b _08187A26 - .pool -_08187778: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x1F - b _08187A26 - .pool -_08187788: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x20 - b _08187A26 - .pool -_08187798: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x22 - b _08187A26 - .pool -_081877A8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x23 - b _08187A26 - .pool -_081877B8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x24 - b _08187A26 - .pool -_081877C8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x25 - b _08187A26 - .pool -_081877D8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x26 - b _08187A26 - .pool -_081877E8: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x27 - bl GetMonData - strb r0, [r7] - adds r0, r4, 0 - movs r1, 0x28 - bl GetMonData - strb r0, [r7, 0x1] - adds r0, r4, 0 - movs r1, 0x29 - bl GetMonData - strb r0, [r7, 0x2] - adds r0, r4, 0 - movs r1, 0x2A - bl GetMonData - strb r0, [r7, 0x3] - adds r0, r4, 0 - movs r1, 0x2B - bl GetMonData - strb r0, [r7, 0x4] - adds r0, r4, 0 - movs r1, 0x2C - bl GetMonData - strb r0, [r7, 0x5] - movs r6, 0x6 - b _08187A2E - .pool -_08187838: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x27 - b _08187A26 - .pool -_08187848: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x28 - b _08187A26 - .pool -_08187858: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x29 - b _08187A26 - .pool -_08187868: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x2A - b _08187A26 - .pool -_08187878: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x2B - b _08187A26 - .pool -_08187888: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x2C - b _08187A26 - .pool -_08187898: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0 - b _081878C2 - .pool -_081878A8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x9 - b _08187966 - .pool -_081878B8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x37 -_081878C2: - bl GetMonData - adds r1, r0, 0 - strb r1, [r7] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r7, 0x2] - lsrs r0, r1, 24 - strb r0, [r7, 0x3] - movs r6, 0x4 - b _08187A2E - .pool -_081878EC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x38 - b _08187A26 - .pool -_081878FC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x39 - b _08187966 - .pool -_0818790C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x3A - b _08187966 - .pool -_0818791C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x3B - b _08187966 - .pool -_0818792C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x3C - b _08187966 - .pool -_0818793C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x3D - b _08187966 - .pool -_0818794C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x3E - b _08187966 - .pool -_0818795C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x3F -_08187966: - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - strb r0, [r7] - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r6, 0x2 - b _08187A2E - .pool -_0818797C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x16 - b _08187A26 - .pool -_0818798C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x17 - b _08187A26 - .pool -_0818799C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x18 - b _08187A26 - .pool -_081879AC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x21 - b _08187A26 - .pool -_081879BC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x2F - b _08187A26 - .pool -_081879CC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x30 - b _08187A26 - .pool -_081879DC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x32 - b _08187A26 - .pool -_081879EC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x33 - b _08187A26 - .pool -_081879FC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x34 - b _08187A26 - .pool -_08187A0C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x35 - b _08187A26 - .pool -_08187A1C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x36 -_08187A26: - bl GetMonData - strb r0, [r7] - movs r6, 0x1 -_08187A2E: - adds r0, r6, 0 - add sp, 0x90 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8187298 - - thumb_func_start sub_8187A44 -sub_8187A44: @ 8187A44 - push {lr} - bl sub_81871AC - pop {r0} - bx r0 - thumb_func_end sub_8187A44 - - thumb_func_start sub_8187A50 -sub_8187A50: @ 8187A50 - push {r4,r5,lr} - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - bne _08187A80 - ldr r0, =gUnknown_0202406E - lsls r1, r2, 1 - adds r1, r0 - ldrb r0, [r1] - bl dp01_setattr_for_opponent_pokemon - b _08187A9E - .pool -_08187A80: - ldrb r4, [r1] - movs r5, 0 -_08187A84: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _08187A92 - adds r0, r5, 0 - bl dp01_setattr_for_opponent_pokemon -_08187A92: - lsrs r4, 1 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _08187A84 -_08187A9E: - bl sub_81871AC - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8187A50 - - thumb_func_start dp01_setattr_for_opponent_pokemon -dp01_setattr_for_opponent_pokemon: @ 8187AA8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x38 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r3, =gUnknown_02024064 - ldrb r0, [r3] - lsls r0, 9 - ldr r2, =gUnknown_02023067 - adds r4, r0, r2 - adds r7, r4, 0 - subs r1, r2, 0x2 - adds r0, r1 - ldrb r0, [r0] - adds r6, r3, 0 - adds r3, r2, 0 - cmp r0, 0x3B - bls _08187AD6 - bl _081883B4 -_08187AD6: - lsls r0, 2 - ldr r1, =_08187AEC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08187AEC: - .4byte _08187BDC - .4byte _08187D74 - .4byte _08187D90 - .4byte _08187DAC - .4byte _08187E00 - .4byte _08187E00 - .4byte _08187E00 - .4byte _08187E00 - .4byte _08187E20 - .4byte _08187E88 - .4byte _08187E88 - .4byte _08187E88 - .4byte _08187E88 - .4byte _081883B4 - .4byte _081883B4 - .4byte _081883B4 - .4byte _081883B4 - .4byte _08187EB0 - .4byte _08187ECC - .4byte _08187EE8 - .4byte _08187F04 - .4byte _08187F20 - .4byte _08187F3C - .4byte _08187F58 - .4byte _08187F74 - .4byte _08187F90 - .4byte _08187FAC - .4byte _08187FC8 - .4byte _08187FE4 - .4byte _08188000 - .4byte _0818801C - .4byte _08188038 - .4byte _081880AC - .4byte _081880C8 - .4byte _081880E4 - .4byte _08188100 - .4byte _0818811C - .4byte _08188138 - .4byte _08188154 - .4byte _08188170 - .4byte _0818818C - .4byte _081881A8 - .4byte _081881C4 - .4byte _081881E0 - .4byte _081881FC - .4byte _08188218 - .4byte _08188234 - .4byte _08188250 - .4byte _0818826C - .4byte _08188288 - .4byte _081882A4 - .4byte _081882C0 - .4byte _081882DC - .4byte _081882F8 - .4byte _08188314 - .4byte _08188330 - .4byte _0818834C - .4byte _08188368 - .4byte _08188384 - .4byte _081883A0 -_08187BDC: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - adds r2, r7, 0 - bl pokemon_setattr - adds r2, r7, 0 - adds r2, 0x2E - adds r0, r4, 0 - movs r1, 0xC - bl pokemon_setattr - movs r0, 0 - mov r8, r0 - movs r0, 0x3B - adds r0, r7 - mov r10, r0 - adds r0, r7, 0 - adds r0, 0x2B - str r0, [sp, 0x20] - adds r0, 0x19 - str r0, [sp, 0x28] - adds r0, 0x4 - str r0, [sp, 0x2C] - adds r0, 0x4 - str r0, [sp, 0x30] - subs r0, 0x22 - str r0, [sp, 0x1C] - subs r0, 0x2 - str r0, [sp, 0x18] - adds r0, 0x4 - str r0, [sp, 0x24] - adds r0, r7, 0x2 - str r0, [sp, 0x4] - adds r0, r7, 0x4 - str r0, [sp, 0x8] - adds r0, r7, 0x6 - str r0, [sp, 0xC] - adds r0, 0x2 - str r0, [sp, 0x10] - adds r0, 0x2 - str r0, [sp, 0x14] - mov r9, r4 - adds r6, r7, 0 - adds r6, 0x24 - adds r4, r7, 0 - adds r4, 0xC -_08187C42: - mov r1, r8 - adds r1, 0xD - mov r0, r9 - adds r2, r4, 0 - bl pokemon_setattr - mov r1, r8 - adds r1, 0x11 - mov r0, r9 - adds r2, r6, 0 - bl pokemon_setattr - adds r6, 0x1 - adds r4, 0x2 - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x3 - ble _08187C42 - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x15 - mov r2, r10 - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x20 - ldr r2, [sp, 0x20] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x19 - ldr r2, [sp, 0x28] - bl pokemon_setattr - ldrb r0, [r7, 0x14] - lsls r0, 27 - lsrs r0, 27 - mov r1, sp - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x27 - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrh r0, [r7, 0x14] - lsls r0, 22 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x28 - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrb r0, [r7, 0x15] - lsls r0, 25 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x29 - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldr r0, [r7, 0x14] - lsls r0, 12 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2A - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrh r0, [r7, 0x16] - lsls r0, 23 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2B - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrb r0, [r7, 0x17] - lsls r0, 26 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2C - mov r2, sp - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0 - ldr r2, [sp, 0x2C] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x37 - ldr r2, [sp, 0x30] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x38 - ldr r2, [sp, 0x1C] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x39 - ldr r2, [sp, 0x18] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3A - ldr r2, [sp, 0x24] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3B - ldr r2, [sp, 0x4] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3C - ldr r2, [sp, 0x8] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3D - ldr r2, [sp, 0xC] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3E - ldr r2, [sp, 0x10] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3F - ldr r2, [sp, 0x14] - bl pokemon_setattr - b _081883B4 - .pool -_08187D74: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0xB - bl pokemon_setattr - b _081883B4 - .pool -_08187D90: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0xC - bl pokemon_setattr - b _081883B4 - .pool -_08187DAC: - movs r0, 0 - mov r8, r0 - movs r0, 0xC - adds r0, r4 - mov r9, r0 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gEnemyParty - adds r7, r1, r0 - adds r6, r4, 0 - adds r6, 0x8 -_08187DC4: - mov r1, r8 - adds r1, 0xD - adds r0, r7, 0 - adds r2, r4, 0 - bl pokemon_setattr - mov r1, r8 - adds r1, 0x11 - adds r0, r7, 0 - adds r2, r6, 0 - bl pokemon_setattr - adds r6, 0x1 - adds r4, 0x2 - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x3 - ble _08187DC4 - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x15 - mov r2, r9 - bl pokemon_setattr - b _081883B4 - .pool -_08187E00: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldr r3, =gUnknown_02023064 - ldrb r2, [r6] - lsls r2, 9 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, 0x9 - b _08187E9E - .pool -_08187E20: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gEnemyParty - adds r4, r0 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - adds r0, r4, 0 - movs r1, 0x11 - str r3, [sp, 0x34] - bl pokemon_setattr - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x1 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x12 - bl pokemon_setattr - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x2 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x13 - bl pokemon_setattr - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x3 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x14 - bl pokemon_setattr - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x4 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x15 - bl pokemon_setattr - b _081883B4 - .pool -_08187E88: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldr r3, =gUnknown_02023064 - ldrb r2, [r6] - lsls r2, 9 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, 0x8 -_08187E9E: - adds r3, 0x3 - adds r2, r3 - bl pokemon_setattr - b _081883B4 - .pool -_08187EB0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1 - bl pokemon_setattr - b _081883B4 - .pool -_08187ECC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x19 - bl pokemon_setattr - b _081883B4 - .pool -_08187EE8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1A - bl pokemon_setattr - b _081883B4 - .pool -_08187F04: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1B - bl pokemon_setattr - b _081883B4 - .pool -_08187F20: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1C - bl pokemon_setattr - b _081883B4 - .pool -_08187F3C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1D - bl pokemon_setattr - b _081883B4 - .pool -_08187F58: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1E - bl pokemon_setattr - b _081883B4 - .pool -_08187F74: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1F - bl pokemon_setattr - b _081883B4 - .pool -_08187F90: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x20 - bl pokemon_setattr - b _081883B4 - .pool -_08187FAC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x22 - bl pokemon_setattr - b _081883B4 - .pool -_08187FC8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x23 - bl pokemon_setattr - b _081883B4 - .pool -_08187FE4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x24 - bl pokemon_setattr - b _081883B4 - .pool -_08188000: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x25 - bl pokemon_setattr - b _081883B4 - .pool -_0818801C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x26 - bl pokemon_setattr - b _081883B4 - .pool -_08188038: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gEnemyParty - adds r4, r0 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - adds r0, r4, 0 - movs r1, 0x27 - str r3, [sp, 0x34] - bl pokemon_setattr - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x1 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x28 - bl pokemon_setattr - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x2 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x29 - bl pokemon_setattr - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x3 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x2A - bl pokemon_setattr - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x4 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x2B - bl pokemon_setattr - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x5 - adds r2, r0 - adds r0, r4, 0 - b _08188146 - .pool -_081880AC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x27 - bl pokemon_setattr - b _081883B4 - .pool -_081880C8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x28 - bl pokemon_setattr - b _081883B4 - .pool -_081880E4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x29 - bl pokemon_setattr - b _081883B4 - .pool -_08188100: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x2A - bl pokemon_setattr - b _081883B4 - .pool -_0818811C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x2B - bl pokemon_setattr - b _081883B4 - .pool -_08188138: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 -_08188146: - movs r1, 0x2C - bl pokemon_setattr - b _081883B4 - .pool -_08188154: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0 - bl pokemon_setattr - b _081883B4 - .pool -_08188170: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x9 - bl pokemon_setattr - b _081883B4 - .pool -_0818818C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x37 - bl pokemon_setattr - b _081883B4 - .pool -_081881A8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x38 - bl pokemon_setattr - b _081883B4 - .pool -_081881C4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x39 - bl pokemon_setattr - b _081883B4 - .pool -_081881E0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3A - bl pokemon_setattr - b _081883B4 - .pool -_081881FC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3B - bl pokemon_setattr - b _081883B4 - .pool -_08188218: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3C - bl pokemon_setattr - b _081883B4 - .pool -_08188234: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3D - bl pokemon_setattr - b _081883B4 - .pool -_08188250: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3E - bl pokemon_setattr - b _081883B4 - .pool -_0818826C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3F - bl pokemon_setattr - b _081883B4 - .pool -_08188288: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x16 - bl pokemon_setattr - b _081883B4 - .pool -_081882A4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x17 - bl pokemon_setattr - b _081883B4 - .pool -_081882C0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x18 - bl pokemon_setattr - b _081883B4 - .pool -_081882DC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x21 - bl pokemon_setattr - b _081883B4 - .pool -_081882F8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x2F - bl pokemon_setattr - b _081883B4 - .pool -_08188314: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x30 - bl pokemon_setattr - b _081883B4 - .pool -_08188330: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x32 - bl pokemon_setattr - b _081883B4 - .pool -_0818834C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x33 - bl pokemon_setattr - b _081883B4 - .pool -_08188368: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x34 - bl pokemon_setattr - b _081883B4 - .pool -_08188384: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x35 - bl pokemon_setattr - b _081883B4 - .pool -_081883A0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x36 - bl pokemon_setattr -_081883B4: - add sp, 0x38 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end dp01_setattr_for_opponent_pokemon - - thumb_func_start sub_81883C8 -sub_81883C8: @ 81883C8 - push {r4-r7,lr} - ldr r1, =gUnknown_0202406E - ldr r7, =gUnknown_02024064 - ldrb r2, [r7] - lsls r0, r2, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - adds r3, r1, 0 - muls r3, r0 - ldr r4, =gUnknown_02023064 - lsls r2, 9 - adds r0, r4, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - ldr r1, =gEnemyParty - adds r0, r1 - adds r5, r3, r0 - movs r3, 0 - adds r0, r4, 0x2 - adds r2, r0 - ldrb r2, [r2] - cmp r3, r2 - bcs _08188420 - adds r6, r4, 0 - adds r2, r7, 0 - adds r4, r0, 0 -_081883FE: - adds r1, r5, r3 - ldrb r0, [r2] - lsls r0, 9 - adds r0, 0x3 - adds r0, r3, r0 - adds r0, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r0, [r2] - lsls r0, 9 - adds r0, r4 - ldrb r0, [r0] - cmp r3, r0 - bcc _081883FE -_08188420: - bl sub_81871AC - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81883C8 - - thumb_func_start sub_818843C -sub_818843C: @ 818843C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r7, =gUnknown_0202406E - ldr r6, =gUnknown_02024064 - ldrb r0, [r6] - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - movs r1, 0x64 - mov r10, r1 - mov r2, r10 - muls r2, r0 - adds r0, r2, 0 - ldr r1, =gEnemyParty - mov r9, r1 - add r0, r9 - movs r1, 0xB - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r1, [r6] - lsls r0, r1, 1 - adds r0, r7 - ldrh r0, [r0] - mov r2, r10 - muls r2, r0 - adds r0, r2, 0 - add r0, r9 - bl sub_805DC0C - ldrb r0, [r6] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_806A068 - ldr r0, =gUnknown_0202499C - mov r8, r0 - ldrb r0, [r6] - movs r1, 0x2 - bl sub_80A5C6C - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldrb r0, [r6] - bl sub_80A6138 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r6] - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r8 - adds r1, r5, 0 - adds r2, r4, 0 - bl AddObjectToFront - ldr r4, =gUnknown_020241E4 - ldrb r1, [r6] - adds r1, r4 - strb r0, [r1] - ldr r5, =gUnknown_02020630 - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =0x0000ff10 - strh r1, [r0, 0x24] - ldrb r2, [r6] - adds r0, r2, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x2E] - ldrb r3, [r6] - adds r0, r3, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r2, [r6] - adds r4, r2, r4 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =gUnknown_020244E4 - adds r2, r1 - ldrb r1, [r2] - bl StartObjectImageAnim - ldrb r4, [r6] - lsls r0, r4, 1 - adds r0, r7 - ldrh r0, [r0] - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - add r0, r9 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_805EE54 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8186C48 - str r1, [r0] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818843C - - thumb_func_start sub_818858C -sub_818858C: @ 818858C - push {r4,lr} - ldr r1, =gUnknown_0202406E - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - lsls r2, r0, 1 - adds r2, r1 - ldr r3, =gUnknown_02023064 - lsls r0, 9 - adds r1, r3, 0x1 - adds r0, r1 - ldrb r0, [r0] - strh r0, [r2] - ldrb r0, [r4] - lsls r1, r0, 9 - adds r3, 0x2 - adds r1, r3 - ldrb r1, [r1] - bl sub_81885D8 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8187084 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818858C - - thumb_func_start sub_81885D8 -sub_81885D8: @ 81885D8 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_805EF84 - ldr r0, =gUnknown_0202406E - lsls r4, r6, 1 - adds r4, r0 - ldr r0, =gUnknown_02023064 - lsls r1, r6, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - strh r0, [r4] - ldrh r0, [r4] - movs r1, 0x64 - mov r9, r1 - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - ldr r5, =gEnemyParty - adds r0, r5 - movs r1, 0xB - bl GetMonData - mov r8, r0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r0, =sub_805D714 - bl CreateInvisibleSpriteWithCallback - ldr r1, =gUnknown_03005D7C - mov r10, r1 - add r10, r6 - mov r1, r10 - strb r0, [r1] - ldrh r0, [r4] - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - adds r0, r5 - adds r1, r6, 0 - bl sub_805DC0C - adds r0, r6, 0 - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl sub_806A068 - ldr r0, =gUnknown_0202499C - mov r9, r0 - adds r0, r6, 0 - movs r1, 0x2 - bl sub_80A5C6C - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r6, 0 - bl sub_80A6138 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r9 - adds r1, r5, 0 - adds r2, r4, 0 - bl AddObjectToFront - ldr r4, =gUnknown_020241E4 - adds r4, r6, r4 - strb r0, [r4] - ldr r5, =gUnknown_02020630 - mov r0, r10 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r4] - strh r1, [r0, 0x30] - mov r0, r10 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x32] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x2E] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r8 - strh r1, [r0, 0x32] - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, r6, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =gUnknown_020244E4 - adds r6, r1 - ldrb r1, [r6] - bl StartObjectImageAnim - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =DummyObjectCallback - str r1, [r0] - movs r0, 0 - movs r1, 0xFE - bl sub_80753E8 - mov r1, r10 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r5 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x2E] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81885D8 - - thumb_func_start sub_8188768 -sub_8188768: @ 8188768 - push {r4-r6,lr} - ldr r1, =gUnknown_02023064 - ldr r6, =gUnknown_02024064 - ldrb r2, [r6] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r3, [r0] - cmp r3, 0 - bne _081887B0 - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - strb r3, [r0, 0x4] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8188800 - str r1, [r0] - b _081887EC - .pool -_081887B0: - ldr r5, =gUnknown_020241E4 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - bl obj_free_rotscale_entry - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl RemoveObjectAndFreeTiles - ldrb r0, [r6] - bl sub_805EEE0 - ldr r1, =gUnknown_03005D70 - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl sub_8072984 - bl sub_81871AC -_081887EC: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8188768 - - thumb_func_start sub_8188800 -sub_8188800: @ 8188800 - push {r4-r6,lr} - ldr r6, =gUnknown_020244D0 - ldr r4, [r6] - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - ldr r1, [r4, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r1 - ldrb r0, [r3, 0x4] - cmp r0, 0 - beq _08188828 - cmp r0, 0x1 - beq _08188856 - b _0818887E - .pool -_08188828: - ldr r1, [r4] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08188842 - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_08188842: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0, 0x4] - b _0818887E -_08188856: - ldrb r1, [r3] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0818887E - strb r0, [r3, 0x4] - ldrb r2, [r5] - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x2 - bl move_anim_start_t4 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8186D9C - str r1, [r0] -_0818887E: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8188800 - - thumb_func_start sub_818888C -sub_818888C: @ 818888C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r5, =gBattleTypeFlags - ldr r0, [r5] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081888F6 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - bl battle_get_per_side_status - movs r1, 0x2 - ands r1, r0 - movs r7, 0xC8 - cmp r1, 0 - beq _081888B4 - movs r7, 0x98 -_081888B4: - ldr r0, [r5] - movs r1, 0x80 - lsls r1, 1 - ands r0, r1 - cmp r0, 0 - beq _081888EC - ldrb r0, [r4] - cmp r0, 0x1 - bne _081888D8 - ldr r0, =gUnknown_02038BCA - b _081888DA - .pool -_081888D8: - ldr r0, =gUnknown_02038BCC -_081888DA: - ldrh r0, [r0] - bl sub_8162AA0 - lsls r0, 24 - lsrs r0, 24 - b _0818892C - .pool -_081888EC: - bl sub_8185F40 - lsls r0, 24 - lsrs r0, 24 - b _08188924 -_081888F6: - movs r7, 0xB0 - ldr r0, =gUnknown_02038BCA - ldrh r1, [r0] - movs r0, 0xC0 - lsls r0, 4 - cmp r1, r0 - bne _08188910 - bl sub_8068B48 - b _08188928 - .pool -_08188910: - ldr r2, =gUnknown_020229E8 - ldr r0, =gUnknown_0203C7B4 - ldrb r0, [r0] - movs r1, 0x1 - eors r1, r0 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x13] -_08188924: - bl sub_806F000 -_08188928: - lsls r0, 16 - lsrs r0, 16 -_0818892C: - mov r8, r0 - ldr r5, =gUnknown_02024064 - ldrb r1, [r5] - bl sub_805DF38 - ldrb r0, [r5] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl template_build_for_pokemon_or_trainer - ldr r6, =gUnknown_0202499C - mov r9, r7 - ldr r1, =gUnknown_083054E0 - mov r2, r8 - lsls r0, r2, 2 - adds r0, r1 - ldrb r0, [r0] - movs r4, 0x8 - subs r4, r0 - lsls r4, 18 - movs r0, 0xA0 - lsls r0, 14 - adds r4, r0 - asrs r4, 16 - ldrb r0, [r5] - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r6, 0 - mov r1, r9 - adds r2, r4, 0 - bl AddObjectToFront - ldr r6, =gUnknown_020241E4 - ldrb r1, [r5] - adds r1, r6 - strb r0, [r1] - ldr r4, =gUnknown_02020630 - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =0x0000ff10 - strh r1, [r0, 0x24] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x2E] - ldr r1, =gTrainerFrontPicPaletteTable - mov r2, r8 - lsls r0, r2, 3 - adds r0, r1 - ldrh r0, [r0, 0x4] - bl IndexOfObjectPaletteTag - ldrb r1, [r5] - adds r1, r6 - ldrb r1, [r1] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r4 - lsls r0, 4 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - orrs r1, r0 - strb r1, [r2, 0x5] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - mov r1, r8 - strh r1, [r0, 0x6] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, =sub_805D7AC - str r1, [r0] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8186558 - str r1, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818888C - - thumb_func_start sub_8188A40 -sub_8188A40: @ 8188A40 - push {lr} - bl sub_81871AC - pop {r0} - bx r0 - thumb_func_end sub_8188A40 - - thumb_func_start sub_8188A4C -sub_8188A4C: @ 8188A4C - push {r4-r6,lr} - ldr r6, =gUnknown_020241E4 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, =gUnknown_02020630 - adds r0, r5 - bl oamt_add_pos2_onto_pos1 - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x23 - strh r1, [r0, 0x2E] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x8C - lsls r1, 1 - strh r1, [r0, 0x32] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r0, 0x22] - strh r1, [r0, 0x36] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_80A6EEC - str r1, [r0] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =DummyObjectCallback - bl oamt_set_x3A_32 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_81865C8 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8188A4C - - thumb_func_start sub_8188AF8 -sub_8188AF8: @ 8188AF8 - push {r4-r6,lr} - ldr r6, =gUnknown_020244D0 - ldr r4, [r6] - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - ldr r0, [r4, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r3, r1, r0 - ldrb r0, [r3, 0x4] - cmp r0, 0 - bne _08188B4C - ldr r1, [r4] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08188B2C - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_08188B2C: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x4] - adds r1, 0x1 - strb r1, [r0, 0x4] - b _08188B88 - .pool -_08188B4C: - ldrb r1, [r3] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _08188B88 - strb r0, [r3, 0x4] - movs r0, 0x10 - movs r1, 0x3F - bl audio_play_and_stuff - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldrb r0, [r5] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, =sub_8039934 - str r1, [r0] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8186D58 - str r1, [r0] -_08188B88: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8188AF8 - - thumb_func_start sub_8188BA4 -sub_8188BA4: @ 8188BA4 - push {lr} - bl sub_81871AC - pop {r0} - bx r0 - thumb_func_end sub_8188BA4 - - thumb_func_start sub_8188BB0 -sub_8188BB0: @ 8188BB0 - push {lr} - bl sub_81871AC - pop {r0} - bx r0 - thumb_func_end sub_8188BB0 - - thumb_func_start sub_8188BBC -sub_8188BBC: @ 8188BBC - push {lr} - bl sub_81871AC - pop {r0} - bx r0 - thumb_func_end sub_8188BBC - - thumb_func_start sub_8188BC8 -sub_8188BC8: @ 8188BC8 - push {lr} - bl sub_81871AC - pop {r0} - bx r0 - thumb_func_end sub_8188BC8 - - thumb_func_start sub_8188BD4 -sub_8188BD4: @ 8188BD4 - push {r4-r6,lr} - ldr r6, =gUnknown_02024064 - ldrb r0, [r6] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - beq _08188BE6 - b _08188CFA -_08188BE6: - ldr r0, =gUnknown_02023064 - mov r12, r0 - ldrb r2, [r6] - lsls r2, 9 - adds r0, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - mov r1, r12 - adds r1, 0x2 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - ldr r5, =gUnknown_02038432 - mov r1, r12 - adds r1, 0x3 - adds r2, r1 - ldrb r1, [r2] - strb r1, [r5] - ldr r4, =gUnknown_02038408 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x4 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0x5 - adds r2, r1 - ldrb r1, [r2] - lsls r1, 8 - orrs r3, r1 - strh r3, [r4] - ldr r4, =gUnknown_02038404 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x6 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0x7 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r3, r1 - mov r1, r12 - adds r1, 0x8 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 16 - orrs r3, r1 - mov r1, r12 - adds r1, 0x9 - adds r2, r1 - ldrb r1, [r2] - lsls r1, 24 - orrs r3, r1 - str r3, [r4] - ldr r3, =gUnknown_0203841A - ldrb r1, [r6] - lsls r1, 9 - mov r2, r12 - adds r2, 0xA - adds r1, r2 - ldrb r1, [r1] - strb r1, [r3] - ldr r4, =gUnknown_0203841C - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0xC - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0xD - adds r2, r1 - ldrb r1, [r2] - lsls r1, 8 - orrs r3, r1 - strh r3, [r4] - ldr r3, =gUnknown_02038400 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x10 - adds r2, r1 - str r2, [r3] - ldr r3, =gUnknown_020244BC - ldrb r1, [r6] - lsls r1, 2 - adds r1, r3 - ldr r2, [r2] - str r2, [r1] - ldrb r1, [r5] - bl sub_805DB8C - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _08188CDC - bl sub_81871AC - b _08188CFA - .pool -_08188CDC: - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strb r3, [r0, 0x4] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8188D0C - str r1, [r0] -_08188CFA: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8188BD4 - - thumb_func_start sub_8188D0C -sub_8188D0C: @ 8188D0C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r2, =gUnknown_02023064 - ldr r6, =gUnknown_02024064 - ldrb r3, [r6] - lsls r1, r3, 9 - adds r0, r2, 0x1 - mov r10, r0 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, r2, 0x2 - mov r9, r5 - adds r0, r1, r5 - ldrb r0, [r0] - lsls r0, 8 - orrs r4, r0 - adds r2, 0xB - adds r1, r2 - ldrb r1, [r1] - mov r8, r1 - ldr r7, =gUnknown_020244D0 - ldr r5, [r7] - ldr r1, [r5, 0x4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x4] - cmp r2, 0x1 - beq _08188DA4 - cmp r2, 0x1 - bgt _08188D64 - cmp r2, 0 - beq _08188D6E - b _08188E80 - .pool -_08188D64: - cmp r2, 0x2 - beq _08188DCE - cmp r2, 0x3 - beq _08188E44 - b _08188E80 -_08188D6E: - ldr r1, [r5] - lsls r0, r3, 2 - adds r1, r0, r1 - ldrb r2, [r1] - movs r0, 0xC - ands r0, r2 - cmp r0, 0x4 - bne _08188D90 - movs r0, 0x8 - orrs r0, r2 - strb r0, [r1] - ldrb r2, [r6] - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_08188D90: - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0, 0x4] - b _08188E80 -_08188DA4: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08188E80 - movs r0, 0 - bl sub_805EB9C - adds r0, r4, 0 - bl move_anim_start_t1 - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2 - strb r1, [r0, 0x4] - b _08188E80 -_08188DCE: - ldr r0, =gUnknown_020383F8 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, =gUnknown_020383FD - ldrb r0, [r0] - cmp r0, 0 - bne _08188E80 - movs r0, 0x1 - bl sub_805EB9C - ldr r0, [r7] - ldrb r2, [r6] - ldr r1, [r0] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08188E1C - mov r0, r8 - cmp r0, 0x1 - bhi _08188E1C - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x6 - bl move_anim_start_t4 - ldr r0, [r7] - ldrb r1, [r6] - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - strb r0, [r1] -_08188E1C: - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - strb r1, [r0, 0x4] - b _08188E80 - .pool -_08188E44: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _08188E80 - bl sub_805E394 - ldrb r0, [r6] - lsls r2, r0, 9 - mov r3, r10 - adds r1, r2, r3 - ldrb r1, [r1] - add r2, r9 - ldrb r2, [r2] - lsls r2, 8 - orrs r1, r2 - bl sub_805E94C - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strb r4, [r0, 0x4] - bl sub_81871AC -_08188E80: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8188D0C - - thumb_func_start sub_8188E90 -sub_8188E90: @ 8188E90 - push {r4,lr} - ldr r0, =gUnknown_02022E14 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_02022E16 - strh r1, [r0] - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - lsls r0, 9 - ldr r1, =gUnknown_02023066 - adds r0, r1 - ldrh r0, [r0] - bl battle_pick_message - ldr r0, =gUnknown_02022E2C - movs r1, 0 - bl battle_show_message_maybe - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8186E10 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8188E90 - - thumb_func_start sub_8188EE4 -sub_8188EE4: @ 8188EE4 - push {lr} - bl sub_81871AC - pop {r0} - bx r0 - thumb_func_end sub_8188EE4 - - thumb_func_start sub_8188EF0 -sub_8188EF0: @ 8188EF0 - push {lr} - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl sub_8185054 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x1 - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb - bl sub_81871AC - pop {r0} - bx r0 - .pool - thumb_func_end sub_8188EF0 - - thumb_func_start sub_8188F14 -sub_8188F14: @ 8188F14 - push {lr} - bl sub_81871AC - pop {r0} - bx r0 - thumb_func_end sub_8188F14 - - thumb_func_start sub_8188F20 -sub_8188F20: @ 8188F20 - push {r4,r5,lr} - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 10 - ands r0, r1 - cmp r0, 0 - beq _08188F48 - bl sub_805D19C - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - movs r0, 0x1 - movs r1, 0xA - bl dp01_build_cmdbuf_x21_a_bb - b _08188F6C - .pool -_08188F48: - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - bl sub_8185054 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r5] - bl sub_8185054 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 16 - orrs r2, r4 - movs r0, 0x1 - movs r1, 0xA - bl dp01_build_cmdbuf_x21_a_bb -_08188F6C: - bl sub_81871AC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8188F20 - - thumb_func_start sub_8188F7C -sub_8188F7C: @ 8188F7C - push {lr} - bl sub_81871AC - pop {r0} - bx r0 - thumb_func_end sub_8188F7C - - thumb_func_start sub_8188F88 -sub_8188F88: @ 8188F88 - push {r4,lr} - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - bl sub_8185054 - ldrb r1, [r4] - ldr r3, =gUnknown_0202449C - ldr r2, [r3] - adds r1, r2 - adds r1, 0x5C - strb r0, [r1] - ldrb r0, [r4] - ldr r1, [r3] - adds r0, r1 - adds r0, 0x5C - ldrb r1, [r0] - movs r0, 0x1 - movs r2, 0 - bl dp01_build_cmdbuf_x22_a_three_bytes - bl sub_81871AC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8188F88 - - thumb_func_start sub_8188FC4 -sub_8188FC4: @ 8188FC4 - push {lr} - bl sub_81871AC - pop {r0} - bx r0 - thumb_func_end sub_8188FC4 - - thumb_func_start sub_8188FD0 -sub_8188FD0: @ 8188FD0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - movs r0, 0 - bl load_gfxc_health_bar - ldr r3, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - mov r9, r0 - ldrb r4, [r0] - lsls r2, r4, 9 - adds r0, r3, 0x2 - adds r0, r2, r0 - ldrb r1, [r0] - adds r3, 0x3 - adds r2, r3 - ldrb r0, [r2] - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - asrs r7, r1, 16 - ldr r0, =0x00007fff - cmp r7, r0 - beq _08189060 - ldr r6, =gUnknown_0202406E - lsls r0, r4, 1 - adds r0, r6 - ldrh r0, [r0] - movs r5, 0x64 - muls r0, r5 - ldr r4, =gEnemyParty - adds r0, r4 - movs r1, 0x3A - bl GetMonData - mov r8, r0 - mov r1, r9 - ldrb r0, [r1] - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - muls r0, r5 - adds r0, r4 - movs r1, 0x39 - bl GetMonData - adds r3, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r1, =gUnknown_03005D70 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - mov r2, r8 - bl sub_807294C - b _0818908A - .pool -_08189060: - ldr r1, =gUnknown_0202406E - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x3A - bl GetMonData - adds r2, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r1, =gUnknown_03005D70 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - movs r3, 0 - bl sub_807294C -_0818908A: - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8186D04 - str r1, [r0] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8188FD0 - - thumb_func_start sub_81890C0 -sub_81890C0: @ 81890C0 - push {lr} - bl sub_81871AC - pop {r0} - bx r0 - thumb_func_end sub_81890C0 - - thumb_func_start sub_81890CC -sub_81890CC: @ 81890CC - push {r4,lr} - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _08189120 - ldr r0, =gUnknown_03005D70 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, =gUnknown_0202406E - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gEnemyParty - adds r1, r2 - movs r2, 0x9 - bl healthbar_draw_field_maybe - ldrb r2, [r4] - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_818714C - str r1, [r0] -_08189120: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81890CC - - thumb_func_start sub_8189144 -sub_8189144: @ 8189144 - push {r4,r5,lr} - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _08189194 - ldr r4, =gUnknown_02023064 - ldrb r3, [r5] - lsls r3, 9 - adds r0, r4, 0x1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, 0x2 - adds r1, r3, r1 - ldrb r1, [r1] - adds r2, r4, 0x3 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, 8 - orrs r1, r2 - adds r2, r4, 0x4 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, 16 - orrs r1, r2 - adds r4, 0x5 - adds r3, r4 - ldrb r2, [r3] - lsls r2, 24 - orrs r1, r2 - bl move_anim_start_t2_for_situation - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_818714C - str r1, [r0] -_08189194: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8189144 - - thumb_func_start sub_81891AC -sub_81891AC: @ 81891AC - push {lr} - bl sub_81871AC - pop {r0} - bx r0 - thumb_func_end sub_81891AC - - thumb_func_start sub_81891B8 -sub_81891B8: @ 81891B8 - push {lr} - bl sub_81871AC - pop {r0} - bx r0 - thumb_func_end sub_81891B8 - - thumb_func_start sub_81891C4 -sub_81891C4: @ 81891C4 - push {lr} - bl sub_81871AC - pop {r0} - bx r0 - thumb_func_end sub_81891C4 - - thumb_func_start sub_81891D0 -sub_81891D0: @ 81891D0 - push {lr} - bl sub_81871AC - pop {r0} - bx r0 - thumb_func_end sub_81891D0 - - thumb_func_start sub_81891DC -sub_81891DC: @ 81891DC - push {lr} - bl sub_81871AC - pop {r0} - bx r0 - thumb_func_end sub_81891DC - - thumb_func_start sub_81891E8 -sub_81891E8: @ 81891E8 - push {lr} - bl sub_81871AC - pop {r0} - bx r0 - thumb_func_end sub_81891E8 - - thumb_func_start sub_81891F4 -sub_81891F4: @ 81891F4 - push {lr} - bl sub_81871AC - pop {r0} - bx r0 - thumb_func_end sub_81891F4 - - thumb_func_start sub_8189200 -sub_8189200: @ 8189200 - push {lr} - bl sub_81871AC - pop {r0} - bx r0 - thumb_func_end sub_8189200 - - thumb_func_start sub_818920C -sub_818920C: @ 818920C - push {lr} - bl sub_81871AC - pop {r0} - bx r0 - thumb_func_end sub_818920C - - thumb_func_start sub_8189218 -sub_8189218: @ 8189218 - push {lr} - ldr r2, =gUnknown_02022D0C - ldrb r1, [r2] - movs r0, 0x80 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - bl sub_81871AC - pop {r0} - bx r0 - .pool - thumb_func_end sub_8189218 - - thumb_func_start sub_8189234 -sub_8189234: @ 8189234 - push {lr} - ldr r3, =gUnknown_02022D0C - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x7F - ands r1, r0 - ldrb r2, [r3] - movs r0, 0x80 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl sub_81871AC - pop {r0} - bx r0 - .pool - thumb_func_end sub_8189234 - - thumb_func_start sub_818926C -sub_818926C: @ 818926C - push {lr} - ldr r2, =gUnknown_02022D0C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - bl sub_81871AC - pop {r0} - bx r0 - .pool - thumb_func_end sub_818926C - - thumb_func_start sub_8189284 -sub_8189284: @ 8189284 - push {lr} - ldr r3, =gUnknown_02022D0C - ldr r1, [r3] - lsls r1, 24 - lsrs r1, 31 - movs r0, 0x1 - eors r1, r0 - lsls r1, 7 - ldrb r2, [r3] - movs r0, 0x7F - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl sub_81871AC - pop {r0} - bx r0 - .pool - thumb_func_end sub_8189284 - - thumb_func_start sub_81892AC -sub_81892AC: @ 81892AC - push {r4,lr} - ldr r3, =gUnknown_02020630 - ldr r2, =gUnknown_020241E4 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _081892E0 - bl sub_81871AC - b _0818930A - .pool -_081892E0: - ldr r1, =gUnknown_020244B9 - movs r0, 0x1 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0 - strh r1, [r0, 0x30] - ldrb r0, [r4] - bl sub_80769F4 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_blink_t2 - str r1, [r0] -_0818930A: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81892AC - - thumb_func_start sub_818931C -sub_818931C: @ 818931C - push {lr} - bl sub_81871AC - pop {r0} - bx r0 - thumb_func_end sub_818931C - - thumb_func_start sub_8189328 -sub_8189328: @ 8189328 - push {r4,lr} - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - movs r3, 0x3F - cmp r0, 0 - bne _0818933C - movs r3, 0xC0 -_0818933C: - ldr r2, =gUnknown_02023064 - ldrb r1, [r4] - lsls r1, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - lsls r1, r3, 24 - asrs r1, 24 - bl audio_play_and_stuff - bl sub_81871AC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8189328 - - thumb_func_start sub_818936C -sub_818936C: @ 818936C - push {r4,r5,lr} - ldr r4, =gUnknown_02023064 - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - lsls r3, r0, 9 - adds r0, r4, 0x3 - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, 0 - beq _081893A8 - bl sub_805EA60 - ldrb r1, [r5] - lsls r1, 9 - adds r0, r4, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, r4, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - bl song_play_for_text - b _081893BC - .pool -_081893A8: - adds r0, r4, 0x1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, 0x2 - adds r1, r3, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - bl fanfare_play -_081893BC: - bl sub_81871AC - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_818936C - - thumb_func_start sub_81893C8 -sub_81893C8: @ 81893C8 - push {lr} - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x19 - movs r2, 0x5 - bl sub_80A32E4 - bl sub_81871AC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81893C8 - - thumb_func_start sub_8189404 -sub_8189404: @ 8189404 - push {lr} - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - bl battle_intro_launch - ldr r2, =gUnknown_020243FC - ldrh r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] - bl sub_81871AC - pop {r0} - bx r0 - .pool - thumb_func_end sub_8189404 - - thumb_func_start sub_8189438 -sub_8189438: @ 8189438 - push {r4-r6,lr} - ldr r5, =gUnknown_020241E4 - ldr r6, =gUnknown_02024064 - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - bl oamt_add_pos2_onto_pos1 - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x23 - strh r1, [r0, 0x2E] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x8C - lsls r1, 1 - strh r1, [r0, 0x32] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x22] - strh r1, [r0, 0x36] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_80A6EEC - str r1, [r0] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =sub_818962C - bl oamt_set_x3A_32 - ldr r0, =c3_0803D564 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r4, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - ldrb r0, [r6] - strh r0, [r1, 0x8] - ldr r3, =gUnknown_020244D0 - ldr r0, [r3] - ldrb r2, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081894FA - ldr r0, =gUnknown_020244B4 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - ldr r1, =sub_8073C30 - str r1, [r0] -_081894FA: - ldr r0, [r3] - ldr r2, [r0, 0x8] - ldrb r0, [r2, 0x9] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x9] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, =nullsub_70 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8189438 - - thumb_func_start c3_0803D564 -c3_0803D564: @ 8189548 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r7, =gUnknown_02024064 - ldrb r0, [r7] - mov r9, r0 - ldr r1, =gTasks - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x8] - strb r0, [r7] - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08189582 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081895B4 -_08189582: - ldr r0, =gUnknown_02023064 - ldrb r1, [r7] - lsls r2, r1, 9 - adds r0, 0x1 - adds r2, r0 - ldr r0, =gUnknown_0202406E - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - strb r0, [r2] - ldrb r0, [r7] - movs r1, 0 - bl sub_81885D8 - b _081895F4 - .pool -_081895B4: - ldr r4, =gUnknown_02023064 - ldrb r0, [r7] - lsls r1, r0, 9 - adds r4, 0x1 - adds r1, r4 - ldr r6, =gUnknown_0202406E - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r1, 0 - bl sub_81885D8 - ldrb r0, [r7] - movs r5, 0x2 - eors r0, r5 - strb r0, [r7] - ldrb r0, [r7] - lsls r1, r0, 9 - adds r1, r4 - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r1, 0 - bl sub_81885D8 - ldrb r0, [r7] - eors r0, r5 - strb r0, [r7] -_081895F4: - ldr r1, =gUnknown_03005D60 - ldr r2, =gUnknown_02024064 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_818686C - str r1, [r0] - mov r0, r9 - strb r0, [r2] - mov r0, r8 - bl DestroyTask - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end c3_0803D564 - - thumb_func_start sub_818962C -sub_818962C: @ 818962C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x6] - bl sub_805DFE4 - adds r0, r4, 0 - bl obj_free_rotscale_entry - adds r0, r4, 0 - bl RemoveObjectAndFreeTiles - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_818962C - - thumb_func_start sub_8189648 -sub_8189648: @ 8189648 - push {r4-r7,lr} - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08189678 - adds r0, r2, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08189678 - bl sub_81871AC - b _08189742 - .pool -_08189678: - ldr r4, =gUnknown_020244D0 - ldr r0, [r4] - ldr r3, =gUnknown_02024064 - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - ldr r1, =gUnknown_02023064 - ldrb r2, [r3] - lsls r0, r2, 9 - adds r1, 0x2 - adds r0, r1 - ldrb r0, [r0] - adds r7, r3, 0 - cmp r0, 0 - beq _081896E4 - ldr r0, [r4] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r1 - ldrb r2, [r3, 0x1] - lsls r1, r2, 27 - lsrs r0, r1, 28 - cmp r0, 0x1 - bhi _081896DC - adds r0, 0x1 - movs r1, 0xF - ands r0, r1 - lsls r0, 1 - movs r1, 0x1F - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x1] - b _08189742 - .pool -_081896DC: - movs r0, 0x1F - negs r0, r0 - ands r0, r2 - strb r0, [r3, 0x1] -_081896E4: - adds r5, r7, 0 - ldrb r0, [r5] - lsls r3, r0, 9 - ldr r4, =gUnknown_02023068 - adds r1, r3, r4 - subs r2, r4, 0x3 - adds r2, r3, r2 - ldrb r2, [r2] - subs r4, 0x2 - adds r3, r4 - ldrb r3, [r3] - bl sub_80735DC - ldr r2, =gUnknown_020244B4 - ldrb r1, [r5] - adds r1, r2 - movs r3, 0 - strb r0, [r1] - ldr r6, =gUnknown_020244D0 - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strb r3, [r0, 0x5] - ldrb r2, [r5] - lsls r0, r2, 9 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _08189736 - ldr r0, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0x5D - strb r1, [r0, 0x5] -_08189736: - ldr r0, =gUnknown_03005D60 - ldrb r1, [r7] - lsls r1, 2 - adds r1, r0 - ldr r0, =sub_818975C - str r0, [r1] -_08189742: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8189648 - - thumb_func_start sub_818975C -sub_818975C: @ 818975C - push {r4,lr} - ldr r4, =gUnknown_020244D0 - ldr r0, [r4] - ldr r3, =gUnknown_02024064 - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x5] - adds r2, r1, 0x1 - strb r2, [r0, 0x5] - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x5C - bls _08189794 - ldr r0, [r4] - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strb r1, [r0, 0x5] - bl sub_81871AC -_08189794: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818975C - - thumb_func_start sub_81897A4 -sub_81897A4: @ 81897A4 - push {lr} - ldr r0, =gUnknown_020244D0 - ldr r1, [r0] - ldr r0, =gUnknown_02024064 - ldrb r3, [r0] - ldr r1, [r1, 0x4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081897D6 - ldr r2, =gTasks - ldr r0, =gUnknown_020244B4 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, =sub_8073C30 - str r1, [r0] -_081897D6: - bl sub_81871AC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81897A4 - - thumb_func_start sub_81897F4 -sub_81897F4: @ 81897F4 - push {lr} - bl sub_81871AC - pop {r0} - bx r0 - thumb_func_end sub_81897F4 - - thumb_func_start sub_8189800 -sub_8189800: @ 8189800 - push {r4,lr} - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - bl sub_80A6A90 - lsls r0, 24 - cmp r0, 0 - beq _08189846 - ldr r3, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldr r0, =gUnknown_02023064 - lsls r1, 9 - adds r0, 0x1 - adds r1, r0 - adds r2, 0x3E - movs r0, 0x1 - ldrb r1, [r1] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - bl sub_805E408 -_08189846: - bl sub_81871AC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8189800 - - thumb_func_start sub_8189860 -sub_8189860: @ 8189860 - push {r4-r6,lr} - sub sp, 0x4 - ldr r6, =gUnknown_02024064 - ldrb r0, [r6] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _081898B8 - ldr r5, =gUnknown_02023064 - ldrb r2, [r6] - lsls r1, r2, 9 - adds r0, r5, 0x1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r0, r5, 0x2 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, 0x3 - adds r1, r5 - ldrb r0, [r1] - lsls r0, 8 - orrs r4, r0 - str r4, [sp] - adds r0, r2, 0 - adds r1, r2, 0 - bl move_anim_start_t3 - lsls r0, 24 - cmp r0, 0 - beq _081898AC - bl sub_81871AC - b _081898B8 - .pool -_081898AC: - ldr r0, =gUnknown_03005D60 - ldrb r1, [r6] - lsls r1, 2 - adds r1, r0 - ldr r0, =sub_818717C - str r0, [r1] -_081898B8: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8189860 - - thumb_func_start sub_81898C8 -sub_81898C8: @ 81898C8 - push {lr} - bl sub_81871AC - pop {r0} - bx r0 - thumb_func_end sub_81898C8 - - thumb_func_start sub_81898D4 -sub_81898D4: @ 81898D4 - push {lr} - bl sub_81871AC - pop {r0} - bx r0 - thumb_func_end sub_81898D4 - - thumb_func_start sub_81898E0 -sub_81898E0: @ 81898E0 - push {lr} - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r2, [r0] - cmp r2, 0x3 - bne _08189908 - ldr r0, =gUnknown_0202433A - strb r2, [r0] - b _08189910 - .pool -_08189908: - ldr r0, =gUnknown_0202433A - movs r1, 0x3 - eors r1, r2 - strb r1, [r0] -_08189910: - movs r0, 0x5 - bl sub_80A2F50 - movs r0, 0x3 - bl BeginFastPaletteFade - bl sub_81871AC - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_80587B0 - str r1, [r0] - pop {r0} - bx r0 - .pool - thumb_func_end sub_81898E0 - - thumb_func_start nullsub_119 -nullsub_119: @ 8189944 - bx lr - thumb_func_end nullsub_119 - - thumb_func_start nullsub_120 -nullsub_120: @ 8189948 - bx lr - thumb_func_end nullsub_120 - - thumb_func_start sub_818994C -sub_818994C: @ 818994C - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8189968 - str r1, [r0] - bx lr - .pool - thumb_func_end sub_818994C - - thumb_func_start sub_8189968 -sub_8189968: @ 8189968 - push {lr} - ldr r2, =gUnknown_02024068 - ldr r1, =gBitTable - ldr r0, =gUnknown_02024064 - ldrb r3, [r0] - lsls r0, r3, 2 - adds r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _081899B4 - ldr r0, =gUnknown_02023064 - lsls r1, r3, 9 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x38 - bhi _081899B0 - ldr r0, =gUnknown_0860AF74 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 - b _081899B4 - .pool -_081899B0: - bl sub_818A514 -_081899B4: - pop {r0} - bx r0 - thumb_func_end sub_8189968 - - thumb_func_start sub_81899B8 -sub_81899B8: @ 81899B8 - push {lr} - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _081899DC - bl sub_818A514 -_081899DC: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81899B8 - - thumb_func_start sub_81899F0 -sub_81899F0: @ 81899F0 - push {r4-r6,lr} - ldr r6, =gUnknown_02020630 - ldr r5, =gUnknown_020241E4 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r6, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _08189A40 - movs r0, 0 - bl nullsub_25 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl obj_free_rotscale_entry - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl RemoveObjectAndFreeTiles - bl sub_818A514 -_08189A40: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81899F0 - - thumb_func_start sub_8189A58 -sub_8189A58: @ 8189A58 - push {r4,lr} - ldr r4, =gUnknown_020244D0 - ldr r1, [r4] - ldr r3, =gUnknown_02024064 - ldrb r0, [r3] - ldr r2, [r1, 0x4] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x9] - subs r0, 0x1 - strb r0, [r1, 0x9] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _08189A90 - ldr r0, [r4] - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strb r1, [r0, 0x9] - bl sub_818A514 -_08189A90: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8189A58 - - thumb_func_start sub_8189AA0 -sub_8189AA0: @ 8189AA0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r6, 0 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - bl battle_get_per_side_status - lsls r0, 24 - cmp r0, 0 - beq _08189ABA - b _08189C60 -_08189ABA: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08189ADA - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08189B0C - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08189B0C -_08189ADA: - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_03005D70 - ldrb r0, [r4] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _08189B42 - b _08189B48 - .pool -_08189B0C: - ldr r2, =gUnknown_02020630 - ldr r5, =gUnknown_03005D70 - ldr r0, =gUnknown_02024064 - ldrb r3, [r0] - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r4, [r0] - ldr r0, =DummyObjectCallback - cmp r4, r0 - bne _08189B42 - movs r0, 0x2 - eors r3, r0 - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - cmp r0, r4 - bne _08189B42 - movs r6, 0x1 -_08189B42: - cmp r6, 0 - bne _08189B48 - b _08189D18 -_08189B48: - ldr r0, =gUnknown_020244D0 - mov r9, r0 - ldr r0, [r0] - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - ldr r3, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r4, r0, r3 - ldrb r1, [r4, 0x1] - movs r6, 0x1 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - bne _08189B6A - b _08189D18 -_08189B6A: - movs r1, 0x2 - mov r8, r1 - mov r1, r8 - eors r1, r2 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x1] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - bne _08189B86 - b _08189D18 -_08189B86: - ldrb r1, [r4] - movs r3, 0x7F - adds r0, r3, 0 - ands r0, r1 - strb r0, [r4] - mov r1, r9 - ldr r0, [r1] - ldrb r2, [r5] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r4, 0x2 - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - strb r0, [r1, 0x1] - mov r0, r9 - ldr r2, [r0] - ldrb r0, [r5] - mov r1, r8 - eors r1, r0 - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - mov r1, r9 - ldr r2, [r1] - ldrb r0, [r5] - mov r1, r8 - eors r1, r0 - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - ands r4, r1 - strb r4, [r0, 0x1] - ldr r4, =0x000027f9 - adds r0, r4, 0 - bl FreeObjectTilesByTag - adds r0, r4, 0 - bl FreeObjectPaletteByTag - ldr r7, =gUnknown_0202406E - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r7 - ldrh r0, [r0] - movs r6, 0x64 - muls r0, r6 - ldr r4, =gPlayerParty - adds r0, r4 - bl sub_805E990 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08189C22 - ldrb r0, [r5] - mov r1, r8 - eors r1, r0 - lsls r0, r1, 1 - adds r0, r7 - ldrh r0, [r0] - muls r0, r6 - adds r0, r4 - bl sub_805E990 -_08189C22: - mov r1, r9 - ldr r0, [r1] - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - strb r1, [r0, 0x9] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - b _08189D10 - .pool -_08189C60: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08189C80 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08189CB0 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08189CB0 -_08189C80: - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_03005D70 - ldrb r0, [r4] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _08189CE6 - b _08189CE4 - .pool -_08189CB0: - ldr r2, =gUnknown_02020630 - ldr r5, =gUnknown_03005D70 - ldr r0, =gUnknown_02024064 - ldrb r3, [r0] - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r4, [r0] - ldr r0, =DummyObjectCallback - cmp r4, r0 - bne _08189CE6 - movs r0, 0x2 - eors r3, r0 - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - cmp r0, r4 - bne _08189CE6 -_08189CE4: - movs r6, 0x1 -_08189CE6: - bl sub_80A36C8 - lsls r0, 24 - cmp r0, 0 - beq _08189CF2 - movs r6, 0 -_08189CF2: - cmp r6, 0 - beq _08189D18 - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r3, =gUnknown_02024064 - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - strb r1, [r0, 0x9] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r3] -_08189D10: - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8189A58 - str r1, [r0] -_08189D18: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8189AA0 - - thumb_func_start sub_8189D40 -sub_8189D40: @ 8189D40 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r0, 0 - mov r10, r0 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - bl battle_get_per_side_status - lsls r0, 24 - cmp r0, 0 - bne _08189DBE - ldr r5, =gUnknown_020244D0 - ldr r0, [r5] - ldrb r2, [r4] - ldr r1, [r0, 0x4] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r6, 0x88 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - bne _08189D8C - ldr r0, =gUnknown_0202406E - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8172EF0 -_08189D8C: - ldr r2, [r5] - ldrb r1, [r4] - movs r0, 0x2 - adds r3, r0, 0 - eors r3, r1 - ldr r1, [r2, 0x4] - lsls r2, r3, 1 - adds r0, r2, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - bne _08189DBE - ldr r0, =gUnknown_0202406E - adds r0, r2, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r1, r0 - adds r0, r3, 0 - bl sub_8172EF0 -_08189DBE: - ldr r3, =gUnknown_020244D0 - ldr r0, [r3] - ldr r2, =gUnknown_02024064 - ldrb r5, [r2] - ldr r4, [r0, 0x4] - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - adds r6, r0, r4 - ldrb r1, [r6] - movs r0, 0x8 - mov r12, r0 - ands r0, r1 - mov r9, r2 - mov r8, r3 - cmp r0, 0 - bne _08189EA2 - movs r7, 0x2 - adds r1, r7, 0 - eors r1, r5 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0] - mov r0, r12 - ands r0, r1 - cmp r0, 0 - bne _08189EA2 - ldrb r1, [r6, 0x1] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08189E84 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08189E54 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08189E54 - ldr r4, =gUnknown_03005D70 - mov r1, r9 - ldrb r0, [r1] - adds r1, r7, 0 - eors r1, r0 - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, =gUnknown_0202406E - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gPlayerParty - adds r1, r2 - movs r2, 0 - bl healthbar_draw_field_maybe - mov r1, r9 - ldrb r0, [r1] - eors r0, r7 - bl sub_8076918 - mov r1, r9 - ldrb r0, [r1] - eors r0, r7 - adds r0, r4 - ldrb r0, [r0] - bl sub_80729D0 -_08189E54: - ldr r5, =gUnknown_03005D70 - ldr r4, =gUnknown_02024064 - ldrb r1, [r4] - adds r0, r1, r5 - ldrb r0, [r0] - ldr r2, =gUnknown_0202406E - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gPlayerParty - adds r1, r2 - movs r2, 0 - bl healthbar_draw_field_maybe - ldrb r0, [r4] - bl sub_8076918 - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl sub_80729D0 -_08189E84: - ldr r4, =gUnknown_020244D0 - ldr r0, [r4] - ldr r3, =gUnknown_02024064 - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0, 0x1] - mov r9, r3 - mov r8, r4 -_08189EA2: - mov r1, r8 - ldr r0, [r1] - mov r1, r9 - ldrb r2, [r1] - ldr r3, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x1] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0x80 - bne _08189F62 - movs r1, 0x2 - eors r1, r2 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x1] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08189F62 - bl sub_80A36C8 - lsls r0, 24 - cmp r0, 0 - bne _08189F62 - mov r1, r8 - ldr r0, [r1] - mov r1, r9 - ldrb r2, [r1] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x1] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _08189F44 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x42 - ands r0, r1 - cmp r0, 0x42 - bne _08189F38 - adds r0, r2, 0 - bl battle_get_per_side_status - lsls r0, 24 - cmp r0, 0 - bne _08189F44 - ldr r0, =gMPlay_BGM - bl m4aMPlayContinue - b _08189F44 - .pool -_08189F38: - ldr r0, =gMPlay_BGM - ldr r1, =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl -_08189F44: - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x1] - movs r0, 0x1 - mov r10, r0 -_08189F62: - mov r1, r10 - cmp r1, 0 - beq _0818A02A - ldr r7, =gUnknown_02020630 - ldr r6, =gUnknown_03005D7C - ldr r5, =gUnknown_02024064 - ldrb r3, [r5] - adds r0, r3, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r7, 0 - adds r4, 0x1C - adds r0, r4 - ldr r2, [r0] - ldr r0, =DummyObjectCallback - cmp r2, r0 - bne _0818A02A - ldr r0, =gUnknown_020241E4 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - cmp r0, r2 - bne _0818A02A - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08189FC8 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08189FC8 - ldrb r1, [r5] - movs r0, 0x2 - eors r0, r1 - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - bl RemoveObjectAndFreeTiles -_08189FC8: - ldr r1, =gUnknown_03005D7C - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - bl RemoveObjectAndFreeTiles - ldr r3, =gUnknown_020244D0 - ldr r0, [r3] - ldr r2, [r0, 0x8] - ldrb r1, [r2, 0x9] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x9] - ldr r0, [r3] - ldrb r2, [r4] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r0, [r3] - ldrb r2, [r4] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0x7F - ands r0, r2 - strb r0, [r1, 0x1] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8189AA0 - str r1, [r0] -_0818A02A: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8189D40 - - thumb_func_start sub_818A064 -sub_818A064: @ 818A064 - push {lr} - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 27 - cmp r0, 0 - bge _0818A092 - movs r2, 0x24 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _0818A092 - bl sub_818A514 -_0818A092: - pop {r0} - bx r0 - .pool - thumb_func_end sub_818A064 - - thumb_func_start sub_818A0A4 -sub_818A0A4: @ 818A0A4 - push {r4-r6,lr} - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - ldr r6, =gUnknown_03005D70 - adds r1, r0, r6 - ldrb r1, [r1] - movs r2, 0 - movs r3, 0 - bl sub_8074AA0 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r5] - adds r0, r6 - ldrb r0, [r0] - bl sub_80729D0 - lsls r4, 16 - asrs r1, r4, 16 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0818A0EC - ldrb r0, [r5] - adds r0, r6 - ldrb r0, [r0] - movs r2, 0 - bl heathbar_draw_hp - b _0818A106 - .pool -_0818A0EC: - ldr r2, =gUnknown_0202406E - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, =gPlayerParty - adds r0, r2 - bl sub_805E990 - bl sub_818A514 -_0818A106: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818A0A4 - - thumb_func_start sub_818A114 -sub_818A114: @ 818A114 - push {r4-r6,lr} - ldr r6, =gUnknown_02020630 - ldr r5, =gUnknown_020241E4 - ldr r4, =gUnknown_02024064 - ldrb r2, [r4] - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r3, 0x22 - ldrsh r1, [r0, r3] - movs r3, 0x26 - ldrsh r0, [r0, r3] - adds r1, r0 - cmp r1, 0xA0 - ble _0818A190 - ldr r1, =gUnknown_0202406E - lsls r0, r2, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl nullsub_24 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl rotscale_free_entry - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl RemoveObjectAndFreeTiles - ldr r1, =gUnknown_03005D70 - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - bl sub_8072984 - bl sub_818A514 -_0818A190: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818A114 - - thumb_func_start sub_818A1B0 -sub_818A1B0: @ 818A1B0 - push {r4-r6,lr} - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r6, =gUnknown_02024064 - ldrb r2, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0818A204 - ldr r5, =gUnknown_020241E4 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - bl obj_free_rotscale_entry - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl RemoveObjectAndFreeTiles - ldr r1, =gUnknown_03005D70 - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl sub_8072984 - bl sub_818A514 -_0818A204: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818A1B0 - - thumb_func_start sub_818A220 -sub_818A220: @ 818A220 - push {lr} - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _0818A232 - bl sub_818A514 -_0818A232: - pop {r0} - bx r0 - thumb_func_end sub_818A220 - - thumb_func_start sub_818A238 -sub_818A238: @ 818A238 - push {r4,lr} - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - ldr r2, =gUnknown_02020630 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x20 - bne _0818A284 - movs r3, 0 - movs r0, 0 - strh r0, [r4, 0x30] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - subs r0, 0x5 - ands r0, r1 - strb r0, [r2] - ldr r0, =gUnknown_020244B9 - strb r3, [r0] - bl sub_818A514 - b _0818A2AE - .pool -_0818A284: - ldrh r0, [r4, 0x30] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _0818A2A8 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_0818A2A8: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] -_0818A2AE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_818A238 - - thumb_func_start sub_818A2B4 -sub_818A2B4: @ 818A2B4 - push {r4,lr} - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_03005D70 - ldr r4, =gUnknown_02024064 - ldrb r3, [r4] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _0818A306 - adds r0, r3, 0 - bl sub_805E408 - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldrb r2, [r4] - ldr r1, [r0] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0818A2FA - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x6 - bl move_anim_start_t4 -_0818A2FA: - ldr r0, =gUnknown_03005D60 - ldrb r1, [r4] - lsls r1, 2 - adds r1, r0 - ldr r0, =sub_818A328 - str r0, [r1] -_0818A306: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818A2B4 - - thumb_func_start sub_818A328 -sub_818A328: @ 818A328 - push {lr} - ldr r0, =gUnknown_020244D0 - ldr r1, [r0] - ldr r0, =gUnknown_02024064 - ldrb r3, [r0] - ldr r1, [r1, 0x4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0818A364 - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _0818A364 - bl sub_818A514 -_0818A364: - pop {r0} - bx r0 - .pool - thumb_func_end sub_818A328 - - thumb_func_start sub_818A37C -sub_818A37C: @ 818A37C - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r3, =gUnknown_020244D0 - ldr r0, [r3] - ldr r7, =gUnknown_02024064 - ldrb r1, [r7] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r2, r0, r2 - ldrb r1, [r2, 0x1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0818A438 - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - ldr r0, [r3] - ldrb r2, [r7] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r4, =0x000027f9 - adds r0, r4, 0 - bl FreeObjectTilesByTag - adds r0, r4, 0 - bl FreeObjectPaletteByTag - ldr r0, =c3_0802FDF4 - movs r1, 0xA - bl CreateTask - ldr r0, =gUnknown_0202406E - mov r8, r0 - ldrb r1, [r7] - lsls r0, r1, 1 - add r0, r8 - ldrh r0, [r0] - movs r6, 0x64 - muls r0, r6 - ldr r5, =gPlayerParty - adds r0, r5 - bl sub_805E990 - ldr r1, =gUnknown_020241E4 - ldrb r0, [r7] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - movs r1, 0 - bl StartObjectImageAnim - ldr r4, =gUnknown_03005D70 - ldrb r1, [r7] - adds r0, r1, r4 - ldrb r0, [r0] - lsls r1, 1 - add r1, r8 - ldrh r1, [r1] - muls r1, r6 - adds r1, r5 - movs r2, 0 - bl healthbar_draw_field_maybe - ldrb r0, [r7] - bl sub_8076918 - ldrb r0, [r7] - adds r0, r4 - ldrb r0, [r0] - bl sub_80729D0 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_818A2B4 - str r1, [r0] -_0818A438: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818A37C - - thumb_func_start sub_818A470 -sub_818A470: @ 818A470 - push {r4-r6,lr} - ldr r6, =gUnknown_020244D0 - ldr r0, [r6] - ldr r4, =gUnknown_02024064 - ldrb r2, [r4] - ldr r1, [r0, 0x4] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x88 - ands r0, r1 - cmp r0, 0 - bne _0818A4A2 - ldr r0, =gUnknown_0202406E - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8172EF0 -_0818A4A2: - ldr r5, =gUnknown_02020630 - ldr r0, =gUnknown_03005D7C - ldrb r2, [r4] - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r3, r0, 2 - adds r0, r5, 0 - adds r0, 0x1C - adds r0, r3, r0 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _0818A4E8 - ldr r0, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _0818A4E8 - adds r0, r3, r5 - bl RemoveObjectAndFreeTiles - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_818A37C - str r1, [r0] -_0818A4E8: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818A470 - - thumb_func_start sub_818A514 -sub_818A514: @ 818A514 - push {r4,lr} - sub sp, 0x4 - ldr r1, =gUnknown_03005D60 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8189968 - str r1, [r0] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0818A568 - bl link_get_multiplayer_id - mov r1, sp - strb r0, [r1] - movs r0, 0x2 - movs r1, 0x4 - mov r2, sp - bl dp01_prepare_buffer_wireless_probably - ldr r1, =gUnknown_02023064 - ldrb r0, [r4] - lsls r0, 9 - adds r0, r1 - movs r1, 0x38 - strb r1, [r0] - b _0818A57A - .pool -_0818A568: - ldr r2, =gUnknown_02024068 - ldr r1, =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldr r0, [r2] - bics r0, r1 - str r0, [r2] -_0818A57A: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818A514 - - thumb_func_start sub_818A58C -sub_818A58C: @ 818A58C - push {lr} - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _0818A5AE - bl sub_818A514 -_0818A5AE: - pop {r0} - bx r0 - .pool - thumb_func_end sub_818A58C - - thumb_func_start sub_818A5BC -sub_818A5BC: @ 818A5BC - push {lr} - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _0818A5DE - bl sub_818A514 -_0818A5DE: - pop {r0} - bx r0 - .pool - thumb_func_end sub_818A5BC - - thumb_func_start sub_818A5EC -sub_818A5EC: @ 818A5EC - push {r4-r6,lr} - sub sp, 0x100 - movs r6, 0 - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - bne _0818A624 - ldr r0, =gUnknown_0202406E - lsls r1, r2, 1 - adds r1, r0 - ldrb r0, [r1] - mov r1, sp - bl sub_818A660 - adds r6, r0, 0 - b _0818A646 - .pool -_0818A624: - ldrb r4, [r1] - movs r5, 0 -_0818A628: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _0818A63E - lsls r0, r5, 24 - lsrs r0, 24 - mov r2, sp - adds r1, r2, r6 - bl sub_818A660 - adds r6, r0 -_0818A63E: - lsrs r4, 1 - adds r5, 0x1 - cmp r5, 0x5 - ble _0818A628 -_0818A646: - lsls r1, r6, 16 - lsrs r1, 16 - movs r0, 0x1 - mov r2, sp - bl dp01_build_cmdbuf_x1D_1D_numargs_varargs - bl sub_818A514 - add sp, 0x100 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_818A5EC - - thumb_func_start sub_818A660 -sub_818A660: @ 818A660 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x90 - adds r7, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - ldr r2, =gUnknown_02023064 - ldr r3, =gUnknown_02024064 - ldrb r0, [r3] - lsls r0, 9 - adds r1, r2, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3B - bls _0818A68A - bl _0818ADF6 -_0818A68A: - lsls r0, 2 - ldr r1, =_0818A6A0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0818A6A0: - .4byte _0818A790 - .4byte _0818A9B4 - .4byte _0818A9C4 - .4byte _0818A9D4 - .4byte _0818AA3C - .4byte _0818AA3C - .4byte _0818AA3C - .4byte _0818AA3C - .4byte _0818AA58 - .4byte _0818AA94 - .4byte _0818AA94 - .4byte _0818AA94 - .4byte _0818AA94 - .4byte _0818ADF6 - .4byte _0818ADF6 - .4byte _0818ADF6 - .4byte _0818ADF6 - .4byte _0818AAB0 - .4byte _0818AAC0 - .4byte _0818AAF0 - .4byte _0818AB00 - .4byte _0818AB10 - .4byte _0818AB20 - .4byte _0818AB30 - .4byte _0818AB40 - .4byte _0818AB50 - .4byte _0818AB60 - .4byte _0818AB70 - .4byte _0818AB80 - .4byte _0818AB90 - .4byte _0818ABA0 - .4byte _0818ABB0 - .4byte _0818AC00 - .4byte _0818AC10 - .4byte _0818AC20 - .4byte _0818AC30 - .4byte _0818AC40 - .4byte _0818AC50 - .4byte _0818AC60 - .4byte _0818AC70 - .4byte _0818AC80 - .4byte _0818ACB4 - .4byte _0818ACC4 - .4byte _0818ACD4 - .4byte _0818ACE4 - .4byte _0818ACF4 - .4byte _0818AD04 - .4byte _0818AD14 - .4byte _0818AD24 - .4byte _0818AD44 - .4byte _0818AD54 - .4byte _0818AD64 - .4byte _0818AD74 - .4byte _0818AD84 - .4byte _0818AD94 - .4byte _0818ADA4 - .4byte _0818ADB4 - .4byte _0818ADC4 - .4byte _0818ADD4 - .4byte _0818ADE4 -_0818A790: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - mov r1, sp - strh r0, [r1] - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2E] - movs r6, 0 - add r0, sp, 0x24 - mov r9, r0 - movs r1, 0x3B - add r1, sp - mov r10, r1 - mov r2, sp - adds r2, 0x2B - str r2, [sp, 0x80] - mov r0, sp - adds r0, 0x2A - str r0, [sp, 0x7C] - mov r1, sp - adds r1, 0x68 - str r1, [sp, 0x8C] - adds r2, 0x5 - str r2, [sp, 0x84] - adds r0, 0x12 - str r0, [sp, 0x88] - mov r8, r4 - add r4, sp, 0xC -_0818A7DC: - adds r1, r6, 0 - adds r1, 0xD - mov r0, r8 - bl GetMonData - strh r0, [r4] - adds r1, r6, 0 - adds r1, 0x11 - mov r0, r8 - bl GetMonData - mov r2, r9 - adds r1, r2, r6 - strb r0, [r1] - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _0818A7DC - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x15 - bl GetMonData - mov r1, r10 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - ldr r2, [sp, 0x80] - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x19 - bl GetMonData - str r0, [sp, 0x44] - adds r0, r4, 0 - movs r1, 0x27 - bl GetMonData - mov r3, sp - movs r5, 0x1F - ands r0, r5 - ldrb r2, [r3, 0x14] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x14] - adds r0, r4, 0 - movs r1, 0x28 - bl GetMonData - mov r3, sp - movs r6, 0x1F - ands r0, r6 - lsls r0, 5 - ldrh r2, [r3, 0x14] - ldr r1, =0xfffffc1f - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x14] - adds r0, r4, 0 - movs r1, 0x29 - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, 2 - ldrb r2, [r3, 0x15] - movs r1, 0x7D - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x15] - adds r0, r4, 0 - movs r1, 0x2A - bl GetMonData - movs r1, 0x1F - ands r1, r0 - lsls r1, 15 - ldr r0, [sp, 0x14] - ldr r2, =0xfff07fff - ands r0, r2 - orrs r0, r1 - str r0, [sp, 0x14] - adds r0, r4, 0 - movs r1, 0x2B - bl GetMonData - mov r3, sp - ands r0, r6 - lsls r0, 4 - ldrh r2, [r3, 0x16] - ldr r1, =0xfffffe0f - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x16] - adds r0, r4, 0 - movs r1, 0x2C - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, 1 - ldrb r2, [r3, 0x17] - movs r1, 0x3F - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - str r0, [sp, 0x48] - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - str r0, [sp, 0x4C] - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - ldr r1, [sp, 0x7C] - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - mov r1, sp - strh r0, [r1, 0x28] - adds r0, r4, 0 - movs r1, 0x3A - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2C] - adds r0, r4, 0 - movs r1, 0x3B - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2] - adds r0, r4, 0 - movs r1, 0x3C - bl GetMonData - mov r1, sp - strh r0, [r1, 0x4] - adds r0, r4, 0 - movs r1, 0x3D - bl GetMonData - mov r1, sp - strh r0, [r1, 0x6] - adds r0, r4, 0 - movs r1, 0x3E - bl GetMonData - mov r1, sp - strh r0, [r1, 0x8] - adds r0, r4, 0 - movs r1, 0x3F - bl GetMonData - mov r1, sp - strh r0, [r1, 0xA] - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - mov r3, sp - movs r1, 0x1 - ands r0, r1 - lsls r0, 6 - ldrb r2, [r3, 0x17] - movs r1, 0x41 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0x2E - bl GetMonData - mov r3, sp - lsls r0, 7 - ldrb r2, [r3, 0x17] - movs r1, 0x7F - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - str r0, [sp, 0x54] - adds r0, r4, 0 - movs r1, 0x2 - ldr r2, [sp, 0x8C] - bl GetMonData - ldr r0, [sp, 0x84] - ldr r1, [sp, 0x8C] - bl StringCopy10 - adds r0, r4, 0 - movs r1, 0x7 - ldr r2, [sp, 0x88] - bl GetMonData - mov r2, sp - movs r6, 0 -_0818A994: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, 0x1 - cmp r6, 0x57 - bls _0818A994 - b _0818ADF6 - .pool -_0818A9B4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - b _0818AD2E - .pool -_0818A9C4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xC - b _0818AD2E - .pool -_0818A9D4: - movs r6, 0 - add r2, sp, 0x58 - mov r9, r2 - add r0, sp, 0x60 - mov r10, r0 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - mov r8, r9 -_0818A9EA: - adds r1, r6, 0 - adds r1, 0xD - adds r0, r4, 0 - bl GetMonData - mov r1, r8 - strh r0, [r1] - adds r1, r6, 0 - adds r1, 0x11 - adds r0, r4, 0 - bl GetMonData - mov r2, r10 - adds r1, r2, r6 - strb r0, [r1] - movs r0, 0x2 - add r8, r0 - adds r6, 0x1 - cmp r6, 0x3 - ble _0818A9EA - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x15 - bl GetMonData - mov r1, r9 - strb r0, [r1, 0xC] - mov r2, r9 - movs r6, 0 -_0818AA28: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, 0x1 - cmp r6, 0xF - bls _0818AA28 - b _0818ADF6 - .pool -_0818AA3C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldrb r1, [r3] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r1, 0x9 - b _0818AD2E - .pool -_0818AA58: - movs r6, 0 - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r2, =gPlayerParty - mov r8, r2 -_0818AA64: - adds r1, r6, 0 - adds r1, 0x11 - mov r2, r8 - adds r0, r4, r2 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, 0x1 - cmp r6, 0x3 - ble _0818AA64 - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x15 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, 0x1 - b _0818ADF6 - .pool -_0818AA94: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldrb r1, [r3] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r1, 0x8 - b _0818ADEE - .pool -_0818AAB0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1 - b _0818AACA - .pool -_0818AAC0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x19 -_0818AACA: - bl GetMonData - adds r1, r0, 0 - strb r1, [r7] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r7, 0x2] - movs r6, 0x3 - b _0818ADF6 - .pool -_0818AAF0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1A - b _0818ADEE - .pool -_0818AB00: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1B - b _0818ADEE - .pool -_0818AB10: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1C - b _0818ADEE - .pool -_0818AB20: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1D - b _0818ADEE - .pool -_0818AB30: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1E - b _0818ADEE - .pool -_0818AB40: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1F - b _0818ADEE - .pool -_0818AB50: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x20 - b _0818ADEE - .pool -_0818AB60: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x22 - b _0818ADEE - .pool -_0818AB70: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x23 - b _0818ADEE - .pool -_0818AB80: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x24 - b _0818ADEE - .pool -_0818AB90: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x25 - b _0818ADEE - .pool -_0818ABA0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x26 - b _0818ADEE - .pool -_0818ABB0: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x27 - bl GetMonData - strb r0, [r7] - adds r0, r4, 0 - movs r1, 0x28 - bl GetMonData - strb r0, [r7, 0x1] - adds r0, r4, 0 - movs r1, 0x29 - bl GetMonData - strb r0, [r7, 0x2] - adds r0, r4, 0 - movs r1, 0x2A - bl GetMonData - strb r0, [r7, 0x3] - adds r0, r4, 0 - movs r1, 0x2B - bl GetMonData - strb r0, [r7, 0x4] - adds r0, r4, 0 - movs r1, 0x2C - bl GetMonData - strb r0, [r7, 0x5] - movs r6, 0x6 - b _0818ADF6 - .pool -_0818AC00: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x27 - b _0818ADEE - .pool -_0818AC10: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x28 - b _0818ADEE - .pool -_0818AC20: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x29 - b _0818ADEE - .pool -_0818AC30: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2A - b _0818ADEE - .pool -_0818AC40: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2B - b _0818ADEE - .pool -_0818AC50: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2C - b _0818ADEE - .pool -_0818AC60: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0 - b _0818AC8A - .pool -_0818AC70: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x9 - b _0818AD2E - .pool -_0818AC80: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x37 -_0818AC8A: - bl GetMonData - adds r1, r0, 0 - strb r1, [r7] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r7, 0x2] - lsrs r0, r1, 24 - strb r0, [r7, 0x3] - movs r6, 0x4 - b _0818ADF6 - .pool -_0818ACB4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x38 - b _0818ADEE - .pool -_0818ACC4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x39 - b _0818AD2E - .pool -_0818ACD4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3A - b _0818AD2E - .pool -_0818ACE4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3B - b _0818AD2E - .pool -_0818ACF4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3C - b _0818AD2E - .pool -_0818AD04: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3D - b _0818AD2E - .pool -_0818AD14: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3E - b _0818AD2E - .pool -_0818AD24: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3F -_0818AD2E: - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - strb r0, [r7] - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r6, 0x2 - b _0818ADF6 - .pool -_0818AD44: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x16 - b _0818ADEE - .pool -_0818AD54: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x17 - b _0818ADEE - .pool -_0818AD64: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x18 - b _0818ADEE - .pool -_0818AD74: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x21 - b _0818ADEE - .pool -_0818AD84: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2F - b _0818ADEE - .pool -_0818AD94: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x30 - b _0818ADEE - .pool -_0818ADA4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x32 - b _0818ADEE - .pool -_0818ADB4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x33 - b _0818ADEE - .pool -_0818ADC4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x34 - b _0818ADEE - .pool -_0818ADD4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x35 - b _0818ADEE - .pool -_0818ADE4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x36 -_0818ADEE: - bl GetMonData - strb r0, [r7] - movs r6, 0x1 -_0818ADF6: - adds r0, r6, 0 - add sp, 0x90 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818A660 - - thumb_func_start sub_818AE0C -sub_818AE0C: @ 818AE0C - push {lr} - bl sub_818A514 - pop {r0} - bx r0 - thumb_func_end sub_818AE0C - - thumb_func_start sub_818AE18 -sub_818AE18: @ 818AE18 - push {r4,r5,lr} - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - bne _0818AE48 - ldr r0, =gUnknown_0202406E - lsls r1, r2, 1 - adds r1, r0 - ldrb r0, [r1] - bl sub_818AE70 - b _0818AE66 - .pool -_0818AE48: - ldrb r4, [r1] - movs r5, 0 -_0818AE4C: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _0818AE5A - adds r0, r5, 0 - bl sub_818AE70 -_0818AE5A: - lsrs r4, 1 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _0818AE4C -_0818AE66: - bl sub_818A514 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_818AE18 - - thumb_func_start sub_818AE70 -sub_818AE70: @ 818AE70 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x34 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 9 - ldr r2, =gUnknown_02023067 - adds r3, r0, r2 - adds r6, r3, 0 - subs r1, r2, 0x2 - adds r0, r1 - ldrb r0, [r0] - adds r7, r2, 0 - cmp r0, 0x3B - bls _0818AE9C - bl _0818B836 -_0818AE9C: - lsls r0, 2 - ldr r1, =_0818AEB4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0818AEB4: - .4byte _0818AFA4 - .4byte _0818B13C - .4byte _0818B15C - .4byte _0818B17C - .4byte _0818B1D4 - .4byte _0818B1D4 - .4byte _0818B1D4 - .4byte _0818B1D4 - .4byte _0818B1FC - .4byte _0818B260 - .4byte _0818B260 - .4byte _0818B260 - .4byte _0818B260 - .4byte _0818B836 - .4byte _0818B836 - .4byte _0818B836 - .4byte _0818B836 - .4byte _0818B290 - .4byte _0818B2B0 - .4byte _0818B2D0 - .4byte _0818B2F0 - .4byte _0818B310 - .4byte _0818B330 - .4byte _0818B350 - .4byte _0818B370 - .4byte _0818B390 - .4byte _0818B3B0 - .4byte _0818B3D0 - .4byte _0818B3F0 - .4byte _0818B410 - .4byte _0818B430 - .4byte _0818B450 - .4byte _0818B4C0 - .4byte _0818B4E0 - .4byte _0818B500 - .4byte _0818B520 - .4byte _0818B540 - .4byte _0818B560 - .4byte _0818B580 - .4byte _0818B5A0 - .4byte _0818B5C0 - .4byte _0818B5E0 - .4byte _0818B600 - .4byte _0818B620 - .4byte _0818B640 - .4byte _0818B660 - .4byte _0818B680 - .4byte _0818B6A0 - .4byte _0818B6C0 - .4byte _0818B6E0 - .4byte _0818B700 - .4byte _0818B720 - .4byte _0818B740 - .4byte _0818B760 - .4byte _0818B780 - .4byte _0818B7A0 - .4byte _0818B7C0 - .4byte _0818B7E0 - .4byte _0818B800 - .4byte _0818B820 -_0818AFA4: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - adds r2, r6, 0 - bl pokemon_setattr - adds r2, r6, 0 - adds r2, 0x2E - adds r0, r4, 0 - movs r1, 0xC - bl pokemon_setattr - movs r0, 0 - mov r8, r0 - movs r0, 0x3B - adds r0, r6 - mov r10, r0 - adds r0, r6, 0 - adds r0, 0x2B - str r0, [sp, 0x20] - adds r0, 0x19 - str r0, [sp, 0x28] - adds r0, 0x4 - str r0, [sp, 0x2C] - adds r0, 0x4 - str r0, [sp, 0x30] - subs r0, 0x22 - str r0, [sp, 0x1C] - subs r0, 0x2 - str r0, [sp, 0x18] - adds r0, 0x4 - str r0, [sp, 0x24] - adds r0, r6, 0x2 - str r0, [sp, 0x4] - adds r0, r6, 0x4 - str r0, [sp, 0x8] - adds r0, r6, 0x6 - str r0, [sp, 0xC] - adds r0, 0x2 - str r0, [sp, 0x10] - adds r0, 0x2 - str r0, [sp, 0x14] - mov r9, r4 - adds r7, r6, 0 - adds r7, 0x24 - adds r4, r6, 0 - adds r4, 0xC -_0818B00A: - mov r1, r8 - adds r1, 0xD - mov r0, r9 - adds r2, r4, 0 - bl pokemon_setattr - mov r1, r8 - adds r1, 0x11 - mov r0, r9 - adds r2, r7, 0 - bl pokemon_setattr - adds r7, 0x1 - adds r4, 0x2 - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x3 - ble _0818B00A - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x15 - mov r2, r10 - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x20 - ldr r2, [sp, 0x20] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x19 - ldr r2, [sp, 0x28] - bl pokemon_setattr - ldrb r0, [r6, 0x14] - lsls r0, 27 - lsrs r0, 27 - mov r1, sp - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x27 - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrh r0, [r6, 0x14] - lsls r0, 22 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x28 - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrb r0, [r6, 0x15] - lsls r0, 25 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x29 - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldr r0, [r6, 0x14] - lsls r0, 12 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2A - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrh r0, [r6, 0x16] - lsls r0, 23 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2B - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrb r0, [r6, 0x17] - lsls r0, 26 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2C - mov r2, sp - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0 - ldr r2, [sp, 0x2C] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x37 - ldr r2, [sp, 0x30] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x38 - ldr r2, [sp, 0x1C] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x39 - ldr r2, [sp, 0x18] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3A - ldr r2, [sp, 0x24] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3B - ldr r2, [sp, 0x4] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3C - ldr r2, [sp, 0x8] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3D - ldr r2, [sp, 0xC] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3E - ldr r2, [sp, 0x10] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3F - ldr r2, [sp, 0x14] - bl pokemon_setattr - b _0818B836 - .pool -_0818B13C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0xB - bl pokemon_setattr - b _0818B836 - .pool -_0818B15C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0xC - bl pokemon_setattr - b _0818B836 - .pool -_0818B17C: - movs r0, 0 - mov r8, r0 - movs r0, 0xC - adds r0, r3 - mov r9, r0 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r7, r1, r0 - adds r6, r3, 0 - adds r6, 0x8 - adds r4, r3, 0 -_0818B196: - mov r1, r8 - adds r1, 0xD - adds r0, r7, 0 - adds r2, r4, 0 - bl pokemon_setattr - mov r1, r8 - adds r1, 0x11 - adds r0, r7, 0 - adds r2, r6, 0 - bl pokemon_setattr - adds r6, 0x1 - adds r4, 0x2 - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x3 - ble _0818B196 - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x15 - mov r2, r9 - bl pokemon_setattr - b _0818B836 - .pool -_0818B1D4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r3, =gUnknown_02023064 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, 0x9 - b _0818B278 - .pool -_0818B1FC: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - lsls r2, 9 - adds r2, r7 - adds r0, r4, 0 - movs r1, 0x11 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x1 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x12 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x2 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x13 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x3 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x14 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x4 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x15 - bl pokemon_setattr - b _0818B836 - .pool -_0818B260: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r3, =gUnknown_02023064 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, 0x8 -_0818B278: - adds r3, 0x3 - adds r2, r3 - bl pokemon_setattr - b _0818B836 - .pool -_0818B290: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1 - bl pokemon_setattr - b _0818B836 - .pool -_0818B2B0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x19 - bl pokemon_setattr - b _0818B836 - .pool -_0818B2D0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1A - bl pokemon_setattr - b _0818B836 - .pool -_0818B2F0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1B - bl pokemon_setattr - b _0818B836 - .pool -_0818B310: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1C - bl pokemon_setattr - b _0818B836 - .pool -_0818B330: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1D - bl pokemon_setattr - b _0818B836 - .pool -_0818B350: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1E - bl pokemon_setattr - b _0818B836 - .pool -_0818B370: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1F - bl pokemon_setattr - b _0818B836 - .pool -_0818B390: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x20 - bl pokemon_setattr - b _0818B836 - .pool -_0818B3B0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x22 - bl pokemon_setattr - b _0818B836 - .pool -_0818B3D0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x23 - bl pokemon_setattr - b _0818B836 - .pool -_0818B3F0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x24 - bl pokemon_setattr - b _0818B836 - .pool -_0818B410: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x25 - bl pokemon_setattr - b _0818B836 - .pool -_0818B430: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x26 - bl pokemon_setattr - b _0818B836 - .pool -_0818B450: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - lsls r2, 9 - adds r2, r7 - adds r0, r4, 0 - movs r1, 0x27 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x1 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x28 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x2 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x29 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x3 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x2A - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x4 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x2B - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x5 - adds r2, r0 - adds r0, r4, 0 - b _0818B570 - .pool -_0818B4C0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x27 - bl pokemon_setattr - b _0818B836 - .pool -_0818B4E0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x28 - bl pokemon_setattr - b _0818B836 - .pool -_0818B500: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x29 - bl pokemon_setattr - b _0818B836 - .pool -_0818B520: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x2A - bl pokemon_setattr - b _0818B836 - .pool -_0818B540: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x2B - bl pokemon_setattr - b _0818B836 - .pool -_0818B560: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 -_0818B570: - movs r1, 0x2C - bl pokemon_setattr - b _0818B836 - .pool -_0818B580: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0 - bl pokemon_setattr - b _0818B836 - .pool -_0818B5A0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x9 - bl pokemon_setattr - b _0818B836 - .pool -_0818B5C0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x37 - bl pokemon_setattr - b _0818B836 - .pool -_0818B5E0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x38 - bl pokemon_setattr - b _0818B836 - .pool -_0818B600: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x39 - bl pokemon_setattr - b _0818B836 - .pool -_0818B620: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3A - bl pokemon_setattr - b _0818B836 - .pool -_0818B640: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3B - bl pokemon_setattr - b _0818B836 - .pool -_0818B660: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3C - bl pokemon_setattr - b _0818B836 - .pool -_0818B680: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3D - bl pokemon_setattr - b _0818B836 - .pool -_0818B6A0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3E - bl pokemon_setattr - b _0818B836 - .pool -_0818B6C0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3F - bl pokemon_setattr - b _0818B836 - .pool -_0818B6E0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x16 - bl pokemon_setattr - b _0818B836 - .pool -_0818B700: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x17 - bl pokemon_setattr - b _0818B836 - .pool -_0818B720: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x18 - bl pokemon_setattr - b _0818B836 - .pool -_0818B740: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x21 - bl pokemon_setattr - b _0818B836 - .pool -_0818B760: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x2F - bl pokemon_setattr - b _0818B836 - .pool -_0818B780: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x30 - bl pokemon_setattr - b _0818B836 - .pool -_0818B7A0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x32 - bl pokemon_setattr - b _0818B836 - .pool -_0818B7C0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x33 - bl pokemon_setattr - b _0818B836 - .pool -_0818B7E0: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x34 - bl pokemon_setattr - b _0818B836 - .pool -_0818B800: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x35 - bl pokemon_setattr - b _0818B836 - .pool -_0818B820: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x36 - bl pokemon_setattr -_0818B836: - ldr r2, =gUnknown_0202406E - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, =gPlayerParty - adds r0, r2 - bl sub_805E990 - add sp, 0x34 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818AE70 - - thumb_func_start sub_818B86C -sub_818B86C: @ 818B86C - push {r4-r7,lr} - ldr r1, =gUnknown_0202406E - ldr r7, =gUnknown_02024064 - ldrb r2, [r7] - lsls r0, r2, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - adds r3, r1, 0 - muls r3, r0 - ldr r4, =gUnknown_02023064 - lsls r2, 9 - adds r0, r4, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - ldr r1, =gPlayerParty - adds r0, r1 - adds r5, r3, r0 - movs r3, 0 - adds r0, r4, 0x2 - adds r2, r0 - ldrb r2, [r2] - cmp r3, r2 - bcs _0818B8C4 - adds r6, r4, 0 - adds r2, r7, 0 - adds r4, r0, 0 -_0818B8A2: - adds r1, r5, r3 - ldrb r0, [r2] - lsls r0, 9 - adds r0, 0x3 - adds r0, r3, r0 - adds r0, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r0, [r2] - lsls r0, 9 - adds r0, r4 - ldrb r0, [r0] - cmp r3, r0 - bcc _0818B8A2 -_0818B8C4: - bl sub_818A514 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818B86C - - thumb_func_start sub_818B8E0 -sub_818B8E0: @ 818B8E0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r0, =gUnknown_0202406E - mov r8, r0 - ldr r6, =gUnknown_02024064 - ldrb r1, [r6] - lsls r0, r1, 1 - add r0, r8 - ldrh r0, [r0] - movs r5, 0x64 - muls r0, r5 - ldr r4, =gPlayerParty - adds r0, r4 - bl sub_805DD7C - ldrb r0, [r6] - lsls r0, 1 - add r0, r8 - ldrh r0, [r0] - muls r0, r5 - adds r0, r4 - movs r1, 0xB - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r6] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_806A068 - ldr r0, =gUnknown_0202499C - mov r8, r0 - ldrb r0, [r6] - movs r1, 0x2 - bl sub_80A5C6C - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldrb r0, [r6] - bl sub_80A6138 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r6] - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r8 - adds r1, r5, 0 - adds r2, r4, 0 - bl AddObjectToFront - ldr r4, =gUnknown_020241E4 - ldrb r1, [r6] - adds r1, r4 - strb r0, [r1] - ldr r5, =gUnknown_02020630 - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =0x0000ff10 - strh r1, [r0, 0x24] - ldrb r2, [r6] - adds r0, r2, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x2E] - ldrb r3, [r6] - adds r0, r3, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r2, [r6] - adds r4, r2, r4 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =gUnknown_020244E4 - adds r2, r1 - ldrb r1, [r2] - bl StartObjectImageAnim - ldr r1, =gUnknown_03005D60 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_818A064 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818B8E0 - - thumb_func_start sub_818B9FC -sub_818B9FC: @ 818B9FC - push {r4-r6,lr} - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - ldr r4, =gUnknown_02023064 - lsls r1, r0, 9 - adds r6, r4, 0x2 - adds r1, r6 - ldrb r1, [r1] - bl sub_805EF84 - ldr r2, =gUnknown_0202406E - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r2 - lsls r0, 9 - adds r4, 0x1 - adds r0, r4 - ldrb r0, [r0] - strh r0, [r1] - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, =gPlayerParty - adds r0, r2 - bl sub_805DD7C - ldrb r0, [r5] - lsls r1, r0, 9 - adds r1, r6 - ldrb r1, [r1] - bl sub_818BA6C - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_818A470 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818B9FC - - thumb_func_start sub_818BA6C -sub_818BA6C: @ 818BA6C - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_805EF84 - ldr r0, =gUnknown_0202406E - lsls r2, r6, 1 - adds r2, r0 - ldr r0, =gUnknown_02023064 - lsls r1, r6, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - strh r0, [r2] - ldrh r1, [r2] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - mov r8, r0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r0, =sub_805D714 - bl CreateInvisibleSpriteWithCallback - ldr r1, =gUnknown_03005D7C - mov r9, r1 - add r9, r6 - mov r1, r9 - strb r0, [r1] - adds r0, r6, 0 - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl sub_806A068 - ldr r0, =gUnknown_0202499C - mov r10, r0 - adds r0, r6, 0 - movs r1, 0x2 - bl sub_80A5C6C - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r6, 0 - bl sub_80A6138 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r10 - adds r1, r5, 0 - adds r2, r4, 0 - bl AddObjectToFront - ldr r4, =gUnknown_020241E4 - adds r4, r6, r4 - strb r0, [r4] - ldr r5, =gUnknown_02020630 - mov r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r4] - strh r1, [r0, 0x30] - mov r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x32] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x2E] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r8 - strh r1, [r0, 0x32] - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, r6, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =gUnknown_020244E4 - adds r6, r1 - ldrb r1, [r6] - bl StartObjectImageAnim - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =DummyObjectCallback - str r1, [r0] - movs r0, 0 - movs r1, 0xFF - bl sub_80753E8 - mov r1, r9 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r5 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x2E] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818BA6C - - thumb_func_start sub_818BBE8 -sub_818BBE8: @ 818BBE8 - push {r4-r6,lr} - ldr r1, =gUnknown_02023064 - ldr r6, =gUnknown_02024064 - ldrb r2, [r6] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r3, [r0] - cmp r3, 0 - bne _0818BC30 - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - strb r3, [r0, 0x4] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_818BC78 - str r1, [r0] - b _0818BC66 - .pool -_0818BC30: - ldr r5, =gUnknown_020241E4 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - bl obj_free_rotscale_entry - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl RemoveObjectAndFreeTiles - ldr r1, =gUnknown_03005D70 - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl sub_8072984 - bl sub_818A514 -_0818BC66: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818BBE8 - - thumb_func_start sub_818BC78 -sub_818BC78: @ 818BC78 - push {r4-r6,lr} - ldr r6, =gUnknown_020244D0 - ldr r4, [r6] - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - ldr r1, [r4, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r1 - ldrb r0, [r3, 0x4] - cmp r0, 0 - beq _0818BCA0 - cmp r0, 0x1 - beq _0818BCCE - b _0818BCF6 - .pool -_0818BCA0: - ldr r1, [r4] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0818BCBA - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_0818BCBA: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0, 0x4] - b _0818BCF6 -_0818BCCE: - ldrb r1, [r3] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0818BCF6 - strb r0, [r3, 0x4] - ldrb r2, [r5] - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x1 - bl move_anim_start_t4 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_818A1B0 - str r1, [r0] -_0818BCF6: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818BC78 - - thumb_func_start sub_818BD04 -sub_818BD04: @ 818BD04 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 18 - ands r0, r1 - cmp r0, 0 - beq _0818BD48 - movs r0, 0x40 - ands r1, r0 - cmp r1, 0 - beq _0818BD30 - bl sub_8185F40 - lsls r0, 24 - lsrs r4, r0, 24 - b _0818BD4C - .pool -_0818BD30: - ldr r2, =gUnknown_020229E8 - ldr r0, =gUnknown_0203C7B4 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - b _0818BD4A - .pool -_0818BD48: - ldr r0, =gUnknown_020229E8 -_0818BD4A: - ldrb r4, [r0, 0x13] -_0818BD4C: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r2, 0x40 - ands r1, r2 - adds r5, r0, 0 - cmp r1, 0 - beq _0818BD98 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl battle_get_per_side_status - movs r1, 0x2 - ands r1, r0 - movs r0, 0x20 - mov r9, r0 - cmp r1, 0 - beq _0818BD72 - movs r1, 0x5A - mov r9, r1 -_0818BD72: - ldr r0, [r5] - movs r1, 0x80 - lsls r1, 15 - ands r0, r1 - cmp r0, 0 - beq _0818BD9C - movs r0, 0x5A - mov r9, r0 - ldr r1, =gUnknown_083054E0 - b _0818BD9E - .pool -_0818BD98: - movs r0, 0x50 - mov r9, r0 -_0818BD9C: - ldr r1, =gUnknown_08305D2C -_0818BD9E: - lsls r0, r4, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x8 - subs r0, r1 - lsls r0, 18 - movs r1, 0xA0 - lsls r1, 15 - adds r0, r1 - lsrs r7, r0, 16 - ldr r0, [r5] - movs r1, 0x80 - lsls r1, 15 - ands r0, r1 - cmp r0, 0 - bne _0818BDC0 - b _0818BEDC -_0818BDC0: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - bl sub_806F000 - lsls r0, 16 - lsrs r4, r0, 16 - adds r5, r4, 0 - ldr r6, =gUnknown_02024064 - ldrb r1, [r6] - adds r0, r5, 0 - bl sub_805DF38 - ldrb r0, [r6] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl sub_806A1C0 - ldr r0, =gUnknown_0202499C - mov r8, r0 - lsls r4, r7, 16 - asrs r4, 16 - ldrb r0, [r6] - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r8 - mov r1, r9 - adds r2, r4, 0 - bl AddObjectToFront - ldr r4, =gUnknown_020241E4 - ldrb r1, [r6] - adds r1, r4 - strb r0, [r1] - ldr r0, =gTrainerFrontPicPaletteTable - lsls r5, 3 - adds r5, r0 - ldrh r0, [r5, 0x4] - bl IndexOfObjectPaletteTag - ldr r5, =gUnknown_02020630 - ldrb r1, [r6] - adds r1, r4 - ldrb r1, [r1] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r5 - lsls r0, 4 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - orrs r1, r0 - strb r1, [r2, 0x5] - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0xF0 - strh r1, [r0, 0x24] - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x30 - strh r1, [r0, 0x26] - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =0x0000fffe - strh r1, [r0, 0x2E] - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_805D7AC - str r1, [r0] - ldrb r0, [r6] - adds r0, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r2, [r1, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3F - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - b _0818BF72 - .pool -_0818BEDC: - ldr r5, =gUnknown_02024064 - ldrb r1, [r5] - adds r0, r4, 0 - bl sub_805DF84 - ldrb r0, [r5] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl template_build_for_pokemon_or_trainer - ldr r6, =gUnknown_0202499C - mov r8, r9 - lsls r4, r7, 16 - asrs r4, 16 - ldrb r0, [r5] - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r6, 0 - mov r1, r8 - adds r2, r4, 0 - bl AddObjectToFront - ldr r6, =gUnknown_020241E4 - ldrb r1, [r5] - adds r1, r6 - strb r0, [r1] - ldr r4, =gUnknown_02020630 - ldrb r3, [r5] - adds r0, r3, r6 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xF0 - strh r1, [r0, 0x24] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =0x0000fffe - strh r1, [r0, 0x2E] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, =sub_805D7AC - str r1, [r0] -_0818BF72: - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_81899B8 - str r1, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818BD04 - - thumb_func_start sub_818BFAC -sub_818BFAC: @ 818BFAC - push {lr} - bl sub_818A514 - pop {r0} - bx r0 - thumb_func_end sub_818BFAC - - thumb_func_start sub_818BFB8 -sub_818BFB8: @ 818BFB8 - push {r4-r6,lr} - ldr r6, =gUnknown_020241E4 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, =gUnknown_02020630 - adds r0, r5 - bl oamt_add_pos2_onto_pos1 - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x23 - strh r1, [r0, 0x2E] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =0x0000ffd8 - strh r1, [r0, 0x32] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r0, 0x22] - strh r1, [r0, 0x36] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_80A6EEC - str r1, [r0] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =DummyObjectCallback - bl oamt_set_x3A_32 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_81899F0 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818BFB8 - - thumb_func_start sub_818C064 -sub_818C064: @ 818C064 - push {r4-r6,lr} - ldr r6, =gUnknown_020244D0 - ldr r4, [r6] - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - ldr r0, [r4, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r3, r1, r0 - ldrb r0, [r3, 0x4] - cmp r0, 0 - bne _0818C0B8 - ldr r1, [r4] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0818C098 - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_0818C098: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x4] - adds r1, 0x1 - strb r1, [r0, 0x4] - b _0818C12E - .pool -_0818C0B8: - ldrb r1, [r3] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _0818C12E - strb r4, [r3, 0x4] - ldr r2, =gUnknown_0202406E - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, =gPlayerParty - adds r0, r2 - bl sub_805E990 - movs r1, 0x40 - negs r1, r1 - movs r0, 0x10 - bl audio_play_and_stuff - ldr r2, =gUnknown_02020630 - ldr r3, =gUnknown_020241E4 - ldrb r0, [r5] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r4, [r0, 0x30] - ldrb r0, [r5] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x5 - strh r1, [r0, 0x32] - ldrb r0, [r5] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, =sub_8039C00 - str r1, [r0] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_818A114 - str r1, [r0] -_0818C12E: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818C064 - - thumb_func_start sub_818C150 -sub_818C150: @ 818C150 - push {lr} - bl sub_818A514 - pop {r0} - bx r0 - thumb_func_end sub_818C150 - - thumb_func_start sub_818C15C -sub_818C15C: @ 818C15C - push {lr} - bl sub_818A514 - pop {r0} - bx r0 - thumb_func_end sub_818C15C - - thumb_func_start sub_818C168 -sub_818C168: @ 818C168 - push {lr} - bl sub_818A514 - pop {r0} - bx r0 - thumb_func_end sub_818C168 - - thumb_func_start sub_818C174 -sub_818C174: @ 818C174 - push {lr} - bl sub_818A514 - pop {r0} - bx r0 - thumb_func_end sub_818C174 - - thumb_func_start sub_818C180 -sub_818C180: @ 818C180 - push {r4-r6,lr} - ldr r6, =gUnknown_02024064 - ldrb r0, [r6] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - beq _0818C192 - b _0818C2A6 -_0818C192: - ldr r0, =gUnknown_02023064 - mov r12, r0 - ldrb r2, [r6] - lsls r2, 9 - adds r0, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - mov r1, r12 - adds r1, 0x2 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - ldr r5, =gUnknown_02038432 - mov r1, r12 - adds r1, 0x3 - adds r2, r1 - ldrb r1, [r2] - strb r1, [r5] - ldr r4, =gUnknown_02038408 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x4 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0x5 - adds r2, r1 - ldrb r1, [r2] - lsls r1, 8 - orrs r3, r1 - strh r3, [r4] - ldr r4, =gUnknown_02038404 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x6 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0x7 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r3, r1 - mov r1, r12 - adds r1, 0x8 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 16 - orrs r3, r1 - mov r1, r12 - adds r1, 0x9 - adds r2, r1 - ldrb r1, [r2] - lsls r1, 24 - orrs r3, r1 - str r3, [r4] - ldr r3, =gUnknown_0203841A - ldrb r1, [r6] - lsls r1, 9 - mov r2, r12 - adds r2, 0xA - adds r1, r2 - ldrb r1, [r1] - strb r1, [r3] - ldr r4, =gUnknown_0203841C - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0xC - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0xD - adds r2, r1 - ldrb r1, [r2] - lsls r1, 8 - orrs r3, r1 - strh r3, [r4] - ldr r3, =gUnknown_02038400 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x10 - adds r2, r1 - str r2, [r3] - ldr r3, =gUnknown_020244BC - ldrb r1, [r6] - lsls r1, 2 - adds r1, r3 - ldr r2, [r2] - str r2, [r1] - ldrb r1, [r5] - bl sub_805DB8C - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _0818C288 - bl sub_818A514 - b _0818C2A6 - .pool -_0818C288: - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strb r3, [r0, 0x4] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_move_anim_2 - str r1, [r0] -_0818C2A6: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818C180 - - thumb_func_start bx_move_anim_2 -bx_move_anim_2: @ 818C2B8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r2, =gUnknown_02023064 - ldr r6, =gUnknown_02024064 - ldrb r3, [r6] - lsls r1, r3, 9 - adds r0, r2, 0x1 - mov r10, r0 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, r2, 0x2 - mov r9, r5 - adds r0, r1, r5 - ldrb r0, [r0] - lsls r0, 8 - orrs r4, r0 - adds r2, 0xB - adds r1, r2 - ldrb r1, [r1] - mov r8, r1 - ldr r7, =gUnknown_020244D0 - ldr r5, [r7] - ldr r1, [r5, 0x4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x4] - cmp r2, 0x1 - beq _0818C350 - cmp r2, 0x1 - bgt _0818C310 - cmp r2, 0 - beq _0818C31A - b _0818C42C - .pool -_0818C310: - cmp r2, 0x2 - beq _0818C37A - cmp r2, 0x3 - beq _0818C3F0 - b _0818C42C -_0818C31A: - ldr r1, [r5] - lsls r0, r3, 2 - adds r1, r0, r1 - ldrb r2, [r1] - movs r0, 0xC - ands r0, r2 - cmp r0, 0x4 - bne _0818C33C - movs r0, 0x8 - orrs r0, r2 - strb r0, [r1] - ldrb r2, [r6] - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_0818C33C: - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0, 0x4] - b _0818C42C -_0818C350: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0818C42C - movs r0, 0 - bl sub_805EB9C - adds r0, r4, 0 - bl move_anim_start_t1 - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2 - strb r1, [r0, 0x4] - b _0818C42C -_0818C37A: - ldr r0, =gUnknown_020383F8 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, =gUnknown_020383FD - ldrb r0, [r0] - cmp r0, 0 - bne _0818C42C - movs r0, 0x1 - bl sub_805EB9C - ldr r0, [r7] - ldrb r2, [r6] - ldr r1, [r0] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0818C3C8 - mov r0, r8 - cmp r0, 0x1 - bhi _0818C3C8 - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x6 - bl move_anim_start_t4 - ldr r0, [r7] - ldrb r1, [r6] - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - strb r0, [r1] -_0818C3C8: - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - strb r1, [r0, 0x4] - b _0818C42C - .pool -_0818C3F0: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _0818C42C - bl sub_805E394 - ldrb r0, [r6] - lsls r2, r0, 9 - mov r3, r10 - adds r1, r2, r3 - ldrb r1, [r1] - add r2, r9 - ldrb r2, [r2] - lsls r2, 8 - orrs r1, r2 - bl sub_805E94C - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strb r4, [r0, 0x4] - bl sub_818A514 -_0818C42C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end bx_move_anim_2 - - thumb_func_start sub_818C43C -sub_818C43C: @ 818C43C - push {r4,lr} - ldr r0, =gUnknown_02022E14 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_02022E16 - strh r1, [r0] - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - lsls r0, 9 - ldr r1, =gUnknown_02023066 - adds r0, r1 - ldrh r0, [r0] - bl battle_pick_message - ldr r0, =gUnknown_02022E2C - movs r1, 0 - bl battle_show_message_maybe - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_818A220 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818C43C - - thumb_func_start sub_818C490 -sub_818C490: @ 818C490 - push {lr} - bl sub_818A514 - pop {r0} - bx r0 - thumb_func_end sub_818C490 - - thumb_func_start sub_818C49C -sub_818C49C: @ 818C49C - push {lr} - ldr r1, =gUnknown_02024332 - ldr r0, =gUnknown_0202406C - ldrb r0, [r0] - ldrb r1, [r1, 0x4] - lsrs r0, 1 - cmp r1, r0 - bcc _0818C4C6 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl sub_8185054 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x1 - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb - bl sub_818A514 -_0818C4C6: - pop {r0} - bx r0 - .pool - thumb_func_end sub_818C49C - - thumb_func_start sub_818C4D8 -sub_818C4D8: @ 818C4D8 - push {lr} - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 10 - ands r0, r1 - cmp r0, 0 - beq _0818C508 - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_818C49C - str r1, [r0] - b _0818C522 - .pool -_0818C508: - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - bl sub_8185054 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x1 - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb - bl sub_818A514 -_0818C522: - pop {r0} - bx r0 - .pool - thumb_func_end sub_818C4D8 - - thumb_func_start sub_818C52C -sub_818C52C: @ 818C52C - push {lr} - bl sub_818A514 - pop {r0} - bx r0 - thumb_func_end sub_818C52C - - thumb_func_start sub_818C538 -sub_818C538: @ 818C538 - push {r4,r5,lr} - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 10 - ands r0, r1 - cmp r0, 0 - beq _0818C560 - bl sub_805D19C - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - movs r0, 0x1 - movs r1, 0xA - bl dp01_build_cmdbuf_x21_a_bb - b _0818C584 - .pool -_0818C560: - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - bl sub_8185054 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r5] - bl sub_8185054 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 16 - orrs r2, r4 - movs r0, 0x1 - movs r1, 0xA - bl dp01_build_cmdbuf_x21_a_bb -_0818C584: - bl sub_818A514 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818C538 - - thumb_func_start sub_818C594 -sub_818C594: @ 818C594 - push {lr} - bl sub_818A514 - pop {r0} - bx r0 - thumb_func_end sub_818C594 - - thumb_func_start sub_818C5A0 -sub_818C5A0: @ 818C5A0 - push {r4,lr} - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - bl sub_8185054 - ldrb r1, [r4] - ldr r3, =gUnknown_0202449C - ldr r2, [r3] - adds r1, r2 - adds r1, 0x5C - strb r0, [r1] - ldrb r0, [r4] - ldr r1, [r3] - adds r0, r1 - adds r0, 0x5C - ldrb r1, [r0] - movs r0, 0x1 - movs r2, 0 - bl dp01_build_cmdbuf_x22_a_three_bytes - bl sub_818A514 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818C5A0 - - thumb_func_start sub_818C5DC -sub_818C5DC: @ 818C5DC - push {lr} - bl sub_818A514 - pop {r0} - bx r0 - thumb_func_end sub_818C5DC - - thumb_func_start sub_818C5E8 -sub_818C5E8: @ 818C5E8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - movs r0, 0 - bl load_gfxc_health_bar - ldr r3, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - mov r9, r0 - ldrb r4, [r0] - lsls r2, r4, 9 - adds r0, r3, 0x2 - adds r0, r2, r0 - ldrb r1, [r0] - adds r3, 0x3 - adds r2, r3 - ldrb r0, [r2] - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - asrs r7, r1, 16 - ldr r0, =0x00007fff - cmp r7, r0 - beq _0818C678 - ldr r6, =gUnknown_0202406E - lsls r0, r4, 1 - adds r0, r6 - ldrh r0, [r0] - movs r5, 0x64 - muls r0, r5 - ldr r4, =gPlayerParty - adds r0, r4 - movs r1, 0x3A - bl GetMonData - mov r8, r0 - mov r1, r9 - ldrb r0, [r1] - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - muls r0, r5 - adds r0, r4 - movs r1, 0x39 - bl GetMonData - adds r3, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r1, =gUnknown_03005D70 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - mov r2, r8 - bl sub_807294C - b _0818C6B2 - .pool -_0818C678: - ldr r1, =gUnknown_0202406E - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3A - bl GetMonData - adds r2, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r4, =gUnknown_03005D70 - adds r1, r0, r4 - ldrb r1, [r1] - str r7, [sp] - movs r3, 0 - bl sub_807294C - mov r1, r9 - ldrb r0, [r1] - adds r0, r4 - ldrb r0, [r0] - movs r1, 0 - movs r2, 0 - bl heathbar_draw_hp -_0818C6B2: - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_818A0A4 - str r1, [r0] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818C5E8 - - thumb_func_start sub_818C6E8 -sub_818C6E8: @ 818C6E8 - push {lr} - bl sub_818A514 - pop {r0} - bx r0 - thumb_func_end sub_818C6E8 - - thumb_func_start sub_818C6F4 -sub_818C6F4: @ 818C6F4 - push {r4,lr} - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _0818C748 - ldr r0, =gUnknown_03005D70 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, =gUnknown_0202406E - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gPlayerParty - adds r1, r2 - movs r2, 0x9 - bl healthbar_draw_field_maybe - ldrb r2, [r4] - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_818A58C - str r1, [r0] -_0818C748: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818C6F4 - - thumb_func_start sub_818C76C -sub_818C76C: @ 818C76C - push {r4,r5,lr} - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _0818C7BC - ldr r4, =gUnknown_02023064 - ldrb r3, [r5] - lsls r3, 9 - adds r0, r4, 0x1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, 0x2 - adds r1, r3, r1 - ldrb r1, [r1] - adds r2, r4, 0x3 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, 8 - orrs r1, r2 - adds r2, r4, 0x4 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, 16 - orrs r1, r2 - adds r4, 0x5 - adds r3, r4 - ldrb r2, [r3] - lsls r2, 24 - orrs r1, r2 - bl move_anim_start_t2_for_situation - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_818A58C - str r1, [r0] -_0818C7BC: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818C76C - - thumb_func_start sub_818C7D4 -sub_818C7D4: @ 818C7D4 - push {lr} - bl sub_818A514 - pop {r0} - bx r0 - thumb_func_end sub_818C7D4 - - thumb_func_start sub_818C7E0 -sub_818C7E0: @ 818C7E0 - push {lr} - bl sub_818A514 - pop {r0} - bx r0 - thumb_func_end sub_818C7E0 - - thumb_func_start sub_818C7EC -sub_818C7EC: @ 818C7EC - push {lr} - bl sub_818A514 - pop {r0} - bx r0 - thumb_func_end sub_818C7EC - - thumb_func_start sub_818C7F8 -sub_818C7F8: @ 818C7F8 - push {lr} - bl sub_818A514 - pop {r0} - bx r0 - thumb_func_end sub_818C7F8 - - thumb_func_start sub_818C804 -sub_818C804: @ 818C804 - push {lr} - bl sub_818A514 - pop {r0} - bx r0 - thumb_func_end sub_818C804 - - thumb_func_start sub_818C810 -sub_818C810: @ 818C810 - push {lr} - bl sub_818A514 - pop {r0} - bx r0 - thumb_func_end sub_818C810 - - thumb_func_start sub_818C81C -sub_818C81C: @ 818C81C - push {lr} - bl sub_818A514 - pop {r0} - bx r0 - thumb_func_end sub_818C81C - - thumb_func_start sub_818C828 -sub_818C828: @ 818C828 - push {lr} - bl sub_818A514 - pop {r0} - bx r0 - thumb_func_end sub_818C828 - - thumb_func_start sub_818C834 -sub_818C834: @ 818C834 - push {lr} - bl sub_818A514 - pop {r0} - bx r0 - thumb_func_end sub_818C834 - - thumb_func_start sub_818C840 -sub_818C840: @ 818C840 - push {lr} - ldr r2, =gUnknown_02022D0C - ldrb r1, [r2] - movs r0, 0x80 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - bl sub_818A514 - pop {r0} - bx r0 - .pool - thumb_func_end sub_818C840 - - thumb_func_start sub_818C85C -sub_818C85C: @ 818C85C - push {lr} - ldr r3, =gUnknown_02022D0C - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x7F - ands r1, r0 - ldrb r2, [r3] - movs r0, 0x80 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl sub_818A514 - pop {r0} - bx r0 - .pool - thumb_func_end sub_818C85C - - thumb_func_start sub_818C894 -sub_818C894: @ 818C894 - push {lr} - ldr r2, =gUnknown_02022D0C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - bl sub_818A514 - pop {r0} - bx r0 - .pool - thumb_func_end sub_818C894 - - thumb_func_start sub_818C8AC -sub_818C8AC: @ 818C8AC - push {lr} - ldr r3, =gUnknown_02022D0C - ldr r1, [r3] - lsls r1, 24 - lsrs r1, 31 - movs r0, 0x1 - eors r1, r0 - lsls r1, 7 - ldrb r2, [r3] - movs r0, 0x7F - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl sub_818A514 - pop {r0} - bx r0 - .pool - thumb_func_end sub_818C8AC - - thumb_func_start sub_818C8D4 -sub_818C8D4: @ 818C8D4 - push {r4,lr} - ldr r3, =gUnknown_02020630 - ldr r2, =gUnknown_020241E4 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _0818C908 - bl sub_818A514 - b _0818C932 - .pool -_0818C908: - ldr r1, =gUnknown_020244B9 - movs r0, 0x1 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0 - strh r1, [r0, 0x30] - ldrb r0, [r4] - bl sub_80769F4 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_818A238 - str r1, [r0] -_0818C932: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818C8D4 - - thumb_func_start sub_818C944 -sub_818C944: @ 818C944 - push {lr} - bl sub_818A514 - pop {r0} - bx r0 - thumb_func_end sub_818C944 - - thumb_func_start sub_818C950 -sub_818C950: @ 818C950 - push {r4,lr} - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - movs r3, 0x3F - cmp r0, 0 - bne _0818C964 - movs r3, 0xC0 -_0818C964: - ldr r2, =gUnknown_02023064 - ldrb r1, [r4] - lsls r1, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - lsls r1, r3, 24 - asrs r1, 24 - bl audio_play_and_stuff - bl sub_818A514 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818C950 - - thumb_func_start sub_818C994 -sub_818C994: @ 818C994 - push {r4,r5,lr} - ldr r4, =gUnknown_02023064 - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - lsls r3, r0, 9 - adds r0, r4, 0x3 - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, 0 - beq _0818C9D0 - bl sub_805EA60 - ldrb r1, [r5] - lsls r1, 9 - adds r0, r4, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, r4, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - bl song_play_for_text - b _0818C9E4 - .pool -_0818C9D0: - adds r0, r4, 0x1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, 0x2 - adds r1, r3, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - bl fanfare_play -_0818C9E4: - bl sub_818A514 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_818C994 - - thumb_func_start sub_818C9F0 -sub_818C9F0: @ 818C9F0 - push {lr} - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x19 - negs r1, r1 - movs r2, 0x5 - bl sub_80A32E4 - bl sub_818A514 - pop {r0} - bx r0 - .pool - thumb_func_end sub_818C9F0 - - thumb_func_start dp01t_2E_2_battle_intro -dp01t_2E_2_battle_intro: @ 818CA30 - push {lr} - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - bl battle_intro_launch - ldr r2, =gUnknown_020243FC - ldrh r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] - bl sub_818A514 - pop {r0} - bx r0 - .pool - thumb_func_end dp01t_2E_2_battle_intro - - thumb_func_start sub_818CA64 -sub_818CA64: @ 818CA64 - push {r4-r6,lr} - ldr r5, =gUnknown_020241E4 - ldr r6, =gUnknown_02024064 - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - bl oamt_add_pos2_onto_pos1 - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x32 - strh r1, [r0, 0x2E] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =0x0000ffd8 - strh r1, [r0, 0x32] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x22] - strh r1, [r0, 0x36] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_80A6EEC - str r1, [r0] - ldrb r2, [r6] - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r2, [r0, 0x38] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =sub_805CC00 - bl oamt_set_x3A_32 - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x1 - bl StartObjectImageAnim - ldr r0, =0x0000d6f9 - bl AllocObjectPalette - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 18 - ands r0, r1 - cmp r0, 0 - beq _0818CB54 - ldr r4, =gUnknown_020229E8 - ldrb r0, [r6] - bl sub_806D864 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r1, 0x13] - b _0818CB5A - .pool -_0818CB54: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] -_0818CB5A: - ldr r1, =gTrainerBackPicPaletteTable - lsls r0, 3 - adds r0, r1 - ldr r0, [r0] - lsls r4, r5, 4 - movs r2, 0x80 - lsls r2, 1 - adds r1, r4, r2 - movs r2, 0x20 - bl LoadCompressedPalette - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - adds r0, r1 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r4 - strb r0, [r1, 0x5] - ldr r0, =sub_818CC24 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r4, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - ldrb r0, [r5] - strh r0, [r1, 0x8] - ldr r3, =gUnknown_020244D0 - ldr r0, [r3] - ldrb r2, [r5] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0818CBD4 - ldr r0, =gUnknown_020244B4 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - ldr r1, =sub_8073C30 - str r1, [r0] -_0818CBD4: - ldr r0, [r3] - ldr r2, [r0, 0x8] - ldrb r0, [r2, 0x9] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x9] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =nullsub_120 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818CA64 - - thumb_func_start sub_818CC24 -sub_818CC24: @ 818CC24 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r1, =gTasks - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0xA] - movs r3, 0xA - ldrsh r0, [r1, r3] - cmp r0, 0x17 - bgt _0818CC50 - adds r0, r2, 0x1 - strh r0, [r1, 0xA] - b _0818CD0C - .pool -_0818CC50: - ldr r7, =gUnknown_02024064 - ldrb r0, [r7] - mov r9, r0 - ldrh r0, [r1, 0x8] - strb r0, [r7] - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _0818CC70 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0818CCA0 -_0818CC70: - ldr r0, =gUnknown_02023064 - ldrb r1, [r7] - lsls r2, r1, 9 - adds r0, 0x1 - adds r2, r0 - ldr r0, =gUnknown_0202406E - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - strb r0, [r2] - ldrb r0, [r7] - movs r1, 0 - bl sub_818BA6C - b _0818CCF4 - .pool -_0818CCA0: - ldr r4, =gUnknown_02023064 - ldrb r0, [r7] - lsls r1, r0, 9 - adds r4, 0x1 - adds r1, r4 - ldr r5, =gUnknown_0202406E - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r1, 0 - bl sub_818BA6C - ldrb r0, [r7] - movs r6, 0x2 - eors r0, r6 - strb r0, [r7] - ldrb r0, [r7] - lsls r1, r0, 9 - adds r1, r4 - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - strb r0, [r1] - ldrb r1, [r7] - lsls r0, r1, 1 - adds r0, r5 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, =gPlayerParty - adds r0, r2 - bl sub_805DD7C - ldrb r0, [r7] - movs r1, 0 - bl sub_818BA6C - ldrb r0, [r7] - eors r0, r6 - strb r0, [r7] -_0818CCF4: - ldr r1, =gUnknown_03005D60 - ldr r2, =gUnknown_02024064 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8189D40 - str r1, [r0] - mov r3, r9 - strb r3, [r2] - mov r0, r8 - bl DestroyTask -_0818CD0C: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818CC24 - - thumb_func_start sub_818CD30 -sub_818CD30: @ 818CD30 - push {r4-r6,lr} - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0818CD60 - adds r0, r2, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0818CD60 - bl sub_818A514 - b _0818CDD4 - .pool -_0818CD60: - ldr r6, =gUnknown_020244D0 - ldr r0, [r6] - ldr r5, =gUnknown_02024064 - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - ldrb r0, [r5] - lsls r3, r0, 9 - ldr r4, =gUnknown_02023068 - adds r1, r3, r4 - subs r2, r4, 0x3 - adds r2, r3, r2 - ldrb r2, [r2] - subs r4, 0x2 - adds r3, r4 - ldrb r3, [r3] - bl sub_80735DC - ldr r2, =gUnknown_020244B4 - ldrb r1, [r5] - adds r1, r2 - movs r3, 0 - strb r0, [r1] - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strb r3, [r0, 0x5] - ldrb r2, [r5] - lsls r0, r2, 9 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _0818CDC8 - ldr r0, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0x5D - strb r1, [r0, 0x5] -_0818CDC8: - ldr r0, =gUnknown_03005D60 - ldrb r1, [r5] - lsls r1, 2 - adds r1, r0 - ldr r0, =bx_increment_dp11b_field_5_till_x60_then_resume - str r0, [r1] -_0818CDD4: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818CD30 - - thumb_func_start bx_increment_dp11b_field_5_till_x60_then_resume -bx_increment_dp11b_field_5_till_x60_then_resume: @ 818CDF4 - push {r4,lr} - ldr r4, =gUnknown_020244D0 - ldr r0, [r4] - ldr r3, =gUnknown_02024064 - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x5] - adds r2, r1, 0x1 - strb r2, [r0, 0x5] - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x5C - bls _0818CE2C - ldr r0, [r4] - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strb r1, [r0, 0x5] - bl sub_818A514 -_0818CE2C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end bx_increment_dp11b_field_5_till_x60_then_resume - - thumb_func_start sub_818CE3C -sub_818CE3C: @ 818CE3C - push {lr} - ldr r0, =gUnknown_020244D0 - ldr r1, [r0] - ldr r0, =gUnknown_02024064 - ldrb r3, [r0] - ldr r1, [r1, 0x4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0818CE6E - ldr r2, =gTasks - ldr r0, =gUnknown_020244B4 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, =sub_8073C30 - str r1, [r0] -_0818CE6E: - bl sub_818A514 - pop {r0} - bx r0 - .pool - thumb_func_end sub_818CE3C - - thumb_func_start sub_818CE8C -sub_818CE8C: @ 818CE8C - push {lr} - bl sub_818A514 - pop {r0} - bx r0 - thumb_func_end sub_818CE8C - - thumb_func_start sub_818CE98 -sub_818CE98: @ 818CE98 - push {r4,lr} - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - bl sub_80A6A90 - lsls r0, 24 - cmp r0, 0 - beq _0818CEDE - ldr r3, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldr r0, =gUnknown_02023064 - lsls r1, 9 - adds r0, 0x1 - adds r1, r0 - adds r2, 0x3E - movs r0, 0x1 - ldrb r1, [r1] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - bl sub_805E408 -_0818CEDE: - bl sub_818A514 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818CE98 - - thumb_func_start sub_818CEF8 -sub_818CEF8: @ 818CEF8 - push {r4-r6,lr} - sub sp, 0x4 - ldr r6, =gUnknown_02024064 - ldrb r0, [r6] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _0818CF50 - ldr r5, =gUnknown_02023064 - ldrb r2, [r6] - lsls r1, r2, 9 - adds r0, r5, 0x1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r0, r5, 0x2 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, 0x3 - adds r1, r5 - ldrb r0, [r1] - lsls r0, 8 - orrs r4, r0 - str r4, [sp] - adds r0, r2, 0 - adds r1, r2, 0 - bl move_anim_start_t3 - lsls r0, 24 - cmp r0, 0 - beq _0818CF44 - bl sub_818A514 - b _0818CF50 - .pool -_0818CF44: - ldr r0, =gUnknown_03005D60 - ldrb r1, [r6] - lsls r1, 2 - adds r1, r0 - ldr r0, =sub_818A5BC - str r0, [r1] -_0818CF50: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818CEF8 - - thumb_func_start sub_818CF60 -sub_818CF60: @ 818CF60 - push {lr} - bl sub_818A514 - pop {r0} - bx r0 - thumb_func_end sub_818CF60 - - thumb_func_start sub_818CF6C -sub_818CF6C: @ 818CF6C - push {lr} - bl sub_818A514 - pop {r0} - bx r0 - thumb_func_end sub_818CF6C - - thumb_func_start sub_818CF78 -sub_818CF78: @ 818CF78 - push {r4,lr} - ldr r2, =gUnknown_0202433A - ldr r1, =gUnknown_02023064 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - movs r0, 0x5 - bl sub_80A2F50 - movs r0, 0x3 - bl BeginFastPaletteFade - bl sub_818A514 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_80587B0 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818CF78 - - thumb_func_start nullsub_121 -nullsub_121: @ 818CFC4 - bx lr - thumb_func_end nullsub_121 - - thumb_func_start nullsub_122 -nullsub_122: @ 818CFC8 - bx lr - thumb_func_end nullsub_122 - - thumb_func_start dp13_810BB8C -dp13_810BB8C: @ 818CFCC - push {r4-r7,lr} - ldr r4, =gUnknown_0860B058 - ldr r3, =gUnknown_0203CD04 - movs r2, 0x7 -_0818CFD4: - adds r1, r3, 0 - adds r0, r4, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r3, 0xC - subs r2, 0x1 - cmp r2, 0 - bge _0818CFD4 - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end dp13_810BB8C - - thumb_func_start load_pokemon_image_TODO -@ int load_pokemon_image_TODO(int species_num, unsigned int a2, u8 a3, void *a4, int a5, u8 a6) -load_pokemon_image_TODO: @ 818CFF4 - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r1, 0 - adds r5, r3, 0 - ldr r3, [sp, 0x18] - ldr r1, [sp, 0x1C] - lsls r0, 16 - lsrs r4, r0, 16 - adds r7, r4, 0 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsls r1, 24 - lsrs r1, 24 - adds r0, r1, 0 - cmp r3, 0 - bne _0818D068 - cmp r2, 0 - beq _0818D034 - cmp r1, 0 - bne _0818D028 - lsls r0, r4, 3 - ldr r1, =gMonFrontPicTable - b _0818D03C - .pool -_0818D028: - lsls r0, r4, 3 - ldr r1, =gMonFrontPicTable - b _0818D054 - .pool -_0818D034: - cmp r0, 0 - bne _0818D050 - lsls r0, r4, 3 - ldr r1, =gMonBackPicTable -_0818D03C: - adds r0, r1 - str r2, [sp] - adds r1, r5, 0 - adds r2, r4, 0 - adds r3, r6, 0 - bl DecompressMonPic - b _0818D08E - .pool -_0818D050: - lsls r0, r4, 3 - ldr r1, =gMonBackPicTable -_0818D054: - adds r0, r1 - str r2, [sp] - adds r1, r5, 0 - adds r2, r4, 0 - adds r3, r6, 0 - bl DecompressMonPicWithoutDuplicatingDeoxysTiles - b _0818D08E - .pool -_0818D068: - cmp r2, 0 - beq _0818D080 - lsls r0, r4, 3 - ldr r1, =gTrainerFrontPicTable - adds r0, r1 - adds r1, r5, 0 - adds r2, r4, 0 - bl DecompressPicFromTable - b _0818D08E - .pool -_0818D080: - lsls r0, r7, 3 - ldr r1, =gTrainerBackPicTable - adds r0, r1 - adds r1, r5, 0 - adds r2, r7, 0 - bl DecompressPicFromTable -_0818D08E: - movs r0, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end load_pokemon_image_TODO - - thumb_func_start sub_818D09C -sub_818D09C: @ 818D09C - push {r4,lr} - sub sp, 0x8 - ldr r4, [sp, 0x10] - lsls r0, 16 - lsrs r0, 16 - lsls r2, 24 - lsrs r2, 24 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp] - movs r4, 0 - str r4, [sp, 0x4] - bl load_pokemon_image_TODO - lsls r0, 16 - lsrs r0, 16 - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_818D09C - - thumb_func_start sub_818D0C4 -sub_818D0C4: @ 818D0C4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r1, 0 - mov r8, r2 - ldr r1, [sp, 0x18] - ldr r2, [sp, 0x1C] - lsls r0, 16 - lsrs r4, r0, 16 - adds r6, r4, 0 - lsls r3, 24 - lsrs r5, r3, 24 - mov r12, r5 - lsls r1, 16 - lsrs r3, r1, 16 - adds r1, r3, 0 - lsls r2, 24 - cmp r2, 0 - bne _0818D128 - ldr r0, =0x0000ffff - cmp r3, r0 - bne _0818D110 - ldr r2, =gUnknown_0203CCEC - ldrh r1, [r2, 0x2] - adds r0, r3, 0 - orrs r0, r1 - strh r0, [r2, 0x2] - adds r0, r4, 0 - adds r1, r7, 0 - mov r2, r8 - bl species_and_otid_get_pal - lsls r1, r5, 20 - b _0818D144 - .pool -_0818D110: - ldr r0, =gUnknown_0203CCEC - strh r3, [r0, 0x2] - adds r0, r4, 0 - adds r1, r7, 0 - mov r2, r8 - bl sub_806E7CC - bl LoadCompressedObjectPalette - b _0818D16E - .pool -_0818D128: - ldr r0, =0x0000ffff - cmp r3, r0 - bne _0818D160 - ldr r2, =gUnknown_0203CCEC - ldrh r1, [r2, 0x2] - adds r0, r3, 0 - orrs r0, r1 - strh r0, [r2, 0x2] - ldr r1, =gTrainerFrontPicPaletteTable - lsls r0, r4, 3 - adds r0, r1 - ldr r0, [r0] - mov r2, r12 - lsls r1, r2, 20 -_0818D144: - movs r2, 0x80 - lsls r2, 17 - adds r1, r2 - lsrs r1, 16 - movs r2, 0x20 - bl LoadCompressedPalette - b _0818D16E - .pool -_0818D160: - ldr r0, =gUnknown_0203CCEC - strh r1, [r0, 0x2] - lsls r0, r6, 3 - ldr r1, =gTrainerFrontPicPaletteTable - adds r0, r1 - bl LoadCompressedObjectPalette -_0818D16E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818D0C4 - - thumb_func_start sub_818D180 -sub_818D180: @ 818D180 - push {r4,r5,lr} - adds r5, r1, 0 - ldr r1, [sp, 0xC] - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r4, r3, 24 - lsls r1, 24 - cmp r1, 0 - bne _0818D1A4 - adds r1, r5, 0 - bl species_and_otid_get_pal - lsls r1, r4, 4 - movs r2, 0x20 - bl LoadCompressedPalette - b _0818D1B4 -_0818D1A4: - ldr r1, =gTrainerFrontPicPaletteTable - lsls r0, 3 - adds r0, r1 - ldr r0, [r0] - lsls r1, r4, 4 - movs r2, 0x20 - bl LoadCompressedPalette -_0818D1B4: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818D180 - - thumb_func_start uns_builder_assign_animtable1 -uns_builder_assign_animtable1: @ 818D1C0 - push {lr} - lsls r0, 24 - cmp r0, 0 - bne _0818D1D8 - ldr r1, =gUnknown_0203CCEC - ldr r0, =gUnknown_082FF70C - str r0, [r1, 0x8] - b _0818D1E0 - .pool -_0818D1D8: - ldr r0, =gUnknown_0203CCEC - ldr r1, =gUnknown_0830536C - ldr r1, [r1] - str r1, [r0, 0x8] -_0818D1E0: - pop {r0} - bx r0 - .pool - thumb_func_end uns_builder_assign_animtable1 - - thumb_func_start oamt_spawn_poke_or_trainer_picture -oamt_spawn_poke_or_trainer_picture: @ 818D1EC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x30 - str r1, [sp, 0xC] - str r2, [sp, 0x10] - ldr r1, [sp, 0x50] - ldr r2, [sp, 0x54] - ldr r4, [sp, 0x58] - ldr r5, [sp, 0x5C] - ldr r6, [sp, 0x60] - ldr r7, [sp, 0x64] - mov r8, r7 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x14] - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x18] - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x1C] - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x20] - lsls r5, 16 - lsrs r5, 16 - mov r10, r5 - lsls r6, 24 - lsrs r6, 24 - mov r9, r6 - mov r0, r8 - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r1, =gUnknown_0203CD04 - ldrb r0, [r1, 0xB] - cmp r0, 0 - beq _0818D25C -_0818D244: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bhi _0818D25C - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0xB] - cmp r0, 0 - bne _0818D244 -_0818D25C: - cmp r4, 0x8 - beq _0818D280 - movs r0, 0x80 - lsls r0, 6 - bl Alloc - adds r7, r0, 0 - cmp r7, 0 - beq _0818D280 - movs r0, 0x20 - bl Alloc - mov r8, r0 - cmp r0, 0 - bne _0818D28C - adds r0, r7, 0 - bl Free -_0818D280: - ldr r0, =0x0000ffff - b _0818D356 - .pool -_0818D28C: - mov r1, r9 - str r1, [sp] - str r5, [sp, 0x4] - ldr r0, [sp, 0x8] - ldr r1, [sp, 0x10] - ldr r2, [sp, 0x14] - adds r3, r7, 0 - bl load_pokemon_image_TODO - lsls r0, 16 - cmp r0, 0 - bne _0818D280 - lsls r2, r4, 1 - str r2, [sp, 0x2C] - ldr r5, =gUnknown_0203CCEC - ldr r0, =gUnknown_0860B064 - mov r12, r0 - ldr r1, [sp, 0x18] - lsls r1, 16 - str r1, [sp, 0x24] - ldr r2, [sp, 0x1C] - lsls r2, 16 - str r2, [sp, 0x28] - movs r3, 0x80 - lsls r3, 4 - mov r0, r8 - adds r1, r7, 0 - adds r6, r3, 0 - movs r2, 0x3 -_0818D2C6: - str r1, [r0] - strh r3, [r0, 0x4] - adds r0, 0x8 - adds r1, r6 - subs r2, 0x1 - cmp r2, 0 - bge _0818D2C6 - ldr r0, =0x0000ffff - strh r0, [r5] - mov r0, r12 - str r0, [r5, 0x4] - mov r0, r9 - bl uns_builder_assign_animtable1 - mov r1, r8 - str r1, [r5, 0xC] - ldr r0, =gDummyObjectRotScalAnimTable - str r0, [r5, 0x10] - ldr r0, =nullsub_122 - str r0, [r5, 0x14] - mov r2, r10 - str r2, [sp] - mov r0, r9 - str r0, [sp, 0x4] - ldr r0, [sp, 0x8] - ldr r1, [sp, 0xC] - ldr r2, [sp, 0x10] - ldr r3, [sp, 0x20] - bl sub_818D0C4 - ldr r2, [sp, 0x24] - asrs r1, r2, 16 - ldr r0, [sp, 0x28] - asrs r2, r0, 16 - adds r0, r5, 0 - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r2, r0, 24 - adds r6, r2, 0 - ldr r0, =0x0000ffff - cmp r10, r0 - bne _0818D336 - ldr r0, =gUnknown_02020630 - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldr r2, [sp, 0x20] - lsls r3, r2, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] -_0818D336: - ldr r1, =gUnknown_0203CD04 - ldr r2, [sp, 0x2C] - adds r0, r2, r4 - lsls r0, 2 - adds r2, r0, r1 - str r7, [r2] - adds r1, 0x4 - adds r0, r1 - mov r7, r8 - str r7, [r0] - mov r0, r10 - strh r0, [r2, 0x8] - strb r6, [r2, 0xA] - movs r0, 0x1 - strb r0, [r2, 0xB] - adds r0, r6, 0 -_0818D356: - add sp, 0x30 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end oamt_spawn_poke_or_trainer_picture - - thumb_func_start sub_818D384 -sub_818D384: @ 818D384 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - ldr r4, [sp, 0x34] - ldr r5, [sp, 0x38] - ldr r6, [sp, 0x3C] - ldr r7, [sp, 0x40] - mov r8, r7 - ldr r7, [sp, 0x44] - mov r9, r7 - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r6, 24 - lsrs r6, 24 - mov r7, r8 - lsls r7, 16 - lsrs r7, 16 - mov r8, r7 - mov r7, r9 - lsls r7, 24 - lsrs r7, 24 - lsls r4, 16 - asrs r4, 16 - str r4, [sp] - lsls r5, 16 - asrs r5, 16 - str r5, [sp, 0x4] - str r6, [sp, 0x8] - mov r4, r8 - str r4, [sp, 0xC] - str r7, [sp, 0x10] - movs r4, 0 - str r4, [sp, 0x14] - bl oamt_spawn_poke_or_trainer_picture - lsls r0, 16 - lsrs r0, 16 - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_818D384 - - thumb_func_start sub_818D3E4 -sub_818D3E4: @ 818D3E4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - str r1, [sp, 0x8] - str r2, [sp, 0xC] - ldr r1, [sp, 0x4C] - ldr r2, [sp, 0x50] - ldr r4, [sp, 0x54] - ldr r5, [sp, 0x58] - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - lsls r3, 24 - lsrs r6, r3, 24 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x10] - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x14] - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x18] - lsls r5, 16 - lsrs r5, 16 - str r5, [sp, 0x1C] - movs r5, 0 - ldr r1, =gUnknown_0203CD04 - ldrb r0, [r1, 0xB] - cmp r0, 0 - beq _0818D440 -_0818D428: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x7 - bhi _0818D440 - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0xB] - cmp r0, 0 - bne _0818D428 -_0818D440: - cmp r5, 0x8 - beq _0818D47C - movs r0, 0x80 - lsls r0, 6 - bl Alloc - adds r7, r0, 0 - cmp r7, 0 - beq _0818D47C - movs r0, 0x80 - ands r0, r6 - cmp r0, 0 - beq _0818D468 - movs r0, 0x7F - ands r6, r0 - movs r0, 0x3 - mov r9, r0 - b _0818D46A - .pool -_0818D468: - mov r9, r6 -_0818D46A: - movs r0, 0x20 - bl Alloc - mov r8, r0 - cmp r0, 0 - bne _0818D484 - adds r0, r7, 0 - bl Free -_0818D47C: - ldr r0, =0x0000ffff - b _0818D588 - .pool -_0818D484: - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - mov r0, r10 - ldr r1, [sp, 0xC] - adds r2, r6, 0 - adds r3, r7, 0 - bl load_pokemon_image_TODO - lsls r0, 16 - cmp r0, 0 - bne _0818D47C - lsls r1, r5, 1 - str r1, [sp, 0x28] - ldr r4, =gUnknown_0203CCEC - mov r2, r10 - lsls r2, 2 - mov r12, r2 - ldr r0, [sp, 0x10] - lsls r0, 16 - str r0, [sp, 0x20] - ldr r1, [sp, 0x14] - lsls r1, 16 - str r1, [sp, 0x24] - movs r3, 0x80 - lsls r3, 4 - mov r0, r8 - adds r1, r7, 0 - adds r6, r3, 0 - movs r2, 0x3 -_0818D4C0: - str r1, [r0] - strh r3, [r0, 0x4] - adds r0, 0x8 - adds r1, r6 - subs r2, 0x1 - cmp r2, 0 - bge _0818D4C0 - ldr r0, =0x0000ffff - strh r0, [r4] - ldr r0, =gUnknown_08309AAC - add r0, r12 - ldr r0, [r0] - str r0, [r4, 0x8] - mov r2, r8 - str r2, [r4, 0xC] - mov r0, r9 - cmp r0, 0x1 - bne _0818D4F8 - ldr r0, =gUnknown_082FF694 - b _0818D500 - .pool -_0818D4F8: - mov r1, r9 - cmp r1, 0 - bne _0818D510 - ldr r0, =gUnknown_082FF618 -_0818D500: - str r0, [r4, 0x10] - ldr r0, =gUnknown_0860B06C - str r0, [r4, 0x4] - b _0818D518 - .pool -_0818D510: - ldr r0, =gUnknown_0860B064 - str r0, [r4, 0x4] - ldr r0, =gDummyObjectRotScalAnimTable - str r0, [r4, 0x10] -_0818D518: - ldr r2, =nullsub_122 - str r2, [r4, 0x14] - ldr r0, [sp, 0x1C] - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - mov r0, r10 - ldr r1, [sp, 0x8] - ldr r2, [sp, 0xC] - ldr r3, [sp, 0x18] - bl sub_818D0C4 - ldr r2, [sp, 0x20] - asrs r1, r2, 16 - ldr r0, [sp, 0x24] - asrs r2, r0, 16 - adds r0, r4, 0 - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r2, r0, 24 - adds r6, r2, 0 - ldr r0, =0x0000ffff - ldr r1, [sp, 0x1C] - cmp r1, r0 - bne _0818D566 - ldr r0, =gUnknown_02020630 - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldr r2, [sp, 0x18] - lsls r3, r2, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] -_0818D566: - ldr r1, =gUnknown_0203CD04 - ldr r2, [sp, 0x28] - adds r0, r2, r5 - lsls r0, 2 - adds r2, r0, r1 - str r7, [r2] - adds r1, 0x4 - adds r0, r1 - mov r1, r8 - str r1, [r0] - mov r0, sp - ldrh r0, [r0, 0x1C] - strh r0, [r2, 0x8] - strb r6, [r2, 0xA] - movs r0, 0x1 - strb r0, [r2, 0xB] - adds r0, r6, 0 -_0818D588: - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818D3E4 - - thumb_func_start sub_818D5B0 -sub_818D5B0: @ 818D5B0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r4, r0, 16 - movs r2, 0 - ldr r0, =gUnknown_0203CD04 - ldrb r1, [r0, 0xA] - adds r3, r0, 0 - cmp r1, r4 - beq _0818D5E0 - adds r1, r3, 0 -_0818D5C8: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bhi _0818D5E0 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0xA] - cmp r0, r4 - bne _0818D5C8 -_0818D5E0: - cmp r2, 0x8 - bne _0818D5F0 - ldr r0, =0x0000ffff - b _0818D646 - .pool -_0818D5F0: - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r5, r0, r3 - ldr r1, [r5] - mov r8, r1 - adds r1, r3, 0x4 - adds r0, r1 - ldr r7, [r0] - ldrh r1, [r5, 0x8] - ldr r0, =0x0000ffff - lsls r6, r4, 4 - cmp r1, r0 - beq _0818D624 - ldr r1, =gUnknown_02020630 - adds r0, r6, r4 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - bl GetObjectPaletteTagBySlot - lsls r0, 16 - lsrs r0, 16 - bl FreeObjectPaletteByTag -_0818D624: - adds r0, r6, r4 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - bl RemoveObjectAndFreeTiles - mov r0, r8 - bl Free - adds r0, r7, 0 - bl Free - adds r1, r5, 0 - ldr r0, =gUnknown_0860B058 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - movs r0, 0 -_0818D646: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818D5B0 - - thumb_func_start sub_818D65C -sub_818D65C: @ 818D65C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - mov r9, r1 - adds r7, r2, 0 - adds r4, r3, 0 - ldr r1, [sp, 0x20] - ldr r2, [sp, 0x24] - ldr r3, [sp, 0x28] - lsls r0, 16 - lsrs r5, r0, 16 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r6, r3, 24 - adds r0, r2, 0 - movs r1, 0x7 - bl GetWindowAttribute - adds r3, r0, 0 - movs r0, 0 - str r0, [sp] - adds r0, r5, 0 - adds r1, r7, 0 - adds r2, r4, 0 - bl sub_818D09C - lsls r0, 16 - cmp r0, 0 - bne _0818D6B8 - str r6, [sp] - adds r0, r5, 0 - mov r1, r9 - adds r2, r7, 0 - mov r3, r8 - bl sub_818D180 - movs r0, 0 - b _0818D6BA -_0818D6B8: - ldr r0, =0x0000ffff -_0818D6BA: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818D65C - - thumb_func_start sub_818D6CC -sub_818D6CC: @ 818D6CC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - str r1, [sp, 0x18] - str r2, [sp, 0x1C] - ldr r1, [sp, 0x44] - ldr r2, [sp, 0x48] - ldr r4, [sp, 0x4C] - ldr r5, [sp, 0x50] - ldr r6, [sp, 0x54] - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - lsls r3, 24 - lsrs r7, r3, 24 - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x20] - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - movs r0, 0x80 - lsls r0, 6 - bl Alloc - adds r4, r0, 0 - cmp r4, 0 - beq _0818D762 - str r6, [sp] - mov r0, r9 - ldr r1, [sp, 0x1C] - adds r2, r7, 0 - adds r3, r4, 0 - bl sub_818D09C - lsls r0, 16 - cmp r0, 0 - bne _0818D762 - movs r0, 0x40 - str r0, [sp] - str r0, [sp, 0x4] - mov r1, r10 - str r1, [sp, 0x8] - mov r1, r8 - str r1, [sp, 0xC] - str r0, [sp, 0x10] - str r0, [sp, 0x14] - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl BlitBitmapRectToWindow - str r6, [sp] - mov r0, r9 - ldr r1, [sp, 0x18] - ldr r2, [sp, 0x1C] - ldr r3, [sp, 0x20] - bl sub_818D180 - adds r0, r4, 0 - bl Free - movs r0, 0 - b _0818D764 -_0818D762: - ldr r0, =0x0000ffff -_0818D764: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818D6CC - - thumb_func_start sub_818D778 -sub_818D778: @ 818D778 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - ldr r4, [sp, 0x34] - ldr r5, [sp, 0x38] - ldr r6, [sp, 0x3C] - ldr r7, [sp, 0x40] - mov r8, r7 - ldr r7, [sp, 0x44] - mov r9, r7 - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r6, 24 - lsrs r6, 24 - mov r7, r8 - lsls r7, 16 - lsrs r7, 16 - mov r8, r7 - mov r7, r9 - lsls r7, 24 - lsrs r7, 24 - lsls r4, 16 - asrs r4, 16 - str r4, [sp] - lsls r5, 16 - asrs r5, 16 - str r5, [sp, 0x4] - str r6, [sp, 0x8] - mov r4, r8 - str r4, [sp, 0xC] - movs r4, 0 - str r4, [sp, 0x10] - str r7, [sp, 0x14] - bl oamt_spawn_poke_or_trainer_picture - lsls r0, 16 - lsrs r0, 16 - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_818D778 - - thumb_func_start sub_818D7D8 -sub_818D7D8: @ 818D7D8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - ldr r4, [sp, 0x2C] - ldr r5, [sp, 0x30] - ldr r6, [sp, 0x34] - ldr r7, [sp, 0x38] - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r7, 16 - lsrs r7, 16 - lsls r4, 16 - asrs r4, 16 - str r4, [sp] - lsls r5, 16 - asrs r5, 16 - str r5, [sp, 0x4] - str r6, [sp, 0x8] - str r7, [sp, 0xC] - movs r4, 0 - str r4, [sp, 0x10] - bl sub_818D778 - lsls r0, 16 - lsrs r0, 16 - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_818D7D8 - - thumb_func_start sub_818D820 -sub_818D820: @ 818D820 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl sub_818D5B0 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_818D820 - - thumb_func_start sub_818D834 -sub_818D834: @ 818D834 - push {r4,r5,lr} - sub sp, 0xC - ldr r4, [sp, 0x18] - ldr r5, [sp, 0x1C] - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - str r4, [sp] - str r5, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - bl sub_818D65C - lsls r0, 16 - lsrs r0, 16 - add sp, 0xC - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_818D834 - - thumb_func_start sub_818D864 -sub_818D864: @ 818D864 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - ldr r4, [sp, 0x2C] - ldr r5, [sp, 0x30] - ldr r6, [sp, 0x34] - ldr r7, [sp, 0x38] - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 24 - lsrs r6, 24 - lsls r7, 24 - lsrs r7, 24 - str r4, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - str r7, [sp, 0xC] - movs r4, 0 - str r4, [sp, 0x10] - bl sub_818D6CC - lsls r0, 16 - lsrs r0, 16 - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_818D864 - - thumb_func_start sub_818D8AC -sub_818D8AC: @ 818D8AC - push {r4,r5,lr} - sub sp, 0x14 - adds r5, r1, 0 - ldr r1, [sp, 0x20] - ldr r4, [sp, 0x24] - lsls r0, 16 - lsrs r0, 16 - lsls r5, 24 - lsrs r5, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r2, 16 - asrs r2, 16 - str r2, [sp] - lsls r3, 16 - asrs r3, 16 - str r3, [sp, 0x4] - str r1, [sp, 0x8] - str r4, [sp, 0xC] - movs r1, 0x1 - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0 - adds r3, r5, 0 - bl sub_818D384 - lsls r0, 16 - lsrs r0, 16 - add sp, 0x14 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_818D8AC - - thumb_func_start sub_818D8F0 -sub_818D8F0: @ 818D8F0 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl sub_818D5B0 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_818D8F0 - - thumb_func_start sub_818D904 -sub_818D904: @ 818D904 - push {r4,lr} - sub sp, 0xC - adds r4, r1, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 24 - lsrs r4, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - str r2, [sp] - str r3, [sp, 0x4] - movs r1, 0x1 - str r1, [sp, 0x8] - movs r1, 0 - movs r2, 0 - adds r3, r4, 0 - bl sub_818D65C - lsls r0, 16 - lsrs r0, 16 - add sp, 0xC - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_818D904 - - thumb_func_start sub_818D938 -sub_818D938: @ 818D938 - push {r4,r5,lr} - sub sp, 0x14 - adds r5, r1, 0 - ldr r1, [sp, 0x20] - ldr r4, [sp, 0x24] - lsls r0, 16 - lsrs r0, 16 - lsls r5, 24 - lsrs r5, 24 - lsls r2, 16 - lsrs r2, 16 - lsls r3, 16 - lsrs r3, 16 - lsls r1, 24 - lsrs r1, 24 - lsls r4, 24 - lsrs r4, 24 - str r2, [sp] - str r3, [sp, 0x4] - str r1, [sp, 0x8] - str r4, [sp, 0xC] - movs r1, 0x1 - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0 - adds r3, r5, 0 - bl sub_818D6CC - lsls r0, 16 - lsrs r0, 16 - add sp, 0x14 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_818D938 - - thumb_func_start sub_818D97C -sub_818D97C: @ 818D97C - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x1 - bne _0818D9A2 - cmp r0, 0 - beq _0818D99C - ldr r0, =gTrainerPicIndices - adds r0, 0x3F - ldrb r0, [r0] - b _0818D9A2 - .pool -_0818D99C: - ldr r0, =gTrainerPicIndices - adds r0, 0x3C - ldrb r0, [r0] -_0818D9A2: - pop {r1} - bx r1 - .pool - thumb_func_end sub_818D97C - - thumb_func_start sub_818D9AC -sub_818D9AC: @ 818D9AC - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_818D9AC - - thumb_func_start sub_818D9C0 -sub_818D9C0: @ 818D9C0 - push {r4,r5,lr} - ldr r5, =0x00004010 - ldr r4, =gUnknown_0860B07E - bl sub_818D9AC - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - ldrh r1, [r0] - adds r0, r5, 0 - bl VarSet - bl sub_818D9AC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0818DA20 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, =0x00003b58 - adds r1, r0 - ldr r0, =0x00004011 - ldr r2, =gUnknown_0860B074 - ldrb r1, [r1, 0xD] - lsls r1, 1 - adds r1, r2 - ldrh r1, [r1] - bl VarSet - ldr r1, =gUnknown_020375F0 - movs r0, 0x1 - b _0818DA24 - .pool -_0818DA20: - ldr r1, =gUnknown_020375F0 - movs r0, 0 -_0818DA24: - strh r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818D9C0 - - thumb_func_start sub_818DA30 -sub_818DA30: @ 818DA30 - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r1, [r0, 0xB] - lsls r1, 8 - ldrb r0, [r0, 0xA] - orrs r0, r1 - movs r1, 0x6 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 17 - adds r1, r0, 0 - cmp r0, 0x1 - beq _0818DA68 - cmp r0, 0x1 - bgt _0818DA5C - cmp r0, 0 - beq _0818DA62 - b _0818DA72 - .pool -_0818DA5C: - cmp r1, 0x2 - beq _0818DA6E - b _0818DA72 -_0818DA62: - bl sub_818DF68 - b _0818DA72 -_0818DA68: - bl sub_818DB7C - b _0818DA72 -_0818DA6E: - bl sub_818E638 -_0818DA72: - pop {r0} - bx r0 - thumb_func_end sub_818DA30 - - thumb_func_start sub_818DA78 -sub_818DA78: @ 818DA78 - push {lr} - bl sub_818D9AC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0818DA9C - cmp r0, 0x1 - bgt _0818DA90 - cmp r0, 0 - beq _0818DA96 - b _0818DAA6 -_0818DA90: - cmp r0, 0x2 - beq _0818DAA2 - b _0818DAA6 -_0818DA96: - bl sub_818E004 - b _0818DAA6 -_0818DA9C: - bl sub_818DBC4 - b _0818DAA6 -_0818DAA2: - bl sub_818E674 -_0818DAA6: - pop {r0} - bx r0 - thumb_func_end sub_818DA78 - - thumb_func_start sub_818DAAC -sub_818DAAC: @ 818DAAC - push {lr} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x1 - beq _0818DADC - cmp r0, 0x1 - bgt _0818DAD0 - cmp r0, 0 - beq _0818DAD6 - b _0818DAE6 -_0818DAD0: - cmp r1, 0x2 - beq _0818DAE2 - b _0818DAE6 -_0818DAD6: - bl sub_818DF68 - b _0818DAE6 -_0818DADC: - bl sub_818DB7C - b _0818DAE6 -_0818DAE2: - bl sub_818E638 -_0818DAE6: - pop {r0} - bx r0 - thumb_func_end sub_818DAAC - - thumb_func_start sub_818DAEC -sub_818DAEC: @ 818DAEC - push {r4,lr} - ldr r4, =gUnknown_020375F0 - bl sub_818D9AC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818DAEC - - thumb_func_start sub_818DB04 -sub_818DB04: @ 818DB04 - push {lr} - adds r1, r0, 0 - movs r2, 0 - b _0818DB14 -_0818DB0C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - adds r1, 0x2 -_0818DB14: - ldrh r0, [r1] - cmp r0, 0 - bne _0818DB0C - adds r0, r2, 0 - pop {r1} - bx r1 - thumb_func_end sub_818DB04 - - thumb_func_start sub_818DB20 -sub_818DB20: @ 818DB20 - push {r4-r6,lr} - bl Random - ldr r5, =gUnknown_0203CD64 - ldr r4, [r5] - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x6 - bl __umodsi3 - strb r0, [r4, 0xC] - ldr r6, =gUnknown_0860B2EC - ldr r0, [r5] - ldrb r0, [r0, 0xC] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - bl sub_818DB04 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0 - bl __modsi3 - lsls r0, 24 - ldr r2, [r5] - ldrb r1, [r2, 0xC] - lsls r1, 2 - adds r1, r6 - ldr r1, [r1] - lsrs r0, 23 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2, 0x10] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818DB20 - - thumb_func_start sub_818DB7C -sub_818DB7C: @ 818DB7C - push {lr} - ldr r2, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r2] - movs r3, 0 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r2] - strb r3, [r0, 0x1] - ldr r1, [r2] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r0, [r2] - strb r3, [r0, 0x2] - ldr r0, [r2] - strb r3, [r0, 0x3] - ldr r1, [r2] - strh r3, [r1, 0xE] - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r1, 0x12] - bl sub_818DB20 - pop {r0} - bx r0 - .pool - thumb_func_end sub_818DB7C - - thumb_func_start sub_818DBC4 -sub_818DBC4: @ 818DBC4 - ldr r3, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r3] - movs r2, 0 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r3] - strb r2, [r0, 0x1] - bx lr - .pool - thumb_func_end sub_818DBC4 - - thumb_func_start sub_818DBE8 -sub_818DBE8: @ 818DBE8 - push {lr} - ldr r1, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldrb r0, [r0, 0x1] - cmp r0, 0x2 - bne _0818DC0C - movs r0, 0x2 - b _0818DC16 - .pool -_0818DC0C: - cmp r0, 0x1 - beq _0818DC14 - movs r0, 0 - b _0818DC16 -_0818DC14: - movs r0, 0x1 -_0818DC16: - pop {r1} - bx r1 - thumb_func_end sub_818DBE8 - - thumb_func_start sub_818DC1C -sub_818DC1C: @ 818DC1C - lsls r0, 24 - ldr r1, =gUnknown_0860B224 - lsrs r0, 22 - adds r0, r1 - ldr r0, [r0] - bx lr - .pool - thumb_func_end sub_818DC1C - - thumb_func_start sub_818DC2C -sub_818DC2C: @ 818DC2C - push {r4,lr} - ldr r1, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldr r4, =gStringVar1 - ldrb r0, [r0, 0xC] - bl sub_818DC1C - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818DC2C - - thumb_func_start sub_818DC60 -sub_818DC60: @ 818DC60 - push {r4,r5,lr} - ldr r5, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, =0x00003b58 - adds r0, r1, r2 - str r0, [r5] - ldrb r0, [r0, 0x4] - cmp r0, 0xFF - bne _0818DC84 - movs r0, 0 - b _0818DC9C - .pool -_0818DC84: - ldr r4, =gStringVar3 - ldr r0, =0x00003b5c - adds r1, r0 - adds r0, r4, 0 - bl StringCopy7 - ldr r0, [r5] - ldrb r1, [r0, 0x12] - adds r0, r4, 0 - bl ConvertInternationalString - movs r0, 0x1 -_0818DC9C: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818DC60 - - thumb_func_start sub_818DCAC -sub_818DCAC: @ 818DCAC - push {r4,lr} - adds r4, r0, 0 - lsls r0, r1, 16 - lsrs r0, 16 - bl itemid_get_item - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_818DCAC - - thumb_func_start sub_818DCC8 -sub_818DCC8: @ 818DCC8 - push {lr} - ldr r2, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, =0x00003b58 - adds r1, r0 - str r1, [r2] - ldr r0, =gStringVar2 - ldrh r1, [r1, 0xE] - bl sub_818DCAC - pop {r0} - bx r0 - .pool - thumb_func_end sub_818DCC8 - - thumb_func_start sub_818DCF4 -sub_818DCF4: @ 818DCF4 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r0, r4, 0 - movs r1, 0xFF - movs r2, 0x8 - bl memset - adds r0, r4, 0 - adds r1, r5, 0 - bl StringCopy7 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_818DCF4 - - thumb_func_start sub_818DD14 -sub_818DD14: @ 818DD14 - push {r4,r5,lr} - ldr r5, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r1, r0, r2 - str r1, [r5] - ldr r1, =0x00003b5c - adds r0, r1 - ldr r4, =gStringVar3 - adds r1, r4, 0 - bl sub_818DCF4 - ldr r0, [r5] - ldrb r1, [r0, 0x12] - adds r0, r4, 0 - bl ConvertInternationalString - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818DD14 - - thumb_func_start sub_818DD54 -sub_818DD54: @ 818DD54 - ldr r1, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldrb r1, [r0, 0x2] - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - bx lr - .pool - thumb_func_end sub_818DD54 - - thumb_func_start sub_818DD78 -sub_818DD78: @ 818DD78 - push {lr} - bl sub_81AAC50 - pop {r0} - bx r0 - thumb_func_end sub_818DD78 - - thumb_func_start sub_818DD84 -sub_818DD84: @ 818DD84 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r5, r0, 16 - ldr r4, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r4] - ldr r1, =gUnknown_0860B2EC - mov r8, r1 - ldrb r0, [r0, 0xC] - lsls r0, 2 - add r0, r8 - ldr r0, [r0] - bl sub_818DB04 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, [r4] - movs r0, 0x1 - strb r0, [r1, 0x1] - ldr r0, =gStringVar2 - adds r1, r5, 0 - bl sub_818DCAC - ldr r1, [r4] - strh r5, [r1, 0xE] - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r1, 0x4 - bl sub_818DCF4 - ldr r1, [r4] - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r1, 0x12] - movs r7, 0 - movs r3, 0 - cmp r7, r6 - bcs _0818DE36 - mov r12, r8 -_0818DDDC: - ldr r2, [r4] - ldrb r0, [r2, 0xC] - lsls r0, 2 - add r0, r12 - ldr r1, [r0] - lsls r0, r3, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r5 - bne _0818DE28 - movs r7, 0x1 - ldrb r0, [r2, 0x3] - adds r0, 0x1 - strb r0, [r2, 0x3] - ldr r0, [r4] - strb r7, [r0, 0x2] - ldr r1, [r4] - ldrh r0, [r1, 0x10] - cmp r0, r5 - bne _0818DE36 - movs r0, 0x5 - strb r0, [r1, 0x3] - b _0818DE36 - .pool -_0818DE28: - movs r0, 0 - strb r0, [r2, 0x2] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r6 - bcc _0818DDDC -_0818DE36: - adds r0, r7, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_818DD84 - - thumb_func_start sub_818DE44 -sub_818DE44: @ 818DE44 - push {lr} - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - bl sub_818DD84 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end sub_818DE44 - - thumb_func_start sub_818DE5C -sub_818DE5C: @ 818DE5C - push {lr} - ldr r1, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldrb r0, [r0, 0x3] - movs r1, 0 - cmp r0, 0x4 - bls _0818DE74 - movs r1, 0x1 -_0818DE74: - adds r0, r1, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_818DE5C - - thumb_func_start sub_818DE88 -sub_818DE88: @ 818DE88 - push {lr} - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r0, =gStringVar2 - bl sub_818DCAC - pop {r0} - bx r0 - .pool - thumb_func_end sub_818DE88 - - thumb_func_start sub_818DEA0 -sub_818DEA0: @ 818DEA0 - push {r4,r5,lr} - ldr r5, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r5] - ldr r1, =gUnknown_0860B304 - ldrb r0, [r0, 0xC] - lsls r0, 1 - adds r0, r1 - ldrh r4, [r0] - adds r0, r4, 0 - bl sub_818DE88 - ldr r1, [r5] - movs r0, 0x2 - strb r0, [r1, 0x1] - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818DEA0 - - thumb_func_start sub_818DEDC -sub_818DEDC: @ 818DEDC - push {lr} - bl sub_818DB7C - ldr r0, =gUnknown_0203CD64 - ldr r1, [r0] - movs r0, 0x1 - strb r0, [r1, 0x1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_818DEDC - - thumb_func_start sub_818DEF4 -sub_818DEF4: @ 818DEF4 - push {lr} - bl script_env_2_enable_and_set_ctx_running - pop {r0} - bx r0 - thumb_func_end sub_818DEF4 - - thumb_func_start sub_818DF00 -sub_818DF00: @ 818DF00 - push {r4-r7,lr} - bl Random - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0xF - ands r4, r0 - movs r3, 0 - ldr r5, =gUnknown_0203CD68 - ldr r1, =gUnknown_0860B1A4 - lsls r0, r4, 2 - adds r6, r0, r1 - adds r7, r5, 0 -_0818DF1A: - ldr r2, [r5] - lsls r1, r3, 1 - adds r2, 0x2 - adds r2, r1 - ldr r0, [r6] - adds r1, r0 - ldrh r0, [r1] - strh r0, [r2] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x8 - bls _0818DF1A - ldr r2, [r7] - ldr r0, =gUnknown_0860B1E4 - lsls r1, r4, 1 - adds r0, r1, r0 - ldrh r0, [r0] - strh r0, [r2, 0x14] - ldr r0, =gUnknown_0860B204 - adds r1, r0 - ldrh r0, [r1] - strh r0, [r2, 0x28] - adds r2, 0x2B - strb r4, [r2] - ldr r1, [r7] - movs r0, 0xFF - strb r0, [r1, 0x18] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818DF00 - - thumb_func_start sub_818DF68 -sub_818DF68: @ 818DF68 - push {r4-r6,lr} - ldr r2, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r2] - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - strb r1, [r0, 0x1] - movs r3, 0 - adds r4, r2, 0 - ldr r6, =gGameLanguage - adds r5, r4, 0 - ldr r0, =0x0000ffff - adds r2, r0, 0 -_0818DF8A: - ldr r1, [r5] - lsls r0, r3, 1 - adds r1, 0x2 - adds r1, r0 - ldrh r0, [r1] - orrs r0, r2 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x8 - bls _0818DF8A - ldr r0, [r4] - ldr r1, =0x0000ffff - strh r1, [r0, 0x14] - movs r1, 0x1 - negs r1, r1 - strh r1, [r0, 0x16] - movs r3, 0 - adds r5, r4, 0 - movs r2, 0 -_0818DFB4: - ldr r0, [r5] - lsls r1, r3, 1 - adds r0, 0x20 - adds r0, r1 - strh r2, [r0] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _0818DFB4 - ldr r0, [r4] - movs r2, 0 - movs r1, 0 - strh r1, [r0, 0x28] - adds r0, 0x2A - strb r2, [r0] - ldr r0, [r4] - adds r0, 0x2C - movs r1, 0x10 - strb r1, [r0] - ldr r0, [r4] - ldrb r1, [r6] - adds r0, 0x2D - strb r1, [r0] - bl sub_818DF00 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818DF68 - - thumb_func_start sub_818E004 -sub_818E004: @ 818E004 - ldr r2, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r2] - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - strb r1, [r0, 0x1] - ldr r0, [r2] - adds r0, 0x2A - strb r1, [r0] - ldr r1, [r2] - ldr r0, =0x0000ffff - strh r0, [r1, 0x16] - bx lr - .pool - thumb_func_end sub_818E004 - - thumb_func_start sub_818E038 -sub_818E038: @ 818E038 - push {lr} - ldr r1, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldrb r0, [r0, 0x1] - cmp r0, 0x2 - bne _0818E05C - movs r0, 0x2 - b _0818E066 - .pool -_0818E05C: - cmp r0, 0x1 - beq _0818E064 - movs r0, 0 - b _0818E066 -_0818E064: - movs r0, 0x1 -_0818E066: - pop {r1} - bx r1 - thumb_func_end sub_818E038 - - thumb_func_start sub_818E06C -sub_818E06C: @ 818E06C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, =gSaveBlock1Ptr - ldr r4, [r0] - ldr r0, =0x00003b58 - adds r7, r4, r0 - ldrh r0, [r7, 0x14] - bl sub_811F8D8 - cmp r0, 0 - bne _0818E0EC - ldr r1, =0x00003b83 - adds r0, r4, r1 - ldrb r5, [r0] - ldr r0, =0x00003b5a - adds r0, r4 - mov r8, r0 - adds r1, r4 - mov r10, r1 - ldr r6, =gUnknown_0860B1E4 -_0818E09A: - adds r5, 0x1 - cmp r5, 0xF - ble _0818E0A2 - movs r5, 0 -_0818E0A2: - lsls r4, r5, 1 - adds r0, r4, r6 - ldrh r0, [r0] - bl sub_811F8D8 - cmp r0, 0 - beq _0818E09A - movs r3, 0 - ldr r0, =gUnknown_0860B1E4 - mov r12, r0 - lsls r1, r5, 2 - ldr r0, =gUnknown_0860B204 - mov r9, r0 - ldr r0, =gUnknown_0860B1A4 - adds r6, r1, r0 - mov r2, r8 -_0818E0C2: - lsls r0, r3, 1 - ldr r1, [r6] - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - adds r2, 0x2 - adds r3, 0x1 - cmp r3, 0x8 - ble _0818E0C2 - mov r1, r12 - adds r0, r4, r1 - ldrh r0, [r0] - strh r0, [r7, 0x14] - mov r1, r9 - adds r0, r4, r1 - ldrh r0, [r0] - strh r0, [r7, 0x28] - mov r0, r10 - strb r5, [r0] - movs r0, 0xFF - strb r0, [r7, 0x18] -_0818E0EC: - bl sub_818E13C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0818E118 - movs r0, 0x2 - b _0818E12C - .pool -_0818E118: - cmp r0, 0x2 - beq _0818E126 - bl sub_818E1F4 - lsls r0, 24 - cmp r0, 0 - beq _0818E12A -_0818E126: - movs r0, 0x1 - b _0818E12C -_0818E12A: - movs r0, 0 -_0818E12C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_818E06C - - thumb_func_start sub_818E13C -sub_818E13C: @ 818E13C - push {r4-r7,lr} - movs r7, 0x1 - ldr r5, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, =0x00003b58 - adds r0, r1, r2 - str r0, [r5] - ldrb r0, [r0, 0x18] - cmp r0, 0xFF - bne _0818E174 - ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EEB7E - bl StringCopy7 - movs r7, 0 - b _0818E1DC - .pool -_0818E174: - ldr r4, =gStringVar1 - ldr r0, =0x00003b70 - adds r1, r0 - adds r0, r4, 0 - bl StringCopy7 - ldr r0, [r5] - adds r0, 0x2D - ldrb r1, [r0] - adds r0, r4, 0 - bl ConvertInternationalString - ldr r0, [r5] - adds r0, 0x18 - bl sub_818E258 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r6, =gSaveBlock2Ptr - ldr r0, [r6] - bl sub_818E258 - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _0818E1DC - ldr r0, [r5] - movs r2, 0 - cmp r2, r4 - bcs _0818E1DC - ldr r1, [r6] - ldrb r0, [r0, 0x18] - ldrb r1, [r1] - cmp r0, r1 - bne _0818E1DA -_0818E1BA: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r4 - bcs _0818E1DC - ldr r0, =gUnknown_0203CD68 - ldr r1, [r0] - adds r1, 0x18 - adds r1, r2 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, r2 - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - beq _0818E1BA -_0818E1DA: - movs r7, 0x2 -_0818E1DC: - adds r0, r7, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818E13C - - thumb_func_start sub_818E1F4 -sub_818E1F4: @ 818E1F4 - push {r4-r6,lr} - ldr r3, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, =0x00003b58 - adds r0, r1, r2 - str r0, [r3] - movs r5, 0 - movs r4, 0 - ldr r0, =0x00003b78 - adds r1, r0 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldrh r1, [r1] - adds r6, r3, 0 - adds r3, r0, 0 - ldrb r2, [r2, 0xA] - cmp r1, r2 - bne _0818E23A -_0818E21A: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bhi _0818E23C - ldr r1, [r6] - lsls r0, r4, 1 - adds r1, 0x20 - adds r1, r0 - ldr r0, [r3] - adds r0, 0xA - adds r0, r4 - ldrh r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - beq _0818E21A -_0818E23A: - movs r5, 0x1 -_0818E23C: - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818E1F4 - - thumb_func_start sub_818E258 -sub_818E258: @ 818E258 - push {lr} - movs r2, 0 - adds r1, r0, 0 - b _0818E268 -_0818E260: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - adds r1, 0x1 -_0818E268: - ldrb r0, [r1] - cmp r0, 0xFF - bne _0818E260 - adds r0, r2, 0 - pop {r1} - bx r1 - thumb_func_end sub_818E258 - - thumb_func_start sub_818E274 -sub_818E274: @ 818E274 - push {r4,lr} - ldr r4, =gStringVar1 - ldr r0, =gUnknown_0203CD68 - ldr r0, [r0] - ldrh r0, [r0, 0x28] - bl itemid_get_item - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E274 - - thumb_func_start sub_818E298 -sub_818E298: @ 818E298 - push {r4,lr} - ldr r4, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r4] - bl sub_818E13C - lsls r0, 24 - cmp r0, 0 - beq _0818E2C0 - movs r0, 0 - b _0818E2CC - .pool -_0818E2C0: - ldr r0, [r4] - ldr r1, =gGameLanguage - ldrb r1, [r1] - adds r0, 0x2D - strb r1, [r0] - movs r0, 0x1 -_0818E2CC: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818E298 - - thumb_func_start sub_818E2D8 -sub_818E2D8: @ 818E2D8 - ldr r2, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r3, =0x00003b58 - adds r1, r0, r3 - str r1, [r2] - ldr r1, =0x00003b82 - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_818E2D8 - - thumb_func_start sub_818E2FC -sub_818E2FC: @ 818E2FC - push {lr} - bl easy_chat_input_maybe - pop {r0} - bx r0 - thumb_func_end sub_818E2FC - - thumb_func_start sub_818E308 -sub_818E308: @ 818E308 - push {r4-r6,lr} - ldr r5, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r5] - ldr r6, =gStringVar1 - ldrh r1, [r0, 0x14] - adds r0, r6, 0 - bl CopyEasyChatWord - ldr r4, =gStringVar2 - ldr r0, [r5] - ldrh r1, [r0, 0x16] - adds r0, r4, 0 - bl CopyEasyChatWord - adds r0, r6, 0 - adds r1, r4, 0 - bl StringCompare - movs r1, 0 - cmp r0, 0 - bne _0818E33C - movs r1, 0x1 -_0818E33C: - adds r0, r1, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818E308 - - thumb_func_start sub_818E358 -sub_818E358: @ 818E358 - ldr r1, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldr r1, =gUnknown_020375E2 - ldrh r0, [r0, 0x28] - strh r0, [r1] - bx lr - .pool - thumb_func_end sub_818E358 - - thumb_func_start sub_818E37C -sub_818E37C: @ 818E37C - ldr r1, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - movs r1, 0x1 - strb r1, [r0, 0x1] - bx lr - .pool - thumb_func_end sub_818E37C - - thumb_func_start sub_818E39C -sub_818E39C: @ 818E39C - ldr r1, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - movs r1, 0x2 - strb r1, [r0, 0x1] - bx lr - .pool - thumb_func_end sub_818E39C - - thumb_func_start sub_818E3BC -sub_818E3BC: @ 818E3BC - ldr r1, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldr r1, =0x0000ffff - strh r1, [r0, 0x16] - bx lr - .pool - thumb_func_end sub_818E3BC - - thumb_func_start sub_818E3E0 -sub_818E3E0: @ 818E3E0 - push {lr} - bl sub_81AAC70 - pop {r0} - bx r0 - thumb_func_end sub_818E3E0 - - thumb_func_start sub_818E3EC -sub_818E3EC: @ 818E3EC - push {r4,lr} - ldr r4, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r4] - bl sub_818E298 - lsls r0, 24 - cmp r0, 0 - beq _0818E41C - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0x2B - ldrb r1, [r1] - adds r0, 0x2C - b _0818E422 - .pool -_0818E41C: - ldr r0, [r4] - adds r0, 0x2C - movs r1, 0x10 -_0818E422: - strb r1, [r0] - bl sub_818DF00 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_818E3EC - - thumb_func_start sub_818E430 -sub_818E430: @ 818E430 - push {r4,r5,lr} - ldr r1, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - movs r2, 0 - adds r5, r1, 0 - adds r4, r5, 0 - ldr r0, =0x0000ffff - adds r3, r0, 0 -_0818E448: - ldr r1, [r4] - lsls r0, r2, 1 - adds r1, 0x2 - adds r1, r0 - ldrh r0, [r1] - orrs r0, r3 - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x8 - bls _0818E448 - ldr r1, [r5] - ldr r0, =0x0000ffff - strh r0, [r1, 0x14] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E430 - - thumb_func_start sub_818E47C -sub_818E47C: @ 818E47C - push {lr} - ldr r1, =gUnknown_020375E0 - movs r0, 0x11 - strh r0, [r1] - bl easy_chat_input_maybe - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E47C - - thumb_func_start sub_818E490 -sub_818E490: @ 818E490 - push {lr} - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - movs r1, 0x1 - bl remove_item - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E490 - - thumb_func_start sub_818E4A4 -sub_818E4A4: @ 818E4A4 - push {r4-r6,lr} - ldr r2, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r2] - ldr r1, =gUnknown_0203CE7C - ldrh r1, [r1] - strh r1, [r0, 0x28] - movs r3, 0 - adds r4, r2, 0 - ldr r6, =gSaveBlock2Ptr - adds r5, r4, 0 - adds r2, r6, 0 -_0818E4C2: - ldr r1, [r5] - lsls r0, r3, 1 - adds r1, 0x20 - adds r1, r0 - ldr r0, [r2] - adds r0, 0xA - adds r0, r3 - ldrb r0, [r0] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _0818E4C2 - ldr r0, [r4] - adds r0, 0x18 - ldr r1, [r6] - bl StringCopy7 - ldr r0, [r4] - ldr r1, =gGameLanguage - ldrb r1, [r1] - adds r0, 0x2D - strb r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E4A4 - - thumb_func_start sub_818E510 -sub_818E510: @ 818E510 - ldr r2, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r3, =0x00003b58 - adds r1, r0, r3 - str r1, [r2] - ldr r1, =0x00003b82 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - bx lr - .pool - thumb_func_end sub_818E510 - - thumb_func_start sub_818E538 -sub_818E538: @ 818E538 - push {lr} - ldr r2, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, =0x00003b58 - adds r1, r0 - str r1, [r2] - ldr r0, =gStringVar3 - ldrh r1, [r1, 0x14] - bl CopyEasyChatWord - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E538 - - thumb_func_start sub_818E564 -sub_818E564: @ 818E564 - push {lr} - bl script_env_2_enable_and_set_ctx_running - pop {r0} - bx r0 - thumb_func_end sub_818E564 - - thumb_func_start sub_818E570 -sub_818E570: @ 818E570 - push {r4-r7,lr} - ldr r2, =gUnknown_0203CD68 - ldr r1, =gSaveBlock1Ptr - ldr r1, [r1] - ldr r4, =0x00003b58 - adds r3, r1, r4 - str r3, [r2] - adds r6, r0, 0 - adds r6, 0x2C - ldrb r4, [r6] - adds r7, r2, 0 - cmp r4, 0xF - bhi _0818E5EC - ldrb r0, [r3] - cmp r0, 0 - bne _0818E5EC - movs r5, 0 - ldr r2, =0x00003b83 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r4, r0 - bne _0818E5E4 - adds r4, r7, 0 -_0818E59E: - bl Random - ldr r2, [r4] - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF - ands r0, r1 - adds r2, 0x2B - strb r0, [r2] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bhi _0818E5C6 - ldr r0, [r4] - adds r0, 0x2B - ldrb r1, [r6] - ldrb r0, [r0] - cmp r1, r0 - beq _0818E59E -_0818E5C6: - ldr r0, [r4] - adds r2, r0, 0 - adds r2, 0x2B - ldrb r0, [r6] - ldr r7, =gUnknown_0203CD68 - ldrb r4, [r2] - cmp r0, r4 - bne _0818E5E4 - ldrb r1, [r2] - adds r3, r1, 0x1 - adds r0, r3, 0 - asrs r0, 4 - lsls r0, 4 - subs r0, r3, r0 - strb r0, [r2] -_0818E5E4: - ldr r0, [r7] - ldrb r1, [r6] - adds r0, 0x2C - strb r1, [r0] -_0818E5EC: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E570 - - thumb_func_start sub_818E604 -sub_818E604: @ 818E604 - push {r4,lr} - ldr r4, =gUnknown_0203CD6C - ldr r1, [r4] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r0, [r4] - movs r1, 0 - strb r1, [r0, 0x2] - ldr r0, [r4] - strb r1, [r0, 0x3] - ldr r0, [r4] - strb r1, [r0, 0xC] - bl Random - ldr r4, [r4] - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x5 - bl __umodsi3 - strb r0, [r4, 0xD] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E604 - - thumb_func_start sub_818E638 -sub_818E638: @ 818E638 - push {r4,lr} - ldr r4, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r4] - movs r2, 0 - movs r1, 0x2 - strb r1, [r0] - ldr r0, [r4] - strb r2, [r0, 0x1] - bl sub_818E604 - ldr r1, [r4] - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r1, 0xE] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E638 - - thumb_func_start sub_818E674 -sub_818E674: @ 818E674 - push {lr} - ldr r2, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r2] - movs r3, 0 - movs r1, 0x2 - strb r1, [r0] - ldr r0, [r2] - strb r3, [r0, 0x1] - ldr r2, [r2] - ldrb r0, [r2, 0x2] - cmp r0, 0x5 - beq _0818E69A - ldrb r0, [r2, 0x3] - cmp r0, 0x5 - bne _0818E69E -_0818E69A: - bl sub_818E604 -_0818E69E: - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E674 - - thumb_func_start sub_818E6B0 -sub_818E6B0: @ 818E6B0 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r4, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r3, =0x00003b58 - adds r1, r0, r3 - str r1, [r4] - ldrb r0, [r1, 0xC] - cmp r0, r2 - bhi _0818E6EA - strb r2, [r1, 0xC] - ldr r0, [r4] - adds r0, 0x4 - movs r1, 0xFF - movs r2, 0x8 - bl memset - ldr r1, [r4] - ldr r0, =gSaveBlock2Ptr - adds r1, 0x4 - ldr r0, [r0] - ldm r0!, {r2,r3} - stm r1!, {r2,r3} - ldr r1, [r4] - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r1, 0xE] -_0818E6EA: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E6B0 - - thumb_func_start sub_818E704 -sub_818E704: @ 818E704 - push {r4,r5,lr} - adds r2, r0, 0 - movs r3, 0 - movs r4, 0 - ldr r1, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r5, =0x00003b58 - adds r0, r5 - str r0, [r1] - ldrb r0, [r0, 0xD] - adds r5, r1, 0 - cmp r0, 0x4 - bhi _0818E76A - lsls r0, 2 - ldr r1, =_0818E73C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0818E73C: - .4byte _0818E750 - .4byte _0818E754 - .4byte _0818E758 - .4byte _0818E75C - .4byte _0818E760 -_0818E750: - ldrb r0, [r2, 0x1] - b _0818E762 -_0818E754: - ldrb r0, [r2, 0x2] - b _0818E762 -_0818E758: - ldrb r0, [r2, 0x3] - b _0818E762 -_0818E75C: - ldrb r0, [r2, 0x4] - b _0818E762 -_0818E760: - ldrb r0, [r2, 0x5] -_0818E762: - cmp r0, 0 - beq _0818E76A - adds r3, r0, 0 - movs r4, 0x1 -_0818E76A: - cmp r4, 0x1 - bne _0818E784 - adds r0, r3, 0 - bl sub_818E6B0 - ldr r0, =gUnknown_0203CD6C - ldr r1, [r0] - ldrb r0, [r1, 0x2] - adds r0, 0x1 - strb r0, [r1, 0x2] - b _0818E78C - .pool -_0818E784: - ldr r1, [r5] - ldrb r0, [r1, 0x3] - adds r0, 0x1 - strb r0, [r1, 0x3] -_0818E78C: - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_818E704 - - thumb_func_start sub_818E794 -sub_818E794: @ 818E794 - push {r4,r5,lr} - adds r5, r1, 0 - ldr r4, =gUnknown_0203CD6C - ldr r1, =gSaveBlock1Ptr - ldr r1, [r1] - ldr r2, =0x00003b58 - adds r1, r2 - str r1, [r4] - ldr r2, =gUnknown_0860B324 - ldrb r1, [r1, 0xD] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - ldr r1, =gUnknown_0860B310 - ldr r0, [r4] - ldrb r0, [r0, 0xD] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r5, 0 - bl StringCopy10 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E794 - - thumb_func_start sub_818E7E0 -sub_818E7E0: @ 818E7E0 - push {r4,lr} - adds r3, r1, 0 - ldr r2, =gUnknown_0203CD6C - ldr r1, =gSaveBlock1Ptr - ldr r1, [r1] - ldr r4, =0x00003b58 - adds r1, r4 - str r1, [r2] - ldrb r2, [r1, 0xD] - strb r2, [r0] - ldr r2, =gUnknown_0860B310 - ldrb r0, [r1, 0xD] - lsls r0, 2 - adds r0, r2 - ldr r1, [r0] - adds r0, r3, 0 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E7E0 - - thumb_func_start sub_818E81C -sub_818E81C: @ 818E81C - push {r4,lr} - ldr r3, =gUnknown_0203CD6C - ldr r1, =gSaveBlock1Ptr - ldr r1, [r1] - ldr r4, =0x00003b58 - adds r2, r1, r4 - str r2, [r3] - ldr r2, =0x00003b5c - adds r1, r2 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E81C - - thumb_func_start sub_818E848 -sub_818E848: @ 818E848 - ldr r2, =gUnknown_0203CD6C - ldr r1, =gSaveBlock1Ptr - ldr r1, [r1] - ldr r3, =0x00003b58 - adds r1, r3 - str r1, [r2] - ldrb r1, [r1, 0xE] - strb r1, [r0] - bx lr - .pool - thumb_func_end sub_818E848 - - thumb_func_start sub_818E868 -sub_818E868: @ 818E868 - push {lr} - lsls r1, 24 - ldr r2, =gUnknown_0860B338 - lsrs r1, 22 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E868 - - thumb_func_start sub_818E880 -sub_818E880: @ 818E880 - push {lr} - ldr r1, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldrb r0, [r0, 0x2] - cmp r0, 0x4 - bls _0818E8A4 - movs r0, 0x1 - b _0818E8AE - .pool -_0818E8A4: - cmp r0, 0 - beq _0818E8AC - movs r0, 0 - b _0818E8AE -_0818E8AC: - movs r0, 0x2 -_0818E8AE: - pop {r1} - bx r1 - thumb_func_end sub_818E880 - - thumb_func_start sub_818E8B4 -sub_818E8B4: @ 818E8B4 - push {lr} - ldr r1, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldrb r0, [r0, 0x1] - cmp r0, 0x1 - beq _0818E8D8 - movs r0, 0 - b _0818E8DA - .pool -_0818E8D8: - movs r0, 0x1 -_0818E8DA: - pop {r1} - bx r1 - thumb_func_end sub_818E8B4 - - thumb_func_start sub_818E8E0 -sub_818E8E0: @ 818E8E0 - push {r4,lr} - movs r3, 0 - ldr r1, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r4, =0x00003b58 - adds r2, r0, r4 - str r2, [r1] - ldrb r0, [r2, 0x2] - cmp r0, 0x4 - bhi _0818E8FC - ldrb r0, [r2, 0x3] - cmp r0, 0x4 - bls _0818E8FE -_0818E8FC: - movs r3, 0x1 -_0818E8FE: - adds r0, r3, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818E8E0 - - thumb_func_start sub_818E914 -sub_818E914: @ 818E914 - push {lr} - ldr r0, =gStringVar2 - ldr r1, =gStringVar1 - bl sub_818E794 - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E914 - - thumb_func_start sub_818E92C -sub_818E92C: @ 818E92C - push {lr} - ldr r1, =c2_exit_to_overworld_2_switch - movs r0, 0x3 - bl sub_81357FC - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E92C - - thumb_func_start sub_818E940 -sub_818E940: @ 818E940 - ldr r1, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - movs r1, 0x1 - strb r1, [r0, 0x1] - bx lr - .pool - thumb_func_end sub_818E940 - - thumb_func_start sub_818E960 -sub_818E960: @ 818E960 - ldr r1, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldr r2, =gUnknown_020375E2 - ldr r1, =gUnknown_0860B34C - ldrb r0, [r0, 0xD] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - bx lr - .pool - thumb_func_end sub_818E960 - - thumb_func_start sub_818E990 -sub_818E990: @ 818E990 - ldr r1, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldrb r0, [r0, 0xD] - bx lr - .pool - thumb_func_end sub_818E990 - - thumb_func_start sub_818E9AC -sub_818E9AC: @ 818E9AC - push {lr} - ldr r1, =gUnknown_0860D090 - ldr r0, =gUnknown_020375E0 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E9AC - - thumb_func_start sub_818E9CC -sub_818E9CC: @ 818E9CC - push {r4-r7,lr} - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r5, r0, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r7, r0, 16 - ldr r0, [r4] - ldr r2, =0x00000ca8 - adds r0, r2 - movs r6, 0 - strb r6, [r0] - ldr r1, [r4] - adds r2, 0xA - adds r0, r1, r2 - strh r6, [r0] - ldr r0, =0x00000ca9 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r4] - ldr r2, =0x00000ca9 - adds r1, r2 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r4, [r4] - ldr r0, =0x00000cdc - adds r3, r4, r0 - ldr r2, =gUnknown_0860D0EC - lsls r1, r5, 2 - lsls r0, r7, 3 - adds r1, r0 - adds r1, r2 - ldr r0, [r3] - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - bne _0818EA3E - lsls r0, r5, 1 - lsls r1, r7, 2 - adds r0, r1 - ldr r2, =0x00000d0c - adds r1, r4, r2 - adds r1, r0 - strh r6, [r1] -_0818EA3E: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x4 - ldrsb r1, [r0, r1] - movs r2, 0x5 - ldrsb r2, [r0, r2] - movs r3, 0x1 - negs r3, r3 - movs r0, 0 - bl saved_warp2_set - ldr r0, =gUnknown_02038BCA - strh r6, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E9CC - - thumb_func_start sub_818EA84 -sub_818EA84: @ 818EA84 - push {r4-r6,lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r5, r0, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - cmp r0, 0x9 - bls _0818EAA8 - b _0818ED10 -_0818EAA8: - lsls r0, 2 - ldr r1, =_0818EAC8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0818EAC8: - .4byte _0818EAF0 - .4byte _0818EB14 - .4byte _0818EB48 - .4byte _0818EB64 - .4byte _0818EB80 - .4byte _0818EB98 - .4byte _0818EBB4 - .4byte _0818EC40 - .4byte _0818ECD0 - .4byte _0818ECF4 -_0818EAF0: - ldr r3, =gUnknown_020375F0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r5, 1 - lsls r2, r6, 2 - adds r1, r2 - ldr r2, =0x00000d0c - adds r0, r2 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r3] - b _0818ED10 - .pool -_0818EB14: - ldr r4, =gUnknown_020375F0 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r3, =0x00000cdc - adds r2, r3 - ldr r3, =gUnknown_0860D0EC - lsls r0, r5, 2 - lsls r1, r6, 3 - adds r0, r1 - adds r0, r3 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - strh r0, [r4] - b _0818ED10 - .pool -_0818EB48: - ldr r1, =gUnknown_020375F0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000d08 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 31 - b _0818ECBE - .pool -_0818EB64: - ldr r1, =gUnknown_020375F0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r3, =0x00000d08 - adds r0, r3 - ldrb r0, [r0] - lsls r0, 30 - b _0818ECBE - .pool -_0818EB80: - ldr r1, =gUnknown_020375F0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000d08 - adds r0, r2 - b _0818ECBA - .pool -_0818EB98: - ldr r1, =gUnknown_020375F0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r3, =0x00000d08 - adds r0, r3 - ldrb r0, [r0] - lsls r0, 28 - b _0818ECBE - .pool -_0818EBB4: - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bne _0818EC04 - cmp r5, 0 - beq _0818EBE8 - ldr r1, =gUnknown_020375F0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000d08 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 26 - b _0818ECBE - .pool -_0818EBE8: - ldr r1, =gUnknown_020375F0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r3, =0x00000d08 - adds r0, r3 - ldrb r0, [r0] - lsls r0, 27 - b _0818ECBE - .pool -_0818EC04: - cmp r5, 0 - beq _0818EC24 - ldr r1, =gUnknown_020375F0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000d08 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 30 - b _0818ECBE - .pool -_0818EC24: - ldr r1, =gUnknown_020375F0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r3, =0x00000d08 - adds r0, r3 - ldrb r0, [r0] - lsls r0, 31 - b _0818ECBE - .pool -_0818EC40: - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bne _0818EC90 - cmp r5, 0 - beq _0818EC74 - ldr r1, =gUnknown_020375F0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000d08 - adds r0, r2 - ldrb r0, [r0] - lsrs r0, 7 - strh r0, [r1] - b _0818ED10 - .pool -_0818EC74: - ldr r1, =gUnknown_020375F0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r3, =0x00000d08 - adds r0, r3 - ldrb r0, [r0] - lsls r0, 25 - b _0818ECBE - .pool -_0818EC90: - cmp r5, 0 - beq _0818ECB0 - ldr r1, =gUnknown_020375F0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000d08 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 28 - b _0818ECBE - .pool -_0818ECB0: - ldr r1, =gUnknown_020375F0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r3, =0x00000d08 - adds r0, r3 -_0818ECBA: - ldrb r0, [r0] - lsls r0, 29 -_0818ECBE: - lsrs r0, 31 - strh r0, [r1] - b _0818ED10 - .pool -_0818ECD0: - bl sub_81B8558 - ldr r2, =gUnknown_0203CEF8 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - movs r1, 0xCB - lsls r1, 4 - adds r0, r1 - ldrh r1, [r0] - strb r1, [r2] - ldrh r0, [r0] - lsrs r0, 8 - strb r0, [r2, 0x1] - b _0818ED10 - .pool -_0818ECF4: - ldr r2, =gUnknown_020375F0 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r3, =0x00000d0a - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, 1 - adds r3, 0x1 - adds r1, r3 - ldr r3, =0x0000fffd - adds r0, r3 - ldrb r1, [r1] - adds r0, r1 - strh r0, [r2] -_0818ED10: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818EA84 - - thumb_func_start sub_818ED28 -sub_818ED28: @ 818ED28 - push {r4,r5,lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r4, r0, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - cmp r0, 0x8 - bls _0818ED4C - b _0818F01E -_0818ED4C: - lsls r0, 2 - ldr r1, =_0818ED6C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0818ED6C: - .4byte _0818ED90 - .4byte _0818EDB4 - .4byte _0818EE10 - .4byte _0818EE34 - .4byte _0818EE5C - .4byte _0818EE78 - .4byte _0818EEA0 - .4byte _0818EF50 - .4byte _0818F008 -_0818ED90: - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - lsls r0, r4, 1 - lsls r1, r5, 2 - adds r0, r1 - ldr r1, =0x00000d0c - adds r2, r1 - adds r2, r0 - ldr r0, =gUnknown_020375E4 - ldrh r0, [r0] - strh r0, [r2] - b _0818F01E - .pool -_0818EDB4: - ldr r0, =gUnknown_020375E4 - ldrh r0, [r0] - cmp r0, 0 - beq _0818EDE8 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r0, =0x00000cdc - adds r2, r0 - ldr r3, =gUnknown_0860D0EC - lsls r1, r4, 2 - lsls r0, r5, 3 - adds r1, r0 - adds r1, r3 - ldr r0, [r2] - ldr r1, [r1] - orrs r0, r1 - str r0, [r2] - b _0818F01E - .pool -_0818EDE8: - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r1, =0x00000cdc - adds r2, r1 - ldr r3, =gUnknown_0860D0FC - lsls r1, r4, 2 - lsls r0, r5, 3 - adds r1, r0 - adds r1, r3 - ldr r0, [r2] - ldr r1, [r1] - ands r0, r1 - str r0, [r2] - b _0818F01E - .pool -_0818EE10: - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r0, =gUnknown_020375E4 - ldrb r0, [r0] - ldr r1, =0x00000d08 - adds r2, r1 - movs r1, 0x1 - ands r1, r0 - ldrb r3, [r2] - movs r0, 0x2 - negs r0, r0 - b _0818EF74 - .pool -_0818EE34: - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r0, =gUnknown_020375E4 - ldrb r0, [r0] - ldr r2, =0x00000d08 - adds r3, r2 - movs r1, 0x1 - ands r1, r0 - lsls r1, 1 - ldrb r2, [r3] - movs r0, 0x3 - negs r0, r0 - b _0818EFF4 - .pool -_0818EE5C: - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r0, =gUnknown_020375E4 - ldrb r0, [r0] - ldr r1, =0x00000d08 - adds r3, r1 - b _0818EFE8 - .pool -_0818EE78: - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r0, =gUnknown_020375E4 - ldrb r0, [r0] - ldr r2, =0x00000d08 - adds r3, r2 - movs r1, 0x1 - ands r1, r0 - lsls r1, 3 - ldrb r2, [r3] - movs r0, 0x9 - negs r0, r0 - b _0818EFF4 - .pool -_0818EEA0: - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x1 - bne _0818EF00 - cmp r4, 0 - beq _0818EEDC - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r0, =gUnknown_020375E4 - ldrb r0, [r0] - ldr r2, =0x00000d08 - adds r3, r2 - ands r1, r0 - lsls r1, 5 - ldrb r2, [r3] - movs r0, 0x21 - negs r0, r0 - b _0818EFF4 - .pool -_0818EEDC: - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r0, =gUnknown_020375E4 - ldrb r0, [r0] - ldr r2, =0x00000d08 - adds r3, r2 - ands r1, r0 - lsls r1, 4 - ldrb r2, [r3] - movs r0, 0x11 - negs r0, r0 - b _0818EFF4 - .pool -_0818EF00: - cmp r4, 0 - beq _0818EF2C - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r0, =gUnknown_020375E4 - ldrb r0, [r0] - ldr r1, =0x00000d08 - adds r3, r1 - movs r1, 0x1 - ands r1, r0 - lsls r1, 1 - ldrb r2, [r3] - movs r0, 0x3 - negs r0, r0 - b _0818EFF4 - .pool -_0818EF2C: - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r0, =gUnknown_020375E4 - ldrb r0, [r0] - ldr r1, =0x00000d08 - adds r2, r1 - movs r1, 0x1 - ands r1, r0 - ldrb r3, [r2] - movs r0, 0x2 - negs r0, r0 - b _0818EF74 - .pool -_0818EF50: - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x1 - bne _0818EFB0 - cmp r4, 0 - beq _0818EF8C - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r0, =gUnknown_020375E4 - ldrb r1, [r0] - ldr r0, =0x00000d08 - adds r2, r0 - lsls r1, 7 - ldrb r3, [r2] - movs r0, 0x7F -_0818EF74: - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - b _0818F01E - .pool -_0818EF8C: - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r0, =gUnknown_020375E4 - ldrb r0, [r0] - ldr r2, =0x00000d08 - adds r3, r2 - ands r1, r0 - lsls r1, 6 - ldrb r2, [r3] - movs r0, 0x41 - negs r0, r0 - b _0818EFF4 - .pool -_0818EFB0: - cmp r4, 0 - beq _0818EFDC - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r0, =gUnknown_020375E4 - ldrb r0, [r0] - ldr r1, =0x00000d08 - adds r3, r1 - movs r1, 0x1 - ands r1, r0 - lsls r1, 3 - ldrb r2, [r3] - movs r0, 0x9 - negs r0, r0 - b _0818EFF4 - .pool -_0818EFDC: - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r0, =gUnknown_020375E4 - ldrb r0, [r0] - ldr r2, =0x00000d08 - adds r3, r2 -_0818EFE8: - movs r1, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 -_0818EFF4: - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _0818F01E - .pool -_0818F008: - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r0, =gUnknown_0203CEF8 - ldrb r1, [r0] - ldrb r0, [r0, 0x1] - lsls r0, 8 - orrs r1, r0 - movs r0, 0xCB - lsls r0, 4 - adds r2, r0 - strh r1, [r2] -_0818F01E: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818ED28 - - thumb_func_start sub_818F02C -sub_818F02C: @ 818F02C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x3C - movs r0, 0 - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x20 - bl AllocZeroed - str r0, [sp, 0x18] - movs r0, 0x18 - bl AllocZeroed - str r0, [sp, 0x1C] - ldr r4, =gSaveBlock2Ptr - ldr r1, [r4] - ldr r2, =0x00000ca9 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 30 - adds r0, 0x1 - ldr r3, =0x00000d0a - adds r1, r3 - strb r0, [r1] - ldr r0, =0x000040ce - bl VarGet - ldr r1, [r4] - adds r0, 0x1 - ldr r5, =0x00000d0b - adds r1, r5 - strb r0, [r1] - ldr r2, [r4] - ldr r7, =0x00000d24 - adds r3, r2, r7 - ldrh r0, [r3] - ldr r5, =0x000003ff - adds r1, r5, 0 - orrs r0, r1 - strh r0, [r3] - ldr r3, =0x00000d25 - adds r2, r3 - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r1, [r4] - adds r1, r3 - ldrb r2, [r1] - movs r0, 0x19 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r4] - adds r1, r3 - ldrb r2, [r1] - movs r0, 0x1F - ands r0, r2 - strb r0, [r1] - movs r7, 0 - mov r10, r7 - mov r8, r4 - ldr r0, =gUnknown_02024488 - mov r9, r0 - movs r4, 0 -_0818F0BA: - mov r1, r8 - ldr r0, [r1] - ldr r2, =0x00000caa - adds r0, r2 - adds r0, r4 - ldrh r0, [r0] - movs r3, 0x64 - muls r0, r3 - add r0, r9 - movs r1, 0xB - movs r2, 0 - bl GetMonData - mov r5, r8 - ldr r1, [r5] - ldr r7, =0x00000d64 - adds r1, r7 - adds r1, r4 - strh r0, [r1] - movs r5, 0 - mov r0, r10 - lsls r7, r0, 4 - adds r6, r7, 0 -_0818F0E8: - mov r1, r8 - ldr r0, [r1] - ldr r2, =0x00000caa - adds r0, r2 - adds r0, r4 - ldrh r0, [r0] - movs r3, 0x64 - muls r0, r3 - add r0, r9 - adds r1, r5, 0 - adds r1, 0xD - movs r2, 0 - bl GetMonData - mov r2, r8 - ldr r1, [r2] - ldr r3, =0x00000efc - adds r1, r3 - adds r1, r6 - strh r0, [r1] - adds r6, 0x2 - adds r5, 0x1 - cmp r5, 0x3 - ble _0818F0E8 - movs r5, 0 - ldr r6, =gSaveBlock2Ptr -_0818F11C: - ldr r0, [r6] - ldr r1, =0x00000caa - adds r0, r1 - adds r0, r4 - ldrh r0, [r0] - movs r2, 0x64 - muls r0, r2 - add r0, r9 - adds r1, r5, 0 - adds r1, 0x1A - movs r2, 0 - bl GetMonData - ldr r1, [r6] - adds r2, r5, r7 - ldr r3, =0x00000f04 - adds r1, r3 - adds r1, r2 - strb r0, [r1] - adds r5, 0x1 - cmp r5, 0x5 - ble _0818F11C - mov r5, r8 - ldr r0, [r5] - ldr r1, =0x00000caa - adds r0, r1 - adds r0, r4 - ldrh r0, [r0] - movs r2, 0x64 - muls r0, r2 - add r0, r9 - bl GetNature - ldr r1, [r5] - adds r1, r7 - ldr r3, =0x00000f0a - adds r1, r3 - strb r0, [r1] - adds r4, 0x2 - movs r5, 0x1 - add r10, r5 - mov r7, r10 - cmp r7, 0x2 - ble _0818F0BA - mov r10, r5 - movs r0, 0x4 - str r0, [sp, 0x34] - movs r1, 0x6 - str r1, [sp, 0x38] -_0818F17E: - mov r2, r10 - cmp r2, 0x5 - ble _0818F22C -_0818F184: - bl sub_81A39C4 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_8162548 - lsls r0, 16 - lsrs r4, r0, 16 - movs r5, 0x1 - cmp r5, r10 - bge _0818F1CA - ldr r3, =gSaveBlock2Ptr - ldr r0, [r3] - ldr r7, =0x00000d28 - adds r0, r7 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - adds r2, r3, 0 - cmp r0, r4 - beq _0818F1CA - ldr r3, =0x00000d24 -_0818F1B2: - adds r5, 0x1 - cmp r5, r10 - bge _0818F1CA - ldr r0, [r2] - lsls r1, r5, 2 - adds r0, r1 - adds r0, r3 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - cmp r0, r4 - bne _0818F1B2 -_0818F1CA: - cmp r5, r10 - bne _0818F184 - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r1, [sp, 0x34] - adds r3, r1 - ldr r2, =0x00000d24 - adds r3, r2 - ldr r5, =0x000003ff - adds r0, r5, 0 - adds r2, r4, 0 - ands r2, r0 - ldrh r0, [r3] - ldr r7, =0xfffffc00 - adds r1, r7, 0 - b _0818F292 - .pool -_0818F22C: - bl sub_81A39C4 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_8162548 - lsls r0, 16 - lsrs r4, r0, 16 - movs r5, 0x1 - cmp r5, r10 - bge _0818F274 - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - ldr r2, =0x00000d28 - adds r0, r2 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - adds r2, r1, 0 - cmp r0, r4 - beq _0818F274 - ldr r3, =0x00000d24 -_0818F25C: - adds r5, 0x1 - cmp r5, r10 - bge _0818F274 - ldr r0, [r2] - lsls r1, r5, 2 - adds r0, r1 - adds r0, r3 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - cmp r0, r4 - bne _0818F25C -_0818F274: - cmp r5, r10 - bne _0818F22C - ldr r5, =gSaveBlock2Ptr - ldr r3, [r5] - ldr r7, [sp, 0x34] - adds r3, r7 - ldr r0, =0x00000d24 - adds r3, r0 - ldr r1, =0x000003ff - adds r0, r1, 0 - adds r2, r4, 0 - ands r2, r0 - ldrh r0, [r3] - ldr r5, =0xfffffc00 - adds r1, r5, 0 -_0818F292: - ands r0, r1 - orrs r0, r2 - strh r0, [r3] - movs r5, 0 - lsls r4, 16 - str r4, [sp, 0x2C] - ldr r7, [sp, 0x38] - str r7, [sp, 0x20] -_0818F2A2: - lsls r0, r5, 1 - mov r9, r0 - adds r1, r5, 0x1 - str r1, [sp, 0x24] - lsls r2, r5, 2 - str r2, [sp, 0x28] -_0818F2AE: - ldr r3, [sp, 0x2C] - lsrs r0, r3, 16 - bl sub_8163524 - lsls r0, 16 - lsrs r6, r0, 16 - movs r7, 0 - cmp r7, r5 - bge _0818F300 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, [sp, 0x8] - mov r8, r1 - ldr r2, [sp, 0xC] - mov r12, r2 - ldr r3, =0x00000d64 - adds r0, r3 - ldr r1, [sp, 0x20] - adds r4, r1, r0 -_0818F2D4: - ldrh r3, [r4] - cmp r3, r6 - beq _0818F300 - ldr r2, =gUnknown_0203BC8C - ldr r1, [r2] - lsls r0, r6, 4 - adds r2, r0, r1 - ldrh r0, [r2] - cmp r8, r0 - beq _0818F300 - cmp r12, r0 - beq _0818F300 - lsls r0, r3, 4 - adds r0, r1 - ldrb r0, [r0, 0xA] - ldrb r2, [r2, 0xA] - cmp r0, r2 - beq _0818F300 - adds r4, 0x2 - adds r7, 0x1 - cmp r7, r5 - blt _0818F2D4 -_0818F300: - cmp r7, r5 - bne _0818F2AE - ldr r3, =gSaveBlock2Ptr - ldr r0, [r3] - ldr r1, [sp, 0x38] - add r1, r9 - ldr r5, =0x00000d64 - adds r0, r5 - adds r0, r1 - strh r6, [r0] - ldr r2, [sp, 0x28] - add r2, sp - adds r2, 0x8 - ldr r0, =gUnknown_0203BC8C - ldr r1, [r0] - lsls r0, r6, 4 - adds r0, r1 - ldrh r0, [r0] - str r0, [r2] - ldr r5, [sp, 0x24] - cmp r5, 0x2 - ble _0818F2A2 - ldr r2, [r3] - ldr r7, [sp, 0x34] - adds r2, r7 - ldr r0, =0x00000d25 - adds r2, r0 - ldrb r0, [r2] - movs r3, 0x5 - negs r3, r3 - adds r1, r3, 0 - ands r0, r1 - strb r0, [r2] - ldr r5, =gSaveBlock2Ptr - ldr r2, [r5] - adds r2, r7 - ldr r7, =0x00000d25 - adds r2, r7 - ldrb r0, [r2] - subs r3, 0x14 - adds r1, r3, 0 - ands r0, r1 - strb r0, [r2] - ldr r1, [r5] - ldr r5, [sp, 0x34] - adds r1, r5 - adds r1, r7 - ldrb r2, [r1] - movs r0, 0x1F - ands r0, r2 - strb r0, [r1] - adds r5, 0x4 - str r5, [sp, 0x34] - ldr r7, [sp, 0x38] - adds r7, 0x6 - str r7, [sp, 0x38] - movs r0, 0x1 - add r10, r0 - mov r1, r10 - cmp r1, 0xF - bgt _0818F37C - b _0818F17E -_0818F37C: - movs r7, 0 - ldr r2, [sp, 0x18] - strh r7, [r2] - movs r3, 0 - mov r10, r3 - ldr r6, =gBitTable - ldr r5, =gBaseStats -_0818F38A: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - mov r2, r10 - lsls r1, r2, 1 - ldr r3, =0x00000caa - adds r0, r3 - adds r0, r1 - ldrh r0, [r0] - subs r4, r0, 0x1 - movs r0, 0x64 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x3B - movs r2, 0 - bl GetMonData - ldr r2, [sp, 0x18] - ldrh r1, [r2] - adds r1, r0 - strh r1, [r2] - adds r0, r4, 0 - movs r1, 0x3C - movs r2, 0 - bl GetMonData - ldr r3, [sp, 0x18] - ldrh r1, [r3] - adds r1, r0 - strh r1, [r3] - adds r0, r4, 0 - movs r1, 0x3E - movs r2, 0 - bl GetMonData - ldr r2, [sp, 0x18] - ldrh r1, [r2] - adds r1, r0 - strh r1, [r2] - adds r0, r4, 0 - movs r1, 0x3F - movs r2, 0 - bl GetMonData - ldr r3, [sp, 0x18] - ldrh r1, [r3] - adds r1, r0 - strh r1, [r3] - adds r0, r4, 0 - movs r1, 0x3D - movs r2, 0 - bl GetMonData - ldr r2, [sp, 0x18] - ldrh r1, [r2] - adds r1, r0 - strh r1, [r2] - adds r0, r4, 0 - movs r1, 0x3A - movs r2, 0 - bl GetMonData - ldr r3, [sp, 0x18] - ldrh r1, [r3] - adds r1, r0 - strh r1, [r3] - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r0, [r1, 0x6] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - orrs r7, r0 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r0, [r1, 0x7] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - orrs r7, r0 - movs r0, 0x1 - add r10, r0 - mov r1, r10 - cmp r1, 0x2 - ble _0818F38A - movs r4, 0 - movs r1, 0x1 - movs r5, 0x1F -_0818F458: - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _0818F462 - adds r4, 0x1 -_0818F462: - asrs r7, 1 - subs r5, 0x1 - cmp r5, 0 - bge _0818F458 - bl sub_8165C40 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x14] - adds r2, r0, 0 - adds r0, r4, 0 - muls r0, r2 - movs r1, 0x14 - bl __divsi3 - ldr r3, [sp, 0x18] - ldrh r1, [r3] - adds r1, r0 - strh r1, [r3] - movs r5, 0x1 - mov r10, r5 - adds r6, r3, 0 - adds r6, 0x2 - movs r7, 0x2 - str r7, [sp, 0x30] -_0818F494: - movs r7, 0 - strh r7, [r6] - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - mov r2, r10 - lsls r1, r2, 2 - adds r0, r1 - ldr r3, =0x00000d24 - adds r0, r3 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - bl sub_8190168 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r5, 0 - ldr r0, [sp, 0x30] - mov r9, r0 -_0818F4BC: - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - mov r4, r9 - add r4, r10 - adds r4, r5 - lsls r4, 1 - ldr r2, =0x00000d64 - adds r0, r2 - adds r0, r4 - ldrh r1, [r0] - ldr r3, =gUnknown_0203BC8C - ldr r0, [r3] - lsls r1, 4 - adds r1, r0 - ldrh r0, [r1] - ldrb r3, [r1, 0xB] - ldrb r1, [r1, 0xC] - str r1, [sp] - ldr r1, [sp, 0x1C] - str r1, [sp, 0x4] - ldr r1, [sp, 0x14] - mov r2, r8 - bl sub_818F720 - ldr r2, [sp, 0x1C] - ldr r1, [r2, 0x4] - ldrh r0, [r6] - adds r0, r1 - ldr r1, [r2, 0x8] - adds r0, r1 - ldr r1, [r2, 0x10] - adds r0, r1 - ldr r1, [r2, 0x14] - adds r0, r1 - ldr r1, [r2, 0xC] - adds r0, r1 - ldr r1, [r2] - adds r0, r1 - strh r0, [r6] - ldr r3, =gSaveBlock2Ptr - ldr r0, [r3] - ldr r1, =0x00000d64 - adds r0, r1 - adds r0, r4 - ldrh r0, [r0] - ldr r2, =gUnknown_0203BC8C - ldr r1, [r2] - lsls r0, 4 - adds r0, r1 - ldrh r0, [r0] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - ldr r3, =gBaseStats - adds r1, r3 - ldrb r0, [r1, 0x6] - lsls r0, 2 - ldr r2, =gBitTable - adds r0, r2 - ldr r0, [r0] - orrs r7, r0 - ldrb r0, [r1, 0x7] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - orrs r7, r0 - adds r5, 0x1 - cmp r5, 0x2 - ble _0818F4BC - movs r4, 0 - movs r1, 0x1 - movs r5, 0x1F -_0818F54C: - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _0818F556 - adds r4, 0x1 -_0818F556: - asrs r7, 1 - subs r5, 0x1 - cmp r5, 0 - bge _0818F54C - ldr r3, [sp, 0x14] - adds r0, r4, 0 - muls r0, r3 - movs r1, 0x14 - bl __divsi3 - ldrh r1, [r6] - adds r1, r0 - strh r1, [r6] - adds r6, 0x2 - ldr r5, [sp, 0x30] - adds r5, 0x2 - str r5, [sp, 0x30] - movs r7, 0x1 - add r10, r7 - mov r0, r10 - cmp r0, 0xF - ble _0818F494 - movs r1, 0 - mov r10, r1 - ldr r2, =0x000003ff - mov r8, r2 -_0818F58A: - mov r5, r10 - adds r5, 0x1 - adds r7, r5, 0 - cmp r5, 0xF - bgt _0818F626 - mov r3, r10 - lsls r0, r3, 1 - ldr r1, [sp, 0x18] - adds r6, r0, r1 - lsls r0, r5, 1 - adds r4, r0, r1 -_0818F5A0: - ldrh r1, [r6] - ldrh r0, [r4] - cmp r1, r0 - bcc _0818F5C2 - cmp r1, r0 - bne _0818F61E - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - lsls r0, r5, 2 - adds r0, r1, r0 - ldr r2, =0x00000d24 - adds r0, r2 - ldrh r0, [r0] - lsls r2, r0, 22 - lsrs r0, r2, 22 - cmp r0, r8 - bne _0818F602 -_0818F5C2: - mov r0, r10 - adds r1, r5, 0 - ldr r2, [sp, 0x18] - bl sub_818F904 - b _0818F600 - .pool -_0818F600: - b _0818F61E -_0818F602: - mov r3, r10 - lsls r0, r3, 2 - adds r0, r1, r0 - ldr r1, =0x00000d24 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 22 - cmp r0, r2 - bls _0818F61E - mov r0, r10 - adds r1, r5, 0 - ldr r2, [sp, 0x18] - bl sub_818F904 -_0818F61E: - adds r4, 0x2 - adds r5, 0x1 - cmp r5, 0xF - ble _0818F5A0 -_0818F626: - mov r10, r7 - mov r2, r10 - cmp r2, 0xE - ble _0818F58A - bl sub_81A3610 - lsls r0, 24 - cmp r0, 0 - beq _0818F6EE - movs r3, 0 - mov r10, r3 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r4, =0x00000d24 - adds r1, r4 - ldrh r1, [r1] - lsls r1, 22 - lsrs r1, 22 - ldr r3, =0x000003ff - adds r2, r0, 0 - ldr r6, =gUnknown_0860D3F1 - cmp r1, r3 - beq _0818F674 - adds r5, r2, 0 -_0818F656: - movs r7, 0x1 - add r10, r7 - mov r0, r10 - cmp r0, 0xF - bgt _0818F674 - ldr r0, [r5] - mov r7, r10 - lsls r1, r7, 2 - adds r0, r1 - adds r0, r4 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - cmp r0, r3 - bne _0818F656 -_0818F674: - mov r1, r10 - lsls r0, r1, 1 - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0 - beq _0818F6AC - movs r5, 0 - ldr r2, [r2] - ldr r3, =0x00000d24 - adds r2, r3 - ldrh r1, [r2] - ldr r0, =0xfffffc00 - ands r0, r1 - ldr r7, =0x000003fe - adds r1, r7, 0 - b _0818F6BE - .pool -_0818F6AC: - movs r5, 0x1 - ldr r2, [r2] - ldr r0, =0x00000d28 - adds r2, r0 - ldrh r1, [r2] - ldr r0, =0xfffffc00 - ands r0, r1 - ldr r3, =0x000003fe - adds r1, r3, 0 -_0818F6BE: - orrs r0, r1 - strh r0, [r2] - movs r7, 0 - mov r10, r7 - lsls r0, r5, 1 - adds r0, r5 - lsls r4, r0, 1 -_0818F6CC: - mov r1, r10 - lsls r0, r1, 24 - lsrs r0, 24 - bl sub_81A4FF0 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - ldr r2, =0x00000d64 - adds r1, r2 - adds r1, r4 - strh r0, [r1] - adds r4, 0x2 - movs r3, 0x1 - add r10, r3 - mov r5, r10 - cmp r5, 0x2 - ble _0818F6CC -_0818F6EE: - ldr r0, [sp, 0x18] - bl Free - ldr r0, [sp, 0x1C] - bl Free - add sp, 0x3C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818F02C - - thumb_func_start sub_818F720 -sub_818F720: @ 818F720 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - adds r7, r1, 0 - mov r9, r2 - ldr r1, [sp, 0x3C] - ldr r2, [sp, 0x40] - mov r8, r2 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r3, 24 - lsrs r5, r3, 24 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x18] - movs r1, 0 - adds r4, r5, 0 - movs r3, 0x1 - movs r2, 0x5 -_0818F74C: - adds r0, r4, 0 - ands r0, r3 - cmp r0, 0 - beq _0818F756 - adds r1, 0x1 -_0818F756: - lsrs r4, 1 - subs r2, 0x1 - cmp r2, 0 - bge _0818F74C - movs r0, 0xFF - lsls r0, 1 - bl __divsi3 - lsls r0, 16 - lsrs r3, r0, 16 - lsls r0, r6, 3 - mov r10, r0 - movs r1, 0 - mov r12, r1 - mov r1, sp - movs r2, 0x5 -_0818F776: - mov r0, r12 - str r0, [r1] - adds r0, r5, 0 - ands r0, r4 - cmp r0, 0 - beq _0818F784 - str r3, [r1] -_0818F784: - lsls r0, r4, 25 - lsrs r4, r0, 24 - adds r1, 0x4 - subs r2, 0x1 - cmp r2, 0 - bge _0818F776 - ldr r0, =0x0000012f - cmp r6, r0 - bne _0818F7A0 - movs r0, 0x1 - b _0818F7CA - .pool -_0818F7A0: - mov r2, r10 - subs r0, r2, r6 - lsls r0, 2 - ldr r1, =gBaseStats - adds r0, r1 - ldrb r0, [r0] - lsls r0, 1 - mov r2, r9 - adds r1, r0, r2 - ldr r0, [sp] - cmp r0, 0 - bge _0818F7BA - adds r0, 0x3 -_0818F7BA: - asrs r0, 2 - adds r0, r1, r0 - muls r0, r7 - movs r1, 0x64 - bl __divsi3 - adds r0, r7 - adds r0, 0xA -_0818F7CA: - mov r1, r8 - str r0, [r1] - mov r2, r10 - subs r0, r2, r6 - lsls r0, 2 - ldr r1, =gBaseStats - adds r4, r0, r1 - ldrb r0, [r4, 0x1] - lsls r0, 1 - mov r2, r9 - adds r1, r0, r2 - ldr r0, [sp, 0x4] - cmp r0, 0 - bge _0818F7E8 - adds r0, 0x3 -_0818F7E8: - asrs r0, 2 - adds r0, r1, r0 - muls r0, r7 - movs r1, 0x64 - bl __divsi3 - adds r1, r0, 0 - adds r1, 0x5 - mov r0, r8 - str r1, [r0, 0x4] - lsls r1, 16 - lsrs r1, 16 - ldr r0, [sp, 0x18] - movs r2, 0x1 - bl nature_stat_mod - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - str r0, [r1, 0x4] - ldrb r0, [r4, 0x2] - lsls r0, 1 - mov r2, r9 - adds r1, r0, r2 - ldr r0, [sp, 0x8] - cmp r0, 0 - bge _0818F820 - adds r0, 0x3 -_0818F820: - asrs r0, 2 - adds r0, r1, r0 - muls r0, r7 - movs r1, 0x64 - bl __divsi3 - adds r1, r0, 0 - adds r1, 0x5 - mov r0, r8 - str r1, [r0, 0x8] - lsls r1, 16 - lsrs r1, 16 - ldr r0, [sp, 0x18] - movs r2, 0x2 - bl nature_stat_mod - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - str r0, [r1, 0x8] - ldrb r0, [r4, 0x3] - lsls r0, 1 - mov r2, r9 - adds r1, r0, r2 - ldr r0, [sp, 0xC] - cmp r0, 0 - bge _0818F858 - adds r0, 0x3 -_0818F858: - asrs r0, 2 - adds r0, r1, r0 - muls r0, r7 - movs r1, 0x64 - bl __divsi3 - adds r1, r0, 0 - adds r1, 0x5 - mov r0, r8 - str r1, [r0, 0xC] - lsls r1, 16 - lsrs r1, 16 - ldr r0, [sp, 0x18] - movs r2, 0x3 - bl nature_stat_mod - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - str r0, [r1, 0xC] - ldrb r0, [r4, 0x4] - lsls r0, 1 - mov r2, r9 - adds r1, r0, r2 - ldr r0, [sp, 0x10] - cmp r0, 0 - bge _0818F890 - adds r0, 0x3 -_0818F890: - asrs r0, 2 - adds r0, r1, r0 - muls r0, r7 - movs r1, 0x64 - bl __divsi3 - adds r1, r0, 0 - adds r1, 0x5 - mov r0, r8 - str r1, [r0, 0x10] - lsls r1, 16 - lsrs r1, 16 - ldr r0, [sp, 0x18] - movs r2, 0x4 - bl nature_stat_mod - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - str r0, [r1, 0x10] - ldrb r0, [r4, 0x5] - lsls r0, 1 - mov r1, r9 - adds r2, r0, r1 - ldr r0, [sp, 0x14] - cmp r0, 0 - bge _0818F8C8 - adds r0, 0x3 -_0818F8C8: - asrs r0, 2 - adds r0, r2, r0 - muls r0, r7 - movs r1, 0x64 - bl __divsi3 - adds r1, r0, 0 - adds r1, 0x5 - mov r2, r8 - str r1, [r2, 0x14] - lsls r1, 16 - lsrs r1, 16 - ldr r0, [sp, 0x18] - movs r2, 0x5 - bl nature_stat_mod - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - str r0, [r1, 0x14] - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818F720 - - thumb_func_start sub_818F904 -sub_818F904: @ 818F904 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r3, r0, 1 - mov r12, r3 - adds r4, r3, r2 - ldrh r5, [r4] - lsls r7, r1, 1 - mov r9, r7 - add r2, r9 - ldrh r3, [r2] - strh r3, [r4] - strh r5, [r2] - ldr r2, =gSaveBlock2Ptr - ldr r5, [r2] - lsls r6, r0, 2 - adds r6, r5, r6 - ldr r3, =0x00000d24 - adds r6, r3 - ldrh r7, [r6] - mov r10, r7 - mov r2, r10 - lsls r2, 22 - mov r8, r2 - lsls r2, r1, 2 - adds r5, r2 - adds r5, r3 - ldrh r4, [r5] - lsls r4, 22 - lsrs r4, 22 - ldr r3, =0xfffffc00 - adds r2, r3, 0 - mov r7, r10 - ands r2, r7 - orrs r2, r4 - strh r2, [r6] - mov r2, r8 - lsrs r2, 22 - mov r8, r2 - ldrh r2, [r5] - ands r3, r2 - mov r7, r8 - orrs r3, r7 - strh r3, [r5] - ldr r2, =gSaveBlock2Ptr - mov r8, r2 - add r12, r0 - add r9, r1 - mov r3, r9 - lsls r4, r3, 1 - mov r7, r12 - lsls r3, r7, 1 - ldr r7, =0x00000d64 - movs r6, 0x2 -_0818F974: - mov r1, r8 - ldr r0, [r1] - adds r0, r7 - adds r2, r0, r3 - ldrh r5, [r2] - adds r0, r4 - ldrh r1, [r0] - strh r1, [r2] - strh r5, [r0] - adds r4, 0x2 - adds r3, 0x2 - subs r6, 0x1 - cmp r6, 0 - bge _0818F974 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818F904 - - thumb_func_start sub_818F9B0 -sub_818F9B0: @ 818F9B0 - push {lr} - ldr r0, =gStringVar1 - ldr r2, =gUnknown_085CCD20 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - ldr r3, =0x00000cb2 - adds r1, r3 - ldrh r1, [r1] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - pop {r0} - bx r0 - .pool - thumb_func_end sub_818F9B0 - - thumb_func_start sub_818F9E0 -sub_818F9E0: @ 818F9E0 - push {lr} - ldr r0, =gStringVar1 - ldr r2, =gUnknown_085CCD20 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - ldr r3, =0x00000cb2 - adds r1, r3 - ldrh r1, [r1] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - ldr r0, =gStringVar2 - ldr r1, =gUnknown_02038BCA - ldrh r1, [r1] - bl sub_8195898 - pop {r0} - bx r0 - .pool - thumb_func_end sub_818F9E0 - - thumb_func_start sub_818FA20 -sub_818FA20: @ 818FA20 - push {r4,r5,lr} - ldr r1, =gUnknown_0203CD70 - movs r0, 0 - str r0, [r1] - ldr r4, =gPlayerParty - adds r0, r4, 0 - movs r1, 0x3A - movs r2, 0 - bl GetMonData - ldr r5, =gUnknown_0203CD74 - str r0, [r5] - adds r4, 0x64 - adds r0, r4, 0 - movs r1, 0x3A - movs r2, 0 - bl GetMonData - ldr r1, [r5] - adds r1, r0 - str r1, [r5] - bl calc_player_party_count - ldr r0, =gUnknown_02038BCA - ldrh r0, [r0] - bl sub_8195358 - lsls r0, 16 - lsrs r0, 16 - bl sub_818FBDC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818FA20 - - thumb_func_start sub_818FA74 -sub_818FA74: @ 818FA74 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x30 - adds r5, r2, 0 - str r3, [sp, 0x14] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x10] - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x28] - lsls r5, 24 - lsrs r5, 24 - add r0, sp, 0xC - movs r1, 0x1 - negs r1, r1 - strb r1, [r0] - ldr r0, [sp, 0x28] - bl sub_8190168 - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - str r6, [sp, 0x2C] - bl sub_8165C40 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - movs r0, 0x64 - ldr r4, [sp, 0x10] - adds r3, r4, 0 - muls r3, r0 - str r3, [sp, 0x18] - ldr r6, =gEnemyParty - adds r0, r3, r6 - ldr r7, =gSaveBlock2Ptr - ldr r4, [r7] - lsls r5, 1 - ldr r3, [sp, 0x28] - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 1 - adds r1, r5, r1 - ldr r6, =0x00000d64 - adds r4, r6 - adds r4, r1 - ldrh r3, [r4] - ldr r7, =gUnknown_0203BC8C - ldr r7, [r7] - mov r8, r7 - lsls r3, 4 - add r3, r8 - ldrh r1, [r3] - ldrb r3, [r3, 0xC] - ldr r6, [sp, 0x2C] - str r6, [sp] - ldrh r4, [r4] - lsls r4, 4 - add r4, r8 - ldrb r4, [r4, 0xB] - str r4, [sp, 0x4] - ldr r7, [sp, 0x14] - str r7, [sp, 0x8] - bl sub_8068634 - add r0, sp, 0xC - movs r1, 0x1 - negs r1, r1 - strb r1, [r0] - movs r6, 0 - ldr r2, [sp, 0x18] - str r2, [sp, 0x1C] - mov r10, r5 - ldr r3, =0x00000d64 - mov r9, r3 - ldr r3, =gUnknown_0203BC8C - mov r4, r10 - str r4, [sp, 0x20] -_0818FB18: - ldr r7, =gSaveBlock2Ptr - ldr r1, [r7] - ldr r2, [sp, 0x28] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 1 - mov r8, r0 - mov r5, r10 - add r5, r8 - add r1, r9 - adds r1, r5 - ldrh r0, [r1] - ldr r1, [r3] - lsls r0, 4 - adds r0, r1 - lsls r4, r6, 1 - adds r0, 0x2 - adds r0, r4 - ldrh r1, [r0] - lsls r2, r6, 24 - lsrs r2, 24 - mov r12, r2 - ldr r7, [sp, 0x1C] - ldr r2, =gEnemyParty - adds r0, r7, r2 - mov r2, r12 - str r3, [sp, 0x24] - bl sub_80691F4 - ldr r7, =gSaveBlock2Ptr - ldr r0, [r7] - add r0, r9 - adds r0, r5 - ldrh r0, [r0] - ldr r3, [sp, 0x24] - ldr r1, [r3] - lsls r0, 4 - adds r0, r1 - adds r0, 0x2 - adds r0, r4 - ldrh r0, [r0] - cmp r0, 0xDA - bne _0818FB74 - movs r1, 0 - add r0, sp, 0xC - strb r1, [r0] -_0818FB74: - adds r6, 0x1 - cmp r6, 0x3 - ble _0818FB18 - movs r0, 0x64 - ldr r1, [sp, 0x10] - adds r4, r1, 0 - muls r4, r0 - ldr r0, =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x20 - add r2, sp, 0xC - bl pokemon_setattr - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, [sp, 0x20] - add r1, r8 - ldr r2, =0x00000d64 - adds r0, r2 - adds r0, r1 - ldrh r0, [r0] - ldr r1, =gUnknown_0203BC8C - ldr r1, [r1] - lsls r0, 4 - adds r0, r1 - ldrb r2, [r0, 0xA] - lsls r2, 1 - ldr r0, =gBattleFrontierHeldItems - adds r2, r0 - adds r0, r4, 0 - movs r1, 0xC - bl pokemon_setattr - add sp, 0x30 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818FA74 - - thumb_func_start sub_818FBDC -sub_818FBDC: @ 818FBDC - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - movs r6, 0 - bl zero_enemy_party_data - mov r0, r8 - bl sub_818FC78 - adds r5, r0, 0 - bl Random - adds r4, r0, 0 - bl Random - lsls r4, 16 - lsrs r7, r4, 16 - lsls r0, 16 - orrs r7, r0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x5 - bls _0818FC46 - movs r4, 0 -_0818FC20: - movs r0, 0x1 - ands r0, r5 - cmp r0, 0 - beq _0818FC3C - lsls r2, r4, 24 - lsrs r2, 24 - adds r0, r6, 0 - mov r1, r8 - adds r3, r7, 0 - bl sub_818FA74 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0818FC3C: - asrs r5, 1 - adds r4, 0x1 - cmp r4, 0x2 - ble _0818FC20 - b _0818FC6C -_0818FC46: - movs r4, 0x2 -_0818FC48: - movs r0, 0x4 - ands r0, r5 - cmp r0, 0 - beq _0818FC64 - lsls r2, r4, 24 - lsrs r2, 24 - adds r0, r6, 0 - mov r1, r8 - adds r3, r7, 0 - bl sub_818FA74 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0818FC64: - lsls r5, 1 - subs r4, 0x1 - cmp r4, 0 - bge _0818FC48 -_0818FC6C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_818FBDC - - thumb_func_start sub_818FC78 -sub_818FC78: @ 818FC78 - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r5, r4, 0 - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _0818FCA2 - adds r0, r4, 0 - movs r1, 0 - bl sub_818FCBC - cmp r0, 0 - bne _0818FCB6 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_818FDB8 - b _0818FCB6 -_0818FCA2: - adds r0, r5, 0 - movs r1, 0 - bl sub_818FDB8 - cmp r0, 0 - bne _0818FCB6 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_818FCBC -_0818FCB6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_818FC78 - - thumb_func_start sub_818FCBC -sub_818FCBC: @ 818FCBC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0xC] - movs r0, 0 - mov r9, r0 - mov r1, r8 - lsls r1, 2 - str r1, [sp, 0x18] -_0818FCDE: - mov r2, r9 - lsls r0, r2, 2 - mov r2, sp - adds r1, r2, r0 - movs r0, 0 - str r0, [r1] - movs r7, 0 - mov r0, r9 - adds r0, 0x1 - str r0, [sp, 0x14] - adds r5, r1, 0 - mov r1, r9 - lsls r1, 1 - str r1, [sp, 0x10] -_0818FCFA: - movs r6, 0 - adds r2, r7, 0x1 - mov r10, r2 -_0818FD00: - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r2, [sp, 0x18] - adds r0, r1, r2 - ldr r2, =0x00000d24 - adds r0, r2 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - ldr r2, =0x000003fe - cmp r0, r2 - bne _0818FD3C - mov r1, r9 - lsls r0, r1, 24 - lsls r1, r7, 24 - lsrs r0, 24 - lsrs r1, 24 - bl sub_81A5060 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - b _0818FD60 - .pool -_0818FD3C: - mov r2, r8 - lsls r0, r2, 1 - add r0, r8 - lsls r0, 1 - ldr r2, [sp, 0x10] - adds r0, r2, r0 - ldr r2, =0x00000d64 - adds r1, r2 - adds r1, r0 - ldrh r0, [r1] - ldr r1, =gUnknown_0203BC8C - ldr r1, [r1] - lsls r0, 4 - adds r0, r1 - lsls r1, r7, 1 - adds r0, 0x2 - adds r0, r1 - ldrh r4, [r0] -_0818FD60: - movs r0, 0x64 - muls r0, r6 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0 - bl sub_818FFC0 - ldr r1, [r5] - adds r1, r0 - str r1, [r5] - adds r6, 0x1 - cmp r6, 0x2 - ble _0818FD00 - mov r7, r10 - cmp r7, 0x3 - ble _0818FCFA - ldr r0, [sp, 0x14] - mov r9, r0 - cmp r0, 0x2 - ble _0818FCDE - mov r0, sp - ldr r1, [sp, 0xC] - bl sub_818FEB4 - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818FCBC - - thumb_func_start sub_818FDB8 -sub_818FDB8: @ 818FDB8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0xC] - movs r0, 0 - mov r9, r0 - mov r1, r8 - lsls r1, 2 - str r1, [sp, 0x18] -_0818FDDA: - mov r2, r9 - lsls r0, r2, 2 - mov r2, sp - adds r1, r2, r0 - movs r0, 0 - str r0, [r1] - movs r7, 0 - mov r0, r9 - adds r0, 0x1 - str r0, [sp, 0x14] - adds r5, r1, 0 - mov r1, r9 - lsls r1, 1 - str r1, [sp, 0x10] -_0818FDF6: - movs r6, 0 - adds r2, r7, 0x1 - mov r10, r2 -_0818FDFC: - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r2, [sp, 0x18] - adds r0, r1, r2 - ldr r2, =0x00000d24 - adds r0, r2 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - ldr r2, =0x000003fe - cmp r0, r2 - bne _0818FE38 - mov r1, r9 - lsls r0, r1, 24 - lsls r1, r7, 24 - lsrs r0, 24 - lsrs r1, 24 - bl sub_81A5060 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - b _0818FE5C - .pool -_0818FE38: - mov r2, r8 - lsls r0, r2, 1 - add r0, r8 - lsls r0, 1 - ldr r2, [sp, 0x10] - adds r0, r2, r0 - ldr r2, =0x00000d64 - adds r1, r2 - adds r1, r0 - ldrh r0, [r1] - ldr r1, =gUnknown_0203BC8C - ldr r1, [r1] - lsls r0, 4 - adds r0, r1 - lsls r1, r7, 1 - adds r0, 0x2 - adds r0, r1 - ldrh r4, [r0] -_0818FE5C: - movs r0, 0x64 - muls r0, r6 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0x1 - bl sub_818FFC0 - ldr r1, [r5] - adds r1, r0 - str r1, [r5] - adds r6, 0x1 - cmp r6, 0x2 - ble _0818FDFC - mov r7, r10 - cmp r7, 0x3 - ble _0818FDF6 - ldr r0, [sp, 0x14] - mov r9, r0 - cmp r0, 0x2 - ble _0818FDDA - mov r0, sp - ldr r1, [sp, 0xC] - bl sub_818FEB4 - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818FDB8 - - thumb_func_start sub_818FEB4 -sub_818FEB4: @ 818FEB4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - mov r10, r0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - str r0, [sp, 0xC] - movs r3, 0x2 - add r0, sp, 0x8 -_0818FECE: - str r3, [r0] - subs r0, 0x4 - subs r3, 0x1 - cmp r3, 0 - bge _0818FECE - mov r3, r10 - ldr r2, [r3] - ldr r0, [r3, 0x4] - cmp r2, r0 - bne _0818FF20 - ldr r0, [r3, 0x8] - cmp r2, r0 - bne _0818FF20 - cmp r1, 0 - beq _0818FFAA - movs r3, 0 - ldr r4, =gBitTable -_0818FEF0: - str r3, [sp, 0x14] - bl Random - movs r1, 0x3 - ands r1, r0 - ldr r3, [sp, 0x14] - cmp r1, 0x3 - beq _0818FF16 - lsls r0, r1, 2 - adds r0, r4 - ldr r1, [r0] - ldr r0, [sp, 0xC] - ands r0, r1 - cmp r0, 0 - bne _0818FF16 - ldr r0, [sp, 0xC] - orrs r0, r1 - str r0, [sp, 0xC] - adds r3, 0x1 -_0818FF16: - cmp r3, 0x2 - bne _0818FEF0 - b _0818FFAA - .pool -_0818FF20: - movs r3, 0 - mov r9, sp - mov r8, r10 -_0818FF26: - adds r2, r3, 0x1 - cmp r2, 0x2 - bgt _0818FF84 - mov r6, r8 - mov r7, r9 - lsls r0, r2, 2 - mov r1, sp - adds r5, r0, r1 - mov r1, r10 - adds r4, r0, r1 -_0818FF3A: - ldr r0, [r6] - ldr r1, [r4] - cmp r0, r1 - bge _0818FF4E - str r1, [r6] - str r0, [r4] - ldr r1, [r7] - ldr r0, [r5] - str r0, [r7] - str r1, [r5] -_0818FF4E: - ldr r1, [r6] - ldr r0, [r4] - cmp r1, r0 - bne _0818FF7A - str r2, [sp, 0x10] - str r3, [sp, 0x14] - bl Random - movs r1, 0x1 - ands r1, r0 - ldr r2, [sp, 0x10] - ldr r3, [sp, 0x14] - cmp r1, 0 - beq _0818FF7A - ldr r1, [r6] - ldr r0, [r4] - str r0, [r6] - str r1, [r4] - ldr r1, [r7] - ldr r0, [r5] - str r0, [r7] - str r1, [r5] -_0818FF7A: - adds r5, 0x4 - adds r4, 0x4 - adds r2, 0x1 - cmp r2, 0x2 - ble _0818FF3A -_0818FF84: - movs r4, 0x4 - add r9, r4 - add r8, r4 - adds r3, 0x1 - cmp r3, 0x1 - ble _0818FF26 - ldr r2, =gBitTable - mov r1, sp - movs r3, 0x1 -_0818FF96: - ldm r1!, {r0} - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ldr r4, [sp, 0xC] - orrs r4, r0 - str r4, [sp, 0xC] - subs r3, 0x1 - cmp r3, 0 - bge _0818FF96 -_0818FFAA: - ldr r0, [sp, 0xC] - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818FEB4 - - thumb_func_start sub_818FFC0 -sub_818FFC0: @ 818FFC0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r3, r0, 0 - adds r4, r1, 0 - str r2, [sp] - movs r6, 0 - movs r2, 0x14 - cmp r3, 0 - beq _0818FFF0 - ldr r0, =0x0000ffff - cmp r3, r0 - beq _0818FFF0 - ldr r0, =gBattleMoves - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 2 - adds r3, r1, r0 - ldrb r0, [r3, 0x1] - cmp r0, 0 - bne _0818FFFC -_0818FFF0: - movs r0, 0 - b _08190156 - .pool -_0818FFFC: - ldr r1, =gBaseStats - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x6] - mov r10, r1 - ldrb r1, [r0, 0x7] - mov r9, r1 - ldrb r0, [r0, 0x16] - mov r8, r0 - ldrb r3, [r3, 0x2] - str r3, [sp, 0x4] - cmp r0, 0x1A - bne _0819002C - cmp r3, 0x4 - bne _0819002C - ldr r0, [sp] - cmp r0, 0x1 - bne _081900AA - movs r2, 0x8 - b _081900A4 - .pool -_0819002C: - ldr r0, =gUnknown_0831ACE8 - adds r1, r6, r0 - ldrb r0, [r1] - ldr r7, =gUnknown_0831ACE8 - cmp r0, 0xFF - beq _081900A4 - adds r4, r1, 0 -_0819003A: - ldrb r0, [r4] - cmp r0, 0xFE - beq _08190096 - ldrb r0, [r4] - ldr r1, [sp, 0x4] - cmp r0, r1 - bne _08190096 - ldrb r0, [r4, 0x1] - adds r5, r6, 0x1 - cmp r0, r10 - bne _0819006C - adds r1, r6, 0x2 - mov r0, r8 - cmp r0, 0x19 - bne _0819005E - ldrb r0, [r4, 0x2] - cmp r0, 0x28 - bne _0819006C -_0819005E: - adds r0, r1, r7 - ldrb r0, [r0] - muls r0, r2 - movs r1, 0xA - bl __divsi3 - adds r2, r0, 0 -_0819006C: - adds r0, r5, r7 - ldrb r0, [r0] - cmp r0, r9 - bne _08190096 - cmp r10, r9 - beq _08190096 - adds r1, r6, 0x2 - mov r0, r8 - cmp r0, 0x19 - bne _08190088 - adds r0, r1, r7 - ldrb r0, [r0] - cmp r0, 0x28 - bne _08190096 -_08190088: - adds r0, r1, r7 - ldrb r0, [r0] - muls r0, r2 - movs r1, 0xA - bl __divsi3 - adds r2, r0, 0 -_08190096: - adds r4, 0x3 - adds r6, 0x3 - ldr r1, =gUnknown_0831ACE8 - adds r0, r6, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _0819003A -_081900A4: - ldr r0, [sp] - cmp r0, 0x1 - beq _081900E0 -_081900AA: - ldr r1, [sp] - cmp r1, 0x1 - bgt _081900BC - cmp r1, 0 - beq _081900C4 - b _08190154 - .pool -_081900BC: - ldr r0, [sp] - cmp r0, 0x2 - beq _08190114 - b _08190154 -_081900C4: - cmp r2, 0xA - beq _08190146 - cmp r2, 0xA - ble _08190146 - cmp r2, 0x28 - beq _0819014A - cmp r2, 0x28 - bgt _081900DA - cmp r2, 0x14 - beq _08190104 - b _08190146 -_081900DA: - cmp r2, 0x50 - bne _08190146 - b _08190100 -_081900E0: - cmp r2, 0xA - beq _08190104 - cmp r2, 0xA - bgt _081900F2 - cmp r2, 0 - beq _08190100 - cmp r2, 0x5 - beq _0819014A - b _08190146 -_081900F2: - cmp r2, 0x28 - beq _08190108 - cmp r2, 0x28 - ble _08190146 - cmp r2, 0x50 - beq _0819010E - b _08190146 -_08190100: - movs r2, 0x8 - b _08190154 -_08190104: - movs r2, 0x2 - b _08190154 -_08190108: - movs r2, 0x2 - negs r2, r2 - b _08190154 -_0819010E: - movs r2, 0x4 - negs r2, r2 - b _08190154 -_08190114: - cmp r2, 0xA - beq _08190146 - cmp r2, 0xA - bgt _08190126 - cmp r2, 0 - beq _0819013A - cmp r2, 0x5 - beq _08190140 - b _08190146 -_08190126: - cmp r2, 0x28 - beq _0819014E - cmp r2, 0x28 - bgt _08190134 - cmp r2, 0x14 - beq _0819014A - b _08190146 -_08190134: - cmp r2, 0x50 - beq _08190152 - b _08190146 -_0819013A: - movs r2, 0x10 - negs r2, r2 - b _08190154 -_08190140: - movs r2, 0x8 - negs r2, r2 - b _08190154 -_08190146: - movs r2, 0 - b _08190154 -_0819014A: - movs r2, 0x4 - b _08190154 -_0819014E: - movs r2, 0xC - b _08190154 -_08190152: - movs r2, 0x14 -_08190154: - adds r0, r2, 0 -_08190156: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_818FFC0 - - thumb_func_start sub_8190168 -sub_8190168: @ 8190168 - push {lr} - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - cmp r0, 0x63 - bls _0819019A - movs r1, 0x6 - cmp r0, 0x77 - bls _0819019A - movs r1, 0x9 - cmp r0, 0x8B - bls _0819019A - movs r1, 0xC - cmp r0, 0x9F - bls _0819019A - movs r1, 0xF - cmp r0, 0xB3 - bls _0819019A - movs r1, 0x12 - cmp r0, 0xC7 - bls _0819019A - movs r1, 0x1F - cmp r0, 0xDB - bhi _0819019A - movs r1, 0x15 -_0819019A: - adds r0, r1, 0 - pop {r1} - bx r1 - thumb_func_end sub_8190168 - - thumb_func_start sub_81901A0 -sub_81901A0: @ 81901A0 - push {r4-r7,lr} - adds r3, r0, 0 - adds r2, r1, 0 - movs r5, 0 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r4, =0x00000d24 - adds r1, r4 - ldrh r1, [r1] - lsls r1, 22 - lsrs r1, 22 - mov r12, r0 - ldr r6, =gUnknown_0860D10C - cmp r1, r2 - beq _081901D8 - mov r7, r12 -_081901C0: - adds r5, 0x1 - cmp r5, 0xF - bgt _081901D8 - ldr r0, [r7] - lsls r1, r5, 2 - adds r0, r1 - adds r0, r4 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - cmp r0, r2 - bne _081901C0 -_081901D8: - cmp r3, 0 - beq _0819026C - cmp r3, 0x3 - bne _081901FC - lsls r0, r5, 2 - adds r1, r0, 0x3 - adds r1, r6 - ldrb r1, [r1] - adds r4, r1, 0 - adds r4, 0x8 - b _08190206 - .pool -_081901FC: - lsls r0, r5, 2 - adds r1, r3, r0 - adds r1, r6 - ldrb r1, [r1] - adds r4, r1, 0x4 -_08190206: - adds r0, r3, r0 - adds r0, r6 - ldrb r2, [r0] - cmp r2, r4 - bge _08190256 - ldr r1, =gUnknown_0860D14C - adds r0, r2, r1 - ldrb r3, [r0] - adds r6, r1, 0 - cmp r3, r5 - beq _08190234 - mov r1, r12 - ldr r0, [r1] - lsls r1, r3, 2 - adds r0, r1 - ldr r3, =0x00000d25 - adds r0, r3 - b _0819024E - .pool -_08190234: - adds r2, 0x1 - cmp r2, r4 - bge _08190256 - adds r0, r2, r6 - ldrb r1, [r0] - cmp r1, r5 - beq _08190234 - mov r3, r12 - ldr r0, [r3] - lsls r1, 2 - adds r0, r1 - ldr r1, =0x00000d25 - adds r0, r1 -_0819024E: - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _08190234 -_08190256: - cmp r2, r4 - beq _08190286 - ldr r0, =gUnknown_0860D14C - adds r0, r2, r0 - ldrb r0, [r0] - b _08190292 - .pool -_0819026C: - mov r3, r12 - ldr r1, [r3] - lsls r0, r5, 2 - adds r0, r6 - ldrb r2, [r0] - lsls r0, r2, 2 - adds r1, r0 - ldr r0, =0x00000d25 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 29 - cmp r0, 0 - bge _08190290 -_08190286: - movs r0, 0xFF - b _08190292 - .pool -_08190290: - adds r0, r2, 0 -_08190292: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81901A0 - - thumb_func_start sub_8190298 -sub_8190298: @ 8190298 - push {lr} - bl sub_81902AC - ldr r1, =gUnknown_02038BCA - strh r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_8190298 - - thumb_func_start sub_81902AC -sub_81902AC: @ 81902AC - push {r4,lr} - ldr r0, =gSaveBlock2Ptr - ldr r4, [r0] - ldr r1, =0x00000cb2 - adds r0, r4, r1 - ldrh r0, [r0] - ldr r1, =0x000003ff - bl sub_81901A0 - lsls r0, 2 - adds r4, r0 - ldr r0, =0x00000d24 - adds r4, r0 - ldrh r0, [r4] - lsls r0, 22 - lsrs r0, 22 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81902AC - - thumb_func_start sub_81902E4 -sub_81902E4: @ 81902E4 - push {lr} - ldr r0, =gUnknown_02038BCA - ldrh r0, [r0] - movs r1, 0 - bl sub_8162614 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81902E4 - - thumb_func_start sub_81902F8 -sub_81902F8: @ 81902F8 - push {r4,lr} - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =gUnknown_020375E2 - ldrh r1, [r1] - ldr r2, =0x00000ca8 - adds r0, r2 - strb r1, [r0] - movs r0, 0x80 - lsls r0, 7 - movs r1, 0 - bl VarSet - ldr r1, [r4] - ldr r0, =0x00000ca9 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - bl sub_81A4C30 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81902F8 - - thumb_func_start sub_819033C -sub_819033C: @ 819033C - push {r4,r5,lr} - ldr r5, =gSaveBlock2Ptr - ldr r0, [r5] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r4, [r0] - lsls r4, 30 - lsrs r4, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 24 - ldr r1, [r5] - lsls r4, 1 - lsrs r0, 22 - adds r4, r0 - ldr r3, =0x00000d0c - adds r1, r3 - adds r1, r4 - ldrh r0, [r1] - ldr r2, =0x000003e6 - cmp r0, r2 - bhi _0819036E - adds r0, 0x1 - strh r0, [r1] -_0819036E: - ldr r0, [r5] - ldr r1, =0x00000d1c - adds r0, r1 - adds r1, r0, r4 - ldrh r0, [r1] - cmp r0, r2 - bhi _08190380 - adds r0, 0x1 - strh r0, [r1] -_08190380: - ldr r0, [r5] - adds r1, r0, r3 - adds r1, r4 - ldr r2, =0x00000d14 - adds r0, r2 - adds r0, r4 - ldrh r1, [r1] - ldrh r2, [r0] - cmp r1, r2 - bls _08190396 - strh r1, [r0] -_08190396: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819033C - - thumb_func_start sub_81903B8 -sub_81903B8: @ 81903B8 - push {r4,r5,lr} - ldr r0, =sub_8190400 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - movs r5, 0 - strh r5, [r4, 0x8] - bl sub_81902AC - lsls r0, 16 - lsrs r0, 16 - bl sub_8195358 - strh r0, [r4, 0xA] - strh r5, [r4, 0xC] - strh r5, [r4, 0xE] - ldr r0, =sub_8194B54 - bl SetMainCallback2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81903B8 - - thumb_func_start sub_8190400 -sub_8190400: @ 8190400 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r1, =gTasks - lsls r0, 2 - add r0, r10 - lsls r0, 3 - adds r6, r0, r1 - movs r0, 0xA - ldrsh r5, [r6, r0] - movs r2, 0xC - ldrsh r1, [r6, r2] - mov r9, r1 - movs r0, 0xE - ldrsh r7, [r6, r0] - movs r1, 0x8 - ldrsh r4, [r6, r1] - cmp r4, 0x1 - beq _08190508 - cmp r4, 0x1 - bgt _08190440 - cmp r4, 0 - beq _0819044E - b _08190772 - .pool -_08190440: - cmp r4, 0x2 - bne _08190446 - b _08190570 -_08190446: - cmp r4, 0x3 - bne _0819044C - b _08190634 -_0819044C: - b _08190772 -_0819044E: - movs r0, 0 - bl SetHBlankCallback - movs r0, 0 - bl SetVBlankCallback - movs r0, 0x1 - bl EnableInterrupts - str r4, [sp, 0x4] - movs r1, 0xC0 - lsls r1, 19 - ldr r2, =0x05006000 - add r0, sp, 0x4 - bl CpuSet - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_0860CE84 - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - ldr r0, =gUnknown_0860CEB4 - bl InitWindows - bl DeactivateAllTextPrinters - ldr r0, =gUnknown_02022E14 - strh r4, [r0] - ldr r0, =gUnknown_02022E16 - strh r4, [r0] - ldr r0, =gUnknown_02022E18 - strh r4, [r0] - ldr r0, =gUnknown_02022E1A - strh r4, [r0] - ldr r0, =gUnknown_02022E20 - strh r4, [r0] - ldr r0, =gUnknown_02022E22 - strh r4, [r0] - mov r2, r9 - cmp r2, 0x2 - bne _081904DC - ldr r0, =gUnknown_02022E1C - strh r4, [r0] - ldr r0, =gUnknown_02022E1E - strh r4, [r0] - b _081904E6 - .pool -_081904DC: - ldr r0, =gUnknown_02022E1C - strh r4, [r0] - ldr r1, =gUnknown_02022E1E - movs r0, 0xA0 - strh r0, [r1] -_081904E6: - ldr r0, =gTasks - mov r2, r10 - lsls r1, r2, 2 - add r1, r10 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _08190772 - .pool -_08190508: - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4C - movs r1, 0 - bl SetGpuReg - movs r0, 0x40 - movs r1, 0 - bl SetGpuReg - movs r0, 0x44 - movs r1, 0 - bl SetGpuReg - movs r0, 0x42 - movs r1, 0 - bl SetGpuReg - movs r0, 0x46 - movs r1, 0 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4A - movs r1, 0x3F - bl SetGpuReg - bl ResetPaletteFade - bl ResetAllObjectData - bl ResetObjectPaletteAllocator - ldr r1, =gUnknown_0300301C - movs r0, 0x4 - strb r0, [r1] - b _08190602 - .pool -_08190570: - ldr r1, =gUnknown_08D83D50 - movs r5, 0x80 - lsls r5, 6 - movs r7, 0 - str r7, [sp] - movs r0, 0x2 - adds r2, r5, 0 - movs r3, 0 - bl copy_decompressed_tile_data_to_vram_autofree - ldr r1, =gUnknown_08D84970 - movs r4, 0x1 - str r4, [sp] - movs r0, 0x2 - adds r2, r5, 0 - movs r3, 0 - bl copy_decompressed_tile_data_to_vram_autofree - ldr r1, =gUnknown_08D84F00 - movs r2, 0x80 - lsls r2, 4 - str r4, [sp] - movs r0, 0x3 - movs r3, 0 - bl copy_decompressed_tile_data_to_vram_autofree - ldr r0, =gUnknown_0860CF50 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_08D85358 - movs r4, 0x80 - lsls r4, 2 - movs r1, 0 - adds r2, r4, 0 - bl LoadCompressedPalette - ldr r0, =gUnknown_08D85444 - movs r1, 0x80 - lsls r1, 1 - adds r2, r4, 0 - bl LoadCompressedPalette - ldr r0, =gUnknown_08D85600 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadCompressedPalette - mov r0, r9 - cmp r0, 0x2 - bne _081905DE - ldr r0, =gUnknown_08D854C8 - movs r1, 0x50 - movs r2, 0x20 - bl LoadCompressedPalette -_081905DE: - str r7, [sp, 0x8] - add r0, sp, 0x8 - ldr r1, =gPlttBufferFaded - ldr r2, =0x05000100 - bl CpuSet - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg -_08190602: - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] - b _08190772 - .pool -_08190634: - ldr r0, =sub_8194B70 - bl SetVBlankCallback - ldr r4, =gUnknown_0203CD78 - movs r0, 0x14 - bl AllocZeroed - str r0, [r4] - movs r6, 0 - lsls r5, 24 - movs r2, 0xFF -_0819064A: - ldr r1, [r4] - adds r1, r6 - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - adds r6, 0x1 - cmp r6, 0xF - ble _0819064A - bl sub_80D2F04 - ldr r0, =sub_8190CD4 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - strh r1, [r0, 0xC] - mov r1, r9 - strh r1, [r0, 0xE] - strh r7, [r0, 0x10] - mov r2, r9 - cmp r2, 0x2 - bne _081906A8 - lsrs r1, r5, 24 - movs r0, 0 - bl sub_819314C - ldr r0, =gUnknown_0203CD78 - ldr r1, [r0] - movs r0, 0x1 - strb r0, [r1, 0x10] - b _081906B0 - .pool -_081906A8: - lsrs r1, r5, 24 - movs r0, 0 - bl sub_81924E0 -_081906B0: - movs r1, 0xFA - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - mov r0, r9 - cmp r0, 0 - beq _0819076C - ldr r5, =gUnknown_0860D068 - adds r0, r5, 0 - movs r1, 0x78 - movs r2, 0x4 - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r7, r0, 24 - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - ldr r1, =gUnknown_02020630 - mov r8, r1 - add r4, r8 - adds r0, r4, 0 - movs r1, 0 - bl StartObjectImageAnim - strh r6, [r4, 0x2E] - adds r0, r5, 0 - movs r1, 0x78 - movs r2, 0x9C - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r7, r0, 24 - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - add r4, r8 - adds r0, r4, 0 - movs r1, 0x1 - bl StartObjectImageAnim - strh r6, [r4, 0x2E] - ldr r5, =gUnknown_0860D050 - adds r0, r5, 0 - movs r1, 0x6 - movs r2, 0x50 - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - mov r2, r8 - adds r4, r0, r2 - adds r0, r4, 0 - movs r1, 0 - bl StartObjectImageAnim - strh r6, [r4, 0x2E] - movs r0, 0 - strh r0, [r4, 0x30] - mov r1, r9 - cmp r1, 0x1 - bne _08190746 - adds r0, r4, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_08190746: - adds r0, r5, 0 - movs r1, 0xEA - movs r2, 0x50 - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r7, r0, 24 - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - add r4, r8 - adds r0, r4, 0 - movs r1, 0x1 - bl StartObjectImageAnim - strh r6, [r4, 0x2E] - movs r0, 0x1 - strh r0, [r4, 0x30] -_0819076C: - mov r0, r10 - bl DestroyTask -_08190772: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8190400 - - thumb_func_start sub_8190790 -sub_8190790: @ 8190790 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x22] - adds r1, r0, 0x4 - strh r1, [r2, 0x22] - movs r3, 0x2E - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _081907D4 - lsls r0, r1, 16 - asrs r0, 16 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - blt _081907BC - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] -_081907BC: - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - bne _081907F0 - ldr r0, =DummyObjectCallback - str r0, [r2, 0x1C] - b _081907F0 - .pool -_081907D4: - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xBF - ble _081907F0 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - movs r3, 0x32 - ldrsh r1, [r2, r3] - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - ldrh r0, [r2, 0x34] - bl sub_818D8F0 -_081907F0: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8190790 - - thumb_func_start sub_81907F8 -sub_81907F8: @ 81907F8 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x22] - subs r1, r0, 0x4 - strh r1, [r2, 0x22] - movs r3, 0x2E - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _08190838 - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xC0 - bgt _08190820 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] -_08190820: - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - bne _08190858 - ldr r0, =DummyObjectCallback - str r0, [r2, 0x1C] - b _08190858 - .pool -_08190838: - lsls r0, r1, 16 - asrs r0, 16 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bgt _08190858 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - movs r3, 0x32 - ldrsh r1, [r2, r3] - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - ldrh r0, [r2, 0x34] - bl sub_818D8F0 -_08190858: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81907F8 - - thumb_func_start sub_8190860 -sub_8190860: @ 8190860 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x20] - adds r1, r0, 0x4 - strh r1, [r2, 0x20] - movs r3, 0x2E - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _081908A4 - lsls r0, r1, 16 - asrs r0, 16 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - blt _0819088C - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] -_0819088C: - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x40 - bne _081908C0 - ldr r0, =DummyObjectCallback - str r0, [r2, 0x1C] - b _081908C0 - .pool -_081908A4: - lsls r1, 16 - ldr r0, =0x010f0000 - cmp r1, r0 - ble _081908C0 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - movs r3, 0x32 - ldrsh r1, [r2, r3] - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - ldrh r0, [r2, 0x34] - bl sub_818D8F0 -_081908C0: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8190860 - - thumb_func_start sub_81908CC -sub_81908CC: @ 81908CC - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x20] - subs r1, r0, 0x4 - strh r1, [r2, 0x20] - movs r3, 0x2E - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _08190910 - lsls r1, 16 - movs r0, 0x88 - lsls r0, 17 - cmp r1, r0 - bgt _081908F6 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] -_081908F6: - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x40 - bne _08190930 - ldr r0, =DummyObjectCallback - str r0, [r2, 0x1C] - b _08190930 - .pool -_08190910: - lsls r0, r1, 16 - asrs r0, 16 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bgt _08190930 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - movs r3, 0x32 - ldrsh r1, [r2, r3] - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - ldrh r0, [r2, 0x34] - bl sub_818D8F0 -_08190930: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81908CC - - thumb_func_start sub_8190938 -sub_8190938: @ 8190938 - push {lr} - adds r1, r0, 0 - movs r2, 0x34 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _0819094A - adds r0, r1, 0 - bl sub_80D30DC -_0819094A: - pop {r0} - bx r0 - thumb_func_end sub_8190938 - - thumb_func_start sub_8190950 -sub_8190950: @ 8190950 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08190962 - adds r0, r4, 0 - bl sub_80D30DC -_08190962: - ldrh r0, [r4, 0x22] - adds r1, r0, 0x4 - strh r1, [r4, 0x22] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _081909A4 - lsls r0, r1, 16 - asrs r0, 16 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - blt _0819098A - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_0819098A: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - bne _081909C0 - ldr r0, =sub_8190938 - str r0, [r4, 0x1C] - b _081909C0 - .pool -_081909A4: - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xAF - ble _081909C0 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - movs r2, 0x32 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - adds r0, r4, 0 - bl sub_80D2EF8 -_081909C0: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8190950 - - thumb_func_start sub_81909CC -sub_81909CC: @ 81909CC - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081909DE - adds r0, r4, 0 - bl sub_80D30DC -_081909DE: - ldrh r0, [r4, 0x22] - subs r1, r0, 0x4 - strh r1, [r4, 0x22] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08190A1C - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xB0 - bgt _08190A02 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_08190A02: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - bne _08190A3C - ldr r0, =sub_8190938 - str r0, [r4, 0x1C] - b _08190A3C - .pool -_08190A1C: - lsls r0, r1, 16 - asrs r0, 16 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bgt _08190A3C - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - movs r2, 0x32 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - adds r0, r4, 0 - bl sub_80D2EF8 -_08190A3C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81909CC - - thumb_func_start sub_8190A48 -sub_8190A48: @ 8190A48 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08190A5A - adds r0, r4, 0 - bl sub_80D30DC -_08190A5A: - ldrh r0, [r4, 0x20] - adds r1, r0, 0x4 - strh r1, [r4, 0x20] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08190A9C - lsls r0, r1, 16 - asrs r0, 16 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - blt _08190A82 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_08190A82: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x40 - bne _08190AB8 - ldr r0, =sub_8190938 - str r0, [r4, 0x1C] - b _08190AB8 - .pool -_08190A9C: - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _08190AB8 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - movs r2, 0x32 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - adds r0, r4, 0 - bl sub_80D2EF8 -_08190AB8: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8190A48 - - thumb_func_start sub_8190AC4 -sub_8190AC4: @ 8190AC4 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08190AD6 - adds r0, r4, 0 - bl sub_80D30DC -_08190AD6: - ldrh r0, [r4, 0x20] - subs r1, r0, 0x4 - strh r1, [r4, 0x20] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08190B14 - lsls r1, 16 - movs r0, 0x80 - lsls r0, 17 - cmp r1, r0 - bgt _08190AFC - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_08190AFC: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x40 - bne _08190B34 - ldr r0, =sub_8190938 - str r0, [r4, 0x1C] - b _08190B34 - .pool -_08190B14: - lsls r0, r1, 16 - asrs r0, 16 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bgt _08190B34 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - movs r2, 0x32 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - adds r0, r4, 0 - bl sub_80D2EF8 -_08190B34: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8190AC4 - - thumb_func_start sub_8190B40 -sub_8190B40: @ 8190B40 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r3, r0, 0 - movs r0, 0x2E - ldrsh r6, [r3, r0] - ldr r2, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r2 - movs r7, 0x10 - ldrsh r1, [r4, r7] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0xA - ldrsh r0, [r0, r1] - ldr r1, =gUnknown_0860D080 - adds r0, r1 - ldrb r0, [r0] - mov r10, r0 - ldr r1, =gSaveBlock2Ptr - ldr r5, [r1] - ldr r7, =0x00000cb2 - adds r0, r5, r7 - ldrh r0, [r0] - mov r12, r0 - movs r7, 0xE - ldrsh r0, [r4, r7] - mov r9, r2 - mov r8, r1 - cmp r0, 0x1 - bne _08190C0C - movs r1, 0x30 - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _08190BFC - mov r2, r10 - lsls r0, r2, 2 - adds r1, r5, r0 - ldr r7, =0x00000d25 - adds r1, r7 - ldrb r2, [r1] - lsls r1, r2, 29 - adds r4, r0, 0 - cmp r1, 0 - bge _08190BB6 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldrb r1, [r0, 0x10] - subs r1, 0x1 - lsls r0, r2, 27 - lsrs r0, 30 - cmp r1, r0 - blt _08190C32 -_08190BB6: - mov r1, r8 - ldr r0, [r1] - adds r0, r4 - ldr r2, =0x00000d25 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _08190BD4 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - subs r0, 0x1 - cmp r0, r12 - blt _08190C32 -_08190BD4: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - add r0, r9 - movs r7, 0x8 - ldrsh r0, [r0, r7] - b _08190C4C - .pool -_08190BFC: - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - cmp r0, 0 - bne _08190C32 - b _08190C48 - .pool -_08190C0C: - movs r2, 0x30 - ldrsh r0, [r3, r2] - cmp r0, 0 - beq _08190C28 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - cmp r0, 0x1 - bls _08190C32 - movs r7, 0x8 - ldrsh r0, [r4, r7] - b _08190C4C - .pool -_08190C28: - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - cmp r0, 0 - beq _08190C48 -_08190C32: - adds r2, r3, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - b _08190C5C - .pool -_08190C48: - movs r1, 0x8 - ldrsh r0, [r4, r1] -_08190C4C: - cmp r0, 0x2 - bne _08190C5C - adds r0, r3, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_08190C5C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8190B40 - - thumb_func_start sub_8190C6C -sub_8190C6C: @ 8190C6C - push {lr} - adds r3, r0, 0 - movs r0, 0x2E - ldrsh r1, [r3, r0] - ldr r2, =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r1, r0, r2 - movs r2, 0xE - ldrsh r0, [r1, r2] - cmp r0, 0x1 - bne _08190C9C - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - cmp r0, 0 - bne _08190CA6 - b _08190CC0 - .pool -_08190C9C: - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - cmp r0, 0x1 - beq _08190CC0 -_08190CA6: - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0x2 - bne _08190CCE - adds r0, r3, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _08190CCE - .pool -_08190CC0: - adds r2, r3, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_08190CCE: - pop {r0} - bx r0 - thumb_func_end sub_8190C6C - - thumb_func_start sub_8190CD4 -sub_8190CD4: @ 8190CD4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r1, =gTasks - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r3, 0xE - ldrsh r2, [r0, r3] - mov r9, r2 - movs r4, 0x10 - ldrsh r7, [r0, r4] - movs r5, 0x8 - ldrsh r0, [r0, r5] - cmp r0, 0x8 - bls _08190D06 - bl _08192202 -_08190D06: - lsls r0, 2 - ldr r1, =_08190D18 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08190D18: - .4byte _08190D3C - .4byte _08190D7C - .4byte _08190DA8 - .4byte _08190E48 - .4byte _08191FF8 - .4byte _08192038 - .4byte _08192078 - .4byte _081920BC - .4byte _08192106 -_08190D3C: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _08190D50 - bl _08192202 -_08190D50: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, =gTasks - mov r6, r8 - lsls r0, r6, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0, 0x8] - bl _08192202 - .pool -_08190D7C: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08190D8C - bl _08192202 -_08190D8C: - mov r1, r8 - lsls r0, r1, 2 - add r0, r8 - lsls r0, 3 - ldr r2, =gTasks - adds r0, r2 - movs r1, 0x2 - strh r1, [r0, 0x8] - bl _08192202 - .pool -_08190DA8: - mov r0, r8 - bl sub_819221C - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x8 - bgt _08190DBE - cmp r6, 0x1 - bge _08190DF0 - bl _08192202 -_08190DBE: - cmp r6, 0x9 - beq _08190DC6 - bl _08192202 -_08190DC6: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gTasks - mov r3, r8 - lsls r0, r3, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0x8 - strh r1, [r0, 0x8] - bl _08192202 - .pool -_08190DF0: - ldr r1, =gTasks - mov r4, r8 - lsls r2, r4, 2 - adds r0, r2, r4 - lsls r0, 3 - adds r0, r1 - strh r6, [r0, 0x12] - movs r5, 0xC - ldrsh r0, [r0, r5] - movs r1, 0 - mov r9, r2 - cmp r0, 0 - beq _08190E0C - movs r1, 0x9 -_08190E0C: - adds r6, r1, 0 - adds r0, r6, 0 - adds r0, 0x9 - cmp r6, r0 - bge _08190E32 - adds r5, r0, 0 -_08190E18: - lsls r4, r6, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0x2 - bl CopyWindowToVram - adds r0, r4, 0 - movs r1, 0 - bl FillWindowPixelBuffer - adds r6, 0x1 - cmp r6, r5 - blt _08190E18 -_08190E32: - ldr r0, =gTasks - mov r1, r9 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0x3 - strh r0, [r1, 0x8] - bl _08192202 - .pool -_08190E48: - mov r6, r8 - lsls r1, r6, 2 - adds r0, r1, r6 - lsls r0, 3 - ldr r2, =gTasks - adds r0, r2 - movs r3, 0x12 - ldrsh r6, [r0, r3] - subs r0, r6, 0x1 - mov r9, r1 - cmp r0, 0x7 - bls _08190E64 - bl _08192202 -_08190E64: - lsls r0, 2 - ldr r1, =_08190E78 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08190E78: - .4byte _08190E98 - .4byte _08191234 - .4byte _081915CC - .4byte _08191B08 - .4byte _08190E98 - .4byte _08191234 - .4byte _0819187C - .4byte _08191D68 -_08190E98: - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r4, =gTasks - adds r0, r4 - movs r5, 0xC - ldrsh r2, [r0, r5] - cmp r2, 0 - beq _08190ED4 - ldr r0, =gUnknown_02022E14 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_02022E16 - strh r1, [r0] - ldr r0, =gUnknown_02022E18 - strh r1, [r0] - ldr r1, =gUnknown_02022E1A - movs r0, 0xA0 - strh r0, [r1] - b _08190EE6 - .pool -_08190ED4: - ldr r0, =gUnknown_02022E14 - strh r2, [r0] - ldr r1, =gUnknown_02022E16 - movs r0, 0xA0 - strh r0, [r1] - ldr r0, =gUnknown_02022E18 - strh r2, [r0] - ldr r0, =gUnknown_02022E1A - strh r2, [r0] -_08190EE6: - cmp r6, 0x1 - bne _08190F9C - ldr r5, =gUnknown_0203CD78 - ldr r0, [r5] - ldrb r1, [r0, 0x10] - cmp r1, 0 - bne _08190F50 - ldr r0, =gUnknown_02022E1C - strh r1, [r0] - ldr r1, =gUnknown_02022E1E - movs r6, 0xA0 - lsls r6, 1 - adds r0, r6, 0 - strh r0, [r1] - ldr r3, =gUnknown_0860D080 - ldr r2, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r2 - movs r4, 0xA - ldrsh r1, [r0, r4] - adds r1, r3 - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r2 - ldrb r2, [r0, 0xC] - movs r0, 0x10 - orrs r0, r2 - ldrb r1, [r1] - bl sub_81924E0 - b _08191084 - .pool -_08190F50: - ldr r1, =gUnknown_02022E1C - movs r6, 0x80 - lsls r6, 1 - adds r0, r6, 0 - strh r0, [r1] - ldr r0, =gUnknown_02022E1E - movs r4, 0 - strh r4, [r0] - ldr r3, =gUnknown_0860D080 - ldr r2, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r2 - movs r6, 0xA - ldrsh r1, [r0, r6] - adds r1, r3 - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r2 - ldrb r2, [r0, 0xC] - movs r0, 0x10 - orrs r0, r2 - ldrb r1, [r1] - bl sub_81924E0 - ldr r0, [r5] - strb r4, [r0, 0x10] - b _08191084 - .pool -_08190F9C: - ldr r6, =gUnknown_0203CD78 - ldr r1, [r6] - ldrb r5, [r1, 0x10] - cmp r5, 0 - bne _08190FF8 - ldr r4, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r4 - movs r2, 0xA - ldrsh r0, [r0, r2] - adds r2, r0, 0 - subs r2, 0x10 - lsls r0, r2, 24 - lsrs r0, 24 - adds r1, 0x11 - bl sub_8192F08 - ldr r0, =gUnknown_02022E1C - strh r5, [r0] - ldr r1, =gUnknown_02022E1E - movs r3, 0xA0 - lsls r3, 1 - adds r0, r3, 0 - strh r0, [r1] - ldr r2, [r6] - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r4 - ldrb r1, [r0, 0xC] - movs r0, 0x10 - orrs r0, r1 - ldrb r1, [r2, 0x11] - bl sub_81924E0 - b _08191084 - .pool -_08190FF8: - cmp r5, 0x2 - bne _0819104C - ldr r4, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r4 - movs r5, 0xA - ldrsh r0, [r0, r5] - adds r2, r0, 0 - subs r2, 0x10 - lsls r0, r2, 24 - lsrs r0, 24 - adds r1, 0x11 - bl sub_8192F08 - ldr r1, =gUnknown_02022E1C - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_02022E1E - movs r2, 0xA0 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - ldr r2, [r6] - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r4 - ldrb r1, [r0, 0xC] - movs r0, 0x10 - orrs r0, r1 - ldrb r1, [r2, 0x12] - bl sub_81924E0 - b _08191084 - .pool -_0819104C: - ldr r1, =gUnknown_02022E1C - movs r3, 0x80 - lsls r3, 1 - adds r0, r3, 0 - strh r0, [r1] - ldr r1, =gUnknown_02022E1E - movs r0, 0xA0 - strh r0, [r1] - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - movs r4, 0xA - ldrsh r0, [r0, r4] - adds r2, r0, 0 - subs r2, 0x10 - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0xC] - movs r0, 0x10 - orrs r0, r1 - lsls r1, r2, 24 - lsrs r1, 24 - bl sub_819314C -_08191084: - movs r6, 0 - ldr r5, =gUnknown_0203CD78 - mov r10, r5 - ldr r3, =gUnknown_02020630 - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r1, =gTasks - adds r5, r0, r1 - mov r12, r6 - adds r4, r3, 0 - adds r4, 0x1C - movs r7, 0x1 -_0819109E: - cmp r6, 0x1 - bgt _0819110C - mov r2, r10 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191150 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =sub_8190790 - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r5, 0xC] - eors r0, r7 - strh r0, [r1, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - mov r1, r12 - strh r1, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r1, [r0, 0x34] - b _08191150 - .pool -_0819110C: - mov r2, r10 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191150 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =sub_8190950 - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r5, 0xC] - eors r0, r7 - strh r0, [r1, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - mov r1, r12 - strh r1, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] -_08191150: - adds r6, 0x1 - cmp r6, 0x7 - ble _0819109E - movs r6, 0x8 - ldr r2, =gUnknown_0203CD78 - mov r12, r2 - ldr r3, =gUnknown_02020630 - ldr r1, =gTasks - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r5, r0, r1 - movs r4, 0 - adds r7, r3, 0 - adds r7, 0x1C -_0819116E: - cmp r6, 0x9 - bgt _081911D4 - mov r1, r12 - ldr r0, [r1] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191214 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, =sub_8190790 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r5, 0xC] - strh r1, [r0, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r1, [r0, 0x34] - b _08191214 - .pool -_081911D4: - mov r2, r12 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191214 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, =sub_8190950 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r5, 0xC] - strh r1, [r0, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] -_08191214: - adds r6, 0x1 - cmp r6, 0xF - ble _0819116E - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r3, =gTasks - adds r0, r3 - movs r2, 0 - movs r1, 0x4 - bl _08191FE8 - .pool -_08191234: - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r4, =gTasks - adds r0, r4 - movs r5, 0xC - ldrsh r2, [r0, r5] - cmp r2, 0 - beq _08191278 - ldr r0, =gUnknown_02022E14 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_02022E16 - strh r1, [r0] - ldr r0, =gUnknown_02022E18 - strh r1, [r0] - ldr r1, =gUnknown_02022E1A - ldr r2, =0x0000ff60 - adds r0, r2, 0 - strh r0, [r1] - b _0819128C - .pool -_08191278: - ldr r0, =gUnknown_02022E14 - strh r2, [r0] - ldr r1, =gUnknown_02022E16 - ldr r3, =0x0000ff60 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, =gUnknown_02022E18 - strh r2, [r0] - ldr r0, =gUnknown_02022E1A - strh r2, [r0] -_0819128C: - cmp r6, 0x2 - bne _0819133C - ldr r5, =gUnknown_0203CD78 - ldr r0, [r5] - ldrb r1, [r0, 0x10] - cmp r1, 0 - bne _081912F4 - ldr r0, =gUnknown_02022E1C - strh r1, [r0] - ldr r1, =gUnknown_02022E1E - movs r0, 0xA0 - strh r0, [r1] - ldr r3, =gUnknown_0860D080 - ldr r2, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r2 - movs r4, 0xA - ldrsh r1, [r0, r4] - adds r1, r3 - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r2 - ldrb r2, [r0, 0xC] - movs r0, 0x4 - orrs r0, r2 - ldrb r1, [r1] - bl sub_81924E0 - b _0819141C - .pool -_081912F4: - ldr r0, =gUnknown_02022E1C - movs r4, 0 - strh r4, [r0] - ldr r0, =gUnknown_02022E1E - strh r4, [r0] - ldr r3, =gUnknown_0860D080 - ldr r2, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r2 - movs r6, 0xA - ldrsh r1, [r0, r6] - adds r1, r3 - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r2 - ldrb r2, [r0, 0xC] - movs r0, 0x4 - orrs r0, r2 - ldrb r1, [r1] - bl sub_81924E0 - ldr r0, [r5] - strb r4, [r0, 0x10] - b _0819141C - .pool -_0819133C: - ldr r6, =gUnknown_0203CD78 - ldr r1, [r6] - ldrb r5, [r1, 0x10] - cmp r5, 0 - bne _08191394 - ldr r4, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r4 - movs r2, 0xA - ldrsh r0, [r0, r2] - adds r2, r0, 0 - subs r2, 0x10 - lsls r0, r2, 24 - lsrs r0, 24 - adds r1, 0x11 - bl sub_8192F08 - ldr r0, =gUnknown_02022E1C - strh r5, [r0] - ldr r1, =gUnknown_02022E1E - movs r0, 0xA0 - strh r0, [r1] - ldr r2, [r6] - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r4 - ldrb r1, [r0, 0xC] - movs r0, 0x4 - orrs r0, r1 - ldrb r1, [r2, 0x11] - bl sub_81924E0 - b _0819141C - .pool -_08191394: - cmp r5, 0x2 - bne _081913E4 - ldr r4, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r4 - movs r3, 0xA - ldrsh r0, [r0, r3] - adds r2, r0, 0 - subs r2, 0x10 - lsls r0, r2, 24 - lsrs r0, 24 - adds r1, 0x11 - bl sub_8192F08 - ldr r1, =gUnknown_02022E1C - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_02022E1E - movs r0, 0xA0 - strh r0, [r1] - ldr r2, [r6] - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r4 - ldrb r1, [r0, 0xC] - movs r0, 0x4 - orrs r0, r1 - ldrb r1, [r2, 0x12] - bl sub_81924E0 - b _0819141C - .pool -_081913E4: - ldr r1, =gUnknown_02022E1C - movs r4, 0x80 - lsls r4, 1 - adds r0, r4, 0 - strh r0, [r1] - ldr r1, =gUnknown_02022E1E - movs r0, 0 - strh r0, [r1] - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - movs r5, 0xA - ldrsh r0, [r0, r5] - adds r2, r0, 0 - subs r2, 0x10 - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0xC] - movs r0, 0x4 - orrs r0, r1 - lsls r1, r2, 24 - lsrs r1, 24 - bl sub_819314C -_0819141C: - movs r6, 0 - ldr r0, =gUnknown_0203CD78 - mov r10, r0 - ldr r3, =gUnknown_02020630 - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r1, =gTasks - adds r5, r0, r1 - mov r12, r6 - adds r4, r3, 0 - adds r4, 0x1C - movs r7, 0x1 -_08191436: - cmp r6, 0x1 - bgt _081914A4 - mov r2, r10 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _081914E8 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =sub_81907F8 - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r5, 0xC] - eors r0, r7 - strh r0, [r1, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - mov r1, r12 - strh r1, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r1, [r0, 0x34] - b _081914E8 - .pool -_081914A4: - mov r2, r10 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _081914E8 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =sub_81909CC - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r5, 0xC] - eors r0, r7 - strh r0, [r1, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - mov r1, r12 - strh r1, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] -_081914E8: - adds r6, 0x1 - cmp r6, 0x7 - ble _08191436 - movs r6, 0x8 - ldr r2, =gUnknown_0203CD78 - mov r12, r2 - ldr r3, =gUnknown_02020630 - ldr r1, =gTasks - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r5, r0, r1 - movs r4, 0 - adds r7, r3, 0 - adds r7, 0x1C -_08191506: - cmp r6, 0x9 - bgt _0819156C - mov r1, r12 - ldr r0, [r1] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _081915AC - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, =sub_81907F8 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r5, 0xC] - strh r1, [r0, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r1, [r0, 0x34] - b _081915AC - .pool -_0819156C: - mov r2, r12 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _081915AC - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, =sub_81909CC - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r5, 0xC] - strh r1, [r0, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] -_081915AC: - adds r6, 0x1 - cmp r6, 0xF - ble _08191506 - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r3, =gTasks - adds r0, r3 - movs r2, 0 - movs r1, 0x5 - bl _08191FE8 - .pool -_081915CC: - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r4, =gTasks - adds r0, r4 - movs r5, 0xC - ldrsh r2, [r0, r5] - cmp r2, 0 - beq _0819160C - ldr r0, =gUnknown_02022E14 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_02022E16 - strh r1, [r0] - ldr r2, =gUnknown_02022E18 - movs r6, 0x80 - lsls r6, 1 - adds r0, r6, 0 - strh r0, [r2] - ldr r0, =gUnknown_02022E1A - strh r1, [r0] - b _08191622 - .pool -_0819160C: - ldr r1, =gUnknown_02022E14 - movs r3, 0x80 - lsls r3, 1 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, =gUnknown_02022E16 - strh r2, [r0] - ldr r0, =gUnknown_02022E18 - strh r2, [r0] - ldr r0, =gUnknown_02022E1A - strh r2, [r0] -_08191622: - ldr r0, =gUnknown_0203CD78 - ldr r4, [r0] - ldrb r0, [r4, 0x10] - cmp r0, 0 - bne _08191688 - ldr r1, =gUnknown_02022E1C - movs r4, 0x80 - lsls r4, 1 - adds r0, r4, 0 - strh r0, [r1] - ldr r1, =gUnknown_02022E1E - movs r0, 0xA0 - strh r0, [r1] - ldr r3, =gUnknown_0860D080 - ldr r2, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r2 - movs r5, 0xA - ldrsh r1, [r0, r5] - adds r1, r3 - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r2 - ldrb r2, [r0, 0xC] - movs r0, 0x8 - orrs r0, r2 - ldrb r1, [r1] - bl sub_81924E0 - b _081916C6 - .pool -_08191688: - ldr r1, =gUnknown_02022E1C - movs r6, 0x80 - lsls r6, 1 - adds r0, r6, 0 - strh r0, [r1] - ldr r1, =gUnknown_02022E1E - movs r0, 0 - strh r0, [r1] - ldr r3, =gUnknown_0860D15C - ldr r2, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r2 - movs r5, 0xA - ldrsh r1, [r0, r5] - lsls r1, 2 - subs r1, 0x1 - ldrb r4, [r4, 0x10] - adds r1, r4 - adds r1, r3 - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r2 - ldrb r2, [r0, 0xC] - movs r0, 0x8 - orrs r0, r2 - ldrb r1, [r1] - bl sub_819314C -_081916C6: - movs r6, 0 - ldr r0, =gUnknown_0203CD78 - mov r10, r0 - ldr r3, =gUnknown_02020630 - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r1, =gTasks - adds r5, r0, r1 - mov r12, r6 - adds r4, r3, 0 - adds r4, 0x1C - movs r7, 0x1 -_081916E0: - cmp r6, 0x1 - bgt _08191754 - mov r2, r10 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191798 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =sub_8190860 - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r5, 0xC] - eors r0, r7 - strh r0, [r1, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - mov r1, r12 - strh r1, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r1, [r0, 0x34] - b _08191798 - .pool -_08191754: - mov r2, r10 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191798 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =sub_8190A48 - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r5, 0xC] - eors r0, r7 - strh r0, [r1, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - mov r1, r12 - strh r1, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] -_08191798: - adds r6, 0x1 - cmp r6, 0x7 - ble _081916E0 - movs r6, 0x8 - ldr r2, =gUnknown_0203CD78 - mov r12, r2 - ldr r3, =gUnknown_02020630 - ldr r1, =gTasks - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r5, r0, r1 - movs r4, 0 - adds r7, r3, 0 - adds r7, 0x1C -_081917B6: - cmp r6, 0x9 - bgt _0819181C - mov r1, r12 - ldr r0, [r1] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _0819185C - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, =sub_8190860 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r5, 0xC] - strh r1, [r0, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r1, [r0, 0x34] - b _0819185C - .pool -_0819181C: - mov r2, r12 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _0819185C - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, =sub_8190A48 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r5, 0xC] - strh r1, [r0, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] -_0819185C: - adds r6, 0x1 - cmp r6, 0xF - ble _081917B6 - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r3, =gTasks - adds r0, r3 - movs r2, 0 - movs r1, 0x6 - b _08191FE8 - .pool -_0819187C: - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r4, =gTasks - adds r0, r4 - movs r5, 0xC - ldrsh r2, [r0, r5] - cmp r2, 0 - beq _081918BC - ldr r0, =gUnknown_02022E14 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_02022E16 - strh r1, [r0] - ldr r2, =gUnknown_02022E18 - movs r6, 0x80 - lsls r6, 1 - adds r0, r6, 0 - strh r0, [r2] - ldr r0, =gUnknown_02022E1A - strh r1, [r0] - b _081918D2 - .pool -_081918BC: - ldr r1, =gUnknown_02022E14 - movs r3, 0x80 - lsls r3, 1 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, =gUnknown_02022E16 - strh r2, [r0] - ldr r0, =gUnknown_02022E18 - strh r2, [r0] - ldr r0, =gUnknown_02022E1A - strh r2, [r0] -_081918D2: - ldr r0, =gUnknown_0203CD78 - ldr r2, [r0] - ldrb r0, [r2, 0x10] - cmp r0, 0 - bne _08191924 - ldr r1, =gUnknown_02022E1C - movs r4, 0x80 - lsls r4, 1 - adds r0, r4, 0 - strh r0, [r1] - ldr r1, =gUnknown_02022E1E - movs r0, 0xA0 - strh r0, [r1] - ldr r1, =gTasks - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0xC] - movs r0, 0x8 - orrs r0, r1 - ldrb r1, [r2, 0x11] - bl sub_81924E0 - b _08191958 - .pool -_08191924: - ldr r1, =gUnknown_02022E1C - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_02022E1E - movs r0, 0xA0 - strh r0, [r1] - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - movs r5, 0xA - ldrsh r0, [r0, r5] - adds r2, r0, 0 - subs r2, 0x10 - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0xC] - movs r0, 0x8 - orrs r0, r1 - lsls r1, r2, 24 - lsrs r1, 24 - bl sub_819314C -_08191958: - movs r6, 0 - ldr r0, =gUnknown_0203CD78 - mov r10, r0 - ldr r3, =gUnknown_02020630 - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r1, =gTasks - adds r5, r0, r1 - mov r12, r6 - adds r4, r3, 0 - adds r4, 0x1C - movs r7, 0x1 -_08191972: - cmp r6, 0x1 - bgt _081919E0 - mov r2, r10 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191A24 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =sub_8190860 - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r5, 0xC] - eors r0, r7 - strh r0, [r1, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - mov r1, r12 - strh r1, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r1, [r0, 0x34] - b _08191A24 - .pool -_081919E0: - mov r2, r10 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191A24 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =sub_8190A48 - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r5, 0xC] - eors r0, r7 - strh r0, [r1, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - mov r1, r12 - strh r1, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] -_08191A24: - adds r6, 0x1 - cmp r6, 0x7 - ble _08191972 - movs r6, 0x8 - ldr r2, =gUnknown_0203CD78 - mov r12, r2 - ldr r3, =gUnknown_02020630 - ldr r1, =gTasks - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r5, r0, r1 - movs r4, 0 - adds r7, r3, 0 - adds r7, 0x1C -_08191A42: - cmp r6, 0x9 - bgt _08191AA8 - mov r1, r12 - ldr r0, [r1] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191AE8 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, =sub_8190860 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r5, 0xC] - strh r1, [r0, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r1, [r0, 0x34] - b _08191AE8 - .pool -_08191AA8: - mov r2, r12 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191AE8 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, =sub_8190A48 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r5, 0xC] - strh r1, [r0, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] -_08191AE8: - adds r6, 0x1 - cmp r6, 0xF - ble _08191A42 - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r3, =gTasks - adds r0, r3 - movs r2, 0 - movs r1, 0x6 - b _08191FE8 - .pool -_08191B08: - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r4, =gTasks - adds r0, r4 - movs r5, 0xC - ldrsh r2, [r0, r5] - cmp r2, 0 - beq _08191B48 - ldr r0, =gUnknown_02022E14 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_02022E16 - strh r1, [r0] - ldr r2, =gUnknown_02022E18 - movs r6, 0xFF - lsls r6, 8 - adds r0, r6, 0 - strh r0, [r2] - ldr r0, =gUnknown_02022E1A - strh r1, [r0] - b _08191B5E - .pool -_08191B48: - ldr r1, =gUnknown_02022E14 - movs r3, 0xFF - lsls r3, 8 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, =gUnknown_02022E16 - strh r2, [r0] - ldr r0, =gUnknown_02022E18 - strh r2, [r0] - ldr r0, =gUnknown_02022E1A - strh r2, [r0] -_08191B5E: - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - cmp r0, 0x1 - bne _08191B94 - ldr r1, =gUnknown_02022E1C - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_02022E1E - movs r0, 0xA0 - strh r0, [r1] - b _08191B9E - .pool -_08191B94: - ldr r0, =gUnknown_02022E1C - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_02022E1E - strh r1, [r0] -_08191B9E: - ldr r4, =gUnknown_0860D15C - ldr r5, =gUnknown_0203CD78 - ldr r3, [r5] - ldr r2, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r2 - movs r6, 0xA - ldrsh r1, [r0, r6] - lsls r1, 2 - subs r1, 0x1 - ldrb r3, [r3, 0x10] - adds r1, r3 - adds r1, r4 - mov r4, r9 - add r4, r8 - lsls r4, 3 - adds r4, r2 - ldrb r2, [r4, 0xC] - movs r0, 0x2 - orrs r0, r2 - ldrb r1, [r1] - bl sub_819314C - movs r6, 0 - ldr r7, =gUnknown_02020630 - mov r12, r6 - mov r10, r5 - adds r5, r7, 0 - adds r5, 0x1C -_08191BDC: - cmp r6, 0x1 - bgt _08191C50 - mov r1, r10 - ldr r0, [r1] - adds r3, r0, r6 - ldrb r0, [r3] - cmp r0, 0xFF - beq _08191C96 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =sub_81908CC - str r1, [r0] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r4, 0xC] - movs r2, 0x1 - eors r1, r2 - strh r1, [r0, 0x2E] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - mov r2, r12 - strh r2, [r0, 0x30] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r6, [r0, 0x32] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r1, [r0, 0x34] - b _08191C96 - .pool -_08191C50: - mov r3, r10 - ldr r0, [r3] - adds r3, r0, r6 - ldrb r0, [r3] - cmp r0, 0xFF - beq _08191C96 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =sub_8190AC4 - str r1, [r0] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r4, 0xC] - movs r2, 0x1 - eors r1, r2 - strh r1, [r0, 0x2E] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - mov r1, r12 - strh r1, [r0, 0x30] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r6, [r0, 0x32] -_08191C96: - adds r6, 0x1 - cmp r6, 0x7 - ble _08191BDC - movs r6, 0x8 - ldr r2, =gUnknown_0203CD78 - mov r12, r2 - ldr r3, =gUnknown_02020630 - ldr r1, =gTasks - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r5, r0, r1 - movs r4, 0 - adds r7, r3, 0 - adds r7, 0x1C -_08191CB4: - cmp r6, 0x9 - bgt _08191D1C - mov r1, r12 - ldr r0, [r1] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191D5C - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, =sub_81908CC - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r5, 0xC] - strh r1, [r0, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r1, [r0, 0x34] - b _08191D5C - .pool -_08191D1C: - mov r2, r12 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191D5C - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, =sub_8190AC4 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r5, 0xC] - strh r1, [r0, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] -_08191D5C: - adds r6, 0x1 - cmp r6, 0xF - ble _08191CB4 - b _08191FDA - .pool -_08191D68: - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r4, =gTasks - adds r0, r4 - movs r5, 0xC - ldrsh r2, [r0, r5] - cmp r2, 0 - beq _08191DA8 - ldr r0, =gUnknown_02022E14 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_02022E16 - strh r1, [r0] - ldr r2, =gUnknown_02022E18 - movs r6, 0xFF - lsls r6, 8 - adds r0, r6, 0 - strh r0, [r2] - ldr r0, =gUnknown_02022E1A - strh r1, [r0] - b _08191DBE - .pool -_08191DA8: - ldr r1, =gUnknown_02022E14 - movs r3, 0xFF - lsls r3, 8 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, =gUnknown_02022E16 - strh r2, [r0] - ldr r0, =gUnknown_02022E18 - strh r2, [r0] - ldr r0, =gUnknown_02022E1A - strh r2, [r0] -_08191DBE: - ldr r0, =gUnknown_0203CD78 - ldr r2, [r0] - ldrb r0, [r2, 0x10] - cmp r0, 0x2 - bne _08191E10 - ldr r1, =gUnknown_02022E1C - movs r4, 0x80 - lsls r4, 1 - adds r0, r4, 0 - strh r0, [r1] - ldr r1, =gUnknown_02022E1E - movs r0, 0xA0 - strh r0, [r1] - ldr r1, =gTasks - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0xC] - movs r0, 0x2 - orrs r0, r1 - ldrb r1, [r2, 0x12] - bl sub_81924E0 - b _08191E44 - .pool -_08191E10: - ldr r1, =gUnknown_02022E1C - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_02022E1E - movs r0, 0xA0 - strh r0, [r1] - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - movs r5, 0xA - ldrsh r0, [r0, r5] - adds r2, r0, 0 - subs r2, 0x10 - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0xC] - movs r0, 0x2 - orrs r0, r1 - lsls r1, r2, 24 - lsrs r1, 24 - bl sub_819314C -_08191E44: - movs r6, 0 - ldr r0, =gUnknown_0203CD78 - mov r10, r0 - ldr r3, =gUnknown_02020630 - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r1, =gTasks - adds r5, r0, r1 - mov r12, r6 - adds r4, r3, 0 - adds r4, 0x1C - movs r7, 0x1 -_08191E5E: - cmp r6, 0x1 - bgt _08191ECC - mov r2, r10 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191F10 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =sub_81908CC - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r5, 0xC] - eors r0, r7 - strh r0, [r1, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - mov r1, r12 - strh r1, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r1, [r0, 0x34] - b _08191F10 - .pool -_08191ECC: - mov r2, r10 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191F10 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =sub_8190AC4 - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r5, 0xC] - eors r0, r7 - strh r0, [r1, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - mov r1, r12 - strh r1, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] -_08191F10: - adds r6, 0x1 - cmp r6, 0x7 - ble _08191E5E - movs r6, 0x8 - ldr r2, =gUnknown_0203CD78 - mov r12, r2 - ldr r3, =gUnknown_02020630 - ldr r1, =gTasks - mov r0, r9 - add r0, r8 - lsls r0, 3 - adds r5, r0, r1 - movs r4, 0 - adds r7, r3, 0 - adds r7, 0x1C -_08191F2E: - cmp r6, 0x9 - bgt _08191F94 - mov r1, r12 - ldr r0, [r1] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191FD4 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, =sub_81908CC - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r5, 0xC] - strh r1, [r0, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r1, [r0, 0x34] - b _08191FD4 - .pool -_08191F94: - mov r2, r12 - ldr r0, [r2] - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, 0xFF - beq _08191FD4 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, =sub_8190AC4 - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r5, 0xC] - strh r1, [r0, 0x2E] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r6, [r0, 0x32] -_08191FD4: - adds r6, 0x1 - cmp r6, 0xF - ble _08191F2E -_08191FDA: - mov r0, r9 - add r0, r8 - lsls r0, 3 - ldr r3, =gTasks - adds r0, r3 - movs r2, 0 - movs r1, 0x7 -_08191FE8: - strh r1, [r0, 0x8] - strh r2, [r0, 0x12] - b _08192202 - .pool -_08191FF8: - mov r4, r8 - lsls r0, r4, 2 - add r0, r8 - lsls r0, 3 - ldr r5, =gTasks - adds r1, r0, r5 - ldrh r0, [r1, 0x12] - adds r0, 0x1 - strh r0, [r1, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x29 - beq _08192100 - ldr r1, =gUnknown_02022E16 - ldrh r0, [r1] - subs r0, 0x4 - strh r0, [r1] - ldr r1, =gUnknown_02022E1A - ldrh r0, [r1] - subs r0, 0x4 - strh r0, [r1] - ldr r1, =gUnknown_02022E1E - b _081920A4 - .pool -_08192038: - mov r6, r8 - lsls r0, r6, 2 - add r0, r8 - lsls r0, 3 - ldr r2, =gTasks - adds r1, r0, r2 - ldrh r0, [r1, 0x12] - adds r0, 0x1 - strh r0, [r1, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x29 - beq _08192100 - ldr r1, =gUnknown_02022E16 - ldrh r0, [r1] - adds r0, 0x4 - strh r0, [r1] - ldr r1, =gUnknown_02022E1A - ldrh r0, [r1] - adds r0, 0x4 - strh r0, [r1] - ldr r1, =gUnknown_02022E1E - b _081920E8 - .pool -_08192078: - mov r3, r8 - lsls r0, r3, 2 - add r0, r8 - lsls r0, 3 - ldr r4, =gTasks - adds r1, r0, r4 - ldrh r0, [r1, 0x12] - adds r0, 0x1 - strh r0, [r1, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x41 - beq _08192100 - ldr r1, =gUnknown_02022E14 - ldrh r0, [r1] - subs r0, 0x4 - strh r0, [r1] - ldr r1, =gUnknown_02022E18 - ldrh r0, [r1] - subs r0, 0x4 - strh r0, [r1] - ldr r1, =gUnknown_02022E1C -_081920A4: - ldrh r0, [r1] - subs r0, 0x4 - strh r0, [r1] - b _08192202 - .pool -_081920BC: - mov r5, r8 - lsls r0, r5, 2 - add r0, r8 - lsls r0, 3 - ldr r6, =gTasks - adds r1, r0, r6 - ldrh r0, [r1, 0x12] - adds r0, 0x1 - strh r0, [r1, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x41 - beq _08192100 - ldr r1, =gUnknown_02022E14 - ldrh r0, [r1] - adds r0, 0x4 - strh r0, [r1] - ldr r1, =gUnknown_02022E18 - ldrh r0, [r1] - adds r0, 0x4 - strh r0, [r1] - ldr r1, =gUnknown_02022E1C -_081920E8: - ldrh r0, [r1] - adds r0, 0x4 - strh r0, [r1] - b _08192202 - .pool -_08192100: - movs r0, 0x2 - strh r0, [r1, 0x8] - b _08192202 -_08192106: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08192202 - movs r6, 0 - ldr r4, =gUnknown_0203CD78 -_08192116: - cmp r6, 0x1 - bgt _08192134 - ldr r0, [r4] - adds r1, r0, r6 - ldrb r0, [r1] - cmp r0, 0xFF - beq _0819214E - bl sub_818D8F0 - b _0819214E - .pool -_08192134: - ldr r0, [r4] - adds r1, r0, r6 - ldrb r0, [r1] - cmp r0, 0xFF - beq _0819214E - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - bl sub_80D2EF8 -_0819214E: - adds r6, 0x1 - cmp r6, 0x7 - ble _08192116 - movs r6, 0x8 - ldr r4, =gUnknown_0203CD78 -_08192158: - cmp r6, 0x9 - bgt _08192174 - ldr r0, [r4] - adds r1, r0, r6 - ldrb r0, [r1] - cmp r0, 0xFF - beq _0819218E - bl sub_818D8F0 - b _0819218E - .pool -_08192174: - ldr r0, [r4] - adds r1, r0, r6 - ldrb r0, [r1] - cmp r0, 0xFF - beq _0819218E - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - bl sub_80D2EF8 -_0819218E: - adds r6, 0x1 - cmp r6, 0xF - ble _08192158 - bl sub_80D2F9C - ldr r4, =gUnknown_0203CD78 - ldr r0, [r4] - bl Free - movs r5, 0 - str r5, [r4] - bl FreeAllWindowBuffers - mov r0, r9 - cmp r0, 0 - bne _081921C4 - ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 - b _081921FC - .pool -_081921C4: - ldr r0, =sub_8194220 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r6, r0, 24 - ldr r2, =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r2 - strh r5, [r1, 0x8] - strh r5, [r1, 0xA] - movs r0, 0x3 - strh r0, [r1, 0xC] - mov r3, r8 - lsls r0, r3, 2 - add r0, r8 - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0, 0x10] - strh r0, [r1, 0xE] - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0, 0x14] - strh r0, [r1, 0x10] -_081921FC: - mov r0, r8 - bl DestroyTask -_08192202: - 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_8190CD4 - - thumb_func_start sub_819221C -sub_819221C: @ 819221C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r7, 0 - ldr r2, =gTasks - lsls r0, 2 - add r0, r9 - lsls r0, 3 - adds r0, r2 - mov r12, r0 - movs r1, 0x10 - ldrsh r6, [r0, r1] - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r2 - movs r3, 0xA - ldrsh r5, [r0, r3] - ldr r0, =gUnknown_0860D080 - adds r0, r5, r0 - ldrb r0, [r0] - mov r10, r0 - ldr r3, =gSaveBlock2Ptr - ldr r0, [r3] - ldr r1, =0x00000cb2 - adds r0, r1 - ldrh r0, [r0] - mov r8, r0 - ldr r1, =gMain - ldrh r4, [r1, 0x2E] - movs r0, 0x3 - ands r0, r4 - adds r2, r1, 0 - cmp r0, 0 - beq _0819226E - movs r7, 0x9 -_0819226E: - mov r3, r12 - movs r1, 0xE - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _0819227A - b _081924CC -_0819227A: - cmp r0, 0x1 - beq _08192280 - b _081923B0 -_08192280: - movs r0, 0x40 - ands r0, r4 - cmp r0, 0 - beq _081922BA - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - cmp r0, 0 - bne _081922BA - cmp r5, 0 - bne _081922B4 - movs r5, 0xF - b _081922B6 - .pool -_081922B4: - subs r5, 0x1 -_081922B6: - movs r7, 0x1 - b _08192360 -_081922BA: - ldrh r1, [r2, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081922E2 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - cmp r0, 0 - bne _081922E2 - cmp r5, 0xF - bne _081922DC - movs r5, 0 - b _081922DE - .pool -_081922DC: - adds r5, 0x1 -_081922DE: - movs r7, 0x2 - b _08192360 -_081922E2: - ldrh r1, [r2, 0x2E] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08192304 - ldr r0, =gUnknown_0203CD78 - ldr r1, [r0] - ldrb r0, [r1, 0x10] - cmp r0, 0 - beq _08192304 - subs r0, 0x1 - strb r0, [r1, 0x10] - movs r7, 0x3 - b _08192360 - .pool -_08192304: - ldrh r1, [r2, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08192360 - ldr r2, =gSaveBlock2Ptr - ldr r0, [r2] - mov r3, r10 - lsls r1, r3, 2 - adds r0, r1 - ldr r2, =0x00000d25 - adds r0, r2 - ldrb r3, [r0] - lsls r0, r3, 29 - mov r12, r1 - cmp r0, 0 - bge _0819233C - ldr r0, =gUnknown_0203CD78 - ldr r2, [r0] - ldrb r4, [r2, 0x10] - subs r1, r4, 0x1 - lsls r0, r3, 27 - lsrs r0, 30 - cmp r1, r0 - bge _0819233C - adds r0, r4, 0x1 - strb r0, [r2, 0x10] - movs r7, 0x4 -_0819233C: - ldr r3, =gSaveBlock2Ptr - ldr r0, [r3] - add r0, r12 - ldr r1, =0x00000d25 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _08192360 - ldr r0, =gUnknown_0203CD78 - ldr r3, [r0] - ldrb r1, [r3, 0x10] - subs r0, r1, 0x1 - cmp r0, r8 - bge _08192360 - adds r0, r1, 0x1 - strb r0, [r3, 0x10] - movs r7, 0x4 -_08192360: - cmp r7, 0x9 - beq _08192366 - b _081924A0 -_08192366: - ldr r0, =gUnknown_0203CD78 - ldr r3, [r0] - ldrb r0, [r3, 0x10] - cmp r0, 0 - beq _081923A0 - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - ldr r2, =gTasks - adds r1, r2 - ldr r2, =gUnknown_0860D1A0 - lsrs r0, r5, 31 - adds r0, r5, r0 - asrs r0, 1 - lsls r0, 2 - subs r0, 0x1 - ldrb r3, [r3, 0x10] - adds r0, r3 - b _08192482 - .pool -_081923A0: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r3, =gTasks - adds r0, r3 - b _0819249E - .pool -_081923B0: - movs r0, 0x40 - ands r0, r4 - cmp r0, 0 - beq _081923DE - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - cmp r0, 0x1 - bne _081923DE - cmp r5, 0x10 - bne _081923D8 - ldr r0, =gUnknown_0860D19C - add r0, r8 - ldrb r5, [r0] - b _081923DA - .pool -_081923D8: - subs r5, 0x1 -_081923DA: - movs r7, 0x5 - b _08192446 -_081923DE: - ldrh r1, [r2, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0819240E - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - cmp r0, 0x1 - bne _0819240E - ldr r0, =gUnknown_0860D19C - add r0, r8 - ldrb r0, [r0] - cmp r5, r0 - bne _08192408 - movs r5, 0x10 - b _0819240A - .pool -_08192408: - adds r5, 0x1 -_0819240A: - movs r7, 0x6 - b _08192446 -_0819240E: - ldrh r1, [r2, 0x2E] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0819242C - ldr r0, =gUnknown_0203CD78 - ldr r1, [r0] - ldrb r0, [r1, 0x10] - cmp r0, 0 - beq _0819242C - movs r7, 0x7 - subs r0, 0x1 - b _08192444 - .pool -_0819242C: - ldrh r1, [r2, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08192446 - ldr r0, =gUnknown_0203CD78 - ldr r1, [r0] - ldrb r0, [r1, 0x10] - cmp r0, 0x1 - bhi _08192446 - movs r7, 0x8 - adds r0, 0x1 -_08192444: - strb r0, [r1, 0x10] -_08192446: - cmp r7, 0x9 - bne _081924A0 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldrb r1, [r0, 0x10] - cmp r1, 0 - bne _08192470 - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - ldr r2, =gTasks - adds r1, r2 - ldr r2, =gUnknown_0860D1C0 - ldrb r0, [r0, 0x11] - b _08192482 - .pool -_08192470: - cmp r1, 0x2 - bne _08192494 - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - ldr r3, =gTasks - adds r1, r3 - ldr r2, =gUnknown_0860D1C0 - ldrb r0, [r0, 0x12] -_08192482: - adds r0, r2 - ldrb r0, [r0] - strh r0, [r1, 0xA] - b _081924A0 - .pool -_08192494: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks - adds r0, r1 -_0819249E: - strh r5, [r0, 0xA] -_081924A0: - cmp r7, 0 - beq _081924CC - cmp r7, 0x9 - beq _081924CC - movs r0, 0x5 - bl audio_play - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0xA] - mov r2, r9 - lsls r0, r2, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0xC] - movs r2, 0x1 - eors r1, r2 - strh r1, [r0, 0xC] -_081924CC: - adds r0, r7, 0 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_819221C - - thumb_func_start sub_81924E0 -sub_81924E0: @ 81924E0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x58 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x1C] - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x20] - movs r5, 0 - movs r0, 0 - str r0, [sp, 0x28] - movs r1, 0 - str r1, [sp, 0x2C] - movs r2, 0 - str r2, [sp, 0x30] - movs r4, 0 - movs r0, 0x24 - bl AllocZeroed - mov r8, r0 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r3, [sp, 0x20] - lsls r0, r3, 2 - adds r0, r1, r0 - ldr r2, =0x00000d24 - adds r0, r2 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - str r0, [sp, 0x24] - movs r0, 0x1 - ldr r3, [sp, 0x1C] - ands r0, r3 - cmp r0, 0 - beq _08192538 - movs r5, 0x8 - movs r4, 0x9 - str r4, [sp, 0x28] - movs r4, 0x2 -_08192538: - movs r0, 0x2 - ldr r2, [sp, 0x1C] - ands r0, r2 - cmp r0, 0 - beq _08192548 - movs r3, 0x80 - lsls r3, 1 - str r3, [sp, 0x2C] -_08192548: - movs r0, 0x4 - ldr r2, [sp, 0x1C] - ands r0, r2 - cmp r0, 0 - beq _08192556 - movs r3, 0xA0 - str r3, [sp, 0x30] -_08192556: - movs r0, 0x8 - ldr r2, [sp, 0x1C] - ands r0, r2 - cmp r0, 0 - beq _08192564 - ldr r3, =0xffffff00 - str r3, [sp, 0x2C] -_08192564: - movs r0, 0x10 - ldr r2, [sp, 0x1C] - ands r0, r2 - cmp r0, 0 - beq _08192574 - movs r3, 0xA0 - negs r3, r3 - str r3, [sp, 0x30] -_08192574: - ldr r0, =0x000003ff - ldr r2, [sp, 0x24] - cmp r2, r0 - bne _08192598 - ldrb r0, [r1, 0x8] - bl sub_806F000 - lsls r0, 16 - lsrs r0, 16 - b _081925B6 - .pool -_08192598: - ldr r0, =0x000003fe - ldr r3, [sp, 0x24] - cmp r3, r0 - bne _081925AC - bl sub_8195910 - b _081925B2 - .pool -_081925AC: - ldr r0, [sp, 0x24] - bl sub_8162AA0 -_081925B2: - lsls r0, 24 - lsrs r0, 24 -_081925B6: - ldr r2, [sp, 0x2C] - adds r2, 0x30 - ldr r3, [sp, 0x30] - adds r3, 0x40 - adds r1, r4, 0 - adds r1, 0xC - str r1, [sp] - ldr r1, =0x0000ffff - str r1, [sp, 0x4] - movs r1, 0x1 - bl sub_818D8AC - ldr r1, =gUnknown_0203CD78 - ldr r1, [r1] - adds r1, r5 - strb r0, [r1] - movs r0, 0x1E - ldr r4, [sp, 0x1C] - ands r0, r4 - cmp r0, 0 - beq _081925FC - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_081925FC: - movs r7, 0 - ldr r0, [sp, 0x20] - lsls r0, 1 - str r0, [sp, 0x3C] - adds r1, r5, 0x2 - ldr r2, [sp, 0x28] - lsls r2, 24 - str r2, [sp, 0x44] - ldr r3, [sp, 0x28] - adds r3, 0x4 - str r3, [sp, 0x40] - ldr r4, [sp, 0x20] - adds r0, r4 - ldr r6, =gUnknown_0203CD78 - ldr r2, =gUnknown_02020630 - mov r10, r2 - adds r4, r1, 0 - lsls r5, r0, 1 - movs r3, 0 - mov r9, r3 -_08192624: - ldr r0, =0x000003ff - ldr r1, [sp, 0x24] - cmp r1, r0 - bne _08192660 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000d64 - adds r0, r2 - adds r0, r5 - ldrh r0, [r0] - ldr r1, =gUnknown_0860D340 - adds r1, r7, r1 - ldrb r2, [r1] - ldr r3, [sp, 0x2C] - orrs r2, r3 - b _081926B0 - .pool -_08192660: - ldr r0, =0x000003fe - ldr r3, [sp, 0x24] - cmp r3, r0 - bne _08192690 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000d64 - adds r0, r1 - adds r0, r5 - ldrh r0, [r0] - ldr r1, =gUnknown_0860D340 - adds r1, r7, r1 - ldrb r2, [r1] - ldr r3, [sp, 0x2C] - orrs r2, r3 - b _081926B0 - .pool -_08192690: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r3, =0x00000d64 - adds r0, r3 - adds r0, r5 - ldrh r1, [r0] - ldr r0, =gUnknown_0203BC8C - ldr r0, [r0] - lsls r1, 4 - adds r1, r0 - ldrh r0, [r1] - ldr r1, =gUnknown_0860D340 - adds r1, r7, r1 - ldrb r2, [r1] - ldr r1, [sp, 0x2C] - orrs r2, r1 -_081926B0: - ldr r1, =gUnknown_0860D343 - adds r1, r7, r1 - ldrb r3, [r1] - ldr r1, [sp, 0x30] - adds r3, r1 - mov r1, r9 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0x1 - str r1, [sp, 0x8] - ldr r1, =sub_8190938 - bl sub_80D2CC4 - ldr r1, [r6] - adds r1, r4 - strb r0, [r1] - ldr r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r10 - ldrb r1, [r0, 0x5] - movs r2, 0xD - negs r2, r2 - ands r1, r2 - strb r1, [r0, 0x5] - movs r0, 0x1E - ldr r3, [sp, 0x1C] - ands r0, r3 - cmp r0, 0 - beq _0819270A - ldr r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r10 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_0819270A: - adds r4, 0x1 - adds r5, 0x2 - adds r7, 0x1 - cmp r7, 0x2 - ble _08192624 - add r0, sp, 0xC - movs r2, 0 - movs r3, 0x2 - strb r3, [r0, 0x5] - strb r2, [r0, 0x6] - strb r2, [r0, 0x7] - adds r1, r0, 0 - adds r0, r2, 0 - strb r0, [r1, 0x8] - adds r0, r1, 0 - ldrb r0, [r0, 0x7] - strb r0, [r1, 0x9] - adds r0, r1, 0 - strb r3, [r0, 0xA] - strb r2, [r0, 0xB] - adds r3, r0, 0 - ldrb r2, [r3, 0xC] - movs r1, 0x10 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3, 0xC] - adds r2, r3, 0 - movs r0, 0xE0 - strb r0, [r2, 0xC] - ldrb r0, [r2, 0xD] - ands r1, r0 - strb r1, [r2, 0xD] - adds r1, r2, 0 - movs r0, 0xD0 - strb r0, [r1, 0xD] - movs r7, 0 - ldr r0, =0x000003ff - ldr r4, [sp, 0x24] - cmp r4, r0 - bne _08192784 - ldr r0, =gTrainerClassNameIndices - adds r0, 0x3C - ldrb r5, [r0] - b _081927A2 - .pool -_08192784: - ldr r0, =0x000003fe - ldr r1, [sp, 0x24] - cmp r1, r0 - bne _08192798 - bl sub_8195924 - b _0819279E - .pool -_08192798: - ldr r0, [sp, 0x24] - bl sub_8162BD8 -_0819279E: - lsls r0, 24 - lsrs r5, r0, 24 -_081927A2: - ldr r2, =gTrainerClassNames - movs r0, 0xD - adds r1, r5, 0 - muls r1, r0 - adds r0, r7, r1 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0xFF - beq _081927CA - ldr r3, =gStringVar1 - adds r0, r1, r2 - adds r2, r7, r0 -_081927BA: - adds r0, r7, r3 - ldrb r1, [r2] - strb r1, [r0] - adds r2, 0x1 - adds r7, 0x1 - ldrb r0, [r2] - cmp r0, 0xFF - bne _081927BA -_081927CA: - ldr r5, =gStringVar1 - adds r1, r7, r5 - movs r0, 0 - strb r0, [r1] - adds r0, r7, 0x1 - adds r0, r5 - movs r1, 0xFF - strb r1, [r0] - ldr r0, =0x000003ff - ldr r2, [sp, 0x24] - cmp r2, r0 - bne _08192800 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - adds r0, r5, 0 - bl StringAppend - b _08192836 - .pool -_08192800: - ldr r0, =0x000003fe - ldr r3, [sp, 0x24] - cmp r3, r0 - bne _08192824 - ldr r4, =gStringVar2 - adds r0, r4, 0 - bl sub_8195938 - adds r0, r5, 0 - adds r1, r4, 0 - bl StringAppend - b _08192836 - .pool -_08192824: - ldr r4, =gStringVar2 - ldr r1, [sp, 0x24] - adds r0, r4, 0 - bl sub_8195898 - adds r0, r5, 0 - adds r1, r4, 0 - bl StringAppend -_08192836: - add r0, sp, 0xC - ldrb r0, [r0, 0x5] - ldr r4, =gStringVar1 - add r1, sp, 0xC - ldrb r3, [r1, 0xA] - adds r1, r4, 0 - movs r2, 0xD0 - bl GetStringCenterAlignXOffsetWithLetterSpacing - add r1, sp, 0xC - movs r5, 0 - strb r0, [r1, 0x8] - str r4, [sp, 0xC] - adds r0, r1, 0 - add r4, sp, 0x28 - ldrb r4, [r4] - strb r4, [r0, 0x4] - ldr r0, [sp, 0x44] - lsrs r4, r0, 24 - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram - add r0, sp, 0xC - movs r1, 0 - movs r2, 0 - bl AddTextPrinter - add r0, sp, 0xC - strb r5, [r0, 0xA] - movs r7, 0 - adds r6, r0, 0 - ldr r1, [sp, 0x3C] - ldr r2, [sp, 0x20] - adds r0, r1, r2 - lsls r0, 1 - mov r9, r0 - movs r3, 0xB - mov r10, r3 -_0819288A: - ldr r0, =gUnknown_0860D346 - adds r0, r7, r0 - ldrb r0, [r0] - strb r0, [r6, 0x9] - ldr r0, =0x000003ff - ldr r4, [sp, 0x24] - cmp r4, r0 - bne _081928C0 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - lsls r0, r7, 1 - add r0, r9 - ldr r2, =0x00000d64 - adds r1, r2 - b _081928FA - .pool -_081928C0: - ldr r0, =0x000003fe - ldr r4, [sp, 0x24] - cmp r4, r0 - bne _081928E4 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - lsls r0, r7, 1 - add r0, r9 - ldr r2, =0x00000d64 - adds r1, r2 - b _081928FA - .pool -_081928E4: - ldr r4, =gSaveBlock2Ptr - ldr r1, [r4] - lsls r0, r7, 1 - add r0, r9 - ldr r2, =0x00000d64 - adds r1, r2 - adds r1, r0 - ldrh r1, [r1] - ldr r0, =gUnknown_0203BC8C - ldr r0, [r0] - lsls r1, 4 -_081928FA: - adds r1, r0 - ldrh r0, [r1] - mov r3, r10 - muls r3, r0 - adds r0, r3, 0 - ldr r1, =gSpeciesNames - adds r0, r1 - str r0, [sp, 0xC] - adds r0, r7, 0x1 - ldr r4, [sp, 0x28] - adds r0, r4 - movs r1, 0 - strb r0, [r6, 0x4] - cmp r7, 0x1 - bne _08192930 - movs r0, 0x7 - strb r0, [r6, 0x8] - b _08192932 - .pool -_08192930: - strb r1, [r6, 0x8] -_08192932: - adds r5, r7, 0x1 - ldr r0, [sp, 0x28] - adds r4, r5, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram - add r0, sp, 0xC - movs r1, 0 - movs r2, 0 - bl AddTextPrinter - adds r7, r5, 0 - cmp r7, 0x2 - ble _0819288A - ldr r4, [sp, 0x40] - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, =0x000003fe - ldr r1, [sp, 0x24] - cmp r1, r0 - bne _08192980 - ldr r0, =gUnknown_0860D1D0 - ldr r0, [r0, 0x40] - b _0819298A - .pool -_08192980: - ldr r0, =gUnknown_0860D1D0 - ldr r2, [sp, 0x20] - lsls r1, r2, 2 - adds r1, r0 - ldr r0, [r1] -_0819298A: - str r0, [sp, 0xC] - add r1, sp, 0xC - movs r2, 0 - movs r0, 0x1 - strb r0, [r1, 0x5] - adds r0, r1, 0 - add r3, sp, 0x40 - ldrb r3, [r3] - strb r3, [r0, 0x4] - strb r2, [r0, 0x8] - movs r1, 0x4 - strb r1, [r0, 0x7] - strb r1, [r0, 0x9] - movs r1, 0 - bl AddTextPrinter - movs r7, 0 - ldr r3, =gUnknown_0860B358 -_081929AE: - movs r5, 0 - adds r4, r7, 0x1 - str r4, [sp, 0x38] - lsls r0, r7, 1 - str r0, [sp, 0x34] - lsls r2, r7, 4 -_081929BA: - movs r6, 0 - lsls r1, r5, 1 - mov r10, r1 - mov r4, r8 - mov r9, r2 -_081929C4: - ldr r0, =0x000003fe - ldr r1, [sp, 0x24] - cmp r1, r0 - bne _08192A00 - lsls r0, r7, 24 - lsls r1, r5, 24 - lsrs r0, 24 - lsrs r1, 24 - str r2, [sp, 0x48] - str r3, [sp, 0x4C] - bl sub_81A5060 - lsls r0, 16 - lsrs r0, 12 - adds r0, r6, r0 - ldr r3, [sp, 0x4C] - adds r0, r3 - ldrh r1, [r4] - ldrb r0, [r0] - adds r1, r0 - strh r1, [r4] - ldr r2, [sp, 0x48] - b _08192A58 - .pool -_08192A00: - ldr r0, =0x000003ff - ldr r1, [sp, 0x24] - cmp r1, r0 - bne _08192A20 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000efc - adds r0, r1 - add r0, r9 - b _08192A48 - .pool -_08192A20: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - mov r12, r0 - ldr r0, [sp, 0x3C] - ldr r1, [sp, 0x20] - adds r0, r1 - str r0, [sp, 0x50] - lsls r0, 1 - ldr r1, [sp, 0x34] - adds r0, r1, r0 - ldr r1, =0x00000d64 - add r1, r12 - adds r1, r0 - ldrh r0, [r1] - ldr r1, =gUnknown_0203BC8C - ldr r1, [r1] - lsls r0, 4 - adds r0, r1 - adds r0, 0x2 - add r0, r10 -_08192A48: - ldrh r0, [r0] - lsls r0, 4 - adds r0, r6, r0 - adds r0, r3 - ldrh r1, [r4] - ldrb r0, [r0] - adds r1, r0 - strh r1, [r4] -_08192A58: - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0xF - ble _081929C4 - adds r2, 0x2 - adds r5, 0x1 - cmp r5, 0x3 - ble _081929BA - ldr r7, [sp, 0x38] - cmp r7, 0x2 - ble _081929AE - movs r7, 0 - ldr r2, =gUnknown_0860D214 - mov r9, r2 - ldr r3, =gUnknown_0860C988 - mov r10, r3 -_08192A78: - movs r4, 0 - movs r6, 0 - movs r5, 0 - mov r3, r8 - lsls r0, r7, 4 - mov r1, r10 - adds r2, r0, r1 -_08192A86: - ldrb r0, [r2] - cmp r0, 0 - beq _08192A9E - adds r4, 0x1 - movs r1, 0 - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _08192A9E - ldrb r1, [r2] - cmp r0, r1 - blt _08192A9E - adds r6, 0x1 -_08192A9E: - adds r3, 0x2 - adds r2, 0x1 - adds r5, 0x1 - cmp r5, 0xF - ble _08192A86 - cmp r4, r6 - beq _08192AB2 - adds r7, 0x1 - cmp r7, 0x1E - bls _08192A78 -_08192AB2: - lsls r0, r7, 2 - add r0, r9 - ldr r0, [r0] - str r0, [sp, 0xC] - add r0, sp, 0xC - movs r1, 0x14 - strb r1, [r0, 0x7] - strb r1, [r0, 0x9] - movs r1, 0 - movs r2, 0 - bl AddTextPrinter - movs r1, 0 - mov r0, r8 - adds r0, 0x22 -_08192AD0: - strh r1, [r0] - subs r0, 0x2 - cmp r0, r8 - bge _08192AD0 - ldr r2, [sp, 0x24] - ldr r3, =0xfffffc02 - adds r0, r2, r3 - cmp r0, 0x1 - bls _08192AE4 - b _08192C24 -_08192AE4: - movs r7, 0 - movs r4, 0 - mov r9, r4 -_08192AEA: - movs r5, 0 - mov r4, r8 - mov r6, r9 -_08192AF0: - ldr r0, =0x000003fe - ldr r1, [sp, 0x24] - cmp r1, r0 - bne _08192B24 - lsls r1, r5, 24 - lsrs r1, 24 - lsrs r0, r6, 24 - bl sub_81A50F0 - lsls r0, 24 - lsrs r0, 24 - b _08192B34 - .pool -_08192B24: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r7, 4 - adds r1, r5, r1 - ldr r2, =0x00000f04 - adds r0, r2 - adds r0, r1 - ldrb r0, [r0] -_08192B34: - strh r0, [r4] - adds r4, 0x2 - adds r5, 0x1 - cmp r5, 0x5 - ble _08192AF0 - mov r3, r8 - ldrh r0, [r3] - ldrh r4, [r3, 0xC] - adds r0, r4 - strh r0, [r3, 0xC] - movs r5, 0 - mov r4, r8 -_08192B4C: - ldr r0, =0x000003fe - ldr r1, [sp, 0x24] - cmp r1, r0 - bne _08192B70 - mov r2, r9 - lsrs r0, r2, 24 - bl sub_81A50B0 - lsls r0, 24 - lsrs r2, r0, 24 - b _08192B7E - .pool -_08192B70: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r7, 4 - adds r0, r1 - ldr r3, =0x00000f0a - adds r0, r3 - ldrb r2, [r0] -_08192B7E: - ldr r1, =gNatureStatTable - lsls r0, r2, 2 - adds r0, r2 - adds r0, r5, r0 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - ble _08192BB4 - movs r0, 0x2 - ldrsh r1, [r4, r0] - movs r0, 0x6E - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - ldrh r1, [r4, 0xE] - adds r1, r0 - strh r1, [r4, 0xE] - b _08192BDC - .pool -_08192BB4: - cmp r0, 0 - bge _08192BD4 - movs r2, 0x2 - ldrsh r1, [r4, r2] - movs r0, 0x5A - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - ldrh r1, [r4, 0xE] - adds r1, r0 - strh r1, [r4, 0xE] - ldrh r0, [r4, 0x1A] - adds r0, 0x1 - strh r0, [r4, 0x1A] - b _08192BDC -_08192BD4: - ldrh r0, [r4, 0x2] - ldrh r3, [r4, 0xE] - adds r0, r3 - strh r0, [r4, 0xE] -_08192BDC: - adds r4, 0x2 - adds r5, 0x1 - cmp r5, 0x4 - ble _08192B4C - movs r4, 0x80 - lsls r4, 17 - add r9, r4 - adds r7, 0x1 - cmp r7, 0x2 - bgt _08192BF2 - b _08192AEA -_08192BF2: - movs r5, 0 - mov r1, r8 - movs r7, 0x5 -_08192BF8: - movs r2, 0xC - ldrsh r0, [r1, r2] - adds r5, r0 - adds r1, 0x2 - subs r7, 0x1 - cmp r7, 0 - bge _08192BF8 - movs r6, 0x64 - mov r4, r8 - movs r7, 0x5 -_08192C0C: - movs r3, 0xC - ldrsh r0, [r4, r3] - muls r0, r6 - adds r1, r5, 0 - bl __divsi3 - strh r0, [r4] - adds r4, 0x2 - subs r7, 0x1 - cmp r7, 0 - bge _08192C0C - b _08192D70 -_08192C24: - ldr r4, =gUnknown_0203BC8C - mov r10, r4 - ldr r1, [sp, 0x3C] - ldr r2, [sp, 0x20] - adds r0, r1, r2 - lsls r0, 1 - mov r9, r0 - movs r7, 0x2 -_08192C34: - ldr r3, =gSaveBlock2Ptr - ldr r0, [r3] - ldr r4, =0x00000d64 - adds r0, r4 - add r0, r9 - ldrh r0, [r0] - mov r2, r10 - ldr r1, [r2] - lsls r0, 4 - adds r0, r1 - ldrb r2, [r0, 0xB] - movs r6, 0 - movs r4, 0 - movs r3, 0x1 - mov r1, r8 - movs r5, 0x5 -_08192C54: - strh r4, [r1] - adds r0, r2, 0 - ands r0, r3 - cmp r0, 0 - beq _08192C60 - adds r6, 0x1 -_08192C60: - asrs r2, 1 - adds r1, 0x2 - subs r5, 0x1 - cmp r5, 0 - bge _08192C54 - movs r0, 0xFF - lsls r0, 1 - adds r1, r6, 0 - bl __divsi3 - adds r6, r0, 0 - ldr r3, =gSaveBlock2Ptr - ldr r0, [r3] - ldr r4, =0x00000d64 - adds r0, r4 - add r0, r9 - ldrh r0, [r0] - mov r2, r10 - ldr r1, [r2] - lsls r0, 4 - adds r0, r1 - ldrb r2, [r0, 0xB] - movs r3, 0x1 - mov r1, r8 - movs r5, 0x5 -_08192C92: - adds r0, r2, 0 - ands r0, r3 - cmp r0, 0 - beq _08192C9C - strh r6, [r1] -_08192C9C: - asrs r2, 1 - adds r1, 0x2 - subs r5, 0x1 - cmp r5, 0 - bge _08192C92 - mov r3, r8 - ldrh r0, [r3] - ldrh r4, [r3, 0xC] - adds r0, r4 - strh r0, [r3, 0xC] - movs r5, 0 - mov r4, r8 -_08192CB4: - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - ldr r2, =0x00000d64 - adds r0, r2 - add r0, r9 - ldrh r0, [r0] - mov r3, r10 - ldr r1, [r3] - lsls r0, 4 - adds r0, r1 - ldrb r2, [r0, 0xC] - lsls r0, r2, 2 - adds r0, r2 - adds r0, r5, r0 - ldr r1, =gNatureStatTable - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - ble _08192D04 - movs r2, 0x2 - ldrsh r1, [r4, r2] - movs r0, 0x6E - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - ldrh r1, [r4, 0xE] - adds r1, r0 - strh r1, [r4, 0xE] - b _08192D2C - .pool -_08192D04: - cmp r0, 0 - bge _08192D24 - movs r3, 0x2 - ldrsh r1, [r4, r3] - movs r0, 0x5A - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - ldrh r1, [r4, 0xE] - adds r1, r0 - strh r1, [r4, 0xE] - ldrh r0, [r4, 0x1A] - adds r0, 0x1 - strh r0, [r4, 0x1A] - b _08192D2C -_08192D24: - ldrh r0, [r4, 0x2] - ldrh r1, [r4, 0xE] - adds r0, r1 - strh r0, [r4, 0xE] -_08192D2C: - adds r4, 0x2 - adds r5, 0x1 - cmp r5, 0x4 - ble _08192CB4 - movs r2, 0x2 - add r9, r2 - subs r7, 0x1 - cmp r7, 0 - blt _08192D40 - b _08192C34 -_08192D40: - movs r5, 0 - mov r1, r8 - movs r7, 0x5 -_08192D46: - movs r3, 0xC - ldrsh r0, [r1, r3] - adds r5, r0 - adds r1, 0x2 - subs r7, 0x1 - cmp r7, 0 - bge _08192D46 - movs r6, 0x64 - mov r4, r8 - movs r7, 0x5 -_08192D5A: - movs r1, 0xC - ldrsh r0, [r4, r1] - muls r0, r6 - adds r1, r5, 0 - bl __divsi3 - strh r0, [r4] - adds r4, 0x2 - subs r7, 0x1 - cmp r7, 0 - bge _08192D5A -_08192D70: - movs r7, 0 - movs r5, 0 - movs r6, 0 - mov r4, r8 - mov r10, r8 - mov r9, r8 -_08192D7C: - movs r2, 0 - ldrsh r1, [r4, r2] - cmp r1, 0x1D - ble _08192DDE - cmp r7, 0x2 - bne _08192DD4 - mov r3, r8 - movs r0, 0xC - ldrsh r3, [r3, r0] - mov r12, r3 - cmp r12, r1 - bge _08192DC6 - mov r2, r8 - ldrh r2, [r2, 0xE] - add r3, sp, 0x54 - strh r2, [r3] - mov r2, r8 - movs r3, 0xE - ldrsh r0, [r2, r3] - cmp r0, r1 - bge _08192DBA - cmp r12, r0 - bge _08192DB4 - add r0, sp, 0x54 - ldrh r0, [r0] - strh r0, [r2, 0xC] - strh r6, [r2, 0xE] - b _08192DDE -_08192DB4: - mov r1, r8 - strh r6, [r1, 0xE] - b _08192DDE -_08192DBA: - add r2, sp, 0x54 - ldrh r3, [r2] - mov r2, r8 - strh r3, [r2, 0xC] - strh r6, [r2, 0xE] - b _08192DDE -_08192DC6: - mov r3, r8 - movs r2, 0xE - ldrsh r0, [r3, r2] - cmp r0, r1 - bge _08192DDE - strh r6, [r3, 0xE] - b _08192DDE -_08192DD4: - mov r3, r9 - strh r6, [r3, 0xC] - movs r0, 0x2 - add r9, r0 - adds r7, 0x1 -_08192DDE: - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08192E64 - cmp r5, 0x2 - bne _08192E5A - movs r2, 0x18 - ldrsh r0, [r4, r2] - cmp r0, 0x1 - bgt _08192E18 - cmp r0, 0x1 - bne _08192E64 - mov r3, r8 - movs r1, 0x10 - ldrsh r0, [r3, r1] - lsls r0, 1 - add r0, r8 - movs r2, 0x18 - ldrsh r0, [r0, r2] - cmp r0, 0 - bne _08192E22 - movs r1, 0x12 - ldrsh r0, [r3, r1] - lsls r0, 1 - add r0, r8 - movs r2, 0x18 - ldrsh r0, [r0, r2] - cmp r0, 0 - bne _08192E22 -_08192E18: - mov r3, r8 - ldrh r0, [r3, 0x12] - strh r0, [r3, 0x10] - strh r6, [r3, 0x12] - b _08192E64 -_08192E22: - movs r1, 0x18 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _08192E64 - mov r2, r8 - movs r3, 0x10 - ldrsh r0, [r2, r3] - lsls r0, 1 - add r0, r8 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08192E44 - ldrh r0, [r2, 0x12] - strh r0, [r2, 0x10] - strh r6, [r2, 0x12] - b _08192E64 -_08192E44: - mov r2, r8 - movs r3, 0x12 - ldrsh r0, [r2, r3] - lsls r0, 1 - add r0, r8 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08192E64 - strh r6, [r2, 0x12] - b _08192E64 -_08192E5A: - mov r2, r10 - strh r6, [r2, 0x10] - movs r3, 0x2 - add r10, r3 - adds r5, 0x1 -_08192E64: - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x5 - ble _08192D7C - cmp r7, 0x2 - bne _08192E8C - ldr r0, =gUnknown_0860D349 - mov r4, r8 - movs r1, 0xC - ldrsh r2, [r4, r1] - adds r0, r2, r0 - movs r3, 0xE - ldrsh r1, [r4, r3] - subs r1, 0x1 - subs r1, r2 - ldrb r0, [r0] - adds r7, r1, r0 - b _08192ED2 - .pool -_08192E8C: - cmp r7, 0x1 - bne _08192E9C - mov r4, r8 - movs r1, 0xC - ldrsh r0, [r4, r1] - adds r7, r0, 0 - adds r7, 0xF - b _08192ED2 -_08192E9C: - cmp r5, 0x2 - bne _08192EC0 - ldr r0, =gUnknown_0860D349 - mov r3, r8 - movs r4, 0x10 - ldrsh r2, [r3, r4] - adds r0, r2, r0 - movs r4, 0x12 - ldrsh r1, [r3, r4] - subs r1, 0x1 - subs r1, r2 - ldrb r0, [r0] - adds r1, r0 - adds r7, r1, 0 - adds r7, 0x15 - b _08192ED2 - .pool -_08192EC0: - cmp r5, 0x1 - bne _08192ED0 - mov r1, r8 - movs r2, 0x10 - ldrsh r0, [r1, r2] - adds r7, r0, 0 - adds r7, 0x24 - b _08192ED2 -_08192ED0: - movs r7, 0x2A -_08192ED2: - lsls r0, r7, 2 - ldr r3, =gUnknown_0860D294 - adds r0, r3 - ldr r0, [r0] - str r0, [sp, 0xC] - add r0, sp, 0xC - movs r1, 0x24 - strb r1, [r0, 0x7] - strb r1, [r0, 0x9] - movs r1, 0 - movs r2, 0 - bl AddTextPrinter - mov r0, r8 - bl Free - add sp, 0x58 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81924E0 - - thumb_func_start sub_8192F08 -sub_8192F08: @ 8192F08 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - str r1, [sp] - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0 - str r0, [sp, 0x4] - mov r8, r0 - ldr r2, =gUnknown_0860D3C4 - lsls r0, r7, 1 - adds r0, r7 - adds r1, r0, r2 - ldrb r6, [r1] - adds r1, r2, 0x1 - adds r0, r1 - ldrb r0, [r0] - adds r0, r6, r0 - adds r3, r2, 0 - cmp r6, r0 - bge _08192FD4 - ldr r5, =gSaveBlock2Ptr - ldr r1, =0x000003ff - mov r10, r1 - ldr r2, =0x000003fe - mov r9, r2 -_08192F42: - ldr r0, =gUnknown_0860D3B4 - adds r0, r6, r0 - ldrb r4, [r0] - ldr r0, [r5] - lsls r1, r4, 2 - adds r0, r1 - ldr r2, =0x00000d25 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _08192FBE - ldr r0, [sp] - add r0, r8 - strb r4, [r0] - ldr r2, [r5] - adds r0, r2, r1 - ldr r1, =0x00000d24 - adds r0, r1 - ldrh r0, [r0] - lsls r1, r0, 22 - lsrs r0, r1, 22 - cmp r0, r10 - bne _08192F9C - ldr r0, =gStringVar1 - adds r1, r2, 0 - bl StringCopy - b _08192FB8 - .pool -_08192F9C: - lsrs r0, r1, 22 - cmp r0, r9 - bne _08192FB0 - ldr r0, =gStringVar1 - bl sub_8195938 - b _08192FB8 - .pool -_08192FB0: - lsrs r1, 22 - ldr r0, =gStringVar1 - bl sub_8195898 -_08192FB8: - movs r2, 0x1 - add r8, r2 - ldr r3, =gUnknown_0860D3C4 -_08192FBE: - adds r6, 0x1 - lsls r1, r7, 1 - adds r1, r7 - adds r0, r1, r3 - ldrb r2, [r0] - adds r0, r3, 0x1 - adds r1, r0 - ldrb r0, [r1] - adds r2, r0 - cmp r6, r2 - blt _08192F42 -_08192FD4: - mov r5, r8 - cmp r5, 0x2 - bne _08192FE8 - movs r0, 0 - b _0819313C - .pool -_08192FE8: - mov r12, r3 - lsls r3, r7, 1 - adds r0, r3, r7 - mov r2, r12 - adds r1, r0, r2 - ldrb r6, [r1] - mov r1, r12 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - adds r0, r6, r0 - str r3, [sp, 0x8] - cmp r6, r0 - blt _08193006 - b _08193126 -_08193006: - ldr r5, =gSaveBlock2Ptr - mov r10, r5 - ldr r0, =0x00000d25 - mov r9, r0 -_0819300E: - ldr r0, =gUnknown_0860D3B4 - adds r0, r6, r0 - ldrb r4, [r0] - mov r1, r10 - ldr r0, [r1] - lsls r2, r4, 2 - str r2, [sp, 0xC] - adds r0, r2 - add r0, r9 - ldrb r2, [r0] - lsls r0, r2, 29 - cmp r0, 0 - bge _08193100 - lsls r2, 27 - adds r1, r3, r7 - mov r0, r12 - adds r0, 0x2 - adds r1, r0 - lsrs r2, 30 - ldrb r1, [r1] - cmp r2, r1 - bcc _08193100 - ldr r0, [sp] - add r0, r8 - strb r4, [r0] - movs r5, 0x1 - add r8, r5 - mov r0, r10 - ldr r3, [r0] - ldr r5, [sp, 0xC] - adds r2, r3, r5 - adds r0, r2, 0 - add r0, r9 - ldrb r5, [r0] - mov r12, r5 - mov r0, r12 - lsls r0, 27 - lsrs r0, 30 - cmp r0, r1 - bne _081930BC - lsls r4, 1 - movs r1, 0xEC - lsls r1, 4 - adds r0, r3, r1 - adds r0, r4 - ldrh r1, [r0] - movs r0, 0xD - muls r1, r0 - ldr r0, =gMoveNames - adds r1, r0 - ldr r0, =gStringVar2 - bl StringCopy - mov r2, r10 - ldr r1, [r2] - ldr r5, [sp, 0xC] - adds r0, r1, r5 - add r0, r9 - ldrb r0, [r0] - lsls r2, r0, 24 - lsrs r0, r2, 29 - lsls r0, 1 - str r0, [sp, 0x4] - movs r0, 0xEC - lsls r0, 4 - adds r1, r0 - adds r1, r4 - ldrh r0, [r1] - cmp r0, 0 - bne _08193100 - lsrs r0, r2, 29 - cmp r0, 0 - bne _08193100 - movs r1, 0x4 - str r1, [sp, 0x4] - b _08193100 - .pool -_081930BC: - ldr r5, =0x00000d24 - adds r0, r2, r5 - ldrh r0, [r0] - lsls r1, r0, 22 - ldr r0, =0xffc00000 - cmp r1, r0 - bne _081930E0 - ldr r0, =gStringVar1 - adds r1, r3, 0 - bl StringCopy - b _08193100 - .pool -_081930E0: - ldr r0, =0xff800000 - cmp r1, r0 - bne _081930F8 - ldr r0, =gStringVar1 - bl sub_8195938 - b _08193100 - .pool -_081930F8: - lsrs r1, 22 - ldr r0, =gStringVar1 - bl sub_8195898 -_08193100: - mov r0, r8 - cmp r0, 0x2 - beq _08193126 - adds r6, 0x1 - ldr r1, =gUnknown_0860D3C4 - mov r12, r1 - ldr r3, [sp, 0x8] - adds r1, r3, r7 - mov r2, r12 - adds r0, r1, r2 - ldrb r2, [r0] - mov r0, r12 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - adds r2, r0 - cmp r6, r2 - bge _08193126 - b _0819300E -_08193126: - cmp r7, 0xE - beq _08193138 - ldr r0, [sp, 0x4] - adds r0, 0x1 - b _0819313C - .pool -_08193138: - ldr r0, [sp, 0x4] - adds r0, 0x2 -_0819313C: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8192F08 - - thumb_func_start sub_819314C -sub_819314C: @ 819314C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x80 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x34] - lsls r1, 24 - lsrs r6, r1, 24 - movs r0, 0 - str r0, [sp, 0x3C] - movs r7, 0 - movs r1, 0 - str r1, [sp, 0x40] - movs r2, 0 - str r2, [sp, 0x44] - mov r9, r2 - movs r0, 0x1 - ldr r3, [sp, 0x34] - ands r0, r3 - cmp r0, 0 - beq _08193186 - movs r7, 0x8 - str r7, [sp, 0x3C] - movs r7, 0x9 - movs r0, 0x2 - mov r9, r0 -_08193186: - movs r0, 0x2 - ldr r1, [sp, 0x34] - ands r0, r1 - cmp r0, 0 - beq _08193196 - movs r2, 0x80 - lsls r2, 1 - str r2, [sp, 0x40] -_08193196: - movs r0, 0x4 - ldr r3, [sp, 0x34] - ands r0, r3 - cmp r0, 0 - beq _081931A4 - movs r0, 0xA0 - str r0, [sp, 0x44] -_081931A4: - movs r0, 0x8 - ldr r1, [sp, 0x34] - ands r0, r1 - cmp r0, 0 - beq _081931B2 - ldr r2, =0xffffff00 - str r2, [sp, 0x40] -_081931B2: - movs r0, 0x10 - ldr r3, [sp, 0x34] - ands r0, r3 - cmp r0, 0 - beq _081931C2 - movs r0, 0xA0 - negs r0, r0 - str r0, [sp, 0x44] -_081931C2: - ldr r4, =gUnknown_0203CD78 - ldr r1, [r4] - adds r1, 0x11 - adds r0, r6, 0 - bl sub_8192F08 - str r0, [sp, 0x38] - movs r5, 0 - mov r1, sp - adds r1, 0x1C - str r1, [sp, 0x48] - mov r2, sp - adds r2, 0x24 - str r2, [sp, 0x4C] - lsls r1, r6, 1 - mov r3, sp - adds r3, 0x2C - str r3, [sp, 0x50] - ldr r0, [sp, 0x40] - adds r0, 0x30 - mov r8, r0 - ldr r2, [sp, 0x44] - adds r2, 0x58 - str r2, [sp, 0x78] - movs r3, 0xC - add r3, r9 - mov r10, r3 - ldr r0, [sp, 0x40] - adds r0, 0xC0 - str r0, [sp, 0x7C] - mov r2, r9 - adds r2, 0xD - str r2, [sp, 0x74] - ldr r3, [sp, 0x3C] - adds r3, 0x1 - mov r9, r3 - ldr r0, [sp, 0x3C] - adds r0, 0x2 - str r0, [sp, 0x54] - ldr r2, [sp, 0x3C] - adds r2, 0x5 - str r2, [sp, 0x5C] - adds r3, r7, 0 - adds r3, 0x8 - str r3, [sp, 0x6C] - adds r0, r7, 0x6 - str r0, [sp, 0x64] - adds r2, r7, 0x7 - str r2, [sp, 0x68] - lsls r3, r6, 2 - str r3, [sp, 0x58] - adds r0, r7, 0x5 - str r0, [sp, 0x60] - ldr r0, [r4] - adds r0, 0x11 - mov r12, r0 - ldr r0, =gSaveBlock2Ptr - ldr r4, [r0] - ldr r0, =gUnknown_0860D3C6 - movs r3, 0 - adds r1, r6 - adds r1, r0 - ldrb r6, [r1] -_08193240: - ldr r1, [sp, 0x48] - adds r2, r3, r1 - mov r7, r12 - adds r0, r7, r5 - ldrb r0, [r0] - str r0, [r2] - ldr r7, [sp, 0x4C] - adds r1, r3, r7 - lsls r0, 2 - adds r0, r4, r0 - ldr r7, =0x00000d24 - adds r0, r7 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - str r0, [r1] - ldr r0, [r2] - lsls r0, 2 - adds r0, r4, r0 - ldr r1, =0x00000d25 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 27 - lsrs r0, 30 - cmp r0, r6 - bhi _0819329C - lsls r0, r1, 29 - cmp r0, 0 - bge _0819329C - ldr r2, [sp, 0x50] - adds r1, r3, r2 - movs r0, 0x1 - b _081932A2 - .pool -_0819329C: - ldr r7, [sp, 0x50] - adds r1, r3, r7 - movs r0, 0 -_081932A2: - str r0, [r1] - adds r3, 0x4 - adds r5, 0x1 - cmp r5, 0x1 - ble _08193240 - ldr r1, [sp, 0x24] - ldr r0, =0x000003ff - cmp r1, r0 - bne _081932D4 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - bl sub_806F000 - lsls r0, 16 - lsrs r0, 16 - mov r2, r8 - ldr r3, [sp, 0x78] - mov r1, r10 - str r1, [sp] - b _081932F8 - .pool -_081932D4: - ldr r0, =0x000003fe - cmp r1, r0 - bne _081932E4 - bl sub_8195910 - b _081932EC - .pool -_081932E4: - lsls r0, r1, 16 - lsrs r0, 16 - bl sub_8162AA0 -_081932EC: - lsls r0, 24 - lsrs r0, 24 - mov r2, r8 - ldr r3, [sp, 0x78] - mov r7, r10 - str r7, [sp] -_081932F8: - ldr r1, =0x0000ffff - str r1, [sp, 0x4] - movs r1, 0x1 - bl sub_818D8AC - ldr r1, =gUnknown_0203CD78 - ldr r1, [r1] - ldr r2, [sp, 0x3C] - adds r1, r2 - strb r0, [r1] - movs r0, 0x1E - ldr r3, [sp, 0x34] - ands r0, r3 - cmp r0, 0 - beq _08193334 - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldr r7, [sp, 0x3C] - adds r0, r7 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_08193334: - ldr r0, [sp, 0x2C] - cmp r0, 0 - beq _0819335A - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - ldr r1, [sp, 0x3C] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r2, [r0, 0x5] - movs r1, 0xF - ands r1, r2 - movs r2, 0x30 - orrs r1, r2 - strb r1, [r0, 0x5] -_0819335A: - ldr r2, [sp, 0x4C] - ldr r1, [r2, 0x4] - ldr r0, =0x000003ff - cmp r1, r0 - bne _08193388 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - bl sub_806F000 - lsls r0, 16 - lsrs r0, 16 - b _081933B0 - .pool -_08193388: - ldr r0, =0x000003fe - cmp r1, r0 - bne _081933A4 - bl sub_8195910 - lsls r0, 24 - lsrs r0, 24 - ldr r2, [sp, 0x7C] - ldr r3, [sp, 0x78] - ldr r1, [sp, 0x74] - str r1, [sp] - b _081933B8 - .pool -_081933A4: - lsls r0, r1, 16 - lsrs r0, 16 - bl sub_8162AA0 - lsls r0, 24 - lsrs r0, 24 -_081933B0: - ldr r2, [sp, 0x7C] - ldr r3, [sp, 0x78] - ldr r7, [sp, 0x74] - str r7, [sp] -_081933B8: - ldr r1, =0x0000ffff - str r1, [sp, 0x4] - movs r1, 0x1 - bl sub_818D8AC - ldr r1, =gUnknown_0203CD78 - ldr r1, [r1] - add r1, r9 - strb r0, [r1] - movs r0, 0x1E - ldr r1, [sp, 0x34] - ands r0, r1 - cmp r0, 0 - beq _081933F0 - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - add r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_081933F0: - ldr r2, [sp, 0x50] - ldr r0, [r2, 0x4] - cmp r0, 0 - beq _08193416 - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - add r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r2, [r0, 0x5] - movs r1, 0xF - ands r1, r2 - movs r2, 0x30 - orrs r1, r2 - strb r1, [r0, 0x5] -_08193416: - movs r5, 0 - ldr r3, [sp, 0x38] - lsls r3, 2 - str r3, [sp, 0x70] - mov r8, r5 - ldr r6, =gUnknown_0203CD78 - ldr r7, =gUnknown_02020630 - ldr r4, [sp, 0x54] - mov r9, r5 - movs r0, 0x1 - mov r10, r0 -_0819342C: - ldr r1, [sp, 0x24] - ldr r0, =0x000003ff - cmp r1, r0 - bne _08193464 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r1, [sp, 0x1C] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - add r0, r9 - ldr r1, =0x00000d64 - adds r2, r1 - adds r2, r0 - ldrh r0, [r2] - b _081934B0 - .pool -_08193464: - ldr r0, =0x000003fe - cmp r1, r0 - bne _08193490 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r1, [sp, 0x1C] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - add r0, r9 - ldr r1, =0x00000d64 - adds r2, r1 - adds r2, r0 - ldrh r0, [r2] - b _081934B0 - .pool -_08193490: - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r1, [sp, 0x1C] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - add r0, r9 - ldr r1, =0x00000d64 - adds r2, r1 - adds r2, r0 - ldrh r1, [r2] - ldr r0, =gUnknown_0203BC8C - ldr r0, [r0] - lsls r1, 4 - adds r1, r0 - ldrh r0, [r1] -_081934B0: - ldr r1, =gUnknown_0860D3A8 - adds r1, r5, r1 - ldrb r2, [r1] - ldr r3, [sp, 0x40] - orrs r2, r3 - ldr r1, =gUnknown_0860D3AB - adds r1, r5, r1 - ldrb r3, [r1] - ldr r1, [sp, 0x44] - adds r3, r1 - mov r1, r8 - str r1, [sp] - str r1, [sp, 0x4] - mov r1, r10 - str r1, [sp, 0x8] - ldr r1, =sub_8190938 - bl sub_80D2CC4 - ldr r1, [r6] - adds r1, r4 - strb r0, [r1] - ldr r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrb r1, [r0, 0x5] - movs r3, 0xD - negs r3, r3 - adds r2, r3, 0 - ands r1, r2 - strb r1, [r0, 0x5] - movs r0, 0x1E - ldr r1, [sp, 0x34] - ands r0, r1 - cmp r0, 0 - beq _08193516 - ldr r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_08193516: - ldr r0, [sp, 0x2C] - cmp r0, 0 - beq _08193548 - ldr r0, [r6] - adds r0, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - movs r2, 0x30 - orrs r0, r2 - strb r0, [r1, 0x5] - ldr r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - mov r2, r10 - strh r2, [r0, 0x34] -_08193548: - adds r4, 0x1 - movs r3, 0x2 - add r9, r3 - adds r5, 0x1 - cmp r5, 0x2 - bgt _08193556 - b _0819342C -_08193556: - movs r5, 0 - ldr r6, =gUnknown_0203CD78 - ldr r7, =gUnknown_02020630 - mov r8, r7 - ldr r4, [sp, 0x5C] - mov r9, r5 - movs r7, 0 -_08193564: - ldr r0, [sp, 0x4C] - ldr r1, [r0, 0x4] - ldr r0, =0x000003ff - cmp r1, r0 - bne _081935AC - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r3, [sp, 0x48] - ldr r1, [r3, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - add r0, r9 - ldr r1, =0x00000d64 - adds r2, r1 - adds r2, r0 - ldrh r0, [r2] - b _081935FA - .pool -_081935AC: - ldr r0, =0x000003fe - cmp r1, r0 - bne _081935D8 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r0, [sp, 0x48] - ldr r1, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - add r0, r9 - ldr r1, =0x00000d64 - adds r2, r1 - adds r2, r0 - ldrh r0, [r2] - b _081935FA - .pool -_081935D8: - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r0, [sp, 0x48] - ldr r1, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - add r0, r9 - ldr r1, =0x00000d64 - adds r2, r1 - adds r2, r0 - ldrh r1, [r2] - ldr r0, =gUnknown_0203BC8C - ldr r0, [r0] - lsls r1, 4 - adds r1, r0 - ldrh r0, [r1] -_081935FA: - ldr r1, =gUnknown_0860D3AE - adds r1, r5, r1 - ldrb r2, [r1] - ldr r3, [sp, 0x40] - orrs r2, r3 - ldr r1, =gUnknown_0860D3B1 - adds r1, r5, r1 - ldrb r3, [r1] - ldr r1, [sp, 0x44] - adds r3, r1 - str r7, [sp] - str r7, [sp, 0x4] - movs r1, 0x1 - str r1, [sp, 0x8] - ldr r1, =sub_8190938 - bl sub_80D2CC4 - ldr r1, [r6] - adds r1, r4 - strb r0, [r1] - ldr r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - ldrb r1, [r0, 0x5] - movs r3, 0xD - negs r3, r3 - adds r2, r3, 0 - ands r1, r2 - strb r1, [r0, 0x5] - movs r0, 0x1E - ldr r1, [sp, 0x34] - ands r0, r1 - cmp r0, 0 - beq _0819365E - ldr r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_0819365E: - ldr r2, [sp, 0x50] - ldr r0, [r2, 0x4] - cmp r0, 0 - beq _08193692 - ldr r0, [r6] - adds r0, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r8 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - movs r2, 0x30 - orrs r0, r2 - strb r0, [r1, 0x5] - ldr r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - movs r1, 0x1 - strh r1, [r0, 0x34] -_08193692: - adds r4, 0x1 - movs r3, 0x2 - add r9, r3 - adds r5, 0x1 - cmp r5, 0x2 - bgt _081936A0 - b _08193564 -_081936A0: - add r0, sp, 0xC - movs r5, 0 - strb r5, [r0, 0x6] - adds r1, r0, 0 - movs r0, 0x2 - strb r0, [r1, 0x7] - adds r0, r1, 0 - ldrb r0, [r0, 0x6] - strb r0, [r1, 0x8] - adds r0, r1, 0 - ldrb r0, [r0, 0x7] - strb r0, [r1, 0x9] - adds r0, r1, 0 - strb r5, [r0, 0xA] - strb r5, [r0, 0xB] - adds r3, r0, 0 - ldrb r2, [r3, 0xC] - movs r1, 0x10 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3, 0xC] - adds r2, r3, 0 - movs r0, 0xE0 - strb r0, [r2, 0xC] - ldrb r0, [r2, 0xD] - ands r1, r0 - strb r1, [r2, 0xD] - adds r1, r2, 0 - movs r0, 0xD0 - strb r0, [r1, 0xD] - ldr r4, =gStringVar4 - ldr r0, =gUnknown_0860D38C - ldr r7, [sp, 0x70] - adds r0, r7, r0 - ldr r1, [r0] - adds r0, r4, 0 - bl StringExpandPlaceholders - str r4, [sp, 0xC] - add r0, sp, 0xC - add r1, sp, 0x6C - ldrb r1, [r1] - strb r1, [r0, 0x4] - adds r1, r0, 0 - movs r0, 0x1 - strb r0, [r1, 0x5] - ldr r4, [sp, 0x6C] - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram - add r0, sp, 0xC - strb r5, [r0, 0x8] - adds r1, r0, 0 - strb r5, [r0, 0x7] - strb r5, [r1, 0x9] - movs r1, 0 - movs r2, 0 - bl AddTextPrinter - ldr r1, [sp, 0x24] - ldr r0, =0x000003ff - cmp r1, r0 - bne _0819375C - ldr r0, =gStringVar1 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - bl StringCopy - b _0819377E - .pool -_0819375C: - ldr r0, =0x000003fe - cmp r1, r0 - bne _08193774 - ldr r0, =gStringVar1 - bl sub_8195938 - b _0819377E - .pool -_08193774: - ldr r0, =gStringVar1 - lsls r1, 16 - lsrs r1, 16 - bl sub_8195898 -_0819377E: - add r0, sp, 0xC - movs r4, 0x2 - strb r4, [r0, 0x5] - strb r4, [r0, 0xA] - ldr r5, =gStringVar1 - str r5, [sp, 0xC] - add r2, sp, 0x64 - ldrb r2, [r2] - strb r2, [r0, 0x4] - ldrb r0, [r0, 0x5] - ldr r1, [sp, 0xC] - add r2, sp, 0xC - ldrb r3, [r2, 0xA] - movs r2, 0x40 - bl GetStringCenterAlignXOffsetWithLetterSpacing - add r1, sp, 0xC - strb r0, [r1, 0x8] - adds r0, r1, 0 - strb r4, [r0, 0x7] - strb r4, [r1, 0x9] - ldr r4, [sp, 0x64] - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram - add r0, sp, 0xC - movs r1, 0 - movs r2, 0 - bl AddTextPrinter - ldr r3, [sp, 0x4C] - ldr r1, [r3, 0x4] - ldr r0, =0x000003ff - cmp r1, r0 - bne _081937E4 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - adds r0, r5, 0 - bl StringCopy - b _08193802 - .pool -_081937E4: - ldr r0, =0x000003fe - cmp r1, r0 - bne _081937F8 - adds r0, r5, 0 - bl sub_8195938 - b _08193802 - .pool -_081937F8: - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - bl sub_8195898 -_08193802: - ldr r0, =gStringVar1 - str r0, [sp, 0xC] - add r0, sp, 0xC - movs r6, 0 - add r7, sp, 0x68 - ldrb r7, [r7] - strb r7, [r0, 0x4] - ldrb r0, [r0, 0x5] - ldr r1, [sp, 0xC] - add r2, sp, 0xC - ldrb r3, [r2, 0xA] - movs r2, 0x40 - bl GetStringCenterAlignXOffsetWithLetterSpacing - add r1, sp, 0xC - strb r0, [r1, 0x8] - adds r0, r1, 0 - movs r5, 0x2 - strb r5, [r0, 0x7] - strb r5, [r1, 0x9] - ldr r4, [sp, 0x68] - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram - add r0, sp, 0xC - movs r1, 0 - movs r2, 0 - bl AddTextPrinter - add r0, sp, 0xC - strb r6, [r0, 0xA] - ldr r0, =gUnknown_0860D350 - ldr r1, [sp, 0x58] - adds r0, r1, r0 - ldr r0, [r0] - str r0, [sp, 0xC] - add r0, sp, 0xC - add r2, sp, 0x60 - ldrb r2, [r2] - strb r2, [r0, 0x4] - ldrb r0, [r0, 0x5] - ldr r1, [sp, 0xC] - add r2, sp, 0xC - ldrb r3, [r2, 0xA] - movs r2, 0xA0 - bl GetStringCenterAlignXOffsetWithLetterSpacing - add r1, sp, 0xC - strb r0, [r1, 0x8] - adds r0, r1, 0 - strb r5, [r0, 0x7] - strb r5, [r1, 0x9] - ldr r4, [sp, 0x60] - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram - add r0, sp, 0xC - movs r1, 0 - movs r2, 0 - bl AddTextPrinter - add sp, 0x80 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819314C - - thumb_func_start sub_81938A4 -sub_81938A4: @ 81938A4 - push {lr} - ldr r0, =sub_8194220 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - strh r2, [r1, 0x8] - strh r2, [r1, 0xA] - movs r0, 0x2 - strh r0, [r1, 0xC] - strh r2, [r1, 0x10] - ldr r0, =sub_8194B54 - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81938A4 - - thumb_func_start sub_81938E0 -sub_81938E0: @ 81938E0 - push {r4,lr} - bl sub_8194D48 - ldr r4, =gSaveBlock2Ptr - ldr r2, [r4] - ldr r1, =0x00000d0a - adds r0, r2, r1 - ldrb r1, [r0] - subs r1, 0x1 - ldr r0, =0x00000ca9 - adds r2, r0 - movs r0, 0x3 - ands r1, r0 - ldrb r3, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r4] - ldr r1, =0x00000cb2 - adds r0, r1 - movs r4, 0 - movs r1, 0x3 - strh r1, [r0] - ldr r0, =sub_8194220 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - strh r4, [r1, 0xA] - movs r0, 0x2 - strh r0, [r1, 0xC] - movs r0, 0x1 - strh r0, [r1, 0x10] - ldr r0, =sub_8194B54 - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81938E0 - - thumb_func_start sub_819395C -sub_819395C: @ 819395C - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0xA - ldrsh r7, [r0, r2] - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x7 - bls _0819397E - b _08193BC2 -_0819397E: - lsls r0, 2 - ldr r1, =_08193990 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08193990: - .4byte _081939B0 - .4byte _08193A00 - .4byte _08193A20 - .4byte _08193AA8 - .4byte _08193BC2 - .4byte _08193B20 - .4byte _08193BC2 - .4byte _08193B84 -_081939B0: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _081939C2 - b _08193BC2 -_081939C2: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0, 0x8] - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - movs r1, 0x1 - bl StartObjectImageAnim - b _08193BC2 - .pool -_08193A00: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08193A0E - b _08193BC2 -_08193A0E: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r2 - movs r1, 0x2 - strh r1, [r0, 0x8] - b _08193BC2 - .pool -_08193A20: - adds r0, r5, 0 - bl sub_8193BDC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08193A30 - b _08193BC2 -_08193A30: - cmp r0, 0x1 - ble _08193A3C - cmp r0, 0x2 - beq _08193A60 - cmp r0, 0x3 - beq _08193A84 -_08193A3C: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x7 - strh r1, [r0, 0x8] - b _08193BC2 - .pool -_08193A60: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x3 - strh r1, [r0, 0x8] - b _08193BC2 - .pool -_08193A84: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x5 - strh r1, [r0, 0x8] - b _08193BC2 - .pool -_08193AA8: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - beq _08193ABA - b _08193BC2 -_08193ABA: - bl FreeAllWindowBuffers - bl remove_some_task - ldr r4, =gUnknown_0203CD7C - ldr r0, [r4] - bl Free - str r6, [r4] - ldr r0, =sub_8190400 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r2 - movs r3, 0 - strh r6, [r1, 0x8] - ldr r0, =gUnknown_0860D080 - adds r0, r7, r0 - ldrb r0, [r0] - strh r0, [r1, 0xA] - movs r0, 0x1 - strh r0, [r1, 0xC] - strh r5, [r1, 0xE] - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r2 - movs r1, 0x4 - strh r1, [r0, 0x8] - ldr r0, =gUnknown_0203CD78 - ldr r0, [r0] - strb r3, [r0, 0x10] - b _08193BC2 - .pool -_08193B20: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - bne _08193BC2 - bl FreeAllWindowBuffers - bl remove_some_task - ldr r4, =gUnknown_0203CD7C - ldr r0, [r4] - bl Free - str r6, [r4] - ldr r0, =sub_8190400 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r2 - strh r6, [r0, 0x8] - adds r1, r7, 0 - subs r1, 0x10 - strh r1, [r0, 0xA] - movs r1, 0x2 - strh r1, [r0, 0xC] - strh r5, [r0, 0xE] - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r2 - movs r1, 0x6 - strh r1, [r0, 0x8] - b _08193BC2 - .pool -_08193B84: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - bne _08193BC2 - bl FreeAllWindowBuffers - bl remove_some_task - ldr r4, =gUnknown_0203CD7C - ldr r0, [r4] - bl Free - str r6, [r4] - ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x16] - bl DestroyTask - adds r0, r5, 0 - bl DestroyTask -_08193BC2: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819395C - - thumb_func_start sub_8193BDC -sub_8193BDC: @ 8193BDC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0x1 - mov r9, r0 - movs r1, 0x4 - mov r8, r1 - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - movs r1, 0xA - ldrsh r5, [r0, r1] - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000cb2 - adds r0, r1 - ldrh r6, [r0] - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - adds r2, r1, 0 - adds r3, r0, 0 - cmp r2, 0x2 - beq _08193C20 - mov r0, r9 - ands r0, r1 - cmp r0, 0 - beq _08193C58 - cmp r5, 0x1F - bne _08193C3C -_08193C20: - movs r0, 0x5 - bl audio_play - movs r0, 0 - mov r9, r0 - b _08193CDE - .pool -_08193C3C: - cmp r5, 0xF - bgt _08193C4C - movs r0, 0x5 - bl audio_play - movs r1, 0x2 - mov r9, r1 - b _08193CDE -_08193C4C: - movs r0, 0x5 - bl audio_play - movs r0, 0x3 - mov r9, r0 - b _08193CDE -_08193C58: - cmp r2, 0x40 - bne _08193C78 - ldr r0, =gUnknown_0860CBF1 - lsls r1, r5, 2 - adds r1, r5 - adds r1, r6 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0xFF - beq _08193C78 - movs r1, 0 - mov r8, r1 - b _08193CDE - .pool -_08193C78: - ldrh r0, [r3, 0x2E] - cmp r0, 0x80 - bne _08193C9C - ldr r0, =gUnknown_0860CBF1 - lsls r1, r5, 2 - adds r1, r5 - adds r1, r6 - lsls r1, 2 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0xFF - beq _08193C9C - movs r0, 0x1 - b _08193CDC - .pool -_08193C9C: - ldrh r0, [r3, 0x2E] - cmp r0, 0x20 - bne _08193CC0 - ldr r0, =gUnknown_0860CBF1 - lsls r1, r5, 2 - adds r1, r5 - adds r1, r6 - lsls r1, 2 - adds r0, 0x2 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0xFF - beq _08193CC0 - movs r1, 0x2 - mov r8, r1 - b _08193CDE - .pool -_08193CC0: - ldrh r0, [r3, 0x2E] - cmp r0, 0x10 - bne _08193CDE - ldr r0, =gUnknown_0860CBF1 - lsls r1, r5, 2 - adds r1, r5 - adds r1, r6 - lsls r1, 2 - adds r0, 0x3 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0xFF - beq _08193CDE - movs r0, 0x3 -_08193CDC: - mov r8, r0 -_08193CDE: - mov r1, r8 - cmp r1, 0x4 - beq _08193D26 - movs r0, 0x5 - bl audio_play - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - movs r1, 0 - bl StartObjectImageAnim - ldr r2, =gUnknown_0860CBF1 - lsls r1, r6, 2 - add r1, r8 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 2 - adds r1, r0 - adds r1, r2 - ldrb r5, [r1] - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r0, r4 - movs r1, 0x1 - bl StartObjectImageAnim - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0xA] -_08193D26: - mov r0, r9 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8193BDC - - thumb_func_start sub_8193D40 -sub_8193D40: @ 8193D40 - push {lr} - ldr r0, =sub_8194220 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - strh r2, [r1, 0x8] - movs r0, 0x1 - strh r0, [r1, 0xA] - movs r0, 0x2 - strh r0, [r1, 0xC] - strh r2, [r1, 0x10] - ldr r0, =sub_8194B54 - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8193D40 - - thumb_func_start sub_8193D7C -sub_8193D7C: @ 8193D7C - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r7, =gUnknown_020375E2 - ldrh r0, [r7] - cmp r0, 0x1 - bne _08193E10 - ldr r5, =gUnknown_02038BCA - ldrh r0, [r5] - bl sub_8195358 - ldr r4, =gSaveBlock2Ptr - ldr r2, [r4] - lsls r0, 2 - adds r2, r0 - ldr r6, =0x00000d25 - adds r2, r6 - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r5] - bl sub_8195358 - ldr r1, [r4] - lsls r0, 2 - adds r0, r1, r0 - ldr r2, =0x00000cb2 - mov r8, r2 - add r1, r8 - adds r0, r6 - movs r3, 0x3 - ldrb r2, [r1] - ands r2, r3 - lsls r2, 3 - ldrb r3, [r0] - movs r1, 0x19 - negs r1, r1 - ands r1, r3 - orrs r1, r2 - strb r1, [r0] - ldrh r0, [r5] - bl sub_8195358 - ldr r2, [r4] - lsls r0, 1 - movs r3, 0xEC - lsls r3, 4 - adds r1, r2, r3 - adds r1, r0 - ldr r0, =gUnknown_03005D10 - ldrh r0, [r0, 0x22] - strh r0, [r1] - add r2, r8 - ldrh r0, [r2] - cmp r0, 0x2 - bhi _08193EAE - lsls r0, 24 - lsrs r0, 24 - bl sub_8195438 - b _08193EAE - .pool -_08193E10: - ldr r5, =0x000003ff - adds r0, r5, 0 - bl sub_8195358 - ldr r4, =gSaveBlock2Ptr - ldr r2, [r4] - lsls r0, 2 - adds r2, r0 - ldr r6, =0x00000d25 - adds r2, r6 - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, 0 - bl sub_8195358 - ldr r1, [r4] - lsls r0, 2 - adds r0, r1, r0 - ldr r2, =0x00000cb2 - adds r1, r2 - adds r0, r6 - movs r3, 0x3 - ldrb r2, [r1] - ands r2, r3 - lsls r2, 3 - ldrb r3, [r0] - movs r1, 0x19 - negs r1, r1 - ands r1, r3 - orrs r1, r2 - strb r1, [r0] - adds r0, r5, 0 - bl sub_8195358 - ldr r1, [r4] - lsls r0, 1 - movs r3, 0xEC - lsls r3, 4 - adds r1, r3 - adds r1, r0 - ldr r0, =gUnknown_03005D10 - ldrh r0, [r0, 0x24] - strh r0, [r1] - ldr r0, =gUnknown_0202433A - ldrb r0, [r0] - cmp r0, 0x9 - beq _08193E78 - ldrh r0, [r7] - cmp r0, 0x9 - bne _08193E92 -_08193E78: - adds r0, r5, 0 - bl sub_8195358 - ldr r2, [r4] - lsls r0, 2 - adds r2, r0 - adds r2, r6 - ldrb r1, [r2] - movs r0, 0x1F - ands r0, r1 - movs r1, 0x20 - orrs r0, r1 - strb r0, [r2] -_08193E92: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000cb2 - adds r0, r1 - ldrh r4, [r0] - cmp r4, 0x3 - bgt _08193EAE -_08193EA0: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_8195438 - adds r4, 0x1 - cmp r4, 0x3 - ble _08193EA0 -_08193EAE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8193D7C - - thumb_func_start sub_8193ED0 -sub_8193ED0: @ 8193ED0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x84 - str r0, [sp, 0x48] - str r1, [sp, 0x4C] - lsls r4, r2, 24 - lsrs r4, 24 - movs r0, 0 - str r0, [sp, 0x54] - movs r1, 0 - str r1, [sp, 0x58] - bl sub_8165C40 - movs r2, 0 - str r2, [sp, 0x50] - add r3, sp, 0x30 - mov r10, r3 - ldr r5, [sp, 0x4C] - lsls r5, 1 - str r5, [sp, 0x70] - subs r4, 0x1 - str r4, [sp, 0x78] -_08193F02: - movs r0, 0 - mov r9, r0 - ldr r1, [sp, 0x50] - lsls r1, 2 - str r1, [sp, 0x74] - ldr r2, [sp, 0x48] - lsls r2, 2 - str r2, [sp, 0x6C] - ldr r3, [sp, 0x50] - adds r3, 0x1 - str r3, [sp, 0x60] -_08193F18: - ldr r4, [sp, 0x74] - add r4, r9 - lsls r0, r4, 2 - mov r5, sp - adds r1, r5, r0 - movs r0, 0 - str r0, [r1] - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r1, [sp, 0x6C] - adds r0, r3, r1 - ldr r2, =0x00000d24 - adds r0, r2 - ldrh r0, [r0] - lsls r0, 22 - ldr r1, =0xff800000 - cmp r0, r1 - bne _08193F60 - ldr r3, [sp, 0x50] - lsls r0, r3, 24 - mov r5, r9 - lsls r1, r5, 24 - lsrs r1, 24 - lsrs r0, 24 - bl sub_81A5060 - lsls r1, r4, 1 - add r1, r10 - strh r0, [r1] - b _08193F8C - .pool -_08193F60: - lsls r2, r4, 1 - add r2, r10 - ldr r1, [sp, 0x48] - lsls r0, r1, 1 - adds r0, r1 - ldr r4, [sp, 0x50] - adds r0, r4 - lsls r0, 1 - ldr r5, =0x00000d64 - adds r1, r3, r5 - adds r1, r0 - ldrh r0, [r1] - ldr r1, =gUnknown_0203BC8C - ldr r1, [r1] - lsls r0, 4 - adds r0, r1 - mov r3, r9 - lsls r1, r3, 1 - adds r0, 0x2 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] -_08193F8C: - ldr r0, =gBattleMoves - ldr r1, [sp, 0x74] - add r1, r9 - lsls r1, 1 - add r1, r10 - ldrh r2, [r1] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r6, [r1, 0x1] - cmp r6, 0 - bne _08193FB8 - movs r6, 0x28 - b _08193FD0 - .pool -_08193FB8: - cmp r6, 0x1 - bne _08193FC0 - movs r6, 0x3C - b _08193FD0 -_08193FC0: - adds r1, r2, 0 - cmp r1, 0x78 - beq _08193FCA - cmp r1, 0x99 - bne _08193FD0 -_08193FCA: - lsrs r0, r6, 31 - adds r0, r6, r0 - asrs r6, r0, 1 -_08193FD0: - movs r1, 0 - mov r4, r9 - adds r4, 0x1 - str r4, [sp, 0x64] - ldr r5, [sp, 0x70] - ldr r2, [sp, 0x4C] - adds r0, r5, r2 - lsls r0, 1 - str r0, [sp, 0x5C] -_08193FE2: - lsls r7, r1, 1 - adds r1, 0x1 - str r1, [sp, 0x68] - ldr r3, [sp, 0x5C] - adds r3, r7 - mov r8, r3 -_08193FEE: - bl Random - adds r4, r0, 0 - bl Random - lsls r4, 16 - lsrs r5, r4, 16 - lsls r0, 16 - orrs r5, r0 - ldr r2, =gSaveBlock2Ptr - ldr r0, [r2] - ldr r4, =0x00000d64 - adds r0, r4 - add r0, r8 - ldrh r4, [r0] - ldr r3, =gUnknown_0203BC8C - ldr r0, [r3] - lsls r4, 4 - adds r4, r0 - adds r0, r5, 0 - str r2, [sp, 0x7C] - str r3, [sp, 0x80] - bl GetNatureFromPersonality - ldrb r1, [r4, 0xC] - lsls r0, 24 - lsrs r0, 24 - ldr r2, [sp, 0x7C] - ldr r3, [sp, 0x80] - cmp r1, r0 - bne _08193FEE - ldr r0, [r2] - ldr r2, [sp, 0x5C] - adds r1, r7, r2 - ldr r4, =0x00000d64 - adds r0, r4 - adds r0, r1 - ldrh r0, [r0] - ldr r1, [r3] - lsls r0, 4 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x1 - ands r5, r0 - cmp r5, 0 - beq _08194068 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - ldr r5, =gBaseStats - adds r0, r5 - ldrb r2, [r0, 0x17] - b _08194074 - .pool -_08194068: - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - ldr r2, =gBaseStats - adds r0, r2 - ldrb r2, [r0, 0x16] -_08194074: - ldr r4, [sp, 0x74] - add r4, r9 - lsls r0, r4, 1 - add r0, r10 - ldrh r0, [r0] - bl ai_rate_move - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x6 - ands r0, r5 - cmp r0, 0x6 - bne _0819409C - lsls r0, r4, 2 - mov r3, sp - adds r1, r3, r0 - b _081940D8 - .pool -_0819409C: - movs r0, 0x29 - ands r0, r5 - cmp r0, 0 - bne _081940DE - movs r0, 0x2 - ands r0, r5 - cmp r0, 0 - beq _081940B6 - lsls r0, r4, 2 - mov r5, sp - adds r2, r5, r0 - lsls r1, r6, 1 - b _081940CA -_081940B6: - movs r0, 0x4 - ands r5, r0 - cmp r5, 0 - beq _081940D2 - lsls r0, r4, 2 - mov r1, sp - adds r2, r1, r0 - lsrs r1, r6, 31 - adds r1, r6, r1 - asrs r1, 1 -_081940CA: - ldr r0, [r2] - adds r0, r1 - str r0, [r2] - b _081940DE -_081940D2: - lsls r0, r4, 2 - mov r2, sp - adds r1, r2, r0 -_081940D8: - ldr r0, [r1] - adds r0, r6 - str r0, [r1] -_081940DE: - ldr r1, [sp, 0x68] - cmp r1, 0x2 - bgt _081940E6 - b _08193FE2 -_081940E6: - ldr r2, [sp, 0x74] - add r2, r9 - lsls r0, r2, 2 - add r0, sp - ldr r1, [r0] - ldr r3, [sp, 0x54] - cmp r3, r1 - bge _08194104 - lsls r0, r2, 16 - lsrs r0, 16 - str r0, [sp, 0x58] - lsls r0, r1, 16 - lsrs r0, 16 - str r0, [sp, 0x54] - b _08194122 -_08194104: - ldr r4, [sp, 0x54] - cmp r4, r1 - bne _08194122 - ldr r5, [sp, 0x58] - lsls r0, r5, 1 - add r0, r10 - lsls r1, r2, 1 - add r1, r10 - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - bcs _08194122 - lsls r0, r2, 16 - lsrs r0, 16 - str r0, [sp, 0x58] -_08194122: - ldr r0, [sp, 0x64] - mov r9, r0 - cmp r0, 0x3 - bgt _0819412C - b _08193F18 -_0819412C: - ldr r1, [sp, 0x60] - str r1, [sp, 0x50] - cmp r1, 0x2 - bgt _08194136 - b _08193F02 -_08194136: - ldr r2, [sp, 0x58] - mov r9, r2 - b _08194182 -_0819413C: - movs r3, 0 - mov r9, r3 - movs r1, 0 - mov r4, r10 - mov r3, r10 - mov r2, sp -_08194148: - ldr r0, [r2] - ldr r5, [sp, 0x54] - cmp r5, r0 - bge _0819415A - mov r9, r1 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x54] - b _08194170 -_0819415A: - ldr r5, [sp, 0x54] - cmp r5, r0 - bne _08194170 - mov r5, r9 - lsls r0, r5, 1 - adds r0, r4, r0 - ldrh r0, [r0] - ldrh r5, [r3] - cmp r0, r5 - bcs _08194170 - mov r9, r1 -_08194170: - adds r3, 0x2 - adds r2, 0x4 - adds r1, 0x1 - cmp r1, 0xB - ble _08194148 - ldr r0, [sp, 0x50] - ldr r1, [sp, 0x78] - cmp r0, r1 - beq _081941F4 -_08194182: - movs r2, 0 - str r2, [sp, 0x50] - mov r3, r9 - lsls r7, r3, 2 - ldr r4, [sp, 0x78] - cmp r2, r4 - bge _081941CA - lsls r0, r3, 1 - mov r5, r10 - adds r6, r5, r0 - ldr r0, [sp, 0x48] - lsls r5, r0, 24 -_0819419A: - ldr r0, =gSaveBlock2Ptr - ldr r4, [r0] - ldr r2, [sp, 0x50] - lsls r1, r2, 24 - lsrs r1, 24 - lsrs r0, r5, 24 - bl sub_81953E8 - lsls r0, 24 - lsrs r0, 23 - movs r3, 0xEC - lsls r3, 4 - adds r4, r3 - adds r4, r0 - ldrh r0, [r4] - ldrh r4, [r6] - cmp r0, r4 - beq _081941CA - ldr r0, [sp, 0x50] - adds r0, 0x1 - str r0, [sp, 0x50] - ldr r1, [sp, 0x78] - cmp r0, r1 - blt _0819419A -_081941CA: - ldr r2, [sp, 0x50] - ldr r3, [sp, 0x78] - cmp r2, r3 - beq _081941F4 - mov r4, sp - adds r1, r4, r7 - movs r0, 0 - str r0, [r1] - movs r5, 0 - str r5, [sp, 0x54] - mov r9, r5 - mov r2, sp - movs r1, 0xB -_081941E4: - ldm r2!, {r0} - add r9, r0 - subs r1, 0x1 - cmp r1, 0 - bge _081941E4 - mov r0, r9 - cmp r0, 0 - bne _0819413C -_081941F4: - mov r1, r9 - lsls r0, r1, 2 - add r0, sp - ldr r0, [r0] - cmp r0, 0 - bne _08194204 - ldr r2, [sp, 0x58] - mov r9, r2 -_08194204: - mov r3, r9 - lsls r0, r3, 1 - add r0, r10 - ldrh r0, [r0] - add sp, 0x84 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8193ED0 - - thumb_func_start sub_8194220 -sub_8194220: @ 8194220 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r1, =gTasks - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r2, 0xA - ldrsh r1, [r0, r2] - mov r10, r1 - movs r3, 0xC - ldrsh r4, [r0, r3] - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0x5 - bls _08194250 - b _081948C2 -_08194250: - lsls r0, 2 - ldr r1, =_08194264 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08194264: - .4byte _0819427C - .4byte _0819431C - .4byte _0819438C - .4byte _0819447C - .4byte _081944FC - .4byte _081947C8 -_0819427C: - movs r0, 0 - bl SetHBlankCallback - movs r0, 0 - bl SetVBlankCallback - movs r0, 0x3 - bl EnableInterrupts - movs r4, 0 - str r4, [sp, 0x14] - add r0, sp, 0x14 - movs r1, 0xC0 - lsls r1, 19 - ldr r2, =0x05006000 - bl CpuSet - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_0860CE74 - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - ldr r0, =gUnknown_0860CE94 - bl InitWindows - bl DeactivateAllTextPrinters - ldr r0, =gUnknown_02022E14 - strh r4, [r0] - ldr r0, =gUnknown_02022E16 - strh r4, [r0] - ldr r0, =gUnknown_02022E18 - strh r4, [r0] - ldr r0, =gUnknown_02022E1A - strh r4, [r0] - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r1, 0xB0 - lsls r1, 4 - movs r0, 0x3 - movs r2, 0 - bl ChangeBgY - ldr r1, =gTasks - mov r2, r8 - lsls r0, r2, 2 - b _0819443C - .pool -_0819431C: - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4C - movs r1, 0 - bl SetGpuReg - ldr r1, =0x00005860 - movs r0, 0x40 - bl SetGpuReg - movs r0, 0x44 - movs r1, 0x9F - bl SetGpuReg - ldr r1, =0x00009098 - movs r0, 0x42 - bl SetGpuReg - movs r0, 0x46 - movs r1, 0x9F - bl SetGpuReg - movs r0, 0x48 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4A - movs r1, 0x3F - bl SetGpuReg - bl ResetPaletteFade - bl ResetAllObjectData - bl ResetObjectPaletteAllocator - ldr r1, =gTasks - mov r3, r8 - lsls r0, r3, 2 - b _0819443C - .pool -_0819438C: - ldr r4, =gUnknown_0203CD7C - movs r0, 0x80 - lsls r0, 4 - bl AllocZeroed - adds r1, r0, 0 - str r1, [r4] - ldr r0, =gUnknown_08D83900 - bl LZDecompressWram - ldr r1, [r4] - movs r0, 0x1 - bl SetBgTilemapBuffer - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - ldr r1, =gUnknown_08D82F10 - movs r5, 0x80 - lsls r5, 6 - movs r6, 0 - str r6, [sp] - movs r0, 0x1 - adds r2, r5, 0 - movs r3, 0 - bl copy_decompressed_tile_data_to_vram_autofree - ldr r1, =gUnknown_08D834FC - str r6, [sp] - movs r0, 0x2 - adds r2, r5, 0 - movs r3, 0 - bl copy_decompressed_tile_data_to_vram_autofree - ldr r1, =gUnknown_08D83B2C - movs r4, 0x1 - str r4, [sp] - movs r0, 0x2 - adds r2, r5, 0 - movs r3, 0 - bl copy_decompressed_tile_data_to_vram_autofree - ldr r1, =gUnknown_08D83C3C - str r4, [sp] - movs r0, 0x3 - adds r2, r5, 0 - movs r3, 0 - bl copy_decompressed_tile_data_to_vram_autofree - ldr r0, =gUnknown_08D85358 - movs r4, 0x80 - lsls r4, 2 - movs r1, 0 - adds r2, r4, 0 - bl LoadCompressedPalette - ldr r0, =gUnknown_08D85444 - movs r1, 0x80 - lsls r1, 1 - adds r2, r4, 0 - bl LoadCompressedPalette - ldr r0, =gUnknown_08D85600 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadCompressedPalette - str r6, [sp, 0x18] - add r0, sp, 0x18 - ldr r1, =gPlttBufferFaded - ldr r2, =0x05000100 - bl CpuSet - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg - ldr r1, =gTasks - mov r4, r8 - lsls r0, r4, 2 -_0819443C: - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _081948C2 - .pool -_0819447C: - ldr r0, =gUnknown_0860CF50 - bl LoadCompressedObjectPic - mov r0, r8 - lsls r0, 2 - str r0, [sp, 0x1C] - mov r1, r10 - cmp r1, 0 - bne _081944E8 - movs r5, 0 - ldr r4, =gUnknown_0860D411 -_08194492: - ldrb r1, [r4] - ldrb r2, [r4, 0x1] - ldr r0, =gUnknown_0860CFA8 - movs r3, 0 - bl AddObjectToFront - adds r4, 0x2 - adds r5, 0x1 - cmp r5, 0x1E - bls _08194492 - ldr r0, =gTasks - ldr r1, [sp, 0x1C] - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r2, 0x10 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _081944DC - ldr r0, =gUnknown_0860D008 - movs r1, 0xDA - movs r2, 0xC - movs r3, 0 - bl AddObjectToFront - b _081944E8 - .pool -_081944DC: - ldr r0, =gUnknown_0860CFD8 - movs r1, 0xDA - movs r2, 0xC - movs r3, 0 - bl AddObjectToFront -_081944E8: - ldr r1, =0x00007f40 - movs r0, 0 - bl SetGpuReg - b _081947A6 - .pool -_081944FC: - add r0, sp, 0x4 - movs r2, 0 - movs r1, 0x2 - strb r1, [r0, 0x5] - ldr r0, =gUnknown_085CCCEE - str r0, [sp, 0x4] - add r0, sp, 0x4 - strb r1, [r0, 0x4] - strb r2, [r0, 0x6] - strb r2, [r0, 0x7] - strb r1, [r0, 0xA] - strb r2, [r0, 0xB] - ldrb r0, [r0, 0x5] - ldr r1, [sp, 0x4] - add r2, sp, 0x4 - ldrb r3, [r2, 0xA] - movs r2, 0x70 - bl GetStringCenterAlignXOffsetWithLetterSpacing - add r1, sp, 0x4 - strb r0, [r1, 0x8] - movs r0, 0x1 - strb r0, [r1, 0x9] - adds r3, r1, 0 - ldrb r2, [r3, 0xC] - movs r1, 0x10 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3, 0xC] - adds r2, r3, 0 - movs r0, 0xE0 - strb r0, [r2, 0xC] - ldrb r0, [r2, 0xD] - ands r1, r0 - strb r1, [r2, 0xD] - adds r1, r2, 0 - movs r0, 0xD0 - strb r0, [r1, 0xD] - adds r0, r1, 0 - movs r1, 0 - movs r2, 0 - bl AddTextPrinter - mov r3, r8 - lsls r3, 2 - str r3, [sp, 0x1C] - add r4, sp, 0x4 - movs r0, 0xF - mov r9, r0 - movs r1, 0 - str r1, [sp, 0x20] - movs r2, 0 - str r2, [sp, 0x24] - movs r7, 0 - movs r5, 0xF -_0819456C: - ldr r3, =gSaveBlock2Ptr - ldr r0, [r3] - adds r0, r7 - ldr r1, =0x00000d24 - adds r0, r1 - ldrh r1, [r0] - lsls r1, 22 - lsrs r1, 22 - ldr r0, =gUnknown_02022E2C - bl sub_8195898 - mov r2, r10 - cmp r2, 0x1 - bne _081945C4 - ldr r3, =gSaveBlock2Ptr - ldr r2, [r3] - adds r0, r2, r7 - ldr r1, =0x00000d25 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 29 - cmp r0, 0 - blt _081945DC - ldr r3, =0x00000cb2 - adds r0, r2, r3 - ldrh r1, [r0] - cmp r1, 0x1 - beq _08194634 - ldr r2, [sp, 0x24] - lsrs r0, r2, 24 - subs r1, 0x2 - b _081945EA - .pool -_081945C4: - mov r3, r10 - cmp r3, 0 - bne _08194634 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - adds r0, r2, r7 - ldr r1, =0x00000d25 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 29 - cmp r0, 0 - bge _081945FC -_081945DC: - lsls r1, 27 - lsrs r0, r1, 30 - cmp r0, 0 - beq _08194634 - subs r1, r0, 0x1 - ldr r2, [sp, 0x24] - lsrs r0, r2, 24 -_081945EA: - lsls r1, 24 - lsrs r1, 24 - bl sub_81948EC - b _08194634 - .pool -_081945FC: - ldr r3, =0x00000cb2 - adds r1, r2, r3 - ldrh r0, [r1] - cmp r0, 0 - beq _08194634 - ldr r0, [sp, 0x1C] - add r0, r8 - lsls r0, 3 - ldr r2, =gTasks - adds r0, r2 - movs r3, 0x10 - ldrsh r0, [r0, r3] - cmp r0, 0 - beq _08194624 - ldrh r1, [r1] - b _08194628 - .pool -_08194624: - ldrh r0, [r1] - subs r1, r0, 0x1 -_08194628: - ldr r2, [sp, 0x24] - lsrs r0, r2, 24 - lsls r1, 24 - lsrs r1, 24 - bl sub_81948EC -_08194634: - ldr r0, [sp, 0x1C] - add r0, r8 - lsls r0, 3 - ldr r3, =gTasks - adds r0, r3 - movs r1, 0x10 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _08194660 - ldr r2, =gSaveBlock2Ptr - ldr r0, [r2] - ldr r3, =0x00000cb2 - adds r0, r3 - ldrh r3, [r0] - adds r6, r2, 0 - b _0819466E - .pool -_08194660: - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - ldr r2, =0x00000cb2 - adds r0, r2 - ldrh r0, [r0] - subs r3, r0, 0x1 - adds r6, r1, 0 -_0819466E: - mov r0, r10 - cmp r0, 0x1 - bne _0819468E - ldr r2, [r6] - adds r0, r2, r7 - ldr r1, =0x00000d25 - adds r0, r1 - ldrb r1, [r0] - lsls r1, 27 - lsrs r1, 30 - ldr r0, =0x00000cb2 - adds r2, r0 - ldrh r0, [r2] - subs r0, 0x1 - cmp r1, r0 - blt _081946A6 -_0819468E: - mov r1, r10 - cmp r1, 0 - bne _081946FA - ldr r0, [r6] - adds r0, r7 - ldr r2, =0x00000d25 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 27 - lsrs r0, 30 - cmp r0, r3 - bgt _081946FA -_081946A6: - ldr r0, [r6] - adds r1, r0, r7 - ldr r3, =0x00000d25 - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _081946FA - ldr r2, =0x00000d24 - adds r0, r1, r2 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - ldr r3, =0x000003ff - cmp r0, r3 - bne _081946F0 - ldrb r1, [r4, 0xC] - mov r0, r9 - ands r0, r1 - movs r1, 0x30 - orrs r0, r1 - strb r0, [r4, 0xC] - ldrb r1, [r4, 0xD] - mov r0, r9 - ands r0, r1 - movs r1, 0x40 - b _08194740 - .pool -_081946F0: - ldrb r1, [r4, 0xC] - mov r0, r9 - ands r0, r1 - movs r1, 0xB0 - b _08194734 -_081946FA: - ldr r0, [r6] - adds r0, r7 - ldr r1, =0x00000d24 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - ldr r2, =0x000003ff - cmp r0, r2 - bne _0819472C - ldrb r1, [r4, 0xC] - mov r0, r9 - ands r0, r1 - movs r1, 0x30 - orrs r0, r1 - strb r0, [r4, 0xC] - ldrb r1, [r4, 0xD] - mov r0, r9 - ands r0, r1 - movs r1, 0x40 - b _08194740 - .pool -_0819472C: - ldrb r1, [r4, 0xC] - mov r0, r9 - ands r0, r1 - movs r1, 0xE0 -_08194734: - orrs r0, r1 - strb r0, [r4, 0xC] - ldrb r1, [r4, 0xD] - mov r0, r9 - ands r0, r1 - movs r1, 0xD0 -_08194740: - orrs r0, r1 - strb r0, [r4, 0xD] - ldr r0, =gUnknown_0860D3F1 - ldr r3, [sp, 0x20] - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _08194768 - ldrb r0, [r4, 0x5] - ldrb r3, [r4, 0xA] - ldr r1, =gUnknown_02022E2C - movs r2, 0x3D - bl GetStringWidthDifference - b _0819476A - .pool -_08194768: - movs r0, 0x3 -_0819476A: - strb r0, [r4, 0x8] - ldr r0, =gUnknown_02022E2C - str r0, [sp, 0x4] - ldr r0, =gUnknown_0860D3F1 - ldr r1, [sp, 0x20] - adds r0, r1, r0 - ldrb r0, [r0] - strb r0, [r4, 0x4] - ldr r2, =gUnknown_0860D3F2 - adds r0, r1, r2 - ldrb r0, [r0] - strb r0, [r4, 0x9] - add r0, sp, 0x4 - movs r1, 0 - movs r2, 0 - bl AddTextPrinter - ldr r3, [sp, 0x20] - adds r3, 0x2 - str r3, [sp, 0x20] - ldr r0, [sp, 0x24] - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - str r0, [sp, 0x24] - adds r7, 0x4 - subs r5, 0x1 - cmp r5, 0 - blt _081947A6 - b _0819456C -_081947A6: - ldr r0, =gTasks - ldr r1, [sp, 0x1C] - add r1, r8 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _081948C2 - .pool -_081947C8: - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x2 - bl PutWindowTilemap - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - movs r0, 0x1 - movs r1, 0x3 - bl CopyWindowToVram - movs r0, 0x2 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, =sub_8194BEC - bl SetHBlankCallback - ldr r0, =sub_8194CE4 - bl SetVBlankCallback - cmp r4, 0x2 - bne _0819485C - mov r2, r10 - cmp r2, 0 - bne _08194844 - ldr r0, =sub_819395C - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r2 - mov r3, r10 - strh r3, [r1, 0x8] - strh r3, [r1, 0xA] - mov r4, r8 - lsls r0, r4, 2 - add r0, r8 - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0, 0x10] - strh r0, [r1, 0x14] - b _08194878 - .pool -_08194844: - ldr r0, =sub_8194950 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, =gTasks - b _0819486C - .pool -_0819485C: - ldr r1, =gTasks - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r3, 0xE - ldrsh r5, [r0, r3] -_0819486C: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] -_08194878: - bl dp12_8087EA4 - ldr r0, =gUnknown_02038C28 - ldr r2, =0x00001f0a - movs r4, 0xF0 - lsls r4, 3 - adds r1, r0, r4 - movs r5, 0x5A -_08194888: - strh r2, [r0] - strh r2, [r1] - adds r1, 0x2 - adds r0, 0x2 - subs r5, 0x1 - cmp r5, 0 - bge _08194888 - movs r5, 0x5B - ldr r3, =gUnknown_0860CF44 - ldr r0, =gUnknown_02038C28 - ldr r2, =0x00001f09 - ldr r4, =0x00000836 - adds r1, r0, r4 - adds r0, 0xB6 -_081948A4: - strh r2, [r0] - strh r2, [r1] - adds r1, 0x2 - adds r0, 0x2 - adds r5, 0x1 - cmp r5, 0x9F - ble _081948A4 - ldr r0, [r3] - ldr r1, [r3, 0x4] - ldr r2, [r3, 0x8] - bl sub_80BA038 - mov r0, r8 - bl DestroyTask -_081948C2: - add sp, 0x28 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8194220 - - thumb_func_start sub_81948EC -sub_81948EC: @ 81948EC - push {r4-r7,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r4, =gUnknown_0860DD10 - lsls r2, r1, 2 - lsls r3, r0, 4 - adds r2, r3 - adds r2, r4 - ldr r3, [r2] - ldr r2, =gUnknown_0860DE10 - lsls r0, 2 - adds r1, r0 - adds r1, r2 - ldrb r0, [r1] - cmp r0, 0 - beq _08194938 - movs r7, 0x1 - adds r4, r3, 0 - adds r5, r4, 0x2 - adds r6, r0, 0 -_0819491A: - ldrb r2, [r4] - ldrb r3, [r4, 0x1] - str r7, [sp] - str r7, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x1 - adds r1, r5, 0 - bl CopyToBgTilemapBufferRect_ChangePalette - adds r4, 0x4 - adds r5, 0x4 - subs r6, 0x1 - cmp r6, 0 - bne _0819491A -_08194938: - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81948EC - - thumb_func_start sub_8194950 -sub_8194950: @ 8194950 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x4 - bls _08194974 - b _08194B3C -_08194974: - lsls r0, 2 - ldr r1, =_08194988 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08194988: - .4byte _0819499C - .4byte _081949C0 - .4byte _08194AD4 - .4byte _08194AEE - .4byte _08194B24 -_0819499C: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0, 0x8] - b _08194B3C - .pool -_081949C0: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081949CE - b _08194B3C -_081949CE: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r2 - movs r2, 0 - movs r3, 0x2 - movs r1, 0x2 - strh r1, [r0, 0x8] - movs r1, 0x40 - strh r1, [r0, 0xE] - add r0, sp, 0x4 - strb r3, [r0, 0x5] - strb r2, [r0, 0x6] - strb r2, [r0, 0x7] - strb r3, [r0, 0xA] - strb r2, [r0, 0xB] - adds r3, r0, 0 - ldrb r2, [r3, 0xC] - subs r1, 0x50 - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3, 0xC] - adds r2, r3, 0 - movs r0, 0xB0 - strb r0, [r2, 0xC] - ldrb r0, [r2, 0xD] - ands r1, r0 - strb r1, [r2, 0xD] - adds r1, r2, 0 - movs r0, 0xD0 - strb r0, [r1, 0xD] - movs r7, 0 - ldr r0, =gUnknown_02022E2C - mov r9, r0 - ldr r1, =gSaveBlock2Ptr - mov r8, r1 - adds r4, r2, 0 - ldr r6, =gUnknown_0860D3F1 - movs r5, 0 -_08194A1C: - mov r2, r8 - ldr r0, [r2] - adds r0, r5 - ldr r1, =0x00000d24 - adds r0, r1 - ldrh r1, [r0] - lsls r1, 22 - lsrs r1, 22 - mov r0, r9 - bl sub_8195898 - mov r0, r8 - ldr r2, [r0] - adds r0, r2, r5 - ldr r1, =0x00000d25 - adds r0, r1 - ldrb r3, [r0] - lsls r1, r3, 27 - lsrs r1, 30 - ldr r0, =0x00000cb2 - adds r2, r0 - ldrh r0, [r2] - subs r0, 0x1 - cmp r1, r0 - bne _08194A9E - lsls r0, r3, 29 - cmp r0, 0 - bge _08194A9E - ldrb r0, [r6] - cmp r0, 0 - bne _08194A84 - ldrb r0, [r4, 0x5] - ldrb r3, [r4, 0xA] - mov r1, r9 - movs r2, 0x3D - bl GetStringWidthDifference - b _08194A86 - .pool -_08194A84: - movs r0, 0x3 -_08194A86: - strb r0, [r4, 0x8] - mov r1, r9 - str r1, [sp, 0x4] - ldrb r0, [r6] - strb r0, [r4, 0x4] - ldrb r0, [r6, 0x1] - strb r0, [r4, 0x9] - add r0, sp, 0x4 - movs r1, 0 - movs r2, 0 - bl AddTextPrinter -_08194A9E: - mov r2, r8 - ldr r1, [r2] - adds r0, r1, r5 - ldr r2, =0x00000d25 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _08194AC4 - subs r2, 0x73 - adds r0, r1, r2 - ldrh r1, [r0] - subs r1, 0x1 - lsls r0, r7, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - bl sub_81948EC -_08194AC4: - adds r6, 0x2 - adds r5, 0x4 - adds r7, 0x1 - cmp r7, 0xF - ble _08194A1C - b _08194B3C - .pool -_08194AD4: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r2 - ldrh r0, [r1, 0xE] - subs r0, 0x1 - strh r0, [r1, 0xE] - lsls r0, 16 - cmp r0, 0 - bne _08194B3C - movs r0, 0x3 - strh r0, [r1, 0x8] - b _08194B3C -_08194AEE: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08194B3C - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x4 - strh r1, [r0, 0x8] - b _08194B3C - .pool -_08194B24: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08194B3C - ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_08194B3C: - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8194950 - - thumb_func_start sub_8194B54 -sub_8194B54: @ 8194B54 - push {lr} - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad - bl RunTextPrinters - bl UpdatePaletteFade - bl RunTasks - pop {r0} - bx r0 - thumb_func_end sub_8194B54 - - thumb_func_start sub_8194B70 -sub_8194B70: @ 8194B70 - push {lr} - movs r0, 0x3 - movs r1, 0x80 - movs r2, 0x1 - bl ChangeBgX - movs r0, 0x3 - movs r1, 0x80 - movs r2, 0x2 - bl ChangeBgY - ldr r0, =gUnknown_02022E14 - ldrh r1, [r0] - movs r0, 0x10 - bl SetGpuReg - ldr r0, =gUnknown_02022E16 - ldrh r1, [r0] - movs r0, 0x12 - bl SetGpuReg - ldr r0, =gUnknown_02022E18 - ldrh r1, [r0] - movs r0, 0x14 - bl SetGpuReg - ldr r0, =gUnknown_02022E1A - ldrh r1, [r0] - movs r0, 0x16 - bl SetGpuReg - ldr r0, =gUnknown_02022E1C - ldrh r1, [r0] - movs r0, 0x18 - bl SetGpuReg - ldr r0, =gUnknown_02022E1E - ldrh r1, [r0] - movs r0, 0x1A - bl SetGpuReg - bl LoadOamFromSprites - bl ProcessObjectCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .pool - thumb_func_end sub_8194B70 - - thumb_func_start sub_8194BEC -sub_8194BEC: @ 8194BEC - push {lr} - ldr r0, =0x04000006 - ldrh r0, [r0] - adds r1, r0, 0 - cmp r0, 0x29 - bls _08194CC8 - cmp r0, 0x31 - bhi _08194C1C - ldr r1, =0x04000048 - ldr r2, =0x00003b3b - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x8 - ldr r0, =0x989b5558 - b _08194CD4 - .pool -_08194C1C: - cmp r0, 0x39 - bls _08194CC8 - cmp r0, 0x4A - bhi _08194C40 - ldr r1, =0x04000048 - ldr r2, =0x00003b3b - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x8 - ldr r0, =0x90985860 - b _08194CD4 - .pool -_08194C40: - cmp r0, 0x51 - bhi _08194C60 - ldr r1, =0x04000048 - ldr r2, =0x00003b3b - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x8 - ldr r0, =0x989b5558 - b _08194CD4 - .pool -_08194C60: - cmp r0, 0x5E - bls _08194CC8 - cmp r0, 0x66 - bhi _08194C84 - ldr r1, =0x04000048 - ldr r2, =0x00003737 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x8 - ldr r0, =0x989b5558 - b _08194CD4 - .pool -_08194C84: - cmp r0, 0x76 - bhi _08194CA4 - ldr r1, =0x04000048 - ldr r2, =0x00003737 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x8 - ldr r0, =0x90985860 - b _08194CD4 - .pool -_08194CA4: - cmp r0, 0x7E - bls _08194CC8 - cmp r1, 0x86 - bhi _08194CC8 - ldr r1, =0x04000048 - ldr r2, =0x00003737 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x8 - ldr r0, =0x989b5558 - b _08194CD4 - .pool -_08194CC8: - ldr r1, =0x04000048 - ldr r2, =0x00003f3f - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x8 - movs r0, 0 -_08194CD4: - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_8194BEC - - thumb_func_start sub_8194CE4 -sub_8194CE4: @ 8194CE4 - push {lr} - ldr r0, =gUnknown_02022E14 - ldrh r1, [r0] - movs r0, 0x10 - bl SetGpuReg - ldr r0, =gUnknown_02022E16 - ldrh r1, [r0] - movs r0, 0x12 - bl SetGpuReg - ldr r0, =gUnknown_02022E18 - ldrh r1, [r0] - movs r0, 0x14 - bl SetGpuReg - ldr r0, =gUnknown_02022E1A - ldrh r1, [r0] - movs r0, 0x16 - bl SetGpuReg - movs r0, 0x2 - movs r1, 0x80 - movs r2, 0x2 - bl ChangeBgY - movs r0, 0x3 - movs r1, 0x80 - movs r2, 0x1 - bl ChangeBgY - bl LoadOamFromSprites - bl ProcessObjectCopyRequests - bl TransferPlttBuffer - bl sub_80BA0A8 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8194CE4 - - thumb_func_start sub_8194D48 -sub_8194D48: @ 8194D48 - ldr r1, =gUnknown_0203BC8C - ldr r0, =gBattleFrontierMons - str r0, [r1] - ldr r1, =gUnknown_0203BC88 - ldr r0, =gBattleFrontierTrainers - str r0, [r1] - bx lr - .pool - thumb_func_end sub_8194D48 - - thumb_func_start sub_8194D68 -sub_8194D68: @ 8194D68 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r3, 0 -_08194D76: - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r0, =gUnknown_0203CEF8 - adds r0, r3, r0 - ldrb r0, [r0] - subs r0, 0x1 - lsls r0, 1 - ldr r2, =0x00000caa - adds r1, r2 - adds r1, r0 - ldrh r0, [r1] - subs r0, 0x1 - mov r10, r0 - movs r6, 0 - adds r0, r3, 0x1 - str r0, [sp] - movs r1, 0x64 - mov r0, r10 - muls r0, r1 - movs r2, 0x8E - lsls r2, 2 - adds r2, r0 - mov r9, r2 - adds r7, r3, 0 - muls r7, r1 -_08194DA8: - movs r5, 0 - adds r0, r6, 0x1 - mov r8, r0 - b _08194DBE - .pool -_08194DBC: - adds r5, 0x1 -_08194DBE: - cmp r5, 0x3 - bgt _08194DEA - ldr r1, =gSaveBlock1Ptr - ldr r0, [r1] - add r0, r9 - adds r1, r5, 0 - adds r1, 0xD - movs r2, 0 - str r3, [sp, 0x4] - bl GetMonData - adds r4, r0, 0 - adds r1, r6, 0 - adds r1, 0xD - ldr r2, =gPlayerParty - adds r0, r7, r2 - movs r2, 0 - bl GetMonData - ldr r3, [sp, 0x4] - cmp r4, r0 - bne _08194DBC -_08194DEA: - cmp r5, 0x4 - bne _08194E00 - lsls r2, r6, 24 - lsrs r2, 24 - ldr r1, =gPlayerParty - adds r0, r7, r1 - movs r1, 0xA6 - str r3, [sp, 0x4] - bl sub_80691F4 - ldr r3, [sp, 0x4] -_08194E00: - mov r6, r8 - cmp r6, 0x3 - ble _08194DA8 - ldr r2, =gSaveBlock1Ptr - ldr r0, [r2] - movs r2, 0x64 - mov r1, r10 - muls r1, r2 - adds r0, r1 - movs r1, 0x8E - lsls r1, 2 - adds r0, r1 - adds r1, r3, 0 - muls r1, r2 - ldr r2, =gPlayerParty - adds r1, r2 - movs r2, 0x64 - bl memcpy - ldr r3, [sp] - cmp r3, 0x1 - ble _08194D76 - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8194D68 - - thumb_func_start sub_8194E44 -sub_8194E44: @ 8194E44 - push {r4-r7,lr} - sub sp, 0x4 - movs r4, 0 - ldr r7, =gSaveBlock1Ptr - movs r6, 0x64 - movs r5, 0 -_08194E50: - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r0, =gUnknown_0203CEF8 - adds r0, r4, r0 - ldrb r0, [r0] - subs r0, 0x1 - lsls r0, 1 - ldr r2, =0x00000caa - adds r1, r2 - adds r1, r0 - ldrh r0, [r1] - subs r0, 0x1 - adds r1, r0, 0 - muls r1, r6 - movs r0, 0x8E - lsls r0, 2 - adds r1, r0 - ldr r0, [r7] - adds r0, r1 - movs r1, 0xC - movs r2, 0 - bl GetMonData - mov r1, sp - strh r0, [r1] - ldr r0, =gPlayerParty - adds r0, r5, r0 - movs r1, 0xC - mov r2, sp - bl pokemon_setattr - adds r5, 0x64 - adds r4, 0x1 - cmp r4, 0x1 - ble _08194E50 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8194E44 - - thumb_func_start sub_8194EB4 -sub_8194EB4: @ 8194EB4 - push {lr} - bl sub_80F94E8 - pop {r0} - bx r0 - thumb_func_end sub_8194EB4 - - thumb_func_start sub_8194EC0 -sub_8194EC0: @ 8194EC0 - push {r4,lr} - ldr r0, =gUnknown_02038BCA - ldrh r0, [r0] - bl sub_8195358 - adds r4, r0, 0 - ldr r0, =0x000003ff - bl sub_8195358 - cmp r4, r0 - ble _08194EE8 - ldr r1, =gUnknown_020375F0 - movs r0, 0x1 - b _08194EEC - .pool -_08194EE8: - ldr r1, =gUnknown_020375F0 - movs r0, 0x2 -_08194EEC: - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8194EC0 - - thumb_func_start sub_8194EF8 -sub_8194EF8: @ 8194EF8 - push {r4,lr} - bl sub_8194D48 - movs r2, 0 - ldr r3, =gSaveBlock2Ptr - ldr r0, [r3] - ldr r1, =0x00000d25 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _08194F2A - adds r4, r3, 0 - adds r3, r1, 0 -_08194F14: - adds r2, 0x1 - cmp r2, 0xF - bgt _08194F2A - ldr r0, [r4] - lsls r1, r2, 2 - adds r0, r1 - adds r0, r3 - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _08194F14 -_08194F2A: - ldr r0, =gStringVar1 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - lsls r2, 2 - adds r1, r2 - ldr r2, =0x00000d24 - adds r1, r2 - ldrh r1, [r1] - lsls r1, 22 - lsrs r1, 22 - bl sub_8195898 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8194EF8 - - thumb_func_start sub_8194F58 -sub_8194F58: @ 8194F58 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x40 - movs r0, 0 - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r0, [sp, 0x10] - ldr r4, =gSaveBlock2Ptr - ldr r2, [r4] - ldr r5, =0x00000d0a - adds r0, r2, r5 - ldrb r1, [r0] - ldr r6, =0x00000d0b - adds r0, r2, r6 - ldrb r0, [r0] - cmn r1, r0 - beq _08194F8C - ldr r1, =0x00000ca8 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08194F8C - b _0819533E -_08194F8C: - movs r0, 0x20 - bl AllocZeroed - str r0, [sp, 0x18] - movs r0, 0x18 - bl AllocZeroed - str r0, [sp, 0x1C] - ldr r1, [r4] - ldr r2, =0x00000ca9 - adds r1, r2 - ldrb r2, [r1] - lsls r0, r2, 30 - lsrs r0, 30 - str r0, [sp, 0x14] - movs r0, 0x4 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r0, [r4] - movs r1, 0x1 - adds r0, r5 - strb r1, [r0] - ldr r0, [r4] - adds r0, r6 - strb r1, [r0] - movs r3, 0 - mov r10, r3 - movs r4, 0 - str r4, [sp, 0x38] - movs r5, 0 - str r5, [sp, 0x3C] -_08194FCC: - mov r0, r10 - cmp r0, 0x4 - bgt _08194FFC - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - lsrs r4, r0, 16 - b _08195030 - .pool -_08194FFC: - mov r1, r10 - cmp r1, 0xE - bgt _0819501A - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x14 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - adds r4, r0, 0 - adds r4, 0xA - b _08195030 -_0819501A: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - adds r4, r0, 0 - adds r4, 0x1E -_08195030: - movs r6, 0 - cmp r6, r10 - bge _08195064 - ldr r2, =gSaveBlock2Ptr - ldr r0, [r2] - ldr r3, =0x00000d24 - adds r0, r3 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - cmp r0, r4 - beq _08195064 - adds r3, r2, 0 - ldr r2, =0x00000d24 -_0819504C: - adds r6, 0x1 - cmp r6, r10 - bge _08195064 - ldr r0, [r3] - lsls r1, r6, 2 - adds r0, r1 - adds r0, r2 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - cmp r0, r4 - bne _0819504C -_08195064: - cmp r6, r10 - bne _08194FCC - ldr r5, =gSaveBlock2Ptr - ldr r3, [r5] - ldr r0, [sp, 0x38] - adds r3, r0 - ldr r1, =0x00000d24 - adds r3, r1 - ldr r2, =0x000003ff - adds r0, r2, 0 - adds r2, r4, 0 - ands r2, r0 - ldrh r0, [r3] - ldr r5, =0xfffffc00 - adds r1, r5, 0 - ands r0, r1 - orrs r0, r2 - strh r0, [r3] - movs r6, 0 - lsls r4, 16 - str r4, [sp, 0x30] - ldr r0, [sp, 0x3C] - str r0, [sp, 0x20] -_08195092: - adds r1, r6, 0x1 - str r1, [sp, 0x24] - lsls r2, r6, 2 - str r2, [sp, 0x2C] - lsls r3, r6, 1 - str r3, [sp, 0x28] -_0819509E: - ldr r4, [sp, 0x30] - lsrs r0, r4, 16 - bl sub_8163524 - lsls r0, 16 - lsrs r5, r0, 16 - movs r7, 0 - cmp r7, r6 - bge _081950F4 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =gUnknown_0203BC8C - mov r9, r1 - ldr r2, [sp, 0x8] - mov r8, r2 - ldr r3, [sp, 0xC] - mov r12, r3 - ldr r4, =0x00000d64 - adds r0, r4 - ldr r1, [sp, 0x20] - adds r4, r1, r0 -_081950C8: - ldrh r3, [r4] - cmp r3, r5 - beq _081950F4 - mov r2, r9 - ldr r1, [r2] - lsls r0, r5, 4 - adds r2, r0, r1 - ldrh r0, [r2] - cmp r8, r0 - beq _081950F4 - cmp r12, r0 - beq _081950F4 - lsls r0, r3, 4 - adds r0, r1 - ldrb r0, [r0, 0xA] - ldrb r2, [r2, 0xA] - cmp r0, r2 - beq _081950F4 - adds r4, 0x2 - adds r7, 0x1 - cmp r7, r6 - blt _081950C8 -_081950F4: - cmp r7, r6 - bne _0819509E - ldr r3, =gSaveBlock2Ptr - ldr r0, [r3] - ldr r4, [sp, 0x28] - ldr r2, [sp, 0x3C] - adds r1, r4, r2 - ldr r3, =0x00000d64 - adds r0, r3 - adds r0, r1 - strh r5, [r0] - ldr r2, [sp, 0x2C] - add r2, sp - adds r2, 0x8 - ldr r3, =gUnknown_0203BC8C - ldr r1, [r3] - lsls r0, r5, 4 - adds r0, r1 - ldrh r0, [r0] - str r0, [r2] - ldr r6, [sp, 0x24] - cmp r6, 0x2 - ble _08195092 - ldr r4, =gSaveBlock2Ptr - ldr r2, [r4] - ldr r5, [sp, 0x38] - adds r2, r5 - ldr r0, =0x00000d25 - adds r2, r0 - ldrb r0, [r2] - movs r4, 0x5 - negs r4, r4 - adds r1, r4, 0 - ands r0, r1 - strb r0, [r2] - ldr r5, =gSaveBlock2Ptr - ldr r2, [r5] - ldr r0, [sp, 0x38] - adds r2, r0 - ldr r1, =0x00000d25 - adds r2, r1 - ldrb r0, [r2] - subs r4, 0x14 - adds r1, r4, 0 - ands r0, r1 - strb r0, [r2] - ldr r1, [r5] - ldr r5, [sp, 0x38] - adds r1, r5 - ldr r0, =0x00000d25 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x1F - ands r0, r2 - strb r0, [r1] - adds r5, 0x4 - str r5, [sp, 0x38] - ldr r1, [sp, 0x3C] - adds r1, 0x6 - str r1, [sp, 0x3C] - movs r2, 0x1 - add r10, r2 - mov r4, r10 - cmp r4, 0xF - bgt _08195178 - b _08194FCC -_08195178: - movs r5, 0 - mov r10, r5 - ldr r5, [sp, 0x18] - movs r0, 0 - str r0, [sp, 0x34] -_08195182: - movs r7, 0 - strh r7, [r5] - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - mov r2, r10 - lsls r1, r2, 2 - adds r0, r1 - ldr r3, =0x00000d24 - adds r0, r3 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - bl sub_8190168 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r6, 0 - ldr r4, [sp, 0x34] - mov r9, r4 -_081951AA: - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - mov r4, r9 - add r4, r10 - adds r4, r6 - lsls r4, 1 - ldr r2, =0x00000d64 - adds r0, r2 - adds r0, r4 - ldrh r1, [r0] - ldr r3, =gUnknown_0203BC8C - ldr r0, [r3] - lsls r1, 4 - adds r1, r0 - ldrh r0, [r1] - ldrb r3, [r1, 0xB] - ldrb r1, [r1, 0xC] - str r1, [sp] - ldr r1, [sp, 0x1C] - str r1, [sp, 0x4] - movs r1, 0x32 - mov r2, r8 - bl sub_818F720 - ldr r2, [sp, 0x1C] - ldr r1, [r2, 0x4] - ldrh r0, [r5] - adds r0, r1 - ldr r1, [r2, 0x8] - adds r0, r1 - ldr r1, [r2, 0x10] - adds r0, r1 - ldr r1, [r2, 0x14] - adds r0, r1 - ldr r1, [r2, 0xC] - adds r0, r1 - ldr r1, [r2] - adds r0, r1 - strh r0, [r5] - ldr r3, =gSaveBlock2Ptr - ldr r0, [r3] - ldr r1, =0x00000d64 - adds r0, r1 - adds r0, r4 - ldrh r0, [r0] - ldr r2, =gUnknown_0203BC8C - ldr r1, [r2] - lsls r0, 4 - adds r0, r1 - ldrh r0, [r0] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - ldr r3, =gBaseStats - adds r1, r3 - ldrb r0, [r1, 0x6] - lsls r0, 2 - ldr r4, =gBitTable - adds r0, r4 - ldr r0, [r0] - orrs r7, r0 - ldrb r0, [r1, 0x7] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - orrs r7, r0 - adds r6, 0x1 - cmp r6, 0x2 - ble _081951AA - movs r4, 0 - movs r1, 0x1 - movs r6, 0x1F -_0819523A: - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _08195244 - adds r4, 0x1 -_08195244: - asrs r7, 1 - subs r6, 0x1 - cmp r6, 0 - bge _0819523A - movs r1, 0x32 - adds r0, r4, 0 - muls r0, r1 - movs r1, 0x14 - bl __divsi3 - ldrh r1, [r5] - adds r1, r0 - strh r1, [r5] - adds r5, 0x2 - ldr r2, [sp, 0x34] - adds r2, 0x2 - str r2, [sp, 0x34] - movs r3, 0x1 - add r10, r3 - mov r4, r10 - cmp r4, 0xF - ble _08195182 - movs r5, 0 - mov r10, r5 - ldr r7, [sp, 0x18] -_08195276: - mov r6, r10 - adds r6, 0x1 - cmp r6, 0xF - bgt _081952F8 - mov r8, r7 - ldr r5, =0x00000d24 - lsls r0, r6, 1 - ldr r1, [sp, 0x18] - adds r4, r0, r1 -_08195288: - mov r2, r8 - ldrh r1, [r2] - ldrh r0, [r4] - cmp r1, r0 - bcs _081952C4 - mov r0, r10 - adds r1, r6, 0 - ldr r2, [sp, 0x18] - bl sub_818F904 - b _081952F0 - .pool -_081952C4: - cmp r1, r0 - bne _081952F0 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - mov r3, r10 - lsls r0, r3, 2 - adds r0, r1, r0 - adds r0, r5 - ldrh r2, [r0] - lsls r2, 22 - lsls r0, r6, 2 - adds r1, r0 - adds r1, r5 - ldrh r0, [r1] - lsls r0, 22 - cmp r2, r0 - bls _081952F0 - mov r0, r10 - adds r1, r6, 0 - ldr r2, [sp, 0x18] - bl sub_818F904 -_081952F0: - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0xF - ble _08195288 -_081952F8: - adds r7, 0x2 - movs r4, 0x1 - add r10, r4 - mov r5, r10 - cmp r5, 0xE - ble _08195276 - ldr r0, [sp, 0x18] - bl Free - ldr r0, [sp, 0x1C] - bl Free - movs r0, 0 - mov r10, r0 -_08195314: - mov r1, r10 - lsls r0, r1, 24 - lsrs r0, 24 - bl sub_8195438 - movs r2, 0x1 - add r10, r2 - mov r3, r10 - cmp r3, 0x3 - ble _08195314 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r4, =0x00000ca9 - adds r1, r4 - ldrb r2, [r1] - movs r0, 0x4 - negs r0, r0 - ands r0, r2 - ldr r5, [sp, 0x14] - orrs r0, r5 - strb r0, [r1] -_0819533E: - add sp, 0x40 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8194F58 - - thumb_func_start sub_8195358 -sub_8195358: @ 8195358 - push {r4,r5,lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =0x00000d24 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - cmp r0, r3 - beq _0819538E - adds r5, r4, 0 - adds r4, r1, 0 -_08195376: - adds r2, 0x1 - cmp r2, 0xF - bgt _0819538E - ldr r0, [r5] - lsls r1, r2, 2 - adds r0, r1 - adds r0, r4 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - cmp r0, r3 - bne _08195376 -_0819538E: - adds r0, r2, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8195358 - - thumb_func_start sub_81953A0 -sub_81953A0: @ 81953A0 - push {r4,r5,lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =0x00000d24 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - cmp r0, r3 - beq _081953D6 - adds r5, r4, 0 - adds r4, r1, 0 -_081953BE: - adds r2, 0x1 - cmp r2, 0xF - bgt _081953D6 - ldr r0, [r5] - lsls r1, r2, 2 - adds r0, r1 - adds r0, r4 - ldrh r0, [r0] - lsls r0, 22 - lsrs r0, 22 - cmp r0, r3 - bne _081953BE -_081953D6: - adds r0, r2, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81953A0 - - thumb_func_start sub_81953E8 -sub_81953E8: @ 81953E8 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, =gUnknown_0860D1A0 - ldr r0, =gUnknown_0860D1C0 - adds r0, r4, r0 - ldrb r0, [r0] - lsrs r0, 1 - lsls r0, 2 - adds r1, r0 - adds r1, r2 - ldrb r0, [r1] - subs r0, 0x10 - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - bl sub_8192F08 - mov r0, sp - ldrb r0, [r0] - cmp r4, r0 - beq _0819542C - mov r0, sp - ldrb r0, [r0] - b _08195430 - .pool -_0819542C: - mov r0, sp - ldrb r0, [r0, 0x1] -_08195430: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81953E8 - - thumb_func_start sub_8195438 -sub_8195438: @ 8195438 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x40 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0xC] - movs r1, 0 - str r1, [sp, 0x10] - movs r5, 0 - movs r1, 0x3 - ldr r0, [sp] - ands r0, r1 - lsls r0, 3 - str r0, [sp, 0x14] -_0819545E: - ldr r2, =gSaveBlock2Ptr - ldr r0, [r2] - lsls r4, r5, 2 - adds r1, r0, r4 - ldr r3, =0x00000d25 - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, 29 - adds r2, r5, 0x1 - str r2, [sp, 0x24] - cmp r0, 0 - bge _08195478 - b _08195876 -_08195478: - subs r3, 0x1 - adds r0, r1, r3 - ldrh r0, [r0] - lsls r1, r0, 22 - ldr r0, =0xffc00000 - cmp r1, r0 - bne _08195488 - b _08195876 -_08195488: - str r5, [sp, 0x4] - lsrs r1, 22 - ldr r0, [sp] - bl sub_81901A0 - str r0, [sp, 0x8] - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - adds r0, r3, r4 - ldr r1, =0x00000d24 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 22 - ldr r1, =0xff800000 - cmp r0, r1 - bne _08195504 - ldr r2, [sp, 0x8] - cmp r2, 0xFF - beq _08195504 - lsls r2, 2 - adds r1, r3, r2 - ldr r3, =0x00000d25 - adds r1, r3 - ldrb r0, [r1] - movs r3, 0x4 - orrs r0, r3 - strb r0, [r1] - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - adds r1, r2 - ldr r2, =0x00000d25 - adds r1, r2 - ldrb r0, [r1] - subs r3, 0x1D - ands r0, r3 - ldr r2, [sp, 0x14] - orrs r0, r2 - strb r0, [r1] - adds r0, r5, 0 - ldr r1, [sp, 0x8] - ldr r2, [sp] - bl sub_8193ED0 - ldr r3, =gSaveBlock2Ptr - ldr r1, [r3] - ldr r5, [sp, 0x8] - lsls r2, r5, 1 - movs r3, 0xEC - lsls r3, 4 - adds r1, r3 - adds r1, r2 - b _08195874 - .pool -_08195504: - ldr r4, =gSaveBlock2Ptr - ldr r3, [r4] - ldr r0, [sp, 0x8] - lsls r2, r0, 2 - adds r0, r3, r2 - ldr r1, =0x00000d24 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 22 - ldr r1, =0xff800000 - str r2, [sp, 0x30] - cmp r0, r1 - bne _0819557C - ldr r2, [sp, 0x4] - cmp r2, 0xFF - beq _0819557C - lsls r2, 2 - adds r1, r3, r2 - ldr r3, =0x00000d25 - adds r1, r3 - ldrb r0, [r1] - movs r3, 0x4 - orrs r0, r3 - strb r0, [r1] - ldr r1, [r4] - adds r1, r2 - ldr r0, =0x00000d25 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x19 - negs r2, r2 - ands r0, r2 - ldr r3, [sp, 0x14] - orrs r0, r3 - strb r0, [r1] - ldr r0, [sp, 0x8] - ldr r1, [sp, 0x4] - ldr r2, [sp] - bl sub_8193ED0 - ldr r1, [r4] - ldr r3, [sp, 0x4] - lsls r2, r3, 1 - movs r3, 0xEC - lsls r3, 4 - adds r1, r3 - adds r1, r2 - strh r0, [r1] - adds r5, 0x1 - str r5, [sp, 0x24] - b _08195876 - .pool -_0819557C: - adds r5, 0x1 - str r5, [sp, 0x24] - ldr r5, [sp, 0x8] - cmp r5, 0xFF - bne _08195588 - b _08195876 -_08195588: - movs r0, 0 - mov r10, r0 - lsls r1, r5, 1 - str r1, [sp, 0x2C] - ldr r2, [sp, 0x4] - lsls r2, 1 - str r2, [sp, 0x28] - ldr r3, [sp, 0x4] - adds r0, r2, r3 - lsls r0, 1 - mov r9, r0 - adds r0, r1, r5 - lsls r0, 1 - str r0, [sp, 0x18] -_081955A4: - movs r5, 0 - mov r0, r9 - str r0, [sp, 0x38] -_081955AA: - movs r6, 0 - lsls r7, r5, 1 - ldr r4, [sp, 0x18] -_081955B0: - ldr r2, =gSaveBlock2Ptr - ldr r1, [r2] - ldr r3, =0x00000d64 - adds r1, r3 - ldr r2, [sp, 0x38] - adds r0, r1, r2 - ldrh r0, [r0] - ldr r3, =gUnknown_0203BC8C - mov r8, r3 - ldr r2, [r3] - lsls r0, 4 - adds r0, r2 - adds r0, 0x2 - adds r0, r7 - ldrh r0, [r0] - adds r1, r4 - ldrh r1, [r1] - lsls r1, 4 - adds r1, r2 - ldrh r1, [r1] - movs r2, 0x2 - bl sub_818FFC0 - ldr r1, [sp, 0xC] - adds r1, r0 - str r1, [sp, 0xC] - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x2 - ble _081955B0 - adds r5, 0x1 - cmp r5, 0x3 - ble _081955AA - ldr r2, =gSaveBlock2Ptr - ldr r0, [r2] - ldr r3, =0x00000d64 - adds r0, r3 - add r0, r9 - ldrh r0, [r0] - mov r5, r8 - ldr r1, [r5] - lsls r0, 4 - adds r0, r1 - ldrh r2, [r0] - ldr r0, =gBaseStats - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - ldrb r2, [r1, 0x1] - adds r0, r2 - ldrb r2, [r1, 0x2] - adds r0, r2 - ldrb r2, [r1, 0x3] - adds r0, r2 - ldrb r3, [r1, 0x4] - adds r0, r3 - ldrb r1, [r1, 0x5] - adds r0, r1 - movs r1, 0xA - bl __divsi3 - ldr r5, [sp, 0xC] - adds r5, r0 - str r5, [sp, 0xC] - movs r0, 0x2 - add r9, r0 - movs r1, 0x1 - add r10, r1 - mov r2, r10 - cmp r2, 0x2 - ble _081955A4 - bl Random - movs r1, 0x1F - ands r1, r0 - adds r5, r1 - ldr r3, [sp, 0x4] - adds r5, r3 - str r5, [sp, 0xC] - movs r5, 0 - mov r10, r5 - ldr r1, [sp, 0x2C] - ldr r2, [sp, 0x8] - adds r0, r1, r2 - lsls r0, 1 - str r0, [sp, 0x1C] - ldr r5, [sp, 0x28] - adds r0, r5, r3 - lsls r0, 1 - str r0, [sp, 0x20] -_08195668: - movs r5, 0 - mov r0, r10 - lsls r3, r0, 1 - movs r1, 0x1 - add r10, r1 - ldr r2, [sp, 0x1C] - adds r2, r3 - mov r8, r2 -_08195678: - movs r6, 0 - lsls r7, r5, 1 - adds r5, 0x1 - str r5, [sp, 0x3C] - ldr r4, [sp, 0x20] -_08195682: - ldr r5, =gSaveBlock2Ptr - ldr r1, [r5] - ldr r0, =0x00000d64 - adds r1, r0 - mov r2, r8 - adds r0, r1, r2 - ldrh r0, [r0] - ldr r5, =gUnknown_0203BC8C - mov r9, r5 - ldr r2, [r5] - lsls r0, 4 - adds r0, r2 - adds r0, 0x2 - adds r0, r7 - ldrh r0, [r0] - adds r1, r4 - ldrh r1, [r1] - lsls r1, 4 - adds r1, r2 - ldrh r1, [r1] - movs r2, 0x2 - str r3, [sp, 0x34] - bl sub_818FFC0 - ldr r1, [sp, 0x10] - adds r1, r0 - str r1, [sp, 0x10] - adds r4, 0x2 - adds r6, 0x1 - ldr r3, [sp, 0x34] - cmp r6, 0x2 - ble _08195682 - ldr r5, [sp, 0x3C] - cmp r5, 0x3 - ble _08195678 - ldr r2, =gSaveBlock2Ptr - ldr r0, [r2] - ldr r5, [sp, 0x1C] - adds r1, r3, r5 - ldr r2, =0x00000d64 - adds r0, r2 - adds r0, r1 - ldrh r0, [r0] - mov r3, r9 - ldr r1, [r3] - lsls r0, 4 - adds r0, r1 - ldrh r2, [r0] - ldr r0, =gBaseStats - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - ldrb r2, [r1, 0x1] - adds r0, r2 - ldrb r5, [r1, 0x2] - adds r0, r5 - ldrb r2, [r1, 0x3] - adds r0, r2 - ldrb r2, [r1, 0x4] - adds r0, r2 - ldrb r1, [r1, 0x5] - adds r0, r1 - movs r1, 0xA - bl __divsi3 - ldr r3, [sp, 0x10] - adds r3, r0 - str r3, [sp, 0x10] - mov r5, r10 - cmp r5, 0x2 - ble _08195668 - bl Random - movs r1, 0x1F - ands r1, r0 - ldr r0, [sp, 0x10] - adds r0, r1 - ldr r1, [sp, 0x8] - adds r0, r1 - str r0, [sp, 0x10] - ldr r2, [sp, 0xC] - cmp r2, r0 - ble _08195784 - ldr r3, =gSaveBlock2Ptr - ldr r1, [r3] - ldr r5, [sp, 0x30] - adds r1, r5 - ldr r0, =0x00000d25 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - ldr r1, [r3] - adds r1, r5 - ldr r3, =0x00000d25 - adds r1, r3 - ldrb r0, [r1] - movs r5, 0x19 - negs r5, r5 - ands r0, r5 - ldr r2, [sp, 0x14] - orrs r0, r2 - strb r0, [r1] - ldr r0, [sp, 0x4] - ldr r1, [sp, 0x8] - ldr r2, [sp] - bl sub_8193ED0 - ldr r3, =gSaveBlock2Ptr - ldr r1, [r3] - movs r5, 0xEC - lsls r5, 4 - adds r1, r5 - ldr r2, [sp, 0x2C] - adds r1, r2 - b _08195874 - .pool -_08195784: - ldr r3, [sp, 0xC] - ldr r5, [sp, 0x10] - cmp r3, r5 - bge _081957DC - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r3, [sp, 0x4] - lsls r2, r3, 2 - adds r1, r2 - ldr r5, =0x00000d25 - adds r1, r5 - ldrb r0, [r1] - movs r3, 0x4 - orrs r0, r3 - strb r0, [r1] - ldr r5, =gSaveBlock2Ptr - ldr r1, [r5] - adds r1, r2 - ldr r0, =0x00000d25 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x19 - negs r2, r2 - ands r0, r2 - ldr r3, [sp, 0x14] - orrs r0, r3 - strb r0, [r1] - ldr r0, [sp, 0x8] - ldr r1, [sp, 0x4] - ldr r2, [sp] - bl sub_8193ED0 - ldr r1, [r5] - movs r5, 0xEC - lsls r5, 4 - adds r1, r5 - ldr r2, [sp, 0x28] - adds r1, r2 - b _08195874 - .pool -_081957DC: - ldr r3, [sp, 0x4] - ldr r5, [sp, 0x8] - cmp r3, r5 - ble _08195830 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r2, [sp, 0x30] - adds r1, r2 - ldr r3, =0x00000d25 - adds r1, r3 - ldrb r0, [r1] - movs r5, 0x4 - orrs r0, r5 - strb r0, [r1] - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - adds r1, r2 - adds r1, r3 - ldrb r0, [r1] - movs r2, 0x19 - negs r2, r2 - ands r0, r2 - ldr r3, [sp, 0x14] - orrs r0, r3 - strb r0, [r1] - ldr r0, [sp, 0x4] - ldr r1, [sp, 0x8] - ldr r2, [sp] - bl sub_8193ED0 - ldr r5, =gSaveBlock2Ptr - ldr r1, [r5] - movs r2, 0xEC - lsls r2, 4 - adds r1, r2 - ldr r3, [sp, 0x2C] - b _08195872 - .pool -_08195830: - ldr r5, =gSaveBlock2Ptr - ldr r1, [r5] - ldr r0, [sp, 0x4] - lsls r2, r0, 2 - adds r1, r2 - ldr r3, =0x00000d25 - adds r1, r3 - ldrb r0, [r1] - movs r5, 0x4 - orrs r0, r5 - strb r0, [r1] - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - adds r1, r2 - adds r1, r3 - ldrb r0, [r1] - movs r2, 0x19 - negs r2, r2 - ands r0, r2 - ldr r3, [sp, 0x14] - orrs r0, r3 - strb r0, [r1] - ldr r0, [sp, 0x8] - ldr r1, [sp, 0x4] - ldr r2, [sp] - bl sub_8193ED0 - ldr r5, =gSaveBlock2Ptr - ldr r1, [r5] - movs r2, 0xEC - lsls r2, 4 - adds r1, r2 - ldr r3, [sp, 0x28] -_08195872: - adds r1, r3 -_08195874: - strh r0, [r1] -_08195876: - ldr r5, [sp, 0x24] - cmp r5, 0xF - bgt _0819587E - b _0819545E -_0819587E: - add sp, 0x40 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8195438 - - thumb_func_start sub_8195898 -sub_8195898: @ 8195898 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r1, 16 - lsrs r5, r1, 16 - movs r4, 0 - bl sub_8165C40 - ldr r0, =0x000003fe - cmp r5, r0 - bne _081958B8 - adds r0, r6, 0 - bl sub_8195938 - b _08195902 - .pool -_081958B8: - ldr r0, =0x000003ff - cmp r5, r0 - bne _081958DC - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] -_081958C2: - adds r0, r6, r4 - adds r1, r2, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r4, 0x1 - cmp r4, 0x6 - ble _081958C2 - b _081958FC - .pool -_081958DC: - ldr r0, =0x0000012b - cmp r5, r0 - bhi _081958FC - ldr r0, =gUnknown_0203BC88 - ldr r1, [r0] - movs r0, 0x34 - muls r0, r5 - adds r0, r1 - adds r2, r0, 0x4 -_081958EE: - adds r0, r6, r4 - adds r1, r2, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r4, 0x1 - cmp r4, 0x6 - ble _081958EE -_081958FC: - adds r1, r6, r4 - movs r0, 0xFF - strb r0, [r1] -_08195902: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8195898 - - thumb_func_start sub_8195910 -sub_8195910: @ 8195910 - ldr r0, =gTrainers - ldr r1, =0x00007df3 - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_8195910 - - thumb_func_start sub_8195924 -sub_8195924: @ 8195924 - ldr r0, =gTrainers - ldr r1, =0x00007df1 - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_8195924 - - thumb_func_start sub_8195938 -sub_8195938: @ 8195938 - push {r4,lr} - adds r3, r0, 0 - movs r2, 0 - ldr r4, =gTrainers + TRAINER_TUCKER * 0x28 + 0x4 @ Tucker's name -_08195940: - adds r0, r3, r2 - adds r1, r2, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x6 - ble _08195940 - adds r1, r3, r2 - movs r0, 0xFF - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8195938 - - thumb_func_start sub_8195960 -sub_8195960: @ 8195960 - push {lr} - ldr r1, =gUnknown_0860DE50 - ldr r0, =gUnknown_020375E0 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8195960 - - thumb_func_start sub_8195980 -sub_8195980: @ 8195980 - push {r4-r7,lr} - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r5, r0, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r7, r0, 16 - ldr r0, [r4] - ldr r2, =0x00000ca8 - adds r0, r2 - movs r6, 0 - strb r6, [r0] - ldr r1, [r4] - adds r2, 0xA - adds r0, r1, r2 - strh r6, [r0] - ldr r0, =0x00000ca9 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r4] - ldr r2, =0x00000ca9 - adds r1, r2 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r4, [r4] - ldr r0, =0x00000cdc - adds r3, r4, r0 - ldr r2, =gUnknown_0860DE98 - lsls r1, r5, 2 - lsls r0, r7, 3 - adds r1, r0 - adds r1, r2 - ldr r0, [r3] - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - bne _081959F2 - lsls r0, r5, 1 - lsls r1, r7, 2 - adds r0, r1 - ldr r2, =0x00000dc8 - adds r1, r4, r2 - adds r1, r0 - strh r6, [r1] -_081959F2: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x4 - ldrsb r1, [r0, r1] - movs r2, 0x5 - ldrsb r2, [r0, r2] - movs r3, 0x1 - negs r3, r3 - movs r0, 0 - bl saved_warp2_set - ldr r0, =gUnknown_02038BCA - strh r6, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8195980 - - thumb_func_start sub_8195A38 -sub_8195A38: @ 8195A38 - push {r4-r7,lr} - ldr r5, =gSaveBlock2Ptr - ldr r0, [r5] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r7, r0, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - cmp r0, 0x1 - beq _08195A90 - cmp r0, 0x1 - bgt _08195A74 - cmp r0, 0 - beq _08195A7A - b _08195AD0 - .pool -_08195A74: - cmp r0, 0x2 - beq _08195AB0 - b _08195AD0 -_08195A7A: - ldr r0, =gUnknown_020375F0 - ldr r1, [r5] - ldr r2, =0x00000dc6 - adds r1, r2 - ldrh r1, [r1] - strh r1, [r0] - b _08195AD0 - .pool -_08195A90: - ldr r3, =gUnknown_020375F0 - ldr r0, [r5] - lsls r1, r7, 1 - lsls r2, r6, 2 - adds r1, r2 - ldr r2, =0x00000dc8 - adds r0, r2 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r3] - b _08195AD0 - .pool -_08195AB0: - ldr r4, =gUnknown_020375F0 - ldr r2, [r5] - ldr r0, =0x00000cdc - adds r2, r0 - ldr r3, =gUnknown_0860DE98 - lsls r0, r7, 2 - lsls r1, r6, 3 - adds r0, r1 - adds r0, r3 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - strh r0, [r4] -_08195AD0: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8195A38 - - thumb_func_start sub_8195AE4 -sub_8195AE4: @ 8195AE4 - push {r4-r6,lr} - ldr r6, =gSaveBlock2Ptr - ldr r0, [r6] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r5, r0, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - cmp r0, 0x1 - beq _08195B3C - cmp r0, 0x1 - bgt _08195B20 - cmp r0, 0 - beq _08195B26 - b _08195BA0 - .pool -_08195B20: - cmp r0, 0x2 - beq _08195B5C - b _08195BA0 -_08195B26: - ldr r0, [r6] - ldr r1, =gUnknown_020375E4 - ldrh r1, [r1] - ldr r2, =0x00000dc6 - adds r0, r2 - strh r1, [r0] - b _08195BA0 - .pool -_08195B3C: - ldr r2, [r6] - lsls r0, r5, 1 - lsls r1, r4, 2 - adds r0, r1 - ldr r1, =0x00000dc8 - adds r2, r1 - adds r2, r0 - ldr r0, =gUnknown_020375E4 - ldrh r0, [r0] - strh r0, [r2] - b _08195BA0 - .pool -_08195B5C: - ldr r0, =gUnknown_020375E4 - ldrh r0, [r0] - cmp r0, 0 - beq _08195B88 - ldr r2, [r6] - ldr r0, =0x00000cdc - adds r2, r0 - ldr r3, =gUnknown_0860DE98 - lsls r1, r5, 2 - lsls r0, r4, 3 - adds r1, r0 - adds r1, r3 - ldr r0, [r2] - ldr r1, [r1] - orrs r0, r1 - b _08195B9E - .pool -_08195B88: - ldr r2, [r6] - ldr r1, =0x00000cdc - adds r2, r1 - ldr r3, =gUnknown_0860DEA8 - lsls r1, r5, 2 - lsls r0, r4, 3 - adds r1, r0 - adds r1, r3 - ldr r0, [r2] - ldr r1, [r1] - ands r0, r1 -_08195B9E: - str r0, [r2] -_08195BA0: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8195AE4 - - thumb_func_start sub_8195BB0 -sub_8195BB0: @ 8195BB0 - push {r4,lr} - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - ldr r1, =gSaveBlock2Ptr - ldr r2, [r1] - ldr r3, =0x00000ca9 - adds r1, r2, r3 - ldrb r1, [r1] - lsls r1, 30 - lsrs r1, 29 - lsrs r0, 14 - adds r1, r0 - ldr r0, =0x00000dc8 - adds r2, r0 - adds r2, r1 - ldrh r0, [r2] - cmp r0, 0x31 - bhi _08195C00 - ldr r4, =gUnknown_020375F0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - strh r0, [r4] - b _08195C16 - .pool -_08195C00: - cmp r0, 0x62 - bhi _08195C10 - ldr r1, =gUnknown_020375F0 - movs r0, 0x3 - b _08195C14 - .pool -_08195C10: - ldr r1, =gUnknown_020375F0 - movs r0, 0x4 -_08195C14: - strh r0, [r1] -_08195C16: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8195BB0 - - thumb_func_start sub_8195C20 -sub_8195C20: @ 8195C20 - push {r4,lr} - ldr r4, =gUnknown_02038BCA - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xFF - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 2 - adds r1, r0 - lsrs r1, 6 - strh r1, [r4] - ldrh r0, [r4] - movs r1, 0 - bl sub_8162614 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8195C20 - - thumb_func_start sub_8195C50 -sub_8195C50: @ 8195C50 - push {lr} - ldr r3, =gUnknown_02038BCA - ldrh r1, [r3] - ldr r0, =0x0000012b - cmp r1, r0 - bhi _08195C6C - ldr r2, =gUnknown_0203BC88 - movs r0, 0x34 - muls r1, r0 - ldr r0, [r2] - adds r0, r1 - adds r0, 0xC - bl ConvertBattleFrontierTrainerSpeechToString -_08195C6C: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8195C50 - - thumb_func_start sub_8195C7C -sub_8195C7C: @ 8195C7C - push {r4-r7,lr} - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r7, r0, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 24 - ldr r4, [r4] - lsls r1, r7, 1 - lsrs r5, r0, 22 - adds r1, r5 - ldr r3, =0x00000dc8 - adds r6, r4, r3 - adds r3, r6, r1 - ldrh r2, [r3] - ldr r0, =0x0000270e - cmp r2, r0 - bhi _08195CCA - adds r2, 0x1 - strh r2, [r3] - movs r3, 0xDD - lsls r3, 4 - adds r0, r4, r3 - adds r1, r0, r1 - adds r0, r5, 0 - ldrh r3, [r1] - cmp r7, r3 - bls _08195CC0 - adds r0, 0x2 -_08195CC0: - adds r0, r6, r0 - ldrh r0, [r0] - cmp r0, 0 - beq _08195CCA - strh r2, [r1] -_08195CCA: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8195C7C - - thumb_func_start sub_8195CE4 -sub_8195CE4: @ 8195CE4 - push {r4,lr} - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =gUnknown_020375E2 - ldrh r1, [r1] - ldr r2, =0x00000ca8 - adds r0, r2 - strb r1, [r0] - movs r0, 0x80 - lsls r0, 7 - movs r1, 0 - bl VarSet - ldr r1, [r4] - ldr r0, =0x00000ca9 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - bl sub_81A4C30 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8195CE4 - - thumb_func_start sub_8195D28 -sub_8195D28: @ 8195D28 - push {r4,r5,lr} - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - ldr r4, =gSaveBlock2Ptr - ldr r2, [r4] - ldr r3, =0x00000ca9 - adds r1, r2, r3 - ldrb r1, [r1] - lsls r1, 30 - lsrs r1, 29 - lsrs r0, 14 - adds r1, r0 - ldr r0, =0x00000dc8 - adds r2, r0 - adds r2, r1 - ldrh r0, [r2] - cmp r0, 0x29 - bls _08195D88 - bl Random - ldr r4, [r4] - ldr r5, =gUnknown_0860DE84 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x9 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 15 - adds r0, r5 - ldrh r0, [r0] - ldr r1, =0x00000dc6 - adds r4, r1 - b _08195DA6 - .pool -_08195D88: - bl Random - ldr r4, [r4] - ldr r5, =gUnknown_0860DE78 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x6 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 15 - adds r0, r5 - ldrh r0, [r0] - ldr r3, =0x00000dc6 - adds r4, r3 -_08195DA6: - strh r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8195D28 - - thumb_func_start sub_8195DB8 -sub_8195DB8: @ 8195DB8 - push {r4,r5,lr} - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =0x00000dc6 - adds r0, r1 - ldrh r0, [r0] - movs r1, 0x1 - bl bag_add_item - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bne _08195E00 - ldr r0, [r4] - ldr r1, =0x00000dc6 - adds r0, r1 - ldrh r0, [r0] - ldr r1, =gStringVar1 - bl itemid_get_name - ldr r0, [r4] - ldr r1, =0x00000dc6 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_020375F0 - strh r5, [r0] - b _08195E06 - .pool -_08195E00: - ldr r1, =gUnknown_020375F0 - movs r0, 0 - strh r0, [r1] -_08195E06: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8195DB8 - - thumb_func_start sub_8195E10 -sub_8195E10: @ 8195E10 - push {lr} - bl GameFreakRTC_CalcLocalDateTime - ldr r0, =gUnknown_03005CF8 - bl sub_8195E34 - ldr r1, =gUnknown_0203CD80 - adds r0, 0xA - str r0, [r1] - movs r0, 0 - strb r0, [r1, 0x6] - pop {r0} - bx r0 - .pool - thumb_func_end sub_8195E10 - - thumb_func_start sub_8195E34 -sub_8195E34: @ 8195E34 - adds r3, r0, 0 - movs r1, 0 - ldrsh r0, [r3, r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - movs r2, 0x2 - ldrsb r2, [r3, r2] - lsls r1, r2, 4 - subs r1, r2 - lsls r1, 2 - adds r0, r1 - movs r1, 0x3 - ldrsb r1, [r3, r1] - adds r0, r1 - bx lr - thumb_func_end sub_8195E34 - - thumb_func_start sub_8195E58 -sub_8195E58: @ 8195E58 - push {lr} - bl GameFreakRTC_CalcLocalDateTime - ldr r0, =gUnknown_03005CF8 - bl sub_8195E34 - adds r1, r0, 0 - ldr r2, =gUnknown_0203CD80 - ldr r0, [r2] - cmp r0, r1 - bhi _08195E74 - subs r0, r1, r0 - cmp r0, 0x9 - bls _08195E84 -_08195E74: - str r1, [r2] - movs r0, 0x1 - b _08195E86 - .pool -_08195E84: - movs r0, 0 -_08195E86: - pop {r1} - bx r1 - thumb_func_end sub_8195E58 - - thumb_func_start sub_8195E8C -sub_8195E8C: @ 8195E8C - push {r4,r5,lr} - movs r5, 0x1 - ldr r4, =gPlayerParty - adds r0, r4, 0 - movs r1, 0x6 - bl GetMonData - cmp r0, 0 - bne _08195EAE - adds r0, r4, 0 - bl GetMonAbility - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1F - bne _08195EAE - movs r5, 0x2 -_08195EAE: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - lsls r1, r5, 1 - adds r1, r5 - cmp r0, r1 - blt _08195ED0 - movs r0, 0 - b _08195ED2 - .pool -_08195ED0: - movs r0, 0x1 -_08195ED2: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8195E8C - - thumb_func_start sub_8195ED8 -sub_8195ED8: @ 8195ED8 - push {r4,lr} - ldr r4, =gUnknown_02037318 - ldrb r0, [r4, 0x17] - bl is_light_level_1_2_3_or_6 - lsls r0, 24 - cmp r0, 0 - beq _08195F30 - ldrb r0, [r4, 0x14] - cmp r0, 0x39 - beq _08195F30 - cmp r0, 0xE - bne _08195F0E - movs r0, 0xF9 - lsls r0, 2 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08195F0E - movs r0, 0xDC - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08195F30 -_08195F0E: - ldr r0, =gUnknown_02037318 - ldrb r0, [r0, 0x14] - cmp r0, 0x38 - bne _08195F38 - movs r0, 0xCF - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08195F38 - movs r0, 0x8B - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _08195F38 -_08195F30: - movs r0, 0 - b _08195F3A - .pool -_08195F38: - movs r0, 0x1 -_08195F3A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8195ED8 - - thumb_func_start sub_8195F40 -sub_8195F40: @ 8195F40 - push {lr} - ldr r1, =gUnknown_0203CD80 - ldrb r0, [r1, 0x6] - adds r0, 0x1 - strb r0, [r1, 0x6] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x9 - bhi _08195F5C - movs r0, 0 - b _08195F62 - .pool -_08195F5C: - movs r0, 0 - strb r0, [r1, 0x6] - movs r0, 0x1 -_08195F62: - pop {r1} - bx r1 - thumb_func_end sub_8195F40 - - thumb_func_start sub_8195F68 -sub_8195F68: @ 8195F68 - push {r4,lr} - bl sub_8195FCC - adds r4, r0, 0 - cmp r4, 0 - beq _08195FB8 - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0 - bl __umodsi3 - bl sub_8195FF8 - ldr r2, =gUnknown_0203CD80 - movs r1, 0 - strh r0, [r2, 0x4] - strb r1, [r2, 0x7] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x4E - beq _08195FB8 - ldrh r0, [r2, 0x4] - bl sub_8196844 - adds r4, r0, 0 - bl sub_819672C - ldr r1, =gUnknown_02037318 - lsls r0, 16 - lsrs r0, 16 - ldrb r1, [r1, 0x14] - cmp r0, r1 - bne _08195FC4 - adds r0, r4, 0 - bl sub_8196710 - cmp r0, 0 - bne _08195FC4 -_08195FB8: - movs r0, 0 - b _08195FC6 - .pool -_08195FC4: - movs r0, 0x1 -_08195FC6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8195F68 - - thumb_func_start sub_8195FCC -sub_8195FCC: @ 8195FCC - push {r4,r5,lr} - movs r4, 0 - movs r5, 0 -_08195FD2: - movs r1, 0xAE - lsls r1, 1 - adds r0, r4, r1 - lsls r0, 16 - lsrs r0, 16 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08195FE8 - adds r5, 0x1 -_08195FE8: - adds r4, 0x1 - cmp r4, 0x3F - bls _08195FD2 - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8195FCC - - thumb_func_start sub_8195FF8 -sub_8195FF8: @ 8195FF8 - push {r4-r6,lr} - adds r5, r0, 0 - movs r4, 0 - ldr r6, =gUnknown_085500A4 -_08196000: - movs r1, 0xAE - lsls r1, 1 - adds r0, r4, r1 - lsls r0, 16 - lsrs r0, 16 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08196022 - cmp r5, 0 - bne _08196020 - ldrh r0, [r6] - b _0819602C - .pool -_08196020: - subs r5, 0x1 -_08196022: - adds r6, 0x10 - adds r4, 0x1 - cmp r4, 0x3F - bls _08196000 - movs r0, 0x4E -_0819602C: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8195FF8 - - thumb_func_start sub_8196034 -sub_8196034: @ 8196034 - push {lr} - ldr r0, =0x0000012f - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08196078 - bl sub_8195F40 - cmp r0, 0 - beq _08196078 - bl sub_8195E58 - cmp r0, 0 - beq _08196078 - bl sub_8195E8C - cmp r0, 0 - beq _08196078 - bl sub_8195ED8 - cmp r0, 0 - beq _08196078 - bl sub_8195F68 - cmp r0, 0 - beq _08196078 - bl task_prev_quest - movs r0, 0x1 - b _0819607A - .pool -_08196078: - movs r0, 0 -_0819607A: - pop {r1} - bx r1 - thumb_func_end sub_8196034 - - thumb_func_start sub_8196080 -sub_8196080: @ 8196080 - push {lr} - ldr r1, =gUnknown_0203CD80 - movs r0, 0x1 - strb r0, [r1, 0x7] - bl task_prev_quest - pop {r0} - bx r0 - .pool - thumb_func_end sub_8196080 - - thumb_func_start sub_8196094 -sub_8196094: @ 8196094 - push {lr} - ldr r0, =sub_81960E0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end sub_8196094 - - thumb_func_start task_prev_quest -task_prev_quest: @ 81960A8 - push {lr} - ldr r0, =gUnknown_0203CD80 - ldrb r0, [r0, 0x7] - cmp r0, 0 - bne _081960C2 - bl script_env_2_enable - bl player_bitmagic - bl sub_808B864 - bl sub_808BCF4 -_081960C2: - ldr r0, =0x00000107 - bl audio_play - ldr r0, =sub_81960E0 - movs r1, 0x1 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end task_prev_quest - - thumb_func_start sub_81960E0 -sub_81960E0: @ 81960E0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldr r1, =gUnknown_0860EF78 - movs r2, 0 - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 - cmp r0, 0 - beq _0819611E - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - movs r1, 0 - strh r1, [r4, 0x2] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7 - bls _0819611E - adds r0, r5, 0 - bl DestroyTask -_0819611E: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81960E0 - - thumb_func_start sub_819612C -sub_819612C: @ 819612C - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r5, r0, r1 - ldr r0, =gUnknown_0860EF98 - bl AddWindow - strh r0, [r5, 0x4] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xFF - bne _0819615C - adds r0, r4, 0 - b _081961E0 - .pool -_0819615C: - ldr r1, =gUnknown_0860EA6C - movs r2, 0x80 - lsls r2, 1 - movs r3, 0x9C - lsls r3, 2 - movs r0, 0 - bl LoadBgTiles - lsls r0, 16 - ldr r1, =0xffff0000 - cmp r0, r1 - bne _08196188 - ldrb r0, [r5, 0x4] - bl RemoveWindow - adds r0, r4, 0 - b _081961E0 - .pool -_08196188: - ldr r1, =gUnknown_0860EB8C - ldr r3, =0x00000279 - movs r0, 0 - str r0, [sp] - movs r2, 0 - bl decompress_and_copy_tile_data_to_vram - cmp r0, 0 - beq _081961D8 - ldrb r0, [r5, 0x4] - movs r1, 0x88 - bl FillWindowPixelBuffer - ldr r0, =gUnknown_0860EA4C - movs r1, 0xE0 - movs r2, 0x20 - bl LoadPalette - ldr r0, =gUnknown_0860EB6C - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldr r1, =0xffffe000 - movs r0, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x1 - b _081961E6 - .pool -_081961D8: - ldrb r0, [r5, 0x4] - bl RemoveWindow - adds r0, r6, 0 -_081961E0: - bl DestroyTask - movs r0, 0 -_081961E6: - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_819612C - - thumb_func_start sub_81961F0 -sub_81961F0: @ 81961F0 - push {r4,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r4, r1, r0 - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _08196268 - ldrb r0, [r4, 0x4] - bl PutWindowTilemap - movs r1, 0x4 - ldrsh r0, [r4, r1] - movs r1, 0x9C - lsls r1, 2 - movs r2, 0xE - bl sub_819645C - ldr r1, =0x0000f279 - movs r0, 0x4 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x1 - str r0, [sp, 0xC] - movs r0, 0 - movs r2, 0x1 - movs r3, 0xF - bl WriteSequenceToBgTilemapBuffer - ldr r0, =sub_8196694 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] - ldrb r0, [r4, 0x4] - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0 - bl CopyBgTilemapBufferToVram - movs r0, 0x1 - b _0819626A - .pool -_08196268: - movs r0, 0 -_0819626A: - add sp, 0x10 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81961F0 - - thumb_func_start sub_8196274 -sub_8196274: @ 8196274 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r4, r1, r0 - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _08196298 - movs r0, 0 - b _081962A4 - .pool -_08196298: - movs r1, 0x4 - ldrsh r0, [r4, r1] - ldr r1, =gUnknown_0860EF70 - bl sub_81965D8 - movs r0, 0x1 -_081962A4: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8196274 - - thumb_func_start sub_81962B0 -sub_81962B0: @ 81962B0 - push {lr} - movs r1, 0xC0 - lsls r1, 3 - movs r0, 0 - movs r2, 0x1 - bl ChangeBgY - cmp r0, 0 - bge _081962C6 - movs r0, 0 - b _081962D2 -_081962C6: - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x1 -_081962D2: - pop {r1} - bx r1 - thumb_func_end sub_81962B0 - - thumb_func_start sub_81962D8 -sub_81962D8: @ 81962D8 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r4, r1, r0 - movs r1, 0x4 - ldrsh r0, [r4, r1] - bl sub_8196648 - cmp r0, 0 - bne _08196328 - ldrb r0, [r4, 0x4] - movs r1, 0x88 - bl FillWindowPixelBuffer - ldr r1, =gUnknown_0203CD80 - ldrb r0, [r1, 0x7] - cmp r0, 0 - bne _0819630C - ldrh r0, [r1, 0x4] - ldr r1, =gStringVar4 - bl sub_81967AC -_0819630C: - movs r1, 0x4 - ldrsh r0, [r4, r1] - ldr r1, =gStringVar4 - bl sub_81965D8 - movs r0, 0x1 - b _0819632A - .pool -_08196328: - movs r0, 0 -_0819632A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81962D8 - - thumb_func_start sub_8196330 -sub_8196330: @ 8196330 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r4, r1, r0 - movs r1, 0x4 - ldrsh r0, [r4, r1] - bl sub_8196648 - cmp r0, 0 - bne _08196388 - bl mplay_has_finished_maybe - lsls r0, 24 - cmp r0, 0 - bne _08196388 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08196388 - ldrb r0, [r4, 0x4] - movs r1, 0x88 - bl FillWindowPixelBuffer - ldrb r0, [r4, 0x4] - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0x84 - lsls r0, 1 - bl audio_play - movs r0, 0x1 - b _0819638A - .pool -_08196388: - movs r0, 0 -_0819638A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8196330 - - thumb_func_start sub_8196390 -sub_8196390: @ 8196390 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r4, r1, r0 - movs r1, 0xC0 - lsls r1, 3 - movs r0, 0 - movs r2, 0x2 - bl ChangeBgY - ldr r1, =0xffffe000 - cmp r0, r1 - ble _081963C0 - movs r0, 0 - b _081963E8 - .pool -_081963C0: - movs r0, 0x1E - str r0, [sp] - movs r0, 0x6 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0xE - bl FillBgTilemapBufferRect_Palette0 - ldrb r0, [r4, 0xA] - bl DestroyTask - ldrb r0, [r4, 0x4] - bl RemoveWindow - movs r0, 0 - bl CopyBgTilemapBufferToVram - movs r0, 0x1 -_081963E8: - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8196390 - - thumb_func_start sub_81963F0 -sub_81963F0: @ 81963F0 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _08196454 - bl mplay_has_finished_maybe - lsls r0, 24 - cmp r0, 0 - bne _08196454 - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - ldr r0, =gUnknown_0203CD80 - ldrb r0, [r0, 0x7] - cmp r0, 0 - bne _08196446 - bl sub_81973A4 - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02037350 - adds r0, r1 - bl FieldObjectClearAnimIfSpecialAnimFinished - bl sub_80D338C - bl sub_809757C - bl script_env_2_disable -_08196446: - movs r0, 0x1 - b _08196456 - .pool -_08196454: - movs r0, 0 -_08196456: - pop {r1} - bx r1 - thumb_func_end sub_81963F0 - - thumb_func_start sub_819645C -sub_819645C: @ 819645C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - adds r4, r0, 0 - adds r5, r1, 0 - adds r7, r2, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0 - bl GetWindowAttribute - mov r9, r0 - adds r0, r4, 0 - movs r1, 0x1 - bl GetWindowAttribute - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r1, 0x2 - bl GetWindowAttribute - str r0, [sp, 0xC] - adds r0, r4, 0 - movs r1, 0x3 - bl GetWindowAttribute - adds r6, r0, 0 - adds r0, r4, 0 - movs r1, 0x4 - bl GetWindowAttribute - str r0, [sp, 0x10] - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r1, 0xA - bl GetBgAttribute - lsls r0, 16 - lsrs r0, 16 - adds r5, r0 - lsls r7, 12 - movs r1, 0xF0 - lsls r1, 8 - adds r0, r1, 0 - ands r7, r0 - adds r1, r7, 0 - orrs r1, r5 - lsls r1, 16 - lsrs r1, 16 - ldr r2, [sp, 0x8] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - ldr r4, [sp, 0xC] - subs r4, 0x1 - lsls r4, 24 - lsrs r4, 24 - movs r3, 0x1 - mov r8, r3 - str r3, [sp] - str r3, [sp, 0x4] - mov r0, r9 - adds r3, r4, 0 - bl FillBgTilemapBufferRect_Palette0 - adds r1, r5, 0x1 - orrs r1, r7 - lsls r1, 16 - lsrs r1, 16 - ldr r0, [sp, 0x8] - lsls r2, r0, 24 - lsrs r2, 24 - str r2, [sp, 0x14] - lsls r0, r6, 24 - lsrs r0, 24 - str r0, [sp, 0x18] - str r0, [sp] - mov r2, r8 - str r2, [sp, 0x4] - mov r0, r9 - ldr r2, [sp, 0x14] - adds r3, r4, 0 - bl FillBgTilemapBufferRect_Palette0 - adds r1, r5, 0x2 - orrs r1, r7 - lsls r1, 16 - lsrs r1, 16 - ldr r3, [sp, 0x8] - adds r0, r3, r6 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x1C] - mov r0, r8 - str r0, [sp] - str r0, [sp, 0x4] - mov r0, r9 - ldr r2, [sp, 0x1C] - adds r3, r4, 0 - bl FillBgTilemapBufferRect_Palette0 - adds r1, r5, 0x3 - orrs r1, r7 - lsls r1, 16 - lsrs r1, 16 - ldr r2, [sp, 0xC] - lsls r6, r2, 24 - lsrs r6, 24 - mov r3, r8 - str r3, [sp] - ldr r0, [sp, 0x10] - lsls r4, r0, 24 - lsrs r4, 24 - str r4, [sp, 0x4] - mov r0, r9 - mov r2, r10 - adds r3, r6, 0 - bl FillBgTilemapBufferRect_Palette0 - adds r1, r5, 0x4 - orrs r1, r7 - lsls r1, 16 - lsrs r1, 16 - mov r2, r8 - str r2, [sp] - str r4, [sp, 0x4] - mov r0, r9 - ldr r2, [sp, 0x1C] - adds r3, r6, 0 - bl FillBgTilemapBufferRect_Palette0 - adds r1, r5, 0x5 - orrs r1, r7 - lsls r1, 16 - lsrs r1, 16 - ldr r3, [sp, 0xC] - ldr r2, [sp, 0x10] - adds r0, r3, r2 - lsls r0, 24 - lsrs r4, r0, 24 - mov r3, r8 - str r3, [sp] - str r3, [sp, 0x4] - mov r0, r9 - mov r2, r10 - adds r3, r4, 0 - bl FillBgTilemapBufferRect_Palette0 - adds r1, r5, 0x6 - orrs r1, r7 - lsls r1, 16 - lsrs r1, 16 - ldr r0, [sp, 0x18] - str r0, [sp] - mov r2, r8 - str r2, [sp, 0x4] - mov r0, r9 - ldr r2, [sp, 0x14] - adds r3, r4, 0 - bl FillBgTilemapBufferRect_Palette0 - adds r5, 0x7 - orrs r5, r7 - lsls r5, 16 - lsrs r5, 16 - mov r3, r8 - str r3, [sp] - str r3, [sp, 0x4] - mov r0, r9 - adds r1, r5, 0 - ldr r2, [sp, 0x1C] - adds r3, r4, 0 - bl FillBgTilemapBufferRect_Palette0 - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_819645C - - thumb_func_start sub_81965D8 -sub_81965D8: @ 81965D8 - push {lr} - sub sp, 0x10 - str r1, [sp] - mov r1, sp - movs r3, 0 - strb r0, [r1, 0x4] - mov r0, sp - movs r1, 0x1 - strb r1, [r0, 0x5] - movs r2, 0x20 - strb r2, [r0, 0x6] - strb r1, [r0, 0x7] - strb r2, [r0, 0x8] - strb r1, [r0, 0x9] - strb r3, [r0, 0xA] - strb r3, [r0, 0xB] - mov r3, sp - ldrb r2, [r3, 0xC] - subs r1, 0x11 - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3, 0xC] - mov r2, sp - movs r3, 0xF - movs r0, 0xA0 - strb r0, [r2, 0xC] - ldrb r0, [r2, 0xD] - ands r1, r0 - movs r0, 0x8 - orrs r1, r0 - strb r1, [r2, 0xD] - ands r1, r3 - movs r0, 0xE0 - orrs r1, r0 - strb r1, [r2, 0xD] - ldr r2, =gTextFlags - ldrb r1, [r2] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - bl sav2_get_text_speed - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, sp - movs r2, 0 - bl AddTextPrinter - add sp, 0x10 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81965D8 - - thumb_func_start sub_8196648 -sub_8196648: @ 8196648 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gMain - ldrh r1, [r0, 0x2C] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0819666C - ldr r0, =gTextFlags - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - b _08196678 - .pool -_0819666C: - ldr r2, =gTextFlags - ldrb r1, [r2] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_08196678: - bl RunTextPrinters - lsls r0, r4, 24 - lsrs r0, 24 - bl IsTextPrinterActive - lsls r0, 16 - lsrs r0, 16 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8196648 - - thumb_func_start sub_8196694 -sub_8196694: @ 8196694 - push {lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r2, r1, r0 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _081966FC - movs r1, 0 - strh r1, [r2] - ldrh r0, [r2, 0x2] - adds r0, 0x1 - strh r0, [r2, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _081966C8 - strh r1, [r2, 0x2] -_081966C8: - movs r0, 0x2 - ldrsh r1, [r2, r0] - lsls r1, 4 - ldr r0, =0x00000279 - adds r1, r0 - strh r1, [r2, 0x4] - ldr r2, =0xfffff000 - adds r0, r2, 0 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x4 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x1 - str r0, [sp, 0xC] - movs r0, 0 - movs r2, 0x1 - movs r3, 0xF - bl WriteSequenceToBgTilemapBuffer - movs r0, 0 - bl CopyBgTilemapBufferToVram -_081966FC: - add sp, 0x10 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8196694 - - thumb_func_start sub_8196710 -sub_8196710: @ 8196710 - ldr r1, =gSaveBlock1Ptr - ldr r1, [r1] - ldr r2, =0x000009ca - adds r1, r2 - adds r1, r0 - ldrb r1, [r1] - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - bx lr - .pool - thumb_func_end sub_8196710 - - thumb_func_start sub_819672C -sub_819672C: @ 819672C - push {lr} - ldr r1, =gUnknown_085500A4 - lsls r0, 4 - adds r0, r1 - ldrh r2, [r0, 0xA] - ldrh r1, [r0, 0xC] - adds r0, r2, 0 - bl get_mapheader_by_bank_and_number - ldrb r0, [r0, 0x14] - pop {r1} - bx r1 - .pool - thumb_func_end sub_819672C - - thumb_func_start sub_8196748 -sub_8196748: @ 8196748 - push {r4-r6,lr} - movs r5, 0 - movs r6, 0 - ldr r4, =gUnknown_085500A4 -_08196750: - ldrh r0, [r4] - bl trainer_flag_check - lsls r0, 24 - cmp r0, 0 - beq _0819675E - adds r6, 0x1 -_0819675E: - adds r4, 0x10 - adds r5, 0x1 - cmp r5, 0x3F - bls _08196750 - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8196748 - - thumb_func_start sub_8196774 -sub_8196774: @ 8196774 - push {r4-r7,lr} - adds r7, r0, 0 - movs r4, 0 - movs r6, 0 - ldr r5, =gUnknown_085500A4 -_0819677E: - ldrh r0, [r5] - bl trainer_flag_check - lsls r0, 24 - cmp r0, 0 - beq _0819679A - cmp r6, r7 - bne _08196798 - adds r0, r4, 0 - b _081967A4 - .pool -_08196798: - adds r6, 0x1 -_0819679A: - adds r5, 0x10 - adds r4, 0x1 - cmp r4, 0x4D - bls _0819677E - movs r0, 0x4E -_081967A4: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8196774 - - thumb_func_start sub_81967AC -sub_81967AC: @ 81967AC - push {r4-r7,lr} - adds r6, r1, 0 - movs r7, 0 - bl sub_8196844 - adds r5, r0, 0 - ldr r0, =gUnknown_0203CD88 - strh r7, [r0] - adds r0, r5, 0 - bl sub_8196710 - cmp r0, 0 - beq _081967EC - adds r0, r5, 0 - bl sub_819672C - ldr r1, =gUnknown_02037318 - lsls r0, 16 - lsrs r0, 16 - ldrb r1, [r1, 0x14] - cmp r0, r1 - bne _081967EC - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_8196864 - b _08196830 - .pool -_081967EC: - adds r0, r5, 0 - bl sub_8196D74 - cmp r0, 0 - beq _0819680A - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_8196890 - adds r4, r0, 0 - movs r7, 0x1 - adds r0, r5, 0 - bl sub_80B1E94 - b _08196832 -_0819680A: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - beq _08196828 - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_81968BC - b _08196830 -_08196828: - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_8196910 -_08196830: - adds r4, r0, 0 -_08196832: - adds r0, r5, 0 - adds r1, r4, 0 - adds r2, r6, 0 - bl sub_81969E0 - adds r0, r7, 0 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81967AC - - thumb_func_start sub_8196844 -sub_8196844: @ 8196844 - push {lr} - adds r3, r0, 0 - movs r2, 0 - ldr r1, =gUnknown_0860DEB8 -_0819684C: - ldrh r0, [r1] - cmp r0, r3 - beq _0819685C - adds r1, 0x14 - adds r2, 0x1 - b _0819684C - .pool -_0819685C: - adds r0, r2, 0 - pop {r1} - bx r1 - thumb_func_end sub_8196844 - - thumb_func_start sub_8196864 -sub_8196864: @ 8196864 - ldr r2, =gUnknown_0860DEB8 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r1, [r1, 0xE] - movs r2, 0xFF - lsrs r0, r1, 8 - subs r0, 0x1 - ands r1, r2 - subs r1, 0x1 - ldr r2, =gUnknown_0860EA2C - lsls r0, 2 - adds r0, r2 - lsls r1, 3 - ldr r0, [r0] - adds r0, r1 - bx lr - .pool - thumb_func_end sub_8196864 - - thumb_func_start sub_8196890 -sub_8196890: @ 8196890 - ldr r2, =gUnknown_0860DEB8 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r1, [r1, 0x10] - movs r2, 0xFF - lsrs r0, r1, 8 - subs r0, 0x1 - ands r1, r2 - subs r1, 0x1 - ldr r2, =gUnknown_0860EA2C - lsls r0, 2 - adds r0, r2 - lsls r1, 3 - ldr r0, [r0] - adds r0, r1 - bx lr - .pool - thumb_func_end sub_8196890 - - thumb_func_start sub_81968BC -sub_81968BC: @ 81968BC - push {r4,lr} - adds r4, r0, 0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - ldr r2, =gUnknown_0860DEB8 - lsrs r0, 15 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 2 - adds r0, r1 - adds r2, 0x4 - adds r0, r2 - ldrh r4, [r0] - cmp r4, 0 - bne _081968EC - movs r0, 0 - bl DummyObjectCallback -_081968EC: - movs r1, 0xFF - lsrs r0, r4, 8 - subs r0, 0x1 - ands r4, r1 - subs r1, r4, 0x1 - ldr r2, =gUnknown_0860EA20 - lsls r0, 2 - adds r0, r2 - lsls r1, 3 - ldr r0, [r0] - adds r0, r1 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81968BC - - thumb_func_start sub_8196910 -sub_8196910: @ 8196910 - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r0, 0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081969AC - movs r5, 0 - movs r4, 0 - lsls r7, r6, 2 -_0819692C: - lsls r0, r4, 16 - lsrs r0, 16 - mov r1, sp - bl sub_8196E04 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _08196940 - adds r5, 0x1 -_08196940: - adds r4, 0x1 - cmp r4, 0x6 - ble _0819692C - cmp r5, 0 - beq _081969AC - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r5, 0 - bl __modsi3 - adds r5, r0, 0 - movs r4, 0 - b _08196962 -_0819695E: - subs r5, 0x1 -_08196960: - adds r4, 0x1 -_08196962: - cmp r4, 0x6 - bgt _08196980 - lsls r0, r4, 16 - lsrs r0, 16 - mov r1, sp - bl sub_8196E04 - ldr r1, =gUnknown_0203CD88 - strh r0, [r1, 0x2] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _08196960 - cmp r5, 0 - bne _0819695E -_08196980: - ldr r0, =gUnknown_0203CD88 - strh r4, [r0] - ldr r1, =gUnknown_0860DEB8 - adds r0, r7, r6 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0xC] - subs r2, r0, 0x1 - ldr r1, =gUnknown_0860EA34 - ldr r0, [sp] - lsls r0, 2 - adds r0, r1 - lsls r1, r2, 3 - ldr r0, [r0] - adds r0, r1 - b _081969D0 - .pool -_081969AC: - ldr r1, =gUnknown_0860DEB8 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 2 - adds r0, r1 - ldrh r2, [r0, 0xA] - lsrs r1, r2, 8 - subs r1, 0x1 - str r1, [sp] - movs r0, 0xFF - ands r0, r2 - subs r2, r0, 0x1 - ldr r0, =gUnknown_0860EA34 - lsls r1, 2 - adds r1, r0 - lsls r2, 3 - ldr r0, [r1] - adds r0, r2 -_081969D0: - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8196910 - - thumb_func_start sub_81969E0 -sub_81969E0: @ 81969E0 - push {r4,r5,lr} - adds r4, r1, 0 - adds r5, r2, 0 - adds r1, r4, 0x4 - bl sub_81969FC - ldr r1, [r4] - adds r0, r5, 0 - bl StringExpandPlaceholders - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81969E0 - - thumb_func_start sub_81969FC -sub_81969FC: @ 81969FC - push {r4-r7,lr} - adds r7, r0, 0 - adds r6, r1, 0 - movs r4, 0 - ldr r5, =gUnknown_0860EFA0 -_08196A06: - adds r1, r6, r4 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - blt _08196A1A - adds r1, r0, 0 - ldr r2, [r5] - adds r0, r7, 0 - bl sub_8196A2C -_08196A1A: - adds r5, 0x4 - adds r4, 0x1 - cmp r4, 0x2 - ble _08196A06 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81969FC - - thumb_func_start sub_8196A2C -sub_8196A2C: @ 8196A2C - push {lr} - ldr r3, =gUnknown_0860EFAC - lsls r1, 2 - adds r1, r3 - ldr r3, [r1] - adds r1, r2, 0 - bl _call_via_r3 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8196A2C - - thumb_func_start sub_8196A44 -sub_8196A44: @ 8196A44 - push {r4-r6,lr} - adds r5, r1, 0 - ldr r2, =gUnknown_0860DEB8 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r4, [r1] - movs r2, 0 - ldr r3, =gUnknown_0860EFC4 - adds r6, r3, 0 -_08196A5A: - lsls r1, r2, 3 - ldrh r0, [r3] - cmp r0, r4 - bne _08196A78 - adds r0, r6, 0x4 - adds r0, r1, r0 - ldr r1, [r0] - adds r0, r5, 0 - bl StringCopy - b _08196A90 - .pool -_08196A78: - adds r3, 0x8 - adds r2, 0x1 - cmp r2, 0x5 - bls _08196A5A - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - ldr r0, =gTrainers + 0x4 @ name offset - adds r1, r0 - adds r0, r5, 0 - bl StringCopy -_08196A90: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8196A44 - - thumb_func_start sub_8196A9C -sub_8196A9C: @ 8196A9C - push {r4,lr} - adds r4, r1, 0 - bl sub_819672C - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0 - bl GetMapName - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8196A9C - - thumb_func_start sub_8196AB8 -sub_8196AB8: @ 8196AB8 - push {lr} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x13 - bgt _08196AD4 - movs r0, 0 - b _08196B4A -_08196AD4: - adds r0, r1, 0 - subs r0, 0x14 - cmp r0, 0x13 - bhi _08196AE0 - movs r0, 0x1 - b _08196B4A -_08196AE0: - adds r0, r1, 0 - subs r0, 0x28 - cmp r0, 0x9 - bhi _08196AEC - movs r0, 0x2 - b _08196B4A -_08196AEC: - adds r0, r1, 0 - subs r0, 0x32 - cmp r0, 0x9 - bhi _08196AF8 - movs r0, 0x3 - b _08196B4A -_08196AF8: - adds r0, r1, 0 - subs r0, 0x3C - cmp r0, 0x9 - bhi _08196B04 - movs r0, 0x4 - b _08196B4A -_08196B04: - adds r0, r1, 0 - subs r0, 0x46 - cmp r0, 0x9 - bhi _08196B10 - movs r0, 0x5 - b _08196B4A -_08196B10: - adds r0, r1, 0 - subs r0, 0x50 - cmp r0, 0x4 - bhi _08196B1C - movs r0, 0x6 - b _08196B4A -_08196B1C: - adds r0, r1, 0 - subs r0, 0x55 - cmp r0, 0x4 - bhi _08196B28 - movs r0, 0x7 - b _08196B4A -_08196B28: - adds r0, r1, 0 - subs r0, 0x5A - cmp r0, 0x3 - bhi _08196B34 - movs r0, 0x8 - b _08196B4A -_08196B34: - adds r0, r1, 0 - subs r0, 0x5E - cmp r0, 0x3 - bhi _08196B40 - movs r0, 0x9 - b _08196B4A -_08196B40: - cmp r1, 0x62 - beq _08196B48 - movs r0, 0xB - b _08196B4A -_08196B48: - movs r0, 0xA -_08196B4A: - pop {r1} - bx r1 - thumb_func_end sub_8196AB8 - - thumb_func_start sub_8196B50 -sub_8196B50: @ 8196B50 - push {lr} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x3B - bgt _08196B6C - movs r0, 0 - b _08196B92 -_08196B6C: - adds r0, r1, 0 - subs r0, 0x3C - cmp r0, 0x1D - bhi _08196B78 - movs r0, 0x1 - b _08196B92 -_08196B78: - adds r0, r1, 0 - subs r0, 0x5A - cmp r0, 0x4 - bhi _08196B84 - movs r0, 0x2 - b _08196B92 -_08196B84: - adds r0, r1, 0 - subs r0, 0x5F - cmp r0, 0x3 - bls _08196B90 - movs r0, 0x4 - b _08196B92 -_08196B90: - movs r0, 0x3 -_08196B92: - pop {r1} - bx r1 - thumb_func_end sub_8196B50 - - thumb_func_start sub_8196B98 -sub_8196B98: @ 8196B98 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r2, r0, 0 - mov r8, r1 - movs r3, 0 - ldr r0, =gWildMonHeaders - ldrb r1, [r0] - adds r7, r0, 0 - cmp r1, 0xFF - beq _08196C5C - ldr r1, =gUnknown_085500A4 - lsls r0, r2, 4 - adds r2, r0, r1 - ldrh r4, [r2, 0xA] - adds r1, r7, 0 -_08196BBA: - ldrb r0, [r1] - cmp r0, r4 - bne _08196BC8 - ldrb r0, [r1, 0x1] - ldrh r5, [r2, 0xC] - cmp r0, r5 - beq _08196BD2 -_08196BC8: - adds r1, 0x14 - adds r3, 0x1 - ldrb r0, [r1] - cmp r0, 0xFF - bne _08196BBA -_08196BD2: - adds r1, r7, 0 - lsls r0, r3, 2 - adds r0, r3 - lsls r5, r0, 2 - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, 0xFF - beq _08196C5C - movs r6, 0 - adds r0, r1, 0x4 - adds r0, r5, r0 - ldr r4, [r0] - cmp r4, 0 - beq _08196C02 - bl sub_8196AB8 - lsls r0, 24 - mov r2, sp - ldr r1, [r4, 0x4] - lsrs r0, 22 - adds r0, r1 - ldrh r0, [r0, 0x2] - strh r0, [r2] - movs r6, 0x1 -_08196C02: - adds r0, r7, 0 - adds r0, 0x8 - adds r0, r5, r0 - ldr r4, [r0] - cmp r4, 0 - beq _08196C26 - bl sub_8196B50 - lsls r0, 24 - lsls r1, r6, 1 - mov r3, sp - adds r2, r3, r1 - ldr r1, [r4, 0x4] - lsrs r0, 22 - adds r0, r1 - ldrh r0, [r0, 0x2] - strh r0, [r2] - adds r6, 0x1 -_08196C26: - cmp r6, 0 - beq _08196C5C - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r6, 0 - bl __modsi3 - lsls r0, 1 - add r0, sp - ldrh r1, [r0] - movs r0, 0xB - muls r1, r0 - ldr r0, =gSpeciesNames - adds r1, r0 - mov r0, r8 - bl StringCopy - b _08196C62 - .pool -_08196C5C: - movs r0, 0xFF - mov r5, r8 - strb r0, [r5] -_08196C62: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8196B98 - - thumb_func_start sub_8196C70 -sub_8196C70: @ 8196C70 - push {r4-r7,lr} - adds r7, r1, 0 - ldr r2, =gUnknown_0860DEB8 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r1] - bl sub_80B2250 - lsls r0, 16 - lsrs r0, 16 - ldr r5, =gTrainers - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r0, r5, 0 - adds r0, 0x24 - adds r0, r4, r0 - ldr r6, [r0] - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r4, r5 - adds r1, r4, 0 - adds r1, 0x20 - ldrb r1, [r1] - bl __modsi3 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r4] - cmp r1, 0x1 - beq _08196CD4 - cmp r1, 0x1 - ble _08196CC2 - cmp r1, 0x2 - beq _08196CD0 - cmp r1, 0x3 - beq _08196CD4 -_08196CC2: - lsls r0, 3 - b _08196CD6 - .pool -_08196CD0: - lsls r0, 3 - b _08196CD6 -_08196CD4: - lsls r0, 4 -_08196CD6: - adds r0, r6 - ldrh r1, [r0, 0x4] - movs r0, 0xB - muls r1, r0 - ldr r0, =gSpeciesNames - adds r1, r0 - adds r0, r7, 0 - bl StringCopy - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8196C70 - - thumb_func_start sub_8196CF4 -sub_8196CF4: @ 8196CF4 - push {lr} - adds r0, r1, 0 - ldr r2, =gUnknown_0860EFF4 - ldr r1, =gUnknown_0203CD88 - ldrh r1, [r1] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - pop {r0} - bx r0 - .pool - thumb_func_end sub_8196CF4 - - thumb_func_start sub_8196D14 -sub_8196D14: @ 8196D14 - push {r4-r6,lr} - adds r5, r1, 0 - movs r4, 0 - ldr r0, =gUnknown_0203CD88 - ldrh r1, [r0, 0x2] - adds r6, r0, 0 - cmp r1, 0 - beq _08196D34 -_08196D24: - adds r0, r1, 0 - movs r1, 0xA - bl __divsi3 - adds r1, r0, 0 - adds r4, 0x1 - cmp r1, 0 - bne _08196D24 -_08196D34: - ldrh r1, [r6, 0x2] - lsls r3, r4, 24 - lsrs r3, 24 - adds r0, r5, 0 - movs r2, 0 - bl ConvertIntToDecimalStringN - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8196D14 - - thumb_func_start sub_8196D4C -sub_8196D4C: @ 8196D4C - push {r4,r5,lr} - movs r4, 0 - ldr r5, =gUnknown_0860F010 - b _08196D5C - .pool -_08196D58: - adds r5, 0x2 - adds r4, 0x1 -_08196D5C: - cmp r4, 0x7 - bhi _08196D6C - ldrh r0, [r5] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _08196D58 -_08196D6C: - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8196D4C - - thumb_func_start sub_8196D74 -sub_8196D74: @ 8196D74 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - bl sub_8196D4C - cmp r0, 0x4 - ble _08196DF4 - bl GameFreakRTC_GetNumDays - adds r4, r0, 0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xA - bl sub_80842DC - adds r6, r0, 0 - ldr r0, =0x0000ffff - ands r6, r0 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00002e6a - adds r0, r1 - ldrh r5, [r0] - bl sub_8196748 - mov r9, r0 - movs r0, 0xD - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - movs r1, 0xA - bl __divsi3 - mov r8, r0 - movs r0, 0x9 - bl sub_80847F8 - eors r4, r5 - eors r5, r0 - adds r4, r5 - eors r4, r6 - adds r0, r4, 0 - mov r1, r8 - bl __modsi3 - cmp r0, r9 - bge _08196DF4 - bl sub_8196774 - cmp r0, r7 - bne _08196DF4 - movs r0, 0x1 - b _08196DF6 - .pool -_08196DF4: - movs r0, 0 -_08196DF6: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8196D74 - - thumb_func_start sub_8196E04 -sub_8196E04: @ 8196E04 - push {r4-r6,lr} - adds r5, r1, 0 - lsls r0, 16 - lsrs r0, 16 - movs r4, 0 - cmp r0, 0x6 - bls _08196E14 - b _08196F7E -_08196E14: - lsls r0, 2 - ldr r1, =_08196E24 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08196E24: - .4byte _08196E9C - .4byte _08196E40 - .4byte _08196ED0 - .4byte _08196F38 - .4byte _08196E74 - .4byte _08196F04 - .4byte _08196F60 -_08196E40: - movs r3, 0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000d14 - adds r0, r1 -_08196E4A: - lsls r1, r3, 2 - adds r3, 0x1 - adds r1, r0 - movs r2, 0x1 -_08196E52: - ldrh r6, [r1] - cmp r4, r6 - bcs _08196E5A - ldrh r4, [r1] -_08196E5A: - adds r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _08196E52 - cmp r3, 0x1 - ble _08196E4A - movs r0, 0x3 - b _08196F7C - .pool -_08196E74: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000e08 - adds r0, r1 - movs r3, 0x1 -_08196E7E: - ldrh r6, [r0] - cmp r4, r6 - bcs _08196E86 - ldrh r4, [r0] -_08196E86: - adds r0, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _08196E7E - movs r0, 0x4 - b _08196F7C - .pool -_08196E9C: - movs r3, 0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - movs r1, 0xCF - lsls r1, 4 - adds r0, r1 -_08196EA8: - lsls r1, r3, 2 - adds r3, 0x1 - adds r1, r0 - movs r2, 0x1 -_08196EB0: - ldrh r6, [r1] - cmp r4, r6 - bcs _08196EB8 - ldrh r4, [r1] -_08196EB8: - adds r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _08196EB0 - movs r2, 0x2 - cmp r3, 0x3 - ble _08196EA8 - str r2, [r5] - b _08196F7E - .pool -_08196ED0: - movs r3, 0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - movs r1, 0xDD - lsls r1, 4 - adds r0, r1 -_08196EDC: - lsls r1, r3, 2 - adds r3, 0x1 - adds r1, r0 - movs r2, 0x1 -_08196EE4: - ldrh r6, [r1] - cmp r4, r6 - bcs _08196EEC - ldrh r4, [r1] -_08196EEC: - adds r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _08196EE4 - movs r2, 0x2 - cmp r3, 0x1 - ble _08196EDC - str r2, [r5] - b _08196F7E - .pool -_08196F04: - movs r3, 0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000dea - adds r0, r1 -_08196F0E: - lsls r1, r3, 2 - adds r3, 0x1 - adds r1, r0 - movs r2, 0x1 -_08196F16: - ldrh r6, [r1] - cmp r4, r6 - bcs _08196F1E - ldrh r4, [r1] -_08196F1E: - adds r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _08196F16 - movs r2, 0x2 - cmp r3, 0x1 - ble _08196F0E - str r2, [r5] - b _08196F7E - .pool -_08196F38: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000dde - adds r0, r1 - movs r3, 0x1 -_08196F42: - ldrh r6, [r0] - cmp r4, r6 - bcs _08196F4A - ldrh r4, [r0] -_08196F4A: - adds r0, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _08196F42 - movs r3, 0x2 - str r3, [r5] - b _08196F7E - .pool -_08196F60: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000e1e - adds r0, r1 - movs r3, 0x1 -_08196F6A: - ldrh r6, [r0] - cmp r4, r6 - bcs _08196F72 - ldrh r4, [r0] -_08196F72: - adds r0, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _08196F6A - movs r0, 0x5 -_08196F7C: - str r0, [r5] -_08196F7E: - adds r0, r4, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8196E04 - - thumb_func_start sub_8196F90 -sub_8196F90: @ 8196F90 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x9 - bhi _08196F9E - movs r0, 0 - b _0819707A -_08196F9E: - cmp r4, 0x13 - bhi _08196FA6 - movs r0, 0x1 - b _0819707A -_08196FA6: - cmp r4, 0x1D - bhi _08196FAE - movs r0, 0x2 - b _0819707A -_08196FAE: - cmp r4, 0x27 - bhi _08196FB6 - movs r0, 0x3 - b _0819707A -_08196FB6: - cmp r4, 0x31 - bhi _08196FBE - movs r0, 0x4 - b _0819707A -_08196FBE: - cmp r4, 0x3B - bhi _08196FC6 - movs r0, 0x5 - b _0819707A -_08196FC6: - cmp r4, 0x45 - bhi _08196FCE - movs r0, 0x6 - b _0819707A -_08196FCE: - cmp r4, 0x4F - bhi _08196FD6 - movs r0, 0x7 - b _0819707A -_08196FD6: - cmp r4, 0x59 - bhi _08196FDE - movs r0, 0x8 - b _0819707A -_08196FDE: - cmp r4, 0x63 - bhi _08196FE6 - movs r0, 0x9 - b _0819707A -_08196FE6: - cmp r4, 0x6D - bhi _08196FEE - movs r0, 0xA - b _0819707A -_08196FEE: - cmp r4, 0x77 - bhi _08196FF6 - movs r0, 0xB - b _0819707A -_08196FF6: - cmp r4, 0x81 - bhi _08196FFE - movs r0, 0xC - b _0819707A -_08196FFE: - cmp r4, 0x8B - bhi _08197006 - movs r0, 0xD - b _0819707A -_08197006: - cmp r4, 0x95 - bhi _0819700E - movs r0, 0xE - b _0819707A -_0819700E: - cmp r4, 0x9F - bhi _08197016 - movs r0, 0xF - b _0819707A -_08197016: - cmp r4, 0xA9 - bhi _0819701E - movs r0, 0x10 - b _0819707A -_0819701E: - cmp r4, 0xB3 - bhi _08197026 - movs r0, 0x11 - b _0819707A -_08197026: - cmp r4, 0xBD - bhi _0819702E - movs r0, 0x12 - b _0819707A -_0819702E: - cmp r4, 0xC7 - bls _08197078 - movs r0, 0xCD - lsls r0, 1 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl pokedex_flag_operation - lsls r0, 24 - cmp r0, 0 - beq _08197050 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_08197050: - ldr r0, =0x00000199 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl pokedex_flag_operation - lsls r0, 24 - cmp r0, 0 - beq _0819706C - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_0819706C: - cmp r4, 0xC7 - bls _08197078 - movs r0, 0x14 - b _0819707A - .pool -_08197078: - movs r0, 0x13 -_0819707A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8196F90 - - thumb_func_start sub_8197080 -sub_8197080: @ 8197080 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r8, r0 - movs r0, 0xFA - lsls r0, 2 - bl Alloc - adds r7, r0, 0 - cmp r7, 0 - bne _081970A2 - movs r0, 0xFF - mov r1, r8 - strb r0, [r1] - b _0819715C -_081970A2: - movs r0, 0 - bl sub_80C0844 - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0x1 - bl sub_80C0844 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, =gStringVar1 - mov r10, r0 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r1, =gStringVar2 - mov r9, r1 - mov r0, r9 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r0, r6, 0 - bl sub_8196F90 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, =gUnknown_082A5C9C - adds r0, r7, 0 - bl StringCopy - adds r5, r0, 0 - movs r6, 0xFB - strb r6, [r5] - adds r5, 0x1 - ldr r1, =gUnknown_082A5D2C - adds r0, r5, 0 - bl StringCopy - adds r5, r0, 0 - strb r6, [r5] - adds r5, 0x1 - ldr r0, =gUnknown_0860F020 - lsls r4, 2 - adds r4, r0 - ldr r1, [r4] - adds r0, r5, 0 - bl StringCopy - mov r0, r8 - adds r1, r7, 0 - bl StringExpandPlaceholders - adds r5, r0, 0 - bl sub_809D42C - cmp r0, 0 - beq _08197156 - strb r6, [r5] - adds r5, 0x1 - movs r0, 0 - bl pokedex_count - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0x1 - bl pokedex_count - lsls r0, 16 - lsrs r6, r0, 16 - mov r0, r10 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - mov r0, r9 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r1, =gUnknown_082A633D - adds r0, r5, 0 - bl StringExpandPlaceholders -_08197156: - adds r0, r7, 0 - bl Free -_0819715C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8197080 - - thumb_func_start sub_8197184 -sub_8197184: @ 8197184 - push {r4,r5,lr} - adds r4, r1, 0 - adds r5, r2, 0 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0860EA6C - movs r2, 0x80 - lsls r2, 1 - lsls r4, 16 - lsrs r4, 16 - adds r3, r4, 0 - bl LoadBgTiles - ldr r0, =gUnknown_0860EA4C - lsls r5, 20 - lsrs r5, 16 - adds r1, r5, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8197184 - - thumb_func_start sub_81971C4 -sub_81971C4: @ 81971C4 - push {lr} - bl sub_819645C - pop {r0} - bx r0 - thumb_func_end sub_81971C4 - - thumb_func_start sub_81971D0 -sub_81971D0: @ 81971D0 - push {lr} - ldr r0, =gUnknown_0860F098 - bl InitWindows - ldr r0, =gUnknown_0203CD8C - movs r1, 0xFF - strb r1, [r0] - ldr r0, =gUnknown_0203CD8D - strb r1, [r0] - pop {r0} - bx r0 - .pool - thumb_func_end sub_81971D0 - - thumb_func_start sub_81971F4 -sub_81971F4: @ 81971F4 - push {lr} - bl FreeAllWindowBuffers - pop {r0} - bx r0 - thumb_func_end sub_81971F4 - - thumb_func_start sub_8197200 -sub_8197200: @ 8197200 - push {lr} - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - bl DeactivateAllTextPrinters - bl sub_81973A4 - pop {r0} - bx r0 - thumb_func_end sub_8197200 - - thumb_func_start sub_8197224 -sub_8197224: @ 8197224 - push {lr} - bl RunTextPrinters - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_8197224 - - thumb_func_start AddTextPrinterParametrized -@ u16 AddTextPrinterParametrized(u8 windowId, u8 fontId, u8 *str, u8 speed, void ( *callback)(u16, struct TextPrinter *), u8 fgColor, u8 bgColor, u8 shadowColor) -AddTextPrinterParametrized: @ 8197238 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - ldr r7, [sp, 0x28] - ldr r4, [sp, 0x2C] - mov r8, r4 - ldr r5, [sp, 0x30] - ldr r6, [sp, 0x34] - lsls r3, 24 - lsrs r3, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - str r2, [sp] - mov r2, sp - movs r4, 0 - strb r0, [r2, 0x4] - mov r0, sp - strb r1, [r0, 0x5] - strb r4, [r0, 0x6] - movs r1, 0x1 - strb r1, [r0, 0x7] - strb r4, [r0, 0x8] - strb r1, [r0, 0x9] - strb r4, [r0, 0xA] - strb r4, [r0, 0xB] - mov r4, sp - ldrb r2, [r4, 0xC] - subs r1, 0x11 - adds r0, r1, 0 - ands r0, r2 - strb r0, [r4, 0xC] - mov r0, sp - mov r2, r8 - lsls r2, 4 - movs r4, 0xF - strb r2, [r0, 0xC] - mov r2, sp - ands r5, r4 - ldrb r0, [r2, 0xD] - ands r1, r0 - orrs r1, r5 - strb r1, [r2, 0xD] - mov r0, sp - lsrs r6, 20 - ands r1, r4 - orrs r1, r6 - strb r1, [r0, 0xD] - ldr r2, =gTextFlags - ldrb r1, [r2] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - mov r0, sp - adds r1, r3, 0 - adds r2, r7, 0 - bl AddTextPrinter - lsls r0, 16 - lsrs r0, 16 - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end AddTextPrinterParametrized - - thumb_func_start AddTextPrinterForMessage -@ void AddTextPrinterForMessage(u8 allowSkippingDelayWithButtonPress) -AddTextPrinterForMessage: @ 81972C4 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - ldr r3, =gTextFlags - movs r4, 0x1 - ands r0, r4 - ldrb r2, [r3] - movs r1, 0x2 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] - bl sav2_get_text_speed - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - ldr r2, =gStringVar4 - str r5, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x1 - bl AddTextPrinterParametrized - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end AddTextPrinterForMessage - - thumb_func_start AddTextPrinterForMessage_2 -@ void AddTextPrinterForMessage_2(u8 allowSkippingDelayWithButtonPress) -AddTextPrinterForMessage_2: @ 8197310 - push {r4,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - ldr r3, =gTextFlags - movs r4, 0x1 - ands r0, r4 - ldrb r2, [r3] - movs r1, 0x2 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] - bl sav2_get_text_speed - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - ldr r2, =gStringVar4 - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x1 - bl AddTextPrinterParametrized - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end AddTextPrinterForMessage_2 - - thumb_func_start AddTextPrinterWithCustomSpeedForMessage -@ void AddTextPrinterWithCustomSpeedForMessage(u8 allowSkippingDelayWithButtonPress, u8 speed) -AddTextPrinterWithCustomSpeedForMessage: @ 819735C - push {r4,r5,lr} - sub sp, 0x10 - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r3, 24 - lsrs r3, 24 - ldr r4, =gTextFlags - movs r5, 0x1 - ands r0, r5 - ldrb r2, [r4] - movs r1, 0x2 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4] - ldr r2, =gStringVar4 - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x1 - bl AddTextPrinterParametrized - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end AddTextPrinterWithCustomSpeedForMessage - - thumb_func_start sub_81973A4 -sub_81973A4: @ 81973A4 - push {lr} - movs r1, 0x80 - lsls r1, 2 - movs r0, 0 - movs r2, 0xF0 - bl copy_textbox_border_tile_patterns_to_vram - movs r1, 0x85 - lsls r1, 2 - movs r0, 0 - movs r2, 0xE0 - bl sub_809882C - pop {r0} - bx r0 - thumb_func_end sub_81973A4 - - thumb_func_start sub_81973C4 -sub_81973C4: @ 81973C4 - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r1, =sub_81975F4 - adds r0, r5, 0 - bl CallWindowFunction - adds r0, r5, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - adds r0, r5, 0 - bl PutWindowTilemap - cmp r4, 0x1 - bne _081973F2 - adds r0, r5, 0 - movs r1, 0x3 - bl CopyWindowToVram -_081973F2: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81973C4 - - thumb_func_start sub_81973FC -sub_81973FC: @ 81973FC - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r1, =sub_81974A4 - adds r0, r5, 0 - bl CallWindowFunction - adds r0, r5, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - adds r0, r5, 0 - bl PutWindowTilemap - cmp r4, 0x1 - bne _0819742A - adds r0, r5, 0 - movs r1, 0x3 - bl CopyWindowToVram -_0819742A: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81973FC - - thumb_func_start sub_8197434 -sub_8197434: @ 8197434 - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r1, =sub_8197804 - adds r0, r5, 0 - bl CallWindowFunction - adds r0, r5, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - adds r0, r5, 0 - bl ClearWindowTilemap - cmp r4, 0x1 - bne _08197462 - adds r0, r5, 0 - movs r1, 0x3 - bl CopyWindowToVram -_08197462: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8197434 - - thumb_func_start sub_819746C -sub_819746C: @ 819746C - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r1, =sub_81977BC - adds r0, r5, 0 - bl CallWindowFunction - adds r0, r5, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - adds r0, r5, 0 - bl ClearWindowTilemap - cmp r4, 0x1 - bne _0819749A - adds r0, r5, 0 - movs r1, 0x3 - bl CopyWindowToVram -_0819749A: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819746C - - thumb_func_start sub_81974A4 -sub_81974A4: @ 81974A4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - adds r4, r2, 0 - ldr r2, [sp, 0x3C] - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsls r4, 24 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x10] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x14] - movs r3, 0x85 - lsls r3, 2 - lsrs r0, r1, 24 - str r0, [sp, 0xC] - movs r2, 0xFF - lsls r2, 24 - adds r2, r1 - mov r8, r2 - lsrs r2, 24 - lsrs r0, r4, 24 - mov r9, r0 - movs r0, 0xFF - lsls r0, 24 - adds r4, r0 - lsrs r4, 24 - movs r5, 0x1 - str r5, [sp] - str r5, [sp, 0x4] - movs r6, 0xE - str r6, [sp, 0x8] - adds r0, r7, 0 - adds r1, r3, 0 - adds r3, r4, 0 - bl FillBgTilemapBufferRect - ldr r1, =0x00000215 - ldr r2, [sp, 0x10] - str r2, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0xC] - adds r3, r4, 0 - bl FillBgTilemapBufferRect - ldr r1, =0x00000216 - ldr r3, [sp, 0xC] - ldr r2, [sp, 0x10] - adds r0, r3, r2 - lsls r0, 24 - mov r10, r0 - lsrs r2, r0, 24 - str r5, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - adds r3, r4, 0 - bl FillBgTilemapBufferRect - mov r5, r9 - ldr r0, [sp, 0x14] - add r0, r9 - cmp r9, r0 - bge _08197578 - mov r3, r8 - str r3, [sp, 0x18] - movs r6, 0x1 - movs r0, 0xE - mov r8, r0 -_0819753E: - lsls r4, r5, 24 - lsrs r4, 24 - str r6, [sp] - str r6, [sp, 0x4] - mov r2, r8 - str r2, [sp, 0x8] - adds r0, r7, 0 - ldr r1, =0x00000217 - ldr r3, [sp, 0x18] - lsrs r2, r3, 24 - adds r3, r4, 0 - bl FillBgTilemapBufferRect - str r6, [sp] - str r6, [sp, 0x4] - mov r0, r8 - str r0, [sp, 0x8] - adds r0, r7, 0 - ldr r1, =0x00000219 - mov r3, r10 - lsrs r2, r3, 24 - adds r3, r4, 0 - bl FillBgTilemapBufferRect - adds r5, 0x1 - ldr r0, [sp, 0x14] - add r0, r9 - cmp r5, r0 - blt _0819753E -_08197578: - ldr r1, =0x0000021a - ldr r2, [sp, 0xC] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldr r4, [sp, 0x14] - add r4, r9 - lsls r4, 24 - lsrs r4, 24 - movs r5, 0x1 - str r5, [sp] - str r5, [sp, 0x4] - movs r6, 0xE - str r6, [sp, 0x8] - adds r0, r7, 0 - adds r3, r4, 0 - bl FillBgTilemapBufferRect - ldr r1, =0x0000021b - ldr r0, [sp, 0x10] - str r0, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0xC] - adds r3, r4, 0 - bl FillBgTilemapBufferRect - movs r1, 0x87 - lsls r1, 2 - ldr r3, [sp, 0xC] - ldr r0, [sp, 0x10] - adds r2, r3, r0 - lsls r2, 24 - lsrs r2, 24 - str r5, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - adds r3, r4, 0 - bl FillBgTilemapBufferRect - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81974A4 - - thumb_func_start sub_81975F4 -sub_81975F4: @ 81975F4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - adds r6, r0, 0 - adds r5, r2, 0 - mov r8, r3 - ldr r2, [sp, 0x44] - lsls r6, 24 - lsrs r6, 24 - lsls r0, r1, 24 - lsls r5, 24 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r1, r2, 24 - lsrs r1, 24 - str r1, [sp, 0x10] - ldr r1, =0x00000201 - lsrs r2, r0, 24 - str r2, [sp, 0xC] - movs r3, 0xFE - lsls r3, 24 - adds r2, r0, r3 - lsrs r2, 24 - str r2, [sp, 0x14] - lsrs r0, r5, 24 - mov r10, r0 - movs r2, 0xFF - lsls r2, 24 - adds r5, r2 - lsrs r5, 24 - movs r4, 0x1 - str r4, [sp] - str r4, [sp, 0x4] - movs r3, 0xF - mov r9, r3 - str r3, [sp, 0x8] - adds r0, r6, 0 - ldr r2, [sp, 0x14] - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, =0x00000203 - ldr r0, [sp, 0xC] - subs r0, 0x1 - lsls r2, r0, 24 - lsrs r2, 24 - str r2, [sp, 0x18] - str r4, [sp] - str r4, [sp, 0x4] - mov r0, r9 - str r0, [sp, 0x8] - adds r0, r6, 0 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - movs r1, 0x81 - lsls r1, 2 - mov r0, r8 - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x1C] - str r0, [sp] - str r4, [sp, 0x4] - mov r2, r9 - str r2, [sp, 0x8] - adds r0, r6, 0 - ldr r2, [sp, 0xC] - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, =0x00000205 - ldr r7, [sp, 0xC] - add r7, r8 - subs r0, r7, 0x1 - lsls r2, r0, 24 - lsrs r2, 24 - str r2, [sp, 0x20] - str r4, [sp] - str r4, [sp, 0x4] - mov r3, r9 - str r3, [sp, 0x8] - adds r0, r6, 0 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, =0x00000206 - lsls r2, r7, 24 - lsrs r7, r2, 24 - str r4, [sp] - str r4, [sp, 0x4] - mov r0, r9 - str r0, [sp, 0x8] - adds r0, r6, 0 - adds r2, r7, 0 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, =0x00000207 - str r4, [sp] - movs r5, 0x5 - str r5, [sp, 0x4] - mov r2, r9 - str r2, [sp, 0x8] - adds r0, r6, 0 - ldr r2, [sp, 0x14] - mov r3, r10 - bl FillBgTilemapBufferRect - ldr r1, =0x00000209 - add r8, r4 - mov r3, r8 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp] - str r5, [sp, 0x4] - mov r0, r9 - str r0, [sp, 0x8] - adds r0, r6, 0 - ldr r2, [sp, 0x18] - mov r3, r10 - bl FillBgTilemapBufferRect - ldr r1, =0x0000020a - str r4, [sp] - str r5, [sp, 0x4] - mov r2, r9 - str r2, [sp, 0x8] - adds r0, r6, 0 - adds r2, r7, 0 - mov r3, r10 - bl FillBgTilemapBufferRect - ldr r1, =0x00000a01 - ldr r3, [sp, 0x10] - add r10, r3 - mov r0, r10 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - str r4, [sp] - str r4, [sp, 0x4] - mov r2, r9 - str r2, [sp, 0x8] - adds r0, r6, 0 - ldr r2, [sp, 0x14] - mov r3, r10 - bl FillBgTilemapBufferRect - ldr r1, =0x00000a03 - str r4, [sp] - str r4, [sp, 0x4] - mov r3, r9 - str r3, [sp, 0x8] - adds r0, r6, 0 - ldr r2, [sp, 0x18] - mov r3, r10 - bl FillBgTilemapBufferRect - ldr r1, =0x00000a04 - ldr r0, [sp, 0x1C] - str r0, [sp] - str r4, [sp, 0x4] - mov r2, r9 - str r2, [sp, 0x8] - adds r0, r6, 0 - ldr r2, [sp, 0xC] - mov r3, r10 - bl FillBgTilemapBufferRect - ldr r1, =0x00000a05 - str r4, [sp] - str r4, [sp, 0x4] - mov r3, r9 - str r3, [sp, 0x8] - adds r0, r6, 0 - ldr r2, [sp, 0x20] - mov r3, r10 - bl FillBgTilemapBufferRect - ldr r1, =0x00000a06 - str r4, [sp] - str r4, [sp, 0x4] - mov r0, r9 - str r0, [sp, 0x8] - adds r0, r6, 0 - adds r2, r7, 0 - mov r3, r10 - bl FillBgTilemapBufferRect - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81975F4 - - thumb_func_start sub_81977BC -sub_81977BC: @ 81977BC - push {r4,r5,lr} - sub sp, 0xC - adds r4, r1, 0 - adds r5, r2, 0 - ldr r1, [sp, 0x18] - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsls r5, 24 - lsls r3, 24 - lsls r1, 24 - movs r2, 0xFF - lsls r2, 24 - adds r4, r2 - lsrs r4, 24 - adds r5, r2 - lsrs r5, 24 - movs r2, 0x80 - lsls r2, 18 - adds r3, r2 - lsrs r3, 24 - str r3, [sp] - adds r1, r2 - lsrs r1, 24 - str r1, [sp, 0x4] - movs r1, 0xE - str r1, [sp, 0x8] - movs r1, 0 - adds r2, r4, 0 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81977BC - - thumb_func_start sub_8197804 -sub_8197804: @ 8197804 - push {r4,r5,lr} - sub sp, 0xC - adds r4, r1, 0 - adds r5, r2, 0 - ldr r1, [sp, 0x18] - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsls r5, 24 - lsls r3, 24 - lsls r1, 24 - movs r2, 0xFD - lsls r2, 24 - adds r4, r2 - lsrs r4, 24 - movs r2, 0xFF - lsls r2, 24 - adds r5, r2 - lsrs r5, 24 - movs r2, 0xC0 - lsls r2, 19 - adds r3, r2 - lsrs r3, 24 - str r3, [sp] - movs r2, 0x80 - lsls r2, 18 - adds r1, r2 - lsrs r1, 24 - str r1, [sp, 0x4] - movs r1, 0xE - str r1, [sp, 0x8] - movs r1, 0 - adds r2, r4, 0 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8197804 - - thumb_func_start SetStandardWindowBorderStyle -@ void SetStandardWindowBorderStyle(u8 windowId, bool copyToVram) -SetStandardWindowBorderStyle: @ 8197854 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0x85 - lsls r2, 2 - movs r3, 0xE - bl SetWindowBorderStyle - pop {r0} - bx r0 - thumb_func_end SetStandardWindowBorderStyle - - thumb_func_start sub_819786C -sub_819786C: @ 819786C - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - movs r6, 0x80 - lsls r6, 2 - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0xF0 - bl copy_textbox_border_tile_patterns_to_vram - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - movs r3, 0xF - bl sub_8197B1C - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_819786C - - thumb_func_start sub_819789C -sub_819789C: @ 819789C - push {lr} - ldr r0, =gUnknown_0860F074 - movs r1, 0xE0 - movs r2, 0x14 - bl LoadPalette - pop {r0} - bx r0 - .pool - thumb_func_end sub_819789C - - thumb_func_start sub_81978B0 -sub_81978B0: @ 81978B0 - push {lr} - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r0, =gUnknown_0860F074 - movs r2, 0x14 - bl LoadPalette - pop {r0} - bx r0 - .pool - thumb_func_end sub_81978B0 - - thumb_func_start sub_81978C8 -sub_81978C8: @ 81978C8 - ldr r0, =gUnknown_0860F074 - bx lr - .pool - thumb_func_end sub_81978C8 - - thumb_func_start sub_81978D0 -sub_81978D0: @ 81978D0 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _081978DC - movs r1, 0 -_081978DC: - ldr r0, =gUnknown_0860F074 - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - pop {r1} - bx r1 - .pool - thumb_func_end sub_81978D0 - - thumb_func_start DisplayItemMessageOnField -@ void DisplayItemMessageOnField(u8 taskId, u8 *str, void ( *callback)(u8 taskId)) -DisplayItemMessageOnField: @ 81978EC - push {r4-r6,lr} - sub sp, 0x10 - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_81973A4 - bl sav2_get_text_speed - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 2 - movs r1, 0x1 - str r1, [sp] - str r0, [sp, 0x4] - str r5, [sp, 0x8] - str r6, [sp, 0xC] - adds r0, r4, 0 - movs r1, 0 - movs r3, 0xF - bl DisplayMessageAndContinueTask - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end DisplayItemMessageOnField - - thumb_func_start sub_8197930 -sub_8197930: @ 8197930 - push {lr} - ldr r0, =gUnknown_0860F0A8 - movs r1, 0x85 - lsls r1, 2 - movs r2, 0xE - movs r3, 0 - bl CreateYesNoMenu - pop {r0} - bx r0 - .pool - thumb_func_end sub_8197930 - - thumb_func_start sub_8197948 -sub_8197948: @ 8197948 - push {lr} - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - ldr r0, =gUnknown_0860F0A8 - movs r1, 0x85 - lsls r1, 2 - movs r2, 0xE - bl CreateYesNoMenu - pop {r0} - bx r0 - .pool - thumb_func_end sub_8197948 - - thumb_func_start sub_8197964 -sub_8197964: @ 8197964 - push {lr} - ldr r0, =gTextFlags - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _08197988 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x14] - lsls r0, 29 - lsrs r0, 29 - b _0819798A - .pool -_08197988: - movs r0, 0x1 -_0819798A: - pop {r1} - bx r1 - thumb_func_end sub_8197964 - - thumb_func_start sav2_get_text_speed -sav2_get_text_speed: @ 8197990 - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldrb r1, [r2, 0x14] - lsls r0, r1, 29 - lsrs r0, 29 - cmp r0, 0x2 - bls _081979AC - movs r0, 0x8 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x14] -_081979AC: - bl sub_8197964 - ldr r1, =gUnknown_0860F094 - adds r0, r1 - ldrb r0, [r0] - pop {r1} - bx r1 - .pool - thumb_func_end sav2_get_text_speed - - thumb_func_start sub_81979C4 -sub_81979C4: @ 81979C4 - push {r4,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r1, r0, 24 - ldr r4, =gUnknown_0203CD8C - ldrb r0, [r4] - cmp r0, 0xFF - bne _081979F6 - lsls r0, r1, 25 - movs r1, 0x80 - lsls r1, 18 - adds r0, r1 - lsrs r0, 24 - str r0, [sp] - movs r0, 0xF - str r0, [sp, 0x4] - ldr r0, =0x00000139 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0x16 - movs r2, 0x1 - movs r3, 0x7 - bl sub_8198AA4 - strb r0, [r4] -_081979F6: - ldrb r0, [r4] - add sp, 0xC - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81979C4 - - thumb_func_start get_start_menu_window_id_maybe -get_start_menu_window_id_maybe: @ 8197A08 - ldr r0, =gUnknown_0203CD8C - ldrb r0, [r0] - bx lr - .pool - thumb_func_end get_start_menu_window_id_maybe - - thumb_func_start remove_start_menu_window_maybe -remove_start_menu_window_maybe: @ 8197A14 - push {r4,lr} - ldr r4, =gUnknown_0203CD8C - ldrb r0, [r4] - cmp r0, 0xFF - beq _08197A26 - bl RemoveWindow - movs r0, 0xFF - strb r0, [r4] -_08197A26: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end remove_start_menu_window_maybe - - thumb_func_start sub_8197A30 -sub_8197A30: @ 8197A30 - movs r0, 0x80 - lsls r0, 2 - bx lr - thumb_func_end sub_8197A30 - - thumb_func_start sub_8197A38 -sub_8197A38: @ 8197A38 - movs r0, 0x85 - lsls r0, 2 - bx lr - thumb_func_end sub_8197A38 - - thumb_func_start AddMapNamePopUpWindow -AddMapNamePopUpWindow: @ 8197A40 - push {r4,lr} - sub sp, 0xC - ldr r4, =gUnknown_0203CD8D - ldrb r0, [r4] - cmp r0, 0xFF - bne _08197A66 - movs r0, 0x3 - str r0, [sp] - movs r0, 0xE - str r0, [sp, 0x4] - adds r0, 0xF9 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0xA - bl sub_8198AA4 - strb r0, [r4] -_08197A66: - ldrb r0, [r4] - add sp, 0xC - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end AddMapNamePopUpWindow - - thumb_func_start GetMapNamePopUpWindowId -GetMapNamePopUpWindowId: @ 8197A74 - ldr r0, =gUnknown_0203CD8D - ldrb r0, [r0] - bx lr - .pool - thumb_func_end GetMapNamePopUpWindowId - - thumb_func_start RemoveMapNamePopUpWindow -RemoveMapNamePopUpWindow: @ 8197A80 - push {r4,lr} - ldr r4, =gUnknown_0203CD8D - ldrb r0, [r4] - cmp r0, 0xFF - beq _08197A92 - bl RemoveWindow - movs r0, 0xFF - strb r0, [r4] -_08197A92: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end RemoveMapNamePopUpWindow - - thumb_func_start AddTextPrinterWithCallbackForMessage -@ void AddTextPrinterWithCallbackForMessage(u8 allowSkippingDelayWithButtonPress, void ( *callback)(u16, struct TextPrinter *)) -AddTextPrinterWithCallbackForMessage: @ 8197A9C - push {r4,r5,lr} - sub sp, 0x10 - adds r5, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r3, =gTextFlags - movs r4, 0x1 - ands r0, r4 - ldrb r2, [r3] - movs r1, 0x2 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] - bl sav2_get_text_speed - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - ldr r2, =gStringVar4 - str r5, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x1 - bl AddTextPrinterParametrized - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end AddTextPrinterWithCallbackForMessage - - thumb_func_start sub_8197AE8 -sub_8197AE8: @ 8197AE8 - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x20 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect - cmp r4, 0x1 - bne _08197B12 - movs r0, 0 - bl CopyBgTilemapBufferToVram -_08197B12: - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8197AE8 - - thumb_func_start sub_8197B1C -sub_8197B1C: @ 8197B1C - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_0203CD9C - strh r2, [r0] - ldr r0, =gUnknown_0203CD9E - strb r3, [r0] - ldr r1, =sub_8197BB4 - adds r0, r5, 0 - bl CallWindowFunction - adds r0, r5, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - adds r0, r5, 0 - bl PutWindowTilemap - cmp r4, 0x1 - bne _08197B52 - adds r0, r5, 0 - movs r1, 0x3 - bl CopyWindowToVram -_08197B52: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8197B1C - - thumb_func_start sub_8197B64 -sub_8197B64: @ 8197B64 - push {r4-r6,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_0203CD9C - strh r2, [r0] - ldr r5, =gUnknown_0203CD9E - adds r0, r6, 0 - movs r1, 0x5 - bl GetWindowAttribute - strb r0, [r5] - ldr r1, =sub_8197BB4 - adds r0, r6, 0 - bl CallWindowFunction - adds r0, r6, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - adds r0, r6, 0 - bl PutWindowTilemap - cmp r4, 0x1 - bne _08197BA2 - adds r0, r6, 0 - movs r1, 0x3 - bl CopyWindowToVram -_08197BA2: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8197B64 - - thumb_func_start sub_8197BB4 -sub_8197BB4: @ 8197BB4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - mov r8, r0 - adds r5, r2, 0 - adds r6, r3, 0 - ldr r2, [sp, 0x44] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r0, r1, 24 - lsls r5, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r1, r2, 24 - lsrs r1, 24 - str r1, [sp, 0x10] - ldr r2, =gUnknown_0203CD9C - ldrh r1, [r2] - adds r1, 0x1 - lsls r1, 16 - lsrs r1, 16 - lsrs r3, r0, 24 - str r3, [sp, 0xC] - movs r3, 0xFE - lsls r3, 24 - adds r2, r0, r3 - lsrs r2, 24 - str r2, [sp, 0x14] - lsrs r0, r5, 24 - mov r9, r0 - movs r2, 0xFF - lsls r2, 24 - adds r5, r2 - lsrs r5, 24 - movs r4, 0x1 - str r4, [sp] - str r4, [sp, 0x4] - ldr r3, =gUnknown_0203CD9E - mov r10, r3 - ldrb r0, [r3] - str r0, [sp, 0x8] - mov r0, r8 - ldr r2, [sp, 0x14] - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r0, =gUnknown_0203CD9C - ldrh r1, [r0] - adds r1, 0x3 - lsls r1, 16 - lsrs r1, 16 - ldr r0, [sp, 0xC] - subs r0, 0x1 - lsls r2, r0, 24 - lsrs r2, 24 - str r2, [sp, 0x18] - str r4, [sp] - str r4, [sp, 0x4] - mov r2, r10 - ldrb r0, [r2] - str r0, [sp, 0x8] - mov r0, r8 - ldr r2, [sp, 0x18] - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r3, =gUnknown_0203CD9C - ldrh r1, [r3] - adds r1, 0x4 - lsls r1, 16 - lsrs r1, 16 - subs r0, r6, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x1C] - str r0, [sp] - str r4, [sp, 0x4] - mov r2, r10 - ldrb r0, [r2] - str r0, [sp, 0x8] - mov r0, r8 - ldr r2, [sp, 0xC] - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r3, =gUnknown_0203CD9C - ldrh r1, [r3] - adds r1, 0x5 - lsls r1, 16 - lsrs r1, 16 - ldr r0, [sp, 0xC] - adds r7, r0, r6 - subs r0, r7, 0x1 - lsls r2, r0, 24 - lsrs r2, 24 - str r2, [sp, 0x20] - str r4, [sp] - str r4, [sp, 0x4] - mov r2, r10 - ldrb r0, [r2] - str r0, [sp, 0x8] - mov r0, r8 - ldr r2, [sp, 0x20] - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r3, =gUnknown_0203CD9C - ldrh r1, [r3] - adds r1, 0x6 - lsls r1, 16 - lsrs r1, 16 - lsls r2, r7, 24 - lsrs r7, r2, 24 - str r4, [sp] - str r4, [sp, 0x4] - mov r2, r10 - ldrb r0, [r2] - str r0, [sp, 0x8] - mov r0, r8 - adds r2, r7, 0 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r3, =gUnknown_0203CD9C - ldrh r1, [r3] - adds r1, 0x7 - lsls r1, 16 - lsrs r1, 16 - str r4, [sp] - movs r5, 0x5 - str r5, [sp, 0x4] - mov r2, r10 - ldrb r0, [r2] - str r0, [sp, 0x8] - mov r0, r8 - ldr r2, [sp, 0x14] - mov r3, r9 - bl FillBgTilemapBufferRect - ldr r3, =gUnknown_0203CD9C - ldrh r1, [r3] - adds r1, 0x9 - lsls r1, 16 - lsrs r1, 16 - adds r6, 0x1 - lsls r6, 24 - lsrs r6, 24 - str r6, [sp] - str r5, [sp, 0x4] - mov r2, r10 - ldrb r0, [r2] - str r0, [sp, 0x8] - mov r0, r8 - ldr r2, [sp, 0x18] - mov r3, r9 - bl FillBgTilemapBufferRect - ldr r3, =gUnknown_0203CD9C - ldrh r1, [r3] - adds r1, 0xA - lsls r1, 16 - lsrs r1, 16 - str r4, [sp] - str r5, [sp, 0x4] - mov r2, r10 - ldrb r0, [r2] - str r0, [sp, 0x8] - mov r0, r8 - adds r2, r7, 0 - mov r3, r9 - bl FillBgTilemapBufferRect - ldr r3, =0x00000801 - adds r1, r3, 0 - ldr r0, =gUnknown_0203CD9C - ldrh r0, [r0] - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - ldr r2, [sp, 0x10] - add r9, r2 - mov r3, r9 - lsls r3, 24 - lsrs r3, 24 - mov r9, r3 - str r4, [sp] - str r4, [sp, 0x4] - mov r2, r10 - ldrb r0, [r2] - str r0, [sp, 0x8] - mov r0, r8 - ldr r2, [sp, 0x14] - bl FillBgTilemapBufferRect - ldr r3, =0x00000803 - adds r1, r3, 0 - ldr r0, =gUnknown_0203CD9C - ldrh r0, [r0] - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - str r4, [sp] - str r4, [sp, 0x4] - mov r2, r10 - ldrb r0, [r2] - str r0, [sp, 0x8] - mov r0, r8 - ldr r2, [sp, 0x18] - mov r3, r9 - bl FillBgTilemapBufferRect - ldr r3, =0x00000804 - adds r1, r3, 0 - ldr r0, =gUnknown_0203CD9C - ldrh r0, [r0] - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - ldr r2, [sp, 0x1C] - str r2, [sp] - str r4, [sp, 0x4] - mov r3, r10 - ldrb r0, [r3] - str r0, [sp, 0x8] - mov r0, r8 - ldr r2, [sp, 0xC] - mov r3, r9 - bl FillBgTilemapBufferRect - ldr r0, =0x00000805 - adds r1, r0, 0 - ldr r2, =gUnknown_0203CD9C - ldrh r2, [r2] - adds r1, r2 - lsls r1, 16 - lsrs r1, 16 - str r4, [sp] - str r4, [sp, 0x4] - mov r3, r10 - ldrb r0, [r3] - str r0, [sp, 0x8] - mov r0, r8 - ldr r2, [sp, 0x20] - mov r3, r9 - bl FillBgTilemapBufferRect - ldr r0, =0x00000806 - adds r1, r0, 0 - ldr r2, =gUnknown_0203CD9C - ldrh r2, [r2] - adds r1, r2 - lsls r1, 16 - lsrs r1, 16 - str r4, [sp] - str r4, [sp, 0x4] - mov r3, r10 - ldrb r0, [r3] - str r0, [sp, 0x8] - mov r0, r8 - adds r2, r7, 0 - mov r3, r9 - bl FillBgTilemapBufferRect - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8197BB4 - - thumb_func_start sub_8197DF8 -sub_8197DF8: @ 8197DF8 - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r1, =sub_8197E30 - adds r0, r5, 0 - bl CallWindowFunction - adds r0, r5, 0 - movs r1, 0 - bl FillWindowPixelBuffer - adds r0, r5, 0 - bl ClearWindowTilemap - cmp r4, 0x1 - bne _08197E26 - adds r0, r5, 0 - movs r1, 0x3 - bl CopyWindowToVram -_08197E26: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8197DF8 - - thumb_func_start sub_8197E30 -sub_8197E30: @ 8197E30 - push {r4,r5,lr} - sub sp, 0xC - adds r4, r1, 0 - adds r5, r2, 0 - ldr r1, [sp, 0x18] - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsls r5, 24 - lsls r3, 24 - lsls r1, 24 - movs r2, 0xFD - lsls r2, 24 - adds r4, r2 - lsrs r4, 24 - movs r2, 0xFF - lsls r2, 24 - adds r5, r2 - lsrs r5, 24 - movs r2, 0xC0 - lsls r2, 19 - adds r3, r2 - lsrs r3, 24 - str r3, [sp] - movs r2, 0x80 - lsls r2, 18 - adds r1, r2 - lsrs r1, 24 - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - adds r2, r4, 0 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8197E30 - - thumb_func_start SetWindowBorderStyle -@ void SetWindowBorderStyle(u8 windowId, bool copyToVram, s16 tileStart, s8 palette) -SetWindowBorderStyle: @ 8197E80 - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_0203CD9C - strh r2, [r0] - ldr r0, =gUnknown_0203CD9E - strb r3, [r0] - ldr r1, =DrawWindowBorder - adds r0, r5, 0 - bl CallWindowFunction - adds r0, r5, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - adds r0, r5, 0 - bl PutWindowTilemap - cmp r4, 0x1 - bne _08197EB6 - adds r0, r5, 0 - movs r1, 0x3 - bl CopyWindowToVram -_08197EB6: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end SetWindowBorderStyle - - thumb_func_start sub_8197EC8 -sub_8197EC8: @ 8197EC8 - push {r4-r6,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_0203CD9C - strh r2, [r0] - ldr r5, =gUnknown_0203CD9E - adds r0, r6, 0 - movs r1, 0x5 - bl GetWindowAttribute - strb r0, [r5] - ldr r1, =DrawWindowBorder - adds r0, r6, 0 - bl CallWindowFunction - adds r0, r6, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - adds r0, r6, 0 - bl PutWindowTilemap - cmp r4, 0x1 - bne _08197F06 - adds r0, r6, 0 - movs r1, 0x3 - bl CopyWindowToVram -_08197F06: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8197EC8 - - thumb_func_start DrawWindowBorder -DrawWindowBorder: @ 8197F18 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - mov r9, r0 - adds r6, r1, 0 - adds r4, r2, 0 - ldr r0, [sp, 0x38] - mov r1, r9 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r6, 24 - lsls r4, 24 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x10] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x14] - ldr r2, =gUnknown_0203CD9C - ldrh r1, [r2] - lsrs r0, r6, 24 - str r0, [sp, 0xC] - movs r2, 0xFF - lsls r2, 24 - adds r6, r2 - lsrs r6, 24 - lsrs r0, r4, 24 - mov r8, r0 - adds r4, r2 - lsrs r4, 24 - movs r5, 0x1 - str r5, [sp] - str r5, [sp, 0x4] - ldr r7, =gUnknown_0203CD9E - ldrb r0, [r7] - str r0, [sp, 0x8] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl FillBgTilemapBufferRect - ldr r2, =gUnknown_0203CD9C - ldrh r1, [r2] - adds r1, 0x1 - lsls r1, 16 - lsrs r1, 16 - ldr r0, [sp, 0x10] - str r0, [sp] - str r5, [sp, 0x4] - ldrb r0, [r7] - str r0, [sp, 0x8] - mov r0, r9 - ldr r2, [sp, 0xC] - adds r3, r4, 0 - bl FillBgTilemapBufferRect - ldr r2, =gUnknown_0203CD9C - ldrh r1, [r2] - adds r1, 0x2 - lsls r1, 16 - lsrs r1, 16 - ldr r0, [sp, 0xC] - ldr r2, [sp, 0x10] - adds r0, r2 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - str r5, [sp] - str r5, [sp, 0x4] - ldrb r0, [r7] - str r0, [sp, 0x8] - mov r0, r9 - mov r2, r10 - adds r3, r4, 0 - bl FillBgTilemapBufferRect - ldr r0, =gUnknown_0203CD9C - ldrh r1, [r0] - adds r1, 0x3 - lsls r1, 16 - lsrs r1, 16 - str r5, [sp] - ldr r2, [sp, 0x14] - str r2, [sp, 0x4] - ldrb r0, [r7] - str r0, [sp, 0x8] - mov r0, r9 - adds r2, r6, 0 - mov r3, r8 - bl FillBgTilemapBufferRect - ldr r0, =gUnknown_0203CD9C - ldrh r1, [r0] - adds r1, 0x5 - lsls r1, 16 - lsrs r1, 16 - str r5, [sp] - ldr r2, [sp, 0x14] - str r2, [sp, 0x4] - ldrb r0, [r7] - str r0, [sp, 0x8] - mov r0, r9 - mov r2, r10 - mov r3, r8 - bl FillBgTilemapBufferRect - ldr r0, =gUnknown_0203CD9C - ldrh r1, [r0] - adds r1, 0x6 - lsls r1, 16 - lsrs r1, 16 - ldr r2, [sp, 0x14] - add r8, r2 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - str r5, [sp] - str r5, [sp, 0x4] - ldrb r0, [r7] - str r0, [sp, 0x8] - mov r0, r9 - adds r2, r6, 0 - mov r3, r8 - bl FillBgTilemapBufferRect - ldr r2, =gUnknown_0203CD9C - ldrh r1, [r2] - adds r1, 0x7 - lsls r1, 16 - lsrs r1, 16 - ldr r0, [sp, 0x10] - str r0, [sp] - str r5, [sp, 0x4] - ldrb r0, [r7] - str r0, [sp, 0x8] - mov r0, r9 - ldr r2, [sp, 0xC] - mov r3, r8 - bl FillBgTilemapBufferRect - ldr r2, =gUnknown_0203CD9C - ldrh r1, [r2] - adds r1, 0x8 - lsls r1, 16 - lsrs r1, 16 - str r5, [sp] - str r5, [sp, 0x4] - ldrb r0, [r7] - str r0, [sp, 0x8] - mov r0, r9 - mov r2, r10 - mov r3, r8 - bl FillBgTilemapBufferRect - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end DrawWindowBorder - - thumb_func_start sub_8198070 -sub_8198070: @ 8198070 - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r1, =sub_81980A8 - adds r0, r5, 0 - bl CallWindowFunction - adds r0, r5, 0 - movs r1, 0 - bl FillWindowPixelBuffer - adds r0, r5, 0 - bl ClearWindowTilemap - cmp r4, 0x1 - bne _0819809E - adds r0, r5, 0 - movs r1, 0x3 - bl CopyWindowToVram -_0819809E: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8198070 - - thumb_func_start sub_81980A8 -sub_81980A8: @ 81980A8 - push {r4,r5,lr} - sub sp, 0xC - adds r4, r1, 0 - adds r5, r2, 0 - ldr r1, [sp, 0x18] - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsls r5, 24 - lsls r3, 24 - lsls r1, 24 - movs r2, 0xFF - lsls r2, 24 - adds r4, r2 - lsrs r4, 24 - adds r5, r2 - lsrs r5, 24 - movs r2, 0x80 - lsls r2, 18 - adds r3, r2 - lsrs r3, 24 - str r3, [sp] - adds r1, r2 - lsrs r1, 24 - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - adds r2, r4, 0 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81980A8 - - thumb_func_start sub_81980F0 -sub_81980F0: @ 81980F0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - ldr r4, [sp, 0x20] - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - lsls r3, 24 - lsrs r5, r3, 24 - lsls r4, 16 - lsrs r4, 16 - mov r0, sp - movs r1, 0 - movs r2, 0x8 - bl memset - cmp r6, 0x3 - bls _08198126 - movs r1, 0 - mov r0, sp - strb r1, [r0] - b _0819812A -_08198126: - mov r0, sp - strb r6, [r0] -_0819812A: - mov r1, sp - mov r0, r8 - strb r0, [r1, 0x2] - movs r0, 0x2 - strb r0, [r1, 0x4] - movs r0, 0x1E - subs r0, r7 - strb r0, [r1, 0x1] - strb r7, [r1, 0x3] - strb r5, [r1, 0x5] - strh r4, [r1, 0x6] - ldr r4, =gUnknown_0203CDA0 - mov r0, sp - bl AddWindow - strb r0, [r4] - cmp r5, 0xF - bls _08198158 - movs r5, 0xF0 - b _0819815C - .pool -_08198158: - lsls r0, r5, 28 - lsrs r5, r0, 24 -_0819815C: - ldr r0, =gUnknown_0860F0B0 - adds r1, r5, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, =gUnknown_0203CDA0 - ldrb r0, [r0] - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81980F0 - - thumb_func_start sub_8198180 -sub_8198180: @ 8198180 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - adds r6, r0, 0 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - ldr r5, =gUnknown_0203CDA0 - ldrb r0, [r5] - cmp r0, 0xFF - beq _081981EE - bl PutWindowTilemap - ldrb r0, [r5] - movs r1, 0xFF - bl FillWindowPixelBuffer - movs r0, 0 - adds r1, r6, 0 - movs r2, 0 - bl GetStringWidth - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r5] - movs r1, 0x1 - bl GetWindowAttribute - movs r2, 0xEC - subs r2, r7 - lsls r0, 3 - subs r2, r0 - subs r2, r4 - lsls r2, 24 - lsrs r2, 24 - ldrb r0, [r5] - ldr r1, =gUnknown_0860F0D0 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - str r6, [sp, 0x8] - movs r3, 0x1 - bl box_print - mov r0, r8 - cmp r0, 0 - beq _081981EE - ldrb r0, [r5] - movs r1, 0x3 - bl CopyWindowToVram -_081981EE: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8198180 - - thumb_func_start sub_8198204 -sub_8198204: @ 8198204 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - mov r10, r0 - adds r6, r1, 0 - ldr r0, [sp, 0x38] - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r4, 0 - ldr r0, =gUnknown_0203CDA0 - ldrb r1, [r0] - adds r7, r0, 0 - cmp r1, 0xFF - beq _081982C8 - cmp r2, 0 - beq _08198244 - add r0, sp, 0x14 - strb r4, [r0] - adds r1, r0, 0 - b _0819824A - .pool -_08198244: - add r1, sp, 0x14 - movs r0, 0xF - strb r0, [r1] -_0819824A: - movs r0, 0x1 - strb r0, [r1, 0x1] - movs r0, 0x2 - strb r0, [r1, 0x2] - adds r5, r7, 0 - ldrb r0, [r5] - bl PutWindowTilemap - ldrb r0, [r5] - movs r1, 0xFF - bl FillWindowPixelBuffer - cmp r6, 0 - beq _0819829E - movs r0, 0 - adds r1, r6, 0 - movs r2, 0 - bl GetStringWidth - lsls r0, 16 - lsrs r4, r0, 16 - ldrb r0, [r5] - movs r1, 0x1 - bl GetWindowAttribute - movs r2, 0xEC - mov r1, r8 - subs r2, r1 - lsls r0, 3 - subs r2, r0 - subs r2, r4 - lsls r2, 24 - lsrs r2, 24 - ldrb r0, [r5] - add r1, sp, 0x14 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - str r6, [sp, 0x8] - movs r3, 0x1 - bl box_print -_0819829E: - ldrb r0, [r7] - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - add r2, sp, 0x14 - str r2, [sp, 0x8] - str r1, [sp, 0xC] - mov r1, r10 - str r1, [sp, 0x10] - movs r1, 0x1 - movs r2, 0x4 - movs r3, 0x1 - bl AddTextPrinterParametrized2 - mov r2, r9 - cmp r2, 0 - beq _081982C8 - ldrb r0, [r7] - movs r1, 0x3 - bl CopyWindowToVram -_081982C8: - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8198204 - - thumb_func_start sub_81982D8 -sub_81982D8: @ 81982D8 - push {lr} - ldr r1, =gUnknown_0203CDA0 - ldrb r0, [r1] - cmp r0, 0xFF - beq _081982E8 - movs r1, 0x3 - bl CopyWindowToVram -_081982E8: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81982D8 - - thumb_func_start sub_81982F0 -sub_81982F0: @ 81982F0 - push {r4,lr} - ldr r4, =gUnknown_0203CDA0 - ldrb r0, [r4] - cmp r0, 0xFF - beq _08198308 - movs r1, 0xFF - bl FillWindowPixelBuffer - ldrb r0, [r4] - movs r1, 0x3 - bl CopyWindowToVram -_08198308: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81982F0 - - thumb_func_start sub_8198314 -sub_8198314: @ 8198314 - push {r4,lr} - ldr r4, =gUnknown_0203CDA0 - ldrb r0, [r4] - cmp r0, 0xFF - beq _0819833C - movs r1, 0 - bl FillWindowPixelBuffer - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - movs r1, 0x3 - bl CopyWindowToVram - ldrb r0, [r4] - bl RemoveWindow - movs r0, 0xFF - strb r0, [r4] -_0819833C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8198314 - - thumb_func_start sub_8198348 -sub_8198348: @ 8198348 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, [sp, 0x18] - mov r8, r4 - ldr r4, [sp, 0x1C] - ldr r5, [sp, 0x20] - ldr r6, [sp, 0x24] - mov r12, r6 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r7, r5, 24 - ldr r5, =gUnknown_0203CD90 - movs r6, 0 - strb r2, [r5] - strb r3, [r5, 0x1] - strb r6, [r5, 0x3] - subs r4, 0x1 - strb r4, [r5, 0x4] - strb r0, [r5, 0x5] - strb r1, [r5, 0x6] - mov r0, r8 - strb r0, [r5, 0x8] - mov r4, r12 - strb r4, [r5, 0xB] - cmp r7, 0 - blt _08198388 - movs r0, 0x4 - ldrsb r0, [r5, r0] - cmp r7, r0 - ble _08198390 -_08198388: - strb r6, [r5, 0x2] - b _08198392 - .pool -_08198390: - strb r7, [r5, 0x2] -_08198392: - movs r0, 0 - bl MoveMenuCursor - ldr r0, =gUnknown_0203CD90 - ldrb r0, [r0, 0x2] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8198348 - - thumb_func_start sub_81983AC -sub_81983AC: @ 81983AC - push {r4-r6,lr} - sub sp, 0x10 - ldr r4, [sp, 0x20] - ldr r5, [sp, 0x24] - ldr r6, [sp, 0x28] - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - str r4, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - movs r4, 0 - str r4, [sp, 0xC] - bl sub_8198348 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x10 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81983AC - - thumb_func_start sub_81983EC -sub_81983EC: @ 81983EC - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x14 - mov r8, r0 - adds r6, r1, 0 - ldr r4, [sp, 0x28] - ldr r5, [sp, 0x2C] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r6, 24 - lsrs r6, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - adds r0, r6, 0 - movs r1, 0x1 - str r2, [sp, 0xC] - str r3, [sp, 0x10] - bl GetMenuCursorDimensionByFont - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - mov r0, r8 - adds r1, r6, 0 - ldr r2, [sp, 0xC] - ldr r3, [sp, 0x10] - bl sub_81983AC - lsls r0, 24 - lsrs r0, 24 - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81983EC - - thumb_func_start RedrawMenuCursor -@ void RedrawMenuCursor(s8 oldPos, s8 newPos) -RedrawMenuCursor: @ 8198448 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0xC - adds r6, r0, 0 - mov r8, r1 - lsls r6, 24 - lsrs r6, 24 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r5, =gUnknown_0203CD90 - ldrb r0, [r5, 0x6] - movs r1, 0 - bl GetMenuCursorDimensionByFont - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r5, 0x6] - movs r1, 0x1 - bl GetMenuCursorDimensionByFont - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r5, 0x5] - mov r9, r1 - ldrb r2, [r5] - ldrb r1, [r5, 0x8] - adds r3, r1, 0 - muls r3, r6 - ldrb r6, [r5, 0x1] - adds r3, r6 - lsls r3, 16 - lsrs r3, 16 - str r4, [sp] - str r0, [sp, 0x4] - mov r0, r9 - movs r1, 0x11 - bl FillWindowPixelRect - ldrb r0, [r5, 0x5] - ldrb r1, [r5, 0x6] - ldr r2, =gUnknown_085EE498 - ldrb r3, [r5] - ldrb r4, [r5, 0x8] - mov r6, r8 - muls r6, r4 - adds r4, r6, 0 - ldrb r5, [r5, 0x1] - adds r4, r5 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - bl Print - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end RedrawMenuCursor - - thumb_func_start MoveMenuCursor -@ s8 MoveMenuCursor(s8 cursorDelta) -MoveMenuCursor: @ 81984D8 - push {r4,r5,lr} - ldr r1, =gUnknown_0203CD90 - ldrb r5, [r1, 0x2] - movs r2, 0x2 - ldrsb r2, [r1, r2] - lsls r0, 24 - asrs r3, r0, 24 - adds r2, r3 - movs r0, 0x3 - ldrsb r0, [r1, r0] - adds r4, r1, 0 - cmp r2, r0 - bge _081984FC - ldrb r0, [r4, 0x4] - b _0819850A - .pool -_081984FC: - movs r0, 0x4 - ldrsb r0, [r4, r0] - cmp r2, r0 - ble _08198508 - ldrb r0, [r4, 0x3] - b _0819850A -_08198508: - adds r0, r3, r5 -_0819850A: - strb r0, [r4, 0x2] - ldrb r1, [r4, 0x2] - adds r0, r5, 0 - bl RedrawMenuCursor - ldrb r0, [r4, 0x2] - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end MoveMenuCursor - - thumb_func_start MoveMenuCursorNoWrapAround -@ s8 MoveMenuCursorNoWrapAround(s8 cursorDelta) -MoveMenuCursorNoWrapAround: @ 819851C - push {r4,r5,lr} - ldr r1, =gUnknown_0203CD90 - ldrb r5, [r1, 0x2] - movs r2, 0x2 - ldrsb r2, [r1, r2] - lsls r0, 24 - asrs r3, r0, 24 - adds r2, r3 - movs r0, 0x3 - ldrsb r0, [r1, r0] - adds r4, r1, 0 - cmp r2, r0 - bge _08198540 - ldrb r0, [r4, 0x3] - b _0819854E - .pool -_08198540: - movs r0, 0x4 - ldrsb r0, [r4, r0] - cmp r2, r0 - ble _0819854C - ldrb r0, [r4, 0x4] - b _0819854E -_0819854C: - adds r0, r3, r5 -_0819854E: - strb r0, [r4, 0x2] - ldrb r1, [r4, 0x2] - adds r0, r5, 0 - bl RedrawMenuCursor - ldrb r0, [r4, 0x2] - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end MoveMenuCursorNoWrapAround - - thumb_func_start GetMenuCursorPos -GetMenuCursorPos: @ 8198560 - ldr r0, =gUnknown_0203CD90 - ldrb r0, [r0, 0x2] - bx lr - .pool - thumb_func_end GetMenuCursorPos - - thumb_func_start ProcessMenuInput -ProcessMenuInput: @ 819856C - push {r4,lr} - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08198598 - ldr r4, =gUnknown_0203CD90 - ldrb r0, [r4, 0xB] - cmp r0, 0 - bne _08198588 - movs r0, 0x5 - bl audio_play -_08198588: - movs r0, 0x2 - ldrsb r0, [r4, r0] - b _081985D2 - .pool -_08198598: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081985A6 - movs r0, 0x1 - negs r0, r0 - b _081985D2 -_081985A6: - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081985BA - movs r0, 0x5 - bl audio_play - movs r0, 0x1 - negs r0, r0 - b _081985CA -_081985BA: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081985CE - movs r0, 0x5 - bl audio_play - movs r0, 0x1 -_081985CA: - bl MoveMenuCursor -_081985CE: - movs r0, 0x2 - negs r0, r0 -_081985D2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end ProcessMenuInput - - thumb_func_start ProcessMenuInputNoWrapAround -@ int ProcessMenuInputNoWrapAround() -ProcessMenuInputNoWrapAround: @ 81985D8 - push {r4-r6,lr} - ldr r4, =gUnknown_0203CD90 - ldrb r5, [r4, 0x2] - adds r6, r5, 0 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08198608 - ldrb r0, [r4, 0xB] - cmp r0, 0 - bne _081985F8 - movs r0, 0x5 - bl audio_play -_081985F8: - movs r0, 0x2 - ldrsb r0, [r4, r0] - b _08198650 - .pool -_08198608: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08198616 - movs r0, 0x1 - negs r0, r0 - b _08198650 -_08198616: - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08198630 - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursorNoWrapAround - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - beq _0819864C - b _08198646 -_08198630: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0819864C - movs r0, 0x1 - bl MoveMenuCursorNoWrapAround - lsls r0, 24 - lsrs r0, 24 - cmp r6, r0 - beq _0819864C -_08198646: - movs r0, 0x5 - bl audio_play -_0819864C: - movs r0, 0x2 - negs r0, r0 -_08198650: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ProcessMenuInputNoWrapAround - - thumb_func_start ProcessMenuInput_other -ProcessMenuInput_other: @ 8198658 - push {r4,lr} - ldr r2, =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08198684 - ldr r4, =gUnknown_0203CD90 - ldrb r0, [r4, 0xB] - cmp r0, 0 - bne _08198674 - movs r0, 0x5 - bl audio_play -_08198674: - movs r0, 0x2 - ldrsb r0, [r4, r0] - b _081986BC - .pool -_08198684: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08198692 - movs r0, 0x1 - negs r0, r0 - b _081986BC -_08198692: - ldrh r0, [r2, 0x30] - movs r1, 0xF0 - ands r1, r0 - cmp r1, 0x40 - bne _081986A8 - movs r0, 0x5 - bl audio_play - movs r0, 0x1 - negs r0, r0 - b _081986B4 -_081986A8: - cmp r1, 0x80 - bne _081986B8 - movs r0, 0x5 - bl audio_play - movs r0, 0x1 -_081986B4: - bl MoveMenuCursor -_081986B8: - movs r0, 0x2 - negs r0, r0 -_081986BC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end ProcessMenuInput_other - - thumb_func_start ProcessMenuInputNoWrapAround_other -ProcessMenuInputNoWrapAround_other: @ 81986C4 - push {r4-r6,lr} - ldr r4, =gUnknown_0203CD90 - ldrb r5, [r4, 0x2] - adds r6, r5, 0 - ldr r2, =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081986F4 - ldrb r0, [r4, 0xB] - cmp r0, 0 - bne _081986E4 - movs r0, 0x5 - bl audio_play -_081986E4: - movs r0, 0x2 - ldrsb r0, [r4, r0] - b _0819873A - .pool -_081986F4: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08198702 - movs r0, 0x1 - negs r0, r0 - b _0819873A -_08198702: - ldrh r0, [r2, 0x30] - movs r1, 0xF0 - ands r1, r0 - cmp r1, 0x40 - bne _0819871E - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursorNoWrapAround - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - beq _08198736 - b _08198730 -_0819871E: - cmp r1, 0x80 - bne _08198736 - movs r0, 0x1 - bl MoveMenuCursorNoWrapAround - lsls r0, 24 - lsrs r0, 24 - cmp r6, r0 - beq _08198736 -_08198730: - movs r0, 0x5 - bl audio_play -_08198736: - movs r0, 0x2 - negs r0, r0 -_0819873A: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ProcessMenuInputNoWrapAround_other - - thumb_func_start PrintTextArray -PrintTextArray: @ 8198740 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - ldr r4, [sp, 0x2C] - ldr r5, [sp, 0x30] - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - lsls r4, 24 - lsrs r7, r4, 24 - lsls r5, 24 - lsrs r5, 24 - movs r4, 0 - cmp r4, r5 - bcs _081987A4 -_08198774: - lsls r0, r4, 3 - ldr r1, [sp, 0x34] - adds r0, r1 - ldr r2, [r0] - adds r0, r7, 0 - muls r0, r4 - add r0, r8 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r6, 0 - mov r1, r10 - mov r3, r9 - bl Print - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _08198774 -_081987A4: - adds r0, r6, 0 - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end PrintTextArray - - thumb_func_start sub_81987BC -sub_81987BC: @ 81987BC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - ldr r4, [sp, 0x40] - ldr r5, [sp, 0x44] - ldr r6, [sp, 0x4C] - ldr r7, [sp, 0x50] - mov r8, r7 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x14] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x18] - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x1C] - lsls r4, 24 - lsrs r4, 24 - mov r10, r4 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - mov r9, r6 - mov r0, r8 - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - cmp r4, r5 - bcs _0819883C -_08198804: - lsls r0, r4, 3 - ldr r1, [sp, 0x48] - adds r0, r1 - ldr r2, [r0] - mov r0, r10 - muls r0, r4 - ldr r1, [sp, 0x1C] - adds r0, r1, r0 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - mov r0, r9 - str r0, [sp, 0xC] - str r6, [sp, 0x10] - adds r0, r7, 0 - ldr r1, [sp, 0x14] - ldr r3, [sp, 0x18] - bl sub_8199F74 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _08198804 -_0819883C: - adds r0, r7, 0 - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81987BC - - thumb_func_start sub_8198854 -sub_8198854: @ 8198854 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - mov r8, r0 - adds r6, r1, 0 - adds r4, r2, 0 - adds r5, r3, 0 - ldr r7, [sp, 0x24] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r6, 24 - lsrs r6, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - adds r0, r6, 0 - movs r1, 0 - bl GetFontAttribute - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - str r4, [sp] - str r5, [sp, 0x4] - str r7, [sp, 0x8] - mov r0, r8 - adds r1, r6, 0 - movs r3, 0x1 - bl PrintTextArray - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8198854 - - thumb_func_start AddItemMenuActionTextPrinters -AddItemMenuActionTextPrinters: @ 81988A4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - adds r6, r1, 0 - mov r8, r2 - ldr r1, [sp, 0x38] - mov r9, r1 - ldr r1, [sp, 0x3C] - ldr r2, [sp, 0x40] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x10] - lsls r6, 24 - lsrs r6, 24 - mov r4, r8 - lsls r4, 24 - lsrs r4, 24 - mov r8, r4 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x14] - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r7, r2, 24 - mov r0, sp - ldrb r1, [r0, 0x10] - strb r1, [r0, 0x4] - strb r6, [r0, 0x5] - adds r0, r6, 0 - movs r1, 0x5 - bl GetFontAttribute - mov r3, sp - lsls r0, 4 - ldrb r2, [r3, 0xC] - movs r5, 0xF - adds r1, r5, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xC] - adds r0, r6, 0 - movs r1, 0x6 - bl GetFontAttribute - mov r3, sp - adds r1, r5, 0 - ands r1, r0 - ldrb r2, [r3, 0xD] - movs r4, 0x10 - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0xD] - adds r0, r6, 0 - movs r1, 0x7 - bl GetFontAttribute - mov r3, sp - lsls r0, 4 - ldrb r2, [r3, 0xD] - adds r1, r5, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xD] - adds r0, r6, 0 - movs r1, 0x4 - bl GetFontAttribute - mov r1, sp - ands r5, r0 - ldrb r0, [r1, 0xC] - ands r4, r0 - orrs r4, r5 - strb r4, [r1, 0xC] - mov r0, sp - mov r2, r9 - strb r2, [r0, 0xA] - adds r0, r6, 0 - movs r1, 0x3 - bl GetFontAttribute - mov r1, sp - strb r0, [r1, 0xB] - mov r0, sp - mov r4, r8 - strb r4, [r0, 0x6] - strb r4, [r0, 0x8] - movs r4, 0 - cmp r4, r7 - bcs _0819899E - mov r5, sp -_0819896E: - ldr r1, [sp, 0x48] - adds r0, r1, r4 - ldrb r0, [r0] - lsls r0, 3 - ldr r2, [sp, 0x44] - adds r0, r2 - ldr r0, [r0] - str r0, [sp] - mov r0, r10 - muls r0, r4 - ldr r1, [sp, 0x14] - adds r0, r1, r0 - strb r0, [r5, 0x7] - strb r0, [r5, 0x9] - mov r0, sp - movs r1, 0xFF - movs r2, 0 - bl AddTextPrinter - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r7 - bcc _0819896E -_0819899E: - ldr r0, [sp, 0x10] - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end AddItemMenuActionTextPrinters - - thumb_func_start sub_81989B8 -sub_81989B8: @ 81989B8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - mov r9, r0 - adds r4, r1, 0 - adds r6, r2, 0 - mov r8, r3 - ldr r7, [sp, 0x30] - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - adds r0, r4, 0 - movs r1, 0 - bl GetFontAttribute - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r4, 0 - movs r1, 0x2 - bl GetFontAttribute - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - str r6, [sp, 0x4] - mov r0, r8 - str r0, [sp, 0x8] - str r7, [sp, 0xC] - ldr r0, [sp, 0x34] - str r0, [sp, 0x10] - mov r0, r9 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0x1 - bl AddItemMenuActionTextPrinters - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81989B8 - - thumb_func_start rbox_template_set -@ void rbox_template_set(WindowTemplate *template, char bg_id, char x, char y, char w, char h, char a7, s16 a8) -rbox_template_set: @ 8198A24 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, [sp, 0x18] - ldr r5, [sp, 0x1C] - ldr r6, [sp, 0x20] - ldr r7, [sp, 0x24] - mov r8, r7 - strb r1, [r0] - strb r2, [r0, 0x1] - strb r3, [r0, 0x2] - strb r4, [r0, 0x3] - strb r5, [r0, 0x4] - strb r6, [r0, 0x5] - mov r1, r8 - strh r1, [r0, 0x6] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end rbox_template_set - - thumb_func_start sub_8198A50 -sub_8198A50: @ 8198A50 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x18 - mov r8, r0 - ldr r0, [sp, 0x2C] - ldr r4, [sp, 0x30] - ldr r5, [sp, 0x34] - ldr r6, [sp, 0x38] - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 16 - lsrs r6, 16 - str r0, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - str r6, [sp, 0xC] - add r0, sp, 0x10 - bl rbox_template_set - ldr r0, [sp, 0x10] - ldr r1, [sp, 0x14] - mov r2, r8 - str r0, [r2] - str r1, [r2, 0x4] - mov r0, r8 - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r2} - bx r2 - thumb_func_end sub_8198A50 - - thumb_func_start sub_8198AA4 -sub_8198AA4: @ 8198AA4 - push {r4-r6,lr} - sub sp, 0x18 - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - ldr r0, [sp, 0x28] - ldr r1, [sp, 0x2C] - ldr r2, [sp, 0x30] - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 16 - lsrs r2, 16 - str r3, [sp] - str r0, [sp, 0x4] - str r1, [sp, 0x8] - str r2, [sp, 0xC] - add r0, sp, 0x10 - adds r1, r4, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl rbox_template_set - add r0, sp, 0x10 - bl AddWindow - lsls r0, 16 - lsrs r0, 16 - add sp, 0x18 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8198AA4 - - thumb_func_start sub_8198AF8 -sub_8198AF8: @ 8198AF8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - adds r6, r1, 0 - mov r8, r2 - mov r9, r3 - ldr r4, [sp, 0x3C] - ldr r5, [sp, 0x40] - ldr r1, [sp, 0x44] - mov r10, r1 - lsls r6, 24 - lsrs r6, 24 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - mov r1, r9 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - mov r1, r10 - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - ldr r7, =gUnknown_0203CD9F - bl AddWindow - strb r0, [r7] - ldrb r0, [r7] - movs r1, 0x1 - adds r2, r4, 0 - adds r3, r5, 0 - bl SetWindowBorderStyle - ldr r0, =gUnknown_085EE491 - str r0, [sp, 0xC] - add r1, sp, 0xC - ldrb r0, [r7] - strb r0, [r1, 0x4] - adds r0, r1, 0 - strb r6, [r0, 0x5] - adds r0, r6, 0 - movs r1, 0 - bl GetFontAttribute - add r1, sp, 0xC - add r0, r8 - strb r0, [r1, 0x6] - adds r0, r1, 0 - mov r1, r9 - strb r1, [r0, 0x7] - adds r1, r0, 0 - ldrb r0, [r0, 0x6] - strb r0, [r1, 0x8] - adds r0, r1, 0 - ldrb r0, [r0, 0x7] - strb r0, [r1, 0x9] - adds r0, r6, 0 - movs r1, 0x5 - bl GetFontAttribute - add r3, sp, 0xC - lsls r0, 4 - ldrb r2, [r3, 0xC] - movs r5, 0xF - adds r1, r5, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xC] - adds r0, r6, 0 - movs r1, 0x6 - bl GetFontAttribute - add r3, sp, 0xC - adds r1, r5, 0 - ands r1, r0 - ldrb r2, [r3, 0xD] - movs r4, 0x10 - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0xD] - adds r0, r6, 0 - movs r1, 0x7 - bl GetFontAttribute - add r3, sp, 0xC - lsls r0, 4 - ldrb r2, [r3, 0xD] - adds r1, r5, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xD] - adds r0, r6, 0 - movs r1, 0x4 - bl GetFontAttribute - add r1, sp, 0xC - ands r5, r0 - ldrb r0, [r1, 0xC] - ands r4, r0 - orrs r4, r5 - strb r4, [r1, 0xC] - adds r0, r6, 0 - movs r1, 0x2 - bl GetFontAttribute - add r1, sp, 0xC - strb r0, [r1, 0xA] - adds r0, r6, 0 - movs r1, 0x3 - bl GetFontAttribute - add r1, sp, 0xC - strb r0, [r1, 0xB] - adds r0, r1, 0 - movs r1, 0xFF - movs r2, 0 - bl AddTextPrinter - adds r0, r6, 0 - movs r1, 0x1 - bl GetFontAttribute - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r7] - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - adds r0, r1, 0 - adds r1, r6, 0 - mov r2, r8 - mov r3, r9 - bl sub_81983AC - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8198AF8 - - thumb_func_start sub_8198C34 -sub_8198C34: @ 8198C34 - push {lr} - sub sp, 0xC - lsls r1, 24 - lsrs r1, 24 - lsls r2, 16 - lsrs r2, 16 - lsls r3, 24 - lsrs r3, 24 - str r2, [sp] - str r3, [sp, 0x4] - movs r2, 0 - str r2, [sp, 0x8] - movs r3, 0x1 - bl sub_8198AF8 - add sp, 0xC - pop {r0} - bx r0 - thumb_func_end sub_8198C34 - - thumb_func_start sub_8198C58 -sub_8198C58: @ 8198C58 - push {r4,lr} - bl ProcessMenuInputNoWrapAround - lsls r0, 24 - asrs r4, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _08198C6E - bl sub_8198C78 -_08198C6E: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8198C58 - - thumb_func_start sub_8198C78 -sub_8198C78: @ 8198C78 - push {r4,lr} - ldr r4, =gUnknown_0203CD9F - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8198070 - ldrb r0, [r4] - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8198C78 - - thumb_func_start sub_8198C94 -sub_8198C94: @ 8198C94 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - ldr r4, [sp, 0x40] - ldr r5, [sp, 0x44] - ldr r6, [sp, 0x48] - ldr r7, [sp, 0x4C] - mov r8, r7 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0xC] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x10] - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x14] - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x18] - lsls r5, 24 - lsrs r5, 24 - str r5, [sp, 0x1C] - lsls r6, 24 - lsrs r6, 24 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r5, 0 - cmp r5, r9 - bcs _08198D3A -_08198CE0: - movs r4, 0 - adds r1, r5, 0x1 - mov r8, r1 - cmp r4, r6 - bcs _08198D30 - ldr r7, [sp, 0x1C] - adds r0, r7, 0 - muls r0, r5 - ldr r1, [sp, 0x14] - adds r0, r1, r0 - lsls r0, 24 - lsrs r7, r0, 24 -_08198CF8: - adds r0, r5, 0 - muls r0, r6 - adds r0, r4 - lsls r0, 3 - ldr r1, [sp, 0x50] - adds r0, r1 - ldr r2, [r0] - ldr r0, [sp, 0x18] - adds r3, r0, 0 - muls r3, r4 - ldr r1, [sp, 0x10] - adds r3, r1, r3 - lsls r3, 24 - lsrs r3, 24 - str r7, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - mov r0, r10 - ldr r1, [sp, 0xC] - bl Print - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r6 - bcc _08198CF8 -_08198D30: - mov r7, r8 - lsls r0, r7, 24 - lsrs r5, r0, 24 - cmp r5, r9 - bcc _08198CE0 -_08198D3A: - mov r0, r10 - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8198C94 - - thumb_func_start sub_8198D54 -sub_8198D54: @ 8198D54 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - mov r9, r0 - mov r8, r1 - adds r4, r2, 0 - adds r5, r3, 0 - ldr r6, [sp, 0x34] - ldr r3, [sp, 0x38] - ldr r7, [sp, 0x3C] - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r3, 24 - lsrs r3, 24 - movs r1, 0 - str r3, [sp, 0x14] - bl GetFontAttribute - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - str r4, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - ldr r3, [sp, 0x14] - str r3, [sp, 0xC] - str r7, [sp, 0x10] - mov r0, r9 - mov r1, r8 - movs r3, 0 - bl sub_8198C94 - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8198D54 - - thumb_func_start sub_8198DBC -sub_8198DBC: @ 8198DBC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - ldr r4, [sp, 0x40] - ldr r5, [sp, 0x44] - ldr r6, [sp, 0x48] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x10] - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x14] - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x18] - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x1C] - lsls r5, 24 - lsrs r5, 24 - mov r8, r5 - lsls r6, 24 - lsrs r6, 24 - mov r10, r6 - mov r0, sp - ldrb r1, [r0, 0x10] - strb r1, [r0, 0x4] - strb r7, [r0, 0x5] - adds r0, r7, 0 - movs r1, 0x5 - bl GetFontAttribute - mov r3, sp - lsls r0, 4 - ldrb r2, [r3, 0xC] - movs r5, 0xF - adds r1, r5, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xC] - adds r0, r7, 0 - movs r1, 0x6 - bl GetFontAttribute - mov r3, sp - adds r1, r5, 0 - ands r1, r0 - ldrb r2, [r3, 0xD] - movs r4, 0x10 - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0xD] - adds r0, r7, 0 - movs r1, 0x7 - bl GetFontAttribute - mov r3, sp - lsls r0, 4 - ldrb r2, [r3, 0xD] - adds r1, r5, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xD] - adds r0, r7, 0 - movs r1, 0x4 - bl GetFontAttribute - mov r1, sp - ands r5, r0 - ldrb r0, [r1, 0xC] - ands r4, r0 - orrs r4, r5 - strb r4, [r1, 0xC] - adds r0, r7, 0 - movs r1, 0x2 - bl GetFontAttribute - mov r1, sp - strb r0, [r1, 0xA] - adds r0, r7, 0 - movs r1, 0x3 - bl GetFontAttribute - mov r1, sp - strb r0, [r1, 0xB] - movs r6, 0 - cmp r6, r10 - bcs _08198EDE -_08198E7A: - movs r5, 0 - adds r2, r6, 0x1 - mov r9, r2 - cmp r5, r8 - bcs _08198ED4 - mov r4, sp -_08198E86: - mov r0, r8 - muls r0, r6 - adds r0, r5 - ldr r1, [sp, 0x50] - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, 3 - ldr r2, [sp, 0x4C] - adds r0, r2 - ldr r0, [r0] - str r0, [sp] - ldr r1, [sp, 0x1C] - adds r0, r1, 0 - muls r0, r5 - ldr r2, [sp, 0x14] - adds r0, r2, r0 - strb r0, [r4, 0x6] - adds r0, r7, 0 - movs r1, 0x1 - bl GetFontAttribute - adds r1, r6, 0 - muls r1, r0 - ldr r0, [sp, 0x18] - adds r1, r0, r1 - strb r1, [r4, 0x7] - ldrb r0, [r4, 0x6] - strb r0, [r4, 0x8] - strb r1, [r4, 0x9] - mov r0, sp - movs r1, 0xFF - movs r2, 0 - bl AddTextPrinter - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r8 - bcc _08198E86 -_08198ED4: - mov r1, r9 - lsls r0, r1, 24 - lsrs r6, r0, 24 - cmp r6, r10 - bcc _08198E7A -_08198EDE: - ldr r0, [sp, 0x10] - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8198DBC - - thumb_func_start sub_8198EF8 -sub_8198EF8: @ 8198EF8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x18 - mov r8, r0 - adds r3, r1, 0 - adds r4, r2, 0 - ldr r5, [sp, 0x30] - ldr r6, [sp, 0x34] - ldr r7, [sp, 0x38] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - adds r0, r3, 0 - movs r1, 0 - str r3, [sp, 0x14] - bl GetFontAttribute - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - str r4, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - str r7, [sp, 0xC] - ldr r0, [sp, 0x3C] - str r0, [sp, 0x10] - mov r0, r8 - ldr r3, [sp, 0x14] - adds r1, r3, 0 - movs r3, 0 - bl sub_8198DBC - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8198EF8 - - thumb_func_start sub_8198F58 -sub_8198F58: @ 8198F58 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, [sp, 0x20] - mov r12, r4 - ldr r4, [sp, 0x24] - mov r8, r4 - ldr r4, [sp, 0x28] - mov r9, r4 - ldr r4, [sp, 0x2C] - mov r10, r4 - ldr r4, [sp, 0x30] - ldr r5, [sp, 0x34] - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r7, r5, 24 - ldr r5, =gUnknown_0203CD90 - movs r6, 0 - strb r2, [r5] - strb r3, [r5, 0x1] - strb r6, [r5, 0x3] - subs r4, 0x1 - strb r4, [r5, 0x4] - strb r0, [r5, 0x5] - strb r1, [r5, 0x6] - mov r0, r12 - strb r0, [r5, 0x7] - mov r4, r8 - strb r4, [r5, 0x8] - mov r0, r9 - strb r0, [r5, 0x9] - mov r4, r10 - strb r4, [r5, 0xA] - cmp r7, 0 - blt _08198FAC - movs r0, 0x4 - ldrsb r0, [r5, r0] - cmp r7, r0 - ble _08198FB4 -_08198FAC: - strb r6, [r5, 0x2] - b _08198FB6 - .pool -_08198FB4: - strb r7, [r5, 0x2] -_08198FB6: - movs r0, 0 - movs r1, 0 - bl sub_8199134 - ldr r0, =gUnknown_0203CD90 - ldrb r0, [r0, 0x2] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8198F58 - - thumb_func_start sub_8198FD4 -sub_8198FD4: @ 8198FD4 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x20 - mov r9, r0 - mov r8, r1 - mov r10, r2 - ldr r6, [sp, 0x3C] - ldr r4, [sp, 0x40] - ldr r5, [sp, 0x44] - ldr r2, [sp, 0x48] - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - mov r0, r10 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r3, 24 - lsrs r3, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r2, 24 - lsrs r2, 24 - mov r0, r8 - movs r1, 0x1 - str r2, [sp, 0x18] - str r3, [sp, 0x1C] - bl GetMenuCursorDimensionByFont - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - muls r1, r5 - lsls r1, 24 - lsrs r1, 24 - str r6, [sp] - str r0, [sp, 0x4] - str r4, [sp, 0x8] - str r5, [sp, 0xC] - str r1, [sp, 0x10] - ldr r2, [sp, 0x18] - str r2, [sp, 0x14] - mov r0, r9 - mov r1, r8 - mov r2, r10 - ldr r3, [sp, 0x1C] - bl sub_8198F58 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8198FD4 - - thumb_func_start sub_8199060 -sub_8199060: @ 8199060 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - mov r8, r0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r0, r1, 24 - lsrs r7, r0, 24 - ldr r5, =gUnknown_0203CD90 - ldrb r0, [r5, 0x6] - movs r1, 0 - bl GetMenuCursorDimensionByFont - mov r9, r0 - mov r1, r9 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - ldrb r0, [r5, 0x6] - movs r1, 0x1 - bl GetMenuCursorDimensionByFont - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldrb r0, [r5, 0x9] - mov r10, r0 - mov r0, r8 - mov r1, r10 - bl __umodsi3 - ldrb r1, [r5, 0x7] - adds r4, r1, 0 - muls r4, r0 - ldrb r1, [r5] - adds r4, r1 - lsls r4, 24 - lsrs r4, 24 - mov r0, r8 - mov r1, r10 - bl __udivsi3 - ldrb r1, [r5, 0x8] - adds r3, r1, 0 - muls r3, r0 - ldrb r0, [r5, 0x1] - adds r3, r0 - lsls r3, 24 - lsrs r3, 24 - ldrb r0, [r5, 0x5] - mov r1, r9 - str r1, [sp] - str r6, [sp, 0x4] - movs r1, 0x11 - adds r2, r4, 0 - bl FillWindowPixelRect - ldrb r6, [r5, 0x9] - adds r0, r7, 0 - adds r1, r6, 0 - bl __umodsi3 - ldrb r1, [r5, 0x7] - adds r4, r1, 0 - muls r4, r0 - ldrb r0, [r5] - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r7, 0 - adds r1, r6, 0 - bl __udivsi3 - ldrb r1, [r5, 0x8] - adds r3, r1, 0 - muls r3, r0 - ldrb r1, [r5, 0x1] - adds r3, r1 - lsls r3, 24 - lsrs r3, 24 - ldrb r0, [r5, 0x5] - ldrb r1, [r5, 0x6] - ldr r2, =gUnknown_085EE498 - str r3, [sp] - movs r3, 0 - str r3, [sp, 0x4] - str r3, [sp, 0x8] - adds r3, r4, 0 - bl Print - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8199060 - - thumb_func_start sub_8199134 -sub_8199134: @ 8199134 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - ldr r1, =gUnknown_0203CD90 - ldrb r2, [r1, 0x2] - mov r8, r2 - lsls r0, 24 - asrs r6, r0, 24 - adds r5, r1, 0 - cmp r6, 0 - beq _0819918A - movs r7, 0x2 - ldrsb r7, [r5, r7] - ldrb r4, [r5, 0x9] - adds r0, r7, 0 - adds r1, r4, 0 - bl __modsi3 - adds r0, r6 - cmp r0, 0 - bge _08199174 - adds r0, r4, 0 - adds r0, 0xFF - add r0, r8 - b _08199188 - .pool -_08199174: - cmp r0, r4 - blt _08199184 - adds r0, r7, 0 - adds r1, r4, 0 - bl __divsi3 - muls r0, r4 - b _08199188 -_08199184: - mov r1, r8 - adds r0, r6, r1 -_08199188: - strb r0, [r5, 0x2] -_0819918A: - mov r2, r9 - lsls r0, r2, 24 - asrs r6, r0, 24 - cmp r6, 0 - beq _081991CE - movs r0, 0x2 - ldrsb r0, [r5, r0] - ldrb r4, [r5, 0x9] - adds r1, r4, 0 - bl __divsi3 - adds r1, r0, r6 - cmp r1, 0 - bge _081991B2 - ldrb r0, [r5, 0xA] - subs r0, 0x1 - muls r0, r4 - ldrb r1, [r5, 0x2] - adds r0, r1 - b _081991CC -_081991B2: - ldrb r0, [r5, 0xA] - cmp r1, r0 - blt _081991C4 - subs r0, 0x1 - adds r1, r4, 0 - muls r1, r0 - ldrb r0, [r5, 0x2] - subs r0, r1 - b _081991CC -_081991C4: - adds r0, r4, 0 - muls r0, r6 - ldrb r2, [r5, 0x2] - adds r0, r2 -_081991CC: - strb r0, [r5, 0x2] -_081991CE: - movs r1, 0x2 - ldrsb r1, [r5, r1] - movs r0, 0x4 - ldrsb r0, [r5, r0] - cmp r1, r0 - bgt _081991E4 - ldrb r1, [r5, 0x2] - mov r0, r8 - bl sub_8199060 - b _081991E8 -_081991E4: - mov r0, r8 - strb r0, [r5, 0x2] -_081991E8: - ldrb r0, [r5, 0x2] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8199134 - - thumb_func_start sub_81991F8 -sub_81991F8: @ 81991F8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - ldr r1, =gUnknown_0203CD90 - ldrb r7, [r1, 0x2] - lsls r0, 24 - asrs r4, r0, 24 - adds r5, r1, 0 - cmp r4, 0 - beq _0819922C - movs r0, 0x2 - ldrsb r0, [r5, r0] - ldrb r6, [r5, 0x9] - adds r1, r6, 0 - bl __modsi3 - adds r0, r4 - cmp r0, 0 - blt _0819922C - cmp r0, r6 - bge _0819922C - adds r0, r4, r7 - strb r0, [r5, 0x2] -_0819922C: - mov r1, r8 - lsls r0, r1, 24 - asrs r4, r0, 24 - cmp r4, 0 - beq _08199258 - movs r0, 0x2 - ldrsb r0, [r5, r0] - ldrb r6, [r5, 0x9] - adds r1, r6, 0 - bl __divsi3 - adds r0, r4 - cmp r0, 0 - blt _08199258 - ldrb r1, [r5, 0xA] - cmp r0, r1 - bge _08199258 - adds r0, r6, 0 - muls r0, r4 - ldrb r1, [r5, 0x2] - adds r0, r1 - strb r0, [r5, 0x2] -_08199258: - movs r1, 0x2 - ldrsb r1, [r5, r1] - movs r0, 0x4 - ldrsb r0, [r5, r0] - cmp r1, r0 - bgt _08199274 - ldrb r1, [r5, 0x2] - adds r0, r7, 0 - bl sub_8199060 - b _08199276 - .pool -_08199274: - strb r7, [r5, 0x2] -_08199276: - ldrb r0, [r5, 0x2] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81991F8 - - thumb_func_start sub_8199284 -sub_8199284: @ 8199284 - push {r4,lr} - ldr r4, =gMain - ldrh r1, [r4, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081992AC - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_0203CD90 - ldrb r0, [r0, 0x2] - lsls r0, 24 - asrs r0, 24 - b _0819932C - .pool -_081992AC: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081992BA - movs r0, 0x1 - negs r0, r0 - b _0819932C -_081992BA: - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081992D0 - movs r0, 0x5 - bl audio_play - movs r1, 0x1 - negs r1, r1 - movs r0, 0 - b _08199324 -_081992D0: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081992E4 - movs r0, 0x5 - bl audio_play - movs r0, 0 - movs r1, 0x1 - b _08199324 -_081992E4: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _081992F8 - bl GetLRKeysState - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08199304 -_081992F8: - movs r0, 0x5 - bl audio_play - movs r0, 0x1 - negs r0, r0 - b _08199322 -_08199304: - ldrh r1, [r4, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _0819931A - bl GetLRKeysState - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _08199328 -_0819931A: - movs r0, 0x5 - bl audio_play - movs r0, 0x1 -_08199322: - movs r1, 0 -_08199324: - bl sub_8199134 -_08199328: - movs r0, 0x2 - negs r0, r0 -_0819932C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8199284 - - thumb_func_start sub_8199334 -sub_8199334: @ 8199334 - push {r4-r6,lr} - ldr r5, =gUnknown_0203CD90 - ldrb r4, [r5, 0x2] - ldr r6, =gMain - ldrh r1, [r6, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0819935C - movs r0, 0x5 - bl audio_play - movs r0, 0x2 - ldrsb r0, [r5, r0] - b _081993D2 - .pool -_0819935C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0819936A - movs r0, 0x1 - negs r0, r0 - b _081993D2 -_0819936A: - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0819937A - movs r1, 0x1 - negs r1, r1 - movs r0, 0 - b _081993BC -_0819937A: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08199388 - movs r0, 0 - movs r1, 0x1 - b _081993BC -_08199388: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _0819939C - bl GetLRKeysState - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081993A2 -_0819939C: - movs r0, 0x1 - negs r0, r0 - b _081993BA -_081993A2: - ldrh r1, [r6, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _081993B8 - bl GetLRKeysState - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _081993CE -_081993B8: - movs r0, 0x1 -_081993BA: - movs r1, 0 -_081993BC: - bl sub_81991F8 - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - beq _081993CE - movs r0, 0x5 - bl audio_play -_081993CE: - movs r0, 0x2 - negs r0, r0 -_081993D2: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8199334 - - thumb_func_start sub_81993D8 -sub_81993D8: @ 81993D8 - push {r4,r5,lr} - ldr r4, =gMain - ldrh r1, [r4, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08199400 - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_0203CD90 - ldrb r0, [r0, 0x2] - lsls r0, 24 - asrs r0, 24 - b _0819947C - .pool -_08199400: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0819940E - movs r0, 0x1 - negs r0, r0 - b _0819947C -_0819940E: - ldrh r0, [r4, 0x30] - movs r5, 0xF0 - adds r1, r5, 0 - ands r1, r0 - cmp r1, 0x40 - bne _08199428 - movs r0, 0x5 - bl audio_play - movs r1, 0x1 - negs r1, r1 - movs r0, 0 - b _08199474 -_08199428: - cmp r1, 0x80 - bne _08199438 - movs r0, 0x5 - bl audio_play - movs r0, 0 - movs r1, 0x1 - b _08199474 -_08199438: - cmp r1, 0x20 - beq _08199448 - bl sub_812210C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08199454 -_08199448: - movs r0, 0x5 - bl audio_play - movs r0, 0x1 - negs r0, r0 - b _08199472 -_08199454: - ldrh r1, [r4, 0x30] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0x10 - beq _0819946A - bl sub_812210C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _08199478 -_0819946A: - movs r0, 0x5 - bl audio_play - movs r0, 0x1 -_08199472: - movs r1, 0 -_08199474: - bl sub_8199134 -_08199478: - movs r0, 0x2 - negs r0, r0 -_0819947C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81993D8 - - thumb_func_start sub_8199484 -sub_8199484: @ 8199484 - push {r4-r6,lr} - ldr r6, =gUnknown_0203CD90 - ldrb r4, [r6, 0x2] - ldr r5, =gMain - ldrh r1, [r5, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081994AC - movs r0, 0x5 - bl audio_play - movs r0, 0x2 - ldrsb r0, [r6, r0] - b _0819951E - .pool -_081994AC: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081994BA - movs r0, 0x1 - negs r0, r0 - b _0819951E -_081994BA: - ldrh r0, [r5, 0x30] - movs r6, 0xF0 - adds r1, r6, 0 - ands r1, r0 - cmp r1, 0x40 - bne _081994CE - movs r1, 0x1 - negs r1, r1 - movs r0, 0 - b _08199508 -_081994CE: - cmp r1, 0x80 - bne _081994D8 - movs r0, 0 - movs r1, 0x1 - b _08199508 -_081994D8: - cmp r1, 0x20 - beq _081994E8 - bl sub_812210C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081994EE -_081994E8: - movs r0, 0x1 - negs r0, r0 - b _08199506 -_081994EE: - ldrh r1, [r5, 0x30] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0x10 - beq _08199504 - bl sub_812210C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0819951A -_08199504: - movs r0, 0x1 -_08199506: - movs r1, 0 -_08199508: - bl sub_81991F8 - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - beq _0819951A - movs r0, 0x5 - bl audio_play -_0819951A: - movs r0, 0x2 - negs r0, r0 -_0819951E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8199484 - - thumb_func_start InitMenuInUpperLeftCorner -@ int InitMenuInUpperLeftCorner(s8 windowId, s8 numItems, u8 initialCursorPos, bool doNotPlaySoundWhenAPressed) -InitMenuInUpperLeftCorner: @ 8199524 - push {r4-r6,lr} - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r5, r2, 24 - ldr r4, =gUnknown_0203CD90 - movs r6, 0 - strb r6, [r4] - movs r2, 0x1 - strb r2, [r4, 0x1] - strb r6, [r4, 0x3] - subs r1, 0x1 - strb r1, [r4, 0x4] - strb r0, [r4, 0x5] - strb r2, [r4, 0x6] - movs r0, 0x10 - strb r0, [r4, 0x8] - strb r3, [r4, 0xB] - cmp r5, 0 - blt _08199554 - movs r0, 0x4 - ldrsb r0, [r4, r0] - cmp r5, r0 - ble _0819955C -_08199554: - strb r6, [r4, 0x2] - b _0819955E - .pool -_0819955C: - strb r5, [r4, 0x2] -_0819955E: - movs r0, 0 - bl MoveMenuCursor - lsls r0, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end InitMenuInUpperLeftCorner - - thumb_func_start InitMenuInUpperLeftCornerPlaySoundWhenAPressed -InitMenuInUpperLeftCornerPlaySoundWhenAPressed: @ 8199570 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - movs r3, 0 - bl InitMenuInUpperLeftCorner - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end InitMenuInUpperLeftCornerPlaySoundWhenAPressed - - thumb_func_start PrintMenuTable -PrintMenuTable: @ 819958C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r7, r1, 24 - movs r5, 0 - cmp r5, r7 - bcs _081995D0 - movs r6, 0x80 - lsls r6, 17 - adds r4, r2, 0 -_081995AA: - ldr r2, [r4] - lsrs r0, r6, 24 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - mov r0, r8 - movs r1, 0x1 - movs r3, 0x8 - bl Print - movs r0, 0x80 - lsls r0, 21 - adds r6, r0 - adds r4, 0x8 - adds r5, 0x1 - cmp r5, r7 - bcc _081995AA -_081995D0: - mov r0, r8 - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end PrintMenuTable - - thumb_func_start sub_81995E4 -sub_81995E4: @ 81995E4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - mov r9, r2 - mov r8, r3 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - mov r0, sp - movs r1, 0 - mov r10, r1 - strb r6, [r0, 0x4] - mov r1, sp - movs r0, 0x1 - strb r0, [r1, 0x5] - movs r1, 0x5 - bl GetFontAttribute - mov r3, sp - lsls r0, 4 - ldrb r2, [r3, 0xC] - movs r5, 0xF - adds r1, r5, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xC] - movs r0, 0x1 - movs r1, 0x6 - bl GetFontAttribute - mov r3, sp - adds r1, r5, 0 - ands r1, r0 - ldrb r2, [r3, 0xD] - movs r4, 0x10 - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0xD] - movs r0, 0x1 - movs r1, 0x7 - bl GetFontAttribute - mov r3, sp - lsls r0, 4 - ldrb r2, [r3, 0xD] - adds r1, r5, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xD] - movs r0, 0x1 - movs r1, 0x4 - bl GetFontAttribute - mov r1, sp - ands r5, r0 - ldrb r0, [r1, 0xC] - ands r4, r0 - orrs r4, r5 - strb r4, [r1, 0xC] - mov r0, sp - mov r1, r10 - strb r1, [r0, 0xA] - strb r1, [r0, 0xB] - movs r1, 0x8 - strb r1, [r0, 0x6] - strb r1, [r0, 0x8] - movs r4, 0 - cmp r4, r7 - bcs _081996A6 - mov r5, sp -_0819967C: - mov r1, r8 - adds r0, r1, r4 - ldrb r0, [r0] - lsls r0, 3 - add r0, r9 - ldr r0, [r0] - str r0, [sp] - lsls r0, r4, 4 - adds r0, 0x1 - strb r0, [r5, 0x7] - strb r0, [r5, 0x9] - mov r0, sp - movs r1, 0xFF - movs r2, 0 - bl AddTextPrinter - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r7 - bcc _0819967C -_081996A6: - adds r0, r6, 0 - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81995E4 - - thumb_func_start CreateYesNoMenu -@ void CreateYesNoMenu(struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos) -CreateYesNoMenu: @ 81996C0 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x10 - adds r4, r1, 0 - adds r5, r2, 0 - adds r6, r3, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - ldr r1, =gUnknown_0203CD9F - mov r8, r1 - bl AddWindow - mov r2, r8 - strb r0, [r2] - ldrb r0, [r2] - movs r1, 0x1 - adds r2, r4, 0 - adds r3, r5, 0 - bl SetWindowBorderStyle - ldr r0, =gUnknown_085EE491 - str r0, [sp] - mov r1, sp - mov r2, r8 - ldrb r0, [r2] - movs r2, 0 - mov r9, r2 - strb r0, [r1, 0x4] - mov r0, sp - movs r2, 0x1 - strb r2, [r0, 0x5] - movs r0, 0x8 - strb r0, [r1, 0x6] - mov r0, sp - strb r2, [r0, 0x7] - ldrb r0, [r0, 0x6] - strb r0, [r1, 0x8] - mov r0, sp - ldrb r0, [r0, 0x7] - strb r0, [r1, 0x9] - movs r0, 0x1 - movs r1, 0x5 - bl GetFontAttribute - mov r3, sp - lsls r0, 4 - ldrb r2, [r3, 0xC] - movs r5, 0xF - adds r1, r5, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xC] - movs r0, 0x1 - movs r1, 0x6 - bl GetFontAttribute - mov r3, sp - adds r1, r5, 0 - ands r1, r0 - ldrb r2, [r3, 0xD] - movs r4, 0x10 - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0xD] - movs r0, 0x1 - movs r1, 0x7 - bl GetFontAttribute - mov r3, sp - lsls r0, 4 - ldrb r2, [r3, 0xD] - adds r1, r5, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xD] - movs r0, 0x1 - movs r1, 0x4 - bl GetFontAttribute - mov r1, sp - ands r5, r0 - ldrb r0, [r1, 0xC] - ands r4, r0 - orrs r4, r5 - strb r4, [r1, 0xC] - mov r0, sp - mov r1, r9 - strb r1, [r0, 0xA] - strb r1, [r0, 0xB] - movs r1, 0xFF - movs r2, 0 - bl AddTextPrinter - mov r2, r8 - ldrb r0, [r2] - movs r1, 0x2 - adds r2, r6, 0 - bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end CreateYesNoMenu - - thumb_func_start sub_81997AC -sub_81997AC: @ 81997AC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0xC] - lsls r2, 24 - lsrs r6, r2, 24 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x10] - movs r7, 0 - cmp r7, r3 - bcs _08199824 -_081997D4: - movs r4, 0 - adds r0, r7, 0x1 - mov r9, r0 - cmp r4, r6 - bcs _0819981C - lsls r0, r7, 4 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r5, 0x80 - lsls r5, 20 -_081997EC: - adds r0, r7, 0 - muls r0, r6 - adds r0, r4 - lsls r0, 3 - ldr r1, [sp, 0x34] - adds r0, r1 - ldr r2, [r0] - lsrs r3, r5, 24 - mov r0, r8 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - mov r0, r10 - movs r1, 0x1 - bl Print - ldr r1, [sp, 0xC] - lsls r0, r1, 24 - adds r5, r0 - adds r4, 0x1 - cmp r4, r6 - bcc _081997EC -_0819981C: - mov r7, r9 - ldr r4, [sp, 0x10] - cmp r7, r4 - bcc _081997D4 -_08199824: - mov r0, r10 - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81997AC - - thumb_func_start sub_819983C -sub_819983C: @ 819983C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x10] - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x14] - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - lsls r3, 24 - lsrs r3, 24 - mov r10, r3 - mov r0, sp - movs r6, 0 - ldrb r1, [r0, 0x10] - strb r1, [r0, 0x4] - mov r1, sp - movs r0, 0x1 - strb r0, [r1, 0x5] - movs r1, 0x5 - bl GetFontAttribute - mov r3, sp - lsls r0, 4 - ldrb r2, [r3, 0xC] - movs r5, 0xF - adds r1, r5, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xC] - movs r0, 0x1 - movs r1, 0x6 - bl GetFontAttribute - mov r3, sp - adds r1, r5, 0 - ands r1, r0 - ldrb r2, [r3, 0xD] - movs r4, 0x10 - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0xD] - movs r0, 0x1 - movs r1, 0x7 - bl GetFontAttribute - mov r3, sp - lsls r0, 4 - ldrb r2, [r3, 0xD] - adds r1, r5, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xD] - movs r0, 0x1 - movs r1, 0x4 - bl GetFontAttribute - mov r1, sp - ands r5, r0 - ldrb r0, [r1, 0xC] - ands r4, r0 - orrs r4, r5 - strb r4, [r1, 0xC] - mov r0, sp - strb r6, [r0, 0xA] - strb r6, [r0, 0xB] - movs r7, 0 - cmp r7, r10 - bcs _0819992A -_081998D6: - movs r5, 0 - adds r2, r7, 0x1 - mov r9, r2 - cmp r5, r8 - bcs _08199920 - mov r4, sp - lsls r0, r7, 4 - adds r6, r0, 0x1 -_081998E6: - mov r0, r8 - muls r0, r7 - adds r0, r5 - ldr r1, [sp, 0x3C] - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, 3 - ldr r2, [sp, 0x38] - adds r0, r2 - ldr r0, [r0] - str r0, [sp] - ldr r1, [sp, 0x14] - adds r0, r1, 0 - muls r0, r5 - adds r0, 0x8 - strb r0, [r4, 0x6] - strb r6, [r4, 0x7] - strb r0, [r4, 0x8] - strb r6, [r4, 0x9] - mov r0, sp - movs r1, 0xFF - movs r2, 0 - bl AddTextPrinter - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r8 - bcc _081998E6 -_08199920: - mov r2, r9 - lsls r0, r2, 24 - lsrs r7, r0, 24 - cmp r7, r10 - bcc _081998D6 -_0819992A: - ldr r0, [sp, 0x10] - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_819983C - - thumb_func_start sub_8199944 -sub_8199944: @ 8199944 - push {r4-r7,lr} - ldr r4, [sp, 0x14] - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r7, r4, 24 - ldr r6, =gUnknown_0203CD90 - movs r4, 0 - mov r12, r4 - mov r4, r12 - strb r4, [r6] - movs r5, 0x1 - strb r5, [r6, 0x1] - strb r4, [r6, 0x3] - adds r4, r2, 0 - muls r4, r3 - subs r4, 0x1 - strb r4, [r6, 0x4] - strb r0, [r6, 0x5] - strb r5, [r6, 0x6] - strb r1, [r6, 0x7] - movs r0, 0x10 - strb r0, [r6, 0x8] - strb r2, [r6, 0x9] - strb r3, [r6, 0xA] - cmp r7, 0 - blt _08199986 - movs r0, 0x4 - ldrsb r0, [r6, r0] - cmp r7, r0 - ble _08199990 -_08199986: - mov r0, r12 - strb r0, [r6, 0x2] - b _08199992 - .pool -_08199990: - strb r7, [r6, 0x2] -_08199992: - movs r0, 0 - movs r1, 0 - bl sub_8199134 - ldr r0, =gUnknown_0203CD90 - ldrb r0, [r0, 0x2] - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8199944 - - thumb_func_start clear_scheduled_bg_copies_to_vram -@ void clear_scheduled_bg_copies_to_vram() -clear_scheduled_bg_copies_to_vram: @ 81999A8 - push {lr} - ldr r0, =gUnknown_0203CDA4 - movs r1, 0 - movs r2, 0x4 - bl memset - pop {r0} - bx r0 - .pool - thumb_func_end clear_scheduled_bg_copies_to_vram - - thumb_func_start schedule_bg_copy_tilemap_to_vram -@ void schedule_bg_copy_tilemap_to_vram(u8 bg_id) -schedule_bg_copy_tilemap_to_vram: @ 81999BC - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0203CDA4 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - bx lr - .pool - thumb_func_end schedule_bg_copy_tilemap_to_vram - - thumb_func_start do_scheduled_bg_tilemap_copies_to_vram -@ void do_scheduled_bg_tilemap_copies_to_vram() -do_scheduled_bg_tilemap_copies_to_vram: @ 81999D0 - push {r4,lr} - ldr r4, =gUnknown_0203CDA4 - ldrb r0, [r4] - cmp r0, 0x1 - bne _081999E4 - movs r0, 0 - bl CopyBgTilemapBufferToVram - movs r0, 0 - strb r0, [r4] -_081999E4: - ldrb r0, [r4, 0x1] - cmp r0, 0x1 - bne _081999F4 - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - movs r0, 0 - strb r0, [r4, 0x1] -_081999F4: - ldrb r0, [r4, 0x2] - cmp r0, 0x1 - bne _08199A04 - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - movs r0, 0 - strb r0, [r4, 0x2] -_08199A04: - ldrb r0, [r4, 0x3] - cmp r0, 0x1 - bne _08199A14 - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - movs r0, 0 - strb r0, [r4, 0x3] -_08199A14: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end do_scheduled_bg_tilemap_copies_to_vram - - thumb_func_start reset_temp_tile_data_buffers -@ void reset_temp_tile_data_buffers() -reset_temp_tile_data_buffers: @ 8199A20 - push {lr} - ldr r3, =gUnknown_0203CDA8 - ldr r1, =gUnknown_0203CDAC - movs r2, 0 - adds r0, r1, 0 - adds r0, 0x7C -_08199A2C: - str r2, [r0] - subs r0, 0x4 - cmp r0, r1 - bge _08199A2C - movs r0, 0 - strh r0, [r3] - pop {r0} - bx r0 - .pool - thumb_func_end reset_temp_tile_data_buffers - - thumb_func_start free_temp_tile_data_buffers_if_possible -free_temp_tile_data_buffers_if_possible: @ 8199A44 - push {r4-r6,lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _08199A88 - ldr r1, =gUnknown_0203CDA8 - ldrh r0, [r1] - cmp r0, 0 - beq _08199A7C - movs r4, 0 - ldrh r1, [r1] - cmp r4, r1 - bge _08199A76 - ldr r5, =gUnknown_0203CDAC - movs r6, 0 -_08199A64: - ldr r0, [r5] - bl Free - stm r5!, {r6} - adds r4, 0x1 - ldr r0, =gUnknown_0203CDA8 - ldrh r0, [r0] - cmp r4, r0 - blt _08199A64 -_08199A76: - ldr r1, =gUnknown_0203CDA8 - movs r0, 0 - strh r0, [r1] -_08199A7C: - movs r0, 0 - b _08199A8A - .pool -_08199A88: - movs r0, 0x1 -_08199A8A: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end free_temp_tile_data_buffers_if_possible - - thumb_func_start decompress_and_copy_tile_data_to_vram -@ int decompress_and_copy_tile_data_to_vram(u8 bg_id, int src, int size, u16 offset, u8 mode) -decompress_and_copy_tile_data_to_vram: @ 8199A90 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - adds r4, r1, 0 - adds r5, r2, 0 - ldr r1, [sp, 0x24] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r3, 16 - lsrs r3, 16 - mov r9, r3 - lsls r1, 24 - lsrs r7, r1, 24 - ldr r6, =gUnknown_0203CDA8 - ldrh r0, [r6] - cmp r0, 0x1F - bhi _08199AF8 - adds r0, r4, 0 - add r1, sp, 0x4 - bl malloc_and_decompress - adds r4, r0, 0 - cmp r5, 0 - bne _08199AC8 - ldr r5, [sp, 0x4] -_08199AC8: - cmp r4, 0 - beq _08199AEC - lsls r2, r5, 16 - lsrs r2, 16 - str r7, [sp] - mov r0, r8 - adds r1, r4, 0 - mov r3, r9 - bl copy_decompressed_tile_data_to_vram - ldr r2, =gUnknown_0203CDAC - ldrh r0, [r6] - adds r1, r0, 0x1 - strh r1, [r6] - lsls r0, 16 - lsrs r0, 14 - adds r0, r2 - str r4, [r0] -_08199AEC: - adds r0, r4, 0 - b _08199AFA - .pool -_08199AF8: - movs r0, 0 -_08199AFA: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end decompress_and_copy_tile_data_to_vram - - thumb_func_start copy_decompressed_tile_data_to_vram_autofree -@ void copy_decompressed_tile_data_to_vram_autofree(u8 bg_id, int src, u16 size, u16 offset, u8 mode) -copy_decompressed_tile_data_to_vram_autofree: @ 8199B08 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - adds r5, r2, 0 - ldr r2, [sp, 0x24] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r3, 16 - lsrs r3, 16 - mov r9, r3 - lsls r2, 24 - lsrs r7, r2, 24 - adds r0, r1, 0 - add r1, sp, 0x4 - bl malloc_and_decompress - adds r6, r0, 0 - cmp r5, 0 - bne _08199B36 - ldr r5, [sp, 0x4] -_08199B36: - cmp r6, 0 - beq _08199B6E - ldr r0, =task_free_buf_after_copying_tile_data_to_vram - movs r1, 0 - bl CreateTask - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r2, r5, 16 - lsrs r2, 16 - str r7, [sp] - mov r0, r8 - adds r1, r6, 0 - mov r3, r9 - bl copy_decompressed_tile_data_to_vram - ldr r2, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r2 - strh r0, [r1, 0x8] - adds r0, r4, 0 - movs r1, 0x1 - adds r2, r6, 0 - bl SetWordTaskArg -_08199B6E: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end copy_decompressed_tile_data_to_vram_autofree - - thumb_func_start task_free_buf_after_copying_tile_data_to_vram -@ void task_free_buf_after_copying_tile_data_to_vram(int task_id) -task_free_buf_after_copying_tile_data_to_vram: @ 8199B84 - 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 - movs r1, 0x8 - ldrsh r0, [r0, r1] - bl CheckForSpaceForDma3Request - lsls r0, 16 - cmp r0, 0 - bne _08199BB4 - adds r0, r4, 0 - movs r1, 0x1 - bl GetWordTaskArg - bl Free - adds r0, r4, 0 - bl DestroyTask -_08199BB4: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end task_free_buf_after_copying_tile_data_to_vram - - thumb_func_start malloc_and_decompress -@ void *malloc_and_decompress(void *src, int *size) -malloc_and_decompress: @ 8199BC0 - push {r4,r5,lr} - adds r5, r0, 0 - ldrb r0, [r5, 0x1] - strb r0, [r1] - ldrb r0, [r5, 0x2] - strb r0, [r1, 0x1] - ldrb r0, [r5, 0x3] - strb r0, [r1, 0x2] - movs r0, 0 - strb r0, [r1, 0x3] - ldr r0, [r1] - bl Alloc - adds r4, r0, 0 - cmp r4, 0 - beq _08199BE8 - adds r0, r5, 0 - adds r1, r4, 0 - bl LZ77UnCompWram -_08199BE8: - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end malloc_and_decompress - - thumb_func_start copy_decompressed_tile_data_to_vram -@ s16 copy_decompressed_tile_data_to_vram(u8 bg_id, int src, u16 size, u16 offset, u8 mode) -copy_decompressed_tile_data_to_vram: @ 8199BF0 - push {r4,lr} - adds r4, r1, 0 - ldr r1, [sp, 0x8] - lsls r0, 24 - lsrs r0, 24 - lsls r2, 16 - lsrs r2, 16 - lsls r3, 16 - lsrs r3, 16 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0 - beq _08199C18 - cmp r1, 0x1 - beq _08199C20 - ldr r0, =0x0000ffff - b _08199C2A - .pool -_08199C18: - adds r1, r4, 0 - bl LoadBgTiles - b _08199C26 -_08199C20: - adds r1, r4, 0 - bl LoadBgTilemap -_08199C26: - lsls r0, 16 - lsrs r0, 16 -_08199C2A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end copy_decompressed_tile_data_to_vram - - thumb_func_start sub_8199C30 -sub_8199C30: @ 8199C30 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r5, r2, 0 - ldr r4, [sp, 0x28] - ldr r2, [sp, 0x2C] - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp] - lsls r5, 24 - lsrs r5, 24 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x4] - lsls r4, 24 - lsrs r4, 24 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - bl GetBgTilemapBuffer - mov r8, r0 - adds r0, r5, r4 - cmp r5, r0 - bge _08199CA8 - mov r9, r0 -_08199C6E: - ldr r3, [sp] - ldr r1, [sp, 0x4] - adds r0, r3, r1 - adds r7, r5, 0x1 - cmp r3, r0 - bge _08199CA0 - lsls r6, r5, 5 - ldr r1, =0x00000fff - mov r12, r1 - mov r1, r10 - lsls r5, r1, 12 - adds r4, r0, 0 -_08199C86: - adds r1, r6, r3 - lsls r1, 1 - add r1, r8 - ldrh r2, [r1] - mov r0, r12 - ands r0, r2 - orrs r0, r5 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r4 - blt _08199C86 -_08199CA0: - lsls r0, r7, 24 - lsrs r5, r0, 24 - cmp r5, r9 - blt _08199C6E -_08199CA8: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8199C30 - - thumb_func_start sub_8199CBC -sub_8199CBC: @ 8199CBC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r10, r1 - ldr r1, [sp, 0x24] - ldr r4, [sp, 0x28] - lsls r0, 24 - lsrs r0, 24 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp] - lsls r1, 24 - lsrs r5, r1, 24 - lsls r4, 24 - lsrs r4, 24 - mov r8, r4 - bl GetBgTilemapBuffer - adds r7, r0, 0 - movs r0, 0 - cmp r0, r8 - bcs _08199D2A -_08199CF4: - movs r2, 0 - adds r6, r0, 0x1 - cmp r2, r5 - bcs _08199D22 - adds r4, r0, 0 - muls r4, r5 - ldr r1, [sp] - adds r0, r1 - lsls r3, r0, 5 -_08199D06: - adds r1, r4, r2 - lsls r1, 1 - add r1, r10 - adds r0, r3, r2 - add r0, r9 - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r5 - bcc _08199D06 -_08199D22: - lsls r0, r6, 24 - lsrs r0, 24 - cmp r0, r8 - bcc _08199CF4 -_08199D2A: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8199CBC - - thumb_func_start sub_8199D3C -sub_8199D3C: @ 8199D3C - push {r4-r7,lr} - adds r6, r0, 0 - adds r5, r1, 0 - ldr r0, [sp, 0x14] - adds r4, r2, 0 - muls r4, r3 - cmp r0, 0x1 - bne _08199D64 - adds r3, r6, 0 - movs r2, 0 - cmp r2, r4 - bge _08199D8C -_08199D54: - adds r1, r3, r2 - ldrb r0, [r1] - adds r0, r5 - strb r0, [r1] - adds r2, 0x1 - cmp r2, r4 - blt _08199D54 - b _08199D8C -_08199D64: - cmp r4, 0 - ble _08199D8C - movs r0, 0xFC - lsls r0, 8 - mov r12, r0 - ldr r0, =0x000003ff - adds r7, r0, 0 - adds r3, r6, 0 - adds r2, r4, 0 -_08199D76: - ldrh r0, [r3] - mov r1, r12 - ands r1, r0 - adds r0, r5 - ands r0, r7 - orrs r1, r0 - strh r1, [r3] - adds r3, 0x2 - subs r2, 0x1 - cmp r2, 0 - bne _08199D76 -_08199D8C: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8199D3C - - thumb_func_start sub_8199D98 -sub_8199D98: @ 8199D98 - push {lr} - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - pop {r0} - bx r0 - thumb_func_end sub_8199D98 - - thumb_func_start sub_8199DF0 -sub_8199DF0: @ 8199DF0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r8, r2 - mov r9, r3 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - movs r1, 0x4 - bl GetBgAttribute - lsls r0, 16 - movs r7, 0x40 - cmp r0, 0 - bne _08199E16 - movs r7, 0x20 -_08199E16: - adds r0, r5, 0 - movs r1, 0x1 - bl GetBgAttribute - adds r4, r0, 0 - adds r0, r5, 0 - movs r1, 0xA - bl GetBgAttribute - lsls r4, 16 - lsrs r4, 2 - lsls r0, 16 - lsrs r0, 16 - add r0, r8 - muls r0, r7 - adds r4, r0 - lsls r0, r6, 24 - lsls r1, r6, 16 - orrs r0, r1 - lsls r1, r6, 8 - orrs r0, r1 - orrs r0, r6 - movs r1, 0xC0 - lsls r1, 19 - adds r4, r1 - mov r2, r9 - muls r2, r7 - lsls r2, 16 - lsrs r2, 16 - adds r1, r4, 0 - movs r3, 0x1 - bl RequestDma3Fill - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8199DF0 - - thumb_func_start box_print -box_print: @ 8199E64 - push {r4-r6,lr} - sub sp, 0x10 - adds r4, r1, 0 - ldr r6, [sp, 0x20] - ldr r5, [sp, 0x24] - ldr r1, [sp, 0x28] - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - str r1, [sp] - mov r1, sp - strb r0, [r1, 0x4] - mov r0, sp - strb r4, [r0, 0x5] - strb r2, [r0, 0x6] - strb r3, [r0, 0x7] - ldrb r0, [r0, 0x6] - strb r0, [r1, 0x8] - mov r0, sp - ldrb r0, [r0, 0x7] - strb r0, [r1, 0x9] - adds r0, r4, 0 - movs r1, 0x2 - bl GetFontAttribute - mov r1, sp - strb r0, [r1, 0xA] - adds r0, r4, 0 - movs r1, 0x3 - bl GetFontAttribute - mov r1, sp - strb r0, [r1, 0xB] - mov r3, sp - ldrb r2, [r3, 0xC] - movs r1, 0x10 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3, 0xC] - mov r2, sp - ldrb r0, [r6, 0x1] - lsls r0, 4 - movs r4, 0xF - strb r0, [r2, 0xC] - ldrb r2, [r6] - adds r0, r4, 0 - ands r0, r2 - ldrb r2, [r3, 0xD] - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xD] - mov r2, sp - ldrb r0, [r6, 0x2] - lsls r0, 4 - ands r1, r4 - orrs r1, r0 - strb r1, [r2, 0xD] - mov r0, sp - adds r1, r5, 0 - movs r2, 0 - bl AddTextPrinter - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end box_print - - thumb_func_start AddTextPrinterParametrized2 -@ void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, struct TextColor *color, u8 speed, u8 *str) -AddTextPrinterParametrized2: @ 8199EEC - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x10 - adds r5, r1, 0 - ldr r1, [sp, 0x28] - mov r8, r1 - ldr r1, [sp, 0x2C] - mov r9, r1 - ldr r6, [sp, 0x30] - ldr r1, [sp, 0x34] - ldr r4, [sp, 0x38] - str r4, [sp] - mov r4, sp - strb r0, [r4, 0x4] - mov r0, sp - strb r5, [r0, 0x5] - strb r2, [r0, 0x6] - strb r3, [r0, 0x7] - mov r2, sp - ldrb r0, [r0, 0x6] - strb r0, [r2, 0x8] - mov r0, sp - ldrb r0, [r0, 0x7] - strb r0, [r2, 0x9] - mov r0, sp - mov r2, r8 - strb r2, [r0, 0xA] - mov r2, r9 - strb r2, [r0, 0xB] - ldrb r3, [r4, 0xC] - movs r2, 0x10 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r4, 0xC] - mov r3, sp - ldrb r0, [r6, 0x1] - lsls r0, 4 - movs r5, 0xF - strb r0, [r3, 0xC] - ldrb r3, [r6] - adds r0, r5, 0 - ands r0, r3 - ldrb r3, [r4, 0xD] - ands r2, r3 - orrs r2, r0 - strb r2, [r4, 0xD] - mov r3, sp - ldrb r0, [r6, 0x2] - lsls r0, 4 - ands r2, r5 - orrs r2, r0 - strb r2, [r3, 0xD] - lsls r1, 24 - lsrs r1, 24 - mov r0, sp - movs r2, 0 - bl AddTextPrinter - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end AddTextPrinterParametrized2 - - thumb_func_start sub_8199F74 -sub_8199F74: @ 8199F74 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - adds r6, r1, 0 - ldr r4, [sp, 0x2C] - ldr r1, [sp, 0x30] - mov r8, r1 - ldr r7, [sp, 0x34] - ldr r5, [sp, 0x38] - ldr r1, [sp, 0x3C] - mov r9, r1 - lsls r6, 24 - lsrs r6, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - str r2, [sp] - mov r1, sp - strb r0, [r1, 0x4] - mov r0, sp - strb r6, [r0, 0x5] - strb r3, [r0, 0x6] - strb r4, [r0, 0x7] - strb r3, [r0, 0x8] - strb r4, [r0, 0x9] - strb r5, [r0, 0xA] - mov r1, r9 - strb r1, [r0, 0xB] - mov r2, sp - ldrb r1, [r2, 0xC] - movs r5, 0x10 - negs r5, r5 - adds r0, r5, 0 - ands r0, r1 - strb r0, [r2, 0xC] - adds r0, r6, 0 - movs r1, 0x5 - bl GetFontAttribute - mov r3, sp - lsls r0, 4 - ldrb r2, [r3, 0xC] - movs r4, 0xF - adds r1, r4, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xC] - adds r0, r6, 0 - movs r1, 0x6 - bl GetFontAttribute - mov r2, sp - adds r1, r4, 0 - ands r1, r0 - ldrb r0, [r2, 0xD] - ands r5, r0 - orrs r5, r1 - strb r5, [r2, 0xD] - adds r0, r6, 0 - movs r1, 0x7 - bl GetFontAttribute - mov r2, sp - lsls r0, 4 - ldrb r1, [r2, 0xD] - ands r4, r1 - orrs r4, r0 - strb r4, [r2, 0xD] - mov r0, sp - mov r1, r8 - adds r2, r7, 0 - bl AddTextPrinter - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8199F74 - - thumb_func_start sub_819A024 -sub_819A024: @ 819A024 - push {r4-r7,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r7, r0, 24 - lsls r2, 16 - lsrs r4, r2, 16 - lsls r3, 16 - lsrs r5, r3, 16 - movs r2, 0 - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldrb r0, [r3] - ldr r6, =gStringVar4 - cmp r0, 0xFF - beq _0819A04C -_0819A042: - adds r2, 0x1 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, 0xFF - bne _0819A042 -_0819A04C: - adds r0, r6, 0 - bl StringExpandPlaceholders - lsls r3, r4, 24 - lsrs r3, 24 - lsls r0, r5, 24 - lsrs r0, 24 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r7, 0 - movs r1, 0x1 - adds r2, r6, 0 - bl Print - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819A024 - - thumb_func_start sub_819A080 -sub_819A080: @ 819A080 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - str r0, [sp] - str r1, [sp, 0x4] - ldr r0, [sp, 0x48] - ldr r4, [sp, 0x4C] - ldr r1, [sp, 0x50] - ldr r5, [sp, 0x54] - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x8] - lsls r3, 16 - lsrs r3, 16 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0xC] - lsls r4, 16 - lsrs r4, 16 - lsls r1, 16 - lsrs r1, 16 - lsls r5, 16 - lsrs r5, 16 - ldr r2, [sp, 0x4] - ldrh r0, [r2, 0x4] - ldr r2, [sp, 0xC] - subs r0, r2 - ldr r2, [sp, 0x8] - adds r2, r1, r2 - str r2, [sp, 0x10] - cmp r0, r1 - bge _0819A0CC - ldr r1, [sp, 0x8] - adds r0, r1 - str r0, [sp, 0x10] -_0819A0CC: - ldr r2, [sp, 0x4] - ldrh r1, [r2, 0x6] - subs r0, r1, r4 - cmp r0, r5 - bge _0819A0DE - adds r0, r3, r1 - subs r0, r4 - str r0, [sp, 0x14] - b _0819A0E2 -_0819A0DE: - adds r5, r3, r5 - str r5, [sp, 0x14] -_0819A0E2: - ldr r0, [sp] - ldrh r1, [r0, 0x4] - movs r2, 0x7 - adds r0, r1, 0 - ands r0, r2 - adds r1, r0 - asrs r1, 3 - str r1, [sp, 0x18] - ldr r0, [sp, 0x4] - ldrh r1, [r0, 0x4] - adds r0, r1, 0 - ands r0, r2 - adds r1, r0 - asrs r1, 3 - str r1, [sp, 0x1C] - mov r12, r3 - mov r8, r4 - ldr r1, [sp, 0x14] - cmp r12, r1 - blt _0819A10C - b _0819A24A -_0819A10C: - ldr r5, [sp, 0x8] - ldr r6, [sp, 0xC] - mov r2, r12 - adds r2, 0x1 - str r2, [sp, 0x20] - mov r0, r8 - adds r0, 0x1 - str r0, [sp, 0x24] - ldr r1, [sp, 0x10] - cmp r5, r1 - blt _0819A124 - b _0819A23A -_0819A124: - movs r7, 0x1 - movs r2, 0xF0 - mov r10, r2 - movs r0, 0xF - mov r9, r0 -_0819A12E: - asrs r0, r5, 1 - movs r1, 0x3 - ands r0, r1 - ldr r2, [sp] - ldr r1, [r2] - adds r1, r0 - asrs r0, r5, 3 - lsls r0, 5 - adds r1, r0 - mov r2, r12 - asrs r0, r2, 3 - ldr r2, [sp, 0x18] - muls r0, r2 - lsls r0, 5 - adds r1, r0 - mov r2, r12 - lsls r0, r2, 29 - lsrs r0, 27 - adds r3, r1, r0 - asrs r0, r6, 1 - movs r1, 0x3 - ands r0, r1 - ldr r2, [sp, 0x4] - ldr r1, [r2] - adds r1, r0 - asrs r0, r6, 3 - lsls r0, 5 - adds r1, r0 - mov r2, r8 - asrs r0, r2, 3 - ldr r2, [sp, 0x1C] - muls r0, r2 - lsls r0, 5 - adds r1, r0 - mov r2, r8 - lsls r0, r2, 29 - lsrs r0, 27 - adds r4, r1, r0 - adds r0, r4, 0 - ands r0, r7 - cmp r0, 0 - beq _0819A1DA - subs r4, 0x1 - adds r0, r6, 0 - ands r0, r7 - cmp r0, 0 - beq _0819A1B2 - ldrh r0, [r4] - ldr r2, =0x00000fff - ands r2, r0 - adds r0, r5, 0 - ands r0, r7 - cmp r0, 0 - beq _0819A1A8 - ldrb r1, [r3] - mov r0, r10 - ands r0, r1 - lsls r0, 8 - b _0819A22A - .pool -_0819A1A8: - ldrb r1, [r3] - mov r0, r9 - ands r0, r1 - lsls r0, 12 - b _0819A22A -_0819A1B2: - ldrh r0, [r4] - ldr r2, =0x0000f0ff - ands r2, r0 - adds r0, r5, 0 - ands r0, r7 - cmp r0, 0 - beq _0819A1D0 - ldrb r1, [r3] - mov r0, r10 - ands r0, r1 - lsls r0, 4 - b _0819A22A - .pool -_0819A1D0: - ldrb r1, [r3] - mov r0, r9 - ands r0, r1 - lsls r0, 8 - b _0819A22A -_0819A1DA: - adds r0, r6, 0 - ands r0, r7 - cmp r0, 0 - beq _0819A206 - ldrh r0, [r4] - ldr r2, =0x0000ff0f - ands r2, r0 - adds r0, r5, 0 - ands r0, r7 - cmp r0, 0 - beq _0819A1FC - ldrb r1, [r3] - mov r0, r10 - b _0819A228 - .pool -_0819A1FC: - ldrb r1, [r3] - mov r0, r9 - ands r0, r1 - lsls r0, 4 - b _0819A22A -_0819A206: - ldrh r0, [r4] - ldr r2, =0x0000fff0 - ands r2, r0 - adds r0, r5, 0 - ands r0, r7 - cmp r0, 0 - beq _0819A224 - ldrb r1, [r3] - mov r0, r10 - ands r0, r1 - lsrs r0, 4 - b _0819A22A - .pool -_0819A224: - ldrb r1, [r3] - mov r0, r9 -_0819A228: - ands r0, r1 -_0819A22A: - orrs r2, r0 - strh r2, [r4] - adds r5, 0x1 - adds r6, 0x1 - ldr r0, [sp, 0x10] - cmp r5, r0 - bge _0819A23A - b _0819A12E -_0819A23A: - ldr r1, [sp, 0x20] - mov r12, r1 - ldr r2, [sp, 0x24] - mov r8, r2 - ldr r0, [sp, 0x14] - cmp r12, r0 - bge _0819A24A - b _0819A10C -_0819A24A: - add sp, 0x28 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_819A080 - - thumb_func_start sub_819A25C -sub_819A25C: @ 819A25C - push {r4,lr} - adds r4, r0, 0 - adds r0, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, 16 - lsrs r0, 16 - bl sub_80D30B0 - adds r1, r4, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_819A25C - - thumb_func_start sub_819A27C -sub_819A27C: @ 819A27C - push {r4-r6,lr} - sub sp, 0x8 - adds r6, r0, 0 - adds r0, r1, 0 - adds r1, r2, 0 - adds r4, r3, 0 - ldr r5, [sp, 0x18] - lsls r6, 24 - lsrs r6, 24 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - movs r2, 0x1 - bl sub_80D2EDC - adds r1, r0, 0 - movs r0, 0x20 - str r0, [sp] - str r0, [sp, 0x4] - adds r0, r6, 0 - adds r2, r4, 0 - adds r3, r5, 0 - bl BlitBitmapToWindow - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_819A27C - - thumb_func_start sub_819A2BC -sub_819A2BC: @ 819A2BC - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x1 - beq _0819A2DC - cmp r1, 0x1 - ble _0819A2D2 - cmp r1, 0x2 - beq _0819A2E4 -_0819A2D2: - ldr r0, =gUnknown_08DC4318 - b _0819A2E6 - .pool -_0819A2DC: - ldr r0, =gUnknown_08DC4338 - b _0819A2E6 - .pool -_0819A2E4: - ldr r0, =gUnknown_08DC4358 -_0819A2E6: - adds r1, r2, 0 - movs r2, 0x20 - bl LoadPalette - pop {r0} - bx r0 - .pool - thumb_func_end sub_819A2BC - - thumb_func_start blit_move_info_icon -@ void blit_move_info_icon(u8 windowId, u8 a2, u16 x, u16 y) -blit_move_info_icon: @ 819A2F8 - push {r4,r5,lr} - sub sp, 0x18 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsls r2, 16 - lsrs r2, 16 - lsls r3, 16 - lsrs r3, 16 - ldr r4, =gUnknown_0860F0D4 - lsrs r1, 22 - adds r1, r4 - ldrh r5, [r1, 0x2] - lsls r5, 5 - ldr r4, =gUnknown_08DC4378 - adds r5, r4 - movs r4, 0x80 - str r4, [sp] - str r4, [sp, 0x4] - str r2, [sp, 0x8] - str r3, [sp, 0xC] - ldrb r2, [r1] - str r2, [sp, 0x10] - ldrb r1, [r1, 0x1] - str r1, [sp, 0x14] - adds r1, r5, 0 - movs r2, 0 - movs r3, 0 - bl BlitBitmapRectToWindow - add sp, 0x18 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end blit_move_info_icon - - thumb_func_start sub_819A344 -sub_819A344: @ 819A344 - push {r4-r7,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r2, 24 - lsrs r2, 24 - adds r5, r1, 0 - movs r1, 0xFC - strb r1, [r5] - adds r5, 0x1 - movs r0, 0x1 - strb r0, [r5] - adds r5, 0x1 - strb r2, [r5] - adds r5, 0x1 - strb r1, [r5] - adds r5, 0x1 - movs r0, 0x3 - strb r0, [r5] - adds r5, 0x1 - adds r2, 0x1 - strb r2, [r5] - adds r5, 0x1 - cmp r3, 0x4 - bhi _0819A43C - lsls r0, r3, 2 - ldr r1, =_0819A384 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0819A384: - .4byte _0819A398 - .4byte _0819A3A8 - .4byte _0819A3D6 - .4byte _0819A404 - .4byte _0819A414 -_0819A398: - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - adds r0, r5, 0 - bl StringCopy - b _0819A43C - .pool -_0819A3A8: - bl sub_809D42C - cmp r0, 0 - beq _0819A3B8 - movs r0, 0x1 - bl pokedex_count - b _0819A3BE -_0819A3B8: - movs r0, 0x1 - bl sub_80C0844 -_0819A3BE: - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r5, r0, 0 - movs r0, 0xFF - strb r0, [r5] - b _0819A43C -_0819A3D6: - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldrh r1, [r0, 0xE] - adds r0, r5, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r5, r0, 0 - movs r0, 0xF0 - strb r0, [r5] - adds r5, 0x1 - ldr r0, [r4] - ldrb r1, [r0, 0x10] - adds r0, r5, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - b _0819A43C - .pool -_0819A404: - ldr r0, =gUnknown_02037318 - ldrb r1, [r0, 0x14] - adds r0, r5, 0 - bl sub_81245DC - b _0819A43C - .pool -_0819A414: - ldr r4, =0x00000867 - movs r6, 0 - adds r7, r5, 0x1 -_0819A41A: - lsls r0, r4, 16 - lsrs r0, 16 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0819A42A - adds r6, 0x1 -_0819A42A: - adds r4, 0x1 - ldr r0, =0x0000086e - cmp r4, r0 - ble _0819A41A - adds r0, r6, 0 - subs r0, 0x5F - strb r0, [r5] - movs r0, 0xFF - strb r0, [r7] -_0819A43C: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819A344 - - thumb_func_start sub_819A44C -sub_819A44C: @ 819A44C - push {r4,r5,lr} - adds r5, r0, 0 - ldrb r4, [r5, 0x5] - lsrs r4, 4 - movs r0, 0x65 - bl IndexOfObjectPaletteTag - lsls r0, 24 - lsls r4, 16 - lsrs r4, 16 - lsrs r0, 24 - cmp r4, r0 - bne _0819A4BA - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0819A4B0 - ldrh r1, [r5, 0x2E] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _0819A484 - subs r0, r1, 0x1 - strh r0, [r5, 0x2E] - b _0819A4C2 -_0819A484: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x5 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _0819A4A6 - adds r0, r5, 0 - movs r1, 0 - bl StartObjectImageAnim - movs r0, 0x20 - strh r0, [r5, 0x2E] - b _0819A4C2 -_0819A4A6: - adds r0, r5, 0 - movs r1, 0x1 - bl StartObjectImageAnim - b _0819A4C2 -_0819A4B0: - adds r0, r5, 0 - movs r1, 0x1 - bl StartObjectImageAnimIfDifferent - b _0819A4C2 -_0819A4BA: - adds r0, r5, 0 - movs r1, 0 - bl StartObjectImageAnimIfDifferent -_0819A4C2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_819A44C - - thumb_func_start sub_819A4C8 -sub_819A4C8: @ 819A4C8 - push {lr} - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad - bl RunTextPrinters - bl UpdatePaletteFade - bl RunTasks - pop {r0} - bx r0 - thumb_func_end sub_819A4C8 - - thumb_func_start sub_819A4E4 -sub_819A4E4: @ 819A4E4 - push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_819A4E4 - - thumb_func_start sub_819A4F8 -sub_819A4F8: @ 819A4F8 - push {lr} - ldr r0, =gUnknown_0300127C - movs r1, 0 - str r1, [r0] - ldr r0, =sub_819A514 - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end sub_819A4F8 - - thumb_func_start sub_819A514 -sub_819A514: @ 819A514 - push {r4,r5,lr} - sub sp, 0xC - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xA - bls _0819A528 - b _0819A98E -_0819A528: - lsls r0, 2 - ldr r1, =_0819A53C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0819A53C: - .4byte _0819A568 - .4byte _0819A5C0 - .4byte _0819A69C - .4byte _0819A77C - .4byte _0819A7CC - .4byte _0819A868 - .4byte _0819A8A4 - .4byte _0819A8AC - .4byte _0819A8C4 - .4byte _0819A8DC - .4byte _0819A8FC -_0819A568: - ldr r4, =gUnknown_0203CE3C - ldr r0, [r4] - cmp r0, 0 - beq _0819A578 - bl Free - movs r0, 0 - str r0, [r4] -_0819A578: - movs r0, 0 - bl SetHBlankCallback - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - str r0, [sp, 0x8] - movs r1, 0xC0 - lsls r1, 19 - ldr r2, =0x05006000 - add r0, sp, 0x8 - bl CpuSet - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_08610428 - movs r0, 0 - movs r2, 0x3 - bl InitBgsFromTemplates - ldr r0, =gUnknown_08610434 - bl InitWindows - bl DeactivateAllTextPrinters - b _0819A8E6 - .pool -_0819A5C0: - ldr r5, =gUnknown_0203CE2C - movs r4, 0x88 - lsls r4, 3 - adds r0, r4, 0 - bl Alloc - str r0, [r5] - ldr r5, =gUnknown_0203CE30 - adds r0, r4, 0 - bl AllocZeroed - str r0, [r5] - ldr r5, =gUnknown_0203CE34 - movs r4, 0x80 - lsls r4, 4 - adds r0, r4, 0 - bl Alloc - str r0, [r5] - ldr r5, =gUnknown_0203CE38 - adds r0, r4, 0 - bl AllocZeroed - str r0, [r5] - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4C - movs r1, 0 - bl SetGpuReg - movs r0, 0x40 - movs r1, 0 - bl SetGpuReg - movs r0, 0x44 - movs r1, 0 - bl SetGpuReg - movs r0, 0x42 - movs r1, 0 - bl SetGpuReg - movs r0, 0x46 - movs r1, 0 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4A - movs r1, 0 - bl SetGpuReg - ldr r1, =gMain - movs r3, 0x87 - lsls r3, 3 - adds r1, r3 - b _0819A8EE - .pool -_0819A69C: - bl ResetPaletteFade - bl ResetAllObjectData - bl ResetTasks - bl ResetObjectPaletteAllocator - ldr r0, =gUnknown_08DC0754 - ldr r5, =gUnknown_0203CE2C - ldr r1, [r5] - movs r2, 0x88 - lsls r2, 2 - bl CpuSet - ldr r0, =gUnknown_0861033C - ldr r4, =gUnknown_0203CE30 - ldr r1, [r4] - movs r2, 0x30 - bl CpuSet - ldr r1, [r5] - movs r2, 0x88 - lsls r2, 3 - movs r0, 0x1 - movs r3, 0 - bl LoadBgTiles - ldr r1, [r4] - movs r0, 0x3 - movs r2, 0x60 - movs r3, 0 - bl LoadBgTiles - ldr r0, =gUnknown_08DC0B94 - ldr r4, =gUnknown_0203CE34 - ldr r1, [r4] - movs r2, 0x80 - lsls r2, 3 - bl CpuSet - ldr r1, [r4] - movs r2, 0x80 - lsls r2, 4 - movs r0, 0x1 - movs r3, 0 - bl LoadBgTilemap - ldr r0, =gUnknown_08DC0714 - movs r1, 0 - movs r2, 0x40 - bl LoadPalette - ldr r4, =gUnknown_0861046C - adds r0, r4, 0 - movs r1, 0xF0 - movs r2, 0x8 - bl LoadPalette - adds r0, r4, 0 - movs r1, 0xE0 - movs r2, 0xA - bl LoadPalette - ldr r0, =gUnknown_0300127C - ldr r1, [r0] - ldrb r0, [r1, 0x6] - cmp r0, 0x1 - bne _0819A738 - ldr r0, =gPlttBufferUnfaded - movs r2, 0xA9 - lsls r2, 2 - adds r1, r2 - ldrh r1, [r1] - movs r3, 0xE4 - lsls r3, 1 - adds r0, r3 - strh r1, [r0] -_0819A738: - ldr r0, =gUnknown_0861039C - movs r1, 0x20 - movs r2, 0x4 - bl LoadPalette - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _0819A8EE - .pool -_0819A77C: - ldr r0, =gUnknown_0203CE38 - ldr r1, [r0] - movs r0, 0x3 - bl SetBgTilemapBuffer - ldr r5, =gUnknown_0861023C - movs r4, 0x8 - str r4, [sp] - str r4, [sp, 0x4] - movs r0, 0x3 - adds r1, r5, 0 - movs r2, 0xB - movs r3, 0x4 - bl CopyToBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - movs r0, 0x3 - adds r1, r5, 0 - movs r2, 0x2 - movs r3, 0x4 - bl CopyToBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - movs r0, 0x3 - adds r1, r5, 0 - movs r2, 0x14 - movs r3, 0x4 - bl CopyToBgTilemapBufferRect - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - b _0819A8E6 - .pool -_0819A7CC: - ldr r0, =gUnknown_086103F4 - bl LoadTaggedObjectPalettes - ldr r0, =gUnknown_086103BC - bl LoadObjectPics - ldr r0, =gUnknown_086103E4 - bl LoadCompressedObjectPic - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - ldr r0, =sub_819A4E4 - bl SetVBlankCallback - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r1, 0x9A - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - ldr r0, =gUnknown_0300127C - ldr r0, [r0] - ldrb r0, [r0, 0x6] - cmp r0, 0x1 - bne _0819A854 - movs r0, 0x58 - movs r1, 0x98 - movs r2, 0x20 - movs r3, 0x60 - bl sub_819C5D0 - movs r0, 0x3 - bl ShowBg - ldr r1, =0x00001248 - movs r0, 0x50 - bl SetGpuReg - ldr r1, =0x0000040b - movs r0, 0x52 - bl SetGpuReg - b _0819A85A - .pool -_0819A854: - movs r0, 0x3 - bl HideBg -_0819A85A: - ldr r1, =gMain - movs r3, 0x87 - lsls r3, 3 - adds r1, r3 - b _0819A8EE - .pool -_0819A868: - ldr r4, =gUnknown_0300127C - ldr r1, [r4] - ldrb r0, [r1, 0x6] - cmp r0, 0x1 - bne _0819A878 - ldr r0, =gUnknown_0203CF20 - ldrb r0, [r0] - strb r0, [r1, 0x3] -_0819A878: - bl sub_819A9AC - bl sub_819AA18 - ldr r0, [r4] - ldrb r0, [r0, 0x6] - cmp r0, 0x1 - bne _0819A88C - bl sub_819BE34 -_0819A88C: - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _0819A8EE - .pool -_0819A8A4: - bl sub_819BA64 - movs r0, 0x2 - b _0819A8E2 -_0819A8AC: - bl sub_819BCF8 - movs r0, 0x5 - bl PutWindowTilemap - ldr r1, =gMain - movs r3, 0x87 - lsls r3, 3 - adds r1, r3 - b _0819A8EE - .pool -_0819A8C4: - bl sub_819B9E8 - movs r0, 0x1 - bl PutWindowTilemap - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _0819A8EE - .pool -_0819A8DC: - bl sub_819B9B4 - movs r0, 0 -_0819A8E2: - bl PutWindowTilemap -_0819A8E6: - ldr r1, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r1, r2 -_0819A8EE: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0819A98E - .pool -_0819A8FC: - ldr r0, =sub_819C69C - movs r1, 0 - bl CreateTask - ldr r2, =gUnknown_0300127C - ldr r1, [r2] - ldr r3, =0x000002a1 - adds r1, r3 - strb r0, [r1] - ldr r3, [r2] - ldrb r5, [r3, 0x6] - cmp r5, 0 - bne _0819A954 - ldr r4, =gTasks - ldr r1, =0x000002a1 - adds r0, r3, r1 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - strh r5, [r0, 0x8] - ldr r0, =sub_819B378 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - strh r5, [r0, 0x8] - b _0819A988 - .pool -_0819A954: - ldr r4, =gTasks - ldr r2, =0x000002a1 - adds r0, r3, r2 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r2, 0 - movs r1, 0x1 - strh r1, [r0, 0x8] - ldr r1, =0x000002a2 - adds r0, r3, r1 - strb r2, [r0] - ldr r0, =sub_819B124 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r1, 0xD - strh r1, [r0, 0x8] -_0819A988: - ldr r0, =sub_819A4C8 - bl SetMainCallback2 -_0819A98E: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819A514 - - thumb_func_start sub_819A9AC -sub_819A9AC: @ 819A9AC - push {r4,r5,lr} - ldr r5, =gUnknown_0300127C - ldr r4, [r5] - cmp r4, 0 - bne _0819AA12 - movs r0, 0xAB - lsls r0, 2 - bl AllocZeroed - str r0, [r5] - strb r4, [r0, 0x3] - ldr r1, [r5] - movs r0, 0x1 - strb r0, [r1, 0x5] - ldr r0, [r5] - strb r4, [r0, 0x6] - movs r2, 0 - movs r4, 0x6C - movs r3, 0 -_0819A9D2: - ldr r0, [r5] - adds r1, r2, 0 - muls r1, r4 - adds r0, r1 - strb r3, [r0, 0x10] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x5 - bls _0819A9D2 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x2 - beq _0819AA0C - movs r0, 0 - bl sub_819B484 - b _0819AA12 - .pool -_0819AA0C: - movs r0, 0 - bl sub_819B63C -_0819AA12: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_819A9AC - - thumb_func_start sub_819AA18 -sub_819AA18: @ 819AA18 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r4, 0 - mov r8, r4 - ldr r7, =gUnknown_02020630 -_0819AA24: - lsls r1, r4, 3 - adds r1, r4 - lsls r1, 2 - subs r1, r4 - adds r1, 0x20 - lsls r1, 16 - asrs r1, 16 - ldr r0, =gUnknown_086105D8 - movs r2, 0x40 - movs r3, 0x1 - bl AddObjectToFront - ldr r6, =gUnknown_0300127C - ldr r2, [r6] - movs r5, 0x6C - adds r1, r4, 0 - muls r1, r5 - adds r2, r1 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r2, 0xE] - ldrh r1, [r2, 0xE] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - mov r1, r8 - strh r1, [r0, 0x2E] - adds r0, r4, 0 - bl sub_819ADAC - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _0819AA24 - ldr r0, [r6] - ldrb r1, [r0, 0x3] - ldr r4, =gUnknown_02020630 - muls r1, r5 - adds r0, r1 - ldrh r0, [r0, 0xE] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldr r0, =gUnknown_086105F0 - movs r2, 0x20 - ldrsh r1, [r1, r2] - movs r2, 0x58 - movs r3, 0 - bl AddObjectToFront - ldr r1, [r6] - movs r5, 0 - strb r0, [r1, 0x4] - ldr r0, =gUnknown_08610608 - movs r1, 0xB0 - movs r2, 0x70 - movs r3, 0 - bl AddObjectToFront - ldr r1, [r6] - strb r0, [r1, 0x1] - ldr r0, =gUnknown_08610620 - movs r1, 0xB0 - movs r2, 0x90 - movs r3, 0 - bl AddObjectToFront - ldr r1, [r6] - strb r0, [r1, 0x2] - ldr r0, [r6] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r6] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - ldr r0, [r6] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x28 - strb r5, [r0] - ldr r0, [r6] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x29 - strb r5, [r0] - ldr r0, [r6] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x28 - strb r5, [r0] - ldr r0, [r6] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x29 - strb r5, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819AA18 - - thumb_func_start sub_819AB40 -sub_819AB40: @ 819AB40 - push {r4-r6,lr} - movs r4, 0 -_0819AB44: - ldr r6, =gUnknown_0300127C - ldr r1, [r6] - movs r0, 0x6C - muls r0, r4 - adds r1, r0 - ldrh r1, [r1, 0xE] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, =gUnknown_02020630 - adds r0, r5 - bl RemoveObjectAndFreeTiles - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _0819AB44 - ldr r0, [r6] - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl RemoveObjectAndFreeTiles - ldr r0, [r6] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl RemoveObjectAndFreeTiles - ldr r0, [r6] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl RemoveObjectAndFreeTiles - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819AB40 - - thumb_func_start sub_819ABA8 -sub_819ABA8: @ 819ABA8 - push {r4,lr} - lsls r0, 24 - cmp r0, 0 - ble _0819ABC8 - ldr r0, =gUnknown_0300127C - ldr r1, [r0] - ldrb r3, [r1, 0x3] - adds r2, r0, 0 - cmp r3, 0x5 - beq _0819ABC4 - adds r0, r3, 0x1 - b _0819ABDE - .pool -_0819ABC4: - movs r0, 0 - b _0819ABDE -_0819ABC8: - ldr r0, =gUnknown_0300127C - ldr r1, [r0] - ldrb r3, [r1, 0x3] - adds r2, r0, 0 - cmp r3, 0 - beq _0819ABDC - subs r0, r3, 0x1 - b _0819ABDE - .pool -_0819ABDC: - movs r0, 0x5 -_0819ABDE: - strb r0, [r1, 0x3] - ldr r2, [r2] - ldrb r3, [r2, 0x3] - ldr r4, =gUnknown_02020630 - ldrb r0, [r2, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - movs r0, 0x6C - muls r0, r3 - adds r2, r0 - ldrh r2, [r2, 0xE] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0, 0x20] - strh r0, [r1, 0x20] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819ABA8 - - thumb_func_start sub_819AC10 -sub_819AC10: @ 819AC10 - push {lr} - lsls r0, 24 - cmp r0, 0 - ble _0819AC30 - ldr r0, =gUnknown_0300127C - ldr r1, [r0] - ldrb r3, [r1] - adds r2, r0, 0 - cmp r3, 0x2 - beq _0819AC2C - adds r0, r3, 0x1 - b _0819AC46 - .pool -_0819AC2C: - movs r0, 0 - b _0819AC46 -_0819AC30: - ldr r0, =gUnknown_0300127C - ldr r1, [r0] - ldrb r3, [r1] - adds r2, r0, 0 - cmp r3, 0 - beq _0819AC44 - subs r0, r3, 0x1 - b _0819AC46 - .pool -_0819AC44: - movs r0, 0x2 -_0819AC46: - strb r0, [r1] - ldr r3, =gUnknown_02020630 - ldr r2, [r2] - ldrb r0, [r2, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r0, [r2] - lsls r0, 4 - adds r0, 0x70 - strh r0, [r1, 0x22] - ldrb r0, [r2, 0x2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r0, [r2] - lsls r0, 4 - adds r0, 0x70 - strh r0, [r1, 0x22] - pop {r0} - bx r0 - .pool - thumb_func_end sub_819AC10 - - thumb_func_start sub_819AC78 -sub_819AC78: @ 819AC78 - push {lr} - lsls r0, 24 - cmp r0, 0 - ble _0819AC98 - ldr r0, =gUnknown_0300127C - ldr r1, [r0] - ldrb r3, [r1, 0x7] - adds r2, r0, 0 - cmp r3, 0x1 - beq _0819AC94 - adds r0, r3, 0x1 - b _0819ACAE - .pool -_0819AC94: - movs r0, 0 - b _0819ACAE -_0819AC98: - ldr r0, =gUnknown_0300127C - ldr r1, [r0] - ldrb r3, [r1, 0x7] - adds r2, r0, 0 - cmp r3, 0 - beq _0819ACAC - subs r0, r3, 0x1 - b _0819ACAE - .pool -_0819ACAC: - movs r0, 0x1 -_0819ACAE: - strb r0, [r1, 0x7] - ldr r3, =gUnknown_02020630 - ldr r2, [r2] - ldrb r0, [r2, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r0, [r2, 0x7] - lsls r0, 4 - adds r0, 0x70 - strh r0, [r1, 0x22] - ldrb r0, [r2, 0x2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r0, [r2, 0x7] - lsls r0, 4 - adds r0, 0x70 - strh r0, [r1, 0x22] - pop {r0} - bx r0 - .pool - thumb_func_end sub_819AC78 - - thumb_func_start sub_819ACE0 -sub_819ACE0: @ 819ACE0 - push {r4-r6,lr} - ldr r5, =gUnknown_0300127C - ldr r0, [r5] - ldrb r6, [r0, 0x3] - movs r1, 0x6C - adds r4, r6, 0 - muls r4, r1 - adds r0, r4 - ldrb r0, [r0, 0x10] - cmp r0, 0 - beq _0819AD60 - movs r0, 0x64 - bl IndexOfObjectPaletteTag - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, [r5] - ldrb r0, [r1, 0x5] - cmp r0, 0x3 - bne _0819AD44 - adds r0, r1, r4 - ldrb r0, [r0, 0x10] - cmp r0, 0x1 - bne _0819AD44 - movs r2, 0 - ldrb r0, [r1, 0x10] - cmp r0, 0x2 - beq _0819AD32 - movs r4, 0x6C -_0819AD1A: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x5 - bhi _0819AD32 - ldr r0, [r5] - adds r1, r2, 0 - muls r1, r4 - adds r0, r1 - ldrb r0, [r0, 0x10] - cmp r0, 0x2 - bne _0819AD1A -_0819AD32: - cmp r2, 0x6 - beq _0819AD9C - ldr r0, =gUnknown_0300127C - ldr r1, [r0] - movs r0, 0x6C - muls r0, r2 - adds r1, r0 - movs r0, 0x1 - strb r0, [r1, 0x10] -_0819AD44: - ldr r2, =gUnknown_0300127C - ldr r1, [r2] - movs r0, 0x6C - muls r0, r6 - adds r1, r0 - movs r0, 0 - strb r0, [r1, 0x10] - ldr r1, [r2] - ldrb r0, [r1, 0x5] - subs r0, 0x1 - b _0819AD78 - .pool -_0819AD60: - movs r0, 0x65 - bl IndexOfObjectPaletteTag - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, [r5] - adds r1, r0, r4 - ldrb r0, [r0, 0x5] - strb r0, [r1, 0x10] - ldr r1, [r5] - ldrb r0, [r1, 0x5] - adds r0, 0x1 -_0819AD78: - strb r0, [r1, 0x5] - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_0300127C - ldr r0, [r0] - movs r1, 0x6C - muls r1, r6 - adds r0, r1 - ldrh r0, [r0, 0xE] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] -_0819AD9C: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819ACE0 - - thumb_func_start sub_819ADAC -sub_819ADAC: @ 819ADAC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gUnknown_0300127C - ldr r0, [r0] - movs r1, 0x6C - muls r1, r4 - adds r0, r1 - ldrb r0, [r0, 0x10] - cmp r0, 0 - beq _0819ADCC - movs r0, 0x65 - b _0819ADCE - .pool -_0819ADCC: - movs r0, 0x64 -_0819ADCE: - bl IndexOfObjectPaletteTag - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_0300127C - ldr r0, [r0] - movs r1, 0x6C - muls r1, r4 - adds r0, r1 - ldrh r0, [r0, 0xE] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819ADAC - - thumb_func_start sub_819AE08 -sub_819AE08: @ 819AE08 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r6, r0, r1 - movs r1, 0x8 - ldrsh r0, [r6, r1] - cmp r0, 0x7 - beq _0819AE64 - cmp r0, 0x7 - bgt _0819AE30 - cmp r0, 0x6 - beq _0819AE36 - b _0819AF50 - .pool -_0819AE30: - cmp r0, 0x8 - beq _0819AEE8 - b _0819AF50 -_0819AE36: - ldr r1, =gPlttBufferUnfaded - ldr r0, =gPlttBufferFaded - movs r2, 0xE4 - lsls r2, 1 - adds r0, r2 - ldrh r0, [r0] - adds r1, r2 - movs r2, 0 - strh r0, [r1] - movs r0, 0x1 - negs r0, r0 - str r2, [sp] - movs r1, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r0, 0x7 - strh r0, [r6, 0x8] - b _0819AF50 - .pool -_0819AE64: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _0819AF50 - ldr r4, =gUnknown_0300127C - ldr r0, [r4] - ldr r2, =0x000002a1 - adds r0, r2 - ldrb r0, [r0] - bl DestroyTask - ldr r1, [r4] - movs r3, 0xA6 - lsls r3, 2 - adds r0, r1, r3 - ldr r0, [r0] - movs r2, 0xA8 - lsls r2, 2 - adds r1, r2 - bl sub_819F444 - bl sub_819AB40 - ldr r4, =gUnknown_0203CE2C - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203CE30 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203CE34 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203CE38 - ldr r0, [r4] - bl Free - str r5, [r4] - bl FreeAllWindowBuffers - movs r0, 0x8 - strh r0, [r6, 0x8] - b _0819AF50 - .pool -_0819AEE8: - ldr r4, =gUnknown_0300127C - ldr r1, [r4] - ldr r0, =gPlttBufferUnfaded - movs r3, 0xE4 - lsls r3, 1 - adds r0, r3 - ldrh r0, [r0] - adds r3, 0xDC - adds r1, r3 - strh r0, [r1] - adds r0, r2, 0 - bl DestroyTask - ldr r1, [r4] - movs r0, 0x1 - strb r0, [r1, 0x6] - ldr r0, [r4] - ldrb r6, [r0, 0x3] - ldr r4, =gUnknown_0203CE3C - movs r0, 0x96 - lsls r0, 2 - bl AllocZeroed - str r0, [r4] - movs r4, 0 -_0819AF1A: - ldr r5, =gUnknown_0203CE3C - ldr r1, [r5] - movs r0, 0x64 - muls r0, r4 - adds r0, r1 - ldr r1, =gUnknown_0300127C - ldr r1, [r1] - movs r2, 0x6C - muls r2, r4 - adds r1, r2 - adds r1, 0x14 - movs r2, 0x64 - bl memcpy - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _0819AF1A - ldr r1, [r5] - ldr r0, =sub_819A514 - str r0, [sp] - movs r0, 0x1 - adds r2, r6, 0 - movs r3, 0x5 - bl sub_81BF8EC -_0819AF50: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819AE08 - - thumb_func_start bc_exit_to_overworld -bc_exit_to_overworld: @ 819AF68 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r7, =gUnknown_0300127C - ldr r0, [r7] - movs r1, 0xA8 - lsls r1, 2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0819B00E - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0 - beq _0819AFA0 - cmp r1, 0x1 - beq _0819AFB8 - b _0819B00E - .pool -_0819AFA0: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _0819B00E -_0819AFB8: - bl UpdatePaletteFade - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _0819B00E - bl sub_819B764 - ldr r0, [r7] - ldr r1, =0x000002a1 - adds r0, r1 - ldrb r0, [r0] - bl DestroyTask - bl sub_819AB40 - ldr r4, =gUnknown_0203CE2C - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203CE34 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203CE38 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r0, [r7] - bl Free - str r5, [r7] - bl FreeAllWindowBuffers - ldr r0, =sub_80861B0 - bl SetMainCallback2 - adds r0, r6, 0 - bl DestroyTask -_0819B00E: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end bc_exit_to_overworld - - thumb_func_start sub_819B02C -sub_819B02C: @ 819B02C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r7, =gUnknown_0300127C - ldr r0, [r7] - movs r1, 0xA8 - lsls r1, 2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0819B11A - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x5 - beq _0819B084 - cmp r0, 0x5 - bgt _0819B06C - cmp r0, 0x4 - beq _0819B07A - b _0819B11A - .pool -_0819B06C: - cmp r0, 0xA - bne _0819B11A - bl sub_819C4B4 - movs r0, 0x4 - strh r0, [r5, 0x8] - b _0819B11A -_0819B07A: - bl sub_819B8D4 - movs r0, 0x5 - strh r0, [r5, 0x8] - b _0819B11A -_0819B084: - ldr r2, =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - mov r8, r0 - movs r6, 0x1 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _0819B0B8 - movs r0, 0x5 - bl audio_play - ldr r0, [r7] - ldrb r4, [r0, 0x7] - cmp r4, 0 - bne _0819B0C6 - bl sub_819C568 - strh r4, [r5, 0x8] - ldr r0, =bc_exit_to_overworld - str r0, [r5] - b _0819B11A - .pool -_0819B0B8: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0819B0EC - movs r0, 0x5 - bl audio_play -_0819B0C6: - movs r0, 0x4 - bl sub_819B958 - bl sub_819BC9C - ldr r0, [r7] - ldr r1, =0x000002a2 - adds r0, r1 - mov r1, r8 - strb r1, [r0] - strh r6, [r5, 0x8] - ldr r0, =sub_819B378 - str r0, [r5] - b _0819B11A - .pool -_0819B0EC: - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0819B106 - movs r0, 0x5 - bl audio_play - movs r0, 0x1 - negs r0, r0 - bl sub_819AC78 - b _0819B11A -_0819B106: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0819B11A - movs r0, 0x5 - bl audio_play - movs r0, 0x1 - bl sub_819AC78 -_0819B11A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_819B02C - - thumb_func_start sub_819B124 -sub_819B124: @ 819B124 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x8] - subs r0, 0x2 - lsls r0, 16 - asrs r0, 16 - adds r6, r1, 0 - cmp r0, 0xB - bls _0819B144 - b _0819B36E -_0819B144: - lsls r0, 2 - ldr r1, =_0819B158 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0819B158: - .4byte _0819B188 - .4byte _0819B1EC - .4byte _0819B36E - .4byte _0819B36E - .4byte _0819B36E - .4byte _0819B36E - .4byte _0819B36E - .4byte _0819B1BC - .4byte _0819B36E - .4byte _0819B36E - .4byte _0819B300 - .4byte _0819B35C -_0819B188: - ldr r0, =gUnknown_0300127C - ldr r1, [r0] - ldrb r0, [r1, 0x6] - cmp r0, 0 - bne _0819B1A2 - ldr r2, =0x00000299 - adds r0, r1, r2 - movs r7, 0xA8 - lsls r7, 2 - adds r1, r7 - movs r2, 0 - bl sub_819F2B4 -_0819B1A2: - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - movs r0, 0x9 - b _0819B36C - .pool -_0819B1BC: - ldr r4, =gUnknown_0300127C - ldr r0, [r4] - movs r1, 0xA8 - lsls r1, 2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0819B1CE - b _0819B36E -_0819B1CE: - bl sub_819B844 - ldr r1, [r4] - movs r0, 0 - strb r0, [r1, 0x6] - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - b _0819B344 - .pool -_0819B1EC: - ldr r2, =gMain - ldrh r1, [r2, 0x2E] - movs r7, 0x1 - movs r6, 0x1 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _0819B27C - movs r0, 0x5 - bl audio_play - bl sub_819BC04 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x1 - bne _0819B228 - ldr r0, =gUnknown_0300127C - ldr r0, [r0] - ldr r2, =0x000002a2 - adds r0, r2 - b _0819B2AC - .pool -_0819B228: - cmp r0, 0x2 - bne _0819B248 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0xA - strh r1, [r0, 0x8] - ldr r1, =sub_819B02C - str r1, [r0] - b _0819B36E - .pool -_0819B248: - cmp r1, 0x3 - bne _0819B260 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0xB - strh r1, [r0, 0x8] - b _0819B2BA - .pool -_0819B260: - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x6 - strh r1, [r0, 0x8] - ldr r1, =sub_819AE08 - str r1, [r0] - b _0819B36E - .pool -_0819B27C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0819B2D0 - movs r0, 0x5 - bl audio_play - ldr r4, =gUnknown_0300127C - ldr r1, [r4] - movs r2, 0xA6 - lsls r2, 2 - adds r0, r1, r2 - ldr r0, [r0] - adds r2, 0x8 - adds r1, r2 - movs r2, 0 - bl sub_819F3F8 - movs r0, 0x3 - bl sub_819B958 - ldr r0, [r4] - ldr r1, =0x000002a2 - adds r0, r1 -_0819B2AC: - strb r7, [r0] - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r6, [r0, 0x8] -_0819B2BA: - ldr r1, =sub_819B378 - str r1, [r0] - b _0819B36E - .pool -_0819B2D0: - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0819B2EA - movs r0, 0x5 - bl audio_play - movs r0, 0x1 - negs r0, r0 - bl sub_819AC10 - b _0819B36E -_0819B2EA: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0819B36E - movs r0, 0x5 - bl audio_play - movs r0, 0x1 - bl sub_819AC10 - b _0819B36E -_0819B300: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - bne _0819B36E - ldr r4, =gUnknown_0300127C - ldr r2, [r4] - ldrb r0, [r2, 0x6] - cmp r0, 0x1 - bne _0819B338 - ldr r1, =gPlttBufferFaded - movs r7, 0xA9 - lsls r7, 2 - adds r0, r2, r7 - ldrh r0, [r0] - movs r2, 0xE4 - lsls r2, 1 - adds r1, r2 - strh r0, [r1] - ldr r0, =gPlttBufferUnfaded - subs r7, 0xBC - adds r1, r0, r7 - ldrh r1, [r1] - adds r0, r2 - strh r1, [r0] -_0819B338: - ldr r0, [r4] - strb r3, [r0, 0x6] - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r6 -_0819B344: - movs r1, 0x3 - strh r1, [r0, 0x8] - b _0819B36E - .pool -_0819B35C: - bl sub_819B844 - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - movs r0, 0xC -_0819B36C: - strh r0, [r1, 0x8] -_0819B36E: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819B124 - - thumb_func_start sub_819B378 -sub_819B378: @ 819B378 - push {r4-r7,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r5, =gUnknown_0300127C - ldr r3, [r5] - movs r7, 0xA8 - lsls r7, 2 - adds r0, r3, r7 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0819B476 - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _0819B3DC - cmp r1, 0x1 - bgt _0819B3B4 - cmp r1, 0 - beq _0819B3BA - b _0819B476 - .pool -_0819B3B4: - cmp r1, 0xB - beq _0819B440 - b _0819B476 -_0819B3BA: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0819B476 - movs r0, 0x1 - movs r1, 0x1 - strh r1, [r4, 0x8] - ldr r2, =0x000002a2 - adds r1, r3, r2 - strb r0, [r1] - b _0819B476 - .pool -_0819B3DC: - ldr r2, =gMain - ldrh r0, [r2, 0x2E] - ands r1, r0 - cmp r1, 0 - beq _0819B40C - movs r0, 0x5 - bl audio_play - ldr r0, [r5] - ldr r1, =0x000002a2 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - movs r0, 0x2 - strh r0, [r4, 0x8] - ldr r0, =sub_819B124 - str r0, [r4] - b _0819B476 - .pool -_0819B40C: - ldrh r1, [r2, 0x30] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0819B422 - movs r0, 0x5 - bl audio_play - movs r0, 0x1 - negs r0, r0 - b _0819B432 -_0819B422: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0819B476 - movs r0, 0x5 - bl audio_play - movs r0, 0x1 -_0819B432: - bl sub_819ABA8 - bl sub_819BCF8 - bl sub_819B9E8 - b _0819B476 -_0819B440: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r6, 0x1 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _0819B476 - movs r0, 0x5 - bl audio_play - ldr r1, [r5] - movs r2, 0xA6 - lsls r2, 2 - adds r0, r1, r2 - ldr r0, [r0] - adds r1, r7 - movs r2, 0 - bl sub_819F3F8 - bl sub_819BA64 - ldr r0, [r5] - ldr r1, =0x000002a2 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - strh r6, [r4, 0x8] -_0819B476: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819B378 - - thumb_func_start sub_819B484 -sub_819B484: @ 819B484 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x10] - movs r6, 0 - add r0, sp, 0xC - strb r6, [r0] - ldr r0, =0x000040ce - bl VarGet - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r7, =gSaveBlock2Ptr - ldr r2, [r7] - ldr r0, =0x00000ca9 - adds r4, r2, r0 - ldrb r0, [r4] - lsls r0, 30 - lsrs r0, 30 - adds r5, r0, 0 - lsls r0, r5, 1 - lsls r1, r6, 2 - adds r0, r1 - ldr r1, =0x00000de2 - adds r2, r1 - adds r2, r0 - ldrh r0, [r2] - movs r1, 0x7 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x18] - ldr r1, =gUnknown_0203BC8C - ldr r0, =gBattleFrontierMons - str r0, [r1] - ldrb r1, [r4] - movs r0, 0x3 - ands r0, r1 - movs r2, 0x32 - str r2, [sp, 0x14] - cmp r0, 0 - beq _0819B4EA - movs r3, 0x64 - str r3, [sp, 0x14] -_0819B4EA: - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_81A6F70 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x1C] - ldr r1, [r7] - ldrb r0, [r1, 0xA] - mov r9, r0 - ldrb r0, [r1, 0xB] - lsls r0, 8 - mov r2, r9 - orrs r2, r0 - ldrb r0, [r1, 0xC] - lsls r0, 16 - orrs r2, r0 - ldrb r0, [r1, 0xD] - lsls r0, 24 - orrs r2, r0 - mov r9, r2 - movs r3, 0 - mov r8, r3 -_0819B518: - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - mov r2, r8 - lsls r0, r2, 1 - add r0, r8 - lsls r0, 2 - adds r1, r0 - movs r3, 0xE7 - lsls r3, 4 - adds r1, r3 - ldrh r5, [r1] - ldr r0, =gUnknown_0300127C - ldr r1, [r0] - ldr r2, [sp, 0x10] - add r2, r8 - movs r3, 0x6C - adds r0, r2, 0 - muls r0, r3 - adds r1, r0 - strh r5, [r1, 0xC] - mov r10, r2 - ldr r0, [sp, 0x1C] - cmp r8, r0 - bcs _0819B570 - ldr r0, [sp, 0x18] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - b _0819B572 - .pool -_0819B570: - ldr r0, [sp, 0x18] -_0819B572: - movs r1, 0 - bl sub_81A6CA8 - lsls r0, 24 - lsrs r6, r0, 24 - movs r1, 0x6C - mov r4, r10 - muls r4, r1 - adds r4, 0xC - ldr r2, =gUnknown_0300127C - ldr r0, [r2] - adds r0, r4 - adds r0, 0x8 - ldr r1, =gUnknown_0203BC8C - ldr r2, [r1] - lsls r5, 4 - adds r2, r5, r2 - ldrh r1, [r2] - ldrb r3, [r2, 0xC] - str r6, [sp] - ldrb r2, [r2, 0xB] - str r2, [sp, 0x4] - mov r2, r9 - str r2, [sp, 0x8] - ldr r2, [sp, 0x14] - bl sub_8068634 - movs r1, 0 - add r0, sp, 0xC - strb r1, [r0] - movs r6, 0 - adds r7, r5, 0 - movs r3, 0x1 - add r8, r3 - ldr r3, =gUnknown_0300127C -_0819B5B8: - ldr r0, [r3] - adds r0, r4 - adds r0, 0x8 - ldr r5, =gUnknown_0203BC8C - ldr r1, [r5] - adds r1, r7, r1 - lsls r2, r6, 1 - adds r1, 0x2 - adds r1, r2 - ldrh r1, [r1] - adds r2, r6, 0 - str r3, [sp, 0x20] - bl sub_81A7024 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r3, [sp, 0x20] - cmp r6, 0x3 - bls _0819B5B8 - movs r0, 0x6C - mov r4, r10 - muls r4, r0 - adds r4, 0xC - ldr r1, =gUnknown_0300127C - ldr r0, [r1] - adds r0, r4 - adds r0, 0x8 - movs r1, 0x20 - add r2, sp, 0xC - bl pokemon_setattr - ldr r2, =gUnknown_0300127C - ldr r0, [r2] - adds r0, r4 - adds r0, 0x8 - ldr r1, [r5] - adds r1, r7, r1 - ldrb r2, [r1, 0xA] - lsls r2, 1 - ldr r1, =gBattleFrontierHeldItems - adds r2, r1 - movs r1, 0xC - bl pokemon_setattr - mov r3, r8 - lsls r0, r3, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0x5 - bhi _0819B620 - b _0819B518 -_0819B620: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819B484 - - thumb_func_start sub_819B63C -sub_819B63C: @ 819B63C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x10] - add r0, sp, 0xC - movs r1, 0 - strb r1, [r0] - ldr r2, =gUnknown_0203BC8C - ldr r0, =gSlateportBattleTentMons - str r0, [r2] - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldrb r3, [r1, 0xA] - ldrb r0, [r1, 0xB] - lsls r0, 8 - orrs r3, r0 - ldrb r0, [r1, 0xC] - lsls r0, 16 - orrs r3, r0 - ldrb r0, [r1, 0xD] - lsls r0, 24 - orrs r3, r0 - mov r10, r3 - movs r7, 0 - mov r9, r7 -_0819B678: - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - mov r2, r9 - lsls r0, r2, 1 - add r0, r9 - lsls r0, 2 - adds r1, r0 - movs r3, 0xE7 - lsls r3, 4 - adds r1, r3 - ldrh r1, [r1] - mov r8, r1 - ldr r7, =gUnknown_0300127C - ldr r0, [r7] - ldr r6, [sp, 0x10] - add r6, r9 - movs r1, 0x6C - adds r4, r6, 0 - muls r4, r1 - adds r1, r0, r4 - mov r2, r8 - strh r2, [r1, 0xC] - adds r4, 0xC - adds r0, r4 - adds r0, 0x8 - ldr r3, =gUnknown_0203BC8C - ldr r2, [r3] - mov r7, r8 - lsls r5, r7, 4 - adds r2, r5, r2 - ldrh r1, [r2] - ldrb r3, [r2, 0xC] - movs r7, 0 - str r7, [sp] - ldrb r2, [r2, 0xB] - str r2, [sp, 0x4] - mov r2, r10 - str r2, [sp, 0x8] - movs r2, 0x1E - bl sub_8068634 - add r0, sp, 0xC - movs r3, 0 - strb r3, [r0] - movs r0, 0x1 - add r9, r0 -_0819B6D4: - ldr r1, =gUnknown_0300127C - ldr r0, [r1] - adds r0, r4 - adds r0, 0x8 - ldr r3, =gUnknown_0203BC8C - ldr r2, [r3] - mov r3, r8 - lsls r1, r3, 4 - adds r1, r2 - lsls r2, r7, 1 - adds r1, 0x2 - adds r1, r2 - ldrh r1, [r1] - adds r2, r7, 0 - bl sub_81A7024 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x3 - bls _0819B6D4 - movs r7, 0x6C - adds r4, r6, 0 - muls r4, r7 - adds r4, 0xC - ldr r1, =gUnknown_0300127C - ldr r0, [r1] - adds r0, r4 - adds r0, 0x8 - movs r1, 0x20 - add r2, sp, 0xC - bl pokemon_setattr - ldr r2, =gUnknown_0300127C - ldr r0, [r2] - adds r0, r4 - adds r0, 0x8 - ldr r3, =gUnknown_0203BC8C - ldr r1, [r3] - adds r1, r5, r1 - ldrb r2, [r1, 0xA] - lsls r2, 1 - ldr r1, =gBattleFrontierHeldItems - adds r2, r1 - movs r1, 0xC - bl pokemon_setattr - mov r7, r9 - lsls r0, r7, 24 - lsrs r0, 24 - mov r9, r0 - cmp r0, 0x5 - bls _0819B678 - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819B63C - - thumb_func_start sub_819B764 -sub_819B764: @ 819B764 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r7, 0 - ldr r0, =gUnknown_0300127C - mov r10, r0 - ldr r1, =gSaveBlock2Ptr - mov r8, r1 -_0819B778: - movs r2, 0 - adds r0, r7, 0x1 - mov r9, r0 -_0819B77E: - mov r1, r10 - ldr r0, [r1] - movs r1, 0x6C - adds r6, r2, 0 - muls r6, r1 - adds r1, r0, r6 - ldrb r0, [r1, 0x10] - cmp r0, r9 - bne _0819B81C - movs r0, 0x64 - adds r5, r7, 0 - muls r5, r0 - ldr r2, =gPlayerParty - adds r5, r2 - adds r1, 0x14 - adds r0, r5, 0 - movs r2, 0x64 - bl memcpy - mov r0, r8 - ldr r1, [r0] - lsls r4, r7, 1 - adds r4, r7 - lsls r4, 2 - adds r1, r4 - mov r2, r10 - ldr r0, [r2] - adds r0, r6 - ldrh r0, [r0, 0xC] - movs r2, 0xE7 - lsls r2, 4 - adds r1, r2 - strh r0, [r1] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0 - bl GetMonData - mov r2, r8 - ldr r1, [r2] - ldr r2, =0x00000e74 - adds r1, r2 - adds r1, r4 - str r0, [r1] - adds r0, r5, 0 - movs r1, 0x2E - movs r2, 0 - bl pokemon_getattr_encrypted - mov r2, r8 - ldr r1, [r2] - adds r1, r4 - ldr r2, =0x00000e79 - adds r1, r2 - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x28 - movs r2, 0 - bl pokemon_getattr_encrypted - mov r2, r8 - ldr r1, [r2] - adds r1, r4 - ldr r2, =0x00000e78 - adds r1, r2 - strb r0, [r1] - b _0819B826 - .pool -_0819B81C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x5 - bls _0819B77E -_0819B826: - mov r1, r9 - lsls r0, r1, 24 - lsrs r7, r0, 24 - cmp r7, 0x2 - bls _0819B778 - bl calc_player_party_count - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_819B764 - - thumb_func_start sub_819B844 -sub_819B844: @ 819B844 - push {r4,r5,lr} - ldr r5, =gUnknown_0300127C - ldr r1, [r5] - ldrb r0, [r1, 0x6] - cmp r0, 0 - bne _0819B852 - strb r0, [r1] -_0819B852: - ldr r4, =gUnknown_02020630 - ldr r2, [r5] - ldrb r1, [r2, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xB0 - strh r1, [r0, 0x20] - ldrb r0, [r2, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r2] - lsls r0, 4 - adds r0, 0x70 - strh r0, [r1, 0x22] - ldrb r1, [r2, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xD0 - strh r1, [r0, 0x20] - ldrb r0, [r2, 0x2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r2] - lsls r0, 4 - adds r0, 0x70 - strh r0, [r1, 0x22] - ldrb r0, [r2, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - ldr r0, [r5] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - bl sub_819BAFC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819B844 - - thumb_func_start sub_819B8D4 -sub_819B8D4: @ 819B8D4 - push {r4,r5,lr} - ldr r5, =gUnknown_0300127C - ldr r1, [r5] - movs r0, 0 - strb r0, [r1, 0x7] - ldr r4, =gUnknown_02020630 - ldr r2, [r5] - ldrb r1, [r2, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xB0 - strh r1, [r0, 0x20] - ldrb r1, [r2, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r3, 0x70 - strh r3, [r0, 0x22] - ldrb r1, [r2, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xD0 - strh r1, [r0, 0x20] - ldrb r1, [r2, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r3, [r0, 0x22] - ldrb r0, [r2, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - ldr r0, [r5] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - bl sub_819BBA8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819B8D4 - - thumb_func_start sub_819B958 -sub_819B958: @ 819B958 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, =gUnknown_02020630 - ldr r3, =gUnknown_0300127C - ldr r0, [r3] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r3] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r0, r4, 0 - movs r1, 0 - bl FillWindowPixelBuffer - adds r0, r4, 0 - movs r1, 0x2 - bl CopyWindowToVram - adds r0, r4, 0 - bl ClearWindowTilemap - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819B958 - - thumb_func_start sub_819B9B4 -sub_819B9B4: @ 819B9B4 - push {lr} - sub sp, 0xC - movs r0, 0 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r2, =gUnknown_085EEBB2 - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x2 - bl Print - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_819B9B4 - - thumb_func_start sub_819B9E8 -sub_819B9E8: @ 819B9E8 - push {r4,r5,lr} - sub sp, 0xC - ldr r5, =gUnknown_0300127C - ldr r0, [r5] - ldrb r4, [r0, 0x3] - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x6C - muls r0, r4 - ldr r1, [r5] - adds r0, r1 - adds r0, 0x14 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - ldr r4, =gStringVar4 - movs r1, 0xB - muls r1, r0 - ldr r0, =gSpeciesNames - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x56 - bl GetStringRightAlignXOffset - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - ldr r0, =gUnknown_08610479 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r3, 0x1 - bl box_print - movs r0, 0x1 - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819B9E8 - - thumb_func_start sub_819BA64 -sub_819BA64: @ 819BA64 - push {lr} - sub sp, 0xC - movs r0, 0x2 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, =gUnknown_0300127C - ldr r0, [r0] - ldrb r0, [r0, 0x5] - cmp r0, 0x1 - bne _0819BA88 - ldr r2, =gUnknown_085EEBC1 - b _0819BA9C - .pool -_0819BA88: - cmp r0, 0x2 - bne _0819BA94 - ldr r2, =gUnknown_085EEBDB - b _0819BA9C - .pool -_0819BA94: - ldr r2, =gUnknown_085EEC2D - cmp r0, 0x3 - bne _0819BA9C - ldr r2, =gUnknown_085EEBF6 -_0819BA9C: - movs r0, 0x5 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x2 - movs r1, 0x1 - movs r3, 0x2 - bl Print - movs r0, 0x2 - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_819BA64 - - thumb_func_start sub_819BAC8 -sub_819BAC8: @ 819BAC8 - push {lr} - sub sp, 0xC - movs r0, 0x2 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r2, =gUnknown_085EEC50 - movs r0, 0x5 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x2 - movs r1, 0x1 - movs r3, 0x2 - bl Print - movs r0, 0x2 - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_819BAC8 - - thumb_func_start sub_819BAFC -sub_819BAFC: @ 819BAFC - push {r4-r6,lr} - sub sp, 0xC - ldr r0, =gUnknown_0300127C - ldr r0, [r0] - ldrb r2, [r0, 0x3] - movs r1, 0x6C - muls r1, r2 - adds r0, r1 - ldrb r5, [r0, 0x10] - movs r0, 0x3 - bl PutWindowTilemap - movs r0, 0x3 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r4, =gUnknown_08610476 - str r4, [sp] - movs r6, 0 - str r6, [sp, 0x4] - ldr r0, =gUnknown_085EEC15 - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0x7 - movs r3, 0x1 - bl box_print - cmp r5, 0 - beq _0819BB60 - str r4, [sp] - str r6, [sp, 0x4] - ldr r0, =gUnknown_085EEC24 - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0x7 - movs r3, 0x11 - bl box_print - b _0819BB74 - .pool -_0819BB60: - str r4, [sp] - str r5, [sp, 0x4] - ldr r0, =gUnknown_085EEC10 - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0x7 - movs r3, 0x11 - bl box_print -_0819BB74: - ldr r0, =gUnknown_08610476 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - ldr r0, =gUnknown_085EEC1D - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0x7 - movs r3, 0x21 - bl box_print - movs r0, 0x3 - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819BAFC - - thumb_func_start sub_819BBA8 -sub_819BBA8: @ 819BBA8 - push {r4,r5,lr} - sub sp, 0xC - movs r0, 0x4 - bl PutWindowTilemap - movs r0, 0x4 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r5, =gUnknown_08610476 - str r5, [sp] - movs r4, 0 - str r4, [sp, 0x4] - ldr r0, =gUnknown_085EEC49 - str r0, [sp, 0x8] - movs r0, 0x4 - movs r1, 0x1 - movs r2, 0x7 - movs r3, 0x1 - bl box_print - str r5, [sp] - str r4, [sp, 0x4] - ldr r0, =gUnknown_085EEC4D - str r0, [sp, 0x8] - movs r0, 0x4 - movs r1, 0x1 - movs r2, 0x7 - movs r3, 0x11 - bl box_print - movs r0, 0x4 - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819BBA8 - - thumb_func_start sub_819BC04 -sub_819BC04: @ 819BC04 - push {lr} - ldr r2, =gUnknown_030062E8 - ldr r1, =gUnknown_0861041C - ldr r0, =gUnknown_0300127C - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - bl _call_via_r0 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end sub_819BC04 - - thumb_func_start sub_819BC30 -sub_819BC30: @ 819BC30 - push {r4,lr} - ldr r0, =gUnknown_0300127C - ldr r0, [r0] - ldrb r2, [r0, 0x3] - movs r1, 0x6C - muls r1, r2 - adds r0, r1 - ldrb r1, [r0, 0x10] - ldrh r0, [r0, 0xC] - cmp r1, 0 - bne _0819BC60 - bl sub_819C634 - cmp r0, 0 - bne _0819BC60 - bl sub_819BAC8 - movs r0, 0x3 - bl sub_819B958 - movs r0, 0x3 - b _0819BC96 - .pool -_0819BC60: - ldr r4, =gUnknown_0300127C - ldr r1, [r4] - movs r2, 0xA6 - lsls r2, 2 - adds r0, r1, r2 - ldr r0, [r0] - adds r2, 0x8 - adds r1, r2 - movs r2, 0 - bl sub_819F3F8 - bl sub_819ACE0 - bl sub_819BA64 - movs r0, 0x3 - bl sub_819B958 - ldr r0, [r4] - ldrb r0, [r0, 0x5] - cmp r0, 0x3 - bhi _0819BC94 - movs r0, 0x1 - b _0819BC96 - .pool -_0819BC94: - movs r0, 0x2 -_0819BC96: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_819BC30 - - thumb_func_start sub_819BC9C -sub_819BC9C: @ 819BC9C - push {lr} - bl sub_819C568 - bl sub_819ACE0 - bl sub_819BA64 - movs r0, 0x3 - bl sub_819B958 - ldr r0, =gUnknown_0300127C - ldr r0, [r0] - ldrb r0, [r0, 0x5] - cmp r0, 0x3 - bhi _0819BCC4 - movs r0, 0x1 - b _0819BCC6 - .pool -_0819BCC4: - movs r0, 0x2 -_0819BCC6: - pop {r1} - bx r1 - thumb_func_end sub_819BC9C - - thumb_func_start sub_819BCCC -sub_819BCCC: @ 819BCCC - movs r0, 0 - bx lr - thumb_func_end sub_819BCCC - - thumb_func_start sub_819BCD0 -sub_819BCD0: @ 819BCD0 - push {lr} - ldr r0, =gUnknown_0300127C - ldr r1, [r0] - movs r2, 0xA6 - lsls r2, 2 - adds r0, r1, r2 - ldr r0, [r0] - adds r2, 0x8 - adds r1, r2 - movs r2, 0 - bl sub_819F3F8 - movs r0, 0x3 - bl sub_819B958 - movs r0, 0x1 - pop {r1} - bx r1 - .pool - thumb_func_end sub_819BCD0 - - thumb_func_start sub_819BCF8 -sub_819BCF8: @ 819BCF8 - push {r4,r5,lr} - sub sp, 0x2C - ldr r5, =gUnknown_0300127C - ldr r0, [r5] - ldrb r4, [r0, 0x3] - cmp r4, 0x5 - bhi _0819BD64 - movs r0, 0x5 - bl PutWindowTilemap - movs r0, 0x5 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x6C - muls r0, r4 - ldr r1, [r5] - adds r0, r1 - adds r0, 0x14 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - add r1, sp, 0xC - bl sub_81DB468 - movs r0, 0x1 - add r1, sp, 0xC - movs r2, 0x76 - bl GetStringRightAlignXOffset - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x5 - movs r1, 0x1 - add r2, sp, 0xC - bl Print - movs r0, 0x5 - movs r1, 0x2 - bl CopyWindowToVram -_0819BD64: - add sp, 0x2C - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819BCF8 - - thumb_func_start sub_819BD70 -sub_819BD70: @ 819BD70 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x10 - ldr r6, =gUnknown_0300127C - ldr r2, [r6] - ldrb r1, [r2, 0x3] - movs r0, 0x6C - adds r4, r1, 0 - muls r4, r0 - adds r4, r2 - adds r4, 0x14 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - bl GetMonData - mov r8, r0 - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - movs r0, 0x58 - str r0, [sp] - movs r0, 0x20 - str r0, [sp, 0x4] - movs r0, 0xF - str r0, [sp, 0x8] - ldr r0, =0x0000ffff - str r0, [sp, 0xC] - adds r0, r5, 0 - mov r2, r8 - movs r3, 0x1 - bl sub_818D7D8 - ldr r1, [r6] - movs r2, 0xA6 - lsls r2, 2 - adds r1, r2 - movs r3, 0 - strb r0, [r1] - ldr r4, =gUnknown_02020630 - ldr r0, [r6] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x28 - strb r3, [r0] - ldr r0, [r6] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x29 - strb r3, [r0] - ldr r0, [r6] - movs r1, 0xA8 - lsls r1, 2 - adds r0, r1 - strb r3, [r0] - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819BD70 - - thumb_func_start sub_819BE20 -sub_819BE20: @ 819BE20 - ldr r1, =gUnknown_0300127C - ldr r1, [r1] - movs r2, 0xA8 - lsls r2, 2 - adds r1, r2 - strb r0, [r1] - bx lr - .pool - thumb_func_end sub_819BE20 - - thumb_func_start sub_819BE34 -sub_819BE34: @ 819BE34 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - ldr r0, =gUnknown_08610638 - movs r1, 0x78 - movs r2, 0x40 - movs r3, 0x1 - bl AddObjectToFront - ldr r6, =gUnknown_0300127C - ldr r1, [r6] - ldr r2, =0x00000299 - mov r10, r2 - add r1, r10 - movs r7, 0 - strb r0, [r1] - ldr r0, [r6] - add r0, r10 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - mov r8, r1 - add r0, r8 - movs r1, 0x2 - bl StartObjectRotScalAnim - ldr r2, [r6] - ldrb r1, [r2, 0x3] - movs r0, 0x6C - adds r4, r1, 0 - muls r4, r0 - adds r4, r2 - adds r4, 0x14 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - bl GetMonData - mov r9, r0 - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - movs r0, 0x58 - str r0, [sp] - movs r0, 0x20 - str r0, [sp, 0x4] - movs r0, 0xF - str r0, [sp, 0x8] - ldr r0, =0x0000ffff - str r0, [sp, 0xC] - adds r0, r5, 0 - mov r2, r9 - movs r3, 0x1 - bl sub_818D7D8 - ldr r1, [r6] - movs r2, 0xA6 - lsls r2, 2 - adds r1, r2 - strb r0, [r1] - ldr r0, [r6] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - adds r0, 0x28 - strb r7, [r0] - ldr r0, [r6] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - adds r0, 0x29 - strb r7, [r0] - ldr r0, [r6] - add r0, r10 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819BE34 - - thumb_func_start sub_819BF2C -sub_819BF2C: @ 819BF2C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - movs r7, 0 - ldr r0, =gUnknown_0300127C - mov r9, r0 -_0819BF3E: - movs r2, 0 - adds r1, r7, 0x1 - mov r10, r1 - lsls r0, r7, 2 - mov r8, r0 -_0819BF48: - mov r0, r9 - ldr r1, [r0] - movs r0, 0x6C - adds r4, r2, 0 - muls r4, r0 - adds r0, r1, r4 - ldrb r0, [r0, 0x10] - cmp r0, r10 - bne _0819C008 - adds r4, r1 - adds r4, 0x14 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - bl GetMonData - adds r6, r0, 0 - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - lsls r0, r7, 3 - adds r0, r7 - lsls r0, 19 - movs r2, 0x80 - lsls r2, 13 - adds r0, r2 - asrs r0, 16 - str r0, [sp] - movs r0, 0x20 - str r0, [sp, 0x4] - adds r0, r7, 0 - adds r0, 0xD - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - ldr r0, =0x0000ffff - str r0, [sp, 0xC] - adds r0, r5, 0 - adds r2, r6, 0 - movs r3, 0x1 - bl sub_818D7D8 - mov r2, r9 - ldr r1, [r2] - add r1, r8 - movs r2, 0xA5 - lsls r2, 2 - adds r1, r2 - strb r0, [r1] - mov r1, r9 - ldr r0, [r1] - add r0, r8 - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r2, =gUnknown_02020630 - adds r0, r2 - adds r0, 0x28 - movs r1, 0 - strb r1, [r0] - mov r2, r9 - ldr r0, [r2] - add r0, r8 - movs r1, 0xA5 - lsls r1, 2 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r2, =gUnknown_02020630 - adds r0, r2 - adds r0, 0x29 - movs r1, 0 - strb r1, [r0] - b _0819C012 - .pool -_0819C008: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x5 - bls _0819BF48 -_0819C012: - mov r2, r10 - lsls r0, r2, 24 - lsrs r7, r0, 24 - cmp r7, 0x2 - bls _0819BF3E - ldr r0, =gUnknown_0300127C - ldr r0, [r0] - movs r1, 0xA8 - lsls r1, 2 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819BF2C - - thumb_func_start sub_819C040 -sub_819C040: @ 819C040 - push {r4-r6,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0819C0DC - ldr r3, =gUnknown_02020630 - ldr r6, =gUnknown_0300127C - ldr r2, [r6] - ldr r0, =0x00000295 - adds r5, r2, r0 - ldrb r0, [r5] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - adds r1, 0x3F - ldrb r0, [r1] - lsls r0, 26 - cmp r0, 0 - bge _0819C0DC - ldr r1, =0x0000029d - adds r0, r2, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _0819C0DC - adds r1, r4, 0 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - ldr r0, [r6] - ldr r1, =0x0000029d - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - ldr r0, =sub_819C1D0 - 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 - ldr r1, [r1] - bl _call_via_r1 - ldr r0, =DummyObjectCallback - str r0, [r4, 0x1C] -_0819C0DC: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819C040 - - thumb_func_start sub_819C100 -sub_819C100: @ 819C100 - push {r4-r7,lr} - adds r5, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0819C1BA - ldr r6, =gUnknown_02020630 - ldr r4, =gUnknown_0300127C - ldr r2, [r4] - ldr r7, =0x00000295 - adds r0, r2, r7 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _0819C1BA - ldr r1, =0x0000029d - adds r0, r2, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _0819C1BA - ldrb r0, [r5, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl rotscale_free_entry - ldr r0, [r4] - adds r0, r7 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl rotscale_free_entry - ldr r0, [r4] - ldr r1, =0x0000029d - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl rotscale_free_entry - ldr r0, [r4] - movs r1, 0xA8 - lsls r1, 2 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r0, [r4] - adds r0, r7 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl RemoveObjectAndFreeTiles - ldr r0, [r4] - ldr r1, =0x0000029d - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl RemoveObjectAndFreeTiles - adds r0, r5, 0 - bl RemoveObjectAndFreeTiles -_0819C1BA: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819C100 - - thumb_func_start sub_819C1D0 -sub_819C1D0: @ 819C1D0 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0819C24E - cmp r0, 0x1 - bgt _0819C1F8 - cmp r0, 0 - beq _0819C1FE - b _0819C2BA - .pool -_0819C1F8: - cmp r0, 0x2 - beq _0819C270 - b _0819C2BA -_0819C1FE: - movs r0, 0x10 - strh r0, [r4, 0xE] - movs r0, 0xE0 - strh r0, [r4, 0x38] - movs r0, 0x40 - strh r0, [r4, 0x12] - movs r0, 0x41 - strh r0, [r4, 0x18] - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl SetGpuRegBits - ldrh r1, [r4, 0xE] - lsls r1, 8 - ldrh r0, [r4, 0x38] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x40 - bl SetGpuReg - ldrh r1, [r4, 0x12] - lsls r1, 8 - ldrh r0, [r4, 0x18] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x44 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - movs r0, 0x4A - movs r1, 0x37 - bl SetGpuReg - b _0819C2C6 -_0819C24E: - movs r0, 0x3 - bl ShowBg - ldr r1, =0x00001248 - movs r0, 0x50 - bl SetGpuReg - ldr r1, =0x0000040b - movs r0, 0x52 - bl SetGpuReg - b _0819C2C6 - .pool -_0819C270: - ldrh r0, [r4, 0x12] - subs r0, 0x4 - strh r0, [r4, 0x12] - ldrh r1, [r4, 0x18] - adds r1, 0x4 - strh r1, [r4, 0x18] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x20 - ble _0819C28C - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x5F - ble _0819C29E -_0819C28C: - movs r0, 0x20 - strh r0, [r4, 0x12] - movs r0, 0x60 - strh r0, [r4, 0x18] - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl ClearGpuRegBits -_0819C29E: - ldrh r1, [r4, 0x12] - lsls r1, 8 - ldrh r0, [r4, 0x18] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x44 - bl SetGpuReg - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0x20 - bne _0819C2CC - b _0819C2C6 -_0819C2BA: - adds r0, r2, 0 - bl DestroyTask - bl sub_819BF2C - b _0819C2CC -_0819C2C6: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0819C2CC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_819C1D0 - - thumb_func_start sub_819C2D4 -sub_819C2D4: @ 819C2D4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0819C2F6 - b _0819C410 -_0819C2F6: - cmp r0, 0x1 - bne _0819C2FC - b _0819C460 -_0819C2FC: - movs r0, 0x3 - bl HideBg - ldr r4, =gUnknown_02020630 - ldr r0, =gUnknown_0300127C - mov r8, r0 - ldr r0, [r0] - ldr r1, =0x00000299 - mov r12, r1 - add r0, r12 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - adds r1, 0x3E - ldrb r2, [r1] - movs r3, 0x5 - negs r3, r3 - adds r0, r3, 0 - ands r0, r2 - strb r0, [r1] - mov r0, r8 - ldr r2, [r0] - mov r1, r12 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r6, r4, 0 - adds r6, 0x1C - adds r0, r6 - ldr r1, =sub_819C100 - str r1, [r0] - ldr r0, =0x00000295 - mov r9, r0 - add r2, r9 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r2, [r0] - adds r1, r3, 0 - ands r1, r2 - strb r1, [r0] - mov r1, r8 - ldr r2, [r1] - mov r1, r9 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldr r1, =DummyObjectCallback - mov r10, r1 - str r1, [r0] - ldr r5, =0x0000029d - adds r2, r5 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - mov r0, r8 - ldr r2, [r0] - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - mov r1, r10 - str r1, [r0] - add r2, r12 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x1 - bl StartObjectRotScalAnim - mov r1, r8 - ldr r0, [r1] - add r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x1 - bl StartObjectRotScalAnim - mov r1, r8 - ldr r0, [r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x1 - bl StartObjectRotScalAnim - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl ClearGpuRegBits - adds r0, r7, 0 - bl DestroyTask - b _0819C4A4 - .pool -_0819C410: - movs r0, 0x10 - strh r0, [r4, 0xE] - movs r0, 0xE0 - strh r0, [r4, 0x38] - movs r0, 0x20 - strh r0, [r4, 0x12] - movs r0, 0x60 - strh r0, [r4, 0x18] - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl SetGpuRegBits - ldrh r1, [r4, 0xE] - lsls r1, 8 - ldrh r0, [r4, 0x38] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x40 - bl SetGpuReg - ldrh r1, [r4, 0x12] - lsls r1, 8 - ldrh r0, [r4, 0x18] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x44 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - movs r0, 0x4A - movs r1, 0x37 - bl SetGpuReg - b _0819C49E -_0819C460: - ldrh r0, [r4, 0x12] - adds r0, 0x4 - strh r0, [r4, 0x12] - ldrh r1, [r4, 0x18] - subs r1, 0x4 - strh r1, [r4, 0x18] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3F - bgt _0819C47C - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x41 - bgt _0819C484 -_0819C47C: - movs r0, 0x40 - strh r0, [r4, 0x12] - movs r0, 0x41 - strh r0, [r4, 0x18] -_0819C484: - ldrh r1, [r4, 0x12] - lsls r1, 8 - ldrh r0, [r4, 0x18] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x44 - bl SetGpuReg - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0x40 - bne _0819C4A4 -_0819C49E: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0819C4A4: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_819C2D4 - - thumb_func_start sub_819C4B4 -sub_819C4B4: @ 819C4B4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r4, =gUnknown_08610638 - adds r0, r4, 0 - movs r1, 0x78 - movs r2, 0x40 - movs r3, 0x1 - bl AddObjectToFront - ldr r6, =gUnknown_0300127C - ldr r1, [r6] - ldr r2, =0x00000299 - mov r8, r2 - add r1, r8 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2C - movs r2, 0x40 - movs r3, 0x1 - bl AddObjectToFront - ldr r1, [r6] - ldr r5, =0x00000295 - adds r1, r5 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0xC4 - movs r2, 0x40 - movs r3, 0x1 - bl AddObjectToFront - ldr r1, [r6] - ldr r4, =0x0000029d - adds r1, r4 - strb r0, [r1] - ldr r3, =gUnknown_02020630 - ldr r2, [r6] - add r8, r2 - mov r0, r8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r3, 0x1C - adds r0, r3 - ldr r1, =sub_819C040 - str r1, [r0] - adds r5, r2, r5 - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldr r5, =DummyObjectCallback - str r5, [r0] - adds r4, r2, r4 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - str r5, [r0] - movs r0, 0xA8 - lsls r0, 2 - adds r2, r0 - movs r0, 0x1 - strb r0, [r2] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819C4B4 - - thumb_func_start sub_819C568 -sub_819C568: @ 819C568 - push {r4,lr} - ldr r4, =gUnknown_0300127C - ldr r0, [r4] - movs r1, 0xA5 - lsls r1, 2 - adds r0, r1 - ldrb r0, [r0] - bl sub_818D820 - ldr r0, [r4] - movs r1, 0xA6 - lsls r1, 2 - adds r0, r1 - ldrb r0, [r0] - bl sub_818D820 - ldr r0, [r4] - movs r1, 0xA7 - lsls r1, 2 - adds r0, r1 - ldrb r0, [r0] - bl sub_818D820 - ldr r0, =sub_819C2D4 - 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 - ldr r1, [r1] - bl _call_via_r1 - ldr r0, [r4] - movs r1, 0xA8 - lsls r1, 2 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819C568 - - thumb_func_start sub_819C5D0 -sub_819C5D0: @ 819C5D0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r4, r0, 0 - adds r6, r1, 0 - adds r5, r2, 0 - mov r8, r3 - lsls r4, 16 - lsrs r4, 16 - lsls r6, 16 - lsrs r6, 16 - lsls r5, 16 - lsrs r5, 16 - mov r0, r8 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl SetGpuRegBits - lsls r4, 24 - lsrs r4, 16 - orrs r4, r6 - movs r0, 0x40 - adds r1, r4, 0 - bl SetGpuReg - lsls r5, 24 - lsrs r5, 16 - mov r0, r8 - orrs r5, r0 - movs r0, 0x44 - adds r1, r5, 0 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - movs r0, 0x4A - movs r1, 0x37 - bl SetGpuReg - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_819C5D0 - - thumb_func_start sub_819C634 -sub_819C634: @ 819C634 - push {r4-r7,lr} - lsls r0, 16 - ldr r2, =gUnknown_0203BC8C - ldr r1, [r2] - lsrs r0, 12 - adds r0, r1 - ldrh r6, [r0] - ldr r0, =gUnknown_0300127C - ldr r0, [r0] - ldrb r5, [r0, 0x5] - movs r3, 0x1 - cmp r3, r5 - bcs _0819C694 - adds r4, r0, 0 - movs r0, 0x6C - mov r12, r0 - adds r7, r2, 0 -_0819C656: - movs r2, 0 -_0819C658: - mov r0, r12 - muls r0, r2 - adds r1, r4, r0 - ldrb r0, [r1, 0x10] - cmp r0, r3 - bne _0819C680 - ldrh r0, [r1, 0xC] - ldr r1, [r7] - lsls r0, 4 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r6 - bne _0819C68A - movs r0, 0 - b _0819C696 - .pool -_0819C680: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x5 - bls _0819C658 -_0819C68A: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r5 - bcc _0819C656 -_0819C694: - movs r0, 0x1 -_0819C696: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_819C634 - - thumb_func_start sub_819C69C -sub_819C69C: @ 819C69C - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - movs r0, 0x8 - ldrsh r2, [r5, r0] - cmp r2, 0x1 - beq _0819C6F8 - cmp r2, 0x1 - bgt _0819C6C4 - cmp r2, 0 - beq _0819C6CA - b _0819C7D8 - .pool -_0819C6C4: - cmp r2, 0x2 - beq _0819C7B4 - b _0819C7D8 -_0819C6CA: - ldr r1, =gUnknown_0300127C - ldr r0, [r1] - ldr r3, =0x000002a7 - adds r0, r3 - strb r2, [r0] - ldr r0, [r1] - adds r3, 0x1 - adds r0, r3 - strb r2, [r0] - ldr r0, [r1] - ldr r1, =0x000002a6 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - strh r1, [r5, 0x8] - b _0819C7D8 - .pool -_0819C6F8: - ldr r0, =gUnknown_0300127C - ldr r3, [r0] - ldr r2, =0x000002a2 - adds r1, r3, r2 - ldrb r1, [r1] - adds r7, r0, 0 - cmp r1, 0 - beq _0819C7D8 - ldr r1, =0x000002a9 - adds r0, r3, r1 - ldrb r4, [r0] - cmp r4, 0 - beq _0819C724 - movs r0, 0x2 - strh r0, [r5, 0x8] - b _0819C7D8 - .pool -_0819C724: - ldr r2, =0x000002a7 - adds r1, r3, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r7] - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0x6 - bls _0819C764 - strb r4, [r1] - ldr r1, [r7] - subs r2, 0x1 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _0819C758 - movs r3, 0xAA - lsls r3, 2 - adds r1, r3 - ldrb r0, [r1] - subs r0, 0x1 - b _0819C762 - .pool -_0819C758: - movs r0, 0xAA - lsls r0, 2 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 -_0819C762: - strb r0, [r1] -_0819C764: - movs r0, 0x80 - lsls r0, 7 - ldr r1, [r7] - movs r4, 0xAA - lsls r4, 2 - adds r1, r4 - ldrb r1, [r1] - movs r2, 0 - bl BlendPalettes - ldr r2, [r7] - adds r4, r2, r4 - ldrb r0, [r4] - cmp r0, 0x5 - bls _0819C790 - ldr r3, =0x000002a6 - adds r1, r2, r3 - movs r0, 0 - b _0819C7D6 - .pool -_0819C790: - cmp r0, 0 - bne _0819C7D8 - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - movs r1, 0x2 - strh r1, [r0, 0x8] - ldr r0, =0x000002a6 - adds r1, r2, r0 - movs r0, 0x1 - b _0819C7D6 - .pool -_0819C7B4: - ldr r0, =gUnknown_0300127C - ldr r0, [r0] - ldr r2, =0x000002a9 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0xE - bls _0819C7D4 - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - strh r0, [r5, 0x8] - b _0819C7D8 - .pool -_0819C7D4: - adds r0, 0x1 -_0819C7D6: - strb r0, [r1] -_0819C7D8: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_819C69C - - thumb_func_start sub_819C7E0 -sub_819C7E0: @ 819C7E0 - push {lr} - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad - bl RunTextPrinters - bl UpdatePaletteFade - bl RunTasks - pop {r0} - bx r0 - thumb_func_end sub_819C7E0 - - thumb_func_start sub_819C7FC -sub_819C7FC: @ 819C7FC - push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_819C7FC - - thumb_func_start sub_819C810 -sub_819C810: @ 819C810 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - ldr r4, =gPlayerParty - ldr r5, =gUnknown_03001284 - ldr r1, [r5] - ldrb r0, [r1, 0x12] - movs r6, 0x64 - muls r0, r6 - adds r0, r4 - ldr r2, =gEnemyParty - mov r9, r2 - ldrb r1, [r1, 0x13] - muls r1, r6 - add r1, r9 - movs r2, 0x64 - bl memcpy - movs r1, 0 - mov r0, sp - strb r1, [r0] - ldr r0, [r5] - ldrb r0, [r0, 0x12] - muls r0, r6 - adds r0, r4 - movs r1, 0x20 - mov r2, sp - bl pokemon_setattr - ldr r3, =gSaveBlock2Ptr - mov r8, r3 - ldr r3, [r3] - ldr r4, [r5] - ldrb r0, [r4, 0x12] - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 2 - adds r2, r3, r2 - ldrb r1, [r4, 0x13] - adds r1, 0x3 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3, r0 - movs r1, 0xE7 - lsls r1, 4 - adds r0, r1 - ldrh r0, [r0] - adds r2, r1 - strh r0, [r2] - ldrb r0, [r4, 0x12] - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 2 - adds r2, r3, r2 - ldrb r1, [r4, 0x13] - adds r1, 0x3 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r3, r0 - ldr r0, =0x00000e78 - adds r3, r0 - ldrb r1, [r3] - adds r2, r0 - strb r1, [r2] - ldr r0, [r5] - ldrb r0, [r0, 0x13] - muls r0, r6 - add r0, r9 - movs r1, 0 - movs r2, 0 - bl GetMonData - mov r1, r8 - ldr r2, [r1] - ldr r4, [r5] - ldrb r3, [r4, 0x12] - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 2 - ldr r3, =0x00000e74 - adds r2, r3 - adds r2, r1 - str r0, [r2] - ldrb r0, [r4, 0x13] - muls r0, r6 - add r0, r9 - movs r1, 0x2E - movs r2, 0 - bl pokemon_getattr_encrypted - mov r1, r8 - ldr r2, [r1] - ldr r1, [r5] - ldrb r3, [r1, 0x12] - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 2 - adds r2, r1 - ldr r3, =0x00000e79 - adds r2, r3 - strb r0, [r2] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819C810 - - thumb_func_start sub_819C90C -sub_819C90C: @ 819C90C - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r6, r0, r1 - movs r1, 0x8 - ldrsh r0, [r6, r1] - cmp r0, 0x7 - beq _0819C950 - cmp r0, 0x7 - bgt _0819C934 - cmp r0, 0x6 - beq _0819C93A - b _0819C9F0 - .pool -_0819C934: - cmp r0, 0x8 - beq _0819C9C4 - b _0819C9F0 -_0819C93A: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r0, 0x7 - strh r0, [r6, 0x8] - b _0819C9F0 -_0819C950: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _0819C9F0 - ldr r4, =gUnknown_03001284 - ldr r0, [r4] - adds r0, 0x21 - ldrb r0, [r0] - bl DestroyTask - ldr r1, [r4] - ldr r0, [r1, 0x2C] - adds r1, 0x30 - bl sub_819F444 - bl sub_819E538 - ldr r4, =gUnknown_0203CE40 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203CE44 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203CE48 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203CE4C - ldr r0, [r4] - bl Free - str r5, [r4] - bl FreeAllWindowBuffers - movs r0, 0x8 - strh r0, [r6, 0x8] - b _0819C9F0 - .pool -_0819C9C4: - adds r0, r2, 0 - bl DestroyTask - ldr r2, =gUnknown_03001284 - ldr r1, [r2] - movs r0, 0x1 - strb r0, [r1, 0x15] - ldr r2, [r2] - ldr r0, =gPlttBufferUnfaded - movs r1, 0xF4 - lsls r1, 1 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2, 0x24] - ldr r1, =gPlayerParty - ldrb r2, [r2, 0x3] - ldr r0, =sub_819DC1C - str r0, [sp] - movs r0, 0 - movs r3, 0x2 - bl sub_81BF8EC -_0819C9F0: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819C90C - - thumb_func_start sub_819CA08 -sub_819CA08: @ 819CA08 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r7, =gUnknown_03001284 - ldr r2, [r7] - adds r0, r2, 0 - adds r0, 0x30 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0819CAFE - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _0819CA78 - cmp r1, 0x1 - bgt _0819CA44 - cmp r1, 0 - beq _0819CA4E - b _0819CAFE - .pool -_0819CA44: - cmp r1, 0x2 - beq _0819CA8C - cmp r1, 0x3 - beq _0819CAA4 - b _0819CAFE -_0819CA4E: - adds r0, r2, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0819CA68 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldr r0, =gUnknown_020375F0 - strh r1, [r0] - b _0819CAFE - .pool -_0819CA68: - movs r0, 0x2 - strh r0, [r4, 0x8] - ldr r1, =gUnknown_020375F0 - movs r0, 0x1 - strh r0, [r1] - b _0819CAFE - .pool -_0819CA78: - adds r0, r2, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0819CA9C - ldrb r0, [r2, 0x3] - strb r0, [r2, 0x13] - bl sub_819C810 - b _0819CA9C -_0819CA8C: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_0819CA9C: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _0819CAFE -_0819CAA4: - bl UpdatePaletteFade - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _0819CAFE - ldr r0, [r7] - adds r0, 0x21 - ldrb r0, [r0] - bl DestroyTask - bl sub_819E538 - ldr r4, =gUnknown_0203CE40 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203CE44 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203CE48 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203CE4C - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r0, [r7] - bl Free - str r5, [r7] - bl FreeAllWindowBuffers - ldr r0, =sub_80861B0 - bl SetMainCallback2 - adds r0, r6, 0 - bl DestroyTask -_0819CAFE: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819CA08 - - thumb_func_start sub_819CB1C -sub_819CB1C: @ 819CB1C - push {r4-r7,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r7, =gUnknown_03001284 - ldr r0, [r7] - adds r0, 0x30 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0819CBD6 - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - beq _0819CB50 - cmp r0, 0x5 - beq _0819CB5A - b _0819CBD6 - .pool -_0819CB50: - bl sub_819E9E0 - movs r0, 0x5 - strh r0, [r4, 0x8] - b _0819CBD6 -_0819CB5A: - ldr r2, =gMain - ldrh r1, [r2, 0x2E] - movs r6, 0x1 - adds r5, r6, 0 - ands r5, r1 - cmp r5, 0 - beq _0819CB86 - movs r0, 0x5 - bl audio_play - ldr r0, [r7] - ldrb r0, [r0, 0x16] - cmp r0, 0 - bne _0819CB80 - strh r6, [r4, 0xA] - b _0819CB9C - .pool -_0819CB80: - movs r0, 0 - strh r0, [r4, 0xA] - b _0819CB96 -_0819CB86: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0819CBA8 - movs r0, 0x5 - bl audio_play - strh r5, [r4, 0xA] -_0819CB96: - movs r0, 0x4 - bl sub_819EA64 -_0819CB9C: - ldrh r0, [r4, 0x14] - ldrh r1, [r4, 0x16] - lsls r0, 16 - orrs r0, r1 - str r0, [r4] - b _0819CBD6 -_0819CBA8: - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0819CBC2 - movs r0, 0x5 - bl audio_play - movs r0, 0x1 - negs r0, r0 - bl sub_819E758 - b _0819CBD6 -_0819CBC2: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0819CBD6 - movs r0, 0x5 - bl audio_play - movs r0, 0x1 - bl sub_819E758 -_0819CBD6: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_819CB1C - - thumb_func_start sub_819CBDC -sub_819CBDC: @ 819CBDC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r2, r1, r2 - movs r1, 0xA - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _0819CC04 - movs r0, 0 - strh r0, [r2, 0x8] - ldr r0, =sub_819CA08 - b _0819CC16 - .pool -_0819CC04: - movs r0, 0 - strh r0, [r2, 0x8] - ldr r1, =sub_819CE40 - lsrs r0, r1, 16 - strh r0, [r2, 0x14] - strh r1, [r2, 0x16] - movs r0, 0x1 - strh r0, [r2, 0x12] - ldr r0, =sub_819D770 -_0819CC16: - str r0, [r2] - pop {r0} - bx r0 - .pool - thumb_func_end sub_819CBDC - - thumb_func_start sub_819CC24 -sub_819CC24: @ 819CC24 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - movs r0, 0x8 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _0819CC5A - ldr r0, =gUnknown_085EECBB - bl sub_819EBEC - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - adds r0, 0x20 - strb r5, [r0] - movs r0, 0x4 - strh r0, [r4, 0x8] - ldr r1, =sub_819CBDC - lsrs r0, r1, 16 - strh r0, [r4, 0x14] - strh r1, [r4, 0x16] - ldr r0, =sub_819CB1C - str r0, [r4] -_0819CC5A: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819CC24 - - thumb_func_start sub_819CC74 -sub_819CC74: @ 819CC74 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_03001284 - ldr r1, [r0] - ldr r0, [r1, 0x2C] - adds r1, 0x30 - movs r2, 0x1 - bl sub_819F3F8 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - movs r1, 0xA - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _0819CCB0 - movs r0, 0 - strh r0, [r2, 0x8] - ldr r0, =sub_819CA08 - b _0819CCC2 - .pool -_0819CCB0: - movs r0, 0 - strh r0, [r2, 0x8] - ldr r1, =sub_819CE40 - lsrs r0, r1, 16 - strh r0, [r2, 0x14] - strh r1, [r2, 0x16] - movs r0, 0x1 - strh r0, [r2, 0x12] - ldr r0, =sub_819D770 -_0819CCC2: - str r0, [r2] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819CC74 - - thumb_func_start sub_819CCD4 -sub_819CCD4: @ 819CCD4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r5, r1, r2 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _0819CD1A - ldr r4, =gUnknown_03001284 - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x2D - adds r1, 0x30 - movs r2, 0x1 - bl sub_819F2B4 - ldr r0, =gUnknown_085EECF0 - bl sub_819EBEC - ldr r0, [r4] - adds r0, 0x20 - movs r1, 0x1 - strb r1, [r0] - movs r0, 0x4 - strh r0, [r5, 0x8] - ldr r1, =sub_819CC74 - lsrs r0, r1, 16 - strh r0, [r5, 0x14] - strh r1, [r5, 0x16] - ldr r0, =sub_819CB1C - str r0, [r5] -_0819CD1A: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819CCD4 - - thumb_func_start sub_819CD34 -sub_819CD34: @ 819CD34 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x3 - beq _0819CDA4 - cmp r0, 0x3 - bgt _0819CD60 - cmp r0, 0x2 - beq _0819CD66 - b _0819CE36 - .pool -_0819CD60: - cmp r0, 0x9 - beq _0819CD88 - b _0819CE36 -_0819CD66: - ldr r0, =gUnknown_03001284 - ldr r1, [r0] - ldrb r0, [r1, 0x15] - cmp r0, 0 - bne _0819CD7C - adds r0, r1, 0 - adds r0, 0x2D - adds r1, 0x30 - movs r2, 0x1 - bl sub_819F2B4 -_0819CD7C: - movs r0, 0x9 - strh r0, [r5, 0x8] - b _0819CE36 - .pool -_0819CD88: - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - adds r0, 0x30 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0819CE36 - bl sub_819E944 - movs r0, 0x3 - strh r0, [r5, 0x8] - b _0819CE36 - .pool -_0819CDA4: - ldr r7, =gUnknown_03001284 - ldr r0, [r7] - adds r0, 0x30 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0819CE36 - ldr r2, =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - mov r8, r0 - mov r4, r8 - ands r4, r1 - cmp r4, 0 - beq _0819CDD8 - movs r0, 0x5 - bl audio_play - adds r0, r6, 0 - bl sub_819F0A0 - b _0819CE36 - .pool -_0819CDD8: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0819CE14 - movs r0, 0x5 - bl audio_play - ldr r1, [r7] - ldr r0, [r1, 0x2C] - adds r1, 0x30 - movs r2, 0x1 - bl sub_819F3F8 - movs r0, 0x3 - bl sub_819EA64 - strh r4, [r5, 0x8] - ldr r1, =sub_819CE40 - lsrs r0, r1, 16 - strh r0, [r5, 0x14] - strh r1, [r5, 0x16] - mov r1, r8 - strh r1, [r5, 0x12] - ldr r0, =sub_819D770 - str r0, [r5] - b _0819CE36 - .pool -_0819CE14: - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0819CE28 - movs r0, 0x1 - negs r0, r0 - bl sub_819E7C0 - b _0819CE36 -_0819CE28: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0819CE36 - movs r0, 0x1 - bl sub_819E7C0 -_0819CE36: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_819CD34 - - thumb_func_start sub_819CE40 -sub_819CE40: @ 819CE40 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0819CE64 - cmp r0, 0x1 - beq _0819CE88 - b _0819CF4C - .pool -_0819CE64: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0819CF4C - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - adds r0, 0x22 - movs r1, 0x1 - strb r1, [r0] - strh r1, [r4, 0x8] - b _0819CF4C - .pool -_0819CE88: - ldr r2, =gMain - ldrh r1, [r2, 0x2E] - adds r5, r1, 0 - ands r5, r0 - cmp r5, 0 - beq _0819CEBC - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - adds r0, 0x22 - movs r1, 0 - strb r1, [r0] - bl sub_819EE08 - bl sub_819EAC0 - adds r0, r6, 0 - bl sub_819F184 - b _0819CF4C - .pool -_0819CEBC: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0819CEF8 - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - adds r0, 0x22 - strb r5, [r0] - bl sub_819EE08 - bl sub_819EAC0 - ldr r1, =sub_819CC24 - lsrs r0, r1, 16 - strh r0, [r4, 0x14] - strh r1, [r4, 0x16] - strh r5, [r4, 0x8] - strh r5, [r4, 0x12] - ldr r0, =sub_819D588 - str r0, [r4] - b _0819CF4C - .pool -_0819CEF8: - ldrh r1, [r2, 0x30] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0819CF0C - movs r0, 0x1 - negs r0, r0 - bl sub_819E694 - b _0819CF2A -_0819CF0C: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0819CF1C - movs r0, 0x1 - bl sub_819E694 - b _0819CF2A -_0819CF1C: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0819CF34 - movs r0, 0x1 - bl sub_819E6E8 -_0819CF2A: - bl sub_819EFA8 - bl sub_819EB4C - b _0819CF4C -_0819CF34: - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0819CF4C - movs r0, 0x1 - negs r0, r0 - bl sub_819E6E8 - bl sub_819EFA8 - bl sub_819EB4C -_0819CF4C: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_819CE40 - - thumb_func_start sub_819CF54 -sub_819CF54: @ 819CF54 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r2, [r4, r0] - cmp r2, 0x1 - beq _0819CFA0 - cmp r2, 0x1 - bgt _0819CF7C - cmp r2, 0 - beq _0819CF82 - b _0819D05C - .pool -_0819CF7C: - cmp r2, 0x2 - beq _0819D03C - b _0819D05C -_0819CF82: - ldr r1, =gUnknown_03001284 - ldr r0, [r1] - adds r0, 0x27 - strb r2, [r0] - ldr r0, [r1] - adds r0, 0x28 - strb r2, [r0] - ldr r0, [r1] - adds r0, 0x26 - movs r1, 0x1 - strb r1, [r0] - strh r1, [r4, 0x8] - b _0819D05C - .pool -_0819CFA0: - ldr r1, =gUnknown_03001284 - ldr r2, [r1] - adds r0, r2, 0 - adds r0, 0x22 - ldrb r0, [r0] - adds r6, r1, 0 - cmp r0, 0 - beq _0819D05C - adds r0, r2, 0 - adds r0, 0x29 - ldrb r3, [r0] - cmp r3, 0 - beq _0819CFC4 - movs r0, 0x2 - strh r0, [r4, 0x8] - b _0819D05C - .pool -_0819CFC4: - adds r1, r2, 0 - adds r1, 0x27 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r6] - adds r1, r0, 0 - adds r1, 0x27 - ldrb r0, [r1] - cmp r0, 0x6 - bls _0819CFF8 - strb r3, [r1] - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _0819CFF0 - adds r1, 0x28 - ldrb r0, [r1] - subs r0, 0x1 - b _0819CFF6 -_0819CFF0: - adds r1, 0x28 - ldrb r0, [r1] - adds r0, 0x1 -_0819CFF6: - strb r0, [r1] -_0819CFF8: - movs r0, 0x80 - lsls r0, 7 - ldr r1, [r6] - adds r1, 0x28 - ldrb r1, [r1] - movs r2, 0 - bl BlendPalettes - ldr r2, [r6] - adds r0, r2, 0 - adds r0, 0x28 - ldrb r0, [r0] - cmp r0, 0x5 - bls _0819D01C - adds r1, r2, 0 - adds r1, 0x26 - movs r0, 0 - b _0819D05A -_0819D01C: - cmp r0, 0 - bne _0819D05C - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x2 - strh r1, [r0, 0x8] - adds r1, r2, 0 - adds r1, 0x26 - movs r0, 0x1 - b _0819D05A - .pool -_0819D03C: - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0x29 - ldrb r0, [r1] - cmp r0, 0xE - bls _0819D058 - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - strh r0, [r4, 0x8] - b _0819D05C - .pool -_0819D058: - adds r0, 0x1 -_0819D05A: - strb r0, [r1] -_0819D05C: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_819CF54 - - thumb_func_start sub_819D064 -sub_819D064: @ 819D064 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _0819D0A4 - cmp r1, 0x1 - bgt _0819D08C - cmp r1, 0 - beq _0819D092 - b _0819D118 - .pool -_0819D08C: - cmp r1, 0x2 - beq _0819D0BC - b _0819D118 -_0819D092: - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - adds r0, 0x27 - strb r1, [r0] - strh r1, [r4, 0x10] - b _0819D0AE - .pool -_0819D0A4: - ldr r0, =gPlttBufferUnfaded+ 0x1E0 - movs r1, 0xE0 - movs r2, 0xA - bl LoadPalette -_0819D0AE: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _0819D118 - .pool -_0819D0BC: - ldr r2, =gUnknown_03001284 - ldr r0, [r2] - adds r0, 0x28 - ldrb r0, [r0] - cmp r0, 0xF - bls _0819D0D2 - movs r0, 0x1 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0819D0D2: - ldr r1, [r2] - adds r1, 0x27 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r2] - adds r1, r0, 0 - adds r1, 0x27 - ldrb r0, [r1] - cmp r0, 0x3 - bls _0819D108 - movs r0, 0 - strb r0, [r1] - ldr r1, =gPlttBufferUnfaded - ldr r0, =gPlttBufferFaded - movs r3, 0xE4 - lsls r3, 1 - adds r0, r3 - ldrh r0, [r0] - adds r3, 0x20 - adds r1, r3 - strh r0, [r1] - ldr r1, [r2] - adds r1, 0x28 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0819D108: - movs r0, 0x80 - lsls r0, 7 - ldr r1, [r2] - adds r1, 0x28 - ldrb r1, [r1] - movs r2, 0 - bl BlendPalettes -_0819D118: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819D064 - - thumb_func_start sub_819D12C -sub_819D12C: @ 819D12C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - ldr r1, =gTasks - lsls r0, 2 - ldr r2, [sp] - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r2, 0x8 - ldrsh r3, [r4, r2] - cmp r3, 0 - beq _0819D15C - cmp r3, 0x1 - beq _0819D168 - b _0819D310 - .pool -_0819D15C: - strh r3, [r4, 0xA] - strh r3, [r4, 0xC] - strh r3, [r4, 0xE] - movs r0, 0x1 - strh r0, [r4, 0x8] - b _0819D310 -_0819D168: - movs r3, 0 - str r3, [sp, 0x4] - movs r1, 0x2 - str r0, [sp, 0x8] - ldr r0, =gTasks - str r0, [sp, 0xC] -_0819D174: - lsls r0, r1, 24 - asrs r4, r0, 24 - mov r9, r0 - cmp r4, 0x2 - beq _0819D1F2 - ldr r2, =gUnknown_02020630 - ldr r3, =gUnknown_03001284 - ldr r0, [r3] - adds r0, 0x5 - mov r8, r0 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r6, r0, r2 - ldrh r1, [r6, 0x20] - mov r12, r1 - mov r7, r12 - ldr r1, [sp, 0x4] - subs r0, r1, r7 - lsls r0, 24 - lsrs r5, r0, 24 - mov r10, r2 - cmp r5, 0x10 - beq _0819D1BE - adds r0, r4, 0x2 - lsls r0, 1 - ldr r2, [sp, 0x8] - adds r0, r2 - ldr r1, =gTasks - adds r1, 0x8 - adds r0, r1 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r0, 0x1 - bne _0819D1D8 -_0819D1BE: - lsls r0, r7, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - mov r0, r12 - adds r0, 0xA - strh r0, [r6, 0x20] - b _0819D210 - .pool -_0819D1D8: - cmp r5, 0x10 - bls _0819D210 - adds r0, r4, 0x1 - add r0, r8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r10 - ldrh r0, [r0, 0x20] - subs r0, 0x30 - strh r0, [r6, 0x20] - b _0819D210 -_0819D1F2: - ldr r3, =gUnknown_02020630 - ldr r4, =gUnknown_03001284 - ldr r0, [r4] - ldrb r1, [r0, 0x7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r2, [r0, 0x20] - lsls r1, r2, 24 - lsrs r1, 24 - str r1, [sp, 0x4] - adds r2, 0xA - strh r2, [r0, 0x20] - mov r10, r3 -_0819D210: - mov r0, r9 - asrs r2, r0, 24 - adds r0, r2, 0x1 - lsls r0, 1 - ldr r1, [sp, 0x8] - adds r0, r1 - ldr r1, =gTasks - adds r1, 0x8 - adds r0, r1 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r0, 0x1 - bne _0819D26A - ldr r1, =gUnknown_03001284 - ldr r0, [r1] - adds r0, 0x5 - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - mov r3, r10 - adds r1, r0, r3 - movs r0, 0x20 - ldrsh r3, [r1, r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 4 - adds r0, 0x48 - cmp r3, r0 - ble _0819D260 - strh r0, [r1, 0x20] - movs r7, 0x1 - b _0819D26C - .pool -_0819D260: - movs r7, 0 - cmp r3, r0 - bne _0819D26C - movs r7, 0x1 - b _0819D26C -_0819D26A: - movs r7, 0 -_0819D26C: - mov r6, r10 - ldr r5, =gUnknown_03001284 - ldr r2, [r5] - mov r1, r9 - asrs r4, r1, 24 - adds r0, r2, 0x5 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r6 - movs r3, 0x20 - ldrsh r0, [r1, r3] - subs r0, 0x10 - cmp r0, 0xF0 - ble _0819D2F8 - ldrh r0, [r1, 0x20] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - ldr r0, =0x0000fff0 - strh r0, [r1, 0x20] - ldrb r0, [r2, 0x14] - cmp r0, 0x1 - bne _0819D2C0 - movs r0, 0x65 - bl IndexOfObjectPaletteTag - ldr r1, [r5] - adds r1, 0x5 - adds r1, r4 - ldrb r1, [r1] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r6 - b _0819D2D8 - .pool -_0819D2C0: - movs r0, 0x64 - bl IndexOfObjectPaletteTag - ldr r2, =gUnknown_03001284 - ldr r1, [r2] - adds r1, 0x5 - adds r1, r4 - ldrb r1, [r1] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - add r2, r10 -_0819D2D8: - lsls r0, 4 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - orrs r1, r0 - strb r1, [r2, 0x5] - mov r3, r9 - asrs r0, r3, 23 - adds r0, 0x2 - ldr r1, [sp, 0x8] - adds r0, r1 - ldr r2, [sp, 0xC] - adds r2, 0x8 - adds r0, r2 - movs r1, 0x1 - strh r1, [r0] -_0819D2F8: - movs r0, 0xFF - lsls r0, 24 - add r0, r9 - lsrs r1, r0, 24 - cmp r0, 0 - blt _0819D306 - b _0819D174 -_0819D306: - cmp r7, 0x1 - bne _0819D310 - ldr r0, [sp] - bl DestroyTask -_0819D310: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819D12C - - thumb_func_start sub_819D324 -sub_819D324: @ 819D324 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0 - mov r8, r0 - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r2, r0, r1 - ldrb r4, [r2, 0xE] - movs r0, 0xC - ldrsh r5, [r2, r0] - mov r10, r1 - cmp r5, 0x1 - bne _0819D352 - lsls r0, r4, 24 - negs r0, r0 - lsrs r4, r0, 24 -_0819D352: - movs r1, 0x8 - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _0819D368 - cmp r0, 0x1 - bne _0819D360 - b _0819D480 -_0819D360: - b _0819D570 - .pool -_0819D368: - ldr r3, =gUnknown_02020630 - ldr r2, =gUnknown_03001284 - ldr r0, [r2] - ldrb r1, [r0, 0x8] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x20] - cmp r5, 0 - bne _0819D39C - lsls r0, 16 - asrs r0, 16 - lsls r2, r4, 24 - asrs r1, r2, 24 - adds r0, r1 - movs r1, 0x1 - cmp r0, 0xEF - ble _0819D3B2 - movs r1, 0 - movs r0, 0xF0 - b _0819D3B0 - .pool -_0819D39C: - lsls r0, 16 - asrs r0, 16 - lsls r2, r4, 24 - asrs r1, r2, 24 - adds r0, r1 - movs r1, 0x1 - cmp r0, 0xA0 - bgt _0819D3B2 - movs r1, 0 - movs r0, 0xA0 -_0819D3B0: - mov r8, r0 -_0819D3B2: - cmp r1, 0x1 - bne _0819D3FC - movs r3, 0 - ldr r7, =gUnknown_02020630 - ldr r6, =gUnknown_03001284 - asrs r5, r2, 24 -_0819D3BE: - movs r4, 0 - adds r2, r3, 0x1 -_0819D3C2: - ldr r1, [r6] - lsls r0, r4, 1 - adds r0, r4 - adds r0, r3, r0 - adds r1, 0x8 - adds r1, r0 - ldrb r1, [r1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, r5 - strh r1, [r0, 0x20] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _0819D3C2 - lsls r0, r2, 24 - lsrs r3, r0, 24 - cmp r3, 0x2 - bls _0819D3BE - b _0819D570 - .pool -_0819D3FC: - movs r4, 0 - lsls r1, r7, 2 - mov r12, r1 - mov r6, r8 - adds r6, 0x10 - movs r0, 0x30 - add r0, r8 - mov r9, r0 - ldr r5, =gUnknown_02020630 -_0819D40E: - ldr r1, =gUnknown_03001284 - ldr r2, [r1] - lsls r3, r4, 1 - adds r3, r4 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r8 - strh r1, [r0, 0x20] - adds r0, r2, 0 - adds r0, 0x9 - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x20] - adds r2, 0xA - adds r2, r3 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r9 - strh r1, [r0, 0x20] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _0819D40E - mov r1, r12 - adds r0, r1, r7 - lsls r0, 3 - add r0, r10 - ldrb r1, [r0, 0xA] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - add r0, r10 - movs r1, 0x1 - strh r1, [r0, 0xE] - adds r0, r7, 0 - bl DestroyTask - b _0819D570 - .pool -_0819D480: - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - ldrb r1, [r0, 0xE] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x20] - cmp r5, 0 - bne _0819D4B4 - lsls r0, 16 - asrs r0, 16 - lsls r2, r4, 24 - asrs r1, r2, 24 - adds r0, r1 - movs r1, 0x1 - cmp r0, 0xEF - ble _0819D4CA - movs r1, 0 - movs r0, 0xF0 - b _0819D4C8 - .pool -_0819D4B4: - lsls r0, 16 - asrs r0, 16 - lsls r2, r4, 24 - asrs r1, r2, 24 - adds r0, r1 - movs r1, 0x1 - cmp r0, 0xC0 - bgt _0819D4CA - movs r1, 0 - movs r0, 0xC0 -_0819D4C8: - mov r8, r0 -_0819D4CA: - cmp r1, 0x1 - bne _0819D510 - movs r3, 0 - ldr r7, =gUnknown_02020630 - ldr r6, =gUnknown_03001284 - asrs r5, r2, 24 -_0819D4D6: - movs r4, 0 - adds r2, r3, 0x1 -_0819D4DA: - ldr r0, [r6] - lsls r1, r4, 1 - adds r1, r3, r1 - adds r0, 0xE - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, r5 - strh r1, [r0, 0x20] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _0819D4DA - lsls r0, r2, 24 - lsrs r3, r0, 24 - cmp r3, 0x1 - bls _0819D4D6 - b _0819D570 - .pool -_0819D510: - movs r4, 0 - lsls r1, r7, 2 - mov r12, r1 - mov r6, r8 - adds r6, 0x10 - ldr r5, =gUnknown_02020630 - ldr r0, =gUnknown_03001284 - mov r9, r0 -_0819D520: - mov r1, r9 - ldr r2, [r1] - lsls r3, r4, 1 - adds r0, r2, 0 - adds r0, 0xE - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r8 - strh r1, [r0, 0x20] - adds r2, 0xF - adds r2, r3 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x20] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _0819D520 - mov r1, r12 - adds r0, r1, r7 - lsls r0, 3 - add r0, r10 - ldrb r1, [r0, 0xA] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - add r0, r10 - movs r1, 0x1 - strh r1, [r0, 0x10] - adds r0, r7, 0 - bl DestroyTask -_0819D570: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819D324 - - thumb_func_start sub_819D588 -sub_819D588: @ 819D588 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - mov r8, r1 - cmp r0, 0x5 - bls _0819D5AA - b _0819D762 -_0819D5AA: - lsls r0, 2 - ldr r1, =_0819D5BC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0819D5BC: - .4byte _0819D5D4 - .4byte _0819D5F0 - .4byte _0819D60C - .4byte _0819D63C - .4byte _0819D6F0 - .4byte _0819D73A -_0819D5D4: - ldr r0, =gUnknown_08610918 - movs r1, 0xE0 - movs r2, 0xA - bl LoadPalette - bl sub_819ED34 - movs r0, 0x5 - bl PutWindowTilemap - b _0819D622 - .pool -_0819D5F0: - movs r0, 0x3 - bl sub_819EA64 - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _0819D762 - .pool -_0819D60C: - movs r0, 0x80 - lsls r0, 7 - ldr r1, =gUnknown_0860F13C - adds r1, 0x4A - ldrh r1, [r1] - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_0819D622: - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _0819D762 - .pool -_0819D63C: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - beq _0819D64E - b _0819D762 -_0819D64E: - movs r0, 0x5 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x5 - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - ldrb r0, [r0, 0x14] - cmp r0, 0x1 - bne _0819D6B0 - ldr r0, =sub_819D324 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gTasks - lsls r2, r5, 2 - adds r2, r5 - lsls r2, 3 - adds r2, r1 - strh r6, [r2, 0xE] - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0xA] - strh r6, [r0, 0x8] - strh r6, [r0, 0xC] - movs r1, 0x6 - strh r1, [r0, 0xE] - movs r0, 0x5 - strh r0, [r2, 0xC] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _0819D762 - .pool -_0819D6B0: - ldr r0, =sub_819D324 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - ldr r3, =gTasks - lsls r2, r5, 2 - adds r2, r5 - lsls r2, 3 - adds r2, r3 - movs r1, 0x1 - strh r1, [r2, 0xE] - strh r6, [r2, 0x10] - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r3 - strh r5, [r0, 0xA] - strh r1, [r0, 0x8] - strh r6, [r0, 0xC] - movs r1, 0x6 - strh r1, [r0, 0xE] - ldrh r0, [r2, 0x8] - adds r0, 0x2 - strh r0, [r2, 0x8] - b _0819D762 - .pool -_0819D6F0: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - mov r1, r8 - adds r6, r0, r1 - ldrh r0, [r6, 0xC] - movs r2, 0xC - ldrsh r7, [r6, r2] - cmp r7, 0 - bne _0819D734 - ldr r0, =sub_819D324 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - strh r7, [r6, 0x10] - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - add r0, r8 - strh r5, [r0, 0xA] - movs r1, 0x1 - strh r1, [r0, 0x8] - strh r7, [r0, 0xC] - movs r1, 0x6 - strh r1, [r0, 0xE] - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] - b _0819D762 - .pool -_0819D734: - subs r0, 0x1 - strh r0, [r6, 0xC] - b _0819D762 -_0819D73A: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - mov r1, r8 - adds r2, r0, r1 - movs r1, 0xE - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _0819D762 - movs r1, 0x10 - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _0819D762 - ldrh r0, [r2, 0x12] - strh r0, [r2, 0x8] - ldrh r0, [r2, 0x14] - ldrh r1, [r2, 0x16] - lsls r0, 16 - orrs r0, r1 - str r0, [r2] -_0819D762: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_819D588 - - thumb_func_start sub_819D770 -sub_819D770: @ 819D770 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, =gUnknown_03001284 - ldr r0, [r1] - adds r0, 0x30 - ldrb r0, [r0] - adds r3, r1, 0 - cmp r0, 0x1 - bne _0819D78C - b _0819D9D8 -_0819D78C: - ldr r0, =gTasks - lsls r2, r6, 2 - adds r1, r2, r6 - lsls r1, 3 - adds r1, r0 - movs r4, 0x8 - ldrsh r1, [r1, r4] - mov r8, r0 - adds r5, r2, 0 - cmp r1, 0x8 - bls _0819D7A4 - b _0819D9D8 -_0819D7A4: - lsls r0, r1, 2 - ldr r1, =_0819D7BC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0819D7BC: - .4byte _0819D7E0 - .4byte _0819D868 - .4byte _0819D8AE - .4byte _0819D8F4 - .4byte _0819D910 - .4byte _0819D928 - .4byte _0819D936 - .4byte _0819D948 - .4byte _0819D9B0 -_0819D7E0: - ldr r0, [r3] - ldrb r7, [r0, 0x14] - cmp r7, 0x1 - bne _0819D828 - ldr r0, =sub_819D324 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - ldr r3, =gTasks - adds r2, r5, r6 - lsls r2, 3 - adds r2, r3 - movs r1, 0 - strh r1, [r2, 0xE] - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r3 - strh r6, [r0, 0xA] - strh r1, [r0, 0x8] - strh r7, [r0, 0xC] - movs r1, 0x6 - strh r1, [r0, 0xE] - movs r0, 0xA - strh r0, [r2, 0xC] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _0819D9D8 - .pool -_0819D828: - ldr r0, =sub_819D324 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - ldr r3, =gTasks - adds r2, r5, r6 - lsls r2, 3 - adds r2, r3 - movs r0, 0 - movs r1, 0x1 - strh r1, [r2, 0xE] - strh r0, [r2, 0x10] - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r3 - strh r6, [r0, 0xA] - strh r1, [r0, 0x8] - strh r1, [r0, 0xC] - movs r1, 0x6 - strh r1, [r0, 0xE] - ldrh r0, [r2, 0x8] - adds r0, 0x2 - strh r0, [r2, 0x8] - b _0819D9D8 - .pool -_0819D868: - adds r0, r5, r6 - lsls r0, 3 - mov r1, r8 - adds r5, r0, r1 - ldrh r0, [r5, 0xC] - movs r2, 0xC - ldrsh r7, [r5, r2] - cmp r7, 0 - bne _0819D8A8 - ldr r0, =sub_819D324 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - strh r7, [r5, 0x10] - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - add r0, r8 - strh r6, [r0, 0xA] - movs r1, 0x1 - strh r1, [r0, 0x8] - strh r1, [r0, 0xC] - movs r1, 0x6 - strh r1, [r0, 0xE] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _0819D9D8 - .pool -_0819D8A8: - subs r0, 0x1 - strh r0, [r5, 0xC] - b _0819D9D8 -_0819D8AE: - adds r0, r5, r6 - lsls r0, 3 - mov r1, r8 - adds r4, r0, r1 - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0x1 - beq _0819D8C0 - b _0819D9D8 -_0819D8C0: - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0819D8CA - b _0819D9D8 -_0819D8CA: - ldr r1, =gPlttBufferFaded - ldr r0, =gUnknown_0860F13C - adds r0, 0x4A - ldrh r0, [r0] - movs r2, 0xE2 - lsls r2, 1 - adds r1, r2 - strh r0, [r1] - bl sub_819ED34 - movs r0, 0x5 - bl PutWindowTilemap - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _0819D9D8 - .pool -_0819D8F4: - movs r0, 0x80 - lsls r0, 7 - ldr r1, =gUnknown_0860F13C - adds r1, 0x4A - ldrh r1, [r1] - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _0819D990 - .pool -_0819D910: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0819D9D8 - movs r0, 0 - bl sub_819EDBC - b _0819D990 - .pool -_0819D928: - movs r0, 0x1 - bl sub_819EDBC - movs r0, 0x3 - bl PutWindowTilemap - b _0819D990 -_0819D936: - movs r0, 0x5 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x5 - movs r1, 0x2 - bl CopyWindowToVram - b _0819D990 -_0819D948: - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - ldrb r0, [r0, 0x14] - cmp r0, 0 - bne _0819D964 - ldr r0, =gUnknown_085EEC73 - bl sub_819EBEC - b _0819D96A - .pool -_0819D964: - ldr r0, =gUnknown_085EEC8B - bl sub_819EBEC -_0819D96A: - ldr r0, =gUnknown_03001284 - ldr r1, [r0] - ldrb r0, [r1, 0x3] - cmp r0, 0x2 - bhi _0819D98C - ldr r2, =gUnknown_02020630 - ldrb r1, [r1, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] -_0819D98C: - bl sub_819EFA8 -_0819D990: - ldr r0, =gTasks - adds r1, r5, r6 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _0819D9D8 - .pool -_0819D9B0: - bl sub_819EEF0 - bl sub_819EADC - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - adds r0, 0x22 - movs r1, 0x1 - strb r1, [r0] - ldr r1, =gTasks - adds r0, r5, r6 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x12] - strh r1, [r0, 0x8] - ldrh r1, [r0, 0x14] - ldrh r2, [r0, 0x16] - lsls r1, 16 - orrs r1, r2 - str r1, [r0] -_0819D9D8: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819D770 - - thumb_func_start sub_819D9EC -sub_819D9EC: @ 819D9EC - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - adds r0, 0x30 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0819DA00 - b _0819DBCA -_0819DA00: - ldr r0, =gTasks - lsls r2, r6, 2 - adds r1, r2, r6 - lsls r1, 3 - adds r1, r0 - movs r3, 0x8 - ldrsh r1, [r1, r3] - adds r3, r0, 0 - adds r7, r2, 0 - cmp r1, 0x4 - bls _0819DA18 - b _0819DBCA -_0819DA18: - lsls r0, r1, 2 - ldr r1, =_0819DA30 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0819DA30: - .4byte _0819DA44 - .4byte _0819DA58 - .4byte _0819DA8C - .4byte _0819DABC - .4byte _0819DBB0 -_0819DA44: - bl sub_819EEF0 - ldr r0, =gTasks - adds r1, r7, r6 - lsls r1, 3 - adds r1, r0 - b _0819DB96 - .pool -_0819DA58: - bl sub_819EADC - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldr r0, =gTasks - adds r1, r7, r6 - lsls r1, 3 - adds r1, r0 - b _0819DB96 - .pool -_0819DA8C: - ldr r0, =sub_819D12C - movs r1, 0 - bl CreateTask - ldr r2, =gTasks - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - adds r0, 0x21 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, =sub_819D064 - str r1, [r0] - b _0819DB90 - .pool -_0819DABC: - ldr r0, =sub_819D12C - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - beq _0819DACA - b _0819DBCA -_0819DACA: - ldr r2, =gTasks - ldr r4, =gUnknown_03001284 - ldr r0, [r4] - adds r0, 0x21 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x10 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - bne _0819DBCA - bl sub_819EAC0 - ldr r0, [r4] - ldrb r0, [r0, 0x14] - cmp r0, 0 - bne _0819DB04 - movs r0, 0x1 - bl sub_819F048 - b _0819DB32 - .pool -_0819DB04: - movs r0, 0 - bl sub_819F048 - movs r2, 0 - ldr r5, =gUnknown_02020630 - movs r3, 0x4 -_0819DB10: - ldr r0, [r4] - adds r0, 0xB - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bls _0819DB10 -_0819DB32: - ldr r5, =gUnknown_02020630 - ldr r4, =gUnknown_03001284 - ldr r3, [r4] - ldrb r0, [r3, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r0, r3, 0x5 - ldrb r2, [r3, 0x3] - adds r0, r2 - ldrb r2, [r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r5 - ldrh r0, [r0, 0x20] - movs r5, 0 - strh r0, [r1, 0x20] - ldr r2, =gTasks - adds r0, r3, 0 - adds r0, 0x21 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, =sub_819CF54 - str r1, [r0] - adds r3, 0x27 - strb r5, [r3] - ldr r0, [r4] - adds r0, 0x28 - movs r1, 0x6 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0x26 - strb r5, [r0] - ldr r0, [r4] - adds r0, 0x21 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x1 - strh r1, [r0, 0x8] -_0819DB90: - adds r1, r7, r6 - lsls r1, 3 - adds r1, r2 -_0819DB96: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _0819DBCA - .pool -_0819DBB0: - adds r0, r7, r6 - lsls r0, 3 - adds r0, r3 - movs r1, 0 - strh r1, [r0, 0x8] - ldr r2, =sub_819CE40 - lsrs r1, r2, 16 - strh r1, [r0, 0x14] - strh r2, [r0, 0x16] - movs r1, 0x1 - strh r1, [r0, 0x12] - ldr r1, =sub_819D770 - str r1, [r0] -_0819DBCA: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819D9EC - - thumb_func_start sub_819DBD8 -sub_819DBD8: @ 819DBD8 - push {r4,r5,lr} - ldr r5, =gUnknown_03001284 - ldr r4, [r5] - cmp r4, 0 - bne _0819DBF6 - movs r0, 0x34 - bl AllocZeroed - str r0, [r5] - strb r4, [r0, 0x3] - ldr r0, [r5] - adds r0, 0x30 - strb r4, [r0] - ldr r0, [r5] - strb r4, [r0, 0x15] -_0819DBF6: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819DBD8 - - thumb_func_start sub_819DC00 -sub_819DC00: @ 819DC00 - push {lr} - ldr r0, =gUnknown_03001284 - movs r1, 0 - str r1, [r0] - ldr r0, =sub_819DC1C - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end sub_819DC00 - - thumb_func_start sub_819DC1C -sub_819DC1C: @ 819DC1C - push {r4-r6,lr} - sub sp, 0xC - ldr r1, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0xF - bls _0819DC32 - b _0819E0AA -_0819DC32: - lsls r0, 2 - ldr r1, =_0819DC44 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0819DC44: - .4byte _0819DC84 - .4byte _0819DCD4 - .4byte _0819DDA8 - .4byte _0819DE68 - .4byte _0819DE94 - .4byte _0819DECC - .4byte _0819DEEC - .4byte _0819DF10 - .4byte _0819DF30 - .4byte _0819DF3C - .4byte _0819DF64 - .4byte _0819DF70 - .4byte _0819DF78 - .4byte _0819DF8C - .4byte _0819DFA4 - .4byte _0819E01C -_0819DC84: - movs r0, 0 - bl SetHBlankCallback - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - str r0, [sp, 0x8] - movs r1, 0xC0 - lsls r1, 19 - ldr r2, =0x05006000 - add r0, sp, 0x8 - bl CpuSet - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_086108B8 - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - ldr r0, =gUnknown_086108C8 - bl InitWindows - bl DeactivateAllTextPrinters - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _0819E00E - .pool -_0819DCD4: - ldr r5, =gUnknown_0203CE40 - movs r4, 0x88 - lsls r4, 3 - adds r0, r4, 0 - bl Alloc - str r0, [r5] - ldr r5, =gUnknown_0203CE44 - adds r0, r4, 0 - bl AllocZeroed - str r0, [r5] - ldr r5, =gUnknown_0203CE48 - movs r4, 0x80 - lsls r4, 4 - adds r0, r4, 0 - bl Alloc - str r0, [r5] - ldr r5, =gUnknown_0203CE4C - adds r0, r4, 0 - bl AllocZeroed - str r0, [r5] - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4C - movs r1, 0 - bl SetGpuReg - movs r0, 0x40 - movs r1, 0 - bl SetGpuReg - movs r0, 0x44 - movs r1, 0 - bl SetGpuReg - movs r0, 0x42 - movs r1, 0 - bl SetGpuReg - movs r0, 0x46 - movs r1, 0 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4A - movs r1, 0 - bl SetGpuReg - b _0819E006 - .pool -_0819DDA8: - bl ResetPaletteFade - bl ResetAllObjectData - bl ResetTasks - bl ResetObjectPaletteAllocator - bl dp13_810BB8C - ldr r0, =gUnknown_08DC0754 - ldr r5, =gUnknown_0203CE40 - ldr r1, [r5] - movs r2, 0x88 - lsls r2, 2 - bl CpuSet - ldr r0, =gUnknown_0861033C - ldr r4, =gUnknown_0203CE44 - ldr r1, [r4] - movs r2, 0x30 - bl CpuSet - ldr r1, [r5] - movs r2, 0x88 - lsls r2, 3 - movs r0, 0x1 - movs r3, 0 - bl LoadBgTiles - ldr r1, [r4] - movs r0, 0x3 - movs r2, 0x60 - movs r3, 0 - bl LoadBgTiles - ldr r0, =gUnknown_08DC0B94 - ldr r4, =gUnknown_0203CE48 - ldr r1, [r4] - movs r2, 0x80 - lsls r2, 3 - bl CpuSet - ldr r1, [r4] - movs r2, 0x80 - lsls r2, 4 - movs r0, 0x1 - movs r3, 0 - bl LoadBgTilemap - ldr r0, =gUnknown_08DC0714 - movs r1, 0 - movs r2, 0x40 - bl LoadPalette - ldr r4, =gUnknown_08610918 - adds r0, r4, 0 - movs r1, 0xF0 - movs r2, 0xA - bl LoadPalette - adds r0, r4, 0 - movs r1, 0xE0 - movs r2, 0xA - bl LoadPalette - ldr r0, =gUnknown_0861039C - movs r1, 0x20 - movs r2, 0x4 - bl LoadPalette - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _0819E00E - .pool -_0819DE68: - ldr r0, =gUnknown_0203CE4C - ldr r1, [r0] - movs r0, 0x3 - bl SetBgTilemapBuffer - ldr r1, =gUnknown_0861023C - movs r0, 0x8 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x3 - movs r2, 0xB - movs r3, 0x4 - bl CopyToBgTilemapBufferRect - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - b _0819E006 - .pool -_0819DE94: - ldr r0, =gUnknown_086106B0 - bl LoadTaggedObjectPalettes - ldr r0, =gUnknown_08610650 - bl LoadObjectPics - ldr r0, =gUnknown_086106A0 - bl LoadCompressedObjectPic - ldr r0, =sub_819C7FC - bl SetVBlankCallback - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _0819E00E - .pool -_0819DECC: - ldr r0, =gUnknown_03001284 - ldr r1, [r0] - ldrb r0, [r1, 0x15] - cmp r0, 0x1 - bne _0819DEDC - ldr r0, =gUnknown_0203CF20 - ldrb r0, [r0] - strb r0, [r1, 0x3] -_0819DEDC: - movs r0, 0x87 - lsls r0, 3 - adds r1, r2, r0 - b _0819E00E - .pool -_0819DEEC: - bl sub_819DBD8 - bl sub_819E0C0 - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - ldrb r0, [r0, 0x15] - cmp r0, 0x1 - bne _0819DF02 - bl sub_819F304 -_0819DF02: - movs r0, 0 - bl sub_819F048 - b _0819E006 - .pool -_0819DF10: - ldr r0, =gUnknown_085EEC73 - bl sub_819EBEC - movs r0, 0x2 - bl PutWindowTilemap - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _0819E00E - .pool -_0819DF30: - bl sub_819EFA8 - movs r0, 0x8 - bl PutWindowTilemap - b _0819E006 -_0819DF3C: - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - ldrb r0, [r0, 0x15] - cmp r0, 0 - bne _0819DF4A - bl sub_819EB4C -_0819DF4A: - movs r0, 0x1 - bl PutWindowTilemap - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _0819E00E - .pool -_0819DF64: - bl sub_819EB18 - movs r0, 0 - bl PutWindowTilemap - b _0819E006 -_0819DF70: - movs r0, 0x87 - lsls r0, 3 - adds r1, r2, r0 - b _0819E00E -_0819DF78: - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - ldrb r0, [r0, 0x15] - cmp r0, 0 - beq _0819E006 - bl sub_819EE08 - b _0819E006 - .pool -_0819DF8C: - bl sub_819ED78 - movs r0, 0x3 - bl PutWindowTilemap - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _0819E00E - .pool -_0819DFA4: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - ldrb r0, [r0, 0x15] - cmp r0, 0x1 - bne _0819E000 - movs r0, 0x3 - bl ShowBg - ldr r1, =0x00001248 - movs r0, 0x50 - bl SetGpuReg - ldr r1, =0x0000040b - movs r0, 0x52 - bl SetGpuReg - b _0819E006 - .pool -_0819E000: - movs r0, 0x3 - bl HideBg -_0819E006: - ldr r1, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r1, r2 -_0819E00E: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0819E0AA - .pool -_0819E01C: - ldr r0, =sub_819CF54 - movs r1, 0 - bl CreateTask - ldr r6, =gUnknown_03001284 - ldr r1, [r6] - adds r1, 0x21 - strb r0, [r1] - ldr r0, [r6] - ldrb r5, [r0, 0x15] - cmp r5, 0 - bne _0819E06C - ldr r4, =gTasks - adds r0, 0x21 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - strh r5, [r0, 0x8] - ldr r0, =sub_819CE40 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - strh r5, [r0, 0x8] - b _0819E0A4 - .pool -_0819E06C: - bl sub_819EAF8 - ldr r4, =gTasks - ldr r2, [r6] - adds r0, r2, 0 - adds r0, 0x21 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r3, 0 - movs r1, 0x1 - strh r1, [r0, 0x8] - adds r2, 0x22 - strb r3, [r2] - ldr r0, =sub_819CD34 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x8] -_0819E0A4: - ldr r0, =sub_819C7E0 - bl SetMainCallback2 -_0819E0AA: - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819DC1C - - thumb_func_start sub_819E0C0 -sub_819E0C0: @ 819E0C0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - mov r1, sp - ldr r0, =gUnknown_08610834 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2,r5,r6} - stm r1!, {r2,r5,r6} - mov r1, sp - movs r0, 0x65 - strh r0, [r1, 0x2] - movs r6, 0 - ldr r4, =gUnknown_03001284 - movs r7, 0 - ldr r5, =gUnknown_02020630 -_0819E0E6: - lsls r1, r6, 1 - adds r1, r6 - lsls r1, 20 - movs r3, 0x90 - lsls r3, 15 - adds r1, r3 - asrs r1, 16 - mov r0, sp - movs r2, 0x40 - movs r3, 0x1 - bl AddObjectToFront - ldr r1, [r4] - adds r1, 0x5 - adds r1, r6 - strb r0, [r1] - ldr r0, [r4] - adds r0, 0x5 - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r7, [r0, 0x2E] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x2 - bls _0819E0E6 - ldr r7, =gUnknown_03001284 - ldr r1, [r7] - adds r0, r1, 0x5 - ldrb r1, [r1, 0x3] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - movs r5, 0x20 - ldrsh r1, [r0, r5] - ldr r0, =gUnknown_0861084C - movs r2, 0x58 - movs r3, 0 - bl AddObjectToFront - ldr r1, [r7] - movs r4, 0 - strb r0, [r1, 0x4] - ldr r0, =gUnknown_08610864 - movs r1, 0xB0 - movs r2, 0x70 - movs r3, 0 - bl AddObjectToFront - ldr r1, [r7] - strb r0, [r1, 0x1] - ldr r0, =gUnknown_0861087C - movs r1, 0xB0 - movs r2, 0x90 - movs r3, 0 - bl AddObjectToFront - ldr r1, [r7] - strb r0, [r1, 0x2] - ldr r0, [r7] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r6, =gUnknown_02020630 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r7] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - ldr r0, [r7] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x28 - strb r4, [r0] - ldr r0, [r7] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x29 - strb r4, [r0] - ldr r0, [r7] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x28 - strb r4, [r0] - ldr r0, [r7] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x29 - strb r4, [r0] - ldr r0, [r7] - ldrb r0, [r0, 0x15] - movs r1, 0xC0 - str r1, [sp, 0x18] - cmp r0, 0x1 - bne _0819E1E8 - movs r2, 0xF0 - str r2, [sp, 0x18] -_0819E1E8: - mov r1, sp - ldr r0, =gUnknown_0861084C - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - mov r0, sp - movs r4, 0x68 - mov r10, r4 - mov r5, r10 - strh r5, [r0] - movs r1, 0xF0 - movs r2, 0x78 - movs r3, 0xA - bl AddObjectToFront - ldr r1, [r7] - strb r0, [r1, 0x8] - mov r1, sp - ldr r0, =gUnknown_08610864 - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldm r0!, {r4-r6} - stm r1!, {r4-r6} - mov r0, sp - movs r1, 0x69 - mov r9, r1 - mov r2, r9 - strh r2, [r0] - movs r4, 0x80 - lsls r4, 1 - adds r1, r4, 0 - movs r2, 0x78 - movs r3, 0xA - bl AddObjectToFront - ldr r1, [r7] - strb r0, [r1, 0x9] - movs r5, 0x90 - lsls r5, 1 - mov r0, sp - adds r1, r5, 0 - movs r2, 0x78 - movs r3, 0xA - bl AddObjectToFront - ldr r1, [r7] - strb r0, [r1, 0xA] - mov r1, sp - ldr r0, =gUnknown_0861084C - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - mov r0, sp - movs r3, 0x6A - mov r8, r3 - mov r6, r8 - strh r6, [r0] - movs r1, 0xF0 - movs r2, 0x78 - movs r3, 0x1 - bl AddObjectToFront - ldr r1, [r7] - strb r0, [r1, 0xB] - mov r1, sp - ldr r0, =gUnknown_08610864 - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - mov r1, sp - movs r0, 0x6B - strh r0, [r1] - mov r0, sp - adds r1, r4, 0 - movs r2, 0x78 - movs r3, 0x1 - bl AddObjectToFront - ldr r1, [r7] - strb r0, [r1, 0xC] - mov r0, sp - movs r6, 0x6C - strh r6, [r0] - adds r1, r5, 0 - movs r2, 0x78 - movs r3, 0x1 - bl AddObjectToFront - ldr r1, [r7] - strb r0, [r1, 0xD] - mov r1, sp - ldr r0, =gUnknown_0861084C - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - mov r0, sp - mov r4, r10 - strh r4, [r0] - ldr r1, [sp, 0x18] - movs r2, 0x90 - movs r3, 0xA - bl AddObjectToFront - ldr r1, [r7] - strb r0, [r1, 0xE] - mov r1, sp - ldr r0, =gUnknown_08610864 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r4,r5} - stm r1!, {r2,r4,r5} - mov r0, sp - mov r3, r9 - strh r3, [r0] - ldr r4, [sp, 0x18] - adds r4, 0x10 - adds r1, r4, 0 - movs r2, 0x90 - movs r3, 0xA - bl AddObjectToFront - ldr r1, [r7] - strb r0, [r1, 0xF] - mov r1, sp - ldr r0, =gUnknown_0861084C - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - mov r0, sp - mov r5, r8 - strh r5, [r0] - ldr r1, [sp, 0x18] - movs r2, 0x90 - movs r3, 0x1 - bl AddObjectToFront - ldr r1, [r7] - strb r0, [r1, 0x10] - mov r1, sp - ldr r0, =gUnknown_08610864 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - mov r0, sp - strh r6, [r0] - adds r1, r4, 0 - movs r2, 0x90 - movs r3, 0x1 - bl AddObjectToFront - ldr r1, [r7] - strb r0, [r1, 0x11] - movs r6, 0 - ldr r5, =gUnknown_02020630 - adds r4, r7, 0 - movs r7, 0 - movs r0, 0x4 - mov r10, r0 -_0819E330: - ldr r0, [r4] - lsls r3, r6, 1 - adds r2, r3, r6 - adds r0, 0x8 - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x28 - strb r7, [r0] - ldr r0, [r4] - adds r0, 0x8 - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x29 - strb r7, [r0] - ldr r0, [r4] - adds r0, 0x9 - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x28 - strb r7, [r0] - ldr r0, [r4] - adds r0, 0x9 - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x29 - strb r7, [r0] - ldr r0, [r4] - adds r0, 0xA - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x28 - strb r7, [r0] - ldr r0, [r4] - adds r0, 0xA - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x29 - strb r7, [r0] - ldr r0, [r4] - adds r0, 0xE - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x28 - strb r7, [r0] - ldr r0, [r4] - adds r0, 0xE - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x29 - strb r7, [r0] - ldr r0, [r4] - adds r0, 0xF - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x28 - strb r7, [r0] - ldr r0, [r4] - adds r0, 0xF - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x29 - strb r7, [r0] - ldr r0, [r4] - adds r0, 0x8 - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - mov r8, r0 - ldrb r1, [r0] - mov r0, r10 - orrs r1, r0 - mov r0, r8 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0x9 - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - mov r8, r0 - ldrb r1, [r0] - mov r0, r10 - orrs r1, r0 - mov r0, r8 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0xA - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - mov r2, r10 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0xE - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0xF - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r3, =gUnknown_03001284 - mov r8, r3 - ldr r0, =gUnknown_02020630 - mov r9, r0 - cmp r6, 0x1 - bhi _0819E496 - b _0819E330 -_0819E496: - ldr r0, [r3] - ldrb r0, [r0, 0xE] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r9 - adds r1, 0x3E - ldrb r2, [r1] - movs r3, 0x5 - negs r3, r3 - adds r0, r3, 0 - b _0819E4C8 - .pool -_0819E4C8: - ands r0, r2 - strb r0, [r1] - mov r1, r8 - ldr r0, [r1] - ldrb r1, [r0, 0xF] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - adds r0, 0x3E - ldrb r2, [r0] - adds r1, r3, 0 - ands r1, r2 - strb r1, [r0] - mov r2, r8 - ldr r0, [r2] - ldrb r1, [r0, 0x8] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - adds r0, 0x3E - ldrb r2, [r0] - adds r1, r3, 0 - ands r1, r2 - strb r1, [r0] - mov r4, r8 - ldr r0, [r4] - ldrb r1, [r0, 0x9] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - adds r0, 0x3E - ldrb r2, [r0] - adds r1, r3, 0 - ands r1, r2 - strb r1, [r0] - ldr r0, [r4] - ldrb r1, [r0, 0xA] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - adds r0, 0x3E - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_819E0C0 - - thumb_func_start sub_819E538 -sub_819E538: @ 819E538 - push {r4-r7,lr} - movs r5, 0 -_0819E53C: - ldr r6, =gUnknown_03001284 - ldr r0, [r6] - adds r0, 0x5 - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - bl RemoveObjectAndFreeTiles - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _0819E53C - ldr r0, [r6] - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl RemoveObjectAndFreeTiles - ldr r0, [r6] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl RemoveObjectAndFreeTiles - ldr r0, [r6] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl RemoveObjectAndFreeTiles - movs r5, 0 -_0819E590: - movs r4, 0 - lsls r6, r5, 1 -_0819E594: - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - adds r1, r6, r5 - adds r1, r4, r1 - adds r0, 0x8 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - bl RemoveObjectAndFreeTiles - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _0819E594 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bls _0819E590 - movs r5, 0 -_0819E5C6: - movs r4, 0 - adds r7, r5, 0x1 - lsls r6, r5, 1 -_0819E5CC: - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - adds r1, r4, r6 - adds r0, 0xE - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - bl RemoveObjectAndFreeTiles - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _0819E5CC - lsls r0, r7, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bls _0819E5C6 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819E538 - - thumb_func_start sub_819E608 -sub_819E608: @ 819E608 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x2 - bhi _0819E65C - ldr r4, =gUnknown_02020630 - ldr r5, =gUnknown_03001284 - ldr r0, [r5] - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - bl sub_819E8EC - ldr r0, [r5] - ldrb r2, [r0, 0x4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - adds r0, 0x5 - adds r0, r6 - ldrb r2, [r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0, 0x20] - strh r0, [r1, 0x20] - b _0819E684 - .pool -_0819E65C: - ldr r2, =gUnknown_02020630 - ldr r3, =gUnknown_03001284 - ldr r0, [r3] - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r3] - ldr r1, [r0, 0x18] - lsls r0, r6, 3 - adds r0, r1 - ldrb r0, [r0] - bl sub_819E838 -_0819E684: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819E608 - - thumb_func_start sub_819E694 -sub_819E694: @ 819E694 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl audio_play - lsls r4, 24 - cmp r4, 0 - ble _0819E6C0 - ldr r1, =gUnknown_03001284 - ldr r2, [r1] - ldrb r0, [r2, 0x3] - adds r0, 0x1 - ldrb r3, [r2, 0x17] - cmp r0, r3 - bne _0819E6D8 - movs r0, 0 - b _0819E6D8 - .pool -_0819E6C0: - ldr r0, =gUnknown_03001284 - ldr r2, [r0] - ldrb r3, [r2, 0x3] - adds r1, r0, 0 - cmp r3, 0 - beq _0819E6D4 - subs r0, r3, 0x1 - b _0819E6D8 - .pool -_0819E6D4: - ldrb r0, [r2, 0x17] - subs r0, 0x1 -_0819E6D8: - strb r0, [r2, 0x3] - ldr r0, [r1] - ldrb r0, [r0, 0x3] - bl sub_819E608 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_819E694 - - thumb_func_start sub_819E6E8 -sub_819E6E8: @ 819E6E8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl audio_play - lsls r4, 24 - cmp r4, 0 - ble _0819E728 - ldr r0, =gUnknown_03001284 - ldr r2, [r0] - ldrb r1, [r2, 0x3] - adds r4, r0, 0 - cmp r1, 0x2 - bhi _0819E714 - movs r0, 0x3 - strb r0, [r2, 0x3] - b _0819E74A - .pool -_0819E714: - ldrb r0, [r2, 0x3] - adds r0, 0x1 - ldrb r1, [r2, 0x17] - cmp r0, r1 - beq _0819E722 - strb r0, [r2, 0x3] - b _0819E74A -_0819E722: - movs r0, 0 - strb r0, [r2, 0x3] - b _0819E74A -_0819E728: - ldr r0, =gUnknown_03001284 - ldr r1, [r0] - ldrb r3, [r1, 0x3] - adds r2, r3, 0 - adds r4, r0, 0 - cmp r2, 0x2 - bls _0819E744 - cmp r2, 0 - beq _0819E744 - subs r0, r3, 0x1 - b _0819E748 - .pool -_0819E744: - ldrb r0, [r1, 0x17] - subs r0, 0x1 -_0819E748: - strb r0, [r1, 0x3] -_0819E74A: - ldr r0, [r4] - ldrb r0, [r0, 0x3] - bl sub_819E608 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_819E6E8 - - thumb_func_start sub_819E758 -sub_819E758: @ 819E758 - push {lr} - lsls r0, 24 - cmp r0, 0 - ble _0819E778 - ldr r0, =gUnknown_03001284 - ldr r1, [r0] - ldrb r3, [r1, 0x16] - adds r2, r0, 0 - cmp r3, 0x1 - beq _0819E774 - adds r0, r3, 0x1 - b _0819E78E - .pool -_0819E774: - movs r0, 0 - b _0819E78E -_0819E778: - ldr r0, =gUnknown_03001284 - ldr r1, [r0] - ldrb r3, [r1, 0x16] - adds r2, r0, 0 - cmp r3, 0 - beq _0819E78C - subs r0, r3, 0x1 - b _0819E78E - .pool -_0819E78C: - movs r0, 0x1 -_0819E78E: - strb r0, [r1, 0x16] - ldr r3, =gUnknown_02020630 - ldr r2, [r2] - ldrb r0, [r2, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r0, [r2, 0x16] - lsls r0, 4 - adds r0, 0x70 - strh r0, [r1, 0x22] - ldrb r0, [r2, 0x2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r0, [r2, 0x16] - lsls r0, 4 - adds r0, 0x70 - strh r0, [r1, 0x22] - pop {r0} - bx r0 - .pool - thumb_func_end sub_819E758 - - thumb_func_start sub_819E7C0 -sub_819E7C0: @ 819E7C0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl audio_play - lsls r4, 24 - cmp r4, 0 - ble _0819E7EC - ldr r0, =gUnknown_03001284 - ldr r1, [r0] - ldrb r3, [r1] - adds r2, r0, 0 - cmp r3, 0x2 - beq _0819E7E8 - adds r0, r3, 0x1 - b _0819E802 - .pool -_0819E7E8: - movs r0, 0 - b _0819E802 -_0819E7EC: - ldr r0, =gUnknown_03001284 - ldr r1, [r0] - ldrb r3, [r1] - adds r2, r0, 0 - cmp r3, 0 - beq _0819E800 - subs r0, r3, 0x1 - b _0819E802 - .pool -_0819E800: - movs r0, 0x2 -_0819E802: - strb r0, [r1] - ldr r3, =gUnknown_02020630 - ldr r2, [r2] - ldrb r0, [r2, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r0, [r2] - lsls r0, 4 - adds r0, 0x70 - strh r0, [r1, 0x22] - ldrb r0, [r2, 0x2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r0, [r2] - lsls r0, 4 - adds r0, 0x70 - strh r0, [r1, 0x22] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819E7C0 - - thumb_func_start sub_819E838 -sub_819E838: @ 819E838 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - movs r0, 0x5 - negs r0, r0 - mov r9, r0 - movs r2, 0x4 - mov r8, r2 - ldr r0, =gUnknown_02020630 - mov r12, r0 - ldr r7, =gUnknown_03001284 -_0819E856: - cmp r6, 0x2 - bne _0819E898 - ldr r5, =gUnknown_02020630 - ldr r3, =gUnknown_03001284 - ldr r0, [r3] - adds r0, 0xB - adds r0, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r1, 0x3E - ldrb r2, [r1] - mov r0, r9 - ands r0, r2 - strb r0, [r1] - cmp r4, 0x1 - bhi _0819E8D4 - ldr r0, [r3] - adds r0, 0x10 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - b _0819E8CA - .pool -_0819E898: - cmp r6, 0x3 - bne _0819E8D4 - cmp r4, 0x1 - bhi _0819E8BA - ldr r0, [r7] - adds r0, 0x10 - adds r0, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r12 - adds r1, 0x3E - ldrb r2, [r1] - mov r0, r9 - ands r0, r2 - strb r0, [r1] -_0819E8BA: - ldr r0, [r7] - adds r0, 0xB - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r12 -_0819E8CA: - adds r0, 0x3E - ldrb r1, [r0] - mov r2, r8 - orrs r1, r2 - strb r1, [r0] -_0819E8D4: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _0819E856 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_819E838 - - thumb_func_start sub_819E8EC -sub_819E8EC: @ 819E8EC - push {r4-r6,lr} - movs r2, 0 - ldr r5, =gUnknown_02020630 - ldr r4, =gUnknown_03001284 - adds r6, r5, 0 - movs r3, 0x4 -_0819E8F8: - ldr r0, [r4] - adds r0, 0xB - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - cmp r2, 0x1 - bhi _0819E92C - ldr r0, [r4] - adds r0, 0x10 - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] -_0819E92C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bls _0819E8F8 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819E8EC - - thumb_func_start sub_819E944 -sub_819E944: @ 819E944 - push {r4,r5,lr} - ldr r0, =gUnknown_03001284 - ldr r3, [r0] - ldrb r1, [r3, 0x15] - adds r5, r0, 0 - cmp r1, 0x1 - bne _0819E95C - movs r0, 0 - strb r0, [r3, 0x15] - b _0819E960 - .pool -_0819E95C: - movs r0, 0 - strb r0, [r3] -_0819E960: - ldr r4, =gUnknown_02020630 - ldr r2, [r5] - ldrb r1, [r2, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xB0 - strh r1, [r0, 0x20] - ldrb r0, [r2, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r2] - lsls r0, 4 - adds r0, 0x70 - strh r0, [r1, 0x22] - ldrb r1, [r2, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xD0 - strh r1, [r0, 0x20] - ldrb r0, [r2, 0x2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r2] - lsls r0, 4 - adds r0, 0x70 - strh r0, [r1, 0x22] - ldrb r0, [r2, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - ldr r0, [r5] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - bl sub_819EC20 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819E944 - - thumb_func_start sub_819E9E0 -sub_819E9E0: @ 819E9E0 - push {r4,r5,lr} - ldr r5, =gUnknown_03001284 - ldr r1, [r5] - movs r0, 0 - strb r0, [r1, 0x16] - ldr r4, =gUnknown_02020630 - ldr r2, [r5] - ldrb r1, [r2, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xB0 - strh r1, [r0, 0x20] - ldrb r1, [r2, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r3, 0x70 - strh r3, [r0, 0x22] - ldrb r1, [r2, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xD0 - strh r1, [r0, 0x20] - ldrb r1, [r2, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r3, [r0, 0x22] - ldrb r0, [r2, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - ldr r0, [r5] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - bl sub_819EC94 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819E9E0 - - thumb_func_start sub_819EA64 -sub_819EA64: @ 819EA64 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, =gUnknown_02020630 - ldr r3, =gUnknown_03001284 - ldr r0, [r3] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r3] - ldrb r1, [r0, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r0, r4, 0 - movs r1, 0 - bl FillWindowPixelBuffer - adds r0, r4, 0 - movs r1, 0x2 - bl CopyWindowToVram - adds r0, r4, 0 - bl ClearWindowTilemap - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819EA64 - - thumb_func_start sub_819EAC0 -sub_819EAC0: @ 819EAC0 - push {lr} - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x1 - movs r1, 0x2 - bl CopyWindowToVram - pop {r0} - bx r0 - thumb_func_end sub_819EAC0 - - thumb_func_start sub_819EADC -sub_819EADC: @ 819EADC - push {lr} - movs r0, 0x7 - bl PutWindowTilemap - movs r0, 0x7 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x7 - movs r1, 0x2 - bl CopyWindowToVram - pop {r0} - bx r0 - thumb_func_end sub_819EADC - - thumb_func_start sub_819EAF8 -sub_819EAF8: @ 819EAF8 - push {lr} - bl sub_819EAC0 - movs r0, 0x5 - bl PutWindowTilemap - movs r0, 0x5 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x5 - movs r1, 0x2 - bl CopyWindowToVram - pop {r0} - bx r0 - thumb_func_end sub_819EAF8 - - thumb_func_start sub_819EB18 -sub_819EB18: @ 819EB18 - push {lr} - sub sp, 0xC - movs r0, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r2, =gUnknown_085EEC66 - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x2 - bl Print - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_819EB18 - - thumb_func_start sub_819EB4C -sub_819EB4C: @ 819EB4C - push {r4,lr} - sub sp, 0xC - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, =gUnknown_03001284 - ldr r1, [r0] - ldrb r0, [r1, 0x3] - cmp r0, 0x2 - bls _0819EB70 - movs r0, 0x1 - movs r1, 0x2 - bl CopyWindowToVram - b _0819EBD4 - .pool -_0819EB70: - ldrb r2, [r1, 0x3] - ldrb r0, [r1, 0x14] - cmp r0, 0 - bne _0819EB84 - movs r0, 0x64 - muls r0, r2 - ldr r1, =gPlayerParty - b _0819EB8A - .pool -_0819EB84: - movs r0, 0x64 - muls r0, r2 - ldr r1, =gEnemyParty -_0819EB8A: - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r1, r0, 16 - ldr r4, =gStringVar4 - movs r0, 0xB - muls r1, r0 - ldr r0, =gSpeciesNames - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x56 - bl GetStringRightAlignXOffset - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - ldr r0, =gUnknown_08610925 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r3, 0x1 - bl box_print - movs r0, 0x1 - movs r1, 0x3 - bl CopyWindowToVram -_0819EBD4: - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819EB4C - - thumb_func_start sub_819EBEC -sub_819EBEC: @ 819EBEC - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - movs r0, 0x2 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x5 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x2 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0x2 - bl Print - movs r0, 0x2 - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_819EBEC - - thumb_func_start sub_819EC20 -sub_819EC20: @ 819EC20 - push {r4,r5,lr} - sub sp, 0xC - movs r0, 0x3 - bl PutWindowTilemap - movs r0, 0x3 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r5, =gUnknown_08610922 - str r5, [sp] - movs r4, 0 - str r4, [sp, 0x4] - ldr r0, =gUnknown_085EECAA - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0xF - movs r3, 0x1 - bl box_print - str r5, [sp] - str r4, [sp, 0x4] - ldr r0, =gUnknown_085EECA5 - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0xF - movs r3, 0x11 - bl box_print - str r5, [sp] - str r4, [sp, 0x4] - ldr r0, =gUnknown_085EECB2 - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0xF - movs r3, 0x21 - bl box_print - movs r0, 0x3 - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819EC20 - - thumb_func_start sub_819EC94 -sub_819EC94: @ 819EC94 - push {r4,r5,lr} - sub sp, 0xC - movs r0, 0x4 - bl PutWindowTilemap - movs r0, 0x4 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r5, =gUnknown_08610922 - str r5, [sp] - movs r4, 0 - str r4, [sp, 0x4] - ldr r0, =gUnknown_085EECCA - str r0, [sp, 0x8] - movs r0, 0x4 - movs r1, 0x1 - movs r2, 0x7 - movs r3, 0x1 - bl box_print - str r5, [sp] - str r4, [sp, 0x4] - ldr r0, =gUnknown_085EECCE - str r0, [sp, 0x8] - movs r0, 0x4 - movs r1, 0x1 - movs r2, 0x7 - movs r3, 0x11 - bl box_print - movs r0, 0x4 - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819EC94 - - thumb_func_start sub_819ECF0 -sub_819ECF0: @ 819ECF0 - push {r4-r6,lr} - sub sp, 0xC - adds r6, r0, 0 - adds r5, r1, 0 - adds r4, r2, 0 - movs r0, 0 - adds r1, r6, 0 - movs r2, 0x46 - bl GetStringRightAlignXOffset - adds r2, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r0, =gUnknown_08610922 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r4, 0 - movs r1, 0 - adds r3, r5, 0 - bl box_print - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819ECF0 - - thumb_func_start sub_819ED34 -sub_819ED34: @ 819ED34 - push {lr} - movs r0, 0x5 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - ldrb r0, [r0, 0x14] - cmp r0, 0 - beq _0819ED56 - cmp r0, 0x1 - bne _0819ED60 - ldr r0, =gUnknown_085EECD1 - movs r1, 0 - movs r2, 0x5 - bl sub_819ECF0 -_0819ED56: - ldr r0, =gUnknown_085EECDD - movs r1, 0x18 - movs r2, 0x5 - bl sub_819ECF0 -_0819ED60: - movs r0, 0x5 - movs r1, 0x3 - bl CopyWindowToVram - pop {r0} - bx r0 - .pool - thumb_func_end sub_819ED34 - - thumb_func_start sub_819ED78 -sub_819ED78: @ 819ED78 - push {lr} - movs r0, 0x3 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - ldrb r0, [r0, 0x14] - cmp r0, 0 - beq _0819ED9A - cmp r0, 0x1 - bne _0819EDA4 - ldr r0, =gUnknown_085EECD1 - movs r1, 0x8 - movs r2, 0x3 - bl sub_819ECF0 -_0819ED9A: - ldr r0, =gUnknown_085EECDD - movs r1, 0x20 - movs r2, 0x3 - bl sub_819ECF0 -_0819EDA4: - movs r0, 0x3 - movs r1, 0x3 - bl CopyWindowToVram - pop {r0} - bx r0 - .pool - thumb_func_end sub_819ED78 - - thumb_func_start sub_819EDBC -sub_819EDBC: @ 819EDBC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _0819EDCC - cmp r0, 0x1 - beq _0819EDEC - b _0819EDF6 -_0819EDCC: - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - ldrb r0, [r0, 0x14] - cmp r0, 0x1 - bne _0819EDF6 - ldr r0, =gUnknown_085EECD1 - movs r1, 0x8 - movs r2, 0x3 - bl sub_819ECF0 - b _0819EDF6 - .pool -_0819EDEC: - ldr r0, =gUnknown_085EECDD - movs r1, 0x20 - movs r2, 0x3 - bl sub_819ECF0 -_0819EDF6: - movs r0, 0x3 - movs r1, 0x3 - bl CopyWindowToVram - pop {r0} - bx r0 - .pool - thumb_func_end sub_819EDBC - - thumb_func_start sub_819EE08 -sub_819EE08: @ 819EE08 - push {r4,lr} - sub sp, 0x18 - ldr r0, =gUnknown_08610918 - add r1, sp, 0xC - movs r2, 0x4 - bl CpuSet - ldr r0, =gUnknown_03001284 - ldr r2, [r0] - ldrb r0, [r2, 0x15] - cmp r0, 0 - bne _0819EE3C - add r0, sp, 0xC - ldr r1, =gPlttBufferFaded - movs r2, 0xE4 - lsls r2, 1 - adds r1, r2 - ldrh r1, [r1] - strh r1, [r0, 0x8] - b _0819EE42 - .pool -_0819EE3C: - add r1, sp, 0xC - ldrh r0, [r2, 0x24] - strh r0, [r1, 0x8] -_0819EE42: - add r0, sp, 0xC - movs r1, 0xF0 - movs r2, 0xA - bl LoadPalette - movs r0, 0x7 - bl PutWindowTilemap - movs r0, 0x7 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, =gUnknown_03001284 - ldr r1, [r0] - ldrb r0, [r1, 0x3] - cmp r0, 0x2 - bls _0819EE74 - movs r0, 0x7 - movs r1, 0x3 - bl CopyWindowToVram - b _0819EED8 - .pool -_0819EE74: - ldrb r2, [r1, 0x3] - ldrb r0, [r1, 0x14] - cmp r0, 0 - bne _0819EE88 - movs r0, 0x64 - muls r0, r2 - ldr r1, =gPlayerParty - b _0819EE8E - .pool -_0819EE88: - movs r0, 0x64 - muls r0, r2 - ldr r1, =gEnemyParty -_0819EE8E: - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r1, r0, 16 - ldr r4, =gStringVar4 - movs r0, 0xB - muls r1, r0 - ldr r0, =gSpeciesNames - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x56 - bl GetStringRightAlignXOffset - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - ldr r0, =gUnknown_08610925 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x7 - movs r1, 0x1 - movs r3, 0x1 - bl box_print - movs r0, 0x7 - movs r1, 0x3 - bl CopyWindowToVram -_0819EED8: - add sp, 0x18 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819EE08 - - thumb_func_start sub_819EEF0 -sub_819EEF0: @ 819EEF0 - push {r4,lr} - sub sp, 0xC - ldr r0, =gUnknown_08610918 - movs r1, 0xE0 - movs r2, 0xA - bl LoadPalette - ldr r0, =gPlttBufferUnfaded+ 0x1E0 - ldr r1, =gPlttBufferFaded + 0x1C0 - movs r2, 0x5 - bl CpuSet - ldr r0, =gUnknown_03001284 - ldr r1, [r0] - ldrb r0, [r1, 0x3] - cmp r0, 0x2 - bls _0819EF2C - movs r0, 0x1 - movs r1, 0x2 - bl CopyWindowToVram - b _0819EF90 - .pool -_0819EF2C: - ldrb r2, [r1, 0x3] - ldrb r0, [r1, 0x14] - cmp r0, 0 - bne _0819EF40 - movs r0, 0x64 - muls r0, r2 - ldr r1, =gPlayerParty - b _0819EF46 - .pool -_0819EF40: - movs r0, 0x64 - muls r0, r2 - ldr r1, =gEnemyParty -_0819EF46: - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r1, r0, 16 - ldr r4, =gStringVar4 - movs r0, 0xB - muls r1, r0 - ldr r0, =gSpeciesNames - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x56 - bl GetStringRightAlignXOffset - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - ldr r0, =gUnknown_08610925 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r3, 0x1 - bl box_print - movs r0, 0x1 - movs r1, 0x3 - bl CopyWindowToVram -_0819EF90: - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819EEF0 - - thumb_func_start sub_819EFA8 -sub_819EFA8: @ 819EFA8 - push {r4-r6,lr} - sub sp, 0x2C - ldr r6, =gUnknown_03001284 - ldr r0, [r6] - ldrb r4, [r0, 0x3] - adds r5, r4, 0 - movs r0, 0x8 - movs r1, 0 - bl FillWindowPixelBuffer - cmp r4, 0x2 - bls _0819EFD0 - movs r0, 0x8 - movs r1, 0x2 - bl CopyWindowToVram - b _0819F03A - .pool -_0819EFD0: - movs r0, 0x8 - bl PutWindowTilemap - ldr r0, [r6] - ldrb r0, [r0, 0x14] - cmp r0, 0 - bne _0819EFEC - movs r0, 0x64 - muls r0, r4 - ldr r1, =gPlayerParty - b _0819EFF2 - .pool -_0819EFEC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty -_0819EFF2: - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - add r1, sp, 0xC - bl sub_81DB468 - movs r0, 0x1 - add r1, sp, 0xC - movs r2, 0x76 - bl GetStringRightAlignXOffset - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x8 - movs r1, 0x1 - add r2, sp, 0xC - bl Print - movs r0, 0x8 - movs r1, 0x2 - bl CopyWindowToVram -_0819F03A: - add sp, 0x2C - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819EFA8 - - thumb_func_start sub_819F048 -sub_819F048: @ 819F048 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r4, =gUnknown_03001284 - ldr r3, [r4] - ldrb r0, [r3, 0x15] - cmp r0, 0x1 - beq _0819F094 - cmp r2, 0 - beq _0819F068 - cmp r2, 0x1 - beq _0819F080 - b _0819F094 - .pool -_0819F068: - strb r2, [r3, 0x14] - ldr r0, [r4] - strb r2, [r0, 0x3] - ldr r1, [r4] - movs r0, 0x4 - strb r0, [r1, 0x17] - ldr r1, [r4] - ldr r0, =gUnknown_08610928 - b _0819F092 - .pool -_0819F080: - movs r1, 0 - strb r2, [r3, 0x14] - ldr r0, [r4] - strb r1, [r0, 0x3] - ldr r1, [r4] - movs r0, 0x5 - strb r0, [r1, 0x17] - ldr r1, [r4] - ldr r0, =gUnknown_08610948 -_0819F092: - str r0, [r1, 0x18] -_0819F094: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819F048 - - thumb_func_start sub_819F0A0 -sub_819F0A0: @ 819F0A0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, =gUnknown_03001280 - ldr r2, =gUnknown_086108AC - ldr r1, =gUnknown_03001284 - ldr r1, [r1] - ldrb r1, [r1] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - str r1, [r3] - bl _call_via_r1 - pop {r0} - bx r0 - .pool - thumb_func_end sub_819F0A0 - - thumb_func_start sub_819F0CC -sub_819F0CC: @ 819F0CC - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, =gUnknown_03001284 - ldr r1, [r5] - ldr r0, [r1, 0x2C] - adds r1, 0x30 - movs r2, 0x1 - bl sub_819F3F8 - ldr r0, [r5] - ldrb r1, [r0, 0x3] - movs r5, 0 - strb r1, [r0, 0x12] - movs r0, 0x3 - bl sub_819EA64 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x8] - ldr r1, =sub_819D9EC - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819F0CC - - thumb_func_start sub_819F114 -sub_819F114: @ 819F114 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0x6 - strh r0, [r1, 0x8] - ldr r0, =sub_819C90C - str r0, [r1] - bx lr - .pool - thumb_func_end sub_819F114 - - thumb_func_start sub_819F134 -sub_819F134: @ 819F134 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_03001284 - ldr r1, [r0] - ldr r0, [r1, 0x2C] - adds r1, 0x30 - movs r2, 0x1 - bl sub_819F3F8 - movs r0, 0x3 - bl sub_819EA64 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - ldr r2, =sub_819CE40 - lsrs r1, r2, 16 - strh r1, [r0, 0x14] - strh r2, [r0, 0x16] - movs r1, 0x1 - strh r1, [r0, 0x12] - ldr r1, =sub_819D770 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819F134 - - thumb_func_start sub_819F184 -sub_819F184: @ 819F184 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, =gUnknown_03001280 - ldr r1, =gUnknown_03001284 - ldr r2, [r1] - ldrb r1, [r2, 0x3] - ldr r2, [r2, 0x18] - lsls r1, 3 - adds r1, r2 - ldr r1, [r1, 0x4] - str r1, [r3] - bl _call_via_r1 - pop {r0} - bx r0 - .pool - thumb_func_end sub_819F184 - - thumb_func_start sub_819F1AC -sub_819F1AC: @ 819F1AC - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, =sub_819CC24 - lsrs r0, r2, 16 - movs r3, 0 - strh r0, [r1, 0x14] - strh r2, [r1, 0x16] - strh r3, [r1, 0x8] - strh r3, [r1, 0x12] - ldr r0, =sub_819D588 - str r0, [r1] - bx lr - .pool - thumb_func_end sub_819F1AC - - thumb_func_start sub_819F1DC -sub_819F1DC: @ 819F1DC - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, =sub_819D9EC - lsrs r0, r2, 16 - movs r3, 0 - strh r0, [r1, 0x14] - strh r2, [r1, 0x16] - strh r3, [r1, 0x12] - strh r3, [r1, 0x8] - ldr r0, =sub_819D588 - str r0, [r1] - bx lr - .pool - thumb_func_end sub_819F1DC - - thumb_func_start sub_819F20C -sub_819F20C: @ 819F20C - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r5, =gUnknown_03001284 - ldr r1, [r5] - ldrb r0, [r1, 0x14] - cmp r0, 0 - bne _0819F240 - ldr r3, =gTasks - lsls r4, r6, 2 - adds r0, r4, r6 - lsls r0, 3 - adds r0, r3 - ldr r2, =sub_819CD34 - lsrs r1, r2, 16 - strh r1, [r0, 0x14] - strh r2, [r0, 0x16] - movs r1, 0x2 - strh r1, [r0, 0x12] - b _0819F292 - .pool -_0819F240: - ldrb r0, [r1, 0x3] - bl sub_819F59C - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bne _0819F278 - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x2D - adds r1, 0x30 - movs r2, 0x1 - bl sub_819F2B4 - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - strh r4, [r0, 0x12] - ldr r1, =sub_819F488 - b _0819F29E - .pool -_0819F278: - ldr r4, =gTasks - lsls r5, r6, 2 - adds r0, r5, r6 - lsls r0, 3 - adds r0, r4 - ldr r2, =sub_819CCD4 - lsrs r1, r2, 16 - movs r3, 0 - strh r1, [r0, 0x14] - strh r2, [r0, 0x16] - strh r3, [r0, 0x12] - adds r3, r4, 0 - adds r4, r5, 0 -_0819F292: - adds r0, r4, r6 - lsls r0, 3 - adds r0, r3 - movs r1, 0 - strh r1, [r0, 0x8] - ldr r1, =sub_819D588 -_0819F29E: - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819F20C - - thumb_func_start sub_819F2B4 -sub_819F2B4: @ 819F2B4 - push {r4-r6,lr} - adds r4, r0, 0 - adds r6, r1, 0 - lsls r5, r2, 24 - lsrs r5, 24 - ldr r0, =gUnknown_08610894 - movs r1, 0x78 - movs r2, 0x40 - movs r3, 0x1 - bl AddObjectToFront - strb r0, [r4] - ldr r2, =gUnknown_02020630 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r2, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_819F600 - str r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r5, [r0, 0x3C] - movs r0, 0x1 - strb r0, [r6] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819F2B4 - - thumb_func_start sub_819F304 -sub_819F304: @ 819F304 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x10 - ldr r0, =gUnknown_08610894 - movs r1, 0x78 - movs r2, 0x40 - movs r3, 0x1 - bl AddObjectToFront - ldr r6, =gUnknown_03001284 - ldr r1, [r6] - adds r1, 0x2D - movs r2, 0 - mov r10, r2 - strb r0, [r1] - ldr r0, [r6] - adds r0, 0x2D - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - mov r8, r1 - add r0, r8 - movs r1, 0x2 - bl StartObjectRotScalAnim - ldr r0, [r6] - ldrb r1, [r0, 0x3] - movs r0, 0x64 - adds r4, r1, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - bl GetMonData - mov r9, r0 - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - bl GetMonData - adds r2, r0, 0 - movs r0, 0x58 - str r0, [sp] - movs r0, 0x20 - str r0, [sp, 0x4] - movs r0, 0xF - str r0, [sp, 0x8] - ldr r0, =0x0000ffff - str r0, [sp, 0xC] - adds r0, r5, 0 - mov r1, r9 - movs r3, 0x1 - bl sub_818D7D8 - ldr r1, [r6] - adds r1, 0x2C - strb r0, [r1] - ldr r0, [r6] - adds r0, 0x2C - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - adds r0, 0x28 - mov r2, r10 - strb r2, [r0] - ldr r0, [r6] - adds r0, 0x2C - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - adds r0, 0x29 - strb r2, [r0] - ldr r0, [r6] - adds r0, 0x2D - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819F304 - - thumb_func_start sub_819F3F8 -sub_819F3F8: @ 819F3F8 - push {r4-r6,lr} - adds r4, r0, 0 - adds r6, r1, 0 - lsls r5, r2, 24 - lsrs r5, 24 - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_818D820 - ldr r0, =sub_819F7B4 - 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 - strh r5, [r1, 0x16] - lsrs r4, 8 - lsls r4, 24 - lsrs r4, 24 - strh r4, [r1, 0x14] - ldr r1, [r1] - bl _call_via_r1 - movs r0, 0x1 - strb r0, [r6] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819F3F8 - - thumb_func_start sub_819F444 -sub_819F444: @ 819F444 - push {r4-r6,lr} - adds r4, r0, 0 - adds r6, r1, 0 - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_818D820 - ldr r5, =gUnknown_02020630 - lsls r4, 16 - lsrs r1, r4, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl rotscale_free_entry - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r5 - bl RemoveObjectAndFreeTiles - movs r0, 0 - strb r0, [r6] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819F444 - - thumb_func_start sub_819F488 -sub_819F488: @ 819F488 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_03001284 - ldr r0, [r1] - adds r0, 0x30 - ldrb r0, [r0] - adds r3, r1, 0 - cmp r0, 0x1 - beq _0819F58A - ldr r2, =gTasks - lsls r1, r4, 2 - adds r0, r1, r4 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r5, r1, 0 - cmp r0, 0x4 - bhi _0819F58A - lsls r0, 2 - ldr r1, =_0819F4C8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0819F4C8: - .4byte _0819F4DC - .4byte _0819F4F8 - .4byte _0819F52C - .4byte _0819F548 - .4byte _0819F568 -_0819F4DC: - ldr r0, =gUnknown_085EED0A - bl sub_819EBEC - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - adds r0, 0x20 - movs r1, 0 - strb r1, [r0] - b _0819F54E - .pool -_0819F4F8: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0819F50C - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0819F58A -_0819F50C: - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_03001284 - ldr r1, [r0] - ldr r0, [r1, 0x2C] - adds r1, 0x30 - movs r2, 0x1 - bl sub_819F3F8 - b _0819F54E - .pool -_0819F52C: - ldr r0, [r3] - adds r0, 0x30 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0819F58A - movs r0, 0x5 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x5 - movs r1, 0x2 - bl CopyWindowToVram - b _0819F54E -_0819F548: - ldr r0, =gUnknown_085EEC8B - bl sub_819EBEC -_0819F54E: - ldr r0, =gTasks - adds r1, r5, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _0819F58A - .pool -_0819F568: - bl sub_819EEF0 - bl sub_819EADC - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - adds r0, 0x22 - movs r1, 0x1 - strb r1, [r0] - ldr r1, =gTasks - adds r0, r5, r4 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x12] - strh r1, [r0, 0x8] - ldr r1, =sub_819CE40 - str r1, [r0] -_0819F58A: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819F488 - - thumb_func_start sub_819F59C -sub_819F59C: @ 819F59C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - movs r4, 0 -_0819F5B8: - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - ldrb r0, [r0, 0x12] - cmp r4, r0 - beq _0819F5EC - movs r0, 0x64 - muls r0, r4 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - cmp r0, r5 - bne _0819F5EC - movs r0, 0x1 - b _0819F5F8 - .pool -_0819F5EC: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _0819F5B8 - movs r0, 0 -_0819F5F8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_819F59C - - thumb_func_start sub_819F600 -sub_819F600: @ 819F600 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0819F640 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, =sub_819F69C - 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 - ldrh r2, [r4, 0x3C] - strh r2, [r1, 0x16] - ldr r1, [r1] - bl _call_via_r1 - ldr r0, =DummyObjectCallback - str r0, [r4, 0x1C] -_0819F640: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819F600 - - thumb_func_start sub_819F654 -sub_819F654: @ 819F654 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0819F694 - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl rotscale_free_entry - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _0819F688 - ldr r0, =gUnknown_03001284 - ldr r0, [r0] - adds r0, 0x30 - movs r1, 0 - strb r1, [r0] - b _0819F68E - .pool -_0819F688: - movs r0, 0 - bl sub_819BE20 -_0819F68E: - adds r0, r4, 0 - bl RemoveObjectAndFreeTiles -_0819F694: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_819F654 - - thumb_func_start sub_819F69C -sub_819F69C: @ 819F69C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0819F71A - cmp r0, 0x1 - bgt _0819F6C4 - cmp r0, 0 - beq _0819F6CA - b _0819F77C - .pool -_0819F6C4: - cmp r0, 0x2 - beq _0819F73C - b _0819F77C -_0819F6CA: - movs r0, 0x58 - strh r0, [r4, 0xE] - movs r0, 0x98 - strh r0, [r4, 0x38] - movs r0, 0x40 - strh r0, [r4, 0x12] - movs r0, 0x41 - strh r0, [r4, 0x18] - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl SetGpuRegBits - ldrh r1, [r4, 0xE] - lsls r1, 8 - ldrh r0, [r4, 0x38] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x40 - bl SetGpuReg - ldrh r1, [r4, 0x12] - lsls r1, 8 - ldrh r0, [r4, 0x18] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x44 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - movs r0, 0x4A - movs r1, 0x37 - bl SetGpuReg - b _0819F7A6 -_0819F71A: - movs r0, 0x3 - bl ShowBg - ldr r1, =0x00001248 - movs r0, 0x50 - bl SetGpuReg - ldr r1, =0x0000040b - movs r0, 0x52 - bl SetGpuReg - b _0819F7A6 - .pool -_0819F73C: - ldrh r0, [r4, 0x12] - subs r0, 0x4 - strh r0, [r4, 0x12] - ldrh r1, [r4, 0x18] - adds r1, 0x4 - strh r1, [r4, 0x18] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x20 - ble _0819F758 - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x5F - ble _0819F760 -_0819F758: - movs r0, 0x20 - strh r0, [r4, 0x12] - movs r0, 0x60 - strh r0, [r4, 0x18] -_0819F760: - ldrh r1, [r4, 0x12] - lsls r1, 8 - ldrh r0, [r4, 0x18] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x44 - bl SetGpuReg - movs r2, 0x12 - ldrsh r0, [r4, r2] - cmp r0, 0x20 - bne _0819F7AC - b _0819F7A6 -_0819F77C: - adds r0, r5, 0 - bl DestroyTask - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - movs r2, 0x16 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - bne _0819F7A0 - bl sub_819F8E0 - b _0819F7AC - .pool -_0819F7A0: - bl sub_819BD70 - b _0819F7AC -_0819F7A6: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0819F7AC: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_819F69C - - thumb_func_start sub_819F7B4 -sub_819F7B4: @ 819F7B4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0819F844 - cmp r0, 0x1 - beq _0819F894 - movs r0, 0x3 - bl HideBg - ldr r3, =gUnknown_02020630 - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r4, 0x16] - strh r1, [r0, 0x3C] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r3, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_819F654 - str r1, [r0] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x1 - bl StartObjectRotScalAnim - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl ClearGpuRegBits - adds r0, r5, 0 - bl DestroyTask - b _0819F8D8 - .pool -_0819F844: - movs r0, 0x58 - strh r0, [r4, 0xE] - movs r0, 0x98 - strh r0, [r4, 0x38] - movs r0, 0x20 - strh r0, [r4, 0x12] - movs r0, 0x60 - strh r0, [r4, 0x18] - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl SetGpuRegBits - ldrh r1, [r4, 0xE] - lsls r1, 8 - ldrh r0, [r4, 0x38] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x40 - bl SetGpuReg - ldrh r1, [r4, 0x12] - lsls r1, 8 - ldrh r0, [r4, 0x18] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x44 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - movs r0, 0x4A - movs r1, 0x37 - bl SetGpuReg - b _0819F8D2 -_0819F894: - ldrh r0, [r4, 0x12] - adds r0, 0x4 - strh r0, [r4, 0x12] - ldrh r1, [r4, 0x18] - subs r1, 0x4 - strh r1, [r4, 0x18] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3F - bgt _0819F8B0 - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x41 - bgt _0819F8B8 -_0819F8B0: - movs r0, 0x40 - strh r0, [r4, 0x12] - movs r0, 0x41 - strh r0, [r4, 0x18] -_0819F8B8: - ldrh r1, [r4, 0x12] - lsls r1, 8 - ldrh r0, [r4, 0x18] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x44 - bl SetGpuReg - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0x40 - bne _0819F8D8 -_0819F8D2: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0819F8D8: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_819F7B4 - - thumb_func_start sub_819F8E0 -sub_819F8E0: @ 819F8E0 - push {r4-r6,lr} - sub sp, 0x10 - ldr r0, =gUnknown_03001284 - ldr r1, [r0] - ldrb r0, [r1, 0x14] - cmp r0, 0 - bne _0819F900 - ldrb r1, [r1, 0x3] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - b _0819F908 - .pool -_0819F900: - ldrb r1, [r1, 0x3] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gEnemyParty -_0819F908: - adds r6, r1, r0 - adds r0, r6, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r6, 0 - movs r1, 0 - movs r2, 0 - bl GetMonData - adds r5, r0, 0 - adds r0, r6, 0 - movs r1, 0x1 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - movs r0, 0x58 - str r0, [sp] - movs r0, 0x20 - str r0, [sp, 0x4] - movs r0, 0xF - str r0, [sp, 0x8] - ldr r0, =0x0000ffff - str r0, [sp, 0xC] - adds r0, r4, 0 - adds r2, r5, 0 - movs r3, 0x1 - bl sub_818D7D8 - ldr r2, =gUnknown_03001284 - ldr r1, [r2] - adds r1, 0x2C - movs r3, 0 - strb r0, [r1] - ldr r4, =gUnknown_02020630 - ldr r0, [r2] - adds r0, 0x2C - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x28 - strb r3, [r0] - ldr r0, [r2] - adds r0, 0x2C - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x29 - strb r3, [r0] - ldr r0, [r2] - adds r0, 0x30 - strb r3, [r0] - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819F8E0 - - thumb_func_start sub_819F99C -sub_819F99C: @ 819F99C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, =gSaveBlock2Ptr - ldr r1, [r2] - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r1, r0 - adds r1, 0xDE - ldrb r1, [r1] - movs r6, 0 - adds r7, r2, 0 - ldr r0, =gStringVar1 - mov r8, r0 - cmp r1, 0 - beq _0819F9DC -_0819F9C2: - adds r0, r1, 0 - movs r1, 0xA - bl __udivsi3 - lsls r0, 24 - lsrs r1, r0, 24 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r1, 0 - beq _0819F9DC - cmp r6, 0x3 - bls _0819F9C2 -_0819F9DC: - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - ldr r1, [r7] - adds r1, r4, r1 - movs r0, 0x8A - lsls r0, 1 - adds r1, r0 - mov r0, r8 - bl StringCopy7 - ldr r0, [r7] - adds r0, r4 - ldr r1, =0x0000011b - adds r0, r1 - ldrb r1, [r0] - mov r0, r8 - bl ConvertInternationalString - ldr r0, =gStringVar2 - ldr r1, [r7] - adds r1, r4 - adds r1, 0xDE - ldrb r1, [r1] - movs r2, 0x1 - adds r3, r6, 0 - bl ConvertIntToDecimalStringN - ldr r1, =gUnknown_08611330 - ldr r0, [r7] - adds r0, r4 - adds r0, 0xDC - ldrb r0, [r0] - lsls r0, 27 - lsrs r0, 25 - adds r0, r1 - ldr r1, [r0] - ldr r0, =gStringVar4 - bl StringExpandPlaceholders - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819F99C - - thumb_func_start sub_819FA50 -sub_819FA50: @ 819FA50 - push {lr} - bl script_env_2_enable_and_set_ctx_running - pop {r0} - bx r0 - thumb_func_end sub_819FA50 - - thumb_func_start sub_819FA5C -sub_819FA5C: @ 819FA5C - push {r4,r5,lr} - adds r3, r0, 0 - movs r2, 0 - adds r4, r3, 0 - adds r4, 0x28 - ldr r0, =0x0000ffff - adds r5, r0, 0 -_0819FA6A: - lsls r0, r2, 1 - adds r0, r4, r0 - ldrh r1, [r0] - orrs r1, r5 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x5 - bls _0819FA6A - adds r1, r3, 0 - adds r1, 0x38 - movs r0, 0xFF - strb r0, [r1] - ldrb r1, [r3] - movs r0, 0x20 - negs r0, r0 - ands r0, r1 - movs r1, 0x10 - orrs r0, r1 - strb r0, [r3] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819FA5C - - thumb_func_start sub_819FAA0 -sub_819FAA0: @ 819FAA0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r3, =gSaveBlock2Ptr - ldr r1, [r3] - adds r1, 0xB2 - ldrb r2, [r1] - movs r0, 0x19 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - movs r0, 0 - mov r12, r0 - adds r5, r3, 0 - mov r8, r0 - ldr r1, =0x0000ffff - mov r10, r1 -_0819FAC6: - movs r2, 0 - mov r3, r12 - lsls r7, r3, 4 - movs r4, 0x1 - add r4, r12 - mov r9, r4 - adds r0, r7, r3 - lsls r3, r0, 2 -_0819FAD6: - ldr r1, [r5] - lsls r0, r2, 1 - adds r0, r3 - movs r4, 0x82 - lsls r4, 1 - adds r1, r4 - adds r1, r0 - ldrh r0, [r1] - mov r4, r10 - orrs r0, r4 - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x5 - bls _0819FAD6 - ldr r2, [r5] - mov r0, r12 - adds r3, r7, r0 - lsls r3, 2 - adds r2, r3 - adds r2, 0xDC - ldrb r1, [r2] - movs r0, 0x20 - negs r0, r0 - ands r0, r1 - movs r1, 0x10 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r5] - adds r0, r3 - movs r1, 0x8A - lsls r1, 1 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - ldr r1, [r5] - adds r1, r3 - adds r1, 0xDC - ldrb r2, [r1] - movs r0, 0x61 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r0, [r5] - adds r0, r3 - adds r0, 0xDE - mov r4, r8 - strb r4, [r0] - ldr r0, [r5] - adds r0, r3 - adds r0, 0xDD - strb r4, [r0] - movs r2, 0 - ldr r6, =gSaveBlock2Ptr - movs r4, 0x88 - lsls r4, 1 -_0819FB48: - ldr r0, [r6] - adds r1, r2, r3 - adds r0, r4 - adds r0, r1 - mov r1, r8 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _0819FB48 - ldr r0, [r5] - mov r3, r12 - adds r2, r7, r3 - lsls r2, 2 - adds r0, r2 - ldr r4, =gGameLanguage - ldrb r1, [r4] - ldr r3, =0x0000011b - adds r0, r3 - strb r1, [r0] - ldr r0, [r5] - movs r4, 0x8E - lsls r4, 1 - adds r0, r4 - adds r0, r2 - mov r1, r8 - str r1, [r0] - mov r3, r9 - lsls r0, r3, 24 - lsrs r0, 24 - mov r12, r0 - cmp r0, 0x3 - bls _0819FAC6 - bl sub_81A087C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819FAA0 - - thumb_func_start sub_819FBB0 -sub_819FBB0: @ 819FBB0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB1 - ldrb r0, [r0] - movs r1, 0x3 - ands r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - bx lr - .pool - thumb_func_end sub_819FBB0 - - thumb_func_start sub_819FBC8 -sub_819FBC8: @ 819FBC8 - push {r4,r5,lr} - ldr r2, =gSaveBlock2Ptr - ldr r0, [r2] - adds r0, 0xDE - ldrb r0, [r0] - cmp r0, 0 - bne _0819FC10 - adds r4, r2, 0 - ldr r5, =gUnknown_08611548 -_0819FBDA: - bl Random - ldr r2, [r4] - lsls r0, 16 - movs r1, 0xE0 - lsls r1, 11 - ands r1, r0 - lsrs r1, 16 - adds r1, r5 - ldrb r0, [r1] - adds r2, 0xB0 - strb r0, [r2] - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0xB0 - adds r0, 0xDC - ldrb r0, [r0] - lsls r0, 27 - ldrb r1, [r1] - lsrs r0, 27 - cmp r1, r0 - beq _0819FBDA - b _0819FC38 - .pool -_0819FC10: - adds r4, r2, 0 -_0819FC12: - bl Random - ldr r2, [r4] - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF - ands r0, r1 - adds r2, 0xB0 - strb r0, [r2] - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0xB0 - adds r0, 0xDC - ldrb r0, [r0] - lsls r0, 27 - ldrb r1, [r1] - lsrs r0, 27 - cmp r1, r0 - beq _0819FC12 -_0819FC38: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_819FBC8 - - thumb_func_start sub_819FC40 -sub_819FC40: @ 819FC40 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSaveBlock2Ptr - ldr r2, [r1] - adds r2, 0xB1 - movs r1, 0x3 - ands r0, r1 - ldrb r3, [r2] - subs r1, 0x7 - ands r1, r3 - orrs r1, r0 - strb r1, [r2] - bx lr - .pool - thumb_func_end sub_819FC40 - - thumb_func_start sub_819FC60 -sub_819FC60: @ 819FC60 - push {r4-r7,lr} - sub sp, 0xC - movs r5, 0 -_0819FC66: - mov r1, sp - adds r0, r1, r5 - strb r5, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x9 - bls _0819FC66 - movs r5, 0 -_0819FC78: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - mov r7, sp - adds r2, r7, r4 - ldrb r3, [r2] - adds r1, r7, r0 - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x31 - bls _0819FC78 - movs r5, 0 - ldr r6, =gSaveBlock2Ptr - movs r4, 0xF -_0819FCBC: - ldr r3, [r6] - adds r3, 0xB4 - adds r3, r5 - lsls r2, r5, 1 - mov r1, sp - adds r0, r1, r2 - ldrb r0, [r0] - adds r1, r4, 0 - ands r1, r0 - lsls r1, 4 - adds r2, 0x1 - mov r7, sp - adds r0, r7, r2 - ldrb r2, [r0] - adds r0, r4, 0 - ands r0, r2 - orrs r1, r0 - strb r1, [r3] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _0819FCBC - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819FC60 - - thumb_func_start sub_819FCF8 -sub_819FCF8: @ 819FCF8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - cmp r0, 0x2 - bne _0819FD4C - ldr r6, =gUnknown_030062EC -_0819FD06: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 24 - lsrs r5, r0, 24 - movs r3, 0 - movs r2, 0 - ldr r1, [r6] - lsls r0, r5, 2 - adds r0, r5 - lsls r4, r0, 1 - adds r1, 0x2 -_0819FD26: - lsls r0, r2, 1 - adds r0, r4 - adds r0, r1, r0 - ldrh r0, [r0] - cmp r0, 0 - beq _0819FD38 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 -_0819FD38: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x4 - bls _0819FD26 - cmp r3, 0x3 - bhi _0819FD06 - b _0819FD5A - .pool -_0819FD4C: - cmp r0, 0x1 - bne _0819FD5A - ldrb r0, [r2] - adds r1, r0 - ldrb r5, [r1] - adds r0, 0x1 - strb r0, [r2] -_0819FD5A: - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_819FCF8 - - thumb_func_start sub_819FD64 -sub_819FD64: @ 819FD64 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - movs r5, 0 - mov r0, sp - adds r0, 0xC - str r0, [sp, 0x14] - mov r1, sp - adds r1, 0x10 - str r1, [sp, 0x18] - adds r1, r0, 0 -_0819FD80: - adds r0, r1, r5 - strb r5, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _0819FD80 - movs r5, 0 - ldr r6, [sp, 0x14] -_0819FD92: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 24 - lsrs r4, r0, 24 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - adds r2, r6, r4 - ldrb r3, [r2] - adds r1, r6, r0 - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x9 - bls _0819FD92 - movs r5, 0 - ldr r2, =gUnknown_086114D3 -_0819FDD0: - mov r4, sp - adds r1, r4, r5 - adds r0, r5, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x9 - bls _0819FDD0 - movs r5, 0 -_0819FDE6: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 24 - lsrs r4, r0, 24 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - mov r6, sp - adds r2, r6, r4 - ldrb r3, [r2] - adds r1, r6, r0 - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x31 - bls _0819FDE6 - ldr r4, =gUnknown_030062EC - movs r0, 0x30 - bl AllocZeroed - str r0, [r4] - movs r1, 0 - strb r1, [r0] - movs r5, 0 - movs r2, 0x4 -_0819FE34: - movs r3, 0 -_0819FE36: - ldr r0, [r4] - lsls r1, r3, 2 - adds r1, r3 - adds r1, r5, r1 - adds r0, 0x20 - adds r0, r1 - strb r2, [r0] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x2 - bls _0819FE36 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bls _0819FE34 - movs r0, 0 - ldr r7, [sp, 0x18] - strb r0, [r7] - movs r5, 0 -_0819FE60: - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - lsls r4, r5, 2 - adds r3, r4 - mov r1, sp - adds r6, r1, r5 - ldrb r0, [r6] - adds r3, 0xB8 - movs r2, 0x3 - ands r2, r0 - ldrb r0, [r3] - movs r7, 0x4 - negs r7, r7 - adds r1, r7, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - ldrb r0, [r6] - adds r5, 0x1 - str r5, [sp, 0x1C] - mov r8, r4 - cmp r0, 0x3 - beq _0819FF62 - ldrb r0, [r6] - ldr r1, [sp, 0x14] - ldr r2, [sp, 0x18] - bl sub_819FCF8 - ldr r1, =gSaveBlock2Ptr - ldr r3, [r1] - add r3, r8 - adds r3, 0xB8 - movs r2, 0x3 - ands r2, r0 - lsls r2, 2 - ldrb r0, [r3] - movs r4, 0xD - negs r4, r4 - adds r1, r4, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - ldr r7, =gSaveBlock2Ptr - ldr r0, [r7] - add r0, r8 - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 28 - lsrs r7, r0, 30 - ldrb r0, [r6] - cmp r0, 0x2 - bne _0819FF62 - lsls r0, r7, 2 - adds r0, r7 - mov r10, r0 - ldr r0, =gUnknown_030062EC - mov r9, r0 -_0819FED2: - bl Random - lsls r0, 16 - lsrs r4, r0, 16 - movs r1, 0x3 - ands r4, r1 - movs r3, 0 - mov r6, r9 - ldr r2, [r6] - ldrb r0, [r2] - adds r1, r0, 0x1 - lsls r5, r7, 2 - cmp r3, r1 - bge _0819FF12 - adds r2, 0x20 - mov r6, r10 - adds r0, r2, r6 - ldrb r0, [r0] - cmp r0, r4 - beq _0819FF12 - adds r6, r1, 0 - adds r1, r5, r7 -_0819FEFE: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r6 - bge _0819FF12 - adds r0, r3, r1 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, r4 - bne _0819FEFE -_0819FF12: - mov r1, r9 - ldr r0, [r1] - ldrb r0, [r0] - adds r0, 0x1 - ldr r1, =gUnknown_030062EC - cmp r3, r0 - bne _0819FED2 - ldr r0, [r1] - orrs r5, r7 - ldrb r2, [r0] - adds r1, r5, r2 - adds r0, 0x20 - adds r0, r1 - strb r4, [r0] - ldr r6, =gSaveBlock2Ptr - ldr r2, [r6] - add r2, r8 - adds r2, 0xB8 - movs r7, 0x3 - ands r4, r7 - lsls r3, r4, 4 - ldrb r0, [r2] - movs r4, 0x31 - negs r4, r4 - adds r1, r4, 0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] - ldr r0, [r6] - add r0, r8 - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 28 - lsrs r0, 30 - bl sub_819FF98 - ldr r1, [r6] - add r1, r8 - adds r1, 0xBA - strh r0, [r1] -_0819FF62: - ldr r6, [sp, 0x1C] - lsls r0, r6, 24 - lsrs r5, r0, 24 - cmp r5, 0x8 - bhi _0819FF6E - b _0819FE60 -_0819FF6E: - ldr r4, =gUnknown_030062EC - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] - 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_819FD64 - - thumb_func_start sub_819FF98 -sub_819FF98: @ 819FF98 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0xC] - movs r7, 0 - ldr r1, [sp] - cmp r1, 0x2 - bhi _0819FFE0 - ldr r2, =gSaveBlock2Ptr - ldr r1, [r2] - adds r0, r1, 0 - adds r0, 0xB4 - ldr r3, [sp] - adds r0, r3 - ldrb r4, [r0] - adds r1, 0xB2 - ldrb r0, [r1] - lsls r0, 29 - lsrs r0, 29 - asrs r0, r3 - movs r1, 0x1 - ands r0, r1 - lsls r0, 2 - asrs r4, r0 - movs r0, 0xF - ands r4, r0 - b _0819FFE4 - .pool -_0819FFE0: - movs r4, 0 - ldr r2, =gSaveBlock2Ptr -_0819FFE4: - ldr r3, =gUnknown_08610970 - lsls r1, r4, 1 - ldr r4, [r2] - adds r0, r4, 0 - adds r0, 0xB0 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, r0 - adds r3, 0x34 - adds r1, r3 - ldrh r1, [r1] - str r1, [sp, 0x8] - ldr r1, =gLevelUpLearnsetPointers - ldr r2, [sp, 0x8] - lsls r0, r2, 2 - adds r0, r1 - ldr r6, [r0] - movs r3, 0 - adds r4, 0xB1 - ldrb r1, [r4] - movs r0, 0x3 - ands r0, r1 - movs r5, 0x3C - cmp r0, 0x1 - bne _081A001A - movs r5, 0x32 -_081A001A: - ldrh r1, [r6] - ldr r4, =0x0000ffff - cmp r1, r4 - beq _081A004C - movs r2, 0xFE - lsls r2, 8 - adds r0, r2, 0 - ands r0, r1 - lsls r1, r5, 9 - cmp r0, r1 - bgt _081A004C - adds r5, r2, 0 - adds r2, r1, 0 -_081A0034: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 1 - adds r0, r6 - ldrh r1, [r0] - cmp r1, r4 - beq _081A004C - adds r0, r5, 0 - ands r0, r1 - cmp r0, r2 - ble _081A0034 -_081A004C: - adds r5, r3, 0 - movs r3, 0 - str r3, [sp, 0x4] -_081A0052: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081A0068 - ldr r0, [sp, 0xC] - cmp r0, 0x1 - bne _081A00E0 -_081A0068: - ldr r1, =0x000001ff - mov r8, r1 -_081A006C: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3A - bl __umodsi3 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, [sp, 0x8] - adds r1, r4, 0 - bl sub_806E064 - adds r2, r0, 0 - cmp r2, 0 - beq _081A006C - ldr r2, =0x00000121 - adds r0, r4, r2 - bl ItemIdToBattleMoveId - lsls r0, 16 - lsrs r7, r0, 16 - movs r2, 0x1 - cmp r5, 0x4 - bhi _081A00BC - movs r3, 0 - b _081A00C6 - .pool -_081A00BC: - subs r0, r5, 0x4 - b _081A00C2 -_081A00C0: - adds r0, r3, 0x1 -_081A00C2: - lsls r0, 24 - lsrs r3, r0, 24 -_081A00C6: - cmp r3, r5 - bcs _081A00DA - lsls r0, r3, 1 - adds r0, r6 - ldrh r0, [r0] - mov r1, r8 - ands r0, r1 - cmp r0, r7 - bne _081A00C0 - movs r2, 0 -_081A00DA: - cmp r2, 0x1 - bne _081A006C - b _081A0146 -_081A00E0: - cmp r5, 0x4 - bhi _081A00EA - movs r2, 0x1 - str r2, [sp, 0xC] - b _081A0168 -_081A00EA: - subs r4, r5, 0x4 - ldr r3, =0x000001ff - mov r10, r3 - mov r8, r3 - lsls r0, r4, 24 - mov r9, r0 -_081A00F6: - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0 - bl __modsi3 - lsls r0, 24 - lsrs r0, 23 - adds r0, r6 - ldrh r0, [r0] - mov r7, r8 - ands r7, r0 - movs r2, 0x1 - mov r1, r9 - lsrs r3, r1, 24 - cmp r3, r5 - bcs _081A0142 - lsls r0, r3, 1 - adds r0, r6 - ldrh r1, [r0] - mov r0, r8 - b _081A013A - .pool -_081A0128: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r5 - bcs _081A0142 - lsls r0, r3, 1 - adds r0, r6 - ldrh r0, [r0] - mov r1, r10 -_081A013A: - ands r0, r1 - cmp r0, r7 - bne _081A0128 - movs r2, 0 -_081A0142: - cmp r2, 0x1 - bne _081A00F6 -_081A0146: - ldr r0, [sp] - adds r1, r7, 0 - bl sub_81A0194 - lsls r0, 24 - cmp r0, 0 - beq _081A0168 - ldr r0, =gUnknown_08611370 - adds r0, r7, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _081A0170 - ldr r0, [sp, 0x4] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] -_081A0168: - ldr r2, [sp, 0x4] - cmp r2, 0x4 - bhi _081A0170 - b _081A0052 -_081A0170: - ldr r0, =gUnknown_030062EC - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - adds r0, r7, 0 - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_819FF98 - - thumb_func_start sub_81A0194 -sub_81A0194: @ 81A0194 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 16 - lsrs r5, r1, 16 - movs r3, 0 - ldr r0, =gUnknown_030062EC - mov r12, r0 - ldr r2, [r0] - lsls r1, r4, 2 - adds r0, r1, r4 - lsls r6, r0, 1 - adds r2, 0x2 - adds r7, r1, 0 -_081A01B0: - lsls r0, r3, 1 - adds r0, r6 - adds r0, r2, r0 - ldrh r0, [r0] - cmp r0, r5 - bne _081A01C4 - movs r0, 0 - b _081A01E2 - .pool -_081A01C4: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x4 - bls _081A01B0 - mov r2, r12 - ldr r1, [r2] - adds r0, r7, r4 - ldrb r2, [r1] - adds r0, r2 - lsls r0, 1 - adds r1, 0x2 - adds r1, r0 - strh r5, [r1] - movs r0, 0x1 -_081A01E2: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81A0194 - - thumb_func_start sub_81A01E8 -sub_81A01E8: @ 81A01E8 - push {r4-r7,lr} - mov r12, r1 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB1 - ldrb r1, [r0] - movs r0, 0x3 - ands r0, r1 - movs r4, 0x3C - cmp r0, 0x1 - bne _081A0204 - movs r4, 0x32 -_081A0204: - ldr r1, =gLevelUpLearnsetPointers - lsls r0, r2, 2 - adds r0, r1 - ldr r6, [r0] - movs r5, 0 - ldrh r1, [r6] - ldr r3, =0x0000ffff - cmp r1, r3 - beq _081A0240 - movs r2, 0xFE - lsls r2, 8 - adds r0, r2, 0 - ands r0, r1 - lsls r1, r4, 9 - cmp r0, r1 - bgt _081A0240 - adds r4, r2, 0 - adds r2, r1, 0 -_081A0228: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 1 - adds r0, r6 - ldrh r1, [r0] - cmp r1, r3 - beq _081A0240 - adds r0, r4, 0 - ands r0, r1 - cmp r0, r2 - ble _081A0228 -_081A0240: - adds r4, r5, 0 - cmp r4, 0x4 - bls _081A0248 - movs r4, 0x4 -_081A0248: - movs r2, 0 - cmp r2, r4 - bcs _081A026C - ldr r7, =0x000001ff -_081A0250: - lsls r3, r2, 1 - add r3, r12 - adds r2, 0x1 - subs r0, r5, r2 - lsls r0, 1 - adds r0, r6 - ldrh r1, [r0] - adds r0, r7, 0 - ands r0, r1 - strh r0, [r3] - lsls r2, 24 - lsrs r2, 24 - cmp r2, r4 - bcc _081A0250 -_081A026C: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A01E8 - - thumb_func_start sub_81A0284 -sub_81A0284: @ 81A0284 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r5, r2, 24 - ldr r1, =gSaveBlock2Ptr - ldr r2, [r1] - adds r0, r2, 0 - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - adds r7, r1, 0 - cmp r0, 0x2 - bhi _081A02B8 - movs r0, 0 - b _081A037C - .pool -_081A02B8: - movs r4, 0 - movs r3, 0 - adds r0, r2, 0 - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 30 - ldr r1, =gUnknown_08610970 - mov r12, r1 - lsls r6, 1 - lsls r5, 1 - mov r9, r5 - cmp r0, 0 - beq _081A02F4 - adds r2, r7, 0 -_081A02D4: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x8 - bhi _081A02F4 - ldr r0, [r2] - lsls r1, r3, 2 - adds r0, r1 - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 30 - cmp r0, 0 - bne _081A02D4 -_081A02F4: - ldr r0, [r7] - adds r0, 0xB0 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r6, r0 - mov r1, r12 - adds r1, 0x34 - adds r0, r1 - ldrh r0, [r0] - mov r1, sp - bl sub_81A01E8 - movs r3, 0 - cmp r3, r4 - bcs _081A0376 - ldr r1, [r7] - adds r0, r1, 0 - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - subs r0, 0x3 - cmp r3, r0 - bge _081A0376 - adds r6, r7, 0 - adds r5, r1, 0 -_081A032A: - lsls r0, r3, 2 - adds r2, r5, r0 - adds r0, r2, 0 - adds r0, 0xB8 - ldrb r1, [r0] - lsls r0, r1, 30 - lsrs r0, 30 - cmp r0, 0x2 - bne _081A035C - lsls r0, r1, 28 - lsrs r0, 30 - cmp r0, r8 - bne _081A035C - lsrs r0, r1, 6 - cmp r0, 0 - beq _081A035C - lsls r0, r1, 26 - lsrs r0, 30 - lsls r0, 1 - mov r7, sp - adds r1, r7, r0 - adds r0, r2, 0 - adds r0, 0xBA - ldrh r0, [r0] - strh r0, [r1] -_081A035C: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r4 - bcs _081A0376 - ldr r0, [r6] - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - subs r0, 0x3 - cmp r3, r0 - blt _081A032A -_081A0376: - mov r0, sp - add r0, r9 - ldrh r0, [r0] -_081A037C: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A0284 - - thumb_func_start sub_81A0390 -sub_81A0390: @ 81A0390 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r5, 0 - ldr r7, =gSaveBlock2Ptr - adds r6, r7, 0 - movs r4, 0 -_081A03A6: - ldr r0, [r6] - lsls r2, r5, 1 - adds r2, r5 - lsls r2, 2 - adds r0, r2 - adds r1, r0, 0 - adds r1, 0xE0 - strh r4, [r1] - adds r0, 0xEA - strh r4, [r0] - movs r3, 0 -_081A03BC: - ldr r0, [r6] - lsls r1, r3, 1 - adds r1, r2 - adds r0, 0xE2 - adds r0, r1 - strh r4, [r0] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _081A03BC - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _081A03A6 - ldr r0, [r7] - adds r0, 0xB1 - ldrb r0, [r0] - lsrs r3, r0, 6 - movs r5, 0 -_081A03E6: - lsls r0, r3, 2 - mov r1, sp - adds r2, r1, r0 - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - adds r0, 0xE0 - ldr r1, [r7] - adds r1, r0 - str r1, [r2] - adds r0, r3, 0x1 - movs r1, 0x3 - bl __modsi3 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _081A03E6 - movs r5, 0 - ldr r7, =gSaveBlock2Ptr - ldr r6, =gUnknown_086109A4 -_081A0416: - ldr r0, [r7] - mov r12, r0 - adds r0, 0xB4 - adds r0, r5 - ldrb r2, [r0] - mov r0, r12 - adds r0, 0xB2 - ldrb r0, [r0] - lsls r0, 29 - lsrs r0, 29 - asrs r0, r5 - movs r1, 0x1 - ands r0, r1 - lsls r0, 2 - asrs r2, r0 - movs r0, 0xF - ands r2, r0 - lsls r0, r5, 2 - mov r1, sp - adds r3, r1, r0 - ldr r4, [r3] - lsls r2, 1 - mov r0, r12 - adds r0, 0xB0 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r2, r0 - adds r2, r6 - ldrh r0, [r2] - strh r0, [r4] - ldr r1, [r3] - ldrh r0, [r1] - adds r1, 0x2 - bl sub_81A01E8 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _081A0416 - movs r5, 0 - cmp r5, r8 - bcs _081A04D6 - ldr r7, =gSaveBlock2Ptr -_081A0470: - ldr r1, [r7] - lsls r0, r5, 2 - adds r4, r1, r0 - adds r0, r4, 0 - adds r0, 0xB8 - ldrb r2, [r0] - lsls r0, r2, 30 - lsrs r1, r0, 30 - lsls r0, r2, 28 - lsrs r3, r0, 30 - adds r6, r3, 0 - cmp r1, 0x1 - bne _081A04A8 - lsrs r0, r2, 6 - cmp r0, 0 - beq _081A04CC - lsls r0, r3, 2 - add r0, sp - ldr r1, [r0] - adds r0, r4, 0 - adds r0, 0xBA - ldrh r0, [r0] - strh r0, [r1, 0xA] - b _081A04CC - .pool -_081A04A8: - cmp r1, 0x2 - bne _081A04CC - lsls r0, r2, 24 - lsrs r0, 30 - cmp r0, 0 - beq _081A04CC - lsls r2, 26 - lsrs r2, 30 - lsls r0, r6, 2 - add r0, sp - ldr r1, [r0] - lsls r2, 1 - adds r1, 0x2 - adds r1, r2 - adds r0, r4, 0 - adds r0, 0xBA - ldrh r0, [r0] - strh r0, [r1] -_081A04CC: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r8 - bcc _081A0470 -_081A04D6: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81A0390 - - thumb_func_start sub_81A04E4 -sub_81A04E4: @ 81A04E4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - lsls r0, 24 - lsrs r0, 24 - movs r7, 0x2 - cmp r0, 0x6 - bls _081A04FC - b _081A064C -_081A04FC: - lsls r0, 2 - ldr r1, =_081A050C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081A050C: - .4byte _081A0528 - .4byte _081A0540 - .4byte _081A05B4 - .4byte _081A05F4 - .4byte _081A061C - .4byte _081A064C - .4byte _081A0634 -_081A0528: - movs r0, 0x12 - mov r10, r0 - movs r6, 0x8 - ldr r0, =gUnknown_085EAEB1 - str r0, [sp, 0xC] - ldr r0, =gUnknown_085EAEB8 - str r0, [sp, 0x10] - b _081A0652 - .pool -_081A0540: - movs r7, 0x3 - movs r1, 0x12 - mov r10, r1 - movs r6, 0x6 - movs r4, 0 - ldr r0, =gSpeciesNames - mov r9, r0 - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - movs r1, 0xB2 - adds r1, r3 - mov r12, r1 - adds r5, r3, 0 - adds r5, 0xB0 - ldr r0, =gUnknown_086109A4 - mov r8, r0 -_081A0560: - adds r0, r3, 0 - adds r0, 0xB4 - adds r0, r4 - ldrb r2, [r0] - mov r1, r12 - ldrb r0, [r1] - lsls r0, 29 - lsrs r0, 29 - asrs r0, r4 - movs r1, 0x1 - ands r0, r1 - lsls r0, 2 - asrs r2, r0 - movs r0, 0xF - ands r2, r0 - lsls r2, 1 - ldrb r1, [r5] - movs r0, 0x58 - muls r0, r1 - adds r2, r0 - add r2, r8 - ldrh r1, [r2] - lsls r0, r4, 2 - mov r2, sp - adds r2, r0 - adds r2, 0xC - movs r0, 0xB - muls r0, r1 - add r0, r9 - str r0, [r2] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _081A0560 - b _081A0652 - .pool -_081A05B4: - movs r0, 0x12 - mov r10, r0 - movs r6, 0x8 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - cmp r0, 0x2 - bls _081A05CC - b _081A06FA -_081A05CC: - ldr r0, =gUnknown_030062F0 - ldr r3, [r0] - ldrh r0, [r3, 0x2] - movs r2, 0xB - muls r0, r2 - ldr r1, =gSpeciesNames - adds r0, r1 - str r0, [sp, 0x10] - ldrh r0, [r3] - muls r0, r2 - adds r0, r1 - str r0, [sp, 0xC] - b _081A0652 - .pool -_081A05F4: - movs r1, 0x11 - mov r10, r1 - movs r6, 0x8 - ldr r0, =gUnknown_030062F0 - ldr r3, [r0] - ldrh r0, [r3, 0x4] - movs r2, 0xD - muls r0, r2 - ldr r1, =gMoveNames - adds r0, r1 - str r0, [sp, 0xC] - ldrh r0, [r3, 0x6] - muls r0, r2 - adds r0, r1 - str r0, [sp, 0x10] - b _081A0652 - .pool -_081A061C: - movs r0, 0x12 - mov r10, r0 - movs r6, 0x8 - ldr r0, =gUnknown_085ED193 - str r0, [sp, 0xC] - ldr r0, =gUnknown_085ED198 - str r0, [sp, 0x10] - b _081A0652 - .pool -_081A0634: - movs r1, 0x14 - mov r10, r1 - movs r6, 0x8 - ldr r0, =gUnknown_085EAE62 - str r0, [sp, 0xC] - ldr r0, =gUnknown_085EAE66 - str r0, [sp, 0x10] - b _081A0652 - .pool -_081A064C: - movs r0, 0 - mov r10, r0 - movs r6, 0 -_081A0652: - movs r5, 0 - movs r4, 0 - lsls r1, r7, 25 - mov r8, r1 - cmp r4, r7 - bcs _081A067E -_081A065E: - lsls r0, r4, 2 - add r0, sp - adds r0, 0xC - ldr r1, [r0] - movs r0, 0x1 - movs r2, 0 - bl GetStringWidth - cmp r0, r5 - ble _081A0674 - adds r5, r0, 0 -_081A0674: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r7 - bcc _081A065E -_081A067E: - adds r0, r5, 0 - bl convert_pixel_width_to_tile_width - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r0, r10 - adds r1, r4, 0 - bl sub_80E2D5C - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - mov r0, r8 - lsrs r3, r0, 24 - mov r0, r10 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_81A0784 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - movs r1, 0 - bl SetStandardWindowBorderStyle - movs r4, 0 - cmp r4, r7 - bcs _081A06E6 -_081A06B8: - lsls r0, r4, 2 - add r0, sp - adds r0, 0xC - ldr r2, [r0] - lsls r0, r4, 4 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r5, 0 - movs r1, 0x1 - movs r3, 0x8 - bl Print - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r7 - bcc _081A06B8 -_081A06E6: - adds r0, r5, 0 - adds r1, r7, 0 - movs r2, 0 - bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed - movs r0, 0x1 - adds r1, r7, 0 - adds r2, r5, 0 - bl sub_81A0804 -_081A06FA: - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81A04E4 - - thumb_func_start sub_81A070C -sub_81A070C: @ 81A070C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081A0730 - bl ProcessMenuInputNoWrapAround - b _081A0734 - .pool -_081A0730: - bl ProcessMenuInput -_081A0734: - lsls r0, 24 - lsrs r0, 24 - lsls r0, 24 - asrs r1, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _081A0778 - adds r0, 0x1 - cmp r1, r0 - bne _081A0764 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081A0778 - movs r0, 0x5 - bl audio_play - ldr r1, =gUnknown_020375F0 - movs r0, 0x7F - strh r0, [r1] - b _081A0768 - .pool -_081A0764: - ldr r0, =gUnknown_020375F0 - strh r1, [r0] -_081A0768: - ldrb r0, [r4, 0xC] - bl sub_81A07E8 - adds r0, r5, 0 - bl DestroyTask - bl script_env_2_enable_and_set_ctx_running -_081A0778: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A070C - - thumb_func_start sub_81A0784 -sub_81A0784: @ 81A0784 - push {r4,r5,lr} - sub sp, 0x20 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsls r5, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x80 - lsls r0, 17 - adds r4, r0 - lsrs r4, 24 - adds r5, r0 - lsrs r5, 24 - str r2, [sp] - str r3, [sp, 0x4] - movs r0, 0xF - str r0, [sp, 0x8] - movs r0, 0x64 - str r0, [sp, 0xC] - add r0, sp, 0x10 - movs r1, 0 - adds r2, r4, 0 - adds r3, r5, 0 - bl sub_8198A50 - ldr r0, [sp, 0x10] - ldr r1, [sp, 0x14] - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - add r0, sp, 0x18 - bl AddWindow - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram - adds r0, r4, 0 - add sp, 0x20 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81A0784 - - thumb_func_start sub_81A07E8 -sub_81A07E8: @ 81A07E8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8198070 - adds r0, r4, 0 - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81A07E8 - - thumb_func_start sub_81A0804 -sub_81A0804: @ 81A0804 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r2, 24 - lsrs r6, r2, 24 - ldr r0, =sub_81A070C - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0, r1 - strh r4, [r1, 0x10] - cmp r5, 0x3 - bls _081A0840 - movs r0, 0x1 - b _081A0842 - .pool -_081A0840: - movs r0, 0 -_081A0842: - strh r0, [r1, 0x12] - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - strh r6, [r0, 0x14] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A0804 - - thumb_func_start sub_81A085C -sub_81A085C: @ 81A085C - push {lr} - ldr r1, =gUnknown_086114E0 - ldr r0, =gUnknown_020375E0 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A085C - - thumb_func_start sub_81A087C -sub_81A087C: @ 81A087C - push {r4-r7,lr} - bl sub_819FBC8 - ldr r3, =gSaveBlock2Ptr - ldr r1, [r3] - adds r1, 0xB1 - ldrb r2, [r1] - movs r0, 0x4 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r3] - adds r1, 0xB1 - ldrb r2, [r1] - movs r0, 0x3D - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r3] - adds r1, 0xB1 - ldrb r2, [r1] - movs r0, 0x3F - ands r0, r2 - strb r0, [r1] - ldr r1, [r3] - adds r1, 0xB2 - ldrb r2, [r1] - movs r0, 0x8 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - movs r4, 0 - movs r1, 0 -_081A08BE: - ldr r0, [r3] - adds r0, 0xB4 - adds r0, r4 - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _081A08BE - movs r4, 0 - ldr r5, =gSaveBlock2Ptr - movs r0, 0x4 - negs r0, r0 - mov r12, r0 - movs r7, 0xD - negs r7, r7 - movs r6, 0x31 - negs r6, r6 -_081A08E2: - ldr r1, [r5] - lsls r3, r4, 2 - adds r1, r3 - adds r1, 0xB8 - ldrb r2, [r1] - mov r0, r12 - ands r0, r2 - strb r0, [r1] - ldr r1, [r5] - adds r1, r3 - adds r1, 0xB8 - ldrb r2, [r1] - adds r0, r7, 0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r5] - adds r1, r3 - adds r1, 0xB8 - ldrb r2, [r1] - adds r0, r6, 0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r5] - adds r1, r3 - adds r1, 0xB8 - ldrb r2, [r1] - movs r0, 0x3F - ands r0, r2 - strb r0, [r1] - ldr r0, [r5] - adds r0, r3 - adds r0, 0xBA - movs r1, 0 - strh r1, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x8 - bls _081A08E2 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A087C - - thumb_func_start sub_81A093C -sub_81A093C: @ 81A093C - push {lr} - bl sub_819FBB0 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _081A0954 - ldr r0, =gUnknown_020375F0 - strh r1, [r0] - b _081A095A - .pool -_081A0954: - ldr r1, =gUnknown_020375F0 - movs r0, 0x1 - strh r0, [r1] -_081A095A: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A093C - - thumb_func_start sub_81A0964 -sub_81A0964: @ 81A0964 - push {lr} - ldr r0, =gUnknown_020375E2 - ldrb r0, [r0] - bl sub_819FC40 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A0964 - - thumb_func_start sub_81A0978 -sub_81A0978: @ 81A0978 - push {lr} - bl sub_819FBC8 - pop {r0} - bx r0 - thumb_func_end sub_81A0978 - - thumb_func_start sub_81A0984 -sub_81A0984: @ 81A0984 - push {lr} - bl sub_819FD64 - pop {r0} - bx r0 - thumb_func_end sub_81A0984 - - thumb_func_start sub_81A0990 -sub_81A0990: @ 81A0990 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - adds r2, 0xB1 - ldrb r3, [r2] - lsls r1, r3, 26 - lsrs r1, 28 - adds r1, 0x1 - movs r0, 0xF - ands r1, r0 - lsls r1, 2 - movs r0, 0x3D - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - bx lr - .pool - thumb_func_end sub_81A0990 - - thumb_func_start sub_81A09B4 -sub_81A09B4: @ 81A09B4 - ldr r1, =gUnknown_020375F0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - strh r0, [r1] - bx lr - .pool - thumb_func_end sub_81A09B4 - - thumb_func_start sub_81A09D0 -sub_81A09D0: @ 81A09D0 - push {lr} - ldr r3, =gSaveBlock2Ptr - ldr r0, [r3] - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - subs r1, r0, 0x3 - cmp r1, 0 - bge _081A09F4 - ldr r1, =gUnknown_020375F0 - movs r0, 0 - strh r0, [r1] - b _081A0A1C - .pool -_081A09F4: - ldr r2, =gUnknown_020375F0 - cmp r1, 0x8 - ble _081A09FE - movs r0, 0x1 - strh r0, [r2] -_081A09FE: - ldr r0, [r3] - lsls r1, 2 - adds r0, r1 - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 30 - cmp r0, 0 - bne _081A0A18 - movs r0, 0x1 - b _081A0A1A - .pool -_081A0A18: - movs r0, 0 -_081A0A1A: - strh r0, [r2] -_081A0A1C: - pop {r0} - bx r0 - thumb_func_end sub_81A09D0 - - thumb_func_start sub_81A0A20 -sub_81A0A20: @ 81A0A20 - push {lr} - ldr r0, =gUnknown_020375E2 - ldrb r0, [r0] - bl sub_81A04E4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A0A20 - - thumb_func_start sub_81A0A34 -sub_81A0A34: @ 81A0A34 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8197224 - lsls r0, 16 - cmp r0, 0 - bne _081A0A68 - adds r0, r4, 0 - bl DestroyTask - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - cmp r0, 0 - beq _081A0A64 - ldr r0, =script_env_2_enable_and_set_ctx_running - bl sub_81A172C - b _081A0A68 - .pool -_081A0A64: - bl script_env_2_enable_and_set_ctx_running -_081A0A68: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81A0A34 - - thumb_func_start sub_81A0A70 -sub_81A0A70: @ 81A0A70 - push {lr} - ldr r1, =gUnknown_020375E4 - ldrh r0, [r1] - cmp r0, 0x6 - bne _081A0A94 - ldr r1, =gUnknown_08610FF0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r0, [r0] - lsls r0, 3 - b _081A0C66 - .pool -_081A0A94: - cmp r0, 0x7 - bne _081A0AB0 - ldr r1, =gUnknown_08610FF0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - b _081A0C66 - .pool -_081A0AB0: - cmp r0, 0x8 - bne _081A0ACC - ldr r1, =gUnknown_086111B0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r0, [r0] - lsls r0, 3 - b _081A0C66 - .pool -_081A0ACC: - cmp r0, 0x9 - bne _081A0AE8 - ldr r1, =gUnknown_086111B0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - b _081A0C66 - .pool -_081A0AE8: - cmp r0, 0x4 - bne _081A0B04 - ldr r1, =gUnknown_08611230 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r0, [r0] - lsls r0, 3 - b _081A0C66 - .pool -_081A0B04: - cmp r0, 0x5 - bne _081A0B20 - ldr r1, =gUnknown_08611230 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - b _081A0C66 - .pool -_081A0B20: - cmp r0, 0xA - bne _081A0B40 - ldr r2, =gUnknown_08611070 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - b _081A0BD6 - .pool -_081A0B40: - cmp r0, 0xB - bne _081A0B5C - ldr r1, =gUnknown_086112B0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r0, [r0] - lsls r0, 3 - b _081A0C66 - .pool -_081A0B5C: - cmp r0, 0xC - bne _081A0B7C - ldr r2, =gUnknown_08611070 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0xC - b _081A0BD6 - .pool -_081A0B7C: - cmp r0, 0xD - bne _081A0B9C - ldr r2, =gUnknown_08611070 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0x4 - b _081A0BD6 - .pool -_081A0B9C: - ldrh r0, [r1] - cmp r0, 0x10 - bne _081A0BC0 - ldr r2, =gUnknown_08611070 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0x10 - b _081A0BD6 - .pool -_081A0BC0: - cmp r0, 0xE - bne _081A0BE4 - ldr r2, =gUnknown_08611070 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0x8 -_081A0BD6: - adds r0, r2 - ldr r1, [r0] - b _081A0C7A - .pool -_081A0BE4: - cmp r0, 0xF - bne _081A0C00 - ldr r1, =gUnknown_086112B0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - b _081A0C66 - .pool -_081A0C00: - cmp r0, 0 - bne _081A0C1C - ldr r1, =gUnknown_08610EF0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r0, [r0] - lsls r0, 4 - b _081A0C66 - .pool -_081A0C1C: - cmp r0, 0x1 - bne _081A0C38 - ldr r1, =gUnknown_08610EF0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r0, [r0] - lsls r0, 4 - adds r1, 0x4 - b _081A0C66 - .pool -_081A0C38: - cmp r0, 0x2 - bne _081A0C54 - ldr r1, =gUnknown_08610EF0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r0, [r0] - lsls r0, 4 - adds r1, 0x8 - b _081A0C66 - .pool -_081A0C54: - cmp r0, 0x3 - bne _081A0C74 - ldr r1, =gUnknown_08610EF0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r0, [r0] - lsls r0, 4 - adds r1, 0xC -_081A0C66: - adds r0, r1 - ldr r1, [r0] - b _081A0C7A - .pool -_081A0C74: - bl script_env_2_enable_and_set_ctx_running - b _081A0C8E -_081A0C7A: - ldr r0, =gStringVar4 - bl StringExpandPlaceholders - movs r0, 0x1 - bl AddTextPrinterForMessage - ldr r0, =sub_81A0A34 - movs r1, 0x1 - bl CreateTask -_081A0C8E: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A0A70 - - thumb_func_start sub_81A0C9C -sub_81A0C9C: @ 81A0C9C - push {lr} - bl script_env_2_enable - bl player_bitmagic - bl sub_808B864 - bl sub_808BCF4 - movs r0, 0 - movs r1, 0x1 - bl sub_81973C4 - bl sub_81A0A70 - pop {r0} - bx r0 - thumb_func_end sub_81A0C9C - - thumb_func_start sub_81A0CC0 -sub_81A0CC0: @ 81A0CC0 - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0xB1 - ldrb r0, [r0] - lsls r1, r0, 26 - lsrs r0, r1, 28 - cmp r0, 0x2 - bhi _081A0CE4 - ldr r1, =gUnknown_020375F0 - movs r0, 0x2 - b _081A0D34 - .pool -_081A0CE4: - lsrs r0, r1, 28 - cmp r0, 0xB - bhi _081A0D30 - lsrs r0, r1, 28 - subs r0, 0x3 - lsls r0, 2 - adds r0, r2, r0 - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 30 - cmp r0, 0x2 - beq _081A0D18 - cmp r0, 0x2 - bgt _081A0D08 - cmp r0, 0x1 - beq _081A0D0E - b _081A0D30 -_081A0D08: - cmp r0, 0x3 - beq _081A0D24 - b _081A0D30 -_081A0D0E: - ldr r1, =gUnknown_020375F0 - movs r0, 0x4 - b _081A0D34 - .pool -_081A0D18: - ldr r1, =gUnknown_020375F0 - movs r0, 0x3 - b _081A0D34 - .pool -_081A0D24: - ldr r1, =gUnknown_020375F0 - movs r0, 0x1 - b _081A0D34 - .pool -_081A0D30: - ldr r1, =gUnknown_020375F0 - movs r0, 0x5 -_081A0D34: - strh r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A0CC0 - - thumb_func_start sub_81A0D40 -sub_81A0D40: @ 81A0D40 - push {r4,lr} - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - cmp r0, 0 - beq _081A0D6E - ldr r4, =gUnknown_020375E4 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - adds r2, 0xB2 - ldrb r3, [r2] - lsls r0, r3, 29 - lsrs r0, 29 - movs r1, 0x1 - ldrb r4, [r4] - lsls r1, r4 - orrs r1, r0 - movs r0, 0x7 - ands r1, r0 - movs r0, 0x8 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] -_081A0D6E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A0D40 - - thumb_func_start sub_81A0D80 -sub_81A0D80: @ 81A0D80 - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - adds r0, r3, 0 - adds r0, 0xB1 - ldrb r0, [r0] - lsls r1, r0, 26 - lsrs r0, r1, 28 - cmp r0, 0x2 - bls _081A0DCE - subs r0, 0x3 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - cmp r0, 0 - beq _081A0DC0 - lsls r2, 2 - adds r2, r3, r2 - adds r2, 0xB8 - ldrb r1, [r2] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - b _081A0DCE - .pool -_081A0DC0: - lsls r0, r2, 2 - adds r0, r3, r0 - adds r0, 0xB8 - ldrb r2, [r0] - movs r1, 0x3F - ands r1, r2 - strb r1, [r0] -_081A0DCE: - pop {r0} - bx r0 - thumb_func_end sub_81A0D80 - - thumb_func_start sub_81A0DD4 -sub_81A0DD4: @ 81A0DD4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r6, 0 - movs r2, 0 - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 30 - ldr r3, =gUnknown_030062F0 - mov r9, r3 - cmp r0, 0 - beq _081A0E14 - adds r3, r1, 0 -_081A0DF4: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x8 - bhi _081A0E14 - ldr r0, [r3] - lsls r1, r2, 2 - adds r0, r1 - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 30 - cmp r0, 0 - bne _081A0DF4 -_081A0E14: - mov r4, r9 - movs r0, 0x8 - bl AllocZeroed - adds r7, r0, 0 - str r7, [r4] - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - cmp r0, 0x2 - bne _081A0E88 - ldr r0, =gSaveBlock2Ptr - ldr r5, [r0] - adds r6, r5, 0 - adds r6, 0xB1 - ldrb r0, [r6] - lsls r1, r0, 26 - lsrs r0, r1, 28 - cmp r0, 0x2 - bls _081A0E3C - b _081A0FCE -_081A0E3C: - adds r2, r5, 0 - adds r2, 0xB4 - adds r0, r2, r0 - ldrb r0, [r0] - lsrs r4, r0, 4 - ldr r3, =gUnknown_08610970 - lsls r1, r4, 1 - adds r5, 0xB0 - ldrb r0, [r5] - movs r4, 0x58 - muls r0, r4 - adds r1, r0 - adds r3, 0x34 - adds r1, r3 - ldrh r0, [r1] - strh r0, [r7, 0x2] - ldrb r0, [r6] - lsls r0, 26 - lsrs r0, 28 - adds r2, r0 - ldrb r1, [r2] - movs r0, 0xF - ands r0, r1 - lsls r0, 1 - ldrb r1, [r5] - muls r1, r4 - adds r0, r1 - adds r0, r3 - b _081A0FCA - .pool -_081A0E88: - cmp r0, 0x3 - bne _081A0F54 - ldr r0, =gSaveBlock2Ptr - mov r8, r0 - ldr r5, [r0] - movs r1, 0xB1 - adds r1, r5 - mov r12, r1 - ldrb r0, [r1] - lsls r2, r0, 26 - lsrs r0, r2, 28 - cmp r0, 0x2 - bhi _081A0EA4 - b _081A0FCE -_081A0EA4: - adds r1, r0, 0 - adds r0, r6, 0x3 - cmp r1, r0 - blt _081A0EAE - b _081A0FCE -_081A0EAE: - adds r0, r1, 0 - subs r0, 0x3 - lsls r0, 2 - adds r0, r5, r0 - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 30 - cmp r0, 0x2 - beq _081A0EC4 - b _081A0FCE -_081A0EC4: - adds r0, r1, 0 - subs r0, 0x3 - lsls r0, 2 - adds r0, r5, r0 - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 28 - lsrs r6, r0, 30 - adds r0, r5, 0 - adds r0, 0xB2 - ldrb r1, [r0] - lsls r1, 29 - lsrs r1, 29 - asrs r1, r6 - movs r0, 0x1 - ands r1, r0 - adds r0, r5, 0 - adds r0, 0xB4 - adds r0, r6 - ldrb r4, [r0] - lsls r1, 2 - asrs r4, r1 - movs r0, 0xF - ands r4, r0 - ldr r2, =gUnknown_08610970 - lsls r1, r4, 1 - adds r0, r5, 0 - adds r0, 0xB0 - ldrb r3, [r0] - movs r0, 0x58 - muls r0, r3 - adds r1, r0 - adds r2, 0x34 - adds r1, r2 - ldrh r0, [r1] - strh r0, [r7] - mov r3, r12 - ldrb r0, [r3] - lsls r0, 26 - lsrs r0, 28 - subs r0, 0x3 - lsls r0, 2 - adds r0, r5, r0 - adds r0, 0xB8 - ldrb r2, [r0] - lsls r2, 26 - lsrs r2, 30 - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_81A0284 - mov r1, r9 - ldr r2, [r1] - strh r0, [r2, 0x4] - mov r3, r8 - ldr r1, [r3] - adds r0, r1, 0 - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - subs r0, 0x3 - lsls r0, 2 - adds r1, r0 - adds r1, 0xBA - ldrh r0, [r1] - strh r0, [r2, 0x6] - b _081A0FCE - .pool -_081A0F54: - cmp r0, 0x4 - bne _081A0FCE - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - adds r0, r3, 0 - adds r0, 0xB1 - ldrb r0, [r0] - lsls r2, r0, 26 - lsrs r0, r2, 28 - cmp r0, 0x2 - bls _081A0FCE - adds r1, r0, 0 - adds r0, r6, 0x3 - cmp r1, r0 - bge _081A0FCE - adds r0, r1, 0 - subs r0, 0x3 - lsls r0, 2 - adds r0, r3, r0 - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 30 - cmp r0, 0x1 - bne _081A0FCE - adds r0, r1, 0 - subs r0, 0x3 - lsls r0, 2 - adds r0, r3, r0 - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 28 - lsrs r6, r0, 30 - adds r0, r3, 0 - adds r0, 0xB2 - ldrb r1, [r0] - lsls r1, 29 - lsrs r1, 29 - asrs r1, r6 - movs r0, 0x1 - ands r1, r0 - adds r0, r3, 0 - adds r0, 0xB4 - adds r0, r6 - ldrb r0, [r0] - lsls r1, 2 - asrs r0, r1 - movs r1, 0xF - ands r0, r1 - ldr r2, =gUnknown_08610970 - lsls r0, 1 - adds r1, r3, 0 - adds r1, 0xB0 - ldrb r3, [r1] - movs r1, 0x58 - muls r1, r3 - adds r0, r1 - adds r2, 0x34 - adds r0, r2 -_081A0FCA: - ldrh r0, [r0] - strh r0, [r7] -_081A0FCE: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A0DD4 - - thumb_func_start sub_81A0FE4 -sub_81A0FE4: @ 81A0FE4 - push {r4,lr} - ldr r4, =gUnknown_030062F0 - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A0FE4 - - thumb_func_start sub_81A0FFC -sub_81A0FFC: @ 81A0FFC - push {r4-r6,lr} - sub sp, 0x10 - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - cmp r0, 0x1 - beq _081A1028 - cmp r0, 0x1 - bgt _081A1018 - cmp r0, 0 - beq _081A101E - b _081A11E6 - .pool -_081A1018: - cmp r0, 0x2 - beq _081A1030 - b _081A11E6 -_081A101E: - ldr r5, =gStringVar1 - b _081A1032 - .pool -_081A1028: - ldr r5, =gStringVar2 - b _081A1032 - .pool -_081A1030: - ldr r5, =gStringVar3 -_081A1032: - ldr r0, =gUnknown_020375E4 - ldrh r0, [r0] - cmp r0, 0x9 - bls _081A103C - b _081A11E6 -_081A103C: - lsls r0, 2 - ldr r1, =_081A1054 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081A1054: - .4byte _081A107C - .4byte _081A1094 - .4byte _081A10AC - .4byte _081A10C4 - .4byte _081A10DC - .4byte _081A10F4 - .4byte _081A1118 - .4byte _081A1164 - .4byte _081A1140 - .4byte _081A1184 -_081A107C: - ldr r0, =gUnknown_030062F0 - ldr r0, [r0] - ldrh r1, [r0] - movs r0, 0xB - muls r1, r0 - ldr r0, =gSpeciesNames - adds r1, r0 - b _081A1174 - .pool -_081A1094: - ldr r0, =gUnknown_030062F0 - ldr r0, [r0] - ldrh r1, [r0, 0x2] - movs r0, 0xB - muls r1, r0 - ldr r0, =gSpeciesNames - adds r1, r0 - b _081A1174 - .pool -_081A10AC: - ldr r0, =gUnknown_030062F0 - ldr r0, [r0] - ldrh r1, [r0] - movs r0, 0xB - muls r1, r0 - ldr r0, =gSpeciesNames - adds r1, r0 - b _081A1174 - .pool -_081A10C4: - ldr r0, =gUnknown_030062F0 - ldr r0, [r0] - ldrh r1, [r0, 0x4] - movs r0, 0xD - muls r1, r0 - ldr r0, =gMoveNames - adds r1, r0 - b _081A1174 - .pool -_081A10DC: - ldr r0, =gUnknown_030062F0 - ldr r0, [r0] - ldrh r1, [r0, 0x6] - movs r0, 0xD - muls r1, r0 - ldr r0, =gMoveNames - adds r1, r0 - b _081A1174 - .pool -_081A10F4: - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - subs r0, 0x3 - lsls r0, 2 - adds r1, r0 - adds r1, 0xBA - ldrh r0, [r1] - bl itemid_get_item - adds r1, r0, 0 - b _081A1174 - .pool -_081A1118: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r0, [r0] - movs r1, 0x2 - bl sub_81A1650 - adds r1, r0, 0 - mov r0, sp - movs r2, 0x2 - bl sub_81DB5E8 - adds r0, r5, 0 - mov r1, sp - bl StringCopy - b _081A11E6 - .pool -_081A1140: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB1 - ldrb r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x1 - bne _081A115C - ldr r1, =gUnknown_085EAEB1 - b _081A1174 - .pool -_081A115C: - ldr r1, =gUnknown_085EAEB8 - b _081A1174 - .pool -_081A1164: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - movs r1, 0x82 - lsls r1, 1 - adds r0, r1 - bl ConvertBattleFrontierTrainerSpeechToString - ldr r1, =gStringVar4 -_081A1174: - adds r0, r5, 0 - bl StringCopy - b _081A11E6 - .pool -_081A1184: - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - adds r1, r3, 0 - adds r1, 0xB1 - ldrb r1, [r1] - lsls r4, r1, 24 - lsrs r1, r4, 30 - adds r6, r0, 0 - cmp r1, 0x2 - bhi _081A11C0 - adds r0, r3, 0 - adds r0, 0xB4 - adds r0, r1 - ldrb r2, [r0] - adds r0, r3, 0 - adds r0, 0xB2 - ldrb r0, [r0] - lsls r0, 29 - lsrs r0, 29 - asrs r0, r1 - movs r1, 0x1 - ands r0, r1 - lsls r0, 2 - asrs r2, r0 - movs r0, 0xF - ands r2, r0 - b _081A11C2 - .pool -_081A11C0: - movs r2, 0 -_081A11C2: - ldr r3, =gUnknown_08610970 - lsls r1, r2, 1 - ldr r0, [r6] - adds r0, 0xB0 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, r0 - adds r3, 0x34 - adds r1, r3 - ldrh r1, [r1] - movs r0, 0xB - muls r1, r0 - ldr r0, =gSpeciesNames - adds r1, r0 - adds r0, r5, 0 - bl StringCopy -_081A11E6: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A0FFC - - thumb_func_start sub_81A11F8 -sub_81A11F8: @ 81A11F8 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r0, =gUnknown_020375E2 - ldrb r1, [r0] - adds r2, 0xB1 - lsls r1, 6 - ldrb r3, [r2] - movs r0, 0x3F - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - bx lr - .pool - thumb_func_end sub_81A11F8 - - thumb_func_start sub_81A1218 -sub_81A1218: @ 81A1218 - push {lr} - bl sub_81AAC28 - pop {r0} - bx r0 - thumb_func_end sub_81A1218 - - thumb_func_start sub_81A1224 -sub_81A1224: @ 81A1224 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r1, =gSaveBlock2Ptr - ldr r3, [r1] - adds r0, r3, 0 - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - adds r7, r1, 0 - cmp r0, 0x2 - bhi _081A1242 - b _081A1362 -_081A1242: - movs r5, 0 - movs r2, 0 - adds r0, r3, 0 - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 30 - ldr r1, =gUnknown_020375E2 - mov r12, r1 - ldr r1, =gUnknown_020375F0 - mov r8, r1 - cmp r0, 0 - beq _081A127C - adds r3, r7, 0 -_081A125C: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x8 - bhi _081A127C - ldr r0, [r3] - lsls r1, r2, 2 - adds r0, r1 - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 30 - cmp r0, 0 - bne _081A125C -_081A127C: - movs r4, 0 - cmp r4, r5 - bcs _081A1322 - ldr r0, [r7] - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - subs r0, 0x3 - cmp r4, r0 - bge _081A1322 - adds r6, r7, 0 - mov r9, r4 -_081A1296: - ldr r3, [r6] - lsls r0, r4, 2 - adds r2, r3, r0 - adds r0, r2, 0 - adds r0, 0xB8 - ldrb r1, [r0] - lsls r0, r1, 30 - lsrs r0, 30 - cmp r0, 0x1 - bne _081A1308 - lsrs r0, r1, 6 - cmp r0, 0 - beq _081A1308 - adds r0, r2, 0 - adds r0, 0xBA - ldrh r0, [r0] - mov r2, r12 - ldrh r2, [r2] - cmp r0, r2 - bne _081A1308 - adds r0, r3, 0 - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - subs r0, 0x3 - lsls r0, 2 - adds r0, r3, r0 - adds r0, 0xB8 - ldrb r2, [r0] - movs r1, 0x3F - ands r1, r2 - strb r1, [r0] - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - subs r0, 0x3 - lsls r0, 2 - adds r1, r0 - mov r2, r12 - ldrh r0, [r2] - adds r1, 0xBA - strh r0, [r1] - mov r1, r9 - mov r0, r8 - strh r1, [r0] - b _081A1362 - .pool -_081A1308: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcs _081A1322 - ldr r0, [r6] - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - subs r0, 0x3 - cmp r4, r0 - blt _081A1296 -_081A1322: - ldr r2, [r7] - adds r0, r2, 0 - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - subs r0, 0x3 - lsls r0, 2 - adds r2, r0 - adds r2, 0xB8 - ldrb r1, [r2] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r7] - adds r0, r1, 0 - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - subs r0, 0x3 - lsls r0, 2 - adds r1, r0 - mov r2, r12 - ldrh r0, [r2] - adds r1, 0xBA - strh r0, [r1] - movs r0, 0x1 - mov r1, r8 - strh r0, [r1] -_081A1362: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81A1224 - - thumb_func_start sub_81A1370 -sub_81A1370: @ 81A1370 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - movs r2, 0x8A - lsls r2, 1 - adds r1, r2 - ldrb r1, [r1] - adds r4, r0, 0 - cmp r1, 0xFF - beq _081A1422 - movs r5, 0 -_081A138E: - ldr r1, [r4] - adds r2, r5, 0x1 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r3, r1, r0 - movs r5, 0x8A - lsls r5, 1 - adds r0, r3, r5 - ldrb r0, [r0] - cmp r0, 0xFF - bne _081A13B8 - adds r0, r3, 0 - adds r0, 0xDC - adds r1, 0xDC - movs r2, 0x44 - bl memcpy - b _081A1422 - .pool -_081A13B8: - adds r5, r2, 0 - cmp r5, 0x2 - ble _081A138E - ldr r0, =0x0000ffff - mov r10, r0 - movs r2, 0x1 - negs r2, r2 - mov r9, r2 - movs r5, 0x1 - ldr r7, =gSaveBlock2Ptr - movs r0, 0x90 - lsls r0, 1 - mov r8, r0 - movs r6, 0x44 -_081A13D4: - ldr r0, [r7] - add r0, r8 - adds r0, 0x34 - bl sub_80842DC - adds r4, r0, 0 - ldr r0, [r7] - adds r0, 0xA - bl sub_80842DC - cmp r4, r0 - bne _081A13FC - ldr r0, [r7] - adds r0, r6 - adds r0, 0xDE - ldrb r0, [r0] - cmp r0, r10 - bge _081A13FC - mov r10, r0 - mov r9, r5 -_081A13FC: - movs r2, 0x44 - add r8, r2 - adds r6, 0x44 - adds r5, 0x1 - cmp r5, 0x3 - ble _081A13D4 - mov r5, r9 - cmp r5, 0 - ble _081A1422 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - lsls r0, r5, 4 - add r0, r9 - lsls r0, 2 - adds r0, r1, r0 - adds r0, 0xDC - adds r1, 0xDC - bl memcpy -_081A1422: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A1370 - - thumb_func_start sub_81A1438 -sub_81A1438: @ 81A1438 - push {r4,r5,lr} - ldr r4, =gSaveBlock2Ptr - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0xB0 - ldrb r0, [r0] - adds r2, 0xDC - movs r1, 0x1F - ands r1, r0 - ldrb r3, [r2] - movs r0, 0x20 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0xB1 - ldrb r1, [r0] - lsls r1, 30 - adds r2, 0xDC - lsrs r1, 25 - ldrb r3, [r2] - movs r0, 0x61 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - movs r2, 0 - ldr r0, [r4] - b _081A148C - .pool -_081A147C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x8 - bhi _081A1496 - ldr r0, [r4] - lsls r1, r2, 2 - adds r0, r1 -_081A148C: - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 30 - cmp r0, 0 - bne _081A147C -_081A1496: - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - adds r0, 0xDD - strb r2, [r0] - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0xDE - ldrb r0, [r1] - cmp r0, 0xFE - bhi _081A14AE - adds r0, 0x1 - strb r0, [r1] -_081A14AE: - ldr r0, [r4] - adds r0, 0xDD - ldrb r0, [r0] - bl sub_81A0390 - movs r2, 0 - adds r3, r4, 0 - movs r4, 0x88 - lsls r4, 1 - adds r5, r3, 0 -_081A14C2: - ldr r0, [r3] - adds r1, r0, r4 - adds r1, r2 - adds r0, 0xA - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _081A14C2 - ldr r1, [r5] - movs r2, 0x8A - lsls r2, 1 - adds r0, r1, r2 - bl StringCopy - ldr r1, [r5] - ldr r0, =gGameLanguage - ldrb r0, [r0] - ldr r2, =0x0000011b - adds r1, r2 - strb r0, [r1] - ldr r0, [r5] - adds r0, 0xDC - bl sub_8165AE8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A1438 - - thumb_func_start sub_81A150C -sub_81A150C: @ 81A150C - push {lr} - ldr r2, =gUnknown_08610970 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xDC - ldrb r0, [r0] - lsls r0, 27 - lsrs r0, 27 - movs r1, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x32 - ldrb r2, [r0] - movs r1, 0 - ldr r3, =gUnknown_085DCEDC - ldrb r0, [r3] - cmp r0, r2 - beq _081A1542 -_081A1530: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1D - bhi _081A1542 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _081A1530 -_081A1542: - cmp r1, 0x1E - beq _081A1568 - ldr r0, =gUnknown_085DCF0E - adds r0, r1, r0 - ldrb r1, [r0] - ldr r0, =0x00004010 - bl VarSet - b _081A1594 - .pool -_081A1568: - movs r1, 0 - ldr r3, =gUnknown_085DCEFA - ldrb r0, [r3] - cmp r0, r2 - beq _081A1584 -_081A1572: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x13 - bhi _081A1584 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _081A1572 -_081A1584: - cmp r1, 0x14 - beq _081A1594 - ldr r0, =gUnknown_085DCF2C - adds r0, r1, r0 - ldrb r1, [r0] - ldr r0, =0x00004010 - bl VarSet -_081A1594: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A150C - - thumb_func_start sub_81A15A4 -sub_81A15A4: @ 81A15A4 - push {lr} - ldr r2, =gUnknown_08610970 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x32 - ldrb r2, [r0] - movs r1, 0 - ldr r3, =gUnknown_085DCEDC - ldrb r0, [r3] - cmp r0, r2 - beq _081A15D6 -_081A15C4: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1D - bhi _081A15D6 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _081A15C4 -_081A15D6: - cmp r1, 0x1E - beq _081A15FC - ldr r0, =gUnknown_085DCF0E - adds r0, r1, r0 - ldrb r1, [r0] - ldr r0, =0x00004010 - bl VarSet - b _081A1628 - .pool -_081A15FC: - movs r1, 0 - ldr r3, =gUnknown_085DCEFA - ldrb r0, [r3] - cmp r0, r2 - beq _081A1618 -_081A1606: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x13 - bhi _081A1618 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _081A1606 -_081A1618: - cmp r1, 0x14 - beq _081A1628 - ldr r0, =gUnknown_085DCF2C - adds r0, r1, r0 - ldrb r1, [r0] - ldr r0, =0x00004010 - bl VarSet -_081A1628: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A15A4 - - thumb_func_start sub_81A1638 -sub_81A1638: @ 81A1638 - ldr r1, =gUnknown_020375E0 - movs r0, 0x1 - strh r0, [r1] - bx lr - .pool - thumb_func_end sub_81A1638 - - thumb_func_start sub_81A1644 -sub_81A1644: @ 81A1644 - ldr r1, =gUnknown_020375E0 - movs r0, 0x1 - strh r0, [r1] - bx lr - .pool - thumb_func_end sub_81A1644 - - thumb_func_start sub_81A1650 -sub_81A1650: @ 81A1650 - push {lr} - movs r2, 0x58 - muls r2, r0 - ldr r0, =gUnknown_08610970 - adds r2, r0 - subs r0, r1, 0x1 - cmp r0, 0x6 - bhi _081A16AC - lsls r0, 2 - ldr r1, =_081A1674 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081A1674: - .4byte _081A1690 - .4byte _081A1694 - .4byte _081A169A - .4byte _081A16A0 - .4byte _081A16A6 - .4byte _081A16AC - .4byte _081A16AC -_081A1690: - adds r0, r2, 0 - b _081A16B0 -_081A1694: - adds r0, r2, 0 - adds r0, 0x8 - b _081A16B0 -_081A169A: - adds r0, r2, 0 - adds r0, 0x10 - b _081A16B0 -_081A16A0: - adds r0, r2, 0 - adds r0, 0x18 - b _081A16B0 -_081A16A6: - adds r0, r2, 0 - adds r0, 0x20 - b _081A16B0 -_081A16AC: - adds r0, r2, 0 - adds r0, 0x28 -_081A16B0: - pop {r1} - bx r1 - thumb_func_end sub_81A1650 - - thumb_func_start sub_81A16B4 -sub_81A16B4: @ 81A16B4 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081A16CE - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081A16D4 -_081A16CE: - adds r0, r2, 0 - bl SwitchTaskToFollowupFunc -_081A16D4: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A16B4 - - thumb_func_start sub_81A16DC -sub_81A16DC: @ 81A16DC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081A16F6 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081A1718 -_081A16F6: - ldr r2, =gUnknown_030062F4 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - movs r3, 0xA - ldrsh r0, [r0, r3] - lsls r0, 16 - orrs r1, r0 - str r1, [r2] - bl _call_via_r1 - adds r0, r4, 0 - bl DestroyTask -_081A1718: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A16DC - - thumb_func_start sub_81A172C -sub_81A172C: @ 81A172C - push {r4,lr} - adds r4, r0, 0 - ldr r0, =sub_81A16DC - 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 - strh r4, [r1, 0x8] - lsrs r4, 16 - strh r4, [r1, 0xA] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A172C - - thumb_func_start sub_81A175C -sub_81A175C: @ 81A175C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, =sub_81A16B4 - adds r0, r4, 0 - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - adds r2, r5, 0 - bl SetTaskFuncWithFollowupFunc - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A175C - - thumb_func_start sub_81A1780 -sub_81A1780: @ 81A1780 - push {lr} - ldr r1, =gUnknown_08611C18 - ldr r0, =gUnknown_020375E0 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A1780 - - thumb_func_start sub_81A17A0 -sub_81A17A0: @ 81A17A0 - push {lr} - movs r0, 0x80 - lsls r0, 7 - movs r1, 0xFF - bl VarSet - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca8 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x4 - bhi _081A1822 - lsls r0, 2 - ldr r1, =_081A17D0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081A17D0: - .4byte _081A1822 - .4byte _081A17E4 - .4byte _081A1810 - .4byte _081A17EC - .4byte _081A17E8 -_081A17E4: - movs r0, 0 - b _081A17EE -_081A17E8: - movs r0, 0 - b _081A17EE -_081A17EC: - movs r0, 0x1 -_081A17EE: - bl sub_813A878 - movs r0, 0x80 - lsls r0, 7 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - ldr r2, =0x00000ca8 - adds r1, r2 - ldrb r1, [r1] - bl VarSet - b _081A1822 - .pool -_081A1810: - movs r0, 0x80 - lsls r0, 7 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - ldr r2, =0x00000ca8 - adds r1, r2 - ldrb r1, [r1] - bl VarSet -_081A1822: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A17A0 - - thumb_func_start sub_81A1830 -sub_81A1830: @ 81A1830 - push {r4-r6,lr} - ldr r0, =0x000040cf - bl VarGet - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r6, 0 - bl sub_81A3B30 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bne _081A184C - movs r5, 0x1 -_081A184C: - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - cmp r0, 0x7 - bls _081A1856 - b _081A1956 -_081A1856: - lsls r0, 2 - ldr r1, =_081A186C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081A186C: - .4byte _081A188C - .4byte _081A18A8 - .4byte _081A18C8 - .4byte _081A18E4 - .4byte _081A1956 - .4byte _081A1900 - .4byte _081A1918 - .4byte _081A1938 -_081A188C: - ldr r1, =gUnknown_020375F0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000ca8 - adds r0, r2 - ldrb r0, [r0] - strh r0, [r1] - b _081A1956 - .pool -_081A18A8: - ldr r1, =gUnknown_020375F0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000ca9 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 30 - strh r0, [r1] - b _081A1956 - .pool -_081A18C8: - ldr r1, =gUnknown_020375F0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000cb2 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - b _081A1956 - .pool -_081A18E4: - ldr r1, =gUnknown_020375F0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000ca9 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 29 - b _081A1926 - .pool -_081A1900: - ldr r2, =gUnknown_020375F0 - ldr r1, =gUnknown_0202433A - ldrb r0, [r1] - strh r0, [r2] - movs r0, 0 - strb r0, [r1] - b _081A1956 - .pool -_081A1918: - ldr r1, =gUnknown_020375F0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000ca9 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 28 -_081A1926: - lsrs r0, 31 - strh r0, [r1] - b _081A1956 - .pool -_081A1938: - ldr r4, =gUnknown_020375F0 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - movs r0, 0xD0 - lsls r0, 4 - adds r2, r0 - ldr r3, =gUnknown_08611BFC - lsls r0, r5, 1 - lsls r1, r6, 2 - adds r0, r1 - adds r0, r3 - ldrh r1, [r2] - ldrh r0, [r0] - ands r0, r1 - strh r0, [r4] -_081A1956: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A1830 - - thumb_func_start sub_81A1968 -sub_81A1968: @ 81A1968 - push {r4,r5,lr} - ldr r0, =0x000040cf - bl VarGet - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl sub_81A3B30 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bne _081A1984 - movs r4, 0x1 -_081A1984: - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - cmp r0, 0x7 - bls _081A198E - b _081A1AC4 -_081A198E: - lsls r0, 2 - ldr r1, =_081A19A4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081A19A4: - .4byte _081A19C4 - .4byte _081A19E0 - .4byte _081A1A0C - .4byte _081A1A28 - .4byte _081A1A50 - .4byte _081A1AC4 - .4byte _081A1A7C - .4byte _081A1AA8 -_081A19C4: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =gUnknown_020375E4 - ldrh r1, [r1] - ldr r2, =0x00000ca8 - adds r0, r2 - strb r1, [r0] - b _081A1AC4 - .pool -_081A19E0: - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r0, =gUnknown_020375E4 - ldrb r0, [r0] - ldr r1, =0x00000ca9 - adds r2, r1 - movs r1, 0x3 - ands r1, r0 - ldrb r3, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - b _081A1AC4 - .pool -_081A1A0C: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =gUnknown_020375E4 - ldrh r1, [r1] - ldr r2, =0x00000cb2 - adds r0, r2 - strh r1, [r0] - b _081A1AC4 - .pool -_081A1A28: - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r0, =gUnknown_020375E4 - ldrb r0, [r0] - ldr r1, =0x00000ca9 - adds r3, r1 - movs r1, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - b _081A1A94 - .pool -_081A1A50: - movs r2, 0 - ldr r5, =gSaveBlock2Ptr - ldr r4, =0x00000caa - ldr r3, =gUnknown_0203CEF8 -_081A1A58: - ldr r1, [r5] - lsls r0, r2, 1 - adds r1, r4 - adds r1, r0 - adds r0, r2, r3 - ldrb r0, [r0] - strh r0, [r1] - adds r2, 0x1 - cmp r2, 0x3 - ble _081A1A58 - b _081A1AC4 - .pool -_081A1A7C: - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r0, =gUnknown_020375E4 - ldrb r0, [r0] - ldr r2, =0x00000ca9 - adds r3, r2 - movs r1, 0x1 - ands r1, r0 - lsls r1, 3 - ldrb r2, [r3] - movs r0, 0x9 - negs r0, r0 -_081A1A94: - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _081A1AC4 - .pool -_081A1AA8: - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - movs r0, 0xD0 - lsls r0, 4 - adds r2, r0 - ldr r3, =gUnknown_08611BFC - lsls r1, r4, 1 - lsls r0, r5, 2 - adds r1, r0 - adds r1, r3 - ldrh r0, [r2] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2] -_081A1AC4: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A1968 - - thumb_func_start sub_81A1AD4 -sub_81A1AD4: @ 81A1AD4 - push {r4-r7,lr} - bl sub_81B8558 - movs r3, 0 - ldr r4, =gUnknown_020375E2 - ldrh r0, [r4] - cmp r3, r0 - bge _081A1B00 - ldr r7, =gUnknown_0203CEF8 - ldr r6, =gSaveBlock2Ptr - ldr r5, =0x00000caa -_081A1AEA: - adds r2, r3, r7 - ldr r0, [r6] - lsls r1, r3, 1 - adds r0, r5 - adds r0, r1 - ldrh r0, [r0] - strb r0, [r2] - adds r3, 0x1 - ldrh r0, [r4] - cmp r3, r0 - blt _081A1AEA -_081A1B00: - bl sub_80F94E8 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A1AD4 - - thumb_func_start sub_81A1B1C -sub_81A1B1C: @ 81A1B1C - push {lr} - bl DoSoftReset - pop {r0} - bx r0 - thumb_func_end sub_81A1B1C - - thumb_func_start sub_81A1B28 -sub_81A1B28: @ 81A1B28 - ldr r1, =gUnknown_0203BC88 - ldr r0, =gBattleFrontierTrainers - str r0, [r1] - bx lr - .pool - thumb_func_end sub_81A1B28 - - thumb_func_start sub_81A1B38 -sub_81A1B38: @ 81A1B38 - push {r4,r5,lr} - movs r4, 0 - movs r5, 0x64 -_081A1B3E: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r4, 1 - ldr r2, =0x00000caa - adds r0, r2 - adds r1, r0, r1 - ldrh r0, [r1] - subs r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x5 - bhi _081A1B76 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r1] - subs r1, 0x1 - muls r1, r5 - adds r0, r1 - movs r1, 0x8E - lsls r1, 2 - adds r0, r1 - ldr r2, =gPlayerParty - adds r1, r4, 0 - muls r1, r5 - adds r1, r2 - movs r2, 0x64 - bl memcpy -_081A1B76: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _081A1B3E - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A1B38 - - thumb_func_start sub_81A1B98 -sub_81A1B98: @ 81A1B98 - push {lr} - ldr r0, =gUnknown_020375E4 - ldrh r1, [r0] - adds r2, r0, 0 - cmp r1, 0x3 - bls _081A1BA8 - movs r0, 0 - strh r0, [r2] -_081A1BA8: - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - cmp r0, 0x7 - bhi _081A1C1E - lsls r0, 2 - ldr r1, =_081A1BC8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081A1BC8: - .4byte _081A1BE8 - .4byte _081A1BF0 - .4byte _081A1BF8 - .4byte _081A1C0E - .4byte _081A1C06 - .4byte _081A1C00 - .4byte _081A1C14 - .4byte _081A1C1A -_081A1BE8: - ldrb r0, [r2] - bl sub_81A1EA8 - b _081A1C1E -_081A1BF0: - ldrb r0, [r2] - bl sub_81A2134 - b _081A1C1E -_081A1BF8: - ldrb r0, [r2] - bl sub_81A2460 - b _081A1C1E -_081A1C00: - bl sub_81A2698 - b _081A1C1E -_081A1C06: - ldrb r0, [r2] - bl sub_81A2C94 - b _081A1C1E -_081A1C0E: - bl sub_81A2968 - b _081A1C1E -_081A1C14: - bl sub_81A2F38 - b _081A1C1E -_081A1C1A: - bl sub_81A2FF8 -_081A1C1E: - pop {r0} - bx r0 - thumb_func_end sub_81A1B98 - - thumb_func_start sub_81A1C24 -sub_81A1C24: @ 81A1C24 - push {lr} - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - ldr r2, =0x00000cdc - adds r1, r2 - ldr r1, [r1] - ands r1, r0 - cmp r1, 0 - bne _081A1C44 - movs r0, 0 - b _081A1C46 - .pool -_081A1C44: - movs r0, 0x1 -_081A1C46: - pop {r1} - bx r1 - thumb_func_end sub_81A1C24 - - thumb_func_start sub_81A1C4C -sub_81A1C4C: @ 81A1C4C - push {r4,r5,lr} - sub sp, 0xC - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0xE0 - bl GetStringCenterAlignXOffset - adds r3, r0, 0 - lsls r0, r5, 3 - adds r5, r0, 0x1 - ldr r0, =gUnknown_0203AB74 - ldrb r0, [r0] - lsls r3, 24 - lsrs r3, 24 - lsls r1, r5, 24 - lsrs r1, 24 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x1 - adds r2, r4, 0 - bl Print - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A1C4C - - thumb_func_start sub_81A1C90 -sub_81A1C90: @ 81A1C90 - push {r4,lr} - sub sp, 0x34 - adds r2, r0, 0 - ldr r3, =gUnknown_0203AB74 - movs r1, 0xAE - mov r0, sp - adds r0, 0x2F -_081A1C9E: - strb r1, [r0] - subs r0, 0x1 - add r4, sp, 0xC - cmp r0, r4 - bge _081A1C9E - add r1, sp, 0x30 - movs r0, 0xFF - strb r0, [r1] - lsls r0, r2, 3 - adds r2, r0, 0x1 - ldrb r0, [r3] - lsls r1, r2, 24 - lsrs r1, 24 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0x4 - bl Print - add sp, 0x34 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A1C90 - - thumb_func_start sub_81A1CD8 -sub_81A1CD8: @ 81A1CD8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - adds r5, r0, 0 - adds r4, r2, 0 - ldr r0, [sp, 0x30] - lsls r1, 16 - lsrs r6, r1, 16 - lsls r4, 24 - lsrs r4, 24 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0xC] - lsls r0, 24 - lsrs r0, 24 - adds r7, r0, 0 - ldr r0, =gUnknown_0203AB74 - mov r10, r0 - ldrb r0, [r0] - str r7, [sp] - movs r1, 0xFF - mov r9, r1 - str r1, [sp, 0x4] - movs r1, 0 - mov r8, r1 - str r1, [sp, 0x8] - movs r1, 0x1 - adds r2, r5, 0 - adds r3, r4, 0 - bl Print - ldr r0, =0x0000270f - cmp r6, r0 - bls _081A1D24 - adds r6, r0, 0 -_081A1D24: - ldr r0, =gStringVar1 - adds r1, r6, 0 - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EE302 - adds r0, r4, 0 - bl StringExpandPlaceholders - mov r1, r10 - ldrb r0, [r1] - str r7, [sp] - mov r1, r9 - str r1, [sp, 0x4] - mov r1, r8 - str r1, [sp, 0x8] - movs r1, 0x1 - adds r2, r4, 0 - ldr r3, [sp, 0xC] - bl Print - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A1CD8 - - thumb_func_start sub_81A1D78 -sub_81A1D78: @ 81A1D78 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, [sp, 0x10] - lsls r0, 24 - lsls r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r4, =gSaveBlock2Ptr - ldr r4, [r4] - lsrs r1, 23 - lsrs r0, 22 - adds r1, r0 - movs r0, 0xCF - lsls r0, 4 - adds r4, r0 - adds r4, r1 - ldrh r1, [r4] - ldr r0, =gUnknown_085EE319 - str r5, [sp] - bl sub_81A1CD8 - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A1D78 - - thumb_func_start sub_81A1DBC -sub_81A1DBC: @ 81A1DBC - push {lr} - lsls r0, 24 - lsls r1, 24 - ldr r2, =gSaveBlock2Ptr - ldr r2, [r2] - lsrs r1, 23 - lsrs r0, 22 - adds r1, r0 - movs r0, 0xCE - lsls r0, 4 - adds r2, r0 - adds r2, r1 - ldrh r0, [r2] - ldr r1, =0x0000270f - cmp r0, r1 - bls _081A1DDE - adds r0, r1, 0 -_081A1DDE: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A1DBC - - thumb_func_start sub_81A1DEC -sub_81A1DEC: @ 81A1DEC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - ldr r4, [sp, 0x20] - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - lsls r3, 24 - lsrs r3, 24 - mov r9, r3 - lsls r4, 24 - lsrs r7, r4, 24 - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_81A1DBC - lsls r0, 16 - lsrs r4, r0, 16 - cmp r5, 0x1 - beq _081A1E38 - cmp r5, 0x1 - ble _081A1E2C - cmp r5, 0x2 - beq _081A1E48 - cmp r5, 0x3 - beq _081A1E58 -_081A1E2C: - cmp r6, 0 - beq _081A1E34 - movs r0, 0x2 - b _081A1E66 -_081A1E34: - movs r0, 0x1 - b _081A1E66 -_081A1E38: - cmp r6, 0 - beq _081A1E42 - movs r0, 0x80 - lsls r0, 8 - b _081A1E66 -_081A1E42: - movs r0, 0x80 - lsls r0, 7 - b _081A1E66 -_081A1E48: - cmp r6, 0 - beq _081A1E52 - movs r0, 0x80 - lsls r0, 10 - b _081A1E66 -_081A1E52: - movs r0, 0x80 - lsls r0, 9 - b _081A1E66 -_081A1E58: - cmp r6, 0 - beq _081A1E62 - movs r0, 0x80 - lsls r0, 12 - b _081A1E66 -_081A1E62: - movs r0, 0x80 - lsls r0, 11 -_081A1E66: - bl sub_81A1C24 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081A1E88 - ldr r0, =gUnknown_085EE311 - str r7, [sp] - adds r1, r4, 0 - mov r2, r8 - mov r3, r9 - bl sub_81A1CD8 - b _081A1E96 - .pool -_081A1E88: - ldr r0, =gUnknown_085EE320 - str r7, [sp] - adds r1, r4, 0 - mov r2, r8 - mov r3, r9 - bl sub_81A1CD8 -_081A1E96: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A1DEC - - thumb_func_start sub_81A1EA8 -sub_81A1EA8: @ 81A1EA8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xC - lsls r0, 24 - lsrs r7, r0, 24 - ldr r4, =gUnknown_0203AB74 - ldr r0, =gUnknown_08611C74 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, 0 - bl sub_81973FC - ldrb r0, [r4] - movs r1, 0x11 - bl FillWindowPixelBuffer - cmp r7, 0 - bne _081A1EF0 - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EE158 - bl StringExpandPlaceholders - b _081A1F28 - .pool -_081A1EF0: - cmp r7, 0x1 - bne _081A1F08 - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EE178 - bl StringExpandPlaceholders - b _081A1F28 - .pool -_081A1F08: - cmp r7, 0x2 - bne _081A1F20 - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EE198 - bl StringExpandPlaceholders - b _081A1F28 - .pool -_081A1F20: - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EE1B7 - bl StringExpandPlaceholders -_081A1F28: - ldr r0, =gStringVar4 - movs r1, 0x2 - bl sub_81A1C4C - ldr r6, =gUnknown_0203AB74 - ldrb r0, [r6] - ldr r2, =gUnknown_085EE2F2 - movs r1, 0x31 - mov r8, r1 - str r1, [sp] - movs r5, 0xFF - str r5, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x10 - bl Print - ldrb r0, [r6] - ldr r2, =gUnknown_085EE2F9 - movs r1, 0x61 - mov r9, r1 - str r1, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x10 - bl Print - movs r0, 0xA - bl sub_81A1C90 - mov r0, r8 - str r0, [sp] - adds r0, r7, 0 - movs r1, 0 - movs r2, 0x48 - movs r3, 0x84 - bl sub_81A1DEC - movs r0, 0x41 - str r0, [sp] - adds r0, r7, 0 - movs r1, 0 - movs r2, 0x48 - movs r3, 0x84 - bl sub_81A1D78 - mov r1, r9 - str r1, [sp] - adds r0, r7, 0 - movs r1, 0x1 - movs r2, 0x48 - movs r3, 0x84 - bl sub_81A1DEC - movs r0, 0x71 - str r0, [sp] - adds r0, r7, 0 - movs r1, 0x1 - movs r2, 0x48 - movs r3, 0x84 - bl sub_81A1D78 - ldrb r0, [r6] - bl PutWindowTilemap - ldrb r0, [r6] - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A1EA8 - - thumb_func_start sub_81A1FD8 -sub_81A1FD8: @ 81A1FD8 - push {lr} - lsls r0, 24 - lsls r1, 24 - ldr r2, =gSaveBlock2Ptr - ldr r2, [r2] - lsrs r1, 23 - lsrs r0, 22 - adds r1, r0 - ldr r0, =0x00000d0c - adds r2, r0 - adds r2, r1 - ldrh r0, [r2] - ldr r1, =0x0000270f - cmp r0, r1 - bls _081A1FF8 - adds r0, r1, 0 -_081A1FF8: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A1FD8 - - thumb_func_start sub_81A2008 -sub_81A2008: @ 81A2008 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - mov r12, r0 - adds r7, r1, 0 - adds r4, r2, 0 - ldr r6, [sp, 0x2C] - ldr r5, [sp, 0x30] - lsls r4, 16 - lsrs r4, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r0, =gUnknown_0203AB74 - mov r10, r0 - ldrb r0, [r0] - str r5, [sp] - movs r1, 0xFF - mov r9, r1 - str r1, [sp, 0x4] - movs r1, 0 - mov r8, r1 - str r1, [sp, 0x8] - movs r1, 0x1 - mov r2, r12 - bl Print - ldr r0, =gStringVar1 - adds r1, r4, 0 - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - adds r0, r4, 0 - adds r1, r7, 0 - bl StringExpandPlaceholders - mov r1, r10 - ldrb r0, [r1] - str r5, [sp] - mov r1, r9 - str r1, [sp, 0x4] - mov r1, r8 - str r1, [sp, 0x8] - movs r1, 0x1 - adds r2, r4, 0 - adds r3, r6, 0 - bl Print - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A2008 - - thumb_func_start sub_81A2094 -sub_81A2094: @ 81A2094 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - ldr r4, [sp, 0x24] - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - lsls r3, 24 - lsrs r7, r3, 24 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_81A1FD8 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r5, 0 - beq _081A20CC - cmp r5, 0x1 - beq _081A20D8 -_081A20CC: - cmp r6, 0 - beq _081A20D4 - movs r0, 0x8 - b _081A20E6 -_081A20D4: - movs r0, 0x4 - b _081A20E6 -_081A20D8: - cmp r6, 0 - beq _081A20E2 - movs r0, 0x80 - lsls r0, 14 - b _081A20E6 -_081A20E2: - movs r0, 0x80 - lsls r0, 13 -_081A20E6: - bl sub_81A1C24 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081A210C - ldr r0, =gUnknown_085EE311 - ldr r1, =gUnknown_085EE338 - str r7, [sp] - str r4, [sp, 0x4] - mov r2, r8 - mov r3, r9 - bl sub_81A2008 - b _081A211C - .pool -_081A210C: - ldr r0, =gUnknown_085EE320 - ldr r1, =gUnknown_085EE338 - str r7, [sp] - str r4, [sp, 0x4] - mov r2, r8 - mov r3, r9 - bl sub_81A2008 -_081A211C: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A2094 - - thumb_func_start sub_81A2134 -sub_81A2134: @ 81A2134 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r7, r0, 24 - ldr r4, =gUnknown_0203AB74 - ldr r0, =gUnknown_08611C74 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, 0 - bl sub_81973FC - ldrb r0, [r4] - movs r1, 0x11 - bl FillWindowPixelBuffer - cmp r7, 0 - bne _081A217C - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EE1DB - bl StringExpandPlaceholders - b _081A2184 - .pool -_081A217C: - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EE1FE - bl StringExpandPlaceholders -_081A2184: - ldr r0, =gStringVar4 - movs r1, 0 - bl sub_81A1C4C - ldr r1, =gUnknown_0203AB74 - ldrb r0, [r1] - ldr r2, =gUnknown_085EE2F2 - movs r6, 0x21 - str r6, [sp] - movs r5, 0xFF - str r5, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x8 - bl Print - ldr r1, =gUnknown_0203AB74 - ldrb r0, [r1] - ldr r2, =gUnknown_085EE2F9 - movs r1, 0x61 - str r1, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x8 - bl Print - movs r0, 0xA - bl sub_81A1C90 - str r6, [sp] - adds r0, r7, 0 - movs r1, 0 - movs r2, 0x40 - movs r3, 0x79 - bl sub_81A2094 - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - lsls r5, r7, 2 - ldr r1, =0x00000d14 - adds r0, r1 - adds r0, r5 - ldrh r2, [r0] - movs r0, 0x79 - mov r9, r0 - str r0, [sp] - movs r0, 0x31 - str r0, [sp, 0x4] - ldr r0, =gUnknown_085EE319 - ldr r1, =gUnknown_085EE338 - movs r3, 0x40 - bl sub_81A2008 - ldr r1, =gUnknown_085EE332 - mov r10, r1 - ldr r0, =gUnknown_085EE349 - mov r8, r0 - ldr r0, [r4] - ldr r1, =0x00000d1c - adds r0, r1 - adds r0, r5 - ldrh r2, [r0] - movs r6, 0x70 - str r6, [sp] - movs r0, 0x41 - str r0, [sp, 0x4] - mov r0, r10 - mov r1, r8 - movs r3, 0x40 - bl sub_81A2008 - movs r0, 0x61 - str r0, [sp] - adds r0, r7, 0 - movs r1, 0x1 - movs r2, 0x40 - movs r3, 0x79 - bl sub_81A2094 - ldr r0, [r4] - ldr r1, =0x00000d16 - adds r0, r1 - adds r0, r5 - ldrh r2, [r0] - mov r0, r9 - str r0, [sp] - movs r0, 0x71 - str r0, [sp, 0x4] - ldr r0, =gUnknown_085EE319 - ldr r1, =gUnknown_085EE338 - movs r3, 0x40 - bl sub_81A2008 - ldr r0, [r4] - ldr r1, =0x00000d1e - adds r0, r1 - adds r0, r5 - ldrh r2, [r0] - str r6, [sp] - movs r0, 0x81 - str r0, [sp, 0x4] - mov r0, r10 - mov r1, r8 - movs r3, 0x40 - bl sub_81A2008 - ldr r1, =gUnknown_0203AB74 - ldrb r0, [r1] - bl PutWindowTilemap - ldr r1, =gUnknown_0203AB74 - ldrb r0, [r1] - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A2134 - - thumb_func_start sub_81A22B8 -sub_81A22B8: @ 81A22B8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - adds r5, r0, 0 - adds r4, r2, 0 - ldr r0, [sp, 0x30] - lsls r1, 16 - lsrs r6, r1, 16 - lsls r4, 24 - lsrs r4, 24 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0xC] - lsls r0, 24 - lsrs r0, 24 - adds r7, r0, 0 - ldr r0, =gUnknown_0203AB74 - mov r10, r0 - ldrb r0, [r0] - str r7, [sp] - movs r1, 0xFF - mov r9, r1 - str r1, [sp, 0x4] - movs r1, 0 - mov r8, r1 - str r1, [sp, 0x8] - movs r1, 0x1 - adds r2, r5, 0 - adds r3, r4, 0 - bl Print - ldr r0, =0x0000270f - cmp r6, r0 - bls _081A2304 - adds r6, r0, 0 -_081A2304: - ldr r0, =gStringVar1 - adds r1, r6, 0 - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EE302 - adds r0, r4, 0 - bl StringExpandPlaceholders - mov r1, r10 - ldrb r0, [r1] - str r7, [sp] - mov r1, r9 - str r1, [sp, 0x4] - mov r1, r8 - str r1, [sp, 0x8] - movs r1, 0x1 - adds r2, r4, 0 - ldr r3, [sp, 0xC] - bl Print - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A22B8 - - thumb_func_start sub_81A2358 -sub_81A2358: @ 81A2358 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, [sp, 0x10] - lsls r0, 24 - lsls r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r4, =gSaveBlock2Ptr - ldr r4, [r4] - lsrs r1, 23 - lsrs r0, 22 - adds r1, r0 - movs r0, 0xDD - lsls r0, 4 - adds r4, r0 - adds r4, r1 - ldrh r1, [r4] - ldr r0, =gUnknown_085EE319 - str r5, [sp] - bl sub_81A22B8 - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A2358 - - thumb_func_start sub_81A239C -sub_81A239C: @ 81A239C - push {lr} - lsls r0, 24 - lsls r1, 24 - ldr r2, =gSaveBlock2Ptr - ldr r2, [r2] - lsrs r1, 23 - lsrs r0, 22 - adds r1, r0 - ldr r0, =0x00000dc8 - adds r2, r0 - adds r2, r1 - ldrh r0, [r2] - ldr r1, =0x0000270f - cmp r0, r1 - bls _081A23BC - adds r0, r1, 0 -_081A23BC: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A239C - - thumb_func_start sub_81A23CC -sub_81A23CC: @ 81A23CC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - ldr r4, [sp, 0x20] - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - lsls r3, 24 - lsrs r3, 24 - mov r9, r3 - lsls r4, 24 - lsrs r7, r4, 24 - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_81A239C - lsls r0, 16 - lsrs r4, r0, 16 - cmp r5, 0 - beq _081A2404 - cmp r5, 0x1 - beq _081A2410 -_081A2404: - cmp r6, 0 - beq _081A240C - movs r0, 0x20 - b _081A241E -_081A240C: - movs r0, 0x10 - b _081A241E -_081A2410: - cmp r6, 0 - beq _081A241A - movs r0, 0x80 - lsls r0, 16 - b _081A241E -_081A241A: - movs r0, 0x80 - lsls r0, 15 -_081A241E: - bl sub_81A1C24 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081A2440 - ldr r0, =gUnknown_085EE311 - str r7, [sp] - adds r1, r4, 0 - mov r2, r8 - mov r3, r9 - bl sub_81A22B8 - b _081A244E - .pool -_081A2440: - ldr r0, =gUnknown_085EE320 - str r7, [sp] - adds r1, r4, 0 - mov r2, r8 - mov r3, r9 - bl sub_81A22B8 -_081A244E: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A23CC - - thumb_func_start sub_81A2460 -sub_81A2460: @ 81A2460 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xC - lsls r0, 24 - lsrs r7, r0, 24 - ldr r4, =gUnknown_0203AB74 - ldr r0, =gUnknown_08611C74 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, 0 - bl sub_81973FC - ldrb r0, [r4] - movs r1, 0x11 - bl FillWindowPixelBuffer - cmp r7, 0 - bne _081A24A8 - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EE221 - bl StringExpandPlaceholders - b _081A24B0 - .pool -_081A24A8: - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EE241 - bl StringExpandPlaceholders -_081A24B0: - ldr r0, =gStringVar4 - movs r1, 0x2 - bl sub_81A1C4C - ldr r6, =gUnknown_0203AB74 - ldrb r0, [r6] - ldr r2, =gUnknown_085EE2F2 - movs r1, 0x31 - mov r8, r1 - str r1, [sp] - movs r5, 0xFF - str r5, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x10 - bl Print - ldrb r0, [r6] - ldr r2, =gUnknown_085EE2F9 - movs r1, 0x61 - mov r9, r1 - str r1, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x10 - bl Print - movs r0, 0xA - bl sub_81A1C90 - mov r0, r8 - str r0, [sp] - adds r0, r7, 0 - movs r1, 0 - movs r2, 0x48 - movs r3, 0x83 - bl sub_81A23CC - movs r0, 0x41 - str r0, [sp] - adds r0, r7, 0 - movs r1, 0 - movs r2, 0x48 - movs r3, 0x83 - bl sub_81A2358 - mov r1, r9 - str r1, [sp] - adds r0, r7, 0 - movs r1, 0x1 - movs r2, 0x48 - movs r3, 0x83 - bl sub_81A23CC - movs r0, 0x71 - str r0, [sp] - adds r0, r7, 0 - movs r1, 0x1 - movs r2, 0x48 - movs r3, 0x83 - bl sub_81A2358 - ldrb r0, [r6] - bl PutWindowTilemap - ldrb r0, [r6] - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A2460 - - thumb_func_start sub_81A2560 -sub_81A2560: @ 81A2560 - push {lr} - lsls r0, 24 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - lsrs r0, 23 - ldr r2, =0x00000e04 - adds r1, r2 - adds r1, r0 - ldrh r0, [r1] - ldr r1, =0x0000270f - cmp r0, r1 - bls _081A257A - adds r0, r1, 0 -_081A257A: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A2560 - - thumb_func_start sub_81A258C -sub_81A258C: @ 81A258C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - mov r12, r0 - adds r7, r1, 0 - adds r4, r2, 0 - ldr r6, [sp, 0x2C] - ldr r5, [sp, 0x30] - lsls r4, 16 - lsrs r4, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r0, =gUnknown_0203AB74 - mov r10, r0 - ldrb r0, [r0] - str r5, [sp] - movs r1, 0xFF - mov r9, r1 - str r1, [sp, 0x4] - movs r1, 0 - mov r8, r1 - str r1, [sp, 0x8] - movs r1, 0x1 - mov r2, r12 - bl Print - ldr r0, =gStringVar1 - adds r1, r4, 0 - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - adds r0, r4, 0 - adds r1, r7, 0 - bl StringExpandPlaceholders - mov r1, r10 - ldrb r0, [r1] - str r5, [sp] - mov r1, r9 - str r1, [sp, 0x4] - mov r1, r8 - str r1, [sp, 0x8] - movs r1, 0x1 - adds r2, r4, 0 - adds r3, r6, 0 - bl Print - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A258C - - thumb_func_start sub_81A2618 -sub_81A2618: @ 81A2618 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r2, 24 - lsrs r5, r2, 24 - lsls r3, 24 - lsrs r6, r3, 24 - adds r0, r4, 0 - bl sub_81A2560 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r4, 0 - beq _081A2648 - movs r0, 0x80 - lsls r0, 4 - b _081A264C -_081A2648: - movs r0, 0x80 - lsls r0, 3 -_081A264C: - bl sub_81A1C24 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081A2674 - ldr r0, =gUnknown_085EE311 - ldr r1, =gUnknown_085EE35B - str r5, [sp] - str r6, [sp, 0x4] - adds r2, r7, 0 - mov r3, r8 - bl sub_81A2008 - b _081A2684 - .pool -_081A2674: - ldr r0, =gUnknown_085EE320 - ldr r1, =gUnknown_085EE35B - str r5, [sp] - str r6, [sp, 0x4] - adds r2, r7, 0 - mov r3, r8 - bl sub_81A2008 -_081A2684: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A2618 - - thumb_func_start sub_81A2698 -sub_81A2698: @ 81A2698 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - ldr r6, =gUnknown_0203AB74 - ldr r0, =gUnknown_08611C74 - bl AddWindow - strb r0, [r6] - ldrb r0, [r6] - movs r1, 0 - bl sub_81973FC - ldrb r0, [r6] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EE261 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0 - bl sub_81A1C4C - ldrb r0, [r6] - ldr r2, =gUnknown_085EE2F2 - movs r1, 0x21 - str r1, [sp] - movs r5, 0xFF - str r5, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x8 - bl Print - ldrb r0, [r6] - ldr r2, =gUnknown_085EE2F9 - movs r1, 0x61 - str r1, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x8 - bl Print - movs r0, 0xA - bl sub_81A1C90 - movs r0, 0 - movs r1, 0x40 - movs r2, 0x72 - movs r3, 0x21 - bl sub_81A2618 - ldr r0, =gUnknown_085EE319 - mov r10, r0 - ldr r7, =gUnknown_085EE35B - ldr r5, =gSaveBlock2Ptr - ldr r0, [r5] - ldr r1, =0x00000e08 - adds r0, r1 - ldrh r2, [r0] - movs r4, 0x72 - str r4, [sp] - movs r0, 0x31 - str r0, [sp, 0x4] - mov r0, r10 - adds r1, r7, 0 - movs r3, 0x40 - bl sub_81A258C - ldr r0, =gUnknown_085EE332 - mov r8, r0 - ldr r1, =gUnknown_085EE36D - mov r9, r1 - ldr r0, [r5] - ldr r1, =0x00000e0c - adds r0, r1 - ldrh r2, [r0] - str r4, [sp] - movs r0, 0x41 - str r0, [sp, 0x4] - mov r0, r8 - mov r1, r9 - movs r3, 0x40 - bl sub_81A258C - movs r0, 0x1 - movs r1, 0x40 - movs r2, 0x72 - movs r3, 0x61 - bl sub_81A2618 - ldr r0, [r5] - ldr r1, =0x00000e0a - adds r0, r1 - ldrh r2, [r0] - str r4, [sp] - movs r0, 0x71 - str r0, [sp, 0x4] - mov r0, r10 - adds r1, r7, 0 - movs r3, 0x40 - bl sub_81A258C - ldr r0, [r5] - ldr r1, =0x00000e0e - adds r0, r1 - ldrh r2, [r0] - str r4, [sp] - movs r0, 0x81 - str r0, [sp, 0x4] - mov r0, r8 - mov r1, r9 - movs r3, 0x40 - bl sub_81A258C - ldrb r0, [r6] - bl PutWindowTilemap - ldrb r0, [r6] - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A2698 - - thumb_func_start sub_81A27E8 -sub_81A27E8: @ 81A27E8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - adds r5, r0, 0 - adds r4, r2, 0 - ldr r0, [sp, 0x30] - lsls r1, 16 - lsrs r6, r1, 16 - lsls r4, 24 - lsrs r4, 24 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0xC] - lsls r0, 24 - lsrs r0, 24 - adds r7, r0, 0 - ldr r0, =gUnknown_0203AB74 - mov r10, r0 - ldrb r0, [r0] - str r7, [sp] - movs r1, 0xFF - mov r9, r1 - str r1, [sp, 0x4] - movs r1, 0 - mov r8, r1 - str r1, [sp, 0x8] - movs r1, 0x1 - adds r2, r5, 0 - adds r3, r4, 0 - bl Print - ldr r0, =0x0000270f - cmp r6, r0 - bls _081A2834 - adds r6, r0, 0 -_081A2834: - ldr r0, =gStringVar1 - adds r1, r6, 0 - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EE381 - adds r0, r4, 0 - bl StringExpandPlaceholders - mov r1, r10 - ldrb r0, [r1] - str r7, [sp] - mov r1, r9 - str r1, [sp, 0x4] - mov r1, r8 - str r1, [sp, 0x8] - movs r1, 0x1 - adds r2, r4, 0 - ldr r3, [sp, 0xC] - bl Print - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A27E8 - - thumb_func_start sub_81A2888 -sub_81A2888: @ 81A2888 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r1, 0 - adds r5, r2, 0 - lsls r0, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r3, 24 - lsrs r3, 24 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - lsrs r0, 23 - ldr r2, =0x00000dde - adds r1, r2 - adds r1, r0 - ldrh r1, [r1] - ldr r0, =gUnknown_085EE319 - str r3, [sp] - adds r2, r4, 0 - adds r3, r5, 0 - bl sub_81A27E8 - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A2888 - - thumb_func_start sub_81A28CC -sub_81A28CC: @ 81A28CC - push {lr} - lsls r0, 24 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - lsrs r0, 23 - ldr r2, =0x00000dda - adds r1, r2 - adds r1, r0 - ldrh r0, [r1] - ldr r1, =0x0000270f - cmp r0, r1 - bls _081A28E6 - adds r0, r1, 0 -_081A28E6: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A28CC - - thumb_func_start sub_81A28F8 -sub_81A28F8: @ 81A28F8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - lsls r3, 24 - lsrs r6, r3, 24 - adds r0, r4, 0 - bl sub_81A28CC - lsls r0, 16 - lsrs r5, r0, 16 - cmp r4, 0 - beq _081A2926 - movs r0, 0x80 - b _081A2928 -_081A2926: - movs r0, 0x40 -_081A2928: - bl sub_81A1C24 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081A2948 - ldr r0, =gUnknown_085EE311 - str r6, [sp] - adds r1, r5, 0 - adds r2, r7, 0 - mov r3, r8 - bl sub_81A27E8 - b _081A2956 - .pool -_081A2948: - ldr r0, =gUnknown_085EE320 - str r6, [sp] - adds r1, r5, 0 - adds r2, r7, 0 - mov r3, r8 - bl sub_81A27E8 -_081A2956: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A28F8 - - thumb_func_start sub_81A2968 -sub_81A2968: @ 81A2968 - push {r4-r6,lr} - sub sp, 0xC - ldr r5, =gUnknown_0203AB74 - ldr r0, =gUnknown_08611C74 - bl AddWindow - strb r0, [r5] - ldrb r0, [r5] - movs r1, 0 - bl sub_81973FC - ldrb r0, [r5] - movs r1, 0x11 - bl FillWindowPixelBuffer - movs r0, 0xA - bl sub_81A1C90 - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EE27C - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x2 - bl sub_81A1C4C - ldrb r0, [r5] - ldr r2, =gUnknown_085EE2F2 - movs r1, 0x31 - str r1, [sp] - movs r6, 0xFF - str r6, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x10 - bl Print - ldrb r0, [r5] - ldr r2, =gUnknown_085EE2F9 - movs r1, 0x61 - str r1, [sp] - str r6, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x10 - bl Print - movs r0, 0 - movs r1, 0x48 - movs r2, 0x7E - movs r3, 0x31 - bl sub_81A28F8 - movs r0, 0 - movs r1, 0x48 - movs r2, 0x7E - movs r3, 0x41 - bl sub_81A2888 - movs r0, 0x1 - movs r1, 0x48 - movs r2, 0x7E - movs r3, 0x61 - bl sub_81A28F8 - movs r0, 0x1 - movs r1, 0x48 - movs r2, 0x7E - movs r3, 0x71 - bl sub_81A2888 - ldrb r0, [r5] - bl PutWindowTilemap - ldrb r0, [r5] - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A2968 - - thumb_func_start sub_81A2A28 -sub_81A2A28: @ 81A2A28 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - mov r12, r0 - ldr r4, [sp, 0x38] - ldr r5, [sp, 0x3C] - ldr r0, [sp, 0x40] - lsls r1, 16 - lsrs r7, r1, 16 - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0xC] - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x10] - lsls r5, 24 - lsrs r5, 24 - str r5, [sp, 0x14] - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r0, =gUnknown_0203AB74 - mov r10, r0 - ldrb r0, [r0] - str r6, [sp] - movs r1, 0xFF - mov r9, r1 - str r1, [sp, 0x4] - movs r1, 0 - mov r8, r1 - str r1, [sp, 0x8] - movs r1, 0x1 - mov r2, r12 - bl Print - ldr r0, =0x0000270f - cmp r7, r0 - bls _081A2A80 - adds r7, r0, 0 -_081A2A80: - ldr r5, =gStringVar1 - adds r0, r5, 0 - adds r1, r7, 0 - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EE302 - adds r0, r4, 0 - bl StringExpandPlaceholders - mov r1, r10 - ldrb r0, [r1] - str r6, [sp] - mov r1, r9 - str r1, [sp, 0x4] - mov r1, r8 - str r1, [sp, 0x8] - movs r1, 0x1 - adds r2, r4, 0 - ldr r3, [sp, 0x10] - bl Print - adds r0, r5, 0 - ldr r1, [sp, 0xC] - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldr r1, =gUnknown_085EE392 - adds r0, r4, 0 - bl StringExpandPlaceholders - mov r1, r10 - ldrb r0, [r1] - str r6, [sp] - mov r1, r9 - str r1, [sp, 0x4] - mov r1, r8 - str r1, [sp, 0x8] - movs r1, 0x1 - adds r2, r4, 0 - ldr r3, [sp, 0x14] - bl Print - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A2A28 - - thumb_func_start sub_81A2B04 -sub_81A2B04: @ 81A2B04 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - adds r6, r2, 0 - ldr r4, [sp, 0x24] - ldr r5, [sp, 0x28] - lsls r0, 24 - lsls r1, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r2, =gSaveBlock2Ptr - ldr r2, [r2] - lsrs r1, 23 - lsrs r0, 22 - adds r1, r0 - ldr r7, =0x00000dea - adds r0, r2, r7 - adds r0, r1 - ldrh r0, [r0] - mov r8, r0 - ldr r0, =0x00000dfa - adds r2, r0 - adds r2, r1 - ldrh r2, [r2] - ldr r0, =gUnknown_085EE319 - str r3, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - mov r1, r8 - adds r3, r6, 0 - bl sub_81A2A28 - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A2B04 - - thumb_func_start sub_81A2B70 -sub_81A2B70: @ 81A2B70 - push {lr} - lsls r0, 24 - lsls r1, 24 - ldr r2, =gSaveBlock2Ptr - ldr r2, [r2] - lsrs r1, 23 - lsrs r0, 22 - adds r1, r0 - ldr r0, =0x00000de2 - adds r2, r0 - adds r2, r1 - ldrh r0, [r2] - ldr r1, =0x0000270f - cmp r0, r1 - bls _081A2B90 - adds r0, r1, 0 -_081A2B90: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A2B70 - - thumb_func_start sub_81A2BA0 -sub_81A2BA0: @ 81A2BA0 - push {lr} - lsls r0, 24 - lsls r1, 24 - ldr r2, =gSaveBlock2Ptr - ldr r2, [r2] - lsrs r1, 23 - lsrs r0, 22 - adds r1, r0 - ldr r0, =0x00000df2 - adds r2, r0 - adds r2, r1 - ldrh r0, [r2] - ldr r1, =0x0000270f - cmp r0, r1 - bls _081A2BC0 - adds r0, r1, 0 -_081A2BC0: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A2BA0 - - thumb_func_start sub_81A2BD0 -sub_81A2BD0: @ 81A2BD0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - ldr r4, [sp, 0x30] - ldr r5, [sp, 0x34] - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0xC] - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - lsls r4, 24 - lsrs r4, 24 - mov r9, r4 - lsls r5, 24 - lsrs r5, 24 - mov r10, r5 - adds r0, r6, 0 - adds r1, r7, 0 - bl sub_81A2B70 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r6, 0 - adds r1, r7, 0 - bl sub_81A2BA0 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r6, 0 - beq _081A2C20 - cmp r6, 0x1 - beq _081A2C30 -_081A2C20: - cmp r7, 0 - beq _081A2C2A - movs r0, 0x80 - lsls r0, 2 - b _081A2C3E -_081A2C2A: - movs r0, 0x80 - lsls r0, 1 - b _081A2C3E -_081A2C30: - cmp r7, 0 - beq _081A2C3A - movs r0, 0x80 - lsls r0, 18 - b _081A2C3E -_081A2C3A: - movs r0, 0x80 - lsls r0, 17 -_081A2C3E: - bl sub_81A1C24 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081A2C68 - ldr r0, =gUnknown_085EE311 - mov r1, r8 - str r1, [sp] - mov r1, r9 - str r1, [sp, 0x4] - mov r1, r10 - str r1, [sp, 0x8] - adds r1, r5, 0 - adds r2, r4, 0 - ldr r3, [sp, 0xC] - bl sub_81A2A28 - b _081A2C80 - .pool -_081A2C68: - ldr r0, =gUnknown_085EE320 - mov r1, r8 - str r1, [sp] - mov r1, r9 - str r1, [sp, 0x4] - mov r1, r10 - str r1, [sp, 0x8] - adds r1, r5, 0 - adds r2, r4, 0 - ldr r3, [sp, 0xC] - bl sub_81A2A28 -_081A2C80: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A2BD0 - - thumb_func_start sub_81A2C94 -sub_81A2C94: @ 81A2C94 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - lsls r0, 24 - lsrs r7, r0, 24 - ldr r4, =gUnknown_0203AB74 - ldr r0, =gUnknown_08611C74 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, 0 - bl sub_81973FC - ldrb r0, [r4] - movs r1, 0x11 - bl FillWindowPixelBuffer - cmp r7, 0 - bne _081A2CD8 - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EE298 - bl StringExpandPlaceholders - b _081A2CE0 - .pool -_081A2CD8: - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EE2B8 - bl StringExpandPlaceholders -_081A2CE0: - ldr r0, =gStringVar4 - movs r1, 0 - bl sub_81A1C4C - ldr r0, =gUnknown_0203AB74 - mov r8, r0 - ldrb r0, [r0] - ldr r2, =gUnknown_085EE2F2 - movs r6, 0x21 - str r6, [sp] - movs r5, 0xFF - str r5, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x8 - bl Print - mov r1, r8 - ldrb r0, [r1] - ldr r2, =gUnknown_085EE326 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x98 - bl Print - mov r1, r8 - ldrb r0, [r1] - ldr r2, =gUnknown_085EE2F9 - movs r1, 0x61 - str r1, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x8 - bl Print - movs r0, 0xA - bl sub_81A1C90 - movs r4, 0x9E - str r4, [sp] - movs r0, 0x31 - str r0, [sp, 0x4] - adds r0, r7, 0 - movs r1, 0 - movs r2, 0x8 - movs r3, 0x40 - bl sub_81A2BD0 - str r4, [sp] - movs r0, 0x41 - str r0, [sp, 0x4] - adds r0, r7, 0 - movs r1, 0 - movs r2, 0x8 - movs r3, 0x40 - bl sub_81A2B04 - str r4, [sp] - movs r0, 0x71 - str r0, [sp, 0x4] - adds r0, r7, 0 - movs r1, 0x1 - movs r2, 0x8 - movs r3, 0x40 - bl sub_81A2BD0 - str r4, [sp] - movs r0, 0x81 - str r0, [sp, 0x4] - adds r0, r7, 0 - movs r1, 0x1 - movs r2, 0x8 - movs r3, 0x40 - bl sub_81A2B04 - mov r1, r8 - ldrb r0, [r1] - bl PutWindowTilemap - mov r1, r8 - ldrb r0, [r1] - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A2C94 - - thumb_func_start sub_81A2DB4 -sub_81A2DB4: @ 81A2DB4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - adds r5, r0, 0 - adds r4, r2, 0 - ldr r0, [sp, 0x30] - lsls r1, 16 - lsrs r6, r1, 16 - lsls r4, 24 - lsrs r4, 24 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0xC] - lsls r0, 24 - lsrs r0, 24 - adds r7, r0, 0 - ldr r0, =gUnknown_0203AB74 - mov r10, r0 - ldrb r0, [r0] - str r7, [sp] - movs r1, 0xFF - mov r9, r1 - str r1, [sp, 0x4] - movs r1, 0 - mov r8, r1 - str r1, [sp, 0x8] - movs r1, 0x1 - adds r2, r5, 0 - adds r3, r4, 0 - bl Print - ldr r0, =0x0000270f - cmp r6, r0 - bls _081A2E00 - adds r6, r0, 0 -_081A2E00: - ldr r0, =gStringVar1 - adds r1, r6, 0 - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EE39C - adds r0, r4, 0 - bl StringExpandPlaceholders - mov r1, r10 - ldrb r0, [r1] - str r7, [sp] - mov r1, r9 - str r1, [sp, 0x4] - mov r1, r8 - str r1, [sp, 0x8] - movs r1, 0x1 - adds r2, r4, 0 - ldr r3, [sp, 0xC] - bl Print - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A2DB4 - - thumb_func_start sub_81A2E54 -sub_81A2E54: @ 81A2E54 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r1, 0 - adds r5, r2, 0 - lsls r0, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r3, 24 - lsrs r3, 24 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - lsrs r0, 23 - ldr r2, =0x00000e1e - adds r1, r2 - adds r1, r0 - ldrh r1, [r1] - ldr r0, =gUnknown_085EE319 - str r3, [sp] - adds r2, r4, 0 - adds r3, r5, 0 - bl sub_81A2DB4 - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A2E54 - - thumb_func_start sub_81A2E98 -sub_81A2E98: @ 81A2E98 - push {lr} - lsls r0, 24 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - lsrs r0, 23 - ldr r2, =0x00000e1a - adds r1, r2 - adds r1, r0 - ldrh r0, [r1] - ldr r1, =0x0000270f - cmp r0, r1 - bls _081A2EB2 - adds r0, r1, 0 -_081A2EB2: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A2E98 - - thumb_func_start sub_81A2EC4 -sub_81A2EC4: @ 81A2EC4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - lsls r3, 24 - lsrs r6, r3, 24 - adds r0, r4, 0 - bl sub_81A2E98 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r4, 0 - beq _081A2EF4 - movs r0, 0x80 - lsls r0, 6 - b _081A2EF8 -_081A2EF4: - movs r0, 0x80 - lsls r0, 5 -_081A2EF8: - bl sub_81A1C24 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081A2F18 - ldr r0, =gUnknown_085EE311 - str r6, [sp] - adds r1, r5, 0 - adds r2, r7, 0 - mov r3, r8 - bl sub_81A2DB4 - b _081A2F26 - .pool -_081A2F18: - ldr r0, =gUnknown_085EE320 - str r6, [sp] - adds r1, r5, 0 - adds r2, r7, 0 - mov r3, r8 - bl sub_81A2DB4 -_081A2F26: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A2EC4 - - thumb_func_start sub_81A2F38 -sub_81A2F38: @ 81A2F38 - push {r4-r6,lr} - sub sp, 0xC - ldr r5, =gUnknown_0203AB74 - ldr r0, =gUnknown_08611C74 - bl AddWindow - strb r0, [r5] - ldrb r0, [r5] - movs r1, 0 - bl sub_81973FC - ldrb r0, [r5] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EE2D8 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x2 - bl sub_81A1C4C - ldrb r0, [r5] - ldr r2, =gUnknown_085EE2F2 - movs r1, 0x31 - str r1, [sp] - movs r6, 0xFF - str r6, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x8 - bl Print - ldrb r0, [r5] - ldr r2, =gUnknown_085EE2F9 - movs r1, 0x61 - str r1, [sp] - str r6, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x8 - bl Print - movs r0, 0xA - bl sub_81A1C90 - movs r0, 0 - movs r1, 0x40 - movs r2, 0x6F - movs r3, 0x31 - bl sub_81A2EC4 - movs r0, 0 - movs r1, 0x40 - movs r2, 0x6F - movs r3, 0x41 - bl sub_81A2E54 - movs r0, 0x1 - movs r1, 0x40 - movs r2, 0x6F - movs r3, 0x61 - bl sub_81A2EC4 - movs r0, 0x1 - movs r1, 0x40 - movs r2, 0x6F - movs r3, 0x71 - bl sub_81A2E54 - ldrb r0, [r5] - bl PutWindowTilemap - ldrb r0, [r5] - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A2F38 - - thumb_func_start sub_81A2FF8 -sub_81A2FF8: @ 81A2FF8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xC - ldr r4, =gUnknown_0203AB74 - ldr r0, =gUnknown_08611C7C - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, 0 - bl sub_81973FC - ldrb r0, [r4] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r0, =gStringVar4 - mov r9, r0 - ldr r1, =gUnknown_085EDF86 - bl StringExpandPlaceholders - movs r0, 0x1 - mov r1, r9 - movs r2, 0xD0 - bl GetStringCenterAlignXOffset - adds r3, r0, 0 - ldrb r0, [r4] - lsls r3, 24 - lsrs r3, 24 - movs r1, 0x1 - str r1, [sp] - movs r6, 0xFF - str r6, [sp, 0x4] - movs r5, 0 - str r5, [sp, 0x8] - mov r2, r9 - bl Print - ldr r7, =gUnknown_085EDFA0 - movs r0, 0x1 - adds r1, r7, 0 - movs r2, 0x26 - bl GetStringRightAlignXOffset - adds r3, r0, 0 - adds r3, 0x32 - ldrb r0, [r4] - lsls r3, 24 - lsrs r3, 24 - movs r1, 0x19 - mov r8, r1 - str r1, [sp] - str r6, [sp, 0x4] - str r5, [sp, 0x8] - movs r1, 0x1 - adds r2, r7, 0 - bl Print - ldr r7, =gUnknown_085EDFA4 - movs r0, 0x1 - adds r1, r7, 0 - movs r2, 0x26 - bl GetStringRightAlignXOffset - adds r3, r0, 0 - adds r3, 0x58 - ldrb r0, [r4] - lsls r3, 24 - lsrs r3, 24 - mov r2, r8 - str r2, [sp] - str r6, [sp, 0x4] - str r5, [sp, 0x8] - movs r1, 0x1 - adds r2, r7, 0 - bl Print - ldr r7, =gUnknown_085EDFA8 - movs r0, 0x1 - adds r1, r7, 0 - movs r2, 0x26 - bl GetStringRightAlignXOffset - adds r3, r0, 0 - adds r3, 0x7E - ldrb r0, [r4] - lsls r3, 24 - lsrs r3, 24 - mov r1, r8 - str r1, [sp] - str r6, [sp, 0x4] - str r5, [sp, 0x8] - movs r1, 0x1 - adds r2, r7, 0 - bl Print - ldr r7, =gUnknown_085EDFAC - movs r0, 0x1 - adds r1, r7, 0 - movs r2, 0x26 - bl GetStringRightAlignXOffset - adds r3, r0, 0 - adds r3, 0xA4 - ldrb r0, [r4] - lsls r3, 24 - lsrs r3, 24 - mov r2, r8 - str r2, [sp] - str r6, [sp, 0x4] - str r5, [sp, 0x8] - movs r1, 0x1 - adds r2, r7, 0 - bl Print - ldrb r0, [r4] - ldr r2, =gUnknown_085EB0E8 - movs r1, 0x29 - str r1, [sp] - str r6, [sp, 0x4] - str r5, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x6 - bl Print - ldrb r0, [r4] - ldr r2, =gUnknown_085EB0ED - movs r1, 0x39 - str r1, [sp] - str r6, [sp, 0x4] - str r5, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x6 - bl Print - ldrb r0, [r4] - ldr r2, =gUnknown_085EB0F4 - movs r1, 0x49 - str r1, [sp] - str r6, [sp, 0x4] - str r5, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x6 - bl Print - ldrb r0, [r4] - ldr r2, =gUnknown_085EB0F9 - movs r1, 0x59 - str r1, [sp] - str r6, [sp, 0x4] - str r5, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x6 - bl Print - ldrb r0, [r4] - ldr r2, =gUnknown_085EB0FF - movs r1, 0x69 - str r1, [sp] - str r6, [sp, 0x4] - str r5, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x6 - bl Print - movs r1, 0 -_081A314A: - movs r5, 0 - adds r0, r1, 0x1 - mov r8, r0 - lsls r0, r1, 28 - movs r2, 0xA4 - lsls r2, 22 - adds r0, r2 - lsrs r7, r0, 24 - lsls r4, r1, 3 -_081A315C: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000624 - adds r0, r1 - adds r0, r4 - ldrh r1, [r0] - mov r0, r9 - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldr r6, =gUnknown_0203AB74 - ldrb r0, [r6] - movs r1, 0x26 - adds r3, r5, 0 - muls r3, r1 - adds r3, 0x40 - lsls r3, 24 - lsrs r3, 24 - str r7, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x1 - mov r2, r9 - bl Print - adds r4, 0x2 - adds r5, 0x1 - cmp r5, 0x3 - ble _081A315C - mov r1, r8 - cmp r1, 0x4 - ble _081A314A - ldrb r0, [r6] - bl PutWindowTilemap - ldrb r0, [r6] - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A2FF8 - - thumb_func_start sub_81A31FC -sub_81A31FC: @ 81A31FC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r7, r0, 30 - ldr r0, =0x000040cf - bl VarGet - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r4, 0x6 - bls _081A3232 - b _081A35CE -_081A3232: - lsls r0, r4, 2 - ldr r1, =_081A3250 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081A3250: - .4byte _081A326C - .4byte _081A33A8 - .4byte _081A3414 - .4byte _081A347C - .4byte _081A34CC - .4byte _081A354C - .4byte _081A3594 -_081A326C: - ldr r2, =gSaveBlock2Ptr - mov r9, r2 - ldr r0, [r2] - lsls r3, r7, 1 - mov r10, r3 - mov r2, r8 - lsls r1, r2, 2 - add r1, r10 - str r1, [sp, 0x20] - movs r3, 0xCE - lsls r3, 4 - adds r1, r0, r3 - ldr r2, [sp, 0x20] - adds r1, r2 - adds r3, 0x10 - adds r0, r3 - adds r0, r2 - ldrh r1, [r1] - ldrh r2, [r0] - cmp r1, r2 - bhi _081A3298 - b _081A35CE -_081A3298: - strh r1, [r0] - mov r3, r8 - cmp r3, 0x3 - bne _081A32F2 - ldr r6, =gUnknown_02024474 - adds r6, 0x25 - ldrb r0, [r6] - movs r4, 0x1 - eors r0, r4 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - ldr r5, =gUnknown_020229F0 - adds r1, r5 - mov r0, sp - bl StringCopy - mov r0, sp - bl StripExtCtrlCodes - lsls r1, r7, 3 - ldr r0, =0x00000ee1 - adds r1, r0 - mov r2, r9 - ldr r0, [r2] - adds r0, r1 - mov r1, sp - bl StringCopy - ldrb r0, [r6] - eors r4, r0 - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - subs r5, 0x4 - adds r0, r5 - ldr r0, [r0] - lsls r2, r7, 2 - ldr r1, =0x00000ef1 - adds r2, r1 - mov r3, r9 - ldr r1, [r3] - adds r1, r2 - bl write_word_to_mem -_081A32F2: - mov r7, r9 - ldr r0, [r7] - movs r1, 0xCE - lsls r1, 4 - adds r0, r1 - ldr r2, [sp, 0x20] - adds r0, r2 - ldrh r0, [r0] - cmp r0, 0x1 - bhi _081A3308 - b _081A35CE -_081A3308: - bl sub_80EE818 - lsls r0, 24 - cmp r0, 0 - bne _081A3314 - b _081A35CE -_081A3314: - mov r3, r8 - cmp r3, 0x1 - beq _081A335A - cmp r3, 0x1 - bgt _081A3338 - cmp r3, 0 - beq _081A3344 - b _081A35CE - .pool -_081A3338: - mov r7, r8 - cmp r7, 0x2 - beq _081A3374 - cmp r7, 0x3 - beq _081A338E - b _081A35CE -_081A3344: - mov r1, r9 - ldr r0, [r1] - movs r2, 0xCE - lsls r2, 4 - adds r0, r2 - add r0, r10 - ldrh r0, [r0] - movs r1, 0x1 - bl sub_80EE8C8 - b _081A35CE -_081A335A: - mov r3, r9 - ldr r0, [r3] - mov r1, r10 - adds r1, 0x4 - movs r7, 0xCE - lsls r7, 4 - adds r0, r7 - adds r0, r1 - ldrh r0, [r0] - movs r1, 0x2 - bl sub_80EE8C8 - b _081A35CE -_081A3374: - mov r1, r9 - ldr r0, [r1] - mov r1, r10 - adds r1, 0x8 - movs r2, 0xCE - lsls r2, 4 - adds r0, r2 - adds r0, r1 - ldrh r0, [r0] - movs r1, 0x3 - bl sub_80EE8C8 - b _081A35CE -_081A338E: - mov r3, r9 - ldr r0, [r3] - mov r1, r10 - adds r1, 0xC - movs r7, 0xCE - lsls r7, 4 - adds r0, r7 - adds r0, r1 - ldrh r0, [r0] - movs r1, 0x4 - bl sub_80EE8C8 - b _081A35CE -_081A33A8: - ldr r6, =gSaveBlock2Ptr - ldr r0, [r6] - lsls r7, 1 - mov r2, r8 - lsls r1, r2, 2 - adds r4, r7, r1 - ldr r5, =0x00000d0c - adds r1, r0, r5 - adds r1, r4 - ldr r3, =0x00000d14 - adds r0, r3 - adds r0, r4 - ldrh r2, [r1] - ldrh r3, [r0] - cmp r2, r3 - bhi _081A33CA - b _081A35CE -_081A33CA: - strh r2, [r0] - ldrh r0, [r1] - cmp r0, 0x1 - bhi _081A33D4 - b _081A35CE -_081A33D4: - bl sub_80EE818 - lsls r0, 24 - cmp r0, 0 - bne _081A33E0 - b _081A35CE -_081A33E0: - mov r0, r8 - cmp r0, 0 - bne _081A3404 - ldr r0, [r6] - adds r0, r5 - adds r0, r7 - ldrh r0, [r0] - movs r1, 0x5 - bl sub_80EE8C8 - b _081A35CE - .pool -_081A3404: - ldr r0, [r6] - adds r0, r5 - adds r0, r4 - ldrh r0, [r0] - movs r1, 0x6 - bl sub_80EE8C8 - b _081A35CE -_081A3414: - ldr r6, =gSaveBlock2Ptr - ldr r0, [r6] - lsls r7, 1 - mov r2, r8 - lsls r1, r2, 2 - adds r4, r7, r1 - ldr r5, =0x00000dc8 - adds r1, r0, r5 - adds r1, r4 - movs r3, 0xDD - lsls r3, 4 - adds r0, r3 - adds r0, r4 - ldrh r2, [r1] - ldrh r3, [r0] - cmp r2, r3 - bhi _081A3438 - b _081A35CE -_081A3438: - strh r2, [r0] - ldrh r0, [r1] - cmp r0, 0x1 - bhi _081A3442 - b _081A35CE -_081A3442: - bl sub_80EE818 - lsls r0, 24 - cmp r0, 0 - bne _081A344E - b _081A35CE -_081A344E: - mov r0, r8 - cmp r0, 0 - bne _081A346C - ldr r0, [r6] - adds r0, r5 - adds r0, r7 - ldrh r0, [r0] - movs r1, 0xB - bl sub_80EE8C8 - b _081A35CE - .pool -_081A346C: - ldr r0, [r6] - adds r0, r5 - adds r0, r4 - ldrh r0, [r0] - movs r1, 0xC - bl sub_80EE8C8 - b _081A35CE -_081A347C: - ldr r6, =gSaveBlock2Ptr - ldr r1, [r6] - lsls r4, r7, 1 - ldr r5, =0x00000dda - adds r0, r1, r5 - adds r0, r4 - ldr r2, =0x00000dde - adds r1, r2 - adds r1, r4 - ldrh r2, [r0] - ldrh r3, [r1] - cmp r2, r3 - bhi _081A3498 - b _081A35CE -_081A3498: - strh r2, [r1] - ldrh r0, [r0] - cmp r0, 0x1 - bhi _081A34A2 - b _081A35CE -_081A34A2: - bl sub_80EE818 - lsls r0, 24 - cmp r0, 0 - bne _081A34AE - b _081A35CE -_081A34AE: - ldr r0, [r6] - adds r0, r5 - adds r0, r4 - ldrh r0, [r0] - movs r1, 0xA - bl sub_80EE8C8 - b _081A35CE - .pool -_081A34CC: - ldr r6, =gSaveBlock2Ptr - ldr r2, [r6] - lsls r7, 1 - mov r9, r7 - mov r7, r8 - lsls r0, r7, 2 - mov r1, r9 - adds r4, r1, r0 - ldr r5, =0x00000de2 - adds r0, r2, r5 - adds r3, r0, r4 - ldr r7, =0x00000dea - adds r0, r2, r7 - adds r0, r4 - ldrh r1, [r3] - ldrh r7, [r0] - cmp r1, r7 - bls _081A35CE - strh r1, [r0] - ldr r0, =0x00000dfa - adds r1, r2, r0 - adds r1, r4 - ldr r7, =0x00000df2 - adds r0, r2, r7 - adds r0, r4 - ldrh r0, [r0] - strh r0, [r1] - ldrh r0, [r3] - cmp r0, 0x1 - bls _081A35CE - bl sub_80EE818 - lsls r0, 24 - cmp r0, 0 - beq _081A35CE - mov r0, r8 - cmp r0, 0 - bne _081A353C - ldr r0, [r6] - adds r0, r5 - add r0, r9 - ldrh r0, [r0] - movs r1, 0x7 - bl sub_80EE8C8 - b _081A35CE - .pool -_081A353C: - ldr r0, [r6] - adds r0, r5 - adds r0, r4 - ldrh r0, [r0] - movs r1, 0x8 - bl sub_80EE8C8 - b _081A35CE -_081A354C: - ldr r6, =gSaveBlock2Ptr - ldr r1, [r6] - lsls r4, r7, 1 - ldr r5, =0x00000e04 - adds r0, r1, r5 - adds r0, r4 - ldr r2, =0x00000e08 - adds r1, r2 - adds r1, r4 - ldrh r2, [r0] - ldrh r3, [r1] - cmp r2, r3 - bls _081A35CE - strh r2, [r1] - ldrh r0, [r0] - cmp r0, 0x1 - bls _081A35CE - bl sub_80EE818 - lsls r0, 24 - cmp r0, 0 - beq _081A35CE - ldr r0, [r6] - adds r0, r5 - adds r0, r4 - ldrh r0, [r0] - movs r1, 0x9 - bl sub_80EE8C8 - b _081A35CE - .pool -_081A3594: - ldr r6, =gSaveBlock2Ptr - ldr r1, [r6] - lsls r4, r7, 1 - ldr r5, =0x00000e1a - adds r0, r1, r5 - adds r0, r4 - ldr r7, =0x00000e1e - adds r1, r7 - adds r1, r4 - ldrh r2, [r0] - ldrh r3, [r1] - cmp r2, r3 - bls _081A35CE - strh r2, [r1] - ldrh r0, [r0] - cmp r0, 0x1 - bls _081A35CE - bl sub_80EE818 - lsls r0, 24 - cmp r0, 0 - beq _081A35CE - ldr r0, [r6] - adds r0, r5 - adds r0, r4 - ldrh r0, [r0] - movs r1, 0xD - bl sub_80EE8C8 -_081A35CE: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A31FC - - thumb_func_start sub_81A35EC -sub_81A35EC: @ 81A35EC - push {r4,lr} - ldr r0, =0x000040cf - bl VarGet - ldr r4, =gUnknown_020375F0 - bl sub_81A3610 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A35EC - - thumb_func_start sub_81A3610 -sub_81A3610: @ 81A3610 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r0, 0 - mov r8, r0 - ldr r0, =0x000040cf - bl VarGet - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, =0x000040ce - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl sub_81A39C4 - lsls r0, 16 - ldr r1, =gUnknown_08611550 - mov r9, r1 - lsls r7, r6, 2 - adds r1, 0x3 - adds r1, r7, r1 - lsrs r0, 16 - ldrb r1, [r1] - adds r5, r0, r1 - cmp r4, 0 - beq _081A365C - movs r0, 0 - b _081A36C2 - .pool -_081A365C: - lsls r0, r6, 24 - lsrs r0, 24 - bl sub_81A3B30 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - blt _081A3680 - cmp r1, 0x1 - bgt _081A3680 - adds r0, r1, r7 - add r0, r9 - ldrb r0, [r0] - cmp r5, r0 - bne _081A36BC - adds r1, 0x1 - mov r8, r1 - b _081A36BC -_081A3680: - ldr r1, =gUnknown_08611550 - lsls r2, r6, 2 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r5, r0 - bne _081A3694 - movs r0, 0x3 - b _081A36BA - .pool -_081A3694: - adds r0, r1, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r5, r0 - bne _081A36A4 - movs r1, 0x4 - mov r8, r1 - b _081A36BC -_081A36A4: - cmp r5, r0 - ble _081A36BC - subs r0, r5, r0 - adds r1, 0x2 - adds r1, r2, r1 - ldrb r1, [r1] - bl __modsi3 - cmp r0, 0 - bne _081A36BC - movs r0, 0x4 -_081A36BA: - mov r8, r0 -_081A36BC: - mov r1, r8 - lsls r0, r1, 24 - lsrs r0, 24 -_081A36C2: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81A3610 - - thumb_func_start sub_81A36D0 -sub_81A36D0: @ 81A36D0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - lsls r1, 16 - lsrs r3, r1, 16 - cmp r0, 0x1 - beq _081A3766 - cmp r0, 0x1 - bgt _081A36EA - cmp r0, 0 - beq _081A36F2 - b _081A38F8 -_081A36EA: - cmp r2, 0x2 - bne _081A36F0 - b _081A3818 -_081A36F0: - b _081A38F8 -_081A36F2: - movs r0, 0xFA - lsls r0, 1 - cmp r3, r0 - bne _081A370C - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000bfc - b _081A38C4 - .pool -_081A370C: - ldr r0, =0x000003fe - cmp r3, r0 - beq _081A3786 - ldr r0, =0x0000012b - cmp r3, r0 - bhi _081A3738 - ldr r2, =gUnknown_0203BC88 - movs r0, 0x34 - adds r1, r3, 0 - muls r1, r0 - ldr r0, [r2] - adds r0, r1 - adds r0, 0xC - bl ConvertBattleFrontierTrainerSpeechToString - b _081A38F8 - .pool -_081A3738: - ldr r0, =0x0000018f - cmp r3, r0 - bhi _081A3758 - ldr r1, =gSaveBlock2Ptr - movs r0, 0xEC - muls r0, r3 - ldr r1, [r1] - adds r0, r1 - ldr r1, =0xfffef2b8 - b _081A38C4 - .pool -_081A3758: - adds r0, r3, 0 - adds r0, 0x70 - lsls r0, 24 - lsrs r0, 24 - bl sub_819F99C - b _081A38F8 -_081A3766: - movs r0, 0xFA - lsls r0, 1 - cmp r3, r0 - bne _081A3780 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000c08 - b _081A38C4 - .pool -_081A3780: - ldr r0, =0x000003fe - cmp r3, r0 - bne _081A3794 -_081A3786: - movs r0, 0 - bl sub_81A51A8 - b _081A38F8 - .pool -_081A3794: - ldr r0, =0x0000012b - cmp r3, r0 - bhi _081A37B8 - ldr r2, =gUnknown_0203BC88 - movs r0, 0x34 - adds r1, r3, 0 - muls r1, r0 - ldr r0, [r2] - adds r0, r1 - adds r0, 0x18 - bl ConvertBattleFrontierTrainerSpeechToString - b _081A38F8 - .pool -_081A37B8: - ldr r0, =0x0000018f - cmp r3, r0 - bhi _081A37EC - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - bne _081A387C - ldr r1, =gSaveBlock2Ptr - movs r0, 0xEC - muls r0, r3 - ldr r1, [r1] - adds r0, r1 - ldr r1, =0xfffef2c4 - b _081A38C4 - .pool -_081A37EC: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - bne _081A387C - ldr r1, =gSaveBlock2Ptr - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - ldr r1, [r1] - adds r0, r1 - ldr r1, =0xffff96c4 - b _081A38C4 - .pool -_081A3818: - movs r0, 0xFA - lsls r0, 1 - cmp r3, r0 - bne _081A3830 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000c14 - b _081A38C4 - .pool -_081A3830: - ldr r0, =0x000003fe - cmp r3, r0 - bne _081A3844 - movs r0, 0x1 - bl sub_81A51A8 - b _081A38F8 - .pool -_081A3844: - ldr r0, =0x0000012b - cmp r3, r0 - bhi _081A3868 - ldr r2, =gUnknown_0203BC88 - movs r0, 0x34 - adds r1, r3, 0 - muls r1, r0 - ldr r0, [r2] - adds r0, r1 - adds r0, 0x24 - bl ConvertBattleFrontierTrainerSpeechToString - b _081A38F8 - .pool -_081A3868: - ldr r0, =0x0000018f - cmp r3, r0 - bhi _081A38A8 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _081A3890 -_081A387C: - bl sub_81864E0 - bl ConvertBattleFrontierTrainerSpeechToString - b _081A38F8 - .pool -_081A3890: - ldr r1, =gSaveBlock2Ptr - movs r0, 0xEC - muls r0, r3 - ldr r1, [r1] - adds r0, r1 - ldr r1, =0xfffef2d0 - b _081A38C4 - .pool -_081A38A8: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _081A38D4 - bl sub_81864A8 - lsls r0, 24 - lsrs r3, r0, 24 - movs r0, 0x58 - muls r0, r3 - ldr r1, =gUnknown_086109BA -_081A38C4: - adds r0, r1 - bl ConvertBattleFrontierTrainerSpeechToString - b _081A38F8 - .pool -_081A38D4: - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r0, =0xfffffe70 - adds r2, r3, r0 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - adds r1, 0xDC - ldrb r0, [r1] - lsls r0, 27 - lsrs r3, r0, 27 - movs r0, 0x58 - muls r0, r3 - ldr r1, =gUnknown_086109BA - adds r0, r1 - bl ConvertBattleFrontierTrainerSpeechToString -_081A38F8: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A36D0 - - thumb_func_start sub_81A3908 -sub_81A3908: @ 81A3908 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r2, =0x00000cdc - adds r1, r2 - movs r2, 0 - str r2, [r1] - movs r4, 0 - mov r9, r0 - mov r8, r9 - movs r6, 0 -_081A3926: - movs r5, 0 - lsls r7, r4, 2 - mov r10, r7 - adds r0, r4, 0x1 - mov r12, r0 -_081A3930: - mov r1, r8 - ldr r2, [r1] - lsls r3, r5, 1 - mov r7, r10 - adds r1, r3, r7 - movs r7, 0xCE - lsls r7, 4 - adds r0, r2, r7 - adds r0, r1 - strh r6, [r0] - cmp r4, 0x1 - bgt _081A3960 - adds r7, 0x2C - adds r0, r2, r7 - adds r0, r1 - strh r6, [r0] - adds r7, 0xBC - adds r0, r2, r7 - adds r0, r1 - strh r6, [r0] - adds r7, 0x1A - adds r0, r2, r7 - adds r0, r1 - strh r6, [r0] -_081A3960: - cmp r4, 0 - bne _081A3980 - mov r1, r8 - ldr r0, [r1] - ldr r2, =0x00000dda - adds r1, r0, r2 - adds r1, r3 - strh r4, [r1] - ldr r7, =0x00000e04 - adds r1, r0, r7 - adds r1, r3 - strh r4, [r1] - ldr r1, =0x00000e1a - adds r0, r1 - adds r0, r3 - strh r4, [r0] -_081A3980: - adds r5, 0x1 - cmp r5, 0x1 - ble _081A3930 - mov r4, r12 - cmp r4, 0x3 - ble _081A3926 - mov r2, r9 - ldr r0, [r2] - ldr r7, =0x00000ca8 - adds r1, r0, r7 - ldrb r0, [r1] - cmp r0, 0 - beq _081A399E - movs r0, 0x1 - strb r0, [r1] -_081A399E: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A3908 - - thumb_func_start sub_81A39C4 -sub_81A39C4: @ 81A39C4 - push {r4,r5,lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r4, r0, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, =0x000040cf - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x6 - bhi _081A3AC4 - lsls r0, 2 - ldr r1, =_081A3A0C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081A3A0C: - .4byte _081A3A28 - .4byte _081A3A3C - .4byte _081A3A54 - .4byte _081A3A6C - .4byte _081A3A80 - .4byte _081A3A98 - .4byte _081A3AAC -_081A3A28: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r4, 1 - lsls r2, r5, 2 - adds r1, r2 - movs r2, 0xCE - lsls r2, 4 - b _081A3AB4 - .pool -_081A3A3C: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r4, 1 - lsls r2, r5, 2 - adds r1, r2 - ldr r2, =0x00000d0c - b _081A3AB4 - .pool -_081A3A54: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r4, 1 - lsls r2, r5, 2 - adds r1, r2 - ldr r2, =0x00000dc8 - b _081A3AB4 - .pool -_081A3A6C: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r4, 1 - ldr r2, =0x00000dda - b _081A3AB4 - .pool -_081A3A80: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r4, 1 - lsls r2, r5, 2 - adds r1, r2 - ldr r2, =0x00000de2 - b _081A3AB4 - .pool -_081A3A98: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r4, 1 - ldr r2, =0x00000e04 - b _081A3AB4 - .pool -_081A3AAC: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r4, 1 - ldr r2, =0x00000e1a -_081A3AB4: - adds r0, r2 - adds r0, r1 - ldrh r0, [r0] - b _081A3AC6 - .pool -_081A3AC4: - movs r0, 0 -_081A3AC6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81A39C4 - - thumb_func_start sub_81A3ACC -sub_81A3ACC: @ 81A3ACC - push {r4,r5,lr} - movs r2, 0 - ldr r5, =gSaveBlock2Ptr - ldr r4, =0x00000cb4 - ldr r0, =0x0000ffff - adds r3, r0, 0 -_081A3AD8: - ldr r0, [r5] - lsls r1, r2, 1 - adds r0, r4 - adds r0, r1 - ldrh r1, [r0] - orrs r1, r3 - strh r1, [r0] - adds r2, 0x1 - cmp r2, 0x13 - ble _081A3AD8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A3ACC - - thumb_func_start sub_81A3B00 -sub_81A3B00: @ 81A3B00 - push {lr} - ldr r0, =gUnknown_02038BCA - ldrh r1, [r0] - ldr r0, =0x000003fe - cmp r1, r0 - bne _081A3B20 - ldr r1, =gUnknown_020375F0 - movs r0, 0x1 - b _081A3B24 - .pool -_081A3B20: - ldr r1, =gUnknown_020375F0 - movs r0, 0 -_081A3B24: - strh r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A3B00 - - thumb_func_start sub_81A3B30 -sub_81A3B30: @ 81A3B30 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 23 - ldr r1, =0x000008c4 - adds r0, r4, r1 - bl FlagGet - adds r5, r0, 0 - ldr r0, =0x000008c5 - adds r4, r0 - adds r0, r4, 0 - bl FlagGet - adds r5, r0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A3B30 - - thumb_func_start sub_81A3B64 -sub_81A3B64: @ 81A3B64 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r5, 0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r4, r0, 30 - ldr r0, =0x000040cf - bl VarGet - lsls r0, 16 - lsrs r7, r0, 16 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r6, r0, 16 - cmp r7, 0x6 - bhi _081A3C78 - lsls r0, r7, 2 - ldr r1, =_081A3BB4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081A3BB4: - .4byte _081A3BD0 - .4byte _081A3BE4 - .4byte _081A3C00 - .4byte _081A3C18 - .4byte _081A3C2C - .4byte _081A3C44 - .4byte _081A3C60 -_081A3BD0: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r4, 1 - lsls r2, r6, 2 - adds r1, r2 - movs r2, 0xCE - lsls r2, 4 - b _081A3C68 - .pool -_081A3BE4: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r4, 1 - lsls r2, r6, 2 - adds r1, r2 - ldr r2, =0x00000d0c - adds r0, r2 - adds r0, r1 - ldrh r5, [r0] - b _081A3C78 - .pool -_081A3C00: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r4, 1 - lsls r2, r6, 2 - adds r1, r2 - ldr r2, =0x00000dc8 - b _081A3C68 - .pool -_081A3C18: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r4, 1 - ldr r2, =0x00000dda - b _081A3C68 - .pool -_081A3C2C: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r4, 1 - lsls r2, r6, 2 - adds r1, r2 - ldr r2, =0x00000de2 - b _081A3C68 - .pool -_081A3C44: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r4, 1 - ldr r2, =0x00000e04 - adds r0, r2 - adds r0, r1 - ldrh r0, [r0] - movs r1, 0xE - b _081A3C70 - .pool -_081A3C60: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r4, 1 - ldr r2, =0x00000e1a -_081A3C68: - adds r0, r2 - adds r0, r1 - ldrh r0, [r0] - movs r1, 0x7 -_081A3C70: - bl __udivsi3 - lsls r0, 16 - lsrs r5, r0, 16 -_081A3C78: - cmp r5, 0 - beq _081A3C7E - subs r5, 0x1 -_081A3C7E: - cmp r5, 0x1D - bls _081A3C84 - movs r5, 0x1D -_081A3C84: - ldr r2, =gUnknown_086118B4 - lsls r1, r7, 2 - adds r1, r6, r1 - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - adds r1, r0 - adds r7, r1, r2 - ldrb r5, [r7] - ldr r0, =gUnknown_02038BCA - mov r9, r0 - ldrh r0, [r0] - ldr r1, =0x000003fe - mov r8, r1 - cmp r0, r8 - bne _081A3CA6 - adds r5, 0xA -_081A3CA6: - ldr r6, =gSaveBlock2Ptr - ldr r1, [r6] - ldr r4, =0x00000eb8 - adds r1, r4 - ldrh r0, [r1] - adds r0, r5 - strh r0, [r1] - ldr r0, =gStringVar1 - adds r1, r5, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, [r6] - adds r2, r0, r4 - ldrh r0, [r2] - ldr r1, =0x0000270f - cmp r0, r1 - bls _081A3CCE - strh r1, [r2] -_081A3CCE: - ldr r0, [r6] - ldr r4, =0x00000eba - adds r0, r4 - ldrh r5, [r0] - ldrb r0, [r7] - adds r5, r0 - bl sub_80EED60 - mov r2, r9 - ldrh r0, [r2] - cmp r0, r8 - bne _081A3CEE - adds r5, 0xA - movs r0, 0xA - bl sub_80EED60 -_081A3CEE: - ldr r0, =0x0000ffff - cmp r5, r0 - ble _081A3CF6 - adds r5, r0, 0 -_081A3CF6: - ldr r0, [r6] - adds r0, r4 - strh r5, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A3B64 - - thumb_func_start sub_81A3D30 -sub_81A3D30: @ 81A3D30 - push {r4,lr} - ldr r0, =0x000040cf - bl VarGet - ldr r4, =gUnknown_020375F0 - lsls r0, 24 - lsrs r0, 24 - bl sub_81A3B30 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A3D30 - - thumb_func_start sub_81A3D58 -sub_81A3D58: @ 81A3D58 - push {r4,lr} - ldr r0, =0x000040cf - bl VarGet - lsls r0, 16 - lsrs r4, r0, 16 - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_81A3B30 - lsls r0, 24 - cmp r0, 0 - bne _081A3D88 - lsls r0, r4, 17 - ldr r1, =0x8C4 << 16 - adds r0, r1 - lsrs r0, 16 - bl FlagSet - b _081A3D94 - .pool -_081A3D88: - lsls r0, r4, 17 - ldr r1, =0x8C5 << 16 - adds r0, r1 - lsrs r0, 16 - bl FlagSet -_081A3D94: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A3D58 - - thumb_func_start sub_81A3DA0 -sub_81A3DA0: @ 81A3DA0 - push {lr} - ldr r0, =gBattleTypeFlags - ldr r1, =gUnknown_020375E2 - ldrh r1, [r1] - ldr r2, [r0] - ands r2, r1 - cmp r2, 0 - beq _081A3DC4 - ldr r1, =gUnknown_020375F0 - movs r0, 0x1 - strh r0, [r1] - b _081A3DC8 - .pool -_081A3DC4: - ldr r0, =gUnknown_020375F0 - strh r2, [r0] -_081A3DC8: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A3DA0 - - thumb_func_start sub_81A3DD0 -sub_81A3DD0: @ 81A3DD0 - push {r4-r6,lr} - adds r5, r2, 0 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r4, r1, 24 - adds r0, r6, 0 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl pokedex_flag_operation - lsls r0, 24 - cmp r0, 0 - beq _081A3ED6 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - subs r0, r4, 0x1 - cmp r0, 0xA - bhi _081A3EA0 - lsls r0, 2 - ldr r1, =_081A3E0C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081A3E0C: - .4byte _081A3E38 - .4byte _081A3E68 - .4byte _081A3E38 - .4byte _081A3EA0 - .4byte _081A3E38 - .4byte _081A3EA0 - .4byte _081A3E38 - .4byte _081A3EA0 - .4byte _081A3E38 - .4byte _081A3EA0 - .4byte _081A3E38 -_081A3E38: - cmp r5, r4 - bne _081A3E50 - ldr r0, =gStringVar1 - ldr r1, =gUnknown_085CCB79 - bl StringAppend - b _081A3EC8 - .pool -_081A3E50: - cmp r5, r4 - ble _081A3EC8 - ldr r0, =gStringVar1 - ldr r1, =gUnknown_085CCB7F - bl StringAppend - b _081A3EC8 - .pool -_081A3E68: - cmp r4, r5 - bne _081A3E80 - ldr r0, =gStringVar1 - ldr r1, =gUnknown_085CCB79 - bl StringAppend - b _081A3E88 - .pool -_081A3E80: - ldr r0, =gStringVar1 - ldr r1, =gUnknown_085CCB7F - bl StringAppend -_081A3E88: - ldr r0, =gStringVar1 - ldr r1, =gUnknown_085CCB86 - bl StringAppend - b _081A3EC8 - .pool -_081A3EA0: - cmp r4, r5 - bne _081A3EB8 - ldr r0, =gStringVar1 - ldr r1, =gUnknown_085CCB79 - bl StringAppend - b _081A3EC0 - .pool -_081A3EB8: - ldr r0, =gStringVar1 - ldr r1, =gUnknown_085CCB7F - bl StringAppend -_081A3EC0: - ldr r0, =gStringVar1 - ldr r1, =gUnknown_085CCB84 - bl StringAppend -_081A3EC8: - ldr r0, =gStringVar1 - movs r1, 0xB - muls r1, r6 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringAppend -_081A3ED6: - adds r0, r4, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A3DD0 - - thumb_func_start sub_81A3EF0 -sub_81A3EF0: @ 81A3EF0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r2, [sp, 0x20] - ldr r4, [sp, 0x24] - mov r9, r4 - ldr r4, [sp, 0x28] - mov r10, r4 - ldr r7, [sp, 0x2C] - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r3, 24 - lsrs r3, 24 - mov r12, r3 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - movs r2, 0 - movs r0, 0xCE - lsls r0, 1 - cmp r4, r0 - beq _081A3FBE - cmp r4, 0 - beq _081A3FBE - ldr r0, =gUnknown_08611C9A - ldrh r1, [r0] - ldr r5, =0x0000ffff - adds r3, r0, 0 - cmp r1, r5 - beq _081A3F54 - cmp r1, r4 - beq _081A3F48 - adds r1, r3, 0 -_081A3F3A: - adds r1, 0x2 - adds r2, 0x1 - ldrh r0, [r1] - cmp r0, r5 - beq _081A3F54 - cmp r0, r4 - bne _081A3F3A -_081A3F48: - lsls r0, r2, 1 - adds r0, r3 - ldrh r1, [r0] - ldr r0, =0x0000ffff - cmp r1, r0 - bne _081A3FBE -_081A3F54: - mov r0, r12 - cmp r0, 0 - bne _081A3F60 - mov r1, r8 - cmp r1, 0x32 - bhi _081A3FBE -_081A3F60: - movs r2, 0 - ldrb r3, [r7] - cmp r2, r3 - bge _081A3F80 - mov r1, r9 - ldrh r0, [r1] - cmp r0, r4 - beq _081A3F80 - adds r5, r3, 0 -_081A3F72: - adds r1, 0x2 - adds r2, 0x1 - cmp r2, r5 - bge _081A3F80 - ldrh r0, [r1] - cmp r0, r4 - bne _081A3F72 -_081A3F80: - cmp r2, r3 - bne _081A3FBE - cmp r6, 0 - beq _081A3FAA - movs r2, 0 - cmp r2, r3 - bge _081A3FA6 - mov r1, r10 - ldrh r0, [r1] - cmp r0, r6 - beq _081A3FA6 - adds r5, r3, 0 -_081A3F98: - adds r1, 0x2 - adds r2, 0x1 - cmp r2, r5 - bge _081A3FA6 - ldrh r0, [r1] - cmp r0, r6 - bne _081A3F98 -_081A3FA6: - cmp r2, r3 - bne _081A3FBE -_081A3FAA: - lsls r0, r3, 1 - add r0, r9 - strh r4, [r0] - ldrb r0, [r7] - lsls r0, 1 - add r0, r10 - strh r6, [r0] - ldrb r0, [r7] - adds r0, 0x1 - strb r0, [r7] -_081A3FBE: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A3EF0 - - thumb_func_start sub_81A3FD4 -sub_81A3FD4: @ 81A3FD4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x34 - movs r0, 0 - str r0, [sp, 0x2C] - add r4, sp, 0x28 - strb r0, [r4] - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r0, 16 - mov r10, r4 - cmp r0, 0x1 - beq _081A4016 - cmp r0, 0x1 - bgt _081A4008 - cmp r0, 0 - beq _081A4010 - b _081A402A - .pool -_081A4008: - cmp r0, 0x3 - bgt _081A402A - movs r0, 0x2 - b _081A4028 -_081A4010: - movs r1, 0x3 - str r1, [sp, 0x2C] - b _081A402A -_081A4016: - ldr r0, =0x000040cf - bl VarGet - lsls r0, 16 - movs r1, 0x3 - str r1, [sp, 0x2C] - cmp r0, 0 - bne _081A402A - movs r0, 0x4 -_081A4028: - str r0, [sp, 0x2C] -_081A402A: - movs r1, 0 - mov r9, r1 - b _081A4040 - .pool -_081A4034: - mov r1, r10 - ldrb r0, [r1] - ldr r1, [sp, 0x2C] - cmp r0, r1 - blt _081A4040 - b _081A41E0 -_081A4040: - mov r5, r9 - movs r0, 0 - mov r1, r10 - strb r0, [r1] - mov r0, r9 - adds r0, 0x1 - str r0, [sp, 0x30] -_081A404E: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, =0x000040cf - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x6 - bne _081A40C8 - cmp r7, 0 - bne _081A40E4 - ldr r0, =gUnknown_020375F0 - ldrb r3, [r0] - str r6, [sp] - add r1, sp, 0x10 - str r1, [sp, 0x4] - add r0, sp, 0x1C - str r0, [sp, 0x8] - mov r0, r10 - str r0, [sp, 0xC] - mov r0, r8 - movs r1, 0 - adds r2, r4, 0 - bl sub_81A3EF0 - b _081A40E4 - .pool -_081A40C8: - ldr r0, =gUnknown_020375F0 - ldrb r3, [r0] - str r6, [sp] - add r1, sp, 0x10 - str r1, [sp, 0x4] - add r0, sp, 0x1C - str r0, [sp, 0x8] - mov r0, r10 - str r0, [sp, 0xC] - mov r0, r8 - adds r1, r7, 0 - adds r2, r4, 0 - bl sub_81A3EF0 -_081A40E4: - adds r5, 0x1 - cmp r5, 0x5 - ble _081A40EC - movs r5, 0 -_081A40EC: - cmp r5, r9 - bne _081A404E - ldr r1, [sp, 0x30] - mov r9, r1 - cmp r1, 0x5 - ble _081A4034 - mov r1, r10 - ldrb r0, [r1] - ldr r1, [sp, 0x2C] - cmp r0, r1 - bge _081A41E0 - movs r6, 0 - ldr r0, =gUnknown_08611C9A - ldrh r2, [r0] - ldr r1, =0x0000ffff - mov r8, r0 - cmp r2, r1 - beq _081A4134 - mov r4, r8 -_081A4112: - adds r0, r2, 0 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl pokedex_flag_operation - lsls r0, 24 - cmp r0, 0 - beq _081A412A - adds r6, 0x1 -_081A412A: - adds r4, 0x2 - ldrh r2, [r4] - ldr r0, =0x0000ffff - cmp r2, r0 - bne _081A4112 -_081A4134: - ldr r1, =gStringVar1 - movs r0, 0xFF - strb r0, [r1] - ldr r1, =gUnknown_020375E0 - movs r0, 0x1 - strh r0, [r1] - movs r0, 0 - mov r1, r10 - strb r0, [r1] - mov r1, r8 - ldrh r0, [r1] - ldr r1, =0x0000ffff - cmp r0, r1 - beq _081A416A - mov r5, r10 - adds r7, r1, 0 - mov r4, r8 -_081A4156: - ldrh r0, [r4] - ldrb r1, [r5] - adds r2, r6, 0 - bl sub_81A3DD0 - strb r0, [r5] - adds r4, 0x2 - ldrh r0, [r4] - cmp r0, r7 - bne _081A4156 -_081A416A: - mov r0, r10 - ldrb r4, [r0] - cmp r4, 0 - bne _081A41A4 - ldr r4, =gStringVar1 - ldr r1, =gUnknown_085CCB82 - adds r0, r4, 0 - bl StringAppend - ldr r1, =gUnknown_085CCB88 - adds r0, r4, 0 - bl StringAppend - b _081A4202 - .pool -_081A41A4: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _081A41C0 - ldr r0, =gStringVar1 - ldr r1, =gUnknown_085CCB84 - bl StringAppend - b _081A41C8 - .pool -_081A41C0: - ldr r0, =gStringVar1 - ldr r1, =gUnknown_085CCB82 - bl StringAppend -_081A41C8: - ldr r0, =gStringVar1 - ldr r1, =gUnknown_085CCB8C - bl StringAppend - b _081A4202 - .pool -_081A41E0: - ldr r1, =gUnknown_020375E0 - movs r0, 0 - strh r0, [r1] - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r0, =gUnknown_020375F0 - ldrb r0, [r0] - ldr r1, =0x00000ca9 - adds r2, r1 - movs r1, 0x3 - ands r1, r0 - ldrb r3, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] -_081A4202: - add sp, 0x34 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A3FD4 - - thumb_func_start sub_81A4224 -sub_81A4224: @ 81A4224 - push {lr} - bl sub_81652B4 - pop {r0} - bx r0 - thumb_func_end sub_81A4224 - - thumb_func_start sub_81A4230 -sub_81A4230: @ 81A4230 - push {r4-r7,lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r4, r0, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, =0x000040cf - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x6 - bls _081A425A - b _081A4394 -_081A425A: - lsls r0, 2 - ldr r1, =_081A4278 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081A4278: - .4byte _081A4294 - .4byte _081A42DC - .4byte _081A431C - .4byte _081A4338 - .4byte _081A434C - .4byte _081A4368 - .4byte _081A437C -_081A4294: - ldr r7, =gSaveBlock2Ptr - ldr r0, [r7] - lsls r4, 1 - lsls r1, r5, 2 - adds r1, r4, r1 - movs r6, 0xCE - lsls r6, 4 - adds r3, r0, r6 - adds r2, r3, r1 - ldrh r1, [r2] - ldr r0, =0x0000270e - cmp r1, r0 - bhi _081A4394 - adds r0, r1, 0x1 - strh r0, [r2] - cmp r5, 0 - bne _081A4394 - adds r0, r3, r4 - ldrh r1, [r0] - movs r0, 0x20 - bl sav12_xor_set - ldr r1, [r7] - adds r0, r1, r6 - adds r0, r4 - ldrh r0, [r0] - ldr r2, =0x00000d02 - adds r1, r2 - b _081A4392 - .pool -_081A42DC: - ldr r6, =gSaveBlock2Ptr - ldr r0, [r6] - lsls r2, r4, 1 - lsls r1, r5, 2 - adds r1, r2, r1 - ldr r3, =0x00000d0c - adds r0, r3 - adds r3, r0, r1 - ldrh r0, [r3] - ldr r2, =0x0000270e - cmp r0, r2 - bhi _081A42F8 - adds r0, 0x1 - strh r0, [r3] -_081A42F8: - ldr r0, [r6] - ldr r3, =0x00000d1c - adds r0, r3 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r0, r2 - bhi _081A4394 - adds r0, 0x1 - b _081A4392 - .pool -_081A431C: - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - lsls r0, r4, 1 - lsls r1, r5, 2 - adds r0, r1 - ldr r1, =0x00000dc8 - adds r2, r1 - adds r1, r2, r0 - b _081A4388 - .pool -_081A4338: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r4, 1 - ldr r2, =0x00000dda - adds r0, r2 - b _081A4386 - .pool -_081A434C: - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - lsls r0, r4, 1 - lsls r1, r5, 2 - adds r0, r1 - ldr r3, =0x00000de2 - adds r2, r3 - adds r1, r2, r0 - b _081A4388 - .pool -_081A4368: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r4, 1 - ldr r2, =0x00000e04 - adds r0, r2 - b _081A4386 - .pool -_081A437C: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r4, 1 - ldr r3, =0x00000e1a - adds r0, r3 -_081A4386: - adds r1, r0, r1 -_081A4388: - ldrh r3, [r1] - ldr r0, =0x0000270e - cmp r3, r0 - bhi _081A4394 - adds r0, r3, 0x1 -_081A4392: - strh r0, [r1] -_081A4394: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A4230 - - thumb_func_start sub_81A43A8 -sub_81A43A8: @ 81A43A8 - push {r4-r6,lr} - sub sp, 0x4 - movs r4, 0 - ldr r6, =gSaveBlock1Ptr - movs r5, 0x64 -_081A43B2: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r4, 1 - ldr r2, =0x00000caa - adds r0, r2 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r0, 0 - beq _081A43EE - adds r1, r0, 0 - muls r1, r5 - movs r0, 0xEA - lsls r0, 1 - adds r1, r0 - ldr r0, [r6] - adds r0, r1 - movs r1, 0xC - movs r2, 0 - bl GetMonData - mov r1, sp - strh r0, [r1] - adds r0, r4, 0 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xC - mov r2, sp - bl pokemon_setattr -_081A43EE: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _081A43B2 - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A43A8 - - thumb_func_start sub_81A4410 -sub_81A4410: @ 81A4410 - push {r4,lr} - ldr r4, =gUnknown_020375F0 - bl sub_8185338 - strh r0, [r4] - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r0, =0x00000ca9 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x8 - orrs r0, r2 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A4410 - - thumb_func_start sub_81A443C -sub_81A443C: @ 81A443C - push {lr} - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - cmp r0, 0 - beq _081A4450 - cmp r0, 0x1 - beq _081A4464 - b _081A446E - .pool -_081A4450: - ldr r0, =gStringVar1 - ldr r1, =gUnknown_02038BCA - ldrh r1, [r1] - bl sub_8162E20 - b _081A446E - .pool -_081A4464: - ldr r0, =gStringVar2 - ldr r1, =gUnknown_02038BCA - ldrh r1, [r1] - bl sub_8162E20 -_081A446E: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A443C - - thumb_func_start sub_81A447C -sub_81A447C: @ 81A447C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r0, 0 - str r0, [sp] -_081A448C: - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - ldr r2, [sp] - lsls r1, r2, 1 - ldr r4, =0x00000caa - adds r0, r4 - adds r0, r1 - ldrh r0, [r0] - subs r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r1 - adds r2, 0x1 - str r2, [sp, 0x4] - cmp r0, 0x5 - bhi _081A454E - movs r6, 0 - ldr r0, [sp] - movs r2, 0x64 - adds r1, r0, 0 - muls r1, r2 - ldr r0, =gPlayerParty - adds r7, r1, r0 -_081A44BA: - movs r5, 0 - movs r4, 0xD - adds r4, r6 - mov r8, r4 - adds r0, r6, 0x1 - mov r10, r0 -_081A44C6: - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - ldr r2, =0x00000caa - adds r0, r2 - add r0, r9 - ldrh r0, [r0] - movs r4, 0x64 - adds r1, r0, 0 - muls r1, r4 - movs r0, 0xEA - lsls r0, 1 - adds r1, r0 - ldr r2, =gSaveBlock1Ptr - ldr r0, [r2] - adds r0, r1 - adds r1, r5, 0 - adds r1, 0xD - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - adds r0, r7, 0 - mov r1, r8 - movs r2, 0 - bl GetMonData - cmp r4, r0 - beq _081A4508 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _081A44C6 -_081A4508: - cmp r5, 0x4 - bne _081A4516 - adds r0, r7, 0 - movs r1, 0xA6 - adds r2, r6, 0 - bl sub_80691F4 -_081A4516: - mov r4, r10 - lsls r0, r4, 24 - lsrs r6, r0, 24 - cmp r6, 0x3 - bls _081A44BA - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =gSaveBlock2Ptr - ldr r1, [r2] - ldr r4, =0x00000caa - adds r1, r4 - add r1, r9 - ldrh r1, [r1] - subs r1, 0x1 - movs r3, 0x64 - muls r1, r3 - adds r0, r1 - movs r1, 0x8E - lsls r1, 2 - adds r0, r1 - ldr r2, =gPlayerParty - ldr r4, [sp] - adds r1, r4, 0 - muls r1, r3 - adds r1, r2 - movs r2, 0x64 - bl memcpy -_081A454E: - ldr r1, [sp, 0x4] - lsls r0, r1, 24 - lsrs r0, 24 - str r0, [sp] - cmp r0, 0x3 - bls _081A448C - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A447C - - thumb_func_start sub_81A457C -sub_81A457C: @ 81A457C - push {lr} - ldr r0, =0x000040cf - bl VarGet - lsls r0, 24 - lsrs r0, 24 - bl sub_81A5030 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A457C - - thumb_func_start sub_81A4594 -sub_81A4594: @ 81A4594 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - mov r8, r1 - adds r6, r3, 0 - ldr r1, =gUnknown_0203AB74 - ldrb r5, [r1] - lsls r4, r0, 1 - adds r4, r0 - ldr r1, =gUnknown_085EE424 - adds r4, r1 - mov r1, r8 - lsls r3, r1, 27 - lsrs r3, 24 - lsls r1, r0, 2 - adds r1, r0 - adds r2, r1 - lsls r2, 3 - adds r2, 0x1 - lsls r2, 24 - lsrs r7, r2, 24 - str r7, [sp] - movs r0, 0xFF - mov r10, r0 - str r0, [sp, 0x4] - movs r1, 0 - mov r9, r1 - str r1, [sp, 0x8] - adds r0, r5, 0 - movs r1, 0x1 - adds r2, r4, 0 - bl Print - movs r0, 0xFF - strb r0, [r6, 0xD] - ldrh r0, [r6, 0x4] - cmp r0, 0 - beq _081A465C - adds r1, r6, 0x6 - ldrb r2, [r6, 0xE] - add r0, sp, 0xC - bl sub_81DB5E8 - ldr r1, =gUnknown_0203AB74 - ldrb r0, [r1] - mov r3, r8 - adds r3, 0x2 - lsls r3, 27 - lsrs r3, 24 - str r7, [sp] - mov r1, r10 - str r1, [sp, 0x4] - mov r1, r9 - str r1, [sp, 0x8] - movs r1, 0x1 - add r2, sp, 0xC - bl Print - ldrh r1, [r6, 0x4] - ldr r0, =0x0000270f - cmp r1, r0 - bls _081A4618 - adds r1, r0, 0 -_081A4618: - ldr r0, =gStringVar2 - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldr r5, =gStringVar4 - ldr r1, =gUnknown_08611D08 - ldr r0, [sp, 0x4C] - lsls r0, 2 - adds r0, r1 - ldr r4, [r0] - adds r0, r5, 0 - adds r1, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0xC8 - bl GetStringRightAlignXOffset - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - ldr r1, =gUnknown_0203AB74 - ldrb r0, [r1] - str r7, [sp] - mov r1, r10 - str r1, [sp, 0x4] - mov r1, r9 - str r1, [sp, 0x8] - movs r1, 0x1 - adds r2, r5, 0 - bl Print -_081A465C: - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A4594 - - thumb_func_start sub_81A4684 -sub_81A4684: @ 81A4684 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - adds r6, r0, 0 - adds r7, r1, 0 - mov r10, r2 - adds r5, r3, 0 - ldr r1, =gUnknown_0203AB74 - ldrb r0, [r1] - lsls r2, r6, 1 - adds r2, r6 - ldr r1, =gUnknown_085EE424 - adds r2, r1 - lsls r3, r7, 27 - lsrs r3, 24 - mov r12, r3 - lsls r1, r6, 2 - adds r1, r6 - mov r3, r10 - adds r4, r3, r1 - lsls r1, r4, 3 - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp] - movs r1, 0xFF - mov r9, r1 - str r1, [sp, 0x4] - movs r3, 0 - mov r8, r3 - str r3, [sp, 0x8] - movs r1, 0x1 - mov r3, r12 - bl Print - ldrh r0, [r5, 0x8] - cmp r0, 0 - beq _081A47BC - movs r0, 0xFF - strb r0, [r5, 0x11] - movs r0, 0x1 - negs r0, r0 - strb r0, [r5, 0x19] - adds r1, r5, 0 - adds r1, 0xA - ldrb r2, [r5, 0x1A] - add r0, sp, 0xC - bl sub_81DB5E8 - ldr r1, =gUnknown_0203AB74 - ldrb r0, [r1] - adds r3, r7, 0x2 - lsls r3, 27 - lsrs r3, 24 - subs r1, r4, 0x1 - lsls r1, 3 - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp] - mov r2, r9 - str r2, [sp, 0x4] - mov r1, r8 - str r1, [sp, 0x8] - movs r1, 0x1 - add r2, sp, 0xC - bl Print - adds r4, r5, 0 - adds r4, 0x12 - adds r0, r4, 0 - bl sub_8009228 - cmp r0, 0 - beq _081A4734 - add r0, sp, 0xC - adds r1, r4, 0 - movs r2, 0x1 - bl sub_81DB5E8 - b _081A473C - .pool -_081A4734: - add r0, sp, 0xC - adds r1, r4, 0 - bl StringCopy -_081A473C: - ldr r2, =gUnknown_0203AB74 - mov r9, r2 - ldrb r0, [r2] - adds r3, r7, 0x4 - lsls r3, 27 - lsrs r3, 24 - lsls r1, r6, 2 - adds r1, r6 - mov r2, r10 - adds r6, r2, r1 - adds r1, r6, 0x1 - lsls r1, 3 - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp] - movs r1, 0xFF - mov r8, r1 - str r1, [sp, 0x4] - movs r7, 0 - str r7, [sp, 0x8] - movs r1, 0x1 - add r2, sp, 0xC - bl Print - ldrh r1, [r5, 0x8] - ldr r0, =0x0000270f - cmp r1, r0 - bls _081A4778 - adds r1, r0, 0 -_081A4778: - ldr r0, =gStringVar2 - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldr r5, =gStringVar4 - ldr r0, =gUnknown_08611D08 - ldr r4, [r0, 0x24] - adds r0, r5, 0 - adds r1, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0xC8 - bl GetStringRightAlignXOffset - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r2, r9 - ldrb r0, [r2] - lsls r1, r6, 3 - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp] - mov r1, r8 - str r1, [sp, 0x4] - str r7, [sp, 0x8] - movs r1, 0x1 - adds r2, r5, 0 - bl Print -_081A47BC: - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A4684 - - thumb_func_start sub_81A47E0 -sub_81A47E0: @ 81A47E0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x44 - mov r9, r0 - mov r10, r1 - str r2, [sp, 0x40] - movs r0, 0xAC - lsls r0, 1 - bl AllocZeroed - mov r8, r0 - bl sub_80E8260 - add r0, sp, 0x30 - mov r12, r0 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r3, [sp, 0x40] - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 4 - mov r4, r10 - lsls r0, r4, 1 - add r0, r10 - lsls r0, 5 - adds r1, r0 - adds r4, r1, r2 - mov r3, sp - movs r2, 0x2 -_081A4820: - adds r0, r3, 0 - movs r5, 0x87 - lsls r5, 2 - adds r1, r4, r5 - ldm r1!, {r5-r7} - stm r0!, {r5-r7} - ldr r1, [r1] - str r1, [r0] - adds r4, 0x10 - adds r3, 0x10 - subs r2, 0x1 - cmp r2, 0 - bge _081A4820 - ldr r6, [sp, 0x40] - lsls r0, r6, 4 - mov r7, r10 - lsls r1, r7, 5 - adds r0, r1 - mov r1, r12 - add r0, r8 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldr r0, [r0] - str r0, [r1] - movs r2, 0 -_081A4852: - movs r1, 0 - movs r4, 0 - movs r3, 0 - lsls r5, r2, 4 - adds r6, r2, 0x1 - mov r2, sp -_081A485E: - ldrh r0, [r2, 0x4] - cmp r0, r1 - ble _081A4868 - adds r4, r3, 0 - adds r1, r0, 0 -_081A4868: - adds r2, 0x10 - adds r3, 0x1 - cmp r3, 0x3 - ble _081A485E - mov r0, sp - ldrh r0, [r0, 0x34] - cmp r0, r1 - blt _081A487A - movs r4, 0x3 -_081A487A: - lsls r0, r4, 4 - mov r7, sp - adds r2, r7, r0 - mov r0, r9 - adds r1, r5, r0 - adds r0, r2, 0 - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldr r0, [r0] - str r0, [r1] - movs r0, 0 - strh r0, [r2, 0x4] - adds r2, r6, 0 - cmp r2, 0x2 - ble _081A4852 - mov r0, r8 - bl Free - add sp, 0x44 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A47E0 - - thumb_func_start sub_81A48B4 -sub_81A48B4: @ 81A48B4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x74 - mov r9, r0 - mov r10, r1 - movs r0, 0xAC - lsls r0, 1 - bl AllocZeroed - mov r8, r0 - bl sub_80E8260 - mov r0, sp - adds r0, 0x54 - str r0, [sp, 0x70] - add r1, sp, 0x5C - mov r12, r1 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - movs r0, 0x54 - mov r2, r10 - muls r2, r0 - adds r0, r2, 0 - adds r3, r0, r1 - mov r2, sp - movs r4, 0x2 -_081A48EE: - adds r0, r2, 0 - ldr r5, =0x0000057c - adds r1, r3, r5 - ldm r1!, {r5-r7} - stm r0!, {r5-r7} - ldm r1!, {r5-r7} - stm r0!, {r5-r7} - ldr r1, [r1] - str r1, [r0] - adds r3, 0x1C - adds r2, 0x1C - subs r4, 0x1 - cmp r4, 0 - bge _081A48EE - mov r6, r10 - lsls r0, r6, 3 - subs r0, r6 - lsls r0, 2 - add r0, r8 - ldr r1, [sp, 0x70] - movs r7, 0x90 - lsls r7, 1 - adds r0, r7 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldr r0, [r0] - str r0, [r1] - movs r4, 0 -_081A492A: - movs r1, 0 - movs r5, 0 - movs r3, 0 - lsls r6, r4, 3 - adds r7, r4, 0x1 - mov r2, sp -_081A4936: - ldrh r0, [r2, 0x8] - cmp r0, r1 - ble _081A4940 - adds r5, r3, 0 - adds r1, r0, 0 -_081A4940: - adds r2, 0x1C - adds r3, 0x1 - cmp r3, 0x2 - ble _081A4936 - mov r2, r12 - ldrh r0, [r2] - cmp r0, r1 - blt _081A4952 - movs r5, 0x3 -_081A4952: - subs r1, r6, r4 - lsls r1, 2 - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - mov r3, sp - adds r2, r3, r0 - add r1, r9 - adds r0, r2, 0 - ldm r0!, {r4-r6} - stm r1!, {r4-r6} - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldr r0, [r0] - str r0, [r1] - movs r0, 0 - strh r0, [r2, 0x8] - adds r4, r7, 0 - cmp r4, 0x2 - ble _081A492A - mov r0, r8 - bl Free - add sp, 0x74 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A48B4 - - thumb_func_start sub_81A4998 -sub_81A4998: @ 81A4998 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x94 - adds r7, r0, 0 - str r1, [sp, 0x90] - ldr r0, =gStringVar1 - ldr r4, =gUnknown_08611CB0 - lsls r5, r7, 3 - adds r1, r5, r4 - ldr r1, [r1] - bl StringCopy - ldr r6, =gStringVar4 - adds r4, 0x4 - adds r5, r4 - ldr r1, [r5] - adds r0, r6, 0 - bl StringExpandPlaceholders - ldr r0, =gUnknown_0203AB74 - mov r8, r0 - ldrb r0, [r0] - movs r1, 0x1 - mov r10, r1 - str r1, [sp] - movs r2, 0xFF - mov r9, r2 - str r2, [sp, 0x4] - movs r5, 0 - str r5, [sp, 0x8] - adds r2, r6, 0 - movs r3, 0 - bl Print - ldr r1, =gUnknown_08611D00 - ldr r2, [sp, 0x90] - lsls r0, r2, 2 - adds r0, r1 - ldr r4, [r0] - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0xD0 - bl GetStringRightAlignXOffset - adds r3, r0, 0 - mov r1, r8 - ldrb r0, [r1] - lsls r3, 24 - lsrs r3, 24 - mov r2, r10 - str r2, [sp] - mov r1, r9 - str r1, [sp, 0x4] - str r5, [sp, 0x8] - movs r1, 0x1 - adds r2, r4, 0 - bl Print - cmp r7, 0x9 - bne _081A4A6C - ldr r2, =gSaveBlock2Ptr - ldr r0, [r2] - ldr r1, =0x00000ee8 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - ldr r0, [r2] - movs r2, 0xEF - lsls r2, 4 - adds r0, r2 - movs r1, 0x1 - negs r1, r1 - strb r1, [r0] - add r4, sp, 0x3C - adds r0, r4, 0 - ldr r1, [sp, 0x90] - bl sub_81A48B4 -_081A4A3A: - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0x4 - adds r3, r4, 0 - bl sub_81A4684 - adds r4, 0x1C - adds r5, 0x1 - cmp r5, 0x2 - ble _081A4A3A - b _081A4A90 - .pool -_081A4A6C: - add r0, sp, 0xC - adds r1, r7, 0 - ldr r2, [sp, 0x90] - bl sub_81A47E0 - movs r5, 0 - add r4, sp, 0xC -_081A4A7A: - str r7, [sp] - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0x4 - adds r3, r4, 0 - bl sub_81A4594 - adds r4, 0x10 - adds r5, 0x1 - cmp r5, 0x2 - ble _081A4A7A -_081A4A90: - add sp, 0x94 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81A4998 - - thumb_func_start sub_81A4AA0 -sub_81A4AA0: @ 81A4AA0 - push {r4,lr} - ldr r4, =gUnknown_0203AB74 - ldr r0, =gUnknown_08611C84 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, 0 - bl sub_81973FC - ldrb r0, [r4] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - movs r1, 0 - bl sub_81A4998 - ldrb r0, [r4] - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, 0x3 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A4AA0 - - thumb_func_start sub_81A4AE8 -sub_81A4AE8: @ 81A4AE8 - push {r4,lr} - ldr r4, =gUnknown_0203AB74 - ldrb r0, [r4] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - movs r1, 0x1 - bl sub_81A4998 - ldrb r0, [r4] - movs r1, 0x2 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A4AE8 - - thumb_func_start sub_81A4B14 -sub_81A4B14: @ 81A4B14 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r1, 0 - ldr r3, =gSaveBlock2Ptr -_081A4B24: - movs r6, 0 - lsls r0, r1, 1 - adds r2, r1, 0x1 - mov r10, r2 - adds r0, r1 - lsls r0, 5 - mov r8, r0 - movs r7, 0 - movs r0, 0x87 - lsls r0, 2 - add r0, r8 - mov r9, r0 -_081A4B3C: - movs r5, 0 - adds r2, r7, 0 - mov r1, r8 - adds r4, r7, r1 -_081A4B44: - ldr r0, [r3] - add r0, r9 - adds r0, r2 - lsls r1, r5, 4 - adds r0, r1 - movs r1, 0 - str r2, [sp] - str r3, [sp, 0x4] - bl sub_80842F4 - ldr r3, [sp, 0x4] - ldr r0, [r3] - adds r0, r4 - ldr r1, =0x00000222 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - ldr r0, [r3] - adds r0, r4 - movs r1, 0x88 - lsls r1, 2 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - adds r4, 0x10 - adds r5, 0x1 - ldr r2, [sp] - cmp r5, 0x2 - ble _081A4B44 - adds r7, 0x30 - adds r6, 0x1 - cmp r6, 0x1 - ble _081A4B3C - mov r1, r10 - cmp r1, 0x8 - ble _081A4B24 - movs r6, 0 - ldr r7, =gSaveBlock2Ptr - movs r2, 0x54 - mov r10, r2 - movs r3, 0xFF - mov r9, r3 -_081A4B98: - adds r0, r6, 0x1 - mov r8, r0 - mov r1, r10 - muls r1, r6 - movs r0, 0x54 - adds r4, r6, 0 - muls r4, r0 - movs r2, 0 - ldr r3, =0x0000057c - adds r6, r1, r3 - movs r5, 0x2 -_081A4BAE: - ldr r0, [r7] - adds r0, r6 - adds r0, r2 - movs r1, 0 - str r2, [sp] - bl sub_80842F4 - ldr r0, [r7] - adds r0, r6 - ldr r2, [sp] - adds r0, r2 - adds r0, 0x4 - movs r1, 0 - bl sub_80842F4 - ldr r1, [r7] - adds r1, r4 - ldr r0, =0x00000586 - adds r1, r0 - ldrb r0, [r1] - mov r3, r9 - orrs r0, r3 - strb r0, [r1] - ldr r1, [r7] - adds r1, r4 - ldr r0, =0x0000058e - adds r1, r0 - ldrb r0, [r1] - orrs r0, r3 - strb r0, [r1] - ldr r0, [r7] - adds r0, r4 - ldr r1, =0x00000584 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - adds r4, 0x1C - ldr r2, [sp] - adds r2, 0x1C - subs r5, 0x1 - cmp r5, 0 - bge _081A4BAE - mov r6, r8 - cmp r6, 0x1 - ble _081A4B98 - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A4B14 - - thumb_func_start sub_81A4C30 -sub_81A4C30: @ 81A4C30 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r0, 0x96 - lsls r0, 2 - bl AllocZeroed - adds r7, r0, 0 - adds r4, r7, 0 - movs r5, 0 - movs r0, 0xFA - lsls r0, 1 - adds r6, r7, r0 - ldr r0, =gPlayerParty - mov r8, r0 -_081A4C4E: - mov r0, r8 - adds r1, r5, r0 - adds r0, r4, 0 - movs r2, 0x64 - bl memcpy - adds r4, 0x64 - adds r5, 0x64 - cmp r4, r6 - ble _081A4C4E - ldr r4, =gUnknown_020244E9 - ldrb r5, [r4] - bl copy_player_party_from_sav1 - bl sub_8076D5C - movs r0, 0x1 - bl save_game_when_memory_present - bl sav2_gender2_inplace_and_xFE - strb r5, [r4] - adds r4, r7, 0 - ldr r5, =gPlayerParty - movs r0, 0xFA - lsls r0, 1 - adds r6, r7, r0 -_081A4C84: - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x64 - bl memcpy - adds r4, 0x64 - adds r5, 0x64 - cmp r4, r6 - ble _081A4C84 - adds r0, r7, 0 - bl Free - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A4C30 - - thumb_func_start sub_81A4CB0 -sub_81A4CB0: @ 81A4CB0 - push {lr} - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _081A4CD0 - bl sub_8185EA0 - lsls r0, 24 - lsrs r0, 24 - b _081A4CDA - .pool -_081A4CD0: - ldr r0, =0x000040cf - bl VarGet - lsls r0, 16 - lsrs r0, 16 -_081A4CDA: - ldr r2, =gTrainers - ldr r1, =gUnknown_08611D30 - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x3] - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A4CB0 - - thumb_func_start sub_81A4D00 -sub_81A4D00: @ 81A4D00 - push {lr} - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _081A4D20 - bl sub_8185EA0 - lsls r0, 24 - lsrs r0, 24 - b _081A4D2A - .pool -_081A4D20: - ldr r0, =0x000040cf - bl VarGet - lsls r0, 16 - lsrs r0, 16 -_081A4D2A: - ldr r2, =gTrainers - ldr r1, =gUnknown_08611D30 - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x1] - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A4D00 - - thumb_func_start sub_81A4D50 -sub_81A4D50: @ 81A4D50 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _081A4D70 - bl sub_8185EA0 - lsls r0, 24 - lsrs r0, 24 - b _081A4D7A - .pool -_081A4D70: - ldr r0, =0x000040cf - bl VarGet - lsls r0, 16 - lsrs r0, 16 -_081A4D7A: - movs r3, 0 - lsls r0, 1 - ldr r2, =gTrainers - ldr r1, =gUnknown_08611D30 - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r2, 0x4 - adds r2, r0, r2 -_081A4D90: - adds r1, r4, r3 - ldrb r0, [r2] - strb r0, [r1] - adds r2, 0x1 - adds r3, 0x1 - cmp r3, 0x6 - ble _081A4D90 - adds r1, r4, r3 - movs r0, 0xFF - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A4D50 - - thumb_func_start sub_81A4DB8 -sub_81A4DB8: @ 81A4DB8 - push {lr} - ldr r0, =0x000040cf - bl VarGet - lsls r0, 16 - ldr r1, =gUnknown_08611C8C - lsrs r0, 15 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A4DB8 - - thumb_func_start sub_81A4DD8 -sub_81A4DD8: @ 81A4DD8 - push {lr} - ldr r0, =0x000040cf - bl VarGet - lsls r0, 16 - ldr r2, =0x00004010 - ldr r1, =gUnknown_08611C8C - lsrs r0, 15 - adds r0, r1 - ldrb r1, [r0] - adds r0, r2, 0 - bl VarSet - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A4DD8 - - thumb_func_start sub_81A4E04 -sub_81A4E04: @ 81A4E04 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x44 - ldr r0, =0x000040cf - bl VarGet - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x20] - bl sub_81A513C - str r0, [sp, 0x24] - ldr r0, [sp, 0x20] - cmp r0, 0x1 - bne _081A4E44 - ldr r0, =0x000003fe - bl sub_81953A0 - lsls r0, 16 - lsrs r0, 16 - bl sub_818FC78 - adds r4, r0, 0 - b _081A4E46 - .pool -_081A4E44: - movs r4, 0x7 -_081A4E46: - bl zero_enemy_party_data - movs r1, 0 - str r1, [sp, 0x18] - bl sub_8165C40 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x1C] - movs r2, 0 - str r2, [sp, 0x14] -_081A4E5C: - movs r0, 0x1 - ands r0, r4 - asrs r4, 1 - str r4, [sp, 0x30] - ldr r3, [sp, 0x14] - adds r3, 0x1 - str r3, [sp, 0x28] - cmp r0, 0 - bne _081A4E70 - b _081A4FC4 -_081A4E70: - ldr r4, [sp, 0x14] - lsls r4, 2 - mov r9, r4 - ldr r0, [sp, 0x24] - lsls r0, 4 - str r0, [sp, 0x38] - ldr r1, [sp, 0x20] - lsls r1, 4 - str r1, [sp, 0x34] - ldr r2, [sp, 0x1C] - lsls r2, 24 - str r2, [sp, 0x3C] - ldr r3, [sp, 0x18] - adds r3, 0x1 - str r3, [sp, 0x2C] - ldr r0, [sp, 0x14] - add r0, r9 - lsls r0, 2 - mov r8, r0 -_081A4E96: - bl Random - adds r4, r0, 0 - bl Random - lsls r4, 16 - lsrs r7, r4, 16 - lsls r0, 16 - orrs r7, r0 - ldr r0, =0x0000ef2a - adds r1, r7, 0 - bl sub_806EBD0 - lsls r0, 24 - cmp r0, 0 - bne _081A4E96 - ldr r4, [sp, 0x38] - ldr r1, [sp, 0x24] - subs r0, r4, r1 - lsls r5, r0, 2 - mov r2, r8 - adds r4, r2, r5 - ldr r3, [sp, 0x34] - ldr r1, [sp, 0x20] - subs r0, r3, r1 - lsls r6, r0, 3 - adds r4, r6 - ldr r2, =gUnknown_0861156C - adds r4, r2 - adds r0, r7, 0 - bl GetNatureFromPersonality - ldrb r1, [r4, 0x5] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - bne _081A4E96 - ldr r4, [sp, 0x18] - movs r0, 0x64 - adds r3, r4, 0 - muls r3, r0 - mov r8, r3 - ldr r1, =gEnemyParty - add r1, r8 - mov r10, r1 - ldr r4, [sp, 0x14] - add r4, r9 - lsls r4, 2 - adds r0, r4, r5 - adds r0, r6 - ldr r2, =gUnknown_0861156C - adds r0, r2 - ldrh r1, [r0] - ldr r3, [sp, 0x3C] - lsrs r2, r3, 24 - ldrb r3, [r0, 0x4] - movs r0, 0x1 - str r0, [sp] - str r7, [sp, 0x4] - str r0, [sp, 0x8] - ldr r0, =0x0000ef2a - str r0, [sp, 0xC] - mov r0, r10 - bl create_pokemon_set_level - ldr r0, =gUnknown_0861156C - adds r5, r0 - adds r5, r6, r5 - adds r4, r5, r4 - adds r4, 0x2 - mov r0, r10 - movs r1, 0xC - adds r2, r4, 0 - bl pokemon_setattr - movs r7, 0 - mov r6, r8 - ldr r3, =gEnemyParty -_081A4F32: - adds r1, r7, 0 - adds r1, 0x1A - ldr r0, [sp, 0x14] - add r0, r9 - lsls r4, r0, 2 - adds r2, r5, r4 - adds r0, r7, 0x6 - adds r2, r0 - adds r0, r6, r3 - str r3, [sp, 0x40] - bl pokemon_setattr - adds r7, 0x1 - ldr r3, [sp, 0x40] - cmp r7, 0x5 - ble _081A4F32 - movs r1, 0xFF - add r0, sp, 0x10 - strb r1, [r0] - movs r7, 0 - ldr r1, [sp, 0x18] - movs r2, 0x64 - adds r6, r1, 0 - muls r6, r2 - ldr r3, =gUnknown_08611578 - mov r8, r3 - ldr r3, =gEnemyParty - adds r5, r4, 0 -_081A4F6A: - ldr r4, [sp, 0x38] - ldr r0, [sp, 0x24] - subs r1, r4, r0 - lsls r1, 2 - adds r1, r5, r1 - ldr r2, [sp, 0x34] - ldr r4, [sp, 0x20] - subs r0, r2, r4 - lsls r0, 3 - adds r1, r0 - add r1, r8 - ldrh r4, [r1] - lsls r2, r7, 24 - lsrs r2, 24 - adds r0, r6, r3 - adds r1, r4, 0 - str r3, [sp, 0x40] - bl sub_80691F4 - ldr r3, [sp, 0x40] - cmp r4, 0xDA - bne _081A4F9C - movs r1, 0 - add r0, sp, 0x10 - strb r1, [r0] -_081A4F9C: - adds r5, 0x2 - adds r7, 0x1 - cmp r7, 0x3 - ble _081A4F6A - ldr r0, [sp, 0x18] - movs r1, 0x64 - adds r4, r0, 0 - muls r4, r1 - ldr r0, =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x20 - add r2, sp, 0x10 - bl pokemon_setattr - adds r0, r4, 0 - bl pokemon_calc_effective_stats - ldr r2, [sp, 0x2C] - str r2, [sp, 0x18] -_081A4FC4: - ldr r4, [sp, 0x30] - ldr r3, [sp, 0x28] - str r3, [sp, 0x14] - cmp r3, 0x2 - bgt _081A4FD0 - b _081A4E5C -_081A4FD0: - add sp, 0x44 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A4E04 - - thumb_func_start sub_81A4FF0 -sub_81A4FF0: @ 81A4FF0 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =0x000040cf - bl VarGet - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - bl sub_81A513C - ldr r3, =gUnknown_0861156C - lsls r2, r4, 2 - adds r2, r4 - lsls r1, r0, 4 - subs r1, r0 - adds r1, r2 - lsls r1, 2 - lsls r0, r5, 4 - subs r0, r5 - lsls r0, 3 - adds r1, r0 - adds r1, r3 - ldrh r0, [r1] - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A4FF0 - - thumb_func_start sub_81A5030 -sub_81A5030: @ 81A5030 - push {lr} - lsls r0, 24 - ldr r2, =gUnknown_02038BCA - ldr r3, =0x000003fe - adds r1, r3, 0 - strh r1, [r2] - ldr r2, =0x00004010 - ldr r1, =gUnknown_08611C8C - lsrs r0, 23 - adds r0, r1 - ldrb r1, [r0] - adds r0, r2, 0 - bl VarSet - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A5030 - - thumb_func_start sub_81A5060 -sub_81A5060: @ 81A5060 - push {r4-r6,lr} - adds r6, r0, 0 - adds r4, r1, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =0x000040cf - bl VarGet - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - bl sub_81A513C - ldr r2, =gUnknown_0861156C - lsls r4, 1 - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 2 - adds r4, r1 - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 2 - adds r4, r1 - lsls r0, r5, 4 - subs r0, r5 - lsls r0, 3 - adds r4, r0 - adds r2, 0xC - adds r4, r2 - ldrh r0, [r4] - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A5060 - - thumb_func_start sub_81A50B0 -sub_81A50B0: @ 81A50B0 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =0x000040cf - bl VarGet - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - bl sub_81A513C - ldr r3, =gUnknown_0861156C - lsls r2, r4, 2 - adds r2, r4 - lsls r1, r0, 4 - subs r1, r0 - adds r1, r2 - lsls r1, 2 - lsls r0, r5, 4 - subs r0, r5 - lsls r0, 3 - adds r1, r0 - adds r1, r3 - ldrb r0, [r1, 0x5] - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A50B0 - - thumb_func_start sub_81A50F0 -sub_81A50F0: @ 81A50F0 - push {r4-r6,lr} - adds r6, r0, 0 - adds r4, r1, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =0x000040cf - bl VarGet - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - bl sub_81A513C - ldr r2, =gUnknown_0861156C - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 2 - adds r4, r1 - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 2 - adds r4, r1 - lsls r0, r5, 4 - subs r0, r5 - lsls r0, 3 - adds r4, r0 - adds r2, 0x6 - adds r4, r2 - ldrb r0, [r4] - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A50F0 - - thumb_func_start sub_81A513C -sub_81A513C: @ 81A513C - push {r4,r5,lr} - ldr r0, =0x000040cf - bl VarGet - lsls r0, 16 - lsrs r5, r0, 16 - lsls r0, r5, 24 - lsrs r0, 24 - bl sub_81A3B30 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bne _081A51A0 - bl sub_81A39C4 - lsls r0, 16 - ldr r3, =gUnknown_08611550 - lsls r2, r5, 2 - adds r1, r3, 0x3 - adds r1, r2, r1 - lsrs r0, 16 - ldrb r1, [r1] - adds r1, r0, r1 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r1, r0 - bne _081A5180 - movs r4, 0 - b _081A51A0 - .pool -_081A5180: - adds r0, r3, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r1, r0 - beq _081A519E - cmp r1, r0 - ble _081A51A0 - subs r0, r1, r0 - adds r1, r3, 0x2 - adds r1, r2, r1 - ldrb r1, [r1] - bl __modsi3 - cmp r0, 0 - bne _081A51A0 -_081A519E: - movs r4, 0x1 -_081A51A0: - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81A513C - - thumb_func_start sub_81A51A8 -sub_81A51A8: @ 81A51A8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _081A51D4 - bl sub_8185EA0 - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8185EAC - lsls r0, 24 - lsrs r1, r0, 24 - b _081A51E4 - .pool -_081A51D4: - ldr r0, =0x000040cf - bl VarGet - lsls r0, 16 - lsrs r4, r0, 16 - bl sub_81A513C - adds r1, r0, 0 -_081A51E4: - cmp r5, 0 - beq _081A51F4 - cmp r5, 0x1 - beq _081A5214 - b _081A5228 - .pool -_081A51F4: - ldr r0, =gStringVar4 - ldr r2, =gUnknown_08611DB0 - lsls r1, 2 - adds r1, r2 - ldr r2, [r1] - lsls r1, r4, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - b _081A5228 - .pool -_081A5214: - ldr r0, =gStringVar4 - ldr r2, =gUnknown_08611DB8 - lsls r1, 2 - adds r1, r2 - ldr r2, [r1] - lsls r1, r4, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy -_081A5228: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A51A8 - - thumb_func_start sub_81A5238 -sub_81A5238: @ 81A5238 - push {lr} - ldr r1, =gUnknown_08611F84 - ldr r0, =gUnknown_020375E0 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A5238 - - thumb_func_start sub_81A5258 -sub_81A5258: @ 81A5258 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r6, 0 - ldrb r0, [r5] - cmp r0, 0xA - bls _081A5268 - b _081A5544 -_081A5268: - lsls r0, 2 - ldr r1, =_081A5278 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081A5278: - .4byte _081A52A4 - .4byte _081A52F4 - .4byte _081A531C - .4byte _081A53B4 - .4byte _081A540C - .4byte _081A542C - .4byte _081A544C - .4byte _081A5490 - .4byte _081A553E - .4byte _081A54D4 - .4byte _081A5520 -_081A52A4: - ldr r0, =0x7fffff1c - movs r1, 0 - str r1, [sp] - movs r1, 0x4 - movs r2, 0 - movs r3, 0x8 - bl BeginNormalPaletteFade - ldr r1, =0x00003f3e - movs r0, 0x48 - bl SetGpuReg - ldr r0, =gUnknown_08611F74 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_08D855E8 - movs r1, 0xF8 - lsls r1, 1 - movs r2, 0x20 - bl LoadCompressedPalette - ldr r1, =gUnknown_02022E24 - movs r0, 0xFF - strh r0, [r1] - ldr r1, =gUnknown_02022E26 - movs r0, 0x70 - strh r0, [r1] - b _081A553E - .pool -_081A52F4: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _081A5306 - b _081A5544 -_081A5306: - str r0, [sp] - movs r0, 0x5 - movs r1, 0 - movs r2, 0x18 - movs r3, 0xD - bl sub_8056A3C - b _081A553E - .pool -_081A531C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081A5328 - b _081A5544 -_081A5328: - ldr r1, =gUnknown_02022F58 - movs r2, 0xA1 - strb r2, [r1] - movs r0, 0xFF - strb r0, [r1, 0x1] - ldr r1, =gUnknown_02022F68 - strb r2, [r1] - movs r0, 0x1 - negs r0, r0 - strb r0, [r1, 0x1] - ldr r0, =gUnknown_085CCDB2 - bl get_battle_strings_ - ldr r4, =gUnknown_02022E2C - adds r0, r4, 0 - movs r1, 0xF - bl battle_show_message_maybe - ldr r0, =gUnknown_085CCDB5 - movs r1, 0x10 - bl battle_show_message_maybe - ldr r0, =gUnknown_085CCDB8 - bl get_battle_strings_ - adds r0, r4, 0 - movs r1, 0x11 - bl battle_show_message_maybe - ldr r0, =gUnknown_085CCDBB - movs r1, 0x12 - bl battle_show_message_maybe - ldr r0, =gUnknown_085CCDC0 - movs r1, 0x13 - bl battle_show_message_maybe - ldr r0, =gUnknown_085CCDC6 - movs r1, 0x14 - bl battle_show_message_maybe - ldr r0, =gUnknown_085CCDCB - bl get_battle_strings_ - adds r0, r4, 0 - movs r1, 0x15 - bl battle_show_message_maybe - b _081A553E - .pool -_081A53B4: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081A53C0 - b _081A5544 -_081A53C0: - ldr r1, =0x00003f3f - movs r0, 0x48 - bl SetGpuReg - movs r6, 0x80 - lsls r6, 15 - movs r4, 0x7 -_081A53CE: - asrs r1, r6, 16 - ldr r0, =gUnknown_08611F5C - movs r2, 0x54 - movs r3, 0 - bl AddObjectToFront - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - movs r1, 0x3 - bl StartObjectImageAnim - movs r0, 0x80 - lsls r0, 13 - adds r6, r0 - subs r4, 0x1 - cmp r4, 0 - bge _081A53CE - b _081A553C - .pool -_081A540C: - ldr r0, =0x00000109 - bl audio_play - movs r0, 0x50 - movs r1, 0x28 - movs r2, 0 - movs r3, 0 - bl sub_81A5558 - movs r0, 0xA0 - movs r1, 0x28 - movs r2, 0 - b _081A5464 - .pool -_081A542C: - ldr r0, =0x00000109 - bl audio_play - movs r0, 0x50 - movs r1, 0x38 - movs r2, 0x1 - movs r3, 0 - bl sub_81A5558 - movs r0, 0xA0 - movs r1, 0x38 - movs r2, 0x1 - b _081A5464 - .pool -_081A544C: - ldr r0, =0x00000109 - bl audio_play - movs r0, 0x50 - movs r1, 0x48 - movs r2, 0x2 - movs r3, 0 - bl sub_81A5558 - movs r0, 0xA0 - movs r1, 0x48 - movs r2, 0x2 -_081A5464: - movs r3, 0x1 - bl sub_81A5558 - ldr r0, =gUnknown_085CCDCB - bl get_battle_strings_ - ldr r0, =gUnknown_02022E2C - movs r1, 0x15 - bl battle_show_message_maybe - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - movs r6, 0x1 - b _081A5544 - .pool -_081A5490: - movs r0, 0x85 - lsls r0, 1 - bl audio_play - ldr r0, =gUnknown_02022F58 - ldr r1, =gUnknown_02022F68 - ldrb r2, [r0] - ldrb r0, [r1] - cmp r2, r0 - bls _081A54BC - movs r6, 0x2 - ldr r1, =gUnknown_02024474 - movs r0, 0 - strb r0, [r1, 0x17] - b _081A553E - .pool -_081A54BC: - cmp r2, r0 - bcs _081A54D0 - movs r6, 0x3 - ldr r1, =gUnknown_02024474 - movs r0, 0x1 - strb r0, [r1, 0x17] - b _081A553E - .pool -_081A54D0: - movs r6, 0x4 - b _081A553E -_081A54D4: - ldr r1, =0x00003f3e - movs r0, 0x48 - bl SetGpuReg - movs r0, 0x1 - str r0, [sp] - movs r0, 0x5 - movs r1, 0 - movs r2, 0x18 - movs r3, 0xD - bl sub_8056A3C - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r0, =gMPlay_BGM - ldr r1, =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl - ldr r0, =0x7fffff1c - movs r1, 0 - str r1, [sp] - movs r1, 0x4 - movs r2, 0x8 - movs r3, 0 - bl BeginNormalPaletteFade - b _081A553E - .pool -_081A5520: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081A5544 - ldr r1, =0x00003f3f - movs r0, 0x48 - bl SetGpuReg - movs r0, 0xFA - lsls r0, 2 - bl FreeObjectTilesByTag -_081A553C: - movs r6, 0x1 -_081A553E: - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] -_081A5544: - adds r0, r6, 0 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A5258 - - thumb_func_start sub_81A5558 -sub_81A5558: @ 81A5558 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - lsls r3, 24 - lsrs r7, r3, 24 - movs r6, 0 - movs r1, 0 - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - movs r3, 0xA6 - lsls r3, 2 - adds r4, r0, r3 - ldr r5, =0x0000029a - adds r3, r0, r5 - adds r5, 0x2 - adds r5, r0 - mov r8, r5 - cmp r2, 0x1 - beq _081A55C4 - cmp r2, 0x1 - bgt _081A55A8 - cmp r2, 0 - beq _081A55B0 - b _081A5612 - .pool -_081A55A8: - mov r0, r9 - cmp r0, 0x2 - beq _081A55D8 - b _081A5612 -_081A55B0: - adds r0, r4, r7 - movs r6, 0 - ldrsb r6, [r0, r6] - movs r1, 0x1 - adds r0, r7, 0 - eors r0, r1 - adds r0, r4, r0 - movs r1, 0 - ldrsb r1, [r0, r1] - b _081A5612 -_081A55C4: - adds r0, r3, r7 - movs r6, 0 - ldrsb r6, [r0, r6] - movs r1, 0x1 - adds r0, r7, 0 - eors r0, r1 - adds r0, r3, r0 - movs r1, 0 - ldrsb r1, [r0, r1] - b _081A5612 -_081A55D8: - ldr r3, =gBattleMons - mov r9, r3 - movs r5, 0x58 - adds r0, r7, 0 - muls r0, r5 - add r0, r9 - ldrh r0, [r0, 0x28] - movs r4, 0x64 - muls r0, r4 - lsls r1, r7, 1 - add r1, r8 - ldrh r1, [r1] - bl __divsi3 - adds r6, r0, 0 - movs r0, 0x1 - adds r1, r7, 0 - eors r1, r0 - adds r0, r1, 0 - muls r0, r5 - add r0, r9 - ldrh r0, [r0, 0x28] - muls r0, r4 - lsls r1, 1 - add r1, r8 - ldrh r1, [r1] - bl __divsi3 - adds r1, r0, 0 -_081A5612: - cmp r6, r1 - ble _081A5638 - movs r4, 0x2 - cmp r7, 0 - beq _081A5628 - ldr r1, =gUnknown_02022F68 - b _081A562A - .pool -_081A5628: - ldr r1, =gUnknown_02022F58 -_081A562A: - ldrb r0, [r1] - adds r0, 0x2 - strb r0, [r1] - b _081A565E - .pool -_081A5638: - cmp r6, r1 - bne _081A565C - movs r4, 0x1 - cmp r7, 0 - beq _081A564C - ldr r1, =gUnknown_02022F68 - b _081A564E - .pool -_081A564C: - ldr r1, =gUnknown_02022F58 -_081A564E: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _081A565E - .pool -_081A565C: - movs r4, 0 -_081A565E: - ldr r0, =gUnknown_08611F5C - ldr r1, [sp] - mov r2, r10 - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - adds r1, r4, 0 - bl StartObjectImageAnim - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A5558 - - thumb_func_start sub_81A5698 -sub_81A5698: @ 81A5698 - push {lr} - adds r1, r0, 0 - ldr r0, =gUnknown_02024332 - ldrb r0, [r0] - cmp r0, 0x8 - bls _081A56AA - adds r0, r1, 0 - bl RemoveObjectAndFreeTiles -_081A56AA: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A5698 - - thumb_func_start sub_81A56B4 -sub_81A56B4: @ 81A56B4 - ldr r0, =gUnknown_0202449C - ldr r2, [r0] - movs r0, 0xA6 - lsls r0, 2 - adds r1, r2, r0 - adds r0, 0x2 - adds r3, r2, r0 - adds r0, 0x2 - adds r2, r0 - movs r0, 0 - strb r0, [r1] - strb r0, [r1, 0x1] - strb r0, [r3] - strb r0, [r3, 0x1] - ldr r0, =gBattleMons - ldrh r1, [r0, 0x28] - strh r1, [r2] - adds r0, 0x80 - ldrh r0, [r0] - strh r0, [r2, 0x2] - bx lr - .pool - thumb_func_end sub_81A56B4 - - thumb_func_start sub_81A56E8 -sub_81A56E8: @ 81A56E8 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0202449C - ldr r1, [r1] - movs r2, 0xA6 - lsls r2, 2 - adds r1, r2 - adds r1, r0 - ldr r2, =gBattleArenaMoveMindRatings - ldr r0, =gUnknown_020241EA - ldrh r0, [r0] - adds r0, r2 - ldrb r0, [r0] - ldrb r2, [r1] - adds r0, r2 - strb r0, [r1] - bx lr - .pool - thumb_func_end sub_81A56E8 - - thumb_func_start sub_81A5718 -sub_81A5718: @ 81A5718 - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - adds r6, r3, 0 - ldr r0, =gUnknown_0202449C - ldr r2, [r0] - ldr r0, =0x0000029a - adds r5, r2, r0 - ldr r0, =gUnknown_02024280 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 18 - ands r0, r1 - cmp r0, 0 - beq _081A57DA - ldr r0, =0x000002a2 - adds r4, r2, r0 - ldrb r2, [r4] - ldr r0, =gBitTable - lsls r1, r3, 2 - adds r1, r0 - ldr r1, [r1] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _081A576C - bics r2, r1 - strb r2, [r4] - adds r1, r5, r3 - ldrb r0, [r1] - subs r0, 0x2 - b _081A57D8 - .pool -_081A576C: - ldr r0, =gBattleMoveFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _081A5798 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081A5788 - ldr r0, =gUnknown_02024332 - ldrb r0, [r0, 0x6] - cmp r0, 0x1 - beq _081A57DA -_081A5788: - adds r1, r5, r3 - ldrb r0, [r1] - subs r0, 0x2 - b _081A57D8 - .pool -_081A5798: - movs r0, 0x6 - ands r0, r1 - cmp r0, 0x6 - bne _081A57A4 - adds r1, r5, r3 - b _081A57D4 -_081A57A4: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081A57B4 - adds r1, r5, r3 - ldrb r0, [r1] - adds r0, 0x2 - b _081A57D8 -_081A57B4: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _081A57C4 - adds r1, r5, r3 - ldrb r0, [r1] - subs r0, 0x1 - b _081A57D8 -_081A57C4: - ldr r0, =gUnknown_0202433C - lsls r1, r6, 4 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 31 - cmp r0, 0 - bne _081A57DA - adds r1, r5, r6 -_081A57D4: - ldrb r0, [r1] - adds r0, 0x1 -_081A57D8: - strb r0, [r1] -_081A57DA: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A5718 - - thumb_func_start sub_81A57E4 -sub_81A57E4: @ 81A57E4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 16 - lsrs r1, 16 - adds r2, r1, 0 - ldr r0, =gUnknown_0202449C - ldr r0, [r0] - ldr r5, =0x0000029a - adds r3, r0, r5 - movs r0, 0x99 - lsls r0, 1 - cmp r1, r0 - bgt _081A582A - subs r0, 0x1 - cmp r1, r0 - bge _081A585C - cmp r1, 0xC5 - bgt _081A581C - cmp r1, 0xC3 - bge _081A585C - cmp r1, 0x77 - beq _081A585C - b _081A5864 - .pool -_081A581C: - cmp r1, 0xC7 - blt _081A5864 - cmp r1, 0xCC - ble _081A585C - cmp r1, 0xCE - beq _081A585C - b _081A5864 -_081A582A: - ldr r0, =0x00000147 - cmp r1, r0 - beq _081A585C - cmp r1, r0 - bgt _081A5848 - subs r0, 0x12 - cmp r1, r0 - beq _081A585C - adds r0, 0x2 - cmp r1, r0 - beq _081A585C - b _081A5864 - .pool -_081A5848: - movs r0, 0xAD - lsls r0, 1 - cmp r2, r0 - blt _081A5864 - adds r0, 0x1 - cmp r2, r0 - ble _081A585C - adds r0, 0x3 - cmp r2, r0 - bne _081A5864 -_081A585C: - adds r1, r3, r4 - ldrb r0, [r1] - subs r0, 0x3 - strb r0, [r1] -_081A5864: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81A57E4 - - thumb_func_start sub_81A586C -sub_81A586C: @ 81A586C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0202449C - ldr r3, [r1] - movs r1, 0xA7 - lsls r1, 2 - adds r3, r1 - lsls r2, r0, 1 - adds r2, r3 - ldr r5, =gBattleMons - movs r4, 0x58 - adds r1, r0, 0 - muls r1, r4 - adds r1, r5 - ldrh r1, [r1, 0x28] - strh r1, [r2] - movs r1, 0x1 - eors r0, r1 - lsls r1, r0, 1 - adds r1, r3 - muls r0, r4 - adds r0, r5 - ldrh r2, [r0, 0x28] - ldrh r0, [r1] - cmp r0, r2 - bls _081A58A4 - strh r2, [r1] -_081A58A4: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A586C - - thumb_func_start sub_81A58B4 -sub_81A58B4: @ 81A58B4 - push {r4-r6,lr} - ldr r4, =gSaveBlock2Ptr - ldr r1, [r4] - ldr r3, =0x00000ca9 - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, 30 - lsrs r5, r0, 30 - ldr r0, =0x00000ca8 - adds r1, r0 - movs r2, 0 - strb r2, [r1] - ldr r1, [r4] - ldr r6, =0x00000cb2 - adds r0, r1, r6 - strh r2, [r0] - adds r1, r3 - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r4] - adds r1, r3 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - cmp r5, 0 - beq _081A5914 - ldr r0, [r4] - ldr r1, =0x00000cdc - adds r0, r1 - ldr r2, [r0] - movs r0, 0x80 - b _081A591E - .pool -_081A5914: - ldr r0, [r4] - ldr r3, =0x00000cdc - adds r0, r3 - ldr r2, [r0] - movs r0, 0x40 -_081A591E: - ands r2, r0 - cmp r2, 0 - bne _081A5930 - ldr r0, [r4] - lsls r1, r5, 1 - ldr r6, =0x00000dda - adds r0, r6 - adds r0, r1 - strh r2, [r0] -_081A5930: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x4 - ldrsb r1, [r0, r1] - movs r2, 0x5 - ldrsb r2, [r0, r2] - movs r3, 0x1 - negs r3, r3 - movs r0, 0 - bl saved_warp2_set - ldr r1, =gUnknown_02038BCA - movs r0, 0 - strh r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A58B4 - - thumb_func_start sub_81A5964 -sub_81A5964: @ 81A5964 - push {r4,lr} - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r1, =0x00000ca9 - adds r0, r3, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r1, r0, 30 - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - cmp r0, 0x1 - beq _081A59B0 - cmp r0, 0x1 - bgt _081A5994 - cmp r0, 0 - beq _081A599A - b _081A59EE - .pool -_081A5994: - cmp r0, 0x2 - beq _081A59C8 - b _081A59EE -_081A599A: - ldr r0, =gUnknown_020375F0 - ldr r2, =0x00000dd8 - adds r1, r3, r2 - ldrh r1, [r1] - strh r1, [r0] - b _081A59EE - .pool -_081A59B0: - ldr r2, =gUnknown_020375F0 - lsls r1, 1 - ldr r4, =0x00000dda - adds r0, r3, r4 - adds r0, r1 - ldrh r0, [r0] - b _081A59EC - .pool -_081A59C8: - cmp r1, 0 - beq _081A59E0 - ldr r2, =gUnknown_020375F0 - ldr r1, =0x00000cdc - adds r0, r3, r1 - ldr r0, [r0] - movs r1, 0x80 - b _081A59EA - .pool -_081A59E0: - ldr r2, =gUnknown_020375F0 - ldr r4, =0x00000cdc - adds r0, r3, r4 - ldr r0, [r0] - movs r1, 0x40 -_081A59EA: - ands r0, r1 -_081A59EC: - strh r0, [r2] -_081A59EE: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A5964 - - thumb_func_start sub_81A59FC -sub_81A59FC: @ 81A59FC - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r1, =0x00000ca9 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r1, r0, 30 - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - cmp r0, 0x1 - beq _081A5A48 - cmp r0, 0x1 - bgt _081A5A2C - cmp r0, 0 - beq _081A5A32 - b _081A5ABA - .pool -_081A5A2C: - cmp r0, 0x2 - beq _081A5A60 - b _081A5ABA -_081A5A32: - ldr r0, =gUnknown_020375E4 - ldrh r1, [r0] - ldr r3, =0x00000dd8 - adds r0, r2, r3 - strh r1, [r0] - b _081A5ABA - .pool -_081A5A48: - lsls r1, 1 - ldr r3, =0x00000dda - adds r0, r2, r3 - adds r0, r1 - ldr r1, =gUnknown_020375E4 - ldrh r1, [r1] - strh r1, [r0] - b _081A5ABA - .pool -_081A5A60: - cmp r1, 0 - beq _081A5A90 - ldr r0, =gUnknown_020375E4 - ldrh r0, [r0] - cmp r0, 0 - beq _081A5A80 - ldr r1, =0x00000cdc - adds r0, r2, r1 - ldr r1, [r0] - movs r2, 0x80 - orrs r1, r2 - b _081A5AB8 - .pool -_081A5A80: - ldr r3, =0x00000cdc - adds r0, r2, r3 - ldr r1, [r0] - movs r2, 0x81 - negs r2, r2 - b _081A5AB6 - .pool -_081A5A90: - ldr r0, =gUnknown_020375E4 - ldrh r0, [r0] - cmp r0, 0 - beq _081A5AAC - ldr r1, =0x00000cdc - adds r0, r2, r1 - ldr r1, [r0] - movs r2, 0x40 - orrs r1, r2 - b _081A5AB8 - .pool -_081A5AAC: - ldr r3, =0x00000cdc - adds r0, r2, r3 - ldr r1, [r0] - movs r2, 0x41 - negs r2, r2 -_081A5AB6: - ands r1, r2 -_081A5AB8: - str r1, [r0] -_081A5ABA: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A59FC - - thumb_func_start sub_81A5AC4 -sub_81A5AC4: @ 81A5AC4 - push {r4,lr} - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =gUnknown_020375E2 - ldrh r1, [r1] - ldr r2, =0x00000ca8 - adds r0, r2 - strb r1, [r0] - movs r0, 0x80 - lsls r0, 7 - movs r1, 0 - bl VarSet - ldr r1, [r4] - ldr r0, =0x00000ca9 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - bl sub_81A4C30 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A5AC4 - - thumb_func_start sub_81A5B08 -sub_81A5B08: @ 81A5B08 - push {r4,r5,lr} - ldr r4, =gSaveBlock2Ptr - ldr r1, [r4] - ldr r2, =0x00000ca9 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 29 - ldr r2, =0x00000dda - adds r1, r2 - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0x29 - bls _081A5B58 - bl Random - ldr r4, [r4] - ldr r5, =gUnknown_08611FAC - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x9 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 15 - adds r0, r5 - ldrh r0, [r0] - ldr r1, =0x00000dd8 - adds r4, r1 - b _081A5B76 - .pool -_081A5B58: - bl Random - ldr r4, [r4] - ldr r5, =gUnknown_08611FA0 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x6 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 15 - adds r0, r5 - ldrh r0, [r0] - ldr r2, =0x00000dd8 - adds r4, r2 -_081A5B76: - strh r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A5B08 - - thumb_func_start sub_81A5B88 -sub_81A5B88: @ 81A5B88 - push {r4,r5,lr} - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =0x00000dd8 - adds r0, r1 - ldrh r0, [r0] - movs r1, 0x1 - bl bag_add_item - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bne _081A5BD0 - ldr r0, [r4] - ldr r1, =0x00000dd8 - adds r0, r1 - ldrh r0, [r0] - ldr r1, =gStringVar1 - bl itemid_get_name - ldr r0, [r4] - ldr r1, =0x00000dd8 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_020375F0 - strh r5, [r0] - b _081A5BD6 - .pool -_081A5BD0: - ldr r1, =gUnknown_020375F0 - movs r0, 0 - strh r0, [r1] -_081A5BD6: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A5B88 - - thumb_func_start sub_81A5BE0 -sub_81A5BE0: @ 81A5BE0 - push {lr} - ldr r0, =gStringVar1 - ldr r1, =gUnknown_02038BCA - ldrh r1, [r1] - bl sub_8162E20 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A5BE0 - - thumb_func_start sub_81A5BF8 -sub_81A5BF8: @ 81A5BF8 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0xC - movs r0, 0x1B - mov r8, r0 - movs r5, 0x7 - movs r4, 0x1 - str r4, [sp] - movs r6, 0x6 - str r6, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0xFE - movs r3, 0xE - bl FillBgTilemapBufferRect - str r4, [sp] - str r6, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0x20 - movs r3, 0xE - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x31 - movs r2, 0 - movs r3, 0xE - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x33 - movs r2, 0x1 - movs r3, 0xE - bl FillBgTilemapBufferRect - mov r0, r8 - str r0, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x34 - movs r2, 0x2 - movs r3, 0xE - bl FillBgTilemapBufferRect - movs r0, 0x1C - mov r8, r0 - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x35 - movs r2, 0x1C - movs r3, 0xE - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x36 - movs r2, 0x1D - movs r3, 0xE - bl FillBgTilemapBufferRect - str r4, [sp] - movs r6, 0x5 - str r6, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x37 - movs r2, 0 - movs r3, 0xF - bl FillBgTilemapBufferRect - mov r0, r8 - str r0, [sp] - str r6, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x39 - movs r2, 0x1 - movs r3, 0xF - bl FillBgTilemapBufferRect - str r4, [sp] - str r6, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x3A - movs r2, 0x1D - movs r3, 0xF - bl FillBgTilemapBufferRect - ldr r1, =0x00000831 - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r2, 0 - movs r3, 0x13 - bl FillBgTilemapBufferRect - ldr r1, =0x00000833 - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r2, 0x1 - movs r3, 0x13 - bl FillBgTilemapBufferRect - ldr r1, =0x00000834 - movs r0, 0x1A - str r0, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r2, 0x2 - movs r3, 0x13 - bl FillBgTilemapBufferRect - ldr r1, =0x00000835 - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r2, 0x1C - movs r3, 0x13 - bl FillBgTilemapBufferRect - ldr r1, =0x00000836 - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r2, 0x1D - movs r3, 0x13 - bl FillBgTilemapBufferRect - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A5BF8 - - thumb_func_start sub_81A5D44 -sub_81A5D44: @ 81A5D44 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0xC - movs r5, 0 - movs r4, 0x1 - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x3 - movs r2, 0 - movs r3, 0xE - bl FillBgTilemapBufferRect - movs r6, 0x4 - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x4 - movs r2, 0x1 - movs r3, 0xE - bl FillBgTilemapBufferRect - movs r0, 0x1B - mov r8, r0 - str r0, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x5 - movs r2, 0x2 - movs r3, 0xE - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x6 - movs r2, 0x1C - movs r3, 0xE - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x7 - movs r2, 0x1D - movs r3, 0xE - bl FillBgTilemapBufferRect - str r4, [sp] - str r6, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x8 - movs r2, 0 - movs r3, 0xF - bl FillBgTilemapBufferRect - str r4, [sp] - str r6, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x9 - movs r2, 0x1 - movs r3, 0xF - bl FillBgTilemapBufferRect - mov r0, r8 - str r0, [sp] - str r6, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0xA - movs r2, 0x2 - movs r3, 0xF - bl FillBgTilemapBufferRect - str r4, [sp] - str r6, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0xB - movs r2, 0x1C - movs r3, 0xF - bl FillBgTilemapBufferRect - str r4, [sp] - str r6, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0xC - movs r2, 0x1D - movs r3, 0xF - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0xD - movs r2, 0 - movs r3, 0x13 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0xE - movs r2, 0x1 - movs r3, 0x13 - bl FillBgTilemapBufferRect - mov r0, r8 - str r0, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0xF - movs r2, 0x2 - movs r3, 0x13 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x10 - movs r2, 0x1C - movs r3, 0x13 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x11 - movs r2, 0x1D - movs r3, 0x13 - bl FillBgTilemapBufferRect - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81A5D44 - - thumb_func_start sub_81A5E74 -sub_81A5E74: @ 81A5E74 - push {lr} - ldr r1, =gUnknown_08612120 - ldr r0, =gUnknown_020375E0 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A5E74 - - thumb_func_start sub_81A5E94 -sub_81A5E94: @ 81A5E94 - push {r4-r7,lr} - ldr r5, =gSaveBlock2Ptr - ldr r0, [r5] - ldr r4, =0x00000ca9 - adds r0, r4 - ldrb r0, [r0] - lsls r0, 30 - lsrs r7, r0, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, [r5] - ldr r1, =0x00000ca8 - adds r0, r1 - movs r2, 0 - strb r2, [r0] - ldr r1, [r5] - ldr r3, =0x00000cb2 - adds r0, r1, r3 - strh r2, [r0] - adds r1, r4 - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r5] - adds r1, r4 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r4, [r5] - ldr r0, =0x00000cdc - adds r3, r4, r0 - ldr r2, =gUnknown_08612164 - lsls r0, r7, 2 - lsls r1, r6, 3 - adds r0, r1 - adds r0, r2 - ldr r3, [r3] - ldr r0, [r0] - ands r3, r0 - cmp r3, 0 - bne _081A5F0A - lsls r1, r7, 1 - lsls r0, r6, 2 - adds r1, r0 - ldr r2, =0x00000de2 - adds r0, r4, r2 - adds r0, r1 - strh r3, [r0] - adds r2, 0x10 - adds r0, r4, r2 - adds r0, r1 - strh r3, [r0] -_081A5F0A: - ldr r1, =gUnknown_03001288 - movs r0, 0 - strb r0, [r1] - movs r2, 0 - ldr r6, =gSaveBlock1Ptr - movs r4, 0xE7 - lsls r4, 4 - ldr r0, =0x0000ffff - adds r3, r0, 0 -_081A5F1C: - ldr r1, [r5] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - adds r1, r4 - ldrh r0, [r1] - orrs r0, r3 - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x5 - bls _081A5F1C - movs r2, 0 - ldr r4, =gUnknown_03006298 - ldr r1, =0x0000ffff - adds r3, r1, 0 -_081A5F40: - lsls r0, r2, 1 - adds r0, r4 - ldrh r1, [r0] - orrs r1, r3 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bls _081A5F40 - ldr r0, [r6] - movs r1, 0x4 - ldrsb r1, [r0, r1] - movs r2, 0x5 - ldrsb r2, [r0, r2] - movs r3, 0x1 - negs r3, r3 - movs r0, 0 - bl saved_warp2_set - ldr r1, =gUnknown_02038BCA - movs r0, 0 - strh r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A5E94 - - thumb_func_start sub_81A5FA8 -sub_81A5FA8: @ 81A5FA8 - push {r4-r7,lr} - ldr r7, =gSaveBlock2Ptr - ldr r0, [r7] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r6, r0, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - cmp r0, 0x2 - beq _081A6000 - cmp r0, 0x2 - bgt _081A5FE4 - cmp r0, 0x1 - beq _081A5FEA - b _081A6044 - .pool -_081A5FE4: - cmp r0, 0x3 - beq _081A6030 - b _081A6044 -_081A5FEA: - ldr r3, =gUnknown_020375F0 - ldr r0, [r7] - lsls r1, r6, 1 - lsls r2, r5, 2 - adds r1, r2 - ldr r2, =0x00000de2 - b _081A603C - .pool -_081A6000: - ldr r4, =gUnknown_020375F0 - ldr r2, [r7] - ldr r0, =0x00000cdc - adds r2, r0 - ldr r3, =gUnknown_08612164 - lsls r0, r6, 2 - lsls r1, r5, 3 - adds r0, r1 - adds r0, r3 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - strh r0, [r4] - b _081A6044 - .pool -_081A6030: - ldr r3, =gUnknown_020375F0 - ldr r0, [r7] - lsls r1, r6, 1 - lsls r2, r5, 2 - adds r1, r2 - ldr r2, =0x00000df2 -_081A603C: - adds r0, r2 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r3] -_081A6044: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A5FA8 - - thumb_func_start sub_81A6054 -sub_81A6054: @ 81A6054 - push {r4-r6,lr} - ldr r6, =gSaveBlock2Ptr - ldr r0, [r6] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r5, r0, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - cmp r0, 0x2 - beq _081A60B4 - cmp r0, 0x2 - bgt _081A6090 - cmp r0, 0x1 - beq _081A6096 - b _081A6128 - .pool -_081A6090: - cmp r0, 0x3 - beq _081A6108 - b _081A6128 -_081A6096: - ldr r2, [r6] - lsls r0, r5, 1 - lsls r1, r4, 2 - adds r0, r1 - ldr r1, =0x00000de2 - adds r2, r1 - adds r2, r0 - ldr r0, =gUnknown_020375E4 - ldrh r0, [r0] - strh r0, [r2] - b _081A6128 - .pool -_081A60B4: - ldr r0, =gUnknown_020375E4 - ldrh r0, [r0] - cmp r0, 0 - beq _081A60E4 - ldr r2, [r6] - ldr r0, =0x00000cdc - adds r2, r0 - ldr r3, =gUnknown_08612164 - lsls r1, r5, 2 - lsls r0, r4, 3 - adds r1, r0 - adds r1, r3 - ldr r0, [r2] - ldr r1, [r1] - orrs r0, r1 - str r0, [r2] - b _081A6128 - .pool -_081A60E4: - ldr r2, [r6] - ldr r1, =0x00000cdc - adds r2, r1 - ldr r3, =gUnknown_08612174 - lsls r1, r5, 2 - lsls r0, r4, 3 - adds r1, r0 - adds r1, r3 - ldr r0, [r2] - ldr r1, [r1] - ands r0, r1 - str r0, [r2] - b _081A6128 - .pool -_081A6108: - ldr r3, =gUnknown_03001288 - ldrb r0, [r3] - cmp r0, 0x1 - bne _081A6128 - ldr r2, [r6] - lsls r0, r5, 1 - lsls r1, r4, 2 - adds r0, r1 - ldr r1, =0x00000df2 - adds r2, r1 - adds r2, r0 - ldr r0, =gUnknown_020375E4 - ldrh r0, [r0] - movs r1, 0 - strh r0, [r2] - strb r1, [r3] -_081A6128: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A6054 - - thumb_func_start sub_81A613C -sub_81A613C: @ 81A613C - push {r4,lr} - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =gUnknown_020375E2 - ldrh r1, [r1] - ldr r2, =0x00000ca8 - adds r0, r2 - strb r1, [r0] - movs r0, 0x80 - lsls r0, 7 - movs r1, 0 - bl VarSet - ldr r1, [r4] - ldr r0, =0x00000ca9 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - bl sub_81A4C30 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A613C - - thumb_func_start nullsub_75 -nullsub_75: @ 81A6180 - bx lr - thumb_func_end nullsub_75 - - thumb_func_start nullsub_123 -nullsub_123: @ 81A6184 - bx lr - thumb_func_end nullsub_123 - - thumb_func_start sub_81A6188 -sub_81A6188: @ 81A6188 - push {lr} - bl zero_player_party_data - bl sub_819A4F8 - pop {r0} - bx r0 - thumb_func_end sub_81A6188 - - thumb_func_start sub_81A6198 -sub_81A6198: @ 81A6198 - push {lr} - bl sub_819DC00 - pop {r0} - bx r0 - thumb_func_end sub_81A6198 - - thumb_func_start sub_81A61A4 -sub_81A61A4: @ 81A61A4 - ldr r1, =gUnknown_03001288 - movs r0, 0x1 - strb r0, [r1] - bx lr - .pool - thumb_func_end sub_81A61A4 - - thumb_func_start sub_81A61B0 -sub_81A61B0: @ 81A61B0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 30 - str r0, [sp, 0x10] - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - ldr r1, [r4] - ldr r3, [sp, 0x10] - lsls r2, r3, 1 - lsrs r0, 14 - adds r2, r0 - ldr r6, =0x00000de2 - adds r1, r6 - adds r1, r2 - ldrh r0, [r1] - movs r1, 0x7 - bl __udivsi3 - ldr r2, =gUnknown_0203BC88 - ldr r1, =gBattleFrontierTrainers - str r1, [r2] - ldr r5, =0x00000cb2 - lsls r0, 24 - str r0, [sp, 0x20] - mov r8, r0 -_081A61FA: - ldr r0, [r4] - adds r0, r5 - ldrb r1, [r0] - mov r2, r8 - lsrs r0, r2, 24 - bl sub_8162548 - lsls r0, 16 - lsrs r3, r0, 16 - movs r7, 0 - ldr r1, [r4] - adds r0, r1, r5 - ldr r6, [sp, 0x10] - lsls r6, 24 - str r6, [sp, 0x1C] - ldrh r0, [r0] - cmp r7, r0 - bge _081A6244 - ldr r2, =0x00000cb4 - adds r0, r1, r2 - ldrh r0, [r0] - ldr r6, =gSaveBlock2Ptr - cmp r0, r3 - beq _081A6244 - ldr r1, [r6] - ldr r6, =0x00000cb2 - adds r0, r1, r6 - ldrh r2, [r0] - ldr r0, =0x00000cb4 - adds r1, r0 -_081A6236: - adds r1, 0x2 - adds r7, 0x1 - cmp r7, r2 - bge _081A6244 - ldrh r0, [r1] - cmp r0, r3 - bne _081A6236 -_081A6244: - ldr r0, [r4] - ldr r1, =0x00000cb2 - adds r0, r1 - ldr r6, =gSaveBlock2Ptr - ldrh r0, [r0] - cmp r7, r0 - bne _081A61FA - ldr r0, =gUnknown_02038BCA - strh r3, [r0] - ldr r2, [r6] - adds r1, r2, r1 - ldrh r0, [r1] - cmp r0, 0x5 - bhi _081A626C - adds r1, r0, 0 - lsls r1, 1 - ldr r4, =0x00000cb4 - adds r0, r2, r4 - adds r0, r1 - strh r3, [r0] -_081A626C: - movs r7, 0 - mov r10, sp - movs r6, 0 - lsls r6, 1 - str r6, [sp, 0x14] - add r6, sp - str r6, [sp, 0x18] -_081A627A: - ldr r1, [sp, 0x1C] - lsrs r0, r1, 24 - ldr r2, [sp, 0x20] - lsrs r1, r2, 24 - movs r2, 0 - bl sub_81A6EF0 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - ldr r4, =gUnknown_0203BC8C - ldr r2, [r4] - lsls r1, r0, 4 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r0, 0xC9 - beq _081A636E - movs r3, 0 - ldr r6, =gSaveBlock2Ptr - mov r8, r1 - adds r5, r0, 0 - ldr r1, [r6] -_081A62A6: - movs r4, 0xE7 - lsls r4, 4 - adds r0, r1, r4 - ldrh r0, [r0] - lsls r0, 4 - adds r0, r2 - ldrh r0, [r0] - cmp r5, r0 - beq _081A62C0 - adds r1, 0xC - adds r3, 0x1 - cmp r3, 0x5 - ble _081A62A6 -_081A62C0: - cmp r3, 0x6 - bne _081A636E - ldr r6, [sp, 0x10] - cmp r6, 0 - bne _081A62D0 - ldr r0, =0x00000351 - cmp r9, r0 - bhi _081A636E -_081A62D0: - movs r2, 0 - adds r4, r2, r7 - cmp r2, r4 - bge _081A6302 - ldr r1, [sp, 0x18] - ldrh r0, [r1] - cmp r0, r5 - beq _081A6302 - adds r6, r4, 0 - ldr r3, =gUnknown_0203BC8C - mov r12, r3 - mov r5, r8 - ldr r3, [sp, 0x14] - add r3, sp -_081A62EC: - adds r3, 0x2 - adds r2, 0x1 - cmp r2, r6 - bge _081A6302 - mov r1, r12 - ldr r0, [r1] - adds r0, r5, r0 - ldrh r1, [r3] - ldrh r0, [r0] - cmp r1, r0 - bne _081A62EC -_081A6302: - cmp r2, r4 - bne _081A636E - movs r2, 0 - cmp r2, r4 - bge _081A633E - ldr r3, =gBattleFrontierHeldItems - mov r12, r3 - add r0, sp, 0x8 - ldr r6, [sp, 0x14] - adds r3, r0, r6 - mov r0, r8 - str r0, [sp, 0x24] - adds r5, r4, 0 -_081A631C: - ldrh r1, [r3] - cmp r1, 0 - beq _081A6336 - ldr r6, =gUnknown_0203BC8C - ldr r0, [r6] - ldr r6, [sp, 0x24] - adds r0, r6, r0 - ldrb r0, [r0, 0xA] - lsls r0, 1 - add r0, r12 - ldrh r0, [r0] - cmp r1, r0 - beq _081A633E -_081A6336: - adds r3, 0x2 - adds r2, 0x1 - cmp r2, r5 - blt _081A631C -_081A633E: - cmp r2, r4 - bne _081A636E - lsls r4, r7, 1 - ldr r0, =gUnknown_0203BC8C - ldr r1, [r0] - add r1, r8 - ldrh r0, [r1] - mov r2, r10 - strh r0, [r2] - add r2, sp, 0x8 - adds r2, r4 - ldr r3, =gBattleFrontierHeldItems - ldrb r0, [r1, 0xA] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r2] - ldr r0, =gUnknown_03006298 - adds r4, r0 - mov r3, r9 - strh r3, [r4] - movs r4, 0x2 - add r10, r4 - adds r7, 0x1 -_081A636E: - cmp r7, 0x3 - bne _081A627A - add sp, 0x28 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A61B0 - - thumb_func_start sub_81A63B8 -sub_81A63B8: @ 81A63B8 - push {lr} - ldr r0, =gUnknown_02038BCA - ldrh r0, [r0] - movs r1, 0 - bl sub_8162614 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A63B8 - - thumb_func_start sub_81A63CC -sub_81A63CC: @ 81A63CC - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x2 - beq _081A63FC - ldr r1, =gUnknown_0203BC8C - ldr r0, =gBattleFrontierMons - b _081A6400 - .pool -_081A63FC: - ldr r1, =gUnknown_0203BC8C - ldr r0, =gSlateportBattleTentMons -_081A6400: - str r0, [r1] - movs r7, 0 - ldr r2, =gSaveBlock2Ptr - mov r8, r2 -_081A6408: - mov r0, r8 - ldr r1, [r0] - adds r0, r7, 0x3 - lsls r4, r0, 1 - adds r4, r0 - lsls r4, 2 - adds r1, r4 - ldr r0, =gUnknown_03006298 - lsls r6, r7, 1 - adds r6, r0 - ldrh r0, [r6] - movs r2, 0xE7 - lsls r2, 4 - adds r1, r2 - strh r0, [r1] - movs r0, 0x64 - adds r5, r7, 0 - muls r5, r0 - ldr r0, =gEnemyParty - adds r5, r0 - adds r0, r5, 0 - movs r1, 0x28 - movs r2, 0 - bl pokemon_getattr_encrypted - mov r2, r8 - ldr r1, [r2] - adds r1, r4 - ldr r2, =0x00000e78 - adds r1, r2 - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0 - bl GetMonData - mov r2, r8 - ldr r1, [r2] - ldr r2, =0x00000e74 - adds r1, r2 - adds r1, r4 - str r0, [r1] - adds r0, r5, 0 - movs r1, 0x2E - movs r2, 0 - bl pokemon_getattr_encrypted - mov r2, r8 - ldr r1, [r2] - adds r1, r4 - ldr r2, =0x00000e79 - adds r1, r2 - strb r0, [r1] - ldrh r1, [r6] - ldr r0, =gUnknown_0203BC8C - ldr r0, [r0] - lsls r1, 4 - adds r1, r0 - ldrb r2, [r1, 0xA] - lsls r2, 1 - ldr r0, =gBattleFrontierHeldItems - adds r2, r0 - adds r0, r5, 0 - movs r1, 0xC - bl pokemon_setattr - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x2 - bls _081A6408 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A63CC - - thumb_func_start sub_81A64C4 -sub_81A64C4: @ 81A64C4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca9 - adds r2, r0, r1 - ldrb r1, [r2] - movs r3, 0x3 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0x2 - bne _081A6500 - ldr r1, =gUnknown_0203BC8C - ldr r0, =gSlateportBattleTentMons - str r0, [r1] - movs r2, 0x1E - str r2, [sp, 0x14] - b _081A6518 - .pool -_081A6500: - ldr r1, =gUnknown_0203BC8C - ldr r0, =gBattleFrontierMons - str r0, [r1] - ldrb r1, [r2] - adds r0, r3, 0 - ands r0, r1 - movs r4, 0x32 - str r4, [sp, 0x14] - cmp r0, 0 - beq _081A6518 - movs r5, 0x64 - str r5, [sp, 0x14] -_081A6518: - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - cmp r0, 0x1 - bls _081A6522 - b _081A666C -_081A6522: - bl zero_player_party_data - movs r0, 0 - mov r8, r0 - mov r1, sp - adds r1, 0x12 - str r1, [sp, 0x1C] - ldr r2, =gUnknown_0203BC8C - mov r9, r2 -_081A6534: - ldr r4, =gSaveBlock2Ptr - ldr r2, [r4] - mov r5, r8 - lsls r5, 1 - mov r10, r5 - mov r3, r10 - add r3, r8 - lsls r3, 2 - adds r1, r2, r3 - movs r4, 0xE7 - lsls r4, 4 - adds r0, r1, r4 - ldrh r7, [r0] - ldr r5, =0x00000e78 - adds r1, r5 - ldrb r6, [r1] - movs r1, 0x64 - mov r0, r8 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - mov r4, r9 - ldr r1, [r4] - lsls r4, r7, 4 - adds r1, r4, r1 - ldrh r1, [r1] - movs r5, 0x1 - str r5, [sp] - ldr r5, =0x00000e74 - adds r2, r5 - adds r2, r3 - ldr r2, [r2] - str r2, [sp, 0x4] - movs r2, 0 - str r2, [sp, 0x8] - str r2, [sp, 0xC] - ldr r2, [sp, 0x14] - adds r3, r6, 0 - bl create_pokemon_set_level - movs r1, 0 - mov r2, r9 - ldr r0, [r2] - adds r4, r0 - ldrb r4, [r4, 0xB] - mov r5, r8 - adds r5, 0x1 - str r5, [sp, 0x18] - movs r5, 0x5 -_081A6596: - adds r0, r4, 0 - movs r2, 0x1 - ands r0, r2 - cmp r0, 0 - beq _081A65A2 - adds r1, 0x1 -_081A65A2: - lsrs r4, 1 - subs r5, 0x1 - cmp r5, 0 - bge _081A6596 - movs r0, 0xFF - lsls r0, 1 - bl __divsi3 - add r1, sp, 0x10 - strh r0, [r1] - movs r4, 0x1 - movs r5, 0 - lsls r7, 4 - movs r0, 0x64 - mov r6, r8 - muls r6, r0 - ldr r3, =gPlayerParty -_081A65C4: - mov r1, r9 - ldr r0, [r1] - adds r0, r7, r0 - ldrb r0, [r0, 0xB] - ands r0, r4 - cmp r0, 0 - beq _081A65E2 - adds r1, r5, 0 - adds r1, 0x1A - adds r0, r6, r3 - add r2, sp, 0x10 - str r3, [sp, 0x20] - bl pokemon_setattr - ldr r3, [sp, 0x20] -_081A65E2: - lsls r0, r4, 25 - lsrs r4, r0, 24 - adds r5, 0x1 - cmp r5, 0x5 - ble _081A65C4 - movs r2, 0x64 - mov r4, r8 - muls r4, r2 - ldr r5, =gPlayerParty - adds r0, r4, r5 - bl pokemon_calc_effective_stats - movs r0, 0 - ldr r1, [sp, 0x1C] - strb r0, [r1] - movs r6, 0 -_081A6602: - mov r2, r9 - ldr r0, [r2] - adds r0, r7, r0 - lsls r1, r6, 1 - adds r0, 0x2 - adds r0, r1 - ldrh r1, [r0] - lsls r2, r6, 24 - lsrs r2, 24 - adds r0, r4, r5 - bl sub_81A7024 - adds r6, 0x1 - cmp r6, 0x3 - ble _081A6602 - movs r5, 0x64 - mov r4, r8 - muls r4, r5 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x20 - ldr r2, [sp, 0x1C] - bl pokemon_setattr - mov r1, r9 - ldr r0, [r1] - adds r0, r7, r0 - ldrb r2, [r0, 0xA] - lsls r2, 1 - ldr r0, =gBattleFrontierHeldItems - adds r2, r0 - adds r0, r4, 0 - movs r1, 0xC - bl pokemon_setattr - mov r2, r10 - add r2, r8 - lsls r2, 2 - ldr r5, =gSaveBlock2Ptr - ldr r0, [r5] - adds r2, r0 - ldr r0, =0x00000e79 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x2E - bl pokemon_setattr - ldr r1, [sp, 0x18] - mov r8, r1 - cmp r1, 0x2 - bgt _081A666C - b _081A6534 -_081A666C: - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - cmp r0, 0 - beq _081A667A - cmp r0, 0x2 - beq _081A667A - b _081A67AE -_081A667A: - movs r2, 0 - mov r8, r2 - ldr r4, =gUnknown_0203BC8C - mov r9, r4 -_081A6682: - ldr r5, =gSaveBlock2Ptr - ldr r3, [r5] - mov r0, r8 - adds r0, 0x3 - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 2 - adds r1, r3, r2 - movs r4, 0xE7 - lsls r4, 4 - adds r0, r1, r4 - ldrh r7, [r0] - ldr r5, =0x00000e78 - adds r1, r5 - ldrb r6, [r1] - movs r1, 0x64 - mov r0, r8 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - mov r4, r9 - ldr r1, [r4] - lsls r4, r7, 4 - adds r1, r4, r1 - ldrh r1, [r1] - movs r5, 0x1 - str r5, [sp] - ldr r5, =0x00000e74 - adds r3, r5 - adds r3, r2 - ldr r2, [r3] - str r2, [sp, 0x4] - movs r2, 0 - str r2, [sp, 0x8] - str r2, [sp, 0xC] - ldr r2, [sp, 0x14] - adds r3, r6, 0 - bl create_pokemon_set_level - movs r1, 0 - mov r2, r9 - ldr r0, [r2] - adds r4, r0 - ldrb r4, [r4, 0xB] - mov r5, r8 - lsls r5, 1 - mov r10, r5 - mov r0, r8 - adds r0, 0x1 - str r0, [sp, 0x18] - movs r5, 0x5 -_081A66E8: - adds r0, r4, 0 - movs r2, 0x1 - ands r0, r2 - cmp r0, 0 - beq _081A66F4 - adds r1, 0x1 -_081A66F4: - lsrs r4, 1 - subs r5, 0x1 - cmp r5, 0 - bge _081A66E8 - add r4, sp, 0x10 - movs r0, 0xFF - lsls r0, 1 - bl __divsi3 - strh r0, [r4] - movs r4, 0x1 - movs r5, 0 - lsls r7, 4 - movs r0, 0x64 - mov r6, r8 - muls r6, r0 - ldr r3, =gEnemyParty -_081A6716: - mov r1, r9 - ldr r0, [r1] - adds r0, r7, r0 - ldrb r0, [r0, 0xB] - ands r0, r4 - cmp r0, 0 - beq _081A6734 - adds r1, r5, 0 - adds r1, 0x1A - adds r0, r6, r3 - add r2, sp, 0x10 - str r3, [sp, 0x20] - bl pokemon_setattr - ldr r3, [sp, 0x20] -_081A6734: - lsls r0, r4, 25 - lsrs r4, r0, 24 - adds r5, 0x1 - cmp r5, 0x5 - ble _081A6716 - movs r2, 0x64 - mov r4, r8 - muls r4, r2 - ldr r5, =gEnemyParty - adds r0, r4, r5 - bl pokemon_calc_effective_stats - movs r6, 0 -_081A674E: - mov r1, r9 - ldr r0, [r1] - adds r0, r7, r0 - lsls r1, r6, 1 - adds r0, 0x2 - adds r0, r1 - ldrh r1, [r0] - lsls r2, r6, 24 - lsrs r2, 24 - adds r0, r4, r5 - bl sub_81A7024 - adds r6, 0x1 - cmp r6, 0x3 - ble _081A674E - movs r2, 0x64 - mov r4, r8 - muls r4, r2 - ldr r0, =gEnemyParty - adds r4, r0 - mov r5, r9 - ldr r0, [r5] - adds r0, r7, r0 - ldrb r2, [r0, 0xA] - lsls r2, 1 - ldr r0, =gBattleFrontierHeldItems - adds r2, r0 - adds r0, r4, 0 - movs r1, 0xC - bl pokemon_setattr - mov r2, r10 - add r2, r8 - lsls r2, 2 - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - adds r2, r0 - ldr r5, =0x00000e9d - adds r2, r5 - adds r0, r4, 0 - movs r1, 0x2E - bl pokemon_setattr - ldr r0, [sp, 0x18] - mov r8, r0 - cmp r0, 0x2 - bgt _081A67AE - b _081A6682 -_081A67AE: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A64C4 - - thumb_func_start sub_81A67EC -sub_81A67EC: @ 81A67EC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4C - ldr r1, =gUnknown_0203BC88 - ldr r0, =gBattleFrontierTrainers - str r0, [r1] - mov r0, sp - adds r0, 0xC - str r0, [sp, 0x38] - mov r1, sp - adds r1, 0x18 - str r1, [sp, 0x3C] - ldr r2, =gSaveBlock2Ptr - mov r9, r2 - movs r2, 0 - adds r3, r1, 0 - adds r1, r0, 0 - mov r0, sp - movs r4, 0x5 - mov r8, r4 -_081A681A: - strh r2, [r0] - strh r2, [r1] - strh r2, [r3] - adds r3, 0x2 - adds r1, 0x2 - adds r0, 0x2 - movs r5, 0x1 - negs r5, r5 - add r8, r5 - mov r4, r8 - cmp r4, 0 - bge _081A681A - mov r5, r9 - ldr r0, [r5] - ldr r7, =0x00000ca9 - adds r0, r7 - ldrb r4, [r0] - lsls r4, 30 - lsrs r4, 30 - ldr r6, =0x000040ce - adds r0, r6, 0 - bl VarGet - lsls r0, 24 - ldr r1, [r5] - lsls r4, 1 - lsrs r0, 22 - adds r4, r0 - ldr r5, =0x00000de2 - adds r1, r5 - adds r1, r4 - ldrh r0, [r1] - movs r1, 0x7 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x24] - adds r0, r6, 0 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - movs r2, 0 - cmp r0, 0x1 - bne _081A6878 - movs r2, 0x1 -_081A6878: - ldr r1, =gUnknown_0203BC8C - ldr r0, =gBattleFrontierMons - str r0, [r1] - mov r1, r9 - ldr r0, [r1] - adds r0, r7 - ldrb r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _081A68B4 - movs r4, 0x1 - str r4, [sp, 0x28] - b _081A68B8 - .pool -_081A68B4: - movs r5, 0 - str r5, [sp, 0x28] -_081A68B8: - adds r0, r2, 0 - ldr r1, [sp, 0x28] - bl sub_81A6F70 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x2C] - movs r0, 0 - mov r10, r0 - mov r8, r0 - ldr r1, [sp, 0x3C] - str r1, [sp, 0x40] - mov r2, sp - str r2, [sp, 0x44] - lsls r4, r0, 1 - str r4, [sp, 0x30] - ldr r5, [sp, 0x38] - adds r5, r4 - str r5, [sp, 0x34] -_081A68DE: - ldr r0, [sp, 0x2C] - cmp r8, r0 - bge _081A68EC - ldr r0, [sp, 0x28] - ldr r1, [sp, 0x24] - movs r2, 0x1 - b _081A68F2 -_081A68EC: - ldr r0, [sp, 0x28] - ldr r1, [sp, 0x24] - movs r2, 0 -_081A68F2: - bl sub_81A6EF0 - lsls r0, 16 - lsrs r7, r0, 16 - ldr r0, =gUnknown_0203BC8C - ldr r1, [r0] - lsls r2, r7, 4 - adds r4, r2, r1 - ldrh r1, [r4] - mov r9, r2 - cmp r1, 0xC9 - beq _081A69E2 - movs r3, 0 - mov r2, r8 - adds r6, r3, r2 - cmp r3, r6 - bge _081A6950 - ldr r5, [sp, 0x34] - ldrh r0, [r5] - cmp r0, r7 - beq _081A6950 - mov r12, r4 - adds r2, r1, 0 - lsls r4, r3, 1 - ldr r1, [sp, 0x30] - add r1, sp - str r6, [sp, 0x48] -_081A6928: - ldrh r0, [r1] - cmp r0, r2 - bne _081A693A - mov r0, r10 - cmp r0, 0 - bne _081A6950 - mov r5, r12 - ldrh r5, [r5] - mov r10, r5 -_081A693A: - adds r4, 0x2 - adds r1, 0x2 - adds r3, 0x1 - ldr r0, [sp, 0x48] - cmp r3, r0 - bge _081A6950 - ldr r5, [sp, 0x38] - adds r0, r5, r4 - ldrh r0, [r0] - cmp r0, r7 - bne _081A6928 -_081A6950: - cmp r3, r6 - bne _081A69E2 - movs r3, 0 - cmp r3, r6 - bge _081A699C - ldr r0, =gBattleFrontierHeldItems - mov r12, r0 - ldr r1, [sp, 0x30] - ldr r2, [sp, 0x3C] - adds r5, r1, r2 -_081A6964: - ldrh r4, [r5] - cmp r4, 0 - beq _081A6994 - ldr r1, =gUnknown_0203BC8C - ldr r0, [r1] - mov r2, r9 - adds r1, r2, r0 - ldrb r0, [r1, 0xA] - lsls r0, 1 - add r0, r12 - ldrh r0, [r0] - cmp r4, r0 - bne _081A6994 - ldrh r0, [r1] - cmp r0, r10 - bne _081A699C - movs r4, 0 - mov r10, r4 - b _081A699C - .pool -_081A6994: - adds r5, 0x2 - adds r3, 0x1 - cmp r3, r6 - blt _081A6964 -_081A699C: - cmp r3, r6 - bne _081A69E2 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - mov r5, r8 - lsls r3, r5, 1 - adds r0, r3, r5 - lsls r0, 2 - adds r1, r0 - movs r0, 0xE7 - lsls r0, 4 - adds r1, r0 - strh r7, [r1] - ldr r2, =gUnknown_0203BC8C - ldr r1, [r2] - add r1, r9 - ldrh r0, [r1] - ldr r4, [sp, 0x44] - strh r0, [r4] - ldr r2, =gBattleFrontierHeldItems - ldrb r0, [r1, 0xA] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - ldr r5, [sp, 0x40] - strh r0, [r5] - ldr r0, [sp, 0x38] - adds r3, r0, r3 - strh r7, [r3] - adds r5, 0x2 - str r5, [sp, 0x40] - adds r4, 0x2 - str r4, [sp, 0x44] - movs r1, 0x1 - add r8, r1 -_081A69E2: - mov r2, r8 - cmp r2, 0x6 - beq _081A69EA - b _081A68DE -_081A69EA: - add sp, 0x4C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A67EC - - thumb_func_start sub_81A6A08 -sub_81A6A08: @ 81A6A08 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x18 - ldr r1, =gUnknown_0203BC8C - ldr r0, =gBattleFrontierMons - str r0, [r1] - movs r4, 0 - add r5, sp, 0x14 - ldr r7, =gUnknown_020375F0 - movs r1, 0 -_081A6A1E: - mov r2, sp - adds r0, r2, r4 - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x11 - bls _081A6A1E - movs r4, 0 - ldr r0, =gUnknown_03006298 - mov r8, r0 - ldr r0, =gUnknown_0203BC8C - ldr r6, [r0] - ldr r1, =gBaseStats - mov r12, r1 -_081A6A3C: - lsls r0, r4, 1 - add r0, r8 - ldrh r0, [r0] - lsls r0, 4 - adds r0, r6 - ldrh r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - mov r2, r12 - adds r3, r0, r2 - ldrb r2, [r3, 0x6] - mov r0, sp - adds r1, r0, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldrb r1, [r3, 0x7] - cmp r2, r1 - beq _081A6A70 - ldrb r0, [r3, 0x7] - mov r2, sp - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_081A6A70: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _081A6A3C - movs r0, 0 - strb r0, [r5] - strb r0, [r5, 0x1] - movs r4, 0x1 - adds r3, r5, 0 -_081A6A84: - ldrb r0, [r3] - add r0, sp - mov r2, sp - adds r1, r2, r4 - ldrb r2, [r0] - ldrb r0, [r1] - cmp r2, r0 - bcs _081A6AAC - strb r4, [r5] - b _081A6AB2 - .pool -_081A6AAC: - cmp r2, r0 - bne _081A6AB2 - strb r4, [r3, 0x1] -_081A6AB2: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x11 - bls _081A6A84 - ldrb r1, [r5] - mov r4, sp - adds r0, r4, r1 - ldrb r2, [r0] - cmp r2, 0 - beq _081A6ADA - ldrb r3, [r5, 0x1] - adds r0, r4, r3 - ldrb r0, [r0] - cmp r2, r0 - bhi _081A6AD6 - cmp r1, r3 - bne _081A6ADA -_081A6AD6: - strh r1, [r7] - b _081A6ADE -_081A6ADA: - movs r0, 0x12 - strh r0, [r7] -_081A6ADE: - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81A6A08 - - thumb_func_start sub_81A6AEC -sub_81A6AEC: @ 81A6AEC - push {r4-r7,lr} - sub sp, 0x8 - movs r7, 0 - ldr r1, =gUnknown_0203BC8C - ldr r0, =gBattleFrontierMons - str r0, [r1] - movs r4, 0 - movs r1, 0 -_081A6AFC: - mov r2, sp - adds r0, r2, r4 - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _081A6AFC - movs r4, 0 -_081A6B0E: - ldr r1, =gUnknown_03006298 - lsls r0, r4, 1 - adds r0, r1 - ldrh r6, [r0] - movs r5, 0 -_081A6B18: - ldr r0, =gUnknown_0203BC8C - ldr r1, [r0] - lsls r0, r6, 4 - adds r0, r1 - lsls r1, r5, 1 - adds r0, 0x2 - adds r0, r1 - ldrh r0, [r0] - bl sub_81A6BA4 - lsls r0, 24 - lsrs r0, 24 - mov r2, sp - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _081A6B18 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _081A6B0E - ldr r1, =gUnknown_020375F0 - movs r0, 0 - strh r0, [r1] - movs r4, 0x1 - adds r5, r1, 0 - ldr r3, =gBattleFactoryStyleRequiredMoveCounts - adds r2, r5, 0 -_081A6B5C: - mov r1, sp - adds r0, r1, r4 - subs r1, r4, 0x1 - adds r1, r3 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bcc _081A6B74 - strh r4, [r2] - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_081A6B74: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _081A6B5C - cmp r7, 0x2 - bls _081A6B86 - movs r0, 0x8 - strh r0, [r5] -_081A6B86: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A6AEC - - thumb_func_start sub_81A6BA4 -sub_81A6BA4: @ 81A6BA4 - push {r4-r6,lr} - lsls r0, 16 - lsrs r5, r0, 16 - movs r2, 0 - ldr r6, =gBattleFactoryStyleMoveListPointers -_081A6BAE: - movs r3, 0 - lsls r0, r2, 2 - adds r0, r6 - ldr r1, [r0] - ldrh r0, [r1] - adds r4, r2, 0x1 - cmp r0, 0 - beq _081A6BE4 - lsls r0, r4, 24 - lsrs r2, r0, 24 -_081A6BC2: - lsls r0, r3, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r5 - bne _081A6BD4 - adds r0, r2, 0 - b _081A6BEE - .pool -_081A6BD4: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - bne _081A6BC2 -_081A6BE4: - lsls r0, r4, 24 - lsrs r2, r0, 24 - cmp r2, 0x6 - bls _081A6BAE - movs r0, 0 -_081A6BEE: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81A6BA4 - - thumb_func_start sub_81A6BF4 -sub_81A6BF4: @ 81A6BF4 - push {lr} - movs r2, 0 - ldr r1, =gUnknown_02037318 - ldr r3, =0xfffffea5 - adds r0, r3, 0 - ldrh r1, [r1, 0x12] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _081A6C0C - movs r2, 0x1 -_081A6C0C: - adds r0, r2, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A6BF4 - - thumb_func_start sub_81A6C1C -sub_81A6C1C: @ 81A6C1C - push {r4,lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x2 - beq _081A6C48 - ldr r1, =gUnknown_0203BC8C - ldr r0, =gBattleFrontierMons - b _081A6C4C - .pool -_081A6C48: - ldr r1, =gUnknown_0203BC8C - ldr r0, =gSlateportBattleTentMons -_081A6C4C: - str r0, [r1] - movs r4, 0 -_081A6C50: - movs r0, 0x64 - muls r0, r4 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gSaveBlock2Ptr - ldr r2, [r1] - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 2 - adds r2, r1 - movs r1, 0xE7 - lsls r1, 4 - adds r2, r1 - ldrh r2, [r2] - ldr r1, =gUnknown_0203BC8C - ldr r1, [r1] - lsls r2, 4 - adds r2, r1 - ldrb r2, [r2, 0xA] - lsls r2, 1 - ldr r1, =gBattleFrontierHeldItems - adds r2, r1 - movs r1, 0xC - bl pokemon_setattr - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _081A6C50 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A6C1C - - thumb_func_start sub_81A6CA8 -sub_81A6CA8: @ 81A6CA8 - push {lr} - lsls r0, 24 - lsls r1, 24 - lsrs r1, 24 - negs r2, r1 - orrs r2, r1 - lsrs r2, 31 - lsrs r1, r0, 24 - cmp r1, 0x8 - bls _081A6CBE - movs r1, 0x7 -_081A6CBE: - ldr r0, =gUnknown_08612184 - lsls r1, 1 - adds r1, r2, r1 - adds r1, r0 - ldrb r0, [r1] - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A6CA8 - - thumb_func_start sub_81A6CD0 -sub_81A6CD0: @ 81A6CD0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x34 - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 30 - str r0, [sp, 0x2C] - ldr r0, =0x000040ce - bl VarGet - lsls r0, 24 - ldr r1, [r4] - ldr r3, [sp, 0x2C] - lsls r2, r3, 1 - lsrs r0, 22 - adds r2, r0 - ldr r7, =0x00000de2 - adds r1, r7 - adds r1, r2 - ldrh r0, [r1] - movs r1, 0x7 - bl __udivsi3 - lsls r0, 24 - lsrs r1, r0, 24 - str r1, [sp, 0x30] - movs r2, 0x80 - lsls r2, 18 - adds r0, r2 - lsrs r0, 24 - movs r1, 0 - bl sub_81A6CA8 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x24] - bl sub_8165C40 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x20] - movs r3, 0 - mov r9, r3 - ldr r1, [r4] - ldrb r4, [r1, 0xA] - ldrb r0, [r1, 0xB] - lsls r0, 8 - orrs r4, r0 - ldrb r0, [r1, 0xC] - lsls r0, 16 - orrs r4, r0 - ldrb r0, [r1, 0xD] - lsls r0, 24 - orrs r4, r0 - str r4, [sp, 0x28] -_081A6D4C: - ldr r0, [sp, 0x2C] - ldr r1, [sp, 0x30] - movs r2, 0 - bl sub_81A6EF0 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r7, =gUnknown_0203BC8C - ldr r1, [r7] - lsls r0, r5, 4 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0xC9 - bne _081A6D6A - b _081A6EB8 -_081A6D6A: - ldr r0, [sp, 0x20] - cmp r0, 0x32 - bne _081A6D78 - ldr r0, =0x00000351 - cmp r5, r0 - bls _081A6D78 - b _081A6EB8 -_081A6D78: - movs r2, 0 - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - movs r3, 0xE7 - lsls r3, 4 - adds r0, r3 - ldrh r0, [r0] - cmp r5, r0 - beq _081A6DA2 - adds r4, r1, 0 - movs r1, 0 -_081A6D8E: - adds r1, 0xC - adds r2, 0x1 - cmp r2, 0x5 - bgt _081A6DA2 - ldr r0, [r4] - adds r0, r1 - adds r0, r3 - ldrh r0, [r0] - cmp r5, r0 - bne _081A6D8E -_081A6DA2: - cmp r2, 0x6 - beq _081A6DA8 - b _081A6EB8 -_081A6DA8: - movs r4, 0 - cmp r4, r9 - bge _081A6DDC - add r2, sp, 0xC - ldr r7, =gUnknown_0203BC8C - ldr r0, [r7] - lsls r1, r5, 4 - adds r0, r1, r0 - ldrh r2, [r2] - adds r7, r1, 0 - ldrh r0, [r0] - cmp r2, r0 - beq _081A6DDC - ldr r6, =gUnknown_0203BC8C - adds r3, r7, 0 - add r2, sp, 0xC -_081A6DC8: - adds r2, 0x2 - adds r4, 0x1 - cmp r4, r9 - bge _081A6DDC - ldr r0, [r6] - adds r0, r3, r0 - ldrh r1, [r2] - ldrh r0, [r0] - cmp r1, r0 - bne _081A6DC8 -_081A6DDC: - cmp r4, r9 - bne _081A6EB8 - movs r4, 0 - cmp r4, r9 - bge _081A6E0C - ldr r7, =gBattleFrontierHeldItems - ldr r6, =gUnknown_0203BC8C - add r2, sp, 0x14 - lsls r3, r5, 4 -_081A6DEE: - ldrh r1, [r2] - cmp r1, 0 - beq _081A6E04 - ldr r0, [r6] - adds r0, r3, r0 - ldrb r0, [r0, 0xA] - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - cmp r1, r0 - beq _081A6E0C -_081A6E04: - adds r2, 0x2 - adds r4, 0x1 - cmp r4, r9 - blt _081A6DEE -_081A6E0C: - cmp r4, r9 - bne _081A6EB8 - mov r0, r9 - lsls r2, r0, 1 - mov r1, sp - adds r1, r2 - adds r1, 0xC - ldr r3, =gUnknown_0203BC8C - ldr r4, [r3] - lsls r5, 4 - mov r8, r5 - add r4, r8 - ldrh r0, [r4] - strh r0, [r1] - add r1, sp, 0x14 - adds r1, r2 - ldr r2, =gBattleFrontierHeldItems - ldrb r0, [r4, 0xA] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - movs r0, 0x64 - mov r5, r9 - muls r5, r0 - ldr r6, =gEnemyParty - adds r0, r5, r6 - ldrh r1, [r4] - ldr r7, [sp, 0x20] - lsls r2, r7, 24 - ldrb r3, [r4, 0xC] - ldr r7, [sp, 0x24] - str r7, [sp] - ldrb r4, [r4, 0xB] - str r4, [sp, 0x4] - ldr r4, [sp, 0x28] - str r4, [sp, 0x8] - lsrs r2, 24 - bl sub_8068634 - add r0, sp, 0x1C - movs r7, 0 - strb r7, [r0] - movs r4, 0 - mov r7, r8 - mov r10, r0 - movs r0, 0x1 - add r0, r9 - mov r8, r0 -_081A6E6E: - ldr r1, =gUnknown_0203BC8C - ldr r0, [r1] - adds r0, r7, r0 - lsls r1, r4, 1 - adds r0, 0x2 - adds r0, r1 - ldrh r1, [r0] - lsls r2, r4, 24 - lsrs r2, 24 - adds r0, r5, r6 - bl sub_81A7024 - adds r4, 0x1 - cmp r4, 0x3 - ble _081A6E6E - movs r0, 0x64 - mov r4, r9 - muls r4, r0 - ldr r0, =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x20 - mov r2, r10 - bl pokemon_setattr - ldr r2, =gUnknown_0203BC8C - ldr r0, [r2] - adds r0, r7, r0 - ldrb r2, [r0, 0xA] - lsls r2, 1 - ldr r0, =gBattleFrontierHeldItems - adds r2, r0 - adds r0, r4, 0 - movs r1, 0xC - bl pokemon_setattr - mov r9, r8 -_081A6EB8: - mov r3, r9 - cmp r3, 0x3 - beq _081A6EC0 - b _081A6D4C -_081A6EC0: - add sp, 0x34 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A6CD0 - - thumb_func_start sub_81A6EF0 -sub_81A6EF0: @ 81A6EF0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - lsls r2, 24 - lsrs r2, 24 - movs r4, 0x8 - negs r1, r0 - orrs r1, r0 - asrs r1, 31 - ands r1, r4 - adds r4, r1, 0 - cmp r3, 0x6 - bhi _081A6F2C - cmp r2, 0 - beq _081A6F20 - ldr r2, =gUnknown_08612194 - adds r1, r3 - adds r1, 0x1 - b _081A6F38 - .pool -_081A6F20: - ldr r2, =gUnknown_08612194 - adds r1, r3 - b _081A6F38 - .pool -_081A6F2C: - adds r1, r3, 0 - cmp r1, 0x7 - beq _081A6F34 - movs r1, 0x7 -_081A6F34: - ldr r2, =gUnknown_08612194 - adds r1, r4, r1 -_081A6F38: - lsls r1, 2 - adds r0, r2, 0x2 - adds r0, r1, r0 - adds r1, r2 - ldrh r0, [r0] - ldrh r4, [r1] - subs r0, r4 - adds r0, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r5, 0 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - adds r4, r0, r4 - lsls r4, 16 - lsrs r0, r4, 16 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A6EF0 - - thumb_func_start sub_81A6F70 -sub_81A6F70: @ 81A6F70 - push {lr} - lsls r0, 24 - lsls r1, 24 - ldr r2, =gSaveBlock2Ptr - ldr r2, [r2] - lsrs r1, 23 - lsrs r0, 22 - adds r1, r0 - ldr r0, =0x00000df2 - adds r2, r0 - adds r2, r1 - ldrb r1, [r2] - movs r0, 0 - cmp r1, 0xE - bls _081A6FA8 - movs r0, 0x1 - cmp r1, 0x15 - bls _081A6FA8 - movs r0, 0x2 - cmp r1, 0x1C - bls _081A6FA8 - movs r0, 0x3 - cmp r1, 0x23 - bls _081A6FA8 - movs r0, 0x5 - cmp r1, 0x2A - bhi _081A6FA8 - movs r0, 0x4 -_081A6FA8: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A6F70 - - thumb_func_start sub_81A6FB4 -sub_81A6FB4: @ 81A6FB4 - push {r4,r5,lr} - ldr r5, =gSaveBlock2Ptr - ldr r0, [r5] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r4, r0, 30 - cmp r4, 0x2 - beq _081A6FF8 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - ldr r1, [r5] - lsls r2, r4, 1 - lsrs r0, 14 - adds r2, r0 - ldr r0, =0x00000de2 - adds r1, r0 - adds r1, r2 - ldrh r0, [r1] - movs r1, 0x7 - bl __udivsi3 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, =gUnknown_02038BCA - ldrh r1, [r0] - ldr r0, =0x000003fe - cmp r1, r0 - beq _081A7018 - cmp r2, 0x1 - bgt _081A7014 -_081A6FF8: - movs r0, 0 - b _081A701E - .pool -_081A7014: - cmp r2, 0x3 - ble _081A701C -_081A7018: - movs r0, 0x7 - b _081A701E -_081A701C: - movs r0, 0x1 -_081A701E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81A6FB4 - - thumb_func_start sub_81A7024 -sub_81A7024: @ 81A7024 - push {lr} - lsls r1, 16 - lsls r2, 24 - lsrs r2, 24 - lsrs r1, 16 - cmp r1, 0xD8 - bne _081A7034 - movs r1, 0xDA -_081A7034: - bl sub_80691F4 - pop {r0} - bx r0 - thumb_func_end sub_81A7024 - - thumb_func_start sub_81A703C -sub_81A703C: @ 81A703C - push {lr} - ldr r1, =gUnknown_086125F8 - ldr r0, =gUnknown_020375E0 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A703C - - thumb_func_start sub_81A705C -sub_81A705C: @ 81A705C - push {lr} - bl sub_81A79EC - ldr r1, =gUnknown_0300128C - strb r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A705C - - thumb_func_start sub_81A7070 -sub_81A7070: @ 81A7070 - push {r4-r7,lr} - ldr r0, =0x00004010 - movs r1, 0x1C - bl VarSet - ldr r0, =0x00004011 - movs r1, 0xE2 - bl VarSet - movs r4, 0x1 - movs r6, 0 - movs r5, 0 - movs r7, 0 - ldr r0, =gUnknown_0300128C - ldrb r0, [r0] - cmp r0, 0x8 - bhi _081A7132 - lsls r0, 2 - ldr r1, =_081A70AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081A70AC: - .4byte _081A70D0 - .4byte _081A70DA - .4byte _081A70DE - .4byte _081A70E8 - .4byte _081A70FC - .4byte _081A70D6 - .4byte _081A7100 - .4byte _081A7108 - .4byte _081A710E -_081A70D0: - movs r0, 0 - bl sub_81A82A4 -_081A70D6: - movs r4, 0 - b _081A711A -_081A70DA: - movs r5, 0x1C - b _081A711A -_081A70DE: - bl sub_81A7B58 - lsls r0, 24 - lsrs r5, r0, 24 - b _081A711A -_081A70E8: - movs r5, 0x30 - ldr r0, =gUnknown_0300128D - ldrb r0, [r0] - movs r7, 0xE1 - cmp r0, 0x1 - bne _081A7118 - movs r7, 0xE2 - b _081A7118 - .pool -_081A70FC: - movs r5, 0x30 - b _081A711A -_081A7100: - movs r0, 0x1 - bl sub_81A82A4 - b _081A7114 -_081A7108: - bl sub_81A8374 - b _081A70D6 -_081A710E: - movs r0, 0x5 - bl sub_81A5030 -_081A7114: - movs r7, 0x1C - movs r4, 0 -_081A7118: - movs r6, 0x1 -_081A711A: - cmp r4, 0x1 - bne _081A7126 - ldr r0, =0x00004010 - adds r1, r5, 0 - bl VarSet -_081A7126: - cmp r6, 0x1 - bne _081A7132 - ldr r0, =0x00004011 - adds r1, r7, 0 - bl VarSet -_081A7132: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A7070 - - thumb_func_start sub_81A7140 -sub_81A7140: @ 81A7140 - push {lr} - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - ldr r2, =0x00000ca9 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 30 - lsrs r2, r0, 30 - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - adds r3, r1, 0 - cmp r0, 0x4 - bhi _081A723A - lsls r0, 2 - ldr r1, =_081A7174 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081A7174: - .4byte _081A7188 - .4byte _081A71A0 - .4byte _081A71C4 - .4byte _081A71E8 - .4byte _081A720C -_081A7188: - ldr r0, =gUnknown_020375F0 - ldr r1, [r3] - ldr r3, =0x00000e02 - adds r1, r3 - ldrh r1, [r1] - strh r1, [r0] - b _081A723A - .pool -_081A71A0: - ldr r2, =gUnknown_020375F0 - ldr r1, [r3] - ldr r3, =0x00000ca9 - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 29 - ldr r3, =0x00000e04 - adds r1, r3 - adds r1, r0 - ldrh r0, [r1] - b _081A7238 - .pool -_081A71C4: - ldr r2, =gUnknown_020375F0 - ldr r1, [r3] - ldr r3, =0x00000ca9 - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 29 - ldr r3, =0x00000e08 - adds r1, r3 - adds r1, r0 - ldrh r0, [r1] - b _081A7238 - .pool -_081A71E8: - ldr r2, =gUnknown_020375F0 - ldr r1, [r3] - ldr r3, =0x00000ca9 - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 29 - ldr r3, =0x00000e0c - adds r1, r3 - adds r1, r0 - ldrh r0, [r1] - b _081A7238 - .pool -_081A720C: - cmp r2, 0 - beq _081A7228 - ldr r2, =gUnknown_020375F0 - ldr r0, [r3] - ldr r1, =0x00000cdc - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 4 - b _081A7236 - .pool -_081A7228: - ldr r2, =gUnknown_020375F0 - ldr r0, [r3] - ldr r3, =0x00000cdc - adds r0, r3 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 3 -_081A7236: - ands r0, r1 -_081A7238: - strh r0, [r2] -_081A723A: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A7140 - - thumb_func_start sub_81A7248 -sub_81A7248: @ 81A7248 - push {r4,r5,lr} - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - ldr r2, =0x00000ca9 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 30 - lsrs r3, r0, 30 - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - adds r2, r1, 0 - cmp r0, 0x4 - bls _081A7264 - b _081A73AA -_081A7264: - lsls r0, 2 - ldr r1, =_081A7280 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081A7280: - .4byte _081A7294 - .4byte _081A72AC - .4byte _081A72D8 - .4byte _081A7314 - .4byte _081A7344 -_081A7294: - ldr r0, [r2] - ldr r1, =gUnknown_020375E4 - ldrh r1, [r1] - ldr r5, =0x00000e02 - adds r0, r5 - strh r1, [r0] - b _081A73AA - .pool -_081A72AC: - ldr r0, =gUnknown_020375E4 - ldrh r3, [r0] - ldr r0, =0x0000270f - cmp r3, r0 - bls _081A72B8 - b _081A73AA -_081A72B8: - ldr r0, [r2] - ldr r2, =0x00000ca9 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, 30 - lsrs r1, 29 - ldr r5, =0x00000e04 - b _081A732C - .pool -_081A72D8: - ldr r0, =gUnknown_020375E4 - ldrh r4, [r0] - adds r3, r4, 0 - ldr r0, =0x0000270f - cmp r3, r0 - bhi _081A73AA - ldr r1, [r2] - ldr r2, =0x00000ca9 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r2, r0, 30 - lsrs r0, r2, 29 - ldr r5, =0x00000e08 - adds r1, r5 - adds r0, r1, r0 - ldrh r0, [r0] - cmp r0, r3 - bcs _081A73AA - lsrs r0, r2, 29 - adds r0, r1, r0 - strh r4, [r0] - b _081A73AA - .pool -_081A7314: - ldr r0, =gUnknown_020375E4 - ldrh r3, [r0] - ldr r0, =0x0000270f - cmp r3, r0 - bhi _081A73AA - ldr r0, [r2] - ldr r2, =0x00000ca9 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, 30 - lsrs r1, 29 - ldr r5, =0x00000e0c -_081A732C: - adds r0, r5 - adds r0, r1 - strh r3, [r0] - b _081A73AA - .pool -_081A7344: - cmp r3, 0 - beq _081A737C - ldr r0, =gUnknown_020375E4 - ldrh r0, [r0] - cmp r0, 0 - beq _081A7368 - ldr r0, [r2] - ldr r1, =0x00000cdc - adds r0, r1 - ldr r1, [r0] - movs r2, 0x80 - lsls r2, 4 - orrs r1, r2 - b _081A73A8 - .pool -_081A7368: - ldr r0, [r2] - ldr r2, =0x00000cdc - adds r0, r2 - ldr r1, [r0] - ldr r2, =0xfffff7ff - b _081A73A6 - .pool -_081A737C: - ldr r0, =gUnknown_020375E4 - ldrh r0, [r0] - cmp r0, 0 - beq _081A739C - ldr r0, [r2] - ldr r5, =0x00000cdc - adds r0, r5 - ldr r1, [r0] - movs r2, 0x80 - lsls r2, 3 - orrs r1, r2 - b _081A73A8 - .pool -_081A739C: - ldr r0, [r2] - ldr r1, =0x00000cdc - adds r0, r1 - ldr r1, [r0] - ldr r2, =0xfffffbff -_081A73A6: - ands r1, r2 -_081A73A8: - str r1, [r0] -_081A73AA: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A7248 - - thumb_func_start sub_81A73B8 -sub_81A73B8: @ 81A73B8 - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000cb2 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0xE - bls _081A73DC - ldr r1, =gUnknown_020375F0 - movs r0, 0x1 - b _081A73E0 - .pool -_081A73DC: - ldr r1, =gUnknown_020375F0 - movs r0, 0 -_081A73E0: - strh r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A73B8 - - thumb_func_start sub_81A73EC -sub_81A73EC: @ 81A73EC - ldr r0, =gUnknown_020375F0 - ldr r1, =gUnknown_0300128C - ldrb r1, [r1] - strh r1, [r0] - bx lr - .pool - thumb_func_end sub_81A73EC - - thumb_func_start sub_81A7400 -sub_81A7400: @ 81A7400 - ldr r1, =gUnknown_0300128E - movs r0, 0x1 - strb r0, [r1] - bx lr - .pool - thumb_func_end sub_81A7400 - - thumb_func_start sub_81A740C -sub_81A740C: @ 81A740C - ldr r1, =gUnknown_0300128E - movs r0, 0 - strb r0, [r1] - bx lr - .pool - thumb_func_end sub_81A740C - - thumb_func_start sub_81A7418 -sub_81A7418: @ 81A7418 - push {r4,lr} - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =gUnknown_020375E2 - ldrh r1, [r1] - ldr r2, =0x00000ca8 - adds r0, r2 - strb r1, [r0] - movs r0, 0x80 - lsls r0, 7 - movs r1, 0 - bl VarSet - ldr r1, [r4] - ldr r0, =0x00000ca9 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - bl save_serialize_map - movs r0, 0x1 - bl save_game_when_memory_present - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A7418 - - thumb_func_start nullsub_76 -nullsub_76: @ 81A7460 - bx lr - thumb_func_end nullsub_76 - - thumb_func_start nullsub_124 -nullsub_124: @ 81A7464 - bx lr - thumb_func_end nullsub_124 - - thumb_func_start sub_81A7468 -sub_81A7468: @ 81A7468 - push {lr} - ldr r0, =gUnknown_03001290 - ldr r0, [r0] - cmp r0, 0x20 - beq _081A748E - cmp r0, 0x20 - bhi _081A7484 - cmp r0, 0x7 - beq _081A74BC - cmp r0, 0x10 - beq _081A7498 - b _081A74C2 - .pool -_081A7484: - cmp r0, 0x40 - beq _081A74B0 - cmp r0, 0x80 - beq _081A74A4 - b _081A74C2 -_081A748E: - ldr r1, =gUnknown_020375F0 - movs r0, 0 - b _081A74C0 - .pool -_081A7498: - ldr r1, =gUnknown_020375F0 - movs r0, 0x1 - b _081A74C0 - .pool -_081A74A4: - ldr r1, =gUnknown_020375F0 - movs r0, 0x2 - b _081A74C0 - .pool -_081A74B0: - ldr r1, =gUnknown_020375F0 - movs r0, 0x3 - b _081A74C0 - .pool -_081A74BC: - ldr r1, =gUnknown_020375F0 - movs r0, 0x4 -_081A74C0: - strh r0, [r1] -_081A74C2: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A7468 - - thumb_func_start sub_81A74CC -sub_81A74CC: @ 81A74CC - ldr r0, =gUnknown_020375F0 - ldr r1, =gUnknown_0300128D - ldrb r1, [r1] - strh r1, [r0] - bx lr - .pool - thumb_func_end sub_81A74CC - - thumb_func_start sub_81A74E0 -sub_81A74E0: @ 81A74E0 - push {r4,lr} - bl Random - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0x1 - ands r4, r0 - adds r4, 0x1 - adds r0, r4, 0 - bl sub_81A7F38 - ldr r0, =gUnknown_020375F0 - strh r4, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A74E0 - - thumb_func_start sub_81A7508 -sub_81A7508: @ 81A7508 - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000cb2 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0x4 - bhi _081A7538 - ldr r1, =gUnknown_0861231C - ldr r0, =gUnknown_03001294 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0x2] - b _081A7560 - .pool -_081A7538: - cmp r0, 0xA - bhi _081A7554 - ldr r1, =gUnknown_0861231C - ldr r0, =gUnknown_03001294 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0x3] - b _081A7560 - .pool -_081A7554: - ldr r1, =gUnknown_0861231C - ldr r0, =gUnknown_03001294 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0x4] -_081A7560: - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_086123E4 - adds r0, r1 - bl ConvertBattleFrontierTrainerSpeechToString - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A7508 - - thumb_func_start sub_81A7580 -sub_81A7580: @ 81A7580 - push {lr} - ldr r0, =sub_81A7EE4 - movs r1, 0x2 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A7580 - - thumb_func_start sub_81A7594 -sub_81A7594: @ 81A7594 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r4, 0 - movs r1, 0 -_081A759E: - mov r2, sp - adds r0, r2, r4 - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _081A759E - adds r0, r5, 0 - movs r1, 0x3A - bl GetMonData - lsls r2, r0, 16 - mov r1, sp - strb r0, [r1] - mov r0, sp - lsrs r2, 24 - strb r2, [r0, 0x1] - adds r0, r5, 0 - movs r1, 0x39 - mov r2, sp - bl pokemon_setattr - adds r0, r5, 0 - movs r1, 0x15 - bl GetMonData - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 -_081A75DA: - adds r1, r4, 0 - adds r1, 0xD - adds r0, r5, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - adds r1, r6, 0 - adds r2, r4, 0 - bl CalcPPWithPPUps - mov r1, sp - strb r0, [r1] - adds r1, r4, 0 - adds r1, 0x11 - adds r0, r5, 0 - mov r2, sp - bl pokemon_setattr - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _081A75DA - mov r0, sp - movs r1, 0 - strb r1, [r0] - strb r1, [r0, 0x1] - strb r1, [r0, 0x2] - strb r1, [r0, 0x3] - adds r0, r5, 0 - movs r1, 0x37 - mov r2, sp - bl pokemon_setattr - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81A7594 - - thumb_func_start sub_81A7628 -sub_81A7628: @ 81A7628 - push {r4,lr} - adds r4, r1, 0 - bl GetMonAbility - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - cmp r4, 0x20 - beq _081A7652 - cmp r4, 0x20 - bhi _081A7648 - cmp r4, 0x7 - beq _081A7664 - cmp r4, 0x10 - beq _081A7658 - b _081A7674 -_081A7648: - cmp r4, 0x40 - beq _081A765E - cmp r4, 0x80 - beq _081A766E - b _081A7674 -_081A7652: - cmp r0, 0x28 - bne _081A7674 - b _081A7672 -_081A7658: - cmp r0, 0x29 - bne _081A7674 - b _081A7672 -_081A765E: - cmp r0, 0x7 - bne _081A7674 - b _081A7672 -_081A7664: - cmp r0, 0xF - beq _081A7672 - cmp r0, 0x48 - bne _081A7674 - b _081A7672 -_081A766E: - cmp r0, 0x11 - bne _081A7674 -_081A7672: - movs r1, 0x1 -_081A7674: - adds r0, r1, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81A7628 - - thumb_func_start sub_81A767C -sub_81A767C: @ 81A767C - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - movs r3, 0 - cmp r1, 0x20 - beq _081A76C4 - cmp r1, 0x20 - bhi _081A7696 - cmp r1, 0x7 - beq _081A771C - cmp r1, 0x10 - beq _081A7704 - b _081A771C -_081A7696: - cmp r1, 0x40 - beq _081A76E0 - cmp r1, 0x80 - bne _081A771C - ldr r1, =gBaseStats - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x6] - cmp r2, 0x8 - beq _081A771A - cmp r2, 0x3 - beq _081A771A - ldrb r0, [r0, 0x7] - cmp r0, 0x8 - beq _081A771A - cmp r0, 0x3 - bne _081A771C - b _081A771A - .pool -_081A76C4: - ldr r0, =gBaseStats - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x6] - cmp r0, 0xF - beq _081A771A - ldrb r0, [r1, 0x7] - cmp r0, 0xF - bne _081A771C - b _081A771A - .pool -_081A76E0: - ldr r1, =gBaseStats - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x6] - cmp r2, 0x4 - beq _081A771A - cmp r2, 0xD - beq _081A771A - ldrb r0, [r0, 0x7] - cmp r0, 0x4 - beq _081A771A - cmp r0, 0xD - bne _081A771C - b _081A771A - .pool -_081A7704: - ldr r0, =gBaseStats - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x6] - cmp r0, 0xA - beq _081A771A - ldrb r0, [r1, 0x7] - cmp r0, 0xA - bne _081A771C -_081A771A: - movs r3, 0x1 -_081A771C: - adds r0, r3, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A767C - - thumb_func_start sub_81A7728 -sub_81A7728: @ 81A7728 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r6, 0 -_081A7736: - mov r1, sp - adds r0, r1, r6 - strb r6, [r0] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x2 - bls _081A7736 - movs r4, 0 - mov r8, r4 -_081A774A: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 24 - lsrs r6, r0, 24 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - adds r2, r1, r6 - ldrb r3, [r2] - adds r1, r0 - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0x9 - bls _081A774A - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r4, =0x00000cb2 - adds r0, r4 - ldrh r0, [r0] - movs r1, 0x1 - mov r10, r1 - cmp r0, 0x4 - bls _081A77A8 - movs r4, 0x3 - mov r10, r4 - cmp r0, 0x9 - bhi _081A77A8 - movs r0, 0x2 - mov r10, r0 -_081A77A8: - movs r1, 0 - str r1, [sp, 0x4] - ldr r7, =gUnknown_03001290 -_081A77AE: - movs r4, 0 - mov r9, r4 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x22 - bhi _081A77DC - movs r0, 0x80 - b _081A77FC - .pool -_081A77DC: - cmp r0, 0x3B - bhi _081A77E4 - movs r0, 0x20 - b _081A77FC -_081A77E4: - cmp r0, 0x4F - bhi _081A77EC - movs r0, 0x40 - b _081A77FC -_081A77EC: - cmp r1, 0x59 - bhi _081A77FA - movs r0, 0x7 - b _081A77FC -_081A77F4: - movs r0, 0x1 - mov r9, r0 - b _081A786E -_081A77FA: - movs r0, 0x10 -_081A77FC: - str r0, [r7] - ldr r0, =gUnknown_03001290 - ldr r0, [r0] - ldr r1, [sp, 0x4] - cmp r1, r0 - beq _081A7874 - str r0, [sp, 0x4] - movs r4, 0 - mov r8, r4 - movs r6, 0 -_081A7810: - mov r1, sp - adds r0, r1, r6 - ldrb r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0x37 - bl GetMonData - bl pokemon_ailments_get_primary - lsls r0, 24 - cmp r0, 0 - bne _081A7860 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _081A7860 - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - ldr r1, [r7] - adds r0, r4, 0 - bl sub_81A767C - lsls r0, 24 - cmp r0, 0 - beq _081A77F4 -_081A7860: - cmp r8, r10 - beq _081A786E - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x2 - bls _081A7810 -_081A786E: - mov r4, r8 - cmp r4, 0 - beq _081A78CC -_081A7874: - mov r0, r9 - cmp r0, 0 - beq _081A77AE - ldr r0, =gUnknown_03001290 - ldr r0, [r0] - cmp r0, 0x20 - beq _081A7898 - cmp r0, 0x20 - bhi _081A78D0 - cmp r0, 0x7 - beq _081A78D0 - cmp r0, 0x10 - beq _081A78A4 - b _081A78D0 - .pool -_081A7898: - ldr r1, =gUnknown_0300128D - movs r0, 0x1 - b _081A78D4 - .pool -_081A78A4: - bl Random - lsls r0, 16 - lsrs r1, r0, 16 - movs r2, 0x1 - ands r1, r2 - cmp r1, 0 - beq _081A78C0 - ldr r0, =gUnknown_0300128D - strb r2, [r0] - b _081A78D6 - .pool -_081A78C0: - ldr r0, =gUnknown_0300128D - strb r1, [r0] - b _081A78D6 - .pool -_081A78CC: - movs r0, 0 - b _081A7956 -_081A78D0: - ldr r1, =gUnknown_0300128D - movs r0, 0 -_081A78D4: - strb r0, [r1] -_081A78D6: - movs r1, 0 - mov r8, r1 - movs r6, 0 -_081A78DC: - mov r4, sp - adds r0, r4, r6 - ldrb r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0x37 - bl GetMonData - bl pokemon_ailments_get_primary - lsls r0, 24 - cmp r0, 0 - bne _081A7946 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _081A7946 - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - ldr r7, =gUnknown_03001290 - ldr r1, [r7] - adds r0, r5, 0 - bl sub_81A7628 - lsls r0, 24 - cmp r0, 0 - bne _081A7946 - ldr r1, [r7] - adds r0, r4, 0 - bl sub_81A767C - lsls r0, 24 - cmp r0, 0 - bne _081A7946 - adds r0, r5, 0 - movs r1, 0x37 - adds r2, r7, 0 - bl pokemon_setattr -_081A7946: - cmp r8, r10 - beq _081A7954 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x2 - bls _081A78DC -_081A7954: - movs r0, 0x1 -_081A7956: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A7728 - - thumb_func_start sub_81A7974 -sub_81A7974: @ 81A7974 - push {r4-r7,lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000cb2 - adds r0, r1 - ldrh r0, [r0] - movs r7, 0x1 - cmp r0, 0x4 - bls _081A798E - movs r7, 0x3 - cmp r0, 0x9 - bhi _081A798E - movs r7, 0x2 -_081A798E: - movs r6, 0 - movs r5, 0 - b _081A79A2 - .pool -_081A799C: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_081A79A2: - cmp r5, 0x2 - bhi _081A79D8 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - bl pokemon_ailments_get_primary - lsls r0, 24 - cmp r0, 0 - bne _081A79D4 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _081A79D4 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_081A79D4: - cmp r6, r7 - bne _081A799C -_081A79D8: - cmp r6, 0 - beq _081A79E4 - movs r0, 0x1 - b _081A79E6 - .pool -_081A79E4: - movs r0, 0 -_081A79E6: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81A7974 - - thumb_func_start sub_81A79EC -sub_81A79EC: @ 81A79EC - push {r4-r6,lr} - sub sp, 0x8 - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - movs r4, 0xE1 - lsls r4, 4 - adds r0, r4 - ldrb r2, [r0] - movs r3, 0x78 - ands r3, r2 - adds r5, r1, 0 - cmp r3, 0x40 - bne _081A7A10 - lsls r0, r2, 25 - lsrs r0, 28 - b _081A7B48 - .pool -_081A7A10: - ldr r0, =gUnknown_020375E6 - lsls r1, r2, 29 - ldrh r0, [r0] - lsrs r1, 29 - cmp r0, r1 - bne _081A7A34 - cmp r3, 0x18 - bne _081A7A24 - bl sub_81A7728 -_081A7A24: - ldr r0, [r5] - adds r0, r4 - ldrb r0, [r0] - lsls r0, 25 - lsrs r0, 28 - b _081A7B48 - .pool -_081A7A34: - movs r2, 0 - ldr r3, =gUnknown_0861266C - movs r1, 0 -_081A7A3A: - mov r4, sp - adds r0, r4, r2 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _081A7A3A - movs r4, 0x8 - ldr r0, [r5] - movs r6, 0xE1 - lsls r6, 4 - adds r0, r6 - ldrb r0, [r0] - lsls r0, 25 - lsrs r0, 28 - adds r0, r3 - ldrb r1, [r0] - movs r2, 0 - adds r5, r3, 0 - movs r3, 0x1 -_081A7A64: - adds r0, r2, r5 - ldrb r0, [r0] - cmp r0, r1 - bne _081A7A78 - mov r6, sp - adds r0, r6, r2 - strb r3, [r0] - subs r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_081A7A78: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _081A7A64 - mov r0, sp - ldrb r0, [r0, 0x7] - cmp r0, 0x1 - beq _081A7AA0 - bl sub_81A8554 - lsls r0, 24 - cmp r0, 0 - bne _081A7AA0 - mov r1, sp - movs r0, 0x1 - strb r0, [r1, 0x7] - subs r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_081A7AA0: - mov r0, sp - ldrb r0, [r0, 0x3] - cmp r0, 0x1 - beq _081A7ABE - bl sub_81A7974 - lsls r0, 24 - cmp r0, 0 - bne _081A7ABE - mov r1, sp - movs r0, 0x1 - strb r0, [r1, 0x3] - subs r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_081A7ABE: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - movs r1, 0xE1 - lsls r1, 4 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081A7AFA - mov r0, sp - ldrb r0, [r0, 0x1] - cmp r0, 0x1 - beq _081A7AE6 - mov r1, sp - movs r0, 0x1 - strb r0, [r1, 0x1] - subs r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_081A7AE6: - mov r0, sp - ldrb r0, [r0, 0x4] - cmp r0, 0x1 - beq _081A7AFA - mov r1, sp - movs r0, 0x1 - strb r0, [r1, 0x4] - subs r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_081A7AFA: - adds r0, r4, 0 - bl AllocZeroed - adds r5, r0, 0 - movs r3, 0 - movs r2, 0 -_081A7B06: - mov r6, sp - adds r0, r6, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _081A7B1C - adds r1, r3, 0 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r1, r5, r1 - strb r2, [r1] -_081A7B1C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _081A7B06 - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0 - bl __modsi3 - adds r0, r5, r0 - ldrb r4, [r0] - adds r0, r5, 0 - bl Free - cmp r4, 0x3 - bne _081A7B46 - bl sub_81A7728 -_081A7B46: - adds r0, r4, 0 -_081A7B48: - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A79EC - - thumb_func_start sub_81A7B58 -sub_81A7B58: @ 81A7B58 - push {r4,lr} - ldr r4, =gUnknown_03001294 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x19 - bl __umodsi3 - strb r0, [r4] - ldr r1, =gUnknown_0861231C - ldrb r0, [r4] - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0] - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A7B58 - - thumb_func_start sub_81A7B84 -sub_81A7B84: @ 81A7B84 - ldr r0, =gUnknown_0300128E - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_81A7B84 - - thumb_func_start sub_81A7B90 -sub_81A7B90: @ 81A7B90 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - bl sub_81A7D00 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r7, =gSaveBlock2Ptr - ldr r0, [r7] - ldr r4, =0x00000ca9 - adds r0, r4 - ldrb r0, [r0] - lsls r0, 30 - ldr r1, =gUnknown_08612314 - lsrs r0, 28 - adds r0, r1 - ldr r0, [r0] - str r0, [sp, 0x4] - ldr r0, =gEnemyParty - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r5, r0, 0 - lsls r0, r5, 16 - lsrs r0, 16 - bl sub_81A890C - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, [r7] - adds r0, r4 - ldrb r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _081A7C1C - bl sub_8165CB4 - adds r7, r0, 0 - cmp r7, 0x3B - ble _081A7C08 - lsls r0, r6, 2 - ldr r1, [sp, 0x4] - adds r0, r1 - ldr r1, [r0] - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x2] - subs r7, r0 - cmp r7, 0x3B - bgt _081A7C32 -_081A7C08: - movs r7, 0x3C - b _081A7C32 - .pool -_081A7C1C: - lsls r0, r6, 2 - ldr r2, [sp, 0x4] - adds r0, r2 - ldr r1, [r0] - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x2] - movs r0, 0x32 - subs r7, r0, r1 -_081A7C32: - mov r0, r8 - cmp r0, 0x1 - bne _081A7C4A - lsls r0, r7, 24 - lsrs r0, 24 - bl sub_81A88B0 - lsls r0, 24 - cmp r0, 0 - bne _081A7C4A - movs r0, 0 - b _081A7CE2 -_081A7C4A: - ldr r0, =gEnemyParty - ldr r1, =gBaseStats - mov r8, r1 - lsls r6, 2 - mov r9, r6 - ldr r2, [sp, 0x4] - add r2, r9 - mov r10, r2 - ldr r1, [r2] - lsls r6, r5, 1 - adds r4, r6, r5 - lsls r4, 2 - adds r1, r4, r1 - ldrh r2, [r1] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - add r1, r8 - ldrb r2, [r1, 0x13] - movs r1, 0xCA - lsls r1, 1 - muls r2, r1 - lsls r1, r7, 2 - ldr r3, =gExperienceTables - adds r1, r3 - adds r2, r1 - movs r1, 0x19 - bl pokemon_setattr - mov r1, r10 - ldr r0, [r1] - adds r4, r0 - ldrh r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r8 - ldrb r0, [r0, 0x17] - mov r7, r9 - cmp r0, 0 - beq _081A7CA8 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 -_081A7CA8: - str r0, [sp] - ldr r0, =gEnemyParty - movs r1, 0x2E - mov r2, sp - bl pokemon_setattr - movs r4, 0 - adds r0, r6, r5 - lsls r6, r0, 2 -_081A7CBA: - ldr r2, [sp, 0x4] - adds r0, r7, r2 - ldr r0, [r0] - adds r0, r6, r0 - lsls r1, r4, 1 - adds r0, 0x4 - adds r0, r1 - ldrh r1, [r0] - lsls r2, r4, 24 - lsrs r2, 24 - ldr r0, =gEnemyParty - bl sub_80691F4 - adds r4, 0x1 - cmp r4, 0x3 - ble _081A7CBA - ldr r0, =gEnemyParty - bl pokemon_calc_effective_stats - movs r0, 0x1 -_081A7CE2: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A7B90 - - thumb_func_start sub_81A7D00 -sub_81A7D00: @ 81A7D00 - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r2, =0x00000ca9 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 29 - ldr r2, =0x00000e04 - adds r1, r2 - adds r1, r0 - ldrh r1, [r1] - adds r2, r1, 0 - movs r0, 0x8C - lsls r0, 1 - cmp r1, r0 - bhi _081A7D34 - movs r1, 0 - b _081A7D4C - .pool -_081A7D34: - movs r0, 0x8C - lsls r0, 2 - cmp r1, r0 - bhi _081A7D40 - movs r1, 0x1 - b _081A7D4C -_081A7D40: - movs r0, 0xD2 - lsls r0, 2 - movs r1, 0x3 - cmp r2, r0 - bhi _081A7D4C - movs r1, 0x2 -_081A7D4C: - adds r0, r1, 0 - pop {r1} - bx r1 - thumb_func_end sub_81A7D00 - - thumb_func_start sub_81A7D54 -sub_81A7D54: @ 81A7D54 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, =gUnknown_08612688 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_081A7D66: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _081A7D66 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A7D54 - - thumb_func_start sub_81A7D8C -sub_81A7D8C: @ 81A7D8C - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x14] - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _081A7DA4 - subs r0, r1, 0x1 - strh r0, [r4, 0x14] - lsls r0, 16 - cmp r0, 0 - bne _081A7DC8 -_081A7DA4: - ldrh r0, [r4, 0xA] - strh r0, [r4, 0x14] - ldrh r0, [r4, 0x10] - ldrh r1, [r4, 0x16] - adds r0, r1 - strh r0, [r4, 0x16] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _081A7DBC - movs r0, 0x10 - strh r0, [r4, 0x16] -_081A7DBC: - movs r0, 0x1 - negs r0, r0 - ldrb r1, [r4, 0x16] - ldr r2, =0x00002d6b - bl BlendPalettes -_081A7DC8: - movs r2, 0x16 - ldrsh r0, [r4, r2] - cmp r0, 0xF - ble _081A7DDA - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldrh r0, [r4, 0xC] - strh r0, [r4, 0x14] -_081A7DDA: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A7D8C - - thumb_func_start sub_81A7DE8 -sub_81A7DE8: @ 81A7DE8 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x14] - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _081A7E00 - subs r0, r1, 0x1 - strh r0, [r4, 0x14] - lsls r0, 16 - cmp r0, 0 - bne _081A7E22 -_081A7E00: - ldrh r0, [r4, 0xC] - strh r0, [r4, 0x14] - ldrh r0, [r4, 0x16] - ldrh r1, [r4, 0x12] - subs r0, r1 - strh r0, [r4, 0x16] - lsls r0, 16 - cmp r0, 0 - bge _081A7E16 - movs r0, 0 - strh r0, [r4, 0x16] -_081A7E16: - movs r0, 0x1 - negs r0, r0 - ldrb r1, [r4, 0x16] - ldr r2, =0x00002d6b - bl BlendPalettes -_081A7E22: - movs r0, 0x16 - ldrsh r1, [r4, r0] - cmp r1, 0 - bne _081A7E56 - ldrh r0, [r4, 0xE] - subs r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - cmp r0, 0 - bne _081A7E50 - ldr r0, =sub_81A7D54 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - b _081A7E56 - .pool -_081A7E50: - ldrh r0, [r4, 0xA] - strh r0, [r4, 0x14] - strh r1, [r4, 0x8] -_081A7E56: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81A7DE8 - - thumb_func_start sub_81A7E60 -sub_81A7E60: @ 81A7E60 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - mov r8, r0 - adds r4, r1, 0 - adds r5, r2, 0 - adds r6, r3, 0 - ldr r3, [sp, 0x18] - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 16 - lsrs r6, 16 - lsls r3, 16 - lsrs r3, 16 - ldr r0, =sub_81A7D54 - movs r1, 0x3 - str r3, [sp] - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - mov r0, r8 - strh r0, [r1, 0xA] - strh r4, [r1, 0xC] - strh r5, [r1, 0xE] - strh r6, [r1, 0x10] - ldr r3, [sp] - strh r3, [r1, 0x12] - strh r0, [r1, 0x14] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A7E60 - - thumb_func_start sub_81A7EC4 -sub_81A7EC4: @ 81A7EC4 - push {lr} - ldr r0, =sub_81A7D54 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _081A7EDC - movs r0, 0 - b _081A7EDE - .pool -_081A7EDC: - movs r0, 0x1 -_081A7EDE: - pop {r1} - bx r1 - thumb_func_end sub_81A7EC4 - - thumb_func_start sub_81A7EE4 -sub_81A7EE4: @ 81A7EE4 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0x8] - movs r3, 0x8 - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _081A7F1C - adds r0, r2, 0x1 - strh r0, [r1, 0x8] - movs r0, 0x2 - str r0, [sp] - movs r0, 0 - movs r1, 0 - movs r2, 0x3 - movs r3, 0x2 - bl sub_81A7E60 - b _081A7F30 - .pool -_081A7F1C: - bl sub_81A7EC4 - lsls r0, 24 - cmp r0, 0 - beq _081A7F30 - bl script_env_2_enable_and_set_ctx_running - adds r0, r4, 0 - bl DestroyTask -_081A7F30: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81A7EE4 - - thumb_func_start sub_81A7F38 -sub_81A7F38: @ 81A7F38 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - cmp r0, 0 - bne _081A7F50 - b _081A807A -_081A7F50: - movs r0, 0 - mov r8, r0 -_081A7F54: - mov r0, sp - add r0, r8 - mov r1, r8 - strb r1, [r0] - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0x2 - bls _081A7F54 - movs r5, 0 -_081A7F6C: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 24 - lsrs r4, r0, 24 - mov r2, sp - add r2, r8 - ldrb r3, [r2] - mov r0, sp - adds r1, r0, r4 - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x9 - bls _081A7F6C - movs r1, 0 - mov r8, r1 -_081A7FB0: - movs r0, 0 - mov r10, r0 - mov r4, sp - add r4, r8 - ldrb r1, [r4] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r7, r1, r0 - adds r0, r7, 0 - movs r1, 0x39 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r7, 0 - movs r1, 0x3A - bl GetMonData - lsls r0, 16 - lsrs r6, r0, 16 - str r4, [sp, 0x8] - cmp r5, r6 - bcc _081A8044 - adds r0, r7, 0 - movs r1, 0x37 - bl GetMonData - bl pokemon_ailments_get_primary - lsls r0, 24 - cmp r0, 0 - beq _081A7FFC - movs r0, 0x1 - mov r10, r0 - b _081A8048 - .pool -_081A7FFC: - adds r0, r7, 0 - movs r1, 0x15 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r4, 0 - b _081A8014 -_081A800E: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_081A8014: - cmp r4, 0x3 - bhi _081A8048 - adds r1, r4, 0 - adds r1, 0xD - adds r0, r7, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - mov r1, r9 - adds r2, r4, 0 - bl CalcPPWithPPUps - lsls r0, 24 - lsrs r6, r0, 24 - adds r1, r4, 0 - adds r1, 0x11 - adds r0, r7, 0 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r6 - bcs _081A800E -_081A8044: - movs r1, 0x1 - mov r10, r1 -_081A8048: - mov r0, r10 - cmp r0, 0x1 - bne _081A806C - ldr r0, [sp, 0x8] - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - bl sub_81A7594 - ldr r0, [sp, 0x4] - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - cmp r0, 0 - beq _081A807A -_081A806C: - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0x2 - bls _081A7FB0 -_081A807A: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A7F38 - - thumb_func_start sub_81A8090 -sub_81A8090: @ 81A8090 - push {r4,lr} - ldr r4, =gUnknown_020375F0 - bl InBattlePike - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A8090 - - thumb_func_start InBattlePike -InBattlePike: @ 81A80A8 - push {lr} - movs r2, 0 - ldr r0, =gUnknown_02037318 - ldrh r1, [r0, 0x12] - ldr r3, =0xfffffea1 - adds r0, r1, r3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _081A80CA - movs r0, 0xB3 - lsls r0, 1 - cmp r1, r0 - beq _081A80CA - adds r0, 0x1 - cmp r1, r0 - bne _081A80CC -_081A80CA: - movs r2, 0x1 -_081A80CC: - adds r0, r2, 0 - pop {r1} - bx r1 - .pool - thumb_func_end InBattlePike - - thumb_func_start sub_81A80DC -sub_81A80DC: @ 81A80DC - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, =gUnknown_020375F0 - movs r0, 0 - strh r0, [r4] - movs r0, 0x1 - bl sub_81A8590 - lsls r0, 24 - cmp r0, 0 - beq _081A8138 - movs r0, 0x1 - strh r0, [r4] - bl Random - ldr r5, =gSaveBlock2Ptr - ldr r4, [r5] - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x6 - bl __umodsi3 - movs r3, 0xE1 - lsls r3, 4 - adds r4, r3 - movs r1, 0x7 - ands r1, r0 - ldrb r2, [r4] - movs r0, 0x8 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - ldr r2, [r5] - adds r2, r3 - ldrb r1, [r2] - movs r0, 0x79 - negs r0, r0 - ands r0, r1 - movs r1, 0x40 - b _081A8248 - .pool -_081A8138: - bl Random - ldr r7, =gSaveBlock2Ptr - ldr r4, [r7] - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - movs r3, 0xE1 - lsls r3, 4 - adds r4, r3 - movs r1, 0x7 - ands r1, r0 - ldrb r2, [r4] - movs r0, 0x8 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - ldr r0, [r7] - adds r0, r3 - ldrb r1, [r0] - movs r0, 0x80 - ands r0, r1 - movs r6, 0x8 - cmp r0, 0 - beq _081A8172 - movs r6, 0x6 -_081A8172: - adds r0, r6, 0 - bl AllocZeroed - adds r5, r0, 0 - movs r2, 0 - movs r3, 0 - cmp r2, r6 - bcs _081A81BE - adds r4, r7, 0 -_081A8184: - ldr r0, [r4] - movs r1, 0xE1 - lsls r1, 4 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081A81B0 - cmp r2, 0x1 - beq _081A81B4 - cmp r2, 0x4 - beq _081A81B4 - adds r1, r3, 0 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r1, r5, r1 - strb r2, [r1] - b _081A81B4 - .pool -_081A81B0: - adds r0, r5, r2 - strb r2, [r0] -_081A81B4: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r6 - bcc _081A8184 -_081A81BE: - bl Random - ldr r7, =gSaveBlock2Ptr - ldr r4, [r7] - lsls r0, 16 - lsrs r0, 16 - adds r1, r6, 0 - bl __modsi3 - adds r0, r5, r0 - ldrb r0, [r0] - movs r6, 0xE1 - lsls r6, 4 - adds r4, r6 - movs r1, 0xF - ands r1, r0 - lsls r1, 3 - ldrb r2, [r4] - movs r0, 0x79 - negs r0, r0 - mov r8, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - adds r0, r5, 0 - bl Free - ldr r0, [r7] - adds r0, r6 - ldrb r1, [r0] - movs r0, 0x78 - ands r0, r1 - cmp r0, 0x18 - bne _081A821C - bl sub_81A7974 - lsls r0, 24 - cmp r0, 0 - bne _081A821C - ldr r2, [r7] - adds r2, r6 - ldrb r1, [r2] - mov r0, r8 - ands r0, r1 - movs r1, 0x10 - orrs r0, r1 - strb r0, [r2] -_081A821C: - ldr r5, =gSaveBlock2Ptr - ldr r0, [r5] - movs r4, 0xE1 - lsls r4, 4 - adds r0, r4 - ldrb r1, [r0] - movs r0, 0x78 - ands r0, r1 - cmp r0, 0x38 - bne _081A824C - bl sub_81A8554 - lsls r0, 24 - cmp r0, 0 - bne _081A824C - ldr r2, [r5] - adds r2, r4 - ldrb r1, [r2] - movs r0, 0x79 - negs r0, r0 - ands r0, r1 - movs r1, 0x10 -_081A8248: - orrs r0, r1 - strb r0, [r2] -_081A824C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A80DC - - thumb_func_start sub_81A825C -sub_81A825C: @ 81A825C - ldr r1, =gUnknown_020375F0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - movs r2, 0xE1 - lsls r2, 4 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 29 - lsrs r0, 29 - strh r0, [r1] - bx lr - .pool - thumb_func_end sub_81A825C - - thumb_func_start sub_81A827C -sub_81A827C: @ 81A827C - ldr r2, =gUnknown_020375F0 - ldr r1, =gUnknown_0861266C - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - movs r3, 0xE1 - lsls r3, 4 - adds r0, r3 - ldrb r0, [r0] - lsls r0, 25 - lsrs r0, 28 - adds r0, r1 - ldrb r0, [r0] - strh r0, [r2] - bx lr - .pool - thumb_func_end sub_81A827C - - thumb_func_start sub_81A82A4 -sub_81A82A4: @ 81A82A4 - push {r4-r7,lr} - lsls r0, 24 - movs r7, 0x6 - cmp r0, 0 - bne _081A82B0 - movs r7, 0x1 -_081A82B0: - ldr r4, =gSaveBlock2Ptr - ldr r1, [r4] - ldr r2, =0x00000ca9 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 29 - ldr r2, =0x00000e04 - adds r1, r2 - adds r1, r0 - ldrh r0, [r1] - movs r1, 0xE - bl __udivsi3 - lsls r0, 16 - lsrs r6, r0, 16 - adds r5, r4, 0 -_081A82D2: - lsls r0, r6, 24 - lsrs r0, 24 - adds r1, r7, 0 - bl sub_8162548 - lsls r0, 16 - lsrs r4, r0, 16 - movs r3, 0 - ldr r1, [r5] - ldr r2, =0x00000cb2 - adds r0, r1, r2 - ldrh r0, [r0] - subs r2, r0, 0x1 - cmp r3, r2 - bge _081A831A - ldr r0, =0x00000cb4 - adds r1, r0 - b _081A8314 - .pool -_081A830C: - adds r1, 0x2 - adds r3, 0x1 - cmp r3, r2 - bge _081A831A -_081A8314: - ldrh r0, [r1] - cmp r0, r4 - bne _081A830C -_081A831A: - ldr r0, [r5] - ldr r1, =0x00000cb2 - adds r0, r1 - ldrh r0, [r0] - subs r0, 0x1 - cmp r3, r0 - bne _081A82D2 - ldr r5, =gUnknown_02038BCA - strh r4, [r5] - ldr r1, =gUnknown_0203BC88 - ldr r0, =gBattleFrontierTrainers - str r0, [r1] - ldrh r0, [r5] - movs r1, 0 - bl sub_8162614 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r0, =0x00000cb2 - adds r2, r1, r0 - ldrh r0, [r2] - cmp r0, 0xD - bhi _081A8356 - subs r0, 0x1 - lsls r0, 1 - ldr r2, =0x00000cb4 - adds r1, r2 - adds r1, r0 - ldrh r0, [r5] - strh r0, [r1] -_081A8356: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A82A4 - - thumb_func_start sub_81A8374 -sub_81A8374: @ 81A8374 - push {r4-r7,lr} - ldr r4, =gSaveBlock2Ptr - ldr r1, [r4] - ldr r2, =0x00000ca9 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 29 - ldr r2, =0x00000e04 - adds r1, r2 - adds r1, r0 - ldrh r0, [r1] - movs r1, 0xE - bl __udivsi3 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r1, =gUnknown_0203BC88 - ldr r0, =gBattleFrontierTrainers - str r0, [r1] - lsls r7, r5, 24 - adds r6, r4, 0 -_081A83A0: - lsls r0, r5, 24 - lsrs r0, 24 - movs r1, 0x1 - bl sub_8162548 - lsls r0, 16 - lsrs r4, r0, 16 - movs r3, 0 - ldr r1, [r6] - ldr r2, =0x00000cb2 - adds r0, r1, r2 - ldrh r0, [r0] - subs r2, r0, 0x1 - cmp r3, r2 - bge _081A83EE - ldr r0, =0x00000cb4 - adds r1, r0 - b _081A83E8 - .pool -_081A83E0: - adds r1, 0x2 - adds r3, 0x1 - cmp r3, r2 - bge _081A83EE -_081A83E8: - ldrh r0, [r1] - cmp r0, r4 - bne _081A83E0 -_081A83EE: - ldr r0, [r6] - ldr r1, =0x00000cb2 - adds r0, r1 - ldrh r0, [r0] - subs r0, 0x1 - cmp r3, r0 - bne _081A83A0 - ldr r5, =gUnknown_02038BCA - strh r4, [r5] - ldrh r0, [r5] - movs r1, 0 - bl sub_8162614 - ldr r3, =gSaveBlock2Ptr - ldr r1, [r3] - ldr r0, =0x00000cb2 - adds r2, r1, r0 - ldrh r0, [r2] - cmp r0, 0xE - bhi _081A8424 - subs r0, 0x1 - lsls r0, 1 - ldr r2, =0x00000cb4 - adds r1, r2 - adds r1, r0 - ldrh r0, [r5] - strh r0, [r1] -_081A8424: - adds r5, r3, 0 -_081A8426: - lsrs r0, r7, 24 - movs r1, 0x1 - bl sub_8162548 - lsls r0, 16 - lsrs r4, r0, 16 - movs r3, 0 - ldr r1, [r5] - ldr r2, =0x00000cb2 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r3, r0 - bge _081A8466 - adds r2, 0x2 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r0, r4 - beq _081A8466 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - subs r2, 0x2 - adds r0, r1, r2 - ldrh r2, [r0] - ldr r0, =0x00000cb4 - adds r1, r0 -_081A8458: - adds r1, 0x2 - adds r3, 0x1 - cmp r3, r2 - bge _081A8466 - ldrh r0, [r1] - cmp r0, r4 - bne _081A8458 -_081A8466: - ldr r0, [r5] - ldr r1, =0x00000cb2 - adds r0, r1 - ldrh r0, [r0] - cmp r3, r0 - bne _081A8426 - ldr r5, =gUnknown_02038BCC - strh r4, [r5] - ldrh r0, [r5] - movs r1, 0x1 - bl sub_8162614 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r0, =0x00000cb2 - adds r2, r1, r0 - ldrh r0, [r2] - cmp r0, 0xD - bhi _081A849A - subs r0, 0x2 - lsls r0, 1 - ldr r2, =0x00000cb4 - adds r1, r2 - adds r1, r0 - ldrh r0, [r5] - strh r0, [r1] -_081A849A: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A8374 - - thumb_func_start sub_81A84B4 -sub_81A84B4: @ 81A84B4 - push {r4,r5,lr} - movs r2, 0 - ldr r5, =gSaveBlock2Ptr - ldr r4, =0x00000cb4 - ldr r0, =0x0000ffff - adds r3, r0, 0 -_081A84C0: - ldr r1, [r5] - lsls r0, r2, 1 - adds r1, r4 - adds r1, r0 - ldrh r0, [r1] - orrs r0, r3 - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xD - bls _081A84C0 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A84B4 - - thumb_func_start sub_81A84EC -sub_81A84EC: @ 81A84EC - push {lr} - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - cmp r0, 0 - bne _081A8524 - ldr r3, =gUnknown_02038BCA - ldrh r1, [r3] - ldr r0, =0x0000012b - cmp r1, r0 - bhi _081A8542 - ldr r2, =gUnknown_0203BC88 - movs r0, 0x34 - muls r1, r0 - ldr r0, [r2] - adds r0, r1 - adds r0, 0xC - bl ConvertBattleFrontierTrainerSpeechToString - b _081A8542 - .pool -_081A8524: - cmp r0, 0x1 - bne _081A8542 - ldr r3, =gUnknown_02038BCC - ldrh r1, [r3] - ldr r0, =0x0000012b - cmp r1, r0 - bhi _081A8542 - ldr r2, =gUnknown_0203BC88 - movs r0, 0x34 - muls r1, r0 - ldr r0, [r2] - adds r0, r1 - adds r0, 0xC - bl ConvertBattleFrontierTrainerSpeechToString -_081A8542: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A84EC - - thumb_func_start sub_81A8554 -sub_81A8554: @ 81A8554 - push {r4-r6,lr} - ldr r5, =gPlayerParty - movs r6, 0 - movs r4, 0 -_081A855C: - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _081A856E - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_081A856E: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, 0x64 - cmp r4, 0x2 - bls _081A855C - cmp r6, 0x1 - bhi _081A8588 - movs r0, 0x1 - b _081A858A - .pool -_081A8588: - movs r0, 0 -_081A858A: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81A8554 - - thumb_func_start sub_81A8590 -sub_81A8590: @ 81A8590 - push {r4-r6,lr} - lsls r0, 24 - movs r6, 0 - ldr r1, =gSaveBlock2Ptr - ldr r2, [r1] - ldr r3, =0x00000ca9 - adds r1, r2, r3 - ldrb r1, [r1] - lsls r1, 30 - lsrs r1, 29 - ldr r3, =0x00000e04 - adds r2, r3 - adds r2, r1 - lsrs r4, r0, 24 - ldrh r2, [r2] - adds r0, r4, r2 - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0x5 - bl sub_81A3B30 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - blt _081A85F0 - cmp r2, 0x1 - bgt _081A85F0 - ldr r1, =gUnknown_086125DC - adds r0, r2, 0 - adds r0, 0x14 - adds r0, r1 - ldrb r0, [r0] - ldrb r1, [r1, 0x17] - subs r0, r1 - cmp r4, r0 - bne _081A8634 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - b _081A8634 - .pool -_081A85F0: - ldr r5, =gUnknown_086125DC - movs r0, 0x5 - lsls r3, r0, 2 - adds r0, r3, r5 - ldrb r1, [r0] - adds r0, r5, 0x3 - adds r0, r3, r0 - ldrb r2, [r0] - subs r1, r2 - cmp r4, r1 - bne _081A8610 - movs r6, 0x3 - b _081A8634 - .pool -_081A8610: - adds r0, r5, 0x1 - adds r0, r3, r0 - ldrb r1, [r0] - subs r0, r1, r2 - cmp r4, r0 - beq _081A8632 - cmp r4, r1 - bls _081A8634 - subs r0, r4, r1 - adds r0, r2 - adds r1, r5, 0x2 - adds r1, r3, r1 - ldrb r1, [r1] - bl __modsi3 - cmp r0, 0 - bne _081A8634 -_081A8632: - movs r6, 0x4 -_081A8634: - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81A8590 - - thumb_func_start sub_81A863C -sub_81A863C: @ 81A863C - push {r4,lr} - ldr r4, =gUnknown_020375F0 - movs r0, 0 - bl sub_81A8590 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A863C - - thumb_func_start sub_81A8658 -sub_81A8658: @ 81A8658 - push {r4,lr} - ldr r3, =gUnknown_08612675 - ldr r2, =gUnknown_020375E6 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - movs r1, 0xE1 - lsls r1, 4 - adds r0, r1 - ldrb r1, [r0] - lsls r1, 29 - lsrs r1, 29 - lsls r0, r1, 1 - adds r0, r1 - ldrh r2, [r2] - adds r0, r2 - adds r0, r3 - ldrb r4, [r0] - adds r0, r4, 0 - bl sub_81A7F38 - ldr r0, =gUnknown_020375F0 - strh r4, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A8658 - - thumb_func_start sub_81A869C -sub_81A869C: @ 81A869C - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r0, =gUnknown_020375E2 - ldrb r1, [r0] - movs r0, 0xE1 - lsls r0, 4 - adds r2, r0 - lsls r1, 7 - ldrb r3, [r2] - movs r0, 0x7F - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - bx lr - .pool - thumb_func_end sub_81A869C - - thumb_func_start sub_81A86C0 -sub_81A86C0: @ 81A86C0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r1, =gUnknown_020375F0 - movs r0, 0x1 - strh r0, [r1] - movs r0, 0 - mov r10, r0 -_081A86D4: - movs r0, 0 - mov r9, r0 - movs r0, 0x64 - mov r1, r10 - muls r1, r0 - ldr r0, =gPlayerParty - adds r7, r1, r0 - adds r0, r7, 0 - movs r1, 0x39 - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r7, 0 - movs r1, 0x3A - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - cmp r4, r5 - bcc _081A8762 - adds r0, r7, 0 - movs r1, 0x37 - bl GetMonData - bl pokemon_ailments_get_primary - lsls r0, 24 - cmp r0, 0 - bne _081A8762 - adds r0, r7, 0 - movs r1, 0x15 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r6, 0 - b _081A8732 - .pool -_081A872C: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_081A8732: - cmp r6, 0x3 - bhi _081A8766 - adds r1, r6, 0 - adds r1, 0xD - adds r0, r7, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - mov r1, r8 - adds r2, r6, 0 - bl CalcPPWithPPUps - lsls r0, 24 - lsrs r5, r0, 24 - adds r1, r6, 0 - adds r1, 0x11 - adds r0, r7, 0 - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r5 - bcs _081A872C -_081A8762: - movs r0, 0x1 - mov r9, r0 -_081A8766: - mov r0, r9 - cmp r0, 0x1 - bne _081A8778 - ldr r1, =gUnknown_020375F0 - movs r0, 0 - strh r0, [r1] - b _081A8786 - .pool -_081A8778: - mov r0, r10 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - cmp r0, 0x2 - bls _081A86D4 -_081A8786: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81A86C0 - - thumb_func_start sub_81A8794 -sub_81A8794: @ 81A8794 - push {r4-r7,lr} - movs r5, 0 - ldr r7, =gSaveBlock1Ptr - ldr r6, =gSaveBlock2Ptr -_081A879C: - ldr r0, [r6] - lsls r4, r5, 1 - ldr r1, =0x00000caa - adds r0, r1 - adds r0, r4 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - movs r2, 0xEA - lsls r2, 1 - adds r1, r2 - ldr r0, [r7] - adds r0, r1 - movs r1, 0xC - bl GetMonData - ldr r1, [r6] - ldr r2, =0x00000e12 - adds r1, r2 - adds r1, r4 - strh r0, [r1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _081A879C - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A8794 - - thumb_func_start sub_81A87E8 -sub_81A87E8: @ 81A87E8 - push {r4,lr} - movs r4, 0 -_081A87EC: - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - lsls r3, r4, 1 - ldr r1, =0x00000caa - adds r0, r2, r1 - adds r0, r3 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gUnknown_02024488 - adds r0, r1 - ldr r1, =0x00000e12 - adds r3, r1 - adds r2, r3 - movs r1, 0xC - bl pokemon_setattr - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _081A87EC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A87E8 - - thumb_func_start sub_81A8830 -sub_81A8830: @ 81A8830 - push {r4-r6,lr} - ldr r3, =gSaveBlock2Ptr - ldr r1, [r3] - ldr r2, =0x00000ca9 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 30 - lsrs r5, r0, 30 - ldr r0, =0x00000ca8 - adds r1, r0 - movs r4, 0 - strb r4, [r1] - ldr r1, [r3] - ldr r6, =0x00000cb2 - adds r0, r1, r6 - strh r4, [r0] - adds r1, r2 - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r3, [r3] - ldr r0, =0x00000cdc - adds r2, r3, r0 - ldr r1, =gUnknown_08612690 - lsls r0, r5, 2 - adds r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _081A887C - lsls r1, r5, 1 - ldr r2, =0x00000e04 - adds r0, r3, r2 - adds r0, r1 - strh r4, [r0] -_081A887C: - ldr r0, =gUnknown_02038BCA - strh r4, [r0] - ldr r1, =gUnknown_0202433A - movs r0, 0 - strb r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A8830 - - thumb_func_start sub_81A88B0 -sub_81A88B0: @ 81A88B0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, =gPlayerParty - adds r0, r4, 0 - movs r1, 0x6 - bl GetMonData - cmp r0, 0 - bne _081A8904 - adds r0, r4, 0 - bl GetMonAbility - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x33 - beq _081A88D6 - cmp r0, 0x16 - bne _081A8904 -_081A88D6: - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bls _081A8904 - subs r0, 0x5 - cmp r5, r0 - bgt _081A8904 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081A8904 - movs r0, 0 - b _081A8906 - .pool -_081A8904: - movs r0, 0x1 -_081A8906: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81A88B0 - - thumb_func_start sub_81A890C -sub_81A890C: @ 81A890C - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, =0x0000017b - cmp r2, r0 - bne _081A8920 - movs r1, 0 - b _081A892A - .pool -_081A8920: - ldr r0, =0x00000149 - movs r1, 0x2 - cmp r2, r0 - bne _081A892A - movs r1, 0x1 -_081A892A: - adds r0, r1, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A890C - - thumb_func_start sub_81A8934 -@ void sub_81A8934(u8) -sub_81A8934: @ 81A8934 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, =gUnknown_0203CE50 - ldr r0, [r4] - cmp r0, 0 - bne _081A894A - movs r0, 0x44 - bl AllocZeroed - str r0, [r4] -_081A894A: - ldr r0, [r4] - adds r0, 0x41 - strb r5, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A8934 - - thumb_func_start sub_81A895C -sub_81A895C: @ 81A895C - push {r4,lr} - ldr r4, =gUnknown_0203CE50 - ldr r0, [r4] - cmp r0, 0 - beq _081A896E - bl Free - movs r0, 0 - str r0, [r4] -_081A896E: - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02037350 - adds r0, r1 - bl FieldObjectClearAnimIfSpecialAnimFinished - bl sub_80D338C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A895C - - thumb_func_start sub_81A89A0 -sub_81A89A0: @ 81A89A0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xC7 - lsls r1, 4 - adds r1, r0 - mov r9, r1 - movs r3, 0 - mov r10, r3 - mov r8, r3 -_081A89C4: - mov r0, r8 - lsls r4, r0, 1 - adds r1, r4, r0 - lsls r1, 3 - add r1, r9 - ldrh r0, [r1, 0x4] - adds r0, 0x7 - ldrh r1, [r1, 0x6] - adds r1, 0x7 - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - bl MapGridGetMetatileIdAt - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, =gUnknown_0203CE50 - ldr r0, [r0] - adds r0, 0x41 - ldrb r0, [r0] - movs r2, 0xA6 - lsls r2, 2 - cmp r0, 0 - bne _081A89F8 - subs r2, 0x48 -_081A89F8: - ldr r0, =0x0000024f - cmp r1, r0 - bls _081A8AD4 - subs r1, r2 - adds r0, r1, 0 - cmp r1, 0 - bge _081A8A08 - adds r0, r1, 0x7 -_081A8A08: - asrs r2, r0, 3 - lsls r0, r2, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _081A8AD4 - ldr r3, [sp] - cmp r0, r3 - bne _081A8AD4 - lsls r0, r2, 3 - subs r0, r1, r0 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bhi _081A8AD4 - movs r1, 0 - movs r2, 0 - cmp r5, 0x1 - beq _081A8A58 - cmp r5, 0x1 - bgt _081A8A44 - cmp r5, 0 - beq _081A8A4E - b _081A8AD4 - .pool -_081A8A44: - cmp r5, 0x2 - beq _081A8A64 - cmp r5, 0x3 - beq _081A8A70 - b _081A8AD4 -_081A8A4E: - ldr r7, =gUnknown_08612698 - movs r1, 0x1 - b _081A8A74 - .pool -_081A8A58: - ldr r7, =gUnknown_0861269C - movs r2, 0x1 - b _081A8A74 - .pool -_081A8A64: - ldr r7, =gUnknown_086126A0 - movs r1, 0xFF - b _081A8A74 - .pool -_081A8A70: - ldr r7, =gUnknown_086126A4 - movs r2, 0xFF -_081A8A74: - mov r3, r8 - adds r0, r4, r3 - lsls r0, 3 - mov r3, r9 - adds r4, r0, r3 - lsls r0, r1, 24 - asrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r4, 0x4] - lsls r0, r2, 24 - asrs r0, 24 - ldrh r3, [r4, 0x6] - adds r0, r3 - strh r0, [r4, 0x6] - ldrb r0, [r4] - ldr r6, =gSaveBlock1Ptr - ldr r2, [r6] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl GetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x10 - beq _081A8ACC - mov r0, r8 - adds r1, r5, 0 - bl sub_81A8D60 - ldrb r4, [r4] - mov r10, r4 - mov r0, r10 - ldr r2, [r6] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - adds r3, r7, 0 - bl exec_movement - b _081A8AD4 - .pool -_081A8ACC: - mov r0, r8 - adds r1, r5, 0 - bl sub_81A8D94 -_081A8AD4: - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0x3F - bhi _081A8AE4 - b _081A89C4 -_081A8AE4: - mov r0, r10 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81A89A0 - - thumb_func_start sub_81A8AF8 -sub_81A8AF8: @ 81A8AF8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r1, =gUnknown_0203CE50 - ldr r2, [r1] - cmp r2, 0 - bne _081A8B0C - b _081A8D4A -_081A8B0C: - adds r0, r2, 0 - adds r0, 0x41 - ldrb r0, [r0] - movs r3, 0xA6 - lsls r3, 2 - mov r10, r3 - cmp r0, 0 - bne _081A8B22 - movs r0, 0x94 - lsls r0, 2 - mov r10, r0 -_081A8B22: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r3, 0xC7 - lsls r3, 4 - adds r7, r0, r3 - movs r0, 0 - mov r9, r0 - adds r0, r2, 0 - adds r0, 0x40 - ldrb r0, [r0] - cmp r9, r0 - bcc _081A8B3C - b _081A8D4A -_081A8B3C: - mov r8, r1 -_081A8B3E: - mov r1, r8 - ldr r0, [r1] - mov r2, r9 - lsls r4, r2, 2 - adds r0, r4 - ldrb r0, [r0, 0x1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, r7 - ldrh r0, [r1, 0x4] - adds r0, 0x7 - ldrh r1, [r1, 0x6] - adds r1, 0x7 - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - bl MapGridGetMetatileIdAt - lsls r0, 16 - lsrs r0, 16 - mov r3, r10 - subs r1, r0, r3 - adds r0, r1, 0 - cmp r1, 0 - bge _081A8B76 - adds r0, r1, 0x7 -_081A8B76: - asrs r0, 3 - lsls r0, 3 - subs r0, r1, r0 - lsls r0, 24 - lsrs r0, 24 - mov r2, r8 - ldr r1, [r2] - adds r1, r4 - ldrb r1, [r1] - subs r0, r1 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - blt _081A8B96 - cmp r1, 0x3 - bne _081A8BAC -_081A8B96: - movs r0, 0x3 - negs r0, r0 - movs r6, 0 - cmp r1, r0 - bne _081A8BB4 - b _081A8BB2 - .pool -_081A8BAC: - movs r6, 0x2 - cmp r1, 0 - ble _081A8BB4 -_081A8BB2: - movs r6, 0x1 -_081A8BB4: - ldr r5, =gUnknown_0203CE50 - ldr r0, [r5] - adds r0, r4 - ldrb r1, [r0, 0x1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, r7 - ldrb r0, [r0] - ldr r1, =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl GetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x10 - bne _081A8BDC - b _081A8D32 -_081A8BDC: - ldr r0, =gUnknown_02037350 - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x18] - lsls r0, 28 - lsrs r0, 28 - adds r1, r0, 0 - cmp r6, 0 - bne _081A8C9C - cmp r0, 0x2 - beq _081A8C60 - cmp r0, 0x2 - bgt _081A8C0C - cmp r0, 0x1 - beq _081A8C30 - b _081A8D32 - .pool -_081A8C0C: - cmp r0, 0x3 - beq _081A8C48 - cmp r0, 0x4 - beq _081A8C16 - b _081A8D32 -_081A8C16: - ldr r3, =gUnknown_086126AE - ldr r0, [r5] - adds r0, r4 - ldrb r1, [r0, 0x1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, r7 - movs r1, 0x7 - b _081A8C72 - .pool -_081A8C30: - ldr r3, =gUnknown_086126A8 - ldr r0, [r5] - adds r0, r4 - ldrb r1, [r0, 0x1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, r7 - movs r1, 0xA - b _081A8C72 - .pool -_081A8C48: - ldr r3, =gUnknown_086126AA - ldr r0, [r5] - adds r0, r4 - ldrb r1, [r0, 0x1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, r7 - movs r1, 0x8 - b _081A8C72 - .pool -_081A8C60: - ldr r3, =gUnknown_086126AC - ldr r0, [r5] - adds r0, r4 - ldrb r1, [r0, 0x1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, r7 - movs r1, 0x9 -_081A8C72: - strb r1, [r0, 0x9] - mov r1, r8 - ldr r0, [r1] - adds r0, r4 - ldrb r1, [r0, 0x1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, r7 - ldrb r0, [r0] - ldr r1, =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl exec_movement - b _081A8D32 - .pool -_081A8C9C: - cmp r6, 0x1 - bne _081A8D32 - cmp r0, 0x2 - beq _081A8D00 - cmp r0, 0x2 - bgt _081A8CAE - cmp r0, 0x1 - beq _081A8CD0 - b _081A8D32 -_081A8CAE: - cmp r1, 0x3 - beq _081A8CE8 - cmp r1, 0x4 - bne _081A8D32 - ldr r3, =gUnknown_086126AA - ldr r0, [r5] - adds r0, r4 - ldrb r1, [r0, 0x1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, r7 - movs r1, 0x8 - b _081A8D12 - .pool -_081A8CD0: - ldr r3, =gUnknown_086126AC - ldr r0, [r5] - adds r0, r4 - ldrb r1, [r0, 0x1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, r7 - movs r1, 0x9 - b _081A8D12 - .pool -_081A8CE8: - ldr r3, =gUnknown_086126AE - ldr r0, [r5] - adds r0, r4 - ldrb r1, [r0, 0x1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, r7 - movs r1, 0x7 - b _081A8D12 - .pool -_081A8D00: - ldr r3, =gUnknown_086126A8 - ldr r0, [r5] - adds r0, r4 - ldrb r1, [r0, 0x1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, r7 - movs r1, 0xA -_081A8D12: - strb r1, [r0, 0x9] - mov r2, r8 - ldr r0, [r2] - adds r0, r4 - ldrb r1, [r0, 0x1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, r7 - ldrb r0, [r0] - ldr r1, =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl exec_movement -_081A8D32: - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - mov r3, r8 - ldr r0, [r3] - adds r0, 0x40 - ldrb r0, [r0] - cmp r9, r0 - bcs _081A8D4A - b _081A8B3E -_081A8D4A: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A8AF8 - - thumb_func_start sub_81A8D60 -sub_81A8D60: @ 81A8D60 - push {r4,lr} - ldr r4, =gUnknown_0203CE50 - ldr r3, [r4] - adds r2, r3, 0 - adds r2, 0x40 - ldrb r2, [r2] - lsls r2, 2 - adds r3, r2 - strb r0, [r3, 0x1] - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0x40 - ldrb r0, [r0] - lsls r0, 2 - adds r2, r0 - strb r1, [r2] - ldr r1, [r4] - adds r1, 0x40 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A8D60 - - thumb_func_start sub_81A8D94 -sub_81A8D94: @ 81A8D94 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xC7 - lsls r1, 4 - adds r5, r0, r1 - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 3 - adds r1, r5 - ldrh r0, [r1, 0x4] - adds r0, 0x7 - ldrh r1, [r1, 0x6] - adds r1, 0x7 - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - bl MapGridGetMetatileIdAt - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, =gUnknown_0203CE50 - ldr r0, [r0] - adds r0, 0x41 - ldrb r0, [r0] - movs r1, 0xA6 - lsls r1, 2 - cmp r0, 0 - bne _081A8DDA - subs r1, 0x48 -_081A8DDA: - subs r1, r2, r1 - adds r0, r1, 0 - cmp r1, 0 - bge _081A8DE4 - adds r0, r1, 0x7 -_081A8DE4: - asrs r0, 3 - lsls r0, 3 - subs r0, r1, r0 - lsls r0, 24 - lsrs r0, 24 - subs r0, r6 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - blt _081A8DFC - cmp r1, 0x3 - bne _081A8E08 -_081A8DFC: - movs r2, 0 - b _081A8E1A - .pool -_081A8E08: - cmp r1, 0 - bgt _081A8E14 - movs r0, 0x3 - negs r0, r0 - cmp r1, r0 - bne _081A8E18 -_081A8E14: - movs r2, 0x1 - b _081A8E1A -_081A8E18: - movs r2, 0x2 -_081A8E1A: - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r5 - ldrb r0, [r1, 0x9] - adds r3, r0, 0 - cmp r2, 0 - bne _081A8E4C - cmp r0, 0x8 - beq _081A8E72 - cmp r0, 0x8 - bgt _081A8E38 - cmp r0, 0x7 - beq _081A8E48 - b _081A8E76 -_081A8E38: - cmp r0, 0x9 - beq _081A8E44 - cmp r0, 0xA - bne _081A8E76 - movs r0, 0x7 - b _081A8E74 -_081A8E44: - movs r0, 0x8 - b _081A8E74 -_081A8E48: - movs r0, 0x9 - b _081A8E74 -_081A8E4C: - cmp r2, 0x1 - bne _081A8E76 - cmp r0, 0x8 - beq _081A8E6A - cmp r0, 0x8 - bgt _081A8E5E - cmp r0, 0x7 - beq _081A8E72 - b _081A8E76 -_081A8E5E: - cmp r3, 0x9 - beq _081A8E6E - cmp r3, 0xA - bne _081A8E76 - movs r0, 0x8 - b _081A8E74 -_081A8E6A: - movs r0, 0x9 - b _081A8E74 -_081A8E6E: - movs r0, 0x7 - b _081A8E74 -_081A8E72: - movs r0, 0xA -_081A8E74: - strb r0, [r1, 0x9] -_081A8E76: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81A8D94 - - thumb_func_start sub_81A8E7C -sub_81A8E7C: @ 81A8E7C - push {lr} - ldr r1, =gUnknown_08613EE0 - ldr r0, =gUnknown_020375E0 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A8E7C - - thumb_func_start sub_81A8E9C -sub_81A8E9C: @ 81A8E9C - push {r4-r6,lr} - ldr r3, =gSaveBlock2Ptr - ldr r1, [r3] - ldr r4, =0x00000ca9 - adds r0, r1, r4 - ldrb r0, [r0] - lsls r0, 30 - lsrs r5, r0, 30 - ldr r0, =0x00000ca8 - adds r1, r0 - movs r2, 0 - strb r2, [r1] - ldr r1, [r3] - ldr r6, =0x00000cb2 - adds r0, r1, r6 - strh r2, [r0] - adds r1, r4 - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - cmp r5, 0 - beq _081A8EF0 - ldr r0, [r3] - ldr r1, =0x00000cdc - adds r0, r1 - ldr r2, [r0] - movs r0, 0x80 - lsls r0, 6 - b _081A8EFC - .pool -_081A8EF0: - ldr r0, [r3] - ldr r6, =0x00000cdc - adds r0, r6 - ldr r2, [r0] - movs r0, 0x80 - lsls r0, 5 -_081A8EFC: - ands r2, r0 - cmp r2, 0 - bne _081A8F14 - ldr r0, [r3] - lsls r1, r5, 1 - ldr r3, =0x00000e1a - adds r0, r3 - adds r0, r1 - strh r2, [r0] - adds r0, r5, 0 - bl sub_81AAA7C -_081A8F14: - bl sub_81C4EEC - ldr r0, =gUnknown_02038BCA - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_0202433A - strb r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A8E9C - - thumb_func_start sub_81A8F38 -sub_81A8F38: @ 81A8F38 - push {r4,lr} - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - ldr r2, =0x00000ca9 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 30 - lsrs r4, r0, 30 - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - adds r3, r1, 0 - cmp r0, 0x6 - bls _081A8F54 - b _081A903A -_081A8F54: - lsls r0, 2 - ldr r1, =_081A8F70 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081A8F70: - .4byte _081A8F8C - .4byte _081A8F9C - .4byte _081A8FB4 - .4byte _081A8FE4 - .4byte _081A8FF8 - .4byte _081A9010 - .4byte _081A9028 -_081A8F8C: - ldr r0, =gUnknown_020375F0 - ldr r1, [r3] - ldr r3, =0x00000e18 - b _081A8FFE - .pool -_081A8F9C: - ldr r2, =gUnknown_020375F0 - ldr r0, [r3] - lsls r1, r4, 1 - ldr r3, =0x00000e1a - adds r0, r3 - adds r0, r1 - ldrh r0, [r0] - b _081A9038 - .pool -_081A8FB4: - cmp r4, 0 - beq _081A8FCC - ldr r2, =gUnknown_020375F0 - ldr r0, [r3] - ldr r1, =0x00000cdc - adds r0, r1 - b _081A9030 - .pool -_081A8FCC: - ldr r2, =gUnknown_020375F0 - ldr r0, [r3] - ldr r3, =0x00000cdc - adds r0, r3 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 5 - b _081A9036 - .pool -_081A8FE4: - ldr r0, =gUnknown_020375F0 - ldr r1, [r3] - ldr r2, =0x00000e1a - adds r1, r2 - b _081A9000 - .pool -_081A8FF8: - ldr r0, =gUnknown_020375F0 - ldr r1, [r3] - ldr r3, =0x00000e1c -_081A8FFE: - adds r1, r3 -_081A9000: - ldrh r1, [r1] - strh r1, [r0] - b _081A903A - .pool -_081A9010: - ldr r2, =gUnknown_020375F0 - ldr r0, [r3] - ldr r1, =0x00000cdc - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 5 - b _081A9036 - .pool -_081A9028: - ldr r2, =gUnknown_020375F0 - ldr r0, [r3] - ldr r3, =0x00000cdc - adds r0, r3 -_081A9030: - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 6 -_081A9036: - ands r0, r1 -_081A9038: - strh r0, [r2] -_081A903A: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A8F38 - - thumb_func_start sub_81A9048 -sub_81A9048: @ 81A9048 - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r1, =0x00000ca9 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r1, r0, 30 - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - cmp r0, 0x1 - beq _081A9098 - cmp r0, 0x1 - bgt _081A9078 - cmp r0, 0 - beq _081A9082 - b _081A9126 - .pool -_081A9078: - cmp r0, 0x2 - beq _081A90B0 - cmp r0, 0x7 - beq _081A911C - b _081A9126 -_081A9082: - ldr r0, =gUnknown_020375E4 - ldrh r1, [r0] - ldr r3, =0x00000e18 - adds r0, r2, r3 - strh r1, [r0] - b _081A9126 - .pool -_081A9098: - lsls r1, 1 - ldr r3, =0x00000e1a - adds r0, r2, r3 - adds r0, r1 - ldr r1, =gUnknown_020375E4 - ldrh r1, [r1] - strh r1, [r0] - b _081A9126 - .pool -_081A90B0: - cmp r1, 0 - beq _081A90E4 - ldr r0, =gUnknown_020375E4 - ldrh r0, [r0] - cmp r0, 0 - beq _081A90D0 - ldr r1, =0x00000cdc - adds r0, r2, r1 - ldr r1, [r0] - movs r2, 0x80 - lsls r2, 6 - b _081A90F6 - .pool -_081A90D0: - ldr r3, =0x00000cdc - adds r0, r2, r3 - ldr r1, [r0] - ldr r2, =0xffffdfff - b _081A910C - .pool -_081A90E4: - ldr r0, =gUnknown_020375E4 - ldrh r0, [r0] - cmp r0, 0 - beq _081A9104 - ldr r1, =0x00000cdc - adds r0, r2, r1 - ldr r1, [r0] - movs r2, 0x80 - lsls r2, 5 -_081A90F6: - orrs r1, r2 - str r1, [r0] - b _081A9126 - .pool -_081A9104: - ldr r3, =0x00000cdc - adds r0, r2, r3 - ldr r1, [r0] - ldr r2, =0xffffefff -_081A910C: - ands r1, r2 - str r1, [r0] - b _081A9126 - .pool -_081A911C: - ldr r0, =gUnknown_020375E4 - ldrh r1, [r0] - ldr r3, =0x00000e2a - adds r0, r2, r3 - strb r1, [r0] -_081A9126: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A9048 - - thumb_func_start sub_81A9134 -sub_81A9134: @ 81A9134 - push {r4,lr} - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =gUnknown_020375E2 - ldrh r1, [r1] - ldr r2, =0x00000ca8 - adds r0, r2 - strb r1, [r0] - movs r0, 0x80 - lsls r0, 7 - movs r1, 0 - bl VarSet - ldr r1, [r4] - ldr r0, =0x00000ca9 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - bl save_serialize_map - movs r0, 0x1 - bl save_game_when_memory_present - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A9134 - - thumb_func_start sub_81A917C -sub_81A917C: @ 81A917C - push {r4,r5,lr} - ldr r4, =gSaveBlock2Ptr - ldr r1, [r4] - ldr r2, =0x00000ca9 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 29 - ldr r2, =0x00000e1a - adds r1, r2 - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0x29 - bls _081A91CC - bl Random - ldr r4, [r4] - ldr r5, =gUnknown_08613F34 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x9 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 15 - adds r0, r5 - ldrh r0, [r0] - ldr r1, =0x00000e18 - adds r4, r1 - b _081A91EA - .pool -_081A91CC: - bl Random - ldr r4, [r4] - ldr r5, =gUnknown_08613F28 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x6 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 15 - adds r0, r5 - ldrh r0, [r0] - ldr r2, =0x00000e18 - adds r4, r2 -_081A91EA: - strh r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A917C - - thumb_func_start sub_81A91FC -sub_81A91FC: @ 81A91FC - push {r4,r5,lr} - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =0x00000e18 - adds r0, r1 - ldrh r0, [r0] - movs r1, 0x1 - bl bag_add_item - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bne _081A9244 - ldr r0, [r4] - ldr r1, =0x00000e18 - adds r0, r1 - ldrh r0, [r0] - ldr r1, =gStringVar1 - bl itemid_get_name - ldr r0, [r4] - ldr r1, =0x00000e18 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_020375F0 - strh r5, [r0] - b _081A924A - .pool -_081A9244: - ldr r1, =gUnknown_020375F0 - movs r0, 0 - strh r0, [r1] -_081A924A: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A91FC - - thumb_func_start sub_81A9254 -sub_81A9254: @ 81A9254 - push {r4,r5,lr} - movs r4, 0 - ldr r5, =gSaveBlock2Ptr -_081A925A: - bl Random - ldr r1, [r5] - lsls r2, r4, 1 - ldr r3, =0x00000e22 - adds r1, r3 - adds r1, r2 - strh r0, [r1] - adds r4, 0x1 - cmp r4, 0x3 - ble _081A925A - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000e2a - adds r0, r1 - movs r1, 0 - strb r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A9254 - - thumb_func_start CalculateBattlePyramidItemBallItemId -CalculateBattlePyramidItemBallItemId: @ 81A9290 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r5, =gSaveBlock2Ptr - ldr r1, [r5] - ldr r2, =0x00000ca9 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 30 - mov r10, r0 - adds r2, 0x9 - adds r0, r1, r2 - ldrh r0, [r0] - str r0, [sp] - mov r2, r10 - lsls r0, r2, 1 - ldr r2, =0x00000e1a - adds r1, r2 - adds r1, r0 - ldrh r0, [r1] - movs r1, 0x7 - bl __udivsi3 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x14 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r0, 0x13 - bls _081A92DE - movs r0, 0x13 - mov r8, r0 -_081A92DE: - bl sub_81AA9E4 - lsls r0, 24 - ldr r1, =gUnknown_020375F2 - ldrh r4, [r1] - ldr r1, =gUnknown_08613650 - lsrs r0, 20 - adds r0, r1 - ldrb r0, [r0, 0x1] - subs r4, r0 - subs r7, r4, 0x1 - ldr r1, [r5] - lsrs r0, r7, 31 - adds r0, r7, r0 - asrs r0, 1 - lsls r0, 1 - ldr r2, =0x00000e22 - adds r1, r2 - adds r1, r0 - ldrh r6, [r1] - adds r0, r6, 0 - bl SeedRng2 - movs r5, 0 - mov r0, r8 - lsls r0, 2 - mov r9, r0 - cmp r5, r4 - bge _081A9332 -_081A9318: - bl Random2 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r6, r0, 16 - adds r5, 0x1 - adds r0, r7, 0x1 - cmp r5, r0 - blt _081A9318 -_081A9332: - ldr r0, =gUnknown_08613B3A - ldr r1, [sp] - adds r0, r1, r0 - ldrb r5, [r0] - ldr r1, =gUnknown_08613ABC - ldr r3, =gUnknown_020375D8 - ldr r4, =gUnknown_020375DA - cmp r5, 0x3E - bhi _081A935E - lsls r2, r5, 1 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r6, r0 - blt _081A935E - adds r0, r2, r1 -_081A9350: - adds r0, 0x2 - adds r5, 0x1 - cmp r5, 0x3E - bhi _081A935E - ldrb r2, [r0] - cmp r6, r2 - bge _081A9350 -_081A935E: - mov r0, r10 - cmp r0, 0 - beq _081A9394 - ldr r2, =gUnknown_0861392C - b _081A9396 - .pool -_081A9394: - ldr r2, =gUnknown_0861379C -_081A9396: - lsls r0, r5, 1 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 1 - mov r1, r9 - add r1, r8 - lsls r1, 2 - adds r0, r1 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r3] - movs r0, 0x1 - strh r0, [r4] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end CalculateBattlePyramidItemBallItemId - - thumb_func_start sub_81A93C8 -sub_81A93C8: @ 81A93C8 - push {r4,r5,lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xC7 - lsls r1, 4 - adds r3, r0, r1 - movs r2, 0 - ldr r4, =gUnknown_020375F2 - b _081A93F4 - .pool -_081A93E4: - adds r2, 0x1 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0 - beq _081A940A -_081A93F4: - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0, r3 - ldrb r0, [r1] - ldrh r5, [r4] - cmp r0, r5 - bne _081A93E4 - ldr r0, =0x00007fff - strh r0, [r1, 0x4] - strh r0, [r1, 0x6] -_081A940A: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A93C8 - - thumb_func_start sub_81A9414 -sub_81A9414: @ 81A9414 - ldr r1, =gUnknown_0203BC88 - ldr r0, =gBattleFrontierTrainers - str r0, [r1] - bx lr - .pool - thumb_func_end sub_81A9414 - - thumb_func_start sub_81A9424 -sub_81A9424: @ 81A9424 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - movs r0, 0 - mov r9, r0 - movs r7, 0 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xC7 - lsls r1, 4 - adds r1, r0 - mov r8, r1 - ldr r2, =gUnknown_02037350 - ldr r0, =gUnknown_03005DF0 - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x8] - bl sub_81A9AA8 - lsls r0, 16 - lsrs r5, r0, 16 - movs r6, 0 - ldr r2, =gUnknown_08613C1C - ldr r0, =gUnknown_0203BC88 - ldr r1, [r0] - movs r0, 0x34 - muls r0, r5 - adds r0, r1 - ldrb r1, [r2] - ldrb r0, [r0] - cmp r1, r0 - bne _081A9488 - ldrb r2, [r2, 0x1] - mov r9, r2 - b _081A94AE - .pool -_081A9488: - adds r6, 0x1 - cmp r6, 0x31 - bhi _081A94AE - ldr r4, =gUnknown_08613C1C - lsls r3, r6, 1 - adds r2, r3, r4 - ldr r0, =gUnknown_0203BC88 - ldr r1, [r0] - movs r0, 0x34 - muls r0, r5 - adds r0, r1 - ldrb r1, [r2] - ldrb r0, [r0] - cmp r1, r0 - bne _081A9488 - adds r0, r4, 0x1 - adds r0, r3, r0 - ldrb r0, [r0] - mov r9, r0 -_081A94AE: - ldr r3, =gUnknown_08613ED8 - ldr r2, =gUnknown_02037350 - ldr r0, =gUnknown_03005DF0 - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x8] - subs r0, 0x1 - adds r0, r3 - ldrb r0, [r0] - str r0, [sp] - movs r6, 0 - mov r3, r9 - lsls r3, 2 - mov r9, r3 -_081A94D0: - ldr r0, [sp] - cmp r0, 0x8 - bls _081A94D8 - b _081A95E8 -_081A94D8: - lsls r0, 2 - ldr r1, =_081A94FC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081A94FC: - .4byte _081A9520 - .4byte _081A9530 - .4byte _081A9572 - .4byte _081A95B4 - .4byte _081A95BA - .4byte _081A95C0 - .4byte _081A95C6 - .4byte _081A95D2 - .4byte _081A95DE -_081A9520: - mov r0, sp - movs r1, 0x8 - movs r2, 0 - bl sub_81A9998 - lsls r0, 24 - lsrs r7, r0, 24 - b _081A95EE -_081A9530: - movs r6, 0 - ldr r2, =0x7fff0000 - mov r4, r8 - adds r4, 0x4 - mov r5, r8 - b _081A9560 - .pool -_081A9540: - ldrb r0, [r5, 0x1] - cmp r0, 0x3B - bne _081A955A - movs r1, 0 - ldrsh r0, [r4, r1] - asrs r1, r2, 16 - cmp r0, r1 - beq _081A955A - movs r3, 0x2 - ldrsh r0, [r4, r3] - cmp r0, r1 - beq _081A955A - adds r7, 0x1 -_081A955A: - adds r4, 0x18 - adds r5, 0x18 - adds r6, 0x1 -_081A9560: - str r2, [sp, 0x4] - bl sub_81AAA40 - lsls r0, 24 - lsrs r0, 24 - ldr r2, [sp, 0x4] - cmp r6, r0 - blt _081A9540 - b _081A95EE -_081A9572: - bl sub_81AA9E4 - lsls r0, 24 - ldr r1, =gUnknown_08613650 - lsrs r0, 20 - adds r0, r1 - ldrb r7, [r0, 0x1] - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000e2a - adds r0, r1 - ldrb r2, [r0] - ldr r1, =gBitTable - movs r6, 0x7 -_081A958E: - ldr r0, [r1] - ands r0, r2 - cmp r0, 0 - beq _081A9598 - subs r7, 0x1 -_081A9598: - adds r1, 0x4 - subs r6, 0x1 - cmp r6, 0 - bge _081A958E - b _081A95EE - .pool -_081A95B4: - mov r0, sp - movs r1, 0x8 - b _081A95D6 -_081A95BA: - mov r0, sp - movs r1, 0x8 - b _081A95CA -_081A95C0: - mov r0, sp - movs r1, 0x10 - b _081A95D6 -_081A95C6: - mov r0, sp - movs r1, 0x10 -_081A95CA: - movs r2, 0x1 - bl sub_81A9998 - b _081A95E8 -_081A95D2: - mov r0, sp - movs r1, 0x18 -_081A95D6: - movs r2, 0x2 - bl sub_81A9998 - b _081A95E8 -_081A95DE: - mov r0, sp - movs r1, 0x18 - movs r2, 0x1 - bl sub_81A9998 -_081A95E8: - cmp r6, 0 - bne _081A95EE - b _081A94D0 -_081A95EE: - ldr r1, =gUnknown_08613EC0 - add r1, r9 - ldr r0, [sp] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - lsls r0, r7, 2 - adds r0, r1 - ldr r0, [r0] - bl box_related_two__2 - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A9424 - - thumb_func_start sub_81A9618 -sub_81A9618: @ 81A9618 - push {r4,r5,lr} - ldr r5, =gSaveBlock2Ptr - ldr r1, [r5] - ldr r2, =0x00000ca9 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 30 - lsrs r2, r0, 29 - ldr r4, =0x00000e1a - adds r1, r4 - adds r1, r2 - ldrh r3, [r1] - ldr r0, =0x000003e6 - cmp r3, r0 - bhi _081A963A - adds r0, r3, 0x1 - strh r0, [r1] -_081A963A: - ldr r0, [r5] - adds r1, r0, r4 - adds r1, r2 - ldr r3, =0x00000e1e - adds r0, r3 - adds r0, r2 - ldrh r1, [r1] - ldrh r2, [r0] - cmp r1, r2 - bls _081A9650 - strh r1, [r0] -_081A9650: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A9618 - - thumb_func_start sub_81A966C -sub_81A966C: @ 81A966C - push {r4,lr} - ldr r4, =gUnknown_020375F0 - bl InBattlePyramid - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A966C - - thumb_func_start sub_81A9684 -sub_81A9684: @ 81A9684 - push {r4,lr} - ldr r0, =gUnknown_020375E4 - ldrh r0, [r0] - cmp r0, 0 - beq _081A9698 - cmp r0, 0x1 - beq _081A96B4 - b _081A9754 - .pool -_081A9698: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =gUnknown_020375E2 - ldrh r1, [r1] - ldr r2, =0x00000e68 - adds r0, r2 - strb r1, [r0] - b _081A9754 - .pool -_081A96B4: - ldr r4, =gUnknown_020375F0 - ldrh r0, [r4] - cmp r0, 0x1 - beq _081A9710 - cmp r0, 0x1 - bgt _081A9754 - cmp r0, 0 - bne _081A9754 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081A9754 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000e68 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0x77 - bls _081A96F4 - movs r0, 0x78 - strb r0, [r1] - b _081A96FC - .pool -_081A96F4: - ldr r0, =gUnknown_020375E6 - ldrh r0, [r0] - bl audio_play -_081A96FC: - ldr r1, =gUnknown_020375F0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _081A9754 - .pool -_081A9710: - ldr r1, =gUnknown_020375E2 - ldrh r0, [r1] - cmp r0, 0 - beq _081A9750 - subs r0, 0x1 - strh r0, [r1] - ldr r3, =gSaveBlock2Ptr - ldr r1, [r3] - ldr r2, =0x00000e68 - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r3] - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0x78 - bls _081A973E - movs r0, 0x78 - strb r0, [r1] - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_081A973E: - bl door_upload_tiles - b _081A9754 - .pool -_081A9750: - movs r0, 0x2 - strh r0, [r4] -_081A9754: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81A9684 - - thumb_func_start sub_81A975C -sub_81A975C: @ 81A975C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - movs r1, 0 - mov r0, sp - strh r1, [r0] - movs r5, 0 - movs r0, 0x64 - mov r9, r0 - ldr r1, =gPlayerParty - mov r8, r1 -_081A9776: - movs r4, 0 - adds r7, r5, 0x1 - mov r6, r9 - muls r6, r5 -_081A977E: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r4, 1 - ldr r2, =0x00000caa - adds r0, r2 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r0, 0 - beq _081A97A2 - subs r0, 0x1 - cmp r0, r5 - bne _081A97A2 - mov r1, r8 - adds r0, r6, r1 - movs r1, 0xC - mov r2, sp - bl pokemon_setattr -_081A97A2: - adds r4, 0x1 - cmp r4, 0x3 - ble _081A977E - adds r5, r7, 0 - cmp r5, 0x5 - ble _081A9776 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A975C - - thumb_func_start sub_81A97C8 -sub_81A97C8: @ 81A97C8 - push {lr} - ldr r0, =sub_81A97DC - movs r1, 0 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A97C8 - - thumb_func_start sub_81A97DC -sub_81A97DC: @ 81A97DC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081A980C - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000cb2 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 5 - ldr r1, =gUnknown_08D856C8 - adds r0, r1 - ldr r1, =gPlttBufferUnfaded + 0xC0 - movs r2, 0x10 - bl CpuSet - adds r0, r4, 0 - bl DestroyTask -_081A980C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A97DC - - thumb_func_start sub_81A9828 -sub_81A9828: @ 81A9828 - push {lr} - bl sub_809FDD4 - pop {r0} - bx r0 - thumb_func_end sub_81A9828 - - thumb_func_start sub_81A9834 -sub_81A9834: @ 81A9834 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - movs r0, 0 - str r0, [sp] -_081A9844: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, [sp] - lsls r1, r2, 1 - ldr r5, =0x00000caa - adds r0, r5 - adds r0, r1 - ldrh r0, [r0] - subs r5, r0, 0x1 - movs r0, 0 - str r0, [sp, 0x4] - movs r2, 0x64 - adds r1, r5, 0 - muls r1, r2 - str r1, [sp, 0x8] - movs r0, 0x8E - lsls r0, 2 - adds r6, r1, r0 - movs r1, 0 - str r1, [sp, 0x10] -_081A986C: - ldr r2, =gSaveBlock1Ptr - ldr r0, [r2] - adds r0, r6 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - ldr r3, =gPlayerParty - ldr r1, [sp, 0x10] - adds r0, r1, r3 - movs r1, 0xB - movs r2, 0 - str r3, [sp, 0x14] - bl GetMonData - ldr r3, [sp, 0x14] - cmp r4, r0 - bne _081A993C - movs r6, 0 - adds r2, r5, 0x1 - str r2, [sp, 0xC] - movs r1, 0x64 - adds r0, r5, 0 - muls r0, r1 - movs r5, 0x8E - lsls r5, 2 - adds r5, r0 - mov r9, r5 - ldr r7, [sp, 0x4] - muls r7, r1 - mov r10, r3 -_081A98AC: - movs r5, 0 - adds r0, r6, 0x1 - mov r8, r0 - b _081A98C6 - .pool -_081A98C4: - adds r5, 0x1 -_081A98C6: - cmp r5, 0x3 - bgt _081A98EE - ldr r1, =gSaveBlock1Ptr - ldr r0, [r1] - add r0, r9 - adds r1, r5, 0 - adds r1, 0xD - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - adds r1, r6, 0 - adds r1, 0xD - mov r2, r10 - adds r0, r7, r2 - movs r2, 0 - bl GetMonData - cmp r4, r0 - bne _081A98C4 -_081A98EE: - cmp r5, 0x4 - bne _081A9900 - lsls r2, r6, 24 - lsrs r2, 24 - mov r5, r10 - adds r0, r7, r5 - movs r1, 0xA6 - bl sub_80691F4 -_081A9900: - mov r6, r8 - cmp r6, 0x3 - ble _081A98AC - ldr r1, =gSaveBlock1Ptr - ldr r0, [r1] - ldr r2, [sp, 0x8] - adds r0, r2 - movs r5, 0x8E - lsls r5, 2 - adds r0, r5 - ldr r1, =gPlayerParty - ldr r2, [sp, 0x10] - adds r1, r2, r1 - movs r2, 0x64 - bl memcpy - ldr r0, =gUnknown_0203CEF8 - ldr r5, [sp, 0x4] - adds r0, r5, r0 - mov r1, sp - ldrb r1, [r1, 0xC] - strb r1, [r0] - b _081A994C - .pool -_081A993C: - ldr r2, [sp, 0x10] - adds r2, 0x64 - str r2, [sp, 0x10] - ldr r0, [sp, 0x4] - adds r0, 0x1 - str r0, [sp, 0x4] - cmp r0, 0x2 - ble _081A986C -_081A994C: - ldr r1, [sp] - adds r1, 0x1 - str r1, [sp] - cmp r1, 0x2 - bgt _081A9958 - b _081A9844 -_081A9958: - movs r2, 0 - str r2, [sp] - ldr r4, =gSaveBlock2Ptr - ldr r3, =0x00000caa - ldr r2, =gUnknown_0203CEF8 -_081A9962: - ldr r1, [r4] - ldr r5, [sp] - lsls r0, r5, 1 - adds r1, r3 - adds r1, r0 - adds r0, r5, r2 - ldrb r0, [r0] - strh r0, [r1] - adds r5, 0x1 - str r5, [sp] - cmp r5, 0x2 - ble _081A9962 - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A9834 - - thumb_func_start sub_81A9998 -sub_81A9998: @ 81A9998 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r10, r0 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r7, r2, 24 - movs r4, 0 - ldr r0, =gUnknown_03005DC0 - ldr r5, [r0, 0x8] - ldr r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - adds r0, 0xE - adds r5, r0 - movs r3, 0 - ldr r0, =0x000003ff - mov r8, r0 - ldr r1, =0x0000028e - mov r12, r1 - ldr r0, =gUnknown_02037350 - mov r9, r0 -_081A99CC: - movs r2, 0 -_081A99CE: - lsls r0, r2, 1 - adds r0, r5 - ldrh r1, [r0] - mov r0, r8 - ands r0, r1 - cmp r0, r12 - bne _081A9A8A - adds r2, 0x7 - ldr r0, =gUnknown_03005DF0 - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - add r0, r9 - movs r5, 0xC - ldrsh r1, [r0, r5] - subs r2, r1 - adds r1, r3, 0x7 - movs r3, 0xE - ldrsh r0, [r0, r3] - subs r3, r1, r0 - cmp r2, r6 - bge _081A9A0E - negs r0, r6 - cmp r2, r0 - ble _081A9A0E - cmp r3, r6 - bge _081A9A0E - cmp r3, r0 - ble _081A9A0E - cmp r7, 0 - bne _081A9A84 -_081A9A0E: - cmp r2, 0 - ble _081A9A34 - cmp r3, 0 - ble _081A9A34 - movs r4, 0x3 - cmp r2, r3 - blt _081A9A7C - movs r4, 0x2 - b _081A9A7C - .pool -_081A9A34: - cmp r2, 0 - bge _081A9A46 - cmp r3, 0 - bge _081A9A46 - movs r4, 0x1 - cmp r2, r3 - ble _081A9A7C - movs r4, 0 - b _081A9A7C -_081A9A46: - cmp r2, 0 - bne _081A9A54 - movs r4, 0 - cmp r3, 0 - ble _081A9A7C - movs r4, 0x3 - b _081A9A7C -_081A9A54: - cmp r3, 0 - bne _081A9A62 - movs r4, 0x1 - cmp r2, 0 - ble _081A9A7C - movs r4, 0x2 - b _081A9A7C -_081A9A62: - cmp r2, 0 - bge _081A9A72 - adds r0, r2, r3 - movs r4, 0x1 - cmp r0, 0 - ble _081A9A7C - movs r4, 0x3 - b _081A9A7C -_081A9A72: - adds r0, r2, r3 - mvns r0, r0 - asrs r4, r0, 31 - movs r0, 0x2 - ands r4, r0 -_081A9A7C: - movs r0, 0 - mov r5, r10 - str r0, [r5] - b _081A9A98 -_081A9A84: - mov r0, r10 - str r7, [r0] - b _081A9A98 -_081A9A8A: - adds r2, 0x1 - cmp r2, 0x1F - ble _081A99CE - adds r5, 0x5E - adds r3, 0x1 - cmp r3, 0x1F - ble _081A99CC -_081A9A98: - adds r0, r4, 0 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81A9998 - - thumb_func_start sub_81A9AA8 -sub_81A9AA8: @ 81A9AA8 - lsls r0, 24 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - lsrs r0, 23 - adds r1, r0 - ldr r0, =0x00000cb2 - adds r1, r0 - ldrh r0, [r1] - bx lr - .pool - thumb_func_end sub_81A9AA8 - - thumb_func_start GetBattlePyramidTrainerFlag -GetBattlePyramidTrainerFlag: @ 81A9AC4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSaveBlock2Ptr - ldr r2, [r1] - ldr r1, =0x00000e2a - adds r2, r1 - ldr r4, =gBitTable - ldr r3, =gUnknown_02037350 - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r0, [r1, 0x8] - subs r0, 0x1 - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - ldrb r1, [r2] - ands r0, r1 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end GetBattlePyramidTrainerFlag - - thumb_func_start sub_81A9B04 -sub_81A9B04: @ 81A9B04 - push {lr} - ldr r0, =gUnknown_02038BCA - ldrh r0, [r0] - bl sub_81A9B44 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _081A9B2E - movs r0, 0x1 - bl sub_80B47E0 - ldr r1, =gUnknown_03005DF0 - strb r0, [r1] - ldr r0, =gUnknown_02038BCC - ldrh r0, [r0] - bl sub_81A9B44 -_081A9B2E: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A9B04 - - thumb_func_start sub_81A9B44 -sub_81A9B44: @ 81A9B44 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 16 - lsrs r5, r0, 16 - movs r3, 0 - ldr r0, =gUnknown_02037350 - mov r12, r0 - ldr r6, =gUnknown_03005DF0 - ldr r1, =gSaveBlock1Ptr - mov r10, r1 - ldr r7, =gSaveBlock2Ptr - mov r9, r7 - ldr r0, =0x00000cb4 - mov r8, r0 - ldr r4, =gBitTable -_081A9B68: - mov r1, r9 - ldr r2, [r1] - lsls r0, r3, 1 - mov r7, r8 - adds r1, r2, r7 - adds r1, r0 - ldrh r0, [r1] - cmp r0, r5 - bne _081A9B86 - ldr r1, =0x00000e2a - adds r0, r2, r1 - ldr r1, [r4] - ldrb r2, [r0] - orrs r1, r2 - strb r1, [r0] -_081A9B86: - adds r4, 0x4 - adds r3, 0x1 - cmp r3, 0x7 - ble _081A9B68 - ldrb r1, [r6] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - add r0, r12 - movs r3, 0x2 - strb r3, [r0, 0x6] - mov r7, r10 - ldr r2, [r7] - ldr r0, =gUnknown_020375F2 - ldrh r1, [r0] - subs r1, 0x1 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r2, r0 - ldr r1, =0x00000c79 - adds r2, r1 - strb r3, [r2] - ldrb r1, [r6] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - add r0, r12 - ldrh r1, [r0, 0x10] - strh r1, [r0, 0xC] - ldrb r1, [r6] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - add r0, r12 - ldrh r1, [r0, 0x12] - strh r1, [r0, 0xE] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A9B44 - - thumb_func_start sub_81A9C04 -sub_81A9C04: @ 81A9C04 - push {r4-r6,lr} - sub sp, 0x14 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r2, =0x00000ca9 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 30 - lsrs r5, r0, 30 - lsls r0, r5, 1 - ldr r2, =0x00000e1a - adds r1, r2 - adds r1, r0 - ldrh r0, [r1] - movs r1, 0x7 - bl __udivsi3 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x14 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x13 - bls _081A9C3A - movs r0, 0x13 -_081A9C3A: - cmp r5, 0 - beq _081A9C54 - ldr r1, =gBattlePyramidOpenLevelWildMonPointers - b _081A9C56 - .pool -_081A9C54: - ldr r1, =gBattlePyramidLevel50WildMonPointers -_081A9C56: - lsls r0, 2 - adds r0, r1 - ldr r6, [r0] - ldr r4, =gEnemyParty - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - subs r0, 0x1 - str r0, [sp, 0x10] - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 2 - adds r2, r6, r2 - adds r0, r4, 0 - movs r1, 0xB - bl pokemon_setattr - ldr r1, [sp, 0x10] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r1, [r0] - mov r0, sp - bl GetSpeciesName - adds r0, r4, 0 - movs r1, 0x2 - mov r2, sp - bl pokemon_setattr - cmp r5, 0 - beq _081A9CD4 - bl sub_8165C40 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, [sp, 0x10] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x2] - subs r5, r0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xB - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - subs r0, 0x5 - adds r5, r0 - b _081A9CF6 - .pool -_081A9CD4: - bl Random - ldr r2, [sp, 0x10] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r6 - ldrb r4, [r1, 0x2] - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xB - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - subs r0, 0x5 - adds r5, r4, r0 -_081A9CF6: - ldr r4, =gEnemyParty - ldr r2, =gBaseStats - ldr r1, [sp, 0x10] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x13] - movs r0, 0xCA - lsls r0, 1 - adds r2, r1, 0 - muls r2, r0 - lsls r0, r5, 2 - ldr r1, =gExperienceTables - adds r0, r1 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x19 - bl pokemon_setattr - ldr r1, [sp, 0x10] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0, 0x3] - cmp r1, 0 - blt _081A9D4C - cmp r1, 0x1 - bgt _081A9D4C - adds r2, r0, 0x3 - b _081A9D7C - .pool -_081A9D4C: - ldr r2, =gBaseStats - ldr r1, [sp, 0x10] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x17] - cmp r0, 0 - beq _081A9D90 - ldr r4, =gEnemyParty - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - bl GetMonData - movs r1, 0x1 - ands r1, r0 - str r1, [sp, 0xC] - add r2, sp, 0xC -_081A9D7C: - adds r0, r4, 0 - movs r1, 0x2E - bl pokemon_setattr - b _081A9D9C - .pool -_081A9D90: - str r0, [sp, 0xC] - ldr r0, =gEnemyParty - add r2, sp, 0xC - movs r1, 0x2E - bl pokemon_setattr -_081A9D9C: - movs r0, 0 - str r0, [sp, 0xC] - movs r2, 0 - lsls r4, r5, 1 -_081A9DA4: - ldr r1, [sp, 0x10] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - lsls r1, r2, 1 - adds r0, 0x4 - adds r0, r1 - ldrh r1, [r0] - lsls r2, 24 - lsrs r2, 24 - ldr r0, =gEnemyParty - bl sub_80691F4 - ldr r0, [sp, 0xC] - adds r0, 0x1 - str r0, [sp, 0xC] - adds r2, r0, 0 - cmp r2, 0x3 - ble _081A9DA4 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000e1a - adds r0, r1 - adds r0, r4 - ldrh r0, [r0] - cmp r0, 0x8B - bls _081A9E0C - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x11 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - adds r0, 0xF - str r0, [sp, 0x10] - movs r0, 0 - str r0, [sp, 0xC] -_081A9DF6: - adds r1, r0, 0 - adds r1, 0x27 - ldr r0, =gEnemyParty - add r2, sp, 0x10 - bl pokemon_setattr - ldr r0, [sp, 0xC] - adds r0, 0x1 - str r0, [sp, 0xC] - cmp r0, 0x5 - ble _081A9DF6 -_081A9E0C: - ldr r0, =gEnemyParty - bl pokemon_calc_effective_stats - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A9C04 - - thumb_func_start sub_81A9E28 -sub_81A9E28: @ 81A9E28 - push {lr} - bl sub_81AA9E4 - lsls r0, 24 - ldr r1, =gUnknown_08613650 - lsrs r0, 20 - adds r0, r1 - ldrb r0, [r0, 0x4] - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A9E28 - - thumb_func_start InBattlePyramid -InBattlePyramid: @ 81A9E40 - push {lr} - ldr r0, =gUnknown_02037318 - ldrh r1, [r0, 0x12] - ldr r0, =0x00000169 - cmp r1, r0 - bne _081A9E58 - movs r0, 0x1 - b _081A9E66 - .pool -_081A9E58: - movs r0, 0xBD - lsls r0, 1 - cmp r1, r0 - beq _081A9E64 - movs r0, 0 - b _081A9E66 -_081A9E64: - movs r0, 0x2 -_081A9E66: - pop {r1} - bx r1 - thumb_func_end InBattlePyramid - - thumb_func_start sub_81A9E6C -sub_81A9E6C: @ 81A9E6C - push {lr} - movs r2, 0 - ldr r0, =gUnknown_02037318 - ldrh r1, [r0, 0x12] - ldr r0, =0x00000169 - cmp r1, r0 - beq _081A9E80 - adds r0, 0x11 - cmp r1, r0 - bne _081A9E82 -_081A9E80: - movs r2, 0x1 -_081A9E82: - adds r0, r2, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A9E6C - - thumb_func_start sub_81A9E90 -sub_81A9E90: @ 81A9E90 - push {lr} - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - beq _081A9EB8 - bl sub_81A9834 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca8 - adds r0, r1 - movs r1, 0x2 - strb r1, [r0] - ldr r0, =0x0000400e - movs r1, 0 - bl VarSet - bl copy_player_party_from_sav1 -_081A9EB8: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A9E90 - - thumb_func_start sub_81A9EC8 -sub_81A9EC8: @ 81A9EC8 - push {lr} - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - beq _081A9ED8 - bl DoSoftReset -_081A9ED8: - pop {r0} - bx r0 - thumb_func_end sub_81A9EC8 - - thumb_func_start sub_81A9EDC -sub_81A9EDC: @ 81A9EDC - push {lr} - lsls r0, 16 - lsrs r0, 16 - ldr r2, =gUnknown_0203BC88 - movs r1, 0x34 - muls r1, r0 - ldr r0, [r2] - adds r0, r1 - adds r0, 0xC - bl ConvertBattleFrontierTrainerSpeechToString - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A9EDC - - thumb_func_start sub_81A9EFC -sub_81A9EFC: @ 81A9EFC - push {lr} - lsls r0, 16 - lsrs r0, 16 - ldr r2, =gUnknown_0203BC88 - movs r1, 0x34 - muls r1, r0 - ldr r0, [r2] - adds r0, r1 - adds r0, 0x18 - bl ConvertBattleFrontierTrainerSpeechToString - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A9EFC - - thumb_func_start sub_81A9F1C -sub_81A9F1C: @ 81A9F1C - push {lr} - lsls r0, 16 - lsrs r0, 16 - ldr r2, =gUnknown_0203BC88 - movs r1, 0x34 - muls r1, r0 - ldr r0, [r2] - adds r0, r1 - adds r0, 0x24 - bl ConvertBattleFrontierTrainerSpeechToString - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A9F1C - - thumb_func_start sub_81A9F3C -sub_81A9F3C: @ 81A9F3C - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - movs r4, 0 - ldr r3, =gTrainerClassNameIndices - ldr r1, =gUnknown_0203BC88 - ldr r2, [r1] - movs r1, 0x34 - muls r0, r1 - adds r0, r2 - ldrb r0, [r0] - adds r0, r3 - ldrb r2, [r0] - ldr r1, =gUnknown_08613B44 -_081A9F58: - ldrb r0, [r1] - cmp r0, r2 - bne _081A9F70 - ldrb r0, [r1, 0x1] - b _081A9F7A - .pool -_081A9F70: - adds r1, 0x4 - adds r4, 0x1 - cmp r4, 0x35 - bls _081A9F58 - movs r0, 0 -_081A9F7A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81A9F3C - - thumb_func_start sub_81A9F80 -sub_81A9F80: @ 81A9F80 - push {lr} - ldr r0, =gUnknown_08252C88 - bl script_env_1_execute_new_script - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A9F80 - - thumb_func_start sub_81A9F90 -sub_81A9F90: @ 81A9F90 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gSaveBlock2Ptr - ldr r4, [r0] - ldr r1, =0x00000ca9 - adds r0, r4, r1 - ldrb r1, [r0] - lsls r1, 30 - lsrs r1, 29 - ldr r2, =0x00000e1a - adds r0, r4, r2 - adds r0, r1 - ldrh r0, [r0] - movs r1, 0x7 - bl __udivsi3 - lsls r0, 16 - lsrs r0, 16 - ldr r1, =0x00000cb2 - adds r4, r1 - ldrh r1, [r4] - cmp r1, 0x7 - bne _081AA020 - adds r0, 0x1 - lsls r7, r0, 24 - lsls r1, 24 - mov r8, r1 -_081A9FCC: - lsrs r0, r7, 24 - mov r2, r8 - lsrs r1, r2, 24 - bl sub_8162548 - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - cmp r2, r5 - bge _081AA004 - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - ldr r4, =0x00000cb4 - adds r0, r4 - ldrh r0, [r0] - cmp r0, r3 - beq _081AA004 - adds r6, r1, 0 -_081A9FF0: - adds r2, 0x1 - cmp r2, r5 - bge _081AA004 - ldr r0, [r6] - lsls r1, r2, 1 - adds r0, r4 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r3 - bne _081A9FF0 -_081AA004: - cmp r2, r5 - bne _081A9FCC - b _081AA062 - .pool -_081AA020: - lsls r1, 24 - mov r8, r1 - lsls r7, r0, 24 -_081AA026: - lsrs r0, r7, 24 - mov r2, r8 - lsrs r1, r2, 24 - bl sub_8162548 - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - cmp r2, r5 - bge _081AA05E - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - ldr r4, =0x00000cb4 - adds r0, r4 - ldrh r0, [r0] - cmp r0, r3 - beq _081AA05E - adds r6, r1, 0 -_081AA04A: - adds r2, 0x1 - cmp r2, r5 - bge _081AA05E - ldr r0, [r6] - lsls r1, r2, 1 - adds r0, r4 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r3 - bne _081AA04A -_081AA05E: - cmp r2, r5 - bne _081AA026 -_081AA062: - adds r0, r3, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A9F90 - - thumb_func_start sub_81AA078 -sub_81AA078: @ 81AA078 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - str r0, [sp, 0x4] - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x8] - movs r0, 0x10 - bl AllocZeroed - str r0, [sp, 0xC] - bl sub_81AA96C - mov r4, sp - adds r4, 0x1 - mov r0, sp - adds r1, r4, 0 - bl sub_81AA33C - movs r7, 0 -_081AA0A6: - ldr r1, [sp, 0xC] - adds r0, r1, r7 - ldrb r0, [r0] - ldr r2, =0x00000169 - adds r0, r2 - lsls r0, 2 - ldr r1, =gUnknown_08481DD4 - adds r0, r1 - ldr r6, [r0] - ldr r2, [r6, 0xC] - mov r10, r2 - ldr r0, [sp, 0x4] - ldr r1, =gUnknown_03005DC0 - str r0, [r1, 0x8] - ldr r0, [r6] - lsls r0, 2 - adds r2, r0, 0 - adds r2, 0xF - str r2, [r1] - ldr r0, [r6, 0x4] - lsls r0, 2 - adds r0, 0xE - str r0, [r1, 0x4] - ldr r0, [sp, 0x4] - mov r9, r0 - adds r1, r7, 0 - cmp r7, 0 - bge _081AA0E0 - adds r1, r7, 0x3 -_081AA0E0: - asrs r1, 2 - ldr r4, [r6, 0x4] - adds r0, r1, 0 - muls r0, r4 - adds r0, 0x7 - muls r2, r0 - lsls r1, 2 - subs r1, r7, r1 - ldr r3, [r6] - adds r0, r1, 0 - muls r0, r3 - adds r0, 0x7 - adds r2, r0 - lsls r2, 1 - add r9, r2 - movs r1, 0 - mov r8, r1 - adds r2, r7, 0x1 - str r2, [sp, 0x10] - cmp r8, r4 - bge _081AA1B6 -_081AA10A: - movs r0, 0 - mov r12, r0 - mov r1, r8 - adds r1, 0x1 - str r1, [sp, 0x14] - cmp r12, r3 - bge _081AA1A2 - ldr r2, =gSaveBlock1Ptr - str r2, [sp, 0x18] - mov r4, r9 - mov r5, r10 -_081AA120: - ldrh r1, [r5] - ldr r0, =0x000003ff - ands r0, r1 - ldr r2, =0x0000028e - cmp r0, r2 - bne _081AA194 - mov r0, sp - ldrb r0, [r0, 0x1] - cmp r7, r0 - beq _081AA194 - mov r0, sp - ldrb r0, [r0] - cmp r7, r0 - bne _081AA164 - ldr r1, [sp, 0x8] - cmp r1, 0 - bne _081AA164 - ldr r2, [sp, 0x18] - ldr r3, [r2] - adds r2, r7, 0 - cmp r7, 0 - bge _081AA14E - adds r2, r7, 0x3 -_081AA14E: - asrs r2, 2 - lsls r1, r2, 2 - subs r1, r7, r1 - ldr r0, [r6] - muls r0, r1 - add r0, r12 - strh r0, [r3] - ldr r0, [r6, 0x4] - muls r0, r2 - add r0, r8 - strh r0, [r3, 0x2] -_081AA164: - ldrh r0, [r5] - movs r1, 0xFC - lsls r1, 8 - ands r1, r0 - ldr r2, =0x0000028d - adds r0, r2, 0 - orrs r1, r0 - strh r1, [r4] - ldr r3, [r6] - b _081AA196 - .pool -_081AA194: - strh r1, [r4] -_081AA196: - adds r4, 0x2 - adds r5, 0x2 - movs r0, 0x1 - add r12, r0 - cmp r12, r3 - blt _081AA120 -_081AA1A2: - lsls r0, r3, 3 - adds r0, 0x1E - add r9, r0 - lsls r0, r3, 1 - add r10, r0 - ldr r1, [sp, 0x14] - mov r8, r1 - ldr r0, [r6, 0x4] - cmp r8, r0 - blt _081AA10A -_081AA1B6: - ldr r7, [sp, 0x10] - cmp r7, 0xF - bgt _081AA1BE - b _081AA0A6 -_081AA1BE: - bl mapheader_run_script_with_tag_x1 - ldr r0, [sp, 0xC] - bl Free - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81AA078 - - thumb_func_start sub_81AA1D8 -sub_81AA1D8: @ 81AA1D8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - movs r5, 0 - mov r6, sp - adds r6, 0x1 - add r0, sp, 0x4 - mov r8, r0 - ldr r4, =gSaveBlock2Ptr - ldr r3, =0x00000cb4 - ldr r0, =0x0000ffff - adds r2, r0, 0 -_081AA1F2: - ldr r0, [r4] - lsls r1, r5, 1 - adds r0, r3 - adds r0, r1 - ldrh r1, [r0] - orrs r1, r2 - strh r1, [r0] - adds r5, 0x1 - cmp r5, 0x7 - ble _081AA1F2 - bl sub_81AA9E4 - lsls r0, 24 - lsrs r7, r0, 24 - mov r0, sp - adds r1, r6, 0 - bl sub_81AA33C - movs r0, 0 - str r0, [sp, 0x4] - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - movs r0, 0xC7 - lsls r0, 4 - adds r1, r0 - ldr r2, =0x05000180 - mov r0, r8 - bl CpuSet - movs r5, 0 -_081AA22E: - cmp r5, 0 - bne _081AA254 - ldr r1, =gUnknown_08613650 - lsls r0, r7, 4 - adds r0, r1 - ldrb r0, [r0, 0x3] - b _081AA25C - .pool -_081AA254: - ldr r1, =gUnknown_08613650 - lsls r0, r7, 4 - adds r0, r1 - ldrb r0, [r0, 0x2] -_081AA25C: - cmp r0, 0x4 - bhi _081AA2E4 - lsls r0, 2 - ldr r1, =_081AA274 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081AA274: - .4byte _081AA288 - .4byte _081AA292 - .4byte _081AA2A2 - .4byte _081AA2B0 - .4byte _081AA2CC -_081AA288: - lsls r0, r5, 24 - lsrs r0, 24 - bl sub_81AA398 - b _081AA2E4 -_081AA292: - lsls r0, r5, 24 - lsrs r4, r0, 24 - mov r0, sp - ldrb r1, [r0] - adds r0, r4, 0 - bl sub_81AA4D8 - b _081AA2BE -_081AA2A2: - lsls r0, r5, 24 - lsrs r4, r0, 24 - ldrb r1, [r6] - adds r0, r4, 0 - bl sub_81AA4D8 - b _081AA2BE -_081AA2B0: - lsls r0, r5, 24 - lsrs r4, r0, 24 - mov r0, sp - ldrb r1, [r0] - adds r0, r4, 0 - bl sub_81AA648 -_081AA2BE: - lsls r0, 24 - cmp r0, 0 - beq _081AA2E4 - adds r0, r4, 0 - bl sub_81AA398 - b _081AA2E4 -_081AA2CC: - lsls r0, r5, 24 - lsrs r4, r0, 24 - ldrb r1, [r6] - adds r0, r4, 0 - bl sub_81AA648 - lsls r0, 24 - cmp r0, 0 - beq _081AA2E4 - adds r0, r4, 0 - bl sub_81AA398 -_081AA2E4: - adds r5, 0x1 - cmp r5, 0x1 - ble _081AA22E - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81AA1D8 - - thumb_func_start sub_81AA2F8 -sub_81AA2F8: @ 81AA2F8 - push {r4,r5,lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r5, =gUnknown_08252C4F - ldr r4, =gUnknown_08252C6A - movs r2, 0xC8 - lsls r2, 4 - adds r1, r0, r2 - movs r3, 0xC7 - lsls r3, 4 - adds r2, r0, r3 - movs r3, 0x3F -_081AA310: - ldrb r0, [r2, 0x1] - cmp r0, 0x3B - beq _081AA328 - str r5, [r1] - b _081AA32A - .pool -_081AA328: - str r4, [r1] -_081AA32A: - adds r1, 0x18 - adds r2, 0x18 - subs r3, 0x1 - cmp r3, 0 - bge _081AA310 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81AA2F8 - - thumb_func_start sub_81AA33C -sub_81AA33C: @ 81AA33C - push {r4-r7,lr} - adds r4, r0, 0 - adds r6, r1, 0 - ldr r5, =gSaveBlock2Ptr - ldr r1, [r5] - ldr r2, =0x00000e28 - adds r0, r1, r2 - ldrh r2, [r0] - movs r3, 0xF - ands r2, r3 - strb r2, [r4] - ldr r7, =0x00000e22 - adds r1, r7 - ldrh r0, [r1] - ands r0, r3 - strb r0, [r6] - cmp r2, r0 - bne _081AA386 - ldr r1, [r5] - ldr r2, =0x00000e28 - adds r0, r1, r2 - ldrh r2, [r0] - adds r3, r2, 0x1 - adds r0, r3, 0 - asrs r0, 4 - lsls r0, 4 - subs r0, r3, r0 - strb r0, [r4] - adds r0, r1, r7 - ldrh r1, [r0] - adds r2, r1, 0 - adds r2, 0xF - adds r0, r2, 0 - asrs r0, 4 - lsls r0, 4 - subs r0, r2, r0 - strb r0, [r6] -_081AA386: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AA33C - - thumb_func_start sub_81AA398 -sub_81AA398: @ 81AA398 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - movs r5, 0 - bl sub_81AA9E4 - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0x10 - bl AllocZeroed - str r0, [sp, 0x8] - bl sub_81AA96C - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000e26 - adds r0, r1 - ldrh r4, [r0] - movs r0, 0xF - ands r4, r0 - ldr r0, [sp] - cmp r0, 0 - bne _081AA3F0 - ldr r1, =gUnknown_08613650 - lsls r0, r6, 4 - adds r0, r1 - ldrb r0, [r0, 0x1] - mov r10, r0 - movs r1, 0 - str r1, [sp, 0x4] - b _081AA3FE - .pool -_081AA3F0: - ldr r1, =gUnknown_08613650 - lsls r0, r6, 4 - adds r0, r1 - ldrb r1, [r0] - mov r10, r1 - ldrb r0, [r0, 0x1] - str r0, [sp, 0x4] -_081AA3FE: - movs r0, 0 - mov r8, r0 - cmp r8, r10 - bge _081AA4C0 -_081AA406: - movs r1, 0x1 - add r1, r8 - mov r9, r1 - b _081AA42E - .pool -_081AA414: - lsls r2, r4, 24 - lsrs r2, 24 - ldr r3, [sp, 0x4] - add r3, r8 - lsls r3, 24 - lsrs r3, 24 - ldr r0, [sp] - ldr r1, [sp, 0x8] - bl sub_81AA760 - lsls r0, 24 - cmp r0, 0 - beq _081AA4B6 -_081AA42E: - ldr r0, =gBitTable - mov r12, r0 - ldr r6, =gSaveBlock2Ptr - ldr r7, =0x00000e28 - movs r3, 0x2 - lsls r0, r4, 2 - mov r1, r12 - adds r2, r0, r1 -_081AA43E: - movs r0, 0x1 - ands r0, r5 - cmp r0, 0 - beq _081AA464 - ldr r0, [r6] - adds r0, r7 - ldrh r1, [r0] - ldr r0, [r2] - ands r0, r1 - cmp r0, 0 - bne _081AA474 - b _081AA472 - .pool -_081AA464: - ldr r0, [r6] - adds r0, r7 - ldrh r1, [r0] - ldr r0, [r2] - ands r0, r1 - cmp r0, 0 - beq _081AA474 -_081AA472: - orrs r5, r3 -_081AA474: - adds r2, 0x4 - adds r4, 0x1 - cmp r4, 0xF - ble _081AA480 - mov r2, r12 - movs r4, 0 -_081AA480: - ldr r0, [r6] - ldr r1, =0x00000e26 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0xF - ands r1, r0 - cmp r4, r1 - bne _081AA4A6 - movs r1, 0x1 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _081AA4A4 - movs r0, 0x6 - orrs r5, r0 - b _081AA4A6 - .pool -_081AA4A4: - orrs r5, r1 -_081AA4A6: - adds r0, r5, 0 - ands r0, r3 - cmp r0, 0 - beq _081AA43E - movs r0, 0x4 - ands r0, r5 - cmp r0, 0 - beq _081AA414 -_081AA4B6: - movs r0, 0x1 - ands r5, r0 - mov r8, r9 - cmp r8, r10 - blt _081AA406 -_081AA4C0: - ldr r0, [sp, 0x8] - bl Free - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81AA398 - - thumb_func_start sub_81AA4D8 -sub_81AA4D8: @ 81AA4D8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x4] - movs r6, 0 - movs r7, 0 - movs r0, 0 - str r0, [sp, 0xC] - bl sub_81AA9E4 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x10 - bl AllocZeroed - str r0, [sp, 0x14] - bl sub_81AA96C - ldr r1, [sp] - cmp r1, 0 - bne _081AA524 - ldr r1, =gUnknown_08613650 - lsls r0, r4, 4 - adds r0, r1 - ldrb r0, [r0, 0x1] - str r0, [sp, 0x10] - movs r0, 0 - b _081AA530 - .pool -_081AA524: - ldr r1, =gUnknown_08613650 - lsls r0, r4, 4 - adds r0, r1 - ldrb r2, [r0] - str r2, [sp, 0x10] - ldrb r0, [r0, 0x1] -_081AA530: - movs r3, 0 - str r3, [sp, 0x8] - ldr r1, [sp, 0x10] - asrs r1, 31 - str r1, [sp, 0x18] - ldr r2, [sp, 0x10] - cmp r3, r2 - bge _081AA622 - str r0, [sp, 0x1C] - adds r3, r0, 0 - lsls r3, 24 - mov r9, r3 -_081AA548: - cmp r7, 0 - bne _081AA56E - mov r0, r9 - lsrs r3, r0, 24 - ldr r0, [sp] - ldr r1, [sp, 0x14] - ldr r2, [sp, 0x4] - bl sub_81AA760 - lsls r0, 24 - cmp r0, 0 - beq _081AA568 - movs r7, 0x1 - b _081AA56E - .pool -_081AA568: - ldr r1, [sp, 0xC] - adds r1, 0x1 - str r1, [sp, 0xC] -_081AA56E: - movs r0, 0x1 - ands r0, r7 - cmp r0, 0 - beq _081AA600 - ldr r2, =gUnknown_08613F46 - mov r8, r2 - ldr r3, [sp, 0x4] - lsls r4, r3, 2 - adds r0, r6, r4 - add r0, r8 - ldrb r2, [r0] - mov r0, r9 - lsrs r3, r0, 24 - ldr r0, [sp] - ldr r1, [sp, 0x14] - bl sub_81AA760 - lsls r0, 24 - ldr r1, [sp, 0x1C] - mov r10, r1 - adds r5, r4, 0 - cmp r0, 0 - beq _081AA5E8 - ldr r4, [sp, 0xC] - adds r4, 0x1 - b _081AA5C2 - .pool -_081AA5A8: - adds r0, r6, r5 - adds r0, r2 - ldrb r2, [r0] - mov r0, r10 - lsls r3, r0, 24 - lsrs r3, 24 - ldr r0, [sp] - ldr r1, [sp, 0x14] - bl sub_81AA760 - lsls r0, 24 - cmp r0, 0 - beq _081AA5E0 -_081AA5C2: - adds r6, 0x1 - ldr r0, =gUnknown_08613F46 - adds r1, r6, r5 - adds r1, r0 - ldrb r1, [r1] - adds r2, r0, 0 - cmp r1, 0xFF - beq _081AA5D6 - cmp r6, 0x3 - ble _081AA5D8 -_081AA5D6: - movs r6, 0 -_081AA5D8: - adds r7, 0x2 - asrs r0, r7, 1 - cmp r0, 0x4 - bne _081AA5A8 -_081AA5E0: - str r4, [sp, 0xC] - b _081AA600 - .pool -_081AA5E8: - adds r6, 0x1 - adds r0, r6, r4 - add r0, r8 - ldrb r0, [r0] - cmp r0, 0xFF - beq _081AA5F8 - cmp r6, 0x3 - ble _081AA5FA -_081AA5F8: - movs r6, 0 -_081AA5FA: - ldr r1, [sp, 0xC] - adds r1, 0x1 - str r1, [sp, 0xC] -_081AA600: - asrs r0, r7, 1 - cmp r0, 0x4 - beq _081AA622 - movs r0, 0x1 - ands r7, r0 - ldr r2, [sp, 0x1C] - adds r2, 0x1 - str r2, [sp, 0x1C] - movs r3, 0x80 - lsls r3, 17 - add r9, r3 - ldr r0, [sp, 0x8] - adds r0, 0x1 - str r0, [sp, 0x8] - ldr r1, [sp, 0x10] - cmp r0, r1 - blt _081AA548 -_081AA622: - movs r1, 0 - ldr r2, [sp, 0x10] - ldr r3, [sp, 0x18] - subs r0, r2, r3 - asrs r0, 1 - ldr r2, [sp, 0xC] - cmp r0, r2 - ble _081AA634 - movs r1, 0x1 -_081AA634: - adds r0, r1, 0 - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81AA4D8 - - thumb_func_start sub_81AA648 -sub_81AA648: @ 81AA648 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - lsls r1, 24 - lsrs r6, r1, 24 - movs r4, 0 - movs r7, 0 - movs r0, 0 - mov r8, r0 - bl sub_81AA9E4 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x10 - bl AllocZeroed - str r0, [sp, 0x8] - bl sub_81AA96C - ldr r1, [sp] - cmp r1, 0 - bne _081AA694 - ldr r1, =gUnknown_08613650 - lsls r0, r5, 4 - adds r0, r1 - ldrb r0, [r0, 0x1] - mov r10, r0 - movs r0, 0 - b _081AA6A0 - .pool -_081AA694: - ldr r1, =gUnknown_08613650 - lsls r0, r5, 4 - adds r0, r1 - ldrb r2, [r0] - mov r10, r2 - ldrb r0, [r0, 0x1] -_081AA6A0: - movs r3, 0 - str r3, [sp, 0x4] - mov r1, r10 - asrs r1, 31 - str r1, [sp, 0xC] - cmp r3, r10 - bge _081AA73E - ldr r2, =gUnknown_08613F46 - mov r9, r2 - lsls r5, r6, 2 - lsls r6, r0, 24 -_081AA6B6: - adds r0, r4, r5 - add r0, r9 - ldrb r2, [r0] - lsrs r3, r6, 24 - ldr r0, [sp] - ldr r1, [sp, 0x8] - bl sub_81AA760 - lsls r0, 24 - cmp r0, 0 - beq _081AA714 - adds r7, 0x1 - b _081AA6EE - .pool -_081AA6D8: - adds r0, r4, r5 - adds r0, r1 - ldrb r2, [r0] - lsrs r3, r6, 24 - ldr r0, [sp] - ldr r1, [sp, 0x8] - bl sub_81AA760 - lsls r0, 24 - cmp r0, 0 - beq _081AA728 -_081AA6EE: - adds r4, 0x1 - adds r0, r4, r5 - add r0, r9 - ldrb r0, [r0] - ldr r1, =gUnknown_08613F46 - cmp r0, 0xFF - beq _081AA700 - cmp r4, 0x3 - ble _081AA702 -_081AA700: - movs r4, 0 -_081AA702: - movs r3, 0x1 - add r8, r3 - mov r0, r8 - cmp r0, 0x4 - bne _081AA6D8 - b _081AA728 - .pool -_081AA714: - adds r4, 0x1 - adds r0, r4, r5 - add r0, r9 - ldrb r0, [r0] - cmp r0, 0xFF - beq _081AA724 - cmp r4, 0x3 - ble _081AA726 -_081AA724: - movs r4, 0 -_081AA726: - adds r7, 0x1 -_081AA728: - mov r1, r8 - cmp r1, 0x4 - beq _081AA73E - movs r2, 0x80 - lsls r2, 17 - adds r6, r2 - ldr r3, [sp, 0x4] - adds r3, 0x1 - str r3, [sp, 0x4] - cmp r3, r10 - blt _081AA6B6 -_081AA73E: - movs r1, 0 - mov r2, r10 - ldr r3, [sp, 0xC] - subs r0, r2, r3 - asrs r0, 1 - cmp r0, r7 - ble _081AA74E - movs r1, 0x1 -_081AA74E: - adds r0, r1, 0 - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81AA648 - - thumb_func_start sub_81AA760 -sub_81AA760: @ 81AA760 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - mov r10, r1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - lsls r3, 24 - lsrs r7, r3, 24 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000e22 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081AA7D0 - movs r6, 0x7 -_081AA792: - movs r4, 0x7 - lsls r5, r6, 24 -_081AA796: - lsls r1, r4, 24 - lsrs r1, 24 - mov r0, r8 - str r0, [sp] - str r7, [sp, 0x4] - mov r0, r9 - lsrs r2, r5, 24 - mov r3, r10 - bl sub_81AA810 - lsls r0, 24 - cmp r0, 0 - beq _081AA7CC - subs r4, 0x1 - cmp r4, 0 - bge _081AA796 - subs r6, 0x1 - movs r1, 0x1 - negs r1, r1 - cmp r6, r1 - bgt _081AA792 - b _081AA7FC - .pool -_081AA7CC: - movs r0, 0 - b _081AA7FE -_081AA7D0: - movs r6, 0 -_081AA7D2: - movs r4, 0 - lsls r5, r6, 24 -_081AA7D6: - lsls r1, r4, 24 - lsrs r1, 24 - mov r0, r8 - str r0, [sp] - str r7, [sp, 0x4] - mov r0, r9 - lsrs r2, r5, 24 - mov r3, r10 - bl sub_81AA810 - lsls r0, 24 - cmp r0, 0 - beq _081AA7CC - adds r4, 0x1 - cmp r4, 0x7 - ble _081AA7D6 - adds r6, 0x1 - cmp r6, 0x7 - ble _081AA7D2 -_081AA7FC: - movs r0, 0x1 -_081AA7FE: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81AA760 - - thumb_func_start sub_81AA810 -sub_81AA810: @ 81AA810 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - ldr r4, [sp, 0x34] - ldr r5, [sp, 0x38] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x4] - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - lsls r4, 24 - lsrs r4, 24 - mov r10, r4 - lsls r5, 24 - lsrs r6, r5, 24 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xC7 - lsls r1, 4 - adds r1, r0, r1 - str r1, [sp, 0x8] - add r3, r10 - ldrb r1, [r3] - adds r1, 0x2C - movs r0, 0x19 - bl get_mapheader_by_bank_and_number - adds r5, r0, 0 - movs r7, 0 - ldr r1, [r5, 0x4] - ldrb r2, [r1] - cmp r7, r2 - bge _081AA95A - movs r0, 0x3 - ands r0, r4 - lsls r0, 3 - str r0, [sp, 0xC] -_081AA868: - ldr r1, [r1, 0x4] - lsls r2, r7, 1 - adds r0, r2, r7 - lsls r0, 3 - adds r3, r0, r1 - movs r4, 0x4 - ldrsh r0, [r3, r4] - ldr r1, [r5, 0x4] - mov r12, r1 - mov r9, r2 - ldr r2, [sp, 0x4] - cmp r0, r2 - bne _081AA950 - movs r4, 0x6 - ldrsh r0, [r3, r4] - cmp r0, r8 - bne _081AA950 - ldr r0, [sp] - cmp r0, 0 - bne _081AA896 - ldrb r0, [r3, 0x1] - cmp r0, 0x3B - bne _081AA8A2 -_081AA896: - ldr r1, [sp] - cmp r1, 0x1 - bne _081AA950 - ldrb r0, [r3, 0x1] - cmp r0, 0x3B - bne _081AA950 -_081AA8A2: - movs r3, 0 - ldr r2, [r5, 0x4] - mov r12, r2 - cmp r3, r6 - bge _081AA8DC - ldr r4, [sp, 0x4] - ldr r0, [sp, 0xC] - adds r4, r0 - str r4, [sp, 0x10] - mov r1, r10 - lsrs r0, r1, 2 - lsls r0, 3 - mov r2, r8 - adds r1, r2, r0 - ldr r2, [sp, 0x8] - adds r2, 0x4 -_081AA8C2: - movs r4, 0 - ldrsh r0, [r2, r4] - ldr r4, [sp, 0x10] - cmp r0, r4 - bne _081AA8D4 - movs r4, 0x2 - ldrsh r0, [r2, r4] - cmp r0, r1 - beq _081AA8DC -_081AA8D4: - adds r2, 0x18 - adds r3, 0x1 - cmp r3, r6 - blt _081AA8C2 -_081AA8DC: - cmp r3, r6 - bne _081AA950 - lsls r0, r6, 1 - mov r8, r0 - adds r0, r6 - lsls r0, 3 - ldr r1, [sp, 0x8] - adds r5, r0, r1 - mov r3, r12 - ldr r2, [r3, 0x4] - mov r4, r9 - adds r1, r4, r7 - lsls r1, 3 - adds r0, r5, 0 - adds r1, r2 - ldm r1!, {r2-r4} - stm r0!, {r2-r4} - ldm r1!, {r2-r4} - stm r0!, {r2-r4} - ldrh r0, [r5, 0x4] - ldr r1, [sp, 0xC] - adds r0, r1 - strh r0, [r5, 0x4] - mov r2, r10 - lsrs r0, r2, 2 - lsls r0, 3 - ldrh r3, [r5, 0x6] - adds r0, r3 - strh r0, [r5, 0x6] - adds r0, r6, 0x1 - strb r0, [r5] - ldrb r0, [r5, 0x1] - cmp r0, 0x3B - beq _081AA940 - adds r0, r6, 0 - bl sub_81A9F90 - lsls r0, 16 - lsrs r7, r0, 16 - adds r4, r7, 0 - adds r0, r4, 0 - bl sub_81627A4 - strb r0, [r5, 0x1] - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000cb4 - adds r0, r1 - add r0, r8 - strh r4, [r0] -_081AA940: - movs r0, 0 - b _081AA95C - .pool -_081AA950: - adds r7, 0x1 - mov r1, r12 - ldrb r2, [r1] - cmp r7, r2 - blt _081AA868 -_081AA95A: - movs r0, 0x1 -_081AA95C: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81AA810 - - thumb_func_start sub_81AA96C -sub_81AA96C: @ 81AA96C - push {r4-r7,lr} - adds r6, r0, 0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000e22 - adds r1, r0, r2 - ldrh r4, [r1] - ldr r1, =0x00000e24 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 16 - orrs r4, r0 - bl sub_81AA9E4 - lsls r0, 24 - lsrs r5, r0, 24 - movs r3, 0 - ldr r2, =gUnknown_08613655 - mov r12, r2 - movs r7, 0x7 -_081AA994: - adds r2, r6, r3 - adds r0, r4, 0 - ands r0, r7 - lsls r1, r5, 4 - adds r0, r1 - add r0, r12 - ldrb r0, [r0] - strb r0, [r2] - asrs r4, 3 - cmp r3, 0x7 - bne _081AA9C0 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r2, =0x00000e26 - adds r0, r1, r2 - ldrh r4, [r0] - ldr r0, =0x00000e28 - adds r1, r0 - ldrh r0, [r1] - lsls r0, 16 - orrs r4, r0 - asrs r4, 8 -_081AA9C0: - adds r3, 0x1 - cmp r3, 0xF - ble _081AA994 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AA96C - - thumb_func_start sub_81AA9E4 -sub_81AA9E4: @ 81AA9E4 - push {r4,lr} - ldr r0, =gSaveBlock2Ptr - ldr r4, [r0] - ldr r1, =0x00000e28 - adds r0, r4, r1 - ldrh r0, [r0] - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r3, r0, 16 - ldr r0, =0x00000cb2 - adds r4, r0 - ldrh r0, [r4] - ldr r1, =gUnknown_08613794 - adds r0, r1 - ldrb r2, [r0] - cmp r2, 0x21 - bhi _081AAA38 - ldr r1, =gUnknown_08613750 - lsls r0, r2, 1 - adds r0, r1 -_081AAA10: - ldrb r1, [r0] - cmp r3, r1 - bge _081AAA30 - ldrb r0, [r0, 0x1] - b _081AAA3A - .pool -_081AAA30: - adds r0, 0x2 - adds r2, 0x1 - cmp r2, 0x21 - bls _081AAA10 -_081AAA38: - movs r0, 0 -_081AAA3A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81AA9E4 - - thumb_func_start sub_81AAA40 -sub_81AAA40: @ 81AAA40 - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xC7 - lsls r1, 4 - adds r2, r0, r1 - movs r1, 0 - movs r3, 0xC7 - lsls r3, 4 - adds r0, r3 - b _081AAA6E - .pool -_081AAA5C: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bhi _081AAA74 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, r2 -_081AAA6E: - ldrb r0, [r0] - cmp r0, 0 - bne _081AAA5C -_081AAA74: - adds r0, r1, 0 - pop {r1} - bx r1 - thumb_func_end sub_81AAA40 - - thumb_func_start sub_81AAA7C -sub_81AAA7C: @ 81AAA7C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - movs r3, 0 - ldr r1, =gSaveBlock2Ptr - mov r8, r1 - lsls r1, r0, 2 - adds r1, r0 - movs r0, 0 - mov r12, r0 - lsls r4, r1, 1 - ldr r7, =0x00000e2c - movs r6, 0 - ldr r5, =0x00000e54 - lsls r2, r1, 2 -_081AAA9E: - mov r1, r8 - ldr r0, [r1] - adds r1, r0, r7 - adds r1, r2 - strh r6, [r1] - adds r1, r3, r4 - adds r0, r5 - adds r0, r1 - mov r1, r12 - strb r1, [r0] - adds r2, 0x2 - adds r3, 0x1 - cmp r3, 0x9 - ble _081AAA9E - movs r0, 0x15 - movs r1, 0x1 - bl sub_80D7204 - movs r0, 0x22 - movs r1, 0x1 - bl sub_80D7204 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AAA7C - - thumb_func_start CalculateBattlePyramidPickupItemId -CalculateBattlePyramidPickupItemId: @ 81AAAE0 - push {r4-r6,lr} - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r2, =0x00000ca9 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 30 - lsrs r6, r0, 30 - lsls r0, r6, 1 - ldr r2, =0x00000e1a - adds r1, r2 - adds r1, r0 - ldrh r0, [r1] - movs r1, 0x7 - bl __udivsi3 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x13 - ble _081AAB0A - movs r4, 0x13 -_081AAB0A: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r2, r0, 16 - movs r1, 0 - ldr r3, =gUnknown_08613F86 - ldrb r0, [r3] - lsls r5, r4, 2 - cmp r0, r2 - bgt _081AAB36 -_081AAB28: - adds r1, 0x1 - cmp r1, 0x9 - bhi _081AAB3A - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - ble _081AAB28 -_081AAB36: - cmp r1, 0x9 - bls _081AAB3C -_081AAB3A: - movs r1, 0x9 -_081AAB3C: - cmp r6, 0 - bne _081AAB58 - ldr r2, =gUnknown_0861379C - b _081AAB5A - .pool -_081AAB58: - ldr r2, =gUnknown_0861392C -_081AAB5A: - lsls r1, 1 - adds r0, r5, r4 - lsls r0, 2 - adds r1, r0 - adds r1, r2 - ldrh r0, [r1] - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end CalculateBattlePyramidPickupItemId - - thumb_func_start sub_81AAB70 -sub_81AAB70: @ 81AAB70 - push {r4,lr} - ldr r4, =gUnknown_0203CE58 - movs r0, 0 - strb r0, [r4, 0x5] - adds r0, r4, 0 - adds r0, 0x8 - movs r1, 0 - movs r2, 0xA - bl memset - adds r4, 0x12 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0xA - bl memset - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AAB70 - - thumb_func_start CB2_BagMenuFromStartMenu -@ void CB2_BagMenuFromStartMenu() -CB2_BagMenuFromStartMenu: @ 81AAB9C - push {lr} - ldr r2, =sub_8086194 - movs r0, 0 - movs r1, 0x5 - bl GoToBagMenu - pop {r0} - bx r0 - .pool - thumb_func_end CB2_BagMenuFromStartMenu - - thumb_func_start sub_81AABB0 -sub_81AABB0: @ 81AABB0 - push {lr} - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - bne _081AABCC - ldr r2, =sub_8059D50 - movs r0, 0x1 - movs r1, 0x5 - bl GoToBagMenu - b _081AABD4 - .pool -_081AABCC: - ldr r1, =sub_8059D50 - movs r0, 0x1 - bl sub_81C4F98 -_081AABD4: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AABB0 - - thumb_func_start CB2_ChooseBerry -CB2_ChooseBerry: @ 81AABDC - push {lr} - ldr r2, =sub_80861B0 - movs r0, 0x4 - movs r1, 0x3 - bl GoToBagMenu - pop {r0} - bx r0 - .pool - thumb_func_end CB2_ChooseBerry - - thumb_func_start sub_81AABF0 -sub_81AABF0: @ 81AABF0 - push {lr} - adds r2, r0, 0 - movs r0, 0x5 - movs r1, 0x3 - bl GoToBagMenu - pop {r0} - bx r0 - thumb_func_end sub_81AABF0 - - thumb_func_start CB2_GoToSellMenu -@ void CB2_GoToSellMenu() -CB2_GoToSellMenu: @ 81AAC00 - push {lr} - ldr r2, =CB2_ExitSellMenu - movs r0, 0x3 - movs r1, 0x5 - bl GoToBagMenu - pop {r0} - bx r0 - .pool - thumb_func_end CB2_GoToSellMenu - - thumb_func_start sub_81AAC14 -sub_81AAC14: @ 81AAC14 - push {lr} - ldr r2, =sub_816B31C - movs r0, 0x6 - movs r1, 0x5 - bl GoToBagMenu - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AAC14 - - thumb_func_start sub_81AAC28 -sub_81AAC28: @ 81AAC28 - push {lr} - ldr r2, =bag_menu_leave_maybe_3 - movs r0, 0x9 - movs r1, 0x5 - bl GoToBagMenu - ldr r0, =gUnknown_020375E2 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_020375F0 - strh r1, [r0] - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AAC28 - - thumb_func_start sub_81AAC50 -sub_81AAC50: @ 81AAC50 - push {lr} - ldr r2, =bag_menu_leave_maybe_2 - movs r0, 0x7 - movs r1, 0x5 - bl GoToBagMenu - ldr r1, =gUnknown_020375F0 - movs r0, 0 - strh r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AAC50 - - thumb_func_start sub_81AAC70 -sub_81AAC70: @ 81AAC70 - push {lr} - ldr r2, =bag_menu_leave_maybe - movs r0, 0x8 - movs r1, 0x5 - bl GoToBagMenu - ldr r1, =gUnknown_020375F0 - movs r0, 0 - strh r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AAC70 - - thumb_func_start GoToBagMenu -@ void GoToBagMenu(u8 bagMenuType, u8 pocketId, void ( *postExitMenuMainCallback2)()) -GoToBagMenu: @ 81AAC90 - push {r4-r7,lr} - adds r4, r2, 0 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - ldr r6, =gUnknown_0203CE54 - ldr r0, =0x00000c48 - bl AllocZeroed - str r0, [r6] - cmp r0, 0 - bne _081AACBC - adds r0, r4, 0 - bl SetMainCallback2 - b _081AAD3A - .pool -_081AACBC: - ldr r0, =gUnknown_0203CE58 - cmp r5, 0xC - beq _081AACC4 - strb r5, [r0, 0x4] -_081AACC4: - cmp r4, 0 - beq _081AACCA - str r4, [r0] -_081AACCA: - cmp r7, 0x4 - bhi _081AACD0 - strb r7, [r0, 0x5] -_081AACD0: - ldrb r0, [r0, 0x4] - subs r0, 0x4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _081AACF0 - ldr r2, [r6] - ldr r0, =0x0000081b - adds r2, r0 - ldrb r1, [r2] - movs r0, 0x10 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] -_081AACF0: - ldr r0, [r6] - movs r1, 0 - str r1, [r0] - ldr r1, =0x0000081a - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - ldr r0, [r6] - ldr r1, =0x0000081e - adds r0, r1 - movs r1, 0x1 - negs r1, r1 - strb r1, [r0] - ldr r0, [r6] - ldr r1, =0x0000081f - adds r0, r1 - movs r1, 0x1 - negs r1, r1 - strb r1, [r0] - ldr r0, [r6] - ldr r1, =0x00000804 - adds r0, r1 - movs r1, 0xFF - movs r2, 0xC - bl memset - ldr r0, [r6] - movs r1, 0x81 - lsls r1, 4 - adds r0, r1 - movs r1, 0xFF - movs r2, 0xA - bl memset - ldr r0, =CB2_Bag - bl SetMainCallback2 -_081AAD3A: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end GoToBagMenu - - thumb_func_start c2_bag_3 -c2_bag_3: @ 81AAD5C - push {lr} - bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end c2_bag_3 - - thumb_func_start vblank_cb_bag_menu -vblank_cb_bag_menu: @ 81AAD78 - push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end vblank_cb_bag_menu - - thumb_func_start CB2_Bag -CB2_Bag: @ 81AAD8C - push {lr} -_081AAD8E: - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081AADB2 - bl setup_bag_menu - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081AADB2 - bl sub_81221AC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081AAD8E -_081AADB2: - pop {r0} - bx r0 - thumb_func_end CB2_Bag - - thumb_func_start setup_bag_menu -setup_bag_menu: @ 81AADB8 - push {r4,r5,lr} - sub sp, 0x4 - ldr r1, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0x14 - bls _081AADCE - b _081AB02C -_081AADCE: - lsls r0, 2 - ldr r1, =_081AADE0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081AADE0: - .4byte _081AAE34 - .4byte _081AAE3E - .4byte _081AAE50 - .4byte _081AAE56 - .4byte _081AAE78 - .4byte _081AAE7E - .4byte _081AAE86 - .4byte _081AAEA4 - .4byte _081AAECC - .4byte _081AAEDA - .4byte _081AAEEC - .4byte _081AAEFA - .4byte _081AAF0C - .4byte _081AAF1C - .4byte _081AAF54 - .4byte _081AAFA0 - .4byte _081AAFBC - .4byte _081AAFC2 - .4byte _081AAFD8 - .4byte _081AAFDE - .4byte _081AAFF8 -_081AAE34: - bl SetVBlankHBlankCallbacksToNull - bl clear_scheduled_bg_copies_to_vram - b _081AB012 -_081AAE3E: - bl remove_some_task - ldr r1, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r1, r2 - b _081AB01A - .pool -_081AAE50: - bl ResetObjectPaletteAllocator - b _081AB012 -_081AAE56: - bl ResetPaletteFade - ldr r2, =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - ldr r1, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r1, r2 - b _081AB01A - .pool -_081AAE78: - bl ResetAllObjectData - b _081AB012 -_081AAE7E: - movs r0, 0x87 - lsls r0, 3 - adds r1, r2, r0 - b _081AB01A -_081AAE86: - bl sub_81221AC - lsls r0, 24 - cmp r0, 0 - bne _081AAE94 - bl ResetTasks -_081AAE94: - ldr r1, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r1, r2 - b _081AB01A - .pool -_081AAEA4: - bl bag_menu_init_bgs - ldr r0, =gUnknown_0203CE54 - ldr r0, [r0] - ldr r1, =0x00000834 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - ldr r1, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r1, r2 - b _081AB01A - .pool -_081AAECC: - bl load_bag_menu_graphics - lsls r0, 24 - cmp r0, 0 - bne _081AAED8 - b _081AB044 -_081AAED8: - b _081AB012 -_081AAEDA: - bl setup_bag_menu_textboxes - ldr r1, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r1, r2 - b _081AB01A - .pool -_081AAEEC: - bl sub_81ABA6C - bl sub_81ABAC4 - bl sub_81ABAE0 - b _081AB012 -_081AAEFA: - bl allocate_bag_item_list_buffers - ldr r1, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r1, r2 - b _081AB01A - .pool -_081AAF0C: - ldr r0, =gUnknown_0203CE58 - ldrb r0, [r0, 0x5] - bl load_bag_item_list_buffers - b _081AB012 - .pool -_081AAF1C: - ldr r1, =gUnknown_085E91FC - ldr r4, =gUnknown_0203CE58 - ldrb r0, [r4, 0x5] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - bl bag_menu_print_pocket_names - movs r0, 0 - bl bag_menu_copy_pocket_name_to_window - ldrb r0, [r4, 0x5] - movs r1, 0x1 - bl bag_menu_draw_pocket_indicator_square - ldr r1, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r1, r2 - b _081AB01A - .pool -_081AAF54: - ldr r4, =gUnknown_0203CE58 - ldrb r0, [r4, 0x4] - bl sub_81AB1F0 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, =gUnknown_03006310 - ldrb r2, [r4, 0x5] - lsls r2, 1 - adds r1, r4, 0 - adds r1, 0x12 - adds r1, r2, r1 - ldrh r1, [r1] - adds r4, 0x8 - adds r2, r4 - ldrh r2, [r2] - bl ListMenuInit - ldr r2, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - movs r2, 0 - strh r0, [r1, 0x8] - strh r2, [r1, 0xE] - strh r2, [r1, 0x18] - b _081AB012 - .pool -_081AAFA0: - ldr r0, =gUnknown_0203CE58 - ldrb r0, [r0, 0x5] - bl AddBagVisualObject - ldr r1, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r1, r2 - b _081AB01A - .pool -_081AAFBC: - bl sub_80D4FAC - b _081AB012 -_081AAFC2: - bl bag_menu_add_pocket_scroll_arrow_indicators_maybe - bl bag_menu_add_list_scroll_arrow_indicators_maybe - ldr r1, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r1, r2 - b _081AB01A - .pool -_081AAFD8: - bl bag_menu_prepare_tmhm_move_window - b _081AB012 -_081AAFDE: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - ldr r1, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r1, r2 - b _081AB01A - .pool -_081AAFF8: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r2, =gPaletteFade - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] -_081AB012: - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 -_081AB01A: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _081AB044 - .pool -_081AB02C: - ldr r0, =vblank_cb_bag_menu - bl SetVBlankCallback - ldr r0, =c2_bag_3 - bl SetMainCallback2 - movs r0, 0x1 - b _081AB046 - .pool -_081AB044: - movs r0, 0 -_081AB046: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end setup_bag_menu - - thumb_func_start bag_menu_init_bgs -bag_menu_init_bgs: @ 81AB050 - push {r4,lr} - bl sub_8121DA0 - ldr r4, =gUnknown_0203CE54 - ldr r0, [r4] - adds r0, 0x4 - movs r2, 0x80 - lsls r2, 4 - movs r1, 0 - bl memset - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_08613F90 - movs r0, 0 - movs r2, 0x3 - bl InitBgsFromTemplates - ldr r1, [r4] - adds r1, 0x4 - movs r0, 0x2 - bl SetBgTilemapBuffer - bl sub_8121E10 - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end bag_menu_init_bgs - - thumb_func_start load_bag_menu_graphics -load_bag_menu_graphics: @ 81AB0BC - push {r4,lr} - sub sp, 0x4 - ldr r4, =gUnknown_0203CE54 - ldr r0, [r4] - ldr r1, =0x00000834 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x4 - bls _081AB0D2 - b _081AB1CC -_081AB0D2: - lsls r0, 2 - ldr r1, =_081AB0E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081AB0E8: - .4byte _081AB0FC - .4byte _081AB118 - .4byte _081AB13C - .4byte _081AB174 - .4byte _081AB1A8 -_081AB0FC: - bl reset_temp_tile_data_buffers - ldr r1, =gUnknown_08D9A620 - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - b _081AB1AE - .pool -_081AB118: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081AB1E4 - ldr r0, =gUnknown_08D9A88C - ldr r4, =gUnknown_0203CE54 - ldr r1, [r4] - adds r1, 0x4 - bl LZDecompressWram - ldr r1, [r4] - b _081AB1B2 - .pool -_081AB13C: - bl IsWallysBag - lsls r0, 24 - cmp r0, 0 - bne _081AB164 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - beq _081AB164 - ldr r0, =gUnknown_08D9A5D4 - movs r1, 0 - movs r2, 0x40 - bl LoadCompressedPalette - b _081AB1AE - .pool -_081AB164: - ldr r0, =gUnknown_08D9A588 - movs r1, 0 - movs r2, 0x40 - bl LoadCompressedPalette - b _081AB1AE - .pool -_081AB174: - bl IsWallysBag - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081AB18A - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _081AB19C -_081AB18A: - ldr r0, =gUnknown_0857FB34 - bl LoadCompressedObjectPic - b _081AB1AE - .pool -_081AB19C: - ldr r0, =gUnknown_0857FB3C - bl LoadCompressedObjectPic - b _081AB1AE - .pool -_081AB1A8: - ldr r0, =gUnknown_0857FB44 - bl LoadCompressedObjectPalette -_081AB1AE: - ldr r0, =gUnknown_0203CE54 - ldr r1, [r0] -_081AB1B2: - ldr r0, =0x00000834 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _081AB1E4 - .pool -_081AB1CC: - bl sub_8122328 - ldr r0, [r4] - ldr r1, =0x00000834 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - movs r0, 0x1 - b _081AB1E6 - .pool -_081AB1E4: - movs r0, 0 -_081AB1E6: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end load_bag_menu_graphics - - thumb_func_start sub_81AB1F0 -sub_81AB1F0: @ 81AB1F0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xA - bne _081AB204 - ldr r0, =Task_WallyTutorialBagMenu - b _081AB206 - .pool -_081AB204: - ldr r0, =Task_BagMenu -_081AB206: - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81AB1F0 - - thumb_func_start allocate_bag_item_list_buffers -allocate_bag_item_list_buffers: @ 81AB218 - push {r4,lr} - ldr r4, =gUnknown_0203CE74 - movs r0, 0x82 - lsls r0, 2 - bl Alloc - str r0, [r4] - ldr r4, =gUnknown_0203CE78 - movs r0, 0xC3 - lsls r0, 3 - bl Alloc - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end allocate_bag_item_list_buffers - - thumb_func_start load_bag_item_list_buffers -@ void load_bag_item_list_buffers(int pocket_id) -load_bag_item_list_buffers: @ 81AB240 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, r7, 3 - ldr r0, =gUnknown_02039DD8 - adds r1, r0 - mov r8, r1 - ldr r0, =gUnknown_0203CE54 - ldr r2, [r0] - ldr r1, =0x0000081b - adds r0, r2, r1 - ldrb r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081AB2FC - movs r6, 0 - ldr r3, =0x00000829 - adds r0, r2, r3 - adds r0, r7 - ldrb r0, [r0] - subs r0, 0x1 - cmp r6, r0 - bge _081AB2B6 - ldr r5, =gUnknown_0203CE78 -_081AB276: - lsls r4, r6, 1 - adds r4, r6 - lsls r4, 3 - ldr r0, [r5] - adds r0, r4 - mov r1, r8 - ldr r2, [r1] - lsls r1, r6, 2 - adds r1, r2 - ldrh r1, [r1] - bl get_name - ldr r0, =gUnknown_0203CE74 - ldr r0, [r0] - lsls r1, r6, 3 - adds r1, r0 - ldr r0, [r5] - adds r0, r4 - str r0, [r1] - str r6, [r1, 0x4] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, =gUnknown_0203CE54 - ldr r0, [r0] - ldr r3, =0x00000829 - adds r0, r3 - adds r0, r7 - ldrb r0, [r0] - subs r0, 0x1 - cmp r6, r0 - blt _081AB276 -_081AB2B6: - ldr r5, =gUnknown_0203CE78 - lsls r4, r6, 1 - adds r4, r6 - lsls r4, 3 - ldr r0, [r5] - adds r0, r4 - ldr r1, =gUnknown_085E8DB4 - bl StringCopy - ldr r0, =gUnknown_0203CE74 - ldr r0, [r0] - lsls r1, r6, 3 - adds r1, r0 - ldr r0, [r5] - adds r0, r4 - str r0, [r1] - movs r0, 0x2 - negs r0, r0 - str r0, [r1, 0x4] - b _081AB34A - .pool -_081AB2FC: - movs r6, 0 - ldr r4, =0x00000829 - adds r0, r2, r4 - adds r0, r7 - ldrb r0, [r0] - cmp r6, r0 - bcs _081AB34A - ldr r5, =gUnknown_0203CE78 -_081AB30C: - lsls r4, r6, 1 - adds r4, r6 - lsls r4, 3 - ldr r0, [r5] - adds r0, r4 - mov r1, r8 - ldr r2, [r1] - lsls r1, r6, 2 - adds r1, r2 - ldrh r1, [r1] - bl get_name - ldr r0, =gUnknown_0203CE74 - ldr r0, [r0] - lsls r1, r6, 3 - adds r1, r0 - ldr r0, [r5] - adds r0, r4 - str r0, [r1] - str r6, [r1, 0x4] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, =gUnknown_0203CE54 - ldr r0, [r0] - ldr r3, =0x00000829 - adds r0, r3 - adds r0, r7 - ldrb r0, [r0] - cmp r6, r0 - bcc _081AB30C -_081AB34A: - ldr r2, =gUnknown_03006310 - adds r1, r2, 0 - ldr r0, =gUnknown_08613F9C - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldr r0, =gUnknown_0203CE54 - ldr r1, [r0] - ldr r4, =0x00000829 - adds r0, r1, r4 - adds r0, r7 - ldrb r0, [r0] - strh r0, [r2, 0xC] - ldr r0, =gUnknown_0203CE74 - ldr r0, [r0] - str r0, [r2] - ldr r5, =0x0000082e - adds r1, r5 - adds r1, r7 - ldrb r0, [r1] - strh r0, [r2, 0xE] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end load_bag_item_list_buffers - - thumb_func_start get_name -@ void get_name(char *dest, int name_id) -get_name: @ 81AB39C - push {r4-r6,lr} - adds r6, r0, 0 - lsls r1, 16 - lsrs r5, r1, 16 - ldr r0, =gUnknown_0203CE58 - ldrb r0, [r0, 0x5] - cmp r0, 0x2 - beq _081AB3C0 - cmp r0, 0x3 - beq _081AB420 - adds r0, r5, 0 - adds r1, r6, 0 - bl itemid_get_name - b _081AB43E - .pool -_081AB3C0: - ldr r4, =gStringVar2 - adds r0, r5, 0 - bl ItemIdToBattleMoveId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xD - muls r1, r0 - ldr r0, =gMoveNames - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - movs r0, 0xA9 - lsls r0, 1 - cmp r5, r0 - bls _081AB408 - ldr r0, =gStringVar1 - ldr r2, =0xfffffeae - adds r1, r5, r2 - movs r2, 0x2 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - ldr r1, =gUnknown_085E921A - b _081AB438 - .pool -_081AB408: - ldr r0, =gStringVar1 - ldr r2, =0xfffffee0 - adds r1, r5, r2 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - b _081AB436 - .pool -_081AB420: - ldr r0, =gStringVar1 - adds r1, r5, 0 - subs r1, 0x84 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r1, =gStringVar2 - adds r0, r5, 0 - bl itemid_get_name -_081AB436: - ldr r1, =gUnknown_085E9210 -_081AB438: - adds r0, r6, 0 - bl StringExpandPlaceholders -_081AB43E: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end get_name - - thumb_func_start bag_menu_change_item_callback -bag_menu_change_item_callback: @ 81AB450 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x1 - beq _081AB466 - movs r0, 0x5 - bl audio_play - bl ShakeBagVisual -_081AB466: - ldr r4, =gUnknown_0203CE54 - ldr r1, [r4] - ldr r2, =0x0000081a - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0xFF - bne _081AB50C - adds r2, 0x1 - adds r0, r1, r2 - ldrb r1, [r0] - lsls r1, 26 - lsrs r1, 30 - movs r0, 0x1 - eors r0, r1 - bl RemoveBagItemIconObject - movs r0, 0x2 - negs r0, r0 - cmp r6, r0 - beq _081AB4C8 - ldr r0, =gUnknown_0203CE58 - ldrb r0, [r0, 0x5] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r6, 16 - lsrs r1, 16 - bl bag_pocket_get_itemid - lsls r0, 16 - lsrs r0, 16 - ldr r1, [r4] - ldr r2, =0x0000081b - adds r1, r2 - ldrb r1, [r1] - lsls r1, 26 - lsrs r1, 30 - bl AddBagItemIconObject - b _081AB4DA - .pool -_081AB4C8: - ldr r0, =0x0000ffff - ldr r1, [r4] - ldr r2, =0x0000081b - adds r1, r2 - ldrb r1, [r1] - lsls r1, 26 - lsrs r1, 30 - bl AddBagItemIconObject -_081AB4DA: - ldr r5, =gUnknown_0203CE54 - ldr r2, [r5] - ldr r4, =0x0000081b - adds r2, r4 - ldrb r3, [r2] - lsls r0, r3, 26 - lsrs r0, 30 - movs r1, 0x1 - eors r1, r0 - lsls r1, 4 - movs r0, 0x31 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r5] - adds r0, r4 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _081AB50C - adds r0, r6, 0 - bl bag_menu_print_description_box_text -_081AB50C: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end bag_menu_change_item_callback - - thumb_func_start sub_81AB520 -@ void sub_81AB520(u8 rbox_id, int item_index_in_pocket, int a3) -sub_81AB520: @ 81AB520 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r2, 24 - lsrs r7, r2, 24 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - bne _081AB540 - b _081AB696 -_081AB540: - ldr r0, =gUnknown_0203CE54 - ldr r0, [r0] - ldr r1, =0x0000081a - adds r0, r1 - ldrb r1, [r0] - cmp r1, 0xFF - beq _081AB570 - lsls r0, r4, 24 - lsrs r0, 24 - cmp r1, r0 - bne _081AB568 - adds r0, r7, 0 - movs r1, 0x2 - bl bag_menu_print_cursor - b _081AB570 - .pool -_081AB568: - adds r0, r7, 0 - movs r1, 0xFF - bl bag_menu_print_cursor -_081AB570: - ldr r5, =gUnknown_0203CE58 - ldrb r0, [r5, 0x5] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - adds r1, r4, 0 - bl bag_pocket_get_itemid - lsls r0, 16 - lsrs r6, r0, 16 - ldrb r0, [r5, 0x5] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - bl bag_pocket_get_item_quantity - lsls r0, 16 - lsrs r4, r0, 16 - mov r9, r4 - ldr r1, =0xfffffead - adds r0, r6, r1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7 - bhi _081AB5BE - ldr r1, =gUnknown_08DC6378 - subs r3, r7, 0x1 - lsls r3, 16 - lsrs r3, 16 - movs r0, 0x10 - str r0, [sp] - str r0, [sp, 0x4] - mov r0, r8 - movs r2, 0x8 - bl BlitBitmapToWindow -_081AB5BE: - ldrb r0, [r5, 0x5] - cmp r0, 0x3 - bne _081AB610 - ldr r0, =gStringVar1 - adds r1, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E8DA0 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x7 - adds r1, r4, 0 - movs r2, 0x77 - bl GetStringRightAlignXOffset - lsls r3, r0, 24 - lsrs r3, 24 - str r7, [sp] - movs r1, 0 - str r1, [sp, 0x4] - str r1, [sp, 0x8] - movs r0, 0xFF - str r0, [sp, 0xC] - str r1, [sp, 0x10] - b _081AB652 - .pool -_081AB610: - cmp r0, 0x4 - beq _081AB66C - adds r0, r6, 0 - bl itemid_is_unique - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _081AB66C - ldr r0, =gStringVar1 - mov r1, r9 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E8DA0 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x7 - adds r1, r4, 0 - movs r2, 0x77 - bl GetStringRightAlignXOffset - lsls r3, r0, 24 - lsrs r3, 24 - str r7, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0xFF - str r0, [sp, 0xC] - str r5, [sp, 0x10] -_081AB652: - mov r0, r8 - movs r1, 0x7 - adds r2, r4, 0 - bl bag_menu_print - b _081AB696 - .pool -_081AB66C: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00000496 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _081AB696 - cmp r0, r6 - bne _081AB696 - ldr r1, =gUnknown_086140A4 - subs r3, r7, 0x1 - lsls r3, 16 - lsrs r3, 16 - movs r0, 0x18 - str r0, [sp] - movs r0, 0x10 - str r0, [sp, 0x4] - mov r0, r8 - movs r2, 0x60 - bl BlitBitmapToWindow -_081AB696: - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AB520 - - thumb_func_start bag_menu_print_description_box_text -@ void bag_menu_print_description_box_text(int a1) -bag_menu_print_description_box_text: @ 81AB6B0 - push {r4,lr} - sub sp, 0x14 - adds r1, r0, 0 - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _081AB6E0 - ldr r0, =gUnknown_0203CE58 - ldrb r0, [r0, 0x5] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - bl bag_pocket_get_itemid - lsls r0, 16 - lsrs r0, 16 - bl itemid_get_description - adds r4, r0, 0 - b _081AB6FC - .pool -_081AB6E0: - ldr r0, =gStringVar1 - ldr r2, =gUnknown_085E9180 - ldr r1, =gUnknown_0203CE58 - ldrb r1, [r1, 0x4] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E91C0 - adds r0, r4, 0 - bl StringExpandPlaceholders -_081AB6FC: - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x1 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0x3 - bl bag_menu_print - add sp, 0x14 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end bag_menu_print_description_box_text - - thumb_func_start bag_menu_print_cursor_ -bag_menu_print_cursor_: @ 81AB73C - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - bl ListMenuGetYCoordForPrintingArrowCursor - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - bl bag_menu_print_cursor - pop {r4} - pop {r0} - bx r0 - thumb_func_end bag_menu_print_cursor_ - - thumb_func_start bag_menu_print_cursor -bag_menu_print_cursor: @ 81AB75C - push {r4,r5,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0xFF - bne _081AB798 - movs r0, 0x1 - movs r1, 0 - bl GetMenuCursorDimensionByFont - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - movs r1, 0x1 - bl GetMenuCursorDimensionByFont - lsls r0, 24 - lsrs r0, 24 - str r4, [sp] - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - adds r3, r5, 0 - bl FillWindowPixelRect - b _081AB7AE -_081AB798: - ldr r2, =gUnknown_085E8D60 - str r5, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r1, [sp, 0x10] - movs r1, 0x1 - movs r3, 0 - bl bag_menu_print -_081AB7AE: - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end bag_menu_print_cursor - - thumb_func_start bag_menu_add_pocket_scroll_arrow_indicators_maybe -bag_menu_add_pocket_scroll_arrow_indicators_maybe: @ 81AB7BC - push {r4-r6,lr} - sub sp, 0x10 - ldr r5, =gUnknown_0203CE54 - ldr r4, [r5] - ldr r1, =0x0000081e - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _081AB80A - ldr r2, =gUnknown_0203CE58 - ldrb r3, [r2, 0x5] - ldr r6, =0x00000829 - adds r0, r4, r6 - adds r0, r3 - ldrb r1, [r0] - adds r6, 0x5 - adds r0, r4, r6 - adds r0, r3 - ldrb r0, [r0] - subs r1, r0 - str r1, [sp] - movs r0, 0x6E - str r0, [sp, 0x4] - str r0, [sp, 0x8] - ldrb r0, [r2, 0x5] - lsls r0, 1 - adds r2, 0x12 - adds r0, r2 - str r0, [sp, 0xC] - movs r0, 0x2 - movs r1, 0xAC - movs r2, 0xC - movs r3, 0x94 - bl AddScrollIndicatorArrowPairParametrized - ldr r1, [r5] - ldr r2, =0x0000081e - adds r1, r2 - strb r0, [r1] -_081AB80A: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end bag_menu_add_pocket_scroll_arrow_indicators_maybe - - thumb_func_start sub_81AB824 -sub_81AB824: @ 81AB824 - push {r4,lr} - ldr r4, =gUnknown_0203CE54 - ldr r0, [r4] - ldr r2, =0x0000081e - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0xFF - beq _081AB842 - bl RemoveScrollIndicatorArrowPair - ldr r0, [r4] - ldr r1, =0x0000081e - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] -_081AB842: - bl sub_81AB89C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AB824 - - thumb_func_start bag_menu_add_list_scroll_arrow_indicators_maybe -bag_menu_add_list_scroll_arrow_indicators_maybe: @ 81AB854 - push {r4,lr} - ldr r4, =gUnknown_0203CE54 - ldr r2, [r4] - ldr r1, =0x0000081b - adds r0, r2, r1 - ldrb r1, [r0] - movs r0, 0xF - ands r0, r1 - cmp r0, 0x1 - beq _081AB882 - ldr r1, =0x0000081f - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _081AB882 - ldr r0, =gUnknown_08614094 - ldr r1, =gUnknown_0203CE5E - bl AddScrollIndicatorArrowPair - ldr r1, [r4] - ldr r2, =0x0000081f - adds r1, r2 - strb r0, [r1] -_081AB882: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end bag_menu_add_list_scroll_arrow_indicators_maybe - - thumb_func_start sub_81AB89C -sub_81AB89C: @ 81AB89C - push {r4,lr} - ldr r4, =gUnknown_0203CE54 - ldr r0, [r4] - ldr r2, =0x0000081f - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0xFF - beq _081AB8BA - bl RemoveScrollIndicatorArrowPair - ldr r0, [r4] - ldr r1, =0x0000081f - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] -_081AB8BA: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AB89C - - thumb_func_start free_bag_item_list_buffers -free_bag_item_list_buffers: @ 81AB8C8 - push {lr} - ldr r0, =gUnknown_0203CE78 - ldr r0, [r0] - bl Free - ldr r0, =gUnknown_0203CE74 - ldr r0, [r0] - bl Free - bl FreeAllWindowBuffers - ldr r0, =gUnknown_0203CE54 - ldr r0, [r0] - bl Free - pop {r0} - bx r0 - .pool - thumb_func_end free_bag_item_list_buffers - - thumb_func_start unknown_ItemMenu_Confirm -unknown_ItemMenu_Confirm: @ 81AB8F8 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =task_close_bag_menu_2 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end unknown_ItemMenu_Confirm - - thumb_func_start task_close_bag_menu_2 -task_close_bag_menu_2: @ 81AB930 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r2, r0, r1 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081AB9A0 - ldrb r0, [r2] - ldr r4, =gUnknown_0203CE58 - ldrb r2, [r4, 0x5] - lsls r2, 1 - adds r1, r4, 0 - adds r1, 0x12 - adds r1, r2, r1 - adds r3, r4, 0 - adds r3, 0x8 - adds r2, r3 - bl sub_81AE6C8 - ldr r0, =gUnknown_0203CE54 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0 - beq _081AB984 - bl SetMainCallback2 - b _081AB98A - .pool -_081AB984: - ldr r0, [r4] - bl SetMainCallback2 -_081AB98A: - bl sub_81AB824 - bl ResetAllObjectData - bl ResetObjectPaletteAllocator - bl free_bag_item_list_buffers - adds r0, r5, 0 - bl DestroyTask -_081AB9A0: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end task_close_bag_menu_2 - - thumb_func_start sub_81AB9A8 -sub_81AB9A8: @ 81AB9A8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, r5, 3 - ldr r0, =gUnknown_02039DD8 - adds r4, r1, r0 - cmp r5, 0x3 - bgt _081AB9C8 - cmp r5, 0x2 - blt _081AB9C8 - adds r0, r4, 0 - bl sub_80D6FB4 - b _081AB9CE - .pool -_081AB9C8: - adds r0, r4, 0 - bl sub_80D6F64 -_081AB9CE: - ldr r0, =gUnknown_0203CE54 - ldr r1, [r0] - ldr r6, =0x00000829 - adds r1, r6 - adds r1, r5 - movs r2, 0 - strb r2, [r1] - adds r3, r0, 0 - ldrb r0, [r4, 0x4] - cmp r2, r0 - bcs _081ABA12 - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, 0 - beq _081ABA12 - adds r7, r3, 0 -_081AB9EE: - ldr r0, [r7] - adds r0, r6 - adds r0, r5 - ldrb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrb r1, [r4, 0x4] - cmp r2, r1 - bcs _081ABA12 - ldr r0, [r4] - lsls r1, r2, 2 - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - bne _081AB9EE -_081ABA12: - ldr r2, [r3] - ldr r1, =0x0000081b - adds r0, r2, r1 - ldrb r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081ABA2E - ldr r0, =0x00000829 - adds r1, r2, r0 - adds r1, r5 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_081ABA2E: - ldr r1, [r3] - ldr r2, =0x00000829 - adds r0, r1, r2 - adds r0, r5 - ldrb r2, [r0] - cmp r2, 0x8 - bls _081ABA58 - ldr r3, =0x0000082e - adds r0, r1, r3 - adds r0, r5 - movs r1, 0x8 - strb r1, [r0] - b _081ABA60 - .pool -_081ABA58: - ldr r3, =0x0000082e - adds r0, r1, r3 - adds r0, r5 - strb r2, [r0] -_081ABA60: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AB9A8 - - thumb_func_start sub_81ABA6C -sub_81ABA6C: @ 81ABA6C - push {r4,lr} - movs r4, 0 -_081ABA70: - adds r0, r4, 0 - bl sub_81AB9A8 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _081ABA70 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81ABA6C - - thumb_func_start sub_81ABA88 -sub_81ABA88: @ 81ABA88 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - ldr r2, =gUnknown_0203CE6A - adds r4, r1, r2 - subs r2, 0xA - adds r1, r2 - ldr r2, =gUnknown_0203CE54 - ldr r3, [r2] - ldr r5, =0x0000082e - adds r2, r3, r5 - adds r2, r0 - ldrb r2, [r2] - subs r5, 0x5 - adds r3, r5 - adds r3, r0 - ldrb r3, [r3] - adds r0, r4, 0 - bl sub_812225C - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81ABA88 - - thumb_func_start sub_81ABAC4 -sub_81ABAC4: @ 81ABAC4 - push {r4,lr} - movs r4, 0 -_081ABAC8: - adds r0, r4, 0 - bl sub_81ABA88 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _081ABAC8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81ABAC4 - - thumb_func_start sub_81ABAE0 -sub_81ABAE0: @ 81ABAE0 - push {r4-r7,lr} - sub sp, 0x4 - movs r5, 0 - ldr r6, =gUnknown_0203CE6A - adds r7, r6, 0 - subs r7, 0xA -_081ABAEC: - lsls r1, r5, 1 - adds r0, r1, r6 - adds r1, r7 - ldr r2, =gUnknown_0203CE54 - ldr r3, [r2] - ldr r4, =0x0000082e - adds r2, r3, r4 - adds r2, r5 - ldrb r2, [r2] - subs r4, 0x5 - adds r3, r4 - adds r3, r5 - ldrb r3, [r3] - movs r4, 0x8 - str r4, [sp] - bl sub_8122298 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bls _081ABAEC - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81ABAE0 - - thumb_func_start sub_81ABB2C -sub_81ABB2C: @ 81ABB2C - lsls r0, 24 - ldr r1, =gUnknown_0203CE58 - lsrs r0, 23 - adds r2, r1, 0 - adds r2, 0x12 - adds r2, r0, r2 - adds r1, 0x8 - adds r0, r1 - ldrb r0, [r0] - ldrb r2, [r2] - adds r0, r2 - lsls r0, 24 - lsrs r0, 24 - bx lr - .pool - thumb_func_end sub_81ABB2C - - thumb_func_start DisplayItemMessage -@ void DisplayItemMessage(u8 taskId, u8 fontId, u8 *str, void ( *callback)(u8 taskId)) -DisplayItemMessage: @ 81ABB4C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x10 - adds r5, r0, 0 - adds r6, r1, 0 - mov r8, r2 - mov r9, r3 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - movs r0, 0x4 - bl AddItemMessageWindow - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x14] - movs r1, 0x11 - bl FillWindowPixelBuffer - bl sav2_get_text_speed - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r4, 0x14] - str r6, [sp] - str r0, [sp, 0x4] - mov r0, r8 - str r0, [sp, 0x8] - mov r0, r9 - str r0, [sp, 0xC] - adds r0, r5, 0 - movs r2, 0xA - movs r3, 0xD - bl DisplayMessageAndContinueTask - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end DisplayItemMessage - - thumb_func_start bag_menu_inits_lists_menu -bag_menu_inits_lists_menu: @ 81ABBBC - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r5, r6, 2 - adds r5, r6 - lsls r5, 3 - ldr r0, =gTasks + 0x8 - adds r5, r0 - ldr r7, =gUnknown_0203CE58 - ldrb r4, [r7, 0x5] - lsls r4, 1 - movs r0, 0x12 - adds r0, r7 - mov r8, r0 - add r8, r4 - adds r0, r7, 0 - adds r0, 0x8 - adds r4, r0 - movs r0, 0x4 - bl bag_menu_remove_item_message_window - ldrb r0, [r5] - mov r1, r8 - adds r2, r4, 0 - bl sub_81AE6C8 - ldrb r0, [r7, 0x5] - bl sub_81AB9A8 - ldrb r0, [r7, 0x5] - bl sub_81ABA88 - ldrb r0, [r7, 0x5] - bl load_bag_item_list_buffers - ldr r0, =gUnknown_03006310 - mov r2, r8 - ldrh r1, [r2] - ldrh r2, [r4] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r6, 0 - bl set_callback3_to_bag - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end bag_menu_inits_lists_menu - - thumb_func_start sub_81ABC3C -sub_81ABC3C: @ 81ABC3C - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl bag_menu_add_window - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl sub_81ABC54 - pop {r0} - bx r0 - thumb_func_end sub_81ABC3C - - thumb_func_start sub_81ABC54 -sub_81ABC54: @ 81ABC54 - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 16 - lsrs r1, 16 - ldr r0, =gUnknown_0203CE58 - ldrb r0, [r0, 0x5] - movs r3, 0x2 - cmp r0, 0x3 - bne _081ABC6C - movs r3, 0x3 -_081ABC6C: - ldr r0, =gStringVar1 - lsls r1, 16 - asrs r1, 16 - movs r2, 0x2 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E8DA0 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x28 - bl GetStringCenterAlignXOffset - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x2 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - adds r0, r5, 0 - movs r1, 0x1 - adds r2, r4, 0 - bl Print - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81ABC54 - - thumb_func_start sub_81ABCC0 -sub_81ABCC0: @ 81ABCC0 - push {r4-r7,lr} - sub sp, 0xC - adds r4, r0, 0 - adds r7, r2, 0 - ldr r0, =gUnknown_0203CE58 - ldrb r0, [r0, 0x5] - movs r3, 0x2 - cmp r0, 0x3 - bne _081ABCD4 - movs r3, 0x3 -_081ABCD4: - ldr r0, =gStringVar1 - movs r2, 0x2 - bl ConvertIntToDecimalStringN - ldr r6, =gStringVar4 - ldr r1, =gUnknown_085E8DA0 - adds r0, r6, 0 - bl StringExpandPlaceholders - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r5, 0 - str r5, [sp, 0x8] - adds r0, r4, 0 - movs r1, 0x1 - adds r2, r6, 0 - movs r3, 0 - bl Print - str r5, [sp] - adds r0, r4, 0 - movs r1, 0x26 - movs r2, 0x1 - adds r3, r7, 0 - bl PrintMoneyAmount - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81ABCC0 - - thumb_func_start Task_BagMenu -Task_BagMenu: @ 81ABD28 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r0, 2 - add r0, r9 - lsls r0, 3 - str r0, [sp] - ldr r1, =gTasks + 0x8 - adds r6, r0, r1 - ldr r5, =gUnknown_0203CE58 - ldrb r0, [r5, 0x5] - lsls r0, 1 - adds r1, r5, 0 - adds r1, 0x12 - adds r7, r0, r1 - subs r1, 0xA - adds r0, r1 - mov r8, r0 - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081ABD66 - b _081ABEB2 -_081ABD66: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081ABD74 - b _081ABEB2 -_081ABD74: - bl GetSwitchBagPocketDirection - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081ABDB8 - cmp r0, 0x2 - beq _081ABDC0 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x4 - ands r0, r1 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - cmp r0, 0 - beq _081ABE10 - bl sub_81AC2C0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081ABDA4 - b _081ABEB2 -_081ABDA4: - b _081ABDCC - .pool -_081ABDB8: - movs r1, 0x1 - negs r1, r1 - mov r0, r9 - b _081ABDC4 -_081ABDC0: - mov r0, r9 - movs r1, 0x1 -_081ABDC4: - movs r2, 0 - bl SwitchBagPocket - b _081ABEB2 -_081ABDCC: - ldrb r0, [r6] - adds r1, r7, 0 - mov r2, r8 - bl get_coro_args_x18_x1A - ldrh r2, [r7] - mov r3, r8 - ldrh r0, [r3] - adds r2, r0 - ldr r0, =gUnknown_0203CE54 - ldr r0, [r0] - ldr r1, =gUnknown_0203CE58 - ldr r3, =0x00000829 - adds r0, r3 - ldrb r1, [r1, 0x5] - adds r0, r1 - ldrb r0, [r0] - subs r0, 0x1 - cmp r2, r0 - beq _081ABEB2 - movs r0, 0x5 - bl audio_play - mov r0, r9 - bl bag_menu_swap_items - b _081ABEB2 - .pool -_081ABE10: - ldrb r0, [r6] - bl ListMenuHandleInput - adds r4, r0, 0 - ldrb r0, [r6] - adds r1, r7, 0 - mov r2, r8 - bl get_coro_args_x18_x1A - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _081ABE32 - adds r0, 0x1 - cmp r4, r0 - bne _081ABE68 - b _081ABEB2 -_081ABE32: - ldrb r0, [r5, 0x4] - cmp r0, 0x5 - bne _081ABE40 - movs r0, 0x20 - bl audio_play - b _081ABEB2 -_081ABE40: - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_0203CE7C - mov r1, r10 - strh r1, [r0] - ldr r0, =gTasks + 0x8 - subs r0, 0x8 - ldr r3, [sp] - adds r0, r3, r0 - ldr r1, =unknown_ItemMenu_Confirm - str r1, [r0] - b _081ABEB2 - .pool -_081ABE68: - movs r0, 0x5 - bl audio_play - bl sub_81AB824 - ldrb r0, [r6] - movs r1, 0x2 - bl bag_menu_print_cursor_ - strh r4, [r6, 0x2] - ldrb r0, [r5, 0x5] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - adds r1, r4, 0 - bl bag_pocket_get_item_quantity - strh r0, [r6, 0x4] - ldrb r0, [r5, 0x5] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - bl bag_pocket_get_itemid - ldr r1, =gUnknown_0203CE7C - strh r0, [r1] - ldr r1, =gUnknown_08614054 - ldrb r0, [r5, 0x4] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - mov r0, r9 - bl _call_via_r1 -_081ABEB2: - 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 Task_BagMenu - - thumb_func_start set_callback3_to_bag -set_callback3_to_bag: @ 81ABECC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl bag_menu_add_pocket_scroll_arrow_indicators_maybe - bl bag_menu_add_list_scroll_arrow_indicators_maybe - movs r0, 0x3 - bl ClearWindowTilemap - movs r0, 0x4 - bl ClearWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =Task_BagMenu - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end set_callback3_to_bag - - thumb_func_start GetSwitchBagPocketDirection -GetSwitchBagPocketDirection: @ 81ABF10 - push {lr} - ldr r0, =gUnknown_0203CE54 - ldr r0, [r0] - ldr r1, =0x0000081b - adds r0, r1 - ldrb r1, [r0] - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - bne _081ABF6A - bl GetLRKeysState - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _081ABF3C - cmp r2, 0x1 - bne _081ABF54 -_081ABF3C: - movs r0, 0x5 - bl audio_play - movs r0, 0x1 - b _081ABF6C - .pool -_081ABF54: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _081ABF60 - cmp r2, 0x2 - bne _081ABF6A -_081ABF60: - movs r0, 0x5 - bl audio_play - movs r0, 0x2 - b _081ABF6C -_081ABF6A: - movs r0, 0 -_081ABF6C: - pop {r1} - bx r1 - thumb_func_end GetSwitchBagPocketDirection - - thumb_func_start ChangeBagPocketId -@ void ChangeBagPocketId(u8 *bagPocketId, u8 deltaBagPocketId) -ChangeBagPocketId: @ 81ABF70 - push {r4,lr} - adds r2, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - asrs r1, 24 - cmp r1, 0x1 - bne _081ABF88 - ldrb r0, [r2] - cmp r0, 0x4 - bne _081ABF88 - movs r0, 0 - b _081ABFA0 -_081ABF88: - lsls r0, r4, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - ldrb r3, [r2] - cmp r0, r1 - bne _081ABF9E - cmp r3, 0 - bne _081ABF9E - movs r0, 0x4 - b _081ABFA0 -_081ABF9E: - adds r0, r3, r4 -_081ABFA0: - strb r0, [r2] - pop {r4} - pop {r0} - bx r0 - thumb_func_end ChangeBagPocketId - - thumb_func_start SwitchBagPocket -@ void SwitchBagPocket(u8 taskId, u16 deltaBagPocketId, u16 a3) -SwitchBagPocket: @ 81ABFA8 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 16 - lsrs r5, r1, 16 - lsls r2, 16 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - movs r0, 0 - strh r0, [r4, 0x1A] - strh r0, [r4, 0x18] - strh r5, [r4, 0x16] - cmp r2, 0 - bne _081AC026 - movs r0, 0 - bl ClearWindowTilemap - movs r0, 0x1 - bl ClearWindowTilemap - ldrb r0, [r4] - ldr r3, =gUnknown_0203CE58 - ldrb r2, [r3, 0x5] - lsls r2, 1 - adds r1, r3, 0 - adds r1, 0x12 - adds r1, r2, r1 - adds r3, 0x8 - adds r2, r3 - bl sub_81AE6C8 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - ldr r3, =gUnknown_02020630 - ldr r0, =gUnknown_0203CE54 - ldr r2, [r0] - ldr r1, =0x0000081b - adds r0, r2, r1 - ldrb r1, [r0] - lsls r1, 26 - lsrs r1, 30 - movs r0, 0x1 - eors r0, r1 - adds r2, r0 - ldr r0, =0x00000806 - adds r2, r0 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - bl sub_81AB824 -_081AC026: - ldr r4, =gUnknown_0203CE58 - ldrb r1, [r4, 0x5] - add r0, sp, 0x8 - strb r1, [r0] - lsls r1, r5, 24 - asrs r1, 24 - bl ChangeBagPocketId - lsls r0, r5, 16 - asrs r1, r0, 16 - adds r5, r0, 0 - cmp r1, 0x1 - bne _081AC07C - ldr r2, =gUnknown_085E91FC - ldrb r0, [r4, 0x5] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - add r1, sp, 0x8 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl bag_menu_print_pocket_names - movs r0, 0 - bl bag_menu_copy_pocket_name_to_window - b _081AC09A - .pool -_081AC07C: - ldr r2, =gUnknown_085E91FC - add r0, sp, 0x8 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ldrb r1, [r4, 0x5] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl bag_menu_print_pocket_names - movs r0, 0x8 - bl bag_menu_copy_pocket_name_to_window -_081AC09A: - ldr r0, =gUnknown_0203CE58 - ldrb r0, [r0, 0x5] - movs r1, 0 - bl bag_menu_draw_pocket_indicator_square - add r0, sp, 0x8 - ldrb r0, [r0] - movs r1, 0x1 - bl bag_menu_draw_pocket_indicator_square - movs r0, 0xF - str r0, [sp] - movs r0, 0x10 - str r0, [sp, 0x4] - movs r0, 0x2 - movs r1, 0xB - movs r2, 0xE - movs r3, 0x2 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - add r0, sp, 0x8 - ldrb r0, [r0] - movs r1, 0x1 - bl SetBagVisualPocketId - movs r0, 0x1 - bl RemoveBagObject - asrs r0, r5, 16 - bl AddSwitchPocketRotatingBallObject - ldr r1, =sub_81AC10C - ldr r2, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r2 - ldr r2, [r0] - adds r0, r6, 0 - bl SetTaskFuncWithFollowupFunc - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end SwitchBagPocket - - thumb_func_start sub_81AC10C -sub_81AC10C: @ 81AC10C - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r6, r0, r1 - bl sub_81221AC - lsls r0, 24 - cmp r0, 0 - bne _081AC184 - bl IsWallysBag - lsls r0, 24 - cmp r0, 0 - bne _081AC184 - bl GetSwitchBagPocketDirection - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081AC148 - cmp r0, 0x2 - beq _081AC164 - b _081AC184 - .pool -_081AC148: - ldr r0, =gUnknown_0203CE5D - movs r1, 0x16 - ldrsb r1, [r6, r1] - bl ChangeBagPocketId - adds r0, r7, 0 - bl SwitchTaskToFollowupFunc - movs r1, 0x1 - negs r1, r1 - adds r0, r7, 0 - b _081AC178 - .pool -_081AC164: - ldr r0, =gUnknown_0203CE5D - movs r1, 0x16 - ldrsb r1, [r6, r1] - bl ChangeBagPocketId - adds r0, r7, 0 - bl SwitchTaskToFollowupFunc - adds r0, r7, 0 - movs r1, 0x1 -_081AC178: - movs r2, 0x1 - bl SwitchBagPocket - b _081AC22E - .pool -_081AC184: - movs r1, 0x1A - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _081AC192 - cmp r0, 0x1 - beq _081AC1DC - b _081AC22E -_081AC192: - ldrb r0, [r6, 0x18] - bl sub_81AC23C - ldrh r0, [r6, 0x18] - adds r1, r0, 0x1 - strh r1, [r6, 0x18] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081AC1CC - movs r2, 0x16 - ldrsh r0, [r6, r2] - cmp r0, 0x1 - bne _081AC1BC - lsls r0, r1, 16 - asrs r0, 17 - lsls r0, 24 - lsrs r0, 24 - bl bag_menu_copy_pocket_name_to_window - b _081AC1CC -_081AC1BC: - lsls r1, 16 - asrs r1, 17 - movs r0, 0x8 - subs r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl bag_menu_copy_pocket_name_to_window -_081AC1CC: - movs r1, 0x18 - ldrsh r0, [r6, r1] - cmp r0, 0x10 - bne _081AC22E - ldrh r0, [r6, 0x1A] - adds r0, 0x1 - strh r0, [r6, 0x1A] - b _081AC22E -_081AC1DC: - ldr r4, =gUnknown_0203CE5D - movs r1, 0x16 - ldrsb r1, [r6, r1] - adds r0, r4, 0 - bl ChangeBagPocketId - subs r5, r4, 0x5 - ldrb r0, [r5, 0x5] - bl load_bag_item_list_buffers - ldr r0, =gUnknown_03006310 - ldrb r2, [r5, 0x5] - lsls r2, 1 - adds r1, r4, 0 - adds r1, 0xD - adds r1, r2, r1 - ldrh r1, [r1] - adds r4, 0x3 - adds r2, r4 - ldrh r2, [r2] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6] - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x2 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - bl bag_menu_add_pocket_scroll_arrow_indicators_maybe - bl bag_menu_add_list_scroll_arrow_indicators_maybe - adds r0, r7, 0 - bl SwitchTaskToFollowupFunc -_081AC22E: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AC10C - - thumb_func_start sub_81AC23C -sub_81AC23C: @ 81AC23C - push {lr} - sub sp, 0x8 - adds r3, r0, 0 - lsls r3, 24 - movs r0, 0x80 - lsls r0, 18 - adds r3, r0 - lsrs r3, 24 - movs r0, 0xF - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r0, 0x2 - movs r1, 0x11 - movs r2, 0xE - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_81AC23C - - thumb_func_start bag_menu_draw_pocket_indicator_square -@ void bag_menu_draw_pocket_indicator_square(char x, int is_current_bag) -bag_menu_draw_pocket_indicator_square: @ 81AC26C - push {lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - cmp r1, 0 - bne _081AC298 - ldr r1, =0x00001017 - adds r2, r0, 0x5 - lsls r2, 24 - lsrs r2, 24 - movs r0, 0x1 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x2 - movs r3, 0x3 - bl FillBgTilemapBufferRect_Palette0 - b _081AC2AE - .pool -_081AC298: - ldr r1, =0x0000102b - adds r2, r0, 0x5 - lsls r2, 24 - lsrs r2, 24 - movs r0, 0x1 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x2 - movs r3, 0x3 - bl FillBgTilemapBufferRect_Palette0 -_081AC2AE: - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x8 - pop {r0} - bx r0 - .pool - thumb_func_end bag_menu_draw_pocket_indicator_square - - thumb_func_start sub_81AC2C0 -sub_81AC2C0: @ 81AC2C0 - push {lr} - ldr r1, =gUnknown_0203CE58 - ldrb r0, [r1, 0x4] - cmp r0, 0x1 - bhi _081AC2E0 - ldrb r0, [r1, 0x5] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _081AC2E0 - movs r0, 0x1 - b _081AC2E2 - .pool -_081AC2E0: - movs r0, 0 -_081AC2E2: - pop {r1} - bx r1 - thumb_func_end sub_81AC2C0 - - thumb_func_start bag_menu_swap_items -bag_menu_swap_items: @ 81AC2E8 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - mov r9, r0 - adds r6, r4, r0 - ldrb r0, [r6] - movs r1, 0x10 - movs r2, 0x1 - bl sub_81AF15C - ldr r3, =gUnknown_0203CE58 - ldrb r0, [r3, 0x5] - lsls r0, 1 - adds r2, r3, 0 - adds r2, 0x12 - adds r2, r0, r2 - adds r1, r3, 0 - adds r1, 0x8 - adds r0, r1 - ldrh r1, [r0] - ldrh r2, [r2] - adds r1, r2 - strh r1, [r6, 0x2] - ldr r0, =gUnknown_0203CE54 - ldr r0, [r0] - ldr r2, =0x0000081a - adds r0, r2 - movs r5, 0 - strb r1, [r0] - ldrb r0, [r3, 0x5] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x2] - bl bag_pocket_get_itemid - lsls r0, 16 - lsrs r0, 16 - ldr r1, =gStringVar1 - bl itemid_get_name - ldr r0, =gStringVar4 - mov r8, r0 - ldr r1, =gUnknown_085E8DFE - bl StringExpandPlaceholders - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x1 - str r0, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - str r5, [sp, 0xC] - str r5, [sp, 0x10] - movs r1, 0x1 - mov r2, r8 - movs r3, 0x3 - bl bag_menu_print - ldrb r0, [r6, 0x2] - bl sub_80D4FEC - bl sub_81AB89C - ldrb r0, [r6] - movs r1, 0x2 - bl bag_menu_print_cursor_ - movs r2, 0x8 - negs r2, r2 - add r9, r2 - add r4, r9 - ldr r0, =sub_81AC3C0 - str r0, [r4] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end bag_menu_swap_items - - thumb_func_start sub_81AC3C0 -@ void sub_81AC3C0(u8 taskId) -sub_81AC3C0: @ 81AC3C0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081AC48E - ldr r0, =gMain - mov r8, r0 - ldrh r1, [r0, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _081AC418 - movs r0, 0x5 - bl audio_play - ldrb r0, [r4] - ldr r3, =gUnknown_0203CE58 - ldrb r2, [r3, 0x5] - lsls r2, 1 - adds r1, r3, 0 - adds r1, 0x12 - adds r1, r2, r1 - adds r3, 0x8 - adds r2, r3 - bl get_coro_args_x18_x1A - b _081AC472 - .pool -_081AC418: - ldrb r0, [r4] - bl ListMenuHandleInput - adds r7, r0, 0 - ldrb r0, [r4] - ldr r5, =gUnknown_0203CE58 - ldrb r2, [r5, 0x5] - lsls r2, 1 - adds r1, r5, 0 - adds r1, 0x12 - adds r1, r2, r1 - adds r4, r5, 0 - adds r4, 0x8 - adds r2, r4 - bl get_coro_args_x18_x1A - movs r0, 0 - bl sub_80D4FC8 - ldrb r0, [r5, 0x5] - lsls r0, 1 - adds r0, r4 - ldrb r0, [r0] - bl sub_80D4FEC - movs r0, 0x2 - negs r0, r0 - cmp r7, r0 - beq _081AC460 - adds r0, 0x1 - cmp r7, r0 - bne _081AC482 - b _081AC48E - .pool -_081AC460: - movs r0, 0x5 - bl audio_play - mov r0, r8 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081AC47A -_081AC472: - adds r0, r6, 0 - bl sub_81AC498 - b _081AC48E -_081AC47A: - adds r0, r6, 0 - bl sub_81AC590 - b _081AC48E -_081AC482: - movs r0, 0x5 - bl audio_play - adds r0, r6, 0 - bl sub_81AC498 -_081AC48E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81AC3C0 - - thumb_func_start sub_81AC498 -sub_81AC498: @ 81AC498 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - mov r10, r0 - ldr r0, =gTasks + 0x8 - add r0, r10 - mov r9, r0 - ldr r5, =gUnknown_0203CE58 - ldrb r6, [r5, 0x5] - lsls r1, r6, 1 - adds r0, r5, 0 - adds r0, 0x12 - adds r0, r1 - mov r8, r0 - ldr r2, =gUnknown_0203CE60 - adds r7, r1, r2 - ldrh r0, [r7] - mov r1, r8 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r4, r0, 16 - mov r0, r9 - movs r1, 0x2 - ldrsh r2, [r0, r1] - cmp r2, r4 - beq _081AC4E2 - subs r0, r4, 0x1 - cmp r2, r0 - bne _081AC4F8 -_081AC4E2: - adds r0, r3, 0 - bl sub_81AC590 - b _081AC566 - .pool -_081AC4F8: - ldr r1, =gUnknown_02039DD8 - lsls r0, r6, 3 - adds r0, r1 - ldr r0, [r0] - adds r1, r2, 0 - adds r2, r4, 0 - bl sub_80D702C - ldr r0, =gUnknown_0203CE54 - ldr r0, [r0] - ldr r2, =0x0000081a - adds r0, r2 - movs r1, 0xFF - strb r1, [r0] - mov r1, r9 - ldrb r0, [r1] - mov r1, r8 - adds r2, r7, 0 - bl sub_81AE6C8 - mov r2, r9 - movs r1, 0x2 - ldrsh r0, [r2, r1] - cmp r0, r4 - bge _081AC538 - ldrb r1, [r5, 0x5] - lsls r1, 1 - ldr r2, =gUnknown_0203CE60 - adds r1, r2 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] -_081AC538: - ldrb r0, [r5, 0x5] - bl load_bag_item_list_buffers - ldr r0, =gUnknown_03006310 - mov r2, r8 - ldrh r1, [r2] - ldrh r2, [r7] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - mov r1, r9 - strh r0, [r1] - movs r0, 0x1 - bl sub_80D4FC8 - bl bag_menu_add_list_scroll_arrow_indicators_maybe - ldr r0, =gTasks + 0x8 - subs r0, 0x8 - add r0, r10 - ldr r1, =Task_BagMenu - str r1, [r0] -_081AC566: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AC498 - - thumb_func_start sub_81AC590 -sub_81AC590: @ 81AC590 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - mov r9, r1 - ldr r0, =gTasks + 0x8 - mov r10, r0 - mov r7, r9 - add r7, r10 - ldr r4, =gUnknown_0203CE58 - ldrb r0, [r4, 0x5] - lsls r0, 1 - adds r1, r4, 0 - adds r1, 0x12 - adds r6, r0, r1 - movs r1, 0x8 - adds r1, r4 - mov r8, r1 - adds r5, r0, r1 - ldr r0, =gUnknown_0203CE54 - ldr r0, [r0] - ldr r1, =0x0000081a - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - ldrb r0, [r7] - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_81AE6C8 - movs r0, 0x2 - ldrsh r2, [r7, r0] - ldrh r0, [r6] - ldrh r1, [r5] - adds r0, r1 - cmp r2, r0 - bge _081AC5F2 - ldrb r1, [r4, 0x5] - lsls r1, 1 - add r1, r8 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] -_081AC5F2: - ldrb r0, [r4, 0x5] - bl load_bag_item_list_buffers - ldr r0, =gUnknown_03006310 - ldrh r1, [r6] - ldrh r2, [r5] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7] - movs r0, 0x1 - bl sub_80D4FC8 - bl bag_menu_add_list_scroll_arrow_indicators_maybe - mov r0, r10 - subs r0, 0x8 - add r0, r9 - ldr r1, =Task_BagMenu - str r1, [r0] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AC590 - - thumb_func_start sub_81AC644 -sub_81AC644: @ 81AC644 - push {r4,r5,lr} - sub sp, 0x14 - ldr r0, =gUnknown_0203CE58 - ldrb r0, [r0, 0x4] - subs r0, 0x1 - cmp r0, 0x9 - bls _081AC654 - b _081AC82C -_081AC654: - lsls r0, 2 - ldr r1, =_081AC668 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081AC668: - .4byte _081AC690 - .4byte _081AC82C - .4byte _081AC82C - .4byte _081AC82C - .4byte _081AC6E8 - .4byte _081AC82C - .4byte _081AC76C - .4byte _081AC7CC - .4byte _081AC70C - .4byte _081AC690 -_081AC690: - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - bl itemid_get_usage - lsls r0, 24 - cmp r0, 0 - beq _081AC6C4 - ldr r0, =gUnknown_0203CE54 - ldr r1, [r0] - movs r0, 0x82 - lsls r0, 4 - adds r2, r1, r0 - ldr r0, =gUnknown_08614042 - str r0, [r2] - ldr r0, =0x00000828 - adds r1, r0 - movs r0, 0x2 - b _081ACA10 - .pool -_081AC6C4: - ldr r0, =gUnknown_0203CE54 - ldr r1, [r0] - movs r0, 0x82 - lsls r0, 4 - adds r2, r1, r0 - ldr r0, =gUnknown_08614046 - str r0, [r2] - ldr r0, =0x00000828 - adds r1, r0 - movs r0, 0x1 - b _081ACA10 - .pool -_081AC6E8: - ldr r0, =gUnknown_0203CE54 - ldr r1, [r0] - movs r0, 0x82 - lsls r0, 4 - adds r2, r1, r0 - ldr r0, =gUnknown_08614047 - str r0, [r2] - ldr r0, =0x00000828 - adds r1, r0 - movs r0, 0x4 - b _081ACA10 - .pool -_081AC70C: - ldr r4, =gUnknown_0203CE7C - ldrh r0, [r4] - bl itemid_is_unique - lsls r0, 24 - cmp r0, 0 - bne _081AC748 - ldrh r0, [r4] - cmp r0, 0xAF - beq _081AC748 - ldr r0, =gUnknown_0203CE54 - ldr r1, [r0] - movs r0, 0x82 - lsls r0, 4 - adds r2, r1, r0 - ldr r0, =gUnknown_0861404B - str r0, [r2] - ldr r0, =0x00000828 - adds r1, r0 - movs r0, 0x2 - b _081ACA10 - .pool -_081AC748: - ldr r0, =gUnknown_0203CE54 - ldr r1, [r0] - movs r0, 0x82 - lsls r0, 4 - adds r2, r1, r0 - ldr r0, =gUnknown_08614046 - str r0, [r2] - ldr r0, =0x00000828 - adds r1, r0 - movs r0, 0x1 - b _081ACA10 - .pool -_081AC76C: - ldr r4, =gUnknown_0203CE7C - ldrh r0, [r4] - bl itemid_is_unique - lsls r0, 24 - cmp r0, 0 - bne _081AC7A8 - ldrh r0, [r4] - cmp r0, 0xAF - beq _081AC7A8 - ldr r0, =gUnknown_0203CE54 - ldr r1, [r0] - movs r0, 0x82 - lsls r0, 4 - adds r2, r1, r0 - ldr r0, =gUnknown_0861404D - str r0, [r2] - ldr r0, =0x00000828 - adds r1, r0 - movs r0, 0x2 - b _081ACA10 - .pool -_081AC7A8: - ldr r0, =gUnknown_0203CE54 - ldr r1, [r0] - movs r0, 0x82 - lsls r0, 4 - adds r2, r1, r0 - ldr r0, =gUnknown_08614046 - str r0, [r2] - ldr r0, =0x00000828 - adds r1, r0 - movs r0, 0x1 - b _081ACA10 - .pool -_081AC7CC: - ldr r4, =gUnknown_0203CE7C - ldrh r0, [r4] - bl itemid_is_unique - lsls r0, 24 - cmp r0, 0 - bne _081AC808 - ldrh r0, [r4] - cmp r0, 0xAF - beq _081AC808 - ldr r0, =gUnknown_0203CE54 - ldr r1, [r0] - movs r0, 0x82 - lsls r0, 4 - adds r2, r1, r0 - ldr r0, =gUnknown_0861404F - str r0, [r2] - ldr r0, =0x00000828 - adds r1, r0 - movs r0, 0x2 - b _081ACA10 - .pool -_081AC808: - ldr r0, =gUnknown_0203CE54 - ldr r1, [r0] - movs r0, 0x82 - lsls r0, 4 - adds r2, r1, r0 - ldr r0, =gUnknown_08614046 - str r0, [r2] - ldr r0, =0x00000828 - adds r1, r0 - movs r0, 0x1 - b _081ACA10 - .pool -_081AC82C: - bl sub_81221AC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081AC840 - bl InUnionRoom - cmp r0, 0x1 - bne _081AC8A4 -_081AC840: - ldr r0, =gUnknown_0203CE58 - ldrb r0, [r0, 0x5] - cmp r0, 0x4 - beq _081AC856 - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - bl sub_8122148 - lsls r0, 24 - cmp r0, 0 - bne _081AC880 -_081AC856: - ldr r0, =gUnknown_0203CE54 - ldr r1, [r0] - movs r0, 0x82 - lsls r0, 4 - adds r2, r1, r0 - ldr r0, =gUnknown_08614046 - str r0, [r2] - ldr r0, =0x00000828 - adds r1, r0 - movs r0, 0x1 - b _081ACA10 - .pool -_081AC880: - ldr r0, =gUnknown_0203CE54 - ldr r1, [r0] - movs r0, 0x82 - lsls r0, 4 - adds r2, r1, r0 - ldr r0, =gUnknown_08614044 - str r0, [r2] - ldr r0, =0x00000828 - adds r1, r0 - movs r0, 0x2 - b _081ACA10 - .pool -_081AC8A4: - ldr r0, =gUnknown_0203CE58 - ldrb r0, [r0, 0x5] - cmp r0, 0x4 - bls _081AC8AE - b _081ACA12 -_081AC8AE: - lsls r0, 2 - ldr r1, =_081AC8C0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081AC8C0: - .4byte _081AC8D4 - .4byte _081AC9B4 - .4byte _081AC9D8 - .4byte _081AC9FC - .4byte _081AC92C -_081AC8D4: - ldr r4, =gUnknown_0203CE54 - ldr r1, [r4] - movs r0, 0x82 - lsls r0, 4 - adds r2, r1, r0 - ldr r3, =0x00000824 - adds r0, r1, r3 - str r0, [r2] - ldr r0, =0x00000828 - adds r1, r0 - movs r0, 0x4 - strb r0, [r1] - ldr r0, [r4] - adds r0, r3 - ldr r1, =gUnknown_0861402C - movs r2, 0x4 - bl memcpy - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - bl itemid_is_mail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081AC90A - b _081ACA12 -_081AC90A: - ldr r0, [r4] - ldr r1, =0x00000824 - adds r0, r1 - movs r1, 0x6 - strb r1, [r0] - b _081ACA12 - .pool -_081AC92C: - ldr r4, =gUnknown_0203CE54 - ldr r1, [r4] - movs r0, 0x82 - lsls r0, 4 - adds r2, r1, r0 - ldr r5, =0x00000824 - adds r0, r1, r5 - str r0, [r2] - ldr r0, =0x00000828 - adds r1, r0 - movs r0, 0x4 - strb r0, [r1] - ldr r0, [r4] - adds r0, r5 - ldr r1, =gUnknown_08614030 - movs r2, 0x4 - bl memcpy - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00000496 - adds r0, r1 - ldr r2, =gUnknown_0203CE7C - ldrh r0, [r0] - ldrh r1, [r2] - cmp r0, r1 - bne _081AC96C - ldr r0, [r4] - ldr r1, =0x00000825 - adds r0, r1 - movs r1, 0x8 - strb r1, [r0] -_081AC96C: - ldrh r1, [r2] - ldr r0, =0x00000103 - cmp r1, r0 - beq _081AC97A - adds r0, 0xD - cmp r1, r0 - bne _081ACA12 -_081AC97A: - movs r0, 0x6 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - beq _081ACA12 - ldr r0, [r4] - adds r0, r5 - movs r1, 0x7 - strb r1, [r0] - b _081ACA12 - .pool -_081AC9B4: - ldr r0, =gUnknown_0203CE54 - ldr r1, [r0] - movs r0, 0x82 - lsls r0, 4 - adds r2, r1, r0 - ldr r0, =gUnknown_08614034 - str r0, [r2] - ldr r0, =0x00000828 - adds r1, r0 - movs r0, 0x4 - b _081ACA10 - .pool -_081AC9D8: - ldr r0, =gUnknown_0203CE54 - ldr r1, [r0] - movs r0, 0x82 - lsls r0, 4 - adds r2, r1, r0 - ldr r0, =gUnknown_08614038 - str r0, [r2] - ldr r0, =0x00000828 - adds r1, r0 - movs r0, 0x4 - b _081ACA10 - .pool -_081AC9FC: - ldr r0, =gUnknown_0203CE54 - ldr r1, [r0] - movs r0, 0x82 - lsls r0, 4 - adds r2, r1, r0 - ldr r0, =gUnknown_0861403C - str r0, [r2] - ldr r0, =0x00000828 - adds r1, r0 - movs r0, 0x6 -_081ACA10: - strb r0, [r1] -_081ACA12: - ldr r0, =gUnknown_0203CE58 - ldrb r0, [r0, 0x5] - cmp r0, 0x2 - bne _081ACA50 - movs r0, 0x1 - bl ClearWindowTilemap - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - bl PrintTMHMMoveData - movs r0, 0x3 - bl PutWindowTilemap - movs r0, 0x4 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - b _081ACA86 - .pool -_081ACA50: - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - ldr r1, =gStringVar1 - bl itemid_get_name - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E8DBE - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x1 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0x3 - bl bag_menu_print -_081ACA86: - ldr r0, =gUnknown_0203CE54 - ldr r0, [r0] - ldr r1, =0x00000828 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _081ACAB0 - movs r0, 0 - b _081ACAB6 - .pool -_081ACAB0: - cmp r0, 0x2 - bne _081ACAC4 - movs r0, 0x1 -_081ACAB6: - bl bag_menu_add_window - lsls r0, 24 - lsrs r0, 24 - bl sub_81ACAF8 - b _081ACAEE -_081ACAC4: - cmp r0, 0x4 - bne _081ACADC - movs r0, 0x2 - bl bag_menu_add_window - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - movs r2, 0x2 - bl sub_81ACB54 - b _081ACAEE -_081ACADC: - movs r0, 0x3 - bl bag_menu_add_window - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - movs r2, 0x3 - bl sub_81ACB54 -_081ACAEE: - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81AC644 - - thumb_func_start sub_81ACAF8 -sub_81ACAF8: @ 81ACAF8 - push {r4-r6,lr} - sub sp, 0x14 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - str r0, [sp] - movs r0, 0x10 - str r0, [sp, 0x4] - ldr r6, =gUnknown_0203CE54 - ldr r1, [r6] - ldr r5, =0x00000828 - adds r0, r1, r5 - ldrb r0, [r0] - str r0, [sp, 0x8] - ldr r0, =gUnknown_08613FB4 - str r0, [sp, 0xC] - movs r0, 0x82 - lsls r0, 4 - adds r1, r0 - ldr r0, [r1] - str r0, [sp, 0x10] - adds r0, r4, 0 - movs r1, 0x7 - movs r2, 0x8 - movs r3, 0x1 - bl AddItemMenuActionTextPrinters - ldr r0, [r6] - adds r0, r5 - ldrb r1, [r0] - adds r0, r4, 0 - movs r2, 0 - bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81ACAF8 - - thumb_func_start sub_81ACB54 -sub_81ACB54: @ 81ACB54 - push {r4-r6,lr} - sub sp, 0x14 - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - movs r0, 0x38 - str r0, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - ldr r0, =gUnknown_08613FB4 - str r0, [sp, 0xC] - ldr r0, =gUnknown_0203CE54 - ldr r0, [r0] - movs r1, 0x82 - lsls r1, 4 - adds r0, r1 - ldr r0, [r0] - str r0, [sp, 0x10] - adds r0, r4, 0 - movs r1, 0x7 - movs r2, 0x8 - movs r3, 0x1 - bl sub_8198DBC - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0x38 - adds r2, r5, 0 - adds r3, r6, 0 - bl sub_8199944 - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81ACB54 - - thumb_func_start unknown_item_menu_type -unknown_item_menu_type: @ 81ACBB0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_81AC644 - ldr r0, =gUnknown_0203CE54 - ldr r0, [r0] - ldr r1, =0x00000828 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x2 - bhi _081ACBE8 - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =Task_HandleInBattleItemMenuInput - b _081ACBF4 - .pool -_081ACBE8: - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =Task_HandleOutOfBattleItemMenuInput -_081ACBF4: - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end unknown_item_menu_type - - thumb_func_start Task_HandleInBattleItemMenuInput -Task_HandleInBattleItemMenuInput: @ 81ACC04 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081ACC6A - bl ProcessMenuInputNoWrapAround - lsls r0, 24 - asrs r4, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _081ACC6A - adds r0, 0x1 - cmp r4, r0 - bne _081ACC44 - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_08613FB4 - ldr r1, [r0, 0x24] - adds r0, r5, 0 - bl _call_via_r1 - b _081ACC6A - .pool -_081ACC44: - movs r0, 0x5 - bl audio_play - ldr r1, =gUnknown_08613FB4 - ldr r0, =gUnknown_0203CE54 - ldr r0, [r0] - movs r2, 0x82 - lsls r2, 4 - adds r0, r2 - ldr r0, [r0] - adds r0, r4 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r6, 0 - bl _call_via_r1 -_081ACC6A: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end Task_HandleInBattleItemMenuInput - - thumb_func_start Task_HandleOutOfBattleItemMenuInput -Task_HandleOutOfBattleItemMenuInput: @ 81ACC78 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081ACC8C - b _081ACDF0 -_081ACC8C: - bl GetMenuCursorPos - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, =gMain - ldrh r1, [r5, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081ACCD4 - lsls r0, r4, 24 - asrs r0, 24 - cmp r0, 0 - bgt _081ACCAA - b _081ACDF0 -_081ACCAA: - subs r0, 0x2 - lsls r0, 24 - asrs r0, 24 - bl sub_81ACDFC - lsls r0, 24 - cmp r0, 0 - bne _081ACCBC - b _081ACDF0 -_081ACCBC: - movs r0, 0x5 - bl audio_play - movs r1, 0x1 - negs r1, r1 - movs r0, 0 - bl sub_8199134 - b _081ACDF0 - .pool -_081ACCD4: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081ACD1C - lsls r0, r4, 24 - asrs r1, r0, 24 - ldr r0, =gUnknown_0203CE54 - ldr r0, [r0] - ldr r2, =0x00000828 - adds r0, r2 - ldrb r0, [r0] - subs r0, 0x2 - cmp r1, r0 - blt _081ACCF2 - b _081ACDF0 -_081ACCF2: - adds r0, r1, 0x2 - lsls r0, 24 - asrs r0, 24 - bl sub_81ACDFC - lsls r0, 24 - cmp r0, 0 - beq _081ACDF0 - movs r0, 0x5 - bl audio_play - movs r0, 0 - movs r1, 0x1 - bl sub_8199134 - b _081ACDF0 - .pool -_081ACD1C: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _081ACD30 - bl GetLRKeysState - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081ACD58 -_081ACD30: - lsls r0, r4, 24 - asrs r1, r0, 24 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081ACDF0 - subs r0, r1, 0x1 - lsls r0, 24 - asrs r0, 24 - bl sub_81ACDFC - lsls r0, 24 - cmp r0, 0 - beq _081ACDF0 - movs r0, 0x5 - bl audio_play - movs r0, 0x1 - negs r0, r0 - b _081ACD92 -_081ACD58: - ldrh r1, [r5, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _081ACD6E - bl GetLRKeysState - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _081ACD9A -_081ACD6E: - lsls r0, r4, 24 - asrs r1, r0, 24 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081ACDF0 - adds r0, r1, 0x1 - lsls r0, 24 - asrs r0, 24 - bl sub_81ACDFC - lsls r0, 24 - cmp r0, 0 - beq _081ACDF0 - movs r0, 0x5 - bl audio_play - movs r0, 0x1 -_081ACD92: - movs r1, 0 - bl sub_8199134 - b _081ACDF0 -_081ACD9A: - ldrh r1, [r5, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081ACDD8 - movs r0, 0x5 - bl audio_play - ldr r2, =gUnknown_08613FB4 - ldr r0, =gUnknown_0203CE54 - ldr r0, [r0] - lsls r1, r4, 24 - asrs r1, 24 - movs r3, 0x82 - lsls r3, 4 - adds r0, r3 - ldr r0, [r0] - adds r0, r1 - ldrb r0, [r0] - lsls r0, 3 - adds r2, 0x4 - adds r0, r2 - ldr r1, [r0] - adds r0, r6, 0 - bl _call_via_r1 - b _081ACDF0 - .pool -_081ACDD8: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081ACDF0 - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_08613FB4 - ldr r1, [r0, 0x24] - adds r0, r6, 0 - bl _call_via_r1 -_081ACDF0: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end Task_HandleOutOfBattleItemMenuInput - - thumb_func_start sub_81ACDFC -sub_81ACDFC: @ 81ACDFC - push {lr} - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - blt _081ACE30 - ldr r0, =gUnknown_0203CE54 - ldr r2, [r0] - ldr r3, =0x00000828 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r1, r0 - bgt _081ACE30 - movs r3, 0x82 - lsls r3, 4 - adds r0, r2, r3 - ldr r0, [r0] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xE - beq _081ACE30 - movs r0, 0x1 - b _081ACE32 - .pool -_081ACE30: - movs r0, 0 -_081ACE32: - pop {r1} - bx r1 - thumb_func_end sub_81ACDFC - - thumb_func_start bag_menu_remove_some_window -bag_menu_remove_some_window: @ 81ACE38 - push {lr} - ldr r0, =gUnknown_0203CE54 - ldr r0, [r0] - ldr r1, =0x00000828 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _081ACE58 - movs r0, 0 - bl bag_menu_remove_window - b _081ACE76 - .pool -_081ACE58: - cmp r0, 0x2 - bne _081ACE64 - movs r0, 0x1 - bl bag_menu_remove_window - b _081ACE76 -_081ACE64: - cmp r0, 0x4 - bne _081ACE70 - movs r0, 0x2 - bl bag_menu_remove_window - b _081ACE76 -_081ACE70: - movs r0, 0x3 - bl bag_menu_remove_window -_081ACE76: - pop {r0} - bx r0 - thumb_func_end bag_menu_remove_some_window - - thumb_func_start ItemMenu_UseOutOfBattle -@ void ItemMenu_UseOutOfBattle(u8 taskId) -ItemMenu_UseOutOfBattle: @ 81ACE7C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, =gUnknown_0203CE7C - ldrh r0, [r5] - bl itemid_get_overworld_function - cmp r0, 0 - beq _081ACEEE - bl bag_menu_remove_some_window - bl calc_player_party_count - lsls r0, 24 - cmp r0, 0 - bne _081ACEB8 - ldrh r0, [r5] - bl itemid_get_type - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081ACEB8 - adds r0, r4, 0 - bl bag_menu_print_there_is_no_pokemon - b _081ACEEE - .pool -_081ACEB8: - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, =gUnknown_0203CE58 - ldrb r0, [r0, 0x5] - cmp r0, 0x3 - beq _081ACEE8 - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - bl itemid_get_overworld_function - adds r1, r0, 0 - adds r0, r4, 0 - bl _call_via_r1 - b _081ACEEE - .pool -_081ACEE8: - adds r0, r4, 0 - bl sub_80FDD10 -_081ACEEE: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end ItemMenu_UseOutOfBattle - - thumb_func_start ItemMenu_Toss -ItemMenu_Toss: @ 81ACEF4 - push {r4-r7,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r6, r0, 3 - ldr r7, =gTasks + 0x8 - adds r4, r6, r7 - bl bag_menu_remove_some_window - movs r0, 0x1 - strh r0, [r4, 0x10] - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _081ACF24 - adds r0, r5, 0 - bl BagMenuConfirmToss - b _081ACF6A - .pool -_081ACF24: - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - ldr r1, =gStringVar1 - bl itemid_get_name - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E8EE0 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x1 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0x3 - bl bag_menu_print - movs r0, 0x7 - bl sub_81ABC3C - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, =Task_ChooseHowManyToToss - str r1, [r0] -_081ACF6A: - add sp, 0x14 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end ItemMenu_Toss - - thumb_func_start BagMenuConfirmToss -BagMenuConfirmToss: @ 81ACF88 - push {r4,r5,lr} - sub sp, 0x14 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - ldr r1, =gStringVar1 - bl itemid_get_name - ldr r0, =gStringVar2 - movs r2, 0x10 - ldrsh r1, [r4, r2] - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E8F0E - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x1 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0x3 - bl bag_menu_print - ldr r2, =gUnknown_08614084 - adds r0, r5, 0 - movs r1, 0x5 - bl bag_menu_yes_no - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end BagMenuConfirmToss - - thumb_func_start BagMenuCancelToss -BagMenuCancelToss: @ 81AD010 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - movs r1, 0x2 - ldrsh r0, [r4, r1] - bl bag_menu_print_description_box_text - ldrb r0, [r4] - movs r1, 0 - bl bag_menu_print_cursor_ - adds r0, r5, 0 - bl set_callback3_to_bag - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end BagMenuCancelToss - - thumb_func_start Task_ChooseHowManyToToss -Task_ChooseHowManyToToss: @ 81AD044 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - adds r0, r4, 0 - adds r0, 0x10 - ldrh r1, [r4, 0x4] - bl AdjustQuantityAccordingToDPadInput - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081AD088 - ldr r0, =gUnknown_0203CE54 - ldr r0, [r0] - ldr r1, =0x00000817 - adds r0, r1 - ldrb r0, [r0] - movs r2, 0x10 - ldrsh r1, [r4, r2] - bl sub_81ABC54 - b _081AD0C6 - .pool -_081AD088: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081AD0AC - movs r0, 0x5 - bl audio_play - movs r0, 0x7 - bl bag_menu_remove_window - adds r0, r5, 0 - bl BagMenuConfirmToss - b _081AD0C6 - .pool -_081AD0AC: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081AD0C6 - movs r0, 0x5 - bl audio_play - movs r0, 0x7 - bl bag_menu_remove_window - adds r0, r6, 0 - bl BagMenuCancelToss -_081AD0C6: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end Task_ChooseHowManyToToss - - thumb_func_start BagMenuActuallyToss -BagMenuActuallyToss: @ 81AD0CC - push {r4-r6,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r5, =gTasks + 0x8 - adds r6, r4, r5 - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - ldr r1, =gStringVar1 - bl itemid_get_name - ldr r0, =gStringVar2 - movs r2, 0x10 - ldrsh r1, [r6, r2] - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r6, =gStringVar4 - ldr r1, =gUnknown_085E8EF9 - adds r0, r6, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x1 - movs r1, 0x1 - adds r2, r6, 0 - movs r3, 0x3 - bl bag_menu_print - subs r5, 0x8 - adds r4, r5 - ldr r0, =Task_ActuallyToss - str r0, [r4] - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end BagMenuActuallyToss - - thumb_func_start Task_ActuallyToss -Task_ActuallyToss: @ 81AD150 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r5, r0, r1 - ldr r4, =gUnknown_0203CE58 - ldrb r0, [r4, 0x5] - lsls r0, 1 - adds r1, r4, 0 - adds r1, 0x12 - adds r1, r0 - mov r8, r1 - adds r1, r4, 0 - adds r1, 0x8 - adds r7, r0, r1 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _081AD1CE - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - ldrh r1, [r5, 0x10] - bl remove_item - ldrb r0, [r5] - mov r1, r8 - adds r2, r7, 0 - bl sub_81AE6C8 - ldrb r0, [r4, 0x5] - bl sub_81AB9A8 - ldrb r0, [r4, 0x5] - bl sub_81ABA88 - ldrb r0, [r4, 0x5] - bl load_bag_item_list_buffers - ldr r0, =gUnknown_03006310 - mov r2, r8 - ldrh r1, [r2] - ldrh r2, [r7] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r6, 0 - bl set_callback3_to_bag -_081AD1CE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end Task_ActuallyToss - - thumb_func_start ItemMenu_Register -ItemMenu_Register: @ 81AD1EC - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r7, r0, r1 - ldr r0, =gUnknown_0203CE58 - ldrb r1, [r0, 0x5] - lsls r1, 1 - adds r2, r0, 0 - adds r2, 0x12 - adds r6, r1, r2 - adds r0, 0x8 - adds r5, r1, r0 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00000496 - adds r1, r0, r2 - ldr r0, =gUnknown_0203CE7C - ldrh r2, [r0] - ldrh r0, [r1] - cmp r0, r2 - bne _081AD238 - movs r0, 0 - strh r0, [r1] - b _081AD23A - .pool -_081AD238: - strh r2, [r1] -_081AD23A: - ldrb r0, [r7] - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_81AE6C8 - ldr r0, =gUnknown_0203CE58 - ldrb r0, [r0, 0x5] - bl load_bag_item_list_buffers - ldr r0, =gUnknown_03006310 - ldrh r1, [r6] - ldrh r2, [r5] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7] - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r4, 0 - bl ItemMenu_Cancel - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end ItemMenu_Register - - thumb_func_start ItemMenu_Give -ItemMenu_Give: @ 81AD278 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - bl bag_menu_remove_some_window - ldr r5, =gUnknown_0203CE7C - ldrh r0, [r5] - bl itemid_80BF6D8_mail_related - lsls r0, 24 - cmp r0, 0 - bne _081AD2AC - ldr r2, =gUnknown_085E8DCE - ldr r3, =sub_81AD350 - adds r0, r4, 0 - movs r1, 0x1 - bl DisplayItemMessage - b _081AD2EA - .pool -_081AD2AC: - ldrh r0, [r5] - bl itemid_is_unique - lsls r0, 24 - cmp r0, 0 - bne _081AD2E4 - bl calc_player_party_count - lsls r0, 24 - cmp r0, 0 - bne _081AD2CA - adds r0, r4, 0 - bl bag_menu_print_there_is_no_pokemon - b _081AD2EA -_081AD2CA: - ldr r0, =gUnknown_0203CE54 - ldr r1, [r0] - ldr r0, =sub_81B7F60 - str r0, [r1] - adds r0, r4, 0 - bl unknown_ItemMenu_Confirm - b _081AD2EA - .pool -_081AD2E4: - adds r0, r6, 0 - bl bag_menu_print_cant_be_held_msg -_081AD2EA: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end ItemMenu_Give - - thumb_func_start bag_menu_print_there_is_no_pokemon -bag_menu_print_there_is_no_pokemon: @ 81AD2F0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_085E8DE9 - ldr r3, =sub_81AD350 - movs r1, 0x1 - bl DisplayItemMessage - pop {r0} - bx r0 - .pool - thumb_func_end bag_menu_print_there_is_no_pokemon - - thumb_func_start bag_menu_print_cant_be_held_msg -bag_menu_print_cant_be_held_msg: @ 81AD30C - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - ldr r1, =gStringVar1 - bl itemid_get_name - ldr r5, =gStringVar4 - ldr r1, =gUnknown_085E8E11 - adds r0, r5, 0 - bl StringExpandPlaceholders - ldr r3, =sub_81AD350 - adds r0, r4, 0 - movs r1, 0x1 - adds r2, r5, 0 - bl DisplayItemMessage - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end bag_menu_print_cant_be_held_msg - - thumb_func_start sub_81AD350 -sub_81AD350: @ 81AD350 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081AD36E - movs r0, 0x5 - bl audio_play - adds r0, r4, 0 - bl bag_menu_inits_lists_menu -_081AD36E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AD350 - - thumb_func_start ItemMenu_CheckTag -ItemMenu_CheckTag: @ 81AD378 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0203CE54 - ldr r2, [r1] - ldr r1, =sub_8177C14 - str r1, [r2] - bl unknown_ItemMenu_Confirm - pop {r0} - bx r0 - .pool - thumb_func_end ItemMenu_CheckTag - - thumb_func_start ItemMenu_Cancel -ItemMenu_Cancel: @ 81AD398 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - bl bag_menu_remove_some_window - movs r1, 0x2 - ldrsh r0, [r4, r1] - bl bag_menu_print_description_box_text - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - ldrb r0, [r4] - movs r1, 0 - bl bag_menu_print_cursor_ - adds r0, r5, 0 - bl set_callback3_to_bag - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ItemMenu_Cancel - - thumb_func_start ItemMenu_UseInBattle -ItemMenu_UseInBattle: @ 81AD3DC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, =gUnknown_0203CE7C - ldrh r0, [r4] - bl itemid_get_battle_function - cmp r0, 0 - beq _081AD400 - bl bag_menu_remove_some_window - ldrh r0, [r4] - bl itemid_get_battle_function - adds r1, r0, 0 - adds r0, r5, 0 - bl _call_via_r1 -_081AD400: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ItemMenu_UseInBattle - - thumb_func_start bag_menu_mail_related -bag_menu_mail_related: @ 81AD40C - push {lr} - movs r0, 0xC - movs r1, 0x5 - movs r2, 0 - bl GoToBagMenu - pop {r0} - bx r0 - thumb_func_end bag_menu_mail_related - - thumb_func_start item_menu_type_2 -item_menu_type_2: @ 81AD41C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, =gUnknown_0203CE7C - ldrh r0, [r4] - bl itemid_80BF6D8_mail_related - lsls r0, 24 - cmp r0, 0 - bne _081AD44C - ldr r2, =gUnknown_085E8DCE - ldr r3, =sub_81AD350 - adds r0, r5, 0 - movs r1, 0x1 - bl DisplayItemMessage - b _081AD4AE - .pool -_081AD44C: - ldrh r0, [r4] - bl sub_8122148 - lsls r0, 24 - cmp r0, 0 - bne _081AD488 - ldrh r0, [r4] - ldr r1, =gStringVar1 - bl itemid_get_name - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E8E27 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r3, =sub_81AD350 - adds r0, r5, 0 - movs r1, 0x1 - adds r2, r4, 0 - bl DisplayItemMessage - b _081AD4AE - .pool -_081AD488: - ldr r0, =gUnknown_0203CE58 - ldrb r0, [r0, 0x5] - cmp r0, 0x4 - beq _081AD4A8 - ldrh r0, [r4] - bl itemid_is_unique - lsls r0, 24 - cmp r0, 0 - bne _081AD4A8 - adds r0, r5, 0 - bl unknown_ItemMenu_Confirm - b _081AD4AE - .pool -_081AD4A8: - adds r0, r5, 0 - bl bag_menu_print_cant_be_held_msg -_081AD4AE: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end item_menu_type_2 - - thumb_func_start item_menu_type_b -item_menu_type_b: @ 81AD4B4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, =gUnknown_0203CE7C - ldrh r0, [r5] - bl itemid_is_mail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081AD4E4 - ldr r2, =gUnknown_085E8DCE - ldr r3, =sub_81AD350 - adds r0, r4, 0 - movs r1, 0x1 - bl DisplayItemMessage - b _081AD51A - .pool -_081AD4E4: - ldr r0, =gUnknown_0203CE58 - ldrb r0, [r0, 0x5] - cmp r0, 0x4 - beq _081AD514 - ldrh r0, [r5] - bl itemid_is_unique - lsls r0, 24 - cmp r0, 0 - bne _081AD514 - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =unknown_ItemMenu_Confirm - str r0, [r1] - b _081AD51A - .pool -_081AD514: - adds r0, r4, 0 - bl bag_menu_print_cant_be_held_msg -_081AD51A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end item_menu_type_b - - thumb_func_start UseRegisteredKeyItemOnField -@ bool8 UseRegisteredKeyItemOnField() -UseRegisteredKeyItemOnField: @ 81AD520 - push {r4-r7,lr} - bl InUnionRoom - cmp r0, 0x1 - beq _081AD54C - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - bne _081AD54C - bl InBattlePike - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0 - bne _081AD54C - bl in_multi_battle_room_with_var_condition - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081AD550 -_081AD54C: - movs r0, 0 - b _081AD5D2 -_081AD550: - bl HideMapNamePopUpWindow - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY_ScreenOff - ldr r4, =gSaveBlock1Ptr - ldr r0, [r4] - ldr r5, =0x00000496 - adds r1, r0, r5 - ldrh r0, [r1] - cmp r0, 0 - beq _081AD5CA - movs r1, 0x1 - bl sub_80D6724 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x1 - bne _081AD5C4 - bl script_env_2_enable - bl player_bitmagic - bl sub_808B864 - bl sub_808BCF4 - ldr r2, =gUnknown_0203CE7C - ldr r0, [r4] - adds r0, r5 - ldrh r1, [r0] - strh r1, [r2] - ldrh r0, [r0] - bl itemid_get_overworld_function - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r6, [r1, 0xE] - b _081AD5D0 - .pool -_081AD5C4: - ldr r0, [r4] - adds r0, r5 - strh r7, [r0] -_081AD5CA: - ldr r0, =gUnknown_082736B3 - bl script_env_1_execute_new_script -_081AD5D0: - movs r0, 0x1 -_081AD5D2: - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end UseRegisteredKeyItemOnField - - thumb_func_start display_sell_item_ask_str -@ void display_sell_item_ask_str(int a1) -display_sell_item_ask_str: @ 81AD5DC - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r7, r5, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldr r6, =gUnknown_0203CE7C - ldrh r0, [r6] - bl itemid_get_market_price - lsls r0, 16 - cmp r0, 0 - bne _081AD634 - ldrh r0, [r6] - ldr r1, =gStringVar2 - bl itemid_get_name - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E960F - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r3, =bag_menu_inits_lists_menu - adds r0, r5, 0 - movs r1, 0x1 - adds r2, r4, 0 - bl DisplayItemMessage - b _081AD66A - .pool -_081AD634: - movs r0, 0x1 - strh r0, [r4, 0x10] - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _081AD64C - bl bag_menu_add_money_window - adds r0, r5, 0 - bl sub_81AD680 - b _081AD66A -_081AD64C: - ldrh r0, [r6] - ldr r1, =gStringVar2 - bl itemid_get_name - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E962F - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r3, =sub_81AD730 - adds r0, r7, 0 - movs r1, 0x1 - adds r2, r4, 0 - bl DisplayItemMessage -_081AD66A: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end display_sell_item_ask_str - - thumb_func_start sub_81AD680 -sub_81AD680: @ 81AD680 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - ldr r6, =gStringVar1 - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 17 - movs r2, 0x10 - ldrsh r1, [r4, r2] - muls r1, r0 - adds r0, r6, 0 - movs r2, 0 - movs r3, 0x6 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9654 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r3, =sub_81AD6E4 - adds r0, r5, 0 - movs r1, 0x1 - adds r2, r4, 0 - bl DisplayItemMessage - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AD680 - - thumb_func_start sub_81AD6E4 -sub_81AD6E4: @ 81AD6E4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_0861408C - movs r1, 0x6 - bl bag_menu_yes_no - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AD6E4 - - thumb_func_start sub_81AD6FC -sub_81AD6FC: @ 81AD6FC - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - bl bag_menu_remove_money_window - movs r0, 0x4 - bl bag_menu_remove_item_message_window - ldrb r0, [r4] - movs r1, 0 - bl bag_menu_print_cursor_ - adds r0, r5, 0 - bl set_callback3_to_bag - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AD6FC - - thumb_func_start sub_81AD730 -sub_81AD730: @ 81AD730 - push {r4-r6,lr} - mov r6, r8 - push {r6} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r6, =gTasks + 0x8 - adds r0, r4, r6 - mov r8, r0 - movs r0, 0x8 - bl bag_menu_add_window - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 17 - mov r2, r8 - movs r3, 0x10 - ldrsh r1, [r2, r3] - adds r2, r0, 0 - muls r2, r1 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_81ABCC0 - bl bag_menu_add_money_window - subs r6, 0x8 - adds r4, r6 - ldr r0, =sub_81AD794 - str r0, [r4] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AD730 - - thumb_func_start sub_81AD794 -sub_81AD794: @ 81AD794 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r6, r0, r1 - adds r0, r6, 0 - adds r0, 0x10 - ldrh r1, [r6, 0x4] - bl AdjustQuantityAccordingToDPadInput - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081AD7F4 - ldr r0, =gUnknown_0203CE54 - ldr r0, [r0] - ldr r1, =0x00000818 - adds r0, r1 - ldrb r4, [r0] - movs r2, 0x10 - ldrsh r5, [r6, r2] - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 17 - movs r2, 0x10 - ldrsh r1, [r6, r2] - adds r2, r0, 0 - muls r2, r1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_81ABCC0 - b _081AD844 - .pool -_081AD7F4: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081AD818 - movs r0, 0x5 - bl audio_play - movs r0, 0x8 - bl bag_menu_remove_window - adds r0, r4, 0 - bl sub_81AD680 - b _081AD844 - .pool -_081AD818: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081AD844 - movs r0, 0x5 - bl audio_play - ldrb r0, [r6] - movs r1, 0 - bl bag_menu_print_cursor_ - bl bag_menu_remove_money_window - movs r0, 0x8 - bl bag_menu_remove_window - movs r0, 0x4 - bl bag_menu_remove_item_message_window - adds r0, r5, 0 - bl set_callback3_to_bag -_081AD844: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81AD794 - - thumb_func_start sub_81AD84C -sub_81AD84C: @ 81AD84C - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - ldr r6, =gUnknown_0203CE7C - ldrh r0, [r6] - ldr r1, =gStringVar2 - bl itemid_get_name - ldr r0, =gStringVar1 - mov r8, r0 - ldrh r0, [r6] - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 17 - movs r2, 0x10 - ldrsh r1, [r4, r2] - muls r1, r0 - mov r0, r8 - movs r2, 0 - movs r3, 0x6 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9677 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r3, =sub_81AD8C8 - adds r0, r5, 0 - movs r1, 0x1 - adds r2, r4, 0 - bl DisplayItemMessage - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AD84C - - thumb_func_start sub_81AD8C8 -sub_81AD8C8: @ 81AD8C8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - lsls r6, r0, 2 - adds r6, r0 - lsls r6, 3 - ldr r0, =gTasks + 0x8 - adds r0, r6 - mov r10, r0 - ldr r7, =gUnknown_0203CE58 - ldrb r5, [r7, 0x5] - lsls r5, 1 - movs r1, 0x12 - adds r1, r7 - mov r9, r1 - add r9, r5 - adds r0, r7, 0 - adds r0, 0x8 - adds r5, r0 - movs r0, 0x5F - bl audio_play - ldr r2, =gUnknown_0203CE7C - mov r8, r2 - ldrh r0, [r2] - mov r3, r10 - ldrh r1, [r3, 0x10] - bl remove_item - ldr r0, =gSaveBlock1Ptr - ldr r4, [r0] - movs r1, 0x92 - lsls r1, 3 - adds r4, r1 - mov r2, r8 - ldrh r0, [r2] - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 17 - mov r3, r10 - movs r2, 0x10 - ldrsh r1, [r3, r2] - muls r1, r0 - adds r0, r4, 0 - bl add_money - mov r3, r10 - ldrb r0, [r3] - mov r1, r9 - adds r2, r5, 0 - bl sub_81AE6C8 - ldrb r0, [r7, 0x5] - bl sub_81AB9A8 - ldrb r0, [r7, 0x5] - bl sub_81ABA88 - ldrb r0, [r7, 0x5] - bl load_bag_item_list_buffers - ldr r0, =gUnknown_03006310 - mov r2, r9 - ldrh r1, [r2] - ldrh r2, [r5] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - mov r3, r10 - strh r0, [r3] - movs r1, 0x2 - bl bag_menu_print_cursor_ - ldr r0, =gUnknown_0203CE54 - ldr r0, [r0] - ldr r1, =0x00000819 - adds r0, r1 - ldrb r4, [r0] - ldr r2, =gSaveBlock1Ptr - ldr r0, [r2] - movs r3, 0x92 - lsls r3, 3 - adds r0, r3 - bl DecryptMoney - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0 - bl PrintMoneyAmountInMoneyBox - ldr r0, =gTasks + 0x8 - subs r0, 0x8 - adds r6, r0 - ldr r0, =sub_81AD9C0 - str r0, [r6] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AD8C8 - - thumb_func_start sub_81AD9C0 -sub_81AD9C0: @ 81AD9C0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _081AD9E2 - movs r0, 0x5 - bl audio_play - bl bag_menu_remove_money_window - adds r0, r4, 0 - bl bag_menu_inits_lists_menu -_081AD9E2: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AD9C0 - - thumb_func_start display_deposit_item_ask_str -display_deposit_item_ask_str: @ 81AD9EC - push {r4-r6,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r5, r0, 3 - ldr r6, =gTasks + 0x8 - adds r1, r5, r6 - movs r0, 0x1 - strh r0, [r1, 0x10] - movs r3, 0x4 - ldrsh r0, [r1, r3] - cmp r0, 0x1 - bne _081ADA18 - adds r0, r2, 0 - bl sub_81ADB14 - b _081ADA5E - .pool -_081ADA18: - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - ldr r1, =gStringVar1 - bl itemid_get_name - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E8E42 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x1 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0x3 - bl bag_menu_print - movs r0, 0x7 - bl sub_81ABC3C - adds r0, r6, 0 - subs r0, 0x8 - adds r0, r5, r0 - ldr r1, =sub_81ADA7C - str r1, [r0] -_081ADA5E: - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end display_deposit_item_ask_str - - thumb_func_start sub_81ADA7C -sub_81ADA7C: @ 81ADA7C - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r5, r0, r1 - adds r0, r5, 0 - adds r0, 0x10 - ldrh r1, [r5, 0x4] - bl AdjustQuantityAccordingToDPadInput - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081ADAC0 - ldr r0, =gUnknown_0203CE54 - ldr r0, [r0] - ldr r1, =0x00000817 - adds r0, r1 - ldrb r0, [r0] - movs r2, 0x10 - ldrsh r1, [r5, r2] - bl sub_81ABC54 - b _081ADB0E - .pool -_081ADAC0: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081ADAE4 - movs r0, 0x5 - bl audio_play - movs r0, 0x7 - bl bag_menu_remove_window - adds r0, r4, 0 - bl sub_81ADB14 - b _081ADB0E - .pool -_081ADAE4: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081ADB0E - movs r0, 0x5 - bl audio_play - movs r1, 0x2 - ldrsh r0, [r5, r1] - bl bag_menu_print_description_box_text - ldrb r0, [r5] - movs r1, 0 - bl bag_menu_print_cursor_ - movs r0, 0x7 - bl bag_menu_remove_window - adds r0, r6, 0 - bl set_callback3_to_bag -_081ADB0E: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81ADA7C - - thumb_func_start sub_81ADB14 -sub_81ADB14: @ 81ADB14 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r7, r1, 3 - ldr r0, =gTasks + 0x8 - mov r9, r0 - adds r2, r7, 0 - add r2, r9 - mov r8, r2 - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r4, =gUnknown_0203CE7C - ldrh r0, [r4] - bl itemid_is_unique - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - beq _081ADB6C - ldr r2, =gUnknown_085E8E8E - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x1 - b _081ADBE2 - .pool -_081ADB6C: - ldrh r0, [r4] - mov r3, r8 - ldrh r1, [r3, 0x10] - bl sub_80D6D70 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x1 - bne _081ADBD4 - ldrh r0, [r4] - ldr r1, =gStringVar1 - bl itemid_get_name - ldr r0, =gStringVar2 - mov r2, r8 - movs r3, 0x10 - ldrsh r1, [r2, r3] - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E8E5A - adds r0, r4, 0 - bl StringExpandPlaceholders - str r6, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - str r5, [sp, 0xC] - str r5, [sp, 0x10] - movs r0, 0x1 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0x3 - bl bag_menu_print - mov r0, r9 - subs r0, 0x8 - adds r0, r7, r0 - ldr r1, =Task_ActuallyToss - b _081ADBF2 - .pool -_081ADBD4: - ldr r2, =gUnknown_085E8E6E - movs r0, 0x1 - str r0, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - str r5, [sp, 0xC] - str r5, [sp, 0x10] -_081ADBE2: - movs r1, 0x1 - movs r3, 0x3 - bl bag_menu_print - mov r0, r9 - subs r0, 0x8 - adds r0, r7, r0 - ldr r1, =sub_81ADC0C -_081ADBF2: - str r1, [r0] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81ADB14 - - thumb_func_start sub_81ADC0C -sub_81ADC0C: @ 81ADC0C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r5, r0, r1 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _081ADC44 - movs r0, 0x5 - bl audio_play - movs r1, 0x2 - ldrsh r0, [r5, r1] - bl bag_menu_print_description_box_text - ldrb r0, [r5] - movs r1, 0 - bl bag_menu_print_cursor_ - adds r0, r4, 0 - bl set_callback3_to_bag -_081ADC44: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81ADC0C - - thumb_func_start IsWallysBag -@ bool8 IsWallysBag() -IsWallysBag: @ 81ADC54 - push {lr} - ldr r0, =gUnknown_0203CE58 - ldrb r0, [r0, 0x4] - cmp r0, 0xA - beq _081ADC68 - movs r0, 0 - b _081ADC6A - .pool -_081ADC68: - movs r0, 0x1 -_081ADC6A: - pop {r1} - bx r1 - thumb_func_end IsWallysBag - - thumb_func_start PrepareBagForWallyTutorial -@ void PrepareBagForWallyTutorial() -PrepareBagForWallyTutorial: @ 81ADC70 - push {r4-r6,lr} - ldr r4, =gUnknown_0203CE80 - movs r0, 0xD0 - bl AllocZeroed - str r0, [r4] - ldr r5, =gSaveBlock1Ptr - ldr r1, [r5] - movs r2, 0xAC - lsls r2, 3 - adds r1, r2 - movs r2, 0x78 - bl memcpy - ldr r0, [r4] - ldr r1, [r5] - movs r2, 0xCA - lsls r2, 3 - adds r1, r2 - adds r0, 0x78 - movs r2, 0x40 - bl memcpy - ldr r0, [r4] - ldr r2, =gUnknown_0203CE58 - ldrb r1, [r2, 0x5] - adds r0, 0xCE - strh r1, [r0] - movs r6, 0 - adds r5, r2, 0 - adds r5, 0x8 -_081ADCAE: - ldr r2, [r4] - lsls r3, r6, 1 - adds r0, r2, 0 - adds r0, 0xB8 - adds r0, r3 - ldrh r1, [r5] - strh r1, [r0] - adds r2, 0xC2 - adds r2, r3 - ldrh r0, [r5, 0xA] - strh r0, [r2] - adds r5, 0x2 - adds r6, 0x1 - cmp r6, 0x4 - bls _081ADCAE - ldr r4, =gSaveBlock1Ptr - ldr r0, [r4] - movs r1, 0xAC - lsls r1, 3 - adds r0, r1 - movs r1, 0x1E - bl sub_80D6C7C - ldr r0, [r4] - movs r2, 0xCA - lsls r2, 3 - adds r0, r2 - movs r1, 0x10 - bl sub_80D6C7C - bl sub_81AAB70 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end PrepareBagForWallyTutorial - - thumb_func_start RestoreBagAfterWallyTutorial -@ void RestoreBagAfterWallyTutorial() -RestoreBagAfterWallyTutorial: @ 81ADD00 - push {r4-r6,lr} - ldr r5, =gSaveBlock1Ptr - ldr r0, [r5] - movs r1, 0xAC - lsls r1, 3 - adds r0, r1 - ldr r4, =gUnknown_0203CE80 - ldr r1, [r4] - movs r2, 0x78 - bl memcpy - ldr r0, [r5] - movs r1, 0xCA - lsls r1, 3 - adds r0, r1 - ldr r1, [r4] - adds r1, 0x78 - movs r2, 0x40 - bl memcpy - ldr r1, =gUnknown_0203CE58 - ldr r0, [r4] - adds r0, 0xCE - ldrh r0, [r0] - strb r0, [r1, 0x5] - movs r5, 0 - adds r6, r4, 0 - adds r3, r1, 0 - adds r3, 0x8 -_081ADD3A: - lsls r2, r5, 1 - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0xB8 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r3] - adds r1, 0xC2 - adds r1, r2 - ldrh r0, [r1] - strh r0, [r3, 0xA] - adds r3, 0x2 - adds r5, 0x1 - cmp r5, 0x4 - bls _081ADD3A - ldr r0, [r6] - bl Free - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end RestoreBagAfterWallyTutorial - - thumb_func_start DoWallyTutorialBagMenu -@ void DoWallyTutorialBagMenu() -DoWallyTutorialBagMenu: @ 81ADD70 - push {lr} - bl PrepareBagForWallyTutorial - movs r0, 0xD - movs r1, 0x1 - bl bag_add_item - movs r0, 0x4 - movs r1, 0x1 - bl bag_add_item - ldr r2, =sub_8059D50 - movs r0, 0xA - movs r1, 0 - bl GoToBagMenu - pop {r0} - bx r0 - .pool - thumb_func_end DoWallyTutorialBagMenu - - thumb_func_start Task_WallyTutorialBagMenu -@ void Task_WallyTutorialBagMenu(u8 taskId) -Task_WallyTutorialBagMenu: @ 81ADD98 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081ADE32 - movs r0, 0x10 - ldrsh r1, [r4, r0] - cmp r1, 0xCC - beq _081ADDEC - cmp r1, 0xCC - bgt _081ADDD0 - cmp r1, 0x66 - beq _081ADDDA - b _081ADE2C - .pool -_081ADDD0: - movs r0, 0x99 - lsls r0, 1 - cmp r1, r0 - beq _081ADE0C - b _081ADE2C -_081ADDDA: - movs r0, 0x5 - bl audio_play - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0 - bl SwitchBagPocket - b _081ADE2C -_081ADDEC: - movs r0, 0x5 - bl audio_play - ldrb r0, [r4] - movs r1, 0x2 - bl bag_menu_print_cursor_ - ldr r1, =gUnknown_0203CE7C - movs r0, 0x4 - strh r0, [r1] - adds r0, r5, 0 - bl sub_81AC644 - b _081ADE2C - .pool -_081ADE0C: - movs r0, 0x5 - bl audio_play - bl bag_menu_remove_some_window - ldrb r0, [r4] - movs r1, 0 - movs r2, 0 - bl sub_81AE6C8 - bl RestoreBagAfterWallyTutorial - adds r0, r5, 0 - bl unknown_ItemMenu_Confirm - b _081ADE32 -_081ADE2C: - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] -_081ADE32: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end Task_WallyTutorialBagMenu - - thumb_func_start unknown_ItemMenu_Show -unknown_ItemMenu_Show: @ 81ADE38 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, =gUnknown_020375E2 - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_020375F0 - movs r0, 0x1 - strh r0, [r1] - bl bag_menu_remove_some_window - adds r0, r4, 0 - bl unknown_ItemMenu_Confirm - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end unknown_ItemMenu_Show - - thumb_func_start bag_menu_leave_maybe_3 -bag_menu_leave_maybe_3: @ 81ADE6C - push {lr} - ldr r0, =gUnknown_03005DAC - ldr r1, =sub_819FA50 - str r1, [r0] - ldr r0, =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end bag_menu_leave_maybe_3 - - thumb_func_start unknown_ItemMenu_Give2 -unknown_ItemMenu_Give2: @ 81ADE8C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - movs r1, 0x1 - bl remove_item - ldr r1, =gUnknown_020375F0 - movs r0, 0x1 - strh r0, [r1] - bl bag_menu_remove_some_window - adds r0, r4, 0 - bl unknown_ItemMenu_Confirm - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end unknown_ItemMenu_Give2 - - thumb_func_start bag_menu_leave_maybe_2 -bag_menu_leave_maybe_2: @ 81ADEBC - push {lr} - ldr r0, =gUnknown_03005DAC - ldr r1, =sub_818DEF4 - str r1, [r0] - ldr r0, =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end bag_menu_leave_maybe_2 - - thumb_func_start unknown_ItemMenu_Confirm2 -unknown_ItemMenu_Confirm2: @ 81ADEDC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, =gUnknown_020375F0 - movs r0, 0x1 - strh r0, [r1] - bl bag_menu_remove_some_window - adds r0, r4, 0 - bl unknown_ItemMenu_Confirm - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end unknown_ItemMenu_Confirm2 - - thumb_func_start bag_menu_leave_maybe -bag_menu_leave_maybe: @ 81ADF00 - push {lr} - ldr r0, =gUnknown_03005DAC - ldr r1, =sub_818E564 - str r1, [r0] - ldr r0, =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end bag_menu_leave_maybe - - thumb_func_start bag_menu_print_pocket_names -bag_menu_print_pocket_names: @ 81ADF20 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x1C - adds r4, r0, 0 - mov r8, r1 - movs r0, 0 - movs r1, 0 - str r0, [sp, 0x14] - str r1, [sp, 0x18] - ldr r1, =0x00ffffff - ldr r0, [sp, 0x14] - ands r0, r1 - movs r1, 0x80 - lsls r1, 21 - orrs r0, r1 - str r0, [sp, 0x14] - ldr r1, =0xffffff00 - ldr r0, [sp, 0x18] - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - str r0, [sp, 0x18] - add r0, sp, 0x14 - bl AddWindow - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r6, 0 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x40 - bl GetStringCenterAlignXOffset - lsls r3, r0, 24 - lsrs r3, 24 - movs r7, 0x1 - str r7, [sp] - movs r5, 0 - str r5, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0xFF - mov r9, r0 - str r0, [sp, 0xC] - str r7, [sp, 0x10] - adds r0, r6, 0 - movs r1, 0x1 - adds r2, r4, 0 - bl bag_menu_print - mov r2, r8 - cmp r2, 0 - beq _081ADFBA - movs r0, 0x1 - mov r1, r8 - movs r2, 0x40 - bl GetStringCenterAlignXOffset - adds r3, r0, 0 - adds r3, 0x40 - lsls r3, 24 - lsrs r3, 24 - str r7, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - mov r0, r9 - str r0, [sp, 0xC] - str r7, [sp, 0x10] - adds r0, r6, 0 - movs r1, 0x1 - mov r2, r8 - bl bag_menu_print -_081ADFBA: - adds r0, r6, 0 - movs r1, 0x7 - bl GetWindowAttribute - ldr r1, =gUnknown_0203CE54 - ldr r1, [r1] - ldr r2, =0x00000844 - adds r1, r2 - ldr r2, =0x04000100 - bl CpuSet - adds r0, r6, 0 - bl RemoveWindow - add sp, 0x1C - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end bag_menu_print_pocket_names - - thumb_func_start bag_menu_copy_pocket_name_to_window -bag_menu_copy_pocket_name_to_window: @ 81ADFF8 - push {r4-r7,lr} - adds r7, r0, 0 - cmp r7, 0x8 - bls _081AE002 - movs r7, 0x8 -_081AE002: - ldr r0, =gUnknown_0203CE54 - ldr r4, [r0] - ldr r0, =0x00000844 - adds r4, r0 - movs r0, 0x2 - movs r1, 0x7 - bl GetWindowAttribute - adds r5, r0, 0 - lsls r0, r7, 5 - adds r0, r4, r0 - ldr r6, =0x04000040 - adds r1, r5, 0 - adds r2, r6, 0 - bl CpuSet - adds r0, r7, 0 - adds r0, 0x10 - lsls r0, 5 - adds r4, r0 - movs r0, 0x80 - lsls r0, 1 - adds r5, r0 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl CpuSet - movs r0, 0x2 - movs r1, 0x2 - bl CopyWindowToVram - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end bag_menu_copy_pocket_name_to_window - - thumb_func_start setup_bag_menu_textboxes -setup_bag_menu_textboxes: @ 81AE054 - push {r4,lr} - ldr r0, =gUnknown_08614174 - bl InitWindows - bl DeactivateAllTextPrinters - movs r0, 0 - movs r1, 0x1 - movs r2, 0xE0 - bl sub_809882C - movs r0, 0 - movs r1, 0xA - movs r2, 0xD0 - bl copy_textbox_border_tile_patterns_to_vram - movs r0, 0xC0 - movs r1, 0x1 - bl sub_819A2BC - ldr r0, =gUnknown_0860F074 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - movs r4, 0 -_081AE088: - adds r0, r4, 0 - movs r1, 0 - bl FillWindowPixelBuffer - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _081AE088 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end setup_bag_menu_textboxes - - thumb_func_start bag_menu_print -bag_menu_print: @ 81AE0BC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - mov r9, r3 - ldr r3, [sp, 0x30] - ldr r4, [sp, 0x34] - ldr r6, [sp, 0x38] - ldr r5, [sp, 0x3C] - mov r8, r5 - ldr r5, [sp, 0x40] - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r7, r9 - lsls r7, 24 - lsrs r7, 24 - mov r9, r7 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r5, 24 - lsrs r5, 24 - str r4, [sp] - str r6, [sp, 0x4] - lsls r4, r5, 1 - adds r4, r5 - ldr r5, =gUnknown_08614164 - adds r4, r5 - str r4, [sp, 0x8] - mov r4, r8 - lsls r4, 24 - asrs r4, 24 - str r4, [sp, 0xC] - str r2, [sp, 0x10] - mov r2, r9 - bl AddTextPrinterParametrized2 - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end bag_menu_print - - thumb_func_start sub_81AE124 -sub_81AE124: @ 81AE124 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0203CE54 - ldr r1, [r1] - movs r2, 0x81 - lsls r2, 4 - adds r1, r2 - adds r1, r0 - ldrb r0, [r1] - bx lr - .pool - thumb_func_end sub_81AE124 - - thumb_func_start bag_menu_add_window -bag_menu_add_window: @ 81AE13C - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gUnknown_0203CE54 - movs r3, 0x81 - lsls r3, 4 - adds r1, r2, r3 - ldr r0, [r0] - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0xFF - bne _081AE172 - lsls r0, r2, 3 - ldr r1, =gUnknown_086141AC - adds r0, r1 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, 0 - movs r2, 0x1 - movs r3, 0xE - bl SetWindowBorderStyle - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram -_081AE172: - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end bag_menu_add_window - - thumb_func_start bag_menu_remove_window -bag_menu_remove_window: @ 81AE184 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0203CE54 - movs r2, 0x81 - lsls r2, 4 - adds r0, r2 - ldr r1, [r1] - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, 0xFF - beq _081AE1B8 - movs r1, 0 - bl sub_8198070 - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - bl RemoveWindow - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0xFF - strb r0, [r4] -_081AE1B8: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end bag_menu_remove_window - - thumb_func_start AddItemMessageWindow -@ u8 AddItemMessageWindow(u8 a1) -AddItemMessageWindow: @ 81AE1C4 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gUnknown_0203CE54 - movs r3, 0x81 - lsls r3, 4 - adds r1, r2, r3 - ldr r0, [r0] - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0xFF - bne _081AE1E8 - lsls r0, r2, 3 - ldr r1, =gUnknown_086141AC - adds r0, r1 - bl AddWindow - strb r0, [r4] -_081AE1E8: - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end AddItemMessageWindow - - thumb_func_start bag_menu_remove_item_message_window -bag_menu_remove_item_message_window: @ 81AE1F8 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0203CE54 - movs r2, 0x81 - lsls r2, 4 - adds r0, r2 - ldr r1, [r1] - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, 0xFF - beq _081AE22C - movs r1, 0 - bl sub_8197DF8 - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - bl RemoveWindow - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0xFF - strb r0, [r4] -_081AE22C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end bag_menu_remove_item_message_window - - thumb_func_start bag_menu_yes_no -bag_menu_yes_no: @ 81AE238 - push {lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 21 - ldr r3, =gUnknown_086141AC - adds r1, r3 - movs r3, 0x2 - str r3, [sp] - movs r3, 0x1 - str r3, [sp, 0x4] - movs r3, 0xE - str r3, [sp, 0x8] - str r2, [sp, 0xC] - movs r2, 0x1 - movs r3, 0 - bl CreateYesNoMenuWithCallbacks - add sp, 0x10 - pop {r0} - bx r0 - .pool - thumb_func_end bag_menu_yes_no - - thumb_func_start bag_menu_add_money_window -bag_menu_add_money_window: @ 81AE268 - push {r4,lr} - movs r0, 0x9 - bl bag_menu_add_window - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x92 - lsls r1, 3 - adds r0, r1 - bl DecryptMoney - adds r3, r0, 0 - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0xE - bl set_window_border_style_and_print_money_box - movs r0, 0x13 - movs r1, 0xB - bl AddMoneyLabelObject - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end bag_menu_add_money_window - - thumb_func_start bag_menu_remove_money_window -bag_menu_remove_money_window: @ 81AE2A4 - push {lr} - movs r0, 0x9 - bl bag_menu_remove_window - bl RemoveMoneyLabelObject - pop {r0} - bx r0 - thumb_func_end bag_menu_remove_money_window - - thumb_func_start bag_menu_prepare_tmhm_move_window -bag_menu_prepare_tmhm_move_window: @ 81AE2B4 - push {lr} - movs r0, 0x3 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x3 - movs r1, 0x13 - movs r2, 0 - movs r3, 0 - bl blit_move_info_icon - movs r0, 0x3 - movs r1, 0x14 - movs r2, 0 - movs r3, 0xC - bl blit_move_info_icon - movs r0, 0x3 - movs r1, 0x15 - movs r2, 0 - movs r3, 0x18 - bl blit_move_info_icon - movs r0, 0x3 - movs r1, 0x16 - movs r2, 0 - movs r3, 0x24 - bl blit_move_info_icon - movs r0, 0x3 - movs r1, 0x2 - bl CopyWindowToVram - pop {r0} - bx r0 - thumb_func_end bag_menu_prepare_tmhm_move_window - - thumb_func_start PrintTMHMMoveData -PrintTMHMMoveData: @ 81AE2FC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0x4 - movs r1, 0 - bl FillWindowPixelBuffer - cmp r4, 0 - bne _081AE354 - movs r4, 0 - movs r5, 0 -_081AE31A: - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 26 - lsrs r0, 24 - str r0, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0xFF - str r0, [sp, 0xC] - movs r0, 0x4 - str r0, [sp, 0x10] - movs r1, 0x1 - ldr r2, =gUnknown_085E8D45 - movs r3, 0x7 - bl bag_menu_print - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _081AE31A - movs r0, 0x4 - movs r1, 0x2 - bl CopyWindowToVram - b _081AE440 - .pool -_081AE354: - adds r0, r4, 0 - bl ItemIdToBattleMoveId - lsls r0, 16 - lsrs r7, r0, 16 - ldr r1, =gBattleMoves - lsls r0, r7, 1 - adds r0, r7 - lsls r0, 2 - adds r5, r0, r1 - ldrb r1, [r5, 0x2] - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x4 - movs r2, 0 - movs r3, 0 - bl blit_move_info_icon - ldrb r0, [r5, 0x1] - cmp r0, 0x1 - bhi _081AE38C - ldr r2, =gUnknown_085E8D45 - b _081AE39C - .pool -_081AE38C: - ldr r4, =gStringVar1 - ldrb r1, [r5, 0x1] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r2, r4, 0 -_081AE39C: - movs r0, 0xC - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0xFF - str r0, [sp, 0xC] - movs r0, 0x4 - str r0, [sp, 0x10] - movs r1, 0x1 - movs r3, 0x7 - bl bag_menu_print - ldr r2, =gBattleMoves - lsls r1, r7, 1 - adds r0, r1, r7 - lsls r0, 2 - adds r2, r0, r2 - ldrb r0, [r2, 0x3] - adds r6, r1, 0 - cmp r0, 0 - bne _081AE3D8 - ldr r2, =gUnknown_085E8D45 - b _081AE3E8 - .pool -_081AE3D8: - ldr r4, =gStringVar1 - ldrb r1, [r2, 0x3] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r2, r4, 0 -_081AE3E8: - movs r0, 0x18 - str r0, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0xFF - mov r8, r0 - str r0, [sp, 0xC] - movs r0, 0x4 - mov r9, r0 - str r0, [sp, 0x10] - movs r1, 0x1 - movs r3, 0x7 - bl bag_menu_print - ldr r5, =gStringVar1 - ldr r1, =gBattleMoves - adds r0, r6, r7 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x4] - adds r0, r5, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - movs r0, 0x24 - str r0, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - mov r0, r8 - str r0, [sp, 0xC] - mov r0, r9 - str r0, [sp, 0x10] - movs r0, 0x4 - movs r1, 0x1 - adds r2, r5, 0 - movs r3, 0x7 - bl bag_menu_print - movs r0, 0x4 - movs r1, 0x2 - bl CopyWindowToVram -_081AE440: - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end PrintTMHMMoveData - - thumb_func_start ListMenuDummyTask -@ void ListMenuDummyTask(u8 taskId) -ListMenuDummyTask: @ 81AE458 - bx lr - thumb_func_end ListMenuDummyTask - - thumb_func_start DoMysteryGiftListMenu -@ int DoMysteryGiftListMenu(struct WindowTemplate *windowTemplate, struct ListMenuTemplate *listMenuTemplate, int a3, int a4, int a5) -DoMysteryGiftListMenu: @ 81AE45C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - mov r12, r0 - str r1, [sp] - ldr r0, [sp, 0x28] - lsls r2, 24 - lsrs r6, r2, 24 - mov r10, r6 - lsls r3, 16 - lsrs r7, r3, 16 - str r7, [sp, 0x4] - lsls r0, 16 - mov r8, r0 - lsrs r0, 16 - mov r9, r0 - ldr r5, =gUnknown_0203CE84 - ldrb r4, [r5, 0x4] - cmp r4, 0x1 - beq _081AE4F4 - cmp r4, 0x1 - ble _081AE492 - cmp r4, 0x2 - beq _081AE558 -_081AE492: - mov r0, r12 - bl AddWindow - strb r0, [r5, 0x5] - cmp r6, 0x1 - beq _081AE4B0 - cmp r6, 0x2 - bne _081AE4C0 - ldrb r0, [r5, 0x5] - mov r1, r9 - lsls r2, r1, 24 - lsrs r2, 24 - adds r1, r7, 0 - bl sub_809882C -_081AE4B0: - ldrb r0, [r5, 0x5] - mov r3, r8 - lsrs r2, r3, 20 - lsls r2, 24 - lsrs r2, 24 - ldr r1, [sp, 0x4] - bl sub_8098858 -_081AE4C0: - ldr r0, =gUnknown_03006310 - adds r2, r0, 0 - ldr r1, [sp] - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - ldr r4, =gUnknown_0203CE84 - ldrb r1, [r4, 0x5] - strb r1, [r0, 0x10] - movs r1, 0 - movs r2, 0 - bl ListMenuInit - strb r0, [r4, 0x6] - ldrb r0, [r4, 0x5] - movs r1, 0x1 - bl CopyWindowToVram - movs r0, 0x1 - strb r0, [r4, 0x4] - b _081AE570 - .pool -_081AE4F4: - ldrb r0, [r5, 0x6] - bl ListMenuHandleInput - str r0, [r5] - ldr r1, =gMain - ldrh r0, [r1, 0x2E] - ands r4, r0 - cmp r4, 0 - beq _081AE50A - movs r0, 0x2 - strb r0, [r5, 0x4] -_081AE50A: - ldrh r1, [r1, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081AE51E - movs r0, 0x2 - negs r0, r0 - str r0, [r5] - movs r0, 0x2 - strb r0, [r5, 0x4] -_081AE51E: - ldrb r0, [r5, 0x4] - cmp r0, 0x2 - bne _081AE570 - cmp r6, 0 - bne _081AE534 - ldrb r0, [r5, 0x5] - bl ClearWindowTilemap - b _081AE546 - .pool -_081AE534: - mov r4, r10 - cmp r4, 0 - blt _081AE546 - cmp r4, 0x2 - bgt _081AE546 - ldrb r0, [r5, 0x5] - movs r1, 0 - bl sub_819746C -_081AE546: - ldr r0, =gUnknown_0203CE84 - ldrb r0, [r0, 0x5] - movs r1, 0x1 - bl CopyWindowToVram - b _081AE570 - .pool -_081AE558: - ldrb r0, [r5, 0x6] - movs r1, 0 - movs r2, 0 - bl sub_81AE6C8 - ldrb r0, [r5, 0x5] - bl RemoveWindow - movs r0, 0 - strb r0, [r5, 0x4] - ldr r0, [r5] - b _081AE574 -_081AE570: - movs r0, 0x1 - negs r0, r0 -_081AE574: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end DoMysteryGiftListMenu - - thumb_func_start ListMenuInit -@ u8 ListMenuInit(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow) -ListMenuInit: @ 81AE584 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - bl ListMenuInitInternal - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r5, 0x10] - bl PutWindowTilemap - ldrb r0, [r5, 0x10] - movs r1, 0x2 - bl CopyWindowToVram - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ListMenuInit - - thumb_func_start Unused_ListMenuInit2 -@ u8 Unused_ListMenuInit2(struct ListMenuTemplate *listMenuTemplate, int a2, u16 scrollOffset, u16 selectedRow) -Unused_ListMenuInit2: @ 81AE5B0 - push {r4-r7,lr} - sub sp, 0x8 - adds r6, r0, 0 - adds r4, r1, 0 - adds r1, r2, 0 - adds r2, r3, 0 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - bl ListMenuInitInternal - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r4, 0x4] - cmp r0, 0xFF - beq _081AE5F0 - adds r5, r4, 0 -_081AE5D4: - ldrb r0, [r6, 0x10] - ldrb r1, [r5] - ldrb r2, [r5, 0x1] - ldrb r3, [r5, 0x2] - ldrb r4, [r5, 0x3] - str r4, [sp] - ldrb r4, [r5, 0x4] - str r4, [sp, 0x4] - bl PutWindowRectTilemapOverridePalette - adds r5, 0x8 - ldrb r0, [r5, 0x4] - cmp r0, 0xFF - bne _081AE5D4 -_081AE5F0: - ldrb r0, [r6, 0x10] - movs r1, 0x2 - bl CopyWindowToVram - adds r0, r7, 0 - add sp, 0x8 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end Unused_ListMenuInit2 - - thumb_func_start ListMenuHandleInput -@ int ListMenuHandleInput(u8 taskId) -ListMenuHandleInput: @ 81AE604 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r3, r1, r0 - ldr r2, =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081AE638 - ldrh r0, [r3, 0x18] - ldrh r1, [r3, 0x1A] - adds r0, r1 - ldr r1, [r3] - lsls r0, 3 - adds r0, r1 - ldr r0, [r0, 0x4] - b _081AE6C2 - .pool -_081AE638: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081AE646 - movs r0, 0x2 - negs r0, r0 - b _081AE6C2 -_081AE646: - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081AE65A - adds r0, r3, 0 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0 - b _081AE6BA -_081AE65A: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081AE66A - adds r0, r3, 0 - movs r1, 0x1 - movs r2, 0x1 - b _081AE6B8 -_081AE66A: - ldrb r0, [r3, 0x16] - lsrs r0, 6 - cmp r0, 0x1 - beq _081AE680 - cmp r0, 0x1 - ble _081AE67A - cmp r0, 0x2 - beq _081AE68C -_081AE67A: - movs r2, 0 - movs r0, 0 - b _081AE6A0 -_081AE680: - movs r0, 0x20 - ands r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 - movs r0, 0x10 - b _081AE69A -_081AE68C: - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 - movs r0, 0x80 - lsls r0, 1 -_081AE69A: - ands r0, r1 - lsls r0, 16 - lsrs r0, 16 -_081AE6A0: - cmp r2, 0 - beq _081AE6AE - ldrb r2, [r3, 0xE] - adds r0, r3, 0 - movs r1, 0x1 - movs r3, 0 - b _081AE6BA -_081AE6AE: - cmp r0, 0 - beq _081AE6BE - ldrb r2, [r3, 0xE] - adds r0, r3, 0 - movs r1, 0x1 -_081AE6B8: - movs r3, 0x1 -_081AE6BA: - bl ListMenuChangeSelection -_081AE6BE: - movs r0, 0x1 - negs r0, r0 -_081AE6C2: - pop {r1} - bx r1 - thumb_func_end ListMenuHandleInput - - thumb_func_start sub_81AE6C8 -sub_81AE6C8: @ 81AE6C8 - push {r4,lr} - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r1, r0, r1 - cmp r3, 0 - beq _081AE6E4 - ldrh r0, [r1, 0x18] - strh r0, [r3] -_081AE6E4: - cmp r2, 0 - beq _081AE6EC - ldrh r0, [r1, 0x1A] - strh r0, [r2] -_081AE6EC: - ldrb r0, [r1, 0x1E] - cmp r0, 0xFF - beq _081AE6FC - ldrb r1, [r1, 0x17] - lsrs r1, 6 - subs r1, 0x2 - bl ListMenuRemoveCursorObject -_081AE6FC: - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AE6C8 - - thumb_func_start sub_81AE70C -sub_81AE70C: @ 81AE70C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - ldrb r0, [r4, 0x10] - ldrb r2, [r4, 0x15] - lsls r2, 28 - lsrs r1, r2, 4 - orrs r1, r2 - lsrs r1, 24 - bl FillWindowPixelBuffer - ldrh r1, [r4, 0x18] - ldrh r3, [r4, 0xE] - adds r0, r4, 0 - movs r2, 0 - bl ListMenuPrintEntries - adds r0, r4, 0 - bl ListMenuDrawCursor - ldrb r0, [r4, 0x10] - movs r1, 0x2 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AE70C - - thumb_func_start sub_81AE750 -sub_81AE750: @ 81AE750 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - lsrs r1, 20 - ldrb r6, [r4, 0x14] - movs r5, 0xF - adds r0, r5, 0 - ands r0, r6 - orrs r0, r1 - strb r0, [r4, 0x14] - ands r2, r5 - ldrb r1, [r4, 0x15] - movs r0, 0x10 - negs r0, r0 - ands r0, r1 - orrs r0, r2 - lsrs r3, 20 - ands r0, r5 - orrs r0, r3 - strb r0, [r4, 0x15] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AE750 - - thumb_func_start sub_81AE794 -sub_81AE794: @ 81AE794 - push {r4,r5,lr} - adds r3, r1, 0 - adds r5, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - ldrb r0, [r4, 0x10] - movs r1, 0x1 - adds r2, r3, 0 - bl SetWindowAttribute - ldrb r0, [r4, 0x10] - movs r1, 0x2 - adds r2, r5, 0 - bl SetWindowAttribute - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AE794 - - thumb_func_start sub_81AE7D0 -sub_81AE7D0: @ 81AE7D0 - push {r4-r7,lr} - sub sp, 0x20 - mov r12, r2 - ldr r5, [sp, 0x34] - lsls r3, 16 - lsrs r3, 16 - adds r4, r3, 0 - mov r3, sp - ldm r0!, {r2,r6,r7} - stm r3!, {r2,r6,r7} - ldm r0!, {r2,r6,r7} - stm r3!, {r2,r6,r7} - mov r0, sp - movs r3, 0 - strh r1, [r0, 0x18] - mov r1, r12 - strh r1, [r0, 0x1A] - strb r3, [r0, 0x1C] - strb r3, [r0, 0x1D] - cmp r4, 0x40 - bne _081AE804 - movs r1, 0 - movs r2, 0x1 - movs r3, 0 - bl ListMenuChangeSelection -_081AE804: - cmp r4, 0x80 - bne _081AE814 - mov r0, sp - movs r1, 0 - movs r2, 0x1 - movs r3, 0x1 - bl ListMenuChangeSelection -_081AE814: - cmp r5, 0 - beq _081AE81E - mov r0, sp - ldrh r0, [r0, 0x18] - strh r0, [r5] -_081AE81E: - ldr r2, [sp, 0x38] - cmp r2, 0 - beq _081AE82A - mov r0, sp - ldrh r0, [r0, 0x1A] - strh r0, [r2] -_081AE82A: - movs r0, 0x1 - negs r0, r0 - add sp, 0x20 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81AE7D0 - - thumb_func_start sub_81AE838 -sub_81AE838: @ 81AE838 - push {lr} - adds r2, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r1, r0 - cmp r2, 0 - beq _081AE856 - ldrh r0, [r1, 0x1A] - ldrh r1, [r1, 0x18] - adds r0, r1 - strh r0, [r2] -_081AE856: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AE838 - - thumb_func_start get_coro_args_x18_x1A -get_coro_args_x18_x1A: @ 81AE860 - push {lr} - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r1, r0 - cmp r3, 0 - beq _081AE87A - ldrh r0, [r1, 0x18] - strh r0, [r3] -_081AE87A: - cmp r2, 0 - beq _081AE882 - ldrh r0, [r1, 0x1A] - strh r0, [r2] -_081AE882: - pop {r0} - bx r0 - .pool - thumb_func_end get_coro_args_x18_x1A - - thumb_func_start ListMenuGetYCoordForPrintingArrowCursor -@ u8 ListMenuGetYCoordForPrintingArrowCursor(u8 taskId) -ListMenuGetYCoordForPrintingArrowCursor: @ 81AE88C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - ldrb r0, [r4, 0x17] - lsls r0, 26 - lsrs r0, 26 - movs r1, 0x1 - bl GetFontAttribute - ldrb r1, [r4, 0x16] - lsls r1, 26 - lsrs r1, 29 - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x1A] - adds r2, r1, 0 - muls r2, r0 - adds r1, r2, 0 - ldrb r0, [r4, 0x14] - lsls r0, 28 - lsrs r0, 28 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end ListMenuGetYCoordForPrintingArrowCursor - - thumb_func_start ListMenuInitInternal -@ u8 ListMenuInitInternal(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow) -ListMenuInitInternal: @ 81AE8D4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 16 - lsrs r6, 16 - ldr r0, =ListMenuDummyTask - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r0, 2 - add r0, r8 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r7, r0, r1 - adds r0, r7, 0 - ldm r4!, {r1-r3} - stm r0!, {r1-r3} - ldm r4!, {r1-r3} - stm r0!, {r1-r3} - movs r1, 0 - strh r5, [r7, 0x18] - strh r6, [r7, 0x1A] - strb r1, [r7, 0x1C] - strb r1, [r7, 0x1D] - movs r0, 0xFF - strb r0, [r7, 0x1E] - strb r1, [r7, 0x1F] - ldr r3, =gUnknown_03006300 - ldrb r1, [r7, 0x14] - movs r5, 0xF - lsrs r1, 4 - ldrb r4, [r3] - movs r2, 0x10 - negs r2, r2 - adds r0, r2, 0 - ands r0, r4 - orrs r0, r1 - strb r0, [r3] - ldrb r1, [r7, 0x15] - lsls r1, 28 - lsrs r1, 24 - ands r0, r5 - orrs r0, r1 - strb r0, [r3] - ldrb r0, [r7, 0x15] - lsrs r0, 4 - ands r5, r0 - ldrb r0, [r3, 0x1] - ands r2, r0 - orrs r2, r5 - strb r2, [r3, 0x1] - ldrb r1, [r7, 0x16] - lsls r1, 29 - lsrs r1, 17 - ldr r0, [r3] - ldr r2, =0xfffc0fff - ands r0, r2 - orrs r0, r1 - str r0, [r3] - ldrb r0, [r7, 0x17] - lsls r0, 26 - lsrs r0, 26 - strb r0, [r3, 0x3] - ldrh r0, [r7, 0xC] - ldrh r1, [r7, 0xE] - cmp r0, r1 - bcs _081AE96C - strh r0, [r7, 0xE] -_081AE96C: - ldrb r0, [r7, 0x10] - ldrb r2, [r7, 0x15] - lsls r2, 28 - lsrs r1, r2, 4 - orrs r1, r2 - lsrs r1, 24 - bl FillWindowPixelBuffer - ldrh r1, [r7, 0x18] - ldrh r3, [r7, 0xE] - adds r0, r7, 0 - movs r2, 0 - bl ListMenuPrintEntries - adds r0, r7, 0 - bl ListMenuDrawCursor - adds r0, r7, 0 - movs r1, 0x1 - bl ListMenuCallSelectionChangedCallback - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end ListMenuInitInternal - - thumb_func_start ListMenuPrint -@ void ListMenuPrint(struct ListMenu *listMenu, u8 *str, u8 x, u8 y) -ListMenuPrint: @ 81AE9B4 - push {r4-r7,lr} - sub sp, 0x18 - adds r4, r0, 0 - adds r6, r1, 0 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 24 - lsrs r3, 24 - mov r12, r3 - ldr r5, =gUnknown_03006300 - ldrb r1, [r5, 0x3] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _081AEA20 - add r1, sp, 0x14 - ldr r2, [r5] - lsls r0, r2, 24 - lsrs r0, 28 - movs r3, 0 - strb r0, [r1] - lsls r0, r2, 28 - lsrs r0, 28 - strb r0, [r1, 0x1] - lsls r0, r2, 20 - lsrs r0, 28 - strb r0, [r1, 0x2] - ldrb r0, [r4, 0x10] - lsls r1, r2, 1 - lsrs r1, 25 - lsls r2, 14 - lsrs r2, 26 - str r2, [sp] - str r3, [sp, 0x4] - add r2, sp, 0x14 - str r2, [sp, 0x8] - movs r2, 0x1 - negs r2, r2 - str r2, [sp, 0xC] - str r6, [sp, 0x10] - adds r2, r7, 0 - mov r3, r12 - bl AddTextPrinterParametrized2 - ldrb r1, [r5, 0x3] - movs r0, 0x7F - ands r0, r1 - strb r0, [r5, 0x3] - b _081AEA5E - .pool -_081AEA20: - add r2, sp, 0x14 - ldrb r1, [r4, 0x15] - lsls r0, r1, 28 - lsrs r0, 28 - strb r0, [r2] - ldrb r0, [r4, 0x14] - lsrs r0, 4 - strb r0, [r2, 0x1] - adds r0, r2, 0 - lsls r1, 24 - lsrs r1, 28 - strb r1, [r0, 0x2] - ldrb r0, [r4, 0x10] - ldrb r1, [r4, 0x17] - lsls r1, 26 - lsrs r1, 26 - ldrb r2, [r4, 0x16] - lsls r2, 29 - lsrs r2, 29 - str r2, [sp] - str r3, [sp, 0x4] - add r2, sp, 0x14 - str r2, [sp, 0x8] - movs r2, 0x1 - negs r2, r2 - str r2, [sp, 0xC] - str r6, [sp, 0x10] - adds r2, r7, 0 - mov r3, r12 - bl AddTextPrinterParametrized2 -_081AEA5E: - add sp, 0x18 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ListMenuPrint - - thumb_func_start ListMenuPrintEntries -@ void ListMenuPrintEntries(struct ListMenu *listMenu, u16 startIndex, u16 yOffset, u16 count) -ListMenuPrintEntries: @ 81AEA68 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r4, r0, 0 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - lsls r2, 16 - lsrs r2, 16 - str r2, [sp] - lsls r3, 16 - lsrs r3, 16 - mov r10, r3 - ldrb r0, [r4, 0x17] - lsls r0, 26 - lsrs r0, 26 - movs r1, 0x1 - bl GetFontAttribute - ldrb r1, [r4, 0x16] - lsls r1, 26 - lsrs r1, 29 - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0 - mov r8, r0 - cmp r8, r10 - bge _081AEB10 -_081AEAAA: - ldr r0, [r4] - mov r2, r9 - lsls r1, r2, 3 - adds r0, r1, r0 - ldr r2, [r0, 0x4] - movs r0, 0x3 - negs r0, r0 - adds r5, r1, 0 - cmp r2, r0 - beq _081AEAC2 - ldrb r6, [r4, 0x12] - b _081AEAC4 -_081AEAC2: - ldrb r6, [r4, 0x11] -_081AEAC4: - ldr r0, [sp] - add r0, r8 - ldr r2, [sp, 0x4] - adds r1, r0, 0 - muls r1, r2 - ldrb r0, [r4, 0x14] - lsls r0, 28 - lsrs r0, 28 - adds r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - adds r7, r2, 0 - ldr r3, [r4, 0x8] - cmp r3, 0 - beq _081AEAEE - ldrb r0, [r4, 0x10] - ldr r1, [r4] - adds r1, r5, r1 - ldr r1, [r1, 0x4] - bl _call_via_r3 -_081AEAEE: - ldr r0, [r4] - adds r0, r5, r0 - ldr r1, [r0] - adds r0, r4, 0 - adds r2, r6, 0 - adds r3, r7, 0 - bl ListMenuPrint - mov r0, r9 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r0, 0x1 - add r8, r0 - cmp r8, r10 - blt _081AEAAA -_081AEB10: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ListMenuPrintEntries - - thumb_func_start ListMenuDrawCursor -@ void ListMenuDrawCursor(struct ListMenu *listMenu) -ListMenuDrawCursor: @ 81AEB20 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - ldrb r0, [r6, 0x17] - lsls r0, 26 - lsrs r0, 26 - movs r1, 0x1 - bl GetFontAttribute - ldrb r1, [r6, 0x16] - lsls r1, 26 - lsrs r1, 29 - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r6, 0x13] - mov r8, r1 - ldrh r1, [r6, 0x1A] - muls r1, r0 - ldrb r0, [r6, 0x14] - lsls r0, 28 - lsrs r0, 28 - adds r0, r1 - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r6, 0x17] - lsrs r0, 6 - cmp r0, 0x1 - beq _081AEC0C - cmp r0, 0x1 - bgt _081AEB66 - cmp r0, 0 - beq _081AEB70 - b _081AEC0C -_081AEB66: - cmp r0, 0x2 - beq _081AEB84 - cmp r0, 0x3 - beq _081AEBCC - b _081AEC0C -_081AEB70: - ldr r1, =gUnknown_085E8D60 - adds r0, r6, 0 - mov r2, r8 - adds r3, r7, 0 - bl ListMenuPrint - b _081AEC0C - .pool -_081AEB84: - ldrb r0, [r6, 0x1E] - cmp r0, 0xFF - bne _081AEB94 - adds r0, r6, 0 - movs r1, 0 - bl ListMenuAddCursorObject - strb r0, [r6, 0x1E] -_081AEB94: - ldrb r5, [r6, 0x1E] - ldrb r0, [r6, 0x10] - movs r1, 0x1 - bl GetWindowAttribute - adds r4, r0, 0 - lsls r4, 19 - ldr r0, =0xffff0000 - adds r4, r0 - lsrs r4, 16 - ldrb r0, [r6, 0x10] - movs r1, 0x2 - bl GetWindowAttribute - adds r2, r0, 0 - lsls r2, 3 - adds r2, r7 - subs r2, 0x1 - lsls r2, 16 - lsrs r2, 16 - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0 - bl ListMenuUpdateCursorObject - b _081AEC0C - .pool -_081AEBCC: - ldrb r0, [r6, 0x1E] - cmp r0, 0xFF - bne _081AEBDC - adds r0, r6, 0 - movs r1, 0x1 - bl ListMenuAddCursorObject - strb r0, [r6, 0x1E] -_081AEBDC: - ldrb r5, [r6, 0x1E] - ldrb r0, [r6, 0x10] - movs r1, 0x1 - bl GetWindowAttribute - adds r4, r0, 0 - lsls r4, 3 - add r4, r8 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r6, 0x10] - movs r1, 0x2 - bl GetWindowAttribute - adds r2, r0, 0 - lsls r2, 3 - adds r2, r7 - lsls r2, 16 - lsrs r2, 16 - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0x1 - bl ListMenuUpdateCursorObject -_081AEC0C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ListMenuDrawCursor - - thumb_func_start ListMenuAddCursorObject -ListMenuAddCursorObject: @ 81AEC18 - push {r4,r5,lr} - sub sp, 0xC - adds r4, r0, 0 - adds r5, r1, 0 - mov r1, sp - movs r0, 0 - strb r0, [r1] - movs r0, 0xA0 - strb r0, [r1, 0x1] - ldrb r0, [r4, 0x10] - movs r1, 0x3 - bl GetWindowAttribute - mov r1, sp - lsls r0, 3 - adds r0, 0x2 - strh r0, [r1, 0x2] - ldrb r0, [r4, 0x17] - lsls r0, 26 - lsrs r0, 26 - movs r1, 0x1 - bl GetFontAttribute - mov r1, sp - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x2 - strh r0, [r1, 0x4] - movs r0, 0x80 - lsls r0, 7 - strh r0, [r1, 0x6] - ldr r0, =0x0000ffff - strh r0, [r1, 0x8] - movs r0, 0xF - strb r0, [r1, 0xA] - mov r0, sp - adds r1, r5, 0 - bl ListMenuAddCursorObjectInternal - lsls r0, 24 - lsrs r0, 24 - add sp, 0xC - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end ListMenuAddCursorObject - - thumb_func_start ListMenuErasePrintedCursor -ListMenuErasePrintedCursor: @ 81AEC78 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - adds r7, r0, 0 - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - ldrb r1, [r7, 0x17] - lsrs r0, r1, 6 - cmp r0, 0 - bne _081AECF4 - lsls r0, r1, 26 - lsrs r0, 26 - movs r1, 0x1 - bl GetFontAttribute - adds r4, r0, 0 - ldrb r0, [r7, 0x16] - lsls r0, 26 - lsrs r0, 29 - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r7, 0x17] - lsls r0, 26 - lsrs r0, 26 - movs r1, 0 - bl GetMenuCursorDimensionByFont - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldrb r0, [r7, 0x17] - lsls r0, 26 - lsrs r0, 26 - movs r1, 0x1 - bl GetMenuCursorDimensionByFont - lsls r0, 24 - lsrs r0, 24 - ldrb r6, [r7, 0x10] - ldrb r2, [r7, 0x15] - lsls r2, 28 - lsrs r1, r2, 4 - orrs r1, r2 - lsrs r1, 24 - ldrb r2, [r7, 0x13] - mov r3, r8 - muls r3, r4 - adds r4, r3, 0 - ldrb r3, [r7, 0x14] - lsls r3, 28 - lsrs r3, 28 - adds r3, r4 - lsls r3, 16 - lsrs r3, 16 - str r5, [sp] - str r0, [sp, 0x4] - adds r0, r6, 0 - bl FillWindowPixelRect -_081AECF4: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ListMenuErasePrintedCursor - - thumb_func_start ListMenuUpdateSelectedRowIndexAndScrollOffset -@ u8 ListMenuUpdateSelectedRowIndexAndScrollOffset(int, bool8 movingDown) -ListMenuUpdateSelectedRowIndexAndScrollOffset: @ 81AED00 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 24 - ldrh r3, [r4, 0x1A] - ldrh r5, [r4, 0x18] - cmp r1, 0 - bne _081AED74 - ldrh r0, [r4, 0xE] - cmp r0, 0x1 - bne _081AED18 - movs r2, 0 - b _081AED2A -_081AED18: - ldrh r0, [r4, 0xE] - lsrs r2, r0, 1 - movs r1, 0x1 - ands r1, r0 - adds r2, r1 - subs r0, r2 - subs r0, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 -_081AED2A: - cmp r5, 0 - bne _081AED50 - cmp r3, 0 - beq _081AEDB6 - ldr r1, [r4] - movs r2, 0x3 - negs r2, r2 -_081AED38: - subs r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - adds r0, r5, r3 - lsls r0, 3 - adds r0, r1 - ldr r0, [r0, 0x4] - cmp r0, r2 - bne _081AEDBA - cmp r3, 0 - bne _081AED38 - b _081AEDB6 -_081AED50: - cmp r3, r2 - bls _081AED70 - ldr r1, [r4] - movs r6, 0x3 - negs r6, r6 -_081AED5A: - subs r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - adds r0, r5, r3 - lsls r0, 3 - adds r0, r1 - ldr r0, [r0, 0x4] - cmp r0, r6 - bne _081AEDBA - cmp r3, r2 - bhi _081AED5A -_081AED70: - subs r0, r5, 0x1 - b _081AEDE2 -_081AED74: - ldrh r0, [r4, 0xE] - cmp r0, 0x1 - bne _081AED7E - movs r2, 0 - b _081AED88 -_081AED7E: - ldrh r0, [r4, 0xE] - lsrs r2, r0, 1 - movs r1, 0x1 - ands r1, r0 - adds r2, r1 -_081AED88: - adds r1, r0, 0 - ldrh r0, [r4, 0xC] - subs r0, r1 - cmp r5, r0 - bne _081AEDC0 - subs r0, r1, 0x1 - cmp r3, r0 - bge _081AEDB6 - ldr r2, [r4] - movs r6, 0x3 - negs r6, r6 - adds r1, r0, 0 -_081AEDA0: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - adds r0, r5, r3 - lsls r0, 3 - adds r0, r2 - ldr r0, [r0, 0x4] - cmp r0, r6 - bne _081AEDBA - cmp r3, r1 - blt _081AEDA0 -_081AEDB6: - movs r0, 0 - b _081AEDE8 -_081AEDBA: - strh r3, [r4, 0x1A] - movs r0, 0x1 - b _081AEDE8 -_081AEDC0: - cmp r3, r2 - bcs _081AEDE0 - ldr r1, [r4] - movs r6, 0x3 - negs r6, r6 -_081AEDCA: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - adds r0, r5, r3 - lsls r0, 3 - adds r0, r1 - ldr r0, [r0, 0x4] - cmp r0, r6 - bne _081AEDBA - cmp r3, r2 - bcc _081AEDCA -_081AEDE0: - adds r0, r5, 0x1 -_081AEDE2: - strh r2, [r4, 0x1A] - strh r0, [r4, 0x18] - movs r0, 0x2 -_081AEDE8: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ListMenuUpdateSelectedRowIndexAndScrollOffset - - thumb_func_start ListMenuScroll -@ void ListMenuScroll(struct ListMenu *listMenu, int a2, bool8 movingDown) -ListMenuScroll: @ 81AEDF0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - adds r6, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - adds r7, r5, 0 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - ldrh r0, [r6, 0xE] - cmp r5, r0 - bcc _081AEE2A - ldrb r0, [r6, 0x10] - ldrb r2, [r6, 0x15] - lsls r2, 28 - lsrs r1, r2, 4 - orrs r1, r2 - lsrs r1, 24 - bl FillWindowPixelBuffer - ldrh r1, [r6, 0x18] - ldrh r3, [r6, 0xE] - adds r0, r6, 0 - movs r2, 0 - bl ListMenuPrintEntries - b _081AEF1A -_081AEE2A: - ldrb r0, [r6, 0x17] - lsls r0, 26 - lsrs r0, 26 - movs r1, 0x1 - bl GetFontAttribute - ldrb r1, [r6, 0x16] - lsls r1, 26 - lsrs r1, 29 - adds r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - mov r1, r8 - cmp r1, 0 - bne _081AEEBC - ldrb r0, [r6, 0x10] - adds r2, r5, 0 - muls r2, r4 - lsls r2, 24 - lsrs r2, 24 - ldrb r1, [r6, 0x15] - lsls r1, 28 - lsrs r3, r1, 4 - orrs r3, r1 - lsrs r3, 24 - movs r1, 0x1 - bl ScrollWindow - ldrh r1, [r6, 0x18] - adds r0, r6, 0 - movs r2, 0 - adds r3, r5, 0 - bl ListMenuPrintEntries - ldrh r0, [r6, 0xE] - adds r1, r0, 0 - muls r1, r4 - adds r0, r1, 0 - ldrb r4, [r6, 0x14] - lsls r4, 28 - lsrs r4, 28 - adds r4, r0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r6, 0x10] - movs r1, 0x3 - bl GetWindowAttribute - adds r5, r0, 0 - lsls r5, 19 - lsrs r5, 16 - ldrb r0, [r6, 0x10] - movs r1, 0x4 - bl GetWindowAttribute - lsls r0, 3 - subs r0, r4 - lsls r0, 16 - lsrs r0, 16 - ldrb r3, [r6, 0x10] - ldrb r2, [r6, 0x15] - lsls r2, 28 - lsrs r1, r2, 4 - orrs r1, r2 - lsrs r1, 24 - str r5, [sp] - str r0, [sp, 0x4] - adds r0, r3, 0 - movs r2, 0 - adds r3, r4, 0 - bl FillWindowPixelRect - b _081AEF1A -_081AEEBC: - ldrb r0, [r6, 0x10] - adds r2, r7, 0 - muls r2, r4 - lsls r2, 24 - lsrs r2, 24 - ldrb r1, [r6, 0x15] - lsls r1, 28 - lsrs r3, r1, 4 - orrs r3, r1 - lsrs r3, 24 - movs r1, 0 - bl ScrollWindow - ldrh r2, [r6, 0xE] - subs r2, r7 - ldrh r1, [r6, 0x18] - adds r1, r2 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - adds r0, r6, 0 - adds r3, r7, 0 - bl ListMenuPrintEntries - ldrb r0, [r6, 0x10] - movs r1, 0x3 - bl GetWindowAttribute - lsls r0, 19 - lsrs r0, 16 - ldrb r3, [r6, 0x10] - ldrb r2, [r6, 0x15] - lsls r2, 28 - lsrs r1, r2, 4 - orrs r1, r2 - lsrs r1, 24 - str r0, [sp] - ldrb r0, [r6, 0x14] - lsls r0, 28 - lsrs r0, 28 - str r0, [sp, 0x4] - adds r0, r3, 0 - movs r2, 0 - movs r3, 0 - bl FillWindowPixelRect -_081AEF1A: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ListMenuScroll - - thumb_func_start ListMenuChangeSelection -@ bool8 ListMenuChangeSelection(struct ListMenu *listMenu, bool8 updateCursorAndCallCallback, u8 count, bool8 movingDown) -ListMenuChangeSelection: @ 81AEF28 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp] - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - lsls r3, 24 - lsrs r3, 24 - mov r9, r3 - ldrh r0, [r4, 0x1A] - mov r10, r0 - movs r7, 0 - movs r5, 0 - movs r0, 0 - cmp r7, r8 - bcs _081AEF90 -_081AEF56: - adds r6, r0, 0x1 - b _081AEF76 -_081AEF5A: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldrh r0, [r4, 0x18] - ldrh r1, [r4, 0x1A] - adds r0, r1 - ldr r1, [r4] - lsls r0, 3 - adds r0, r1 - ldr r1, [r0, 0x4] - movs r0, 0x3 - negs r0, r0 - cmp r1, r0 - bne _081AEF88 -_081AEF76: - adds r0, r4, 0 - mov r1, r9 - bl ListMenuUpdateSelectedRowIndexAndScrollOffset - lsls r0, 24 - lsrs r0, 24 - orrs r5, r0 - cmp r0, 0x2 - beq _081AEF5A -_081AEF88: - lsls r0, r6, 24 - lsrs r0, 24 - cmp r0, r8 - bcc _081AEF56 -_081AEF90: - ldr r0, [sp] - cmp r0, 0 - beq _081AEFEE - cmp r5, 0x1 - beq _081AEFA6 - cmp r5, 0x1 - ble _081AEFA2 - cmp r5, 0x3 - ble _081AEFC6 -_081AEFA2: - movs r0, 0x1 - b _081AEFF0 -_081AEFA6: - adds r0, r4, 0 - mov r1, r10 - bl ListMenuErasePrintedCursor - adds r0, r4, 0 - bl ListMenuDrawCursor - adds r0, r4, 0 - movs r1, 0 - bl ListMenuCallSelectionChangedCallback - ldrb r0, [r4, 0x10] - movs r1, 0x2 - bl CopyWindowToVram - b _081AEFEE -_081AEFC6: - adds r0, r4, 0 - mov r1, r10 - bl ListMenuErasePrintedCursor - adds r0, r4, 0 - adds r1, r7, 0 - mov r2, r9 - bl ListMenuScroll - adds r0, r4, 0 - bl ListMenuDrawCursor - adds r0, r4, 0 - movs r1, 0 - bl ListMenuCallSelectionChangedCallback - ldrb r0, [r4, 0x10] - movs r1, 0x2 - bl CopyWindowToVram -_081AEFEE: - movs r0, 0 -_081AEFF0: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end ListMenuChangeSelection - - thumb_func_start ListMenuCallSelectionChangedCallback -@ void ListMenuCallSelectionChangedCallback(struct ListMenu *listMenu, u8 a2) -ListMenuCallSelectionChangedCallback: @ 81AF000 - push {r4,lr} - adds r2, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - ldr r3, [r2, 0x4] - cmp r3, 0 - beq _081AF022 - ldrh r0, [r2, 0x18] - ldrh r1, [r2, 0x1A] - adds r0, r1 - ldr r1, [r2] - lsls r0, 3 - adds r0, r1 - ldr r0, [r0, 0x4] - adds r1, r4, 0 - bl _call_via_r3 -_081AF022: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ListMenuCallSelectionChangedCallback - - thumb_func_start sub_81AF028 -sub_81AF028: @ 81AF028 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsls r2, 24 - lsrs r2, 24 - ldr r6, =gUnknown_03006300 - movs r5, 0xF - ands r0, r5 - ldrb r3, [r6] - mov r8, r3 - movs r4, 0x10 - negs r4, r4 - adds r3, r4, 0 - mov r7, r8 - ands r3, r7 - orrs r3, r0 - lsrs r1, 20 - ands r3, r5 - orrs r3, r1 - strb r3, [r6] - ands r2, r5 - ldrb r0, [r6, 0x1] - ands r4, r0 - orrs r4, r2 - strb r4, [r6, 0x1] - ldrb r0, [r6, 0x3] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r6, 0x3] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AF028 - - thumb_func_start sub_81AF078 -sub_81AF078: @ 81AF078 - push {lr} - lsls r1, 24 - cmp r1, 0 - bne _081AF086 - movs r0, 0x5 - bl audio_play -_081AF086: - pop {r0} - bx r0 - thumb_func_end sub_81AF078 - - thumb_func_start sub_81AF08C -sub_81AF08C: @ 81AF08C - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r2, r1, r0 - cmp r3, 0x10 - bhi _081AF154 - lsls r0, r3, 2 - ldr r1, =_081AF0B8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081AF0B8: - .4byte _081AF0FC - .4byte _081AF0FC - .4byte _081AF100 - .4byte _081AF104 - .4byte _081AF108 - .4byte _081AF10C - .4byte _081AF110 - .4byte _081AF114 - .4byte _081AF118 - .4byte _081AF11C - .4byte _081AF122 - .4byte _081AF12A - .4byte _081AF130 - .4byte _081AF138 - .4byte _081AF140 - .4byte _081AF146 - .4byte _081AF14E -_081AF0FC: - ldr r0, [r2, 0x4] - b _081AF158 -_081AF100: - ldrh r0, [r2, 0xC] - b _081AF158 -_081AF104: - ldrh r0, [r2, 0xE] - b _081AF158 -_081AF108: - ldrb r0, [r2, 0x10] - b _081AF158 -_081AF10C: - ldrb r0, [r2, 0x11] - b _081AF158 -_081AF110: - ldrb r0, [r2, 0x12] - b _081AF158 -_081AF114: - ldrb r0, [r2, 0x13] - b _081AF158 -_081AF118: - ldrb r0, [r2, 0x14] - b _081AF124 -_081AF11C: - ldrb r0, [r2, 0x14] - lsrs r0, 4 - b _081AF158 -_081AF122: - ldrb r0, [r2, 0x15] -_081AF124: - lsls r0, 28 - lsrs r0, 28 - b _081AF158 -_081AF12A: - ldrb r0, [r2, 0x15] - lsrs r0, 4 - b _081AF158 -_081AF130: - ldrb r0, [r2, 0x16] - lsls r0, 29 - lsrs r0, 29 - b _081AF158 -_081AF138: - ldrb r0, [r2, 0x16] - lsls r0, 26 - lsrs r0, 29 - b _081AF158 -_081AF140: - ldrb r0, [r2, 0x16] - lsrs r0, 6 - b _081AF158 -_081AF146: - ldrb r0, [r2, 0x17] - lsls r0, 26 - lsrs r0, 26 - b _081AF158 -_081AF14E: - ldrb r0, [r2, 0x17] - lsrs r0, 6 - b _081AF158 -_081AF154: - movs r0, 0x1 - negs r0, r0 -_081AF158: - pop {r1} - bx r1 - thumb_func_end sub_81AF08C - - thumb_func_start sub_81AF15C -sub_81AF15C: @ 81AF15C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r3, r1, r0 - cmp r4, 0x10 - bhi _081AF25C - lsls r0, r4, 2 - ldr r1, =_081AF188 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081AF188: - .4byte _081AF1CC - .4byte _081AF1CC - .4byte _081AF1D0 - .4byte _081AF1D4 - .4byte _081AF1D8 - .4byte _081AF1DC - .4byte _081AF1E0 - .4byte _081AF1E4 - .4byte _081AF1E8 - .4byte _081AF1F4 - .4byte _081AF202 - .4byte _081AF20E - .4byte _081AF21C - .4byte _081AF228 - .4byte _081AF236 - .4byte _081AF244 - .4byte _081AF250 -_081AF1CC: - str r2, [r3, 0x4] - b _081AF25C -_081AF1D0: - strh r2, [r3, 0xC] - b _081AF25C -_081AF1D4: - strh r2, [r3, 0xE] - b _081AF25C -_081AF1D8: - strb r2, [r3, 0x10] - b _081AF25C -_081AF1DC: - strb r2, [r3, 0x11] - b _081AF25C -_081AF1E0: - strb r2, [r3, 0x12] - b _081AF25C -_081AF1E4: - strb r2, [r3, 0x13] - b _081AF25C -_081AF1E8: - movs r0, 0xF - ands r2, r0 - ldrb r1, [r3, 0x14] - movs r0, 0x10 - negs r0, r0 - b _081AF1FA -_081AF1F4: - lsls r2, 4 - ldrb r1, [r3, 0x14] - movs r0, 0xF -_081AF1FA: - ands r0, r1 - orrs r0, r2 - strb r0, [r3, 0x14] - b _081AF25C -_081AF202: - movs r0, 0xF - ands r2, r0 - ldrb r1, [r3, 0x15] - movs r0, 0x10 - negs r0, r0 - b _081AF214 -_081AF20E: - lsls r2, 4 - ldrb r1, [r3, 0x15] - movs r0, 0xF -_081AF214: - ands r0, r1 - orrs r0, r2 - strb r0, [r3, 0x15] - b _081AF25C -_081AF21C: - movs r0, 0x7 - ands r2, r0 - ldrb r1, [r3, 0x16] - movs r0, 0x8 - negs r0, r0 - b _081AF23C -_081AF228: - movs r0, 0x7 - ands r2, r0 - lsls r2, 3 - ldrb r1, [r3, 0x16] - movs r0, 0x39 - negs r0, r0 - b _081AF23C -_081AF236: - lsls r2, 6 - ldrb r1, [r3, 0x16] - movs r0, 0x3F -_081AF23C: - ands r0, r1 - orrs r0, r2 - strb r0, [r3, 0x16] - b _081AF25C -_081AF244: - movs r0, 0x3F - ands r2, r0 - ldrb r1, [r3, 0x17] - movs r0, 0x40 - negs r0, r0 - b _081AF256 -_081AF250: - lsls r2, 6 - ldrb r1, [r3, 0x17] - movs r0, 0x3F -_081AF256: - ands r0, r1 - orrs r0, r2 - strb r0, [r3, 0x17] -_081AF25C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81AF15C - - thumb_func_start sub_81AF264 -sub_81AF264: @ 81AF264 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _081AF276 - cmp r0, 0x1 - beq _081AF28A - b _081AF2E4 -_081AF276: - ldrh r1, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartObjectImageAnim - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _081AF2E4 -_081AF28A: - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _081AF29A - cmp r0, 0x1 - beq _081AF2C0 - ldrh r2, [r4, 0x38] - b _081AF2DE -_081AF29A: - movs r0, 0x34 - ldrsh r3, [r4, r0] - ldr r1, =gUnknown_08329F40 - ldrh r2, [r4, 0x38] - lsls r0, r2, 24 - lsrs r0, 23 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - muls r0, r3 - cmp r0, 0 - bge _081AF2B4 - adds r0, 0xFF -_081AF2B4: - asrs r0, 8 - strh r0, [r4, 0x24] - b _081AF2DE - .pool -_081AF2C0: - movs r0, 0x34 - ldrsh r3, [r4, r0] - ldr r1, =gUnknown_08329F40 - ldrh r2, [r4, 0x38] - lsls r0, r2, 24 - lsrs r0, 23 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - muls r0, r3 - cmp r0, 0 - bge _081AF2DA - adds r0, 0xFF -_081AF2DA: - asrs r0, 8 - strh r0, [r4, 0x26] -_081AF2DE: - ldrh r0, [r4, 0x36] - adds r0, r2, r0 - strh r0, [r4, 0x38] -_081AF2E4: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AF264 - - thumb_func_start AddScrollIndicatorArrowObject -AddScrollIndicatorArrowObject: @ 81AF2F0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x18 - adds r6, r0, 0 - ldr r5, [sp, 0x30] - lsls r6, 24 - lsrs r6, 24 - mov r8, r6 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r5, 16 - lsrs r5, 16 - mov r12, r5 - mov r4, sp - ldr r0, =gUnknown_08614244 - ldm r0!, {r5-r7} - stm r4!, {r5-r7} - ldm r0!, {r5-r7} - stm r4!, {r5-r7} - mov r0, sp - movs r4, 0 - strh r3, [r0] - mov r3, r12 - strh r3, [r0, 0x2] - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02020630 - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - adds r3, r1 - adds r5, r3, 0 - adds r5, 0x3E - ldrb r1, [r5] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r5] - strh r4, [r3, 0x2E] - ldr r1, =gUnknown_086141FC - mov r5, r8 - lsls r6, r5, 2 - adds r6, r1 - ldrb r2, [r6] - lsls r1, r2, 28 - lsrs r1, 28 - strh r1, [r3, 0x30] - lsrs r2, 4 - strh r2, [r3, 0x32] - ldrb r1, [r6, 0x1] - strh r1, [r3, 0x34] - ldrh r1, [r6, 0x2] - strh r1, [r3, 0x36] - strh r4, [r3, 0x38] - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end AddScrollIndicatorArrowObject - - thumb_func_start AddScrollIndicatorArrowPair -AddScrollIndicatorArrowPair: @ 81AF380 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - adds r6, r0, 0 - mov r9, r1 - ldr r0, =gUnknown_086142C8 - str r0, [sp, 0x4] - ldr r5, =0xffff0000 - ldr r0, [sp, 0x8] - ands r0, r5 - movs r1, 0x80 - lsls r1, 1 - orrs r0, r1 - ldrh r1, [r6, 0xA] - lsls r1, 16 - ldr r4, =0x0000ffff - ands r0, r4 - orrs r0, r1 - str r0, [sp, 0x8] - add r0, sp, 0x4 - bl LoadCompressedObjectPic - ldrh r2, [r6, 0xC] - cmp r2, r4 - bne _081AF3DC - ldr r0, =gUnknown_086142A8 - ldrb r1, [r6, 0xE] - lsls r1, 20 - movs r2, 0x80 - lsls r2, 17 - adds r1, r2 - lsrs r1, 16 - movs r2, 0x20 - bl LoadPalette - b _081AF3EE - .pool -_081AF3DC: - ldr r0, =gUnknown_086142A8 - str r0, [sp, 0xC] - add r0, sp, 0xC - ldr r1, [r0, 0x4] - ands r1, r5 - orrs r1, r2 - str r1, [r0, 0x4] - bl LoadTaggedObjectPalette -_081AF3EE: - ldr r0, =Task_ScrollIndicatorArrowPair - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r0, 2 - add r0, r8 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r7, r0, r1 - movs r0, 0 - strb r0, [r7] - mov r0, r9 - str r0, [r7, 0x4] - ldrh r0, [r6, 0x6] - strh r0, [r7, 0x8] - ldrh r0, [r6, 0x8] - strh r0, [r7, 0xA] - ldrh r0, [r6, 0xA] - strh r0, [r7, 0xE] - ldrh r0, [r6, 0xC] - strh r0, [r7, 0x10] - ldrb r0, [r6] - ldrb r1, [r6, 0x1] - ldrb r2, [r6, 0x2] - ldrh r3, [r6, 0xA] - ldrh r4, [r6, 0xC] - str r4, [sp] - bl AddScrollIndicatorArrowObject - strb r0, [r7, 0xC] - ldrb r0, [r6, 0x3] - ldrb r1, [r6, 0x4] - ldrb r2, [r6, 0x5] - ldrh r3, [r6, 0xA] - ldrh r4, [r6, 0xC] - str r4, [sp] - bl AddScrollIndicatorArrowObject - strb r0, [r7, 0xD] - ldrh r1, [r6, 0xC] - ldr r0, =0x0000ffff - cmp r1, r0 - bne _081AF47C - ldr r5, =gUnknown_02020630 - ldrb r0, [r7, 0xC] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r3, [r6, 0xE] - lsls r3, 4 - ldrb r4, [r1, 0x5] - movs r2, 0xF - adds r0, r2, 0 - ands r0, r4 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r1, [r7, 0xD] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r6, 0xE] - lsls r1, 4 - ldrb r3, [r0, 0x5] - ands r2, r3 - orrs r2, r1 - strb r2, [r0, 0x5] -_081AF47C: - mov r0, r8 - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end AddScrollIndicatorArrowPair - - thumb_func_start AddScrollIndicatorArrowPairParametrized -AddScrollIndicatorArrowPairParametrized: @ 81AF4A0 - push {r4,lr} - adds r4, r1, 0 - subs r0, 0x2 - cmp r0, 0x1 - bhi _081AF4C4 - ldr r0, =gUnknown_0203CE8C - movs r1, 0x2 - strb r1, [r0] - strb r4, [r0, 0x1] - strb r2, [r0, 0x2] - movs r1, 0x3 - strb r1, [r0, 0x3] - strb r4, [r0, 0x4] - strb r3, [r0, 0x5] - b _081AF4D6 - .pool -_081AF4C4: - ldr r0, =gUnknown_0203CE8C - movs r1, 0 - strb r1, [r0] - strb r2, [r0, 0x1] - strb r4, [r0, 0x2] - movs r1, 0x1 - strb r1, [r0, 0x3] - strb r3, [r0, 0x4] - strb r4, [r0, 0x5] -_081AF4D6: - adds r2, r0, 0 - movs r1, 0 - movs r0, 0 - strh r0, [r2, 0x6] - ldr r0, [sp, 0x8] - strh r0, [r2, 0x8] - ldr r0, [sp, 0xC] - strh r0, [r2, 0xA] - ldr r0, [sp, 0x10] - strh r0, [r2, 0xC] - strb r1, [r2, 0xE] - adds r0, r2, 0 - ldr r1, [sp, 0x14] - bl AddScrollIndicatorArrowPair - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end AddScrollIndicatorArrowPairParametrized - - thumb_func_start Task_ScrollIndicatorArrowPair -Task_ScrollIndicatorArrowPair: @ 81AF504 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r4, r1, r0 - ldr r0, [r4, 0x4] - ldrh r5, [r0] - ldrh r0, [r4, 0x8] - cmp r5, r0 - bne _081AF548 - ldr r0, =0x0000ffff - cmp r5, r0 - beq _081AF548 - ldr r3, =gUnknown_02020630 - ldrb r1, [r4, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - b _081AF55E - .pool -_081AF548: - ldr r3, =gUnknown_02020630 - ldrb r1, [r4, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 -_081AF55E: - strb r1, [r0] - ldrh r0, [r4, 0xA] - cmp r5, r0 - bne _081AF580 - ldrb r1, [r4, 0xD] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - b _081AF594 - .pool -_081AF580: - ldrb r1, [r4, 0xD] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 -_081AF594: - strb r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end Task_ScrollIndicatorArrowPair - - thumb_func_start Task_ScrollIndicatorArrowPairOnMainMenu -Task_ScrollIndicatorArrowPairOnMainMenu: @ 81AF59C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r4, r1, r0 - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _081AF5E8 - ldr r3, =gUnknown_02020630 - ldrb r1, [r4, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldrb r1, [r4, 0xD] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - b _081AF612 - .pool -_081AF5E8: - ldr r3, =gUnknown_02020630 - ldrb r1, [r4, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4, 0xD] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 -_081AF612: - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end Task_ScrollIndicatorArrowPairOnMainMenu - - thumb_func_start RemoveScrollIndicatorArrowPair -RemoveScrollIndicatorArrowPair: @ 81AF620 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r5, r0, r1 - ldrh r0, [r5, 0xE] - ldr r4, =0x0000ffff - cmp r0, r4 - beq _081AF63E - bl FreeObjectTilesByTag -_081AF63E: - ldrh r0, [r5, 0x10] - cmp r0, r4 - beq _081AF648 - bl FreeObjectPaletteByTag -_081AF648: - ldrb r1, [r5, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - bl RemoveObjectAndFreeTiles - ldrb r1, [r5, 0xD] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl RemoveObjectAndFreeTiles - adds r0, r6, 0 - bl DestroyTask - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end RemoveScrollIndicatorArrowPair - - thumb_func_start ListMenuAddCursorObjectInternal -ListMenuAddCursorObjectInternal: @ 81AF680 - push {lr} - cmp r1, 0 - beq _081AF68A - cmp r1, 0x1 - beq _081AF690 -_081AF68A: - bl ListMenuAddRedOutlineCursorObject - b _081AF694 -_081AF690: - bl ListMenuAddRedArrowCursorObject -_081AF694: - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end ListMenuAddCursorObjectInternal - - thumb_func_start ListMenuUpdateCursorObject -@ void ListMenuUpdateCursorObject(u8 taskId, u16 x, u16 y, u32 a4) -ListMenuUpdateCursorObject: @ 81AF69C - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - cmp r3, 0 - beq _081AF6B4 - cmp r3, 0x1 - beq _081AF6BA - b _081AF6BE -_081AF6B4: - bl ListMenuUpdateRedOutlineCursorObject - b _081AF6BE -_081AF6BA: - bl ListMenuUpdateRedArrowCursorObject -_081AF6BE: - pop {r0} - bx r0 - thumb_func_end ListMenuUpdateCursorObject - - thumb_func_start ListMenuRemoveCursorObject -ListMenuRemoveCursorObject: @ 81AF6C4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r1, 0 - beq _081AF6D4 - cmp r1, 0x1 - beq _081AF6DA - b _081AF6DE -_081AF6D4: - bl ListMenuRemoveRedOutlineCursorObject - b _081AF6DE -_081AF6DA: - bl ListMenuRemoveRedArrowCursorObject -_081AF6DE: - pop {r0} - bx r0 - thumb_func_end ListMenuRemoveCursorObject - - thumb_func_start Task_RedOutlineCursor -Task_RedOutlineCursor: @ 81AF6E4 - bx lr - thumb_func_end Task_RedOutlineCursor - - thumb_func_start ListMenuGetRedOutlineCursorSpriteCount -ListMenuGetRedOutlineCursorSpriteCount: @ 81AF6E8 - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - movs r3, 0x4 - cmp r0, 0x10 - bls _081AF708 - movs r2, 0x8 - subs r0, 0x8 - cmp r2, r0 - bge _081AF708 -_081AF700: - adds r3, 0x2 - adds r2, 0x8 - cmp r2, r0 - blt _081AF700 -_081AF708: - cmp r1, 0x10 - bls _081AF71C - movs r2, 0x8 - subs r1, 0x8 - cmp r2, r1 - bge _081AF71C -_081AF714: - adds r3, 0x2 - adds r2, 0x8 - cmp r2, r1 - blt _081AF714 -_081AF71C: - lsls r0, r3, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end ListMenuGetRedOutlineCursorSpriteCount - - thumb_func_start ListMenuSetUpRedOutlineCursorSpriteOamTable -ListMenuSetUpRedOutlineCursorSpriteOamTable: @ 81AF724 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r3, r2, 0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - ldr r0, =gUnknown_0861425C - ldr r0, [r0] - str r0, [r3] - movs r1, 0x88 - strb r1, [r3] - strb r1, [r3, 0x1] - ldr r0, =gUnknown_08614260 - ldr r0, [r0] - str r0, [r3, 0x4] - mov r2, r8 - adds r2, 0x80 - strb r2, [r3, 0x4] - strb r1, [r3, 0x5] - ldr r0, =gUnknown_08614274 - ldr r0, [r0] - str r0, [r3, 0x8] - strb r1, [r3, 0x8] - mov r4, r9 - adds r4, 0x80 - strb r4, [r3, 0x9] - ldr r0, =gUnknown_08614278 - ldr r0, [r0] - str r0, [r3, 0xC] - strb r2, [r3, 0xC] - strb r4, [r3, 0xD] - movs r0, 0x4 - mov r12, r0 - mov r2, r8 - cmp r2, 0x10 - bls _081AF7B8 - movs r2, 0x8 - mov r5, r8 - subs r5, 0x8 - cmp r2, r5 - bge _081AF7B8 - ldr r0, =gUnknown_08614264 - ldr r0, [r0] - str r0, [sp] - ldr r0, =gUnknown_08614270 - ldr r6, [r0] - adds r1, r3, 0 - adds r1, 0x10 - movs r7, 0x88 - mov r10, r7 -_081AF796: - ldr r0, [sp] - str r0, [r1] - adds r0, r2, 0 - subs r0, 0x78 - strb r0, [r1] - mov r7, r10 - strb r7, [r1, 0x1] - adds r1, 0x4 - str r6, [r1] - strb r0, [r1] - strb r4, [r1, 0x1] - adds r1, 0x4 - movs r0, 0x2 - add r12, r0 - adds r2, 0x8 - cmp r2, r5 - blt _081AF796 -_081AF7B8: - mov r2, r9 - cmp r2, 0x10 - bls _081AF7F6 - movs r1, 0x8 - mov r4, r9 - subs r4, 0x8 - cmp r1, r4 - bge _081AF7F6 - ldr r0, =gUnknown_08614268 - ldr r6, [r0] - ldr r0, =gUnknown_0861426C - ldr r5, [r0] - mov r7, r12 - lsls r0, r7, 2 - adds r2, r0, r3 - movs r7, 0x88 - mov r3, r8 - adds r3, 0x80 -_081AF7DC: - str r6, [r2] - strb r7, [r2] - adds r0, r1, 0 - subs r0, 0x78 - strb r0, [r2, 0x1] - adds r2, 0x4 - str r5, [r2] - strb r3, [r2] - strb r0, [r2, 0x1] - adds r2, 0x4 - adds r1, 0x8 - cmp r1, r4 - blt _081AF7DC -_081AF7F6: - 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 ListMenuSetUpRedOutlineCursorSpriteOamTable - - thumb_func_start ListMenuAddRedOutlineCursorObject -ListMenuAddRedOutlineCursorObject: @ 81AF828 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x28 - adds r6, r0, 0 - ldr r0, =gUnknown_08614338 - str r0, [sp, 0x18] - ldr r5, =0xffff0000 - add r0, sp, 0x18 - ldr r1, [r0, 0x4] - ands r1, r5 - movs r2, 0x80 - lsls r2, 1 - orrs r1, r2 - ldrh r2, [r6, 0x6] - lsls r2, 16 - ldr r3, =0x0000ffff - ands r1, r3 - orrs r1, r2 - str r1, [r0, 0x4] - bl LoadCompressedObjectPic - ldrh r2, [r6, 0x8] - ldr r7, =0x0000ffff - cmp r2, r7 - bne _081AF884 - ldr r0, =gUnknown_086142A8 - ldrb r1, [r6, 0xA] - lsls r1, 20 - movs r2, 0x80 - lsls r2, 17 - adds r1, r2 - lsrs r1, 16 - movs r2, 0x20 - bl LoadPalette - b _081AF896 - .pool -_081AF884: - ldr r0, =gUnknown_086142A8 - str r0, [sp, 0x20] - add r0, sp, 0x20 - ldr r1, [r0, 0x4] - ands r1, r5 - orrs r1, r2 - str r1, [r0, 0x4] - bl LoadTaggedObjectPalette -_081AF896: - ldr r0, =Task_RedOutlineCursor - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r5, r0, r1 - ldrh r0, [r6, 0x6] - movs r3, 0 - mov r8, r3 - strh r0, [r5, 0xE] - ldrh r0, [r6, 0x8] - strh r0, [r5, 0x10] - ldrh r0, [r6, 0x2] - ldrh r1, [r6, 0x4] - bl ListMenuGetRedOutlineCursorSpriteCount - strb r0, [r5] - ldrb r0, [r5] - lsls r0, 2 - bl Alloc - adds r2, r0, 0 - str r2, [r5, 0x8] - str r2, [r5, 0x4] - ldrh r0, [r6, 0x2] - ldrh r1, [r6, 0x4] - bl ListMenuSetUpRedOutlineCursorSpriteOamTable - mov r1, sp - ldr r0, =gUnknown_082EC6AC - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - mov r1, sp - ldrh r0, [r6, 0x6] - strh r0, [r1] - ldrh r0, [r6, 0x8] - strh r0, [r1, 0x2] - ldrb r1, [r6] - adds r1, 0x78 - ldrb r2, [r6, 0x1] - adds r2, 0x78 - mov r0, sp - movs r3, 0 - bl AddObjectToFront - strb r0, [r5, 0xC] - ldrb r1, [r5, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r7, =gUnknown_02020630 - adds r0, r7 - adds r1, r5, 0 - bl SetSpriteOamTables_NoPriorityFromTable - ldrb r0, [r5, 0xC] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x5] - ldrb r1, [r5, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - adds r0, 0x43 - mov r1, r8 - strb r1, [r0] - ldrb r1, [r5, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - adds r0, 0x42 - ldrb r2, [r0] - movs r1, 0x40 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldrh r1, [r6, 0x8] - ldr r0, =0x0000ffff - cmp r1, r0 - bne _081AF96E - ldrb r0, [r5, 0xC] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - ldrb r2, [r6, 0xA] - lsls r2, 4 - ldrb r3, [r1, 0x5] - movs r0, 0xF - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] -_081AF96E: - adds r0, r4, 0 - add sp, 0x28 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end ListMenuAddRedOutlineCursorObject - - thumb_func_start ListMenuUpdateRedOutlineCursorObject -@ void ListMenuUpdateRedOutlineCursorObject(u8 taskId, u16 x, u16 y) -ListMenuUpdateRedOutlineCursorObject: @ 81AF994 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - lsls r3, r0, 2 - adds r3, r0 - lsls r3, 3 - ldr r0, =gTasks + 0x8 - adds r3, r0 - ldr r5, =gUnknown_02020630 - ldrb r4, [r3, 0xC] - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r5 - adds r1, 0x78 - strh r1, [r0, 0x20] - ldrb r1, [r3, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r2, 0x78 - strh r2, [r0, 0x22] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ListMenuUpdateRedOutlineCursorObject - - thumb_func_start ListMenuRemoveRedOutlineCursorObject -ListMenuRemoveRedOutlineCursorObject: @ 81AF9D8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldr r0, [r4, 0x8] - bl Free - ldrh r0, [r4, 0xE] - ldr r6, =0x0000ffff - cmp r0, r6 - beq _081AF9FC - bl FreeObjectTilesByTag -_081AF9FC: - ldrh r0, [r4, 0x10] - cmp r0, r6 - beq _081AFA06 - bl FreeObjectPaletteByTag -_081AFA06: - ldrb r1, [r4, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - bl RemoveObjectAndFreeTiles - adds r0, r5, 0 - bl DestroyTask - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end ListMenuRemoveRedOutlineCursorObject - - thumb_func_start ObjectCB_RedArrowCursor -ObjectCB_RedArrowCursor: @ 81AFA30 - push {lr} - adds r2, r0, 0 - ldr r1, =gUnknown_08329F40 - ldrh r3, [r2, 0x2E] - lsls r0, r3, 24 - lsrs r0, 23 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bge _081AFA48 - adds r0, 0x3F -_081AFA48: - asrs r0, 6 - strh r0, [r2, 0x24] - adds r0, r3, 0 - adds r0, 0x8 - strh r0, [r2, 0x2E] - pop {r0} - bx r0 - .pool - thumb_func_end ObjectCB_RedArrowCursor - - thumb_func_start Task_RedArrowCursor -Task_RedArrowCursor: @ 81AFA5C - bx lr - thumb_func_end Task_RedArrowCursor - - thumb_func_start ListMenuAddRedArrowCursorObject -ListMenuAddRedArrowCursorObject: @ 81AFA60 - push {r4-r7,lr} - sub sp, 0x28 - adds r5, r0, 0 - ldr r0, =gUnknown_08614378 - str r0, [sp, 0x18] - ldr r6, =0xffff0000 - add r0, sp, 0x18 - ldr r1, [r0, 0x4] - ands r1, r6 - movs r2, 0x80 - orrs r1, r2 - ldrh r2, [r5, 0x6] - lsls r2, 16 - ldr r4, =0x0000ffff - ands r1, r4 - orrs r1, r2 - str r1, [r0, 0x4] - bl LoadCompressedObjectPic - ldrh r2, [r5, 0x8] - cmp r2, r4 - bne _081AFAB4 - ldr r0, =gUnknown_086142A8 - ldrb r1, [r5, 0xA] - lsls r1, 20 - movs r2, 0x80 - lsls r2, 17 - adds r1, r2 - lsrs r1, 16 - movs r2, 0x20 - bl LoadPalette - b _081AFAC6 - .pool -_081AFAB4: - ldr r0, =gUnknown_086142A8 - str r0, [sp, 0x20] - add r0, sp, 0x20 - ldr r1, [r0, 0x4] - ands r1, r6 - orrs r1, r2 - str r1, [r0, 0x4] - bl LoadTaggedObjectPalette -_081AFAC6: - ldr r0, =Task_RedArrowCursor - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x4] - mov r1, sp - ldr r0, =gUnknown_08614290 - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - mov r1, sp - ldrh r0, [r5, 0x6] - strh r0, [r1] - ldrh r0, [r5, 0x8] - strh r0, [r1, 0x2] - ldrb r1, [r5] - ldrb r2, [r5, 0x1] - mov r0, sp - movs r3, 0 - bl AddObjectToFront - strb r0, [r4] - ldr r3, =gUnknown_02020630 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r2, 0x8 - strh r2, [r0, 0x24] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x26] - ldrh r1, [r5, 0x8] - ldr r0, =0x0000ffff - cmp r1, r0 - bne _081AFB46 - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r5, 0xA] - lsls r2, 4 - ldrb r3, [r1, 0x5] - movs r0, 0xF - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] -_081AFB46: - adds r0, r6, 0 - add sp, 0x28 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end ListMenuAddRedArrowCursorObject - - thumb_func_start ListMenuUpdateRedArrowCursorObject -@ void ListMenuUpdateRedArrowCursorObject(u8 taskId, u16 x, u16 y) -ListMenuUpdateRedArrowCursorObject: @ 81AFB68 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r3, r0, 2 - adds r3, r0 - lsls r3, 3 - ldr r0, =gTasks + 0x8 - adds r3, r0 - ldr r5, =gUnknown_02020630 - ldrb r4, [r3] - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r5 - strh r1, [r0, 0x20] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x22] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ListMenuUpdateRedArrowCursorObject - - thumb_func_start ListMenuRemoveRedArrowCursorObject -ListMenuRemoveRedArrowCursorObject: @ 81AFBA0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldrh r0, [r4, 0x2] - ldr r6, =0x0000ffff - cmp r0, r6 - beq _081AFBBE - bl FreeObjectTilesByTag -_081AFBBE: - ldrh r0, [r4, 0x4] - cmp r0, r6 - beq _081AFBC8 - bl FreeObjectPaletteByTag -_081AFBC8: - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - bl RemoveObjectAndFreeTiles - adds r0, r5, 0 - bl DestroyTask - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end ListMenuRemoveRedArrowCursorObject - - thumb_func_start sub_81AFBF0 -sub_81AFBF0: @ 81AFBF0 - push {lr} - ldr r1, =gUnknown_0203CE9C - movs r2, 0 - adds r0, r1, 0 - adds r0, 0x1C -_081AFBFA: - str r2, [r0] - subs r0, 0x4 - cmp r0, r1 - bge _081AFBFA - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AFBF0 - - thumb_func_start sub_81AFC0C -sub_81AFC0C: @ 81AFC0C - push {lr} - adds r2, r1, 0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x7 - bhi _081AFC20 - ldr r1, =gUnknown_0203CE9C - lsls r0, 2 - adds r0, r1 - str r2, [r0] -_081AFC20: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AFC0C - - thumb_func_start sub_81AFC28 -sub_81AFC28: @ 81AFC28 - push {r4,r5,lr} - adds r2, r0, 0 - adds r4, r1, 0 - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - beq _081AFC68 - ldr r5, =gUnknown_0203CE9C -_081AFC38: - cmp r1, 0xF7 - beq _081AFC48 - strb r1, [r2] - adds r4, 0x1 - adds r2, 0x1 - b _081AFC60 - .pool -_081AFC48: - adds r4, 0x1 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - cmp r1, 0 - beq _081AFC5E - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 -_081AFC5E: - adds r4, 0x1 -_081AFC60: - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _081AFC38 -_081AFC68: - movs r0, 0xFF - strb r0, [r2] - adds r0, r2, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81AFC28 - - thumb_func_start sub_81AFC74 -sub_81AFC74: @ 81AFC74 - lsls r0, 24 - ldr r1, =gUnknown_0203CE9C - lsrs r0, 22 - adds r0, r1 - ldr r0, [r0] - bx lr - .pool - thumb_func_end sub_81AFC74 - - thumb_func_start sav1_are_mapnumbers_in_given_list -sav1_are_mapnumbers_in_given_list: @ 81AFC84 - push {r4,lr} - adds r2, r0, 0 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x4 - ldrsb r1, [r0, r1] - lsls r1, 8 - ldrb r0, [r0, 0x5] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - ldrh r0, [r2] - ldr r1, =0x0000ffff - cmp r0, r1 - beq _081AFCC4 - adds r4, r1, 0 - adds r1, r2, 0 -_081AFCAA: - ldrh r0, [r1] - cmp r0, r3 - bne _081AFCBC - movs r0, 0x1 - b _081AFCC6 - .pool -_081AFCBC: - adds r1, 0x2 - ldrh r0, [r1] - cmp r0, r4 - bne _081AFCAA -_081AFCC4: - movs r0, 0 -_081AFCC6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sav1_are_mapnumbers_in_given_list - - thumb_func_start sav1_is_in_pokecenter -sav1_is_in_pokecenter: @ 81AFCCC - push {lr} - ldr r0, =gUnknown_086143BC - bl sav1_are_mapnumbers_in_given_list - pop {r1} - bx r1 - .pool - thumb_func_end sav1_is_in_pokecenter - - thumb_func_start sub_81AFCDC -sub_81AFCDC: @ 81AFCDC - push {lr} - ldr r0, =gUnknown_0861440A - bl sav1_are_mapnumbers_in_given_list - pop {r1} - bx r1 - .pool - thumb_func_end sub_81AFCDC - - thumb_func_start sub_81AFCEC -sub_81AFCEC: @ 81AFCEC - push {lr} - ldr r0, =gUnknown_0861440E - bl sav1_are_mapnumbers_in_given_list - pop {r1} - bx r1 - .pool - thumb_func_end sub_81AFCEC - - thumb_func_start sav2_set_x9_bit3_when_sav1_in_pokecenter -sav2_set_x9_bit3_when_sav1_in_pokecenter: @ 81AFCFC - push {lr} - bl sav1_is_in_pokecenter - cmp r0, 0 - bne _081AFD18 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldrb r1, [r2, 0x9] - movs r0, 0xFD - ands r0, r1 - b _081AFD22 - .pool -_081AFD18: - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldrb r1, [r2, 0x9] - movs r0, 0x2 - orrs r0, r1 -_081AFD22: - strb r0, [r2, 0x9] - pop {r0} - bx r0 - .pool - thumb_func_end sav2_set_x9_bit3_when_sav1_in_pokecenter - - thumb_func_start sub_81AFD2C -sub_81AFD2C: @ 81AFD2C - push {lr} - bl sub_81AFCDC - cmp r0, 0 - bne _081AFD48 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldrb r1, [r2, 0x9] - movs r0, 0xFB - ands r0, r1 - b _081AFD52 - .pool -_081AFD48: - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldrb r1, [r2, 0x9] - movs r0, 0x4 - orrs r0, r1 -_081AFD52: - strb r0, [r2, 0x9] - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AFD2C - - thumb_func_start sub_81AFD5C -sub_81AFD5C: @ 81AFD5C - push {lr} - bl sub_81AFCEC - cmp r0, 0 - bne _081AFD78 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldrb r1, [r2, 0x9] - movs r0, 0xF7 - ands r0, r1 - b _081AFD82 - .pool -_081AFD78: - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldrb r1, [r2, 0x9] - movs r0, 0x8 - orrs r0, r1 -_081AFD82: - strb r0, [r2, 0x9] - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AFD5C - - thumb_func_start sav2_set_x9_depending_on_sav1_map -sav2_set_x9_depending_on_sav1_map: @ 81AFD8C - push {lr} - bl sav2_set_x9_bit3_when_sav1_in_pokecenter - bl sub_81AFD2C - bl sub_81AFD5C - pop {r0} - bx r0 - thumb_func_end sav2_set_x9_depending_on_sav1_map - - thumb_func_start sub_81AFDA0 -sub_81AFDA0: @ 81AFDA0 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - adds r2, 0xA8 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 8 - orrs r0, r1 - movs r1, 0x1 - orrs r0, r1 - movs r1, 0x2 - orrs r0, r1 - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x10 - orrs r0, r1 - movs r1, 0x20 - orrs r0, r1 - movs r1, 0x8 - orrs r0, r1 - str r0, [r2] - bx lr - .pool - thumb_func_end sub_81AFDA0 - - thumb_func_start sub_81AFDD0 -sub_81AFDD0: @ 81AFDD0 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldrb r1, [r2, 0x9] - movs r0, 0x80 - orrs r0, r1 - strb r0, [r2, 0x9] - bx lr - .pool - thumb_func_end sub_81AFDD0 - - thumb_func_start AllocItemIconTemporaryBuffers -@ bool8 AllocItemIconTemporaryBuffers() -AllocItemIconTemporaryBuffers: @ 81AFDE4 - push {r4,r5,lr} - ldr r5, =gUnknown_0203CEBC - movs r0, 0x90 - lsls r0, 1 - bl Alloc - str r0, [r5] - cmp r0, 0 - beq _081AFE1A - ldr r4, =gUnknown_0203CEC0 - movs r0, 0x80 - lsls r0, 2 - bl AllocZeroed - str r0, [r4] - cmp r0, 0 - beq _081AFE14 - movs r0, 0x1 - b _081AFE1C - .pool -_081AFE14: - ldr r0, [r5] - bl Free -_081AFE1A: - movs r0, 0 -_081AFE1C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end AllocItemIconTemporaryBuffers - - thumb_func_start FreeItemIconTemporaryBuffers -@ void FreeItemIconTemporaryBuffers() -FreeItemIconTemporaryBuffers: @ 81AFE24 - push {lr} - ldr r0, =gUnknown_0203CEBC - ldr r0, [r0] - bl Free - ldr r0, =gUnknown_0203CEC0 - ldr r0, [r0] - bl Free - pop {r0} - bx r0 - .pool - thumb_func_end FreeItemIconTemporaryBuffers - - thumb_func_start CopyItemIconPicTo4x4Buffer -@ void CopyItemIconPicTo4x4Buffer(void *src, void *dest) -CopyItemIconPicTo4x4Buffer: @ 81AFE44 - push {r4-r6,lr} - adds r6, r0, 0 - adds r5, r1, 0 - movs r4, 0 -_081AFE4C: - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 5 - adds r0, r6, r0 - lsls r1, r4, 7 - adds r1, r5, r1 - movs r2, 0x30 - bl CpuSet - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _081AFE4C - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end CopyItemIconPicTo4x4Buffer - - thumb_func_start AddItemIconObject -@ u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId) -AddItemIconObject: @ 81AFE70 - push {r4-r7,lr} - sub sp, 0x10 - lsls r0, 16 - lsrs r7, r0, 16 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 16 - lsrs r5, r2, 16 - bl AllocItemIconTemporaryBuffers - lsls r0, 24 - cmp r0, 0 - beq _081AFF28 - adds r0, r5, 0 - movs r1, 0 - bl GetItemIconPicOrPalette - ldr r4, =gUnknown_0203CEBC - ldr r1, [r4] - bl LZDecompressWram - ldr r0, [r4] - ldr r4, =gUnknown_0203CEC0 - ldr r1, [r4] - bl CopyItemIconPicTo4x4Buffer - ldr r0, [r4] - str r0, [sp] - ldr r4, =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r4 - movs r1, 0x80 - lsls r1, 2 - orrs r0, r1 - lsls r2, r7, 16 - ldr r1, =0x0000ffff - ands r0, r1 - orrs r0, r2 - str r0, [sp, 0x4] - mov r0, sp - bl LoadObjectPic - adds r0, r5, 0 - movs r1, 0x1 - bl GetItemIconPicOrPalette - str r0, [sp, 0x8] - add r0, sp, 0x8 - ldr r1, [r0, 0x4] - ands r1, r4 - orrs r1, r6 - str r1, [r0, 0x4] - bl LoadCompressedObjectPalette - movs r0, 0x18 - bl Alloc - adds r5, r0, 0 - ldr r0, =gUnknown_08614FF4 - adds r1, r5, 0 - movs r2, 0xC - bl CpuSet - strh r7, [r5] - strh r6, [r5, 0x2] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl AddObjectToFront - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl FreeItemIconTemporaryBuffers - adds r0, r5, 0 - bl Free - adds r0, r4, 0 - b _081AFF2A - .pool -_081AFF28: - movs r0, 0x40 -_081AFF2A: - add sp, 0x10 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end AddItemIconObject - - thumb_func_start AddItemIconObjectWithCustomObjectTemplate -@ u8 AddItemIconObjectWithCustomObjectTemplate(struct objtemplate *objectTemplate, u16 tilesTag, u16 paletteTag, u16 itemId) -AddItemIconObjectWithCustomObjectTemplate: @ 81AFF34 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - mov r8, r0 - lsls r1, 16 - lsrs r7, r1, 16 - lsls r2, 16 - lsrs r6, r2, 16 - lsls r3, 16 - lsrs r5, r3, 16 - bl AllocItemIconTemporaryBuffers - lsls r0, 24 - cmp r0, 0 - beq _081AFFEC - adds r0, r5, 0 - movs r1, 0 - bl GetItemIconPicOrPalette - ldr r4, =gUnknown_0203CEBC - ldr r1, [r4] - bl LZDecompressWram - ldr r0, [r4] - ldr r4, =gUnknown_0203CEC0 - ldr r1, [r4] - bl CopyItemIconPicTo4x4Buffer - ldr r0, [r4] - str r0, [sp] - ldr r4, =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r4 - movs r1, 0x80 - lsls r1, 2 - orrs r0, r1 - lsls r2, r7, 16 - ldr r1, =0x0000ffff - ands r0, r1 - orrs r0, r2 - str r0, [sp, 0x4] - mov r0, sp - bl LoadObjectPic - adds r0, r5, 0 - movs r1, 0x1 - bl GetItemIconPicOrPalette - str r0, [sp, 0x8] - add r0, sp, 0x8 - ldr r1, [r0, 0x4] - ands r1, r4 - orrs r1, r6 - str r1, [r0, 0x4] - bl LoadCompressedObjectPalette - movs r0, 0x18 - bl Alloc - adds r5, r0, 0 - mov r0, r8 - adds r1, r5, 0 - movs r2, 0xC - bl CpuSet - strh r7, [r5] - strh r6, [r5, 0x2] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl AddObjectToFront - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl FreeItemIconTemporaryBuffers - adds r0, r5, 0 - bl Free - adds r0, r4, 0 - b _081AFFEE - .pool -_081AFFEC: - movs r0, 0x40 -_081AFFEE: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end AddItemIconObjectWithCustomObjectTemplate - - thumb_func_start GetItemIconPicOrPalette -@ u32 GetItemIconPicOrPalette(u16 itemId, u8 which) -GetItemIconPicOrPalette: @ 81AFFFC - push {lr} - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 24 - lsrs r1, 24 - ldr r0, =0x0000ffff - cmp r3, r0 - bne _081B0018 - ldr r3, =0x00000179 - b _081B0022 - .pool -_081B0018: - movs r0, 0xBC - lsls r0, 1 - cmp r3, r0 - bls _081B0022 - movs r3, 0 -_081B0022: - ldr r2, =gItemIconTable - lsls r0, r1, 2 - lsls r1, r3, 3 - adds r0, r1 - adds r0, r2 - ldr r0, [r0] - pop {r1} - bx r1 - .pool - thumb_func_end GetItemIconPicOrPalette - - thumb_func_start sub_81B0038 -sub_81B0038: @ 81B0038 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r4, [sp, 0x24] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp] - lsls r4, 24 - lsrs r6, r4, 24 - bl reset_brm - ldr r0, =gUnknown_0203CEC4 - mov r10, r0 - movs r0, 0x8E - lsls r0, 2 - bl Alloc - adds r5, r0, 0 - mov r1, r10 - str r5, [r1] - cmp r5, 0 - bne _081B0088 - ldr r0, [sp, 0x2C] - bl SetMainCallback2 - b _081B0194 - .pool -_081B0088: - ldr r3, =gUnknown_0203CEC8 - movs r1, 0xF - mov r4, r8 - ands r1, r4 - ldrb r2, [r3, 0x8] - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x8] - ldr r0, [sp, 0x2C] - str r0, [r3] - movs r4, 0 - strb r7, [r3, 0xB] - lsls r2, r6, 2 - ldrh r1, [r5, 0xA] - movs r0, 0x3 - ands r0, r1 - orrs r0, r2 - strh r0, [r5, 0xA] - ldr r0, [sp, 0x28] - str r0, [r5] - str r4, [r5, 0x4] - ldrb r1, [r5, 0x8] - movs r0, 0xF - negs r0, r0 - ands r0, r1 - strb r0, [r5, 0x8] - mov r1, r10 - ldr r2, [r1] - ldrh r0, [r2, 0x8] - movs r4, 0xFE - lsls r4, 3 - adds r1, r4, 0 - orrs r0, r1 - strh r0, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r1, 0xFE - lsls r1, 10 - orrs r0, r1 - str r0, [r2, 0x8] - adds r6, r3, 0 - mov r5, r8 - cmp r5, 0x4 - bne _081B00F0 - ldrb r0, [r2, 0x8] - movs r1, 0x1 - orrs r0, r1 - b _081B00F8 - .pool -_081B00F0: - ldrb r1, [r2, 0x8] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 -_081B00F8: - strb r0, [r2, 0x8] - mov r0, r9 - cmp r0, 0xFF - beq _081B0114 - movs r0, 0x3 - mov r1, r9 - ands r0, r1 - lsls r0, 4 - ldrb r2, [r6, 0x8] - movs r1, 0x31 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r6, 0x8] -_081B0114: - movs r2, 0 - ldr r5, =gUnknown_0203CEC4 - movs r4, 0x86 - lsls r4, 2 - movs r3, 0 -_081B011E: - ldr r0, [r5] - lsls r1, r2, 1 - adds r0, r4 - adds r0, r1 - strh r3, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0xF - bls _081B011E - movs r2, 0 - ldr r4, =gUnknown_0203CEC4 - movs r3, 0xFF -_081B0138: - ldr r0, [r4] - adds r0, 0xC - adds r0, r2 - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x2 - bls _081B0138 - ldr r4, [sp] - cmp r4, 0 - bne _081B015C - strb r4, [r6, 0x9] - b _081B017E - .pool -_081B015C: - adds r1, r6, 0 - movs r0, 0x9 - ldrsb r0, [r1, r0] - cmp r0, 0x5 - bgt _081B017A - adds r1, r0, 0 - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - bne _081B017E -_081B017A: - movs r0, 0 - strb r0, [r6, 0x9] -_081B017E: - ldr r2, =gTextFlags - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - bl calc_player_party_count - ldr r0, =c2_811EBD0 - bl SetMainCallback2 -_081B0194: - 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_81B0038 - - thumb_func_start sub_81B01B0 -sub_81B01B0: @ 81B01B0 - push {lr} - bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_81B01B0 - - thumb_func_start sub_81B01CC -sub_81B01CC: @ 81B01CC - push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_81B01CC - - thumb_func_start c2_811EBD0 -c2_811EBD0: @ 81B01E0 - push {lr} -_081B01E2: - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B0206 - bl sub_81B020C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B0206 - bl sub_81221AC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081B01E2 -_081B0206: - pop {r0} - bx r0 - thumb_func_end c2_811EBD0 - - thumb_func_start sub_81B020C -sub_81B020C: @ 81B020C - push {r4,lr} - sub sp, 0x4 - ldr r1, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0x16 - bls _081B0222 - b _081B0498 -_081B0222: - lsls r0, 2 - ldr r1, =_081B0234 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081B0234: - .4byte _081B0290 - .4byte _081B02AC - .4byte _081B02B2 - .4byte _081B02D4 - .4byte _081B02DA - .4byte _081B02EC - .4byte _081B02FE - .4byte _081B0310 - .4byte _081B0338 - .4byte _081B0354 - .4byte _081B0368 - .4byte _081B038C - .4byte _081B03A0 - .4byte _081B03A6 - .4byte _081B03B8 - .4byte _081B03BE - .4byte _081B03E0 - .4byte _081B0400 - .4byte _081B0414 - .4byte _081B0428 - .4byte _081B0430 - .4byte _081B044C - .4byte _081B0474 -_081B0290: - bl SetVBlankHBlankCallbacksToNull - bl sub_8121DA0 - bl clear_scheduled_bg_copies_to_vram - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081B048C - .pool -_081B02AC: - bl remove_some_task - b _081B0484 -_081B02B2: - bl ResetPaletteFade - ldr r2, =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081B048C - .pool -_081B02D4: - bl ResetAllObjectData - b _081B0484 -_081B02DA: - bl ResetObjectPaletteAllocator - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081B048C - .pool -_081B02EC: - bl sub_81221AC - lsls r0, 24 - cmp r0, 0 - beq _081B02F8 - b _081B0484 -_081B02F8: - bl ResetTasks - b _081B0484 -_081B02FE: - bl sub_81B209C - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081B048C - .pool -_081B0310: - bl sub_81B0550 - lsls r0, 24 - cmp r0, 0 - bne _081B0322 - bl sub_81B04BC - movs r0, 0x1 - b _081B04B2 -_081B0322: - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - movs r1, 0x86 - lsls r1, 2 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - b _081B0484 - .pool -_081B0338: - bl sub_81B05C8 - lsls r0, 24 - cmp r0, 0 - bne _081B0344 - b _081B04B0 -_081B0344: - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081B048C - .pool -_081B0354: - ldr r0, =gUnknown_0203CEC8 - ldrb r0, [r0, 0x8] - lsls r0, 26 - lsrs r0, 30 - bl sub_81B239C - b _081B0484 - .pool -_081B0368: - ldr r0, =gUnknown_0203CEC8 - ldrb r0, [r0, 0x8] - lsls r0, 26 - lsrs r0, 30 - bl sub_81B0740 - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - movs r1, 0x86 - lsls r1, 2 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - b _081B0484 - .pool -_081B038C: - bl sub_81B5D30 - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081B048C - .pool -_081B03A0: - bl sub_81B6040 - b _081B0484 -_081B03A6: - bl sub_81B6160 - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081B048C - .pool -_081B03B8: - bl sub_80D2F04 - b _081B0484 -_081B03BE: - bl party_menu_add_per_mon_objects - lsls r0, 24 - cmp r0, 0 - bne _081B03CA - b _081B04B0 -_081B03CA: - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - movs r1, 0x86 - lsls r1, 2 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - b _081B0484 - .pool -_081B03E0: - bl sub_81B0DA0 - lsls r0, 24 - cmp r0, 0 - beq _081B04B0 - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - movs r1, 0x86 - lsls r1, 2 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - b _081B0484 - .pool -_081B0400: - bl sub_81B0F28 - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081B048C - .pool -_081B0414: - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - ldrb r0, [r0, 0x8] - lsls r0, 31 - lsrs r0, 31 - bl sub_81B2428 - b _081B0484 - .pool -_081B0428: - movs r0, 0x87 - lsls r0, 3 - adds r1, r2, r0 - b _081B048C -_081B0430: - ldr r4, =gUnknown_0203CEC4 - ldr r0, [r4] - ldr r0, [r0] - movs r1, 0 - bl CreateTask - ldr r0, [r4] - ldrh r0, [r0, 0xA] - lsrs r0, 2 - bl display_pokemon_menu_message - b _081B0484 - .pool -_081B044C: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - ldr r2, =gPaletteFade - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081B048C - .pool -_081B0474: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_081B0484: - ldr r1, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r1, r2 -_081B048C: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _081B04B0 - .pool -_081B0498: - ldr r0, =sub_81B01CC - bl SetVBlankCallback - ldr r0, =sub_81B01B0 - bl SetMainCallback2 - movs r0, 0x1 - b _081B04B2 - .pool -_081B04B0: - movs r0, 0 -_081B04B2: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81B020C - - thumb_func_start sub_81B04BC -sub_81B04BC: @ 81B04BC - push {lr} - sub sp, 0x4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, =sub_81B04F8 - movs r1, 0 - bl CreateTask - ldr r0, =sub_81B01CC - bl SetVBlankCallback - ldr r0, =sub_81B01B0 - bl SetMainCallback2 - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B04BC - - thumb_func_start sub_81B04F8 -sub_81B04F8: @ 81B04F8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081B051C - ldr r0, =gUnknown_0203CEC8 - ldr r0, [r0] - bl SetMainCallback2 - bl sub_81B06F4 - adds r0, r4, 0 - bl DestroyTask -_081B051C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B04F8 - - thumb_func_start reset_brm -reset_brm: @ 81B052C - ldr r0, =gUnknown_0203CEC4 - movs r1, 0 - str r1, [r0] - ldr r0, =gUnknown_0203CEE4 - str r1, [r0] - ldr r0, =gUnknown_0203CEDC - str r1, [r0] - ldr r0, =gUnknown_0203CEE0 - str r1, [r0] - bx lr - .pool - thumb_func_end reset_brm - - thumb_func_start sub_81B0550 -sub_81B0550: @ 81B0550 - push {r4,r5,lr} - ldr r5, =gUnknown_0203CEE4 - movs r4, 0x80 - lsls r4, 4 - adds r0, r4, 0 - bl Alloc - str r0, [r5] - cmp r0, 0 - beq _081B05C0 - movs r1, 0 - adds r2, r4, 0 - bl memset - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_086156B8 - movs r0, 0 - movs r2, 0x3 - bl InitBgsFromTemplates - ldr r1, [r5] - movs r0, 0x1 - bl SetBgTilemapBuffer - bl sub_8121E10 - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x1 - b _081B05C2 - .pool -_081B05C0: - movs r0, 0 -_081B05C2: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81B0550 - - thumb_func_start sub_81B05C8 -sub_81B05C8: @ 81B05C8 - push {r4,lr} - sub sp, 0x4 - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - movs r1, 0x86 - lsls r1, 2 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x7 - bhi _081B06B0 - lsls r0, 2 - ldr r1, =_081B05F0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081B05F0: - .4byte _081B0610 - .4byte _081B0638 - .4byte _081B0658 - .4byte _081B0684 - .4byte _081B0688 - .4byte _081B068C - .4byte _081B0690 - .4byte _081B0694 -_081B0610: - ldr r4, =gUnknown_0203CEE0 - ldr r0, =gUnknown_08D967EC - mov r1, sp - bl malloc_and_decompress - adds r1, r0, 0 - str r1, [r4] - ldr r2, [sp] - lsls r2, 16 - lsrs r2, 16 - movs r0, 0x1 - movs r3, 0 - bl LoadBgTiles - b _081B069A - .pool -_081B0638: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _081B06B4 - ldr r0, =gUnknown_08D96BA0 - ldr r1, =gUnknown_0203CEE4 - ldr r1, [r1] - bl LZDecompressWram - b _081B069A - .pool -_081B0658: - ldr r0, =gUnknown_08D96AB4 - movs r2, 0xB0 - lsls r2, 1 - movs r1, 0 - bl LoadCompressedPalette - ldr r0, =gPlttBufferUnfaded - ldr r4, =gUnknown_0203CEC4 - ldr r1, [r4] - adds r1, 0x18 - movs r2, 0xB0 - bl CpuSet - ldr r1, [r4] - b _081B069E - .pool -_081B0684: - movs r0, 0x4 - b _081B0696 -_081B0688: - movs r0, 0x5 - b _081B0696 -_081B068C: - movs r0, 0x6 - b _081B0696 -_081B0690: - movs r0, 0x7 - b _081B0696 -_081B0694: - movs r0, 0x8 -_081B0696: - bl sub_81B06C0 -_081B069A: - ldr r0, =gUnknown_0203CEC4 - ldr r1, [r0] -_081B069E: - movs r0, 0x86 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _081B06B4 - .pool -_081B06B0: - movs r0, 0x1 - b _081B06B6 -_081B06B4: - movs r0, 0 -_081B06B6: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81B05C8 - - thumb_func_start sub_81B06C0 -sub_81B06C0: @ 81B06C0 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 28 - ldr r5, =gPlttBufferUnfaded + 0x60 - lsrs r4, 23 - adds r1, r5, 0 - subs r1, 0x60 - adds r1, r4, r1 - adds r0, r5, 0 - movs r2, 0x10 - bl CpuSet - ldr r0, =gPlttBufferFaded - adds r4, r0 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x10 - bl CpuSet - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B06C0 - - thumb_func_start sub_81B06F4 -sub_81B06F4: @ 81B06F4 - push {lr} - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - cmp r0, 0 - beq _081B0702 - bl Free -_081B0702: - ldr r0, =gUnknown_0203CEE4 - ldr r0, [r0] - cmp r0, 0 - beq _081B070E - bl Free -_081B070E: - ldr r0, =gUnknown_0203CEE0 - ldr r0, [r0] - cmp r0, 0 - beq _081B071A - bl Free -_081B071A: - ldr r0, =gUnknown_0203CEDC - ldr r0, [r0] - cmp r0, 0 - beq _081B0726 - bl Free -_081B0726: - bl FreeAllWindowBuffers - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B06F4 - - thumb_func_start sub_81B0740 -sub_81B0740: @ 81B0740 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r4, =gUnknown_0203CEDC - movs r0, 0x60 - bl Alloc - str r0, [r4] - movs r5, 0 - lsls r0, r7, 1 - adds r0, r7 - lsls r0, 4 - mov r8, r0 - movs r6, 0xFF - mov r9, r4 -_081B0764: - ldr r2, [r4] - lsls r3, r5, 4 - adds r2, r3, r2 - ldr r0, =gUnknown_086156E4 - mov r12, r0 - str r0, [r2] - lsls r0, r5, 3 - ldr r1, =gUnknown_08615704 - adds r0, r1 - add r0, r8 - str r0, [r2, 0x4] - strb r5, [r2, 0x8] - ldr r1, [r4] - adds r1, r3, r1 - ldrb r0, [r1, 0x9] - orrs r0, r6 - strb r0, [r1, 0x9] - ldr r1, [r4] - adds r1, r3, r1 - ldrb r0, [r1, 0xA] - orrs r0, r6 - strb r0, [r1, 0xA] - ldr r1, [r4] - adds r1, r3, r1 - ldrb r0, [r1, 0xB] - orrs r0, r6 - strb r0, [r1, 0xB] - ldr r0, [r4] - adds r3, r0 - ldrb r0, [r3, 0xC] - orrs r0, r6 - strb r0, [r3, 0xC] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _081B0764 - mov r1, r9 - ldr r0, [r1] - mov r1, r12 - subs r1, 0x20 - str r1, [r0] - cmp r7, 0x3 - bne _081B07CC - str r1, [r0, 0x30] - b _081B07D2 - .pool -_081B07CC: - cmp r7, 0 - beq _081B07D2 - str r1, [r0, 0x10] -_081B07D2: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81B0740 - - thumb_func_start sub_81B07E0 -sub_81B07E0: @ 81B07E0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gUnknown_0203CEC8 - ldrb r1, [r0, 0x8] - movs r0, 0xF - ands r0, r1 - cmp r0, 0x5 - bne _081B085C - cmp r5, 0x2 - bls _081B085C - adds r0, r5, 0 - bl sub_81B0CEC - ldr r0, =gUnknown_02022FF8 - subs r1, r5, 0x3 - lsls r1, 5 - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - bne _081B0828 - ldr r0, =gUnknown_0203CEDC - lsls r4, r5, 4 - ldr r0, [r0] - adds r0, r4 - movs r1, 0x40 - bl sub_81B2748 - b _081B0836 - .pool -_081B0828: - ldr r0, =gUnknown_0203CEDC - lsls r4, r5, 4 - ldr r0, [r0] - adds r0, r4 - movs r1, 0x8 - bl sub_81B2748 -_081B0836: - adds r5, r4, 0 - ldr r4, =gUnknown_0203CEDC - ldr r0, [r4] - adds r0, r5, r0 - ldrb r0, [r0, 0x8] - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, [r4] - adds r0, r5, r0 - ldrb r0, [r0, 0x8] - bl PutWindowTilemap - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - b _081B093E - .pool -_081B085C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - bne _081B089C - ldr r4, =gUnknown_0203CEDC - ldr r0, [r4] - lsls r5, 4 - adds r0, r5, r0 - ldrb r0, [r0, 0x8] - bl sub_81B2720 - ldr r0, [r4] - adds r0, r5 - movs r1, 0x40 - bl sub_81B2748 - ldr r0, [r4] - adds r0, r5, r0 - ldrb r0, [r0, 0x8] - movs r1, 0x2 - bl CopyWindowToVram - b _081B092C - .pool -_081B089C: - ldr r0, =gUnknown_0203CEC8 - ldrb r0, [r0, 0x8] - movs r1, 0xF - ands r1, r0 - cmp r1, 0x7 - bne _081B08B4 - adds r0, r5, 0 - bl sub_81B0B60 - b _081B08F6 - .pool -_081B08B4: - cmp r1, 0x2 - bne _081B08C0 - adds r0, r5, 0 - bl sub_81B0B08 - b _081B08F6 -_081B08C0: - cmp r1, 0x4 - bne _081B08CC - adds r0, r5, 0 - bl sub_81B0A9C - b _081B08F6 -_081B08CC: - cmp r1, 0xB - bne _081B08D8 - adds r0, r5, 0 - bl sub_81B0B98 - b _081B08F6 -_081B08D8: - cmp r1, 0xC - bne _081B08E4 - adds r0, r5, 0 - bl sub_81B0BC4 - b _081B08F6 -_081B08E4: - adds r0, r5, 0 - bl sub_81B0BFC - lsls r0, 24 - cmp r0, 0 - bne _081B08F6 - adds r0, r5, 0 - bl sub_81B0948 -_081B08F6: - ldr r2, =gUnknown_0203CEC8 - ldrb r1, [r2, 0x8] - movs r0, 0xF - ands r0, r1 - cmp r0, 0x5 - bne _081B0910 - adds r0, r5, 0 - movs r1, 0 - bl sub_81B0FCC - b _081B092A - .pool -_081B0910: - movs r0, 0x9 - ldrsb r0, [r2, r0] - cmp r0, r5 - bne _081B0922 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_81B0FCC - b _081B092A -_081B0922: - adds r0, r5, 0 - movs r1, 0 - bl sub_81B0FCC -_081B092A: - lsls r5, 4 -_081B092C: - ldr r0, =gUnknown_0203CEDC - ldr r0, [r0] - adds r0, r5, r0 - ldrb r0, [r0, 0x8] - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram -_081B093E: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B07E0 - - thumb_func_start sub_81B0948 -sub_81B0948: @ 81B0948 - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x64 - adds r1, r4, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r7, r1, r0 - adds r0, r7, 0 - movs r1, 0x2D - bl GetMonData - adds r2, r0, 0 - cmp r2, 0 - beq _081B09A0 - ldr r6, =gUnknown_0203CEDC - ldr r0, [r6] - lsls r5, r4, 4 - adds r0, r5, r0 - ldr r2, [r0] - ldrb r0, [r0, 0x8] - movs r1, 0 - str r1, [sp] - movs r1, 0x1 - str r1, [sp, 0x4] - ldr r4, [r2] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl _call_via_r4 - ldr r1, [r6] - adds r1, r5 - adds r0, r7, 0 - movs r2, 0 - bl sub_81B2A70 - b _081B0A02 - .pool -_081B09A0: - ldr r5, =gUnknown_0203CEDC - ldr r0, [r5] - lsls r4, 4 - adds r0, r4, r0 - ldr r1, [r0] - ldrb r0, [r0, 0x8] - str r2, [sp] - str r2, [sp, 0x4] - ldr r6, [r1] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl _call_via_r6 - ldr r1, [r5] - adds r1, r4 - adds r0, r7, 0 - movs r2, 0 - bl sub_81B2A70 - ldr r1, [r5] - adds r1, r4 - adds r0, r7, 0 - movs r2, 0 - bl sub_81B2AC8 - ldr r1, [r5] - adds r1, r4 - adds r0, r7, 0 - movs r2, 0 - bl sub_81B2B8C - ldr r1, [r5] - adds r1, r4 - adds r0, r7, 0 - movs r2, 0 - bl sub_81B2CD4 - ldr r1, [r5] - adds r1, r4 - adds r0, r7, 0 - movs r2, 0 - bl sub_81B2D74 - ldr r1, [r5] - adds r1, r4 - adds r0, r7, 0 - bl sub_81B2E28 -_081B0A02: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B0948 - - thumb_func_start sub_81B0A10 -sub_81B0A10: @ 81B0A10 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - movs r1, 0x64 - adds r2, r0, 0 - muls r2, r1 - ldr r1, =gPlayerParty - adds r6, r2, r1 - ldr r7, =gUnknown_0203CEDC - ldr r1, [r7] - lsls r5, r0, 4 - adds r1, r5, r1 - ldr r2, [r1] - ldrb r0, [r1, 0x8] - movs r1, 0 - str r1, [sp] - movs r1, 0x1 - str r1, [sp, 0x4] - ldr r4, [r2] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl _call_via_r4 - ldr r1, [r7] - adds r1, r5 - adds r0, r6, 0 - movs r2, 0 - bl sub_81B2A70 - adds r0, r6, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _081B0A7C - ldr r1, [r7] - adds r1, r5 - adds r0, r6, 0 - movs r2, 0 - bl sub_81B2AC8 - ldr r1, [r7] - adds r1, r5 - adds r0, r6, 0 - movs r2, 0 - bl sub_81B2B8C -_081B0A7C: - ldr r1, [r7] - adds r1, r5 - mov r0, r8 - movs r2, 0 - bl sub_81B2FA8 - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B0A10 - - thumb_func_start sub_81B0A9C -sub_81B0A9C: @ 81B0A9C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r6, =gUnknown_0203CEF8 - bl sub_81B85AC - lsls r0, 24 - cmp r0, 0 - bne _081B0AD6 - adds r0, r5, 0 - movs r1, 0x7 - bl sub_81B0A10 - b _081B0B02 - .pool -_081B0AC8: - adds r1, r4, 0x2 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl sub_81B0A10 - b _081B0B02 -_081B0AD6: - movs r4, 0 - b _081B0AEE -_081B0ADA: - adds r1, r6, r4 - ldrb r0, [r1] - cmp r0, 0 - beq _081B0AE8 - subs r0, 0x1 - cmp r0, r5 - beq _081B0AC8 -_081B0AE8: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_081B0AEE: - bl sub_81B8830 - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcc _081B0ADA - adds r0, r5, 0 - movs r1, 0x1 - bl sub_81B0A10 -_081B0B02: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81B0A9C - - thumb_func_start sub_81B0B08 -sub_81B0B08: @ 81B0B08 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x64 - muls r0, r4 - ldr r1, =gPlayerParty - adds r0, r1 - bl sub_80DAE0C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _081B0B5A - lsls r0, 2 - ldr r1, =_081B0B34 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081B0B34: - .4byte _081B0B48 - .4byte _081B0B52 - .4byte _081B0B52 - .4byte _081B0B48 - .4byte _081B0B48 -_081B0B48: - adds r0, r4, 0 - movs r1, 0x7 - bl sub_81B0A10 - b _081B0B5A -_081B0B52: - adds r0, r4, 0 - movs r1, 0x6 - bl sub_81B0A10 -_081B0B5A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81B0B08 - - thumb_func_start sub_81B0B60 -sub_81B0B60: @ 81B0B60 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x64 - muls r0, r4 - ldr r1, =gPlayerParty - adds r0, r1 - bl sub_806E25C - lsls r0, 24 - cmp r0, 0 - bne _081B0B88 - adds r0, r4, 0 - movs r1, 0x9 - bl sub_81B0A10 - b _081B0B90 - .pool -_081B0B88: - adds r0, r4, 0 - movs r1, 0x8 - bl sub_81B0A10 -_081B0B90: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81B0B60 - - thumb_func_start sub_81B0B98 -sub_81B0B98: @ 81B0B98 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_81B218C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081B0BB6 - adds r0, r4, 0 - movs r1, 0x6 - bl sub_81B0A10 - b _081B0BBE -_081B0BB6: - adds r0, r4, 0 - movs r1, 0x7 - bl sub_81B0A10 -_081B0BBE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81B0B98 - - thumb_func_start sub_81B0BC4 -sub_81B0BC4: @ 81B0BC4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x64 - muls r0, r4 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xC - bl GetMonData - cmp r0, 0 - beq _081B0BEC - adds r0, r4, 0 - movs r1, 0xB - bl sub_81B0A10 - b _081B0BF4 - .pool -_081B0BEC: - adds r0, r4, 0 - movs r1, 0xC - bl sub_81B0A10 -_081B0BF4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81B0BC4 - - thumb_func_start sub_81B0BFC -sub_81B0BFC: @ 81B0BFC - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r6, r1, r0 - ldr r0, =gUnknown_0203CE7C - ldrh r4, [r0] - ldr r0, =gUnknown_0203CEC8 - ldrb r0, [r0, 0xB] - cmp r0, 0xC - bne _081B0C40 - ldr r1, =gUnknown_020375F0 - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_020375E2 - ldrb r2, [r0] - adds r0, r5, 0 - movs r1, 0 - bl sub_81B0C94 - b _081B0C8A - .pool -_081B0C40: - cmp r0, 0x3 - bne _081B0C56 - adds r0, r4, 0 - bl CheckIfItemIsTMHMOrEvolutionStone - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B0C5A - cmp r0, 0x2 - beq _081B0C66 -_081B0C56: - movs r0, 0 - b _081B0C8C -_081B0C5A: - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0 - bl sub_81B0C94 - b _081B0C8A -_081B0C66: - adds r0, r6, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _081B0C82 - adds r0, r6, 0 - movs r1, 0x3 - adds r2, r4, 0 - bl GetEvolutionTargetSpecies - lsls r0, 16 - cmp r0, 0 - bne _081B0C56 -_081B0C82: - adds r0, r5, 0 - movs r1, 0 - bl sub_81B0A10 -_081B0C8A: - movs r0, 0x1 -_081B0C8C: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81B0BFC - - thumb_func_start sub_81B0C94 -sub_81B0C94: @ 81B0C94 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 24 - lsrs r2, 24 - movs r0, 0x64 - muls r0, r4 - ldr r3, =gPlayerParty - adds r0, r3 - bl sub_81B22D8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - beq _081B0CD2 - cmp r0, 0x2 - bgt _081B0CC4 - cmp r0, 0x1 - beq _081B0CC8 - b _081B0CDC - .pool -_081B0CC4: - cmp r0, 0x3 - bne _081B0CDC -_081B0CC8: - adds r0, r4, 0 - movs r1, 0x9 - bl sub_81B0A10 - b _081B0CE4 -_081B0CD2: - adds r0, r4, 0 - movs r1, 0xA - bl sub_81B0A10 - b _081B0CE4 -_081B0CDC: - adds r0, r4, 0 - movs r1, 0x8 - bl sub_81B0A10 -_081B0CE4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81B0C94 - - thumb_func_start sub_81B0CEC -sub_81B0CEC: @ 81B0CEC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0203CEDC - lsls r2, r0, 4 - ldr r1, [r1] - adds r6, r1, r2 - subs r0, 0x3 - lsls r0, 24 - ldr r5, =gUnknown_02022FF8 - lsrs r0, 19 - mov r8, r0 - adds r7, r0, r5 - ldrh r0, [r7] - cmp r0, 0 - bne _081B0D24 - ldrb r0, [r6, 0x8] - bl sub_81B2720 - b _081B0D8E - .pool -_081B0D24: - ldr r2, [r6] - ldrb r0, [r6, 0x8] - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - ldr r4, [r2] - movs r2, 0 - movs r3, 0 - bl _call_via_r4 - ldr r4, =gStringVar1 - adds r5, 0x4 - add r5, r8 - adds r0, r4, 0 - adds r1, r5, 0 - bl StringCopy - adds r0, r4, 0 - bl StringGetEnd10 - adds r0, r4, 0 - bl sub_81DB52C - ldrb r0, [r6, 0x8] - ldr r3, [r6] - adds r3, 0x4 - adds r1, r4, 0 - movs r2, 0 - bl sub_81B2A3C - ldrb r0, [r7, 0xF] - adds r1, r6, 0 - bl sub_81B2B40 - ldrb r0, [r7, 0x1C] - ldrh r1, [r7] - adds r2, r5, 0 - adds r3, r6, 0 - bl sub_81B2BF4 - ldrh r0, [r7, 0x10] - adds r1, r6, 0 - bl sub_81B2D3C - ldrh r0, [r7, 0x12] - adds r1, r6, 0 - bl sub_81B2DDC - ldrh r0, [r7, 0x10] - ldrh r1, [r7, 0x12] - adds r2, r6, 0 - bl sub_81B2E64 -_081B0D8E: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B0CEC - - thumb_func_start sub_81B0DA0 -sub_81B0DA0: @ 81B0DA0 - push {r4,r5,lr} - ldr r5, =gUnknown_0203CEC4 - ldr r0, [r5] - movs r4, 0x86 - lsls r4, 2 - adds r0, r4 - ldrb r0, [r0] - bl sub_81B07E0 - ldr r1, [r5] - adds r1, r4 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - beq _081B0DCC - movs r0, 0 - b _081B0DCE - .pool -_081B0DCC: - movs r0, 0x1 -_081B0DCE: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81B0DA0 - - thumb_func_start sub_81B0DD4 -sub_81B0DD4: @ 81B0DD4 - lsls r0, 16 - ldr r1, =gUnknown_0203CEE0 - lsrs r0, 11 - ldr r1, [r1] - adds r1, r0 - adds r0, r1, 0 - bx lr - .pool - thumb_func_end sub_81B0DD4 - - thumb_func_start party_menu_add_per_mon_objects_internal -party_menu_add_per_mon_objects_internal: @ 81B0DE8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, =gUnknown_0203CEC8 - ldrb r1, [r0, 0x8] - movs r0, 0xF - ands r0, r1 - cmp r0, 0x5 - bne _081B0E98 - cmp r7, 0x2 - bls _081B0E98 - subs r0, r7, 0x3 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r0, =gUnknown_02022FF8 - mov r9, r0 - mov r2, r10 - lsls r2, 5 - mov r8, r2 - mov r6, r8 - add r6, r9 - ldrh r0, [r6] - cmp r0, 0 - beq _081B0EDC - mov r1, r9 - adds r1, 0x18 - add r1, r8 - ldr r1, [r1] - ldr r4, =gUnknown_0203CEDC - lsls r5, r7, 4 - ldr r2, [r4] - adds r2, r5 - movs r3, 0 - str r3, [sp] - bl party_menu_link_mon_icon_anim - ldrh r0, [r6] - ldrh r1, [r6, 0x2] - ldr r2, [r4] - adds r2, r5 - bl party_menu_link_mon_held_item_object - ldrh r0, [r6] - ldr r1, [r4] - adds r1, r5 - bl party_menu_link_mon_pokeball_object - ldrh r0, [r6, 0x10] - cmp r0, 0 - bne _081B0E68 - movs r3, 0x7 - b _081B0E78 - .pool -_081B0E68: - mov r0, r9 - adds r0, 0x14 - add r0, r8 - ldr r0, [r0] - bl pokemon_ailments_get_primary - lsls r0, 24 - lsrs r3, r0, 24 -_081B0E78: - ldr r1, =gUnknown_02022FF8 - mov r2, r10 - lsls r0, r2, 5 - adds r0, r1 - ldrh r0, [r0] - ldr r1, =gUnknown_0203CEDC - ldr r2, [r1] - adds r2, r5 - adds r1, r3, 0 - bl party_menu_link_mon_status_condition_object - b _081B0EDC - .pool -_081B0E98: - movs r0, 0x64 - adds r1, r7, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r6, r1, r0 - adds r0, r6, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _081B0EDC - ldr r4, =gUnknown_0203CEDC - lsls r5, r7, 4 - ldr r1, [r4] - adds r1, r5 - adds r0, r6, 0 - adds r2, r7, 0 - bl party_menu_icon_anim - ldr r1, [r4] - adds r1, r5 - adds r0, r6, 0 - bl party_menu_held_item_object - ldr r1, [r4] - adds r1, r5 - adds r0, r6, 0 - bl party_menu_pokeball_object - ldr r1, [r4] - adds r1, r5 - adds r0, r6, 0 - bl party_menu_status_condition_object -_081B0EDC: - 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 party_menu_add_per_mon_objects_internal - - thumb_func_start party_menu_add_per_mon_objects -party_menu_add_per_mon_objects: @ 81B0EF4 - push {r4,r5,lr} - ldr r5, =gUnknown_0203CEC4 - ldr r0, [r5] - movs r4, 0x86 - lsls r4, 2 - adds r0, r4 - ldrb r0, [r0] - bl party_menu_add_per_mon_objects_internal - ldr r1, [r5] - adds r1, r4 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - beq _081B0F20 - movs r0, 0 - b _081B0F22 - .pool -_081B0F20: - movs r0, 0x1 -_081B0F22: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end party_menu_add_per_mon_objects - - thumb_func_start sub_81B0F28 -sub_81B0F28: @ 81B0F28 - push {r4,lr} - sub sp, 0xC - ldr r0, =gUnknown_0203CEC8 - ldrb r1, [r0, 0x8] - movs r0, 0xF - ands r0, r1 - cmp r0, 0x5 - bne _081B0F54 - movs r0, 0x7 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r1, 0xE - movs r2, 0x17 - movs r3, 0x11 - bl FillBgTilemapBufferRect - b _081B0FBC - .pool -_081B0F54: - ldr r4, =gUnknown_0203CEC4 - ldr r0, [r4] - ldrb r0, [r0, 0x8] - lsls r0, 31 - cmp r0, 0 - beq _081B0F94 - movs r0, 0xBF - movs r1, 0x88 - bl sub_81B5F74 - ldr r3, [r4] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x7F - ands r0, r1 - lsls r0, 4 - ldrh r2, [r3, 0x8] - ldr r1, =0xfffff80f - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x8] - bl sub_81B120C - movs r0, 0xBF - movs r1, 0x98 - bl sub_81B5F74 - b _081B0F9C - .pool -_081B0F94: - movs r0, 0xC6 - movs r1, 0x94 - bl sub_81B5F34 -_081B0F9C: - ldr r3, [r4] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x7F - ands r0, r1 - lsls r0, 11 - ldr r1, [r3, 0x8] - ldr r2, =0xfffc07ff - ands r1, r2 - orrs r1, r0 - str r1, [r3, 0x8] - ldr r0, =gUnknown_0203CEC8 - ldrb r0, [r0, 0x9] - movs r1, 0x1 - bl sub_81B0FCC -_081B0FBC: - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B0F28 - - thumb_func_start sub_81B0FCC -sub_81B0FCC: @ 81B0FCC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - cmp r7, 0x6 - beq _081B1038 - cmp r7, 0x7 - beq _081B1074 - movs r0, 0x64 - muls r0, r7 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _081B10E8 - ldr r6, =gUnknown_0203CEDC - lsls r5, r7, 4 - ldr r4, [r6] - adds r4, r5 - adds r0, r7, 0 - mov r1, r8 - bl sub_81B10F8 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_81B2748 - ldr r0, [r6] - adds r0, r5, r0 - ldrb r0, [r0, 0x9] - mov r1, r8 - bl sub_81B5B6C - ldr r0, [r6] - adds r5, r0 - ldrb r0, [r5, 0xB] - mov r1, r8 - bl sub_81B5F98 - b _081B10E8 - .pool -_081B1038: - mov r0, r8 - cmp r0, 0 - bne _081B1052 - movs r0, 0x2 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r1, 0x17 - movs r2, 0x10 - movs r3, 0x7 - bl sub_8199C30 - b _081B1064 -_081B1052: - movs r0, 0x2 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0x17 - movs r2, 0x10 - movs r3, 0x7 - bl sub_8199C30 -_081B1064: - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - ldrh r0, [r0, 0x8] - lsls r0, 21 - b _081B10DA - .pool -_081B1074: - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - ldrb r0, [r0, 0x8] - lsls r0, 31 - cmp r0, 0 - bne _081B10A6 - mov r0, r8 - cmp r0, 0 - bne _081B1098 - movs r0, 0x2 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r1, 0x17 - movs r2, 0x11 - b _081B10B8 - .pool -_081B1098: - movs r0, 0x2 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0x17 - movs r2, 0x11 - b _081B10B8 -_081B10A6: - mov r0, r8 - cmp r0, 0 - bne _081B10C0 - movs r0, 0x2 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r1, 0x17 - movs r2, 0x12 -_081B10B8: - movs r3, 0x7 - bl sub_8199C30 - b _081B10D2 -_081B10C0: - movs r0, 0x2 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0x17 - movs r2, 0x12 - movs r3, 0x7 - bl sub_8199C30 -_081B10D2: - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - ldr r0, [r0, 0x8] - lsls r0, 14 -_081B10DA: - lsrs r0, 25 - mov r1, r8 - bl sub_81B5F98 - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram -_081B10E8: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B0FCC - - thumb_func_start sub_81B10F8 -sub_81B10F8: @ 81B10F8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r1, 24 - movs r4, 0 - cmp r1, 0x1 - bne _081B110A - movs r4, 0x1 -_081B110A: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _081B1120 - movs r0, 0x2 - orrs r4, r0 -_081B1120: - adds r0, r5, 0 - bl sub_81B118C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081B1136 - movs r0, 0x8 - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_081B1136: - ldr r0, =gUnknown_0203CEC8 - ldrb r1, [r0, 0xB] - adds r2, r0, 0 - cmp r1, 0x9 - bne _081B1148 - movs r0, 0x10 - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_081B1148: - cmp r1, 0x8 - bne _081B1164 - movs r0, 0x9 - ldrsb r0, [r2, r0] - cmp r5, r0 - beq _081B115C - movs r0, 0xA - ldrsb r0, [r2, r0] - cmp r5, r0 - bne _081B1164 -_081B115C: - movs r0, 0x4 - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_081B1164: - ldrb r0, [r2, 0xB] - cmp r0, 0xA - bne _081B117A - movs r0, 0x9 - ldrsb r0, [r2, r0] - cmp r5, r0 - bne _081B117A - movs r0, 0x20 - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_081B117A: - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81B10F8 - - thumb_func_start sub_81B118C -sub_81B118C: @ 81B118C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gUnknown_0203CEC8 - ldrb r1, [r0, 0x8] - movs r0, 0x30 - ands r0, r1 - cmp r0, 0x20 - bne _081B11B4 - cmp r2, 0x1 - beq _081B11AA - cmp r2, 0x4 - beq _081B11AA - cmp r2, 0x5 - bne _081B11B4 -_081B11AA: - movs r0, 0x1 - b _081B11F8 - .pool -_081B11B4: - cmp r2, 0x2 - bhi _081B11F6 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 11 - ands r0, r1 - cmp r0, 0 - beq _081B11F6 - ldr r0, =gMain - ldr r1, =0x00000439 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081B11F6 - adds r0, r2, 0 - bl sub_81B8F38 - ldr r1, =gUnknown_0202449C - ldr r1, [r1] - movs r2, 0xA8 - lsls r2, 2 - adds r1, r2 - ldrb r1, [r1] - lsls r0, 24 - lsrs r0, 24 - asrs r1, r0 - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - bne _081B11F8 -_081B11F6: - movs r0, 0 -_081B11F8: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81B118C - - thumb_func_start sub_81B120C -sub_81B120C: @ 81B120C - push {r4-r6,lr} - sub sp, 0xC - ldr r1, =gUnknown_086157C4 - movs r6, 0x7 - str r6, [sp] - movs r5, 0x2 - str r5, [sp, 0x4] - movs r4, 0x11 - str r4, [sp, 0x8] - movs r0, 0x1 - movs r2, 0x17 - movs r3, 0x10 - bl CopyToBgTilemapBufferRect_ChangePalette - ldr r1, =gUnknown_086157E0 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r2, 0x17 - movs r3, 0x12 - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B120C - - thumb_func_start sub_81B1250 -sub_81B1250: @ 81B1250 - push {lr} - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x49 - ands r0, r1 - cmp r0, 0x49 - bne _081B1280 - ldr r0, =gMain - ldr r1, =0x00000439 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081B1280 - movs r0, 0x1 - b _081B1282 - .pool -_081B1280: - movs r0, 0 -_081B1282: - pop {r1} - bx r1 - thumb_func_end sub_81B1250 - - thumb_func_start sub_81B1288 -sub_81B1288: @ 81B1288 - push {r4-r6,lr} - adds r4, r0, 0 - adds r6, r1, 0 - movs r0, 0x64 - bl Alloc - adds r5, r0, 0 - adds r1, r4, 0 - movs r2, 0x64 - bl memcpy - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0x64 - bl memcpy - adds r0, r6, 0 - adds r1, r5, 0 - movs r2, 0x64 - bl memcpy - adds r0, r5, 0 - bl Free - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81B1288 - - thumb_func_start sub_81B12C0 -sub_81B12C0: @ 81B12C0 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =c3_0811FAB4 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B12C0 - - thumb_func_start c3_0811FAB4 -c3_0811FAB4: @ 81B12F8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081B134C - ldr r4, =gUnknown_0203CEC8 - ldrb r1, [r4, 0x8] - movs r0, 0xF - ands r0, r1 - cmp r0, 0x1 - bne _081B131A - bl sub_81B9080 -_081B131A: - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - ldr r0, [r0, 0x4] - cmp r0, 0 - beq _081B1338 - bl SetMainCallback2 - b _081B133E - .pool -_081B1338: - ldr r0, [r4] - bl SetMainCallback2 -_081B133E: - bl ResetAllObjectData - bl sub_81B06F4 - adds r0, r5, 0 - bl DestroyTask -_081B134C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end c3_0811FAB4 - - thumb_func_start brm_get_pokemon_selection -brm_get_pokemon_selection: @ 81B1354 - ldr r0, =gUnknown_0203CEC8 - ldrb r0, [r0, 0x9] - bx lr - .pool - thumb_func_end brm_get_pokemon_selection - - thumb_func_start sub_81B1360 -sub_81B1360: @ 81B1360 - ldr r0, =gUnknown_0203CEC8 - ldrb r0, [r0, 0x8] - lsls r0, 28 - lsrs r0, 28 - bx lr - .pool - thumb_func_end sub_81B1360 - - thumb_func_start sub_81B1370 -sub_81B1370: @ 81B1370 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081B13E0 - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B13E0 - bl sub_81B13EC - adds r4, r0, 0 - bl sub_81B1760 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - beq _081B13C0 - cmp r0, 0x2 - bgt _081B13B0 - cmp r0, 0x1 - beq _081B13B6 - b _081B13E0 - .pool -_081B13B0: - cmp r0, 0x8 - beq _081B13CA - b _081B13E0 -_081B13B6: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_81B140C - b _081B13E0 -_081B13C0: - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_81B15D0 - b _081B13E0 -_081B13CA: - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - ldrb r0, [r0, 0x8] - lsls r0, 31 - cmp r0, 0 - beq _081B13E0 - movs r0, 0x5 - bl audio_play - bl sub_81B4F88 -_081B13E0: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B1370 - - thumb_func_start sub_81B13EC -sub_81B13EC: @ 81B13EC - push {lr} - ldr r0, =gUnknown_0203CEC8 - ldrb r1, [r0, 0xB] - cmp r1, 0x8 - beq _081B13FA - cmp r1, 0xA - bne _081B1404 -_081B13FA: - adds r0, 0xA - b _081B1406 - .pool -_081B1404: - adds r0, 0x9 -_081B1406: - pop {r1} - bx r1 - thumb_func_end sub_81B13EC - - thumb_func_start sub_81B140C -sub_81B140C: @ 81B140C - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r0, 0x6 - bne _081B142C - ldr r0, =gUnknown_0203CEC8 - ldr r1, [r0, 0x4] - adds r0, r5, 0 - bl _call_via_r1 - b _081B159E - .pool -_081B142C: - ldr r0, =gUnknown_0203CEC8 - ldrb r0, [r0, 0xB] - subs r0, 0x3 - cmp r0, 0xA - bls _081B1438 - b _081B1592 -_081B1438: - lsls r0, 2 - ldr r1, =_081B144C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081B144C: - .4byte _081B149C - .4byte _081B1592 - .4byte _081B1538 - .4byte _081B1538 - .4byte _081B1510 - .4byte _081B1560 - .4byte _081B1592 - .4byte _081B1478 - .4byte _081B156E - .4byte _081B14E8 - .4byte _081B157C -_081B1478: - adds r0, r4, 0 - bl sub_81B15A4 - lsls r0, 24 - cmp r0, 0 - bne _081B1486 - b _081B159E -_081B1486: - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - adds r0, 0xD - bl sub_81B302C - adds r0, r5, 0 - bl sub_81615A8 - b _081B159E - .pool -_081B149C: - adds r0, r4, 0 - bl sub_81B15A4 - lsls r0, 24 - cmp r0, 0 - bne _081B14AA - b _081B159E -_081B14AA: - ldr r0, =gUnknown_0203CEC8 - ldrb r1, [r0, 0x8] - movs r0, 0xF - ands r0, r1 - ldr r2, =gUnknown_0203CEC4 - cmp r0, 0x1 - bne _081B14BE - ldr r1, [r2] - ldr r0, =sub_81B9140 - str r0, [r1, 0x4] -_081B14BE: - ldr r0, [r2] - adds r0, 0xD - bl sub_81B302C - ldr r0, =gUnknown_03006328 - ldr r1, =sub_81B6794 - ldr r2, [r0] - adds r0, r5, 0 - bl _call_via_r2 - b _081B159E - .pool -_081B14E8: - adds r0, r4, 0 - bl sub_81B15A4 - lsls r0, 24 - cmp r0, 0 - beq _081B159E - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - adds r0, 0xD - bl sub_81B302C - adds r0, r5, 0 - bl sub_81B7E4C - b _081B159E - .pool -_081B1510: - adds r0, r4, 0 - bl sub_81B15A4 - lsls r0, 24 - cmp r0, 0 - beq _081B159E - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - adds r0, 0xD - bl sub_81B302C - adds r0, r5, 0 - bl sub_81B8474 - b _081B159E - .pool -_081B1538: - adds r0, r4, 0 - bl sub_81B15A4 - lsls r0, 24 - cmp r0, 0 - beq _081B159E - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - adds r0, 0xD - bl sub_81B302C - adds r0, r5, 0 - bl sub_81B7FAC - b _081B159E - .pool -_081B1560: - movs r0, 0x5 - bl audio_play - adds r0, r5, 0 - bl sub_81B3938 - b _081B159E -_081B156E: - movs r0, 0x5 - bl audio_play - adds r0, r5, 0 - bl sub_81B12C0 - b _081B159E -_081B157C: - adds r0, r4, 0 - bl sub_81B15A4 - lsls r0, 24 - cmp r0, 0 - beq _081B159E - ldrb r1, [r4] - adds r0, r5, 0 - bl sub_81B21AC - b _081B159E -_081B1592: - movs r0, 0x5 - bl audio_play - adds r0, r5, 0 - bl sub_81B36FC -_081B159E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81B140C - - thumb_func_start sub_81B15A4 -sub_81B15A4: @ 81B15A4 - push {lr} - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2D - bl GetMonData - cmp r0, 0x1 - beq _081B15C4 - movs r0, 0x1 - b _081B15CC - .pool -_081B15C4: - movs r0, 0x20 - bl audio_play - movs r0, 0 -_081B15CC: - pop {r1} - bx r1 - thumb_func_end sub_81B15A4 - - thumb_func_start sub_81B15D0 -sub_81B15D0: @ 81B15D0 - push {r4,r5,lr} - adds r5, r1, 0 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gUnknown_0203CEC8 - ldrb r0, [r0, 0xB] - cmp r0, 0x8 - beq _081B1602 - cmp r0, 0x8 - bgt _081B15F0 - cmp r0, 0x1 - beq _081B15FA - b _081B161E - .pool -_081B15F0: - cmp r0, 0xA - beq _081B1602 - cmp r0, 0xD - beq _081B1610 - b _081B161E -_081B15FA: - movs r0, 0x20 - bl audio_play - b _081B1652 -_081B1602: - movs r0, 0x5 - bl audio_play - adds r0, r4, 0 - bl sub_81B407C - b _081B1652 -_081B1610: - movs r0, 0x5 - bl audio_play - adds r0, r4, 0 - bl sub_81B2210 - b _081B1652 -_081B161E: - movs r0, 0x5 - bl audio_play - adds r0, r4, 0 - bl sub_81B1660 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B1652 - bl sub_81221AC - lsls r0, 24 - cmp r0, 0 - bne _081B1642 - ldr r1, =gUnknown_020375E0 - movs r0, 0x7 - strh r0, [r1] -_081B1642: - ldr r0, =gUnknown_0203CEE8 - movs r1, 0 - strb r1, [r0] - movs r0, 0x7 - strb r0, [r5] - adds r0, r4, 0 - bl sub_81B12C0 -_081B1652: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B15D0 - - thumb_func_start sub_81B1660 -sub_81B1660: @ 81B1660 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - ldr r0, =gUnknown_0203CEC8 - ldrb r0, [r0, 0x8] - movs r1, 0xF - ands r1, r0 - cmp r1, 0x2 - bne _081B1680 - ldr r5, =gUnknown_085EA110 - b _081B168A - .pool -_081B1680: - cmp r1, 0x4 - bne _081B168A - bl sub_81B88BC - adds r5, r0, 0 -_081B168A: - cmp r5, 0 - beq _081B16CC - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - adds r0, 0xD - bl sub_81B302C - ldr r4, =gStringVar4 - adds r0, r4, 0 - adds r1, r5, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81B1B5C - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B16D4 - str r1, [r0] - movs r0, 0x1 - b _081B16CE - .pool -_081B16CC: - movs r0, 0 -_081B16CE: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81B1660 - - thumb_func_start sub_81B16D4 -sub_81B16D4: @ 81B16D4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81B1BD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B16F8 - bl sub_81B334C - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B1708 - str r0, [r1] -_081B16F8: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B16D4 - - thumb_func_start sub_81B1708 -sub_81B1708: @ 81B1708 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8198C58 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _081B172E - cmp r1, 0 - bgt _081B1728 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _081B174C - b _081B1758 -_081B1728: - cmp r1, 0x1 - beq _081B1752 - b _081B1758 -_081B172E: - ldr r0, =gUnknown_0203CEE8 - strb r1, [r0] - ldr r1, =gUnknown_0203CEC8 - movs r0, 0x7 - strb r0, [r1, 0x9] - bl sub_81B8558 - adds r0, r4, 0 - bl sub_81B12C0 - b _081B1758 - .pool -_081B174C: - movs r0, 0x5 - bl audio_play -_081B1752: - adds r0, r4, 0 - bl sub_81B1C1C -_081B1758: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81B1708 - - thumb_func_start sub_81B1760 -sub_81B1760: @ 81B1760 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gMain - ldrh r1, [r0, 0x30] - adds r3, r0, 0 - cmp r1, 0x20 - beq _081B178E - cmp r1, 0x20 - bgt _081B177C - cmp r1, 0x10 - beq _081B1792 - b _081B1796 - .pool -_081B177C: - cmp r1, 0x40 - beq _081B1786 - cmp r1, 0x80 - beq _081B178A - b _081B1796 -_081B1786: - movs r1, 0xFF - b _081B17B2 -_081B178A: - movs r1, 0x1 - b _081B17B2 -_081B178E: - movs r1, 0xFE - b _081B17B2 -_081B1792: - movs r1, 0x2 - b _081B17B2 -_081B1796: - bl sub_812210C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B17AA - cmp r0, 0x2 - beq _081B17AE - movs r1, 0 - b _081B17B0 -_081B17AA: - movs r1, 0xFF - b _081B17B0 -_081B17AE: - movs r1, 0x1 -_081B17B0: - ldr r3, =gMain -_081B17B2: - ldrh r2, [r3, 0x2E] - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _081B17C4 - movs r0, 0x8 - b _081B17F0 - .pool -_081B17C4: - lsls r0, r1, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _081B17D6 - adds r0, r4, 0 - bl sub_81B17F8 - movs r0, 0 - b _081B17F0 -_081B17D6: - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - beq _081B17EA - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r0, 0x7 - bne _081B17EA - movs r0, 0x2 - b _081B17F0 -_081B17EA: - ldrh r1, [r3, 0x2E] - movs r0, 0x3 - ands r0, r1 -_081B17F0: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81B1760 - - thumb_func_start sub_81B17F8 -sub_81B17F8: @ 81B17F8 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldrb r4, [r5] - ldr r0, =gUnknown_0203CEC8 - ldrb r0, [r0, 0x8] - lsls r0, 26 - lsrs r0, 30 - cmp r0, 0 - bne _081B1820 - lsls r1, 24 - asrs r1, 24 - adds r0, r5, 0 - bl sub_81B1854 - b _081B182A - .pool -_081B1820: - lsls r1, 24 - asrs r1, 24 - adds r0, r5, 0 - bl sub_81B195C -_081B182A: - movs r1, 0 - ldrsb r1, [r5, r1] - lsls r4, 24 - asrs r0, r4, 24 - cmp r1, r0 - beq _081B184C - movs r0, 0x5 - bl audio_play - lsrs r0, r4, 24 - movs r1, 0 - bl sub_81B0FCC - ldrb r0, [r5] - movs r1, 0x1 - bl sub_81B0FCC -_081B184C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81B17F8 - - thumb_func_start sub_81B1854 -sub_81B1854: @ 81B1854 - push {r4,lr} - adds r4, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _081B187A - cmp r1, r0 - bgt _081B1870 - subs r0, 0x1 - cmp r1, r0 - beq _081B1924 - b _081B1952 -_081B1870: - cmp r1, 0x1 - beq _081B18C0 - cmp r1, 0x2 - beq _081B18F8 - b _081B1952 -_081B187A: - ldrb r0, [r4] - movs r1, 0 - ldrsb r1, [r4, r1] - cmp r1, 0 - bne _081B1888 - movs r0, 0x7 - b _081B1950 -_081B1888: - cmp r1, 0x6 - bne _081B1898 - ldr r0, =gUnknown_020244E9 - ldrb r0, [r0] - subs r0, 0x1 - b _081B1950 - .pool -_081B1898: - cmp r1, 0x7 - bne _081B18BC - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - ldrb r0, [r0, 0x8] - lsls r0, 31 - cmp r0, 0 - beq _081B18B0 - movs r0, 0x6 - b _081B1950 - .pool -_081B18B0: - ldr r0, =gUnknown_020244E9 - ldrb r0, [r0] - subs r0, 0x1 - b _081B1950 - .pool -_081B18BC: - subs r0, 0x1 - b _081B1950 -_081B18C0: - ldrb r2, [r4] - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r0, 0x7 - beq _081B194E - movs r1, 0 - ldrsb r1, [r4, r1] - ldr r0, =gUnknown_020244E9 - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - bne _081B18F4 - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - ldrb r0, [r0, 0x8] - lsls r0, 31 - cmp r0, 0 - beq _081B18F0 - movs r0, 0x6 - b _081B1950 - .pool -_081B18F0: - movs r0, 0x7 - b _081B1950 -_081B18F4: - adds r0, r2, 0x1 - b _081B1950 -_081B18F8: - ldr r0, =gUnknown_020244E9 - ldrb r0, [r0] - cmp r0, 0x1 - beq _081B1952 - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r0, 0 - bne _081B1952 - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - ldrb r0, [r0, 0x8] - lsls r0, 28 - lsrs r0, 29 - cmp r0, 0 - bne _081B1950 - movs r0, 0x1 - b _081B1950 - .pool -_081B1924: - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r0, 0 - beq _081B1952 - cmp r0, 0x6 - beq _081B1952 - cmp r0, 0x7 - beq _081B1952 - ldr r0, =gUnknown_0203CEC4 - ldr r3, [r0] - movs r1, 0 - ldrsb r1, [r4, r1] - movs r0, 0x7 - ands r1, r0 - lsls r1, 1 - ldrb r2, [r3, 0x8] - movs r0, 0xF - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x8] -_081B194E: - movs r0, 0 -_081B1950: - strb r0, [r4] -_081B1952: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B1854 - - thumb_func_start sub_81B195C -sub_81B195C: @ 81B195C - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r2, r1, 24 - asrs r5, r1, 24 - movs r6, 0x1 - negs r6, r6 - cmp r5, r6 - beq _081B1988 - cmp r5, r6 - bgt _081B197E - movs r0, 0x2 - negs r0, r0 - cmp r5, r0 - bne _081B197C - b _081B1A9C -_081B197C: - b _081B1AF4 -_081B197E: - cmp r5, 0x1 - beq _081B19E4 - cmp r5, 0x2 - beq _081B1A24 - b _081B1AF4 -_081B1988: - ldrb r1, [r4] - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r0, 0 - bne _081B1996 - movs r0, 0x7 - b _081B1AF2 -_081B1996: - cmp r0, 0x6 - bne _081B19A8 - ldr r0, =gUnknown_020244E9 - ldrb r0, [r0] - subs r0, 0x1 - b _081B1AF2 - .pool -_081B19A8: - cmp r0, 0x7 - bne _081B19C4 - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - ldrb r0, [r0, 0x8] - lsls r0, 31 - cmp r0, 0 - beq _081B19C0 - movs r0, 0x6 - b _081B1AF2 - .pool -_081B19C0: - subs r0, r1, 0x1 - strb r0, [r4] -_081B19C4: - movs r0, 0 - ldrsb r0, [r4, r0] - lsls r1, r2, 24 - asrs r1, 24 - bl sub_81B1B00 - lsls r0, 24 - lsrs r2, r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _081B19E0 - b _081B1AF4 -_081B19E0: - strb r2, [r4] - b _081B1AF4 -_081B19E4: - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r0, 0x6 - bne _081B19F0 - movs r0, 0x7 - b _081B1AF2 -_081B19F0: - cmp r0, 0x7 - bne _081B19F8 - movs r0, 0 - b _081B1AF2 -_081B19F8: - movs r0, 0 - ldrsb r0, [r4, r0] - movs r1, 0x1 - bl sub_81B1B00 - lsls r0, 24 - lsrs r2, r0, 24 - asrs r0, 24 - cmp r0, r6 - bne _081B19E0 - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - ldrb r0, [r0, 0x8] - lsls r0, 31 - cmp r0, 0 - beq _081B1A20 - movs r0, 0x6 - b _081B1AF2 - .pool -_081B1A20: - movs r0, 0x7 - b _081B1AF2 -_081B1A24: - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r0, 0 - bne _081B1A5C - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - ldrb r0, [r0, 0x8] - lsls r0, 28 - lsrs r6, r0, 29 - cmp r6, 0x3 - bne _081B1A54 - ldr r0, =gUnknown_02024618 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _081B1AF4 - strb r6, [r4] - b _081B1AF4 - .pool -_081B1A54: - ldr r0, =gUnknown_020245B4 - b _081B1A70 - .pool -_081B1A5C: - cmp r0, 0x1 - bne _081B1AF4 - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - ldrb r0, [r0, 0x8] - lsls r0, 28 - lsrs r5, r0, 29 - cmp r5, 0x5 - bne _081B1A88 - ldr r0, =gUnknown_020246E0 -_081B1A70: - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _081B1AF4 - strb r5, [r4] - b _081B1AF4 - .pool -_081B1A88: - ldr r0, =gUnknown_0202467C - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _081B1AF4 - movs r0, 0x4 - b _081B1AF2 - .pool -_081B1A9C: - ldrb r1, [r4] - subs r0, r1, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _081B1ACC - ldr r0, =gUnknown_0203CEC4 - ldr r3, [r0] - movs r1, 0 - ldrsb r1, [r4, r1] - movs r0, 0x7 - ands r1, r0 - lsls r1, 1 - ldrb r2, [r3, 0x8] - movs r0, 0xF - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x8] - movs r0, 0 - b _081B1AF2 - .pool -_081B1ACC: - subs r0, r1, 0x4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _081B1AF4 - ldr r0, =gUnknown_0203CEC4 - ldr r3, [r0] - movs r1, 0 - ldrsb r1, [r4, r1] - movs r0, 0x7 - ands r1, r0 - lsls r1, 1 - ldrb r2, [r3, 0x8] - movs r0, 0xF - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x8] - movs r0, 0x1 -_081B1AF2: - strb r0, [r4] -_081B1AF4: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B195C - - thumb_func_start sub_81B1B00 -sub_81B1B00: @ 81B1B00 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - asrs r6, r1, 24 -_081B1B0A: - lsls r0, r5, 24 - asrs r0, 24 - adds r0, r6 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, r5, 24 - lsrs r0, r1, 24 - cmp r0, 0x5 - bhi _081B1B38 - asrs r4, r1, 24 - movs r0, 0x64 - muls r0, r4 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _081B1B0A - adds r0, r4, 0 - b _081B1B3C - .pool -_081B1B38: - movs r0, 0x1 - negs r0, r0 -_081B1B3C: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81B1B00 - - thumb_func_start GetMonNickname -@ u8 *GetMonNickname(struct pokemon *mon, u8 *dest) -GetMonNickname: @ 81B1B44 - push {r4,lr} - adds r4, r1, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl GetMonData - adds r0, r4, 0 - bl StringGetEnd10 - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetMonNickname - - thumb_func_start sub_81B1B5C -sub_81B1B5C: @ 81B1B5C - push {r4,lr} - lsls r4, r1, 24 - lsrs r4, 24 - bl sub_81B3300 - ldr r0, =sub_81B1B8C - 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 - strh r4, [r1, 0x8] - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81B1B5C - - thumb_func_start sub_81B1B8C -sub_81B1B8C: @ 81B1B8C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - movs r0, 0x6 - bl sub_8121F20 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - beq _081B1BC8 - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _081B1BC2 - movs r0, 0x6 - movs r1, 0 - bl sub_8198070 - movs r0, 0x6 - bl ClearWindowTilemap -_081B1BC2: - adds r0, r5, 0 - bl DestroyTask -_081B1BC8: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B1B8C - - thumb_func_start sub_81B1BD4 -sub_81B1BD4: @ 81B1BD4 - push {lr} - ldr r0, =sub_81B1B8C - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81B1BD4 - - thumb_func_start sub_81B1BE8 -sub_81B1BE8: @ 81B1BE8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B1C0E - movs r0, 0 - bl display_pokemon_menu_message - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B1370 - str r0, [r1] -_081B1C0E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B1BE8 - - thumb_func_start sub_81B1C1C -sub_81B1C1C: @ 81B1C1C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl sub_81B1BD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B1C74 - movs r0, 0x6 - movs r1, 0 - bl sub_8198070 - movs r0, 0x6 - bl ClearWindowTilemap - bl sub_81221AC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081B1C60 - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B1BE8 - b _081B1C72 - .pool -_081B1C60: - movs r0, 0 - bl display_pokemon_menu_message - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B1370 -_081B1C72: - str r0, [r1] -_081B1C74: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B1C1C - - thumb_func_start sub_81B1C84 -sub_81B1C84: @ 81B1C84 - push {r4,r5,lr} - adds r4, r1, 0 - adds r5, r2, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - ldr r1, =gStringVar1 - bl GetMonNickname - ldr r1, =gStringVar2 - adds r0, r4, 0 - bl itemid_get_name - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E991B - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_81B1B5C - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B1C84 - - thumb_func_start sub_81B1CD0 -sub_81B1CD0: @ 81B1CD0 - push {r4,r5,lr} - adds r4, r1, 0 - adds r5, r2, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - ldr r1, =gStringVar1 - bl GetMonNickname - ldr r1, =gStringVar2 - adds r0, r4, 0 - bl itemid_get_name - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E999D - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_81B1B5C - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B1CD0 - - thumb_func_start sub_81B1D1C -sub_81B1D1C: @ 81B1D1C - push {r4,r5,lr} - adds r4, r1, 0 - adds r5, r2, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - ldr r1, =gStringVar1 - bl GetMonNickname - ldr r1, =gStringVar2 - adds r0, r4, 0 - bl itemid_get_name - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E993A - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_81B1B5C - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B1D1C - - thumb_func_start sub_81B1D68 -sub_81B1D68: @ 81B1D68 - push {r4,r5,lr} - adds r4, r1, 0 - adds r5, r2, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - ldr r1, =gStringVar1 - bl itemid_get_name - ldr r1, =gStringVar2 - adds r0, r4, 0 - bl itemid_get_name - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E99DB - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_81B1B5C - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B1D68 - - thumb_func_start sub_81B1DB8 -sub_81B1DB8: @ 81B1DB8 - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r0, 0 - lsls r5, r1, 16 - lsrs r4, r5, 16 - adds r7, r4, 0 - adds r0, r4, 0 - bl itemid_is_mail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081B1DE2 - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_80D4420 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _081B1DF6 -_081B1DE2: - mov r0, sp - strb r7, [r0] - mov r1, sp - lsrs r0, r5, 24 - strb r0, [r1, 0x1] - adds r0, r6, 0 - movs r1, 0xC - mov r2, sp - bl pokemon_setattr -_081B1DF6: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81B1DB8 - - thumb_func_start sub_81B1E00 -sub_81B1E00: @ 81B1E00 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - mov r1, sp - strh r0, [r1] - cmp r0, 0 - bne _081B1E1C - movs r0, 0 - b _081B1E3E -_081B1E1C: - movs r1, 0x1 - bl bag_add_item - lsls r0, 24 - cmp r0, 0 - beq _081B1E3C - movs r1, 0 - mov r0, sp - strh r1, [r0] - adds r0, r4, 0 - movs r1, 0xC - mov r2, sp - bl pokemon_setattr - movs r0, 0x2 - b _081B1E3E -_081B1E3C: - movs r0, 0x1 -_081B1E3E: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81B1E00 - - thumb_func_start pokemon_item_not_removed -pokemon_item_not_removed: @ 81B1E48 - push {lr} - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9A69 - bl StringExpandPlaceholders - pop {r0} - bx r0 - .pool - thumb_func_end pokemon_item_not_removed - - thumb_func_start sub_81B1E60 -sub_81B1E60: @ 81B1E60 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r0, 2 - add r0, r8 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r7, r0, r1 - ldrh r0, [r7, 0x4] - ldrh r1, [r7] - adds r0, r1 - strh r0, [r7] - ldrh r0, [r7, 0x6] - subs r0, 0x1 - strh r0, [r7, 0x6] - movs r2, 0x8 - ldrsh r0, [r7, r2] - movs r5, 0x64 - muls r0, r5 - ldr r4, =gPlayerParty - adds r0, r4 - movs r1, 0x39 - adds r2, r7, 0 - bl pokemon_setattr - movs r3, 0x8 - ldrsh r2, [r7, r3] - adds r0, r2, 0 - muls r0, r5 - adds r0, r4 - ldr r6, =gUnknown_0203CEDC - lsls r2, 4 - ldr r1, [r6] - adds r1, r2 - movs r2, 0x1 - bl sub_81B2CD4 - movs r0, 0x8 - ldrsh r2, [r7, r0] - adds r0, r2, 0 - muls r0, r5 - adds r0, r4 - lsls r2, 4 - ldr r1, [r6] - adds r1, r2 - bl sub_81B2E28 - movs r1, 0x6 - ldrsh r0, [r7, r1] - cmp r0, 0 - beq _081B1EDC - movs r2, 0 - ldrsh r1, [r7, r2] - cmp r1, 0 - beq _081B1EDC - movs r3, 0x2 - ldrsh r0, [r7, r3] - cmp r1, r0 - bne _081B1EFE -_081B1EDC: - movs r0, 0 - ldrsh r1, [r7, r0] - movs r2, 0xA - ldrsh r0, [r7, r2] - cmp r1, r0 - ble _081B1EF8 - ldr r0, =gStringVar2 - movs r3, 0xA - ldrsh r2, [r7, r3] - subs r1, r2 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN -_081B1EF8: - mov r0, r8 - bl SwitchTaskToFollowupFunc -_081B1EFE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B1E60 - - thumb_func_start sub_81B1F18 -sub_81B1F18: @ 81B1F18 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r8, r0 - mov r9, r1 - adds r5, r2, 0 - mov r10, r3 - ldr r7, [sp, 0x20] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r5, 24 - lsrs r5, 24 - mov r0, r10 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - movs r0, 0x64 - mov r6, r9 - muls r6, r0 - ldr r0, =gPlayerParty - adds r6, r0 - mov r0, r8 - lsls r4, r0, 2 - add r4, r8 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - adds r0, r6, 0 - movs r1, 0x39 - bl GetMonData - strh r0, [r4] - adds r0, r6, 0 - movs r1, 0x3A - bl GetMonData - strh r0, [r4, 0x2] - lsls r5, 24 - asrs r5, 24 - strh r5, [r4, 0x4] - mov r0, r10 - strh r0, [r4, 0x6] - mov r0, r9 - strh r0, [r4, 0x8] - ldrh r0, [r4] - strh r0, [r4, 0xA] - ldr r1, =sub_81B1E60 - mov r0, r8 - adds r2, r7, 0 - bl SetTaskFuncWithFollowupFunc - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B1F18 - - thumb_func_start sub_81B1FA8 -sub_81B1FA8: @ 81B1FA8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r3, r0, r1 - cmp r5, 0x5 - bhi _081B200A - lsls r0, r5, 2 - ldr r1, =_081B1FD4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081B1FD4: - .4byte _081B1FEC - .4byte _081B1FF2 - .4byte _081B1FF6 - .4byte _081B1FFA - .4byte _081B1FFE - .4byte _081B2002 -_081B1FEC: - strh r2, [r3] - strh r2, [r3, 0xA] - b _081B200A -_081B1FF2: - strh r2, [r3, 0x2] - b _081B200A -_081B1FF6: - strh r2, [r3, 0x4] - b _081B200A -_081B1FFA: - strh r2, [r3, 0x6] - b _081B200A -_081B1FFE: - strh r2, [r3, 0x8] - b _081B200A -_081B2002: - ldr r1, =sub_81B1E60 - adds r0, r4, 0 - bl SetTaskFuncWithFollowupFunc -_081B200A: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B1FA8 - - thumb_func_start pokemon_ailments_get_primary -pokemon_ailments_get_primary: @ 81B2014 - push {lr} - adds r1, r0, 0 - movs r0, 0x88 - ands r0, r1 - cmp r0, 0 - beq _081B2024 - movs r0, 0x1 - b _081B2056 -_081B2024: - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081B2030 - movs r0, 0x2 - b _081B2056 -_081B2030: - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - beq _081B203C - movs r0, 0x3 - b _081B2056 -_081B203C: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _081B2048 - movs r0, 0x4 - b _081B2056 -_081B2048: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _081B2054 - movs r0, 0 - b _081B2056 -_081B2054: - movs r0, 0x5 -_081B2056: - pop {r1} - bx r1 - thumb_func_end pokemon_ailments_get_primary - - thumb_func_start sub_81B205C -@ u8 sub_81B205C(struct pokemon *mon, int a2, void *a3) -sub_81B205C: @ 81B205C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _081B206E - movs r0, 0x7 - b _081B2096 -_081B206E: - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - bl pokemon_ailments_get_primary - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _081B2096 - adds r0, r4, 0 - movs r1, 0 - bl sub_806DD7C - lsls r0, 24 - cmp r0, 0 - bne _081B2094 - movs r0, 0 - b _081B2096 -_081B2094: - movs r0, 0x6 -_081B2096: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81B205C - - thumb_func_start sub_81B209C -sub_81B209C: @ 81B209C - push {r4,r5,lr} - ldr r2, =gUnknown_0203CEC8 - ldrb r1, [r2, 0x8] - movs r0, 0xF - ands r0, r1 - cmp r0, 0xB - bne _081B2126 - adds r5, r2, 0 - adds r5, 0xE - movs r0, 0 - strh r0, [r2, 0xE] - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - cmp r0, 0 - bne _081B20FC - movs r4, 0 - ldr r0, =gUnknown_020244E9 - ldrb r0, [r0] - cmp r4, r0 - bcs _081B2126 -_081B20C4: - movs r0, 0x64 - muls r0, r4 - ldr r1, =gPlayerParty - adds r0, r1 - bl sub_81B2134 - lsls r0, 16 - lsrs r0, 16 - lsls r0, r4 - ldrh r1, [r5] - adds r0, r1 - strh r0, [r5] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gUnknown_020244E9 - ldrb r0, [r0] - cmp r4, r0 - bcc _081B20C4 - b _081B2126 - .pool -_081B20FC: - movs r4, 0 - b _081B211E -_081B2100: - movs r0, 0x64 - muls r0, r4 - ldr r1, =gPlayerParty - adds r0, r1 - bl sub_81B2164 - lsls r0, 16 - lsrs r0, 16 - lsls r0, r4 - ldrh r1, [r5] - adds r0, r1 - strh r0, [r5] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_081B211E: - ldr r0, =gUnknown_020244E9 - ldrb r0, [r0] - cmp r4, r0 - bcc _081B2100 -_081B2126: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B209C - - thumb_func_start sub_81B2134 -sub_81B2134: @ 81B2134 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0x1 - beq _081B215A - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl sub_802C908 - cmp r0, 0 - beq _081B215A - movs r0, 0x1 - b _081B215C -_081B215A: - movs r0, 0 -_081B215C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81B2134 - - thumb_func_start sub_81B2164 -sub_81B2164: @ 81B2164 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0x1 - beq _081B2182 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0x55 - bne _081B2182 - movs r0, 0x1 - b _081B2184 -_081B2182: - movs r0, 0 -_081B2184: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81B2164 - - thumb_func_start sub_81B218C -sub_81B218C: @ 81B218C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0203CEC8 - movs r2, 0xE - ldrsh r1, [r1, r2] - asrs r1, r0 - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - bne _081B21A4 - movs r0, 0 -_081B21A4: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81B218C - - thumb_func_start sub_81B21AC -sub_81B21AC: @ 81B21AC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - adds r0, r5, 0 - bl sub_81B218C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081B21DC - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_020375E0 - strh r5, [r0] - adds r0, r4, 0 - bl sub_81B12C0 - b _081B21FE - .pool -_081B21DC: - movs r0, 0x20 - bl audio_play - ldr r0, =gUnknown_085EA0EE - movs r1, 0 - bl sub_81B1B5C - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B1C1C - str r1, [r0] -_081B21FE: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B21AC - - thumb_func_start sub_81B2210 -sub_81B2210: @ 81B2210 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_085EA110 - movs r1, 0x1 - bl sub_81B1B5C - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B2248 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B2210 - - thumb_func_start sub_81B2248 -sub_81B2248: @ 81B2248 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81B1BD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B226C - bl sub_81B334C - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B227C - str r0, [r1] -_081B226C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B2248 - - thumb_func_start sub_81B227C -sub_81B227C: @ 81B227C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8198C58 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _081B22A2 - cmp r1, 0 - bgt _081B229C - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _081B22B4 - b _081B22C8 -_081B229C: - cmp r1, 0x1 - beq _081B22BA - b _081B22C8 -_081B22A2: - ldr r1, =gUnknown_020375E0 - movs r0, 0x7 - strh r0, [r1] - adds r0, r4, 0 - bl sub_81B12C0 - b _081B22C8 - .pool -_081B22B4: - movs r0, 0x5 - bl audio_play -_081B22BA: - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B1C1C - str r0, [r1] -_081B22C8: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B227C - - thumb_func_start sub_81B22D8 -sub_81B22D8: @ 81B22D8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - adds r7, r4, 0 - lsls r2, 24 - lsrs r6, r2, 24 - mov r8, r6 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - beq _081B22FA - movs r0, 0x3 - b _081B2356 -_081B22FA: - movs r0, 0x90 - lsls r0, 1 - cmp r4, r0 - bls _081B231C - adds r1, r4, 0 - subs r1, 0x21 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl sub_806E00C - cmp r0, 0 - beq _081B2334 - adds r0, r7, 0 - bl ItemIdToBattleMoveId - b _081B233E -_081B231C: - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - adds r1, r6, 0 - bl sub_81B2370 - lsls r0, 24 - cmp r0, 0 - bne _081B2338 -_081B2334: - movs r0, 0x1 - b _081B2356 -_081B2338: - mov r0, r8 - bl sub_81B2360 -_081B233E: - lsls r0, 16 - lsrs r1, r0, 16 - adds r0, r5, 0 - bl pokemon_has_move - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B2354 - movs r0, 0 - b _081B2356 -_081B2354: - movs r0, 0x2 -_081B2356: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81B22D8 - - thumb_func_start sub_81B2360 -sub_81B2360: @ 81B2360 - lsls r0, 24 - ldr r1, =gUnknown_0861500C - lsrs r0, 23 - adds r0, r1 - ldrh r0, [r0] - bx lr - .pool - thumb_func_end sub_81B2360 - - thumb_func_start sub_81B2370 -sub_81B2370: @ 81B2370 - push {lr} - lsls r0, 16 - lsls r1, 24 - lsrs r1, 24 - ldr r2, =gUnknown_08615048 - lsrs r0, 14 - adds r0, r2 - movs r2, 0x1 - lsls r2, r1 - ldr r0, [r0] - ands r0, r2 - cmp r0, 0 - bne _081B2394 - movs r0, 0 - b _081B2396 - .pool -_081B2394: - movs r0, 0x1 -_081B2396: - pop {r1} - bx r1 - thumb_func_end sub_81B2370 - - thumb_func_start sub_81B239C -sub_81B239C: @ 81B239C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x1 - beq _081B23C4 - cmp r0, 0x1 - bgt _081B23B2 - cmp r0, 0 - beq _081B23B8 - b _081B23DC -_081B23B2: - cmp r1, 0x2 - beq _081B23D0 - b _081B23DC -_081B23B8: - ldr r0, =gUnknown_08615810 - bl InitWindows - b _081B23E2 - .pool -_081B23C4: - ldr r0, =gUnknown_08615850 - bl InitWindows - b _081B23E2 - .pool -_081B23D0: - ldr r0, =gUnknown_08615890 - bl InitWindows - b _081B23E2 - .pool -_081B23DC: - ldr r0, =gUnknown_086158D0 - bl InitWindows -_081B23E2: - bl DeactivateAllTextPrinters - movs r4, 0 -_081B23E8: - adds r0, r4, 0 - movs r1, 0 - bl FillWindowPixelBuffer - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _081B23E8 - movs r0, 0 - movs r1, 0x4F - movs r2, 0xD0 - bl sub_809882C - bl sub_8098C64 - movs r1, 0xE0 - movs r2, 0x20 - bl LoadPalette - ldr r0, =gUnknown_0860F074 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B239C - - thumb_func_start sub_81B2428 -sub_81B2428: @ 81B2428 - push {r4-r6,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gUnknown_0203CEC8 - ldrb r1, [r0, 0x8] - movs r0, 0xF - ands r0, r1 - cmp r0, 0x5 - bne _081B243E - b _081B2554 -_081B243E: - cmp r2, 0x1 - bne _081B24B4 - ldr r0, =gUnknown_08615918 - bl AddWindow - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r5, =gUnknown_085E8CE3 - movs r0, 0 - adds r1, r5, 0 - movs r2, 0x30 - bl GetStringCenterAlignXOffset - lsls r0, 24 - lsrs r2, r0, 24 - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - ldr r0, =gUnknown_086157FC - str r0, [sp, 0x8] - movs r0, 0x1 - negs r0, r0 - str r0, [sp, 0xC] - str r5, [sp, 0x10] - adds r0, r4, 0 - movs r1, 0 - movs r3, 0x1 - bl AddTextPrinterParametrized2 - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0 - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, =gUnknown_08615910 - bl AddWindow - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - b _081B24C0 - .pool -_081B24B4: - ldr r0, =gUnknown_08615908 - bl AddWindow - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0x3 -_081B24C0: - adds r0, r5, 0 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, =gUnknown_0203CEC8 - ldrb r1, [r0, 0x8] - movs r0, 0xF - ands r0, r1 - cmp r0, 0xA - beq _081B2514 - ldr r4, =gUnknown_085E8CF0 - movs r0, 0 - adds r1, r4, 0 - movs r2, 0x30 - bl GetStringCenterAlignXOffset - lsls r0, 24 - lsrs r2, r0, 24 - adds r2, r6 - lsls r2, 24 - lsrs r2, 24 - ldr r0, =gUnknown_086157FC - str r0, [sp] - movs r0, 0x1 - negs r0, r0 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r5, 0 - movs r1, 0 - movs r3, 0x1 - bl box_print - b _081B2540 - .pool -_081B2514: - ldr r4, =gUnknown_085E8CF7 - movs r0, 0 - adds r1, r4, 0 - movs r2, 0x30 - bl GetStringCenterAlignXOffset - lsls r0, 24 - lsrs r2, r0, 24 - adds r2, r6 - lsls r2, 24 - lsrs r2, 24 - ldr r0, =gUnknown_086157FC - str r0, [sp] - movs r0, 0x1 - negs r0, r0 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r5, 0 - movs r1, 0 - movs r3, 0x1 - bl box_print -_081B2540: - adds r0, r5, 0 - bl PutWindowTilemap - adds r0, r5, 0 - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram -_081B2554: - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B2428 - - thumb_func_start sub_81B2564 -sub_81B2564: @ 81B2564 - lsls r0, 24 - ldr r1, =gUnknown_0203CEC4 - lsrs r0, 23 - adds r0, 0x18 - ldr r1, [r1] - adds r1, r0 - adds r0, r1, 0 - bx lr - .pool - thumb_func_end sub_81B2564 - - thumb_func_start sub_81B2578 -sub_81B2578: @ 81B2578 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - str r1, [sp, 0xC] - ldr r1, [sp, 0x4C] - ldr r4, [sp, 0x50] - ldr r5, [sp, 0x54] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x10] - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x14] - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x18] - lsls r4, 24 - lsrs r6, r4, 24 - lsls r5, 24 - lsrs r5, 24 - mov r10, r5 - mov r0, r10 - muls r0, r6 - lsls r0, 5 - bl AllocZeroed - mov r9, r0 - cmp r0, 0 - beq _081B2646 - movs r5, 0 - ldr r0, [sp, 0x14] - lsls r0, 19 - str r0, [sp, 0x1C] - ldr r1, [sp, 0x18] - lsls r1, 19 - str r1, [sp, 0x20] - lsls r2, r6, 19 - str r2, [sp, 0x24] - mov r0, r10 - lsls r0, 19 - str r0, [sp, 0x28] - cmp r5, r10 - bcs _081B2624 -_081B25DA: - movs r4, 0 - adds r1, r5, 0x1 - mov r8, r1 - cmp r4, r6 - bcs _081B261A - ldr r2, [sp, 0x18] - adds r0, r2, r5 - ldr r2, [sp, 0x10] - adds r1, r0, 0 - muls r1, r2 - adds r7, r1, 0 -_081B25F0: - ldr r1, [sp, 0x14] - adds r0, r1, r4 - adds r0, r7 - ldr r2, [sp, 0xC] - adds r0, r2, r0 - ldrb r0, [r0] - bl sub_81B0DD4 - adds r1, r5, 0 - muls r1, r6 - adds r1, r4 - lsls r1, 5 - add r1, r9 - movs r2, 0x10 - bl CpuSet - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r6 - bcc _081B25F0 -_081B261A: - mov r1, r8 - lsls r0, r1, 24 - lsrs r5, r0, 24 - cmp r5, r10 - bcc _081B25DA -_081B2624: - ldr r0, [sp, 0x1C] - lsrs r2, r0, 16 - ldr r1, [sp, 0x20] - lsrs r3, r1, 16 - ldr r1, [sp, 0x24] - lsrs r0, r1, 16 - str r0, [sp] - ldr r1, [sp, 0x28] - lsrs r0, r1, 16 - str r0, [sp, 0x4] - ldr r0, [sp, 0x8] - mov r1, r9 - bl BlitBitmapToWindow - mov r0, r9 - bl Free -_081B2646: - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81B2578 - - thumb_func_start sub_81B2658 -sub_81B2658: @ 81B2658 - push {r4-r6,lr} - sub sp, 0xC - ldr r4, [sp, 0x1C] - ldr r5, [sp, 0x20] - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - cmp r3, 0 - bne _081B2684 - cmp r4, 0 - bne _081B2684 - movs r3, 0xA - movs r4, 0x7 -_081B2684: - cmp r5, 0 - bne _081B26A0 - ldr r1, =gUnknown_08615988 - str r2, [sp] - str r3, [sp, 0x4] - str r4, [sp, 0x8] - movs r2, 0xA - adds r3, r6, 0 - bl sub_81B2578 - b _081B26B0 - .pool -_081B26A0: - ldr r1, =gUnknown_086159CE - str r2, [sp] - str r3, [sp, 0x4] - str r4, [sp, 0x8] - movs r2, 0xA - adds r3, r6, 0 - bl sub_81B2578 -_081B26B0: - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B2658 - - thumb_func_start sub_81B26BC -sub_81B26BC: @ 81B26BC - push {r4-r6,lr} - sub sp, 0xC - ldr r4, [sp, 0x1C] - ldr r5, [sp, 0x20] - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - cmp r3, 0 - bne _081B26E8 - cmp r4, 0 - bne _081B26E8 - movs r3, 0x12 - movs r4, 0x3 -_081B26E8: - cmp r5, 0 - bne _081B2704 - ldr r1, =gUnknown_08615A14 - str r2, [sp] - str r3, [sp, 0x4] - str r4, [sp, 0x8] - movs r2, 0x12 - adds r3, r6, 0 - bl sub_81B2578 - b _081B2714 - .pool -_081B2704: - ldr r1, =gUnknown_08615A4A - str r2, [sp] - str r3, [sp, 0x4] - str r4, [sp, 0x8] - movs r2, 0x12 - adds r3, r6, 0 - bl sub_81B2578 -_081B2714: - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B26BC - - thumb_func_start sub_81B2720 -sub_81B2720: @ 81B2720 - push {lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_08615A80 - movs r2, 0 - str r2, [sp] - movs r2, 0x12 - str r2, [sp, 0x4] - movs r2, 0x3 - str r2, [sp, 0x8] - movs r2, 0x12 - movs r3, 0 - bl sub_81B2578 - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B2720 - - thumb_func_start sub_81B2748 -sub_81B2748: @ 81B2748 - push {r4-r7,lr} - lsls r1, 24 - lsrs r4, r1, 24 - adds r5, r4, 0 - ldrb r0, [r0, 0x8] - movs r1, 0x5 - bl GetWindowAttribute - lsls r0, 28 - lsrs r6, r0, 24 - adds r7, r6, 0 - movs r0, 0x40 - ands r0, r4 - cmp r0, 0 - beq _081B277C - ldr r5, =gUnknown_08615AF1 - ldrb r0, [r5] - bl sub_81B2564 - ldr r4, =gUnknown_08615AC0 - b _081B297E - .pool -_081B277C: - movs r0, 0x20 - ands r0, r4 - cmp r0, 0 - beq _081B27D8 - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _081B2794 - ldr r5, =gUnknown_08615ADF - b _081B2942 - .pool -_081B2794: - ldr r5, =gUnknown_08615ADF - ldrb r0, [r5] - bl sub_81B2564 - ldr r4, =gUnknown_08615ABA - ldrb r1, [r4] - adds r1, r6 - movs r2, 0x2 - bl LoadPalette - ldrb r0, [r5, 0x1] - bl sub_81B2564 - ldrb r1, [r4, 0x1] - adds r1, r6 - movs r2, 0x2 - bl LoadPalette - ldrb r0, [r5, 0x2] - bl sub_81B2564 - ldrb r1, [r4, 0x2] - adds r1, r6 - movs r2, 0x2 - bl LoadPalette - ldr r5, =gUnknown_08615AEE - b _081B2976 - .pool -_081B27D8: - movs r0, 0x10 - ands r0, r4 - cmp r0, 0 - beq _081B2824 - ldr r5, =gUnknown_08615ADF - ldrb r0, [r5] - bl sub_81B2564 - ldr r4, =gUnknown_08615ABA - ldrb r1, [r4] - adds r1, r6 - movs r2, 0x2 - bl LoadPalette - ldrb r0, [r5, 0x1] - bl sub_81B2564 - ldrb r1, [r4, 0x1] - adds r1, r6 - movs r2, 0x2 - bl LoadPalette - ldrb r0, [r5, 0x2] - bl sub_81B2564 - ldrb r1, [r4, 0x2] - adds r1, r6 - movs r2, 0x2 - bl LoadPalette - ldr r5, =gUnknown_08615AEE - b _081B2976 - .pool -_081B2824: - movs r0, 0x4 - ands r0, r4 - cmp r0, 0 - beq _081B2880 - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _081B283C - ldr r5, =gUnknown_08615ADF - b _081B2942 - .pool -_081B283C: - ldr r5, =gUnknown_08615ADF - ldrb r0, [r5] - bl sub_81B2564 - ldr r4, =gUnknown_08615ABA - ldrb r1, [r4] - adds r1, r6 - movs r2, 0x2 - bl LoadPalette - ldrb r0, [r5, 0x1] - bl sub_81B2564 - ldrb r1, [r4, 0x1] - adds r1, r6 - movs r2, 0x2 - bl LoadPalette - ldrb r0, [r5, 0x2] - bl sub_81B2564 - ldrb r1, [r4, 0x2] - adds r1, r6 - movs r2, 0x2 - bl LoadPalette - ldr r5, =gUnknown_08615AEE - b _081B2976 - .pool -_081B2880: - movs r0, 0x2 - ands r0, r4 - cmp r0, 0 - beq _081B28DC - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _081B2898 - ldr r5, =gUnknown_08615ADC - b _081B2942 - .pool -_081B2898: - ldr r5, =gUnknown_08615AD3 - ldrb r0, [r5] - bl sub_81B2564 - ldr r4, =gUnknown_08615ABA - ldrb r1, [r4] - adds r1, r6 - movs r2, 0x2 - bl LoadPalette - ldrb r0, [r5, 0x1] - bl sub_81B2564 - ldrb r1, [r4, 0x1] - adds r1, r6 - movs r2, 0x2 - bl LoadPalette - ldrb r0, [r5, 0x2] - bl sub_81B2564 - ldrb r1, [r4, 0x2] - adds r1, r6 - movs r2, 0x2 - bl LoadPalette - ldr r5, =gUnknown_08615AE8 - b _081B2976 - .pool -_081B28DC: - movs r0, 0x8 - ands r0, r4 - cmp r0, 0 - beq _081B2938 - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _081B28F4 - ldr r5, =gUnknown_08615AD9 - b _081B2942 - .pool -_081B28F4: - ldr r5, =gUnknown_08615AD0 - ldrb r0, [r5] - bl sub_81B2564 - ldr r4, =gUnknown_08615ABA - ldrb r1, [r4] - adds r1, r6 - movs r2, 0x2 - bl LoadPalette - ldrb r0, [r5, 0x1] - bl sub_81B2564 - ldrb r1, [r4, 0x1] - adds r1, r6 - movs r2, 0x2 - bl LoadPalette - ldrb r0, [r5, 0x2] - bl sub_81B2564 - ldrb r1, [r4, 0x2] - adds r1, r6 - movs r2, 0x2 - bl LoadPalette - ldr r5, =gUnknown_08615AE5 - b _081B2976 - .pool -_081B2938: - movs r0, 0x1 - ands r5, r0 - cmp r5, 0 - beq _081B29BC - ldr r5, =gUnknown_08615AD6 -_081B2942: - ldrb r0, [r5] - bl sub_81B2564 - ldr r4, =gUnknown_08615ABA - ldrb r1, [r4] - adds r1, r6 - movs r2, 0x2 - bl LoadPalette - ldrb r0, [r5, 0x1] - bl sub_81B2564 - ldrb r1, [r4, 0x1] - adds r1, r6 - movs r2, 0x2 - bl LoadPalette - ldrb r0, [r5, 0x2] - bl sub_81B2564 - ldrb r1, [r4, 0x2] - adds r1, r6 - movs r2, 0x2 - bl LoadPalette - ldr r5, =gUnknown_08615AEB -_081B2976: - ldrb r0, [r5] - bl sub_81B2564 - ldr r4, =gUnknown_08615ABD -_081B297E: - ldrb r1, [r4] - adds r1, r6 - movs r2, 0x2 - bl LoadPalette - ldrb r0, [r5, 0x1] - bl sub_81B2564 - ldrb r1, [r4, 0x1] - adds r1, r6 - movs r2, 0x2 - bl LoadPalette - ldrb r0, [r5, 0x2] - bl sub_81B2564 - ldrb r1, [r4, 0x2] - adds r1, r6 - movs r2, 0x2 - bl LoadPalette - b _081B2A24 - .pool -_081B29BC: - ldr r5, =gUnknown_08615ACD - ldrb r0, [r5] - bl sub_81B2564 - ldr r4, =gUnknown_08615ABA - ldrb r1, [r4] - adds r1, r7 - movs r2, 0x2 - bl LoadPalette - ldrb r0, [r5, 0x1] - bl sub_81B2564 - ldrb r1, [r4, 0x1] - adds r1, r7 - movs r2, 0x2 - bl LoadPalette - ldrb r0, [r5, 0x2] - bl sub_81B2564 - ldrb r1, [r4, 0x2] - adds r1, r7 - movs r2, 0x2 - bl LoadPalette - ldr r5, =gUnknown_08615AE2 - ldrb r0, [r5] - bl sub_81B2564 - ldr r4, =gUnknown_08615ABD - ldrb r1, [r4] - adds r1, r7 - movs r2, 0x2 - bl LoadPalette - ldrb r0, [r5, 0x1] - bl sub_81B2564 - ldrb r1, [r4, 0x1] - adds r1, r7 - movs r2, 0x2 - bl LoadPalette - ldrb r0, [r5, 0x2] - bl sub_81B2564 - ldrb r1, [r4, 0x2] - adds r1, r7 - movs r2, 0x2 - bl LoadPalette -_081B2A24: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B2748 - - thumb_func_start sub_81B2A3C -sub_81B2A3C: @ 81B2A3C - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r2, 24 - lsrs r2, 24 - ldrb r5, [r3] - ldrb r3, [r3, 0x1] - lsls r4, r2, 1 - adds r4, r2 - ldr r2, =gUnknown_086157FC - adds r4, r2 - str r4, [sp] - movs r2, 0 - str r2, [sp, 0x4] - str r1, [sp, 0x8] - movs r1, 0 - adds r2, r5, 0 - bl box_print - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B2A3C - - thumb_func_start sub_81B2A70 -sub_81B2A70: @ 81B2A70 - push {r4-r7,lr} - sub sp, 0x14 - adds r7, r0, 0 - adds r6, r1, 0 - lsls r2, 24 - lsrs r4, r2, 24 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _081B2AC0 - cmp r4, 0x1 - bne _081B2AAA - ldr r5, [r6] - ldrb r0, [r6, 0x8] - ldrb r1, [r5, 0x4] - lsrs r1, 3 - ldrb r2, [r5, 0x5] - lsrs r2, 3 - ldrb r3, [r5, 0x6] - lsrs r3, 3 - ldrb r4, [r5, 0x7] - lsrs r4, 3 - str r4, [sp] - movs r4, 0 - str r4, [sp, 0x4] - ldr r4, [r5] - bl _call_via_r4 -_081B2AAA: - adds r0, r7, 0 - add r1, sp, 0x8 - bl GetMonNickname - ldrb r0, [r6, 0x8] - ldr r3, [r6] - adds r3, 0x4 - add r1, sp, 0x8 - movs r2, 0 - bl sub_81B2A3C -_081B2AC0: - add sp, 0x14 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81B2A70 - - thumb_func_start sub_81B2AC8 -sub_81B2AC8: @ 81B2AC8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - adds r6, r0, 0 - adds r7, r1, 0 - lsls r2, 24 - lsrs r4, r2, 24 - mov r8, r4 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _081B2B34 - adds r0, r6, 0 - bl sub_81B205C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _081B2AF6 - cmp r0, 0x6 - bne _081B2B34 -_081B2AF6: - cmp r4, 0 - beq _081B2B1C - ldr r5, [r7] - ldrb r0, [r7, 0x8] - ldrb r1, [r5, 0x8] - lsrs r1, 3 - ldrb r2, [r5, 0x9] - lsrs r2, 3 - adds r2, 0x1 - ldrb r3, [r5, 0xA] - lsrs r3, 3 - ldrb r4, [r5, 0xB] - lsrs r4, 3 - str r4, [sp] - movs r4, 0 - str r4, [sp, 0x4] - ldr r4, [r5] - bl _call_via_r4 -_081B2B1C: - mov r0, r8 - cmp r0, 0x2 - beq _081B2B34 - adds r0, r6, 0 - movs r1, 0x38 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - adds r1, r7, 0 - bl sub_81B2B40 -_081B2B34: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81B2AC8 - - thumb_func_start sub_81B2B40 -sub_81B2B40: @ 81B2B40 - push {r4-r6,lr} - adds r2, r0, 0 - adds r6, r1, 0 - lsls r2, 24 - lsrs r2, 24 - ldr r5, =gStringVar2 - adds r0, r5, 0 - adds r1, r2, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar1 - ldr r1, =gUnknown_085E8D4D - adds r0, r4, 0 - bl StringCopy - adds r0, r4, 0 - adds r1, r5, 0 - bl StringAppend - ldrb r0, [r6, 0x8] - ldr r3, [r6] - adds r3, 0x8 - adds r1, r4, 0 - movs r2, 0 - bl sub_81B2A3C - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B2B40 - - thumb_func_start sub_81B2B8C -sub_81B2B8C: @ 81B2B8C - push {r4-r7,lr} - sub sp, 0x14 - adds r6, r0, 0 - adds r7, r1, 0 - lsls r2, 24 - lsrs r2, 24 - cmp r2, 0x1 - bne _081B2BBE - ldr r5, [r7] - ldrb r0, [r7, 0x8] - ldrb r1, [r5, 0xC] - lsrs r1, 3 - ldrb r2, [r5, 0xD] - lsrs r2, 3 - adds r2, 0x1 - ldrb r3, [r5, 0xE] - lsrs r3, 3 - ldrb r4, [r5, 0xF] - lsrs r4, 3 - str r4, [sp] - movs r4, 0 - str r4, [sp, 0x4] - ldr r4, [r5] - bl _call_via_r4 -_081B2BBE: - adds r0, r6, 0 - add r1, sp, 0x8 - bl GetMonNickname - adds r0, r6, 0 - bl pokemon_get_gender - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - add r2, sp, 0x8 - adds r3, r7, 0 - bl sub_81B2BF4 - add sp, 0x14 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81B2B8C - - thumb_func_start sub_81B2BF4 -sub_81B2BF4: @ 81B2BF4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r9, r2 - adds r7, r3, 0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 16 - lsrs r4, r1, 16 - adds r5, r4, 0 - ldrb r0, [r7, 0x8] - movs r1, 0x5 - bl GetWindowAttribute - lsls r0, 28 - lsrs r6, r0, 24 - cmp r4, 0 - beq _081B2CBA - cmp r4, 0x20 - beq _081B2C24 - cmp r4, 0x1D - bne _081B2C38 -_081B2C24: - movs r0, 0xB - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gSpeciesNames - adds r1, r0 - mov r0, r9 - bl StringCompare - cmp r0, 0 - beq _081B2CBA -_081B2C38: - mov r0, r8 - cmp r0, 0 - beq _081B2C48 - cmp r0, 0xFE - beq _081B2C88 - b _081B2CBA - .pool -_081B2C48: - ldr r5, =gUnknown_08615AC3 - ldrb r0, [r5] - bl sub_81B2564 - ldr r4, =gUnknown_08615AB6 - ldrb r1, [r4] - adds r1, r6 - movs r2, 0x2 - bl LoadPalette - ldrb r0, [r5, 0x1] - bl sub_81B2564 - ldrb r1, [r4, 0x1] - adds r1, r6 - movs r2, 0x2 - bl LoadPalette - ldrb r0, [r7, 0x8] - ldr r1, =gUnknown_085E8D49 - ldr r3, [r7] - adds r3, 0xC - movs r2, 0x2 - bl sub_81B2A3C - b _081B2CBA - .pool -_081B2C88: - ldr r5, =gUnknown_08615AC5 - ldrb r0, [r5] - bl sub_81B2564 - ldr r4, =gUnknown_08615AB6 - ldrb r1, [r4] - adds r1, r6 - movs r2, 0x2 - bl LoadPalette - ldrb r0, [r5, 0x1] - bl sub_81B2564 - ldrb r1, [r4, 0x1] - adds r1, r6 - movs r2, 0x2 - bl LoadPalette - ldrb r0, [r7, 0x8] - ldr r1, =gUnknown_085E8D4B - ldr r3, [r7] - adds r3, 0xC - movs r2, 0x2 - bl sub_81B2A3C -_081B2CBA: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B2BF4 - - thumb_func_start sub_81B2CD4 -sub_81B2CD4: @ 81B2CD4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - adds r7, r0, 0 - adds r6, r1, 0 - lsls r2, 24 - lsrs r4, r2, 24 - mov r8, r4 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _081B2D2E - cmp r4, 0 - beq _081B2D16 - ldr r5, [r6] - ldrb r0, [r6, 0x8] - ldrb r1, [r5, 0x10] - lsrs r1, 3 - ldrb r2, [r5, 0x11] - lsrs r2, 3 - adds r2, 0x1 - ldrb r3, [r5, 0x12] - lsrs r3, 3 - ldrb r4, [r5, 0x13] - lsrs r4, 3 - str r4, [sp] - movs r4, 0 - str r4, [sp, 0x4] - ldr r4, [r5] - bl _call_via_r4 -_081B2D16: - mov r0, r8 - cmp r0, 0x2 - beq _081B2D2E - adds r0, r7, 0 - movs r1, 0x39 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - adds r1, r6, 0 - bl sub_81B2D3C -_081B2D2E: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81B2CD4 - - thumb_func_start sub_81B2D3C -sub_81B2D3C: @ 81B2D3C - push {r4,r5,lr} - adds r2, r0, 0 - adds r4, r1, 0 - lsls r2, 16 - lsrs r2, 16 - ldr r5, =gStringVar1 - adds r0, r5, 0 - adds r1, r2, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - movs r1, 0xBA - strb r1, [r0] - movs r1, 0xFF - strb r1, [r0, 0x1] - ldrb r0, [r4, 0x8] - ldr r3, [r4] - adds r3, 0x10 - adds r1, r5, 0 - movs r2, 0 - bl sub_81B2A3C - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B2D3C - - thumb_func_start sub_81B2D74 -sub_81B2D74: @ 81B2D74 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - adds r7, r0, 0 - adds r6, r1, 0 - lsls r2, 24 - lsrs r4, r2, 24 - mov r8, r4 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _081B2DD0 - cmp r4, 0 - beq _081B2DB8 - ldr r5, [r6] - ldrb r0, [r6, 0x8] - ldrb r1, [r5, 0x14] - lsrs r1, 3 - adds r1, 0x1 - ldrb r2, [r5, 0x15] - lsrs r2, 3 - adds r2, 0x1 - ldrb r3, [r5, 0x16] - lsrs r3, 3 - ldrb r4, [r5, 0x17] - lsrs r4, 3 - str r4, [sp] - movs r4, 0 - str r4, [sp, 0x4] - ldr r4, [r5] - bl _call_via_r4 -_081B2DB8: - mov r0, r8 - cmp r0, 0x2 - beq _081B2DD0 - adds r0, r7, 0 - movs r1, 0x3A - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - adds r1, r6, 0 - bl sub_81B2DDC -_081B2DD0: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81B2D74 - - thumb_func_start sub_81B2DDC -sub_81B2DDC: @ 81B2DDC - push {r4-r6,lr} - adds r2, r0, 0 - adds r6, r1, 0 - lsls r2, 16 - lsrs r2, 16 - ldr r5, =gStringVar2 - adds r0, r5, 0 - adds r1, r2, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar1 - ldr r1, =gUnknown_085E8D3E - adds r0, r4, 0 - bl StringCopy - adds r0, r4, 0 - adds r1, r5, 0 - bl StringAppend - ldrb r0, [r6, 0x8] - ldr r3, [r6] - adds r3, 0x14 - adds r1, r4, 0 - movs r2, 0 - bl sub_81B2A3C - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B2DDC - - thumb_func_start sub_81B2E28 -sub_81B2E28: @ 81B2E28 - push {r4-r6,lr} - adds r5, r0, 0 - adds r6, r1, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _081B2E5C - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0x3A - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - adds r2, r6, 0 - bl sub_81B2E64 -_081B2E5C: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81B2E28 - - thumb_func_start sub_81B2E64 -sub_81B2E64: @ 81B2E64 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - adds r6, r2, 0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - ldrb r0, [r6, 0x8] - movs r1, 0x5 - bl GetWindowAttribute - lsls r0, 28 - lsrs r7, r0, 24 - mov r1, r8 - lsls r0, r1, 16 - asrs r0, 16 - mov r2, r9 - lsls r1, r2, 16 - asrs r1, 16 - bl sub_8075060 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - beq _081B2EB0 - cmp r0, 0x2 - blt _081B2EE0 - cmp r0, 0x4 - bgt _081B2EE0 - ldr r5, =gUnknown_08615AC7 - b _081B2EB2 - .pool -_081B2EB0: - ldr r5, =gUnknown_08615AC9 -_081B2EB2: - ldrb r0, [r5] - bl sub_81B2564 - ldr r4, =gUnknown_08615AB8 - ldrb r1, [r4] - adds r1, r7 - movs r2, 0x2 - bl LoadPalette - ldrb r0, [r5, 0x1] - bl sub_81B2564 - ldrb r1, [r4, 0x1] - adds r1, r7 - movs r2, 0x2 - bl LoadPalette - b _081B2F04 - .pool -_081B2EE0: - ldr r5, =gUnknown_08615ACB - ldrb r0, [r5] - bl sub_81B2564 - ldr r4, =gUnknown_08615AB8 - ldrb r1, [r4] - adds r1, r7 - movs r2, 0x2 - bl LoadPalette - ldrb r0, [r5, 0x1] - bl sub_81B2564 - ldrb r1, [r4, 0x1] - adds r1, r7 - movs r2, 0x2 - bl LoadPalette -_081B2F04: - mov r1, r8 - lsls r0, r1, 16 - asrs r0, 16 - mov r2, r9 - lsls r1, r2, 16 - asrs r1, 16 - ldr r2, [r6] - ldrb r2, [r2, 0x1A] - bl sub_8075034 - lsls r0, 24 - lsrs r5, r0, 24 - ldrb r0, [r6, 0x8] - ldr r4, =gUnknown_08615AB8 - ldrb r1, [r4, 0x1] - ldr r3, [r6] - ldrb r2, [r3, 0x18] - ldrb r3, [r3, 0x19] - str r5, [sp] - movs r7, 0x1 - str r7, [sp, 0x4] - bl FillWindowPixelRect - ldrb r0, [r6, 0x8] - ldrb r1, [r4] - ldr r3, [r6] - ldrb r2, [r3, 0x18] - ldrb r3, [r3, 0x19] - adds r3, 0x1 - str r5, [sp] - movs r4, 0x2 - str r4, [sp, 0x4] - bl FillWindowPixelRect - ldr r1, [r6] - ldrb r0, [r1, 0x1A] - cmp r5, r0 - beq _081B2F88 - ldrb r0, [r6, 0x8] - ldrb r2, [r1, 0x18] - adds r2, r5 - ldrb r3, [r1, 0x19] - ldrb r1, [r1, 0x1A] - subs r1, r5 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - str r7, [sp, 0x4] - movs r1, 0xD - bl FillWindowPixelRect - ldrb r0, [r6, 0x8] - ldr r1, [r6] - ldrb r2, [r1, 0x18] - adds r2, r5 - ldrb r3, [r1, 0x19] - adds r3, 0x1 - ldrb r1, [r1, 0x1A] - subs r1, r5 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - str r4, [sp, 0x4] - movs r1, 0x2 - bl FillWindowPixelRect -_081B2F88: - ldrb r0, [r6, 0x8] - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B2E64 - - thumb_func_start sub_81B2FA8 -sub_81B2FA8: @ 81B2FA8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - adds r6, r1, 0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r2, 24 - lsrs r7, r2, 24 - cmp r7, 0 - beq _081B2FF2 - ldr r5, [r6] - ldrb r1, [r5, 0x1C] - movs r4, 0x7 - adds r0, r1, 0 - ands r0, r4 - ldrb r2, [r5, 0x1E] - adds r0, r2 - adds r3, r0, 0x7 - asrs r3, 3 - ldrb r2, [r5, 0x1D] - adds r0, r2, 0 - ands r0, r4 - ldrb r4, [r5, 0x1F] - adds r0, r4 - adds r4, r0, 0x7 - ldrb r0, [r6, 0x8] - lsrs r1, 3 - lsrs r2, 3 - lsrs r4, 3 - str r4, [sp] - movs r4, 0x1 - str r4, [sp, 0x4] - ldr r4, [r5] - bl _call_via_r4 -_081B2FF2: - cmp r7, 0x2 - beq _081B3018 - ldrb r0, [r6, 0x8] - ldr r1, [r6] - ldrb r2, [r1, 0x1C] - ldrb r3, [r1, 0x1D] - ldr r1, =gUnknown_086157FC - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - ldr r4, =gUnknown_08615B60 - mov r5, r8 - lsls r1, r5, 2 - adds r1, r4 - ldr r1, [r1] - str r1, [sp, 0x8] - movs r1, 0x1 - bl box_print -_081B3018: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B2FA8 - - thumb_func_start sub_81B302C -sub_81B302C: @ 81B302C - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4] - cmp r0, 0xFF - beq _081B304C - movs r1, 0 - bl sub_8198070 - ldrb r0, [r4] - bl RemoveWindow - movs r0, 0xFF - strb r0, [r4] - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram -_081B304C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81B302C - - thumb_func_start display_pokemon_menu_message -display_pokemon_menu_message: @ 81B3054 - push {r4-r6,lr} - sub sp, 0xC - adds r6, r0, 0 - ldr r0, =gUnknown_0203CEC4 - ldr r4, [r0] - adds r5, r4, 0 - adds r5, 0xD - ldrb r0, [r4, 0xD] - cmp r0, 0xFF - beq _081B306E - adds r0, r5, 0 - bl sub_81B302C -_081B306E: - cmp r6, 0x7F - beq _081B313C - adds r0, r6, 0 - subs r0, 0x15 - cmp r0, 0x5 - bhi _081B30D4 - lsls r0, 2 - ldr r1, =_081B308C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081B308C: - .4byte _081B30A4 - .4byte _081B30BC - .4byte _081B30BC - .4byte _081B30AC - .4byte _081B30B4 - .4byte _081B30C4 -_081B30A4: - ldr r0, =gUnknown_08615928 - b _081B30C6 - .pool -_081B30AC: - ldr r0, =gUnknown_08615930 - b _081B30C6 - .pool -_081B30B4: - ldr r0, =gUnknown_08615938 - b _081B30C6 - .pool -_081B30BC: - ldr r0, =gUnknown_08615940 - b _081B30C6 - .pool -_081B30C4: - ldr r0, =gUnknown_08615948 -_081B30C6: - bl AddWindow - strb r0, [r5] - b _081B30DC - .pool -_081B30D4: - ldr r0, =gUnknown_08615920 - bl AddWindow - strb r0, [r4, 0xD] -_081B30DC: - cmp r6, 0 - bne _081B3104 - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - ldrb r0, [r0, 0x8] - lsls r0, 31 - cmp r0, 0 - beq _081B30F8 - movs r6, 0x2 - b _081B3104 - .pool -_081B30F8: - bl sub_81B314C - lsls r0, 24 - cmp r0, 0 - bne _081B3104 - movs r6, 0x1 -_081B3104: - ldrb r0, [r5] - movs r1, 0 - movs r2, 0x4F - movs r3, 0xD - bl SetWindowBorderStyle - ldr r4, =gStringVar4 - ldr r1, =gUnknown_08615AF4 - lsls r0, r6, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl StringExpandPlaceholders - ldrb r0, [r5] - movs r1, 0x1 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - str r1, [sp, 0x8] - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0 - bl Print - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram -_081B313C: - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end display_pokemon_menu_message - - thumb_func_start sub_81B314C -sub_81B314C: @ 81B314C - push {r4-r7,lr} - ldr r7, =gPlayerParty - movs r6, 0 - ldr r0, =gUnknown_0203CEC8 - ldrb r0, [r0, 0xB] - cmp r0, 0x1 - bne _081B3168 -_081B315A: - movs r0, 0x1 - b _081B31AA - .pool -_081B3168: - movs r5, 0 -_081B316A: - movs r0, 0x64 - muls r0, r5 - adds r4, r7, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _081B319A - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _081B3194 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - beq _081B319A -_081B3194: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_081B319A: - cmp r6, 0x1 - bhi _081B315A - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _081B316A - movs r0, 0 -_081B31AA: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81B314C - - thumb_func_start sub_81B31B0 -sub_81B31B0: @ 81B31B0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x1C - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - beq _081B320C - cmp r4, 0x1 - bgt _081B31CC - cmp r4, 0 - beq _081B31D2 - b _081B321C -_081B31CC: - cmp r4, 0x2 - beq _081B3214 - b _081B321C -_081B31D2: - ldr r0, =gUnknown_0203CEC4 - ldr r1, [r0] - ldrb r0, [r1, 0x17] - lsls r0, 1 - movs r3, 0x13 - subs r3, r0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0xA - str r0, [sp] - ldrb r0, [r1, 0x17] - lsls r0, 25 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0xE - str r0, [sp, 0x8] - ldr r0, =0x000002e9 - str r0, [sp, 0xC] - add r0, sp, 0x14 - movs r1, 0x2 - movs r2, 0x13 - bl rbox_template_set - b _081B3226 - .pool -_081B320C: - ldr r0, =gUnknown_08615950 - b _081B321E - .pool -_081B3214: - ldr r0, =gUnknown_08615958 - b _081B321E - .pool -_081B321C: - ldr r0, =gUnknown_08615960 -_081B321E: - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x14] - str r1, [sp, 0x18] -_081B3226: - add r0, sp, 0x14 - bl AddWindow - ldr r6, =gUnknown_0203CEC4 - ldr r1, [r6] - strb r0, [r1, 0xC] - ldr r0, [r6] - ldrb r0, [r0, 0xC] - movs r1, 0 - movs r2, 0x4F - movs r3, 0xD - bl SetWindowBorderStyle - cmp r4, 0x3 - bne _081B3250 - ldr r0, [r6] - b _081B32E2 - .pool -_081B3250: - movs r0, 0x1 - movs r1, 0 - bl GetMenuCursorDimensionByFont - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r0, 0x1 - movs r1, 0x2 - bl GetFontAttribute - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r5, 0 - ldr r0, [r6] - ldrb r0, [r0, 0x17] - cmp r5, r0 - bcs _081B32CA - adds r7, r6, 0 - movs r6, 0 -_081B327A: - ldr r1, [r7] - adds r0, r1, 0 - adds r0, 0xF - adds r4, r0, r5 - ldrb r0, [r4] - movs r2, 0x3 - cmp r0, 0x12 - bls _081B328C - movs r2, 0x4 -_081B328C: - ldrb r0, [r1, 0xC] - lsls r3, r5, 4 - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - mov r1, r8 - str r1, [sp] - str r6, [sp, 0x4] - lsls r1, r2, 1 - adds r1, r2 - ldr r2, =gUnknown_086157FC - adds r1, r2 - str r1, [sp, 0x8] - str r6, [sp, 0xC] - ldr r2, =gUnknown_08615C08 - ldrb r1, [r4] - lsls r1, 3 - adds r1, r2 - ldr r1, [r1] - str r1, [sp, 0x10] - movs r1, 0x1 - mov r2, r9 - bl AddTextPrinterParametrized2 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, [r7] - ldrb r0, [r0, 0x17] - cmp r5, r0 - bcc _081B327A -_081B32CA: - ldr r4, =gUnknown_0203CEC4 - ldr r1, [r4] - ldrb r0, [r1, 0xC] - ldrb r1, [r1, 0x17] - movs r2, 0 - movs r3, 0x1 - bl InitMenuInUpperLeftCorner - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, [r4] -_081B32E2: - ldrb r0, [r0, 0xC] - add sp, 0x1C - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81B31B0 - - thumb_func_start sub_81B3300 -sub_81B3300: @ 81B3300 - push {r4,lr} - sub sp, 0x10 - adds r4, r0, 0 - movs r0, 0x6 - movs r1, 0 - movs r2, 0x4F - movs r3, 0xD - bl SetWindowBorderStyle - ldr r2, =gTextFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - bl sav2_get_text_speed - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0x6 - movs r1, 0x1 - adds r2, r4, 0 - bl AddTextPrinterParametrized - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B3300 - - thumb_func_start sub_81B334C -sub_81B334C: @ 81B334C - push {lr} - ldr r0, =gUnknown_08615968 - movs r1, 0x4F - movs r2, 0xD - movs r3, 0 - bl CreateYesNoMenu - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B334C - - thumb_func_start sub_81B3364 -sub_81B3364: @ 81B3364 - push {r4,lr} - ldr r0, =gUnknown_08615970 - bl AddWindow - ldr r4, =gUnknown_0203CEC4 - ldr r1, [r4] - strb r0, [r1, 0xC] - ldr r0, [r4] - ldrb r0, [r0, 0xC] - movs r1, 0 - movs r2, 0x4F - movs r3, 0xD - bl SetWindowBorderStyle - ldr r0, [r4] - ldrb r0, [r0, 0xC] - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81B3364 - - thumb_func_start sub_81B3394 -sub_81B3394: @ 81B3394 - push {r4,lr} - ldr r4, =gUnknown_0203CEC4 - ldr r0, [r4] - ldrb r0, [r0, 0xC] - bl ClearWindowTilemap - ldr r0, [r4] - adds r0, 0xC - bl sub_81B302C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B3394 - - thumb_func_start sub_81B33B4 -sub_81B33B4: @ 81B33B4 - push {r4,lr} - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - cmp r2, 0 - bne _081B33C8 - bl sub_81B3414 - b _081B3400 -_081B33C8: - ldr r4, =gUnknown_0203CEC4 - ldr r1, [r4] - ldr r0, =gUnknown_08615D70 - adds r0, r2, r0 - ldrb r0, [r0] - strb r0, [r1, 0x17] - movs r3, 0 - ldr r0, [r4] - ldrb r0, [r0, 0x17] - cmp r3, r0 - bcs _081B3400 - ldr r1, =gUnknown_08615D38 - lsls r0, r2, 2 - adds r2, r0, r1 -_081B33E4: - ldr r1, [r4] - adds r1, 0xF - adds r1, r3 - ldr r0, [r2] - adds r0, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, [r4] - ldrb r0, [r0, 0x17] - cmp r3, r0 - bcc _081B33E4 -_081B3400: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B33B4 - - thumb_func_start sub_81B3414 -sub_81B3414: @ 81B3414 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r9, r0 - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - ldr r2, =gUnknown_0203CEC4 - ldr r1, [r2] - movs r0, 0 - strb r0, [r1, 0x17] - ldr r1, [r2] - adds r0, r1, 0 - adds r0, 0xF - adds r1, 0x17 - movs r2, 0 - bl append_byte - movs r7, 0 - ldr r0, =gUnknown_08615D7E - ldrh r0, [r0] - str r0, [sp] -_081B3446: - movs r4, 0 - adds r0, r7, 0x1 - mov r8, r0 - ldr r1, [sp] - cmp r1, 0xE - beq _081B34A0 - movs r0, 0x64 - mov r6, r10 - muls r6, r0 - ldr r5, =gUnknown_08615D7E -_081B345A: - mov r1, r9 - adds r0, r1, r6 - adds r1, r7, 0 - adds r1, 0xD - bl GetMonData - lsls r1, r4, 1 - adds r1, r5 - ldrh r1, [r1] - cmp r0, r1 - bne _081B3490 - ldr r0, =gUnknown_0203CEC4 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0xF - adds r1, 0x17 - adds r2, r4, 0 - adds r2, 0x13 - lsls r2, 24 - lsrs r2, 24 - bl append_byte - b _081B34A0 - .pool -_081B3490: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 1 - adds r0, r5 - ldrh r0, [r0] - cmp r0, 0xE - bne _081B345A -_081B34A0: - mov r1, r8 - lsls r0, r1, 24 - lsrs r7, r0, 24 - cmp r7, 0x3 - bls _081B3446 - bl InBattlePike - lsls r0, 24 - cmp r0, 0 - bne _081B3518 - mov r0, r9 - adds r0, 0x64 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _081B34D2 - ldr r0, =gUnknown_0203CEC4 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0xF - adds r1, 0x17 - movs r2, 0x1 - bl append_byte -_081B34D2: - movs r0, 0x64 - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - add r0, r9 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - beq _081B3508 - ldr r0, =gUnknown_0203CEC4 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0xF - adds r1, 0x17 - movs r2, 0x6 - bl append_byte - b _081B3518 - .pool -_081B3508: - ldr r0, =gUnknown_0203CEC4 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0xF - adds r1, 0x17 - movs r2, 0x3 - bl append_byte -_081B3518: - ldr r0, =gUnknown_0203CEC4 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0xF - adds r1, 0x17 - movs r2, 0x2 - bl append_byte - 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_81B3414 - - thumb_func_start sub_81B353C -sub_81B353C: @ 81B353C - push {r4,lr} - adds r4, r0, 0 - ldr r1, =gUnknown_0203CEC8 - ldrb r0, [r1, 0x8] - lsls r0, 28 - lsrs r0, 28 - adds r2, r1, 0 - cmp r0, 0xC - bhi _081B35FE - lsls r0, 2 - ldr r1, =_081B3560 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081B3560: - .4byte _081B3594 - .4byte _081B35B0 - .4byte _081B35FE - .4byte _081B35FE - .4byte _081B35BC - .4byte _081B35FE - .4byte _081B35DC - .4byte _081B35FE - .4byte _081B35EE - .4byte _081B35F2 - .4byte _081B35F6 - .4byte _081B35FE - .4byte _081B35FA -_081B3594: - bl in_multi_battle_room_with_var_condition - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B35AC - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - beq _081B35FE -_081B35AC: - movs r1, 0x1 - b _081B3600 -_081B35B0: - adds r0, r4, 0 - bl sub_81B8A2C - lsls r0, 24 - lsrs r1, r0, 24 - b _081B3600 -_081B35BC: - movs r0, 0x9 - ldrsb r0, [r2, r0] - bl sub_81B856C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _081B35D4 - cmp r0, 0x1 - beq _081B35D8 - movs r1, 0x7 - b _081B3600 -_081B35D4: - movs r1, 0x4 - b _081B3600 -_081B35D8: - movs r1, 0x5 - b _081B3600 -_081B35DC: - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - movs r1, 0x6 - cmp r0, 0 - beq _081B3600 - movs r1, 0x7 - b _081B3600 -_081B35EE: - movs r1, 0xA - b _081B3600 -_081B35F2: - movs r1, 0xB - b _081B3600 -_081B35F6: - movs r1, 0xC - b _081B3600 -_081B35FA: - movs r1, 0xD - b _081B3600 -_081B35FE: - movs r1, 0 -_081B3600: - adds r0, r1, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81B353C - - thumb_func_start sub_81B3608 -sub_81B3608: @ 81B3608 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r4, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r4, r1] - movs r0, 0x64 - muls r0, r1 - ldr r7, =gPlayerParty - adds r5, r0, r7 - ldr r1, =gStringVar1 - adds r0, r5, 0 - bl GetMonNickname - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - adds r0, 0xD - bl sub_81B302C - ldrb r1, [r4, 0x8] - movs r0, 0xF - ands r0, r1 - cmp r0, 0xC - beq _081B3674 - ldrb r4, [r4, 0x9] - adds r0, r5, 0 - bl sub_81B353C - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r7, 0 - adds r1, r4, 0 - bl sub_81B33B4 - movs r0, 0 - bl sub_81B31B0 - movs r0, 0x15 - bl display_pokemon_menu_message - b _081B36EA - .pool -_081B3674: - adds r0, r5, 0 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0 - bne _081B36C0 - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9980 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81B1B5C - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, =gTasks - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B469C - str r1, [r0] - movs r0, 0 - b _081B36EC - .pool -_081B36C0: - ldrb r4, [r4, 0x9] - adds r0, r5, 0 - bl sub_81B353C - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r7, 0 - adds r1, r4, 0 - bl sub_81B33B4 - movs r0, 0x1 - bl sub_81B31B0 - ldr r1, =gStringVar2 - adds r0, r6, 0 - bl itemid_get_name - movs r0, 0x1A - bl display_pokemon_menu_message -_081B36EA: - movs r0, 0x1 -_081B36EC: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81B3608 - - thumb_func_start sub_81B36FC -sub_81B36FC: @ 81B36FC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_81B3608 - lsls r0, 24 - cmp r0, 0 - beq _081B3720 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0xFF - strh r1, [r0, 0x8] - ldr r1, =sub_81B3730 - str r1, [r0] -_081B3720: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B36FC - - thumb_func_start sub_81B3730 -sub_81B3730: @ 81B3730 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081B37EE - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B37EE - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r5, r0, r1 - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - ldrb r0, [r0, 0x17] - cmp r0, 0x3 - bhi _081B3774 - bl ProcessMenuInputNoWrapAround_other - b _081B3778 - .pool -_081B3774: - bl ProcessMenuInput_other -_081B3778: - lsls r0, 24 - lsrs r4, r0, 24 - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - lsls r0, r4, 24 - asrs r5, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r5, r0 - beq _081B37EE - adds r0, 0x1 - cmp r5, r0 - bne _081B37CC - movs r0, 0x5 - bl audio_play - ldr r4, =gUnknown_0203CEC4 - ldr r0, [r4] - adds r0, 0xE - bl sub_81B302C - ldr r2, =gUnknown_08615C08 - ldr r0, [r4] - ldrb r1, [r0, 0x17] - adds r0, r1 - ldrb r0, [r0, 0xE] - lsls r0, 3 - adds r2, 0x4 - adds r0, r2 - ldr r1, [r0] - adds r0, r6, 0 - bl _call_via_r1 - b _081B37EE - .pool -_081B37CC: - ldr r4, =gUnknown_0203CEC4 - ldr r0, [r4] - adds r0, 0xE - bl sub_81B302C - ldr r1, =gUnknown_08615C08 - ldr r0, [r4] - adds r0, 0xF - adds r0, r5 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r6, 0 - bl _call_via_r1 -_081B37EE: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B3730 - - thumb_func_start sub_81B37FC -sub_81B37FC: @ 81B37FC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_0203CEC4 - ldr r1, [r0] - ldr r0, =sub_81B3828 - str r0, [r1, 0x4] - adds r0, r4, 0 - bl sub_81B12C0 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B37FC - - thumb_func_start sub_81B3828 -sub_81B3828: @ 81B3828 - push {r4,lr} - sub sp, 0x4 - ldr r4, =gUnknown_0203CEC8 - ldrb r1, [r4, 0x8] - movs r0, 0xF - ands r0, r1 - cmp r0, 0x1 - bne _081B3868 - bl pokemon_change_order - ldr r1, =gPlayerParty - ldrb r2, [r4, 0x9] - ldr r0, =gUnknown_020244E9 - ldrb r3, [r0] - subs r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - ldr r0, =sub_81B3894 - str r0, [sp] - movs r0, 0x1 - bl sub_81BF8EC - b _081B3880 - .pool -_081B3868: - ldr r1, =gPlayerParty - ldrb r2, [r4, 0x9] - ldr r0, =gUnknown_020244E9 - ldrb r3, [r0] - subs r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - ldr r0, =sub_81B3894 - str r0, [sp] - movs r0, 0 - bl sub_81BF8EC -_081B3880: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B3828 - - thumb_func_start sub_81B3894 -sub_81B3894: @ 81B3894 - push {lr} - sub sp, 0xC - ldr r2, =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - ldr r3, =gUnknown_0203CEC8 - ldr r0, =gUnknown_0203CF20 - ldrb r0, [r0] - strb r0, [r3, 0x9] - ldrb r0, [r3, 0x8] - lsls r0, 28 - lsrs r0, 28 - ldrb r2, [r3, 0xB] - movs r1, 0x15 - str r1, [sp] - ldr r1, =sub_81B36FC - str r1, [sp, 0x4] - ldr r1, [r3] - str r1, [sp, 0x8] - movs r1, 0xFF - movs r3, 0x1 - bl sub_81B0038 - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B3894 - - thumb_func_start brm_switch -brm_switch: @ 81B38DC - push {r4-r6,lr} - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - movs r0, 0x5 - bl audio_play - ldr r5, =gUnknown_0203CEC8 - movs r0, 0x8 - strb r0, [r5, 0xB] - ldr r4, =gUnknown_0203CEC4 - ldr r0, [r4] - adds r0, 0xD - bl sub_81B302C - ldr r0, [r4] - adds r0, 0xC - bl sub_81B302C - movs r0, 0x3 - bl display_pokemon_menu_message - ldrb r0, [r5, 0x9] - movs r1, 0x1 - bl sub_81B0FCC - ldrb r0, [r5, 0x9] - strb r0, [r5, 0xA] - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B1370 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end brm_switch - - thumb_func_start sub_81B3938 -sub_81B3938: @ 81B3938 - push {r4-r7,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r6, r0, r1 - ldr r3, =gUnknown_0203CEC8 - movs r1, 0xA - ldrsb r1, [r3, r1] - movs r0, 0x9 - ldrsb r0, [r3, r0] - cmp r1, r0 - bne _081B3968 - adds r0, r7, 0 - bl sub_81B407C - b _081B3ABA - .pool -_081B3968: - add r2, sp, 0x8 - movs r0, 0x9 - ldrsb r0, [r3, r0] - ldr r1, =gUnknown_0203CEDC - ldr r1, [r1] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x8] - movs r4, 0 - strb r0, [r2] - adds r0, r2, 0 - ldrb r0, [r0] - movs r1, 0x1 - bl GetWindowAttribute - strh r0, [r6] - add r0, sp, 0x8 - ldrb r0, [r0] - movs r1, 0x2 - bl GetWindowAttribute - strh r0, [r6, 0x2] - add r0, sp, 0x8 - ldrb r0, [r0] - movs r1, 0x3 - bl GetWindowAttribute - strh r0, [r6, 0x4] - add r0, sp, 0x8 - ldrb r0, [r0] - movs r1, 0x4 - bl GetWindowAttribute - strh r0, [r6, 0x6] - strh r4, [r6, 0x10] - movs r1, 0x4 - ldrsh r0, [r6, r1] - cmp r0, 0xA - bne _081B39C4 - movs r2, 0x1 - negs r2, r2 - adds r0, r2, 0 - b _081B39C6 - .pool -_081B39C4: - movs r0, 0x1 -_081B39C6: - strh r0, [r6, 0x14] - add r2, sp, 0x8 - ldr r0, =gUnknown_0203CEC8 - ldrb r0, [r0, 0xA] - lsls r0, 24 - asrs r0, 24 - ldr r1, =gUnknown_0203CEDC - ldr r1, [r1] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x8] - movs r4, 0 - strb r0, [r2, 0x1] - adds r0, r2, 0 - ldrb r0, [r0, 0x1] - movs r1, 0x1 - bl GetWindowAttribute - strh r0, [r6, 0x8] - add r0, sp, 0x8 - ldrb r0, [r0, 0x1] - movs r1, 0x2 - bl GetWindowAttribute - strh r0, [r6, 0xA] - add r0, sp, 0x8 - ldrb r0, [r0, 0x1] - movs r1, 0x3 - bl GetWindowAttribute - strh r0, [r6, 0xC] - add r0, sp, 0x8 - ldrb r0, [r0, 0x1] - movs r1, 0x4 - bl GetWindowAttribute - strh r0, [r6, 0xE] - strh r4, [r6, 0x12] - movs r1, 0xC - ldrsh r0, [r6, r1] - cmp r0, 0xA - bne _081B3A2C - movs r2, 0x1 - negs r2, r2 - adds r0, r2, 0 - b _081B3A2E - .pool -_081B3A2C: - movs r0, 0x1 -_081B3A2E: - strh r0, [r6, 0x16] - ldr r4, =gUnknown_0203CEF0 - movs r0, 0x4 - ldrsh r1, [r6, r0] - movs r2, 0x6 - ldrsh r0, [r6, r2] - lsls r0, 1 - muls r0, r1 - bl Alloc - str r0, [r4] - ldr r5, =gUnknown_0203CEF4 - movs r0, 0xC - ldrsh r1, [r6, r0] - movs r2, 0xE - ldrsh r0, [r6, r2] - lsls r0, 1 - muls r0, r1 - bl Alloc - str r0, [r5] - ldr r1, [r4] - ldrb r2, [r6] - ldrb r3, [r6, 0x2] - ldrb r0, [r6, 0x4] - str r0, [sp] - ldrb r0, [r6, 0x6] - str r0, [sp, 0x4] - movs r0, 0 - bl sub_8199CBC - ldr r1, [r5] - ldrb r2, [r6, 0x8] - ldrb r3, [r6, 0xA] - ldrb r0, [r6, 0xC] - str r0, [sp] - ldrb r0, [r6, 0xE] - str r0, [sp, 0x4] - movs r0, 0 - bl sub_8199CBC - add r0, sp, 0x8 - ldrb r0, [r0] - bl ClearWindowTilemap - add r0, sp, 0x8 - ldrb r0, [r0, 0x1] - bl ClearWindowTilemap - ldr r4, =gUnknown_0203CEC8 - movs r0, 0x9 - strb r0, [r4, 0xB] - ldrb r0, [r4, 0x9] - movs r1, 0x1 - bl sub_81B0FCC - ldrb r0, [r4, 0xA] - movs r1, 0x1 - bl sub_81B0FCC - adds r0, r7, 0 - bl sub_81B3CC0 - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B3D48 - str r1, [r0] -_081B3ABA: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B3938 - - thumb_func_start sub_81B3AD8 -sub_81B3AD8: @ 81B3AD8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r2, 0 - mov r12, r3 - ldr r7, [sp, 0x18] - lsls r0, 16 - lsrs r3, r0, 16 - adds r5, r3, 0 - lsls r1, 16 - lsrs r2, r1, 16 - mov r8, r2 - lsls r0, r3, 16 - asrs r1, r0, 16 - lsls r0, r2, 16 - asrs r0, 16 - adds r4, r1, r0 - cmp r4, 0 - blt _081B3B02 - cmp r1, 0x1F - ble _081B3B06 -_081B3B02: - movs r0, 0 - b _081B3B34 -_081B3B06: - cmp r1, 0 - bge _081B3B1A - negs r0, r1 - strb r0, [r6] - movs r0, 0 - mov r1, r12 - strb r0, [r1] - adds r0, r2, r3 - strb r0, [r7] - b _081B3B32 -_081B3B1A: - movs r0, 0 - strb r0, [r6] - mov r0, r12 - strb r5, [r0] - cmp r4, 0x1F - ble _081B3B2E - movs r0, 0x20 - subs r0, r5 - strb r0, [r7] - b _081B3B32 -_081B3B2E: - mov r1, r8 - strb r1, [r7] -_081B3B32: - movs r0, 0x1 -_081B3B34: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81B3AD8 - - thumb_func_start sub_81B3B40 -sub_81B3B40: @ 81B3B40 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x34 - str r0, [sp, 0x28] - ldr r0, [sp, 0x54] - ldr r4, [sp, 0x58] - lsls r2, 16 - lsrs r2, 16 - mov r9, r2 - lsls r3, 16 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - lsls r4, 16 - lsrs r4, 16 - str r4, [sp, 0x30] - lsls r1, 16 - asrs r7, r1, 16 - lsrs r0, r3, 16 - str r0, [sp, 0x2C] - asrs r3, 16 - mov r8, r3 - mov r5, sp - adds r5, 0x25 - mov r6, sp - adds r6, 0x26 - str r6, [sp] - adds r0, r7, 0 - mov r1, r8 - add r2, sp, 0x24 - adds r3, r5, 0 - bl sub_81B3AD8 - lsls r0, 24 - cmp r0, 0 - beq _081B3BFA - ldrb r2, [r5] - mov r1, r9 - lsls r0, r1, 24 - lsrs r0, 24 - mov r9, r0 - ldrb r0, [r6] - str r0, [sp] - mov r1, r10 - lsls r0, r1, 24 - lsrs r4, r0, 24 - str r4, [sp, 0x4] - movs r0, 0 - movs r1, 0 - mov r3, r9 - bl FillBgTilemapBufferRect_Palette0 - ldr r1, [sp, 0x30] - lsls r0, r1, 16 - asrs r0, 16 - adds r0, r7, r0 - lsls r0, 16 - asrs r0, 16 - str r6, [sp] - mov r1, r8 - add r2, sp, 0x24 - adds r3, r5, 0 - bl sub_81B3AD8 - lsls r0, 24 - cmp r0, 0 - beq _081B3BFA - add r0, sp, 0x24 - ldrb r2, [r0] - ldr r1, [sp, 0x2C] - lsls r0, r1, 24 - lsrs r0, 24 - str r0, [sp] - str r4, [sp, 0x4] - ldrb r0, [r5] - str r0, [sp, 0x8] - mov r0, r9 - str r0, [sp, 0xC] - ldrb r0, [r6] - str r0, [sp, 0x10] - str r4, [sp, 0x14] - movs r0, 0x11 - str r0, [sp, 0x18] - movs r0, 0 - str r0, [sp, 0x1C] - str r0, [sp, 0x20] - ldr r1, [sp, 0x28] - movs r3, 0 - bl CopyRectToBgTilemapBufferRect -_081B3BFA: - add sp, 0x34 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81B3B40 - - thumb_func_start sub_81B3C0C -sub_81B3C0C: @ 81B3C0C - push {r4,lr} - ldr r4, =gUnknown_02020630 - ldrb r2, [r0, 0xB] - lsls r3, r2, 4 - adds r3, r2 - lsls r3, 2 - adds r3, r4 - lsls r1, 16 - asrs r1, 13 - ldrh r2, [r3, 0x24] - adds r2, r1 - strh r2, [r3, 0x24] - ldrb r3, [r0, 0xA] - lsls r2, r3, 4 - adds r2, r3 - lsls r2, 2 - adds r2, r4 - ldrh r3, [r2, 0x24] - adds r3, r1 - strh r3, [r2, 0x24] - ldrb r3, [r0, 0x9] - lsls r2, r3, 4 - adds r2, r3 - lsls r2, 2 - adds r2, r4 - ldrh r3, [r2, 0x24] - adds r3, r1 - strh r3, [r2, 0x24] - ldrb r2, [r0, 0xC] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r4 - ldrh r2, [r0, 0x24] - adds r2, r1 - strh r2, [r0, 0x24] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B3C0C - - thumb_func_start sub_81B3C60 -sub_81B3C60: @ 81B3C60 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r4, r1, r0 - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _081B3C8E - ldr r2, =gUnknown_0203CEDC - ldr r0, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r0, r1] - lsls r1, 4 - ldr r0, [r2] - adds r0, r1 - movs r2, 0x14 - ldrsh r1, [r4, r2] - bl sub_81B3C0C -_081B3C8E: - movs r1, 0x16 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _081B3CAC - ldr r2, =gUnknown_0203CEDC - ldr r0, =gUnknown_0203CEC8 - movs r1, 0xA - ldrsb r1, [r0, r1] - lsls r1, 4 - ldr r0, [r2] - adds r0, r1 - movs r2, 0x16 - ldrsh r1, [r4, r2] - bl sub_81B3C0C -_081B3CAC: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B3C60 - - thumb_func_start sub_81B3CC0 -sub_81B3CC0: @ 81B3CC0 - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r5, r1, r0 - movs r1, 0x14 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _081B3D00 - ldr r0, =gUnknown_0203CEF0 - ldr r0, [r0] - ldrh r1, [r5, 0x10] - ldrh r2, [r5] - adds r1, r2 - lsls r1, 16 - asrs r1, 16 - movs r3, 0x2 - ldrsh r2, [r5, r3] - movs r4, 0x4 - ldrsh r3, [r5, r4] - movs r6, 0x6 - ldrsh r4, [r5, r6] - str r4, [sp] - movs r6, 0x14 - ldrsh r4, [r5, r6] - str r4, [sp, 0x4] - bl sub_81B3B40 -_081B3D00: - movs r1, 0x16 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _081B3D2E - ldr r0, =gUnknown_0203CEF4 - ldr r0, [r0] - ldrh r1, [r5, 0x12] - ldrh r2, [r5, 0x8] - adds r1, r2 - lsls r1, 16 - asrs r1, 16 - movs r3, 0xA - ldrsh r2, [r5, r3] - movs r4, 0xC - ldrsh r3, [r5, r4] - movs r6, 0xE - ldrsh r4, [r5, r6] - str r4, [sp] - movs r6, 0x16 - ldrsh r4, [r5, r6] - str r4, [sp, 0x4] - bl sub_81B3B40 -_081B3D2E: - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B3CC0 - - thumb_func_start sub_81B3D48 -sub_81B3D48: @ 81B3D48 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r7, r0, 3 - ldr r0, =gTasks + 0x8 - mov r8, r0 - adds r6, r7, r0 - adds r0, r4, 0 - bl sub_81B3CC0 - adds r0, r4, 0 - bl sub_81B3C60 - ldrh r1, [r6, 0x14] - ldrh r2, [r6, 0x10] - adds r1, r2 - strh r1, [r6, 0x10] - ldrh r0, [r6, 0x16] - ldrh r3, [r6, 0x12] - adds r0, r3 - strh r0, [r6, 0x12] - add r2, sp, 0x8 - ldrh r0, [r6] - adds r0, r1 - strh r0, [r2] - adds r1, r2, 0 - ldrh r0, [r6, 0x12] - ldrh r3, [r6, 0x8] - adds r2, r0, r3 - strh r2, [r1, 0x2] - adds r0, r1, 0 - ldrh r0, [r0] - cmp r0, 0x21 - bls _081B3E3A - lsls r0, r2, 16 - lsrs r0, 16 - cmp r0, 0x21 - bls _081B3E3A - movs r1, 0x14 - ldrsh r0, [r6, r1] - negs r0, r0 - strh r0, [r6, 0x14] - movs r2, 0x16 - ldrsh r0, [r6, r2] - negs r0, r0 - strh r0, [r6, 0x16] - bl swap_pokemon_and_oams - ldr r4, =gUnknown_0203CEC8 - ldrb r0, [r4, 0x9] - bl sub_81B0948 - ldrb r0, [r4, 0xA] - bl sub_81B0948 - movs r0, 0x9 - ldrsb r0, [r4, r0] - ldr r5, =gUnknown_0203CEDC - ldr r1, [r5] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x8] - bl PutWindowTilemap - movs r0, 0xA - ldrsb r0, [r4, r0] - ldr r1, [r5] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x8] - bl PutWindowTilemap - ldr r0, =gUnknown_0203CEF0 - ldr r1, [r0] - ldrb r2, [r6] - ldrb r3, [r6, 0x2] - ldrb r0, [r6, 0x4] - str r0, [sp] - ldrb r0, [r6, 0x6] - str r0, [sp, 0x4] - movs r0, 0 - bl sub_8199CBC - ldr r0, =gUnknown_0203CEF4 - ldr r1, [r0] - ldrb r2, [r6, 0x8] - ldrb r3, [r6, 0xA] - ldrb r0, [r6, 0xC] - str r0, [sp] - ldrb r0, [r6, 0xE] - str r0, [sp, 0x4] - movs r0, 0 - bl sub_8199CBC - movs r0, 0x9 - ldrsb r0, [r4, r0] - ldr r1, [r5] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x8] - bl ClearWindowTilemap - movs r0, 0xA - ldrsb r0, [r4, r0] - ldr r1, [r5] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x8] - bl ClearWindowTilemap - mov r0, r8 - subs r0, 0x8 - adds r0, r7, r0 - ldr r1, =sub_81B3E60 - str r1, [r0] -_081B3E3A: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B3D48 - - thumb_func_start sub_81B3E60 -sub_81B3E60: @ 81B3E60 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - adds r0, r6, 0 - bl sub_81B3CC0 - adds r0, r6, 0 - bl sub_81B3C60 - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081B3EE4 - movs r2, 0x16 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _081B3EE4 - ldr r5, =gUnknown_0203CEC8 - movs r0, 0x9 - ldrsb r0, [r5, r0] - ldr r4, =gUnknown_0203CEDC - ldr r1, [r4] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x8] - bl PutWindowTilemap - movs r0, 0xA - ldrsb r0, [r5, r0] - ldr r1, [r4] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x8] - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, =gUnknown_0203CEF0 - ldr r0, [r0] - bl Free - ldr r0, =gUnknown_0203CEF4 - ldr r0, [r0] - bl Free - adds r0, r6, 0 - bl sub_81B407C - b _081B3F08 - .pool -_081B3EE4: - ldrh r1, [r4, 0x14] - ldrh r0, [r4, 0x10] - adds r1, r0 - strh r1, [r4, 0x10] - ldrh r0, [r4, 0x16] - ldrh r2, [r4, 0x12] - adds r0, r2 - strh r0, [r4, 0x12] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0 - bne _081B3EFE - strh r1, [r4, 0x14] -_081B3EFE: - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081B3F08 - strh r0, [r4, 0x16] -_081B3F08: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81B3E60 - - thumb_func_start oamt_swap_pos -oamt_swap_pos: @ 81B3F10 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - ldrb r3, [r0] - ldrb r2, [r1] - strb r2, [r0] - strb r3, [r1] - ldr r5, =gUnknown_02020630 - ldrb r2, [r0] - lsls r3, r2, 4 - adds r3, r2 - lsls r3, 2 - adds r3, r5 - ldrh r6, [r3, 0x20] - ldrh r2, [r3, 0x22] - mov r8, r2 - ldrh r2, [r3, 0x24] - mov r9, r2 - ldrh r2, [r3, 0x26] - mov r10, r2 - ldrb r4, [r1] - lsls r2, r4, 4 - adds r2, r4 - lsls r2, 2 - adds r2, r5 - ldrh r2, [r2, 0x20] - strh r2, [r3, 0x20] - ldrb r2, [r0] - lsls r3, r2, 4 - adds r3, r2 - lsls r3, 2 - adds r3, r5 - ldrb r4, [r1] - lsls r2, r4, 4 - adds r2, r4 - lsls r2, 2 - adds r2, r5 - ldrh r2, [r2, 0x22] - strh r2, [r3, 0x22] - ldrb r2, [r0] - lsls r3, r2, 4 - adds r3, r2 - lsls r3, 2 - adds r3, r5 - ldrb r4, [r1] - lsls r2, r4, 4 - adds r2, r4 - lsls r2, 2 - adds r2, r5 - ldrh r2, [r2, 0x24] - strh r2, [r3, 0x24] - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r5 - ldrb r3, [r1] - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - adds r0, r5 - ldrh r0, [r0, 0x26] - strh r0, [r2, 0x26] - ldrb r2, [r1] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x20] - ldrb r2, [r1] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r5 - mov r2, r8 - strh r2, [r0, 0x22] - ldrb r2, [r1] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r5 - mov r2, r9 - strh r2, [r0, 0x24] - ldrb r1, [r1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r10 - strh r1, [r0, 0x26] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end oamt_swap_pos - - thumb_func_start swap_pokemon_and_oams -swap_pokemon_and_oams: @ 81B3FDC - push {r4-r6,lr} - sub sp, 0x8 - ldr r1, =gUnknown_0203CEDC - ldr r2, =gUnknown_0203CEC8 - movs r3, 0x9 - ldrsb r3, [r2, r3] - lsls r0, r3, 4 - ldr r1, [r1] - adds r0, r1, r0 - str r0, [sp] - ldrb r2, [r2, 0xA] - lsls r2, 24 - asrs r2, 24 - lsls r0, r2, 4 - adds r0, r1, r0 - str r0, [sp, 0x4] - movs r1, 0x64 - adds r4, r3, 0 - muls r4, r1 - ldr r0, =gPlayerParty - adds r4, r0 - adds r5, r2, 0 - muls r5, r1 - adds r5, r0 - movs r0, 0x64 - bl Alloc - adds r6, r0, 0 - adds r1, r4, 0 - movs r2, 0x64 - bl memcpy - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x64 - bl memcpy - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x64 - bl memcpy - adds r0, r6, 0 - bl Free - ldr r0, [sp] - adds r0, 0xB - ldr r1, [sp, 0x4] - adds r1, 0xB - bl oamt_swap_pos - ldr r0, [sp] - adds r0, 0xA - ldr r1, [sp, 0x4] - adds r1, 0xA - bl oamt_swap_pos - ldr r0, [sp] - adds r0, 0x9 - ldr r1, [sp, 0x4] - adds r1, 0x9 - bl oamt_swap_pos - ldr r0, [sp] - adds r0, 0xC - ldr r1, [sp, 0x4] - adds r1, 0xC - bl oamt_swap_pos - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end swap_pokemon_and_oams - - thumb_func_start sub_81B407C -sub_81B407C: @ 81B407C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - adds r0, 0xD - bl sub_81B302C - ldr r4, =gUnknown_0203CEC8 - movs r0, 0 - strb r0, [r4, 0xB] - ldrb r0, [r4, 0x9] - movs r1, 0 - bl sub_81B0FCC - ldrb r0, [r4, 0xA] - strb r0, [r4, 0x9] - ldrb r0, [r4, 0xA] - movs r1, 0x1 - bl sub_81B0FCC - movs r0, 0 - bl display_pokemon_menu_message - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B1370 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B407C - - thumb_func_start brm_cancel_1 -brm_cancel_1: @ 81B40D4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x5 - bl audio_play - ldr r4, =gUnknown_0203CEC4 - ldr r0, [r4] - adds r0, 0xC - bl sub_81B302C - ldr r0, [r4] - adds r0, 0xD - bl sub_81B302C - ldr r0, =gUnknown_0203CEC8 - ldrb r1, [r0, 0x8] - movs r0, 0xF - ands r0, r1 - cmp r0, 0x6 - bne _081B4110 - movs r0, 0xF - bl display_pokemon_menu_message - b _081B4116 - .pool -_081B4110: - movs r0, 0 - bl display_pokemon_menu_message -_081B4116: - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B1370 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end brm_cancel_1 - - thumb_func_start sub_81B4134 -sub_81B4134: @ 81B4134 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x5 - bl audio_play - ldr r4, =gUnknown_0203CEC4 - ldr r0, [r4] - adds r0, 0xC - bl sub_81B302C - ldr r0, [r4] - adds r0, 0xD - bl sub_81B302C - ldr r0, =gPlayerParty - ldr r1, =gUnknown_0203CEC8 - ldrb r1, [r1, 0x9] - movs r2, 0x8 - bl sub_81B33B4 - movs r0, 0x1 - bl sub_81B31B0 - movs r0, 0x18 - bl display_pokemon_menu_message - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0xFF - strh r1, [r0, 0x8] - ldr r1, =sub_81B3730 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B4134 - - thumb_func_start sub_81B4198 -sub_81B4198: @ 81B4198 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_0203CEC4 - ldr r1, [r0] - ldr r0, =sub_81B41C4 - str r0, [r1, 0x4] - adds r0, r4, 0 - bl sub_81B12C0 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B4198 - - thumb_func_start sub_81B41C4 -sub_81B41C4: @ 81B41C4 - push {lr} - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - bne _081B41E0 - ldr r2, =c2_8123744 - movs r0, 0x2 - movs r1, 0x5 - bl GoToBagMenu - b _081B41E8 - .pool -_081B41E0: - ldr r1, =c2_8123744 - movs r0, 0x2 - bl sub_81C4F98 -_081B41E8: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B41C4 - - thumb_func_start c2_8123744 -c2_8123744: @ 81B41F0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - ldr r6, =gUnknown_0203CE7C - ldrh r0, [r6] - cmp r0, 0 - bne _081B4224 - ldr r3, =gUnknown_0203CEC8 - ldrb r0, [r3, 0x8] - lsls r0, 28 - lsrs r0, 28 - ldrb r2, [r3, 0xB] - movs r1, 0x7F - str r1, [sp] - ldr r1, =sub_81B36FC - str r1, [sp, 0x4] - ldr r1, [r3] - b _081B425A - .pool -_081B4224: - ldr r4, =gUnknown_0203CEFC - ldr r5, =gUnknown_0203CEC8 - movs r0, 0x9 - ldrsb r0, [r5, r0] - movs r1, 0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - ldr r7, =gPlayerParty - adds r0, r7 - movs r1, 0xC - bl GetMonData - strh r0, [r4] - lsls r0, 16 - cmp r0, 0 - beq _081B4278 - ldrb r0, [r5, 0x8] - lsls r0, 28 - lsrs r0, 28 - ldrb r2, [r5, 0xB] - movs r1, 0x7F - str r1, [sp] - ldr r1, =sub_81B4350 - str r1, [sp, 0x4] - ldr r1, [r5] -_081B425A: - str r1, [sp, 0x8] - movs r1, 0xFF - movs r3, 0x1 - bl sub_81B0038 - b _081B42C0 - .pool -_081B4278: - ldrh r0, [r6] - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - beq _081B42A4 - ldrh r0, [r6] - movs r1, 0x1 - bl remove_item - movs r0, 0x9 - ldrsb r0, [r5, r0] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r7 - ldrh r1, [r6] - bl sub_81B1DB8 - bl sub_81B452C - b _081B42C0 -_081B42A4: - ldrb r0, [r5, 0x8] - lsls r0, 28 - lsrs r0, 28 - ldrb r2, [r5, 0xB] - movs r1, 0x7F - str r1, [sp] - ldr r1, =sub_81B42D0 - str r1, [sp, 0x4] - ldr r1, [r5] - str r1, [sp, 0x8] - movs r1, 0xFF - movs r3, 0x1 - bl sub_81B0038 -_081B42C0: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end c2_8123744 - - thumb_func_start sub_81B42D0 -sub_81B42D0: @ 81B42D0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081B432C - ldr r0, =gUnknown_0203CE7C - ldrh r4, [r0] - ldr r0, =gUnknown_0203CEC8 - mov r8, r0 - ldrb r0, [r0, 0x9] - lsls r0, 24 - asrs r0, 24 - movs r6, 0x64 - muls r0, r6 - ldr r5, =gPlayerParty - adds r0, r5 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl sub_81B1C84 - mov r1, r8 - movs r0, 0x9 - ldrsb r0, [r1, r0] - muls r0, r6 - adds r0, r5 - adds r1, r4, 0 - bl sub_81B1DB8 - adds r0, r4, 0 - movs r1, 0x1 - bl remove_item - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B469C - str r1, [r0] -_081B432C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B42D0 - - thumb_func_start sub_81B4350 -sub_81B4350: @ 81B4350 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081B4388 - ldr r0, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_0203CEFC - ldrh r1, [r1] - movs r2, 0x1 - bl sub_81B1D1C - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B43A8 - str r1, [r0] -_081B4388: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B4350 - - thumb_func_start sub_81B43A8 -sub_81B43A8: @ 81B43A8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81B1BD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B43CC - bl sub_81B334C - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B43DC - str r0, [r1] -_081B43CC: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B43A8 - - thumb_func_start sub_81B43DC -sub_81B43DC: @ 81B43DC - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8198C58 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _081B4402 - cmp r1, 0 - bgt _081B43FC - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _081B44D8 - b _081B44EC -_081B43FC: - cmp r1, 0x1 - beq _081B44DE - b _081B44EC -_081B4402: - ldr r5, =gUnknown_0203CE7C - ldrh r0, [r5] - movs r1, 0x1 - bl remove_item - ldr r6, =gUnknown_0203CEFC - ldrh r0, [r6] - movs r1, 0x1 - bl bag_add_item - lsls r0, 24 - cmp r0, 0 - bne _081B4458 - ldrh r0, [r5] - movs r1, 0x1 - bl bag_add_item - ldrh r0, [r6] - bl pokemon_item_not_removed - ldr r0, =gStringVar4 - movs r1, 0 - bl sub_81B1B5C - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B1C1C - str r1, [r0] - b _081B44EC - .pool -_081B4458: - ldrh r0, [r5] - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - beq _081B4498 - ldr r0, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - ldrh r1, [r5] - bl sub_81B1DB8 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B44FC - str r1, [r0] - b _081B44EC - .pool -_081B4498: - ldr r0, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - ldrh r1, [r5] - bl sub_81B1DB8 - ldrh r0, [r5] - ldrh r1, [r6] - movs r2, 0x1 - bl sub_81B1D68 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B469C - str r1, [r0] - b _081B44EC - .pool -_081B44D8: - movs r0, 0x5 - bl audio_play -_081B44DE: - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B1C1C - str r0, [r1] -_081B44EC: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B43DC - - thumb_func_start sub_81B44FC -sub_81B44FC: @ 81B44FC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81B1BD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B451C - ldr r0, =gUnknown_0203CEC4 - ldr r1, [r0] - ldr r0, =sub_81B452C - str r0, [r1, 0x4] - adds r0, r4, 0 - bl sub_81B12C0 -_081B451C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B44FC - - thumb_func_start sub_81B452C -sub_81B452C: @ 81B452C - push {lr} - ldr r0, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x40 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSaveBlock1Ptr - lsls r2, r0, 3 - adds r2, r0 - lsls r2, 2 - ldr r0, =0x00002be0 - adds r2, r0 - ldr r1, [r1] - adds r1, r2 - ldr r2, =sub_81B4578 - movs r0, 0x4 - movs r3, 0x3 - bl sub_811A20C - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B452C - - thumb_func_start sub_81B4578 -sub_81B4578: @ 81B4578 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - ldr r6, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r6, r1] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r0, =gUnknown_020375F0 - ldrh r7, [r0] - cmp r7, 0 - bne _081B45F8 - adds r0, r5, 0 - bl sub_80D4680 - ldr r4, =gUnknown_0203CEFC - adds r0, r5, 0 - movs r1, 0xC - adds r2, r4, 0 - bl pokemon_setattr - ldrh r0, [r4] - movs r1, 0x1 - bl remove_item - mov r0, r8 - movs r1, 0x1 - bl bag_add_item - ldrb r0, [r6, 0x8] - lsls r0, 28 - lsrs r0, 28 - ldrb r2, [r6, 0xB] - str r7, [sp] - ldr r1, =sub_81B36FC - str r1, [sp, 0x4] - ldr r1, [r6] - str r1, [sp, 0x8] - movs r1, 0xFF - movs r3, 0x1 - bl sub_81B0038 - b _081B4614 - .pool -_081B45F8: - ldrb r0, [r6, 0x8] - lsls r0, 28 - lsrs r0, 28 - ldrb r2, [r6, 0xB] - movs r1, 0x7F - str r1, [sp] - ldr r1, =sub_81B4624 - str r1, [sp, 0x4] - ldr r1, [r6] - str r1, [sp, 0x8] - movs r1, 0xFF - movs r3, 0x1 - bl sub_81B0038 -_081B4614: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B4578 - - thumb_func_start sub_81B4624 -sub_81B4624: @ 81B4624 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081B468A - ldr r1, =gUnknown_0203CEFC - ldrh r0, [r1] - cmp r0, 0 - bne _081B4670 - ldr r0, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_0203CE7C - ldrh r1, [r1] - movs r2, 0 - movs r3, 0 - bl sub_81B1C84 - b _081B467C - .pool -_081B4670: - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - ldrh r1, [r1] - movs r2, 0 - bl sub_81B1D68 -_081B467C: - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B469C - str r0, [r1] -_081B468A: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B4624 - - thumb_func_start sub_81B469C -sub_81B469C: @ 81B469C - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r4, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r4, r1] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r6, r1, r0 - bl sub_81B1BD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B471C - ldr r5, =gUnknown_0203CEDC - movs r0, 0x9 - ldrsb r0, [r4, r0] - lsls r0, 4 - ldr r1, [r5] - adds r1, r0 - adds r0, r6, 0 - bl sub_81B5C94 - ldrb r1, [r4, 0x8] - movs r0, 0xF - ands r0, r1 - cmp r0, 0xC - bne _081B4716 - adds r0, r6, 0 - movs r1, 0xC - bl GetMonData - cmp r0, 0 - beq _081B4704 - movs r0, 0x9 - ldrsb r0, [r4, r0] - lsls r0, 4 - ldr r1, [r5] - adds r1, r0 - movs r0, 0xB - movs r2, 0x1 - bl sub_81B2FA8 - b _081B4716 - .pool -_081B4704: - movs r0, 0x9 - ldrsb r0, [r4, r0] - lsls r0, 4 - ldr r1, [r5] - adds r1, r0 - movs r0, 0xC - movs r2, 0x1 - bl sub_81B2FA8 -_081B4716: - adds r0, r7, 0 - bl sub_81B1C1C -_081B471C: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81B469C - - thumb_func_start sub_81B4724 -sub_81B4724: @ 81B4724 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r6, r0, 16 - movs r0, 0x5 - bl audio_play - ldr r4, =gUnknown_0203CEC4 - ldr r0, [r4] - adds r0, 0xC - bl sub_81B302C - ldr r0, [r4] - adds r0, 0xD - bl sub_81B302C - adds r0, r5, 0 - bl sub_81B1E00 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _081B4788 - cmp r0, 0x1 - beq _081B47AC - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x1 - bl sub_81B1CD0 - b _081B47BA - .pool -_081B4788: - ldr r1, =gStringVar1 - adds r0, r5, 0 - bl GetMonNickname - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9980 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - b _081B47B4 - .pool -_081B47AC: - adds r0, r6, 0 - bl pokemon_item_not_removed - ldr r0, =gStringVar4 -_081B47B4: - movs r1, 0x1 - bl sub_81B1B5C -_081B47BA: - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B469C - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B4724 - - thumb_func_start sub_81B47E0 -sub_81B47E0: @ 81B47E0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r7, r1, r0 - adds r0, r7, 0 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - movs r0, 0x5 - bl audio_play - ldr r4, =gUnknown_0203CEC4 - ldr r0, [r4] - adds r0, 0xC - bl sub_81B302C - ldr r0, [r4] - adds r0, 0xD - bl sub_81B302C - cmp r5, 0 - bne _081B4864 - ldr r1, =gStringVar1 - adds r0, r7, 0 - bl GetMonNickname - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9980 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81B1B5C - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B469C - b _081B488A - .pool -_081B4864: - ldr r1, =gStringVar1 - adds r0, r5, 0 - bl itemid_get_name - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9E00 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81B1B5C - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B48A8 -_081B488A: - str r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B47E0 - - thumb_func_start sub_81B48A8 -sub_81B48A8: @ 81B48A8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81B1BD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B48CC - bl sub_81B334C - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B48DC - str r0, [r1] -_081B48CC: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B48A8 - - thumb_func_start sub_81B48DC -sub_81B48DC: @ 81B48DC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - bl sub_8198C58 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _081B491A - cmp r1, 0 - bgt _081B4914 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _081B4964 - b _081B4978 - .pool -_081B4914: - cmp r1, 0x1 - beq _081B496A - b _081B4978 -_081B491A: - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - ldr r1, =gStringVar1 - bl itemid_get_name - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9E14 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0 - bl sub_81B1B5C - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B4988 - str r1, [r0] - b _081B4978 - .pool -_081B4964: - movs r0, 0x5 - bl audio_play -_081B496A: - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B1C1C - str r0, [r1] -_081B4978: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B48DC - - thumb_func_start sub_81B4988 -sub_81B4988: @ 81B4988 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r6, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r6, r1] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r5, r1, r0 - bl sub_81B1BD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B49EC - movs r1, 0 - mov r0, sp - strh r1, [r0] - adds r0, r5, 0 - movs r1, 0xC - mov r2, sp - bl pokemon_setattr - ldr r4, =gUnknown_0203CEDC - movs r0, 0x9 - ldrsb r0, [r6, r0] - lsls r0, 4 - ldr r1, [r4] - adds r1, r0 - adds r0, r5, 0 - bl sub_81B5C94 - movs r0, 0x9 - ldrsb r0, [r6, r0] - lsls r0, 4 - ldr r1, [r4] - adds r1, r0 - movs r0, 0xC - movs r2, 0x1 - bl sub_81B2FA8 - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B1C1C - str r1, [r0] -_081B49EC: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B4988 - - thumb_func_start sub_81B4A08 -sub_81B4A08: @ 81B4A08 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x5 - bl audio_play - ldr r4, =gUnknown_0203CEC4 - ldr r0, [r4] - adds r0, 0xC - bl sub_81B302C - ldr r0, [r4] - adds r0, 0xD - bl sub_81B302C - ldr r0, =gPlayerParty - ldr r1, =gUnknown_0203CEC8 - ldrb r1, [r1, 0x9] - movs r2, 0x9 - bl sub_81B33B4 - movs r0, 0x2 - bl sub_81B31B0 - movs r0, 0x19 - bl display_pokemon_menu_message - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0xFF - strh r1, [r0, 0x8] - ldr r1, =sub_81B3730 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B4A08 - - thumb_func_start sub_81B4A6C -sub_81B4A6C: @ 81B4A6C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_0203CEC4 - ldr r1, [r0] - ldr r0, =sub_81B4A98 - str r0, [r1, 0x4] - adds r0, r4, 0 - bl sub_81B12C0 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B4A6C - - thumb_func_start sub_81B4A98 -sub_81B4A98: @ 81B4A98 - push {lr} - ldr r0, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x40 - bl GetMonData - ldr r2, =gSaveBlock1Ptr - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, =0x00002be0 - adds r1, r0 - ldr r0, [r2] - adds r0, r1 - ldr r1, =sub_81B4AE0 - movs r2, 0x1 - bl sub_8121478 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B4A98 - - thumb_func_start sub_81B4AE0 -sub_81B4AE0: @ 81B4AE0 - push {lr} - sub sp, 0xC - ldr r2, =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - ldr r3, =gUnknown_0203CEC8 - ldrb r0, [r3, 0x8] - lsls r0, 28 - lsrs r0, 28 - ldrb r2, [r3, 0xB] - movs r1, 0x15 - str r1, [sp] - ldr r1, =sub_81B36FC - str r1, [sp, 0x4] - ldr r1, [r3] - str r1, [sp, 0x8] - movs r1, 0xFF - movs r3, 0x1 - bl sub_81B0038 - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B4AE0 - - thumb_func_start brm_take_2 -brm_take_2: @ 81B4B20 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl audio_play - ldr r5, =gUnknown_0203CEC4 - ldr r0, [r5] - adds r0, 0xD - bl sub_81B302C - ldr r0, [r5] - adds r0, 0xC - bl sub_81B302C - ldr r0, =gUnknown_085E9855 - movs r1, 0x1 - bl sub_81B1B5C - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B4B6C - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end brm_take_2 - - thumb_func_start sub_81B4B6C -sub_81B4B6C: @ 81B4B6C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81B1BD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B4B90 - bl sub_81B334C - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B4BA0 - str r0, [r1] -_081B4B90: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B4B6C - - thumb_func_start sub_81B4BA0 -sub_81B4BA0: @ 81B4BA0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8198C58 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _081B4BC6 - cmp r1, 0 - bgt _081B4BC0 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _081B4C30 - b _081B4C4C -_081B4BC0: - cmp r1, 0x1 - beq _081B4C36 - b _081B4C4C -_081B4BC6: - ldr r0, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - bl sub_80D4700 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _081B4C0C - ldr r0, =gUnknown_085E9877 - movs r1, 0 - bl sub_81B1B5C - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B469C - b _081B4C4A - .pool -_081B4C0C: - ldr r0, =gUnknown_085E9897 - movs r1, 0 - bl sub_81B1B5C - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B1C1C - b _081B4C4A - .pool -_081B4C30: - movs r0, 0x5 - bl audio_play -_081B4C36: - ldr r0, =gUnknown_085E98B4 - movs r1, 0x1 - bl sub_81B1B5C - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B4C60 -_081B4C4A: - str r1, [r0] -_081B4C4C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B4BA0 - - thumb_func_start sub_81B4C60 -sub_81B4C60: @ 81B4C60 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81B1BD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B4C84 - bl sub_81B334C - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B4C94 - str r0, [r1] -_081B4C84: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B4C60 - - thumb_func_start sub_81B4C94 -sub_81B4C94: @ 81B4C94 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_8198C58 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _081B4CBE - cmp r1, 0 - bgt _081B4CB8 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _081B4D50 - b _081B4D64 -_081B4CB8: - cmp r1, 0x1 - beq _081B4D56 - b _081B4D64 -_081B4CBE: - ldr r0, =gUnknown_0203CEC8 - mov r8, r0 - ldrb r0, [r0, 0x9] - lsls r0, 24 - asrs r0, 24 - movs r7, 0x64 - muls r0, r7 - ldr r6, =gPlayerParty - adds r0, r6 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - movs r1, 0x1 - bl bag_add_item - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081B4D24 - mov r1, r8 - movs r0, 0x9 - ldrsb r0, [r1, r0] - muls r0, r7 - adds r0, r6 - bl sub_80D4680 - ldr r0, =gUnknown_085E99B8 - movs r1, 0 - bl sub_81B1B5C - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B469C - str r1, [r0] - b _081B4D64 - .pool -_081B4D24: - adds r0, r4, 0 - bl pokemon_item_not_removed - ldr r0, =gStringVar4 - movs r1, 0 - bl sub_81B1B5C - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B1C1C - str r1, [r0] - b _081B4D64 - .pool -_081B4D50: - movs r0, 0x5 - bl audio_play -_081B4D56: - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B1C1C - str r0, [r1] -_081B4D64: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B4C94 - - thumb_func_start sub_81B4D78 -sub_81B4D78: @ 81B4D78 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r5, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r5, r1] - movs r0, 0x64 - muls r0, r1 - ldr r6, =gPlayerParty - adds r7, r0, r6 - movs r0, 0x5 - bl audio_play - ldr r4, =gUnknown_0203CEC4 - ldr r0, [r4] - adds r0, 0xC - bl sub_81B302C - ldr r0, [r4] - adds r0, 0xD - bl sub_81B302C - ldrb r4, [r5, 0x9] - adds r0, r7, 0 - bl sub_81B353C - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_81B33B4 - ldrb r1, [r5, 0x8] - movs r0, 0xF - ands r0, r1 - cmp r0, 0xC - beq _081B4DE4 - movs r0, 0 - bl sub_81B31B0 - movs r0, 0x15 - bl display_pokemon_menu_message - b _081B4E02 - .pool -_081B4DE4: - movs r0, 0x1 - bl sub_81B31B0 - adds r0, r7, 0 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - ldr r1, =gStringVar2 - bl itemid_get_name - movs r0, 0x1A - bl display_pokemon_menu_message -_081B4E02: - ldr r1, =gTasks - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0xFF - strh r1, [r0, 0x8] - ldr r1, =sub_81B3730 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B4D78 - - thumb_func_start brm_shift_sendout -brm_shift_sendout: @ 81B4E2C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x5 - bl audio_play - ldr r5, =gUnknown_0203CEC4 - ldr r0, [r5] - adds r0, 0xC - bl sub_81B302C - bl sub_81B8A7C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081B4E5C - adds r0, r4, 0 - bl sub_81B12C0 - b _081B4E7A - .pool -_081B4E5C: - ldr r0, [r5] - adds r0, 0xD - bl sub_81B302C - ldr r0, =gStringVar4 - movs r1, 0x1 - bl sub_81B1B5C - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B1C1C - str r1, [r0] -_081B4E7A: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end brm_shift_sendout - - thumb_func_start sub_81B4E8C -sub_81B4E8C: @ 81B4E8C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r4, =gUnknown_0203CEC4 - ldr r0, [r4] - adds r0, 0xC - bl sub_81B302C - ldr r0, [r4] - adds r0, 0xD - bl sub_81B302C - bl sub_81B8830 - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - cmp r5, r6 - bcs _081B4F36 - ldr r2, =gUnknown_0203CEC8 - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - mov r8, r0 -_081B4EC6: - ldr r0, =gUnknown_0203CEF8 - adds r4, r5, r0 - ldrb r0, [r4] - cmp r0, 0 - bne _081B4F2C - movs r0, 0x5 - str r2, [sp] - bl audio_play - ldr r2, [sp] - ldrb r0, [r2, 0x9] - adds r0, 0x1 - strb r0, [r4] - adds r0, r5, 0x2 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0203CEDC - ldrb r2, [r2, 0x9] - lsls r2, 24 - asrs r2, 24 - lsls r2, 4 - ldr r1, [r1] - adds r1, r2 - movs r2, 0x1 - bl sub_81B2FA8 - subs r0, r6, 0x1 - cmp r5, r0 - bne _081B4F04 - bl sub_81B4F88 -_081B4F04: - movs r0, 0 - bl display_pokemon_menu_message - ldr r0, =sub_81B1370 - mov r1, r8 - str r0, [r1] - b _081B4F68 - .pool -_081B4F2C: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r6 - bcc _081B4EC6 -_081B4F36: - ldr r0, =gStringVar1 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9830 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x20 - bl audio_play - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81B1B5C - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B1C1C - str r1, [r0] -_081B4F68: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B4E8C - - thumb_func_start sub_81B4F88 -sub_81B4F88: @ 81B4F88 - push {r4,lr} - ldr r4, =gUnknown_0203CEC8 - ldrb r0, [r4, 0x9] - movs r1, 0 - bl sub_81B0FCC - movs r0, 0x6 - strb r0, [r4, 0x9] - movs r1, 0x1 - bl sub_81B0FCC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B4F88 - - thumb_func_start sub_81B4FA8 -sub_81B4FA8: @ 81B4FA8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r0, 0x5 - bl audio_play - ldr r4, =gUnknown_0203CEC4 - ldr r0, [r4] - adds r0, 0xC - bl sub_81B302C - ldr r0, [r4] - adds r0, 0xD - bl sub_81B302C - bl sub_81B8830 - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - cmp r4, r5 - bcs _081B502A - ldr r6, =gUnknown_0203CEF8 - subs r2, r5, 0x1 - adds r7, r6, 0 - ldr r3, =gUnknown_0203CEC8 -_081B4FE2: - adds r0, r4, r6 - ldrb r1, [r0] - movs r0, 0x9 - ldrsb r0, [r3, r0] - adds r0, 0x1 - cmp r1, r0 - bne _081B5020 - adds r0, r4, 0 - adds r4, r2, 0 - cmp r0, r4 - bge _081B500C - adds r3, r7, 0 -_081B4FFA: - adds r2, r0, r3 - adds r1, r0, 0x1 - adds r0, r1, r3 - ldrb r0, [r0] - strb r0, [r2] - lsls r1, 24 - lsrs r0, r1, 24 - cmp r0, r4 - blt _081B4FFA -_081B500C: - adds r1, r0, r6 - movs r0, 0 - strb r0, [r1] - b _081B502A - .pool -_081B5020: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _081B4FE2 -_081B502A: - ldr r6, =gUnknown_0203CEDC - ldr r0, =gUnknown_0203CEC8 - ldrb r0, [r0, 0x9] - lsls r0, 24 - asrs r0, 24 - lsls r0, 4 - ldr r1, [r6] - adds r1, r0 - movs r0, 0x1 - movs r2, 0x1 - bl sub_81B2FA8 - movs r4, 0 - subs r5, 0x1 - mov r0, r8 - lsls r7, r0, 2 - cmp r4, r5 - bge _081B5078 -_081B504E: - ldr r0, =gUnknown_0203CEF8 - adds r1, r4, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _081B506E - adds r0, r4, 0x2 - lsls r0, 24 - lsrs r0, 24 - ldrb r2, [r1] - lsls r2, 4 - subs r2, 0x10 - ldr r1, [r6] - adds r1, r2 - movs r2, 0x1 - bl sub_81B2FA8 -_081B506E: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - blt _081B504E -_081B5078: - movs r0, 0 - bl display_pokemon_menu_message - ldr r0, =gTasks - mov r2, r8 - adds r1, r7, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B1370 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B4FA8 - - thumb_func_start sub_81B50AC -sub_81B50AC: @ 81B50AC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl audio_play - adds r0, r4, 0 - bl sub_81B12C0 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81B50AC - - thumb_func_start sub_81B50C8 -sub_81B50C8: @ 81B50C8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, =gUnknown_0203CEC8 - mov r9, r0 - ldrb r0, [r0, 0x9] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - ldr r4, =gPlayerParty - adds r0, r4 - movs r1, 0x41 - bl GetMonData - adds r6, r0, 0 - lsls r6, 16 - lsrs r6, 16 - mov r1, r9 - movs r0, 0x9 - ldrsb r0, [r1, r0] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r4 - movs r1, 0xB - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - mov r1, r9 - movs r0, 0x9 - ldrsb r0, [r1, r0] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r4 - movs r1, 0x50 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_800F7DC - ldr r0, [r0] - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl sub_807A8D0 - cmp r0, 0x1 - beq _081B515C - cmp r0, 0x2 - beq _081B5170 - movs r0, 0x5 - bl audio_play - adds r0, r7, 0 - bl sub_81B12C0 - b _081B51B0 - .pool -_081B515C: - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EA210 - bl StringExpandPlaceholders - b _081B5178 - .pool -_081B5170: - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EA234 - bl StringExpandPlaceholders -_081B5178: - movs r0, 0x20 - bl audio_play - ldr r4, =gUnknown_0203CEC4 - ldr r0, [r4] - adds r0, 0xC - bl sub_81B302C - ldr r0, [r4] - adds r0, 0xD - bl sub_81B302C - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EA1CA - adds r0, r4, 0 - bl StringAppend - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81B1B5C - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B1C1C - str r1, [r0] -_081B51B0: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B50C8 - - thumb_func_start brm_trade_1 -brm_trade_1: @ 81B51D4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xC - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, =gUnknown_0203CEC8 - mov r8, r0 - ldrb r0, [r0, 0x9] - lsls r0, 24 - asrs r0, 24 - movs r6, 0x64 - muls r0, r6 - ldr r4, =gPlayerParty - adds r0, r4 - movs r1, 0x41 - bl GetMonData - mov r9, r0 - mov r1, r9 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - mov r1, r8 - movs r0, 0x9 - ldrsb r0, [r1, r0] - muls r0, r6 - adds r0, r4 - movs r1, 0xB - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - mov r1, r8 - movs r0, 0x9 - ldrsb r0, [r1, r0] - muls r0, r6 - adds r0, r4 - movs r1, 0x50 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_800F7DC - ldr r0, [r0] - ldr r1, =gUnknown_02022C38 - ldr r1, [r1] - ldr r2, =gUnknown_02022C3C - ldrh r3, [r2] - ldr r2, =gUnknown_02022C3E - ldrb r2, [r2] - str r2, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - mov r2, r9 - bl sub_807A7E0 - cmp r0, 0 - beq _081B52C8 - ldr r5, =gStringVar4 - ldr r1, =gUnknown_08615E0C - subs r0, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r5, 0 - bl StringExpandPlaceholders - movs r0, 0x20 - bl audio_play - ldr r4, =gUnknown_0203CEC4 - ldr r0, [r4] - adds r0, 0xC - bl sub_81B302C - ldr r0, [r4] - adds r0, 0xD - bl sub_81B302C - ldr r1, =gUnknown_085EA1CA - adds r0, r5, 0 - bl StringAppend - adds r0, r5, 0 - movs r1, 0x1 - bl sub_81B1B5C - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B1C1C - str r1, [r0] - b _081B52D4 - .pool -_081B52C8: - movs r0, 0x5 - bl audio_play - adds r0, r7, 0 - bl sub_81B12C0 -_081B52D4: - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end brm_trade_1 - - thumb_func_start sub_81B52E4 -sub_81B52E4: @ 81B52E4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, =gUnknown_0203CEC4 - ldr r0, [r4] - adds r0, 0xC - bl sub_81B302C - ldr r0, [r4] - adds r0, 0xD - bl sub_81B302C - ldr r0, =gPlayerParty - ldr r1, =gUnknown_0203CEC8 - ldrb r1, [r1, 0x9] - lsls r1, 24 - asrs r1, 24 - lsls r1, 16 - lsrs r1, 16 - bl sub_807A918 - cmp r0, 0x2 - beq _081B5340 - cmp r0, 0x2 - bgt _081B5328 - cmp r0, 0x1 - beq _081B532E - b _081B5368 - .pool -_081B5328: - cmp r0, 0x3 - beq _081B5354 - b _081B5368 -_081B532E: - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EA1E8 - bl StringExpandPlaceholders - b _081B53C0 - .pool -_081B5340: - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EA210 - bl StringExpandPlaceholders - b _081B53C0 - .pool -_081B5354: - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EA234 - bl StringExpandPlaceholders - b _081B53C0 - .pool -_081B5368: - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gStringVar1 - bl GetMonNickname - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EA1CD - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81B1B5C - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B53FC - b _081B53E4 - .pool -_081B53C0: - movs r0, 0x20 - bl audio_play - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EA1CA - adds r0, r4, 0 - bl StringAppend - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81B1B5C - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B1C1C -_081B53E4: - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B52E4 - - thumb_func_start sub_81B53FC -sub_81B53FC: @ 81B53FC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81B1BD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B5420 - bl sub_81B334C - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B5430 - str r0, [r1] -_081B5420: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B53FC - - thumb_func_start sub_81B5430 -sub_81B5430: @ 81B5430 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8198C58 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _081B5456 - cmp r1, 0 - bgt _081B5450 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _081B545E - b _081B546A -_081B5450: - cmp r1, 0x1 - beq _081B5464 - b _081B546A -_081B5456: - adds r0, r4, 0 - bl sub_81B12C0 - b _081B546A -_081B545E: - movs r0, 0x5 - bl audio_play -_081B5464: - adds r0, r4, 0 - bl sub_81B1C1C -_081B546A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81B5430 - - thumb_func_start sub_81B5470 -sub_81B5470: @ 81B5470 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - bl GetMenuCursorPos - ldr r5, =gUnknown_0203CEC4 - ldr r1, [r5] - lsls r0, 24 - lsrs r0, 24 - adds r1, 0xF - adds r1, r0 - ldrb r0, [r1] - subs r0, 0x13 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x5 - bl audio_play - ldr r1, =gUnknown_08615D9C - lsls r0, r4, 3 - adds r7, r0, r1 - ldr r0, [r7] - cmp r0, 0 - bne _081B54A2 - b _081B5664 -_081B54A2: - ldr r0, [r5] - adds r0, 0xC - bl sub_81B302C - ldr r0, [r5] - adds r0, 0xD - bl sub_81B302C - bl sub_81221AC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B54C6 - bl InUnionRoom - cmp r0, 0x1 - bne _081B54E8 -_081B54C6: - adds r0, r4, 0 - subs r0, 0xB - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _081B54E4 - movs r0, 0xD - bl display_pokemon_menu_message - b _081B5656 - .pool -_081B54E4: - ldrb r0, [r7, 0x4] - b _081B5652 -_081B54E8: - cmp r4, 0x7 - bhi _081B5524 - ldr r1, =0x00000867 - adds r0, r4, r1 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B5524 - ldr r0, =gUnknown_085E97FC - movs r1, 0x1 - bl sub_81B1B5C - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B1C1C - str r1, [r0] - b _081B5664 - .pool -_081B5524: - ldr r1, =gUnknown_08615D9C - lsls r0, r4, 3 - adds r5, r0, r1 - ldr r0, [r5] - bl _call_via_r0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B553A - b _081B563C -_081B553A: - subs r0, r4, 0x5 - cmp r0, 0x7 - bhi _081B5624 - lsls r0, 2 - ldr r1, =_081B5554 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081B5554: - .4byte _081B5614 - .4byte _081B5624 - .4byte _081B5624 - .4byte _081B557C - .4byte _081B55B8 - .4byte _081B5624 - .4byte _081B5574 - .4byte _081B5574 -_081B5574: - adds r0, r6, 0 - bl sub_8161560 - b _081B5664 -_081B557C: - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - movs r0, 0x1C - ldrsb r0, [r1, r0] - lsls r0, 16 - lsrs r0, 16 - ldrb r1, [r1, 0x1D] - lsls r1, 24 - asrs r1, 24 - lsls r1, 16 - lsrs r1, 16 - bl get_mapheader_by_bank_and_number - adds r1, r0, 0 - ldr r0, =gStringVar1 - ldrb r1, [r1, 0x14] - bl sub_81245DC - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EA196 - b _081B55E8 - .pool -_081B55B8: - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r0, 16 - adds r1, 0x25 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - lsls r1, 16 - lsrs r1, 16 - bl get_mapheader_by_bank_and_number - adds r1, r0, 0 - ldr r0, =gStringVar1 - ldrb r1, [r1, 0x14] - bl sub_81245DC - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EA16B -_081B55E8: - bl StringExpandPlaceholders - adds r0, r6, 0 - bl sub_81B5674 - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - movs r1, 0x86 - lsls r1, 2 - adds r0, r1 - strh r4, [r0] - b _081B5664 - .pool -_081B5614: - ldr r1, =gUnknown_0203CEC8 - ldr r0, =sub_8124690 - b _081B5628 - .pool -_081B5624: - ldr r1, =gUnknown_0203CEC8 - ldr r0, =c2_exit_to_overworld_2_switch -_081B5628: - str r0, [r1] - adds r0, r6, 0 - bl sub_81B12C0 - b _081B5664 - .pool -_081B563C: - cmp r4, 0x1 - beq _081B564A - cmp r4, 0x4 - bne _081B5650 - bl sub_81B5864 - b _081B5656 -_081B564A: - bl sub_81B57DC - b _081B5656 -_081B5650: - ldrb r0, [r5, 0x4] -_081B5652: - bl display_pokemon_menu_message -_081B5656: - ldr r0, =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, =task_brm_cancel_1_on_keypad_a_or_b - str r0, [r1] -_081B5664: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B5470 - - thumb_func_start sub_81B5674 -sub_81B5674: @ 81B5674 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gStringVar4 - movs r1, 0x1 - bl sub_81B1B5C - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B56A4 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B5674 - - thumb_func_start sub_81B56A4 -sub_81B56A4: @ 81B56A4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81B1BD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B56C8 - bl sub_81B334C - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B56D8 - str r0, [r1] -_081B56C8: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B56A4 - - thumb_func_start sub_81B56D8 -sub_81B56D8: @ 81B56D8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8198C58 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _081B56FE - cmp r1, 0 - bgt _081B56F8 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _081B5714 - b _081B572A -_081B56F8: - cmp r1, 0x1 - beq _081B571A - b _081B572A -_081B56FE: - ldr r1, =gUnknown_0203CEC8 - ldr r0, =c2_exit_to_overworld_2_switch - str r0, [r1] - adds r0, r4, 0 - bl sub_81B12C0 - b _081B572A - .pool -_081B5714: - movs r0, 0x5 - bl audio_play -_081B571A: - ldr r0, =gUnknown_03005DB0 - movs r1, 0 - str r1, [r0] - ldr r0, =gUnknown_0203CEEC - str r1, [r0] - adds r0, r4, 0 - bl sub_81B1C1C -_081B572A: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B56D8 - - thumb_func_start hm_add_c3_launch_phase_2 -hm_add_c3_launch_phase_2: @ 81B5738 - push {lr} - bl pal_fill_black - ldr r0, =task_launch_hm_phase_2 - movs r1, 0x8 - bl CreateTask - movs r0, 0x1 - pop {r1} - bx r1 - .pool - thumb_func_end hm_add_c3_launch_phase_2 - - thumb_func_start task_launch_hm_phase_2 -task_launch_hm_phase_2: @ 81B5750 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_80ABDFC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081B577C - bl brm_get_selected_species - ldr r1, =gUnknown_02038C08 - lsls r0, 16 - lsrs r0, 16 - str r0, [r1] - ldr r0, =gUnknown_0203CEEC - ldr r0, [r0] - bl _call_via_r0 - adds r0, r4, 0 - bl DestroyTask -_081B577C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end task_launch_hm_phase_2 - - thumb_func_start brm_get_selected_species -brm_get_selected_species: @ 81B578C - push {lr} - ldr r0, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .pool - thumb_func_end brm_get_selected_species - - thumb_func_start task_brm_cancel_1_on_keypad_a_or_b -task_brm_cancel_1_on_keypad_a_or_b: @ 81B57B4 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081B57CE - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081B57D4 -_081B57CE: - adds r0, r2, 0 - bl brm_cancel_1 -_081B57D4: - pop {r0} - bx r0 - .pool - thumb_func_end task_brm_cancel_1_on_keypad_a_or_b - - thumb_func_start sub_81B57DC -sub_81B57DC: @ 81B57DC - push {lr} - ldr r0, =0x00000888 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081B57F8 - movs r0, 0xC - bl display_pokemon_menu_message - b _081B57FE - .pool -_081B57F8: - movs r0, 0xD - bl display_pokemon_menu_message -_081B57FE: - pop {r0} - bx r0 - thumb_func_end sub_81B57DC - - thumb_func_start hm_surf_run_dp02scr -hm_surf_run_dp02scr: @ 81B5804 - push {lr} - bl brm_get_pokemon_selection - ldr r1, =gUnknown_02038C08 - lsls r0, 24 - lsrs r0, 24 - str r0, [r1] - movs r0, 0x9 - bl FieldEffectStart - pop {r0} - bx r0 - .pool - thumb_func_end hm_surf_run_dp02scr - - thumb_func_start sub_81B5820 -sub_81B5820: @ 81B5820 - push {lr} - bl PartyHasMonWithSurf - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081B585C - bl IsPlayerFacingSurfableFishableWater - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081B585C - ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 - str r0, [r1] - ldr r1, =gUnknown_0203CEEC - ldr r0, =hm_surf_run_dp02scr - str r0, [r1] - movs r0, 0x1 - b _081B585E - .pool -_081B585C: - movs r0, 0 -_081B585E: - pop {r1} - bx r1 - thumb_func_end sub_81B5820 - - thumb_func_start sub_81B5864 -sub_81B5864: @ 81B5864 - push {lr} - movs r0, 0x8 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - beq _081B587A - movs r0, 0x9 - bl display_pokemon_menu_message - b _081B5880 -_081B587A: - movs r0, 0x8 - bl display_pokemon_menu_message -_081B5880: - pop {r0} - bx r0 - thumb_func_end sub_81B5864 - - thumb_func_start sub_81B5884 -sub_81B5884: @ 81B5884 - push {lr} - ldr r0, =gUnknown_02037318 - ldrb r0, [r0, 0x17] - bl is_light_level_1_2_3_or_6 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B58A0 - movs r0, 0 - b _081B58A2 - .pool -_081B58A0: - movs r0, 0x1 -_081B58A2: - pop {r1} - bx r1 - thumb_func_end sub_81B5884 - - thumb_func_start sub_81B58A8 -sub_81B58A8: @ 81B58A8 - push {lr} - sub sp, 0xC - movs r0, 0 - str r0, [sp] - ldr r0, =sub_81B1370 - str r0, [sp, 0x4] - ldr r0, =sub_8086194 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_81B0038 - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B58A8 - - thumb_func_start hm2_waterfall -hm2_waterfall: @ 81B58D4 - push {lr} - bl brm_get_pokemon_selection - ldr r1, =gUnknown_02038C08 - lsls r0, 24 - lsrs r0, 24 - str r0, [r1] - movs r0, 0x2B - bl FieldEffectStart - pop {r0} - bx r0 - .pool - thumb_func_end hm2_waterfall - - thumb_func_start hm_prepare_waterfall -hm_prepare_waterfall: @ 81B58F0 - push {r4,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl MetatileBehavior_IsWaterfall - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081B594C - bl IsPlayerSurfingNorth - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081B594C - ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 - str r0, [r1] - ldr r1, =gUnknown_0203CEEC - ldr r0, =hm2_waterfall - str r0, [r1] - movs r0, 0x1 - b _081B594E - .pool -_081B594C: - movs r0, 0 -_081B594E: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end hm_prepare_waterfall - - thumb_func_start sub_81B5958 -sub_81B5958: @ 81B5958 - push {lr} - bl brm_get_pokemon_selection - ldr r1, =gUnknown_02038C08 - lsls r0, 24 - lsrs r0, 24 - str r0, [r1] - movs r0, 0x2C - bl FieldEffectStart - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B5958 - - thumb_func_start sub_81B5974 -sub_81B5974: @ 81B5974 - push {lr} - bl sub_809D1E8 - ldr r1, =gUnknown_02038C08 - lsls r0, 24 - lsrs r0, 24 - str r0, [r1, 0x4] - cmp r0, 0 - bne _081B5990 - movs r0, 0 - b _081B599E - .pool -_081B5990: - ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 - str r0, [r1] - ldr r1, =gUnknown_0203CEEC - ldr r0, =sub_81B5958 - str r0, [r1] - movs r0, 0x1 -_081B599E: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81B5974 - - thumb_func_start party_menu_icon_anim -@ void party_menu_icon_anim(struct pokemon *mon, int a2, int a3) -party_menu_icon_anim: @ 81B59B4 - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r7, r1, 0 - adds r4, r2, 0 - movs r6, 0x1 - bl sub_81B1250 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081B59EA - ldr r0, =gMain - ldr r1, =0x00000439 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081B59EA - ldr r0, =gUnknown_08616020 - adds r0, r4, r0 - ldrb r1, [r0] - eors r1, r6 - negs r0, r1 - orrs r0, r1 - lsrs r6, r0, 31 -_081B59EA: - adds r0, r5, 0 - movs r1, 0x41 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0 - bl GetMonData - adds r1, r0, 0 - str r6, [sp] - adds r0, r4, 0 - adds r2, r7, 0 - movs r3, 0x1 - bl party_menu_link_mon_icon_anim - ldrb r0, [r7, 0x9] - adds r1, r5, 0 - bl sub_81B5B38 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end party_menu_icon_anim - - thumb_func_start party_menu_link_mon_icon_anim -@ void party_menu_link_mon_icon_anim(u16 speciesId, u32 personality, int a3, char a4, int a5) -party_menu_link_mon_icon_anim: @ 81B5A2C - push {r4-r7,lr} - sub sp, 0xC - adds r6, r1, 0 - adds r4, r2, 0 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r3, 24 - lsrs r7, r3, 24 - cmp r5, 0 - beq _081B5A7A - ldr r1, =sub_80D3014 - ldr r0, [r4, 0x4] - ldrb r2, [r0] - ldrb r3, [r0, 0x1] - movs r0, 0x4 - str r0, [sp] - str r6, [sp, 0x4] - ldr r0, [sp, 0x20] - str r0, [sp, 0x8] - adds r0, r5, 0 - bl sub_80D2CC4 - strb r0, [r4, 0x9] - ldr r2, =gUnknown_02020630 - ldrb r0, [r4, 0x9] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x3 - adds r2, r7, 0 - ands r2, r0 - lsls r2, 2 - ldrb r3, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] -_081B5A7A: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end party_menu_link_mon_icon_anim - - thumb_func_start sub_81B5A8C -sub_81B5A8C: @ 81B5A8C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - adds r0, r1, 0 - adds r1, r2, 0 - bl sub_8075060 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - beq _081B5AEC - cmp r0, 0x2 - bgt _081B5AB4 - cmp r0, 0x1 - beq _081B5B04 - b _081B5B1C -_081B5AB4: - cmp r0, 0x3 - beq _081B5AD4 - cmp r0, 0x4 - bne _081B5B1C - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - movs r1, 0 - bl sub_80D32C8 - b _081B5B2C - .pool -_081B5AD4: - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - movs r1, 0x1 - bl sub_80D32C8 - b _081B5B2C - .pool -_081B5AEC: - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - movs r1, 0x2 - bl sub_80D32C8 - b _081B5B2C - .pool -_081B5B04: - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - movs r1, 0x3 - bl sub_80D32C8 - b _081B5B2C - .pool -_081B5B1C: - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - movs r1, 0x4 - bl sub_80D32C8 -_081B5B2C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B5A8C - - thumb_func_start sub_81B5B38 -sub_81B5B38: @ 81B5B38 - push {r4-r6,lr} - adds r5, r0, 0 - adds r6, r1, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r6, 0 - movs r1, 0x39 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r6, 0 - movs r1, 0x3A - bl GetMonData - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_81B5A8C - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81B5B38 - - thumb_func_start sub_81B5B6C -sub_81B5B6C: @ 81B5B6C - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - ldr r5, =gUnknown_02020630 - lsls r0, r4, 4 - adds r0, r4 - lsls r6, r0, 2 - adds r2, r6, r5 - movs r7, 0 - movs r3, 0 - strh r3, [r2, 0x2E] - mov r12, r5 - cmp r1, 0 - bne _081B5BC4 - movs r1, 0x20 - ldrsh r0, [r2, r1] - cmp r0, 0x10 - bne _081B5BA4 - strh r3, [r2, 0x24] - ldr r0, =0x0000fffc - strh r0, [r2, 0x26] - b _081B5BAA - .pool -_081B5BA4: - ldr r0, =0x0000fffc - strh r0, [r2, 0x24] - strh r3, [r2, 0x26] -_081B5BAA: - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - mov r1, r12 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_81B5C08 - b _081B5BD0 - .pool -_081B5BC4: - strh r3, [r2, 0x24] - strh r3, [r2, 0x26] - adds r0, r5, 0 - adds r0, 0x1C - adds r0, r6, r0 - ldr r1, =sub_81B5BDC -_081B5BD0: - str r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B5B6C - - thumb_func_start sub_81B5BDC -sub_81B5BDC: @ 81B5BDC - push {r4,lr} - adds r4, r0, 0 - bl sub_80D30DC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _081B5C02 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081B5C00 - ldr r0, =0x0000fffd - strh r0, [r4, 0x26] - b _081B5C02 - .pool -_081B5C00: - strh r1, [r4, 0x26] -_081B5C02: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81B5BDC - - thumb_func_start sub_81B5C08 -sub_81B5C08: @ 81B5C08 - push {lr} - bl sub_80D30DC - pop {r0} - bx r0 - thumb_func_end sub_81B5C08 - - thumb_func_start party_menu_held_item_object -party_menu_held_item_object: @ 81B5C14 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _081B5C3C - ldr r0, =gUnknown_08615EC0 - ldr r2, [r4, 0x4] - ldrb r1, [r2, 0x2] - ldrb r2, [r2, 0x3] - movs r3, 0 - bl AddObjectToFront - strb r0, [r4, 0xA] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_81B5C94 -_081B5C3C: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end party_menu_held_item_object - - thumb_func_start party_menu_link_mon_held_item_object -party_menu_link_mon_held_item_object: @ 81B5C48 - push {r4,r5,lr} - adds r4, r2, 0 - lsls r0, 16 - lsls r1, 16 - lsrs r5, r1, 16 - cmp r0, 0 - beq _081B5C84 - ldr r0, =gUnknown_08615EC0 - ldr r2, [r4, 0x4] - ldrb r1, [r2, 0x2] - ldrb r2, [r2, 0x3] - movs r3, 0 - bl AddObjectToFront - strb r0, [r4, 0xA] - ldr r2, =gUnknown_02020630 - ldrb r0, [r4, 0xA] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x5] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_81B5CB0 -_081B5C84: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end party_menu_link_mon_held_item_object - - thumb_func_start sub_81B5C94 -sub_81B5C94: @ 81B5C94 - push {r4,lr} - adds r4, r1, 0 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0 - bl sub_81B5CB0 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81B5C94 - - thumb_func_start sub_81B5CB0 -sub_81B5CB0: @ 81B5CB0 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _081B5CD8 - ldr r2, =gUnknown_02020630 - ldrb r1, [r4, 0xA] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - b _081B5D24 - .pool -_081B5CD8: - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - beq _081B5CFC - ldrb r1, [r4, 0xA] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - movs r1, 0x1 - bl StartObjectImageAnim - b _081B5D0E - .pool -_081B5CFC: - ldrb r1, [r4, 0xA] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - movs r1, 0 - bl StartObjectImageAnim -_081B5D0E: - ldr r2, =gUnknown_02020630 - ldrb r1, [r4, 0xA] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 -_081B5D24: - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B5CB0 - - thumb_func_start sub_81B5D30 -sub_81B5D30: @ 81B5D30 - push {lr} - ldr r0, =gUnknown_08615EB0 - bl LoadObjectPic - ldr r0, =gUnknown_08615EB8 - bl LoadTaggedObjectPalette - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B5D30 - - thumb_func_start sub_81B5D4C -sub_81B5D4C: @ 81B5D4C - push {r4-r7,lr} - adds r6, r0, 0 - adds r7, r1, 0 - lsls r2, 24 - lsrs r2, 24 - cmp r2, 0 - beq _081B5D60 - cmp r2, 0x1 - beq _081B5DA8 - b _081B5DE4 -_081B5D60: - movs r5, 0 - ldrb r0, [r6] - cmp r5, r0 - bcs _081B5DE4 -_081B5D68: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _081B5D94 - adds r0, r7, r5 - ldrb r4, [r0] - adds r0, r1, 0 - bl itemid_is_mail - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_81B5DF0 -_081B5D94: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldrb r0, [r6] - cmp r5, r0 - bcc _081B5D68 - b _081B5DE4 - .pool -_081B5DA8: - movs r5, 0 - b _081B5DDE -_081B5DAC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _081B5DD8 - adds r0, r5, r7 - ldrb r4, [r0, 0x6] - adds r0, r1, 0 - bl itemid_is_mail - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_81B5DF0 -_081B5DD8: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_081B5DDE: - ldrb r0, [r6, 0x1] - cmp r5, r0 - bcc _081B5DAC -_081B5DE4: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B5D4C - - thumb_func_start sub_81B5DF0 -sub_81B5DF0: @ 81B5DF0 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - adds r6, r0, 0 - mov r9, r1 - lsls r6, 24 - lsrs r6, 24 - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r0, =gUnknown_02020630 - mov r8, r0 - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - add r0, r8 - adds r0, 0x43 - ldrb r3, [r0] - ldr r0, =gUnknown_08615EC0 - subs r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - movs r1, 0xFA - movs r2, 0xAA - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - mov r0, r8 - adds r5, r4, r0 - movs r0, 0x4 - strh r0, [r5, 0x24] - movs r0, 0xA - strh r0, [r5, 0x26] - movs r0, 0x1C - add r8, r0 - add r4, r8 - ldr r0, =sub_81B5E74 - str r0, [r4] - strh r6, [r5, 0x3C] - adds r0, r5, 0 - mov r1, r9 - bl StartObjectImageAnim - ldr r1, [r4] - adds r0, r5, 0 - bl _call_via_r1 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B5DF0 - - thumb_func_start sub_81B5E74 -sub_81B5E74: @ 81B5E74 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x3C] - lsls r1, 24 - lsrs r1, 24 - ldr r2, =gUnknown_02020630 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, r0, r2 - adds r0, r2, 0 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _081B5EA8 - adds r0, r4, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _081B5EC6 - .pool -_081B5EA8: - adds r3, r4, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - ldrh r0, [r2, 0x24] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x26] - ldrh r2, [r2, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] -_081B5EC6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81B5E74 - - thumb_func_start party_menu_pokeball_object -party_menu_pokeball_object: @ 81B5ECC - push {r4,lr} - adds r4, r1, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _081B5EEA - ldr r0, =gUnknown_08615F08 - ldr r2, [r4, 0x4] - ldrb r1, [r2, 0x6] - ldrb r2, [r2, 0x7] - movs r3, 0x8 - bl AddObjectToFront - strb r0, [r4, 0xB] -_081B5EEA: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end party_menu_pokeball_object - - thumb_func_start party_menu_link_mon_pokeball_object -party_menu_link_mon_pokeball_object: @ 81B5EF4 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 16 - cmp r0, 0 - beq _081B5F24 - ldr r0, =gUnknown_08615F08 - ldr r2, [r4, 0x4] - ldrb r1, [r2, 0x6] - ldrb r2, [r2, 0x7] - movs r3, 0x8 - bl AddObjectToFront - strb r0, [r4, 0xB] - ldr r2, =gUnknown_02020630 - ldrb r0, [r4, 0xB] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x5] -_081B5F24: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end party_menu_link_mon_pokeball_object - - thumb_func_start sub_81B5F34 -sub_81B5F34: @ 81B5F34 - push {lr} - adds r3, r0, 0 - adds r2, r1, 0 - lsls r3, 24 - lsrs r3, 24 - lsls r2, 24 - lsrs r2, 24 - ldr r0, =gUnknown_08615F08 - adds r1, r3, 0 - movs r3, 0x8 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_02020630 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r3, [r1, 0x5] - movs r2, 0xD - negs r2, r2 - ands r2, r3 - movs r3, 0x8 - orrs r2, r3 - strb r2, [r1, 0x5] - pop {r1} - bx r1 - .pool - thumb_func_end sub_81B5F34 - - thumb_func_start sub_81B5F74 -sub_81B5F74: @ 81B5F74 - push {lr} - adds r3, r0, 0 - adds r2, r1, 0 - lsls r3, 24 - lsrs r3, 24 - lsls r2, 24 - lsrs r2, 24 - ldr r0, =gUnknown_08615F78 - adds r1, r3, 0 - movs r3, 0x8 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81B5F74 - - thumb_func_start sub_81B5F98 -sub_81B5F98: @ 81B5F98 - push {lr} - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - ldr r2, =gUnknown_02020630 - adds r0, r2 - bl StartObjectImageAnim - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B5F98 - - thumb_func_start sub_81B5FBC -sub_81B5FBC: @ 81B5FBC - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - cmp r6, 0 - bne _081B6000 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, =gUnknown_02020630 - mov r8, r0 - add r4, r8 - adds r0, r4, 0 - movs r1, 0x2 - bl StartObjectImageAnim - lsls r5, r7, 4 - adds r5, r7 - lsls r5, 2 - add r5, r8 - adds r0, r5, 0 - movs r1, 0x4 - bl StartObjectImageAnim - strh r6, [r4, 0x26] - strh r6, [r5, 0x26] - b _081B602C - .pool -_081B6000: - lsls r5, r0, 4 - adds r5, r0 - lsls r5, 2 - ldr r0, =gUnknown_02020630 - mov r8, r0 - add r5, r8 - adds r0, r5, 0 - movs r1, 0x3 - bl StartObjectImageAnim - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - add r4, r8 - adds r0, r4, 0 - movs r1, 0x5 - bl StartObjectImageAnim - ldr r0, =0x0000fffc - strh r0, [r5, 0x26] - movs r0, 0x4 - strh r0, [r4, 0x26] -_081B602C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B5FBC - - thumb_func_start sub_81B6040 -sub_81B6040: @ 81B6040 - push {lr} - ldr r0, =gUnknown_08615EF8 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_08615F70 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_08615F00 - bl LoadCompressedObjectPalette - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B6040 - - thumb_func_start party_menu_status_condition_object -party_menu_status_condition_object: @ 81B6064 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _081B608C - ldr r0, =gUnknown_08616008 - ldr r2, [r4, 0x4] - ldrb r1, [r2, 0x4] - ldrb r2, [r2, 0x5] - movs r3, 0 - bl AddObjectToFront - strb r0, [r4, 0xC] - adds r0, r5, 0 - adds r1, r4, 0 - bl party_menu_get_status_condition_and_update_object -_081B608C: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end party_menu_status_condition_object - - thumb_func_start party_menu_link_mon_status_condition_object -party_menu_link_mon_status_condition_object: @ 81B6098 - push {r4,r5,lr} - adds r4, r2, 0 - lsls r0, 16 - lsls r1, 24 - lsrs r5, r1, 24 - cmp r0, 0 - beq _081B60D4 - ldr r0, =gUnknown_08616008 - ldr r2, [r4, 0x4] - ldrb r1, [r2, 0x4] - ldrb r2, [r2, 0x5] - movs r3, 0 - bl AddObjectToFront - strb r0, [r4, 0xC] - adds r0, r5, 0 - adds r1, r4, 0 - bl party_menu_update_status_condition_object - ldr r2, =gUnknown_02020630 - ldrb r0, [r4, 0xC] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x5] -_081B60D4: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end party_menu_link_mon_status_condition_object - - thumb_func_start party_menu_get_status_condition_and_update_object -@ void party_menu_get_status_condition_and_update_object(struct pokemon *mon, void *a2, void *a3) -party_menu_get_status_condition_and_update_object: @ 81B60E4 - push {r4,lr} - adds r4, r1, 0 - bl sub_81B205C - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - bl party_menu_update_status_condition_object - pop {r4} - pop {r0} - bx r0 - thumb_func_end party_menu_get_status_condition_and_update_object - - thumb_func_start party_menu_update_status_condition_object -@ void party_menu_update_status_condition_object(u8 a1, void *a2) -party_menu_update_status_condition_object: @ 81B60FC - push {r4,r5,lr} - adds r5, r1, 0 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _081B610C - cmp r2, 0x6 - bne _081B6128 -_081B610C: - ldr r2, =gUnknown_02020630 - ldrb r1, [r5, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - b _081B6152 - .pool -_081B6128: - ldrb r1, [r5, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - subs r1, r2, 0x1 - lsls r1, 24 - lsrs r1, 24 - bl StartObjectImageAnim - ldrb r1, [r5, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 -_081B6152: - strb r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end party_menu_update_status_condition_object - - thumb_func_start sub_81B6160 -sub_81B6160: @ 81B6160 - push {lr} - ldr r0, =gUnknown_08615FF8 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_08616000 - bl LoadCompressedObjectPalette - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B6160 - - thumb_func_start sub_81B617C -sub_81B617C: @ 81B617C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - ldr r0, =c2_815ABFC - mov r8, r0 - ldr r0, =gMain - ldr r1, =0x00000439 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081B61BC - movs r7, 0x1 - bl sub_81B8984 - lsls r0, 24 - lsrs r6, r0, 24 - b _081B61C0 - .pool -_081B61B0: - ldr r0, =gUnknown_0203CEC8 - strb r5, [r0, 0x9] - b _081B6204 - .pool -_081B61BC: - movs r7, 0 - movs r6, 0 -_081B61C0: - ldr r4, =gUnknown_0203CE7C - ldrh r0, [r4] - bl GetItemEffectType - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xA - bne _081B621C - ldr r1, =gUnknown_0203CEC8 - movs r0, 0 - strb r0, [r1, 0x9] - movs r5, 0 -_081B61D8: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _081B61FA - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _081B61B0 -_081B61FA: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _081B61D8 -_081B6204: - ldr r0, =sub_81B6280 - movs r1, 0x7F - b _081B6230 - .pool -_081B621C: - ldrh r0, [r4] - bl sub_80D6C68 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x5 - cmp r0, 0x3 - bne _081B622E - movs r1, 0x4 -_081B622E: - ldr r0, =sub_81B1370 -_081B6230: - str r1, [sp] - str r0, [sp, 0x4] - mov r0, r8 - str r0, [sp, 0x8] - adds r0, r7, 0 - adds r1, r6, 0 - movs r2, 0x3 - movs r3, 0x1 - bl sub_81B0038 - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B617C - - thumb_func_start c2_815ABFC -c2_815ABFC: @ 81B6254 - push {lr} - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - bne _081B626C - movs r0, 0xC - movs r1, 0x5 - movs r2, 0 - bl GoToBagMenu - b _081B6276 -_081B626C: - ldr r0, =gUnknown_0203CF30 - ldr r1, [r0] - movs r0, 0x4 - bl sub_81C4F98 -_081B6276: - pop {r0} - bx r0 - .pool - thumb_func_end c2_815ABFC - - thumb_func_start sub_81B6280 -sub_81B6280: @ 81B6280 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081B62B2 - ldr r0, =gUnknown_0203CEC8 - ldrb r1, [r0, 0x8] - movs r0, 0xF - ands r0, r1 - cmp r0, 0x1 - bne _081B62A6 - ldr r0, =gUnknown_0203CEC4 - ldr r1, [r0] - ldr r0, =sub_81B9140 - str r0, [r1, 0x4] -_081B62A6: - ldr r0, =gUnknown_03006328 - ldr r1, =sub_81B6794 - ldr r2, [r0] - adds r0, r3, 0 - bl _call_via_r2 -_081B62B2: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B6280 - - thumb_func_start IsHPRecoveryItem -@ bool8 IsHPRecoveryItem(u16 itemId) -IsHPRecoveryItem: @ 81B62D0 - push {lr} - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAF - bne _081B62EC - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003214 - adds r0, r1 - b _081B62F6 - .pool -_081B62EC: - ldr r1, =gItemEffectInfoPointers - subs r0, 0xD - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] -_081B62F6: - ldrb r1, [r0, 0x4] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - bne _081B6308 - movs r0, 0 - b _081B630A - .pool -_081B6308: - movs r0, 0x1 -_081B630A: - pop {r1} - bx r1 - thumb_func_end IsHPRecoveryItem - - thumb_func_start GetMedicineItemEffectMessage -@ void GetMedicineItemEffectMessage(u16 itemId) -GetMedicineItemEffectMessage: @ 81B6310 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl GetItemEffectType - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x3 - cmp r0, 0x12 - bls _081B6326 - b _081B64BC -_081B6326: - lsls r0, 2 - ldr r1, =_081B6334 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081B6334: - .4byte _081B6380 - .4byte _081B6394 - .4byte _081B63A8 - .4byte _081B63BC - .4byte _081B63D0 - .4byte _081B63E4 - .4byte _081B63F8 - .4byte _081B64BC - .4byte _081B640C - .4byte _081B6430 - .4byte _081B6420 - .4byte _081B6460 - .4byte _081B6470 - .4byte _081B6450 - .4byte _081B6440 - .4byte _081B64BC - .4byte _081B6494 - .4byte _081B6494 - .4byte _081B64A8 -_081B6380: - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9C3E - bl StringExpandPlaceholders - b _081B64C4 - .pool -_081B6394: - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9C7C - bl StringExpandPlaceholders - b _081B64C4 - .pool -_081B63A8: - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9C8A - bl StringExpandPlaceholders - b _081B64C4 - .pool -_081B63BC: - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9CA2 - bl StringExpandPlaceholders - b _081B64C4 - .pool -_081B63D0: - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9C5F - bl StringExpandPlaceholders - b _081B64C4 - .pool -_081B63E4: - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9DBE - bl StringExpandPlaceholders - b _081B64C4 - .pool -_081B63F8: - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9DE1 - bl StringExpandPlaceholders - b _081B64C4 - .pool -_081B640C: - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9CE0 - bl StringExpandPlaceholders - b _081B64C4 - .pool -_081B6420: - ldr r0, =gStringVar2 - ldr r1, =gUnknown_085E96E3 - b _081B6474 - .pool -_081B6430: - ldr r0, =gStringVar2 - ldr r1, =gUnknown_085EA33C - b _081B6474 - .pool -_081B6440: - ldr r0, =gStringVar2 - ldr r1, =gUnknown_085EA343 - b _081B6474 - .pool -_081B6450: - ldr r0, =gStringVar2 - ldr r1, =gUnknown_085EA35B - b _081B6474 - .pool -_081B6460: - ldr r0, =gStringVar2 - ldr r1, =gUnknown_085E96E6 - b _081B6474 - .pool -_081B6470: - ldr r0, =gStringVar2 - ldr r1, =gUnknown_085E96EE -_081B6474: - bl StringCopy - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9D25 - bl StringExpandPlaceholders - b _081B64C4 - .pool -_081B6494: - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9CF5 - bl StringExpandPlaceholders - b _081B64C4 - .pool -_081B64A8: - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9CB7 - bl StringExpandPlaceholders - b _081B64C4 - .pool -_081B64BC: - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E96F6 - bl StringExpandPlaceholders -_081B64C4: - pop {r0} - bx r0 - .pool - thumb_func_end GetMedicineItemEffectMessage - - thumb_func_start UsingHPEVItemOnShedinja -@ bool8 UsingHPEVItemOnShedinja(struct pokemon *mon, u16 itemId) -UsingHPEVItemOnShedinja: @ 81B64D0 - push {r4,lr} - adds r4, r0, 0 - lsls r0, r1, 16 - lsrs r0, 16 - bl GetItemEffectType - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD - bne _081B64FC - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - ldr r1, =0x0000012f - cmp r0, r1 - bne _081B64FC - movs r0, 0 - b _081B64FE - .pool -_081B64FC: - movs r0, 0x1 -_081B64FE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end UsingHPEVItemOnShedinja - - thumb_func_start IsBlueYellowRedFlute -@ bool8 IsBlueYellowRedFlute(u16 itemId) -IsBlueYellowRedFlute: @ 81B6504 - push {lr} - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x27 - beq _081B6516 - cmp r0, 0x29 - beq _081B6516 - cmp r0, 0x28 - bne _081B651A -_081B6516: - movs r0, 0x1 - b _081B651C -_081B651A: - movs r0, 0 -_081B651C: - pop {r1} - bx r1 - thumb_func_end IsBlueYellowRedFlute - - thumb_func_start ExecuteTableBasedItemEffect__ -@ bool8 ExecuteTableBasedItemEffect__(u8 partyMonIndex, u16 itemId, u8 monMoveIndex) -ExecuteTableBasedItemEffect__: @ 81B6520 - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 16 - lsrs r5, r1, 16 - lsls r2, 24 - lsrs r6, r2, 24 - ldr r0, =gMain - ldr r1, =0x00000439 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _081B6558 - movs r0, 0x64 - muls r0, r3 - ldr r1, =gPlayerParty - adds r0, r1 - adds r1, r5, 0 - adds r2, r3, 0 - b _081B6572 - .pool -_081B6558: - movs r0, 0x64 - adds r4, r3, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r3, 0 - bl sub_81B8F38 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 -_081B6572: - adds r3, r6, 0 - bl ExecuteTableBasedItemEffect_ - lsls r0, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end ExecuteTableBasedItemEffect__ - - thumb_func_start ItemUseCB_Medicine -ItemUseCB_Medicine: @ 81B6588 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - str r1, [sp, 0x4] - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r0, 0 - mov r10, r0 - ldr r0, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r5, r1, r0 - ldr r0, =gUnknown_0203CE7C - ldrh r6, [r0] - adds r0, r5, 0 - adds r1, r6, 0 - bl UsingHPEVItemOnShedinja - lsls r0, 24 - cmp r0, 0 - beq _081B6600 - adds r0, r6, 0 - bl IsHPRecoveryItem - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0x1 - bne _081B65EE - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - adds r0, r5, 0 - movs r1, 0x3A - bl GetMonData - cmp r10, r0 - bne _081B65EE - movs r1, 0 - mov r8, r1 -_081B65EE: - ldr r4, =gUnknown_0203CEC8 - ldrb r0, [r4, 0x9] - adds r1, r6, 0 - movs r2, 0 - bl ExecuteTableBasedItemEffect__ - lsls r0, 24 - cmp r0, 0 - beq _081B6624 -_081B6600: - ldr r1, =gUnknown_0203CEE8 - movs r0, 0 - strb r0, [r1] - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_085E96F6 - b _081B66F4 - .pool -_081B6624: - ldr r1, =gUnknown_0203CEE8 - movs r0, 0x1 - strb r0, [r1] - adds r0, r6, 0 - bl IsBlueYellowRedFlute - lsls r0, 24 - cmp r0, 0 - bne _081B6650 - movs r0, 0x1 - bl audio_play - ldrb r0, [r4, 0xB] - cmp r0, 0xE - beq _081B6656 - adds r0, r6, 0 - movs r1, 0x1 - bl remove_item - b _081B6656 - .pool -_081B6650: - movs r0, 0x75 - bl audio_play -_081B6656: - ldr r4, =gUnknown_0203CEDC - ldr r7, =gUnknown_0203CEC8 - movs r0, 0x9 - ldrsb r0, [r7, r0] - lsls r0, 4 - ldr r1, [r4] - adds r1, r0 - adds r0, r5, 0 - bl party_menu_get_status_condition_and_update_object - ldr r2, =gUnknown_02020630 - movs r0, 0x9 - ldrsb r0, [r7, r0] - ldr r1, [r4] - lsls r0, 4 - adds r3, r0, r1 - ldrb r1, [r3, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _081B6694 - adds r0, r5, 0 - adds r1, r3, 0 - movs r2, 0x1 - bl sub_81B2AC8 -_081B6694: - mov r2, r8 - cmp r2, 0x1 - bne _081B66E4 - mov r0, r10 - cmp r0, 0 - bne _081B66A8 - ldrb r0, [r7, 0x9] - movs r1, 0x1 - bl sub_81B0FCC -_081B66A8: - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - adds r3, r0, 0 - mov r1, r10 - subs r3, r1 - lsls r3, 16 - asrs r3, 16 - ldrb r1, [r7, 0x9] - ldr r0, =sub_81B672C - str r0, [sp] - mov r0, r9 - movs r2, 0x1 - bl sub_81B1F18 - mov r0, r9 - movs r1, 0 - mov r2, r10 - bl sub_81B1FA8 - b _081B6710 - .pool -_081B66E4: - ldr r1, =gStringVar1 - adds r0, r5, 0 - bl GetMonNickname - adds r0, r6, 0 - bl GetMedicineItemEffectMessage - ldr r0, =gStringVar4 -_081B66F4: - movs r1, 0x1 - bl sub_81B1B5C - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, =gTasks - mov r2, r9 - lsls r0, r2, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - ldr r1, [sp, 0x4] - str r1, [r0] -_081B6710: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseCB_Medicine - - thumb_func_start sub_81B672C -sub_81B672C: @ 81B672C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gStringVar1 - bl GetMonNickname - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9C17 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0 - bl sub_81B1B5C - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - bl sub_805EAE8 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B6794 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B672C - - thumb_func_start sub_81B6794 -sub_81B6794: @ 81B6794 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81B1BD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B67BA - ldr r0, =gUnknown_0203CEE8 - ldrb r1, [r0] - cmp r1, 0 - bne _081B67B4 - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - str r1, [r0, 0x4] -_081B67B4: - adds r0, r4, 0 - bl sub_81B12C0 -_081B67BA: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B6794 - - thumb_func_start sub_81B67C8 -sub_81B67C8: @ 81B67C8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - str r1, [sp] - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r4, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r4, r1] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r5, r1, r0 - ldr r0, =gUnknown_0203CE7C - ldrh r6, [r0] - adds r0, r6, 0 - bl GetItemEffectType - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r5, 0 - movs r1, 0x20 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x4] - adds r0, r5, 0 - adds r1, r7, 0 - bl sub_81B691C - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - ldrb r0, [r4, 0x9] - adds r1, r6, 0 - movs r2, 0 - bl ExecuteTableBasedItemEffect__ - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x20 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - adds r0, r5, 0 - adds r1, r7, 0 - bl sub_81B691C - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r4, 0 - bne _081B6850 - ldr r0, [sp, 0x4] - cmp r0, r9 - bne _081B6874 - ldr r1, [sp, 0x8] - cmp r1, r8 - bne _081B6874 -_081B6850: - ldr r1, =gUnknown_0203CEE8 - movs r0, 0 - strb r0, [r1] - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_085E96F6 - b _081B68E2 - .pool -_081B6874: - ldr r1, =gUnknown_0203CEE8 - movs r0, 0x1 - strb r0, [r1] - movs r0, 0x1 - bl audio_play - adds r0, r6, 0 - movs r1, 0x1 - bl remove_item - ldr r1, =gStringVar1 - adds r0, r5, 0 - bl GetMonNickname - ldr r1, =gStringVar2 - adds r0, r7, 0 - bl option_menu_get_string - ldr r2, [sp, 0x4] - cmp r2, r9 - beq _081B68D8 - ldr r0, [sp, 0x8] - cmp r0, r8 - beq _081B68C4 - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9D45 - bl StringExpandPlaceholders - b _081B68E0 - .pool -_081B68C4: - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9D90 - bl StringExpandPlaceholders - b _081B68E0 - .pool -_081B68D8: - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9D6D - bl StringExpandPlaceholders -_081B68E0: - ldr r0, =gStringVar4 -_081B68E2: - movs r1, 0x1 - bl sub_81B1B5C - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, =gTasks - mov r2, r10 - lsls r0, r2, 2 - add r0, r10 - lsls r0, 3 - adds r0, r1 - ldr r1, [sp] - str r1, [r0] - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B67C8 - - thumb_func_start sub_81B691C -sub_81B691C: @ 81B691C - push {r4,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r1, 0 - subs r0, 0xC - cmp r0, 0x5 - bhi _081B6992 - lsls r0, 2 - ldr r1, =_081B693C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081B693C: - .4byte _081B696C - .4byte _081B6954 - .4byte _081B697E - .4byte _081B6984 - .4byte _081B6978 - .4byte _081B6972 -_081B6954: - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - ldr r1, =0x0000012f - cmp r0, r1 - beq _081B6992 - adds r0, r4, 0 - movs r1, 0x1A - b _081B6988 - .pool -_081B696C: - adds r0, r4, 0 - movs r1, 0x1B - b _081B6988 -_081B6972: - adds r0, r4, 0 - movs r1, 0x1C - b _081B6988 -_081B6978: - adds r0, r4, 0 - movs r1, 0x1D - b _081B6988 -_081B697E: - adds r0, r4, 0 - movs r1, 0x1E - b _081B6988 -_081B6984: - adds r0, r4, 0 - movs r1, 0x1F -_081B6988: - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - b _081B6994 -_081B6992: - movs r0, 0 -_081B6994: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81B691C - - thumb_func_start option_menu_get_string -option_menu_get_string: @ 81B699C - push {lr} - adds r2, r1, 0 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0xC - cmp r0, 0x5 - bhi _081B6A08 - lsls r0, 2 - ldr r1, =_081B69B8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081B69B8: - .4byte _081B69D8 - .4byte _081B69D0 - .4byte _081B69F0 - .4byte _081B6A00 - .4byte _081B69E8 - .4byte _081B69E0 -_081B69D0: - ldr r1, =gUnknown_085E96E3 - b _081B69F2 - .pool -_081B69D8: - ldr r1, =gUnknown_085EA33C - b _081B69F2 - .pool -_081B69E0: - ldr r1, =gUnknown_085EA343 - b _081B69F2 - .pool -_081B69E8: - ldr r1, =gUnknown_085EA35B - b _081B69F2 - .pool -_081B69F0: - ldr r1, =gUnknown_085E96E6 -_081B69F2: - adds r0, r2, 0 - bl StringCopy - b _081B6A08 - .pool -_081B6A00: - ldr r1, =gUnknown_085E96EE - adds r0, r2, 0 - bl StringCopy -_081B6A08: - pop {r0} - bx r0 - .pool - thumb_func_end option_menu_get_string - - thumb_func_start sub_81B6A10 -sub_81B6A10: @ 81B6A10 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r7, 0 - movs r0, 0x1 - mov r10, r0 - movs r0, 0x3 - bl sub_81B31B0 - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - movs r0, 0x64 - adds r1, r4, 0 - muls r1, r0 - mov r8, r1 - ldr r0, =gPlayerParty - mov r9, r0 -_081B6A40: - adds r1, r5, 0 - adds r1, 0xD - mov r0, r8 - add r0, r9 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0xD - adds r2, r4, 0 - muls r2, r0 - ldr r0, =gMoveNames - adds r2, r0 - lsls r0, r5, 4 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r6, 0 - mov r1, r10 - movs r3, 0x8 - bl Print - cmp r4, 0 - beq _081B6A82 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_081B6A82: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _081B6A40 - adds r0, r6, 0 - adds r1, r7, 0 - movs r2, 0 - bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B6A10 - - thumb_func_start ether_effect_related_3 -ether_effect_related_3: @ 81B6AB4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl ProcessMenuInput - lsls r0, 24 - asrs r1, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _081B6AF0 - adds r0, 0x1 - cmp r1, r0 - bne _081B6AE0 - movs r0, 0x5 - bl audio_play - adds r0, r4, 0 - bl sub_81B6BB4 - b _081B6AF0 -_081B6AE0: - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - adds r0, 0xD - bl sub_81B302C - adds r0, r5, 0 - bl ether_effect_related_2 -_081B6AF0: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ether_effect_related_3 - - thumb_func_start dp05_ether -dp05_ether: @ 81B6AFC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - cmp r0, 0xAF - bne _081B6B20 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003214 - adds r0, r1 - b _081B6B2A - .pool -_081B6B20: - ldr r1, =gItemEffectInfoPointers - subs r0, 0xD - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] -_081B6B2A: - ldrb r1, [r0, 0x4] - movs r0, 0x10 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _081B6B4C - ldr r0, =gUnknown_0203CEC8 - strh r1, [r0, 0xE] - adds r0, r4, 0 - bl ether_effect_related - b _081B6B6E - .pool -_081B6B4C: - movs r0, 0x5 - bl audio_play - movs r0, 0x16 - bl display_pokemon_menu_message - ldr r0, =gUnknown_0203CEC8 - ldrb r0, [r0, 0x9] - bl sub_81B6A10 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =ether_effect_related_3 - str r1, [r0] -_081B6B6E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end dp05_ether - - thumb_func_start ether_effect_related_2 -ether_effect_related_2: @ 81B6B80 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - adds r0, 0xC - bl sub_81B302C - bl GetMenuCursorPos - ldr r1, =gUnknown_0203CEC8 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0xE] - adds r0, r4, 0 - bl ether_effect_related - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ether_effect_related_2 - - thumb_func_start sub_81B6BB4 -sub_81B6BB4: @ 81B6BB4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, =sub_81B1370 - str r0, [r1] - ldr r0, =gUnknown_0203CEC4 - ldr r0, [r0] - movs r1, 0 - str r1, [r0, 0x4] - adds r0, 0xC - bl sub_81B302C - movs r0, 0x5 - bl display_pokemon_menu_message - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B6BB4 - - thumb_func_start ether_effect_related -ether_effect_related: @ 81B6BEC - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - ldr r7, =gUnknown_0203CED6 - ldr r0, =gUnknown_0203CE7C - ldrh r5, [r0] - movs r0, 0xE - negs r0, r0 - adds r0, r7 - mov r8, r0 - ldrb r0, [r0, 0x9] - ldrb r2, [r7] - adds r1, r5, 0 - bl ExecuteTableBasedItemEffect__ - lsls r0, 24 - cmp r0, 0 - beq _081B6C34 - ldr r0, =gUnknown_0203CEE8 - strb r4, [r0] - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_085E96F6 - b _081B6C7E - .pool -_081B6C34: - ldr r1, =gUnknown_0203CEE8 - movs r0, 0x1 - strb r0, [r1] - mov r0, r8 - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - adds r4, r1, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - movs r0, 0x1 - bl audio_play - adds r0, r5, 0 - movs r1, 0x1 - bl remove_item - movs r0, 0 - ldrsh r1, [r7, r0] - adds r1, 0xD - adds r0, r4, 0 - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, =gStringVar1 - movs r1, 0xD - muls r1, r4 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy - adds r0, r5, 0 - bl GetMedicineItemEffectMessage - ldr r0, =gStringVar4 -_081B6C7E: - movs r1, 0x1 - bl sub_81B1B5C - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B6794 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end ether_effect_related - - thumb_func_start dp05_pp_up -dp05_pp_up: @ 81B6CC0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl audio_play - movs r0, 0x17 - bl display_pokemon_menu_message - ldr r0, =gUnknown_0203CEC8 - ldrb r0, [r0, 0x9] - bl sub_81B6A10 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =ether_effect_related_3 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end dp05_pp_up - - thumb_func_start ItemIdToBattleMoveId -ItemIdToBattleMoveId: @ 81B6CFC - lsls r0, 16 - ldr r1, =0xfedf0000 - adds r0, r1 - ldr r1, =gUnknown_08616040 - lsrs r0, 15 - adds r0, r1 - ldrh r0, [r0] - bx lr - .pool - thumb_func_end ItemIdToBattleMoveId - - thumb_func_start sub_81B6D14 -sub_81B6D14: @ 81B6D14 - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - movs r1, 0 - ldr r3, =gUnknown_08616040 -_081B6D1E: - adds r0, r1, 0 - adds r0, 0x32 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _081B6D34 - movs r0, 0x1 - b _081B6D40 - .pool -_081B6D34: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x7 - bls _081B6D1E - movs r0, 0 -_081B6D40: - pop {r1} - bx r1 - thumb_func_end sub_81B6D14 - - thumb_func_start pokemon_has_move -pokemon_has_move: @ 81B6D44 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r1, 16 - lsrs r5, r1, 16 - movs r4, 0 -_081B6D4E: - adds r1, r4, 0 - adds r1, 0xD - adds r0, r6, 0 - bl GetMonData - cmp r0, r5 - bne _081B6D60 - movs r0, 0x1 - b _081B6D6C -_081B6D60: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _081B6D4E - movs r0, 0 -_081B6D6C: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end pokemon_has_move - - thumb_func_start sub_81B6D74 -sub_81B6D74: @ 81B6D74 - push {r4,lr} - adds r1, r0, 0 - ldr r4, =gStringVar4 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81B1B5C - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B6D74 - - thumb_func_start sub_81B6D98 -sub_81B6D98: @ 81B6D98 - push {r4,lr} - adds r4, r0, 0 - adds r0, r1, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_81B6D74 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B6794 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B6D98 - - thumb_func_start sub_81B6DC4 -sub_81B6DC4: @ 81B6DC4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0x5 - bl audio_play - ldr r7, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r7, r1] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r5, r1, r0 - movs r0, 0xE - adds r0, r7 - mov r8, r0 - ldr r0, =gUnknown_0203CE7C - ldrh r4, [r0] - ldr r1, =gStringVar1 - adds r0, r5, 0 - bl GetMonNickname - adds r0, r4, 0 - bl ItemIdToBattleMoveId - strh r0, [r7, 0xE] - ldr r0, =gStringVar2 - movs r1, 0xE - ldrsh r2, [r7, r1] - movs r1, 0xD - muls r1, r2 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy - movs r0, 0 - mov r1, r8 - strh r0, [r1, 0x2] - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0 - bl sub_81B22D8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B6E70 - cmp r0, 0x2 - beq _081B6E78 - ldrh r1, [r7, 0xE] - adds r0, r5, 0 - bl pokemon_moveset_pad_ - lsls r0, 16 - ldr r1, =0xffff0000 - cmp r0, r1 - beq _081B6E88 - ldr r0, =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B6EB4 - str r0, [r1] - b _081B6E9C - .pool -_081B6E70: - ldr r1, =gUnknown_085E9AB4 - b _081B6E7A - .pool -_081B6E78: - ldr r1, =gUnknown_085E9C00 -_081B6E7A: - adds r0, r6, 0 - bl sub_81B6D98 - b _081B6E9C - .pool -_081B6E88: - ldr r0, =gUnknown_085E9AE9 - bl sub_81B6D74 - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B6FF4 - str r1, [r0] -_081B6E9C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B6DC4 - - thumb_func_start sub_81B6EB4 -sub_81B6EB4: @ 81B6EB4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r2, r1] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r5, r1, r0 - adds r6, r2, 0 - adds r6, 0xE - ldr r0, =gUnknown_0203CE7C - ldrh r4, [r0] - movs r1, 0x2 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _081B6EF0 - adds r0, r5, 0 - movs r1, 0x4 - bl happiness_algorithm - movs r0, 0xA9 - lsls r0, 1 - cmp r4, r0 - bhi _081B6EF0 - adds r0, r4, 0 - movs r1, 0x1 - bl remove_item -_081B6EF0: - ldr r1, =gStringVar1 - adds r0, r5, 0 - bl GetMonNickname - ldr r0, =gStringVar2 - movs r1, 0 - ldrsh r2, [r6, r1] - movs r1, 0xD - muls r1, r2 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9AA5 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81B1B5C - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B6F60 - str r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B6EB4 - - thumb_func_start sub_81B6F60 -sub_81B6F60: @ 81B6F60 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81B1BD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B6F86 - ldr r0, =0x0000016f - bl fanfare_play - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B6F98 - str r1, [r0] -_081B6F86: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B6F60 - - thumb_func_start sub_81B6F98 -sub_81B6F98: @ 81B6F98 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl task_is_not_running_overworld_fanfare - lsls r0, 24 - cmp r0, 0 - beq _081B6FEA - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _081B6FC0 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081B6FEA -_081B6FC0: - ldr r0, =gUnknown_0203CEC8 - movs r1, 0x10 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - bne _081B6FDC - adds r0, r4, 0 - bl sub_81B77AC - b _081B6FEA - .pool -_081B6FDC: - cmp r0, 0x2 - bne _081B6FE4 - ldr r0, =gUnknown_020375F0 - strh r2, [r0] -_081B6FE4: - adds r0, r5, 0 - bl sub_81B12C0 -_081B6FEA: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B6F98 - - thumb_func_start sub_81B6FF4 -sub_81B6FF4: @ 81B6FF4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81B1BD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B7018 - bl sub_81B334C - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B7028 - str r0, [r1] -_081B7018: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B6FF4 - - thumb_func_start sub_81B7028 -sub_81B7028: @ 81B7028 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8198C58 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _081B704E - cmp r1, 0 - bgt _081B7048 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _081B7074 - b _081B7080 -_081B7048: - cmp r1, 0x1 - beq _081B707A - b _081B7080 -_081B704E: - ldr r0, =gUnknown_085E9B96 - movs r1, 0x1 - bl sub_81B1B5C - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B7088 - str r1, [r0] - b _081B7080 - .pool -_081B7074: - movs r0, 0x5 - bl audio_play -_081B707A: - adds r0, r4, 0 - bl sub_81B7230 -_081B7080: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81B7028 - - thumb_func_start sub_81B7088 -sub_81B7088: @ 81B7088 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81B1BD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B70A8 - ldr r0, =gUnknown_0203CEC4 - ldr r1, [r0] - ldr r0, =sub_81B70B8 - str r0, [r1, 0x4] - adds r0, r4, 0 - bl sub_81B12C0 -_081B70A8: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B7088 - - thumb_func_start sub_81B70B8 -sub_81B70B8: @ 81B70B8 - push {r4,lr} - sub sp, 0x4 - ldr r0, =gPlayerParty - ldr r4, =gUnknown_0203CEC8 - ldrb r1, [r4, 0x9] - ldr r2, =gUnknown_020244E9 - ldrb r2, [r2] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldr r3, =sub_81B70F0 - ldrh r4, [r4, 0xE] - str r4, [sp] - bl sub_81BFA38 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B70B8 - - thumb_func_start sub_81B70F0 -sub_81B70F0: @ 81B70F0 - push {lr} - sub sp, 0xC - movs r0, 0x7F - str r0, [sp] - ldr r0, =sub_81B711C - str r0, [sp, 0x4] - ldr r0, =gUnknown_0203CEC8 - ldr r0, [r0] - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_81B0038 - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B70F0 - - thumb_func_start sub_81B711C -sub_81B711C: @ 81B711C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081B714E - bl sub_81C1B94 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - beq _081B7148 - adds r0, r4, 0 - bl sub_81B7154 - b _081B714E - .pool -_081B7148: - adds r0, r5, 0 - bl sub_81B7230 -_081B714E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81B711C - - thumb_func_start sub_81B7154 -sub_81B7154: @ 81B7154 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldr r0, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - adds r5, r1, 0 - muls r5, r0 - ldr r0, =gPlayerParty - adds r5, r0 - bl sub_81C1B94 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r1, 0xD - adds r0, r5, 0 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r1, =gStringVar1 - adds r0, r5, 0 - bl GetMonNickname - ldr r0, =gStringVar2 - movs r1, 0xD - muls r1, r4 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy - ldr r0, =gUnknown_085E9BB8 - bl sub_81B6D74 - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B71D4 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B7154 - - thumb_func_start sub_81B71D4 -sub_81B71D4: @ 81B71D4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - bl sub_81B1BD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B7220 - ldr r5, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r5, r1] - movs r0, 0x64 - adds r4, r1, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - bl sub_81C1B94 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_806B9A8 - ldrh r5, [r5, 0xE] - bl sub_81C1B94 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80691F4 - adds r0, r6, 0 - bl sub_81B6EB4 -_081B7220: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B71D4 - - thumb_func_start sub_81B7230 -sub_81B7230: @ 81B7230 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, =gStringVar2 - ldr r1, =gUnknown_0203CEC8 - movs r3, 0xE - ldrsh r2, [r1, r3] - movs r1, 0xD - muls r1, r2 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9B5D - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81B1B5C - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B7294 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B7230 - - thumb_func_start sub_81B7294 -sub_81B7294: @ 81B7294 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81B1BD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B72B8 - bl sub_81B334C - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B72C8 - str r0, [r1] -_081B72B8: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B7294 - - thumb_func_start sub_81B72C8 -sub_81B72C8: @ 81B72C8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r7, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r7, r1] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - bl sub_8198C58 - lsls r0, 24 - asrs r5, r0, 24 - cmp r5, 0 - beq _081B7306 - cmp r5, 0 - bgt _081B7300 - movs r0, 0x1 - negs r0, r0 - cmp r5, r0 - beq _081B738C - b _081B73C2 - .pool -_081B7300: - cmp r5, 0x1 - beq _081B7392 - b _081B73C2 -_081B7306: - ldr r1, =gStringVar1 - adds r0, r4, 0 - bl GetMonNickname - ldr r0, =gStringVar2 - movs r1, 0xE - ldrsh r2, [r7, r1] - movs r1, 0xD - muls r1, r2 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9B76 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81B1B5C - movs r3, 0x10 - ldrsh r0, [r7, r3] - cmp r0, 0x1 - bne _081B7368 - ldr r0, =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B73E4 - str r0, [r1] - b _081B73C2 - .pool -_081B7368: - cmp r0, 0x2 - bne _081B7370 - ldr r0, =gUnknown_020375F0 - strh r5, [r0] -_081B7370: - ldr r0, =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B6794 - str r0, [r1] - b _081B73C2 - .pool -_081B738C: - movs r0, 0x5 - bl audio_play -_081B7392: - ldr r1, =gStringVar1 - adds r0, r4, 0 - bl GetMonNickname - ldr r0, =gStringVar2 - ldr r1, =gUnknown_0203CEC8 - movs r3, 0xE - ldrsh r2, [r1, r3] - movs r1, 0xD - muls r1, r2 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy - ldr r0, =gUnknown_085E9AE9 - bl sub_81B6D74 - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B6FF4 - str r1, [r0] -_081B73C2: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B72C8 - - thumb_func_start sub_81B73E4 -sub_81B73E4: @ 81B73E4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81B1BD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B73FC - adds r0, r4, 0 - bl sub_81B77AC -_081B73FC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81B73E4 - - thumb_func_start dp05_rare_candy -dp05_rare_candy: @ 81B7404 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r10, r1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, =gUnknown_0203CEC8 - mov r9, r0 - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r5, r1, r0 - ldr r0, =gUnknown_0203CEC4 - ldr r6, [r0] - movs r1, 0x86 - lsls r1, 2 - adds r4, r6, r1 - ldr r2, =gUnknown_0203CE7C - mov r8, r2 - adds r0, r5, 0 - movs r1, 0x38 - bl GetMonData - cmp r0, 0x64 - beq _081B7478 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_81B79A0 - mov r1, r9 - ldrb r0, [r1, 0x9] - mov r2, r8 - ldrh r1, [r2] - movs r2, 0 - bl ExecuteTableBasedItemEffect__ - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x89 - lsls r0, 2 - adds r1, r6, r0 - adds r0, r5, 0 - bl sub_81B79A0 - b _081B747A - .pool -_081B7478: - movs r4, 0x1 -_081B747A: - movs r0, 0x5 - bl audio_play - cmp r4, 0 - beq _081B74B4 - ldr r1, =gUnknown_0203CEE8 - movs r0, 0 - strb r0, [r1] - ldr r0, =gUnknown_085E96F6 - movs r1, 0x1 - bl sub_81B1B5C - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - mov r1, r10 - b _081B7516 - .pool -_081B74B4: - ldr r1, =gUnknown_0203CEE8 - movs r0, 0x1 - strb r0, [r1] - movs r0, 0 - bl pause_music_for_sound_maybe - ldr r0, =gUnknown_0203CEC8 - ldrb r0, [r0, 0x9] - adds r1, r5, 0 - bl sub_81B754C - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - movs r1, 0x1 - bl remove_item - ldr r1, =gStringVar1 - adds r0, r5, 0 - bl GetMonNickname - ldr r4, =gStringVar2 - adds r0, r5, 0 - movs r1, 0x38 - bl GetMonData - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9D0A - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81B1B5C - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B75D4 -_081B7516: - str r1, [r0] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end dp05_rare_candy - - thumb_func_start sub_81B754C -sub_81B754C: @ 81B754C - push {r4-r7,lr} - adds r5, r1, 0 - lsls r0, 24 - lsrs r0, 24 - adds r7, r0, 0 - ldr r6, =gUnknown_0203CEDC - lsls r4, r7, 4 - ldr r1, [r6] - adds r1, r4 - adds r0, r5, 0 - bl party_menu_get_status_condition_and_update_object - ldr r2, =gUnknown_02020630 - ldr r0, [r6] - adds r3, r4, r0 - ldrb r1, [r3, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _081B7588 - adds r0, r5, 0 - adds r1, r3, 0 - movs r2, 0x1 - bl sub_81B2AC8 -_081B7588: - ldr r1, [r6] - adds r1, r4 - adds r0, r5, 0 - movs r2, 0x1 - bl sub_81B2CD4 - ldr r1, [r6] - adds r1, r4 - adds r0, r5, 0 - movs r2, 0x1 - bl sub_81B2D74 - ldr r1, [r6] - adds r1, r4 - adds r0, r5, 0 - bl sub_81B2E28 - ldr r0, [r6] - adds r0, r4, r0 - ldrb r0, [r0, 0x9] - adds r1, r5, 0 - bl sub_81B5B38 - adds r0, r7, 0 - movs r1, 0x1 - bl sub_81B0FCC - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B754C - - thumb_func_start sub_81B75D4 -sub_81B75D4: @ 81B75D4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - bl ducking_tick - lsls r0, 24 - cmp r0, 0 - beq _081B7620 - bl sub_81B1BD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B7620 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081B7606 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081B7620 -_081B7606: - movs r0, 0x5 - bl audio_play - adds r0, r4, 0 - bl sub_81B767C - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B7634 - str r0, [r1] -_081B7620: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B75D4 - - thumb_func_start sub_81B7634 -sub_81B7634: @ 81B7634 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081B764E - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081B7668 -_081B764E: - movs r0, 0x5 - bl audio_play - adds r0, r4, 0 - bl sub_81B76C8 - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B7704 - str r0, [r1] -_081B7668: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B7634 - - thumb_func_start sub_81B767C -sub_81B767C: @ 81B767C - push {r4,r5,lr} - sub sp, 0x8 - ldr r0, =gUnknown_0203CEC4 - ldr r5, [r0] - movs r0, 0x86 - lsls r0, 2 - adds r4, r5, r0 - bl sub_81B3364 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x18] - ldrh r0, [r4, 0x18] - movs r1, 0x89 - lsls r1, 2 - adds r2, r5, r1 - movs r1, 0x2 - str r1, [sp] - movs r1, 0x3 - str r1, [sp, 0x4] - adds r1, r4, 0 - movs r3, 0x1 - bl sub_81D3640 - ldrb r0, [r4, 0x18] - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B767C - - thumb_func_start sub_81B76C8 -sub_81B76C8: @ 81B76C8 - push {r4,lr} - sub sp, 0x4 - ldr r0, =gUnknown_0203CEC4 - ldr r1, [r0] - movs r0, 0x86 - lsls r0, 2 - adds r4, r1, r0 - ldrh r0, [r4, 0x18] - movs r2, 0x89 - lsls r2, 2 - adds r1, r2 - movs r2, 0x3 - str r2, [sp] - movs r2, 0x1 - movs r3, 0x2 - bl sub_81D3784 - ldrb r0, [r4, 0x18] - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B76C8 - - thumb_func_start sub_81B7704 -sub_81B7704: @ 81B7704 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0 - bl ducking_tick - lsls r0, 24 - cmp r0, 0 - beq _081B77A6 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r6, 0x1 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - bne _081B772C - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081B77A6 -_081B772C: - bl sub_81B3394 - ldr r4, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r4, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1 - bl sub_8069318 - lsls r0, 16 - lsrs r1, r0, 16 - strh r6, [r4, 0x10] - ldr r0, =0x0000fffe - cmp r1, r0 - beq _081B7788 - cmp r1, r0 - bgt _081B776C - cmp r1, 0 - beq _081B7778 - b _081B77A0 - .pool -_081B776C: - ldr r0, =0x0000ffff - cmp r1, r0 - beq _081B7780 - b _081B77A0 - .pool -_081B7778: - adds r0, r5, 0 - bl sub_81B7810 - b _081B77A6 -_081B7780: - adds r0, r5, 0 - bl sub_81B787C - b _081B77A6 -_081B7788: - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B77AC - str r0, [r1] - b _081B77A6 - .pool -_081B77A0: - adds r0, r5, 0 - bl sub_81B7910 -_081B77A6: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81B7704 - - thumb_func_start sub_81B77AC -sub_81B77AC: @ 81B77AC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0 - bl sub_8069318 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, =0x0000fffe - cmp r1, r0 - beq _081B780A - cmp r1, r0 - bgt _081B77E8 - cmp r1, 0 - beq _081B77F4 - b _081B7804 - .pool -_081B77E8: - ldr r0, =0x0000ffff - cmp r1, r0 - beq _081B77FC - b _081B7804 - .pool -_081B77F4: - adds r0, r4, 0 - bl sub_81B7810 - b _081B780A -_081B77FC: - adds r0, r4, 0 - bl sub_81B787C - b _081B780A -_081B7804: - adds r0, r4, 0 - bl sub_81B7910 -_081B780A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81B77AC - - thumb_func_start sub_81B7810 -sub_81B7810: @ 81B7810 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r6, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r6, r1] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r7, r1, r0 - adds r0, r7, 0 - movs r1, 0 - movs r2, 0 - bl GetEvolutionTargetSpecies - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _081B7860 - bl sub_81B06F4 - ldr r0, =gUnknown_030061E8 - ldr r1, [r6] - str r1, [r0] - ldrb r3, [r6, 0x9] - adds r0, r7, 0 - adds r1, r4, 0 - movs r2, 0x1 - bl sub_813DA40 - adds r0, r5, 0 - bl DestroyTask - b _081B786E - .pool -_081B7860: - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B6794 - str r0, [r1] -_081B786E: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B7810 - - thumb_func_start sub_81B787C -sub_81B787C: @ 81B787C - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, =gUnknown_0203CEC8 - mov r8, r0 - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gStringVar1 - bl GetMonNickname - ldr r0, =gStringVar2 - ldr r6, =gUnknown_020244E2 - ldrh r2, [r6] - movs r1, 0xD - muls r1, r2 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9AE9 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81B1B5C - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - ldrh r0, [r6] - mov r1, r8 - strh r0, [r1, 0xE] - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B6FF4 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B787C - - thumb_func_start sub_81B7910 -sub_81B7910: @ 81B7910 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r6, r0, 0 - adds r5, r1, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r5, 16 - lsrs r5, 16 - ldr r0, =gUnknown_0203CEC8 - mov r8, r0 - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gStringVar1 - bl GetMonNickname - ldr r0, =gStringVar2 - movs r1, 0xD - muls r1, r5 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9AA5 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81B1B5C - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - mov r0, r8 - strh r5, [r0, 0xE] - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B6F60 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B7910 - - thumb_func_start sub_81B79A0 -sub_81B79A0: @ 81B79A0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r1, 0x3A - bl GetMonData - strh r0, [r5] - adds r0, r4, 0 - movs r1, 0x3B - bl GetMonData - strh r0, [r5, 0x2] - adds r0, r4, 0 - movs r1, 0x3C - bl GetMonData - strh r0, [r5, 0x4] - adds r0, r4, 0 - movs r1, 0x3E - bl GetMonData - strh r0, [r5, 0x8] - adds r0, r4, 0 - movs r1, 0x3F - bl GetMonData - strh r0, [r5, 0xA] - adds r0, r4, 0 - movs r1, 0x3D - bl GetMonData - strh r0, [r5, 0x6] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81B79A0 - - thumb_func_start sub_81B79E8 -sub_81B79E8: @ 81B79E8 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0203CEC4 - ldr r2, [r1] - movs r3, 0x86 - lsls r3, 2 - adds r1, r2, r3 - movs r3, 0 - strh r3, [r1] - ldr r4, =0x0000021a - adds r1, r2, r4 - strh r3, [r1] - ldr r1, =gUnknown_0203CEC8 - ldrb r1, [r1, 0x9] - lsls r1, 24 - asrs r1, 24 - movs r3, 0x87 - lsls r3, 2 - adds r2, r3 - strh r1, [r2] - bl sub_81B7A28 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B79E8 - - thumb_func_start sub_81B7A28 -sub_81B7A28: @ 81B7A28 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - mov r8, r4 - ldr r6, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r6, r1] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _081B7A6E - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - lsls r0, 16 - lsrs r7, r0, 16 - ldrb r0, [r6, 0x9] - ldr r1, =gUnknown_0203CE7C - ldrh r1, [r1] - movs r2, 0 - bl ExecuteTableBasedItemEffect__ - lsls r0, 24 - cmp r0, 0 - beq _081B7A94 -_081B7A6E: - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =task_intro_gamefreak - str r0, [r1] - b _081B7B2A - .pool -_081B7A94: - movs r0, 0x1 - bl audio_play - ldr r4, =gUnknown_0203CEDC - movs r0, 0x9 - ldrsb r0, [r6, r0] - lsls r0, 4 - ldr r1, [r4] - adds r1, r0 - adds r0, r5, 0 - bl party_menu_get_status_condition_and_update_object - ldr r2, =gUnknown_02020630 - movs r0, 0x9 - ldrsb r0, [r6, r0] - ldr r1, [r4] - lsls r0, 4 - adds r3, r0, r1 - ldrb r1, [r3, 0xC] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _081B7AD6 - adds r0, r5, 0 - adds r1, r3, 0 - movs r2, 0x1 - bl sub_81B2AC8 -_081B7AD6: - ldr r4, =gUnknown_0203CEC4 - ldr r0, [r4] - movs r1, 0x87 - lsls r1, 2 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0 - bl sub_81B0FCC - ldrb r0, [r6, 0x9] - movs r1, 0x1 - bl sub_81B0FCC - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - adds r3, r0, 0 - subs r3, r7 - lsls r3, 16 - asrs r3, 16 - ldrb r1, [r6, 0x9] - ldr r0, =sub_81B7C10 - str r0, [sp] - mov r0, r8 - movs r2, 0x1 - bl sub_81B1F18 - mov r0, r8 - movs r1, 0 - adds r2, r7, 0 - bl sub_81B1FA8 - ldr r0, [r4] - movs r2, 0x86 - lsls r2, 2 - adds r1, r0, r2 - movs r2, 0x1 - strh r2, [r1] - ldr r1, =0x0000021a - adds r0, r1 - strh r2, [r0] -_081B7B2A: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B7A28 - - thumb_func_start task_intro_gamefreak -task_intro_gamefreak: @ 81B7B4C - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81B1BD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B7C0A - ldr r5, =gUnknown_0203CEC4 - ldr r2, [r5] - movs r0, 0x86 - lsls r0, 2 - adds r1, r2, r0 - movs r3, 0 - ldrsh r0, [r1, r3] - ldr r3, =gUnknown_0203CEC8 - cmp r0, 0x1 - bne _081B7B82 - movs r0, 0 - strh r0, [r1] - movs r1, 0x9 - ldrsb r1, [r3, r1] - movs r6, 0x87 - lsls r6, 2 - adds r0, r2, r6 - strh r1, [r0] -_081B7B82: - ldrb r0, [r3, 0x9] - adds r0, 0x1 - strb r0, [r3, 0x9] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x6 - bne _081B7C04 - ldr r0, [r5] - ldr r1, =0x0000021a - adds r0, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - cmp r1, 0 - bne _081B7BC8 - ldr r0, =gUnknown_0203CEE8 - strb r1, [r0] - ldr r0, =gUnknown_085E96F6 - movs r1, 0x1 - bl sub_81B1B5C - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - b _081B7BD8 - .pool -_081B7BC8: - ldr r1, =gUnknown_0203CEE8 - movs r0, 0x1 - strb r0, [r1] - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - movs r1, 0x1 - bl remove_item -_081B7BD8: - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B6794 - str r1, [r0] - ldr r1, =gUnknown_0203CEC8 - movs r0, 0 - strb r0, [r1, 0x9] - b _081B7C0A - .pool -_081B7C04: - adds r0, r4, 0 - bl sub_81B7A28 -_081B7C0A: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end task_intro_gamefreak - - thumb_func_start sub_81B7C10 -sub_81B7C10: @ 81B7C10 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gStringVar1 - bl GetMonNickname - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E9C17 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0 - bl sub_81B1B5C - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, =task_intro_gamefreak - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B7C10 - - thumb_func_start sub_81B7C74 -sub_81B7C74: @ 81B7C74 - push {r4-r6,lr} - adds r6, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x5 - bl audio_play - ldr r2, =gUnknown_030061E8 - ldr r1, =gUnknown_0203CEC8 - ldr r0, [r1] - str r0, [r2] - ldrb r0, [r1, 0x9] - ldr r4, =gUnknown_0203CE7C - ldrh r1, [r4] - movs r2, 0 - bl ExecuteTableBasedItemEffect__ - lsls r0, 24 - cmp r0, 0 - beq _081B7CD8 - ldr r1, =gUnknown_0203CEE8 - movs r0, 0 - strb r0, [r1] - ldr r0, =gUnknown_085E96F6 - movs r1, 0x1 - bl sub_81B1B5C - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - str r6, [r0] - b _081B7CE4 - .pool -_081B7CD8: - ldrh r0, [r4] - movs r1, 0x1 - bl remove_item - bl sub_81B06F4 -_081B7CE4: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81B7C74 - - thumb_func_start GetItemEffectType -@ u8 GetItemEffectType(u16 itemId) -GetItemEffectType: @ 81B7CEC - push {r4,r5,lr} - lsls r0, 16 - lsrs r1, r0, 16 - adds r2, r1, 0 - subs r2, 0xD - lsls r0, r2, 16 - lsrs r0, 16 - cmp r0, 0xA5 - bls _081B7D00 - b _081B7E40 -_081B7D00: - cmp r1, 0xAF - bne _081B7D18 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003214 - adds r4, r0, r1 - b _081B7D20 - .pool -_081B7D18: - ldr r1, =gItemEffectInfoPointers - lsls r0, r2, 2 - adds r0, r1 - ldr r4, [r0] -_081B7D20: - ldrb r1, [r4] - movs r5, 0x3F - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _081B7D42 - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _081B7D42 - ldrb r0, [r4, 0x2] - cmp r0, 0 - bne _081B7D42 - ldrb r3, [r4, 0x3] - movs r0, 0x80 - ands r0, r3 - cmp r0, 0 - beq _081B7D4C -_081B7D42: - movs r0, 0 - b _081B7E46 - .pool -_081B7D4C: - movs r2, 0x40 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _081B7D5A - movs r0, 0xA - b _081B7E46 -_081B7D5A: - adds r0, r2, 0 - ands r0, r3 - cmp r0, 0 - beq _081B7D66 - movs r0, 0x1 - b _081B7E46 -_081B7D66: - adds r2, r5, 0 - ands r2, r3 - cmp r2, 0 - bne _081B7D74 - lsrs r0, r1, 7 - cmp r0, 0 - beq _081B7DB6 -_081B7D74: - cmp r2, 0x20 - bne _081B7D7C - movs r0, 0x4 - b _081B7E46 -_081B7D7C: - cmp r2, 0x10 - bne _081B7D84 - movs r0, 0x3 - b _081B7E46 -_081B7D84: - cmp r2, 0x8 - bne _081B7D8C - movs r0, 0x5 - b _081B7E46 -_081B7D8C: - cmp r2, 0x4 - bne _081B7D94 - movs r0, 0x6 - b _081B7E46 -_081B7D94: - cmp r2, 0x2 - bne _081B7D9C - movs r0, 0x7 - b _081B7E46 -_081B7D9C: - cmp r2, 0x1 - bne _081B7DA4 - movs r0, 0x8 - b _081B7E46 -_081B7DA4: - lsrs r0, r1, 7 - cmp r0, 0 - beq _081B7DB2 - cmp r2, 0 - bne _081B7DB2 - movs r0, 0x9 - b _081B7E46 -_081B7DB2: - movs r0, 0xB - b _081B7E46 -_081B7DB6: - ldrb r1, [r4, 0x4] - movs r0, 0x44 - ands r0, r1 - adds r2, r1, 0 - cmp r0, 0 - beq _081B7DC6 - movs r0, 0x2 - b _081B7E46 -_081B7DC6: - movs r5, 0x2 - adds r0, r5, 0 - ands r0, r2 - cmp r0, 0 - beq _081B7DD4 - movs r0, 0xC - b _081B7E46 -_081B7DD4: - movs r3, 0x1 - adds r0, r3, 0 - ands r0, r2 - cmp r0, 0 - beq _081B7DE2 - movs r0, 0xD - b _081B7E46 -_081B7DE2: - ldrb r1, [r4, 0x5] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _081B7DF0 - movs r0, 0xE - b _081B7E46 -_081B7DF0: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _081B7DFC - movs r0, 0xF - b _081B7E46 -_081B7DFC: - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _081B7E08 - movs r0, 0x10 - b _081B7E46 -_081B7E08: - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _081B7E14 - movs r0, 0x11 - b _081B7E46 -_081B7E14: - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _081B7E20 - movs r0, 0x12 - b _081B7E46 -_081B7E20: - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - beq _081B7E2C - movs r0, 0x13 - b _081B7E46 -_081B7E2C: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _081B7E38 - movs r0, 0x14 - b _081B7E46 -_081B7E38: - movs r0, 0x18 - ands r0, r2 - cmp r0, 0 - bne _081B7E44 -_081B7E40: - movs r0, 0x16 - b _081B7E46 -_081B7E44: - movs r0, 0x15 -_081B7E46: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end GetItemEffectType - - thumb_func_start sub_81B7E4C -sub_81B7E4C: @ 81B7E4C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081B7F1C - ldr r7, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r7, r1] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r5, r1, r0 - movs r0, 0xE - adds r0, r7 - mov r8, r0 - ldr r1, =gStringVar1 - adds r0, r5, 0 - bl GetMonNickname - ldr r4, =gUnknown_020375E2 - ldrb r0, [r4] - bl sub_81B2360 - strh r0, [r7, 0xE] - ldr r0, =gStringVar2 - movs r1, 0xE - ldrsh r2, [r7, r1] - movs r1, 0xD - muls r1, r2 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy - movs r0, 0x2 - mov r1, r8 - strh r0, [r1, 0x2] - ldrb r2, [r4] - adds r0, r5, 0 - movs r1, 0 - bl sub_81B22D8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B7EF0 - cmp r0, 0x2 - beq _081B7EF8 - ldrh r1, [r7, 0xE] - adds r0, r5, 0 - bl pokemon_moveset_pad_ - lsls r0, 16 - ldr r1, =0xffff0000 - cmp r0, r1 - beq _081B7F08 - adds r0, r6, 0 - bl sub_81B6EB4 - b _081B7F1C - .pool -_081B7EF0: - ldr r1, =gUnknown_085E9AB4 - b _081B7EFA - .pool -_081B7EF8: - ldr r1, =gUnknown_085E9C00 -_081B7EFA: - adds r0, r6, 0 - bl sub_81B6D98 - b _081B7F1C - .pool -_081B7F08: - ldr r0, =gUnknown_085E9AE9 - bl sub_81B6D74 - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B6FF4 - str r1, [r0] -_081B7F1C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B7E4C - - thumb_func_start CB2_PartyMenuFromStartMenu -CB2_PartyMenuFromStartMenu: @ 81B7F34 - push {lr} - sub sp, 0xC - movs r0, 0 - str r0, [sp] - ldr r0, =sub_81B1370 - str r0, [sp, 0x4] - ldr r0, =sub_8086194 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_81B0038 - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end CB2_PartyMenuFromStartMenu - - thumb_func_start sub_81B7F60 -sub_81B7F60: @ 81B7F60 - push {lr} - sub sp, 0xC - bl InBattlePyramid - lsls r0, 24 - ldr r1, =sub_81C4F84 - cmp r0, 0 - bne _081B7F72 - ldr r1, =c2_815ABFC -_081B7F72: - movs r0, 0x6 - str r0, [sp] - ldr r0, =sub_81B1370 - str r0, [sp, 0x4] - str r1, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0x5 - movs r3, 0 - bl sub_81B0038 - ldr r1, =gUnknown_0203CEC8 - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - strh r0, [r1, 0xC] - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B7F60 - - thumb_func_start sub_81B7FAC -sub_81B7FAC: @ 81B7FAC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - ldr r5, =gUnknown_0203CEFC - ldr r0, =gUnknown_0203CEC8 - mov r9, r0 - ldrb r0, [r0, 0x9] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - ldr r7, =gPlayerParty - adds r0, r7 - movs r1, 0xC - bl GetMonData - strh r0, [r5] - lsls r0, 16 - cmp r0, 0 - bne _081B7FF8 - adds r0, r4, 0 - bl sub_81B8044 - b _081B8030 - .pool -_081B7FF8: - ldrh r0, [r5] - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - beq _081B800C - adds r0, r4, 0 - bl sub_81B83B8 - b _081B8030 -_081B800C: - mov r1, r9 - movs r0, 0x9 - ldrsb r0, [r1, r0] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r7 - ldrh r1, [r5] - movs r2, 0x1 - bl sub_81B1D1C - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B82A0 - str r1, [r0] -_081B8030: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B7FAC - - thumb_func_start sub_81B8044 -sub_81B8044: @ 81B8044 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, =gUnknown_0203CEC8 - ldrh r0, [r5, 0xC] - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - beq _081B807C - ldrh r0, [r5, 0xC] - bl sub_81B83F0 - ldr r0, =gUnknown_0203CEC4 - ldr r1, [r0] - ldr r0, =sub_81B814C - str r0, [r1, 0x4] - adds r0, r4, 0 - bl sub_81B12C0 - b _081B8082 - .pool -_081B807C: - adds r0, r4, 0 - bl sub_81B8088 -_081B8082: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81B8044 - - thumb_func_start sub_81B8088 -sub_81B8088: @ 81B8088 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081B80E4 - ldr r4, =gUnknown_0203CEC8 - ldrh r5, [r4, 0xC] - movs r0, 0x9 - ldrsb r0, [r4, r0] - movs r1, 0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - ldr r6, =gPlayerParty - adds r0, r6 - adds r1, r5, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_81B1C84 - movs r0, 0x9 - ldrsb r0, [r4, r0] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - adds r1, r5, 0 - bl sub_81B1DB8 - adds r0, r5, 0 - bl sub_81B83F0 - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B8104 - str r1, [r0] -_081B80E4: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B8088 - - thumb_func_start sub_81B8104 -sub_81B8104: @ 81B8104 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gUnknown_0203CEC8 - ldrb r4, [r0, 0x9] - bl sub_81B1BD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B8138 - lsls r2, r4, 24 - asrs r2, 24 - movs r0, 0x64 - muls r0, r2 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_0203CEDC - lsls r2, 4 - ldr r1, [r1] - adds r1, r2 - bl sub_81B5C94 - adds r0, r5, 0 - bl sub_81B12C0 -_081B8138: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B8104 - - thumb_func_start sub_81B814C -sub_81B814C: @ 81B814C - push {r4-r6,lr} - ldr r4, =gUnknown_0203CEC8 - movs r0, 0x9 - ldrsb r0, [r4, r0] - movs r6, 0x64 - muls r0, r6 - ldr r5, =gPlayerParty - adds r0, r5 - ldrh r1, [r4, 0xC] - bl sub_81B1DB8 - movs r0, 0x9 - ldrsb r0, [r4, r0] - muls r0, r6 - adds r0, r5 - movs r1, 0x40 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSaveBlock1Ptr - lsls r2, r0, 3 - adds r2, r0 - lsls r2, 2 - ldr r0, =0x00002be0 - adds r2, r0 - ldr r1, [r1] - adds r1, r2 - ldr r2, =sub_81B81A8 - movs r0, 0x4 - movs r3, 0x3 - bl sub_811A20C - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B814C - - thumb_func_start sub_81B81A8 -sub_81B81A8: @ 81B81A8 - push {r4-r7,lr} - sub sp, 0xC - ldr r6, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r6, r1] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r7, r0, 16 - ldr r0, =gUnknown_020375F0 - ldrh r0, [r0] - cmp r0, 0 - bne _081B8208 - adds r0, r5, 0 - bl sub_80D4680 - ldr r4, =gUnknown_0203CEFC - adds r0, r5, 0 - movs r1, 0xC - adds r2, r4, 0 - bl pokemon_setattr - ldrh r0, [r4] - movs r1, 0x1 - bl remove_item - adds r0, r7, 0 - bl sub_81B841C - ldr r0, [r6] - bl SetMainCallback2 - b _081B8224 - .pool -_081B8208: - ldrb r0, [r6, 0x8] - lsls r0, 28 - lsrs r0, 28 - ldrb r2, [r6, 0xB] - movs r1, 0x7F - str r1, [sp] - ldr r1, =sub_81B8230 - str r1, [sp, 0x4] - ldr r1, [r6] - str r1, [sp, 0x8] - movs r1, 0xFF - movs r3, 0x1 - bl sub_81B0038 -_081B8224: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B81A8 - - thumb_func_start sub_81B8230 -sub_81B8230: @ 81B8230 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081B828A - ldr r1, =gUnknown_0203CEFC - ldrh r0, [r1] - cmp r0, 0 - beq _081B8264 - ldr r0, =gUnknown_0203CEC8 - ldrh r0, [r0, 0xC] - ldrh r1, [r1] - movs r2, 0 - bl sub_81B1D68 - b _081B827C - .pool -_081B8264: - ldr r2, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r2, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - ldrh r1, [r2, 0xC] - movs r2, 0 - movs r3, 0x1 - bl sub_81B1C84 -_081B827C: - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B8104 - str r0, [r1] -_081B828A: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B8230 - - thumb_func_start sub_81B82A0 -sub_81B82A0: @ 81B82A0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81B1BD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B82C4 - bl sub_81B334C - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B82D4 - str r0, [r1] -_081B82C4: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B82A0 - - thumb_func_start sub_81B82D4 -sub_81B82D4: @ 81B82D4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_8198C58 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _081B82FA - cmp r1, 0 - bgt _081B82F4 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _081B8394 - b _081B83A8 -_081B82F4: - cmp r1, 0x1 - beq _081B839A - b _081B83A8 -_081B82FA: - ldr r7, =gUnknown_0203CEC8 - ldrh r4, [r7, 0xC] - adds r0, r4, 0 - bl sub_81B83F0 - ldr r6, =gUnknown_0203CEFC - ldrh r0, [r6] - movs r1, 0x1 - bl bag_add_item - lsls r0, 24 - cmp r0, 0 - bne _081B8338 - adds r0, r4, 0 - bl sub_81B841C - ldrh r0, [r6] - bl pokemon_item_not_removed - ldr r0, =gStringVar4 - movs r1, 0 - bl sub_81B1B5C - b _081B8378 - .pool -_081B8338: - adds r0, r4, 0 - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - beq _081B835C - ldr r0, =gUnknown_0203CEC4 - ldr r1, [r0] - ldr r0, =sub_81B814C - str r0, [r1, 0x4] - adds r0, r5, 0 - bl sub_81B12C0 - b _081B83A8 - .pool -_081B835C: - movs r1, 0x9 - ldrsb r1, [r7, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - adds r1, r4, 0 - bl sub_81B1DB8 - ldrh r1, [r6] - adds r0, r4, 0 - movs r2, 0x1 - bl sub_81B1D68 -_081B8378: - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B8104 - str r1, [r0] - b _081B83A8 - .pool -_081B8394: - movs r0, 0x5 - bl audio_play -_081B839A: - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B8104 - str r0, [r1] -_081B83A8: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B82D4 - - thumb_func_start sub_81B83B8 -sub_81B83B8: @ 81B83B8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_085E98EC - movs r1, 0x1 - bl sub_81B1B5C - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81B8104 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B83B8 - - thumb_func_start sub_81B83F0 -sub_81B83F0: @ 81B83F0 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, =gUnknown_0203CEC8 - ldrb r0, [r0, 0xB] - cmp r0, 0x6 - bne _081B8410 - lsls r0, r1, 24 - lsrs r0, 24 - movs r1, 0x1 - bl sub_80D6E48 - b _081B8418 - .pool -_081B8410: - adds r0, r1, 0 - movs r1, 0x1 - bl remove_item -_081B8418: - pop {r0} - bx r0 - thumb_func_end sub_81B83F0 - - thumb_func_start sub_81B841C -sub_81B841C: @ 81B841C - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, =gUnknown_0203CEC8 - ldrb r0, [r0, 0xB] - cmp r0, 0x5 - beq _081B8438 - adds r0, r1, 0 - movs r1, 0x1 - bl sub_80D6D70 - b _081B8440 - .pool -_081B8438: - adds r0, r1, 0 - movs r1, 0x1 - bl bag_add_item -_081B8440: - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_81B841C - - thumb_func_start sub_81B8448 -sub_81B8448: @ 81B8448 - push {lr} - sub sp, 0xC - movs r0, 0x6 - str r0, [sp] - ldr r0, =sub_81B1370 - str r0, [sp, 0x4] - ldr r0, =sub_816BB28 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0x7 - movs r3, 0 - bl sub_81B0038 - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B8448 - - thumb_func_start sub_81B8474 -sub_81B8474: @ 81B8474 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, =gUnknown_0203CEC8 - movs r1, 0x9 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r5, r1, r0 - ldr r1, =gUnknown_0203CEE8 - movs r0, 0 - strb r0, [r1] - ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_0203BCB8 - ldrh r1, [r0] - adds r1, 0x6 - ldrh r0, [r0, 0x2] - adds r1, r0 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x00002be0 - adds r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - adds r0, r5, 0 - movs r1, 0xC - bl GetMonData - cmp r0, 0 - beq _081B84DC - ldr r0, =gUnknown_085E9A08 - movs r1, 0x1 - bl sub_81B1B5C - b _081B84F2 - .pool -_081B84DC: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80D460C - adds r0, r4, 0 - bl sub_80D439C - ldr r0, =gUnknown_085E9A40 - movs r1, 0x1 - bl sub_81B1B5C -_081B84F2: - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B8104 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B8474 - - thumb_func_start sub_81B8518 -sub_81B8518: @ 81B8518 - push {lr} - sub sp, 0xC - bl sub_81B8558 - movs r0, 0 - str r0, [sp] - ldr r0, =sub_81B1370 - str r0, [sp, 0x4] - ldr r0, =gMain - ldr r0, [r0, 0x8] - str r0, [sp, 0x8] - movs r0, 0x4 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_81B0038 - ldr r1, =gUnknown_0203CEC8 - ldr r0, =sub_81B879C - str r0, [r1, 0x4] - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B8518 - - thumb_func_start sub_81B8558 -sub_81B8558: @ 81B8558 - push {lr} - ldr r0, =gUnknown_0203CEF8 - movs r1, 0 - movs r2, 0x4 - bl memset - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B8558 - - thumb_func_start sub_81B856C -sub_81B856C: @ 81B856C - push {r4,lr} - lsls r0, 24 - asrs r4, r0, 24 - movs r0, 0x64 - muls r0, r4 - ldr r1, =gPlayerParty - adds r0, r1 - bl sub_81B85AC - lsls r0, 24 - cmp r0, 0 - bne _081B858C - movs r0, 0x2 - b _081B85A4 - .pool -_081B858C: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r0, 24 - bl sub_81B8770 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B85A2 - movs r0, 0 - b _081B85A4 -_081B85A2: - movs r0, 0x1 -_081B85A4: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81B856C - - thumb_func_start sub_81B85AC -sub_81B85AC: @ 81B85AC - push {r4-r6,lr} - adds r5, r0, 0 - movs r6, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _081B8608 - adds r0, r5, 0 - movs r1, 0x38 - bl GetMonData - adds r4, r0, 0 - bl sub_81B8888 - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bhi _081B8608 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0, 0x4] - ldr r0, =0x0000191a - cmp r1, r0 - bne _081B85EA - adds r0, r5, 0 - movs r1, 0xC - bl GetMonData - cmp r0, 0 - bne _081B8608 -_081B85EA: - ldr r0, =0x000040cf - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x8 - beq _081B864A - cmp r0, 0x9 - bne _081B8618 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _081B864A -_081B8608: - movs r0, 0 - b _081B864C - .pool -_081B8618: - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - ldr r3, =gUnknown_08611C9A - lsls r1, r6, 1 - adds r0, r1, r3 - ldrh r0, [r0] - ldr r2, =0x0000ffff - cmp r0, r2 - beq _081B864A -_081B8632: - adds r0, r1, r3 - ldrh r0, [r0] - cmp r0, r4 - beq _081B8608 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, r6, 1 - adds r0, r1, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _081B8632 -_081B864A: - movs r0, 0x1 -_081B864C: - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81B85AC - - thumb_func_start sub_81B865C -sub_81B865C: @ 81B865C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - bl sub_81B885C - lsls r0, 24 - lsrs r2, r0, 24 - adds r1, r2, 0 - ldr r3, =gUnknown_0203CEF8 - adds r0, r2, r3 - subs r0, 0x1 - ldrb r0, [r0] - cmp r0, 0 - bne _081B869C - cmp r2, 0x1 - bne _081B8688 - movs r0, 0xE - b _081B8758 - .pool -_081B8688: - ldr r0, =gStringVar1 - movs r2, 0 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - movs r0, 0x11 - b _081B8758 - .pool -_081B869C: - ldr r0, =0x000040cf - bl VarGet - lsls r0, 24 - movs r1, 0xF8 - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bhi _081B86C0 - b _081B8756 - .pool -_081B86B8: - movs r0, 0x12 - b _081B8758 -_081B86BC: - movs r0, 0x13 - b _081B8758 -_081B86C0: - bl sub_81B8830 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r5, 0 - b _081B8750 -_081B86CE: - ldr r3, =gUnknown_0203CEF8 - adds r4, r3, r5 - ldrb r0, [r4] - movs r1, 0x64 - muls r0, r1 - subs r0, 0x64 - ldr r3, =gPlayerParty - adds r0, r3, r0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - ldrb r0, [r4] - movs r1, 0x64 - muls r0, r1 - subs r0, 0x64 - ldr r3, =gPlayerParty - adds r0, r3, r0 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r6, r0, 16 - adds r1, r5, 0x1 - lsls r0, r1, 24 - lsrs r4, r0, 24 - mov r9, r1 - cmp r4, r8 - bcs _081B8748 - movs r7, 0x64 -_081B870E: - ldr r0, =gUnknown_0203CEF8 - adds r5, r0, r4 - ldrb r0, [r5] - muls r0, r7 - subs r0, 0x64 - ldr r1, =gPlayerParty - adds r0, r1, r0 - movs r1, 0xB - bl GetMonData - cmp r10, r0 - beq _081B86B8 - cmp r6, 0 - beq _081B873E - ldrb r0, [r5] - muls r0, r7 - subs r0, 0x64 - ldr r3, =gPlayerParty - adds r0, r3, r0 - movs r1, 0xC - bl GetMonData - cmp r6, r0 - beq _081B86BC -_081B873E: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r8 - bcc _081B870E -_081B8748: - mov r1, r9 - lsls r0, r1, 24 - lsrs r5, r0, 24 - mov r0, r8 -_081B8750: - subs r0, 0x1 - cmp r5, r0 - blt _081B86CE -_081B8756: - movs r0, 0xFF -_081B8758: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81B865C - - thumb_func_start sub_81B8770 -sub_81B8770: @ 81B8770 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r3, =gUnknown_0203CEF8 -_081B877A: - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _081B878C - movs r0, 0x1 - b _081B8798 - .pool -_081B878C: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bls _081B877A - movs r0, 0 -_081B8798: - pop {r1} - bx r1 - thumb_func_end sub_81B8770 - - thumb_func_start sub_81B879C -sub_81B879C: @ 81B879C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_81B865C - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xFF - beq _081B87D4 - movs r0, 0x20 - bl audio_play - adds r0, r4, 0 - bl display_pokemon_menu_message - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B87E8 - str r0, [r1] - b _081B87E0 - .pool -_081B87D4: - movs r0, 0x5 - bl audio_play - adds r0, r5, 0 - bl sub_81B12C0 -_081B87E0: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81B879C - - thumb_func_start sub_81B87E8 -sub_81B87E8: @ 81B87E8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081B8802 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081B881C -_081B8802: - movs r0, 0x5 - bl audio_play - movs r0, 0 - bl display_pokemon_menu_message - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B1370 - str r0, [r1] -_081B881C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B87E8 - - thumb_func_start sub_81B8830 -sub_81B8830: @ 81B8830 - push {lr} - ldr r0, =0x000040cf - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x8 - beq _081B884C - cmp r0, 0x9 - bne _081B8850 - movs r0, 0x3 - b _081B8854 - .pool -_081B884C: - movs r0, 0x2 - b _081B8854 -_081B8850: - ldr r0, =gUnknown_020375E2 - ldrb r0, [r0] -_081B8854: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81B8830 - - thumb_func_start sub_81B885C -sub_81B885C: @ 81B885C - push {lr} - ldr r0, =0x000040cf - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x8 - beq _081B8878 - cmp r0, 0x9 - bne _081B887C - movs r0, 0x1 - b _081B8880 - .pool -_081B8878: - movs r0, 0x2 - b _081B8880 -_081B887C: - ldr r0, =gUnknown_020375E2 - ldrb r0, [r0] -_081B8880: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81B885C - - thumb_func_start sub_81B8888 -sub_81B8888: @ 81B8888 - push {lr} - ldr r0, =0x000040cf - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x8 - beq _081B88A4 - cmp r0, 0x9 - bne _081B88A8 -_081B889C: - movs r0, 0x64 - b _081B88B2 - .pool -_081B88A4: - movs r0, 0x1E - b _081B88B2 -_081B88A8: - ldr r0, =gUnknown_020375E0 - ldrh r0, [r0] - cmp r0, 0 - bne _081B889C - movs r0, 0x32 -_081B88B2: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81B8888 - - thumb_func_start sub_81B88BC -sub_81B88BC: @ 81B88BC - push {lr} - ldr r0, =0x000040cf - bl VarGet - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xF8 - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0x1 - bhi _081B88E0 - ldr r0, =gUnknown_085EA126 - b _081B88FA - .pool -_081B88E0: - cmp r1, 0x1 - bne _081B88F8 - ldr r0, =gUnknown_020375E2 - ldrh r0, [r0] - cmp r0, 0x2 - bne _081B88F8 - ldr r0, =gUnknown_085EA139 - b _081B88FA - .pool -_081B88F8: - ldr r0, =gUnknown_085EA155 -_081B88FA: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81B88BC - - thumb_func_start sub_81B8904 -sub_81B8904: @ 81B8904 - push {lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - movs r2, 0 - str r2, [sp] - ldr r2, =sub_81B1370 - str r2, [sp, 0x4] - str r1, [sp, 0x8] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_81B0038 - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B8904 - - thumb_func_start sub_81B892C -sub_81B892C: @ 81B892C - push {lr} - sub sp, 0xC - movs r0, 0x4 - str r0, [sp] - ldr r0, =sub_81B1370 - str r0, [sp, 0x4] - ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0xC - movs r3, 0 - bl sub_81B0038 - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B892C - - thumb_func_start sub_81B8958 -sub_81B8958: @ 81B8958 - push {lr} - sub sp, 0xC - movs r0, 0x1 - str r0, [sp] - ldr r0, =sub_81B1370 - str r0, [sp, 0x4] - ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music - str r0, [sp, 0x8] - movs r0, 0xB - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl sub_81B0038 - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B8958 - - thumb_func_start sub_81B8984 -sub_81B8984: @ 81B8984 - push {lr} - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - bne _081B8994 - movs r0, 0 - b _081B89A6 -_081B8994: - bl sub_81B1250 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081B89A4 - movs r0, 0x1 - b _081B89A6 -_081B89A4: - movs r0, 0x2 -_081B89A6: - pop {r1} - bx r1 - thumb_func_end sub_81B8984 - - thumb_func_start sub_81B89AC -sub_81B89AC: @ 81B89AC - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_81B8984 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - str r0, [sp] - ldr r0, =sub_81B1370 - str r0, [sp, 0x4] - ldr r0, =sub_8059D40 - str r0, [sp, 0x8] - movs r0, 0x1 - adds r2, r4, 0 - movs r3, 0 - bl sub_81B0038 - bl nullsub_35 - bl pokemon_change_order - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B89AC - - thumb_func_start sub_81B89F0 -sub_81B89F0: @ 81B89F0 - push {lr} - sub sp, 0xC - bl sub_81B8984 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x5 - str r0, [sp] - ldr r0, =sub_81B1370 - str r0, [sp, 0x4] - ldr r0, =c2_815ABFC - str r0, [sp, 0x8] - movs r0, 0x1 - movs r2, 0x3 - movs r3, 0 - bl sub_81B0038 - bl nullsub_35 - bl pokemon_change_order - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B89F0 - - thumb_func_start sub_81B8A2C -sub_81B8A2C: @ 81B8A2C - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_02024550 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _081B8A74 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _081B8A74 - ldr r0, =gUnknown_0203CEC8 - ldrb r0, [r0, 0xB] - cmp r0, 0x1 - bne _081B8A5C - movs r0, 0x3 - b _081B8A76 - .pool -_081B8A5C: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 11 - ands r0, r1 - cmp r0, 0 - bne _081B8A74 - movs r0, 0x2 - b _081B8A76 - .pool -_081B8A74: - movs r0, 0x7 -_081B8A76: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81B8A2C - - thumb_func_start sub_81B8A7C -sub_81B8A7C: @ 81B8A7C - push {r4-r7,lr} - mov r7, r8 - push {r7} - bl brm_get_pokemon_selection - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_81B1250 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081B8AC4 - cmp r5, 0x1 - beq _081B8AA2 - cmp r5, 0x4 - beq _081B8AA2 - cmp r5, 0x5 - bne _081B8AC4 -_081B8AA2: - ldr r4, =gStringVar1 - bl sub_806EBF8 - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E97B2 - b _081B8C42 - .pool -_081B8AC4: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _081B8AF8 - ldr r1, =gStringVar1 - adds r0, r4, 0 - bl GetMonNickname - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E978F - b _081B8C42 - .pool -_081B8AF8: - movs r4, 0 - b _081B8B24 -_081B8AFC: - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _081B8B1E - adds r0, r5, 0 - bl sub_81B8F38 - lsls r0, 24 - ldr r2, =gUnknown_0202406E - lsls r1, r4, 1 - adds r1, r2 - lsrs r0, 24 - ldrh r1, [r1] - cmp r0, r1 - beq _081B8BFC -_081B8B1E: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_081B8B24: - ldr r0, =gUnknown_0202406C - ldrb r0, [r0] - cmp r4, r0 - bcc _081B8AFC - movs r7, 0x64 - adds r0, r5, 0 - muls r0, r7 - ldr r1, =gPlayerParty - mov r8, r1 - adds r6, r0, r1 - adds r0, r6, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - beq _081B8B60 - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E97E5 - b _081B8C42 - .pool -_081B8B60: - adds r0, r5, 0 - bl sub_81B8F38 - ldr r1, =gUnknown_0202449C - ldr r1, [r1] - adds r1, 0x8B - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bne _081B8B94 - ldr r1, =gStringVar1 - adds r0, r6, 0 - bl GetMonNickname - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E976F - b _081B8C42 - .pool -_081B8B94: - ldr r0, =gUnknown_0203CEC8 - ldrb r0, [r0, 0xB] - cmp r0, 0x4 - bne _081B8BA8 - bl sub_806E994 - b _081B8C46 - .pool -_081B8BA8: - cmp r0, 0x2 - beq _081B8C20 - adds r0, r5, 0 - bl sub_81B8F38 - ldr r1, =gUnknown_0203CEE9 - strb r0, [r1] - ldr r1, =gUnknown_0203CEE8 - movs r0, 0x1 - strb r0, [r1] - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_020244B8 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrb r0, [r0] - bl pokemon_order_func - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_81B8FB0 - adds r0, r4, 0 - muls r0, r7 - add r0, r8 - adds r1, r6, 0 - bl sub_81B1288 - movs r0, 0x1 - b _081B8C48 - .pool -_081B8BFC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gStringVar1 - bl GetMonNickname - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9754 - b _081B8C42 - .pool -_081B8C20: - ldr r0, =gUnknown_020244B8 - ldrb r0, [r0] - ldr r1, =gUnknown_0202406E - lsls r0, 1 - adds r0, r1 - ldrb r0, [r0] - bl pokemon_order_func - lsls r0, 24 - lsrs r0, 24 - muls r0, r7 - add r0, r8 - ldr r1, =gStringVar1 - bl GetMonNickname - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085E9738 -_081B8C42: - bl StringExpandPlaceholders -_081B8C46: - movs r0, 0 -_081B8C48: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81B8A7C - - thumb_func_start sub_81B8C68 -sub_81B8C68: @ 81B8C68 - push {r4,lr} - ldr r4, =gUnknown_0203CF00 - bl sub_806D7EC - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_81B8C88 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B8C68 - - thumb_func_start sub_81B8C88 -sub_81B8C88: @ 81B8C88 - push {r4-r6,lr} - sub sp, 0x8 - adds r6, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - bl sub_81B1250 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081B8CBE - cmp r4, 0 - beq _081B8CB0 - movs r0, 0x30 - strb r0, [r6] - movs r0, 0x45 - strb r0, [r6, 0x1] - movs r0, 0x12 - strb r0, [r6, 0x2] - b _081B8D58 -_081B8CB0: - movs r0, 0x3 - strb r0, [r6] - movs r0, 0x12 - strb r0, [r6, 0x1] - movs r0, 0x45 - strb r0, [r6, 0x2] - b _081B8D58 -_081B8CBE: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - bne _081B8CFC - movs r5, 0x1 - movs r0, 0 - bl battle_get_side_with_given_state - mov r2, sp - ldr r1, =gUnknown_0202406E - lsls r0, 24 - lsrs r0, 23 - adds r0, r1 - ldrh r0, [r0] - strb r0, [r2] - movs r4, 0 - mov r1, sp -_081B8CE2: - ldrb r0, [r1] - cmp r4, r0 - beq _081B8CF0 - mov r2, sp - adds r0, r2, r5 - strb r4, [r0] - adds r5, 0x1 -_081B8CF0: - adds r4, 0x1 - cmp r4, 0x5 - ble _081B8CE2 - b _081B8D40 - .pool -_081B8CFC: - movs r5, 0x2 - movs r0, 0 - bl battle_get_side_with_given_state - mov r1, sp - ldr r4, =gUnknown_0202406E - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - ldrh r0, [r0] - strb r0, [r1] - movs r0, 0x2 - bl battle_get_side_with_given_state - mov r1, sp - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - ldrh r0, [r0] - strb r0, [r1, 0x1] - movs r4, 0 -_081B8D26: - ldrb r0, [r1] - cmp r4, r0 - beq _081B8D3A - ldrb r0, [r1, 0x1] - cmp r4, r0 - beq _081B8D3A - mov r2, sp - adds r0, r2, r5 - strb r4, [r0] - adds r5, 0x1 -_081B8D3A: - adds r4, 0x1 - cmp r4, 0x5 - ble _081B8D26 -_081B8D40: - movs r4, 0 - mov r3, sp -_081B8D44: - adds r0, r6, r4 - ldrb r1, [r3] - lsls r1, 4 - ldrb r2, [r3, 0x1] - orrs r1, r2 - strb r1, [r0] - adds r3, 0x2 - adds r4, 0x1 - cmp r4, 0x2 - ble _081B8D44 -_081B8D58: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B8C88 - - thumb_func_start sub_81B8D64 -sub_81B8D64: @ 81B8D64 - push {lr} - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r0, =gUnknown_0202449C - lsls r3, r2, 1 - adds r3, r2 - adds r3, 0x60 - ldr r0, [r0] - adds r0, r3 - bl sub_81B8D88 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B8D64 - - thumb_func_start sub_81B8D88 -sub_81B8D88: @ 81B8D88 - push {r4-r7,lr} - sub sp, 0x8 - adds r5, r0, 0 - adds r0, r2, 0 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r0, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _081B8DB0 - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x2 - b _081B8DBC -_081B8DB0: - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x3 -_081B8DBC: - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r6, r0, 24 - bl sub_81B1250 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081B8DF0 - cmp r7, 0 - beq _081B8DE2 - movs r0, 0x30 - strb r0, [r5] - movs r0, 0x45 - strb r0, [r5, 0x1] - movs r0, 0x12 - strb r0, [r5, 0x2] - b _081B8E72 -_081B8DE2: - movs r0, 0x3 - strb r0, [r5] - movs r0, 0x12 - strb r0, [r5, 0x1] - movs r0, 0x45 - strb r0, [r5, 0x2] - b _081B8E72 -_081B8DF0: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - bne _081B8E28 - movs r3, 0x1 - mov r2, sp - ldr r1, =gUnknown_0202406E - lsls r0, r4, 1 - adds r0, r1 - ldrh r0, [r0] - strb r0, [r2] - movs r4, 0 - mov r1, sp -_081B8E0C: - ldrb r0, [r1] - cmp r4, r0 - beq _081B8E1A - mov r2, sp - adds r0, r2, r3 - strb r4, [r0] - adds r3, 0x1 -_081B8E1A: - adds r4, 0x1 - cmp r4, 0x5 - ble _081B8E0C - b _081B8E5A - .pool -_081B8E28: - movs r3, 0x2 - mov r1, sp - ldr r2, =gUnknown_0202406E - lsls r0, r4, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1] - lsls r0, r6, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1, 0x1] - movs r4, 0 -_081B8E40: - ldrb r0, [r1] - cmp r4, r0 - beq _081B8E54 - ldrb r0, [r1, 0x1] - cmp r4, r0 - beq _081B8E54 - mov r2, sp - adds r0, r2, r3 - strb r4, [r0] - adds r3, 0x1 -_081B8E54: - adds r4, 0x1 - cmp r4, 0x5 - ble _081B8E40 -_081B8E5A: - movs r4, 0 - mov r3, sp -_081B8E5E: - adds r0, r5, r4 - ldrb r1, [r3] - lsls r1, 4 - ldrb r2, [r3, 0x1] - orrs r1, r2 - strb r1, [r0] - adds r3, 0x2 - adds r4, 0x1 - cmp r4, 0x2 - ble _081B8E5E -_081B8E72: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B8D88 - - thumb_func_start sub_81B8E80 -sub_81B8E80: @ 81B8E80 - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - movs r7, 0 - bl sub_81B1250 - lsls r0, 24 - cmp r0, 0 - beq _081B8F2E - ldr r0, =gUnknown_0202449C - lsls r1, r4, 1 - adds r1, r4 - adds r1, 0x60 - ldr r0, [r0] - adds r4, r0, r1 - movs r2, 0 - add r6, sp - mov r12, r6 - movs r6, 0xF - mov r3, sp -_081B8EB2: - adds r1, r4, r2 - ldrb r0, [r1] - lsrs r0, 4 - strb r0, [r3] - adds r3, 0x1 - ldrb r1, [r1] - adds r0, r6, 0 - ands r0, r1 - strb r0, [r3] - adds r3, 0x1 - adds r2, 0x1 - cmp r2, 0x2 - ble _081B8EB2 - mov r0, r12 - ldrb r3, [r0] - movs r2, 0 - mov r0, sp - ldrb r0, [r0] - cmp r0, r5 - bne _081B8EE8 - mov r0, sp - ldrb r7, [r0] - strb r3, [r0] - b _081B8EFC - .pool -_081B8EE8: - adds r2, 0x1 - cmp r2, 0x5 - bgt _081B8EFC - mov r0, sp - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, r5 - bne _081B8EE8 - adds r7, r0, 0 - strb r3, [r1] -_081B8EFC: - cmp r2, 0x6 - beq _081B8F2E - mov r0, r12 - strb r7, [r0] - mov r0, sp - ldrb r0, [r0] - lsls r0, 4 - mov r1, sp - ldrb r1, [r1, 0x1] - orrs r0, r1 - strb r0, [r4] - mov r0, sp - ldrb r0, [r0, 0x2] - lsls r0, 4 - mov r1, sp - ldrb r1, [r1, 0x3] - orrs r0, r1 - strb r0, [r4, 0x1] - mov r0, sp - ldrb r0, [r0, 0x4] - lsls r0, 4 - mov r1, sp - ldrb r1, [r1, 0x5] - orrs r0, r1 - strb r0, [r4, 0x2] -_081B8F2E: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81B8E80 - - thumb_func_start sub_81B8F38 -sub_81B8F38: @ 81B8F38 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0x1 - ands r1, r2 - lsrs r2, r0, 25 - cmp r1, 0 - beq _081B8F58 - ldr r0, =gUnknown_0203CF00 - adds r0, r2, r0 - ldrb r0, [r0] - movs r1, 0xF - ands r1, r0 - b _081B8F60 - .pool -_081B8F58: - ldr r0, =gUnknown_0203CF00 - adds r0, r2, r0 - ldrb r0, [r0] - lsrs r1, r0, 4 -_081B8F60: - adds r0, r1, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81B8F38 - - thumb_func_start sub_81B8F6C -sub_81B8F6C: @ 81B8F6C - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - movs r1, 0x1 - ands r1, r3 - lsrs r3, r0, 25 - cmp r1, 0 - beq _081B8F94 - ldr r0, =gUnknown_0203CF00 - adds r0, r3, r0 - ldrb r2, [r0] - movs r1, 0xF0 - ands r1, r2 - orrs r1, r4 - strb r1, [r0] - b _081B8FA4 - .pool -_081B8F94: - ldr r2, =gUnknown_0203CF00 - adds r2, r3, r2 - ldrb r1, [r2] - movs r0, 0xF - ands r0, r1 - lsls r1, r4, 4 - orrs r0, r1 - strb r0, [r2] -_081B8FA4: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B8F6C - - thumb_func_start sub_81B8FB0 -sub_81B8FB0: @ 81B8FB0 - push {r4-r6,lr} - adds r5, r0, 0 - adds r6, r1, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - adds r0, r5, 0 - bl sub_81B8F38 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - bl sub_81B8F38 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl sub_81B8F6C - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_81B8F6C - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81B8FB0 - - thumb_func_start pokemon_order_func -pokemon_order_func: @ 81B8FEC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r3, 0 - movs r2, 0 - ldr r5, =gUnknown_0203CF00 -_081B8FF8: - adds r0, r3, r5 - ldrb r1, [r0] - lsrs r0, r1, 4 - cmp r0, r4 - beq _081B9010 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - movs r0, 0xF - ands r0, r1 - cmp r0, r4 - bne _081B9018 -_081B9010: - adds r0, r2, 0 - b _081B902A - .pool -_081B9018: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x2 - bls _081B8FF8 - movs r0, 0 -_081B902A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end pokemon_order_func - - thumb_func_start pokemon_change_order -pokemon_change_order: @ 81B9030 - push {r4-r6,lr} - movs r4, 0x96 - lsls r4, 2 - adds r0, r4, 0 - bl Alloc - adds r5, r0, 0 - ldr r1, =gPlayerParty - adds r2, r4, 0 - bl memcpy - movs r4, 0 - movs r6, 0x64 -_081B904A: - adds r0, r4, 0 - bl pokemon_order_func - lsls r0, 24 - lsrs r0, 24 - muls r0, r6 - ldr r1, =gPlayerParty - adds r0, r1 - adds r1, r4, 0 - muls r1, r6 - adds r1, r5 - movs r2, 0x64 - bl memcpy - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _081B904A - adds r0, r5, 0 - bl Free - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end pokemon_change_order - - thumb_func_start sub_81B9080 -sub_81B9080: @ 81B9080 - push {r4-r6,lr} - movs r4, 0x96 - lsls r4, 2 - adds r0, r4, 0 - bl Alloc - adds r5, r0, 0 - ldr r1, =gPlayerParty - adds r2, r4, 0 - bl memcpy - movs r4, 0 - movs r6, 0x64 -_081B909A: - adds r0, r4, 0 - bl sub_81B8F38 - lsls r0, 24 - lsrs r0, 24 - muls r0, r6 - ldr r1, =gPlayerParty - adds r0, r1 - adds r1, r4, 0 - muls r1, r6 - adds r1, r5 - movs r2, 0x64 - bl memcpy - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _081B909A - adds r0, r5, 0 - bl Free - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9080 - - thumb_func_start sub_81B90D0 -sub_81B90D0: @ 81B90D0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0x1 - movs r7, 0x64 - ldr r0, =gPlayerParty - mov r8, r0 -_081B90DE: - adds r0, r6, 0 - bl sub_81B8F38 - lsls r0, 24 - lsrs r0, 24 - muls r0, r7 - mov r1, r8 - adds r5, r0, r1 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _081B912C - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _081B912C - movs r0, 0 - bl sub_81B8F38 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - adds r1, r6, 0 - bl sub_81B8FB0 - adds r0, r4, 0 - muls r0, r7 - add r0, r8 - adds r1, r5, 0 - bl sub_81B1288 - b _081B9136 - .pool -_081B912C: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x5 - bls _081B90DE -_081B9136: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81B90D0 - - thumb_func_start sub_81B9140 -sub_81B9140: @ 81B9140 - push {lr} - ldr r0, =sub_8059D40 - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9140 - - thumb_func_start sub_81B9150 -sub_81B9150: @ 81B9150 - push {lr} - sub sp, 0xC - movs r0, 0x7F - str r0, [sp] - ldr r0, =sub_81B917C - str r0, [sp, 0x4] - ldr r0, =gMain - ldr r0, [r0, 0x8] - str r0, [sp, 0x8] - movs r0, 0x5 - movs r1, 0x3 - movs r2, 0 - movs r3, 0 - bl sub_81B0038 - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9150 - - thumb_func_start sub_81B917C -sub_81B917C: @ 81B917C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - movs r1, 0x80 - lsls r1, 1 - strh r1, [r4, 0x8] - bl sub_81B9294 - movs r1, 0x80 - lsls r1, 9 - movs r0, 0x2 - movs r2, 0 - bl ChangeBgX - ldr r0, =sub_81B91B4 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B917C - - thumb_func_start sub_81B91B4 -sub_81B91B4: @ 81B91B4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r6, r5, 2 - adds r0, r6, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081B9220 - ldrh r0, [r4] - subs r0, 0x8 - strh r0, [r4] - adds r0, r5, 0 - bl sub_81B9294 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081B9220 - movs r4, 0x3 - ldr r7, =gUnknown_02022FF8 -_081B91E8: - subs r0, r4, 0x3 - lsls r0, 5 - adds r0, r7 - ldrh r0, [r0] - cmp r0, 0 - beq _081B9204 - ldr r0, =gUnknown_0203CEDC - ldr r1, [r0] - lsls r0, r4, 4 - adds r0, r1 - ldrb r0, [r0, 0x9] - movs r1, 0 - bl sub_81B5B6C -_081B9204: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _081B91E8 - movs r0, 0x78 - bl audio_play - ldr r0, =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81B9240 - str r0, [r1] -_081B9220: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B91B4 - - thumb_func_start sub_81B9240 -sub_81B9240: @ 81B9240 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r0, r1 - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - lsls r1, 16 - movs r0, 0x80 - lsls r0, 17 - cmp r1, r0 - bne _081B9266 - adds r0, r2, 0 - bl sub_81B12C0 -_081B9266: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9240 - - thumb_func_start sub_81B9270 -sub_81B9270: @ 81B9270 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 16 - lsrs r3, r1, 16 - cmp r1, 0 - blt _081B928A - ldr r1, =gUnknown_02020630 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - strh r3, [r0, 0x24] -_081B928A: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9270 - - thumb_func_start sub_81B9294 -sub_81B9294: @ 81B9294 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r5, r1, r0 - movs r6, 0x3 - ldr r7, =gUnknown_0203CEDC -_081B92A8: - ldr r0, =gUnknown_02022FF8 - subs r1, r6, 0x3 - lsls r1, 5 - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - beq _081B9300 - ldr r0, [r7] - lsls r4, r6, 4 - adds r0, r4, r0 - ldrb r0, [r0, 0x9] - ldrh r1, [r5] - subs r1, 0x8 - lsls r1, 16 - asrs r1, 16 - bl sub_81B9270 - ldr r0, [r7] - adds r0, r4, r0 - ldrb r0, [r0, 0xA] - ldrh r1, [r5] - subs r1, 0x8 - lsls r1, 16 - asrs r1, 16 - bl sub_81B9270 - ldr r0, [r7] - adds r0, r4, r0 - ldrb r0, [r0, 0xB] - ldrh r1, [r5] - subs r1, 0x8 - lsls r1, 16 - asrs r1, 16 - bl sub_81B9270 - ldr r0, [r7] - adds r4, r0 - ldrb r0, [r4, 0xC] - ldrh r1, [r5] - subs r1, 0x8 - lsls r1, 16 - asrs r1, 16 - bl sub_81B9270 -_081B9300: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x5 - bls _081B92A8 - movs r1, 0x80 - lsls r1, 4 - movs r0, 0x2 - movs r2, 0x1 - bl ChangeBgX - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9294 - - thumb_func_start sub_81B9328 -sub_81B9328: @ 81B9328 - push {lr} - sub sp, 0xC - movs r0, 0xF - str r0, [sp] - ldr r0, =sub_81B1370 - str r0, [sp, 0x4] - ldr r0, =sub_81B9390 - str r0, [sp, 0x8] - movs r0, 0x6 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_81B0038 - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9328 - - thumb_func_start sub_81B9354 -sub_81B9354: @ 81B9354 - push {lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_03005DB0 - ldr r1, =hm_add_c3_without_phase_2 - str r1, [r2] - movs r1, 0 - str r1, [sp] - ldr r1, =sub_81B1370 - str r1, [sp, 0x4] - ldr r1, =c2_exit_to_overworld_2_switch - str r1, [sp, 0x8] - movs r1, 0 - movs r2, 0xB - movs r3, 0 - bl sub_81B0038 - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9354 - - thumb_func_start sub_81B9390 -sub_81B9390: @ 81B9390 - push {r4,lr} - ldr r4, =gUnknown_020375E0 - bl brm_get_pokemon_selection - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - cmp r0, 0x5 - bls _081B93A6 - movs r0, 0xFF - strh r0, [r4] -_081B93A6: - ldr r0, =gUnknown_03005DB0 - ldr r1, =hm_add_c3_without_phase_2 - str r1, [r0] - ldr r0, =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9390 - - thumb_func_start hm_add_c3_without_phase_2 -hm_add_c3_without_phase_2: @ 81B93C8 - push {lr} - bl pal_fill_black - ldr r0, =task_hm_without_phase_2 - movs r1, 0xA - bl CreateTask - movs r0, 0x1 - pop {r1} - bx r1 - .pool - thumb_func_end hm_add_c3_without_phase_2 - - thumb_func_start task_hm_without_phase_2 -task_hm_without_phase_2: @ 81B93E0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_80ABDFC - lsls r0, 24 - cmp r0, 0 - beq _081B93FE - adds r0, r4, 0 - bl DestroyTask - bl script_env_2_disable - bl script_env_2_enable_and_set_ctx_running -_081B93FE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end task_hm_without_phase_2 - - thumb_func_start sub_81B9404 -sub_81B9404: @ 81B9404 - push {lr} - bl script_env_2_enable - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r0, =sub_81B9424 - movs r1, 0xA - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9404 - - thumb_func_start sub_81B9424 -sub_81B9424: @ 81B9424 - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _081B945C - bl overworld_free_bg_tilemaps - str r4, [sp] - ldr r0, =sub_81B1370 - str r0, [sp, 0x4] - ldr r0, =sub_81B9470 - str r0, [sp, 0x8] - movs r0, 0x2 - movs r1, 0 - movs r2, 0xB - movs r3, 0 - bl sub_81B0038 - adds r0, r5, 0 - bl DestroyTask -_081B945C: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9424 - - thumb_func_start sub_81B9470 -sub_81B9470: @ 81B9470 - push {lr} - bl brm_get_pokemon_selection - ldr r2, =gUnknown_02039F24 - strb r0, [r2] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bls _081B9486 - movs r0, 0xFF - strb r0, [r2] -_081B9486: - ldr r1, =gUnknown_020375E0 - ldrb r0, [r2] - strh r0, [r1] - ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_without_phase_2 - str r0, [r1] - ldr r0, =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9470 - - thumb_func_start sub_81B94B0 -sub_81B94B0: @ 81B94B0 - push {lr} - bl script_env_2_enable - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r0, =sub_81B94D0 - movs r1, 0xA - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B94B0 - - thumb_func_start sub_81B94D0 -sub_81B94D0: @ 81B94D0 - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _081B9508 - bl overworld_free_bg_tilemaps - str r4, [sp] - ldr r0, =sub_81B1370 - str r0, [sp, 0x4] - ldr r0, =sub_81B9390 - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0 - movs r2, 0xB - movs r3, 0 - bl sub_81B0038 - adds r0, r5, 0 - bl DestroyTask -_081B9508: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B94D0 - - thumb_func_start sub_81B951C -sub_81B951C: @ 81B951C - push {lr} - bl script_env_2_enable - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r0, =sub_81B953C - movs r1, 0xA - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B951C - - thumb_func_start sub_81B953C -sub_81B953C: @ 81B953C - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _081B9574 - bl overworld_free_bg_tilemaps - str r4, [sp] - ldr r0, =sub_81B1370 - str r0, [sp, 0x4] - ldr r0, =sub_81B9588 - str r0, [sp, 0x8] - movs r0, 0x7 - movs r1, 0 - movs r2, 0xB - movs r3, 0 - bl sub_81B0038 - adds r0, r5, 0 - bl DestroyTask -_081B9574: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B953C - - thumb_func_start sub_81B9588 -sub_81B9588: @ 81B9588 - push {r4,r5,lr} - ldr r5, =gUnknown_020375E0 - bl brm_get_pokemon_selection - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - cmp r0, 0x5 - bls _081B95A4 - movs r0, 0xFF - strh r0, [r5] - b _081B95BA - .pool -_081B95A4: - ldr r4, =gUnknown_020375E2 - ldrh r1, [r5] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - bl sub_806E25C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] -_081B95BA: - ldr r0, =gUnknown_03005DB0 - ldr r1, =hm_add_c3_without_phase_2 - str r1, [r0] - ldr r0, =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9588 - - thumb_func_start sub_81B95E0 -sub_81B95E0: @ 81B95E0 - push {r4,r5,lr} - ldr r1, =gUnknown_020375F0 - movs r0, 0 - strh r0, [r1] - movs r4, 0 - adds r5, r1, 0 - b _081B95FA - .pool -_081B95F4: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_081B95FA: - cmp r4, 0x2 - bhi _081B9614 - movs r0, 0x64 - muls r0, r4 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xC - bl GetMonData - cmp r0, 0 - beq _081B95F4 - movs r0, 0x1 - strh r0, [r5] -_081B9614: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B95E0 - - thumb_func_start sub_81B9620 -sub_81B9620: @ 81B9620 - push {lr} - bl script_env_2_enable - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r0, =sub_81B9640 - movs r1, 0xA - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9620 - - thumb_func_start sub_81B9640 -sub_81B9640: @ 81B9640 - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _081B9678 - bl overworld_free_bg_tilemaps - str r4, [sp] - ldr r0, =sub_81B1370 - str r0, [sp, 0x4] - ldr r0, =sub_81B9390 - str r0, [sp, 0x8] - movs r0, 0xC - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_81B0038 - adds r0, r5, 0 - bl DestroyTask -_081B9678: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9640 - - thumb_func_start sub_81B968C -sub_81B968C: @ 81B968C - push {lr} - sub sp, 0x4 - ldr r1, =gPlayerParty - ldr r0, =gUnknown_020375E0 - ldrb r2, [r0] - ldr r0, =gUnknown_020244E9 - ldrb r3, [r0] - subs r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - ldr r0, =c2_exit_to_overworld_2_switch - str r0, [sp] - movs r0, 0x3 - bl sub_81BF8EC - ldr r1, =gUnknown_03005DAC - ldr r0, =sub_80AF168 - str r0, [r1] - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B968C - - thumb_func_start sub_81B96D0 -sub_81B96D0: @ 81B96D0 - push {r4,r5,lr} - ldr r1, =gUnknown_020375F0 - movs r0, 0 - strh r0, [r1] - movs r4, 0 - adds r5, r1, 0 -_081B96DC: - ldr r0, =gUnknown_020375E0 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - adds r1, r4, 0 - adds r1, 0xD - bl GetMonData - cmp r0, 0 - beq _081B96FA - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] -_081B96FA: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _081B96DC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B96D0 - - thumb_func_start sub_81B9718 -sub_81B9718: @ 81B9718 - push {r4,r5,lr} - ldr r0, =gUnknown_020375E0 - ldrh r1, [r0] - movs r0, 0x64 - adds r5, r1, 0 - muls r5, r0 - ldr r0, =gPlayerParty - adds r5, r0 - ldr r0, =gUnknown_020375E2 - ldrh r1, [r0] - adds r1, 0xD - adds r0, r5, 0 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r1, =gStringVar1 - adds r0, r5, 0 - bl GetMonNickname - ldr r0, =gStringVar2 - movs r1, 0xD - muls r1, r4 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9718 - - thumb_func_start sub_81B9770 -sub_81B9770: @ 81B9770 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r0, =gUnknown_020375E0 - mov r8, r0 - ldrh r0, [r0] - movs r6, 0x64 - muls r0, r6 - ldr r5, =gPlayerParty - adds r0, r5 - ldr r4, =gUnknown_020375E2 - ldrb r2, [r4] - movs r1, 0 - bl sub_80691F4 - mov r1, r8 - ldrh r0, [r1] - muls r0, r6 - adds r0, r5 - ldrb r1, [r4] - bl sub_806B9A8 - ldrh r4, [r4] - cmp r4, 0x2 - bhi _081B97C4 -_081B97A2: - ldr r0, =gUnknown_020375E0 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - lsls r1, r4, 24 - lsrs r1, 24 - adds r4, 0x1 - lsls r2, r4, 24 - lsrs r2, 24 - bl sub_81B97DC - lsls r4, 16 - lsrs r4, 16 - cmp r4, 0x2 - bls _081B97A2 -_081B97C4: - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9770 - - thumb_func_start sub_81B97DC -sub_81B97DC: @ 81B97DC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - mov r8, r0 - adds r5, r1, 0 - adds r4, r2, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - adds r0, 0xD - str r0, [sp, 0x8] - mov r0, r8 - ldr r1, [sp, 0x8] - bl GetMonData - mov r1, sp - adds r1, 0x2 - str r1, [sp, 0x14] - strh r0, [r1] - adds r3, r4, 0 - adds r3, 0xD - str r3, [sp, 0xC] - mov r0, r8 - adds r1, r3, 0 - bl GetMonData - mov r1, sp - strh r0, [r1] - adds r7, r5, 0 - adds r7, 0x11 - str r7, [sp, 0x10] - mov r0, r8 - adds r1, r7, 0 - bl GetMonData - mov r1, sp - adds r1, 0x5 - str r1, [sp, 0x18] - strb r0, [r1] - adds r3, r4, 0 - adds r3, 0x11 - str r3, [sp, 0x1C] - mov r0, r8 - adds r1, r3, 0 - bl GetMonData - add r7, sp, 0x4 - mov r10, r7 - strb r0, [r7] - mov r0, r8 - movs r1, 0x15 - bl GetMonData - mov r6, sp - adds r6, 0x6 - strb r0, [r6] - ldr r1, =gUnknown_08329D22 - adds r0, r5, r1 - ldrb r0, [r0] - mov r9, r0 - ldrb r0, [r6] - adds r2, r0, 0 - mov r3, r9 - ands r2, r3 - lsls r5, 1 - asrs r2, r5 - lsls r2, 24 - lsrs r2, 24 - adds r1, r4, r1 - ldrb r3, [r1] - adds r1, r0, 0 - ands r1, r3 - lsls r4, 1 - asrs r1, r4 - lsls r1, 24 - lsrs r1, 24 - mov r7, r9 - bics r0, r7 - strb r0, [r6] - ldrb r0, [r6] - bics r0, r3 - strb r0, [r6] - lsls r2, r4 - lsls r1, r5 - adds r2, r1 - ldrb r0, [r6] - orrs r0, r2 - strb r0, [r6] - mov r0, r8 - ldr r1, [sp, 0x8] - mov r2, sp - bl pokemon_setattr - mov r0, r8 - ldr r1, [sp, 0xC] - ldr r2, [sp, 0x14] - bl pokemon_setattr - mov r0, r8 - ldr r1, [sp, 0x10] - mov r2, r10 - bl pokemon_setattr - mov r0, r8 - ldr r1, [sp, 0x1C] - ldr r2, [sp, 0x18] - bl pokemon_setattr - mov r0, r8 - movs r1, 0x15 - adds r2, r6, 0 - bl pokemon_setattr - 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_81B97DC - - thumb_func_start sub_81B98DC -sub_81B98DC: @ 81B98DC - push {lr} - ldr r0, =gUnknown_020375E0 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2D - bl GetMonData - adds r1, r0, 0 - cmp r1, 0 - beq _081B990C - ldr r1, =gUnknown_020375F0 - movs r0, 0x1 - strh r0, [r1] - b _081B9910 - .pool -_081B990C: - ldr r0, =gUnknown_020375F0 - strh r1, [r0] -_081B9910: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B98DC - - thumb_func_start sub_81B9918 -sub_81B9918: @ 81B9918 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r1, =gUnknown_020375F0 - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_020375E0 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_020375E2 - ldrh r1, [r1] - adds r1, 0xD - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r0, 0x39 - bne _081B999C - movs r6, 0 - b _081B9980 - .pool -_081B9958: - ldr r0, =gUnknown_020375E0 - ldrh r0, [r0] - cmp r6, r0 - beq _081B997E - movs r4, 0 - movs r0, 0x64 - adds r5, r6, 0 - muls r5, r0 - ldr r7, =gPlayerParty -_081B996A: - adds r1, r4, 0 - adds r1, 0xD - adds r0, r5, r7 - bl GetMonData - cmp r0, 0x39 - beq _081B999C - adds r4, 0x1 - cmp r4, 0x3 - bls _081B996A -_081B997E: - adds r6, 0x1 -_081B9980: - bl calc_player_party_count - lsls r0, 24 - lsrs r0, 24 - cmp r6, r0 - bcc _081B9958 - mov r0, r8 - bl sub_80D23A8 - cmp r0, 0x1 - beq _081B999C - ldr r1, =gUnknown_020375F0 - movs r0, 0x1 - strh r0, [r1] -_081B999C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9918 - - thumb_func_start sub_81B99B4 -sub_81B99B4: @ 81B99B4 - push {lr} - ldr r1, =gUnknown_086160B4 - ldr r0, =gUnknown_020375E0 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B99B4 - - thumb_func_start sub_81B99D4 -sub_81B99D4: @ 81B99D4 - push {lr} - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - ldr r2, =0x00000ca8 - adds r0, r2 - movs r2, 0 - strb r2, [r0] - ldr r1, [r1] - ldr r3, =0x00000cb2 - adds r0, r1, r3 - strh r2, [r0] - ldr r0, =0x00000ca9 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x4 - ldrsb r1, [r0, r1] - movs r2, 0x5 - ldrsb r2, [r0, r2] - movs r3, 0x1 - negs r3, r3 - movs r0, 0 - bl saved_warp2_set - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B99D4 - - thumb_func_start sub_81B9A28 -sub_81B9A28: @ 81B9A28 - ldr r1, =gUnknown_020375F0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000e6a - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - bx lr - .pool - thumb_func_end sub_81B9A28 - - thumb_func_start sub_81B9A44 -sub_81B9A44: @ 81B9A44 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =gUnknown_020375E4 - ldrh r1, [r1] - ldr r2, =0x00000e6a - adds r0, r2 - strh r1, [r0] - bx lr - .pool - thumb_func_end sub_81B9A44 - - thumb_func_start sub_81B9A60 -sub_81B9A60: @ 81B9A60 - push {r4,lr} - ldr r4, =gUnknown_02038BCA - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xFF - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 2 - adds r1, r0 - lsrs r1, 6 - strh r1, [r4] - ldrh r0, [r4] - movs r1, 0 - bl sub_8162614 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9A60 - - thumb_func_start sub_81B9A90 -sub_81B9A90: @ 81B9A90 - push {lr} - ldr r3, =gUnknown_02038BCA - ldrh r1, [r3] - ldr r0, =0x0000012b - cmp r1, r0 - bhi _081B9AAC - ldr r2, =gUnknown_0203BC88 - movs r0, 0x34 - muls r1, r0 - ldr r0, [r2] - adds r0, r1 - adds r0, 0xC - bl ConvertBattleFrontierTrainerSpeechToString -_081B9AAC: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9A90 - - thumb_func_start sub_81B9ABC -sub_81B9ABC: @ 81B9ABC - push {r4,lr} - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =gUnknown_020375E2 - ldrh r1, [r1] - ldr r2, =0x00000ca8 - adds r0, r2 - strb r1, [r0] - movs r0, 0x80 - lsls r0, 7 - movs r1, 0 - bl VarSet - ldr r1, [r4] - ldr r0, =0x00000ca9 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - bl sub_81A4C30 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9ABC - - thumb_func_start sub_81B9B00 -sub_81B9B00: @ 81B9B00 - push {r4,r5,lr} - ldr r0, =gSaveBlock2Ptr - ldr r4, [r0] - ldr r5, =gUnknown_086160D4 - bl Random - ldrh r0, [r5] - ldr r1, =0x00000e6a - adds r4, r1 - strh r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9B00 - - thumb_func_start sub_81B9B28 -sub_81B9B28: @ 81B9B28 - push {r4,r5,lr} - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =0x00000e6a - adds r0, r1 - ldrh r0, [r0] - movs r1, 0x1 - bl bag_add_item - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bne _081B9B70 - ldr r0, [r4] - ldr r1, =0x00000e6a - adds r0, r1 - ldrh r0, [r0] - ldr r1, =gStringVar1 - bl itemid_get_name - ldr r0, [r4] - ldr r1, =0x00000e6a - adds r0, r1 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_020375F0 - strh r5, [r0] - b _081B9B76 - .pool -_081B9B70: - ldr r1, =gUnknown_020375F0 - movs r0, 0 - strh r0, [r1] -_081B9B76: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9B28 - - thumb_func_start sub_81B9B80 -sub_81B9B80: @ 81B9B80 - push {lr} - ldr r1, =gUnknown_086160D8 - ldr r0, =gUnknown_020375E0 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9B80 - - thumb_func_start sub_81B9BA0 -sub_81B9BA0: @ 81B9BA0 - push {lr} - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - ldr r2, =0x00000ca8 - adds r0, r2 - movs r2, 0 - strb r2, [r0] - ldr r1, [r1] - ldr r3, =0x00000cb2 - adds r0, r1, r3 - strh r2, [r0] - ldr r0, =0x00000ca9 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x4 - ldrsb r1, [r0, r1] - movs r2, 0x5 - ldrsb r2, [r0, r2] - movs r3, 0x1 - negs r3, r3 - movs r0, 0 - bl saved_warp2_set - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9BA0 - - thumb_func_start sub_81B9BF4 -sub_81B9BF4: @ 81B9BF4 - ldr r1, =gUnknown_020375F0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000e6c - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - bx lr - .pool - thumb_func_end sub_81B9BF4 - - thumb_func_start sub_81B9C10 -sub_81B9C10: @ 81B9C10 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =gUnknown_020375E4 - ldrh r1, [r1] - ldr r2, =0x00000e6c - adds r0, r2 - strh r1, [r0] - bx lr - .pool - thumb_func_end sub_81B9C10 - - thumb_func_start sub_81B9C2C -sub_81B9C2C: @ 81B9C2C - push {r4,lr} - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =gUnknown_020375E2 - ldrh r1, [r1] - ldr r2, =0x00000ca8 - adds r0, r2 - strb r1, [r0] - movs r0, 0x80 - lsls r0, 7 - movs r1, 0 - bl VarSet - ldr r1, [r4] - ldr r0, =0x00000ca9 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - bl sub_81A4C30 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9C2C - - thumb_func_start sub_81B9C70 -sub_81B9C70: @ 81B9C70 - push {r4,r5,lr} - ldr r0, =gSaveBlock2Ptr - ldr r4, [r0] - ldr r5, =gUnknown_086160F4 - bl Random - ldrh r0, [r5] - ldr r1, =0x00000e6c - adds r4, r1 - strh r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9C70 - - thumb_func_start sub_81B9C98 -sub_81B9C98: @ 81B9C98 - push {r4,r5,lr} - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =0x00000e6c - adds r0, r1 - ldrh r0, [r0] - movs r1, 0x1 - bl bag_add_item - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bne _081B9CE0 - ldr r0, [r4] - ldr r1, =0x00000e6c - adds r0, r1 - ldrh r0, [r0] - ldr r1, =gStringVar1 - bl itemid_get_name - ldr r0, [r4] - ldr r1, =0x00000e6c - adds r0, r1 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_020375F0 - strh r5, [r0] - b _081B9CE6 - .pool -_081B9CE0: - ldr r1, =gUnknown_020375F0 - movs r0, 0 - strh r0, [r1] -_081B9CE6: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9C98 - - thumb_func_start sub_81B9CF0 -sub_81B9CF0: @ 81B9CF0 - push {lr} - ldr r0, =gStringVar1 - ldr r1, =gUnknown_02038BCA - ldrh r1, [r1] - bl sub_8162E20 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9CF0 - - thumb_func_start sub_81B9D08 -sub_81B9D08: @ 81B9D08 - push {lr} - ldr r1, =gUnknown_086160F8 - ldr r0, =gUnknown_020375E0 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9D08 - - thumb_func_start sub_81B9D28 -sub_81B9D28: @ 81B9D28 - push {lr} - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - ldr r2, =0x00000ca8 - adds r0, r2 - movs r2, 0 - strb r2, [r0] - ldr r1, [r1] - ldr r3, =0x00000cb2 - adds r0, r1, r3 - strh r2, [r0] - ldr r0, =0x00000ca9 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x4 - ldrsb r1, [r0, r1] - movs r2, 0x5 - ldrsb r2, [r0, r2] - movs r3, 0x1 - negs r3, r3 - movs r0, 0 - bl saved_warp2_set - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9D28 - - thumb_func_start sub_81B9D7C -sub_81B9D7C: @ 81B9D7C - ldr r1, =gUnknown_020375F0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000e6e - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - bx lr - .pool - thumb_func_end sub_81B9D7C - - thumb_func_start sub_81B9D98 -sub_81B9D98: @ 81B9D98 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =gUnknown_020375E4 - ldrh r1, [r1] - ldr r2, =0x00000e6e - adds r0, r2 - strh r1, [r0] - bx lr - .pool - thumb_func_end sub_81B9D98 - - thumb_func_start sub_81B9DB4 -sub_81B9DB4: @ 81B9DB4 - push {r4,lr} - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =gUnknown_020375E2 - ldrh r1, [r1] - ldr r2, =0x00000ca8 - adds r0, r2 - strb r1, [r0] - movs r0, 0x80 - lsls r0, 7 - movs r1, 0 - bl VarSet - ldr r1, [r4] - ldr r0, =0x00000ca9 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - bl sub_81A4C30 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9DB4 - - thumb_func_start sub_81B9DF8 -sub_81B9DF8: @ 81B9DF8 - push {r4,r5,lr} - ldr r0, =gSaveBlock2Ptr - ldr r4, [r0] - ldr r5, =gUnknown_08616120 - bl Random - ldrh r0, [r5] - ldr r1, =0x00000e6e - adds r4, r1 - strh r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9DF8 - - thumb_func_start sub_81B9E20 -sub_81B9E20: @ 81B9E20 - push {r4,r5,lr} - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =0x00000e6e - adds r0, r1 - ldrh r0, [r0] - movs r1, 0x1 - bl bag_add_item - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bne _081B9E68 - ldr r0, [r4] - ldr r1, =0x00000e6e - adds r0, r1 - ldrh r0, [r0] - ldr r1, =gStringVar1 - bl itemid_get_name - ldr r0, [r4] - ldr r1, =0x00000e6e - adds r0, r1 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_020375F0 - strh r5, [r0] - b _081B9E6E - .pool -_081B9E68: - ldr r1, =gUnknown_020375F0 - movs r0, 0 - strh r0, [r1] -_081B9E6E: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9E20 - - thumb_func_start sub_81B9E78 -sub_81B9E78: @ 81B9E78 - push {lr} - bl zero_player_party_data - bl sub_819A4F8 - pop {r0} - bx r0 - thumb_func_end sub_81B9E78 - - thumb_func_start sub_81B9E88 -sub_81B9E88: @ 81B9E88 - push {lr} - bl sub_819DC00 - pop {r0} - bx r0 - thumb_func_end sub_81B9E88 - - thumb_func_start sub_81B9E94 -sub_81B9E94: @ 81B9E94 - push {lr} - movs r2, 0 - ldr r1, =gUnknown_02037318 - ldrb r0, [r1, 0x14] - cmp r0, 0x8 - bne _081B9EB2 - ldr r3, =0xfffffe7f - adds r0, r3, 0 - ldrh r1, [r1, 0x12] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _081B9EB2 - movs r2, 0x1 -_081B9EB2: - adds r0, r2, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81B9E94 - - thumb_func_start sub_81B9EC0 -sub_81B9EC0: @ 81B9EC0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x3C - ldr r1, =gUnknown_0203BC88 - ldr r0, =gSlateportBattleTentTrainers - str r0, [r1] - add r0, sp, 0xC - mov r9, r0 - mov r1, sp - adds r1, 0x18 - str r1, [sp, 0x2C] - ldr r5, =gUnknown_0203BC8C - ldr r4, =gSlateportBattleTentMons - movs r2, 0 - adds r3, r1, 0 - mov r1, r9 - mov r0, sp - movs r6, 0x5 - mov r8, r6 -_081B9EEC: - strh r2, [r0] - strh r2, [r1] - strh r2, [r3] - adds r3, 0x2 - adds r1, 0x2 - adds r0, 0x2 - movs r7, 0x1 - negs r7, r7 - add r8, r7 - mov r6, r8 - cmp r6, 0 - bge _081B9EEC - str r4, [r5] - movs r7, 0 - mov r10, r7 - movs r0, 0 - mov r8, r0 - ldr r1, [sp, 0x2C] - str r1, [sp, 0x30] - mov r2, sp - str r2, [sp, 0x34] - lsls r6, r0, 1 - str r6, [sp, 0x24] - add r6, r9 - str r6, [sp, 0x28] -_081B9F1E: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x46 - bl __umodsi3 - lsls r0, 16 - lsrs r5, r0, 16 - movs r2, 0 - mov r7, r8 - adds r6, r2, r7 - cmp r2, r6 - bge _081B9F7C - ldr r1, [sp, 0x28] - ldrh r0, [r1] - cmp r0, r5 - beq _081B9F7C - ldr r0, =gUnknown_0203BC8C - ldr r1, [r0] - lsls r0, r5, 4 - adds r4, r0, r1 - ldrh r7, [r4] - mov r12, r7 - lsls r3, r2, 1 - ldr r1, [sp, 0x24] - add r1, sp - str r6, [sp, 0x38] -_081B9F56: - ldrh r0, [r1] - cmp r0, r12 - bne _081B9F66 - mov r0, r10 - cmp r0, 0 - bne _081B9F7C - ldrh r7, [r4] - mov r10, r7 -_081B9F66: - adds r3, 0x2 - adds r1, 0x2 - adds r2, 0x1 - ldr r0, [sp, 0x38] - cmp r2, r0 - bge _081B9F7C - mov r7, r9 - adds r0, r7, r3 - ldrh r0, [r0] - cmp r0, r5 - bne _081B9F56 -_081B9F7C: - cmp r2, r6 - bne _081BA01C - movs r2, 0 - cmp r2, r6 - bge _081B9FD4 - ldr r0, =gBattleFrontierHeldItems - mov r12, r0 - ldr r7, =gUnknown_0203BC8C - ldr r1, [sp, 0x24] - ldr r0, [sp, 0x2C] - adds r4, r1, r0 -_081B9F92: - ldrh r3, [r4] - cmp r3, 0 - beq _081B9FCC - ldr r1, [r7] - lsls r0, r5, 4 - adds r1, r0, r1 - ldrb r0, [r1, 0xA] - lsls r0, 1 - add r0, r12 - ldrh r0, [r0] - cmp r3, r0 - bne _081B9FCC - ldrh r0, [r1] - cmp r0, r10 - bne _081B9FD4 - movs r1, 0 - mov r10, r1 - b _081B9FD4 - .pool -_081B9FCC: - adds r4, 0x2 - adds r2, 0x1 - cmp r2, r6 - blt _081B9F92 -_081B9FD4: - cmp r2, r6 - bne _081BA01C - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - mov r2, r8 - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - adds r1, r0 - movs r6, 0xE7 - lsls r6, 4 - adds r1, r6 - strh r5, [r1] - ldr r0, =gUnknown_0203BC8C - ldr r0, [r0] - lsls r1, r5, 4 - adds r1, r0 - ldrh r0, [r1] - ldr r7, [sp, 0x34] - strh r0, [r7] - ldr r2, =gBattleFrontierHeldItems - ldrb r0, [r1, 0xA] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - ldr r1, [sp, 0x30] - strh r0, [r1] - add r3, r9 - strh r5, [r3] - adds r1, 0x2 - str r1, [sp, 0x30] - adds r2, r7, 0 - adds r2, 0x2 - str r2, [sp, 0x34] - movs r6, 0x1 - add r8, r6 -_081BA01C: - mov r7, r8 - cmp r7, 0x6 - beq _081BA024 - b _081B9F1E -_081BA024: - add sp, 0x3C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81B9EC0 - - thumb_func_start sub_81BA040 -sub_81BA040: @ 81BA040 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - movs r0, 0 - mov r10, r0 - ldr r1, =gUnknown_0203BC88 - ldr r0, =gSlateportBattleTentTrainers - str r0, [r1] - ldr r1, =gUnknown_0203BC8C - ldr r0, =gSlateportBattleTentMons - str r0, [r1] - ldr r7, =gSaveBlock2Ptr - ldr r1, =0x0000ffff - mov r8, r1 -_081BA062: - mov r2, r10 - lsls r6, r2, 1 -_081BA066: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1E - bl __umodsi3 - lsls r0, 16 - lsrs r3, r0, 16 - movs r5, 0 - ldr r1, [r7] - ldr r4, =0x00000cb2 - adds r0, r1, r4 - ldrh r0, [r0] - cmp r5, r0 - bge _081BA0AA - ldr r2, =0x00000cb4 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r0, r3 - beq _081BA0AA - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - adds r0, r1, r4 - ldrh r2, [r0] - adds r4, 0x2 - adds r1, r4 -_081BA09C: - adds r1, 0x2 - adds r5, 0x1 - cmp r5, r2 - bge _081BA0AA - ldrh r0, [r1] - cmp r0, r3 - bne _081BA09C -_081BA0AA: - ldr r0, [r7] - ldr r1, =0x00000cb2 - adds r0, r1 - ldrh r0, [r0] - cmp r5, r0 - bne _081BA066 - ldr r2, =gUnknown_02038BCA - strh r3, [r2] - ldrh r3, [r2] - ldr r4, =gUnknown_0203BC88 - ldr r1, [r4] - movs r0, 0x34 - muls r0, r3 - adds r0, r1 - ldr r0, [r0, 0x30] - adds r1, r6, r0 - ldrh r0, [r1] - cmp r0, r8 - beq _081BA0DE - ldr r3, =0x0000ffff -_081BA0D2: - adds r1, 0x2 - movs r6, 0x1 - add r10, r6 - ldrh r0, [r1] - cmp r0, r3 - bne _081BA0D2 -_081BA0DE: - mov r0, r10 - cmp r0, 0x8 - bgt _081BA110 - movs r1, 0 - mov r10, r1 - b _081BA062 - .pool -_081BA110: - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r6, =0x00000cb2 - adds r3, r1, r6 - ldrh r0, [r3] - cmp r0, 0x1 - bhi _081BA12A - lsls r0, 1 - ldr r3, =0x00000cb4 - adds r1, r3 - adds r1, r0 - ldrh r0, [r2] - strh r0, [r1] -_081BA12A: - ldrh r1, [r2] - ldr r2, [r4] - movs r0, 0x34 - muls r0, r1 - adds r0, r2 - ldr r0, [r0, 0x30] - mov r9, r0 - movs r5, 0 - ldr r7, =gUnknown_03001298 - mov r8, sp -_081BA13E: - bl Random - lsls r0, 16 - lsrs r0, 16 - mov r1, r10 - bl __modsi3 - lsls r0, 1 - add r0, r9 - ldrh r0, [r0] - strh r0, [r7] - movs r2, 0 - ldrh r0, [r7] - ldr r4, =gUnknown_0203BC8C - ldr r3, [r4] - lsls r0, 4 - adds r0, r3 - ldr r1, =gSaveBlock2Ptr - ldrh r6, [r0] - ldr r1, [r1] -_081BA166: - movs r4, 0xE7 - lsls r4, 4 - adds r0, r1, r4 - ldrh r0, [r0] - lsls r0, 4 - adds r0, r3 - ldrh r0, [r0] - cmp r6, r0 - beq _081BA180 - adds r1, 0xC - adds r2, 0x1 - cmp r2, 0x5 - ble _081BA166 -_081BA180: - cmp r2, 0x6 - bne _081BA220 - movs r4, 0 - cmp r4, r5 - bge _081BA1B0 - mov r0, sp - ldrh r0, [r0] - cmp r0, r6 - beq _081BA1B0 - ldr r6, =gUnknown_03001298 - ldr r3, =gUnknown_0203BC8C - mov r2, sp -_081BA198: - adds r2, 0x2 - adds r4, 0x1 - cmp r4, r5 - bge _081BA1B0 - ldrh r0, [r6] - ldr r1, [r3] - lsls r0, 4 - adds r0, r1 - ldrh r1, [r2] - ldrh r0, [r0] - cmp r1, r0 - bne _081BA198 -_081BA1B0: - cmp r4, r5 - bne _081BA220 - movs r4, 0 - cmp r4, r5 - bge _081BA1E6 - ldr r6, =gBattleFrontierHeldItems - mov r12, r6 - add r3, sp, 0x8 -_081BA1C0: - ldrh r2, [r3] - cmp r2, 0 - beq _081BA1DE - ldr r1, =gUnknown_03001298 - ldrh r0, [r1] - ldr r6, =gUnknown_0203BC8C - ldr r1, [r6] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0xA] - lsls r0, 1 - add r0, r12 - ldrh r0, [r0] - cmp r2, r0 - beq _081BA1E6 -_081BA1DE: - adds r3, 0x2 - adds r4, 0x1 - cmp r4, r5 - blt _081BA1C0 -_081BA1E6: - cmp r4, r5 - bne _081BA220 - lsls r2, r5, 1 - ldrh r0, [r7] - ldr r1, =gUnknown_0203BC8C - ldr r4, [r1] - lsls r0, 4 - adds r0, r4 - ldrh r0, [r0] - mov r3, r8 - strh r0, [r3] - add r1, sp, 0x8 - adds r1, r2 - ldr r3, =gBattleFrontierHeldItems - ldrh r0, [r7] - lsls r0, 4 - adds r0, r4 - ldrb r0, [r0, 0xA] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r1] - ldr r0, =gUnknown_03006298 - adds r2, r0 - ldrh r0, [r7] - strh r0, [r2] - movs r4, 0x2 - add r8, r4 - adds r5, 0x1 -_081BA220: - cmp r5, 0x3 - bne _081BA13E - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BA040 - - thumb_func_start Font6Func -@ int Font6Func(struct TextPrinter *x) -Font6Func: @ 81BA250 - push {r4-r6,lr} - adds r6, r0, 0 - adds r4, r6, 0 - adds r4, 0x14 - ldrb r0, [r6, 0x1C] - cmp r0, 0x6 - bls _081BA260 - b _081BA660 -_081BA260: - lsls r0, 2 - ldr r1, =_081BA270 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081BA270: - .4byte _081BA28C - .4byte _081BA554 - .4byte _081BA566 - .4byte _081BA590 - .4byte _081BA5C8 - .4byte _081BA63C - .4byte _081BA64E -_081BA28C: - ldr r2, =gMain - ldrh r1, [r2, 0x2C] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _081BA2A6 - ldrb r1, [r4] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _081BA2A6 - movs r0, 0 - strb r0, [r6, 0x1E] -_081BA2A6: - ldrb r1, [r6, 0x1E] - cmp r1, 0 - beq _081BA2E8 - ldrb r0, [r6, 0x1D] - cmp r0, 0 - beq _081BA2E8 - subs r0, r1, 0x1 - strb r0, [r6, 0x1E] - ldr r0, =gTextFlags - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081BA2C4 - b _081BA50E -_081BA2C4: - ldrh r1, [r2, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _081BA2D0 - b _081BA50E -_081BA2D0: - ldrb r0, [r4] - movs r1, 0x10 - orrs r0, r1 - strb r0, [r4] - movs r0, 0 - strb r0, [r6, 0x1E] - b _081BA50E - .pool -_081BA2E8: - ldr r2, =gTextFlags - ldrb r1, [r2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _081BA2FC - movs r0, 0x3 - b _081BA2FE - .pool -_081BA2FC: - ldrb r0, [r6, 0x1D] -_081BA2FE: - strb r0, [r6, 0x1E] - ldr r0, [r6] - ldrb r3, [r0] - adds r0, 0x1 - str r0, [r6] - adds r0, r3, 0 - subs r0, 0xF8 - cmp r0, 0x7 - bls _081BA312 - b _081BA52E -_081BA312: - lsls r0, 2 - ldr r1, =_081BA320 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081BA320: - .4byte _081BA524 - .4byte _081BA512 - .4byte _081BA504 - .4byte _081BA500 - .4byte _081BA36E - .4byte _081BA368 - .4byte _081BA340 - .4byte _081BA660 -_081BA340: - ldrb r0, [r6, 0x6] - strb r0, [r6, 0x8] - ldrb r1, [r6, 0x5] - ldr r0, =gFonts - ldr r2, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r6, 0xB] - ldrb r0, [r0, 0x5] - adds r1, r0 - ldrb r0, [r6, 0x9] - adds r0, r1 - strb r0, [r6, 0x9] -_081BA35E: - movs r0, 0x2 - b _081BA662 - .pool -_081BA368: - ldr r0, [r6] - adds r0, 0x1 - b _081BA4C4 -_081BA36E: - ldr r0, [r6] - ldrb r3, [r0] - adds r0, 0x1 - str r0, [r6] - subs r0, r3, 0x1 - cmp r0, 0xF - bls _081BA37E - b _081BA52E -_081BA37E: - lsls r0, 2 - ldr r1, =_081BA38C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081BA38C: - .4byte _081BA3CC - .4byte _081BA3EE - .4byte _081BA412 - .4byte _081BA42C - .4byte _081BA478 - .4byte _081BA47E - .4byte _081BA35E - .4byte _081BA498 - .4byte _081BA4A8 - .4byte _081BA4BC - .4byte _081BA4C0 - .4byte _081BA4C8 - .4byte _081BA4D2 - .4byte _081BA4DE - .4byte _081BA4EE - .4byte _081BA4C0 -_081BA3CC: - ldr r2, [r6] - ldrb r1, [r2] - lsls r1, 4 - ldrb r3, [r6, 0xC] - movs r0, 0xF - ands r0, r3 - orrs r0, r1 - strb r0, [r6, 0xC] - adds r2, 0x1 - str r2, [r6] - lsls r0, 24 - lsrs r0, 28 - ldrb r2, [r6, 0xD] - lsls r1, r2, 28 - lsrs r1, 28 - lsrs r2, 4 - b _081BA472 -_081BA3EE: - ldr r1, [r6] - ldrb r2, [r1] - movs r0, 0xF - ands r0, r2 - ldrb r3, [r6, 0xD] - movs r2, 0x10 - negs r2, r2 - ands r2, r3 - orrs r2, r0 - strb r2, [r6, 0xD] - adds r1, 0x1 - str r1, [r6] - ldrb r0, [r6, 0xC] - lsrs r0, 4 - lsls r1, r2, 28 - lsrs r1, 28 - lsrs r2, 4 - b _081BA472 -_081BA412: - ldr r1, [r6] - ldrb r0, [r1] - lsls r0, 4 - ldrb r3, [r6, 0xD] - movs r2, 0xF - ands r2, r3 - orrs r2, r0 - strb r2, [r6, 0xD] - adds r1, 0x1 - str r1, [r6] - ldrb r0, [r6, 0xC] - lsrs r0, 4 - b _081BA46A -_081BA42C: - ldr r3, [r6] - ldrb r1, [r3] - lsls r1, 4 - ldrb r4, [r6, 0xC] - movs r2, 0xF - adds r0, r2, 0 - ands r0, r4 - orrs r0, r1 - strb r0, [r6, 0xC] - adds r5, r3, 0x1 - str r5, [r6] - ldrb r3, [r3, 0x1] - adds r1, r2, 0 - ands r1, r3 - ldrb r4, [r6, 0xD] - movs r3, 0x10 - negs r3, r3 - ands r3, r4 - orrs r3, r1 - strb r3, [r6, 0xD] - adds r4, r5, 0x1 - str r4, [r6] - ldrb r1, [r5, 0x1] - lsls r1, 4 - ands r2, r3 - orrs r2, r1 - strb r2, [r6, 0xD] - adds r4, 0x1 - str r4, [r6] - lsls r0, 24 - lsrs r0, 28 -_081BA46A: - lsls r1, r2, 28 - lsrs r1, 28 - lsls r2, 24 - lsrs r2, 28 -_081BA472: - bl GenerateFontHalfRowLookupTable - b _081BA35E -_081BA478: - ldr r0, [r6] - adds r0, 0x1 - b _081BA4C4 -_081BA47E: - ldr r0, [r6] - ldrb r0, [r0] - movs r1, 0xF - ands r1, r0 - ldrb r2, [r4] - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - ldr r0, [r6] - adds r0, 0x1 - b _081BA4C4 -_081BA498: - ldr r0, [r6] - ldrb r1, [r0] - strb r1, [r6, 0x1E] - adds r0, 0x1 - str r0, [r6] - movs r0, 0x6 - strb r0, [r6, 0x1C] - b _081BA35E -_081BA4A8: - movs r0, 0x1 - strb r0, [r6, 0x1C] - ldrb r1, [r2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _081BA50E - movs r0, 0 - strb r0, [r4, 0x2] - b _081BA50E -_081BA4BC: - movs r0, 0x5 - b _081BA64A -_081BA4C0: - ldr r0, [r6] - adds r0, 0x2 -_081BA4C4: - str r0, [r6] - b _081BA35E -_081BA4C8: - ldr r1, [r6] - adds r0, r1, 0x1 - str r0, [r6] - ldrb r3, [r1, 0x1] - b _081BA52E -_081BA4D2: - ldr r1, [r6] - ldrb r0, [r1] - ldrb r2, [r6, 0x6] - adds r0, r2 - strb r0, [r6, 0x8] - b _081BA4E8 -_081BA4DE: - ldr r1, [r6] - ldrb r0, [r1] - ldrb r2, [r6, 0x7] - adds r0, r2 - strb r0, [r6, 0x9] -_081BA4E8: - adds r1, 0x1 - str r1, [r6] - b _081BA35E -_081BA4EE: - ldrb r0, [r6, 0x4] - ldrb r2, [r6, 0xD] - lsls r2, 28 - lsrs r1, r2, 4 - orrs r1, r2 - lsrs r1, 24 - bl FillWindowPixelBuffer - b _081BA35E -_081BA500: - movs r0, 0x2 - b _081BA506 -_081BA504: - movs r0, 0x3 -_081BA506: - strb r0, [r6, 0x1C] - adds r0, r6, 0 - bl TextPrinterInitDownArrowCounters -_081BA50E: - movs r0, 0x3 - b _081BA662 -_081BA512: - ldr r0, [r6] - ldrb r3, [r0] - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - orrs r3, r1 - adds r0, 0x1 - str r0, [r6] - b _081BA52E -_081BA524: - ldr r0, [r6] - adds r0, 0x1 - str r0, [r6] - movs r0, 0 - b _081BA662 -_081BA52E: - adds r0, r3, 0 - bl DecompressGlyphFont6 - adds r0, r6, 0 - bl CopyGlyphToWindow - ldr r0, =gUnknown_03002F90 - adds r0, 0x80 - ldrb r1, [r6, 0xA] - ldrb r0, [r0] - adds r1, r0 - ldrb r0, [r6, 0x8] - adds r0, r1 - strb r0, [r6, 0x8] - movs r0, 0 - b _081BA662 - .pool -_081BA554: - adds r0, r6, 0 - bl TextPrinterWait - lsls r0, 16 - cmp r0, 0 - beq _081BA50E - movs r0, 0 - strb r0, [r6, 0x1C] - b _081BA50E -_081BA566: - adds r0, r6, 0 - bl TextPrinterWaitWithDownArrow - lsls r0, 16 - cmp r0, 0 - beq _081BA50E - ldrb r0, [r6, 0x4] - ldrb r2, [r6, 0xD] - lsls r2, 28 - lsrs r1, r2, 4 - orrs r1, r2 - lsrs r1, 24 - bl FillWindowPixelBuffer - ldrb r0, [r6, 0x6] - movs r1, 0 - strb r0, [r6, 0x8] - ldrb r0, [r6, 0x7] - strb r0, [r6, 0x9] - strb r1, [r6, 0x1C] - b _081BA50E -_081BA590: - adds r0, r6, 0 - bl TextPrinterWaitWithDownArrow - lsls r0, 16 - cmp r0, 0 - beq _081BA50E - adds r0, r6, 0 - bl TextPrinterClearDownArrow - ldrb r1, [r6, 0x5] - ldr r0, =gFonts - ldr r2, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r6, 0xB] - ldrb r0, [r0, 0x5] - adds r1, r0 - strb r1, [r6, 0x1F] - ldrb r0, [r6, 0x6] - strb r0, [r6, 0x8] - movs r0, 0x4 - strb r0, [r6, 0x1C] - b _081BA50E - .pool -_081BA5C8: - ldrb r2, [r6, 0x1F] - cmp r2, 0 - beq _081BA638 - ldr r4, =gUnknown_08616124 - ldr r5, =gSaveBlock2Ptr - ldr r0, [r5] - ldrb r0, [r0, 0x14] - lsls r1, r0, 29 - lsrs r0, r1, 29 - adds r0, r4 - ldrb r0, [r0] - cmp r2, r0 - bcs _081BA604 - ldrb r0, [r6, 0x4] - ldrb r1, [r6, 0xD] - lsls r1, 28 - lsrs r3, r1, 4 - orrs r3, r1 - lsrs r3, 24 - movs r1, 0 - bl ScrollWindow - movs r0, 0 - strb r0, [r6, 0x1F] - b _081BA62E - .pool -_081BA604: - ldrb r0, [r6, 0x4] - lsrs r1, 29 - adds r1, r4 - ldrb r2, [r1] - ldrb r1, [r6, 0xD] - lsls r1, 28 - lsrs r3, r1, 4 - orrs r3, r1 - lsrs r3, 24 - movs r1, 0 - bl ScrollWindow - ldr r0, [r5] - ldrb r0, [r0, 0x14] - lsls r0, 29 - lsrs r0, 29 - adds r0, r4 - ldrb r1, [r6, 0x1F] - ldrb r0, [r0] - subs r1, r0 - strb r1, [r6, 0x1F] -_081BA62E: - ldrb r0, [r6, 0x4] - movs r1, 0x2 - bl CopyWindowToVram - b _081BA50E -_081BA638: - strb r2, [r6, 0x1C] - b _081BA50E -_081BA63C: - bl mplay_has_finished_maybe - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _081BA64A - b _081BA50E -_081BA64A: - strb r0, [r6, 0x1C] - b _081BA50E -_081BA64E: - ldrb r0, [r6, 0x1E] - adds r1, r0, 0 - cmp r1, 0 - beq _081BA65C - subs r0, 0x1 - strb r0, [r6, 0x1E] - b _081BA50E -_081BA65C: - strb r1, [r6, 0x1C] - b _081BA50E -_081BA660: - movs r0, 0x1 -_081BA662: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end Font6Func - - thumb_func_start DecompressGlyphFont6 -DecompressGlyphFont6: @ 81BA668 - push {r4,r5,lr} - lsls r0, 16 - lsrs r2, r0, 19 - lsls r2, 9 - movs r1, 0xE0 - lsls r1, 11 - ands r1, r0 - lsrs r1, 11 - ldr r0, =gFont6BrailleGlyphs - adds r1, r0 - adds r5, r2, r1 - ldr r4, =gUnknown_03002F90 - adds r0, r5, 0 - adds r1, r4, 0 - bl DecompressGlyphTile - adds r0, r5, 0 - adds r0, 0x10 - adds r1, r4, 0 - adds r1, 0x20 - bl DecompressGlyphTile - movs r1, 0x80 - lsls r1, 1 - adds r0, r5, r1 - adds r1, r4, 0 - adds r1, 0x40 - bl DecompressGlyphTile - movs r1, 0x88 - lsls r1, 1 - adds r0, r5, r1 - adds r1, r4, 0 - adds r1, 0x60 - bl DecompressGlyphTile - adds r0, r4, 0 - adds r0, 0x80 - movs r1, 0x10 - strb r1, [r0] - adds r0, 0x1 - strb r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end DecompressGlyphFont6 - - thumb_func_start GetGlyphWidthFont6 -GetGlyphWidthFont6: @ 81BA6CC - movs r0, 0x10 - bx lr - thumb_func_end GetGlyphWidthFont6 - .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_818CFC8.s b/asm/rom_818CFC8.s new file mode 100644 index 0000000000..fdf71043e3 --- /dev/null +++ b/asm/rom_818CFC8.s @@ -0,0 +1,86880 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start nullsub_122 +nullsub_122: @ 818CFC8 + bx lr + thumb_func_end nullsub_122 + + thumb_func_start dp13_810BB8C +dp13_810BB8C: @ 818CFCC + push {r4-r7,lr} + ldr r4, =gUnknown_0860B058 + ldr r3, =gUnknown_0203CD04 + movs r2, 0x7 +_0818CFD4: + adds r1, r3, 0 + adds r0, r4, 0 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + adds r3, 0xC + subs r2, 0x1 + cmp r2, 0 + bge _0818CFD4 + movs r0, 0 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end dp13_810BB8C + + thumb_func_start load_pokemon_image_TODO +@ int load_pokemon_image_TODO(int species_num, unsigned int a2, u8 a3, void *a4, int a5, u8 a6) +load_pokemon_image_TODO: @ 818CFF4 + push {r4-r7,lr} + sub sp, 0x4 + adds r6, r1, 0 + adds r5, r3, 0 + ldr r3, [sp, 0x18] + ldr r1, [sp, 0x1C] + lsls r0, 16 + lsrs r4, r0, 16 + adds r7, r4, 0 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsls r1, 24 + lsrs r1, 24 + adds r0, r1, 0 + cmp r3, 0 + bne _0818D068 + cmp r2, 0 + beq _0818D034 + cmp r1, 0 + bne _0818D028 + lsls r0, r4, 3 + ldr r1, =gMonFrontPicTable + b _0818D03C + .pool +_0818D028: + lsls r0, r4, 3 + ldr r1, =gMonFrontPicTable + b _0818D054 + .pool +_0818D034: + cmp r0, 0 + bne _0818D050 + lsls r0, r4, 3 + ldr r1, =gMonBackPicTable +_0818D03C: + adds r0, r1 + str r2, [sp] + adds r1, r5, 0 + adds r2, r4, 0 + adds r3, r6, 0 + bl LoadSpecialPokePic + b _0818D08E + .pool +_0818D050: + lsls r0, r4, 3 + ldr r1, =gMonBackPicTable +_0818D054: + adds r0, r1 + str r2, [sp] + adds r1, r5, 0 + adds r2, r4, 0 + adds r3, r6, 0 + bl LoadSpecialPokePic_DontHandleDeoxys + b _0818D08E + .pool +_0818D068: + cmp r2, 0 + beq _0818D080 + lsls r0, r4, 3 + ldr r1, =gTrainerFrontPicTable + adds r0, r1 + adds r1, r5, 0 + adds r2, r4, 0 + bl DecompressPicFromTable + b _0818D08E + .pool +_0818D080: + lsls r0, r7, 3 + ldr r1, =gTrainerBackPicTable + adds r0, r1 + adds r1, r5, 0 + adds r2, r7, 0 + bl DecompressPicFromTable +_0818D08E: + movs r0, 0 + add sp, 0x4 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end load_pokemon_image_TODO + + thumb_func_start sub_818D09C +sub_818D09C: @ 818D09C + push {r4,lr} + sub sp, 0x8 + ldr r4, [sp, 0x10] + lsls r0, 16 + lsrs r0, 16 + lsls r2, 24 + lsrs r2, 24 + lsls r4, 24 + lsrs r4, 24 + str r4, [sp] + movs r4, 0 + str r4, [sp, 0x4] + bl load_pokemon_image_TODO + lsls r0, 16 + lsrs r0, 16 + add sp, 0x8 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_818D09C + + thumb_func_start sub_818D0C4 +sub_818D0C4: @ 818D0C4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r1, 0 + mov r8, r2 + ldr r1, [sp, 0x18] + ldr r2, [sp, 0x1C] + lsls r0, 16 + lsrs r4, r0, 16 + adds r6, r4, 0 + lsls r3, 24 + lsrs r5, r3, 24 + mov r12, r5 + lsls r1, 16 + lsrs r3, r1, 16 + adds r1, r3, 0 + lsls r2, 24 + cmp r2, 0 + bne _0818D128 + ldr r0, =0x0000ffff + cmp r3, r0 + bne _0818D110 + ldr r2, =gUnknown_0203CCEC + ldrh r1, [r2, 0x2] + adds r0, r3, 0 + orrs r0, r1 + strh r0, [r2, 0x2] + adds r0, r4, 0 + adds r1, r7, 0 + mov r2, r8 + bl species_and_otid_get_pal + lsls r1, r5, 20 + b _0818D144 + .pool +_0818D110: + ldr r0, =gUnknown_0203CCEC + strh r3, [r0, 0x2] + adds r0, r4, 0 + adds r1, r7, 0 + mov r2, r8 + bl sub_806E7CC + bl LoadCompressedObjectPalette + b _0818D16E + .pool +_0818D128: + ldr r0, =0x0000ffff + cmp r3, r0 + bne _0818D160 + ldr r2, =gUnknown_0203CCEC + ldrh r1, [r2, 0x2] + adds r0, r3, 0 + orrs r0, r1 + strh r0, [r2, 0x2] + ldr r1, =gTrainerFrontPicPaletteTable + lsls r0, r4, 3 + adds r0, r1 + ldr r0, [r0] + mov r2, r12 + lsls r1, r2, 20 +_0818D144: + movs r2, 0x80 + lsls r2, 17 + adds r1, r2 + lsrs r1, 16 + movs r2, 0x20 + bl LoadCompressedPalette + b _0818D16E + .pool +_0818D160: + ldr r0, =gUnknown_0203CCEC + strh r1, [r0, 0x2] + lsls r0, r6, 3 + ldr r1, =gTrainerFrontPicPaletteTable + adds r0, r1 + bl LoadCompressedObjectPalette +_0818D16E: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818D0C4 + + thumb_func_start sub_818D180 +sub_818D180: @ 818D180 + push {r4,r5,lr} + adds r5, r1, 0 + ldr r1, [sp, 0xC] + lsls r0, 16 + lsrs r0, 16 + lsls r3, 24 + lsrs r4, r3, 24 + lsls r1, 24 + cmp r1, 0 + bne _0818D1A4 + adds r1, r5, 0 + bl species_and_otid_get_pal + lsls r1, r4, 4 + movs r2, 0x20 + bl LoadCompressedPalette + b _0818D1B4 +_0818D1A4: + ldr r1, =gTrainerFrontPicPaletteTable + lsls r0, 3 + adds r0, r1 + ldr r0, [r0] + lsls r1, r4, 4 + movs r2, 0x20 + bl LoadCompressedPalette +_0818D1B4: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818D180 + + thumb_func_start uns_builder_assign_animtable1 +uns_builder_assign_animtable1: @ 818D1C0 + push {lr} + lsls r0, 24 + cmp r0, 0 + bne _0818D1D8 + ldr r1, =gUnknown_0203CCEC + ldr r0, =gUnknown_082FF70C + str r0, [r1, 0x8] + b _0818D1E0 + .pool +_0818D1D8: + ldr r0, =gUnknown_0203CCEC + ldr r1, =gUnknown_0830536C + ldr r1, [r1] + str r1, [r0, 0x8] +_0818D1E0: + pop {r0} + bx r0 + .pool + thumb_func_end uns_builder_assign_animtable1 + + thumb_func_start oamt_spawn_poke_or_trainer_picture +oamt_spawn_poke_or_trainer_picture: @ 818D1EC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x30 + str r1, [sp, 0xC] + str r2, [sp, 0x10] + ldr r1, [sp, 0x50] + ldr r2, [sp, 0x54] + ldr r4, [sp, 0x58] + ldr r5, [sp, 0x5C] + ldr r6, [sp, 0x60] + ldr r7, [sp, 0x64] + mov r8, r7 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x8] + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0x14] + lsls r1, 16 + lsrs r1, 16 + str r1, [sp, 0x18] + lsls r2, 16 + lsrs r2, 16 + str r2, [sp, 0x1C] + lsls r4, 24 + lsrs r4, 24 + str r4, [sp, 0x20] + lsls r5, 16 + lsrs r5, 16 + mov r10, r5 + lsls r6, 24 + lsrs r6, 24 + mov r9, r6 + mov r0, r8 + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r1, =gUnknown_0203CD04 + ldrb r0, [r1, 0xB] + cmp r0, 0 + beq _0818D25C +_0818D244: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x7 + bhi _0818D25C + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0xB] + cmp r0, 0 + bne _0818D244 +_0818D25C: + cmp r4, 0x8 + beq _0818D280 + movs r0, 0x80 + lsls r0, 6 + bl Alloc + adds r7, r0, 0 + cmp r7, 0 + beq _0818D280 + movs r0, 0x20 + bl Alloc + mov r8, r0 + cmp r0, 0 + bne _0818D28C + adds r0, r7, 0 + bl Free +_0818D280: + ldr r0, =0x0000ffff + b _0818D356 + .pool +_0818D28C: + mov r1, r9 + str r1, [sp] + str r5, [sp, 0x4] + ldr r0, [sp, 0x8] + ldr r1, [sp, 0x10] + ldr r2, [sp, 0x14] + adds r3, r7, 0 + bl load_pokemon_image_TODO + lsls r0, 16 + cmp r0, 0 + bne _0818D280 + lsls r2, r4, 1 + str r2, [sp, 0x2C] + ldr r5, =gUnknown_0203CCEC + ldr r0, =gUnknown_0860B064 + mov r12, r0 + ldr r1, [sp, 0x18] + lsls r1, 16 + str r1, [sp, 0x24] + ldr r2, [sp, 0x1C] + lsls r2, 16 + str r2, [sp, 0x28] + movs r3, 0x80 + lsls r3, 4 + mov r0, r8 + adds r1, r7, 0 + adds r6, r3, 0 + movs r2, 0x3 +_0818D2C6: + str r1, [r0] + strh r3, [r0, 0x4] + adds r0, 0x8 + adds r1, r6 + subs r2, 0x1 + cmp r2, 0 + bge _0818D2C6 + ldr r0, =0x0000ffff + strh r0, [r5] + mov r0, r12 + str r0, [r5, 0x4] + mov r0, r9 + bl uns_builder_assign_animtable1 + mov r1, r8 + str r1, [r5, 0xC] + ldr r0, =gDummySpriteAffineAnimTable + str r0, [r5, 0x10] + ldr r0, =nullsub_122 + str r0, [r5, 0x14] + mov r2, r10 + str r2, [sp] + mov r0, r9 + str r0, [sp, 0x4] + ldr r0, [sp, 0x8] + ldr r1, [sp, 0xC] + ldr r2, [sp, 0x10] + ldr r3, [sp, 0x20] + bl sub_818D0C4 + ldr r2, [sp, 0x24] + asrs r1, r2, 16 + ldr r0, [sp, 0x28] + asrs r2, r0, 16 + adds r0, r5, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + adds r6, r2, 0 + ldr r0, =0x0000ffff + cmp r10, r0 + bne _0818D336 + ldr r0, =gSprites + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldr r2, [sp, 0x20] + lsls r3, r2, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] +_0818D336: + ldr r1, =gUnknown_0203CD04 + ldr r2, [sp, 0x2C] + adds r0, r2, r4 + lsls r0, 2 + adds r2, r0, r1 + str r7, [r2] + adds r1, 0x4 + adds r0, r1 + mov r7, r8 + str r7, [r0] + mov r0, r10 + strh r0, [r2, 0x8] + strb r6, [r2, 0xA] + movs r0, 0x1 + strb r0, [r2, 0xB] + adds r0, r6, 0 +_0818D356: + add sp, 0x30 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end oamt_spawn_poke_or_trainer_picture + + thumb_func_start sub_818D384 +sub_818D384: @ 818D384 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x18 + ldr r4, [sp, 0x34] + ldr r5, [sp, 0x38] + ldr r6, [sp, 0x3C] + ldr r7, [sp, 0x40] + mov r8, r7 + ldr r7, [sp, 0x44] + mov r9, r7 + lsls r0, 16 + lsrs r0, 16 + lsls r3, 24 + lsrs r3, 24 + lsls r6, 24 + lsrs r6, 24 + mov r7, r8 + lsls r7, 16 + lsrs r7, 16 + mov r8, r7 + mov r7, r9 + lsls r7, 24 + lsrs r7, 24 + lsls r4, 16 + asrs r4, 16 + str r4, [sp] + lsls r5, 16 + asrs r5, 16 + str r5, [sp, 0x4] + str r6, [sp, 0x8] + mov r4, r8 + str r4, [sp, 0xC] + str r7, [sp, 0x10] + movs r4, 0 + str r4, [sp, 0x14] + bl oamt_spawn_poke_or_trainer_picture + lsls r0, 16 + lsrs r0, 16 + add sp, 0x18 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_818D384 + + thumb_func_start sub_818D3E4 +sub_818D3E4: @ 818D3E4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + str r1, [sp, 0x8] + str r2, [sp, 0xC] + ldr r1, [sp, 0x4C] + ldr r2, [sp, 0x50] + ldr r4, [sp, 0x54] + ldr r5, [sp, 0x58] + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + lsls r3, 24 + lsrs r6, r3, 24 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp, 0x10] + lsls r2, 16 + lsrs r2, 16 + str r2, [sp, 0x14] + lsls r4, 24 + lsrs r4, 24 + str r4, [sp, 0x18] + lsls r5, 16 + lsrs r5, 16 + str r5, [sp, 0x1C] + movs r5, 0 + ldr r1, =gUnknown_0203CD04 + ldrb r0, [r1, 0xB] + cmp r0, 0 + beq _0818D440 +_0818D428: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x7 + bhi _0818D440 + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0xB] + cmp r0, 0 + bne _0818D428 +_0818D440: + cmp r5, 0x8 + beq _0818D47C + movs r0, 0x80 + lsls r0, 6 + bl Alloc + adds r7, r0, 0 + cmp r7, 0 + beq _0818D47C + movs r0, 0x80 + ands r0, r6 + cmp r0, 0 + beq _0818D468 + movs r0, 0x7F + ands r6, r0 + movs r0, 0x3 + mov r9, r0 + b _0818D46A + .pool +_0818D468: + mov r9, r6 +_0818D46A: + movs r0, 0x20 + bl Alloc + mov r8, r0 + cmp r0, 0 + bne _0818D484 + adds r0, r7, 0 + bl Free +_0818D47C: + ldr r0, =0x0000ffff + b _0818D588 + .pool +_0818D484: + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + mov r0, r10 + ldr r1, [sp, 0xC] + adds r2, r6, 0 + adds r3, r7, 0 + bl load_pokemon_image_TODO + lsls r0, 16 + cmp r0, 0 + bne _0818D47C + lsls r1, r5, 1 + str r1, [sp, 0x28] + ldr r4, =gUnknown_0203CCEC + mov r2, r10 + lsls r2, 2 + mov r12, r2 + ldr r0, [sp, 0x10] + lsls r0, 16 + str r0, [sp, 0x20] + ldr r1, [sp, 0x14] + lsls r1, 16 + str r1, [sp, 0x24] + movs r3, 0x80 + lsls r3, 4 + mov r0, r8 + adds r1, r7, 0 + adds r6, r3, 0 + movs r2, 0x3 +_0818D4C0: + str r1, [r0] + strh r3, [r0, 0x4] + adds r0, 0x8 + adds r1, r6 + subs r2, 0x1 + cmp r2, 0 + bge _0818D4C0 + ldr r0, =0x0000ffff + strh r0, [r4] + ldr r0, =gUnknown_08309AAC + add r0, r12 + ldr r0, [r0] + str r0, [r4, 0x8] + mov r2, r8 + str r2, [r4, 0xC] + mov r0, r9 + cmp r0, 0x1 + bne _0818D4F8 + ldr r0, =gUnknown_082FF694 + b _0818D500 + .pool +_0818D4F8: + mov r1, r9 + cmp r1, 0 + bne _0818D510 + ldr r0, =gUnknown_082FF618 +_0818D500: + str r0, [r4, 0x10] + ldr r0, =gUnknown_0860B06C + str r0, [r4, 0x4] + b _0818D518 + .pool +_0818D510: + ldr r0, =gUnknown_0860B064 + str r0, [r4, 0x4] + ldr r0, =gDummySpriteAffineAnimTable + str r0, [r4, 0x10] +_0818D518: + ldr r2, =nullsub_122 + str r2, [r4, 0x14] + ldr r0, [sp, 0x1C] + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + mov r0, r10 + ldr r1, [sp, 0x8] + ldr r2, [sp, 0xC] + ldr r3, [sp, 0x18] + bl sub_818D0C4 + ldr r2, [sp, 0x20] + asrs r1, r2, 16 + ldr r0, [sp, 0x24] + asrs r2, r0, 16 + adds r0, r4, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + adds r6, r2, 0 + ldr r0, =0x0000ffff + ldr r1, [sp, 0x1C] + cmp r1, r0 + bne _0818D566 + ldr r0, =gSprites + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldr r2, [sp, 0x18] + lsls r3, r2, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] +_0818D566: + ldr r1, =gUnknown_0203CD04 + ldr r2, [sp, 0x28] + adds r0, r2, r5 + lsls r0, 2 + adds r2, r0, r1 + str r7, [r2] + adds r1, 0x4 + adds r0, r1 + mov r1, r8 + str r1, [r0] + mov r0, sp + ldrh r0, [r0, 0x1C] + strh r0, [r2, 0x8] + strb r6, [r2, 0xA] + movs r0, 0x1 + strb r0, [r2, 0xB] + adds r0, r6, 0 +_0818D588: + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_818D3E4 + + thumb_func_start sub_818D5B0 +sub_818D5B0: @ 818D5B0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 16 + lsrs r4, r0, 16 + movs r2, 0 + ldr r0, =gUnknown_0203CD04 + ldrb r1, [r0, 0xA] + adds r3, r0, 0 + cmp r1, r4 + beq _0818D5E0 + adds r1, r3, 0 +_0818D5C8: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x7 + bhi _0818D5E0 + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0xA] + cmp r0, r4 + bne _0818D5C8 +_0818D5E0: + cmp r2, 0x8 + bne _0818D5F0 + ldr r0, =0x0000ffff + b _0818D646 + .pool +_0818D5F0: + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r5, r0, r3 + ldr r1, [r5] + mov r8, r1 + adds r1, r3, 0x4 + adds r0, r1 + ldr r7, [r0] + ldrh r1, [r5, 0x8] + ldr r0, =0x0000ffff + lsls r6, r4, 4 + cmp r1, r0 + beq _0818D624 + ldr r1, =gSprites + adds r0, r6, r4 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + bl GetSpritePaletteTagByPaletteNum + lsls r0, 16 + lsrs r0, 16 + bl FreeSpritePaletteByTag +_0818D624: + adds r0, r6, r4 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + bl DestroySprite + mov r0, r8 + bl Free + adds r0, r7, 0 + bl Free + adds r1, r5, 0 + ldr r0, =gUnknown_0860B058 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + movs r0, 0 +_0818D646: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_818D5B0 + + thumb_func_start sub_818D65C +sub_818D65C: @ 818D65C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + mov r9, r1 + adds r7, r2, 0 + adds r4, r3, 0 + ldr r1, [sp, 0x20] + ldr r2, [sp, 0x24] + ldr r3, [sp, 0x28] + lsls r0, 16 + lsrs r5, r0, 16 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r6, r3, 24 + adds r0, r2, 0 + movs r1, 0x7 + bl GetWindowAttribute + adds r3, r0, 0 + movs r0, 0 + str r0, [sp] + adds r0, r5, 0 + adds r1, r7, 0 + adds r2, r4, 0 + bl sub_818D09C + lsls r0, 16 + cmp r0, 0 + bne _0818D6B8 + str r6, [sp] + adds r0, r5, 0 + mov r1, r9 + adds r2, r7, 0 + mov r3, r8 + bl sub_818D180 + movs r0, 0 + b _0818D6BA +_0818D6B8: + ldr r0, =0x0000ffff +_0818D6BA: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_818D65C + + thumb_func_start sub_818D6CC +sub_818D6CC: @ 818D6CC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + str r1, [sp, 0x18] + str r2, [sp, 0x1C] + ldr r1, [sp, 0x44] + ldr r2, [sp, 0x48] + ldr r4, [sp, 0x4C] + ldr r5, [sp, 0x50] + ldr r6, [sp, 0x54] + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + lsls r3, 24 + lsrs r7, r3, 24 + lsls r1, 16 + lsrs r1, 16 + mov r10, r1 + lsls r2, 16 + lsrs r2, 16 + mov r8, r2 + lsls r4, 24 + lsrs r4, 24 + str r4, [sp, 0x20] + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + movs r0, 0x80 + lsls r0, 6 + bl Alloc + adds r4, r0, 0 + cmp r4, 0 + beq _0818D762 + str r6, [sp] + mov r0, r9 + ldr r1, [sp, 0x1C] + adds r2, r7, 0 + adds r3, r4, 0 + bl sub_818D09C + lsls r0, 16 + cmp r0, 0 + bne _0818D762 + movs r0, 0x40 + str r0, [sp] + str r0, [sp, 0x4] + mov r1, r10 + str r1, [sp, 0x8] + mov r1, r8 + str r1, [sp, 0xC] + str r0, [sp, 0x10] + str r0, [sp, 0x14] + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0 + bl BlitBitmapRectToWindow + str r6, [sp] + mov r0, r9 + ldr r1, [sp, 0x18] + ldr r2, [sp, 0x1C] + ldr r3, [sp, 0x20] + bl sub_818D180 + adds r0, r4, 0 + bl Free + movs r0, 0 + b _0818D764 +_0818D762: + ldr r0, =0x0000ffff +_0818D764: + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_818D6CC + + thumb_func_start sub_818D778 +sub_818D778: @ 818D778 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x18 + ldr r4, [sp, 0x34] + ldr r5, [sp, 0x38] + ldr r6, [sp, 0x3C] + ldr r7, [sp, 0x40] + mov r8, r7 + ldr r7, [sp, 0x44] + mov r9, r7 + lsls r0, 16 + lsrs r0, 16 + lsls r3, 24 + lsrs r3, 24 + lsls r6, 24 + lsrs r6, 24 + mov r7, r8 + lsls r7, 16 + lsrs r7, 16 + mov r8, r7 + mov r7, r9 + lsls r7, 24 + lsrs r7, 24 + lsls r4, 16 + asrs r4, 16 + str r4, [sp] + lsls r5, 16 + asrs r5, 16 + str r5, [sp, 0x4] + str r6, [sp, 0x8] + mov r4, r8 + str r4, [sp, 0xC] + movs r4, 0 + str r4, [sp, 0x10] + str r7, [sp, 0x14] + bl oamt_spawn_poke_or_trainer_picture + lsls r0, 16 + lsrs r0, 16 + add sp, 0x18 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_818D778 + + thumb_func_start sub_818D7D8 +sub_818D7D8: @ 818D7D8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x14 + ldr r4, [sp, 0x2C] + ldr r5, [sp, 0x30] + ldr r6, [sp, 0x34] + ldr r7, [sp, 0x38] + lsls r0, 16 + lsrs r0, 16 + lsls r3, 24 + lsrs r3, 24 + lsls r6, 24 + lsrs r6, 24 + lsls r7, 16 + lsrs r7, 16 + lsls r4, 16 + asrs r4, 16 + str r4, [sp] + lsls r5, 16 + asrs r5, 16 + str r5, [sp, 0x4] + str r6, [sp, 0x8] + str r7, [sp, 0xC] + movs r4, 0 + str r4, [sp, 0x10] + bl sub_818D778 + lsls r0, 16 + lsrs r0, 16 + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_818D7D8 + + thumb_func_start sub_818D820 +sub_818D820: @ 818D820 + push {lr} + lsls r0, 16 + lsrs r0, 16 + bl sub_818D5B0 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_818D820 + + thumb_func_start sub_818D834 +sub_818D834: @ 818D834 + push {r4,r5,lr} + sub sp, 0xC + ldr r4, [sp, 0x18] + ldr r5, [sp, 0x1C] + lsls r0, 16 + lsrs r0, 16 + lsls r3, 24 + lsrs r3, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + str r4, [sp] + str r5, [sp, 0x4] + movs r4, 0 + str r4, [sp, 0x8] + bl sub_818D65C + lsls r0, 16 + lsrs r0, 16 + add sp, 0xC + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_818D834 + + thumb_func_start sub_818D864 +sub_818D864: @ 818D864 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x14 + ldr r4, [sp, 0x2C] + ldr r5, [sp, 0x30] + ldr r6, [sp, 0x34] + ldr r7, [sp, 0x38] + lsls r0, 16 + lsrs r0, 16 + lsls r3, 24 + lsrs r3, 24 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + lsls r6, 24 + lsrs r6, 24 + lsls r7, 24 + lsrs r7, 24 + str r4, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + str r7, [sp, 0xC] + movs r4, 0 + str r4, [sp, 0x10] + bl sub_818D6CC + lsls r0, 16 + lsrs r0, 16 + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_818D864 + + thumb_func_start sub_818D8AC +sub_818D8AC: @ 818D8AC + push {r4,r5,lr} + sub sp, 0x14 + adds r5, r1, 0 + ldr r1, [sp, 0x20] + ldr r4, [sp, 0x24] + lsls r0, 16 + lsrs r0, 16 + lsls r5, 24 + lsrs r5, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r4, 16 + lsrs r4, 16 + lsls r2, 16 + asrs r2, 16 + str r2, [sp] + lsls r3, 16 + asrs r3, 16 + str r3, [sp, 0x4] + str r1, [sp, 0x8] + str r4, [sp, 0xC] + movs r1, 0x1 + str r1, [sp, 0x10] + movs r1, 0 + movs r2, 0 + adds r3, r5, 0 + bl sub_818D384 + lsls r0, 16 + lsrs r0, 16 + add sp, 0x14 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_818D8AC + + thumb_func_start sub_818D8F0 +sub_818D8F0: @ 818D8F0 + push {lr} + lsls r0, 16 + lsrs r0, 16 + bl sub_818D5B0 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_818D8F0 + + thumb_func_start sub_818D904 +sub_818D904: @ 818D904 + push {r4,lr} + sub sp, 0xC + adds r4, r1, 0 + lsls r0, 16 + lsrs r0, 16 + lsls r4, 24 + lsrs r4, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + str r2, [sp] + str r3, [sp, 0x4] + movs r1, 0x1 + str r1, [sp, 0x8] + movs r1, 0 + movs r2, 0 + adds r3, r4, 0 + bl sub_818D65C + lsls r0, 16 + lsrs r0, 16 + add sp, 0xC + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_818D904 + + thumb_func_start sub_818D938 +sub_818D938: @ 818D938 + push {r4,r5,lr} + sub sp, 0x14 + adds r5, r1, 0 + ldr r1, [sp, 0x20] + ldr r4, [sp, 0x24] + lsls r0, 16 + lsrs r0, 16 + lsls r5, 24 + lsrs r5, 24 + lsls r2, 16 + lsrs r2, 16 + lsls r3, 16 + lsrs r3, 16 + lsls r1, 24 + lsrs r1, 24 + lsls r4, 24 + lsrs r4, 24 + str r2, [sp] + str r3, [sp, 0x4] + str r1, [sp, 0x8] + str r4, [sp, 0xC] + movs r1, 0x1 + str r1, [sp, 0x10] + movs r1, 0 + movs r2, 0 + adds r3, r5, 0 + bl sub_818D6CC + lsls r0, 16 + lsrs r0, 16 + add sp, 0x14 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_818D938 + + thumb_func_start sub_818D97C +sub_818D97C: @ 818D97C + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0x1 + bne _0818D9A2 + cmp r0, 0 + beq _0818D99C + ldr r0, =gTrainerPicIndices + adds r0, 0x3F + ldrb r0, [r0] + b _0818D9A2 + .pool +_0818D99C: + ldr r0, =gTrainerPicIndices + adds r0, 0x3C + ldrb r0, [r0] +_0818D9A2: + pop {r1} + bx r1 + .pool + thumb_func_end sub_818D97C + + thumb_func_start sub_818D9AC +sub_818D9AC: @ 818D9AC + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003b58 + adds r0, r1 + ldrb r0, [r0] + bx lr + .pool + thumb_func_end sub_818D9AC + + thumb_func_start sub_818D9C0 +sub_818D9C0: @ 818D9C0 + push {r4,r5,lr} + ldr r5, =0x00004010 + ldr r4, =gUnknown_0860B07E + bl sub_818D9AC + lsls r0, 24 + lsrs r0, 23 + adds r0, r4 + ldrh r1, [r0] + adds r0, r5, 0 + bl VarSet + bl sub_818D9AC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _0818DA20 + ldr r0, =gSaveBlock1Ptr + ldr r1, [r0] + ldr r0, =0x00003b58 + adds r1, r0 + ldr r0, =0x00004011 + ldr r2, =gUnknown_0860B074 + ldrb r1, [r1, 0xD] + lsls r1, 1 + adds r1, r2 + ldrh r1, [r1] + bl VarSet + ldr r1, =gScriptResult + movs r0, 0x1 + b _0818DA24 + .pool +_0818DA20: + ldr r1, =gScriptResult + movs r0, 0 +_0818DA24: + strh r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818D9C0 + + thumb_func_start SetLilycoveLady +SetLilycoveLady: @ 818DA30 + push {lr} + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r1, [r0, 0xB] + lsls r1, 8 + ldrb r0, [r0, 0xA] + orrs r0, r1 + movs r1, 0x6 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 17 + adds r1, r0, 0 + cmp r0, 0x1 + beq _0818DA68 + cmp r0, 0x1 + bgt _0818DA5C + cmp r0, 0 + beq _0818DA62 + b _0818DA72 + .pool +_0818DA5C: + cmp r1, 0x2 + beq _0818DA6E + b _0818DA72 +_0818DA62: + bl sub_818DF68 + b _0818DA72 +_0818DA68: + bl sub_818DB7C + b _0818DA72 +_0818DA6E: + bl sub_818E638 +_0818DA72: + pop {r0} + bx r0 + thumb_func_end SetLilycoveLady + + thumb_func_start sub_818DA78 +sub_818DA78: @ 818DA78 + push {lr} + bl sub_818D9AC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0818DA9C + cmp r0, 0x1 + bgt _0818DA90 + cmp r0, 0 + beq _0818DA96 + b _0818DAA6 +_0818DA90: + cmp r0, 0x2 + beq _0818DAA2 + b _0818DAA6 +_0818DA96: + bl sub_818E004 + b _0818DAA6 +_0818DA9C: + bl sub_818DBC4 + b _0818DAA6 +_0818DAA2: + bl sub_818E674 +_0818DAA6: + pop {r0} + bx r0 + thumb_func_end sub_818DA78 + + thumb_func_start sub_818DAAC +sub_818DAAC: @ 818DAAC + push {lr} + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0x1 + beq _0818DADC + cmp r0, 0x1 + bgt _0818DAD0 + cmp r0, 0 + beq _0818DAD6 + b _0818DAE6 +_0818DAD0: + cmp r1, 0x2 + beq _0818DAE2 + b _0818DAE6 +_0818DAD6: + bl sub_818DF68 + b _0818DAE6 +_0818DADC: + bl sub_818DB7C + b _0818DAE6 +_0818DAE2: + bl sub_818E638 +_0818DAE6: + pop {r0} + bx r0 + thumb_func_end sub_818DAAC + + thumb_func_start sub_818DAEC +sub_818DAEC: @ 818DAEC + push {r4,lr} + ldr r4, =gScriptResult + bl sub_818D9AC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818DAEC + + thumb_func_start sub_818DB04 +sub_818DB04: @ 818DB04 + push {lr} + adds r1, r0, 0 + movs r2, 0 + b _0818DB14 +_0818DB0C: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + adds r1, 0x2 +_0818DB14: + ldrh r0, [r1] + cmp r0, 0 + bne _0818DB0C + adds r0, r2, 0 + pop {r1} + bx r1 + thumb_func_end sub_818DB04 + + thumb_func_start sub_818DB20 +sub_818DB20: @ 818DB20 + push {r4-r6,lr} + bl Random + ldr r5, =gUnknown_0203CD64 + ldr r4, [r5] + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x6 + bl __umodsi3 + strb r0, [r4, 0xC] + ldr r6, =gUnknown_0860B2EC + ldr r0, [r5] + ldrb r0, [r0, 0xC] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + bl sub_818DB04 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r4, 0 + bl __modsi3 + lsls r0, 24 + ldr r2, [r5] + ldrb r1, [r2, 0xC] + lsls r1, 2 + adds r1, r6 + ldr r1, [r1] + lsrs r0, 23 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2, 0x10] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818DB20 + + thumb_func_start sub_818DB7C +sub_818DB7C: @ 818DB7C + push {lr} + ldr r2, =gUnknown_0203CD64 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003b58 + adds r0, r1 + str r0, [r2] + movs r3, 0 + movs r1, 0x1 + strb r1, [r0] + ldr r0, [r2] + strb r3, [r0, 0x1] + ldr r1, [r2] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r0, [r2] + strb r3, [r0, 0x2] + ldr r0, [r2] + strb r3, [r0, 0x3] + ldr r1, [r2] + strh r3, [r1, 0xE] + ldr r0, =gGameLanguage + ldrb r0, [r0] + strb r0, [r1, 0x12] + bl sub_818DB20 + pop {r0} + bx r0 + .pool + thumb_func_end sub_818DB7C + + thumb_func_start sub_818DBC4 +sub_818DBC4: @ 818DBC4 + ldr r3, =gUnknown_0203CD64 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003b58 + adds r0, r1 + str r0, [r3] + movs r2, 0 + movs r1, 0x1 + strb r1, [r0] + ldr r0, [r3] + strb r2, [r0, 0x1] + bx lr + .pool + thumb_func_end sub_818DBC4 + + thumb_func_start sub_818DBE8 +sub_818DBE8: @ 818DBE8 + push {lr} + ldr r1, =gUnknown_0203CD64 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r2, =0x00003b58 + adds r0, r2 + str r0, [r1] + ldrb r0, [r0, 0x1] + cmp r0, 0x2 + bne _0818DC0C + movs r0, 0x2 + b _0818DC16 + .pool +_0818DC0C: + cmp r0, 0x1 + beq _0818DC14 + movs r0, 0 + b _0818DC16 +_0818DC14: + movs r0, 0x1 +_0818DC16: + pop {r1} + bx r1 + thumb_func_end sub_818DBE8 + + thumb_func_start sub_818DC1C +sub_818DC1C: @ 818DC1C + lsls r0, 24 + ldr r1, =gUnknown_0860B224 + lsrs r0, 22 + adds r0, r1 + ldr r0, [r0] + bx lr + .pool + thumb_func_end sub_818DC1C + + thumb_func_start sub_818DC2C +sub_818DC2C: @ 818DC2C + push {r4,lr} + ldr r1, =gUnknown_0203CD64 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r2, =0x00003b58 + adds r0, r2 + str r0, [r1] + ldr r4, =gStringVar1 + ldrb r0, [r0, 0xC] + bl sub_818DC1C + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818DC2C + + thumb_func_start sub_818DC60 +sub_818DC60: @ 818DC60 + push {r4,r5,lr} + ldr r5, =gUnknown_0203CD64 + ldr r0, =gSaveBlock1Ptr + ldr r1, [r0] + ldr r2, =0x00003b58 + adds r0, r1, r2 + str r0, [r5] + ldrb r0, [r0, 0x4] + cmp r0, 0xFF + bne _0818DC84 + movs r0, 0 + b _0818DC9C + .pool +_0818DC84: + ldr r4, =gStringVar3 + ldr r0, =0x00003b5c + adds r1, r0 + adds r0, r4, 0 + bl StringCopy7 + ldr r0, [r5] + ldrb r1, [r0, 0x12] + adds r0, r4, 0 + bl ConvertInternationalString + movs r0, 0x1 +_0818DC9C: + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_818DC60 + + thumb_func_start sub_818DCAC +sub_818DCAC: @ 818DCAC + push {r4,lr} + adds r4, r0, 0 + lsls r0, r1, 16 + lsrs r0, 16 + bl ItemId_GetItem + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_818DCAC + + thumb_func_start sub_818DCC8 +sub_818DCC8: @ 818DCC8 + push {lr} + ldr r2, =gUnknown_0203CD64 + ldr r0, =gSaveBlock1Ptr + ldr r1, [r0] + ldr r0, =0x00003b58 + adds r1, r0 + str r1, [r2] + ldr r0, =gStringVar2 + ldrh r1, [r1, 0xE] + bl sub_818DCAC + pop {r0} + bx r0 + .pool + thumb_func_end sub_818DCC8 + + thumb_func_start sub_818DCF4 +sub_818DCF4: @ 818DCF4 + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + adds r0, r4, 0 + movs r1, 0xFF + movs r2, 0x8 + bl memset + adds r0, r4, 0 + adds r1, r5, 0 + bl StringCopy7 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_818DCF4 + + thumb_func_start sub_818DD14 +sub_818DD14: @ 818DD14 + push {r4,r5,lr} + ldr r5, =gUnknown_0203CD64 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r2, =0x00003b58 + adds r1, r0, r2 + str r1, [r5] + ldr r1, =0x00003b5c + adds r0, r1 + ldr r4, =gStringVar3 + adds r1, r4, 0 + bl sub_818DCF4 + ldr r0, [r5] + ldrb r1, [r0, 0x12] + adds r0, r4, 0 + bl ConvertInternationalString + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818DD14 + + thumb_func_start sub_818DD54 +sub_818DD54: @ 818DD54 + ldr r1, =gUnknown_0203CD64 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r2, =0x00003b58 + adds r0, r2 + str r0, [r1] + ldrb r1, [r0, 0x2] + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + bx lr + .pool + thumb_func_end sub_818DD54 + + thumb_func_start sub_818DD78 +sub_818DD78: @ 818DD78 + push {lr} + bl sub_81AAC50 + pop {r0} + bx r0 + thumb_func_end sub_818DD78 + + thumb_func_start sub_818DD84 +sub_818DD84: @ 818DD84 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 16 + lsrs r5, r0, 16 + ldr r4, =gUnknown_0203CD64 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003b58 + adds r0, r1 + str r0, [r4] + ldr r1, =gUnknown_0860B2EC + mov r8, r1 + ldrb r0, [r0, 0xC] + lsls r0, 2 + add r0, r8 + ldr r0, [r0] + bl sub_818DB04 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, [r4] + movs r0, 0x1 + strb r0, [r1, 0x1] + ldr r0, =gStringVar2 + adds r1, r5, 0 + bl sub_818DCAC + ldr r1, [r4] + strh r5, [r1, 0xE] + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r1, 0x4 + bl sub_818DCF4 + ldr r1, [r4] + ldr r0, =gGameLanguage + ldrb r0, [r0] + strb r0, [r1, 0x12] + movs r7, 0 + movs r3, 0 + cmp r7, r6 + bcs _0818DE36 + mov r12, r8 +_0818DDDC: + ldr r2, [r4] + ldrb r0, [r2, 0xC] + lsls r0, 2 + add r0, r12 + ldr r1, [r0] + lsls r0, r3, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r5 + bne _0818DE28 + movs r7, 0x1 + ldrb r0, [r2, 0x3] + adds r0, 0x1 + strb r0, [r2, 0x3] + ldr r0, [r4] + strb r7, [r0, 0x2] + ldr r1, [r4] + ldrh r0, [r1, 0x10] + cmp r0, r5 + bne _0818DE36 + movs r0, 0x5 + strb r0, [r1, 0x3] + b _0818DE36 + .pool +_0818DE28: + movs r0, 0 + strb r0, [r2, 0x2] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, r6 + bcc _0818DDDC +_0818DE36: + adds r0, r7, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_818DD84 + + thumb_func_start sub_818DE44 +sub_818DE44: @ 818DE44 + push {lr} + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + bl sub_818DD84 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .pool + thumb_func_end sub_818DE44 + + thumb_func_start sub_818DE5C +sub_818DE5C: @ 818DE5C + push {lr} + ldr r1, =gUnknown_0203CD64 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r2, =0x00003b58 + adds r0, r2 + str r0, [r1] + ldrb r0, [r0, 0x3] + movs r1, 0 + cmp r0, 0x4 + bls _0818DE74 + movs r1, 0x1 +_0818DE74: + adds r0, r1, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_818DE5C + + thumb_func_start sub_818DE88 +sub_818DE88: @ 818DE88 + push {lr} + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + ldr r0, =gStringVar2 + bl sub_818DCAC + pop {r0} + bx r0 + .pool + thumb_func_end sub_818DE88 + + thumb_func_start sub_818DEA0 +sub_818DEA0: @ 818DEA0 + push {r4,r5,lr} + ldr r5, =gUnknown_0203CD64 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003b58 + adds r0, r1 + str r0, [r5] + ldr r1, =gUnknown_0860B304 + ldrb r0, [r0, 0xC] + lsls r0, 1 + adds r0, r1 + ldrh r4, [r0] + adds r0, r4, 0 + bl sub_818DE88 + ldr r1, [r5] + movs r0, 0x2 + strb r0, [r1, 0x1] + adds r0, r4, 0 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_818DEA0 + + thumb_func_start sub_818DEDC +sub_818DEDC: @ 818DEDC + push {lr} + bl sub_818DB7C + ldr r0, =gUnknown_0203CD64 + ldr r1, [r0] + movs r0, 0x1 + strb r0, [r1, 0x1] + pop {r0} + bx r0 + .pool + thumb_func_end sub_818DEDC + + thumb_func_start sub_818DEF4 +sub_818DEF4: @ 818DEF4 + push {lr} + bl script_env_2_enable_and_set_ctx_running + pop {r0} + bx r0 + thumb_func_end sub_818DEF4 + + thumb_func_start sub_818DF00 +sub_818DF00: @ 818DF00 + push {r4-r7,lr} + bl Random + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0xF + ands r4, r0 + movs r3, 0 + ldr r5, =gUnknown_0203CD68 + ldr r1, =gUnknown_0860B1A4 + lsls r0, r4, 2 + adds r6, r0, r1 + adds r7, r5, 0 +_0818DF1A: + ldr r2, [r5] + lsls r1, r3, 1 + adds r2, 0x2 + adds r2, r1 + ldr r0, [r6] + adds r1, r0 + ldrh r0, [r1] + strh r0, [r2] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x8 + bls _0818DF1A + ldr r2, [r7] + ldr r0, =gUnknown_0860B1E4 + lsls r1, r4, 1 + adds r0, r1, r0 + ldrh r0, [r0] + strh r0, [r2, 0x14] + ldr r0, =gUnknown_0860B204 + adds r1, r0 + ldrh r0, [r1] + strh r0, [r2, 0x28] + adds r2, 0x2B + strb r4, [r2] + ldr r1, [r7] + movs r0, 0xFF + strb r0, [r1, 0x18] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818DF00 + + thumb_func_start sub_818DF68 +sub_818DF68: @ 818DF68 + push {r4-r6,lr} + ldr r2, =gUnknown_0203CD68 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003b58 + adds r0, r1 + str r0, [r2] + movs r1, 0 + strb r1, [r0] + ldr r0, [r2] + strb r1, [r0, 0x1] + movs r3, 0 + adds r4, r2, 0 + ldr r6, =gGameLanguage + adds r5, r4, 0 + ldr r0, =0x0000ffff + adds r2, r0, 0 +_0818DF8A: + ldr r1, [r5] + lsls r0, r3, 1 + adds r1, 0x2 + adds r1, r0 + ldrh r0, [r1] + orrs r0, r2 + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x8 + bls _0818DF8A + ldr r0, [r4] + ldr r1, =0x0000ffff + strh r1, [r0, 0x14] + movs r1, 0x1 + negs r1, r1 + strh r1, [r0, 0x16] + movs r3, 0 + adds r5, r4, 0 + movs r2, 0 +_0818DFB4: + ldr r0, [r5] + lsls r1, r3, 1 + adds r0, 0x20 + adds r0, r1 + strh r2, [r0] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + bls _0818DFB4 + ldr r0, [r4] + movs r2, 0 + movs r1, 0 + strh r1, [r0, 0x28] + adds r0, 0x2A + strb r2, [r0] + ldr r0, [r4] + adds r0, 0x2C + movs r1, 0x10 + strb r1, [r0] + ldr r0, [r4] + ldrb r1, [r6] + adds r0, 0x2D + strb r1, [r0] + bl sub_818DF00 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818DF68 + + thumb_func_start sub_818E004 +sub_818E004: @ 818E004 + ldr r2, =gUnknown_0203CD68 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003b58 + adds r0, r1 + str r0, [r2] + movs r1, 0 + strb r1, [r0] + ldr r0, [r2] + strb r1, [r0, 0x1] + ldr r0, [r2] + adds r0, 0x2A + strb r1, [r0] + ldr r1, [r2] + ldr r0, =0x0000ffff + strh r0, [r1, 0x16] + bx lr + .pool + thumb_func_end sub_818E004 + + thumb_func_start sub_818E038 +sub_818E038: @ 818E038 + push {lr} + ldr r1, =gUnknown_0203CD68 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r2, =0x00003b58 + adds r0, r2 + str r0, [r1] + ldrb r0, [r0, 0x1] + cmp r0, 0x2 + bne _0818E05C + movs r0, 0x2 + b _0818E066 + .pool +_0818E05C: + cmp r0, 0x1 + beq _0818E064 + movs r0, 0 + b _0818E066 +_0818E064: + movs r0, 0x1 +_0818E066: + pop {r1} + bx r1 + thumb_func_end sub_818E038 + + thumb_func_start sub_818E06C +sub_818E06C: @ 818E06C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, =gSaveBlock1Ptr + ldr r4, [r0] + ldr r0, =0x00003b58 + adds r7, r4, r0 + ldrh r0, [r7, 0x14] + bl sub_811F8D8 + cmp r0, 0 + bne _0818E0EC + ldr r1, =0x00003b83 + adds r0, r4, r1 + ldrb r5, [r0] + ldr r0, =0x00003b5a + adds r0, r4 + mov r8, r0 + adds r1, r4 + mov r10, r1 + ldr r6, =gUnknown_0860B1E4 +_0818E09A: + adds r5, 0x1 + cmp r5, 0xF + ble _0818E0A2 + movs r5, 0 +_0818E0A2: + lsls r4, r5, 1 + adds r0, r4, r6 + ldrh r0, [r0] + bl sub_811F8D8 + cmp r0, 0 + beq _0818E09A + movs r3, 0 + ldr r0, =gUnknown_0860B1E4 + mov r12, r0 + lsls r1, r5, 2 + ldr r0, =gUnknown_0860B204 + mov r9, r0 + ldr r0, =gUnknown_0860B1A4 + adds r6, r1, r0 + mov r2, r8 +_0818E0C2: + lsls r0, r3, 1 + ldr r1, [r6] + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2] + adds r2, 0x2 + adds r3, 0x1 + cmp r3, 0x8 + ble _0818E0C2 + mov r1, r12 + adds r0, r4, r1 + ldrh r0, [r0] + strh r0, [r7, 0x14] + mov r1, r9 + adds r0, r4, r1 + ldrh r0, [r0] + strh r0, [r7, 0x28] + mov r0, r10 + strb r5, [r0] + movs r0, 0xFF + strb r0, [r7, 0x18] +_0818E0EC: + bl sub_818E13C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _0818E118 + movs r0, 0x2 + b _0818E12C + .pool +_0818E118: + cmp r0, 0x2 + beq _0818E126 + bl sub_818E1F4 + lsls r0, 24 + cmp r0, 0 + beq _0818E12A +_0818E126: + movs r0, 0x1 + b _0818E12C +_0818E12A: + movs r0, 0 +_0818E12C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_818E06C + + thumb_func_start sub_818E13C +sub_818E13C: @ 818E13C + push {r4-r7,lr} + movs r7, 0x1 + ldr r5, =gUnknown_0203CD68 + ldr r0, =gSaveBlock1Ptr + ldr r1, [r0] + ldr r2, =0x00003b58 + adds r0, r1, r2 + str r0, [r5] + ldrb r0, [r0, 0x18] + cmp r0, 0xFF + bne _0818E174 + ldr r0, =gStringVar1 + ldr r1, =gUnknown_085EEB7E + bl StringCopy7 + movs r7, 0 + b _0818E1DC + .pool +_0818E174: + ldr r4, =gStringVar1 + ldr r0, =0x00003b70 + adds r1, r0 + adds r0, r4, 0 + bl StringCopy7 + ldr r0, [r5] + adds r0, 0x2D + ldrb r1, [r0] + adds r0, r4, 0 + bl ConvertInternationalString + ldr r0, [r5] + adds r0, 0x18 + bl sub_818E258 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r6, =gSaveBlock2Ptr + ldr r0, [r6] + bl sub_818E258 + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bne _0818E1DC + ldr r0, [r5] + movs r2, 0 + cmp r2, r4 + bcs _0818E1DC + ldr r1, [r6] + ldrb r0, [r0, 0x18] + ldrb r1, [r1] + cmp r0, r1 + bne _0818E1DA +_0818E1BA: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, r4 + bcs _0818E1DC + ldr r0, =gUnknown_0203CD68 + ldr r1, [r0] + adds r1, 0x18 + adds r1, r2 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, r2 + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + beq _0818E1BA +_0818E1DA: + movs r7, 0x2 +_0818E1DC: + adds r0, r7, 0 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_818E13C + + thumb_func_start sub_818E1F4 +sub_818E1F4: @ 818E1F4 + push {r4-r6,lr} + ldr r3, =gUnknown_0203CD68 + ldr r0, =gSaveBlock1Ptr + ldr r1, [r0] + ldr r2, =0x00003b58 + adds r0, r1, r2 + str r0, [r3] + movs r5, 0 + movs r4, 0 + ldr r0, =0x00003b78 + adds r1, r0 + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldrh r1, [r1] + adds r6, r3, 0 + adds r3, r0, 0 + ldrb r2, [r2, 0xA] + cmp r1, r2 + bne _0818E23A +_0818E21A: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bhi _0818E23C + ldr r1, [r6] + lsls r0, r4, 1 + adds r1, 0x20 + adds r1, r0 + ldr r0, [r3] + adds r0, 0xA + adds r0, r4 + ldrh r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + beq _0818E21A +_0818E23A: + movs r5, 0x1 +_0818E23C: + adds r0, r5, 0 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_818E1F4 + + thumb_func_start sub_818E258 +sub_818E258: @ 818E258 + push {lr} + movs r2, 0 + adds r1, r0, 0 + b _0818E268 +_0818E260: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + adds r1, 0x1 +_0818E268: + ldrb r0, [r1] + cmp r0, 0xFF + bne _0818E260 + adds r0, r2, 0 + pop {r1} + bx r1 + thumb_func_end sub_818E258 + + thumb_func_start sub_818E274 +sub_818E274: @ 818E274 + push {r4,lr} + ldr r4, =gStringVar1 + ldr r0, =gUnknown_0203CD68 + ldr r0, [r0] + ldrh r0, [r0, 0x28] + bl ItemId_GetItem + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818E274 + + thumb_func_start sub_818E298 +sub_818E298: @ 818E298 + push {r4,lr} + ldr r4, =gUnknown_0203CD68 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003b58 + adds r0, r1 + str r0, [r4] + bl sub_818E13C + lsls r0, 24 + cmp r0, 0 + beq _0818E2C0 + movs r0, 0 + b _0818E2CC + .pool +_0818E2C0: + ldr r0, [r4] + ldr r1, =gGameLanguage + ldrb r1, [r1] + adds r0, 0x2D + strb r1, [r0] + movs r0, 0x1 +_0818E2CC: + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_818E298 + + thumb_func_start sub_818E2D8 +sub_818E2D8: @ 818E2D8 + ldr r2, =gUnknown_0203CD68 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r3, =0x00003b58 + adds r1, r0, r3 + str r1, [r2] + ldr r1, =0x00003b82 + adds r0, r1 + ldrb r0, [r0] + bx lr + .pool + thumb_func_end sub_818E2D8 + + thumb_func_start sub_818E2FC +sub_818E2FC: @ 818E2FC + push {lr} + bl easy_chat_input_maybe + pop {r0} + bx r0 + thumb_func_end sub_818E2FC + + thumb_func_start sub_818E308 +sub_818E308: @ 818E308 + push {r4-r6,lr} + ldr r5, =gUnknown_0203CD68 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003b58 + adds r0, r1 + str r0, [r5] + ldr r6, =gStringVar1 + ldrh r1, [r0, 0x14] + adds r0, r6, 0 + bl CopyEasyChatWord + ldr r4, =gStringVar2 + ldr r0, [r5] + ldrh r1, [r0, 0x16] + adds r0, r4, 0 + bl CopyEasyChatWord + adds r0, r6, 0 + adds r1, r4, 0 + bl StringCompare + movs r1, 0 + cmp r0, 0 + bne _0818E33C + movs r1, 0x1 +_0818E33C: + adds r0, r1, 0 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_818E308 + + thumb_func_start sub_818E358 +sub_818E358: @ 818E358 + ldr r1, =gUnknown_0203CD68 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r2, =0x00003b58 + adds r0, r2 + str r0, [r1] + ldr r1, =gSpecialVar_0x8005 + ldrh r0, [r0, 0x28] + strh r0, [r1] + bx lr + .pool + thumb_func_end sub_818E358 + + thumb_func_start sub_818E37C +sub_818E37C: @ 818E37C + ldr r1, =gUnknown_0203CD68 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r2, =0x00003b58 + adds r0, r2 + str r0, [r1] + movs r1, 0x1 + strb r1, [r0, 0x1] + bx lr + .pool + thumb_func_end sub_818E37C + + thumb_func_start sub_818E39C +sub_818E39C: @ 818E39C + ldr r1, =gUnknown_0203CD68 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r2, =0x00003b58 + adds r0, r2 + str r0, [r1] + movs r1, 0x2 + strb r1, [r0, 0x1] + bx lr + .pool + thumb_func_end sub_818E39C + + thumb_func_start sub_818E3BC +sub_818E3BC: @ 818E3BC + ldr r1, =gUnknown_0203CD68 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r2, =0x00003b58 + adds r0, r2 + str r0, [r1] + ldr r1, =0x0000ffff + strh r1, [r0, 0x16] + bx lr + .pool + thumb_func_end sub_818E3BC + + thumb_func_start sub_818E3E0 +sub_818E3E0: @ 818E3E0 + push {lr} + bl sub_81AAC70 + pop {r0} + bx r0 + thumb_func_end sub_818E3E0 + + thumb_func_start sub_818E3EC +sub_818E3EC: @ 818E3EC + push {r4,lr} + ldr r4, =gUnknown_0203CD68 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003b58 + adds r0, r1 + str r0, [r4] + bl sub_818E298 + lsls r0, 24 + cmp r0, 0 + beq _0818E41C + ldr r0, [r4] + adds r1, r0, 0 + adds r1, 0x2B + ldrb r1, [r1] + adds r0, 0x2C + b _0818E422 + .pool +_0818E41C: + ldr r0, [r4] + adds r0, 0x2C + movs r1, 0x10 +_0818E422: + strb r1, [r0] + bl sub_818DF00 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_818E3EC + + thumb_func_start sub_818E430 +sub_818E430: @ 818E430 + push {r4,r5,lr} + ldr r1, =gUnknown_0203CD68 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r2, =0x00003b58 + adds r0, r2 + str r0, [r1] + movs r2, 0 + adds r5, r1, 0 + adds r4, r5, 0 + ldr r0, =0x0000ffff + adds r3, r0, 0 +_0818E448: + ldr r1, [r4] + lsls r0, r2, 1 + adds r1, 0x2 + adds r1, r0 + ldrh r0, [r1] + orrs r0, r3 + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x8 + bls _0818E448 + ldr r1, [r5] + ldr r0, =0x0000ffff + strh r0, [r1, 0x14] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818E430 + + thumb_func_start sub_818E47C +sub_818E47C: @ 818E47C + push {lr} + ldr r1, =gSpecialVar_0x8004 + movs r0, 0x11 + strh r0, [r1] + bl easy_chat_input_maybe + pop {r0} + bx r0 + .pool + thumb_func_end sub_818E47C + + thumb_func_start sub_818E490 +sub_818E490: @ 818E490 + push {lr} + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + movs r1, 0x1 + bl RemoveBagItem + pop {r0} + bx r0 + .pool + thumb_func_end sub_818E490 + + thumb_func_start sub_818E4A4 +sub_818E4A4: @ 818E4A4 + push {r4-r6,lr} + ldr r2, =gUnknown_0203CD68 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003b58 + adds r0, r1 + str r0, [r2] + ldr r1, =gUnknown_0203CE7C + ldrh r1, [r1] + strh r1, [r0, 0x28] + movs r3, 0 + adds r4, r2, 0 + ldr r6, =gSaveBlock2Ptr + adds r5, r4, 0 + adds r2, r6, 0 +_0818E4C2: + ldr r1, [r5] + lsls r0, r3, 1 + adds r1, 0x20 + adds r1, r0 + ldr r0, [r2] + adds r0, 0xA + adds r0, r3 + ldrb r0, [r0] + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + bls _0818E4C2 + ldr r0, [r4] + adds r0, 0x18 + ldr r1, [r6] + bl StringCopy7 + ldr r0, [r4] + ldr r1, =gGameLanguage + ldrb r1, [r1] + adds r0, 0x2D + strb r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818E4A4 + + thumb_func_start sub_818E510 +sub_818E510: @ 818E510 + ldr r2, =gUnknown_0203CD68 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r3, =0x00003b58 + adds r1, r0, r3 + str r1, [r2] + ldr r1, =0x00003b82 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + bx lr + .pool + thumb_func_end sub_818E510 + + thumb_func_start sub_818E538 +sub_818E538: @ 818E538 + push {lr} + ldr r2, =gUnknown_0203CD68 + ldr r0, =gSaveBlock1Ptr + ldr r1, [r0] + ldr r0, =0x00003b58 + adds r1, r0 + str r1, [r2] + ldr r0, =gStringVar3 + ldrh r1, [r1, 0x14] + bl CopyEasyChatWord + pop {r0} + bx r0 + .pool + thumb_func_end sub_818E538 + + thumb_func_start sub_818E564 +sub_818E564: @ 818E564 + push {lr} + bl script_env_2_enable_and_set_ctx_running + pop {r0} + bx r0 + thumb_func_end sub_818E564 + + thumb_func_start sub_818E570 +sub_818E570: @ 818E570 + push {r4-r7,lr} + ldr r2, =gUnknown_0203CD68 + ldr r1, =gSaveBlock1Ptr + ldr r1, [r1] + ldr r4, =0x00003b58 + adds r3, r1, r4 + str r3, [r2] + adds r6, r0, 0 + adds r6, 0x2C + ldrb r4, [r6] + adds r7, r2, 0 + cmp r4, 0xF + bhi _0818E5EC + ldrb r0, [r3] + cmp r0, 0 + bne _0818E5EC + movs r5, 0 + ldr r2, =0x00003b83 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r4, r0 + bne _0818E5E4 + adds r4, r7, 0 +_0818E59E: + bl Random + ldr r2, [r4] + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xF + ands r0, r1 + adds r2, 0x2B + strb r0, [r2] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bhi _0818E5C6 + ldr r0, [r4] + adds r0, 0x2B + ldrb r1, [r6] + ldrb r0, [r0] + cmp r1, r0 + beq _0818E59E +_0818E5C6: + ldr r0, [r4] + adds r2, r0, 0 + adds r2, 0x2B + ldrb r0, [r6] + ldr r7, =gUnknown_0203CD68 + ldrb r4, [r2] + cmp r0, r4 + bne _0818E5E4 + ldrb r1, [r2] + adds r3, r1, 0x1 + adds r0, r3, 0 + asrs r0, 4 + lsls r0, 4 + subs r0, r3, r0 + strb r0, [r2] +_0818E5E4: + ldr r0, [r7] + ldrb r1, [r6] + adds r0, 0x2C + strb r1, [r0] +_0818E5EC: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818E570 + + thumb_func_start sub_818E604 +sub_818E604: @ 818E604 + push {r4,lr} + ldr r4, =gUnknown_0203CD6C + ldr r1, [r4] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r0, [r4] + movs r1, 0 + strb r1, [r0, 0x2] + ldr r0, [r4] + strb r1, [r0, 0x3] + ldr r0, [r4] + strb r1, [r0, 0xC] + bl Random + ldr r4, [r4] + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x5 + bl __umodsi3 + strb r0, [r4, 0xD] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818E604 + + thumb_func_start sub_818E638 +sub_818E638: @ 818E638 + push {r4,lr} + ldr r4, =gUnknown_0203CD6C + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003b58 + adds r0, r1 + str r0, [r4] + movs r2, 0 + movs r1, 0x2 + strb r1, [r0] + ldr r0, [r4] + strb r2, [r0, 0x1] + bl sub_818E604 + ldr r1, [r4] + ldr r0, =gGameLanguage + ldrb r0, [r0] + strb r0, [r1, 0xE] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818E638 + + thumb_func_start sub_818E674 +sub_818E674: @ 818E674 + push {lr} + ldr r2, =gUnknown_0203CD6C + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003b58 + adds r0, r1 + str r0, [r2] + movs r3, 0 + movs r1, 0x2 + strb r1, [r0] + ldr r0, [r2] + strb r3, [r0, 0x1] + ldr r2, [r2] + ldrb r0, [r2, 0x2] + cmp r0, 0x5 + beq _0818E69A + ldrb r0, [r2, 0x3] + cmp r0, 0x5 + bne _0818E69E +_0818E69A: + bl sub_818E604 +_0818E69E: + pop {r0} + bx r0 + .pool + thumb_func_end sub_818E674 + + thumb_func_start sub_818E6B0 +sub_818E6B0: @ 818E6B0 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r4, =gUnknown_0203CD6C + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r3, =0x00003b58 + adds r1, r0, r3 + str r1, [r4] + ldrb r0, [r1, 0xC] + cmp r0, r2 + bhi _0818E6EA + strb r2, [r1, 0xC] + ldr r0, [r4] + adds r0, 0x4 + movs r1, 0xFF + movs r2, 0x8 + bl memset + ldr r1, [r4] + ldr r0, =gSaveBlock2Ptr + adds r1, 0x4 + ldr r0, [r0] + ldm r0!, {r2,r3} + stm r1!, {r2,r3} + ldr r1, [r4] + ldr r0, =gGameLanguage + ldrb r0, [r0] + strb r0, [r1, 0xE] +_0818E6EA: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818E6B0 + + thumb_func_start sub_818E704 +sub_818E704: @ 818E704 + push {r4,r5,lr} + adds r2, r0, 0 + movs r3, 0 + movs r4, 0 + ldr r1, =gUnknown_0203CD6C + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r5, =0x00003b58 + adds r0, r5 + str r0, [r1] + ldrb r0, [r0, 0xD] + adds r5, r1, 0 + cmp r0, 0x4 + bhi _0818E76A + lsls r0, 2 + ldr r1, =_0818E73C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0818E73C: + .4byte _0818E750 + .4byte _0818E754 + .4byte _0818E758 + .4byte _0818E75C + .4byte _0818E760 +_0818E750: + ldrb r0, [r2, 0x1] + b _0818E762 +_0818E754: + ldrb r0, [r2, 0x2] + b _0818E762 +_0818E758: + ldrb r0, [r2, 0x3] + b _0818E762 +_0818E75C: + ldrb r0, [r2, 0x4] + b _0818E762 +_0818E760: + ldrb r0, [r2, 0x5] +_0818E762: + cmp r0, 0 + beq _0818E76A + adds r3, r0, 0 + movs r4, 0x1 +_0818E76A: + cmp r4, 0x1 + bne _0818E784 + adds r0, r3, 0 + bl sub_818E6B0 + ldr r0, =gUnknown_0203CD6C + ldr r1, [r0] + ldrb r0, [r1, 0x2] + adds r0, 0x1 + strb r0, [r1, 0x2] + b _0818E78C + .pool +_0818E784: + ldr r1, [r5] + ldrb r0, [r1, 0x3] + adds r0, 0x1 + strb r0, [r1, 0x3] +_0818E78C: + adds r0, r4, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_818E704 + + thumb_func_start sub_818E794 +sub_818E794: @ 818E794 + push {r4,r5,lr} + adds r5, r1, 0 + ldr r4, =gUnknown_0203CD6C + ldr r1, =gSaveBlock1Ptr + ldr r1, [r1] + ldr r2, =0x00003b58 + adds r1, r2 + str r1, [r4] + ldr r2, =gUnknown_0860B324 + ldrb r1, [r1, 0xD] + lsls r1, 2 + adds r1, r2 + ldr r1, [r1] + bl StringCopy + ldr r1, =gUnknown_0860B310 + ldr r0, [r4] + ldrb r0, [r0, 0xD] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r5, 0 + bl StringCopy10 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818E794 + + thumb_func_start sub_818E7E0 +sub_818E7E0: @ 818E7E0 + push {r4,lr} + adds r3, r1, 0 + ldr r2, =gUnknown_0203CD6C + ldr r1, =gSaveBlock1Ptr + ldr r1, [r1] + ldr r4, =0x00003b58 + adds r1, r4 + str r1, [r2] + ldrb r2, [r1, 0xD] + strb r2, [r0] + ldr r2, =gUnknown_0860B310 + ldrb r0, [r1, 0xD] + lsls r0, 2 + adds r0, r2 + ldr r1, [r0] + adds r0, r3, 0 + bl StringCopy + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818E7E0 + + thumb_func_start sub_818E81C +sub_818E81C: @ 818E81C + push {r4,lr} + ldr r3, =gUnknown_0203CD6C + ldr r1, =gSaveBlock1Ptr + ldr r1, [r1] + ldr r4, =0x00003b58 + adds r2, r1, r4 + str r2, [r3] + ldr r2, =0x00003b5c + adds r1, r2 + bl StringCopy + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818E81C + + thumb_func_start sub_818E848 +sub_818E848: @ 818E848 + ldr r2, =gUnknown_0203CD6C + ldr r1, =gSaveBlock1Ptr + ldr r1, [r1] + ldr r3, =0x00003b58 + adds r1, r3 + str r1, [r2] + ldrb r1, [r1, 0xE] + strb r1, [r0] + bx lr + .pool + thumb_func_end sub_818E848 + + thumb_func_start sub_818E868 +sub_818E868: @ 818E868 + push {lr} + lsls r1, 24 + ldr r2, =gUnknown_0860B338 + lsrs r1, 22 + adds r1, r2 + ldr r1, [r1] + bl StringCopy + pop {r0} + bx r0 + .pool + thumb_func_end sub_818E868 + + thumb_func_start sub_818E880 +sub_818E880: @ 818E880 + push {lr} + ldr r1, =gUnknown_0203CD6C + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r2, =0x00003b58 + adds r0, r2 + str r0, [r1] + ldrb r0, [r0, 0x2] + cmp r0, 0x4 + bls _0818E8A4 + movs r0, 0x1 + b _0818E8AE + .pool +_0818E8A4: + cmp r0, 0 + beq _0818E8AC + movs r0, 0 + b _0818E8AE +_0818E8AC: + movs r0, 0x2 +_0818E8AE: + pop {r1} + bx r1 + thumb_func_end sub_818E880 + + thumb_func_start sub_818E8B4 +sub_818E8B4: @ 818E8B4 + push {lr} + ldr r1, =gUnknown_0203CD6C + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r2, =0x00003b58 + adds r0, r2 + str r0, [r1] + ldrb r0, [r0, 0x1] + cmp r0, 0x1 + beq _0818E8D8 + movs r0, 0 + b _0818E8DA + .pool +_0818E8D8: + movs r0, 0x1 +_0818E8DA: + pop {r1} + bx r1 + thumb_func_end sub_818E8B4 + + thumb_func_start sub_818E8E0 +sub_818E8E0: @ 818E8E0 + push {r4,lr} + movs r3, 0 + ldr r1, =gUnknown_0203CD6C + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r4, =0x00003b58 + adds r2, r0, r4 + str r2, [r1] + ldrb r0, [r2, 0x2] + cmp r0, 0x4 + bhi _0818E8FC + ldrb r0, [r2, 0x3] + cmp r0, 0x4 + bls _0818E8FE +_0818E8FC: + movs r3, 0x1 +_0818E8FE: + adds r0, r3, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_818E8E0 + + thumb_func_start sub_818E914 +sub_818E914: @ 818E914 + push {lr} + ldr r0, =gStringVar2 + ldr r1, =gStringVar1 + bl sub_818E794 + pop {r0} + bx r0 + .pool + thumb_func_end sub_818E914 + + thumb_func_start sub_818E92C +sub_818E92C: @ 818E92C + push {lr} + ldr r1, =c2_exit_to_overworld_2_switch + movs r0, 0x3 + bl sub_81357FC + pop {r0} + bx r0 + .pool + thumb_func_end sub_818E92C + + thumb_func_start sub_818E940 +sub_818E940: @ 818E940 + ldr r1, =gUnknown_0203CD6C + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r2, =0x00003b58 + adds r0, r2 + str r0, [r1] + movs r1, 0x1 + strb r1, [r0, 0x1] + bx lr + .pool + thumb_func_end sub_818E940 + + thumb_func_start sub_818E960 +sub_818E960: @ 818E960 + ldr r1, =gUnknown_0203CD6C + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r2, =0x00003b58 + adds r0, r2 + str r0, [r1] + ldr r2, =gSpecialVar_0x8005 + ldr r1, =gUnknown_0860B34C + ldrb r0, [r0, 0xD] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2] + bx lr + .pool + thumb_func_end sub_818E960 + + thumb_func_start sub_818E990 +sub_818E990: @ 818E990 + ldr r1, =gUnknown_0203CD6C + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r2, =0x00003b58 + adds r0, r2 + str r0, [r1] + ldrb r0, [r0, 0xD] + bx lr + .pool + thumb_func_end sub_818E990 + + thumb_func_start sub_818E9AC +sub_818E9AC: @ 818E9AC + push {lr} + ldr r1, =gUnknown_0860D090 + ldr r0, =gSpecialVar_0x8004 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + bx r0 + .pool + thumb_func_end sub_818E9AC + + thumb_func_start sub_818E9CC +sub_818E9CC: @ 818E9CC + push {r4-r7,lr} + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + lsrs r5, r0, 30 + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + lsrs r7, r0, 16 + ldr r0, [r4] + ldr r2, =0x00000ca8 + adds r0, r2 + movs r6, 0 + strb r6, [r0] + ldr r1, [r4] + adds r2, 0xA + adds r0, r1, r2 + strh r6, [r0] + ldr r0, =0x00000ca9 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r4] + ldr r2, =0x00000ca9 + adds r1, r2 + ldrb r2, [r1] + movs r0, 0x9 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r4, [r4] + ldr r0, =0x00000cdc + adds r3, r4, r0 + ldr r2, =gUnknown_0860D0EC + lsls r1, r5, 2 + lsls r0, r7, 3 + adds r1, r0 + adds r1, r2 + ldr r0, [r3] + ldr r1, [r1] + ands r0, r1 + cmp r0, 0 + bne _0818EA3E + lsls r0, r5, 1 + lsls r1, r7, 2 + adds r0, r1 + ldr r2, =0x00000d0c + adds r1, r4, r2 + adds r1, r0 + strh r6, [r1] +_0818EA3E: + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + movs r1, 0x4 + ldrsb r1, [r0, r1] + movs r2, 0x5 + ldrsb r2, [r0, r2] + movs r3, 0x1 + negs r3, r3 + movs r0, 0 + bl saved_warp2_set + ldr r0, =gUnknown_02038BCA + strh r6, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818E9CC + + thumb_func_start sub_818EA84 +sub_818EA84: @ 818EA84 + push {r4-r6,lr} + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + lsrs r5, r0, 30 + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0x9 + bls _0818EAA8 + b _0818ED10 +_0818EAA8: + lsls r0, 2 + ldr r1, =_0818EAC8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0818EAC8: + .4byte _0818EAF0 + .4byte _0818EB14 + .4byte _0818EB48 + .4byte _0818EB64 + .4byte _0818EB80 + .4byte _0818EB98 + .4byte _0818EBB4 + .4byte _0818EC40 + .4byte _0818ECD0 + .4byte _0818ECF4 +_0818EAF0: + ldr r3, =gScriptResult + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + lsls r1, r5, 1 + lsls r2, r6, 2 + adds r1, r2 + ldr r2, =0x00000d0c + adds r0, r2 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r3] + b _0818ED10 + .pool +_0818EB14: + ldr r4, =gScriptResult + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldr r3, =0x00000cdc + adds r2, r3 + ldr r3, =gUnknown_0860D0EC + lsls r0, r5, 2 + lsls r1, r6, 3 + adds r0, r1 + adds r0, r3 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + strh r0, [r4] + b _0818ED10 + .pool +_0818EB48: + ldr r1, =gScriptResult + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r2, =0x00000d08 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 31 + b _0818ECBE + .pool +_0818EB64: + ldr r1, =gScriptResult + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r3, =0x00000d08 + adds r0, r3 + ldrb r0, [r0] + lsls r0, 30 + b _0818ECBE + .pool +_0818EB80: + ldr r1, =gScriptResult + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r2, =0x00000d08 + adds r0, r2 + b _0818ECBA + .pool +_0818EB98: + ldr r1, =gScriptResult + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r3, =0x00000d08 + adds r0, r3 + ldrb r0, [r0] + lsls r0, 28 + b _0818ECBE + .pool +_0818EBB4: + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bne _0818EC04 + cmp r5, 0 + beq _0818EBE8 + ldr r1, =gScriptResult + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r2, =0x00000d08 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 26 + b _0818ECBE + .pool +_0818EBE8: + ldr r1, =gScriptResult + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r3, =0x00000d08 + adds r0, r3 + ldrb r0, [r0] + lsls r0, 27 + b _0818ECBE + .pool +_0818EC04: + cmp r5, 0 + beq _0818EC24 + ldr r1, =gScriptResult + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r2, =0x00000d08 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 30 + b _0818ECBE + .pool +_0818EC24: + ldr r1, =gScriptResult + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r3, =0x00000d08 + adds r0, r3 + ldrb r0, [r0] + lsls r0, 31 + b _0818ECBE + .pool +_0818EC40: + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bne _0818EC90 + cmp r5, 0 + beq _0818EC74 + ldr r1, =gScriptResult + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r2, =0x00000d08 + adds r0, r2 + ldrb r0, [r0] + lsrs r0, 7 + strh r0, [r1] + b _0818ED10 + .pool +_0818EC74: + ldr r1, =gScriptResult + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r3, =0x00000d08 + adds r0, r3 + ldrb r0, [r0] + lsls r0, 25 + b _0818ECBE + .pool +_0818EC90: + cmp r5, 0 + beq _0818ECB0 + ldr r1, =gScriptResult + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r2, =0x00000d08 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 28 + b _0818ECBE + .pool +_0818ECB0: + ldr r1, =gScriptResult + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r3, =0x00000d08 + adds r0, r3 +_0818ECBA: + ldrb r0, [r0] + lsls r0, 29 +_0818ECBE: + lsrs r0, 31 + strh r0, [r1] + b _0818ED10 + .pool +_0818ECD0: + bl sub_81B8558 + ldr r2, =gUnknown_0203CEF8 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + movs r1, 0xCB + lsls r1, 4 + adds r0, r1 + ldrh r1, [r0] + strb r1, [r2] + ldrh r0, [r0] + lsrs r0, 8 + strb r0, [r2, 0x1] + b _0818ED10 + .pool +_0818ECF4: + ldr r2, =gScriptResult + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r3, =0x00000d0a + adds r0, r1, r3 + ldrb r0, [r0] + lsls r0, 1 + adds r3, 0x1 + adds r1, r3 + ldr r3, =0x0000fffd + adds r0, r3 + ldrb r1, [r1] + adds r0, r1 + strh r0, [r2] +_0818ED10: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818EA84 + + thumb_func_start sub_818ED28 +sub_818ED28: @ 818ED28 + push {r4,r5,lr} + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + lsrs r4, r0, 30 + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0x8 + bls _0818ED4C + b _0818F01E +_0818ED4C: + lsls r0, 2 + ldr r1, =_0818ED6C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0818ED6C: + .4byte _0818ED90 + .4byte _0818EDB4 + .4byte _0818EE10 + .4byte _0818EE34 + .4byte _0818EE5C + .4byte _0818EE78 + .4byte _0818EEA0 + .4byte _0818EF50 + .4byte _0818F008 +_0818ED90: + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + lsls r0, r4, 1 + lsls r1, r5, 2 + adds r0, r1 + ldr r1, =0x00000d0c + adds r2, r1 + adds r2, r0 + ldr r0, =gSpecialVar_0x8006 + ldrh r0, [r0] + strh r0, [r2] + b _0818F01E + .pool +_0818EDB4: + ldr r0, =gSpecialVar_0x8006 + ldrh r0, [r0] + cmp r0, 0 + beq _0818EDE8 + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldr r0, =0x00000cdc + adds r2, r0 + ldr r3, =gUnknown_0860D0EC + lsls r1, r4, 2 + lsls r0, r5, 3 + adds r1, r0 + adds r1, r3 + ldr r0, [r2] + ldr r1, [r1] + orrs r0, r1 + str r0, [r2] + b _0818F01E + .pool +_0818EDE8: + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldr r1, =0x00000cdc + adds r2, r1 + ldr r3, =gUnknown_0860D0FC + lsls r1, r4, 2 + lsls r0, r5, 3 + adds r1, r0 + adds r1, r3 + ldr r0, [r2] + ldr r1, [r1] + ands r0, r1 + str r0, [r2] + b _0818F01E + .pool +_0818EE10: + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldr r0, =gSpecialVar_0x8006 + ldrb r0, [r0] + ldr r1, =0x00000d08 + adds r2, r1 + movs r1, 0x1 + ands r1, r0 + ldrb r3, [r2] + movs r0, 0x2 + negs r0, r0 + b _0818EF74 + .pool +_0818EE34: + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + ldr r0, =gSpecialVar_0x8006 + ldrb r0, [r0] + ldr r2, =0x00000d08 + adds r3, r2 + movs r1, 0x1 + ands r1, r0 + lsls r1, 1 + ldrb r2, [r3] + movs r0, 0x3 + negs r0, r0 + b _0818EFF4 + .pool +_0818EE5C: + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + ldr r0, =gSpecialVar_0x8006 + ldrb r0, [r0] + ldr r1, =0x00000d08 + adds r3, r1 + b _0818EFE8 + .pool +_0818EE78: + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + ldr r0, =gSpecialVar_0x8006 + ldrb r0, [r0] + ldr r2, =0x00000d08 + adds r3, r2 + movs r1, 0x1 + ands r1, r0 + lsls r1, 3 + ldrb r2, [r3] + movs r0, 0x9 + negs r0, r0 + b _0818EFF4 + .pool +_0818EEA0: + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x1 + bne _0818EF00 + cmp r4, 0 + beq _0818EEDC + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + ldr r0, =gSpecialVar_0x8006 + ldrb r0, [r0] + ldr r2, =0x00000d08 + adds r3, r2 + ands r1, r0 + lsls r1, 5 + ldrb r2, [r3] + movs r0, 0x21 + negs r0, r0 + b _0818EFF4 + .pool +_0818EEDC: + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + ldr r0, =gSpecialVar_0x8006 + ldrb r0, [r0] + ldr r2, =0x00000d08 + adds r3, r2 + ands r1, r0 + lsls r1, 4 + ldrb r2, [r3] + movs r0, 0x11 + negs r0, r0 + b _0818EFF4 + .pool +_0818EF00: + cmp r4, 0 + beq _0818EF2C + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + ldr r0, =gSpecialVar_0x8006 + ldrb r0, [r0] + ldr r1, =0x00000d08 + adds r3, r1 + movs r1, 0x1 + ands r1, r0 + lsls r1, 1 + ldrb r2, [r3] + movs r0, 0x3 + negs r0, r0 + b _0818EFF4 + .pool +_0818EF2C: + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldr r0, =gSpecialVar_0x8006 + ldrb r0, [r0] + ldr r1, =0x00000d08 + adds r2, r1 + movs r1, 0x1 + ands r1, r0 + ldrb r3, [r2] + movs r0, 0x2 + negs r0, r0 + b _0818EF74 + .pool +_0818EF50: + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x1 + bne _0818EFB0 + cmp r4, 0 + beq _0818EF8C + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldr r0, =gSpecialVar_0x8006 + ldrb r1, [r0] + ldr r0, =0x00000d08 + adds r2, r0 + lsls r1, 7 + ldrb r3, [r2] + movs r0, 0x7F +_0818EF74: + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + b _0818F01E + .pool +_0818EF8C: + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + ldr r0, =gSpecialVar_0x8006 + ldrb r0, [r0] + ldr r2, =0x00000d08 + adds r3, r2 + ands r1, r0 + lsls r1, 6 + ldrb r2, [r3] + movs r0, 0x41 + negs r0, r0 + b _0818EFF4 + .pool +_0818EFB0: + cmp r4, 0 + beq _0818EFDC + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + ldr r0, =gSpecialVar_0x8006 + ldrb r0, [r0] + ldr r1, =0x00000d08 + adds r3, r1 + movs r1, 0x1 + ands r1, r0 + lsls r1, 3 + ldrb r2, [r3] + movs r0, 0x9 + negs r0, r0 + b _0818EFF4 + .pool +_0818EFDC: + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + ldr r0, =gSpecialVar_0x8006 + ldrb r0, [r0] + ldr r2, =0x00000d08 + adds r3, r2 +_0818EFE8: + movs r1, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 +_0818EFF4: + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _0818F01E + .pool +_0818F008: + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldr r0, =gUnknown_0203CEF8 + ldrb r1, [r0] + ldrb r0, [r0, 0x1] + lsls r0, 8 + orrs r1, r0 + movs r0, 0xCB + lsls r0, 4 + adds r2, r0 + strh r1, [r2] +_0818F01E: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818ED28 + + thumb_func_start sub_818F02C +sub_818F02C: @ 818F02C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x3C + movs r0, 0 + str r0, [sp, 0x8] + str r0, [sp, 0xC] + str r0, [sp, 0x10] + movs r0, 0x20 + bl AllocZeroed + str r0, [sp, 0x18] + movs r0, 0x18 + bl AllocZeroed + str r0, [sp, 0x1C] + ldr r4, =gSaveBlock2Ptr + ldr r1, [r4] + ldr r2, =0x00000ca9 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 30 + adds r0, 0x1 + ldr r3, =0x00000d0a + adds r1, r3 + strb r0, [r1] + ldr r0, =0x000040ce + bl VarGet + ldr r1, [r4] + adds r0, 0x1 + ldr r5, =0x00000d0b + adds r1, r5 + strb r0, [r1] + ldr r2, [r4] + ldr r7, =0x00000d24 + adds r3, r2, r7 + ldrh r0, [r3] + ldr r5, =0x000003ff + adds r1, r5, 0 + orrs r0, r1 + strh r0, [r3] + ldr r3, =0x00000d25 + adds r2, r3 + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldr r1, [r4] + adds r1, r3 + ldrb r2, [r1] + movs r0, 0x19 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r4] + adds r1, r3 + ldrb r2, [r1] + movs r0, 0x1F + ands r0, r2 + strb r0, [r1] + movs r7, 0 + mov r10, r7 + mov r8, r4 + ldr r0, =gUnknown_02024488 + mov r9, r0 + movs r4, 0 +_0818F0BA: + mov r1, r8 + ldr r0, [r1] + ldr r2, =0x00000caa + adds r0, r2 + adds r0, r4 + ldrh r0, [r0] + movs r3, 0x64 + muls r0, r3 + add r0, r9 + movs r1, 0xB + movs r2, 0 + bl GetMonData + mov r5, r8 + ldr r1, [r5] + ldr r7, =0x00000d64 + adds r1, r7 + adds r1, r4 + strh r0, [r1] + movs r5, 0 + mov r0, r10 + lsls r7, r0, 4 + adds r6, r7, 0 +_0818F0E8: + mov r1, r8 + ldr r0, [r1] + ldr r2, =0x00000caa + adds r0, r2 + adds r0, r4 + ldrh r0, [r0] + movs r3, 0x64 + muls r0, r3 + add r0, r9 + adds r1, r5, 0 + adds r1, 0xD + movs r2, 0 + bl GetMonData + mov r2, r8 + ldr r1, [r2] + ldr r3, =0x00000efc + adds r1, r3 + adds r1, r6 + strh r0, [r1] + adds r6, 0x2 + adds r5, 0x1 + cmp r5, 0x3 + ble _0818F0E8 + movs r5, 0 + ldr r6, =gSaveBlock2Ptr +_0818F11C: + ldr r0, [r6] + ldr r1, =0x00000caa + adds r0, r1 + adds r0, r4 + ldrh r0, [r0] + movs r2, 0x64 + muls r0, r2 + add r0, r9 + adds r1, r5, 0 + adds r1, 0x1A + movs r2, 0 + bl GetMonData + ldr r1, [r6] + adds r2, r5, r7 + ldr r3, =0x00000f04 + adds r1, r3 + adds r1, r2 + strb r0, [r1] + adds r5, 0x1 + cmp r5, 0x5 + ble _0818F11C + mov r5, r8 + ldr r0, [r5] + ldr r1, =0x00000caa + adds r0, r1 + adds r0, r4 + ldrh r0, [r0] + movs r2, 0x64 + muls r0, r2 + add r0, r9 + bl GetNature + ldr r1, [r5] + adds r1, r7 + ldr r3, =0x00000f0a + adds r1, r3 + strb r0, [r1] + adds r4, 0x2 + movs r5, 0x1 + add r10, r5 + mov r7, r10 + cmp r7, 0x2 + ble _0818F0BA + mov r10, r5 + movs r0, 0x4 + str r0, [sp, 0x34] + movs r1, 0x6 + str r1, [sp, 0x38] +_0818F17E: + mov r2, r10 + cmp r2, 0x5 + ble _0818F22C +_0818F184: + bl sub_81A39C4 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_8162548 + lsls r0, 16 + lsrs r4, r0, 16 + movs r5, 0x1 + cmp r5, r10 + bge _0818F1CA + ldr r3, =gSaveBlock2Ptr + ldr r0, [r3] + ldr r7, =0x00000d28 + adds r0, r7 + ldrh r0, [r0] + lsls r0, 22 + lsrs r0, 22 + adds r2, r3, 0 + cmp r0, r4 + beq _0818F1CA + ldr r3, =0x00000d24 +_0818F1B2: + adds r5, 0x1 + cmp r5, r10 + bge _0818F1CA + ldr r0, [r2] + lsls r1, r5, 2 + adds r0, r1 + adds r0, r3 + ldrh r0, [r0] + lsls r0, 22 + lsrs r0, 22 + cmp r0, r4 + bne _0818F1B2 +_0818F1CA: + cmp r5, r10 + bne _0818F184 + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + ldr r1, [sp, 0x34] + adds r3, r1 + ldr r2, =0x00000d24 + adds r3, r2 + ldr r5, =0x000003ff + adds r0, r5, 0 + adds r2, r4, 0 + ands r2, r0 + ldrh r0, [r3] + ldr r7, =0xfffffc00 + adds r1, r7, 0 + b _0818F292 + .pool +_0818F22C: + bl sub_81A39C4 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_8162548 + lsls r0, 16 + lsrs r4, r0, 16 + movs r5, 0x1 + cmp r5, r10 + bge _0818F274 + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + ldr r2, =0x00000d28 + adds r0, r2 + ldrh r0, [r0] + lsls r0, 22 + lsrs r0, 22 + adds r2, r1, 0 + cmp r0, r4 + beq _0818F274 + ldr r3, =0x00000d24 +_0818F25C: + adds r5, 0x1 + cmp r5, r10 + bge _0818F274 + ldr r0, [r2] + lsls r1, r5, 2 + adds r0, r1 + adds r0, r3 + ldrh r0, [r0] + lsls r0, 22 + lsrs r0, 22 + cmp r0, r4 + bne _0818F25C +_0818F274: + cmp r5, r10 + bne _0818F22C + ldr r5, =gSaveBlock2Ptr + ldr r3, [r5] + ldr r7, [sp, 0x34] + adds r3, r7 + ldr r0, =0x00000d24 + adds r3, r0 + ldr r1, =0x000003ff + adds r0, r1, 0 + adds r2, r4, 0 + ands r2, r0 + ldrh r0, [r3] + ldr r5, =0xfffffc00 + adds r1, r5, 0 +_0818F292: + ands r0, r1 + orrs r0, r2 + strh r0, [r3] + movs r5, 0 + lsls r4, 16 + str r4, [sp, 0x2C] + ldr r7, [sp, 0x38] + str r7, [sp, 0x20] +_0818F2A2: + lsls r0, r5, 1 + mov r9, r0 + adds r1, r5, 0x1 + str r1, [sp, 0x24] + lsls r2, r5, 2 + str r2, [sp, 0x28] +_0818F2AE: + ldr r3, [sp, 0x2C] + lsrs r0, r3, 16 + bl sub_8163524 + lsls r0, 16 + lsrs r6, r0, 16 + movs r7, 0 + cmp r7, r5 + bge _0818F300 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, [sp, 0x8] + mov r8, r1 + ldr r2, [sp, 0xC] + mov r12, r2 + ldr r3, =0x00000d64 + adds r0, r3 + ldr r1, [sp, 0x20] + adds r4, r1, r0 +_0818F2D4: + ldrh r3, [r4] + cmp r3, r6 + beq _0818F300 + ldr r2, =gUnknown_0203BC8C + ldr r1, [r2] + lsls r0, r6, 4 + adds r2, r0, r1 + ldrh r0, [r2] + cmp r8, r0 + beq _0818F300 + cmp r12, r0 + beq _0818F300 + lsls r0, r3, 4 + adds r0, r1 + ldrb r0, [r0, 0xA] + ldrb r2, [r2, 0xA] + cmp r0, r2 + beq _0818F300 + adds r4, 0x2 + adds r7, 0x1 + cmp r7, r5 + blt _0818F2D4 +_0818F300: + cmp r7, r5 + bne _0818F2AE + ldr r3, =gSaveBlock2Ptr + ldr r0, [r3] + ldr r1, [sp, 0x38] + add r1, r9 + ldr r5, =0x00000d64 + adds r0, r5 + adds r0, r1 + strh r6, [r0] + ldr r2, [sp, 0x28] + add r2, sp + adds r2, 0x8 + ldr r0, =gUnknown_0203BC8C + ldr r1, [r0] + lsls r0, r6, 4 + adds r0, r1 + ldrh r0, [r0] + str r0, [r2] + ldr r5, [sp, 0x24] + cmp r5, 0x2 + ble _0818F2A2 + ldr r2, [r3] + ldr r7, [sp, 0x34] + adds r2, r7 + ldr r0, =0x00000d25 + adds r2, r0 + ldrb r0, [r2] + movs r3, 0x5 + negs r3, r3 + adds r1, r3, 0 + ands r0, r1 + strb r0, [r2] + ldr r5, =gSaveBlock2Ptr + ldr r2, [r5] + adds r2, r7 + ldr r7, =0x00000d25 + adds r2, r7 + ldrb r0, [r2] + subs r3, 0x14 + adds r1, r3, 0 + ands r0, r1 + strb r0, [r2] + ldr r1, [r5] + ldr r5, [sp, 0x34] + adds r1, r5 + adds r1, r7 + ldrb r2, [r1] + movs r0, 0x1F + ands r0, r2 + strb r0, [r1] + adds r5, 0x4 + str r5, [sp, 0x34] + ldr r7, [sp, 0x38] + adds r7, 0x6 + str r7, [sp, 0x38] + movs r0, 0x1 + add r10, r0 + mov r1, r10 + cmp r1, 0xF + bgt _0818F37C + b _0818F17E +_0818F37C: + movs r7, 0 + ldr r2, [sp, 0x18] + strh r7, [r2] + movs r3, 0 + mov r10, r3 + ldr r6, =gBitTable + ldr r5, =gBaseStats +_0818F38A: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + mov r2, r10 + lsls r1, r2, 1 + ldr r3, =0x00000caa + adds r0, r3 + adds r0, r1 + ldrh r0, [r0] + subs r4, r0, 0x1 + movs r0, 0x64 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x3B + movs r2, 0 + bl GetMonData + ldr r2, [sp, 0x18] + ldrh r1, [r2] + adds r1, r0 + strh r1, [r2] + adds r0, r4, 0 + movs r1, 0x3C + movs r2, 0 + bl GetMonData + ldr r3, [sp, 0x18] + ldrh r1, [r3] + adds r1, r0 + strh r1, [r3] + adds r0, r4, 0 + movs r1, 0x3E + movs r2, 0 + bl GetMonData + ldr r2, [sp, 0x18] + ldrh r1, [r2] + adds r1, r0 + strh r1, [r2] + adds r0, r4, 0 + movs r1, 0x3F + movs r2, 0 + bl GetMonData + ldr r3, [sp, 0x18] + ldrh r1, [r3] + adds r1, r0 + strh r1, [r3] + adds r0, r4, 0 + movs r1, 0x3D + movs r2, 0 + bl GetMonData + ldr r2, [sp, 0x18] + ldrh r1, [r2] + adds r1, r0 + strh r1, [r2] + adds r0, r4, 0 + movs r1, 0x3A + movs r2, 0 + bl GetMonData + ldr r3, [sp, 0x18] + ldrh r1, [r3] + adds r1, r0 + strh r1, [r3] + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r0, [r1, 0x6] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + orrs r7, r0 + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r0, [r1, 0x7] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + orrs r7, r0 + movs r0, 0x1 + add r10, r0 + mov r1, r10 + cmp r1, 0x2 + ble _0818F38A + movs r4, 0 + movs r1, 0x1 + movs r5, 0x1F +_0818F458: + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + beq _0818F462 + adds r4, 0x1 +_0818F462: + asrs r7, 1 + subs r5, 0x1 + cmp r5, 0 + bge _0818F458 + bl sub_8165C40 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x14] + adds r2, r0, 0 + adds r0, r4, 0 + muls r0, r2 + movs r1, 0x14 + bl __divsi3 + ldr r3, [sp, 0x18] + ldrh r1, [r3] + adds r1, r0 + strh r1, [r3] + movs r5, 0x1 + mov r10, r5 + adds r6, r3, 0 + adds r6, 0x2 + movs r7, 0x2 + str r7, [sp, 0x30] +_0818F494: + movs r7, 0 + strh r7, [r6] + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + mov r2, r10 + lsls r1, r2, 2 + adds r0, r1 + ldr r3, =0x00000d24 + adds r0, r3 + ldrh r0, [r0] + lsls r0, 22 + lsrs r0, 22 + bl sub_8190168 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r5, 0 + ldr r0, [sp, 0x30] + mov r9, r0 +_0818F4BC: + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + mov r4, r9 + add r4, r10 + adds r4, r5 + lsls r4, 1 + ldr r2, =0x00000d64 + adds r0, r2 + adds r0, r4 + ldrh r1, [r0] + ldr r3, =gUnknown_0203BC8C + ldr r0, [r3] + lsls r1, 4 + adds r1, r0 + ldrh r0, [r1] + ldrb r3, [r1, 0xB] + ldrb r1, [r1, 0xC] + str r1, [sp] + ldr r1, [sp, 0x1C] + str r1, [sp, 0x4] + ldr r1, [sp, 0x14] + mov r2, r8 + bl sub_818F720 + ldr r2, [sp, 0x1C] + ldr r1, [r2, 0x4] + ldrh r0, [r6] + adds r0, r1 + ldr r1, [r2, 0x8] + adds r0, r1 + ldr r1, [r2, 0x10] + adds r0, r1 + ldr r1, [r2, 0x14] + adds r0, r1 + ldr r1, [r2, 0xC] + adds r0, r1 + ldr r1, [r2] + adds r0, r1 + strh r0, [r6] + ldr r3, =gSaveBlock2Ptr + ldr r0, [r3] + ldr r1, =0x00000d64 + adds r0, r1 + adds r0, r4 + ldrh r0, [r0] + ldr r2, =gUnknown_0203BC8C + ldr r1, [r2] + lsls r0, 4 + adds r0, r1 + ldrh r0, [r0] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + ldr r3, =gBaseStats + adds r1, r3 + ldrb r0, [r1, 0x6] + lsls r0, 2 + ldr r2, =gBitTable + adds r0, r2 + ldr r0, [r0] + orrs r7, r0 + ldrb r0, [r1, 0x7] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + orrs r7, r0 + adds r5, 0x1 + cmp r5, 0x2 + ble _0818F4BC + movs r4, 0 + movs r1, 0x1 + movs r5, 0x1F +_0818F54C: + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + beq _0818F556 + adds r4, 0x1 +_0818F556: + asrs r7, 1 + subs r5, 0x1 + cmp r5, 0 + bge _0818F54C + ldr r3, [sp, 0x14] + adds r0, r4, 0 + muls r0, r3 + movs r1, 0x14 + bl __divsi3 + ldrh r1, [r6] + adds r1, r0 + strh r1, [r6] + adds r6, 0x2 + ldr r5, [sp, 0x30] + adds r5, 0x2 + str r5, [sp, 0x30] + movs r7, 0x1 + add r10, r7 + mov r0, r10 + cmp r0, 0xF + ble _0818F494 + movs r1, 0 + mov r10, r1 + ldr r2, =0x000003ff + mov r8, r2 +_0818F58A: + mov r5, r10 + adds r5, 0x1 + adds r7, r5, 0 + cmp r5, 0xF + bgt _0818F626 + mov r3, r10 + lsls r0, r3, 1 + ldr r1, [sp, 0x18] + adds r6, r0, r1 + lsls r0, r5, 1 + adds r4, r0, r1 +_0818F5A0: + ldrh r1, [r6] + ldrh r0, [r4] + cmp r1, r0 + bcc _0818F5C2 + cmp r1, r0 + bne _0818F61E + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + lsls r0, r5, 2 + adds r0, r1, r0 + ldr r2, =0x00000d24 + adds r0, r2 + ldrh r0, [r0] + lsls r2, r0, 22 + lsrs r0, r2, 22 + cmp r0, r8 + bne _0818F602 +_0818F5C2: + mov r0, r10 + adds r1, r5, 0 + ldr r2, [sp, 0x18] + bl sub_818F904 + b _0818F600 + .pool +_0818F600: + b _0818F61E +_0818F602: + mov r3, r10 + lsls r0, r3, 2 + adds r0, r1, r0 + ldr r1, =0x00000d24 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 22 + cmp r0, r2 + bls _0818F61E + mov r0, r10 + adds r1, r5, 0 + ldr r2, [sp, 0x18] + bl sub_818F904 +_0818F61E: + adds r4, 0x2 + adds r5, 0x1 + cmp r5, 0xF + ble _0818F5A0 +_0818F626: + mov r10, r7 + mov r2, r10 + cmp r2, 0xE + ble _0818F58A + bl sub_81A3610 + lsls r0, 24 + cmp r0, 0 + beq _0818F6EE + movs r3, 0 + mov r10, r3 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r4, =0x00000d24 + adds r1, r4 + ldrh r1, [r1] + lsls r1, 22 + lsrs r1, 22 + ldr r3, =0x000003ff + adds r2, r0, 0 + ldr r6, =gUnknown_0860D3F1 + cmp r1, r3 + beq _0818F674 + adds r5, r2, 0 +_0818F656: + movs r7, 0x1 + add r10, r7 + mov r0, r10 + cmp r0, 0xF + bgt _0818F674 + ldr r0, [r5] + mov r7, r10 + lsls r1, r7, 2 + adds r0, r1 + adds r0, r4 + ldrh r0, [r0] + lsls r0, 22 + lsrs r0, 22 + cmp r0, r3 + bne _0818F656 +_0818F674: + mov r1, r10 + lsls r0, r1, 1 + adds r0, r6 + ldrb r0, [r0] + cmp r0, 0 + beq _0818F6AC + movs r5, 0 + ldr r2, [r2] + ldr r3, =0x00000d24 + adds r2, r3 + ldrh r1, [r2] + ldr r0, =0xfffffc00 + ands r0, r1 + ldr r7, =0x000003fe + adds r1, r7, 0 + b _0818F6BE + .pool +_0818F6AC: + movs r5, 0x1 + ldr r2, [r2] + ldr r0, =0x00000d28 + adds r2, r0 + ldrh r1, [r2] + ldr r0, =0xfffffc00 + ands r0, r1 + ldr r3, =0x000003fe + adds r1, r3, 0 +_0818F6BE: + orrs r0, r1 + strh r0, [r2] + movs r7, 0 + mov r10, r7 + lsls r0, r5, 1 + adds r0, r5 + lsls r4, r0, 1 +_0818F6CC: + mov r1, r10 + lsls r0, r1, 24 + lsrs r0, 24 + bl sub_81A4FF0 + ldr r1, =gSaveBlock2Ptr + ldr r1, [r1] + ldr r2, =0x00000d64 + adds r1, r2 + adds r1, r4 + strh r0, [r1] + adds r4, 0x2 + movs r3, 0x1 + add r10, r3 + mov r5, r10 + cmp r5, 0x2 + ble _0818F6CC +_0818F6EE: + ldr r0, [sp, 0x18] + bl Free + ldr r0, [sp, 0x1C] + bl Free + add sp, 0x3C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818F02C + + thumb_func_start sub_818F720 +sub_818F720: @ 818F720 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + adds r7, r1, 0 + mov r9, r2 + ldr r1, [sp, 0x3C] + ldr r2, [sp, 0x40] + mov r8, r2 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r3, 24 + lsrs r5, r3, 24 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0x18] + movs r1, 0 + adds r4, r5, 0 + movs r3, 0x1 + movs r2, 0x5 +_0818F74C: + adds r0, r4, 0 + ands r0, r3 + cmp r0, 0 + beq _0818F756 + adds r1, 0x1 +_0818F756: + lsrs r4, 1 + subs r2, 0x1 + cmp r2, 0 + bge _0818F74C + movs r0, 0xFF + lsls r0, 1 + bl __divsi3 + lsls r0, 16 + lsrs r3, r0, 16 + lsls r0, r6, 3 + mov r10, r0 + movs r1, 0 + mov r12, r1 + mov r1, sp + movs r2, 0x5 +_0818F776: + mov r0, r12 + str r0, [r1] + adds r0, r5, 0 + ands r0, r4 + cmp r0, 0 + beq _0818F784 + str r3, [r1] +_0818F784: + lsls r0, r4, 25 + lsrs r4, r0, 24 + adds r1, 0x4 + subs r2, 0x1 + cmp r2, 0 + bge _0818F776 + ldr r0, =0x0000012f + cmp r6, r0 + bne _0818F7A0 + movs r0, 0x1 + b _0818F7CA + .pool +_0818F7A0: + mov r2, r10 + subs r0, r2, r6 + lsls r0, 2 + ldr r1, =gBaseStats + adds r0, r1 + ldrb r0, [r0] + lsls r0, 1 + mov r2, r9 + adds r1, r0, r2 + ldr r0, [sp] + cmp r0, 0 + bge _0818F7BA + adds r0, 0x3 +_0818F7BA: + asrs r0, 2 + adds r0, r1, r0 + muls r0, r7 + movs r1, 0x64 + bl __divsi3 + adds r0, r7 + adds r0, 0xA +_0818F7CA: + mov r1, r8 + str r0, [r1] + mov r2, r10 + subs r0, r2, r6 + lsls r0, 2 + ldr r1, =gBaseStats + adds r4, r0, r1 + ldrb r0, [r4, 0x1] + lsls r0, 1 + mov r2, r9 + adds r1, r0, r2 + ldr r0, [sp, 0x4] + cmp r0, 0 + bge _0818F7E8 + adds r0, 0x3 +_0818F7E8: + asrs r0, 2 + adds r0, r1, r0 + muls r0, r7 + movs r1, 0x64 + bl __divsi3 + adds r1, r0, 0 + adds r1, 0x5 + mov r0, r8 + str r1, [r0, 0x4] + lsls r1, 16 + lsrs r1, 16 + ldr r0, [sp, 0x18] + movs r2, 0x1 + bl nature_stat_mod + lsls r0, 24 + lsrs r0, 24 + mov r1, r8 + str r0, [r1, 0x4] + ldrb r0, [r4, 0x2] + lsls r0, 1 + mov r2, r9 + adds r1, r0, r2 + ldr r0, [sp, 0x8] + cmp r0, 0 + bge _0818F820 + adds r0, 0x3 +_0818F820: + asrs r0, 2 + adds r0, r1, r0 + muls r0, r7 + movs r1, 0x64 + bl __divsi3 + adds r1, r0, 0 + adds r1, 0x5 + mov r0, r8 + str r1, [r0, 0x8] + lsls r1, 16 + lsrs r1, 16 + ldr r0, [sp, 0x18] + movs r2, 0x2 + bl nature_stat_mod + lsls r0, 24 + lsrs r0, 24 + mov r1, r8 + str r0, [r1, 0x8] + ldrb r0, [r4, 0x3] + lsls r0, 1 + mov r2, r9 + adds r1, r0, r2 + ldr r0, [sp, 0xC] + cmp r0, 0 + bge _0818F858 + adds r0, 0x3 +_0818F858: + asrs r0, 2 + adds r0, r1, r0 + muls r0, r7 + movs r1, 0x64 + bl __divsi3 + adds r1, r0, 0 + adds r1, 0x5 + mov r0, r8 + str r1, [r0, 0xC] + lsls r1, 16 + lsrs r1, 16 + ldr r0, [sp, 0x18] + movs r2, 0x3 + bl nature_stat_mod + lsls r0, 24 + lsrs r0, 24 + mov r1, r8 + str r0, [r1, 0xC] + ldrb r0, [r4, 0x4] + lsls r0, 1 + mov r2, r9 + adds r1, r0, r2 + ldr r0, [sp, 0x10] + cmp r0, 0 + bge _0818F890 + adds r0, 0x3 +_0818F890: + asrs r0, 2 + adds r0, r1, r0 + muls r0, r7 + movs r1, 0x64 + bl __divsi3 + adds r1, r0, 0 + adds r1, 0x5 + mov r0, r8 + str r1, [r0, 0x10] + lsls r1, 16 + lsrs r1, 16 + ldr r0, [sp, 0x18] + movs r2, 0x4 + bl nature_stat_mod + lsls r0, 24 + lsrs r0, 24 + mov r1, r8 + str r0, [r1, 0x10] + ldrb r0, [r4, 0x5] + lsls r0, 1 + mov r1, r9 + adds r2, r0, r1 + ldr r0, [sp, 0x14] + cmp r0, 0 + bge _0818F8C8 + adds r0, 0x3 +_0818F8C8: + asrs r0, 2 + adds r0, r2, r0 + muls r0, r7 + movs r1, 0x64 + bl __divsi3 + adds r1, r0, 0 + adds r1, 0x5 + mov r2, r8 + str r1, [r2, 0x14] + lsls r1, 16 + lsrs r1, 16 + ldr r0, [sp, 0x18] + movs r2, 0x5 + bl nature_stat_mod + lsls r0, 24 + lsrs r0, 24 + mov r1, r8 + str r0, [r1, 0x14] + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818F720 + + thumb_func_start sub_818F904 +sub_818F904: @ 818F904 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r3, r0, 1 + mov r12, r3 + adds r4, r3, r2 + ldrh r5, [r4] + lsls r7, r1, 1 + mov r9, r7 + add r2, r9 + ldrh r3, [r2] + strh r3, [r4] + strh r5, [r2] + ldr r2, =gSaveBlock2Ptr + ldr r5, [r2] + lsls r6, r0, 2 + adds r6, r5, r6 + ldr r3, =0x00000d24 + adds r6, r3 + ldrh r7, [r6] + mov r10, r7 + mov r2, r10 + lsls r2, 22 + mov r8, r2 + lsls r2, r1, 2 + adds r5, r2 + adds r5, r3 + ldrh r4, [r5] + lsls r4, 22 + lsrs r4, 22 + ldr r3, =0xfffffc00 + adds r2, r3, 0 + mov r7, r10 + ands r2, r7 + orrs r2, r4 + strh r2, [r6] + mov r2, r8 + lsrs r2, 22 + mov r8, r2 + ldrh r2, [r5] + ands r3, r2 + mov r7, r8 + orrs r3, r7 + strh r3, [r5] + ldr r2, =gSaveBlock2Ptr + mov r8, r2 + add r12, r0 + add r9, r1 + mov r3, r9 + lsls r4, r3, 1 + mov r7, r12 + lsls r3, r7, 1 + ldr r7, =0x00000d64 + movs r6, 0x2 +_0818F974: + mov r1, r8 + ldr r0, [r1] + adds r0, r7 + adds r2, r0, r3 + ldrh r5, [r2] + adds r0, r4 + ldrh r1, [r0] + strh r1, [r2] + strh r5, [r0] + adds r4, 0x2 + adds r3, 0x2 + subs r6, 0x1 + cmp r6, 0 + bge _0818F974 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818F904 + + thumb_func_start sub_818F9B0 +sub_818F9B0: @ 818F9B0 + push {lr} + ldr r0, =gStringVar1 + ldr r2, =gUnknown_085CCD20 + ldr r1, =gSaveBlock2Ptr + ldr r1, [r1] + ldr r3, =0x00000cb2 + adds r1, r3 + ldrh r1, [r1] + lsls r1, 2 + adds r1, r2 + ldr r1, [r1] + bl StringCopy + pop {r0} + bx r0 + .pool + thumb_func_end sub_818F9B0 + + thumb_func_start sub_818F9E0 +sub_818F9E0: @ 818F9E0 + push {lr} + ldr r0, =gStringVar1 + ldr r2, =gUnknown_085CCD20 + ldr r1, =gSaveBlock2Ptr + ldr r1, [r1] + ldr r3, =0x00000cb2 + adds r1, r3 + ldrh r1, [r1] + lsls r1, 2 + adds r1, r2 + ldr r1, [r1] + bl StringCopy + ldr r0, =gStringVar2 + ldr r1, =gUnknown_02038BCA + ldrh r1, [r1] + bl sub_8195898 + pop {r0} + bx r0 + .pool + thumb_func_end sub_818F9E0 + + thumb_func_start sub_818FA20 +sub_818FA20: @ 818FA20 + push {r4,r5,lr} + ldr r1, =gUnknown_0203CD70 + movs r0, 0 + str r0, [r1] + ldr r4, =gPlayerParty + adds r0, r4, 0 + movs r1, 0x3A + movs r2, 0 + bl GetMonData + ldr r5, =gUnknown_0203CD74 + str r0, [r5] + adds r4, 0x64 + adds r0, r4, 0 + movs r1, 0x3A + movs r2, 0 + bl GetMonData + ldr r1, [r5] + adds r1, r0 + str r1, [r5] + bl calc_player_party_count + ldr r0, =gUnknown_02038BCA + ldrh r0, [r0] + bl sub_8195358 + lsls r0, 16 + lsrs r0, 16 + bl sub_818FBDC + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818FA20 + + thumb_func_start sub_818FA74 +sub_818FA74: @ 818FA74 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x30 + adds r5, r2, 0 + str r3, [sp, 0x14] + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x10] + lsls r1, 16 + lsrs r1, 16 + str r1, [sp, 0x28] + lsls r5, 24 + lsrs r5, 24 + add r0, sp, 0xC + movs r1, 0x1 + negs r1, r1 + strb r1, [r0] + ldr r0, [sp, 0x28] + bl sub_8190168 + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + str r6, [sp, 0x2C] + bl sub_8165C40 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + movs r0, 0x64 + ldr r4, [sp, 0x10] + adds r3, r4, 0 + muls r3, r0 + str r3, [sp, 0x18] + ldr r6, =gEnemyParty + adds r0, r3, r6 + ldr r7, =gSaveBlock2Ptr + ldr r4, [r7] + lsls r5, 1 + ldr r3, [sp, 0x28] + lsls r1, r3, 1 + adds r1, r3 + lsls r1, 1 + adds r1, r5, r1 + ldr r6, =0x00000d64 + adds r4, r6 + adds r4, r1 + ldrh r3, [r4] + ldr r7, =gUnknown_0203BC8C + ldr r7, [r7] + mov r8, r7 + lsls r3, 4 + add r3, r8 + ldrh r1, [r3] + ldrb r3, [r3, 0xC] + ldr r6, [sp, 0x2C] + str r6, [sp] + ldrh r4, [r4] + lsls r4, 4 + add r4, r8 + ldrb r4, [r4, 0xB] + str r4, [sp, 0x4] + ldr r7, [sp, 0x14] + str r7, [sp, 0x8] + bl sub_8068634 + add r0, sp, 0xC + movs r1, 0x1 + negs r1, r1 + strb r1, [r0] + movs r6, 0 + ldr r2, [sp, 0x18] + str r2, [sp, 0x1C] + mov r10, r5 + ldr r3, =0x00000d64 + mov r9, r3 + ldr r3, =gUnknown_0203BC8C + mov r4, r10 + str r4, [sp, 0x20] +_0818FB18: + ldr r7, =gSaveBlock2Ptr + ldr r1, [r7] + ldr r2, [sp, 0x28] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 1 + mov r8, r0 + mov r5, r10 + add r5, r8 + add r1, r9 + adds r1, r5 + ldrh r0, [r1] + ldr r1, [r3] + lsls r0, 4 + adds r0, r1 + lsls r4, r6, 1 + adds r0, 0x2 + adds r0, r4 + ldrh r1, [r0] + lsls r2, r6, 24 + lsrs r2, 24 + mov r12, r2 + ldr r7, [sp, 0x1C] + ldr r2, =gEnemyParty + adds r0, r7, r2 + mov r2, r12 + str r3, [sp, 0x24] + bl sub_80691F4 + ldr r7, =gSaveBlock2Ptr + ldr r0, [r7] + add r0, r9 + adds r0, r5 + ldrh r0, [r0] + ldr r3, [sp, 0x24] + ldr r1, [r3] + lsls r0, 4 + adds r0, r1 + adds r0, 0x2 + adds r0, r4 + ldrh r0, [r0] + cmp r0, 0xDA + bne _0818FB74 + movs r1, 0 + add r0, sp, 0xC + strb r1, [r0] +_0818FB74: + adds r6, 0x1 + cmp r6, 0x3 + ble _0818FB18 + movs r0, 0x64 + ldr r1, [sp, 0x10] + adds r4, r1, 0 + muls r4, r0 + ldr r0, =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x20 + add r2, sp, 0xC + bl SetMonData + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, [sp, 0x20] + add r1, r8 + ldr r2, =0x00000d64 + adds r0, r2 + adds r0, r1 + ldrh r0, [r0] + ldr r1, =gUnknown_0203BC8C + ldr r1, [r1] + lsls r0, 4 + adds r0, r1 + ldrb r2, [r0, 0xA] + lsls r2, 1 + ldr r0, =gBattleFrontierHeldItems + adds r2, r0 + adds r0, r4, 0 + movs r1, 0xC + bl SetMonData + add sp, 0x30 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818FA74 + + thumb_func_start sub_818FBDC +sub_818FBDC: @ 818FBDC + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + movs r6, 0 + bl ZeroEnemyPartyMons + mov r0, r8 + bl sub_818FC78 + adds r5, r0, 0 + bl Random + adds r4, r0, 0 + bl Random + lsls r4, 16 + lsrs r7, r4, 16 + lsls r0, 16 + orrs r7, r0 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x5 + bls _0818FC46 + movs r4, 0 +_0818FC20: + movs r0, 0x1 + ands r0, r5 + cmp r0, 0 + beq _0818FC3C + lsls r2, r4, 24 + lsrs r2, 24 + adds r0, r6, 0 + mov r1, r8 + adds r3, r7, 0 + bl sub_818FA74 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_0818FC3C: + asrs r5, 1 + adds r4, 0x1 + cmp r4, 0x2 + ble _0818FC20 + b _0818FC6C +_0818FC46: + movs r4, 0x2 +_0818FC48: + movs r0, 0x4 + ands r0, r5 + cmp r0, 0 + beq _0818FC64 + lsls r2, r4, 24 + lsrs r2, 24 + adds r0, r6, 0 + mov r1, r8 + adds r3, r7, 0 + bl sub_818FA74 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_0818FC64: + lsls r5, 1 + subs r4, 0x1 + cmp r4, 0 + bge _0818FC48 +_0818FC6C: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_818FBDC + + thumb_func_start sub_818FC78 +sub_818FC78: @ 818FC78 + push {r4,r5,lr} + lsls r0, 16 + lsrs r4, r0, 16 + adds r5, r4, 0 + bl Random + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _0818FCA2 + adds r0, r4, 0 + movs r1, 0 + bl sub_818FCBC + cmp r0, 0 + bne _0818FCB6 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_818FDB8 + b _0818FCB6 +_0818FCA2: + adds r0, r5, 0 + movs r1, 0 + bl sub_818FDB8 + cmp r0, 0 + bne _0818FCB6 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_818FCBC +_0818FCB6: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_818FC78 + + thumb_func_start sub_818FCBC +sub_818FCBC: @ 818FCBC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0xC] + movs r0, 0 + mov r9, r0 + mov r1, r8 + lsls r1, 2 + str r1, [sp, 0x18] +_0818FCDE: + mov r2, r9 + lsls r0, r2, 2 + mov r2, sp + adds r1, r2, r0 + movs r0, 0 + str r0, [r1] + movs r7, 0 + mov r0, r9 + adds r0, 0x1 + str r0, [sp, 0x14] + adds r5, r1, 0 + mov r1, r9 + lsls r1, 1 + str r1, [sp, 0x10] +_0818FCFA: + movs r6, 0 + adds r2, r7, 0x1 + mov r10, r2 +_0818FD00: + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r2, [sp, 0x18] + adds r0, r1, r2 + ldr r2, =0x00000d24 + adds r0, r2 + ldrh r0, [r0] + lsls r0, 22 + lsrs r0, 22 + ldr r2, =0x000003fe + cmp r0, r2 + bne _0818FD3C + mov r1, r9 + lsls r0, r1, 24 + lsls r1, r7, 24 + lsrs r0, 24 + lsrs r1, 24 + bl sub_81A5060 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + b _0818FD60 + .pool +_0818FD3C: + mov r2, r8 + lsls r0, r2, 1 + add r0, r8 + lsls r0, 1 + ldr r2, [sp, 0x10] + adds r0, r2, r0 + ldr r2, =0x00000d64 + adds r1, r2 + adds r1, r0 + ldrh r0, [r1] + ldr r1, =gUnknown_0203BC8C + ldr r1, [r1] + lsls r0, 4 + adds r0, r1 + lsls r1, r7, 1 + adds r0, 0x2 + adds r0, r1 + ldrh r4, [r0] +_0818FD60: + movs r0, 0x64 + muls r0, r6 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xB + movs r2, 0 + bl GetMonData + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0 + bl sub_818FFC0 + ldr r1, [r5] + adds r1, r0 + str r1, [r5] + adds r6, 0x1 + cmp r6, 0x2 + ble _0818FD00 + mov r7, r10 + cmp r7, 0x3 + ble _0818FCFA + ldr r0, [sp, 0x14] + mov r9, r0 + cmp r0, 0x2 + ble _0818FCDE + mov r0, sp + ldr r1, [sp, 0xC] + bl sub_818FEB4 + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_818FCBC + + thumb_func_start sub_818FDB8 +sub_818FDB8: @ 818FDB8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0xC] + movs r0, 0 + mov r9, r0 + mov r1, r8 + lsls r1, 2 + str r1, [sp, 0x18] +_0818FDDA: + mov r2, r9 + lsls r0, r2, 2 + mov r2, sp + adds r1, r2, r0 + movs r0, 0 + str r0, [r1] + movs r7, 0 + mov r0, r9 + adds r0, 0x1 + str r0, [sp, 0x14] + adds r5, r1, 0 + mov r1, r9 + lsls r1, 1 + str r1, [sp, 0x10] +_0818FDF6: + movs r6, 0 + adds r2, r7, 0x1 + mov r10, r2 +_0818FDFC: + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r2, [sp, 0x18] + adds r0, r1, r2 + ldr r2, =0x00000d24 + adds r0, r2 + ldrh r0, [r0] + lsls r0, 22 + lsrs r0, 22 + ldr r2, =0x000003fe + cmp r0, r2 + bne _0818FE38 + mov r1, r9 + lsls r0, r1, 24 + lsls r1, r7, 24 + lsrs r0, 24 + lsrs r1, 24 + bl sub_81A5060 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + b _0818FE5C + .pool +_0818FE38: + mov r2, r8 + lsls r0, r2, 1 + add r0, r8 + lsls r0, 1 + ldr r2, [sp, 0x10] + adds r0, r2, r0 + ldr r2, =0x00000d64 + adds r1, r2 + adds r1, r0 + ldrh r0, [r1] + ldr r1, =gUnknown_0203BC8C + ldr r1, [r1] + lsls r0, 4 + adds r0, r1 + lsls r1, r7, 1 + adds r0, 0x2 + adds r0, r1 + ldrh r4, [r0] +_0818FE5C: + movs r0, 0x64 + muls r0, r6 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xB + movs r2, 0 + bl GetMonData + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0x1 + bl sub_818FFC0 + ldr r1, [r5] + adds r1, r0 + str r1, [r5] + adds r6, 0x1 + cmp r6, 0x2 + ble _0818FDFC + mov r7, r10 + cmp r7, 0x3 + ble _0818FDF6 + ldr r0, [sp, 0x14] + mov r9, r0 + cmp r0, 0x2 + ble _0818FDDA + mov r0, sp + ldr r1, [sp, 0xC] + bl sub_818FEB4 + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_818FDB8 + + thumb_func_start sub_818FEB4 +sub_818FEB4: @ 818FEB4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + mov r10, r0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + str r0, [sp, 0xC] + movs r3, 0x2 + add r0, sp, 0x8 +_0818FECE: + str r3, [r0] + subs r0, 0x4 + subs r3, 0x1 + cmp r3, 0 + bge _0818FECE + mov r3, r10 + ldr r2, [r3] + ldr r0, [r3, 0x4] + cmp r2, r0 + bne _0818FF20 + ldr r0, [r3, 0x8] + cmp r2, r0 + bne _0818FF20 + cmp r1, 0 + beq _0818FFAA + movs r3, 0 + ldr r4, =gBitTable +_0818FEF0: + str r3, [sp, 0x14] + bl Random + movs r1, 0x3 + ands r1, r0 + ldr r3, [sp, 0x14] + cmp r1, 0x3 + beq _0818FF16 + lsls r0, r1, 2 + adds r0, r4 + ldr r1, [r0] + ldr r0, [sp, 0xC] + ands r0, r1 + cmp r0, 0 + bne _0818FF16 + ldr r0, [sp, 0xC] + orrs r0, r1 + str r0, [sp, 0xC] + adds r3, 0x1 +_0818FF16: + cmp r3, 0x2 + bne _0818FEF0 + b _0818FFAA + .pool +_0818FF20: + movs r3, 0 + mov r9, sp + mov r8, r10 +_0818FF26: + adds r2, r3, 0x1 + cmp r2, 0x2 + bgt _0818FF84 + mov r6, r8 + mov r7, r9 + lsls r0, r2, 2 + mov r1, sp + adds r5, r0, r1 + mov r1, r10 + adds r4, r0, r1 +_0818FF3A: + ldr r0, [r6] + ldr r1, [r4] + cmp r0, r1 + bge _0818FF4E + str r1, [r6] + str r0, [r4] + ldr r1, [r7] + ldr r0, [r5] + str r0, [r7] + str r1, [r5] +_0818FF4E: + ldr r1, [r6] + ldr r0, [r4] + cmp r1, r0 + bne _0818FF7A + str r2, [sp, 0x10] + str r3, [sp, 0x14] + bl Random + movs r1, 0x1 + ands r1, r0 + ldr r2, [sp, 0x10] + ldr r3, [sp, 0x14] + cmp r1, 0 + beq _0818FF7A + ldr r1, [r6] + ldr r0, [r4] + str r0, [r6] + str r1, [r4] + ldr r1, [r7] + ldr r0, [r5] + str r0, [r7] + str r1, [r5] +_0818FF7A: + adds r5, 0x4 + adds r4, 0x4 + adds r2, 0x1 + cmp r2, 0x2 + ble _0818FF3A +_0818FF84: + movs r4, 0x4 + add r9, r4 + add r8, r4 + adds r3, 0x1 + cmp r3, 0x1 + ble _0818FF26 + ldr r2, =gBitTable + mov r1, sp + movs r3, 0x1 +_0818FF96: + ldm r1!, {r0} + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + ldr r4, [sp, 0xC] + orrs r4, r0 + str r4, [sp, 0xC] + subs r3, 0x1 + cmp r3, 0 + bge _0818FF96 +_0818FFAA: + ldr r0, [sp, 0xC] + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_818FEB4 + + thumb_func_start sub_818FFC0 +sub_818FFC0: @ 818FFC0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r3, r0, 0 + adds r4, r1, 0 + str r2, [sp] + movs r6, 0 + movs r2, 0x14 + cmp r3, 0 + beq _0818FFF0 + ldr r0, =0x0000ffff + cmp r3, r0 + beq _0818FFF0 + ldr r0, =gBattleMoves + lsls r1, r3, 1 + adds r1, r3 + lsls r1, 2 + adds r3, r1, r0 + ldrb r0, [r3, 0x1] + cmp r0, 0 + bne _0818FFFC +_0818FFF0: + movs r0, 0 + b _08190156 + .pool +_0818FFFC: + ldr r1, =gBaseStats + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x6] + mov r10, r1 + ldrb r1, [r0, 0x7] + mov r9, r1 + ldrb r0, [r0, 0x16] + mov r8, r0 + ldrb r3, [r3, 0x2] + str r3, [sp, 0x4] + cmp r0, 0x1A + bne _0819002C + cmp r3, 0x4 + bne _0819002C + ldr r0, [sp] + cmp r0, 0x1 + bne _081900AA + movs r2, 0x8 + b _081900A4 + .pool +_0819002C: + ldr r0, =gUnknown_0831ACE8 + adds r1, r6, r0 + ldrb r0, [r1] + ldr r7, =gUnknown_0831ACE8 + cmp r0, 0xFF + beq _081900A4 + adds r4, r1, 0 +_0819003A: + ldrb r0, [r4] + cmp r0, 0xFE + beq _08190096 + ldrb r0, [r4] + ldr r1, [sp, 0x4] + cmp r0, r1 + bne _08190096 + ldrb r0, [r4, 0x1] + adds r5, r6, 0x1 + cmp r0, r10 + bne _0819006C + adds r1, r6, 0x2 + mov r0, r8 + cmp r0, 0x19 + bne _0819005E + ldrb r0, [r4, 0x2] + cmp r0, 0x28 + bne _0819006C +_0819005E: + adds r0, r1, r7 + ldrb r0, [r0] + muls r0, r2 + movs r1, 0xA + bl __divsi3 + adds r2, r0, 0 +_0819006C: + adds r0, r5, r7 + ldrb r0, [r0] + cmp r0, r9 + bne _08190096 + cmp r10, r9 + beq _08190096 + adds r1, r6, 0x2 + mov r0, r8 + cmp r0, 0x19 + bne _08190088 + adds r0, r1, r7 + ldrb r0, [r0] + cmp r0, 0x28 + bne _08190096 +_08190088: + adds r0, r1, r7 + ldrb r0, [r0] + muls r0, r2 + movs r1, 0xA + bl __divsi3 + adds r2, r0, 0 +_08190096: + adds r4, 0x3 + adds r6, 0x3 + ldr r1, =gUnknown_0831ACE8 + adds r0, r6, r1 + ldrb r0, [r0] + cmp r0, 0xFF + bne _0819003A +_081900A4: + ldr r0, [sp] + cmp r0, 0x1 + beq _081900E0 +_081900AA: + ldr r1, [sp] + cmp r1, 0x1 + bgt _081900BC + cmp r1, 0 + beq _081900C4 + b _08190154 + .pool +_081900BC: + ldr r0, [sp] + cmp r0, 0x2 + beq _08190114 + b _08190154 +_081900C4: + cmp r2, 0xA + beq _08190146 + cmp r2, 0xA + ble _08190146 + cmp r2, 0x28 + beq _0819014A + cmp r2, 0x28 + bgt _081900DA + cmp r2, 0x14 + beq _08190104 + b _08190146 +_081900DA: + cmp r2, 0x50 + bne _08190146 + b _08190100 +_081900E0: + cmp r2, 0xA + beq _08190104 + cmp r2, 0xA + bgt _081900F2 + cmp r2, 0 + beq _08190100 + cmp r2, 0x5 + beq _0819014A + b _08190146 +_081900F2: + cmp r2, 0x28 + beq _08190108 + cmp r2, 0x28 + ble _08190146 + cmp r2, 0x50 + beq _0819010E + b _08190146 +_08190100: + movs r2, 0x8 + b _08190154 +_08190104: + movs r2, 0x2 + b _08190154 +_08190108: + movs r2, 0x2 + negs r2, r2 + b _08190154 +_0819010E: + movs r2, 0x4 + negs r2, r2 + b _08190154 +_08190114: + cmp r2, 0xA + beq _08190146 + cmp r2, 0xA + bgt _08190126 + cmp r2, 0 + beq _0819013A + cmp r2, 0x5 + beq _08190140 + b _08190146 +_08190126: + cmp r2, 0x28 + beq _0819014E + cmp r2, 0x28 + bgt _08190134 + cmp r2, 0x14 + beq _0819014A + b _08190146 +_08190134: + cmp r2, 0x50 + beq _08190152 + b _08190146 +_0819013A: + movs r2, 0x10 + negs r2, r2 + b _08190154 +_08190140: + movs r2, 0x8 + negs r2, r2 + b _08190154 +_08190146: + movs r2, 0 + b _08190154 +_0819014A: + movs r2, 0x4 + b _08190154 +_0819014E: + movs r2, 0xC + b _08190154 +_08190152: + movs r2, 0x14 +_08190154: + adds r0, r2, 0 +_08190156: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_818FFC0 + + thumb_func_start sub_8190168 +sub_8190168: @ 8190168 + push {lr} + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + cmp r0, 0x63 + bls _0819019A + movs r1, 0x6 + cmp r0, 0x77 + bls _0819019A + movs r1, 0x9 + cmp r0, 0x8B + bls _0819019A + movs r1, 0xC + cmp r0, 0x9F + bls _0819019A + movs r1, 0xF + cmp r0, 0xB3 + bls _0819019A + movs r1, 0x12 + cmp r0, 0xC7 + bls _0819019A + movs r1, 0x1F + cmp r0, 0xDB + bhi _0819019A + movs r1, 0x15 +_0819019A: + adds r0, r1, 0 + pop {r1} + bx r1 + thumb_func_end sub_8190168 + + thumb_func_start sub_81901A0 +sub_81901A0: @ 81901A0 + push {r4-r7,lr} + adds r3, r0, 0 + adds r2, r1, 0 + movs r5, 0 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r4, =0x00000d24 + adds r1, r4 + ldrh r1, [r1] + lsls r1, 22 + lsrs r1, 22 + mov r12, r0 + ldr r6, =gUnknown_0860D10C + cmp r1, r2 + beq _081901D8 + mov r7, r12 +_081901C0: + adds r5, 0x1 + cmp r5, 0xF + bgt _081901D8 + ldr r0, [r7] + lsls r1, r5, 2 + adds r0, r1 + adds r0, r4 + ldrh r0, [r0] + lsls r0, 22 + lsrs r0, 22 + cmp r0, r2 + bne _081901C0 +_081901D8: + cmp r3, 0 + beq _0819026C + cmp r3, 0x3 + bne _081901FC + lsls r0, r5, 2 + adds r1, r0, 0x3 + adds r1, r6 + ldrb r1, [r1] + adds r4, r1, 0 + adds r4, 0x8 + b _08190206 + .pool +_081901FC: + lsls r0, r5, 2 + adds r1, r3, r0 + adds r1, r6 + ldrb r1, [r1] + adds r4, r1, 0x4 +_08190206: + adds r0, r3, r0 + adds r0, r6 + ldrb r2, [r0] + cmp r2, r4 + bge _08190256 + ldr r1, =gUnknown_0860D14C + adds r0, r2, r1 + ldrb r3, [r0] + adds r6, r1, 0 + cmp r3, r5 + beq _08190234 + mov r1, r12 + ldr r0, [r1] + lsls r1, r3, 2 + adds r0, r1 + ldr r3, =0x00000d25 + adds r0, r3 + b _0819024E + .pool +_08190234: + adds r2, 0x1 + cmp r2, r4 + bge _08190256 + adds r0, r2, r6 + ldrb r1, [r0] + cmp r1, r5 + beq _08190234 + mov r3, r12 + ldr r0, [r3] + lsls r1, 2 + adds r0, r1 + ldr r1, =0x00000d25 + adds r0, r1 +_0819024E: + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + blt _08190234 +_08190256: + cmp r2, r4 + beq _08190286 + ldr r0, =gUnknown_0860D14C + adds r0, r2, r0 + ldrb r0, [r0] + b _08190292 + .pool +_0819026C: + mov r3, r12 + ldr r1, [r3] + lsls r0, r5, 2 + adds r0, r6 + ldrb r2, [r0] + lsls r0, r2, 2 + adds r1, r0 + ldr r0, =0x00000d25 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 29 + cmp r0, 0 + bge _08190290 +_08190286: + movs r0, 0xFF + b _08190292 + .pool +_08190290: + adds r0, r2, 0 +_08190292: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81901A0 + + thumb_func_start sub_8190298 +sub_8190298: @ 8190298 + push {lr} + bl sub_81902AC + ldr r1, =gUnknown_02038BCA + strh r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end sub_8190298 + + thumb_func_start sub_81902AC +sub_81902AC: @ 81902AC + push {r4,lr} + ldr r0, =gSaveBlock2Ptr + ldr r4, [r0] + ldr r1, =0x00000cb2 + adds r0, r4, r1 + ldrh r0, [r0] + ldr r1, =0x000003ff + bl sub_81901A0 + lsls r0, 2 + adds r4, r0 + ldr r0, =0x00000d24 + adds r4, r0 + ldrh r0, [r4] + lsls r0, 22 + lsrs r0, 22 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81902AC + + thumb_func_start sub_81902E4 +sub_81902E4: @ 81902E4 + push {lr} + ldr r0, =gUnknown_02038BCA + ldrh r0, [r0] + movs r1, 0 + bl sub_8162614 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81902E4 + + thumb_func_start sub_81902F8 +sub_81902F8: @ 81902F8 + push {r4,lr} + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =gSpecialVar_0x8005 + ldrh r1, [r1] + ldr r2, =0x00000ca8 + adds r0, r2 + strb r1, [r0] + movs r0, 0x80 + lsls r0, 7 + movs r1, 0 + bl VarSet + ldr r1, [r4] + ldr r0, =0x00000ca9 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + bl sub_81A4C30 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81902F8 + + thumb_func_start sub_819033C +sub_819033C: @ 819033C + push {r4,r5,lr} + ldr r5, =gSaveBlock2Ptr + ldr r0, [r5] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r4, [r0] + lsls r4, 30 + lsrs r4, 30 + ldr r0, =0x000040ce + bl VarGet + lsls r0, 24 + ldr r1, [r5] + lsls r4, 1 + lsrs r0, 22 + adds r4, r0 + ldr r3, =0x00000d0c + adds r1, r3 + adds r1, r4 + ldrh r0, [r1] + ldr r2, =0x000003e6 + cmp r0, r2 + bhi _0819036E + adds r0, 0x1 + strh r0, [r1] +_0819036E: + ldr r0, [r5] + ldr r1, =0x00000d1c + adds r0, r1 + adds r1, r0, r4 + ldrh r0, [r1] + cmp r0, r2 + bhi _08190380 + adds r0, 0x1 + strh r0, [r1] +_08190380: + ldr r0, [r5] + adds r1, r0, r3 + adds r1, r4 + ldr r2, =0x00000d14 + adds r0, r2 + adds r0, r4 + ldrh r1, [r1] + ldrh r2, [r0] + cmp r1, r2 + bls _08190396 + strh r1, [r0] +_08190396: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819033C + + thumb_func_start sub_81903B8 +sub_81903B8: @ 81903B8 + push {r4,r5,lr} + ldr r0, =sub_8190400 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + movs r5, 0 + strh r5, [r4, 0x8] + bl sub_81902AC + lsls r0, 16 + lsrs r0, 16 + bl sub_8195358 + strh r0, [r4, 0xA] + strh r5, [r4, 0xC] + strh r5, [r4, 0xE] + ldr r0, =sub_8194B54 + bl SetMainCallback2 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81903B8 + + thumb_func_start sub_8190400 +sub_8190400: @ 8190400 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r1, =gTasks + lsls r0, 2 + add r0, r10 + lsls r0, 3 + adds r6, r0, r1 + movs r0, 0xA + ldrsh r5, [r6, r0] + movs r2, 0xC + ldrsh r1, [r6, r2] + mov r9, r1 + movs r0, 0xE + ldrsh r7, [r6, r0] + movs r1, 0x8 + ldrsh r4, [r6, r1] + cmp r4, 0x1 + beq _08190508 + cmp r4, 0x1 + bgt _08190440 + cmp r4, 0 + beq _0819044E + b _08190772 + .pool +_08190440: + cmp r4, 0x2 + bne _08190446 + b _08190570 +_08190446: + cmp r4, 0x3 + bne _0819044C + b _08190634 +_0819044C: + b _08190772 +_0819044E: + movs r0, 0 + bl SetHBlankCallback + movs r0, 0 + bl SetVBlankCallback + movs r0, 0x1 + bl EnableInterrupts + str r4, [sp, 0x4] + movs r1, 0xC0 + lsls r1, 19 + ldr r2, =0x05006000 + add r0, sp, 0x4 + bl CpuSet + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, =gUnknown_0860CE84 + movs r0, 0 + movs r2, 0x4 + bl InitBgsFromTemplates + ldr r0, =gUnknown_0860CEB4 + bl InitWindows + bl DeactivateAllTextPrinters + ldr r0, =gUnknown_02022E14 + strh r4, [r0] + ldr r0, =gUnknown_02022E16 + strh r4, [r0] + ldr r0, =gUnknown_02022E18 + strh r4, [r0] + ldr r0, =gUnknown_02022E1A + strh r4, [r0] + ldr r0, =gUnknown_02022E20 + strh r4, [r0] + ldr r0, =gUnknown_02022E22 + strh r4, [r0] + mov r2, r9 + cmp r2, 0x2 + bne _081904DC + ldr r0, =gUnknown_02022E1C + strh r4, [r0] + ldr r0, =gUnknown_02022E1E + strh r4, [r0] + b _081904E6 + .pool +_081904DC: + ldr r0, =gUnknown_02022E1C + strh r4, [r0] + ldr r1, =gUnknown_02022E1E + movs r0, 0xA0 + strh r0, [r1] +_081904E6: + ldr r0, =gTasks + mov r2, r10 + lsls r1, r2, 2 + add r1, r10 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _08190772 + .pool +_08190508: + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + movs r0, 0x4C + movs r1, 0 + bl SetGpuReg + movs r0, 0x40 + movs r1, 0 + bl SetGpuReg + movs r0, 0x44 + movs r1, 0 + bl SetGpuReg + movs r0, 0x42 + movs r1, 0 + bl SetGpuReg + movs r0, 0x46 + movs r1, 0 + bl SetGpuReg + movs r0, 0x48 + movs r1, 0 + bl SetGpuReg + movs r0, 0x4A + movs r1, 0x3F + bl SetGpuReg + bl ResetPaletteFade + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r1, =gReservedSpritePaletteCount + movs r0, 0x4 + strb r0, [r1] + b _08190602 + .pool +_08190570: + ldr r1, =gUnknown_08D83D50 + movs r5, 0x80 + lsls r5, 6 + movs r7, 0 + str r7, [sp] + movs r0, 0x2 + adds r2, r5, 0 + movs r3, 0 + bl copy_decompressed_tile_data_to_vram_autofree + ldr r1, =gUnknown_08D84970 + movs r4, 0x1 + str r4, [sp] + movs r0, 0x2 + adds r2, r5, 0 + movs r3, 0 + bl copy_decompressed_tile_data_to_vram_autofree + ldr r1, =gUnknown_08D84F00 + movs r2, 0x80 + lsls r2, 4 + str r4, [sp] + movs r0, 0x3 + movs r3, 0 + bl copy_decompressed_tile_data_to_vram_autofree + ldr r0, =gUnknown_0860CF50 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_08D85358 + movs r4, 0x80 + lsls r4, 2 + movs r1, 0 + adds r2, r4, 0 + bl LoadCompressedPalette + ldr r0, =gUnknown_08D85444 + movs r1, 0x80 + lsls r1, 1 + adds r2, r4, 0 + bl LoadCompressedPalette + ldr r0, =gUnknown_08D85600 + movs r1, 0xF0 + movs r2, 0x20 + bl LoadCompressedPalette + mov r0, r9 + cmp r0, 0x2 + bne _081905DE + ldr r0, =gUnknown_08D854C8 + movs r1, 0x50 + movs r2, 0x20 + bl LoadCompressedPalette +_081905DE: + str r7, [sp, 0x8] + add r0, sp, 0x8 + ldr r1, =gPlttBufferFaded + ldr r2, =0x05000100 + bl CpuSet + movs r0, 0 + bl ShowBg + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + movs r0, 0x3 + bl ShowBg +_08190602: + ldrh r0, [r6, 0x8] + adds r0, 0x1 + strh r0, [r6, 0x8] + b _08190772 + .pool +_08190634: + ldr r0, =sub_8194B70 + bl SetVBlankCallback + ldr r4, =gUnknown_0203CD78 + movs r0, 0x14 + bl AllocZeroed + str r0, [r4] + movs r6, 0 + lsls r5, 24 + movs r2, 0xFF +_0819064A: + ldr r1, [r4] + adds r1, r6 + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] + adds r6, 0x1 + cmp r6, 0xF + ble _0819064A + bl sub_80D2F04 + ldr r0, =sub_8190CD4 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x8] + strh r1, [r0, 0xC] + mov r1, r9 + strh r1, [r0, 0xE] + strh r7, [r0, 0x10] + mov r2, r9 + cmp r2, 0x2 + bne _081906A8 + lsrs r1, r5, 24 + movs r0, 0 + bl sub_819314C + ldr r0, =gUnknown_0203CD78 + ldr r1, [r0] + movs r0, 0x1 + strb r0, [r1, 0x10] + b _081906B0 + .pool +_081906A8: + lsrs r1, r5, 24 + movs r0, 0 + bl sub_81924E0 +_081906B0: + movs r1, 0xFA + lsls r1, 5 + movs r0, 0 + bl SetGpuReg + mov r0, r9 + cmp r0, 0 + beq _0819076C + ldr r5, =gUnknown_0860D068 + adds r0, r5, 0 + movs r1, 0x78 + movs r2, 0x4 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r7, r0, 24 + lsls r4, r7, 4 + adds r4, r7 + lsls r4, 2 + ldr r1, =gSprites + mov r8, r1 + add r4, r8 + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAnim + strh r6, [r4, 0x2E] + adds r0, r5, 0 + movs r1, 0x78 + movs r2, 0x9C + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r7, r0, 24 + lsls r4, r7, 4 + adds r4, r7 + lsls r4, 2 + add r4, r8 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + strh r6, [r4, 0x2E] + ldr r5, =gUnknown_0860D050 + adds r0, r5, 0 + movs r1, 0x6 + movs r2, 0x50 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r7, r0, 24 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + mov r2, r8 + adds r4, r0, r2 + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAnim + strh r6, [r4, 0x2E] + movs r0, 0 + strh r0, [r4, 0x30] + mov r1, r9 + cmp r1, 0x1 + bne _08190746 + adds r0, r4, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_08190746: + adds r0, r5, 0 + movs r1, 0xEA + movs r2, 0x50 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r7, r0, 24 + lsls r4, r7, 4 + adds r4, r7 + lsls r4, 2 + add r4, r8 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + strh r6, [r4, 0x2E] + movs r0, 0x1 + strh r0, [r4, 0x30] +_0819076C: + mov r0, r10 + bl DestroyTask +_08190772: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8190400 + + thumb_func_start sub_8190790 +sub_8190790: @ 8190790 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x22] + adds r1, r0, 0x4 + strh r1, [r2, 0x22] + movs r3, 0x2E + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _081907D4 + lsls r0, r1, 16 + asrs r0, 16 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + blt _081907BC + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] +_081907BC: + ldrh r0, [r2, 0x30] + adds r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x28 + bne _081907F0 + ldr r0, =SpriteCallbackDummy + str r0, [r2, 0x1C] + b _081907F0 + .pool +_081907D4: + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xBF + ble _081907F0 + ldr r0, =gUnknown_0203CD78 + ldr r0, [r0] + movs r3, 0x32 + ldrsh r1, [r2, r3] + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] + ldrh r0, [r2, 0x34] + bl sub_818D8F0 +_081907F0: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8190790 + + thumb_func_start sub_81907F8 +sub_81907F8: @ 81907F8 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x22] + subs r1, r0, 0x4 + strh r1, [r2, 0x22] + movs r3, 0x2E + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _08190838 + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xC0 + bgt _08190820 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] +_08190820: + ldrh r0, [r2, 0x30] + adds r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x28 + bne _08190858 + ldr r0, =SpriteCallbackDummy + str r0, [r2, 0x1C] + b _08190858 + .pool +_08190838: + lsls r0, r1, 16 + asrs r0, 16 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bgt _08190858 + ldr r0, =gUnknown_0203CD78 + ldr r0, [r0] + movs r3, 0x32 + ldrsh r1, [r2, r3] + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] + ldrh r0, [r2, 0x34] + bl sub_818D8F0 +_08190858: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81907F8 + + thumb_func_start sub_8190860 +sub_8190860: @ 8190860 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x20] + adds r1, r0, 0x4 + strh r1, [r2, 0x20] + movs r3, 0x2E + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _081908A4 + lsls r0, r1, 16 + asrs r0, 16 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + blt _0819088C + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] +_0819088C: + ldrh r0, [r2, 0x30] + adds r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x40 + bne _081908C0 + ldr r0, =SpriteCallbackDummy + str r0, [r2, 0x1C] + b _081908C0 + .pool +_081908A4: + lsls r1, 16 + ldr r0, =0x010f0000 + cmp r1, r0 + ble _081908C0 + ldr r0, =gUnknown_0203CD78 + ldr r0, [r0] + movs r3, 0x32 + ldrsh r1, [r2, r3] + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] + ldrh r0, [r2, 0x34] + bl sub_818D8F0 +_081908C0: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8190860 + + thumb_func_start sub_81908CC +sub_81908CC: @ 81908CC + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x20] + subs r1, r0, 0x4 + strh r1, [r2, 0x20] + movs r3, 0x2E + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _08190910 + lsls r1, 16 + movs r0, 0x88 + lsls r0, 17 + cmp r1, r0 + bgt _081908F6 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] +_081908F6: + ldrh r0, [r2, 0x30] + adds r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x40 + bne _08190930 + ldr r0, =SpriteCallbackDummy + str r0, [r2, 0x1C] + b _08190930 + .pool +_08190910: + lsls r0, r1, 16 + asrs r0, 16 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bgt _08190930 + ldr r0, =gUnknown_0203CD78 + ldr r0, [r0] + movs r3, 0x32 + ldrsh r1, [r2, r3] + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] + ldrh r0, [r2, 0x34] + bl sub_818D8F0 +_08190930: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81908CC + + thumb_func_start sub_8190938 +sub_8190938: @ 8190938 + push {lr} + adds r1, r0, 0 + movs r2, 0x34 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _0819094A + adds r0, r1, 0 + bl sub_80D30DC +_0819094A: + pop {r0} + bx r0 + thumb_func_end sub_8190938 + + thumb_func_start sub_8190950 +sub_8190950: @ 8190950 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _08190962 + adds r0, r4, 0 + bl sub_80D30DC +_08190962: + ldrh r0, [r4, 0x22] + adds r1, r0, 0x4 + strh r1, [r4, 0x22] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _081909A4 + lsls r0, r1, 16 + asrs r0, 16 + movs r1, 0x10 + negs r1, r1 + cmp r0, r1 + blt _0819098A + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_0819098A: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x28 + bne _081909C0 + ldr r0, =sub_8190938 + str r0, [r4, 0x1C] + b _081909C0 + .pool +_081909A4: + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xAF + ble _081909C0 + ldr r0, =gUnknown_0203CD78 + ldr r0, [r0] + movs r2, 0x32 + ldrsh r1, [r4, r2] + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] + adds r0, r4, 0 + bl sub_80D2EF8 +_081909C0: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8190950 + + thumb_func_start sub_81909CC +sub_81909CC: @ 81909CC + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _081909DE + adds r0, r4, 0 + bl sub_80D30DC +_081909DE: + ldrh r0, [r4, 0x22] + subs r1, r0, 0x4 + strh r1, [r4, 0x22] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _08190A1C + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xB0 + bgt _08190A02 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_08190A02: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x28 + bne _08190A3C + ldr r0, =sub_8190938 + str r0, [r4, 0x1C] + b _08190A3C + .pool +_08190A1C: + lsls r0, r1, 16 + asrs r0, 16 + movs r1, 0x10 + negs r1, r1 + cmp r0, r1 + bgt _08190A3C + ldr r0, =gUnknown_0203CD78 + ldr r0, [r0] + movs r2, 0x32 + ldrsh r1, [r4, r2] + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] + adds r0, r4, 0 + bl sub_80D2EF8 +_08190A3C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81909CC + + thumb_func_start sub_8190A48 +sub_8190A48: @ 8190A48 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _08190A5A + adds r0, r4, 0 + bl sub_80D30DC +_08190A5A: + ldrh r0, [r4, 0x20] + adds r1, r0, 0x4 + strh r1, [r4, 0x20] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _08190A9C + lsls r0, r1, 16 + asrs r0, 16 + movs r1, 0x10 + negs r1, r1 + cmp r0, r1 + blt _08190A82 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_08190A82: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x40 + bne _08190AB8 + ldr r0, =sub_8190938 + str r0, [r4, 0x1C] + b _08190AB8 + .pool +_08190A9C: + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _08190AB8 + ldr r0, =gUnknown_0203CD78 + ldr r0, [r0] + movs r2, 0x32 + ldrsh r1, [r4, r2] + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] + adds r0, r4, 0 + bl sub_80D2EF8 +_08190AB8: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8190A48 + + thumb_func_start sub_8190AC4 +sub_8190AC4: @ 8190AC4 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _08190AD6 + adds r0, r4, 0 + bl sub_80D30DC +_08190AD6: + ldrh r0, [r4, 0x20] + subs r1, r0, 0x4 + strh r1, [r4, 0x20] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _08190B14 + lsls r1, 16 + movs r0, 0x80 + lsls r0, 17 + cmp r1, r0 + bgt _08190AFC + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_08190AFC: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x40 + bne _08190B34 + ldr r0, =sub_8190938 + str r0, [r4, 0x1C] + b _08190B34 + .pool +_08190B14: + lsls r0, r1, 16 + asrs r0, 16 + movs r1, 0x10 + negs r1, r1 + cmp r0, r1 + bgt _08190B34 + ldr r0, =gUnknown_0203CD78 + ldr r0, [r0] + movs r2, 0x32 + ldrsh r1, [r4, r2] + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] + adds r0, r4, 0 + bl sub_80D2EF8 +_08190B34: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8190AC4 + + thumb_func_start sub_8190B40 +sub_8190B40: @ 8190B40 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r3, r0, 0 + movs r0, 0x2E + ldrsh r6, [r3, r0] + ldr r2, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r4, r0, r2 + movs r7, 0x10 + ldrsh r1, [r4, r7] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r1, 0xA + ldrsh r0, [r0, r1] + ldr r1, =gUnknown_0860D080 + adds r0, r1 + ldrb r0, [r0] + mov r10, r0 + ldr r1, =gSaveBlock2Ptr + ldr r5, [r1] + ldr r7, =0x00000cb2 + adds r0, r5, r7 + ldrh r0, [r0] + mov r12, r0 + movs r7, 0xE + ldrsh r0, [r4, r7] + mov r9, r2 + mov r8, r1 + cmp r0, 0x1 + bne _08190C0C + movs r1, 0x30 + ldrsh r0, [r3, r1] + cmp r0, 0 + beq _08190BFC + mov r2, r10 + lsls r0, r2, 2 + adds r1, r5, r0 + ldr r7, =0x00000d25 + adds r1, r7 + ldrb r2, [r1] + lsls r1, r2, 29 + adds r4, r0, 0 + cmp r1, 0 + bge _08190BB6 + ldr r0, =gUnknown_0203CD78 + ldr r0, [r0] + ldrb r1, [r0, 0x10] + subs r1, 0x1 + lsls r0, r2, 27 + lsrs r0, 30 + cmp r1, r0 + blt _08190C32 +_08190BB6: + mov r1, r8 + ldr r0, [r1] + adds r0, r4 + ldr r2, =0x00000d25 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + blt _08190BD4 + ldr r0, =gUnknown_0203CD78 + ldr r0, [r0] + ldrb r0, [r0, 0x10] + subs r0, 0x1 + cmp r0, r12 + blt _08190C32 +_08190BD4: + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + add r0, r9 + movs r7, 0x8 + ldrsh r0, [r0, r7] + b _08190C4C + .pool +_08190BFC: + ldr r0, =gUnknown_0203CD78 + ldr r0, [r0] + ldrb r0, [r0, 0x10] + cmp r0, 0 + bne _08190C32 + b _08190C48 + .pool +_08190C0C: + movs r2, 0x30 + ldrsh r0, [r3, r2] + cmp r0, 0 + beq _08190C28 + ldr r0, =gUnknown_0203CD78 + ldr r0, [r0] + ldrb r0, [r0, 0x10] + cmp r0, 0x1 + bls _08190C32 + movs r7, 0x8 + ldrsh r0, [r4, r7] + b _08190C4C + .pool +_08190C28: + ldr r0, =gUnknown_0203CD78 + ldr r0, [r0] + ldrb r0, [r0, 0x10] + cmp r0, 0 + beq _08190C48 +_08190C32: + adds r2, r3, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + b _08190C5C + .pool +_08190C48: + movs r1, 0x8 + ldrsh r0, [r4, r1] +_08190C4C: + cmp r0, 0x2 + bne _08190C5C + adds r0, r3, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_08190C5C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8190B40 + + thumb_func_start sub_8190C6C +sub_8190C6C: @ 8190C6C + push {lr} + adds r3, r0, 0 + movs r0, 0x2E + ldrsh r1, [r3, r0] + ldr r2, =gTasks + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r1, r0, r2 + movs r2, 0xE + ldrsh r0, [r1, r2] + cmp r0, 0x1 + bne _08190C9C + ldr r0, =gUnknown_0203CD78 + ldr r0, [r0] + ldrb r0, [r0, 0x10] + cmp r0, 0 + bne _08190CA6 + b _08190CC0 + .pool +_08190C9C: + ldr r0, =gUnknown_0203CD78 + ldr r0, [r0] + ldrb r0, [r0, 0x10] + cmp r0, 0x1 + beq _08190CC0 +_08190CA6: + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0x2 + bne _08190CCE + adds r0, r3, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _08190CCE + .pool +_08190CC0: + adds r2, r3, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_08190CCE: + pop {r0} + bx r0 + thumb_func_end sub_8190C6C + + thumb_func_start sub_8190CD4 +sub_8190CD4: @ 8190CD4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r1, =gTasks + lsls r0, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r3, 0xE + ldrsh r2, [r0, r3] + mov r9, r2 + movs r4, 0x10 + ldrsh r7, [r0, r4] + movs r5, 0x8 + ldrsh r0, [r0, r5] + cmp r0, 0x8 + bls _08190D06 + bl _08192202 +_08190D06: + lsls r0, 2 + ldr r1, =_08190D18 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08190D18: + .4byte _08190D3C + .4byte _08190D7C + .4byte _08190DA8 + .4byte _08190E48 + .4byte _08191FF8 + .4byte _08192038 + .4byte _08192078 + .4byte _081920BC + .4byte _08192106 +_08190D3C: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _08190D50 + bl _08192202 +_08190D50: + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r1, =gTasks + mov r6, r8 + lsls r0, r6, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0x1 + strh r1, [r0, 0x8] + bl _08192202 + .pool +_08190D7C: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08190D8C + bl _08192202 +_08190D8C: + mov r1, r8 + lsls r0, r1, 2 + add r0, r8 + lsls r0, 3 + ldr r2, =gTasks + adds r0, r2 + movs r1, 0x2 + strh r1, [r0, 0x8] + bl _08192202 + .pool +_08190DA8: + mov r0, r8 + bl sub_819221C + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x8 + bgt _08190DBE + cmp r6, 0x1 + bge _08190DF0 + bl _08192202 +_08190DBE: + cmp r6, 0x9 + beq _08190DC6 + bl _08192202 +_08190DC6: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, =gTasks + mov r3, r8 + lsls r0, r3, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0x8 + strh r1, [r0, 0x8] + bl _08192202 + .pool +_08190DF0: + ldr r1, =gTasks + mov r4, r8 + lsls r2, r4, 2 + adds r0, r2, r4 + lsls r0, 3 + adds r0, r1 + strh r6, [r0, 0x12] + movs r5, 0xC + ldrsh r0, [r0, r5] + movs r1, 0 + mov r9, r2 + cmp r0, 0 + beq _08190E0C + movs r1, 0x9 +_08190E0C: + adds r6, r1, 0 + adds r0, r6, 0 + adds r0, 0x9 + cmp r6, r0 + bge _08190E32 + adds r5, r0, 0 +_08190E18: + lsls r4, r6, 24 + lsrs r4, 24 + adds r0, r4, 0 + movs r1, 0x2 + bl CopyWindowToVram + adds r0, r4, 0 + movs r1, 0 + bl FillWindowPixelBuffer + adds r6, 0x1 + cmp r6, r5 + blt _08190E18 +_08190E32: + ldr r0, =gTasks + mov r1, r9 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0x3 + strh r0, [r1, 0x8] + bl _08192202 + .pool +_08190E48: + mov r6, r8 + lsls r1, r6, 2 + adds r0, r1, r6 + lsls r0, 3 + ldr r2, =gTasks + adds r0, r2 + movs r3, 0x12 + ldrsh r6, [r0, r3] + subs r0, r6, 0x1 + mov r9, r1 + cmp r0, 0x7 + bls _08190E64 + bl _08192202 +_08190E64: + lsls r0, 2 + ldr r1, =_08190E78 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08190E78: + .4byte _08190E98 + .4byte _08191234 + .4byte _081915CC + .4byte _08191B08 + .4byte _08190E98 + .4byte _08191234 + .4byte _0819187C + .4byte _08191D68 +_08190E98: + mov r0, r9 + add r0, r8 + lsls r0, 3 + ldr r4, =gTasks + adds r0, r4 + movs r5, 0xC + ldrsh r2, [r0, r5] + cmp r2, 0 + beq _08190ED4 + ldr r0, =gUnknown_02022E14 + movs r1, 0 + strh r1, [r0] + ldr r0, =gUnknown_02022E16 + strh r1, [r0] + ldr r0, =gUnknown_02022E18 + strh r1, [r0] + ldr r1, =gUnknown_02022E1A + movs r0, 0xA0 + strh r0, [r1] + b _08190EE6 + .pool +_08190ED4: + ldr r0, =gUnknown_02022E14 + strh r2, [r0] + ldr r1, =gUnknown_02022E16 + movs r0, 0xA0 + strh r0, [r1] + ldr r0, =gUnknown_02022E18 + strh r2, [r0] + ldr r0, =gUnknown_02022E1A + strh r2, [r0] +_08190EE6: + cmp r6, 0x1 + bne _08190F9C + ldr r5, =gUnknown_0203CD78 + ldr r0, [r5] + ldrb r1, [r0, 0x10] + cmp r1, 0 + bne _08190F50 + ldr r0, =gUnknown_02022E1C + strh r1, [r0] + ldr r1, =gUnknown_02022E1E + movs r6, 0xA0 + lsls r6, 1 + adds r0, r6, 0 + strh r0, [r1] + ldr r3, =gUnknown_0860D080 + ldr r2, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r2 + movs r4, 0xA + ldrsh r1, [r0, r4] + adds r1, r3 + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r0, r2 + ldrb r2, [r0, 0xC] + movs r0, 0x10 + orrs r0, r2 + ldrb r1, [r1] + bl sub_81924E0 + b _08191084 + .pool +_08190F50: + ldr r1, =gUnknown_02022E1C + movs r6, 0x80 + lsls r6, 1 + adds r0, r6, 0 + strh r0, [r1] + ldr r0, =gUnknown_02022E1E + movs r4, 0 + strh r4, [r0] + ldr r3, =gUnknown_0860D080 + ldr r2, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r2 + movs r6, 0xA + ldrsh r1, [r0, r6] + adds r1, r3 + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r0, r2 + ldrb r2, [r0, 0xC] + movs r0, 0x10 + orrs r0, r2 + ldrb r1, [r1] + bl sub_81924E0 + ldr r0, [r5] + strb r4, [r0, 0x10] + b _08191084 + .pool +_08190F9C: + ldr r6, =gUnknown_0203CD78 + ldr r1, [r6] + ldrb r5, [r1, 0x10] + cmp r5, 0 + bne _08190FF8 + ldr r4, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r4 + movs r2, 0xA + ldrsh r0, [r0, r2] + adds r2, r0, 0 + subs r2, 0x10 + lsls r0, r2, 24 + lsrs r0, 24 + adds r1, 0x11 + bl sub_8192F08 + ldr r0, =gUnknown_02022E1C + strh r5, [r0] + ldr r1, =gUnknown_02022E1E + movs r3, 0xA0 + lsls r3, 1 + adds r0, r3, 0 + strh r0, [r1] + ldr r2, [r6] + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r0, r4 + ldrb r1, [r0, 0xC] + movs r0, 0x10 + orrs r0, r1 + ldrb r1, [r2, 0x11] + bl sub_81924E0 + b _08191084 + .pool +_08190FF8: + cmp r5, 0x2 + bne _0819104C + ldr r4, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r4 + movs r5, 0xA + ldrsh r0, [r0, r5] + adds r2, r0, 0 + subs r2, 0x10 + lsls r0, r2, 24 + lsrs r0, 24 + adds r1, 0x11 + bl sub_8192F08 + ldr r1, =gUnknown_02022E1C + movs r0, 0 + strh r0, [r1] + ldr r1, =gUnknown_02022E1E + movs r2, 0xA0 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + ldr r2, [r6] + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r0, r4 + ldrb r1, [r0, 0xC] + movs r0, 0x10 + orrs r0, r1 + ldrb r1, [r2, 0x12] + bl sub_81924E0 + b _08191084 + .pool +_0819104C: + ldr r1, =gUnknown_02022E1C + movs r3, 0x80 + lsls r3, 1 + adds r0, r3, 0 + strh r0, [r1] + ldr r1, =gUnknown_02022E1E + movs r0, 0xA0 + strh r0, [r1] + ldr r1, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + movs r4, 0xA + ldrsh r0, [r0, r4] + adds r2, r0, 0 + subs r2, 0x10 + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r0, r1 + ldrb r1, [r0, 0xC] + movs r0, 0x10 + orrs r0, r1 + lsls r1, r2, 24 + lsrs r1, 24 + bl sub_819314C +_08191084: + movs r6, 0 + ldr r5, =gUnknown_0203CD78 + mov r10, r5 + ldr r3, =gSprites + mov r0, r9 + add r0, r8 + lsls r0, 3 + ldr r1, =gTasks + adds r5, r0, r1 + mov r12, r6 + adds r4, r3, 0 + adds r4, 0x1C + movs r7, 0x1 +_0819109E: + cmp r6, 0x1 + bgt _0819110C + mov r2, r10 + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, 0xFF + beq _08191150 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =sub_8190790 + str r1, [r0] + ldrb r0, [r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrh r0, [r5, 0xC] + eors r0, r7 + strh r0, [r1, 0x2E] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + mov r1, r12 + strh r1, [r0, 0x30] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r6, [r0, 0x32] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r1, [r0, 0x34] + b _08191150 + .pool +_0819110C: + mov r2, r10 + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, 0xFF + beq _08191150 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =sub_8190950 + str r1, [r0] + ldrb r0, [r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrh r0, [r5, 0xC] + eors r0, r7 + strh r0, [r1, 0x2E] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + mov r1, r12 + strh r1, [r0, 0x30] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r6, [r0, 0x32] +_08191150: + adds r6, 0x1 + cmp r6, 0x7 + ble _0819109E + movs r6, 0x8 + ldr r2, =gUnknown_0203CD78 + mov r12, r2 + ldr r3, =gSprites + ldr r1, =gTasks + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r5, r0, r1 + movs r4, 0 + adds r7, r3, 0 + adds r7, 0x1C +_0819116E: + cmp r6, 0x9 + bgt _081911D4 + mov r1, r12 + ldr r0, [r1] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, 0xFF + beq _08191214 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldr r1, =sub_8190790 + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r5, 0xC] + strh r1, [r0, 0x2E] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r4, [r0, 0x30] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r6, [r0, 0x32] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r1, [r0, 0x34] + b _08191214 + .pool +_081911D4: + mov r2, r12 + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, 0xFF + beq _08191214 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldr r1, =sub_8190950 + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r5, 0xC] + strh r1, [r0, 0x2E] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r4, [r0, 0x30] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r6, [r0, 0x32] +_08191214: + adds r6, 0x1 + cmp r6, 0xF + ble _0819116E + mov r0, r9 + add r0, r8 + lsls r0, 3 + ldr r3, =gTasks + adds r0, r3 + movs r2, 0 + movs r1, 0x4 + bl _08191FE8 + .pool +_08191234: + mov r0, r9 + add r0, r8 + lsls r0, 3 + ldr r4, =gTasks + adds r0, r4 + movs r5, 0xC + ldrsh r2, [r0, r5] + cmp r2, 0 + beq _08191278 + ldr r0, =gUnknown_02022E14 + movs r1, 0 + strh r1, [r0] + ldr r0, =gUnknown_02022E16 + strh r1, [r0] + ldr r0, =gUnknown_02022E18 + strh r1, [r0] + ldr r1, =gUnknown_02022E1A + ldr r2, =0x0000ff60 + adds r0, r2, 0 + strh r0, [r1] + b _0819128C + .pool +_08191278: + ldr r0, =gUnknown_02022E14 + strh r2, [r0] + ldr r1, =gUnknown_02022E16 + ldr r3, =0x0000ff60 + adds r0, r3, 0 + strh r0, [r1] + ldr r0, =gUnknown_02022E18 + strh r2, [r0] + ldr r0, =gUnknown_02022E1A + strh r2, [r0] +_0819128C: + cmp r6, 0x2 + bne _0819133C + ldr r5, =gUnknown_0203CD78 + ldr r0, [r5] + ldrb r1, [r0, 0x10] + cmp r1, 0 + bne _081912F4 + ldr r0, =gUnknown_02022E1C + strh r1, [r0] + ldr r1, =gUnknown_02022E1E + movs r0, 0xA0 + strh r0, [r1] + ldr r3, =gUnknown_0860D080 + ldr r2, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r2 + movs r4, 0xA + ldrsh r1, [r0, r4] + adds r1, r3 + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r0, r2 + ldrb r2, [r0, 0xC] + movs r0, 0x4 + orrs r0, r2 + ldrb r1, [r1] + bl sub_81924E0 + b _0819141C + .pool +_081912F4: + ldr r0, =gUnknown_02022E1C + movs r4, 0 + strh r4, [r0] + ldr r0, =gUnknown_02022E1E + strh r4, [r0] + ldr r3, =gUnknown_0860D080 + ldr r2, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r2 + movs r6, 0xA + ldrsh r1, [r0, r6] + adds r1, r3 + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r0, r2 + ldrb r2, [r0, 0xC] + movs r0, 0x4 + orrs r0, r2 + ldrb r1, [r1] + bl sub_81924E0 + ldr r0, [r5] + strb r4, [r0, 0x10] + b _0819141C + .pool +_0819133C: + ldr r6, =gUnknown_0203CD78 + ldr r1, [r6] + ldrb r5, [r1, 0x10] + cmp r5, 0 + bne _08191394 + ldr r4, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r4 + movs r2, 0xA + ldrsh r0, [r0, r2] + adds r2, r0, 0 + subs r2, 0x10 + lsls r0, r2, 24 + lsrs r0, 24 + adds r1, 0x11 + bl sub_8192F08 + ldr r0, =gUnknown_02022E1C + strh r5, [r0] + ldr r1, =gUnknown_02022E1E + movs r0, 0xA0 + strh r0, [r1] + ldr r2, [r6] + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r0, r4 + ldrb r1, [r0, 0xC] + movs r0, 0x4 + orrs r0, r1 + ldrb r1, [r2, 0x11] + bl sub_81924E0 + b _0819141C + .pool +_08191394: + cmp r5, 0x2 + bne _081913E4 + ldr r4, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r4 + movs r3, 0xA + ldrsh r0, [r0, r3] + adds r2, r0, 0 + subs r2, 0x10 + lsls r0, r2, 24 + lsrs r0, 24 + adds r1, 0x11 + bl sub_8192F08 + ldr r1, =gUnknown_02022E1C + movs r0, 0 + strh r0, [r1] + ldr r1, =gUnknown_02022E1E + movs r0, 0xA0 + strh r0, [r1] + ldr r2, [r6] + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r0, r4 + ldrb r1, [r0, 0xC] + movs r0, 0x4 + orrs r0, r1 + ldrb r1, [r2, 0x12] + bl sub_81924E0 + b _0819141C + .pool +_081913E4: + ldr r1, =gUnknown_02022E1C + movs r4, 0x80 + lsls r4, 1 + adds r0, r4, 0 + strh r0, [r1] + ldr r1, =gUnknown_02022E1E + movs r0, 0 + strh r0, [r1] + ldr r1, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + movs r5, 0xA + ldrsh r0, [r0, r5] + adds r2, r0, 0 + subs r2, 0x10 + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r0, r1 + ldrb r1, [r0, 0xC] + movs r0, 0x4 + orrs r0, r1 + lsls r1, r2, 24 + lsrs r1, 24 + bl sub_819314C +_0819141C: + movs r6, 0 + ldr r0, =gUnknown_0203CD78 + mov r10, r0 + ldr r3, =gSprites + mov r0, r9 + add r0, r8 + lsls r0, 3 + ldr r1, =gTasks + adds r5, r0, r1 + mov r12, r6 + adds r4, r3, 0 + adds r4, 0x1C + movs r7, 0x1 +_08191436: + cmp r6, 0x1 + bgt _081914A4 + mov r2, r10 + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, 0xFF + beq _081914E8 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =sub_81907F8 + str r1, [r0] + ldrb r0, [r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrh r0, [r5, 0xC] + eors r0, r7 + strh r0, [r1, 0x2E] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + mov r1, r12 + strh r1, [r0, 0x30] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r6, [r0, 0x32] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r1, [r0, 0x34] + b _081914E8 + .pool +_081914A4: + mov r2, r10 + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, 0xFF + beq _081914E8 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =sub_81909CC + str r1, [r0] + ldrb r0, [r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrh r0, [r5, 0xC] + eors r0, r7 + strh r0, [r1, 0x2E] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + mov r1, r12 + strh r1, [r0, 0x30] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r6, [r0, 0x32] +_081914E8: + adds r6, 0x1 + cmp r6, 0x7 + ble _08191436 + movs r6, 0x8 + ldr r2, =gUnknown_0203CD78 + mov r12, r2 + ldr r3, =gSprites + ldr r1, =gTasks + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r5, r0, r1 + movs r4, 0 + adds r7, r3, 0 + adds r7, 0x1C +_08191506: + cmp r6, 0x9 + bgt _0819156C + mov r1, r12 + ldr r0, [r1] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, 0xFF + beq _081915AC + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldr r1, =sub_81907F8 + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r5, 0xC] + strh r1, [r0, 0x2E] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r4, [r0, 0x30] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r6, [r0, 0x32] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r1, [r0, 0x34] + b _081915AC + .pool +_0819156C: + mov r2, r12 + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, 0xFF + beq _081915AC + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldr r1, =sub_81909CC + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r5, 0xC] + strh r1, [r0, 0x2E] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r4, [r0, 0x30] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r6, [r0, 0x32] +_081915AC: + adds r6, 0x1 + cmp r6, 0xF + ble _08191506 + mov r0, r9 + add r0, r8 + lsls r0, 3 + ldr r3, =gTasks + adds r0, r3 + movs r2, 0 + movs r1, 0x5 + bl _08191FE8 + .pool +_081915CC: + mov r0, r9 + add r0, r8 + lsls r0, 3 + ldr r4, =gTasks + adds r0, r4 + movs r5, 0xC + ldrsh r2, [r0, r5] + cmp r2, 0 + beq _0819160C + ldr r0, =gUnknown_02022E14 + movs r1, 0 + strh r1, [r0] + ldr r0, =gUnknown_02022E16 + strh r1, [r0] + ldr r2, =gUnknown_02022E18 + movs r6, 0x80 + lsls r6, 1 + adds r0, r6, 0 + strh r0, [r2] + ldr r0, =gUnknown_02022E1A + strh r1, [r0] + b _08191622 + .pool +_0819160C: + ldr r1, =gUnknown_02022E14 + movs r3, 0x80 + lsls r3, 1 + adds r0, r3, 0 + strh r0, [r1] + ldr r0, =gUnknown_02022E16 + strh r2, [r0] + ldr r0, =gUnknown_02022E18 + strh r2, [r0] + ldr r0, =gUnknown_02022E1A + strh r2, [r0] +_08191622: + ldr r0, =gUnknown_0203CD78 + ldr r4, [r0] + ldrb r0, [r4, 0x10] + cmp r0, 0 + bne _08191688 + ldr r1, =gUnknown_02022E1C + movs r4, 0x80 + lsls r4, 1 + adds r0, r4, 0 + strh r0, [r1] + ldr r1, =gUnknown_02022E1E + movs r0, 0xA0 + strh r0, [r1] + ldr r3, =gUnknown_0860D080 + ldr r2, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r2 + movs r5, 0xA + ldrsh r1, [r0, r5] + adds r1, r3 + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r0, r2 + ldrb r2, [r0, 0xC] + movs r0, 0x8 + orrs r0, r2 + ldrb r1, [r1] + bl sub_81924E0 + b _081916C6 + .pool +_08191688: + ldr r1, =gUnknown_02022E1C + movs r6, 0x80 + lsls r6, 1 + adds r0, r6, 0 + strh r0, [r1] + ldr r1, =gUnknown_02022E1E + movs r0, 0 + strh r0, [r1] + ldr r3, =gUnknown_0860D15C + ldr r2, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r2 + movs r5, 0xA + ldrsh r1, [r0, r5] + lsls r1, 2 + subs r1, 0x1 + ldrb r4, [r4, 0x10] + adds r1, r4 + adds r1, r3 + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r0, r2 + ldrb r2, [r0, 0xC] + movs r0, 0x8 + orrs r0, r2 + ldrb r1, [r1] + bl sub_819314C +_081916C6: + movs r6, 0 + ldr r0, =gUnknown_0203CD78 + mov r10, r0 + ldr r3, =gSprites + mov r0, r9 + add r0, r8 + lsls r0, 3 + ldr r1, =gTasks + adds r5, r0, r1 + mov r12, r6 + adds r4, r3, 0 + adds r4, 0x1C + movs r7, 0x1 +_081916E0: + cmp r6, 0x1 + bgt _08191754 + mov r2, r10 + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, 0xFF + beq _08191798 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =sub_8190860 + str r1, [r0] + ldrb r0, [r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrh r0, [r5, 0xC] + eors r0, r7 + strh r0, [r1, 0x2E] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + mov r1, r12 + strh r1, [r0, 0x30] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r6, [r0, 0x32] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r1, [r0, 0x34] + b _08191798 + .pool +_08191754: + mov r2, r10 + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, 0xFF + beq _08191798 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =sub_8190A48 + str r1, [r0] + ldrb r0, [r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrh r0, [r5, 0xC] + eors r0, r7 + strh r0, [r1, 0x2E] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + mov r1, r12 + strh r1, [r0, 0x30] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r6, [r0, 0x32] +_08191798: + adds r6, 0x1 + cmp r6, 0x7 + ble _081916E0 + movs r6, 0x8 + ldr r2, =gUnknown_0203CD78 + mov r12, r2 + ldr r3, =gSprites + ldr r1, =gTasks + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r5, r0, r1 + movs r4, 0 + adds r7, r3, 0 + adds r7, 0x1C +_081917B6: + cmp r6, 0x9 + bgt _0819181C + mov r1, r12 + ldr r0, [r1] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, 0xFF + beq _0819185C + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldr r1, =sub_8190860 + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r5, 0xC] + strh r1, [r0, 0x2E] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r4, [r0, 0x30] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r6, [r0, 0x32] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r1, [r0, 0x34] + b _0819185C + .pool +_0819181C: + mov r2, r12 + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, 0xFF + beq _0819185C + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldr r1, =sub_8190A48 + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r5, 0xC] + strh r1, [r0, 0x2E] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r4, [r0, 0x30] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r6, [r0, 0x32] +_0819185C: + adds r6, 0x1 + cmp r6, 0xF + ble _081917B6 + mov r0, r9 + add r0, r8 + lsls r0, 3 + ldr r3, =gTasks + adds r0, r3 + movs r2, 0 + movs r1, 0x6 + b _08191FE8 + .pool +_0819187C: + mov r0, r9 + add r0, r8 + lsls r0, 3 + ldr r4, =gTasks + adds r0, r4 + movs r5, 0xC + ldrsh r2, [r0, r5] + cmp r2, 0 + beq _081918BC + ldr r0, =gUnknown_02022E14 + movs r1, 0 + strh r1, [r0] + ldr r0, =gUnknown_02022E16 + strh r1, [r0] + ldr r2, =gUnknown_02022E18 + movs r6, 0x80 + lsls r6, 1 + adds r0, r6, 0 + strh r0, [r2] + ldr r0, =gUnknown_02022E1A + strh r1, [r0] + b _081918D2 + .pool +_081918BC: + ldr r1, =gUnknown_02022E14 + movs r3, 0x80 + lsls r3, 1 + adds r0, r3, 0 + strh r0, [r1] + ldr r0, =gUnknown_02022E16 + strh r2, [r0] + ldr r0, =gUnknown_02022E18 + strh r2, [r0] + ldr r0, =gUnknown_02022E1A + strh r2, [r0] +_081918D2: + ldr r0, =gUnknown_0203CD78 + ldr r2, [r0] + ldrb r0, [r2, 0x10] + cmp r0, 0 + bne _08191924 + ldr r1, =gUnknown_02022E1C + movs r4, 0x80 + lsls r4, 1 + adds r0, r4, 0 + strh r0, [r1] + ldr r1, =gUnknown_02022E1E + movs r0, 0xA0 + strh r0, [r1] + ldr r1, =gTasks + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r0, r1 + ldrb r1, [r0, 0xC] + movs r0, 0x8 + orrs r0, r1 + ldrb r1, [r2, 0x11] + bl sub_81924E0 + b _08191958 + .pool +_08191924: + ldr r1, =gUnknown_02022E1C + movs r0, 0 + strh r0, [r1] + ldr r1, =gUnknown_02022E1E + movs r0, 0xA0 + strh r0, [r1] + ldr r1, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + movs r5, 0xA + ldrsh r0, [r0, r5] + adds r2, r0, 0 + subs r2, 0x10 + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r0, r1 + ldrb r1, [r0, 0xC] + movs r0, 0x8 + orrs r0, r1 + lsls r1, r2, 24 + lsrs r1, 24 + bl sub_819314C +_08191958: + movs r6, 0 + ldr r0, =gUnknown_0203CD78 + mov r10, r0 + ldr r3, =gSprites + mov r0, r9 + add r0, r8 + lsls r0, 3 + ldr r1, =gTasks + adds r5, r0, r1 + mov r12, r6 + adds r4, r3, 0 + adds r4, 0x1C + movs r7, 0x1 +_08191972: + cmp r6, 0x1 + bgt _081919E0 + mov r2, r10 + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, 0xFF + beq _08191A24 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =sub_8190860 + str r1, [r0] + ldrb r0, [r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrh r0, [r5, 0xC] + eors r0, r7 + strh r0, [r1, 0x2E] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + mov r1, r12 + strh r1, [r0, 0x30] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r6, [r0, 0x32] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r1, [r0, 0x34] + b _08191A24 + .pool +_081919E0: + mov r2, r10 + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, 0xFF + beq _08191A24 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =sub_8190A48 + str r1, [r0] + ldrb r0, [r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrh r0, [r5, 0xC] + eors r0, r7 + strh r0, [r1, 0x2E] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + mov r1, r12 + strh r1, [r0, 0x30] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r6, [r0, 0x32] +_08191A24: + adds r6, 0x1 + cmp r6, 0x7 + ble _08191972 + movs r6, 0x8 + ldr r2, =gUnknown_0203CD78 + mov r12, r2 + ldr r3, =gSprites + ldr r1, =gTasks + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r5, r0, r1 + movs r4, 0 + adds r7, r3, 0 + adds r7, 0x1C +_08191A42: + cmp r6, 0x9 + bgt _08191AA8 + mov r1, r12 + ldr r0, [r1] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, 0xFF + beq _08191AE8 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldr r1, =sub_8190860 + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r5, 0xC] + strh r1, [r0, 0x2E] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r4, [r0, 0x30] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r6, [r0, 0x32] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r1, [r0, 0x34] + b _08191AE8 + .pool +_08191AA8: + mov r2, r12 + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, 0xFF + beq _08191AE8 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldr r1, =sub_8190A48 + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r5, 0xC] + strh r1, [r0, 0x2E] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r4, [r0, 0x30] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r6, [r0, 0x32] +_08191AE8: + adds r6, 0x1 + cmp r6, 0xF + ble _08191A42 + mov r0, r9 + add r0, r8 + lsls r0, 3 + ldr r3, =gTasks + adds r0, r3 + movs r2, 0 + movs r1, 0x6 + b _08191FE8 + .pool +_08191B08: + mov r0, r9 + add r0, r8 + lsls r0, 3 + ldr r4, =gTasks + adds r0, r4 + movs r5, 0xC + ldrsh r2, [r0, r5] + cmp r2, 0 + beq _08191B48 + ldr r0, =gUnknown_02022E14 + movs r1, 0 + strh r1, [r0] + ldr r0, =gUnknown_02022E16 + strh r1, [r0] + ldr r2, =gUnknown_02022E18 + movs r6, 0xFF + lsls r6, 8 + adds r0, r6, 0 + strh r0, [r2] + ldr r0, =gUnknown_02022E1A + strh r1, [r0] + b _08191B5E + .pool +_08191B48: + ldr r1, =gUnknown_02022E14 + movs r3, 0xFF + lsls r3, 8 + adds r0, r3, 0 + strh r0, [r1] + ldr r0, =gUnknown_02022E16 + strh r2, [r0] + ldr r0, =gUnknown_02022E18 + strh r2, [r0] + ldr r0, =gUnknown_02022E1A + strh r2, [r0] +_08191B5E: + ldr r0, =gUnknown_0203CD78 + ldr r0, [r0] + ldrb r0, [r0, 0x10] + cmp r0, 0x1 + bne _08191B94 + ldr r1, =gUnknown_02022E1C + movs r0, 0 + strh r0, [r1] + ldr r1, =gUnknown_02022E1E + movs r0, 0xA0 + strh r0, [r1] + b _08191B9E + .pool +_08191B94: + ldr r0, =gUnknown_02022E1C + movs r1, 0 + strh r1, [r0] + ldr r0, =gUnknown_02022E1E + strh r1, [r0] +_08191B9E: + ldr r4, =gUnknown_0860D15C + ldr r5, =gUnknown_0203CD78 + ldr r3, [r5] + ldr r2, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r2 + movs r6, 0xA + ldrsh r1, [r0, r6] + lsls r1, 2 + subs r1, 0x1 + ldrb r3, [r3, 0x10] + adds r1, r3 + adds r1, r4 + mov r4, r9 + add r4, r8 + lsls r4, 3 + adds r4, r2 + ldrb r2, [r4, 0xC] + movs r0, 0x2 + orrs r0, r2 + ldrb r1, [r1] + bl sub_819314C + movs r6, 0 + ldr r7, =gSprites + mov r12, r6 + mov r10, r5 + adds r5, r7, 0 + adds r5, 0x1C +_08191BDC: + cmp r6, 0x1 + bgt _08191C50 + mov r1, r10 + ldr r0, [r1] + adds r3, r0, r6 + ldrb r0, [r3] + cmp r0, 0xFF + beq _08191C96 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =sub_81908CC + str r1, [r0] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrh r1, [r4, 0xC] + movs r2, 0x1 + eors r1, r2 + strh r1, [r0, 0x2E] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + mov r2, r12 + strh r2, [r0, 0x30] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r6, [r0, 0x32] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r1, [r0, 0x34] + b _08191C96 + .pool +_08191C50: + mov r3, r10 + ldr r0, [r3] + adds r3, r0, r6 + ldrb r0, [r3] + cmp r0, 0xFF + beq _08191C96 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, =sub_8190AC4 + str r1, [r0] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrh r1, [r4, 0xC] + movs r2, 0x1 + eors r1, r2 + strh r1, [r0, 0x2E] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + mov r1, r12 + strh r1, [r0, 0x30] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r6, [r0, 0x32] +_08191C96: + adds r6, 0x1 + cmp r6, 0x7 + ble _08191BDC + movs r6, 0x8 + ldr r2, =gUnknown_0203CD78 + mov r12, r2 + ldr r3, =gSprites + ldr r1, =gTasks + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r5, r0, r1 + movs r4, 0 + adds r7, r3, 0 + adds r7, 0x1C +_08191CB4: + cmp r6, 0x9 + bgt _08191D1C + mov r1, r12 + ldr r0, [r1] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, 0xFF + beq _08191D5C + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldr r1, =sub_81908CC + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r5, 0xC] + strh r1, [r0, 0x2E] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r4, [r0, 0x30] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r6, [r0, 0x32] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r1, [r0, 0x34] + b _08191D5C + .pool +_08191D1C: + mov r2, r12 + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, 0xFF + beq _08191D5C + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldr r1, =sub_8190AC4 + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r5, 0xC] + strh r1, [r0, 0x2E] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r4, [r0, 0x30] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r6, [r0, 0x32] +_08191D5C: + adds r6, 0x1 + cmp r6, 0xF + ble _08191CB4 + b _08191FDA + .pool +_08191D68: + mov r0, r9 + add r0, r8 + lsls r0, 3 + ldr r4, =gTasks + adds r0, r4 + movs r5, 0xC + ldrsh r2, [r0, r5] + cmp r2, 0 + beq _08191DA8 + ldr r0, =gUnknown_02022E14 + movs r1, 0 + strh r1, [r0] + ldr r0, =gUnknown_02022E16 + strh r1, [r0] + ldr r2, =gUnknown_02022E18 + movs r6, 0xFF + lsls r6, 8 + adds r0, r6, 0 + strh r0, [r2] + ldr r0, =gUnknown_02022E1A + strh r1, [r0] + b _08191DBE + .pool +_08191DA8: + ldr r1, =gUnknown_02022E14 + movs r3, 0xFF + lsls r3, 8 + adds r0, r3, 0 + strh r0, [r1] + ldr r0, =gUnknown_02022E16 + strh r2, [r0] + ldr r0, =gUnknown_02022E18 + strh r2, [r0] + ldr r0, =gUnknown_02022E1A + strh r2, [r0] +_08191DBE: + ldr r0, =gUnknown_0203CD78 + ldr r2, [r0] + ldrb r0, [r2, 0x10] + cmp r0, 0x2 + bne _08191E10 + ldr r1, =gUnknown_02022E1C + movs r4, 0x80 + lsls r4, 1 + adds r0, r4, 0 + strh r0, [r1] + ldr r1, =gUnknown_02022E1E + movs r0, 0xA0 + strh r0, [r1] + ldr r1, =gTasks + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r0, r1 + ldrb r1, [r0, 0xC] + movs r0, 0x2 + orrs r0, r1 + ldrb r1, [r2, 0x12] + bl sub_81924E0 + b _08191E44 + .pool +_08191E10: + ldr r1, =gUnknown_02022E1C + movs r0, 0 + strh r0, [r1] + ldr r1, =gUnknown_02022E1E + movs r0, 0xA0 + strh r0, [r1] + ldr r1, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + movs r5, 0xA + ldrsh r0, [r0, r5] + adds r2, r0, 0 + subs r2, 0x10 + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r0, r1 + ldrb r1, [r0, 0xC] + movs r0, 0x2 + orrs r0, r1 + lsls r1, r2, 24 + lsrs r1, 24 + bl sub_819314C +_08191E44: + movs r6, 0 + ldr r0, =gUnknown_0203CD78 + mov r10, r0 + ldr r3, =gSprites + mov r0, r9 + add r0, r8 + lsls r0, 3 + ldr r1, =gTasks + adds r5, r0, r1 + mov r12, r6 + adds r4, r3, 0 + adds r4, 0x1C + movs r7, 0x1 +_08191E5E: + cmp r6, 0x1 + bgt _08191ECC + mov r2, r10 + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, 0xFF + beq _08191F10 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =sub_81908CC + str r1, [r0] + ldrb r0, [r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrh r0, [r5, 0xC] + eors r0, r7 + strh r0, [r1, 0x2E] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + mov r1, r12 + strh r1, [r0, 0x30] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r6, [r0, 0x32] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r1, [r0, 0x34] + b _08191F10 + .pool +_08191ECC: + mov r2, r10 + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, 0xFF + beq _08191F10 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, =sub_8190AC4 + str r1, [r0] + ldrb r0, [r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrh r0, [r5, 0xC] + eors r0, r7 + strh r0, [r1, 0x2E] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + mov r1, r12 + strh r1, [r0, 0x30] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r6, [r0, 0x32] +_08191F10: + adds r6, 0x1 + cmp r6, 0x7 + ble _08191E5E + movs r6, 0x8 + ldr r2, =gUnknown_0203CD78 + mov r12, r2 + ldr r3, =gSprites + ldr r1, =gTasks + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r5, r0, r1 + movs r4, 0 + adds r7, r3, 0 + adds r7, 0x1C +_08191F2E: + cmp r6, 0x9 + bgt _08191F94 + mov r1, r12 + ldr r0, [r1] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, 0xFF + beq _08191FD4 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldr r1, =sub_81908CC + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r5, 0xC] + strh r1, [r0, 0x2E] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r4, [r0, 0x30] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r6, [r0, 0x32] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r1, [r0, 0x34] + b _08191FD4 + .pool +_08191F94: + mov r2, r12 + ldr r0, [r2] + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, 0xFF + beq _08191FD4 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldr r1, =sub_8190AC4 + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r5, 0xC] + strh r1, [r0, 0x2E] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r4, [r0, 0x30] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r6, [r0, 0x32] +_08191FD4: + adds r6, 0x1 + cmp r6, 0xF + ble _08191F2E +_08191FDA: + mov r0, r9 + add r0, r8 + lsls r0, 3 + ldr r3, =gTasks + adds r0, r3 + movs r2, 0 + movs r1, 0x7 +_08191FE8: + strh r1, [r0, 0x8] + strh r2, [r0, 0x12] + b _08192202 + .pool +_08191FF8: + mov r4, r8 + lsls r0, r4, 2 + add r0, r8 + lsls r0, 3 + ldr r5, =gTasks + adds r1, r0, r5 + ldrh r0, [r1, 0x12] + adds r0, 0x1 + strh r0, [r1, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x29 + beq _08192100 + ldr r1, =gUnknown_02022E16 + ldrh r0, [r1] + subs r0, 0x4 + strh r0, [r1] + ldr r1, =gUnknown_02022E1A + ldrh r0, [r1] + subs r0, 0x4 + strh r0, [r1] + ldr r1, =gUnknown_02022E1E + b _081920A4 + .pool +_08192038: + mov r6, r8 + lsls r0, r6, 2 + add r0, r8 + lsls r0, 3 + ldr r2, =gTasks + adds r1, r0, r2 + ldrh r0, [r1, 0x12] + adds r0, 0x1 + strh r0, [r1, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x29 + beq _08192100 + ldr r1, =gUnknown_02022E16 + ldrh r0, [r1] + adds r0, 0x4 + strh r0, [r1] + ldr r1, =gUnknown_02022E1A + ldrh r0, [r1] + adds r0, 0x4 + strh r0, [r1] + ldr r1, =gUnknown_02022E1E + b _081920E8 + .pool +_08192078: + mov r3, r8 + lsls r0, r3, 2 + add r0, r8 + lsls r0, 3 + ldr r4, =gTasks + adds r1, r0, r4 + ldrh r0, [r1, 0x12] + adds r0, 0x1 + strh r0, [r1, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x41 + beq _08192100 + ldr r1, =gUnknown_02022E14 + ldrh r0, [r1] + subs r0, 0x4 + strh r0, [r1] + ldr r1, =gUnknown_02022E18 + ldrh r0, [r1] + subs r0, 0x4 + strh r0, [r1] + ldr r1, =gUnknown_02022E1C +_081920A4: + ldrh r0, [r1] + subs r0, 0x4 + strh r0, [r1] + b _08192202 + .pool +_081920BC: + mov r5, r8 + lsls r0, r5, 2 + add r0, r8 + lsls r0, 3 + ldr r6, =gTasks + adds r1, r0, r6 + ldrh r0, [r1, 0x12] + adds r0, 0x1 + strh r0, [r1, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x41 + beq _08192100 + ldr r1, =gUnknown_02022E14 + ldrh r0, [r1] + adds r0, 0x4 + strh r0, [r1] + ldr r1, =gUnknown_02022E18 + ldrh r0, [r1] + adds r0, 0x4 + strh r0, [r1] + ldr r1, =gUnknown_02022E1C +_081920E8: + ldrh r0, [r1] + adds r0, 0x4 + strh r0, [r1] + b _08192202 + .pool +_08192100: + movs r0, 0x2 + strh r0, [r1, 0x8] + b _08192202 +_08192106: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08192202 + movs r6, 0 + ldr r4, =gUnknown_0203CD78 +_08192116: + cmp r6, 0x1 + bgt _08192134 + ldr r0, [r4] + adds r1, r0, r6 + ldrb r0, [r1] + cmp r0, 0xFF + beq _0819214E + bl sub_818D8F0 + b _0819214E + .pool +_08192134: + ldr r0, [r4] + adds r1, r0, r6 + ldrb r0, [r1] + cmp r0, 0xFF + beq _0819214E + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + bl sub_80D2EF8 +_0819214E: + adds r6, 0x1 + cmp r6, 0x7 + ble _08192116 + movs r6, 0x8 + ldr r4, =gUnknown_0203CD78 +_08192158: + cmp r6, 0x9 + bgt _08192174 + ldr r0, [r4] + adds r1, r0, r6 + ldrb r0, [r1] + cmp r0, 0xFF + beq _0819218E + bl sub_818D8F0 + b _0819218E + .pool +_08192174: + ldr r0, [r4] + adds r1, r0, r6 + ldrb r0, [r1] + cmp r0, 0xFF + beq _0819218E + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + bl sub_80D2EF8 +_0819218E: + adds r6, 0x1 + cmp r6, 0xF + ble _08192158 + bl sub_80D2F9C + ldr r4, =gUnknown_0203CD78 + ldr r0, [r4] + bl Free + movs r5, 0 + str r5, [r4] + bl FreeAllWindowBuffers + mov r0, r9 + cmp r0, 0 + bne _081921C4 + ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music + bl SetMainCallback2 + b _081921FC + .pool +_081921C4: + ldr r0, =sub_8194220 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r6, r0, 24 + ldr r2, =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r2 + strh r5, [r1, 0x8] + strh r5, [r1, 0xA] + movs r0, 0x3 + strh r0, [r1, 0xC] + mov r3, r8 + lsls r0, r3, 2 + add r0, r8 + lsls r0, 3 + adds r0, r2 + ldrh r0, [r0, 0x10] + strh r0, [r1, 0xE] + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r2 + ldrh r0, [r0, 0x14] + strh r0, [r1, 0x10] +_081921FC: + mov r0, r8 + bl DestroyTask +_08192202: + 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_8190CD4 + + thumb_func_start sub_819221C +sub_819221C: @ 819221C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r7, 0 + ldr r2, =gTasks + lsls r0, 2 + add r0, r9 + lsls r0, 3 + adds r0, r2 + mov r12, r0 + movs r1, 0x10 + ldrsh r6, [r0, r1] + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r2 + movs r3, 0xA + ldrsh r5, [r0, r3] + ldr r0, =gUnknown_0860D080 + adds r0, r5, r0 + ldrb r0, [r0] + mov r10, r0 + ldr r3, =gSaveBlock2Ptr + ldr r0, [r3] + ldr r1, =0x00000cb2 + adds r0, r1 + ldrh r0, [r0] + mov r8, r0 + ldr r1, =gMain + ldrh r4, [r1, 0x2E] + movs r0, 0x3 + ands r0, r4 + adds r2, r1, 0 + cmp r0, 0 + beq _0819226E + movs r7, 0x9 +_0819226E: + mov r3, r12 + movs r1, 0xE + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _0819227A + b _081924CC +_0819227A: + cmp r0, 0x1 + beq _08192280 + b _081923B0 +_08192280: + movs r0, 0x40 + ands r0, r4 + cmp r0, 0 + beq _081922BA + ldr r0, =gUnknown_0203CD78 + ldr r0, [r0] + ldrb r0, [r0, 0x10] + cmp r0, 0 + bne _081922BA + cmp r5, 0 + bne _081922B4 + movs r5, 0xF + b _081922B6 + .pool +_081922B4: + subs r5, 0x1 +_081922B6: + movs r7, 0x1 + b _08192360 +_081922BA: + ldrh r1, [r2, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081922E2 + ldr r0, =gUnknown_0203CD78 + ldr r0, [r0] + ldrb r0, [r0, 0x10] + cmp r0, 0 + bne _081922E2 + cmp r5, 0xF + bne _081922DC + movs r5, 0 + b _081922DE + .pool +_081922DC: + adds r5, 0x1 +_081922DE: + movs r7, 0x2 + b _08192360 +_081922E2: + ldrh r1, [r2, 0x2E] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08192304 + ldr r0, =gUnknown_0203CD78 + ldr r1, [r0] + ldrb r0, [r1, 0x10] + cmp r0, 0 + beq _08192304 + subs r0, 0x1 + strb r0, [r1, 0x10] + movs r7, 0x3 + b _08192360 + .pool +_08192304: + ldrh r1, [r2, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08192360 + ldr r2, =gSaveBlock2Ptr + ldr r0, [r2] + mov r3, r10 + lsls r1, r3, 2 + adds r0, r1 + ldr r2, =0x00000d25 + adds r0, r2 + ldrb r3, [r0] + lsls r0, r3, 29 + mov r12, r1 + cmp r0, 0 + bge _0819233C + ldr r0, =gUnknown_0203CD78 + ldr r2, [r0] + ldrb r4, [r2, 0x10] + subs r1, r4, 0x1 + lsls r0, r3, 27 + lsrs r0, 30 + cmp r1, r0 + bge _0819233C + adds r0, r4, 0x1 + strb r0, [r2, 0x10] + movs r7, 0x4 +_0819233C: + ldr r3, =gSaveBlock2Ptr + ldr r0, [r3] + add r0, r12 + ldr r1, =0x00000d25 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + blt _08192360 + ldr r0, =gUnknown_0203CD78 + ldr r3, [r0] + ldrb r1, [r3, 0x10] + subs r0, r1, 0x1 + cmp r0, r8 + bge _08192360 + adds r0, r1, 0x1 + strb r0, [r3, 0x10] + movs r7, 0x4 +_08192360: + cmp r7, 0x9 + beq _08192366 + b _081924A0 +_08192366: + ldr r0, =gUnknown_0203CD78 + ldr r3, [r0] + ldrb r0, [r3, 0x10] + cmp r0, 0 + beq _081923A0 + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + ldr r2, =gTasks + adds r1, r2 + ldr r2, =gUnknown_0860D1A0 + lsrs r0, r5, 31 + adds r0, r5, r0 + asrs r0, 1 + lsls r0, 2 + subs r0, 0x1 + ldrb r3, [r3, 0x10] + adds r0, r3 + b _08192482 + .pool +_081923A0: + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r3, =gTasks + adds r0, r3 + b _0819249E + .pool +_081923B0: + movs r0, 0x40 + ands r0, r4 + cmp r0, 0 + beq _081923DE + ldr r0, =gUnknown_0203CD78 + ldr r0, [r0] + ldrb r0, [r0, 0x10] + cmp r0, 0x1 + bne _081923DE + cmp r5, 0x10 + bne _081923D8 + ldr r0, =gUnknown_0860D19C + add r0, r8 + ldrb r5, [r0] + b _081923DA + .pool +_081923D8: + subs r5, 0x1 +_081923DA: + movs r7, 0x5 + b _08192446 +_081923DE: + ldrh r1, [r2, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0819240E + ldr r0, =gUnknown_0203CD78 + ldr r0, [r0] + ldrb r0, [r0, 0x10] + cmp r0, 0x1 + bne _0819240E + ldr r0, =gUnknown_0860D19C + add r0, r8 + ldrb r0, [r0] + cmp r5, r0 + bne _08192408 + movs r5, 0x10 + b _0819240A + .pool +_08192408: + adds r5, 0x1 +_0819240A: + movs r7, 0x6 + b _08192446 +_0819240E: + ldrh r1, [r2, 0x2E] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0819242C + ldr r0, =gUnknown_0203CD78 + ldr r1, [r0] + ldrb r0, [r1, 0x10] + cmp r0, 0 + beq _0819242C + movs r7, 0x7 + subs r0, 0x1 + b _08192444 + .pool +_0819242C: + ldrh r1, [r2, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08192446 + ldr r0, =gUnknown_0203CD78 + ldr r1, [r0] + ldrb r0, [r1, 0x10] + cmp r0, 0x1 + bhi _08192446 + movs r7, 0x8 + adds r0, 0x1 +_08192444: + strb r0, [r1, 0x10] +_08192446: + cmp r7, 0x9 + bne _081924A0 + ldr r0, =gUnknown_0203CD78 + ldr r0, [r0] + ldrb r1, [r0, 0x10] + cmp r1, 0 + bne _08192470 + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + ldr r2, =gTasks + adds r1, r2 + ldr r2, =gUnknown_0860D1C0 + ldrb r0, [r0, 0x11] + b _08192482 + .pool +_08192470: + cmp r1, 0x2 + bne _08192494 + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + ldr r3, =gTasks + adds r1, r3 + ldr r2, =gUnknown_0860D1C0 + ldrb r0, [r0, 0x12] +_08192482: + adds r0, r2 + ldrb r0, [r0] + strh r0, [r1, 0xA] + b _081924A0 + .pool +_08192494: + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, =gTasks + adds r0, r1 +_0819249E: + strh r5, [r0, 0xA] +_081924A0: + cmp r7, 0 + beq _081924CC + cmp r7, 0x9 + beq _081924CC + movs r0, 0x5 + bl PlaySE + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0xA] + mov r2, r9 + lsls r0, r2, 2 + add r0, r9 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0xC] + movs r2, 0x1 + eors r1, r2 + strh r1, [r0, 0xC] +_081924CC: + adds r0, r7, 0 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_819221C + + thumb_func_start sub_81924E0 +sub_81924E0: @ 81924E0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x58 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x1C] + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0x20] + movs r5, 0 + movs r0, 0 + str r0, [sp, 0x28] + movs r1, 0 + str r1, [sp, 0x2C] + movs r2, 0 + str r2, [sp, 0x30] + movs r4, 0 + movs r0, 0x24 + bl AllocZeroed + mov r8, r0 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r3, [sp, 0x20] + lsls r0, r3, 2 + adds r0, r1, r0 + ldr r2, =0x00000d24 + adds r0, r2 + ldrh r0, [r0] + lsls r0, 22 + lsrs r0, 22 + str r0, [sp, 0x24] + movs r0, 0x1 + ldr r3, [sp, 0x1C] + ands r0, r3 + cmp r0, 0 + beq _08192538 + movs r5, 0x8 + movs r4, 0x9 + str r4, [sp, 0x28] + movs r4, 0x2 +_08192538: + movs r0, 0x2 + ldr r2, [sp, 0x1C] + ands r0, r2 + cmp r0, 0 + beq _08192548 + movs r3, 0x80 + lsls r3, 1 + str r3, [sp, 0x2C] +_08192548: + movs r0, 0x4 + ldr r2, [sp, 0x1C] + ands r0, r2 + cmp r0, 0 + beq _08192556 + movs r3, 0xA0 + str r3, [sp, 0x30] +_08192556: + movs r0, 0x8 + ldr r2, [sp, 0x1C] + ands r0, r2 + cmp r0, 0 + beq _08192564 + ldr r3, =0xffffff00 + str r3, [sp, 0x2C] +_08192564: + movs r0, 0x10 + ldr r2, [sp, 0x1C] + ands r0, r2 + cmp r0, 0 + beq _08192574 + movs r3, 0xA0 + negs r3, r3 + str r3, [sp, 0x30] +_08192574: + ldr r0, =0x000003ff + ldr r2, [sp, 0x24] + cmp r2, r0 + bne _08192598 + ldrb r0, [r1, 0x8] + bl sub_806F000 + lsls r0, 16 + lsrs r0, 16 + b _081925B6 + .pool +_08192598: + ldr r0, =0x000003fe + ldr r3, [sp, 0x24] + cmp r3, r0 + bne _081925AC + bl sub_8195910 + b _081925B2 + .pool +_081925AC: + ldr r0, [sp, 0x24] + bl sub_8162AA0 +_081925B2: + lsls r0, 24 + lsrs r0, 24 +_081925B6: + ldr r2, [sp, 0x2C] + adds r2, 0x30 + ldr r3, [sp, 0x30] + adds r3, 0x40 + adds r1, r4, 0 + adds r1, 0xC + str r1, [sp] + ldr r1, =0x0000ffff + str r1, [sp, 0x4] + movs r1, 0x1 + bl sub_818D8AC + ldr r1, =gUnknown_0203CD78 + ldr r1, [r1] + adds r1, r5 + strb r0, [r1] + movs r0, 0x1E + ldr r4, [sp, 0x1C] + ands r0, r4 + cmp r0, 0 + beq _081925FC + ldr r2, =gSprites + ldr r0, =gUnknown_0203CD78 + ldr r0, [r0] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_081925FC: + movs r7, 0 + ldr r0, [sp, 0x20] + lsls r0, 1 + str r0, [sp, 0x3C] + adds r1, r5, 0x2 + ldr r2, [sp, 0x28] + lsls r2, 24 + str r2, [sp, 0x44] + ldr r3, [sp, 0x28] + adds r3, 0x4 + str r3, [sp, 0x40] + ldr r4, [sp, 0x20] + adds r0, r4 + ldr r6, =gUnknown_0203CD78 + ldr r2, =gSprites + mov r10, r2 + adds r4, r1, 0 + lsls r5, r0, 1 + movs r3, 0 + mov r9, r3 +_08192624: + ldr r0, =0x000003ff + ldr r1, [sp, 0x24] + cmp r1, r0 + bne _08192660 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r2, =0x00000d64 + adds r0, r2 + adds r0, r5 + ldrh r0, [r0] + ldr r1, =gUnknown_0860D340 + adds r1, r7, r1 + ldrb r2, [r1] + ldr r3, [sp, 0x2C] + orrs r2, r3 + b _081926B0 + .pool +_08192660: + ldr r0, =0x000003fe + ldr r3, [sp, 0x24] + cmp r3, r0 + bne _08192690 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000d64 + adds r0, r1 + adds r0, r5 + ldrh r0, [r0] + ldr r1, =gUnknown_0860D340 + adds r1, r7, r1 + ldrb r2, [r1] + ldr r3, [sp, 0x2C] + orrs r2, r3 + b _081926B0 + .pool +_08192690: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r3, =0x00000d64 + adds r0, r3 + adds r0, r5 + ldrh r1, [r0] + ldr r0, =gUnknown_0203BC8C + ldr r0, [r0] + lsls r1, 4 + adds r1, r0 + ldrh r0, [r1] + ldr r1, =gUnknown_0860D340 + adds r1, r7, r1 + ldrb r2, [r1] + ldr r1, [sp, 0x2C] + orrs r2, r1 +_081926B0: + ldr r1, =gUnknown_0860D343 + adds r1, r7, r1 + ldrb r3, [r1] + ldr r1, [sp, 0x30] + adds r3, r1 + mov r1, r9 + str r1, [sp] + str r1, [sp, 0x4] + movs r1, 0x1 + str r1, [sp, 0x8] + ldr r1, =sub_8190938 + bl sub_80D2CC4 + ldr r1, [r6] + adds r1, r4 + strb r0, [r1] + ldr r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r10 + ldrb r1, [r0, 0x5] + movs r2, 0xD + negs r2, r2 + ands r1, r2 + strb r1, [r0, 0x5] + movs r0, 0x1E + ldr r3, [sp, 0x1C] + ands r0, r3 + cmp r0, 0 + beq _0819270A + ldr r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r10 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_0819270A: + adds r4, 0x1 + adds r5, 0x2 + adds r7, 0x1 + cmp r7, 0x2 + ble _08192624 + add r0, sp, 0xC + movs r2, 0 + movs r3, 0x2 + strb r3, [r0, 0x5] + strb r2, [r0, 0x6] + strb r2, [r0, 0x7] + adds r1, r0, 0 + adds r0, r2, 0 + strb r0, [r1, 0x8] + adds r0, r1, 0 + ldrb r0, [r0, 0x7] + strb r0, [r1, 0x9] + adds r0, r1, 0 + strb r3, [r0, 0xA] + strb r2, [r0, 0xB] + adds r3, r0, 0 + ldrb r2, [r3, 0xC] + movs r1, 0x10 + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + strb r0, [r3, 0xC] + adds r2, r3, 0 + movs r0, 0xE0 + strb r0, [r2, 0xC] + ldrb r0, [r2, 0xD] + ands r1, r0 + strb r1, [r2, 0xD] + adds r1, r2, 0 + movs r0, 0xD0 + strb r0, [r1, 0xD] + movs r7, 0 + ldr r0, =0x000003ff + ldr r4, [sp, 0x24] + cmp r4, r0 + bne _08192784 + ldr r0, =gTrainerClassNameIndices + adds r0, 0x3C + ldrb r5, [r0] + b _081927A2 + .pool +_08192784: + ldr r0, =0x000003fe + ldr r1, [sp, 0x24] + cmp r1, r0 + bne _08192798 + bl sub_8195924 + b _0819279E + .pool +_08192798: + ldr r0, [sp, 0x24] + bl sub_8162BD8 +_0819279E: + lsls r0, 24 + lsrs r5, r0, 24 +_081927A2: + ldr r2, =gTrainerClassNames + movs r0, 0xD + adds r1, r5, 0 + muls r1, r0 + adds r0, r7, r1 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0xFF + beq _081927CA + ldr r3, =gStringVar1 + adds r0, r1, r2 + adds r2, r7, r0 +_081927BA: + adds r0, r7, r3 + ldrb r1, [r2] + strb r1, [r0] + adds r2, 0x1 + adds r7, 0x1 + ldrb r0, [r2] + cmp r0, 0xFF + bne _081927BA +_081927CA: + ldr r5, =gStringVar1 + adds r1, r7, r5 + movs r0, 0 + strb r0, [r1] + adds r0, r7, 0x1 + adds r0, r5 + movs r1, 0xFF + strb r1, [r0] + ldr r0, =0x000003ff + ldr r2, [sp, 0x24] + cmp r2, r0 + bne _08192800 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + adds r0, r5, 0 + bl StringAppend + b _08192836 + .pool +_08192800: + ldr r0, =0x000003fe + ldr r3, [sp, 0x24] + cmp r3, r0 + bne _08192824 + ldr r4, =gStringVar2 + adds r0, r4, 0 + bl sub_8195938 + adds r0, r5, 0 + adds r1, r4, 0 + bl StringAppend + b _08192836 + .pool +_08192824: + ldr r4, =gStringVar2 + ldr r1, [sp, 0x24] + adds r0, r4, 0 + bl sub_8195898 + adds r0, r5, 0 + adds r1, r4, 0 + bl StringAppend +_08192836: + add r0, sp, 0xC + ldrb r0, [r0, 0x5] + ldr r4, =gStringVar1 + add r1, sp, 0xC + ldrb r3, [r1, 0xA] + adds r1, r4, 0 + movs r2, 0xD0 + bl GetStringCenterAlignXOffsetWithLetterSpacing + add r1, sp, 0xC + movs r5, 0 + strb r0, [r1, 0x8] + str r4, [sp, 0xC] + adds r0, r1, 0 + add r4, sp, 0x28 + ldrb r4, [r4] + strb r4, [r0, 0x4] + ldr r0, [sp, 0x44] + lsrs r4, r0, 24 + adds r0, r4, 0 + bl PutWindowTilemap + adds r0, r4, 0 + movs r1, 0x3 + bl CopyWindowToVram + add r0, sp, 0xC + movs r1, 0 + movs r2, 0 + bl AddTextPrinter + add r0, sp, 0xC + strb r5, [r0, 0xA] + movs r7, 0 + adds r6, r0, 0 + ldr r1, [sp, 0x3C] + ldr r2, [sp, 0x20] + adds r0, r1, r2 + lsls r0, 1 + mov r9, r0 + movs r3, 0xB + mov r10, r3 +_0819288A: + ldr r0, =gUnknown_0860D346 + adds r0, r7, r0 + ldrb r0, [r0] + strb r0, [r6, 0x9] + ldr r0, =0x000003ff + ldr r4, [sp, 0x24] + cmp r4, r0 + bne _081928C0 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + lsls r0, r7, 1 + add r0, r9 + ldr r2, =0x00000d64 + adds r1, r2 + b _081928FA + .pool +_081928C0: + ldr r0, =0x000003fe + ldr r4, [sp, 0x24] + cmp r4, r0 + bne _081928E4 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + lsls r0, r7, 1 + add r0, r9 + ldr r2, =0x00000d64 + adds r1, r2 + b _081928FA + .pool +_081928E4: + ldr r4, =gSaveBlock2Ptr + ldr r1, [r4] + lsls r0, r7, 1 + add r0, r9 + ldr r2, =0x00000d64 + adds r1, r2 + adds r1, r0 + ldrh r1, [r1] + ldr r0, =gUnknown_0203BC8C + ldr r0, [r0] + lsls r1, 4 +_081928FA: + adds r1, r0 + ldrh r0, [r1] + mov r3, r10 + muls r3, r0 + adds r0, r3, 0 + ldr r1, =gSpeciesNames + adds r0, r1 + str r0, [sp, 0xC] + adds r0, r7, 0x1 + ldr r4, [sp, 0x28] + adds r0, r4 + movs r1, 0 + strb r0, [r6, 0x4] + cmp r7, 0x1 + bne _08192930 + movs r0, 0x7 + strb r0, [r6, 0x8] + b _08192932 + .pool +_08192930: + strb r1, [r6, 0x8] +_08192932: + adds r5, r7, 0x1 + ldr r0, [sp, 0x28] + adds r4, r5, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl PutWindowTilemap + adds r0, r4, 0 + movs r1, 0x3 + bl CopyWindowToVram + add r0, sp, 0xC + movs r1, 0 + movs r2, 0 + bl AddTextPrinter + adds r7, r5, 0 + cmp r7, 0x2 + ble _0819288A + ldr r4, [sp, 0x40] + adds r0, r4, 0 + bl PutWindowTilemap + adds r0, r4, 0 + movs r1, 0x3 + bl CopyWindowToVram + ldr r0, =0x000003fe + ldr r1, [sp, 0x24] + cmp r1, r0 + bne _08192980 + ldr r0, =gUnknown_0860D1D0 + ldr r0, [r0, 0x40] + b _0819298A + .pool +_08192980: + ldr r0, =gUnknown_0860D1D0 + ldr r2, [sp, 0x20] + lsls r1, r2, 2 + adds r1, r0 + ldr r0, [r1] +_0819298A: + str r0, [sp, 0xC] + add r1, sp, 0xC + movs r2, 0 + movs r0, 0x1 + strb r0, [r1, 0x5] + adds r0, r1, 0 + add r3, sp, 0x40 + ldrb r3, [r3] + strb r3, [r0, 0x4] + strb r2, [r0, 0x8] + movs r1, 0x4 + strb r1, [r0, 0x7] + strb r1, [r0, 0x9] + movs r1, 0 + bl AddTextPrinter + movs r7, 0 + ldr r3, =gUnknown_0860B358 +_081929AE: + movs r5, 0 + adds r4, r7, 0x1 + str r4, [sp, 0x38] + lsls r0, r7, 1 + str r0, [sp, 0x34] + lsls r2, r7, 4 +_081929BA: + movs r6, 0 + lsls r1, r5, 1 + mov r10, r1 + mov r4, r8 + mov r9, r2 +_081929C4: + ldr r0, =0x000003fe + ldr r1, [sp, 0x24] + cmp r1, r0 + bne _08192A00 + lsls r0, r7, 24 + lsls r1, r5, 24 + lsrs r0, 24 + lsrs r1, 24 + str r2, [sp, 0x48] + str r3, [sp, 0x4C] + bl sub_81A5060 + lsls r0, 16 + lsrs r0, 12 + adds r0, r6, r0 + ldr r3, [sp, 0x4C] + adds r0, r3 + ldrh r1, [r4] + ldrb r0, [r0] + adds r1, r0 + strh r1, [r4] + ldr r2, [sp, 0x48] + b _08192A58 + .pool +_08192A00: + ldr r0, =0x000003ff + ldr r1, [sp, 0x24] + cmp r1, r0 + bne _08192A20 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000efc + adds r0, r1 + add r0, r9 + b _08192A48 + .pool +_08192A20: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + mov r12, r0 + ldr r0, [sp, 0x3C] + ldr r1, [sp, 0x20] + adds r0, r1 + str r0, [sp, 0x50] + lsls r0, 1 + ldr r1, [sp, 0x34] + adds r0, r1, r0 + ldr r1, =0x00000d64 + add r1, r12 + adds r1, r0 + ldrh r0, [r1] + ldr r1, =gUnknown_0203BC8C + ldr r1, [r1] + lsls r0, 4 + adds r0, r1 + adds r0, 0x2 + add r0, r10 +_08192A48: + ldrh r0, [r0] + lsls r0, 4 + adds r0, r6, r0 + adds r0, r3 + ldrh r1, [r4] + ldrb r0, [r0] + adds r1, r0 + strh r1, [r4] +_08192A58: + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0xF + ble _081929C4 + adds r2, 0x2 + adds r5, 0x1 + cmp r5, 0x3 + ble _081929BA + ldr r7, [sp, 0x38] + cmp r7, 0x2 + ble _081929AE + movs r7, 0 + ldr r2, =gUnknown_0860D214 + mov r9, r2 + ldr r3, =gUnknown_0860C988 + mov r10, r3 +_08192A78: + movs r4, 0 + movs r6, 0 + movs r5, 0 + mov r3, r8 + lsls r0, r7, 4 + mov r1, r10 + adds r2, r0, r1 +_08192A86: + ldrb r0, [r2] + cmp r0, 0 + beq _08192A9E + adds r4, 0x1 + movs r1, 0 + ldrsh r0, [r3, r1] + cmp r0, 0 + beq _08192A9E + ldrb r1, [r2] + cmp r0, r1 + blt _08192A9E + adds r6, 0x1 +_08192A9E: + adds r3, 0x2 + adds r2, 0x1 + adds r5, 0x1 + cmp r5, 0xF + ble _08192A86 + cmp r4, r6 + beq _08192AB2 + adds r7, 0x1 + cmp r7, 0x1E + bls _08192A78 +_08192AB2: + lsls r0, r7, 2 + add r0, r9 + ldr r0, [r0] + str r0, [sp, 0xC] + add r0, sp, 0xC + movs r1, 0x14 + strb r1, [r0, 0x7] + strb r1, [r0, 0x9] + movs r1, 0 + movs r2, 0 + bl AddTextPrinter + movs r1, 0 + mov r0, r8 + adds r0, 0x22 +_08192AD0: + strh r1, [r0] + subs r0, 0x2 + cmp r0, r8 + bge _08192AD0 + ldr r2, [sp, 0x24] + ldr r3, =0xfffffc02 + adds r0, r2, r3 + cmp r0, 0x1 + bls _08192AE4 + b _08192C24 +_08192AE4: + movs r7, 0 + movs r4, 0 + mov r9, r4 +_08192AEA: + movs r5, 0 + mov r4, r8 + mov r6, r9 +_08192AF0: + ldr r0, =0x000003fe + ldr r1, [sp, 0x24] + cmp r1, r0 + bne _08192B24 + lsls r1, r5, 24 + lsrs r1, 24 + lsrs r0, r6, 24 + bl sub_81A50F0 + lsls r0, 24 + lsrs r0, 24 + b _08192B34 + .pool +_08192B24: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + lsls r1, r7, 4 + adds r1, r5, r1 + ldr r2, =0x00000f04 + adds r0, r2 + adds r0, r1 + ldrb r0, [r0] +_08192B34: + strh r0, [r4] + adds r4, 0x2 + adds r5, 0x1 + cmp r5, 0x5 + ble _08192AF0 + mov r3, r8 + ldrh r0, [r3] + ldrh r4, [r3, 0xC] + adds r0, r4 + strh r0, [r3, 0xC] + movs r5, 0 + mov r4, r8 +_08192B4C: + ldr r0, =0x000003fe + ldr r1, [sp, 0x24] + cmp r1, r0 + bne _08192B70 + mov r2, r9 + lsrs r0, r2, 24 + bl sub_81A50B0 + lsls r0, 24 + lsrs r2, r0, 24 + b _08192B7E + .pool +_08192B70: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + lsls r1, r7, 4 + adds r0, r1 + ldr r3, =0x00000f0a + adds r0, r3 + ldrb r2, [r0] +_08192B7E: + ldr r1, =gNatureStatTable + lsls r0, r2, 2 + adds r0, r2 + adds r0, r5, r0 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + ble _08192BB4 + movs r0, 0x2 + ldrsh r1, [r4, r0] + movs r0, 0x6E + muls r0, r1 + movs r1, 0x64 + bl __divsi3 + ldrh r1, [r4, 0xE] + adds r1, r0 + strh r1, [r4, 0xE] + b _08192BDC + .pool +_08192BB4: + cmp r0, 0 + bge _08192BD4 + movs r2, 0x2 + ldrsh r1, [r4, r2] + movs r0, 0x5A + muls r0, r1 + movs r1, 0x64 + bl __divsi3 + ldrh r1, [r4, 0xE] + adds r1, r0 + strh r1, [r4, 0xE] + ldrh r0, [r4, 0x1A] + adds r0, 0x1 + strh r0, [r4, 0x1A] + b _08192BDC +_08192BD4: + ldrh r0, [r4, 0x2] + ldrh r3, [r4, 0xE] + adds r0, r3 + strh r0, [r4, 0xE] +_08192BDC: + adds r4, 0x2 + adds r5, 0x1 + cmp r5, 0x4 + ble _08192B4C + movs r4, 0x80 + lsls r4, 17 + add r9, r4 + adds r7, 0x1 + cmp r7, 0x2 + bgt _08192BF2 + b _08192AEA +_08192BF2: + movs r5, 0 + mov r1, r8 + movs r7, 0x5 +_08192BF8: + movs r2, 0xC + ldrsh r0, [r1, r2] + adds r5, r0 + adds r1, 0x2 + subs r7, 0x1 + cmp r7, 0 + bge _08192BF8 + movs r6, 0x64 + mov r4, r8 + movs r7, 0x5 +_08192C0C: + movs r3, 0xC + ldrsh r0, [r4, r3] + muls r0, r6 + adds r1, r5, 0 + bl __divsi3 + strh r0, [r4] + adds r4, 0x2 + subs r7, 0x1 + cmp r7, 0 + bge _08192C0C + b _08192D70 +_08192C24: + ldr r4, =gUnknown_0203BC8C + mov r10, r4 + ldr r1, [sp, 0x3C] + ldr r2, [sp, 0x20] + adds r0, r1, r2 + lsls r0, 1 + mov r9, r0 + movs r7, 0x2 +_08192C34: + ldr r3, =gSaveBlock2Ptr + ldr r0, [r3] + ldr r4, =0x00000d64 + adds r0, r4 + add r0, r9 + ldrh r0, [r0] + mov r2, r10 + ldr r1, [r2] + lsls r0, 4 + adds r0, r1 + ldrb r2, [r0, 0xB] + movs r6, 0 + movs r4, 0 + movs r3, 0x1 + mov r1, r8 + movs r5, 0x5 +_08192C54: + strh r4, [r1] + adds r0, r2, 0 + ands r0, r3 + cmp r0, 0 + beq _08192C60 + adds r6, 0x1 +_08192C60: + asrs r2, 1 + adds r1, 0x2 + subs r5, 0x1 + cmp r5, 0 + bge _08192C54 + movs r0, 0xFF + lsls r0, 1 + adds r1, r6, 0 + bl __divsi3 + adds r6, r0, 0 + ldr r3, =gSaveBlock2Ptr + ldr r0, [r3] + ldr r4, =0x00000d64 + adds r0, r4 + add r0, r9 + ldrh r0, [r0] + mov r2, r10 + ldr r1, [r2] + lsls r0, 4 + adds r0, r1 + ldrb r2, [r0, 0xB] + movs r3, 0x1 + mov r1, r8 + movs r5, 0x5 +_08192C92: + adds r0, r2, 0 + ands r0, r3 + cmp r0, 0 + beq _08192C9C + strh r6, [r1] +_08192C9C: + asrs r2, 1 + adds r1, 0x2 + subs r5, 0x1 + cmp r5, 0 + bge _08192C92 + mov r3, r8 + ldrh r0, [r3] + ldrh r4, [r3, 0xC] + adds r0, r4 + strh r0, [r3, 0xC] + movs r5, 0 + mov r4, r8 +_08192CB4: + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + ldr r2, =0x00000d64 + adds r0, r2 + add r0, r9 + ldrh r0, [r0] + mov r3, r10 + ldr r1, [r3] + lsls r0, 4 + adds r0, r1 + ldrb r2, [r0, 0xC] + lsls r0, r2, 2 + adds r0, r2 + adds r0, r5, r0 + ldr r1, =gNatureStatTable + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + ble _08192D04 + movs r2, 0x2 + ldrsh r1, [r4, r2] + movs r0, 0x6E + muls r0, r1 + movs r1, 0x64 + bl __divsi3 + ldrh r1, [r4, 0xE] + adds r1, r0 + strh r1, [r4, 0xE] + b _08192D2C + .pool +_08192D04: + cmp r0, 0 + bge _08192D24 + movs r3, 0x2 + ldrsh r1, [r4, r3] + movs r0, 0x5A + muls r0, r1 + movs r1, 0x64 + bl __divsi3 + ldrh r1, [r4, 0xE] + adds r1, r0 + strh r1, [r4, 0xE] + ldrh r0, [r4, 0x1A] + adds r0, 0x1 + strh r0, [r4, 0x1A] + b _08192D2C +_08192D24: + ldrh r0, [r4, 0x2] + ldrh r1, [r4, 0xE] + adds r0, r1 + strh r0, [r4, 0xE] +_08192D2C: + adds r4, 0x2 + adds r5, 0x1 + cmp r5, 0x4 + ble _08192CB4 + movs r2, 0x2 + add r9, r2 + subs r7, 0x1 + cmp r7, 0 + blt _08192D40 + b _08192C34 +_08192D40: + movs r5, 0 + mov r1, r8 + movs r7, 0x5 +_08192D46: + movs r3, 0xC + ldrsh r0, [r1, r3] + adds r5, r0 + adds r1, 0x2 + subs r7, 0x1 + cmp r7, 0 + bge _08192D46 + movs r6, 0x64 + mov r4, r8 + movs r7, 0x5 +_08192D5A: + movs r1, 0xC + ldrsh r0, [r4, r1] + muls r0, r6 + adds r1, r5, 0 + bl __divsi3 + strh r0, [r4] + adds r4, 0x2 + subs r7, 0x1 + cmp r7, 0 + bge _08192D5A +_08192D70: + movs r7, 0 + movs r5, 0 + movs r6, 0 + mov r4, r8 + mov r10, r8 + mov r9, r8 +_08192D7C: + movs r2, 0 + ldrsh r1, [r4, r2] + cmp r1, 0x1D + ble _08192DDE + cmp r7, 0x2 + bne _08192DD4 + mov r3, r8 + movs r0, 0xC + ldrsh r3, [r3, r0] + mov r12, r3 + cmp r12, r1 + bge _08192DC6 + mov r2, r8 + ldrh r2, [r2, 0xE] + add r3, sp, 0x54 + strh r2, [r3] + mov r2, r8 + movs r3, 0xE + ldrsh r0, [r2, r3] + cmp r0, r1 + bge _08192DBA + cmp r12, r0 + bge _08192DB4 + add r0, sp, 0x54 + ldrh r0, [r0] + strh r0, [r2, 0xC] + strh r6, [r2, 0xE] + b _08192DDE +_08192DB4: + mov r1, r8 + strh r6, [r1, 0xE] + b _08192DDE +_08192DBA: + add r2, sp, 0x54 + ldrh r3, [r2] + mov r2, r8 + strh r3, [r2, 0xC] + strh r6, [r2, 0xE] + b _08192DDE +_08192DC6: + mov r3, r8 + movs r2, 0xE + ldrsh r0, [r3, r2] + cmp r0, r1 + bge _08192DDE + strh r6, [r3, 0xE] + b _08192DDE +_08192DD4: + mov r3, r9 + strh r6, [r3, 0xC] + movs r0, 0x2 + add r9, r0 + adds r7, 0x1 +_08192DDE: + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _08192E64 + cmp r5, 0x2 + bne _08192E5A + movs r2, 0x18 + ldrsh r0, [r4, r2] + cmp r0, 0x1 + bgt _08192E18 + cmp r0, 0x1 + bne _08192E64 + mov r3, r8 + movs r1, 0x10 + ldrsh r0, [r3, r1] + lsls r0, 1 + add r0, r8 + movs r2, 0x18 + ldrsh r0, [r0, r2] + cmp r0, 0 + bne _08192E22 + movs r1, 0x12 + ldrsh r0, [r3, r1] + lsls r0, 1 + add r0, r8 + movs r2, 0x18 + ldrsh r0, [r0, r2] + cmp r0, 0 + bne _08192E22 +_08192E18: + mov r3, r8 + ldrh r0, [r3, 0x12] + strh r0, [r3, 0x10] + strh r6, [r3, 0x12] + b _08192E64 +_08192E22: + movs r1, 0x18 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _08192E64 + mov r2, r8 + movs r3, 0x10 + ldrsh r0, [r2, r3] + lsls r0, 1 + add r0, r8 + movs r1, 0x18 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _08192E44 + ldrh r0, [r2, 0x12] + strh r0, [r2, 0x10] + strh r6, [r2, 0x12] + b _08192E64 +_08192E44: + mov r2, r8 + movs r3, 0x12 + ldrsh r0, [r2, r3] + lsls r0, 1 + add r0, r8 + movs r1, 0x18 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _08192E64 + strh r6, [r2, 0x12] + b _08192E64 +_08192E5A: + mov r2, r10 + strh r6, [r2, 0x10] + movs r3, 0x2 + add r10, r3 + adds r5, 0x1 +_08192E64: + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x5 + ble _08192D7C + cmp r7, 0x2 + bne _08192E8C + ldr r0, =gUnknown_0860D349 + mov r4, r8 + movs r1, 0xC + ldrsh r2, [r4, r1] + adds r0, r2, r0 + movs r3, 0xE + ldrsh r1, [r4, r3] + subs r1, 0x1 + subs r1, r2 + ldrb r0, [r0] + adds r7, r1, r0 + b _08192ED2 + .pool +_08192E8C: + cmp r7, 0x1 + bne _08192E9C + mov r4, r8 + movs r1, 0xC + ldrsh r0, [r4, r1] + adds r7, r0, 0 + adds r7, 0xF + b _08192ED2 +_08192E9C: + cmp r5, 0x2 + bne _08192EC0 + ldr r0, =gUnknown_0860D349 + mov r3, r8 + movs r4, 0x10 + ldrsh r2, [r3, r4] + adds r0, r2, r0 + movs r4, 0x12 + ldrsh r1, [r3, r4] + subs r1, 0x1 + subs r1, r2 + ldrb r0, [r0] + adds r1, r0 + adds r7, r1, 0 + adds r7, 0x15 + b _08192ED2 + .pool +_08192EC0: + cmp r5, 0x1 + bne _08192ED0 + mov r1, r8 + movs r2, 0x10 + ldrsh r0, [r1, r2] + adds r7, r0, 0 + adds r7, 0x24 + b _08192ED2 +_08192ED0: + movs r7, 0x2A +_08192ED2: + lsls r0, r7, 2 + ldr r3, =gUnknown_0860D294 + adds r0, r3 + ldr r0, [r0] + str r0, [sp, 0xC] + add r0, sp, 0xC + movs r1, 0x24 + strb r1, [r0, 0x7] + strb r1, [r0, 0x9] + movs r1, 0 + movs r2, 0 + bl AddTextPrinter + mov r0, r8 + bl Free + add sp, 0x58 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81924E0 + + thumb_func_start sub_8192F08 +sub_8192F08: @ 8192F08 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + str r1, [sp] + lsls r0, 24 + lsrs r7, r0, 24 + movs r0, 0 + str r0, [sp, 0x4] + mov r8, r0 + ldr r2, =gUnknown_0860D3C4 + lsls r0, r7, 1 + adds r0, r7 + adds r1, r0, r2 + ldrb r6, [r1] + adds r1, r2, 0x1 + adds r0, r1 + ldrb r0, [r0] + adds r0, r6, r0 + adds r3, r2, 0 + cmp r6, r0 + bge _08192FD4 + ldr r5, =gSaveBlock2Ptr + ldr r1, =0x000003ff + mov r10, r1 + ldr r2, =0x000003fe + mov r9, r2 +_08192F42: + ldr r0, =gUnknown_0860D3B4 + adds r0, r6, r0 + ldrb r4, [r0] + ldr r0, [r5] + lsls r1, r4, 2 + adds r0, r1 + ldr r2, =0x00000d25 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + blt _08192FBE + ldr r0, [sp] + add r0, r8 + strb r4, [r0] + ldr r2, [r5] + adds r0, r2, r1 + ldr r1, =0x00000d24 + adds r0, r1 + ldrh r0, [r0] + lsls r1, r0, 22 + lsrs r0, r1, 22 + cmp r0, r10 + bne _08192F9C + ldr r0, =gStringVar1 + adds r1, r2, 0 + bl StringCopy + b _08192FB8 + .pool +_08192F9C: + lsrs r0, r1, 22 + cmp r0, r9 + bne _08192FB0 + ldr r0, =gStringVar1 + bl sub_8195938 + b _08192FB8 + .pool +_08192FB0: + lsrs r1, 22 + ldr r0, =gStringVar1 + bl sub_8195898 +_08192FB8: + movs r2, 0x1 + add r8, r2 + ldr r3, =gUnknown_0860D3C4 +_08192FBE: + adds r6, 0x1 + lsls r1, r7, 1 + adds r1, r7 + adds r0, r1, r3 + ldrb r2, [r0] + adds r0, r3, 0x1 + adds r1, r0 + ldrb r0, [r1] + adds r2, r0 + cmp r6, r2 + blt _08192F42 +_08192FD4: + mov r5, r8 + cmp r5, 0x2 + bne _08192FE8 + movs r0, 0 + b _0819313C + .pool +_08192FE8: + mov r12, r3 + lsls r3, r7, 1 + adds r0, r3, r7 + mov r2, r12 + adds r1, r0, r2 + ldrb r6, [r1] + mov r1, r12 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + adds r0, r6, r0 + str r3, [sp, 0x8] + cmp r6, r0 + blt _08193006 + b _08193126 +_08193006: + ldr r5, =gSaveBlock2Ptr + mov r10, r5 + ldr r0, =0x00000d25 + mov r9, r0 +_0819300E: + ldr r0, =gUnknown_0860D3B4 + adds r0, r6, r0 + ldrb r4, [r0] + mov r1, r10 + ldr r0, [r1] + lsls r2, r4, 2 + str r2, [sp, 0xC] + adds r0, r2 + add r0, r9 + ldrb r2, [r0] + lsls r0, r2, 29 + cmp r0, 0 + bge _08193100 + lsls r2, 27 + adds r1, r3, r7 + mov r0, r12 + adds r0, 0x2 + adds r1, r0 + lsrs r2, 30 + ldrb r1, [r1] + cmp r2, r1 + bcc _08193100 + ldr r0, [sp] + add r0, r8 + strb r4, [r0] + movs r5, 0x1 + add r8, r5 + mov r0, r10 + ldr r3, [r0] + ldr r5, [sp, 0xC] + adds r2, r3, r5 + adds r0, r2, 0 + add r0, r9 + ldrb r5, [r0] + mov r12, r5 + mov r0, r12 + lsls r0, 27 + lsrs r0, 30 + cmp r0, r1 + bne _081930BC + lsls r4, 1 + movs r1, 0xEC + lsls r1, 4 + adds r0, r3, r1 + adds r0, r4 + ldrh r1, [r0] + movs r0, 0xD + muls r1, r0 + ldr r0, =gMoveNames + adds r1, r0 + ldr r0, =gStringVar2 + bl StringCopy + mov r2, r10 + ldr r1, [r2] + ldr r5, [sp, 0xC] + adds r0, r1, r5 + add r0, r9 + ldrb r0, [r0] + lsls r2, r0, 24 + lsrs r0, r2, 29 + lsls r0, 1 + str r0, [sp, 0x4] + movs r0, 0xEC + lsls r0, 4 + adds r1, r0 + adds r1, r4 + ldrh r0, [r1] + cmp r0, 0 + bne _08193100 + lsrs r0, r2, 29 + cmp r0, 0 + bne _08193100 + movs r1, 0x4 + str r1, [sp, 0x4] + b _08193100 + .pool +_081930BC: + ldr r5, =0x00000d24 + adds r0, r2, r5 + ldrh r0, [r0] + lsls r1, r0, 22 + ldr r0, =0xffc00000 + cmp r1, r0 + bne _081930E0 + ldr r0, =gStringVar1 + adds r1, r3, 0 + bl StringCopy + b _08193100 + .pool +_081930E0: + ldr r0, =0xff800000 + cmp r1, r0 + bne _081930F8 + ldr r0, =gStringVar1 + bl sub_8195938 + b _08193100 + .pool +_081930F8: + lsrs r1, 22 + ldr r0, =gStringVar1 + bl sub_8195898 +_08193100: + mov r0, r8 + cmp r0, 0x2 + beq _08193126 + adds r6, 0x1 + ldr r1, =gUnknown_0860D3C4 + mov r12, r1 + ldr r3, [sp, 0x8] + adds r1, r3, r7 + mov r2, r12 + adds r0, r1, r2 + ldrb r2, [r0] + mov r0, r12 + adds r0, 0x1 + adds r1, r0 + ldrb r0, [r1] + adds r2, r0 + cmp r6, r2 + bge _08193126 + b _0819300E +_08193126: + cmp r7, 0xE + beq _08193138 + ldr r0, [sp, 0x4] + adds r0, 0x1 + b _0819313C + .pool +_08193138: + ldr r0, [sp, 0x4] + adds r0, 0x2 +_0819313C: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8192F08 + + thumb_func_start sub_819314C +sub_819314C: @ 819314C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x80 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x34] + lsls r1, 24 + lsrs r6, r1, 24 + movs r0, 0 + str r0, [sp, 0x3C] + movs r7, 0 + movs r1, 0 + str r1, [sp, 0x40] + movs r2, 0 + str r2, [sp, 0x44] + mov r9, r2 + movs r0, 0x1 + ldr r3, [sp, 0x34] + ands r0, r3 + cmp r0, 0 + beq _08193186 + movs r7, 0x8 + str r7, [sp, 0x3C] + movs r7, 0x9 + movs r0, 0x2 + mov r9, r0 +_08193186: + movs r0, 0x2 + ldr r1, [sp, 0x34] + ands r0, r1 + cmp r0, 0 + beq _08193196 + movs r2, 0x80 + lsls r2, 1 + str r2, [sp, 0x40] +_08193196: + movs r0, 0x4 + ldr r3, [sp, 0x34] + ands r0, r3 + cmp r0, 0 + beq _081931A4 + movs r0, 0xA0 + str r0, [sp, 0x44] +_081931A4: + movs r0, 0x8 + ldr r1, [sp, 0x34] + ands r0, r1 + cmp r0, 0 + beq _081931B2 + ldr r2, =0xffffff00 + str r2, [sp, 0x40] +_081931B2: + movs r0, 0x10 + ldr r3, [sp, 0x34] + ands r0, r3 + cmp r0, 0 + beq _081931C2 + movs r0, 0xA0 + negs r0, r0 + str r0, [sp, 0x44] +_081931C2: + ldr r4, =gUnknown_0203CD78 + ldr r1, [r4] + adds r1, 0x11 + adds r0, r6, 0 + bl sub_8192F08 + str r0, [sp, 0x38] + movs r5, 0 + mov r1, sp + adds r1, 0x1C + str r1, [sp, 0x48] + mov r2, sp + adds r2, 0x24 + str r2, [sp, 0x4C] + lsls r1, r6, 1 + mov r3, sp + adds r3, 0x2C + str r3, [sp, 0x50] + ldr r0, [sp, 0x40] + adds r0, 0x30 + mov r8, r0 + ldr r2, [sp, 0x44] + adds r2, 0x58 + str r2, [sp, 0x78] + movs r3, 0xC + add r3, r9 + mov r10, r3 + ldr r0, [sp, 0x40] + adds r0, 0xC0 + str r0, [sp, 0x7C] + mov r2, r9 + adds r2, 0xD + str r2, [sp, 0x74] + ldr r3, [sp, 0x3C] + adds r3, 0x1 + mov r9, r3 + ldr r0, [sp, 0x3C] + adds r0, 0x2 + str r0, [sp, 0x54] + ldr r2, [sp, 0x3C] + adds r2, 0x5 + str r2, [sp, 0x5C] + adds r3, r7, 0 + adds r3, 0x8 + str r3, [sp, 0x6C] + adds r0, r7, 0x6 + str r0, [sp, 0x64] + adds r2, r7, 0x7 + str r2, [sp, 0x68] + lsls r3, r6, 2 + str r3, [sp, 0x58] + adds r0, r7, 0x5 + str r0, [sp, 0x60] + ldr r0, [r4] + adds r0, 0x11 + mov r12, r0 + ldr r0, =gSaveBlock2Ptr + ldr r4, [r0] + ldr r0, =gUnknown_0860D3C6 + movs r3, 0 + adds r1, r6 + adds r1, r0 + ldrb r6, [r1] +_08193240: + ldr r1, [sp, 0x48] + adds r2, r3, r1 + mov r7, r12 + adds r0, r7, r5 + ldrb r0, [r0] + str r0, [r2] + ldr r7, [sp, 0x4C] + adds r1, r3, r7 + lsls r0, 2 + adds r0, r4, r0 + ldr r7, =0x00000d24 + adds r0, r7 + ldrh r0, [r0] + lsls r0, 22 + lsrs r0, 22 + str r0, [r1] + ldr r0, [r2] + lsls r0, 2 + adds r0, r4, r0 + ldr r1, =0x00000d25 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 27 + lsrs r0, 30 + cmp r0, r6 + bhi _0819329C + lsls r0, r1, 29 + cmp r0, 0 + bge _0819329C + ldr r2, [sp, 0x50] + adds r1, r3, r2 + movs r0, 0x1 + b _081932A2 + .pool +_0819329C: + ldr r7, [sp, 0x50] + adds r1, r3, r7 + movs r0, 0 +_081932A2: + str r0, [r1] + adds r3, 0x4 + adds r5, 0x1 + cmp r5, 0x1 + ble _08193240 + ldr r1, [sp, 0x24] + ldr r0, =0x000003ff + cmp r1, r0 + bne _081932D4 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r0, [r0, 0x8] + bl sub_806F000 + lsls r0, 16 + lsrs r0, 16 + mov r2, r8 + ldr r3, [sp, 0x78] + mov r1, r10 + str r1, [sp] + b _081932F8 + .pool +_081932D4: + ldr r0, =0x000003fe + cmp r1, r0 + bne _081932E4 + bl sub_8195910 + b _081932EC + .pool +_081932E4: + lsls r0, r1, 16 + lsrs r0, 16 + bl sub_8162AA0 +_081932EC: + lsls r0, 24 + lsrs r0, 24 + mov r2, r8 + ldr r3, [sp, 0x78] + mov r7, r10 + str r7, [sp] +_081932F8: + ldr r1, =0x0000ffff + str r1, [sp, 0x4] + movs r1, 0x1 + bl sub_818D8AC + ldr r1, =gUnknown_0203CD78 + ldr r1, [r1] + ldr r2, [sp, 0x3C] + adds r1, r2 + strb r0, [r1] + movs r0, 0x1E + ldr r3, [sp, 0x34] + ands r0, r3 + cmp r0, 0 + beq _08193334 + ldr r2, =gSprites + ldr r0, =gUnknown_0203CD78 + ldr r0, [r0] + ldr r7, [sp, 0x3C] + adds r0, r7 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_08193334: + ldr r0, [sp, 0x2C] + cmp r0, 0 + beq _0819335A + ldr r2, =gSprites + ldr r0, =gUnknown_0203CD78 + ldr r0, [r0] + ldr r1, [sp, 0x3C] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r2, [r0, 0x5] + movs r1, 0xF + ands r1, r2 + movs r2, 0x30 + orrs r1, r2 + strb r1, [r0, 0x5] +_0819335A: + ldr r2, [sp, 0x4C] + ldr r1, [r2, 0x4] + ldr r0, =0x000003ff + cmp r1, r0 + bne _08193388 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r0, [r0, 0x8] + bl sub_806F000 + lsls r0, 16 + lsrs r0, 16 + b _081933B0 + .pool +_08193388: + ldr r0, =0x000003fe + cmp r1, r0 + bne _081933A4 + bl sub_8195910 + lsls r0, 24 + lsrs r0, 24 + ldr r2, [sp, 0x7C] + ldr r3, [sp, 0x78] + ldr r1, [sp, 0x74] + str r1, [sp] + b _081933B8 + .pool +_081933A4: + lsls r0, r1, 16 + lsrs r0, 16 + bl sub_8162AA0 + lsls r0, 24 + lsrs r0, 24 +_081933B0: + ldr r2, [sp, 0x7C] + ldr r3, [sp, 0x78] + ldr r7, [sp, 0x74] + str r7, [sp] +_081933B8: + ldr r1, =0x0000ffff + str r1, [sp, 0x4] + movs r1, 0x1 + bl sub_818D8AC + ldr r1, =gUnknown_0203CD78 + ldr r1, [r1] + add r1, r9 + strb r0, [r1] + movs r0, 0x1E + ldr r1, [sp, 0x34] + ands r0, r1 + cmp r0, 0 + beq _081933F0 + ldr r2, =gSprites + ldr r0, =gUnknown_0203CD78 + ldr r0, [r0] + add r0, r9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_081933F0: + ldr r2, [sp, 0x50] + ldr r0, [r2, 0x4] + cmp r0, 0 + beq _08193416 + ldr r2, =gSprites + ldr r0, =gUnknown_0203CD78 + ldr r0, [r0] + add r0, r9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r2, [r0, 0x5] + movs r1, 0xF + ands r1, r2 + movs r2, 0x30 + orrs r1, r2 + strb r1, [r0, 0x5] +_08193416: + movs r5, 0 + ldr r3, [sp, 0x38] + lsls r3, 2 + str r3, [sp, 0x70] + mov r8, r5 + ldr r6, =gUnknown_0203CD78 + ldr r7, =gSprites + ldr r4, [sp, 0x54] + mov r9, r5 + movs r0, 0x1 + mov r10, r0 +_0819342C: + ldr r1, [sp, 0x24] + ldr r0, =0x000003ff + cmp r1, r0 + bne _08193464 + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldr r1, [sp, 0x1C] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + add r0, r9 + ldr r1, =0x00000d64 + adds r2, r1 + adds r2, r0 + ldrh r0, [r2] + b _081934B0 + .pool +_08193464: + ldr r0, =0x000003fe + cmp r1, r0 + bne _08193490 + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldr r1, [sp, 0x1C] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + add r0, r9 + ldr r1, =0x00000d64 + adds r2, r1 + adds r2, r0 + ldrh r0, [r2] + b _081934B0 + .pool +_08193490: + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldr r1, [sp, 0x1C] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + add r0, r9 + ldr r1, =0x00000d64 + adds r2, r1 + adds r2, r0 + ldrh r1, [r2] + ldr r0, =gUnknown_0203BC8C + ldr r0, [r0] + lsls r1, 4 + adds r1, r0 + ldrh r0, [r1] +_081934B0: + ldr r1, =gUnknown_0860D3A8 + adds r1, r5, r1 + ldrb r2, [r1] + ldr r3, [sp, 0x40] + orrs r2, r3 + ldr r1, =gUnknown_0860D3AB + adds r1, r5, r1 + ldrb r3, [r1] + ldr r1, [sp, 0x44] + adds r3, r1 + mov r1, r8 + str r1, [sp] + str r1, [sp, 0x4] + mov r1, r10 + str r1, [sp, 0x8] + ldr r1, =sub_8190938 + bl sub_80D2CC4 + ldr r1, [r6] + adds r1, r4 + strb r0, [r1] + ldr r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrb r1, [r0, 0x5] + movs r3, 0xD + negs r3, r3 + adds r2, r3, 0 + ands r1, r2 + strb r1, [r0, 0x5] + movs r0, 0x1E + ldr r1, [sp, 0x34] + ands r0, r1 + cmp r0, 0 + beq _08193516 + ldr r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_08193516: + ldr r0, [sp, 0x2C] + cmp r0, 0 + beq _08193548 + ldr r0, [r6] + adds r0, r4 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r7 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + movs r2, 0x30 + orrs r0, r2 + strb r0, [r1, 0x5] + ldr r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + mov r2, r10 + strh r2, [r0, 0x34] +_08193548: + adds r4, 0x1 + movs r3, 0x2 + add r9, r3 + adds r5, 0x1 + cmp r5, 0x2 + bgt _08193556 + b _0819342C +_08193556: + movs r5, 0 + ldr r6, =gUnknown_0203CD78 + ldr r7, =gSprites + mov r8, r7 + ldr r4, [sp, 0x5C] + mov r9, r5 + movs r7, 0 +_08193564: + ldr r0, [sp, 0x4C] + ldr r1, [r0, 0x4] + ldr r0, =0x000003ff + cmp r1, r0 + bne _081935AC + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldr r3, [sp, 0x48] + ldr r1, [r3, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + add r0, r9 + ldr r1, =0x00000d64 + adds r2, r1 + adds r2, r0 + ldrh r0, [r2] + b _081935FA + .pool +_081935AC: + ldr r0, =0x000003fe + cmp r1, r0 + bne _081935D8 + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldr r0, [sp, 0x48] + ldr r1, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + add r0, r9 + ldr r1, =0x00000d64 + adds r2, r1 + adds r2, r0 + ldrh r0, [r2] + b _081935FA + .pool +_081935D8: + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldr r0, [sp, 0x48] + ldr r1, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + add r0, r9 + ldr r1, =0x00000d64 + adds r2, r1 + adds r2, r0 + ldrh r1, [r2] + ldr r0, =gUnknown_0203BC8C + ldr r0, [r0] + lsls r1, 4 + adds r1, r0 + ldrh r0, [r1] +_081935FA: + ldr r1, =gUnknown_0860D3AE + adds r1, r5, r1 + ldrb r2, [r1] + ldr r3, [sp, 0x40] + orrs r2, r3 + ldr r1, =gUnknown_0860D3B1 + adds r1, r5, r1 + ldrb r3, [r1] + ldr r1, [sp, 0x44] + adds r3, r1 + str r7, [sp] + str r7, [sp, 0x4] + movs r1, 0x1 + str r1, [sp, 0x8] + ldr r1, =sub_8190938 + bl sub_80D2CC4 + ldr r1, [r6] + adds r1, r4 + strb r0, [r1] + ldr r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + ldrb r1, [r0, 0x5] + movs r3, 0xD + negs r3, r3 + adds r2, r3, 0 + ands r1, r2 + strb r1, [r0, 0x5] + movs r0, 0x1E + ldr r1, [sp, 0x34] + ands r0, r1 + cmp r0, 0 + beq _0819365E + ldr r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_0819365E: + ldr r2, [sp, 0x50] + ldr r0, [r2, 0x4] + cmp r0, 0 + beq _08193692 + ldr r0, [r6] + adds r0, r4 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r8 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + movs r2, 0x30 + orrs r0, r2 + strb r0, [r1, 0x5] + ldr r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + movs r1, 0x1 + strh r1, [r0, 0x34] +_08193692: + adds r4, 0x1 + movs r3, 0x2 + add r9, r3 + adds r5, 0x1 + cmp r5, 0x2 + bgt _081936A0 + b _08193564 +_081936A0: + add r0, sp, 0xC + movs r5, 0 + strb r5, [r0, 0x6] + adds r1, r0, 0 + movs r0, 0x2 + strb r0, [r1, 0x7] + adds r0, r1, 0 + ldrb r0, [r0, 0x6] + strb r0, [r1, 0x8] + adds r0, r1, 0 + ldrb r0, [r0, 0x7] + strb r0, [r1, 0x9] + adds r0, r1, 0 + strb r5, [r0, 0xA] + strb r5, [r0, 0xB] + adds r3, r0, 0 + ldrb r2, [r3, 0xC] + movs r1, 0x10 + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + strb r0, [r3, 0xC] + adds r2, r3, 0 + movs r0, 0xE0 + strb r0, [r2, 0xC] + ldrb r0, [r2, 0xD] + ands r1, r0 + strb r1, [r2, 0xD] + adds r1, r2, 0 + movs r0, 0xD0 + strb r0, [r1, 0xD] + ldr r4, =gStringVar4 + ldr r0, =gUnknown_0860D38C + ldr r7, [sp, 0x70] + adds r0, r7, r0 + ldr r1, [r0] + adds r0, r4, 0 + bl StringExpandPlaceholders + str r4, [sp, 0xC] + add r0, sp, 0xC + add r1, sp, 0x6C + ldrb r1, [r1] + strb r1, [r0, 0x4] + adds r1, r0, 0 + movs r0, 0x1 + strb r0, [r1, 0x5] + ldr r4, [sp, 0x6C] + adds r0, r4, 0 + bl PutWindowTilemap + adds r0, r4, 0 + movs r1, 0x3 + bl CopyWindowToVram + add r0, sp, 0xC + strb r5, [r0, 0x8] + adds r1, r0, 0 + strb r5, [r0, 0x7] + strb r5, [r1, 0x9] + movs r1, 0 + movs r2, 0 + bl AddTextPrinter + ldr r1, [sp, 0x24] + ldr r0, =0x000003ff + cmp r1, r0 + bne _0819375C + ldr r0, =gStringVar1 + ldr r1, =gSaveBlock2Ptr + ldr r1, [r1] + bl StringCopy + b _0819377E + .pool +_0819375C: + ldr r0, =0x000003fe + cmp r1, r0 + bne _08193774 + ldr r0, =gStringVar1 + bl sub_8195938 + b _0819377E + .pool +_08193774: + ldr r0, =gStringVar1 + lsls r1, 16 + lsrs r1, 16 + bl sub_8195898 +_0819377E: + add r0, sp, 0xC + movs r4, 0x2 + strb r4, [r0, 0x5] + strb r4, [r0, 0xA] + ldr r5, =gStringVar1 + str r5, [sp, 0xC] + add r2, sp, 0x64 + ldrb r2, [r2] + strb r2, [r0, 0x4] + ldrb r0, [r0, 0x5] + ldr r1, [sp, 0xC] + add r2, sp, 0xC + ldrb r3, [r2, 0xA] + movs r2, 0x40 + bl GetStringCenterAlignXOffsetWithLetterSpacing + add r1, sp, 0xC + strb r0, [r1, 0x8] + adds r0, r1, 0 + strb r4, [r0, 0x7] + strb r4, [r1, 0x9] + ldr r4, [sp, 0x64] + adds r0, r4, 0 + bl PutWindowTilemap + adds r0, r4, 0 + movs r1, 0x3 + bl CopyWindowToVram + add r0, sp, 0xC + movs r1, 0 + movs r2, 0 + bl AddTextPrinter + ldr r3, [sp, 0x4C] + ldr r1, [r3, 0x4] + ldr r0, =0x000003ff + cmp r1, r0 + bne _081937E4 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + adds r0, r5, 0 + bl StringCopy + b _08193802 + .pool +_081937E4: + ldr r0, =0x000003fe + cmp r1, r0 + bne _081937F8 + adds r0, r5, 0 + bl sub_8195938 + b _08193802 + .pool +_081937F8: + lsls r1, 16 + lsrs r1, 16 + adds r0, r5, 0 + bl sub_8195898 +_08193802: + ldr r0, =gStringVar1 + str r0, [sp, 0xC] + add r0, sp, 0xC + movs r6, 0 + add r7, sp, 0x68 + ldrb r7, [r7] + strb r7, [r0, 0x4] + ldrb r0, [r0, 0x5] + ldr r1, [sp, 0xC] + add r2, sp, 0xC + ldrb r3, [r2, 0xA] + movs r2, 0x40 + bl GetStringCenterAlignXOffsetWithLetterSpacing + add r1, sp, 0xC + strb r0, [r1, 0x8] + adds r0, r1, 0 + movs r5, 0x2 + strb r5, [r0, 0x7] + strb r5, [r1, 0x9] + ldr r4, [sp, 0x68] + adds r0, r4, 0 + bl PutWindowTilemap + adds r0, r4, 0 + movs r1, 0x3 + bl CopyWindowToVram + add r0, sp, 0xC + movs r1, 0 + movs r2, 0 + bl AddTextPrinter + add r0, sp, 0xC + strb r6, [r0, 0xA] + ldr r0, =gUnknown_0860D350 + ldr r1, [sp, 0x58] + adds r0, r1, r0 + ldr r0, [r0] + str r0, [sp, 0xC] + add r0, sp, 0xC + add r2, sp, 0x60 + ldrb r2, [r2] + strb r2, [r0, 0x4] + ldrb r0, [r0, 0x5] + ldr r1, [sp, 0xC] + add r2, sp, 0xC + ldrb r3, [r2, 0xA] + movs r2, 0xA0 + bl GetStringCenterAlignXOffsetWithLetterSpacing + add r1, sp, 0xC + strb r0, [r1, 0x8] + adds r0, r1, 0 + strb r5, [r0, 0x7] + strb r5, [r1, 0x9] + ldr r4, [sp, 0x60] + adds r0, r4, 0 + bl PutWindowTilemap + adds r0, r4, 0 + movs r1, 0x3 + bl CopyWindowToVram + add r0, sp, 0xC + movs r1, 0 + movs r2, 0 + bl AddTextPrinter + add sp, 0x80 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819314C + + thumb_func_start sub_81938A4 +sub_81938A4: @ 81938A4 + push {lr} + ldr r0, =sub_8194220 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0 + strh r2, [r1, 0x8] + strh r2, [r1, 0xA] + movs r0, 0x2 + strh r0, [r1, 0xC] + strh r2, [r1, 0x10] + ldr r0, =sub_8194B54 + bl SetMainCallback2 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81938A4 + + thumb_func_start sub_81938E0 +sub_81938E0: @ 81938E0 + push {r4,lr} + bl sub_8194D48 + ldr r4, =gSaveBlock2Ptr + ldr r2, [r4] + ldr r1, =0x00000d0a + adds r0, r2, r1 + ldrb r1, [r0] + subs r1, 0x1 + ldr r0, =0x00000ca9 + adds r2, r0 + movs r0, 0x3 + ands r1, r0 + ldrb r3, [r2] + movs r0, 0x4 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r4] + ldr r1, =0x00000cb2 + adds r0, r1 + movs r4, 0 + movs r1, 0x3 + strh r1, [r0] + ldr r0, =sub_8194220 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] + strh r4, [r1, 0xA] + movs r0, 0x2 + strh r0, [r1, 0xC] + movs r0, 0x1 + strh r0, [r1, 0x10] + ldr r0, =sub_8194B54 + bl SetMainCallback2 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81938E0 + + thumb_func_start sub_819395C +sub_819395C: @ 819395C + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0xA + ldrsh r7, [r0, r2] + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0x7 + bls _0819397E + b _08193BC2 +_0819397E: + lsls r0, 2 + ldr r1, =_08193990 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08193990: + .4byte _081939B0 + .4byte _08193A00 + .4byte _08193A20 + .4byte _08193AA8 + .4byte _08193BC2 + .4byte _08193B20 + .4byte _08193BC2 + .4byte _08193B84 +_081939B0: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _081939C2 + b _08193BC2 +_081939C2: + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0x1 + strh r1, [r0, 0x8] + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + movs r1, 0x1 + bl StartSpriteAnim + b _08193BC2 + .pool +_08193A00: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08193A0E + b _08193BC2 +_08193A0E: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r2 + movs r1, 0x2 + strh r1, [r0, 0x8] + b _08193BC2 + .pool +_08193A20: + adds r0, r5, 0 + bl sub_8193BDC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08193A30 + b _08193BC2 +_08193A30: + cmp r0, 0x1 + ble _08193A3C + cmp r0, 0x2 + beq _08193A60 + cmp r0, 0x3 + beq _08193A84 +_08193A3C: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0x7 + strh r1, [r0, 0x8] + b _08193BC2 + .pool +_08193A60: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0x3 + strh r1, [r0, 0x8] + b _08193BC2 + .pool +_08193A84: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0x5 + strh r1, [r0, 0x8] + b _08193BC2 + .pool +_08193AA8: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + beq _08193ABA + b _08193BC2 +_08193ABA: + bl FreeAllWindowBuffers + bl remove_some_task + ldr r4, =gUnknown_0203CD7C + ldr r0, [r4] + bl Free + str r6, [r4] + ldr r0, =sub_8190400 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, =gTasks + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r2 + movs r3, 0 + strh r6, [r1, 0x8] + ldr r0, =gUnknown_0860D080 + adds r0, r7, r0 + ldrb r0, [r0] + strh r0, [r1, 0xA] + movs r0, 0x1 + strh r0, [r1, 0xC] + strh r5, [r1, 0xE] + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r2 + movs r1, 0x4 + strh r1, [r0, 0x8] + ldr r0, =gUnknown_0203CD78 + ldr r0, [r0] + strb r3, [r0, 0x10] + b _08193BC2 + .pool +_08193B20: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + bne _08193BC2 + bl FreeAllWindowBuffers + bl remove_some_task + ldr r4, =gUnknown_0203CD7C + ldr r0, [r4] + bl Free + str r6, [r4] + ldr r0, =sub_8190400 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r2 + strh r6, [r0, 0x8] + adds r1, r7, 0 + subs r1, 0x10 + strh r1, [r0, 0xA] + movs r1, 0x2 + strh r1, [r0, 0xC] + strh r5, [r0, 0xE] + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r2 + movs r1, 0x6 + strh r1, [r0, 0x8] + b _08193BC2 + .pool +_08193B84: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + bne _08193BC2 + bl FreeAllWindowBuffers + bl remove_some_task + ldr r4, =gUnknown_0203CD7C + ldr r0, [r4] + bl Free + str r6, [r4] + ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music + bl SetMainCallback2 + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0, 0x16] + bl DestroyTask + adds r0, r5, 0 + bl DestroyTask +_08193BC2: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819395C + + thumb_func_start sub_8193BDC +sub_8193BDC: @ 8193BDC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r7, r0, 24 + movs r0, 0x1 + mov r9, r0 + movs r1, 0x4 + mov r8, r1 + ldr r1, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + movs r1, 0xA + ldrsh r5, [r0, r1] + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000cb2 + adds r0, r1 + ldrh r6, [r0] + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + adds r2, r1, 0 + adds r3, r0, 0 + cmp r2, 0x2 + beq _08193C20 + mov r0, r9 + ands r0, r1 + cmp r0, 0 + beq _08193C58 + cmp r5, 0x1F + bne _08193C3C +_08193C20: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + mov r9, r0 + b _08193CDE + .pool +_08193C3C: + cmp r5, 0xF + bgt _08193C4C + movs r0, 0x5 + bl PlaySE + movs r1, 0x2 + mov r9, r1 + b _08193CDE +_08193C4C: + movs r0, 0x5 + bl PlaySE + movs r0, 0x3 + mov r9, r0 + b _08193CDE +_08193C58: + cmp r2, 0x40 + bne _08193C78 + ldr r0, =gUnknown_0860CBF1 + lsls r1, r5, 2 + adds r1, r5 + adds r1, r6 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0xFF + beq _08193C78 + movs r1, 0 + mov r8, r1 + b _08193CDE + .pool +_08193C78: + ldrh r0, [r3, 0x2E] + cmp r0, 0x80 + bne _08193C9C + ldr r0, =gUnknown_0860CBF1 + lsls r1, r5, 2 + adds r1, r5 + adds r1, r6 + lsls r1, 2 + adds r0, 0x1 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0xFF + beq _08193C9C + movs r0, 0x1 + b _08193CDC + .pool +_08193C9C: + ldrh r0, [r3, 0x2E] + cmp r0, 0x20 + bne _08193CC0 + ldr r0, =gUnknown_0860CBF1 + lsls r1, r5, 2 + adds r1, r5 + adds r1, r6 + lsls r1, 2 + adds r0, 0x2 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0xFF + beq _08193CC0 + movs r1, 0x2 + mov r8, r1 + b _08193CDE + .pool +_08193CC0: + ldrh r0, [r3, 0x2E] + cmp r0, 0x10 + bne _08193CDE + ldr r0, =gUnknown_0860CBF1 + lsls r1, r5, 2 + adds r1, r5 + adds r1, r6 + lsls r1, 2 + adds r0, 0x3 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0xFF + beq _08193CDE + movs r0, 0x3 +_08193CDC: + mov r8, r0 +_08193CDE: + mov r1, r8 + cmp r1, 0x4 + beq _08193D26 + movs r0, 0x5 + bl PlaySE + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + movs r1, 0 + bl StartSpriteAnim + ldr r2, =gUnknown_0860CBF1 + lsls r1, r6, 2 + add r1, r8 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 2 + adds r1, r0 + adds r1, r2 + ldrb r5, [r1] + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + adds r0, r4 + movs r1, 0x1 + bl StartSpriteAnim + ldr r1, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0xA] +_08193D26: + mov r0, r9 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8193BDC + + thumb_func_start sub_8193D40 +sub_8193D40: @ 8193D40 + push {lr} + ldr r0, =sub_8194220 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0 + strh r2, [r1, 0x8] + movs r0, 0x1 + strh r0, [r1, 0xA] + movs r0, 0x2 + strh r0, [r1, 0xC] + strh r2, [r1, 0x10] + ldr r0, =sub_8194B54 + bl SetMainCallback2 + pop {r0} + bx r0 + .pool + thumb_func_end sub_8193D40 + + thumb_func_start sub_8193D7C +sub_8193D7C: @ 8193D7C + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r7, =gSpecialVar_0x8005 + ldrh r0, [r7] + cmp r0, 0x1 + bne _08193E10 + ldr r5, =gUnknown_02038BCA + ldrh r0, [r5] + bl sub_8195358 + ldr r4, =gSaveBlock2Ptr + ldr r2, [r4] + lsls r0, 2 + adds r2, r0 + ldr r6, =0x00000d25 + adds r2, r6 + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r5] + bl sub_8195358 + ldr r1, [r4] + lsls r0, 2 + adds r0, r1, r0 + ldr r2, =0x00000cb2 + mov r8, r2 + add r1, r8 + adds r0, r6 + movs r3, 0x3 + ldrb r2, [r1] + ands r2, r3 + lsls r2, 3 + ldrb r3, [r0] + movs r1, 0x19 + negs r1, r1 + ands r1, r3 + orrs r1, r2 + strb r1, [r0] + ldrh r0, [r5] + bl sub_8195358 + ldr r2, [r4] + lsls r0, 1 + movs r3, 0xEC + lsls r3, 4 + adds r1, r2, r3 + adds r1, r0 + ldr r0, =gUnknown_03005D10 + ldrh r0, [r0, 0x22] + strh r0, [r1] + add r2, r8 + ldrh r0, [r2] + cmp r0, 0x2 + bhi _08193EAE + lsls r0, 24 + lsrs r0, 24 + bl sub_8195438 + b _08193EAE + .pool +_08193E10: + ldr r5, =0x000003ff + adds r0, r5, 0 + bl sub_8195358 + ldr r4, =gSaveBlock2Ptr + ldr r2, [r4] + lsls r0, 2 + adds r2, r0 + ldr r6, =0x00000d25 + adds r2, r6 + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, 0 + bl sub_8195358 + ldr r1, [r4] + lsls r0, 2 + adds r0, r1, r0 + ldr r2, =0x00000cb2 + adds r1, r2 + adds r0, r6 + movs r3, 0x3 + ldrb r2, [r1] + ands r2, r3 + lsls r2, 3 + ldrb r3, [r0] + movs r1, 0x19 + negs r1, r1 + ands r1, r3 + orrs r1, r2 + strb r1, [r0] + adds r0, r5, 0 + bl sub_8195358 + ldr r1, [r4] + lsls r0, 1 + movs r3, 0xEC + lsls r3, 4 + adds r1, r3 + adds r1, r0 + ldr r0, =gUnknown_03005D10 + ldrh r0, [r0, 0x24] + strh r0, [r1] + ldr r0, =gBattleOutcome + ldrb r0, [r0] + cmp r0, 0x9 + beq _08193E78 + ldrh r0, [r7] + cmp r0, 0x9 + bne _08193E92 +_08193E78: + adds r0, r5, 0 + bl sub_8195358 + ldr r2, [r4] + lsls r0, 2 + adds r2, r0 + adds r2, r6 + ldrb r1, [r2] + movs r0, 0x1F + ands r0, r1 + movs r1, 0x20 + orrs r0, r1 + strb r0, [r2] +_08193E92: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000cb2 + adds r0, r1 + ldrh r4, [r0] + cmp r4, 0x3 + bgt _08193EAE +_08193EA0: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_8195438 + adds r4, 0x1 + cmp r4, 0x3 + ble _08193EA0 +_08193EAE: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8193D7C + + thumb_func_start sub_8193ED0 +sub_8193ED0: @ 8193ED0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x84 + str r0, [sp, 0x48] + str r1, [sp, 0x4C] + lsls r4, r2, 24 + lsrs r4, 24 + movs r0, 0 + str r0, [sp, 0x54] + movs r1, 0 + str r1, [sp, 0x58] + bl sub_8165C40 + movs r2, 0 + str r2, [sp, 0x50] + add r3, sp, 0x30 + mov r10, r3 + ldr r5, [sp, 0x4C] + lsls r5, 1 + str r5, [sp, 0x70] + subs r4, 0x1 + str r4, [sp, 0x78] +_08193F02: + movs r0, 0 + mov r9, r0 + ldr r1, [sp, 0x50] + lsls r1, 2 + str r1, [sp, 0x74] + ldr r2, [sp, 0x48] + lsls r2, 2 + str r2, [sp, 0x6C] + ldr r3, [sp, 0x50] + adds r3, 0x1 + str r3, [sp, 0x60] +_08193F18: + ldr r4, [sp, 0x74] + add r4, r9 + lsls r0, r4, 2 + mov r5, sp + adds r1, r5, r0 + movs r0, 0 + str r0, [r1] + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + ldr r1, [sp, 0x6C] + adds r0, r3, r1 + ldr r2, =0x00000d24 + adds r0, r2 + ldrh r0, [r0] + lsls r0, 22 + ldr r1, =0xff800000 + cmp r0, r1 + bne _08193F60 + ldr r3, [sp, 0x50] + lsls r0, r3, 24 + mov r5, r9 + lsls r1, r5, 24 + lsrs r1, 24 + lsrs r0, 24 + bl sub_81A5060 + lsls r1, r4, 1 + add r1, r10 + strh r0, [r1] + b _08193F8C + .pool +_08193F60: + lsls r2, r4, 1 + add r2, r10 + ldr r1, [sp, 0x48] + lsls r0, r1, 1 + adds r0, r1 + ldr r4, [sp, 0x50] + adds r0, r4 + lsls r0, 1 + ldr r5, =0x00000d64 + adds r1, r3, r5 + adds r1, r0 + ldrh r0, [r1] + ldr r1, =gUnknown_0203BC8C + ldr r1, [r1] + lsls r0, 4 + adds r0, r1 + mov r3, r9 + lsls r1, r3, 1 + adds r0, 0x2 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2] +_08193F8C: + ldr r0, =gBattleMoves + ldr r1, [sp, 0x74] + add r1, r9 + lsls r1, 1 + add r1, r10 + ldrh r2, [r1] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r6, [r1, 0x1] + cmp r6, 0 + bne _08193FB8 + movs r6, 0x28 + b _08193FD0 + .pool +_08193FB8: + cmp r6, 0x1 + bne _08193FC0 + movs r6, 0x3C + b _08193FD0 +_08193FC0: + adds r1, r2, 0 + cmp r1, 0x78 + beq _08193FCA + cmp r1, 0x99 + bne _08193FD0 +_08193FCA: + lsrs r0, r6, 31 + adds r0, r6, r0 + asrs r6, r0, 1 +_08193FD0: + movs r1, 0 + mov r4, r9 + adds r4, 0x1 + str r4, [sp, 0x64] + ldr r5, [sp, 0x70] + ldr r2, [sp, 0x4C] + adds r0, r5, r2 + lsls r0, 1 + str r0, [sp, 0x5C] +_08193FE2: + lsls r7, r1, 1 + adds r1, 0x1 + str r1, [sp, 0x68] + ldr r3, [sp, 0x5C] + adds r3, r7 + mov r8, r3 +_08193FEE: + bl Random + adds r4, r0, 0 + bl Random + lsls r4, 16 + lsrs r5, r4, 16 + lsls r0, 16 + orrs r5, r0 + ldr r2, =gSaveBlock2Ptr + ldr r0, [r2] + ldr r4, =0x00000d64 + adds r0, r4 + add r0, r8 + ldrh r4, [r0] + ldr r3, =gUnknown_0203BC8C + ldr r0, [r3] + lsls r4, 4 + adds r4, r0 + adds r0, r5, 0 + str r2, [sp, 0x7C] + str r3, [sp, 0x80] + bl GetNatureFromPersonality + ldrb r1, [r4, 0xC] + lsls r0, 24 + lsrs r0, 24 + ldr r2, [sp, 0x7C] + ldr r3, [sp, 0x80] + cmp r1, r0 + bne _08193FEE + ldr r0, [r2] + ldr r2, [sp, 0x5C] + adds r1, r7, r2 + ldr r4, =0x00000d64 + adds r0, r4 + adds r0, r1 + ldrh r0, [r0] + ldr r1, [r3] + lsls r0, 4 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x1 + ands r5, r0 + cmp r5, 0 + beq _08194068 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + ldr r5, =gBaseStats + adds r0, r5 + ldrb r2, [r0, 0x17] + b _08194074 + .pool +_08194068: + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + ldr r2, =gBaseStats + adds r0, r2 + ldrb r2, [r0, 0x16] +_08194074: + ldr r4, [sp, 0x74] + add r4, r9 + lsls r0, r4, 1 + add r0, r10 + ldrh r0, [r0] + bl ai_rate_move + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0x6 + ands r0, r5 + cmp r0, 0x6 + bne _0819409C + lsls r0, r4, 2 + mov r3, sp + adds r1, r3, r0 + b _081940D8 + .pool +_0819409C: + movs r0, 0x29 + ands r0, r5 + cmp r0, 0 + bne _081940DE + movs r0, 0x2 + ands r0, r5 + cmp r0, 0 + beq _081940B6 + lsls r0, r4, 2 + mov r5, sp + adds r2, r5, r0 + lsls r1, r6, 1 + b _081940CA +_081940B6: + movs r0, 0x4 + ands r5, r0 + cmp r5, 0 + beq _081940D2 + lsls r0, r4, 2 + mov r1, sp + adds r2, r1, r0 + lsrs r1, r6, 31 + adds r1, r6, r1 + asrs r1, 1 +_081940CA: + ldr r0, [r2] + adds r0, r1 + str r0, [r2] + b _081940DE +_081940D2: + lsls r0, r4, 2 + mov r2, sp + adds r1, r2, r0 +_081940D8: + ldr r0, [r1] + adds r0, r6 + str r0, [r1] +_081940DE: + ldr r1, [sp, 0x68] + cmp r1, 0x2 + bgt _081940E6 + b _08193FE2 +_081940E6: + ldr r2, [sp, 0x74] + add r2, r9 + lsls r0, r2, 2 + add r0, sp + ldr r1, [r0] + ldr r3, [sp, 0x54] + cmp r3, r1 + bge _08194104 + lsls r0, r2, 16 + lsrs r0, 16 + str r0, [sp, 0x58] + lsls r0, r1, 16 + lsrs r0, 16 + str r0, [sp, 0x54] + b _08194122 +_08194104: + ldr r4, [sp, 0x54] + cmp r4, r1 + bne _08194122 + ldr r5, [sp, 0x58] + lsls r0, r5, 1 + add r0, r10 + lsls r1, r2, 1 + add r1, r10 + ldrh r0, [r0] + ldrh r1, [r1] + cmp r0, r1 + bcs _08194122 + lsls r0, r2, 16 + lsrs r0, 16 + str r0, [sp, 0x58] +_08194122: + ldr r0, [sp, 0x64] + mov r9, r0 + cmp r0, 0x3 + bgt _0819412C + b _08193F18 +_0819412C: + ldr r1, [sp, 0x60] + str r1, [sp, 0x50] + cmp r1, 0x2 + bgt _08194136 + b _08193F02 +_08194136: + ldr r2, [sp, 0x58] + mov r9, r2 + b _08194182 +_0819413C: + movs r3, 0 + mov r9, r3 + movs r1, 0 + mov r4, r10 + mov r3, r10 + mov r2, sp +_08194148: + ldr r0, [r2] + ldr r5, [sp, 0x54] + cmp r5, r0 + bge _0819415A + mov r9, r1 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x54] + b _08194170 +_0819415A: + ldr r5, [sp, 0x54] + cmp r5, r0 + bne _08194170 + mov r5, r9 + lsls r0, r5, 1 + adds r0, r4, r0 + ldrh r0, [r0] + ldrh r5, [r3] + cmp r0, r5 + bcs _08194170 + mov r9, r1 +_08194170: + adds r3, 0x2 + adds r2, 0x4 + adds r1, 0x1 + cmp r1, 0xB + ble _08194148 + ldr r0, [sp, 0x50] + ldr r1, [sp, 0x78] + cmp r0, r1 + beq _081941F4 +_08194182: + movs r2, 0 + str r2, [sp, 0x50] + mov r3, r9 + lsls r7, r3, 2 + ldr r4, [sp, 0x78] + cmp r2, r4 + bge _081941CA + lsls r0, r3, 1 + mov r5, r10 + adds r6, r5, r0 + ldr r0, [sp, 0x48] + lsls r5, r0, 24 +_0819419A: + ldr r0, =gSaveBlock2Ptr + ldr r4, [r0] + ldr r2, [sp, 0x50] + lsls r1, r2, 24 + lsrs r1, 24 + lsrs r0, r5, 24 + bl sub_81953E8 + lsls r0, 24 + lsrs r0, 23 + movs r3, 0xEC + lsls r3, 4 + adds r4, r3 + adds r4, r0 + ldrh r0, [r4] + ldrh r4, [r6] + cmp r0, r4 + beq _081941CA + ldr r0, [sp, 0x50] + adds r0, 0x1 + str r0, [sp, 0x50] + ldr r1, [sp, 0x78] + cmp r0, r1 + blt _0819419A +_081941CA: + ldr r2, [sp, 0x50] + ldr r3, [sp, 0x78] + cmp r2, r3 + beq _081941F4 + mov r4, sp + adds r1, r4, r7 + movs r0, 0 + str r0, [r1] + movs r5, 0 + str r5, [sp, 0x54] + mov r9, r5 + mov r2, sp + movs r1, 0xB +_081941E4: + ldm r2!, {r0} + add r9, r0 + subs r1, 0x1 + cmp r1, 0 + bge _081941E4 + mov r0, r9 + cmp r0, 0 + bne _0819413C +_081941F4: + mov r1, r9 + lsls r0, r1, 2 + add r0, sp + ldr r0, [r0] + cmp r0, 0 + bne _08194204 + ldr r2, [sp, 0x58] + mov r9, r2 +_08194204: + mov r3, r9 + lsls r0, r3, 1 + add r0, r10 + ldrh r0, [r0] + add sp, 0x84 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8193ED0 + + thumb_func_start sub_8194220 +sub_8194220: @ 8194220 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x28 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r1, =gTasks + lsls r0, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r2, 0xA + ldrsh r1, [r0, r2] + mov r10, r1 + movs r3, 0xC + ldrsh r4, [r0, r3] + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r0, 0x5 + bls _08194250 + b _081948C2 +_08194250: + lsls r0, 2 + ldr r1, =_08194264 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08194264: + .4byte _0819427C + .4byte _0819431C + .4byte _0819438C + .4byte _0819447C + .4byte _081944FC + .4byte _081947C8 +_0819427C: + movs r0, 0 + bl SetHBlankCallback + movs r0, 0 + bl SetVBlankCallback + movs r0, 0x3 + bl EnableInterrupts + movs r4, 0 + str r4, [sp, 0x14] + add r0, sp, 0x14 + movs r1, 0xC0 + lsls r1, 19 + ldr r2, =0x05006000 + bl CpuSet + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, =gUnknown_0860CE74 + movs r0, 0 + movs r2, 0x4 + bl InitBgsFromTemplates + ldr r0, =gUnknown_0860CE94 + bl InitWindows + bl DeactivateAllTextPrinters + ldr r0, =gUnknown_02022E14 + strh r4, [r0] + ldr r0, =gUnknown_02022E16 + strh r4, [r0] + ldr r0, =gUnknown_02022E18 + strh r4, [r0] + ldr r0, =gUnknown_02022E1A + strh r4, [r0] + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r1, 0xB0 + lsls r1, 4 + movs r0, 0x3 + movs r2, 0 + bl ChangeBgY + ldr r1, =gTasks + mov r2, r8 + lsls r0, r2, 2 + b _0819443C + .pool +_0819431C: + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + movs r0, 0x4C + movs r1, 0 + bl SetGpuReg + ldr r1, =0x00005860 + movs r0, 0x40 + bl SetGpuReg + movs r0, 0x44 + movs r1, 0x9F + bl SetGpuReg + ldr r1, =0x00009098 + movs r0, 0x42 + bl SetGpuReg + movs r0, 0x46 + movs r1, 0x9F + bl SetGpuReg + movs r0, 0x48 + movs r1, 0 + bl SetGpuReg + movs r0, 0x4A + movs r1, 0x3F + bl SetGpuReg + bl ResetPaletteFade + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r1, =gTasks + mov r3, r8 + lsls r0, r3, 2 + b _0819443C + .pool +_0819438C: + ldr r4, =gUnknown_0203CD7C + movs r0, 0x80 + lsls r0, 4 + bl AllocZeroed + adds r1, r0, 0 + str r1, [r4] + ldr r0, =gUnknown_08D83900 + bl LZDecompressWram + ldr r1, [r4] + movs r0, 0x1 + bl SetBgTilemapBuffer + movs r0, 0x1 + bl CopyBgTilemapBufferToVram + ldr r1, =gUnknown_08D82F10 + movs r5, 0x80 + lsls r5, 6 + movs r6, 0 + str r6, [sp] + movs r0, 0x1 + adds r2, r5, 0 + movs r3, 0 + bl copy_decompressed_tile_data_to_vram_autofree + ldr r1, =gUnknown_08D834FC + str r6, [sp] + movs r0, 0x2 + adds r2, r5, 0 + movs r3, 0 + bl copy_decompressed_tile_data_to_vram_autofree + ldr r1, =gUnknown_08D83B2C + movs r4, 0x1 + str r4, [sp] + movs r0, 0x2 + adds r2, r5, 0 + movs r3, 0 + bl copy_decompressed_tile_data_to_vram_autofree + ldr r1, =gUnknown_08D83C3C + str r4, [sp] + movs r0, 0x3 + adds r2, r5, 0 + movs r3, 0 + bl copy_decompressed_tile_data_to_vram_autofree + ldr r0, =gUnknown_08D85358 + movs r4, 0x80 + lsls r4, 2 + movs r1, 0 + adds r2, r4, 0 + bl LoadCompressedPalette + ldr r0, =gUnknown_08D85444 + movs r1, 0x80 + lsls r1, 1 + adds r2, r4, 0 + bl LoadCompressedPalette + ldr r0, =gUnknown_08D85600 + movs r1, 0xF0 + movs r2, 0x20 + bl LoadCompressedPalette + str r6, [sp, 0x18] + add r0, sp, 0x18 + ldr r1, =gPlttBufferFaded + ldr r2, =0x05000100 + bl CpuSet + movs r0, 0 + bl ShowBg + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + movs r0, 0x3 + bl ShowBg + ldr r1, =gTasks + mov r4, r8 + lsls r0, r4, 2 +_0819443C: + add r0, r8 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + b _081948C2 + .pool +_0819447C: + ldr r0, =gUnknown_0860CF50 + bl LoadCompressedObjectPic + mov r0, r8 + lsls r0, 2 + str r0, [sp, 0x1C] + mov r1, r10 + cmp r1, 0 + bne _081944E8 + movs r5, 0 + ldr r4, =gUnknown_0860D411 +_08194492: + ldrb r1, [r4] + ldrb r2, [r4, 0x1] + ldr r0, =gUnknown_0860CFA8 + movs r3, 0 + bl CreateSprite + adds r4, 0x2 + adds r5, 0x1 + cmp r5, 0x1E + bls _08194492 + ldr r0, =gTasks + ldr r1, [sp, 0x1C] + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r2, 0x10 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _081944DC + ldr r0, =gUnknown_0860D008 + movs r1, 0xDA + movs r2, 0xC + movs r3, 0 + bl CreateSprite + b _081944E8 + .pool +_081944DC: + ldr r0, =gUnknown_0860CFD8 + movs r1, 0xDA + movs r2, 0xC + movs r3, 0 + bl CreateSprite +_081944E8: + ldr r1, =0x00007f40 + movs r0, 0 + bl SetGpuReg + b _081947A6 + .pool +_081944FC: + add r0, sp, 0x4 + movs r2, 0 + movs r1, 0x2 + strb r1, [r0, 0x5] + ldr r0, =gUnknown_085CCCEE + str r0, [sp, 0x4] + add r0, sp, 0x4 + strb r1, [r0, 0x4] + strb r2, [r0, 0x6] + strb r2, [r0, 0x7] + strb r1, [r0, 0xA] + strb r2, [r0, 0xB] + ldrb r0, [r0, 0x5] + ldr r1, [sp, 0x4] + add r2, sp, 0x4 + ldrb r3, [r2, 0xA] + movs r2, 0x70 + bl GetStringCenterAlignXOffsetWithLetterSpacing + add r1, sp, 0x4 + strb r0, [r1, 0x8] + movs r0, 0x1 + strb r0, [r1, 0x9] + adds r3, r1, 0 + ldrb r2, [r3, 0xC] + movs r1, 0x10 + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + strb r0, [r3, 0xC] + adds r2, r3, 0 + movs r0, 0xE0 + strb r0, [r2, 0xC] + ldrb r0, [r2, 0xD] + ands r1, r0 + strb r1, [r2, 0xD] + adds r1, r2, 0 + movs r0, 0xD0 + strb r0, [r1, 0xD] + adds r0, r1, 0 + movs r1, 0 + movs r2, 0 + bl AddTextPrinter + mov r3, r8 + lsls r3, 2 + str r3, [sp, 0x1C] + add r4, sp, 0x4 + movs r0, 0xF + mov r9, r0 + movs r1, 0 + str r1, [sp, 0x20] + movs r2, 0 + str r2, [sp, 0x24] + movs r7, 0 + movs r5, 0xF +_0819456C: + ldr r3, =gSaveBlock2Ptr + ldr r0, [r3] + adds r0, r7 + ldr r1, =0x00000d24 + adds r0, r1 + ldrh r1, [r0] + lsls r1, 22 + lsrs r1, 22 + ldr r0, =gUnknown_02022E2C + bl sub_8195898 + mov r2, r10 + cmp r2, 0x1 + bne _081945C4 + ldr r3, =gSaveBlock2Ptr + ldr r2, [r3] + adds r0, r2, r7 + ldr r1, =0x00000d25 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 29 + cmp r0, 0 + blt _081945DC + ldr r3, =0x00000cb2 + adds r0, r2, r3 + ldrh r1, [r0] + cmp r1, 0x1 + beq _08194634 + ldr r2, [sp, 0x24] + lsrs r0, r2, 24 + subs r1, 0x2 + b _081945EA + .pool +_081945C4: + mov r3, r10 + cmp r3, 0 + bne _08194634 + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + adds r0, r2, r7 + ldr r1, =0x00000d25 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 29 + cmp r0, 0 + bge _081945FC +_081945DC: + lsls r1, 27 + lsrs r0, r1, 30 + cmp r0, 0 + beq _08194634 + subs r1, r0, 0x1 + ldr r2, [sp, 0x24] + lsrs r0, r2, 24 +_081945EA: + lsls r1, 24 + lsrs r1, 24 + bl sub_81948EC + b _08194634 + .pool +_081945FC: + ldr r3, =0x00000cb2 + adds r1, r2, r3 + ldrh r0, [r1] + cmp r0, 0 + beq _08194634 + ldr r0, [sp, 0x1C] + add r0, r8 + lsls r0, 3 + ldr r2, =gTasks + adds r0, r2 + movs r3, 0x10 + ldrsh r0, [r0, r3] + cmp r0, 0 + beq _08194624 + ldrh r1, [r1] + b _08194628 + .pool +_08194624: + ldrh r0, [r1] + subs r1, r0, 0x1 +_08194628: + ldr r2, [sp, 0x24] + lsrs r0, r2, 24 + lsls r1, 24 + lsrs r1, 24 + bl sub_81948EC +_08194634: + ldr r0, [sp, 0x1C] + add r0, r8 + lsls r0, 3 + ldr r3, =gTasks + adds r0, r3 + movs r1, 0x10 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _08194660 + ldr r2, =gSaveBlock2Ptr + ldr r0, [r2] + ldr r3, =0x00000cb2 + adds r0, r3 + ldrh r3, [r0] + adds r6, r2, 0 + b _0819466E + .pool +_08194660: + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + ldr r2, =0x00000cb2 + adds r0, r2 + ldrh r0, [r0] + subs r3, r0, 0x1 + adds r6, r1, 0 +_0819466E: + mov r0, r10 + cmp r0, 0x1 + bne _0819468E + ldr r2, [r6] + adds r0, r2, r7 + ldr r1, =0x00000d25 + adds r0, r1 + ldrb r1, [r0] + lsls r1, 27 + lsrs r1, 30 + ldr r0, =0x00000cb2 + adds r2, r0 + ldrh r0, [r2] + subs r0, 0x1 + cmp r1, r0 + blt _081946A6 +_0819468E: + mov r1, r10 + cmp r1, 0 + bne _081946FA + ldr r0, [r6] + adds r0, r7 + ldr r2, =0x00000d25 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 27 + lsrs r0, 30 + cmp r0, r3 + bgt _081946FA +_081946A6: + ldr r0, [r6] + adds r1, r0, r7 + ldr r3, =0x00000d25 + adds r0, r1, r3 + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + bge _081946FA + ldr r2, =0x00000d24 + adds r0, r1, r2 + ldrh r0, [r0] + lsls r0, 22 + lsrs r0, 22 + ldr r3, =0x000003ff + cmp r0, r3 + bne _081946F0 + ldrb r1, [r4, 0xC] + mov r0, r9 + ands r0, r1 + movs r1, 0x30 + orrs r0, r1 + strb r0, [r4, 0xC] + ldrb r1, [r4, 0xD] + mov r0, r9 + ands r0, r1 + movs r1, 0x40 + b _08194740 + .pool +_081946F0: + ldrb r1, [r4, 0xC] + mov r0, r9 + ands r0, r1 + movs r1, 0xB0 + b _08194734 +_081946FA: + ldr r0, [r6] + adds r0, r7 + ldr r1, =0x00000d24 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 22 + lsrs r0, 22 + ldr r2, =0x000003ff + cmp r0, r2 + bne _0819472C + ldrb r1, [r4, 0xC] + mov r0, r9 + ands r0, r1 + movs r1, 0x30 + orrs r0, r1 + strb r0, [r4, 0xC] + ldrb r1, [r4, 0xD] + mov r0, r9 + ands r0, r1 + movs r1, 0x40 + b _08194740 + .pool +_0819472C: + ldrb r1, [r4, 0xC] + mov r0, r9 + ands r0, r1 + movs r1, 0xE0 +_08194734: + orrs r0, r1 + strb r0, [r4, 0xC] + ldrb r1, [r4, 0xD] + mov r0, r9 + ands r0, r1 + movs r1, 0xD0 +_08194740: + orrs r0, r1 + strb r0, [r4, 0xD] + ldr r0, =gUnknown_0860D3F1 + ldr r3, [sp, 0x20] + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, 0 + bne _08194768 + ldrb r0, [r4, 0x5] + ldrb r3, [r4, 0xA] + ldr r1, =gUnknown_02022E2C + movs r2, 0x3D + bl GetStringWidthDifference + b _0819476A + .pool +_08194768: + movs r0, 0x3 +_0819476A: + strb r0, [r4, 0x8] + ldr r0, =gUnknown_02022E2C + str r0, [sp, 0x4] + ldr r0, =gUnknown_0860D3F1 + ldr r1, [sp, 0x20] + adds r0, r1, r0 + ldrb r0, [r0] + strb r0, [r4, 0x4] + ldr r2, =gUnknown_0860D3F2 + adds r0, r1, r2 + ldrb r0, [r0] + strb r0, [r4, 0x9] + add r0, sp, 0x4 + movs r1, 0 + movs r2, 0 + bl AddTextPrinter + ldr r3, [sp, 0x20] + adds r3, 0x2 + str r3, [sp, 0x20] + ldr r0, [sp, 0x24] + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + str r0, [sp, 0x24] + adds r7, 0x4 + subs r5, 0x1 + cmp r5, 0 + blt _081947A6 + b _0819456C +_081947A6: + ldr r0, =gTasks + ldr r1, [sp, 0x1C] + add r1, r8 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _081948C2 + .pool +_081947C8: + movs r0, 0 + bl PutWindowTilemap + movs r0, 0x1 + bl PutWindowTilemap + movs r0, 0x2 + bl PutWindowTilemap + movs r0, 0 + movs r1, 0x3 + bl CopyWindowToVram + movs r0, 0x1 + movs r1, 0x3 + bl CopyWindowToVram + movs r0, 0x2 + movs r1, 0x3 + bl CopyWindowToVram + ldr r0, =sub_8194BEC + bl SetHBlankCallback + ldr r0, =sub_8194CE4 + bl SetVBlankCallback + cmp r4, 0x2 + bne _0819485C + mov r2, r10 + cmp r2, 0 + bne _08194844 + ldr r0, =sub_819395C + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r2 + mov r3, r10 + strh r3, [r1, 0x8] + strh r3, [r1, 0xA] + mov r4, r8 + lsls r0, r4, 2 + add r0, r8 + lsls r0, 3 + adds r0, r2 + ldrh r0, [r0, 0x10] + strh r0, [r1, 0x14] + b _08194878 + .pool +_08194844: + ldr r0, =sub_8194950 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, =gTasks + b _0819486C + .pool +_0819485C: + ldr r1, =gTasks + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r3, 0xE + ldrsh r5, [r0, r3] +_0819486C: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x8] +_08194878: + bl dp12_8087EA4 + ldr r0, =gUnknown_02038C28 + ldr r2, =0x00001f0a + movs r4, 0xF0 + lsls r4, 3 + adds r1, r0, r4 + movs r5, 0x5A +_08194888: + strh r2, [r0] + strh r2, [r1] + adds r1, 0x2 + adds r0, 0x2 + subs r5, 0x1 + cmp r5, 0 + bge _08194888 + movs r5, 0x5B + ldr r3, =gUnknown_0860CF44 + ldr r0, =gUnknown_02038C28 + ldr r2, =0x00001f09 + ldr r4, =0x00000836 + adds r1, r0, r4 + adds r0, 0xB6 +_081948A4: + strh r2, [r0] + strh r2, [r1] + adds r1, 0x2 + adds r0, 0x2 + adds r5, 0x1 + cmp r5, 0x9F + ble _081948A4 + ldr r0, [r3] + ldr r1, [r3, 0x4] + ldr r2, [r3, 0x8] + bl sub_80BA038 + mov r0, r8 + bl DestroyTask +_081948C2: + add sp, 0x28 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8194220 + + thumb_func_start sub_81948EC +sub_81948EC: @ 81948EC + push {r4-r7,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r4, =gUnknown_0860DD10 + lsls r2, r1, 2 + lsls r3, r0, 4 + adds r2, r3 + adds r2, r4 + ldr r3, [r2] + ldr r2, =gUnknown_0860DE10 + lsls r0, 2 + adds r1, r0 + adds r1, r2 + ldrb r0, [r1] + cmp r0, 0 + beq _08194938 + movs r7, 0x1 + adds r4, r3, 0 + adds r5, r4, 0x2 + adds r6, r0, 0 +_0819491A: + ldrb r2, [r4] + ldrb r3, [r4, 0x1] + str r7, [sp] + str r7, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0x1 + adds r1, r5, 0 + bl CopyToBgTilemapBufferRect_ChangePalette + adds r4, 0x4 + adds r5, 0x4 + subs r6, 0x1 + cmp r6, 0 + bne _0819491A +_08194938: + movs r0, 0x1 + bl CopyBgTilemapBufferToVram + add sp, 0xC + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81948EC + + thumb_func_start sub_8194950 +sub_8194950: @ 8194950 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0x4 + bls _08194974 + b _08194B3C +_08194974: + lsls r0, 2 + ldr r1, =_08194988 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08194988: + .4byte _0819499C + .4byte _081949C0 + .4byte _08194AD4 + .4byte _08194AEE + .4byte _08194B24 +_0819499C: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0x1 + strh r1, [r0, 0x8] + b _08194B3C + .pool +_081949C0: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081949CE + b _08194B3C +_081949CE: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r2 + movs r2, 0 + movs r3, 0x2 + movs r1, 0x2 + strh r1, [r0, 0x8] + movs r1, 0x40 + strh r1, [r0, 0xE] + add r0, sp, 0x4 + strb r3, [r0, 0x5] + strb r2, [r0, 0x6] + strb r2, [r0, 0x7] + strb r3, [r0, 0xA] + strb r2, [r0, 0xB] + adds r3, r0, 0 + ldrb r2, [r3, 0xC] + subs r1, 0x50 + adds r0, r1, 0 + ands r0, r2 + strb r0, [r3, 0xC] + adds r2, r3, 0 + movs r0, 0xB0 + strb r0, [r2, 0xC] + ldrb r0, [r2, 0xD] + ands r1, r0 + strb r1, [r2, 0xD] + adds r1, r2, 0 + movs r0, 0xD0 + strb r0, [r1, 0xD] + movs r7, 0 + ldr r0, =gUnknown_02022E2C + mov r9, r0 + ldr r1, =gSaveBlock2Ptr + mov r8, r1 + adds r4, r2, 0 + ldr r6, =gUnknown_0860D3F1 + movs r5, 0 +_08194A1C: + mov r2, r8 + ldr r0, [r2] + adds r0, r5 + ldr r1, =0x00000d24 + adds r0, r1 + ldrh r1, [r0] + lsls r1, 22 + lsrs r1, 22 + mov r0, r9 + bl sub_8195898 + mov r0, r8 + ldr r2, [r0] + adds r0, r2, r5 + ldr r1, =0x00000d25 + adds r0, r1 + ldrb r3, [r0] + lsls r1, r3, 27 + lsrs r1, 30 + ldr r0, =0x00000cb2 + adds r2, r0 + ldrh r0, [r2] + subs r0, 0x1 + cmp r1, r0 + bne _08194A9E + lsls r0, r3, 29 + cmp r0, 0 + bge _08194A9E + ldrb r0, [r6] + cmp r0, 0 + bne _08194A84 + ldrb r0, [r4, 0x5] + ldrb r3, [r4, 0xA] + mov r1, r9 + movs r2, 0x3D + bl GetStringWidthDifference + b _08194A86 + .pool +_08194A84: + movs r0, 0x3 +_08194A86: + strb r0, [r4, 0x8] + mov r1, r9 + str r1, [sp, 0x4] + ldrb r0, [r6] + strb r0, [r4, 0x4] + ldrb r0, [r6, 0x1] + strb r0, [r4, 0x9] + add r0, sp, 0x4 + movs r1, 0 + movs r2, 0 + bl AddTextPrinter +_08194A9E: + mov r2, r8 + ldr r1, [r2] + adds r0, r1, r5 + ldr r2, =0x00000d25 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + blt _08194AC4 + subs r2, 0x73 + adds r0, r1, r2 + ldrh r1, [r0] + subs r1, 0x1 + lsls r0, r7, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + bl sub_81948EC +_08194AC4: + adds r6, 0x2 + adds r5, 0x4 + adds r7, 0x1 + cmp r7, 0xF + ble _08194A1C + b _08194B3C + .pool +_08194AD4: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r2 + ldrh r0, [r1, 0xE] + subs r0, 0x1 + strh r0, [r1, 0xE] + lsls r0, 16 + cmp r0, 0 + bne _08194B3C + movs r0, 0x3 + strh r0, [r1, 0x8] + b _08194B3C +_08194AEE: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _08194B3C + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0x4 + strh r1, [r0, 0x8] + b _08194B3C + .pool +_08194B24: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08194B3C + ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music + bl SetMainCallback2 + adds r0, r4, 0 + bl DestroyTask +_08194B3C: + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8194950 + + thumb_func_start sub_8194B54 +sub_8194B54: @ 8194B54 + push {lr} + bl AnimateSprites + bl BuildOamBuffer + bl RunTextPrinters + bl UpdatePaletteFade + bl RunTasks + pop {r0} + bx r0 + thumb_func_end sub_8194B54 + + thumb_func_start sub_8194B70 +sub_8194B70: @ 8194B70 + push {lr} + movs r0, 0x3 + movs r1, 0x80 + movs r2, 0x1 + bl ChangeBgX + movs r0, 0x3 + movs r1, 0x80 + movs r2, 0x2 + bl ChangeBgY + ldr r0, =gUnknown_02022E14 + ldrh r1, [r0] + movs r0, 0x10 + bl SetGpuReg + ldr r0, =gUnknown_02022E16 + ldrh r1, [r0] + movs r0, 0x12 + bl SetGpuReg + ldr r0, =gUnknown_02022E18 + ldrh r1, [r0] + movs r0, 0x14 + bl SetGpuReg + ldr r0, =gUnknown_02022E1A + ldrh r1, [r0] + movs r0, 0x16 + bl SetGpuReg + ldr r0, =gUnknown_02022E1C + ldrh r1, [r0] + movs r0, 0x18 + bl SetGpuReg + ldr r0, =gUnknown_02022E1E + ldrh r1, [r0] + movs r0, 0x1A + bl SetGpuReg + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .pool + thumb_func_end sub_8194B70 + + thumb_func_start sub_8194BEC +sub_8194BEC: @ 8194BEC + push {lr} + ldr r0, =0x04000006 + ldrh r0, [r0] + adds r1, r0, 0 + cmp r0, 0x29 + bls _08194CC8 + cmp r0, 0x31 + bhi _08194C1C + ldr r1, =0x04000048 + ldr r2, =0x00003b3b + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x8 + ldr r0, =0x989b5558 + b _08194CD4 + .pool +_08194C1C: + cmp r0, 0x39 + bls _08194CC8 + cmp r0, 0x4A + bhi _08194C40 + ldr r1, =0x04000048 + ldr r2, =0x00003b3b + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x8 + ldr r0, =0x90985860 + b _08194CD4 + .pool +_08194C40: + cmp r0, 0x51 + bhi _08194C60 + ldr r1, =0x04000048 + ldr r2, =0x00003b3b + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x8 + ldr r0, =0x989b5558 + b _08194CD4 + .pool +_08194C60: + cmp r0, 0x5E + bls _08194CC8 + cmp r0, 0x66 + bhi _08194C84 + ldr r1, =0x04000048 + ldr r2, =0x00003737 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x8 + ldr r0, =0x989b5558 + b _08194CD4 + .pool +_08194C84: + cmp r0, 0x76 + bhi _08194CA4 + ldr r1, =0x04000048 + ldr r2, =0x00003737 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x8 + ldr r0, =0x90985860 + b _08194CD4 + .pool +_08194CA4: + cmp r0, 0x7E + bls _08194CC8 + cmp r1, 0x86 + bhi _08194CC8 + ldr r1, =0x04000048 + ldr r2, =0x00003737 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x8 + ldr r0, =0x989b5558 + b _08194CD4 + .pool +_08194CC8: + ldr r1, =0x04000048 + ldr r2, =0x00003f3f + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x8 + movs r0, 0 +_08194CD4: + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end sub_8194BEC + + thumb_func_start sub_8194CE4 +sub_8194CE4: @ 8194CE4 + push {lr} + ldr r0, =gUnknown_02022E14 + ldrh r1, [r0] + movs r0, 0x10 + bl SetGpuReg + ldr r0, =gUnknown_02022E16 + ldrh r1, [r0] + movs r0, 0x12 + bl SetGpuReg + ldr r0, =gUnknown_02022E18 + ldrh r1, [r0] + movs r0, 0x14 + bl SetGpuReg + ldr r0, =gUnknown_02022E1A + ldrh r1, [r0] + movs r0, 0x16 + bl SetGpuReg + movs r0, 0x2 + movs r1, 0x80 + movs r2, 0x2 + bl ChangeBgY + movs r0, 0x3 + movs r1, 0x80 + movs r2, 0x1 + bl ChangeBgY + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl sub_80BA0A8 + pop {r0} + bx r0 + .pool + thumb_func_end sub_8194CE4 + + thumb_func_start sub_8194D48 +sub_8194D48: @ 8194D48 + ldr r1, =gUnknown_0203BC8C + ldr r0, =gBattleFrontierMons + str r0, [r1] + ldr r1, =gUnknown_0203BC88 + ldr r0, =gBattleFrontierTrainers + str r0, [r1] + bx lr + .pool + thumb_func_end sub_8194D48 + + thumb_func_start sub_8194D68 +sub_8194D68: @ 8194D68 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + movs r3, 0 +_08194D76: + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r0, =gUnknown_0203CEF8 + adds r0, r3, r0 + ldrb r0, [r0] + subs r0, 0x1 + lsls r0, 1 + ldr r2, =0x00000caa + adds r1, r2 + adds r1, r0 + ldrh r0, [r1] + subs r0, 0x1 + mov r10, r0 + movs r6, 0 + adds r0, r3, 0x1 + str r0, [sp] + movs r1, 0x64 + mov r0, r10 + muls r0, r1 + movs r2, 0x8E + lsls r2, 2 + adds r2, r0 + mov r9, r2 + adds r7, r3, 0 + muls r7, r1 +_08194DA8: + movs r5, 0 + adds r0, r6, 0x1 + mov r8, r0 + b _08194DBE + .pool +_08194DBC: + adds r5, 0x1 +_08194DBE: + cmp r5, 0x3 + bgt _08194DEA + ldr r1, =gSaveBlock1Ptr + ldr r0, [r1] + add r0, r9 + adds r1, r5, 0 + adds r1, 0xD + movs r2, 0 + str r3, [sp, 0x4] + bl GetMonData + adds r4, r0, 0 + adds r1, r6, 0 + adds r1, 0xD + ldr r2, =gPlayerParty + adds r0, r7, r2 + movs r2, 0 + bl GetMonData + ldr r3, [sp, 0x4] + cmp r4, r0 + bne _08194DBC +_08194DEA: + cmp r5, 0x4 + bne _08194E00 + lsls r2, r6, 24 + lsrs r2, 24 + ldr r1, =gPlayerParty + adds r0, r7, r1 + movs r1, 0xA6 + str r3, [sp, 0x4] + bl sub_80691F4 + ldr r3, [sp, 0x4] +_08194E00: + mov r6, r8 + cmp r6, 0x3 + ble _08194DA8 + ldr r2, =gSaveBlock1Ptr + ldr r0, [r2] + movs r2, 0x64 + mov r1, r10 + muls r1, r2 + adds r0, r1 + movs r1, 0x8E + lsls r1, 2 + adds r0, r1 + adds r1, r3, 0 + muls r1, r2 + ldr r2, =gPlayerParty + adds r1, r2 + movs r2, 0x64 + bl memcpy + ldr r3, [sp] + cmp r3, 0x1 + ble _08194D76 + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8194D68 + + thumb_func_start sub_8194E44 +sub_8194E44: @ 8194E44 + push {r4-r7,lr} + sub sp, 0x4 + movs r4, 0 + ldr r7, =gSaveBlock1Ptr + movs r6, 0x64 + movs r5, 0 +_08194E50: + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r0, =gUnknown_0203CEF8 + adds r0, r4, r0 + ldrb r0, [r0] + subs r0, 0x1 + lsls r0, 1 + ldr r2, =0x00000caa + adds r1, r2 + adds r1, r0 + ldrh r0, [r1] + subs r0, 0x1 + adds r1, r0, 0 + muls r1, r6 + movs r0, 0x8E + lsls r0, 2 + adds r1, r0 + ldr r0, [r7] + adds r0, r1 + movs r1, 0xC + movs r2, 0 + bl GetMonData + mov r1, sp + strh r0, [r1] + ldr r0, =gPlayerParty + adds r0, r5, r0 + movs r1, 0xC + mov r2, sp + bl SetMonData + adds r5, 0x64 + adds r4, 0x1 + cmp r4, 0x1 + ble _08194E50 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8194E44 + + thumb_func_start sub_8194EB4 +sub_8194EB4: @ 8194EB4 + push {lr} + bl sub_80F94E8 + pop {r0} + bx r0 + thumb_func_end sub_8194EB4 + + thumb_func_start sub_8194EC0 +sub_8194EC0: @ 8194EC0 + push {r4,lr} + ldr r0, =gUnknown_02038BCA + ldrh r0, [r0] + bl sub_8195358 + adds r4, r0, 0 + ldr r0, =0x000003ff + bl sub_8195358 + cmp r4, r0 + ble _08194EE8 + ldr r1, =gScriptResult + movs r0, 0x1 + b _08194EEC + .pool +_08194EE8: + ldr r1, =gScriptResult + movs r0, 0x2 +_08194EEC: + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8194EC0 + + thumb_func_start sub_8194EF8 +sub_8194EF8: @ 8194EF8 + push {r4,lr} + bl sub_8194D48 + movs r2, 0 + ldr r3, =gSaveBlock2Ptr + ldr r0, [r3] + ldr r1, =0x00000d25 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + bge _08194F2A + adds r4, r3, 0 + adds r3, r1, 0 +_08194F14: + adds r2, 0x1 + cmp r2, 0xF + bgt _08194F2A + ldr r0, [r4] + lsls r1, r2, 2 + adds r0, r1 + adds r0, r3 + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + blt _08194F14 +_08194F2A: + ldr r0, =gStringVar1 + ldr r1, =gSaveBlock2Ptr + ldr r1, [r1] + lsls r2, 2 + adds r1, r2 + ldr r2, =0x00000d24 + adds r1, r2 + ldrh r1, [r1] + lsls r1, 22 + lsrs r1, 22 + bl sub_8195898 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8194EF8 + + thumb_func_start sub_8194F58 +sub_8194F58: @ 8194F58 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x40 + movs r0, 0 + str r0, [sp, 0x8] + str r0, [sp, 0xC] + str r0, [sp, 0x10] + ldr r4, =gSaveBlock2Ptr + ldr r2, [r4] + ldr r5, =0x00000d0a + adds r0, r2, r5 + ldrb r1, [r0] + ldr r6, =0x00000d0b + adds r0, r2, r6 + ldrb r0, [r0] + cmn r1, r0 + beq _08194F8C + ldr r1, =0x00000ca8 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _08194F8C + b _0819533E +_08194F8C: + movs r0, 0x20 + bl AllocZeroed + str r0, [sp, 0x18] + movs r0, 0x18 + bl AllocZeroed + str r0, [sp, 0x1C] + ldr r1, [r4] + ldr r2, =0x00000ca9 + adds r1, r2 + ldrb r2, [r1] + lsls r0, r2, 30 + lsrs r0, 30 + str r0, [sp, 0x14] + movs r0, 0x4 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r0, [r4] + movs r1, 0x1 + adds r0, r5 + strb r1, [r0] + ldr r0, [r4] + adds r0, r6 + strb r1, [r0] + movs r3, 0 + mov r10, r3 + movs r4, 0 + str r4, [sp, 0x38] + movs r5, 0 + str r5, [sp, 0x3C] +_08194FCC: + mov r0, r10 + cmp r0, 0x4 + bgt _08194FFC + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 16 + lsrs r4, r0, 16 + b _08195030 + .pool +_08194FFC: + mov r1, r10 + cmp r1, 0xE + bgt _0819501A + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x14 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + adds r4, r0, 0 + adds r4, 0xA + b _08195030 +_0819501A: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + adds r4, r0, 0 + adds r4, 0x1E +_08195030: + movs r6, 0 + cmp r6, r10 + bge _08195064 + ldr r2, =gSaveBlock2Ptr + ldr r0, [r2] + ldr r3, =0x00000d24 + adds r0, r3 + ldrh r0, [r0] + lsls r0, 22 + lsrs r0, 22 + cmp r0, r4 + beq _08195064 + adds r3, r2, 0 + ldr r2, =0x00000d24 +_0819504C: + adds r6, 0x1 + cmp r6, r10 + bge _08195064 + ldr r0, [r3] + lsls r1, r6, 2 + adds r0, r1 + adds r0, r2 + ldrh r0, [r0] + lsls r0, 22 + lsrs r0, 22 + cmp r0, r4 + bne _0819504C +_08195064: + cmp r6, r10 + bne _08194FCC + ldr r5, =gSaveBlock2Ptr + ldr r3, [r5] + ldr r0, [sp, 0x38] + adds r3, r0 + ldr r1, =0x00000d24 + adds r3, r1 + ldr r2, =0x000003ff + adds r0, r2, 0 + adds r2, r4, 0 + ands r2, r0 + ldrh r0, [r3] + ldr r5, =0xfffffc00 + adds r1, r5, 0 + ands r0, r1 + orrs r0, r2 + strh r0, [r3] + movs r6, 0 + lsls r4, 16 + str r4, [sp, 0x30] + ldr r0, [sp, 0x3C] + str r0, [sp, 0x20] +_08195092: + adds r1, r6, 0x1 + str r1, [sp, 0x24] + lsls r2, r6, 2 + str r2, [sp, 0x2C] + lsls r3, r6, 1 + str r3, [sp, 0x28] +_0819509E: + ldr r4, [sp, 0x30] + lsrs r0, r4, 16 + bl sub_8163524 + lsls r0, 16 + lsrs r5, r0, 16 + movs r7, 0 + cmp r7, r6 + bge _081950F4 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =gUnknown_0203BC8C + mov r9, r1 + ldr r2, [sp, 0x8] + mov r8, r2 + ldr r3, [sp, 0xC] + mov r12, r3 + ldr r4, =0x00000d64 + adds r0, r4 + ldr r1, [sp, 0x20] + adds r4, r1, r0 +_081950C8: + ldrh r3, [r4] + cmp r3, r5 + beq _081950F4 + mov r2, r9 + ldr r1, [r2] + lsls r0, r5, 4 + adds r2, r0, r1 + ldrh r0, [r2] + cmp r8, r0 + beq _081950F4 + cmp r12, r0 + beq _081950F4 + lsls r0, r3, 4 + adds r0, r1 + ldrb r0, [r0, 0xA] + ldrb r2, [r2, 0xA] + cmp r0, r2 + beq _081950F4 + adds r4, 0x2 + adds r7, 0x1 + cmp r7, r6 + blt _081950C8 +_081950F4: + cmp r7, r6 + bne _0819509E + ldr r3, =gSaveBlock2Ptr + ldr r0, [r3] + ldr r4, [sp, 0x28] + ldr r2, [sp, 0x3C] + adds r1, r4, r2 + ldr r3, =0x00000d64 + adds r0, r3 + adds r0, r1 + strh r5, [r0] + ldr r2, [sp, 0x2C] + add r2, sp + adds r2, 0x8 + ldr r3, =gUnknown_0203BC8C + ldr r1, [r3] + lsls r0, r5, 4 + adds r0, r1 + ldrh r0, [r0] + str r0, [r2] + ldr r6, [sp, 0x24] + cmp r6, 0x2 + ble _08195092 + ldr r4, =gSaveBlock2Ptr + ldr r2, [r4] + ldr r5, [sp, 0x38] + adds r2, r5 + ldr r0, =0x00000d25 + adds r2, r0 + ldrb r0, [r2] + movs r4, 0x5 + negs r4, r4 + adds r1, r4, 0 + ands r0, r1 + strb r0, [r2] + ldr r5, =gSaveBlock2Ptr + ldr r2, [r5] + ldr r0, [sp, 0x38] + adds r2, r0 + ldr r1, =0x00000d25 + adds r2, r1 + ldrb r0, [r2] + subs r4, 0x14 + adds r1, r4, 0 + ands r0, r1 + strb r0, [r2] + ldr r1, [r5] + ldr r5, [sp, 0x38] + adds r1, r5 + ldr r0, =0x00000d25 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x1F + ands r0, r2 + strb r0, [r1] + adds r5, 0x4 + str r5, [sp, 0x38] + ldr r1, [sp, 0x3C] + adds r1, 0x6 + str r1, [sp, 0x3C] + movs r2, 0x1 + add r10, r2 + mov r4, r10 + cmp r4, 0xF + bgt _08195178 + b _08194FCC +_08195178: + movs r5, 0 + mov r10, r5 + ldr r5, [sp, 0x18] + movs r0, 0 + str r0, [sp, 0x34] +_08195182: + movs r7, 0 + strh r7, [r5] + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + mov r2, r10 + lsls r1, r2, 2 + adds r0, r1 + ldr r3, =0x00000d24 + adds r0, r3 + ldrh r0, [r0] + lsls r0, 22 + lsrs r0, 22 + bl sub_8190168 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r6, 0 + ldr r4, [sp, 0x34] + mov r9, r4 +_081951AA: + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + mov r4, r9 + add r4, r10 + adds r4, r6 + lsls r4, 1 + ldr r2, =0x00000d64 + adds r0, r2 + adds r0, r4 + ldrh r1, [r0] + ldr r3, =gUnknown_0203BC8C + ldr r0, [r3] + lsls r1, 4 + adds r1, r0 + ldrh r0, [r1] + ldrb r3, [r1, 0xB] + ldrb r1, [r1, 0xC] + str r1, [sp] + ldr r1, [sp, 0x1C] + str r1, [sp, 0x4] + movs r1, 0x32 + mov r2, r8 + bl sub_818F720 + ldr r2, [sp, 0x1C] + ldr r1, [r2, 0x4] + ldrh r0, [r5] + adds r0, r1 + ldr r1, [r2, 0x8] + adds r0, r1 + ldr r1, [r2, 0x10] + adds r0, r1 + ldr r1, [r2, 0x14] + adds r0, r1 + ldr r1, [r2, 0xC] + adds r0, r1 + ldr r1, [r2] + adds r0, r1 + strh r0, [r5] + ldr r3, =gSaveBlock2Ptr + ldr r0, [r3] + ldr r1, =0x00000d64 + adds r0, r1 + adds r0, r4 + ldrh r0, [r0] + ldr r2, =gUnknown_0203BC8C + ldr r1, [r2] + lsls r0, 4 + adds r0, r1 + ldrh r0, [r0] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + ldr r3, =gBaseStats + adds r1, r3 + ldrb r0, [r1, 0x6] + lsls r0, 2 + ldr r4, =gBitTable + adds r0, r4 + ldr r0, [r0] + orrs r7, r0 + ldrb r0, [r1, 0x7] + lsls r0, 2 + adds r0, r4 + ldr r0, [r0] + orrs r7, r0 + adds r6, 0x1 + cmp r6, 0x2 + ble _081951AA + movs r4, 0 + movs r1, 0x1 + movs r6, 0x1F +_0819523A: + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + beq _08195244 + adds r4, 0x1 +_08195244: + asrs r7, 1 + subs r6, 0x1 + cmp r6, 0 + bge _0819523A + movs r1, 0x32 + adds r0, r4, 0 + muls r0, r1 + movs r1, 0x14 + bl __divsi3 + ldrh r1, [r5] + adds r1, r0 + strh r1, [r5] + adds r5, 0x2 + ldr r2, [sp, 0x34] + adds r2, 0x2 + str r2, [sp, 0x34] + movs r3, 0x1 + add r10, r3 + mov r4, r10 + cmp r4, 0xF + ble _08195182 + movs r5, 0 + mov r10, r5 + ldr r7, [sp, 0x18] +_08195276: + mov r6, r10 + adds r6, 0x1 + cmp r6, 0xF + bgt _081952F8 + mov r8, r7 + ldr r5, =0x00000d24 + lsls r0, r6, 1 + ldr r1, [sp, 0x18] + adds r4, r0, r1 +_08195288: + mov r2, r8 + ldrh r1, [r2] + ldrh r0, [r4] + cmp r1, r0 + bcs _081952C4 + mov r0, r10 + adds r1, r6, 0 + ldr r2, [sp, 0x18] + bl sub_818F904 + b _081952F0 + .pool +_081952C4: + cmp r1, r0 + bne _081952F0 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + mov r3, r10 + lsls r0, r3, 2 + adds r0, r1, r0 + adds r0, r5 + ldrh r2, [r0] + lsls r2, 22 + lsls r0, r6, 2 + adds r1, r0 + adds r1, r5 + ldrh r0, [r1] + lsls r0, 22 + cmp r2, r0 + bls _081952F0 + mov r0, r10 + adds r1, r6, 0 + ldr r2, [sp, 0x18] + bl sub_818F904 +_081952F0: + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0xF + ble _08195288 +_081952F8: + adds r7, 0x2 + movs r4, 0x1 + add r10, r4 + mov r5, r10 + cmp r5, 0xE + ble _08195276 + ldr r0, [sp, 0x18] + bl Free + ldr r0, [sp, 0x1C] + bl Free + movs r0, 0 + mov r10, r0 +_08195314: + mov r1, r10 + lsls r0, r1, 24 + lsrs r0, 24 + bl sub_8195438 + movs r2, 0x1 + add r10, r2 + mov r3, r10 + cmp r3, 0x3 + ble _08195314 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r4, =0x00000ca9 + adds r1, r4 + ldrb r2, [r1] + movs r0, 0x4 + negs r0, r0 + ands r0, r2 + ldr r5, [sp, 0x14] + orrs r0, r5 + strb r0, [r1] +_0819533E: + add sp, 0x40 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8194F58 + + thumb_func_start sub_8195358 +sub_8195358: @ 8195358 + push {r4,r5,lr} + lsls r0, 16 + lsrs r3, r0, 16 + movs r2, 0 + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =0x00000d24 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 22 + lsrs r0, 22 + cmp r0, r3 + beq _0819538E + adds r5, r4, 0 + adds r4, r1, 0 +_08195376: + adds r2, 0x1 + cmp r2, 0xF + bgt _0819538E + ldr r0, [r5] + lsls r1, r2, 2 + adds r0, r1 + adds r0, r4 + ldrh r0, [r0] + lsls r0, 22 + lsrs r0, 22 + cmp r0, r3 + bne _08195376 +_0819538E: + adds r0, r2, 0 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8195358 + + thumb_func_start sub_81953A0 +sub_81953A0: @ 81953A0 + push {r4,r5,lr} + lsls r0, 16 + lsrs r3, r0, 16 + movs r2, 0 + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =0x00000d24 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 22 + lsrs r0, 22 + cmp r0, r3 + beq _081953D6 + adds r5, r4, 0 + adds r4, r1, 0 +_081953BE: + adds r2, 0x1 + cmp r2, 0xF + bgt _081953D6 + ldr r0, [r5] + lsls r1, r2, 2 + adds r0, r1 + adds r0, r4 + ldrh r0, [r0] + lsls r0, 22 + lsrs r0, 22 + cmp r0, r3 + bne _081953BE +_081953D6: + adds r0, r2, 0 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81953A0 + + thumb_func_start sub_81953E8 +sub_81953E8: @ 81953E8 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r2, =gUnknown_0860D1A0 + ldr r0, =gUnknown_0860D1C0 + adds r0, r4, r0 + ldrb r0, [r0] + lsrs r0, 1 + lsls r0, 2 + adds r1, r0 + adds r1, r2 + ldrb r0, [r1] + subs r0, 0x10 + lsls r0, 24 + lsrs r0, 24 + mov r1, sp + bl sub_8192F08 + mov r0, sp + ldrb r0, [r0] + cmp r4, r0 + beq _0819542C + mov r0, sp + ldrb r0, [r0] + b _08195430 + .pool +_0819542C: + mov r0, sp + ldrb r0, [r0, 0x1] +_08195430: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81953E8 + + thumb_func_start sub_8195438 +sub_8195438: @ 8195438 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x40 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0xC] + movs r1, 0 + str r1, [sp, 0x10] + movs r5, 0 + movs r1, 0x3 + ldr r0, [sp] + ands r0, r1 + lsls r0, 3 + str r0, [sp, 0x14] +_0819545E: + ldr r2, =gSaveBlock2Ptr + ldr r0, [r2] + lsls r4, r5, 2 + adds r1, r0, r4 + ldr r3, =0x00000d25 + adds r0, r1, r3 + ldrb r0, [r0] + lsls r0, 29 + adds r2, r5, 0x1 + str r2, [sp, 0x24] + cmp r0, 0 + bge _08195478 + b _08195876 +_08195478: + subs r3, 0x1 + adds r0, r1, r3 + ldrh r0, [r0] + lsls r1, r0, 22 + ldr r0, =0xffc00000 + cmp r1, r0 + bne _08195488 + b _08195876 +_08195488: + str r5, [sp, 0x4] + lsrs r1, 22 + ldr r0, [sp] + bl sub_81901A0 + str r0, [sp, 0x8] + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + adds r0, r3, r4 + ldr r1, =0x00000d24 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 22 + ldr r1, =0xff800000 + cmp r0, r1 + bne _08195504 + ldr r2, [sp, 0x8] + cmp r2, 0xFF + beq _08195504 + lsls r2, 2 + adds r1, r3, r2 + ldr r3, =0x00000d25 + adds r1, r3 + ldrb r0, [r1] + movs r3, 0x4 + orrs r0, r3 + strb r0, [r1] + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + adds r1, r2 + ldr r2, =0x00000d25 + adds r1, r2 + ldrb r0, [r1] + subs r3, 0x1D + ands r0, r3 + ldr r2, [sp, 0x14] + orrs r0, r2 + strb r0, [r1] + adds r0, r5, 0 + ldr r1, [sp, 0x8] + ldr r2, [sp] + bl sub_8193ED0 + ldr r3, =gSaveBlock2Ptr + ldr r1, [r3] + ldr r5, [sp, 0x8] + lsls r2, r5, 1 + movs r3, 0xEC + lsls r3, 4 + adds r1, r3 + adds r1, r2 + b _08195874 + .pool +_08195504: + ldr r4, =gSaveBlock2Ptr + ldr r3, [r4] + ldr r0, [sp, 0x8] + lsls r2, r0, 2 + adds r0, r3, r2 + ldr r1, =0x00000d24 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 22 + ldr r1, =0xff800000 + str r2, [sp, 0x30] + cmp r0, r1 + bne _0819557C + ldr r2, [sp, 0x4] + cmp r2, 0xFF + beq _0819557C + lsls r2, 2 + adds r1, r3, r2 + ldr r3, =0x00000d25 + adds r1, r3 + ldrb r0, [r1] + movs r3, 0x4 + orrs r0, r3 + strb r0, [r1] + ldr r1, [r4] + adds r1, r2 + ldr r0, =0x00000d25 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x19 + negs r2, r2 + ands r0, r2 + ldr r3, [sp, 0x14] + orrs r0, r3 + strb r0, [r1] + ldr r0, [sp, 0x8] + ldr r1, [sp, 0x4] + ldr r2, [sp] + bl sub_8193ED0 + ldr r1, [r4] + ldr r3, [sp, 0x4] + lsls r2, r3, 1 + movs r3, 0xEC + lsls r3, 4 + adds r1, r3 + adds r1, r2 + strh r0, [r1] + adds r5, 0x1 + str r5, [sp, 0x24] + b _08195876 + .pool +_0819557C: + adds r5, 0x1 + str r5, [sp, 0x24] + ldr r5, [sp, 0x8] + cmp r5, 0xFF + bne _08195588 + b _08195876 +_08195588: + movs r0, 0 + mov r10, r0 + lsls r1, r5, 1 + str r1, [sp, 0x2C] + ldr r2, [sp, 0x4] + lsls r2, 1 + str r2, [sp, 0x28] + ldr r3, [sp, 0x4] + adds r0, r2, r3 + lsls r0, 1 + mov r9, r0 + adds r0, r1, r5 + lsls r0, 1 + str r0, [sp, 0x18] +_081955A4: + movs r5, 0 + mov r0, r9 + str r0, [sp, 0x38] +_081955AA: + movs r6, 0 + lsls r7, r5, 1 + ldr r4, [sp, 0x18] +_081955B0: + ldr r2, =gSaveBlock2Ptr + ldr r1, [r2] + ldr r3, =0x00000d64 + adds r1, r3 + ldr r2, [sp, 0x38] + adds r0, r1, r2 + ldrh r0, [r0] + ldr r3, =gUnknown_0203BC8C + mov r8, r3 + ldr r2, [r3] + lsls r0, 4 + adds r0, r2 + adds r0, 0x2 + adds r0, r7 + ldrh r0, [r0] + adds r1, r4 + ldrh r1, [r1] + lsls r1, 4 + adds r1, r2 + ldrh r1, [r1] + movs r2, 0x2 + bl sub_818FFC0 + ldr r1, [sp, 0xC] + adds r1, r0 + str r1, [sp, 0xC] + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x2 + ble _081955B0 + adds r5, 0x1 + cmp r5, 0x3 + ble _081955AA + ldr r2, =gSaveBlock2Ptr + ldr r0, [r2] + ldr r3, =0x00000d64 + adds r0, r3 + add r0, r9 + ldrh r0, [r0] + mov r5, r8 + ldr r1, [r5] + lsls r0, 4 + adds r0, r1 + ldrh r2, [r0] + ldr r0, =gBaseStats + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + ldrb r2, [r1, 0x1] + adds r0, r2 + ldrb r2, [r1, 0x2] + adds r0, r2 + ldrb r2, [r1, 0x3] + adds r0, r2 + ldrb r3, [r1, 0x4] + adds r0, r3 + ldrb r1, [r1, 0x5] + adds r0, r1 + movs r1, 0xA + bl __divsi3 + ldr r5, [sp, 0xC] + adds r5, r0 + str r5, [sp, 0xC] + movs r0, 0x2 + add r9, r0 + movs r1, 0x1 + add r10, r1 + mov r2, r10 + cmp r2, 0x2 + ble _081955A4 + bl Random + movs r1, 0x1F + ands r1, r0 + adds r5, r1 + ldr r3, [sp, 0x4] + adds r5, r3 + str r5, [sp, 0xC] + movs r5, 0 + mov r10, r5 + ldr r1, [sp, 0x2C] + ldr r2, [sp, 0x8] + adds r0, r1, r2 + lsls r0, 1 + str r0, [sp, 0x1C] + ldr r5, [sp, 0x28] + adds r0, r5, r3 + lsls r0, 1 + str r0, [sp, 0x20] +_08195668: + movs r5, 0 + mov r0, r10 + lsls r3, r0, 1 + movs r1, 0x1 + add r10, r1 + ldr r2, [sp, 0x1C] + adds r2, r3 + mov r8, r2 +_08195678: + movs r6, 0 + lsls r7, r5, 1 + adds r5, 0x1 + str r5, [sp, 0x3C] + ldr r4, [sp, 0x20] +_08195682: + ldr r5, =gSaveBlock2Ptr + ldr r1, [r5] + ldr r0, =0x00000d64 + adds r1, r0 + mov r2, r8 + adds r0, r1, r2 + ldrh r0, [r0] + ldr r5, =gUnknown_0203BC8C + mov r9, r5 + ldr r2, [r5] + lsls r0, 4 + adds r0, r2 + adds r0, 0x2 + adds r0, r7 + ldrh r0, [r0] + adds r1, r4 + ldrh r1, [r1] + lsls r1, 4 + adds r1, r2 + ldrh r1, [r1] + movs r2, 0x2 + str r3, [sp, 0x34] + bl sub_818FFC0 + ldr r1, [sp, 0x10] + adds r1, r0 + str r1, [sp, 0x10] + adds r4, 0x2 + adds r6, 0x1 + ldr r3, [sp, 0x34] + cmp r6, 0x2 + ble _08195682 + ldr r5, [sp, 0x3C] + cmp r5, 0x3 + ble _08195678 + ldr r2, =gSaveBlock2Ptr + ldr r0, [r2] + ldr r5, [sp, 0x1C] + adds r1, r3, r5 + ldr r2, =0x00000d64 + adds r0, r2 + adds r0, r1 + ldrh r0, [r0] + mov r3, r9 + ldr r1, [r3] + lsls r0, 4 + adds r0, r1 + ldrh r2, [r0] + ldr r0, =gBaseStats + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + ldrb r2, [r1, 0x1] + adds r0, r2 + ldrb r5, [r1, 0x2] + adds r0, r5 + ldrb r2, [r1, 0x3] + adds r0, r2 + ldrb r2, [r1, 0x4] + adds r0, r2 + ldrb r1, [r1, 0x5] + adds r0, r1 + movs r1, 0xA + bl __divsi3 + ldr r3, [sp, 0x10] + adds r3, r0 + str r3, [sp, 0x10] + mov r5, r10 + cmp r5, 0x2 + ble _08195668 + bl Random + movs r1, 0x1F + ands r1, r0 + ldr r0, [sp, 0x10] + adds r0, r1 + ldr r1, [sp, 0x8] + adds r0, r1 + str r0, [sp, 0x10] + ldr r2, [sp, 0xC] + cmp r2, r0 + ble _08195784 + ldr r3, =gSaveBlock2Ptr + ldr r1, [r3] + ldr r5, [sp, 0x30] + adds r1, r5 + ldr r0, =0x00000d25 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + ldr r1, [r3] + adds r1, r5 + ldr r3, =0x00000d25 + adds r1, r3 + ldrb r0, [r1] + movs r5, 0x19 + negs r5, r5 + ands r0, r5 + ldr r2, [sp, 0x14] + orrs r0, r2 + strb r0, [r1] + ldr r0, [sp, 0x4] + ldr r1, [sp, 0x8] + ldr r2, [sp] + bl sub_8193ED0 + ldr r3, =gSaveBlock2Ptr + ldr r1, [r3] + movs r5, 0xEC + lsls r5, 4 + adds r1, r5 + ldr r2, [sp, 0x2C] + adds r1, r2 + b _08195874 + .pool +_08195784: + ldr r3, [sp, 0xC] + ldr r5, [sp, 0x10] + cmp r3, r5 + bge _081957DC + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r3, [sp, 0x4] + lsls r2, r3, 2 + adds r1, r2 + ldr r5, =0x00000d25 + adds r1, r5 + ldrb r0, [r1] + movs r3, 0x4 + orrs r0, r3 + strb r0, [r1] + ldr r5, =gSaveBlock2Ptr + ldr r1, [r5] + adds r1, r2 + ldr r0, =0x00000d25 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x19 + negs r2, r2 + ands r0, r2 + ldr r3, [sp, 0x14] + orrs r0, r3 + strb r0, [r1] + ldr r0, [sp, 0x8] + ldr r1, [sp, 0x4] + ldr r2, [sp] + bl sub_8193ED0 + ldr r1, [r5] + movs r5, 0xEC + lsls r5, 4 + adds r1, r5 + ldr r2, [sp, 0x28] + adds r1, r2 + b _08195874 + .pool +_081957DC: + ldr r3, [sp, 0x4] + ldr r5, [sp, 0x8] + cmp r3, r5 + ble _08195830 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r2, [sp, 0x30] + adds r1, r2 + ldr r3, =0x00000d25 + adds r1, r3 + ldrb r0, [r1] + movs r5, 0x4 + orrs r0, r5 + strb r0, [r1] + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + adds r1, r2 + adds r1, r3 + ldrb r0, [r1] + movs r2, 0x19 + negs r2, r2 + ands r0, r2 + ldr r3, [sp, 0x14] + orrs r0, r3 + strb r0, [r1] + ldr r0, [sp, 0x4] + ldr r1, [sp, 0x8] + ldr r2, [sp] + bl sub_8193ED0 + ldr r5, =gSaveBlock2Ptr + ldr r1, [r5] + movs r2, 0xEC + lsls r2, 4 + adds r1, r2 + ldr r3, [sp, 0x2C] + b _08195872 + .pool +_08195830: + ldr r5, =gSaveBlock2Ptr + ldr r1, [r5] + ldr r0, [sp, 0x4] + lsls r2, r0, 2 + adds r1, r2 + ldr r3, =0x00000d25 + adds r1, r3 + ldrb r0, [r1] + movs r5, 0x4 + orrs r0, r5 + strb r0, [r1] + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + adds r1, r2 + adds r1, r3 + ldrb r0, [r1] + movs r2, 0x19 + negs r2, r2 + ands r0, r2 + ldr r3, [sp, 0x14] + orrs r0, r3 + strb r0, [r1] + ldr r0, [sp, 0x8] + ldr r1, [sp, 0x4] + ldr r2, [sp] + bl sub_8193ED0 + ldr r5, =gSaveBlock2Ptr + ldr r1, [r5] + movs r2, 0xEC + lsls r2, 4 + adds r1, r2 + ldr r3, [sp, 0x28] +_08195872: + adds r1, r3 +_08195874: + strh r0, [r1] +_08195876: + ldr r5, [sp, 0x24] + cmp r5, 0xF + bgt _0819587E + b _0819545E +_0819587E: + add sp, 0x40 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8195438 + + thumb_func_start sub_8195898 +sub_8195898: @ 8195898 + push {r4-r6,lr} + adds r6, r0, 0 + lsls r1, 16 + lsrs r5, r1, 16 + movs r4, 0 + bl sub_8165C40 + ldr r0, =0x000003fe + cmp r5, r0 + bne _081958B8 + adds r0, r6, 0 + bl sub_8195938 + b _08195902 + .pool +_081958B8: + ldr r0, =0x000003ff + cmp r5, r0 + bne _081958DC + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] +_081958C2: + adds r0, r6, r4 + adds r1, r2, r4 + ldrb r1, [r1] + strb r1, [r0] + adds r4, 0x1 + cmp r4, 0x6 + ble _081958C2 + b _081958FC + .pool +_081958DC: + ldr r0, =0x0000012b + cmp r5, r0 + bhi _081958FC + ldr r0, =gUnknown_0203BC88 + ldr r1, [r0] + movs r0, 0x34 + muls r0, r5 + adds r0, r1 + adds r2, r0, 0x4 +_081958EE: + adds r0, r6, r4 + adds r1, r2, r4 + ldrb r1, [r1] + strb r1, [r0] + adds r4, 0x1 + cmp r4, 0x6 + ble _081958EE +_081958FC: + adds r1, r6, r4 + movs r0, 0xFF + strb r0, [r1] +_08195902: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8195898 + + thumb_func_start sub_8195910 +sub_8195910: @ 8195910 + ldr r0, =gTrainers + ldr r1, =0x00007df3 + adds r0, r1 + ldrb r0, [r0] + bx lr + .pool + thumb_func_end sub_8195910 + + thumb_func_start sub_8195924 +sub_8195924: @ 8195924 + ldr r0, =gTrainers + ldr r1, =0x00007df1 + adds r0, r1 + ldrb r0, [r0] + bx lr + .pool + thumb_func_end sub_8195924 + + thumb_func_start sub_8195938 +sub_8195938: @ 8195938 + push {r4,lr} + adds r3, r0, 0 + movs r2, 0 + ldr r4, =gTrainers + TRAINER_TUCKER * 0x28 + 0x4 @ Tucker's name +_08195940: + adds r0, r3, r2 + adds r1, r2, r4 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x6 + ble _08195940 + adds r1, r3, r2 + movs r0, 0xFF + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8195938 + + thumb_func_start sub_8195960 +sub_8195960: @ 8195960 + push {lr} + ldr r1, =gUnknown_0860DE50 + ldr r0, =gSpecialVar_0x8004 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + bx r0 + .pool + thumb_func_end sub_8195960 + + thumb_func_start sub_8195980 +sub_8195980: @ 8195980 + push {r4-r7,lr} + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + lsrs r5, r0, 30 + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + lsrs r7, r0, 16 + ldr r0, [r4] + ldr r2, =0x00000ca8 + adds r0, r2 + movs r6, 0 + strb r6, [r0] + ldr r1, [r4] + adds r2, 0xA + adds r0, r1, r2 + strh r6, [r0] + ldr r0, =0x00000ca9 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r4] + ldr r2, =0x00000ca9 + adds r1, r2 + ldrb r2, [r1] + movs r0, 0x9 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r4, [r4] + ldr r0, =0x00000cdc + adds r3, r4, r0 + ldr r2, =gUnknown_0860DE98 + lsls r1, r5, 2 + lsls r0, r7, 3 + adds r1, r0 + adds r1, r2 + ldr r0, [r3] + ldr r1, [r1] + ands r0, r1 + cmp r0, 0 + bne _081959F2 + lsls r0, r5, 1 + lsls r1, r7, 2 + adds r0, r1 + ldr r2, =0x00000dc8 + adds r1, r4, r2 + adds r1, r0 + strh r6, [r1] +_081959F2: + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + movs r1, 0x4 + ldrsb r1, [r0, r1] + movs r2, 0x5 + ldrsb r2, [r0, r2] + movs r3, 0x1 + negs r3, r3 + movs r0, 0 + bl saved_warp2_set + ldr r0, =gUnknown_02038BCA + strh r6, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8195980 + + thumb_func_start sub_8195A38 +sub_8195A38: @ 8195A38 + push {r4-r7,lr} + ldr r5, =gSaveBlock2Ptr + ldr r0, [r5] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + lsrs r7, r0, 30 + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0x1 + beq _08195A90 + cmp r0, 0x1 + bgt _08195A74 + cmp r0, 0 + beq _08195A7A + b _08195AD0 + .pool +_08195A74: + cmp r0, 0x2 + beq _08195AB0 + b _08195AD0 +_08195A7A: + ldr r0, =gScriptResult + ldr r1, [r5] + ldr r2, =0x00000dc6 + adds r1, r2 + ldrh r1, [r1] + strh r1, [r0] + b _08195AD0 + .pool +_08195A90: + ldr r3, =gScriptResult + ldr r0, [r5] + lsls r1, r7, 1 + lsls r2, r6, 2 + adds r1, r2 + ldr r2, =0x00000dc8 + adds r0, r2 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r3] + b _08195AD0 + .pool +_08195AB0: + ldr r4, =gScriptResult + ldr r2, [r5] + ldr r0, =0x00000cdc + adds r2, r0 + ldr r3, =gUnknown_0860DE98 + lsls r0, r7, 2 + lsls r1, r6, 3 + adds r0, r1 + adds r0, r3 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + strh r0, [r4] +_08195AD0: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8195A38 + + thumb_func_start sub_8195AE4 +sub_8195AE4: @ 8195AE4 + push {r4-r6,lr} + ldr r6, =gSaveBlock2Ptr + ldr r0, [r6] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + lsrs r5, r0, 30 + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0x1 + beq _08195B3C + cmp r0, 0x1 + bgt _08195B20 + cmp r0, 0 + beq _08195B26 + b _08195BA0 + .pool +_08195B20: + cmp r0, 0x2 + beq _08195B5C + b _08195BA0 +_08195B26: + ldr r0, [r6] + ldr r1, =gSpecialVar_0x8006 + ldrh r1, [r1] + ldr r2, =0x00000dc6 + adds r0, r2 + strh r1, [r0] + b _08195BA0 + .pool +_08195B3C: + ldr r2, [r6] + lsls r0, r5, 1 + lsls r1, r4, 2 + adds r0, r1 + ldr r1, =0x00000dc8 + adds r2, r1 + adds r2, r0 + ldr r0, =gSpecialVar_0x8006 + ldrh r0, [r0] + strh r0, [r2] + b _08195BA0 + .pool +_08195B5C: + ldr r0, =gSpecialVar_0x8006 + ldrh r0, [r0] + cmp r0, 0 + beq _08195B88 + ldr r2, [r6] + ldr r0, =0x00000cdc + adds r2, r0 + ldr r3, =gUnknown_0860DE98 + lsls r1, r5, 2 + lsls r0, r4, 3 + adds r1, r0 + adds r1, r3 + ldr r0, [r2] + ldr r1, [r1] + orrs r0, r1 + b _08195B9E + .pool +_08195B88: + ldr r2, [r6] + ldr r1, =0x00000cdc + adds r2, r1 + ldr r3, =gUnknown_0860DEA8 + lsls r1, r5, 2 + lsls r0, r4, 3 + adds r1, r0 + adds r1, r3 + ldr r0, [r2] + ldr r1, [r1] + ands r0, r1 +_08195B9E: + str r0, [r2] +_08195BA0: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8195AE4 + + thumb_func_start sub_8195BB0 +sub_8195BB0: @ 8195BB0 + push {r4,lr} + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + ldr r1, =gSaveBlock2Ptr + ldr r2, [r1] + ldr r3, =0x00000ca9 + adds r1, r2, r3 + ldrb r1, [r1] + lsls r1, 30 + lsrs r1, 29 + lsrs r0, 14 + adds r1, r0 + ldr r0, =0x00000dc8 + adds r2, r0 + adds r2, r1 + ldrh r0, [r2] + cmp r0, 0x31 + bhi _08195C00 + ldr r4, =gScriptResult + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + strh r0, [r4] + b _08195C16 + .pool +_08195C00: + cmp r0, 0x62 + bhi _08195C10 + ldr r1, =gScriptResult + movs r0, 0x3 + b _08195C14 + .pool +_08195C10: + ldr r1, =gScriptResult + movs r0, 0x4 +_08195C14: + strh r0, [r1] +_08195C16: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8195BB0 + + thumb_func_start sub_8195C20 +sub_8195C20: @ 8195C20 + push {r4,lr} + ldr r4, =gUnknown_02038BCA + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xFF + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + lsls r1, r0, 2 + adds r1, r0 + lsrs r1, 6 + strh r1, [r4] + ldrh r0, [r4] + movs r1, 0 + bl sub_8162614 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8195C20 + + thumb_func_start sub_8195C50 +sub_8195C50: @ 8195C50 + push {lr} + ldr r3, =gUnknown_02038BCA + ldrh r1, [r3] + ldr r0, =0x0000012b + cmp r1, r0 + bhi _08195C6C + ldr r2, =gUnknown_0203BC88 + movs r0, 0x34 + muls r1, r0 + ldr r0, [r2] + adds r0, r1 + adds r0, 0xC + bl ConvertBattleFrontierTrainerSpeechToString +_08195C6C: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8195C50 + + thumb_func_start sub_8195C7C +sub_8195C7C: @ 8195C7C + push {r4-r7,lr} + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + lsrs r7, r0, 30 + ldr r0, =0x000040ce + bl VarGet + lsls r0, 24 + ldr r4, [r4] + lsls r1, r7, 1 + lsrs r5, r0, 22 + adds r1, r5 + ldr r3, =0x00000dc8 + adds r6, r4, r3 + adds r3, r6, r1 + ldrh r2, [r3] + ldr r0, =0x0000270e + cmp r2, r0 + bhi _08195CCA + adds r2, 0x1 + strh r2, [r3] + movs r3, 0xDD + lsls r3, 4 + adds r0, r4, r3 + adds r1, r0, r1 + adds r0, r5, 0 + ldrh r3, [r1] + cmp r7, r3 + bls _08195CC0 + adds r0, 0x2 +_08195CC0: + adds r0, r6, r0 + ldrh r0, [r0] + cmp r0, 0 + beq _08195CCA + strh r2, [r1] +_08195CCA: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8195C7C + + thumb_func_start sub_8195CE4 +sub_8195CE4: @ 8195CE4 + push {r4,lr} + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =gSpecialVar_0x8005 + ldrh r1, [r1] + ldr r2, =0x00000ca8 + adds r0, r2 + strb r1, [r0] + movs r0, 0x80 + lsls r0, 7 + movs r1, 0 + bl VarSet + ldr r1, [r4] + ldr r0, =0x00000ca9 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + bl sub_81A4C30 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8195CE4 + + thumb_func_start sub_8195D28 +sub_8195D28: @ 8195D28 + push {r4,r5,lr} + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + ldr r4, =gSaveBlock2Ptr + ldr r2, [r4] + ldr r3, =0x00000ca9 + adds r1, r2, r3 + ldrb r1, [r1] + lsls r1, 30 + lsrs r1, 29 + lsrs r0, 14 + adds r1, r0 + ldr r0, =0x00000dc8 + adds r2, r0 + adds r2, r1 + ldrh r0, [r2] + cmp r0, 0x29 + bls _08195D88 + bl Random + ldr r4, [r4] + ldr r5, =gUnknown_0860DE84 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x9 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 15 + adds r0, r5 + ldrh r0, [r0] + ldr r1, =0x00000dc6 + adds r4, r1 + b _08195DA6 + .pool +_08195D88: + bl Random + ldr r4, [r4] + ldr r5, =gUnknown_0860DE78 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x6 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 15 + adds r0, r5 + ldrh r0, [r0] + ldr r3, =0x00000dc6 + adds r4, r3 +_08195DA6: + strh r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8195D28 + + thumb_func_start sub_8195DB8 +sub_8195DB8: @ 8195DB8 + push {r4,r5,lr} + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =0x00000dc6 + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x1 + bl AddBagItem + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x1 + bne _08195E00 + ldr r0, [r4] + ldr r1, =0x00000dc6 + adds r0, r1 + ldrh r0, [r0] + ldr r1, =gStringVar1 + bl CopyItemName + ldr r0, [r4] + ldr r1, =0x00000dc6 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + ldr r0, =gScriptResult + strh r5, [r0] + b _08195E06 + .pool +_08195E00: + ldr r1, =gScriptResult + movs r0, 0 + strh r0, [r1] +_08195E06: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8195DB8 + + thumb_func_start sub_8195E10 +sub_8195E10: @ 8195E10 + push {lr} + bl RtcCalcLocalTime + ldr r0, =gLocalTime + bl sub_8195E34 + ldr r1, =gUnknown_0203CD80 + adds r0, 0xA + str r0, [r1] + movs r0, 0 + strb r0, [r1, 0x6] + pop {r0} + bx r0 + .pool + thumb_func_end sub_8195E10 + + thumb_func_start sub_8195E34 +sub_8195E34: @ 8195E34 + adds r3, r0, 0 + movs r1, 0 + ldrsh r0, [r3, r1] + lsls r1, r0, 1 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + movs r2, 0x2 + ldrsb r2, [r3, r2] + lsls r1, r2, 4 + subs r1, r2 + lsls r1, 2 + adds r0, r1 + movs r1, 0x3 + ldrsb r1, [r3, r1] + adds r0, r1 + bx lr + thumb_func_end sub_8195E34 + + thumb_func_start sub_8195E58 +sub_8195E58: @ 8195E58 + push {lr} + bl RtcCalcLocalTime + ldr r0, =gLocalTime + bl sub_8195E34 + adds r1, r0, 0 + ldr r2, =gUnknown_0203CD80 + ldr r0, [r2] + cmp r0, r1 + bhi _08195E74 + subs r0, r1, r0 + cmp r0, 0x9 + bls _08195E84 +_08195E74: + str r1, [r2] + movs r0, 0x1 + b _08195E86 + .pool +_08195E84: + movs r0, 0 +_08195E86: + pop {r1} + bx r1 + thumb_func_end sub_8195E58 + + thumb_func_start sub_8195E8C +sub_8195E8C: @ 8195E8C + push {r4,r5,lr} + movs r5, 0x1 + ldr r4, =gPlayerParty + adds r0, r4, 0 + movs r1, 0x6 + bl GetMonData + cmp r0, 0 + bne _08195EAE + adds r0, r4, 0 + bl GetMonAbility + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1F + bne _08195EAE + movs r5, 0x2 +_08195EAE: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + lsls r1, r5, 1 + adds r1, r5 + cmp r0, r1 + blt _08195ED0 + movs r0, 0 + b _08195ED2 + .pool +_08195ED0: + movs r0, 0x1 +_08195ED2: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8195E8C + + thumb_func_start sub_8195ED8 +sub_8195ED8: @ 8195ED8 + push {r4,lr} + ldr r4, =gUnknown_02037318 + ldrb r0, [r4, 0x17] + bl is_light_level_1_2_3_or_6 + lsls r0, 24 + cmp r0, 0 + beq _08195F30 + ldrb r0, [r4, 0x14] + cmp r0, 0x39 + beq _08195F30 + cmp r0, 0xE + bne _08195F0E + movs r0, 0xF9 + lsls r0, 2 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08195F0E + movs r0, 0xDC + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _08195F30 +_08195F0E: + ldr r0, =gUnknown_02037318 + ldrb r0, [r0, 0x14] + cmp r0, 0x38 + bne _08195F38 + movs r0, 0xCF + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08195F38 + movs r0, 0x8B + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _08195F38 +_08195F30: + movs r0, 0 + b _08195F3A + .pool +_08195F38: + movs r0, 0x1 +_08195F3A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8195ED8 + + thumb_func_start sub_8195F40 +sub_8195F40: @ 8195F40 + push {lr} + ldr r1, =gUnknown_0203CD80 + ldrb r0, [r1, 0x6] + adds r0, 0x1 + strb r0, [r1, 0x6] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x9 + bhi _08195F5C + movs r0, 0 + b _08195F62 + .pool +_08195F5C: + movs r0, 0 + strb r0, [r1, 0x6] + movs r0, 0x1 +_08195F62: + pop {r1} + bx r1 + thumb_func_end sub_8195F40 + + thumb_func_start sub_8195F68 +sub_8195F68: @ 8195F68 + push {r4,lr} + bl sub_8195FCC + adds r4, r0, 0 + cmp r4, 0 + beq _08195FB8 + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r4, 0 + bl __umodsi3 + bl sub_8195FF8 + ldr r2, =gUnknown_0203CD80 + movs r1, 0 + strh r0, [r2, 0x4] + strb r1, [r2, 0x7] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x4E + beq _08195FB8 + ldrh r0, [r2, 0x4] + bl sub_8196844 + adds r4, r0, 0 + bl sub_819672C + ldr r1, =gUnknown_02037318 + lsls r0, 16 + lsrs r0, 16 + ldrb r1, [r1, 0x14] + cmp r0, r1 + bne _08195FC4 + adds r0, r4, 0 + bl sub_8196710 + cmp r0, 0 + bne _08195FC4 +_08195FB8: + movs r0, 0 + b _08195FC6 + .pool +_08195FC4: + movs r0, 0x1 +_08195FC6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8195F68 + + thumb_func_start sub_8195FCC +sub_8195FCC: @ 8195FCC + push {r4,r5,lr} + movs r4, 0 + movs r5, 0 +_08195FD2: + movs r1, 0xAE + lsls r1, 1 + adds r0, r4, r1 + lsls r0, 16 + lsrs r0, 16 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _08195FE8 + adds r5, 0x1 +_08195FE8: + adds r4, 0x1 + cmp r4, 0x3F + bls _08195FD2 + adds r0, r5, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8195FCC + + thumb_func_start sub_8195FF8 +sub_8195FF8: @ 8195FF8 + push {r4-r6,lr} + adds r5, r0, 0 + movs r4, 0 + ldr r6, =gUnknown_085500A4 +_08196000: + movs r1, 0xAE + lsls r1, 1 + adds r0, r4, r1 + lsls r0, 16 + lsrs r0, 16 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _08196022 + cmp r5, 0 + bne _08196020 + ldrh r0, [r6] + b _0819602C + .pool +_08196020: + subs r5, 0x1 +_08196022: + adds r6, 0x10 + adds r4, 0x1 + cmp r4, 0x3F + bls _08196000 + movs r0, 0x4E +_0819602C: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8195FF8 + + thumb_func_start sub_8196034 +sub_8196034: @ 8196034 + push {lr} + ldr r0, =0x0000012f + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _08196078 + bl sub_8195F40 + cmp r0, 0 + beq _08196078 + bl sub_8195E58 + cmp r0, 0 + beq _08196078 + bl sub_8195E8C + cmp r0, 0 + beq _08196078 + bl sub_8195ED8 + cmp r0, 0 + beq _08196078 + bl sub_8195F68 + cmp r0, 0 + beq _08196078 + bl task_prev_quest + movs r0, 0x1 + b _0819607A + .pool +_08196078: + movs r0, 0 +_0819607A: + pop {r1} + bx r1 + thumb_func_end sub_8196034 + + thumb_func_start sub_8196080 +sub_8196080: @ 8196080 + push {lr} + ldr r1, =gUnknown_0203CD80 + movs r0, 0x1 + strb r0, [r1, 0x7] + bl task_prev_quest + pop {r0} + bx r0 + .pool + thumb_func_end sub_8196080 + + thumb_func_start sub_8196094 +sub_8196094: @ 8196094 + push {lr} + ldr r0, =sub_81960E0 + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .pool + thumb_func_end sub_8196094 + + thumb_func_start task_prev_quest +task_prev_quest: @ 81960A8 + push {lr} + ldr r0, =gUnknown_0203CD80 + ldrb r0, [r0, 0x7] + cmp r0, 0 + bne _081960C2 + bl script_env_2_enable + bl player_bitmagic + bl sub_808B864 + bl sub_808BCF4 +_081960C2: + ldr r0, =0x00000107 + bl PlaySE + ldr r0, =sub_81960E0 + movs r1, 0x1 + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end task_prev_quest + + thumb_func_start sub_81960E0 +sub_81960E0: @ 81960E0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + ldr r1, =gUnknown_0860EF78 + movs r2, 0 + ldrsh r0, [r4, r2] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r5, 0 + bl _call_via_r1 + cmp r0, 0 + beq _0819611E + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + movs r1, 0 + strh r1, [r4, 0x2] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7 + bls _0819611E + adds r0, r5, 0 + bl DestroyTask +_0819611E: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81960E0 + + thumb_func_start sub_819612C +sub_819612C: @ 819612C + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + adds r6, r4, 0 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r5, r0, r1 + ldr r0, =gUnknown_0860EF98 + bl AddWindow + strh r0, [r5, 0x4] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xFF + bne _0819615C + adds r0, r4, 0 + b _081961E0 + .pool +_0819615C: + ldr r1, =gUnknown_0860EA6C + movs r2, 0x80 + lsls r2, 1 + movs r3, 0x9C + lsls r3, 2 + movs r0, 0 + bl LoadBgTiles + lsls r0, 16 + ldr r1, =0xffff0000 + cmp r0, r1 + bne _08196188 + ldrb r0, [r5, 0x4] + bl RemoveWindow + adds r0, r4, 0 + b _081961E0 + .pool +_08196188: + ldr r1, =gUnknown_0860EB8C + ldr r3, =0x00000279 + movs r0, 0 + str r0, [sp] + movs r2, 0 + bl decompress_and_copy_tile_data_to_vram + cmp r0, 0 + beq _081961D8 + ldrb r0, [r5, 0x4] + movs r1, 0x88 + bl FillWindowPixelBuffer + ldr r0, =gUnknown_0860EA4C + movs r1, 0xE0 + movs r2, 0x20 + bl LoadPalette + ldr r0, =gUnknown_0860EB6C + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + ldr r1, =0xffffe000 + movs r0, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x1 + b _081961E6 + .pool +_081961D8: + ldrb r0, [r5, 0x4] + bl RemoveWindow + adds r0, r6, 0 +_081961E0: + bl DestroyTask + movs r0, 0 +_081961E6: + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_819612C + + thumb_func_start sub_81961F0 +sub_81961F0: @ 81961F0 + push {r4,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r4, r1, r0 + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _08196268 + ldrb r0, [r4, 0x4] + bl PutWindowTilemap + movs r1, 0x4 + ldrsh r0, [r4, r1] + movs r1, 0x9C + lsls r1, 2 + movs r2, 0xE + bl sub_819645C + ldr r1, =0x0000f279 + movs r0, 0x4 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0x1 + str r0, [sp, 0xC] + movs r0, 0 + movs r2, 0x1 + movs r3, 0xF + bl WriteSequenceToBgTilemapBuffer + ldr r0, =sub_8196694 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xA] + ldrb r0, [r4, 0x4] + movs r1, 0x2 + bl CopyWindowToVram + movs r0, 0 + bl CopyBgTilemapBufferToVram + movs r0, 0x1 + b _0819626A + .pool +_08196268: + movs r0, 0 +_0819626A: + add sp, 0x10 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81961F0 + + thumb_func_start sub_8196274 +sub_8196274: @ 8196274 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r4, r1, r0 + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _08196298 + movs r0, 0 + b _081962A4 + .pool +_08196298: + movs r1, 0x4 + ldrsh r0, [r4, r1] + ldr r1, =gUnknown_0860EF70 + bl sub_81965D8 + movs r0, 0x1 +_081962A4: + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8196274 + + thumb_func_start sub_81962B0 +sub_81962B0: @ 81962B0 + push {lr} + movs r1, 0xC0 + lsls r1, 3 + movs r0, 0 + movs r2, 0x1 + bl ChangeBgY + cmp r0, 0 + bge _081962C6 + movs r0, 0 + b _081962D2 +_081962C6: + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x1 +_081962D2: + pop {r1} + bx r1 + thumb_func_end sub_81962B0 + + thumb_func_start sub_81962D8 +sub_81962D8: @ 81962D8 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r4, r1, r0 + movs r1, 0x4 + ldrsh r0, [r4, r1] + bl sub_8196648 + cmp r0, 0 + bne _08196328 + ldrb r0, [r4, 0x4] + movs r1, 0x88 + bl FillWindowPixelBuffer + ldr r1, =gUnknown_0203CD80 + ldrb r0, [r1, 0x7] + cmp r0, 0 + bne _0819630C + ldrh r0, [r1, 0x4] + ldr r1, =gStringVar4 + bl sub_81967AC +_0819630C: + movs r1, 0x4 + ldrsh r0, [r4, r1] + ldr r1, =gStringVar4 + bl sub_81965D8 + movs r0, 0x1 + b _0819632A + .pool +_08196328: + movs r0, 0 +_0819632A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81962D8 + + thumb_func_start sub_8196330 +sub_8196330: @ 8196330 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r4, r1, r0 + movs r1, 0x4 + ldrsh r0, [r4, r1] + bl sub_8196648 + cmp r0, 0 + bne _08196388 + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + bne _08196388 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _08196388 + ldrb r0, [r4, 0x4] + movs r1, 0x88 + bl FillWindowPixelBuffer + ldrb r0, [r4, 0x4] + movs r1, 0x2 + bl CopyWindowToVram + movs r0, 0x84 + lsls r0, 1 + bl PlaySE + movs r0, 0x1 + b _0819638A + .pool +_08196388: + movs r0, 0 +_0819638A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8196330 + + thumb_func_start sub_8196390 +sub_8196390: @ 8196390 + push {r4,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r4, r1, r0 + movs r1, 0xC0 + lsls r1, 3 + movs r0, 0 + movs r2, 0x2 + bl ChangeBgY + ldr r1, =0xffffe000 + cmp r0, r1 + ble _081963C0 + movs r0, 0 + b _081963E8 + .pool +_081963C0: + movs r0, 0x1E + str r0, [sp] + movs r0, 0x6 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0xE + bl FillBgTilemapBufferRect_Palette0 + ldrb r0, [r4, 0xA] + bl DestroyTask + ldrb r0, [r4, 0x4] + bl RemoveWindow + movs r0, 0 + bl CopyBgTilemapBufferToVram + movs r0, 0x1 +_081963E8: + add sp, 0x8 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8196390 + + thumb_func_start sub_81963F0 +sub_81963F0: @ 81963F0 + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _08196454 + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + bne _08196454 + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + ldr r0, =gUnknown_0203CD80 + ldrb r0, [r0, 0x7] + cmp r0, 0 + bne _08196446 + bl sub_81973A4 + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + bl GetFieldObjectIdByLocalIdAndMap + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02037350 + adds r0, r1 + bl FieldObjectClearAnimIfSpecialAnimFinished + bl sub_80D338C + bl sub_809757C + bl script_env_2_disable +_08196446: + movs r0, 0x1 + b _08196456 + .pool +_08196454: + movs r0, 0 +_08196456: + pop {r1} + bx r1 + thumb_func_end sub_81963F0 + + thumb_func_start sub_819645C +sub_819645C: @ 819645C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + adds r4, r0, 0 + adds r5, r1, 0 + adds r7, r2, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + movs r1, 0 + bl GetWindowAttribute + mov r9, r0 + adds r0, r4, 0 + movs r1, 0x1 + bl GetWindowAttribute + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r1, 0x2 + bl GetWindowAttribute + str r0, [sp, 0xC] + adds r0, r4, 0 + movs r1, 0x3 + bl GetWindowAttribute + adds r6, r0, 0 + adds r0, r4, 0 + movs r1, 0x4 + bl GetWindowAttribute + str r0, [sp, 0x10] + mov r0, r9 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r1, 0xA + bl GetBgAttribute + lsls r0, 16 + lsrs r0, 16 + adds r5, r0 + lsls r7, 12 + movs r1, 0xF0 + lsls r1, 8 + adds r0, r1, 0 + ands r7, r0 + adds r1, r7, 0 + orrs r1, r5 + lsls r1, 16 + lsrs r1, 16 + ldr r2, [sp, 0x8] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + mov r10, r2 + ldr r4, [sp, 0xC] + subs r4, 0x1 + lsls r4, 24 + lsrs r4, 24 + movs r3, 0x1 + mov r8, r3 + str r3, [sp] + str r3, [sp, 0x4] + mov r0, r9 + adds r3, r4, 0 + bl FillBgTilemapBufferRect_Palette0 + adds r1, r5, 0x1 + orrs r1, r7 + lsls r1, 16 + lsrs r1, 16 + ldr r0, [sp, 0x8] + lsls r2, r0, 24 + lsrs r2, 24 + str r2, [sp, 0x14] + lsls r0, r6, 24 + lsrs r0, 24 + str r0, [sp, 0x18] + str r0, [sp] + mov r2, r8 + str r2, [sp, 0x4] + mov r0, r9 + ldr r2, [sp, 0x14] + adds r3, r4, 0 + bl FillBgTilemapBufferRect_Palette0 + adds r1, r5, 0x2 + orrs r1, r7 + lsls r1, 16 + lsrs r1, 16 + ldr r3, [sp, 0x8] + adds r0, r3, r6 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x1C] + mov r0, r8 + str r0, [sp] + str r0, [sp, 0x4] + mov r0, r9 + ldr r2, [sp, 0x1C] + adds r3, r4, 0 + bl FillBgTilemapBufferRect_Palette0 + adds r1, r5, 0x3 + orrs r1, r7 + lsls r1, 16 + lsrs r1, 16 + ldr r2, [sp, 0xC] + lsls r6, r2, 24 + lsrs r6, 24 + mov r3, r8 + str r3, [sp] + ldr r0, [sp, 0x10] + lsls r4, r0, 24 + lsrs r4, 24 + str r4, [sp, 0x4] + mov r0, r9 + mov r2, r10 + adds r3, r6, 0 + bl FillBgTilemapBufferRect_Palette0 + adds r1, r5, 0x4 + orrs r1, r7 + lsls r1, 16 + lsrs r1, 16 + mov r2, r8 + str r2, [sp] + str r4, [sp, 0x4] + mov r0, r9 + ldr r2, [sp, 0x1C] + adds r3, r6, 0 + bl FillBgTilemapBufferRect_Palette0 + adds r1, r5, 0x5 + orrs r1, r7 + lsls r1, 16 + lsrs r1, 16 + ldr r3, [sp, 0xC] + ldr r2, [sp, 0x10] + adds r0, r3, r2 + lsls r0, 24 + lsrs r4, r0, 24 + mov r3, r8 + str r3, [sp] + str r3, [sp, 0x4] + mov r0, r9 + mov r2, r10 + adds r3, r4, 0 + bl FillBgTilemapBufferRect_Palette0 + adds r1, r5, 0x6 + orrs r1, r7 + lsls r1, 16 + lsrs r1, 16 + ldr r0, [sp, 0x18] + str r0, [sp] + mov r2, r8 + str r2, [sp, 0x4] + mov r0, r9 + ldr r2, [sp, 0x14] + adds r3, r4, 0 + bl FillBgTilemapBufferRect_Palette0 + adds r5, 0x7 + orrs r5, r7 + lsls r5, 16 + lsrs r5, 16 + mov r3, r8 + str r3, [sp] + str r3, [sp, 0x4] + mov r0, r9 + adds r1, r5, 0 + ldr r2, [sp, 0x1C] + adds r3, r4, 0 + bl FillBgTilemapBufferRect_Palette0 + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_819645C + + thumb_func_start sub_81965D8 +sub_81965D8: @ 81965D8 + push {lr} + sub sp, 0x10 + str r1, [sp] + mov r1, sp + movs r3, 0 + strb r0, [r1, 0x4] + mov r0, sp + movs r1, 0x1 + strb r1, [r0, 0x5] + movs r2, 0x20 + strb r2, [r0, 0x6] + strb r1, [r0, 0x7] + strb r2, [r0, 0x8] + strb r1, [r0, 0x9] + strb r3, [r0, 0xA] + strb r3, [r0, 0xB] + mov r3, sp + ldrb r2, [r3, 0xC] + subs r1, 0x11 + adds r0, r1, 0 + ands r0, r2 + strb r0, [r3, 0xC] + mov r2, sp + movs r3, 0xF + movs r0, 0xA0 + strb r0, [r2, 0xC] + ldrb r0, [r2, 0xD] + ands r1, r0 + movs r0, 0x8 + orrs r1, r0 + strb r1, [r2, 0xD] + ands r1, r3 + movs r0, 0xE0 + orrs r1, r0 + strb r1, [r2, 0xD] + ldr r2, =gTextFlags + ldrb r1, [r2] + movs r0, 0x3 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + bl sav2_get_text_speed + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, sp + movs r2, 0 + bl AddTextPrinter + add sp, 0x10 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81965D8 + + thumb_func_start sub_8196648 +sub_8196648: @ 8196648 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gMain + ldrh r1, [r0, 0x2C] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0819666C + ldr r0, =gTextFlags + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + b _08196678 + .pool +_0819666C: + ldr r2, =gTextFlags + ldrb r1, [r2] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_08196678: + bl RunTextPrinters + lsls r0, r4, 24 + lsrs r0, 24 + bl IsTextPrinterActive + lsls r0, 16 + lsrs r0, 16 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8196648 + + thumb_func_start sub_8196694 +sub_8196694: @ 8196694 + push {lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r2, r1, r0 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _081966FC + movs r1, 0 + strh r1, [r2] + ldrh r0, [r2, 0x2] + adds r0, 0x1 + strh r0, [r2, 0x2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _081966C8 + strh r1, [r2, 0x2] +_081966C8: + movs r0, 0x2 + ldrsh r1, [r2, r0] + lsls r1, 4 + ldr r0, =0x00000279 + adds r1, r0 + strh r1, [r2, 0x4] + ldr r2, =0xfffff000 + adds r0, r2, 0 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x4 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0x1 + str r0, [sp, 0xC] + movs r0, 0 + movs r2, 0x1 + movs r3, 0xF + bl WriteSequenceToBgTilemapBuffer + movs r0, 0 + bl CopyBgTilemapBufferToVram +_081966FC: + add sp, 0x10 + pop {r0} + bx r0 + .pool + thumb_func_end sub_8196694 + + thumb_func_start sub_8196710 +sub_8196710: @ 8196710 + ldr r1, =gSaveBlock1Ptr + ldr r1, [r1] + ldr r2, =0x000009ca + adds r1, r2 + adds r1, r0 + ldrb r1, [r1] + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + bx lr + .pool + thumb_func_end sub_8196710 + + thumb_func_start sub_819672C +sub_819672C: @ 819672C + push {lr} + ldr r1, =gUnknown_085500A4 + lsls r0, 4 + adds r0, r1 + ldrh r2, [r0, 0xA] + ldrh r1, [r0, 0xC] + adds r0, r2, 0 + bl get_mapheader_by_bank_and_number + ldrb r0, [r0, 0x14] + pop {r1} + bx r1 + .pool + thumb_func_end sub_819672C + + thumb_func_start sub_8196748 +sub_8196748: @ 8196748 + push {r4-r6,lr} + movs r5, 0 + movs r6, 0 + ldr r4, =gUnknown_085500A4 +_08196750: + ldrh r0, [r4] + bl trainer_flag_check + lsls r0, 24 + cmp r0, 0 + beq _0819675E + adds r6, 0x1 +_0819675E: + adds r4, 0x10 + adds r5, 0x1 + cmp r5, 0x3F + bls _08196750 + adds r0, r6, 0 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8196748 + + thumb_func_start sub_8196774 +sub_8196774: @ 8196774 + push {r4-r7,lr} + adds r7, r0, 0 + movs r4, 0 + movs r6, 0 + ldr r5, =gUnknown_085500A4 +_0819677E: + ldrh r0, [r5] + bl trainer_flag_check + lsls r0, 24 + cmp r0, 0 + beq _0819679A + cmp r6, r7 + bne _08196798 + adds r0, r4, 0 + b _081967A4 + .pool +_08196798: + adds r6, 0x1 +_0819679A: + adds r5, 0x10 + adds r4, 0x1 + cmp r4, 0x4D + bls _0819677E + movs r0, 0x4E +_081967A4: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8196774 + + thumb_func_start sub_81967AC +sub_81967AC: @ 81967AC + push {r4-r7,lr} + adds r6, r1, 0 + movs r7, 0 + bl sub_8196844 + adds r5, r0, 0 + ldr r0, =gUnknown_0203CD88 + strh r7, [r0] + adds r0, r5, 0 + bl sub_8196710 + cmp r0, 0 + beq _081967EC + adds r0, r5, 0 + bl sub_819672C + ldr r1, =gUnknown_02037318 + lsls r0, 16 + lsrs r0, 16 + ldrb r1, [r1, 0x14] + cmp r0, r1 + bne _081967EC + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_8196864 + b _08196830 + .pool +_081967EC: + adds r0, r5, 0 + bl sub_8196D74 + cmp r0, 0 + beq _0819680A + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_8196890 + adds r4, r0, 0 + movs r7, 0x1 + adds r0, r5, 0 + bl sub_80B1E94 + b _08196832 +_0819680A: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + beq _08196828 + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_81968BC + b _08196830 +_08196828: + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_8196910 +_08196830: + adds r4, r0, 0 +_08196832: + adds r0, r5, 0 + adds r1, r4, 0 + adds r2, r6, 0 + bl sub_81969E0 + adds r0, r7, 0 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81967AC + + thumb_func_start sub_8196844 +sub_8196844: @ 8196844 + push {lr} + adds r3, r0, 0 + movs r2, 0 + ldr r1, =gUnknown_0860DEB8 +_0819684C: + ldrh r0, [r1] + cmp r0, r3 + beq _0819685C + adds r1, 0x14 + adds r2, 0x1 + b _0819684C + .pool +_0819685C: + adds r0, r2, 0 + pop {r1} + bx r1 + thumb_func_end sub_8196844 + + thumb_func_start sub_8196864 +sub_8196864: @ 8196864 + ldr r2, =gUnknown_0860DEB8 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r1, [r1, 0xE] + movs r2, 0xFF + lsrs r0, r1, 8 + subs r0, 0x1 + ands r1, r2 + subs r1, 0x1 + ldr r2, =gUnknown_0860EA2C + lsls r0, 2 + adds r0, r2 + lsls r1, 3 + ldr r0, [r0] + adds r0, r1 + bx lr + .pool + thumb_func_end sub_8196864 + + thumb_func_start sub_8196890 +sub_8196890: @ 8196890 + ldr r2, =gUnknown_0860DEB8 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r1, [r1, 0x10] + movs r2, 0xFF + lsrs r0, r1, 8 + subs r0, 0x1 + ands r1, r2 + subs r1, 0x1 + ldr r2, =gUnknown_0860EA2C + lsls r0, 2 + adds r0, r2 + lsls r1, 3 + ldr r0, [r0] + adds r0, r1 + bx lr + .pool + thumb_func_end sub_8196890 + + thumb_func_start sub_81968BC +sub_81968BC: @ 81968BC + push {r4,lr} + adds r4, r0, 0 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 16 + ldr r2, =gUnknown_0860DEB8 + lsrs r0, 15 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 2 + adds r0, r1 + adds r2, 0x4 + adds r0, r2 + ldrh r4, [r0] + cmp r4, 0 + bne _081968EC + movs r0, 0 + bl SpriteCallbackDummy +_081968EC: + movs r1, 0xFF + lsrs r0, r4, 8 + subs r0, 0x1 + ands r4, r1 + subs r1, r4, 0x1 + ldr r2, =gUnknown_0860EA20 + lsls r0, 2 + adds r0, r2 + lsls r1, 3 + ldr r0, [r0] + adds r0, r1 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81968BC + + thumb_func_start sub_8196910 +sub_8196910: @ 8196910 + push {r4-r7,lr} + sub sp, 0x4 + adds r6, r0, 0 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _081969AC + movs r5, 0 + movs r4, 0 + lsls r7, r6, 2 +_0819692C: + lsls r0, r4, 16 + lsrs r0, 16 + mov r1, sp + bl sub_8196E04 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bls _08196940 + adds r5, 0x1 +_08196940: + adds r4, 0x1 + cmp r4, 0x6 + ble _0819692C + cmp r5, 0 + beq _081969AC + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r5, 0 + bl __modsi3 + adds r5, r0, 0 + movs r4, 0 + b _08196962 +_0819695E: + subs r5, 0x1 +_08196960: + adds r4, 0x1 +_08196962: + cmp r4, 0x6 + bgt _08196980 + lsls r0, r4, 16 + lsrs r0, 16 + mov r1, sp + bl sub_8196E04 + ldr r1, =gUnknown_0203CD88 + strh r0, [r1, 0x2] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bls _08196960 + cmp r5, 0 + bne _0819695E +_08196980: + ldr r0, =gUnknown_0203CD88 + strh r4, [r0] + ldr r1, =gUnknown_0860DEB8 + adds r0, r7, r6 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0xC] + subs r2, r0, 0x1 + ldr r1, =gUnknown_0860EA34 + ldr r0, [sp] + lsls r0, 2 + adds r0, r1 + lsls r1, r2, 3 + ldr r0, [r0] + adds r0, r1 + b _081969D0 + .pool +_081969AC: + ldr r1, =gUnknown_0860DEB8 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 2 + adds r0, r1 + ldrh r2, [r0, 0xA] + lsrs r1, r2, 8 + subs r1, 0x1 + str r1, [sp] + movs r0, 0xFF + ands r0, r2 + subs r2, r0, 0x1 + ldr r0, =gUnknown_0860EA34 + lsls r1, 2 + adds r1, r0 + lsls r2, 3 + ldr r0, [r1] + adds r0, r2 +_081969D0: + add sp, 0x4 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8196910 + + thumb_func_start sub_81969E0 +sub_81969E0: @ 81969E0 + push {r4,r5,lr} + adds r4, r1, 0 + adds r5, r2, 0 + adds r1, r4, 0x4 + bl sub_81969FC + ldr r1, [r4] + adds r0, r5, 0 + bl StringExpandPlaceholders + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81969E0 + + thumb_func_start sub_81969FC +sub_81969FC: @ 81969FC + push {r4-r7,lr} + adds r7, r0, 0 + adds r6, r1, 0 + movs r4, 0 + ldr r5, =gUnknown_0860EFA0 +_08196A06: + adds r1, r6, r4 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0 + blt _08196A1A + adds r1, r0, 0 + ldr r2, [r5] + adds r0, r7, 0 + bl sub_8196A2C +_08196A1A: + adds r5, 0x4 + adds r4, 0x1 + cmp r4, 0x2 + ble _08196A06 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81969FC + + thumb_func_start sub_8196A2C +sub_8196A2C: @ 8196A2C + push {lr} + ldr r3, =gUnknown_0860EFAC + lsls r1, 2 + adds r1, r3 + ldr r3, [r1] + adds r1, r2, 0 + bl _call_via_r3 + pop {r0} + bx r0 + .pool + thumb_func_end sub_8196A2C + + thumb_func_start sub_8196A44 +sub_8196A44: @ 8196A44 + push {r4-r6,lr} + adds r5, r1, 0 + ldr r2, =gUnknown_0860DEB8 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r4, [r1] + movs r2, 0 + ldr r3, =gUnknown_0860EFC4 + adds r6, r3, 0 +_08196A5A: + lsls r1, r2, 3 + ldrh r0, [r3] + cmp r0, r4 + bne _08196A78 + adds r0, r6, 0x4 + adds r0, r1, r0 + ldr r1, [r0] + adds r0, r5, 0 + bl StringCopy + b _08196A90 + .pool +_08196A78: + adds r3, 0x8 + adds r2, 0x1 + cmp r2, 0x5 + bls _08196A5A + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + ldr r0, =gTrainers + 0x4 @ name offset + adds r1, r0 + adds r0, r5, 0 + bl StringCopy +_08196A90: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8196A44 + + thumb_func_start sub_8196A9C +sub_8196A9C: @ 8196A9C + push {r4,lr} + adds r4, r1, 0 + bl sub_819672C + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + movs r2, 0 + bl GetMapName + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8196A9C + + thumb_func_start sub_8196AB8 +sub_8196AB8: @ 8196AB8 + push {lr} + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x13 + bgt _08196AD4 + movs r0, 0 + b _08196B4A +_08196AD4: + adds r0, r1, 0 + subs r0, 0x14 + cmp r0, 0x13 + bhi _08196AE0 + movs r0, 0x1 + b _08196B4A +_08196AE0: + adds r0, r1, 0 + subs r0, 0x28 + cmp r0, 0x9 + bhi _08196AEC + movs r0, 0x2 + b _08196B4A +_08196AEC: + adds r0, r1, 0 + subs r0, 0x32 + cmp r0, 0x9 + bhi _08196AF8 + movs r0, 0x3 + b _08196B4A +_08196AF8: + adds r0, r1, 0 + subs r0, 0x3C + cmp r0, 0x9 + bhi _08196B04 + movs r0, 0x4 + b _08196B4A +_08196B04: + adds r0, r1, 0 + subs r0, 0x46 + cmp r0, 0x9 + bhi _08196B10 + movs r0, 0x5 + b _08196B4A +_08196B10: + adds r0, r1, 0 + subs r0, 0x50 + cmp r0, 0x4 + bhi _08196B1C + movs r0, 0x6 + b _08196B4A +_08196B1C: + adds r0, r1, 0 + subs r0, 0x55 + cmp r0, 0x4 + bhi _08196B28 + movs r0, 0x7 + b _08196B4A +_08196B28: + adds r0, r1, 0 + subs r0, 0x5A + cmp r0, 0x3 + bhi _08196B34 + movs r0, 0x8 + b _08196B4A +_08196B34: + adds r0, r1, 0 + subs r0, 0x5E + cmp r0, 0x3 + bhi _08196B40 + movs r0, 0x9 + b _08196B4A +_08196B40: + cmp r1, 0x62 + beq _08196B48 + movs r0, 0xB + b _08196B4A +_08196B48: + movs r0, 0xA +_08196B4A: + pop {r1} + bx r1 + thumb_func_end sub_8196AB8 + + thumb_func_start sub_8196B50 +sub_8196B50: @ 8196B50 + push {lr} + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3B + bgt _08196B6C + movs r0, 0 + b _08196B92 +_08196B6C: + adds r0, r1, 0 + subs r0, 0x3C + cmp r0, 0x1D + bhi _08196B78 + movs r0, 0x1 + b _08196B92 +_08196B78: + adds r0, r1, 0 + subs r0, 0x5A + cmp r0, 0x4 + bhi _08196B84 + movs r0, 0x2 + b _08196B92 +_08196B84: + adds r0, r1, 0 + subs r0, 0x5F + cmp r0, 0x3 + bls _08196B90 + movs r0, 0x4 + b _08196B92 +_08196B90: + movs r0, 0x3 +_08196B92: + pop {r1} + bx r1 + thumb_func_end sub_8196B50 + + thumb_func_start sub_8196B98 +sub_8196B98: @ 8196B98 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r2, r0, 0 + mov r8, r1 + movs r3, 0 + ldr r0, =gWildMonHeaders + ldrb r1, [r0] + adds r7, r0, 0 + cmp r1, 0xFF + beq _08196C5C + ldr r1, =gUnknown_085500A4 + lsls r0, r2, 4 + adds r2, r0, r1 + ldrh r4, [r2, 0xA] + adds r1, r7, 0 +_08196BBA: + ldrb r0, [r1] + cmp r0, r4 + bne _08196BC8 + ldrb r0, [r1, 0x1] + ldrh r5, [r2, 0xC] + cmp r0, r5 + beq _08196BD2 +_08196BC8: + adds r1, 0x14 + adds r3, 0x1 + ldrb r0, [r1] + cmp r0, 0xFF + bne _08196BBA +_08196BD2: + adds r1, r7, 0 + lsls r0, r3, 2 + adds r0, r3 + lsls r5, r0, 2 + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, 0xFF + beq _08196C5C + movs r6, 0 + adds r0, r1, 0x4 + adds r0, r5, r0 + ldr r4, [r0] + cmp r4, 0 + beq _08196C02 + bl sub_8196AB8 + lsls r0, 24 + mov r2, sp + ldr r1, [r4, 0x4] + lsrs r0, 22 + adds r0, r1 + ldrh r0, [r0, 0x2] + strh r0, [r2] + movs r6, 0x1 +_08196C02: + adds r0, r7, 0 + adds r0, 0x8 + adds r0, r5, r0 + ldr r4, [r0] + cmp r4, 0 + beq _08196C26 + bl sub_8196B50 + lsls r0, 24 + lsls r1, r6, 1 + mov r3, sp + adds r2, r3, r1 + ldr r1, [r4, 0x4] + lsrs r0, 22 + adds r0, r1 + ldrh r0, [r0, 0x2] + strh r0, [r2] + adds r6, 0x1 +_08196C26: + cmp r6, 0 + beq _08196C5C + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r6, 0 + bl __modsi3 + lsls r0, 1 + add r0, sp + ldrh r1, [r0] + movs r0, 0xB + muls r1, r0 + ldr r0, =gSpeciesNames + adds r1, r0 + mov r0, r8 + bl StringCopy + b _08196C62 + .pool +_08196C5C: + movs r0, 0xFF + mov r5, r8 + strb r0, [r5] +_08196C62: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8196B98 + + thumb_func_start sub_8196C70 +sub_8196C70: @ 8196C70 + push {r4-r7,lr} + adds r7, r1, 0 + ldr r2, =gUnknown_0860DEB8 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r1] + bl sub_80B2250 + lsls r0, 16 + lsrs r0, 16 + ldr r5, =gTrainers + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r0, r5, 0 + adds r0, 0x24 + adds r0, r4, r0 + ldr r6, [r0] + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r4, r5 + adds r1, r4, 0 + adds r1, 0x20 + ldrb r1, [r1] + bl __modsi3 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r4] + cmp r1, 0x1 + beq _08196CD4 + cmp r1, 0x1 + ble _08196CC2 + cmp r1, 0x2 + beq _08196CD0 + cmp r1, 0x3 + beq _08196CD4 +_08196CC2: + lsls r0, 3 + b _08196CD6 + .pool +_08196CD0: + lsls r0, 3 + b _08196CD6 +_08196CD4: + lsls r0, 4 +_08196CD6: + adds r0, r6 + ldrh r1, [r0, 0x4] + movs r0, 0xB + muls r1, r0 + ldr r0, =gSpeciesNames + adds r1, r0 + adds r0, r7, 0 + bl StringCopy + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8196C70 + + thumb_func_start sub_8196CF4 +sub_8196CF4: @ 8196CF4 + push {lr} + adds r0, r1, 0 + ldr r2, =gUnknown_0860EFF4 + ldr r1, =gUnknown_0203CD88 + ldrh r1, [r1] + lsls r1, 2 + adds r1, r2 + ldr r1, [r1] + bl StringCopy + pop {r0} + bx r0 + .pool + thumb_func_end sub_8196CF4 + + thumb_func_start sub_8196D14 +sub_8196D14: @ 8196D14 + push {r4-r6,lr} + adds r5, r1, 0 + movs r4, 0 + ldr r0, =gUnknown_0203CD88 + ldrh r1, [r0, 0x2] + adds r6, r0, 0 + cmp r1, 0 + beq _08196D34 +_08196D24: + adds r0, r1, 0 + movs r1, 0xA + bl __divsi3 + adds r1, r0, 0 + adds r4, 0x1 + cmp r1, 0 + bne _08196D24 +_08196D34: + ldrh r1, [r6, 0x2] + lsls r3, r4, 24 + lsrs r3, 24 + adds r0, r5, 0 + movs r2, 0 + bl ConvertIntToDecimalStringN + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8196D14 + + thumb_func_start sub_8196D4C +sub_8196D4C: @ 8196D4C + push {r4,r5,lr} + movs r4, 0 + ldr r5, =gUnknown_0860F010 + b _08196D5C + .pool +_08196D58: + adds r5, 0x2 + adds r4, 0x1 +_08196D5C: + cmp r4, 0x7 + bhi _08196D6C + ldrh r0, [r5] + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _08196D58 +_08196D6C: + adds r0, r4, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8196D4C + + thumb_func_start sub_8196D74 +sub_8196D74: @ 8196D74 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r7, r0, 0 + bl sub_8196D4C + cmp r0, 0x4 + ble _08196DF4 + bl RtcGetLocalDayCount + adds r4, r0, 0 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xA + bl ReadUnalignedWord + adds r6, r0, 0 + ldr r0, =0x0000ffff + ands r6, r0 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00002e6a + adds r0, r1 + ldrh r5, [r0] + bl sub_8196748 + mov r9, r0 + movs r0, 0xD + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + movs r1, 0xA + bl __divsi3 + mov r8, r0 + movs r0, 0x9 + bl GetGameStat + eors r4, r5 + eors r5, r0 + adds r4, r5 + eors r4, r6 + adds r0, r4, 0 + mov r1, r8 + bl __modsi3 + cmp r0, r9 + bge _08196DF4 + bl sub_8196774 + cmp r0, r7 + bne _08196DF4 + movs r0, 0x1 + b _08196DF6 + .pool +_08196DF4: + movs r0, 0 +_08196DF6: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8196D74 + + thumb_func_start sub_8196E04 +sub_8196E04: @ 8196E04 + push {r4-r6,lr} + adds r5, r1, 0 + lsls r0, 16 + lsrs r0, 16 + movs r4, 0 + cmp r0, 0x6 + bls _08196E14 + b _08196F7E +_08196E14: + lsls r0, 2 + ldr r1, =_08196E24 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08196E24: + .4byte _08196E9C + .4byte _08196E40 + .4byte _08196ED0 + .4byte _08196F38 + .4byte _08196E74 + .4byte _08196F04 + .4byte _08196F60 +_08196E40: + movs r3, 0 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000d14 + adds r0, r1 +_08196E4A: + lsls r1, r3, 2 + adds r3, 0x1 + adds r1, r0 + movs r2, 0x1 +_08196E52: + ldrh r6, [r1] + cmp r4, r6 + bcs _08196E5A + ldrh r4, [r1] +_08196E5A: + adds r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _08196E52 + cmp r3, 0x1 + ble _08196E4A + movs r0, 0x3 + b _08196F7C + .pool +_08196E74: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000e08 + adds r0, r1 + movs r3, 0x1 +_08196E7E: + ldrh r6, [r0] + cmp r4, r6 + bcs _08196E86 + ldrh r4, [r0] +_08196E86: + adds r0, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _08196E7E + movs r0, 0x4 + b _08196F7C + .pool +_08196E9C: + movs r3, 0 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + movs r1, 0xCF + lsls r1, 4 + adds r0, r1 +_08196EA8: + lsls r1, r3, 2 + adds r3, 0x1 + adds r1, r0 + movs r2, 0x1 +_08196EB0: + ldrh r6, [r1] + cmp r4, r6 + bcs _08196EB8 + ldrh r4, [r1] +_08196EB8: + adds r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _08196EB0 + movs r2, 0x2 + cmp r3, 0x3 + ble _08196EA8 + str r2, [r5] + b _08196F7E + .pool +_08196ED0: + movs r3, 0 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + movs r1, 0xDD + lsls r1, 4 + adds r0, r1 +_08196EDC: + lsls r1, r3, 2 + adds r3, 0x1 + adds r1, r0 + movs r2, 0x1 +_08196EE4: + ldrh r6, [r1] + cmp r4, r6 + bcs _08196EEC + ldrh r4, [r1] +_08196EEC: + adds r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _08196EE4 + movs r2, 0x2 + cmp r3, 0x1 + ble _08196EDC + str r2, [r5] + b _08196F7E + .pool +_08196F04: + movs r3, 0 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000dea + adds r0, r1 +_08196F0E: + lsls r1, r3, 2 + adds r3, 0x1 + adds r1, r0 + movs r2, 0x1 +_08196F16: + ldrh r6, [r1] + cmp r4, r6 + bcs _08196F1E + ldrh r4, [r1] +_08196F1E: + adds r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _08196F16 + movs r2, 0x2 + cmp r3, 0x1 + ble _08196F0E + str r2, [r5] + b _08196F7E + .pool +_08196F38: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000dde + adds r0, r1 + movs r3, 0x1 +_08196F42: + ldrh r6, [r0] + cmp r4, r6 + bcs _08196F4A + ldrh r4, [r0] +_08196F4A: + adds r0, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _08196F42 + movs r3, 0x2 + str r3, [r5] + b _08196F7E + .pool +_08196F60: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000e1e + adds r0, r1 + movs r3, 0x1 +_08196F6A: + ldrh r6, [r0] + cmp r4, r6 + bcs _08196F72 + ldrh r4, [r0] +_08196F72: + adds r0, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _08196F6A + movs r0, 0x5 +_08196F7C: + str r0, [r5] +_08196F7E: + adds r0, r4, 0 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8196E04 + + thumb_func_start sub_8196F90 +sub_8196F90: @ 8196F90 + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x9 + bhi _08196F9E + movs r0, 0 + b _0819707A +_08196F9E: + cmp r4, 0x13 + bhi _08196FA6 + movs r0, 0x1 + b _0819707A +_08196FA6: + cmp r4, 0x1D + bhi _08196FAE + movs r0, 0x2 + b _0819707A +_08196FAE: + cmp r4, 0x27 + bhi _08196FB6 + movs r0, 0x3 + b _0819707A +_08196FB6: + cmp r4, 0x31 + bhi _08196FBE + movs r0, 0x4 + b _0819707A +_08196FBE: + cmp r4, 0x3B + bhi _08196FC6 + movs r0, 0x5 + b _0819707A +_08196FC6: + cmp r4, 0x45 + bhi _08196FCE + movs r0, 0x6 + b _0819707A +_08196FCE: + cmp r4, 0x4F + bhi _08196FD6 + movs r0, 0x7 + b _0819707A +_08196FD6: + cmp r4, 0x59 + bhi _08196FDE + movs r0, 0x8 + b _0819707A +_08196FDE: + cmp r4, 0x63 + bhi _08196FE6 + movs r0, 0x9 + b _0819707A +_08196FE6: + cmp r4, 0x6D + bhi _08196FEE + movs r0, 0xA + b _0819707A +_08196FEE: + cmp r4, 0x77 + bhi _08196FF6 + movs r0, 0xB + b _0819707A +_08196FF6: + cmp r4, 0x81 + bhi _08196FFE + movs r0, 0xC + b _0819707A +_08196FFE: + cmp r4, 0x8B + bhi _08197006 + movs r0, 0xD + b _0819707A +_08197006: + cmp r4, 0x95 + bhi _0819700E + movs r0, 0xE + b _0819707A +_0819700E: + cmp r4, 0x9F + bhi _08197016 + movs r0, 0xF + b _0819707A +_08197016: + cmp r4, 0xA9 + bhi _0819701E + movs r0, 0x10 + b _0819707A +_0819701E: + cmp r4, 0xB3 + bhi _08197026 + movs r0, 0x11 + b _0819707A +_08197026: + cmp r4, 0xBD + bhi _0819702E + movs r0, 0x12 + b _0819707A +_0819702E: + cmp r4, 0xC7 + bls _08197078 + movs r0, 0xCD + lsls r0, 1 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + bl pokedex_flag_operation + lsls r0, 24 + cmp r0, 0 + beq _08197050 + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_08197050: + ldr r0, =0x00000199 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + bl pokedex_flag_operation + lsls r0, 24 + cmp r0, 0 + beq _0819706C + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_0819706C: + cmp r4, 0xC7 + bls _08197078 + movs r0, 0x14 + b _0819707A + .pool +_08197078: + movs r0, 0x13 +_0819707A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8196F90 + + thumb_func_start sub_8197080 +sub_8197080: @ 8197080 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r8, r0 + movs r0, 0xFA + lsls r0, 2 + bl Alloc + adds r7, r0, 0 + cmp r7, 0 + bne _081970A2 + movs r0, 0xFF + mov r1, r8 + strb r0, [r1] + b _0819715C +_081970A2: + movs r0, 0 + bl sub_80C0844 + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0x1 + bl sub_80C0844 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, =gStringVar1 + mov r10, r0 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + ldr r1, =gStringVar2 + mov r9, r1 + mov r0, r9 + adds r1, r6, 0 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r0, r6, 0 + bl sub_8196F90 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, =gUnknown_082A5C9C + adds r0, r7, 0 + bl StringCopy + adds r5, r0, 0 + movs r6, 0xFB + strb r6, [r5] + adds r5, 0x1 + ldr r1, =gUnknown_082A5D2C + adds r0, r5, 0 + bl StringCopy + adds r5, r0, 0 + strb r6, [r5] + adds r5, 0x1 + ldr r0, =gUnknown_0860F020 + lsls r4, 2 + adds r4, r0 + ldr r1, [r4] + adds r0, r5, 0 + bl StringCopy + mov r0, r8 + adds r1, r7, 0 + bl StringExpandPlaceholders + adds r5, r0, 0 + bl IsNationalPokedexEnabled + cmp r0, 0 + beq _08197156 + strb r6, [r5] + adds r5, 0x1 + movs r0, 0 + bl pokedex_count + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0x1 + bl pokedex_count + lsls r0, 16 + lsrs r6, r0, 16 + mov r0, r10 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + mov r0, r9 + adds r1, r6, 0 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + ldr r1, =gUnknown_082A633D + adds r0, r5, 0 + bl StringExpandPlaceholders +_08197156: + adds r0, r7, 0 + bl Free +_0819715C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8197080 + + thumb_func_start sub_8197184 +sub_8197184: @ 8197184 + push {r4,r5,lr} + adds r4, r1, 0 + adds r5, r2, 0 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl GetWindowAttribute + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gUnknown_0860EA6C + movs r2, 0x80 + lsls r2, 1 + lsls r4, 16 + lsrs r4, 16 + adds r3, r4, 0 + bl LoadBgTiles + ldr r0, =gUnknown_0860EA4C + lsls r5, 20 + lsrs r5, 16 + adds r1, r5, 0 + movs r2, 0x20 + bl LoadPalette + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8197184 + + thumb_func_start sub_81971C4 +sub_81971C4: @ 81971C4 + push {lr} + bl sub_819645C + pop {r0} + bx r0 + thumb_func_end sub_81971C4 + + thumb_func_start sub_81971D0 +sub_81971D0: @ 81971D0 + push {lr} + ldr r0, =gUnknown_0860F098 + bl InitWindows + ldr r0, =gUnknown_0203CD8C + movs r1, 0xFF + strb r1, [r0] + ldr r0, =gUnknown_0203CD8D + strb r1, [r0] + pop {r0} + bx r0 + .pool + thumb_func_end sub_81971D0 + + thumb_func_start sub_81971F4 +sub_81971F4: @ 81971F4 + push {lr} + bl FreeAllWindowBuffers + pop {r0} + bx r0 + thumb_func_end sub_81971F4 + + thumb_func_start sub_8197200 +sub_8197200: @ 8197200 + push {lr} + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + bl DeactivateAllTextPrinters + bl sub_81973A4 + pop {r0} + bx r0 + thumb_func_end sub_8197200 + + thumb_func_start sub_8197224 +sub_8197224: @ 8197224 + push {lr} + bl RunTextPrinters + movs r0, 0 + bl IsTextPrinterActive + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_8197224 + + thumb_func_start AddTextPrinterParametrized +@ u16 AddTextPrinterParametrized(u8 windowId, u8 fontId, u8 *str, u8 speed, void ( *callback)(u16, struct TextPrinter *), u8 fgColor, u8 bgColor, u8 shadowColor) +AddTextPrinterParametrized: @ 8197238 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + ldr r7, [sp, 0x28] + ldr r4, [sp, 0x2C] + mov r8, r4 + ldr r5, [sp, 0x30] + ldr r6, [sp, 0x34] + lsls r3, 24 + lsrs r3, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + str r2, [sp] + mov r2, sp + movs r4, 0 + strb r0, [r2, 0x4] + mov r0, sp + strb r1, [r0, 0x5] + strb r4, [r0, 0x6] + movs r1, 0x1 + strb r1, [r0, 0x7] + strb r4, [r0, 0x8] + strb r1, [r0, 0x9] + strb r4, [r0, 0xA] + strb r4, [r0, 0xB] + mov r4, sp + ldrb r2, [r4, 0xC] + subs r1, 0x11 + adds r0, r1, 0 + ands r0, r2 + strb r0, [r4, 0xC] + mov r0, sp + mov r2, r8 + lsls r2, 4 + movs r4, 0xF + strb r2, [r0, 0xC] + mov r2, sp + ands r5, r4 + ldrb r0, [r2, 0xD] + ands r1, r0 + orrs r1, r5 + strb r1, [r2, 0xD] + mov r0, sp + lsrs r6, 20 + ands r1, r4 + orrs r1, r6 + strb r1, [r0, 0xD] + ldr r2, =gTextFlags + ldrb r1, [r2] + movs r0, 0x3 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + mov r0, sp + adds r1, r3, 0 + adds r2, r7, 0 + bl AddTextPrinter + lsls r0, 16 + lsrs r0, 16 + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end AddTextPrinterParametrized + + thumb_func_start AddTextPrinterForMessage +@ void AddTextPrinterForMessage(u8 allowSkippingDelayWithButtonPress) +AddTextPrinterForMessage: @ 81972C4 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + ldr r3, =gTextFlags + movs r4, 0x1 + ands r0, r4 + ldrb r2, [r3] + movs r1, 0x2 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3] + bl sav2_get_text_speed + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + ldr r2, =gStringVar4 + str r5, [sp] + movs r0, 0x2 + str r0, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x3 + str r0, [sp, 0xC] + movs r0, 0 + movs r1, 0x1 + bl AddTextPrinterParametrized + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end AddTextPrinterForMessage + + thumb_func_start AddTextPrinterForMessage_2 +@ void AddTextPrinterForMessage_2(u8 allowSkippingDelayWithButtonPress) +AddTextPrinterForMessage_2: @ 8197310 + push {r4,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + ldr r3, =gTextFlags + movs r4, 0x1 + ands r0, r4 + ldrb r2, [r3] + movs r1, 0x2 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3] + bl sav2_get_text_speed + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + ldr r2, =gStringVar4 + movs r0, 0 + str r0, [sp] + movs r0, 0x2 + str r0, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x3 + str r0, [sp, 0xC] + movs r0, 0 + movs r1, 0x1 + bl AddTextPrinterParametrized + add sp, 0x10 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end AddTextPrinterForMessage_2 + + thumb_func_start AddTextPrinterWithCustomSpeedForMessage +@ void AddTextPrinterWithCustomSpeedForMessage(u8 allowSkippingDelayWithButtonPress, u8 speed) +AddTextPrinterWithCustomSpeedForMessage: @ 819735C + push {r4,r5,lr} + sub sp, 0x10 + adds r3, r1, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r3, 24 + lsrs r3, 24 + ldr r4, =gTextFlags + movs r5, 0x1 + ands r0, r5 + ldrb r2, [r4] + movs r1, 0x2 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r4] + ldr r2, =gStringVar4 + movs r0, 0 + str r0, [sp] + movs r0, 0x2 + str r0, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0x3 + str r0, [sp, 0xC] + movs r0, 0 + movs r1, 0x1 + bl AddTextPrinterParametrized + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end AddTextPrinterWithCustomSpeedForMessage + + thumb_func_start sub_81973A4 +sub_81973A4: @ 81973A4 + push {lr} + movs r1, 0x80 + lsls r1, 2 + movs r0, 0 + movs r2, 0xF0 + bl copy_textbox_border_tile_patterns_to_vram + movs r1, 0x85 + lsls r1, 2 + movs r0, 0 + movs r2, 0xE0 + bl sub_809882C + pop {r0} + bx r0 + thumb_func_end sub_81973A4 + + thumb_func_start sub_81973C4 +sub_81973C4: @ 81973C4 + push {r4,r5,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r1, =sub_81975F4 + adds r0, r5, 0 + bl CallWindowFunction + adds r0, r5, 0 + movs r1, 0x11 + bl FillWindowPixelBuffer + adds r0, r5, 0 + bl PutWindowTilemap + cmp r4, 0x1 + bne _081973F2 + adds r0, r5, 0 + movs r1, 0x3 + bl CopyWindowToVram +_081973F2: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81973C4 + + thumb_func_start sub_81973FC +sub_81973FC: @ 81973FC + push {r4,r5,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r1, =sub_81974A4 + adds r0, r5, 0 + bl CallWindowFunction + adds r0, r5, 0 + movs r1, 0x11 + bl FillWindowPixelBuffer + adds r0, r5, 0 + bl PutWindowTilemap + cmp r4, 0x1 + bne _0819742A + adds r0, r5, 0 + movs r1, 0x3 + bl CopyWindowToVram +_0819742A: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81973FC + + thumb_func_start sub_8197434 +sub_8197434: @ 8197434 + push {r4,r5,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r1, =sub_8197804 + adds r0, r5, 0 + bl CallWindowFunction + adds r0, r5, 0 + movs r1, 0x11 + bl FillWindowPixelBuffer + adds r0, r5, 0 + bl ClearWindowTilemap + cmp r4, 0x1 + bne _08197462 + adds r0, r5, 0 + movs r1, 0x3 + bl CopyWindowToVram +_08197462: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8197434 + + thumb_func_start sub_819746C +sub_819746C: @ 819746C + push {r4,r5,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r1, =sub_81977BC + adds r0, r5, 0 + bl CallWindowFunction + adds r0, r5, 0 + movs r1, 0x11 + bl FillWindowPixelBuffer + adds r0, r5, 0 + bl ClearWindowTilemap + cmp r4, 0x1 + bne _0819749A + adds r0, r5, 0 + movs r1, 0x3 + bl CopyWindowToVram +_0819749A: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819746C + + thumb_func_start sub_81974A4 +sub_81974A4: @ 81974A4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + adds r4, r2, 0 + ldr r2, [sp, 0x3C] + lsls r0, 24 + lsrs r7, r0, 24 + lsls r1, 24 + lsls r4, 24 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0x10] + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x14] + movs r3, 0x85 + lsls r3, 2 + lsrs r0, r1, 24 + str r0, [sp, 0xC] + movs r2, 0xFF + lsls r2, 24 + adds r2, r1 + mov r8, r2 + lsrs r2, 24 + lsrs r0, r4, 24 + mov r9, r0 + movs r0, 0xFF + lsls r0, 24 + adds r4, r0 + lsrs r4, 24 + movs r5, 0x1 + str r5, [sp] + str r5, [sp, 0x4] + movs r6, 0xE + str r6, [sp, 0x8] + adds r0, r7, 0 + adds r1, r3, 0 + adds r3, r4, 0 + bl FillBgTilemapBufferRect + ldr r1, =0x00000215 + ldr r2, [sp, 0x10] + str r2, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + adds r0, r7, 0 + ldr r2, [sp, 0xC] + adds r3, r4, 0 + bl FillBgTilemapBufferRect + ldr r1, =0x00000216 + ldr r3, [sp, 0xC] + ldr r2, [sp, 0x10] + adds r0, r3, r2 + lsls r0, 24 + mov r10, r0 + lsrs r2, r0, 24 + str r5, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + adds r0, r7, 0 + adds r3, r4, 0 + bl FillBgTilemapBufferRect + mov r5, r9 + ldr r0, [sp, 0x14] + add r0, r9 + cmp r9, r0 + bge _08197578 + mov r3, r8 + str r3, [sp, 0x18] + movs r6, 0x1 + movs r0, 0xE + mov r8, r0 +_0819753E: + lsls r4, r5, 24 + lsrs r4, 24 + str r6, [sp] + str r6, [sp, 0x4] + mov r2, r8 + str r2, [sp, 0x8] + adds r0, r7, 0 + ldr r1, =0x00000217 + ldr r3, [sp, 0x18] + lsrs r2, r3, 24 + adds r3, r4, 0 + bl FillBgTilemapBufferRect + str r6, [sp] + str r6, [sp, 0x4] + mov r0, r8 + str r0, [sp, 0x8] + adds r0, r7, 0 + ldr r1, =0x00000219 + mov r3, r10 + lsrs r2, r3, 24 + adds r3, r4, 0 + bl FillBgTilemapBufferRect + adds r5, 0x1 + ldr r0, [sp, 0x14] + add r0, r9 + cmp r5, r0 + blt _0819753E +_08197578: + ldr r1, =0x0000021a + ldr r2, [sp, 0xC] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldr r4, [sp, 0x14] + add r4, r9 + lsls r4, 24 + lsrs r4, 24 + movs r5, 0x1 + str r5, [sp] + str r5, [sp, 0x4] + movs r6, 0xE + str r6, [sp, 0x8] + adds r0, r7, 0 + adds r3, r4, 0 + bl FillBgTilemapBufferRect + ldr r1, =0x0000021b + ldr r0, [sp, 0x10] + str r0, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + adds r0, r7, 0 + ldr r2, [sp, 0xC] + adds r3, r4, 0 + bl FillBgTilemapBufferRect + movs r1, 0x87 + lsls r1, 2 + ldr r3, [sp, 0xC] + ldr r0, [sp, 0x10] + adds r2, r3, r0 + lsls r2, 24 + lsrs r2, 24 + str r5, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + adds r0, r7, 0 + adds r3, r4, 0 + bl FillBgTilemapBufferRect + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81974A4 + + thumb_func_start sub_81975F4 +sub_81975F4: @ 81975F4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + adds r6, r0, 0 + adds r5, r2, 0 + mov r8, r3 + ldr r2, [sp, 0x44] + lsls r6, 24 + lsrs r6, 24 + lsls r0, r1, 24 + lsls r5, 24 + mov r1, r8 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + lsls r1, r2, 24 + lsrs r1, 24 + str r1, [sp, 0x10] + ldr r1, =0x00000201 + lsrs r2, r0, 24 + str r2, [sp, 0xC] + movs r3, 0xFE + lsls r3, 24 + adds r2, r0, r3 + lsrs r2, 24 + str r2, [sp, 0x14] + lsrs r0, r5, 24 + mov r10, r0 + movs r2, 0xFF + lsls r2, 24 + adds r5, r2 + lsrs r5, 24 + movs r4, 0x1 + str r4, [sp] + str r4, [sp, 0x4] + movs r3, 0xF + mov r9, r3 + str r3, [sp, 0x8] + adds r0, r6, 0 + ldr r2, [sp, 0x14] + adds r3, r5, 0 + bl FillBgTilemapBufferRect + ldr r1, =0x00000203 + ldr r0, [sp, 0xC] + subs r0, 0x1 + lsls r2, r0, 24 + lsrs r2, 24 + str r2, [sp, 0x18] + str r4, [sp] + str r4, [sp, 0x4] + mov r0, r9 + str r0, [sp, 0x8] + adds r0, r6, 0 + adds r3, r5, 0 + bl FillBgTilemapBufferRect + movs r1, 0x81 + lsls r1, 2 + mov r0, r8 + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x1C] + str r0, [sp] + str r4, [sp, 0x4] + mov r2, r9 + str r2, [sp, 0x8] + adds r0, r6, 0 + ldr r2, [sp, 0xC] + adds r3, r5, 0 + bl FillBgTilemapBufferRect + ldr r1, =0x00000205 + ldr r7, [sp, 0xC] + add r7, r8 + subs r0, r7, 0x1 + lsls r2, r0, 24 + lsrs r2, 24 + str r2, [sp, 0x20] + str r4, [sp] + str r4, [sp, 0x4] + mov r3, r9 + str r3, [sp, 0x8] + adds r0, r6, 0 + adds r3, r5, 0 + bl FillBgTilemapBufferRect + ldr r1, =0x00000206 + lsls r2, r7, 24 + lsrs r7, r2, 24 + str r4, [sp] + str r4, [sp, 0x4] + mov r0, r9 + str r0, [sp, 0x8] + adds r0, r6, 0 + adds r2, r7, 0 + adds r3, r5, 0 + bl FillBgTilemapBufferRect + ldr r1, =0x00000207 + str r4, [sp] + movs r5, 0x5 + str r5, [sp, 0x4] + mov r2, r9 + str r2, [sp, 0x8] + adds r0, r6, 0 + ldr r2, [sp, 0x14] + mov r3, r10 + bl FillBgTilemapBufferRect + ldr r1, =0x00000209 + add r8, r4 + mov r3, r8 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp] + str r5, [sp, 0x4] + mov r0, r9 + str r0, [sp, 0x8] + adds r0, r6, 0 + ldr r2, [sp, 0x18] + mov r3, r10 + bl FillBgTilemapBufferRect + ldr r1, =0x0000020a + str r4, [sp] + str r5, [sp, 0x4] + mov r2, r9 + str r2, [sp, 0x8] + adds r0, r6, 0 + adds r2, r7, 0 + mov r3, r10 + bl FillBgTilemapBufferRect + ldr r1, =0x00000a01 + ldr r3, [sp, 0x10] + add r10, r3 + mov r0, r10 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + str r4, [sp] + str r4, [sp, 0x4] + mov r2, r9 + str r2, [sp, 0x8] + adds r0, r6, 0 + ldr r2, [sp, 0x14] + mov r3, r10 + bl FillBgTilemapBufferRect + ldr r1, =0x00000a03 + str r4, [sp] + str r4, [sp, 0x4] + mov r3, r9 + str r3, [sp, 0x8] + adds r0, r6, 0 + ldr r2, [sp, 0x18] + mov r3, r10 + bl FillBgTilemapBufferRect + ldr r1, =0x00000a04 + ldr r0, [sp, 0x1C] + str r0, [sp] + str r4, [sp, 0x4] + mov r2, r9 + str r2, [sp, 0x8] + adds r0, r6, 0 + ldr r2, [sp, 0xC] + mov r3, r10 + bl FillBgTilemapBufferRect + ldr r1, =0x00000a05 + str r4, [sp] + str r4, [sp, 0x4] + mov r3, r9 + str r3, [sp, 0x8] + adds r0, r6, 0 + ldr r2, [sp, 0x20] + mov r3, r10 + bl FillBgTilemapBufferRect + ldr r1, =0x00000a06 + str r4, [sp] + str r4, [sp, 0x4] + mov r0, r9 + str r0, [sp, 0x8] + adds r0, r6, 0 + adds r2, r7, 0 + mov r3, r10 + bl FillBgTilemapBufferRect + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81975F4 + + thumb_func_start sub_81977BC +sub_81977BC: @ 81977BC + push {r4,r5,lr} + sub sp, 0xC + adds r4, r1, 0 + adds r5, r2, 0 + ldr r1, [sp, 0x18] + lsls r0, 24 + lsrs r0, 24 + lsls r4, 24 + lsls r5, 24 + lsls r3, 24 + lsls r1, 24 + movs r2, 0xFF + lsls r2, 24 + adds r4, r2 + lsrs r4, 24 + adds r5, r2 + lsrs r5, 24 + movs r2, 0x80 + lsls r2, 18 + adds r3, r2 + lsrs r3, 24 + str r3, [sp] + adds r1, r2 + lsrs r1, 24 + str r1, [sp, 0x4] + movs r1, 0xE + str r1, [sp, 0x8] + movs r1, 0 + adds r2, r4, 0 + adds r3, r5, 0 + bl FillBgTilemapBufferRect + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81977BC + + thumb_func_start sub_8197804 +sub_8197804: @ 8197804 + push {r4,r5,lr} + sub sp, 0xC + adds r4, r1, 0 + adds r5, r2, 0 + ldr r1, [sp, 0x18] + lsls r0, 24 + lsrs r0, 24 + lsls r4, 24 + lsls r5, 24 + lsls r3, 24 + lsls r1, 24 + movs r2, 0xFD + lsls r2, 24 + adds r4, r2 + lsrs r4, 24 + movs r2, 0xFF + lsls r2, 24 + adds r5, r2 + lsrs r5, 24 + movs r2, 0xC0 + lsls r2, 19 + adds r3, r2 + lsrs r3, 24 + str r3, [sp] + movs r2, 0x80 + lsls r2, 18 + adds r1, r2 + lsrs r1, 24 + str r1, [sp, 0x4] + movs r1, 0xE + str r1, [sp, 0x8] + movs r1, 0 + adds r2, r4, 0 + adds r3, r5, 0 + bl FillBgTilemapBufferRect + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8197804 + + thumb_func_start SetStandardWindowBorderStyle +@ void SetStandardWindowBorderStyle(u8 windowId, bool copyToVram) +SetStandardWindowBorderStyle: @ 8197854 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0x85 + lsls r2, 2 + movs r3, 0xE + bl SetWindowBorderStyle + pop {r0} + bx r0 + thumb_func_end SetStandardWindowBorderStyle + + thumb_func_start sub_819786C +sub_819786C: @ 819786C + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + movs r6, 0x80 + lsls r6, 2 + adds r0, r4, 0 + adds r1, r6, 0 + movs r2, 0xF0 + bl copy_textbox_border_tile_patterns_to_vram + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + movs r3, 0xF + bl sub_8197B1C + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_819786C + + thumb_func_start sub_819789C +sub_819789C: @ 819789C + push {lr} + ldr r0, =gUnknown_0860F074 + movs r1, 0xE0 + movs r2, 0x14 + bl LoadPalette + pop {r0} + bx r0 + .pool + thumb_func_end sub_819789C + + thumb_func_start sub_81978B0 +sub_81978B0: @ 81978B0 + push {lr} + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + ldr r0, =gUnknown_0860F074 + movs r2, 0x14 + bl LoadPalette + pop {r0} + bx r0 + .pool + thumb_func_end sub_81978B0 + + thumb_func_start sub_81978C8 +sub_81978C8: @ 81978C8 + ldr r0, =gUnknown_0860F074 + bx lr + .pool + thumb_func_end sub_81978C8 + + thumb_func_start sub_81978D0 +sub_81978D0: @ 81978D0 + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xF + bls _081978DC + movs r1, 0 +_081978DC: + ldr r0, =gUnknown_0860F074 + lsls r1, 1 + adds r1, r0 + ldrh r0, [r1] + pop {r1} + bx r1 + .pool + thumb_func_end sub_81978D0 + + thumb_func_start DisplayItemMessageOnField +@ void DisplayItemMessageOnField(u8 taskId, u8 *str, void ( *callback)(u8 taskId)) +DisplayItemMessageOnField: @ 81978EC + push {r4-r6,lr} + sub sp, 0x10 + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_81973A4 + bl sav2_get_text_speed + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x80 + lsls r2, 2 + movs r1, 0x1 + str r1, [sp] + str r0, [sp, 0x4] + str r5, [sp, 0x8] + str r6, [sp, 0xC] + adds r0, r4, 0 + movs r1, 0 + movs r3, 0xF + bl DisplayMessageAndContinueTask + movs r0, 0 + movs r1, 0x3 + bl CopyWindowToVram + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end DisplayItemMessageOnField + + thumb_func_start sub_8197930 +sub_8197930: @ 8197930 + push {lr} + ldr r0, =gUnknown_0860F0A8 + movs r1, 0x85 + lsls r1, 2 + movs r2, 0xE + movs r3, 0 + bl CreateYesNoMenu + pop {r0} + bx r0 + .pool + thumb_func_end sub_8197930 + + thumb_func_start sub_8197948 +sub_8197948: @ 8197948 + push {lr} + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + ldr r0, =gUnknown_0860F0A8 + movs r1, 0x85 + lsls r1, 2 + movs r2, 0xE + bl CreateYesNoMenu + pop {r0} + bx r0 + .pool + thumb_func_end sub_8197948 + + thumb_func_start sub_8197964 +sub_8197964: @ 8197964 + push {lr} + ldr r0, =gTextFlags + ldrb r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _08197988 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r0, [r0, 0x14] + lsls r0, 29 + lsrs r0, 29 + b _0819798A + .pool +_08197988: + movs r0, 0x1 +_0819798A: + pop {r1} + bx r1 + thumb_func_end sub_8197964 + + thumb_func_start sav2_get_text_speed +sav2_get_text_speed: @ 8197990 + push {lr} + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldrb r1, [r2, 0x14] + lsls r0, r1, 29 + lsrs r0, 29 + cmp r0, 0x2 + bls _081979AC + movs r0, 0x8 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x14] +_081979AC: + bl sub_8197964 + ldr r1, =gUnknown_0860F094 + adds r0, r1 + ldrb r0, [r0] + pop {r1} + bx r1 + .pool + thumb_func_end sav2_get_text_speed + + thumb_func_start sub_81979C4 +sub_81979C4: @ 81979C4 + push {r4,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r1, r0, 24 + ldr r4, =gUnknown_0203CD8C + ldrb r0, [r4] + cmp r0, 0xFF + bne _081979F6 + lsls r0, r1, 25 + movs r1, 0x80 + lsls r1, 18 + adds r0, r1 + lsrs r0, 24 + str r0, [sp] + movs r0, 0xF + str r0, [sp, 0x4] + ldr r0, =0x00000139 + str r0, [sp, 0x8] + movs r0, 0 + movs r1, 0x16 + movs r2, 0x1 + movs r3, 0x7 + bl sub_8198AA4 + strb r0, [r4] +_081979F6: + ldrb r0, [r4] + add sp, 0xC + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81979C4 + + thumb_func_start get_start_menu_window_id_maybe +get_start_menu_window_id_maybe: @ 8197A08 + ldr r0, =gUnknown_0203CD8C + ldrb r0, [r0] + bx lr + .pool + thumb_func_end get_start_menu_window_id_maybe + + thumb_func_start remove_start_menu_window_maybe +remove_start_menu_window_maybe: @ 8197A14 + push {r4,lr} + ldr r4, =gUnknown_0203CD8C + ldrb r0, [r4] + cmp r0, 0xFF + beq _08197A26 + bl RemoveWindow + movs r0, 0xFF + strb r0, [r4] +_08197A26: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end remove_start_menu_window_maybe + + thumb_func_start sub_8197A30 +sub_8197A30: @ 8197A30 + movs r0, 0x80 + lsls r0, 2 + bx lr + thumb_func_end sub_8197A30 + + thumb_func_start sub_8197A38 +sub_8197A38: @ 8197A38 + movs r0, 0x85 + lsls r0, 2 + bx lr + thumb_func_end sub_8197A38 + + thumb_func_start AddMapNamePopUpWindow +AddMapNamePopUpWindow: @ 8197A40 + push {r4,lr} + sub sp, 0xC + ldr r4, =gUnknown_0203CD8D + ldrb r0, [r4] + cmp r0, 0xFF + bne _08197A66 + movs r0, 0x3 + str r0, [sp] + movs r0, 0xE + str r0, [sp, 0x4] + adds r0, 0xF9 + str r0, [sp, 0x8] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0xA + bl sub_8198AA4 + strb r0, [r4] +_08197A66: + ldrb r0, [r4] + add sp, 0xC + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end AddMapNamePopUpWindow + + thumb_func_start GetMapNamePopUpWindowId +GetMapNamePopUpWindowId: @ 8197A74 + ldr r0, =gUnknown_0203CD8D + ldrb r0, [r0] + bx lr + .pool + thumb_func_end GetMapNamePopUpWindowId + + thumb_func_start RemoveMapNamePopUpWindow +RemoveMapNamePopUpWindow: @ 8197A80 + push {r4,lr} + ldr r4, =gUnknown_0203CD8D + ldrb r0, [r4] + cmp r0, 0xFF + beq _08197A92 + bl RemoveWindow + movs r0, 0xFF + strb r0, [r4] +_08197A92: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end RemoveMapNamePopUpWindow + + thumb_func_start AddTextPrinterWithCallbackForMessage +@ void AddTextPrinterWithCallbackForMessage(u8 allowSkippingDelayWithButtonPress, void ( *callback)(u16, struct TextPrinter *)) +AddTextPrinterWithCallbackForMessage: @ 8197A9C + push {r4,r5,lr} + sub sp, 0x10 + adds r5, r1, 0 + lsls r0, 24 + lsrs r0, 24 + ldr r3, =gTextFlags + movs r4, 0x1 + ands r0, r4 + ldrb r2, [r3] + movs r1, 0x2 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3] + bl sav2_get_text_speed + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + ldr r2, =gStringVar4 + str r5, [sp] + movs r0, 0x2 + str r0, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x3 + str r0, [sp, 0xC] + movs r0, 0 + movs r1, 0x1 + bl AddTextPrinterParametrized + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end AddTextPrinterWithCallbackForMessage + + thumb_func_start sub_8197AE8 +sub_8197AE8: @ 8197AE8 + push {r4,lr} + sub sp, 0xC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x20 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect + cmp r4, 0x1 + bne _08197B12 + movs r0, 0 + bl CopyBgTilemapBufferToVram +_08197B12: + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8197AE8 + + thumb_func_start sub_8197B1C +sub_8197B1C: @ 8197B1C + push {r4,r5,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =gUnknown_0203CD9C + strh r2, [r0] + ldr r0, =gUnknown_0203CD9E + strb r3, [r0] + ldr r1, =sub_8197BB4 + adds r0, r5, 0 + bl CallWindowFunction + adds r0, r5, 0 + movs r1, 0x11 + bl FillWindowPixelBuffer + adds r0, r5, 0 + bl PutWindowTilemap + cmp r4, 0x1 + bne _08197B52 + adds r0, r5, 0 + movs r1, 0x3 + bl CopyWindowToVram +_08197B52: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8197B1C + + thumb_func_start sub_8197B64 +sub_8197B64: @ 8197B64 + push {r4-r6,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =gUnknown_0203CD9C + strh r2, [r0] + ldr r5, =gUnknown_0203CD9E + adds r0, r6, 0 + movs r1, 0x5 + bl GetWindowAttribute + strb r0, [r5] + ldr r1, =sub_8197BB4 + adds r0, r6, 0 + bl CallWindowFunction + adds r0, r6, 0 + movs r1, 0x11 + bl FillWindowPixelBuffer + adds r0, r6, 0 + bl PutWindowTilemap + cmp r4, 0x1 + bne _08197BA2 + adds r0, r6, 0 + movs r1, 0x3 + bl CopyWindowToVram +_08197BA2: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8197B64 + + thumb_func_start sub_8197BB4 +sub_8197BB4: @ 8197BB4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + mov r8, r0 + adds r5, r2, 0 + adds r6, r3, 0 + ldr r2, [sp, 0x44] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r0, r1, 24 + lsls r5, 24 + lsls r6, 24 + lsrs r6, 24 + lsls r1, r2, 24 + lsrs r1, 24 + str r1, [sp, 0x10] + ldr r2, =gUnknown_0203CD9C + ldrh r1, [r2] + adds r1, 0x1 + lsls r1, 16 + lsrs r1, 16 + lsrs r3, r0, 24 + str r3, [sp, 0xC] + movs r3, 0xFE + lsls r3, 24 + adds r2, r0, r3 + lsrs r2, 24 + str r2, [sp, 0x14] + lsrs r0, r5, 24 + mov r9, r0 + movs r2, 0xFF + lsls r2, 24 + adds r5, r2 + lsrs r5, 24 + movs r4, 0x1 + str r4, [sp] + str r4, [sp, 0x4] + ldr r3, =gUnknown_0203CD9E + mov r10, r3 + ldrb r0, [r3] + str r0, [sp, 0x8] + mov r0, r8 + ldr r2, [sp, 0x14] + adds r3, r5, 0 + bl FillBgTilemapBufferRect + ldr r0, =gUnknown_0203CD9C + ldrh r1, [r0] + adds r1, 0x3 + lsls r1, 16 + lsrs r1, 16 + ldr r0, [sp, 0xC] + subs r0, 0x1 + lsls r2, r0, 24 + lsrs r2, 24 + str r2, [sp, 0x18] + str r4, [sp] + str r4, [sp, 0x4] + mov r2, r10 + ldrb r0, [r2] + str r0, [sp, 0x8] + mov r0, r8 + ldr r2, [sp, 0x18] + adds r3, r5, 0 + bl FillBgTilemapBufferRect + ldr r3, =gUnknown_0203CD9C + ldrh r1, [r3] + adds r1, 0x4 + lsls r1, 16 + lsrs r1, 16 + subs r0, r6, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x1C] + str r0, [sp] + str r4, [sp, 0x4] + mov r2, r10 + ldrb r0, [r2] + str r0, [sp, 0x8] + mov r0, r8 + ldr r2, [sp, 0xC] + adds r3, r5, 0 + bl FillBgTilemapBufferRect + ldr r3, =gUnknown_0203CD9C + ldrh r1, [r3] + adds r1, 0x5 + lsls r1, 16 + lsrs r1, 16 + ldr r0, [sp, 0xC] + adds r7, r0, r6 + subs r0, r7, 0x1 + lsls r2, r0, 24 + lsrs r2, 24 + str r2, [sp, 0x20] + str r4, [sp] + str r4, [sp, 0x4] + mov r2, r10 + ldrb r0, [r2] + str r0, [sp, 0x8] + mov r0, r8 + ldr r2, [sp, 0x20] + adds r3, r5, 0 + bl FillBgTilemapBufferRect + ldr r3, =gUnknown_0203CD9C + ldrh r1, [r3] + adds r1, 0x6 + lsls r1, 16 + lsrs r1, 16 + lsls r2, r7, 24 + lsrs r7, r2, 24 + str r4, [sp] + str r4, [sp, 0x4] + mov r2, r10 + ldrb r0, [r2] + str r0, [sp, 0x8] + mov r0, r8 + adds r2, r7, 0 + adds r3, r5, 0 + bl FillBgTilemapBufferRect + ldr r3, =gUnknown_0203CD9C + ldrh r1, [r3] + adds r1, 0x7 + lsls r1, 16 + lsrs r1, 16 + str r4, [sp] + movs r5, 0x5 + str r5, [sp, 0x4] + mov r2, r10 + ldrb r0, [r2] + str r0, [sp, 0x8] + mov r0, r8 + ldr r2, [sp, 0x14] + mov r3, r9 + bl FillBgTilemapBufferRect + ldr r3, =gUnknown_0203CD9C + ldrh r1, [r3] + adds r1, 0x9 + lsls r1, 16 + lsrs r1, 16 + adds r6, 0x1 + lsls r6, 24 + lsrs r6, 24 + str r6, [sp] + str r5, [sp, 0x4] + mov r2, r10 + ldrb r0, [r2] + str r0, [sp, 0x8] + mov r0, r8 + ldr r2, [sp, 0x18] + mov r3, r9 + bl FillBgTilemapBufferRect + ldr r3, =gUnknown_0203CD9C + ldrh r1, [r3] + adds r1, 0xA + lsls r1, 16 + lsrs r1, 16 + str r4, [sp] + str r5, [sp, 0x4] + mov r2, r10 + ldrb r0, [r2] + str r0, [sp, 0x8] + mov r0, r8 + adds r2, r7, 0 + mov r3, r9 + bl FillBgTilemapBufferRect + ldr r3, =0x00000801 + adds r1, r3, 0 + ldr r0, =gUnknown_0203CD9C + ldrh r0, [r0] + adds r1, r0 + lsls r1, 16 + lsrs r1, 16 + ldr r2, [sp, 0x10] + add r9, r2 + mov r3, r9 + lsls r3, 24 + lsrs r3, 24 + mov r9, r3 + str r4, [sp] + str r4, [sp, 0x4] + mov r2, r10 + ldrb r0, [r2] + str r0, [sp, 0x8] + mov r0, r8 + ldr r2, [sp, 0x14] + bl FillBgTilemapBufferRect + ldr r3, =0x00000803 + adds r1, r3, 0 + ldr r0, =gUnknown_0203CD9C + ldrh r0, [r0] + adds r1, r0 + lsls r1, 16 + lsrs r1, 16 + str r4, [sp] + str r4, [sp, 0x4] + mov r2, r10 + ldrb r0, [r2] + str r0, [sp, 0x8] + mov r0, r8 + ldr r2, [sp, 0x18] + mov r3, r9 + bl FillBgTilemapBufferRect + ldr r3, =0x00000804 + adds r1, r3, 0 + ldr r0, =gUnknown_0203CD9C + ldrh r0, [r0] + adds r1, r0 + lsls r1, 16 + lsrs r1, 16 + ldr r2, [sp, 0x1C] + str r2, [sp] + str r4, [sp, 0x4] + mov r3, r10 + ldrb r0, [r3] + str r0, [sp, 0x8] + mov r0, r8 + ldr r2, [sp, 0xC] + mov r3, r9 + bl FillBgTilemapBufferRect + ldr r0, =0x00000805 + adds r1, r0, 0 + ldr r2, =gUnknown_0203CD9C + ldrh r2, [r2] + adds r1, r2 + lsls r1, 16 + lsrs r1, 16 + str r4, [sp] + str r4, [sp, 0x4] + mov r3, r10 + ldrb r0, [r3] + str r0, [sp, 0x8] + mov r0, r8 + ldr r2, [sp, 0x20] + mov r3, r9 + bl FillBgTilemapBufferRect + ldr r0, =0x00000806 + adds r1, r0, 0 + ldr r2, =gUnknown_0203CD9C + ldrh r2, [r2] + adds r1, r2 + lsls r1, 16 + lsrs r1, 16 + str r4, [sp] + str r4, [sp, 0x4] + mov r3, r10 + ldrb r0, [r3] + str r0, [sp, 0x8] + mov r0, r8 + adds r2, r7, 0 + mov r3, r9 + bl FillBgTilemapBufferRect + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8197BB4 + + thumb_func_start sub_8197DF8 +sub_8197DF8: @ 8197DF8 + push {r4,r5,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r1, =sub_8197E30 + adds r0, r5, 0 + bl CallWindowFunction + adds r0, r5, 0 + movs r1, 0 + bl FillWindowPixelBuffer + adds r0, r5, 0 + bl ClearWindowTilemap + cmp r4, 0x1 + bne _08197E26 + adds r0, r5, 0 + movs r1, 0x3 + bl CopyWindowToVram +_08197E26: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8197DF8 + + thumb_func_start sub_8197E30 +sub_8197E30: @ 8197E30 + push {r4,r5,lr} + sub sp, 0xC + adds r4, r1, 0 + adds r5, r2, 0 + ldr r1, [sp, 0x18] + lsls r0, 24 + lsrs r0, 24 + lsls r4, 24 + lsls r5, 24 + lsls r3, 24 + lsls r1, 24 + movs r2, 0xFD + lsls r2, 24 + adds r4, r2 + lsrs r4, 24 + movs r2, 0xFF + lsls r2, 24 + adds r5, r2 + lsrs r5, 24 + movs r2, 0xC0 + lsls r2, 19 + adds r3, r2 + lsrs r3, 24 + str r3, [sp] + movs r2, 0x80 + lsls r2, 18 + adds r1, r2 + lsrs r1, 24 + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + adds r2, r4, 0 + adds r3, r5, 0 + bl FillBgTilemapBufferRect + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8197E30 + + thumb_func_start SetWindowBorderStyle +@ void SetWindowBorderStyle(u8 windowId, bool copyToVram, s16 tileStart, s8 palette) +SetWindowBorderStyle: @ 8197E80 + push {r4,r5,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =gUnknown_0203CD9C + strh r2, [r0] + ldr r0, =gUnknown_0203CD9E + strb r3, [r0] + ldr r1, =DrawWindowBorder + adds r0, r5, 0 + bl CallWindowFunction + adds r0, r5, 0 + movs r1, 0x11 + bl FillWindowPixelBuffer + adds r0, r5, 0 + bl PutWindowTilemap + cmp r4, 0x1 + bne _08197EB6 + adds r0, r5, 0 + movs r1, 0x3 + bl CopyWindowToVram +_08197EB6: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end SetWindowBorderStyle + + thumb_func_start sub_8197EC8 +sub_8197EC8: @ 8197EC8 + push {r4-r6,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =gUnknown_0203CD9C + strh r2, [r0] + ldr r5, =gUnknown_0203CD9E + adds r0, r6, 0 + movs r1, 0x5 + bl GetWindowAttribute + strb r0, [r5] + ldr r1, =DrawWindowBorder + adds r0, r6, 0 + bl CallWindowFunction + adds r0, r6, 0 + movs r1, 0x11 + bl FillWindowPixelBuffer + adds r0, r6, 0 + bl PutWindowTilemap + cmp r4, 0x1 + bne _08197F06 + adds r0, r6, 0 + movs r1, 0x3 + bl CopyWindowToVram +_08197F06: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8197EC8 + + thumb_func_start DrawWindowBorder +DrawWindowBorder: @ 8197F18 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + mov r9, r0 + adds r6, r1, 0 + adds r4, r2, 0 + ldr r0, [sp, 0x38] + mov r1, r9 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + lsls r6, 24 + lsls r4, 24 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0x10] + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x14] + ldr r2, =gUnknown_0203CD9C + ldrh r1, [r2] + lsrs r0, r6, 24 + str r0, [sp, 0xC] + movs r2, 0xFF + lsls r2, 24 + adds r6, r2 + lsrs r6, 24 + lsrs r0, r4, 24 + mov r8, r0 + adds r4, r2 + lsrs r4, 24 + movs r5, 0x1 + str r5, [sp] + str r5, [sp, 0x4] + ldr r7, =gUnknown_0203CD9E + ldrb r0, [r7] + str r0, [sp, 0x8] + mov r0, r9 + adds r2, r6, 0 + adds r3, r4, 0 + bl FillBgTilemapBufferRect + ldr r2, =gUnknown_0203CD9C + ldrh r1, [r2] + adds r1, 0x1 + lsls r1, 16 + lsrs r1, 16 + ldr r0, [sp, 0x10] + str r0, [sp] + str r5, [sp, 0x4] + ldrb r0, [r7] + str r0, [sp, 0x8] + mov r0, r9 + ldr r2, [sp, 0xC] + adds r3, r4, 0 + bl FillBgTilemapBufferRect + ldr r2, =gUnknown_0203CD9C + ldrh r1, [r2] + adds r1, 0x2 + lsls r1, 16 + lsrs r1, 16 + ldr r0, [sp, 0xC] + ldr r2, [sp, 0x10] + adds r0, r2 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + str r5, [sp] + str r5, [sp, 0x4] + ldrb r0, [r7] + str r0, [sp, 0x8] + mov r0, r9 + mov r2, r10 + adds r3, r4, 0 + bl FillBgTilemapBufferRect + ldr r0, =gUnknown_0203CD9C + ldrh r1, [r0] + adds r1, 0x3 + lsls r1, 16 + lsrs r1, 16 + str r5, [sp] + ldr r2, [sp, 0x14] + str r2, [sp, 0x4] + ldrb r0, [r7] + str r0, [sp, 0x8] + mov r0, r9 + adds r2, r6, 0 + mov r3, r8 + bl FillBgTilemapBufferRect + ldr r0, =gUnknown_0203CD9C + ldrh r1, [r0] + adds r1, 0x5 + lsls r1, 16 + lsrs r1, 16 + str r5, [sp] + ldr r2, [sp, 0x14] + str r2, [sp, 0x4] + ldrb r0, [r7] + str r0, [sp, 0x8] + mov r0, r9 + mov r2, r10 + mov r3, r8 + bl FillBgTilemapBufferRect + ldr r0, =gUnknown_0203CD9C + ldrh r1, [r0] + adds r1, 0x6 + lsls r1, 16 + lsrs r1, 16 + ldr r2, [sp, 0x14] + add r8, r2 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + str r5, [sp] + str r5, [sp, 0x4] + ldrb r0, [r7] + str r0, [sp, 0x8] + mov r0, r9 + adds r2, r6, 0 + mov r3, r8 + bl FillBgTilemapBufferRect + ldr r2, =gUnknown_0203CD9C + ldrh r1, [r2] + adds r1, 0x7 + lsls r1, 16 + lsrs r1, 16 + ldr r0, [sp, 0x10] + str r0, [sp] + str r5, [sp, 0x4] + ldrb r0, [r7] + str r0, [sp, 0x8] + mov r0, r9 + ldr r2, [sp, 0xC] + mov r3, r8 + bl FillBgTilemapBufferRect + ldr r2, =gUnknown_0203CD9C + ldrh r1, [r2] + adds r1, 0x8 + lsls r1, 16 + lsrs r1, 16 + str r5, [sp] + str r5, [sp, 0x4] + ldrb r0, [r7] + str r0, [sp, 0x8] + mov r0, r9 + mov r2, r10 + mov r3, r8 + bl FillBgTilemapBufferRect + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end DrawWindowBorder + + thumb_func_start sub_8198070 +sub_8198070: @ 8198070 + push {r4,r5,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r1, =sub_81980A8 + adds r0, r5, 0 + bl CallWindowFunction + adds r0, r5, 0 + movs r1, 0 + bl FillWindowPixelBuffer + adds r0, r5, 0 + bl ClearWindowTilemap + cmp r4, 0x1 + bne _0819809E + adds r0, r5, 0 + movs r1, 0x3 + bl CopyWindowToVram +_0819809E: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8198070 + + thumb_func_start sub_81980A8 +sub_81980A8: @ 81980A8 + push {r4,r5,lr} + sub sp, 0xC + adds r4, r1, 0 + adds r5, r2, 0 + ldr r1, [sp, 0x18] + lsls r0, 24 + lsrs r0, 24 + lsls r4, 24 + lsls r5, 24 + lsls r3, 24 + lsls r1, 24 + movs r2, 0xFF + lsls r2, 24 + adds r4, r2 + lsrs r4, 24 + adds r5, r2 + lsrs r5, 24 + movs r2, 0x80 + lsls r2, 18 + adds r3, r2 + lsrs r3, 24 + str r3, [sp] + adds r1, r2 + lsrs r1, 24 + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + adds r2, r4, 0 + adds r3, r5, 0 + bl FillBgTilemapBufferRect + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81980A8 + + thumb_func_start sub_81980F0 +sub_81980F0: @ 81980F0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + ldr r4, [sp, 0x20] + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + lsls r3, 24 + lsrs r5, r3, 24 + lsls r4, 16 + lsrs r4, 16 + mov r0, sp + movs r1, 0 + movs r2, 0x8 + bl memset + cmp r6, 0x3 + bls _08198126 + movs r1, 0 + mov r0, sp + strb r1, [r0] + b _0819812A +_08198126: + mov r0, sp + strb r6, [r0] +_0819812A: + mov r1, sp + mov r0, r8 + strb r0, [r1, 0x2] + movs r0, 0x2 + strb r0, [r1, 0x4] + movs r0, 0x1E + subs r0, r7 + strb r0, [r1, 0x1] + strb r7, [r1, 0x3] + strb r5, [r1, 0x5] + strh r4, [r1, 0x6] + ldr r4, =gUnknown_0203CDA0 + mov r0, sp + bl AddWindow + strb r0, [r4] + cmp r5, 0xF + bls _08198158 + movs r5, 0xF0 + b _0819815C + .pool +_08198158: + lsls r0, r5, 28 + lsrs r5, r0, 24 +_0819815C: + ldr r0, =gUnknown_0860F0B0 + adds r1, r5, 0 + movs r2, 0x20 + bl LoadPalette + ldr r0, =gUnknown_0203CDA0 + ldrb r0, [r0] + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81980F0 + + thumb_func_start sub_8198180 +sub_8198180: @ 8198180 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + adds r6, r0, 0 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + ldr r5, =gUnknown_0203CDA0 + ldrb r0, [r5] + cmp r0, 0xFF + beq _081981EE + bl PutWindowTilemap + ldrb r0, [r5] + movs r1, 0xFF + bl FillWindowPixelBuffer + movs r0, 0 + adds r1, r6, 0 + movs r2, 0 + bl GetStringWidth + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r5] + movs r1, 0x1 + bl GetWindowAttribute + movs r2, 0xEC + subs r2, r7 + lsls r0, 3 + subs r2, r0 + subs r2, r4 + lsls r2, 24 + lsrs r2, 24 + ldrb r0, [r5] + ldr r1, =gUnknown_0860F0D0 + str r1, [sp] + movs r1, 0 + str r1, [sp, 0x4] + str r6, [sp, 0x8] + movs r3, 0x1 + bl box_print + mov r0, r8 + cmp r0, 0 + beq _081981EE + ldrb r0, [r5] + movs r1, 0x3 + bl CopyWindowToVram +_081981EE: + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8198180 + + thumb_func_start sub_8198204 +sub_8198204: @ 8198204 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + mov r10, r0 + adds r6, r1, 0 + ldr r0, [sp, 0x38] + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + mov r8, r3 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r4, 0 + ldr r0, =gUnknown_0203CDA0 + ldrb r1, [r0] + adds r7, r0, 0 + cmp r1, 0xFF + beq _081982C8 + cmp r2, 0 + beq _08198244 + add r0, sp, 0x14 + strb r4, [r0] + adds r1, r0, 0 + b _0819824A + .pool +_08198244: + add r1, sp, 0x14 + movs r0, 0xF + strb r0, [r1] +_0819824A: + movs r0, 0x1 + strb r0, [r1, 0x1] + movs r0, 0x2 + strb r0, [r1, 0x2] + adds r5, r7, 0 + ldrb r0, [r5] + bl PutWindowTilemap + ldrb r0, [r5] + movs r1, 0xFF + bl FillWindowPixelBuffer + cmp r6, 0 + beq _0819829E + movs r0, 0 + adds r1, r6, 0 + movs r2, 0 + bl GetStringWidth + lsls r0, 16 + lsrs r4, r0, 16 + ldrb r0, [r5] + movs r1, 0x1 + bl GetWindowAttribute + movs r2, 0xEC + mov r1, r8 + subs r2, r1 + lsls r0, 3 + subs r2, r0 + subs r2, r4 + lsls r2, 24 + lsrs r2, 24 + ldrb r0, [r5] + add r1, sp, 0x14 + str r1, [sp] + movs r1, 0 + str r1, [sp, 0x4] + str r6, [sp, 0x8] + movs r3, 0x1 + bl box_print +_0819829E: + ldrb r0, [r7] + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + add r2, sp, 0x14 + str r2, [sp, 0x8] + str r1, [sp, 0xC] + mov r1, r10 + str r1, [sp, 0x10] + movs r1, 0x1 + movs r2, 0x4 + movs r3, 0x1 + bl AddTextPrinterParametrized2 + mov r2, r9 + cmp r2, 0 + beq _081982C8 + ldrb r0, [r7] + movs r1, 0x3 + bl CopyWindowToVram +_081982C8: + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8198204 + + thumb_func_start sub_81982D8 +sub_81982D8: @ 81982D8 + push {lr} + ldr r1, =gUnknown_0203CDA0 + ldrb r0, [r1] + cmp r0, 0xFF + beq _081982E8 + movs r1, 0x3 + bl CopyWindowToVram +_081982E8: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81982D8 + + thumb_func_start sub_81982F0 +sub_81982F0: @ 81982F0 + push {r4,lr} + ldr r4, =gUnknown_0203CDA0 + ldrb r0, [r4] + cmp r0, 0xFF + beq _08198308 + movs r1, 0xFF + bl FillWindowPixelBuffer + ldrb r0, [r4] + movs r1, 0x3 + bl CopyWindowToVram +_08198308: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81982F0 + + thumb_func_start sub_8198314 +sub_8198314: @ 8198314 + push {r4,lr} + ldr r4, =gUnknown_0203CDA0 + ldrb r0, [r4] + cmp r0, 0xFF + beq _0819833C + movs r1, 0 + bl FillWindowPixelBuffer + ldrb r0, [r4] + bl ClearWindowTilemap + ldrb r0, [r4] + movs r1, 0x3 + bl CopyWindowToVram + ldrb r0, [r4] + bl RemoveWindow + movs r0, 0xFF + strb r0, [r4] +_0819833C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8198314 + + thumb_func_start sub_8198348 +sub_8198348: @ 8198348 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r4, [sp, 0x18] + mov r8, r4 + ldr r4, [sp, 0x1C] + ldr r5, [sp, 0x20] + ldr r6, [sp, 0x24] + mov r12, r6 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r7, r5, 24 + ldr r5, =gUnknown_0203CD90 + movs r6, 0 + strb r2, [r5] + strb r3, [r5, 0x1] + strb r6, [r5, 0x3] + subs r4, 0x1 + strb r4, [r5, 0x4] + strb r0, [r5, 0x5] + strb r1, [r5, 0x6] + mov r0, r8 + strb r0, [r5, 0x8] + mov r4, r12 + strb r4, [r5, 0xB] + cmp r7, 0 + blt _08198388 + movs r0, 0x4 + ldrsb r0, [r5, r0] + cmp r7, r0 + ble _08198390 +_08198388: + strb r6, [r5, 0x2] + b _08198392 + .pool +_08198390: + strb r7, [r5, 0x2] +_08198392: + movs r0, 0 + bl MoveMenuCursor + ldr r0, =gUnknown_0203CD90 + ldrb r0, [r0, 0x2] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8198348 + + thumb_func_start sub_81983AC +sub_81983AC: @ 81983AC + push {r4-r6,lr} + sub sp, 0x10 + ldr r4, [sp, 0x20] + ldr r5, [sp, 0x24] + ldr r6, [sp, 0x28] + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + str r4, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + movs r4, 0 + str r4, [sp, 0xC] + bl sub_8198348 + lsls r0, 24 + lsrs r0, 24 + add sp, 0x10 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81983AC + + thumb_func_start sub_81983EC +sub_81983EC: @ 81983EC + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x14 + mov r8, r0 + adds r6, r1, 0 + ldr r4, [sp, 0x28] + ldr r5, [sp, 0x2C] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r6, 24 + lsrs r6, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + adds r0, r6, 0 + movs r1, 0x1 + str r2, [sp, 0xC] + str r3, [sp, 0x10] + bl GetMenuCursorDimensionByFont + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + mov r0, r8 + adds r1, r6, 0 + ldr r2, [sp, 0xC] + ldr r3, [sp, 0x10] + bl sub_81983AC + lsls r0, 24 + lsrs r0, 24 + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81983EC + + thumb_func_start RedrawMenuCursor +@ void RedrawMenuCursor(s8 oldPos, s8 newPos) +RedrawMenuCursor: @ 8198448 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0xC + adds r6, r0, 0 + mov r8, r1 + lsls r6, 24 + lsrs r6, 24 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r5, =gUnknown_0203CD90 + ldrb r0, [r5, 0x6] + movs r1, 0 + bl GetMenuCursorDimensionByFont + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r5, 0x6] + movs r1, 0x1 + bl GetMenuCursorDimensionByFont + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r5, 0x5] + mov r9, r1 + ldrb r2, [r5] + ldrb r1, [r5, 0x8] + adds r3, r1, 0 + muls r3, r6 + ldrb r6, [r5, 0x1] + adds r3, r6 + lsls r3, 16 + lsrs r3, 16 + str r4, [sp] + str r0, [sp, 0x4] + mov r0, r9 + movs r1, 0x11 + bl FillWindowPixelRect + ldrb r0, [r5, 0x5] + ldrb r1, [r5, 0x6] + ldr r2, =gUnknown_085EE498 + ldrb r3, [r5] + ldrb r4, [r5, 0x8] + mov r6, r8 + muls r6, r4 + adds r4, r6, 0 + ldrb r5, [r5, 0x1] + adds r4, r5 + lsls r4, 24 + lsrs r4, 24 + str r4, [sp] + movs r4, 0 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + bl Print + add sp, 0xC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end RedrawMenuCursor + + thumb_func_start MoveMenuCursor +@ s8 MoveMenuCursor(s8 cursorDelta) +MoveMenuCursor: @ 81984D8 + push {r4,r5,lr} + ldr r1, =gUnknown_0203CD90 + ldrb r5, [r1, 0x2] + movs r2, 0x2 + ldrsb r2, [r1, r2] + lsls r0, 24 + asrs r3, r0, 24 + adds r2, r3 + movs r0, 0x3 + ldrsb r0, [r1, r0] + adds r4, r1, 0 + cmp r2, r0 + bge _081984FC + ldrb r0, [r4, 0x4] + b _0819850A + .pool +_081984FC: + movs r0, 0x4 + ldrsb r0, [r4, r0] + cmp r2, r0 + ble _08198508 + ldrb r0, [r4, 0x3] + b _0819850A +_08198508: + adds r0, r3, r5 +_0819850A: + strb r0, [r4, 0x2] + ldrb r1, [r4, 0x2] + adds r0, r5, 0 + bl RedrawMenuCursor + ldrb r0, [r4, 0x2] + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end MoveMenuCursor + + thumb_func_start MoveMenuCursorNoWrapAround +@ s8 MoveMenuCursorNoWrapAround(s8 cursorDelta) +MoveMenuCursorNoWrapAround: @ 819851C + push {r4,r5,lr} + ldr r1, =gUnknown_0203CD90 + ldrb r5, [r1, 0x2] + movs r2, 0x2 + ldrsb r2, [r1, r2] + lsls r0, 24 + asrs r3, r0, 24 + adds r2, r3 + movs r0, 0x3 + ldrsb r0, [r1, r0] + adds r4, r1, 0 + cmp r2, r0 + bge _08198540 + ldrb r0, [r4, 0x3] + b _0819854E + .pool +_08198540: + movs r0, 0x4 + ldrsb r0, [r4, r0] + cmp r2, r0 + ble _0819854C + ldrb r0, [r4, 0x4] + b _0819854E +_0819854C: + adds r0, r3, r5 +_0819854E: + strb r0, [r4, 0x2] + ldrb r1, [r4, 0x2] + adds r0, r5, 0 + bl RedrawMenuCursor + ldrb r0, [r4, 0x2] + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end MoveMenuCursorNoWrapAround + + thumb_func_start GetMenuCursorPos +GetMenuCursorPos: @ 8198560 + ldr r0, =gUnknown_0203CD90 + ldrb r0, [r0, 0x2] + bx lr + .pool + thumb_func_end GetMenuCursorPos + + thumb_func_start ProcessMenuInput +ProcessMenuInput: @ 819856C + push {r4,lr} + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08198598 + ldr r4, =gUnknown_0203CD90 + ldrb r0, [r4, 0xB] + cmp r0, 0 + bne _08198588 + movs r0, 0x5 + bl PlaySE +_08198588: + movs r0, 0x2 + ldrsb r0, [r4, r0] + b _081985D2 + .pool +_08198598: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081985A6 + movs r0, 0x1 + negs r0, r0 + b _081985D2 +_081985A6: + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081985BA + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + b _081985CA +_081985BA: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081985CE + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 +_081985CA: + bl MoveMenuCursor +_081985CE: + movs r0, 0x2 + negs r0, r0 +_081985D2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end ProcessMenuInput + + thumb_func_start ProcessMenuInputNoWrapAround +@ int ProcessMenuInputNoWrapAround() +ProcessMenuInputNoWrapAround: @ 81985D8 + push {r4-r6,lr} + ldr r4, =gUnknown_0203CD90 + ldrb r5, [r4, 0x2] + adds r6, r5, 0 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08198608 + ldrb r0, [r4, 0xB] + cmp r0, 0 + bne _081985F8 + movs r0, 0x5 + bl PlaySE +_081985F8: + movs r0, 0x2 + ldrsb r0, [r4, r0] + b _08198650 + .pool +_08198608: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08198616 + movs r0, 0x1 + negs r0, r0 + b _08198650 +_08198616: + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08198630 + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursorNoWrapAround + lsls r0, 24 + lsrs r0, 24 + cmp r5, r0 + beq _0819864C + b _08198646 +_08198630: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0819864C + movs r0, 0x1 + bl MoveMenuCursorNoWrapAround + lsls r0, 24 + lsrs r0, 24 + cmp r6, r0 + beq _0819864C +_08198646: + movs r0, 0x5 + bl PlaySE +_0819864C: + movs r0, 0x2 + negs r0, r0 +_08198650: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end ProcessMenuInputNoWrapAround + + thumb_func_start ProcessMenuInput_other +ProcessMenuInput_other: @ 8198658 + push {r4,lr} + ldr r2, =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08198684 + ldr r4, =gUnknown_0203CD90 + ldrb r0, [r4, 0xB] + cmp r0, 0 + bne _08198674 + movs r0, 0x5 + bl PlaySE +_08198674: + movs r0, 0x2 + ldrsb r0, [r4, r0] + b _081986BC + .pool +_08198684: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08198692 + movs r0, 0x1 + negs r0, r0 + b _081986BC +_08198692: + ldrh r0, [r2, 0x30] + movs r1, 0xF0 + ands r1, r0 + cmp r1, 0x40 + bne _081986A8 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + b _081986B4 +_081986A8: + cmp r1, 0x80 + bne _081986B8 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 +_081986B4: + bl MoveMenuCursor +_081986B8: + movs r0, 0x2 + negs r0, r0 +_081986BC: + pop {r4} + pop {r1} + bx r1 + thumb_func_end ProcessMenuInput_other + + thumb_func_start ProcessMenuInputNoWrapAround_other +ProcessMenuInputNoWrapAround_other: @ 81986C4 + push {r4-r6,lr} + ldr r4, =gUnknown_0203CD90 + ldrb r5, [r4, 0x2] + adds r6, r5, 0 + ldr r2, =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081986F4 + ldrb r0, [r4, 0xB] + cmp r0, 0 + bne _081986E4 + movs r0, 0x5 + bl PlaySE +_081986E4: + movs r0, 0x2 + ldrsb r0, [r4, r0] + b _0819873A + .pool +_081986F4: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08198702 + movs r0, 0x1 + negs r0, r0 + b _0819873A +_08198702: + ldrh r0, [r2, 0x30] + movs r1, 0xF0 + ands r1, r0 + cmp r1, 0x40 + bne _0819871E + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursorNoWrapAround + lsls r0, 24 + lsrs r0, 24 + cmp r5, r0 + beq _08198736 + b _08198730 +_0819871E: + cmp r1, 0x80 + bne _08198736 + movs r0, 0x1 + bl MoveMenuCursorNoWrapAround + lsls r0, 24 + lsrs r0, 24 + cmp r6, r0 + beq _08198736 +_08198730: + movs r0, 0x5 + bl PlaySE +_08198736: + movs r0, 0x2 + negs r0, r0 +_0819873A: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end ProcessMenuInputNoWrapAround_other + + thumb_func_start PrintTextArray +PrintTextArray: @ 8198740 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + ldr r4, [sp, 0x2C] + ldr r5, [sp, 0x30] + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + lsls r3, 24 + lsrs r3, 24 + mov r8, r3 + lsls r4, 24 + lsrs r7, r4, 24 + lsls r5, 24 + lsrs r5, 24 + movs r4, 0 + cmp r4, r5 + bcs _081987A4 +_08198774: + lsls r0, r4, 3 + ldr r1, [sp, 0x34] + adds r0, r1 + ldr r2, [r0] + adds r0, r7, 0 + muls r0, r4 + add r0, r8 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + adds r0, r6, 0 + mov r1, r10 + mov r3, r9 + bl Print + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r5 + bcc _08198774 +_081987A4: + adds r0, r6, 0 + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end PrintTextArray + + thumb_func_start sub_81987BC +sub_81987BC: @ 81987BC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + ldr r4, [sp, 0x40] + ldr r5, [sp, 0x44] + ldr r6, [sp, 0x4C] + ldr r7, [sp, 0x50] + mov r8, r7 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0x14] + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x18] + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0x1C] + lsls r4, 24 + lsrs r4, 24 + mov r10, r4 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + mov r9, r6 + mov r0, r8 + lsls r0, 24 + lsrs r6, r0, 24 + movs r4, 0 + cmp r4, r5 + bcs _0819883C +_08198804: + lsls r0, r4, 3 + ldr r1, [sp, 0x48] + adds r0, r1 + ldr r2, [r0] + mov r0, r10 + muls r0, r4 + ldr r1, [sp, 0x1C] + adds r0, r1, r0 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + mov r0, r9 + str r0, [sp, 0xC] + str r6, [sp, 0x10] + adds r0, r7, 0 + ldr r1, [sp, 0x14] + ldr r3, [sp, 0x18] + bl sub_8199F74 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r5 + bcc _08198804 +_0819883C: + adds r0, r7, 0 + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81987BC + + thumb_func_start sub_8198854 +sub_8198854: @ 8198854 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + mov r8, r0 + adds r6, r1, 0 + adds r4, r2, 0 + adds r5, r3, 0 + ldr r7, [sp, 0x24] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r6, 24 + lsrs r6, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + adds r0, r6, 0 + movs r1, 0 + bl GetFontAttribute + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + str r4, [sp] + str r5, [sp, 0x4] + str r7, [sp, 0x8] + mov r0, r8 + adds r1, r6, 0 + movs r3, 0x1 + bl PrintTextArray + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8198854 + + thumb_func_start AddItemMenuActionTextPrinters +AddItemMenuActionTextPrinters: @ 81988A4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + adds r6, r1, 0 + mov r8, r2 + ldr r1, [sp, 0x38] + mov r9, r1 + ldr r1, [sp, 0x3C] + ldr r2, [sp, 0x40] + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x10] + lsls r6, 24 + lsrs r6, 24 + mov r4, r8 + lsls r4, 24 + lsrs r4, 24 + mov r8, r4 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0x14] + mov r0, r9 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + lsls r2, 24 + lsrs r7, r2, 24 + mov r0, sp + ldrb r1, [r0, 0x10] + strb r1, [r0, 0x4] + strb r6, [r0, 0x5] + adds r0, r6, 0 + movs r1, 0x5 + bl GetFontAttribute + mov r3, sp + lsls r0, 4 + ldrb r2, [r3, 0xC] + movs r5, 0xF + adds r1, r5, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xC] + adds r0, r6, 0 + movs r1, 0x6 + bl GetFontAttribute + mov r3, sp + adds r1, r5, 0 + ands r1, r0 + ldrb r2, [r3, 0xD] + movs r4, 0x10 + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0xD] + adds r0, r6, 0 + movs r1, 0x7 + bl GetFontAttribute + mov r3, sp + lsls r0, 4 + ldrb r2, [r3, 0xD] + adds r1, r5, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xD] + adds r0, r6, 0 + movs r1, 0x4 + bl GetFontAttribute + mov r1, sp + ands r5, r0 + ldrb r0, [r1, 0xC] + ands r4, r0 + orrs r4, r5 + strb r4, [r1, 0xC] + mov r0, sp + mov r2, r9 + strb r2, [r0, 0xA] + adds r0, r6, 0 + movs r1, 0x3 + bl GetFontAttribute + mov r1, sp + strb r0, [r1, 0xB] + mov r0, sp + mov r4, r8 + strb r4, [r0, 0x6] + strb r4, [r0, 0x8] + movs r4, 0 + cmp r4, r7 + bcs _0819899E + mov r5, sp +_0819896E: + ldr r1, [sp, 0x48] + adds r0, r1, r4 + ldrb r0, [r0] + lsls r0, 3 + ldr r2, [sp, 0x44] + adds r0, r2 + ldr r0, [r0] + str r0, [sp] + mov r0, r10 + muls r0, r4 + ldr r1, [sp, 0x14] + adds r0, r1, r0 + strb r0, [r5, 0x7] + strb r0, [r5, 0x9] + mov r0, sp + movs r1, 0xFF + movs r2, 0 + bl AddTextPrinter + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r7 + bcc _0819896E +_0819899E: + ldr r0, [sp, 0x10] + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end AddItemMenuActionTextPrinters + + thumb_func_start sub_81989B8 +sub_81989B8: @ 81989B8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + mov r9, r0 + adds r4, r1, 0 + adds r6, r2, 0 + mov r8, r3 + ldr r7, [sp, 0x30] + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r4, 24 + lsrs r4, 24 + lsls r6, 24 + lsrs r6, 24 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + adds r0, r4, 0 + movs r1, 0 + bl GetFontAttribute + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + adds r0, r4, 0 + movs r1, 0x2 + bl GetFontAttribute + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + str r6, [sp, 0x4] + mov r0, r8 + str r0, [sp, 0x8] + str r7, [sp, 0xC] + ldr r0, [sp, 0x34] + str r0, [sp, 0x10] + mov r0, r9 + adds r1, r4, 0 + adds r2, r5, 0 + movs r3, 0x1 + bl AddItemMenuActionTextPrinters + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81989B8 + + thumb_func_start rbox_template_set +@ void rbox_template_set(WindowTemplate *template, char bg_id, char x, char y, char w, char h, char a7, s16 a8) +rbox_template_set: @ 8198A24 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r4, [sp, 0x18] + ldr r5, [sp, 0x1C] + ldr r6, [sp, 0x20] + ldr r7, [sp, 0x24] + mov r8, r7 + strb r1, [r0] + strb r2, [r0, 0x1] + strb r3, [r0, 0x2] + strb r4, [r0, 0x3] + strb r5, [r0, 0x4] + strb r6, [r0, 0x5] + mov r1, r8 + strh r1, [r0, 0x6] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end rbox_template_set + + thumb_func_start sub_8198A50 +sub_8198A50: @ 8198A50 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x18 + mov r8, r0 + ldr r0, [sp, 0x2C] + ldr r4, [sp, 0x30] + ldr r5, [sp, 0x34] + ldr r6, [sp, 0x38] + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r0, 24 + lsrs r0, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 16 + lsrs r6, 16 + str r0, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + str r6, [sp, 0xC] + add r0, sp, 0x10 + bl rbox_template_set + ldr r0, [sp, 0x10] + ldr r1, [sp, 0x14] + mov r2, r8 + str r0, [r2] + str r1, [r2, 0x4] + mov r0, r8 + add sp, 0x18 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r2} + bx r2 + thumb_func_end sub_8198A50 + + thumb_func_start sub_8198AA4 +sub_8198AA4: @ 8198AA4 + push {r4-r6,lr} + sub sp, 0x18 + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + ldr r0, [sp, 0x28] + ldr r1, [sp, 0x2C] + ldr r2, [sp, 0x30] + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 16 + lsrs r2, 16 + str r3, [sp] + str r0, [sp, 0x4] + str r1, [sp, 0x8] + str r2, [sp, 0xC] + add r0, sp, 0x10 + adds r1, r4, 0 + adds r2, r5, 0 + adds r3, r6, 0 + bl rbox_template_set + add r0, sp, 0x10 + bl AddWindow + lsls r0, 16 + lsrs r0, 16 + add sp, 0x18 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8198AA4 + + thumb_func_start sub_8198AF8 +sub_8198AF8: @ 8198AF8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + adds r6, r1, 0 + mov r8, r2 + mov r9, r3 + ldr r4, [sp, 0x3C] + ldr r5, [sp, 0x40] + ldr r1, [sp, 0x44] + mov r10, r1 + lsls r6, 24 + lsrs r6, 24 + mov r1, r8 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + mov r1, r9 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 24 + lsrs r5, 24 + mov r1, r10 + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + ldr r7, =gUnknown_0203CD9F + bl AddWindow + strb r0, [r7] + ldrb r0, [r7] + movs r1, 0x1 + adds r2, r4, 0 + adds r3, r5, 0 + bl SetWindowBorderStyle + ldr r0, =gUnknown_085EE491 + str r0, [sp, 0xC] + add r1, sp, 0xC + ldrb r0, [r7] + strb r0, [r1, 0x4] + adds r0, r1, 0 + strb r6, [r0, 0x5] + adds r0, r6, 0 + movs r1, 0 + bl GetFontAttribute + add r1, sp, 0xC + add r0, r8 + strb r0, [r1, 0x6] + adds r0, r1, 0 + mov r1, r9 + strb r1, [r0, 0x7] + adds r1, r0, 0 + ldrb r0, [r0, 0x6] + strb r0, [r1, 0x8] + adds r0, r1, 0 + ldrb r0, [r0, 0x7] + strb r0, [r1, 0x9] + adds r0, r6, 0 + movs r1, 0x5 + bl GetFontAttribute + add r3, sp, 0xC + lsls r0, 4 + ldrb r2, [r3, 0xC] + movs r5, 0xF + adds r1, r5, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xC] + adds r0, r6, 0 + movs r1, 0x6 + bl GetFontAttribute + add r3, sp, 0xC + adds r1, r5, 0 + ands r1, r0 + ldrb r2, [r3, 0xD] + movs r4, 0x10 + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0xD] + adds r0, r6, 0 + movs r1, 0x7 + bl GetFontAttribute + add r3, sp, 0xC + lsls r0, 4 + ldrb r2, [r3, 0xD] + adds r1, r5, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xD] + adds r0, r6, 0 + movs r1, 0x4 + bl GetFontAttribute + add r1, sp, 0xC + ands r5, r0 + ldrb r0, [r1, 0xC] + ands r4, r0 + orrs r4, r5 + strb r4, [r1, 0xC] + adds r0, r6, 0 + movs r1, 0x2 + bl GetFontAttribute + add r1, sp, 0xC + strb r0, [r1, 0xA] + adds r0, r6, 0 + movs r1, 0x3 + bl GetFontAttribute + add r1, sp, 0xC + strb r0, [r1, 0xB] + adds r0, r1, 0 + movs r1, 0xFF + movs r2, 0 + bl AddTextPrinter + adds r0, r6, 0 + movs r1, 0x1 + bl GetFontAttribute + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r7] + str r0, [sp] + movs r0, 0x2 + str r0, [sp, 0x4] + mov r0, r10 + str r0, [sp, 0x8] + adds r0, r1, 0 + adds r1, r6, 0 + mov r2, r8 + mov r3, r9 + bl sub_81983AC + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8198AF8 + + thumb_func_start sub_8198C34 +sub_8198C34: @ 8198C34 + push {lr} + sub sp, 0xC + lsls r1, 24 + lsrs r1, 24 + lsls r2, 16 + lsrs r2, 16 + lsls r3, 24 + lsrs r3, 24 + str r2, [sp] + str r3, [sp, 0x4] + movs r2, 0 + str r2, [sp, 0x8] + movs r3, 0x1 + bl sub_8198AF8 + add sp, 0xC + pop {r0} + bx r0 + thumb_func_end sub_8198C34 + + thumb_func_start sub_8198C58 +sub_8198C58: @ 8198C58 + push {r4,lr} + bl ProcessMenuInputNoWrapAround + lsls r0, 24 + asrs r4, r0, 24 + movs r0, 0x2 + negs r0, r0 + cmp r4, r0 + beq _08198C6E + bl sub_8198C78 +_08198C6E: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8198C58 + + thumb_func_start sub_8198C78 +sub_8198C78: @ 8198C78 + push {r4,lr} + ldr r4, =gUnknown_0203CD9F + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8198070 + ldrb r0, [r4] + bl RemoveWindow + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8198C78 + + thumb_func_start sub_8198C94 +sub_8198C94: @ 8198C94 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + ldr r4, [sp, 0x40] + ldr r5, [sp, 0x44] + ldr r6, [sp, 0x48] + ldr r7, [sp, 0x4C] + mov r8, r7 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0xC] + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x10] + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0x14] + lsls r4, 24 + lsrs r4, 24 + str r4, [sp, 0x18] + lsls r5, 24 + lsrs r5, 24 + str r5, [sp, 0x1C] + lsls r6, 24 + lsrs r6, 24 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r5, 0 + cmp r5, r9 + bcs _08198D3A +_08198CE0: + movs r4, 0 + adds r1, r5, 0x1 + mov r8, r1 + cmp r4, r6 + bcs _08198D30 + ldr r7, [sp, 0x1C] + adds r0, r7, 0 + muls r0, r5 + ldr r1, [sp, 0x14] + adds r0, r1, r0 + lsls r0, 24 + lsrs r7, r0, 24 +_08198CF8: + adds r0, r5, 0 + muls r0, r6 + adds r0, r4 + lsls r0, 3 + ldr r1, [sp, 0x50] + adds r0, r1 + ldr r2, [r0] + ldr r0, [sp, 0x18] + adds r3, r0, 0 + muls r3, r4 + ldr r1, [sp, 0x10] + adds r3, r1, r3 + lsls r3, 24 + lsrs r3, 24 + str r7, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + mov r0, r10 + ldr r1, [sp, 0xC] + bl Print + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r6 + bcc _08198CF8 +_08198D30: + mov r7, r8 + lsls r0, r7, 24 + lsrs r5, r0, 24 + cmp r5, r9 + bcc _08198CE0 +_08198D3A: + mov r0, r10 + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8198C94 + + thumb_func_start sub_8198D54 +sub_8198D54: @ 8198D54 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x18 + mov r9, r0 + mov r8, r1 + adds r4, r2, 0 + adds r5, r3, 0 + ldr r6, [sp, 0x34] + ldr r3, [sp, 0x38] + ldr r7, [sp, 0x3C] + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + lsls r3, 24 + lsrs r3, 24 + movs r1, 0 + str r3, [sp, 0x14] + bl GetFontAttribute + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + str r4, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + ldr r3, [sp, 0x14] + str r3, [sp, 0xC] + str r7, [sp, 0x10] + mov r0, r9 + mov r1, r8 + movs r3, 0 + bl sub_8198C94 + add sp, 0x18 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8198D54 + + thumb_func_start sub_8198DBC +sub_8198DBC: @ 8198DBC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + ldr r4, [sp, 0x40] + ldr r5, [sp, 0x44] + ldr r6, [sp, 0x48] + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x10] + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x14] + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0x18] + lsls r4, 24 + lsrs r4, 24 + str r4, [sp, 0x1C] + lsls r5, 24 + lsrs r5, 24 + mov r8, r5 + lsls r6, 24 + lsrs r6, 24 + mov r10, r6 + mov r0, sp + ldrb r1, [r0, 0x10] + strb r1, [r0, 0x4] + strb r7, [r0, 0x5] + adds r0, r7, 0 + movs r1, 0x5 + bl GetFontAttribute + mov r3, sp + lsls r0, 4 + ldrb r2, [r3, 0xC] + movs r5, 0xF + adds r1, r5, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xC] + adds r0, r7, 0 + movs r1, 0x6 + bl GetFontAttribute + mov r3, sp + adds r1, r5, 0 + ands r1, r0 + ldrb r2, [r3, 0xD] + movs r4, 0x10 + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0xD] + adds r0, r7, 0 + movs r1, 0x7 + bl GetFontAttribute + mov r3, sp + lsls r0, 4 + ldrb r2, [r3, 0xD] + adds r1, r5, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xD] + adds r0, r7, 0 + movs r1, 0x4 + bl GetFontAttribute + mov r1, sp + ands r5, r0 + ldrb r0, [r1, 0xC] + ands r4, r0 + orrs r4, r5 + strb r4, [r1, 0xC] + adds r0, r7, 0 + movs r1, 0x2 + bl GetFontAttribute + mov r1, sp + strb r0, [r1, 0xA] + adds r0, r7, 0 + movs r1, 0x3 + bl GetFontAttribute + mov r1, sp + strb r0, [r1, 0xB] + movs r6, 0 + cmp r6, r10 + bcs _08198EDE +_08198E7A: + movs r5, 0 + adds r2, r6, 0x1 + mov r9, r2 + cmp r5, r8 + bcs _08198ED4 + mov r4, sp +_08198E86: + mov r0, r8 + muls r0, r6 + adds r0, r5 + ldr r1, [sp, 0x50] + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, 3 + ldr r2, [sp, 0x4C] + adds r0, r2 + ldr r0, [r0] + str r0, [sp] + ldr r1, [sp, 0x1C] + adds r0, r1, 0 + muls r0, r5 + ldr r2, [sp, 0x14] + adds r0, r2, r0 + strb r0, [r4, 0x6] + adds r0, r7, 0 + movs r1, 0x1 + bl GetFontAttribute + adds r1, r6, 0 + muls r1, r0 + ldr r0, [sp, 0x18] + adds r1, r0, r1 + strb r1, [r4, 0x7] + ldrb r0, [r4, 0x6] + strb r0, [r4, 0x8] + strb r1, [r4, 0x9] + mov r0, sp + movs r1, 0xFF + movs r2, 0 + bl AddTextPrinter + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, r8 + bcc _08198E86 +_08198ED4: + mov r1, r9 + lsls r0, r1, 24 + lsrs r6, r0, 24 + cmp r6, r10 + bcc _08198E7A +_08198EDE: + ldr r0, [sp, 0x10] + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8198DBC + + thumb_func_start sub_8198EF8 +sub_8198EF8: @ 8198EF8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x18 + mov r8, r0 + adds r3, r1, 0 + adds r4, r2, 0 + ldr r5, [sp, 0x30] + ldr r6, [sp, 0x34] + ldr r7, [sp, 0x38] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r3, 24 + lsrs r3, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + adds r0, r3, 0 + movs r1, 0 + str r3, [sp, 0x14] + bl GetFontAttribute + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + str r4, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + str r7, [sp, 0xC] + ldr r0, [sp, 0x3C] + str r0, [sp, 0x10] + mov r0, r8 + ldr r3, [sp, 0x14] + adds r1, r3, 0 + movs r3, 0 + bl sub_8198DBC + add sp, 0x18 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8198EF8 + + thumb_func_start sub_8198F58 +sub_8198F58: @ 8198F58 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r4, [sp, 0x20] + mov r12, r4 + ldr r4, [sp, 0x24] + mov r8, r4 + ldr r4, [sp, 0x28] + mov r9, r4 + ldr r4, [sp, 0x2C] + mov r10, r4 + ldr r4, [sp, 0x30] + ldr r5, [sp, 0x34] + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r7, r5, 24 + ldr r5, =gUnknown_0203CD90 + movs r6, 0 + strb r2, [r5] + strb r3, [r5, 0x1] + strb r6, [r5, 0x3] + subs r4, 0x1 + strb r4, [r5, 0x4] + strb r0, [r5, 0x5] + strb r1, [r5, 0x6] + mov r0, r12 + strb r0, [r5, 0x7] + mov r4, r8 + strb r4, [r5, 0x8] + mov r0, r9 + strb r0, [r5, 0x9] + mov r4, r10 + strb r4, [r5, 0xA] + cmp r7, 0 + blt _08198FAC + movs r0, 0x4 + ldrsb r0, [r5, r0] + cmp r7, r0 + ble _08198FB4 +_08198FAC: + strb r6, [r5, 0x2] + b _08198FB6 + .pool +_08198FB4: + strb r7, [r5, 0x2] +_08198FB6: + movs r0, 0 + movs r1, 0 + bl sub_8199134 + ldr r0, =gUnknown_0203CD90 + ldrb r0, [r0, 0x2] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8198F58 + + thumb_func_start sub_8198FD4 +sub_8198FD4: @ 8198FD4 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x20 + mov r9, r0 + mov r8, r1 + mov r10, r2 + ldr r6, [sp, 0x3C] + ldr r4, [sp, 0x40] + ldr r5, [sp, 0x44] + ldr r2, [sp, 0x48] + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + mov r0, r10 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + lsls r3, 24 + lsrs r3, 24 + lsls r6, 24 + lsrs r6, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r2, 24 + lsrs r2, 24 + mov r0, r8 + movs r1, 0x1 + str r2, [sp, 0x18] + str r3, [sp, 0x1C] + bl GetMenuCursorDimensionByFont + lsls r0, 24 + lsrs r0, 24 + adds r1, r4, 0 + muls r1, r5 + lsls r1, 24 + lsrs r1, 24 + str r6, [sp] + str r0, [sp, 0x4] + str r4, [sp, 0x8] + str r5, [sp, 0xC] + str r1, [sp, 0x10] + ldr r2, [sp, 0x18] + str r2, [sp, 0x14] + mov r0, r9 + mov r1, r8 + mov r2, r10 + ldr r3, [sp, 0x1C] + bl sub_8198F58 + lsls r0, 24 + lsrs r0, 24 + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8198FD4 + + thumb_func_start sub_8199060 +sub_8199060: @ 8199060 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + mov r8, r0 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r0, r1, 24 + lsrs r7, r0, 24 + ldr r5, =gUnknown_0203CD90 + ldrb r0, [r5, 0x6] + movs r1, 0 + bl GetMenuCursorDimensionByFont + mov r9, r0 + mov r1, r9 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + ldrb r0, [r5, 0x6] + movs r1, 0x1 + bl GetMenuCursorDimensionByFont + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + ldrb r0, [r5, 0x9] + mov r10, r0 + mov r0, r8 + mov r1, r10 + bl __umodsi3 + ldrb r1, [r5, 0x7] + adds r4, r1, 0 + muls r4, r0 + ldrb r1, [r5] + adds r4, r1 + lsls r4, 24 + lsrs r4, 24 + mov r0, r8 + mov r1, r10 + bl __udivsi3 + ldrb r1, [r5, 0x8] + adds r3, r1, 0 + muls r3, r0 + ldrb r0, [r5, 0x1] + adds r3, r0 + lsls r3, 24 + lsrs r3, 24 + ldrb r0, [r5, 0x5] + mov r1, r9 + str r1, [sp] + str r6, [sp, 0x4] + movs r1, 0x11 + adds r2, r4, 0 + bl FillWindowPixelRect + ldrb r6, [r5, 0x9] + adds r0, r7, 0 + adds r1, r6, 0 + bl __umodsi3 + ldrb r1, [r5, 0x7] + adds r4, r1, 0 + muls r4, r0 + ldrb r0, [r5] + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r7, 0 + adds r1, r6, 0 + bl __udivsi3 + ldrb r1, [r5, 0x8] + adds r3, r1, 0 + muls r3, r0 + ldrb r1, [r5, 0x1] + adds r3, r1 + lsls r3, 24 + lsrs r3, 24 + ldrb r0, [r5, 0x5] + ldrb r1, [r5, 0x6] + ldr r2, =gUnknown_085EE498 + str r3, [sp] + movs r3, 0 + str r3, [sp, 0x4] + str r3, [sp, 0x8] + adds r3, r4, 0 + bl Print + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8199060 + + thumb_func_start sub_8199134 +sub_8199134: @ 8199134 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + ldr r1, =gUnknown_0203CD90 + ldrb r2, [r1, 0x2] + mov r8, r2 + lsls r0, 24 + asrs r6, r0, 24 + adds r5, r1, 0 + cmp r6, 0 + beq _0819918A + movs r7, 0x2 + ldrsb r7, [r5, r7] + ldrb r4, [r5, 0x9] + adds r0, r7, 0 + adds r1, r4, 0 + bl __modsi3 + adds r0, r6 + cmp r0, 0 + bge _08199174 + adds r0, r4, 0 + adds r0, 0xFF + add r0, r8 + b _08199188 + .pool +_08199174: + cmp r0, r4 + blt _08199184 + adds r0, r7, 0 + adds r1, r4, 0 + bl __divsi3 + muls r0, r4 + b _08199188 +_08199184: + mov r1, r8 + adds r0, r6, r1 +_08199188: + strb r0, [r5, 0x2] +_0819918A: + mov r2, r9 + lsls r0, r2, 24 + asrs r6, r0, 24 + cmp r6, 0 + beq _081991CE + movs r0, 0x2 + ldrsb r0, [r5, r0] + ldrb r4, [r5, 0x9] + adds r1, r4, 0 + bl __divsi3 + adds r1, r0, r6 + cmp r1, 0 + bge _081991B2 + ldrb r0, [r5, 0xA] + subs r0, 0x1 + muls r0, r4 + ldrb r1, [r5, 0x2] + adds r0, r1 + b _081991CC +_081991B2: + ldrb r0, [r5, 0xA] + cmp r1, r0 + blt _081991C4 + subs r0, 0x1 + adds r1, r4, 0 + muls r1, r0 + ldrb r0, [r5, 0x2] + subs r0, r1 + b _081991CC +_081991C4: + adds r0, r4, 0 + muls r0, r6 + ldrb r2, [r5, 0x2] + adds r0, r2 +_081991CC: + strb r0, [r5, 0x2] +_081991CE: + movs r1, 0x2 + ldrsb r1, [r5, r1] + movs r0, 0x4 + ldrsb r0, [r5, r0] + cmp r1, r0 + bgt _081991E4 + ldrb r1, [r5, 0x2] + mov r0, r8 + bl sub_8199060 + b _081991E8 +_081991E4: + mov r0, r8 + strb r0, [r5, 0x2] +_081991E8: + ldrb r0, [r5, 0x2] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8199134 + + thumb_func_start sub_81991F8 +sub_81991F8: @ 81991F8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + ldr r1, =gUnknown_0203CD90 + ldrb r7, [r1, 0x2] + lsls r0, 24 + asrs r4, r0, 24 + adds r5, r1, 0 + cmp r4, 0 + beq _0819922C + movs r0, 0x2 + ldrsb r0, [r5, r0] + ldrb r6, [r5, 0x9] + adds r1, r6, 0 + bl __modsi3 + adds r0, r4 + cmp r0, 0 + blt _0819922C + cmp r0, r6 + bge _0819922C + adds r0, r4, r7 + strb r0, [r5, 0x2] +_0819922C: + mov r1, r8 + lsls r0, r1, 24 + asrs r4, r0, 24 + cmp r4, 0 + beq _08199258 + movs r0, 0x2 + ldrsb r0, [r5, r0] + ldrb r6, [r5, 0x9] + adds r1, r6, 0 + bl __divsi3 + adds r0, r4 + cmp r0, 0 + blt _08199258 + ldrb r1, [r5, 0xA] + cmp r0, r1 + bge _08199258 + adds r0, r6, 0 + muls r0, r4 + ldrb r1, [r5, 0x2] + adds r0, r1 + strb r0, [r5, 0x2] +_08199258: + movs r1, 0x2 + ldrsb r1, [r5, r1] + movs r0, 0x4 + ldrsb r0, [r5, r0] + cmp r1, r0 + bgt _08199274 + ldrb r1, [r5, 0x2] + adds r0, r7, 0 + bl sub_8199060 + b _08199276 + .pool +_08199274: + strb r7, [r5, 0x2] +_08199276: + ldrb r0, [r5, 0x2] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81991F8 + + thumb_func_start sub_8199284 +sub_8199284: @ 8199284 + push {r4,lr} + ldr r4, =gMain + ldrh r1, [r4, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081992AC + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_0203CD90 + ldrb r0, [r0, 0x2] + lsls r0, 24 + asrs r0, 24 + b _0819932C + .pool +_081992AC: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081992BA + movs r0, 0x1 + negs r0, r0 + b _0819932C +_081992BA: + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081992D0 + movs r0, 0x5 + bl PlaySE + movs r1, 0x1 + negs r1, r1 + movs r0, 0 + b _08199324 +_081992D0: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081992E4 + movs r0, 0x5 + bl PlaySE + movs r0, 0 + movs r1, 0x1 + b _08199324 +_081992E4: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _081992F8 + bl GetLRKeysState + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08199304 +_081992F8: + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + b _08199322 +_08199304: + ldrh r1, [r4, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _0819931A + bl GetLRKeysState + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _08199328 +_0819931A: + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 +_08199322: + movs r1, 0 +_08199324: + bl sub_8199134 +_08199328: + movs r0, 0x2 + negs r0, r0 +_0819932C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8199284 + + thumb_func_start sub_8199334 +sub_8199334: @ 8199334 + push {r4-r6,lr} + ldr r5, =gUnknown_0203CD90 + ldrb r4, [r5, 0x2] + ldr r6, =gMain + ldrh r1, [r6, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0819935C + movs r0, 0x5 + bl PlaySE + movs r0, 0x2 + ldrsb r0, [r5, r0] + b _081993D2 + .pool +_0819935C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0819936A + movs r0, 0x1 + negs r0, r0 + b _081993D2 +_0819936A: + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0819937A + movs r1, 0x1 + negs r1, r1 + movs r0, 0 + b _081993BC +_0819937A: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08199388 + movs r0, 0 + movs r1, 0x1 + b _081993BC +_08199388: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _0819939C + bl GetLRKeysState + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081993A2 +_0819939C: + movs r0, 0x1 + negs r0, r0 + b _081993BA +_081993A2: + ldrh r1, [r6, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _081993B8 + bl GetLRKeysState + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _081993CE +_081993B8: + movs r0, 0x1 +_081993BA: + movs r1, 0 +_081993BC: + bl sub_81991F8 + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + beq _081993CE + movs r0, 0x5 + bl PlaySE +_081993CE: + movs r0, 0x2 + negs r0, r0 +_081993D2: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8199334 + + thumb_func_start sub_81993D8 +sub_81993D8: @ 81993D8 + push {r4,r5,lr} + ldr r4, =gMain + ldrh r1, [r4, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08199400 + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_0203CD90 + ldrb r0, [r0, 0x2] + lsls r0, 24 + asrs r0, 24 + b _0819947C + .pool +_08199400: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0819940E + movs r0, 0x1 + negs r0, r0 + b _0819947C +_0819940E: + ldrh r0, [r4, 0x30] + movs r5, 0xF0 + adds r1, r5, 0 + ands r1, r0 + cmp r1, 0x40 + bne _08199428 + movs r0, 0x5 + bl PlaySE + movs r1, 0x1 + negs r1, r1 + movs r0, 0 + b _08199474 +_08199428: + cmp r1, 0x80 + bne _08199438 + movs r0, 0x5 + bl PlaySE + movs r0, 0 + movs r1, 0x1 + b _08199474 +_08199438: + cmp r1, 0x20 + beq _08199448 + bl sub_812210C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08199454 +_08199448: + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + b _08199472 +_08199454: + ldrh r1, [r4, 0x30] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0x10 + beq _0819946A + bl sub_812210C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _08199478 +_0819946A: + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 +_08199472: + movs r1, 0 +_08199474: + bl sub_8199134 +_08199478: + movs r0, 0x2 + negs r0, r0 +_0819947C: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81993D8 + + thumb_func_start sub_8199484 +sub_8199484: @ 8199484 + push {r4-r6,lr} + ldr r6, =gUnknown_0203CD90 + ldrb r4, [r6, 0x2] + ldr r5, =gMain + ldrh r1, [r5, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081994AC + movs r0, 0x5 + bl PlaySE + movs r0, 0x2 + ldrsb r0, [r6, r0] + b _0819951E + .pool +_081994AC: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081994BA + movs r0, 0x1 + negs r0, r0 + b _0819951E +_081994BA: + ldrh r0, [r5, 0x30] + movs r6, 0xF0 + adds r1, r6, 0 + ands r1, r0 + cmp r1, 0x40 + bne _081994CE + movs r1, 0x1 + negs r1, r1 + movs r0, 0 + b _08199508 +_081994CE: + cmp r1, 0x80 + bne _081994D8 + movs r0, 0 + movs r1, 0x1 + b _08199508 +_081994D8: + cmp r1, 0x20 + beq _081994E8 + bl sub_812210C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081994EE +_081994E8: + movs r0, 0x1 + negs r0, r0 + b _08199506 +_081994EE: + ldrh r1, [r5, 0x30] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0x10 + beq _08199504 + bl sub_812210C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _0819951A +_08199504: + movs r0, 0x1 +_08199506: + movs r1, 0 +_08199508: + bl sub_81991F8 + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + beq _0819951A + movs r0, 0x5 + bl PlaySE +_0819951A: + movs r0, 0x2 + negs r0, r0 +_0819951E: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8199484 + + thumb_func_start InitMenuInUpperLeftCorner +@ int InitMenuInUpperLeftCorner(s8 windowId, s8 numItems, u8 initialCursorPos, bool doNotPlaySoundWhenAPressed) +InitMenuInUpperLeftCorner: @ 8199524 + push {r4-r6,lr} + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r5, r2, 24 + ldr r4, =gUnknown_0203CD90 + movs r6, 0 + strb r6, [r4] + movs r2, 0x1 + strb r2, [r4, 0x1] + strb r6, [r4, 0x3] + subs r1, 0x1 + strb r1, [r4, 0x4] + strb r0, [r4, 0x5] + strb r2, [r4, 0x6] + movs r0, 0x10 + strb r0, [r4, 0x8] + strb r3, [r4, 0xB] + cmp r5, 0 + blt _08199554 + movs r0, 0x4 + ldrsb r0, [r4, r0] + cmp r5, r0 + ble _0819955C +_08199554: + strb r6, [r4, 0x2] + b _0819955E + .pool +_0819955C: + strb r5, [r4, 0x2] +_0819955E: + movs r0, 0 + bl MoveMenuCursor + lsls r0, 24 + lsrs r0, 24 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end InitMenuInUpperLeftCorner + + thumb_func_start InitMenuInUpperLeftCornerPlaySoundWhenAPressed +InitMenuInUpperLeftCornerPlaySoundWhenAPressed: @ 8199570 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + movs r3, 0 + bl InitMenuInUpperLeftCorner + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end InitMenuInUpperLeftCornerPlaySoundWhenAPressed + + thumb_func_start PrintMenuTable +PrintMenuTable: @ 819958C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 24 + lsrs r7, r1, 24 + movs r5, 0 + cmp r5, r7 + bcs _081995D0 + movs r6, 0x80 + lsls r6, 17 + adds r4, r2, 0 +_081995AA: + ldr r2, [r4] + lsrs r0, r6, 24 + str r0, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + mov r0, r8 + movs r1, 0x1 + movs r3, 0x8 + bl Print + movs r0, 0x80 + lsls r0, 21 + adds r6, r0 + adds r4, 0x8 + adds r5, 0x1 + cmp r5, r7 + bcc _081995AA +_081995D0: + mov r0, r8 + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end PrintMenuTable + + thumb_func_start sub_81995E4 +sub_81995E4: @ 81995E4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + mov r9, r2 + mov r8, r3 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + mov r0, sp + movs r1, 0 + mov r10, r1 + strb r6, [r0, 0x4] + mov r1, sp + movs r0, 0x1 + strb r0, [r1, 0x5] + movs r1, 0x5 + bl GetFontAttribute + mov r3, sp + lsls r0, 4 + ldrb r2, [r3, 0xC] + movs r5, 0xF + adds r1, r5, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xC] + movs r0, 0x1 + movs r1, 0x6 + bl GetFontAttribute + mov r3, sp + adds r1, r5, 0 + ands r1, r0 + ldrb r2, [r3, 0xD] + movs r4, 0x10 + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0xD] + movs r0, 0x1 + movs r1, 0x7 + bl GetFontAttribute + mov r3, sp + lsls r0, 4 + ldrb r2, [r3, 0xD] + adds r1, r5, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xD] + movs r0, 0x1 + movs r1, 0x4 + bl GetFontAttribute + mov r1, sp + ands r5, r0 + ldrb r0, [r1, 0xC] + ands r4, r0 + orrs r4, r5 + strb r4, [r1, 0xC] + mov r0, sp + mov r1, r10 + strb r1, [r0, 0xA] + strb r1, [r0, 0xB] + movs r1, 0x8 + strb r1, [r0, 0x6] + strb r1, [r0, 0x8] + movs r4, 0 + cmp r4, r7 + bcs _081996A6 + mov r5, sp +_0819967C: + mov r1, r8 + adds r0, r1, r4 + ldrb r0, [r0] + lsls r0, 3 + add r0, r9 + ldr r0, [r0] + str r0, [sp] + lsls r0, r4, 4 + adds r0, 0x1 + strb r0, [r5, 0x7] + strb r0, [r5, 0x9] + mov r0, sp + movs r1, 0xFF + movs r2, 0 + bl AddTextPrinter + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r7 + bcc _0819967C +_081996A6: + adds r0, r6, 0 + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81995E4 + + thumb_func_start CreateYesNoMenu +@ void CreateYesNoMenu(struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos) +CreateYesNoMenu: @ 81996C0 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x10 + adds r4, r1, 0 + adds r5, r2, 0 + adds r6, r3, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + ldr r1, =gUnknown_0203CD9F + mov r8, r1 + bl AddWindow + mov r2, r8 + strb r0, [r2] + ldrb r0, [r2] + movs r1, 0x1 + adds r2, r4, 0 + adds r3, r5, 0 + bl SetWindowBorderStyle + ldr r0, =gUnknown_085EE491 + str r0, [sp] + mov r1, sp + mov r2, r8 + ldrb r0, [r2] + movs r2, 0 + mov r9, r2 + strb r0, [r1, 0x4] + mov r0, sp + movs r2, 0x1 + strb r2, [r0, 0x5] + movs r0, 0x8 + strb r0, [r1, 0x6] + mov r0, sp + strb r2, [r0, 0x7] + ldrb r0, [r0, 0x6] + strb r0, [r1, 0x8] + mov r0, sp + ldrb r0, [r0, 0x7] + strb r0, [r1, 0x9] + movs r0, 0x1 + movs r1, 0x5 + bl GetFontAttribute + mov r3, sp + lsls r0, 4 + ldrb r2, [r3, 0xC] + movs r5, 0xF + adds r1, r5, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xC] + movs r0, 0x1 + movs r1, 0x6 + bl GetFontAttribute + mov r3, sp + adds r1, r5, 0 + ands r1, r0 + ldrb r2, [r3, 0xD] + movs r4, 0x10 + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0xD] + movs r0, 0x1 + movs r1, 0x7 + bl GetFontAttribute + mov r3, sp + lsls r0, 4 + ldrb r2, [r3, 0xD] + adds r1, r5, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xD] + movs r0, 0x1 + movs r1, 0x4 + bl GetFontAttribute + mov r1, sp + ands r5, r0 + ldrb r0, [r1, 0xC] + ands r4, r0 + orrs r4, r5 + strb r4, [r1, 0xC] + mov r0, sp + mov r1, r9 + strb r1, [r0, 0xA] + strb r1, [r0, 0xB] + movs r1, 0xFF + movs r2, 0 + bl AddTextPrinter + mov r2, r8 + ldrb r0, [r2] + movs r1, 0x2 + adds r2, r6, 0 + bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end CreateYesNoMenu + + thumb_func_start sub_81997AC +sub_81997AC: @ 81997AC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0xC] + lsls r2, 24 + lsrs r6, r2, 24 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0x10] + movs r7, 0 + cmp r7, r3 + bcs _08199824 +_081997D4: + movs r4, 0 + adds r0, r7, 0x1 + mov r9, r0 + cmp r4, r6 + bcs _0819981C + lsls r0, r7, 4 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r5, 0x80 + lsls r5, 20 +_081997EC: + adds r0, r7, 0 + muls r0, r6 + adds r0, r4 + lsls r0, 3 + ldr r1, [sp, 0x34] + adds r0, r1 + ldr r2, [r0] + lsrs r3, r5, 24 + mov r0, r8 + str r0, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + mov r0, r10 + movs r1, 0x1 + bl Print + ldr r1, [sp, 0xC] + lsls r0, r1, 24 + adds r5, r0 + adds r4, 0x1 + cmp r4, r6 + bcc _081997EC +_0819981C: + mov r7, r9 + ldr r4, [sp, 0x10] + cmp r7, r4 + bcc _081997D4 +_08199824: + mov r0, r10 + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81997AC + + thumb_func_start sub_819983C +sub_819983C: @ 819983C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x10] + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0x14] + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + lsls r3, 24 + lsrs r3, 24 + mov r10, r3 + mov r0, sp + movs r6, 0 + ldrb r1, [r0, 0x10] + strb r1, [r0, 0x4] + mov r1, sp + movs r0, 0x1 + strb r0, [r1, 0x5] + movs r1, 0x5 + bl GetFontAttribute + mov r3, sp + lsls r0, 4 + ldrb r2, [r3, 0xC] + movs r5, 0xF + adds r1, r5, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xC] + movs r0, 0x1 + movs r1, 0x6 + bl GetFontAttribute + mov r3, sp + adds r1, r5, 0 + ands r1, r0 + ldrb r2, [r3, 0xD] + movs r4, 0x10 + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0xD] + movs r0, 0x1 + movs r1, 0x7 + bl GetFontAttribute + mov r3, sp + lsls r0, 4 + ldrb r2, [r3, 0xD] + adds r1, r5, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xD] + movs r0, 0x1 + movs r1, 0x4 + bl GetFontAttribute + mov r1, sp + ands r5, r0 + ldrb r0, [r1, 0xC] + ands r4, r0 + orrs r4, r5 + strb r4, [r1, 0xC] + mov r0, sp + strb r6, [r0, 0xA] + strb r6, [r0, 0xB] + movs r7, 0 + cmp r7, r10 + bcs _0819992A +_081998D6: + movs r5, 0 + adds r2, r7, 0x1 + mov r9, r2 + cmp r5, r8 + bcs _08199920 + mov r4, sp + lsls r0, r7, 4 + adds r6, r0, 0x1 +_081998E6: + mov r0, r8 + muls r0, r7 + adds r0, r5 + ldr r1, [sp, 0x3C] + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, 3 + ldr r2, [sp, 0x38] + adds r0, r2 + ldr r0, [r0] + str r0, [sp] + ldr r1, [sp, 0x14] + adds r0, r1, 0 + muls r0, r5 + adds r0, 0x8 + strb r0, [r4, 0x6] + strb r6, [r4, 0x7] + strb r0, [r4, 0x8] + strb r6, [r4, 0x9] + mov r0, sp + movs r1, 0xFF + movs r2, 0 + bl AddTextPrinter + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, r8 + bcc _081998E6 +_08199920: + mov r2, r9 + lsls r0, r2, 24 + lsrs r7, r0, 24 + cmp r7, r10 + bcc _081998D6 +_0819992A: + ldr r0, [sp, 0x10] + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_819983C + + thumb_func_start sub_8199944 +sub_8199944: @ 8199944 + push {r4-r7,lr} + ldr r4, [sp, 0x14] + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r4, 24 + lsrs r7, r4, 24 + ldr r6, =gUnknown_0203CD90 + movs r4, 0 + mov r12, r4 + mov r4, r12 + strb r4, [r6] + movs r5, 0x1 + strb r5, [r6, 0x1] + strb r4, [r6, 0x3] + adds r4, r2, 0 + muls r4, r3 + subs r4, 0x1 + strb r4, [r6, 0x4] + strb r0, [r6, 0x5] + strb r5, [r6, 0x6] + strb r1, [r6, 0x7] + movs r0, 0x10 + strb r0, [r6, 0x8] + strb r2, [r6, 0x9] + strb r3, [r6, 0xA] + cmp r7, 0 + blt _08199986 + movs r0, 0x4 + ldrsb r0, [r6, r0] + cmp r7, r0 + ble _08199990 +_08199986: + mov r0, r12 + strb r0, [r6, 0x2] + b _08199992 + .pool +_08199990: + strb r7, [r6, 0x2] +_08199992: + movs r0, 0 + movs r1, 0 + bl sub_8199134 + ldr r0, =gUnknown_0203CD90 + ldrb r0, [r0, 0x2] + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8199944 + + thumb_func_start clear_scheduled_bg_copies_to_vram +@ void clear_scheduled_bg_copies_to_vram() +clear_scheduled_bg_copies_to_vram: @ 81999A8 + push {lr} + ldr r0, =gUnknown_0203CDA4 + movs r1, 0 + movs r2, 0x4 + bl memset + pop {r0} + bx r0 + .pool + thumb_func_end clear_scheduled_bg_copies_to_vram + + thumb_func_start schedule_bg_copy_tilemap_to_vram +@ void schedule_bg_copy_tilemap_to_vram(u8 bg_id) +schedule_bg_copy_tilemap_to_vram: @ 81999BC + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gUnknown_0203CDA4 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + bx lr + .pool + thumb_func_end schedule_bg_copy_tilemap_to_vram + + thumb_func_start do_scheduled_bg_tilemap_copies_to_vram +@ void do_scheduled_bg_tilemap_copies_to_vram() +do_scheduled_bg_tilemap_copies_to_vram: @ 81999D0 + push {r4,lr} + ldr r4, =gUnknown_0203CDA4 + ldrb r0, [r4] + cmp r0, 0x1 + bne _081999E4 + movs r0, 0 + bl CopyBgTilemapBufferToVram + movs r0, 0 + strb r0, [r4] +_081999E4: + ldrb r0, [r4, 0x1] + cmp r0, 0x1 + bne _081999F4 + movs r0, 0x1 + bl CopyBgTilemapBufferToVram + movs r0, 0 + strb r0, [r4, 0x1] +_081999F4: + ldrb r0, [r4, 0x2] + cmp r0, 0x1 + bne _08199A04 + movs r0, 0x2 + bl CopyBgTilemapBufferToVram + movs r0, 0 + strb r0, [r4, 0x2] +_08199A04: + ldrb r0, [r4, 0x3] + cmp r0, 0x1 + bne _08199A14 + movs r0, 0x3 + bl CopyBgTilemapBufferToVram + movs r0, 0 + strb r0, [r4, 0x3] +_08199A14: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end do_scheduled_bg_tilemap_copies_to_vram + + thumb_func_start reset_temp_tile_data_buffers +@ void reset_temp_tile_data_buffers() +reset_temp_tile_data_buffers: @ 8199A20 + push {lr} + ldr r3, =gUnknown_0203CDA8 + ldr r1, =gUnknown_0203CDAC + movs r2, 0 + adds r0, r1, 0 + adds r0, 0x7C +_08199A2C: + str r2, [r0] + subs r0, 0x4 + cmp r0, r1 + bge _08199A2C + movs r0, 0 + strh r0, [r3] + pop {r0} + bx r0 + .pool + thumb_func_end reset_temp_tile_data_buffers + + thumb_func_start free_temp_tile_data_buffers_if_possible +free_temp_tile_data_buffers_if_possible: @ 8199A44 + push {r4-r6,lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _08199A88 + ldr r1, =gUnknown_0203CDA8 + ldrh r0, [r1] + cmp r0, 0 + beq _08199A7C + movs r4, 0 + ldrh r1, [r1] + cmp r4, r1 + bge _08199A76 + ldr r5, =gUnknown_0203CDAC + movs r6, 0 +_08199A64: + ldr r0, [r5] + bl Free + stm r5!, {r6} + adds r4, 0x1 + ldr r0, =gUnknown_0203CDA8 + ldrh r0, [r0] + cmp r4, r0 + blt _08199A64 +_08199A76: + ldr r1, =gUnknown_0203CDA8 + movs r0, 0 + strh r0, [r1] +_08199A7C: + movs r0, 0 + b _08199A8A + .pool +_08199A88: + movs r0, 0x1 +_08199A8A: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end free_temp_tile_data_buffers_if_possible + + thumb_func_start decompress_and_copy_tile_data_to_vram +@ int decompress_and_copy_tile_data_to_vram(u8 bg_id, int src, int size, u16 offset, u8 mode) +decompress_and_copy_tile_data_to_vram: @ 8199A90 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + adds r4, r1, 0 + adds r5, r2, 0 + ldr r1, [sp, 0x24] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r3, 16 + lsrs r3, 16 + mov r9, r3 + lsls r1, 24 + lsrs r7, r1, 24 + ldr r6, =gUnknown_0203CDA8 + ldrh r0, [r6] + cmp r0, 0x1F + bhi _08199AF8 + adds r0, r4, 0 + add r1, sp, 0x4 + bl malloc_and_decompress + adds r4, r0, 0 + cmp r5, 0 + bne _08199AC8 + ldr r5, [sp, 0x4] +_08199AC8: + cmp r4, 0 + beq _08199AEC + lsls r2, r5, 16 + lsrs r2, 16 + str r7, [sp] + mov r0, r8 + adds r1, r4, 0 + mov r3, r9 + bl copy_decompressed_tile_data_to_vram + ldr r2, =gUnknown_0203CDAC + ldrh r0, [r6] + adds r1, r0, 0x1 + strh r1, [r6] + lsls r0, 16 + lsrs r0, 14 + adds r0, r2 + str r4, [r0] +_08199AEC: + adds r0, r4, 0 + b _08199AFA + .pool +_08199AF8: + movs r0, 0 +_08199AFA: + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end decompress_and_copy_tile_data_to_vram + + thumb_func_start copy_decompressed_tile_data_to_vram_autofree +@ void copy_decompressed_tile_data_to_vram_autofree(u8 bg_id, int src, u16 size, u16 offset, u8 mode) +copy_decompressed_tile_data_to_vram_autofree: @ 8199B08 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + adds r5, r2, 0 + ldr r2, [sp, 0x24] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r3, 16 + lsrs r3, 16 + mov r9, r3 + lsls r2, 24 + lsrs r7, r2, 24 + adds r0, r1, 0 + add r1, sp, 0x4 + bl malloc_and_decompress + adds r6, r0, 0 + cmp r5, 0 + bne _08199B36 + ldr r5, [sp, 0x4] +_08199B36: + cmp r6, 0 + beq _08199B6E + ldr r0, =task_free_buf_after_copying_tile_data_to_vram + movs r1, 0 + bl CreateTask + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r2, r5, 16 + lsrs r2, 16 + str r7, [sp] + mov r0, r8 + adds r1, r6, 0 + mov r3, r9 + bl copy_decompressed_tile_data_to_vram + ldr r2, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r2 + strh r0, [r1, 0x8] + adds r0, r4, 0 + movs r1, 0x1 + adds r2, r6, 0 + bl SetWordTaskArg +_08199B6E: + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end copy_decompressed_tile_data_to_vram_autofree + + thumb_func_start task_free_buf_after_copying_tile_data_to_vram +@ void task_free_buf_after_copying_tile_data_to_vram(int task_id) +task_free_buf_after_copying_tile_data_to_vram: @ 8199B84 + 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 + movs r1, 0x8 + ldrsh r0, [r0, r1] + bl CheckForSpaceForDma3Request + lsls r0, 16 + cmp r0, 0 + bne _08199BB4 + adds r0, r4, 0 + movs r1, 0x1 + bl GetWordTaskArg + bl Free + adds r0, r4, 0 + bl DestroyTask +_08199BB4: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end task_free_buf_after_copying_tile_data_to_vram + + thumb_func_start malloc_and_decompress +@ void *malloc_and_decompress(void *src, int *size) +malloc_and_decompress: @ 8199BC0 + push {r4,r5,lr} + adds r5, r0, 0 + ldrb r0, [r5, 0x1] + strb r0, [r1] + ldrb r0, [r5, 0x2] + strb r0, [r1, 0x1] + ldrb r0, [r5, 0x3] + strb r0, [r1, 0x2] + movs r0, 0 + strb r0, [r1, 0x3] + ldr r0, [r1] + bl Alloc + adds r4, r0, 0 + cmp r4, 0 + beq _08199BE8 + adds r0, r5, 0 + adds r1, r4, 0 + bl LZ77UnCompWram +_08199BE8: + adds r0, r4, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end malloc_and_decompress + + thumb_func_start copy_decompressed_tile_data_to_vram +@ s16 copy_decompressed_tile_data_to_vram(u8 bg_id, int src, u16 size, u16 offset, u8 mode) +copy_decompressed_tile_data_to_vram: @ 8199BF0 + push {r4,lr} + adds r4, r1, 0 + ldr r1, [sp, 0x8] + lsls r0, 24 + lsrs r0, 24 + lsls r2, 16 + lsrs r2, 16 + lsls r3, 16 + lsrs r3, 16 + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0 + beq _08199C18 + cmp r1, 0x1 + beq _08199C20 + ldr r0, =0x0000ffff + b _08199C2A + .pool +_08199C18: + adds r1, r4, 0 + bl LoadBgTiles + b _08199C26 +_08199C20: + adds r1, r4, 0 + bl LoadBgTilemap +_08199C26: + lsls r0, 16 + lsrs r0, 16 +_08199C2A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end copy_decompressed_tile_data_to_vram + + thumb_func_start sub_8199C30 +sub_8199C30: @ 8199C30 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r5, r2, 0 + ldr r4, [sp, 0x28] + ldr r2, [sp, 0x2C] + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp] + lsls r5, 24 + lsrs r5, 24 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0x4] + lsls r4, 24 + lsrs r4, 24 + lsls r2, 24 + lsrs r2, 24 + mov r10, r2 + bl GetBgTilemapBuffer + mov r8, r0 + adds r0, r5, r4 + cmp r5, r0 + bge _08199CA8 + mov r9, r0 +_08199C6E: + ldr r3, [sp] + ldr r1, [sp, 0x4] + adds r0, r3, r1 + adds r7, r5, 0x1 + cmp r3, r0 + bge _08199CA0 + lsls r6, r5, 5 + ldr r1, =0x00000fff + mov r12, r1 + mov r1, r10 + lsls r5, r1, 12 + adds r4, r0, 0 +_08199C86: + adds r1, r6, r3 + lsls r1, 1 + add r1, r8 + ldrh r2, [r1] + mov r0, r12 + ands r0, r2 + orrs r0, r5 + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, r4 + blt _08199C86 +_08199CA0: + lsls r0, r7, 24 + lsrs r5, r0, 24 + cmp r5, r9 + blt _08199C6E +_08199CA8: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8199C30 + + thumb_func_start sub_8199CBC +sub_8199CBC: @ 8199CBC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + mov r10, r1 + ldr r1, [sp, 0x24] + ldr r4, [sp, 0x28] + lsls r0, 24 + lsrs r0, 24 + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp] + lsls r1, 24 + lsrs r5, r1, 24 + lsls r4, 24 + lsrs r4, 24 + mov r8, r4 + bl GetBgTilemapBuffer + adds r7, r0, 0 + movs r0, 0 + cmp r0, r8 + bcs _08199D2A +_08199CF4: + movs r2, 0 + adds r6, r0, 0x1 + cmp r2, r5 + bcs _08199D22 + adds r4, r0, 0 + muls r4, r5 + ldr r1, [sp] + adds r0, r1 + lsls r3, r0, 5 +_08199D06: + adds r1, r4, r2 + lsls r1, 1 + add r1, r10 + adds r0, r3, r2 + add r0, r9 + lsls r0, 1 + adds r0, r7 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, r5 + bcc _08199D06 +_08199D22: + lsls r0, r6, 24 + lsrs r0, 24 + cmp r0, r8 + bcc _08199CF4 +_08199D2A: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8199CBC + + thumb_func_start sub_8199D3C +sub_8199D3C: @ 8199D3C + push {r4-r7,lr} + adds r6, r0, 0 + adds r5, r1, 0 + ldr r0, [sp, 0x14] + adds r4, r2, 0 + muls r4, r3 + cmp r0, 0x1 + bne _08199D64 + adds r3, r6, 0 + movs r2, 0 + cmp r2, r4 + bge _08199D8C +_08199D54: + adds r1, r3, r2 + ldrb r0, [r1] + adds r0, r5 + strb r0, [r1] + adds r2, 0x1 + cmp r2, r4 + blt _08199D54 + b _08199D8C +_08199D64: + cmp r4, 0 + ble _08199D8C + movs r0, 0xFC + lsls r0, 8 + mov r12, r0 + ldr r0, =0x000003ff + adds r7, r0, 0 + adds r3, r6, 0 + adds r2, r4, 0 +_08199D76: + ldrh r0, [r3] + mov r1, r12 + ands r1, r0 + adds r0, r5 + ands r0, r7 + orrs r1, r0 + strh r1, [r3] + adds r3, 0x2 + subs r2, 0x1 + cmp r2, 0 + bne _08199D76 +_08199D8C: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8199D3C + + thumb_func_start sub_8199D98 +sub_8199D98: @ 8199D98 + push {lr} + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + pop {r0} + bx r0 + thumb_func_end sub_8199D98 + + thumb_func_start sub_8199DF0 +sub_8199DF0: @ 8199DF0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r8, r2 + mov r9, r3 + lsls r1, 24 + lsrs r6, r1, 24 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + movs r1, 0x4 + bl GetBgAttribute + lsls r0, 16 + movs r7, 0x40 + cmp r0, 0 + bne _08199E16 + movs r7, 0x20 +_08199E16: + adds r0, r5, 0 + movs r1, 0x1 + bl GetBgAttribute + adds r4, r0, 0 + adds r0, r5, 0 + movs r1, 0xA + bl GetBgAttribute + lsls r4, 16 + lsrs r4, 2 + lsls r0, 16 + lsrs r0, 16 + add r0, r8 + muls r0, r7 + adds r4, r0 + lsls r0, r6, 24 + lsls r1, r6, 16 + orrs r0, r1 + lsls r1, r6, 8 + orrs r0, r1 + orrs r0, r6 + movs r1, 0xC0 + lsls r1, 19 + adds r4, r1 + mov r2, r9 + muls r2, r7 + lsls r2, 16 + lsrs r2, 16 + adds r1, r4, 0 + movs r3, 0x1 + bl RequestDma3Fill + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8199DF0 + + thumb_func_start box_print +box_print: @ 8199E64 + push {r4-r6,lr} + sub sp, 0x10 + adds r4, r1, 0 + ldr r6, [sp, 0x20] + ldr r5, [sp, 0x24] + ldr r1, [sp, 0x28] + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + str r1, [sp] + mov r1, sp + strb r0, [r1, 0x4] + mov r0, sp + strb r4, [r0, 0x5] + strb r2, [r0, 0x6] + strb r3, [r0, 0x7] + ldrb r0, [r0, 0x6] + strb r0, [r1, 0x8] + mov r0, sp + ldrb r0, [r0, 0x7] + strb r0, [r1, 0x9] + adds r0, r4, 0 + movs r1, 0x2 + bl GetFontAttribute + mov r1, sp + strb r0, [r1, 0xA] + adds r0, r4, 0 + movs r1, 0x3 + bl GetFontAttribute + mov r1, sp + strb r0, [r1, 0xB] + mov r3, sp + ldrb r2, [r3, 0xC] + movs r1, 0x10 + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + strb r0, [r3, 0xC] + mov r2, sp + ldrb r0, [r6, 0x1] + lsls r0, 4 + movs r4, 0xF + strb r0, [r2, 0xC] + ldrb r2, [r6] + adds r0, r4, 0 + ands r0, r2 + ldrb r2, [r3, 0xD] + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xD] + mov r2, sp + ldrb r0, [r6, 0x2] + lsls r0, 4 + ands r1, r4 + orrs r1, r0 + strb r1, [r2, 0xD] + mov r0, sp + adds r1, r5, 0 + movs r2, 0 + bl AddTextPrinter + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end box_print + + thumb_func_start AddTextPrinterParametrized2 +@ void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, struct TextColor *color, u8 speed, u8 *str) +AddTextPrinterParametrized2: @ 8199EEC + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x10 + adds r5, r1, 0 + ldr r1, [sp, 0x28] + mov r8, r1 + ldr r1, [sp, 0x2C] + mov r9, r1 + ldr r6, [sp, 0x30] + ldr r1, [sp, 0x34] + ldr r4, [sp, 0x38] + str r4, [sp] + mov r4, sp + strb r0, [r4, 0x4] + mov r0, sp + strb r5, [r0, 0x5] + strb r2, [r0, 0x6] + strb r3, [r0, 0x7] + mov r2, sp + ldrb r0, [r0, 0x6] + strb r0, [r2, 0x8] + mov r0, sp + ldrb r0, [r0, 0x7] + strb r0, [r2, 0x9] + mov r0, sp + mov r2, r8 + strb r2, [r0, 0xA] + mov r2, r9 + strb r2, [r0, 0xB] + ldrb r3, [r4, 0xC] + movs r2, 0x10 + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + strb r0, [r4, 0xC] + mov r3, sp + ldrb r0, [r6, 0x1] + lsls r0, 4 + movs r5, 0xF + strb r0, [r3, 0xC] + ldrb r3, [r6] + adds r0, r5, 0 + ands r0, r3 + ldrb r3, [r4, 0xD] + ands r2, r3 + orrs r2, r0 + strb r2, [r4, 0xD] + mov r3, sp + ldrb r0, [r6, 0x2] + lsls r0, 4 + ands r2, r5 + orrs r2, r0 + strb r2, [r3, 0xD] + lsls r1, 24 + lsrs r1, 24 + mov r0, sp + movs r2, 0 + bl AddTextPrinter + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end AddTextPrinterParametrized2 + + thumb_func_start sub_8199F74 +sub_8199F74: @ 8199F74 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + adds r6, r1, 0 + ldr r4, [sp, 0x2C] + ldr r1, [sp, 0x30] + mov r8, r1 + ldr r7, [sp, 0x34] + ldr r5, [sp, 0x38] + ldr r1, [sp, 0x3C] + mov r9, r1 + lsls r6, 24 + lsrs r6, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r4, 24 + lsrs r4, 24 + mov r1, r8 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + str r2, [sp] + mov r1, sp + strb r0, [r1, 0x4] + mov r0, sp + strb r6, [r0, 0x5] + strb r3, [r0, 0x6] + strb r4, [r0, 0x7] + strb r3, [r0, 0x8] + strb r4, [r0, 0x9] + strb r5, [r0, 0xA] + mov r1, r9 + strb r1, [r0, 0xB] + mov r2, sp + ldrb r1, [r2, 0xC] + movs r5, 0x10 + negs r5, r5 + adds r0, r5, 0 + ands r0, r1 + strb r0, [r2, 0xC] + adds r0, r6, 0 + movs r1, 0x5 + bl GetFontAttribute + mov r3, sp + lsls r0, 4 + ldrb r2, [r3, 0xC] + movs r4, 0xF + adds r1, r4, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xC] + adds r0, r6, 0 + movs r1, 0x6 + bl GetFontAttribute + mov r2, sp + adds r1, r4, 0 + ands r1, r0 + ldrb r0, [r2, 0xD] + ands r5, r0 + orrs r5, r1 + strb r5, [r2, 0xD] + adds r0, r6, 0 + movs r1, 0x7 + bl GetFontAttribute + mov r2, sp + lsls r0, 4 + ldrb r1, [r2, 0xD] + ands r4, r1 + orrs r4, r0 + strb r4, [r2, 0xD] + mov r0, sp + mov r1, r8 + adds r2, r7, 0 + bl AddTextPrinter + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8199F74 + + thumb_func_start sub_819A024 +sub_819A024: @ 819A024 + push {r4-r7,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r7, r0, 24 + lsls r2, 16 + lsrs r4, r2, 16 + lsls r3, 16 + lsrs r5, r3, 16 + movs r2, 0 + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + ldrb r0, [r3] + ldr r6, =gStringVar4 + cmp r0, 0xFF + beq _0819A04C +_0819A042: + adds r2, 0x1 + adds r0, r3, r2 + ldrb r0, [r0] + cmp r0, 0xFF + bne _0819A042 +_0819A04C: + adds r0, r6, 0 + bl StringExpandPlaceholders + lsls r3, r4, 24 + lsrs r3, 24 + lsls r0, r5, 24 + lsrs r0, 24 + str r0, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + adds r0, r7, 0 + movs r1, 0x1 + adds r2, r6, 0 + bl Print + add sp, 0xC + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819A024 + + thumb_func_start sub_819A080 +sub_819A080: @ 819A080 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x28 + str r0, [sp] + str r1, [sp, 0x4] + ldr r0, [sp, 0x48] + ldr r4, [sp, 0x4C] + ldr r1, [sp, 0x50] + ldr r5, [sp, 0x54] + lsls r2, 16 + lsrs r2, 16 + str r2, [sp, 0x8] + lsls r3, 16 + lsrs r3, 16 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0xC] + lsls r4, 16 + lsrs r4, 16 + lsls r1, 16 + lsrs r1, 16 + lsls r5, 16 + lsrs r5, 16 + ldr r2, [sp, 0x4] + ldrh r0, [r2, 0x4] + ldr r2, [sp, 0xC] + subs r0, r2 + ldr r2, [sp, 0x8] + adds r2, r1, r2 + str r2, [sp, 0x10] + cmp r0, r1 + bge _0819A0CC + ldr r1, [sp, 0x8] + adds r0, r1 + str r0, [sp, 0x10] +_0819A0CC: + ldr r2, [sp, 0x4] + ldrh r1, [r2, 0x6] + subs r0, r1, r4 + cmp r0, r5 + bge _0819A0DE + adds r0, r3, r1 + subs r0, r4 + str r0, [sp, 0x14] + b _0819A0E2 +_0819A0DE: + adds r5, r3, r5 + str r5, [sp, 0x14] +_0819A0E2: + ldr r0, [sp] + ldrh r1, [r0, 0x4] + movs r2, 0x7 + adds r0, r1, 0 + ands r0, r2 + adds r1, r0 + asrs r1, 3 + str r1, [sp, 0x18] + ldr r0, [sp, 0x4] + ldrh r1, [r0, 0x4] + adds r0, r1, 0 + ands r0, r2 + adds r1, r0 + asrs r1, 3 + str r1, [sp, 0x1C] + mov r12, r3 + mov r8, r4 + ldr r1, [sp, 0x14] + cmp r12, r1 + blt _0819A10C + b _0819A24A +_0819A10C: + ldr r5, [sp, 0x8] + ldr r6, [sp, 0xC] + mov r2, r12 + adds r2, 0x1 + str r2, [sp, 0x20] + mov r0, r8 + adds r0, 0x1 + str r0, [sp, 0x24] + ldr r1, [sp, 0x10] + cmp r5, r1 + blt _0819A124 + b _0819A23A +_0819A124: + movs r7, 0x1 + movs r2, 0xF0 + mov r10, r2 + movs r0, 0xF + mov r9, r0 +_0819A12E: + asrs r0, r5, 1 + movs r1, 0x3 + ands r0, r1 + ldr r2, [sp] + ldr r1, [r2] + adds r1, r0 + asrs r0, r5, 3 + lsls r0, 5 + adds r1, r0 + mov r2, r12 + asrs r0, r2, 3 + ldr r2, [sp, 0x18] + muls r0, r2 + lsls r0, 5 + adds r1, r0 + mov r2, r12 + lsls r0, r2, 29 + lsrs r0, 27 + adds r3, r1, r0 + asrs r0, r6, 1 + movs r1, 0x3 + ands r0, r1 + ldr r2, [sp, 0x4] + ldr r1, [r2] + adds r1, r0 + asrs r0, r6, 3 + lsls r0, 5 + adds r1, r0 + mov r2, r8 + asrs r0, r2, 3 + ldr r2, [sp, 0x1C] + muls r0, r2 + lsls r0, 5 + adds r1, r0 + mov r2, r8 + lsls r0, r2, 29 + lsrs r0, 27 + adds r4, r1, r0 + adds r0, r4, 0 + ands r0, r7 + cmp r0, 0 + beq _0819A1DA + subs r4, 0x1 + adds r0, r6, 0 + ands r0, r7 + cmp r0, 0 + beq _0819A1B2 + ldrh r0, [r4] + ldr r2, =0x00000fff + ands r2, r0 + adds r0, r5, 0 + ands r0, r7 + cmp r0, 0 + beq _0819A1A8 + ldrb r1, [r3] + mov r0, r10 + ands r0, r1 + lsls r0, 8 + b _0819A22A + .pool +_0819A1A8: + ldrb r1, [r3] + mov r0, r9 + ands r0, r1 + lsls r0, 12 + b _0819A22A +_0819A1B2: + ldrh r0, [r4] + ldr r2, =0x0000f0ff + ands r2, r0 + adds r0, r5, 0 + ands r0, r7 + cmp r0, 0 + beq _0819A1D0 + ldrb r1, [r3] + mov r0, r10 + ands r0, r1 + lsls r0, 4 + b _0819A22A + .pool +_0819A1D0: + ldrb r1, [r3] + mov r0, r9 + ands r0, r1 + lsls r0, 8 + b _0819A22A +_0819A1DA: + adds r0, r6, 0 + ands r0, r7 + cmp r0, 0 + beq _0819A206 + ldrh r0, [r4] + ldr r2, =0x0000ff0f + ands r2, r0 + adds r0, r5, 0 + ands r0, r7 + cmp r0, 0 + beq _0819A1FC + ldrb r1, [r3] + mov r0, r10 + b _0819A228 + .pool +_0819A1FC: + ldrb r1, [r3] + mov r0, r9 + ands r0, r1 + lsls r0, 4 + b _0819A22A +_0819A206: + ldrh r0, [r4] + ldr r2, =0x0000fff0 + ands r2, r0 + adds r0, r5, 0 + ands r0, r7 + cmp r0, 0 + beq _0819A224 + ldrb r1, [r3] + mov r0, r10 + ands r0, r1 + lsrs r0, 4 + b _0819A22A + .pool +_0819A224: + ldrb r1, [r3] + mov r0, r9 +_0819A228: + ands r0, r1 +_0819A22A: + orrs r2, r0 + strh r2, [r4] + adds r5, 0x1 + adds r6, 0x1 + ldr r0, [sp, 0x10] + cmp r5, r0 + bge _0819A23A + b _0819A12E +_0819A23A: + ldr r1, [sp, 0x20] + mov r12, r1 + ldr r2, [sp, 0x24] + mov r8, r2 + ldr r0, [sp, 0x14] + cmp r12, r0 + bge _0819A24A + b _0819A10C +_0819A24A: + add sp, 0x28 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_819A080 + + thumb_func_start sub_819A25C +sub_819A25C: @ 819A25C + push {r4,lr} + adds r4, r0, 0 + adds r0, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, 16 + lsrs r0, 16 + bl sub_80D30B0 + adds r1, r4, 0 + movs r2, 0x20 + bl LoadPalette + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_819A25C + + thumb_func_start sub_819A27C +sub_819A27C: @ 819A27C + push {r4-r6,lr} + sub sp, 0x8 + adds r6, r0, 0 + adds r0, r1, 0 + adds r1, r2, 0 + adds r4, r3, 0 + ldr r5, [sp, 0x18] + lsls r6, 24 + lsrs r6, 24 + lsls r0, 16 + lsrs r0, 16 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + movs r2, 0x1 + bl sub_80D2EDC + adds r1, r0, 0 + movs r0, 0x20 + str r0, [sp] + str r0, [sp, 0x4] + adds r0, r6, 0 + adds r2, r4, 0 + adds r3, r5, 0 + bl BlitBitmapToWindow + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_819A27C + + thumb_func_start sub_819A2BC +sub_819A2BC: @ 819A2BC + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0x1 + beq _0819A2DC + cmp r1, 0x1 + ble _0819A2D2 + cmp r1, 0x2 + beq _0819A2E4 +_0819A2D2: + ldr r0, =gUnknown_08DC4318 + b _0819A2E6 + .pool +_0819A2DC: + ldr r0, =gUnknown_08DC4338 + b _0819A2E6 + .pool +_0819A2E4: + ldr r0, =gUnknown_08DC4358 +_0819A2E6: + adds r1, r2, 0 + movs r2, 0x20 + bl LoadPalette + pop {r0} + bx r0 + .pool + thumb_func_end sub_819A2BC + + thumb_func_start blit_move_info_icon +@ void blit_move_info_icon(u8 windowId, u8 a2, u16 x, u16 y) +blit_move_info_icon: @ 819A2F8 + push {r4,r5,lr} + sub sp, 0x18 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsls r2, 16 + lsrs r2, 16 + lsls r3, 16 + lsrs r3, 16 + ldr r4, =gUnknown_0860F0D4 + lsrs r1, 22 + adds r1, r4 + ldrh r5, [r1, 0x2] + lsls r5, 5 + ldr r4, =gUnknown_08DC4378 + adds r5, r4 + movs r4, 0x80 + str r4, [sp] + str r4, [sp, 0x4] + str r2, [sp, 0x8] + str r3, [sp, 0xC] + ldrb r2, [r1] + str r2, [sp, 0x10] + ldrb r1, [r1, 0x1] + str r1, [sp, 0x14] + adds r1, r5, 0 + movs r2, 0 + movs r3, 0 + bl BlitBitmapRectToWindow + add sp, 0x18 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end blit_move_info_icon + + thumb_func_start sub_819A344 +sub_819A344: @ 819A344 + push {r4-r7,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r2, 24 + lsrs r2, 24 + adds r5, r1, 0 + movs r1, 0xFC + strb r1, [r5] + adds r5, 0x1 + movs r0, 0x1 + strb r0, [r5] + adds r5, 0x1 + strb r2, [r5] + adds r5, 0x1 + strb r1, [r5] + adds r5, 0x1 + movs r0, 0x3 + strb r0, [r5] + adds r5, 0x1 + adds r2, 0x1 + strb r2, [r5] + adds r5, 0x1 + cmp r3, 0x4 + bhi _0819A43C + lsls r0, r3, 2 + ldr r1, =_0819A384 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0819A384: + .4byte _0819A398 + .4byte _0819A3A8 + .4byte _0819A3D6 + .4byte _0819A404 + .4byte _0819A414 +_0819A398: + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + adds r0, r5, 0 + bl StringCopy + b _0819A43C + .pool +_0819A3A8: + bl IsNationalPokedexEnabled + cmp r0, 0 + beq _0819A3B8 + movs r0, 0x1 + bl pokedex_count + b _0819A3BE +_0819A3B8: + movs r0, 0x1 + bl sub_80C0844 +_0819A3BE: + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r5, 0 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r5, r0, 0 + movs r0, 0xFF + strb r0, [r5] + b _0819A43C +_0819A3D6: + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldrh r1, [r0, 0xE] + adds r0, r5, 0 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r5, r0, 0 + movs r0, 0xF0 + strb r0, [r5] + adds r5, 0x1 + ldr r0, [r4] + ldrb r1, [r0, 0x10] + adds r0, r5, 0 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + b _0819A43C + .pool +_0819A404: + ldr r0, =gUnknown_02037318 + ldrb r1, [r0, 0x14] + adds r0, r5, 0 + bl sub_81245DC + b _0819A43C + .pool +_0819A414: + ldr r4, =0x00000867 + movs r6, 0 + adds r7, r5, 0x1 +_0819A41A: + lsls r0, r4, 16 + lsrs r0, 16 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _0819A42A + adds r6, 0x1 +_0819A42A: + adds r4, 0x1 + ldr r0, =0x0000086e + cmp r4, r0 + ble _0819A41A + adds r0, r6, 0 + subs r0, 0x5F + strb r0, [r5] + movs r0, 0xFF + strb r0, [r7] +_0819A43C: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819A344 + + thumb_func_start sub_819A44C +sub_819A44C: @ 819A44C + push {r4,r5,lr} + adds r5, r0, 0 + ldrb r4, [r5, 0x5] + lsrs r4, 4 + movs r0, 0x65 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsls r4, 16 + lsrs r4, 16 + lsrs r0, 24 + cmp r4, r0 + bne _0819A4BA + adds r0, r5, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0819A4B0 + ldrh r1, [r5, 0x2E] + movs r2, 0x2E + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _0819A484 + subs r0, r1, 0x1 + strh r0, [r5, 0x2E] + b _0819A4C2 +_0819A484: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x5 + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + bne _0819A4A6 + adds r0, r5, 0 + movs r1, 0 + bl StartSpriteAnim + movs r0, 0x20 + strh r0, [r5, 0x2E] + b _0819A4C2 +_0819A4A6: + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAnim + b _0819A4C2 +_0819A4B0: + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAnimIfDifferent + b _0819A4C2 +_0819A4BA: + adds r0, r5, 0 + movs r1, 0 + bl StartSpriteAnimIfDifferent +_0819A4C2: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_819A44C + + thumb_func_start sub_819A4C8 +sub_819A4C8: @ 819A4C8 + push {lr} + bl AnimateSprites + bl BuildOamBuffer + bl RunTextPrinters + bl UpdatePaletteFade + bl RunTasks + pop {r0} + bx r0 + thumb_func_end sub_819A4C8 + + thumb_func_start sub_819A4E4 +sub_819A4E4: @ 819A4E4 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_819A4E4 + + thumb_func_start sub_819A4F8 +sub_819A4F8: @ 819A4F8 + push {lr} + ldr r0, =gUnknown_0300127C + movs r1, 0 + str r1, [r0] + ldr r0, =sub_819A514 + bl SetMainCallback2 + pop {r0} + bx r0 + .pool + thumb_func_end sub_819A4F8 + + thumb_func_start sub_819A514 +sub_819A514: @ 819A514 + push {r4,r5,lr} + sub sp, 0xC + ldr r0, =gMain + movs r1, 0x87 + lsls r1, 3 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0xA + bls _0819A528 + b _0819A98E +_0819A528: + lsls r0, 2 + ldr r1, =_0819A53C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0819A53C: + .4byte _0819A568 + .4byte _0819A5C0 + .4byte _0819A69C + .4byte _0819A77C + .4byte _0819A7CC + .4byte _0819A868 + .4byte _0819A8A4 + .4byte _0819A8AC + .4byte _0819A8C4 + .4byte _0819A8DC + .4byte _0819A8FC +_0819A568: + ldr r4, =gUnknown_0203CE3C + ldr r0, [r4] + cmp r0, 0 + beq _0819A578 + bl Free + movs r0, 0 + str r0, [r4] +_0819A578: + movs r0, 0 + bl SetHBlankCallback + movs r0, 0 + bl SetVBlankCallback + movs r0, 0 + str r0, [sp, 0x8] + movs r1, 0xC0 + lsls r1, 19 + ldr r2, =0x05006000 + add r0, sp, 0x8 + bl CpuSet + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, =gUnknown_08610428 + movs r0, 0 + movs r2, 0x3 + bl InitBgsFromTemplates + ldr r0, =gUnknown_08610434 + bl InitWindows + bl DeactivateAllTextPrinters + b _0819A8E6 + .pool +_0819A5C0: + ldr r5, =gUnknown_0203CE2C + movs r4, 0x88 + lsls r4, 3 + adds r0, r4, 0 + bl Alloc + str r0, [r5] + ldr r5, =gUnknown_0203CE30 + adds r0, r4, 0 + bl AllocZeroed + str r0, [r5] + ldr r5, =gUnknown_0203CE34 + movs r4, 0x80 + lsls r4, 4 + adds r0, r4, 0 + bl Alloc + str r0, [r5] + ldr r5, =gUnknown_0203CE38 + adds r0, r4, 0 + bl AllocZeroed + str r0, [r5] + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + movs r0, 0x4C + movs r1, 0 + bl SetGpuReg + movs r0, 0x40 + movs r1, 0 + bl SetGpuReg + movs r0, 0x44 + movs r1, 0 + bl SetGpuReg + movs r0, 0x42 + movs r1, 0 + bl SetGpuReg + movs r0, 0x46 + movs r1, 0 + bl SetGpuReg + movs r0, 0x48 + movs r1, 0 + bl SetGpuReg + movs r0, 0x4A + movs r1, 0 + bl SetGpuReg + ldr r1, =gMain + movs r3, 0x87 + lsls r3, 3 + adds r1, r3 + b _0819A8EE + .pool +_0819A69C: + bl ResetPaletteFade + bl ResetSpriteData + bl ResetTasks + bl FreeAllSpritePalettes + ldr r0, =gUnknown_08DC0754 + ldr r5, =gUnknown_0203CE2C + ldr r1, [r5] + movs r2, 0x88 + lsls r2, 2 + bl CpuSet + ldr r0, =gUnknown_0861033C + ldr r4, =gUnknown_0203CE30 + ldr r1, [r4] + movs r2, 0x30 + bl CpuSet + ldr r1, [r5] + movs r2, 0x88 + lsls r2, 3 + movs r0, 0x1 + movs r3, 0 + bl LoadBgTiles + ldr r1, [r4] + movs r0, 0x3 + movs r2, 0x60 + movs r3, 0 + bl LoadBgTiles + ldr r0, =gUnknown_08DC0B94 + ldr r4, =gUnknown_0203CE34 + ldr r1, [r4] + movs r2, 0x80 + lsls r2, 3 + bl CpuSet + ldr r1, [r4] + movs r2, 0x80 + lsls r2, 4 + movs r0, 0x1 + movs r3, 0 + bl LoadBgTilemap + ldr r0, =gUnknown_08DC0714 + movs r1, 0 + movs r2, 0x40 + bl LoadPalette + ldr r4, =gUnknown_0861046C + adds r0, r4, 0 + movs r1, 0xF0 + movs r2, 0x8 + bl LoadPalette + adds r0, r4, 0 + movs r1, 0xE0 + movs r2, 0xA + bl LoadPalette + ldr r0, =gUnknown_0300127C + ldr r1, [r0] + ldrb r0, [r1, 0x6] + cmp r0, 0x1 + bne _0819A738 + ldr r0, =gPlttBufferUnfaded + movs r2, 0xA9 + lsls r2, 2 + adds r1, r2 + ldrh r1, [r1] + movs r3, 0xE4 + lsls r3, 1 + adds r0, r3 + strh r1, [r0] +_0819A738: + ldr r0, =gUnknown_0861039C + movs r1, 0x20 + movs r2, 0x4 + bl LoadPalette + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _0819A8EE + .pool +_0819A77C: + ldr r0, =gUnknown_0203CE38 + ldr r1, [r0] + movs r0, 0x3 + bl SetBgTilemapBuffer + ldr r5, =gUnknown_0861023C + movs r4, 0x8 + str r4, [sp] + str r4, [sp, 0x4] + movs r0, 0x3 + adds r1, r5, 0 + movs r2, 0xB + movs r3, 0x4 + bl CopyToBgTilemapBufferRect + str r4, [sp] + str r4, [sp, 0x4] + movs r0, 0x3 + adds r1, r5, 0 + movs r2, 0x2 + movs r3, 0x4 + bl CopyToBgTilemapBufferRect + str r4, [sp] + str r4, [sp, 0x4] + movs r0, 0x3 + adds r1, r5, 0 + movs r2, 0x14 + movs r3, 0x4 + bl CopyToBgTilemapBufferRect + movs r0, 0x3 + bl CopyBgTilemapBufferToVram + b _0819A8E6 + .pool +_0819A7CC: + ldr r0, =gUnknown_086103F4 + bl LoadSpritePalettes + ldr r0, =gUnknown_086103BC + bl LoadSpriteSheets + ldr r0, =gUnknown_086103E4 + bl LoadCompressedObjectPic + movs r0, 0 + bl ShowBg + movs r0, 0x1 + bl ShowBg + ldr r0, =sub_819A4E4 + bl SetVBlankCallback + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + movs r1, 0x9A + lsls r1, 5 + movs r0, 0 + bl SetGpuReg + ldr r0, =gUnknown_0300127C + ldr r0, [r0] + ldrb r0, [r0, 0x6] + cmp r0, 0x1 + bne _0819A854 + movs r0, 0x58 + movs r1, 0x98 + movs r2, 0x20 + movs r3, 0x60 + bl sub_819C5D0 + movs r0, 0x3 + bl ShowBg + ldr r1, =0x00001248 + movs r0, 0x50 + bl SetGpuReg + ldr r1, =0x0000040b + movs r0, 0x52 + bl SetGpuReg + b _0819A85A + .pool +_0819A854: + movs r0, 0x3 + bl HideBg +_0819A85A: + ldr r1, =gMain + movs r3, 0x87 + lsls r3, 3 + adds r1, r3 + b _0819A8EE + .pool +_0819A868: + ldr r4, =gUnknown_0300127C + ldr r1, [r4] + ldrb r0, [r1, 0x6] + cmp r0, 0x1 + bne _0819A878 + ldr r0, =gUnknown_0203CF20 + ldrb r0, [r0] + strb r0, [r1, 0x3] +_0819A878: + bl sub_819A9AC + bl sub_819AA18 + ldr r0, [r4] + ldrb r0, [r0, 0x6] + cmp r0, 0x1 + bne _0819A88C + bl sub_819BE34 +_0819A88C: + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _0819A8EE + .pool +_0819A8A4: + bl sub_819BA64 + movs r0, 0x2 + b _0819A8E2 +_0819A8AC: + bl sub_819BCF8 + movs r0, 0x5 + bl PutWindowTilemap + ldr r1, =gMain + movs r3, 0x87 + lsls r3, 3 + adds r1, r3 + b _0819A8EE + .pool +_0819A8C4: + bl sub_819B9E8 + movs r0, 0x1 + bl PutWindowTilemap + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _0819A8EE + .pool +_0819A8DC: + bl sub_819B9B4 + movs r0, 0 +_0819A8E2: + bl PutWindowTilemap +_0819A8E6: + ldr r1, =gMain + movs r2, 0x87 + lsls r2, 3 + adds r1, r2 +_0819A8EE: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0819A98E + .pool +_0819A8FC: + ldr r0, =sub_819C69C + movs r1, 0 + bl CreateTask + ldr r2, =gUnknown_0300127C + ldr r1, [r2] + ldr r3, =0x000002a1 + adds r1, r3 + strb r0, [r1] + ldr r3, [r2] + ldrb r5, [r3, 0x6] + cmp r5, 0 + bne _0819A954 + ldr r4, =gTasks + ldr r1, =0x000002a1 + adds r0, r3, r1 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + strh r5, [r0, 0x8] + ldr r0, =sub_819B378 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r1, r0, 24 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + strh r5, [r0, 0x8] + b _0819A988 + .pool +_0819A954: + ldr r4, =gTasks + ldr r2, =0x000002a1 + adds r0, r3, r2 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + movs r2, 0 + movs r1, 0x1 + strh r1, [r0, 0x8] + ldr r1, =0x000002a2 + adds r0, r3, r1 + strb r2, [r0] + ldr r0, =sub_819B124 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r1, r0, 24 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + movs r1, 0xD + strh r1, [r0, 0x8] +_0819A988: + ldr r0, =sub_819A4C8 + bl SetMainCallback2 +_0819A98E: + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819A514 + + thumb_func_start sub_819A9AC +sub_819A9AC: @ 819A9AC + push {r4,r5,lr} + ldr r5, =gUnknown_0300127C + ldr r4, [r5] + cmp r4, 0 + bne _0819AA12 + movs r0, 0xAB + lsls r0, 2 + bl AllocZeroed + str r0, [r5] + strb r4, [r0, 0x3] + ldr r1, [r5] + movs r0, 0x1 + strb r0, [r1, 0x5] + ldr r0, [r5] + strb r4, [r0, 0x6] + movs r2, 0 + movs r4, 0x6C + movs r3, 0 +_0819A9D2: + ldr r0, [r5] + adds r1, r2, 0 + muls r1, r4 + adds r0, r1 + strb r3, [r0, 0x10] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x5 + bls _0819A9D2 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x2 + beq _0819AA0C + movs r0, 0 + bl sub_819B484 + b _0819AA12 + .pool +_0819AA0C: + movs r0, 0 + bl sub_819B63C +_0819AA12: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_819A9AC + + thumb_func_start sub_819AA18 +sub_819AA18: @ 819AA18 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r4, 0 + mov r8, r4 + ldr r7, =gSprites +_0819AA24: + lsls r1, r4, 3 + adds r1, r4 + lsls r1, 2 + subs r1, r4 + adds r1, 0x20 + lsls r1, 16 + asrs r1, 16 + ldr r0, =gUnknown_086105D8 + movs r2, 0x40 + movs r3, 0x1 + bl CreateSprite + ldr r6, =gUnknown_0300127C + ldr r2, [r6] + movs r5, 0x6C + adds r1, r4, 0 + muls r1, r5 + adds r2, r1 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r2, 0xE] + ldrh r1, [r2, 0xE] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + mov r1, r8 + strh r1, [r0, 0x2E] + adds r0, r4, 0 + bl sub_819ADAC + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _0819AA24 + ldr r0, [r6] + ldrb r1, [r0, 0x3] + ldr r4, =gSprites + muls r1, r5 + adds r0, r1 + ldrh r0, [r0, 0xE] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldr r0, =gUnknown_086105F0 + movs r2, 0x20 + ldrsh r1, [r1, r2] + movs r2, 0x58 + movs r3, 0 + bl CreateSprite + ldr r1, [r6] + movs r5, 0 + strb r0, [r1, 0x4] + ldr r0, =gUnknown_08610608 + movs r1, 0xB0 + movs r2, 0x70 + movs r3, 0 + bl CreateSprite + ldr r1, [r6] + strb r0, [r1, 0x1] + ldr r0, =gUnknown_08610620 + movs r1, 0xB0 + movs r2, 0x90 + movs r3, 0 + bl CreateSprite + ldr r1, [r6] + strb r0, [r1, 0x2] + ldr r0, [r6] + ldrb r1, [r0, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r6] + ldrb r1, [r0, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + ldr r0, [r6] + ldrb r1, [r0, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x28 + strb r5, [r0] + ldr r0, [r6] + ldrb r1, [r0, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x29 + strb r5, [r0] + ldr r0, [r6] + ldrb r1, [r0, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x28 + strb r5, [r0] + ldr r0, [r6] + ldrb r1, [r0, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x29 + strb r5, [r0] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819AA18 + + thumb_func_start sub_819AB40 +sub_819AB40: @ 819AB40 + push {r4-r6,lr} + movs r4, 0 +_0819AB44: + ldr r6, =gUnknown_0300127C + ldr r1, [r6] + movs r0, 0x6C + muls r0, r4 + adds r1, r0 + ldrh r1, [r1, 0xE] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, =gSprites + adds r0, r5 + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _0819AB44 + ldr r0, [r6] + ldrb r1, [r0, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl DestroySprite + ldr r0, [r6] + ldrb r1, [r0, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl DestroySprite + ldr r0, [r6] + ldrb r1, [r0, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl DestroySprite + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819AB40 + + thumb_func_start sub_819ABA8 +sub_819ABA8: @ 819ABA8 + push {r4,lr} + lsls r0, 24 + cmp r0, 0 + ble _0819ABC8 + ldr r0, =gUnknown_0300127C + ldr r1, [r0] + ldrb r3, [r1, 0x3] + adds r2, r0, 0 + cmp r3, 0x5 + beq _0819ABC4 + adds r0, r3, 0x1 + b _0819ABDE + .pool +_0819ABC4: + movs r0, 0 + b _0819ABDE +_0819ABC8: + ldr r0, =gUnknown_0300127C + ldr r1, [r0] + ldrb r3, [r1, 0x3] + adds r2, r0, 0 + cmp r3, 0 + beq _0819ABDC + subs r0, r3, 0x1 + b _0819ABDE + .pool +_0819ABDC: + movs r0, 0x5 +_0819ABDE: + strb r0, [r1, 0x3] + ldr r2, [r2] + ldrb r3, [r2, 0x3] + ldr r4, =gSprites + ldrb r0, [r2, 0x4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + movs r0, 0x6C + muls r0, r3 + adds r2, r0 + ldrh r2, [r2, 0xE] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r4 + ldrh r0, [r0, 0x20] + strh r0, [r1, 0x20] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819ABA8 + + thumb_func_start sub_819AC10 +sub_819AC10: @ 819AC10 + push {lr} + lsls r0, 24 + cmp r0, 0 + ble _0819AC30 + ldr r0, =gUnknown_0300127C + ldr r1, [r0] + ldrb r3, [r1] + adds r2, r0, 0 + cmp r3, 0x2 + beq _0819AC2C + adds r0, r3, 0x1 + b _0819AC46 + .pool +_0819AC2C: + movs r0, 0 + b _0819AC46 +_0819AC30: + ldr r0, =gUnknown_0300127C + ldr r1, [r0] + ldrb r3, [r1] + adds r2, r0, 0 + cmp r3, 0 + beq _0819AC44 + subs r0, r3, 0x1 + b _0819AC46 + .pool +_0819AC44: + movs r0, 0x2 +_0819AC46: + strb r0, [r1] + ldr r3, =gSprites + ldr r2, [r2] + ldrb r0, [r2, 0x1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r0, [r2] + lsls r0, 4 + adds r0, 0x70 + strh r0, [r1, 0x22] + ldrb r0, [r2, 0x2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r0, [r2] + lsls r0, 4 + adds r0, 0x70 + strh r0, [r1, 0x22] + pop {r0} + bx r0 + .pool + thumb_func_end sub_819AC10 + + thumb_func_start sub_819AC78 +sub_819AC78: @ 819AC78 + push {lr} + lsls r0, 24 + cmp r0, 0 + ble _0819AC98 + ldr r0, =gUnknown_0300127C + ldr r1, [r0] + ldrb r3, [r1, 0x7] + adds r2, r0, 0 + cmp r3, 0x1 + beq _0819AC94 + adds r0, r3, 0x1 + b _0819ACAE + .pool +_0819AC94: + movs r0, 0 + b _0819ACAE +_0819AC98: + ldr r0, =gUnknown_0300127C + ldr r1, [r0] + ldrb r3, [r1, 0x7] + adds r2, r0, 0 + cmp r3, 0 + beq _0819ACAC + subs r0, r3, 0x1 + b _0819ACAE + .pool +_0819ACAC: + movs r0, 0x1 +_0819ACAE: + strb r0, [r1, 0x7] + ldr r3, =gSprites + ldr r2, [r2] + ldrb r0, [r2, 0x1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r0, [r2, 0x7] + lsls r0, 4 + adds r0, 0x70 + strh r0, [r1, 0x22] + ldrb r0, [r2, 0x2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r0, [r2, 0x7] + lsls r0, 4 + adds r0, 0x70 + strh r0, [r1, 0x22] + pop {r0} + bx r0 + .pool + thumb_func_end sub_819AC78 + + thumb_func_start sub_819ACE0 +sub_819ACE0: @ 819ACE0 + push {r4-r6,lr} + ldr r5, =gUnknown_0300127C + ldr r0, [r5] + ldrb r6, [r0, 0x3] + movs r1, 0x6C + adds r4, r6, 0 + muls r4, r1 + adds r0, r4 + ldrb r0, [r0, 0x10] + cmp r0, 0 + beq _0819AD60 + movs r0, 0x64 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, [r5] + ldrb r0, [r1, 0x5] + cmp r0, 0x3 + bne _0819AD44 + adds r0, r1, r4 + ldrb r0, [r0, 0x10] + cmp r0, 0x1 + bne _0819AD44 + movs r2, 0 + ldrb r0, [r1, 0x10] + cmp r0, 0x2 + beq _0819AD32 + movs r4, 0x6C +_0819AD1A: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x5 + bhi _0819AD32 + ldr r0, [r5] + adds r1, r2, 0 + muls r1, r4 + adds r0, r1 + ldrb r0, [r0, 0x10] + cmp r0, 0x2 + bne _0819AD1A +_0819AD32: + cmp r2, 0x6 + beq _0819AD9C + ldr r0, =gUnknown_0300127C + ldr r1, [r0] + movs r0, 0x6C + muls r0, r2 + adds r1, r0 + movs r0, 0x1 + strb r0, [r1, 0x10] +_0819AD44: + ldr r2, =gUnknown_0300127C + ldr r1, [r2] + movs r0, 0x6C + muls r0, r6 + adds r1, r0 + movs r0, 0 + strb r0, [r1, 0x10] + ldr r1, [r2] + ldrb r0, [r1, 0x5] + subs r0, 0x1 + b _0819AD78 + .pool +_0819AD60: + movs r0, 0x65 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, [r5] + adds r1, r0, r4 + ldrb r0, [r0, 0x5] + strb r0, [r1, 0x10] + ldr r1, [r5] + ldrb r0, [r1, 0x5] + adds r0, 0x1 +_0819AD78: + strb r0, [r1, 0x5] + ldr r2, =gSprites + ldr r0, =gUnknown_0300127C + ldr r0, [r0] + movs r1, 0x6C + muls r1, r6 + adds r0, r1 + ldrh r0, [r0, 0xE] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + lsls r3, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] +_0819AD9C: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819ACE0 + + thumb_func_start sub_819ADAC +sub_819ADAC: @ 819ADAC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gUnknown_0300127C + ldr r0, [r0] + movs r1, 0x6C + muls r1, r4 + adds r0, r1 + ldrb r0, [r0, 0x10] + cmp r0, 0 + beq _0819ADCC + movs r0, 0x65 + b _0819ADCE + .pool +_0819ADCC: + movs r0, 0x64 +_0819ADCE: + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, =gSprites + ldr r0, =gUnknown_0300127C + ldr r0, [r0] + movs r1, 0x6C + muls r1, r4 + adds r0, r1 + ldrh r0, [r0, 0xE] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + lsls r3, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819ADAC + + thumb_func_start sub_819AE08 +sub_819AE08: @ 819AE08 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r6, r0, r1 + movs r1, 0x8 + ldrsh r0, [r6, r1] + cmp r0, 0x7 + beq _0819AE64 + cmp r0, 0x7 + bgt _0819AE30 + cmp r0, 0x6 + beq _0819AE36 + b _0819AF50 + .pool +_0819AE30: + cmp r0, 0x8 + beq _0819AEE8 + b _0819AF50 +_0819AE36: + ldr r1, =gPlttBufferUnfaded + ldr r0, =gPlttBufferFaded + movs r2, 0xE4 + lsls r2, 1 + adds r0, r2 + ldrh r0, [r0] + adds r1, r2 + movs r2, 0 + strh r0, [r1] + movs r0, 0x1 + negs r0, r0 + str r2, [sp] + movs r1, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r0, 0x7 + strh r0, [r6, 0x8] + b _0819AF50 + .pool +_0819AE64: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _0819AF50 + ldr r4, =gUnknown_0300127C + ldr r0, [r4] + ldr r2, =0x000002a1 + adds r0, r2 + ldrb r0, [r0] + bl DestroyTask + ldr r1, [r4] + movs r3, 0xA6 + lsls r3, 2 + adds r0, r1, r3 + ldr r0, [r0] + movs r2, 0xA8 + lsls r2, 2 + adds r1, r2 + bl sub_819F444 + bl sub_819AB40 + ldr r4, =gUnknown_0203CE2C + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, =gUnknown_0203CE30 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, =gUnknown_0203CE34 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, =gUnknown_0203CE38 + ldr r0, [r4] + bl Free + str r5, [r4] + bl FreeAllWindowBuffers + movs r0, 0x8 + strh r0, [r6, 0x8] + b _0819AF50 + .pool +_0819AEE8: + ldr r4, =gUnknown_0300127C + ldr r1, [r4] + ldr r0, =gPlttBufferUnfaded + movs r3, 0xE4 + lsls r3, 1 + adds r0, r3 + ldrh r0, [r0] + adds r3, 0xDC + adds r1, r3 + strh r0, [r1] + adds r0, r2, 0 + bl DestroyTask + ldr r1, [r4] + movs r0, 0x1 + strb r0, [r1, 0x6] + ldr r0, [r4] + ldrb r6, [r0, 0x3] + ldr r4, =gUnknown_0203CE3C + movs r0, 0x96 + lsls r0, 2 + bl AllocZeroed + str r0, [r4] + movs r4, 0 +_0819AF1A: + ldr r5, =gUnknown_0203CE3C + ldr r1, [r5] + movs r0, 0x64 + muls r0, r4 + adds r0, r1 + ldr r1, =gUnknown_0300127C + ldr r1, [r1] + movs r2, 0x6C + muls r2, r4 + adds r1, r2 + adds r1, 0x14 + movs r2, 0x64 + bl memcpy + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _0819AF1A + ldr r1, [r5] + ldr r0, =sub_819A514 + str r0, [sp] + movs r0, 0x1 + adds r2, r6, 0 + movs r3, 0x5 + bl sub_81BF8EC +_0819AF50: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819AE08 + + thumb_func_start bc_exit_to_overworld +bc_exit_to_overworld: @ 819AF68 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r7, =gUnknown_0300127C + ldr r0, [r7] + movs r1, 0xA8 + lsls r1, 2 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0819B00E + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r1, [r4, r0] + cmp r1, 0 + beq _0819AFA0 + cmp r1, 0x1 + beq _0819AFB8 + b _0819B00E + .pool +_0819AFA0: + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _0819B00E +_0819AFB8: + bl UpdatePaletteFade + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _0819B00E + bl sub_819B764 + ldr r0, [r7] + ldr r1, =0x000002a1 + adds r0, r1 + ldrb r0, [r0] + bl DestroyTask + bl sub_819AB40 + ldr r4, =gUnknown_0203CE2C + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, =gUnknown_0203CE34 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, =gUnknown_0203CE38 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r0, [r7] + bl Free + str r5, [r7] + bl FreeAllWindowBuffers + ldr r0, =sub_80861B0 + bl SetMainCallback2 + adds r0, r6, 0 + bl DestroyTask +_0819B00E: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end bc_exit_to_overworld + + thumb_func_start sub_819B02C +sub_819B02C: @ 819B02C + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r7, =gUnknown_0300127C + ldr r0, [r7] + movs r1, 0xA8 + lsls r1, 2 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0819B11A + ldr r1, =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x5 + beq _0819B084 + cmp r0, 0x5 + bgt _0819B06C + cmp r0, 0x4 + beq _0819B07A + b _0819B11A + .pool +_0819B06C: + cmp r0, 0xA + bne _0819B11A + bl sub_819C4B4 + movs r0, 0x4 + strh r0, [r5, 0x8] + b _0819B11A +_0819B07A: + bl sub_819B8D4 + movs r0, 0x5 + strh r0, [r5, 0x8] + b _0819B11A +_0819B084: + ldr r2, =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + mov r8, r0 + movs r6, 0x1 + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _0819B0B8 + movs r0, 0x5 + bl PlaySE + ldr r0, [r7] + ldrb r4, [r0, 0x7] + cmp r4, 0 + bne _0819B0C6 + bl sub_819C568 + strh r4, [r5, 0x8] + ldr r0, =bc_exit_to_overworld + str r0, [r5] + b _0819B11A + .pool +_0819B0B8: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0819B0EC + movs r0, 0x5 + bl PlaySE +_0819B0C6: + movs r0, 0x4 + bl sub_819B958 + bl sub_819BC9C + ldr r0, [r7] + ldr r1, =0x000002a2 + adds r0, r1 + mov r1, r8 + strb r1, [r0] + strh r6, [r5, 0x8] + ldr r0, =sub_819B378 + str r0, [r5] + b _0819B11A + .pool +_0819B0EC: + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0819B106 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl sub_819AC78 + b _0819B11A +_0819B106: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0819B11A + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl sub_819AC78 +_0819B11A: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_819B02C + + thumb_func_start sub_819B124 +sub_819B124: @ 819B124 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x8] + subs r0, 0x2 + lsls r0, 16 + asrs r0, 16 + adds r6, r1, 0 + cmp r0, 0xB + bls _0819B144 + b _0819B36E +_0819B144: + lsls r0, 2 + ldr r1, =_0819B158 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0819B158: + .4byte _0819B188 + .4byte _0819B1EC + .4byte _0819B36E + .4byte _0819B36E + .4byte _0819B36E + .4byte _0819B36E + .4byte _0819B36E + .4byte _0819B1BC + .4byte _0819B36E + .4byte _0819B36E + .4byte _0819B300 + .4byte _0819B35C +_0819B188: + ldr r0, =gUnknown_0300127C + ldr r1, [r0] + ldrb r0, [r1, 0x6] + cmp r0, 0 + bne _0819B1A2 + ldr r2, =0x00000299 + adds r0, r1, r2 + movs r7, 0xA8 + lsls r7, 2 + adds r1, r7 + movs r2, 0 + bl sub_819F2B4 +_0819B1A2: + ldr r0, =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + movs r0, 0x9 + b _0819B36C + .pool +_0819B1BC: + ldr r4, =gUnknown_0300127C + ldr r0, [r4] + movs r1, 0xA8 + lsls r1, 2 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _0819B1CE + b _0819B36E +_0819B1CE: + bl sub_819B844 + ldr r1, [r4] + movs r0, 0 + strb r0, [r1, 0x6] + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + b _0819B344 + .pool +_0819B1EC: + ldr r2, =gMain + ldrh r1, [r2, 0x2E] + movs r7, 0x1 + movs r6, 0x1 + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _0819B27C + movs r0, 0x5 + bl PlaySE + bl sub_819BC04 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0x1 + bne _0819B228 + ldr r0, =gUnknown_0300127C + ldr r0, [r0] + ldr r2, =0x000002a2 + adds r0, r2 + b _0819B2AC + .pool +_0819B228: + cmp r0, 0x2 + bne _0819B248 + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0xA + strh r1, [r0, 0x8] + ldr r1, =sub_819B02C + str r1, [r0] + b _0819B36E + .pool +_0819B248: + cmp r1, 0x3 + bne _0819B260 + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0xB + strh r1, [r0, 0x8] + b _0819B2BA + .pool +_0819B260: + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0x6 + strh r1, [r0, 0x8] + ldr r1, =sub_819AE08 + str r1, [r0] + b _0819B36E + .pool +_0819B27C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0819B2D0 + movs r0, 0x5 + bl PlaySE + ldr r4, =gUnknown_0300127C + ldr r1, [r4] + movs r2, 0xA6 + lsls r2, 2 + adds r0, r1, r2 + ldr r0, [r0] + adds r2, 0x8 + adds r1, r2 + movs r2, 0 + bl sub_819F3F8 + movs r0, 0x3 + bl sub_819B958 + ldr r0, [r4] + ldr r1, =0x000002a2 + adds r0, r1 +_0819B2AC: + strb r7, [r0] + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + strh r6, [r0, 0x8] +_0819B2BA: + ldr r1, =sub_819B378 + str r1, [r0] + b _0819B36E + .pool +_0819B2D0: + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0819B2EA + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl sub_819AC10 + b _0819B36E +_0819B2EA: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0819B36E + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl sub_819AC10 + b _0819B36E +_0819B300: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + bne _0819B36E + ldr r4, =gUnknown_0300127C + ldr r2, [r4] + ldrb r0, [r2, 0x6] + cmp r0, 0x1 + bne _0819B338 + ldr r1, =gPlttBufferFaded + movs r7, 0xA9 + lsls r7, 2 + adds r0, r2, r7 + ldrh r0, [r0] + movs r2, 0xE4 + lsls r2, 1 + adds r1, r2 + strh r0, [r1] + ldr r0, =gPlttBufferUnfaded + subs r7, 0xBC + adds r1, r0, r7 + ldrh r1, [r1] + adds r0, r2 + strh r1, [r0] +_0819B338: + ldr r0, [r4] + strb r3, [r0, 0x6] + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r6 +_0819B344: + movs r1, 0x3 + strh r1, [r0, 0x8] + b _0819B36E + .pool +_0819B35C: + bl sub_819B844 + ldr r0, =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + movs r0, 0xC +_0819B36C: + strh r0, [r1, 0x8] +_0819B36E: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819B124 + + thumb_func_start sub_819B378 +sub_819B378: @ 819B378 + push {r4-r7,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r5, =gUnknown_0300127C + ldr r3, [r5] + movs r7, 0xA8 + lsls r7, 2 + adds r0, r3, r7 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0819B476 + ldr r1, =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r1, [r4, r0] + cmp r1, 0x1 + beq _0819B3DC + cmp r1, 0x1 + bgt _0819B3B4 + cmp r1, 0 + beq _0819B3BA + b _0819B476 + .pool +_0819B3B4: + cmp r1, 0xB + beq _0819B440 + b _0819B476 +_0819B3BA: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0819B476 + movs r0, 0x1 + movs r1, 0x1 + strh r1, [r4, 0x8] + ldr r2, =0x000002a2 + adds r1, r3, r2 + strb r0, [r1] + b _0819B476 + .pool +_0819B3DC: + ldr r2, =gMain + ldrh r0, [r2, 0x2E] + ands r1, r0 + cmp r1, 0 + beq _0819B40C + movs r0, 0x5 + bl PlaySE + ldr r0, [r5] + ldr r1, =0x000002a2 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + movs r0, 0x2 + strh r0, [r4, 0x8] + ldr r0, =sub_819B124 + str r0, [r4] + b _0819B476 + .pool +_0819B40C: + ldrh r1, [r2, 0x30] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0819B422 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + b _0819B432 +_0819B422: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0819B476 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 +_0819B432: + bl sub_819ABA8 + bl sub_819BCF8 + bl sub_819B9E8 + b _0819B476 +_0819B440: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r6, 0x1 + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _0819B476 + movs r0, 0x5 + bl PlaySE + ldr r1, [r5] + movs r2, 0xA6 + lsls r2, 2 + adds r0, r1, r2 + ldr r0, [r0] + adds r1, r7 + movs r2, 0 + bl sub_819F3F8 + bl sub_819BA64 + ldr r0, [r5] + ldr r1, =0x000002a2 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + strh r6, [r4, 0x8] +_0819B476: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819B378 + + thumb_func_start sub_819B484 +sub_819B484: @ 819B484 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x10] + movs r6, 0 + add r0, sp, 0xC + strb r6, [r0] + ldr r0, =0x000040ce + bl VarGet + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + ldr r7, =gSaveBlock2Ptr + ldr r2, [r7] + ldr r0, =0x00000ca9 + adds r4, r2, r0 + ldrb r0, [r4] + lsls r0, 30 + lsrs r0, 30 + adds r5, r0, 0 + lsls r0, r5, 1 + lsls r1, r6, 2 + adds r0, r1 + ldr r1, =0x00000de2 + adds r2, r1 + adds r2, r0 + ldrh r0, [r2] + movs r1, 0x7 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x18] + ldr r1, =gUnknown_0203BC8C + ldr r0, =gBattleFrontierMons + str r0, [r1] + ldrb r1, [r4] + movs r0, 0x3 + ands r0, r1 + movs r2, 0x32 + str r2, [sp, 0x14] + cmp r0, 0 + beq _0819B4EA + movs r3, 0x64 + str r3, [sp, 0x14] +_0819B4EA: + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_81A6F70 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x1C] + ldr r1, [r7] + ldrb r0, [r1, 0xA] + mov r9, r0 + ldrb r0, [r1, 0xB] + lsls r0, 8 + mov r2, r9 + orrs r2, r0 + ldrb r0, [r1, 0xC] + lsls r0, 16 + orrs r2, r0 + ldrb r0, [r1, 0xD] + lsls r0, 24 + orrs r2, r0 + mov r9, r2 + movs r3, 0 + mov r8, r3 +_0819B518: + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + mov r2, r8 + lsls r0, r2, 1 + add r0, r8 + lsls r0, 2 + adds r1, r0 + movs r3, 0xE7 + lsls r3, 4 + adds r1, r3 + ldrh r5, [r1] + ldr r0, =gUnknown_0300127C + ldr r1, [r0] + ldr r2, [sp, 0x10] + add r2, r8 + movs r3, 0x6C + adds r0, r2, 0 + muls r0, r3 + adds r1, r0 + strh r5, [r1, 0xC] + mov r10, r2 + ldr r0, [sp, 0x1C] + cmp r8, r0 + bcs _0819B570 + ldr r0, [sp, 0x18] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + b _0819B572 + .pool +_0819B570: + ldr r0, [sp, 0x18] +_0819B572: + movs r1, 0 + bl sub_81A6CA8 + lsls r0, 24 + lsrs r6, r0, 24 + movs r1, 0x6C + mov r4, r10 + muls r4, r1 + adds r4, 0xC + ldr r2, =gUnknown_0300127C + ldr r0, [r2] + adds r0, r4 + adds r0, 0x8 + ldr r1, =gUnknown_0203BC8C + ldr r2, [r1] + lsls r5, 4 + adds r2, r5, r2 + ldrh r1, [r2] + ldrb r3, [r2, 0xC] + str r6, [sp] + ldrb r2, [r2, 0xB] + str r2, [sp, 0x4] + mov r2, r9 + str r2, [sp, 0x8] + ldr r2, [sp, 0x14] + bl sub_8068634 + movs r1, 0 + add r0, sp, 0xC + strb r1, [r0] + movs r6, 0 + adds r7, r5, 0 + movs r3, 0x1 + add r8, r3 + ldr r3, =gUnknown_0300127C +_0819B5B8: + ldr r0, [r3] + adds r0, r4 + adds r0, 0x8 + ldr r5, =gUnknown_0203BC8C + ldr r1, [r5] + adds r1, r7, r1 + lsls r2, r6, 1 + adds r1, 0x2 + adds r1, r2 + ldrh r1, [r1] + adds r2, r6, 0 + str r3, [sp, 0x20] + bl sub_81A7024 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r3, [sp, 0x20] + cmp r6, 0x3 + bls _0819B5B8 + movs r0, 0x6C + mov r4, r10 + muls r4, r0 + adds r4, 0xC + ldr r1, =gUnknown_0300127C + ldr r0, [r1] + adds r0, r4 + adds r0, 0x8 + movs r1, 0x20 + add r2, sp, 0xC + bl SetMonData + ldr r2, =gUnknown_0300127C + ldr r0, [r2] + adds r0, r4 + adds r0, 0x8 + ldr r1, [r5] + adds r1, r7, r1 + ldrb r2, [r1, 0xA] + lsls r2, 1 + ldr r1, =gBattleFrontierHeldItems + adds r2, r1 + movs r1, 0xC + bl SetMonData + mov r3, r8 + lsls r0, r3, 24 + lsrs r0, 24 + mov r8, r0 + cmp r0, 0x5 + bhi _0819B620 + b _0819B518 +_0819B620: + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819B484 + + thumb_func_start sub_819B63C +sub_819B63C: @ 819B63C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x10] + add r0, sp, 0xC + movs r1, 0 + strb r1, [r0] + ldr r2, =gUnknown_0203BC8C + ldr r0, =gSlateportBattleTentMons + str r0, [r2] + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldrb r3, [r1, 0xA] + ldrb r0, [r1, 0xB] + lsls r0, 8 + orrs r3, r0 + ldrb r0, [r1, 0xC] + lsls r0, 16 + orrs r3, r0 + ldrb r0, [r1, 0xD] + lsls r0, 24 + orrs r3, r0 + mov r10, r3 + movs r7, 0 + mov r9, r7 +_0819B678: + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + mov r2, r9 + lsls r0, r2, 1 + add r0, r9 + lsls r0, 2 + adds r1, r0 + movs r3, 0xE7 + lsls r3, 4 + adds r1, r3 + ldrh r1, [r1] + mov r8, r1 + ldr r7, =gUnknown_0300127C + ldr r0, [r7] + ldr r6, [sp, 0x10] + add r6, r9 + movs r1, 0x6C + adds r4, r6, 0 + muls r4, r1 + adds r1, r0, r4 + mov r2, r8 + strh r2, [r1, 0xC] + adds r4, 0xC + adds r0, r4 + adds r0, 0x8 + ldr r3, =gUnknown_0203BC8C + ldr r2, [r3] + mov r7, r8 + lsls r5, r7, 4 + adds r2, r5, r2 + ldrh r1, [r2] + ldrb r3, [r2, 0xC] + movs r7, 0 + str r7, [sp] + ldrb r2, [r2, 0xB] + str r2, [sp, 0x4] + mov r2, r10 + str r2, [sp, 0x8] + movs r2, 0x1E + bl sub_8068634 + add r0, sp, 0xC + movs r3, 0 + strb r3, [r0] + movs r0, 0x1 + add r9, r0 +_0819B6D4: + ldr r1, =gUnknown_0300127C + ldr r0, [r1] + adds r0, r4 + adds r0, 0x8 + ldr r3, =gUnknown_0203BC8C + ldr r2, [r3] + mov r3, r8 + lsls r1, r3, 4 + adds r1, r2 + lsls r2, r7, 1 + adds r1, 0x2 + adds r1, r2 + ldrh r1, [r1] + adds r2, r7, 0 + bl sub_81A7024 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x3 + bls _0819B6D4 + movs r7, 0x6C + adds r4, r6, 0 + muls r4, r7 + adds r4, 0xC + ldr r1, =gUnknown_0300127C + ldr r0, [r1] + adds r0, r4 + adds r0, 0x8 + movs r1, 0x20 + add r2, sp, 0xC + bl SetMonData + ldr r2, =gUnknown_0300127C + ldr r0, [r2] + adds r0, r4 + adds r0, 0x8 + ldr r3, =gUnknown_0203BC8C + ldr r1, [r3] + adds r1, r5, r1 + ldrb r2, [r1, 0xA] + lsls r2, 1 + ldr r1, =gBattleFrontierHeldItems + adds r2, r1 + movs r1, 0xC + bl SetMonData + mov r7, r9 + lsls r0, r7, 24 + lsrs r0, 24 + mov r9, r0 + cmp r0, 0x5 + bls _0819B678 + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819B63C + + thumb_func_start sub_819B764 +sub_819B764: @ 819B764 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r7, 0 + ldr r0, =gUnknown_0300127C + mov r10, r0 + ldr r1, =gSaveBlock2Ptr + mov r8, r1 +_0819B778: + movs r2, 0 + adds r0, r7, 0x1 + mov r9, r0 +_0819B77E: + mov r1, r10 + ldr r0, [r1] + movs r1, 0x6C + adds r6, r2, 0 + muls r6, r1 + adds r1, r0, r6 + ldrb r0, [r1, 0x10] + cmp r0, r9 + bne _0819B81C + movs r0, 0x64 + adds r5, r7, 0 + muls r5, r0 + ldr r2, =gPlayerParty + adds r5, r2 + adds r1, 0x14 + adds r0, r5, 0 + movs r2, 0x64 + bl memcpy + mov r0, r8 + ldr r1, [r0] + lsls r4, r7, 1 + adds r4, r7 + lsls r4, 2 + adds r1, r4 + mov r2, r10 + ldr r0, [r2] + adds r0, r6 + ldrh r0, [r0, 0xC] + movs r2, 0xE7 + lsls r2, 4 + adds r1, r2 + strh r0, [r1] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0 + bl GetMonData + mov r2, r8 + ldr r1, [r2] + ldr r2, =0x00000e74 + adds r1, r2 + adds r1, r4 + str r0, [r1] + adds r0, r5, 0 + movs r1, 0x2E + movs r2, 0 + bl pokemon_getattr_encrypted + mov r2, r8 + ldr r1, [r2] + adds r1, r4 + ldr r2, =0x00000e79 + adds r1, r2 + strb r0, [r1] + adds r0, r5, 0 + movs r1, 0x28 + movs r2, 0 + bl pokemon_getattr_encrypted + mov r2, r8 + ldr r1, [r2] + adds r1, r4 + ldr r2, =0x00000e78 + adds r1, r2 + strb r0, [r1] + b _0819B826 + .pool +_0819B81C: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x5 + bls _0819B77E +_0819B826: + mov r1, r9 + lsls r0, r1, 24 + lsrs r7, r0, 24 + cmp r7, 0x2 + bls _0819B778 + bl calc_player_party_count + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_819B764 + + thumb_func_start sub_819B844 +sub_819B844: @ 819B844 + push {r4,r5,lr} + ldr r5, =gUnknown_0300127C + ldr r1, [r5] + ldrb r0, [r1, 0x6] + cmp r0, 0 + bne _0819B852 + strb r0, [r1] +_0819B852: + ldr r4, =gSprites + ldr r2, [r5] + ldrb r1, [r2, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0xB0 + strh r1, [r0, 0x20] + ldrb r0, [r2, 0x1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r0, [r2] + lsls r0, 4 + adds r0, 0x70 + strh r0, [r1, 0x22] + ldrb r1, [r2, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0xD0 + strh r1, [r0, 0x20] + ldrb r0, [r2, 0x2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r0, [r2] + lsls r0, 4 + adds r0, 0x70 + strh r0, [r1, 0x22] + ldrb r0, [r2, 0x1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + adds r1, 0x3E + ldrb r3, [r1] + movs r2, 0x5 + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + strb r0, [r1] + ldr r0, [r5] + ldrb r1, [r0, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + bl sub_819BAFC + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819B844 + + thumb_func_start sub_819B8D4 +sub_819B8D4: @ 819B8D4 + push {r4,r5,lr} + ldr r5, =gUnknown_0300127C + ldr r1, [r5] + movs r0, 0 + strb r0, [r1, 0x7] + ldr r4, =gSprites + ldr r2, [r5] + ldrb r1, [r2, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0xB0 + strh r1, [r0, 0x20] + ldrb r1, [r2, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r3, 0x70 + strh r3, [r0, 0x22] + ldrb r1, [r2, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0xD0 + strh r1, [r0, 0x20] + ldrb r1, [r2, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r3, [r0, 0x22] + ldrb r0, [r2, 0x1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + adds r1, 0x3E + ldrb r3, [r1] + movs r2, 0x5 + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + strb r0, [r1] + ldr r0, [r5] + ldrb r1, [r0, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + bl sub_819BBA8 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819B8D4 + + thumb_func_start sub_819B958 +sub_819B958: @ 819B958 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, =gSprites + ldr r3, =gUnknown_0300127C + ldr r0, [r3] + ldrb r1, [r0, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r3] + ldrb r1, [r0, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + adds r0, r4, 0 + movs r1, 0 + bl FillWindowPixelBuffer + adds r0, r4, 0 + movs r1, 0x2 + bl CopyWindowToVram + adds r0, r4, 0 + bl ClearWindowTilemap + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819B958 + + thumb_func_start sub_819B9B4 +sub_819B9B4: @ 819B9B4 + push {lr} + sub sp, 0xC + movs r0, 0 + movs r1, 0 + bl FillWindowPixelBuffer + ldr r2, =gUnknown_085EEBB2 + movs r0, 0x1 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x2 + bl Print + movs r0, 0 + movs r1, 0x3 + bl CopyWindowToVram + add sp, 0xC + pop {r0} + bx r0 + .pool + thumb_func_end sub_819B9B4 + + thumb_func_start sub_819B9E8 +sub_819B9E8: @ 819B9E8 + push {r4,r5,lr} + sub sp, 0xC + ldr r5, =gUnknown_0300127C + ldr r0, [r5] + ldrb r4, [r0, 0x3] + movs r0, 0x1 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0x6C + muls r0, r4 + ldr r1, [r5] + adds r0, r1 + adds r0, 0x14 + movs r1, 0xB + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + ldr r4, =gStringVar4 + movs r1, 0xB + muls r1, r0 + ldr r0, =gSpeciesNames + adds r1, r0 + adds r0, r4, 0 + bl StringCopy + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x56 + bl GetStringRightAlignXOffset + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + ldr r0, =gUnknown_08610479 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x1 + movs r3, 0x1 + bl box_print + movs r0, 0x1 + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819B9E8 + + thumb_func_start sub_819BA64 +sub_819BA64: @ 819BA64 + push {lr} + sub sp, 0xC + movs r0, 0x2 + movs r1, 0 + bl FillWindowPixelBuffer + ldr r0, =gUnknown_0300127C + ldr r0, [r0] + ldrb r0, [r0, 0x5] + cmp r0, 0x1 + bne _0819BA88 + ldr r2, =gUnknown_085EEBC1 + b _0819BA9C + .pool +_0819BA88: + cmp r0, 0x2 + bne _0819BA94 + ldr r2, =gUnknown_085EEBDB + b _0819BA9C + .pool +_0819BA94: + ldr r2, =gUnknown_085EEC2D + cmp r0, 0x3 + bne _0819BA9C + ldr r2, =gUnknown_085EEBF6 +_0819BA9C: + movs r0, 0x5 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + movs r0, 0x2 + movs r1, 0x1 + movs r3, 0x2 + bl Print + movs r0, 0x2 + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0xC + pop {r0} + bx r0 + .pool + thumb_func_end sub_819BA64 + + thumb_func_start sub_819BAC8 +sub_819BAC8: @ 819BAC8 + push {lr} + sub sp, 0xC + movs r0, 0x2 + movs r1, 0 + bl FillWindowPixelBuffer + ldr r2, =gUnknown_085EEC50 + movs r0, 0x5 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + movs r0, 0x2 + movs r1, 0x1 + movs r3, 0x2 + bl Print + movs r0, 0x2 + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0xC + pop {r0} + bx r0 + .pool + thumb_func_end sub_819BAC8 + + thumb_func_start sub_819BAFC +sub_819BAFC: @ 819BAFC + push {r4-r6,lr} + sub sp, 0xC + ldr r0, =gUnknown_0300127C + ldr r0, [r0] + ldrb r2, [r0, 0x3] + movs r1, 0x6C + muls r1, r2 + adds r0, r1 + ldrb r5, [r0, 0x10] + movs r0, 0x3 + bl PutWindowTilemap + movs r0, 0x3 + movs r1, 0 + bl FillWindowPixelBuffer + ldr r4, =gUnknown_08610476 + str r4, [sp] + movs r6, 0 + str r6, [sp, 0x4] + ldr r0, =gUnknown_085EEC15 + str r0, [sp, 0x8] + movs r0, 0x3 + movs r1, 0x1 + movs r2, 0x7 + movs r3, 0x1 + bl box_print + cmp r5, 0 + beq _0819BB60 + str r4, [sp] + str r6, [sp, 0x4] + ldr r0, =gUnknown_085EEC24 + str r0, [sp, 0x8] + movs r0, 0x3 + movs r1, 0x1 + movs r2, 0x7 + movs r3, 0x11 + bl box_print + b _0819BB74 + .pool +_0819BB60: + str r4, [sp] + str r5, [sp, 0x4] + ldr r0, =gUnknown_085EEC10 + str r0, [sp, 0x8] + movs r0, 0x3 + movs r1, 0x1 + movs r2, 0x7 + movs r3, 0x11 + bl box_print +_0819BB74: + ldr r0, =gUnknown_08610476 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + ldr r0, =gUnknown_085EEC1D + str r0, [sp, 0x8] + movs r0, 0x3 + movs r1, 0x1 + movs r2, 0x7 + movs r3, 0x21 + bl box_print + movs r0, 0x3 + movs r1, 0x3 + bl CopyWindowToVram + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819BAFC + + thumb_func_start sub_819BBA8 +sub_819BBA8: @ 819BBA8 + push {r4,r5,lr} + sub sp, 0xC + movs r0, 0x4 + bl PutWindowTilemap + movs r0, 0x4 + movs r1, 0 + bl FillWindowPixelBuffer + ldr r5, =gUnknown_08610476 + str r5, [sp] + movs r4, 0 + str r4, [sp, 0x4] + ldr r0, =gUnknown_085EEC49 + str r0, [sp, 0x8] + movs r0, 0x4 + movs r1, 0x1 + movs r2, 0x7 + movs r3, 0x1 + bl box_print + str r5, [sp] + str r4, [sp, 0x4] + ldr r0, =gUnknown_085EEC4D + str r0, [sp, 0x8] + movs r0, 0x4 + movs r1, 0x1 + movs r2, 0x7 + movs r3, 0x11 + bl box_print + movs r0, 0x4 + movs r1, 0x3 + bl CopyWindowToVram + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819BBA8 + + thumb_func_start sub_819BC04 +sub_819BC04: @ 819BC04 + push {lr} + ldr r2, =gUnknown_030062E8 + ldr r1, =gUnknown_0861041C + ldr r0, =gUnknown_0300127C + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + str r0, [r2] + bl _call_via_r0 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .pool + thumb_func_end sub_819BC04 + + thumb_func_start sub_819BC30 +sub_819BC30: @ 819BC30 + push {r4,lr} + ldr r0, =gUnknown_0300127C + ldr r0, [r0] + ldrb r2, [r0, 0x3] + movs r1, 0x6C + muls r1, r2 + adds r0, r1 + ldrb r1, [r0, 0x10] + ldrh r0, [r0, 0xC] + cmp r1, 0 + bne _0819BC60 + bl sub_819C634 + cmp r0, 0 + bne _0819BC60 + bl sub_819BAC8 + movs r0, 0x3 + bl sub_819B958 + movs r0, 0x3 + b _0819BC96 + .pool +_0819BC60: + ldr r4, =gUnknown_0300127C + ldr r1, [r4] + movs r2, 0xA6 + lsls r2, 2 + adds r0, r1, r2 + ldr r0, [r0] + adds r2, 0x8 + adds r1, r2 + movs r2, 0 + bl sub_819F3F8 + bl sub_819ACE0 + bl sub_819BA64 + movs r0, 0x3 + bl sub_819B958 + ldr r0, [r4] + ldrb r0, [r0, 0x5] + cmp r0, 0x3 + bhi _0819BC94 + movs r0, 0x1 + b _0819BC96 + .pool +_0819BC94: + movs r0, 0x2 +_0819BC96: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_819BC30 + + thumb_func_start sub_819BC9C +sub_819BC9C: @ 819BC9C + push {lr} + bl sub_819C568 + bl sub_819ACE0 + bl sub_819BA64 + movs r0, 0x3 + bl sub_819B958 + ldr r0, =gUnknown_0300127C + ldr r0, [r0] + ldrb r0, [r0, 0x5] + cmp r0, 0x3 + bhi _0819BCC4 + movs r0, 0x1 + b _0819BCC6 + .pool +_0819BCC4: + movs r0, 0x2 +_0819BCC6: + pop {r1} + bx r1 + thumb_func_end sub_819BC9C + + thumb_func_start sub_819BCCC +sub_819BCCC: @ 819BCCC + movs r0, 0 + bx lr + thumb_func_end sub_819BCCC + + thumb_func_start sub_819BCD0 +sub_819BCD0: @ 819BCD0 + push {lr} + ldr r0, =gUnknown_0300127C + ldr r1, [r0] + movs r2, 0xA6 + lsls r2, 2 + adds r0, r1, r2 + ldr r0, [r0] + adds r2, 0x8 + adds r1, r2 + movs r2, 0 + bl sub_819F3F8 + movs r0, 0x3 + bl sub_819B958 + movs r0, 0x1 + pop {r1} + bx r1 + .pool + thumb_func_end sub_819BCD0 + + thumb_func_start sub_819BCF8 +sub_819BCF8: @ 819BCF8 + push {r4,r5,lr} + sub sp, 0x2C + ldr r5, =gUnknown_0300127C + ldr r0, [r5] + ldrb r4, [r0, 0x3] + cmp r4, 0x5 + bhi _0819BD64 + movs r0, 0x5 + bl PutWindowTilemap + movs r0, 0x5 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0x6C + muls r0, r4 + ldr r1, [r5] + adds r0, r1 + adds r0, 0x14 + movs r1, 0xB + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + add r1, sp, 0xC + bl sub_81DB468 + movs r0, 0x1 + add r1, sp, 0xC + movs r2, 0x76 + bl GetStringRightAlignXOffset + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x1 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + movs r0, 0x5 + movs r1, 0x1 + add r2, sp, 0xC + bl Print + movs r0, 0x5 + movs r1, 0x2 + bl CopyWindowToVram +_0819BD64: + add sp, 0x2C + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819BCF8 + + thumb_func_start sub_819BD70 +sub_819BD70: @ 819BD70 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x10 + ldr r6, =gUnknown_0300127C + ldr r2, [r6] + ldrb r1, [r2, 0x3] + movs r0, 0x6C + adds r4, r1, 0 + muls r4, r0 + adds r4, r2 + adds r4, 0x14 + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0 + bl GetMonData + mov r8, r0 + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0 + bl GetMonData + adds r1, r0, 0 + movs r0, 0x58 + str r0, [sp] + movs r0, 0x20 + str r0, [sp, 0x4] + movs r0, 0xF + str r0, [sp, 0x8] + ldr r0, =0x0000ffff + str r0, [sp, 0xC] + adds r0, r5, 0 + mov r2, r8 + movs r3, 0x1 + bl sub_818D7D8 + ldr r1, [r6] + movs r2, 0xA6 + lsls r2, 2 + adds r1, r2 + movs r3, 0 + strb r0, [r1] + ldr r4, =gSprites + ldr r0, [r6] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x28 + strb r3, [r0] + ldr r0, [r6] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x29 + strb r3, [r0] + ldr r0, [r6] + movs r1, 0xA8 + lsls r1, 2 + adds r0, r1 + strb r3, [r0] + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819BD70 + + thumb_func_start sub_819BE20 +sub_819BE20: @ 819BE20 + ldr r1, =gUnknown_0300127C + ldr r1, [r1] + movs r2, 0xA8 + lsls r2, 2 + adds r1, r2 + strb r0, [r1] + bx lr + .pool + thumb_func_end sub_819BE20 + + thumb_func_start sub_819BE34 +sub_819BE34: @ 819BE34 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + ldr r0, =gUnknown_08610638 + movs r1, 0x78 + movs r2, 0x40 + movs r3, 0x1 + bl CreateSprite + ldr r6, =gUnknown_0300127C + ldr r1, [r6] + ldr r2, =0x00000299 + mov r10, r2 + add r1, r10 + movs r7, 0 + strb r0, [r1] + ldr r0, [r6] + add r0, r10 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + mov r8, r1 + add r0, r8 + movs r1, 0x2 + bl StartSpriteAffineAnim + ldr r2, [r6] + ldrb r1, [r2, 0x3] + movs r0, 0x6C + adds r4, r1, 0 + muls r4, r0 + adds r4, r2 + adds r4, 0x14 + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0 + bl GetMonData + mov r9, r0 + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0 + bl GetMonData + adds r1, r0, 0 + movs r0, 0x58 + str r0, [sp] + movs r0, 0x20 + str r0, [sp, 0x4] + movs r0, 0xF + str r0, [sp, 0x8] + ldr r0, =0x0000ffff + str r0, [sp, 0xC] + adds r0, r5, 0 + mov r2, r9 + movs r3, 0x1 + bl sub_818D7D8 + ldr r1, [r6] + movs r2, 0xA6 + lsls r2, 2 + adds r1, r2 + strb r0, [r1] + ldr r0, [r6] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + adds r0, 0x28 + strb r7, [r0] + ldr r0, [r6] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + adds r0, 0x29 + strb r7, [r0] + ldr r0, [r6] + add r0, r10 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819BE34 + + thumb_func_start sub_819BF2C +sub_819BF2C: @ 819BF2C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + movs r7, 0 + ldr r0, =gUnknown_0300127C + mov r9, r0 +_0819BF3E: + movs r2, 0 + adds r1, r7, 0x1 + mov r10, r1 + lsls r0, r7, 2 + mov r8, r0 +_0819BF48: + mov r0, r9 + ldr r1, [r0] + movs r0, 0x6C + adds r4, r2, 0 + muls r4, r0 + adds r0, r1, r4 + ldrb r0, [r0, 0x10] + cmp r0, r10 + bne _0819C008 + adds r4, r1 + adds r4, 0x14 + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0 + bl GetMonData + adds r6, r0, 0 + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0 + bl GetMonData + adds r1, r0, 0 + lsls r0, r7, 3 + adds r0, r7 + lsls r0, 19 + movs r2, 0x80 + lsls r2, 13 + adds r0, r2 + asrs r0, 16 + str r0, [sp] + movs r0, 0x20 + str r0, [sp, 0x4] + adds r0, r7, 0 + adds r0, 0xD + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x8] + ldr r0, =0x0000ffff + str r0, [sp, 0xC] + adds r0, r5, 0 + adds r2, r6, 0 + movs r3, 0x1 + bl sub_818D7D8 + mov r2, r9 + ldr r1, [r2] + add r1, r8 + movs r2, 0xA5 + lsls r2, 2 + adds r1, r2 + strb r0, [r1] + mov r1, r9 + ldr r0, [r1] + add r0, r8 + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r2, =gSprites + adds r0, r2 + adds r0, 0x28 + movs r1, 0 + strb r1, [r0] + mov r2, r9 + ldr r0, [r2] + add r0, r8 + movs r1, 0xA5 + lsls r1, 2 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r2, =gSprites + adds r0, r2 + adds r0, 0x29 + movs r1, 0 + strb r1, [r0] + b _0819C012 + .pool +_0819C008: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x5 + bls _0819BF48 +_0819C012: + mov r2, r10 + lsls r0, r2, 24 + lsrs r7, r0, 24 + cmp r7, 0x2 + bls _0819BF3E + ldr r0, =gUnknown_0300127C + ldr r0, [r0] + movs r1, 0xA8 + lsls r1, 2 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819BF2C + + thumb_func_start sub_819C040 +sub_819C040: @ 819C040 + push {r4-r6,lr} + adds r4, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0819C0DC + ldr r3, =gSprites + ldr r6, =gUnknown_0300127C + ldr r2, [r6] + ldr r0, =0x00000295 + adds r5, r2, r0 + ldrb r0, [r5] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + adds r1, 0x3F + ldrb r0, [r1] + lsls r0, 26 + cmp r0, 0 + bge _0819C0DC + ldr r1, =0x0000029d + adds r0, r2, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 26 + cmp r0, 0 + bge _0819C0DC + adds r1, r4, 0 + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + ldr r0, [r6] + ldr r1, =0x0000029d + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + ldr r0, =sub_819C1D0 + 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 + ldr r1, [r1] + bl _call_via_r1 + ldr r0, =SpriteCallbackDummy + str r0, [r4, 0x1C] +_0819C0DC: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819C040 + + thumb_func_start sub_819C100 +sub_819C100: @ 819C100 + push {r4-r7,lr} + adds r5, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0819C1BA + ldr r6, =gSprites + ldr r4, =gUnknown_0300127C + ldr r2, [r4] + ldr r7, =0x00000295 + adds r0, r2, r7 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 26 + cmp r0, 0 + bge _0819C1BA + ldr r1, =0x0000029d + adds r0, r2, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 26 + cmp r0, 0 + bge _0819C1BA + ldrb r0, [r5, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldr r0, [r4] + adds r0, r7 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldr r0, [r4] + ldr r1, =0x0000029d + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldr r0, [r4] + movs r1, 0xA8 + lsls r1, 2 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldr r0, [r4] + adds r0, r7 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl DestroySprite + ldr r0, [r4] + ldr r1, =0x0000029d + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl DestroySprite + adds r0, r5, 0 + bl DestroySprite +_0819C1BA: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819C100 + + thumb_func_start sub_819C1D0 +sub_819C1D0: @ 819C1D0 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _0819C24E + cmp r0, 0x1 + bgt _0819C1F8 + cmp r0, 0 + beq _0819C1FE + b _0819C2BA + .pool +_0819C1F8: + cmp r0, 0x2 + beq _0819C270 + b _0819C2BA +_0819C1FE: + movs r0, 0x10 + strh r0, [r4, 0xE] + movs r0, 0xE0 + strh r0, [r4, 0x38] + movs r0, 0x40 + strh r0, [r4, 0x12] + movs r0, 0x41 + strh r0, [r4, 0x18] + movs r1, 0x80 + lsls r1, 6 + movs r0, 0 + bl SetGpuRegBits + ldrh r1, [r4, 0xE] + lsls r1, 8 + ldrh r0, [r4, 0x38] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x40 + bl SetGpuReg + ldrh r1, [r4, 0x12] + lsls r1, 8 + ldrh r0, [r4, 0x18] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x44 + bl SetGpuReg + movs r0, 0x48 + movs r1, 0x3F + bl SetGpuReg + movs r0, 0x4A + movs r1, 0x37 + bl SetGpuReg + b _0819C2C6 +_0819C24E: + movs r0, 0x3 + bl ShowBg + ldr r1, =0x00001248 + movs r0, 0x50 + bl SetGpuReg + ldr r1, =0x0000040b + movs r0, 0x52 + bl SetGpuReg + b _0819C2C6 + .pool +_0819C270: + ldrh r0, [r4, 0x12] + subs r0, 0x4 + strh r0, [r4, 0x12] + ldrh r1, [r4, 0x18] + adds r1, 0x4 + strh r1, [r4, 0x18] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x20 + ble _0819C28C + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x5F + ble _0819C29E +_0819C28C: + movs r0, 0x20 + strh r0, [r4, 0x12] + movs r0, 0x60 + strh r0, [r4, 0x18] + movs r1, 0x80 + lsls r1, 6 + movs r0, 0 + bl ClearGpuRegBits +_0819C29E: + ldrh r1, [r4, 0x12] + lsls r1, 8 + ldrh r0, [r4, 0x18] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x44 + bl SetGpuReg + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0x20 + bne _0819C2CC + b _0819C2C6 +_0819C2BA: + adds r0, r2, 0 + bl DestroyTask + bl sub_819BF2C + b _0819C2CC +_0819C2C6: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_0819C2CC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_819C1D0 + + thumb_func_start sub_819C2D4 +sub_819C2D4: @ 819C2D4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r7, r0, 24 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + ldr r1, =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _0819C2F6 + b _0819C410 +_0819C2F6: + cmp r0, 0x1 + bne _0819C2FC + b _0819C460 +_0819C2FC: + movs r0, 0x3 + bl HideBg + ldr r4, =gSprites + ldr r0, =gUnknown_0300127C + mov r8, r0 + ldr r0, [r0] + ldr r1, =0x00000299 + mov r12, r1 + add r0, r12 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + adds r1, 0x3E + ldrb r2, [r1] + movs r3, 0x5 + negs r3, r3 + adds r0, r3, 0 + ands r0, r2 + strb r0, [r1] + mov r0, r8 + ldr r2, [r0] + mov r1, r12 + adds r0, r2, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r6, r4, 0 + adds r6, 0x1C + adds r0, r6 + ldr r1, =sub_819C100 + str r1, [r0] + ldr r0, =0x00000295 + mov r9, r0 + add r2, r9 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r2, [r0] + adds r1, r3, 0 + ands r1, r2 + strb r1, [r0] + mov r1, r8 + ldr r2, [r1] + mov r1, r9 + adds r0, r2, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldr r1, =SpriteCallbackDummy + mov r10, r1 + str r1, [r0] + ldr r5, =0x0000029d + adds r2, r5 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + ands r3, r1 + strb r3, [r0] + mov r0, r8 + ldr r2, [r0] + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + mov r1, r10 + str r1, [r0] + add r2, r12 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x1 + bl StartSpriteAffineAnim + mov r1, r8 + ldr r0, [r1] + add r0, r9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x1 + bl StartSpriteAffineAnim + mov r1, r8 + ldr r0, [r1] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x1 + bl StartSpriteAffineAnim + movs r1, 0x80 + lsls r1, 6 + movs r0, 0 + bl ClearGpuRegBits + adds r0, r7, 0 + bl DestroyTask + b _0819C4A4 + .pool +_0819C410: + movs r0, 0x10 + strh r0, [r4, 0xE] + movs r0, 0xE0 + strh r0, [r4, 0x38] + movs r0, 0x20 + strh r0, [r4, 0x12] + movs r0, 0x60 + strh r0, [r4, 0x18] + movs r1, 0x80 + lsls r1, 6 + movs r0, 0 + bl SetGpuRegBits + ldrh r1, [r4, 0xE] + lsls r1, 8 + ldrh r0, [r4, 0x38] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x40 + bl SetGpuReg + ldrh r1, [r4, 0x12] + lsls r1, 8 + ldrh r0, [r4, 0x18] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x44 + bl SetGpuReg + movs r0, 0x48 + movs r1, 0x3F + bl SetGpuReg + movs r0, 0x4A + movs r1, 0x37 + bl SetGpuReg + b _0819C49E +_0819C460: + ldrh r0, [r4, 0x12] + adds r0, 0x4 + strh r0, [r4, 0x12] + ldrh r1, [r4, 0x18] + subs r1, 0x4 + strh r1, [r4, 0x18] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3F + bgt _0819C47C + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x41 + bgt _0819C484 +_0819C47C: + movs r0, 0x40 + strh r0, [r4, 0x12] + movs r0, 0x41 + strh r0, [r4, 0x18] +_0819C484: + ldrh r1, [r4, 0x12] + lsls r1, 8 + ldrh r0, [r4, 0x18] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x44 + bl SetGpuReg + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0x40 + bne _0819C4A4 +_0819C49E: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_0819C4A4: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_819C2D4 + + thumb_func_start sub_819C4B4 +sub_819C4B4: @ 819C4B4 + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r4, =gUnknown_08610638 + adds r0, r4, 0 + movs r1, 0x78 + movs r2, 0x40 + movs r3, 0x1 + bl CreateSprite + ldr r6, =gUnknown_0300127C + ldr r1, [r6] + ldr r2, =0x00000299 + mov r8, r2 + add r1, r8 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2C + movs r2, 0x40 + movs r3, 0x1 + bl CreateSprite + ldr r1, [r6] + ldr r5, =0x00000295 + adds r1, r5 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0xC4 + movs r2, 0x40 + movs r3, 0x1 + bl CreateSprite + ldr r1, [r6] + ldr r4, =0x0000029d + adds r1, r4 + strb r0, [r1] + ldr r3, =gSprites + ldr r2, [r6] + add r8, r2 + mov r0, r8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r3, 0x1C + adds r0, r3 + ldr r1, =sub_819C040 + str r1, [r0] + adds r5, r2, r5 + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldr r5, =SpriteCallbackDummy + str r5, [r0] + adds r4, r2, r4 + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + str r5, [r0] + movs r0, 0xA8 + lsls r0, 2 + adds r2, r0 + movs r0, 0x1 + strb r0, [r2] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819C4B4 + + thumb_func_start sub_819C568 +sub_819C568: @ 819C568 + push {r4,lr} + ldr r4, =gUnknown_0300127C + ldr r0, [r4] + movs r1, 0xA5 + lsls r1, 2 + adds r0, r1 + ldrb r0, [r0] + bl sub_818D820 + ldr r0, [r4] + movs r1, 0xA6 + lsls r1, 2 + adds r0, r1 + ldrb r0, [r0] + bl sub_818D820 + ldr r0, [r4] + movs r1, 0xA7 + lsls r1, 2 + adds r0, r1 + ldrb r0, [r0] + bl sub_818D820 + ldr r0, =sub_819C2D4 + 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 + ldr r1, [r1] + bl _call_via_r1 + ldr r0, [r4] + movs r1, 0xA8 + lsls r1, 2 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819C568 + + thumb_func_start sub_819C5D0 +sub_819C5D0: @ 819C5D0 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r4, r0, 0 + adds r6, r1, 0 + adds r5, r2, 0 + mov r8, r3 + lsls r4, 16 + lsrs r4, 16 + lsls r6, 16 + lsrs r6, 16 + lsls r5, 16 + lsrs r5, 16 + mov r0, r8 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + movs r1, 0x80 + lsls r1, 6 + movs r0, 0 + bl SetGpuRegBits + lsls r4, 24 + lsrs r4, 16 + orrs r4, r6 + movs r0, 0x40 + adds r1, r4, 0 + bl SetGpuReg + lsls r5, 24 + lsrs r5, 16 + mov r0, r8 + orrs r5, r0 + movs r0, 0x44 + adds r1, r5, 0 + bl SetGpuReg + movs r0, 0x48 + movs r1, 0x3F + bl SetGpuReg + movs r0, 0x4A + movs r1, 0x37 + bl SetGpuReg + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_819C5D0 + + thumb_func_start sub_819C634 +sub_819C634: @ 819C634 + push {r4-r7,lr} + lsls r0, 16 + ldr r2, =gUnknown_0203BC8C + ldr r1, [r2] + lsrs r0, 12 + adds r0, r1 + ldrh r6, [r0] + ldr r0, =gUnknown_0300127C + ldr r0, [r0] + ldrb r5, [r0, 0x5] + movs r3, 0x1 + cmp r3, r5 + bcs _0819C694 + adds r4, r0, 0 + movs r0, 0x6C + mov r12, r0 + adds r7, r2, 0 +_0819C656: + movs r2, 0 +_0819C658: + mov r0, r12 + muls r0, r2 + adds r1, r4, r0 + ldrb r0, [r1, 0x10] + cmp r0, r3 + bne _0819C680 + ldrh r0, [r1, 0xC] + ldr r1, [r7] + lsls r0, 4 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r6 + bne _0819C68A + movs r0, 0 + b _0819C696 + .pool +_0819C680: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x5 + bls _0819C658 +_0819C68A: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, r5 + bcc _0819C656 +_0819C694: + movs r0, 0x1 +_0819C696: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_819C634 + + thumb_func_start sub_819C69C +sub_819C69C: @ 819C69C + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + movs r0, 0x8 + ldrsh r2, [r5, r0] + cmp r2, 0x1 + beq _0819C6F8 + cmp r2, 0x1 + bgt _0819C6C4 + cmp r2, 0 + beq _0819C6CA + b _0819C7D8 + .pool +_0819C6C4: + cmp r2, 0x2 + beq _0819C7B4 + b _0819C7D8 +_0819C6CA: + ldr r1, =gUnknown_0300127C + ldr r0, [r1] + ldr r3, =0x000002a7 + adds r0, r3 + strb r2, [r0] + ldr r0, [r1] + adds r3, 0x1 + adds r0, r3 + strb r2, [r0] + ldr r0, [r1] + ldr r1, =0x000002a6 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + strh r1, [r5, 0x8] + b _0819C7D8 + .pool +_0819C6F8: + ldr r0, =gUnknown_0300127C + ldr r3, [r0] + ldr r2, =0x000002a2 + adds r1, r3, r2 + ldrb r1, [r1] + adds r7, r0, 0 + cmp r1, 0 + beq _0819C7D8 + ldr r1, =0x000002a9 + adds r0, r3, r1 + ldrb r4, [r0] + cmp r4, 0 + beq _0819C724 + movs r0, 0x2 + strh r0, [r5, 0x8] + b _0819C7D8 + .pool +_0819C724: + ldr r2, =0x000002a7 + adds r1, r3, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r7] + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0x6 + bls _0819C764 + strb r4, [r1] + ldr r1, [r7] + subs r2, 0x1 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _0819C758 + movs r3, 0xAA + lsls r3, 2 + adds r1, r3 + ldrb r0, [r1] + subs r0, 0x1 + b _0819C762 + .pool +_0819C758: + movs r0, 0xAA + lsls r0, 2 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 +_0819C762: + strb r0, [r1] +_0819C764: + movs r0, 0x80 + lsls r0, 7 + ldr r1, [r7] + movs r4, 0xAA + lsls r4, 2 + adds r1, r4 + ldrb r1, [r1] + movs r2, 0 + bl BlendPalettes + ldr r2, [r7] + adds r4, r2, r4 + ldrb r0, [r4] + cmp r0, 0x5 + bls _0819C790 + ldr r3, =0x000002a6 + adds r1, r2, r3 + movs r0, 0 + b _0819C7D6 + .pool +_0819C790: + cmp r0, 0 + bne _0819C7D8 + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + movs r1, 0x2 + strh r1, [r0, 0x8] + ldr r0, =0x000002a6 + adds r1, r2, r0 + movs r0, 0x1 + b _0819C7D6 + .pool +_0819C7B4: + ldr r0, =gUnknown_0300127C + ldr r0, [r0] + ldr r2, =0x000002a9 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0xE + bls _0819C7D4 + movs r0, 0 + strb r0, [r1] + movs r0, 0x1 + strh r0, [r5, 0x8] + b _0819C7D8 + .pool +_0819C7D4: + adds r0, 0x1 +_0819C7D6: + strb r0, [r1] +_0819C7D8: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_819C69C + + thumb_func_start sub_819C7E0 +sub_819C7E0: @ 819C7E0 + push {lr} + bl AnimateSprites + bl BuildOamBuffer + bl RunTextPrinters + bl UpdatePaletteFade + bl RunTasks + pop {r0} + bx r0 + thumb_func_end sub_819C7E0 + + thumb_func_start sub_819C7FC +sub_819C7FC: @ 819C7FC + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_819C7FC + + thumb_func_start sub_819C810 +sub_819C810: @ 819C810 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x4 + ldr r4, =gPlayerParty + ldr r5, =gUnknown_03001284 + ldr r1, [r5] + ldrb r0, [r1, 0x12] + movs r6, 0x64 + muls r0, r6 + adds r0, r4 + ldr r2, =gEnemyParty + mov r9, r2 + ldrb r1, [r1, 0x13] + muls r1, r6 + add r1, r9 + movs r2, 0x64 + bl memcpy + movs r1, 0 + mov r0, sp + strb r1, [r0] + ldr r0, [r5] + ldrb r0, [r0, 0x12] + muls r0, r6 + adds r0, r4 + movs r1, 0x20 + mov r2, sp + bl SetMonData + ldr r3, =gSaveBlock2Ptr + mov r8, r3 + ldr r3, [r3] + ldr r4, [r5] + ldrb r0, [r4, 0x12] + lsls r2, r0, 1 + adds r2, r0 + lsls r2, 2 + adds r2, r3, r2 + ldrb r1, [r4, 0x13] + adds r1, 0x3 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3, r0 + movs r1, 0xE7 + lsls r1, 4 + adds r0, r1 + ldrh r0, [r0] + adds r2, r1 + strh r0, [r2] + ldrb r0, [r4, 0x12] + lsls r2, r0, 1 + adds r2, r0 + lsls r2, 2 + adds r2, r3, r2 + ldrb r1, [r4, 0x13] + adds r1, 0x3 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r3, r0 + ldr r0, =0x00000e78 + adds r3, r0 + ldrb r1, [r3] + adds r2, r0 + strb r1, [r2] + ldr r0, [r5] + ldrb r0, [r0, 0x13] + muls r0, r6 + add r0, r9 + movs r1, 0 + movs r2, 0 + bl GetMonData + mov r1, r8 + ldr r2, [r1] + ldr r4, [r5] + ldrb r3, [r4, 0x12] + lsls r1, r3, 1 + adds r1, r3 + lsls r1, 2 + ldr r3, =0x00000e74 + adds r2, r3 + adds r2, r1 + str r0, [r2] + ldrb r0, [r4, 0x13] + muls r0, r6 + add r0, r9 + movs r1, 0x2E + movs r2, 0 + bl pokemon_getattr_encrypted + mov r1, r8 + ldr r2, [r1] + ldr r1, [r5] + ldrb r3, [r1, 0x12] + lsls r1, r3, 1 + adds r1, r3 + lsls r1, 2 + adds r2, r1 + ldr r3, =0x00000e79 + adds r2, r3 + strb r0, [r2] + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819C810 + + thumb_func_start sub_819C90C +sub_819C90C: @ 819C90C + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r6, r0, r1 + movs r1, 0x8 + ldrsh r0, [r6, r1] + cmp r0, 0x7 + beq _0819C950 + cmp r0, 0x7 + bgt _0819C934 + cmp r0, 0x6 + beq _0819C93A + b _0819C9F0 + .pool +_0819C934: + cmp r0, 0x8 + beq _0819C9C4 + b _0819C9F0 +_0819C93A: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r0, 0x7 + strh r0, [r6, 0x8] + b _0819C9F0 +_0819C950: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _0819C9F0 + ldr r4, =gUnknown_03001284 + ldr r0, [r4] + adds r0, 0x21 + ldrb r0, [r0] + bl DestroyTask + ldr r1, [r4] + ldr r0, [r1, 0x2C] + adds r1, 0x30 + bl sub_819F444 + bl sub_819E538 + ldr r4, =gUnknown_0203CE40 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, =gUnknown_0203CE44 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, =gUnknown_0203CE48 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, =gUnknown_0203CE4C + ldr r0, [r4] + bl Free + str r5, [r4] + bl FreeAllWindowBuffers + movs r0, 0x8 + strh r0, [r6, 0x8] + b _0819C9F0 + .pool +_0819C9C4: + adds r0, r2, 0 + bl DestroyTask + ldr r2, =gUnknown_03001284 + ldr r1, [r2] + movs r0, 0x1 + strb r0, [r1, 0x15] + ldr r2, [r2] + ldr r0, =gPlttBufferUnfaded + movs r1, 0xF4 + lsls r1, 1 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2, 0x24] + ldr r1, =gPlayerParty + ldrb r2, [r2, 0x3] + ldr r0, =sub_819DC1C + str r0, [sp] + movs r0, 0 + movs r3, 0x2 + bl sub_81BF8EC +_0819C9F0: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819C90C + + thumb_func_start sub_819CA08 +sub_819CA08: @ 819CA08 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r7, =gUnknown_03001284 + ldr r2, [r7] + adds r0, r2, 0 + adds r0, 0x30 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0819CAFE + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r1, [r4, r0] + cmp r1, 0x1 + beq _0819CA78 + cmp r1, 0x1 + bgt _0819CA44 + cmp r1, 0 + beq _0819CA4E + b _0819CAFE + .pool +_0819CA44: + cmp r1, 0x2 + beq _0819CA8C + cmp r1, 0x3 + beq _0819CAA4 + b _0819CAFE +_0819CA4E: + adds r0, r2, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x1 + bne _0819CA68 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + ldr r0, =gScriptResult + strh r1, [r0] + b _0819CAFE + .pool +_0819CA68: + movs r0, 0x2 + strh r0, [r4, 0x8] + ldr r1, =gScriptResult + movs r0, 0x1 + strh r0, [r1] + b _0819CAFE + .pool +_0819CA78: + adds r0, r2, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x1 + bne _0819CA9C + ldrb r0, [r2, 0x3] + strb r0, [r2, 0x13] + bl sub_819C810 + b _0819CA9C +_0819CA8C: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade +_0819CA9C: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _0819CAFE +_0819CAA4: + bl UpdatePaletteFade + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _0819CAFE + ldr r0, [r7] + adds r0, 0x21 + ldrb r0, [r0] + bl DestroyTask + bl sub_819E538 + ldr r4, =gUnknown_0203CE40 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, =gUnknown_0203CE44 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, =gUnknown_0203CE48 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, =gUnknown_0203CE4C + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r0, [r7] + bl Free + str r5, [r7] + bl FreeAllWindowBuffers + ldr r0, =sub_80861B0 + bl SetMainCallback2 + adds r0, r6, 0 + bl DestroyTask +_0819CAFE: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819CA08 + + thumb_func_start sub_819CB1C +sub_819CB1C: @ 819CB1C + push {r4-r7,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r7, =gUnknown_03001284 + ldr r0, [r7] + adds r0, 0x30 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0819CBD6 + ldr r1, =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + beq _0819CB50 + cmp r0, 0x5 + beq _0819CB5A + b _0819CBD6 + .pool +_0819CB50: + bl sub_819E9E0 + movs r0, 0x5 + strh r0, [r4, 0x8] + b _0819CBD6 +_0819CB5A: + ldr r2, =gMain + ldrh r1, [r2, 0x2E] + movs r6, 0x1 + adds r5, r6, 0 + ands r5, r1 + cmp r5, 0 + beq _0819CB86 + movs r0, 0x5 + bl PlaySE + ldr r0, [r7] + ldrb r0, [r0, 0x16] + cmp r0, 0 + bne _0819CB80 + strh r6, [r4, 0xA] + b _0819CB9C + .pool +_0819CB80: + movs r0, 0 + strh r0, [r4, 0xA] + b _0819CB96 +_0819CB86: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0819CBA8 + movs r0, 0x5 + bl PlaySE + strh r5, [r4, 0xA] +_0819CB96: + movs r0, 0x4 + bl sub_819EA64 +_0819CB9C: + ldrh r0, [r4, 0x14] + ldrh r1, [r4, 0x16] + lsls r0, 16 + orrs r0, r1 + str r0, [r4] + b _0819CBD6 +_0819CBA8: + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0819CBC2 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl sub_819E758 + b _0819CBD6 +_0819CBC2: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0819CBD6 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl sub_819E758 +_0819CBD6: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_819CB1C + + thumb_func_start sub_819CBDC +sub_819CBDC: @ 819CBDC + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r2, r1, r2 + movs r1, 0xA + ldrsh r0, [r2, r1] + cmp r0, 0x1 + bne _0819CC04 + movs r0, 0 + strh r0, [r2, 0x8] + ldr r0, =sub_819CA08 + b _0819CC16 + .pool +_0819CC04: + movs r0, 0 + strh r0, [r2, 0x8] + ldr r1, =sub_819CE40 + lsrs r0, r1, 16 + strh r0, [r2, 0x14] + strh r1, [r2, 0x16] + movs r0, 0x1 + strh r0, [r2, 0x12] + ldr r0, =sub_819D770 +_0819CC16: + str r0, [r2] + pop {r0} + bx r0 + .pool + thumb_func_end sub_819CBDC + + thumb_func_start sub_819CC24 +sub_819CC24: @ 819CC24 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + movs r0, 0x8 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _0819CC5A + ldr r0, =gUnknown_085EECBB + bl sub_819EBEC + ldr r0, =gUnknown_03001284 + ldr r0, [r0] + adds r0, 0x20 + strb r5, [r0] + movs r0, 0x4 + strh r0, [r4, 0x8] + ldr r1, =sub_819CBDC + lsrs r0, r1, 16 + strh r0, [r4, 0x14] + strh r1, [r4, 0x16] + ldr r0, =sub_819CB1C + str r0, [r4] +_0819CC5A: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819CC24 + + thumb_func_start sub_819CC74 +sub_819CC74: @ 819CC74 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =gUnknown_03001284 + ldr r1, [r0] + ldr r0, [r1, 0x2C] + adds r1, 0x30 + movs r2, 0x1 + bl sub_819F3F8 + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + movs r1, 0xA + ldrsh r0, [r2, r1] + cmp r0, 0x1 + bne _0819CCB0 + movs r0, 0 + strh r0, [r2, 0x8] + ldr r0, =sub_819CA08 + b _0819CCC2 + .pool +_0819CCB0: + movs r0, 0 + strh r0, [r2, 0x8] + ldr r1, =sub_819CE40 + lsrs r0, r1, 16 + strh r0, [r2, 0x14] + strh r1, [r2, 0x16] + movs r0, 0x1 + strh r0, [r2, 0x12] + ldr r0, =sub_819D770 +_0819CCC2: + str r0, [r2] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819CC74 + + thumb_func_start sub_819CCD4 +sub_819CCD4: @ 819CCD4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r5, r1, r2 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _0819CD1A + ldr r4, =gUnknown_03001284 + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x2D + adds r1, 0x30 + movs r2, 0x1 + bl sub_819F2B4 + ldr r0, =gUnknown_085EECF0 + bl sub_819EBEC + ldr r0, [r4] + adds r0, 0x20 + movs r1, 0x1 + strb r1, [r0] + movs r0, 0x4 + strh r0, [r5, 0x8] + ldr r1, =sub_819CC74 + lsrs r0, r1, 16 + strh r0, [r5, 0x14] + strh r1, [r5, 0x16] + ldr r0, =sub_819CB1C + str r0, [r5] +_0819CD1A: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819CCD4 + + thumb_func_start sub_819CD34 +sub_819CD34: @ 819CD34 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x3 + beq _0819CDA4 + cmp r0, 0x3 + bgt _0819CD60 + cmp r0, 0x2 + beq _0819CD66 + b _0819CE36 + .pool +_0819CD60: + cmp r0, 0x9 + beq _0819CD88 + b _0819CE36 +_0819CD66: + ldr r0, =gUnknown_03001284 + ldr r1, [r0] + ldrb r0, [r1, 0x15] + cmp r0, 0 + bne _0819CD7C + adds r0, r1, 0 + adds r0, 0x2D + adds r1, 0x30 + movs r2, 0x1 + bl sub_819F2B4 +_0819CD7C: + movs r0, 0x9 + strh r0, [r5, 0x8] + b _0819CE36 + .pool +_0819CD88: + ldr r0, =gUnknown_03001284 + ldr r0, [r0] + adds r0, 0x30 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0819CE36 + bl sub_819E944 + movs r0, 0x3 + strh r0, [r5, 0x8] + b _0819CE36 + .pool +_0819CDA4: + ldr r7, =gUnknown_03001284 + ldr r0, [r7] + adds r0, 0x30 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0819CE36 + ldr r2, =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + mov r8, r0 + mov r4, r8 + ands r4, r1 + cmp r4, 0 + beq _0819CDD8 + movs r0, 0x5 + bl PlaySE + adds r0, r6, 0 + bl sub_819F0A0 + b _0819CE36 + .pool +_0819CDD8: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0819CE14 + movs r0, 0x5 + bl PlaySE + ldr r1, [r7] + ldr r0, [r1, 0x2C] + adds r1, 0x30 + movs r2, 0x1 + bl sub_819F3F8 + movs r0, 0x3 + bl sub_819EA64 + strh r4, [r5, 0x8] + ldr r1, =sub_819CE40 + lsrs r0, r1, 16 + strh r0, [r5, 0x14] + strh r1, [r5, 0x16] + mov r1, r8 + strh r1, [r5, 0x12] + ldr r0, =sub_819D770 + str r0, [r5] + b _0819CE36 + .pool +_0819CE14: + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0819CE28 + movs r0, 0x1 + negs r0, r0 + bl sub_819E7C0 + b _0819CE36 +_0819CE28: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0819CE36 + movs r0, 0x1 + bl sub_819E7C0 +_0819CE36: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_819CD34 + + thumb_func_start sub_819CE40 +sub_819CE40: @ 819CE40 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _0819CE64 + cmp r0, 0x1 + beq _0819CE88 + b _0819CF4C + .pool +_0819CE64: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0819CF4C + ldr r0, =gUnknown_03001284 + ldr r0, [r0] + adds r0, 0x22 + movs r1, 0x1 + strb r1, [r0] + strh r1, [r4, 0x8] + b _0819CF4C + .pool +_0819CE88: + ldr r2, =gMain + ldrh r1, [r2, 0x2E] + adds r5, r1, 0 + ands r5, r0 + cmp r5, 0 + beq _0819CEBC + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_03001284 + ldr r0, [r0] + adds r0, 0x22 + movs r1, 0 + strb r1, [r0] + bl sub_819EE08 + bl sub_819EAC0 + adds r0, r6, 0 + bl sub_819F184 + b _0819CF4C + .pool +_0819CEBC: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0819CEF8 + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_03001284 + ldr r0, [r0] + adds r0, 0x22 + strb r5, [r0] + bl sub_819EE08 + bl sub_819EAC0 + ldr r1, =sub_819CC24 + lsrs r0, r1, 16 + strh r0, [r4, 0x14] + strh r1, [r4, 0x16] + strh r5, [r4, 0x8] + strh r5, [r4, 0x12] + ldr r0, =sub_819D588 + str r0, [r4] + b _0819CF4C + .pool +_0819CEF8: + ldrh r1, [r2, 0x30] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0819CF0C + movs r0, 0x1 + negs r0, r0 + bl sub_819E694 + b _0819CF2A +_0819CF0C: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0819CF1C + movs r0, 0x1 + bl sub_819E694 + b _0819CF2A +_0819CF1C: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0819CF34 + movs r0, 0x1 + bl sub_819E6E8 +_0819CF2A: + bl sub_819EFA8 + bl sub_819EB4C + b _0819CF4C +_0819CF34: + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0819CF4C + movs r0, 0x1 + negs r0, r0 + bl sub_819E6E8 + bl sub_819EFA8 + bl sub_819EB4C +_0819CF4C: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_819CE40 + + thumb_func_start sub_819CF54 +sub_819CF54: @ 819CF54 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r2, [r4, r0] + cmp r2, 0x1 + beq _0819CFA0 + cmp r2, 0x1 + bgt _0819CF7C + cmp r2, 0 + beq _0819CF82 + b _0819D05C + .pool +_0819CF7C: + cmp r2, 0x2 + beq _0819D03C + b _0819D05C +_0819CF82: + ldr r1, =gUnknown_03001284 + ldr r0, [r1] + adds r0, 0x27 + strb r2, [r0] + ldr r0, [r1] + adds r0, 0x28 + strb r2, [r0] + ldr r0, [r1] + adds r0, 0x26 + movs r1, 0x1 + strb r1, [r0] + strh r1, [r4, 0x8] + b _0819D05C + .pool +_0819CFA0: + ldr r1, =gUnknown_03001284 + ldr r2, [r1] + adds r0, r2, 0 + adds r0, 0x22 + ldrb r0, [r0] + adds r6, r1, 0 + cmp r0, 0 + beq _0819D05C + adds r0, r2, 0 + adds r0, 0x29 + ldrb r3, [r0] + cmp r3, 0 + beq _0819CFC4 + movs r0, 0x2 + strh r0, [r4, 0x8] + b _0819D05C + .pool +_0819CFC4: + adds r1, r2, 0 + adds r1, 0x27 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r6] + adds r1, r0, 0 + adds r1, 0x27 + ldrb r0, [r1] + cmp r0, 0x6 + bls _0819CFF8 + strb r3, [r1] + ldr r1, [r6] + adds r0, r1, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0 + bne _0819CFF0 + adds r1, 0x28 + ldrb r0, [r1] + subs r0, 0x1 + b _0819CFF6 +_0819CFF0: + adds r1, 0x28 + ldrb r0, [r1] + adds r0, 0x1 +_0819CFF6: + strb r0, [r1] +_0819CFF8: + movs r0, 0x80 + lsls r0, 7 + ldr r1, [r6] + adds r1, 0x28 + ldrb r1, [r1] + movs r2, 0 + bl BlendPalettes + ldr r2, [r6] + adds r0, r2, 0 + adds r0, 0x28 + ldrb r0, [r0] + cmp r0, 0x5 + bls _0819D01C + adds r1, r2, 0 + adds r1, 0x26 + movs r0, 0 + b _0819D05A +_0819D01C: + cmp r0, 0 + bne _0819D05C + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0x2 + strh r1, [r0, 0x8] + adds r1, r2, 0 + adds r1, 0x26 + movs r0, 0x1 + b _0819D05A + .pool +_0819D03C: + ldr r0, =gUnknown_03001284 + ldr r0, [r0] + adds r1, r0, 0 + adds r1, 0x29 + ldrb r0, [r1] + cmp r0, 0xE + bls _0819D058 + movs r0, 0 + strb r0, [r1] + movs r0, 0x1 + strh r0, [r4, 0x8] + b _0819D05C + .pool +_0819D058: + adds r0, 0x1 +_0819D05A: + strb r0, [r1] +_0819D05C: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_819CF54 + + thumb_func_start sub_819D064 +sub_819D064: @ 819D064 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + movs r0, 0x8 + ldrsh r1, [r4, r0] + cmp r1, 0x1 + beq _0819D0A4 + cmp r1, 0x1 + bgt _0819D08C + cmp r1, 0 + beq _0819D092 + b _0819D118 + .pool +_0819D08C: + cmp r1, 0x2 + beq _0819D0BC + b _0819D118 +_0819D092: + ldr r0, =gUnknown_03001284 + ldr r0, [r0] + adds r0, 0x27 + strb r1, [r0] + strh r1, [r4, 0x10] + b _0819D0AE + .pool +_0819D0A4: + ldr r0, =gPlttBufferUnfaded+ 0x1E0 + movs r1, 0xE0 + movs r2, 0xA + bl LoadPalette +_0819D0AE: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _0819D118 + .pool +_0819D0BC: + ldr r2, =gUnknown_03001284 + ldr r0, [r2] + adds r0, 0x28 + ldrb r0, [r0] + cmp r0, 0xF + bls _0819D0D2 + movs r0, 0x1 + strh r0, [r4, 0x10] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_0819D0D2: + ldr r1, [r2] + adds r1, 0x27 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r2] + adds r1, r0, 0 + adds r1, 0x27 + ldrb r0, [r1] + cmp r0, 0x3 + bls _0819D108 + movs r0, 0 + strb r0, [r1] + ldr r1, =gPlttBufferUnfaded + ldr r0, =gPlttBufferFaded + movs r3, 0xE4 + lsls r3, 1 + adds r0, r3 + ldrh r0, [r0] + adds r3, 0x20 + adds r1, r3 + strh r0, [r1] + ldr r1, [r2] + adds r1, 0x28 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_0819D108: + movs r0, 0x80 + lsls r0, 7 + ldr r1, [r2] + adds r1, 0x28 + ldrb r1, [r1] + movs r2, 0 + bl BlendPalettes +_0819D118: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819D064 + + thumb_func_start sub_819D12C +sub_819D12C: @ 819D12C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + ldr r1, =gTasks + lsls r0, 2 + ldr r2, [sp] + adds r0, r2 + lsls r0, 3 + adds r4, r0, r1 + movs r2, 0x8 + ldrsh r3, [r4, r2] + cmp r3, 0 + beq _0819D15C + cmp r3, 0x1 + beq _0819D168 + b _0819D310 + .pool +_0819D15C: + strh r3, [r4, 0xA] + strh r3, [r4, 0xC] + strh r3, [r4, 0xE] + movs r0, 0x1 + strh r0, [r4, 0x8] + b _0819D310 +_0819D168: + movs r3, 0 + str r3, [sp, 0x4] + movs r1, 0x2 + str r0, [sp, 0x8] + ldr r0, =gTasks + str r0, [sp, 0xC] +_0819D174: + lsls r0, r1, 24 + asrs r4, r0, 24 + mov r9, r0 + cmp r4, 0x2 + beq _0819D1F2 + ldr r2, =gSprites + ldr r3, =gUnknown_03001284 + ldr r0, [r3] + adds r0, 0x5 + mov r8, r0 + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r6, r0, r2 + ldrh r1, [r6, 0x20] + mov r12, r1 + mov r7, r12 + ldr r1, [sp, 0x4] + subs r0, r1, r7 + lsls r0, 24 + lsrs r5, r0, 24 + mov r10, r2 + cmp r5, 0x10 + beq _0819D1BE + adds r0, r4, 0x2 + lsls r0, 1 + ldr r2, [sp, 0x8] + adds r0, r2 + ldr r1, =gTasks + adds r1, 0x8 + adds r0, r1 + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r0, 0x1 + bne _0819D1D8 +_0819D1BE: + lsls r0, r7, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + mov r0, r12 + adds r0, 0xA + strh r0, [r6, 0x20] + b _0819D210 + .pool +_0819D1D8: + cmp r5, 0x10 + bls _0819D210 + adds r0, r4, 0x1 + add r0, r8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r10 + ldrh r0, [r0, 0x20] + subs r0, 0x30 + strh r0, [r6, 0x20] + b _0819D210 +_0819D1F2: + ldr r3, =gSprites + ldr r4, =gUnknown_03001284 + ldr r0, [r4] + ldrb r1, [r0, 0x7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r2, [r0, 0x20] + lsls r1, r2, 24 + lsrs r1, 24 + str r1, [sp, 0x4] + adds r2, 0xA + strh r2, [r0, 0x20] + mov r10, r3 +_0819D210: + mov r0, r9 + asrs r2, r0, 24 + adds r0, r2, 0x1 + lsls r0, 1 + ldr r1, [sp, 0x8] + adds r0, r1 + ldr r1, =gTasks + adds r1, 0x8 + adds r0, r1 + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r0, 0x1 + bne _0819D26A + ldr r1, =gUnknown_03001284 + ldr r0, [r1] + adds r0, 0x5 + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + mov r3, r10 + adds r1, r0, r3 + movs r0, 0x20 + ldrsh r3, [r1, r0] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 4 + adds r0, 0x48 + cmp r3, r0 + ble _0819D260 + strh r0, [r1, 0x20] + movs r7, 0x1 + b _0819D26C + .pool +_0819D260: + movs r7, 0 + cmp r3, r0 + bne _0819D26C + movs r7, 0x1 + b _0819D26C +_0819D26A: + movs r7, 0 +_0819D26C: + mov r6, r10 + ldr r5, =gUnknown_03001284 + ldr r2, [r5] + mov r1, r9 + asrs r4, r1, 24 + adds r0, r2, 0x5 + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r6 + movs r3, 0x20 + ldrsh r0, [r1, r3] + subs r0, 0x10 + cmp r0, 0xF0 + ble _0819D2F8 + ldrh r0, [r1, 0x20] + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + ldr r0, =0x0000fff0 + strh r0, [r1, 0x20] + ldrb r0, [r2, 0x14] + cmp r0, 0x1 + bne _0819D2C0 + movs r0, 0x65 + bl IndexOfSpritePaletteTag + ldr r1, [r5] + adds r1, 0x5 + adds r1, r4 + ldrb r1, [r1] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r6 + b _0819D2D8 + .pool +_0819D2C0: + movs r0, 0x64 + bl IndexOfSpritePaletteTag + ldr r2, =gUnknown_03001284 + ldr r1, [r2] + adds r1, 0x5 + adds r1, r4 + ldrb r1, [r1] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + add r2, r10 +_0819D2D8: + lsls r0, 4 + ldrb r3, [r2, 0x5] + movs r1, 0xF + ands r1, r3 + orrs r1, r0 + strb r1, [r2, 0x5] + mov r3, r9 + asrs r0, r3, 23 + adds r0, 0x2 + ldr r1, [sp, 0x8] + adds r0, r1 + ldr r2, [sp, 0xC] + adds r2, 0x8 + adds r0, r2 + movs r1, 0x1 + strh r1, [r0] +_0819D2F8: + movs r0, 0xFF + lsls r0, 24 + add r0, r9 + lsrs r1, r0, 24 + cmp r0, 0 + blt _0819D306 + b _0819D174 +_0819D306: + cmp r7, 0x1 + bne _0819D310 + ldr r0, [sp] + bl DestroyTask +_0819D310: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819D12C + + thumb_func_start sub_819D324 +sub_819D324: @ 819D324 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r7, r0, 24 + movs r0, 0 + mov r8, r0 + ldr r1, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r2, r0, r1 + ldrb r4, [r2, 0xE] + movs r0, 0xC + ldrsh r5, [r2, r0] + mov r10, r1 + cmp r5, 0x1 + bne _0819D352 + lsls r0, r4, 24 + negs r0, r0 + lsrs r4, r0, 24 +_0819D352: + movs r1, 0x8 + ldrsh r0, [r2, r1] + cmp r0, 0 + beq _0819D368 + cmp r0, 0x1 + bne _0819D360 + b _0819D480 +_0819D360: + b _0819D570 + .pool +_0819D368: + ldr r3, =gSprites + ldr r2, =gUnknown_03001284 + ldr r0, [r2] + ldrb r1, [r0, 0x8] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x20] + cmp r5, 0 + bne _0819D39C + lsls r0, 16 + asrs r0, 16 + lsls r2, r4, 24 + asrs r1, r2, 24 + adds r0, r1 + movs r1, 0x1 + cmp r0, 0xEF + ble _0819D3B2 + movs r1, 0 + movs r0, 0xF0 + b _0819D3B0 + .pool +_0819D39C: + lsls r0, 16 + asrs r0, 16 + lsls r2, r4, 24 + asrs r1, r2, 24 + adds r0, r1 + movs r1, 0x1 + cmp r0, 0xA0 + bgt _0819D3B2 + movs r1, 0 + movs r0, 0xA0 +_0819D3B0: + mov r8, r0 +_0819D3B2: + cmp r1, 0x1 + bne _0819D3FC + movs r3, 0 + ldr r7, =gSprites + ldr r6, =gUnknown_03001284 + asrs r5, r2, 24 +_0819D3BE: + movs r4, 0 + adds r2, r3, 0x1 +_0819D3C2: + ldr r1, [r6] + lsls r0, r4, 1 + adds r0, r4 + adds r0, r3, r0 + adds r1, 0x8 + adds r1, r0 + ldrb r1, [r1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrh r1, [r0, 0x20] + adds r1, r5 + strh r1, [r0, 0x20] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + bls _0819D3C2 + lsls r0, r2, 24 + lsrs r3, r0, 24 + cmp r3, 0x2 + bls _0819D3BE + b _0819D570 + .pool +_0819D3FC: + movs r4, 0 + lsls r1, r7, 2 + mov r12, r1 + mov r6, r8 + adds r6, 0x10 + movs r0, 0x30 + add r0, r8 + mov r9, r0 + ldr r5, =gSprites +_0819D40E: + ldr r1, =gUnknown_03001284 + ldr r2, [r1] + lsls r3, r4, 1 + adds r3, r4 + adds r0, r2, 0 + adds r0, 0x8 + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + mov r1, r8 + strh r1, [r0, 0x20] + adds r0, r2, 0 + adds r0, 0x9 + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x20] + adds r2, 0xA + adds r2, r3 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + mov r1, r9 + strh r1, [r0, 0x20] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + bls _0819D40E + mov r1, r12 + adds r0, r1, r7 + lsls r0, 3 + add r0, r10 + ldrb r1, [r0, 0xA] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + add r0, r10 + movs r1, 0x1 + strh r1, [r0, 0xE] + adds r0, r7, 0 + bl DestroyTask + b _0819D570 + .pool +_0819D480: + ldr r2, =gSprites + ldr r0, =gUnknown_03001284 + ldr r0, [r0] + ldrb r1, [r0, 0xE] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x20] + cmp r5, 0 + bne _0819D4B4 + lsls r0, 16 + asrs r0, 16 + lsls r2, r4, 24 + asrs r1, r2, 24 + adds r0, r1 + movs r1, 0x1 + cmp r0, 0xEF + ble _0819D4CA + movs r1, 0 + movs r0, 0xF0 + b _0819D4C8 + .pool +_0819D4B4: + lsls r0, 16 + asrs r0, 16 + lsls r2, r4, 24 + asrs r1, r2, 24 + adds r0, r1 + movs r1, 0x1 + cmp r0, 0xC0 + bgt _0819D4CA + movs r1, 0 + movs r0, 0xC0 +_0819D4C8: + mov r8, r0 +_0819D4CA: + cmp r1, 0x1 + bne _0819D510 + movs r3, 0 + ldr r7, =gSprites + ldr r6, =gUnknown_03001284 + asrs r5, r2, 24 +_0819D4D6: + movs r4, 0 + adds r2, r3, 0x1 +_0819D4DA: + ldr r0, [r6] + lsls r1, r4, 1 + adds r1, r3, r1 + adds r0, 0xE + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrh r1, [r0, 0x20] + adds r1, r5 + strh r1, [r0, 0x20] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + bls _0819D4DA + lsls r0, r2, 24 + lsrs r3, r0, 24 + cmp r3, 0x1 + bls _0819D4D6 + b _0819D570 + .pool +_0819D510: + movs r4, 0 + lsls r1, r7, 2 + mov r12, r1 + mov r6, r8 + adds r6, 0x10 + ldr r5, =gSprites + ldr r0, =gUnknown_03001284 + mov r9, r0 +_0819D520: + mov r1, r9 + ldr r2, [r1] + lsls r3, r4, 1 + adds r0, r2, 0 + adds r0, 0xE + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + mov r1, r8 + strh r1, [r0, 0x20] + adds r2, 0xF + adds r2, r3 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x20] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + bls _0819D520 + mov r1, r12 + adds r0, r1, r7 + lsls r0, 3 + add r0, r10 + ldrb r1, [r0, 0xA] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + add r0, r10 + movs r1, 0x1 + strh r1, [r0, 0x10] + adds r0, r7, 0 + bl DestroyTask +_0819D570: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819D324 + + thumb_func_start sub_819D588 +sub_819D588: @ 819D588 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + mov r8, r1 + cmp r0, 0x5 + bls _0819D5AA + b _0819D762 +_0819D5AA: + lsls r0, 2 + ldr r1, =_0819D5BC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0819D5BC: + .4byte _0819D5D4 + .4byte _0819D5F0 + .4byte _0819D60C + .4byte _0819D63C + .4byte _0819D6F0 + .4byte _0819D73A +_0819D5D4: + ldr r0, =gUnknown_08610918 + movs r1, 0xE0 + movs r2, 0xA + bl LoadPalette + bl sub_819ED34 + movs r0, 0x5 + bl PutWindowTilemap + b _0819D622 + .pool +_0819D5F0: + movs r0, 0x3 + bl sub_819EA64 + ldr r0, =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _0819D762 + .pool +_0819D60C: + movs r0, 0x80 + lsls r0, 7 + ldr r1, =gUnknown_0860F13C + adds r1, 0x4A + ldrh r1, [r1] + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade +_0819D622: + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + b _0819D762 + .pool +_0819D63C: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + beq _0819D64E + b _0819D762 +_0819D64E: + movs r0, 0x5 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0x5 + movs r1, 0x2 + bl CopyWindowToVram + ldr r0, =gUnknown_03001284 + ldr r0, [r0] + ldrb r0, [r0, 0x14] + cmp r0, 0x1 + bne _0819D6B0 + ldr r0, =sub_819D324 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, =gTasks + lsls r2, r5, 2 + adds r2, r5 + lsls r2, 3 + adds r2, r1 + strh r6, [r2, 0xE] + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0xA] + strh r6, [r0, 0x8] + strh r6, [r0, 0xC] + movs r1, 0x6 + strh r1, [r0, 0xE] + movs r0, 0x5 + strh r0, [r2, 0xC] + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + b _0819D762 + .pool +_0819D6B0: + ldr r0, =sub_819D324 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r4, r0, 24 + ldr r3, =gTasks + lsls r2, r5, 2 + adds r2, r5 + lsls r2, 3 + adds r2, r3 + movs r1, 0x1 + strh r1, [r2, 0xE] + strh r6, [r2, 0x10] + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r3 + strh r5, [r0, 0xA] + strh r1, [r0, 0x8] + strh r6, [r0, 0xC] + movs r1, 0x6 + strh r1, [r0, 0xE] + ldrh r0, [r2, 0x8] + adds r0, 0x2 + strh r0, [r2, 0x8] + b _0819D762 + .pool +_0819D6F0: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + mov r1, r8 + adds r6, r0, r1 + ldrh r0, [r6, 0xC] + movs r2, 0xC + ldrsh r7, [r6, r2] + cmp r7, 0 + bne _0819D734 + ldr r0, =sub_819D324 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r4, r0, 24 + strh r7, [r6, 0x10] + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + add r0, r8 + strh r5, [r0, 0xA] + movs r1, 0x1 + strh r1, [r0, 0x8] + strh r7, [r0, 0xC] + movs r1, 0x6 + strh r1, [r0, 0xE] + ldrh r0, [r6, 0x8] + adds r0, 0x1 + strh r0, [r6, 0x8] + b _0819D762 + .pool +_0819D734: + subs r0, 0x1 + strh r0, [r6, 0xC] + b _0819D762 +_0819D73A: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + mov r1, r8 + adds r2, r0, r1 + movs r1, 0xE + ldrsh r0, [r2, r1] + cmp r0, 0x1 + bne _0819D762 + movs r1, 0x10 + ldrsh r0, [r2, r1] + cmp r0, 0x1 + bne _0819D762 + ldrh r0, [r2, 0x12] + strh r0, [r2, 0x8] + ldrh r0, [r2, 0x14] + ldrh r1, [r2, 0x16] + lsls r0, 16 + orrs r0, r1 + str r0, [r2] +_0819D762: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_819D588 + + thumb_func_start sub_819D770 +sub_819D770: @ 819D770 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, =gUnknown_03001284 + ldr r0, [r1] + adds r0, 0x30 + ldrb r0, [r0] + adds r3, r1, 0 + cmp r0, 0x1 + bne _0819D78C + b _0819D9D8 +_0819D78C: + ldr r0, =gTasks + lsls r2, r6, 2 + adds r1, r2, r6 + lsls r1, 3 + adds r1, r0 + movs r4, 0x8 + ldrsh r1, [r1, r4] + mov r8, r0 + adds r5, r2, 0 + cmp r1, 0x8 + bls _0819D7A4 + b _0819D9D8 +_0819D7A4: + lsls r0, r1, 2 + ldr r1, =_0819D7BC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0819D7BC: + .4byte _0819D7E0 + .4byte _0819D868 + .4byte _0819D8AE + .4byte _0819D8F4 + .4byte _0819D910 + .4byte _0819D928 + .4byte _0819D936 + .4byte _0819D948 + .4byte _0819D9B0 +_0819D7E0: + ldr r0, [r3] + ldrb r7, [r0, 0x14] + cmp r7, 0x1 + bne _0819D828 + ldr r0, =sub_819D324 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r4, r0, 24 + ldr r3, =gTasks + adds r2, r5, r6 + lsls r2, 3 + adds r2, r3 + movs r1, 0 + strh r1, [r2, 0xE] + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r3 + strh r6, [r0, 0xA] + strh r1, [r0, 0x8] + strh r7, [r0, 0xC] + movs r1, 0x6 + strh r1, [r0, 0xE] + movs r0, 0xA + strh r0, [r2, 0xC] + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + b _0819D9D8 + .pool +_0819D828: + ldr r0, =sub_819D324 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r4, r0, 24 + ldr r3, =gTasks + adds r2, r5, r6 + lsls r2, 3 + adds r2, r3 + movs r0, 0 + movs r1, 0x1 + strh r1, [r2, 0xE] + strh r0, [r2, 0x10] + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r3 + strh r6, [r0, 0xA] + strh r1, [r0, 0x8] + strh r1, [r0, 0xC] + movs r1, 0x6 + strh r1, [r0, 0xE] + ldrh r0, [r2, 0x8] + adds r0, 0x2 + strh r0, [r2, 0x8] + b _0819D9D8 + .pool +_0819D868: + adds r0, r5, r6 + lsls r0, 3 + mov r1, r8 + adds r5, r0, r1 + ldrh r0, [r5, 0xC] + movs r2, 0xC + ldrsh r7, [r5, r2] + cmp r7, 0 + bne _0819D8A8 + ldr r0, =sub_819D324 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r4, r0, 24 + strh r7, [r5, 0x10] + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + add r0, r8 + strh r6, [r0, 0xA] + movs r1, 0x1 + strh r1, [r0, 0x8] + strh r1, [r0, 0xC] + movs r1, 0x6 + strh r1, [r0, 0xE] + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _0819D9D8 + .pool +_0819D8A8: + subs r0, 0x1 + strh r0, [r5, 0xC] + b _0819D9D8 +_0819D8AE: + adds r0, r5, r6 + lsls r0, 3 + mov r1, r8 + adds r4, r0, r1 + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r0, 0x1 + beq _0819D8C0 + b _0819D9D8 +_0819D8C0: + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _0819D8CA + b _0819D9D8 +_0819D8CA: + ldr r1, =gPlttBufferFaded + ldr r0, =gUnknown_0860F13C + adds r0, 0x4A + ldrh r0, [r0] + movs r2, 0xE2 + lsls r2, 1 + adds r1, r2 + strh r0, [r1] + bl sub_819ED34 + movs r0, 0x5 + bl PutWindowTilemap + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _0819D9D8 + .pool +_0819D8F4: + movs r0, 0x80 + lsls r0, 7 + ldr r1, =gUnknown_0860F13C + adds r1, 0x4A + ldrh r1, [r1] + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + b _0819D990 + .pool +_0819D910: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0819D9D8 + movs r0, 0 + bl sub_819EDBC + b _0819D990 + .pool +_0819D928: + movs r0, 0x1 + bl sub_819EDBC + movs r0, 0x3 + bl PutWindowTilemap + b _0819D990 +_0819D936: + movs r0, 0x5 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0x5 + movs r1, 0x2 + bl CopyWindowToVram + b _0819D990 +_0819D948: + ldr r0, =gUnknown_03001284 + ldr r0, [r0] + ldrb r0, [r0, 0x14] + cmp r0, 0 + bne _0819D964 + ldr r0, =gUnknown_085EEC73 + bl sub_819EBEC + b _0819D96A + .pool +_0819D964: + ldr r0, =gUnknown_085EEC8B + bl sub_819EBEC +_0819D96A: + ldr r0, =gUnknown_03001284 + ldr r1, [r0] + ldrb r0, [r1, 0x3] + cmp r0, 0x2 + bhi _0819D98C + ldr r2, =gSprites + ldrb r1, [r1, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] +_0819D98C: + bl sub_819EFA8 +_0819D990: + ldr r0, =gTasks + adds r1, r5, r6 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _0819D9D8 + .pool +_0819D9B0: + bl sub_819EEF0 + bl sub_819EADC + ldr r0, =gUnknown_03001284 + ldr r0, [r0] + adds r0, 0x22 + movs r1, 0x1 + strb r1, [r0] + ldr r1, =gTasks + adds r0, r5, r6 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x12] + strh r1, [r0, 0x8] + ldrh r1, [r0, 0x14] + ldrh r2, [r0, 0x16] + lsls r1, 16 + orrs r1, r2 + str r1, [r0] +_0819D9D8: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819D770 + + thumb_func_start sub_819D9EC +sub_819D9EC: @ 819D9EC + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, =gUnknown_03001284 + ldr r0, [r0] + adds r0, 0x30 + ldrb r0, [r0] + cmp r0, 0x1 + bne _0819DA00 + b _0819DBCA +_0819DA00: + ldr r0, =gTasks + lsls r2, r6, 2 + adds r1, r2, r6 + lsls r1, 3 + adds r1, r0 + movs r3, 0x8 + ldrsh r1, [r1, r3] + adds r3, r0, 0 + adds r7, r2, 0 + cmp r1, 0x4 + bls _0819DA18 + b _0819DBCA +_0819DA18: + lsls r0, r1, 2 + ldr r1, =_0819DA30 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0819DA30: + .4byte _0819DA44 + .4byte _0819DA58 + .4byte _0819DA8C + .4byte _0819DABC + .4byte _0819DBB0 +_0819DA44: + bl sub_819EEF0 + ldr r0, =gTasks + adds r1, r7, r6 + lsls r1, 3 + adds r1, r0 + b _0819DB96 + .pool +_0819DA58: + bl sub_819EADC + ldr r2, =gSprites + ldr r0, =gUnknown_03001284 + ldr r0, [r0] + ldrb r1, [r0, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldr r0, =gTasks + adds r1, r7, r6 + lsls r1, 3 + adds r1, r0 + b _0819DB96 + .pool +_0819DA8C: + ldr r0, =sub_819D12C + movs r1, 0 + bl CreateTask + ldr r2, =gTasks + ldr r0, =gUnknown_03001284 + ldr r0, [r0] + adds r0, 0x21 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, =sub_819D064 + str r1, [r0] + b _0819DB90 + .pool +_0819DABC: + ldr r0, =sub_819D12C + bl FuncIsActiveTask + lsls r0, 24 + cmp r0, 0 + beq _0819DACA + b _0819DBCA +_0819DACA: + ldr r2, =gTasks + ldr r4, =gUnknown_03001284 + ldr r0, [r4] + adds r0, 0x21 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r1, 0x10 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + bne _0819DBCA + bl sub_819EAC0 + ldr r0, [r4] + ldrb r0, [r0, 0x14] + cmp r0, 0 + bne _0819DB04 + movs r0, 0x1 + bl sub_819F048 + b _0819DB32 + .pool +_0819DB04: + movs r0, 0 + bl sub_819F048 + movs r2, 0 + ldr r5, =gSprites + movs r3, 0x4 +_0819DB10: + ldr r0, [r4] + adds r0, 0xB + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r3 + strb r1, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x2 + bls _0819DB10 +_0819DB32: + ldr r5, =gSprites + ldr r4, =gUnknown_03001284 + ldr r3, [r4] + ldrb r0, [r3, 0x4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + adds r0, r3, 0x5 + ldrb r2, [r3, 0x3] + adds r0, r2 + ldrb r2, [r0] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r5 + ldrh r0, [r0, 0x20] + movs r5, 0 + strh r0, [r1, 0x20] + ldr r2, =gTasks + adds r0, r3, 0 + adds r0, 0x21 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, =sub_819CF54 + str r1, [r0] + adds r3, 0x27 + strb r5, [r3] + ldr r0, [r4] + adds r0, 0x28 + movs r1, 0x6 + strb r1, [r0] + ldr r0, [r4] + adds r0, 0x26 + strb r5, [r0] + ldr r0, [r4] + adds r0, 0x21 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r1, 0x1 + strh r1, [r0, 0x8] +_0819DB90: + adds r1, r7, r6 + lsls r1, 3 + adds r1, r2 +_0819DB96: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _0819DBCA + .pool +_0819DBB0: + adds r0, r7, r6 + lsls r0, 3 + adds r0, r3 + movs r1, 0 + strh r1, [r0, 0x8] + ldr r2, =sub_819CE40 + lsrs r1, r2, 16 + strh r1, [r0, 0x14] + strh r2, [r0, 0x16] + movs r1, 0x1 + strh r1, [r0, 0x12] + ldr r1, =sub_819D770 + str r1, [r0] +_0819DBCA: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819D9EC + + thumb_func_start sub_819DBD8 +sub_819DBD8: @ 819DBD8 + push {r4,r5,lr} + ldr r5, =gUnknown_03001284 + ldr r4, [r5] + cmp r4, 0 + bne _0819DBF6 + movs r0, 0x34 + bl AllocZeroed + str r0, [r5] + strb r4, [r0, 0x3] + ldr r0, [r5] + adds r0, 0x30 + strb r4, [r0] + ldr r0, [r5] + strb r4, [r0, 0x15] +_0819DBF6: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819DBD8 + + thumb_func_start sub_819DC00 +sub_819DC00: @ 819DC00 + push {lr} + ldr r0, =gUnknown_03001284 + movs r1, 0 + str r1, [r0] + ldr r0, =sub_819DC1C + bl SetMainCallback2 + pop {r0} + bx r0 + .pool + thumb_func_end sub_819DC00 + + thumb_func_start sub_819DC1C +sub_819DC1C: @ 819DC1C + push {r4-r6,lr} + sub sp, 0xC + ldr r1, =gMain + movs r2, 0x87 + lsls r2, 3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, r1, 0 + cmp r0, 0xF + bls _0819DC32 + b _0819E0AA +_0819DC32: + lsls r0, 2 + ldr r1, =_0819DC44 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0819DC44: + .4byte _0819DC84 + .4byte _0819DCD4 + .4byte _0819DDA8 + .4byte _0819DE68 + .4byte _0819DE94 + .4byte _0819DECC + .4byte _0819DEEC + .4byte _0819DF10 + .4byte _0819DF30 + .4byte _0819DF3C + .4byte _0819DF64 + .4byte _0819DF70 + .4byte _0819DF78 + .4byte _0819DF8C + .4byte _0819DFA4 + .4byte _0819E01C +_0819DC84: + movs r0, 0 + bl SetHBlankCallback + movs r0, 0 + bl SetVBlankCallback + movs r0, 0 + str r0, [sp, 0x8] + movs r1, 0xC0 + lsls r1, 19 + ldr r2, =0x05006000 + add r0, sp, 0x8 + bl CpuSet + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, =gUnknown_086108B8 + movs r0, 0 + movs r2, 0x4 + bl InitBgsFromTemplates + ldr r0, =gUnknown_086108C8 + bl InitWindows + bl DeactivateAllTextPrinters + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _0819E00E + .pool +_0819DCD4: + ldr r5, =gUnknown_0203CE40 + movs r4, 0x88 + lsls r4, 3 + adds r0, r4, 0 + bl Alloc + str r0, [r5] + ldr r5, =gUnknown_0203CE44 + adds r0, r4, 0 + bl AllocZeroed + str r0, [r5] + ldr r5, =gUnknown_0203CE48 + movs r4, 0x80 + lsls r4, 4 + adds r0, r4, 0 + bl Alloc + str r0, [r5] + ldr r5, =gUnknown_0203CE4C + adds r0, r4, 0 + bl AllocZeroed + str r0, [r5] + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + movs r0, 0x4C + movs r1, 0 + bl SetGpuReg + movs r0, 0x40 + movs r1, 0 + bl SetGpuReg + movs r0, 0x44 + movs r1, 0 + bl SetGpuReg + movs r0, 0x42 + movs r1, 0 + bl SetGpuReg + movs r0, 0x46 + movs r1, 0 + bl SetGpuReg + movs r0, 0x48 + movs r1, 0 + bl SetGpuReg + movs r0, 0x4A + movs r1, 0 + bl SetGpuReg + b _0819E006 + .pool +_0819DDA8: + bl ResetPaletteFade + bl ResetSpriteData + bl ResetTasks + bl FreeAllSpritePalettes + bl dp13_810BB8C + ldr r0, =gUnknown_08DC0754 + ldr r5, =gUnknown_0203CE40 + ldr r1, [r5] + movs r2, 0x88 + lsls r2, 2 + bl CpuSet + ldr r0, =gUnknown_0861033C + ldr r4, =gUnknown_0203CE44 + ldr r1, [r4] + movs r2, 0x30 + bl CpuSet + ldr r1, [r5] + movs r2, 0x88 + lsls r2, 3 + movs r0, 0x1 + movs r3, 0 + bl LoadBgTiles + ldr r1, [r4] + movs r0, 0x3 + movs r2, 0x60 + movs r3, 0 + bl LoadBgTiles + ldr r0, =gUnknown_08DC0B94 + ldr r4, =gUnknown_0203CE48 + ldr r1, [r4] + movs r2, 0x80 + lsls r2, 3 + bl CpuSet + ldr r1, [r4] + movs r2, 0x80 + lsls r2, 4 + movs r0, 0x1 + movs r3, 0 + bl LoadBgTilemap + ldr r0, =gUnknown_08DC0714 + movs r1, 0 + movs r2, 0x40 + bl LoadPalette + ldr r4, =gUnknown_08610918 + adds r0, r4, 0 + movs r1, 0xF0 + movs r2, 0xA + bl LoadPalette + adds r0, r4, 0 + movs r1, 0xE0 + movs r2, 0xA + bl LoadPalette + ldr r0, =gUnknown_0861039C + movs r1, 0x20 + movs r2, 0x4 + bl LoadPalette + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _0819E00E + .pool +_0819DE68: + ldr r0, =gUnknown_0203CE4C + ldr r1, [r0] + movs r0, 0x3 + bl SetBgTilemapBuffer + ldr r1, =gUnknown_0861023C + movs r0, 0x8 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x3 + movs r2, 0xB + movs r3, 0x4 + bl CopyToBgTilemapBufferRect + movs r0, 0x3 + bl CopyBgTilemapBufferToVram + b _0819E006 + .pool +_0819DE94: + ldr r0, =gUnknown_086106B0 + bl LoadSpritePalettes + ldr r0, =gUnknown_08610650 + bl LoadSpriteSheets + ldr r0, =gUnknown_086106A0 + bl LoadCompressedObjectPic + ldr r0, =sub_819C7FC + bl SetVBlankCallback + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _0819E00E + .pool +_0819DECC: + ldr r0, =gUnknown_03001284 + ldr r1, [r0] + ldrb r0, [r1, 0x15] + cmp r0, 0x1 + bne _0819DEDC + ldr r0, =gUnknown_0203CF20 + ldrb r0, [r0] + strb r0, [r1, 0x3] +_0819DEDC: + movs r0, 0x87 + lsls r0, 3 + adds r1, r2, r0 + b _0819E00E + .pool +_0819DEEC: + bl sub_819DBD8 + bl sub_819E0C0 + ldr r0, =gUnknown_03001284 + ldr r0, [r0] + ldrb r0, [r0, 0x15] + cmp r0, 0x1 + bne _0819DF02 + bl sub_819F304 +_0819DF02: + movs r0, 0 + bl sub_819F048 + b _0819E006 + .pool +_0819DF10: + ldr r0, =gUnknown_085EEC73 + bl sub_819EBEC + movs r0, 0x2 + bl PutWindowTilemap + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _0819E00E + .pool +_0819DF30: + bl sub_819EFA8 + movs r0, 0x8 + bl PutWindowTilemap + b _0819E006 +_0819DF3C: + ldr r0, =gUnknown_03001284 + ldr r0, [r0] + ldrb r0, [r0, 0x15] + cmp r0, 0 + bne _0819DF4A + bl sub_819EB4C +_0819DF4A: + movs r0, 0x1 + bl PutWindowTilemap + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _0819E00E + .pool +_0819DF64: + bl sub_819EB18 + movs r0, 0 + bl PutWindowTilemap + b _0819E006 +_0819DF70: + movs r0, 0x87 + lsls r0, 3 + adds r1, r2, r0 + b _0819E00E +_0819DF78: + ldr r0, =gUnknown_03001284 + ldr r0, [r0] + ldrb r0, [r0, 0x15] + cmp r0, 0 + beq _0819E006 + bl sub_819EE08 + b _0819E006 + .pool +_0819DF8C: + bl sub_819ED78 + movs r0, 0x3 + bl PutWindowTilemap + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _0819E00E + .pool +_0819DFA4: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + movs r1, 0x82 + lsls r1, 5 + movs r0, 0 + bl SetGpuReg + movs r0, 0 + bl ShowBg + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + ldr r0, =gUnknown_03001284 + ldr r0, [r0] + ldrb r0, [r0, 0x15] + cmp r0, 0x1 + bne _0819E000 + movs r0, 0x3 + bl ShowBg + ldr r1, =0x00001248 + movs r0, 0x50 + bl SetGpuReg + ldr r1, =0x0000040b + movs r0, 0x52 + bl SetGpuReg + b _0819E006 + .pool +_0819E000: + movs r0, 0x3 + bl HideBg +_0819E006: + ldr r1, =gMain + movs r2, 0x87 + lsls r2, 3 + adds r1, r2 +_0819E00E: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0819E0AA + .pool +_0819E01C: + ldr r0, =sub_819CF54 + movs r1, 0 + bl CreateTask + ldr r6, =gUnknown_03001284 + ldr r1, [r6] + adds r1, 0x21 + strb r0, [r1] + ldr r0, [r6] + ldrb r5, [r0, 0x15] + cmp r5, 0 + bne _0819E06C + ldr r4, =gTasks + adds r0, 0x21 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + strh r5, [r0, 0x8] + ldr r0, =sub_819CE40 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r1, r0, 24 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + strh r5, [r0, 0x8] + b _0819E0A4 + .pool +_0819E06C: + bl sub_819EAF8 + ldr r4, =gTasks + ldr r2, [r6] + adds r0, r2, 0 + adds r0, 0x21 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + movs r3, 0 + movs r1, 0x1 + strh r1, [r0, 0x8] + adds r2, 0x22 + strb r3, [r2] + ldr r0, =sub_819CD34 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r1, r0, 24 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + movs r1, 0x2 + strh r1, [r0, 0x8] +_0819E0A4: + ldr r0, =sub_819C7E0 + bl SetMainCallback2 +_0819E0AA: + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819DC1C + + thumb_func_start sub_819E0C0 +sub_819E0C0: @ 819E0C0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + mov r1, sp + ldr r0, =gUnknown_08610834 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2,r5,r6} + stm r1!, {r2,r5,r6} + mov r1, sp + movs r0, 0x65 + strh r0, [r1, 0x2] + movs r6, 0 + ldr r4, =gUnknown_03001284 + movs r7, 0 + ldr r5, =gSprites +_0819E0E6: + lsls r1, r6, 1 + adds r1, r6 + lsls r1, 20 + movs r3, 0x90 + lsls r3, 15 + adds r1, r3 + asrs r1, 16 + mov r0, sp + movs r2, 0x40 + movs r3, 0x1 + bl CreateSprite + ldr r1, [r4] + adds r1, 0x5 + adds r1, r6 + strb r0, [r1] + ldr r0, [r4] + adds r0, 0x5 + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r7, [r0, 0x2E] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x2 + bls _0819E0E6 + ldr r7, =gUnknown_03001284 + ldr r1, [r7] + adds r0, r1, 0x5 + ldrb r1, [r1, 0x3] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + movs r5, 0x20 + ldrsh r1, [r0, r5] + ldr r0, =gUnknown_0861084C + movs r2, 0x58 + movs r3, 0 + bl CreateSprite + ldr r1, [r7] + movs r4, 0 + strb r0, [r1, 0x4] + ldr r0, =gUnknown_08610864 + movs r1, 0xB0 + movs r2, 0x70 + movs r3, 0 + bl CreateSprite + ldr r1, [r7] + strb r0, [r1, 0x1] + ldr r0, =gUnknown_0861087C + movs r1, 0xB0 + movs r2, 0x90 + movs r3, 0 + bl CreateSprite + ldr r1, [r7] + strb r0, [r1, 0x2] + ldr r0, [r7] + ldrb r1, [r0, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r6, =gSprites + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r7] + ldrb r1, [r0, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + ldr r0, [r7] + ldrb r1, [r0, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x28 + strb r4, [r0] + ldr r0, [r7] + ldrb r1, [r0, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x29 + strb r4, [r0] + ldr r0, [r7] + ldrb r1, [r0, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x28 + strb r4, [r0] + ldr r0, [r7] + ldrb r1, [r0, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x29 + strb r4, [r0] + ldr r0, [r7] + ldrb r0, [r0, 0x15] + movs r1, 0xC0 + str r1, [sp, 0x18] + cmp r0, 0x1 + bne _0819E1E8 + movs r2, 0xF0 + str r2, [sp, 0x18] +_0819E1E8: + mov r1, sp + ldr r0, =gUnknown_0861084C + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + mov r0, sp + movs r4, 0x68 + mov r10, r4 + mov r5, r10 + strh r5, [r0] + movs r1, 0xF0 + movs r2, 0x78 + movs r3, 0xA + bl CreateSprite + ldr r1, [r7] + strb r0, [r1, 0x8] + mov r1, sp + ldr r0, =gUnknown_08610864 + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + mov r0, sp + movs r1, 0x69 + mov r9, r1 + mov r2, r9 + strh r2, [r0] + movs r4, 0x80 + lsls r4, 1 + adds r1, r4, 0 + movs r2, 0x78 + movs r3, 0xA + bl CreateSprite + ldr r1, [r7] + strb r0, [r1, 0x9] + movs r5, 0x90 + lsls r5, 1 + mov r0, sp + adds r1, r5, 0 + movs r2, 0x78 + movs r3, 0xA + bl CreateSprite + ldr r1, [r7] + strb r0, [r1, 0xA] + mov r1, sp + ldr r0, =gUnknown_0861084C + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + mov r0, sp + movs r3, 0x6A + mov r8, r3 + mov r6, r8 + strh r6, [r0] + movs r1, 0xF0 + movs r2, 0x78 + movs r3, 0x1 + bl CreateSprite + ldr r1, [r7] + strb r0, [r1, 0xB] + mov r1, sp + ldr r0, =gUnknown_08610864 + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + mov r1, sp + movs r0, 0x6B + strh r0, [r1] + mov r0, sp + adds r1, r4, 0 + movs r2, 0x78 + movs r3, 0x1 + bl CreateSprite + ldr r1, [r7] + strb r0, [r1, 0xC] + mov r0, sp + movs r6, 0x6C + strh r6, [r0] + adds r1, r5, 0 + movs r2, 0x78 + movs r3, 0x1 + bl CreateSprite + ldr r1, [r7] + strb r0, [r1, 0xD] + mov r1, sp + ldr r0, =gUnknown_0861084C + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + mov r0, sp + mov r4, r10 + strh r4, [r0] + ldr r1, [sp, 0x18] + movs r2, 0x90 + movs r3, 0xA + bl CreateSprite + ldr r1, [r7] + strb r0, [r1, 0xE] + mov r1, sp + ldr r0, =gUnknown_08610864 + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r4,r5} + stm r1!, {r2,r4,r5} + mov r0, sp + mov r3, r9 + strh r3, [r0] + ldr r4, [sp, 0x18] + adds r4, 0x10 + adds r1, r4, 0 + movs r2, 0x90 + movs r3, 0xA + bl CreateSprite + ldr r1, [r7] + strb r0, [r1, 0xF] + mov r1, sp + ldr r0, =gUnknown_0861084C + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + mov r0, sp + mov r5, r8 + strh r5, [r0] + ldr r1, [sp, 0x18] + movs r2, 0x90 + movs r3, 0x1 + bl CreateSprite + ldr r1, [r7] + strb r0, [r1, 0x10] + mov r1, sp + ldr r0, =gUnknown_08610864 + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + mov r0, sp + strh r6, [r0] + adds r1, r4, 0 + movs r2, 0x90 + movs r3, 0x1 + bl CreateSprite + ldr r1, [r7] + strb r0, [r1, 0x11] + movs r6, 0 + ldr r5, =gSprites + adds r4, r7, 0 + movs r7, 0 + movs r0, 0x4 + mov r10, r0 +_0819E330: + ldr r0, [r4] + lsls r3, r6, 1 + adds r2, r3, r6 + adds r0, 0x8 + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x28 + strb r7, [r0] + ldr r0, [r4] + adds r0, 0x8 + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x29 + strb r7, [r0] + ldr r0, [r4] + adds r0, 0x9 + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x28 + strb r7, [r0] + ldr r0, [r4] + adds r0, 0x9 + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x29 + strb r7, [r0] + ldr r0, [r4] + adds r0, 0xA + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x28 + strb r7, [r0] + ldr r0, [r4] + adds r0, 0xA + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x29 + strb r7, [r0] + ldr r0, [r4] + adds r0, 0xE + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x28 + strb r7, [r0] + ldr r0, [r4] + adds r0, 0xE + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x29 + strb r7, [r0] + ldr r0, [r4] + adds r0, 0xF + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x28 + strb r7, [r0] + ldr r0, [r4] + adds r0, 0xF + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x29 + strb r7, [r0] + ldr r0, [r4] + adds r0, 0x8 + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + mov r8, r0 + ldrb r1, [r0] + mov r0, r10 + orrs r1, r0 + mov r0, r8 + strb r1, [r0] + ldr r0, [r4] + adds r0, 0x9 + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + mov r8, r0 + ldrb r1, [r0] + mov r0, r10 + orrs r1, r0 + mov r0, r8 + strb r1, [r0] + ldr r0, [r4] + adds r0, 0xA + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + mov r2, r10 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r4] + adds r0, 0xE + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + ldr r0, [r4] + adds r0, 0xF + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r3, =gUnknown_03001284 + mov r8, r3 + ldr r0, =gSprites + mov r9, r0 + cmp r6, 0x1 + bhi _0819E496 + b _0819E330 +_0819E496: + ldr r0, [r3] + ldrb r0, [r0, 0xE] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r9 + adds r1, 0x3E + ldrb r2, [r1] + movs r3, 0x5 + negs r3, r3 + adds r0, r3, 0 + b _0819E4C8 + .pool +_0819E4C8: + ands r0, r2 + strb r0, [r1] + mov r1, r8 + ldr r0, [r1] + ldrb r1, [r0, 0xF] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r9 + adds r0, 0x3E + ldrb r2, [r0] + adds r1, r3, 0 + ands r1, r2 + strb r1, [r0] + mov r2, r8 + ldr r0, [r2] + ldrb r1, [r0, 0x8] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r9 + adds r0, 0x3E + ldrb r2, [r0] + adds r1, r3, 0 + ands r1, r2 + strb r1, [r0] + mov r4, r8 + ldr r0, [r4] + ldrb r1, [r0, 0x9] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r9 + adds r0, 0x3E + ldrb r2, [r0] + adds r1, r3, 0 + ands r1, r2 + strb r1, [r0] + ldr r0, [r4] + ldrb r1, [r0, 0xA] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r9 + adds r0, 0x3E + ldrb r1, [r0] + ands r3, r1 + strb r3, [r0] + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_819E0C0 + + thumb_func_start sub_819E538 +sub_819E538: @ 819E538 + push {r4-r7,lr} + movs r5, 0 +_0819E53C: + ldr r6, =gUnknown_03001284 + ldr r0, [r6] + adds r0, 0x5 + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + bl DestroySprite + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bls _0819E53C + ldr r0, [r6] + ldrb r1, [r0, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + ldr r0, [r6] + ldrb r1, [r0, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + ldr r0, [r6] + ldrb r1, [r0, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + movs r5, 0 +_0819E590: + movs r4, 0 + lsls r6, r5, 1 +_0819E594: + ldr r0, =gUnknown_03001284 + ldr r0, [r0] + adds r1, r6, r5 + adds r1, r4, r1 + adds r0, 0x8 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _0819E594 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x1 + bls _0819E590 + movs r5, 0 +_0819E5C6: + movs r4, 0 + adds r7, r5, 0x1 + lsls r6, r5, 1 +_0819E5CC: + ldr r0, =gUnknown_03001284 + ldr r0, [r0] + adds r1, r4, r6 + adds r0, 0xE + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + bls _0819E5CC + lsls r0, r7, 24 + lsrs r5, r0, 24 + cmp r5, 0x1 + bls _0819E5C6 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819E538 + + thumb_func_start sub_819E608 +sub_819E608: @ 819E608 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x2 + bhi _0819E65C + ldr r4, =gSprites + ldr r5, =gUnknown_03001284 + ldr r0, [r5] + ldrb r1, [r0, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + bl sub_819E8EC + ldr r0, [r5] + ldrb r2, [r0, 0x4] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + adds r0, 0x5 + adds r0, r6 + ldrb r2, [r0] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r4 + ldrh r0, [r0, 0x20] + strh r0, [r1, 0x20] + b _0819E684 + .pool +_0819E65C: + ldr r2, =gSprites + ldr r3, =gUnknown_03001284 + ldr r0, [r3] + ldrb r1, [r0, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r3] + ldr r1, [r0, 0x18] + lsls r0, r6, 3 + adds r0, r1 + ldrb r0, [r0] + bl sub_819E838 +_0819E684: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819E608 + + thumb_func_start sub_819E694 +sub_819E694: @ 819E694 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x5 + bl PlaySE + lsls r4, 24 + cmp r4, 0 + ble _0819E6C0 + ldr r1, =gUnknown_03001284 + ldr r2, [r1] + ldrb r0, [r2, 0x3] + adds r0, 0x1 + ldrb r3, [r2, 0x17] + cmp r0, r3 + bne _0819E6D8 + movs r0, 0 + b _0819E6D8 + .pool +_0819E6C0: + ldr r0, =gUnknown_03001284 + ldr r2, [r0] + ldrb r3, [r2, 0x3] + adds r1, r0, 0 + cmp r3, 0 + beq _0819E6D4 + subs r0, r3, 0x1 + b _0819E6D8 + .pool +_0819E6D4: + ldrb r0, [r2, 0x17] + subs r0, 0x1 +_0819E6D8: + strb r0, [r2, 0x3] + ldr r0, [r1] + ldrb r0, [r0, 0x3] + bl sub_819E608 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_819E694 + + thumb_func_start sub_819E6E8 +sub_819E6E8: @ 819E6E8 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x5 + bl PlaySE + lsls r4, 24 + cmp r4, 0 + ble _0819E728 + ldr r0, =gUnknown_03001284 + ldr r2, [r0] + ldrb r1, [r2, 0x3] + adds r4, r0, 0 + cmp r1, 0x2 + bhi _0819E714 + movs r0, 0x3 + strb r0, [r2, 0x3] + b _0819E74A + .pool +_0819E714: + ldrb r0, [r2, 0x3] + adds r0, 0x1 + ldrb r1, [r2, 0x17] + cmp r0, r1 + beq _0819E722 + strb r0, [r2, 0x3] + b _0819E74A +_0819E722: + movs r0, 0 + strb r0, [r2, 0x3] + b _0819E74A +_0819E728: + ldr r0, =gUnknown_03001284 + ldr r1, [r0] + ldrb r3, [r1, 0x3] + adds r2, r3, 0 + adds r4, r0, 0 + cmp r2, 0x2 + bls _0819E744 + cmp r2, 0 + beq _0819E744 + subs r0, r3, 0x1 + b _0819E748 + .pool +_0819E744: + ldrb r0, [r1, 0x17] + subs r0, 0x1 +_0819E748: + strb r0, [r1, 0x3] +_0819E74A: + ldr r0, [r4] + ldrb r0, [r0, 0x3] + bl sub_819E608 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_819E6E8 + + thumb_func_start sub_819E758 +sub_819E758: @ 819E758 + push {lr} + lsls r0, 24 + cmp r0, 0 + ble _0819E778 + ldr r0, =gUnknown_03001284 + ldr r1, [r0] + ldrb r3, [r1, 0x16] + adds r2, r0, 0 + cmp r3, 0x1 + beq _0819E774 + adds r0, r3, 0x1 + b _0819E78E + .pool +_0819E774: + movs r0, 0 + b _0819E78E +_0819E778: + ldr r0, =gUnknown_03001284 + ldr r1, [r0] + ldrb r3, [r1, 0x16] + adds r2, r0, 0 + cmp r3, 0 + beq _0819E78C + subs r0, r3, 0x1 + b _0819E78E + .pool +_0819E78C: + movs r0, 0x1 +_0819E78E: + strb r0, [r1, 0x16] + ldr r3, =gSprites + ldr r2, [r2] + ldrb r0, [r2, 0x1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r0, [r2, 0x16] + lsls r0, 4 + adds r0, 0x70 + strh r0, [r1, 0x22] + ldrb r0, [r2, 0x2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r0, [r2, 0x16] + lsls r0, 4 + adds r0, 0x70 + strh r0, [r1, 0x22] + pop {r0} + bx r0 + .pool + thumb_func_end sub_819E758 + + thumb_func_start sub_819E7C0 +sub_819E7C0: @ 819E7C0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x5 + bl PlaySE + lsls r4, 24 + cmp r4, 0 + ble _0819E7EC + ldr r0, =gUnknown_03001284 + ldr r1, [r0] + ldrb r3, [r1] + adds r2, r0, 0 + cmp r3, 0x2 + beq _0819E7E8 + adds r0, r3, 0x1 + b _0819E802 + .pool +_0819E7E8: + movs r0, 0 + b _0819E802 +_0819E7EC: + ldr r0, =gUnknown_03001284 + ldr r1, [r0] + ldrb r3, [r1] + adds r2, r0, 0 + cmp r3, 0 + beq _0819E800 + subs r0, r3, 0x1 + b _0819E802 + .pool +_0819E800: + movs r0, 0x2 +_0819E802: + strb r0, [r1] + ldr r3, =gSprites + ldr r2, [r2] + ldrb r0, [r2, 0x1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r0, [r2] + lsls r0, 4 + adds r0, 0x70 + strh r0, [r1, 0x22] + ldrb r0, [r2, 0x2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r0, [r2] + lsls r0, 4 + adds r0, 0x70 + strh r0, [r1, 0x22] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819E7C0 + + thumb_func_start sub_819E838 +sub_819E838: @ 819E838 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r6, r0, 24 + movs r4, 0 + movs r0, 0x5 + negs r0, r0 + mov r9, r0 + movs r2, 0x4 + mov r8, r2 + ldr r0, =gSprites + mov r12, r0 + ldr r7, =gUnknown_03001284 +_0819E856: + cmp r6, 0x2 + bne _0819E898 + ldr r5, =gSprites + ldr r3, =gUnknown_03001284 + ldr r0, [r3] + adds r0, 0xB + adds r0, r4 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + adds r1, 0x3E + ldrb r2, [r1] + mov r0, r9 + ands r0, r2 + strb r0, [r1] + cmp r4, 0x1 + bhi _0819E8D4 + ldr r0, [r3] + adds r0, 0x10 + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + b _0819E8CA + .pool +_0819E898: + cmp r6, 0x3 + bne _0819E8D4 + cmp r4, 0x1 + bhi _0819E8BA + ldr r0, [r7] + adds r0, 0x10 + adds r0, r4 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r12 + adds r1, 0x3E + ldrb r2, [r1] + mov r0, r9 + ands r0, r2 + strb r0, [r1] +_0819E8BA: + ldr r0, [r7] + adds r0, 0xB + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r12 +_0819E8CA: + adds r0, 0x3E + ldrb r1, [r0] + mov r2, r8 + orrs r1, r2 + strb r1, [r0] +_0819E8D4: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _0819E856 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_819E838 + + thumb_func_start sub_819E8EC +sub_819E8EC: @ 819E8EC + push {r4-r6,lr} + movs r2, 0 + ldr r5, =gSprites + ldr r4, =gUnknown_03001284 + adds r6, r5, 0 + movs r3, 0x4 +_0819E8F8: + ldr r0, [r4] + adds r0, 0xB + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r3 + strb r1, [r0] + cmp r2, 0x1 + bhi _0819E92C + ldr r0, [r4] + adds r0, 0x10 + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r3 + strb r1, [r0] +_0819E92C: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x2 + bls _0819E8F8 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819E8EC + + thumb_func_start sub_819E944 +sub_819E944: @ 819E944 + push {r4,r5,lr} + ldr r0, =gUnknown_03001284 + ldr r3, [r0] + ldrb r1, [r3, 0x15] + adds r5, r0, 0 + cmp r1, 0x1 + bne _0819E95C + movs r0, 0 + strb r0, [r3, 0x15] + b _0819E960 + .pool +_0819E95C: + movs r0, 0 + strb r0, [r3] +_0819E960: + ldr r4, =gSprites + ldr r2, [r5] + ldrb r1, [r2, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0xB0 + strh r1, [r0, 0x20] + ldrb r0, [r2, 0x1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r0, [r2] + lsls r0, 4 + adds r0, 0x70 + strh r0, [r1, 0x22] + ldrb r1, [r2, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0xD0 + strh r1, [r0, 0x20] + ldrb r0, [r2, 0x2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r0, [r2] + lsls r0, 4 + adds r0, 0x70 + strh r0, [r1, 0x22] + ldrb r0, [r2, 0x1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + adds r1, 0x3E + ldrb r3, [r1] + movs r2, 0x5 + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + strb r0, [r1] + ldr r0, [r5] + ldrb r1, [r0, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + bl sub_819EC20 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819E944 + + thumb_func_start sub_819E9E0 +sub_819E9E0: @ 819E9E0 + push {r4,r5,lr} + ldr r5, =gUnknown_03001284 + ldr r1, [r5] + movs r0, 0 + strb r0, [r1, 0x16] + ldr r4, =gSprites + ldr r2, [r5] + ldrb r1, [r2, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0xB0 + strh r1, [r0, 0x20] + ldrb r1, [r2, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r3, 0x70 + strh r3, [r0, 0x22] + ldrb r1, [r2, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0xD0 + strh r1, [r0, 0x20] + ldrb r1, [r2, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r3, [r0, 0x22] + ldrb r0, [r2, 0x1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + adds r1, 0x3E + ldrb r3, [r1] + movs r2, 0x5 + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + strb r0, [r1] + ldr r0, [r5] + ldrb r1, [r0, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + bl sub_819EC94 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819E9E0 + + thumb_func_start sub_819EA64 +sub_819EA64: @ 819EA64 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, =gSprites + ldr r3, =gUnknown_03001284 + ldr r0, [r3] + ldrb r1, [r0, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r3] + ldrb r1, [r0, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + adds r0, r4, 0 + movs r1, 0 + bl FillWindowPixelBuffer + adds r0, r4, 0 + movs r1, 0x2 + bl CopyWindowToVram + adds r0, r4, 0 + bl ClearWindowTilemap + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819EA64 + + thumb_func_start sub_819EAC0 +sub_819EAC0: @ 819EAC0 + push {lr} + movs r0, 0x1 + bl PutWindowTilemap + movs r0, 0x1 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0x1 + movs r1, 0x2 + bl CopyWindowToVram + pop {r0} + bx r0 + thumb_func_end sub_819EAC0 + + thumb_func_start sub_819EADC +sub_819EADC: @ 819EADC + push {lr} + movs r0, 0x7 + bl PutWindowTilemap + movs r0, 0x7 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0x7 + movs r1, 0x2 + bl CopyWindowToVram + pop {r0} + bx r0 + thumb_func_end sub_819EADC + + thumb_func_start sub_819EAF8 +sub_819EAF8: @ 819EAF8 + push {lr} + bl sub_819EAC0 + movs r0, 0x5 + bl PutWindowTilemap + movs r0, 0x5 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0x5 + movs r1, 0x2 + bl CopyWindowToVram + pop {r0} + bx r0 + thumb_func_end sub_819EAF8 + + thumb_func_start sub_819EB18 +sub_819EB18: @ 819EB18 + push {lr} + sub sp, 0xC + movs r0, 0 + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r2, =gUnknown_085EEC66 + movs r0, 0x1 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x2 + bl Print + movs r0, 0 + movs r1, 0x3 + bl CopyWindowToVram + add sp, 0xC + pop {r0} + bx r0 + .pool + thumb_func_end sub_819EB18 + + thumb_func_start sub_819EB4C +sub_819EB4C: @ 819EB4C + push {r4,lr} + sub sp, 0xC + movs r0, 0x1 + movs r1, 0 + bl FillWindowPixelBuffer + ldr r0, =gUnknown_03001284 + ldr r1, [r0] + ldrb r0, [r1, 0x3] + cmp r0, 0x2 + bls _0819EB70 + movs r0, 0x1 + movs r1, 0x2 + bl CopyWindowToVram + b _0819EBD4 + .pool +_0819EB70: + ldrb r2, [r1, 0x3] + ldrb r0, [r1, 0x14] + cmp r0, 0 + bne _0819EB84 + movs r0, 0x64 + muls r0, r2 + ldr r1, =gPlayerParty + b _0819EB8A + .pool +_0819EB84: + movs r0, 0x64 + muls r0, r2 + ldr r1, =gEnemyParty +_0819EB8A: + adds r0, r1 + movs r1, 0xB + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r1, r0, 16 + ldr r4, =gStringVar4 + movs r0, 0xB + muls r1, r0 + ldr r0, =gSpeciesNames + adds r1, r0 + adds r0, r4, 0 + bl StringCopy + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x56 + bl GetStringRightAlignXOffset + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + ldr r0, =gUnknown_08610925 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x1 + movs r3, 0x1 + bl box_print + movs r0, 0x1 + movs r1, 0x3 + bl CopyWindowToVram +_0819EBD4: + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819EB4C + + thumb_func_start sub_819EBEC +sub_819EBEC: @ 819EBEC + push {r4,lr} + sub sp, 0xC + adds r4, r0, 0 + movs r0, 0x2 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0x5 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + movs r0, 0x2 + movs r1, 0x1 + adds r2, r4, 0 + movs r3, 0x2 + bl Print + movs r0, 0x2 + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_819EBEC + + thumb_func_start sub_819EC20 +sub_819EC20: @ 819EC20 + push {r4,r5,lr} + sub sp, 0xC + movs r0, 0x3 + bl PutWindowTilemap + movs r0, 0x3 + movs r1, 0 + bl FillWindowPixelBuffer + ldr r5, =gUnknown_08610922 + str r5, [sp] + movs r4, 0 + str r4, [sp, 0x4] + ldr r0, =gUnknown_085EECAA + str r0, [sp, 0x8] + movs r0, 0x3 + movs r1, 0x1 + movs r2, 0xF + movs r3, 0x1 + bl box_print + str r5, [sp] + str r4, [sp, 0x4] + ldr r0, =gUnknown_085EECA5 + str r0, [sp, 0x8] + movs r0, 0x3 + movs r1, 0x1 + movs r2, 0xF + movs r3, 0x11 + bl box_print + str r5, [sp] + str r4, [sp, 0x4] + ldr r0, =gUnknown_085EECB2 + str r0, [sp, 0x8] + movs r0, 0x3 + movs r1, 0x1 + movs r2, 0xF + movs r3, 0x21 + bl box_print + movs r0, 0x3 + movs r1, 0x3 + bl CopyWindowToVram + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819EC20 + + thumb_func_start sub_819EC94 +sub_819EC94: @ 819EC94 + push {r4,r5,lr} + sub sp, 0xC + movs r0, 0x4 + bl PutWindowTilemap + movs r0, 0x4 + movs r1, 0 + bl FillWindowPixelBuffer + ldr r5, =gUnknown_08610922 + str r5, [sp] + movs r4, 0 + str r4, [sp, 0x4] + ldr r0, =gUnknown_085EECCA + str r0, [sp, 0x8] + movs r0, 0x4 + movs r1, 0x1 + movs r2, 0x7 + movs r3, 0x1 + bl box_print + str r5, [sp] + str r4, [sp, 0x4] + ldr r0, =gUnknown_085EECCE + str r0, [sp, 0x8] + movs r0, 0x4 + movs r1, 0x1 + movs r2, 0x7 + movs r3, 0x11 + bl box_print + movs r0, 0x4 + movs r1, 0x3 + bl CopyWindowToVram + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819EC94 + + thumb_func_start sub_819ECF0 +sub_819ECF0: @ 819ECF0 + push {r4-r6,lr} + sub sp, 0xC + adds r6, r0, 0 + adds r5, r1, 0 + adds r4, r2, 0 + movs r0, 0 + adds r1, r6, 0 + movs r2, 0x46 + bl GetStringRightAlignXOffset + adds r2, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r5, 24 + lsrs r5, 24 + ldr r0, =gUnknown_08610922 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r6, [sp, 0x8] + adds r0, r4, 0 + movs r1, 0 + adds r3, r5, 0 + bl box_print + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819ECF0 + + thumb_func_start sub_819ED34 +sub_819ED34: @ 819ED34 + push {lr} + movs r0, 0x5 + movs r1, 0 + bl FillWindowPixelBuffer + ldr r0, =gUnknown_03001284 + ldr r0, [r0] + ldrb r0, [r0, 0x14] + cmp r0, 0 + beq _0819ED56 + cmp r0, 0x1 + bne _0819ED60 + ldr r0, =gUnknown_085EECD1 + movs r1, 0 + movs r2, 0x5 + bl sub_819ECF0 +_0819ED56: + ldr r0, =gUnknown_085EECDD + movs r1, 0x18 + movs r2, 0x5 + bl sub_819ECF0 +_0819ED60: + movs r0, 0x5 + movs r1, 0x3 + bl CopyWindowToVram + pop {r0} + bx r0 + .pool + thumb_func_end sub_819ED34 + + thumb_func_start sub_819ED78 +sub_819ED78: @ 819ED78 + push {lr} + movs r0, 0x3 + movs r1, 0 + bl FillWindowPixelBuffer + ldr r0, =gUnknown_03001284 + ldr r0, [r0] + ldrb r0, [r0, 0x14] + cmp r0, 0 + beq _0819ED9A + cmp r0, 0x1 + bne _0819EDA4 + ldr r0, =gUnknown_085EECD1 + movs r1, 0x8 + movs r2, 0x3 + bl sub_819ECF0 +_0819ED9A: + ldr r0, =gUnknown_085EECDD + movs r1, 0x20 + movs r2, 0x3 + bl sub_819ECF0 +_0819EDA4: + movs r0, 0x3 + movs r1, 0x3 + bl CopyWindowToVram + pop {r0} + bx r0 + .pool + thumb_func_end sub_819ED78 + + thumb_func_start sub_819EDBC +sub_819EDBC: @ 819EDBC + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _0819EDCC + cmp r0, 0x1 + beq _0819EDEC + b _0819EDF6 +_0819EDCC: + ldr r0, =gUnknown_03001284 + ldr r0, [r0] + ldrb r0, [r0, 0x14] + cmp r0, 0x1 + bne _0819EDF6 + ldr r0, =gUnknown_085EECD1 + movs r1, 0x8 + movs r2, 0x3 + bl sub_819ECF0 + b _0819EDF6 + .pool +_0819EDEC: + ldr r0, =gUnknown_085EECDD + movs r1, 0x20 + movs r2, 0x3 + bl sub_819ECF0 +_0819EDF6: + movs r0, 0x3 + movs r1, 0x3 + bl CopyWindowToVram + pop {r0} + bx r0 + .pool + thumb_func_end sub_819EDBC + + thumb_func_start sub_819EE08 +sub_819EE08: @ 819EE08 + push {r4,lr} + sub sp, 0x18 + ldr r0, =gUnknown_08610918 + add r1, sp, 0xC + movs r2, 0x4 + bl CpuSet + ldr r0, =gUnknown_03001284 + ldr r2, [r0] + ldrb r0, [r2, 0x15] + cmp r0, 0 + bne _0819EE3C + add r0, sp, 0xC + ldr r1, =gPlttBufferFaded + movs r2, 0xE4 + lsls r2, 1 + adds r1, r2 + ldrh r1, [r1] + strh r1, [r0, 0x8] + b _0819EE42 + .pool +_0819EE3C: + add r1, sp, 0xC + ldrh r0, [r2, 0x24] + strh r0, [r1, 0x8] +_0819EE42: + add r0, sp, 0xC + movs r1, 0xF0 + movs r2, 0xA + bl LoadPalette + movs r0, 0x7 + bl PutWindowTilemap + movs r0, 0x7 + movs r1, 0 + bl FillWindowPixelBuffer + ldr r0, =gUnknown_03001284 + ldr r1, [r0] + ldrb r0, [r1, 0x3] + cmp r0, 0x2 + bls _0819EE74 + movs r0, 0x7 + movs r1, 0x3 + bl CopyWindowToVram + b _0819EED8 + .pool +_0819EE74: + ldrb r2, [r1, 0x3] + ldrb r0, [r1, 0x14] + cmp r0, 0 + bne _0819EE88 + movs r0, 0x64 + muls r0, r2 + ldr r1, =gPlayerParty + b _0819EE8E + .pool +_0819EE88: + movs r0, 0x64 + muls r0, r2 + ldr r1, =gEnemyParty +_0819EE8E: + adds r0, r1 + movs r1, 0xB + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r1, r0, 16 + ldr r4, =gStringVar4 + movs r0, 0xB + muls r1, r0 + ldr r0, =gSpeciesNames + adds r1, r0 + adds r0, r4, 0 + bl StringCopy + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x56 + bl GetStringRightAlignXOffset + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + ldr r0, =gUnknown_08610925 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x7 + movs r1, 0x1 + movs r3, 0x1 + bl box_print + movs r0, 0x7 + movs r1, 0x3 + bl CopyWindowToVram +_0819EED8: + add sp, 0x18 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819EE08 + + thumb_func_start sub_819EEF0 +sub_819EEF0: @ 819EEF0 + push {r4,lr} + sub sp, 0xC + ldr r0, =gUnknown_08610918 + movs r1, 0xE0 + movs r2, 0xA + bl LoadPalette + ldr r0, =gPlttBufferUnfaded+ 0x1E0 + ldr r1, =gPlttBufferFaded + 0x1C0 + movs r2, 0x5 + bl CpuSet + ldr r0, =gUnknown_03001284 + ldr r1, [r0] + ldrb r0, [r1, 0x3] + cmp r0, 0x2 + bls _0819EF2C + movs r0, 0x1 + movs r1, 0x2 + bl CopyWindowToVram + b _0819EF90 + .pool +_0819EF2C: + ldrb r2, [r1, 0x3] + ldrb r0, [r1, 0x14] + cmp r0, 0 + bne _0819EF40 + movs r0, 0x64 + muls r0, r2 + ldr r1, =gPlayerParty + b _0819EF46 + .pool +_0819EF40: + movs r0, 0x64 + muls r0, r2 + ldr r1, =gEnemyParty +_0819EF46: + adds r0, r1 + movs r1, 0xB + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r1, r0, 16 + ldr r4, =gStringVar4 + movs r0, 0xB + muls r1, r0 + ldr r0, =gSpeciesNames + adds r1, r0 + adds r0, r4, 0 + bl StringCopy + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x56 + bl GetStringRightAlignXOffset + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + ldr r0, =gUnknown_08610925 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x1 + movs r3, 0x1 + bl box_print + movs r0, 0x1 + movs r1, 0x3 + bl CopyWindowToVram +_0819EF90: + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819EEF0 + + thumb_func_start sub_819EFA8 +sub_819EFA8: @ 819EFA8 + push {r4-r6,lr} + sub sp, 0x2C + ldr r6, =gUnknown_03001284 + ldr r0, [r6] + ldrb r4, [r0, 0x3] + adds r5, r4, 0 + movs r0, 0x8 + movs r1, 0 + bl FillWindowPixelBuffer + cmp r4, 0x2 + bls _0819EFD0 + movs r0, 0x8 + movs r1, 0x2 + bl CopyWindowToVram + b _0819F03A + .pool +_0819EFD0: + movs r0, 0x8 + bl PutWindowTilemap + ldr r0, [r6] + ldrb r0, [r0, 0x14] + cmp r0, 0 + bne _0819EFEC + movs r0, 0x64 + muls r0, r4 + ldr r1, =gPlayerParty + b _0819EFF2 + .pool +_0819EFEC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty +_0819EFF2: + adds r0, r1 + movs r1, 0xB + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + add r1, sp, 0xC + bl sub_81DB468 + movs r0, 0x1 + add r1, sp, 0xC + movs r2, 0x76 + bl GetStringRightAlignXOffset + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x1 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + movs r0, 0x8 + movs r1, 0x1 + add r2, sp, 0xC + bl Print + movs r0, 0x8 + movs r1, 0x2 + bl CopyWindowToVram +_0819F03A: + add sp, 0x2C + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819EFA8 + + thumb_func_start sub_819F048 +sub_819F048: @ 819F048 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r4, =gUnknown_03001284 + ldr r3, [r4] + ldrb r0, [r3, 0x15] + cmp r0, 0x1 + beq _0819F094 + cmp r2, 0 + beq _0819F068 + cmp r2, 0x1 + beq _0819F080 + b _0819F094 + .pool +_0819F068: + strb r2, [r3, 0x14] + ldr r0, [r4] + strb r2, [r0, 0x3] + ldr r1, [r4] + movs r0, 0x4 + strb r0, [r1, 0x17] + ldr r1, [r4] + ldr r0, =gUnknown_08610928 + b _0819F092 + .pool +_0819F080: + movs r1, 0 + strb r2, [r3, 0x14] + ldr r0, [r4] + strb r1, [r0, 0x3] + ldr r1, [r4] + movs r0, 0x5 + strb r0, [r1, 0x17] + ldr r1, [r4] + ldr r0, =gUnknown_08610948 +_0819F092: + str r0, [r1, 0x18] +_0819F094: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819F048 + + thumb_func_start sub_819F0A0 +sub_819F0A0: @ 819F0A0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, =gUnknown_03001280 + ldr r2, =gUnknown_086108AC + ldr r1, =gUnknown_03001284 + ldr r1, [r1] + ldrb r1, [r1] + lsls r1, 2 + adds r1, r2 + ldr r1, [r1] + str r1, [r3] + bl _call_via_r1 + pop {r0} + bx r0 + .pool + thumb_func_end sub_819F0A0 + + thumb_func_start sub_819F0CC +sub_819F0CC: @ 819F0CC + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, =gUnknown_03001284 + ldr r1, [r5] + ldr r0, [r1, 0x2C] + adds r1, 0x30 + movs r2, 0x1 + bl sub_819F3F8 + ldr r0, [r5] + ldrb r1, [r0, 0x3] + movs r5, 0 + strb r1, [r0, 0x12] + movs r0, 0x3 + bl sub_819EA64 + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0x8] + ldr r1, =sub_819D9EC + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819F0CC + + thumb_func_start sub_819F114 +sub_819F114: @ 819F114 + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0x6 + strh r0, [r1, 0x8] + ldr r0, =sub_819C90C + str r0, [r1] + bx lr + .pool + thumb_func_end sub_819F114 + + thumb_func_start sub_819F134 +sub_819F134: @ 819F134 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =gUnknown_03001284 + ldr r1, [r0] + ldr r0, [r1, 0x2C] + adds r1, 0x30 + movs r2, 0x1 + bl sub_819F3F8 + movs r0, 0x3 + bl sub_819EA64 + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x8] + ldr r2, =sub_819CE40 + lsrs r1, r2, 16 + strh r1, [r0, 0x14] + strh r2, [r0, 0x16] + movs r1, 0x1 + strh r1, [r0, 0x12] + ldr r1, =sub_819D770 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819F134 + + thumb_func_start sub_819F184 +sub_819F184: @ 819F184 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, =gUnknown_03001280 + ldr r1, =gUnknown_03001284 + ldr r2, [r1] + ldrb r1, [r2, 0x3] + ldr r2, [r2, 0x18] + lsls r1, 3 + adds r1, r2 + ldr r1, [r1, 0x4] + str r1, [r3] + bl _call_via_r1 + pop {r0} + bx r0 + .pool + thumb_func_end sub_819F184 + + thumb_func_start sub_819F1AC +sub_819F1AC: @ 819F1AC + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, =sub_819CC24 + lsrs r0, r2, 16 + movs r3, 0 + strh r0, [r1, 0x14] + strh r2, [r1, 0x16] + strh r3, [r1, 0x8] + strh r3, [r1, 0x12] + ldr r0, =sub_819D588 + str r0, [r1] + bx lr + .pool + thumb_func_end sub_819F1AC + + thumb_func_start sub_819F1DC +sub_819F1DC: @ 819F1DC + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, =sub_819D9EC + lsrs r0, r2, 16 + movs r3, 0 + strh r0, [r1, 0x14] + strh r2, [r1, 0x16] + strh r3, [r1, 0x12] + strh r3, [r1, 0x8] + ldr r0, =sub_819D588 + str r0, [r1] + bx lr + .pool + thumb_func_end sub_819F1DC + + thumb_func_start sub_819F20C +sub_819F20C: @ 819F20C + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r5, =gUnknown_03001284 + ldr r1, [r5] + ldrb r0, [r1, 0x14] + cmp r0, 0 + bne _0819F240 + ldr r3, =gTasks + lsls r4, r6, 2 + adds r0, r4, r6 + lsls r0, 3 + adds r0, r3 + ldr r2, =sub_819CD34 + lsrs r1, r2, 16 + strh r1, [r0, 0x14] + strh r2, [r0, 0x16] + movs r1, 0x2 + strh r1, [r0, 0x12] + b _0819F292 + .pool +_0819F240: + ldrb r0, [r1, 0x3] + bl sub_819F59C + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + bne _0819F278 + ldr r1, [r5] + adds r0, r1, 0 + adds r0, 0x2D + adds r1, 0x30 + movs r2, 0x1 + bl sub_819F2B4 + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x8] + strh r4, [r0, 0x12] + ldr r1, =sub_819F488 + b _0819F29E + .pool +_0819F278: + ldr r4, =gTasks + lsls r5, r6, 2 + adds r0, r5, r6 + lsls r0, 3 + adds r0, r4 + ldr r2, =sub_819CCD4 + lsrs r1, r2, 16 + movs r3, 0 + strh r1, [r0, 0x14] + strh r2, [r0, 0x16] + strh r3, [r0, 0x12] + adds r3, r4, 0 + adds r4, r5, 0 +_0819F292: + adds r0, r4, r6 + lsls r0, 3 + adds r0, r3 + movs r1, 0 + strh r1, [r0, 0x8] + ldr r1, =sub_819D588 +_0819F29E: + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819F20C + + thumb_func_start sub_819F2B4 +sub_819F2B4: @ 819F2B4 + push {r4-r6,lr} + adds r4, r0, 0 + adds r6, r1, 0 + lsls r5, r2, 24 + lsrs r5, 24 + ldr r0, =gUnknown_08610894 + movs r1, 0x78 + movs r2, 0x40 + movs r3, 0x1 + bl CreateSprite + strb r0, [r4] + ldr r2, =gSprites + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r2, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =sub_819F600 + str r1, [r0] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r5, [r0, 0x3C] + movs r0, 0x1 + strb r0, [r6] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819F2B4 + + thumb_func_start sub_819F304 +sub_819F304: @ 819F304 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x10 + ldr r0, =gUnknown_08610894 + movs r1, 0x78 + movs r2, 0x40 + movs r3, 0x1 + bl CreateSprite + ldr r6, =gUnknown_03001284 + ldr r1, [r6] + adds r1, 0x2D + movs r2, 0 + mov r10, r2 + strb r0, [r1] + ldr r0, [r6] + adds r0, 0x2D + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + mov r8, r1 + add r0, r8 + movs r1, 0x2 + bl StartSpriteAffineAnim + ldr r0, [r6] + ldrb r1, [r0, 0x3] + movs r0, 0x64 + adds r4, r1, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0 + bl GetMonData + mov r9, r0 + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0 + bl GetMonData + adds r2, r0, 0 + movs r0, 0x58 + str r0, [sp] + movs r0, 0x20 + str r0, [sp, 0x4] + movs r0, 0xF + str r0, [sp, 0x8] + ldr r0, =0x0000ffff + str r0, [sp, 0xC] + adds r0, r5, 0 + mov r1, r9 + movs r3, 0x1 + bl sub_818D7D8 + ldr r1, [r6] + adds r1, 0x2C + strb r0, [r1] + ldr r0, [r6] + adds r0, 0x2C + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + adds r0, 0x28 + mov r2, r10 + strb r2, [r0] + ldr r0, [r6] + adds r0, 0x2C + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + adds r0, 0x29 + strb r2, [r0] + ldr r0, [r6] + adds r0, 0x2D + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819F304 + + thumb_func_start sub_819F3F8 +sub_819F3F8: @ 819F3F8 + push {r4-r6,lr} + adds r4, r0, 0 + adds r6, r1, 0 + lsls r5, r2, 24 + lsrs r5, 24 + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_818D820 + ldr r0, =sub_819F7B4 + 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 + strh r5, [r1, 0x16] + lsrs r4, 8 + lsls r4, 24 + lsrs r4, 24 + strh r4, [r1, 0x14] + ldr r1, [r1] + bl _call_via_r1 + movs r0, 0x1 + strb r0, [r6] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819F3F8 + + thumb_func_start sub_819F444 +sub_819F444: @ 819F444 + push {r4-r6,lr} + adds r4, r0, 0 + adds r6, r1, 0 + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_818D820 + ldr r5, =gSprites + lsls r4, 16 + lsrs r1, r4, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + lsrs r4, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r5 + bl DestroySprite + movs r0, 0 + strb r0, [r6] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819F444 + + thumb_func_start sub_819F488 +sub_819F488: @ 819F488 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, =gUnknown_03001284 + ldr r0, [r1] + adds r0, 0x30 + ldrb r0, [r0] + adds r3, r1, 0 + cmp r0, 0x1 + beq _0819F58A + ldr r2, =gTasks + lsls r1, r4, 2 + adds r0, r1, r4 + lsls r0, 3 + adds r0, r2 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r5, r1, 0 + cmp r0, 0x4 + bhi _0819F58A + lsls r0, 2 + ldr r1, =_0819F4C8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0819F4C8: + .4byte _0819F4DC + .4byte _0819F4F8 + .4byte _0819F52C + .4byte _0819F548 + .4byte _0819F568 +_0819F4DC: + ldr r0, =gUnknown_085EED0A + bl sub_819EBEC + ldr r0, =gUnknown_03001284 + ldr r0, [r0] + adds r0, 0x20 + movs r1, 0 + strb r1, [r0] + b _0819F54E + .pool +_0819F4F8: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0819F50C + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0819F58A +_0819F50C: + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_03001284 + ldr r1, [r0] + ldr r0, [r1, 0x2C] + adds r1, 0x30 + movs r2, 0x1 + bl sub_819F3F8 + b _0819F54E + .pool +_0819F52C: + ldr r0, [r3] + adds r0, 0x30 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0819F58A + movs r0, 0x5 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0x5 + movs r1, 0x2 + bl CopyWindowToVram + b _0819F54E +_0819F548: + ldr r0, =gUnknown_085EEC8B + bl sub_819EBEC +_0819F54E: + ldr r0, =gTasks + adds r1, r5, r4 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _0819F58A + .pool +_0819F568: + bl sub_819EEF0 + bl sub_819EADC + ldr r0, =gUnknown_03001284 + ldr r0, [r0] + adds r0, 0x22 + movs r1, 0x1 + strb r1, [r0] + ldr r1, =gTasks + adds r0, r5, r4 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x12] + strh r1, [r0, 0x8] + ldr r1, =sub_819CE40 + str r1, [r0] +_0819F58A: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819F488 + + thumb_func_start sub_819F59C +sub_819F59C: @ 819F59C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0xB + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + movs r4, 0 +_0819F5B8: + ldr r0, =gUnknown_03001284 + ldr r0, [r0] + ldrb r0, [r0, 0x12] + cmp r4, r0 + beq _0819F5EC + movs r0, 0x64 + muls r0, r4 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xB + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + cmp r0, r5 + bne _0819F5EC + movs r0, 0x1 + b _0819F5F8 + .pool +_0819F5EC: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _0819F5B8 + movs r0, 0 +_0819F5F8: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_819F59C + + thumb_func_start sub_819F600 +sub_819F600: @ 819F600 + push {r4,lr} + adds r4, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0819F640 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, =sub_819F69C + 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 + ldrh r2, [r4, 0x3C] + strh r2, [r1, 0x16] + ldr r1, [r1] + bl _call_via_r1 + ldr r0, =SpriteCallbackDummy + str r0, [r4, 0x1C] +_0819F640: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819F600 + + thumb_func_start sub_819F654 +sub_819F654: @ 819F654 + push {r4,lr} + adds r4, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0819F694 + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _0819F688 + ldr r0, =gUnknown_03001284 + ldr r0, [r0] + adds r0, 0x30 + movs r1, 0 + strb r1, [r0] + b _0819F68E + .pool +_0819F688: + movs r0, 0 + bl sub_819BE20 +_0819F68E: + adds r0, r4, 0 + bl DestroySprite +_0819F694: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_819F654 + + thumb_func_start sub_819F69C +sub_819F69C: @ 819F69C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _0819F71A + cmp r0, 0x1 + bgt _0819F6C4 + cmp r0, 0 + beq _0819F6CA + b _0819F77C + .pool +_0819F6C4: + cmp r0, 0x2 + beq _0819F73C + b _0819F77C +_0819F6CA: + movs r0, 0x58 + strh r0, [r4, 0xE] + movs r0, 0x98 + strh r0, [r4, 0x38] + movs r0, 0x40 + strh r0, [r4, 0x12] + movs r0, 0x41 + strh r0, [r4, 0x18] + movs r1, 0x80 + lsls r1, 6 + movs r0, 0 + bl SetGpuRegBits + ldrh r1, [r4, 0xE] + lsls r1, 8 + ldrh r0, [r4, 0x38] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x40 + bl SetGpuReg + ldrh r1, [r4, 0x12] + lsls r1, 8 + ldrh r0, [r4, 0x18] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x44 + bl SetGpuReg + movs r0, 0x48 + movs r1, 0x3F + bl SetGpuReg + movs r0, 0x4A + movs r1, 0x37 + bl SetGpuReg + b _0819F7A6 +_0819F71A: + movs r0, 0x3 + bl ShowBg + ldr r1, =0x00001248 + movs r0, 0x50 + bl SetGpuReg + ldr r1, =0x0000040b + movs r0, 0x52 + bl SetGpuReg + b _0819F7A6 + .pool +_0819F73C: + ldrh r0, [r4, 0x12] + subs r0, 0x4 + strh r0, [r4, 0x12] + ldrh r1, [r4, 0x18] + adds r1, 0x4 + strh r1, [r4, 0x18] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x20 + ble _0819F758 + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x5F + ble _0819F760 +_0819F758: + movs r0, 0x20 + strh r0, [r4, 0x12] + movs r0, 0x60 + strh r0, [r4, 0x18] +_0819F760: + ldrh r1, [r4, 0x12] + lsls r1, 8 + ldrh r0, [r4, 0x18] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x44 + bl SetGpuReg + movs r2, 0x12 + ldrsh r0, [r4, r2] + cmp r0, 0x20 + bne _0819F7AC + b _0819F7A6 +_0819F77C: + adds r0, r5, 0 + bl DestroyTask + ldr r0, =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + movs r2, 0x16 + ldrsh r0, [r1, r2] + cmp r0, 0x1 + bne _0819F7A0 + bl sub_819F8E0 + b _0819F7AC + .pool +_0819F7A0: + bl sub_819BD70 + b _0819F7AC +_0819F7A6: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_0819F7AC: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_819F69C + + thumb_func_start sub_819F7B4 +sub_819F7B4: @ 819F7B4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _0819F844 + cmp r0, 0x1 + beq _0819F894 + movs r0, 0x3 + bl HideBg + ldr r3, =gSprites + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r4, 0x16] + strh r1, [r0, 0x3C] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r3, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =sub_819F654 + str r1, [r0] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0x1 + bl StartSpriteAffineAnim + movs r1, 0x80 + lsls r1, 6 + movs r0, 0 + bl ClearGpuRegBits + adds r0, r5, 0 + bl DestroyTask + b _0819F8D8 + .pool +_0819F844: + movs r0, 0x58 + strh r0, [r4, 0xE] + movs r0, 0x98 + strh r0, [r4, 0x38] + movs r0, 0x20 + strh r0, [r4, 0x12] + movs r0, 0x60 + strh r0, [r4, 0x18] + movs r1, 0x80 + lsls r1, 6 + movs r0, 0 + bl SetGpuRegBits + ldrh r1, [r4, 0xE] + lsls r1, 8 + ldrh r0, [r4, 0x38] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x40 + bl SetGpuReg + ldrh r1, [r4, 0x12] + lsls r1, 8 + ldrh r0, [r4, 0x18] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x44 + bl SetGpuReg + movs r0, 0x48 + movs r1, 0x3F + bl SetGpuReg + movs r0, 0x4A + movs r1, 0x37 + bl SetGpuReg + b _0819F8D2 +_0819F894: + ldrh r0, [r4, 0x12] + adds r0, 0x4 + strh r0, [r4, 0x12] + ldrh r1, [r4, 0x18] + subs r1, 0x4 + strh r1, [r4, 0x18] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3F + bgt _0819F8B0 + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x41 + bgt _0819F8B8 +_0819F8B0: + movs r0, 0x40 + strh r0, [r4, 0x12] + movs r0, 0x41 + strh r0, [r4, 0x18] +_0819F8B8: + ldrh r1, [r4, 0x12] + lsls r1, 8 + ldrh r0, [r4, 0x18] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x44 + bl SetGpuReg + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0x40 + bne _0819F8D8 +_0819F8D2: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_0819F8D8: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_819F7B4 + + thumb_func_start sub_819F8E0 +sub_819F8E0: @ 819F8E0 + push {r4-r6,lr} + sub sp, 0x10 + ldr r0, =gUnknown_03001284 + ldr r1, [r0] + ldrb r0, [r1, 0x14] + cmp r0, 0 + bne _0819F900 + ldrb r1, [r1, 0x3] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + b _0819F908 + .pool +_0819F900: + ldrb r1, [r1, 0x3] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gEnemyParty +_0819F908: + adds r6, r1, r0 + adds r0, r6, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r6, 0 + movs r1, 0 + movs r2, 0 + bl GetMonData + adds r5, r0, 0 + adds r0, r6, 0 + movs r1, 0x1 + movs r2, 0 + bl GetMonData + adds r1, r0, 0 + movs r0, 0x58 + str r0, [sp] + movs r0, 0x20 + str r0, [sp, 0x4] + movs r0, 0xF + str r0, [sp, 0x8] + ldr r0, =0x0000ffff + str r0, [sp, 0xC] + adds r0, r4, 0 + adds r2, r5, 0 + movs r3, 0x1 + bl sub_818D7D8 + ldr r2, =gUnknown_03001284 + ldr r1, [r2] + adds r1, 0x2C + movs r3, 0 + strb r0, [r1] + ldr r4, =gSprites + ldr r0, [r2] + adds r0, 0x2C + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x28 + strb r3, [r0] + ldr r0, [r2] + adds r0, 0x2C + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x29 + strb r3, [r0] + ldr r0, [r2] + adds r0, 0x30 + strb r3, [r0] + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819F8E0 + + thumb_func_start sub_819F99C +sub_819F99C: @ 819F99C + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, =gSaveBlock2Ptr + ldr r1, [r2] + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + adds r1, r0 + adds r1, 0xDE + ldrb r1, [r1] + movs r6, 0 + adds r7, r2, 0 + ldr r0, =gStringVar1 + mov r8, r0 + cmp r1, 0 + beq _0819F9DC +_0819F9C2: + adds r0, r1, 0 + movs r1, 0xA + bl __udivsi3 + lsls r0, 24 + lsrs r1, r0, 24 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r1, 0 + beq _0819F9DC + cmp r6, 0x3 + bls _0819F9C2 +_0819F9DC: + lsls r4, r5, 4 + adds r4, r5 + lsls r4, 2 + ldr r1, [r7] + adds r1, r4, r1 + movs r0, 0x8A + lsls r0, 1 + adds r1, r0 + mov r0, r8 + bl StringCopy7 + ldr r0, [r7] + adds r0, r4 + ldr r1, =0x0000011b + adds r0, r1 + ldrb r1, [r0] + mov r0, r8 + bl ConvertInternationalString + ldr r0, =gStringVar2 + ldr r1, [r7] + adds r1, r4 + adds r1, 0xDE + ldrb r1, [r1] + movs r2, 0x1 + adds r3, r6, 0 + bl ConvertIntToDecimalStringN + ldr r1, =gUnknown_08611330 + ldr r0, [r7] + adds r0, r4 + adds r0, 0xDC + ldrb r0, [r0] + lsls r0, 27 + lsrs r0, 25 + adds r0, r1 + ldr r1, [r0] + ldr r0, =gStringVar4 + bl StringExpandPlaceholders + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819F99C + + thumb_func_start sub_819FA50 +sub_819FA50: @ 819FA50 + push {lr} + bl script_env_2_enable_and_set_ctx_running + pop {r0} + bx r0 + thumb_func_end sub_819FA50 + + thumb_func_start sub_819FA5C +sub_819FA5C: @ 819FA5C + push {r4,r5,lr} + adds r3, r0, 0 + movs r2, 0 + adds r4, r3, 0 + adds r4, 0x28 + ldr r0, =0x0000ffff + adds r5, r0, 0 +_0819FA6A: + lsls r0, r2, 1 + adds r0, r4, r0 + ldrh r1, [r0] + orrs r1, r5 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x5 + bls _0819FA6A + adds r1, r3, 0 + adds r1, 0x38 + movs r0, 0xFF + strb r0, [r1] + ldrb r1, [r3] + movs r0, 0x20 + negs r0, r0 + ands r0, r1 + movs r1, 0x10 + orrs r0, r1 + strb r0, [r3] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819FA5C + + thumb_func_start sub_819FAA0 +sub_819FAA0: @ 819FAA0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r3, =gSaveBlock2Ptr + ldr r1, [r3] + adds r1, 0xB2 + ldrb r2, [r1] + movs r0, 0x19 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + movs r0, 0 + mov r12, r0 + adds r5, r3, 0 + mov r8, r0 + ldr r1, =0x0000ffff + mov r10, r1 +_0819FAC6: + movs r2, 0 + mov r3, r12 + lsls r7, r3, 4 + movs r4, 0x1 + add r4, r12 + mov r9, r4 + adds r0, r7, r3 + lsls r3, r0, 2 +_0819FAD6: + ldr r1, [r5] + lsls r0, r2, 1 + adds r0, r3 + movs r4, 0x82 + lsls r4, 1 + adds r1, r4 + adds r1, r0 + ldrh r0, [r1] + mov r4, r10 + orrs r0, r4 + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x5 + bls _0819FAD6 + ldr r2, [r5] + mov r0, r12 + adds r3, r7, r0 + lsls r3, 2 + adds r2, r3 + adds r2, 0xDC + ldrb r1, [r2] + movs r0, 0x20 + negs r0, r0 + ands r0, r1 + movs r1, 0x10 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r5] + adds r0, r3 + movs r1, 0x8A + lsls r1, 1 + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] + ldr r1, [r5] + adds r1, r3 + adds r1, 0xDC + ldrb r2, [r1] + movs r0, 0x61 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r0, [r5] + adds r0, r3 + adds r0, 0xDE + mov r4, r8 + strb r4, [r0] + ldr r0, [r5] + adds r0, r3 + adds r0, 0xDD + strb r4, [r0] + movs r2, 0 + ldr r6, =gSaveBlock2Ptr + movs r4, 0x88 + lsls r4, 1 +_0819FB48: + ldr r0, [r6] + adds r1, r2, r3 + adds r0, r4 + adds r0, r1 + mov r1, r8 + strb r1, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _0819FB48 + ldr r0, [r5] + mov r3, r12 + adds r2, r7, r3 + lsls r2, 2 + adds r0, r2 + ldr r4, =gGameLanguage + ldrb r1, [r4] + ldr r3, =0x0000011b + adds r0, r3 + strb r1, [r0] + ldr r0, [r5] + movs r4, 0x8E + lsls r4, 1 + adds r0, r4 + adds r0, r2 + mov r1, r8 + str r1, [r0] + mov r3, r9 + lsls r0, r3, 24 + lsrs r0, 24 + mov r12, r0 + cmp r0, 0x3 + bls _0819FAC6 + bl sub_81A087C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819FAA0 + + thumb_func_start sub_819FBB0 +sub_819FBB0: @ 819FBB0 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xB1 + ldrb r0, [r0] + movs r1, 0x3 + ands r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + bx lr + .pool + thumb_func_end sub_819FBB0 + + thumb_func_start sub_819FBC8 +sub_819FBC8: @ 819FBC8 + push {r4,r5,lr} + ldr r2, =gSaveBlock2Ptr + ldr r0, [r2] + adds r0, 0xDE + ldrb r0, [r0] + cmp r0, 0 + bne _0819FC10 + adds r4, r2, 0 + ldr r5, =gUnknown_08611548 +_0819FBDA: + bl Random + ldr r2, [r4] + lsls r0, 16 + movs r1, 0xE0 + lsls r1, 11 + ands r1, r0 + lsrs r1, 16 + adds r1, r5 + ldrb r0, [r1] + adds r2, 0xB0 + strb r0, [r2] + ldr r0, [r4] + adds r1, r0, 0 + adds r1, 0xB0 + adds r0, 0xDC + ldrb r0, [r0] + lsls r0, 27 + ldrb r1, [r1] + lsrs r0, 27 + cmp r1, r0 + beq _0819FBDA + b _0819FC38 + .pool +_0819FC10: + adds r4, r2, 0 +_0819FC12: + bl Random + ldr r2, [r4] + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xF + ands r0, r1 + adds r2, 0xB0 + strb r0, [r2] + ldr r0, [r4] + adds r1, r0, 0 + adds r1, 0xB0 + adds r0, 0xDC + ldrb r0, [r0] + lsls r0, 27 + ldrb r1, [r1] + lsrs r0, 27 + cmp r1, r0 + beq _0819FC12 +_0819FC38: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_819FBC8 + + thumb_func_start sub_819FC40 +sub_819FC40: @ 819FC40 + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gSaveBlock2Ptr + ldr r2, [r1] + adds r2, 0xB1 + movs r1, 0x3 + ands r0, r1 + ldrb r3, [r2] + subs r1, 0x7 + ands r1, r3 + orrs r1, r0 + strb r1, [r2] + bx lr + .pool + thumb_func_end sub_819FC40 + + thumb_func_start sub_819FC60 +sub_819FC60: @ 819FC60 + push {r4-r7,lr} + sub sp, 0xC + movs r5, 0 +_0819FC66: + mov r1, sp + adds r0, r1, r5 + strb r5, [r0] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x9 + bls _0819FC66 + movs r5, 0 +_0819FC78: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + mov r7, sp + adds r2, r7, r4 + ldrb r3, [r2] + adds r1, r7, r0 + ldrb r0, [r1] + strb r0, [r2] + strb r3, [r1] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x31 + bls _0819FC78 + movs r5, 0 + ldr r6, =gSaveBlock2Ptr + movs r4, 0xF +_0819FCBC: + ldr r3, [r6] + adds r3, 0xB4 + adds r3, r5 + lsls r2, r5, 1 + mov r1, sp + adds r0, r1, r2 + ldrb r0, [r0] + adds r1, r4, 0 + ands r1, r0 + lsls r1, 4 + adds r2, 0x1 + mov r7, sp + adds r0, r7, r2 + ldrb r2, [r0] + adds r0, r4, 0 + ands r0, r2 + orrs r1, r0 + strb r1, [r3] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bls _0819FCBC + add sp, 0xC + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_819FC60 + + thumb_func_start sub_819FCF8 +sub_819FCF8: @ 819FCF8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + cmp r0, 0x2 + bne _0819FD4C + ldr r6, =gUnknown_030062EC +_0819FD06: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 24 + lsrs r5, r0, 24 + movs r3, 0 + movs r2, 0 + ldr r1, [r6] + lsls r0, r5, 2 + adds r0, r5 + lsls r4, r0, 1 + adds r1, 0x2 +_0819FD26: + lsls r0, r2, 1 + adds r0, r4 + adds r0, r1, r0 + ldrh r0, [r0] + cmp r0, 0 + beq _0819FD38 + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 +_0819FD38: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x4 + bls _0819FD26 + cmp r3, 0x3 + bhi _0819FD06 + b _0819FD5A + .pool +_0819FD4C: + cmp r0, 0x1 + bne _0819FD5A + ldrb r0, [r2] + adds r1, r0 + ldrb r5, [r1] + adds r0, 0x1 + strb r0, [r2] +_0819FD5A: + adds r0, r5, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_819FCF8 + + thumb_func_start sub_819FD64 +sub_819FD64: @ 819FD64 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + movs r5, 0 + mov r0, sp + adds r0, 0xC + str r0, [sp, 0x14] + mov r1, sp + adds r1, 0x10 + str r1, [sp, 0x18] + adds r1, r0, 0 +_0819FD80: + adds r0, r1, r5 + strb r5, [r0] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bls _0819FD80 + movs r5, 0 + ldr r6, [sp, 0x14] +_0819FD92: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 24 + lsrs r4, r0, 24 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + adds r2, r6, r4 + ldrb r3, [r2] + adds r1, r6, r0 + ldrb r0, [r1] + strb r0, [r2] + strb r3, [r1] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x9 + bls _0819FD92 + movs r5, 0 + ldr r2, =gUnknown_086114D3 +_0819FDD0: + mov r4, sp + adds r1, r4, r5 + adds r0, r5, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x9 + bls _0819FDD0 + movs r5, 0 +_0819FDE6: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 24 + lsrs r4, r0, 24 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + mov r6, sp + adds r2, r6, r4 + ldrb r3, [r2] + adds r1, r6, r0 + ldrb r0, [r1] + strb r0, [r2] + strb r3, [r1] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x31 + bls _0819FDE6 + ldr r4, =gUnknown_030062EC + movs r0, 0x30 + bl AllocZeroed + str r0, [r4] + movs r1, 0 + strb r1, [r0] + movs r5, 0 + movs r2, 0x4 +_0819FE34: + movs r3, 0 +_0819FE36: + ldr r0, [r4] + lsls r1, r3, 2 + adds r1, r3 + adds r1, r5, r1 + adds r0, 0x20 + adds r0, r1 + strb r2, [r0] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x2 + bls _0819FE36 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x4 + bls _0819FE34 + movs r0, 0 + ldr r7, [sp, 0x18] + strb r0, [r7] + movs r5, 0 +_0819FE60: + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + lsls r4, r5, 2 + adds r3, r4 + mov r1, sp + adds r6, r1, r5 + ldrb r0, [r6] + adds r3, 0xB8 + movs r2, 0x3 + ands r2, r0 + ldrb r0, [r3] + movs r7, 0x4 + negs r7, r7 + adds r1, r7, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3] + ldrb r0, [r6] + adds r5, 0x1 + str r5, [sp, 0x1C] + mov r8, r4 + cmp r0, 0x3 + beq _0819FF62 + ldrb r0, [r6] + ldr r1, [sp, 0x14] + ldr r2, [sp, 0x18] + bl sub_819FCF8 + ldr r1, =gSaveBlock2Ptr + ldr r3, [r1] + add r3, r8 + adds r3, 0xB8 + movs r2, 0x3 + ands r2, r0 + lsls r2, 2 + ldrb r0, [r3] + movs r4, 0xD + negs r4, r4 + adds r1, r4, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3] + ldr r7, =gSaveBlock2Ptr + ldr r0, [r7] + add r0, r8 + adds r0, 0xB8 + ldrb r0, [r0] + lsls r0, 28 + lsrs r7, r0, 30 + ldrb r0, [r6] + cmp r0, 0x2 + bne _0819FF62 + lsls r0, r7, 2 + adds r0, r7 + mov r10, r0 + ldr r0, =gUnknown_030062EC + mov r9, r0 +_0819FED2: + bl Random + lsls r0, 16 + lsrs r4, r0, 16 + movs r1, 0x3 + ands r4, r1 + movs r3, 0 + mov r6, r9 + ldr r2, [r6] + ldrb r0, [r2] + adds r1, r0, 0x1 + lsls r5, r7, 2 + cmp r3, r1 + bge _0819FF12 + adds r2, 0x20 + mov r6, r10 + adds r0, r2, r6 + ldrb r0, [r0] + cmp r0, r4 + beq _0819FF12 + adds r6, r1, 0 + adds r1, r5, r7 +_0819FEFE: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, r6 + bge _0819FF12 + adds r0, r3, r1 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, r4 + bne _0819FEFE +_0819FF12: + mov r1, r9 + ldr r0, [r1] + ldrb r0, [r0] + adds r0, 0x1 + ldr r1, =gUnknown_030062EC + cmp r3, r0 + bne _0819FED2 + ldr r0, [r1] + orrs r5, r7 + ldrb r2, [r0] + adds r1, r5, r2 + adds r0, 0x20 + adds r0, r1 + strb r4, [r0] + ldr r6, =gSaveBlock2Ptr + ldr r2, [r6] + add r2, r8 + adds r2, 0xB8 + movs r7, 0x3 + ands r4, r7 + lsls r3, r4, 4 + ldrb r0, [r2] + movs r4, 0x31 + negs r4, r4 + adds r1, r4, 0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2] + ldr r0, [r6] + add r0, r8 + adds r0, 0xB8 + ldrb r0, [r0] + lsls r0, 28 + lsrs r0, 30 + bl sub_819FF98 + ldr r1, [r6] + add r1, r8 + adds r1, 0xBA + strh r0, [r1] +_0819FF62: + ldr r6, [sp, 0x1C] + lsls r0, r6, 24 + lsrs r5, r0, 24 + cmp r5, 0x8 + bhi _0819FF6E + b _0819FE60 +_0819FF6E: + ldr r4, =gUnknown_030062EC + ldr r0, [r4] + bl Free + movs r0, 0 + str r0, [r4] + 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_819FD64 + + thumb_func_start sub_819FF98 +sub_819FF98: @ 819FF98 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0xC] + movs r7, 0 + ldr r1, [sp] + cmp r1, 0x2 + bhi _0819FFE0 + ldr r2, =gSaveBlock2Ptr + ldr r1, [r2] + adds r0, r1, 0 + adds r0, 0xB4 + ldr r3, [sp] + adds r0, r3 + ldrb r4, [r0] + adds r1, 0xB2 + ldrb r0, [r1] + lsls r0, 29 + lsrs r0, 29 + asrs r0, r3 + movs r1, 0x1 + ands r0, r1 + lsls r0, 2 + asrs r4, r0 + movs r0, 0xF + ands r4, r0 + b _0819FFE4 + .pool +_0819FFE0: + movs r4, 0 + ldr r2, =gSaveBlock2Ptr +_0819FFE4: + ldr r3, =gUnknown_08610970 + lsls r1, r4, 1 + ldr r4, [r2] + adds r0, r4, 0 + adds r0, 0xB0 + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, r0 + adds r3, 0x34 + adds r1, r3 + ldrh r1, [r1] + str r1, [sp, 0x8] + ldr r1, =gLevelUpLearnsetPointers + ldr r2, [sp, 0x8] + lsls r0, r2, 2 + adds r0, r1 + ldr r6, [r0] + movs r3, 0 + adds r4, 0xB1 + ldrb r1, [r4] + movs r0, 0x3 + ands r0, r1 + movs r5, 0x3C + cmp r0, 0x1 + bne _081A001A + movs r5, 0x32 +_081A001A: + ldrh r1, [r6] + ldr r4, =0x0000ffff + cmp r1, r4 + beq _081A004C + movs r2, 0xFE + lsls r2, 8 + adds r0, r2, 0 + ands r0, r1 + lsls r1, r5, 9 + cmp r0, r1 + bgt _081A004C + adds r5, r2, 0 + adds r2, r1, 0 +_081A0034: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 1 + adds r0, r6 + ldrh r1, [r0] + cmp r1, r4 + beq _081A004C + adds r0, r5, 0 + ands r0, r1 + cmp r0, r2 + ble _081A0034 +_081A004C: + adds r5, r3, 0 + movs r3, 0 + str r3, [sp, 0x4] +_081A0052: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081A0068 + ldr r0, [sp, 0xC] + cmp r0, 0x1 + bne _081A00E0 +_081A0068: + ldr r1, =0x000001ff + mov r8, r1 +_081A006C: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3A + bl __umodsi3 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, [sp, 0x8] + adds r1, r4, 0 + bl sub_806E064 + adds r2, r0, 0 + cmp r2, 0 + beq _081A006C + ldr r2, =0x00000121 + adds r0, r4, r2 + bl ItemIdToBattleMoveId + lsls r0, 16 + lsrs r7, r0, 16 + movs r2, 0x1 + cmp r5, 0x4 + bhi _081A00BC + movs r3, 0 + b _081A00C6 + .pool +_081A00BC: + subs r0, r5, 0x4 + b _081A00C2 +_081A00C0: + adds r0, r3, 0x1 +_081A00C2: + lsls r0, 24 + lsrs r3, r0, 24 +_081A00C6: + cmp r3, r5 + bcs _081A00DA + lsls r0, r3, 1 + adds r0, r6 + ldrh r0, [r0] + mov r1, r8 + ands r0, r1 + cmp r0, r7 + bne _081A00C0 + movs r2, 0 +_081A00DA: + cmp r2, 0x1 + bne _081A006C + b _081A0146 +_081A00E0: + cmp r5, 0x4 + bhi _081A00EA + movs r2, 0x1 + str r2, [sp, 0xC] + b _081A0168 +_081A00EA: + subs r4, r5, 0x4 + ldr r3, =0x000001ff + mov r10, r3 + mov r8, r3 + lsls r0, r4, 24 + mov r9, r0 +_081A00F6: + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r4, 0 + bl __modsi3 + lsls r0, 24 + lsrs r0, 23 + adds r0, r6 + ldrh r0, [r0] + mov r7, r8 + ands r7, r0 + movs r2, 0x1 + mov r1, r9 + lsrs r3, r1, 24 + cmp r3, r5 + bcs _081A0142 + lsls r0, r3, 1 + adds r0, r6 + ldrh r1, [r0] + mov r0, r8 + b _081A013A + .pool +_081A0128: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, r5 + bcs _081A0142 + lsls r0, r3, 1 + adds r0, r6 + ldrh r0, [r0] + mov r1, r10 +_081A013A: + ands r0, r1 + cmp r0, r7 + bne _081A0128 + movs r2, 0 +_081A0142: + cmp r2, 0x1 + bne _081A00F6 +_081A0146: + ldr r0, [sp] + adds r1, r7, 0 + bl sub_81A0194 + lsls r0, 24 + cmp r0, 0 + beq _081A0168 + ldr r0, =gUnknown_08611370 + adds r0, r7, r0 + ldrb r0, [r0] + cmp r0, 0 + bne _081A0170 + ldr r0, [sp, 0x4] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] +_081A0168: + ldr r2, [sp, 0x4] + cmp r2, 0x4 + bhi _081A0170 + b _081A0052 +_081A0170: + ldr r0, =gUnknown_030062EC + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + adds r0, r7, 0 + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_819FF98 + + thumb_func_start sub_81A0194 +sub_81A0194: @ 81A0194 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 16 + lsrs r5, r1, 16 + movs r3, 0 + ldr r0, =gUnknown_030062EC + mov r12, r0 + ldr r2, [r0] + lsls r1, r4, 2 + adds r0, r1, r4 + lsls r6, r0, 1 + adds r2, 0x2 + adds r7, r1, 0 +_081A01B0: + lsls r0, r3, 1 + adds r0, r6 + adds r0, r2, r0 + ldrh r0, [r0] + cmp r0, r5 + bne _081A01C4 + movs r0, 0 + b _081A01E2 + .pool +_081A01C4: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x4 + bls _081A01B0 + mov r2, r12 + ldr r1, [r2] + adds r0, r7, r4 + ldrb r2, [r1] + adds r0, r2 + lsls r0, 1 + adds r1, 0x2 + adds r1, r0 + strh r5, [r1] + movs r0, 0x1 +_081A01E2: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81A0194 + + thumb_func_start sub_81A01E8 +sub_81A01E8: @ 81A01E8 + push {r4-r7,lr} + mov r12, r1 + lsls r0, 16 + lsrs r2, r0, 16 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xB1 + ldrb r1, [r0] + movs r0, 0x3 + ands r0, r1 + movs r4, 0x3C + cmp r0, 0x1 + bne _081A0204 + movs r4, 0x32 +_081A0204: + ldr r1, =gLevelUpLearnsetPointers + lsls r0, r2, 2 + adds r0, r1 + ldr r6, [r0] + movs r5, 0 + ldrh r1, [r6] + ldr r3, =0x0000ffff + cmp r1, r3 + beq _081A0240 + movs r2, 0xFE + lsls r2, 8 + adds r0, r2, 0 + ands r0, r1 + lsls r1, r4, 9 + cmp r0, r1 + bgt _081A0240 + adds r4, r2, 0 + adds r2, r1, 0 +_081A0228: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 1 + adds r0, r6 + ldrh r1, [r0] + cmp r1, r3 + beq _081A0240 + adds r0, r4, 0 + ands r0, r1 + cmp r0, r2 + ble _081A0228 +_081A0240: + adds r4, r5, 0 + cmp r4, 0x4 + bls _081A0248 + movs r4, 0x4 +_081A0248: + movs r2, 0 + cmp r2, r4 + bcs _081A026C + ldr r7, =0x000001ff +_081A0250: + lsls r3, r2, 1 + add r3, r12 + adds r2, 0x1 + subs r0, r5, r2 + lsls r0, 1 + adds r0, r6 + ldrh r1, [r0] + adds r0, r7, 0 + ands r0, r1 + strh r0, [r3] + lsls r2, 24 + lsrs r2, 24 + cmp r2, r4 + bcc _081A0250 +_081A026C: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A01E8 + + thumb_func_start sub_81A0284 +sub_81A0284: @ 81A0284 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 24 + lsrs r6, r1, 24 + lsls r2, 24 + lsrs r5, r2, 24 + ldr r1, =gSaveBlock2Ptr + ldr r2, [r1] + adds r0, r2, 0 + adds r0, 0xB1 + ldrb r0, [r0] + lsls r0, 26 + lsrs r0, 28 + adds r7, r1, 0 + cmp r0, 0x2 + bhi _081A02B8 + movs r0, 0 + b _081A037C + .pool +_081A02B8: + movs r4, 0 + movs r3, 0 + adds r0, r2, 0 + adds r0, 0xB8 + ldrb r0, [r0] + lsls r0, 30 + ldr r1, =gUnknown_08610970 + mov r12, r1 + lsls r6, 1 + lsls r5, 1 + mov r9, r5 + cmp r0, 0 + beq _081A02F4 + adds r2, r7, 0 +_081A02D4: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x8 + bhi _081A02F4 + ldr r0, [r2] + lsls r1, r3, 2 + adds r0, r1 + adds r0, 0xB8 + ldrb r0, [r0] + lsls r0, 30 + cmp r0, 0 + bne _081A02D4 +_081A02F4: + ldr r0, [r7] + adds r0, 0xB0 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r6, r0 + mov r1, r12 + adds r1, 0x34 + adds r0, r1 + ldrh r0, [r0] + mov r1, sp + bl sub_81A01E8 + movs r3, 0 + cmp r3, r4 + bcs _081A0376 + ldr r1, [r7] + adds r0, r1, 0 + adds r0, 0xB1 + ldrb r0, [r0] + lsls r0, 26 + lsrs r0, 28 + subs r0, 0x3 + cmp r3, r0 + bge _081A0376 + adds r6, r7, 0 + adds r5, r1, 0 +_081A032A: + lsls r0, r3, 2 + adds r2, r5, r0 + adds r0, r2, 0 + adds r0, 0xB8 + ldrb r1, [r0] + lsls r0, r1, 30 + lsrs r0, 30 + cmp r0, 0x2 + bne _081A035C + lsls r0, r1, 28 + lsrs r0, 30 + cmp r0, r8 + bne _081A035C + lsrs r0, r1, 6 + cmp r0, 0 + beq _081A035C + lsls r0, r1, 26 + lsrs r0, 30 + lsls r0, 1 + mov r7, sp + adds r1, r7, r0 + adds r0, r2, 0 + adds r0, 0xBA + ldrh r0, [r0] + strh r0, [r1] +_081A035C: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, r4 + bcs _081A0376 + ldr r0, [r6] + adds r0, 0xB1 + ldrb r0, [r0] + lsls r0, 26 + lsrs r0, 28 + subs r0, 0x3 + cmp r3, r0 + blt _081A032A +_081A0376: + mov r0, sp + add r0, r9 + ldrh r0, [r0] +_081A037C: + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A0284 + + thumb_func_start sub_81A0390 +sub_81A0390: @ 81A0390 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r5, 0 + ldr r7, =gSaveBlock2Ptr + adds r6, r7, 0 + movs r4, 0 +_081A03A6: + ldr r0, [r6] + lsls r2, r5, 1 + adds r2, r5 + lsls r2, 2 + adds r0, r2 + adds r1, r0, 0 + adds r1, 0xE0 + strh r4, [r1] + adds r0, 0xEA + strh r4, [r0] + movs r3, 0 +_081A03BC: + ldr r0, [r6] + lsls r1, r3, 1 + adds r1, r2 + adds r0, 0xE2 + adds r0, r1 + strh r4, [r0] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + bls _081A03BC + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bls _081A03A6 + ldr r0, [r7] + adds r0, 0xB1 + ldrb r0, [r0] + lsrs r3, r0, 6 + movs r5, 0 +_081A03E6: + lsls r0, r3, 2 + mov r1, sp + adds r2, r1, r0 + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 2 + adds r0, 0xE0 + ldr r1, [r7] + adds r1, r0 + str r1, [r2] + adds r0, r3, 0x1 + movs r1, 0x3 + bl __modsi3 + lsls r0, 24 + lsrs r3, r0, 24 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bls _081A03E6 + movs r5, 0 + ldr r7, =gSaveBlock2Ptr + ldr r6, =gUnknown_086109A4 +_081A0416: + ldr r0, [r7] + mov r12, r0 + adds r0, 0xB4 + adds r0, r5 + ldrb r2, [r0] + mov r0, r12 + adds r0, 0xB2 + ldrb r0, [r0] + lsls r0, 29 + lsrs r0, 29 + asrs r0, r5 + movs r1, 0x1 + ands r0, r1 + lsls r0, 2 + asrs r2, r0 + movs r0, 0xF + ands r2, r0 + lsls r0, r5, 2 + mov r1, sp + adds r3, r1, r0 + ldr r4, [r3] + lsls r2, 1 + mov r0, r12 + adds r0, 0xB0 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r2, r0 + adds r2, r6 + ldrh r0, [r2] + strh r0, [r4] + ldr r1, [r3] + ldrh r0, [r1] + adds r1, 0x2 + bl sub_81A01E8 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bls _081A0416 + movs r5, 0 + cmp r5, r8 + bcs _081A04D6 + ldr r7, =gSaveBlock2Ptr +_081A0470: + ldr r1, [r7] + lsls r0, r5, 2 + adds r4, r1, r0 + adds r0, r4, 0 + adds r0, 0xB8 + ldrb r2, [r0] + lsls r0, r2, 30 + lsrs r1, r0, 30 + lsls r0, r2, 28 + lsrs r3, r0, 30 + adds r6, r3, 0 + cmp r1, 0x1 + bne _081A04A8 + lsrs r0, r2, 6 + cmp r0, 0 + beq _081A04CC + lsls r0, r3, 2 + add r0, sp + ldr r1, [r0] + adds r0, r4, 0 + adds r0, 0xBA + ldrh r0, [r0] + strh r0, [r1, 0xA] + b _081A04CC + .pool +_081A04A8: + cmp r1, 0x2 + bne _081A04CC + lsls r0, r2, 24 + lsrs r0, 30 + cmp r0, 0 + beq _081A04CC + lsls r2, 26 + lsrs r2, 30 + lsls r0, r6, 2 + add r0, sp + ldr r1, [r0] + lsls r2, 1 + adds r1, 0x2 + adds r1, r2 + adds r0, r4, 0 + adds r0, 0xBA + ldrh r0, [r0] + strh r0, [r1] +_081A04CC: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, r8 + bcc _081A0470 +_081A04D6: + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81A0390 + + thumb_func_start sub_81A04E4 +sub_81A04E4: @ 81A04E4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + lsls r0, 24 + lsrs r0, 24 + movs r7, 0x2 + cmp r0, 0x6 + bls _081A04FC + b _081A064C +_081A04FC: + lsls r0, 2 + ldr r1, =_081A050C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081A050C: + .4byte _081A0528 + .4byte _081A0540 + .4byte _081A05B4 + .4byte _081A05F4 + .4byte _081A061C + .4byte _081A064C + .4byte _081A0634 +_081A0528: + movs r0, 0x12 + mov r10, r0 + movs r6, 0x8 + ldr r0, =gUnknown_085EAEB1 + str r0, [sp, 0xC] + ldr r0, =gUnknown_085EAEB8 + str r0, [sp, 0x10] + b _081A0652 + .pool +_081A0540: + movs r7, 0x3 + movs r1, 0x12 + mov r10, r1 + movs r6, 0x6 + movs r4, 0 + ldr r0, =gSpeciesNames + mov r9, r0 + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + movs r1, 0xB2 + adds r1, r3 + mov r12, r1 + adds r5, r3, 0 + adds r5, 0xB0 + ldr r0, =gUnknown_086109A4 + mov r8, r0 +_081A0560: + adds r0, r3, 0 + adds r0, 0xB4 + adds r0, r4 + ldrb r2, [r0] + mov r1, r12 + ldrb r0, [r1] + lsls r0, 29 + lsrs r0, 29 + asrs r0, r4 + movs r1, 0x1 + ands r0, r1 + lsls r0, 2 + asrs r2, r0 + movs r0, 0xF + ands r2, r0 + lsls r2, 1 + ldrb r1, [r5] + movs r0, 0x58 + muls r0, r1 + adds r2, r0 + add r2, r8 + ldrh r1, [r2] + lsls r0, r4, 2 + mov r2, sp + adds r2, r0 + adds r2, 0xC + movs r0, 0xB + muls r0, r1 + add r0, r9 + str r0, [r2] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _081A0560 + b _081A0652 + .pool +_081A05B4: + movs r0, 0x12 + mov r10, r0 + movs r6, 0x8 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xB1 + ldrb r0, [r0] + lsls r0, 26 + lsrs r0, 28 + cmp r0, 0x2 + bls _081A05CC + b _081A06FA +_081A05CC: + ldr r0, =gUnknown_030062F0 + ldr r3, [r0] + ldrh r0, [r3, 0x2] + movs r2, 0xB + muls r0, r2 + ldr r1, =gSpeciesNames + adds r0, r1 + str r0, [sp, 0x10] + ldrh r0, [r3] + muls r0, r2 + adds r0, r1 + str r0, [sp, 0xC] + b _081A0652 + .pool +_081A05F4: + movs r1, 0x11 + mov r10, r1 + movs r6, 0x8 + ldr r0, =gUnknown_030062F0 + ldr r3, [r0] + ldrh r0, [r3, 0x4] + movs r2, 0xD + muls r0, r2 + ldr r1, =gMoveNames + adds r0, r1 + str r0, [sp, 0xC] + ldrh r0, [r3, 0x6] + muls r0, r2 + adds r0, r1 + str r0, [sp, 0x10] + b _081A0652 + .pool +_081A061C: + movs r0, 0x12 + mov r10, r0 + movs r6, 0x8 + ldr r0, =gUnknown_085ED193 + str r0, [sp, 0xC] + ldr r0, =gUnknown_085ED198 + str r0, [sp, 0x10] + b _081A0652 + .pool +_081A0634: + movs r1, 0x14 + mov r10, r1 + movs r6, 0x8 + ldr r0, =gUnknown_085EAE62 + str r0, [sp, 0xC] + ldr r0, =gUnknown_085EAE66 + str r0, [sp, 0x10] + b _081A0652 + .pool +_081A064C: + movs r0, 0 + mov r10, r0 + movs r6, 0 +_081A0652: + movs r5, 0 + movs r4, 0 + lsls r1, r7, 25 + mov r8, r1 + cmp r4, r7 + bcs _081A067E +_081A065E: + lsls r0, r4, 2 + add r0, sp + adds r0, 0xC + ldr r1, [r0] + movs r0, 0x1 + movs r2, 0 + bl GetStringWidth + cmp r0, r5 + ble _081A0674 + adds r5, r0, 0 +_081A0674: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r7 + bcc _081A065E +_081A067E: + adds r0, r5, 0 + bl convert_pixel_width_to_tile_width + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + mov r0, r10 + adds r1, r4, 0 + bl sub_80E2D5C + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + mov r0, r8 + lsrs r3, r0, 24 + mov r0, r10 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_81A0784 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + movs r1, 0 + bl SetStandardWindowBorderStyle + movs r4, 0 + cmp r4, r7 + bcs _081A06E6 +_081A06B8: + lsls r0, r4, 2 + add r0, sp + adds r0, 0xC + ldr r2, [r0] + lsls r0, r4, 4 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + adds r0, r5, 0 + movs r1, 0x1 + movs r3, 0x8 + bl Print + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r7 + bcc _081A06B8 +_081A06E6: + adds r0, r5, 0 + adds r1, r7, 0 + movs r2, 0 + bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed + movs r0, 0x1 + adds r1, r7, 0 + adds r2, r5, 0 + bl sub_81A0804 +_081A06FA: + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81A04E4 + + thumb_func_start sub_81A070C +sub_81A070C: @ 81A070C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _081A0730 + bl ProcessMenuInputNoWrapAround + b _081A0734 + .pool +_081A0730: + bl ProcessMenuInput +_081A0734: + lsls r0, 24 + lsrs r0, 24 + lsls r0, 24 + asrs r1, r0, 24 + movs r0, 0x2 + negs r0, r0 + cmp r1, r0 + beq _081A0778 + adds r0, 0x1 + cmp r1, r0 + bne _081A0764 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _081A0778 + movs r0, 0x5 + bl PlaySE + ldr r1, =gScriptResult + movs r0, 0x7F + strh r0, [r1] + b _081A0768 + .pool +_081A0764: + ldr r0, =gScriptResult + strh r1, [r0] +_081A0768: + ldrb r0, [r4, 0xC] + bl sub_81A07E8 + adds r0, r5, 0 + bl DestroyTask + bl script_env_2_enable_and_set_ctx_running +_081A0778: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A070C + + thumb_func_start sub_81A0784 +sub_81A0784: @ 81A0784 + push {r4,r5,lr} + sub sp, 0x20 + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 24 + lsls r5, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x80 + lsls r0, 17 + adds r4, r0 + lsrs r4, 24 + adds r5, r0 + lsrs r5, 24 + str r2, [sp] + str r3, [sp, 0x4] + movs r0, 0xF + str r0, [sp, 0x8] + movs r0, 0x64 + str r0, [sp, 0xC] + add r0, sp, 0x10 + movs r1, 0 + adds r2, r4, 0 + adds r3, r5, 0 + bl sub_8198A50 + ldr r0, [sp, 0x10] + ldr r1, [sp, 0x14] + str r0, [sp, 0x18] + str r1, [sp, 0x1C] + add r0, sp, 0x18 + bl AddWindow + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl PutWindowTilemap + adds r0, r4, 0 + movs r1, 0x3 + bl CopyWindowToVram + adds r0, r4, 0 + add sp, 0x20 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81A0784 + + thumb_func_start sub_81A07E8 +sub_81A07E8: @ 81A07E8 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8198070 + adds r0, r4, 0 + bl RemoveWindow + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81A07E8 + + thumb_func_start sub_81A0804 +sub_81A0804: @ 81A0804 + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r2, 24 + lsrs r6, r2, 24 + ldr r0, =sub_81A070C + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0, r1 + strh r4, [r1, 0x10] + cmp r5, 0x3 + bls _081A0840 + movs r0, 0x1 + b _081A0842 + .pool +_081A0840: + movs r0, 0 +_081A0842: + strh r0, [r1, 0x12] + ldr r1, =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + strh r6, [r0, 0x14] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A0804 + + thumb_func_start sub_81A085C +sub_81A085C: @ 81A085C + push {lr} + ldr r1, =gUnknown_086114E0 + ldr r0, =gSpecialVar_0x8004 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A085C + + thumb_func_start sub_81A087C +sub_81A087C: @ 81A087C + push {r4-r7,lr} + bl sub_819FBC8 + ldr r3, =gSaveBlock2Ptr + ldr r1, [r3] + adds r1, 0xB1 + ldrb r2, [r1] + movs r0, 0x4 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r3] + adds r1, 0xB1 + ldrb r2, [r1] + movs r0, 0x3D + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r3] + adds r1, 0xB1 + ldrb r2, [r1] + movs r0, 0x3F + ands r0, r2 + strb r0, [r1] + ldr r1, [r3] + adds r1, 0xB2 + ldrb r2, [r1] + movs r0, 0x8 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + movs r4, 0 + movs r1, 0 +_081A08BE: + ldr r0, [r3] + adds r0, 0xB4 + adds r0, r4 + strb r1, [r0] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _081A08BE + movs r4, 0 + ldr r5, =gSaveBlock2Ptr + movs r0, 0x4 + negs r0, r0 + mov r12, r0 + movs r7, 0xD + negs r7, r7 + movs r6, 0x31 + negs r6, r6 +_081A08E2: + ldr r1, [r5] + lsls r3, r4, 2 + adds r1, r3 + adds r1, 0xB8 + ldrb r2, [r1] + mov r0, r12 + ands r0, r2 + strb r0, [r1] + ldr r1, [r5] + adds r1, r3 + adds r1, 0xB8 + ldrb r2, [r1] + adds r0, r7, 0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r5] + adds r1, r3 + adds r1, 0xB8 + ldrb r2, [r1] + adds r0, r6, 0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r5] + adds r1, r3 + adds r1, 0xB8 + ldrb r2, [r1] + movs r0, 0x3F + ands r0, r2 + strb r0, [r1] + ldr r0, [r5] + adds r0, r3 + adds r0, 0xBA + movs r1, 0 + strh r1, [r0] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x8 + bls _081A08E2 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A087C + + thumb_func_start sub_81A093C +sub_81A093C: @ 81A093C + push {lr} + bl sub_819FBB0 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _081A0954 + ldr r0, =gScriptResult + strh r1, [r0] + b _081A095A + .pool +_081A0954: + ldr r1, =gScriptResult + movs r0, 0x1 + strh r0, [r1] +_081A095A: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A093C + + thumb_func_start sub_81A0964 +sub_81A0964: @ 81A0964 + push {lr} + ldr r0, =gSpecialVar_0x8005 + ldrb r0, [r0] + bl sub_819FC40 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A0964 + + thumb_func_start sub_81A0978 +sub_81A0978: @ 81A0978 + push {lr} + bl sub_819FBC8 + pop {r0} + bx r0 + thumb_func_end sub_81A0978 + + thumb_func_start sub_81A0984 +sub_81A0984: @ 81A0984 + push {lr} + bl sub_819FD64 + pop {r0} + bx r0 + thumb_func_end sub_81A0984 + + thumb_func_start sub_81A0990 +sub_81A0990: @ 81A0990 + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + adds r2, 0xB1 + ldrb r3, [r2] + lsls r1, r3, 26 + lsrs r1, 28 + adds r1, 0x1 + movs r0, 0xF + ands r1, r0 + lsls r1, 2 + movs r0, 0x3D + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + bx lr + .pool + thumb_func_end sub_81A0990 + + thumb_func_start sub_81A09B4 +sub_81A09B4: @ 81A09B4 + ldr r1, =gScriptResult + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xB1 + ldrb r0, [r0] + lsls r0, 26 + lsrs r0, 28 + strh r0, [r1] + bx lr + .pool + thumb_func_end sub_81A09B4 + + thumb_func_start sub_81A09D0 +sub_81A09D0: @ 81A09D0 + push {lr} + ldr r3, =gSaveBlock2Ptr + ldr r0, [r3] + adds r0, 0xB1 + ldrb r0, [r0] + lsls r0, 26 + lsrs r0, 28 + subs r1, r0, 0x3 + cmp r1, 0 + bge _081A09F4 + ldr r1, =gScriptResult + movs r0, 0 + strh r0, [r1] + b _081A0A1C + .pool +_081A09F4: + ldr r2, =gScriptResult + cmp r1, 0x8 + ble _081A09FE + movs r0, 0x1 + strh r0, [r2] +_081A09FE: + ldr r0, [r3] + lsls r1, 2 + adds r0, r1 + adds r0, 0xB8 + ldrb r0, [r0] + lsls r0, 30 + cmp r0, 0 + bne _081A0A18 + movs r0, 0x1 + b _081A0A1A + .pool +_081A0A18: + movs r0, 0 +_081A0A1A: + strh r0, [r2] +_081A0A1C: + pop {r0} + bx r0 + thumb_func_end sub_81A09D0 + + thumb_func_start sub_81A0A20 +sub_81A0A20: @ 81A0A20 + push {lr} + ldr r0, =gSpecialVar_0x8005 + ldrb r0, [r0] + bl sub_81A04E4 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A0A20 + + thumb_func_start sub_81A0A34 +sub_81A0A34: @ 81A0A34 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8197224 + lsls r0, 16 + cmp r0, 0 + bne _081A0A68 + adds r0, r4, 0 + bl DestroyTask + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0 + beq _081A0A64 + ldr r0, =script_env_2_enable_and_set_ctx_running + bl sub_81A172C + b _081A0A68 + .pool +_081A0A64: + bl script_env_2_enable_and_set_ctx_running +_081A0A68: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81A0A34 + + thumb_func_start sub_81A0A70 +sub_81A0A70: @ 81A0A70 + push {lr} + ldr r1, =gSpecialVar_0x8006 + ldrh r0, [r1] + cmp r0, 0x6 + bne _081A0A94 + ldr r1, =gUnknown_08610FF0 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xB0 + ldrb r0, [r0] + lsls r0, 3 + b _081A0C66 + .pool +_081A0A94: + cmp r0, 0x7 + bne _081A0AB0 + ldr r1, =gUnknown_08610FF0 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xB0 + ldrb r0, [r0] + lsls r0, 3 + adds r1, 0x4 + b _081A0C66 + .pool +_081A0AB0: + cmp r0, 0x8 + bne _081A0ACC + ldr r1, =gUnknown_086111B0 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xB0 + ldrb r0, [r0] + lsls r0, 3 + b _081A0C66 + .pool +_081A0ACC: + cmp r0, 0x9 + bne _081A0AE8 + ldr r1, =gUnknown_086111B0 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xB0 + ldrb r0, [r0] + lsls r0, 3 + adds r1, 0x4 + b _081A0C66 + .pool +_081A0AE8: + cmp r0, 0x4 + bne _081A0B04 + ldr r1, =gUnknown_08611230 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xB0 + ldrb r0, [r0] + lsls r0, 3 + b _081A0C66 + .pool +_081A0B04: + cmp r0, 0x5 + bne _081A0B20 + ldr r1, =gUnknown_08611230 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xB0 + ldrb r0, [r0] + lsls r0, 3 + adds r1, 0x4 + b _081A0C66 + .pool +_081A0B20: + cmp r0, 0xA + bne _081A0B40 + ldr r2, =gUnknown_08611070 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xB0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + b _081A0BD6 + .pool +_081A0B40: + cmp r0, 0xB + bne _081A0B5C + ldr r1, =gUnknown_086112B0 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xB0 + ldrb r0, [r0] + lsls r0, 3 + b _081A0C66 + .pool +_081A0B5C: + cmp r0, 0xC + bne _081A0B7C + ldr r2, =gUnknown_08611070 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xB0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r2, 0xC + b _081A0BD6 + .pool +_081A0B7C: + cmp r0, 0xD + bne _081A0B9C + ldr r2, =gUnknown_08611070 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xB0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r2, 0x4 + b _081A0BD6 + .pool +_081A0B9C: + ldrh r0, [r1] + cmp r0, 0x10 + bne _081A0BC0 + ldr r2, =gUnknown_08611070 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xB0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r2, 0x10 + b _081A0BD6 + .pool +_081A0BC0: + cmp r0, 0xE + bne _081A0BE4 + ldr r2, =gUnknown_08611070 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xB0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r2, 0x8 +_081A0BD6: + adds r0, r2 + ldr r1, [r0] + b _081A0C7A + .pool +_081A0BE4: + cmp r0, 0xF + bne _081A0C00 + ldr r1, =gUnknown_086112B0 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xB0 + ldrb r0, [r0] + lsls r0, 3 + adds r1, 0x4 + b _081A0C66 + .pool +_081A0C00: + cmp r0, 0 + bne _081A0C1C + ldr r1, =gUnknown_08610EF0 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xB0 + ldrb r0, [r0] + lsls r0, 4 + b _081A0C66 + .pool +_081A0C1C: + cmp r0, 0x1 + bne _081A0C38 + ldr r1, =gUnknown_08610EF0 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xB0 + ldrb r0, [r0] + lsls r0, 4 + adds r1, 0x4 + b _081A0C66 + .pool +_081A0C38: + cmp r0, 0x2 + bne _081A0C54 + ldr r1, =gUnknown_08610EF0 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xB0 + ldrb r0, [r0] + lsls r0, 4 + adds r1, 0x8 + b _081A0C66 + .pool +_081A0C54: + cmp r0, 0x3 + bne _081A0C74 + ldr r1, =gUnknown_08610EF0 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xB0 + ldrb r0, [r0] + lsls r0, 4 + adds r1, 0xC +_081A0C66: + adds r0, r1 + ldr r1, [r0] + b _081A0C7A + .pool +_081A0C74: + bl script_env_2_enable_and_set_ctx_running + b _081A0C8E +_081A0C7A: + ldr r0, =gStringVar4 + bl StringExpandPlaceholders + movs r0, 0x1 + bl AddTextPrinterForMessage + ldr r0, =sub_81A0A34 + movs r1, 0x1 + bl CreateTask +_081A0C8E: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A0A70 + + thumb_func_start sub_81A0C9C +sub_81A0C9C: @ 81A0C9C + push {lr} + bl script_env_2_enable + bl player_bitmagic + bl sub_808B864 + bl sub_808BCF4 + movs r0, 0 + movs r1, 0x1 + bl sub_81973C4 + bl sub_81A0A70 + pop {r0} + bx r0 + thumb_func_end sub_81A0C9C + + thumb_func_start sub_81A0CC0 +sub_81A0CC0: @ 81A0CC0 + push {lr} + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0xB1 + ldrb r0, [r0] + lsls r1, r0, 26 + lsrs r0, r1, 28 + cmp r0, 0x2 + bhi _081A0CE4 + ldr r1, =gScriptResult + movs r0, 0x2 + b _081A0D34 + .pool +_081A0CE4: + lsrs r0, r1, 28 + cmp r0, 0xB + bhi _081A0D30 + lsrs r0, r1, 28 + subs r0, 0x3 + lsls r0, 2 + adds r0, r2, r0 + adds r0, 0xB8 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 30 + cmp r0, 0x2 + beq _081A0D18 + cmp r0, 0x2 + bgt _081A0D08 + cmp r0, 0x1 + beq _081A0D0E + b _081A0D30 +_081A0D08: + cmp r0, 0x3 + beq _081A0D24 + b _081A0D30 +_081A0D0E: + ldr r1, =gScriptResult + movs r0, 0x4 + b _081A0D34 + .pool +_081A0D18: + ldr r1, =gScriptResult + movs r0, 0x3 + b _081A0D34 + .pool +_081A0D24: + ldr r1, =gScriptResult + movs r0, 0x1 + b _081A0D34 + .pool +_081A0D30: + ldr r1, =gScriptResult + movs r0, 0x5 +_081A0D34: + strh r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A0CC0 + + thumb_func_start sub_81A0D40 +sub_81A0D40: @ 81A0D40 + push {r4,lr} + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0 + beq _081A0D6E + ldr r4, =gSpecialVar_0x8006 + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + adds r2, 0xB2 + ldrb r3, [r2] + lsls r0, r3, 29 + lsrs r0, 29 + movs r1, 0x1 + ldrb r4, [r4] + lsls r1, r4 + orrs r1, r0 + movs r0, 0x7 + ands r1, r0 + movs r0, 0x8 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] +_081A0D6E: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A0D40 + + thumb_func_start sub_81A0D80 +sub_81A0D80: @ 81A0D80 + push {lr} + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + adds r0, r3, 0 + adds r0, 0xB1 + ldrb r0, [r0] + lsls r1, r0, 26 + lsrs r0, r1, 28 + cmp r0, 0x2 + bls _081A0DCE + subs r0, 0x3 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0 + beq _081A0DC0 + lsls r2, 2 + adds r2, r3, r2 + adds r2, 0xB8 + ldrb r1, [r2] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2] + b _081A0DCE + .pool +_081A0DC0: + lsls r0, r2, 2 + adds r0, r3, r0 + adds r0, 0xB8 + ldrb r2, [r0] + movs r1, 0x3F + ands r1, r2 + strb r1, [r0] +_081A0DCE: + pop {r0} + bx r0 + thumb_func_end sub_81A0D80 + + thumb_func_start sub_81A0DD4 +sub_81A0DD4: @ 81A0DD4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r6, 0 + movs r2, 0 + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + adds r0, 0xB8 + ldrb r0, [r0] + lsls r0, 30 + ldr r3, =gUnknown_030062F0 + mov r9, r3 + cmp r0, 0 + beq _081A0E14 + adds r3, r1, 0 +_081A0DF4: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x8 + bhi _081A0E14 + ldr r0, [r3] + lsls r1, r2, 2 + adds r0, r1 + adds r0, 0xB8 + ldrb r0, [r0] + lsls r0, 30 + cmp r0, 0 + bne _081A0DF4 +_081A0E14: + mov r4, r9 + movs r0, 0x8 + bl AllocZeroed + adds r7, r0, 0 + str r7, [r4] + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0x2 + bne _081A0E88 + ldr r0, =gSaveBlock2Ptr + ldr r5, [r0] + adds r6, r5, 0 + adds r6, 0xB1 + ldrb r0, [r6] + lsls r1, r0, 26 + lsrs r0, r1, 28 + cmp r0, 0x2 + bls _081A0E3C + b _081A0FCE +_081A0E3C: + adds r2, r5, 0 + adds r2, 0xB4 + adds r0, r2, r0 + ldrb r0, [r0] + lsrs r4, r0, 4 + ldr r3, =gUnknown_08610970 + lsls r1, r4, 1 + adds r5, 0xB0 + ldrb r0, [r5] + movs r4, 0x58 + muls r0, r4 + adds r1, r0 + adds r3, 0x34 + adds r1, r3 + ldrh r0, [r1] + strh r0, [r7, 0x2] + ldrb r0, [r6] + lsls r0, 26 + lsrs r0, 28 + adds r2, r0 + ldrb r1, [r2] + movs r0, 0xF + ands r0, r1 + lsls r0, 1 + ldrb r1, [r5] + muls r1, r4 + adds r0, r1 + adds r0, r3 + b _081A0FCA + .pool +_081A0E88: + cmp r0, 0x3 + bne _081A0F54 + ldr r0, =gSaveBlock2Ptr + mov r8, r0 + ldr r5, [r0] + movs r1, 0xB1 + adds r1, r5 + mov r12, r1 + ldrb r0, [r1] + lsls r2, r0, 26 + lsrs r0, r2, 28 + cmp r0, 0x2 + bhi _081A0EA4 + b _081A0FCE +_081A0EA4: + adds r1, r0, 0 + adds r0, r6, 0x3 + cmp r1, r0 + blt _081A0EAE + b _081A0FCE +_081A0EAE: + adds r0, r1, 0 + subs r0, 0x3 + lsls r0, 2 + adds r0, r5, r0 + adds r0, 0xB8 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 30 + cmp r0, 0x2 + beq _081A0EC4 + b _081A0FCE +_081A0EC4: + adds r0, r1, 0 + subs r0, 0x3 + lsls r0, 2 + adds r0, r5, r0 + adds r0, 0xB8 + ldrb r0, [r0] + lsls r0, 28 + lsrs r6, r0, 30 + adds r0, r5, 0 + adds r0, 0xB2 + ldrb r1, [r0] + lsls r1, 29 + lsrs r1, 29 + asrs r1, r6 + movs r0, 0x1 + ands r1, r0 + adds r0, r5, 0 + adds r0, 0xB4 + adds r0, r6 + ldrb r4, [r0] + lsls r1, 2 + asrs r4, r1 + movs r0, 0xF + ands r4, r0 + ldr r2, =gUnknown_08610970 + lsls r1, r4, 1 + adds r0, r5, 0 + adds r0, 0xB0 + ldrb r3, [r0] + movs r0, 0x58 + muls r0, r3 + adds r1, r0 + adds r2, 0x34 + adds r1, r2 + ldrh r0, [r1] + strh r0, [r7] + mov r3, r12 + ldrb r0, [r3] + lsls r0, 26 + lsrs r0, 28 + subs r0, 0x3 + lsls r0, 2 + adds r0, r5, r0 + adds r0, 0xB8 + ldrb r2, [r0] + lsls r2, 26 + lsrs r2, 30 + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_81A0284 + mov r1, r9 + ldr r2, [r1] + strh r0, [r2, 0x4] + mov r3, r8 + ldr r1, [r3] + adds r0, r1, 0 + adds r0, 0xB1 + ldrb r0, [r0] + lsls r0, 26 + lsrs r0, 28 + subs r0, 0x3 + lsls r0, 2 + adds r1, r0 + adds r1, 0xBA + ldrh r0, [r1] + strh r0, [r2, 0x6] + b _081A0FCE + .pool +_081A0F54: + cmp r0, 0x4 + bne _081A0FCE + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + adds r0, r3, 0 + adds r0, 0xB1 + ldrb r0, [r0] + lsls r2, r0, 26 + lsrs r0, r2, 28 + cmp r0, 0x2 + bls _081A0FCE + adds r1, r0, 0 + adds r0, r6, 0x3 + cmp r1, r0 + bge _081A0FCE + adds r0, r1, 0 + subs r0, 0x3 + lsls r0, 2 + adds r0, r3, r0 + adds r0, 0xB8 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 30 + cmp r0, 0x1 + bne _081A0FCE + adds r0, r1, 0 + subs r0, 0x3 + lsls r0, 2 + adds r0, r3, r0 + adds r0, 0xB8 + ldrb r0, [r0] + lsls r0, 28 + lsrs r6, r0, 30 + adds r0, r3, 0 + adds r0, 0xB2 + ldrb r1, [r0] + lsls r1, 29 + lsrs r1, 29 + asrs r1, r6 + movs r0, 0x1 + ands r1, r0 + adds r0, r3, 0 + adds r0, 0xB4 + adds r0, r6 + ldrb r0, [r0] + lsls r1, 2 + asrs r0, r1 + movs r1, 0xF + ands r0, r1 + ldr r2, =gUnknown_08610970 + lsls r0, 1 + adds r1, r3, 0 + adds r1, 0xB0 + ldrb r3, [r1] + movs r1, 0x58 + muls r1, r3 + adds r0, r1 + adds r2, 0x34 + adds r0, r2 +_081A0FCA: + ldrh r0, [r0] + strh r0, [r7] +_081A0FCE: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A0DD4 + + thumb_func_start sub_81A0FE4 +sub_81A0FE4: @ 81A0FE4 + push {r4,lr} + ldr r4, =gUnknown_030062F0 + ldr r0, [r4] + bl Free + movs r0, 0 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A0FE4 + + thumb_func_start sub_81A0FFC +sub_81A0FFC: @ 81A0FFC + push {r4-r6,lr} + sub sp, 0x10 + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0x1 + beq _081A1028 + cmp r0, 0x1 + bgt _081A1018 + cmp r0, 0 + beq _081A101E + b _081A11E6 + .pool +_081A1018: + cmp r0, 0x2 + beq _081A1030 + b _081A11E6 +_081A101E: + ldr r5, =gStringVar1 + b _081A1032 + .pool +_081A1028: + ldr r5, =gStringVar2 + b _081A1032 + .pool +_081A1030: + ldr r5, =gStringVar3 +_081A1032: + ldr r0, =gSpecialVar_0x8006 + ldrh r0, [r0] + cmp r0, 0x9 + bls _081A103C + b _081A11E6 +_081A103C: + lsls r0, 2 + ldr r1, =_081A1054 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081A1054: + .4byte _081A107C + .4byte _081A1094 + .4byte _081A10AC + .4byte _081A10C4 + .4byte _081A10DC + .4byte _081A10F4 + .4byte _081A1118 + .4byte _081A1164 + .4byte _081A1140 + .4byte _081A1184 +_081A107C: + ldr r0, =gUnknown_030062F0 + ldr r0, [r0] + ldrh r1, [r0] + movs r0, 0xB + muls r1, r0 + ldr r0, =gSpeciesNames + adds r1, r0 + b _081A1174 + .pool +_081A1094: + ldr r0, =gUnknown_030062F0 + ldr r0, [r0] + ldrh r1, [r0, 0x2] + movs r0, 0xB + muls r1, r0 + ldr r0, =gSpeciesNames + adds r1, r0 + b _081A1174 + .pool +_081A10AC: + ldr r0, =gUnknown_030062F0 + ldr r0, [r0] + ldrh r1, [r0] + movs r0, 0xB + muls r1, r0 + ldr r0, =gSpeciesNames + adds r1, r0 + b _081A1174 + .pool +_081A10C4: + ldr r0, =gUnknown_030062F0 + ldr r0, [r0] + ldrh r1, [r0, 0x4] + movs r0, 0xD + muls r1, r0 + ldr r0, =gMoveNames + adds r1, r0 + b _081A1174 + .pool +_081A10DC: + ldr r0, =gUnknown_030062F0 + ldr r0, [r0] + ldrh r1, [r0, 0x6] + movs r0, 0xD + muls r1, r0 + ldr r0, =gMoveNames + adds r1, r0 + b _081A1174 + .pool +_081A10F4: + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0xB1 + ldrb r0, [r0] + lsls r0, 26 + lsrs r0, 28 + subs r0, 0x3 + lsls r0, 2 + adds r1, r0 + adds r1, 0xBA + ldrh r0, [r1] + bl ItemId_GetItem + adds r1, r0, 0 + b _081A1174 + .pool +_081A1118: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xB0 + ldrb r0, [r0] + movs r1, 0x2 + bl sub_81A1650 + adds r1, r0, 0 + mov r0, sp + movs r2, 0x2 + bl sub_81DB5E8 + adds r0, r5, 0 + mov r1, sp + bl StringCopy + b _081A11E6 + .pool +_081A1140: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xB1 + ldrb r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + bne _081A115C + ldr r1, =gUnknown_085EAEB1 + b _081A1174 + .pool +_081A115C: + ldr r1, =gUnknown_085EAEB8 + b _081A1174 + .pool +_081A1164: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + movs r1, 0x82 + lsls r1, 1 + adds r0, r1 + bl ConvertBattleFrontierTrainerSpeechToString + ldr r1, =gStringVar4 +_081A1174: + adds r0, r5, 0 + bl StringCopy + b _081A11E6 + .pool +_081A1184: + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + adds r1, r3, 0 + adds r1, 0xB1 + ldrb r1, [r1] + lsls r4, r1, 24 + lsrs r1, r4, 30 + adds r6, r0, 0 + cmp r1, 0x2 + bhi _081A11C0 + adds r0, r3, 0 + adds r0, 0xB4 + adds r0, r1 + ldrb r2, [r0] + adds r0, r3, 0 + adds r0, 0xB2 + ldrb r0, [r0] + lsls r0, 29 + lsrs r0, 29 + asrs r0, r1 + movs r1, 0x1 + ands r0, r1 + lsls r0, 2 + asrs r2, r0 + movs r0, 0xF + ands r2, r0 + b _081A11C2 + .pool +_081A11C0: + movs r2, 0 +_081A11C2: + ldr r3, =gUnknown_08610970 + lsls r1, r2, 1 + ldr r0, [r6] + adds r0, 0xB0 + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, r0 + adds r3, 0x34 + adds r1, r3 + ldrh r1, [r1] + movs r0, 0xB + muls r1, r0 + ldr r0, =gSpeciesNames + adds r1, r0 + adds r0, r5, 0 + bl StringCopy +_081A11E6: + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A0FFC + + thumb_func_start sub_81A11F8 +sub_81A11F8: @ 81A11F8 + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldr r0, =gSpecialVar_0x8005 + ldrb r1, [r0] + adds r2, 0xB1 + lsls r1, 6 + ldrb r3, [r2] + movs r0, 0x3F + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + bx lr + .pool + thumb_func_end sub_81A11F8 + + thumb_func_start sub_81A1218 +sub_81A1218: @ 81A1218 + push {lr} + bl sub_81AAC28 + pop {r0} + bx r0 + thumb_func_end sub_81A1218 + + thumb_func_start sub_81A1224 +sub_81A1224: @ 81A1224 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r1, =gSaveBlock2Ptr + ldr r3, [r1] + adds r0, r3, 0 + adds r0, 0xB1 + ldrb r0, [r0] + lsls r0, 26 + lsrs r0, 28 + adds r7, r1, 0 + cmp r0, 0x2 + bhi _081A1242 + b _081A1362 +_081A1242: + movs r5, 0 + movs r2, 0 + adds r0, r3, 0 + adds r0, 0xB8 + ldrb r0, [r0] + lsls r0, 30 + ldr r1, =gSpecialVar_0x8005 + mov r12, r1 + ldr r1, =gScriptResult + mov r8, r1 + cmp r0, 0 + beq _081A127C + adds r3, r7, 0 +_081A125C: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x8 + bhi _081A127C + ldr r0, [r3] + lsls r1, r2, 2 + adds r0, r1 + adds r0, 0xB8 + ldrb r0, [r0] + lsls r0, 30 + cmp r0, 0 + bne _081A125C +_081A127C: + movs r4, 0 + cmp r4, r5 + bcs _081A1322 + ldr r0, [r7] + adds r0, 0xB1 + ldrb r0, [r0] + lsls r0, 26 + lsrs r0, 28 + subs r0, 0x3 + cmp r4, r0 + bge _081A1322 + adds r6, r7, 0 + mov r9, r4 +_081A1296: + ldr r3, [r6] + lsls r0, r4, 2 + adds r2, r3, r0 + adds r0, r2, 0 + adds r0, 0xB8 + ldrb r1, [r0] + lsls r0, r1, 30 + lsrs r0, 30 + cmp r0, 0x1 + bne _081A1308 + lsrs r0, r1, 6 + cmp r0, 0 + beq _081A1308 + adds r0, r2, 0 + adds r0, 0xBA + ldrh r0, [r0] + mov r2, r12 + ldrh r2, [r2] + cmp r0, r2 + bne _081A1308 + adds r0, r3, 0 + adds r0, 0xB1 + ldrb r0, [r0] + lsls r0, 26 + lsrs r0, 28 + subs r0, 0x3 + lsls r0, 2 + adds r0, r3, r0 + adds r0, 0xB8 + ldrb r2, [r0] + movs r1, 0x3F + ands r1, r2 + strb r1, [r0] + ldr r1, [r6] + adds r0, r1, 0 + adds r0, 0xB1 + ldrb r0, [r0] + lsls r0, 26 + lsrs r0, 28 + subs r0, 0x3 + lsls r0, 2 + adds r1, r0 + mov r2, r12 + ldrh r0, [r2] + adds r1, 0xBA + strh r0, [r1] + mov r1, r9 + mov r0, r8 + strh r1, [r0] + b _081A1362 + .pool +_081A1308: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r5 + bcs _081A1322 + ldr r0, [r6] + adds r0, 0xB1 + ldrb r0, [r0] + lsls r0, 26 + lsrs r0, 28 + subs r0, 0x3 + cmp r4, r0 + blt _081A1296 +_081A1322: + ldr r2, [r7] + adds r0, r2, 0 + adds r0, 0xB1 + ldrb r0, [r0] + lsls r0, 26 + lsrs r0, 28 + subs r0, 0x3 + lsls r0, 2 + adds r2, r0 + adds r2, 0xB8 + ldrb r1, [r2] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2] + ldr r1, [r7] + adds r0, r1, 0 + adds r0, 0xB1 + ldrb r0, [r0] + lsls r0, 26 + lsrs r0, 28 + subs r0, 0x3 + lsls r0, 2 + adds r1, r0 + mov r2, r12 + ldrh r0, [r2] + adds r1, 0xBA + strh r0, [r1] + movs r0, 0x1 + mov r1, r8 + strh r0, [r1] +_081A1362: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81A1224 + + thumb_func_start sub_81A1370 +sub_81A1370: @ 81A1370 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + movs r2, 0x8A + lsls r2, 1 + adds r1, r2 + ldrb r1, [r1] + adds r4, r0, 0 + cmp r1, 0xFF + beq _081A1422 + movs r5, 0 +_081A138E: + ldr r1, [r4] + adds r2, r5, 0x1 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r3, r1, r0 + movs r5, 0x8A + lsls r5, 1 + adds r0, r3, r5 + ldrb r0, [r0] + cmp r0, 0xFF + bne _081A13B8 + adds r0, r3, 0 + adds r0, 0xDC + adds r1, 0xDC + movs r2, 0x44 + bl memcpy + b _081A1422 + .pool +_081A13B8: + adds r5, r2, 0 + cmp r5, 0x2 + ble _081A138E + ldr r0, =0x0000ffff + mov r10, r0 + movs r2, 0x1 + negs r2, r2 + mov r9, r2 + movs r5, 0x1 + ldr r7, =gSaveBlock2Ptr + movs r0, 0x90 + lsls r0, 1 + mov r8, r0 + movs r6, 0x44 +_081A13D4: + ldr r0, [r7] + add r0, r8 + adds r0, 0x34 + bl ReadUnalignedWord + adds r4, r0, 0 + ldr r0, [r7] + adds r0, 0xA + bl ReadUnalignedWord + cmp r4, r0 + bne _081A13FC + ldr r0, [r7] + adds r0, r6 + adds r0, 0xDE + ldrb r0, [r0] + cmp r0, r10 + bge _081A13FC + mov r10, r0 + mov r9, r5 +_081A13FC: + movs r2, 0x44 + add r8, r2 + adds r6, 0x44 + adds r5, 0x1 + cmp r5, 0x3 + ble _081A13D4 + mov r5, r9 + cmp r5, 0 + ble _081A1422 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + lsls r0, r5, 4 + add r0, r9 + lsls r0, 2 + adds r0, r1, r0 + adds r0, 0xDC + adds r1, 0xDC + bl memcpy +_081A1422: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A1370 + + thumb_func_start sub_81A1438 +sub_81A1438: @ 81A1438 + push {r4,r5,lr} + ldr r4, =gSaveBlock2Ptr + ldr r2, [r4] + adds r0, r2, 0 + adds r0, 0xB0 + ldrb r0, [r0] + adds r2, 0xDC + movs r1, 0x1F + ands r1, r0 + ldrb r3, [r2] + movs r0, 0x20 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldr r2, [r4] + adds r0, r2, 0 + adds r0, 0xB1 + ldrb r1, [r0] + lsls r1, 30 + adds r2, 0xDC + lsrs r1, 25 + ldrb r3, [r2] + movs r0, 0x61 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + movs r2, 0 + ldr r0, [r4] + b _081A148C + .pool +_081A147C: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x8 + bhi _081A1496 + ldr r0, [r4] + lsls r1, r2, 2 + adds r0, r1 +_081A148C: + adds r0, 0xB8 + ldrb r0, [r0] + lsls r0, 30 + cmp r0, 0 + bne _081A147C +_081A1496: + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + adds r0, 0xDD + strb r2, [r0] + ldr r0, [r4] + adds r1, r0, 0 + adds r1, 0xDE + ldrb r0, [r1] + cmp r0, 0xFE + bhi _081A14AE + adds r0, 0x1 + strb r0, [r1] +_081A14AE: + ldr r0, [r4] + adds r0, 0xDD + ldrb r0, [r0] + bl sub_81A0390 + movs r2, 0 + adds r3, r4, 0 + movs r4, 0x88 + lsls r4, 1 + adds r5, r3, 0 +_081A14C2: + ldr r0, [r3] + adds r1, r0, r4 + adds r1, r2 + adds r0, 0xA + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _081A14C2 + ldr r1, [r5] + movs r2, 0x8A + lsls r2, 1 + adds r0, r1, r2 + bl StringCopy + ldr r1, [r5] + ldr r0, =gGameLanguage + ldrb r0, [r0] + ldr r2, =0x0000011b + adds r1, r2 + strb r0, [r1] + ldr r0, [r5] + adds r0, 0xDC + bl sub_8165AE8 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A1438 + + thumb_func_start sub_81A150C +sub_81A150C: @ 81A150C + push {lr} + ldr r2, =gUnknown_08610970 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xDC + ldrb r0, [r0] + lsls r0, 27 + lsrs r0, 27 + movs r1, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x32 + ldrb r2, [r0] + movs r1, 0 + ldr r3, =gUnknown_085DCEDC + ldrb r0, [r3] + cmp r0, r2 + beq _081A1542 +_081A1530: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x1D + bhi _081A1542 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _081A1530 +_081A1542: + cmp r1, 0x1E + beq _081A1568 + ldr r0, =gUnknown_085DCF0E + adds r0, r1, r0 + ldrb r1, [r0] + ldr r0, =0x00004010 + bl VarSet + b _081A1594 + .pool +_081A1568: + movs r1, 0 + ldr r3, =gUnknown_085DCEFA + ldrb r0, [r3] + cmp r0, r2 + beq _081A1584 +_081A1572: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x13 + bhi _081A1584 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _081A1572 +_081A1584: + cmp r1, 0x14 + beq _081A1594 + ldr r0, =gUnknown_085DCF2C + adds r0, r1, r0 + ldrb r1, [r0] + ldr r0, =0x00004010 + bl VarSet +_081A1594: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A150C + + thumb_func_start sub_81A15A4 +sub_81A15A4: @ 81A15A4 + push {lr} + ldr r2, =gUnknown_08610970 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xB0 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x32 + ldrb r2, [r0] + movs r1, 0 + ldr r3, =gUnknown_085DCEDC + ldrb r0, [r3] + cmp r0, r2 + beq _081A15D6 +_081A15C4: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x1D + bhi _081A15D6 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _081A15C4 +_081A15D6: + cmp r1, 0x1E + beq _081A15FC + ldr r0, =gUnknown_085DCF0E + adds r0, r1, r0 + ldrb r1, [r0] + ldr r0, =0x00004010 + bl VarSet + b _081A1628 + .pool +_081A15FC: + movs r1, 0 + ldr r3, =gUnknown_085DCEFA + ldrb r0, [r3] + cmp r0, r2 + beq _081A1618 +_081A1606: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x13 + bhi _081A1618 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _081A1606 +_081A1618: + cmp r1, 0x14 + beq _081A1628 + ldr r0, =gUnknown_085DCF2C + adds r0, r1, r0 + ldrb r1, [r0] + ldr r0, =0x00004010 + bl VarSet +_081A1628: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A15A4 + + thumb_func_start sub_81A1638 +sub_81A1638: @ 81A1638 + ldr r1, =gSpecialVar_0x8004 + movs r0, 0x1 + strh r0, [r1] + bx lr + .pool + thumb_func_end sub_81A1638 + + thumb_func_start sub_81A1644 +sub_81A1644: @ 81A1644 + ldr r1, =gSpecialVar_0x8004 + movs r0, 0x1 + strh r0, [r1] + bx lr + .pool + thumb_func_end sub_81A1644 + + thumb_func_start sub_81A1650 +sub_81A1650: @ 81A1650 + push {lr} + movs r2, 0x58 + muls r2, r0 + ldr r0, =gUnknown_08610970 + adds r2, r0 + subs r0, r1, 0x1 + cmp r0, 0x6 + bhi _081A16AC + lsls r0, 2 + ldr r1, =_081A1674 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081A1674: + .4byte _081A1690 + .4byte _081A1694 + .4byte _081A169A + .4byte _081A16A0 + .4byte _081A16A6 + .4byte _081A16AC + .4byte _081A16AC +_081A1690: + adds r0, r2, 0 + b _081A16B0 +_081A1694: + adds r0, r2, 0 + adds r0, 0x8 + b _081A16B0 +_081A169A: + adds r0, r2, 0 + adds r0, 0x10 + b _081A16B0 +_081A16A0: + adds r0, r2, 0 + adds r0, 0x18 + b _081A16B0 +_081A16A6: + adds r0, r2, 0 + adds r0, 0x20 + b _081A16B0 +_081A16AC: + adds r0, r2, 0 + adds r0, 0x28 +_081A16B0: + pop {r1} + bx r1 + thumb_func_end sub_81A1650 + + thumb_func_start sub_81A16B4 +sub_81A16B4: @ 81A16B4 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _081A16CE + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081A16D4 +_081A16CE: + adds r0, r2, 0 + bl SwitchTaskToFollowupFunc +_081A16D4: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A16B4 + + thumb_func_start sub_81A16DC +sub_81A16DC: @ 81A16DC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _081A16F6 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081A1718 +_081A16F6: + ldr r2, =gUnknown_030062F4 + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x8] + movs r3, 0xA + ldrsh r0, [r0, r3] + lsls r0, 16 + orrs r1, r0 + str r1, [r2] + bl _call_via_r1 + adds r0, r4, 0 + bl DestroyTask +_081A1718: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A16DC + + thumb_func_start sub_81A172C +sub_81A172C: @ 81A172C + push {r4,lr} + adds r4, r0, 0 + ldr r0, =sub_81A16DC + 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 + strh r4, [r1, 0x8] + lsrs r4, 16 + strh r4, [r1, 0xA] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A172C + + thumb_func_start sub_81A175C +sub_81A175C: @ 81A175C + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, =sub_81A16B4 + adds r0, r4, 0 + movs r1, 0x1 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + adds r1, r4, 0 + adds r2, r5, 0 + bl SetTaskFuncWithFollowupFunc + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A175C + + thumb_func_start sub_81A1780 +sub_81A1780: @ 81A1780 + push {lr} + ldr r1, =gUnknown_08611C18 + ldr r0, =gSpecialVar_0x8004 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A1780 + + thumb_func_start sub_81A17A0 +sub_81A17A0: @ 81A17A0 + push {lr} + movs r0, 0x80 + lsls r0, 7 + movs r1, 0xFF + bl VarSet + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000ca8 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x4 + bhi _081A1822 + lsls r0, 2 + ldr r1, =_081A17D0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081A17D0: + .4byte _081A1822 + .4byte _081A17E4 + .4byte _081A1810 + .4byte _081A17EC + .4byte _081A17E8 +_081A17E4: + movs r0, 0 + b _081A17EE +_081A17E8: + movs r0, 0 + b _081A17EE +_081A17EC: + movs r0, 0x1 +_081A17EE: + bl sub_813A878 + movs r0, 0x80 + lsls r0, 7 + ldr r1, =gSaveBlock2Ptr + ldr r1, [r1] + ldr r2, =0x00000ca8 + adds r1, r2 + ldrb r1, [r1] + bl VarSet + b _081A1822 + .pool +_081A1810: + movs r0, 0x80 + lsls r0, 7 + ldr r1, =gSaveBlock2Ptr + ldr r1, [r1] + ldr r2, =0x00000ca8 + adds r1, r2 + ldrb r1, [r1] + bl VarSet +_081A1822: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A17A0 + + thumb_func_start sub_81A1830 +sub_81A1830: @ 81A1830 + push {r4-r6,lr} + ldr r0, =0x000040cf + bl VarGet + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r6, 0 + bl sub_81A3B30 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bne _081A184C + movs r5, 0x1 +_081A184C: + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0x7 + bls _081A1856 + b _081A1956 +_081A1856: + lsls r0, 2 + ldr r1, =_081A186C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081A186C: + .4byte _081A188C + .4byte _081A18A8 + .4byte _081A18C8 + .4byte _081A18E4 + .4byte _081A1956 + .4byte _081A1900 + .4byte _081A1918 + .4byte _081A1938 +_081A188C: + ldr r1, =gScriptResult + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r2, =0x00000ca8 + adds r0, r2 + ldrb r0, [r0] + strh r0, [r1] + b _081A1956 + .pool +_081A18A8: + ldr r1, =gScriptResult + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r2, =0x00000ca9 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 30 + strh r0, [r1] + b _081A1956 + .pool +_081A18C8: + ldr r1, =gScriptResult + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r2, =0x00000cb2 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1] + b _081A1956 + .pool +_081A18E4: + ldr r1, =gScriptResult + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r2, =0x00000ca9 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 29 + b _081A1926 + .pool +_081A1900: + ldr r2, =gScriptResult + ldr r1, =gBattleOutcome + ldrb r0, [r1] + strh r0, [r2] + movs r0, 0 + strb r0, [r1] + b _081A1956 + .pool +_081A1918: + ldr r1, =gScriptResult + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r2, =0x00000ca9 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 28 +_081A1926: + lsrs r0, 31 + strh r0, [r1] + b _081A1956 + .pool +_081A1938: + ldr r4, =gScriptResult + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + movs r0, 0xD0 + lsls r0, 4 + adds r2, r0 + ldr r3, =gUnknown_08611BFC + lsls r0, r5, 1 + lsls r1, r6, 2 + adds r0, r1 + adds r0, r3 + ldrh r1, [r2] + ldrh r0, [r0] + ands r0, r1 + strh r0, [r4] +_081A1956: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A1830 + + thumb_func_start sub_81A1968 +sub_81A1968: @ 81A1968 + push {r4,r5,lr} + ldr r0, =0x000040cf + bl VarGet + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + bl sub_81A3B30 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bne _081A1984 + movs r4, 0x1 +_081A1984: + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0x7 + bls _081A198E + b _081A1AC4 +_081A198E: + lsls r0, 2 + ldr r1, =_081A19A4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081A19A4: + .4byte _081A19C4 + .4byte _081A19E0 + .4byte _081A1A0C + .4byte _081A1A28 + .4byte _081A1A50 + .4byte _081A1AC4 + .4byte _081A1A7C + .4byte _081A1AA8 +_081A19C4: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =gSpecialVar_0x8006 + ldrh r1, [r1] + ldr r2, =0x00000ca8 + adds r0, r2 + strb r1, [r0] + b _081A1AC4 + .pool +_081A19E0: + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldr r0, =gSpecialVar_0x8006 + ldrb r0, [r0] + ldr r1, =0x00000ca9 + adds r2, r1 + movs r1, 0x3 + ands r1, r0 + ldrb r3, [r2] + movs r0, 0x4 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + b _081A1AC4 + .pool +_081A1A0C: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =gSpecialVar_0x8006 + ldrh r1, [r1] + ldr r2, =0x00000cb2 + adds r0, r2 + strh r1, [r0] + b _081A1AC4 + .pool +_081A1A28: + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + ldr r0, =gSpecialVar_0x8006 + ldrb r0, [r0] + ldr r1, =0x00000ca9 + adds r3, r1 + movs r1, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + b _081A1A94 + .pool +_081A1A50: + movs r2, 0 + ldr r5, =gSaveBlock2Ptr + ldr r4, =0x00000caa + ldr r3, =gUnknown_0203CEF8 +_081A1A58: + ldr r1, [r5] + lsls r0, r2, 1 + adds r1, r4 + adds r1, r0 + adds r0, r2, r3 + ldrb r0, [r0] + strh r0, [r1] + adds r2, 0x1 + cmp r2, 0x3 + ble _081A1A58 + b _081A1AC4 + .pool +_081A1A7C: + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + ldr r0, =gSpecialVar_0x8006 + ldrb r0, [r0] + ldr r2, =0x00000ca9 + adds r3, r2 + movs r1, 0x1 + ands r1, r0 + lsls r1, 3 + ldrb r2, [r3] + movs r0, 0x9 + negs r0, r0 +_081A1A94: + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _081A1AC4 + .pool +_081A1AA8: + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + movs r0, 0xD0 + lsls r0, 4 + adds r2, r0 + ldr r3, =gUnknown_08611BFC + lsls r1, r4, 1 + lsls r0, r5, 2 + adds r1, r0 + adds r1, r3 + ldrh r0, [r2] + ldrh r1, [r1] + orrs r0, r1 + strh r0, [r2] +_081A1AC4: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A1968 + + thumb_func_start sub_81A1AD4 +sub_81A1AD4: @ 81A1AD4 + push {r4-r7,lr} + bl sub_81B8558 + movs r3, 0 + ldr r4, =gSpecialVar_0x8005 + ldrh r0, [r4] + cmp r3, r0 + bge _081A1B00 + ldr r7, =gUnknown_0203CEF8 + ldr r6, =gSaveBlock2Ptr + ldr r5, =0x00000caa +_081A1AEA: + adds r2, r3, r7 + ldr r0, [r6] + lsls r1, r3, 1 + adds r0, r5 + adds r0, r1 + ldrh r0, [r0] + strb r0, [r2] + adds r3, 0x1 + ldrh r0, [r4] + cmp r3, r0 + blt _081A1AEA +_081A1B00: + bl sub_80F94E8 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A1AD4 + + thumb_func_start sub_81A1B1C +sub_81A1B1C: @ 81A1B1C + push {lr} + bl DoSoftReset + pop {r0} + bx r0 + thumb_func_end sub_81A1B1C + + thumb_func_start sub_81A1B28 +sub_81A1B28: @ 81A1B28 + ldr r1, =gUnknown_0203BC88 + ldr r0, =gBattleFrontierTrainers + str r0, [r1] + bx lr + .pool + thumb_func_end sub_81A1B28 + + thumb_func_start sub_81A1B38 +sub_81A1B38: @ 81A1B38 + push {r4,r5,lr} + movs r4, 0 + movs r5, 0x64 +_081A1B3E: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + lsls r1, r4, 1 + ldr r2, =0x00000caa + adds r0, r2 + adds r1, r0, r1 + ldrh r0, [r1] + subs r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x5 + bhi _081A1B76 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldrh r1, [r1] + subs r1, 0x1 + muls r1, r5 + adds r0, r1 + movs r1, 0x8E + lsls r1, 2 + adds r0, r1 + ldr r2, =gPlayerParty + adds r1, r4, 0 + muls r1, r5 + adds r1, r2 + movs r2, 0x64 + bl memcpy +_081A1B76: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _081A1B3E + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A1B38 + + thumb_func_start sub_81A1B98 +sub_81A1B98: @ 81A1B98 + push {lr} + ldr r0, =gSpecialVar_0x8006 + ldrh r1, [r0] + adds r2, r0, 0 + cmp r1, 0x3 + bls _081A1BA8 + movs r0, 0 + strh r0, [r2] +_081A1BA8: + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0x7 + bhi _081A1C1E + lsls r0, 2 + ldr r1, =_081A1BC8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081A1BC8: + .4byte _081A1BE8 + .4byte _081A1BF0 + .4byte _081A1BF8 + .4byte _081A1C0E + .4byte _081A1C06 + .4byte _081A1C00 + .4byte _081A1C14 + .4byte _081A1C1A +_081A1BE8: + ldrb r0, [r2] + bl sub_81A1EA8 + b _081A1C1E +_081A1BF0: + ldrb r0, [r2] + bl sub_81A2134 + b _081A1C1E +_081A1BF8: + ldrb r0, [r2] + bl sub_81A2460 + b _081A1C1E +_081A1C00: + bl sub_81A2698 + b _081A1C1E +_081A1C06: + ldrb r0, [r2] + bl sub_81A2C94 + b _081A1C1E +_081A1C0E: + bl sub_81A2968 + b _081A1C1E +_081A1C14: + bl sub_81A2F38 + b _081A1C1E +_081A1C1A: + bl sub_81A2FF8 +_081A1C1E: + pop {r0} + bx r0 + thumb_func_end sub_81A1B98 + + thumb_func_start sub_81A1C24 +sub_81A1C24: @ 81A1C24 + push {lr} + ldr r1, =gSaveBlock2Ptr + ldr r1, [r1] + ldr r2, =0x00000cdc + adds r1, r2 + ldr r1, [r1] + ands r1, r0 + cmp r1, 0 + bne _081A1C44 + movs r0, 0 + b _081A1C46 + .pool +_081A1C44: + movs r0, 0x1 +_081A1C46: + pop {r1} + bx r1 + thumb_func_end sub_81A1C24 + + thumb_func_start sub_81A1C4C +sub_81A1C4C: @ 81A1C4C + push {r4,r5,lr} + sub sp, 0xC + adds r4, r0, 0 + adds r5, r1, 0 + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0xE0 + bl GetStringCenterAlignXOffset + adds r3, r0, 0 + lsls r0, r5, 3 + adds r5, r0, 0x1 + ldr r0, =gUnknown_0203AB74 + ldrb r0, [r0] + lsls r3, 24 + lsrs r3, 24 + lsls r1, r5, 24 + lsrs r1, 24 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x1 + adds r2, r4, 0 + bl Print + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A1C4C + + thumb_func_start sub_81A1C90 +sub_81A1C90: @ 81A1C90 + push {r4,lr} + sub sp, 0x34 + adds r2, r0, 0 + ldr r3, =gUnknown_0203AB74 + movs r1, 0xAE + mov r0, sp + adds r0, 0x2F +_081A1C9E: + strb r1, [r0] + subs r0, 0x1 + add r4, sp, 0xC + cmp r0, r4 + bge _081A1C9E + add r1, sp, 0x30 + movs r0, 0xFF + strb r0, [r1] + lsls r0, r2, 3 + adds r2, r0, 0x1 + ldrb r0, [r3] + lsls r1, r2, 24 + lsrs r1, 24 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x1 + adds r2, r4, 0 + movs r3, 0x4 + bl Print + add sp, 0x34 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A1C90 + + thumb_func_start sub_81A1CD8 +sub_81A1CD8: @ 81A1CD8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + adds r5, r0, 0 + adds r4, r2, 0 + ldr r0, [sp, 0x30] + lsls r1, 16 + lsrs r6, r1, 16 + lsls r4, 24 + lsrs r4, 24 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0xC] + lsls r0, 24 + lsrs r0, 24 + adds r7, r0, 0 + ldr r0, =gUnknown_0203AB74 + mov r10, r0 + ldrb r0, [r0] + str r7, [sp] + movs r1, 0xFF + mov r9, r1 + str r1, [sp, 0x4] + movs r1, 0 + mov r8, r1 + str r1, [sp, 0x8] + movs r1, 0x1 + adds r2, r5, 0 + adds r3, r4, 0 + bl Print + ldr r0, =0x0000270f + cmp r6, r0 + bls _081A1D24 + adds r6, r0, 0 +_081A1D24: + ldr r0, =gStringVar1 + adds r1, r6, 0 + movs r2, 0x1 + movs r3, 0x4 + bl ConvertIntToDecimalStringN + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085EE302 + adds r0, r4, 0 + bl StringExpandPlaceholders + mov r1, r10 + ldrb r0, [r1] + str r7, [sp] + mov r1, r9 + str r1, [sp, 0x4] + mov r1, r8 + str r1, [sp, 0x8] + movs r1, 0x1 + adds r2, r4, 0 + ldr r3, [sp, 0xC] + bl Print + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A1CD8 + + thumb_func_start sub_81A1D78 +sub_81A1D78: @ 81A1D78 + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, [sp, 0x10] + lsls r0, 24 + lsls r1, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r5, 24 + lsrs r5, 24 + ldr r4, =gSaveBlock2Ptr + ldr r4, [r4] + lsrs r1, 23 + lsrs r0, 22 + adds r1, r0 + movs r0, 0xCF + lsls r0, 4 + adds r4, r0 + adds r4, r1 + ldrh r1, [r4] + ldr r0, =gUnknown_085EE319 + str r5, [sp] + bl sub_81A1CD8 + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A1D78 + + thumb_func_start sub_81A1DBC +sub_81A1DBC: @ 81A1DBC + push {lr} + lsls r0, 24 + lsls r1, 24 + ldr r2, =gSaveBlock2Ptr + ldr r2, [r2] + lsrs r1, 23 + lsrs r0, 22 + adds r1, r0 + movs r0, 0xCE + lsls r0, 4 + adds r2, r0 + adds r2, r1 + ldrh r0, [r2] + ldr r1, =0x0000270f + cmp r0, r1 + bls _081A1DDE + adds r0, r1, 0 +_081A1DDE: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A1DBC + + thumb_func_start sub_81A1DEC +sub_81A1DEC: @ 81A1DEC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + ldr r4, [sp, 0x20] + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + lsls r3, 24 + lsrs r3, 24 + mov r9, r3 + lsls r4, 24 + lsrs r7, r4, 24 + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_81A1DBC + lsls r0, 16 + lsrs r4, r0, 16 + cmp r5, 0x1 + beq _081A1E38 + cmp r5, 0x1 + ble _081A1E2C + cmp r5, 0x2 + beq _081A1E48 + cmp r5, 0x3 + beq _081A1E58 +_081A1E2C: + cmp r6, 0 + beq _081A1E34 + movs r0, 0x2 + b _081A1E66 +_081A1E34: + movs r0, 0x1 + b _081A1E66 +_081A1E38: + cmp r6, 0 + beq _081A1E42 + movs r0, 0x80 + lsls r0, 8 + b _081A1E66 +_081A1E42: + movs r0, 0x80 + lsls r0, 7 + b _081A1E66 +_081A1E48: + cmp r6, 0 + beq _081A1E52 + movs r0, 0x80 + lsls r0, 10 + b _081A1E66 +_081A1E52: + movs r0, 0x80 + lsls r0, 9 + b _081A1E66 +_081A1E58: + cmp r6, 0 + beq _081A1E62 + movs r0, 0x80 + lsls r0, 12 + b _081A1E66 +_081A1E62: + movs r0, 0x80 + lsls r0, 11 +_081A1E66: + bl sub_81A1C24 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081A1E88 + ldr r0, =gUnknown_085EE311 + str r7, [sp] + adds r1, r4, 0 + mov r2, r8 + mov r3, r9 + bl sub_81A1CD8 + b _081A1E96 + .pool +_081A1E88: + ldr r0, =gUnknown_085EE320 + str r7, [sp] + adds r1, r4, 0 + mov r2, r8 + mov r3, r9 + bl sub_81A1CD8 +_081A1E96: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A1DEC + + thumb_func_start sub_81A1EA8 +sub_81A1EA8: @ 81A1EA8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0xC + lsls r0, 24 + lsrs r7, r0, 24 + ldr r4, =gUnknown_0203AB74 + ldr r0, =gUnknown_08611C74 + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r1, 0 + bl sub_81973FC + ldrb r0, [r4] + movs r1, 0x11 + bl FillWindowPixelBuffer + cmp r7, 0 + bne _081A1EF0 + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085EE158 + bl StringExpandPlaceholders + b _081A1F28 + .pool +_081A1EF0: + cmp r7, 0x1 + bne _081A1F08 + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085EE178 + bl StringExpandPlaceholders + b _081A1F28 + .pool +_081A1F08: + cmp r7, 0x2 + bne _081A1F20 + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085EE198 + bl StringExpandPlaceholders + b _081A1F28 + .pool +_081A1F20: + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085EE1B7 + bl StringExpandPlaceholders +_081A1F28: + ldr r0, =gStringVar4 + movs r1, 0x2 + bl sub_81A1C4C + ldr r6, =gUnknown_0203AB74 + ldrb r0, [r6] + ldr r2, =gUnknown_085EE2F2 + movs r1, 0x31 + mov r8, r1 + str r1, [sp] + movs r5, 0xFF + str r5, [sp, 0x4] + movs r4, 0 + str r4, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x10 + bl Print + ldrb r0, [r6] + ldr r2, =gUnknown_085EE2F9 + movs r1, 0x61 + mov r9, r1 + str r1, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x10 + bl Print + movs r0, 0xA + bl sub_81A1C90 + mov r0, r8 + str r0, [sp] + adds r0, r7, 0 + movs r1, 0 + movs r2, 0x48 + movs r3, 0x84 + bl sub_81A1DEC + movs r0, 0x41 + str r0, [sp] + adds r0, r7, 0 + movs r1, 0 + movs r2, 0x48 + movs r3, 0x84 + bl sub_81A1D78 + mov r1, r9 + str r1, [sp] + adds r0, r7, 0 + movs r1, 0x1 + movs r2, 0x48 + movs r3, 0x84 + bl sub_81A1DEC + movs r0, 0x71 + str r0, [sp] + adds r0, r7, 0 + movs r1, 0x1 + movs r2, 0x48 + movs r3, 0x84 + bl sub_81A1D78 + ldrb r0, [r6] + bl PutWindowTilemap + ldrb r0, [r6] + movs r1, 0x3 + bl CopyWindowToVram + add sp, 0xC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A1EA8 + + thumb_func_start sub_81A1FD8 +sub_81A1FD8: @ 81A1FD8 + push {lr} + lsls r0, 24 + lsls r1, 24 + ldr r2, =gSaveBlock2Ptr + ldr r2, [r2] + lsrs r1, 23 + lsrs r0, 22 + adds r1, r0 + ldr r0, =0x00000d0c + adds r2, r0 + adds r2, r1 + ldrh r0, [r2] + ldr r1, =0x0000270f + cmp r0, r1 + bls _081A1FF8 + adds r0, r1, 0 +_081A1FF8: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A1FD8 + + thumb_func_start sub_81A2008 +sub_81A2008: @ 81A2008 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + mov r12, r0 + adds r7, r1, 0 + adds r4, r2, 0 + ldr r6, [sp, 0x2C] + ldr r5, [sp, 0x30] + lsls r4, 16 + lsrs r4, 16 + lsls r3, 24 + lsrs r3, 24 + lsls r6, 24 + lsrs r6, 24 + lsls r5, 24 + lsrs r5, 24 + ldr r0, =gUnknown_0203AB74 + mov r10, r0 + ldrb r0, [r0] + str r5, [sp] + movs r1, 0xFF + mov r9, r1 + str r1, [sp, 0x4] + movs r1, 0 + mov r8, r1 + str r1, [sp, 0x8] + movs r1, 0x1 + mov r2, r12 + bl Print + ldr r0, =gStringVar1 + adds r1, r4, 0 + movs r2, 0x1 + movs r3, 0x4 + bl ConvertIntToDecimalStringN + ldr r4, =gStringVar4 + adds r0, r4, 0 + adds r1, r7, 0 + bl StringExpandPlaceholders + mov r1, r10 + ldrb r0, [r1] + str r5, [sp] + mov r1, r9 + str r1, [sp, 0x4] + mov r1, r8 + str r1, [sp, 0x8] + movs r1, 0x1 + adds r2, r4, 0 + adds r3, r6, 0 + bl Print + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A2008 + + thumb_func_start sub_81A2094 +sub_81A2094: @ 81A2094 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + ldr r4, [sp, 0x24] + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + lsls r3, 24 + lsrs r7, r3, 24 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_81A1FD8 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r5, 0 + beq _081A20CC + cmp r5, 0x1 + beq _081A20D8 +_081A20CC: + cmp r6, 0 + beq _081A20D4 + movs r0, 0x8 + b _081A20E6 +_081A20D4: + movs r0, 0x4 + b _081A20E6 +_081A20D8: + cmp r6, 0 + beq _081A20E2 + movs r0, 0x80 + lsls r0, 14 + b _081A20E6 +_081A20E2: + movs r0, 0x80 + lsls r0, 13 +_081A20E6: + bl sub_81A1C24 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081A210C + ldr r0, =gUnknown_085EE311 + ldr r1, =gUnknown_085EE338 + str r7, [sp] + str r4, [sp, 0x4] + mov r2, r8 + mov r3, r9 + bl sub_81A2008 + b _081A211C + .pool +_081A210C: + ldr r0, =gUnknown_085EE320 + ldr r1, =gUnknown_085EE338 + str r7, [sp] + str r4, [sp, 0x4] + mov r2, r8 + mov r3, r9 + bl sub_81A2008 +_081A211C: + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A2094 + + thumb_func_start sub_81A2134 +sub_81A2134: @ 81A2134 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 24 + lsrs r7, r0, 24 + ldr r4, =gUnknown_0203AB74 + ldr r0, =gUnknown_08611C74 + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r1, 0 + bl sub_81973FC + ldrb r0, [r4] + movs r1, 0x11 + bl FillWindowPixelBuffer + cmp r7, 0 + bne _081A217C + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085EE1DB + bl StringExpandPlaceholders + b _081A2184 + .pool +_081A217C: + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085EE1FE + bl StringExpandPlaceholders +_081A2184: + ldr r0, =gStringVar4 + movs r1, 0 + bl sub_81A1C4C + ldr r1, =gUnknown_0203AB74 + ldrb r0, [r1] + ldr r2, =gUnknown_085EE2F2 + movs r6, 0x21 + str r6, [sp] + movs r5, 0xFF + str r5, [sp, 0x4] + movs r4, 0 + str r4, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x8 + bl Print + ldr r1, =gUnknown_0203AB74 + ldrb r0, [r1] + ldr r2, =gUnknown_085EE2F9 + movs r1, 0x61 + str r1, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x8 + bl Print + movs r0, 0xA + bl sub_81A1C90 + str r6, [sp] + adds r0, r7, 0 + movs r1, 0 + movs r2, 0x40 + movs r3, 0x79 + bl sub_81A2094 + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + lsls r5, r7, 2 + ldr r1, =0x00000d14 + adds r0, r1 + adds r0, r5 + ldrh r2, [r0] + movs r0, 0x79 + mov r9, r0 + str r0, [sp] + movs r0, 0x31 + str r0, [sp, 0x4] + ldr r0, =gUnknown_085EE319 + ldr r1, =gUnknown_085EE338 + movs r3, 0x40 + bl sub_81A2008 + ldr r1, =gUnknown_085EE332 + mov r10, r1 + ldr r0, =gUnknown_085EE349 + mov r8, r0 + ldr r0, [r4] + ldr r1, =0x00000d1c + adds r0, r1 + adds r0, r5 + ldrh r2, [r0] + movs r6, 0x70 + str r6, [sp] + movs r0, 0x41 + str r0, [sp, 0x4] + mov r0, r10 + mov r1, r8 + movs r3, 0x40 + bl sub_81A2008 + movs r0, 0x61 + str r0, [sp] + adds r0, r7, 0 + movs r1, 0x1 + movs r2, 0x40 + movs r3, 0x79 + bl sub_81A2094 + ldr r0, [r4] + ldr r1, =0x00000d16 + adds r0, r1 + adds r0, r5 + ldrh r2, [r0] + mov r0, r9 + str r0, [sp] + movs r0, 0x71 + str r0, [sp, 0x4] + ldr r0, =gUnknown_085EE319 + ldr r1, =gUnknown_085EE338 + movs r3, 0x40 + bl sub_81A2008 + ldr r0, [r4] + ldr r1, =0x00000d1e + adds r0, r1 + adds r0, r5 + ldrh r2, [r0] + str r6, [sp] + movs r0, 0x81 + str r0, [sp, 0x4] + mov r0, r10 + mov r1, r8 + movs r3, 0x40 + bl sub_81A2008 + ldr r1, =gUnknown_0203AB74 + ldrb r0, [r1] + bl PutWindowTilemap + ldr r1, =gUnknown_0203AB74 + ldrb r0, [r1] + movs r1, 0x3 + bl CopyWindowToVram + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A2134 + + thumb_func_start sub_81A22B8 +sub_81A22B8: @ 81A22B8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + adds r5, r0, 0 + adds r4, r2, 0 + ldr r0, [sp, 0x30] + lsls r1, 16 + lsrs r6, r1, 16 + lsls r4, 24 + lsrs r4, 24 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0xC] + lsls r0, 24 + lsrs r0, 24 + adds r7, r0, 0 + ldr r0, =gUnknown_0203AB74 + mov r10, r0 + ldrb r0, [r0] + str r7, [sp] + movs r1, 0xFF + mov r9, r1 + str r1, [sp, 0x4] + movs r1, 0 + mov r8, r1 + str r1, [sp, 0x8] + movs r1, 0x1 + adds r2, r5, 0 + adds r3, r4, 0 + bl Print + ldr r0, =0x0000270f + cmp r6, r0 + bls _081A2304 + adds r6, r0, 0 +_081A2304: + ldr r0, =gStringVar1 + adds r1, r6, 0 + movs r2, 0x1 + movs r3, 0x4 + bl ConvertIntToDecimalStringN + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085EE302 + adds r0, r4, 0 + bl StringExpandPlaceholders + mov r1, r10 + ldrb r0, [r1] + str r7, [sp] + mov r1, r9 + str r1, [sp, 0x4] + mov r1, r8 + str r1, [sp, 0x8] + movs r1, 0x1 + adds r2, r4, 0 + ldr r3, [sp, 0xC] + bl Print + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A22B8 + + thumb_func_start sub_81A2358 +sub_81A2358: @ 81A2358 + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, [sp, 0x10] + lsls r0, 24 + lsls r1, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r5, 24 + lsrs r5, 24 + ldr r4, =gSaveBlock2Ptr + ldr r4, [r4] + lsrs r1, 23 + lsrs r0, 22 + adds r1, r0 + movs r0, 0xDD + lsls r0, 4 + adds r4, r0 + adds r4, r1 + ldrh r1, [r4] + ldr r0, =gUnknown_085EE319 + str r5, [sp] + bl sub_81A22B8 + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A2358 + + thumb_func_start sub_81A239C +sub_81A239C: @ 81A239C + push {lr} + lsls r0, 24 + lsls r1, 24 + ldr r2, =gSaveBlock2Ptr + ldr r2, [r2] + lsrs r1, 23 + lsrs r0, 22 + adds r1, r0 + ldr r0, =0x00000dc8 + adds r2, r0 + adds r2, r1 + ldrh r0, [r2] + ldr r1, =0x0000270f + cmp r0, r1 + bls _081A23BC + adds r0, r1, 0 +_081A23BC: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A239C + + thumb_func_start sub_81A23CC +sub_81A23CC: @ 81A23CC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + ldr r4, [sp, 0x20] + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + lsls r3, 24 + lsrs r3, 24 + mov r9, r3 + lsls r4, 24 + lsrs r7, r4, 24 + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_81A239C + lsls r0, 16 + lsrs r4, r0, 16 + cmp r5, 0 + beq _081A2404 + cmp r5, 0x1 + beq _081A2410 +_081A2404: + cmp r6, 0 + beq _081A240C + movs r0, 0x20 + b _081A241E +_081A240C: + movs r0, 0x10 + b _081A241E +_081A2410: + cmp r6, 0 + beq _081A241A + movs r0, 0x80 + lsls r0, 16 + b _081A241E +_081A241A: + movs r0, 0x80 + lsls r0, 15 +_081A241E: + bl sub_81A1C24 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081A2440 + ldr r0, =gUnknown_085EE311 + str r7, [sp] + adds r1, r4, 0 + mov r2, r8 + mov r3, r9 + bl sub_81A22B8 + b _081A244E + .pool +_081A2440: + ldr r0, =gUnknown_085EE320 + str r7, [sp] + adds r1, r4, 0 + mov r2, r8 + mov r3, r9 + bl sub_81A22B8 +_081A244E: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A23CC + + thumb_func_start sub_81A2460 +sub_81A2460: @ 81A2460 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0xC + lsls r0, 24 + lsrs r7, r0, 24 + ldr r4, =gUnknown_0203AB74 + ldr r0, =gUnknown_08611C74 + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r1, 0 + bl sub_81973FC + ldrb r0, [r4] + movs r1, 0x11 + bl FillWindowPixelBuffer + cmp r7, 0 + bne _081A24A8 + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085EE221 + bl StringExpandPlaceholders + b _081A24B0 + .pool +_081A24A8: + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085EE241 + bl StringExpandPlaceholders +_081A24B0: + ldr r0, =gStringVar4 + movs r1, 0x2 + bl sub_81A1C4C + ldr r6, =gUnknown_0203AB74 + ldrb r0, [r6] + ldr r2, =gUnknown_085EE2F2 + movs r1, 0x31 + mov r8, r1 + str r1, [sp] + movs r5, 0xFF + str r5, [sp, 0x4] + movs r4, 0 + str r4, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x10 + bl Print + ldrb r0, [r6] + ldr r2, =gUnknown_085EE2F9 + movs r1, 0x61 + mov r9, r1 + str r1, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x10 + bl Print + movs r0, 0xA + bl sub_81A1C90 + mov r0, r8 + str r0, [sp] + adds r0, r7, 0 + movs r1, 0 + movs r2, 0x48 + movs r3, 0x83 + bl sub_81A23CC + movs r0, 0x41 + str r0, [sp] + adds r0, r7, 0 + movs r1, 0 + movs r2, 0x48 + movs r3, 0x83 + bl sub_81A2358 + mov r1, r9 + str r1, [sp] + adds r0, r7, 0 + movs r1, 0x1 + movs r2, 0x48 + movs r3, 0x83 + bl sub_81A23CC + movs r0, 0x71 + str r0, [sp] + adds r0, r7, 0 + movs r1, 0x1 + movs r2, 0x48 + movs r3, 0x83 + bl sub_81A2358 + ldrb r0, [r6] + bl PutWindowTilemap + ldrb r0, [r6] + movs r1, 0x3 + bl CopyWindowToVram + add sp, 0xC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A2460 + + thumb_func_start sub_81A2560 +sub_81A2560: @ 81A2560 + push {lr} + lsls r0, 24 + ldr r1, =gSaveBlock2Ptr + ldr r1, [r1] + lsrs r0, 23 + ldr r2, =0x00000e04 + adds r1, r2 + adds r1, r0 + ldrh r0, [r1] + ldr r1, =0x0000270f + cmp r0, r1 + bls _081A257A + adds r0, r1, 0 +_081A257A: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A2560 + + thumb_func_start sub_81A258C +sub_81A258C: @ 81A258C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + mov r12, r0 + adds r7, r1, 0 + adds r4, r2, 0 + ldr r6, [sp, 0x2C] + ldr r5, [sp, 0x30] + lsls r4, 16 + lsrs r4, 16 + lsls r3, 24 + lsrs r3, 24 + lsls r6, 24 + lsrs r6, 24 + lsls r5, 24 + lsrs r5, 24 + ldr r0, =gUnknown_0203AB74 + mov r10, r0 + ldrb r0, [r0] + str r5, [sp] + movs r1, 0xFF + mov r9, r1 + str r1, [sp, 0x4] + movs r1, 0 + mov r8, r1 + str r1, [sp, 0x8] + movs r1, 0x1 + mov r2, r12 + bl Print + ldr r0, =gStringVar1 + adds r1, r4, 0 + movs r2, 0x1 + movs r3, 0x4 + bl ConvertIntToDecimalStringN + ldr r4, =gStringVar4 + adds r0, r4, 0 + adds r1, r7, 0 + bl StringExpandPlaceholders + mov r1, r10 + ldrb r0, [r1] + str r5, [sp] + mov r1, r9 + str r1, [sp, 0x4] + mov r1, r8 + str r1, [sp, 0x8] + movs r1, 0x1 + adds r2, r4, 0 + adds r3, r6, 0 + bl Print + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A258C + + thumb_func_start sub_81A2618 +sub_81A2618: @ 81A2618 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + lsls r2, 24 + lsrs r5, r2, 24 + lsls r3, 24 + lsrs r6, r3, 24 + adds r0, r4, 0 + bl sub_81A2560 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r4, 0 + beq _081A2648 + movs r0, 0x80 + lsls r0, 4 + b _081A264C +_081A2648: + movs r0, 0x80 + lsls r0, 3 +_081A264C: + bl sub_81A1C24 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081A2674 + ldr r0, =gUnknown_085EE311 + ldr r1, =gUnknown_085EE35B + str r5, [sp] + str r6, [sp, 0x4] + adds r2, r7, 0 + mov r3, r8 + bl sub_81A2008 + b _081A2684 + .pool +_081A2674: + ldr r0, =gUnknown_085EE320 + ldr r1, =gUnknown_085EE35B + str r5, [sp] + str r6, [sp, 0x4] + adds r2, r7, 0 + mov r3, r8 + bl sub_81A2008 +_081A2684: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A2618 + + thumb_func_start sub_81A2698 +sub_81A2698: @ 81A2698 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + ldr r6, =gUnknown_0203AB74 + ldr r0, =gUnknown_08611C74 + bl AddWindow + strb r0, [r6] + ldrb r0, [r6] + movs r1, 0 + bl sub_81973FC + ldrb r0, [r6] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085EE261 + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_81A1C4C + ldrb r0, [r6] + ldr r2, =gUnknown_085EE2F2 + movs r1, 0x21 + str r1, [sp] + movs r5, 0xFF + str r5, [sp, 0x4] + movs r4, 0 + str r4, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x8 + bl Print + ldrb r0, [r6] + ldr r2, =gUnknown_085EE2F9 + movs r1, 0x61 + str r1, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x8 + bl Print + movs r0, 0xA + bl sub_81A1C90 + movs r0, 0 + movs r1, 0x40 + movs r2, 0x72 + movs r3, 0x21 + bl sub_81A2618 + ldr r0, =gUnknown_085EE319 + mov r10, r0 + ldr r7, =gUnknown_085EE35B + ldr r5, =gSaveBlock2Ptr + ldr r0, [r5] + ldr r1, =0x00000e08 + adds r0, r1 + ldrh r2, [r0] + movs r4, 0x72 + str r4, [sp] + movs r0, 0x31 + str r0, [sp, 0x4] + mov r0, r10 + adds r1, r7, 0 + movs r3, 0x40 + bl sub_81A258C + ldr r0, =gUnknown_085EE332 + mov r8, r0 + ldr r1, =gUnknown_085EE36D + mov r9, r1 + ldr r0, [r5] + ldr r1, =0x00000e0c + adds r0, r1 + ldrh r2, [r0] + str r4, [sp] + movs r0, 0x41 + str r0, [sp, 0x4] + mov r0, r8 + mov r1, r9 + movs r3, 0x40 + bl sub_81A258C + movs r0, 0x1 + movs r1, 0x40 + movs r2, 0x72 + movs r3, 0x61 + bl sub_81A2618 + ldr r0, [r5] + ldr r1, =0x00000e0a + adds r0, r1 + ldrh r2, [r0] + str r4, [sp] + movs r0, 0x71 + str r0, [sp, 0x4] + mov r0, r10 + adds r1, r7, 0 + movs r3, 0x40 + bl sub_81A258C + ldr r0, [r5] + ldr r1, =0x00000e0e + adds r0, r1 + ldrh r2, [r0] + str r4, [sp] + movs r0, 0x81 + str r0, [sp, 0x4] + mov r0, r8 + mov r1, r9 + movs r3, 0x40 + bl sub_81A258C + ldrb r0, [r6] + bl PutWindowTilemap + ldrb r0, [r6] + movs r1, 0x3 + bl CopyWindowToVram + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A2698 + + thumb_func_start sub_81A27E8 +sub_81A27E8: @ 81A27E8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + adds r5, r0, 0 + adds r4, r2, 0 + ldr r0, [sp, 0x30] + lsls r1, 16 + lsrs r6, r1, 16 + lsls r4, 24 + lsrs r4, 24 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0xC] + lsls r0, 24 + lsrs r0, 24 + adds r7, r0, 0 + ldr r0, =gUnknown_0203AB74 + mov r10, r0 + ldrb r0, [r0] + str r7, [sp] + movs r1, 0xFF + mov r9, r1 + str r1, [sp, 0x4] + movs r1, 0 + mov r8, r1 + str r1, [sp, 0x8] + movs r1, 0x1 + adds r2, r5, 0 + adds r3, r4, 0 + bl Print + ldr r0, =0x0000270f + cmp r6, r0 + bls _081A2834 + adds r6, r0, 0 +_081A2834: + ldr r0, =gStringVar1 + adds r1, r6, 0 + movs r2, 0x1 + movs r3, 0x4 + bl ConvertIntToDecimalStringN + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085EE381 + adds r0, r4, 0 + bl StringExpandPlaceholders + mov r1, r10 + ldrb r0, [r1] + str r7, [sp] + mov r1, r9 + str r1, [sp, 0x4] + mov r1, r8 + str r1, [sp, 0x8] + movs r1, 0x1 + adds r2, r4, 0 + ldr r3, [sp, 0xC] + bl Print + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A27E8 + + thumb_func_start sub_81A2888 +sub_81A2888: @ 81A2888 + push {r4,r5,lr} + sub sp, 0x4 + adds r4, r1, 0 + adds r5, r2, 0 + lsls r0, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r3, 24 + lsrs r3, 24 + ldr r1, =gSaveBlock2Ptr + ldr r1, [r1] + lsrs r0, 23 + ldr r2, =0x00000dde + adds r1, r2 + adds r1, r0 + ldrh r1, [r1] + ldr r0, =gUnknown_085EE319 + str r3, [sp] + adds r2, r4, 0 + adds r3, r5, 0 + bl sub_81A27E8 + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A2888 + + thumb_func_start sub_81A28CC +sub_81A28CC: @ 81A28CC + push {lr} + lsls r0, 24 + ldr r1, =gSaveBlock2Ptr + ldr r1, [r1] + lsrs r0, 23 + ldr r2, =0x00000dda + adds r1, r2 + adds r1, r0 + ldrh r0, [r1] + ldr r1, =0x0000270f + cmp r0, r1 + bls _081A28E6 + adds r0, r1, 0 +_081A28E6: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A28CC + + thumb_func_start sub_81A28F8 +sub_81A28F8: @ 81A28F8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + lsls r3, 24 + lsrs r6, r3, 24 + adds r0, r4, 0 + bl sub_81A28CC + lsls r0, 16 + lsrs r5, r0, 16 + cmp r4, 0 + beq _081A2926 + movs r0, 0x80 + b _081A2928 +_081A2926: + movs r0, 0x40 +_081A2928: + bl sub_81A1C24 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081A2948 + ldr r0, =gUnknown_085EE311 + str r6, [sp] + adds r1, r5, 0 + adds r2, r7, 0 + mov r3, r8 + bl sub_81A27E8 + b _081A2956 + .pool +_081A2948: + ldr r0, =gUnknown_085EE320 + str r6, [sp] + adds r1, r5, 0 + adds r2, r7, 0 + mov r3, r8 + bl sub_81A27E8 +_081A2956: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A28F8 + + thumb_func_start sub_81A2968 +sub_81A2968: @ 81A2968 + push {r4-r6,lr} + sub sp, 0xC + ldr r5, =gUnknown_0203AB74 + ldr r0, =gUnknown_08611C74 + bl AddWindow + strb r0, [r5] + ldrb r0, [r5] + movs r1, 0 + bl sub_81973FC + ldrb r0, [r5] + movs r1, 0x11 + bl FillWindowPixelBuffer + movs r0, 0xA + bl sub_81A1C90 + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085EE27C + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x2 + bl sub_81A1C4C + ldrb r0, [r5] + ldr r2, =gUnknown_085EE2F2 + movs r1, 0x31 + str r1, [sp] + movs r6, 0xFF + str r6, [sp, 0x4] + movs r4, 0 + str r4, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x10 + bl Print + ldrb r0, [r5] + ldr r2, =gUnknown_085EE2F9 + movs r1, 0x61 + str r1, [sp] + str r6, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x10 + bl Print + movs r0, 0 + movs r1, 0x48 + movs r2, 0x7E + movs r3, 0x31 + bl sub_81A28F8 + movs r0, 0 + movs r1, 0x48 + movs r2, 0x7E + movs r3, 0x41 + bl sub_81A2888 + movs r0, 0x1 + movs r1, 0x48 + movs r2, 0x7E + movs r3, 0x61 + bl sub_81A28F8 + movs r0, 0x1 + movs r1, 0x48 + movs r2, 0x7E + movs r3, 0x71 + bl sub_81A2888 + ldrb r0, [r5] + bl PutWindowTilemap + ldrb r0, [r5] + movs r1, 0x3 + bl CopyWindowToVram + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A2968 + + thumb_func_start sub_81A2A28 +sub_81A2A28: @ 81A2A28 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + mov r12, r0 + ldr r4, [sp, 0x38] + ldr r5, [sp, 0x3C] + ldr r0, [sp, 0x40] + lsls r1, 16 + lsrs r7, r1, 16 + lsls r2, 16 + lsrs r2, 16 + str r2, [sp, 0xC] + lsls r3, 24 + lsrs r3, 24 + lsls r4, 24 + lsrs r4, 24 + str r4, [sp, 0x10] + lsls r5, 24 + lsrs r5, 24 + str r5, [sp, 0x14] + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + ldr r0, =gUnknown_0203AB74 + mov r10, r0 + ldrb r0, [r0] + str r6, [sp] + movs r1, 0xFF + mov r9, r1 + str r1, [sp, 0x4] + movs r1, 0 + mov r8, r1 + str r1, [sp, 0x8] + movs r1, 0x1 + mov r2, r12 + bl Print + ldr r0, =0x0000270f + cmp r7, r0 + bls _081A2A80 + adds r7, r0, 0 +_081A2A80: + ldr r5, =gStringVar1 + adds r0, r5, 0 + adds r1, r7, 0 + movs r2, 0x1 + movs r3, 0x4 + bl ConvertIntToDecimalStringN + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085EE302 + adds r0, r4, 0 + bl StringExpandPlaceholders + mov r1, r10 + ldrb r0, [r1] + str r6, [sp] + mov r1, r9 + str r1, [sp, 0x4] + mov r1, r8 + str r1, [sp, 0x8] + movs r1, 0x1 + adds r2, r4, 0 + ldr r3, [sp, 0x10] + bl Print + adds r0, r5, 0 + ldr r1, [sp, 0xC] + movs r2, 0x1 + movs r3, 0x4 + bl ConvertIntToDecimalStringN + ldr r1, =gUnknown_085EE392 + adds r0, r4, 0 + bl StringExpandPlaceholders + mov r1, r10 + ldrb r0, [r1] + str r6, [sp] + mov r1, r9 + str r1, [sp, 0x4] + mov r1, r8 + str r1, [sp, 0x8] + movs r1, 0x1 + adds r2, r4, 0 + ldr r3, [sp, 0x14] + bl Print + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A2A28 + + thumb_func_start sub_81A2B04 +sub_81A2B04: @ 81A2B04 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + adds r6, r2, 0 + ldr r4, [sp, 0x24] + ldr r5, [sp, 0x28] + lsls r0, 24 + lsls r1, 24 + lsls r6, 24 + lsrs r6, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + ldr r2, =gSaveBlock2Ptr + ldr r2, [r2] + lsrs r1, 23 + lsrs r0, 22 + adds r1, r0 + ldr r7, =0x00000dea + adds r0, r2, r7 + adds r0, r1 + ldrh r0, [r0] + mov r8, r0 + ldr r0, =0x00000dfa + adds r2, r0 + adds r2, r1 + ldrh r2, [r2] + ldr r0, =gUnknown_085EE319 + str r3, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + mov r1, r8 + adds r3, r6, 0 + bl sub_81A2A28 + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A2B04 + + thumb_func_start sub_81A2B70 +sub_81A2B70: @ 81A2B70 + push {lr} + lsls r0, 24 + lsls r1, 24 + ldr r2, =gSaveBlock2Ptr + ldr r2, [r2] + lsrs r1, 23 + lsrs r0, 22 + adds r1, r0 + ldr r0, =0x00000de2 + adds r2, r0 + adds r2, r1 + ldrh r0, [r2] + ldr r1, =0x0000270f + cmp r0, r1 + bls _081A2B90 + adds r0, r1, 0 +_081A2B90: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A2B70 + + thumb_func_start sub_81A2BA0 +sub_81A2BA0: @ 81A2BA0 + push {lr} + lsls r0, 24 + lsls r1, 24 + ldr r2, =gSaveBlock2Ptr + ldr r2, [r2] + lsrs r1, 23 + lsrs r0, 22 + adds r1, r0 + ldr r0, =0x00000df2 + adds r2, r0 + adds r2, r1 + ldrh r0, [r2] + ldr r1, =0x0000270f + cmp r0, r1 + bls _081A2BC0 + adds r0, r1, 0 +_081A2BC0: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A2BA0 + + thumb_func_start sub_81A2BD0 +sub_81A2BD0: @ 81A2BD0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + ldr r4, [sp, 0x30] + ldr r5, [sp, 0x34] + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0xC] + lsls r3, 24 + lsrs r3, 24 + mov r8, r3 + lsls r4, 24 + lsrs r4, 24 + mov r9, r4 + lsls r5, 24 + lsrs r5, 24 + mov r10, r5 + adds r0, r6, 0 + adds r1, r7, 0 + bl sub_81A2B70 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r6, 0 + adds r1, r7, 0 + bl sub_81A2BA0 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r6, 0 + beq _081A2C20 + cmp r6, 0x1 + beq _081A2C30 +_081A2C20: + cmp r7, 0 + beq _081A2C2A + movs r0, 0x80 + lsls r0, 2 + b _081A2C3E +_081A2C2A: + movs r0, 0x80 + lsls r0, 1 + b _081A2C3E +_081A2C30: + cmp r7, 0 + beq _081A2C3A + movs r0, 0x80 + lsls r0, 18 + b _081A2C3E +_081A2C3A: + movs r0, 0x80 + lsls r0, 17 +_081A2C3E: + bl sub_81A1C24 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081A2C68 + ldr r0, =gUnknown_085EE311 + mov r1, r8 + str r1, [sp] + mov r1, r9 + str r1, [sp, 0x4] + mov r1, r10 + str r1, [sp, 0x8] + adds r1, r5, 0 + adds r2, r4, 0 + ldr r3, [sp, 0xC] + bl sub_81A2A28 + b _081A2C80 + .pool +_081A2C68: + ldr r0, =gUnknown_085EE320 + mov r1, r8 + str r1, [sp] + mov r1, r9 + str r1, [sp, 0x4] + mov r1, r10 + str r1, [sp, 0x8] + adds r1, r5, 0 + adds r2, r4, 0 + ldr r3, [sp, 0xC] + bl sub_81A2A28 +_081A2C80: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A2BD0 + + thumb_func_start sub_81A2C94 +sub_81A2C94: @ 81A2C94 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + lsls r0, 24 + lsrs r7, r0, 24 + ldr r4, =gUnknown_0203AB74 + ldr r0, =gUnknown_08611C74 + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r1, 0 + bl sub_81973FC + ldrb r0, [r4] + movs r1, 0x11 + bl FillWindowPixelBuffer + cmp r7, 0 + bne _081A2CD8 + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085EE298 + bl StringExpandPlaceholders + b _081A2CE0 + .pool +_081A2CD8: + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085EE2B8 + bl StringExpandPlaceholders +_081A2CE0: + ldr r0, =gStringVar4 + movs r1, 0 + bl sub_81A1C4C + ldr r0, =gUnknown_0203AB74 + mov r8, r0 + ldrb r0, [r0] + ldr r2, =gUnknown_085EE2F2 + movs r6, 0x21 + str r6, [sp] + movs r5, 0xFF + str r5, [sp, 0x4] + movs r4, 0 + str r4, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x8 + bl Print + mov r1, r8 + ldrb r0, [r1] + ldr r2, =gUnknown_085EE326 + str r6, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x98 + bl Print + mov r1, r8 + ldrb r0, [r1] + ldr r2, =gUnknown_085EE2F9 + movs r1, 0x61 + str r1, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x8 + bl Print + movs r0, 0xA + bl sub_81A1C90 + movs r4, 0x9E + str r4, [sp] + movs r0, 0x31 + str r0, [sp, 0x4] + adds r0, r7, 0 + movs r1, 0 + movs r2, 0x8 + movs r3, 0x40 + bl sub_81A2BD0 + str r4, [sp] + movs r0, 0x41 + str r0, [sp, 0x4] + adds r0, r7, 0 + movs r1, 0 + movs r2, 0x8 + movs r3, 0x40 + bl sub_81A2B04 + str r4, [sp] + movs r0, 0x71 + str r0, [sp, 0x4] + adds r0, r7, 0 + movs r1, 0x1 + movs r2, 0x8 + movs r3, 0x40 + bl sub_81A2BD0 + str r4, [sp] + movs r0, 0x81 + str r0, [sp, 0x4] + adds r0, r7, 0 + movs r1, 0x1 + movs r2, 0x8 + movs r3, 0x40 + bl sub_81A2B04 + mov r1, r8 + ldrb r0, [r1] + bl PutWindowTilemap + mov r1, r8 + ldrb r0, [r1] + movs r1, 0x3 + bl CopyWindowToVram + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A2C94 + + thumb_func_start sub_81A2DB4 +sub_81A2DB4: @ 81A2DB4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + adds r5, r0, 0 + adds r4, r2, 0 + ldr r0, [sp, 0x30] + lsls r1, 16 + lsrs r6, r1, 16 + lsls r4, 24 + lsrs r4, 24 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0xC] + lsls r0, 24 + lsrs r0, 24 + adds r7, r0, 0 + ldr r0, =gUnknown_0203AB74 + mov r10, r0 + ldrb r0, [r0] + str r7, [sp] + movs r1, 0xFF + mov r9, r1 + str r1, [sp, 0x4] + movs r1, 0 + mov r8, r1 + str r1, [sp, 0x8] + movs r1, 0x1 + adds r2, r5, 0 + adds r3, r4, 0 + bl Print + ldr r0, =0x0000270f + cmp r6, r0 + bls _081A2E00 + adds r6, r0, 0 +_081A2E00: + ldr r0, =gStringVar1 + adds r1, r6, 0 + movs r2, 0x1 + movs r3, 0x4 + bl ConvertIntToDecimalStringN + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085EE39C + adds r0, r4, 0 + bl StringExpandPlaceholders + mov r1, r10 + ldrb r0, [r1] + str r7, [sp] + mov r1, r9 + str r1, [sp, 0x4] + mov r1, r8 + str r1, [sp, 0x8] + movs r1, 0x1 + adds r2, r4, 0 + ldr r3, [sp, 0xC] + bl Print + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A2DB4 + + thumb_func_start sub_81A2E54 +sub_81A2E54: @ 81A2E54 + push {r4,r5,lr} + sub sp, 0x4 + adds r4, r1, 0 + adds r5, r2, 0 + lsls r0, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r3, 24 + lsrs r3, 24 + ldr r1, =gSaveBlock2Ptr + ldr r1, [r1] + lsrs r0, 23 + ldr r2, =0x00000e1e + adds r1, r2 + adds r1, r0 + ldrh r1, [r1] + ldr r0, =gUnknown_085EE319 + str r3, [sp] + adds r2, r4, 0 + adds r3, r5, 0 + bl sub_81A2DB4 + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A2E54 + + thumb_func_start sub_81A2E98 +sub_81A2E98: @ 81A2E98 + push {lr} + lsls r0, 24 + ldr r1, =gSaveBlock2Ptr + ldr r1, [r1] + lsrs r0, 23 + ldr r2, =0x00000e1a + adds r1, r2 + adds r1, r0 + ldrh r0, [r1] + ldr r1, =0x0000270f + cmp r0, r1 + bls _081A2EB2 + adds r0, r1, 0 +_081A2EB2: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A2E98 + + thumb_func_start sub_81A2EC4 +sub_81A2EC4: @ 81A2EC4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + lsls r3, 24 + lsrs r6, r3, 24 + adds r0, r4, 0 + bl sub_81A2E98 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r4, 0 + beq _081A2EF4 + movs r0, 0x80 + lsls r0, 6 + b _081A2EF8 +_081A2EF4: + movs r0, 0x80 + lsls r0, 5 +_081A2EF8: + bl sub_81A1C24 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081A2F18 + ldr r0, =gUnknown_085EE311 + str r6, [sp] + adds r1, r5, 0 + adds r2, r7, 0 + mov r3, r8 + bl sub_81A2DB4 + b _081A2F26 + .pool +_081A2F18: + ldr r0, =gUnknown_085EE320 + str r6, [sp] + adds r1, r5, 0 + adds r2, r7, 0 + mov r3, r8 + bl sub_81A2DB4 +_081A2F26: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A2EC4 + + thumb_func_start sub_81A2F38 +sub_81A2F38: @ 81A2F38 + push {r4-r6,lr} + sub sp, 0xC + ldr r5, =gUnknown_0203AB74 + ldr r0, =gUnknown_08611C74 + bl AddWindow + strb r0, [r5] + ldrb r0, [r5] + movs r1, 0 + bl sub_81973FC + ldrb r0, [r5] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085EE2D8 + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x2 + bl sub_81A1C4C + ldrb r0, [r5] + ldr r2, =gUnknown_085EE2F2 + movs r1, 0x31 + str r1, [sp] + movs r6, 0xFF + str r6, [sp, 0x4] + movs r4, 0 + str r4, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x8 + bl Print + ldrb r0, [r5] + ldr r2, =gUnknown_085EE2F9 + movs r1, 0x61 + str r1, [sp] + str r6, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x8 + bl Print + movs r0, 0xA + bl sub_81A1C90 + movs r0, 0 + movs r1, 0x40 + movs r2, 0x6F + movs r3, 0x31 + bl sub_81A2EC4 + movs r0, 0 + movs r1, 0x40 + movs r2, 0x6F + movs r3, 0x41 + bl sub_81A2E54 + movs r0, 0x1 + movs r1, 0x40 + movs r2, 0x6F + movs r3, 0x61 + bl sub_81A2EC4 + movs r0, 0x1 + movs r1, 0x40 + movs r2, 0x6F + movs r3, 0x71 + bl sub_81A2E54 + ldrb r0, [r5] + bl PutWindowTilemap + ldrb r0, [r5] + movs r1, 0x3 + bl CopyWindowToVram + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A2F38 + + thumb_func_start sub_81A2FF8 +sub_81A2FF8: @ 81A2FF8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0xC + ldr r4, =gUnknown_0203AB74 + ldr r0, =gUnknown_08611C7C + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r1, 0 + bl sub_81973FC + ldrb r0, [r4] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r0, =gStringVar4 + mov r9, r0 + ldr r1, =gUnknown_085EDF86 + bl StringExpandPlaceholders + movs r0, 0x1 + mov r1, r9 + movs r2, 0xD0 + bl GetStringCenterAlignXOffset + adds r3, r0, 0 + ldrb r0, [r4] + lsls r3, 24 + lsrs r3, 24 + movs r1, 0x1 + str r1, [sp] + movs r6, 0xFF + str r6, [sp, 0x4] + movs r5, 0 + str r5, [sp, 0x8] + mov r2, r9 + bl Print + ldr r7, =gUnknown_085EDFA0 + movs r0, 0x1 + adds r1, r7, 0 + movs r2, 0x26 + bl GetStringRightAlignXOffset + adds r3, r0, 0 + adds r3, 0x32 + ldrb r0, [r4] + lsls r3, 24 + lsrs r3, 24 + movs r1, 0x19 + mov r8, r1 + str r1, [sp] + str r6, [sp, 0x4] + str r5, [sp, 0x8] + movs r1, 0x1 + adds r2, r7, 0 + bl Print + ldr r7, =gUnknown_085EDFA4 + movs r0, 0x1 + adds r1, r7, 0 + movs r2, 0x26 + bl GetStringRightAlignXOffset + adds r3, r0, 0 + adds r3, 0x58 + ldrb r0, [r4] + lsls r3, 24 + lsrs r3, 24 + mov r2, r8 + str r2, [sp] + str r6, [sp, 0x4] + str r5, [sp, 0x8] + movs r1, 0x1 + adds r2, r7, 0 + bl Print + ldr r7, =gUnknown_085EDFA8 + movs r0, 0x1 + adds r1, r7, 0 + movs r2, 0x26 + bl GetStringRightAlignXOffset + adds r3, r0, 0 + adds r3, 0x7E + ldrb r0, [r4] + lsls r3, 24 + lsrs r3, 24 + mov r1, r8 + str r1, [sp] + str r6, [sp, 0x4] + str r5, [sp, 0x8] + movs r1, 0x1 + adds r2, r7, 0 + bl Print + ldr r7, =gUnknown_085EDFAC + movs r0, 0x1 + adds r1, r7, 0 + movs r2, 0x26 + bl GetStringRightAlignXOffset + adds r3, r0, 0 + adds r3, 0xA4 + ldrb r0, [r4] + lsls r3, 24 + lsrs r3, 24 + mov r2, r8 + str r2, [sp] + str r6, [sp, 0x4] + str r5, [sp, 0x8] + movs r1, 0x1 + adds r2, r7, 0 + bl Print + ldrb r0, [r4] + ldr r2, =gUnknown_085EB0E8 + movs r1, 0x29 + str r1, [sp] + str r6, [sp, 0x4] + str r5, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x6 + bl Print + ldrb r0, [r4] + ldr r2, =gUnknown_085EB0ED + movs r1, 0x39 + str r1, [sp] + str r6, [sp, 0x4] + str r5, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x6 + bl Print + ldrb r0, [r4] + ldr r2, =gUnknown_085EB0F4 + movs r1, 0x49 + str r1, [sp] + str r6, [sp, 0x4] + str r5, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x6 + bl Print + ldrb r0, [r4] + ldr r2, =gUnknown_085EB0F9 + movs r1, 0x59 + str r1, [sp] + str r6, [sp, 0x4] + str r5, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x6 + bl Print + ldrb r0, [r4] + ldr r2, =gUnknown_085EB0FF + movs r1, 0x69 + str r1, [sp] + str r6, [sp, 0x4] + str r5, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x6 + bl Print + movs r1, 0 +_081A314A: + movs r5, 0 + adds r0, r1, 0x1 + mov r8, r0 + lsls r0, r1, 28 + movs r2, 0xA4 + lsls r2, 22 + adds r0, r2 + lsrs r7, r0, 24 + lsls r4, r1, 3 +_081A315C: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000624 + adds r0, r1 + adds r0, r4 + ldrh r1, [r0] + mov r0, r9 + movs r2, 0x1 + movs r3, 0x4 + bl ConvertIntToDecimalStringN + ldr r6, =gUnknown_0203AB74 + ldrb r0, [r6] + movs r1, 0x26 + adds r3, r5, 0 + muls r3, r1 + adds r3, 0x40 + lsls r3, 24 + lsrs r3, 24 + str r7, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x1 + mov r2, r9 + bl Print + adds r4, 0x2 + adds r5, 0x1 + cmp r5, 0x3 + ble _081A315C + mov r1, r8 + cmp r1, 0x4 + ble _081A314A + ldrb r0, [r6] + bl PutWindowTilemap + ldrb r0, [r6] + movs r1, 0x3 + bl CopyWindowToVram + add sp, 0xC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A2FF8 + + thumb_func_start sub_81A31FC +sub_81A31FC: @ 81A31FC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + lsrs r7, r0, 30 + ldr r0, =0x000040cf + bl VarGet + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r4, 0x6 + bls _081A3232 + b _081A35CE +_081A3232: + lsls r0, r4, 2 + ldr r1, =_081A3250 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081A3250: + .4byte _081A326C + .4byte _081A33A8 + .4byte _081A3414 + .4byte _081A347C + .4byte _081A34CC + .4byte _081A354C + .4byte _081A3594 +_081A326C: + ldr r2, =gSaveBlock2Ptr + mov r9, r2 + ldr r0, [r2] + lsls r3, r7, 1 + mov r10, r3 + mov r2, r8 + lsls r1, r2, 2 + add r1, r10 + str r1, [sp, 0x20] + movs r3, 0xCE + lsls r3, 4 + adds r1, r0, r3 + ldr r2, [sp, 0x20] + adds r1, r2 + adds r3, 0x10 + adds r0, r3 + adds r0, r2 + ldrh r1, [r1] + ldrh r2, [r0] + cmp r1, r2 + bhi _081A3298 + b _081A35CE +_081A3298: + strh r1, [r0] + mov r3, r8 + cmp r3, 0x3 + bne _081A32F2 + ldr r6, =gBattleScripting + adds r6, 0x25 + ldrb r0, [r6] + movs r4, 0x1 + eors r0, r4 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + ldr r5, =gUnknown_020229F0 + adds r1, r5 + mov r0, sp + bl StringCopy + mov r0, sp + bl StripExtCtrlCodes + lsls r1, r7, 3 + ldr r0, =0x00000ee1 + adds r1, r0 + mov r2, r9 + ldr r0, [r2] + adds r0, r1 + mov r1, sp + bl StringCopy + ldrb r0, [r6] + eors r4, r0 + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + subs r5, 0x4 + adds r0, r5 + ldr r0, [r0] + lsls r2, r7, 2 + ldr r1, =0x00000ef1 + adds r2, r1 + mov r3, r9 + ldr r1, [r3] + adds r1, r2 + bl WriteUnalignedWord +_081A32F2: + mov r7, r9 + ldr r0, [r7] + movs r1, 0xCE + lsls r1, 4 + adds r0, r1 + ldr r2, [sp, 0x20] + adds r0, r2 + ldrh r0, [r0] + cmp r0, 0x1 + bhi _081A3308 + b _081A35CE +_081A3308: + bl sub_80EE818 + lsls r0, 24 + cmp r0, 0 + bne _081A3314 + b _081A35CE +_081A3314: + mov r3, r8 + cmp r3, 0x1 + beq _081A335A + cmp r3, 0x1 + bgt _081A3338 + cmp r3, 0 + beq _081A3344 + b _081A35CE + .pool +_081A3338: + mov r7, r8 + cmp r7, 0x2 + beq _081A3374 + cmp r7, 0x3 + beq _081A338E + b _081A35CE +_081A3344: + mov r1, r9 + ldr r0, [r1] + movs r2, 0xCE + lsls r2, 4 + adds r0, r2 + add r0, r10 + ldrh r0, [r0] + movs r1, 0x1 + bl sub_80EE8C8 + b _081A35CE +_081A335A: + mov r3, r9 + ldr r0, [r3] + mov r1, r10 + adds r1, 0x4 + movs r7, 0xCE + lsls r7, 4 + adds r0, r7 + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x2 + bl sub_80EE8C8 + b _081A35CE +_081A3374: + mov r1, r9 + ldr r0, [r1] + mov r1, r10 + adds r1, 0x8 + movs r2, 0xCE + lsls r2, 4 + adds r0, r2 + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x3 + bl sub_80EE8C8 + b _081A35CE +_081A338E: + mov r3, r9 + ldr r0, [r3] + mov r1, r10 + adds r1, 0xC + movs r7, 0xCE + lsls r7, 4 + adds r0, r7 + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x4 + bl sub_80EE8C8 + b _081A35CE +_081A33A8: + ldr r6, =gSaveBlock2Ptr + ldr r0, [r6] + lsls r7, 1 + mov r2, r8 + lsls r1, r2, 2 + adds r4, r7, r1 + ldr r5, =0x00000d0c + adds r1, r0, r5 + adds r1, r4 + ldr r3, =0x00000d14 + adds r0, r3 + adds r0, r4 + ldrh r2, [r1] + ldrh r3, [r0] + cmp r2, r3 + bhi _081A33CA + b _081A35CE +_081A33CA: + strh r2, [r0] + ldrh r0, [r1] + cmp r0, 0x1 + bhi _081A33D4 + b _081A35CE +_081A33D4: + bl sub_80EE818 + lsls r0, 24 + cmp r0, 0 + bne _081A33E0 + b _081A35CE +_081A33E0: + mov r0, r8 + cmp r0, 0 + bne _081A3404 + ldr r0, [r6] + adds r0, r5 + adds r0, r7 + ldrh r0, [r0] + movs r1, 0x5 + bl sub_80EE8C8 + b _081A35CE + .pool +_081A3404: + ldr r0, [r6] + adds r0, r5 + adds r0, r4 + ldrh r0, [r0] + movs r1, 0x6 + bl sub_80EE8C8 + b _081A35CE +_081A3414: + ldr r6, =gSaveBlock2Ptr + ldr r0, [r6] + lsls r7, 1 + mov r2, r8 + lsls r1, r2, 2 + adds r4, r7, r1 + ldr r5, =0x00000dc8 + adds r1, r0, r5 + adds r1, r4 + movs r3, 0xDD + lsls r3, 4 + adds r0, r3 + adds r0, r4 + ldrh r2, [r1] + ldrh r3, [r0] + cmp r2, r3 + bhi _081A3438 + b _081A35CE +_081A3438: + strh r2, [r0] + ldrh r0, [r1] + cmp r0, 0x1 + bhi _081A3442 + b _081A35CE +_081A3442: + bl sub_80EE818 + lsls r0, 24 + cmp r0, 0 + bne _081A344E + b _081A35CE +_081A344E: + mov r0, r8 + cmp r0, 0 + bne _081A346C + ldr r0, [r6] + adds r0, r5 + adds r0, r7 + ldrh r0, [r0] + movs r1, 0xB + bl sub_80EE8C8 + b _081A35CE + .pool +_081A346C: + ldr r0, [r6] + adds r0, r5 + adds r0, r4 + ldrh r0, [r0] + movs r1, 0xC + bl sub_80EE8C8 + b _081A35CE +_081A347C: + ldr r6, =gSaveBlock2Ptr + ldr r1, [r6] + lsls r4, r7, 1 + ldr r5, =0x00000dda + adds r0, r1, r5 + adds r0, r4 + ldr r2, =0x00000dde + adds r1, r2 + adds r1, r4 + ldrh r2, [r0] + ldrh r3, [r1] + cmp r2, r3 + bhi _081A3498 + b _081A35CE +_081A3498: + strh r2, [r1] + ldrh r0, [r0] + cmp r0, 0x1 + bhi _081A34A2 + b _081A35CE +_081A34A2: + bl sub_80EE818 + lsls r0, 24 + cmp r0, 0 + bne _081A34AE + b _081A35CE +_081A34AE: + ldr r0, [r6] + adds r0, r5 + adds r0, r4 + ldrh r0, [r0] + movs r1, 0xA + bl sub_80EE8C8 + b _081A35CE + .pool +_081A34CC: + ldr r6, =gSaveBlock2Ptr + ldr r2, [r6] + lsls r7, 1 + mov r9, r7 + mov r7, r8 + lsls r0, r7, 2 + mov r1, r9 + adds r4, r1, r0 + ldr r5, =0x00000de2 + adds r0, r2, r5 + adds r3, r0, r4 + ldr r7, =0x00000dea + adds r0, r2, r7 + adds r0, r4 + ldrh r1, [r3] + ldrh r7, [r0] + cmp r1, r7 + bls _081A35CE + strh r1, [r0] + ldr r0, =0x00000dfa + adds r1, r2, r0 + adds r1, r4 + ldr r7, =0x00000df2 + adds r0, r2, r7 + adds r0, r4 + ldrh r0, [r0] + strh r0, [r1] + ldrh r0, [r3] + cmp r0, 0x1 + bls _081A35CE + bl sub_80EE818 + lsls r0, 24 + cmp r0, 0 + beq _081A35CE + mov r0, r8 + cmp r0, 0 + bne _081A353C + ldr r0, [r6] + adds r0, r5 + add r0, r9 + ldrh r0, [r0] + movs r1, 0x7 + bl sub_80EE8C8 + b _081A35CE + .pool +_081A353C: + ldr r0, [r6] + adds r0, r5 + adds r0, r4 + ldrh r0, [r0] + movs r1, 0x8 + bl sub_80EE8C8 + b _081A35CE +_081A354C: + ldr r6, =gSaveBlock2Ptr + ldr r1, [r6] + lsls r4, r7, 1 + ldr r5, =0x00000e04 + adds r0, r1, r5 + adds r0, r4 + ldr r2, =0x00000e08 + adds r1, r2 + adds r1, r4 + ldrh r2, [r0] + ldrh r3, [r1] + cmp r2, r3 + bls _081A35CE + strh r2, [r1] + ldrh r0, [r0] + cmp r0, 0x1 + bls _081A35CE + bl sub_80EE818 + lsls r0, 24 + cmp r0, 0 + beq _081A35CE + ldr r0, [r6] + adds r0, r5 + adds r0, r4 + ldrh r0, [r0] + movs r1, 0x9 + bl sub_80EE8C8 + b _081A35CE + .pool +_081A3594: + ldr r6, =gSaveBlock2Ptr + ldr r1, [r6] + lsls r4, r7, 1 + ldr r5, =0x00000e1a + adds r0, r1, r5 + adds r0, r4 + ldr r7, =0x00000e1e + adds r1, r7 + adds r1, r4 + ldrh r2, [r0] + ldrh r3, [r1] + cmp r2, r3 + bls _081A35CE + strh r2, [r1] + ldrh r0, [r0] + cmp r0, 0x1 + bls _081A35CE + bl sub_80EE818 + lsls r0, 24 + cmp r0, 0 + beq _081A35CE + ldr r0, [r6] + adds r0, r5 + adds r0, r4 + ldrh r0, [r0] + movs r1, 0xD + bl sub_80EE8C8 +_081A35CE: + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A31FC + + thumb_func_start sub_81A35EC +sub_81A35EC: @ 81A35EC + push {r4,lr} + ldr r0, =0x000040cf + bl VarGet + ldr r4, =gScriptResult + bl sub_81A3610 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A35EC + + thumb_func_start sub_81A3610 +sub_81A3610: @ 81A3610 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r0, 0 + mov r8, r0 + ldr r0, =0x000040cf + bl VarGet + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, =0x000040ce + bl VarGet + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + bl sub_81A39C4 + lsls r0, 16 + ldr r1, =gUnknown_08611550 + mov r9, r1 + lsls r7, r6, 2 + adds r1, 0x3 + adds r1, r7, r1 + lsrs r0, 16 + ldrb r1, [r1] + adds r5, r0, r1 + cmp r4, 0 + beq _081A365C + movs r0, 0 + b _081A36C2 + .pool +_081A365C: + lsls r0, r6, 24 + lsrs r0, 24 + bl sub_81A3B30 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + blt _081A3680 + cmp r1, 0x1 + bgt _081A3680 + adds r0, r1, r7 + add r0, r9 + ldrb r0, [r0] + cmp r5, r0 + bne _081A36BC + adds r1, 0x1 + mov r8, r1 + b _081A36BC +_081A3680: + ldr r1, =gUnknown_08611550 + lsls r2, r6, 2 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r5, r0 + bne _081A3694 + movs r0, 0x3 + b _081A36BA + .pool +_081A3694: + adds r0, r1, 0x1 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r5, r0 + bne _081A36A4 + movs r1, 0x4 + mov r8, r1 + b _081A36BC +_081A36A4: + cmp r5, r0 + ble _081A36BC + subs r0, r5, r0 + adds r1, 0x2 + adds r1, r2, r1 + ldrb r1, [r1] + bl __modsi3 + cmp r0, 0 + bne _081A36BC + movs r0, 0x4 +_081A36BA: + mov r8, r0 +_081A36BC: + mov r1, r8 + lsls r0, r1, 24 + lsrs r0, 24 +_081A36C2: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81A3610 + + thumb_func_start sub_81A36D0 +sub_81A36D0: @ 81A36D0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + adds r2, r0, 0 + lsls r1, 16 + lsrs r3, r1, 16 + cmp r0, 0x1 + beq _081A3766 + cmp r0, 0x1 + bgt _081A36EA + cmp r0, 0 + beq _081A36F2 + b _081A38F8 +_081A36EA: + cmp r2, 0x2 + bne _081A36F0 + b _081A3818 +_081A36F0: + b _081A38F8 +_081A36F2: + movs r0, 0xFA + lsls r0, 1 + cmp r3, r0 + bne _081A370C + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000bfc + b _081A38C4 + .pool +_081A370C: + ldr r0, =0x000003fe + cmp r3, r0 + beq _081A3786 + ldr r0, =0x0000012b + cmp r3, r0 + bhi _081A3738 + ldr r2, =gUnknown_0203BC88 + movs r0, 0x34 + adds r1, r3, 0 + muls r1, r0 + ldr r0, [r2] + adds r0, r1 + adds r0, 0xC + bl ConvertBattleFrontierTrainerSpeechToString + b _081A38F8 + .pool +_081A3738: + ldr r0, =0x0000018f + cmp r3, r0 + bhi _081A3758 + ldr r1, =gSaveBlock2Ptr + movs r0, 0xEC + muls r0, r3 + ldr r1, [r1] + adds r0, r1 + ldr r1, =0xfffef2b8 + b _081A38C4 + .pool +_081A3758: + adds r0, r3, 0 + adds r0, 0x70 + lsls r0, 24 + lsrs r0, 24 + bl sub_819F99C + b _081A38F8 +_081A3766: + movs r0, 0xFA + lsls r0, 1 + cmp r3, r0 + bne _081A3780 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000c08 + b _081A38C4 + .pool +_081A3780: + ldr r0, =0x000003fe + cmp r3, r0 + bne _081A3794 +_081A3786: + movs r0, 0 + bl sub_81A51A8 + b _081A38F8 + .pool +_081A3794: + ldr r0, =0x0000012b + cmp r3, r0 + bhi _081A37B8 + ldr r2, =gUnknown_0203BC88 + movs r0, 0x34 + adds r1, r3, 0 + muls r1, r0 + ldr r0, [r2] + adds r0, r1 + adds r0, 0x18 + bl ConvertBattleFrontierTrainerSpeechToString + b _081A38F8 + .pool +_081A37B8: + ldr r0, =0x0000018f + cmp r3, r0 + bhi _081A37EC + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + bne _081A387C + ldr r1, =gSaveBlock2Ptr + movs r0, 0xEC + muls r0, r3 + ldr r1, [r1] + adds r0, r1 + ldr r1, =0xfffef2c4 + b _081A38C4 + .pool +_081A37EC: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + bne _081A387C + ldr r1, =gSaveBlock2Ptr + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 2 + ldr r1, [r1] + adds r0, r1 + ldr r1, =0xffff96c4 + b _081A38C4 + .pool +_081A3818: + movs r0, 0xFA + lsls r0, 1 + cmp r3, r0 + bne _081A3830 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000c14 + b _081A38C4 + .pool +_081A3830: + ldr r0, =0x000003fe + cmp r3, r0 + bne _081A3844 + movs r0, 0x1 + bl sub_81A51A8 + b _081A38F8 + .pool +_081A3844: + ldr r0, =0x0000012b + cmp r3, r0 + bhi _081A3868 + ldr r2, =gUnknown_0203BC88 + movs r0, 0x34 + adds r1, r3, 0 + muls r1, r0 + ldr r0, [r2] + adds r0, r1 + adds r0, 0x24 + bl ConvertBattleFrontierTrainerSpeechToString + b _081A38F8 + .pool +_081A3868: + ldr r0, =0x0000018f + cmp r3, r0 + bhi _081A38A8 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _081A3890 +_081A387C: + bl sub_81864E0 + bl ConvertBattleFrontierTrainerSpeechToString + b _081A38F8 + .pool +_081A3890: + ldr r1, =gSaveBlock2Ptr + movs r0, 0xEC + muls r0, r3 + ldr r1, [r1] + adds r0, r1 + ldr r1, =0xfffef2d0 + b _081A38C4 + .pool +_081A38A8: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _081A38D4 + bl sub_81864A8 + lsls r0, 24 + lsrs r3, r0, 24 + movs r0, 0x58 + muls r0, r3 + ldr r1, =gUnknown_086109BA +_081A38C4: + adds r0, r1 + bl ConvertBattleFrontierTrainerSpeechToString + b _081A38F8 + .pool +_081A38D4: + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r0, =0xfffffe70 + adds r2, r3, r0 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r1, r0 + adds r1, 0xDC + ldrb r0, [r1] + lsls r0, 27 + lsrs r3, r0, 27 + movs r0, 0x58 + muls r0, r3 + ldr r1, =gUnknown_086109BA + adds r0, r1 + bl ConvertBattleFrontierTrainerSpeechToString +_081A38F8: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A36D0 + + thumb_func_start sub_81A3908 +sub_81A3908: @ 81A3908 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r2, =0x00000cdc + adds r1, r2 + movs r2, 0 + str r2, [r1] + movs r4, 0 + mov r9, r0 + mov r8, r9 + movs r6, 0 +_081A3926: + movs r5, 0 + lsls r7, r4, 2 + mov r10, r7 + adds r0, r4, 0x1 + mov r12, r0 +_081A3930: + mov r1, r8 + ldr r2, [r1] + lsls r3, r5, 1 + mov r7, r10 + adds r1, r3, r7 + movs r7, 0xCE + lsls r7, 4 + adds r0, r2, r7 + adds r0, r1 + strh r6, [r0] + cmp r4, 0x1 + bgt _081A3960 + adds r7, 0x2C + adds r0, r2, r7 + adds r0, r1 + strh r6, [r0] + adds r7, 0xBC + adds r0, r2, r7 + adds r0, r1 + strh r6, [r0] + adds r7, 0x1A + adds r0, r2, r7 + adds r0, r1 + strh r6, [r0] +_081A3960: + cmp r4, 0 + bne _081A3980 + mov r1, r8 + ldr r0, [r1] + ldr r2, =0x00000dda + adds r1, r0, r2 + adds r1, r3 + strh r4, [r1] + ldr r7, =0x00000e04 + adds r1, r0, r7 + adds r1, r3 + strh r4, [r1] + ldr r1, =0x00000e1a + adds r0, r1 + adds r0, r3 + strh r4, [r0] +_081A3980: + adds r5, 0x1 + cmp r5, 0x1 + ble _081A3930 + mov r4, r12 + cmp r4, 0x3 + ble _081A3926 + mov r2, r9 + ldr r0, [r2] + ldr r7, =0x00000ca8 + adds r1, r0, r7 + ldrb r0, [r1] + cmp r0, 0 + beq _081A399E + movs r0, 0x1 + strb r0, [r1] +_081A399E: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A3908 + + thumb_func_start sub_81A39C4 +sub_81A39C4: @ 81A39C4 + push {r4,r5,lr} + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + lsrs r4, r0, 30 + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, =0x000040cf + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x6 + bhi _081A3AC4 + lsls r0, 2 + ldr r1, =_081A3A0C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081A3A0C: + .4byte _081A3A28 + .4byte _081A3A3C + .4byte _081A3A54 + .4byte _081A3A6C + .4byte _081A3A80 + .4byte _081A3A98 + .4byte _081A3AAC +_081A3A28: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + lsls r1, r4, 1 + lsls r2, r5, 2 + adds r1, r2 + movs r2, 0xCE + lsls r2, 4 + b _081A3AB4 + .pool +_081A3A3C: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + lsls r1, r4, 1 + lsls r2, r5, 2 + adds r1, r2 + ldr r2, =0x00000d0c + b _081A3AB4 + .pool +_081A3A54: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + lsls r1, r4, 1 + lsls r2, r5, 2 + adds r1, r2 + ldr r2, =0x00000dc8 + b _081A3AB4 + .pool +_081A3A6C: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + lsls r1, r4, 1 + ldr r2, =0x00000dda + b _081A3AB4 + .pool +_081A3A80: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + lsls r1, r4, 1 + lsls r2, r5, 2 + adds r1, r2 + ldr r2, =0x00000de2 + b _081A3AB4 + .pool +_081A3A98: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + lsls r1, r4, 1 + ldr r2, =0x00000e04 + b _081A3AB4 + .pool +_081A3AAC: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + lsls r1, r4, 1 + ldr r2, =0x00000e1a +_081A3AB4: + adds r0, r2 + adds r0, r1 + ldrh r0, [r0] + b _081A3AC6 + .pool +_081A3AC4: + movs r0, 0 +_081A3AC6: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81A39C4 + + thumb_func_start sub_81A3ACC +sub_81A3ACC: @ 81A3ACC + push {r4,r5,lr} + movs r2, 0 + ldr r5, =gSaveBlock2Ptr + ldr r4, =0x00000cb4 + ldr r0, =0x0000ffff + adds r3, r0, 0 +_081A3AD8: + ldr r0, [r5] + lsls r1, r2, 1 + adds r0, r4 + adds r0, r1 + ldrh r1, [r0] + orrs r1, r3 + strh r1, [r0] + adds r2, 0x1 + cmp r2, 0x13 + ble _081A3AD8 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A3ACC + + thumb_func_start sub_81A3B00 +sub_81A3B00: @ 81A3B00 + push {lr} + ldr r0, =gUnknown_02038BCA + ldrh r1, [r0] + ldr r0, =0x000003fe + cmp r1, r0 + bne _081A3B20 + ldr r1, =gScriptResult + movs r0, 0x1 + b _081A3B24 + .pool +_081A3B20: + ldr r1, =gScriptResult + movs r0, 0 +_081A3B24: + strh r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A3B00 + + thumb_func_start sub_81A3B30 +sub_81A3B30: @ 81A3B30 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 23 + ldr r1, =0x000008c4 + adds r0, r4, r1 + bl FlagGet + adds r5, r0, 0 + ldr r0, =0x000008c5 + adds r4, r0 + adds r0, r4, 0 + bl FlagGet + adds r5, r0 + lsls r5, 24 + lsrs r5, 24 + adds r0, r5, 0 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A3B30 + + thumb_func_start sub_81A3B64 +sub_81A3B64: @ 81A3B64 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r5, 0 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + lsrs r4, r0, 30 + ldr r0, =0x000040cf + bl VarGet + lsls r0, 16 + lsrs r7, r0, 16 + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + lsrs r6, r0, 16 + cmp r7, 0x6 + bhi _081A3C78 + lsls r0, r7, 2 + ldr r1, =_081A3BB4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081A3BB4: + .4byte _081A3BD0 + .4byte _081A3BE4 + .4byte _081A3C00 + .4byte _081A3C18 + .4byte _081A3C2C + .4byte _081A3C44 + .4byte _081A3C60 +_081A3BD0: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + lsls r1, r4, 1 + lsls r2, r6, 2 + adds r1, r2 + movs r2, 0xCE + lsls r2, 4 + b _081A3C68 + .pool +_081A3BE4: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + lsls r1, r4, 1 + lsls r2, r6, 2 + adds r1, r2 + ldr r2, =0x00000d0c + adds r0, r2 + adds r0, r1 + ldrh r5, [r0] + b _081A3C78 + .pool +_081A3C00: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + lsls r1, r4, 1 + lsls r2, r6, 2 + adds r1, r2 + ldr r2, =0x00000dc8 + b _081A3C68 + .pool +_081A3C18: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + lsls r1, r4, 1 + ldr r2, =0x00000dda + b _081A3C68 + .pool +_081A3C2C: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + lsls r1, r4, 1 + lsls r2, r6, 2 + adds r1, r2 + ldr r2, =0x00000de2 + b _081A3C68 + .pool +_081A3C44: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + lsls r1, r4, 1 + ldr r2, =0x00000e04 + adds r0, r2 + adds r0, r1 + ldrh r0, [r0] + movs r1, 0xE + b _081A3C70 + .pool +_081A3C60: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + lsls r1, r4, 1 + ldr r2, =0x00000e1a +_081A3C68: + adds r0, r2 + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x7 +_081A3C70: + bl __udivsi3 + lsls r0, 16 + lsrs r5, r0, 16 +_081A3C78: + cmp r5, 0 + beq _081A3C7E + subs r5, 0x1 +_081A3C7E: + cmp r5, 0x1D + bls _081A3C84 + movs r5, 0x1D +_081A3C84: + ldr r2, =gUnknown_086118B4 + lsls r1, r7, 2 + adds r1, r6, r1 + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + adds r1, r0 + adds r7, r1, r2 + ldrb r5, [r7] + ldr r0, =gUnknown_02038BCA + mov r9, r0 + ldrh r0, [r0] + ldr r1, =0x000003fe + mov r8, r1 + cmp r0, r8 + bne _081A3CA6 + adds r5, 0xA +_081A3CA6: + ldr r6, =gSaveBlock2Ptr + ldr r1, [r6] + ldr r4, =0x00000eb8 + adds r1, r4 + ldrh r0, [r1] + adds r0, r5 + strh r0, [r1] + ldr r0, =gStringVar1 + adds r1, r5, 0 + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r0, [r6] + adds r2, r0, r4 + ldrh r0, [r2] + ldr r1, =0x0000270f + cmp r0, r1 + bls _081A3CCE + strh r1, [r2] +_081A3CCE: + ldr r0, [r6] + ldr r4, =0x00000eba + adds r0, r4 + ldrh r5, [r0] + ldrb r0, [r7] + adds r5, r0 + bl sub_80EED60 + mov r2, r9 + ldrh r0, [r2] + cmp r0, r8 + bne _081A3CEE + adds r5, 0xA + movs r0, 0xA + bl sub_80EED60 +_081A3CEE: + ldr r0, =0x0000ffff + cmp r5, r0 + ble _081A3CF6 + adds r5, r0, 0 +_081A3CF6: + ldr r0, [r6] + adds r0, r4 + strh r5, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A3B64 + + thumb_func_start sub_81A3D30 +sub_81A3D30: @ 81A3D30 + push {r4,lr} + ldr r0, =0x000040cf + bl VarGet + ldr r4, =gScriptResult + lsls r0, 24 + lsrs r0, 24 + bl sub_81A3B30 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A3D30 + + thumb_func_start sub_81A3D58 +sub_81A3D58: @ 81A3D58 + push {r4,lr} + ldr r0, =0x000040cf + bl VarGet + lsls r0, 16 + lsrs r4, r0, 16 + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_81A3B30 + lsls r0, 24 + cmp r0, 0 + bne _081A3D88 + lsls r0, r4, 17 + ldr r1, =0x8C4 << 16 + adds r0, r1 + lsrs r0, 16 + bl FlagSet + b _081A3D94 + .pool +_081A3D88: + lsls r0, r4, 17 + ldr r1, =0x8C5 << 16 + adds r0, r1 + lsrs r0, 16 + bl FlagSet +_081A3D94: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A3D58 + + thumb_func_start sub_81A3DA0 +sub_81A3DA0: @ 81A3DA0 + push {lr} + ldr r0, =gBattleTypeFlags + ldr r1, =gSpecialVar_0x8005 + ldrh r1, [r1] + ldr r2, [r0] + ands r2, r1 + cmp r2, 0 + beq _081A3DC4 + ldr r1, =gScriptResult + movs r0, 0x1 + strh r0, [r1] + b _081A3DC8 + .pool +_081A3DC4: + ldr r0, =gScriptResult + strh r2, [r0] +_081A3DC8: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A3DA0 + + thumb_func_start sub_81A3DD0 +sub_81A3DD0: @ 81A3DD0 + push {r4-r6,lr} + adds r5, r2, 0 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 24 + lsrs r4, r1, 24 + adds r0, r6, 0 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + bl pokedex_flag_operation + lsls r0, 24 + cmp r0, 0 + beq _081A3ED6 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + subs r0, r4, 0x1 + cmp r0, 0xA + bhi _081A3EA0 + lsls r0, 2 + ldr r1, =_081A3E0C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081A3E0C: + .4byte _081A3E38 + .4byte _081A3E68 + .4byte _081A3E38 + .4byte _081A3EA0 + .4byte _081A3E38 + .4byte _081A3EA0 + .4byte _081A3E38 + .4byte _081A3EA0 + .4byte _081A3E38 + .4byte _081A3EA0 + .4byte _081A3E38 +_081A3E38: + cmp r5, r4 + bne _081A3E50 + ldr r0, =gStringVar1 + ldr r1, =gUnknown_085CCB79 + bl StringAppend + b _081A3EC8 + .pool +_081A3E50: + cmp r5, r4 + ble _081A3EC8 + ldr r0, =gStringVar1 + ldr r1, =gUnknown_085CCB7F + bl StringAppend + b _081A3EC8 + .pool +_081A3E68: + cmp r4, r5 + bne _081A3E80 + ldr r0, =gStringVar1 + ldr r1, =gUnknown_085CCB79 + bl StringAppend + b _081A3E88 + .pool +_081A3E80: + ldr r0, =gStringVar1 + ldr r1, =gUnknown_085CCB7F + bl StringAppend +_081A3E88: + ldr r0, =gStringVar1 + ldr r1, =gUnknown_085CCB86 + bl StringAppend + b _081A3EC8 + .pool +_081A3EA0: + cmp r4, r5 + bne _081A3EB8 + ldr r0, =gStringVar1 + ldr r1, =gUnknown_085CCB79 + bl StringAppend + b _081A3EC0 + .pool +_081A3EB8: + ldr r0, =gStringVar1 + ldr r1, =gUnknown_085CCB7F + bl StringAppend +_081A3EC0: + ldr r0, =gStringVar1 + ldr r1, =gUnknown_085CCB84 + bl StringAppend +_081A3EC8: + ldr r0, =gStringVar1 + movs r1, 0xB + muls r1, r6 + ldr r2, =gSpeciesNames + adds r1, r2 + bl StringAppend +_081A3ED6: + adds r0, r4, 0 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A3DD0 + + thumb_func_start sub_81A3EF0 +sub_81A3EF0: @ 81A3EF0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r2, [sp, 0x20] + ldr r4, [sp, 0x24] + mov r9, r4 + ldr r4, [sp, 0x28] + mov r10, r4 + ldr r7, [sp, 0x2C] + lsls r0, 16 + lsrs r4, r0, 16 + lsls r1, 16 + lsrs r6, r1, 16 + lsls r3, 24 + lsrs r3, 24 + mov r12, r3 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + movs r2, 0 + movs r0, 0xCE + lsls r0, 1 + cmp r4, r0 + beq _081A3FBE + cmp r4, 0 + beq _081A3FBE + ldr r0, =gUnknown_08611C9A + ldrh r1, [r0] + ldr r5, =0x0000ffff + adds r3, r0, 0 + cmp r1, r5 + beq _081A3F54 + cmp r1, r4 + beq _081A3F48 + adds r1, r3, 0 +_081A3F3A: + adds r1, 0x2 + adds r2, 0x1 + ldrh r0, [r1] + cmp r0, r5 + beq _081A3F54 + cmp r0, r4 + bne _081A3F3A +_081A3F48: + lsls r0, r2, 1 + adds r0, r3 + ldrh r1, [r0] + ldr r0, =0x0000ffff + cmp r1, r0 + bne _081A3FBE +_081A3F54: + mov r0, r12 + cmp r0, 0 + bne _081A3F60 + mov r1, r8 + cmp r1, 0x32 + bhi _081A3FBE +_081A3F60: + movs r2, 0 + ldrb r3, [r7] + cmp r2, r3 + bge _081A3F80 + mov r1, r9 + ldrh r0, [r1] + cmp r0, r4 + beq _081A3F80 + adds r5, r3, 0 +_081A3F72: + adds r1, 0x2 + adds r2, 0x1 + cmp r2, r5 + bge _081A3F80 + ldrh r0, [r1] + cmp r0, r4 + bne _081A3F72 +_081A3F80: + cmp r2, r3 + bne _081A3FBE + cmp r6, 0 + beq _081A3FAA + movs r2, 0 + cmp r2, r3 + bge _081A3FA6 + mov r1, r10 + ldrh r0, [r1] + cmp r0, r6 + beq _081A3FA6 + adds r5, r3, 0 +_081A3F98: + adds r1, 0x2 + adds r2, 0x1 + cmp r2, r5 + bge _081A3FA6 + ldrh r0, [r1] + cmp r0, r6 + bne _081A3F98 +_081A3FA6: + cmp r2, r3 + bne _081A3FBE +_081A3FAA: + lsls r0, r3, 1 + add r0, r9 + strh r4, [r0] + ldrb r0, [r7] + lsls r0, 1 + add r0, r10 + strh r6, [r0] + ldrb r0, [r7] + adds r0, 0x1 + strb r0, [r7] +_081A3FBE: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A3EF0 + + thumb_func_start sub_81A3FD4 +sub_81A3FD4: @ 81A3FD4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x34 + movs r0, 0 + str r0, [sp, 0x2C] + add r4, sp, 0x28 + strb r0, [r4] + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + lsrs r0, 16 + mov r10, r4 + cmp r0, 0x1 + beq _081A4016 + cmp r0, 0x1 + bgt _081A4008 + cmp r0, 0 + beq _081A4010 + b _081A402A + .pool +_081A4008: + cmp r0, 0x3 + bgt _081A402A + movs r0, 0x2 + b _081A4028 +_081A4010: + movs r1, 0x3 + str r1, [sp, 0x2C] + b _081A402A +_081A4016: + ldr r0, =0x000040cf + bl VarGet + lsls r0, 16 + movs r1, 0x3 + str r1, [sp, 0x2C] + cmp r0, 0 + bne _081A402A + movs r0, 0x4 +_081A4028: + str r0, [sp, 0x2C] +_081A402A: + movs r1, 0 + mov r9, r1 + b _081A4040 + .pool +_081A4034: + mov r1, r10 + ldrb r0, [r1] + ldr r1, [sp, 0x2C] + cmp r0, r1 + blt _081A4040 + b _081A41E0 +_081A4040: + mov r5, r9 + movs r0, 0 + mov r1, r10 + strb r0, [r1] + mov r0, r9 + adds r0, 0x1 + str r0, [sp, 0x30] +_081A404E: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r7, r0, 16 + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, =0x000040cf + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x6 + bne _081A40C8 + cmp r7, 0 + bne _081A40E4 + ldr r0, =gScriptResult + ldrb r3, [r0] + str r6, [sp] + add r1, sp, 0x10 + str r1, [sp, 0x4] + add r0, sp, 0x1C + str r0, [sp, 0x8] + mov r0, r10 + str r0, [sp, 0xC] + mov r0, r8 + movs r1, 0 + adds r2, r4, 0 + bl sub_81A3EF0 + b _081A40E4 + .pool +_081A40C8: + ldr r0, =gScriptResult + ldrb r3, [r0] + str r6, [sp] + add r1, sp, 0x10 + str r1, [sp, 0x4] + add r0, sp, 0x1C + str r0, [sp, 0x8] + mov r0, r10 + str r0, [sp, 0xC] + mov r0, r8 + adds r1, r7, 0 + adds r2, r4, 0 + bl sub_81A3EF0 +_081A40E4: + adds r5, 0x1 + cmp r5, 0x5 + ble _081A40EC + movs r5, 0 +_081A40EC: + cmp r5, r9 + bne _081A404E + ldr r1, [sp, 0x30] + mov r9, r1 + cmp r1, 0x5 + ble _081A4034 + mov r1, r10 + ldrb r0, [r1] + ldr r1, [sp, 0x2C] + cmp r0, r1 + bge _081A41E0 + movs r6, 0 + ldr r0, =gUnknown_08611C9A + ldrh r2, [r0] + ldr r1, =0x0000ffff + mov r8, r0 + cmp r2, r1 + beq _081A4134 + mov r4, r8 +_081A4112: + adds r0, r2, 0 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + bl pokedex_flag_operation + lsls r0, 24 + cmp r0, 0 + beq _081A412A + adds r6, 0x1 +_081A412A: + adds r4, 0x2 + ldrh r2, [r4] + ldr r0, =0x0000ffff + cmp r2, r0 + bne _081A4112 +_081A4134: + ldr r1, =gStringVar1 + movs r0, 0xFF + strb r0, [r1] + ldr r1, =gSpecialVar_0x8004 + movs r0, 0x1 + strh r0, [r1] + movs r0, 0 + mov r1, r10 + strb r0, [r1] + mov r1, r8 + ldrh r0, [r1] + ldr r1, =0x0000ffff + cmp r0, r1 + beq _081A416A + mov r5, r10 + adds r7, r1, 0 + mov r4, r8 +_081A4156: + ldrh r0, [r4] + ldrb r1, [r5] + adds r2, r6, 0 + bl sub_81A3DD0 + strb r0, [r5] + adds r4, 0x2 + ldrh r0, [r4] + cmp r0, r7 + bne _081A4156 +_081A416A: + mov r0, r10 + ldrb r4, [r0] + cmp r4, 0 + bne _081A41A4 + ldr r4, =gStringVar1 + ldr r1, =gUnknown_085CCB82 + adds r0, r4, 0 + bl StringAppend + ldr r1, =gUnknown_085CCB88 + adds r0, r4, 0 + bl StringAppend + b _081A4202 + .pool +_081A41A4: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _081A41C0 + ldr r0, =gStringVar1 + ldr r1, =gUnknown_085CCB84 + bl StringAppend + b _081A41C8 + .pool +_081A41C0: + ldr r0, =gStringVar1 + ldr r1, =gUnknown_085CCB82 + bl StringAppend +_081A41C8: + ldr r0, =gStringVar1 + ldr r1, =gUnknown_085CCB8C + bl StringAppend + b _081A4202 + .pool +_081A41E0: + ldr r1, =gSpecialVar_0x8004 + movs r0, 0 + strh r0, [r1] + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldr r0, =gScriptResult + ldrb r0, [r0] + ldr r1, =0x00000ca9 + adds r2, r1 + movs r1, 0x3 + ands r1, r0 + ldrb r3, [r2] + movs r0, 0x4 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] +_081A4202: + add sp, 0x34 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A3FD4 + + thumb_func_start sub_81A4224 +sub_81A4224: @ 81A4224 + push {lr} + bl sub_81652B4 + pop {r0} + bx r0 + thumb_func_end sub_81A4224 + + thumb_func_start sub_81A4230 +sub_81A4230: @ 81A4230 + push {r4-r7,lr} + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + lsrs r4, r0, 30 + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, =0x000040cf + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x6 + bls _081A425A + b _081A4394 +_081A425A: + lsls r0, 2 + ldr r1, =_081A4278 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081A4278: + .4byte _081A4294 + .4byte _081A42DC + .4byte _081A431C + .4byte _081A4338 + .4byte _081A434C + .4byte _081A4368 + .4byte _081A437C +_081A4294: + ldr r7, =gSaveBlock2Ptr + ldr r0, [r7] + lsls r4, 1 + lsls r1, r5, 2 + adds r1, r4, r1 + movs r6, 0xCE + lsls r6, 4 + adds r3, r0, r6 + adds r2, r3, r1 + ldrh r1, [r2] + ldr r0, =0x0000270e + cmp r1, r0 + bhi _081A4394 + adds r0, r1, 0x1 + strh r0, [r2] + cmp r5, 0 + bne _081A4394 + adds r0, r3, r4 + ldrh r1, [r0] + movs r0, 0x20 + bl sav12_xor_set + ldr r1, [r7] + adds r0, r1, r6 + adds r0, r4 + ldrh r0, [r0] + ldr r2, =0x00000d02 + adds r1, r2 + b _081A4392 + .pool +_081A42DC: + ldr r6, =gSaveBlock2Ptr + ldr r0, [r6] + lsls r2, r4, 1 + lsls r1, r5, 2 + adds r1, r2, r1 + ldr r3, =0x00000d0c + adds r0, r3 + adds r3, r0, r1 + ldrh r0, [r3] + ldr r2, =0x0000270e + cmp r0, r2 + bhi _081A42F8 + adds r0, 0x1 + strh r0, [r3] +_081A42F8: + ldr r0, [r6] + ldr r3, =0x00000d1c + adds r0, r3 + adds r1, r0, r1 + ldrh r0, [r1] + cmp r0, r2 + bhi _081A4394 + adds r0, 0x1 + b _081A4392 + .pool +_081A431C: + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + lsls r0, r4, 1 + lsls r1, r5, 2 + adds r0, r1 + ldr r1, =0x00000dc8 + adds r2, r1 + adds r1, r2, r0 + b _081A4388 + .pool +_081A4338: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + lsls r1, r4, 1 + ldr r2, =0x00000dda + adds r0, r2 + b _081A4386 + .pool +_081A434C: + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + lsls r0, r4, 1 + lsls r1, r5, 2 + adds r0, r1 + ldr r3, =0x00000de2 + adds r2, r3 + adds r1, r2, r0 + b _081A4388 + .pool +_081A4368: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + lsls r1, r4, 1 + ldr r2, =0x00000e04 + adds r0, r2 + b _081A4386 + .pool +_081A437C: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + lsls r1, r4, 1 + ldr r3, =0x00000e1a + adds r0, r3 +_081A4386: + adds r1, r0, r1 +_081A4388: + ldrh r3, [r1] + ldr r0, =0x0000270e + cmp r3, r0 + bhi _081A4394 + adds r0, r3, 0x1 +_081A4392: + strh r0, [r1] +_081A4394: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A4230 + + thumb_func_start sub_81A43A8 +sub_81A43A8: @ 81A43A8 + push {r4-r6,lr} + sub sp, 0x4 + movs r4, 0 + ldr r6, =gSaveBlock1Ptr + movs r5, 0x64 +_081A43B2: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + lsls r1, r4, 1 + ldr r2, =0x00000caa + adds r0, r2 + adds r1, r0, r1 + ldrh r0, [r1] + cmp r0, 0 + beq _081A43EE + adds r1, r0, 0 + muls r1, r5 + movs r0, 0xEA + lsls r0, 1 + adds r1, r0 + ldr r0, [r6] + adds r0, r1 + movs r1, 0xC + movs r2, 0 + bl GetMonData + mov r1, sp + strh r0, [r1] + adds r0, r4, 0 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xC + mov r2, sp + bl SetMonData +_081A43EE: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _081A43B2 + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A43A8 + + thumb_func_start sub_81A4410 +sub_81A4410: @ 81A4410 + push {r4,lr} + ldr r4, =gScriptResult + bl sub_8185338 + strh r0, [r4] + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r0, =0x00000ca9 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x8 + orrs r0, r2 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A4410 + + thumb_func_start sub_81A443C +sub_81A443C: @ 81A443C + push {lr} + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0 + beq _081A4450 + cmp r0, 0x1 + beq _081A4464 + b _081A446E + .pool +_081A4450: + ldr r0, =gStringVar1 + ldr r1, =gUnknown_02038BCA + ldrh r1, [r1] + bl sub_8162E20 + b _081A446E + .pool +_081A4464: + ldr r0, =gStringVar2 + ldr r1, =gUnknown_02038BCA + ldrh r1, [r1] + bl sub_8162E20 +_081A446E: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A443C + + thumb_func_start sub_81A447C +sub_81A447C: @ 81A447C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + movs r0, 0 + str r0, [sp] +_081A448C: + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + ldr r2, [sp] + lsls r1, r2, 1 + ldr r4, =0x00000caa + adds r0, r4 + adds r0, r1 + ldrh r0, [r0] + subs r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r1 + adds r2, 0x1 + str r2, [sp, 0x4] + cmp r0, 0x5 + bhi _081A454E + movs r6, 0 + ldr r0, [sp] + movs r2, 0x64 + adds r1, r0, 0 + muls r1, r2 + ldr r0, =gPlayerParty + adds r7, r1, r0 +_081A44BA: + movs r5, 0 + movs r4, 0xD + adds r4, r6 + mov r8, r4 + adds r0, r6, 0x1 + mov r10, r0 +_081A44C6: + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + ldr r2, =0x00000caa + adds r0, r2 + add r0, r9 + ldrh r0, [r0] + movs r4, 0x64 + adds r1, r0, 0 + muls r1, r4 + movs r0, 0xEA + lsls r0, 1 + adds r1, r0 + ldr r2, =gSaveBlock1Ptr + ldr r0, [r2] + adds r0, r1 + adds r1, r5, 0 + adds r1, 0xD + movs r2, 0 + bl GetMonData + adds r4, r0, 0 + adds r0, r7, 0 + mov r1, r8 + movs r2, 0 + bl GetMonData + cmp r4, r0 + beq _081A4508 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _081A44C6 +_081A4508: + cmp r5, 0x4 + bne _081A4516 + adds r0, r7, 0 + movs r1, 0xA6 + adds r2, r6, 0 + bl sub_80691F4 +_081A4516: + mov r4, r10 + lsls r0, r4, 24 + lsrs r6, r0, 24 + cmp r6, 0x3 + bls _081A44BA + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r2, =gSaveBlock2Ptr + ldr r1, [r2] + ldr r4, =0x00000caa + adds r1, r4 + add r1, r9 + ldrh r1, [r1] + subs r1, 0x1 + movs r3, 0x64 + muls r1, r3 + adds r0, r1 + movs r1, 0x8E + lsls r1, 2 + adds r0, r1 + ldr r2, =gPlayerParty + ldr r4, [sp] + adds r1, r4, 0 + muls r1, r3 + adds r1, r2 + movs r2, 0x64 + bl memcpy +_081A454E: + ldr r1, [sp, 0x4] + lsls r0, r1, 24 + lsrs r0, 24 + str r0, [sp] + cmp r0, 0x3 + bls _081A448C + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A447C + + thumb_func_start sub_81A457C +sub_81A457C: @ 81A457C + push {lr} + ldr r0, =0x000040cf + bl VarGet + lsls r0, 24 + lsrs r0, 24 + bl sub_81A5030 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A457C + + thumb_func_start sub_81A4594 +sub_81A4594: @ 81A4594 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + mov r8, r1 + adds r6, r3, 0 + ldr r1, =gUnknown_0203AB74 + ldrb r5, [r1] + lsls r4, r0, 1 + adds r4, r0 + ldr r1, =gUnknown_085EE424 + adds r4, r1 + mov r1, r8 + lsls r3, r1, 27 + lsrs r3, 24 + lsls r1, r0, 2 + adds r1, r0 + adds r2, r1 + lsls r2, 3 + adds r2, 0x1 + lsls r2, 24 + lsrs r7, r2, 24 + str r7, [sp] + movs r0, 0xFF + mov r10, r0 + str r0, [sp, 0x4] + movs r1, 0 + mov r9, r1 + str r1, [sp, 0x8] + adds r0, r5, 0 + movs r1, 0x1 + adds r2, r4, 0 + bl Print + movs r0, 0xFF + strb r0, [r6, 0xD] + ldrh r0, [r6, 0x4] + cmp r0, 0 + beq _081A465C + adds r1, r6, 0x6 + ldrb r2, [r6, 0xE] + add r0, sp, 0xC + bl sub_81DB5E8 + ldr r1, =gUnknown_0203AB74 + ldrb r0, [r1] + mov r3, r8 + adds r3, 0x2 + lsls r3, 27 + lsrs r3, 24 + str r7, [sp] + mov r1, r10 + str r1, [sp, 0x4] + mov r1, r9 + str r1, [sp, 0x8] + movs r1, 0x1 + add r2, sp, 0xC + bl Print + ldrh r1, [r6, 0x4] + ldr r0, =0x0000270f + cmp r1, r0 + bls _081A4618 + adds r1, r0, 0 +_081A4618: + ldr r0, =gStringVar2 + movs r2, 0x1 + movs r3, 0x4 + bl ConvertIntToDecimalStringN + ldr r5, =gStringVar4 + ldr r1, =gUnknown_08611D08 + ldr r0, [sp, 0x4C] + lsls r0, 2 + adds r0, r1 + ldr r4, [r0] + adds r0, r5, 0 + adds r1, r4, 0 + bl StringExpandPlaceholders + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0xC8 + bl GetStringRightAlignXOffset + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + ldr r1, =gUnknown_0203AB74 + ldrb r0, [r1] + str r7, [sp] + mov r1, r10 + str r1, [sp, 0x4] + mov r1, r9 + str r1, [sp, 0x8] + movs r1, 0x1 + adds r2, r5, 0 + bl Print +_081A465C: + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A4594 + + thumb_func_start sub_81A4684 +sub_81A4684: @ 81A4684 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + adds r6, r0, 0 + adds r7, r1, 0 + mov r10, r2 + adds r5, r3, 0 + ldr r1, =gUnknown_0203AB74 + ldrb r0, [r1] + lsls r2, r6, 1 + adds r2, r6 + ldr r1, =gUnknown_085EE424 + adds r2, r1 + lsls r3, r7, 27 + lsrs r3, 24 + mov r12, r3 + lsls r1, r6, 2 + adds r1, r6 + mov r3, r10 + adds r4, r3, r1 + lsls r1, r4, 3 + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp] + movs r1, 0xFF + mov r9, r1 + str r1, [sp, 0x4] + movs r3, 0 + mov r8, r3 + str r3, [sp, 0x8] + movs r1, 0x1 + mov r3, r12 + bl Print + ldrh r0, [r5, 0x8] + cmp r0, 0 + beq _081A47BC + movs r0, 0xFF + strb r0, [r5, 0x11] + movs r0, 0x1 + negs r0, r0 + strb r0, [r5, 0x19] + adds r1, r5, 0 + adds r1, 0xA + ldrb r2, [r5, 0x1A] + add r0, sp, 0xC + bl sub_81DB5E8 + ldr r1, =gUnknown_0203AB74 + ldrb r0, [r1] + adds r3, r7, 0x2 + lsls r3, 27 + lsrs r3, 24 + subs r1, r4, 0x1 + lsls r1, 3 + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp] + mov r2, r9 + str r2, [sp, 0x4] + mov r1, r8 + str r1, [sp, 0x8] + movs r1, 0x1 + add r2, sp, 0xC + bl Print + adds r4, r5, 0 + adds r4, 0x12 + adds r0, r4, 0 + bl sub_8009228 + cmp r0, 0 + beq _081A4734 + add r0, sp, 0xC + adds r1, r4, 0 + movs r2, 0x1 + bl sub_81DB5E8 + b _081A473C + .pool +_081A4734: + add r0, sp, 0xC + adds r1, r4, 0 + bl StringCopy +_081A473C: + ldr r2, =gUnknown_0203AB74 + mov r9, r2 + ldrb r0, [r2] + adds r3, r7, 0x4 + lsls r3, 27 + lsrs r3, 24 + lsls r1, r6, 2 + adds r1, r6 + mov r2, r10 + adds r6, r2, r1 + adds r1, r6, 0x1 + lsls r1, 3 + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp] + movs r1, 0xFF + mov r8, r1 + str r1, [sp, 0x4] + movs r7, 0 + str r7, [sp, 0x8] + movs r1, 0x1 + add r2, sp, 0xC + bl Print + ldrh r1, [r5, 0x8] + ldr r0, =0x0000270f + cmp r1, r0 + bls _081A4778 + adds r1, r0, 0 +_081A4778: + ldr r0, =gStringVar2 + movs r2, 0x1 + movs r3, 0x4 + bl ConvertIntToDecimalStringN + ldr r5, =gStringVar4 + ldr r0, =gUnknown_08611D08 + ldr r4, [r0, 0x24] + adds r0, r5, 0 + adds r1, r4, 0 + bl StringExpandPlaceholders + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0xC8 + bl GetStringRightAlignXOffset + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + mov r2, r9 + ldrb r0, [r2] + lsls r1, r6, 3 + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp] + mov r1, r8 + str r1, [sp, 0x4] + str r7, [sp, 0x8] + movs r1, 0x1 + adds r2, r5, 0 + bl Print +_081A47BC: + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A4684 + + thumb_func_start sub_81A47E0 +sub_81A47E0: @ 81A47E0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x44 + mov r9, r0 + mov r10, r1 + str r2, [sp, 0x40] + movs r0, 0xAC + lsls r0, 1 + bl AllocZeroed + mov r8, r0 + bl sub_80E8260 + add r0, sp, 0x30 + mov r12, r0 + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldr r3, [sp, 0x40] + lsls r1, r3, 1 + adds r1, r3 + lsls r1, 4 + mov r4, r10 + lsls r0, r4, 1 + add r0, r10 + lsls r0, 5 + adds r1, r0 + adds r4, r1, r2 + mov r3, sp + movs r2, 0x2 +_081A4820: + adds r0, r3, 0 + movs r5, 0x87 + lsls r5, 2 + adds r1, r4, r5 + ldm r1!, {r5-r7} + stm r0!, {r5-r7} + ldr r1, [r1] + str r1, [r0] + adds r4, 0x10 + adds r3, 0x10 + subs r2, 0x1 + cmp r2, 0 + bge _081A4820 + ldr r6, [sp, 0x40] + lsls r0, r6, 4 + mov r7, r10 + lsls r1, r7, 5 + adds r0, r1 + mov r1, r12 + add r0, r8 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldr r0, [r0] + str r0, [r1] + movs r2, 0 +_081A4852: + movs r1, 0 + movs r4, 0 + movs r3, 0 + lsls r5, r2, 4 + adds r6, r2, 0x1 + mov r2, sp +_081A485E: + ldrh r0, [r2, 0x4] + cmp r0, r1 + ble _081A4868 + adds r4, r3, 0 + adds r1, r0, 0 +_081A4868: + adds r2, 0x10 + adds r3, 0x1 + cmp r3, 0x3 + ble _081A485E + mov r0, sp + ldrh r0, [r0, 0x34] + cmp r0, r1 + blt _081A487A + movs r4, 0x3 +_081A487A: + lsls r0, r4, 4 + mov r7, sp + adds r2, r7, r0 + mov r0, r9 + adds r1, r5, r0 + adds r0, r2, 0 + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + ldr r0, [r0] + str r0, [r1] + movs r0, 0 + strh r0, [r2, 0x4] + adds r2, r6, 0 + cmp r2, 0x2 + ble _081A4852 + mov r0, r8 + bl Free + add sp, 0x44 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A47E0 + + thumb_func_start sub_81A48B4 +sub_81A48B4: @ 81A48B4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x74 + mov r9, r0 + mov r10, r1 + movs r0, 0xAC + lsls r0, 1 + bl AllocZeroed + mov r8, r0 + bl sub_80E8260 + mov r0, sp + adds r0, 0x54 + str r0, [sp, 0x70] + add r1, sp, 0x5C + mov r12, r1 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + movs r0, 0x54 + mov r2, r10 + muls r2, r0 + adds r0, r2, 0 + adds r3, r0, r1 + mov r2, sp + movs r4, 0x2 +_081A48EE: + adds r0, r2, 0 + ldr r5, =0x0000057c + adds r1, r3, r5 + ldm r1!, {r5-r7} + stm r0!, {r5-r7} + ldm r1!, {r5-r7} + stm r0!, {r5-r7} + ldr r1, [r1] + str r1, [r0] + adds r3, 0x1C + adds r2, 0x1C + subs r4, 0x1 + cmp r4, 0 + bge _081A48EE + mov r6, r10 + lsls r0, r6, 3 + subs r0, r6 + lsls r0, 2 + add r0, r8 + ldr r1, [sp, 0x70] + movs r7, 0x90 + lsls r7, 1 + adds r0, r7 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldr r0, [r0] + str r0, [r1] + movs r4, 0 +_081A492A: + movs r1, 0 + movs r5, 0 + movs r3, 0 + lsls r6, r4, 3 + adds r7, r4, 0x1 + mov r2, sp +_081A4936: + ldrh r0, [r2, 0x8] + cmp r0, r1 + ble _081A4940 + adds r5, r3, 0 + adds r1, r0, 0 +_081A4940: + adds r2, 0x1C + adds r3, 0x1 + cmp r3, 0x2 + ble _081A4936 + mov r2, r12 + ldrh r0, [r2] + cmp r0, r1 + blt _081A4952 + movs r5, 0x3 +_081A4952: + subs r1, r6, r4 + lsls r1, 2 + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + mov r3, sp + adds r2, r3, r0 + add r1, r9 + adds r0, r2, 0 + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + ldr r0, [r0] + str r0, [r1] + movs r0, 0 + strh r0, [r2, 0x8] + adds r4, r7, 0 + cmp r4, 0x2 + ble _081A492A + mov r0, r8 + bl Free + add sp, 0x74 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A48B4 + + thumb_func_start sub_81A4998 +sub_81A4998: @ 81A4998 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x94 + adds r7, r0, 0 + str r1, [sp, 0x90] + ldr r0, =gStringVar1 + ldr r4, =gUnknown_08611CB0 + lsls r5, r7, 3 + adds r1, r5, r4 + ldr r1, [r1] + bl StringCopy + ldr r6, =gStringVar4 + adds r4, 0x4 + adds r5, r4 + ldr r1, [r5] + adds r0, r6, 0 + bl StringExpandPlaceholders + ldr r0, =gUnknown_0203AB74 + mov r8, r0 + ldrb r0, [r0] + movs r1, 0x1 + mov r10, r1 + str r1, [sp] + movs r2, 0xFF + mov r9, r2 + str r2, [sp, 0x4] + movs r5, 0 + str r5, [sp, 0x8] + adds r2, r6, 0 + movs r3, 0 + bl Print + ldr r1, =gUnknown_08611D00 + ldr r2, [sp, 0x90] + lsls r0, r2, 2 + adds r0, r1 + ldr r4, [r0] + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0xD0 + bl GetStringRightAlignXOffset + adds r3, r0, 0 + mov r1, r8 + ldrb r0, [r1] + lsls r3, 24 + lsrs r3, 24 + mov r2, r10 + str r2, [sp] + mov r1, r9 + str r1, [sp, 0x4] + str r5, [sp, 0x8] + movs r1, 0x1 + adds r2, r4, 0 + bl Print + cmp r7, 0x9 + bne _081A4A6C + ldr r2, =gSaveBlock2Ptr + ldr r0, [r2] + ldr r1, =0x00000ee8 + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] + ldr r0, [r2] + movs r2, 0xEF + lsls r2, 4 + adds r0, r2 + movs r1, 0x1 + negs r1, r1 + strb r1, [r0] + add r4, sp, 0x3C + adds r0, r4, 0 + ldr r1, [sp, 0x90] + bl sub_81A48B4 +_081A4A3A: + adds r0, r5, 0 + movs r1, 0x1 + movs r2, 0x4 + adds r3, r4, 0 + bl sub_81A4684 + adds r4, 0x1C + adds r5, 0x1 + cmp r5, 0x2 + ble _081A4A3A + b _081A4A90 + .pool +_081A4A6C: + add r0, sp, 0xC + adds r1, r7, 0 + ldr r2, [sp, 0x90] + bl sub_81A47E0 + movs r5, 0 + add r4, sp, 0xC +_081A4A7A: + str r7, [sp] + adds r0, r5, 0 + movs r1, 0x1 + movs r2, 0x4 + adds r3, r4, 0 + bl sub_81A4594 + adds r4, 0x10 + adds r5, 0x1 + cmp r5, 0x2 + ble _081A4A7A +_081A4A90: + add sp, 0x94 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81A4998 + + thumb_func_start sub_81A4AA0 +sub_81A4AA0: @ 81A4AA0 + push {r4,lr} + ldr r4, =gUnknown_0203AB74 + ldr r0, =gUnknown_08611C84 + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r1, 0 + bl sub_81973FC + ldrb r0, [r4] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + movs r1, 0 + bl sub_81A4998 + ldrb r0, [r4] + bl PutWindowTilemap + ldrb r0, [r4] + movs r1, 0x3 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A4AA0 + + thumb_func_start sub_81A4AE8 +sub_81A4AE8: @ 81A4AE8 + push {r4,lr} + ldr r4, =gUnknown_0203AB74 + ldrb r0, [r4] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + movs r1, 0x1 + bl sub_81A4998 + ldrb r0, [r4] + movs r1, 0x2 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A4AE8 + + thumb_func_start sub_81A4B14 +sub_81A4B14: @ 81A4B14 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + movs r1, 0 + ldr r3, =gSaveBlock2Ptr +_081A4B24: + movs r6, 0 + lsls r0, r1, 1 + adds r2, r1, 0x1 + mov r10, r2 + adds r0, r1 + lsls r0, 5 + mov r8, r0 + movs r7, 0 + movs r0, 0x87 + lsls r0, 2 + add r0, r8 + mov r9, r0 +_081A4B3C: + movs r5, 0 + adds r2, r7, 0 + mov r1, r8 + adds r4, r7, r1 +_081A4B44: + ldr r0, [r3] + add r0, r9 + adds r0, r2 + lsls r1, r5, 4 + adds r0, r1 + movs r1, 0 + str r2, [sp] + str r3, [sp, 0x4] + bl CopyUnalignedWord + ldr r3, [sp, 0x4] + ldr r0, [r3] + adds r0, r4 + ldr r1, =0x00000222 + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] + ldr r0, [r3] + adds r0, r4 + movs r1, 0x88 + lsls r1, 2 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + adds r4, 0x10 + adds r5, 0x1 + ldr r2, [sp] + cmp r5, 0x2 + ble _081A4B44 + adds r7, 0x30 + adds r6, 0x1 + cmp r6, 0x1 + ble _081A4B3C + mov r1, r10 + cmp r1, 0x8 + ble _081A4B24 + movs r6, 0 + ldr r7, =gSaveBlock2Ptr + movs r2, 0x54 + mov r10, r2 + movs r3, 0xFF + mov r9, r3 +_081A4B98: + adds r0, r6, 0x1 + mov r8, r0 + mov r1, r10 + muls r1, r6 + movs r0, 0x54 + adds r4, r6, 0 + muls r4, r0 + movs r2, 0 + ldr r3, =0x0000057c + adds r6, r1, r3 + movs r5, 0x2 +_081A4BAE: + ldr r0, [r7] + adds r0, r6 + adds r0, r2 + movs r1, 0 + str r2, [sp] + bl CopyUnalignedWord + ldr r0, [r7] + adds r0, r6 + ldr r2, [sp] + adds r0, r2 + adds r0, 0x4 + movs r1, 0 + bl CopyUnalignedWord + ldr r1, [r7] + adds r1, r4 + ldr r0, =0x00000586 + adds r1, r0 + ldrb r0, [r1] + mov r3, r9 + orrs r0, r3 + strb r0, [r1] + ldr r1, [r7] + adds r1, r4 + ldr r0, =0x0000058e + adds r1, r0 + ldrb r0, [r1] + orrs r0, r3 + strb r0, [r1] + ldr r0, [r7] + adds r0, r4 + ldr r1, =0x00000584 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + adds r4, 0x1C + ldr r2, [sp] + adds r2, 0x1C + subs r5, 0x1 + cmp r5, 0 + bge _081A4BAE + mov r6, r8 + cmp r6, 0x1 + ble _081A4B98 + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A4B14 + + thumb_func_start sub_81A4C30 +sub_81A4C30: @ 81A4C30 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r0, 0x96 + lsls r0, 2 + bl AllocZeroed + adds r7, r0, 0 + adds r4, r7, 0 + movs r5, 0 + movs r0, 0xFA + lsls r0, 1 + adds r6, r7, r0 + ldr r0, =gPlayerParty + mov r8, r0 +_081A4C4E: + mov r0, r8 + adds r1, r5, r0 + adds r0, r4, 0 + movs r2, 0x64 + bl memcpy + adds r4, 0x64 + adds r5, 0x64 + cmp r4, r6 + ble _081A4C4E + ldr r4, =gPlayerPartyCount + ldrb r5, [r4] + bl copy_player_party_from_sav1 + bl sub_8076D5C + movs r0, 0x1 + bl TrySavingData + bl sav2_gender2_inplace_and_xFE + strb r5, [r4] + adds r4, r7, 0 + ldr r5, =gPlayerParty + movs r0, 0xFA + lsls r0, 1 + adds r6, r7, r0 +_081A4C84: + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x64 + bl memcpy + adds r4, 0x64 + adds r5, 0x64 + cmp r4, r6 + ble _081A4C84 + adds r0, r7, 0 + bl Free + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A4C30 + + thumb_func_start sub_81A4CB0 +sub_81A4CB0: @ 81A4CB0 + push {lr} + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _081A4CD0 + bl sub_8185EA0 + lsls r0, 24 + lsrs r0, 24 + b _081A4CDA + .pool +_081A4CD0: + ldr r0, =0x000040cf + bl VarGet + lsls r0, 16 + lsrs r0, 16 +_081A4CDA: + ldr r2, =gTrainers + ldr r1, =gUnknown_08611D30 + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x3] + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A4CB0 + + thumb_func_start sub_81A4D00 +sub_81A4D00: @ 81A4D00 + push {lr} + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _081A4D20 + bl sub_8185EA0 + lsls r0, 24 + lsrs r0, 24 + b _081A4D2A + .pool +_081A4D20: + ldr r0, =0x000040cf + bl VarGet + lsls r0, 16 + lsrs r0, 16 +_081A4D2A: + ldr r2, =gTrainers + ldr r1, =gUnknown_08611D30 + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x1] + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A4D00 + + thumb_func_start sub_81A4D50 +sub_81A4D50: @ 81A4D50 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _081A4D70 + bl sub_8185EA0 + lsls r0, 24 + lsrs r0, 24 + b _081A4D7A + .pool +_081A4D70: + ldr r0, =0x000040cf + bl VarGet + lsls r0, 16 + lsrs r0, 16 +_081A4D7A: + movs r3, 0 + lsls r0, 1 + ldr r2, =gTrainers + ldr r1, =gUnknown_08611D30 + adds r0, r1 + ldrh r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r2, 0x4 + adds r2, r0, r2 +_081A4D90: + adds r1, r4, r3 + ldrb r0, [r2] + strb r0, [r1] + adds r2, 0x1 + adds r3, 0x1 + cmp r3, 0x6 + ble _081A4D90 + adds r1, r4, r3 + movs r0, 0xFF + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A4D50 + + thumb_func_start sub_81A4DB8 +sub_81A4DB8: @ 81A4DB8 + push {lr} + ldr r0, =0x000040cf + bl VarGet + lsls r0, 16 + ldr r1, =gUnknown_08611C8C + lsrs r0, 15 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A4DB8 + + thumb_func_start sub_81A4DD8 +sub_81A4DD8: @ 81A4DD8 + push {lr} + ldr r0, =0x000040cf + bl VarGet + lsls r0, 16 + ldr r2, =0x00004010 + ldr r1, =gUnknown_08611C8C + lsrs r0, 15 + adds r0, r1 + ldrb r1, [r0] + adds r0, r2, 0 + bl VarSet + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A4DD8 + + thumb_func_start sub_81A4E04 +sub_81A4E04: @ 81A4E04 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x44 + ldr r0, =0x000040cf + bl VarGet + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x20] + bl sub_81A513C + str r0, [sp, 0x24] + ldr r0, [sp, 0x20] + cmp r0, 0x1 + bne _081A4E44 + ldr r0, =0x000003fe + bl sub_81953A0 + lsls r0, 16 + lsrs r0, 16 + bl sub_818FC78 + adds r4, r0, 0 + b _081A4E46 + .pool +_081A4E44: + movs r4, 0x7 +_081A4E46: + bl ZeroEnemyPartyMons + movs r1, 0 + str r1, [sp, 0x18] + bl sub_8165C40 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x1C] + movs r2, 0 + str r2, [sp, 0x14] +_081A4E5C: + movs r0, 0x1 + ands r0, r4 + asrs r4, 1 + str r4, [sp, 0x30] + ldr r3, [sp, 0x14] + adds r3, 0x1 + str r3, [sp, 0x28] + cmp r0, 0 + bne _081A4E70 + b _081A4FC4 +_081A4E70: + ldr r4, [sp, 0x14] + lsls r4, 2 + mov r9, r4 + ldr r0, [sp, 0x24] + lsls r0, 4 + str r0, [sp, 0x38] + ldr r1, [sp, 0x20] + lsls r1, 4 + str r1, [sp, 0x34] + ldr r2, [sp, 0x1C] + lsls r2, 24 + str r2, [sp, 0x3C] + ldr r3, [sp, 0x18] + adds r3, 0x1 + str r3, [sp, 0x2C] + ldr r0, [sp, 0x14] + add r0, r9 + lsls r0, 2 + mov r8, r0 +_081A4E96: + bl Random + adds r4, r0, 0 + bl Random + lsls r4, 16 + lsrs r7, r4, 16 + lsls r0, 16 + orrs r7, r0 + ldr r0, =0x0000ef2a + adds r1, r7, 0 + bl sub_806EBD0 + lsls r0, 24 + cmp r0, 0 + bne _081A4E96 + ldr r4, [sp, 0x38] + ldr r1, [sp, 0x24] + subs r0, r4, r1 + lsls r5, r0, 2 + mov r2, r8 + adds r4, r2, r5 + ldr r3, [sp, 0x34] + ldr r1, [sp, 0x20] + subs r0, r3, r1 + lsls r6, r0, 3 + adds r4, r6 + ldr r2, =gUnknown_0861156C + adds r4, r2 + adds r0, r7, 0 + bl GetNatureFromPersonality + ldrb r1, [r4, 0x5] + lsls r0, 24 + lsrs r0, 24 + cmp r1, r0 + bne _081A4E96 + ldr r4, [sp, 0x18] + movs r0, 0x64 + adds r3, r4, 0 + muls r3, r0 + mov r8, r3 + ldr r1, =gEnemyParty + add r1, r8 + mov r10, r1 + ldr r4, [sp, 0x14] + add r4, r9 + lsls r4, 2 + adds r0, r4, r5 + adds r0, r6 + ldr r2, =gUnknown_0861156C + adds r0, r2 + ldrh r1, [r0] + ldr r3, [sp, 0x3C] + lsrs r2, r3, 24 + ldrb r3, [r0, 0x4] + movs r0, 0x1 + str r0, [sp] + str r7, [sp, 0x4] + str r0, [sp, 0x8] + ldr r0, =0x0000ef2a + str r0, [sp, 0xC] + mov r0, r10 + bl create_pokemon_set_level + ldr r0, =gUnknown_0861156C + adds r5, r0 + adds r5, r6, r5 + adds r4, r5, r4 + adds r4, 0x2 + mov r0, r10 + movs r1, 0xC + adds r2, r4, 0 + bl SetMonData + movs r7, 0 + mov r6, r8 + ldr r3, =gEnemyParty +_081A4F32: + adds r1, r7, 0 + adds r1, 0x1A + ldr r0, [sp, 0x14] + add r0, r9 + lsls r4, r0, 2 + adds r2, r5, r4 + adds r0, r7, 0x6 + adds r2, r0 + adds r0, r6, r3 + str r3, [sp, 0x40] + bl SetMonData + adds r7, 0x1 + ldr r3, [sp, 0x40] + cmp r7, 0x5 + ble _081A4F32 + movs r1, 0xFF + add r0, sp, 0x10 + strb r1, [r0] + movs r7, 0 + ldr r1, [sp, 0x18] + movs r2, 0x64 + adds r6, r1, 0 + muls r6, r2 + ldr r3, =gUnknown_08611578 + mov r8, r3 + ldr r3, =gEnemyParty + adds r5, r4, 0 +_081A4F6A: + ldr r4, [sp, 0x38] + ldr r0, [sp, 0x24] + subs r1, r4, r0 + lsls r1, 2 + adds r1, r5, r1 + ldr r2, [sp, 0x34] + ldr r4, [sp, 0x20] + subs r0, r2, r4 + lsls r0, 3 + adds r1, r0 + add r1, r8 + ldrh r4, [r1] + lsls r2, r7, 24 + lsrs r2, 24 + adds r0, r6, r3 + adds r1, r4, 0 + str r3, [sp, 0x40] + bl sub_80691F4 + ldr r3, [sp, 0x40] + cmp r4, 0xDA + bne _081A4F9C + movs r1, 0 + add r0, sp, 0x10 + strb r1, [r0] +_081A4F9C: + adds r5, 0x2 + adds r7, 0x1 + cmp r7, 0x3 + ble _081A4F6A + ldr r0, [sp, 0x18] + movs r1, 0x64 + adds r4, r0, 0 + muls r4, r1 + ldr r0, =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x20 + add r2, sp, 0x10 + bl SetMonData + adds r0, r4, 0 + bl pokemon_calc_effective_stats + ldr r2, [sp, 0x2C] + str r2, [sp, 0x18] +_081A4FC4: + ldr r4, [sp, 0x30] + ldr r3, [sp, 0x28] + str r3, [sp, 0x14] + cmp r3, 0x2 + bgt _081A4FD0 + b _081A4E5C +_081A4FD0: + add sp, 0x44 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A4E04 + + thumb_func_start sub_81A4FF0 +sub_81A4FF0: @ 81A4FF0 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =0x000040cf + bl VarGet + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + bl sub_81A513C + ldr r3, =gUnknown_0861156C + lsls r2, r4, 2 + adds r2, r4 + lsls r1, r0, 4 + subs r1, r0 + adds r1, r2 + lsls r1, 2 + lsls r0, r5, 4 + subs r0, r5 + lsls r0, 3 + adds r1, r0 + adds r1, r3 + ldrh r0, [r1] + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A4FF0 + + thumb_func_start sub_81A5030 +sub_81A5030: @ 81A5030 + push {lr} + lsls r0, 24 + ldr r2, =gUnknown_02038BCA + ldr r3, =0x000003fe + adds r1, r3, 0 + strh r1, [r2] + ldr r2, =0x00004010 + ldr r1, =gUnknown_08611C8C + lsrs r0, 23 + adds r0, r1 + ldrb r1, [r0] + adds r0, r2, 0 + bl VarSet + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A5030 + + thumb_func_start sub_81A5060 +sub_81A5060: @ 81A5060 + push {r4-r6,lr} + adds r6, r0, 0 + adds r4, r1, 0 + lsls r6, 24 + lsrs r6, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =0x000040cf + bl VarGet + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + bl sub_81A513C + ldr r2, =gUnknown_0861156C + lsls r4, 1 + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 2 + adds r4, r1 + lsls r1, r0, 4 + subs r1, r0 + lsls r1, 2 + adds r4, r1 + lsls r0, r5, 4 + subs r0, r5 + lsls r0, 3 + adds r4, r0 + adds r2, 0xC + adds r4, r2 + ldrh r0, [r4] + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A5060 + + thumb_func_start sub_81A50B0 +sub_81A50B0: @ 81A50B0 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =0x000040cf + bl VarGet + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + bl sub_81A513C + ldr r3, =gUnknown_0861156C + lsls r2, r4, 2 + adds r2, r4 + lsls r1, r0, 4 + subs r1, r0 + adds r1, r2 + lsls r1, 2 + lsls r0, r5, 4 + subs r0, r5 + lsls r0, 3 + adds r1, r0 + adds r1, r3 + ldrb r0, [r1, 0x5] + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A50B0 + + thumb_func_start sub_81A50F0 +sub_81A50F0: @ 81A50F0 + push {r4-r6,lr} + adds r6, r0, 0 + adds r4, r1, 0 + lsls r6, 24 + lsrs r6, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =0x000040cf + bl VarGet + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + bl sub_81A513C + ldr r2, =gUnknown_0861156C + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 2 + adds r4, r1 + lsls r1, r0, 4 + subs r1, r0 + lsls r1, 2 + adds r4, r1 + lsls r0, r5, 4 + subs r0, r5 + lsls r0, 3 + adds r4, r0 + adds r2, 0x6 + adds r4, r2 + ldrb r0, [r4] + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A50F0 + + thumb_func_start sub_81A513C +sub_81A513C: @ 81A513C + push {r4,r5,lr} + ldr r0, =0x000040cf + bl VarGet + lsls r0, 16 + lsrs r5, r0, 16 + lsls r0, r5, 24 + lsrs r0, 24 + bl sub_81A3B30 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bne _081A51A0 + bl sub_81A39C4 + lsls r0, 16 + ldr r3, =gUnknown_08611550 + lsls r2, r5, 2 + adds r1, r3, 0x3 + adds r1, r2, r1 + lsrs r0, 16 + ldrb r1, [r1] + adds r1, r0, r1 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r1, r0 + bne _081A5180 + movs r4, 0 + b _081A51A0 + .pool +_081A5180: + adds r0, r3, 0x1 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r1, r0 + beq _081A519E + cmp r1, r0 + ble _081A51A0 + subs r0, r1, r0 + adds r1, r3, 0x2 + adds r1, r2, r1 + ldrb r1, [r1] + bl __modsi3 + cmp r0, 0 + bne _081A51A0 +_081A519E: + movs r4, 0x1 +_081A51A0: + adds r0, r4, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81A513C + + thumb_func_start sub_81A51A8 +sub_81A51A8: @ 81A51A8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _081A51D4 + bl sub_8185EA0 + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8185EAC + lsls r0, 24 + lsrs r1, r0, 24 + b _081A51E4 + .pool +_081A51D4: + ldr r0, =0x000040cf + bl VarGet + lsls r0, 16 + lsrs r4, r0, 16 + bl sub_81A513C + adds r1, r0, 0 +_081A51E4: + cmp r5, 0 + beq _081A51F4 + cmp r5, 0x1 + beq _081A5214 + b _081A5228 + .pool +_081A51F4: + ldr r0, =gStringVar4 + ldr r2, =gUnknown_08611DB0 + lsls r1, 2 + adds r1, r2 + ldr r2, [r1] + lsls r1, r4, 2 + adds r1, r2 + ldr r1, [r1] + bl StringCopy + b _081A5228 + .pool +_081A5214: + ldr r0, =gStringVar4 + ldr r2, =gUnknown_08611DB8 + lsls r1, 2 + adds r1, r2 + ldr r2, [r1] + lsls r1, r4, 2 + adds r1, r2 + ldr r1, [r1] + bl StringCopy +_081A5228: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A51A8 + + thumb_func_start sub_81A5238 +sub_81A5238: @ 81A5238 + push {lr} + ldr r1, =gUnknown_08611F84 + ldr r0, =gSpecialVar_0x8004 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A5238 + + thumb_func_start sub_81A5258 +sub_81A5258: @ 81A5258 + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r0, 0 + movs r6, 0 + ldrb r0, [r5] + cmp r0, 0xA + bls _081A5268 + b _081A5544 +_081A5268: + lsls r0, 2 + ldr r1, =_081A5278 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081A5278: + .4byte _081A52A4 + .4byte _081A52F4 + .4byte _081A531C + .4byte _081A53B4 + .4byte _081A540C + .4byte _081A542C + .4byte _081A544C + .4byte _081A5490 + .4byte _081A553E + .4byte _081A54D4 + .4byte _081A5520 +_081A52A4: + ldr r0, =0x7fffff1c + movs r1, 0 + str r1, [sp] + movs r1, 0x4 + movs r2, 0 + movs r3, 0x8 + bl BeginNormalPaletteFade + ldr r1, =0x00003f3e + movs r0, 0x48 + bl SetGpuReg + ldr r0, =gUnknown_08611F74 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_08D855E8 + movs r1, 0xF8 + lsls r1, 1 + movs r2, 0x20 + bl LoadCompressedPalette + ldr r1, =gUnknown_02022E24 + movs r0, 0xFF + strh r0, [r1] + ldr r1, =gUnknown_02022E26 + movs r0, 0x70 + strh r0, [r1] + b _081A553E + .pool +_081A52F4: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _081A5306 + b _081A5544 +_081A5306: + str r0, [sp] + movs r0, 0x5 + movs r1, 0 + movs r2, 0x18 + movs r3, 0xD + bl sub_8056A3C + b _081A553E + .pool +_081A531C: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081A5328 + b _081A5544 +_081A5328: + ldr r1, =gBattleTextBuff1 + movs r2, 0xA1 + strb r2, [r1] + movs r0, 0xFF + strb r0, [r1, 0x1] + ldr r1, =gBattleTextBuff2 + strb r2, [r1] + movs r0, 0x1 + negs r0, r0 + strb r0, [r1, 0x1] + ldr r0, =gUnknown_085CCDB2 + bl get_battle_strings_ + ldr r4, =gUnknown_02022E2C + adds r0, r4, 0 + movs r1, 0xF + bl battle_show_message_maybe + ldr r0, =gUnknown_085CCDB5 + movs r1, 0x10 + bl battle_show_message_maybe + ldr r0, =gUnknown_085CCDB8 + bl get_battle_strings_ + adds r0, r4, 0 + movs r1, 0x11 + bl battle_show_message_maybe + ldr r0, =gUnknown_085CCDBB + movs r1, 0x12 + bl battle_show_message_maybe + ldr r0, =gUnknown_085CCDC0 + movs r1, 0x13 + bl battle_show_message_maybe + ldr r0, =gUnknown_085CCDC6 + movs r1, 0x14 + bl battle_show_message_maybe + ldr r0, =gUnknown_085CCDCB + bl get_battle_strings_ + adds r0, r4, 0 + movs r1, 0x15 + bl battle_show_message_maybe + b _081A553E + .pool +_081A53B4: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081A53C0 + b _081A5544 +_081A53C0: + ldr r1, =0x00003f3f + movs r0, 0x48 + bl SetGpuReg + movs r6, 0x80 + lsls r6, 15 + movs r4, 0x7 +_081A53CE: + asrs r1, r6, 16 + ldr r0, =gUnknown_08611F5C + movs r2, 0x54 + movs r3, 0 + bl CreateSprite + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + movs r1, 0x3 + bl StartSpriteAnim + movs r0, 0x80 + lsls r0, 13 + adds r6, r0 + subs r4, 0x1 + cmp r4, 0 + bge _081A53CE + b _081A553C + .pool +_081A540C: + ldr r0, =0x00000109 + bl PlaySE + movs r0, 0x50 + movs r1, 0x28 + movs r2, 0 + movs r3, 0 + bl sub_81A5558 + movs r0, 0xA0 + movs r1, 0x28 + movs r2, 0 + b _081A5464 + .pool +_081A542C: + ldr r0, =0x00000109 + bl PlaySE + movs r0, 0x50 + movs r1, 0x38 + movs r2, 0x1 + movs r3, 0 + bl sub_81A5558 + movs r0, 0xA0 + movs r1, 0x38 + movs r2, 0x1 + b _081A5464 + .pool +_081A544C: + ldr r0, =0x00000109 + bl PlaySE + movs r0, 0x50 + movs r1, 0x48 + movs r2, 0x2 + movs r3, 0 + bl sub_81A5558 + movs r0, 0xA0 + movs r1, 0x48 + movs r2, 0x2 +_081A5464: + movs r3, 0x1 + bl sub_81A5558 + ldr r0, =gUnknown_085CCDCB + bl get_battle_strings_ + ldr r0, =gUnknown_02022E2C + movs r1, 0x15 + bl battle_show_message_maybe + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + movs r6, 0x1 + b _081A5544 + .pool +_081A5490: + movs r0, 0x85 + lsls r0, 1 + bl PlaySE + ldr r0, =gBattleTextBuff1 + ldr r1, =gBattleTextBuff2 + ldrb r2, [r0] + ldrb r0, [r1] + cmp r2, r0 + bls _081A54BC + movs r6, 0x2 + ldr r1, =gBattleScripting + movs r0, 0 + strb r0, [r1, 0x17] + b _081A553E + .pool +_081A54BC: + cmp r2, r0 + bcs _081A54D0 + movs r6, 0x3 + ldr r1, =gBattleScripting + movs r0, 0x1 + strb r0, [r1, 0x17] + b _081A553E + .pool +_081A54D0: + movs r6, 0x4 + b _081A553E +_081A54D4: + ldr r1, =0x00003f3e + movs r0, 0x48 + bl SetGpuReg + movs r0, 0x1 + str r0, [sp] + movs r0, 0x5 + movs r1, 0 + movs r2, 0x18 + movs r3, 0xD + bl sub_8056A3C + movs r0, 0 + bl CopyBgTilemapBufferToVram + ldr r0, =gMPlay_BGM + ldr r1, =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl + ldr r0, =0x7fffff1c + movs r1, 0 + str r1, [sp] + movs r1, 0x4 + movs r2, 0x8 + movs r3, 0 + bl BeginNormalPaletteFade + b _081A553E + .pool +_081A5520: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081A5544 + ldr r1, =0x00003f3f + movs r0, 0x48 + bl SetGpuReg + movs r0, 0xFA + lsls r0, 2 + bl FreeSpriteTilesByTag +_081A553C: + movs r6, 0x1 +_081A553E: + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] +_081A5544: + adds r0, r6, 0 + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A5258 + + thumb_func_start sub_81A5558 +sub_81A5558: @ 81A5558 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + lsls r3, 24 + lsrs r7, r3, 24 + movs r6, 0 + movs r1, 0 + ldr r0, =gBattleStruct + ldr r0, [r0] + movs r3, 0xA6 + lsls r3, 2 + adds r4, r0, r3 + ldr r5, =0x0000029a + adds r3, r0, r5 + adds r5, 0x2 + adds r5, r0 + mov r8, r5 + cmp r2, 0x1 + beq _081A55C4 + cmp r2, 0x1 + bgt _081A55A8 + cmp r2, 0 + beq _081A55B0 + b _081A5612 + .pool +_081A55A8: + mov r0, r9 + cmp r0, 0x2 + beq _081A55D8 + b _081A5612 +_081A55B0: + adds r0, r4, r7 + movs r6, 0 + ldrsb r6, [r0, r6] + movs r1, 0x1 + adds r0, r7, 0 + eors r0, r1 + adds r0, r4, r0 + movs r1, 0 + ldrsb r1, [r0, r1] + b _081A5612 +_081A55C4: + adds r0, r3, r7 + movs r6, 0 + ldrsb r6, [r0, r6] + movs r1, 0x1 + adds r0, r7, 0 + eors r0, r1 + adds r0, r3, r0 + movs r1, 0 + ldrsb r1, [r0, r1] + b _081A5612 +_081A55D8: + ldr r3, =gBattleMons + mov r9, r3 + movs r5, 0x58 + adds r0, r7, 0 + muls r0, r5 + add r0, r9 + ldrh r0, [r0, 0x28] + movs r4, 0x64 + muls r0, r4 + lsls r1, r7, 1 + add r1, r8 + ldrh r1, [r1] + bl __divsi3 + adds r6, r0, 0 + movs r0, 0x1 + adds r1, r7, 0 + eors r1, r0 + adds r0, r1, 0 + muls r0, r5 + add r0, r9 + ldrh r0, [r0, 0x28] + muls r0, r4 + lsls r1, 1 + add r1, r8 + ldrh r1, [r1] + bl __divsi3 + adds r1, r0, 0 +_081A5612: + cmp r6, r1 + ble _081A5638 + movs r4, 0x2 + cmp r7, 0 + beq _081A5628 + ldr r1, =gBattleTextBuff2 + b _081A562A + .pool +_081A5628: + ldr r1, =gBattleTextBuff1 +_081A562A: + ldrb r0, [r1] + adds r0, 0x2 + strb r0, [r1] + b _081A565E + .pool +_081A5638: + cmp r6, r1 + bne _081A565C + movs r4, 0x1 + cmp r7, 0 + beq _081A564C + ldr r1, =gBattleTextBuff2 + b _081A564E + .pool +_081A564C: + ldr r1, =gBattleTextBuff1 +_081A564E: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _081A565E + .pool +_081A565C: + movs r4, 0 +_081A565E: + ldr r0, =gUnknown_08611F5C + ldr r1, [sp] + mov r2, r10 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + adds r1, r4, 0 + bl StartSpriteAnim + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A5558 + + thumb_func_start sub_81A5698 +sub_81A5698: @ 81A5698 + push {lr} + adds r1, r0, 0 + ldr r0, =gBattleCommunication + ldrb r0, [r0] + cmp r0, 0x8 + bls _081A56AA + adds r0, r1, 0 + bl DestroySprite +_081A56AA: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A5698 + + thumb_func_start sub_81A56B4 +sub_81A56B4: @ 81A56B4 + ldr r0, =gBattleStruct + ldr r2, [r0] + movs r0, 0xA6 + lsls r0, 2 + adds r1, r2, r0 + adds r0, 0x2 + adds r3, r2, r0 + adds r0, 0x2 + adds r2, r0 + movs r0, 0 + strb r0, [r1] + strb r0, [r1, 0x1] + strb r0, [r3] + strb r0, [r3, 0x1] + ldr r0, =gBattleMons + ldrh r1, [r0, 0x28] + strh r1, [r2] + adds r0, 0x80 + ldrh r0, [r0] + strh r0, [r2, 0x2] + bx lr + .pool + thumb_func_end sub_81A56B4 + + thumb_func_start sub_81A56E8 +sub_81A56E8: @ 81A56E8 + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gBattleStruct + ldr r1, [r1] + movs r2, 0xA6 + lsls r2, 2 + adds r1, r2 + adds r1, r0 + ldr r2, =gBattleArenaMoveMindRatings + ldr r0, =gCurrentMove + ldrh r0, [r0] + adds r0, r2 + ldrb r0, [r0] + ldrb r2, [r1] + adds r0, r2 + strb r0, [r1] + bx lr + .pool + thumb_func_end sub_81A56E8 + + thumb_func_start sub_81A5718 +sub_81A5718: @ 81A5718 + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + adds r6, r3, 0 + ldr r0, =gBattleStruct + ldr r2, [r0] + ldr r0, =0x0000029a + adds r5, r2, r0 + ldr r0, =gHitMarker + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 18 + ands r0, r1 + cmp r0, 0 + beq _081A57DA + ldr r0, =0x000002a2 + adds r4, r2, r0 + ldrb r2, [r4] + ldr r0, =gBitTable + lsls r1, r3, 2 + adds r1, r0 + ldr r1, [r1] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _081A576C + bics r2, r1 + strb r2, [r4] + adds r1, r5, r3 + ldrb r0, [r1] + subs r0, 0x2 + b _081A57D8 + .pool +_081A576C: + ldr r0, =gBattleMoveFlags + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _081A5798 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081A5788 + ldr r0, =gBattleCommunication + ldrb r0, [r0, 0x6] + cmp r0, 0x1 + beq _081A57DA +_081A5788: + adds r1, r5, r3 + ldrb r0, [r1] + subs r0, 0x2 + b _081A57D8 + .pool +_081A5798: + movs r0, 0x6 + ands r0, r1 + cmp r0, 0x6 + bne _081A57A4 + adds r1, r5, r3 + b _081A57D4 +_081A57A4: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081A57B4 + adds r1, r5, r3 + ldrb r0, [r1] + adds r0, 0x2 + b _081A57D8 +_081A57B4: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _081A57C4 + adds r1, r5, r3 + ldrb r0, [r1] + subs r0, 0x1 + b _081A57D8 +_081A57C4: + ldr r0, =gProtectStructs + lsls r1, r6, 4 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 31 + cmp r0, 0 + bne _081A57DA + adds r1, r5, r6 +_081A57D4: + ldrb r0, [r1] + adds r0, 0x1 +_081A57D8: + strb r0, [r1] +_081A57DA: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A5718 + + thumb_func_start sub_81A57E4 +sub_81A57E4: @ 81A57E4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 16 + lsrs r1, 16 + adds r2, r1, 0 + ldr r0, =gBattleStruct + ldr r0, [r0] + ldr r5, =0x0000029a + adds r3, r0, r5 + movs r0, 0x99 + lsls r0, 1 + cmp r1, r0 + bgt _081A582A + subs r0, 0x1 + cmp r1, r0 + bge _081A585C + cmp r1, 0xC5 + bgt _081A581C + cmp r1, 0xC3 + bge _081A585C + cmp r1, 0x77 + beq _081A585C + b _081A5864 + .pool +_081A581C: + cmp r1, 0xC7 + blt _081A5864 + cmp r1, 0xCC + ble _081A585C + cmp r1, 0xCE + beq _081A585C + b _081A5864 +_081A582A: + ldr r0, =0x00000147 + cmp r1, r0 + beq _081A585C + cmp r1, r0 + bgt _081A5848 + subs r0, 0x12 + cmp r1, r0 + beq _081A585C + adds r0, 0x2 + cmp r1, r0 + beq _081A585C + b _081A5864 + .pool +_081A5848: + movs r0, 0xAD + lsls r0, 1 + cmp r2, r0 + blt _081A5864 + adds r0, 0x1 + cmp r2, r0 + ble _081A585C + adds r0, 0x3 + cmp r2, r0 + bne _081A5864 +_081A585C: + adds r1, r3, r4 + ldrb r0, [r1] + subs r0, 0x3 + strb r0, [r1] +_081A5864: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81A57E4 + + thumb_func_start sub_81A586C +sub_81A586C: @ 81A586C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gBattleStruct + ldr r3, [r1] + movs r1, 0xA7 + lsls r1, 2 + adds r3, r1 + lsls r2, r0, 1 + adds r2, r3 + ldr r5, =gBattleMons + movs r4, 0x58 + adds r1, r0, 0 + muls r1, r4 + adds r1, r5 + ldrh r1, [r1, 0x28] + strh r1, [r2] + movs r1, 0x1 + eors r0, r1 + lsls r1, r0, 1 + adds r1, r3 + muls r0, r4 + adds r0, r5 + ldrh r2, [r0, 0x28] + ldrh r0, [r1] + cmp r0, r2 + bls _081A58A4 + strh r2, [r1] +_081A58A4: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A586C + + thumb_func_start sub_81A58B4 +sub_81A58B4: @ 81A58B4 + push {r4-r6,lr} + ldr r4, =gSaveBlock2Ptr + ldr r1, [r4] + ldr r3, =0x00000ca9 + adds r0, r1, r3 + ldrb r0, [r0] + lsls r0, 30 + lsrs r5, r0, 30 + ldr r0, =0x00000ca8 + adds r1, r0 + movs r2, 0 + strb r2, [r1] + ldr r1, [r4] + ldr r6, =0x00000cb2 + adds r0, r1, r6 + strh r2, [r0] + adds r1, r3 + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r4] + adds r1, r3 + ldrb r2, [r1] + movs r0, 0x9 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + cmp r5, 0 + beq _081A5914 + ldr r0, [r4] + ldr r1, =0x00000cdc + adds r0, r1 + ldr r2, [r0] + movs r0, 0x80 + b _081A591E + .pool +_081A5914: + ldr r0, [r4] + ldr r3, =0x00000cdc + adds r0, r3 + ldr r2, [r0] + movs r0, 0x40 +_081A591E: + ands r2, r0 + cmp r2, 0 + bne _081A5930 + ldr r0, [r4] + lsls r1, r5, 1 + ldr r6, =0x00000dda + adds r0, r6 + adds r0, r1 + strh r2, [r0] +_081A5930: + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + movs r1, 0x4 + ldrsb r1, [r0, r1] + movs r2, 0x5 + ldrsb r2, [r0, r2] + movs r3, 0x1 + negs r3, r3 + movs r0, 0 + bl saved_warp2_set + ldr r1, =gUnknown_02038BCA + movs r0, 0 + strh r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A58B4 + + thumb_func_start sub_81A5964 +sub_81A5964: @ 81A5964 + push {r4,lr} + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + ldr r1, =0x00000ca9 + adds r0, r3, r1 + ldrb r0, [r0] + lsls r0, 30 + lsrs r1, r0, 30 + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0x1 + beq _081A59B0 + cmp r0, 0x1 + bgt _081A5994 + cmp r0, 0 + beq _081A599A + b _081A59EE + .pool +_081A5994: + cmp r0, 0x2 + beq _081A59C8 + b _081A59EE +_081A599A: + ldr r0, =gScriptResult + ldr r2, =0x00000dd8 + adds r1, r3, r2 + ldrh r1, [r1] + strh r1, [r0] + b _081A59EE + .pool +_081A59B0: + ldr r2, =gScriptResult + lsls r1, 1 + ldr r4, =0x00000dda + adds r0, r3, r4 + adds r0, r1 + ldrh r0, [r0] + b _081A59EC + .pool +_081A59C8: + cmp r1, 0 + beq _081A59E0 + ldr r2, =gScriptResult + ldr r1, =0x00000cdc + adds r0, r3, r1 + ldr r0, [r0] + movs r1, 0x80 + b _081A59EA + .pool +_081A59E0: + ldr r2, =gScriptResult + ldr r4, =0x00000cdc + adds r0, r3, r4 + ldr r0, [r0] + movs r1, 0x40 +_081A59EA: + ands r0, r1 +_081A59EC: + strh r0, [r2] +_081A59EE: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A5964 + + thumb_func_start sub_81A59FC +sub_81A59FC: @ 81A59FC + push {lr} + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldr r1, =0x00000ca9 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, 30 + lsrs r1, r0, 30 + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0x1 + beq _081A5A48 + cmp r0, 0x1 + bgt _081A5A2C + cmp r0, 0 + beq _081A5A32 + b _081A5ABA + .pool +_081A5A2C: + cmp r0, 0x2 + beq _081A5A60 + b _081A5ABA +_081A5A32: + ldr r0, =gSpecialVar_0x8006 + ldrh r1, [r0] + ldr r3, =0x00000dd8 + adds r0, r2, r3 + strh r1, [r0] + b _081A5ABA + .pool +_081A5A48: + lsls r1, 1 + ldr r3, =0x00000dda + adds r0, r2, r3 + adds r0, r1 + ldr r1, =gSpecialVar_0x8006 + ldrh r1, [r1] + strh r1, [r0] + b _081A5ABA + .pool +_081A5A60: + cmp r1, 0 + beq _081A5A90 + ldr r0, =gSpecialVar_0x8006 + ldrh r0, [r0] + cmp r0, 0 + beq _081A5A80 + ldr r1, =0x00000cdc + adds r0, r2, r1 + ldr r1, [r0] + movs r2, 0x80 + orrs r1, r2 + b _081A5AB8 + .pool +_081A5A80: + ldr r3, =0x00000cdc + adds r0, r2, r3 + ldr r1, [r0] + movs r2, 0x81 + negs r2, r2 + b _081A5AB6 + .pool +_081A5A90: + ldr r0, =gSpecialVar_0x8006 + ldrh r0, [r0] + cmp r0, 0 + beq _081A5AAC + ldr r1, =0x00000cdc + adds r0, r2, r1 + ldr r1, [r0] + movs r2, 0x40 + orrs r1, r2 + b _081A5AB8 + .pool +_081A5AAC: + ldr r3, =0x00000cdc + adds r0, r2, r3 + ldr r1, [r0] + movs r2, 0x41 + negs r2, r2 +_081A5AB6: + ands r1, r2 +_081A5AB8: + str r1, [r0] +_081A5ABA: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A59FC + + thumb_func_start sub_81A5AC4 +sub_81A5AC4: @ 81A5AC4 + push {r4,lr} + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =gSpecialVar_0x8005 + ldrh r1, [r1] + ldr r2, =0x00000ca8 + adds r0, r2 + strb r1, [r0] + movs r0, 0x80 + lsls r0, 7 + movs r1, 0 + bl VarSet + ldr r1, [r4] + ldr r0, =0x00000ca9 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + bl sub_81A4C30 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A5AC4 + + thumb_func_start sub_81A5B08 +sub_81A5B08: @ 81A5B08 + push {r4,r5,lr} + ldr r4, =gSaveBlock2Ptr + ldr r1, [r4] + ldr r2, =0x00000ca9 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 29 + ldr r2, =0x00000dda + adds r1, r2 + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0x29 + bls _081A5B58 + bl Random + ldr r4, [r4] + ldr r5, =gUnknown_08611FAC + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x9 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 15 + adds r0, r5 + ldrh r0, [r0] + ldr r1, =0x00000dd8 + adds r4, r1 + b _081A5B76 + .pool +_081A5B58: + bl Random + ldr r4, [r4] + ldr r5, =gUnknown_08611FA0 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x6 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 15 + adds r0, r5 + ldrh r0, [r0] + ldr r2, =0x00000dd8 + adds r4, r2 +_081A5B76: + strh r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A5B08 + + thumb_func_start sub_81A5B88 +sub_81A5B88: @ 81A5B88 + push {r4,r5,lr} + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =0x00000dd8 + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x1 + bl AddBagItem + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x1 + bne _081A5BD0 + ldr r0, [r4] + ldr r1, =0x00000dd8 + adds r0, r1 + ldrh r0, [r0] + ldr r1, =gStringVar1 + bl CopyItemName + ldr r0, [r4] + ldr r1, =0x00000dd8 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + ldr r0, =gScriptResult + strh r5, [r0] + b _081A5BD6 + .pool +_081A5BD0: + ldr r1, =gScriptResult + movs r0, 0 + strh r0, [r1] +_081A5BD6: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A5B88 + + thumb_func_start sub_81A5BE0 +sub_81A5BE0: @ 81A5BE0 + push {lr} + ldr r0, =gStringVar1 + ldr r1, =gUnknown_02038BCA + ldrh r1, [r1] + bl sub_8162E20 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A5BE0 + + thumb_func_start sub_81A5BF8 +sub_81A5BF8: @ 81A5BF8 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0xC + movs r0, 0x1B + mov r8, r0 + movs r5, 0x7 + movs r4, 0x1 + str r4, [sp] + movs r6, 0x6 + str r6, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0 + movs r2, 0xFE + movs r3, 0xE + bl FillBgTilemapBufferRect + str r4, [sp] + str r6, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0 + movs r2, 0x20 + movs r3, 0xE + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0x31 + movs r2, 0 + movs r3, 0xE + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0x33 + movs r2, 0x1 + movs r3, 0xE + bl FillBgTilemapBufferRect + mov r0, r8 + str r0, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0x34 + movs r2, 0x2 + movs r3, 0xE + bl FillBgTilemapBufferRect + movs r0, 0x1C + mov r8, r0 + str r4, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0x35 + movs r2, 0x1C + movs r3, 0xE + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0x36 + movs r2, 0x1D + movs r3, 0xE + bl FillBgTilemapBufferRect + str r4, [sp] + movs r6, 0x5 + str r6, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0x37 + movs r2, 0 + movs r3, 0xF + bl FillBgTilemapBufferRect + mov r0, r8 + str r0, [sp] + str r6, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0x39 + movs r2, 0x1 + movs r3, 0xF + bl FillBgTilemapBufferRect + str r4, [sp] + str r6, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0x3A + movs r2, 0x1D + movs r3, 0xF + bl FillBgTilemapBufferRect + ldr r1, =0x00000831 + str r4, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r2, 0 + movs r3, 0x13 + bl FillBgTilemapBufferRect + ldr r1, =0x00000833 + str r4, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r2, 0x1 + movs r3, 0x13 + bl FillBgTilemapBufferRect + ldr r1, =0x00000834 + movs r0, 0x1A + str r0, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r2, 0x2 + movs r3, 0x13 + bl FillBgTilemapBufferRect + ldr r1, =0x00000835 + str r4, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r2, 0x1C + movs r3, 0x13 + bl FillBgTilemapBufferRect + ldr r1, =0x00000836 + str r4, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r2, 0x1D + movs r3, 0x13 + bl FillBgTilemapBufferRect + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A5BF8 + + thumb_func_start sub_81A5D44 +sub_81A5D44: @ 81A5D44 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0xC + movs r5, 0 + movs r4, 0x1 + str r4, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0x3 + movs r2, 0 + movs r3, 0xE + bl FillBgTilemapBufferRect + movs r6, 0x4 + str r4, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0x4 + movs r2, 0x1 + movs r3, 0xE + bl FillBgTilemapBufferRect + movs r0, 0x1B + mov r8, r0 + str r0, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0x5 + movs r2, 0x2 + movs r3, 0xE + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0x6 + movs r2, 0x1C + movs r3, 0xE + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0x7 + movs r2, 0x1D + movs r3, 0xE + bl FillBgTilemapBufferRect + str r4, [sp] + str r6, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0x8 + movs r2, 0 + movs r3, 0xF + bl FillBgTilemapBufferRect + str r4, [sp] + str r6, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0x9 + movs r2, 0x1 + movs r3, 0xF + bl FillBgTilemapBufferRect + mov r0, r8 + str r0, [sp] + str r6, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0xA + movs r2, 0x2 + movs r3, 0xF + bl FillBgTilemapBufferRect + str r4, [sp] + str r6, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0xB + movs r2, 0x1C + movs r3, 0xF + bl FillBgTilemapBufferRect + str r4, [sp] + str r6, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0xC + movs r2, 0x1D + movs r3, 0xF + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0xD + movs r2, 0 + movs r3, 0x13 + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0xE + movs r2, 0x1 + movs r3, 0x13 + bl FillBgTilemapBufferRect + mov r0, r8 + str r0, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0xF + movs r2, 0x2 + movs r3, 0x13 + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0x10 + movs r2, 0x1C + movs r3, 0x13 + bl FillBgTilemapBufferRect + str r4, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0x11 + movs r2, 0x1D + movs r3, 0x13 + bl FillBgTilemapBufferRect + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81A5D44 + + thumb_func_start sub_81A5E74 +sub_81A5E74: @ 81A5E74 + push {lr} + ldr r1, =gUnknown_08612120 + ldr r0, =gSpecialVar_0x8004 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A5E74 + + thumb_func_start sub_81A5E94 +sub_81A5E94: @ 81A5E94 + push {r4-r7,lr} + ldr r5, =gSaveBlock2Ptr + ldr r0, [r5] + ldr r4, =0x00000ca9 + adds r0, r4 + ldrb r0, [r0] + lsls r0, 30 + lsrs r7, r0, 30 + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, [r5] + ldr r1, =0x00000ca8 + adds r0, r1 + movs r2, 0 + strb r2, [r0] + ldr r1, [r5] + ldr r3, =0x00000cb2 + adds r0, r1, r3 + strh r2, [r0] + adds r1, r4 + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r5] + adds r1, r4 + ldrb r2, [r1] + movs r0, 0x9 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r4, [r5] + ldr r0, =0x00000cdc + adds r3, r4, r0 + ldr r2, =gUnknown_08612164 + lsls r0, r7, 2 + lsls r1, r6, 3 + adds r0, r1 + adds r0, r2 + ldr r3, [r3] + ldr r0, [r0] + ands r3, r0 + cmp r3, 0 + bne _081A5F0A + lsls r1, r7, 1 + lsls r0, r6, 2 + adds r1, r0 + ldr r2, =0x00000de2 + adds r0, r4, r2 + adds r0, r1 + strh r3, [r0] + adds r2, 0x10 + adds r0, r4, r2 + adds r0, r1 + strh r3, [r0] +_081A5F0A: + ldr r1, =gUnknown_03001288 + movs r0, 0 + strb r0, [r1] + movs r2, 0 + ldr r6, =gSaveBlock1Ptr + movs r4, 0xE7 + lsls r4, 4 + ldr r0, =0x0000ffff + adds r3, r0, 0 +_081A5F1C: + ldr r1, [r5] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r1, r0 + adds r1, r4 + ldrh r0, [r1] + orrs r0, r3 + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x5 + bls _081A5F1C + movs r2, 0 + ldr r4, =gUnknown_03006298 + ldr r1, =0x0000ffff + adds r3, r1, 0 +_081A5F40: + lsls r0, r2, 1 + adds r0, r4 + ldrh r1, [r0] + orrs r1, r3 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x2 + bls _081A5F40 + ldr r0, [r6] + movs r1, 0x4 + ldrsb r1, [r0, r1] + movs r2, 0x5 + ldrsb r2, [r0, r2] + movs r3, 0x1 + negs r3, r3 + movs r0, 0 + bl saved_warp2_set + ldr r1, =gUnknown_02038BCA + movs r0, 0 + strh r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A5E94 + + thumb_func_start sub_81A5FA8 +sub_81A5FA8: @ 81A5FA8 + push {r4-r7,lr} + ldr r7, =gSaveBlock2Ptr + ldr r0, [r7] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + lsrs r6, r0, 30 + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0x2 + beq _081A6000 + cmp r0, 0x2 + bgt _081A5FE4 + cmp r0, 0x1 + beq _081A5FEA + b _081A6044 + .pool +_081A5FE4: + cmp r0, 0x3 + beq _081A6030 + b _081A6044 +_081A5FEA: + ldr r3, =gScriptResult + ldr r0, [r7] + lsls r1, r6, 1 + lsls r2, r5, 2 + adds r1, r2 + ldr r2, =0x00000de2 + b _081A603C + .pool +_081A6000: + ldr r4, =gScriptResult + ldr r2, [r7] + ldr r0, =0x00000cdc + adds r2, r0 + ldr r3, =gUnknown_08612164 + lsls r0, r6, 2 + lsls r1, r5, 3 + adds r0, r1 + adds r0, r3 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + strh r0, [r4] + b _081A6044 + .pool +_081A6030: + ldr r3, =gScriptResult + ldr r0, [r7] + lsls r1, r6, 1 + lsls r2, r5, 2 + adds r1, r2 + ldr r2, =0x00000df2 +_081A603C: + adds r0, r2 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r3] +_081A6044: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A5FA8 + + thumb_func_start sub_81A6054 +sub_81A6054: @ 81A6054 + push {r4-r6,lr} + ldr r6, =gSaveBlock2Ptr + ldr r0, [r6] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + lsrs r5, r0, 30 + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0x2 + beq _081A60B4 + cmp r0, 0x2 + bgt _081A6090 + cmp r0, 0x1 + beq _081A6096 + b _081A6128 + .pool +_081A6090: + cmp r0, 0x3 + beq _081A6108 + b _081A6128 +_081A6096: + ldr r2, [r6] + lsls r0, r5, 1 + lsls r1, r4, 2 + adds r0, r1 + ldr r1, =0x00000de2 + adds r2, r1 + adds r2, r0 + ldr r0, =gSpecialVar_0x8006 + ldrh r0, [r0] + strh r0, [r2] + b _081A6128 + .pool +_081A60B4: + ldr r0, =gSpecialVar_0x8006 + ldrh r0, [r0] + cmp r0, 0 + beq _081A60E4 + ldr r2, [r6] + ldr r0, =0x00000cdc + adds r2, r0 + ldr r3, =gUnknown_08612164 + lsls r1, r5, 2 + lsls r0, r4, 3 + adds r1, r0 + adds r1, r3 + ldr r0, [r2] + ldr r1, [r1] + orrs r0, r1 + str r0, [r2] + b _081A6128 + .pool +_081A60E4: + ldr r2, [r6] + ldr r1, =0x00000cdc + adds r2, r1 + ldr r3, =gUnknown_08612174 + lsls r1, r5, 2 + lsls r0, r4, 3 + adds r1, r0 + adds r1, r3 + ldr r0, [r2] + ldr r1, [r1] + ands r0, r1 + str r0, [r2] + b _081A6128 + .pool +_081A6108: + ldr r3, =gUnknown_03001288 + ldrb r0, [r3] + cmp r0, 0x1 + bne _081A6128 + ldr r2, [r6] + lsls r0, r5, 1 + lsls r1, r4, 2 + adds r0, r1 + ldr r1, =0x00000df2 + adds r2, r1 + adds r2, r0 + ldr r0, =gSpecialVar_0x8006 + ldrh r0, [r0] + movs r1, 0 + strh r0, [r2] + strb r1, [r3] +_081A6128: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A6054 + + thumb_func_start sub_81A613C +sub_81A613C: @ 81A613C + push {r4,lr} + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =gSpecialVar_0x8005 + ldrh r1, [r1] + ldr r2, =0x00000ca8 + adds r0, r2 + strb r1, [r0] + movs r0, 0x80 + lsls r0, 7 + movs r1, 0 + bl VarSet + ldr r1, [r4] + ldr r0, =0x00000ca9 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + bl sub_81A4C30 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A613C + + thumb_func_start nullsub_75 +nullsub_75: @ 81A6180 + bx lr + thumb_func_end nullsub_75 + + thumb_func_start nullsub_123 +nullsub_123: @ 81A6184 + bx lr + thumb_func_end nullsub_123 + + thumb_func_start sub_81A6188 +sub_81A6188: @ 81A6188 + push {lr} + bl ZeroPlayerPartyMons + bl sub_819A4F8 + pop {r0} + bx r0 + thumb_func_end sub_81A6188 + + thumb_func_start sub_81A6198 +sub_81A6198: @ 81A6198 + push {lr} + bl sub_819DC00 + pop {r0} + bx r0 + thumb_func_end sub_81A6198 + + thumb_func_start sub_81A61A4 +sub_81A61A4: @ 81A61A4 + ldr r1, =gUnknown_03001288 + movs r0, 0x1 + strb r0, [r1] + bx lr + .pool + thumb_func_end sub_81A61A4 + + thumb_func_start sub_81A61B0 +sub_81A61B0: @ 81A61B0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x28 + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 30 + str r0, [sp, 0x10] + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + ldr r1, [r4] + ldr r3, [sp, 0x10] + lsls r2, r3, 1 + lsrs r0, 14 + adds r2, r0 + ldr r6, =0x00000de2 + adds r1, r6 + adds r1, r2 + ldrh r0, [r1] + movs r1, 0x7 + bl __udivsi3 + ldr r2, =gUnknown_0203BC88 + ldr r1, =gBattleFrontierTrainers + str r1, [r2] + ldr r5, =0x00000cb2 + lsls r0, 24 + str r0, [sp, 0x20] + mov r8, r0 +_081A61FA: + ldr r0, [r4] + adds r0, r5 + ldrb r1, [r0] + mov r2, r8 + lsrs r0, r2, 24 + bl sub_8162548 + lsls r0, 16 + lsrs r3, r0, 16 + movs r7, 0 + ldr r1, [r4] + adds r0, r1, r5 + ldr r6, [sp, 0x10] + lsls r6, 24 + str r6, [sp, 0x1C] + ldrh r0, [r0] + cmp r7, r0 + bge _081A6244 + ldr r2, =0x00000cb4 + adds r0, r1, r2 + ldrh r0, [r0] + ldr r6, =gSaveBlock2Ptr + cmp r0, r3 + beq _081A6244 + ldr r1, [r6] + ldr r6, =0x00000cb2 + adds r0, r1, r6 + ldrh r2, [r0] + ldr r0, =0x00000cb4 + adds r1, r0 +_081A6236: + adds r1, 0x2 + adds r7, 0x1 + cmp r7, r2 + bge _081A6244 + ldrh r0, [r1] + cmp r0, r3 + bne _081A6236 +_081A6244: + ldr r0, [r4] + ldr r1, =0x00000cb2 + adds r0, r1 + ldr r6, =gSaveBlock2Ptr + ldrh r0, [r0] + cmp r7, r0 + bne _081A61FA + ldr r0, =gUnknown_02038BCA + strh r3, [r0] + ldr r2, [r6] + adds r1, r2, r1 + ldrh r0, [r1] + cmp r0, 0x5 + bhi _081A626C + adds r1, r0, 0 + lsls r1, 1 + ldr r4, =0x00000cb4 + adds r0, r2, r4 + adds r0, r1 + strh r3, [r0] +_081A626C: + movs r7, 0 + mov r10, sp + movs r6, 0 + lsls r6, 1 + str r6, [sp, 0x14] + add r6, sp + str r6, [sp, 0x18] +_081A627A: + ldr r1, [sp, 0x1C] + lsrs r0, r1, 24 + ldr r2, [sp, 0x20] + lsrs r1, r2, 24 + movs r2, 0 + bl sub_81A6EF0 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + ldr r4, =gUnknown_0203BC8C + ldr r2, [r4] + lsls r1, r0, 4 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r0, 0xC9 + beq _081A636E + movs r3, 0 + ldr r6, =gSaveBlock2Ptr + mov r8, r1 + adds r5, r0, 0 + ldr r1, [r6] +_081A62A6: + movs r4, 0xE7 + lsls r4, 4 + adds r0, r1, r4 + ldrh r0, [r0] + lsls r0, 4 + adds r0, r2 + ldrh r0, [r0] + cmp r5, r0 + beq _081A62C0 + adds r1, 0xC + adds r3, 0x1 + cmp r3, 0x5 + ble _081A62A6 +_081A62C0: + cmp r3, 0x6 + bne _081A636E + ldr r6, [sp, 0x10] + cmp r6, 0 + bne _081A62D0 + ldr r0, =0x00000351 + cmp r9, r0 + bhi _081A636E +_081A62D0: + movs r2, 0 + adds r4, r2, r7 + cmp r2, r4 + bge _081A6302 + ldr r1, [sp, 0x18] + ldrh r0, [r1] + cmp r0, r5 + beq _081A6302 + adds r6, r4, 0 + ldr r3, =gUnknown_0203BC8C + mov r12, r3 + mov r5, r8 + ldr r3, [sp, 0x14] + add r3, sp +_081A62EC: + adds r3, 0x2 + adds r2, 0x1 + cmp r2, r6 + bge _081A6302 + mov r1, r12 + ldr r0, [r1] + adds r0, r5, r0 + ldrh r1, [r3] + ldrh r0, [r0] + cmp r1, r0 + bne _081A62EC +_081A6302: + cmp r2, r4 + bne _081A636E + movs r2, 0 + cmp r2, r4 + bge _081A633E + ldr r3, =gBattleFrontierHeldItems + mov r12, r3 + add r0, sp, 0x8 + ldr r6, [sp, 0x14] + adds r3, r0, r6 + mov r0, r8 + str r0, [sp, 0x24] + adds r5, r4, 0 +_081A631C: + ldrh r1, [r3] + cmp r1, 0 + beq _081A6336 + ldr r6, =gUnknown_0203BC8C + ldr r0, [r6] + ldr r6, [sp, 0x24] + adds r0, r6, r0 + ldrb r0, [r0, 0xA] + lsls r0, 1 + add r0, r12 + ldrh r0, [r0] + cmp r1, r0 + beq _081A633E +_081A6336: + adds r3, 0x2 + adds r2, 0x1 + cmp r2, r5 + blt _081A631C +_081A633E: + cmp r2, r4 + bne _081A636E + lsls r4, r7, 1 + ldr r0, =gUnknown_0203BC8C + ldr r1, [r0] + add r1, r8 + ldrh r0, [r1] + mov r2, r10 + strh r0, [r2] + add r2, sp, 0x8 + adds r2, r4 + ldr r3, =gBattleFrontierHeldItems + ldrb r0, [r1, 0xA] + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strh r0, [r2] + ldr r0, =gUnknown_03006298 + adds r4, r0 + mov r3, r9 + strh r3, [r4] + movs r4, 0x2 + add r10, r4 + adds r7, 0x1 +_081A636E: + cmp r7, 0x3 + bne _081A627A + add sp, 0x28 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A61B0 + + thumb_func_start sub_81A63B8 +sub_81A63B8: @ 81A63B8 + push {lr} + ldr r0, =gUnknown_02038BCA + ldrh r0, [r0] + movs r1, 0 + bl sub_8162614 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A63B8 + + thumb_func_start sub_81A63CC +sub_81A63CC: @ 81A63CC + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x2 + beq _081A63FC + ldr r1, =gUnknown_0203BC8C + ldr r0, =gBattleFrontierMons + b _081A6400 + .pool +_081A63FC: + ldr r1, =gUnknown_0203BC8C + ldr r0, =gSlateportBattleTentMons +_081A6400: + str r0, [r1] + movs r7, 0 + ldr r2, =gSaveBlock2Ptr + mov r8, r2 +_081A6408: + mov r0, r8 + ldr r1, [r0] + adds r0, r7, 0x3 + lsls r4, r0, 1 + adds r4, r0 + lsls r4, 2 + adds r1, r4 + ldr r0, =gUnknown_03006298 + lsls r6, r7, 1 + adds r6, r0 + ldrh r0, [r6] + movs r2, 0xE7 + lsls r2, 4 + adds r1, r2 + strh r0, [r1] + movs r0, 0x64 + adds r5, r7, 0 + muls r5, r0 + ldr r0, =gEnemyParty + adds r5, r0 + adds r0, r5, 0 + movs r1, 0x28 + movs r2, 0 + bl pokemon_getattr_encrypted + mov r2, r8 + ldr r1, [r2] + adds r1, r4 + ldr r2, =0x00000e78 + adds r1, r2 + strb r0, [r1] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0 + bl GetMonData + mov r2, r8 + ldr r1, [r2] + ldr r2, =0x00000e74 + adds r1, r2 + adds r1, r4 + str r0, [r1] + adds r0, r5, 0 + movs r1, 0x2E + movs r2, 0 + bl pokemon_getattr_encrypted + mov r2, r8 + ldr r1, [r2] + adds r1, r4 + ldr r2, =0x00000e79 + adds r1, r2 + strb r0, [r1] + ldrh r1, [r6] + ldr r0, =gUnknown_0203BC8C + ldr r0, [r0] + lsls r1, 4 + adds r1, r0 + ldrb r2, [r1, 0xA] + lsls r2, 1 + ldr r0, =gBattleFrontierHeldItems + adds r2, r0 + adds r0, r5, 0 + movs r1, 0xC + bl SetMonData + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x2 + bls _081A6408 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A63CC + + thumb_func_start sub_81A64C4 +sub_81A64C4: @ 81A64C4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000ca9 + adds r2, r0, r1 + ldrb r1, [r2] + movs r3, 0x3 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0x2 + bne _081A6500 + ldr r1, =gUnknown_0203BC8C + ldr r0, =gSlateportBattleTentMons + str r0, [r1] + movs r2, 0x1E + str r2, [sp, 0x14] + b _081A6518 + .pool +_081A6500: + ldr r1, =gUnknown_0203BC8C + ldr r0, =gBattleFrontierMons + str r0, [r1] + ldrb r1, [r2] + adds r0, r3, 0 + ands r0, r1 + movs r4, 0x32 + str r4, [sp, 0x14] + cmp r0, 0 + beq _081A6518 + movs r5, 0x64 + str r5, [sp, 0x14] +_081A6518: + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0x1 + bls _081A6522 + b _081A666C +_081A6522: + bl ZeroPlayerPartyMons + movs r0, 0 + mov r8, r0 + mov r1, sp + adds r1, 0x12 + str r1, [sp, 0x1C] + ldr r2, =gUnknown_0203BC8C + mov r9, r2 +_081A6534: + ldr r4, =gSaveBlock2Ptr + ldr r2, [r4] + mov r5, r8 + lsls r5, 1 + mov r10, r5 + mov r3, r10 + add r3, r8 + lsls r3, 2 + adds r1, r2, r3 + movs r4, 0xE7 + lsls r4, 4 + adds r0, r1, r4 + ldrh r7, [r0] + ldr r5, =0x00000e78 + adds r1, r5 + ldrb r6, [r1] + movs r1, 0x64 + mov r0, r8 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + mov r4, r9 + ldr r1, [r4] + lsls r4, r7, 4 + adds r1, r4, r1 + ldrh r1, [r1] + movs r5, 0x1 + str r5, [sp] + ldr r5, =0x00000e74 + adds r2, r5 + adds r2, r3 + ldr r2, [r2] + str r2, [sp, 0x4] + movs r2, 0 + str r2, [sp, 0x8] + str r2, [sp, 0xC] + ldr r2, [sp, 0x14] + adds r3, r6, 0 + bl create_pokemon_set_level + movs r1, 0 + mov r2, r9 + ldr r0, [r2] + adds r4, r0 + ldrb r4, [r4, 0xB] + mov r5, r8 + adds r5, 0x1 + str r5, [sp, 0x18] + movs r5, 0x5 +_081A6596: + adds r0, r4, 0 + movs r2, 0x1 + ands r0, r2 + cmp r0, 0 + beq _081A65A2 + adds r1, 0x1 +_081A65A2: + lsrs r4, 1 + subs r5, 0x1 + cmp r5, 0 + bge _081A6596 + movs r0, 0xFF + lsls r0, 1 + bl __divsi3 + add r1, sp, 0x10 + strh r0, [r1] + movs r4, 0x1 + movs r5, 0 + lsls r7, 4 + movs r0, 0x64 + mov r6, r8 + muls r6, r0 + ldr r3, =gPlayerParty +_081A65C4: + mov r1, r9 + ldr r0, [r1] + adds r0, r7, r0 + ldrb r0, [r0, 0xB] + ands r0, r4 + cmp r0, 0 + beq _081A65E2 + adds r1, r5, 0 + adds r1, 0x1A + adds r0, r6, r3 + add r2, sp, 0x10 + str r3, [sp, 0x20] + bl SetMonData + ldr r3, [sp, 0x20] +_081A65E2: + lsls r0, r4, 25 + lsrs r4, r0, 24 + adds r5, 0x1 + cmp r5, 0x5 + ble _081A65C4 + movs r2, 0x64 + mov r4, r8 + muls r4, r2 + ldr r5, =gPlayerParty + adds r0, r4, r5 + bl pokemon_calc_effective_stats + movs r0, 0 + ldr r1, [sp, 0x1C] + strb r0, [r1] + movs r6, 0 +_081A6602: + mov r2, r9 + ldr r0, [r2] + adds r0, r7, r0 + lsls r1, r6, 1 + adds r0, 0x2 + adds r0, r1 + ldrh r1, [r0] + lsls r2, r6, 24 + lsrs r2, 24 + adds r0, r4, r5 + bl sub_81A7024 + adds r6, 0x1 + cmp r6, 0x3 + ble _081A6602 + movs r5, 0x64 + mov r4, r8 + muls r4, r5 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x20 + ldr r2, [sp, 0x1C] + bl SetMonData + mov r1, r9 + ldr r0, [r1] + adds r0, r7, r0 + ldrb r2, [r0, 0xA] + lsls r2, 1 + ldr r0, =gBattleFrontierHeldItems + adds r2, r0 + adds r0, r4, 0 + movs r1, 0xC + bl SetMonData + mov r2, r10 + add r2, r8 + lsls r2, 2 + ldr r5, =gSaveBlock2Ptr + ldr r0, [r5] + adds r2, r0 + ldr r0, =0x00000e79 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x2E + bl SetMonData + ldr r1, [sp, 0x18] + mov r8, r1 + cmp r1, 0x2 + bgt _081A666C + b _081A6534 +_081A666C: + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0 + beq _081A667A + cmp r0, 0x2 + beq _081A667A + b _081A67AE +_081A667A: + movs r2, 0 + mov r8, r2 + ldr r4, =gUnknown_0203BC8C + mov r9, r4 +_081A6682: + ldr r5, =gSaveBlock2Ptr + ldr r3, [r5] + mov r0, r8 + adds r0, 0x3 + lsls r2, r0, 1 + adds r2, r0 + lsls r2, 2 + adds r1, r3, r2 + movs r4, 0xE7 + lsls r4, 4 + adds r0, r1, r4 + ldrh r7, [r0] + ldr r5, =0x00000e78 + adds r1, r5 + ldrb r6, [r1] + movs r1, 0x64 + mov r0, r8 + muls r0, r1 + ldr r1, =gEnemyParty + adds r0, r1 + mov r4, r9 + ldr r1, [r4] + lsls r4, r7, 4 + adds r1, r4, r1 + ldrh r1, [r1] + movs r5, 0x1 + str r5, [sp] + ldr r5, =0x00000e74 + adds r3, r5 + adds r3, r2 + ldr r2, [r3] + str r2, [sp, 0x4] + movs r2, 0 + str r2, [sp, 0x8] + str r2, [sp, 0xC] + ldr r2, [sp, 0x14] + adds r3, r6, 0 + bl create_pokemon_set_level + movs r1, 0 + mov r2, r9 + ldr r0, [r2] + adds r4, r0 + ldrb r4, [r4, 0xB] + mov r5, r8 + lsls r5, 1 + mov r10, r5 + mov r0, r8 + adds r0, 0x1 + str r0, [sp, 0x18] + movs r5, 0x5 +_081A66E8: + adds r0, r4, 0 + movs r2, 0x1 + ands r0, r2 + cmp r0, 0 + beq _081A66F4 + adds r1, 0x1 +_081A66F4: + lsrs r4, 1 + subs r5, 0x1 + cmp r5, 0 + bge _081A66E8 + add r4, sp, 0x10 + movs r0, 0xFF + lsls r0, 1 + bl __divsi3 + strh r0, [r4] + movs r4, 0x1 + movs r5, 0 + lsls r7, 4 + movs r0, 0x64 + mov r6, r8 + muls r6, r0 + ldr r3, =gEnemyParty +_081A6716: + mov r1, r9 + ldr r0, [r1] + adds r0, r7, r0 + ldrb r0, [r0, 0xB] + ands r0, r4 + cmp r0, 0 + beq _081A6734 + adds r1, r5, 0 + adds r1, 0x1A + adds r0, r6, r3 + add r2, sp, 0x10 + str r3, [sp, 0x20] + bl SetMonData + ldr r3, [sp, 0x20] +_081A6734: + lsls r0, r4, 25 + lsrs r4, r0, 24 + adds r5, 0x1 + cmp r5, 0x5 + ble _081A6716 + movs r2, 0x64 + mov r4, r8 + muls r4, r2 + ldr r5, =gEnemyParty + adds r0, r4, r5 + bl pokemon_calc_effective_stats + movs r6, 0 +_081A674E: + mov r1, r9 + ldr r0, [r1] + adds r0, r7, r0 + lsls r1, r6, 1 + adds r0, 0x2 + adds r0, r1 + ldrh r1, [r0] + lsls r2, r6, 24 + lsrs r2, 24 + adds r0, r4, r5 + bl sub_81A7024 + adds r6, 0x1 + cmp r6, 0x3 + ble _081A674E + movs r2, 0x64 + mov r4, r8 + muls r4, r2 + ldr r0, =gEnemyParty + adds r4, r0 + mov r5, r9 + ldr r0, [r5] + adds r0, r7, r0 + ldrb r2, [r0, 0xA] + lsls r2, 1 + ldr r0, =gBattleFrontierHeldItems + adds r2, r0 + adds r0, r4, 0 + movs r1, 0xC + bl SetMonData + mov r2, r10 + add r2, r8 + lsls r2, 2 + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + adds r2, r0 + ldr r5, =0x00000e9d + adds r2, r5 + adds r0, r4, 0 + movs r1, 0x2E + bl SetMonData + ldr r0, [sp, 0x18] + mov r8, r0 + cmp r0, 0x2 + bgt _081A67AE + b _081A6682 +_081A67AE: + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A64C4 + + thumb_func_start sub_81A67EC +sub_81A67EC: @ 81A67EC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4C + ldr r1, =gUnknown_0203BC88 + ldr r0, =gBattleFrontierTrainers + str r0, [r1] + mov r0, sp + adds r0, 0xC + str r0, [sp, 0x38] + mov r1, sp + adds r1, 0x18 + str r1, [sp, 0x3C] + ldr r2, =gSaveBlock2Ptr + mov r9, r2 + movs r2, 0 + adds r3, r1, 0 + adds r1, r0, 0 + mov r0, sp + movs r4, 0x5 + mov r8, r4 +_081A681A: + strh r2, [r0] + strh r2, [r1] + strh r2, [r3] + adds r3, 0x2 + adds r1, 0x2 + adds r0, 0x2 + movs r5, 0x1 + negs r5, r5 + add r8, r5 + mov r4, r8 + cmp r4, 0 + bge _081A681A + mov r5, r9 + ldr r0, [r5] + ldr r7, =0x00000ca9 + adds r0, r7 + ldrb r4, [r0] + lsls r4, 30 + lsrs r4, 30 + ldr r6, =0x000040ce + adds r0, r6, 0 + bl VarGet + lsls r0, 24 + ldr r1, [r5] + lsls r4, 1 + lsrs r0, 22 + adds r4, r0 + ldr r5, =0x00000de2 + adds r1, r5 + adds r1, r4 + ldrh r0, [r1] + movs r1, 0x7 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x24] + adds r0, r6, 0 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + movs r2, 0 + cmp r0, 0x1 + bne _081A6878 + movs r2, 0x1 +_081A6878: + ldr r1, =gUnknown_0203BC8C + ldr r0, =gBattleFrontierMons + str r0, [r1] + mov r1, r9 + ldr r0, [r1] + adds r0, r7 + ldrb r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _081A68B4 + movs r4, 0x1 + str r4, [sp, 0x28] + b _081A68B8 + .pool +_081A68B4: + movs r5, 0 + str r5, [sp, 0x28] +_081A68B8: + adds r0, r2, 0 + ldr r1, [sp, 0x28] + bl sub_81A6F70 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x2C] + movs r0, 0 + mov r10, r0 + mov r8, r0 + ldr r1, [sp, 0x3C] + str r1, [sp, 0x40] + mov r2, sp + str r2, [sp, 0x44] + lsls r4, r0, 1 + str r4, [sp, 0x30] + ldr r5, [sp, 0x38] + adds r5, r4 + str r5, [sp, 0x34] +_081A68DE: + ldr r0, [sp, 0x2C] + cmp r8, r0 + bge _081A68EC + ldr r0, [sp, 0x28] + ldr r1, [sp, 0x24] + movs r2, 0x1 + b _081A68F2 +_081A68EC: + ldr r0, [sp, 0x28] + ldr r1, [sp, 0x24] + movs r2, 0 +_081A68F2: + bl sub_81A6EF0 + lsls r0, 16 + lsrs r7, r0, 16 + ldr r0, =gUnknown_0203BC8C + ldr r1, [r0] + lsls r2, r7, 4 + adds r4, r2, r1 + ldrh r1, [r4] + mov r9, r2 + cmp r1, 0xC9 + beq _081A69E2 + movs r3, 0 + mov r2, r8 + adds r6, r3, r2 + cmp r3, r6 + bge _081A6950 + ldr r5, [sp, 0x34] + ldrh r0, [r5] + cmp r0, r7 + beq _081A6950 + mov r12, r4 + adds r2, r1, 0 + lsls r4, r3, 1 + ldr r1, [sp, 0x30] + add r1, sp + str r6, [sp, 0x48] +_081A6928: + ldrh r0, [r1] + cmp r0, r2 + bne _081A693A + mov r0, r10 + cmp r0, 0 + bne _081A6950 + mov r5, r12 + ldrh r5, [r5] + mov r10, r5 +_081A693A: + adds r4, 0x2 + adds r1, 0x2 + adds r3, 0x1 + ldr r0, [sp, 0x48] + cmp r3, r0 + bge _081A6950 + ldr r5, [sp, 0x38] + adds r0, r5, r4 + ldrh r0, [r0] + cmp r0, r7 + bne _081A6928 +_081A6950: + cmp r3, r6 + bne _081A69E2 + movs r3, 0 + cmp r3, r6 + bge _081A699C + ldr r0, =gBattleFrontierHeldItems + mov r12, r0 + ldr r1, [sp, 0x30] + ldr r2, [sp, 0x3C] + adds r5, r1, r2 +_081A6964: + ldrh r4, [r5] + cmp r4, 0 + beq _081A6994 + ldr r1, =gUnknown_0203BC8C + ldr r0, [r1] + mov r2, r9 + adds r1, r2, r0 + ldrb r0, [r1, 0xA] + lsls r0, 1 + add r0, r12 + ldrh r0, [r0] + cmp r4, r0 + bne _081A6994 + ldrh r0, [r1] + cmp r0, r10 + bne _081A699C + movs r4, 0 + mov r10, r4 + b _081A699C + .pool +_081A6994: + adds r5, 0x2 + adds r3, 0x1 + cmp r3, r6 + blt _081A6964 +_081A699C: + cmp r3, r6 + bne _081A69E2 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + mov r5, r8 + lsls r3, r5, 1 + adds r0, r3, r5 + lsls r0, 2 + adds r1, r0 + movs r0, 0xE7 + lsls r0, 4 + adds r1, r0 + strh r7, [r1] + ldr r2, =gUnknown_0203BC8C + ldr r1, [r2] + add r1, r9 + ldrh r0, [r1] + ldr r4, [sp, 0x44] + strh r0, [r4] + ldr r2, =gBattleFrontierHeldItems + ldrb r0, [r1, 0xA] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + ldr r5, [sp, 0x40] + strh r0, [r5] + ldr r0, [sp, 0x38] + adds r3, r0, r3 + strh r7, [r3] + adds r5, 0x2 + str r5, [sp, 0x40] + adds r4, 0x2 + str r4, [sp, 0x44] + movs r1, 0x1 + add r8, r1 +_081A69E2: + mov r2, r8 + cmp r2, 0x6 + beq _081A69EA + b _081A68DE +_081A69EA: + add sp, 0x4C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A67EC + + thumb_func_start sub_81A6A08 +sub_81A6A08: @ 81A6A08 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x18 + ldr r1, =gUnknown_0203BC8C + ldr r0, =gBattleFrontierMons + str r0, [r1] + movs r4, 0 + add r5, sp, 0x14 + ldr r7, =gScriptResult + movs r1, 0 +_081A6A1E: + mov r2, sp + adds r0, r2, r4 + strb r1, [r0] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x11 + bls _081A6A1E + movs r4, 0 + ldr r0, =gUnknown_03006298 + mov r8, r0 + ldr r0, =gUnknown_0203BC8C + ldr r6, [r0] + ldr r1, =gBaseStats + mov r12, r1 +_081A6A3C: + lsls r0, r4, 1 + add r0, r8 + ldrh r0, [r0] + lsls r0, 4 + adds r0, r6 + ldrh r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + mov r2, r12 + adds r3, r0, r2 + ldrb r2, [r3, 0x6] + mov r0, sp + adds r1, r0, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldrb r1, [r3, 0x7] + cmp r2, r1 + beq _081A6A70 + ldrb r0, [r3, 0x7] + mov r2, sp + adds r1, r2, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_081A6A70: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _081A6A3C + movs r0, 0 + strb r0, [r5] + strb r0, [r5, 0x1] + movs r4, 0x1 + adds r3, r5, 0 +_081A6A84: + ldrb r0, [r3] + add r0, sp + mov r2, sp + adds r1, r2, r4 + ldrb r2, [r0] + ldrb r0, [r1] + cmp r2, r0 + bcs _081A6AAC + strb r4, [r5] + b _081A6AB2 + .pool +_081A6AAC: + cmp r2, r0 + bne _081A6AB2 + strb r4, [r3, 0x1] +_081A6AB2: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x11 + bls _081A6A84 + ldrb r1, [r5] + mov r4, sp + adds r0, r4, r1 + ldrb r2, [r0] + cmp r2, 0 + beq _081A6ADA + ldrb r3, [r5, 0x1] + adds r0, r4, r3 + ldrb r0, [r0] + cmp r2, r0 + bhi _081A6AD6 + cmp r1, r3 + bne _081A6ADA +_081A6AD6: + strh r1, [r7] + b _081A6ADE +_081A6ADA: + movs r0, 0x12 + strh r0, [r7] +_081A6ADE: + add sp, 0x18 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81A6A08 + + thumb_func_start sub_81A6AEC +sub_81A6AEC: @ 81A6AEC + push {r4-r7,lr} + sub sp, 0x8 + movs r7, 0 + ldr r1, =gUnknown_0203BC8C + ldr r0, =gBattleFrontierMons + str r0, [r1] + movs r4, 0 + movs r1, 0 +_081A6AFC: + mov r2, sp + adds r0, r2, r4 + strb r1, [r0] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x7 + bls _081A6AFC + movs r4, 0 +_081A6B0E: + ldr r1, =gUnknown_03006298 + lsls r0, r4, 1 + adds r0, r1 + ldrh r6, [r0] + movs r5, 0 +_081A6B18: + ldr r0, =gUnknown_0203BC8C + ldr r1, [r0] + lsls r0, r6, 4 + adds r0, r1 + lsls r1, r5, 1 + adds r0, 0x2 + adds r0, r1 + ldrh r0, [r0] + bl sub_81A6BA4 + lsls r0, 24 + lsrs r0, 24 + mov r2, sp + adds r1, r2, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _081A6B18 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _081A6B0E + ldr r1, =gScriptResult + movs r0, 0 + strh r0, [r1] + movs r4, 0x1 + adds r5, r1, 0 + ldr r3, =gBattleFactoryStyleRequiredMoveCounts + adds r2, r5, 0 +_081A6B5C: + mov r1, sp + adds r0, r1, r4 + subs r1, r4, 0x1 + adds r1, r3 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bcc _081A6B74 + strh r4, [r2] + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 +_081A6B74: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x7 + bls _081A6B5C + cmp r7, 0x2 + bls _081A6B86 + movs r0, 0x8 + strh r0, [r5] +_081A6B86: + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A6AEC + + thumb_func_start sub_81A6BA4 +sub_81A6BA4: @ 81A6BA4 + push {r4-r6,lr} + lsls r0, 16 + lsrs r5, r0, 16 + movs r2, 0 + ldr r6, =gBattleFactoryStyleMoveListPointers +_081A6BAE: + movs r3, 0 + lsls r0, r2, 2 + adds r0, r6 + ldr r1, [r0] + ldrh r0, [r1] + adds r4, r2, 0x1 + cmp r0, 0 + beq _081A6BE4 + lsls r0, r4, 24 + lsrs r2, r0, 24 +_081A6BC2: + lsls r0, r3, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r5 + bne _081A6BD4 + adds r0, r2, 0 + b _081A6BEE + .pool +_081A6BD4: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0 + bne _081A6BC2 +_081A6BE4: + lsls r0, r4, 24 + lsrs r2, r0, 24 + cmp r2, 0x6 + bls _081A6BAE + movs r0, 0 +_081A6BEE: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81A6BA4 + + thumb_func_start sub_81A6BF4 +sub_81A6BF4: @ 81A6BF4 + push {lr} + movs r2, 0 + ldr r1, =gUnknown_02037318 + ldr r3, =0xfffffea5 + adds r0, r3, 0 + ldrh r1, [r1, 0x12] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _081A6C0C + movs r2, 0x1 +_081A6C0C: + adds r0, r2, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A6BF4 + + thumb_func_start sub_81A6C1C +sub_81A6C1C: @ 81A6C1C + push {r4,lr} + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x2 + beq _081A6C48 + ldr r1, =gUnknown_0203BC8C + ldr r0, =gBattleFrontierMons + b _081A6C4C + .pool +_081A6C48: + ldr r1, =gUnknown_0203BC8C + ldr r0, =gSlateportBattleTentMons +_081A6C4C: + str r0, [r1] + movs r4, 0 +_081A6C50: + movs r0, 0x64 + muls r0, r4 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gSaveBlock2Ptr + ldr r2, [r1] + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 2 + adds r2, r1 + movs r1, 0xE7 + lsls r1, 4 + adds r2, r1 + ldrh r2, [r2] + ldr r1, =gUnknown_0203BC8C + ldr r1, [r1] + lsls r2, 4 + adds r2, r1 + ldrb r2, [r2, 0xA] + lsls r2, 1 + ldr r1, =gBattleFrontierHeldItems + adds r2, r1 + movs r1, 0xC + bl SetMonData + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _081A6C50 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A6C1C + + thumb_func_start sub_81A6CA8 +sub_81A6CA8: @ 81A6CA8 + push {lr} + lsls r0, 24 + lsls r1, 24 + lsrs r1, 24 + negs r2, r1 + orrs r2, r1 + lsrs r2, 31 + lsrs r1, r0, 24 + cmp r1, 0x8 + bls _081A6CBE + movs r1, 0x7 +_081A6CBE: + ldr r0, =gUnknown_08612184 + lsls r1, 1 + adds r1, r2, r1 + adds r1, r0 + ldrb r0, [r1] + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A6CA8 + + thumb_func_start sub_81A6CD0 +sub_81A6CD0: @ 81A6CD0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x34 + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 30 + str r0, [sp, 0x2C] + ldr r0, =0x000040ce + bl VarGet + lsls r0, 24 + ldr r1, [r4] + ldr r3, [sp, 0x2C] + lsls r2, r3, 1 + lsrs r0, 22 + adds r2, r0 + ldr r7, =0x00000de2 + adds r1, r7 + adds r1, r2 + ldrh r0, [r1] + movs r1, 0x7 + bl __udivsi3 + lsls r0, 24 + lsrs r1, r0, 24 + str r1, [sp, 0x30] + movs r2, 0x80 + lsls r2, 18 + adds r0, r2 + lsrs r0, 24 + movs r1, 0 + bl sub_81A6CA8 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x24] + bl sub_8165C40 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x20] + movs r3, 0 + mov r9, r3 + ldr r1, [r4] + ldrb r4, [r1, 0xA] + ldrb r0, [r1, 0xB] + lsls r0, 8 + orrs r4, r0 + ldrb r0, [r1, 0xC] + lsls r0, 16 + orrs r4, r0 + ldrb r0, [r1, 0xD] + lsls r0, 24 + orrs r4, r0 + str r4, [sp, 0x28] +_081A6D4C: + ldr r0, [sp, 0x2C] + ldr r1, [sp, 0x30] + movs r2, 0 + bl sub_81A6EF0 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r7, =gUnknown_0203BC8C + ldr r1, [r7] + lsls r0, r5, 4 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0xC9 + bne _081A6D6A + b _081A6EB8 +_081A6D6A: + ldr r0, [sp, 0x20] + cmp r0, 0x32 + bne _081A6D78 + ldr r0, =0x00000351 + cmp r5, r0 + bls _081A6D78 + b _081A6EB8 +_081A6D78: + movs r2, 0 + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + movs r3, 0xE7 + lsls r3, 4 + adds r0, r3 + ldrh r0, [r0] + cmp r5, r0 + beq _081A6DA2 + adds r4, r1, 0 + movs r1, 0 +_081A6D8E: + adds r1, 0xC + adds r2, 0x1 + cmp r2, 0x5 + bgt _081A6DA2 + ldr r0, [r4] + adds r0, r1 + adds r0, r3 + ldrh r0, [r0] + cmp r5, r0 + bne _081A6D8E +_081A6DA2: + cmp r2, 0x6 + beq _081A6DA8 + b _081A6EB8 +_081A6DA8: + movs r4, 0 + cmp r4, r9 + bge _081A6DDC + add r2, sp, 0xC + ldr r7, =gUnknown_0203BC8C + ldr r0, [r7] + lsls r1, r5, 4 + adds r0, r1, r0 + ldrh r2, [r2] + adds r7, r1, 0 + ldrh r0, [r0] + cmp r2, r0 + beq _081A6DDC + ldr r6, =gUnknown_0203BC8C + adds r3, r7, 0 + add r2, sp, 0xC +_081A6DC8: + adds r2, 0x2 + adds r4, 0x1 + cmp r4, r9 + bge _081A6DDC + ldr r0, [r6] + adds r0, r3, r0 + ldrh r1, [r2] + ldrh r0, [r0] + cmp r1, r0 + bne _081A6DC8 +_081A6DDC: + cmp r4, r9 + bne _081A6EB8 + movs r4, 0 + cmp r4, r9 + bge _081A6E0C + ldr r7, =gBattleFrontierHeldItems + ldr r6, =gUnknown_0203BC8C + add r2, sp, 0x14 + lsls r3, r5, 4 +_081A6DEE: + ldrh r1, [r2] + cmp r1, 0 + beq _081A6E04 + ldr r0, [r6] + adds r0, r3, r0 + ldrb r0, [r0, 0xA] + lsls r0, 1 + adds r0, r7 + ldrh r0, [r0] + cmp r1, r0 + beq _081A6E0C +_081A6E04: + adds r2, 0x2 + adds r4, 0x1 + cmp r4, r9 + blt _081A6DEE +_081A6E0C: + cmp r4, r9 + bne _081A6EB8 + mov r0, r9 + lsls r2, r0, 1 + mov r1, sp + adds r1, r2 + adds r1, 0xC + ldr r3, =gUnknown_0203BC8C + ldr r4, [r3] + lsls r5, 4 + mov r8, r5 + add r4, r8 + ldrh r0, [r4] + strh r0, [r1] + add r1, sp, 0x14 + adds r1, r2 + ldr r2, =gBattleFrontierHeldItems + ldrb r0, [r4, 0xA] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1] + movs r0, 0x64 + mov r5, r9 + muls r5, r0 + ldr r6, =gEnemyParty + adds r0, r5, r6 + ldrh r1, [r4] + ldr r7, [sp, 0x20] + lsls r2, r7, 24 + ldrb r3, [r4, 0xC] + ldr r7, [sp, 0x24] + str r7, [sp] + ldrb r4, [r4, 0xB] + str r4, [sp, 0x4] + ldr r4, [sp, 0x28] + str r4, [sp, 0x8] + lsrs r2, 24 + bl sub_8068634 + add r0, sp, 0x1C + movs r7, 0 + strb r7, [r0] + movs r4, 0 + mov r7, r8 + mov r10, r0 + movs r0, 0x1 + add r0, r9 + mov r8, r0 +_081A6E6E: + ldr r1, =gUnknown_0203BC8C + ldr r0, [r1] + adds r0, r7, r0 + lsls r1, r4, 1 + adds r0, 0x2 + adds r0, r1 + ldrh r1, [r0] + lsls r2, r4, 24 + lsrs r2, 24 + adds r0, r5, r6 + bl sub_81A7024 + adds r4, 0x1 + cmp r4, 0x3 + ble _081A6E6E + movs r0, 0x64 + mov r4, r9 + muls r4, r0 + ldr r0, =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x20 + mov r2, r10 + bl SetMonData + ldr r2, =gUnknown_0203BC8C + ldr r0, [r2] + adds r0, r7, r0 + ldrb r2, [r0, 0xA] + lsls r2, 1 + ldr r0, =gBattleFrontierHeldItems + adds r2, r0 + adds r0, r4, 0 + movs r1, 0xC + bl SetMonData + mov r9, r8 +_081A6EB8: + mov r3, r9 + cmp r3, 0x3 + beq _081A6EC0 + b _081A6D4C +_081A6EC0: + add sp, 0x34 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A6CD0 + + thumb_func_start sub_81A6EF0 +sub_81A6EF0: @ 81A6EF0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r3, r1, 24 + lsls r2, 24 + lsrs r2, 24 + movs r4, 0x8 + negs r1, r0 + orrs r1, r0 + asrs r1, 31 + ands r1, r4 + adds r4, r1, 0 + cmp r3, 0x6 + bhi _081A6F2C + cmp r2, 0 + beq _081A6F20 + ldr r2, =gUnknown_08612194 + adds r1, r3 + adds r1, 0x1 + b _081A6F38 + .pool +_081A6F20: + ldr r2, =gUnknown_08612194 + adds r1, r3 + b _081A6F38 + .pool +_081A6F2C: + adds r1, r3, 0 + cmp r1, 0x7 + beq _081A6F34 + movs r1, 0x7 +_081A6F34: + ldr r2, =gUnknown_08612194 + adds r1, r4, r1 +_081A6F38: + lsls r1, 2 + adds r0, r2, 0x2 + adds r0, r1, r0 + adds r1, r2 + ldrh r0, [r0] + ldrh r4, [r1] + subs r0, r4 + adds r0, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r5, 0 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + adds r4, r0, r4 + lsls r4, 16 + lsrs r0, r4, 16 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A6EF0 + + thumb_func_start sub_81A6F70 +sub_81A6F70: @ 81A6F70 + push {lr} + lsls r0, 24 + lsls r1, 24 + ldr r2, =gSaveBlock2Ptr + ldr r2, [r2] + lsrs r1, 23 + lsrs r0, 22 + adds r1, r0 + ldr r0, =0x00000df2 + adds r2, r0 + adds r2, r1 + ldrb r1, [r2] + movs r0, 0 + cmp r1, 0xE + bls _081A6FA8 + movs r0, 0x1 + cmp r1, 0x15 + bls _081A6FA8 + movs r0, 0x2 + cmp r1, 0x1C + bls _081A6FA8 + movs r0, 0x3 + cmp r1, 0x23 + bls _081A6FA8 + movs r0, 0x5 + cmp r1, 0x2A + bhi _081A6FA8 + movs r0, 0x4 +_081A6FA8: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A6F70 + + thumb_func_start sub_81A6FB4 +sub_81A6FB4: @ 81A6FB4 + push {r4,r5,lr} + ldr r5, =gSaveBlock2Ptr + ldr r0, [r5] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + lsrs r4, r0, 30 + cmp r4, 0x2 + beq _081A6FF8 + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + ldr r1, [r5] + lsls r2, r4, 1 + lsrs r0, 14 + adds r2, r0 + ldr r0, =0x00000de2 + adds r1, r0 + adds r1, r2 + ldrh r0, [r1] + movs r1, 0x7 + bl __udivsi3 + lsls r0, 16 + lsrs r2, r0, 16 + ldr r0, =gUnknown_02038BCA + ldrh r1, [r0] + ldr r0, =0x000003fe + cmp r1, r0 + beq _081A7018 + cmp r2, 0x1 + bgt _081A7014 +_081A6FF8: + movs r0, 0 + b _081A701E + .pool +_081A7014: + cmp r2, 0x3 + ble _081A701C +_081A7018: + movs r0, 0x7 + b _081A701E +_081A701C: + movs r0, 0x1 +_081A701E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81A6FB4 + + thumb_func_start sub_81A7024 +sub_81A7024: @ 81A7024 + push {lr} + lsls r1, 16 + lsls r2, 24 + lsrs r2, 24 + lsrs r1, 16 + cmp r1, 0xD8 + bne _081A7034 + movs r1, 0xDA +_081A7034: + bl sub_80691F4 + pop {r0} + bx r0 + thumb_func_end sub_81A7024 + + thumb_func_start sub_81A703C +sub_81A703C: @ 81A703C + push {lr} + ldr r1, =gUnknown_086125F8 + ldr r0, =gSpecialVar_0x8004 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A703C + + thumb_func_start sub_81A705C +sub_81A705C: @ 81A705C + push {lr} + bl sub_81A79EC + ldr r1, =gUnknown_0300128C + strb r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A705C + + thumb_func_start sub_81A7070 +sub_81A7070: @ 81A7070 + push {r4-r7,lr} + ldr r0, =0x00004010 + movs r1, 0x1C + bl VarSet + ldr r0, =0x00004011 + movs r1, 0xE2 + bl VarSet + movs r4, 0x1 + movs r6, 0 + movs r5, 0 + movs r7, 0 + ldr r0, =gUnknown_0300128C + ldrb r0, [r0] + cmp r0, 0x8 + bhi _081A7132 + lsls r0, 2 + ldr r1, =_081A70AC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081A70AC: + .4byte _081A70D0 + .4byte _081A70DA + .4byte _081A70DE + .4byte _081A70E8 + .4byte _081A70FC + .4byte _081A70D6 + .4byte _081A7100 + .4byte _081A7108 + .4byte _081A710E +_081A70D0: + movs r0, 0 + bl sub_81A82A4 +_081A70D6: + movs r4, 0 + b _081A711A +_081A70DA: + movs r5, 0x1C + b _081A711A +_081A70DE: + bl sub_81A7B58 + lsls r0, 24 + lsrs r5, r0, 24 + b _081A711A +_081A70E8: + movs r5, 0x30 + ldr r0, =gUnknown_0300128D + ldrb r0, [r0] + movs r7, 0xE1 + cmp r0, 0x1 + bne _081A7118 + movs r7, 0xE2 + b _081A7118 + .pool +_081A70FC: + movs r5, 0x30 + b _081A711A +_081A7100: + movs r0, 0x1 + bl sub_81A82A4 + b _081A7114 +_081A7108: + bl sub_81A8374 + b _081A70D6 +_081A710E: + movs r0, 0x5 + bl sub_81A5030 +_081A7114: + movs r7, 0x1C + movs r4, 0 +_081A7118: + movs r6, 0x1 +_081A711A: + cmp r4, 0x1 + bne _081A7126 + ldr r0, =0x00004010 + adds r1, r5, 0 + bl VarSet +_081A7126: + cmp r6, 0x1 + bne _081A7132 + ldr r0, =0x00004011 + adds r1, r7, 0 + bl VarSet +_081A7132: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A7070 + + thumb_func_start sub_81A7140 +sub_81A7140: @ 81A7140 + push {lr} + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + ldr r2, =0x00000ca9 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 30 + lsrs r2, r0, 30 + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + adds r3, r1, 0 + cmp r0, 0x4 + bhi _081A723A + lsls r0, 2 + ldr r1, =_081A7174 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081A7174: + .4byte _081A7188 + .4byte _081A71A0 + .4byte _081A71C4 + .4byte _081A71E8 + .4byte _081A720C +_081A7188: + ldr r0, =gScriptResult + ldr r1, [r3] + ldr r3, =0x00000e02 + adds r1, r3 + ldrh r1, [r1] + strh r1, [r0] + b _081A723A + .pool +_081A71A0: + ldr r2, =gScriptResult + ldr r1, [r3] + ldr r3, =0x00000ca9 + adds r0, r1, r3 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 29 + ldr r3, =0x00000e04 + adds r1, r3 + adds r1, r0 + ldrh r0, [r1] + b _081A7238 + .pool +_081A71C4: + ldr r2, =gScriptResult + ldr r1, [r3] + ldr r3, =0x00000ca9 + adds r0, r1, r3 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 29 + ldr r3, =0x00000e08 + adds r1, r3 + adds r1, r0 + ldrh r0, [r1] + b _081A7238 + .pool +_081A71E8: + ldr r2, =gScriptResult + ldr r1, [r3] + ldr r3, =0x00000ca9 + adds r0, r1, r3 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 29 + ldr r3, =0x00000e0c + adds r1, r3 + adds r1, r0 + ldrh r0, [r1] + b _081A7238 + .pool +_081A720C: + cmp r2, 0 + beq _081A7228 + ldr r2, =gScriptResult + ldr r0, [r3] + ldr r1, =0x00000cdc + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 4 + b _081A7236 + .pool +_081A7228: + ldr r2, =gScriptResult + ldr r0, [r3] + ldr r3, =0x00000cdc + adds r0, r3 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 3 +_081A7236: + ands r0, r1 +_081A7238: + strh r0, [r2] +_081A723A: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A7140 + + thumb_func_start sub_81A7248 +sub_81A7248: @ 81A7248 + push {r4,r5,lr} + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + ldr r2, =0x00000ca9 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 30 + lsrs r3, r0, 30 + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + adds r2, r1, 0 + cmp r0, 0x4 + bls _081A7264 + b _081A73AA +_081A7264: + lsls r0, 2 + ldr r1, =_081A7280 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081A7280: + .4byte _081A7294 + .4byte _081A72AC + .4byte _081A72D8 + .4byte _081A7314 + .4byte _081A7344 +_081A7294: + ldr r0, [r2] + ldr r1, =gSpecialVar_0x8006 + ldrh r1, [r1] + ldr r5, =0x00000e02 + adds r0, r5 + strh r1, [r0] + b _081A73AA + .pool +_081A72AC: + ldr r0, =gSpecialVar_0x8006 + ldrh r3, [r0] + ldr r0, =0x0000270f + cmp r3, r0 + bls _081A72B8 + b _081A73AA +_081A72B8: + ldr r0, [r2] + ldr r2, =0x00000ca9 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, 30 + lsrs r1, 29 + ldr r5, =0x00000e04 + b _081A732C + .pool +_081A72D8: + ldr r0, =gSpecialVar_0x8006 + ldrh r4, [r0] + adds r3, r4, 0 + ldr r0, =0x0000270f + cmp r3, r0 + bhi _081A73AA + ldr r1, [r2] + ldr r2, =0x00000ca9 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r2, r0, 30 + lsrs r0, r2, 29 + ldr r5, =0x00000e08 + adds r1, r5 + adds r0, r1, r0 + ldrh r0, [r0] + cmp r0, r3 + bcs _081A73AA + lsrs r0, r2, 29 + adds r0, r1, r0 + strh r4, [r0] + b _081A73AA + .pool +_081A7314: + ldr r0, =gSpecialVar_0x8006 + ldrh r3, [r0] + ldr r0, =0x0000270f + cmp r3, r0 + bhi _081A73AA + ldr r0, [r2] + ldr r2, =0x00000ca9 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, 30 + lsrs r1, 29 + ldr r5, =0x00000e0c +_081A732C: + adds r0, r5 + adds r0, r1 + strh r3, [r0] + b _081A73AA + .pool +_081A7344: + cmp r3, 0 + beq _081A737C + ldr r0, =gSpecialVar_0x8006 + ldrh r0, [r0] + cmp r0, 0 + beq _081A7368 + ldr r0, [r2] + ldr r1, =0x00000cdc + adds r0, r1 + ldr r1, [r0] + movs r2, 0x80 + lsls r2, 4 + orrs r1, r2 + b _081A73A8 + .pool +_081A7368: + ldr r0, [r2] + ldr r2, =0x00000cdc + adds r0, r2 + ldr r1, [r0] + ldr r2, =0xfffff7ff + b _081A73A6 + .pool +_081A737C: + ldr r0, =gSpecialVar_0x8006 + ldrh r0, [r0] + cmp r0, 0 + beq _081A739C + ldr r0, [r2] + ldr r5, =0x00000cdc + adds r0, r5 + ldr r1, [r0] + movs r2, 0x80 + lsls r2, 3 + orrs r1, r2 + b _081A73A8 + .pool +_081A739C: + ldr r0, [r2] + ldr r1, =0x00000cdc + adds r0, r1 + ldr r1, [r0] + ldr r2, =0xfffffbff +_081A73A6: + ands r1, r2 +_081A73A8: + str r1, [r0] +_081A73AA: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A7248 + + thumb_func_start sub_81A73B8 +sub_81A73B8: @ 81A73B8 + push {lr} + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000cb2 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0xE + bls _081A73DC + ldr r1, =gScriptResult + movs r0, 0x1 + b _081A73E0 + .pool +_081A73DC: + ldr r1, =gScriptResult + movs r0, 0 +_081A73E0: + strh r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A73B8 + + thumb_func_start sub_81A73EC +sub_81A73EC: @ 81A73EC + ldr r0, =gScriptResult + ldr r1, =gUnknown_0300128C + ldrb r1, [r1] + strh r1, [r0] + bx lr + .pool + thumb_func_end sub_81A73EC + + thumb_func_start sub_81A7400 +sub_81A7400: @ 81A7400 + ldr r1, =gUnknown_0300128E + movs r0, 0x1 + strb r0, [r1] + bx lr + .pool + thumb_func_end sub_81A7400 + + thumb_func_start sub_81A740C +sub_81A740C: @ 81A740C + ldr r1, =gUnknown_0300128E + movs r0, 0 + strb r0, [r1] + bx lr + .pool + thumb_func_end sub_81A740C + + thumb_func_start sub_81A7418 +sub_81A7418: @ 81A7418 + push {r4,lr} + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =gSpecialVar_0x8005 + ldrh r1, [r1] + ldr r2, =0x00000ca8 + adds r0, r2 + strb r1, [r0] + movs r0, 0x80 + lsls r0, 7 + movs r1, 0 + bl VarSet + ldr r1, [r4] + ldr r0, =0x00000ca9 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + bl save_serialize_map + movs r0, 0x1 + bl TrySavingData + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A7418 + + thumb_func_start nullsub_76 +nullsub_76: @ 81A7460 + bx lr + thumb_func_end nullsub_76 + + thumb_func_start nullsub_124 +nullsub_124: @ 81A7464 + bx lr + thumb_func_end nullsub_124 + + thumb_func_start sub_81A7468 +sub_81A7468: @ 81A7468 + push {lr} + ldr r0, =gUnknown_03001290 + ldr r0, [r0] + cmp r0, 0x20 + beq _081A748E + cmp r0, 0x20 + bhi _081A7484 + cmp r0, 0x7 + beq _081A74BC + cmp r0, 0x10 + beq _081A7498 + b _081A74C2 + .pool +_081A7484: + cmp r0, 0x40 + beq _081A74B0 + cmp r0, 0x80 + beq _081A74A4 + b _081A74C2 +_081A748E: + ldr r1, =gScriptResult + movs r0, 0 + b _081A74C0 + .pool +_081A7498: + ldr r1, =gScriptResult + movs r0, 0x1 + b _081A74C0 + .pool +_081A74A4: + ldr r1, =gScriptResult + movs r0, 0x2 + b _081A74C0 + .pool +_081A74B0: + ldr r1, =gScriptResult + movs r0, 0x3 + b _081A74C0 + .pool +_081A74BC: + ldr r1, =gScriptResult + movs r0, 0x4 +_081A74C0: + strh r0, [r1] +_081A74C2: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A7468 + + thumb_func_start sub_81A74CC +sub_81A74CC: @ 81A74CC + ldr r0, =gScriptResult + ldr r1, =gUnknown_0300128D + ldrb r1, [r1] + strh r1, [r0] + bx lr + .pool + thumb_func_end sub_81A74CC + + thumb_func_start sub_81A74E0 +sub_81A74E0: @ 81A74E0 + push {r4,lr} + bl Random + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + movs r0, 0x1 + ands r4, r0 + adds r4, 0x1 + adds r0, r4, 0 + bl sub_81A7F38 + ldr r0, =gScriptResult + strh r4, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A74E0 + + thumb_func_start sub_81A7508 +sub_81A7508: @ 81A7508 + push {lr} + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000cb2 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0x4 + bhi _081A7538 + ldr r1, =gUnknown_0861231C + ldr r0, =gUnknown_03001294 + ldrb r0, [r0] + lsls r0, 3 + adds r0, r1 + ldrb r1, [r0, 0x2] + b _081A7560 + .pool +_081A7538: + cmp r0, 0xA + bhi _081A7554 + ldr r1, =gUnknown_0861231C + ldr r0, =gUnknown_03001294 + ldrb r0, [r0] + lsls r0, 3 + adds r0, r1 + ldrb r1, [r0, 0x3] + b _081A7560 + .pool +_081A7554: + ldr r1, =gUnknown_0861231C + ldr r0, =gUnknown_03001294 + ldrb r0, [r0] + lsls r0, 3 + adds r0, r1 + ldrb r1, [r0, 0x4] +_081A7560: + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_086123E4 + adds r0, r1 + bl ConvertBattleFrontierTrainerSpeechToString + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A7508 + + thumb_func_start sub_81A7580 +sub_81A7580: @ 81A7580 + push {lr} + ldr r0, =sub_81A7EE4 + movs r1, 0x2 + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A7580 + + thumb_func_start sub_81A7594 +sub_81A7594: @ 81A7594 + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r0, 0 + movs r4, 0 + movs r1, 0 +_081A759E: + mov r2, sp + adds r0, r2, r4 + strb r1, [r0] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _081A759E + adds r0, r5, 0 + movs r1, 0x3A + bl GetMonData + lsls r2, r0, 16 + mov r1, sp + strb r0, [r1] + mov r0, sp + lsrs r2, 24 + strb r2, [r0, 0x1] + adds r0, r5, 0 + movs r1, 0x39 + mov r2, sp + bl SetMonData + adds r0, r5, 0 + movs r1, 0x15 + bl GetMonData + lsls r0, 24 + lsrs r6, r0, 24 + movs r4, 0 +_081A75DA: + adds r1, r4, 0 + adds r1, 0xD + adds r0, r5, 0 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + adds r1, r6, 0 + adds r2, r4, 0 + bl CalcPPWithPPUps + mov r1, sp + strb r0, [r1] + adds r1, r4, 0 + adds r1, 0x11 + adds r0, r5, 0 + mov r2, sp + bl SetMonData + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _081A75DA + mov r0, sp + movs r1, 0 + strb r1, [r0] + strb r1, [r0, 0x1] + strb r1, [r0, 0x2] + strb r1, [r0, 0x3] + adds r0, r5, 0 + movs r1, 0x37 + mov r2, sp + bl SetMonData + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81A7594 + + thumb_func_start sub_81A7628 +sub_81A7628: @ 81A7628 + push {r4,lr} + adds r4, r1, 0 + bl GetMonAbility + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + cmp r4, 0x20 + beq _081A7652 + cmp r4, 0x20 + bhi _081A7648 + cmp r4, 0x7 + beq _081A7664 + cmp r4, 0x10 + beq _081A7658 + b _081A7674 +_081A7648: + cmp r4, 0x40 + beq _081A765E + cmp r4, 0x80 + beq _081A766E + b _081A7674 +_081A7652: + cmp r0, 0x28 + bne _081A7674 + b _081A7672 +_081A7658: + cmp r0, 0x29 + bne _081A7674 + b _081A7672 +_081A765E: + cmp r0, 0x7 + bne _081A7674 + b _081A7672 +_081A7664: + cmp r0, 0xF + beq _081A7672 + cmp r0, 0x48 + bne _081A7674 + b _081A7672 +_081A766E: + cmp r0, 0x11 + bne _081A7674 +_081A7672: + movs r1, 0x1 +_081A7674: + adds r0, r1, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81A7628 + + thumb_func_start sub_81A767C +sub_81A767C: @ 81A767C + push {lr} + lsls r0, 16 + lsrs r2, r0, 16 + movs r3, 0 + cmp r1, 0x20 + beq _081A76C4 + cmp r1, 0x20 + bhi _081A7696 + cmp r1, 0x7 + beq _081A771C + cmp r1, 0x10 + beq _081A7704 + b _081A771C +_081A7696: + cmp r1, 0x40 + beq _081A76E0 + cmp r1, 0x80 + bne _081A771C + ldr r1, =gBaseStats + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0, 0x6] + cmp r2, 0x8 + beq _081A771A + cmp r2, 0x3 + beq _081A771A + ldrb r0, [r0, 0x7] + cmp r0, 0x8 + beq _081A771A + cmp r0, 0x3 + bne _081A771C + b _081A771A + .pool +_081A76C4: + ldr r0, =gBaseStats + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x6] + cmp r0, 0xF + beq _081A771A + ldrb r0, [r1, 0x7] + cmp r0, 0xF + bne _081A771C + b _081A771A + .pool +_081A76E0: + ldr r1, =gBaseStats + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0, 0x6] + cmp r2, 0x4 + beq _081A771A + cmp r2, 0xD + beq _081A771A + ldrb r0, [r0, 0x7] + cmp r0, 0x4 + beq _081A771A + cmp r0, 0xD + bne _081A771C + b _081A771A + .pool +_081A7704: + ldr r0, =gBaseStats + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x6] + cmp r0, 0xA + beq _081A771A + ldrb r0, [r1, 0x7] + cmp r0, 0xA + bne _081A771C +_081A771A: + movs r3, 0x1 +_081A771C: + adds r0, r3, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A767C + + thumb_func_start sub_81A7728 +sub_81A7728: @ 81A7728 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + movs r6, 0 +_081A7736: + mov r1, sp + adds r0, r1, r6 + strb r6, [r0] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x2 + bls _081A7736 + movs r4, 0 + mov r8, r4 +_081A774A: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 24 + lsrs r6, r0, 24 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + mov r1, sp + adds r2, r1, r6 + ldrb r3, [r2] + adds r1, r0 + ldrb r0, [r1] + strb r0, [r2] + strb r3, [r1] + mov r0, r8 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + cmp r0, 0x9 + bls _081A774A + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r4, =0x00000cb2 + adds r0, r4 + ldrh r0, [r0] + movs r1, 0x1 + mov r10, r1 + cmp r0, 0x4 + bls _081A77A8 + movs r4, 0x3 + mov r10, r4 + cmp r0, 0x9 + bhi _081A77A8 + movs r0, 0x2 + mov r10, r0 +_081A77A8: + movs r1, 0 + str r1, [sp, 0x4] + ldr r7, =gUnknown_03001290 +_081A77AE: + movs r4, 0 + mov r9, r4 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0x22 + bhi _081A77DC + movs r0, 0x80 + b _081A77FC + .pool +_081A77DC: + cmp r0, 0x3B + bhi _081A77E4 + movs r0, 0x20 + b _081A77FC +_081A77E4: + cmp r0, 0x4F + bhi _081A77EC + movs r0, 0x40 + b _081A77FC +_081A77EC: + cmp r1, 0x59 + bhi _081A77FA + movs r0, 0x7 + b _081A77FC +_081A77F4: + movs r0, 0x1 + mov r9, r0 + b _081A786E +_081A77FA: + movs r0, 0x10 +_081A77FC: + str r0, [r7] + ldr r0, =gUnknown_03001290 + ldr r0, [r0] + ldr r1, [sp, 0x4] + cmp r1, r0 + beq _081A7874 + str r0, [sp, 0x4] + movs r4, 0 + mov r8, r4 + movs r6, 0 +_081A7810: + mov r1, sp + adds r0, r1, r6 + ldrb r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r5, r1, r0 + adds r0, r5, 0 + movs r1, 0x37 + bl GetMonData + bl pokemon_ailments_get_primary + lsls r0, 24 + cmp r0, 0 + bne _081A7860 + adds r0, r5, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _081A7860 + mov r0, r8 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + ldr r1, [r7] + adds r0, r4, 0 + bl sub_81A767C + lsls r0, 24 + cmp r0, 0 + beq _081A77F4 +_081A7860: + cmp r8, r10 + beq _081A786E + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x2 + bls _081A7810 +_081A786E: + mov r4, r8 + cmp r4, 0 + beq _081A78CC +_081A7874: + mov r0, r9 + cmp r0, 0 + beq _081A77AE + ldr r0, =gUnknown_03001290 + ldr r0, [r0] + cmp r0, 0x20 + beq _081A7898 + cmp r0, 0x20 + bhi _081A78D0 + cmp r0, 0x7 + beq _081A78D0 + cmp r0, 0x10 + beq _081A78A4 + b _081A78D0 + .pool +_081A7898: + ldr r1, =gUnknown_0300128D + movs r0, 0x1 + b _081A78D4 + .pool +_081A78A4: + bl Random + lsls r0, 16 + lsrs r1, r0, 16 + movs r2, 0x1 + ands r1, r2 + cmp r1, 0 + beq _081A78C0 + ldr r0, =gUnknown_0300128D + strb r2, [r0] + b _081A78D6 + .pool +_081A78C0: + ldr r0, =gUnknown_0300128D + strb r1, [r0] + b _081A78D6 + .pool +_081A78CC: + movs r0, 0 + b _081A7956 +_081A78D0: + ldr r1, =gUnknown_0300128D + movs r0, 0 +_081A78D4: + strb r0, [r1] +_081A78D6: + movs r1, 0 + mov r8, r1 + movs r6, 0 +_081A78DC: + mov r4, sp + adds r0, r4, r6 + ldrb r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r5, r1, r0 + adds r0, r5, 0 + movs r1, 0x37 + bl GetMonData + bl pokemon_ailments_get_primary + lsls r0, 24 + cmp r0, 0 + bne _081A7946 + adds r0, r5, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _081A7946 + mov r0, r8 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + ldr r7, =gUnknown_03001290 + ldr r1, [r7] + adds r0, r5, 0 + bl sub_81A7628 + lsls r0, 24 + cmp r0, 0 + bne _081A7946 + ldr r1, [r7] + adds r0, r4, 0 + bl sub_81A767C + lsls r0, 24 + cmp r0, 0 + bne _081A7946 + adds r0, r5, 0 + movs r1, 0x37 + adds r2, r7, 0 + bl SetMonData +_081A7946: + cmp r8, r10 + beq _081A7954 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x2 + bls _081A78DC +_081A7954: + movs r0, 0x1 +_081A7956: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A7728 + + thumb_func_start sub_81A7974 +sub_81A7974: @ 81A7974 + push {r4-r7,lr} + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000cb2 + adds r0, r1 + ldrh r0, [r0] + movs r7, 0x1 + cmp r0, 0x4 + bls _081A798E + movs r7, 0x3 + cmp r0, 0x9 + bhi _081A798E + movs r7, 0x2 +_081A798E: + movs r6, 0 + movs r5, 0 + b _081A79A2 + .pool +_081A799C: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_081A79A2: + cmp r5, 0x2 + bhi _081A79D8 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData + bl pokemon_ailments_get_primary + lsls r0, 24 + cmp r0, 0 + bne _081A79D4 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _081A79D4 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_081A79D4: + cmp r6, r7 + bne _081A799C +_081A79D8: + cmp r6, 0 + beq _081A79E4 + movs r0, 0x1 + b _081A79E6 + .pool +_081A79E4: + movs r0, 0 +_081A79E6: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81A7974 + + thumb_func_start sub_81A79EC +sub_81A79EC: @ 81A79EC + push {r4-r6,lr} + sub sp, 0x8 + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + movs r4, 0xE1 + lsls r4, 4 + adds r0, r4 + ldrb r2, [r0] + movs r3, 0x78 + ands r3, r2 + adds r5, r1, 0 + cmp r3, 0x40 + bne _081A7A10 + lsls r0, r2, 25 + lsrs r0, 28 + b _081A7B48 + .pool +_081A7A10: + ldr r0, =gSpecialVar_0x8007 + lsls r1, r2, 29 + ldrh r0, [r0] + lsrs r1, 29 + cmp r0, r1 + bne _081A7A34 + cmp r3, 0x18 + bne _081A7A24 + bl sub_81A7728 +_081A7A24: + ldr r0, [r5] + adds r0, r4 + ldrb r0, [r0] + lsls r0, 25 + lsrs r0, 28 + b _081A7B48 + .pool +_081A7A34: + movs r2, 0 + ldr r3, =gUnknown_0861266C + movs r1, 0 +_081A7A3A: + mov r4, sp + adds r0, r4, r2 + strb r1, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x7 + bls _081A7A3A + movs r4, 0x8 + ldr r0, [r5] + movs r6, 0xE1 + lsls r6, 4 + adds r0, r6 + ldrb r0, [r0] + lsls r0, 25 + lsrs r0, 28 + adds r0, r3 + ldrb r1, [r0] + movs r2, 0 + adds r5, r3, 0 + movs r3, 0x1 +_081A7A64: + adds r0, r2, r5 + ldrb r0, [r0] + cmp r0, r1 + bne _081A7A78 + mov r6, sp + adds r0, r6, r2 + strb r3, [r0] + subs r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_081A7A78: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x7 + bls _081A7A64 + mov r0, sp + ldrb r0, [r0, 0x7] + cmp r0, 0x1 + beq _081A7AA0 + bl sub_81A8554 + lsls r0, 24 + cmp r0, 0 + bne _081A7AA0 + mov r1, sp + movs r0, 0x1 + strb r0, [r1, 0x7] + subs r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_081A7AA0: + mov r0, sp + ldrb r0, [r0, 0x3] + cmp r0, 0x1 + beq _081A7ABE + bl sub_81A7974 + lsls r0, 24 + cmp r0, 0 + bne _081A7ABE + mov r1, sp + movs r0, 0x1 + strb r0, [r1, 0x3] + subs r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_081A7ABE: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + movs r1, 0xE1 + lsls r1, 4 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081A7AFA + mov r0, sp + ldrb r0, [r0, 0x1] + cmp r0, 0x1 + beq _081A7AE6 + mov r1, sp + movs r0, 0x1 + strb r0, [r1, 0x1] + subs r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_081A7AE6: + mov r0, sp + ldrb r0, [r0, 0x4] + cmp r0, 0x1 + beq _081A7AFA + mov r1, sp + movs r0, 0x1 + strb r0, [r1, 0x4] + subs r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_081A7AFA: + adds r0, r4, 0 + bl AllocZeroed + adds r5, r0, 0 + movs r3, 0 + movs r2, 0 +_081A7B06: + mov r6, sp + adds r0, r6, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _081A7B1C + adds r1, r3, 0 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + adds r1, r5, r1 + strb r2, [r1] +_081A7B1C: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x7 + bls _081A7B06 + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r4, 0 + bl __modsi3 + adds r0, r5, r0 + ldrb r4, [r0] + adds r0, r5, 0 + bl Free + cmp r4, 0x3 + bne _081A7B46 + bl sub_81A7728 +_081A7B46: + adds r0, r4, 0 +_081A7B48: + add sp, 0x8 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A79EC + + thumb_func_start sub_81A7B58 +sub_81A7B58: @ 81A7B58 + push {r4,lr} + ldr r4, =gUnknown_03001294 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x19 + bl __umodsi3 + strb r0, [r4] + ldr r1, =gUnknown_0861231C + ldrb r0, [r4] + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0] + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A7B58 + + thumb_func_start sub_81A7B84 +sub_81A7B84: @ 81A7B84 + ldr r0, =gUnknown_0300128E + ldrb r0, [r0] + bx lr + .pool + thumb_func_end sub_81A7B84 + + thumb_func_start sub_81A7B90 +sub_81A7B90: @ 81A7B90 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + bl sub_81A7D00 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r7, =gSaveBlock2Ptr + ldr r0, [r7] + ldr r4, =0x00000ca9 + adds r0, r4 + ldrb r0, [r0] + lsls r0, 30 + ldr r1, =gUnknown_08612314 + lsrs r0, 28 + adds r0, r1 + ldr r0, [r0] + str r0, [sp, 0x4] + ldr r0, =gEnemyParty + movs r1, 0xB + movs r2, 0 + bl GetMonData + adds r5, r0, 0 + lsls r0, r5, 16 + lsrs r0, 16 + bl sub_81A890C + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, [r7] + adds r0, r4 + ldrb r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _081A7C1C + bl sub_8165CB4 + adds r7, r0, 0 + cmp r7, 0x3B + ble _081A7C08 + lsls r0, r6, 2 + ldr r1, [sp, 0x4] + adds r0, r1 + ldr r1, [r0] + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x2] + subs r7, r0 + cmp r7, 0x3B + bgt _081A7C32 +_081A7C08: + movs r7, 0x3C + b _081A7C32 + .pool +_081A7C1C: + lsls r0, r6, 2 + ldr r2, [sp, 0x4] + adds r0, r2 + ldr r1, [r0] + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x2] + movs r0, 0x32 + subs r7, r0, r1 +_081A7C32: + mov r0, r8 + cmp r0, 0x1 + bne _081A7C4A + lsls r0, r7, 24 + lsrs r0, 24 + bl sub_81A88B0 + lsls r0, 24 + cmp r0, 0 + bne _081A7C4A + movs r0, 0 + b _081A7CE2 +_081A7C4A: + ldr r0, =gEnemyParty + ldr r1, =gBaseStats + mov r8, r1 + lsls r6, 2 + mov r9, r6 + ldr r2, [sp, 0x4] + add r2, r9 + mov r10, r2 + ldr r1, [r2] + lsls r6, r5, 1 + adds r4, r6, r5 + lsls r4, 2 + adds r1, r4, r1 + ldrh r2, [r1] + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + add r1, r8 + ldrb r2, [r1, 0x13] + movs r1, 0xCA + lsls r1, 1 + muls r2, r1 + lsls r1, r7, 2 + ldr r3, =gExperienceTables + adds r1, r3 + adds r2, r1 + movs r1, 0x19 + bl SetMonData + mov r1, r10 + ldr r0, [r1] + adds r4, r0 + ldrh r1, [r4] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r8 + ldrb r0, [r0, 0x17] + mov r7, r9 + cmp r0, 0 + beq _081A7CA8 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + ands r0, r1 +_081A7CA8: + str r0, [sp] + ldr r0, =gEnemyParty + movs r1, 0x2E + mov r2, sp + bl SetMonData + movs r4, 0 + adds r0, r6, r5 + lsls r6, r0, 2 +_081A7CBA: + ldr r2, [sp, 0x4] + adds r0, r7, r2 + ldr r0, [r0] + adds r0, r6, r0 + lsls r1, r4, 1 + adds r0, 0x4 + adds r0, r1 + ldrh r1, [r0] + lsls r2, r4, 24 + lsrs r2, 24 + ldr r0, =gEnemyParty + bl sub_80691F4 + adds r4, 0x1 + cmp r4, 0x3 + ble _081A7CBA + ldr r0, =gEnemyParty + bl pokemon_calc_effective_stats + movs r0, 0x1 +_081A7CE2: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A7B90 + + thumb_func_start sub_81A7D00 +sub_81A7D00: @ 81A7D00 + push {lr} + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r2, =0x00000ca9 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 29 + ldr r2, =0x00000e04 + adds r1, r2 + adds r1, r0 + ldrh r1, [r1] + adds r2, r1, 0 + movs r0, 0x8C + lsls r0, 1 + cmp r1, r0 + bhi _081A7D34 + movs r1, 0 + b _081A7D4C + .pool +_081A7D34: + movs r0, 0x8C + lsls r0, 2 + cmp r1, r0 + bhi _081A7D40 + movs r1, 0x1 + b _081A7D4C +_081A7D40: + movs r0, 0xD2 + lsls r0, 2 + movs r1, 0x3 + cmp r2, r0 + bhi _081A7D4C + movs r1, 0x2 +_081A7D4C: + adds r0, r1, 0 + pop {r1} + bx r1 + thumb_func_end sub_81A7D00 + + thumb_func_start sub_81A7D54 +sub_81A7D54: @ 81A7D54 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, =gUnknown_08612688 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_081A7D66: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _081A7D66 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A7D54 + + thumb_func_start sub_81A7D8C +sub_81A7D8C: @ 81A7D8C + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x14] + movs r2, 0x14 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _081A7DA4 + subs r0, r1, 0x1 + strh r0, [r4, 0x14] + lsls r0, 16 + cmp r0, 0 + bne _081A7DC8 +_081A7DA4: + ldrh r0, [r4, 0xA] + strh r0, [r4, 0x14] + ldrh r0, [r4, 0x10] + ldrh r1, [r4, 0x16] + adds r0, r1 + strh r0, [r4, 0x16] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _081A7DBC + movs r0, 0x10 + strh r0, [r4, 0x16] +_081A7DBC: + movs r0, 0x1 + negs r0, r0 + ldrb r1, [r4, 0x16] + ldr r2, =0x00002d6b + bl BlendPalettes +_081A7DC8: + movs r2, 0x16 + ldrsh r0, [r4, r2] + cmp r0, 0xF + ble _081A7DDA + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + ldrh r0, [r4, 0xC] + strh r0, [r4, 0x14] +_081A7DDA: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A7D8C + + thumb_func_start sub_81A7DE8 +sub_81A7DE8: @ 81A7DE8 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x14] + movs r2, 0x14 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _081A7E00 + subs r0, r1, 0x1 + strh r0, [r4, 0x14] + lsls r0, 16 + cmp r0, 0 + bne _081A7E22 +_081A7E00: + ldrh r0, [r4, 0xC] + strh r0, [r4, 0x14] + ldrh r0, [r4, 0x16] + ldrh r1, [r4, 0x12] + subs r0, r1 + strh r0, [r4, 0x16] + lsls r0, 16 + cmp r0, 0 + bge _081A7E16 + movs r0, 0 + strh r0, [r4, 0x16] +_081A7E16: + movs r0, 0x1 + negs r0, r0 + ldrb r1, [r4, 0x16] + ldr r2, =0x00002d6b + bl BlendPalettes +_081A7E22: + movs r0, 0x16 + ldrsh r1, [r4, r0] + cmp r1, 0 + bne _081A7E56 + ldrh r0, [r4, 0xE] + subs r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + cmp r0, 0 + bne _081A7E50 + ldr r0, =sub_81A7D54 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + b _081A7E56 + .pool +_081A7E50: + ldrh r0, [r4, 0xA] + strh r0, [r4, 0x14] + strh r1, [r4, 0x8] +_081A7E56: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81A7DE8 + + thumb_func_start sub_81A7E60 +sub_81A7E60: @ 81A7E60 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x4 + mov r8, r0 + adds r4, r1, 0 + adds r5, r2, 0 + adds r6, r3, 0 + ldr r3, [sp, 0x18] + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + lsls r6, 16 + lsrs r6, 16 + lsls r3, 16 + lsrs r3, 16 + ldr r0, =sub_81A7D54 + movs r1, 0x3 + str r3, [sp] + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + mov r0, r8 + strh r0, [r1, 0xA] + strh r4, [r1, 0xC] + strh r5, [r1, 0xE] + strh r6, [r1, 0x10] + ldr r3, [sp] + strh r3, [r1, 0x12] + strh r0, [r1, 0x14] + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A7E60 + + thumb_func_start sub_81A7EC4 +sub_81A7EC4: @ 81A7EC4 + push {lr} + ldr r0, =sub_81A7D54 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _081A7EDC + movs r0, 0 + b _081A7EDE + .pool +_081A7EDC: + movs r0, 0x1 +_081A7EDE: + pop {r1} + bx r1 + thumb_func_end sub_81A7EC4 + + thumb_func_start sub_81A7EE4 +sub_81A7EE4: @ 81A7EE4 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r1 + ldrh r2, [r1, 0x8] + movs r3, 0x8 + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _081A7F1C + adds r0, r2, 0x1 + strh r0, [r1, 0x8] + movs r0, 0x2 + str r0, [sp] + movs r0, 0 + movs r1, 0 + movs r2, 0x3 + movs r3, 0x2 + bl sub_81A7E60 + b _081A7F30 + .pool +_081A7F1C: + bl sub_81A7EC4 + lsls r0, 24 + cmp r0, 0 + beq _081A7F30 + bl script_env_2_enable_and_set_ctx_running + adds r0, r4, 0 + bl DestroyTask +_081A7F30: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81A7EE4 + + thumb_func_start sub_81A7F38 +sub_81A7F38: @ 81A7F38 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + cmp r0, 0 + bne _081A7F50 + b _081A807A +_081A7F50: + movs r0, 0 + mov r8, r0 +_081A7F54: + mov r0, sp + add r0, r8 + mov r1, r8 + strb r1, [r0] + mov r0, r8 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + cmp r0, 0x2 + bls _081A7F54 + movs r5, 0 +_081A7F6C: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 24 + lsrs r4, r0, 24 + mov r2, sp + add r2, r8 + ldrb r3, [r2] + mov r0, sp + adds r1, r0, r4 + ldrb r0, [r1] + strb r0, [r2] + strb r3, [r1] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x9 + bls _081A7F6C + movs r1, 0 + mov r8, r1 +_081A7FB0: + movs r0, 0 + mov r10, r0 + mov r4, sp + add r4, r8 + ldrb r1, [r4] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r7, r1, r0 + adds r0, r7, 0 + movs r1, 0x39 + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r7, 0 + movs r1, 0x3A + bl GetMonData + lsls r0, 16 + lsrs r6, r0, 16 + str r4, [sp, 0x8] + cmp r5, r6 + bcc _081A8044 + adds r0, r7, 0 + movs r1, 0x37 + bl GetMonData + bl pokemon_ailments_get_primary + lsls r0, 24 + cmp r0, 0 + beq _081A7FFC + movs r0, 0x1 + mov r10, r0 + b _081A8048 + .pool +_081A7FFC: + adds r0, r7, 0 + movs r1, 0x15 + bl GetMonData + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r4, 0 + b _081A8014 +_081A800E: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_081A8014: + cmp r4, 0x3 + bhi _081A8048 + adds r1, r4, 0 + adds r1, 0xD + adds r0, r7, 0 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + mov r1, r9 + adds r2, r4, 0 + bl CalcPPWithPPUps + lsls r0, 24 + lsrs r6, r0, 24 + adds r1, r4, 0 + adds r1, 0x11 + adds r0, r7, 0 + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r6 + bcs _081A800E +_081A8044: + movs r1, 0x1 + mov r10, r1 +_081A8048: + mov r0, r10 + cmp r0, 0x1 + bne _081A806C + ldr r0, [sp, 0x8] + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + bl sub_81A7594 + ldr r0, [sp, 0x4] + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + cmp r0, 0 + beq _081A807A +_081A806C: + mov r0, r8 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + cmp r0, 0x2 + bls _081A7FB0 +_081A807A: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A7F38 + + thumb_func_start sub_81A8090 +sub_81A8090: @ 81A8090 + push {r4,lr} + ldr r4, =gScriptResult + bl InBattlePike + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A8090 + + thumb_func_start InBattlePike +InBattlePike: @ 81A80A8 + push {lr} + movs r2, 0 + ldr r0, =gUnknown_02037318 + ldrh r1, [r0, 0x12] + ldr r3, =0xfffffea1 + adds r0, r1, r3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bls _081A80CA + movs r0, 0xB3 + lsls r0, 1 + cmp r1, r0 + beq _081A80CA + adds r0, 0x1 + cmp r1, r0 + bne _081A80CC +_081A80CA: + movs r2, 0x1 +_081A80CC: + adds r0, r2, 0 + pop {r1} + bx r1 + .pool + thumb_func_end InBattlePike + + thumb_func_start sub_81A80DC +sub_81A80DC: @ 81A80DC + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r4, =gScriptResult + movs r0, 0 + strh r0, [r4] + movs r0, 0x1 + bl sub_81A8590 + lsls r0, 24 + cmp r0, 0 + beq _081A8138 + movs r0, 0x1 + strh r0, [r4] + bl Random + ldr r5, =gSaveBlock2Ptr + ldr r4, [r5] + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x6 + bl __umodsi3 + movs r3, 0xE1 + lsls r3, 4 + adds r4, r3 + movs r1, 0x7 + ands r1, r0 + ldrb r2, [r4] + movs r0, 0x8 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + ldr r2, [r5] + adds r2, r3 + ldrb r1, [r2] + movs r0, 0x79 + negs r0, r0 + ands r0, r1 + movs r1, 0x40 + b _081A8248 + .pool +_081A8138: + bl Random + ldr r7, =gSaveBlock2Ptr + ldr r4, [r7] + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + movs r3, 0xE1 + lsls r3, 4 + adds r4, r3 + movs r1, 0x7 + ands r1, r0 + ldrb r2, [r4] + movs r0, 0x8 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + ldr r0, [r7] + adds r0, r3 + ldrb r1, [r0] + movs r0, 0x80 + ands r0, r1 + movs r6, 0x8 + cmp r0, 0 + beq _081A8172 + movs r6, 0x6 +_081A8172: + adds r0, r6, 0 + bl AllocZeroed + adds r5, r0, 0 + movs r2, 0 + movs r3, 0 + cmp r2, r6 + bcs _081A81BE + adds r4, r7, 0 +_081A8184: + ldr r0, [r4] + movs r1, 0xE1 + lsls r1, 4 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081A81B0 + cmp r2, 0x1 + beq _081A81B4 + cmp r2, 0x4 + beq _081A81B4 + adds r1, r3, 0 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + adds r1, r5, r1 + strb r2, [r1] + b _081A81B4 + .pool +_081A81B0: + adds r0, r5, r2 + strb r2, [r0] +_081A81B4: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, r6 + bcc _081A8184 +_081A81BE: + bl Random + ldr r7, =gSaveBlock2Ptr + ldr r4, [r7] + lsls r0, 16 + lsrs r0, 16 + adds r1, r6, 0 + bl __modsi3 + adds r0, r5, r0 + ldrb r0, [r0] + movs r6, 0xE1 + lsls r6, 4 + adds r4, r6 + movs r1, 0xF + ands r1, r0 + lsls r1, 3 + ldrb r2, [r4] + movs r0, 0x79 + negs r0, r0 + mov r8, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + adds r0, r5, 0 + bl Free + ldr r0, [r7] + adds r0, r6 + ldrb r1, [r0] + movs r0, 0x78 + ands r0, r1 + cmp r0, 0x18 + bne _081A821C + bl sub_81A7974 + lsls r0, 24 + cmp r0, 0 + bne _081A821C + ldr r2, [r7] + adds r2, r6 + ldrb r1, [r2] + mov r0, r8 + ands r0, r1 + movs r1, 0x10 + orrs r0, r1 + strb r0, [r2] +_081A821C: + ldr r5, =gSaveBlock2Ptr + ldr r0, [r5] + movs r4, 0xE1 + lsls r4, 4 + adds r0, r4 + ldrb r1, [r0] + movs r0, 0x78 + ands r0, r1 + cmp r0, 0x38 + bne _081A824C + bl sub_81A8554 + lsls r0, 24 + cmp r0, 0 + bne _081A824C + ldr r2, [r5] + adds r2, r4 + ldrb r1, [r2] + movs r0, 0x79 + negs r0, r0 + ands r0, r1 + movs r1, 0x10 +_081A8248: + orrs r0, r1 + strb r0, [r2] +_081A824C: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A80DC + + thumb_func_start sub_81A825C +sub_81A825C: @ 81A825C + ldr r1, =gScriptResult + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + movs r2, 0xE1 + lsls r2, 4 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 29 + lsrs r0, 29 + strh r0, [r1] + bx lr + .pool + thumb_func_end sub_81A825C + + thumb_func_start sub_81A827C +sub_81A827C: @ 81A827C + ldr r2, =gScriptResult + ldr r1, =gUnknown_0861266C + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + movs r3, 0xE1 + lsls r3, 4 + adds r0, r3 + ldrb r0, [r0] + lsls r0, 25 + lsrs r0, 28 + adds r0, r1 + ldrb r0, [r0] + strh r0, [r2] + bx lr + .pool + thumb_func_end sub_81A827C + + thumb_func_start sub_81A82A4 +sub_81A82A4: @ 81A82A4 + push {r4-r7,lr} + lsls r0, 24 + movs r7, 0x6 + cmp r0, 0 + bne _081A82B0 + movs r7, 0x1 +_081A82B0: + ldr r4, =gSaveBlock2Ptr + ldr r1, [r4] + ldr r2, =0x00000ca9 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 29 + ldr r2, =0x00000e04 + adds r1, r2 + adds r1, r0 + ldrh r0, [r1] + movs r1, 0xE + bl __udivsi3 + lsls r0, 16 + lsrs r6, r0, 16 + adds r5, r4, 0 +_081A82D2: + lsls r0, r6, 24 + lsrs r0, 24 + adds r1, r7, 0 + bl sub_8162548 + lsls r0, 16 + lsrs r4, r0, 16 + movs r3, 0 + ldr r1, [r5] + ldr r2, =0x00000cb2 + adds r0, r1, r2 + ldrh r0, [r0] + subs r2, r0, 0x1 + cmp r3, r2 + bge _081A831A + ldr r0, =0x00000cb4 + adds r1, r0 + b _081A8314 + .pool +_081A830C: + adds r1, 0x2 + adds r3, 0x1 + cmp r3, r2 + bge _081A831A +_081A8314: + ldrh r0, [r1] + cmp r0, r4 + bne _081A830C +_081A831A: + ldr r0, [r5] + ldr r1, =0x00000cb2 + adds r0, r1 + ldrh r0, [r0] + subs r0, 0x1 + cmp r3, r0 + bne _081A82D2 + ldr r5, =gUnknown_02038BCA + strh r4, [r5] + ldr r1, =gUnknown_0203BC88 + ldr r0, =gBattleFrontierTrainers + str r0, [r1] + ldrh r0, [r5] + movs r1, 0 + bl sub_8162614 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r0, =0x00000cb2 + adds r2, r1, r0 + ldrh r0, [r2] + cmp r0, 0xD + bhi _081A8356 + subs r0, 0x1 + lsls r0, 1 + ldr r2, =0x00000cb4 + adds r1, r2 + adds r1, r0 + ldrh r0, [r5] + strh r0, [r1] +_081A8356: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A82A4 + + thumb_func_start sub_81A8374 +sub_81A8374: @ 81A8374 + push {r4-r7,lr} + ldr r4, =gSaveBlock2Ptr + ldr r1, [r4] + ldr r2, =0x00000ca9 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 29 + ldr r2, =0x00000e04 + adds r1, r2 + adds r1, r0 + ldrh r0, [r1] + movs r1, 0xE + bl __udivsi3 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r1, =gUnknown_0203BC88 + ldr r0, =gBattleFrontierTrainers + str r0, [r1] + lsls r7, r5, 24 + adds r6, r4, 0 +_081A83A0: + lsls r0, r5, 24 + lsrs r0, 24 + movs r1, 0x1 + bl sub_8162548 + lsls r0, 16 + lsrs r4, r0, 16 + movs r3, 0 + ldr r1, [r6] + ldr r2, =0x00000cb2 + adds r0, r1, r2 + ldrh r0, [r0] + subs r2, r0, 0x1 + cmp r3, r2 + bge _081A83EE + ldr r0, =0x00000cb4 + adds r1, r0 + b _081A83E8 + .pool +_081A83E0: + adds r1, 0x2 + adds r3, 0x1 + cmp r3, r2 + bge _081A83EE +_081A83E8: + ldrh r0, [r1] + cmp r0, r4 + bne _081A83E0 +_081A83EE: + ldr r0, [r6] + ldr r1, =0x00000cb2 + adds r0, r1 + ldrh r0, [r0] + subs r0, 0x1 + cmp r3, r0 + bne _081A83A0 + ldr r5, =gUnknown_02038BCA + strh r4, [r5] + ldrh r0, [r5] + movs r1, 0 + bl sub_8162614 + ldr r3, =gSaveBlock2Ptr + ldr r1, [r3] + ldr r0, =0x00000cb2 + adds r2, r1, r0 + ldrh r0, [r2] + cmp r0, 0xE + bhi _081A8424 + subs r0, 0x1 + lsls r0, 1 + ldr r2, =0x00000cb4 + adds r1, r2 + adds r1, r0 + ldrh r0, [r5] + strh r0, [r1] +_081A8424: + adds r5, r3, 0 +_081A8426: + lsrs r0, r7, 24 + movs r1, 0x1 + bl sub_8162548 + lsls r0, 16 + lsrs r4, r0, 16 + movs r3, 0 + ldr r1, [r5] + ldr r2, =0x00000cb2 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r3, r0 + bge _081A8466 + adds r2, 0x2 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r0, r4 + beq _081A8466 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + subs r2, 0x2 + adds r0, r1, r2 + ldrh r2, [r0] + ldr r0, =0x00000cb4 + adds r1, r0 +_081A8458: + adds r1, 0x2 + adds r3, 0x1 + cmp r3, r2 + bge _081A8466 + ldrh r0, [r1] + cmp r0, r4 + bne _081A8458 +_081A8466: + ldr r0, [r5] + ldr r1, =0x00000cb2 + adds r0, r1 + ldrh r0, [r0] + cmp r3, r0 + bne _081A8426 + ldr r5, =gUnknown_02038BCC + strh r4, [r5] + ldrh r0, [r5] + movs r1, 0x1 + bl sub_8162614 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r0, =0x00000cb2 + adds r2, r1, r0 + ldrh r0, [r2] + cmp r0, 0xD + bhi _081A849A + subs r0, 0x2 + lsls r0, 1 + ldr r2, =0x00000cb4 + adds r1, r2 + adds r1, r0 + ldrh r0, [r5] + strh r0, [r1] +_081A849A: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A8374 + + thumb_func_start sub_81A84B4 +sub_81A84B4: @ 81A84B4 + push {r4,r5,lr} + movs r2, 0 + ldr r5, =gSaveBlock2Ptr + ldr r4, =0x00000cb4 + ldr r0, =0x0000ffff + adds r3, r0, 0 +_081A84C0: + ldr r1, [r5] + lsls r0, r2, 1 + adds r1, r4 + adds r1, r0 + ldrh r0, [r1] + orrs r0, r3 + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xD + bls _081A84C0 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A84B4 + + thumb_func_start sub_81A84EC +sub_81A84EC: @ 81A84EC + push {lr} + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0 + bne _081A8524 + ldr r3, =gUnknown_02038BCA + ldrh r1, [r3] + ldr r0, =0x0000012b + cmp r1, r0 + bhi _081A8542 + ldr r2, =gUnknown_0203BC88 + movs r0, 0x34 + muls r1, r0 + ldr r0, [r2] + adds r0, r1 + adds r0, 0xC + bl ConvertBattleFrontierTrainerSpeechToString + b _081A8542 + .pool +_081A8524: + cmp r0, 0x1 + bne _081A8542 + ldr r3, =gUnknown_02038BCC + ldrh r1, [r3] + ldr r0, =0x0000012b + cmp r1, r0 + bhi _081A8542 + ldr r2, =gUnknown_0203BC88 + movs r0, 0x34 + muls r1, r0 + ldr r0, [r2] + adds r0, r1 + adds r0, 0xC + bl ConvertBattleFrontierTrainerSpeechToString +_081A8542: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A84EC + + thumb_func_start sub_81A8554 +sub_81A8554: @ 81A8554 + push {r4-r6,lr} + ldr r5, =gPlayerParty + movs r6, 0 + movs r4, 0 +_081A855C: + adds r0, r5, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + bne _081A856E + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_081A856E: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, 0x64 + cmp r4, 0x2 + bls _081A855C + cmp r6, 0x1 + bhi _081A8588 + movs r0, 0x1 + b _081A858A + .pool +_081A8588: + movs r0, 0 +_081A858A: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81A8554 + + thumb_func_start sub_81A8590 +sub_81A8590: @ 81A8590 + push {r4-r6,lr} + lsls r0, 24 + movs r6, 0 + ldr r1, =gSaveBlock2Ptr + ldr r2, [r1] + ldr r3, =0x00000ca9 + adds r1, r2, r3 + ldrb r1, [r1] + lsls r1, 30 + lsrs r1, 29 + ldr r3, =0x00000e04 + adds r2, r3 + adds r2, r1 + lsrs r4, r0, 24 + ldrh r2, [r2] + adds r0, r4, r2 + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0x5 + bl sub_81A3B30 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + blt _081A85F0 + cmp r2, 0x1 + bgt _081A85F0 + ldr r1, =gUnknown_086125DC + adds r0, r2, 0 + adds r0, 0x14 + adds r0, r1 + ldrb r0, [r0] + ldrb r1, [r1, 0x17] + subs r0, r1 + cmp r4, r0 + bne _081A8634 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + b _081A8634 + .pool +_081A85F0: + ldr r5, =gUnknown_086125DC + movs r0, 0x5 + lsls r3, r0, 2 + adds r0, r3, r5 + ldrb r1, [r0] + adds r0, r5, 0x3 + adds r0, r3, r0 + ldrb r2, [r0] + subs r1, r2 + cmp r4, r1 + bne _081A8610 + movs r6, 0x3 + b _081A8634 + .pool +_081A8610: + adds r0, r5, 0x1 + adds r0, r3, r0 + ldrb r1, [r0] + subs r0, r1, r2 + cmp r4, r0 + beq _081A8632 + cmp r4, r1 + bls _081A8634 + subs r0, r4, r1 + adds r0, r2 + adds r1, r5, 0x2 + adds r1, r3, r1 + ldrb r1, [r1] + bl __modsi3 + cmp r0, 0 + bne _081A8634 +_081A8632: + movs r6, 0x4 +_081A8634: + adds r0, r6, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81A8590 + + thumb_func_start sub_81A863C +sub_81A863C: @ 81A863C + push {r4,lr} + ldr r4, =gScriptResult + movs r0, 0 + bl sub_81A8590 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A863C + + thumb_func_start sub_81A8658 +sub_81A8658: @ 81A8658 + push {r4,lr} + ldr r3, =gUnknown_08612675 + ldr r2, =gSpecialVar_0x8007 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + movs r1, 0xE1 + lsls r1, 4 + adds r0, r1 + ldrb r1, [r0] + lsls r1, 29 + lsrs r1, 29 + lsls r0, r1, 1 + adds r0, r1 + ldrh r2, [r2] + adds r0, r2 + adds r0, r3 + ldrb r4, [r0] + adds r0, r4, 0 + bl sub_81A7F38 + ldr r0, =gScriptResult + strh r4, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A8658 + + thumb_func_start sub_81A869C +sub_81A869C: @ 81A869C + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldr r0, =gSpecialVar_0x8005 + ldrb r1, [r0] + movs r0, 0xE1 + lsls r0, 4 + adds r2, r0 + lsls r1, 7 + ldrb r3, [r2] + movs r0, 0x7F + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + bx lr + .pool + thumb_func_end sub_81A869C + + thumb_func_start sub_81A86C0 +sub_81A86C0: @ 81A86C0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r1, =gScriptResult + movs r0, 0x1 + strh r0, [r1] + movs r0, 0 + mov r10, r0 +_081A86D4: + movs r0, 0 + mov r9, r0 + movs r0, 0x64 + mov r1, r10 + muls r1, r0 + ldr r0, =gPlayerParty + adds r7, r1, r0 + adds r0, r7, 0 + movs r1, 0x39 + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r7, 0 + movs r1, 0x3A + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + cmp r4, r5 + bcc _081A8762 + adds r0, r7, 0 + movs r1, 0x37 + bl GetMonData + bl pokemon_ailments_get_primary + lsls r0, 24 + cmp r0, 0 + bne _081A8762 + adds r0, r7, 0 + movs r1, 0x15 + bl GetMonData + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r6, 0 + b _081A8732 + .pool +_081A872C: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_081A8732: + cmp r6, 0x3 + bhi _081A8766 + adds r1, r6, 0 + adds r1, 0xD + adds r0, r7, 0 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + mov r1, r8 + adds r2, r6, 0 + bl CalcPPWithPPUps + lsls r0, 24 + lsrs r5, r0, 24 + adds r1, r6, 0 + adds r1, 0x11 + adds r0, r7, 0 + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r5 + bcs _081A872C +_081A8762: + movs r0, 0x1 + mov r9, r0 +_081A8766: + mov r0, r9 + cmp r0, 0x1 + bne _081A8778 + ldr r1, =gScriptResult + movs r0, 0 + strh r0, [r1] + b _081A8786 + .pool +_081A8778: + mov r0, r10 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + cmp r0, 0x2 + bls _081A86D4 +_081A8786: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81A86C0 + + thumb_func_start sub_81A8794 +sub_81A8794: @ 81A8794 + push {r4-r7,lr} + movs r5, 0 + ldr r7, =gSaveBlock1Ptr + ldr r6, =gSaveBlock2Ptr +_081A879C: + ldr r0, [r6] + lsls r4, r5, 1 + ldr r1, =0x00000caa + adds r0, r1 + adds r0, r4 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + movs r2, 0xEA + lsls r2, 1 + adds r1, r2 + ldr r0, [r7] + adds r0, r1 + movs r1, 0xC + bl GetMonData + ldr r1, [r6] + ldr r2, =0x00000e12 + adds r1, r2 + adds r1, r4 + strh r0, [r1] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bls _081A879C + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A8794 + + thumb_func_start sub_81A87E8 +sub_81A87E8: @ 81A87E8 + push {r4,lr} + movs r4, 0 +_081A87EC: + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + lsls r3, r4, 1 + ldr r1, =0x00000caa + adds r0, r2, r1 + adds r0, r3 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gUnknown_02024488 + adds r0, r1 + ldr r1, =0x00000e12 + adds r3, r1 + adds r2, r3 + movs r1, 0xC + bl SetMonData + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _081A87EC + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A87E8 + + thumb_func_start sub_81A8830 +sub_81A8830: @ 81A8830 + push {r4-r6,lr} + ldr r3, =gSaveBlock2Ptr + ldr r1, [r3] + ldr r2, =0x00000ca9 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 30 + lsrs r5, r0, 30 + ldr r0, =0x00000ca8 + adds r1, r0 + movs r4, 0 + strb r4, [r1] + ldr r1, [r3] + ldr r6, =0x00000cb2 + adds r0, r1, r6 + strh r4, [r0] + adds r1, r2 + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r3, [r3] + ldr r0, =0x00000cdc + adds r2, r3, r0 + ldr r1, =gUnknown_08612690 + lsls r0, r5, 2 + adds r0, r1 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _081A887C + lsls r1, r5, 1 + ldr r2, =0x00000e04 + adds r0, r3, r2 + adds r0, r1 + strh r4, [r0] +_081A887C: + ldr r0, =gUnknown_02038BCA + strh r4, [r0] + ldr r1, =gBattleOutcome + movs r0, 0 + strb r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A8830 + + thumb_func_start sub_81A88B0 +sub_81A88B0: @ 81A88B0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, =gPlayerParty + adds r0, r4, 0 + movs r1, 0x6 + bl GetMonData + cmp r0, 0 + bne _081A8904 + adds r0, r4, 0 + bl GetMonAbility + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x33 + beq _081A88D6 + cmp r0, 0x16 + bne _081A8904 +_081A88D6: + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bls _081A8904 + subs r0, 0x5 + cmp r5, r0 + bgt _081A8904 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _081A8904 + movs r0, 0 + b _081A8906 + .pool +_081A8904: + movs r0, 0x1 +_081A8906: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81A88B0 + + thumb_func_start sub_81A890C +sub_81A890C: @ 81A890C + push {lr} + lsls r0, 16 + lsrs r2, r0, 16 + ldr r0, =0x0000017b + cmp r2, r0 + bne _081A8920 + movs r1, 0 + b _081A892A + .pool +_081A8920: + ldr r0, =0x00000149 + movs r1, 0x2 + cmp r2, r0 + bne _081A892A + movs r1, 0x1 +_081A892A: + adds r0, r1, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A890C + + thumb_func_start sub_81A8934 +@ void sub_81A8934(u8) +sub_81A8934: @ 81A8934 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, =gUnknown_0203CE50 + ldr r0, [r4] + cmp r0, 0 + bne _081A894A + movs r0, 0x44 + bl AllocZeroed + str r0, [r4] +_081A894A: + ldr r0, [r4] + adds r0, 0x41 + strb r5, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A8934 + + thumb_func_start sub_81A895C +sub_81A895C: @ 81A895C + push {r4,lr} + ldr r4, =gUnknown_0203CE50 + ldr r0, [r4] + cmp r0, 0 + beq _081A896E + bl Free + movs r0, 0 + str r0, [r4] +_081A896E: + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + bl GetFieldObjectIdByLocalIdAndMap + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02037350 + adds r0, r1 + bl FieldObjectClearAnimIfSpecialAnimFinished + bl sub_80D338C + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A895C + + thumb_func_start sub_81A89A0 +sub_81A89A0: @ 81A89A0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + movs r1, 0xC7 + lsls r1, 4 + adds r1, r0 + mov r9, r1 + movs r3, 0 + mov r10, r3 + mov r8, r3 +_081A89C4: + mov r0, r8 + lsls r4, r0, 1 + adds r1, r4, r0 + lsls r1, 3 + add r1, r9 + ldrh r0, [r1, 0x4] + adds r0, 0x7 + ldrh r1, [r1, 0x6] + adds r1, 0x7 + lsls r0, 16 + asrs r0, 16 + lsls r1, 16 + asrs r1, 16 + bl MapGridGetMetatileIdAt + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, =gUnknown_0203CE50 + ldr r0, [r0] + adds r0, 0x41 + ldrb r0, [r0] + movs r2, 0xA6 + lsls r2, 2 + cmp r0, 0 + bne _081A89F8 + subs r2, 0x48 +_081A89F8: + ldr r0, =0x0000024f + cmp r1, r0 + bls _081A8AD4 + subs r1, r2 + adds r0, r1, 0 + cmp r1, 0 + bge _081A8A08 + adds r0, r1, 0x7 +_081A8A08: + asrs r2, r0, 3 + lsls r0, r2, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _081A8AD4 + ldr r3, [sp] + cmp r0, r3 + bne _081A8AD4 + lsls r0, r2, 3 + subs r0, r1, r0 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bhi _081A8AD4 + movs r1, 0 + movs r2, 0 + cmp r5, 0x1 + beq _081A8A58 + cmp r5, 0x1 + bgt _081A8A44 + cmp r5, 0 + beq _081A8A4E + b _081A8AD4 + .pool +_081A8A44: + cmp r5, 0x2 + beq _081A8A64 + cmp r5, 0x3 + beq _081A8A70 + b _081A8AD4 +_081A8A4E: + ldr r7, =gUnknown_08612698 + movs r1, 0x1 + b _081A8A74 + .pool +_081A8A58: + ldr r7, =gUnknown_0861269C + movs r2, 0x1 + b _081A8A74 + .pool +_081A8A64: + ldr r7, =gUnknown_086126A0 + movs r1, 0xFF + b _081A8A74 + .pool +_081A8A70: + ldr r7, =gUnknown_086126A4 + movs r2, 0xFF +_081A8A74: + mov r3, r8 + adds r0, r4, r3 + lsls r0, 3 + mov r3, r9 + adds r4, r0, r3 + lsls r0, r1, 24 + asrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r4, 0x4] + lsls r0, r2, 24 + asrs r0, 24 + ldrh r3, [r4, 0x6] + adds r0, r3 + strh r0, [r4, 0x6] + ldrb r0, [r4] + ldr r6, =gSaveBlock1Ptr + ldr r2, [r6] + ldrb r1, [r2, 0x5] + ldrb r2, [r2, 0x4] + bl GetFieldObjectIdByLocalIdAndMap + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x10 + beq _081A8ACC + mov r0, r8 + adds r1, r5, 0 + bl sub_81A8D60 + ldrb r4, [r4] + mov r10, r4 + mov r0, r10 + ldr r2, [r6] + ldrb r1, [r2, 0x5] + ldrb r2, [r2, 0x4] + adds r3, r7, 0 + bl exec_movement + b _081A8AD4 + .pool +_081A8ACC: + mov r0, r8 + adds r1, r5, 0 + bl sub_81A8D94 +_081A8AD4: + mov r0, r8 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + cmp r0, 0x3F + bhi _081A8AE4 + b _081A89C4 +_081A8AE4: + mov r0, r10 + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81A89A0 + + thumb_func_start sub_81A8AF8 +sub_81A8AF8: @ 81A8AF8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r1, =gUnknown_0203CE50 + ldr r2, [r1] + cmp r2, 0 + bne _081A8B0C + b _081A8D4A +_081A8B0C: + adds r0, r2, 0 + adds r0, 0x41 + ldrb r0, [r0] + movs r3, 0xA6 + lsls r3, 2 + mov r10, r3 + cmp r0, 0 + bne _081A8B22 + movs r0, 0x94 + lsls r0, 2 + mov r10, r0 +_081A8B22: + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + movs r3, 0xC7 + lsls r3, 4 + adds r7, r0, r3 + movs r0, 0 + mov r9, r0 + adds r0, r2, 0 + adds r0, 0x40 + ldrb r0, [r0] + cmp r9, r0 + bcc _081A8B3C + b _081A8D4A +_081A8B3C: + mov r8, r1 +_081A8B3E: + mov r1, r8 + ldr r0, [r1] + mov r2, r9 + lsls r4, r2, 2 + adds r0, r4 + ldrb r0, [r0, 0x1] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, r7 + ldrh r0, [r1, 0x4] + adds r0, 0x7 + ldrh r1, [r1, 0x6] + adds r1, 0x7 + lsls r0, 16 + asrs r0, 16 + lsls r1, 16 + asrs r1, 16 + bl MapGridGetMetatileIdAt + lsls r0, 16 + lsrs r0, 16 + mov r3, r10 + subs r1, r0, r3 + adds r0, r1, 0 + cmp r1, 0 + bge _081A8B76 + adds r0, r1, 0x7 +_081A8B76: + asrs r0, 3 + lsls r0, 3 + subs r0, r1, r0 + lsls r0, 24 + lsrs r0, 24 + mov r2, r8 + ldr r1, [r2] + adds r1, r4 + ldrb r1, [r1] + subs r0, r1 + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + blt _081A8B96 + cmp r1, 0x3 + bne _081A8BAC +_081A8B96: + movs r0, 0x3 + negs r0, r0 + movs r6, 0 + cmp r1, r0 + bne _081A8BB4 + b _081A8BB2 + .pool +_081A8BAC: + movs r6, 0x2 + cmp r1, 0 + ble _081A8BB4 +_081A8BB2: + movs r6, 0x1 +_081A8BB4: + ldr r5, =gUnknown_0203CE50 + ldr r0, [r5] + adds r0, r4 + ldrb r1, [r0, 0x1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, r7 + ldrb r0, [r0] + ldr r1, =gSaveBlock1Ptr + ldr r2, [r1] + ldrb r1, [r2, 0x5] + ldrb r2, [r2, 0x4] + bl GetFieldObjectIdByLocalIdAndMap + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x10 + bne _081A8BDC + b _081A8D32 +_081A8BDC: + ldr r0, =gUnknown_02037350 + lsls r1, r2, 3 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x18] + lsls r0, 28 + lsrs r0, 28 + adds r1, r0, 0 + cmp r6, 0 + bne _081A8C9C + cmp r0, 0x2 + beq _081A8C60 + cmp r0, 0x2 + bgt _081A8C0C + cmp r0, 0x1 + beq _081A8C30 + b _081A8D32 + .pool +_081A8C0C: + cmp r0, 0x3 + beq _081A8C48 + cmp r0, 0x4 + beq _081A8C16 + b _081A8D32 +_081A8C16: + ldr r3, =gUnknown_086126AE + ldr r0, [r5] + adds r0, r4 + ldrb r1, [r0, 0x1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, r7 + movs r1, 0x7 + b _081A8C72 + .pool +_081A8C30: + ldr r3, =gUnknown_086126A8 + ldr r0, [r5] + adds r0, r4 + ldrb r1, [r0, 0x1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, r7 + movs r1, 0xA + b _081A8C72 + .pool +_081A8C48: + ldr r3, =gUnknown_086126AA + ldr r0, [r5] + adds r0, r4 + ldrb r1, [r0, 0x1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, r7 + movs r1, 0x8 + b _081A8C72 + .pool +_081A8C60: + ldr r3, =gUnknown_086126AC + ldr r0, [r5] + adds r0, r4 + ldrb r1, [r0, 0x1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, r7 + movs r1, 0x9 +_081A8C72: + strb r1, [r0, 0x9] + mov r1, r8 + ldr r0, [r1] + adds r0, r4 + ldrb r1, [r0, 0x1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, r7 + ldrb r0, [r0] + ldr r1, =gSaveBlock1Ptr + ldr r2, [r1] + ldrb r1, [r2, 0x5] + ldrb r2, [r2, 0x4] + bl exec_movement + b _081A8D32 + .pool +_081A8C9C: + cmp r6, 0x1 + bne _081A8D32 + cmp r0, 0x2 + beq _081A8D00 + cmp r0, 0x2 + bgt _081A8CAE + cmp r0, 0x1 + beq _081A8CD0 + b _081A8D32 +_081A8CAE: + cmp r1, 0x3 + beq _081A8CE8 + cmp r1, 0x4 + bne _081A8D32 + ldr r3, =gUnknown_086126AA + ldr r0, [r5] + adds r0, r4 + ldrb r1, [r0, 0x1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, r7 + movs r1, 0x8 + b _081A8D12 + .pool +_081A8CD0: + ldr r3, =gUnknown_086126AC + ldr r0, [r5] + adds r0, r4 + ldrb r1, [r0, 0x1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, r7 + movs r1, 0x9 + b _081A8D12 + .pool +_081A8CE8: + ldr r3, =gUnknown_086126AE + ldr r0, [r5] + adds r0, r4 + ldrb r1, [r0, 0x1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, r7 + movs r1, 0x7 + b _081A8D12 + .pool +_081A8D00: + ldr r3, =gUnknown_086126A8 + ldr r0, [r5] + adds r0, r4 + ldrb r1, [r0, 0x1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, r7 + movs r1, 0xA +_081A8D12: + strb r1, [r0, 0x9] + mov r2, r8 + ldr r0, [r2] + adds r0, r4 + ldrb r1, [r0, 0x1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, r7 + ldrb r0, [r0] + ldr r1, =gSaveBlock1Ptr + ldr r2, [r1] + ldrb r1, [r2, 0x5] + ldrb r2, [r2, 0x4] + bl exec_movement +_081A8D32: + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + mov r3, r8 + ldr r0, [r3] + adds r0, 0x40 + ldrb r0, [r0] + cmp r9, r0 + bcs _081A8D4A + b _081A8B3E +_081A8D4A: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A8AF8 + + thumb_func_start sub_81A8D60 +sub_81A8D60: @ 81A8D60 + push {r4,lr} + ldr r4, =gUnknown_0203CE50 + ldr r3, [r4] + adds r2, r3, 0 + adds r2, 0x40 + ldrb r2, [r2] + lsls r2, 2 + adds r3, r2 + strb r0, [r3, 0x1] + ldr r2, [r4] + adds r0, r2, 0 + adds r0, 0x40 + ldrb r0, [r0] + lsls r0, 2 + adds r2, r0 + strb r1, [r2] + ldr r1, [r4] + adds r1, 0x40 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A8D60 + + thumb_func_start sub_81A8D94 +sub_81A8D94: @ 81A8D94 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + movs r1, 0xC7 + lsls r1, 4 + adds r5, r0, r1 + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 3 + adds r1, r5 + ldrh r0, [r1, 0x4] + adds r0, 0x7 + ldrh r1, [r1, 0x6] + adds r1, 0x7 + lsls r0, 16 + asrs r0, 16 + lsls r1, 16 + asrs r1, 16 + bl MapGridGetMetatileIdAt + lsls r0, 16 + lsrs r2, r0, 16 + ldr r0, =gUnknown_0203CE50 + ldr r0, [r0] + adds r0, 0x41 + ldrb r0, [r0] + movs r1, 0xA6 + lsls r1, 2 + cmp r0, 0 + bne _081A8DDA + subs r1, 0x48 +_081A8DDA: + subs r1, r2, r1 + adds r0, r1, 0 + cmp r1, 0 + bge _081A8DE4 + adds r0, r1, 0x7 +_081A8DE4: + asrs r0, 3 + lsls r0, 3 + subs r0, r1, r0 + lsls r0, 24 + lsrs r0, 24 + subs r0, r6 + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + blt _081A8DFC + cmp r1, 0x3 + bne _081A8E08 +_081A8DFC: + movs r2, 0 + b _081A8E1A + .pool +_081A8E08: + cmp r1, 0 + bgt _081A8E14 + movs r0, 0x3 + negs r0, r0 + cmp r1, r0 + bne _081A8E18 +_081A8E14: + movs r2, 0x1 + b _081A8E1A +_081A8E18: + movs r2, 0x2 +_081A8E1A: + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r5 + ldrb r0, [r1, 0x9] + adds r3, r0, 0 + cmp r2, 0 + bne _081A8E4C + cmp r0, 0x8 + beq _081A8E72 + cmp r0, 0x8 + bgt _081A8E38 + cmp r0, 0x7 + beq _081A8E48 + b _081A8E76 +_081A8E38: + cmp r0, 0x9 + beq _081A8E44 + cmp r0, 0xA + bne _081A8E76 + movs r0, 0x7 + b _081A8E74 +_081A8E44: + movs r0, 0x8 + b _081A8E74 +_081A8E48: + movs r0, 0x9 + b _081A8E74 +_081A8E4C: + cmp r2, 0x1 + bne _081A8E76 + cmp r0, 0x8 + beq _081A8E6A + cmp r0, 0x8 + bgt _081A8E5E + cmp r0, 0x7 + beq _081A8E72 + b _081A8E76 +_081A8E5E: + cmp r3, 0x9 + beq _081A8E6E + cmp r3, 0xA + bne _081A8E76 + movs r0, 0x8 + b _081A8E74 +_081A8E6A: + movs r0, 0x9 + b _081A8E74 +_081A8E6E: + movs r0, 0x7 + b _081A8E74 +_081A8E72: + movs r0, 0xA +_081A8E74: + strb r0, [r1, 0x9] +_081A8E76: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81A8D94 + + thumb_func_start sub_81A8E7C +sub_81A8E7C: @ 81A8E7C + push {lr} + ldr r1, =gUnknown_08613EE0 + ldr r0, =gSpecialVar_0x8004 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A8E7C + + thumb_func_start sub_81A8E9C +sub_81A8E9C: @ 81A8E9C + push {r4-r6,lr} + ldr r3, =gSaveBlock2Ptr + ldr r1, [r3] + ldr r4, =0x00000ca9 + adds r0, r1, r4 + ldrb r0, [r0] + lsls r0, 30 + lsrs r5, r0, 30 + ldr r0, =0x00000ca8 + adds r1, r0 + movs r2, 0 + strb r2, [r1] + ldr r1, [r3] + ldr r6, =0x00000cb2 + adds r0, r1, r6 + strh r2, [r0] + adds r1, r4 + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + cmp r5, 0 + beq _081A8EF0 + ldr r0, [r3] + ldr r1, =0x00000cdc + adds r0, r1 + ldr r2, [r0] + movs r0, 0x80 + lsls r0, 6 + b _081A8EFC + .pool +_081A8EF0: + ldr r0, [r3] + ldr r6, =0x00000cdc + adds r0, r6 + ldr r2, [r0] + movs r0, 0x80 + lsls r0, 5 +_081A8EFC: + ands r2, r0 + cmp r2, 0 + bne _081A8F14 + ldr r0, [r3] + lsls r1, r5, 1 + ldr r3, =0x00000e1a + adds r0, r3 + adds r0, r1 + strh r2, [r0] + adds r0, r5, 0 + bl sub_81AAA7C +_081A8F14: + bl sub_81C4EEC + ldr r0, =gUnknown_02038BCA + movs r1, 0 + strh r1, [r0] + ldr r0, =gBattleOutcome + strb r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A8E9C + + thumb_func_start sub_81A8F38 +sub_81A8F38: @ 81A8F38 + push {r4,lr} + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + ldr r2, =0x00000ca9 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 30 + lsrs r4, r0, 30 + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + adds r3, r1, 0 + cmp r0, 0x6 + bls _081A8F54 + b _081A903A +_081A8F54: + lsls r0, 2 + ldr r1, =_081A8F70 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081A8F70: + .4byte _081A8F8C + .4byte _081A8F9C + .4byte _081A8FB4 + .4byte _081A8FE4 + .4byte _081A8FF8 + .4byte _081A9010 + .4byte _081A9028 +_081A8F8C: + ldr r0, =gScriptResult + ldr r1, [r3] + ldr r3, =0x00000e18 + b _081A8FFE + .pool +_081A8F9C: + ldr r2, =gScriptResult + ldr r0, [r3] + lsls r1, r4, 1 + ldr r3, =0x00000e1a + adds r0, r3 + adds r0, r1 + ldrh r0, [r0] + b _081A9038 + .pool +_081A8FB4: + cmp r4, 0 + beq _081A8FCC + ldr r2, =gScriptResult + ldr r0, [r3] + ldr r1, =0x00000cdc + adds r0, r1 + b _081A9030 + .pool +_081A8FCC: + ldr r2, =gScriptResult + ldr r0, [r3] + ldr r3, =0x00000cdc + adds r0, r3 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 5 + b _081A9036 + .pool +_081A8FE4: + ldr r0, =gScriptResult + ldr r1, [r3] + ldr r2, =0x00000e1a + adds r1, r2 + b _081A9000 + .pool +_081A8FF8: + ldr r0, =gScriptResult + ldr r1, [r3] + ldr r3, =0x00000e1c +_081A8FFE: + adds r1, r3 +_081A9000: + ldrh r1, [r1] + strh r1, [r0] + b _081A903A + .pool +_081A9010: + ldr r2, =gScriptResult + ldr r0, [r3] + ldr r1, =0x00000cdc + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 5 + b _081A9036 + .pool +_081A9028: + ldr r2, =gScriptResult + ldr r0, [r3] + ldr r3, =0x00000cdc + adds r0, r3 +_081A9030: + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 6 +_081A9036: + ands r0, r1 +_081A9038: + strh r0, [r2] +_081A903A: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A8F38 + + thumb_func_start sub_81A9048 +sub_81A9048: @ 81A9048 + push {lr} + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldr r1, =0x00000ca9 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, 30 + lsrs r1, r0, 30 + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0x1 + beq _081A9098 + cmp r0, 0x1 + bgt _081A9078 + cmp r0, 0 + beq _081A9082 + b _081A9126 + .pool +_081A9078: + cmp r0, 0x2 + beq _081A90B0 + cmp r0, 0x7 + beq _081A911C + b _081A9126 +_081A9082: + ldr r0, =gSpecialVar_0x8006 + ldrh r1, [r0] + ldr r3, =0x00000e18 + adds r0, r2, r3 + strh r1, [r0] + b _081A9126 + .pool +_081A9098: + lsls r1, 1 + ldr r3, =0x00000e1a + adds r0, r2, r3 + adds r0, r1 + ldr r1, =gSpecialVar_0x8006 + ldrh r1, [r1] + strh r1, [r0] + b _081A9126 + .pool +_081A90B0: + cmp r1, 0 + beq _081A90E4 + ldr r0, =gSpecialVar_0x8006 + ldrh r0, [r0] + cmp r0, 0 + beq _081A90D0 + ldr r1, =0x00000cdc + adds r0, r2, r1 + ldr r1, [r0] + movs r2, 0x80 + lsls r2, 6 + b _081A90F6 + .pool +_081A90D0: + ldr r3, =0x00000cdc + adds r0, r2, r3 + ldr r1, [r0] + ldr r2, =0xffffdfff + b _081A910C + .pool +_081A90E4: + ldr r0, =gSpecialVar_0x8006 + ldrh r0, [r0] + cmp r0, 0 + beq _081A9104 + ldr r1, =0x00000cdc + adds r0, r2, r1 + ldr r1, [r0] + movs r2, 0x80 + lsls r2, 5 +_081A90F6: + orrs r1, r2 + str r1, [r0] + b _081A9126 + .pool +_081A9104: + ldr r3, =0x00000cdc + adds r0, r2, r3 + ldr r1, [r0] + ldr r2, =0xffffefff +_081A910C: + ands r1, r2 + str r1, [r0] + b _081A9126 + .pool +_081A911C: + ldr r0, =gSpecialVar_0x8006 + ldrh r1, [r0] + ldr r3, =0x00000e2a + adds r0, r2, r3 + strb r1, [r0] +_081A9126: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A9048 + + thumb_func_start sub_81A9134 +sub_81A9134: @ 81A9134 + push {r4,lr} + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =gSpecialVar_0x8005 + ldrh r1, [r1] + ldr r2, =0x00000ca8 + adds r0, r2 + strb r1, [r0] + movs r0, 0x80 + lsls r0, 7 + movs r1, 0 + bl VarSet + ldr r1, [r4] + ldr r0, =0x00000ca9 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + bl save_serialize_map + movs r0, 0x1 + bl TrySavingData + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A9134 + + thumb_func_start sub_81A917C +sub_81A917C: @ 81A917C + push {r4,r5,lr} + ldr r4, =gSaveBlock2Ptr + ldr r1, [r4] + ldr r2, =0x00000ca9 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 29 + ldr r2, =0x00000e1a + adds r1, r2 + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0x29 + bls _081A91CC + bl Random + ldr r4, [r4] + ldr r5, =gUnknown_08613F34 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x9 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 15 + adds r0, r5 + ldrh r0, [r0] + ldr r1, =0x00000e18 + adds r4, r1 + b _081A91EA + .pool +_081A91CC: + bl Random + ldr r4, [r4] + ldr r5, =gUnknown_08613F28 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x6 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 15 + adds r0, r5 + ldrh r0, [r0] + ldr r2, =0x00000e18 + adds r4, r2 +_081A91EA: + strh r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A917C + + thumb_func_start sub_81A91FC +sub_81A91FC: @ 81A91FC + push {r4,r5,lr} + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =0x00000e18 + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x1 + bl AddBagItem + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x1 + bne _081A9244 + ldr r0, [r4] + ldr r1, =0x00000e18 + adds r0, r1 + ldrh r0, [r0] + ldr r1, =gStringVar1 + bl CopyItemName + ldr r0, [r4] + ldr r1, =0x00000e18 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + ldr r0, =gScriptResult + strh r5, [r0] + b _081A924A + .pool +_081A9244: + ldr r1, =gScriptResult + movs r0, 0 + strh r0, [r1] +_081A924A: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A91FC + + thumb_func_start sub_81A9254 +sub_81A9254: @ 81A9254 + push {r4,r5,lr} + movs r4, 0 + ldr r5, =gSaveBlock2Ptr +_081A925A: + bl Random + ldr r1, [r5] + lsls r2, r4, 1 + ldr r3, =0x00000e22 + adds r1, r3 + adds r1, r2 + strh r0, [r1] + adds r4, 0x1 + cmp r4, 0x3 + ble _081A925A + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000e2a + adds r0, r1 + movs r1, 0 + strb r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A9254 + + thumb_func_start CalculateBattlePyramidItemBallItemId +CalculateBattlePyramidItemBallItemId: @ 81A9290 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r5, =gSaveBlock2Ptr + ldr r1, [r5] + ldr r2, =0x00000ca9 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 30 + mov r10, r0 + adds r2, 0x9 + adds r0, r1, r2 + ldrh r0, [r0] + str r0, [sp] + mov r2, r10 + lsls r0, r2, 1 + ldr r2, =0x00000e1a + adds r1, r2 + adds r1, r0 + ldrh r0, [r1] + movs r1, 0x7 + bl __udivsi3 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x14 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r0, 0x13 + bls _081A92DE + movs r0, 0x13 + mov r8, r0 +_081A92DE: + bl sub_81AA9E4 + lsls r0, 24 + ldr r1, =gScriptLastTalked + ldrh r4, [r1] + ldr r1, =gUnknown_08613650 + lsrs r0, 20 + adds r0, r1 + ldrb r0, [r0, 0x1] + subs r4, r0 + subs r7, r4, 0x1 + ldr r1, [r5] + lsrs r0, r7, 31 + adds r0, r7, r0 + asrs r0, 1 + lsls r0, 1 + ldr r2, =0x00000e22 + adds r1, r2 + adds r1, r0 + ldrh r6, [r1] + adds r0, r6, 0 + bl SeedRng2 + movs r5, 0 + mov r0, r8 + lsls r0, 2 + mov r9, r0 + cmp r5, r4 + bge _081A9332 +_081A9318: + bl Random2 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r6, r0, 16 + adds r5, 0x1 + adds r0, r7, 0x1 + cmp r5, r0 + blt _081A9318 +_081A9332: + ldr r0, =gUnknown_08613B3A + ldr r1, [sp] + adds r0, r1, r0 + ldrb r5, [r0] + ldr r1, =gUnknown_08613ABC + ldr r3, =gSpecialVar_0x8000 + ldr r4, =gSpecialVar_0x8001 + cmp r5, 0x3E + bhi _081A935E + lsls r2, r5, 1 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r6, r0 + blt _081A935E + adds r0, r2, r1 +_081A9350: + adds r0, 0x2 + adds r5, 0x1 + cmp r5, 0x3E + bhi _081A935E + ldrb r2, [r0] + cmp r6, r2 + bge _081A9350 +_081A935E: + mov r0, r10 + cmp r0, 0 + beq _081A9394 + ldr r2, =gUnknown_0861392C + b _081A9396 + .pool +_081A9394: + ldr r2, =gUnknown_0861379C +_081A9396: + lsls r0, r5, 1 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 1 + mov r1, r9 + add r1, r8 + lsls r1, 2 + adds r0, r1 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r3] + movs r0, 0x1 + strh r0, [r4] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end CalculateBattlePyramidItemBallItemId + + thumb_func_start sub_81A93C8 +sub_81A93C8: @ 81A93C8 + push {r4,r5,lr} + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + movs r1, 0xC7 + lsls r1, 4 + adds r3, r0, r1 + movs r2, 0 + ldr r4, =gScriptLastTalked + b _081A93F4 + .pool +_081A93E4: + adds r2, 0x1 + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r0, r3 + ldrb r0, [r0] + cmp r0, 0 + beq _081A940A +_081A93F4: + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0, r3 + ldrb r0, [r1] + ldrh r5, [r4] + cmp r0, r5 + bne _081A93E4 + ldr r0, =0x00007fff + strh r0, [r1, 0x4] + strh r0, [r1, 0x6] +_081A940A: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A93C8 + + thumb_func_start sub_81A9414 +sub_81A9414: @ 81A9414 + ldr r1, =gUnknown_0203BC88 + ldr r0, =gBattleFrontierTrainers + str r0, [r1] + bx lr + .pool + thumb_func_end sub_81A9414 + + thumb_func_start sub_81A9424 +sub_81A9424: @ 81A9424 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + movs r0, 0 + mov r9, r0 + movs r7, 0 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + movs r1, 0xC7 + lsls r1, 4 + adds r1, r0 + mov r8, r1 + ldr r2, =gUnknown_02037350 + ldr r0, =gUnknown_03005DF0 + ldrb r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x8] + bl sub_81A9AA8 + lsls r0, 16 + lsrs r5, r0, 16 + movs r6, 0 + ldr r2, =gUnknown_08613C1C + ldr r0, =gUnknown_0203BC88 + ldr r1, [r0] + movs r0, 0x34 + muls r0, r5 + adds r0, r1 + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + bne _081A9488 + ldrb r2, [r2, 0x1] + mov r9, r2 + b _081A94AE + .pool +_081A9488: + adds r6, 0x1 + cmp r6, 0x31 + bhi _081A94AE + ldr r4, =gUnknown_08613C1C + lsls r3, r6, 1 + adds r2, r3, r4 + ldr r0, =gUnknown_0203BC88 + ldr r1, [r0] + movs r0, 0x34 + muls r0, r5 + adds r0, r1 + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + bne _081A9488 + adds r0, r4, 0x1 + adds r0, r3, r0 + ldrb r0, [r0] + mov r9, r0 +_081A94AE: + ldr r3, =gUnknown_08613ED8 + ldr r2, =gUnknown_02037350 + ldr r0, =gUnknown_03005DF0 + ldrb r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x8] + subs r0, 0x1 + adds r0, r3 + ldrb r0, [r0] + str r0, [sp] + movs r6, 0 + mov r3, r9 + lsls r3, 2 + mov r9, r3 +_081A94D0: + ldr r0, [sp] + cmp r0, 0x8 + bls _081A94D8 + b _081A95E8 +_081A94D8: + lsls r0, 2 + ldr r1, =_081A94FC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081A94FC: + .4byte _081A9520 + .4byte _081A9530 + .4byte _081A9572 + .4byte _081A95B4 + .4byte _081A95BA + .4byte _081A95C0 + .4byte _081A95C6 + .4byte _081A95D2 + .4byte _081A95DE +_081A9520: + mov r0, sp + movs r1, 0x8 + movs r2, 0 + bl sub_81A9998 + lsls r0, 24 + lsrs r7, r0, 24 + b _081A95EE +_081A9530: + movs r6, 0 + ldr r2, =0x7fff0000 + mov r4, r8 + adds r4, 0x4 + mov r5, r8 + b _081A9560 + .pool +_081A9540: + ldrb r0, [r5, 0x1] + cmp r0, 0x3B + bne _081A955A + movs r1, 0 + ldrsh r0, [r4, r1] + asrs r1, r2, 16 + cmp r0, r1 + beq _081A955A + movs r3, 0x2 + ldrsh r0, [r4, r3] + cmp r0, r1 + beq _081A955A + adds r7, 0x1 +_081A955A: + adds r4, 0x18 + adds r5, 0x18 + adds r6, 0x1 +_081A9560: + str r2, [sp, 0x4] + bl sub_81AAA40 + lsls r0, 24 + lsrs r0, 24 + ldr r2, [sp, 0x4] + cmp r6, r0 + blt _081A9540 + b _081A95EE +_081A9572: + bl sub_81AA9E4 + lsls r0, 24 + ldr r1, =gUnknown_08613650 + lsrs r0, 20 + adds r0, r1 + ldrb r7, [r0, 0x1] + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000e2a + adds r0, r1 + ldrb r2, [r0] + ldr r1, =gBitTable + movs r6, 0x7 +_081A958E: + ldr r0, [r1] + ands r0, r2 + cmp r0, 0 + beq _081A9598 + subs r7, 0x1 +_081A9598: + adds r1, 0x4 + subs r6, 0x1 + cmp r6, 0 + bge _081A958E + b _081A95EE + .pool +_081A95B4: + mov r0, sp + movs r1, 0x8 + b _081A95D6 +_081A95BA: + mov r0, sp + movs r1, 0x8 + b _081A95CA +_081A95C0: + mov r0, sp + movs r1, 0x10 + b _081A95D6 +_081A95C6: + mov r0, sp + movs r1, 0x10 +_081A95CA: + movs r2, 0x1 + bl sub_81A9998 + b _081A95E8 +_081A95D2: + mov r0, sp + movs r1, 0x18 +_081A95D6: + movs r2, 0x2 + bl sub_81A9998 + b _081A95E8 +_081A95DE: + mov r0, sp + movs r1, 0x18 + movs r2, 0x1 + bl sub_81A9998 +_081A95E8: + cmp r6, 0 + bne _081A95EE + b _081A94D0 +_081A95EE: + ldr r1, =gUnknown_08613EC0 + add r1, r9 + ldr r0, [sp] + ldr r1, [r1] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + lsls r0, r7, 2 + adds r0, r1 + ldr r0, [r0] + bl box_related_two__2 + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A9424 + + thumb_func_start sub_81A9618 +sub_81A9618: @ 81A9618 + push {r4,r5,lr} + ldr r5, =gSaveBlock2Ptr + ldr r1, [r5] + ldr r2, =0x00000ca9 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 30 + lsrs r2, r0, 29 + ldr r4, =0x00000e1a + adds r1, r4 + adds r1, r2 + ldrh r3, [r1] + ldr r0, =0x000003e6 + cmp r3, r0 + bhi _081A963A + adds r0, r3, 0x1 + strh r0, [r1] +_081A963A: + ldr r0, [r5] + adds r1, r0, r4 + adds r1, r2 + ldr r3, =0x00000e1e + adds r0, r3 + adds r0, r2 + ldrh r1, [r1] + ldrh r2, [r0] + cmp r1, r2 + bls _081A9650 + strh r1, [r0] +_081A9650: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A9618 + + thumb_func_start sub_81A966C +sub_81A966C: @ 81A966C + push {r4,lr} + ldr r4, =gScriptResult + bl InBattlePyramid + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A966C + + thumb_func_start sub_81A9684 +sub_81A9684: @ 81A9684 + push {r4,lr} + ldr r0, =gSpecialVar_0x8006 + ldrh r0, [r0] + cmp r0, 0 + beq _081A9698 + cmp r0, 0x1 + beq _081A96B4 + b _081A9754 + .pool +_081A9698: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =gSpecialVar_0x8005 + ldrh r1, [r1] + ldr r2, =0x00000e68 + adds r0, r2 + strb r1, [r0] + b _081A9754 + .pool +_081A96B4: + ldr r4, =gScriptResult + ldrh r0, [r4] + cmp r0, 0x1 + beq _081A9710 + cmp r0, 0x1 + bgt _081A9754 + cmp r0, 0 + bne _081A9754 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081A9754 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r2, =0x00000e68 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0x77 + bls _081A96F4 + movs r0, 0x78 + strb r0, [r1] + b _081A96FC + .pool +_081A96F4: + ldr r0, =gSpecialVar_0x8007 + ldrh r0, [r0] + bl PlaySE +_081A96FC: + ldr r1, =gScriptResult + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _081A9754 + .pool +_081A9710: + ldr r1, =gSpecialVar_0x8005 + ldrh r0, [r1] + cmp r0, 0 + beq _081A9750 + subs r0, 0x1 + strh r0, [r1] + ldr r3, =gSaveBlock2Ptr + ldr r1, [r3] + ldr r2, =0x00000e68 + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r3] + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0x78 + bls _081A973E + movs r0, 0x78 + strb r0, [r1] + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_081A973E: + bl door_upload_tiles + b _081A9754 + .pool +_081A9750: + movs r0, 0x2 + strh r0, [r4] +_081A9754: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81A9684 + + thumb_func_start sub_81A975C +sub_81A975C: @ 81A975C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + movs r1, 0 + mov r0, sp + strh r1, [r0] + movs r5, 0 + movs r0, 0x64 + mov r9, r0 + ldr r1, =gPlayerParty + mov r8, r1 +_081A9776: + movs r4, 0 + adds r7, r5, 0x1 + mov r6, r9 + muls r6, r5 +_081A977E: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + lsls r1, r4, 1 + ldr r2, =0x00000caa + adds r0, r2 + adds r1, r0, r1 + ldrh r0, [r1] + cmp r0, 0 + beq _081A97A2 + subs r0, 0x1 + cmp r0, r5 + bne _081A97A2 + mov r1, r8 + adds r0, r6, r1 + movs r1, 0xC + mov r2, sp + bl SetMonData +_081A97A2: + adds r4, 0x1 + cmp r4, 0x3 + ble _081A977E + adds r5, r7, 0 + cmp r5, 0x5 + ble _081A9776 + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A975C + + thumb_func_start sub_81A97C8 +sub_81A97C8: @ 81A97C8 + push {lr} + ldr r0, =sub_81A97DC + movs r1, 0 + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A97C8 + + thumb_func_start sub_81A97DC +sub_81A97DC: @ 81A97DC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081A980C + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000cb2 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 5 + ldr r1, =gUnknown_08D856C8 + adds r0, r1 + ldr r1, =gPlttBufferUnfaded + 0xC0 + movs r2, 0x10 + bl CpuSet + adds r0, r4, 0 + bl DestroyTask +_081A980C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A97DC + + thumb_func_start sub_81A9828 +sub_81A9828: @ 81A9828 + push {lr} + bl sub_809FDD4 + pop {r0} + bx r0 + thumb_func_end sub_81A9828 + + thumb_func_start sub_81A9834 +sub_81A9834: @ 81A9834 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + movs r0, 0 + str r0, [sp] +_081A9844: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r2, [sp] + lsls r1, r2, 1 + ldr r5, =0x00000caa + adds r0, r5 + adds r0, r1 + ldrh r0, [r0] + subs r5, r0, 0x1 + movs r0, 0 + str r0, [sp, 0x4] + movs r2, 0x64 + adds r1, r5, 0 + muls r1, r2 + str r1, [sp, 0x8] + movs r0, 0x8E + lsls r0, 2 + adds r6, r1, r0 + movs r1, 0 + str r1, [sp, 0x10] +_081A986C: + ldr r2, =gSaveBlock1Ptr + ldr r0, [r2] + adds r0, r6 + movs r1, 0xB + movs r2, 0 + bl GetMonData + adds r4, r0, 0 + ldr r3, =gPlayerParty + ldr r1, [sp, 0x10] + adds r0, r1, r3 + movs r1, 0xB + movs r2, 0 + str r3, [sp, 0x14] + bl GetMonData + ldr r3, [sp, 0x14] + cmp r4, r0 + bne _081A993C + movs r6, 0 + adds r2, r5, 0x1 + str r2, [sp, 0xC] + movs r1, 0x64 + adds r0, r5, 0 + muls r0, r1 + movs r5, 0x8E + lsls r5, 2 + adds r5, r0 + mov r9, r5 + ldr r7, [sp, 0x4] + muls r7, r1 + mov r10, r3 +_081A98AC: + movs r5, 0 + adds r0, r6, 0x1 + mov r8, r0 + b _081A98C6 + .pool +_081A98C4: + adds r5, 0x1 +_081A98C6: + cmp r5, 0x3 + bgt _081A98EE + ldr r1, =gSaveBlock1Ptr + ldr r0, [r1] + add r0, r9 + adds r1, r5, 0 + adds r1, 0xD + movs r2, 0 + bl GetMonData + adds r4, r0, 0 + adds r1, r6, 0 + adds r1, 0xD + mov r2, r10 + adds r0, r7, r2 + movs r2, 0 + bl GetMonData + cmp r4, r0 + bne _081A98C4 +_081A98EE: + cmp r5, 0x4 + bne _081A9900 + lsls r2, r6, 24 + lsrs r2, 24 + mov r5, r10 + adds r0, r7, r5 + movs r1, 0xA6 + bl sub_80691F4 +_081A9900: + mov r6, r8 + cmp r6, 0x3 + ble _081A98AC + ldr r1, =gSaveBlock1Ptr + ldr r0, [r1] + ldr r2, [sp, 0x8] + adds r0, r2 + movs r5, 0x8E + lsls r5, 2 + adds r0, r5 + ldr r1, =gPlayerParty + ldr r2, [sp, 0x10] + adds r1, r2, r1 + movs r2, 0x64 + bl memcpy + ldr r0, =gUnknown_0203CEF8 + ldr r5, [sp, 0x4] + adds r0, r5, r0 + mov r1, sp + ldrb r1, [r1, 0xC] + strb r1, [r0] + b _081A994C + .pool +_081A993C: + ldr r2, [sp, 0x10] + adds r2, 0x64 + str r2, [sp, 0x10] + ldr r0, [sp, 0x4] + adds r0, 0x1 + str r0, [sp, 0x4] + cmp r0, 0x2 + ble _081A986C +_081A994C: + ldr r1, [sp] + adds r1, 0x1 + str r1, [sp] + cmp r1, 0x2 + bgt _081A9958 + b _081A9844 +_081A9958: + movs r2, 0 + str r2, [sp] + ldr r4, =gSaveBlock2Ptr + ldr r3, =0x00000caa + ldr r2, =gUnknown_0203CEF8 +_081A9962: + ldr r1, [r4] + ldr r5, [sp] + lsls r0, r5, 1 + adds r1, r3 + adds r1, r0 + adds r0, r5, r2 + ldrb r0, [r0] + strh r0, [r1] + adds r5, 0x1 + str r5, [sp] + cmp r5, 0x2 + ble _081A9962 + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A9834 + + thumb_func_start sub_81A9998 +sub_81A9998: @ 81A9998 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r10, r0 + lsls r1, 24 + lsrs r6, r1, 24 + lsls r2, 24 + lsrs r7, r2, 24 + movs r4, 0 + ldr r0, =gUnknown_03005DC0 + ldr r5, [r0, 0x8] + ldr r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 1 + adds r0, 0xE + adds r5, r0 + movs r3, 0 + ldr r0, =0x000003ff + mov r8, r0 + ldr r1, =0x0000028e + mov r12, r1 + ldr r0, =gUnknown_02037350 + mov r9, r0 +_081A99CC: + movs r2, 0 +_081A99CE: + lsls r0, r2, 1 + adds r0, r5 + ldrh r1, [r0] + mov r0, r8 + ands r0, r1 + cmp r0, r12 + bne _081A9A8A + adds r2, 0x7 + ldr r0, =gUnknown_03005DF0 + ldrb r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + add r0, r9 + movs r5, 0xC + ldrsh r1, [r0, r5] + subs r2, r1 + adds r1, r3, 0x7 + movs r3, 0xE + ldrsh r0, [r0, r3] + subs r3, r1, r0 + cmp r2, r6 + bge _081A9A0E + negs r0, r6 + cmp r2, r0 + ble _081A9A0E + cmp r3, r6 + bge _081A9A0E + cmp r3, r0 + ble _081A9A0E + cmp r7, 0 + bne _081A9A84 +_081A9A0E: + cmp r2, 0 + ble _081A9A34 + cmp r3, 0 + ble _081A9A34 + movs r4, 0x3 + cmp r2, r3 + blt _081A9A7C + movs r4, 0x2 + b _081A9A7C + .pool +_081A9A34: + cmp r2, 0 + bge _081A9A46 + cmp r3, 0 + bge _081A9A46 + movs r4, 0x1 + cmp r2, r3 + ble _081A9A7C + movs r4, 0 + b _081A9A7C +_081A9A46: + cmp r2, 0 + bne _081A9A54 + movs r4, 0 + cmp r3, 0 + ble _081A9A7C + movs r4, 0x3 + b _081A9A7C +_081A9A54: + cmp r3, 0 + bne _081A9A62 + movs r4, 0x1 + cmp r2, 0 + ble _081A9A7C + movs r4, 0x2 + b _081A9A7C +_081A9A62: + cmp r2, 0 + bge _081A9A72 + adds r0, r2, r3 + movs r4, 0x1 + cmp r0, 0 + ble _081A9A7C + movs r4, 0x3 + b _081A9A7C +_081A9A72: + adds r0, r2, r3 + mvns r0, r0 + asrs r4, r0, 31 + movs r0, 0x2 + ands r4, r0 +_081A9A7C: + movs r0, 0 + mov r5, r10 + str r0, [r5] + b _081A9A98 +_081A9A84: + mov r0, r10 + str r7, [r0] + b _081A9A98 +_081A9A8A: + adds r2, 0x1 + cmp r2, 0x1F + ble _081A99CE + adds r5, 0x5E + adds r3, 0x1 + cmp r3, 0x1F + ble _081A99CC +_081A9A98: + adds r0, r4, 0 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81A9998 + + thumb_func_start sub_81A9AA8 +sub_81A9AA8: @ 81A9AA8 + lsls r0, 24 + ldr r1, =gSaveBlock2Ptr + ldr r1, [r1] + lsrs r0, 23 + adds r1, r0 + ldr r0, =0x00000cb2 + adds r1, r0 + ldrh r0, [r1] + bx lr + .pool + thumb_func_end sub_81A9AA8 + + thumb_func_start GetBattlePyramidTrainerFlag +GetBattlePyramidTrainerFlag: @ 81A9AC4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gSaveBlock2Ptr + ldr r2, [r1] + ldr r1, =0x00000e2a + adds r2, r1 + ldr r4, =gBitTable + ldr r3, =gUnknown_02037350 + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r0, [r1, 0x8] + subs r0, 0x1 + lsls r0, 2 + adds r0, r4 + ldr r0, [r0] + ldrb r1, [r2] + ands r0, r1 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end GetBattlePyramidTrainerFlag + + thumb_func_start sub_81A9B04 +sub_81A9B04: @ 81A9B04 + push {lr} + ldr r0, =gUnknown_02038BCA + ldrh r0, [r0] + bl sub_81A9B44 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _081A9B2E + movs r0, 0x1 + bl sub_80B47E0 + ldr r1, =gUnknown_03005DF0 + strb r0, [r1] + ldr r0, =gUnknown_02038BCC + ldrh r0, [r0] + bl sub_81A9B44 +_081A9B2E: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A9B04 + + thumb_func_start sub_81A9B44 +sub_81A9B44: @ 81A9B44 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 16 + lsrs r5, r0, 16 + movs r3, 0 + ldr r0, =gUnknown_02037350 + mov r12, r0 + ldr r6, =gUnknown_03005DF0 + ldr r1, =gSaveBlock1Ptr + mov r10, r1 + ldr r7, =gSaveBlock2Ptr + mov r9, r7 + ldr r0, =0x00000cb4 + mov r8, r0 + ldr r4, =gBitTable +_081A9B68: + mov r1, r9 + ldr r2, [r1] + lsls r0, r3, 1 + mov r7, r8 + adds r1, r2, r7 + adds r1, r0 + ldrh r0, [r1] + cmp r0, r5 + bne _081A9B86 + ldr r1, =0x00000e2a + adds r0, r2, r1 + ldr r1, [r4] + ldrb r2, [r0] + orrs r1, r2 + strb r1, [r0] +_081A9B86: + adds r4, 0x4 + adds r3, 0x1 + cmp r3, 0x7 + ble _081A9B68 + ldrb r1, [r6] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + add r0, r12 + movs r3, 0x2 + strb r3, [r0, 0x6] + mov r7, r10 + ldr r2, [r7] + ldr r0, =gScriptLastTalked + ldrh r1, [r0] + subs r1, 0x1 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r2, r0 + ldr r1, =0x00000c79 + adds r2, r1 + strb r3, [r2] + ldrb r1, [r6] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + add r0, r12 + ldrh r1, [r0, 0x10] + strh r1, [r0, 0xC] + ldrb r1, [r6] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + add r0, r12 + ldrh r1, [r0, 0x12] + strh r1, [r0, 0xE] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A9B44 + + thumb_func_start sub_81A9C04 +sub_81A9C04: @ 81A9C04 + push {r4-r6,lr} + sub sp, 0x14 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r2, =0x00000ca9 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 30 + lsrs r5, r0, 30 + lsls r0, r5, 1 + ldr r2, =0x00000e1a + adds r1, r2 + adds r1, r0 + ldrh r0, [r1] + movs r1, 0x7 + bl __udivsi3 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x14 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x13 + bls _081A9C3A + movs r0, 0x13 +_081A9C3A: + cmp r5, 0 + beq _081A9C54 + ldr r1, =gBattlePyramidOpenLevelWildMonPointers + b _081A9C56 + .pool +_081A9C54: + ldr r1, =gBattlePyramidLevel50WildMonPointers +_081A9C56: + lsls r0, 2 + adds r0, r1 + ldr r6, [r0] + ldr r4, =gEnemyParty + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + subs r0, 0x1 + str r0, [sp, 0x10] + lsls r2, r0, 1 + adds r2, r0 + lsls r2, 2 + adds r2, r6, r2 + adds r0, r4, 0 + movs r1, 0xB + bl SetMonData + ldr r1, [sp, 0x10] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrh r1, [r0] + mov r0, sp + bl GetSpeciesName + adds r0, r4, 0 + movs r1, 0x2 + mov r2, sp + bl SetMonData + cmp r5, 0 + beq _081A9CD4 + bl sub_8165C40 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, [sp, 0x10] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r0, [r0, 0x2] + subs r5, r0 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xB + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + subs r0, 0x5 + adds r5, r0 + b _081A9CF6 + .pool +_081A9CD4: + bl Random + ldr r2, [sp, 0x10] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r6 + ldrb r4, [r1, 0x2] + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xB + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + subs r0, 0x5 + adds r5, r4, r0 +_081A9CF6: + ldr r4, =gEnemyParty + ldr r2, =gBaseStats + ldr r1, [sp, 0x10] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrh r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x13] + movs r0, 0xCA + lsls r0, 1 + adds r2, r1, 0 + muls r2, r0 + lsls r0, r5, 2 + ldr r1, =gExperienceTables + adds r0, r1 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x19 + bl SetMonData + ldr r1, [sp, 0x10] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r1, [r0, 0x3] + cmp r1, 0 + blt _081A9D4C + cmp r1, 0x1 + bgt _081A9D4C + adds r2, r0, 0x3 + b _081A9D7C + .pool +_081A9D4C: + ldr r2, =gBaseStats + ldr r1, [sp, 0x10] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrh r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x17] + cmp r0, 0 + beq _081A9D90 + ldr r4, =gEnemyParty + adds r0, r4, 0 + movs r1, 0 + movs r2, 0 + bl GetMonData + movs r1, 0x1 + ands r1, r0 + str r1, [sp, 0xC] + add r2, sp, 0xC +_081A9D7C: + adds r0, r4, 0 + movs r1, 0x2E + bl SetMonData + b _081A9D9C + .pool +_081A9D90: + str r0, [sp, 0xC] + ldr r0, =gEnemyParty + add r2, sp, 0xC + movs r1, 0x2E + bl SetMonData +_081A9D9C: + movs r0, 0 + str r0, [sp, 0xC] + movs r2, 0 + lsls r4, r5, 1 +_081A9DA4: + ldr r1, [sp, 0x10] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + lsls r1, r2, 1 + adds r0, 0x4 + adds r0, r1 + ldrh r1, [r0] + lsls r2, 24 + lsrs r2, 24 + ldr r0, =gEnemyParty + bl sub_80691F4 + ldr r0, [sp, 0xC] + adds r0, 0x1 + str r0, [sp, 0xC] + adds r2, r0, 0 + cmp r2, 0x3 + ble _081A9DA4 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000e1a + adds r0, r1 + adds r0, r4 + ldrh r0, [r0] + cmp r0, 0x8B + bls _081A9E0C + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x11 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + adds r0, 0xF + str r0, [sp, 0x10] + movs r0, 0 + str r0, [sp, 0xC] +_081A9DF6: + adds r1, r0, 0 + adds r1, 0x27 + ldr r0, =gEnemyParty + add r2, sp, 0x10 + bl SetMonData + ldr r0, [sp, 0xC] + adds r0, 0x1 + str r0, [sp, 0xC] + cmp r0, 0x5 + ble _081A9DF6 +_081A9E0C: + ldr r0, =gEnemyParty + bl pokemon_calc_effective_stats + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A9C04 + + thumb_func_start sub_81A9E28 +sub_81A9E28: @ 81A9E28 + push {lr} + bl sub_81AA9E4 + lsls r0, 24 + ldr r1, =gUnknown_08613650 + lsrs r0, 20 + adds r0, r1 + ldrb r0, [r0, 0x4] + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A9E28 + + thumb_func_start InBattlePyramid +InBattlePyramid: @ 81A9E40 + push {lr} + ldr r0, =gUnknown_02037318 + ldrh r1, [r0, 0x12] + ldr r0, =0x00000169 + cmp r1, r0 + bne _081A9E58 + movs r0, 0x1 + b _081A9E66 + .pool +_081A9E58: + movs r0, 0xBD + lsls r0, 1 + cmp r1, r0 + beq _081A9E64 + movs r0, 0 + b _081A9E66 +_081A9E64: + movs r0, 0x2 +_081A9E66: + pop {r1} + bx r1 + thumb_func_end InBattlePyramid + + thumb_func_start sub_81A9E6C +sub_81A9E6C: @ 81A9E6C + push {lr} + movs r2, 0 + ldr r0, =gUnknown_02037318 + ldrh r1, [r0, 0x12] + ldr r0, =0x00000169 + cmp r1, r0 + beq _081A9E80 + adds r0, 0x11 + cmp r1, r0 + bne _081A9E82 +_081A9E80: + movs r2, 0x1 +_081A9E82: + adds r0, r2, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A9E6C + + thumb_func_start sub_81A9E90 +sub_81A9E90: @ 81A9E90 + push {lr} + bl InBattlePyramid + lsls r0, 24 + cmp r0, 0 + beq _081A9EB8 + bl sub_81A9834 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000ca8 + adds r0, r1 + movs r1, 0x2 + strb r1, [r0] + ldr r0, =0x0000400e + movs r1, 0 + bl VarSet + bl copy_player_party_from_sav1 +_081A9EB8: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A9E90 + + thumb_func_start sub_81A9EC8 +sub_81A9EC8: @ 81A9EC8 + push {lr} + bl InBattlePyramid + lsls r0, 24 + cmp r0, 0 + beq _081A9ED8 + bl DoSoftReset +_081A9ED8: + pop {r0} + bx r0 + thumb_func_end sub_81A9EC8 + + thumb_func_start sub_81A9EDC +sub_81A9EDC: @ 81A9EDC + push {lr} + lsls r0, 16 + lsrs r0, 16 + ldr r2, =gUnknown_0203BC88 + movs r1, 0x34 + muls r1, r0 + ldr r0, [r2] + adds r0, r1 + adds r0, 0xC + bl ConvertBattleFrontierTrainerSpeechToString + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A9EDC + + thumb_func_start sub_81A9EFC +sub_81A9EFC: @ 81A9EFC + push {lr} + lsls r0, 16 + lsrs r0, 16 + ldr r2, =gUnknown_0203BC88 + movs r1, 0x34 + muls r1, r0 + ldr r0, [r2] + adds r0, r1 + adds r0, 0x18 + bl ConvertBattleFrontierTrainerSpeechToString + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A9EFC + + thumb_func_start sub_81A9F1C +sub_81A9F1C: @ 81A9F1C + push {lr} + lsls r0, 16 + lsrs r0, 16 + ldr r2, =gUnknown_0203BC88 + movs r1, 0x34 + muls r1, r0 + ldr r0, [r2] + adds r0, r1 + adds r0, 0x24 + bl ConvertBattleFrontierTrainerSpeechToString + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A9F1C + + thumb_func_start sub_81A9F3C +sub_81A9F3C: @ 81A9F3C + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + movs r4, 0 + ldr r3, =gTrainerClassNameIndices + ldr r1, =gUnknown_0203BC88 + ldr r2, [r1] + movs r1, 0x34 + muls r0, r1 + adds r0, r2 + ldrb r0, [r0] + adds r0, r3 + ldrb r2, [r0] + ldr r1, =gUnknown_08613B44 +_081A9F58: + ldrb r0, [r1] + cmp r0, r2 + bne _081A9F70 + ldrb r0, [r1, 0x1] + b _081A9F7A + .pool +_081A9F70: + adds r1, 0x4 + adds r4, 0x1 + cmp r4, 0x35 + bls _081A9F58 + movs r0, 0 +_081A9F7A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81A9F3C + + thumb_func_start sub_81A9F80 +sub_81A9F80: @ 81A9F80 + push {lr} + ldr r0, =gUnknown_08252C88 + bl script_env_1_execute_new_script + pop {r0} + bx r0 + .pool + thumb_func_end sub_81A9F80 + + thumb_func_start sub_81A9F90 +sub_81A9F90: @ 81A9F90 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, =gSaveBlock2Ptr + ldr r4, [r0] + ldr r1, =0x00000ca9 + adds r0, r4, r1 + ldrb r1, [r0] + lsls r1, 30 + lsrs r1, 29 + ldr r2, =0x00000e1a + adds r0, r4, r2 + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x7 + bl __udivsi3 + lsls r0, 16 + lsrs r0, 16 + ldr r1, =0x00000cb2 + adds r4, r1 + ldrh r1, [r4] + cmp r1, 0x7 + bne _081AA020 + adds r0, 0x1 + lsls r7, r0, 24 + lsls r1, 24 + mov r8, r1 +_081A9FCC: + lsrs r0, r7, 24 + mov r2, r8 + lsrs r1, r2, 24 + bl sub_8162548 + lsls r0, 16 + lsrs r3, r0, 16 + movs r2, 0 + cmp r2, r5 + bge _081AA004 + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + ldr r4, =0x00000cb4 + adds r0, r4 + ldrh r0, [r0] + cmp r0, r3 + beq _081AA004 + adds r6, r1, 0 +_081A9FF0: + adds r2, 0x1 + cmp r2, r5 + bge _081AA004 + ldr r0, [r6] + lsls r1, r2, 1 + adds r0, r4 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r3 + bne _081A9FF0 +_081AA004: + cmp r2, r5 + bne _081A9FCC + b _081AA062 + .pool +_081AA020: + lsls r1, 24 + mov r8, r1 + lsls r7, r0, 24 +_081AA026: + lsrs r0, r7, 24 + mov r2, r8 + lsrs r1, r2, 24 + bl sub_8162548 + lsls r0, 16 + lsrs r3, r0, 16 + movs r2, 0 + cmp r2, r5 + bge _081AA05E + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + ldr r4, =0x00000cb4 + adds r0, r4 + ldrh r0, [r0] + cmp r0, r3 + beq _081AA05E + adds r6, r1, 0 +_081AA04A: + adds r2, 0x1 + cmp r2, r5 + bge _081AA05E + ldr r0, [r6] + lsls r1, r2, 1 + adds r0, r4 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r3 + bne _081AA04A +_081AA05E: + cmp r2, r5 + bne _081AA026 +_081AA062: + adds r0, r3, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81A9F90 + + thumb_func_start sub_81AA078 +sub_81AA078: @ 81AA078 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + str r0, [sp, 0x4] + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0x8] + movs r0, 0x10 + bl AllocZeroed + str r0, [sp, 0xC] + bl sub_81AA96C + mov r4, sp + adds r4, 0x1 + mov r0, sp + adds r1, r4, 0 + bl sub_81AA33C + movs r7, 0 +_081AA0A6: + ldr r1, [sp, 0xC] + adds r0, r1, r7 + ldrb r0, [r0] + ldr r2, =0x00000169 + adds r0, r2 + lsls r0, 2 + ldr r1, =gUnknown_08481DD4 + adds r0, r1 + ldr r6, [r0] + ldr r2, [r6, 0xC] + mov r10, r2 + ldr r0, [sp, 0x4] + ldr r1, =gUnknown_03005DC0 + str r0, [r1, 0x8] + ldr r0, [r6] + lsls r0, 2 + adds r2, r0, 0 + adds r2, 0xF + str r2, [r1] + ldr r0, [r6, 0x4] + lsls r0, 2 + adds r0, 0xE + str r0, [r1, 0x4] + ldr r0, [sp, 0x4] + mov r9, r0 + adds r1, r7, 0 + cmp r7, 0 + bge _081AA0E0 + adds r1, r7, 0x3 +_081AA0E0: + asrs r1, 2 + ldr r4, [r6, 0x4] + adds r0, r1, 0 + muls r0, r4 + adds r0, 0x7 + muls r2, r0 + lsls r1, 2 + subs r1, r7, r1 + ldr r3, [r6] + adds r0, r1, 0 + muls r0, r3 + adds r0, 0x7 + adds r2, r0 + lsls r2, 1 + add r9, r2 + movs r1, 0 + mov r8, r1 + adds r2, r7, 0x1 + str r2, [sp, 0x10] + cmp r8, r4 + bge _081AA1B6 +_081AA10A: + movs r0, 0 + mov r12, r0 + mov r1, r8 + adds r1, 0x1 + str r1, [sp, 0x14] + cmp r12, r3 + bge _081AA1A2 + ldr r2, =gSaveBlock1Ptr + str r2, [sp, 0x18] + mov r4, r9 + mov r5, r10 +_081AA120: + ldrh r1, [r5] + ldr r0, =0x000003ff + ands r0, r1 + ldr r2, =0x0000028e + cmp r0, r2 + bne _081AA194 + mov r0, sp + ldrb r0, [r0, 0x1] + cmp r7, r0 + beq _081AA194 + mov r0, sp + ldrb r0, [r0] + cmp r7, r0 + bne _081AA164 + ldr r1, [sp, 0x8] + cmp r1, 0 + bne _081AA164 + ldr r2, [sp, 0x18] + ldr r3, [r2] + adds r2, r7, 0 + cmp r7, 0 + bge _081AA14E + adds r2, r7, 0x3 +_081AA14E: + asrs r2, 2 + lsls r1, r2, 2 + subs r1, r7, r1 + ldr r0, [r6] + muls r0, r1 + add r0, r12 + strh r0, [r3] + ldr r0, [r6, 0x4] + muls r0, r2 + add r0, r8 + strh r0, [r3, 0x2] +_081AA164: + ldrh r0, [r5] + movs r1, 0xFC + lsls r1, 8 + ands r1, r0 + ldr r2, =0x0000028d + adds r0, r2, 0 + orrs r1, r0 + strh r1, [r4] + ldr r3, [r6] + b _081AA196 + .pool +_081AA194: + strh r1, [r4] +_081AA196: + adds r4, 0x2 + adds r5, 0x2 + movs r0, 0x1 + add r12, r0 + cmp r12, r3 + blt _081AA120 +_081AA1A2: + lsls r0, r3, 3 + adds r0, 0x1E + add r9, r0 + lsls r0, r3, 1 + add r10, r0 + ldr r1, [sp, 0x14] + mov r8, r1 + ldr r0, [r6, 0x4] + cmp r8, r0 + blt _081AA10A +_081AA1B6: + ldr r7, [sp, 0x10] + cmp r7, 0xF + bgt _081AA1BE + b _081AA0A6 +_081AA1BE: + bl mapheader_run_script_with_tag_x1 + ldr r0, [sp, 0xC] + bl Free + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81AA078 + + thumb_func_start sub_81AA1D8 +sub_81AA1D8: @ 81AA1D8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + movs r5, 0 + mov r6, sp + adds r6, 0x1 + add r0, sp, 0x4 + mov r8, r0 + ldr r4, =gSaveBlock2Ptr + ldr r3, =0x00000cb4 + ldr r0, =0x0000ffff + adds r2, r0, 0 +_081AA1F2: + ldr r0, [r4] + lsls r1, r5, 1 + adds r0, r3 + adds r0, r1 + ldrh r1, [r0] + orrs r1, r2 + strh r1, [r0] + adds r5, 0x1 + cmp r5, 0x7 + ble _081AA1F2 + bl sub_81AA9E4 + lsls r0, 24 + lsrs r7, r0, 24 + mov r0, sp + adds r1, r6, 0 + bl sub_81AA33C + movs r0, 0 + str r0, [sp, 0x4] + ldr r0, =gSaveBlock1Ptr + ldr r1, [r0] + movs r0, 0xC7 + lsls r0, 4 + adds r1, r0 + ldr r2, =0x05000180 + mov r0, r8 + bl CpuSet + movs r5, 0 +_081AA22E: + cmp r5, 0 + bne _081AA254 + ldr r1, =gUnknown_08613650 + lsls r0, r7, 4 + adds r0, r1 + ldrb r0, [r0, 0x3] + b _081AA25C + .pool +_081AA254: + ldr r1, =gUnknown_08613650 + lsls r0, r7, 4 + adds r0, r1 + ldrb r0, [r0, 0x2] +_081AA25C: + cmp r0, 0x4 + bhi _081AA2E4 + lsls r0, 2 + ldr r1, =_081AA274 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081AA274: + .4byte _081AA288 + .4byte _081AA292 + .4byte _081AA2A2 + .4byte _081AA2B0 + .4byte _081AA2CC +_081AA288: + lsls r0, r5, 24 + lsrs r0, 24 + bl sub_81AA398 + b _081AA2E4 +_081AA292: + lsls r0, r5, 24 + lsrs r4, r0, 24 + mov r0, sp + ldrb r1, [r0] + adds r0, r4, 0 + bl sub_81AA4D8 + b _081AA2BE +_081AA2A2: + lsls r0, r5, 24 + lsrs r4, r0, 24 + ldrb r1, [r6] + adds r0, r4, 0 + bl sub_81AA4D8 + b _081AA2BE +_081AA2B0: + lsls r0, r5, 24 + lsrs r4, r0, 24 + mov r0, sp + ldrb r1, [r0] + adds r0, r4, 0 + bl sub_81AA648 +_081AA2BE: + lsls r0, 24 + cmp r0, 0 + beq _081AA2E4 + adds r0, r4, 0 + bl sub_81AA398 + b _081AA2E4 +_081AA2CC: + lsls r0, r5, 24 + lsrs r4, r0, 24 + ldrb r1, [r6] + adds r0, r4, 0 + bl sub_81AA648 + lsls r0, 24 + cmp r0, 0 + beq _081AA2E4 + adds r0, r4, 0 + bl sub_81AA398 +_081AA2E4: + adds r5, 0x1 + cmp r5, 0x1 + ble _081AA22E + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81AA1D8 + + thumb_func_start sub_81AA2F8 +sub_81AA2F8: @ 81AA2F8 + push {r4,r5,lr} + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r5, =gUnknown_08252C4F + ldr r4, =gUnknown_08252C6A + movs r2, 0xC8 + lsls r2, 4 + adds r1, r0, r2 + movs r3, 0xC7 + lsls r3, 4 + adds r2, r0, r3 + movs r3, 0x3F +_081AA310: + ldrb r0, [r2, 0x1] + cmp r0, 0x3B + beq _081AA328 + str r5, [r1] + b _081AA32A + .pool +_081AA328: + str r4, [r1] +_081AA32A: + adds r1, 0x18 + adds r2, 0x18 + subs r3, 0x1 + cmp r3, 0 + bge _081AA310 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81AA2F8 + + thumb_func_start sub_81AA33C +sub_81AA33C: @ 81AA33C + push {r4-r7,lr} + adds r4, r0, 0 + adds r6, r1, 0 + ldr r5, =gSaveBlock2Ptr + ldr r1, [r5] + ldr r2, =0x00000e28 + adds r0, r1, r2 + ldrh r2, [r0] + movs r3, 0xF + ands r2, r3 + strb r2, [r4] + ldr r7, =0x00000e22 + adds r1, r7 + ldrh r0, [r1] + ands r0, r3 + strb r0, [r6] + cmp r2, r0 + bne _081AA386 + ldr r1, [r5] + ldr r2, =0x00000e28 + adds r0, r1, r2 + ldrh r2, [r0] + adds r3, r2, 0x1 + adds r0, r3, 0 + asrs r0, 4 + lsls r0, 4 + subs r0, r3, r0 + strb r0, [r4] + adds r0, r1, r7 + ldrh r1, [r0] + adds r2, r1, 0 + adds r2, 0xF + adds r0, r2, 0 + asrs r0, 4 + lsls r0, 4 + subs r0, r2, r0 + strb r0, [r6] +_081AA386: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AA33C + + thumb_func_start sub_81AA398 +sub_81AA398: @ 81AA398 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + movs r5, 0 + bl sub_81AA9E4 + lsls r0, 24 + lsrs r6, r0, 24 + movs r0, 0x10 + bl AllocZeroed + str r0, [sp, 0x8] + bl sub_81AA96C + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000e26 + adds r0, r1 + ldrh r4, [r0] + movs r0, 0xF + ands r4, r0 + ldr r0, [sp] + cmp r0, 0 + bne _081AA3F0 + ldr r1, =gUnknown_08613650 + lsls r0, r6, 4 + adds r0, r1 + ldrb r0, [r0, 0x1] + mov r10, r0 + movs r1, 0 + str r1, [sp, 0x4] + b _081AA3FE + .pool +_081AA3F0: + ldr r1, =gUnknown_08613650 + lsls r0, r6, 4 + adds r0, r1 + ldrb r1, [r0] + mov r10, r1 + ldrb r0, [r0, 0x1] + str r0, [sp, 0x4] +_081AA3FE: + movs r0, 0 + mov r8, r0 + cmp r8, r10 + bge _081AA4C0 +_081AA406: + movs r1, 0x1 + add r1, r8 + mov r9, r1 + b _081AA42E + .pool +_081AA414: + lsls r2, r4, 24 + lsrs r2, 24 + ldr r3, [sp, 0x4] + add r3, r8 + lsls r3, 24 + lsrs r3, 24 + ldr r0, [sp] + ldr r1, [sp, 0x8] + bl sub_81AA760 + lsls r0, 24 + cmp r0, 0 + beq _081AA4B6 +_081AA42E: + ldr r0, =gBitTable + mov r12, r0 + ldr r6, =gSaveBlock2Ptr + ldr r7, =0x00000e28 + movs r3, 0x2 + lsls r0, r4, 2 + mov r1, r12 + adds r2, r0, r1 +_081AA43E: + movs r0, 0x1 + ands r0, r5 + cmp r0, 0 + beq _081AA464 + ldr r0, [r6] + adds r0, r7 + ldrh r1, [r0] + ldr r0, [r2] + ands r0, r1 + cmp r0, 0 + bne _081AA474 + b _081AA472 + .pool +_081AA464: + ldr r0, [r6] + adds r0, r7 + ldrh r1, [r0] + ldr r0, [r2] + ands r0, r1 + cmp r0, 0 + beq _081AA474 +_081AA472: + orrs r5, r3 +_081AA474: + adds r2, 0x4 + adds r4, 0x1 + cmp r4, 0xF + ble _081AA480 + mov r2, r12 + movs r4, 0 +_081AA480: + ldr r0, [r6] + ldr r1, =0x00000e26 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0xF + ands r1, r0 + cmp r4, r1 + bne _081AA4A6 + movs r1, 0x1 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _081AA4A4 + movs r0, 0x6 + orrs r5, r0 + b _081AA4A6 + .pool +_081AA4A4: + orrs r5, r1 +_081AA4A6: + adds r0, r5, 0 + ands r0, r3 + cmp r0, 0 + beq _081AA43E + movs r0, 0x4 + ands r0, r5 + cmp r0, 0 + beq _081AA414 +_081AA4B6: + movs r0, 0x1 + ands r5, r0 + mov r8, r9 + cmp r8, r10 + blt _081AA406 +_081AA4C0: + ldr r0, [sp, 0x8] + bl Free + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81AA398 + + thumb_func_start sub_81AA4D8 +sub_81AA4D8: @ 81AA4D8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0x4] + movs r6, 0 + movs r7, 0 + movs r0, 0 + str r0, [sp, 0xC] + bl sub_81AA9E4 + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x10 + bl AllocZeroed + str r0, [sp, 0x14] + bl sub_81AA96C + ldr r1, [sp] + cmp r1, 0 + bne _081AA524 + ldr r1, =gUnknown_08613650 + lsls r0, r4, 4 + adds r0, r1 + ldrb r0, [r0, 0x1] + str r0, [sp, 0x10] + movs r0, 0 + b _081AA530 + .pool +_081AA524: + ldr r1, =gUnknown_08613650 + lsls r0, r4, 4 + adds r0, r1 + ldrb r2, [r0] + str r2, [sp, 0x10] + ldrb r0, [r0, 0x1] +_081AA530: + movs r3, 0 + str r3, [sp, 0x8] + ldr r1, [sp, 0x10] + asrs r1, 31 + str r1, [sp, 0x18] + ldr r2, [sp, 0x10] + cmp r3, r2 + bge _081AA622 + str r0, [sp, 0x1C] + adds r3, r0, 0 + lsls r3, 24 + mov r9, r3 +_081AA548: + cmp r7, 0 + bne _081AA56E + mov r0, r9 + lsrs r3, r0, 24 + ldr r0, [sp] + ldr r1, [sp, 0x14] + ldr r2, [sp, 0x4] + bl sub_81AA760 + lsls r0, 24 + cmp r0, 0 + beq _081AA568 + movs r7, 0x1 + b _081AA56E + .pool +_081AA568: + ldr r1, [sp, 0xC] + adds r1, 0x1 + str r1, [sp, 0xC] +_081AA56E: + movs r0, 0x1 + ands r0, r7 + cmp r0, 0 + beq _081AA600 + ldr r2, =gUnknown_08613F46 + mov r8, r2 + ldr r3, [sp, 0x4] + lsls r4, r3, 2 + adds r0, r6, r4 + add r0, r8 + ldrb r2, [r0] + mov r0, r9 + lsrs r3, r0, 24 + ldr r0, [sp] + ldr r1, [sp, 0x14] + bl sub_81AA760 + lsls r0, 24 + ldr r1, [sp, 0x1C] + mov r10, r1 + adds r5, r4, 0 + cmp r0, 0 + beq _081AA5E8 + ldr r4, [sp, 0xC] + adds r4, 0x1 + b _081AA5C2 + .pool +_081AA5A8: + adds r0, r6, r5 + adds r0, r2 + ldrb r2, [r0] + mov r0, r10 + lsls r3, r0, 24 + lsrs r3, 24 + ldr r0, [sp] + ldr r1, [sp, 0x14] + bl sub_81AA760 + lsls r0, 24 + cmp r0, 0 + beq _081AA5E0 +_081AA5C2: + adds r6, 0x1 + ldr r0, =gUnknown_08613F46 + adds r1, r6, r5 + adds r1, r0 + ldrb r1, [r1] + adds r2, r0, 0 + cmp r1, 0xFF + beq _081AA5D6 + cmp r6, 0x3 + ble _081AA5D8 +_081AA5D6: + movs r6, 0 +_081AA5D8: + adds r7, 0x2 + asrs r0, r7, 1 + cmp r0, 0x4 + bne _081AA5A8 +_081AA5E0: + str r4, [sp, 0xC] + b _081AA600 + .pool +_081AA5E8: + adds r6, 0x1 + adds r0, r6, r4 + add r0, r8 + ldrb r0, [r0] + cmp r0, 0xFF + beq _081AA5F8 + cmp r6, 0x3 + ble _081AA5FA +_081AA5F8: + movs r6, 0 +_081AA5FA: + ldr r1, [sp, 0xC] + adds r1, 0x1 + str r1, [sp, 0xC] +_081AA600: + asrs r0, r7, 1 + cmp r0, 0x4 + beq _081AA622 + movs r0, 0x1 + ands r7, r0 + ldr r2, [sp, 0x1C] + adds r2, 0x1 + str r2, [sp, 0x1C] + movs r3, 0x80 + lsls r3, 17 + add r9, r3 + ldr r0, [sp, 0x8] + adds r0, 0x1 + str r0, [sp, 0x8] + ldr r1, [sp, 0x10] + cmp r0, r1 + blt _081AA548 +_081AA622: + movs r1, 0 + ldr r2, [sp, 0x10] + ldr r3, [sp, 0x18] + subs r0, r2, r3 + asrs r0, 1 + ldr r2, [sp, 0xC] + cmp r0, r2 + ble _081AA634 + movs r1, 0x1 +_081AA634: + adds r0, r1, 0 + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81AA4D8 + + thumb_func_start sub_81AA648 +sub_81AA648: @ 81AA648 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + lsls r1, 24 + lsrs r6, r1, 24 + movs r4, 0 + movs r7, 0 + movs r0, 0 + mov r8, r0 + bl sub_81AA9E4 + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0x10 + bl AllocZeroed + str r0, [sp, 0x8] + bl sub_81AA96C + ldr r1, [sp] + cmp r1, 0 + bne _081AA694 + ldr r1, =gUnknown_08613650 + lsls r0, r5, 4 + adds r0, r1 + ldrb r0, [r0, 0x1] + mov r10, r0 + movs r0, 0 + b _081AA6A0 + .pool +_081AA694: + ldr r1, =gUnknown_08613650 + lsls r0, r5, 4 + adds r0, r1 + ldrb r2, [r0] + mov r10, r2 + ldrb r0, [r0, 0x1] +_081AA6A0: + movs r3, 0 + str r3, [sp, 0x4] + mov r1, r10 + asrs r1, 31 + str r1, [sp, 0xC] + cmp r3, r10 + bge _081AA73E + ldr r2, =gUnknown_08613F46 + mov r9, r2 + lsls r5, r6, 2 + lsls r6, r0, 24 +_081AA6B6: + adds r0, r4, r5 + add r0, r9 + ldrb r2, [r0] + lsrs r3, r6, 24 + ldr r0, [sp] + ldr r1, [sp, 0x8] + bl sub_81AA760 + lsls r0, 24 + cmp r0, 0 + beq _081AA714 + adds r7, 0x1 + b _081AA6EE + .pool +_081AA6D8: + adds r0, r4, r5 + adds r0, r1 + ldrb r2, [r0] + lsrs r3, r6, 24 + ldr r0, [sp] + ldr r1, [sp, 0x8] + bl sub_81AA760 + lsls r0, 24 + cmp r0, 0 + beq _081AA728 +_081AA6EE: + adds r4, 0x1 + adds r0, r4, r5 + add r0, r9 + ldrb r0, [r0] + ldr r1, =gUnknown_08613F46 + cmp r0, 0xFF + beq _081AA700 + cmp r4, 0x3 + ble _081AA702 +_081AA700: + movs r4, 0 +_081AA702: + movs r3, 0x1 + add r8, r3 + mov r0, r8 + cmp r0, 0x4 + bne _081AA6D8 + b _081AA728 + .pool +_081AA714: + adds r4, 0x1 + adds r0, r4, r5 + add r0, r9 + ldrb r0, [r0] + cmp r0, 0xFF + beq _081AA724 + cmp r4, 0x3 + ble _081AA726 +_081AA724: + movs r4, 0 +_081AA726: + adds r7, 0x1 +_081AA728: + mov r1, r8 + cmp r1, 0x4 + beq _081AA73E + movs r2, 0x80 + lsls r2, 17 + adds r6, r2 + ldr r3, [sp, 0x4] + adds r3, 0x1 + str r3, [sp, 0x4] + cmp r3, r10 + blt _081AA6B6 +_081AA73E: + movs r1, 0 + mov r2, r10 + ldr r3, [sp, 0xC] + subs r0, r2, r3 + asrs r0, 1 + cmp r0, r7 + ble _081AA74E + movs r1, 0x1 +_081AA74E: + adds r0, r1, 0 + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81AA648 + + thumb_func_start sub_81AA760 +sub_81AA760: @ 81AA760 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + mov r10, r1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + lsls r3, 24 + lsrs r7, r3, 24 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000e22 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081AA7D0 + movs r6, 0x7 +_081AA792: + movs r4, 0x7 + lsls r5, r6, 24 +_081AA796: + lsls r1, r4, 24 + lsrs r1, 24 + mov r0, r8 + str r0, [sp] + str r7, [sp, 0x4] + mov r0, r9 + lsrs r2, r5, 24 + mov r3, r10 + bl sub_81AA810 + lsls r0, 24 + cmp r0, 0 + beq _081AA7CC + subs r4, 0x1 + cmp r4, 0 + bge _081AA796 + subs r6, 0x1 + movs r1, 0x1 + negs r1, r1 + cmp r6, r1 + bgt _081AA792 + b _081AA7FC + .pool +_081AA7CC: + movs r0, 0 + b _081AA7FE +_081AA7D0: + movs r6, 0 +_081AA7D2: + movs r4, 0 + lsls r5, r6, 24 +_081AA7D6: + lsls r1, r4, 24 + lsrs r1, 24 + mov r0, r8 + str r0, [sp] + str r7, [sp, 0x4] + mov r0, r9 + lsrs r2, r5, 24 + mov r3, r10 + bl sub_81AA810 + lsls r0, 24 + cmp r0, 0 + beq _081AA7CC + adds r4, 0x1 + cmp r4, 0x7 + ble _081AA7D6 + adds r6, 0x1 + cmp r6, 0x7 + ble _081AA7D2 +_081AA7FC: + movs r0, 0x1 +_081AA7FE: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81AA760 + + thumb_func_start sub_81AA810 +sub_81AA810: @ 81AA810 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + ldr r4, [sp, 0x34] + ldr r5, [sp, 0x38] + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0x4] + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + lsls r4, 24 + lsrs r4, 24 + mov r10, r4 + lsls r5, 24 + lsrs r6, r5, 24 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + movs r1, 0xC7 + lsls r1, 4 + adds r1, r0, r1 + str r1, [sp, 0x8] + add r3, r10 + ldrb r1, [r3] + adds r1, 0x2C + movs r0, 0x19 + bl get_mapheader_by_bank_and_number + adds r5, r0, 0 + movs r7, 0 + ldr r1, [r5, 0x4] + ldrb r2, [r1] + cmp r7, r2 + bge _081AA95A + movs r0, 0x3 + ands r0, r4 + lsls r0, 3 + str r0, [sp, 0xC] +_081AA868: + ldr r1, [r1, 0x4] + lsls r2, r7, 1 + adds r0, r2, r7 + lsls r0, 3 + adds r3, r0, r1 + movs r4, 0x4 + ldrsh r0, [r3, r4] + ldr r1, [r5, 0x4] + mov r12, r1 + mov r9, r2 + ldr r2, [sp, 0x4] + cmp r0, r2 + bne _081AA950 + movs r4, 0x6 + ldrsh r0, [r3, r4] + cmp r0, r8 + bne _081AA950 + ldr r0, [sp] + cmp r0, 0 + bne _081AA896 + ldrb r0, [r3, 0x1] + cmp r0, 0x3B + bne _081AA8A2 +_081AA896: + ldr r1, [sp] + cmp r1, 0x1 + bne _081AA950 + ldrb r0, [r3, 0x1] + cmp r0, 0x3B + bne _081AA950 +_081AA8A2: + movs r3, 0 + ldr r2, [r5, 0x4] + mov r12, r2 + cmp r3, r6 + bge _081AA8DC + ldr r4, [sp, 0x4] + ldr r0, [sp, 0xC] + adds r4, r0 + str r4, [sp, 0x10] + mov r1, r10 + lsrs r0, r1, 2 + lsls r0, 3 + mov r2, r8 + adds r1, r2, r0 + ldr r2, [sp, 0x8] + adds r2, 0x4 +_081AA8C2: + movs r4, 0 + ldrsh r0, [r2, r4] + ldr r4, [sp, 0x10] + cmp r0, r4 + bne _081AA8D4 + movs r4, 0x2 + ldrsh r0, [r2, r4] + cmp r0, r1 + beq _081AA8DC +_081AA8D4: + adds r2, 0x18 + adds r3, 0x1 + cmp r3, r6 + blt _081AA8C2 +_081AA8DC: + cmp r3, r6 + bne _081AA950 + lsls r0, r6, 1 + mov r8, r0 + adds r0, r6 + lsls r0, 3 + ldr r1, [sp, 0x8] + adds r5, r0, r1 + mov r3, r12 + ldr r2, [r3, 0x4] + mov r4, r9 + adds r1, r4, r7 + lsls r1, 3 + adds r0, r5, 0 + adds r1, r2 + ldm r1!, {r2-r4} + stm r0!, {r2-r4} + ldm r1!, {r2-r4} + stm r0!, {r2-r4} + ldrh r0, [r5, 0x4] + ldr r1, [sp, 0xC] + adds r0, r1 + strh r0, [r5, 0x4] + mov r2, r10 + lsrs r0, r2, 2 + lsls r0, 3 + ldrh r3, [r5, 0x6] + adds r0, r3 + strh r0, [r5, 0x6] + adds r0, r6, 0x1 + strb r0, [r5] + ldrb r0, [r5, 0x1] + cmp r0, 0x3B + beq _081AA940 + adds r0, r6, 0 + bl sub_81A9F90 + lsls r0, 16 + lsrs r7, r0, 16 + adds r4, r7, 0 + adds r0, r4, 0 + bl sub_81627A4 + strb r0, [r5, 0x1] + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000cb4 + adds r0, r1 + add r0, r8 + strh r4, [r0] +_081AA940: + movs r0, 0 + b _081AA95C + .pool +_081AA950: + adds r7, 0x1 + mov r1, r12 + ldrb r2, [r1] + cmp r7, r2 + blt _081AA868 +_081AA95A: + movs r0, 0x1 +_081AA95C: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81AA810 + + thumb_func_start sub_81AA96C +sub_81AA96C: @ 81AA96C + push {r4-r7,lr} + adds r6, r0, 0 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r2, =0x00000e22 + adds r1, r0, r2 + ldrh r4, [r1] + ldr r1, =0x00000e24 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 16 + orrs r4, r0 + bl sub_81AA9E4 + lsls r0, 24 + lsrs r5, r0, 24 + movs r3, 0 + ldr r2, =gUnknown_08613655 + mov r12, r2 + movs r7, 0x7 +_081AA994: + adds r2, r6, r3 + adds r0, r4, 0 + ands r0, r7 + lsls r1, r5, 4 + adds r0, r1 + add r0, r12 + ldrb r0, [r0] + strb r0, [r2] + asrs r4, 3 + cmp r3, 0x7 + bne _081AA9C0 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r2, =0x00000e26 + adds r0, r1, r2 + ldrh r4, [r0] + ldr r0, =0x00000e28 + adds r1, r0 + ldrh r0, [r1] + lsls r0, 16 + orrs r4, r0 + asrs r4, 8 +_081AA9C0: + adds r3, 0x1 + cmp r3, 0xF + ble _081AA994 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AA96C + + thumb_func_start sub_81AA9E4 +sub_81AA9E4: @ 81AA9E4 + push {r4,lr} + ldr r0, =gSaveBlock2Ptr + ldr r4, [r0] + ldr r1, =0x00000e28 + adds r0, r4, r1 + ldrh r0, [r0] + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r3, r0, 16 + ldr r0, =0x00000cb2 + adds r4, r0 + ldrh r0, [r4] + ldr r1, =gUnknown_08613794 + adds r0, r1 + ldrb r2, [r0] + cmp r2, 0x21 + bhi _081AAA38 + ldr r1, =gUnknown_08613750 + lsls r0, r2, 1 + adds r0, r1 +_081AAA10: + ldrb r1, [r0] + cmp r3, r1 + bge _081AAA30 + ldrb r0, [r0, 0x1] + b _081AAA3A + .pool +_081AAA30: + adds r0, 0x2 + adds r2, 0x1 + cmp r2, 0x21 + bls _081AAA10 +_081AAA38: + movs r0, 0 +_081AAA3A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81AA9E4 + + thumb_func_start sub_81AAA40 +sub_81AAA40: @ 81AAA40 + push {lr} + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + movs r1, 0xC7 + lsls r1, 4 + adds r2, r0, r1 + movs r1, 0 + movs r3, 0xC7 + lsls r3, 4 + adds r0, r3 + b _081AAA6E + .pool +_081AAA5C: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xF + bhi _081AAA74 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, r2 +_081AAA6E: + ldrb r0, [r0] + cmp r0, 0 + bne _081AAA5C +_081AAA74: + adds r0, r1, 0 + pop {r1} + bx r1 + thumb_func_end sub_81AAA40 + + thumb_func_start sub_81AAA7C +sub_81AAA7C: @ 81AAA7C + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + movs r3, 0 + ldr r1, =gSaveBlock2Ptr + mov r8, r1 + lsls r1, r0, 2 + adds r1, r0 + movs r0, 0 + mov r12, r0 + lsls r4, r1, 1 + ldr r7, =0x00000e2c + movs r6, 0 + ldr r5, =0x00000e54 + lsls r2, r1, 2 +_081AAA9E: + mov r1, r8 + ldr r0, [r1] + adds r1, r0, r7 + adds r1, r2 + strh r6, [r1] + adds r1, r3, r4 + adds r0, r5 + adds r0, r1 + mov r1, r12 + strb r1, [r0] + adds r2, 0x2 + adds r3, 0x1 + cmp r3, 0x9 + ble _081AAA9E + movs r0, 0x15 + movs r1, 0x1 + bl AddPyramidBagItem + movs r0, 0x22 + movs r1, 0x1 + bl AddPyramidBagItem + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AAA7C + + thumb_func_start CalculateBattlePyramidPickupItemId +CalculateBattlePyramidPickupItemId: @ 81AAAE0 + push {r4-r6,lr} + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r2, =0x00000ca9 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 30 + lsrs r6, r0, 30 + lsls r0, r6, 1 + ldr r2, =0x00000e1a + adds r1, r2 + adds r1, r0 + ldrh r0, [r1] + movs r1, 0x7 + bl __udivsi3 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x13 + ble _081AAB0A + movs r4, 0x13 +_081AAB0A: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r2, r0, 16 + movs r1, 0 + ldr r3, =gUnknown_08613F86 + ldrb r0, [r3] + lsls r5, r4, 2 + cmp r0, r2 + bgt _081AAB36 +_081AAB28: + adds r1, 0x1 + cmp r1, 0x9 + bhi _081AAB3A + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + ble _081AAB28 +_081AAB36: + cmp r1, 0x9 + bls _081AAB3C +_081AAB3A: + movs r1, 0x9 +_081AAB3C: + cmp r6, 0 + bne _081AAB58 + ldr r2, =gUnknown_0861379C + b _081AAB5A + .pool +_081AAB58: + ldr r2, =gUnknown_0861392C +_081AAB5A: + lsls r1, 1 + adds r0, r5, r4 + lsls r0, 2 + adds r1, r0 + adds r1, r2 + ldrh r0, [r1] + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end CalculateBattlePyramidPickupItemId + + thumb_func_start ResetBagScrollPositions +ResetBagScrollPositions: @ 81AAB70 + push {r4,lr} + ldr r4, =gUnknown_0203CE58 + movs r0, 0 + strb r0, [r4, 0x5] + adds r0, r4, 0 + adds r0, 0x8 + movs r1, 0 + movs r2, 0xA + bl memset + adds r4, 0x12 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0xA + bl memset + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end ResetBagScrollPositions + + thumb_func_start CB2_BagMenuFromStartMenu +@ void CB2_BagMenuFromStartMenu() +CB2_BagMenuFromStartMenu: @ 81AAB9C + push {lr} + ldr r2, =sub_8086194 + movs r0, 0 + movs r1, 0x5 + bl GoToBagMenu + pop {r0} + bx r0 + .pool + thumb_func_end CB2_BagMenuFromStartMenu + + thumb_func_start sub_81AABB0 +sub_81AABB0: @ 81AABB0 + push {lr} + bl InBattlePyramid + lsls r0, 24 + cmp r0, 0 + bne _081AABCC + ldr r2, =sub_8059D50 + movs r0, 0x1 + movs r1, 0x5 + bl GoToBagMenu + b _081AABD4 + .pool +_081AABCC: + ldr r1, =sub_8059D50 + movs r0, 0x1 + bl sub_81C4F98 +_081AABD4: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AABB0 + + thumb_func_start CB2_ChooseBerry +CB2_ChooseBerry: @ 81AABDC + push {lr} + ldr r2, =sub_80861B0 + movs r0, 0x4 + movs r1, 0x3 + bl GoToBagMenu + pop {r0} + bx r0 + .pool + thumb_func_end CB2_ChooseBerry + + thumb_func_start sub_81AABF0 +sub_81AABF0: @ 81AABF0 + push {lr} + adds r2, r0, 0 + movs r0, 0x5 + movs r1, 0x3 + bl GoToBagMenu + pop {r0} + bx r0 + thumb_func_end sub_81AABF0 + + thumb_func_start CB2_GoToSellMenu +@ void CB2_GoToSellMenu() +CB2_GoToSellMenu: @ 81AAC00 + push {lr} + ldr r2, =CB2_ExitSellMenu + movs r0, 0x3 + movs r1, 0x5 + bl GoToBagMenu + pop {r0} + bx r0 + .pool + thumb_func_end CB2_GoToSellMenu + + thumb_func_start sub_81AAC14 +sub_81AAC14: @ 81AAC14 + push {lr} + ldr r2, =sub_816B31C + movs r0, 0x6 + movs r1, 0x5 + bl GoToBagMenu + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AAC14 + + thumb_func_start sub_81AAC28 +sub_81AAC28: @ 81AAC28 + push {lr} + ldr r2, =bag_menu_leave_maybe_3 + movs r0, 0x9 + movs r1, 0x5 + bl GoToBagMenu + ldr r0, =gSpecialVar_0x8005 + movs r1, 0 + strh r1, [r0] + ldr r0, =gScriptResult + strh r1, [r0] + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AAC28 + + thumb_func_start sub_81AAC50 +sub_81AAC50: @ 81AAC50 + push {lr} + ldr r2, =bag_menu_leave_maybe_2 + movs r0, 0x7 + movs r1, 0x5 + bl GoToBagMenu + ldr r1, =gScriptResult + movs r0, 0 + strh r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AAC50 + + thumb_func_start sub_81AAC70 +sub_81AAC70: @ 81AAC70 + push {lr} + ldr r2, =bag_menu_leave_maybe + movs r0, 0x8 + movs r1, 0x5 + bl GoToBagMenu + ldr r1, =gScriptResult + movs r0, 0 + strh r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AAC70 + + thumb_func_start GoToBagMenu +@ void GoToBagMenu(u8 bagMenuType, u8 pocketId, void ( *postExitMenuMainCallback2)()) +GoToBagMenu: @ 81AAC90 + push {r4-r7,lr} + adds r4, r2, 0 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + ldr r6, =gUnknown_0203CE54 + ldr r0, =0x00000c48 + bl AllocZeroed + str r0, [r6] + cmp r0, 0 + bne _081AACBC + adds r0, r4, 0 + bl SetMainCallback2 + b _081AAD3A + .pool +_081AACBC: + ldr r0, =gUnknown_0203CE58 + cmp r5, 0xC + beq _081AACC4 + strb r5, [r0, 0x4] +_081AACC4: + cmp r4, 0 + beq _081AACCA + str r4, [r0] +_081AACCA: + cmp r7, 0x4 + bhi _081AACD0 + strb r7, [r0, 0x5] +_081AACD0: + ldrb r0, [r0, 0x4] + subs r0, 0x4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _081AACF0 + ldr r2, [r6] + ldr r0, =0x0000081b + adds r2, r0 + ldrb r1, [r2] + movs r0, 0x10 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] +_081AACF0: + ldr r0, [r6] + movs r1, 0 + str r1, [r0] + ldr r1, =0x0000081a + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] + ldr r0, [r6] + ldr r1, =0x0000081e + adds r0, r1 + movs r1, 0x1 + negs r1, r1 + strb r1, [r0] + ldr r0, [r6] + ldr r1, =0x0000081f + adds r0, r1 + movs r1, 0x1 + negs r1, r1 + strb r1, [r0] + ldr r0, [r6] + ldr r1, =0x00000804 + adds r0, r1 + movs r1, 0xFF + movs r2, 0xC + bl memset + ldr r0, [r6] + movs r1, 0x81 + lsls r1, 4 + adds r0, r1 + movs r1, 0xFF + movs r2, 0xA + bl memset + ldr r0, =CB2_Bag + bl SetMainCallback2 +_081AAD3A: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end GoToBagMenu + + thumb_func_start c2_bag_3 +c2_bag_3: @ 81AAD5C + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl do_scheduled_bg_tilemap_copies_to_vram + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end c2_bag_3 + + thumb_func_start vblank_cb_bag_menu +vblank_cb_bag_menu: @ 81AAD78 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end vblank_cb_bag_menu + + thumb_func_start CB2_Bag +CB2_Bag: @ 81AAD8C + push {lr} +_081AAD8E: + bl sub_81221EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081AADB2 + bl setup_bag_menu + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081AADB2 + bl sub_81221AC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081AAD8E +_081AADB2: + pop {r0} + bx r0 + thumb_func_end CB2_Bag + + thumb_func_start setup_bag_menu +setup_bag_menu: @ 81AADB8 + push {r4,r5,lr} + sub sp, 0x4 + ldr r1, =gMain + movs r2, 0x87 + lsls r2, 3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, r1, 0 + cmp r0, 0x14 + bls _081AADCE + b _081AB02C +_081AADCE: + lsls r0, 2 + ldr r1, =_081AADE0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081AADE0: + .4byte _081AAE34 + .4byte _081AAE3E + .4byte _081AAE50 + .4byte _081AAE56 + .4byte _081AAE78 + .4byte _081AAE7E + .4byte _081AAE86 + .4byte _081AAEA4 + .4byte _081AAECC + .4byte _081AAEDA + .4byte _081AAEEC + .4byte _081AAEFA + .4byte _081AAF0C + .4byte _081AAF1C + .4byte _081AAF54 + .4byte _081AAFA0 + .4byte _081AAFBC + .4byte _081AAFC2 + .4byte _081AAFD8 + .4byte _081AAFDE + .4byte _081AAFF8 +_081AAE34: + bl SetVBlankHBlankCallbacksToNull + bl clear_scheduled_bg_copies_to_vram + b _081AB012 +_081AAE3E: + bl remove_some_task + ldr r1, =gMain + movs r2, 0x87 + lsls r2, 3 + adds r1, r2 + b _081AB01A + .pool +_081AAE50: + bl FreeAllSpritePalettes + b _081AB012 +_081AAE56: + bl ResetPaletteFade + ldr r2, =gPaletteFade + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + ldr r1, =gMain + movs r2, 0x87 + lsls r2, 3 + adds r1, r2 + b _081AB01A + .pool +_081AAE78: + bl ResetSpriteData + b _081AB012 +_081AAE7E: + movs r0, 0x87 + lsls r0, 3 + adds r1, r2, r0 + b _081AB01A +_081AAE86: + bl sub_81221AC + lsls r0, 24 + cmp r0, 0 + bne _081AAE94 + bl ResetTasks +_081AAE94: + ldr r1, =gMain + movs r2, 0x87 + lsls r2, 3 + adds r1, r2 + b _081AB01A + .pool +_081AAEA4: + bl bag_menu_init_bgs + ldr r0, =gUnknown_0203CE54 + ldr r0, [r0] + ldr r1, =0x00000834 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + ldr r1, =gMain + movs r2, 0x87 + lsls r2, 3 + adds r1, r2 + b _081AB01A + .pool +_081AAECC: + bl load_bag_menu_graphics + lsls r0, 24 + cmp r0, 0 + bne _081AAED8 + b _081AB044 +_081AAED8: + b _081AB012 +_081AAEDA: + bl setup_bag_menu_textboxes + ldr r1, =gMain + movs r2, 0x87 + lsls r2, 3 + adds r1, r2 + b _081AB01A + .pool +_081AAEEC: + bl sub_81ABA6C + bl sub_81ABAC4 + bl sub_81ABAE0 + b _081AB012 +_081AAEFA: + bl allocate_bag_item_list_buffers + ldr r1, =gMain + movs r2, 0x87 + lsls r2, 3 + adds r1, r2 + b _081AB01A + .pool +_081AAF0C: + ldr r0, =gUnknown_0203CE58 + ldrb r0, [r0, 0x5] + bl load_bag_item_list_buffers + b _081AB012 + .pool +_081AAF1C: + ldr r1, =gUnknown_085E91FC + ldr r4, =gUnknown_0203CE58 + ldrb r0, [r4, 0x5] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0 + bl bag_menu_print_pocket_names + movs r0, 0 + bl bag_menu_copy_pocket_name_to_window + ldrb r0, [r4, 0x5] + movs r1, 0x1 + bl bag_menu_draw_pocket_indicator_square + ldr r1, =gMain + movs r2, 0x87 + lsls r2, 3 + adds r1, r2 + b _081AB01A + .pool +_081AAF54: + ldr r4, =gUnknown_0203CE58 + ldrb r0, [r4, 0x4] + bl sub_81AB1F0 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, =gUnknown_03006310 + ldrb r2, [r4, 0x5] + lsls r2, 1 + adds r1, r4, 0 + adds r1, 0x12 + adds r1, r2, r1 + ldrh r1, [r1] + adds r4, 0x8 + adds r2, r4 + ldrh r2, [r2] + bl ListMenuInit + ldr r2, =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r2 + lsls r0, 24 + lsrs r0, 24 + movs r2, 0 + strh r0, [r1, 0x8] + strh r2, [r1, 0xE] + strh r2, [r1, 0x18] + b _081AB012 + .pool +_081AAFA0: + ldr r0, =gUnknown_0203CE58 + ldrb r0, [r0, 0x5] + bl AddBagVisualObject + ldr r1, =gMain + movs r2, 0x87 + lsls r2, 3 + adds r1, r2 + b _081AB01A + .pool +_081AAFBC: + bl sub_80D4FAC + b _081AB012 +_081AAFC2: + bl bag_menu_add_pocket_scroll_arrow_indicators_maybe + bl bag_menu_add_list_scroll_arrow_indicators_maybe + ldr r1, =gMain + movs r2, 0x87 + lsls r2, 3 + adds r1, r2 + b _081AB01A + .pool +_081AAFD8: + bl bag_menu_prepare_tmhm_move_window + b _081AB012 +_081AAFDE: + movs r0, 0x1 + negs r0, r0 + movs r1, 0x10 + movs r2, 0 + bl BlendPalettes + ldr r1, =gMain + movs r2, 0x87 + lsls r2, 3 + adds r1, r2 + b _081AB01A + .pool +_081AAFF8: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r2, =gPaletteFade + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x8] +_081AB012: + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 +_081AB01A: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _081AB044 + .pool +_081AB02C: + ldr r0, =vblank_cb_bag_menu + bl SetVBlankCallback + ldr r0, =c2_bag_3 + bl SetMainCallback2 + movs r0, 0x1 + b _081AB046 + .pool +_081AB044: + movs r0, 0 +_081AB046: + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end setup_bag_menu + + thumb_func_start bag_menu_init_bgs +bag_menu_init_bgs: @ 81AB050 + push {r4,lr} + bl sub_8121DA0 + ldr r4, =gUnknown_0203CE54 + ldr r0, [r4] + adds r0, 0x4 + movs r2, 0x80 + lsls r2, 4 + movs r1, 0 + bl memset + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, =gUnknown_08613F90 + movs r0, 0 + movs r2, 0x3 + bl InitBgsFromTemplates + ldr r1, [r4] + adds r1, 0x4 + movs r0, 0x2 + bl SetBgTilemapBuffer + bl sub_8121E10 + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + movs r1, 0x82 + lsls r1, 5 + movs r0, 0 + bl SetGpuReg + movs r0, 0 + bl ShowBg + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end bag_menu_init_bgs + + thumb_func_start load_bag_menu_graphics +load_bag_menu_graphics: @ 81AB0BC + push {r4,lr} + sub sp, 0x4 + ldr r4, =gUnknown_0203CE54 + ldr r0, [r4] + ldr r1, =0x00000834 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x4 + bls _081AB0D2 + b _081AB1CC +_081AB0D2: + lsls r0, 2 + ldr r1, =_081AB0E8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081AB0E8: + .4byte _081AB0FC + .4byte _081AB118 + .4byte _081AB13C + .4byte _081AB174 + .4byte _081AB1A8 +_081AB0FC: + bl reset_temp_tile_data_buffers + ldr r1, =gUnknown_08D9A620 + movs r0, 0 + str r0, [sp] + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + b _081AB1AE + .pool +_081AB118: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081AB1E4 + ldr r0, =gUnknown_08D9A88C + ldr r4, =gUnknown_0203CE54 + ldr r1, [r4] + adds r1, 0x4 + bl LZDecompressWram + ldr r1, [r4] + b _081AB1B2 + .pool +_081AB13C: + bl IsWallysBag + lsls r0, 24 + cmp r0, 0 + bne _081AB164 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r0, [r0, 0x8] + cmp r0, 0 + beq _081AB164 + ldr r0, =gUnknown_08D9A5D4 + movs r1, 0 + movs r2, 0x40 + bl LoadCompressedPalette + b _081AB1AE + .pool +_081AB164: + ldr r0, =gUnknown_08D9A588 + movs r1, 0 + movs r2, 0x40 + bl LoadCompressedPalette + b _081AB1AE + .pool +_081AB174: + bl IsWallysBag + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081AB18A + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r0, [r0, 0x8] + cmp r0, 0 + bne _081AB19C +_081AB18A: + ldr r0, =gUnknown_0857FB34 + bl LoadCompressedObjectPic + b _081AB1AE + .pool +_081AB19C: + ldr r0, =gUnknown_0857FB3C + bl LoadCompressedObjectPic + b _081AB1AE + .pool +_081AB1A8: + ldr r0, =gUnknown_0857FB44 + bl LoadCompressedObjectPalette +_081AB1AE: + ldr r0, =gUnknown_0203CE54 + ldr r1, [r0] +_081AB1B2: + ldr r0, =0x00000834 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _081AB1E4 + .pool +_081AB1CC: + bl sub_8122328 + ldr r0, [r4] + ldr r1, =0x00000834 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + movs r0, 0x1 + b _081AB1E6 + .pool +_081AB1E4: + movs r0, 0 +_081AB1E6: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end load_bag_menu_graphics + + thumb_func_start sub_81AB1F0 +sub_81AB1F0: @ 81AB1F0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xA + bne _081AB204 + ldr r0, =Task_WallyTutorialBagMenu + b _081AB206 + .pool +_081AB204: + ldr r0, =Task_BagMenu +_081AB206: + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81AB1F0 + + thumb_func_start allocate_bag_item_list_buffers +allocate_bag_item_list_buffers: @ 81AB218 + push {r4,lr} + ldr r4, =gUnknown_0203CE74 + movs r0, 0x82 + lsls r0, 2 + bl Alloc + str r0, [r4] + ldr r4, =gUnknown_0203CE78 + movs r0, 0xC3 + lsls r0, 3 + bl Alloc + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end allocate_bag_item_list_buffers + + thumb_func_start load_bag_item_list_buffers +@ void load_bag_item_list_buffers(int pocket_id) +load_bag_item_list_buffers: @ 81AB240 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r7, r0, 24 + lsls r1, r7, 3 + ldr r0, =gBagPockets + adds r1, r0 + mov r8, r1 + ldr r0, =gUnknown_0203CE54 + ldr r2, [r0] + ldr r1, =0x0000081b + adds r0, r2, r1 + ldrb r1, [r0] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081AB2FC + movs r6, 0 + ldr r3, =0x00000829 + adds r0, r2, r3 + adds r0, r7 + ldrb r0, [r0] + subs r0, 0x1 + cmp r6, r0 + bge _081AB2B6 + ldr r5, =gUnknown_0203CE78 +_081AB276: + lsls r4, r6, 1 + adds r4, r6 + lsls r4, 3 + ldr r0, [r5] + adds r0, r4 + mov r1, r8 + ldr r2, [r1] + lsls r1, r6, 2 + adds r1, r2 + ldrh r1, [r1] + bl get_name + ldr r0, =gUnknown_0203CE74 + ldr r0, [r0] + lsls r1, r6, 3 + adds r1, r0 + ldr r0, [r5] + adds r0, r4 + str r0, [r1] + str r6, [r1, 0x4] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, =gUnknown_0203CE54 + ldr r0, [r0] + ldr r3, =0x00000829 + adds r0, r3 + adds r0, r7 + ldrb r0, [r0] + subs r0, 0x1 + cmp r6, r0 + blt _081AB276 +_081AB2B6: + ldr r5, =gUnknown_0203CE78 + lsls r4, r6, 1 + adds r4, r6 + lsls r4, 3 + ldr r0, [r5] + adds r0, r4 + ldr r1, =gUnknown_085E8DB4 + bl StringCopy + ldr r0, =gUnknown_0203CE74 + ldr r0, [r0] + lsls r1, r6, 3 + adds r1, r0 + ldr r0, [r5] + adds r0, r4 + str r0, [r1] + movs r0, 0x2 + negs r0, r0 + str r0, [r1, 0x4] + b _081AB34A + .pool +_081AB2FC: + movs r6, 0 + ldr r4, =0x00000829 + adds r0, r2, r4 + adds r0, r7 + ldrb r0, [r0] + cmp r6, r0 + bcs _081AB34A + ldr r5, =gUnknown_0203CE78 +_081AB30C: + lsls r4, r6, 1 + adds r4, r6 + lsls r4, 3 + ldr r0, [r5] + adds r0, r4 + mov r1, r8 + ldr r2, [r1] + lsls r1, r6, 2 + adds r1, r2 + ldrh r1, [r1] + bl get_name + ldr r0, =gUnknown_0203CE74 + ldr r0, [r0] + lsls r1, r6, 3 + adds r1, r0 + ldr r0, [r5] + adds r0, r4 + str r0, [r1] + str r6, [r1, 0x4] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, =gUnknown_0203CE54 + ldr r0, [r0] + ldr r3, =0x00000829 + adds r0, r3 + adds r0, r7 + ldrb r0, [r0] + cmp r6, r0 + bcc _081AB30C +_081AB34A: + ldr r2, =gUnknown_03006310 + adds r1, r2, 0 + ldr r0, =gUnknown_08613F9C + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + ldr r0, =gUnknown_0203CE54 + ldr r1, [r0] + ldr r4, =0x00000829 + adds r0, r1, r4 + adds r0, r7 + ldrb r0, [r0] + strh r0, [r2, 0xC] + ldr r0, =gUnknown_0203CE74 + ldr r0, [r0] + str r0, [r2] + ldr r5, =0x0000082e + adds r1, r5 + adds r1, r7 + ldrb r0, [r1] + strh r0, [r2, 0xE] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end load_bag_item_list_buffers + + thumb_func_start get_name +@ void get_name(char *dest, int name_id) +get_name: @ 81AB39C + push {r4-r6,lr} + adds r6, r0, 0 + lsls r1, 16 + lsrs r5, r1, 16 + ldr r0, =gUnknown_0203CE58 + ldrb r0, [r0, 0x5] + cmp r0, 0x2 + beq _081AB3C0 + cmp r0, 0x3 + beq _081AB420 + adds r0, r5, 0 + adds r1, r6, 0 + bl CopyItemName + b _081AB43E + .pool +_081AB3C0: + ldr r4, =gStringVar2 + adds r0, r5, 0 + bl ItemIdToBattleMoveId + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xD + muls r1, r0 + ldr r0, =gMoveNames + adds r1, r0 + adds r0, r4, 0 + bl StringCopy + movs r0, 0xA9 + lsls r0, 1 + cmp r5, r0 + bls _081AB408 + ldr r0, =gStringVar1 + ldr r2, =0xfffffeae + adds r1, r5, r2 + movs r2, 0x2 + movs r3, 0x1 + bl ConvertIntToDecimalStringN + ldr r1, =gUnknown_085E921A + b _081AB438 + .pool +_081AB408: + ldr r0, =gStringVar1 + ldr r2, =0xfffffee0 + adds r1, r5, r2 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + b _081AB436 + .pool +_081AB420: + ldr r0, =gStringVar1 + adds r1, r5, 0 + subs r1, 0x84 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r1, =gStringVar2 + adds r0, r5, 0 + bl CopyItemName +_081AB436: + ldr r1, =gUnknown_085E9210 +_081AB438: + adds r0, r6, 0 + bl StringExpandPlaceholders +_081AB43E: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end get_name + + thumb_func_start bag_menu_change_item_callback +bag_menu_change_item_callback: @ 81AB450 + push {r4-r6,lr} + adds r6, r0, 0 + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0x1 + beq _081AB466 + movs r0, 0x5 + bl PlaySE + bl ShakeBagVisual +_081AB466: + ldr r4, =gUnknown_0203CE54 + ldr r1, [r4] + ldr r2, =0x0000081a + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0xFF + bne _081AB50C + adds r2, 0x1 + adds r0, r1, r2 + ldrb r1, [r0] + lsls r1, 26 + lsrs r1, 30 + movs r0, 0x1 + eors r0, r1 + bl RemoveBagItemIconObject + movs r0, 0x2 + negs r0, r0 + cmp r6, r0 + beq _081AB4C8 + ldr r0, =gUnknown_0203CE58 + ldrb r0, [r0, 0x5] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r6, 16 + lsrs r1, 16 + bl BagGetItemIdByPocketPosition + lsls r0, 16 + lsrs r0, 16 + ldr r1, [r4] + ldr r2, =0x0000081b + adds r1, r2 + ldrb r1, [r1] + lsls r1, 26 + lsrs r1, 30 + bl AddBagItemIconObject + b _081AB4DA + .pool +_081AB4C8: + ldr r0, =0x0000ffff + ldr r1, [r4] + ldr r2, =0x0000081b + adds r1, r2 + ldrb r1, [r1] + lsls r1, 26 + lsrs r1, 30 + bl AddBagItemIconObject +_081AB4DA: + ldr r5, =gUnknown_0203CE54 + ldr r2, [r5] + ldr r4, =0x0000081b + adds r2, r4 + ldrb r3, [r2] + lsls r0, r3, 26 + lsrs r0, 30 + movs r1, 0x1 + eors r1, r0 + lsls r1, 4 + movs r0, 0x31 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r5] + adds r0, r4 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _081AB50C + adds r0, r6, 0 + bl bag_menu_print_description_box_text +_081AB50C: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end bag_menu_change_item_callback + + thumb_func_start sub_81AB520 +@ void sub_81AB520(u8 rbox_id, int item_index_in_pocket, int a3) +sub_81AB520: @ 81AB520 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + adds r4, r1, 0 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r2, 24 + lsrs r7, r2, 24 + movs r0, 0x2 + negs r0, r0 + cmp r4, r0 + bne _081AB540 + b _081AB696 +_081AB540: + ldr r0, =gUnknown_0203CE54 + ldr r0, [r0] + ldr r1, =0x0000081a + adds r0, r1 + ldrb r1, [r0] + cmp r1, 0xFF + beq _081AB570 + lsls r0, r4, 24 + lsrs r0, 24 + cmp r1, r0 + bne _081AB568 + adds r0, r7, 0 + movs r1, 0x2 + bl bag_menu_print_cursor + b _081AB570 + .pool +_081AB568: + adds r0, r7, 0 + movs r1, 0xFF + bl bag_menu_print_cursor +_081AB570: + ldr r5, =gUnknown_0203CE58 + ldrb r0, [r5, 0x5] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + lsls r4, 16 + lsrs r4, 16 + adds r1, r4, 0 + bl BagGetItemIdByPocketPosition + lsls r0, 16 + lsrs r6, r0, 16 + ldrb r0, [r5, 0x5] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + adds r1, r4, 0 + bl BagGetQuantityByPocketPosition + lsls r0, 16 + lsrs r4, r0, 16 + mov r9, r4 + ldr r1, =0xfffffead + adds r0, r6, r1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7 + bhi _081AB5BE + ldr r1, =gUnknown_08DC6378 + subs r3, r7, 0x1 + lsls r3, 16 + lsrs r3, 16 + movs r0, 0x10 + str r0, [sp] + str r0, [sp, 0x4] + mov r0, r8 + movs r2, 0x8 + bl BlitBitmapToWindow +_081AB5BE: + ldrb r0, [r5, 0x5] + cmp r0, 0x3 + bne _081AB610 + ldr r0, =gStringVar1 + adds r1, r4, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E8DA0 + adds r0, r4, 0 + bl StringExpandPlaceholders + movs r0, 0x7 + adds r1, r4, 0 + movs r2, 0x77 + bl GetStringRightAlignXOffset + lsls r3, r0, 24 + lsrs r3, 24 + str r7, [sp] + movs r1, 0 + str r1, [sp, 0x4] + str r1, [sp, 0x8] + movs r0, 0xFF + str r0, [sp, 0xC] + str r1, [sp, 0x10] + b _081AB652 + .pool +_081AB610: + cmp r0, 0x4 + beq _081AB66C + adds r0, r6, 0 + bl itemid_is_unique + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _081AB66C + ldr r0, =gStringVar1 + mov r1, r9 + movs r2, 0x1 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E8DA0 + adds r0, r4, 0 + bl StringExpandPlaceholders + movs r0, 0x7 + adds r1, r4, 0 + movs r2, 0x77 + bl GetStringRightAlignXOffset + lsls r3, r0, 24 + lsrs r3, 24 + str r7, [sp] + str r5, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0xFF + str r0, [sp, 0xC] + str r5, [sp, 0x10] +_081AB652: + mov r0, r8 + movs r1, 0x7 + adds r2, r4, 0 + bl bag_menu_print + b _081AB696 + .pool +_081AB66C: + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00000496 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0 + beq _081AB696 + cmp r0, r6 + bne _081AB696 + ldr r1, =gUnknown_086140A4 + subs r3, r7, 0x1 + lsls r3, 16 + lsrs r3, 16 + movs r0, 0x18 + str r0, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + mov r0, r8 + movs r2, 0x60 + bl BlitBitmapToWindow +_081AB696: + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AB520 + + thumb_func_start bag_menu_print_description_box_text +@ void bag_menu_print_description_box_text(int a1) +bag_menu_print_description_box_text: @ 81AB6B0 + push {r4,lr} + sub sp, 0x14 + adds r1, r0, 0 + movs r0, 0x2 + negs r0, r0 + cmp r1, r0 + beq _081AB6E0 + ldr r0, =gUnknown_0203CE58 + ldrb r0, [r0, 0x5] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 16 + lsrs r1, 16 + bl BagGetItemIdByPocketPosition + lsls r0, 16 + lsrs r0, 16 + bl ItemId_GetDescription + adds r4, r0, 0 + b _081AB6FC + .pool +_081AB6E0: + ldr r0, =gStringVar1 + ldr r2, =gUnknown_085E9180 + ldr r1, =gUnknown_0203CE58 + ldrb r1, [r1, 0x4] + lsls r1, 2 + adds r1, r2 + ldr r1, [r1] + bl StringCopy + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E91C0 + adds r0, r4, 0 + bl StringExpandPlaceholders +_081AB6FC: + movs r0, 0x1 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0x1 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + str r0, [sp, 0xC] + str r0, [sp, 0x10] + movs r0, 0x1 + movs r1, 0x1 + adds r2, r4, 0 + movs r3, 0x3 + bl bag_menu_print + add sp, 0x14 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end bag_menu_print_description_box_text + + thumb_func_start bag_menu_print_cursor_ +bag_menu_print_cursor_: @ 81AB73C + push {r4,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r4, 24 + lsrs r4, 24 + bl ListMenuGetYCoordForPrintingArrowCursor + lsls r0, 24 + lsrs r0, 24 + adds r1, r4, 0 + bl bag_menu_print_cursor + pop {r4} + pop {r0} + bx r0 + thumb_func_end bag_menu_print_cursor_ + + thumb_func_start bag_menu_print_cursor +bag_menu_print_cursor: @ 81AB75C + push {r4,r5,lr} + sub sp, 0x14 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0xFF + bne _081AB798 + movs r0, 0x1 + movs r1, 0 + bl GetMenuCursorDimensionByFont + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + movs r1, 0x1 + bl GetMenuCursorDimensionByFont + lsls r0, 24 + lsrs r0, 24 + str r4, [sp] + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + adds r3, r5, 0 + bl FillWindowPixelRect + b _081AB7AE +_081AB798: + ldr r2, =gUnknown_085E8D60 + str r5, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + str r0, [sp, 0xC] + str r1, [sp, 0x10] + movs r1, 0x1 + movs r3, 0 + bl bag_menu_print +_081AB7AE: + add sp, 0x14 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end bag_menu_print_cursor + + thumb_func_start bag_menu_add_pocket_scroll_arrow_indicators_maybe +bag_menu_add_pocket_scroll_arrow_indicators_maybe: @ 81AB7BC + push {r4-r6,lr} + sub sp, 0x10 + ldr r5, =gUnknown_0203CE54 + ldr r4, [r5] + ldr r1, =0x0000081e + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0xFF + bne _081AB80A + ldr r2, =gUnknown_0203CE58 + ldrb r3, [r2, 0x5] + ldr r6, =0x00000829 + adds r0, r4, r6 + adds r0, r3 + ldrb r1, [r0] + adds r6, 0x5 + adds r0, r4, r6 + adds r0, r3 + ldrb r0, [r0] + subs r1, r0 + str r1, [sp] + movs r0, 0x6E + str r0, [sp, 0x4] + str r0, [sp, 0x8] + ldrb r0, [r2, 0x5] + lsls r0, 1 + adds r2, 0x12 + adds r0, r2 + str r0, [sp, 0xC] + movs r0, 0x2 + movs r1, 0xAC + movs r2, 0xC + movs r3, 0x94 + bl AddScrollIndicatorArrowPairParametrized + ldr r1, [r5] + ldr r2, =0x0000081e + adds r1, r2 + strb r0, [r1] +_081AB80A: + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end bag_menu_add_pocket_scroll_arrow_indicators_maybe + + thumb_func_start sub_81AB824 +sub_81AB824: @ 81AB824 + push {r4,lr} + ldr r4, =gUnknown_0203CE54 + ldr r0, [r4] + ldr r2, =0x0000081e + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0xFF + beq _081AB842 + bl RemoveScrollIndicatorArrowPair + ldr r0, [r4] + ldr r1, =0x0000081e + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] +_081AB842: + bl sub_81AB89C + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AB824 + + thumb_func_start bag_menu_add_list_scroll_arrow_indicators_maybe +bag_menu_add_list_scroll_arrow_indicators_maybe: @ 81AB854 + push {r4,lr} + ldr r4, =gUnknown_0203CE54 + ldr r2, [r4] + ldr r1, =0x0000081b + adds r0, r2, r1 + ldrb r1, [r0] + movs r0, 0xF + ands r0, r1 + cmp r0, 0x1 + beq _081AB882 + ldr r1, =0x0000081f + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0xFF + bne _081AB882 + ldr r0, =gUnknown_08614094 + ldr r1, =gUnknown_0203CE5E + bl AddScrollIndicatorArrowPair + ldr r1, [r4] + ldr r2, =0x0000081f + adds r1, r2 + strb r0, [r1] +_081AB882: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end bag_menu_add_list_scroll_arrow_indicators_maybe + + thumb_func_start sub_81AB89C +sub_81AB89C: @ 81AB89C + push {r4,lr} + ldr r4, =gUnknown_0203CE54 + ldr r0, [r4] + ldr r2, =0x0000081f + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0xFF + beq _081AB8BA + bl RemoveScrollIndicatorArrowPair + ldr r0, [r4] + ldr r1, =0x0000081f + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] +_081AB8BA: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AB89C + + thumb_func_start free_bag_item_list_buffers +free_bag_item_list_buffers: @ 81AB8C8 + push {lr} + ldr r0, =gUnknown_0203CE78 + ldr r0, [r0] + bl Free + ldr r0, =gUnknown_0203CE74 + ldr r0, [r0] + bl Free + bl FreeAllWindowBuffers + ldr r0, =gUnknown_0203CE54 + ldr r0, [r0] + bl Free + pop {r0} + bx r0 + .pool + thumb_func_end free_bag_item_list_buffers + + thumb_func_start unknown_ItemMenu_Confirm +unknown_ItemMenu_Confirm: @ 81AB8F8 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =task_close_bag_menu_2 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end unknown_ItemMenu_Confirm + + thumb_func_start task_close_bag_menu_2 +task_close_bag_menu_2: @ 81AB930 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r2, r0, r1 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081AB9A0 + ldrb r0, [r2] + ldr r4, =gUnknown_0203CE58 + ldrb r2, [r4, 0x5] + lsls r2, 1 + adds r1, r4, 0 + adds r1, 0x12 + adds r1, r2, r1 + adds r3, r4, 0 + adds r3, 0x8 + adds r2, r3 + bl sub_81AE6C8 + ldr r0, =gUnknown_0203CE54 + ldr r0, [r0] + ldr r0, [r0] + cmp r0, 0 + beq _081AB984 + bl SetMainCallback2 + b _081AB98A + .pool +_081AB984: + ldr r0, [r4] + bl SetMainCallback2 +_081AB98A: + bl sub_81AB824 + bl ResetSpriteData + bl FreeAllSpritePalettes + bl free_bag_item_list_buffers + adds r0, r5, 0 + bl DestroyTask +_081AB9A0: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end task_close_bag_menu_2 + + thumb_func_start sub_81AB9A8 +sub_81AB9A8: @ 81AB9A8 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, r5, 3 + ldr r0, =gBagPockets + adds r4, r1, r0 + cmp r5, 0x3 + bgt _081AB9C8 + cmp r5, 0x2 + blt _081AB9C8 + adds r0, r4, 0 + bl sub_80D6FB4 + b _081AB9CE + .pool +_081AB9C8: + adds r0, r4, 0 + bl sub_80D6F64 +_081AB9CE: + ldr r0, =gUnknown_0203CE54 + ldr r1, [r0] + ldr r6, =0x00000829 + adds r1, r6 + adds r1, r5 + movs r2, 0 + strb r2, [r1] + adds r3, r0, 0 + ldrb r0, [r4, 0x4] + cmp r2, r0 + bcs _081ABA12 + ldr r0, [r4] + ldrh r0, [r0] + cmp r0, 0 + beq _081ABA12 + adds r7, r3, 0 +_081AB9EE: + ldr r0, [r7] + adds r0, r6 + adds r0, r5 + ldrb r1, [r0] + adds r1, 0x1 + strb r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldrb r1, [r4, 0x4] + cmp r2, r1 + bcs _081ABA12 + ldr r0, [r4] + lsls r1, r2, 2 + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0 + bne _081AB9EE +_081ABA12: + ldr r2, [r3] + ldr r1, =0x0000081b + adds r0, r2, r1 + ldrb r1, [r0] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081ABA2E + ldr r0, =0x00000829 + adds r1, r2, r0 + adds r1, r5 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_081ABA2E: + ldr r1, [r3] + ldr r2, =0x00000829 + adds r0, r1, r2 + adds r0, r5 + ldrb r2, [r0] + cmp r2, 0x8 + bls _081ABA58 + ldr r3, =0x0000082e + adds r0, r1, r3 + adds r0, r5 + movs r1, 0x8 + strb r1, [r0] + b _081ABA60 + .pool +_081ABA58: + ldr r3, =0x0000082e + adds r0, r1, r3 + adds r0, r5 + strb r2, [r0] +_081ABA60: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AB9A8 + + thumb_func_start sub_81ABA6C +sub_81ABA6C: @ 81ABA6C + push {r4,lr} + movs r4, 0 +_081ABA70: + adds r0, r4, 0 + bl sub_81AB9A8 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bls _081ABA70 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81ABA6C + + thumb_func_start sub_81ABA88 +sub_81ABA88: @ 81ABA88 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + ldr r2, =gUnknown_0203CE6A + adds r4, r1, r2 + subs r2, 0xA + adds r1, r2 + ldr r2, =gUnknown_0203CE54 + ldr r3, [r2] + ldr r5, =0x0000082e + adds r2, r3, r5 + adds r2, r0 + ldrb r2, [r2] + subs r5, 0x5 + adds r3, r5 + adds r3, r0 + ldrb r3, [r3] + adds r0, r4, 0 + bl sub_812225C + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81ABA88 + + thumb_func_start sub_81ABAC4 +sub_81ABAC4: @ 81ABAC4 + push {r4,lr} + movs r4, 0 +_081ABAC8: + adds r0, r4, 0 + bl sub_81ABA88 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bls _081ABAC8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81ABAC4 + + thumb_func_start sub_81ABAE0 +sub_81ABAE0: @ 81ABAE0 + push {r4-r7,lr} + sub sp, 0x4 + movs r5, 0 + ldr r6, =gUnknown_0203CE6A + adds r7, r6, 0 + subs r7, 0xA +_081ABAEC: + lsls r1, r5, 1 + adds r0, r1, r6 + adds r1, r7 + ldr r2, =gUnknown_0203CE54 + ldr r3, [r2] + ldr r4, =0x0000082e + adds r2, r3, r4 + adds r2, r5 + ldrb r2, [r2] + subs r4, 0x5 + adds r3, r4 + adds r3, r5 + ldrb r3, [r3] + movs r4, 0x8 + str r4, [sp] + bl sub_8122298 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x4 + bls _081ABAEC + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81ABAE0 + + thumb_func_start sub_81ABB2C +sub_81ABB2C: @ 81ABB2C + lsls r0, 24 + ldr r1, =gUnknown_0203CE58 + lsrs r0, 23 + adds r2, r1, 0 + adds r2, 0x12 + adds r2, r0, r2 + adds r1, 0x8 + adds r0, r1 + ldrb r0, [r0] + ldrb r2, [r2] + adds r0, r2 + lsls r0, 24 + lsrs r0, 24 + bx lr + .pool + thumb_func_end sub_81ABB2C + + thumb_func_start DisplayItemMessage +@ void DisplayItemMessage(u8 taskId, u8 fontId, u8 *str, void ( *callback)(u8 taskId)) +DisplayItemMessage: @ 81ABB4C + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x10 + adds r5, r0, 0 + adds r6, r1, 0 + mov r8, r2 + mov r9, r3 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + ldr r0, =gTasks + 0x8 + adds r4, r0 + movs r0, 0x4 + bl AddItemMessageWindow + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x14] + movs r1, 0x11 + bl FillWindowPixelBuffer + bl sav2_get_text_speed + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r4, 0x14] + str r6, [sp] + str r0, [sp, 0x4] + mov r0, r8 + str r0, [sp, 0x8] + mov r0, r9 + str r0, [sp, 0xC] + adds r0, r5, 0 + movs r2, 0xA + movs r3, 0xD + bl DisplayMessageAndContinueTask + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end DisplayItemMessage + + thumb_func_start bag_menu_inits_lists_menu +bag_menu_inits_lists_menu: @ 81ABBBC + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + lsls r5, r6, 2 + adds r5, r6 + lsls r5, 3 + ldr r0, =gTasks + 0x8 + adds r5, r0 + ldr r7, =gUnknown_0203CE58 + ldrb r4, [r7, 0x5] + lsls r4, 1 + movs r0, 0x12 + adds r0, r7 + mov r8, r0 + add r8, r4 + adds r0, r7, 0 + adds r0, 0x8 + adds r4, r0 + movs r0, 0x4 + bl bag_menu_RemoveBagItem_message_window + ldrb r0, [r5] + mov r1, r8 + adds r2, r4, 0 + bl sub_81AE6C8 + ldrb r0, [r7, 0x5] + bl sub_81AB9A8 + ldrb r0, [r7, 0x5] + bl sub_81ABA88 + ldrb r0, [r7, 0x5] + bl load_bag_item_list_buffers + ldr r0, =gUnknown_03006310 + mov r2, r8 + ldrh r1, [r2] + ldrh r2, [r4] + bl ListMenuInit + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5] + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + adds r0, r6, 0 + bl set_callback3_to_bag + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end bag_menu_inits_lists_menu + + thumb_func_start sub_81ABC3C +sub_81ABC3C: @ 81ABC3C + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl bag_menu_add_window + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + bl sub_81ABC54 + pop {r0} + bx r0 + thumb_func_end sub_81ABC3C + + thumb_func_start sub_81ABC54 +sub_81ABC54: @ 81ABC54 + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 16 + lsrs r1, 16 + ldr r0, =gUnknown_0203CE58 + ldrb r0, [r0, 0x5] + movs r3, 0x2 + cmp r0, 0x3 + bne _081ABC6C + movs r3, 0x3 +_081ABC6C: + ldr r0, =gStringVar1 + lsls r1, 16 + asrs r1, 16 + movs r2, 0x2 + bl ConvertIntToDecimalStringN + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E8DA0 + adds r0, r4, 0 + bl StringExpandPlaceholders + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x28 + bl GetStringCenterAlignXOffset + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x2 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + adds r0, r5, 0 + movs r1, 0x1 + adds r2, r4, 0 + bl Print + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81ABC54 + + thumb_func_start sub_81ABCC0 +sub_81ABCC0: @ 81ABCC0 + push {r4-r7,lr} + sub sp, 0xC + adds r4, r0, 0 + adds r7, r2, 0 + ldr r0, =gUnknown_0203CE58 + ldrb r0, [r0, 0x5] + movs r3, 0x2 + cmp r0, 0x3 + bne _081ABCD4 + movs r3, 0x3 +_081ABCD4: + ldr r0, =gStringVar1 + movs r2, 0x2 + bl ConvertIntToDecimalStringN + ldr r6, =gStringVar4 + ldr r1, =gUnknown_085E8DA0 + adds r0, r6, 0 + bl StringExpandPlaceholders + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + str r0, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] + movs r5, 0 + str r5, [sp, 0x8] + adds r0, r4, 0 + movs r1, 0x1 + adds r2, r6, 0 + movs r3, 0 + bl Print + str r5, [sp] + adds r0, r4, 0 + movs r1, 0x26 + movs r2, 0x1 + adds r3, r7, 0 + bl PrintMoneyAmount + add sp, 0xC + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81ABCC0 + + thumb_func_start Task_BagMenu +Task_BagMenu: @ 81ABD28 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r0, 2 + add r0, r9 + lsls r0, 3 + str r0, [sp] + ldr r1, =gTasks + 0x8 + adds r6, r0, r1 + ldr r5, =gUnknown_0203CE58 + ldrb r0, [r5, 0x5] + lsls r0, 1 + adds r1, r5, 0 + adds r1, 0x12 + adds r7, r0, r1 + subs r1, 0xA + adds r0, r1 + mov r8, r0 + bl sub_81221EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081ABD66 + b _081ABEB2 +_081ABD66: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081ABD74 + b _081ABEB2 +_081ABD74: + bl GetSwitchBagPocketDirection + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081ABDB8 + cmp r0, 0x2 + beq _081ABDC0 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x4 + ands r0, r1 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + cmp r0, 0 + beq _081ABE10 + bl sub_81AC2C0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081ABDA4 + b _081ABEB2 +_081ABDA4: + b _081ABDCC + .pool +_081ABDB8: + movs r1, 0x1 + negs r1, r1 + mov r0, r9 + b _081ABDC4 +_081ABDC0: + mov r0, r9 + movs r1, 0x1 +_081ABDC4: + movs r2, 0 + bl SwitchBagPocket + b _081ABEB2 +_081ABDCC: + ldrb r0, [r6] + adds r1, r7, 0 + mov r2, r8 + bl get_coro_args_x18_x1A + ldrh r2, [r7] + mov r3, r8 + ldrh r0, [r3] + adds r2, r0 + ldr r0, =gUnknown_0203CE54 + ldr r0, [r0] + ldr r1, =gUnknown_0203CE58 + ldr r3, =0x00000829 + adds r0, r3 + ldrb r1, [r1, 0x5] + adds r0, r1 + ldrb r0, [r0] + subs r0, 0x1 + cmp r2, r0 + beq _081ABEB2 + movs r0, 0x5 + bl PlaySE + mov r0, r9 + bl bag_menu_swap_items + b _081ABEB2 + .pool +_081ABE10: + ldrb r0, [r6] + bl ListMenuHandleInput + adds r4, r0, 0 + ldrb r0, [r6] + adds r1, r7, 0 + mov r2, r8 + bl get_coro_args_x18_x1A + movs r0, 0x2 + negs r0, r0 + cmp r4, r0 + beq _081ABE32 + adds r0, 0x1 + cmp r4, r0 + bne _081ABE68 + b _081ABEB2 +_081ABE32: + ldrb r0, [r5, 0x4] + cmp r0, 0x5 + bne _081ABE40 + movs r0, 0x20 + bl PlaySE + b _081ABEB2 +_081ABE40: + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_0203CE7C + mov r1, r10 + strh r1, [r0] + ldr r0, =gTasks + 0x8 + subs r0, 0x8 + ldr r3, [sp] + adds r0, r3, r0 + ldr r1, =unknown_ItemMenu_Confirm + str r1, [r0] + b _081ABEB2 + .pool +_081ABE68: + movs r0, 0x5 + bl PlaySE + bl sub_81AB824 + ldrb r0, [r6] + movs r1, 0x2 + bl bag_menu_print_cursor_ + strh r4, [r6, 0x2] + ldrb r0, [r5, 0x5] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + lsls r4, 16 + lsrs r4, 16 + adds r1, r4, 0 + bl BagGetQuantityByPocketPosition + strh r0, [r6, 0x4] + ldrb r0, [r5, 0x5] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + adds r1, r4, 0 + bl BagGetItemIdByPocketPosition + ldr r1, =gUnknown_0203CE7C + strh r0, [r1] + ldr r1, =gUnknown_08614054 + ldrb r0, [r5, 0x4] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + mov r0, r9 + bl _call_via_r1 +_081ABEB2: + 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 Task_BagMenu + + thumb_func_start set_callback3_to_bag +set_callback3_to_bag: @ 81ABECC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl bag_menu_add_pocket_scroll_arrow_indicators_maybe + bl bag_menu_add_list_scroll_arrow_indicators_maybe + movs r0, 0x3 + bl ClearWindowTilemap + movs r0, 0x4 + bl ClearWindowTilemap + movs r0, 0x1 + bl PutWindowTilemap + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =Task_BagMenu + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end set_callback3_to_bag + + thumb_func_start GetSwitchBagPocketDirection +GetSwitchBagPocketDirection: @ 81ABF10 + push {lr} + ldr r0, =gUnknown_0203CE54 + ldr r0, [r0] + ldr r1, =0x0000081b + adds r0, r1 + ldrb r1, [r0] + movs r0, 0xF + ands r0, r1 + cmp r0, 0 + bne _081ABF6A + bl GetLRKeysState + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _081ABF3C + cmp r2, 0x1 + bne _081ABF54 +_081ABF3C: + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + b _081ABF6C + .pool +_081ABF54: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _081ABF60 + cmp r2, 0x2 + bne _081ABF6A +_081ABF60: + movs r0, 0x5 + bl PlaySE + movs r0, 0x2 + b _081ABF6C +_081ABF6A: + movs r0, 0 +_081ABF6C: + pop {r1} + bx r1 + thumb_func_end GetSwitchBagPocketDirection + + thumb_func_start ChangeBagPocketId +@ void ChangeBagPocketId(u8 *bagPocketId, u8 deltaBagPocketId) +ChangeBagPocketId: @ 81ABF70 + push {r4,lr} + adds r2, r0, 0 + lsls r1, 24 + lsrs r4, r1, 24 + asrs r1, 24 + cmp r1, 0x1 + bne _081ABF88 + ldrb r0, [r2] + cmp r0, 0x4 + bne _081ABF88 + movs r0, 0 + b _081ABFA0 +_081ABF88: + lsls r0, r4, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + ldrb r3, [r2] + cmp r0, r1 + bne _081ABF9E + cmp r3, 0 + bne _081ABF9E + movs r0, 0x4 + b _081ABFA0 +_081ABF9E: + adds r0, r3, r4 +_081ABFA0: + strb r0, [r2] + pop {r4} + pop {r0} + bx r0 + thumb_func_end ChangeBagPocketId + + thumb_func_start SwitchBagPocket +@ void SwitchBagPocket(u8 taskId, u16 deltaBagPocketId, u16 a3) +SwitchBagPocket: @ 81ABFA8 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 16 + lsrs r5, r1, 16 + lsls r2, 16 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + movs r0, 0 + strh r0, [r4, 0x1A] + strh r0, [r4, 0x18] + strh r5, [r4, 0x16] + cmp r2, 0 + bne _081AC026 + movs r0, 0 + bl ClearWindowTilemap + movs r0, 0x1 + bl ClearWindowTilemap + ldrb r0, [r4] + ldr r3, =gUnknown_0203CE58 + ldrb r2, [r3, 0x5] + lsls r2, 1 + adds r1, r3, 0 + adds r1, 0x12 + adds r1, r2, r1 + adds r3, 0x8 + adds r2, r3 + bl sub_81AE6C8 + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + ldr r3, =gSprites + ldr r0, =gUnknown_0203CE54 + ldr r2, [r0] + ldr r1, =0x0000081b + adds r0, r2, r1 + ldrb r1, [r0] + lsls r1, 26 + lsrs r1, 30 + movs r0, 0x1 + eors r0, r1 + adds r2, r0 + ldr r0, =0x00000806 + adds r2, r0 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + bl sub_81AB824 +_081AC026: + ldr r4, =gUnknown_0203CE58 + ldrb r1, [r4, 0x5] + add r0, sp, 0x8 + strb r1, [r0] + lsls r1, r5, 24 + asrs r1, 24 + bl ChangeBagPocketId + lsls r0, r5, 16 + asrs r1, r0, 16 + adds r5, r0, 0 + cmp r1, 0x1 + bne _081AC07C + ldr r2, =gUnknown_085E91FC + ldrb r0, [r4, 0x5] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + add r1, sp, 0x8 + ldrb r1, [r1] + lsls r1, 2 + adds r1, r2 + ldr r1, [r1] + bl bag_menu_print_pocket_names + movs r0, 0 + bl bag_menu_copy_pocket_name_to_window + b _081AC09A + .pool +_081AC07C: + ldr r2, =gUnknown_085E91FC + add r0, sp, 0x8 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + ldrb r1, [r4, 0x5] + lsls r1, 2 + adds r1, r2 + ldr r1, [r1] + bl bag_menu_print_pocket_names + movs r0, 0x8 + bl bag_menu_copy_pocket_name_to_window +_081AC09A: + ldr r0, =gUnknown_0203CE58 + ldrb r0, [r0, 0x5] + movs r1, 0 + bl bag_menu_draw_pocket_indicator_square + add r0, sp, 0x8 + ldrb r0, [r0] + movs r1, 0x1 + bl bag_menu_draw_pocket_indicator_square + movs r0, 0xF + str r0, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + movs r0, 0x2 + movs r1, 0xB + movs r2, 0xE + movs r3, 0x2 + bl FillBgTilemapBufferRect_Palette0 + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + add r0, sp, 0x8 + ldrb r0, [r0] + movs r1, 0x1 + bl SetBagVisualPocketId + movs r0, 0x1 + bl RemoveBagObject + asrs r0, r5, 16 + bl AddSwitchPocketRotatingBallObject + ldr r1, =sub_81AC10C + ldr r2, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r2 + ldr r2, [r0] + adds r0, r6, 0 + bl SetTaskFuncWithFollowupFunc + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end SwitchBagPocket + + thumb_func_start sub_81AC10C +sub_81AC10C: @ 81AC10C + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r6, r0, r1 + bl sub_81221AC + lsls r0, 24 + cmp r0, 0 + bne _081AC184 + bl IsWallysBag + lsls r0, 24 + cmp r0, 0 + bne _081AC184 + bl GetSwitchBagPocketDirection + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081AC148 + cmp r0, 0x2 + beq _081AC164 + b _081AC184 + .pool +_081AC148: + ldr r0, =gUnknown_0203CE5D + movs r1, 0x16 + ldrsb r1, [r6, r1] + bl ChangeBagPocketId + adds r0, r7, 0 + bl SwitchTaskToFollowupFunc + movs r1, 0x1 + negs r1, r1 + adds r0, r7, 0 + b _081AC178 + .pool +_081AC164: + ldr r0, =gUnknown_0203CE5D + movs r1, 0x16 + ldrsb r1, [r6, r1] + bl ChangeBagPocketId + adds r0, r7, 0 + bl SwitchTaskToFollowupFunc + adds r0, r7, 0 + movs r1, 0x1 +_081AC178: + movs r2, 0x1 + bl SwitchBagPocket + b _081AC22E + .pool +_081AC184: + movs r1, 0x1A + ldrsh r0, [r6, r1] + cmp r0, 0 + beq _081AC192 + cmp r0, 0x1 + beq _081AC1DC + b _081AC22E +_081AC192: + ldrb r0, [r6, 0x18] + bl sub_81AC23C + ldrh r0, [r6, 0x18] + adds r1, r0, 0x1 + strh r1, [r6, 0x18] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _081AC1CC + movs r2, 0x16 + ldrsh r0, [r6, r2] + cmp r0, 0x1 + bne _081AC1BC + lsls r0, r1, 16 + asrs r0, 17 + lsls r0, 24 + lsrs r0, 24 + bl bag_menu_copy_pocket_name_to_window + b _081AC1CC +_081AC1BC: + lsls r1, 16 + asrs r1, 17 + movs r0, 0x8 + subs r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl bag_menu_copy_pocket_name_to_window +_081AC1CC: + movs r1, 0x18 + ldrsh r0, [r6, r1] + cmp r0, 0x10 + bne _081AC22E + ldrh r0, [r6, 0x1A] + adds r0, 0x1 + strh r0, [r6, 0x1A] + b _081AC22E +_081AC1DC: + ldr r4, =gUnknown_0203CE5D + movs r1, 0x16 + ldrsb r1, [r6, r1] + adds r0, r4, 0 + bl ChangeBagPocketId + subs r5, r4, 0x5 + ldrb r0, [r5, 0x5] + bl load_bag_item_list_buffers + ldr r0, =gUnknown_03006310 + ldrb r2, [r5, 0x5] + lsls r2, 1 + adds r1, r4, 0 + adds r1, 0xD + adds r1, r2, r1 + ldrh r1, [r1] + adds r4, 0x3 + adds r2, r4 + ldrh r2, [r2] + bl ListMenuInit + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6] + movs r0, 0x1 + bl PutWindowTilemap + movs r0, 0x2 + bl PutWindowTilemap + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + bl bag_menu_add_pocket_scroll_arrow_indicators_maybe + bl bag_menu_add_list_scroll_arrow_indicators_maybe + adds r0, r7, 0 + bl SwitchTaskToFollowupFunc +_081AC22E: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AC10C + + thumb_func_start sub_81AC23C +sub_81AC23C: @ 81AC23C + push {lr} + sub sp, 0x8 + adds r3, r0, 0 + lsls r3, 24 + movs r0, 0x80 + lsls r0, 18 + adds r3, r0 + lsrs r3, 24 + movs r0, 0xF + str r0, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + movs r0, 0x2 + movs r1, 0x11 + movs r2, 0xE + bl FillBgTilemapBufferRect_Palette0 + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + add sp, 0x8 + pop {r0} + bx r0 + thumb_func_end sub_81AC23C + + thumb_func_start bag_menu_draw_pocket_indicator_square +@ void bag_menu_draw_pocket_indicator_square(char x, int is_current_bag) +bag_menu_draw_pocket_indicator_square: @ 81AC26C + push {lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + cmp r1, 0 + bne _081AC298 + ldr r1, =0x00001017 + adds r2, r0, 0x5 + lsls r2, 24 + lsrs r2, 24 + movs r0, 0x1 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x2 + movs r3, 0x3 + bl FillBgTilemapBufferRect_Palette0 + b _081AC2AE + .pool +_081AC298: + ldr r1, =0x0000102b + adds r2, r0, 0x5 + lsls r2, 24 + lsrs r2, 24 + movs r0, 0x1 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x2 + movs r3, 0x3 + bl FillBgTilemapBufferRect_Palette0 +_081AC2AE: + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + add sp, 0x8 + pop {r0} + bx r0 + .pool + thumb_func_end bag_menu_draw_pocket_indicator_square + + thumb_func_start sub_81AC2C0 +sub_81AC2C0: @ 81AC2C0 + push {lr} + ldr r1, =gUnknown_0203CE58 + ldrb r0, [r1, 0x4] + cmp r0, 0x1 + bhi _081AC2E0 + ldrb r0, [r1, 0x5] + subs r0, 0x2 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bls _081AC2E0 + movs r0, 0x1 + b _081AC2E2 + .pool +_081AC2E0: + movs r0, 0 +_081AC2E2: + pop {r1} + bx r1 + thumb_func_end sub_81AC2C0 + + thumb_func_start bag_menu_swap_items +bag_menu_swap_items: @ 81AC2E8 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x14 + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, =gTasks + 0x8 + mov r9, r0 + adds r6, r4, r0 + ldrb r0, [r6] + movs r1, 0x10 + movs r2, 0x1 + bl sub_81AF15C + ldr r3, =gUnknown_0203CE58 + ldrb r0, [r3, 0x5] + lsls r0, 1 + adds r2, r3, 0 + adds r2, 0x12 + adds r2, r0, r2 + adds r1, r3, 0 + adds r1, 0x8 + adds r0, r1 + ldrh r1, [r0] + ldrh r2, [r2] + adds r1, r2 + strh r1, [r6, 0x2] + ldr r0, =gUnknown_0203CE54 + ldr r0, [r0] + ldr r2, =0x0000081a + adds r0, r2 + movs r5, 0 + strb r1, [r0] + ldrb r0, [r3, 0x5] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x2] + bl BagGetItemIdByPocketPosition + lsls r0, 16 + lsrs r0, 16 + ldr r1, =gStringVar1 + bl CopyItemName + ldr r0, =gStringVar4 + mov r8, r0 + ldr r1, =gUnknown_085E8DFE + bl StringExpandPlaceholders + movs r0, 0x1 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0x1 + str r0, [sp] + str r5, [sp, 0x4] + str r5, [sp, 0x8] + str r5, [sp, 0xC] + str r5, [sp, 0x10] + movs r1, 0x1 + mov r2, r8 + movs r3, 0x3 + bl bag_menu_print + ldrb r0, [r6, 0x2] + bl sub_80D4FEC + bl sub_81AB89C + ldrb r0, [r6] + movs r1, 0x2 + bl bag_menu_print_cursor_ + movs r2, 0x8 + negs r2, r2 + add r9, r2 + add r4, r9 + ldr r0, =sub_81AC3C0 + str r0, [r4] + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end bag_menu_swap_items + + thumb_func_start sub_81AC3C0 +@ void sub_81AC3C0(u8 taskId) +sub_81AC3C0: @ 81AC3C0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + bl sub_81221EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081AC48E + ldr r0, =gMain + mov r8, r0 + ldrh r1, [r0, 0x2E] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _081AC418 + movs r0, 0x5 + bl PlaySE + ldrb r0, [r4] + ldr r3, =gUnknown_0203CE58 + ldrb r2, [r3, 0x5] + lsls r2, 1 + adds r1, r3, 0 + adds r1, 0x12 + adds r1, r2, r1 + adds r3, 0x8 + adds r2, r3 + bl get_coro_args_x18_x1A + b _081AC472 + .pool +_081AC418: + ldrb r0, [r4] + bl ListMenuHandleInput + adds r7, r0, 0 + ldrb r0, [r4] + ldr r5, =gUnknown_0203CE58 + ldrb r2, [r5, 0x5] + lsls r2, 1 + adds r1, r5, 0 + adds r1, 0x12 + adds r1, r2, r1 + adds r4, r5, 0 + adds r4, 0x8 + adds r2, r4 + bl get_coro_args_x18_x1A + movs r0, 0 + bl sub_80D4FC8 + ldrb r0, [r5, 0x5] + lsls r0, 1 + adds r0, r4 + ldrb r0, [r0] + bl sub_80D4FEC + movs r0, 0x2 + negs r0, r0 + cmp r7, r0 + beq _081AC460 + adds r0, 0x1 + cmp r7, r0 + bne _081AC482 + b _081AC48E + .pool +_081AC460: + movs r0, 0x5 + bl PlaySE + mov r0, r8 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081AC47A +_081AC472: + adds r0, r6, 0 + bl sub_81AC498 + b _081AC48E +_081AC47A: + adds r0, r6, 0 + bl sub_81AC590 + b _081AC48E +_081AC482: + movs r0, 0x5 + bl PlaySE + adds r0, r6, 0 + bl sub_81AC498 +_081AC48E: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81AC3C0 + + thumb_func_start sub_81AC498 +sub_81AC498: @ 81AC498 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + mov r10, r0 + ldr r0, =gTasks + 0x8 + add r0, r10 + mov r9, r0 + ldr r5, =gUnknown_0203CE58 + ldrb r6, [r5, 0x5] + lsls r1, r6, 1 + adds r0, r5, 0 + adds r0, 0x12 + adds r0, r1 + mov r8, r0 + ldr r2, =gUnknown_0203CE60 + adds r7, r1, r2 + ldrh r0, [r7] + mov r1, r8 + ldrh r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r4, r0, 16 + mov r0, r9 + movs r1, 0x2 + ldrsh r2, [r0, r1] + cmp r2, r4 + beq _081AC4E2 + subs r0, r4, 0x1 + cmp r2, r0 + bne _081AC4F8 +_081AC4E2: + adds r0, r3, 0 + bl sub_81AC590 + b _081AC566 + .pool +_081AC4F8: + ldr r1, =gBagPockets + lsls r0, r6, 3 + adds r0, r1 + ldr r0, [r0] + adds r1, r2, 0 + adds r2, r4, 0 + bl sub_80D702C + ldr r0, =gUnknown_0203CE54 + ldr r0, [r0] + ldr r2, =0x0000081a + adds r0, r2 + movs r1, 0xFF + strb r1, [r0] + mov r1, r9 + ldrb r0, [r1] + mov r1, r8 + adds r2, r7, 0 + bl sub_81AE6C8 + mov r2, r9 + movs r1, 0x2 + ldrsh r0, [r2, r1] + cmp r0, r4 + bge _081AC538 + ldrb r1, [r5, 0x5] + lsls r1, 1 + ldr r2, =gUnknown_0203CE60 + adds r1, r2 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] +_081AC538: + ldrb r0, [r5, 0x5] + bl load_bag_item_list_buffers + ldr r0, =gUnknown_03006310 + mov r2, r8 + ldrh r1, [r2] + ldrh r2, [r7] + bl ListMenuInit + lsls r0, 24 + lsrs r0, 24 + mov r1, r9 + strh r0, [r1] + movs r0, 0x1 + bl sub_80D4FC8 + bl bag_menu_add_list_scroll_arrow_indicators_maybe + ldr r0, =gTasks + 0x8 + subs r0, 0x8 + add r0, r10 + ldr r1, =Task_BagMenu + str r1, [r0] +_081AC566: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AC498 + + thumb_func_start sub_81AC590 +sub_81AC590: @ 81AC590 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + mov r9, r1 + ldr r0, =gTasks + 0x8 + mov r10, r0 + mov r7, r9 + add r7, r10 + ldr r4, =gUnknown_0203CE58 + ldrb r0, [r4, 0x5] + lsls r0, 1 + adds r1, r4, 0 + adds r1, 0x12 + adds r6, r0, r1 + movs r1, 0x8 + adds r1, r4 + mov r8, r1 + adds r5, r0, r1 + ldr r0, =gUnknown_0203CE54 + ldr r0, [r0] + ldr r1, =0x0000081a + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] + ldrb r0, [r7] + adds r1, r6, 0 + adds r2, r5, 0 + bl sub_81AE6C8 + movs r0, 0x2 + ldrsh r2, [r7, r0] + ldrh r0, [r6] + ldrh r1, [r5] + adds r0, r1 + cmp r2, r0 + bge _081AC5F2 + ldrb r1, [r4, 0x5] + lsls r1, 1 + add r1, r8 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] +_081AC5F2: + ldrb r0, [r4, 0x5] + bl load_bag_item_list_buffers + ldr r0, =gUnknown_03006310 + ldrh r1, [r6] + ldrh r2, [r5] + bl ListMenuInit + lsls r0, 24 + lsrs r0, 24 + strh r0, [r7] + movs r0, 0x1 + bl sub_80D4FC8 + bl bag_menu_add_list_scroll_arrow_indicators_maybe + mov r0, r10 + subs r0, 0x8 + add r0, r9 + ldr r1, =Task_BagMenu + str r1, [r0] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AC590 + + thumb_func_start sub_81AC644 +sub_81AC644: @ 81AC644 + push {r4,r5,lr} + sub sp, 0x14 + ldr r0, =gUnknown_0203CE58 + ldrb r0, [r0, 0x4] + subs r0, 0x1 + cmp r0, 0x9 + bls _081AC654 + b _081AC82C +_081AC654: + lsls r0, 2 + ldr r1, =_081AC668 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081AC668: + .4byte _081AC690 + .4byte _081AC82C + .4byte _081AC82C + .4byte _081AC82C + .4byte _081AC6E8 + .4byte _081AC82C + .4byte _081AC76C + .4byte _081AC7CC + .4byte _081AC70C + .4byte _081AC690 +_081AC690: + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + bl ItemId_GetBattleUsage + lsls r0, 24 + cmp r0, 0 + beq _081AC6C4 + ldr r0, =gUnknown_0203CE54 + ldr r1, [r0] + movs r0, 0x82 + lsls r0, 4 + adds r2, r1, r0 + ldr r0, =gUnknown_08614042 + str r0, [r2] + ldr r0, =0x00000828 + adds r1, r0 + movs r0, 0x2 + b _081ACA10 + .pool +_081AC6C4: + ldr r0, =gUnknown_0203CE54 + ldr r1, [r0] + movs r0, 0x82 + lsls r0, 4 + adds r2, r1, r0 + ldr r0, =gUnknown_08614046 + str r0, [r2] + ldr r0, =0x00000828 + adds r1, r0 + movs r0, 0x1 + b _081ACA10 + .pool +_081AC6E8: + ldr r0, =gUnknown_0203CE54 + ldr r1, [r0] + movs r0, 0x82 + lsls r0, 4 + adds r2, r1, r0 + ldr r0, =gUnknown_08614047 + str r0, [r2] + ldr r0, =0x00000828 + adds r1, r0 + movs r0, 0x4 + b _081ACA10 + .pool +_081AC70C: + ldr r4, =gUnknown_0203CE7C + ldrh r0, [r4] + bl itemid_is_unique + lsls r0, 24 + cmp r0, 0 + bne _081AC748 + ldrh r0, [r4] + cmp r0, 0xAF + beq _081AC748 + ldr r0, =gUnknown_0203CE54 + ldr r1, [r0] + movs r0, 0x82 + lsls r0, 4 + adds r2, r1, r0 + ldr r0, =gUnknown_0861404B + str r0, [r2] + ldr r0, =0x00000828 + adds r1, r0 + movs r0, 0x2 + b _081ACA10 + .pool +_081AC748: + ldr r0, =gUnknown_0203CE54 + ldr r1, [r0] + movs r0, 0x82 + lsls r0, 4 + adds r2, r1, r0 + ldr r0, =gUnknown_08614046 + str r0, [r2] + ldr r0, =0x00000828 + adds r1, r0 + movs r0, 0x1 + b _081ACA10 + .pool +_081AC76C: + ldr r4, =gUnknown_0203CE7C + ldrh r0, [r4] + bl itemid_is_unique + lsls r0, 24 + cmp r0, 0 + bne _081AC7A8 + ldrh r0, [r4] + cmp r0, 0xAF + beq _081AC7A8 + ldr r0, =gUnknown_0203CE54 + ldr r1, [r0] + movs r0, 0x82 + lsls r0, 4 + adds r2, r1, r0 + ldr r0, =gUnknown_0861404D + str r0, [r2] + ldr r0, =0x00000828 + adds r1, r0 + movs r0, 0x2 + b _081ACA10 + .pool +_081AC7A8: + ldr r0, =gUnknown_0203CE54 + ldr r1, [r0] + movs r0, 0x82 + lsls r0, 4 + adds r2, r1, r0 + ldr r0, =gUnknown_08614046 + str r0, [r2] + ldr r0, =0x00000828 + adds r1, r0 + movs r0, 0x1 + b _081ACA10 + .pool +_081AC7CC: + ldr r4, =gUnknown_0203CE7C + ldrh r0, [r4] + bl itemid_is_unique + lsls r0, 24 + cmp r0, 0 + bne _081AC808 + ldrh r0, [r4] + cmp r0, 0xAF + beq _081AC808 + ldr r0, =gUnknown_0203CE54 + ldr r1, [r0] + movs r0, 0x82 + lsls r0, 4 + adds r2, r1, r0 + ldr r0, =gUnknown_0861404F + str r0, [r2] + ldr r0, =0x00000828 + adds r1, r0 + movs r0, 0x2 + b _081ACA10 + .pool +_081AC808: + ldr r0, =gUnknown_0203CE54 + ldr r1, [r0] + movs r0, 0x82 + lsls r0, 4 + adds r2, r1, r0 + ldr r0, =gUnknown_08614046 + str r0, [r2] + ldr r0, =0x00000828 + adds r1, r0 + movs r0, 0x1 + b _081ACA10 + .pool +_081AC82C: + bl sub_81221AC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081AC840 + bl InUnionRoom + cmp r0, 0x1 + bne _081AC8A4 +_081AC840: + ldr r0, =gUnknown_0203CE58 + ldrb r0, [r0, 0x5] + cmp r0, 0x4 + beq _081AC856 + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + bl sub_8122148 + lsls r0, 24 + cmp r0, 0 + bne _081AC880 +_081AC856: + ldr r0, =gUnknown_0203CE54 + ldr r1, [r0] + movs r0, 0x82 + lsls r0, 4 + adds r2, r1, r0 + ldr r0, =gUnknown_08614046 + str r0, [r2] + ldr r0, =0x00000828 + adds r1, r0 + movs r0, 0x1 + b _081ACA10 + .pool +_081AC880: + ldr r0, =gUnknown_0203CE54 + ldr r1, [r0] + movs r0, 0x82 + lsls r0, 4 + adds r2, r1, r0 + ldr r0, =gUnknown_08614044 + str r0, [r2] + ldr r0, =0x00000828 + adds r1, r0 + movs r0, 0x2 + b _081ACA10 + .pool +_081AC8A4: + ldr r0, =gUnknown_0203CE58 + ldrb r0, [r0, 0x5] + cmp r0, 0x4 + bls _081AC8AE + b _081ACA12 +_081AC8AE: + lsls r0, 2 + ldr r1, =_081AC8C0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081AC8C0: + .4byte _081AC8D4 + .4byte _081AC9B4 + .4byte _081AC9D8 + .4byte _081AC9FC + .4byte _081AC92C +_081AC8D4: + ldr r4, =gUnknown_0203CE54 + ldr r1, [r4] + movs r0, 0x82 + lsls r0, 4 + adds r2, r1, r0 + ldr r3, =0x00000824 + adds r0, r1, r3 + str r0, [r2] + ldr r0, =0x00000828 + adds r1, r0 + movs r0, 0x4 + strb r0, [r1] + ldr r0, [r4] + adds r0, r3 + ldr r1, =gUnknown_0861402C + movs r2, 0x4 + bl memcpy + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + bl itemid_is_mail + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081AC90A + b _081ACA12 +_081AC90A: + ldr r0, [r4] + ldr r1, =0x00000824 + adds r0, r1 + movs r1, 0x6 + strb r1, [r0] + b _081ACA12 + .pool +_081AC92C: + ldr r4, =gUnknown_0203CE54 + ldr r1, [r4] + movs r0, 0x82 + lsls r0, 4 + adds r2, r1, r0 + ldr r5, =0x00000824 + adds r0, r1, r5 + str r0, [r2] + ldr r0, =0x00000828 + adds r1, r0 + movs r0, 0x4 + strb r0, [r1] + ldr r0, [r4] + adds r0, r5 + ldr r1, =gUnknown_08614030 + movs r2, 0x4 + bl memcpy + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00000496 + adds r0, r1 + ldr r2, =gUnknown_0203CE7C + ldrh r0, [r0] + ldrh r1, [r2] + cmp r0, r1 + bne _081AC96C + ldr r0, [r4] + ldr r1, =0x00000825 + adds r0, r1 + movs r1, 0x8 + strb r1, [r0] +_081AC96C: + ldrh r1, [r2] + ldr r0, =0x00000103 + cmp r1, r0 + beq _081AC97A + adds r0, 0xD + cmp r1, r0 + bne _081ACA12 +_081AC97A: + movs r0, 0x6 + bl TestPlayerAvatarFlags + lsls r0, 24 + cmp r0, 0 + beq _081ACA12 + ldr r0, [r4] + adds r0, r5 + movs r1, 0x7 + strb r1, [r0] + b _081ACA12 + .pool +_081AC9B4: + ldr r0, =gUnknown_0203CE54 + ldr r1, [r0] + movs r0, 0x82 + lsls r0, 4 + adds r2, r1, r0 + ldr r0, =gUnknown_08614034 + str r0, [r2] + ldr r0, =0x00000828 + adds r1, r0 + movs r0, 0x4 + b _081ACA10 + .pool +_081AC9D8: + ldr r0, =gUnknown_0203CE54 + ldr r1, [r0] + movs r0, 0x82 + lsls r0, 4 + adds r2, r1, r0 + ldr r0, =gUnknown_08614038 + str r0, [r2] + ldr r0, =0x00000828 + adds r1, r0 + movs r0, 0x4 + b _081ACA10 + .pool +_081AC9FC: + ldr r0, =gUnknown_0203CE54 + ldr r1, [r0] + movs r0, 0x82 + lsls r0, 4 + adds r2, r1, r0 + ldr r0, =gUnknown_0861403C + str r0, [r2] + ldr r0, =0x00000828 + adds r1, r0 + movs r0, 0x6 +_081ACA10: + strb r0, [r1] +_081ACA12: + ldr r0, =gUnknown_0203CE58 + ldrb r0, [r0, 0x5] + cmp r0, 0x2 + bne _081ACA50 + movs r0, 0x1 + bl ClearWindowTilemap + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + bl PrintTMHMMoveData + movs r0, 0x3 + bl PutWindowTilemap + movs r0, 0x4 + bl PutWindowTilemap + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + b _081ACA86 + .pool +_081ACA50: + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + ldr r1, =gStringVar1 + bl CopyItemName + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E8DBE + adds r0, r4, 0 + bl StringExpandPlaceholders + movs r0, 0x1 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0x1 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + str r0, [sp, 0xC] + str r0, [sp, 0x10] + movs r0, 0x1 + movs r1, 0x1 + adds r2, r4, 0 + movs r3, 0x3 + bl bag_menu_print +_081ACA86: + ldr r0, =gUnknown_0203CE54 + ldr r0, [r0] + ldr r1, =0x00000828 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _081ACAB0 + movs r0, 0 + b _081ACAB6 + .pool +_081ACAB0: + cmp r0, 0x2 + bne _081ACAC4 + movs r0, 0x1 +_081ACAB6: + bl bag_menu_add_window + lsls r0, 24 + lsrs r0, 24 + bl sub_81ACAF8 + b _081ACAEE +_081ACAC4: + cmp r0, 0x4 + bne _081ACADC + movs r0, 0x2 + bl bag_menu_add_window + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x2 + movs r2, 0x2 + bl sub_81ACB54 + b _081ACAEE +_081ACADC: + movs r0, 0x3 + bl bag_menu_add_window + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x2 + movs r2, 0x3 + bl sub_81ACB54 +_081ACAEE: + add sp, 0x14 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81AC644 + + thumb_func_start sub_81ACAF8 +sub_81ACAF8: @ 81ACAF8 + push {r4-r6,lr} + sub sp, 0x14 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + str r0, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + ldr r6, =gUnknown_0203CE54 + ldr r1, [r6] + ldr r5, =0x00000828 + adds r0, r1, r5 + ldrb r0, [r0] + str r0, [sp, 0x8] + ldr r0, =gUnknown_08613FB4 + str r0, [sp, 0xC] + movs r0, 0x82 + lsls r0, 4 + adds r1, r0 + ldr r0, [r1] + str r0, [sp, 0x10] + adds r0, r4, 0 + movs r1, 0x7 + movs r2, 0x8 + movs r3, 0x1 + bl AddItemMenuActionTextPrinters + ldr r0, [r6] + adds r0, r5 + ldrb r1, [r0] + adds r0, r4, 0 + movs r2, 0 + bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81ACAF8 + + thumb_func_start sub_81ACB54 +sub_81ACB54: @ 81ACB54 + push {r4-r6,lr} + sub sp, 0x14 + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + movs r0, 0x38 + str r0, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + ldr r0, =gUnknown_08613FB4 + str r0, [sp, 0xC] + ldr r0, =gUnknown_0203CE54 + ldr r0, [r0] + movs r1, 0x82 + lsls r1, 4 + adds r0, r1 + ldr r0, [r0] + str r0, [sp, 0x10] + adds r0, r4, 0 + movs r1, 0x7 + movs r2, 0x8 + movs r3, 0x1 + bl sub_8198DBC + movs r0, 0 + str r0, [sp] + adds r0, r4, 0 + movs r1, 0x38 + adds r2, r5, 0 + adds r3, r6, 0 + bl sub_8199944 + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81ACB54 + + thumb_func_start unknown_item_menu_type +unknown_item_menu_type: @ 81ACBB0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_81AC644 + ldr r0, =gUnknown_0203CE54 + ldr r0, [r0] + ldr r1, =0x00000828 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x2 + bhi _081ACBE8 + ldr r0, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =Task_HandleInBattleItemMenuInput + b _081ACBF4 + .pool +_081ACBE8: + ldr r0, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =Task_HandleOutOfBattleItemMenuInput +_081ACBF4: + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end unknown_item_menu_type + + thumb_func_start Task_HandleInBattleItemMenuInput +Task_HandleInBattleItemMenuInput: @ 81ACC04 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r6, r5, 0 + bl sub_81221EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081ACC6A + bl ProcessMenuInputNoWrapAround + lsls r0, 24 + asrs r4, r0, 24 + movs r0, 0x2 + negs r0, r0 + cmp r4, r0 + beq _081ACC6A + adds r0, 0x1 + cmp r4, r0 + bne _081ACC44 + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_08613FB4 + ldr r1, [r0, 0x24] + adds r0, r5, 0 + bl _call_via_r1 + b _081ACC6A + .pool +_081ACC44: + movs r0, 0x5 + bl PlaySE + ldr r1, =gUnknown_08613FB4 + ldr r0, =gUnknown_0203CE54 + ldr r0, [r0] + movs r2, 0x82 + lsls r2, 4 + adds r0, r2 + ldr r0, [r0] + adds r0, r4 + ldrb r0, [r0] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r1, [r0] + adds r0, r6, 0 + bl _call_via_r1 +_081ACC6A: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end Task_HandleInBattleItemMenuInput + + thumb_func_start Task_HandleOutOfBattleItemMenuInput +Task_HandleOutOfBattleItemMenuInput: @ 81ACC78 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + bl sub_81221EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081ACC8C + b _081ACDF0 +_081ACC8C: + bl GetMenuCursorPos + lsls r0, 24 + lsrs r4, r0, 24 + ldr r5, =gMain + ldrh r1, [r5, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081ACCD4 + lsls r0, r4, 24 + asrs r0, 24 + cmp r0, 0 + bgt _081ACCAA + b _081ACDF0 +_081ACCAA: + subs r0, 0x2 + lsls r0, 24 + asrs r0, 24 + bl sub_81ACDFC + lsls r0, 24 + cmp r0, 0 + bne _081ACCBC + b _081ACDF0 +_081ACCBC: + movs r0, 0x5 + bl PlaySE + movs r1, 0x1 + negs r1, r1 + movs r0, 0 + bl sub_8199134 + b _081ACDF0 + .pool +_081ACCD4: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081ACD1C + lsls r0, r4, 24 + asrs r1, r0, 24 + ldr r0, =gUnknown_0203CE54 + ldr r0, [r0] + ldr r2, =0x00000828 + adds r0, r2 + ldrb r0, [r0] + subs r0, 0x2 + cmp r1, r0 + blt _081ACCF2 + b _081ACDF0 +_081ACCF2: + adds r0, r1, 0x2 + lsls r0, 24 + asrs r0, 24 + bl sub_81ACDFC + lsls r0, 24 + cmp r0, 0 + beq _081ACDF0 + movs r0, 0x5 + bl PlaySE + movs r0, 0 + movs r1, 0x1 + bl sub_8199134 + b _081ACDF0 + .pool +_081ACD1C: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _081ACD30 + bl GetLRKeysState + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081ACD58 +_081ACD30: + lsls r0, r4, 24 + asrs r1, r0, 24 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081ACDF0 + subs r0, r1, 0x1 + lsls r0, 24 + asrs r0, 24 + bl sub_81ACDFC + lsls r0, 24 + cmp r0, 0 + beq _081ACDF0 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + b _081ACD92 +_081ACD58: + ldrh r1, [r5, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _081ACD6E + bl GetLRKeysState + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _081ACD9A +_081ACD6E: + lsls r0, r4, 24 + asrs r1, r0, 24 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _081ACDF0 + adds r0, r1, 0x1 + lsls r0, 24 + asrs r0, 24 + bl sub_81ACDFC + lsls r0, 24 + cmp r0, 0 + beq _081ACDF0 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 +_081ACD92: + movs r1, 0 + bl sub_8199134 + b _081ACDF0 +_081ACD9A: + ldrh r1, [r5, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081ACDD8 + movs r0, 0x5 + bl PlaySE + ldr r2, =gUnknown_08613FB4 + ldr r0, =gUnknown_0203CE54 + ldr r0, [r0] + lsls r1, r4, 24 + asrs r1, 24 + movs r3, 0x82 + lsls r3, 4 + adds r0, r3 + ldr r0, [r0] + adds r0, r1 + ldrb r0, [r0] + lsls r0, 3 + adds r2, 0x4 + adds r0, r2 + ldr r1, [r0] + adds r0, r6, 0 + bl _call_via_r1 + b _081ACDF0 + .pool +_081ACDD8: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081ACDF0 + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_08613FB4 + ldr r1, [r0, 0x24] + adds r0, r6, 0 + bl _call_via_r1 +_081ACDF0: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end Task_HandleOutOfBattleItemMenuInput + + thumb_func_start sub_81ACDFC +sub_81ACDFC: @ 81ACDFC + push {lr} + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + blt _081ACE30 + ldr r0, =gUnknown_0203CE54 + ldr r2, [r0] + ldr r3, =0x00000828 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r1, r0 + bgt _081ACE30 + movs r3, 0x82 + lsls r3, 4 + adds r0, r2, r3 + ldr r0, [r0] + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0xE + beq _081ACE30 + movs r0, 0x1 + b _081ACE32 + .pool +_081ACE30: + movs r0, 0 +_081ACE32: + pop {r1} + bx r1 + thumb_func_end sub_81ACDFC + + thumb_func_start bag_menu_remove_some_window +bag_menu_remove_some_window: @ 81ACE38 + push {lr} + ldr r0, =gUnknown_0203CE54 + ldr r0, [r0] + ldr r1, =0x00000828 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _081ACE58 + movs r0, 0 + bl bag_menu_remove_window + b _081ACE76 + .pool +_081ACE58: + cmp r0, 0x2 + bne _081ACE64 + movs r0, 0x1 + bl bag_menu_remove_window + b _081ACE76 +_081ACE64: + cmp r0, 0x4 + bne _081ACE70 + movs r0, 0x2 + bl bag_menu_remove_window + b _081ACE76 +_081ACE70: + movs r0, 0x3 + bl bag_menu_remove_window +_081ACE76: + pop {r0} + bx r0 + thumb_func_end bag_menu_remove_some_window + + thumb_func_start ItemMenu_UseOutOfBattle +@ void ItemMenu_UseOutOfBattle(u8 taskId) +ItemMenu_UseOutOfBattle: @ 81ACE7C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r5, =gUnknown_0203CE7C + ldrh r0, [r5] + bl ItemId_GetFieldFunc + cmp r0, 0 + beq _081ACEEE + bl bag_menu_remove_some_window + bl calc_player_party_count + lsls r0, 24 + cmp r0, 0 + bne _081ACEB8 + ldrh r0, [r5] + bl ItemId_GetType + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081ACEB8 + adds r0, r4, 0 + bl bag_menu_print_there_is_no_pokemon + b _081ACEEE + .pool +_081ACEB8: + movs r0, 0x1 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + ldr r0, =gUnknown_0203CE58 + ldrb r0, [r0, 0x5] + cmp r0, 0x3 + beq _081ACEE8 + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + bl ItemId_GetFieldFunc + adds r1, r0, 0 + adds r0, r4, 0 + bl _call_via_r1 + b _081ACEEE + .pool +_081ACEE8: + adds r0, r4, 0 + bl sub_80FDD10 +_081ACEEE: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end ItemMenu_UseOutOfBattle + + thumb_func_start ItemMenu_Toss +ItemMenu_Toss: @ 81ACEF4 + push {r4-r7,lr} + sub sp, 0x14 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r6, r0, 3 + ldr r7, =gTasks + 0x8 + adds r4, r6, r7 + bl bag_menu_remove_some_window + movs r0, 0x1 + strh r0, [r4, 0x10] + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _081ACF24 + adds r0, r5, 0 + bl BagMenuConfirmToss + b _081ACF6A + .pool +_081ACF24: + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + ldr r1, =gStringVar1 + bl CopyItemName + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E8EE0 + adds r0, r4, 0 + bl StringExpandPlaceholders + movs r0, 0x1 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0x1 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + str r0, [sp, 0xC] + str r0, [sp, 0x10] + movs r0, 0x1 + movs r1, 0x1 + adds r2, r4, 0 + movs r3, 0x3 + bl bag_menu_print + movs r0, 0x7 + bl sub_81ABC3C + adds r0, r7, 0 + subs r0, 0x8 + adds r0, r6, r0 + ldr r1, =Task_ChooseHowManyToToss + str r1, [r0] +_081ACF6A: + add sp, 0x14 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end ItemMenu_Toss + + thumb_func_start BagMenuConfirmToss +BagMenuConfirmToss: @ 81ACF88 + push {r4,r5,lr} + sub sp, 0x14 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + ldr r0, =gTasks + 0x8 + adds r4, r0 + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + ldr r1, =gStringVar1 + bl CopyItemName + ldr r0, =gStringVar2 + movs r2, 0x10 + ldrsh r1, [r4, r2] + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E8F0E + adds r0, r4, 0 + bl StringExpandPlaceholders + movs r0, 0x1 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0x1 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + str r0, [sp, 0xC] + str r0, [sp, 0x10] + movs r0, 0x1 + movs r1, 0x1 + adds r2, r4, 0 + movs r3, 0x3 + bl bag_menu_print + ldr r2, =gUnknown_08614084 + adds r0, r5, 0 + movs r1, 0x5 + bl bag_menu_yes_no + add sp, 0x14 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end BagMenuConfirmToss + + thumb_func_start BagMenuCancelToss +BagMenuCancelToss: @ 81AD010 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + ldr r0, =gTasks + 0x8 + adds r4, r0 + movs r1, 0x2 + ldrsh r0, [r4, r1] + bl bag_menu_print_description_box_text + ldrb r0, [r4] + movs r1, 0 + bl bag_menu_print_cursor_ + adds r0, r5, 0 + bl set_callback3_to_bag + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end BagMenuCancelToss + + thumb_func_start Task_ChooseHowManyToToss +Task_ChooseHowManyToToss: @ 81AD044 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r6, r5, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + adds r0, r4, 0 + adds r0, 0x10 + ldrh r1, [r4, 0x4] + bl AdjustQuantityAccordingToDPadInput + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081AD088 + ldr r0, =gUnknown_0203CE54 + ldr r0, [r0] + ldr r1, =0x00000817 + adds r0, r1 + ldrb r0, [r0] + movs r2, 0x10 + ldrsh r1, [r4, r2] + bl sub_81ABC54 + b _081AD0C6 + .pool +_081AD088: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081AD0AC + movs r0, 0x5 + bl PlaySE + movs r0, 0x7 + bl bag_menu_remove_window + adds r0, r5, 0 + bl BagMenuConfirmToss + b _081AD0C6 + .pool +_081AD0AC: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081AD0C6 + movs r0, 0x5 + bl PlaySE + movs r0, 0x7 + bl bag_menu_remove_window + adds r0, r6, 0 + bl BagMenuCancelToss +_081AD0C6: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end Task_ChooseHowManyToToss + + thumb_func_start BagMenuActuallyToss +BagMenuActuallyToss: @ 81AD0CC + push {r4-r6,lr} + sub sp, 0x14 + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r5, =gTasks + 0x8 + adds r6, r4, r5 + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + ldr r1, =gStringVar1 + bl CopyItemName + ldr r0, =gStringVar2 + movs r2, 0x10 + ldrsh r1, [r6, r2] + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + ldr r6, =gStringVar4 + ldr r1, =gUnknown_085E8EF9 + adds r0, r6, 0 + bl StringExpandPlaceholders + movs r0, 0x1 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0x1 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + str r0, [sp, 0xC] + str r0, [sp, 0x10] + movs r0, 0x1 + movs r1, 0x1 + adds r2, r6, 0 + movs r3, 0x3 + bl bag_menu_print + subs r5, 0x8 + adds r4, r5 + ldr r0, =Task_ActuallyToss + str r0, [r4] + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end BagMenuActuallyToss + + thumb_func_start Task_ActuallyToss +Task_ActuallyToss: @ 81AD150 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r5, r0, r1 + ldr r4, =gUnknown_0203CE58 + ldrb r0, [r4, 0x5] + lsls r0, 1 + adds r1, r4, 0 + adds r1, 0x12 + adds r1, r0 + mov r8, r1 + adds r1, r4, 0 + adds r1, 0x8 + adds r7, r0, r1 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _081AD1CE + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + ldrh r1, [r5, 0x10] + bl RemoveBagItem + ldrb r0, [r5] + mov r1, r8 + adds r2, r7, 0 + bl sub_81AE6C8 + ldrb r0, [r4, 0x5] + bl sub_81AB9A8 + ldrb r0, [r4, 0x5] + bl sub_81ABA88 + ldrb r0, [r4, 0x5] + bl load_bag_item_list_buffers + ldr r0, =gUnknown_03006310 + mov r2, r8 + ldrh r1, [r2] + ldrh r2, [r7] + bl ListMenuInit + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5] + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + adds r0, r6, 0 + bl set_callback3_to_bag +_081AD1CE: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end Task_ActuallyToss + + thumb_func_start ItemMenu_Register +ItemMenu_Register: @ 81AD1EC + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r7, r0, r1 + ldr r0, =gUnknown_0203CE58 + ldrb r1, [r0, 0x5] + lsls r1, 1 + adds r2, r0, 0 + adds r2, 0x12 + adds r6, r1, r2 + adds r0, 0x8 + adds r5, r1, r0 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r2, =0x00000496 + adds r1, r0, r2 + ldr r0, =gUnknown_0203CE7C + ldrh r2, [r0] + ldrh r0, [r1] + cmp r0, r2 + bne _081AD238 + movs r0, 0 + strh r0, [r1] + b _081AD23A + .pool +_081AD238: + strh r2, [r1] +_081AD23A: + ldrb r0, [r7] + adds r1, r6, 0 + adds r2, r5, 0 + bl sub_81AE6C8 + ldr r0, =gUnknown_0203CE58 + ldrb r0, [r0, 0x5] + bl load_bag_item_list_buffers + ldr r0, =gUnknown_03006310 + ldrh r1, [r6] + ldrh r2, [r5] + bl ListMenuInit + lsls r0, 24 + lsrs r0, 24 + strh r0, [r7] + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + adds r0, r4, 0 + bl ItemMenu_Cancel + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end ItemMenu_Register + + thumb_func_start ItemMenu_Give +ItemMenu_Give: @ 81AD278 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r6, r4, 0 + bl bag_menu_remove_some_window + ldr r5, =gUnknown_0203CE7C + ldrh r0, [r5] + bl itemid_80BF6D8_mail_related + lsls r0, 24 + cmp r0, 0 + bne _081AD2AC + ldr r2, =gUnknown_085E8DCE + ldr r3, =sub_81AD350 + adds r0, r4, 0 + movs r1, 0x1 + bl DisplayItemMessage + b _081AD2EA + .pool +_081AD2AC: + ldrh r0, [r5] + bl itemid_is_unique + lsls r0, 24 + cmp r0, 0 + bne _081AD2E4 + bl calc_player_party_count + lsls r0, 24 + cmp r0, 0 + bne _081AD2CA + adds r0, r4, 0 + bl bag_menu_print_there_is_no_pokemon + b _081AD2EA +_081AD2CA: + ldr r0, =gUnknown_0203CE54 + ldr r1, [r0] + ldr r0, =sub_81B7F60 + str r0, [r1] + adds r0, r4, 0 + bl unknown_ItemMenu_Confirm + b _081AD2EA + .pool +_081AD2E4: + adds r0, r6, 0 + bl bag_menu_print_cant_be_held_msg +_081AD2EA: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end ItemMenu_Give + + thumb_func_start bag_menu_print_there_is_no_pokemon +bag_menu_print_there_is_no_pokemon: @ 81AD2F0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gUnknown_085E8DE9 + ldr r3, =sub_81AD350 + movs r1, 0x1 + bl DisplayItemMessage + pop {r0} + bx r0 + .pool + thumb_func_end bag_menu_print_there_is_no_pokemon + + thumb_func_start bag_menu_print_cant_be_held_msg +bag_menu_print_cant_be_held_msg: @ 81AD30C + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + ldr r1, =gStringVar1 + bl CopyItemName + ldr r5, =gStringVar4 + ldr r1, =gUnknown_085E8E11 + adds r0, r5, 0 + bl StringExpandPlaceholders + ldr r3, =sub_81AD350 + adds r0, r4, 0 + movs r1, 0x1 + adds r2, r5, 0 + bl DisplayItemMessage + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end bag_menu_print_cant_be_held_msg + + thumb_func_start sub_81AD350 +sub_81AD350: @ 81AD350 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081AD36E + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl bag_menu_inits_lists_menu +_081AD36E: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AD350 + + thumb_func_start ItemMenu_CheckTag +ItemMenu_CheckTag: @ 81AD378 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gUnknown_0203CE54 + ldr r2, [r1] + ldr r1, =sub_8177C14 + str r1, [r2] + bl unknown_ItemMenu_Confirm + pop {r0} + bx r0 + .pool + thumb_func_end ItemMenu_CheckTag + + thumb_func_start ItemMenu_Cancel +ItemMenu_Cancel: @ 81AD398 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + ldr r0, =gTasks + 0x8 + adds r4, r0 + bl bag_menu_remove_some_window + movs r1, 0x2 + ldrsh r0, [r4, r1] + bl bag_menu_print_description_box_text + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + ldrb r0, [r4] + movs r1, 0 + bl bag_menu_print_cursor_ + adds r0, r5, 0 + bl set_callback3_to_bag + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end ItemMenu_Cancel + + thumb_func_start ItemMenu_UseInBattle +ItemMenu_UseInBattle: @ 81AD3DC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, =gUnknown_0203CE7C + ldrh r0, [r4] + bl ItemId_GetBattleFunc + cmp r0, 0 + beq _081AD400 + bl bag_menu_remove_some_window + ldrh r0, [r4] + bl ItemId_GetBattleFunc + adds r1, r0, 0 + adds r0, r5, 0 + bl _call_via_r1 +_081AD400: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end ItemMenu_UseInBattle + + thumb_func_start bag_menu_mail_related +bag_menu_mail_related: @ 81AD40C + push {lr} + movs r0, 0xC + movs r1, 0x5 + movs r2, 0 + bl GoToBagMenu + pop {r0} + bx r0 + thumb_func_end bag_menu_mail_related + + thumb_func_start item_menu_type_2 +item_menu_type_2: @ 81AD41C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, =gUnknown_0203CE7C + ldrh r0, [r4] + bl itemid_80BF6D8_mail_related + lsls r0, 24 + cmp r0, 0 + bne _081AD44C + ldr r2, =gUnknown_085E8DCE + ldr r3, =sub_81AD350 + adds r0, r5, 0 + movs r1, 0x1 + bl DisplayItemMessage + b _081AD4AE + .pool +_081AD44C: + ldrh r0, [r4] + bl sub_8122148 + lsls r0, 24 + cmp r0, 0 + bne _081AD488 + ldrh r0, [r4] + ldr r1, =gStringVar1 + bl CopyItemName + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E8E27 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r3, =sub_81AD350 + adds r0, r5, 0 + movs r1, 0x1 + adds r2, r4, 0 + bl DisplayItemMessage + b _081AD4AE + .pool +_081AD488: + ldr r0, =gUnknown_0203CE58 + ldrb r0, [r0, 0x5] + cmp r0, 0x4 + beq _081AD4A8 + ldrh r0, [r4] + bl itemid_is_unique + lsls r0, 24 + cmp r0, 0 + bne _081AD4A8 + adds r0, r5, 0 + bl unknown_ItemMenu_Confirm + b _081AD4AE + .pool +_081AD4A8: + adds r0, r5, 0 + bl bag_menu_print_cant_be_held_msg +_081AD4AE: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end item_menu_type_2 + + thumb_func_start item_menu_type_b +item_menu_type_b: @ 81AD4B4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r5, =gUnknown_0203CE7C + ldrh r0, [r5] + bl itemid_is_mail + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081AD4E4 + ldr r2, =gUnknown_085E8DCE + ldr r3, =sub_81AD350 + adds r0, r4, 0 + movs r1, 0x1 + bl DisplayItemMessage + b _081AD51A + .pool +_081AD4E4: + ldr r0, =gUnknown_0203CE58 + ldrb r0, [r0, 0x5] + cmp r0, 0x4 + beq _081AD514 + ldrh r0, [r5] + bl itemid_is_unique + lsls r0, 24 + cmp r0, 0 + bne _081AD514 + ldr r0, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =unknown_ItemMenu_Confirm + str r0, [r1] + b _081AD51A + .pool +_081AD514: + adds r0, r4, 0 + bl bag_menu_print_cant_be_held_msg +_081AD51A: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end item_menu_type_b + + thumb_func_start UseRegisteredKeyItemOnField +@ bool8 UseRegisteredKeyItemOnField() +UseRegisteredKeyItemOnField: @ 81AD520 + push {r4-r7,lr} + bl InUnionRoom + cmp r0, 0x1 + beq _081AD54C + bl InBattlePyramid + lsls r0, 24 + cmp r0, 0 + bne _081AD54C + bl InBattlePike + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0 + bne _081AD54C + bl in_multi_battle_room_with_var_condition + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081AD550 +_081AD54C: + movs r0, 0 + b _081AD5D2 +_081AD550: + bl HideMapNamePopUpWindow + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgY_ScreenOff + ldr r4, =gSaveBlock1Ptr + ldr r0, [r4] + ldr r5, =0x00000496 + adds r1, r0, r5 + ldrh r0, [r1] + cmp r0, 0 + beq _081AD5CA + movs r1, 0x1 + bl CheckBagHasItem + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x1 + bne _081AD5C4 + bl script_env_2_enable + bl player_bitmagic + bl sub_808B864 + bl sub_808BCF4 + ldr r2, =gUnknown_0203CE7C + ldr r0, [r4] + adds r0, r5 + ldrh r1, [r0] + strh r1, [r2] + ldrh r0, [r0] + bl ItemId_GetFieldFunc + movs r1, 0x8 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r6, [r1, 0xE] + b _081AD5D0 + .pool +_081AD5C4: + ldr r0, [r4] + adds r0, r5 + strh r7, [r0] +_081AD5CA: + ldr r0, =gUnknown_082736B3 + bl script_env_1_execute_new_script +_081AD5D0: + movs r0, 0x1 +_081AD5D2: + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end UseRegisteredKeyItemOnField + + thumb_func_start display_sell_item_ask_str +@ void display_sell_item_ask_str(int a1) +display_sell_item_ask_str: @ 81AD5DC + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r7, r5, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + ldr r6, =gUnknown_0203CE7C + ldrh r0, [r6] + bl itemid_get_market_price + lsls r0, 16 + cmp r0, 0 + bne _081AD634 + ldrh r0, [r6] + ldr r1, =gStringVar2 + bl CopyItemName + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E960F + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r3, =bag_menu_inits_lists_menu + adds r0, r5, 0 + movs r1, 0x1 + adds r2, r4, 0 + bl DisplayItemMessage + b _081AD66A + .pool +_081AD634: + movs r0, 0x1 + strh r0, [r4, 0x10] + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _081AD64C + bl bag_menu_add_money_window + adds r0, r5, 0 + bl sub_81AD680 + b _081AD66A +_081AD64C: + ldrh r0, [r6] + ldr r1, =gStringVar2 + bl CopyItemName + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E962F + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r3, =sub_81AD730 + adds r0, r7, 0 + movs r1, 0x1 + adds r2, r4, 0 + bl DisplayItemMessage +_081AD66A: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end display_sell_item_ask_str + + thumb_func_start sub_81AD680 +sub_81AD680: @ 81AD680 + push {r4-r6,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + ldr r0, =gTasks + 0x8 + adds r4, r0 + ldr r6, =gStringVar1 + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + bl itemid_get_market_price + lsls r0, 16 + lsrs r0, 17 + movs r2, 0x10 + ldrsh r1, [r4, r2] + muls r1, r0 + adds r0, r6, 0 + movs r2, 0 + movs r3, 0x6 + bl ConvertIntToDecimalStringN + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E9654 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r3, =sub_81AD6E4 + adds r0, r5, 0 + movs r1, 0x1 + adds r2, r4, 0 + bl DisplayItemMessage + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AD680 + + thumb_func_start sub_81AD6E4 +sub_81AD6E4: @ 81AD6E4 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gUnknown_0861408C + movs r1, 0x6 + bl bag_menu_yes_no + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AD6E4 + + thumb_func_start sub_81AD6FC +sub_81AD6FC: @ 81AD6FC + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + ldr r0, =gTasks + 0x8 + adds r4, r0 + bl bag_menu_remove_money_window + movs r0, 0x4 + bl bag_menu_RemoveBagItem_message_window + ldrb r0, [r4] + movs r1, 0 + bl bag_menu_print_cursor_ + adds r0, r5, 0 + bl set_callback3_to_bag + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AD6FC + + thumb_func_start sub_81AD730 +sub_81AD730: @ 81AD730 + push {r4-r6,lr} + mov r6, r8 + push {r6} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r6, =gTasks + 0x8 + adds r0, r4, r6 + mov r8, r0 + movs r0, 0x8 + bl bag_menu_add_window + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + bl itemid_get_market_price + lsls r0, 16 + lsrs r0, 17 + mov r2, r8 + movs r3, 0x10 + ldrsh r1, [r2, r3] + adds r2, r0, 0 + muls r2, r1 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_81ABCC0 + bl bag_menu_add_money_window + subs r6, 0x8 + adds r4, r6 + ldr r0, =sub_81AD794 + str r0, [r4] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AD730 + + thumb_func_start sub_81AD794 +sub_81AD794: @ 81AD794 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r6, r0, r1 + adds r0, r6, 0 + adds r0, 0x10 + ldrh r1, [r6, 0x4] + bl AdjustQuantityAccordingToDPadInput + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081AD7F4 + ldr r0, =gUnknown_0203CE54 + ldr r0, [r0] + ldr r1, =0x00000818 + adds r0, r1 + ldrb r4, [r0] + movs r2, 0x10 + ldrsh r5, [r6, r2] + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + bl itemid_get_market_price + lsls r0, 16 + lsrs r0, 17 + movs r2, 0x10 + ldrsh r1, [r6, r2] + adds r2, r0, 0 + muls r2, r1 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_81ABCC0 + b _081AD844 + .pool +_081AD7F4: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081AD818 + movs r0, 0x5 + bl PlaySE + movs r0, 0x8 + bl bag_menu_remove_window + adds r0, r4, 0 + bl sub_81AD680 + b _081AD844 + .pool +_081AD818: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081AD844 + movs r0, 0x5 + bl PlaySE + ldrb r0, [r6] + movs r1, 0 + bl bag_menu_print_cursor_ + bl bag_menu_remove_money_window + movs r0, 0x8 + bl bag_menu_remove_window + movs r0, 0x4 + bl bag_menu_RemoveBagItem_message_window + adds r0, r5, 0 + bl set_callback3_to_bag +_081AD844: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81AD794 + + thumb_func_start sub_81AD84C +sub_81AD84C: @ 81AD84C + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + ldr r0, =gTasks + 0x8 + adds r4, r0 + ldr r6, =gUnknown_0203CE7C + ldrh r0, [r6] + ldr r1, =gStringVar2 + bl CopyItemName + ldr r0, =gStringVar1 + mov r8, r0 + ldrh r0, [r6] + bl itemid_get_market_price + lsls r0, 16 + lsrs r0, 17 + movs r2, 0x10 + ldrsh r1, [r4, r2] + muls r1, r0 + mov r0, r8 + movs r2, 0 + movs r3, 0x6 + bl ConvertIntToDecimalStringN + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E9677 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r3, =sub_81AD8C8 + adds r0, r5, 0 + movs r1, 0x1 + adds r2, r4, 0 + bl DisplayItemMessage + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AD84C + + thumb_func_start sub_81AD8C8 +sub_81AD8C8: @ 81AD8C8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + lsls r6, r0, 2 + adds r6, r0 + lsls r6, 3 + ldr r0, =gTasks + 0x8 + adds r0, r6 + mov r10, r0 + ldr r7, =gUnknown_0203CE58 + ldrb r5, [r7, 0x5] + lsls r5, 1 + movs r1, 0x12 + adds r1, r7 + mov r9, r1 + add r9, r5 + adds r0, r7, 0 + adds r0, 0x8 + adds r5, r0 + movs r0, 0x5F + bl PlaySE + ldr r2, =gUnknown_0203CE7C + mov r8, r2 + ldrh r0, [r2] + mov r3, r10 + ldrh r1, [r3, 0x10] + bl RemoveBagItem + ldr r0, =gSaveBlock1Ptr + ldr r4, [r0] + movs r1, 0x92 + lsls r1, 3 + adds r4, r1 + mov r2, r8 + ldrh r0, [r2] + bl itemid_get_market_price + lsls r0, 16 + lsrs r0, 17 + mov r3, r10 + movs r2, 0x10 + ldrsh r1, [r3, r2] + muls r1, r0 + adds r0, r4, 0 + bl add_money + mov r3, r10 + ldrb r0, [r3] + mov r1, r9 + adds r2, r5, 0 + bl sub_81AE6C8 + ldrb r0, [r7, 0x5] + bl sub_81AB9A8 + ldrb r0, [r7, 0x5] + bl sub_81ABA88 + ldrb r0, [r7, 0x5] + bl load_bag_item_list_buffers + ldr r0, =gUnknown_03006310 + mov r2, r9 + ldrh r1, [r2] + ldrh r2, [r5] + bl ListMenuInit + lsls r0, 24 + lsrs r0, 24 + mov r3, r10 + strh r0, [r3] + movs r1, 0x2 + bl bag_menu_print_cursor_ + ldr r0, =gUnknown_0203CE54 + ldr r0, [r0] + ldr r1, =0x00000819 + adds r0, r1 + ldrb r4, [r0] + ldr r2, =gSaveBlock1Ptr + ldr r0, [r2] + movs r3, 0x92 + lsls r3, 3 + adds r0, r3 + bl DecryptMoney + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0 + bl PrintMoneyAmountInMoneyBox + ldr r0, =gTasks + 0x8 + subs r0, 0x8 + adds r6, r0 + ldr r0, =sub_81AD9C0 + str r0, [r6] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AD8C8 + + thumb_func_start sub_81AD9C0 +sub_81AD9C0: @ 81AD9C0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _081AD9E2 + movs r0, 0x5 + bl PlaySE + bl bag_menu_remove_money_window + adds r0, r4, 0 + bl bag_menu_inits_lists_menu +_081AD9E2: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AD9C0 + + thumb_func_start display_deposit_item_ask_str +display_deposit_item_ask_str: @ 81AD9EC + push {r4-r6,lr} + sub sp, 0x14 + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r5, r0, 3 + ldr r6, =gTasks + 0x8 + adds r1, r5, r6 + movs r0, 0x1 + strh r0, [r1, 0x10] + movs r3, 0x4 + ldrsh r0, [r1, r3] + cmp r0, 0x1 + bne _081ADA18 + adds r0, r2, 0 + bl sub_81ADB14 + b _081ADA5E + .pool +_081ADA18: + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + ldr r1, =gStringVar1 + bl CopyItemName + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E8E42 + adds r0, r4, 0 + bl StringExpandPlaceholders + movs r0, 0x1 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0x1 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + str r0, [sp, 0xC] + str r0, [sp, 0x10] + movs r0, 0x1 + movs r1, 0x1 + adds r2, r4, 0 + movs r3, 0x3 + bl bag_menu_print + movs r0, 0x7 + bl sub_81ABC3C + adds r0, r6, 0 + subs r0, 0x8 + adds r0, r5, r0 + ldr r1, =sub_81ADA7C + str r1, [r0] +_081ADA5E: + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end display_deposit_item_ask_str + + thumb_func_start sub_81ADA7C +sub_81ADA7C: @ 81ADA7C + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r6, r4, 0 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r5, r0, r1 + adds r0, r5, 0 + adds r0, 0x10 + ldrh r1, [r5, 0x4] + bl AdjustQuantityAccordingToDPadInput + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081ADAC0 + ldr r0, =gUnknown_0203CE54 + ldr r0, [r0] + ldr r1, =0x00000817 + adds r0, r1 + ldrb r0, [r0] + movs r2, 0x10 + ldrsh r1, [r5, r2] + bl sub_81ABC54 + b _081ADB0E + .pool +_081ADAC0: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081ADAE4 + movs r0, 0x5 + bl PlaySE + movs r0, 0x7 + bl bag_menu_remove_window + adds r0, r4, 0 + bl sub_81ADB14 + b _081ADB0E + .pool +_081ADAE4: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081ADB0E + movs r0, 0x5 + bl PlaySE + movs r1, 0x2 + ldrsh r0, [r5, r1] + bl bag_menu_print_description_box_text + ldrb r0, [r5] + movs r1, 0 + bl bag_menu_print_cursor_ + movs r0, 0x7 + bl bag_menu_remove_window + adds r0, r6, 0 + bl set_callback3_to_bag +_081ADB0E: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81ADA7C + + thumb_func_start sub_81ADB14 +sub_81ADB14: @ 81ADB14 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r7, r1, 3 + ldr r0, =gTasks + 0x8 + mov r9, r0 + adds r2, r7, 0 + add r2, r9 + mov r8, r2 + movs r0, 0x1 + movs r1, 0 + bl FillWindowPixelBuffer + ldr r4, =gUnknown_0203CE7C + ldrh r0, [r4] + bl itemid_is_unique + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + beq _081ADB6C + ldr r2, =gUnknown_085E8E8E + movs r0, 0x1 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + str r0, [sp, 0xC] + str r0, [sp, 0x10] + movs r0, 0x1 + b _081ADBE2 + .pool +_081ADB6C: + ldrh r0, [r4] + mov r3, r8 + ldrh r1, [r3, 0x10] + bl sub_80D6D70 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x1 + bne _081ADBD4 + ldrh r0, [r4] + ldr r1, =gStringVar1 + bl CopyItemName + ldr r0, =gStringVar2 + mov r2, r8 + movs r3, 0x10 + ldrsh r1, [r2, r3] + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E8E5A + adds r0, r4, 0 + bl StringExpandPlaceholders + str r6, [sp] + str r5, [sp, 0x4] + str r5, [sp, 0x8] + str r5, [sp, 0xC] + str r5, [sp, 0x10] + movs r0, 0x1 + movs r1, 0x1 + adds r2, r4, 0 + movs r3, 0x3 + bl bag_menu_print + mov r0, r9 + subs r0, 0x8 + adds r0, r7, r0 + ldr r1, =Task_ActuallyToss + b _081ADBF2 + .pool +_081ADBD4: + ldr r2, =gUnknown_085E8E6E + movs r0, 0x1 + str r0, [sp] + str r5, [sp, 0x4] + str r5, [sp, 0x8] + str r5, [sp, 0xC] + str r5, [sp, 0x10] +_081ADBE2: + movs r1, 0x1 + movs r3, 0x3 + bl bag_menu_print + mov r0, r9 + subs r0, 0x8 + adds r0, r7, r0 + ldr r1, =sub_81ADC0C +_081ADBF2: + str r1, [r0] + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81ADB14 + + thumb_func_start sub_81ADC0C +sub_81ADC0C: @ 81ADC0C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r5, r0, r1 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _081ADC44 + movs r0, 0x5 + bl PlaySE + movs r1, 0x2 + ldrsh r0, [r5, r1] + bl bag_menu_print_description_box_text + ldrb r0, [r5] + movs r1, 0 + bl bag_menu_print_cursor_ + adds r0, r4, 0 + bl set_callback3_to_bag +_081ADC44: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81ADC0C + + thumb_func_start IsWallysBag +@ bool8 IsWallysBag() +IsWallysBag: @ 81ADC54 + push {lr} + ldr r0, =gUnknown_0203CE58 + ldrb r0, [r0, 0x4] + cmp r0, 0xA + beq _081ADC68 + movs r0, 0 + b _081ADC6A + .pool +_081ADC68: + movs r0, 0x1 +_081ADC6A: + pop {r1} + bx r1 + thumb_func_end IsWallysBag + + thumb_func_start PrepareBagForWallyTutorial +@ void PrepareBagForWallyTutorial() +PrepareBagForWallyTutorial: @ 81ADC70 + push {r4-r6,lr} + ldr r4, =gUnknown_0203CE80 + movs r0, 0xD0 + bl AllocZeroed + str r0, [r4] + ldr r5, =gSaveBlock1Ptr + ldr r1, [r5] + movs r2, 0xAC + lsls r2, 3 + adds r1, r2 + movs r2, 0x78 + bl memcpy + ldr r0, [r4] + ldr r1, [r5] + movs r2, 0xCA + lsls r2, 3 + adds r1, r2 + adds r0, 0x78 + movs r2, 0x40 + bl memcpy + ldr r0, [r4] + ldr r2, =gUnknown_0203CE58 + ldrb r1, [r2, 0x5] + adds r0, 0xCE + strh r1, [r0] + movs r6, 0 + adds r5, r2, 0 + adds r5, 0x8 +_081ADCAE: + ldr r2, [r4] + lsls r3, r6, 1 + adds r0, r2, 0 + adds r0, 0xB8 + adds r0, r3 + ldrh r1, [r5] + strh r1, [r0] + adds r2, 0xC2 + adds r2, r3 + ldrh r0, [r5, 0xA] + strh r0, [r2] + adds r5, 0x2 + adds r6, 0x1 + cmp r6, 0x4 + bls _081ADCAE + ldr r4, =gSaveBlock1Ptr + ldr r0, [r4] + movs r1, 0xAC + lsls r1, 3 + adds r0, r1 + movs r1, 0x1E + bl ClearItemSlots + ldr r0, [r4] + movs r2, 0xCA + lsls r2, 3 + adds r0, r2 + movs r1, 0x10 + bl ClearItemSlots + bl ResetBagScrollPositions + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end PrepareBagForWallyTutorial + + thumb_func_start RestoreBagAfterWallyTutorial +@ void RestoreBagAfterWallyTutorial() +RestoreBagAfterWallyTutorial: @ 81ADD00 + push {r4-r6,lr} + ldr r5, =gSaveBlock1Ptr + ldr r0, [r5] + movs r1, 0xAC + lsls r1, 3 + adds r0, r1 + ldr r4, =gUnknown_0203CE80 + ldr r1, [r4] + movs r2, 0x78 + bl memcpy + ldr r0, [r5] + movs r1, 0xCA + lsls r1, 3 + adds r0, r1 + ldr r1, [r4] + adds r1, 0x78 + movs r2, 0x40 + bl memcpy + ldr r1, =gUnknown_0203CE58 + ldr r0, [r4] + adds r0, 0xCE + ldrh r0, [r0] + strb r0, [r1, 0x5] + movs r5, 0 + adds r6, r4, 0 + adds r3, r1, 0 + adds r3, 0x8 +_081ADD3A: + lsls r2, r5, 1 + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0xB8 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r3] + adds r1, 0xC2 + adds r1, r2 + ldrh r0, [r1] + strh r0, [r3, 0xA] + adds r3, 0x2 + adds r5, 0x1 + cmp r5, 0x4 + bls _081ADD3A + ldr r0, [r6] + bl Free + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end RestoreBagAfterWallyTutorial + + thumb_func_start DoWallyTutorialBagMenu +@ void DoWallyTutorialBagMenu() +DoWallyTutorialBagMenu: @ 81ADD70 + push {lr} + bl PrepareBagForWallyTutorial + movs r0, 0xD + movs r1, 0x1 + bl AddBagItem + movs r0, 0x4 + movs r1, 0x1 + bl AddBagItem + ldr r2, =sub_8059D50 + movs r0, 0xA + movs r1, 0 + bl GoToBagMenu + pop {r0} + bx r0 + .pool + thumb_func_end DoWallyTutorialBagMenu + + thumb_func_start Task_WallyTutorialBagMenu +@ void Task_WallyTutorialBagMenu(u8 taskId) +Task_WallyTutorialBagMenu: @ 81ADD98 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081ADE32 + movs r0, 0x10 + ldrsh r1, [r4, r0] + cmp r1, 0xCC + beq _081ADDEC + cmp r1, 0xCC + bgt _081ADDD0 + cmp r1, 0x66 + beq _081ADDDA + b _081ADE2C + .pool +_081ADDD0: + movs r0, 0x99 + lsls r0, 1 + cmp r1, r0 + beq _081ADE0C + b _081ADE2C +_081ADDDA: + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + movs r1, 0x1 + movs r2, 0 + bl SwitchBagPocket + b _081ADE2C +_081ADDEC: + movs r0, 0x5 + bl PlaySE + ldrb r0, [r4] + movs r1, 0x2 + bl bag_menu_print_cursor_ + ldr r1, =gUnknown_0203CE7C + movs r0, 0x4 + strh r0, [r1] + adds r0, r5, 0 + bl sub_81AC644 + b _081ADE2C + .pool +_081ADE0C: + movs r0, 0x5 + bl PlaySE + bl bag_menu_remove_some_window + ldrb r0, [r4] + movs r1, 0 + movs r2, 0 + bl sub_81AE6C8 + bl RestoreBagAfterWallyTutorial + adds r0, r5, 0 + bl unknown_ItemMenu_Confirm + b _081ADE32 +_081ADE2C: + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] +_081ADE32: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end Task_WallyTutorialBagMenu + + thumb_func_start unknown_ItemMenu_Show +unknown_ItemMenu_Show: @ 81ADE38 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, =gSpecialVar_0x8005 + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + strh r0, [r1] + ldr r1, =gScriptResult + movs r0, 0x1 + strh r0, [r1] + bl bag_menu_remove_some_window + adds r0, r4, 0 + bl unknown_ItemMenu_Confirm + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end unknown_ItemMenu_Show + + thumb_func_start bag_menu_leave_maybe_3 +bag_menu_leave_maybe_3: @ 81ADE6C + push {lr} + ldr r0, =gUnknown_03005DAC + ldr r1, =sub_819FA50 + str r1, [r0] + ldr r0, =c2_exit_to_overworld_2_switch + bl SetMainCallback2 + pop {r0} + bx r0 + .pool + thumb_func_end bag_menu_leave_maybe_3 + + thumb_func_start unknown_ItemMenu_Give2 +unknown_ItemMenu_Give2: @ 81ADE8C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + movs r1, 0x1 + bl RemoveBagItem + ldr r1, =gScriptResult + movs r0, 0x1 + strh r0, [r1] + bl bag_menu_remove_some_window + adds r0, r4, 0 + bl unknown_ItemMenu_Confirm + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end unknown_ItemMenu_Give2 + + thumb_func_start bag_menu_leave_maybe_2 +bag_menu_leave_maybe_2: @ 81ADEBC + push {lr} + ldr r0, =gUnknown_03005DAC + ldr r1, =sub_818DEF4 + str r1, [r0] + ldr r0, =c2_exit_to_overworld_2_switch + bl SetMainCallback2 + pop {r0} + bx r0 + .pool + thumb_func_end bag_menu_leave_maybe_2 + + thumb_func_start unknown_ItemMenu_Confirm2 +unknown_ItemMenu_Confirm2: @ 81ADEDC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, =gScriptResult + movs r0, 0x1 + strh r0, [r1] + bl bag_menu_remove_some_window + adds r0, r4, 0 + bl unknown_ItemMenu_Confirm + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end unknown_ItemMenu_Confirm2 + + thumb_func_start bag_menu_leave_maybe +bag_menu_leave_maybe: @ 81ADF00 + push {lr} + ldr r0, =gUnknown_03005DAC + ldr r1, =sub_818E564 + str r1, [r0] + ldr r0, =c2_exit_to_overworld_2_switch + bl SetMainCallback2 + pop {r0} + bx r0 + .pool + thumb_func_end bag_menu_leave_maybe + + thumb_func_start bag_menu_print_pocket_names +bag_menu_print_pocket_names: @ 81ADF20 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x1C + adds r4, r0, 0 + mov r8, r1 + movs r0, 0 + movs r1, 0 + str r0, [sp, 0x14] + str r1, [sp, 0x18] + ldr r1, =0x00ffffff + ldr r0, [sp, 0x14] + ands r0, r1 + movs r1, 0x80 + lsls r1, 21 + orrs r0, r1 + str r0, [sp, 0x14] + ldr r1, =0xffffff00 + ldr r0, [sp, 0x18] + ands r0, r1 + movs r1, 0x2 + orrs r0, r1 + str r0, [sp, 0x18] + add r0, sp, 0x14 + bl AddWindow + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r6, 0 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x40 + bl GetStringCenterAlignXOffset + lsls r3, r0, 24 + lsrs r3, 24 + movs r7, 0x1 + str r7, [sp] + movs r5, 0 + str r5, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0xFF + mov r9, r0 + str r0, [sp, 0xC] + str r7, [sp, 0x10] + adds r0, r6, 0 + movs r1, 0x1 + adds r2, r4, 0 + bl bag_menu_print + mov r2, r8 + cmp r2, 0 + beq _081ADFBA + movs r0, 0x1 + mov r1, r8 + movs r2, 0x40 + bl GetStringCenterAlignXOffset + adds r3, r0, 0 + adds r3, 0x40 + lsls r3, 24 + lsrs r3, 24 + str r7, [sp] + str r5, [sp, 0x4] + str r5, [sp, 0x8] + mov r0, r9 + str r0, [sp, 0xC] + str r7, [sp, 0x10] + adds r0, r6, 0 + movs r1, 0x1 + mov r2, r8 + bl bag_menu_print +_081ADFBA: + adds r0, r6, 0 + movs r1, 0x7 + bl GetWindowAttribute + ldr r1, =gUnknown_0203CE54 + ldr r1, [r1] + ldr r2, =0x00000844 + adds r1, r2 + ldr r2, =0x04000100 + bl CpuSet + adds r0, r6, 0 + bl RemoveWindow + add sp, 0x1C + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end bag_menu_print_pocket_names + + thumb_func_start bag_menu_copy_pocket_name_to_window +bag_menu_copy_pocket_name_to_window: @ 81ADFF8 + push {r4-r7,lr} + adds r7, r0, 0 + cmp r7, 0x8 + bls _081AE002 + movs r7, 0x8 +_081AE002: + ldr r0, =gUnknown_0203CE54 + ldr r4, [r0] + ldr r0, =0x00000844 + adds r4, r0 + movs r0, 0x2 + movs r1, 0x7 + bl GetWindowAttribute + adds r5, r0, 0 + lsls r0, r7, 5 + adds r0, r4, r0 + ldr r6, =0x04000040 + adds r1, r5, 0 + adds r2, r6, 0 + bl CpuSet + adds r0, r7, 0 + adds r0, 0x10 + lsls r0, 5 + adds r4, r0 + movs r0, 0x80 + lsls r0, 1 + adds r5, r0 + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl CpuSet + movs r0, 0x2 + movs r1, 0x2 + bl CopyWindowToVram + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end bag_menu_copy_pocket_name_to_window + + thumb_func_start setup_bag_menu_textboxes +setup_bag_menu_textboxes: @ 81AE054 + push {r4,lr} + ldr r0, =gUnknown_08614174 + bl InitWindows + bl DeactivateAllTextPrinters + movs r0, 0 + movs r1, 0x1 + movs r2, 0xE0 + bl sub_809882C + movs r0, 0 + movs r1, 0xA + movs r2, 0xD0 + bl copy_textbox_border_tile_patterns_to_vram + movs r0, 0xC0 + movs r1, 0x1 + bl sub_819A2BC + ldr r0, =gUnknown_0860F074 + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + movs r4, 0 +_081AE088: + adds r0, r4, 0 + movs r1, 0 + bl FillWindowPixelBuffer + adds r0, r4, 0 + bl PutWindowTilemap + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _081AE088 + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end setup_bag_menu_textboxes + + thumb_func_start bag_menu_print +bag_menu_print: @ 81AE0BC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + mov r9, r3 + ldr r3, [sp, 0x30] + ldr r4, [sp, 0x34] + ldr r6, [sp, 0x38] + ldr r5, [sp, 0x3C] + mov r8, r5 + ldr r5, [sp, 0x40] + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r7, r9 + lsls r7, 24 + lsrs r7, 24 + mov r9, r7 + lsls r3, 24 + lsrs r3, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r6, 24 + lsrs r6, 24 + lsls r5, 24 + lsrs r5, 24 + str r4, [sp] + str r6, [sp, 0x4] + lsls r4, r5, 1 + adds r4, r5 + ldr r5, =gUnknown_08614164 + adds r4, r5 + str r4, [sp, 0x8] + mov r4, r8 + lsls r4, 24 + asrs r4, 24 + str r4, [sp, 0xC] + str r2, [sp, 0x10] + mov r2, r9 + bl AddTextPrinterParametrized2 + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end bag_menu_print + + thumb_func_start sub_81AE124 +sub_81AE124: @ 81AE124 + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gUnknown_0203CE54 + ldr r1, [r1] + movs r2, 0x81 + lsls r2, 4 + adds r1, r2 + adds r1, r0 + ldrb r0, [r1] + bx lr + .pool + thumb_func_end sub_81AE124 + + thumb_func_start bag_menu_add_window +bag_menu_add_window: @ 81AE13C + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, =gUnknown_0203CE54 + movs r3, 0x81 + lsls r3, 4 + adds r1, r2, r3 + ldr r0, [r0] + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0xFF + bne _081AE172 + lsls r0, r2, 3 + ldr r1, =gUnknown_086141AC + adds r0, r1 + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r1, 0 + movs r2, 0x1 + movs r3, 0xE + bl SetWindowBorderStyle + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram +_081AE172: + ldrb r0, [r4] + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end bag_menu_add_window + + thumb_func_start bag_menu_remove_window +bag_menu_remove_window: @ 81AE184 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gUnknown_0203CE54 + movs r2, 0x81 + lsls r2, 4 + adds r0, r2 + ldr r1, [r1] + adds r4, r1, r0 + ldrb r0, [r4] + cmp r0, 0xFF + beq _081AE1B8 + movs r1, 0 + bl sub_8198070 + ldrb r0, [r4] + bl ClearWindowTilemap + ldrb r0, [r4] + bl RemoveWindow + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0xFF + strb r0, [r4] +_081AE1B8: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end bag_menu_remove_window + + thumb_func_start AddItemMessageWindow +@ u8 AddItemMessageWindow(u8 a1) +AddItemMessageWindow: @ 81AE1C4 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, =gUnknown_0203CE54 + movs r3, 0x81 + lsls r3, 4 + adds r1, r2, r3 + ldr r0, [r0] + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0xFF + bne _081AE1E8 + lsls r0, r2, 3 + ldr r1, =gUnknown_086141AC + adds r0, r1 + bl AddWindow + strb r0, [r4] +_081AE1E8: + ldrb r0, [r4] + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end AddItemMessageWindow + + thumb_func_start bag_menu_RemoveBagItem_message_window +bag_menu_RemoveBagItem_message_window: @ 81AE1F8 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gUnknown_0203CE54 + movs r2, 0x81 + lsls r2, 4 + adds r0, r2 + ldr r1, [r1] + adds r4, r1, r0 + ldrb r0, [r4] + cmp r0, 0xFF + beq _081AE22C + movs r1, 0 + bl sub_8197DF8 + ldrb r0, [r4] + bl ClearWindowTilemap + ldrb r0, [r4] + bl RemoveWindow + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0xFF + strb r0, [r4] +_081AE22C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end bag_menu_RemoveBagItem_message_window + + thumb_func_start bag_menu_yes_no +bag_menu_yes_no: @ 81AE238 + push {lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 21 + ldr r3, =gUnknown_086141AC + adds r1, r3 + movs r3, 0x2 + str r3, [sp] + movs r3, 0x1 + str r3, [sp, 0x4] + movs r3, 0xE + str r3, [sp, 0x8] + str r2, [sp, 0xC] + movs r2, 0x1 + movs r3, 0 + bl CreateYesNoMenuWithCallbacks + add sp, 0x10 + pop {r0} + bx r0 + .pool + thumb_func_end bag_menu_yes_no + + thumb_func_start bag_menu_add_money_window +bag_menu_add_money_window: @ 81AE268 + push {r4,lr} + movs r0, 0x9 + bl bag_menu_add_window + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + movs r1, 0x92 + lsls r1, 3 + adds r0, r1 + bl DecryptMoney + adds r3, r0, 0 + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0xE + bl set_window_border_style_and_print_money_box + movs r0, 0x13 + movs r1, 0xB + bl AddMoneyLabelObject + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end bag_menu_add_money_window + + thumb_func_start bag_menu_remove_money_window +bag_menu_remove_money_window: @ 81AE2A4 + push {lr} + movs r0, 0x9 + bl bag_menu_remove_window + bl RemoveMoneyLabelObject + pop {r0} + bx r0 + thumb_func_end bag_menu_remove_money_window + + thumb_func_start bag_menu_prepare_tmhm_move_window +bag_menu_prepare_tmhm_move_window: @ 81AE2B4 + push {lr} + movs r0, 0x3 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0x3 + movs r1, 0x13 + movs r2, 0 + movs r3, 0 + bl blit_move_info_icon + movs r0, 0x3 + movs r1, 0x14 + movs r2, 0 + movs r3, 0xC + bl blit_move_info_icon + movs r0, 0x3 + movs r1, 0x15 + movs r2, 0 + movs r3, 0x18 + bl blit_move_info_icon + movs r0, 0x3 + movs r1, 0x16 + movs r2, 0 + movs r3, 0x24 + bl blit_move_info_icon + movs r0, 0x3 + movs r1, 0x2 + bl CopyWindowToVram + pop {r0} + bx r0 + thumb_func_end bag_menu_prepare_tmhm_move_window + + thumb_func_start PrintTMHMMoveData +PrintTMHMMoveData: @ 81AE2FC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0x4 + movs r1, 0 + bl FillWindowPixelBuffer + cmp r4, 0 + bne _081AE354 + movs r4, 0 + movs r5, 0 +_081AE31A: + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 26 + lsrs r0, 24 + str r0, [sp] + str r5, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0xFF + str r0, [sp, 0xC] + movs r0, 0x4 + str r0, [sp, 0x10] + movs r1, 0x1 + ldr r2, =gUnknown_085E8D45 + movs r3, 0x7 + bl bag_menu_print + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _081AE31A + movs r0, 0x4 + movs r1, 0x2 + bl CopyWindowToVram + b _081AE440 + .pool +_081AE354: + adds r0, r4, 0 + bl ItemIdToBattleMoveId + lsls r0, 16 + lsrs r7, r0, 16 + ldr r1, =gBattleMoves + lsls r0, r7, 1 + adds r0, r7 + lsls r0, 2 + adds r5, r0, r1 + ldrb r1, [r5, 0x2] + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x4 + movs r2, 0 + movs r3, 0 + bl blit_move_info_icon + ldrb r0, [r5, 0x1] + cmp r0, 0x1 + bhi _081AE38C + ldr r2, =gUnknown_085E8D45 + b _081AE39C + .pool +_081AE38C: + ldr r4, =gStringVar1 + ldrb r1, [r5, 0x1] + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r2, r4, 0 +_081AE39C: + movs r0, 0xC + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + movs r0, 0xFF + str r0, [sp, 0xC] + movs r0, 0x4 + str r0, [sp, 0x10] + movs r1, 0x1 + movs r3, 0x7 + bl bag_menu_print + ldr r2, =gBattleMoves + lsls r1, r7, 1 + adds r0, r1, r7 + lsls r0, 2 + adds r2, r0, r2 + ldrb r0, [r2, 0x3] + adds r6, r1, 0 + cmp r0, 0 + bne _081AE3D8 + ldr r2, =gUnknown_085E8D45 + b _081AE3E8 + .pool +_081AE3D8: + ldr r4, =gStringVar1 + ldrb r1, [r2, 0x3] + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r2, r4, 0 +_081AE3E8: + movs r0, 0x18 + str r0, [sp] + movs r4, 0 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0xFF + mov r8, r0 + str r0, [sp, 0xC] + movs r0, 0x4 + mov r9, r0 + str r0, [sp, 0x10] + movs r1, 0x1 + movs r3, 0x7 + bl bag_menu_print + ldr r5, =gStringVar1 + ldr r1, =gBattleMoves + adds r0, r6, r7 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x4] + adds r0, r5, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + movs r0, 0x24 + str r0, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + mov r0, r8 + str r0, [sp, 0xC] + mov r0, r9 + str r0, [sp, 0x10] + movs r0, 0x4 + movs r1, 0x1 + adds r2, r5, 0 + movs r3, 0x7 + bl bag_menu_print + movs r0, 0x4 + movs r1, 0x2 + bl CopyWindowToVram +_081AE440: + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end PrintTMHMMoveData + + thumb_func_start ListMenuDummyTask +@ void ListMenuDummyTask(u8 taskId) +ListMenuDummyTask: @ 81AE458 + bx lr + thumb_func_end ListMenuDummyTask + + thumb_func_start DoMysteryGiftListMenu +@ int DoMysteryGiftListMenu(struct WindowTemplate *windowTemplate, struct ListMenuTemplate *listMenuTemplate, int a3, int a4, int a5) +DoMysteryGiftListMenu: @ 81AE45C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + mov r12, r0 + str r1, [sp] + ldr r0, [sp, 0x28] + lsls r2, 24 + lsrs r6, r2, 24 + mov r10, r6 + lsls r3, 16 + lsrs r7, r3, 16 + str r7, [sp, 0x4] + lsls r0, 16 + mov r8, r0 + lsrs r0, 16 + mov r9, r0 + ldr r5, =gUnknown_0203CE84 + ldrb r4, [r5, 0x4] + cmp r4, 0x1 + beq _081AE4F4 + cmp r4, 0x1 + ble _081AE492 + cmp r4, 0x2 + beq _081AE558 +_081AE492: + mov r0, r12 + bl AddWindow + strb r0, [r5, 0x5] + cmp r6, 0x1 + beq _081AE4B0 + cmp r6, 0x2 + bne _081AE4C0 + ldrb r0, [r5, 0x5] + mov r1, r9 + lsls r2, r1, 24 + lsrs r2, 24 + adds r1, r7, 0 + bl sub_809882C +_081AE4B0: + ldrb r0, [r5, 0x5] + mov r3, r8 + lsrs r2, r3, 20 + lsls r2, 24 + lsrs r2, 24 + ldr r1, [sp, 0x4] + bl sub_8098858 +_081AE4C0: + ldr r0, =gUnknown_03006310 + adds r2, r0, 0 + ldr r1, [sp] + ldm r1!, {r3-r5} + stm r2!, {r3-r5} + ldm r1!, {r3-r5} + stm r2!, {r3-r5} + ldr r4, =gUnknown_0203CE84 + ldrb r1, [r4, 0x5] + strb r1, [r0, 0x10] + movs r1, 0 + movs r2, 0 + bl ListMenuInit + strb r0, [r4, 0x6] + ldrb r0, [r4, 0x5] + movs r1, 0x1 + bl CopyWindowToVram + movs r0, 0x1 + strb r0, [r4, 0x4] + b _081AE570 + .pool +_081AE4F4: + ldrb r0, [r5, 0x6] + bl ListMenuHandleInput + str r0, [r5] + ldr r1, =gMain + ldrh r0, [r1, 0x2E] + ands r4, r0 + cmp r4, 0 + beq _081AE50A + movs r0, 0x2 + strb r0, [r5, 0x4] +_081AE50A: + ldrh r1, [r1, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081AE51E + movs r0, 0x2 + negs r0, r0 + str r0, [r5] + movs r0, 0x2 + strb r0, [r5, 0x4] +_081AE51E: + ldrb r0, [r5, 0x4] + cmp r0, 0x2 + bne _081AE570 + cmp r6, 0 + bne _081AE534 + ldrb r0, [r5, 0x5] + bl ClearWindowTilemap + b _081AE546 + .pool +_081AE534: + mov r4, r10 + cmp r4, 0 + blt _081AE546 + cmp r4, 0x2 + bgt _081AE546 + ldrb r0, [r5, 0x5] + movs r1, 0 + bl sub_819746C +_081AE546: + ldr r0, =gUnknown_0203CE84 + ldrb r0, [r0, 0x5] + movs r1, 0x1 + bl CopyWindowToVram + b _081AE570 + .pool +_081AE558: + ldrb r0, [r5, 0x6] + movs r1, 0 + movs r2, 0 + bl sub_81AE6C8 + ldrb r0, [r5, 0x5] + bl RemoveWindow + movs r0, 0 + strb r0, [r5, 0x4] + ldr r0, [r5] + b _081AE574 +_081AE570: + movs r0, 0x1 + negs r0, r0 +_081AE574: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end DoMysteryGiftListMenu + + thumb_func_start ListMenuInit +@ u8 ListMenuInit(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow) +ListMenuInit: @ 81AE584 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r2, 16 + bl ListMenuInitInternal + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r5, 0x10] + bl PutWindowTilemap + ldrb r0, [r5, 0x10] + movs r1, 0x2 + bl CopyWindowToVram + adds r0, r4, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end ListMenuInit + + thumb_func_start Unused_ListMenuInit2 +@ u8 Unused_ListMenuInit2(struct ListMenuTemplate *listMenuTemplate, int a2, u16 scrollOffset, u16 selectedRow) +Unused_ListMenuInit2: @ 81AE5B0 + push {r4-r7,lr} + sub sp, 0x8 + adds r6, r0, 0 + adds r4, r1, 0 + adds r1, r2, 0 + adds r2, r3, 0 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r2, 16 + bl ListMenuInitInternal + lsls r0, 24 + lsrs r7, r0, 24 + ldrb r0, [r4, 0x4] + cmp r0, 0xFF + beq _081AE5F0 + adds r5, r4, 0 +_081AE5D4: + ldrb r0, [r6, 0x10] + ldrb r1, [r5] + ldrb r2, [r5, 0x1] + ldrb r3, [r5, 0x2] + ldrb r4, [r5, 0x3] + str r4, [sp] + ldrb r4, [r5, 0x4] + str r4, [sp, 0x4] + bl PutWindowRectTilemapOverridePalette + adds r5, 0x8 + ldrb r0, [r5, 0x4] + cmp r0, 0xFF + bne _081AE5D4 +_081AE5F0: + ldrb r0, [r6, 0x10] + movs r1, 0x2 + bl CopyWindowToVram + adds r0, r7, 0 + add sp, 0x8 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end Unused_ListMenuInit2 + + thumb_func_start ListMenuHandleInput +@ int ListMenuHandleInput(u8 taskId) +ListMenuHandleInput: @ 81AE604 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r3, r1, r0 + ldr r2, =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081AE638 + ldrh r0, [r3, 0x18] + ldrh r1, [r3, 0x1A] + adds r0, r1 + ldr r1, [r3] + lsls r0, 3 + adds r0, r1 + ldr r0, [r0, 0x4] + b _081AE6C2 + .pool +_081AE638: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081AE646 + movs r0, 0x2 + negs r0, r0 + b _081AE6C2 +_081AE646: + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081AE65A + adds r0, r3, 0 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0 + b _081AE6BA +_081AE65A: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081AE66A + adds r0, r3, 0 + movs r1, 0x1 + movs r2, 0x1 + b _081AE6B8 +_081AE66A: + ldrb r0, [r3, 0x16] + lsrs r0, 6 + cmp r0, 0x1 + beq _081AE680 + cmp r0, 0x1 + ble _081AE67A + cmp r0, 0x2 + beq _081AE68C +_081AE67A: + movs r2, 0 + movs r0, 0 + b _081AE6A0 +_081AE680: + movs r0, 0x20 + ands r0, r1 + lsls r0, 16 + lsrs r2, r0, 16 + movs r0, 0x10 + b _081AE69A +_081AE68C: + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + lsls r0, 16 + lsrs r2, r0, 16 + movs r0, 0x80 + lsls r0, 1 +_081AE69A: + ands r0, r1 + lsls r0, 16 + lsrs r0, 16 +_081AE6A0: + cmp r2, 0 + beq _081AE6AE + ldrb r2, [r3, 0xE] + adds r0, r3, 0 + movs r1, 0x1 + movs r3, 0 + b _081AE6BA +_081AE6AE: + cmp r0, 0 + beq _081AE6BE + ldrb r2, [r3, 0xE] + adds r0, r3, 0 + movs r1, 0x1 +_081AE6B8: + movs r3, 0x1 +_081AE6BA: + bl ListMenuChangeSelection +_081AE6BE: + movs r0, 0x1 + negs r0, r0 +_081AE6C2: + pop {r1} + bx r1 + thumb_func_end ListMenuHandleInput + + thumb_func_start sub_81AE6C8 +sub_81AE6C8: @ 81AE6C8 + push {r4,lr} + adds r3, r1, 0 + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r1, r0, r1 + cmp r3, 0 + beq _081AE6E4 + ldrh r0, [r1, 0x18] + strh r0, [r3] +_081AE6E4: + cmp r2, 0 + beq _081AE6EC + ldrh r0, [r1, 0x1A] + strh r0, [r2] +_081AE6EC: + ldrb r0, [r1, 0x1E] + cmp r0, 0xFF + beq _081AE6FC + ldrb r1, [r1, 0x17] + lsrs r1, 6 + subs r1, 0x2 + bl ListMenuRemoveCursorObject +_081AE6FC: + adds r0, r4, 0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AE6C8 + + thumb_func_start sub_81AE70C +sub_81AE70C: @ 81AE70C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, =gTasks + 0x8 + adds r4, r0 + ldrb r0, [r4, 0x10] + ldrb r2, [r4, 0x15] + lsls r2, 28 + lsrs r1, r2, 4 + orrs r1, r2 + lsrs r1, 24 + bl FillWindowPixelBuffer + ldrh r1, [r4, 0x18] + ldrh r3, [r4, 0xE] + adds r0, r4, 0 + movs r2, 0 + bl ListMenuPrintEntries + adds r0, r4, 0 + bl ListMenuDrawCursor + ldrb r0, [r4, 0x10] + movs r1, 0x2 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AE70C + + thumb_func_start sub_81AE750 +sub_81AE750: @ 81AE750 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, =gTasks + 0x8 + adds r4, r0 + lsrs r1, 20 + ldrb r6, [r4, 0x14] + movs r5, 0xF + adds r0, r5, 0 + ands r0, r6 + orrs r0, r1 + strb r0, [r4, 0x14] + ands r2, r5 + ldrb r1, [r4, 0x15] + movs r0, 0x10 + negs r0, r0 + ands r0, r1 + orrs r0, r2 + lsrs r3, 20 + ands r0, r5 + orrs r0, r3 + strb r0, [r4, 0x15] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AE750 + + thumb_func_start sub_81AE794 +sub_81AE794: @ 81AE794 + push {r4,r5,lr} + adds r3, r1, 0 + adds r5, r2, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, =gTasks + 0x8 + adds r4, r0 + ldrb r0, [r4, 0x10] + movs r1, 0x1 + adds r2, r3, 0 + bl SetWindowAttribute + ldrb r0, [r4, 0x10] + movs r1, 0x2 + adds r2, r5, 0 + bl SetWindowAttribute + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AE794 + + thumb_func_start sub_81AE7D0 +sub_81AE7D0: @ 81AE7D0 + push {r4-r7,lr} + sub sp, 0x20 + mov r12, r2 + ldr r5, [sp, 0x34] + lsls r3, 16 + lsrs r3, 16 + adds r4, r3, 0 + mov r3, sp + ldm r0!, {r2,r6,r7} + stm r3!, {r2,r6,r7} + ldm r0!, {r2,r6,r7} + stm r3!, {r2,r6,r7} + mov r0, sp + movs r3, 0 + strh r1, [r0, 0x18] + mov r1, r12 + strh r1, [r0, 0x1A] + strb r3, [r0, 0x1C] + strb r3, [r0, 0x1D] + cmp r4, 0x40 + bne _081AE804 + movs r1, 0 + movs r2, 0x1 + movs r3, 0 + bl ListMenuChangeSelection +_081AE804: + cmp r4, 0x80 + bne _081AE814 + mov r0, sp + movs r1, 0 + movs r2, 0x1 + movs r3, 0x1 + bl ListMenuChangeSelection +_081AE814: + cmp r5, 0 + beq _081AE81E + mov r0, sp + ldrh r0, [r0, 0x18] + strh r0, [r5] +_081AE81E: + ldr r2, [sp, 0x38] + cmp r2, 0 + beq _081AE82A + mov r0, sp + ldrh r0, [r0, 0x1A] + strh r0, [r2] +_081AE82A: + movs r0, 0x1 + negs r0, r0 + add sp, 0x20 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81AE7D0 + + thumb_func_start sub_81AE838 +sub_81AE838: @ 81AE838 + push {lr} + adds r2, r1, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r1, r0 + cmp r2, 0 + beq _081AE856 + ldrh r0, [r1, 0x1A] + ldrh r1, [r1, 0x18] + adds r0, r1 + strh r0, [r2] +_081AE856: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AE838 + + thumb_func_start get_coro_args_x18_x1A +get_coro_args_x18_x1A: @ 81AE860 + push {lr} + adds r3, r1, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r1, r0 + cmp r3, 0 + beq _081AE87A + ldrh r0, [r1, 0x18] + strh r0, [r3] +_081AE87A: + cmp r2, 0 + beq _081AE882 + ldrh r0, [r1, 0x1A] + strh r0, [r2] +_081AE882: + pop {r0} + bx r0 + .pool + thumb_func_end get_coro_args_x18_x1A + + thumb_func_start ListMenuGetYCoordForPrintingArrowCursor +@ u8 ListMenuGetYCoordForPrintingArrowCursor(u8 taskId) +ListMenuGetYCoordForPrintingArrowCursor: @ 81AE88C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, =gTasks + 0x8 + adds r4, r0 + ldrb r0, [r4, 0x17] + lsls r0, 26 + lsrs r0, 26 + movs r1, 0x1 + bl GetFontAttribute + ldrb r1, [r4, 0x16] + lsls r1, 26 + lsrs r1, 29 + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x1A] + adds r2, r1, 0 + muls r2, r0 + adds r1, r2, 0 + ldrb r0, [r4, 0x14] + lsls r0, 28 + lsrs r0, 28 + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end ListMenuGetYCoordForPrintingArrowCursor + + thumb_func_start ListMenuInitInternal +@ u8 ListMenuInitInternal(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow) +ListMenuInitInternal: @ 81AE8D4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r5, 16 + lsrs r5, 16 + lsls r6, 16 + lsrs r6, 16 + ldr r0, =ListMenuDummyTask + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r0, 2 + add r0, r8 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r7, r0, r1 + adds r0, r7, 0 + ldm r4!, {r1-r3} + stm r0!, {r1-r3} + ldm r4!, {r1-r3} + stm r0!, {r1-r3} + movs r1, 0 + strh r5, [r7, 0x18] + strh r6, [r7, 0x1A] + strb r1, [r7, 0x1C] + strb r1, [r7, 0x1D] + movs r0, 0xFF + strb r0, [r7, 0x1E] + strb r1, [r7, 0x1F] + ldr r3, =gUnknown_03006300 + ldrb r1, [r7, 0x14] + movs r5, 0xF + lsrs r1, 4 + ldrb r4, [r3] + movs r2, 0x10 + negs r2, r2 + adds r0, r2, 0 + ands r0, r4 + orrs r0, r1 + strb r0, [r3] + ldrb r1, [r7, 0x15] + lsls r1, 28 + lsrs r1, 24 + ands r0, r5 + orrs r0, r1 + strb r0, [r3] + ldrb r0, [r7, 0x15] + lsrs r0, 4 + ands r5, r0 + ldrb r0, [r3, 0x1] + ands r2, r0 + orrs r2, r5 + strb r2, [r3, 0x1] + ldrb r1, [r7, 0x16] + lsls r1, 29 + lsrs r1, 17 + ldr r0, [r3] + ldr r2, =0xfffc0fff + ands r0, r2 + orrs r0, r1 + str r0, [r3] + ldrb r0, [r7, 0x17] + lsls r0, 26 + lsrs r0, 26 + strb r0, [r3, 0x3] + ldrh r0, [r7, 0xC] + ldrh r1, [r7, 0xE] + cmp r0, r1 + bcs _081AE96C + strh r0, [r7, 0xE] +_081AE96C: + ldrb r0, [r7, 0x10] + ldrb r2, [r7, 0x15] + lsls r2, 28 + lsrs r1, r2, 4 + orrs r1, r2 + lsrs r1, 24 + bl FillWindowPixelBuffer + ldrh r1, [r7, 0x18] + ldrh r3, [r7, 0xE] + adds r0, r7, 0 + movs r2, 0 + bl ListMenuPrintEntries + adds r0, r7, 0 + bl ListMenuDrawCursor + adds r0, r7, 0 + movs r1, 0x1 + bl ListMenuCallSelectionChangedCallback + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end ListMenuInitInternal + + thumb_func_start ListMenuPrint +@ void ListMenuPrint(struct ListMenu *listMenu, u8 *str, u8 x, u8 y) +ListMenuPrint: @ 81AE9B4 + push {r4-r7,lr} + sub sp, 0x18 + adds r4, r0, 0 + adds r6, r1, 0 + lsls r2, 24 + lsrs r7, r2, 24 + lsls r3, 24 + lsrs r3, 24 + mov r12, r3 + ldr r5, =gUnknown_03006300 + ldrb r1, [r5, 0x3] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _081AEA20 + add r1, sp, 0x14 + ldr r2, [r5] + lsls r0, r2, 24 + lsrs r0, 28 + movs r3, 0 + strb r0, [r1] + lsls r0, r2, 28 + lsrs r0, 28 + strb r0, [r1, 0x1] + lsls r0, r2, 20 + lsrs r0, 28 + strb r0, [r1, 0x2] + ldrb r0, [r4, 0x10] + lsls r1, r2, 1 + lsrs r1, 25 + lsls r2, 14 + lsrs r2, 26 + str r2, [sp] + str r3, [sp, 0x4] + add r2, sp, 0x14 + str r2, [sp, 0x8] + movs r2, 0x1 + negs r2, r2 + str r2, [sp, 0xC] + str r6, [sp, 0x10] + adds r2, r7, 0 + mov r3, r12 + bl AddTextPrinterParametrized2 + ldrb r1, [r5, 0x3] + movs r0, 0x7F + ands r0, r1 + strb r0, [r5, 0x3] + b _081AEA5E + .pool +_081AEA20: + add r2, sp, 0x14 + ldrb r1, [r4, 0x15] + lsls r0, r1, 28 + lsrs r0, 28 + strb r0, [r2] + ldrb r0, [r4, 0x14] + lsrs r0, 4 + strb r0, [r2, 0x1] + adds r0, r2, 0 + lsls r1, 24 + lsrs r1, 28 + strb r1, [r0, 0x2] + ldrb r0, [r4, 0x10] + ldrb r1, [r4, 0x17] + lsls r1, 26 + lsrs r1, 26 + ldrb r2, [r4, 0x16] + lsls r2, 29 + lsrs r2, 29 + str r2, [sp] + str r3, [sp, 0x4] + add r2, sp, 0x14 + str r2, [sp, 0x8] + movs r2, 0x1 + negs r2, r2 + str r2, [sp, 0xC] + str r6, [sp, 0x10] + adds r2, r7, 0 + mov r3, r12 + bl AddTextPrinterParametrized2 +_081AEA5E: + add sp, 0x18 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end ListMenuPrint + + thumb_func_start ListMenuPrintEntries +@ void ListMenuPrintEntries(struct ListMenu *listMenu, u16 startIndex, u16 yOffset, u16 count) +ListMenuPrintEntries: @ 81AEA68 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r4, r0, 0 + lsls r1, 16 + lsrs r1, 16 + mov r9, r1 + lsls r2, 16 + lsrs r2, 16 + str r2, [sp] + lsls r3, 16 + lsrs r3, 16 + mov r10, r3 + ldrb r0, [r4, 0x17] + lsls r0, 26 + lsrs r0, 26 + movs r1, 0x1 + bl GetFontAttribute + ldrb r1, [r4, 0x16] + lsls r1, 26 + lsrs r1, 29 + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + movs r0, 0 + mov r8, r0 + cmp r8, r10 + bge _081AEB10 +_081AEAAA: + ldr r0, [r4] + mov r2, r9 + lsls r1, r2, 3 + adds r0, r1, r0 + ldr r2, [r0, 0x4] + movs r0, 0x3 + negs r0, r0 + adds r5, r1, 0 + cmp r2, r0 + beq _081AEAC2 + ldrb r6, [r4, 0x12] + b _081AEAC4 +_081AEAC2: + ldrb r6, [r4, 0x11] +_081AEAC4: + ldr r0, [sp] + add r0, r8 + ldr r2, [sp, 0x4] + adds r1, r0, 0 + muls r1, r2 + ldrb r0, [r4, 0x14] + lsls r0, 28 + lsrs r0, 28 + adds r0, r1 + lsls r0, 24 + lsrs r2, r0, 24 + adds r7, r2, 0 + ldr r3, [r4, 0x8] + cmp r3, 0 + beq _081AEAEE + ldrb r0, [r4, 0x10] + ldr r1, [r4] + adds r1, r5, r1 + ldr r1, [r1, 0x4] + bl _call_via_r3 +_081AEAEE: + ldr r0, [r4] + adds r0, r5, r0 + ldr r1, [r0] + adds r0, r4, 0 + adds r2, r6, 0 + adds r3, r7, 0 + bl ListMenuPrint + mov r0, r9 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + movs r0, 0x1 + add r8, r0 + cmp r8, r10 + blt _081AEAAA +_081AEB10: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end ListMenuPrintEntries + + thumb_func_start ListMenuDrawCursor +@ void ListMenuDrawCursor(struct ListMenu *listMenu) +ListMenuDrawCursor: @ 81AEB20 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + ldrb r0, [r6, 0x17] + lsls r0, 26 + lsrs r0, 26 + movs r1, 0x1 + bl GetFontAttribute + ldrb r1, [r6, 0x16] + lsls r1, 26 + lsrs r1, 29 + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r6, 0x13] + mov r8, r1 + ldrh r1, [r6, 0x1A] + muls r1, r0 + ldrb r0, [r6, 0x14] + lsls r0, 28 + lsrs r0, 28 + adds r0, r1 + lsls r0, 24 + lsrs r7, r0, 24 + ldrb r0, [r6, 0x17] + lsrs r0, 6 + cmp r0, 0x1 + beq _081AEC0C + cmp r0, 0x1 + bgt _081AEB66 + cmp r0, 0 + beq _081AEB70 + b _081AEC0C +_081AEB66: + cmp r0, 0x2 + beq _081AEB84 + cmp r0, 0x3 + beq _081AEBCC + b _081AEC0C +_081AEB70: + ldr r1, =gUnknown_085E8D60 + adds r0, r6, 0 + mov r2, r8 + adds r3, r7, 0 + bl ListMenuPrint + b _081AEC0C + .pool +_081AEB84: + ldrb r0, [r6, 0x1E] + cmp r0, 0xFF + bne _081AEB94 + adds r0, r6, 0 + movs r1, 0 + bl ListMenuAddCursorObject + strb r0, [r6, 0x1E] +_081AEB94: + ldrb r5, [r6, 0x1E] + ldrb r0, [r6, 0x10] + movs r1, 0x1 + bl GetWindowAttribute + adds r4, r0, 0 + lsls r4, 19 + ldr r0, =0xffff0000 + adds r4, r0 + lsrs r4, 16 + ldrb r0, [r6, 0x10] + movs r1, 0x2 + bl GetWindowAttribute + adds r2, r0, 0 + lsls r2, 3 + adds r2, r7 + subs r2, 0x1 + lsls r2, 16 + lsrs r2, 16 + adds r0, r5, 0 + adds r1, r4, 0 + movs r3, 0 + bl ListMenuUpdateCursorObject + b _081AEC0C + .pool +_081AEBCC: + ldrb r0, [r6, 0x1E] + cmp r0, 0xFF + bne _081AEBDC + adds r0, r6, 0 + movs r1, 0x1 + bl ListMenuAddCursorObject + strb r0, [r6, 0x1E] +_081AEBDC: + ldrb r5, [r6, 0x1E] + ldrb r0, [r6, 0x10] + movs r1, 0x1 + bl GetWindowAttribute + adds r4, r0, 0 + lsls r4, 3 + add r4, r8 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r6, 0x10] + movs r1, 0x2 + bl GetWindowAttribute + adds r2, r0, 0 + lsls r2, 3 + adds r2, r7 + lsls r2, 16 + lsrs r2, 16 + adds r0, r5, 0 + adds r1, r4, 0 + movs r3, 0x1 + bl ListMenuUpdateCursorObject +_081AEC0C: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end ListMenuDrawCursor + + thumb_func_start ListMenuAddCursorObject +ListMenuAddCursorObject: @ 81AEC18 + push {r4,r5,lr} + sub sp, 0xC + adds r4, r0, 0 + adds r5, r1, 0 + mov r1, sp + movs r0, 0 + strb r0, [r1] + movs r0, 0xA0 + strb r0, [r1, 0x1] + ldrb r0, [r4, 0x10] + movs r1, 0x3 + bl GetWindowAttribute + mov r1, sp + lsls r0, 3 + adds r0, 0x2 + strh r0, [r1, 0x2] + ldrb r0, [r4, 0x17] + lsls r0, 26 + lsrs r0, 26 + movs r1, 0x1 + bl GetFontAttribute + mov r1, sp + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x2 + strh r0, [r1, 0x4] + movs r0, 0x80 + lsls r0, 7 + strh r0, [r1, 0x6] + ldr r0, =0x0000ffff + strh r0, [r1, 0x8] + movs r0, 0xF + strb r0, [r1, 0xA] + mov r0, sp + adds r1, r5, 0 + bl ListMenuAddCursorObjectInternal + lsls r0, 24 + lsrs r0, 24 + add sp, 0xC + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end ListMenuAddCursorObject + + thumb_func_start ListMenuErasePrintedCursor +ListMenuErasePrintedCursor: @ 81AEC78 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + adds r7, r0, 0 + lsls r1, 16 + lsrs r1, 16 + mov r8, r1 + ldrb r1, [r7, 0x17] + lsrs r0, r1, 6 + cmp r0, 0 + bne _081AECF4 + lsls r0, r1, 26 + lsrs r0, 26 + movs r1, 0x1 + bl GetFontAttribute + adds r4, r0, 0 + ldrb r0, [r7, 0x16] + lsls r0, 26 + lsrs r0, 29 + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r7, 0x17] + lsls r0, 26 + lsrs r0, 26 + movs r1, 0 + bl GetMenuCursorDimensionByFont + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldrb r0, [r7, 0x17] + lsls r0, 26 + lsrs r0, 26 + movs r1, 0x1 + bl GetMenuCursorDimensionByFont + lsls r0, 24 + lsrs r0, 24 + ldrb r6, [r7, 0x10] + ldrb r2, [r7, 0x15] + lsls r2, 28 + lsrs r1, r2, 4 + orrs r1, r2 + lsrs r1, 24 + ldrb r2, [r7, 0x13] + mov r3, r8 + muls r3, r4 + adds r4, r3, 0 + ldrb r3, [r7, 0x14] + lsls r3, 28 + lsrs r3, 28 + adds r3, r4 + lsls r3, 16 + lsrs r3, 16 + str r5, [sp] + str r0, [sp, 0x4] + adds r0, r6, 0 + bl FillWindowPixelRect +_081AECF4: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end ListMenuErasePrintedCursor + + thumb_func_start ListMenuUpdateSelectedRowIndexAndScrollOffset +@ u8 ListMenuUpdateSelectedRowIndexAndScrollOffset(int, bool8 movingDown) +ListMenuUpdateSelectedRowIndexAndScrollOffset: @ 81AED00 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r1, 24 + ldrh r3, [r4, 0x1A] + ldrh r5, [r4, 0x18] + cmp r1, 0 + bne _081AED74 + ldrh r0, [r4, 0xE] + cmp r0, 0x1 + bne _081AED18 + movs r2, 0 + b _081AED2A +_081AED18: + ldrh r0, [r4, 0xE] + lsrs r2, r0, 1 + movs r1, 0x1 + ands r1, r0 + adds r2, r1 + subs r0, r2 + subs r0, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 +_081AED2A: + cmp r5, 0 + bne _081AED50 + cmp r3, 0 + beq _081AEDB6 + ldr r1, [r4] + movs r2, 0x3 + negs r2, r2 +_081AED38: + subs r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + adds r0, r5, r3 + lsls r0, 3 + adds r0, r1 + ldr r0, [r0, 0x4] + cmp r0, r2 + bne _081AEDBA + cmp r3, 0 + bne _081AED38 + b _081AEDB6 +_081AED50: + cmp r3, r2 + bls _081AED70 + ldr r1, [r4] + movs r6, 0x3 + negs r6, r6 +_081AED5A: + subs r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + adds r0, r5, r3 + lsls r0, 3 + adds r0, r1 + ldr r0, [r0, 0x4] + cmp r0, r6 + bne _081AEDBA + cmp r3, r2 + bhi _081AED5A +_081AED70: + subs r0, r5, 0x1 + b _081AEDE2 +_081AED74: + ldrh r0, [r4, 0xE] + cmp r0, 0x1 + bne _081AED7E + movs r2, 0 + b _081AED88 +_081AED7E: + ldrh r0, [r4, 0xE] + lsrs r2, r0, 1 + movs r1, 0x1 + ands r1, r0 + adds r2, r1 +_081AED88: + adds r1, r0, 0 + ldrh r0, [r4, 0xC] + subs r0, r1 + cmp r5, r0 + bne _081AEDC0 + subs r0, r1, 0x1 + cmp r3, r0 + bge _081AEDB6 + ldr r2, [r4] + movs r6, 0x3 + negs r6, r6 + adds r1, r0, 0 +_081AEDA0: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + adds r0, r5, r3 + lsls r0, 3 + adds r0, r2 + ldr r0, [r0, 0x4] + cmp r0, r6 + bne _081AEDBA + cmp r3, r1 + blt _081AEDA0 +_081AEDB6: + movs r0, 0 + b _081AEDE8 +_081AEDBA: + strh r3, [r4, 0x1A] + movs r0, 0x1 + b _081AEDE8 +_081AEDC0: + cmp r3, r2 + bcs _081AEDE0 + ldr r1, [r4] + movs r6, 0x3 + negs r6, r6 +_081AEDCA: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + adds r0, r5, r3 + lsls r0, 3 + adds r0, r1 + ldr r0, [r0, 0x4] + cmp r0, r6 + bne _081AEDBA + cmp r3, r2 + bcc _081AEDCA +_081AEDE0: + adds r0, r5, 0x1 +_081AEDE2: + strh r2, [r4, 0x1A] + strh r0, [r4, 0x18] + movs r0, 0x2 +_081AEDE8: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end ListMenuUpdateSelectedRowIndexAndScrollOffset + + thumb_func_start ListMenuScroll +@ void ListMenuScroll(struct ListMenu *listMenu, int a2, bool8 movingDown) +ListMenuScroll: @ 81AEDF0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + adds r6, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + adds r7, r5, 0 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + ldrh r0, [r6, 0xE] + cmp r5, r0 + bcc _081AEE2A + ldrb r0, [r6, 0x10] + ldrb r2, [r6, 0x15] + lsls r2, 28 + lsrs r1, r2, 4 + orrs r1, r2 + lsrs r1, 24 + bl FillWindowPixelBuffer + ldrh r1, [r6, 0x18] + ldrh r3, [r6, 0xE] + adds r0, r6, 0 + movs r2, 0 + bl ListMenuPrintEntries + b _081AEF1A +_081AEE2A: + ldrb r0, [r6, 0x17] + lsls r0, 26 + lsrs r0, 26 + movs r1, 0x1 + bl GetFontAttribute + ldrb r1, [r6, 0x16] + lsls r1, 26 + lsrs r1, 29 + adds r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + mov r1, r8 + cmp r1, 0 + bne _081AEEBC + ldrb r0, [r6, 0x10] + adds r2, r5, 0 + muls r2, r4 + lsls r2, 24 + lsrs r2, 24 + ldrb r1, [r6, 0x15] + lsls r1, 28 + lsrs r3, r1, 4 + orrs r3, r1 + lsrs r3, 24 + movs r1, 0x1 + bl ScrollWindow + ldrh r1, [r6, 0x18] + adds r0, r6, 0 + movs r2, 0 + adds r3, r5, 0 + bl ListMenuPrintEntries + ldrh r0, [r6, 0xE] + adds r1, r0, 0 + muls r1, r4 + adds r0, r1, 0 + ldrb r4, [r6, 0x14] + lsls r4, 28 + lsrs r4, 28 + adds r4, r0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r6, 0x10] + movs r1, 0x3 + bl GetWindowAttribute + adds r5, r0, 0 + lsls r5, 19 + lsrs r5, 16 + ldrb r0, [r6, 0x10] + movs r1, 0x4 + bl GetWindowAttribute + lsls r0, 3 + subs r0, r4 + lsls r0, 16 + lsrs r0, 16 + ldrb r3, [r6, 0x10] + ldrb r2, [r6, 0x15] + lsls r2, 28 + lsrs r1, r2, 4 + orrs r1, r2 + lsrs r1, 24 + str r5, [sp] + str r0, [sp, 0x4] + adds r0, r3, 0 + movs r2, 0 + adds r3, r4, 0 + bl FillWindowPixelRect + b _081AEF1A +_081AEEBC: + ldrb r0, [r6, 0x10] + adds r2, r7, 0 + muls r2, r4 + lsls r2, 24 + lsrs r2, 24 + ldrb r1, [r6, 0x15] + lsls r1, 28 + lsrs r3, r1, 4 + orrs r3, r1 + lsrs r3, 24 + movs r1, 0 + bl ScrollWindow + ldrh r2, [r6, 0xE] + subs r2, r7 + ldrh r1, [r6, 0x18] + adds r1, r2 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r2, 16 + adds r0, r6, 0 + adds r3, r7, 0 + bl ListMenuPrintEntries + ldrb r0, [r6, 0x10] + movs r1, 0x3 + bl GetWindowAttribute + lsls r0, 19 + lsrs r0, 16 + ldrb r3, [r6, 0x10] + ldrb r2, [r6, 0x15] + lsls r2, 28 + lsrs r1, r2, 4 + orrs r1, r2 + lsrs r1, 24 + str r0, [sp] + ldrb r0, [r6, 0x14] + lsls r0, 28 + lsrs r0, 28 + str r0, [sp, 0x4] + adds r0, r3, 0 + movs r2, 0 + movs r3, 0 + bl FillWindowPixelRect +_081AEF1A: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end ListMenuScroll + + thumb_func_start ListMenuChangeSelection +@ bool8 ListMenuChangeSelection(struct ListMenu *listMenu, bool8 updateCursorAndCallCallback, u8 count, bool8 movingDown) +ListMenuChangeSelection: @ 81AEF28 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r4, r0, 0 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp] + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + lsls r3, 24 + lsrs r3, 24 + mov r9, r3 + ldrh r0, [r4, 0x1A] + mov r10, r0 + movs r7, 0 + movs r5, 0 + movs r0, 0 + cmp r7, r8 + bcs _081AEF90 +_081AEF56: + adds r6, r0, 0x1 + b _081AEF76 +_081AEF5A: + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + ldrh r0, [r4, 0x18] + ldrh r1, [r4, 0x1A] + adds r0, r1 + ldr r1, [r4] + lsls r0, 3 + adds r0, r1 + ldr r1, [r0, 0x4] + movs r0, 0x3 + negs r0, r0 + cmp r1, r0 + bne _081AEF88 +_081AEF76: + adds r0, r4, 0 + mov r1, r9 + bl ListMenuUpdateSelectedRowIndexAndScrollOffset + lsls r0, 24 + lsrs r0, 24 + orrs r5, r0 + cmp r0, 0x2 + beq _081AEF5A +_081AEF88: + lsls r0, r6, 24 + lsrs r0, 24 + cmp r0, r8 + bcc _081AEF56 +_081AEF90: + ldr r0, [sp] + cmp r0, 0 + beq _081AEFEE + cmp r5, 0x1 + beq _081AEFA6 + cmp r5, 0x1 + ble _081AEFA2 + cmp r5, 0x3 + ble _081AEFC6 +_081AEFA2: + movs r0, 0x1 + b _081AEFF0 +_081AEFA6: + adds r0, r4, 0 + mov r1, r10 + bl ListMenuErasePrintedCursor + adds r0, r4, 0 + bl ListMenuDrawCursor + adds r0, r4, 0 + movs r1, 0 + bl ListMenuCallSelectionChangedCallback + ldrb r0, [r4, 0x10] + movs r1, 0x2 + bl CopyWindowToVram + b _081AEFEE +_081AEFC6: + adds r0, r4, 0 + mov r1, r10 + bl ListMenuErasePrintedCursor + adds r0, r4, 0 + adds r1, r7, 0 + mov r2, r9 + bl ListMenuScroll + adds r0, r4, 0 + bl ListMenuDrawCursor + adds r0, r4, 0 + movs r1, 0 + bl ListMenuCallSelectionChangedCallback + ldrb r0, [r4, 0x10] + movs r1, 0x2 + bl CopyWindowToVram +_081AEFEE: + movs r0, 0 +_081AEFF0: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end ListMenuChangeSelection + + thumb_func_start ListMenuCallSelectionChangedCallback +@ void ListMenuCallSelectionChangedCallback(struct ListMenu *listMenu, u8 a2) +ListMenuCallSelectionChangedCallback: @ 81AF000 + push {r4,lr} + adds r2, r0, 0 + lsls r1, 24 + lsrs r4, r1, 24 + ldr r3, [r2, 0x4] + cmp r3, 0 + beq _081AF022 + ldrh r0, [r2, 0x18] + ldrh r1, [r2, 0x1A] + adds r0, r1 + ldr r1, [r2] + lsls r0, 3 + adds r0, r1 + ldr r0, [r0, 0x4] + adds r1, r4, 0 + bl _call_via_r3 +_081AF022: + pop {r4} + pop {r0} + bx r0 + thumb_func_end ListMenuCallSelectionChangedCallback + + thumb_func_start sub_81AF028 +sub_81AF028: @ 81AF028 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsls r2, 24 + lsrs r2, 24 + ldr r6, =gUnknown_03006300 + movs r5, 0xF + ands r0, r5 + ldrb r3, [r6] + mov r8, r3 + movs r4, 0x10 + negs r4, r4 + adds r3, r4, 0 + mov r7, r8 + ands r3, r7 + orrs r3, r0 + lsrs r1, 20 + ands r3, r5 + orrs r3, r1 + strb r3, [r6] + ands r2, r5 + ldrb r0, [r6, 0x1] + ands r4, r0 + orrs r4, r2 + strb r4, [r6, 0x1] + ldrb r0, [r6, 0x3] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r6, 0x3] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AF028 + + thumb_func_start sub_81AF078 +sub_81AF078: @ 81AF078 + push {lr} + lsls r1, 24 + cmp r1, 0 + bne _081AF086 + movs r0, 0x5 + bl PlaySE +_081AF086: + pop {r0} + bx r0 + thumb_func_end sub_81AF078 + + thumb_func_start sub_81AF08C +sub_81AF08C: @ 81AF08C + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r3, r1, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r2, r1, r0 + cmp r3, 0x10 + bhi _081AF154 + lsls r0, r3, 2 + ldr r1, =_081AF0B8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081AF0B8: + .4byte _081AF0FC + .4byte _081AF0FC + .4byte _081AF100 + .4byte _081AF104 + .4byte _081AF108 + .4byte _081AF10C + .4byte _081AF110 + .4byte _081AF114 + .4byte _081AF118 + .4byte _081AF11C + .4byte _081AF122 + .4byte _081AF12A + .4byte _081AF130 + .4byte _081AF138 + .4byte _081AF140 + .4byte _081AF146 + .4byte _081AF14E +_081AF0FC: + ldr r0, [r2, 0x4] + b _081AF158 +_081AF100: + ldrh r0, [r2, 0xC] + b _081AF158 +_081AF104: + ldrh r0, [r2, 0xE] + b _081AF158 +_081AF108: + ldrb r0, [r2, 0x10] + b _081AF158 +_081AF10C: + ldrb r0, [r2, 0x11] + b _081AF158 +_081AF110: + ldrb r0, [r2, 0x12] + b _081AF158 +_081AF114: + ldrb r0, [r2, 0x13] + b _081AF158 +_081AF118: + ldrb r0, [r2, 0x14] + b _081AF124 +_081AF11C: + ldrb r0, [r2, 0x14] + lsrs r0, 4 + b _081AF158 +_081AF122: + ldrb r0, [r2, 0x15] +_081AF124: + lsls r0, 28 + lsrs r0, 28 + b _081AF158 +_081AF12A: + ldrb r0, [r2, 0x15] + lsrs r0, 4 + b _081AF158 +_081AF130: + ldrb r0, [r2, 0x16] + lsls r0, 29 + lsrs r0, 29 + b _081AF158 +_081AF138: + ldrb r0, [r2, 0x16] + lsls r0, 26 + lsrs r0, 29 + b _081AF158 +_081AF140: + ldrb r0, [r2, 0x16] + lsrs r0, 6 + b _081AF158 +_081AF146: + ldrb r0, [r2, 0x17] + lsls r0, 26 + lsrs r0, 26 + b _081AF158 +_081AF14E: + ldrb r0, [r2, 0x17] + lsrs r0, 6 + b _081AF158 +_081AF154: + movs r0, 0x1 + negs r0, r0 +_081AF158: + pop {r1} + bx r1 + thumb_func_end sub_81AF08C + + thumb_func_start sub_81AF15C +sub_81AF15C: @ 81AF15C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r3, r1, r0 + cmp r4, 0x10 + bhi _081AF25C + lsls r0, r4, 2 + ldr r1, =_081AF188 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081AF188: + .4byte _081AF1CC + .4byte _081AF1CC + .4byte _081AF1D0 + .4byte _081AF1D4 + .4byte _081AF1D8 + .4byte _081AF1DC + .4byte _081AF1E0 + .4byte _081AF1E4 + .4byte _081AF1E8 + .4byte _081AF1F4 + .4byte _081AF202 + .4byte _081AF20E + .4byte _081AF21C + .4byte _081AF228 + .4byte _081AF236 + .4byte _081AF244 + .4byte _081AF250 +_081AF1CC: + str r2, [r3, 0x4] + b _081AF25C +_081AF1D0: + strh r2, [r3, 0xC] + b _081AF25C +_081AF1D4: + strh r2, [r3, 0xE] + b _081AF25C +_081AF1D8: + strb r2, [r3, 0x10] + b _081AF25C +_081AF1DC: + strb r2, [r3, 0x11] + b _081AF25C +_081AF1E0: + strb r2, [r3, 0x12] + b _081AF25C +_081AF1E4: + strb r2, [r3, 0x13] + b _081AF25C +_081AF1E8: + movs r0, 0xF + ands r2, r0 + ldrb r1, [r3, 0x14] + movs r0, 0x10 + negs r0, r0 + b _081AF1FA +_081AF1F4: + lsls r2, 4 + ldrb r1, [r3, 0x14] + movs r0, 0xF +_081AF1FA: + ands r0, r1 + orrs r0, r2 + strb r0, [r3, 0x14] + b _081AF25C +_081AF202: + movs r0, 0xF + ands r2, r0 + ldrb r1, [r3, 0x15] + movs r0, 0x10 + negs r0, r0 + b _081AF214 +_081AF20E: + lsls r2, 4 + ldrb r1, [r3, 0x15] + movs r0, 0xF +_081AF214: + ands r0, r1 + orrs r0, r2 + strb r0, [r3, 0x15] + b _081AF25C +_081AF21C: + movs r0, 0x7 + ands r2, r0 + ldrb r1, [r3, 0x16] + movs r0, 0x8 + negs r0, r0 + b _081AF23C +_081AF228: + movs r0, 0x7 + ands r2, r0 + lsls r2, 3 + ldrb r1, [r3, 0x16] + movs r0, 0x39 + negs r0, r0 + b _081AF23C +_081AF236: + lsls r2, 6 + ldrb r1, [r3, 0x16] + movs r0, 0x3F +_081AF23C: + ands r0, r1 + orrs r0, r2 + strb r0, [r3, 0x16] + b _081AF25C +_081AF244: + movs r0, 0x3F + ands r2, r0 + ldrb r1, [r3, 0x17] + movs r0, 0x40 + negs r0, r0 + b _081AF256 +_081AF250: + lsls r2, 6 + ldrb r1, [r3, 0x17] + movs r0, 0x3F +_081AF256: + ands r0, r1 + orrs r0, r2 + strb r0, [r3, 0x17] +_081AF25C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81AF15C + + thumb_func_start sub_81AF264 +sub_81AF264: @ 81AF264 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _081AF276 + cmp r0, 0x1 + beq _081AF28A + b _081AF2E4 +_081AF276: + ldrh r1, [r4, 0x30] + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _081AF2E4 +_081AF28A: + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _081AF29A + cmp r0, 0x1 + beq _081AF2C0 + ldrh r2, [r4, 0x38] + b _081AF2DE +_081AF29A: + movs r0, 0x34 + ldrsh r3, [r4, r0] + ldr r1, =gSineTable + ldrh r2, [r4, 0x38] + lsls r0, r2, 24 + lsrs r0, 23 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + muls r0, r3 + cmp r0, 0 + bge _081AF2B4 + adds r0, 0xFF +_081AF2B4: + asrs r0, 8 + strh r0, [r4, 0x24] + b _081AF2DE + .pool +_081AF2C0: + movs r0, 0x34 + ldrsh r3, [r4, r0] + ldr r1, =gSineTable + ldrh r2, [r4, 0x38] + lsls r0, r2, 24 + lsrs r0, 23 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + muls r0, r3 + cmp r0, 0 + bge _081AF2DA + adds r0, 0xFF +_081AF2DA: + asrs r0, 8 + strh r0, [r4, 0x26] +_081AF2DE: + ldrh r0, [r4, 0x36] + adds r0, r2, r0 + strh r0, [r4, 0x38] +_081AF2E4: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AF264 + + thumb_func_start AddScrollIndicatorArrowObject +AddScrollIndicatorArrowObject: @ 81AF2F0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x18 + adds r6, r0, 0 + ldr r5, [sp, 0x30] + lsls r6, 24 + lsrs r6, 24 + mov r8, r6 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r5, 16 + lsrs r5, 16 + mov r12, r5 + mov r4, sp + ldr r0, =gUnknown_08614244 + ldm r0!, {r5-r7} + stm r4!, {r5-r7} + ldm r0!, {r5-r7} + stm r4!, {r5-r7} + mov r0, sp + movs r4, 0 + strh r3, [r0] + mov r3, r12 + strh r3, [r0, 0x2] + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gSprites + lsls r3, r0, 4 + adds r3, r0 + lsls r3, 2 + adds r3, r1 + adds r5, r3, 0 + adds r5, 0x3E + ldrb r1, [r5] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r5] + strh r4, [r3, 0x2E] + ldr r1, =gUnknown_086141FC + mov r5, r8 + lsls r6, r5, 2 + adds r6, r1 + ldrb r2, [r6] + lsls r1, r2, 28 + lsrs r1, 28 + strh r1, [r3, 0x30] + lsrs r2, 4 + strh r2, [r3, 0x32] + ldrb r1, [r6, 0x1] + strh r1, [r3, 0x34] + ldrh r1, [r6, 0x2] + strh r1, [r3, 0x36] + strh r4, [r3, 0x38] + add sp, 0x18 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end AddScrollIndicatorArrowObject + + thumb_func_start AddScrollIndicatorArrowPair +AddScrollIndicatorArrowPair: @ 81AF380 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + adds r6, r0, 0 + mov r9, r1 + ldr r0, =gUnknown_086142C8 + str r0, [sp, 0x4] + ldr r5, =0xffff0000 + ldr r0, [sp, 0x8] + ands r0, r5 + movs r1, 0x80 + lsls r1, 1 + orrs r0, r1 + ldrh r1, [r6, 0xA] + lsls r1, 16 + ldr r4, =0x0000ffff + ands r0, r4 + orrs r0, r1 + str r0, [sp, 0x8] + add r0, sp, 0x4 + bl LoadCompressedObjectPic + ldrh r2, [r6, 0xC] + cmp r2, r4 + bne _081AF3DC + ldr r0, =gUnknown_086142A8 + ldrb r1, [r6, 0xE] + lsls r1, 20 + movs r2, 0x80 + lsls r2, 17 + adds r1, r2 + lsrs r1, 16 + movs r2, 0x20 + bl LoadPalette + b _081AF3EE + .pool +_081AF3DC: + ldr r0, =gUnknown_086142A8 + str r0, [sp, 0xC] + add r0, sp, 0xC + ldr r1, [r0, 0x4] + ands r1, r5 + orrs r1, r2 + str r1, [r0, 0x4] + bl LoadSpritePalette +_081AF3EE: + ldr r0, =Task_ScrollIndicatorArrowPair + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r0, 2 + add r0, r8 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r7, r0, r1 + movs r0, 0 + strb r0, [r7] + mov r0, r9 + str r0, [r7, 0x4] + ldrh r0, [r6, 0x6] + strh r0, [r7, 0x8] + ldrh r0, [r6, 0x8] + strh r0, [r7, 0xA] + ldrh r0, [r6, 0xA] + strh r0, [r7, 0xE] + ldrh r0, [r6, 0xC] + strh r0, [r7, 0x10] + ldrb r0, [r6] + ldrb r1, [r6, 0x1] + ldrb r2, [r6, 0x2] + ldrh r3, [r6, 0xA] + ldrh r4, [r6, 0xC] + str r4, [sp] + bl AddScrollIndicatorArrowObject + strb r0, [r7, 0xC] + ldrb r0, [r6, 0x3] + ldrb r1, [r6, 0x4] + ldrb r2, [r6, 0x5] + ldrh r3, [r6, 0xA] + ldrh r4, [r6, 0xC] + str r4, [sp] + bl AddScrollIndicatorArrowObject + strb r0, [r7, 0xD] + ldrh r1, [r6, 0xC] + ldr r0, =0x0000ffff + cmp r1, r0 + bne _081AF47C + ldr r5, =gSprites + ldrb r0, [r7, 0xC] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r3, [r6, 0xE] + lsls r3, 4 + ldrb r4, [r1, 0x5] + movs r2, 0xF + adds r0, r2, 0 + ands r0, r4 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r1, [r7, 0xD] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r6, 0xE] + lsls r1, 4 + ldrb r3, [r0, 0x5] + ands r2, r3 + orrs r2, r1 + strb r2, [r0, 0x5] +_081AF47C: + mov r0, r8 + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end AddScrollIndicatorArrowPair + + thumb_func_start AddScrollIndicatorArrowPairParametrized +AddScrollIndicatorArrowPairParametrized: @ 81AF4A0 + push {r4,lr} + adds r4, r1, 0 + subs r0, 0x2 + cmp r0, 0x1 + bhi _081AF4C4 + ldr r0, =gUnknown_0203CE8C + movs r1, 0x2 + strb r1, [r0] + strb r4, [r0, 0x1] + strb r2, [r0, 0x2] + movs r1, 0x3 + strb r1, [r0, 0x3] + strb r4, [r0, 0x4] + strb r3, [r0, 0x5] + b _081AF4D6 + .pool +_081AF4C4: + ldr r0, =gUnknown_0203CE8C + movs r1, 0 + strb r1, [r0] + strb r2, [r0, 0x1] + strb r4, [r0, 0x2] + movs r1, 0x1 + strb r1, [r0, 0x3] + strb r3, [r0, 0x4] + strb r4, [r0, 0x5] +_081AF4D6: + adds r2, r0, 0 + movs r1, 0 + movs r0, 0 + strh r0, [r2, 0x6] + ldr r0, [sp, 0x8] + strh r0, [r2, 0x8] + ldr r0, [sp, 0xC] + strh r0, [r2, 0xA] + ldr r0, [sp, 0x10] + strh r0, [r2, 0xC] + strb r1, [r2, 0xE] + adds r0, r2, 0 + ldr r1, [sp, 0x14] + bl AddScrollIndicatorArrowPair + lsls r0, 24 + lsrs r0, 24 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end AddScrollIndicatorArrowPairParametrized + + thumb_func_start Task_ScrollIndicatorArrowPair +Task_ScrollIndicatorArrowPair: @ 81AF504 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r4, r1, r0 + ldr r0, [r4, 0x4] + ldrh r5, [r0] + ldrh r0, [r4, 0x8] + cmp r5, r0 + bne _081AF548 + ldr r0, =0x0000ffff + cmp r5, r0 + beq _081AF548 + ldr r3, =gSprites + ldrb r1, [r4, 0xC] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + b _081AF55E + .pool +_081AF548: + ldr r3, =gSprites + ldrb r1, [r4, 0xC] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 +_081AF55E: + strb r1, [r0] + ldrh r0, [r4, 0xA] + cmp r5, r0 + bne _081AF580 + ldrb r1, [r4, 0xD] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + b _081AF594 + .pool +_081AF580: + ldrb r1, [r4, 0xD] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 +_081AF594: + strb r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end Task_ScrollIndicatorArrowPair + + thumb_func_start Task_ScrollIndicatorArrowPairOnMainMenu +Task_ScrollIndicatorArrowPairOnMainMenu: @ 81AF59C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r4, r1, r0 + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _081AF5E8 + ldr r3, =gSprites + ldrb r1, [r4, 0xC] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldrb r1, [r4, 0xD] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + b _081AF612 + .pool +_081AF5E8: + ldr r3, =gSprites + ldrb r1, [r4, 0xC] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4, 0xD] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 +_081AF612: + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end Task_ScrollIndicatorArrowPairOnMainMenu + + thumb_func_start RemoveScrollIndicatorArrowPair +RemoveScrollIndicatorArrowPair: @ 81AF620 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r5, r0, r1 + ldrh r0, [r5, 0xE] + ldr r4, =0x0000ffff + cmp r0, r4 + beq _081AF63E + bl FreeSpriteTilesByTag +_081AF63E: + ldrh r0, [r5, 0x10] + cmp r0, r4 + beq _081AF648 + bl FreeSpritePaletteByTag +_081AF648: + ldrb r1, [r5, 0xC] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + bl DestroySprite + ldrb r1, [r5, 0xD] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + adds r0, r6, 0 + bl DestroyTask + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end RemoveScrollIndicatorArrowPair + + thumb_func_start ListMenuAddCursorObjectInternal +ListMenuAddCursorObjectInternal: @ 81AF680 + push {lr} + cmp r1, 0 + beq _081AF68A + cmp r1, 0x1 + beq _081AF690 +_081AF68A: + bl ListMenuAddRedOutlineCursorObject + b _081AF694 +_081AF690: + bl ListMenuAddRedArrowCursorObject +_081AF694: + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end ListMenuAddCursorObjectInternal + + thumb_func_start ListMenuUpdateCursorObject +@ void ListMenuUpdateCursorObject(u8 taskId, u16 x, u16 y, u32 a4) +ListMenuUpdateCursorObject: @ 81AF69C + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r2, 16 + cmp r3, 0 + beq _081AF6B4 + cmp r3, 0x1 + beq _081AF6BA + b _081AF6BE +_081AF6B4: + bl ListMenuUpdateRedOutlineCursorObject + b _081AF6BE +_081AF6BA: + bl ListMenuUpdateRedArrowCursorObject +_081AF6BE: + pop {r0} + bx r0 + thumb_func_end ListMenuUpdateCursorObject + + thumb_func_start ListMenuRemoveCursorObject +ListMenuRemoveCursorObject: @ 81AF6C4 + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r1, 0 + beq _081AF6D4 + cmp r1, 0x1 + beq _081AF6DA + b _081AF6DE +_081AF6D4: + bl ListMenuRemoveRedOutlineCursorObject + b _081AF6DE +_081AF6DA: + bl ListMenuRemoveRedArrowCursorObject +_081AF6DE: + pop {r0} + bx r0 + thumb_func_end ListMenuRemoveCursorObject + + thumb_func_start Task_RedOutlineCursor +Task_RedOutlineCursor: @ 81AF6E4 + bx lr + thumb_func_end Task_RedOutlineCursor + + thumb_func_start ListMenuGetRedOutlineCursorSpriteCount +ListMenuGetRedOutlineCursorSpriteCount: @ 81AF6E8 + push {lr} + lsls r0, 16 + lsrs r0, 16 + lsls r1, 16 + lsrs r1, 16 + movs r3, 0x4 + cmp r0, 0x10 + bls _081AF708 + movs r2, 0x8 + subs r0, 0x8 + cmp r2, r0 + bge _081AF708 +_081AF700: + adds r3, 0x2 + adds r2, 0x8 + cmp r2, r0 + blt _081AF700 +_081AF708: + cmp r1, 0x10 + bls _081AF71C + movs r2, 0x8 + subs r1, 0x8 + cmp r2, r1 + bge _081AF71C +_081AF714: + adds r3, 0x2 + adds r2, 0x8 + cmp r2, r1 + blt _081AF714 +_081AF71C: + lsls r0, r3, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end ListMenuGetRedOutlineCursorSpriteCount + + thumb_func_start ListMenuSetUpRedOutlineCursorSpriteOamTable +ListMenuSetUpRedOutlineCursorSpriteOamTable: @ 81AF724 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r3, r2, 0 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r1, 16 + lsrs r1, 16 + mov r9, r1 + ldr r0, =gUnknown_0861425C + ldr r0, [r0] + str r0, [r3] + movs r1, 0x88 + strb r1, [r3] + strb r1, [r3, 0x1] + ldr r0, =gUnknown_08614260 + ldr r0, [r0] + str r0, [r3, 0x4] + mov r2, r8 + adds r2, 0x80 + strb r2, [r3, 0x4] + strb r1, [r3, 0x5] + ldr r0, =gUnknown_08614274 + ldr r0, [r0] + str r0, [r3, 0x8] + strb r1, [r3, 0x8] + mov r4, r9 + adds r4, 0x80 + strb r4, [r3, 0x9] + ldr r0, =gUnknown_08614278 + ldr r0, [r0] + str r0, [r3, 0xC] + strb r2, [r3, 0xC] + strb r4, [r3, 0xD] + movs r0, 0x4 + mov r12, r0 + mov r2, r8 + cmp r2, 0x10 + bls _081AF7B8 + movs r2, 0x8 + mov r5, r8 + subs r5, 0x8 + cmp r2, r5 + bge _081AF7B8 + ldr r0, =gUnknown_08614264 + ldr r0, [r0] + str r0, [sp] + ldr r0, =gUnknown_08614270 + ldr r6, [r0] + adds r1, r3, 0 + adds r1, 0x10 + movs r7, 0x88 + mov r10, r7 +_081AF796: + ldr r0, [sp] + str r0, [r1] + adds r0, r2, 0 + subs r0, 0x78 + strb r0, [r1] + mov r7, r10 + strb r7, [r1, 0x1] + adds r1, 0x4 + str r6, [r1] + strb r0, [r1] + strb r4, [r1, 0x1] + adds r1, 0x4 + movs r0, 0x2 + add r12, r0 + adds r2, 0x8 + cmp r2, r5 + blt _081AF796 +_081AF7B8: + mov r2, r9 + cmp r2, 0x10 + bls _081AF7F6 + movs r1, 0x8 + mov r4, r9 + subs r4, 0x8 + cmp r1, r4 + bge _081AF7F6 + ldr r0, =gUnknown_08614268 + ldr r6, [r0] + ldr r0, =gUnknown_0861426C + ldr r5, [r0] + mov r7, r12 + lsls r0, r7, 2 + adds r2, r0, r3 + movs r7, 0x88 + mov r3, r8 + adds r3, 0x80 +_081AF7DC: + str r6, [r2] + strb r7, [r2] + adds r0, r1, 0 + subs r0, 0x78 + strb r0, [r2, 0x1] + adds r2, 0x4 + str r5, [r2] + strb r3, [r2] + strb r0, [r2, 0x1] + adds r2, 0x4 + adds r1, 0x8 + cmp r1, r4 + blt _081AF7DC +_081AF7F6: + 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 ListMenuSetUpRedOutlineCursorSpriteOamTable + + thumb_func_start ListMenuAddRedOutlineCursorObject +ListMenuAddRedOutlineCursorObject: @ 81AF828 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x28 + adds r6, r0, 0 + ldr r0, =gUnknown_08614338 + str r0, [sp, 0x18] + ldr r5, =0xffff0000 + add r0, sp, 0x18 + ldr r1, [r0, 0x4] + ands r1, r5 + movs r2, 0x80 + lsls r2, 1 + orrs r1, r2 + ldrh r2, [r6, 0x6] + lsls r2, 16 + ldr r3, =0x0000ffff + ands r1, r3 + orrs r1, r2 + str r1, [r0, 0x4] + bl LoadCompressedObjectPic + ldrh r2, [r6, 0x8] + ldr r7, =0x0000ffff + cmp r2, r7 + bne _081AF884 + ldr r0, =gUnknown_086142A8 + ldrb r1, [r6, 0xA] + lsls r1, 20 + movs r2, 0x80 + lsls r2, 17 + adds r1, r2 + lsrs r1, 16 + movs r2, 0x20 + bl LoadPalette + b _081AF896 + .pool +_081AF884: + ldr r0, =gUnknown_086142A8 + str r0, [sp, 0x20] + add r0, sp, 0x20 + ldr r1, [r0, 0x4] + ands r1, r5 + orrs r1, r2 + str r1, [r0, 0x4] + bl LoadSpritePalette +_081AF896: + ldr r0, =Task_RedOutlineCursor + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r5, r0, r1 + ldrh r0, [r6, 0x6] + movs r3, 0 + mov r8, r3 + strh r0, [r5, 0xE] + ldrh r0, [r6, 0x8] + strh r0, [r5, 0x10] + ldrh r0, [r6, 0x2] + ldrh r1, [r6, 0x4] + bl ListMenuGetRedOutlineCursorSpriteCount + strb r0, [r5] + ldrb r0, [r5] + lsls r0, 2 + bl Alloc + adds r2, r0, 0 + str r2, [r5, 0x8] + str r2, [r5, 0x4] + ldrh r0, [r6, 0x2] + ldrh r1, [r6, 0x4] + bl ListMenuSetUpRedOutlineCursorSpriteOamTable + mov r1, sp + ldr r0, =gDummySpriteTemplate + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + mov r1, sp + ldrh r0, [r6, 0x6] + strh r0, [r1] + ldrh r0, [r6, 0x8] + strh r0, [r1, 0x2] + ldrb r1, [r6] + adds r1, 0x78 + ldrb r2, [r6, 0x1] + adds r2, 0x78 + mov r0, sp + movs r3, 0 + bl CreateSprite + strb r0, [r5, 0xC] + ldrb r1, [r5, 0xC] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r7, =gSprites + adds r0, r7 + adds r1, r5, 0 + bl SetSubspriteTables + ldrb r0, [r5, 0xC] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r7 + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x5] + ldrb r1, [r5, 0xC] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + adds r0, 0x43 + mov r1, r8 + strb r1, [r0] + ldrb r1, [r5, 0xC] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + adds r0, 0x42 + ldrb r2, [r0] + movs r1, 0x40 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldrh r1, [r6, 0x8] + ldr r0, =0x0000ffff + cmp r1, r0 + bne _081AF96E + ldrb r0, [r5, 0xC] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r7 + ldrb r2, [r6, 0xA] + lsls r2, 4 + ldrb r3, [r1, 0x5] + movs r0, 0xF + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0x5] +_081AF96E: + adds r0, r4, 0 + add sp, 0x28 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end ListMenuAddRedOutlineCursorObject + + thumb_func_start ListMenuUpdateRedOutlineCursorObject +@ void ListMenuUpdateRedOutlineCursorObject(u8 taskId, u16 x, u16 y) +ListMenuUpdateRedOutlineCursorObject: @ 81AF994 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r2, 16 + lsls r3, r0, 2 + adds r3, r0 + lsls r3, 3 + ldr r0, =gTasks + 0x8 + adds r3, r0 + ldr r5, =gSprites + ldrb r4, [r3, 0xC] + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r5 + adds r1, 0x78 + strh r1, [r0, 0x20] + ldrb r1, [r3, 0xC] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r2, 0x78 + strh r2, [r0, 0x22] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end ListMenuUpdateRedOutlineCursorObject + + thumb_func_start ListMenuRemoveRedOutlineCursorObject +ListMenuRemoveRedOutlineCursorObject: @ 81AF9D8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + ldr r0, [r4, 0x8] + bl Free + ldrh r0, [r4, 0xE] + ldr r6, =0x0000ffff + cmp r0, r6 + beq _081AF9FC + bl FreeSpriteTilesByTag +_081AF9FC: + ldrh r0, [r4, 0x10] + cmp r0, r6 + beq _081AFA06 + bl FreeSpritePaletteByTag +_081AFA06: + ldrb r1, [r4, 0xC] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + bl DestroySprite + adds r0, r5, 0 + bl DestroyTask + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end ListMenuRemoveRedOutlineCursorObject + + thumb_func_start ObjectCB_RedArrowCursor +ObjectCB_RedArrowCursor: @ 81AFA30 + push {lr} + adds r2, r0, 0 + ldr r1, =gSineTable + ldrh r3, [r2, 0x2E] + lsls r0, r3, 24 + lsrs r0, 23 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bge _081AFA48 + adds r0, 0x3F +_081AFA48: + asrs r0, 6 + strh r0, [r2, 0x24] + adds r0, r3, 0 + adds r0, 0x8 + strh r0, [r2, 0x2E] + pop {r0} + bx r0 + .pool + thumb_func_end ObjectCB_RedArrowCursor + + thumb_func_start Task_RedArrowCursor +Task_RedArrowCursor: @ 81AFA5C + bx lr + thumb_func_end Task_RedArrowCursor + + thumb_func_start ListMenuAddRedArrowCursorObject +ListMenuAddRedArrowCursorObject: @ 81AFA60 + push {r4-r7,lr} + sub sp, 0x28 + adds r5, r0, 0 + ldr r0, =gUnknown_08614378 + str r0, [sp, 0x18] + ldr r6, =0xffff0000 + add r0, sp, 0x18 + ldr r1, [r0, 0x4] + ands r1, r6 + movs r2, 0x80 + orrs r1, r2 + ldrh r2, [r5, 0x6] + lsls r2, 16 + ldr r4, =0x0000ffff + ands r1, r4 + orrs r1, r2 + str r1, [r0, 0x4] + bl LoadCompressedObjectPic + ldrh r2, [r5, 0x8] + cmp r2, r4 + bne _081AFAB4 + ldr r0, =gUnknown_086142A8 + ldrb r1, [r5, 0xA] + lsls r1, 20 + movs r2, 0x80 + lsls r2, 17 + adds r1, r2 + lsrs r1, 16 + movs r2, 0x20 + bl LoadPalette + b _081AFAC6 + .pool +_081AFAB4: + ldr r0, =gUnknown_086142A8 + str r0, [sp, 0x20] + add r0, sp, 0x20 + ldr r1, [r0, 0x4] + ands r1, r6 + orrs r1, r2 + str r1, [r0, 0x4] + bl LoadSpritePalette +_081AFAC6: + ldr r0, =Task_RedArrowCursor + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x4] + mov r1, sp + ldr r0, =gUnknown_08614290 + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + mov r1, sp + ldrh r0, [r5, 0x6] + strh r0, [r1] + ldrh r0, [r5, 0x8] + strh r0, [r1, 0x2] + ldrb r1, [r5] + ldrb r2, [r5, 0x1] + mov r0, sp + movs r3, 0 + bl CreateSprite + strb r0, [r4] + ldr r3, =gSprites + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r2, 0x8 + strh r2, [r0, 0x24] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r2, [r0, 0x26] + ldrh r1, [r5, 0x8] + ldr r0, =0x0000ffff + cmp r1, r0 + bne _081AFB46 + ldrb r0, [r4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r2, [r5, 0xA] + lsls r2, 4 + ldrb r3, [r1, 0x5] + movs r0, 0xF + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0x5] +_081AFB46: + adds r0, r6, 0 + add sp, 0x28 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end ListMenuAddRedArrowCursorObject + + thumb_func_start ListMenuUpdateRedArrowCursorObject +@ void ListMenuUpdateRedArrowCursorObject(u8 taskId, u16 x, u16 y) +ListMenuUpdateRedArrowCursorObject: @ 81AFB68 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r3, r0, 2 + adds r3, r0 + lsls r3, 3 + ldr r0, =gTasks + 0x8 + adds r3, r0 + ldr r5, =gSprites + ldrb r4, [r3] + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r5 + strh r1, [r0, 0x20] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x22] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end ListMenuUpdateRedArrowCursorObject + + thumb_func_start ListMenuRemoveRedArrowCursorObject +ListMenuRemoveRedArrowCursorObject: @ 81AFBA0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + ldrh r0, [r4, 0x2] + ldr r6, =0x0000ffff + cmp r0, r6 + beq _081AFBBE + bl FreeSpriteTilesByTag +_081AFBBE: + ldrh r0, [r4, 0x4] + cmp r0, r6 + beq _081AFBC8 + bl FreeSpritePaletteByTag +_081AFBC8: + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + bl DestroySprite + adds r0, r5, 0 + bl DestroyTask + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end ListMenuRemoveRedArrowCursorObject + + thumb_func_start sub_81AFBF0 +sub_81AFBF0: @ 81AFBF0 + push {lr} + ldr r1, =gUnknown_0203CE9C + movs r2, 0 + adds r0, r1, 0 + adds r0, 0x1C +_081AFBFA: + str r2, [r0] + subs r0, 0x4 + cmp r0, r1 + bge _081AFBFA + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AFBF0 + + thumb_func_start sub_81AFC0C +sub_81AFC0C: @ 81AFC0C + push {lr} + adds r2, r1, 0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x7 + bhi _081AFC20 + ldr r1, =gUnknown_0203CE9C + lsls r0, 2 + adds r0, r1 + str r2, [r0] +_081AFC20: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AFC0C + + thumb_func_start sub_81AFC28 +sub_81AFC28: @ 81AFC28 + push {r4,r5,lr} + adds r2, r0, 0 + adds r4, r1, 0 + ldrb r1, [r4] + adds r0, r1, 0 + cmp r0, 0xFF + beq _081AFC68 + ldr r5, =gUnknown_0203CE9C +_081AFC38: + cmp r1, 0xF7 + beq _081AFC48 + strb r1, [r2] + adds r4, 0x1 + adds r2, 0x1 + b _081AFC60 + .pool +_081AFC48: + adds r4, 0x1 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + cmp r1, 0 + beq _081AFC5E + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 +_081AFC5E: + adds r4, 0x1 +_081AFC60: + ldrb r1, [r4] + adds r0, r1, 0 + cmp r0, 0xFF + bne _081AFC38 +_081AFC68: + movs r0, 0xFF + strb r0, [r2] + adds r0, r2, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81AFC28 + + thumb_func_start sub_81AFC74 +sub_81AFC74: @ 81AFC74 + lsls r0, 24 + ldr r1, =gUnknown_0203CE9C + lsrs r0, 22 + adds r0, r1 + ldr r0, [r0] + bx lr + .pool + thumb_func_end sub_81AFC74 + + thumb_func_start sav1_are_mapnumbers_in_given_list +sav1_are_mapnumbers_in_given_list: @ 81AFC84 + push {r4,lr} + adds r2, r0, 0 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + movs r1, 0x4 + ldrsb r1, [r0, r1] + lsls r1, 8 + ldrb r0, [r0, 0x5] + lsls r0, 24 + asrs r0, 24 + adds r0, r1 + lsls r0, 16 + lsrs r3, r0, 16 + ldrh r0, [r2] + ldr r1, =0x0000ffff + cmp r0, r1 + beq _081AFCC4 + adds r4, r1, 0 + adds r1, r2, 0 +_081AFCAA: + ldrh r0, [r1] + cmp r0, r3 + bne _081AFCBC + movs r0, 0x1 + b _081AFCC6 + .pool +_081AFCBC: + adds r1, 0x2 + ldrh r0, [r1] + cmp r0, r4 + bne _081AFCAA +_081AFCC4: + movs r0, 0 +_081AFCC6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sav1_are_mapnumbers_in_given_list + + thumb_func_start sav1_is_in_pokecenter +sav1_is_in_pokecenter: @ 81AFCCC + push {lr} + ldr r0, =gUnknown_086143BC + bl sav1_are_mapnumbers_in_given_list + pop {r1} + bx r1 + .pool + thumb_func_end sav1_is_in_pokecenter + + thumb_func_start sub_81AFCDC +sub_81AFCDC: @ 81AFCDC + push {lr} + ldr r0, =gUnknown_0861440A + bl sav1_are_mapnumbers_in_given_list + pop {r1} + bx r1 + .pool + thumb_func_end sub_81AFCDC + + thumb_func_start sub_81AFCEC +sub_81AFCEC: @ 81AFCEC + push {lr} + ldr r0, =gUnknown_0861440E + bl sav1_are_mapnumbers_in_given_list + pop {r1} + bx r1 + .pool + thumb_func_end sub_81AFCEC + + thumb_func_start sav2_set_x9_bit3_when_sav1_in_pokecenter +sav2_set_x9_bit3_when_sav1_in_pokecenter: @ 81AFCFC + push {lr} + bl sav1_is_in_pokecenter + cmp r0, 0 + bne _081AFD18 + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldrb r1, [r2, 0x9] + movs r0, 0xFD + ands r0, r1 + b _081AFD22 + .pool +_081AFD18: + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldrb r1, [r2, 0x9] + movs r0, 0x2 + orrs r0, r1 +_081AFD22: + strb r0, [r2, 0x9] + pop {r0} + bx r0 + .pool + thumb_func_end sav2_set_x9_bit3_when_sav1_in_pokecenter + + thumb_func_start sub_81AFD2C +sub_81AFD2C: @ 81AFD2C + push {lr} + bl sub_81AFCDC + cmp r0, 0 + bne _081AFD48 + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldrb r1, [r2, 0x9] + movs r0, 0xFB + ands r0, r1 + b _081AFD52 + .pool +_081AFD48: + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldrb r1, [r2, 0x9] + movs r0, 0x4 + orrs r0, r1 +_081AFD52: + strb r0, [r2, 0x9] + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AFD2C + + thumb_func_start sub_81AFD5C +sub_81AFD5C: @ 81AFD5C + push {lr} + bl sub_81AFCEC + cmp r0, 0 + bne _081AFD78 + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldrb r1, [r2, 0x9] + movs r0, 0xF7 + ands r0, r1 + b _081AFD82 + .pool +_081AFD78: + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldrb r1, [r2, 0x9] + movs r0, 0x8 + orrs r0, r1 +_081AFD82: + strb r0, [r2, 0x9] + pop {r0} + bx r0 + .pool + thumb_func_end sub_81AFD5C + + thumb_func_start sav2_set_x9_depending_on_sav1_map +sav2_set_x9_depending_on_sav1_map: @ 81AFD8C + push {lr} + bl sav2_set_x9_bit3_when_sav1_in_pokecenter + bl sub_81AFD2C + bl sub_81AFD5C + pop {r0} + bx r0 + thumb_func_end sav2_set_x9_depending_on_sav1_map + + thumb_func_start sub_81AFDA0 +sub_81AFDA0: @ 81AFDA0 + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + adds r2, 0xA8 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 8 + orrs r0, r1 + movs r1, 0x1 + orrs r0, r1 + movs r1, 0x2 + orrs r0, r1 + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x10 + orrs r0, r1 + movs r1, 0x20 + orrs r0, r1 + movs r1, 0x8 + orrs r0, r1 + str r0, [r2] + bx lr + .pool + thumb_func_end sub_81AFDA0 + + thumb_func_start sub_81AFDD0 +sub_81AFDD0: @ 81AFDD0 + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldrb r1, [r2, 0x9] + movs r0, 0x80 + orrs r0, r1 + strb r0, [r2, 0x9] + bx lr + .pool + thumb_func_end sub_81AFDD0 + + thumb_func_start AllocItemIconTemporaryBuffers +@ bool8 AllocItemIconTemporaryBuffers() +AllocItemIconTemporaryBuffers: @ 81AFDE4 + push {r4,r5,lr} + ldr r5, =gUnknown_0203CEBC + movs r0, 0x90 + lsls r0, 1 + bl Alloc + str r0, [r5] + cmp r0, 0 + beq _081AFE1A + ldr r4, =gUnknown_0203CEC0 + movs r0, 0x80 + lsls r0, 2 + bl AllocZeroed + str r0, [r4] + cmp r0, 0 + beq _081AFE14 + movs r0, 0x1 + b _081AFE1C + .pool +_081AFE14: + ldr r0, [r5] + bl Free +_081AFE1A: + movs r0, 0 +_081AFE1C: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end AllocItemIconTemporaryBuffers + + thumb_func_start FreeItemIconTemporaryBuffers +@ void FreeItemIconTemporaryBuffers() +FreeItemIconTemporaryBuffers: @ 81AFE24 + push {lr} + ldr r0, =gUnknown_0203CEBC + ldr r0, [r0] + bl Free + ldr r0, =gUnknown_0203CEC0 + ldr r0, [r0] + bl Free + pop {r0} + bx r0 + .pool + thumb_func_end FreeItemIconTemporaryBuffers + + thumb_func_start CopyItemIconPicTo4x4Buffer +@ void CopyItemIconPicTo4x4Buffer(void *src, void *dest) +CopyItemIconPicTo4x4Buffer: @ 81AFE44 + push {r4-r6,lr} + adds r6, r0, 0 + adds r5, r1, 0 + movs r4, 0 +_081AFE4C: + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 5 + adds r0, r6, r0 + lsls r1, r4, 7 + adds r1, r5, r1 + movs r2, 0x30 + bl CpuSet + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _081AFE4C + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end CopyItemIconPicTo4x4Buffer + + thumb_func_start AddItemIconObject +@ u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId) +AddItemIconObject: @ 81AFE70 + push {r4-r7,lr} + sub sp, 0x10 + lsls r0, 16 + lsrs r7, r0, 16 + lsls r1, 16 + lsrs r6, r1, 16 + lsls r2, 16 + lsrs r5, r2, 16 + bl AllocItemIconTemporaryBuffers + lsls r0, 24 + cmp r0, 0 + beq _081AFF28 + adds r0, r5, 0 + movs r1, 0 + bl GetItemIconPicOrPalette + ldr r4, =gUnknown_0203CEBC + ldr r1, [r4] + bl LZDecompressWram + ldr r0, [r4] + ldr r4, =gUnknown_0203CEC0 + ldr r1, [r4] + bl CopyItemIconPicTo4x4Buffer + ldr r0, [r4] + str r0, [sp] + ldr r4, =0xffff0000 + ldr r0, [sp, 0x4] + ands r0, r4 + movs r1, 0x80 + lsls r1, 2 + orrs r0, r1 + lsls r2, r7, 16 + ldr r1, =0x0000ffff + ands r0, r1 + orrs r0, r2 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet + adds r0, r5, 0 + movs r1, 0x1 + bl GetItemIconPicOrPalette + str r0, [sp, 0x8] + add r0, sp, 0x8 + ldr r1, [r0, 0x4] + ands r1, r4 + orrs r1, r6 + str r1, [r0, 0x4] + bl LoadCompressedObjectPalette + movs r0, 0x18 + bl Alloc + adds r5, r0, 0 + ldr r0, =gUnknown_08614FF4 + adds r1, r5, 0 + movs r2, 0xC + bl CpuSet + strh r7, [r5] + strh r6, [r5, 0x2] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl FreeItemIconTemporaryBuffers + adds r0, r5, 0 + bl Free + adds r0, r4, 0 + b _081AFF2A + .pool +_081AFF28: + movs r0, 0x40 +_081AFF2A: + add sp, 0x10 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end AddItemIconObject + + thumb_func_start AddItemIconObjectWithCustomObjectTemplate +@ u8 AddItemIconObjectWithCustomObjectTemplate(struct objtemplate *objectTemplate, u16 tilesTag, u16 paletteTag, u16 itemId) +AddItemIconObjectWithCustomObjectTemplate: @ 81AFF34 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + mov r8, r0 + lsls r1, 16 + lsrs r7, r1, 16 + lsls r2, 16 + lsrs r6, r2, 16 + lsls r3, 16 + lsrs r5, r3, 16 + bl AllocItemIconTemporaryBuffers + lsls r0, 24 + cmp r0, 0 + beq _081AFFEC + adds r0, r5, 0 + movs r1, 0 + bl GetItemIconPicOrPalette + ldr r4, =gUnknown_0203CEBC + ldr r1, [r4] + bl LZDecompressWram + ldr r0, [r4] + ldr r4, =gUnknown_0203CEC0 + ldr r1, [r4] + bl CopyItemIconPicTo4x4Buffer + ldr r0, [r4] + str r0, [sp] + ldr r4, =0xffff0000 + ldr r0, [sp, 0x4] + ands r0, r4 + movs r1, 0x80 + lsls r1, 2 + orrs r0, r1 + lsls r2, r7, 16 + ldr r1, =0x0000ffff + ands r0, r1 + orrs r0, r2 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet + adds r0, r5, 0 + movs r1, 0x1 + bl GetItemIconPicOrPalette + str r0, [sp, 0x8] + add r0, sp, 0x8 + ldr r1, [r0, 0x4] + ands r1, r4 + orrs r1, r6 + str r1, [r0, 0x4] + bl LoadCompressedObjectPalette + movs r0, 0x18 + bl Alloc + adds r5, r0, 0 + mov r0, r8 + adds r1, r5, 0 + movs r2, 0xC + bl CpuSet + strh r7, [r5] + strh r6, [r5, 0x2] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl FreeItemIconTemporaryBuffers + adds r0, r5, 0 + bl Free + adds r0, r4, 0 + b _081AFFEE + .pool +_081AFFEC: + movs r0, 0x40 +_081AFFEE: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end AddItemIconObjectWithCustomObjectTemplate + + thumb_func_start GetItemIconPicOrPalette +@ u32 GetItemIconPicOrPalette(u16 itemId, u8 which) +GetItemIconPicOrPalette: @ 81AFFFC + push {lr} + lsls r0, 16 + lsrs r3, r0, 16 + lsls r1, 24 + lsrs r1, 24 + ldr r0, =0x0000ffff + cmp r3, r0 + bne _081B0018 + ldr r3, =0x00000179 + b _081B0022 + .pool +_081B0018: + movs r0, 0xBC + lsls r0, 1 + cmp r3, r0 + bls _081B0022 + movs r3, 0 +_081B0022: + ldr r2, =gItemIconTable + lsls r0, r1, 2 + lsls r1, r3, 3 + adds r0, r1 + adds r0, r2 + ldr r0, [r0] + pop {r1} + bx r1 + .pool + thumb_func_end GetItemIconPicOrPalette + + thumb_func_start sub_81B0038 +sub_81B0038: @ 81B0038 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r4, [sp, 0x24] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + lsls r2, 24 + lsrs r7, r2, 24 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp] + lsls r4, 24 + lsrs r6, r4, 24 + bl reset_brm + ldr r0, =gUnknown_0203CEC4 + mov r10, r0 + movs r0, 0x8E + lsls r0, 2 + bl Alloc + adds r5, r0, 0 + mov r1, r10 + str r5, [r1] + cmp r5, 0 + bne _081B0088 + ldr r0, [sp, 0x2C] + bl SetMainCallback2 + b _081B0194 + .pool +_081B0088: + ldr r3, =gUnknown_0203CEC8 + movs r1, 0xF + mov r4, r8 + ands r1, r4 + ldrb r2, [r3, 0x8] + movs r0, 0x10 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x8] + ldr r0, [sp, 0x2C] + str r0, [r3] + movs r4, 0 + strb r7, [r3, 0xB] + lsls r2, r6, 2 + ldrh r1, [r5, 0xA] + movs r0, 0x3 + ands r0, r1 + orrs r0, r2 + strh r0, [r5, 0xA] + ldr r0, [sp, 0x28] + str r0, [r5] + str r4, [r5, 0x4] + ldrb r1, [r5, 0x8] + movs r0, 0xF + negs r0, r0 + ands r0, r1 + strb r0, [r5, 0x8] + mov r1, r10 + ldr r2, [r1] + ldrh r0, [r2, 0x8] + movs r4, 0xFE + lsls r4, 3 + adds r1, r4, 0 + orrs r0, r1 + strh r0, [r2, 0x8] + ldr r0, [r2, 0x8] + movs r1, 0xFE + lsls r1, 10 + orrs r0, r1 + str r0, [r2, 0x8] + adds r6, r3, 0 + mov r5, r8 + cmp r5, 0x4 + bne _081B00F0 + ldrb r0, [r2, 0x8] + movs r1, 0x1 + orrs r0, r1 + b _081B00F8 + .pool +_081B00F0: + ldrb r1, [r2, 0x8] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 +_081B00F8: + strb r0, [r2, 0x8] + mov r0, r9 + cmp r0, 0xFF + beq _081B0114 + movs r0, 0x3 + mov r1, r9 + ands r0, r1 + lsls r0, 4 + ldrb r2, [r6, 0x8] + movs r1, 0x31 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r6, 0x8] +_081B0114: + movs r2, 0 + ldr r5, =gUnknown_0203CEC4 + movs r4, 0x86 + lsls r4, 2 + movs r3, 0 +_081B011E: + ldr r0, [r5] + lsls r1, r2, 1 + adds r0, r4 + adds r0, r1 + strh r3, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0xF + bls _081B011E + movs r2, 0 + ldr r4, =gUnknown_0203CEC4 + movs r3, 0xFF +_081B0138: + ldr r0, [r4] + adds r0, 0xC + adds r0, r2 + ldrb r1, [r0] + orrs r1, r3 + strb r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x2 + bls _081B0138 + ldr r4, [sp] + cmp r4, 0 + bne _081B015C + strb r4, [r6, 0x9] + b _081B017E + .pool +_081B015C: + adds r1, r6, 0 + movs r0, 0x9 + ldrsb r0, [r1, r0] + cmp r0, 0x5 + bgt _081B017A + adds r1, r0, 0 + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + bne _081B017E +_081B017A: + movs r0, 0 + strb r0, [r6, 0x9] +_081B017E: + ldr r2, =gTextFlags + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + bl calc_player_party_count + ldr r0, =c2_811EBD0 + bl SetMainCallback2 +_081B0194: + 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_81B0038 + + thumb_func_start sub_81B01B0 +sub_81B01B0: @ 81B01B0 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl do_scheduled_bg_tilemap_copies_to_vram + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_81B01B0 + + thumb_func_start sub_81B01CC +sub_81B01CC: @ 81B01CC + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_81B01CC + + thumb_func_start c2_811EBD0 +c2_811EBD0: @ 81B01E0 + push {lr} +_081B01E2: + bl sub_81221EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B0206 + bl sub_81B020C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B0206 + bl sub_81221AC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081B01E2 +_081B0206: + pop {r0} + bx r0 + thumb_func_end c2_811EBD0 + + thumb_func_start sub_81B020C +sub_81B020C: @ 81B020C + push {r4,lr} + sub sp, 0x4 + ldr r1, =gMain + movs r2, 0x87 + lsls r2, 3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, r1, 0 + cmp r0, 0x16 + bls _081B0222 + b _081B0498 +_081B0222: + lsls r0, 2 + ldr r1, =_081B0234 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081B0234: + .4byte _081B0290 + .4byte _081B02AC + .4byte _081B02B2 + .4byte _081B02D4 + .4byte _081B02DA + .4byte _081B02EC + .4byte _081B02FE + .4byte _081B0310 + .4byte _081B0338 + .4byte _081B0354 + .4byte _081B0368 + .4byte _081B038C + .4byte _081B03A0 + .4byte _081B03A6 + .4byte _081B03B8 + .4byte _081B03BE + .4byte _081B03E0 + .4byte _081B0400 + .4byte _081B0414 + .4byte _081B0428 + .4byte _081B0430 + .4byte _081B044C + .4byte _081B0474 +_081B0290: + bl SetVBlankHBlankCallbacksToNull + bl sub_8121DA0 + bl clear_scheduled_bg_copies_to_vram + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _081B048C + .pool +_081B02AC: + bl remove_some_task + b _081B0484 +_081B02B2: + bl ResetPaletteFade + ldr r2, =gPaletteFade + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _081B048C + .pool +_081B02D4: + bl ResetSpriteData + b _081B0484 +_081B02DA: + bl FreeAllSpritePalettes + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _081B048C + .pool +_081B02EC: + bl sub_81221AC + lsls r0, 24 + cmp r0, 0 + beq _081B02F8 + b _081B0484 +_081B02F8: + bl ResetTasks + b _081B0484 +_081B02FE: + bl sub_81B209C + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _081B048C + .pool +_081B0310: + bl sub_81B0550 + lsls r0, 24 + cmp r0, 0 + bne _081B0322 + bl sub_81B04BC + movs r0, 0x1 + b _081B04B2 +_081B0322: + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + movs r1, 0x86 + lsls r1, 2 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + b _081B0484 + .pool +_081B0338: + bl sub_81B05C8 + lsls r0, 24 + cmp r0, 0 + bne _081B0344 + b _081B04B0 +_081B0344: + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _081B048C + .pool +_081B0354: + ldr r0, =gUnknown_0203CEC8 + ldrb r0, [r0, 0x8] + lsls r0, 26 + lsrs r0, 30 + bl sub_81B239C + b _081B0484 + .pool +_081B0368: + ldr r0, =gUnknown_0203CEC8 + ldrb r0, [r0, 0x8] + lsls r0, 26 + lsrs r0, 30 + bl sub_81B0740 + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + movs r1, 0x86 + lsls r1, 2 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + b _081B0484 + .pool +_081B038C: + bl sub_81B5D30 + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _081B048C + .pool +_081B03A0: + bl sub_81B6040 + b _081B0484 +_081B03A6: + bl sub_81B6160 + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _081B048C + .pool +_081B03B8: + bl sub_80D2F04 + b _081B0484 +_081B03BE: + bl party_menu_add_per_mon_objects + lsls r0, 24 + cmp r0, 0 + bne _081B03CA + b _081B04B0 +_081B03CA: + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + movs r1, 0x86 + lsls r1, 2 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + b _081B0484 + .pool +_081B03E0: + bl sub_81B0DA0 + lsls r0, 24 + cmp r0, 0 + beq _081B04B0 + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + movs r1, 0x86 + lsls r1, 2 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + b _081B0484 + .pool +_081B0400: + bl sub_81B0F28 + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _081B048C + .pool +_081B0414: + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + ldrb r0, [r0, 0x8] + lsls r0, 31 + lsrs r0, 31 + bl sub_81B2428 + b _081B0484 + .pool +_081B0428: + movs r0, 0x87 + lsls r0, 3 + adds r1, r2, r0 + b _081B048C +_081B0430: + ldr r4, =gUnknown_0203CEC4 + ldr r0, [r4] + ldr r0, [r0] + movs r1, 0 + bl CreateTask + ldr r0, [r4] + ldrh r0, [r0, 0xA] + lsrs r0, 2 + bl display_pokemon_menu_message + b _081B0484 + .pool +_081B044C: + movs r0, 0x1 + negs r0, r0 + movs r1, 0x10 + movs r2, 0 + bl BlendPalettes + ldr r2, =gPaletteFade + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x8] + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _081B048C + .pool +_081B0474: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade +_081B0484: + ldr r1, =gMain + movs r2, 0x87 + lsls r2, 3 + adds r1, r2 +_081B048C: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _081B04B0 + .pool +_081B0498: + ldr r0, =sub_81B01CC + bl SetVBlankCallback + ldr r0, =sub_81B01B0 + bl SetMainCallback2 + movs r0, 0x1 + b _081B04B2 + .pool +_081B04B0: + movs r0, 0 +_081B04B2: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81B020C + + thumb_func_start sub_81B04BC +sub_81B04BC: @ 81B04BC + push {lr} + sub sp, 0x4 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, =sub_81B04F8 + movs r1, 0 + bl CreateTask + ldr r0, =sub_81B01CC + bl SetVBlankCallback + ldr r0, =sub_81B01B0 + bl SetMainCallback2 + add sp, 0x4 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B04BC + + thumb_func_start sub_81B04F8 +sub_81B04F8: @ 81B04F8 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081B051C + ldr r0, =gUnknown_0203CEC8 + ldr r0, [r0] + bl SetMainCallback2 + bl sub_81B06F4 + adds r0, r4, 0 + bl DestroyTask +_081B051C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B04F8 + + thumb_func_start reset_brm +reset_brm: @ 81B052C + ldr r0, =gUnknown_0203CEC4 + movs r1, 0 + str r1, [r0] + ldr r0, =gUnknown_0203CEE4 + str r1, [r0] + ldr r0, =gUnknown_0203CEDC + str r1, [r0] + ldr r0, =gUnknown_0203CEE0 + str r1, [r0] + bx lr + .pool + thumb_func_end reset_brm + + thumb_func_start sub_81B0550 +sub_81B0550: @ 81B0550 + push {r4,r5,lr} + ldr r5, =gUnknown_0203CEE4 + movs r4, 0x80 + lsls r4, 4 + adds r0, r4, 0 + bl Alloc + str r0, [r5] + cmp r0, 0 + beq _081B05C0 + movs r1, 0 + adds r2, r4, 0 + bl memset + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, =gUnknown_086156B8 + movs r0, 0 + movs r2, 0x3 + bl InitBgsFromTemplates + ldr r1, [r5] + movs r0, 0x1 + bl SetBgTilemapBuffer + bl sub_8121E10 + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + movs r1, 0x82 + lsls r1, 5 + movs r0, 0 + bl SetGpuReg + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0 + bl ShowBg + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + movs r0, 0x1 + b _081B05C2 + .pool +_081B05C0: + movs r0, 0 +_081B05C2: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81B0550 + + thumb_func_start sub_81B05C8 +sub_81B05C8: @ 81B05C8 + push {r4,lr} + sub sp, 0x4 + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + movs r1, 0x86 + lsls r1, 2 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x7 + bhi _081B06B0 + lsls r0, 2 + ldr r1, =_081B05F0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081B05F0: + .4byte _081B0610 + .4byte _081B0638 + .4byte _081B0658 + .4byte _081B0684 + .4byte _081B0688 + .4byte _081B068C + .4byte _081B0690 + .4byte _081B0694 +_081B0610: + ldr r4, =gUnknown_0203CEE0 + ldr r0, =gUnknown_08D967EC + mov r1, sp + bl malloc_and_decompress + adds r1, r0, 0 + str r1, [r4] + ldr r2, [sp] + lsls r2, 16 + lsrs r2, 16 + movs r0, 0x1 + movs r3, 0 + bl LoadBgTiles + b _081B069A + .pool +_081B0638: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _081B06B4 + ldr r0, =gUnknown_08D96BA0 + ldr r1, =gUnknown_0203CEE4 + ldr r1, [r1] + bl LZDecompressWram + b _081B069A + .pool +_081B0658: + ldr r0, =gUnknown_08D96AB4 + movs r2, 0xB0 + lsls r2, 1 + movs r1, 0 + bl LoadCompressedPalette + ldr r0, =gPlttBufferUnfaded + ldr r4, =gUnknown_0203CEC4 + ldr r1, [r4] + adds r1, 0x18 + movs r2, 0xB0 + bl CpuSet + ldr r1, [r4] + b _081B069E + .pool +_081B0684: + movs r0, 0x4 + b _081B0696 +_081B0688: + movs r0, 0x5 + b _081B0696 +_081B068C: + movs r0, 0x6 + b _081B0696 +_081B0690: + movs r0, 0x7 + b _081B0696 +_081B0694: + movs r0, 0x8 +_081B0696: + bl sub_81B06C0 +_081B069A: + ldr r0, =gUnknown_0203CEC4 + ldr r1, [r0] +_081B069E: + movs r0, 0x86 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _081B06B4 + .pool +_081B06B0: + movs r0, 0x1 + b _081B06B6 +_081B06B4: + movs r0, 0 +_081B06B6: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81B05C8 + + thumb_func_start sub_81B06C0 +sub_81B06C0: @ 81B06C0 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 28 + ldr r5, =gPlttBufferUnfaded + 0x60 + lsrs r4, 23 + adds r1, r5, 0 + subs r1, 0x60 + adds r1, r4, r1 + adds r0, r5, 0 + movs r2, 0x10 + bl CpuSet + ldr r0, =gPlttBufferFaded + adds r4, r0 + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x10 + bl CpuSet + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B06C0 + + thumb_func_start sub_81B06F4 +sub_81B06F4: @ 81B06F4 + push {lr} + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + cmp r0, 0 + beq _081B0702 + bl Free +_081B0702: + ldr r0, =gUnknown_0203CEE4 + ldr r0, [r0] + cmp r0, 0 + beq _081B070E + bl Free +_081B070E: + ldr r0, =gUnknown_0203CEE0 + ldr r0, [r0] + cmp r0, 0 + beq _081B071A + bl Free +_081B071A: + ldr r0, =gUnknown_0203CEDC + ldr r0, [r0] + cmp r0, 0 + beq _081B0726 + bl Free +_081B0726: + bl FreeAllWindowBuffers + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B06F4 + + thumb_func_start sub_81B0740 +sub_81B0740: @ 81B0740 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r4, =gUnknown_0203CEDC + movs r0, 0x60 + bl Alloc + str r0, [r4] + movs r5, 0 + lsls r0, r7, 1 + adds r0, r7 + lsls r0, 4 + mov r8, r0 + movs r6, 0xFF + mov r9, r4 +_081B0764: + ldr r2, [r4] + lsls r3, r5, 4 + adds r2, r3, r2 + ldr r0, =gUnknown_086156E4 + mov r12, r0 + str r0, [r2] + lsls r0, r5, 3 + ldr r1, =gUnknown_08615704 + adds r0, r1 + add r0, r8 + str r0, [r2, 0x4] + strb r5, [r2, 0x8] + ldr r1, [r4] + adds r1, r3, r1 + ldrb r0, [r1, 0x9] + orrs r0, r6 + strb r0, [r1, 0x9] + ldr r1, [r4] + adds r1, r3, r1 + ldrb r0, [r1, 0xA] + orrs r0, r6 + strb r0, [r1, 0xA] + ldr r1, [r4] + adds r1, r3, r1 + ldrb r0, [r1, 0xB] + orrs r0, r6 + strb r0, [r1, 0xB] + ldr r0, [r4] + adds r3, r0 + ldrb r0, [r3, 0xC] + orrs r0, r6 + strb r0, [r3, 0xC] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _081B0764 + mov r1, r9 + ldr r0, [r1] + mov r1, r12 + subs r1, 0x20 + str r1, [r0] + cmp r7, 0x3 + bne _081B07CC + str r1, [r0, 0x30] + b _081B07D2 + .pool +_081B07CC: + cmp r7, 0 + beq _081B07D2 + str r1, [r0, 0x10] +_081B07D2: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81B0740 + + thumb_func_start sub_81B07E0 +sub_81B07E0: @ 81B07E0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, =gUnknown_0203CEC8 + ldrb r1, [r0, 0x8] + movs r0, 0xF + ands r0, r1 + cmp r0, 0x5 + bne _081B085C + cmp r5, 0x2 + bls _081B085C + adds r0, r5, 0 + bl sub_81B0CEC + ldr r0, =gUnknown_02022FF8 + subs r1, r5, 0x3 + lsls r1, 5 + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0 + bne _081B0828 + ldr r0, =gUnknown_0203CEDC + lsls r4, r5, 4 + ldr r0, [r0] + adds r0, r4 + movs r1, 0x40 + bl sub_81B2748 + b _081B0836 + .pool +_081B0828: + ldr r0, =gUnknown_0203CEDC + lsls r4, r5, 4 + ldr r0, [r0] + adds r0, r4 + movs r1, 0x8 + bl sub_81B2748 +_081B0836: + adds r5, r4, 0 + ldr r4, =gUnknown_0203CEDC + ldr r0, [r4] + adds r0, r5, r0 + ldrb r0, [r0, 0x8] + movs r1, 0x2 + bl CopyWindowToVram + ldr r0, [r4] + adds r0, r5, r0 + ldrb r0, [r0, 0x8] + bl PutWindowTilemap + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + b _081B093E + .pool +_081B085C: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + bne _081B089C + ldr r4, =gUnknown_0203CEDC + ldr r0, [r4] + lsls r5, 4 + adds r0, r5, r0 + ldrb r0, [r0, 0x8] + bl sub_81B2720 + ldr r0, [r4] + adds r0, r5 + movs r1, 0x40 + bl sub_81B2748 + ldr r0, [r4] + adds r0, r5, r0 + ldrb r0, [r0, 0x8] + movs r1, 0x2 + bl CopyWindowToVram + b _081B092C + .pool +_081B089C: + ldr r0, =gUnknown_0203CEC8 + ldrb r0, [r0, 0x8] + movs r1, 0xF + ands r1, r0 + cmp r1, 0x7 + bne _081B08B4 + adds r0, r5, 0 + bl sub_81B0B60 + b _081B08F6 + .pool +_081B08B4: + cmp r1, 0x2 + bne _081B08C0 + adds r0, r5, 0 + bl sub_81B0B08 + b _081B08F6 +_081B08C0: + cmp r1, 0x4 + bne _081B08CC + adds r0, r5, 0 + bl sub_81B0A9C + b _081B08F6 +_081B08CC: + cmp r1, 0xB + bne _081B08D8 + adds r0, r5, 0 + bl sub_81B0B98 + b _081B08F6 +_081B08D8: + cmp r1, 0xC + bne _081B08E4 + adds r0, r5, 0 + bl sub_81B0BC4 + b _081B08F6 +_081B08E4: + adds r0, r5, 0 + bl sub_81B0BFC + lsls r0, 24 + cmp r0, 0 + bne _081B08F6 + adds r0, r5, 0 + bl sub_81B0948 +_081B08F6: + ldr r2, =gUnknown_0203CEC8 + ldrb r1, [r2, 0x8] + movs r0, 0xF + ands r0, r1 + cmp r0, 0x5 + bne _081B0910 + adds r0, r5, 0 + movs r1, 0 + bl sub_81B0FCC + b _081B092A + .pool +_081B0910: + movs r0, 0x9 + ldrsb r0, [r2, r0] + cmp r0, r5 + bne _081B0922 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_81B0FCC + b _081B092A +_081B0922: + adds r0, r5, 0 + movs r1, 0 + bl sub_81B0FCC +_081B092A: + lsls r5, 4 +_081B092C: + ldr r0, =gUnknown_0203CEDC + ldr r0, [r0] + adds r0, r5, r0 + ldrb r0, [r0, 0x8] + bl PutWindowTilemap + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram +_081B093E: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B07E0 + + thumb_func_start sub_81B0948 +sub_81B0948: @ 81B0948 + push {r4-r7,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x64 + adds r1, r4, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r7, r1, r0 + adds r0, r7, 0 + movs r1, 0x2D + bl GetMonData + adds r2, r0, 0 + cmp r2, 0 + beq _081B09A0 + ldr r6, =gUnknown_0203CEDC + ldr r0, [r6] + lsls r5, r4, 4 + adds r0, r5, r0 + ldr r2, [r0] + ldrb r0, [r0, 0x8] + movs r1, 0 + str r1, [sp] + movs r1, 0x1 + str r1, [sp, 0x4] + ldr r4, [r2] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl _call_via_r4 + ldr r1, [r6] + adds r1, r5 + adds r0, r7, 0 + movs r2, 0 + bl sub_81B2A70 + b _081B0A02 + .pool +_081B09A0: + ldr r5, =gUnknown_0203CEDC + ldr r0, [r5] + lsls r4, 4 + adds r0, r4, r0 + ldr r1, [r0] + ldrb r0, [r0, 0x8] + str r2, [sp] + str r2, [sp, 0x4] + ldr r6, [r1] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl _call_via_r6 + ldr r1, [r5] + adds r1, r4 + adds r0, r7, 0 + movs r2, 0 + bl sub_81B2A70 + ldr r1, [r5] + adds r1, r4 + adds r0, r7, 0 + movs r2, 0 + bl sub_81B2AC8 + ldr r1, [r5] + adds r1, r4 + adds r0, r7, 0 + movs r2, 0 + bl sub_81B2B8C + ldr r1, [r5] + adds r1, r4 + adds r0, r7, 0 + movs r2, 0 + bl sub_81B2CD4 + ldr r1, [r5] + adds r1, r4 + adds r0, r7, 0 + movs r2, 0 + bl sub_81B2D74 + ldr r1, [r5] + adds r1, r4 + adds r0, r7, 0 + bl sub_81B2E28 +_081B0A02: + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B0948 + + thumb_func_start sub_81B0A10 +sub_81B0A10: @ 81B0A10 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + movs r1, 0x64 + adds r2, r0, 0 + muls r2, r1 + ldr r1, =gPlayerParty + adds r6, r2, r1 + ldr r7, =gUnknown_0203CEDC + ldr r1, [r7] + lsls r5, r0, 4 + adds r1, r5, r1 + ldr r2, [r1] + ldrb r0, [r1, 0x8] + movs r1, 0 + str r1, [sp] + movs r1, 0x1 + str r1, [sp, 0x4] + ldr r4, [r2] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl _call_via_r4 + ldr r1, [r7] + adds r1, r5 + adds r0, r6, 0 + movs r2, 0 + bl sub_81B2A70 + adds r0, r6, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _081B0A7C + ldr r1, [r7] + adds r1, r5 + adds r0, r6, 0 + movs r2, 0 + bl sub_81B2AC8 + ldr r1, [r7] + adds r1, r5 + adds r0, r6, 0 + movs r2, 0 + bl sub_81B2B8C +_081B0A7C: + ldr r1, [r7] + adds r1, r5 + mov r0, r8 + movs r2, 0 + bl sub_81B2FA8 + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B0A10 + + thumb_func_start sub_81B0A9C +sub_81B0A9C: @ 81B0A9C + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r6, =gUnknown_0203CEF8 + bl sub_81B85AC + lsls r0, 24 + cmp r0, 0 + bne _081B0AD6 + adds r0, r5, 0 + movs r1, 0x7 + bl sub_81B0A10 + b _081B0B02 + .pool +_081B0AC8: + adds r1, r4, 0x2 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl sub_81B0A10 + b _081B0B02 +_081B0AD6: + movs r4, 0 + b _081B0AEE +_081B0ADA: + adds r1, r6, r4 + ldrb r0, [r1] + cmp r0, 0 + beq _081B0AE8 + subs r0, 0x1 + cmp r0, r5 + beq _081B0AC8 +_081B0AE8: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_081B0AEE: + bl sub_81B8830 + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bcc _081B0ADA + adds r0, r5, 0 + movs r1, 0x1 + bl sub_81B0A10 +_081B0B02: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81B0A9C + + thumb_func_start sub_81B0B08 +sub_81B0B08: @ 81B0B08 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x64 + muls r0, r4 + ldr r1, =gPlayerParty + adds r0, r1 + bl sub_80DAE0C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _081B0B5A + lsls r0, 2 + ldr r1, =_081B0B34 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081B0B34: + .4byte _081B0B48 + .4byte _081B0B52 + .4byte _081B0B52 + .4byte _081B0B48 + .4byte _081B0B48 +_081B0B48: + adds r0, r4, 0 + movs r1, 0x7 + bl sub_81B0A10 + b _081B0B5A +_081B0B52: + adds r0, r4, 0 + movs r1, 0x6 + bl sub_81B0A10 +_081B0B5A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81B0B08 + + thumb_func_start sub_81B0B60 +sub_81B0B60: @ 81B0B60 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x64 + muls r0, r4 + ldr r1, =gPlayerParty + adds r0, r1 + bl sub_806E25C + lsls r0, 24 + cmp r0, 0 + bne _081B0B88 + adds r0, r4, 0 + movs r1, 0x9 + bl sub_81B0A10 + b _081B0B90 + .pool +_081B0B88: + adds r0, r4, 0 + movs r1, 0x8 + bl sub_81B0A10 +_081B0B90: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81B0B60 + + thumb_func_start sub_81B0B98 +sub_81B0B98: @ 81B0B98 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_81B218C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081B0BB6 + adds r0, r4, 0 + movs r1, 0x6 + bl sub_81B0A10 + b _081B0BBE +_081B0BB6: + adds r0, r4, 0 + movs r1, 0x7 + bl sub_81B0A10 +_081B0BBE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81B0B98 + + thumb_func_start sub_81B0BC4 +sub_81B0BC4: @ 81B0BC4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x64 + muls r0, r4 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xC + bl GetMonData + cmp r0, 0 + beq _081B0BEC + adds r0, r4, 0 + movs r1, 0xB + bl sub_81B0A10 + b _081B0BF4 + .pool +_081B0BEC: + adds r0, r4, 0 + movs r1, 0xC + bl sub_81B0A10 +_081B0BF4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81B0BC4 + + thumb_func_start sub_81B0BFC +sub_81B0BFC: @ 81B0BFC + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r6, r1, r0 + ldr r0, =gUnknown_0203CE7C + ldrh r4, [r0] + ldr r0, =gUnknown_0203CEC8 + ldrb r0, [r0, 0xB] + cmp r0, 0xC + bne _081B0C40 + ldr r1, =gScriptResult + movs r0, 0 + strh r0, [r1] + ldr r0, =gSpecialVar_0x8005 + ldrb r2, [r0] + adds r0, r5, 0 + movs r1, 0 + bl sub_81B0C94 + b _081B0C8A + .pool +_081B0C40: + cmp r0, 0x3 + bne _081B0C56 + adds r0, r4, 0 + bl CheckIfItemIsTMHMOrEvolutionStone + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B0C5A + cmp r0, 0x2 + beq _081B0C66 +_081B0C56: + movs r0, 0 + b _081B0C8C +_081B0C5A: + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0 + bl sub_81B0C94 + b _081B0C8A +_081B0C66: + adds r0, r6, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _081B0C82 + adds r0, r6, 0 + movs r1, 0x3 + adds r2, r4, 0 + bl GetEvolutionTargetSpecies + lsls r0, 16 + cmp r0, 0 + bne _081B0C56 +_081B0C82: + adds r0, r5, 0 + movs r1, 0 + bl sub_81B0A10 +_081B0C8A: + movs r0, 0x1 +_081B0C8C: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81B0BFC + + thumb_func_start sub_81B0C94 +sub_81B0C94: @ 81B0C94 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 24 + lsrs r2, 24 + movs r0, 0x64 + muls r0, r4 + ldr r3, =gPlayerParty + adds r0, r3 + bl sub_81B22D8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + beq _081B0CD2 + cmp r0, 0x2 + bgt _081B0CC4 + cmp r0, 0x1 + beq _081B0CC8 + b _081B0CDC + .pool +_081B0CC4: + cmp r0, 0x3 + bne _081B0CDC +_081B0CC8: + adds r0, r4, 0 + movs r1, 0x9 + bl sub_81B0A10 + b _081B0CE4 +_081B0CD2: + adds r0, r4, 0 + movs r1, 0xA + bl sub_81B0A10 + b _081B0CE4 +_081B0CDC: + adds r0, r4, 0 + movs r1, 0x8 + bl sub_81B0A10 +_081B0CE4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81B0C94 + + thumb_func_start sub_81B0CEC +sub_81B0CEC: @ 81B0CEC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gUnknown_0203CEDC + lsls r2, r0, 4 + ldr r1, [r1] + adds r6, r1, r2 + subs r0, 0x3 + lsls r0, 24 + ldr r5, =gUnknown_02022FF8 + lsrs r0, 19 + mov r8, r0 + adds r7, r0, r5 + ldrh r0, [r7] + cmp r0, 0 + bne _081B0D24 + ldrb r0, [r6, 0x8] + bl sub_81B2720 + b _081B0D8E + .pool +_081B0D24: + ldr r2, [r6] + ldrb r0, [r6, 0x8] + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + ldr r4, [r2] + movs r2, 0 + movs r3, 0 + bl _call_via_r4 + ldr r4, =gStringVar1 + adds r5, 0x4 + add r5, r8 + adds r0, r4, 0 + adds r1, r5, 0 + bl StringCopy + adds r0, r4, 0 + bl StringGetEnd10 + adds r0, r4, 0 + bl sub_81DB52C + ldrb r0, [r6, 0x8] + ldr r3, [r6] + adds r3, 0x4 + adds r1, r4, 0 + movs r2, 0 + bl sub_81B2A3C + ldrb r0, [r7, 0xF] + adds r1, r6, 0 + bl sub_81B2B40 + ldrb r0, [r7, 0x1C] + ldrh r1, [r7] + adds r2, r5, 0 + adds r3, r6, 0 + bl sub_81B2BF4 + ldrh r0, [r7, 0x10] + adds r1, r6, 0 + bl sub_81B2D3C + ldrh r0, [r7, 0x12] + adds r1, r6, 0 + bl sub_81B2DDC + ldrh r0, [r7, 0x10] + ldrh r1, [r7, 0x12] + adds r2, r6, 0 + bl sub_81B2E64 +_081B0D8E: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B0CEC + + thumb_func_start sub_81B0DA0 +sub_81B0DA0: @ 81B0DA0 + push {r4,r5,lr} + ldr r5, =gUnknown_0203CEC4 + ldr r0, [r5] + movs r4, 0x86 + lsls r4, 2 + adds r0, r4 + ldrb r0, [r0] + bl sub_81B07E0 + ldr r1, [r5] + adds r1, r4 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + beq _081B0DCC + movs r0, 0 + b _081B0DCE + .pool +_081B0DCC: + movs r0, 0x1 +_081B0DCE: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81B0DA0 + + thumb_func_start sub_81B0DD4 +sub_81B0DD4: @ 81B0DD4 + lsls r0, 16 + ldr r1, =gUnknown_0203CEE0 + lsrs r0, 11 + ldr r1, [r1] + adds r1, r0 + adds r0, r1, 0 + bx lr + .pool + thumb_func_end sub_81B0DD4 + + thumb_func_start party_menu_add_per_mon_objects_internal +party_menu_add_per_mon_objects_internal: @ 81B0DE8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, =gUnknown_0203CEC8 + ldrb r1, [r0, 0x8] + movs r0, 0xF + ands r0, r1 + cmp r0, 0x5 + bne _081B0E98 + cmp r7, 0x2 + bls _081B0E98 + subs r0, r7, 0x3 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r0, =gUnknown_02022FF8 + mov r9, r0 + mov r2, r10 + lsls r2, 5 + mov r8, r2 + mov r6, r8 + add r6, r9 + ldrh r0, [r6] + cmp r0, 0 + beq _081B0EDC + mov r1, r9 + adds r1, 0x18 + add r1, r8 + ldr r1, [r1] + ldr r4, =gUnknown_0203CEDC + lsls r5, r7, 4 + ldr r2, [r4] + adds r2, r5 + movs r3, 0 + str r3, [sp] + bl party_menu_link_mon_icon_anim + ldrh r0, [r6] + ldrh r1, [r6, 0x2] + ldr r2, [r4] + adds r2, r5 + bl party_menu_link_mon_held_item_object + ldrh r0, [r6] + ldr r1, [r4] + adds r1, r5 + bl party_menu_link_mon_pokeball_object + ldrh r0, [r6, 0x10] + cmp r0, 0 + bne _081B0E68 + movs r3, 0x7 + b _081B0E78 + .pool +_081B0E68: + mov r0, r9 + adds r0, 0x14 + add r0, r8 + ldr r0, [r0] + bl pokemon_ailments_get_primary + lsls r0, 24 + lsrs r3, r0, 24 +_081B0E78: + ldr r1, =gUnknown_02022FF8 + mov r2, r10 + lsls r0, r2, 5 + adds r0, r1 + ldrh r0, [r0] + ldr r1, =gUnknown_0203CEDC + ldr r2, [r1] + adds r2, r5 + adds r1, r3, 0 + bl party_menu_link_mon_status_condition_object + b _081B0EDC + .pool +_081B0E98: + movs r0, 0x64 + adds r1, r7, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r6, r1, r0 + adds r0, r6, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _081B0EDC + ldr r4, =gUnknown_0203CEDC + lsls r5, r7, 4 + ldr r1, [r4] + adds r1, r5 + adds r0, r6, 0 + adds r2, r7, 0 + bl party_menu_icon_anim + ldr r1, [r4] + adds r1, r5 + adds r0, r6, 0 + bl party_menu_held_item_object + ldr r1, [r4] + adds r1, r5 + adds r0, r6, 0 + bl party_menu_pokeball_object + ldr r1, [r4] + adds r1, r5 + adds r0, r6, 0 + bl party_menu_status_condition_object +_081B0EDC: + 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 party_menu_add_per_mon_objects_internal + + thumb_func_start party_menu_add_per_mon_objects +party_menu_add_per_mon_objects: @ 81B0EF4 + push {r4,r5,lr} + ldr r5, =gUnknown_0203CEC4 + ldr r0, [r5] + movs r4, 0x86 + lsls r4, 2 + adds r0, r4 + ldrb r0, [r0] + bl party_menu_add_per_mon_objects_internal + ldr r1, [r5] + adds r1, r4 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + beq _081B0F20 + movs r0, 0 + b _081B0F22 + .pool +_081B0F20: + movs r0, 0x1 +_081B0F22: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end party_menu_add_per_mon_objects + + thumb_func_start sub_81B0F28 +sub_81B0F28: @ 81B0F28 + push {r4,lr} + sub sp, 0xC + ldr r0, =gUnknown_0203CEC8 + ldrb r1, [r0, 0x8] + movs r0, 0xF + ands r0, r1 + cmp r0, 0x5 + bne _081B0F54 + movs r0, 0x7 + str r0, [sp] + movs r0, 0x2 + str r0, [sp, 0x4] + movs r0, 0x1 + str r0, [sp, 0x8] + movs r1, 0xE + movs r2, 0x17 + movs r3, 0x11 + bl FillBgTilemapBufferRect + b _081B0FBC + .pool +_081B0F54: + ldr r4, =gUnknown_0203CEC4 + ldr r0, [r4] + ldrb r0, [r0, 0x8] + lsls r0, 31 + cmp r0, 0 + beq _081B0F94 + movs r0, 0xBF + movs r1, 0x88 + bl sub_81B5F74 + ldr r3, [r4] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x7F + ands r0, r1 + lsls r0, 4 + ldrh r2, [r3, 0x8] + ldr r1, =0xfffff80f + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x8] + bl sub_81B120C + movs r0, 0xBF + movs r1, 0x98 + bl sub_81B5F74 + b _081B0F9C + .pool +_081B0F94: + movs r0, 0xC6 + movs r1, 0x94 + bl sub_81B5F34 +_081B0F9C: + ldr r3, [r4] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x7F + ands r0, r1 + lsls r0, 11 + ldr r1, [r3, 0x8] + ldr r2, =0xfffc07ff + ands r1, r2 + orrs r1, r0 + str r1, [r3, 0x8] + ldr r0, =gUnknown_0203CEC8 + ldrb r0, [r0, 0x9] + movs r1, 0x1 + bl sub_81B0FCC +_081B0FBC: + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B0F28 + + thumb_func_start sub_81B0FCC +sub_81B0FCC: @ 81B0FCC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + cmp r7, 0x6 + beq _081B1038 + cmp r7, 0x7 + beq _081B1074 + movs r0, 0x64 + muls r0, r7 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _081B10E8 + ldr r6, =gUnknown_0203CEDC + lsls r5, r7, 4 + ldr r4, [r6] + adds r4, r5 + adds r0, r7, 0 + mov r1, r8 + bl sub_81B10F8 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_81B2748 + ldr r0, [r6] + adds r0, r5, r0 + ldrb r0, [r0, 0x9] + mov r1, r8 + bl sub_81B5B6C + ldr r0, [r6] + adds r5, r0 + ldrb r0, [r5, 0xB] + mov r1, r8 + bl sub_81B5F98 + b _081B10E8 + .pool +_081B1038: + mov r0, r8 + cmp r0, 0 + bne _081B1052 + movs r0, 0x2 + str r0, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + movs r1, 0x17 + movs r2, 0x10 + movs r3, 0x7 + bl sub_8199C30 + b _081B1064 +_081B1052: + movs r0, 0x2 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x1 + movs r1, 0x17 + movs r2, 0x10 + movs r3, 0x7 + bl sub_8199C30 +_081B1064: + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + ldrh r0, [r0, 0x8] + lsls r0, 21 + b _081B10DA + .pool +_081B1074: + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + ldrb r0, [r0, 0x8] + lsls r0, 31 + cmp r0, 0 + bne _081B10A6 + mov r0, r8 + cmp r0, 0 + bne _081B1098 + movs r0, 0x2 + str r0, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + movs r1, 0x17 + movs r2, 0x11 + b _081B10B8 + .pool +_081B1098: + movs r0, 0x2 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x1 + movs r1, 0x17 + movs r2, 0x11 + b _081B10B8 +_081B10A6: + mov r0, r8 + cmp r0, 0 + bne _081B10C0 + movs r0, 0x2 + str r0, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + movs r1, 0x17 + movs r2, 0x12 +_081B10B8: + movs r3, 0x7 + bl sub_8199C30 + b _081B10D2 +_081B10C0: + movs r0, 0x2 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x1 + movs r1, 0x17 + movs r2, 0x12 + movs r3, 0x7 + bl sub_8199C30 +_081B10D2: + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + ldr r0, [r0, 0x8] + lsls r0, 14 +_081B10DA: + lsrs r0, 25 + mov r1, r8 + bl sub_81B5F98 + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram +_081B10E8: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B0FCC + + thumb_func_start sub_81B10F8 +sub_81B10F8: @ 81B10F8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r1, 24 + movs r4, 0 + cmp r1, 0x1 + bne _081B110A + movs r4, 0x1 +_081B110A: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + bne _081B1120 + movs r0, 0x2 + orrs r4, r0 +_081B1120: + adds r0, r5, 0 + bl sub_81B118C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081B1136 + movs r0, 0x8 + orrs r4, r0 + lsls r0, r4, 24 + lsrs r4, r0, 24 +_081B1136: + ldr r0, =gUnknown_0203CEC8 + ldrb r1, [r0, 0xB] + adds r2, r0, 0 + cmp r1, 0x9 + bne _081B1148 + movs r0, 0x10 + orrs r4, r0 + lsls r0, r4, 24 + lsrs r4, r0, 24 +_081B1148: + cmp r1, 0x8 + bne _081B1164 + movs r0, 0x9 + ldrsb r0, [r2, r0] + cmp r5, r0 + beq _081B115C + movs r0, 0xA + ldrsb r0, [r2, r0] + cmp r5, r0 + bne _081B1164 +_081B115C: + movs r0, 0x4 + orrs r4, r0 + lsls r0, r4, 24 + lsrs r4, r0, 24 +_081B1164: + ldrb r0, [r2, 0xB] + cmp r0, 0xA + bne _081B117A + movs r0, 0x9 + ldrsb r0, [r2, r0] + cmp r5, r0 + bne _081B117A + movs r0, 0x20 + orrs r4, r0 + lsls r0, r4, 24 + lsrs r4, r0, 24 +_081B117A: + adds r0, r4, 0 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81B10F8 + + thumb_func_start sub_81B118C +sub_81B118C: @ 81B118C + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, =gUnknown_0203CEC8 + ldrb r1, [r0, 0x8] + movs r0, 0x30 + ands r0, r1 + cmp r0, 0x20 + bne _081B11B4 + cmp r2, 0x1 + beq _081B11AA + cmp r2, 0x4 + beq _081B11AA + cmp r2, 0x5 + bne _081B11B4 +_081B11AA: + movs r0, 0x1 + b _081B11F8 + .pool +_081B11B4: + cmp r2, 0x2 + bhi _081B11F6 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 11 + ands r0, r1 + cmp r0, 0 + beq _081B11F6 + ldr r0, =gMain + ldr r1, =0x00000439 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081B11F6 + adds r0, r2, 0 + bl sub_81B8F38 + ldr r1, =gBattleStruct + ldr r1, [r1] + movs r2, 0xA8 + lsls r2, 2 + adds r1, r2 + ldrb r1, [r1] + lsls r0, 24 + lsrs r0, 24 + asrs r1, r0 + movs r0, 0x1 + ands r1, r0 + cmp r1, 0 + bne _081B11F8 +_081B11F6: + movs r0, 0 +_081B11F8: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81B118C + + thumb_func_start sub_81B120C +sub_81B120C: @ 81B120C + push {r4-r6,lr} + sub sp, 0xC + ldr r1, =gUnknown_086157C4 + movs r6, 0x7 + str r6, [sp] + movs r5, 0x2 + str r5, [sp, 0x4] + movs r4, 0x11 + str r4, [sp, 0x8] + movs r0, 0x1 + movs r2, 0x17 + movs r3, 0x10 + bl CopyToBgTilemapBufferRect_ChangePalette + ldr r1, =gUnknown_086157E0 + str r6, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x1 + movs r2, 0x17 + movs r3, 0x12 + bl CopyToBgTilemapBufferRect_ChangePalette + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B120C + + thumb_func_start sub_81B1250 +sub_81B1250: @ 81B1250 + push {lr} + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x49 + ands r0, r1 + cmp r0, 0x49 + bne _081B1280 + ldr r0, =gMain + ldr r1, =0x00000439 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081B1280 + movs r0, 0x1 + b _081B1282 + .pool +_081B1280: + movs r0, 0 +_081B1282: + pop {r1} + bx r1 + thumb_func_end sub_81B1250 + + thumb_func_start sub_81B1288 +sub_81B1288: @ 81B1288 + push {r4-r6,lr} + adds r4, r0, 0 + adds r6, r1, 0 + movs r0, 0x64 + bl Alloc + adds r5, r0, 0 + adds r1, r4, 0 + movs r2, 0x64 + bl memcpy + adds r0, r4, 0 + adds r1, r6, 0 + movs r2, 0x64 + bl memcpy + adds r0, r6, 0 + adds r1, r5, 0 + movs r2, 0x64 + bl memcpy + adds r0, r5, 0 + bl Free + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81B1288 + + thumb_func_start sub_81B12C0 +sub_81B12C0: @ 81B12C0 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =c3_0811FAB4 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B12C0 + + thumb_func_start c3_0811FAB4 +c3_0811FAB4: @ 81B12F8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081B134C + ldr r4, =gUnknown_0203CEC8 + ldrb r1, [r4, 0x8] + movs r0, 0xF + ands r0, r1 + cmp r0, 0x1 + bne _081B131A + bl sub_81B9080 +_081B131A: + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + ldr r0, [r0, 0x4] + cmp r0, 0 + beq _081B1338 + bl SetMainCallback2 + b _081B133E + .pool +_081B1338: + ldr r0, [r4] + bl SetMainCallback2 +_081B133E: + bl ResetSpriteData + bl sub_81B06F4 + adds r0, r5, 0 + bl DestroyTask +_081B134C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end c3_0811FAB4 + + thumb_func_start brm_get_pokemon_selection +brm_get_pokemon_selection: @ 81B1354 + ldr r0, =gUnknown_0203CEC8 + ldrb r0, [r0, 0x9] + bx lr + .pool + thumb_func_end brm_get_pokemon_selection + + thumb_func_start sub_81B1360 +sub_81B1360: @ 81B1360 + ldr r0, =gUnknown_0203CEC8 + ldrb r0, [r0, 0x8] + lsls r0, 28 + lsrs r0, 28 + bx lr + .pool + thumb_func_end sub_81B1360 + + thumb_func_start sub_81B1370 +sub_81B1370: @ 81B1370 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r6, r5, 0 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081B13E0 + bl sub_81221EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B13E0 + bl sub_81B13EC + adds r4, r0, 0 + bl sub_81B1760 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2 + beq _081B13C0 + cmp r0, 0x2 + bgt _081B13B0 + cmp r0, 0x1 + beq _081B13B6 + b _081B13E0 + .pool +_081B13B0: + cmp r0, 0x8 + beq _081B13CA + b _081B13E0 +_081B13B6: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_81B140C + b _081B13E0 +_081B13C0: + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_81B15D0 + b _081B13E0 +_081B13CA: + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + ldrb r0, [r0, 0x8] + lsls r0, 31 + cmp r0, 0 + beq _081B13E0 + movs r0, 0x5 + bl PlaySE + bl sub_81B4F88 +_081B13E0: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B1370 + + thumb_func_start sub_81B13EC +sub_81B13EC: @ 81B13EC + push {lr} + ldr r0, =gUnknown_0203CEC8 + ldrb r1, [r0, 0xB] + cmp r1, 0x8 + beq _081B13FA + cmp r1, 0xA + bne _081B1404 +_081B13FA: + adds r0, 0xA + b _081B1406 + .pool +_081B1404: + adds r0, 0x9 +_081B1406: + pop {r1} + bx r1 + thumb_func_end sub_81B13EC + + thumb_func_start sub_81B140C +sub_81B140C: @ 81B140C + push {r4,r5,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r0, 0x6 + bne _081B142C + ldr r0, =gUnknown_0203CEC8 + ldr r1, [r0, 0x4] + adds r0, r5, 0 + bl _call_via_r1 + b _081B159E + .pool +_081B142C: + ldr r0, =gUnknown_0203CEC8 + ldrb r0, [r0, 0xB] + subs r0, 0x3 + cmp r0, 0xA + bls _081B1438 + b _081B1592 +_081B1438: + lsls r0, 2 + ldr r1, =_081B144C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081B144C: + .4byte _081B149C + .4byte _081B1592 + .4byte _081B1538 + .4byte _081B1538 + .4byte _081B1510 + .4byte _081B1560 + .4byte _081B1592 + .4byte _081B1478 + .4byte _081B156E + .4byte _081B14E8 + .4byte _081B157C +_081B1478: + adds r0, r4, 0 + bl sub_81B15A4 + lsls r0, 24 + cmp r0, 0 + bne _081B1486 + b _081B159E +_081B1486: + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + adds r0, 0xD + bl sub_81B302C + adds r0, r5, 0 + bl sub_81615A8 + b _081B159E + .pool +_081B149C: + adds r0, r4, 0 + bl sub_81B15A4 + lsls r0, 24 + cmp r0, 0 + bne _081B14AA + b _081B159E +_081B14AA: + ldr r0, =gUnknown_0203CEC8 + ldrb r1, [r0, 0x8] + movs r0, 0xF + ands r0, r1 + ldr r2, =gUnknown_0203CEC4 + cmp r0, 0x1 + bne _081B14BE + ldr r1, [r2] + ldr r0, =sub_81B9140 + str r0, [r1, 0x4] +_081B14BE: + ldr r0, [r2] + adds r0, 0xD + bl sub_81B302C + ldr r0, =gUnknown_03006328 + ldr r1, =sub_81B6794 + ldr r2, [r0] + adds r0, r5, 0 + bl _call_via_r2 + b _081B159E + .pool +_081B14E8: + adds r0, r4, 0 + bl sub_81B15A4 + lsls r0, 24 + cmp r0, 0 + beq _081B159E + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + adds r0, 0xD + bl sub_81B302C + adds r0, r5, 0 + bl sub_81B7E4C + b _081B159E + .pool +_081B1510: + adds r0, r4, 0 + bl sub_81B15A4 + lsls r0, 24 + cmp r0, 0 + beq _081B159E + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + adds r0, 0xD + bl sub_81B302C + adds r0, r5, 0 + bl sub_81B8474 + b _081B159E + .pool +_081B1538: + adds r0, r4, 0 + bl sub_81B15A4 + lsls r0, 24 + cmp r0, 0 + beq _081B159E + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + adds r0, 0xD + bl sub_81B302C + adds r0, r5, 0 + bl sub_81B7FAC + b _081B159E + .pool +_081B1560: + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + bl sub_81B3938 + b _081B159E +_081B156E: + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + bl sub_81B12C0 + b _081B159E +_081B157C: + adds r0, r4, 0 + bl sub_81B15A4 + lsls r0, 24 + cmp r0, 0 + beq _081B159E + ldrb r1, [r4] + adds r0, r5, 0 + bl sub_81B21AC + b _081B159E +_081B1592: + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + bl sub_81B36FC +_081B159E: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81B140C + + thumb_func_start sub_81B15A4 +sub_81B15A4: @ 81B15A4 + push {lr} + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x2D + bl GetMonData + cmp r0, 0x1 + beq _081B15C4 + movs r0, 0x1 + b _081B15CC + .pool +_081B15C4: + movs r0, 0x20 + bl PlaySE + movs r0, 0 +_081B15CC: + pop {r1} + bx r1 + thumb_func_end sub_81B15A4 + + thumb_func_start sub_81B15D0 +sub_81B15D0: @ 81B15D0 + push {r4,r5,lr} + adds r5, r1, 0 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gUnknown_0203CEC8 + ldrb r0, [r0, 0xB] + cmp r0, 0x8 + beq _081B1602 + cmp r0, 0x8 + bgt _081B15F0 + cmp r0, 0x1 + beq _081B15FA + b _081B161E + .pool +_081B15F0: + cmp r0, 0xA + beq _081B1602 + cmp r0, 0xD + beq _081B1610 + b _081B161E +_081B15FA: + movs r0, 0x20 + bl PlaySE + b _081B1652 +_081B1602: + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_81B407C + b _081B1652 +_081B1610: + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_81B2210 + b _081B1652 +_081B161E: + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_81B1660 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B1652 + bl sub_81221AC + lsls r0, 24 + cmp r0, 0 + bne _081B1642 + ldr r1, =gSpecialVar_0x8004 + movs r0, 0x7 + strh r0, [r1] +_081B1642: + ldr r0, =gUnknown_0203CEE8 + movs r1, 0 + strb r1, [r0] + movs r0, 0x7 + strb r0, [r5] + adds r0, r4, 0 + bl sub_81B12C0 +_081B1652: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B15D0 + + thumb_func_start sub_81B1660 +sub_81B1660: @ 81B1660 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + ldr r0, =gUnknown_0203CEC8 + ldrb r0, [r0, 0x8] + movs r1, 0xF + ands r1, r0 + cmp r1, 0x2 + bne _081B1680 + ldr r5, =gUnknown_085EA110 + b _081B168A + .pool +_081B1680: + cmp r1, 0x4 + bne _081B168A + bl sub_81B88BC + adds r5, r0, 0 +_081B168A: + cmp r5, 0 + beq _081B16CC + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + adds r0, 0xD + bl sub_81B302C + ldr r4, =gStringVar4 + adds r0, r4, 0 + adds r1, r5, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81B1B5C + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B16D4 + str r1, [r0] + movs r0, 0x1 + b _081B16CE + .pool +_081B16CC: + movs r0, 0 +_081B16CE: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81B1660 + + thumb_func_start sub_81B16D4 +sub_81B16D4: @ 81B16D4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_81B1BD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B16F8 + bl sub_81B334C + ldr r0, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B1708 + str r0, [r1] +_081B16F8: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B16D4 + + thumb_func_start sub_81B1708 +sub_81B1708: @ 81B1708 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8198C58 + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _081B172E + cmp r1, 0 + bgt _081B1728 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _081B174C + b _081B1758 +_081B1728: + cmp r1, 0x1 + beq _081B1752 + b _081B1758 +_081B172E: + ldr r0, =gUnknown_0203CEE8 + strb r1, [r0] + ldr r1, =gUnknown_0203CEC8 + movs r0, 0x7 + strb r0, [r1, 0x9] + bl sub_81B8558 + adds r0, r4, 0 + bl sub_81B12C0 + b _081B1758 + .pool +_081B174C: + movs r0, 0x5 + bl PlaySE +_081B1752: + adds r0, r4, 0 + bl sub_81B1C1C +_081B1758: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81B1708 + + thumb_func_start sub_81B1760 +sub_81B1760: @ 81B1760 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gMain + ldrh r1, [r0, 0x30] + adds r3, r0, 0 + cmp r1, 0x20 + beq _081B178E + cmp r1, 0x20 + bgt _081B177C + cmp r1, 0x10 + beq _081B1792 + b _081B1796 + .pool +_081B177C: + cmp r1, 0x40 + beq _081B1786 + cmp r1, 0x80 + beq _081B178A + b _081B1796 +_081B1786: + movs r1, 0xFF + b _081B17B2 +_081B178A: + movs r1, 0x1 + b _081B17B2 +_081B178E: + movs r1, 0xFE + b _081B17B2 +_081B1792: + movs r1, 0x2 + b _081B17B2 +_081B1796: + bl sub_812210C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B17AA + cmp r0, 0x2 + beq _081B17AE + movs r1, 0 + b _081B17B0 +_081B17AA: + movs r1, 0xFF + b _081B17B0 +_081B17AE: + movs r1, 0x1 +_081B17B0: + ldr r3, =gMain +_081B17B2: + ldrh r2, [r3, 0x2E] + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + beq _081B17C4 + movs r0, 0x8 + b _081B17F0 + .pool +_081B17C4: + lsls r0, r1, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _081B17D6 + adds r0, r4, 0 + bl sub_81B17F8 + movs r0, 0 + b _081B17F0 +_081B17D6: + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + beq _081B17EA + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r0, 0x7 + bne _081B17EA + movs r0, 0x2 + b _081B17F0 +_081B17EA: + ldrh r1, [r3, 0x2E] + movs r0, 0x3 + ands r0, r1 +_081B17F0: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81B1760 + + thumb_func_start sub_81B17F8 +sub_81B17F8: @ 81B17F8 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldrb r4, [r5] + ldr r0, =gUnknown_0203CEC8 + ldrb r0, [r0, 0x8] + lsls r0, 26 + lsrs r0, 30 + cmp r0, 0 + bne _081B1820 + lsls r1, 24 + asrs r1, 24 + adds r0, r5, 0 + bl sub_81B1854 + b _081B182A + .pool +_081B1820: + lsls r1, 24 + asrs r1, 24 + adds r0, r5, 0 + bl sub_81B195C +_081B182A: + movs r1, 0 + ldrsb r1, [r5, r1] + lsls r4, 24 + asrs r0, r4, 24 + cmp r1, r0 + beq _081B184C + movs r0, 0x5 + bl PlaySE + lsrs r0, r4, 24 + movs r1, 0 + bl sub_81B0FCC + ldrb r0, [r5] + movs r1, 0x1 + bl sub_81B0FCC +_081B184C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81B17F8 + + thumb_func_start sub_81B1854 +sub_81B1854: @ 81B1854 + push {r4,lr} + adds r4, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _081B187A + cmp r1, r0 + bgt _081B1870 + subs r0, 0x1 + cmp r1, r0 + beq _081B1924 + b _081B1952 +_081B1870: + cmp r1, 0x1 + beq _081B18C0 + cmp r1, 0x2 + beq _081B18F8 + b _081B1952 +_081B187A: + ldrb r0, [r4] + movs r1, 0 + ldrsb r1, [r4, r1] + cmp r1, 0 + bne _081B1888 + movs r0, 0x7 + b _081B1950 +_081B1888: + cmp r1, 0x6 + bne _081B1898 + ldr r0, =gPlayerPartyCount + ldrb r0, [r0] + subs r0, 0x1 + b _081B1950 + .pool +_081B1898: + cmp r1, 0x7 + bne _081B18BC + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + ldrb r0, [r0, 0x8] + lsls r0, 31 + cmp r0, 0 + beq _081B18B0 + movs r0, 0x6 + b _081B1950 + .pool +_081B18B0: + ldr r0, =gPlayerPartyCount + ldrb r0, [r0] + subs r0, 0x1 + b _081B1950 + .pool +_081B18BC: + subs r0, 0x1 + b _081B1950 +_081B18C0: + ldrb r2, [r4] + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r0, 0x7 + beq _081B194E + movs r1, 0 + ldrsb r1, [r4, r1] + ldr r0, =gPlayerPartyCount + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + bne _081B18F4 + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + ldrb r0, [r0, 0x8] + lsls r0, 31 + cmp r0, 0 + beq _081B18F0 + movs r0, 0x6 + b _081B1950 + .pool +_081B18F0: + movs r0, 0x7 + b _081B1950 +_081B18F4: + adds r0, r2, 0x1 + b _081B1950 +_081B18F8: + ldr r0, =gPlayerPartyCount + ldrb r0, [r0] + cmp r0, 0x1 + beq _081B1952 + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r0, 0 + bne _081B1952 + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + ldrb r0, [r0, 0x8] + lsls r0, 28 + lsrs r0, 29 + cmp r0, 0 + bne _081B1950 + movs r0, 0x1 + b _081B1950 + .pool +_081B1924: + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r0, 0 + beq _081B1952 + cmp r0, 0x6 + beq _081B1952 + cmp r0, 0x7 + beq _081B1952 + ldr r0, =gUnknown_0203CEC4 + ldr r3, [r0] + movs r1, 0 + ldrsb r1, [r4, r1] + movs r0, 0x7 + ands r1, r0 + lsls r1, 1 + ldrb r2, [r3, 0x8] + movs r0, 0xF + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x8] +_081B194E: + movs r0, 0 +_081B1950: + strb r0, [r4] +_081B1952: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B1854 + + thumb_func_start sub_81B195C +sub_81B195C: @ 81B195C + push {r4-r6,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r2, r1, 24 + asrs r5, r1, 24 + movs r6, 0x1 + negs r6, r6 + cmp r5, r6 + beq _081B1988 + cmp r5, r6 + bgt _081B197E + movs r0, 0x2 + negs r0, r0 + cmp r5, r0 + bne _081B197C + b _081B1A9C +_081B197C: + b _081B1AF4 +_081B197E: + cmp r5, 0x1 + beq _081B19E4 + cmp r5, 0x2 + beq _081B1A24 + b _081B1AF4 +_081B1988: + ldrb r1, [r4] + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r0, 0 + bne _081B1996 + movs r0, 0x7 + b _081B1AF2 +_081B1996: + cmp r0, 0x6 + bne _081B19A8 + ldr r0, =gPlayerPartyCount + ldrb r0, [r0] + subs r0, 0x1 + b _081B1AF2 + .pool +_081B19A8: + cmp r0, 0x7 + bne _081B19C4 + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + ldrb r0, [r0, 0x8] + lsls r0, 31 + cmp r0, 0 + beq _081B19C0 + movs r0, 0x6 + b _081B1AF2 + .pool +_081B19C0: + subs r0, r1, 0x1 + strb r0, [r4] +_081B19C4: + movs r0, 0 + ldrsb r0, [r4, r0] + lsls r1, r2, 24 + asrs r1, 24 + bl sub_81B1B00 + lsls r0, 24 + lsrs r2, r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _081B19E0 + b _081B1AF4 +_081B19E0: + strb r2, [r4] + b _081B1AF4 +_081B19E4: + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r0, 0x6 + bne _081B19F0 + movs r0, 0x7 + b _081B1AF2 +_081B19F0: + cmp r0, 0x7 + bne _081B19F8 + movs r0, 0 + b _081B1AF2 +_081B19F8: + movs r0, 0 + ldrsb r0, [r4, r0] + movs r1, 0x1 + bl sub_81B1B00 + lsls r0, 24 + lsrs r2, r0, 24 + asrs r0, 24 + cmp r0, r6 + bne _081B19E0 + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + ldrb r0, [r0, 0x8] + lsls r0, 31 + cmp r0, 0 + beq _081B1A20 + movs r0, 0x6 + b _081B1AF2 + .pool +_081B1A20: + movs r0, 0x7 + b _081B1AF2 +_081B1A24: + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r0, 0 + bne _081B1A5C + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + ldrb r0, [r0, 0x8] + lsls r0, 28 + lsrs r6, r0, 29 + cmp r6, 0x3 + bne _081B1A54 + ldr r0, =gUnknown_02024618 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _081B1AF4 + strb r6, [r4] + b _081B1AF4 + .pool +_081B1A54: + ldr r0, =gUnknown_020245B4 + b _081B1A70 + .pool +_081B1A5C: + cmp r0, 0x1 + bne _081B1AF4 + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + ldrb r0, [r0, 0x8] + lsls r0, 28 + lsrs r5, r0, 29 + cmp r5, 0x5 + bne _081B1A88 + ldr r0, =gUnknown_020246E0 +_081B1A70: + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _081B1AF4 + strb r5, [r4] + b _081B1AF4 + .pool +_081B1A88: + ldr r0, =gUnknown_0202467C + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _081B1AF4 + movs r0, 0x4 + b _081B1AF2 + .pool +_081B1A9C: + ldrb r1, [r4] + subs r0, r1, 0x2 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _081B1ACC + ldr r0, =gUnknown_0203CEC4 + ldr r3, [r0] + movs r1, 0 + ldrsb r1, [r4, r1] + movs r0, 0x7 + ands r1, r0 + lsls r1, 1 + ldrb r2, [r3, 0x8] + movs r0, 0xF + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x8] + movs r0, 0 + b _081B1AF2 + .pool +_081B1ACC: + subs r0, r1, 0x4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _081B1AF4 + ldr r0, =gUnknown_0203CEC4 + ldr r3, [r0] + movs r1, 0 + ldrsb r1, [r4, r1] + movs r0, 0x7 + ands r1, r0 + lsls r1, 1 + ldrb r2, [r3, 0x8] + movs r0, 0xF + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x8] + movs r0, 0x1 +_081B1AF2: + strb r0, [r4] +_081B1AF4: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B195C + + thumb_func_start sub_81B1B00 +sub_81B1B00: @ 81B1B00 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + asrs r6, r1, 24 +_081B1B0A: + lsls r0, r5, 24 + asrs r0, 24 + adds r0, r6 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, r5, 24 + lsrs r0, r1, 24 + cmp r0, 0x5 + bhi _081B1B38 + asrs r4, r1, 24 + movs r0, 0x64 + muls r0, r4 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _081B1B0A + adds r0, r4, 0 + b _081B1B3C + .pool +_081B1B38: + movs r0, 0x1 + negs r0, r0 +_081B1B3C: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81B1B00 + + thumb_func_start GetMonNickname +@ u8 *GetMonNickname(struct pokemon *mon, u8 *dest) +GetMonNickname: @ 81B1B44 + push {r4,lr} + adds r4, r1, 0 + movs r1, 0x2 + adds r2, r4, 0 + bl GetMonData + adds r0, r4, 0 + bl StringGetEnd10 + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetMonNickname + + thumb_func_start sub_81B1B5C +sub_81B1B5C: @ 81B1B5C + push {r4,lr} + lsls r4, r1, 24 + lsrs r4, 24 + bl sub_81B3300 + ldr r0, =sub_81B1B8C + 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 + strh r4, [r1, 0x8] + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81B1B5C + + thumb_func_start sub_81B1B8C +sub_81B1B8C: @ 81B1B8C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + movs r0, 0x6 + bl sub_8121F20 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + beq _081B1BC8 + ldr r0, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _081B1BC2 + movs r0, 0x6 + movs r1, 0 + bl sub_8198070 + movs r0, 0x6 + bl ClearWindowTilemap +_081B1BC2: + adds r0, r5, 0 + bl DestroyTask +_081B1BC8: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B1B8C + + thumb_func_start sub_81B1BD4 +sub_81B1BD4: @ 81B1BD4 + push {lr} + ldr r0, =sub_81B1B8C + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81B1BD4 + + thumb_func_start sub_81B1BE8 +sub_81B1BE8: @ 81B1BE8 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_81221EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B1C0E + movs r0, 0 + bl display_pokemon_menu_message + ldr r0, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B1370 + str r0, [r1] +_081B1C0E: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B1BE8 + + thumb_func_start sub_81B1C1C +sub_81B1C1C: @ 81B1C1C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + bl sub_81B1BD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B1C74 + movs r0, 0x6 + movs r1, 0 + bl sub_8198070 + movs r0, 0x6 + bl ClearWindowTilemap + bl sub_81221AC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081B1C60 + ldr r0, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B1BE8 + b _081B1C72 + .pool +_081B1C60: + movs r0, 0 + bl display_pokemon_menu_message + ldr r0, =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B1370 +_081B1C72: + str r0, [r1] +_081B1C74: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B1C1C + + thumb_func_start sub_81B1C84 +sub_81B1C84: @ 81B1C84 + push {r4,r5,lr} + adds r4, r1, 0 + adds r5, r2, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 24 + lsrs r5, 24 + ldr r1, =gStringVar1 + bl GetMonNickname + ldr r1, =gStringVar2 + adds r0, r4, 0 + bl CopyItemName + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E991B + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_81B1B5C + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B1C84 + + thumb_func_start sub_81B1CD0 +sub_81B1CD0: @ 81B1CD0 + push {r4,r5,lr} + adds r4, r1, 0 + adds r5, r2, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 24 + lsrs r5, 24 + ldr r1, =gStringVar1 + bl GetMonNickname + ldr r1, =gStringVar2 + adds r0, r4, 0 + bl CopyItemName + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E999D + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_81B1B5C + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B1CD0 + + thumb_func_start sub_81B1D1C +sub_81B1D1C: @ 81B1D1C + push {r4,r5,lr} + adds r4, r1, 0 + adds r5, r2, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 24 + lsrs r5, 24 + ldr r1, =gStringVar1 + bl GetMonNickname + ldr r1, =gStringVar2 + adds r0, r4, 0 + bl CopyItemName + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E993A + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_81B1B5C + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B1D1C + + thumb_func_start sub_81B1D68 +sub_81B1D68: @ 81B1D68 + push {r4,r5,lr} + adds r4, r1, 0 + adds r5, r2, 0 + lsls r0, 16 + lsrs r0, 16 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 24 + lsrs r5, 24 + ldr r1, =gStringVar1 + bl CopyItemName + ldr r1, =gStringVar2 + adds r0, r4, 0 + bl CopyItemName + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E99DB + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_81B1B5C + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B1D68 + + thumb_func_start sub_81B1DB8 +sub_81B1DB8: @ 81B1DB8 + push {r4-r7,lr} + sub sp, 0x4 + adds r6, r0, 0 + lsls r5, r1, 16 + lsrs r4, r5, 16 + adds r7, r4, 0 + adds r0, r4, 0 + bl itemid_is_mail + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081B1DE2 + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_80D4420 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _081B1DF6 +_081B1DE2: + mov r0, sp + strb r7, [r0] + mov r1, sp + lsrs r0, r5, 24 + strb r0, [r1, 0x1] + adds r0, r6, 0 + movs r1, 0xC + mov r2, sp + bl SetMonData +_081B1DF6: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81B1DB8 + + thumb_func_start sub_81B1E00 +sub_81B1E00: @ 81B1E00 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + mov r1, sp + strh r0, [r1] + cmp r0, 0 + bne _081B1E1C + movs r0, 0 + b _081B1E3E +_081B1E1C: + movs r1, 0x1 + bl AddBagItem + lsls r0, 24 + cmp r0, 0 + beq _081B1E3C + movs r1, 0 + mov r0, sp + strh r1, [r0] + adds r0, r4, 0 + movs r1, 0xC + mov r2, sp + bl SetMonData + movs r0, 0x2 + b _081B1E3E +_081B1E3C: + movs r0, 0x1 +_081B1E3E: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81B1E00 + + thumb_func_start pokemon_item_not_removed +pokemon_item_not_removed: @ 81B1E48 + push {lr} + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085E9A69 + bl StringExpandPlaceholders + pop {r0} + bx r0 + .pool + thumb_func_end pokemon_item_not_removed + + thumb_func_start sub_81B1E60 +sub_81B1E60: @ 81B1E60 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r0, 2 + add r0, r8 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r7, r0, r1 + ldrh r0, [r7, 0x4] + ldrh r1, [r7] + adds r0, r1 + strh r0, [r7] + ldrh r0, [r7, 0x6] + subs r0, 0x1 + strh r0, [r7, 0x6] + movs r2, 0x8 + ldrsh r0, [r7, r2] + movs r5, 0x64 + muls r0, r5 + ldr r4, =gPlayerParty + adds r0, r4 + movs r1, 0x39 + adds r2, r7, 0 + bl SetMonData + movs r3, 0x8 + ldrsh r2, [r7, r3] + adds r0, r2, 0 + muls r0, r5 + adds r0, r4 + ldr r6, =gUnknown_0203CEDC + lsls r2, 4 + ldr r1, [r6] + adds r1, r2 + movs r2, 0x1 + bl sub_81B2CD4 + movs r0, 0x8 + ldrsh r2, [r7, r0] + adds r0, r2, 0 + muls r0, r5 + adds r0, r4 + lsls r2, 4 + ldr r1, [r6] + adds r1, r2 + bl sub_81B2E28 + movs r1, 0x6 + ldrsh r0, [r7, r1] + cmp r0, 0 + beq _081B1EDC + movs r2, 0 + ldrsh r1, [r7, r2] + cmp r1, 0 + beq _081B1EDC + movs r3, 0x2 + ldrsh r0, [r7, r3] + cmp r1, r0 + bne _081B1EFE +_081B1EDC: + movs r0, 0 + ldrsh r1, [r7, r0] + movs r2, 0xA + ldrsh r0, [r7, r2] + cmp r1, r0 + ble _081B1EF8 + ldr r0, =gStringVar2 + movs r3, 0xA + ldrsh r2, [r7, r3] + subs r1, r2 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN +_081B1EF8: + mov r0, r8 + bl SwitchTaskToFollowupFunc +_081B1EFE: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B1E60 + + thumb_func_start sub_81B1F18 +sub_81B1F18: @ 81B1F18 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r8, r0 + mov r9, r1 + adds r5, r2, 0 + mov r10, r3 + ldr r7, [sp, 0x20] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + mov r0, r9 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r5, 24 + lsrs r5, 24 + mov r0, r10 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + movs r0, 0x64 + mov r6, r9 + muls r6, r0 + ldr r0, =gPlayerParty + adds r6, r0 + mov r0, r8 + lsls r4, r0, 2 + add r4, r8 + lsls r4, 3 + ldr r0, =gTasks + 0x8 + adds r4, r0 + adds r0, r6, 0 + movs r1, 0x39 + bl GetMonData + strh r0, [r4] + adds r0, r6, 0 + movs r1, 0x3A + bl GetMonData + strh r0, [r4, 0x2] + lsls r5, 24 + asrs r5, 24 + strh r5, [r4, 0x4] + mov r0, r10 + strh r0, [r4, 0x6] + mov r0, r9 + strh r0, [r4, 0x8] + ldrh r0, [r4] + strh r0, [r4, 0xA] + ldr r1, =sub_81B1E60 + mov r0, r8 + adds r2, r7, 0 + bl SetTaskFuncWithFollowupFunc + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B1F18 + + thumb_func_start sub_81B1FA8 +sub_81B1FA8: @ 81B1FA8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r3, r0, r1 + cmp r5, 0x5 + bhi _081B200A + lsls r0, r5, 2 + ldr r1, =_081B1FD4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081B1FD4: + .4byte _081B1FEC + .4byte _081B1FF2 + .4byte _081B1FF6 + .4byte _081B1FFA + .4byte _081B1FFE + .4byte _081B2002 +_081B1FEC: + strh r2, [r3] + strh r2, [r3, 0xA] + b _081B200A +_081B1FF2: + strh r2, [r3, 0x2] + b _081B200A +_081B1FF6: + strh r2, [r3, 0x4] + b _081B200A +_081B1FFA: + strh r2, [r3, 0x6] + b _081B200A +_081B1FFE: + strh r2, [r3, 0x8] + b _081B200A +_081B2002: + ldr r1, =sub_81B1E60 + adds r0, r4, 0 + bl SetTaskFuncWithFollowupFunc +_081B200A: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B1FA8 + + thumb_func_start pokemon_ailments_get_primary +pokemon_ailments_get_primary: @ 81B2014 + push {lr} + adds r1, r0, 0 + movs r0, 0x88 + ands r0, r1 + cmp r0, 0 + beq _081B2024 + movs r0, 0x1 + b _081B2056 +_081B2024: + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081B2030 + movs r0, 0x2 + b _081B2056 +_081B2030: + movs r0, 0x7 + ands r0, r1 + cmp r0, 0 + beq _081B203C + movs r0, 0x3 + b _081B2056 +_081B203C: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _081B2048 + movs r0, 0x4 + b _081B2056 +_081B2048: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _081B2054 + movs r0, 0 + b _081B2056 +_081B2054: + movs r0, 0x5 +_081B2056: + pop {r1} + bx r1 + thumb_func_end pokemon_ailments_get_primary + + thumb_func_start sub_81B205C +@ u8 sub_81B205C(struct pokemon *mon, int a2, void *a3) +sub_81B205C: @ 81B205C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + bne _081B206E + movs r0, 0x7 + b _081B2096 +_081B206E: + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData + bl pokemon_ailments_get_primary + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _081B2096 + adds r0, r4, 0 + movs r1, 0 + bl sub_806DD7C + lsls r0, 24 + cmp r0, 0 + bne _081B2094 + movs r0, 0 + b _081B2096 +_081B2094: + movs r0, 0x6 +_081B2096: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81B205C + + thumb_func_start sub_81B209C +sub_81B209C: @ 81B209C + push {r4,r5,lr} + ldr r2, =gUnknown_0203CEC8 + ldrb r1, [r2, 0x8] + movs r0, 0xF + ands r0, r1 + cmp r0, 0xB + bne _081B2126 + adds r5, r2, 0 + adds r5, 0xE + movs r0, 0 + strh r0, [r2, 0xE] + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0 + bne _081B20FC + movs r4, 0 + ldr r0, =gPlayerPartyCount + ldrb r0, [r0] + cmp r4, r0 + bcs _081B2126 +_081B20C4: + movs r0, 0x64 + muls r0, r4 + ldr r1, =gPlayerParty + adds r0, r1 + bl sub_81B2134 + lsls r0, 16 + lsrs r0, 16 + lsls r0, r4 + ldrh r1, [r5] + adds r0, r1 + strh r0, [r5] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gPlayerPartyCount + ldrb r0, [r0] + cmp r4, r0 + bcc _081B20C4 + b _081B2126 + .pool +_081B20FC: + movs r4, 0 + b _081B211E +_081B2100: + movs r0, 0x64 + muls r0, r4 + ldr r1, =gPlayerParty + adds r0, r1 + bl sub_81B2164 + lsls r0, 16 + lsrs r0, 16 + lsls r0, r4 + ldrh r1, [r5] + adds r0, r1 + strh r0, [r5] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_081B211E: + ldr r0, =gPlayerPartyCount + ldrb r0, [r0] + cmp r4, r0 + bcc _081B2100 +_081B2126: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B209C + + thumb_func_start sub_81B2134 +sub_81B2134: @ 81B2134 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0x1 + beq _081B215A + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + bl sub_802C908 + cmp r0, 0 + beq _081B215A + movs r0, 0x1 + b _081B215C +_081B215A: + movs r0, 0 +_081B215C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81B2134 + + thumb_func_start sub_81B2164 +sub_81B2164: @ 81B2164 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0x1 + beq _081B2182 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0x55 + bne _081B2182 + movs r0, 0x1 + b _081B2184 +_081B2182: + movs r0, 0 +_081B2184: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81B2164 + + thumb_func_start sub_81B218C +sub_81B218C: @ 81B218C + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gUnknown_0203CEC8 + movs r2, 0xE + ldrsh r1, [r1, r2] + asrs r1, r0 + movs r0, 0x1 + ands r1, r0 + cmp r1, 0 + bne _081B21A4 + movs r0, 0 +_081B21A4: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81B218C + + thumb_func_start sub_81B21AC +sub_81B21AC: @ 81B21AC + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + adds r0, r5, 0 + bl sub_81B218C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081B21DC + movs r0, 0x5 + bl PlaySE + ldr r0, =gSpecialVar_0x8004 + strh r5, [r0] + adds r0, r4, 0 + bl sub_81B12C0 + b _081B21FE + .pool +_081B21DC: + movs r0, 0x20 + bl PlaySE + ldr r0, =gUnknown_085EA0EE + movs r1, 0 + bl sub_81B1B5C + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B1C1C + str r1, [r0] +_081B21FE: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B21AC + + thumb_func_start sub_81B2210 +sub_81B2210: @ 81B2210 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =gUnknown_085EA110 + movs r1, 0x1 + bl sub_81B1B5C + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B2248 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B2210 + + thumb_func_start sub_81B2248 +sub_81B2248: @ 81B2248 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_81B1BD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B226C + bl sub_81B334C + ldr r0, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B227C + str r0, [r1] +_081B226C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B2248 + + thumb_func_start sub_81B227C +sub_81B227C: @ 81B227C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8198C58 + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _081B22A2 + cmp r1, 0 + bgt _081B229C + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _081B22B4 + b _081B22C8 +_081B229C: + cmp r1, 0x1 + beq _081B22BA + b _081B22C8 +_081B22A2: + ldr r1, =gSpecialVar_0x8004 + movs r0, 0x7 + strh r0, [r1] + adds r0, r4, 0 + bl sub_81B12C0 + b _081B22C8 + .pool +_081B22B4: + movs r0, 0x5 + bl PlaySE +_081B22BA: + ldr r0, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B1C1C + str r0, [r1] +_081B22C8: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B227C + + thumb_func_start sub_81B22D8 +sub_81B22D8: @ 81B22D8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + lsls r1, 16 + lsrs r4, r1, 16 + adds r7, r4, 0 + lsls r2, 24 + lsrs r6, r2, 24 + mov r8, r6 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + beq _081B22FA + movs r0, 0x3 + b _081B2356 +_081B22FA: + movs r0, 0x90 + lsls r0, 1 + cmp r4, r0 + bls _081B231C + adds r1, r4, 0 + subs r1, 0x21 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl sub_806E00C + cmp r0, 0 + beq _081B2334 + adds r0, r7, 0 + bl ItemIdToBattleMoveId + b _081B233E +_081B231C: + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + adds r1, r6, 0 + bl sub_81B2370 + lsls r0, 24 + cmp r0, 0 + bne _081B2338 +_081B2334: + movs r0, 0x1 + b _081B2356 +_081B2338: + mov r0, r8 + bl sub_81B2360 +_081B233E: + lsls r0, 16 + lsrs r1, r0, 16 + adds r0, r5, 0 + bl pokemon_has_move + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B2354 + movs r0, 0 + b _081B2356 +_081B2354: + movs r0, 0x2 +_081B2356: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81B22D8 + + thumb_func_start sub_81B2360 +sub_81B2360: @ 81B2360 + lsls r0, 24 + ldr r1, =gUnknown_0861500C + lsrs r0, 23 + adds r0, r1 + ldrh r0, [r0] + bx lr + .pool + thumb_func_end sub_81B2360 + + thumb_func_start sub_81B2370 +sub_81B2370: @ 81B2370 + push {lr} + lsls r0, 16 + lsls r1, 24 + lsrs r1, 24 + ldr r2, =gUnknown_08615048 + lsrs r0, 14 + adds r0, r2 + movs r2, 0x1 + lsls r2, r1 + ldr r0, [r0] + ands r0, r2 + cmp r0, 0 + bne _081B2394 + movs r0, 0 + b _081B2396 + .pool +_081B2394: + movs r0, 0x1 +_081B2396: + pop {r1} + bx r1 + thumb_func_end sub_81B2370 + + thumb_func_start sub_81B239C +sub_81B239C: @ 81B239C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0x1 + beq _081B23C4 + cmp r0, 0x1 + bgt _081B23B2 + cmp r0, 0 + beq _081B23B8 + b _081B23DC +_081B23B2: + cmp r1, 0x2 + beq _081B23D0 + b _081B23DC +_081B23B8: + ldr r0, =gUnknown_08615810 + bl InitWindows + b _081B23E2 + .pool +_081B23C4: + ldr r0, =gUnknown_08615850 + bl InitWindows + b _081B23E2 + .pool +_081B23D0: + ldr r0, =gUnknown_08615890 + bl InitWindows + b _081B23E2 + .pool +_081B23DC: + ldr r0, =gUnknown_086158D0 + bl InitWindows +_081B23E2: + bl DeactivateAllTextPrinters + movs r4, 0 +_081B23E8: + adds r0, r4, 0 + movs r1, 0 + bl FillWindowPixelBuffer + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _081B23E8 + movs r0, 0 + movs r1, 0x4F + movs r2, 0xD0 + bl sub_809882C + bl sub_8098C64 + movs r1, 0xE0 + movs r2, 0x20 + bl LoadPalette + ldr r0, =gUnknown_0860F074 + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B239C + + thumb_func_start sub_81B2428 +sub_81B2428: @ 81B2428 + push {r4-r6,lr} + sub sp, 0x14 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, =gUnknown_0203CEC8 + ldrb r1, [r0, 0x8] + movs r0, 0xF + ands r0, r1 + cmp r0, 0x5 + bne _081B243E + b _081B2554 +_081B243E: + cmp r2, 0x1 + bne _081B24B4 + ldr r0, =gUnknown_08615918 + bl AddWindow + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + movs r1, 0 + bl FillWindowPixelBuffer + ldr r5, =gUnknown_085E8CE3 + movs r0, 0 + adds r1, r5, 0 + movs r2, 0x30 + bl GetStringCenterAlignXOffset + lsls r0, 24 + lsrs r2, r0, 24 + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + ldr r0, =gUnknown_086157FC + str r0, [sp, 0x8] + movs r0, 0x1 + negs r0, r0 + str r0, [sp, 0xC] + str r5, [sp, 0x10] + adds r0, r4, 0 + movs r1, 0 + movs r3, 0x1 + bl AddTextPrinterParametrized2 + adds r0, r4, 0 + bl PutWindowTilemap + adds r0, r4, 0 + movs r1, 0x2 + bl CopyWindowToVram + ldr r0, =gUnknown_08615910 + bl AddWindow + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0 + b _081B24C0 + .pool +_081B24B4: + ldr r0, =gUnknown_08615908 + bl AddWindow + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0x3 +_081B24C0: + adds r0, r5, 0 + movs r1, 0 + bl FillWindowPixelBuffer + ldr r0, =gUnknown_0203CEC8 + ldrb r1, [r0, 0x8] + movs r0, 0xF + ands r0, r1 + cmp r0, 0xA + beq _081B2514 + ldr r4, =gUnknown_085E8CF0 + movs r0, 0 + adds r1, r4, 0 + movs r2, 0x30 + bl GetStringCenterAlignXOffset + lsls r0, 24 + lsrs r2, r0, 24 + adds r2, r6 + lsls r2, 24 + lsrs r2, 24 + ldr r0, =gUnknown_086157FC + str r0, [sp] + movs r0, 0x1 + negs r0, r0 + str r0, [sp, 0x4] + str r4, [sp, 0x8] + adds r0, r5, 0 + movs r1, 0 + movs r3, 0x1 + bl box_print + b _081B2540 + .pool +_081B2514: + ldr r4, =gUnknown_085E8CF7 + movs r0, 0 + adds r1, r4, 0 + movs r2, 0x30 + bl GetStringCenterAlignXOffset + lsls r0, 24 + lsrs r2, r0, 24 + adds r2, r6 + lsls r2, 24 + lsrs r2, 24 + ldr r0, =gUnknown_086157FC + str r0, [sp] + movs r0, 0x1 + negs r0, r0 + str r0, [sp, 0x4] + str r4, [sp, 0x8] + adds r0, r5, 0 + movs r1, 0 + movs r3, 0x1 + bl box_print +_081B2540: + adds r0, r5, 0 + bl PutWindowTilemap + adds r0, r5, 0 + movs r1, 0x2 + bl CopyWindowToVram + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram +_081B2554: + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B2428 + + thumb_func_start sub_81B2564 +sub_81B2564: @ 81B2564 + lsls r0, 24 + ldr r1, =gUnknown_0203CEC4 + lsrs r0, 23 + adds r0, 0x18 + ldr r1, [r1] + adds r1, r0 + adds r0, r1, 0 + bx lr + .pool + thumb_func_end sub_81B2564 + + thumb_func_start sub_81B2578 +sub_81B2578: @ 81B2578 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + str r1, [sp, 0xC] + ldr r1, [sp, 0x4C] + ldr r4, [sp, 0x50] + ldr r5, [sp, 0x54] + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x8] + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x10] + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0x14] + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0x18] + lsls r4, 24 + lsrs r6, r4, 24 + lsls r5, 24 + lsrs r5, 24 + mov r10, r5 + mov r0, r10 + muls r0, r6 + lsls r0, 5 + bl AllocZeroed + mov r9, r0 + cmp r0, 0 + beq _081B2646 + movs r5, 0 + ldr r0, [sp, 0x14] + lsls r0, 19 + str r0, [sp, 0x1C] + ldr r1, [sp, 0x18] + lsls r1, 19 + str r1, [sp, 0x20] + lsls r2, r6, 19 + str r2, [sp, 0x24] + mov r0, r10 + lsls r0, 19 + str r0, [sp, 0x28] + cmp r5, r10 + bcs _081B2624 +_081B25DA: + movs r4, 0 + adds r1, r5, 0x1 + mov r8, r1 + cmp r4, r6 + bcs _081B261A + ldr r2, [sp, 0x18] + adds r0, r2, r5 + ldr r2, [sp, 0x10] + adds r1, r0, 0 + muls r1, r2 + adds r7, r1, 0 +_081B25F0: + ldr r1, [sp, 0x14] + adds r0, r1, r4 + adds r0, r7 + ldr r2, [sp, 0xC] + adds r0, r2, r0 + ldrb r0, [r0] + bl sub_81B0DD4 + adds r1, r5, 0 + muls r1, r6 + adds r1, r4 + lsls r1, 5 + add r1, r9 + movs r2, 0x10 + bl CpuSet + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r6 + bcc _081B25F0 +_081B261A: + mov r1, r8 + lsls r0, r1, 24 + lsrs r5, r0, 24 + cmp r5, r10 + bcc _081B25DA +_081B2624: + ldr r0, [sp, 0x1C] + lsrs r2, r0, 16 + ldr r1, [sp, 0x20] + lsrs r3, r1, 16 + ldr r1, [sp, 0x24] + lsrs r0, r1, 16 + str r0, [sp] + ldr r1, [sp, 0x28] + lsrs r0, r1, 16 + str r0, [sp, 0x4] + ldr r0, [sp, 0x8] + mov r1, r9 + bl BlitBitmapToWindow + mov r0, r9 + bl Free +_081B2646: + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81B2578 + + thumb_func_start sub_81B2658 +sub_81B2658: @ 81B2658 + push {r4-r6,lr} + sub sp, 0xC + ldr r4, [sp, 0x1C] + ldr r5, [sp, 0x20] + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + cmp r3, 0 + bne _081B2684 + cmp r4, 0 + bne _081B2684 + movs r3, 0xA + movs r4, 0x7 +_081B2684: + cmp r5, 0 + bne _081B26A0 + ldr r1, =gUnknown_08615988 + str r2, [sp] + str r3, [sp, 0x4] + str r4, [sp, 0x8] + movs r2, 0xA + adds r3, r6, 0 + bl sub_81B2578 + b _081B26B0 + .pool +_081B26A0: + ldr r1, =gUnknown_086159CE + str r2, [sp] + str r3, [sp, 0x4] + str r4, [sp, 0x8] + movs r2, 0xA + adds r3, r6, 0 + bl sub_81B2578 +_081B26B0: + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B2658 + + thumb_func_start sub_81B26BC +sub_81B26BC: @ 81B26BC + push {r4-r6,lr} + sub sp, 0xC + ldr r4, [sp, 0x1C] + ldr r5, [sp, 0x20] + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + cmp r3, 0 + bne _081B26E8 + cmp r4, 0 + bne _081B26E8 + movs r3, 0x12 + movs r4, 0x3 +_081B26E8: + cmp r5, 0 + bne _081B2704 + ldr r1, =gUnknown_08615A14 + str r2, [sp] + str r3, [sp, 0x4] + str r4, [sp, 0x8] + movs r2, 0x12 + adds r3, r6, 0 + bl sub_81B2578 + b _081B2714 + .pool +_081B2704: + ldr r1, =gUnknown_08615A4A + str r2, [sp] + str r3, [sp, 0x4] + str r4, [sp, 0x8] + movs r2, 0x12 + adds r3, r6, 0 + bl sub_81B2578 +_081B2714: + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B26BC + + thumb_func_start sub_81B2720 +sub_81B2720: @ 81B2720 + push {lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gUnknown_08615A80 + movs r2, 0 + str r2, [sp] + movs r2, 0x12 + str r2, [sp, 0x4] + movs r2, 0x3 + str r2, [sp, 0x8] + movs r2, 0x12 + movs r3, 0 + bl sub_81B2578 + add sp, 0xC + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B2720 + + thumb_func_start sub_81B2748 +sub_81B2748: @ 81B2748 + push {r4-r7,lr} + lsls r1, 24 + lsrs r4, r1, 24 + adds r5, r4, 0 + ldrb r0, [r0, 0x8] + movs r1, 0x5 + bl GetWindowAttribute + lsls r0, 28 + lsrs r6, r0, 24 + adds r7, r6, 0 + movs r0, 0x40 + ands r0, r4 + cmp r0, 0 + beq _081B277C + ldr r5, =gUnknown_08615AF1 + ldrb r0, [r5] + bl sub_81B2564 + ldr r4, =gUnknown_08615AC0 + b _081B297E + .pool +_081B277C: + movs r0, 0x20 + ands r0, r4 + cmp r0, 0 + beq _081B27D8 + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _081B2794 + ldr r5, =gUnknown_08615ADF + b _081B2942 + .pool +_081B2794: + ldr r5, =gUnknown_08615ADF + ldrb r0, [r5] + bl sub_81B2564 + ldr r4, =gUnknown_08615ABA + ldrb r1, [r4] + adds r1, r6 + movs r2, 0x2 + bl LoadPalette + ldrb r0, [r5, 0x1] + bl sub_81B2564 + ldrb r1, [r4, 0x1] + adds r1, r6 + movs r2, 0x2 + bl LoadPalette + ldrb r0, [r5, 0x2] + bl sub_81B2564 + ldrb r1, [r4, 0x2] + adds r1, r6 + movs r2, 0x2 + bl LoadPalette + ldr r5, =gUnknown_08615AEE + b _081B2976 + .pool +_081B27D8: + movs r0, 0x10 + ands r0, r4 + cmp r0, 0 + beq _081B2824 + ldr r5, =gUnknown_08615ADF + ldrb r0, [r5] + bl sub_81B2564 + ldr r4, =gUnknown_08615ABA + ldrb r1, [r4] + adds r1, r6 + movs r2, 0x2 + bl LoadPalette + ldrb r0, [r5, 0x1] + bl sub_81B2564 + ldrb r1, [r4, 0x1] + adds r1, r6 + movs r2, 0x2 + bl LoadPalette + ldrb r0, [r5, 0x2] + bl sub_81B2564 + ldrb r1, [r4, 0x2] + adds r1, r6 + movs r2, 0x2 + bl LoadPalette + ldr r5, =gUnknown_08615AEE + b _081B2976 + .pool +_081B2824: + movs r0, 0x4 + ands r0, r4 + cmp r0, 0 + beq _081B2880 + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _081B283C + ldr r5, =gUnknown_08615ADF + b _081B2942 + .pool +_081B283C: + ldr r5, =gUnknown_08615ADF + ldrb r0, [r5] + bl sub_81B2564 + ldr r4, =gUnknown_08615ABA + ldrb r1, [r4] + adds r1, r6 + movs r2, 0x2 + bl LoadPalette + ldrb r0, [r5, 0x1] + bl sub_81B2564 + ldrb r1, [r4, 0x1] + adds r1, r6 + movs r2, 0x2 + bl LoadPalette + ldrb r0, [r5, 0x2] + bl sub_81B2564 + ldrb r1, [r4, 0x2] + adds r1, r6 + movs r2, 0x2 + bl LoadPalette + ldr r5, =gUnknown_08615AEE + b _081B2976 + .pool +_081B2880: + movs r0, 0x2 + ands r0, r4 + cmp r0, 0 + beq _081B28DC + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _081B2898 + ldr r5, =gUnknown_08615ADC + b _081B2942 + .pool +_081B2898: + ldr r5, =gUnknown_08615AD3 + ldrb r0, [r5] + bl sub_81B2564 + ldr r4, =gUnknown_08615ABA + ldrb r1, [r4] + adds r1, r6 + movs r2, 0x2 + bl LoadPalette + ldrb r0, [r5, 0x1] + bl sub_81B2564 + ldrb r1, [r4, 0x1] + adds r1, r6 + movs r2, 0x2 + bl LoadPalette + ldrb r0, [r5, 0x2] + bl sub_81B2564 + ldrb r1, [r4, 0x2] + adds r1, r6 + movs r2, 0x2 + bl LoadPalette + ldr r5, =gUnknown_08615AE8 + b _081B2976 + .pool +_081B28DC: + movs r0, 0x8 + ands r0, r4 + cmp r0, 0 + beq _081B2938 + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _081B28F4 + ldr r5, =gUnknown_08615AD9 + b _081B2942 + .pool +_081B28F4: + ldr r5, =gUnknown_08615AD0 + ldrb r0, [r5] + bl sub_81B2564 + ldr r4, =gUnknown_08615ABA + ldrb r1, [r4] + adds r1, r6 + movs r2, 0x2 + bl LoadPalette + ldrb r0, [r5, 0x1] + bl sub_81B2564 + ldrb r1, [r4, 0x1] + adds r1, r6 + movs r2, 0x2 + bl LoadPalette + ldrb r0, [r5, 0x2] + bl sub_81B2564 + ldrb r1, [r4, 0x2] + adds r1, r6 + movs r2, 0x2 + bl LoadPalette + ldr r5, =gUnknown_08615AE5 + b _081B2976 + .pool +_081B2938: + movs r0, 0x1 + ands r5, r0 + cmp r5, 0 + beq _081B29BC + ldr r5, =gUnknown_08615AD6 +_081B2942: + ldrb r0, [r5] + bl sub_81B2564 + ldr r4, =gUnknown_08615ABA + ldrb r1, [r4] + adds r1, r6 + movs r2, 0x2 + bl LoadPalette + ldrb r0, [r5, 0x1] + bl sub_81B2564 + ldrb r1, [r4, 0x1] + adds r1, r6 + movs r2, 0x2 + bl LoadPalette + ldrb r0, [r5, 0x2] + bl sub_81B2564 + ldrb r1, [r4, 0x2] + adds r1, r6 + movs r2, 0x2 + bl LoadPalette + ldr r5, =gUnknown_08615AEB +_081B2976: + ldrb r0, [r5] + bl sub_81B2564 + ldr r4, =gUnknown_08615ABD +_081B297E: + ldrb r1, [r4] + adds r1, r6 + movs r2, 0x2 + bl LoadPalette + ldrb r0, [r5, 0x1] + bl sub_81B2564 + ldrb r1, [r4, 0x1] + adds r1, r6 + movs r2, 0x2 + bl LoadPalette + ldrb r0, [r5, 0x2] + bl sub_81B2564 + ldrb r1, [r4, 0x2] + adds r1, r6 + movs r2, 0x2 + bl LoadPalette + b _081B2A24 + .pool +_081B29BC: + ldr r5, =gUnknown_08615ACD + ldrb r0, [r5] + bl sub_81B2564 + ldr r4, =gUnknown_08615ABA + ldrb r1, [r4] + adds r1, r7 + movs r2, 0x2 + bl LoadPalette + ldrb r0, [r5, 0x1] + bl sub_81B2564 + ldrb r1, [r4, 0x1] + adds r1, r7 + movs r2, 0x2 + bl LoadPalette + ldrb r0, [r5, 0x2] + bl sub_81B2564 + ldrb r1, [r4, 0x2] + adds r1, r7 + movs r2, 0x2 + bl LoadPalette + ldr r5, =gUnknown_08615AE2 + ldrb r0, [r5] + bl sub_81B2564 + ldr r4, =gUnknown_08615ABD + ldrb r1, [r4] + adds r1, r7 + movs r2, 0x2 + bl LoadPalette + ldrb r0, [r5, 0x1] + bl sub_81B2564 + ldrb r1, [r4, 0x1] + adds r1, r7 + movs r2, 0x2 + bl LoadPalette + ldrb r0, [r5, 0x2] + bl sub_81B2564 + ldrb r1, [r4, 0x2] + adds r1, r7 + movs r2, 0x2 + bl LoadPalette +_081B2A24: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B2748 + + thumb_func_start sub_81B2A3C +sub_81B2A3C: @ 81B2A3C + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + lsls r2, 24 + lsrs r2, 24 + ldrb r5, [r3] + ldrb r3, [r3, 0x1] + lsls r4, r2, 1 + adds r4, r2 + ldr r2, =gUnknown_086157FC + adds r4, r2 + str r4, [sp] + movs r2, 0 + str r2, [sp, 0x4] + str r1, [sp, 0x8] + movs r1, 0 + adds r2, r5, 0 + bl box_print + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B2A3C + + thumb_func_start sub_81B2A70 +sub_81B2A70: @ 81B2A70 + push {r4-r7,lr} + sub sp, 0x14 + adds r7, r0, 0 + adds r6, r1, 0 + lsls r2, 24 + lsrs r4, r2, 24 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _081B2AC0 + cmp r4, 0x1 + bne _081B2AAA + ldr r5, [r6] + ldrb r0, [r6, 0x8] + ldrb r1, [r5, 0x4] + lsrs r1, 3 + ldrb r2, [r5, 0x5] + lsrs r2, 3 + ldrb r3, [r5, 0x6] + lsrs r3, 3 + ldrb r4, [r5, 0x7] + lsrs r4, 3 + str r4, [sp] + movs r4, 0 + str r4, [sp, 0x4] + ldr r4, [r5] + bl _call_via_r4 +_081B2AAA: + adds r0, r7, 0 + add r1, sp, 0x8 + bl GetMonNickname + ldrb r0, [r6, 0x8] + ldr r3, [r6] + adds r3, 0x4 + add r1, sp, 0x8 + movs r2, 0 + bl sub_81B2A3C +_081B2AC0: + add sp, 0x14 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81B2A70 + + thumb_func_start sub_81B2AC8 +sub_81B2AC8: @ 81B2AC8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + adds r6, r0, 0 + adds r7, r1, 0 + lsls r2, 24 + lsrs r4, r2, 24 + mov r8, r4 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _081B2B34 + adds r0, r6, 0 + bl sub_81B205C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _081B2AF6 + cmp r0, 0x6 + bne _081B2B34 +_081B2AF6: + cmp r4, 0 + beq _081B2B1C + ldr r5, [r7] + ldrb r0, [r7, 0x8] + ldrb r1, [r5, 0x8] + lsrs r1, 3 + ldrb r2, [r5, 0x9] + lsrs r2, 3 + adds r2, 0x1 + ldrb r3, [r5, 0xA] + lsrs r3, 3 + ldrb r4, [r5, 0xB] + lsrs r4, 3 + str r4, [sp] + movs r4, 0 + str r4, [sp, 0x4] + ldr r4, [r5] + bl _call_via_r4 +_081B2B1C: + mov r0, r8 + cmp r0, 0x2 + beq _081B2B34 + adds r0, r6, 0 + movs r1, 0x38 + bl GetMonData + lsls r0, 24 + lsrs r0, 24 + adds r1, r7, 0 + bl sub_81B2B40 +_081B2B34: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81B2AC8 + + thumb_func_start sub_81B2B40 +sub_81B2B40: @ 81B2B40 + push {r4-r6,lr} + adds r2, r0, 0 + adds r6, r1, 0 + lsls r2, 24 + lsrs r2, 24 + ldr r5, =gStringVar2 + adds r0, r5, 0 + adds r1, r2, 0 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + ldr r4, =gStringVar1 + ldr r1, =gUnknown_085E8D4D + adds r0, r4, 0 + bl StringCopy + adds r0, r4, 0 + adds r1, r5, 0 + bl StringAppend + ldrb r0, [r6, 0x8] + ldr r3, [r6] + adds r3, 0x8 + adds r1, r4, 0 + movs r2, 0 + bl sub_81B2A3C + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B2B40 + + thumb_func_start sub_81B2B8C +sub_81B2B8C: @ 81B2B8C + push {r4-r7,lr} + sub sp, 0x14 + adds r6, r0, 0 + adds r7, r1, 0 + lsls r2, 24 + lsrs r2, 24 + cmp r2, 0x1 + bne _081B2BBE + ldr r5, [r7] + ldrb r0, [r7, 0x8] + ldrb r1, [r5, 0xC] + lsrs r1, 3 + ldrb r2, [r5, 0xD] + lsrs r2, 3 + adds r2, 0x1 + ldrb r3, [r5, 0xE] + lsrs r3, 3 + ldrb r4, [r5, 0xF] + lsrs r4, 3 + str r4, [sp] + movs r4, 0 + str r4, [sp, 0x4] + ldr r4, [r5] + bl _call_via_r4 +_081B2BBE: + adds r0, r6, 0 + add r1, sp, 0x8 + bl GetMonNickname + adds r0, r6, 0 + bl pokemon_get_gender + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + movs r1, 0xB + bl GetMonData + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + add r2, sp, 0x8 + adds r3, r7, 0 + bl sub_81B2BF4 + add sp, 0x14 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81B2B8C + + thumb_func_start sub_81B2BF4 +sub_81B2BF4: @ 81B2BF4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r9, r2 + adds r7, r3, 0 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 16 + lsrs r4, r1, 16 + adds r5, r4, 0 + ldrb r0, [r7, 0x8] + movs r1, 0x5 + bl GetWindowAttribute + lsls r0, 28 + lsrs r6, r0, 24 + cmp r4, 0 + beq _081B2CBA + cmp r4, 0x20 + beq _081B2C24 + cmp r4, 0x1D + bne _081B2C38 +_081B2C24: + movs r0, 0xB + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gSpeciesNames + adds r1, r0 + mov r0, r9 + bl StringCompare + cmp r0, 0 + beq _081B2CBA +_081B2C38: + mov r0, r8 + cmp r0, 0 + beq _081B2C48 + cmp r0, 0xFE + beq _081B2C88 + b _081B2CBA + .pool +_081B2C48: + ldr r5, =gUnknown_08615AC3 + ldrb r0, [r5] + bl sub_81B2564 + ldr r4, =gUnknown_08615AB6 + ldrb r1, [r4] + adds r1, r6 + movs r2, 0x2 + bl LoadPalette + ldrb r0, [r5, 0x1] + bl sub_81B2564 + ldrb r1, [r4, 0x1] + adds r1, r6 + movs r2, 0x2 + bl LoadPalette + ldrb r0, [r7, 0x8] + ldr r1, =gUnknown_085E8D49 + ldr r3, [r7] + adds r3, 0xC + movs r2, 0x2 + bl sub_81B2A3C + b _081B2CBA + .pool +_081B2C88: + ldr r5, =gUnknown_08615AC5 + ldrb r0, [r5] + bl sub_81B2564 + ldr r4, =gUnknown_08615AB6 + ldrb r1, [r4] + adds r1, r6 + movs r2, 0x2 + bl LoadPalette + ldrb r0, [r5, 0x1] + bl sub_81B2564 + ldrb r1, [r4, 0x1] + adds r1, r6 + movs r2, 0x2 + bl LoadPalette + ldrb r0, [r7, 0x8] + ldr r1, =gUnknown_085E8D4B + ldr r3, [r7] + adds r3, 0xC + movs r2, 0x2 + bl sub_81B2A3C +_081B2CBA: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B2BF4 + + thumb_func_start sub_81B2CD4 +sub_81B2CD4: @ 81B2CD4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + adds r7, r0, 0 + adds r6, r1, 0 + lsls r2, 24 + lsrs r4, r2, 24 + mov r8, r4 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _081B2D2E + cmp r4, 0 + beq _081B2D16 + ldr r5, [r6] + ldrb r0, [r6, 0x8] + ldrb r1, [r5, 0x10] + lsrs r1, 3 + ldrb r2, [r5, 0x11] + lsrs r2, 3 + adds r2, 0x1 + ldrb r3, [r5, 0x12] + lsrs r3, 3 + ldrb r4, [r5, 0x13] + lsrs r4, 3 + str r4, [sp] + movs r4, 0 + str r4, [sp, 0x4] + ldr r4, [r5] + bl _call_via_r4 +_081B2D16: + mov r0, r8 + cmp r0, 0x2 + beq _081B2D2E + adds r0, r7, 0 + movs r1, 0x39 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + adds r1, r6, 0 + bl sub_81B2D3C +_081B2D2E: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81B2CD4 + + thumb_func_start sub_81B2D3C +sub_81B2D3C: @ 81B2D3C + push {r4,r5,lr} + adds r2, r0, 0 + adds r4, r1, 0 + lsls r2, 16 + lsrs r2, 16 + ldr r5, =gStringVar1 + adds r0, r5, 0 + adds r1, r2, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + movs r1, 0xBA + strb r1, [r0] + movs r1, 0xFF + strb r1, [r0, 0x1] + ldrb r0, [r4, 0x8] + ldr r3, [r4] + adds r3, 0x10 + adds r1, r5, 0 + movs r2, 0 + bl sub_81B2A3C + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B2D3C + + thumb_func_start sub_81B2D74 +sub_81B2D74: @ 81B2D74 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + adds r7, r0, 0 + adds r6, r1, 0 + lsls r2, 24 + lsrs r4, r2, 24 + mov r8, r4 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _081B2DD0 + cmp r4, 0 + beq _081B2DB8 + ldr r5, [r6] + ldrb r0, [r6, 0x8] + ldrb r1, [r5, 0x14] + lsrs r1, 3 + adds r1, 0x1 + ldrb r2, [r5, 0x15] + lsrs r2, 3 + adds r2, 0x1 + ldrb r3, [r5, 0x16] + lsrs r3, 3 + ldrb r4, [r5, 0x17] + lsrs r4, 3 + str r4, [sp] + movs r4, 0 + str r4, [sp, 0x4] + ldr r4, [r5] + bl _call_via_r4 +_081B2DB8: + mov r0, r8 + cmp r0, 0x2 + beq _081B2DD0 + adds r0, r7, 0 + movs r1, 0x3A + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + adds r1, r6, 0 + bl sub_81B2DDC +_081B2DD0: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81B2D74 + + thumb_func_start sub_81B2DDC +sub_81B2DDC: @ 81B2DDC + push {r4-r6,lr} + adds r2, r0, 0 + adds r6, r1, 0 + lsls r2, 16 + lsrs r2, 16 + ldr r5, =gStringVar2 + adds r0, r5, 0 + adds r1, r2, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + ldr r4, =gStringVar1 + ldr r1, =gUnknown_085E8D3E + adds r0, r4, 0 + bl StringCopy + adds r0, r4, 0 + adds r1, r5, 0 + bl StringAppend + ldrb r0, [r6, 0x8] + ldr r3, [r6] + adds r3, 0x14 + adds r1, r4, 0 + movs r2, 0 + bl sub_81B2A3C + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B2DDC + + thumb_func_start sub_81B2E28 +sub_81B2E28: @ 81B2E28 + push {r4-r6,lr} + adds r5, r0, 0 + adds r6, r1, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _081B2E5C + adds r0, r5, 0 + movs r1, 0x39 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + movs r1, 0x3A + bl GetMonData + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + adds r2, r6, 0 + bl sub_81B2E64 +_081B2E5C: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81B2E28 + + thumb_func_start sub_81B2E64 +sub_81B2E64: @ 81B2E64 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + adds r6, r2, 0 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r1, 16 + lsrs r1, 16 + mov r9, r1 + ldrb r0, [r6, 0x8] + movs r1, 0x5 + bl GetWindowAttribute + lsls r0, 28 + lsrs r7, r0, 24 + mov r1, r8 + lsls r0, r1, 16 + asrs r0, 16 + mov r2, r9 + lsls r1, r2, 16 + asrs r1, 16 + bl sub_8075060 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + beq _081B2EB0 + cmp r0, 0x2 + blt _081B2EE0 + cmp r0, 0x4 + bgt _081B2EE0 + ldr r5, =gUnknown_08615AC7 + b _081B2EB2 + .pool +_081B2EB0: + ldr r5, =gUnknown_08615AC9 +_081B2EB2: + ldrb r0, [r5] + bl sub_81B2564 + ldr r4, =gUnknown_08615AB8 + ldrb r1, [r4] + adds r1, r7 + movs r2, 0x2 + bl LoadPalette + ldrb r0, [r5, 0x1] + bl sub_81B2564 + ldrb r1, [r4, 0x1] + adds r1, r7 + movs r2, 0x2 + bl LoadPalette + b _081B2F04 + .pool +_081B2EE0: + ldr r5, =gUnknown_08615ACB + ldrb r0, [r5] + bl sub_81B2564 + ldr r4, =gUnknown_08615AB8 + ldrb r1, [r4] + adds r1, r7 + movs r2, 0x2 + bl LoadPalette + ldrb r0, [r5, 0x1] + bl sub_81B2564 + ldrb r1, [r4, 0x1] + adds r1, r7 + movs r2, 0x2 + bl LoadPalette +_081B2F04: + mov r1, r8 + lsls r0, r1, 16 + asrs r0, 16 + mov r2, r9 + lsls r1, r2, 16 + asrs r1, 16 + ldr r2, [r6] + ldrb r2, [r2, 0x1A] + bl sub_8075034 + lsls r0, 24 + lsrs r5, r0, 24 + ldrb r0, [r6, 0x8] + ldr r4, =gUnknown_08615AB8 + ldrb r1, [r4, 0x1] + ldr r3, [r6] + ldrb r2, [r3, 0x18] + ldrb r3, [r3, 0x19] + str r5, [sp] + movs r7, 0x1 + str r7, [sp, 0x4] + bl FillWindowPixelRect + ldrb r0, [r6, 0x8] + ldrb r1, [r4] + ldr r3, [r6] + ldrb r2, [r3, 0x18] + ldrb r3, [r3, 0x19] + adds r3, 0x1 + str r5, [sp] + movs r4, 0x2 + str r4, [sp, 0x4] + bl FillWindowPixelRect + ldr r1, [r6] + ldrb r0, [r1, 0x1A] + cmp r5, r0 + beq _081B2F88 + ldrb r0, [r6, 0x8] + ldrb r2, [r1, 0x18] + adds r2, r5 + ldrb r3, [r1, 0x19] + ldrb r1, [r1, 0x1A] + subs r1, r5 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp] + str r7, [sp, 0x4] + movs r1, 0xD + bl FillWindowPixelRect + ldrb r0, [r6, 0x8] + ldr r1, [r6] + ldrb r2, [r1, 0x18] + adds r2, r5 + ldrb r3, [r1, 0x19] + adds r3, 0x1 + ldrb r1, [r1, 0x1A] + subs r1, r5 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp] + str r4, [sp, 0x4] + movs r1, 0x2 + bl FillWindowPixelRect +_081B2F88: + ldrb r0, [r6, 0x8] + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B2E64 + + thumb_func_start sub_81B2FA8 +sub_81B2FA8: @ 81B2FA8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + adds r6, r1, 0 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r2, 24 + lsrs r7, r2, 24 + cmp r7, 0 + beq _081B2FF2 + ldr r5, [r6] + ldrb r1, [r5, 0x1C] + movs r4, 0x7 + adds r0, r1, 0 + ands r0, r4 + ldrb r2, [r5, 0x1E] + adds r0, r2 + adds r3, r0, 0x7 + asrs r3, 3 + ldrb r2, [r5, 0x1D] + adds r0, r2, 0 + ands r0, r4 + ldrb r4, [r5, 0x1F] + adds r0, r4 + adds r4, r0, 0x7 + ldrb r0, [r6, 0x8] + lsrs r1, 3 + lsrs r2, 3 + lsrs r4, 3 + str r4, [sp] + movs r4, 0x1 + str r4, [sp, 0x4] + ldr r4, [r5] + bl _call_via_r4 +_081B2FF2: + cmp r7, 0x2 + beq _081B3018 + ldrb r0, [r6, 0x8] + ldr r1, [r6] + ldrb r2, [r1, 0x1C] + ldrb r3, [r1, 0x1D] + ldr r1, =gUnknown_086157FC + str r1, [sp] + movs r1, 0 + str r1, [sp, 0x4] + ldr r4, =gUnknown_08615B60 + mov r5, r8 + lsls r1, r5, 2 + adds r1, r4 + ldr r1, [r1] + str r1, [sp, 0x8] + movs r1, 0x1 + bl box_print +_081B3018: + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B2FA8 + + thumb_func_start sub_81B302C +sub_81B302C: @ 81B302C + push {r4,lr} + adds r4, r0, 0 + ldrb r0, [r4] + cmp r0, 0xFF + beq _081B304C + movs r1, 0 + bl sub_8198070 + ldrb r0, [r4] + bl RemoveWindow + movs r0, 0xFF + strb r0, [r4] + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram +_081B304C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81B302C + + thumb_func_start display_pokemon_menu_message +display_pokemon_menu_message: @ 81B3054 + push {r4-r6,lr} + sub sp, 0xC + adds r6, r0, 0 + ldr r0, =gUnknown_0203CEC4 + ldr r4, [r0] + adds r5, r4, 0 + adds r5, 0xD + ldrb r0, [r4, 0xD] + cmp r0, 0xFF + beq _081B306E + adds r0, r5, 0 + bl sub_81B302C +_081B306E: + cmp r6, 0x7F + beq _081B313C + adds r0, r6, 0 + subs r0, 0x15 + cmp r0, 0x5 + bhi _081B30D4 + lsls r0, 2 + ldr r1, =_081B308C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081B308C: + .4byte _081B30A4 + .4byte _081B30BC + .4byte _081B30BC + .4byte _081B30AC + .4byte _081B30B4 + .4byte _081B30C4 +_081B30A4: + ldr r0, =gUnknown_08615928 + b _081B30C6 + .pool +_081B30AC: + ldr r0, =gUnknown_08615930 + b _081B30C6 + .pool +_081B30B4: + ldr r0, =gUnknown_08615938 + b _081B30C6 + .pool +_081B30BC: + ldr r0, =gUnknown_08615940 + b _081B30C6 + .pool +_081B30C4: + ldr r0, =gUnknown_08615948 +_081B30C6: + bl AddWindow + strb r0, [r5] + b _081B30DC + .pool +_081B30D4: + ldr r0, =gUnknown_08615920 + bl AddWindow + strb r0, [r4, 0xD] +_081B30DC: + cmp r6, 0 + bne _081B3104 + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + ldrb r0, [r0, 0x8] + lsls r0, 31 + cmp r0, 0 + beq _081B30F8 + movs r6, 0x2 + b _081B3104 + .pool +_081B30F8: + bl sub_81B314C + lsls r0, 24 + cmp r0, 0 + bne _081B3104 + movs r6, 0x1 +_081B3104: + ldrb r0, [r5] + movs r1, 0 + movs r2, 0x4F + movs r3, 0xD + bl SetWindowBorderStyle + ldr r4, =gStringVar4 + ldr r1, =gUnknown_08615AF4 + lsls r0, r6, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl StringExpandPlaceholders + ldrb r0, [r5] + movs r1, 0x1 + str r1, [sp] + movs r1, 0 + str r1, [sp, 0x4] + str r1, [sp, 0x8] + movs r1, 0x1 + adds r2, r4, 0 + movs r3, 0 + bl Print + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram +_081B313C: + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end display_pokemon_menu_message + + thumb_func_start sub_81B314C +sub_81B314C: @ 81B314C + push {r4-r7,lr} + ldr r7, =gPlayerParty + movs r6, 0 + ldr r0, =gUnknown_0203CEC8 + ldrb r0, [r0, 0xB] + cmp r0, 0x1 + bne _081B3168 +_081B315A: + movs r0, 0x1 + b _081B31AA + .pool +_081B3168: + movs r5, 0 +_081B316A: + movs r0, 0x64 + muls r0, r5 + adds r4, r7, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _081B319A + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + bne _081B3194 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + beq _081B319A +_081B3194: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_081B319A: + cmp r6, 0x1 + bhi _081B315A + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _081B316A + movs r0, 0 +_081B31AA: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81B314C + + thumb_func_start sub_81B31B0 +sub_81B31B0: @ 81B31B0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x1C + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + beq _081B320C + cmp r4, 0x1 + bgt _081B31CC + cmp r4, 0 + beq _081B31D2 + b _081B321C +_081B31CC: + cmp r4, 0x2 + beq _081B3214 + b _081B321C +_081B31D2: + ldr r0, =gUnknown_0203CEC4 + ldr r1, [r0] + ldrb r0, [r1, 0x17] + lsls r0, 1 + movs r3, 0x13 + subs r3, r0 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0xA + str r0, [sp] + ldrb r0, [r1, 0x17] + lsls r0, 25 + lsrs r0, 24 + str r0, [sp, 0x4] + movs r0, 0xE + str r0, [sp, 0x8] + ldr r0, =0x000002e9 + str r0, [sp, 0xC] + add r0, sp, 0x14 + movs r1, 0x2 + movs r2, 0x13 + bl rbox_template_set + b _081B3226 + .pool +_081B320C: + ldr r0, =gUnknown_08615950 + b _081B321E + .pool +_081B3214: + ldr r0, =gUnknown_08615958 + b _081B321E + .pool +_081B321C: + ldr r0, =gUnknown_08615960 +_081B321E: + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x14] + str r1, [sp, 0x18] +_081B3226: + add r0, sp, 0x14 + bl AddWindow + ldr r6, =gUnknown_0203CEC4 + ldr r1, [r6] + strb r0, [r1, 0xC] + ldr r0, [r6] + ldrb r0, [r0, 0xC] + movs r1, 0 + movs r2, 0x4F + movs r3, 0xD + bl SetWindowBorderStyle + cmp r4, 0x3 + bne _081B3250 + ldr r0, [r6] + b _081B32E2 + .pool +_081B3250: + movs r0, 0x1 + movs r1, 0 + bl GetMenuCursorDimensionByFont + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r0, 0x1 + movs r1, 0x2 + bl GetFontAttribute + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r5, 0 + ldr r0, [r6] + ldrb r0, [r0, 0x17] + cmp r5, r0 + bcs _081B32CA + adds r7, r6, 0 + movs r6, 0 +_081B327A: + ldr r1, [r7] + adds r0, r1, 0 + adds r0, 0xF + adds r4, r0, r5 + ldrb r0, [r4] + movs r2, 0x3 + cmp r0, 0x12 + bls _081B328C + movs r2, 0x4 +_081B328C: + ldrb r0, [r1, 0xC] + lsls r3, r5, 4 + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + mov r1, r8 + str r1, [sp] + str r6, [sp, 0x4] + lsls r1, r2, 1 + adds r1, r2 + ldr r2, =gUnknown_086157FC + adds r1, r2 + str r1, [sp, 0x8] + str r6, [sp, 0xC] + ldr r2, =gUnknown_08615C08 + ldrb r1, [r4] + lsls r1, 3 + adds r1, r2 + ldr r1, [r1] + str r1, [sp, 0x10] + movs r1, 0x1 + mov r2, r9 + bl AddTextPrinterParametrized2 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, [r7] + ldrb r0, [r0, 0x17] + cmp r5, r0 + bcc _081B327A +_081B32CA: + ldr r4, =gUnknown_0203CEC4 + ldr r1, [r4] + ldrb r0, [r1, 0xC] + ldrb r1, [r1, 0x17] + movs r2, 0 + movs r3, 0x1 + bl InitMenuInUpperLeftCorner + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + ldr r0, [r4] +_081B32E2: + ldrb r0, [r0, 0xC] + add sp, 0x1C + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81B31B0 + + thumb_func_start sub_81B3300 +sub_81B3300: @ 81B3300 + push {r4,lr} + sub sp, 0x10 + adds r4, r0, 0 + movs r0, 0x6 + movs r1, 0 + movs r2, 0x4F + movs r3, 0xD + bl SetWindowBorderStyle + ldr r2, =gTextFlags + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + bl sav2_get_text_speed + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0 + str r0, [sp] + movs r0, 0x2 + str r0, [sp, 0x4] + movs r0, 0x1 + str r0, [sp, 0x8] + movs r0, 0x3 + str r0, [sp, 0xC] + movs r0, 0x6 + movs r1, 0x1 + adds r2, r4, 0 + bl AddTextPrinterParametrized + add sp, 0x10 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B3300 + + thumb_func_start sub_81B334C +sub_81B334C: @ 81B334C + push {lr} + ldr r0, =gUnknown_08615968 + movs r1, 0x4F + movs r2, 0xD + movs r3, 0 + bl CreateYesNoMenu + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B334C + + thumb_func_start sub_81B3364 +sub_81B3364: @ 81B3364 + push {r4,lr} + ldr r0, =gUnknown_08615970 + bl AddWindow + ldr r4, =gUnknown_0203CEC4 + ldr r1, [r4] + strb r0, [r1, 0xC] + ldr r0, [r4] + ldrb r0, [r0, 0xC] + movs r1, 0 + movs r2, 0x4F + movs r3, 0xD + bl SetWindowBorderStyle + ldr r0, [r4] + ldrb r0, [r0, 0xC] + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81B3364 + + thumb_func_start sub_81B3394 +sub_81B3394: @ 81B3394 + push {r4,lr} + ldr r4, =gUnknown_0203CEC4 + ldr r0, [r4] + ldrb r0, [r0, 0xC] + bl ClearWindowTilemap + ldr r0, [r4] + adds r0, 0xC + bl sub_81B302C + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B3394 + + thumb_func_start sub_81B33B4 +sub_81B33B4: @ 81B33B4 + push {r4,lr} + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + cmp r2, 0 + bne _081B33C8 + bl sub_81B3414 + b _081B3400 +_081B33C8: + ldr r4, =gUnknown_0203CEC4 + ldr r1, [r4] + ldr r0, =gUnknown_08615D70 + adds r0, r2, r0 + ldrb r0, [r0] + strb r0, [r1, 0x17] + movs r3, 0 + ldr r0, [r4] + ldrb r0, [r0, 0x17] + cmp r3, r0 + bcs _081B3400 + ldr r1, =gUnknown_08615D38 + lsls r0, r2, 2 + adds r2, r0, r1 +_081B33E4: + ldr r1, [r4] + adds r1, 0xF + adds r1, r3 + ldr r0, [r2] + adds r0, r3 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, [r4] + ldrb r0, [r0, 0x17] + cmp r3, r0 + bcc _081B33E4 +_081B3400: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B33B4 + + thumb_func_start sub_81B3414 +sub_81B3414: @ 81B3414 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + mov r9, r0 + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + ldr r2, =gUnknown_0203CEC4 + ldr r1, [r2] + movs r0, 0 + strb r0, [r1, 0x17] + ldr r1, [r2] + adds r0, r1, 0 + adds r0, 0xF + adds r1, 0x17 + movs r2, 0 + bl append_byte + movs r7, 0 + ldr r0, =gUnknown_08615D7E + ldrh r0, [r0] + str r0, [sp] +_081B3446: + movs r4, 0 + adds r0, r7, 0x1 + mov r8, r0 + ldr r1, [sp] + cmp r1, 0xE + beq _081B34A0 + movs r0, 0x64 + mov r6, r10 + muls r6, r0 + ldr r5, =gUnknown_08615D7E +_081B345A: + mov r1, r9 + adds r0, r1, r6 + adds r1, r7, 0 + adds r1, 0xD + bl GetMonData + lsls r1, r4, 1 + adds r1, r5 + ldrh r1, [r1] + cmp r0, r1 + bne _081B3490 + ldr r0, =gUnknown_0203CEC4 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0xF + adds r1, 0x17 + adds r2, r4, 0 + adds r2, 0x13 + lsls r2, 24 + lsrs r2, 24 + bl append_byte + b _081B34A0 + .pool +_081B3490: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 1 + adds r0, r5 + ldrh r0, [r0] + cmp r0, 0xE + bne _081B345A +_081B34A0: + mov r1, r8 + lsls r0, r1, 24 + lsrs r7, r0, 24 + cmp r7, 0x3 + bls _081B3446 + bl InBattlePike + lsls r0, 24 + cmp r0, 0 + bne _081B3518 + mov r0, r9 + adds r0, 0x64 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _081B34D2 + ldr r0, =gUnknown_0203CEC4 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0xF + adds r1, 0x17 + movs r2, 0x1 + bl append_byte +_081B34D2: + movs r0, 0x64 + mov r1, r10 + muls r1, r0 + adds r0, r1, 0 + add r0, r9 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + beq _081B3508 + ldr r0, =gUnknown_0203CEC4 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0xF + adds r1, 0x17 + movs r2, 0x6 + bl append_byte + b _081B3518 + .pool +_081B3508: + ldr r0, =gUnknown_0203CEC4 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0xF + adds r1, 0x17 + movs r2, 0x3 + bl append_byte +_081B3518: + ldr r0, =gUnknown_0203CEC4 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0xF + adds r1, 0x17 + movs r2, 0x2 + bl append_byte + 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_81B3414 + + thumb_func_start sub_81B353C +sub_81B353C: @ 81B353C + push {r4,lr} + adds r4, r0, 0 + ldr r1, =gUnknown_0203CEC8 + ldrb r0, [r1, 0x8] + lsls r0, 28 + lsrs r0, 28 + adds r2, r1, 0 + cmp r0, 0xC + bhi _081B35FE + lsls r0, 2 + ldr r1, =_081B3560 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081B3560: + .4byte _081B3594 + .4byte _081B35B0 + .4byte _081B35FE + .4byte _081B35FE + .4byte _081B35BC + .4byte _081B35FE + .4byte _081B35DC + .4byte _081B35FE + .4byte _081B35EE + .4byte _081B35F2 + .4byte _081B35F6 + .4byte _081B35FE + .4byte _081B35FA +_081B3594: + bl in_multi_battle_room_with_var_condition + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B35AC + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + beq _081B35FE +_081B35AC: + movs r1, 0x1 + b _081B3600 +_081B35B0: + adds r0, r4, 0 + bl sub_81B8A2C + lsls r0, 24 + lsrs r1, r0, 24 + b _081B3600 +_081B35BC: + movs r0, 0x9 + ldrsb r0, [r2, r0] + bl sub_81B856C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _081B35D4 + cmp r0, 0x1 + beq _081B35D8 + movs r1, 0x7 + b _081B3600 +_081B35D4: + movs r1, 0x4 + b _081B3600 +_081B35D8: + movs r1, 0x5 + b _081B3600 +_081B35DC: + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + movs r1, 0x6 + cmp r0, 0 + beq _081B3600 + movs r1, 0x7 + b _081B3600 +_081B35EE: + movs r1, 0xA + b _081B3600 +_081B35F2: + movs r1, 0xB + b _081B3600 +_081B35F6: + movs r1, 0xC + b _081B3600 +_081B35FA: + movs r1, 0xD + b _081B3600 +_081B35FE: + movs r1, 0 +_081B3600: + adds r0, r1, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81B353C + + thumb_func_start sub_81B3608 +sub_81B3608: @ 81B3608 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r4, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r4, r1] + movs r0, 0x64 + muls r0, r1 + ldr r7, =gPlayerParty + adds r5, r0, r7 + ldr r1, =gStringVar1 + adds r0, r5, 0 + bl GetMonNickname + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + adds r0, 0xD + bl sub_81B302C + ldrb r1, [r4, 0x8] + movs r0, 0xF + ands r0, r1 + cmp r0, 0xC + beq _081B3674 + ldrb r4, [r4, 0x9] + adds r0, r5, 0 + bl sub_81B353C + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r7, 0 + adds r1, r4, 0 + bl sub_81B33B4 + movs r0, 0 + bl sub_81B31B0 + movs r0, 0x15 + bl display_pokemon_menu_message + b _081B36EA + .pool +_081B3674: + adds r0, r5, 0 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0 + bne _081B36C0 + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E9980 + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81B1B5C + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, =gTasks + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B469C + str r1, [r0] + movs r0, 0 + b _081B36EC + .pool +_081B36C0: + ldrb r4, [r4, 0x9] + adds r0, r5, 0 + bl sub_81B353C + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r7, 0 + adds r1, r4, 0 + bl sub_81B33B4 + movs r0, 0x1 + bl sub_81B31B0 + ldr r1, =gStringVar2 + adds r0, r6, 0 + bl CopyItemName + movs r0, 0x1A + bl display_pokemon_menu_message +_081B36EA: + movs r0, 0x1 +_081B36EC: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81B3608 + + thumb_func_start sub_81B36FC +sub_81B36FC: @ 81B36FC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_81B3608 + lsls r0, 24 + cmp r0, 0 + beq _081B3720 + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0xFF + strh r1, [r0, 0x8] + ldr r1, =sub_81B3730 + str r1, [r0] +_081B3720: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B36FC + + thumb_func_start sub_81B3730 +sub_81B3730: @ 81B3730 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081B37EE + bl sub_81221EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B37EE + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r5, r0, r1 + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + ldrb r0, [r0, 0x17] + cmp r0, 0x3 + bhi _081B3774 + bl ProcessMenuInputNoWrapAround_other + b _081B3778 + .pool +_081B3774: + bl ProcessMenuInput_other +_081B3778: + lsls r0, 24 + lsrs r4, r0, 24 + bl GetMenuCursorPos + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5] + lsls r0, r4, 24 + asrs r5, r0, 24 + movs r0, 0x2 + negs r0, r0 + cmp r5, r0 + beq _081B37EE + adds r0, 0x1 + cmp r5, r0 + bne _081B37CC + movs r0, 0x5 + bl PlaySE + ldr r4, =gUnknown_0203CEC4 + ldr r0, [r4] + adds r0, 0xE + bl sub_81B302C + ldr r2, =gUnknown_08615C08 + ldr r0, [r4] + ldrb r1, [r0, 0x17] + adds r0, r1 + ldrb r0, [r0, 0xE] + lsls r0, 3 + adds r2, 0x4 + adds r0, r2 + ldr r1, [r0] + adds r0, r6, 0 + bl _call_via_r1 + b _081B37EE + .pool +_081B37CC: + ldr r4, =gUnknown_0203CEC4 + ldr r0, [r4] + adds r0, 0xE + bl sub_81B302C + ldr r1, =gUnknown_08615C08 + ldr r0, [r4] + adds r0, 0xF + adds r0, r5 + ldrb r0, [r0] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r1, [r0] + adds r0, r6, 0 + bl _call_via_r1 +_081B37EE: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B3730 + + thumb_func_start sub_81B37FC +sub_81B37FC: @ 81B37FC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_0203CEC4 + ldr r1, [r0] + ldr r0, =sub_81B3828 + str r0, [r1, 0x4] + adds r0, r4, 0 + bl sub_81B12C0 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B37FC + + thumb_func_start sub_81B3828 +sub_81B3828: @ 81B3828 + push {r4,lr} + sub sp, 0x4 + ldr r4, =gUnknown_0203CEC8 + ldrb r1, [r4, 0x8] + movs r0, 0xF + ands r0, r1 + cmp r0, 0x1 + bne _081B3868 + bl pokemon_change_order + ldr r1, =gPlayerParty + ldrb r2, [r4, 0x9] + ldr r0, =gPlayerPartyCount + ldrb r3, [r0] + subs r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + ldr r0, =sub_81B3894 + str r0, [sp] + movs r0, 0x1 + bl sub_81BF8EC + b _081B3880 + .pool +_081B3868: + ldr r1, =gPlayerParty + ldrb r2, [r4, 0x9] + ldr r0, =gPlayerPartyCount + ldrb r3, [r0] + subs r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + ldr r0, =sub_81B3894 + str r0, [sp] + movs r0, 0 + bl sub_81BF8EC +_081B3880: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B3828 + + thumb_func_start sub_81B3894 +sub_81B3894: @ 81B3894 + push {lr} + sub sp, 0xC + ldr r2, =gPaletteFade + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + ldr r3, =gUnknown_0203CEC8 + ldr r0, =gUnknown_0203CF20 + ldrb r0, [r0] + strb r0, [r3, 0x9] + ldrb r0, [r3, 0x8] + lsls r0, 28 + lsrs r0, 28 + ldrb r2, [r3, 0xB] + movs r1, 0x15 + str r1, [sp] + ldr r1, =sub_81B36FC + str r1, [sp, 0x4] + ldr r1, [r3] + str r1, [sp, 0x8] + movs r1, 0xFF + movs r3, 0x1 + bl sub_81B0038 + add sp, 0xC + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B3894 + + thumb_func_start brm_switch +brm_switch: @ 81B38DC + push {r4-r6,lr} + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + movs r0, 0x5 + bl PlaySE + ldr r5, =gUnknown_0203CEC8 + movs r0, 0x8 + strb r0, [r5, 0xB] + ldr r4, =gUnknown_0203CEC4 + ldr r0, [r4] + adds r0, 0xD + bl sub_81B302C + ldr r0, [r4] + adds r0, 0xC + bl sub_81B302C + movs r0, 0x3 + bl display_pokemon_menu_message + ldrb r0, [r5, 0x9] + movs r1, 0x1 + bl sub_81B0FCC + ldrb r0, [r5, 0x9] + strb r0, [r5, 0xA] + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B1370 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end brm_switch + + thumb_func_start sub_81B3938 +sub_81B3938: @ 81B3938 + push {r4-r7,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r7, r0, 24 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r6, r0, r1 + ldr r3, =gUnknown_0203CEC8 + movs r1, 0xA + ldrsb r1, [r3, r1] + movs r0, 0x9 + ldrsb r0, [r3, r0] + cmp r1, r0 + bne _081B3968 + adds r0, r7, 0 + bl sub_81B407C + b _081B3ABA + .pool +_081B3968: + add r2, sp, 0x8 + movs r0, 0x9 + ldrsb r0, [r3, r0] + ldr r1, =gUnknown_0203CEDC + ldr r1, [r1] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0, 0x8] + movs r4, 0 + strb r0, [r2] + adds r0, r2, 0 + ldrb r0, [r0] + movs r1, 0x1 + bl GetWindowAttribute + strh r0, [r6] + add r0, sp, 0x8 + ldrb r0, [r0] + movs r1, 0x2 + bl GetWindowAttribute + strh r0, [r6, 0x2] + add r0, sp, 0x8 + ldrb r0, [r0] + movs r1, 0x3 + bl GetWindowAttribute + strh r0, [r6, 0x4] + add r0, sp, 0x8 + ldrb r0, [r0] + movs r1, 0x4 + bl GetWindowAttribute + strh r0, [r6, 0x6] + strh r4, [r6, 0x10] + movs r1, 0x4 + ldrsh r0, [r6, r1] + cmp r0, 0xA + bne _081B39C4 + movs r2, 0x1 + negs r2, r2 + adds r0, r2, 0 + b _081B39C6 + .pool +_081B39C4: + movs r0, 0x1 +_081B39C6: + strh r0, [r6, 0x14] + add r2, sp, 0x8 + ldr r0, =gUnknown_0203CEC8 + ldrb r0, [r0, 0xA] + lsls r0, 24 + asrs r0, 24 + ldr r1, =gUnknown_0203CEDC + ldr r1, [r1] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0, 0x8] + movs r4, 0 + strb r0, [r2, 0x1] + adds r0, r2, 0 + ldrb r0, [r0, 0x1] + movs r1, 0x1 + bl GetWindowAttribute + strh r0, [r6, 0x8] + add r0, sp, 0x8 + ldrb r0, [r0, 0x1] + movs r1, 0x2 + bl GetWindowAttribute + strh r0, [r6, 0xA] + add r0, sp, 0x8 + ldrb r0, [r0, 0x1] + movs r1, 0x3 + bl GetWindowAttribute + strh r0, [r6, 0xC] + add r0, sp, 0x8 + ldrb r0, [r0, 0x1] + movs r1, 0x4 + bl GetWindowAttribute + strh r0, [r6, 0xE] + strh r4, [r6, 0x12] + movs r1, 0xC + ldrsh r0, [r6, r1] + cmp r0, 0xA + bne _081B3A2C + movs r2, 0x1 + negs r2, r2 + adds r0, r2, 0 + b _081B3A2E + .pool +_081B3A2C: + movs r0, 0x1 +_081B3A2E: + strh r0, [r6, 0x16] + ldr r4, =gUnknown_0203CEF0 + movs r0, 0x4 + ldrsh r1, [r6, r0] + movs r2, 0x6 + ldrsh r0, [r6, r2] + lsls r0, 1 + muls r0, r1 + bl Alloc + str r0, [r4] + ldr r5, =gUnknown_0203CEF4 + movs r0, 0xC + ldrsh r1, [r6, r0] + movs r2, 0xE + ldrsh r0, [r6, r2] + lsls r0, 1 + muls r0, r1 + bl Alloc + str r0, [r5] + ldr r1, [r4] + ldrb r2, [r6] + ldrb r3, [r6, 0x2] + ldrb r0, [r6, 0x4] + str r0, [sp] + ldrb r0, [r6, 0x6] + str r0, [sp, 0x4] + movs r0, 0 + bl sub_8199CBC + ldr r1, [r5] + ldrb r2, [r6, 0x8] + ldrb r3, [r6, 0xA] + ldrb r0, [r6, 0xC] + str r0, [sp] + ldrb r0, [r6, 0xE] + str r0, [sp, 0x4] + movs r0, 0 + bl sub_8199CBC + add r0, sp, 0x8 + ldrb r0, [r0] + bl ClearWindowTilemap + add r0, sp, 0x8 + ldrb r0, [r0, 0x1] + bl ClearWindowTilemap + ldr r4, =gUnknown_0203CEC8 + movs r0, 0x9 + strb r0, [r4, 0xB] + ldrb r0, [r4, 0x9] + movs r1, 0x1 + bl sub_81B0FCC + ldrb r0, [r4, 0xA] + movs r1, 0x1 + bl sub_81B0FCC + adds r0, r7, 0 + bl sub_81B3CC0 + ldr r1, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B3D48 + str r1, [r0] +_081B3ABA: + add sp, 0xC + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B3938 + + thumb_func_start sub_81B3AD8 +sub_81B3AD8: @ 81B3AD8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r2, 0 + mov r12, r3 + ldr r7, [sp, 0x18] + lsls r0, 16 + lsrs r3, r0, 16 + adds r5, r3, 0 + lsls r1, 16 + lsrs r2, r1, 16 + mov r8, r2 + lsls r0, r3, 16 + asrs r1, r0, 16 + lsls r0, r2, 16 + asrs r0, 16 + adds r4, r1, r0 + cmp r4, 0 + blt _081B3B02 + cmp r1, 0x1F + ble _081B3B06 +_081B3B02: + movs r0, 0 + b _081B3B34 +_081B3B06: + cmp r1, 0 + bge _081B3B1A + negs r0, r1 + strb r0, [r6] + movs r0, 0 + mov r1, r12 + strb r0, [r1] + adds r0, r2, r3 + strb r0, [r7] + b _081B3B32 +_081B3B1A: + movs r0, 0 + strb r0, [r6] + mov r0, r12 + strb r5, [r0] + cmp r4, 0x1F + ble _081B3B2E + movs r0, 0x20 + subs r0, r5 + strb r0, [r7] + b _081B3B32 +_081B3B2E: + mov r1, r8 + strb r1, [r7] +_081B3B32: + movs r0, 0x1 +_081B3B34: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81B3AD8 + + thumb_func_start sub_81B3B40 +sub_81B3B40: @ 81B3B40 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x34 + str r0, [sp, 0x28] + ldr r0, [sp, 0x54] + ldr r4, [sp, 0x58] + lsls r2, 16 + lsrs r2, 16 + mov r9, r2 + lsls r3, 16 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + lsls r4, 16 + lsrs r4, 16 + str r4, [sp, 0x30] + lsls r1, 16 + asrs r7, r1, 16 + lsrs r0, r3, 16 + str r0, [sp, 0x2C] + asrs r3, 16 + mov r8, r3 + mov r5, sp + adds r5, 0x25 + mov r6, sp + adds r6, 0x26 + str r6, [sp] + adds r0, r7, 0 + mov r1, r8 + add r2, sp, 0x24 + adds r3, r5, 0 + bl sub_81B3AD8 + lsls r0, 24 + cmp r0, 0 + beq _081B3BFA + ldrb r2, [r5] + mov r1, r9 + lsls r0, r1, 24 + lsrs r0, 24 + mov r9, r0 + ldrb r0, [r6] + str r0, [sp] + mov r1, r10 + lsls r0, r1, 24 + lsrs r4, r0, 24 + str r4, [sp, 0x4] + movs r0, 0 + movs r1, 0 + mov r3, r9 + bl FillBgTilemapBufferRect_Palette0 + ldr r1, [sp, 0x30] + lsls r0, r1, 16 + asrs r0, 16 + adds r0, r7, r0 + lsls r0, 16 + asrs r0, 16 + str r6, [sp] + mov r1, r8 + add r2, sp, 0x24 + adds r3, r5, 0 + bl sub_81B3AD8 + lsls r0, 24 + cmp r0, 0 + beq _081B3BFA + add r0, sp, 0x24 + ldrb r2, [r0] + ldr r1, [sp, 0x2C] + lsls r0, r1, 24 + lsrs r0, 24 + str r0, [sp] + str r4, [sp, 0x4] + ldrb r0, [r5] + str r0, [sp, 0x8] + mov r0, r9 + str r0, [sp, 0xC] + ldrb r0, [r6] + str r0, [sp, 0x10] + str r4, [sp, 0x14] + movs r0, 0x11 + str r0, [sp, 0x18] + movs r0, 0 + str r0, [sp, 0x1C] + str r0, [sp, 0x20] + ldr r1, [sp, 0x28] + movs r3, 0 + bl CopyRectToBgTilemapBufferRect +_081B3BFA: + add sp, 0x34 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81B3B40 + + thumb_func_start sub_81B3C0C +sub_81B3C0C: @ 81B3C0C + push {r4,lr} + ldr r4, =gSprites + ldrb r2, [r0, 0xB] + lsls r3, r2, 4 + adds r3, r2 + lsls r3, 2 + adds r3, r4 + lsls r1, 16 + asrs r1, 13 + ldrh r2, [r3, 0x24] + adds r2, r1 + strh r2, [r3, 0x24] + ldrb r3, [r0, 0xA] + lsls r2, r3, 4 + adds r2, r3 + lsls r2, 2 + adds r2, r4 + ldrh r3, [r2, 0x24] + adds r3, r1 + strh r3, [r2, 0x24] + ldrb r3, [r0, 0x9] + lsls r2, r3, 4 + adds r2, r3 + lsls r2, 2 + adds r2, r4 + ldrh r3, [r2, 0x24] + adds r3, r1 + strh r3, [r2, 0x24] + ldrb r2, [r0, 0xC] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r4 + ldrh r2, [r0, 0x24] + adds r2, r1 + strh r2, [r0, 0x24] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B3C0C + + thumb_func_start sub_81B3C60 +sub_81B3C60: @ 81B3C60 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r4, r1, r0 + movs r1, 0x14 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _081B3C8E + ldr r2, =gUnknown_0203CEDC + ldr r0, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r0, r1] + lsls r1, 4 + ldr r0, [r2] + adds r0, r1 + movs r2, 0x14 + ldrsh r1, [r4, r2] + bl sub_81B3C0C +_081B3C8E: + movs r1, 0x16 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _081B3CAC + ldr r2, =gUnknown_0203CEDC + ldr r0, =gUnknown_0203CEC8 + movs r1, 0xA + ldrsb r1, [r0, r1] + lsls r1, 4 + ldr r0, [r2] + adds r0, r1 + movs r2, 0x16 + ldrsh r1, [r4, r2] + bl sub_81B3C0C +_081B3CAC: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B3C60 + + thumb_func_start sub_81B3CC0 +sub_81B3CC0: @ 81B3CC0 + push {r4-r6,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r5, r1, r0 + movs r1, 0x14 + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _081B3D00 + ldr r0, =gUnknown_0203CEF0 + ldr r0, [r0] + ldrh r1, [r5, 0x10] + ldrh r2, [r5] + adds r1, r2 + lsls r1, 16 + asrs r1, 16 + movs r3, 0x2 + ldrsh r2, [r5, r3] + movs r4, 0x4 + ldrsh r3, [r5, r4] + movs r6, 0x6 + ldrsh r4, [r5, r6] + str r4, [sp] + movs r6, 0x14 + ldrsh r4, [r5, r6] + str r4, [sp, 0x4] + bl sub_81B3B40 +_081B3D00: + movs r1, 0x16 + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _081B3D2E + ldr r0, =gUnknown_0203CEF4 + ldr r0, [r0] + ldrh r1, [r5, 0x12] + ldrh r2, [r5, 0x8] + adds r1, r2 + lsls r1, 16 + asrs r1, 16 + movs r3, 0xA + ldrsh r2, [r5, r3] + movs r4, 0xC + ldrsh r3, [r5, r4] + movs r6, 0xE + ldrsh r4, [r5, r6] + str r4, [sp] + movs r6, 0x16 + ldrsh r4, [r5, r6] + str r4, [sp, 0x4] + bl sub_81B3B40 +_081B3D2E: + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B3CC0 + + thumb_func_start sub_81B3D48 +sub_81B3D48: @ 81B3D48 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r7, r0, 3 + ldr r0, =gTasks + 0x8 + mov r8, r0 + adds r6, r7, r0 + adds r0, r4, 0 + bl sub_81B3CC0 + adds r0, r4, 0 + bl sub_81B3C60 + ldrh r1, [r6, 0x14] + ldrh r2, [r6, 0x10] + adds r1, r2 + strh r1, [r6, 0x10] + ldrh r0, [r6, 0x16] + ldrh r3, [r6, 0x12] + adds r0, r3 + strh r0, [r6, 0x12] + add r2, sp, 0x8 + ldrh r0, [r6] + adds r0, r1 + strh r0, [r2] + adds r1, r2, 0 + ldrh r0, [r6, 0x12] + ldrh r3, [r6, 0x8] + adds r2, r0, r3 + strh r2, [r1, 0x2] + adds r0, r1, 0 + ldrh r0, [r0] + cmp r0, 0x21 + bls _081B3E3A + lsls r0, r2, 16 + lsrs r0, 16 + cmp r0, 0x21 + bls _081B3E3A + movs r1, 0x14 + ldrsh r0, [r6, r1] + negs r0, r0 + strh r0, [r6, 0x14] + movs r2, 0x16 + ldrsh r0, [r6, r2] + negs r0, r0 + strh r0, [r6, 0x16] + bl swap_pokemon_and_oams + ldr r4, =gUnknown_0203CEC8 + ldrb r0, [r4, 0x9] + bl sub_81B0948 + ldrb r0, [r4, 0xA] + bl sub_81B0948 + movs r0, 0x9 + ldrsb r0, [r4, r0] + ldr r5, =gUnknown_0203CEDC + ldr r1, [r5] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0, 0x8] + bl PutWindowTilemap + movs r0, 0xA + ldrsb r0, [r4, r0] + ldr r1, [r5] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0, 0x8] + bl PutWindowTilemap + ldr r0, =gUnknown_0203CEF0 + ldr r1, [r0] + ldrb r2, [r6] + ldrb r3, [r6, 0x2] + ldrb r0, [r6, 0x4] + str r0, [sp] + ldrb r0, [r6, 0x6] + str r0, [sp, 0x4] + movs r0, 0 + bl sub_8199CBC + ldr r0, =gUnknown_0203CEF4 + ldr r1, [r0] + ldrb r2, [r6, 0x8] + ldrb r3, [r6, 0xA] + ldrb r0, [r6, 0xC] + str r0, [sp] + ldrb r0, [r6, 0xE] + str r0, [sp, 0x4] + movs r0, 0 + bl sub_8199CBC + movs r0, 0x9 + ldrsb r0, [r4, r0] + ldr r1, [r5] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0, 0x8] + bl ClearWindowTilemap + movs r0, 0xA + ldrsb r0, [r4, r0] + ldr r1, [r5] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0, 0x8] + bl ClearWindowTilemap + mov r0, r8 + subs r0, 0x8 + adds r0, r7, r0 + ldr r1, =sub_81B3E60 + str r1, [r0] +_081B3E3A: + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B3D48 + + thumb_func_start sub_81B3E60 +sub_81B3E60: @ 81B3E60 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + adds r0, r6, 0 + bl sub_81B3CC0 + adds r0, r6, 0 + bl sub_81B3C60 + movs r1, 0x14 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _081B3EE4 + movs r2, 0x16 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _081B3EE4 + ldr r5, =gUnknown_0203CEC8 + movs r0, 0x9 + ldrsb r0, [r5, r0] + ldr r4, =gUnknown_0203CEDC + ldr r1, [r4] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0, 0x8] + bl PutWindowTilemap + movs r0, 0xA + ldrsb r0, [r5, r0] + ldr r1, [r4] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0, 0x8] + bl PutWindowTilemap + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + ldr r0, =gUnknown_0203CEF0 + ldr r0, [r0] + bl Free + ldr r0, =gUnknown_0203CEF4 + ldr r0, [r0] + bl Free + adds r0, r6, 0 + bl sub_81B407C + b _081B3F08 + .pool +_081B3EE4: + ldrh r1, [r4, 0x14] + ldrh r0, [r4, 0x10] + adds r1, r0 + strh r1, [r4, 0x10] + ldrh r0, [r4, 0x16] + ldrh r2, [r4, 0x12] + adds r0, r2 + strh r0, [r4, 0x12] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0 + bne _081B3EFE + strh r1, [r4, 0x14] +_081B3EFE: + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _081B3F08 + strh r0, [r4, 0x16] +_081B3F08: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81B3E60 + + thumb_func_start oamt_swap_pos +oamt_swap_pos: @ 81B3F10 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + ldrb r3, [r0] + ldrb r2, [r1] + strb r2, [r0] + strb r3, [r1] + ldr r5, =gSprites + ldrb r2, [r0] + lsls r3, r2, 4 + adds r3, r2 + lsls r3, 2 + adds r3, r5 + ldrh r6, [r3, 0x20] + ldrh r2, [r3, 0x22] + mov r8, r2 + ldrh r2, [r3, 0x24] + mov r9, r2 + ldrh r2, [r3, 0x26] + mov r10, r2 + ldrb r4, [r1] + lsls r2, r4, 4 + adds r2, r4 + lsls r2, 2 + adds r2, r5 + ldrh r2, [r2, 0x20] + strh r2, [r3, 0x20] + ldrb r2, [r0] + lsls r3, r2, 4 + adds r3, r2 + lsls r3, 2 + adds r3, r5 + ldrb r4, [r1] + lsls r2, r4, 4 + adds r2, r4 + lsls r2, 2 + adds r2, r5 + ldrh r2, [r2, 0x22] + strh r2, [r3, 0x22] + ldrb r2, [r0] + lsls r3, r2, 4 + adds r3, r2 + lsls r3, 2 + adds r3, r5 + ldrb r4, [r1] + lsls r2, r4, 4 + adds r2, r4 + lsls r2, 2 + adds r2, r5 + ldrh r2, [r2, 0x24] + strh r2, [r3, 0x24] + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r5 + ldrb r3, [r1] + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 2 + adds r0, r5 + ldrh r0, [r0, 0x26] + strh r0, [r2, 0x26] + ldrb r2, [r1] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x20] + ldrb r2, [r1] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r5 + mov r2, r8 + strh r2, [r0, 0x22] + ldrb r2, [r1] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r5 + mov r2, r9 + strh r2, [r0, 0x24] + ldrb r1, [r1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + mov r1, r10 + strh r1, [r0, 0x26] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end oamt_swap_pos + + thumb_func_start swap_pokemon_and_oams +swap_pokemon_and_oams: @ 81B3FDC + push {r4-r6,lr} + sub sp, 0x8 + ldr r1, =gUnknown_0203CEDC + ldr r2, =gUnknown_0203CEC8 + movs r3, 0x9 + ldrsb r3, [r2, r3] + lsls r0, r3, 4 + ldr r1, [r1] + adds r0, r1, r0 + str r0, [sp] + ldrb r2, [r2, 0xA] + lsls r2, 24 + asrs r2, 24 + lsls r0, r2, 4 + adds r0, r1, r0 + str r0, [sp, 0x4] + movs r1, 0x64 + adds r4, r3, 0 + muls r4, r1 + ldr r0, =gPlayerParty + adds r4, r0 + adds r5, r2, 0 + muls r5, r1 + adds r5, r0 + movs r0, 0x64 + bl Alloc + adds r6, r0, 0 + adds r1, r4, 0 + movs r2, 0x64 + bl memcpy + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x64 + bl memcpy + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x64 + bl memcpy + adds r0, r6, 0 + bl Free + ldr r0, [sp] + adds r0, 0xB + ldr r1, [sp, 0x4] + adds r1, 0xB + bl oamt_swap_pos + ldr r0, [sp] + adds r0, 0xA + ldr r1, [sp, 0x4] + adds r1, 0xA + bl oamt_swap_pos + ldr r0, [sp] + adds r0, 0x9 + ldr r1, [sp, 0x4] + adds r1, 0x9 + bl oamt_swap_pos + ldr r0, [sp] + adds r0, 0xC + ldr r1, [sp, 0x4] + adds r1, 0xC + bl oamt_swap_pos + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end swap_pokemon_and_oams + + thumb_func_start sub_81B407C +sub_81B407C: @ 81B407C + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + adds r0, 0xD + bl sub_81B302C + ldr r4, =gUnknown_0203CEC8 + movs r0, 0 + strb r0, [r4, 0xB] + ldrb r0, [r4, 0x9] + movs r1, 0 + bl sub_81B0FCC + ldrb r0, [r4, 0xA] + strb r0, [r4, 0x9] + ldrb r0, [r4, 0xA] + movs r1, 0x1 + bl sub_81B0FCC + movs r0, 0 + bl display_pokemon_menu_message + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B1370 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B407C + + thumb_func_start brm_cancel_1 +brm_cancel_1: @ 81B40D4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0x5 + bl PlaySE + ldr r4, =gUnknown_0203CEC4 + ldr r0, [r4] + adds r0, 0xC + bl sub_81B302C + ldr r0, [r4] + adds r0, 0xD + bl sub_81B302C + ldr r0, =gUnknown_0203CEC8 + ldrb r1, [r0, 0x8] + movs r0, 0xF + ands r0, r1 + cmp r0, 0x6 + bne _081B4110 + movs r0, 0xF + bl display_pokemon_menu_message + b _081B4116 + .pool +_081B4110: + movs r0, 0 + bl display_pokemon_menu_message +_081B4116: + ldr r0, =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B1370 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end brm_cancel_1 + + thumb_func_start sub_81B4134 +sub_81B4134: @ 81B4134 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0x5 + bl PlaySE + ldr r4, =gUnknown_0203CEC4 + ldr r0, [r4] + adds r0, 0xC + bl sub_81B302C + ldr r0, [r4] + adds r0, 0xD + bl sub_81B302C + ldr r0, =gPlayerParty + ldr r1, =gUnknown_0203CEC8 + ldrb r1, [r1, 0x9] + movs r2, 0x8 + bl sub_81B33B4 + movs r0, 0x1 + bl sub_81B31B0 + movs r0, 0x18 + bl display_pokemon_menu_message + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0xFF + strh r1, [r0, 0x8] + ldr r1, =sub_81B3730 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B4134 + + thumb_func_start sub_81B4198 +sub_81B4198: @ 81B4198 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_0203CEC4 + ldr r1, [r0] + ldr r0, =sub_81B41C4 + str r0, [r1, 0x4] + adds r0, r4, 0 + bl sub_81B12C0 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B4198 + + thumb_func_start sub_81B41C4 +sub_81B41C4: @ 81B41C4 + push {lr} + bl InBattlePyramid + lsls r0, 24 + cmp r0, 0 + bne _081B41E0 + ldr r2, =c2_8123744 + movs r0, 0x2 + movs r1, 0x5 + bl GoToBagMenu + b _081B41E8 + .pool +_081B41E0: + ldr r1, =c2_8123744 + movs r0, 0x2 + bl sub_81C4F98 +_081B41E8: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B41C4 + + thumb_func_start c2_8123744 +c2_8123744: @ 81B41F0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + ldr r6, =gUnknown_0203CE7C + ldrh r0, [r6] + cmp r0, 0 + bne _081B4224 + ldr r3, =gUnknown_0203CEC8 + ldrb r0, [r3, 0x8] + lsls r0, 28 + lsrs r0, 28 + ldrb r2, [r3, 0xB] + movs r1, 0x7F + str r1, [sp] + ldr r1, =sub_81B36FC + str r1, [sp, 0x4] + ldr r1, [r3] + b _081B425A + .pool +_081B4224: + ldr r4, =gUnknown_0203CEFC + ldr r5, =gUnknown_0203CEC8 + movs r0, 0x9 + ldrsb r0, [r5, r0] + movs r1, 0x64 + mov r8, r1 + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + ldr r7, =gPlayerParty + adds r0, r7 + movs r1, 0xC + bl GetMonData + strh r0, [r4] + lsls r0, 16 + cmp r0, 0 + beq _081B4278 + ldrb r0, [r5, 0x8] + lsls r0, 28 + lsrs r0, 28 + ldrb r2, [r5, 0xB] + movs r1, 0x7F + str r1, [sp] + ldr r1, =sub_81B4350 + str r1, [sp, 0x4] + ldr r1, [r5] +_081B425A: + str r1, [sp, 0x8] + movs r1, 0xFF + movs r3, 0x1 + bl sub_81B0038 + b _081B42C0 + .pool +_081B4278: + ldrh r0, [r6] + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + beq _081B42A4 + ldrh r0, [r6] + movs r1, 0x1 + bl RemoveBagItem + movs r0, 0x9 + ldrsb r0, [r5, r0] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r7 + ldrh r1, [r6] + bl sub_81B1DB8 + bl sub_81B452C + b _081B42C0 +_081B42A4: + ldrb r0, [r5, 0x8] + lsls r0, 28 + lsrs r0, 28 + ldrb r2, [r5, 0xB] + movs r1, 0x7F + str r1, [sp] + ldr r1, =sub_81B42D0 + str r1, [sp, 0x4] + ldr r1, [r5] + str r1, [sp, 0x8] + movs r1, 0xFF + movs r3, 0x1 + bl sub_81B0038 +_081B42C0: + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end c2_8123744 + + thumb_func_start sub_81B42D0 +sub_81B42D0: @ 81B42D0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081B432C + ldr r0, =gUnknown_0203CE7C + ldrh r4, [r0] + ldr r0, =gUnknown_0203CEC8 + mov r8, r0 + ldrb r0, [r0, 0x9] + lsls r0, 24 + asrs r0, 24 + movs r6, 0x64 + muls r0, r6 + ldr r5, =gPlayerParty + adds r0, r5 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0 + bl sub_81B1C84 + mov r1, r8 + movs r0, 0x9 + ldrsb r0, [r1, r0] + muls r0, r6 + adds r0, r5 + adds r1, r4, 0 + bl sub_81B1DB8 + adds r0, r4, 0 + movs r1, 0x1 + bl RemoveBagItem + ldr r1, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B469C + str r1, [r0] +_081B432C: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B42D0 + + thumb_func_start sub_81B4350 +sub_81B4350: @ 81B4350 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081B4388 + ldr r0, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gUnknown_0203CEFC + ldrh r1, [r1] + movs r2, 0x1 + bl sub_81B1D1C + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B43A8 + str r1, [r0] +_081B4388: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B4350 + + thumb_func_start sub_81B43A8 +sub_81B43A8: @ 81B43A8 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_81B1BD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B43CC + bl sub_81B334C + ldr r0, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B43DC + str r0, [r1] +_081B43CC: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B43A8 + + thumb_func_start sub_81B43DC +sub_81B43DC: @ 81B43DC + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8198C58 + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _081B4402 + cmp r1, 0 + bgt _081B43FC + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _081B44D8 + b _081B44EC +_081B43FC: + cmp r1, 0x1 + beq _081B44DE + b _081B44EC +_081B4402: + ldr r5, =gUnknown_0203CE7C + ldrh r0, [r5] + movs r1, 0x1 + bl RemoveBagItem + ldr r6, =gUnknown_0203CEFC + ldrh r0, [r6] + movs r1, 0x1 + bl AddBagItem + lsls r0, 24 + cmp r0, 0 + bne _081B4458 + ldrh r0, [r5] + movs r1, 0x1 + bl AddBagItem + ldrh r0, [r6] + bl pokemon_item_not_removed + ldr r0, =gStringVar4 + movs r1, 0 + bl sub_81B1B5C + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B1C1C + str r1, [r0] + b _081B44EC + .pool +_081B4458: + ldrh r0, [r5] + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + beq _081B4498 + ldr r0, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + ldrh r1, [r5] + bl sub_81B1DB8 + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B44FC + str r1, [r0] + b _081B44EC + .pool +_081B4498: + ldr r0, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + ldrh r1, [r5] + bl sub_81B1DB8 + ldrh r0, [r5] + ldrh r1, [r6] + movs r2, 0x1 + bl sub_81B1D68 + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B469C + str r1, [r0] + b _081B44EC + .pool +_081B44D8: + movs r0, 0x5 + bl PlaySE +_081B44DE: + ldr r0, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B1C1C + str r0, [r1] +_081B44EC: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B43DC + + thumb_func_start sub_81B44FC +sub_81B44FC: @ 81B44FC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_81B1BD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B451C + ldr r0, =gUnknown_0203CEC4 + ldr r1, [r0] + ldr r0, =sub_81B452C + str r0, [r1, 0x4] + adds r0, r4, 0 + bl sub_81B12C0 +_081B451C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B44FC + + thumb_func_start sub_81B452C +sub_81B452C: @ 81B452C + push {lr} + ldr r0, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x40 + bl GetMonData + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gSaveBlock1Ptr + lsls r2, r0, 3 + adds r2, r0 + lsls r2, 2 + ldr r0, =0x00002be0 + adds r2, r0 + ldr r1, [r1] + adds r1, r2 + ldr r2, =sub_81B4578 + movs r0, 0x4 + movs r3, 0x3 + bl sub_811A20C + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B452C + + thumb_func_start sub_81B4578 +sub_81B4578: @ 81B4578 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + ldr r6, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r6, r1] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r5, r1, r0 + adds r0, r5, 0 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r0, =gScriptResult + ldrh r7, [r0] + cmp r7, 0 + bne _081B45F8 + adds r0, r5, 0 + bl sub_80D4680 + ldr r4, =gUnknown_0203CEFC + adds r0, r5, 0 + movs r1, 0xC + adds r2, r4, 0 + bl SetMonData + ldrh r0, [r4] + movs r1, 0x1 + bl RemoveBagItem + mov r0, r8 + movs r1, 0x1 + bl AddBagItem + ldrb r0, [r6, 0x8] + lsls r0, 28 + lsrs r0, 28 + ldrb r2, [r6, 0xB] + str r7, [sp] + ldr r1, =sub_81B36FC + str r1, [sp, 0x4] + ldr r1, [r6] + str r1, [sp, 0x8] + movs r1, 0xFF + movs r3, 0x1 + bl sub_81B0038 + b _081B4614 + .pool +_081B45F8: + ldrb r0, [r6, 0x8] + lsls r0, 28 + lsrs r0, 28 + ldrb r2, [r6, 0xB] + movs r1, 0x7F + str r1, [sp] + ldr r1, =sub_81B4624 + str r1, [sp, 0x4] + ldr r1, [r6] + str r1, [sp, 0x8] + movs r1, 0xFF + movs r3, 0x1 + bl sub_81B0038 +_081B4614: + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B4578 + + thumb_func_start sub_81B4624 +sub_81B4624: @ 81B4624 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081B468A + ldr r1, =gUnknown_0203CEFC + ldrh r0, [r1] + cmp r0, 0 + bne _081B4670 + ldr r0, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gUnknown_0203CE7C + ldrh r1, [r1] + movs r2, 0 + movs r3, 0 + bl sub_81B1C84 + b _081B467C + .pool +_081B4670: + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + ldrh r1, [r1] + movs r2, 0 + bl sub_81B1D68 +_081B467C: + ldr r0, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B469C + str r0, [r1] +_081B468A: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B4624 + + thumb_func_start sub_81B469C +sub_81B469C: @ 81B469C + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r4, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r4, r1] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r6, r1, r0 + bl sub_81B1BD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B471C + ldr r5, =gUnknown_0203CEDC + movs r0, 0x9 + ldrsb r0, [r4, r0] + lsls r0, 4 + ldr r1, [r5] + adds r1, r0 + adds r0, r6, 0 + bl sub_81B5C94 + ldrb r1, [r4, 0x8] + movs r0, 0xF + ands r0, r1 + cmp r0, 0xC + bne _081B4716 + adds r0, r6, 0 + movs r1, 0xC + bl GetMonData + cmp r0, 0 + beq _081B4704 + movs r0, 0x9 + ldrsb r0, [r4, r0] + lsls r0, 4 + ldr r1, [r5] + adds r1, r0 + movs r0, 0xB + movs r2, 0x1 + bl sub_81B2FA8 + b _081B4716 + .pool +_081B4704: + movs r0, 0x9 + ldrsb r0, [r4, r0] + lsls r0, 4 + ldr r1, [r5] + adds r1, r0 + movs r0, 0xC + movs r2, 0x1 + bl sub_81B2FA8 +_081B4716: + adds r0, r7, 0 + bl sub_81B1C1C +_081B471C: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81B469C + + thumb_func_start sub_81B4724 +sub_81B4724: @ 81B4724 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r5, r1, r0 + adds r0, r5, 0 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r6, r0, 16 + movs r0, 0x5 + bl PlaySE + ldr r4, =gUnknown_0203CEC4 + ldr r0, [r4] + adds r0, 0xC + bl sub_81B302C + ldr r0, [r4] + adds r0, 0xD + bl sub_81B302C + adds r0, r5, 0 + bl sub_81B1E00 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _081B4788 + cmp r0, 0x1 + beq _081B47AC + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x1 + bl sub_81B1CD0 + b _081B47BA + .pool +_081B4788: + ldr r1, =gStringVar1 + adds r0, r5, 0 + bl GetMonNickname + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E9980 + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + b _081B47B4 + .pool +_081B47AC: + adds r0, r6, 0 + bl pokemon_item_not_removed + ldr r0, =gStringVar4 +_081B47B4: + movs r1, 0x1 + bl sub_81B1B5C +_081B47BA: + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + ldr r0, =gTasks + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B469C + str r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B4724 + + thumb_func_start sub_81B47E0 +sub_81B47E0: @ 81B47E0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r7, r1, r0 + adds r0, r7, 0 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + movs r0, 0x5 + bl PlaySE + ldr r4, =gUnknown_0203CEC4 + ldr r0, [r4] + adds r0, 0xC + bl sub_81B302C + ldr r0, [r4] + adds r0, 0xD + bl sub_81B302C + cmp r5, 0 + bne _081B4864 + ldr r1, =gStringVar1 + adds r0, r7, 0 + bl GetMonNickname + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E9980 + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81B1B5C + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B469C + b _081B488A + .pool +_081B4864: + ldr r1, =gStringVar1 + adds r0, r5, 0 + bl CopyItemName + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E9E00 + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81B1B5C + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B48A8 +_081B488A: + str r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B47E0 + + thumb_func_start sub_81B48A8 +sub_81B48A8: @ 81B48A8 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_81B1BD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B48CC + bl sub_81B334C + ldr r0, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B48DC + str r0, [r1] +_081B48CC: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B48A8 + + thumb_func_start sub_81B48DC +sub_81B48DC: @ 81B48DC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r4, r1, r0 + bl sub_8198C58 + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _081B491A + cmp r1, 0 + bgt _081B4914 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _081B4964 + b _081B4978 + .pool +_081B4914: + cmp r1, 0x1 + beq _081B496A + b _081B4978 +_081B491A: + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + ldr r1, =gStringVar1 + bl CopyItemName + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E9E14 + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_81B1B5C + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B4988 + str r1, [r0] + b _081B4978 + .pool +_081B4964: + movs r0, 0x5 + bl PlaySE +_081B496A: + ldr r0, =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B1C1C + str r0, [r1] +_081B4978: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B48DC + + thumb_func_start sub_81B4988 +sub_81B4988: @ 81B4988 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r6, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r6, r1] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r5, r1, r0 + bl sub_81B1BD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B49EC + movs r1, 0 + mov r0, sp + strh r1, [r0] + adds r0, r5, 0 + movs r1, 0xC + mov r2, sp + bl SetMonData + ldr r4, =gUnknown_0203CEDC + movs r0, 0x9 + ldrsb r0, [r6, r0] + lsls r0, 4 + ldr r1, [r4] + adds r1, r0 + adds r0, r5, 0 + bl sub_81B5C94 + movs r0, 0x9 + ldrsb r0, [r6, r0] + lsls r0, 4 + ldr r1, [r4] + adds r1, r0 + movs r0, 0xC + movs r2, 0x1 + bl sub_81B2FA8 + ldr r1, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B1C1C + str r1, [r0] +_081B49EC: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B4988 + + thumb_func_start sub_81B4A08 +sub_81B4A08: @ 81B4A08 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0x5 + bl PlaySE + ldr r4, =gUnknown_0203CEC4 + ldr r0, [r4] + adds r0, 0xC + bl sub_81B302C + ldr r0, [r4] + adds r0, 0xD + bl sub_81B302C + ldr r0, =gPlayerParty + ldr r1, =gUnknown_0203CEC8 + ldrb r1, [r1, 0x9] + movs r2, 0x9 + bl sub_81B33B4 + movs r0, 0x2 + bl sub_81B31B0 + movs r0, 0x19 + bl display_pokemon_menu_message + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0xFF + strh r1, [r0, 0x8] + ldr r1, =sub_81B3730 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B4A08 + + thumb_func_start sub_81B4A6C +sub_81B4A6C: @ 81B4A6C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_0203CEC4 + ldr r1, [r0] + ldr r0, =sub_81B4A98 + str r0, [r1, 0x4] + adds r0, r4, 0 + bl sub_81B12C0 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B4A6C + + thumb_func_start sub_81B4A98 +sub_81B4A98: @ 81B4A98 + push {lr} + ldr r0, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x40 + bl GetMonData + ldr r2, =gSaveBlock1Ptr + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + ldr r0, =0x00002be0 + adds r1, r0 + ldr r0, [r2] + adds r0, r1 + ldr r1, =sub_81B4AE0 + movs r2, 0x1 + bl sub_8121478 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B4A98 + + thumb_func_start sub_81B4AE0 +sub_81B4AE0: @ 81B4AE0 + push {lr} + sub sp, 0xC + ldr r2, =gPaletteFade + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + ldr r3, =gUnknown_0203CEC8 + ldrb r0, [r3, 0x8] + lsls r0, 28 + lsrs r0, 28 + ldrb r2, [r3, 0xB] + movs r1, 0x15 + str r1, [sp] + ldr r1, =sub_81B36FC + str r1, [sp, 0x4] + ldr r1, [r3] + str r1, [sp, 0x8] + movs r1, 0xFF + movs r3, 0x1 + bl sub_81B0038 + add sp, 0xC + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B4AE0 + + thumb_func_start brm_take_2 +brm_take_2: @ 81B4B20 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x5 + bl PlaySE + ldr r5, =gUnknown_0203CEC4 + ldr r0, [r5] + adds r0, 0xD + bl sub_81B302C + ldr r0, [r5] + adds r0, 0xC + bl sub_81B302C + ldr r0, =gUnknown_085E9855 + movs r1, 0x1 + bl sub_81B1B5C + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B4B6C + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end brm_take_2 + + thumb_func_start sub_81B4B6C +sub_81B4B6C: @ 81B4B6C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_81B1BD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B4B90 + bl sub_81B334C + ldr r0, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B4BA0 + str r0, [r1] +_081B4B90: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B4B6C + + thumb_func_start sub_81B4BA0 +sub_81B4BA0: @ 81B4BA0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8198C58 + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _081B4BC6 + cmp r1, 0 + bgt _081B4BC0 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _081B4C30 + b _081B4C4C +_081B4BC0: + cmp r1, 0x1 + beq _081B4C36 + b _081B4C4C +_081B4BC6: + ldr r0, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + bl sub_80D4700 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _081B4C0C + ldr r0, =gUnknown_085E9877 + movs r1, 0 + bl sub_81B1B5C + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B469C + b _081B4C4A + .pool +_081B4C0C: + ldr r0, =gUnknown_085E9897 + movs r1, 0 + bl sub_81B1B5C + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B1C1C + b _081B4C4A + .pool +_081B4C30: + movs r0, 0x5 + bl PlaySE +_081B4C36: + ldr r0, =gUnknown_085E98B4 + movs r1, 0x1 + bl sub_81B1B5C + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B4C60 +_081B4C4A: + str r1, [r0] +_081B4C4C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B4BA0 + + thumb_func_start sub_81B4C60 +sub_81B4C60: @ 81B4C60 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_81B1BD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B4C84 + bl sub_81B334C + ldr r0, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B4C94 + str r0, [r1] +_081B4C84: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B4C60 + + thumb_func_start sub_81B4C94 +sub_81B4C94: @ 81B4C94 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r5, r0, 24 + bl sub_8198C58 + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _081B4CBE + cmp r1, 0 + bgt _081B4CB8 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _081B4D50 + b _081B4D64 +_081B4CB8: + cmp r1, 0x1 + beq _081B4D56 + b _081B4D64 +_081B4CBE: + ldr r0, =gUnknown_0203CEC8 + mov r8, r0 + ldrb r0, [r0, 0x9] + lsls r0, 24 + asrs r0, 24 + movs r7, 0x64 + muls r0, r7 + ldr r6, =gPlayerParty + adds r0, r6 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + movs r1, 0x1 + bl AddBagItem + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081B4D24 + mov r1, r8 + movs r0, 0x9 + ldrsb r0, [r1, r0] + muls r0, r7 + adds r0, r6 + bl sub_80D4680 + ldr r0, =gUnknown_085E99B8 + movs r1, 0 + bl sub_81B1B5C + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B469C + str r1, [r0] + b _081B4D64 + .pool +_081B4D24: + adds r0, r4, 0 + bl pokemon_item_not_removed + ldr r0, =gStringVar4 + movs r1, 0 + bl sub_81B1B5C + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B1C1C + str r1, [r0] + b _081B4D64 + .pool +_081B4D50: + movs r0, 0x5 + bl PlaySE +_081B4D56: + ldr r0, =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B1C1C + str r0, [r1] +_081B4D64: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B4C94 + + thumb_func_start sub_81B4D78 +sub_81B4D78: @ 81B4D78 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r5, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r5, r1] + movs r0, 0x64 + muls r0, r1 + ldr r6, =gPlayerParty + adds r7, r0, r6 + movs r0, 0x5 + bl PlaySE + ldr r4, =gUnknown_0203CEC4 + ldr r0, [r4] + adds r0, 0xC + bl sub_81B302C + ldr r0, [r4] + adds r0, 0xD + bl sub_81B302C + ldrb r4, [r5, 0x9] + adds r0, r7, 0 + bl sub_81B353C + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_81B33B4 + ldrb r1, [r5, 0x8] + movs r0, 0xF + ands r0, r1 + cmp r0, 0xC + beq _081B4DE4 + movs r0, 0 + bl sub_81B31B0 + movs r0, 0x15 + bl display_pokemon_menu_message + b _081B4E02 + .pool +_081B4DE4: + movs r0, 0x1 + bl sub_81B31B0 + adds r0, r7, 0 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + ldr r1, =gStringVar2 + bl CopyItemName + movs r0, 0x1A + bl display_pokemon_menu_message +_081B4E02: + ldr r1, =gTasks + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0xFF + strh r1, [r0, 0x8] + ldr r1, =sub_81B3730 + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B4D78 + + thumb_func_start brm_shift_sendout +brm_shift_sendout: @ 81B4E2C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x5 + bl PlaySE + ldr r5, =gUnknown_0203CEC4 + ldr r0, [r5] + adds r0, 0xC + bl sub_81B302C + bl sub_81B8A7C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081B4E5C + adds r0, r4, 0 + bl sub_81B12C0 + b _081B4E7A + .pool +_081B4E5C: + ldr r0, [r5] + adds r0, 0xD + bl sub_81B302C + ldr r0, =gStringVar4 + movs r1, 0x1 + bl sub_81B1B5C + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B1C1C + str r1, [r0] +_081B4E7A: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end brm_shift_sendout + + thumb_func_start sub_81B4E8C +sub_81B4E8C: @ 81B4E8C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r4, =gUnknown_0203CEC4 + ldr r0, [r4] + adds r0, 0xC + bl sub_81B302C + ldr r0, [r4] + adds r0, 0xD + bl sub_81B302C + bl sub_81B8830 + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + cmp r5, r6 + bcs _081B4F36 + ldr r2, =gUnknown_0203CEC8 + ldr r1, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + mov r8, r0 +_081B4EC6: + ldr r0, =gUnknown_0203CEF8 + adds r4, r5, r0 + ldrb r0, [r4] + cmp r0, 0 + bne _081B4F2C + movs r0, 0x5 + str r2, [sp] + bl PlaySE + ldr r2, [sp] + ldrb r0, [r2, 0x9] + adds r0, 0x1 + strb r0, [r4] + adds r0, r5, 0x2 + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gUnknown_0203CEDC + ldrb r2, [r2, 0x9] + lsls r2, 24 + asrs r2, 24 + lsls r2, 4 + ldr r1, [r1] + adds r1, r2 + movs r2, 0x1 + bl sub_81B2FA8 + subs r0, r6, 0x1 + cmp r5, r0 + bne _081B4F04 + bl sub_81B4F88 +_081B4F04: + movs r0, 0 + bl display_pokemon_menu_message + ldr r0, =sub_81B1370 + mov r1, r8 + str r0, [r1] + b _081B4F68 + .pool +_081B4F2C: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, r6 + bcc _081B4EC6 +_081B4F36: + ldr r0, =gStringVar1 + adds r1, r6, 0 + movs r2, 0 + movs r3, 0x1 + bl ConvertIntToDecimalStringN + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E9830 + adds r0, r4, 0 + bl StringExpandPlaceholders + movs r0, 0x20 + bl PlaySE + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81B1B5C + ldr r1, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B1C1C + str r1, [r0] +_081B4F68: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B4E8C + + thumb_func_start sub_81B4F88 +sub_81B4F88: @ 81B4F88 + push {r4,lr} + ldr r4, =gUnknown_0203CEC8 + ldrb r0, [r4, 0x9] + movs r1, 0 + bl sub_81B0FCC + movs r0, 0x6 + strb r0, [r4, 0x9] + movs r1, 0x1 + bl sub_81B0FCC + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B4F88 + + thumb_func_start sub_81B4FA8 +sub_81B4FA8: @ 81B4FA8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r0, 0x5 + bl PlaySE + ldr r4, =gUnknown_0203CEC4 + ldr r0, [r4] + adds r0, 0xC + bl sub_81B302C + ldr r0, [r4] + adds r0, 0xD + bl sub_81B302C + bl sub_81B8830 + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + cmp r4, r5 + bcs _081B502A + ldr r6, =gUnknown_0203CEF8 + subs r2, r5, 0x1 + adds r7, r6, 0 + ldr r3, =gUnknown_0203CEC8 +_081B4FE2: + adds r0, r4, r6 + ldrb r1, [r0] + movs r0, 0x9 + ldrsb r0, [r3, r0] + adds r0, 0x1 + cmp r1, r0 + bne _081B5020 + adds r0, r4, 0 + adds r4, r2, 0 + cmp r0, r4 + bge _081B500C + adds r3, r7, 0 +_081B4FFA: + adds r2, r0, r3 + adds r1, r0, 0x1 + adds r0, r1, r3 + ldrb r0, [r0] + strb r0, [r2] + lsls r1, 24 + lsrs r0, r1, 24 + cmp r0, r4 + blt _081B4FFA +_081B500C: + adds r1, r0, r6 + movs r0, 0 + strb r0, [r1] + b _081B502A + .pool +_081B5020: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r5 + bcc _081B4FE2 +_081B502A: + ldr r6, =gUnknown_0203CEDC + ldr r0, =gUnknown_0203CEC8 + ldrb r0, [r0, 0x9] + lsls r0, 24 + asrs r0, 24 + lsls r0, 4 + ldr r1, [r6] + adds r1, r0 + movs r0, 0x1 + movs r2, 0x1 + bl sub_81B2FA8 + movs r4, 0 + subs r5, 0x1 + mov r0, r8 + lsls r7, r0, 2 + cmp r4, r5 + bge _081B5078 +_081B504E: + ldr r0, =gUnknown_0203CEF8 + adds r1, r4, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _081B506E + adds r0, r4, 0x2 + lsls r0, 24 + lsrs r0, 24 + ldrb r2, [r1] + lsls r2, 4 + subs r2, 0x10 + ldr r1, [r6] + adds r1, r2 + movs r2, 0x1 + bl sub_81B2FA8 +_081B506E: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r5 + blt _081B504E +_081B5078: + movs r0, 0 + bl display_pokemon_menu_message + ldr r0, =gTasks + mov r2, r8 + adds r1, r7, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B1370 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B4FA8 + + thumb_func_start sub_81B50AC +sub_81B50AC: @ 81B50AC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_81B12C0 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81B50AC + + thumb_func_start sub_81B50C8 +sub_81B50C8: @ 81B50C8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, =gUnknown_0203CEC8 + mov r9, r0 + ldrb r0, [r0, 0x9] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x64 + mov r8, r1 + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + ldr r4, =gPlayerParty + adds r0, r4 + movs r1, 0x41 + bl GetMonData + adds r6, r0, 0 + lsls r6, 16 + lsrs r6, 16 + mov r1, r9 + movs r0, 0x9 + ldrsb r0, [r1, r0] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r4 + movs r1, 0xB + bl GetMonData + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + mov r1, r9 + movs r0, 0x9 + ldrsb r0, [r1, r0] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r4 + movs r1, 0x50 + bl GetMonData + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_800F7DC + ldr r0, [r0] + adds r1, r6, 0 + adds r2, r5, 0 + adds r3, r4, 0 + bl sub_807A8D0 + cmp r0, 0x1 + beq _081B515C + cmp r0, 0x2 + beq _081B5170 + movs r0, 0x5 + bl PlaySE + adds r0, r7, 0 + bl sub_81B12C0 + b _081B51B0 + .pool +_081B515C: + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085EA210 + bl StringExpandPlaceholders + b _081B5178 + .pool +_081B5170: + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085EA234 + bl StringExpandPlaceholders +_081B5178: + movs r0, 0x20 + bl PlaySE + ldr r4, =gUnknown_0203CEC4 + ldr r0, [r4] + adds r0, 0xC + bl sub_81B302C + ldr r0, [r4] + adds r0, 0xD + bl sub_81B302C + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085EA1CA + adds r0, r4, 0 + bl StringAppend + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81B1B5C + ldr r1, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B1C1C + str r1, [r0] +_081B51B0: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B50C8 + + thumb_func_start brm_trade_1 +brm_trade_1: @ 81B51D4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0xC + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, =gUnknown_0203CEC8 + mov r8, r0 + ldrb r0, [r0, 0x9] + lsls r0, 24 + asrs r0, 24 + movs r6, 0x64 + muls r0, r6 + ldr r4, =gPlayerParty + adds r0, r4 + movs r1, 0x41 + bl GetMonData + mov r9, r0 + mov r1, r9 + lsls r1, 16 + lsrs r1, 16 + mov r9, r1 + mov r1, r8 + movs r0, 0x9 + ldrsb r0, [r1, r0] + muls r0, r6 + adds r0, r4 + movs r1, 0xB + bl GetMonData + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + mov r1, r8 + movs r0, 0x9 + ldrsb r0, [r1, r0] + muls r0, r6 + adds r0, r4 + movs r1, 0x50 + bl GetMonData + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_800F7DC + ldr r0, [r0] + ldr r1, =gUnknown_02022C38 + ldr r1, [r1] + ldr r2, =gUnknown_02022C3C + ldrh r3, [r2] + ldr r2, =gUnknown_02022C3E + ldrb r2, [r2] + str r2, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + mov r2, r9 + bl sub_807A7E0 + cmp r0, 0 + beq _081B52C8 + ldr r5, =gStringVar4 + ldr r1, =gUnknown_08615E0C + subs r0, 0x1 + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r5, 0 + bl StringExpandPlaceholders + movs r0, 0x20 + bl PlaySE + ldr r4, =gUnknown_0203CEC4 + ldr r0, [r4] + adds r0, 0xC + bl sub_81B302C + ldr r0, [r4] + adds r0, 0xD + bl sub_81B302C + ldr r1, =gUnknown_085EA1CA + adds r0, r5, 0 + bl StringAppend + adds r0, r5, 0 + movs r1, 0x1 + bl sub_81B1B5C + ldr r1, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B1C1C + str r1, [r0] + b _081B52D4 + .pool +_081B52C8: + movs r0, 0x5 + bl PlaySE + adds r0, r7, 0 + bl sub_81B12C0 +_081B52D4: + add sp, 0xC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end brm_trade_1 + + thumb_func_start sub_81B52E4 +sub_81B52E4: @ 81B52E4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, =gUnknown_0203CEC4 + ldr r0, [r4] + adds r0, 0xC + bl sub_81B302C + ldr r0, [r4] + adds r0, 0xD + bl sub_81B302C + ldr r0, =gPlayerParty + ldr r1, =gUnknown_0203CEC8 + ldrb r1, [r1, 0x9] + lsls r1, 24 + asrs r1, 24 + lsls r1, 16 + lsrs r1, 16 + bl sub_807A918 + cmp r0, 0x2 + beq _081B5340 + cmp r0, 0x2 + bgt _081B5328 + cmp r0, 0x1 + beq _081B532E + b _081B5368 + .pool +_081B5328: + cmp r0, 0x3 + beq _081B5354 + b _081B5368 +_081B532E: + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085EA1E8 + bl StringExpandPlaceholders + b _081B53C0 + .pool +_081B5340: + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085EA210 + bl StringExpandPlaceholders + b _081B53C0 + .pool +_081B5354: + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085EA234 + bl StringExpandPlaceholders + b _081B53C0 + .pool +_081B5368: + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gStringVar1 + bl GetMonNickname + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085EA1CD + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81B1B5C + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B53FC + b _081B53E4 + .pool +_081B53C0: + movs r0, 0x20 + bl PlaySE + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085EA1CA + adds r0, r4, 0 + bl StringAppend + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81B1B5C + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B1C1C +_081B53E4: + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B52E4 + + thumb_func_start sub_81B53FC +sub_81B53FC: @ 81B53FC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_81B1BD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B5420 + bl sub_81B334C + ldr r0, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B5430 + str r0, [r1] +_081B5420: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B53FC + + thumb_func_start sub_81B5430 +sub_81B5430: @ 81B5430 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8198C58 + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _081B5456 + cmp r1, 0 + bgt _081B5450 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _081B545E + b _081B546A +_081B5450: + cmp r1, 0x1 + beq _081B5464 + b _081B546A +_081B5456: + adds r0, r4, 0 + bl sub_81B12C0 + b _081B546A +_081B545E: + movs r0, 0x5 + bl PlaySE +_081B5464: + adds r0, r4, 0 + bl sub_81B1C1C +_081B546A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81B5430 + + thumb_func_start sub_81B5470 +sub_81B5470: @ 81B5470 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + bl GetMenuCursorPos + ldr r5, =gUnknown_0203CEC4 + ldr r1, [r5] + lsls r0, 24 + lsrs r0, 24 + adds r1, 0xF + adds r1, r0 + ldrb r0, [r1] + subs r0, 0x13 + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x5 + bl PlaySE + ldr r1, =gUnknown_08615D9C + lsls r0, r4, 3 + adds r7, r0, r1 + ldr r0, [r7] + cmp r0, 0 + bne _081B54A2 + b _081B5664 +_081B54A2: + ldr r0, [r5] + adds r0, 0xC + bl sub_81B302C + ldr r0, [r5] + adds r0, 0xD + bl sub_81B302C + bl sub_81221AC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B54C6 + bl InUnionRoom + cmp r0, 0x1 + bne _081B54E8 +_081B54C6: + adds r0, r4, 0 + subs r0, 0xB + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _081B54E4 + movs r0, 0xD + bl display_pokemon_menu_message + b _081B5656 + .pool +_081B54E4: + ldrb r0, [r7, 0x4] + b _081B5652 +_081B54E8: + cmp r4, 0x7 + bhi _081B5524 + ldr r1, =0x00000867 + adds r0, r4, r1 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B5524 + ldr r0, =gUnknown_085E97FC + movs r1, 0x1 + bl sub_81B1B5C + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B1C1C + str r1, [r0] + b _081B5664 + .pool +_081B5524: + ldr r1, =gUnknown_08615D9C + lsls r0, r4, 3 + adds r5, r0, r1 + ldr r0, [r5] + bl _call_via_r0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B553A + b _081B563C +_081B553A: + subs r0, r4, 0x5 + cmp r0, 0x7 + bhi _081B5624 + lsls r0, 2 + ldr r1, =_081B5554 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081B5554: + .4byte _081B5614 + .4byte _081B5624 + .4byte _081B5624 + .4byte _081B557C + .4byte _081B55B8 + .4byte _081B5624 + .4byte _081B5574 + .4byte _081B5574 +_081B5574: + adds r0, r6, 0 + bl sub_8161560 + b _081B5664 +_081B557C: + ldr r0, =gSaveBlock1Ptr + ldr r1, [r0] + movs r0, 0x1C + ldrsb r0, [r1, r0] + lsls r0, 16 + lsrs r0, 16 + ldrb r1, [r1, 0x1D] + lsls r1, 24 + asrs r1, 24 + lsls r1, 16 + lsrs r1, 16 + bl get_mapheader_by_bank_and_number + adds r1, r0, 0 + ldr r0, =gStringVar1 + ldrb r1, [r1, 0x14] + bl sub_81245DC + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085EA196 + b _081B55E8 + .pool +_081B55B8: + ldr r0, =gSaveBlock1Ptr + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x24 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r0, 16 + adds r1, 0x25 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + lsls r1, 16 + lsrs r1, 16 + bl get_mapheader_by_bank_and_number + adds r1, r0, 0 + ldr r0, =gStringVar1 + ldrb r1, [r1, 0x14] + bl sub_81245DC + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085EA16B +_081B55E8: + bl StringExpandPlaceholders + adds r0, r6, 0 + bl sub_81B5674 + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + movs r1, 0x86 + lsls r1, 2 + adds r0, r1 + strh r4, [r0] + b _081B5664 + .pool +_081B5614: + ldr r1, =gUnknown_0203CEC8 + ldr r0, =sub_8124690 + b _081B5628 + .pool +_081B5624: + ldr r1, =gUnknown_0203CEC8 + ldr r0, =c2_exit_to_overworld_2_switch +_081B5628: + str r0, [r1] + adds r0, r6, 0 + bl sub_81B12C0 + b _081B5664 + .pool +_081B563C: + cmp r4, 0x1 + beq _081B564A + cmp r4, 0x4 + bne _081B5650 + bl sub_81B5864 + b _081B5656 +_081B564A: + bl sub_81B57DC + b _081B5656 +_081B5650: + ldrb r0, [r5, 0x4] +_081B5652: + bl display_pokemon_menu_message +_081B5656: + ldr r0, =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldr r0, =task_brm_cancel_1_on_keypad_a_or_b + str r0, [r1] +_081B5664: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B5470 + + thumb_func_start sub_81B5674 +sub_81B5674: @ 81B5674 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =gStringVar4 + movs r1, 0x1 + bl sub_81B1B5C + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B56A4 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B5674 + + thumb_func_start sub_81B56A4 +sub_81B56A4: @ 81B56A4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_81B1BD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B56C8 + bl sub_81B334C + ldr r0, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B56D8 + str r0, [r1] +_081B56C8: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B56A4 + + thumb_func_start sub_81B56D8 +sub_81B56D8: @ 81B56D8 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8198C58 + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _081B56FE + cmp r1, 0 + bgt _081B56F8 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _081B5714 + b _081B572A +_081B56F8: + cmp r1, 0x1 + beq _081B571A + b _081B572A +_081B56FE: + ldr r1, =gUnknown_0203CEC8 + ldr r0, =c2_exit_to_overworld_2_switch + str r0, [r1] + adds r0, r4, 0 + bl sub_81B12C0 + b _081B572A + .pool +_081B5714: + movs r0, 0x5 + bl PlaySE +_081B571A: + ldr r0, =gUnknown_03005DB0 + movs r1, 0 + str r1, [r0] + ldr r0, =gUnknown_0203CEEC + str r1, [r0] + adds r0, r4, 0 + bl sub_81B1C1C +_081B572A: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B56D8 + + thumb_func_start hm_add_c3_launch_phase_2 +hm_add_c3_launch_phase_2: @ 81B5738 + push {lr} + bl pal_fill_black + ldr r0, =task_launch_hm_phase_2 + movs r1, 0x8 + bl CreateTask + movs r0, 0x1 + pop {r1} + bx r1 + .pool + thumb_func_end hm_add_c3_launch_phase_2 + + thumb_func_start task_launch_hm_phase_2 +task_launch_hm_phase_2: @ 81B5750 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_80ABDFC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081B577C + bl brm_get_selected_species + ldr r1, =gUnknown_02038C08 + lsls r0, 16 + lsrs r0, 16 + str r0, [r1] + ldr r0, =gUnknown_0203CEEC + ldr r0, [r0] + bl _call_via_r0 + adds r0, r4, 0 + bl DestroyTask +_081B577C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end task_launch_hm_phase_2 + + thumb_func_start brm_get_selected_species +brm_get_selected_species: @ 81B578C + push {lr} + ldr r0, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + .pool + thumb_func_end brm_get_selected_species + + thumb_func_start task_brm_cancel_1_on_keypad_a_or_b +task_brm_cancel_1_on_keypad_a_or_b: @ 81B57B4 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _081B57CE + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081B57D4 +_081B57CE: + adds r0, r2, 0 + bl brm_cancel_1 +_081B57D4: + pop {r0} + bx r0 + .pool + thumb_func_end task_brm_cancel_1_on_keypad_a_or_b + + thumb_func_start sub_81B57DC +sub_81B57DC: @ 81B57DC + push {lr} + ldr r0, =0x00000888 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081B57F8 + movs r0, 0xC + bl display_pokemon_menu_message + b _081B57FE + .pool +_081B57F8: + movs r0, 0xD + bl display_pokemon_menu_message +_081B57FE: + pop {r0} + bx r0 + thumb_func_end sub_81B57DC + + thumb_func_start hm_surf_run_dp02scr +hm_surf_run_dp02scr: @ 81B5804 + push {lr} + bl brm_get_pokemon_selection + ldr r1, =gUnknown_02038C08 + lsls r0, 24 + lsrs r0, 24 + str r0, [r1] + movs r0, 0x9 + bl FieldEffectStart + pop {r0} + bx r0 + .pool + thumb_func_end hm_surf_run_dp02scr + + thumb_func_start sub_81B5820 +sub_81B5820: @ 81B5820 + push {lr} + bl PartyHasMonWithSurf + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081B585C + bl IsPlayerFacingSurfableFishableWater + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081B585C + ldr r1, =gUnknown_03005DB0 + ldr r0, =hm_add_c3_launch_phase_2 + str r0, [r1] + ldr r1, =gUnknown_0203CEEC + ldr r0, =hm_surf_run_dp02scr + str r0, [r1] + movs r0, 0x1 + b _081B585E + .pool +_081B585C: + movs r0, 0 +_081B585E: + pop {r1} + bx r1 + thumb_func_end sub_81B5820 + + thumb_func_start sub_81B5864 +sub_81B5864: @ 81B5864 + push {lr} + movs r0, 0x8 + bl TestPlayerAvatarFlags + lsls r0, 24 + cmp r0, 0 + beq _081B587A + movs r0, 0x9 + bl display_pokemon_menu_message + b _081B5880 +_081B587A: + movs r0, 0x8 + bl display_pokemon_menu_message +_081B5880: + pop {r0} + bx r0 + thumb_func_end sub_81B5864 + + thumb_func_start sub_81B5884 +sub_81B5884: @ 81B5884 + push {lr} + ldr r0, =gUnknown_02037318 + ldrb r0, [r0, 0x17] + bl is_light_level_1_2_3_or_6 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B58A0 + movs r0, 0 + b _081B58A2 + .pool +_081B58A0: + movs r0, 0x1 +_081B58A2: + pop {r1} + bx r1 + thumb_func_end sub_81B5884 + + thumb_func_start sub_81B58A8 +sub_81B58A8: @ 81B58A8 + push {lr} + sub sp, 0xC + movs r0, 0 + str r0, [sp] + ldr r0, =sub_81B1370 + str r0, [sp, 0x4] + ldr r0, =sub_8086194 + str r0, [sp, 0x8] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_81B0038 + add sp, 0xC + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B58A8 + + thumb_func_start hm2_waterfall +hm2_waterfall: @ 81B58D4 + push {lr} + bl brm_get_pokemon_selection + ldr r1, =gUnknown_02038C08 + lsls r0, 24 + lsrs r0, 24 + str r0, [r1] + movs r0, 0x2B + bl FieldEffectStart + pop {r0} + bx r0 + .pool + thumb_func_end hm2_waterfall + + thumb_func_start hm_prepare_waterfall +hm_prepare_waterfall: @ 81B58F0 + push {r4,lr} + sub sp, 0x4 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r0, 24 + bl MetatileBehavior_IsWaterfall + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081B594C + bl IsPlayerSurfingNorth + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081B594C + ldr r1, =gUnknown_03005DB0 + ldr r0, =hm_add_c3_launch_phase_2 + str r0, [r1] + ldr r1, =gUnknown_0203CEEC + ldr r0, =hm2_waterfall + str r0, [r1] + movs r0, 0x1 + b _081B594E + .pool +_081B594C: + movs r0, 0 +_081B594E: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end hm_prepare_waterfall + + thumb_func_start sub_81B5958 +sub_81B5958: @ 81B5958 + push {lr} + bl brm_get_pokemon_selection + ldr r1, =gUnknown_02038C08 + lsls r0, 24 + lsrs r0, 24 + str r0, [r1] + movs r0, 0x2C + bl FieldEffectStart + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B5958 + + thumb_func_start sub_81B5974 +sub_81B5974: @ 81B5974 + push {lr} + bl sub_809D1E8 + ldr r1, =gUnknown_02038C08 + lsls r0, 24 + lsrs r0, 24 + str r0, [r1, 0x4] + cmp r0, 0 + bne _081B5990 + movs r0, 0 + b _081B599E + .pool +_081B5990: + ldr r1, =gUnknown_03005DB0 + ldr r0, =hm_add_c3_launch_phase_2 + str r0, [r1] + ldr r1, =gUnknown_0203CEEC + ldr r0, =sub_81B5958 + str r0, [r1] + movs r0, 0x1 +_081B599E: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81B5974 + + thumb_func_start party_menu_icon_anim +@ void party_menu_icon_anim(struct pokemon *mon, int a2, int a3) +party_menu_icon_anim: @ 81B59B4 + push {r4-r7,lr} + sub sp, 0x4 + adds r5, r0, 0 + adds r7, r1, 0 + adds r4, r2, 0 + movs r6, 0x1 + bl sub_81B1250 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081B59EA + ldr r0, =gMain + ldr r1, =0x00000439 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081B59EA + ldr r0, =gUnknown_08616020 + adds r0, r4, r0 + ldrb r1, [r0] + eors r1, r6 + negs r0, r1 + orrs r0, r1 + lsrs r6, r0, 31 +_081B59EA: + adds r0, r5, 0 + movs r1, 0x41 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + movs r1, 0 + bl GetMonData + adds r1, r0, 0 + str r6, [sp] + adds r0, r4, 0 + adds r2, r7, 0 + movs r3, 0x1 + bl party_menu_link_mon_icon_anim + ldrb r0, [r7, 0x9] + adds r1, r5, 0 + bl sub_81B5B38 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end party_menu_icon_anim + + thumb_func_start party_menu_link_mon_icon_anim +@ void party_menu_link_mon_icon_anim(u16 speciesId, u32 personality, int a3, char a4, int a5) +party_menu_link_mon_icon_anim: @ 81B5A2C + push {r4-r7,lr} + sub sp, 0xC + adds r6, r1, 0 + adds r4, r2, 0 + lsls r0, 16 + lsrs r5, r0, 16 + lsls r3, 24 + lsrs r7, r3, 24 + cmp r5, 0 + beq _081B5A7A + ldr r1, =sub_80D3014 + ldr r0, [r4, 0x4] + ldrb r2, [r0] + ldrb r3, [r0, 0x1] + movs r0, 0x4 + str r0, [sp] + str r6, [sp, 0x4] + ldr r0, [sp, 0x20] + str r0, [sp, 0x8] + adds r0, r5, 0 + bl sub_80D2CC4 + strb r0, [r4, 0x9] + ldr r2, =gSprites + ldrb r0, [r4, 0x9] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x3 + adds r2, r7, 0 + ands r2, r0 + lsls r2, 2 + ldrb r3, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0x5] +_081B5A7A: + add sp, 0xC + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end party_menu_link_mon_icon_anim + + thumb_func_start sub_81B5A8C +sub_81B5A8C: @ 81B5A8C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + adds r0, r1, 0 + adds r1, r2, 0 + bl sub_8075060 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + beq _081B5AEC + cmp r0, 0x2 + bgt _081B5AB4 + cmp r0, 0x1 + beq _081B5B04 + b _081B5B1C +_081B5AB4: + cmp r0, 0x3 + beq _081B5AD4 + cmp r0, 0x4 + bne _081B5B1C + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + movs r1, 0 + bl sub_80D32C8 + b _081B5B2C + .pool +_081B5AD4: + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + movs r1, 0x1 + bl sub_80D32C8 + b _081B5B2C + .pool +_081B5AEC: + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + movs r1, 0x2 + bl sub_80D32C8 + b _081B5B2C + .pool +_081B5B04: + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + movs r1, 0x3 + bl sub_80D32C8 + b _081B5B2C + .pool +_081B5B1C: + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + movs r1, 0x4 + bl sub_80D32C8 +_081B5B2C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B5A8C + + thumb_func_start sub_81B5B38 +sub_81B5B38: @ 81B5B38 + push {r4-r6,lr} + adds r5, r0, 0 + adds r6, r1, 0 + lsls r5, 24 + lsrs r5, 24 + adds r0, r6, 0 + movs r1, 0x39 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r6, 0 + movs r1, 0x3A + bl GetMonData + adds r2, r0, 0 + lsls r2, 16 + lsrs r2, 16 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_81B5A8C + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81B5B38 + + thumb_func_start sub_81B5B6C +sub_81B5B6C: @ 81B5B6C + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + ldr r5, =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r6, r0, 2 + adds r2, r6, r5 + movs r7, 0 + movs r3, 0 + strh r3, [r2, 0x2E] + mov r12, r5 + cmp r1, 0 + bne _081B5BC4 + movs r1, 0x20 + ldrsh r0, [r2, r1] + cmp r0, 0x10 + bne _081B5BA4 + strh r3, [r2, 0x24] + ldr r0, =0x0000fffc + strh r0, [r2, 0x26] + b _081B5BAA + .pool +_081B5BA4: + ldr r0, =0x0000fffc + strh r0, [r2, 0x24] + strh r3, [r2, 0x26] +_081B5BAA: + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + mov r1, r12 + adds r1, 0x1C + adds r0, r1 + ldr r1, =sub_81B5C08 + b _081B5BD0 + .pool +_081B5BC4: + strh r3, [r2, 0x24] + strh r3, [r2, 0x26] + adds r0, r5, 0 + adds r0, 0x1C + adds r0, r6, r0 + ldr r1, =sub_81B5BDC +_081B5BD0: + str r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B5B6C + + thumb_func_start sub_81B5BDC +sub_81B5BDC: @ 81B5BDC + push {r4,lr} + adds r4, r0, 0 + bl sub_80D30DC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _081B5C02 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081B5C00 + ldr r0, =0x0000fffd + strh r0, [r4, 0x26] + b _081B5C02 + .pool +_081B5C00: + strh r1, [r4, 0x26] +_081B5C02: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81B5BDC + + thumb_func_start sub_81B5C08 +sub_81B5C08: @ 81B5C08 + push {lr} + bl sub_80D30DC + pop {r0} + bx r0 + thumb_func_end sub_81B5C08 + + thumb_func_start party_menu_held_item_object +party_menu_held_item_object: @ 81B5C14 + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _081B5C3C + ldr r0, =gUnknown_08615EC0 + ldr r2, [r4, 0x4] + ldrb r1, [r2, 0x2] + ldrb r2, [r2, 0x3] + movs r3, 0 + bl CreateSprite + strb r0, [r4, 0xA] + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_81B5C94 +_081B5C3C: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end party_menu_held_item_object + + thumb_func_start party_menu_link_mon_held_item_object +party_menu_link_mon_held_item_object: @ 81B5C48 + push {r4,r5,lr} + adds r4, r2, 0 + lsls r0, 16 + lsls r1, 16 + lsrs r5, r1, 16 + cmp r0, 0 + beq _081B5C84 + ldr r0, =gUnknown_08615EC0 + ldr r2, [r4, 0x4] + ldrb r1, [r2, 0x2] + ldrb r2, [r2, 0x3] + movs r3, 0 + bl CreateSprite + strb r0, [r4, 0xA] + ldr r2, =gSprites + ldrb r0, [r4, 0xA] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x5] + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_81B5CB0 +_081B5C84: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end party_menu_link_mon_held_item_object + + thumb_func_start sub_81B5C94 +sub_81B5C94: @ 81B5C94 + push {r4,lr} + adds r4, r1, 0 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + adds r1, r4, 0 + bl sub_81B5CB0 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81B5C94 + + thumb_func_start sub_81B5CB0 +sub_81B5CB0: @ 81B5CB0 + push {r4,lr} + adds r4, r1, 0 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + bne _081B5CD8 + ldr r2, =gSprites + ldrb r1, [r4, 0xA] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + b _081B5D24 + .pool +_081B5CD8: + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + beq _081B5CFC + ldrb r1, [r4, 0xA] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + movs r1, 0x1 + bl StartSpriteAnim + b _081B5D0E + .pool +_081B5CFC: + ldrb r1, [r4, 0xA] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + movs r1, 0 + bl StartSpriteAnim +_081B5D0E: + ldr r2, =gSprites + ldrb r1, [r4, 0xA] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 +_081B5D24: + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B5CB0 + + thumb_func_start sub_81B5D30 +sub_81B5D30: @ 81B5D30 + push {lr} + ldr r0, =gUnknown_08615EB0 + bl LoadSpriteSheet + ldr r0, =gUnknown_08615EB8 + bl LoadSpritePalette + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B5D30 + + thumb_func_start sub_81B5D4C +sub_81B5D4C: @ 81B5D4C + push {r4-r7,lr} + adds r6, r0, 0 + adds r7, r1, 0 + lsls r2, 24 + lsrs r2, 24 + cmp r2, 0 + beq _081B5D60 + cmp r2, 0x1 + beq _081B5DA8 + b _081B5DE4 +_081B5D60: + movs r5, 0 + ldrb r0, [r6] + cmp r5, r0 + bcs _081B5DE4 +_081B5D68: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + beq _081B5D94 + adds r0, r7, r5 + ldrb r4, [r0] + adds r0, r1, 0 + bl itemid_is_mail + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_81B5DF0 +_081B5D94: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldrb r0, [r6] + cmp r5, r0 + bcc _081B5D68 + b _081B5DE4 + .pool +_081B5DA8: + movs r5, 0 + b _081B5DDE +_081B5DAC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + beq _081B5DD8 + adds r0, r5, r7 + ldrb r4, [r0, 0x6] + adds r0, r1, 0 + bl itemid_is_mail + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_81B5DF0 +_081B5DD8: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_081B5DDE: + ldrb r0, [r6, 0x1] + cmp r5, r0 + bcc _081B5DAC +_081B5DE4: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B5D4C + + thumb_func_start sub_81B5DF0 +sub_81B5DF0: @ 81B5DF0 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + adds r6, r0, 0 + mov r9, r1 + lsls r6, 24 + lsrs r6, 24 + mov r0, r9 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r0, =gSprites + mov r8, r0 + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + add r0, r8 + adds r0, 0x43 + ldrb r3, [r0] + ldr r0, =gUnknown_08615EC0 + subs r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + movs r1, 0xFA + movs r2, 0xAA + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + mov r0, r8 + adds r5, r4, r0 + movs r0, 0x4 + strh r0, [r5, 0x24] + movs r0, 0xA + strh r0, [r5, 0x26] + movs r0, 0x1C + add r8, r0 + add r4, r8 + ldr r0, =sub_81B5E74 + str r0, [r4] + strh r6, [r5, 0x3C] + adds r0, r5, 0 + mov r1, r9 + bl StartSpriteAnim + ldr r1, [r4] + adds r0, r5, 0 + bl _call_via_r1 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B5DF0 + + thumb_func_start sub_81B5E74 +sub_81B5E74: @ 81B5E74 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x3C] + lsls r1, 24 + lsrs r1, 24 + ldr r2, =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, r0, r2 + adds r0, r2, 0 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + bge _081B5EA8 + adds r0, r4, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _081B5EC6 + .pool +_081B5EA8: + adds r3, r4, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + ldrh r0, [r2, 0x24] + ldrh r1, [r2, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x26] + ldrh r2, [r2, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] +_081B5EC6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81B5E74 + + thumb_func_start party_menu_pokeball_object +party_menu_pokeball_object: @ 81B5ECC + push {r4,lr} + adds r4, r1, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _081B5EEA + ldr r0, =gUnknown_08615F08 + ldr r2, [r4, 0x4] + ldrb r1, [r2, 0x6] + ldrb r2, [r2, 0x7] + movs r3, 0x8 + bl CreateSprite + strb r0, [r4, 0xB] +_081B5EEA: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end party_menu_pokeball_object + + thumb_func_start party_menu_link_mon_pokeball_object +party_menu_link_mon_pokeball_object: @ 81B5EF4 + push {r4,lr} + adds r4, r1, 0 + lsls r0, 16 + cmp r0, 0 + beq _081B5F24 + ldr r0, =gUnknown_08615F08 + ldr r2, [r4, 0x4] + ldrb r1, [r2, 0x6] + ldrb r2, [r2, 0x7] + movs r3, 0x8 + bl CreateSprite + strb r0, [r4, 0xB] + ldr r2, =gSprites + ldrb r0, [r4, 0xB] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x5] +_081B5F24: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end party_menu_link_mon_pokeball_object + + thumb_func_start sub_81B5F34 +sub_81B5F34: @ 81B5F34 + push {lr} + adds r3, r0, 0 + adds r2, r1, 0 + lsls r3, 24 + lsrs r3, 24 + lsls r2, 24 + lsrs r2, 24 + ldr r0, =gUnknown_08615F08 + adds r1, r3, 0 + movs r3, 0x8 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r3, [r1, 0x5] + movs r2, 0xD + negs r2, r2 + ands r2, r3 + movs r3, 0x8 + orrs r2, r3 + strb r2, [r1, 0x5] + pop {r1} + bx r1 + .pool + thumb_func_end sub_81B5F34 + + thumb_func_start sub_81B5F74 +sub_81B5F74: @ 81B5F74 + push {lr} + adds r3, r0, 0 + adds r2, r1, 0 + lsls r3, 24 + lsrs r3, 24 + lsls r2, 24 + lsrs r2, 24 + ldr r0, =gUnknown_08615F78 + adds r1, r3, 0 + movs r3, 0x8 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81B5F74 + + thumb_func_start sub_81B5F98 +sub_81B5F98: @ 81B5F98 + push {lr} + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + ldr r2, =gSprites + adds r0, r2 + bl StartSpriteAnim + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B5F98 + + thumb_func_start sub_81B5FBC +sub_81B5FBC: @ 81B5FBC + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r6, r2, 24 + cmp r6, 0 + bne _081B6000 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, =gSprites + mov r8, r0 + add r4, r8 + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAnim + lsls r5, r7, 4 + adds r5, r7 + lsls r5, 2 + add r5, r8 + adds r0, r5, 0 + movs r1, 0x4 + bl StartSpriteAnim + strh r6, [r4, 0x26] + strh r6, [r5, 0x26] + b _081B602C + .pool +_081B6000: + lsls r5, r0, 4 + adds r5, r0 + lsls r5, 2 + ldr r0, =gSprites + mov r8, r0 + add r5, r8 + adds r0, r5, 0 + movs r1, 0x3 + bl StartSpriteAnim + lsls r4, r7, 4 + adds r4, r7 + lsls r4, 2 + add r4, r8 + adds r0, r4, 0 + movs r1, 0x5 + bl StartSpriteAnim + ldr r0, =0x0000fffc + strh r0, [r5, 0x26] + movs r0, 0x4 + strh r0, [r4, 0x26] +_081B602C: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B5FBC + + thumb_func_start sub_81B6040 +sub_81B6040: @ 81B6040 + push {lr} + ldr r0, =gUnknown_08615EF8 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_08615F70 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_08615F00 + bl LoadCompressedObjectPalette + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B6040 + + thumb_func_start party_menu_status_condition_object +party_menu_status_condition_object: @ 81B6064 + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _081B608C + ldr r0, =gUnknown_08616008 + ldr r2, [r4, 0x4] + ldrb r1, [r2, 0x4] + ldrb r2, [r2, 0x5] + movs r3, 0 + bl CreateSprite + strb r0, [r4, 0xC] + adds r0, r5, 0 + adds r1, r4, 0 + bl party_menu_get_status_condition_and_update_object +_081B608C: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end party_menu_status_condition_object + + thumb_func_start party_menu_link_mon_status_condition_object +party_menu_link_mon_status_condition_object: @ 81B6098 + push {r4,r5,lr} + adds r4, r2, 0 + lsls r0, 16 + lsls r1, 24 + lsrs r5, r1, 24 + cmp r0, 0 + beq _081B60D4 + ldr r0, =gUnknown_08616008 + ldr r2, [r4, 0x4] + ldrb r1, [r2, 0x4] + ldrb r2, [r2, 0x5] + movs r3, 0 + bl CreateSprite + strb r0, [r4, 0xC] + adds r0, r5, 0 + adds r1, r4, 0 + bl party_menu_update_status_condition_object + ldr r2, =gSprites + ldrb r0, [r4, 0xC] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x5] +_081B60D4: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end party_menu_link_mon_status_condition_object + + thumb_func_start party_menu_get_status_condition_and_update_object +@ void party_menu_get_status_condition_and_update_object(struct pokemon *mon, void *a2, void *a3) +party_menu_get_status_condition_and_update_object: @ 81B60E4 + push {r4,lr} + adds r4, r1, 0 + bl sub_81B205C + lsls r0, 24 + lsrs r0, 24 + adds r1, r4, 0 + bl party_menu_update_status_condition_object + pop {r4} + pop {r0} + bx r0 + thumb_func_end party_menu_get_status_condition_and_update_object + + thumb_func_start party_menu_update_status_condition_object +@ void party_menu_update_status_condition_object(u8 a1, void *a2) +party_menu_update_status_condition_object: @ 81B60FC + push {r4,r5,lr} + adds r5, r1, 0 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _081B610C + cmp r2, 0x6 + bne _081B6128 +_081B610C: + ldr r2, =gSprites + ldrb r1, [r5, 0xC] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + b _081B6152 + .pool +_081B6128: + ldrb r1, [r5, 0xC] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + subs r1, r2, 0x1 + lsls r1, 24 + lsrs r1, 24 + bl StartSpriteAnim + ldrb r1, [r5, 0xC] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 +_081B6152: + strb r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end party_menu_update_status_condition_object + + thumb_func_start sub_81B6160 +sub_81B6160: @ 81B6160 + push {lr} + ldr r0, =gUnknown_08615FF8 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_08616000 + bl LoadCompressedObjectPalette + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B6160 + + thumb_func_start sub_81B617C +sub_81B617C: @ 81B617C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + ldr r0, =c2_815ABFC + mov r8, r0 + ldr r0, =gMain + ldr r1, =0x00000439 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081B61BC + movs r7, 0x1 + bl sub_81B8984 + lsls r0, 24 + lsrs r6, r0, 24 + b _081B61C0 + .pool +_081B61B0: + ldr r0, =gUnknown_0203CEC8 + strb r5, [r0, 0x9] + b _081B6204 + .pool +_081B61BC: + movs r7, 0 + movs r6, 0 +_081B61C0: + ldr r4, =gUnknown_0203CE7C + ldrh r0, [r4] + bl GetItemEffectType + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xA + bne _081B621C + ldr r1, =gUnknown_0203CEC8 + movs r0, 0 + strb r0, [r1, 0x9] + movs r5, 0 +_081B61D8: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _081B61FA + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _081B61B0 +_081B61FA: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _081B61D8 +_081B6204: + ldr r0, =sub_81B6280 + movs r1, 0x7F + b _081B6230 + .pool +_081B621C: + ldrh r0, [r4] + bl GetPocketByItemId + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x5 + cmp r0, 0x3 + bne _081B622E + movs r1, 0x4 +_081B622E: + ldr r0, =sub_81B1370 +_081B6230: + str r1, [sp] + str r0, [sp, 0x4] + mov r0, r8 + str r0, [sp, 0x8] + adds r0, r7, 0 + adds r1, r6, 0 + movs r2, 0x3 + movs r3, 0x1 + bl sub_81B0038 + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B617C + + thumb_func_start c2_815ABFC +c2_815ABFC: @ 81B6254 + push {lr} + bl InBattlePyramid + lsls r0, 24 + cmp r0, 0 + bne _081B626C + movs r0, 0xC + movs r1, 0x5 + movs r2, 0 + bl GoToBagMenu + b _081B6276 +_081B626C: + ldr r0, =gUnknown_0203CF30 + ldr r1, [r0] + movs r0, 0x4 + bl sub_81C4F98 +_081B6276: + pop {r0} + bx r0 + .pool + thumb_func_end c2_815ABFC + + thumb_func_start sub_81B6280 +sub_81B6280: @ 81B6280 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081B62B2 + ldr r0, =gUnknown_0203CEC8 + ldrb r1, [r0, 0x8] + movs r0, 0xF + ands r0, r1 + cmp r0, 0x1 + bne _081B62A6 + ldr r0, =gUnknown_0203CEC4 + ldr r1, [r0] + ldr r0, =sub_81B9140 + str r0, [r1, 0x4] +_081B62A6: + ldr r0, =gUnknown_03006328 + ldr r1, =sub_81B6794 + ldr r2, [r0] + adds r0, r3, 0 + bl _call_via_r2 +_081B62B2: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B6280 + + thumb_func_start IsHPRecoveryItem +@ bool8 IsHPRecoveryItem(u16 itemId) +IsHPRecoveryItem: @ 81B62D0 + push {lr} + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xAF + bne _081B62EC + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003214 + adds r0, r1 + b _081B62F6 + .pool +_081B62EC: + ldr r1, =gItemEffectInfoPointers + subs r0, 0xD + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] +_081B62F6: + ldrb r1, [r0, 0x4] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + bne _081B6308 + movs r0, 0 + b _081B630A + .pool +_081B6308: + movs r0, 0x1 +_081B630A: + pop {r1} + bx r1 + thumb_func_end IsHPRecoveryItem + + thumb_func_start GetMedicineItemEffectMessage +@ void GetMedicineItemEffectMessage(u16 itemId) +GetMedicineItemEffectMessage: @ 81B6310 + push {lr} + lsls r0, 16 + lsrs r0, 16 + bl GetItemEffectType + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x3 + cmp r0, 0x12 + bls _081B6326 + b _081B64BC +_081B6326: + lsls r0, 2 + ldr r1, =_081B6334 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081B6334: + .4byte _081B6380 + .4byte _081B6394 + .4byte _081B63A8 + .4byte _081B63BC + .4byte _081B63D0 + .4byte _081B63E4 + .4byte _081B63F8 + .4byte _081B64BC + .4byte _081B640C + .4byte _081B6430 + .4byte _081B6420 + .4byte _081B6460 + .4byte _081B6470 + .4byte _081B6450 + .4byte _081B6440 + .4byte _081B64BC + .4byte _081B6494 + .4byte _081B6494 + .4byte _081B64A8 +_081B6380: + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085E9C3E + bl StringExpandPlaceholders + b _081B64C4 + .pool +_081B6394: + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085E9C7C + bl StringExpandPlaceholders + b _081B64C4 + .pool +_081B63A8: + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085E9C8A + bl StringExpandPlaceholders + b _081B64C4 + .pool +_081B63BC: + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085E9CA2 + bl StringExpandPlaceholders + b _081B64C4 + .pool +_081B63D0: + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085E9C5F + bl StringExpandPlaceholders + b _081B64C4 + .pool +_081B63E4: + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085E9DBE + bl StringExpandPlaceholders + b _081B64C4 + .pool +_081B63F8: + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085E9DE1 + bl StringExpandPlaceholders + b _081B64C4 + .pool +_081B640C: + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085E9CE0 + bl StringExpandPlaceholders + b _081B64C4 + .pool +_081B6420: + ldr r0, =gStringVar2 + ldr r1, =gUnknown_085E96E3 + b _081B6474 + .pool +_081B6430: + ldr r0, =gStringVar2 + ldr r1, =gUnknown_085EA33C + b _081B6474 + .pool +_081B6440: + ldr r0, =gStringVar2 + ldr r1, =gUnknown_085EA343 + b _081B6474 + .pool +_081B6450: + ldr r0, =gStringVar2 + ldr r1, =gUnknown_085EA35B + b _081B6474 + .pool +_081B6460: + ldr r0, =gStringVar2 + ldr r1, =gUnknown_085E96E6 + b _081B6474 + .pool +_081B6470: + ldr r0, =gStringVar2 + ldr r1, =gUnknown_085E96EE +_081B6474: + bl StringCopy + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085E9D25 + bl StringExpandPlaceholders + b _081B64C4 + .pool +_081B6494: + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085E9CF5 + bl StringExpandPlaceholders + b _081B64C4 + .pool +_081B64A8: + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085E9CB7 + bl StringExpandPlaceholders + b _081B64C4 + .pool +_081B64BC: + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085E96F6 + bl StringExpandPlaceholders +_081B64C4: + pop {r0} + bx r0 + .pool + thumb_func_end GetMedicineItemEffectMessage + + thumb_func_start UsingHPEVItemOnShedinja +@ bool8 UsingHPEVItemOnShedinja(struct pokemon *mon, u16 itemId) +UsingHPEVItemOnShedinja: @ 81B64D0 + push {r4,lr} + adds r4, r0, 0 + lsls r0, r1, 16 + lsrs r0, 16 + bl GetItemEffectType + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xD + bne _081B64FC + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + ldr r1, =0x0000012f + cmp r0, r1 + bne _081B64FC + movs r0, 0 + b _081B64FE + .pool +_081B64FC: + movs r0, 0x1 +_081B64FE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end UsingHPEVItemOnShedinja + + thumb_func_start IsBlueYellowRedFlute +@ bool8 IsBlueYellowRedFlute(u16 itemId) +IsBlueYellowRedFlute: @ 81B6504 + push {lr} + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x27 + beq _081B6516 + cmp r0, 0x29 + beq _081B6516 + cmp r0, 0x28 + bne _081B651A +_081B6516: + movs r0, 0x1 + b _081B651C +_081B651A: + movs r0, 0 +_081B651C: + pop {r1} + bx r1 + thumb_func_end IsBlueYellowRedFlute + + thumb_func_start ExecuteTableBasedItemEffect__ +@ bool8 ExecuteTableBasedItemEffect__(u8 partyMonIndex, u16 itemId, u8 monMoveIndex) +ExecuteTableBasedItemEffect__: @ 81B6520 + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r1, 16 + lsrs r5, r1, 16 + lsls r2, 24 + lsrs r6, r2, 24 + ldr r0, =gMain + ldr r1, =0x00000439 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _081B6558 + movs r0, 0x64 + muls r0, r3 + ldr r1, =gPlayerParty + adds r0, r1 + adds r1, r5, 0 + adds r2, r3, 0 + b _081B6572 + .pool +_081B6558: + movs r0, 0x64 + adds r4, r3, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r3, 0 + bl sub_81B8F38 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r4, 0 + adds r1, r5, 0 +_081B6572: + adds r3, r6, 0 + bl ExecuteTableBasedItemEffect_ + lsls r0, 24 + lsrs r0, 24 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end ExecuteTableBasedItemEffect__ + + thumb_func_start ItemUseCB_Medicine +ItemUseCB_Medicine: @ 81B6588 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + str r1, [sp, 0x4] + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r0, 0 + mov r10, r0 + ldr r0, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r5, r1, r0 + ldr r0, =gUnknown_0203CE7C + ldrh r6, [r0] + adds r0, r5, 0 + adds r1, r6, 0 + bl UsingHPEVItemOnShedinja + lsls r0, 24 + cmp r0, 0 + beq _081B6600 + adds r0, r6, 0 + bl IsHPRecoveryItem + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + cmp r0, 0x1 + bne _081B65EE + adds r0, r5, 0 + movs r1, 0x39 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + adds r0, r5, 0 + movs r1, 0x3A + bl GetMonData + cmp r10, r0 + bne _081B65EE + movs r1, 0 + mov r8, r1 +_081B65EE: + ldr r4, =gUnknown_0203CEC8 + ldrb r0, [r4, 0x9] + adds r1, r6, 0 + movs r2, 0 + bl ExecuteTableBasedItemEffect__ + lsls r0, 24 + cmp r0, 0 + beq _081B6624 +_081B6600: + ldr r1, =gUnknown_0203CEE8 + movs r0, 0 + strb r0, [r1] + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_085E96F6 + b _081B66F4 + .pool +_081B6624: + ldr r1, =gUnknown_0203CEE8 + movs r0, 0x1 + strb r0, [r1] + adds r0, r6, 0 + bl IsBlueYellowRedFlute + lsls r0, 24 + cmp r0, 0 + bne _081B6650 + movs r0, 0x1 + bl PlaySE + ldrb r0, [r4, 0xB] + cmp r0, 0xE + beq _081B6656 + adds r0, r6, 0 + movs r1, 0x1 + bl RemoveBagItem + b _081B6656 + .pool +_081B6650: + movs r0, 0x75 + bl PlaySE +_081B6656: + ldr r4, =gUnknown_0203CEDC + ldr r7, =gUnknown_0203CEC8 + movs r0, 0x9 + ldrsb r0, [r7, r0] + lsls r0, 4 + ldr r1, [r4] + adds r1, r0 + adds r0, r5, 0 + bl party_menu_get_status_condition_and_update_object + ldr r2, =gSprites + movs r0, 0x9 + ldrsb r0, [r7, r0] + ldr r1, [r4] + lsls r0, 4 + adds r3, r0, r1 + ldrb r1, [r3, 0xC] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + bge _081B6694 + adds r0, r5, 0 + adds r1, r3, 0 + movs r2, 0x1 + bl sub_81B2AC8 +_081B6694: + mov r2, r8 + cmp r2, 0x1 + bne _081B66E4 + mov r0, r10 + cmp r0, 0 + bne _081B66A8 + ldrb r0, [r7, 0x9] + movs r1, 0x1 + bl sub_81B0FCC +_081B66A8: + adds r0, r5, 0 + movs r1, 0x39 + bl GetMonData + adds r3, r0, 0 + mov r1, r10 + subs r3, r1 + lsls r3, 16 + asrs r3, 16 + ldrb r1, [r7, 0x9] + ldr r0, =sub_81B672C + str r0, [sp] + mov r0, r9 + movs r2, 0x1 + bl sub_81B1F18 + mov r0, r9 + movs r1, 0 + mov r2, r10 + bl sub_81B1FA8 + b _081B6710 + .pool +_081B66E4: + ldr r1, =gStringVar1 + adds r0, r5, 0 + bl GetMonNickname + adds r0, r6, 0 + bl GetMedicineItemEffectMessage + ldr r0, =gStringVar4 +_081B66F4: + movs r1, 0x1 + bl sub_81B1B5C + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, =gTasks + mov r2, r9 + lsls r0, r2, 2 + add r0, r9 + lsls r0, 3 + adds r0, r1 + ldr r1, [sp, 0x4] + str r1, [r0] +_081B6710: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end ItemUseCB_Medicine + + thumb_func_start sub_81B672C +sub_81B672C: @ 81B672C + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gStringVar1 + bl GetMonNickname + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E9C17 + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_81B1B5C + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + bl sub_805EAE8 + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B6794 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B672C + + thumb_func_start sub_81B6794 +sub_81B6794: @ 81B6794 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_81B1BD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B67BA + ldr r0, =gUnknown_0203CEE8 + ldrb r1, [r0] + cmp r1, 0 + bne _081B67B4 + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + str r1, [r0, 0x4] +_081B67B4: + adds r0, r4, 0 + bl sub_81B12C0 +_081B67BA: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B6794 + + thumb_func_start sub_81B67C8 +sub_81B67C8: @ 81B67C8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + str r1, [sp] + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r4, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r4, r1] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r5, r1, r0 + ldr r0, =gUnknown_0203CE7C + ldrh r6, [r0] + adds r0, r6, 0 + bl GetItemEffectType + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r5, 0 + movs r1, 0x20 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x4] + adds r0, r5, 0 + adds r1, r7, 0 + bl sub_81B691C + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x8] + ldrb r0, [r4, 0x9] + adds r1, r6, 0 + movs r2, 0 + bl ExecuteTableBasedItemEffect__ + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x20 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + adds r0, r5, 0 + adds r1, r7, 0 + bl sub_81B691C + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r4, 0 + bne _081B6850 + ldr r0, [sp, 0x4] + cmp r0, r9 + bne _081B6874 + ldr r1, [sp, 0x8] + cmp r1, r8 + bne _081B6874 +_081B6850: + ldr r1, =gUnknown_0203CEE8 + movs r0, 0 + strb r0, [r1] + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_085E96F6 + b _081B68E2 + .pool +_081B6874: + ldr r1, =gUnknown_0203CEE8 + movs r0, 0x1 + strb r0, [r1] + movs r0, 0x1 + bl PlaySE + adds r0, r6, 0 + movs r1, 0x1 + bl RemoveBagItem + ldr r1, =gStringVar1 + adds r0, r5, 0 + bl GetMonNickname + ldr r1, =gStringVar2 + adds r0, r7, 0 + bl option_menu_get_string + ldr r2, [sp, 0x4] + cmp r2, r9 + beq _081B68D8 + ldr r0, [sp, 0x8] + cmp r0, r8 + beq _081B68C4 + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085E9D45 + bl StringExpandPlaceholders + b _081B68E0 + .pool +_081B68C4: + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085E9D90 + bl StringExpandPlaceholders + b _081B68E0 + .pool +_081B68D8: + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085E9D6D + bl StringExpandPlaceholders +_081B68E0: + ldr r0, =gStringVar4 +_081B68E2: + movs r1, 0x1 + bl sub_81B1B5C + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, =gTasks + mov r2, r10 + lsls r0, r2, 2 + add r0, r10 + lsls r0, 3 + adds r0, r1 + ldr r1, [sp] + str r1, [r0] + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B67C8 + + thumb_func_start sub_81B691C +sub_81B691C: @ 81B691C + push {r4,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r1, 0 + subs r0, 0xC + cmp r0, 0x5 + bhi _081B6992 + lsls r0, 2 + ldr r1, =_081B693C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081B693C: + .4byte _081B696C + .4byte _081B6954 + .4byte _081B697E + .4byte _081B6984 + .4byte _081B6978 + .4byte _081B6972 +_081B6954: + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + ldr r1, =0x0000012f + cmp r0, r1 + beq _081B6992 + adds r0, r4, 0 + movs r1, 0x1A + b _081B6988 + .pool +_081B696C: + adds r0, r4, 0 + movs r1, 0x1B + b _081B6988 +_081B6972: + adds r0, r4, 0 + movs r1, 0x1C + b _081B6988 +_081B6978: + adds r0, r4, 0 + movs r1, 0x1D + b _081B6988 +_081B697E: + adds r0, r4, 0 + movs r1, 0x1E + b _081B6988 +_081B6984: + adds r0, r4, 0 + movs r1, 0x1F +_081B6988: + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + b _081B6994 +_081B6992: + movs r0, 0 +_081B6994: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81B691C + + thumb_func_start option_menu_get_string +option_menu_get_string: @ 81B699C + push {lr} + adds r2, r1, 0 + lsls r0, 24 + lsrs r0, 24 + subs r0, 0xC + cmp r0, 0x5 + bhi _081B6A08 + lsls r0, 2 + ldr r1, =_081B69B8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081B69B8: + .4byte _081B69D8 + .4byte _081B69D0 + .4byte _081B69F0 + .4byte _081B6A00 + .4byte _081B69E8 + .4byte _081B69E0 +_081B69D0: + ldr r1, =gUnknown_085E96E3 + b _081B69F2 + .pool +_081B69D8: + ldr r1, =gUnknown_085EA33C + b _081B69F2 + .pool +_081B69E0: + ldr r1, =gUnknown_085EA343 + b _081B69F2 + .pool +_081B69E8: + ldr r1, =gUnknown_085EA35B + b _081B69F2 + .pool +_081B69F0: + ldr r1, =gUnknown_085E96E6 +_081B69F2: + adds r0, r2, 0 + bl StringCopy + b _081B6A08 + .pool +_081B6A00: + ldr r1, =gUnknown_085E96EE + adds r0, r2, 0 + bl StringCopy +_081B6A08: + pop {r0} + bx r0 + .pool + thumb_func_end option_menu_get_string + + thumb_func_start sub_81B6A10 +sub_81B6A10: @ 81B6A10 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r7, 0 + movs r0, 0x1 + mov r10, r0 + movs r0, 0x3 + bl sub_81B31B0 + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + movs r0, 0x64 + adds r1, r4, 0 + muls r1, r0 + mov r8, r1 + ldr r0, =gPlayerParty + mov r9, r0 +_081B6A40: + adds r1, r5, 0 + adds r1, 0xD + mov r0, r8 + add r0, r9 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + movs r0, 0xD + adds r2, r4, 0 + muls r2, r0 + ldr r0, =gMoveNames + adds r2, r0 + lsls r0, r5, 4 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + adds r0, r6, 0 + mov r1, r10 + movs r3, 0x8 + bl Print + cmp r4, 0 + beq _081B6A82 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 +_081B6A82: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _081B6A40 + adds r0, r6, 0 + adds r1, r7, 0 + movs r2, 0 + bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B6A10 + + thumb_func_start ether_effect_related_3 +ether_effect_related_3: @ 81B6AB4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + bl ProcessMenuInput + lsls r0, 24 + asrs r1, r0, 24 + movs r0, 0x2 + negs r0, r0 + cmp r1, r0 + beq _081B6AF0 + adds r0, 0x1 + cmp r1, r0 + bne _081B6AE0 + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_81B6BB4 + b _081B6AF0 +_081B6AE0: + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + adds r0, 0xD + bl sub_81B302C + adds r0, r5, 0 + bl ether_effect_related_2 +_081B6AF0: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end ether_effect_related_3 + + thumb_func_start dp05_ether +dp05_ether: @ 81B6AFC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + cmp r0, 0xAF + bne _081B6B20 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003214 + adds r0, r1 + b _081B6B2A + .pool +_081B6B20: + ldr r1, =gItemEffectInfoPointers + subs r0, 0xD + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] +_081B6B2A: + ldrb r1, [r0, 0x4] + movs r0, 0x10 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _081B6B4C + ldr r0, =gUnknown_0203CEC8 + strh r1, [r0, 0xE] + adds r0, r4, 0 + bl ether_effect_related + b _081B6B6E + .pool +_081B6B4C: + movs r0, 0x5 + bl PlaySE + movs r0, 0x16 + bl display_pokemon_menu_message + ldr r0, =gUnknown_0203CEC8 + ldrb r0, [r0, 0x9] + bl sub_81B6A10 + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =ether_effect_related_3 + str r1, [r0] +_081B6B6E: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end dp05_ether + + thumb_func_start ether_effect_related_2 +ether_effect_related_2: @ 81B6B80 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + adds r0, 0xC + bl sub_81B302C + bl GetMenuCursorPos + ldr r1, =gUnknown_0203CEC8 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0xE] + adds r0, r4, 0 + bl ether_effect_related + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end ether_effect_related_2 + + thumb_func_start sub_81B6BB4 +sub_81B6BB4: @ 81B6BB4 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, =sub_81B1370 + str r0, [r1] + ldr r0, =gUnknown_0203CEC4 + ldr r0, [r0] + movs r1, 0 + str r1, [r0, 0x4] + adds r0, 0xC + bl sub_81B302C + movs r0, 0x5 + bl display_pokemon_menu_message + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B6BB4 + + thumb_func_start ether_effect_related +ether_effect_related: @ 81B6BEC + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r6, r0, 24 + movs r4, 0 + ldr r7, =gUnknown_0203CED6 + ldr r0, =gUnknown_0203CE7C + ldrh r5, [r0] + movs r0, 0xE + negs r0, r0 + adds r0, r7 + mov r8, r0 + ldrb r0, [r0, 0x9] + ldrb r2, [r7] + adds r1, r5, 0 + bl ExecuteTableBasedItemEffect__ + lsls r0, 24 + cmp r0, 0 + beq _081B6C34 + ldr r0, =gUnknown_0203CEE8 + strb r4, [r0] + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_085E96F6 + b _081B6C7E + .pool +_081B6C34: + ldr r1, =gUnknown_0203CEE8 + movs r0, 0x1 + strb r0, [r1] + mov r0, r8 + movs r1, 0x9 + ldrsb r1, [r0, r1] + movs r0, 0x64 + adds r4, r1, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + movs r0, 0x1 + bl PlaySE + adds r0, r5, 0 + movs r1, 0x1 + bl RemoveBagItem + movs r0, 0 + ldrsh r1, [r7, r0] + adds r1, 0xD + adds r0, r4, 0 + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, =gStringVar1 + movs r1, 0xD + muls r1, r4 + ldr r2, =gMoveNames + adds r1, r2 + bl StringCopy + adds r0, r5, 0 + bl GetMedicineItemEffectMessage + ldr r0, =gStringVar4 +_081B6C7E: + movs r1, 0x1 + bl sub_81B1B5C + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B6794 + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end ether_effect_related + + thumb_func_start dp05_pp_up +dp05_pp_up: @ 81B6CC0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x5 + bl PlaySE + movs r0, 0x17 + bl display_pokemon_menu_message + ldr r0, =gUnknown_0203CEC8 + ldrb r0, [r0, 0x9] + bl sub_81B6A10 + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =ether_effect_related_3 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end dp05_pp_up + + thumb_func_start ItemIdToBattleMoveId +ItemIdToBattleMoveId: @ 81B6CFC + lsls r0, 16 + ldr r1, =0xfedf0000 + adds r0, r1 + ldr r1, =gUnknown_08616040 + lsrs r0, 15 + adds r0, r1 + ldrh r0, [r0] + bx lr + .pool + thumb_func_end ItemIdToBattleMoveId + + thumb_func_start sub_81B6D14 +sub_81B6D14: @ 81B6D14 + push {lr} + lsls r0, 16 + lsrs r2, r0, 16 + movs r1, 0 + ldr r3, =gUnknown_08616040 +_081B6D1E: + adds r0, r1, 0 + adds r0, 0x32 + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + cmp r0, r2 + bne _081B6D34 + movs r0, 0x1 + b _081B6D40 + .pool +_081B6D34: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x7 + bls _081B6D1E + movs r0, 0 +_081B6D40: + pop {r1} + bx r1 + thumb_func_end sub_81B6D14 + + thumb_func_start pokemon_has_move +pokemon_has_move: @ 81B6D44 + push {r4-r6,lr} + adds r6, r0, 0 + lsls r1, 16 + lsrs r5, r1, 16 + movs r4, 0 +_081B6D4E: + adds r1, r4, 0 + adds r1, 0xD + adds r0, r6, 0 + bl GetMonData + cmp r0, r5 + bne _081B6D60 + movs r0, 0x1 + b _081B6D6C +_081B6D60: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _081B6D4E + movs r0, 0 +_081B6D6C: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end pokemon_has_move + + thumb_func_start sub_81B6D74 +sub_81B6D74: @ 81B6D74 + push {r4,lr} + adds r1, r0, 0 + ldr r4, =gStringVar4 + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81B1B5C + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B6D74 + + thumb_func_start sub_81B6D98 +sub_81B6D98: @ 81B6D98 + push {r4,lr} + adds r4, r0, 0 + adds r0, r1, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_81B6D74 + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B6794 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B6D98 + + thumb_func_start sub_81B6DC4 +sub_81B6DC4: @ 81B6DC4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r6, r0, 24 + movs r0, 0x5 + bl PlaySE + ldr r7, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r7, r1] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r5, r1, r0 + movs r0, 0xE + adds r0, r7 + mov r8, r0 + ldr r0, =gUnknown_0203CE7C + ldrh r4, [r0] + ldr r1, =gStringVar1 + adds r0, r5, 0 + bl GetMonNickname + adds r0, r4, 0 + bl ItemIdToBattleMoveId + strh r0, [r7, 0xE] + ldr r0, =gStringVar2 + movs r1, 0xE + ldrsh r2, [r7, r1] + movs r1, 0xD + muls r1, r2 + ldr r2, =gMoveNames + adds r1, r2 + bl StringCopy + movs r0, 0 + mov r1, r8 + strh r0, [r1, 0x2] + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0 + bl sub_81B22D8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B6E70 + cmp r0, 0x2 + beq _081B6E78 + ldrh r1, [r7, 0xE] + adds r0, r5, 0 + bl pokemon_moveset_pad_ + lsls r0, 16 + ldr r1, =0xffff0000 + cmp r0, r1 + beq _081B6E88 + ldr r0, =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B6EB4 + str r0, [r1] + b _081B6E9C + .pool +_081B6E70: + ldr r1, =gUnknown_085E9AB4 + b _081B6E7A + .pool +_081B6E78: + ldr r1, =gUnknown_085E9C00 +_081B6E7A: + adds r0, r6, 0 + bl sub_81B6D98 + b _081B6E9C + .pool +_081B6E88: + ldr r0, =gUnknown_085E9AE9 + bl sub_81B6D74 + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B6FF4 + str r1, [r0] +_081B6E9C: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B6DC4 + + thumb_func_start sub_81B6EB4 +sub_81B6EB4: @ 81B6EB4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r2, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r2, r1] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r5, r1, r0 + adds r6, r2, 0 + adds r6, 0xE + ldr r0, =gUnknown_0203CE7C + ldrh r4, [r0] + movs r1, 0x2 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _081B6EF0 + adds r0, r5, 0 + movs r1, 0x4 + bl happiness_algorithm + movs r0, 0xA9 + lsls r0, 1 + cmp r4, r0 + bhi _081B6EF0 + adds r0, r4, 0 + movs r1, 0x1 + bl RemoveBagItem +_081B6EF0: + ldr r1, =gStringVar1 + adds r0, r5, 0 + bl GetMonNickname + ldr r0, =gStringVar2 + movs r1, 0 + ldrsh r2, [r6, r1] + movs r1, 0xD + muls r1, r2 + ldr r2, =gMoveNames + adds r1, r2 + bl StringCopy + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E9AA5 + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81B1B5C + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B6F60 + str r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B6EB4 + + thumb_func_start sub_81B6F60 +sub_81B6F60: @ 81B6F60 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_81B1BD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B6F86 + ldr r0, =0x0000016f + bl PlayFanfare + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B6F98 + str r1, [r0] +_081B6F86: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B6F60 + + thumb_func_start sub_81B6F98 +sub_81B6F98: @ 81B6F98 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + bl IsFanfareTaskInactive + lsls r0, 24 + cmp r0, 0 + beq _081B6FEA + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _081B6FC0 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081B6FEA +_081B6FC0: + ldr r0, =gUnknown_0203CEC8 + movs r1, 0x10 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + bne _081B6FDC + adds r0, r4, 0 + bl sub_81B77AC + b _081B6FEA + .pool +_081B6FDC: + cmp r0, 0x2 + bne _081B6FE4 + ldr r0, =gScriptResult + strh r2, [r0] +_081B6FE4: + adds r0, r5, 0 + bl sub_81B12C0 +_081B6FEA: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B6F98 + + thumb_func_start sub_81B6FF4 +sub_81B6FF4: @ 81B6FF4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_81B1BD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B7018 + bl sub_81B334C + ldr r0, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B7028 + str r0, [r1] +_081B7018: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B6FF4 + + thumb_func_start sub_81B7028 +sub_81B7028: @ 81B7028 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8198C58 + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _081B704E + cmp r1, 0 + bgt _081B7048 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _081B7074 + b _081B7080 +_081B7048: + cmp r1, 0x1 + beq _081B707A + b _081B7080 +_081B704E: + ldr r0, =gUnknown_085E9B96 + movs r1, 0x1 + bl sub_81B1B5C + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B7088 + str r1, [r0] + b _081B7080 + .pool +_081B7074: + movs r0, 0x5 + bl PlaySE +_081B707A: + adds r0, r4, 0 + bl sub_81B7230 +_081B7080: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81B7028 + + thumb_func_start sub_81B7088 +sub_81B7088: @ 81B7088 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_81B1BD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B70A8 + ldr r0, =gUnknown_0203CEC4 + ldr r1, [r0] + ldr r0, =sub_81B70B8 + str r0, [r1, 0x4] + adds r0, r4, 0 + bl sub_81B12C0 +_081B70A8: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B7088 + + thumb_func_start sub_81B70B8 +sub_81B70B8: @ 81B70B8 + push {r4,lr} + sub sp, 0x4 + ldr r0, =gPlayerParty + ldr r4, =gUnknown_0203CEC8 + ldrb r1, [r4, 0x9] + ldr r2, =gPlayerPartyCount + ldrb r2, [r2] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldr r3, =sub_81B70F0 + ldrh r4, [r4, 0xE] + str r4, [sp] + bl sub_81BFA38 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B70B8 + + thumb_func_start sub_81B70F0 +sub_81B70F0: @ 81B70F0 + push {lr} + sub sp, 0xC + movs r0, 0x7F + str r0, [sp] + ldr r0, =sub_81B711C + str r0, [sp, 0x4] + ldr r0, =gUnknown_0203CEC8 + ldr r0, [r0] + str r0, [sp, 0x8] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_81B0038 + add sp, 0xC + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B70F0 + + thumb_func_start sub_81B711C +sub_81B711C: @ 81B711C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081B714E + bl sub_81C1B94 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + beq _081B7148 + adds r0, r4, 0 + bl sub_81B7154 + b _081B714E + .pool +_081B7148: + adds r0, r5, 0 + bl sub_81B7230 +_081B714E: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81B711C + + thumb_func_start sub_81B7154 +sub_81B7154: @ 81B7154 + push {r4-r6,lr} + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + ldr r0, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r0, r1] + movs r0, 0x64 + adds r5, r1, 0 + muls r5, r0 + ldr r0, =gPlayerParty + adds r5, r0 + bl sub_81C1B94 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r1, 0xD + adds r0, r5, 0 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r1, =gStringVar1 + adds r0, r5, 0 + bl GetMonNickname + ldr r0, =gStringVar2 + movs r1, 0xD + muls r1, r4 + ldr r2, =gMoveNames + adds r1, r2 + bl StringCopy + ldr r0, =gUnknown_085E9BB8 + bl sub_81B6D74 + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B71D4 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B7154 + + thumb_func_start sub_81B71D4 +sub_81B71D4: @ 81B71D4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + bl sub_81B1BD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B7220 + ldr r5, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r5, r1] + movs r0, 0x64 + adds r4, r1, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + bl sub_81C1B94 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_806B9A8 + ldrh r5, [r5, 0xE] + bl sub_81C1B94 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80691F4 + adds r0, r6, 0 + bl sub_81B6EB4 +_081B7220: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B71D4 + + thumb_func_start sub_81B7230 +sub_81B7230: @ 81B7230 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, =gStringVar2 + ldr r1, =gUnknown_0203CEC8 + movs r3, 0xE + ldrsh r2, [r1, r3] + movs r1, 0xD + muls r1, r2 + ldr r2, =gMoveNames + adds r1, r2 + bl StringCopy + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E9B5D + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81B1B5C + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B7294 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B7230 + + thumb_func_start sub_81B7294 +sub_81B7294: @ 81B7294 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_81B1BD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B72B8 + bl sub_81B334C + ldr r0, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B72C8 + str r0, [r1] +_081B72B8: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B7294 + + thumb_func_start sub_81B72C8 +sub_81B72C8: @ 81B72C8 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r7, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r7, r1] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r4, r1, r0 + bl sub_8198C58 + lsls r0, 24 + asrs r5, r0, 24 + cmp r5, 0 + beq _081B7306 + cmp r5, 0 + bgt _081B7300 + movs r0, 0x1 + negs r0, r0 + cmp r5, r0 + beq _081B738C + b _081B73C2 + .pool +_081B7300: + cmp r5, 0x1 + beq _081B7392 + b _081B73C2 +_081B7306: + ldr r1, =gStringVar1 + adds r0, r4, 0 + bl GetMonNickname + ldr r0, =gStringVar2 + movs r1, 0xE + ldrsh r2, [r7, r1] + movs r1, 0xD + muls r1, r2 + ldr r2, =gMoveNames + adds r1, r2 + bl StringCopy + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E9B76 + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81B1B5C + movs r3, 0x10 + ldrsh r0, [r7, r3] + cmp r0, 0x1 + bne _081B7368 + ldr r0, =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B73E4 + str r0, [r1] + b _081B73C2 + .pool +_081B7368: + cmp r0, 0x2 + bne _081B7370 + ldr r0, =gScriptResult + strh r5, [r0] +_081B7370: + ldr r0, =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B6794 + str r0, [r1] + b _081B73C2 + .pool +_081B738C: + movs r0, 0x5 + bl PlaySE +_081B7392: + ldr r1, =gStringVar1 + adds r0, r4, 0 + bl GetMonNickname + ldr r0, =gStringVar2 + ldr r1, =gUnknown_0203CEC8 + movs r3, 0xE + ldrsh r2, [r1, r3] + movs r1, 0xD + muls r1, r2 + ldr r2, =gMoveNames + adds r1, r2 + bl StringCopy + ldr r0, =gUnknown_085E9AE9 + bl sub_81B6D74 + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B6FF4 + str r1, [r0] +_081B73C2: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B72C8 + + thumb_func_start sub_81B73E4 +sub_81B73E4: @ 81B73E4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_81B1BD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B73FC + adds r0, r4, 0 + bl sub_81B77AC +_081B73FC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81B73E4 + + thumb_func_start dp05_rare_candy +dp05_rare_candy: @ 81B7404 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r10, r1 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, =gUnknown_0203CEC8 + mov r9, r0 + movs r1, 0x9 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r5, r1, r0 + ldr r0, =gUnknown_0203CEC4 + ldr r6, [r0] + movs r1, 0x86 + lsls r1, 2 + adds r4, r6, r1 + ldr r2, =gUnknown_0203CE7C + mov r8, r2 + adds r0, r5, 0 + movs r1, 0x38 + bl GetMonData + cmp r0, 0x64 + beq _081B7478 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_81B79A0 + mov r1, r9 + ldrb r0, [r1, 0x9] + mov r2, r8 + ldrh r1, [r2] + movs r2, 0 + bl ExecuteTableBasedItemEffect__ + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x89 + lsls r0, 2 + adds r1, r6, r0 + adds r0, r5, 0 + bl sub_81B79A0 + b _081B747A + .pool +_081B7478: + movs r4, 0x1 +_081B747A: + movs r0, 0x5 + bl PlaySE + cmp r4, 0 + beq _081B74B4 + ldr r1, =gUnknown_0203CEE8 + movs r0, 0 + strb r0, [r1] + ldr r0, =gUnknown_085E96F6 + movs r1, 0x1 + bl sub_81B1B5C + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + mov r1, r10 + b _081B7516 + .pool +_081B74B4: + ldr r1, =gUnknown_0203CEE8 + movs r0, 0x1 + strb r0, [r1] + movs r0, 0 + bl PlayFanfareByFanfareNum + ldr r0, =gUnknown_0203CEC8 + ldrb r0, [r0, 0x9] + adds r1, r5, 0 + bl sub_81B754C + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + movs r1, 0x1 + bl RemoveBagItem + ldr r1, =gStringVar1 + adds r0, r5, 0 + bl GetMonNickname + ldr r4, =gStringVar2 + adds r0, r5, 0 + movs r1, 0x38 + bl GetMonData + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E9D0A + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81B1B5C + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B75D4 +_081B7516: + str r1, [r0] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end dp05_rare_candy + + thumb_func_start sub_81B754C +sub_81B754C: @ 81B754C + push {r4-r7,lr} + adds r5, r1, 0 + lsls r0, 24 + lsrs r0, 24 + adds r7, r0, 0 + ldr r6, =gUnknown_0203CEDC + lsls r4, r7, 4 + ldr r1, [r6] + adds r1, r4 + adds r0, r5, 0 + bl party_menu_get_status_condition_and_update_object + ldr r2, =gSprites + ldr r0, [r6] + adds r3, r4, r0 + ldrb r1, [r3, 0xC] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + bge _081B7588 + adds r0, r5, 0 + adds r1, r3, 0 + movs r2, 0x1 + bl sub_81B2AC8 +_081B7588: + ldr r1, [r6] + adds r1, r4 + adds r0, r5, 0 + movs r2, 0x1 + bl sub_81B2CD4 + ldr r1, [r6] + adds r1, r4 + adds r0, r5, 0 + movs r2, 0x1 + bl sub_81B2D74 + ldr r1, [r6] + adds r1, r4 + adds r0, r5, 0 + bl sub_81B2E28 + ldr r0, [r6] + adds r0, r4, r0 + ldrb r0, [r0, 0x9] + adds r1, r5, 0 + bl sub_81B5B38 + adds r0, r7, 0 + movs r1, 0x1 + bl sub_81B0FCC + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B754C + + thumb_func_start sub_81B75D4 +sub_81B75D4: @ 81B75D4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0 + bl WaitFanfare + lsls r0, 24 + cmp r0, 0 + beq _081B7620 + bl sub_81B1BD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B7620 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _081B7606 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081B7620 +_081B7606: + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_81B767C + ldr r0, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B7634 + str r0, [r1] +_081B7620: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B75D4 + + thumb_func_start sub_81B7634 +sub_81B7634: @ 81B7634 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _081B764E + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081B7668 +_081B764E: + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_81B76C8 + ldr r0, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B7704 + str r0, [r1] +_081B7668: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B7634 + + thumb_func_start sub_81B767C +sub_81B767C: @ 81B767C + push {r4,r5,lr} + sub sp, 0x8 + ldr r0, =gUnknown_0203CEC4 + ldr r5, [r0] + movs r0, 0x86 + lsls r0, 2 + adds r4, r5, r0 + bl sub_81B3364 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x18] + ldrh r0, [r4, 0x18] + movs r1, 0x89 + lsls r1, 2 + adds r2, r5, r1 + movs r1, 0x2 + str r1, [sp] + movs r1, 0x3 + str r1, [sp, 0x4] + adds r1, r4, 0 + movs r3, 0x1 + bl sub_81D3640 + ldrb r0, [r4, 0x18] + movs r1, 0x2 + bl CopyWindowToVram + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B767C + + thumb_func_start sub_81B76C8 +sub_81B76C8: @ 81B76C8 + push {r4,lr} + sub sp, 0x4 + ldr r0, =gUnknown_0203CEC4 + ldr r1, [r0] + movs r0, 0x86 + lsls r0, 2 + adds r4, r1, r0 + ldrh r0, [r4, 0x18] + movs r2, 0x89 + lsls r2, 2 + adds r1, r2 + movs r2, 0x3 + str r2, [sp] + movs r2, 0x1 + movs r3, 0x2 + bl sub_81D3784 + ldrb r0, [r4, 0x18] + movs r1, 0x2 + bl CopyWindowToVram + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B76C8 + + thumb_func_start sub_81B7704 +sub_81B7704: @ 81B7704 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0 + bl WaitFanfare + lsls r0, 24 + cmp r0, 0 + beq _081B77A6 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r6, 0x1 + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + bne _081B772C + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081B77A6 +_081B772C: + bl sub_81B3394 + ldr r4, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r4, r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x1 + bl sub_8069318 + lsls r0, 16 + lsrs r1, r0, 16 + strh r6, [r4, 0x10] + ldr r0, =0x0000fffe + cmp r1, r0 + beq _081B7788 + cmp r1, r0 + bgt _081B776C + cmp r1, 0 + beq _081B7778 + b _081B77A0 + .pool +_081B776C: + ldr r0, =0x0000ffff + cmp r1, r0 + beq _081B7780 + b _081B77A0 + .pool +_081B7778: + adds r0, r5, 0 + bl sub_81B7810 + b _081B77A6 +_081B7780: + adds r0, r5, 0 + bl sub_81B787C + b _081B77A6 +_081B7788: + ldr r0, =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B77AC + str r0, [r1] + b _081B77A6 + .pool +_081B77A0: + adds r0, r5, 0 + bl sub_81B7910 +_081B77A6: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81B7704 + + thumb_func_start sub_81B77AC +sub_81B77AC: @ 81B77AC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0 + bl sub_8069318 + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, =0x0000fffe + cmp r1, r0 + beq _081B780A + cmp r1, r0 + bgt _081B77E8 + cmp r1, 0 + beq _081B77F4 + b _081B7804 + .pool +_081B77E8: + ldr r0, =0x0000ffff + cmp r1, r0 + beq _081B77FC + b _081B7804 + .pool +_081B77F4: + adds r0, r4, 0 + bl sub_81B7810 + b _081B780A +_081B77FC: + adds r0, r4, 0 + bl sub_81B787C + b _081B780A +_081B7804: + adds r0, r4, 0 + bl sub_81B7910 +_081B780A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81B77AC + + thumb_func_start sub_81B7810 +sub_81B7810: @ 81B7810 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r6, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r6, r1] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r7, r1, r0 + adds r0, r7, 0 + movs r1, 0 + movs r2, 0 + bl GetEvolutionTargetSpecies + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + beq _081B7860 + bl sub_81B06F4 + ldr r0, =gUnknown_030061E8 + ldr r1, [r6] + str r1, [r0] + ldrb r3, [r6, 0x9] + adds r0, r7, 0 + adds r1, r4, 0 + movs r2, 0x1 + bl sub_813DA40 + adds r0, r5, 0 + bl DestroyTask + b _081B786E + .pool +_081B7860: + ldr r0, =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B6794 + str r0, [r1] +_081B786E: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B7810 + + thumb_func_start sub_81B787C +sub_81B787C: @ 81B787C + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, =gUnknown_0203CEC8 + mov r8, r0 + movs r1, 0x9 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gStringVar1 + bl GetMonNickname + ldr r0, =gStringVar2 + ldr r6, =gUnknown_020244E2 + ldrh r2, [r6] + movs r1, 0xD + muls r1, r2 + ldr r2, =gMoveNames + adds r1, r2 + bl StringCopy + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E9AE9 + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81B1B5C + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + ldrh r0, [r6] + mov r1, r8 + strh r0, [r1, 0xE] + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B6FF4 + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B787C + + thumb_func_start sub_81B7910 +sub_81B7910: @ 81B7910 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r6, r0, 0 + adds r5, r1, 0 + lsls r6, 24 + lsrs r6, 24 + lsls r5, 16 + lsrs r5, 16 + ldr r0, =gUnknown_0203CEC8 + mov r8, r0 + movs r1, 0x9 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gStringVar1 + bl GetMonNickname + ldr r0, =gStringVar2 + movs r1, 0xD + muls r1, r5 + ldr r2, =gMoveNames + adds r1, r2 + bl StringCopy + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E9AA5 + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81B1B5C + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + mov r0, r8 + strh r5, [r0, 0xE] + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B6F60 + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B7910 + + thumb_func_start sub_81B79A0 +sub_81B79A0: @ 81B79A0 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + movs r1, 0x3A + bl GetMonData + strh r0, [r5] + adds r0, r4, 0 + movs r1, 0x3B + bl GetMonData + strh r0, [r5, 0x2] + adds r0, r4, 0 + movs r1, 0x3C + bl GetMonData + strh r0, [r5, 0x4] + adds r0, r4, 0 + movs r1, 0x3E + bl GetMonData + strh r0, [r5, 0x8] + adds r0, r4, 0 + movs r1, 0x3F + bl GetMonData + strh r0, [r5, 0xA] + adds r0, r4, 0 + movs r1, 0x3D + bl GetMonData + strh r0, [r5, 0x6] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81B79A0 + + thumb_func_start sub_81B79E8 +sub_81B79E8: @ 81B79E8 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gUnknown_0203CEC4 + ldr r2, [r1] + movs r3, 0x86 + lsls r3, 2 + adds r1, r2, r3 + movs r3, 0 + strh r3, [r1] + ldr r4, =0x0000021a + adds r1, r2, r4 + strh r3, [r1] + ldr r1, =gUnknown_0203CEC8 + ldrb r1, [r1, 0x9] + lsls r1, 24 + asrs r1, 24 + movs r3, 0x87 + lsls r3, 2 + adds r2, r3 + strh r1, [r2] + bl sub_81B7A28 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B79E8 + + thumb_func_start sub_81B7A28 +sub_81B7A28: @ 81B7A28 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + mov r8, r4 + ldr r6, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r6, r1] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r5, r1, r0 + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _081B7A6E + adds r0, r5, 0 + movs r1, 0x39 + bl GetMonData + lsls r0, 16 + lsrs r7, r0, 16 + ldrb r0, [r6, 0x9] + ldr r1, =gUnknown_0203CE7C + ldrh r1, [r1] + movs r2, 0 + bl ExecuteTableBasedItemEffect__ + lsls r0, 24 + cmp r0, 0 + beq _081B7A94 +_081B7A6E: + ldr r0, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =task_intro_gamefreak + str r0, [r1] + b _081B7B2A + .pool +_081B7A94: + movs r0, 0x1 + bl PlaySE + ldr r4, =gUnknown_0203CEDC + movs r0, 0x9 + ldrsb r0, [r6, r0] + lsls r0, 4 + ldr r1, [r4] + adds r1, r0 + adds r0, r5, 0 + bl party_menu_get_status_condition_and_update_object + ldr r2, =gSprites + movs r0, 0x9 + ldrsb r0, [r6, r0] + ldr r1, [r4] + lsls r0, 4 + adds r3, r0, r1 + ldrb r1, [r3, 0xC] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + bge _081B7AD6 + adds r0, r5, 0 + adds r1, r3, 0 + movs r2, 0x1 + bl sub_81B2AC8 +_081B7AD6: + ldr r4, =gUnknown_0203CEC4 + ldr r0, [r4] + movs r1, 0x87 + lsls r1, 2 + adds r0, r1 + ldrb r0, [r0] + movs r1, 0 + bl sub_81B0FCC + ldrb r0, [r6, 0x9] + movs r1, 0x1 + bl sub_81B0FCC + adds r0, r5, 0 + movs r1, 0x39 + bl GetMonData + adds r3, r0, 0 + subs r3, r7 + lsls r3, 16 + asrs r3, 16 + ldrb r1, [r6, 0x9] + ldr r0, =sub_81B7C10 + str r0, [sp] + mov r0, r8 + movs r2, 0x1 + bl sub_81B1F18 + mov r0, r8 + movs r1, 0 + adds r2, r7, 0 + bl sub_81B1FA8 + ldr r0, [r4] + movs r2, 0x86 + lsls r2, 2 + adds r1, r0, r2 + movs r2, 0x1 + strh r2, [r1] + ldr r1, =0x0000021a + adds r0, r1 + strh r2, [r0] +_081B7B2A: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B7A28 + + thumb_func_start task_intro_gamefreak +task_intro_gamefreak: @ 81B7B4C + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_81B1BD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B7C0A + ldr r5, =gUnknown_0203CEC4 + ldr r2, [r5] + movs r0, 0x86 + lsls r0, 2 + adds r1, r2, r0 + movs r3, 0 + ldrsh r0, [r1, r3] + ldr r3, =gUnknown_0203CEC8 + cmp r0, 0x1 + bne _081B7B82 + movs r0, 0 + strh r0, [r1] + movs r1, 0x9 + ldrsb r1, [r3, r1] + movs r6, 0x87 + lsls r6, 2 + adds r0, r2, r6 + strh r1, [r0] +_081B7B82: + ldrb r0, [r3, 0x9] + adds r0, 0x1 + strb r0, [r3, 0x9] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x6 + bne _081B7C04 + ldr r0, [r5] + ldr r1, =0x0000021a + adds r0, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + cmp r1, 0 + bne _081B7BC8 + ldr r0, =gUnknown_0203CEE8 + strb r1, [r0] + ldr r0, =gUnknown_085E96F6 + movs r1, 0x1 + bl sub_81B1B5C + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + b _081B7BD8 + .pool +_081B7BC8: + ldr r1, =gUnknown_0203CEE8 + movs r0, 0x1 + strb r0, [r1] + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + movs r1, 0x1 + bl RemoveBagItem +_081B7BD8: + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B6794 + str r1, [r0] + ldr r1, =gUnknown_0203CEC8 + movs r0, 0 + strb r0, [r1, 0x9] + b _081B7C0A + .pool +_081B7C04: + adds r0, r4, 0 + bl sub_81B7A28 +_081B7C0A: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end task_intro_gamefreak + + thumb_func_start sub_81B7C10 +sub_81B7C10: @ 81B7C10 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gStringVar1 + bl GetMonNickname + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E9C17 + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_81B1B5C + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, =task_intro_gamefreak + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B7C10 + + thumb_func_start sub_81B7C74 +sub_81B7C74: @ 81B7C74 + push {r4-r6,lr} + adds r6, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0x5 + bl PlaySE + ldr r2, =gUnknown_030061E8 + ldr r1, =gUnknown_0203CEC8 + ldr r0, [r1] + str r0, [r2] + ldrb r0, [r1, 0x9] + ldr r4, =gUnknown_0203CE7C + ldrh r1, [r4] + movs r2, 0 + bl ExecuteTableBasedItemEffect__ + lsls r0, 24 + cmp r0, 0 + beq _081B7CD8 + ldr r1, =gUnknown_0203CEE8 + movs r0, 0 + strb r0, [r1] + ldr r0, =gUnknown_085E96F6 + movs r1, 0x1 + bl sub_81B1B5C + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + str r6, [r0] + b _081B7CE4 + .pool +_081B7CD8: + ldrh r0, [r4] + movs r1, 0x1 + bl RemoveBagItem + bl sub_81B06F4 +_081B7CE4: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81B7C74 + + thumb_func_start GetItemEffectType +@ u8 GetItemEffectType(u16 itemId) +GetItemEffectType: @ 81B7CEC + push {r4,r5,lr} + lsls r0, 16 + lsrs r1, r0, 16 + adds r2, r1, 0 + subs r2, 0xD + lsls r0, r2, 16 + lsrs r0, 16 + cmp r0, 0xA5 + bls _081B7D00 + b _081B7E40 +_081B7D00: + cmp r1, 0xAF + bne _081B7D18 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003214 + adds r4, r0, r1 + b _081B7D20 + .pool +_081B7D18: + ldr r1, =gItemEffectInfoPointers + lsls r0, r2, 2 + adds r0, r1 + ldr r4, [r0] +_081B7D20: + ldrb r1, [r4] + movs r5, 0x3F + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _081B7D42 + ldrb r0, [r4, 0x1] + cmp r0, 0 + bne _081B7D42 + ldrb r0, [r4, 0x2] + cmp r0, 0 + bne _081B7D42 + ldrb r3, [r4, 0x3] + movs r0, 0x80 + ands r0, r3 + cmp r0, 0 + beq _081B7D4C +_081B7D42: + movs r0, 0 + b _081B7E46 + .pool +_081B7D4C: + movs r2, 0x40 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _081B7D5A + movs r0, 0xA + b _081B7E46 +_081B7D5A: + adds r0, r2, 0 + ands r0, r3 + cmp r0, 0 + beq _081B7D66 + movs r0, 0x1 + b _081B7E46 +_081B7D66: + adds r2, r5, 0 + ands r2, r3 + cmp r2, 0 + bne _081B7D74 + lsrs r0, r1, 7 + cmp r0, 0 + beq _081B7DB6 +_081B7D74: + cmp r2, 0x20 + bne _081B7D7C + movs r0, 0x4 + b _081B7E46 +_081B7D7C: + cmp r2, 0x10 + bne _081B7D84 + movs r0, 0x3 + b _081B7E46 +_081B7D84: + cmp r2, 0x8 + bne _081B7D8C + movs r0, 0x5 + b _081B7E46 +_081B7D8C: + cmp r2, 0x4 + bne _081B7D94 + movs r0, 0x6 + b _081B7E46 +_081B7D94: + cmp r2, 0x2 + bne _081B7D9C + movs r0, 0x7 + b _081B7E46 +_081B7D9C: + cmp r2, 0x1 + bne _081B7DA4 + movs r0, 0x8 + b _081B7E46 +_081B7DA4: + lsrs r0, r1, 7 + cmp r0, 0 + beq _081B7DB2 + cmp r2, 0 + bne _081B7DB2 + movs r0, 0x9 + b _081B7E46 +_081B7DB2: + movs r0, 0xB + b _081B7E46 +_081B7DB6: + ldrb r1, [r4, 0x4] + movs r0, 0x44 + ands r0, r1 + adds r2, r1, 0 + cmp r0, 0 + beq _081B7DC6 + movs r0, 0x2 + b _081B7E46 +_081B7DC6: + movs r5, 0x2 + adds r0, r5, 0 + ands r0, r2 + cmp r0, 0 + beq _081B7DD4 + movs r0, 0xC + b _081B7E46 +_081B7DD4: + movs r3, 0x1 + adds r0, r3, 0 + ands r0, r2 + cmp r0, 0 + beq _081B7DE2 + movs r0, 0xD + b _081B7E46 +_081B7DE2: + ldrb r1, [r4, 0x5] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _081B7DF0 + movs r0, 0xE + b _081B7E46 +_081B7DF0: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _081B7DFC + movs r0, 0xF + b _081B7E46 +_081B7DFC: + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _081B7E08 + movs r0, 0x10 + b _081B7E46 +_081B7E08: + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _081B7E14 + movs r0, 0x11 + b _081B7E46 +_081B7E14: + movs r0, 0x80 + ands r0, r2 + cmp r0, 0 + beq _081B7E20 + movs r0, 0x12 + b _081B7E46 +_081B7E20: + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + beq _081B7E2C + movs r0, 0x13 + b _081B7E46 +_081B7E2C: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _081B7E38 + movs r0, 0x14 + b _081B7E46 +_081B7E38: + movs r0, 0x18 + ands r0, r2 + cmp r0, 0 + bne _081B7E44 +_081B7E40: + movs r0, 0x16 + b _081B7E46 +_081B7E44: + movs r0, 0x15 +_081B7E46: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end GetItemEffectType + + thumb_func_start sub_81B7E4C +sub_81B7E4C: @ 81B7E4C + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081B7F1C + ldr r7, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r7, r1] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r5, r1, r0 + movs r0, 0xE + adds r0, r7 + mov r8, r0 + ldr r1, =gStringVar1 + adds r0, r5, 0 + bl GetMonNickname + ldr r4, =gSpecialVar_0x8005 + ldrb r0, [r4] + bl sub_81B2360 + strh r0, [r7, 0xE] + ldr r0, =gStringVar2 + movs r1, 0xE + ldrsh r2, [r7, r1] + movs r1, 0xD + muls r1, r2 + ldr r2, =gMoveNames + adds r1, r2 + bl StringCopy + movs r0, 0x2 + mov r1, r8 + strh r0, [r1, 0x2] + ldrb r2, [r4] + adds r0, r5, 0 + movs r1, 0 + bl sub_81B22D8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B7EF0 + cmp r0, 0x2 + beq _081B7EF8 + ldrh r1, [r7, 0xE] + adds r0, r5, 0 + bl pokemon_moveset_pad_ + lsls r0, 16 + ldr r1, =0xffff0000 + cmp r0, r1 + beq _081B7F08 + adds r0, r6, 0 + bl sub_81B6EB4 + b _081B7F1C + .pool +_081B7EF0: + ldr r1, =gUnknown_085E9AB4 + b _081B7EFA + .pool +_081B7EF8: + ldr r1, =gUnknown_085E9C00 +_081B7EFA: + adds r0, r6, 0 + bl sub_81B6D98 + b _081B7F1C + .pool +_081B7F08: + ldr r0, =gUnknown_085E9AE9 + bl sub_81B6D74 + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B6FF4 + str r1, [r0] +_081B7F1C: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B7E4C + + thumb_func_start CB2_PartyMenuFromStartMenu +CB2_PartyMenuFromStartMenu: @ 81B7F34 + push {lr} + sub sp, 0xC + movs r0, 0 + str r0, [sp] + ldr r0, =sub_81B1370 + str r0, [sp, 0x4] + ldr r0, =sub_8086194 + str r0, [sp, 0x8] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_81B0038 + add sp, 0xC + pop {r0} + bx r0 + .pool + thumb_func_end CB2_PartyMenuFromStartMenu + + thumb_func_start sub_81B7F60 +sub_81B7F60: @ 81B7F60 + push {lr} + sub sp, 0xC + bl InBattlePyramid + lsls r0, 24 + ldr r1, =sub_81C4F84 + cmp r0, 0 + bne _081B7F72 + ldr r1, =c2_815ABFC +_081B7F72: + movs r0, 0x6 + str r0, [sp] + ldr r0, =sub_81B1370 + str r0, [sp, 0x4] + str r1, [sp, 0x8] + movs r0, 0 + movs r1, 0 + movs r2, 0x5 + movs r3, 0 + bl sub_81B0038 + ldr r1, =gUnknown_0203CEC8 + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + strh r0, [r1, 0xC] + add sp, 0xC + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B7F60 + + thumb_func_start sub_81B7FAC +sub_81B7FAC: @ 81B7FAC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r4, r0, 24 + adds r6, r4, 0 + ldr r5, =gUnknown_0203CEFC + ldr r0, =gUnknown_0203CEC8 + mov r9, r0 + ldrb r0, [r0, 0x9] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x64 + mov r8, r1 + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + ldr r7, =gPlayerParty + adds r0, r7 + movs r1, 0xC + bl GetMonData + strh r0, [r5] + lsls r0, 16 + cmp r0, 0 + bne _081B7FF8 + adds r0, r4, 0 + bl sub_81B8044 + b _081B8030 + .pool +_081B7FF8: + ldrh r0, [r5] + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + beq _081B800C + adds r0, r4, 0 + bl sub_81B83B8 + b _081B8030 +_081B800C: + mov r1, r9 + movs r0, 0x9 + ldrsb r0, [r1, r0] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r7 + ldrh r1, [r5] + movs r2, 0x1 + bl sub_81B1D1C + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B82A0 + str r1, [r0] +_081B8030: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B7FAC + + thumb_func_start sub_81B8044 +sub_81B8044: @ 81B8044 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r5, =gUnknown_0203CEC8 + ldrh r0, [r5, 0xC] + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + beq _081B807C + ldrh r0, [r5, 0xC] + bl sub_81B83F0 + ldr r0, =gUnknown_0203CEC4 + ldr r1, [r0] + ldr r0, =sub_81B814C + str r0, [r1, 0x4] + adds r0, r4, 0 + bl sub_81B12C0 + b _081B8082 + .pool +_081B807C: + adds r0, r4, 0 + bl sub_81B8088 +_081B8082: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81B8044 + + thumb_func_start sub_81B8088 +sub_81B8088: @ 81B8088 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081B80E4 + ldr r4, =gUnknown_0203CEC8 + ldrh r5, [r4, 0xC] + movs r0, 0x9 + ldrsb r0, [r4, r0] + movs r1, 0x64 + mov r8, r1 + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + ldr r6, =gPlayerParty + adds r0, r6 + adds r1, r5, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_81B1C84 + movs r0, 0x9 + ldrsb r0, [r4, r0] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r6 + adds r1, r5, 0 + bl sub_81B1DB8 + adds r0, r5, 0 + bl sub_81B83F0 + ldr r1, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B8104 + str r1, [r0] +_081B80E4: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B8088 + + thumb_func_start sub_81B8104 +sub_81B8104: @ 81B8104 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, =gUnknown_0203CEC8 + ldrb r4, [r0, 0x9] + bl sub_81B1BD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B8138 + lsls r2, r4, 24 + asrs r2, 24 + movs r0, 0x64 + muls r0, r2 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gUnknown_0203CEDC + lsls r2, 4 + ldr r1, [r1] + adds r1, r2 + bl sub_81B5C94 + adds r0, r5, 0 + bl sub_81B12C0 +_081B8138: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B8104 + + thumb_func_start sub_81B814C +sub_81B814C: @ 81B814C + push {r4-r6,lr} + ldr r4, =gUnknown_0203CEC8 + movs r0, 0x9 + ldrsb r0, [r4, r0] + movs r6, 0x64 + muls r0, r6 + ldr r5, =gPlayerParty + adds r0, r5 + ldrh r1, [r4, 0xC] + bl sub_81B1DB8 + movs r0, 0x9 + ldrsb r0, [r4, r0] + muls r0, r6 + adds r0, r5 + movs r1, 0x40 + bl GetMonData + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gSaveBlock1Ptr + lsls r2, r0, 3 + adds r2, r0 + lsls r2, 2 + ldr r0, =0x00002be0 + adds r2, r0 + ldr r1, [r1] + adds r1, r2 + ldr r2, =sub_81B81A8 + movs r0, 0x4 + movs r3, 0x3 + bl sub_811A20C + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B814C + + thumb_func_start sub_81B81A8 +sub_81B81A8: @ 81B81A8 + push {r4-r7,lr} + sub sp, 0xC + ldr r6, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r6, r1] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r5, r1, r0 + adds r0, r5, 0 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r7, r0, 16 + ldr r0, =gScriptResult + ldrh r0, [r0] + cmp r0, 0 + bne _081B8208 + adds r0, r5, 0 + bl sub_80D4680 + ldr r4, =gUnknown_0203CEFC + adds r0, r5, 0 + movs r1, 0xC + adds r2, r4, 0 + bl SetMonData + ldrh r0, [r4] + movs r1, 0x1 + bl RemoveBagItem + adds r0, r7, 0 + bl sub_81B841C + ldr r0, [r6] + bl SetMainCallback2 + b _081B8224 + .pool +_081B8208: + ldrb r0, [r6, 0x8] + lsls r0, 28 + lsrs r0, 28 + ldrb r2, [r6, 0xB] + movs r1, 0x7F + str r1, [sp] + ldr r1, =sub_81B8230 + str r1, [sp, 0x4] + ldr r1, [r6] + str r1, [sp, 0x8] + movs r1, 0xFF + movs r3, 0x1 + bl sub_81B0038 +_081B8224: + add sp, 0xC + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B81A8 + + thumb_func_start sub_81B8230 +sub_81B8230: @ 81B8230 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081B828A + ldr r1, =gUnknown_0203CEFC + ldrh r0, [r1] + cmp r0, 0 + beq _081B8264 + ldr r0, =gUnknown_0203CEC8 + ldrh r0, [r0, 0xC] + ldrh r1, [r1] + movs r2, 0 + bl sub_81B1D68 + b _081B827C + .pool +_081B8264: + ldr r2, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r2, r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + ldrh r1, [r2, 0xC] + movs r2, 0 + movs r3, 0x1 + bl sub_81B1C84 +_081B827C: + ldr r0, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B8104 + str r0, [r1] +_081B828A: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B8230 + + thumb_func_start sub_81B82A0 +sub_81B82A0: @ 81B82A0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_81B1BD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B82C4 + bl sub_81B334C + ldr r0, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B82D4 + str r0, [r1] +_081B82C4: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B82A0 + + thumb_func_start sub_81B82D4 +sub_81B82D4: @ 81B82D4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + bl sub_8198C58 + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _081B82FA + cmp r1, 0 + bgt _081B82F4 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _081B8394 + b _081B83A8 +_081B82F4: + cmp r1, 0x1 + beq _081B839A + b _081B83A8 +_081B82FA: + ldr r7, =gUnknown_0203CEC8 + ldrh r4, [r7, 0xC] + adds r0, r4, 0 + bl sub_81B83F0 + ldr r6, =gUnknown_0203CEFC + ldrh r0, [r6] + movs r1, 0x1 + bl AddBagItem + lsls r0, 24 + cmp r0, 0 + bne _081B8338 + adds r0, r4, 0 + bl sub_81B841C + ldrh r0, [r6] + bl pokemon_item_not_removed + ldr r0, =gStringVar4 + movs r1, 0 + bl sub_81B1B5C + b _081B8378 + .pool +_081B8338: + adds r0, r4, 0 + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + beq _081B835C + ldr r0, =gUnknown_0203CEC4 + ldr r1, [r0] + ldr r0, =sub_81B814C + str r0, [r1, 0x4] + adds r0, r5, 0 + bl sub_81B12C0 + b _081B83A8 + .pool +_081B835C: + movs r1, 0x9 + ldrsb r1, [r7, r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + adds r1, r4, 0 + bl sub_81B1DB8 + ldrh r1, [r6] + adds r0, r4, 0 + movs r2, 0x1 + bl sub_81B1D68 +_081B8378: + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B8104 + str r1, [r0] + b _081B83A8 + .pool +_081B8394: + movs r0, 0x5 + bl PlaySE +_081B839A: + ldr r0, =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B8104 + str r0, [r1] +_081B83A8: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B82D4 + + thumb_func_start sub_81B83B8 +sub_81B83B8: @ 81B83B8 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =gUnknown_085E98EC + movs r1, 0x1 + bl sub_81B1B5C + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81B8104 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B83B8 + + thumb_func_start sub_81B83F0 +sub_81B83F0: @ 81B83F0 + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, =gUnknown_0203CEC8 + ldrb r0, [r0, 0xB] + cmp r0, 0x6 + bne _081B8410 + lsls r0, r1, 24 + lsrs r0, 24 + movs r1, 0x1 + bl sub_80D6E48 + b _081B8418 + .pool +_081B8410: + adds r0, r1, 0 + movs r1, 0x1 + bl RemoveBagItem +_081B8418: + pop {r0} + bx r0 + thumb_func_end sub_81B83F0 + + thumb_func_start sub_81B841C +sub_81B841C: @ 81B841C + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, =gUnknown_0203CEC8 + ldrb r0, [r0, 0xB] + cmp r0, 0x5 + beq _081B8438 + adds r0, r1, 0 + movs r1, 0x1 + bl sub_80D6D70 + b _081B8440 + .pool +_081B8438: + adds r0, r1, 0 + movs r1, 0x1 + bl AddBagItem +_081B8440: + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_81B841C + + thumb_func_start sub_81B8448 +sub_81B8448: @ 81B8448 + push {lr} + sub sp, 0xC + movs r0, 0x6 + str r0, [sp] + ldr r0, =sub_81B1370 + str r0, [sp, 0x4] + ldr r0, =sub_816BB28 + str r0, [sp, 0x8] + movs r0, 0 + movs r1, 0 + movs r2, 0x7 + movs r3, 0 + bl sub_81B0038 + add sp, 0xC + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B8448 + + thumb_func_start sub_81B8474 +sub_81B8474: @ 81B8474 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, =gUnknown_0203CEC8 + movs r1, 0x9 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r1, r0 + ldr r0, =gPlayerParty + adds r5, r1, r0 + ldr r1, =gUnknown_0203CEE8 + movs r0, 0 + strb r0, [r1] + ldr r2, =gSaveBlock1Ptr + ldr r0, =gUnknown_0203BCB8 + ldrh r1, [r0] + adds r1, 0x6 + ldrh r0, [r0, 0x2] + adds r1, r0 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =0x00002be0 + adds r0, r1 + ldr r1, [r2] + adds r4, r1, r0 + adds r0, r5, 0 + movs r1, 0xC + bl GetMonData + cmp r0, 0 + beq _081B84DC + ldr r0, =gUnknown_085E9A08 + movs r1, 0x1 + bl sub_81B1B5C + b _081B84F2 + .pool +_081B84DC: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80D460C + adds r0, r4, 0 + bl sub_80D439C + ldr r0, =gUnknown_085E9A40 + movs r1, 0x1 + bl sub_81B1B5C +_081B84F2: + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + ldr r0, =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B8104 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B8474 + + thumb_func_start sub_81B8518 +sub_81B8518: @ 81B8518 + push {lr} + sub sp, 0xC + bl sub_81B8558 + movs r0, 0 + str r0, [sp] + ldr r0, =sub_81B1370 + str r0, [sp, 0x4] + ldr r0, =gMain + ldr r0, [r0, 0x8] + str r0, [sp, 0x8] + movs r0, 0x4 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_81B0038 + ldr r1, =gUnknown_0203CEC8 + ldr r0, =sub_81B879C + str r0, [r1, 0x4] + add sp, 0xC + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B8518 + + thumb_func_start sub_81B8558 +sub_81B8558: @ 81B8558 + push {lr} + ldr r0, =gUnknown_0203CEF8 + movs r1, 0 + movs r2, 0x4 + bl memset + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B8558 + + thumb_func_start sub_81B856C +sub_81B856C: @ 81B856C + push {r4,lr} + lsls r0, 24 + asrs r4, r0, 24 + movs r0, 0x64 + muls r0, r4 + ldr r1, =gPlayerParty + adds r0, r1 + bl sub_81B85AC + lsls r0, 24 + cmp r0, 0 + bne _081B858C + movs r0, 0x2 + b _081B85A4 + .pool +_081B858C: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r0, 24 + bl sub_81B8770 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B85A2 + movs r0, 0 + b _081B85A4 +_081B85A2: + movs r0, 0x1 +_081B85A4: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81B856C + + thumb_func_start sub_81B85AC +sub_81B85AC: @ 81B85AC + push {r4-r6,lr} + adds r5, r0, 0 + movs r6, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _081B8608 + adds r0, r5, 0 + movs r1, 0x38 + bl GetMonData + adds r4, r0, 0 + bl sub_81B8888 + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bhi _081B8608 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldrh r1, [r0, 0x4] + ldr r0, =0x0000191a + cmp r1, r0 + bne _081B85EA + adds r0, r5, 0 + movs r1, 0xC + bl GetMonData + cmp r0, 0 + bne _081B8608 +_081B85EA: + ldr r0, =0x000040cf + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x8 + beq _081B864A + cmp r0, 0x9 + bne _081B8618 + adds r0, r5, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + bne _081B864A +_081B8608: + movs r0, 0 + b _081B864C + .pool +_081B8618: + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + ldr r3, =gUnknown_08611C9A + lsls r1, r6, 1 + adds r0, r1, r3 + ldrh r0, [r0] + ldr r2, =0x0000ffff + cmp r0, r2 + beq _081B864A +_081B8632: + adds r0, r1, r3 + ldrh r0, [r0] + cmp r0, r4 + beq _081B8608 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, r6, 1 + adds r0, r1, r3 + ldrh r0, [r0] + cmp r0, r2 + bne _081B8632 +_081B864A: + movs r0, 0x1 +_081B864C: + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81B85AC + + thumb_func_start sub_81B865C +sub_81B865C: @ 81B865C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + bl sub_81B885C + lsls r0, 24 + lsrs r2, r0, 24 + adds r1, r2, 0 + ldr r3, =gUnknown_0203CEF8 + adds r0, r2, r3 + subs r0, 0x1 + ldrb r0, [r0] + cmp r0, 0 + bne _081B869C + cmp r2, 0x1 + bne _081B8688 + movs r0, 0xE + b _081B8758 + .pool +_081B8688: + ldr r0, =gStringVar1 + movs r2, 0 + movs r3, 0x1 + bl ConvertIntToDecimalStringN + movs r0, 0x11 + b _081B8758 + .pool +_081B869C: + ldr r0, =0x000040cf + bl VarGet + lsls r0, 24 + movs r1, 0xF8 + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x1 + bhi _081B86C0 + b _081B8756 + .pool +_081B86B8: + movs r0, 0x12 + b _081B8758 +_081B86BC: + movs r0, 0x13 + b _081B8758 +_081B86C0: + bl sub_81B8830 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r5, 0 + b _081B8750 +_081B86CE: + ldr r3, =gUnknown_0203CEF8 + adds r4, r3, r5 + ldrb r0, [r4] + movs r1, 0x64 + muls r0, r1 + subs r0, 0x64 + ldr r3, =gPlayerParty + adds r0, r3, r0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + ldrb r0, [r4] + movs r1, 0x64 + muls r0, r1 + subs r0, 0x64 + ldr r3, =gPlayerParty + adds r0, r3, r0 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r6, r0, 16 + adds r1, r5, 0x1 + lsls r0, r1, 24 + lsrs r4, r0, 24 + mov r9, r1 + cmp r4, r8 + bcs _081B8748 + movs r7, 0x64 +_081B870E: + ldr r0, =gUnknown_0203CEF8 + adds r5, r0, r4 + ldrb r0, [r5] + muls r0, r7 + subs r0, 0x64 + ldr r1, =gPlayerParty + adds r0, r1, r0 + movs r1, 0xB + bl GetMonData + cmp r10, r0 + beq _081B86B8 + cmp r6, 0 + beq _081B873E + ldrb r0, [r5] + muls r0, r7 + subs r0, 0x64 + ldr r3, =gPlayerParty + adds r0, r3, r0 + movs r1, 0xC + bl GetMonData + cmp r6, r0 + beq _081B86BC +_081B873E: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r8 + bcc _081B870E +_081B8748: + mov r1, r9 + lsls r0, r1, 24 + lsrs r5, r0, 24 + mov r0, r8 +_081B8750: + subs r0, 0x1 + cmp r5, r0 + blt _081B86CE +_081B8756: + movs r0, 0xFF +_081B8758: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81B865C + + thumb_func_start sub_81B8770 +sub_81B8770: @ 81B8770 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + movs r1, 0 + ldr r3, =gUnknown_0203CEF8 +_081B877A: + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _081B878C + movs r0, 0x1 + b _081B8798 + .pool +_081B878C: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bls _081B877A + movs r0, 0 +_081B8798: + pop {r1} + bx r1 + thumb_func_end sub_81B8770 + + thumb_func_start sub_81B879C +sub_81B879C: @ 81B879C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + bl sub_81B865C + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xFF + beq _081B87D4 + movs r0, 0x20 + bl PlaySE + adds r0, r4, 0 + bl display_pokemon_menu_message + ldr r0, =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B87E8 + str r0, [r1] + b _081B87E0 + .pool +_081B87D4: + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + bl sub_81B12C0 +_081B87E0: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81B879C + + thumb_func_start sub_81B87E8 +sub_81B87E8: @ 81B87E8 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _081B8802 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081B881C +_081B8802: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl display_pokemon_menu_message + ldr r0, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B1370 + str r0, [r1] +_081B881C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B87E8 + + thumb_func_start sub_81B8830 +sub_81B8830: @ 81B8830 + push {lr} + ldr r0, =0x000040cf + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x8 + beq _081B884C + cmp r0, 0x9 + bne _081B8850 + movs r0, 0x3 + b _081B8854 + .pool +_081B884C: + movs r0, 0x2 + b _081B8854 +_081B8850: + ldr r0, =gSpecialVar_0x8005 + ldrb r0, [r0] +_081B8854: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81B8830 + + thumb_func_start sub_81B885C +sub_81B885C: @ 81B885C + push {lr} + ldr r0, =0x000040cf + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x8 + beq _081B8878 + cmp r0, 0x9 + bne _081B887C + movs r0, 0x1 + b _081B8880 + .pool +_081B8878: + movs r0, 0x2 + b _081B8880 +_081B887C: + ldr r0, =gSpecialVar_0x8005 + ldrb r0, [r0] +_081B8880: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81B885C + + thumb_func_start sub_81B8888 +sub_81B8888: @ 81B8888 + push {lr} + ldr r0, =0x000040cf + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x8 + beq _081B88A4 + cmp r0, 0x9 + bne _081B88A8 +_081B889C: + movs r0, 0x64 + b _081B88B2 + .pool +_081B88A4: + movs r0, 0x1E + b _081B88B2 +_081B88A8: + ldr r0, =gSpecialVar_0x8004 + ldrh r0, [r0] + cmp r0, 0 + bne _081B889C + movs r0, 0x32 +_081B88B2: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81B8888 + + thumb_func_start sub_81B88BC +sub_81B88BC: @ 81B88BC + push {lr} + ldr r0, =0x000040cf + bl VarGet + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0xF8 + lsls r2, 24 + adds r0, r2 + lsrs r0, 24 + cmp r0, 0x1 + bhi _081B88E0 + ldr r0, =gUnknown_085EA126 + b _081B88FA + .pool +_081B88E0: + cmp r1, 0x1 + bne _081B88F8 + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0x2 + bne _081B88F8 + ldr r0, =gUnknown_085EA139 + b _081B88FA + .pool +_081B88F8: + ldr r0, =gUnknown_085EA155 +_081B88FA: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81B88BC + + thumb_func_start sub_81B8904 +sub_81B8904: @ 81B8904 + push {lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + movs r2, 0 + str r2, [sp] + ldr r2, =sub_81B1370 + str r2, [sp, 0x4] + str r1, [sp, 0x8] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_81B0038 + add sp, 0xC + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B8904 + + thumb_func_start sub_81B892C +sub_81B892C: @ 81B892C + push {lr} + sub sp, 0xC + movs r0, 0x4 + str r0, [sp] + ldr r0, =sub_81B1370 + str r0, [sp, 0x4] + ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music + str r0, [sp, 0x8] + movs r0, 0 + movs r1, 0 + movs r2, 0xC + movs r3, 0 + bl sub_81B0038 + add sp, 0xC + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B892C + + thumb_func_start sub_81B8958 +sub_81B8958: @ 81B8958 + push {lr} + sub sp, 0xC + movs r0, 0x1 + str r0, [sp] + ldr r0, =sub_81B1370 + str r0, [sp, 0x4] + ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music + str r0, [sp, 0x8] + movs r0, 0xB + movs r1, 0 + movs r2, 0xD + movs r3, 0 + bl sub_81B0038 + add sp, 0xC + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B8958 + + thumb_func_start sub_81B8984 +sub_81B8984: @ 81B8984 + push {lr} + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + bne _081B8994 + movs r0, 0 + b _081B89A6 +_081B8994: + bl sub_81B1250 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081B89A4 + movs r0, 0x1 + b _081B89A6 +_081B89A4: + movs r0, 0x2 +_081B89A6: + pop {r1} + bx r1 + thumb_func_end sub_81B8984 + + thumb_func_start sub_81B89AC +sub_81B89AC: @ 81B89AC + push {r4,lr} + sub sp, 0xC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_81B8984 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + str r0, [sp] + ldr r0, =sub_81B1370 + str r0, [sp, 0x4] + ldr r0, =sub_8059D40 + str r0, [sp, 0x8] + movs r0, 0x1 + adds r2, r4, 0 + movs r3, 0 + bl sub_81B0038 + bl nullsub_35 + bl pokemon_change_order + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B89AC + + thumb_func_start sub_81B89F0 +sub_81B89F0: @ 81B89F0 + push {lr} + sub sp, 0xC + bl sub_81B8984 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x5 + str r0, [sp] + ldr r0, =sub_81B1370 + str r0, [sp, 0x4] + ldr r0, =c2_815ABFC + str r0, [sp, 0x8] + movs r0, 0x1 + movs r2, 0x3 + movs r3, 0 + bl sub_81B0038 + bl nullsub_35 + bl pokemon_change_order + add sp, 0xC + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B89F0 + + thumb_func_start sub_81B8A2C +sub_81B8A2C: @ 81B8A2C + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_02024550 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _081B8A74 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _081B8A74 + ldr r0, =gUnknown_0203CEC8 + ldrb r0, [r0, 0xB] + cmp r0, 0x1 + bne _081B8A5C + movs r0, 0x3 + b _081B8A76 + .pool +_081B8A5C: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 11 + ands r0, r1 + cmp r0, 0 + bne _081B8A74 + movs r0, 0x2 + b _081B8A76 + .pool +_081B8A74: + movs r0, 0x7 +_081B8A76: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81B8A2C + + thumb_func_start sub_81B8A7C +sub_81B8A7C: @ 81B8A7C + push {r4-r7,lr} + mov r7, r8 + push {r7} + bl brm_get_pokemon_selection + lsls r0, 24 + lsrs r5, r0, 24 + bl sub_81B1250 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081B8AC4 + cmp r5, 0x1 + beq _081B8AA2 + cmp r5, 0x4 + beq _081B8AA2 + cmp r5, 0x5 + bne _081B8AC4 +_081B8AA2: + ldr r4, =gStringVar1 + bl sub_806EBF8 + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085E97B2 + b _081B8C42 + .pool +_081B8AC4: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + bne _081B8AF8 + ldr r1, =gStringVar1 + adds r0, r4, 0 + bl GetMonNickname + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085E978F + b _081B8C42 + .pool +_081B8AF8: + movs r4, 0 + b _081B8B24 +_081B8AFC: + adds r0, r4, 0 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _081B8B1E + adds r0, r5, 0 + bl sub_81B8F38 + lsls r0, 24 + ldr r2, =gBattlePartyID + lsls r1, r4, 1 + adds r1, r2 + lsrs r0, 24 + ldrh r1, [r1] + cmp r0, r1 + beq _081B8BFC +_081B8B1E: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_081B8B24: + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + cmp r4, r0 + bcc _081B8AFC + movs r7, 0x64 + adds r0, r5, 0 + muls r0, r7 + ldr r1, =gPlayerParty + mov r8, r1 + adds r6, r0, r1 + adds r0, r6, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + beq _081B8B60 + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085E97E5 + b _081B8C42 + .pool +_081B8B60: + adds r0, r5, 0 + bl sub_81B8F38 + ldr r1, =gBattleStruct + ldr r1, [r1] + adds r1, 0x8B + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bne _081B8B94 + ldr r1, =gStringVar1 + adds r0, r6, 0 + bl GetMonNickname + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085E976F + b _081B8C42 + .pool +_081B8B94: + ldr r0, =gUnknown_0203CEC8 + ldrb r0, [r0, 0xB] + cmp r0, 0x4 + bne _081B8BA8 + bl sub_806E994 + b _081B8C46 + .pool +_081B8BA8: + cmp r0, 0x2 + beq _081B8C20 + adds r0, r5, 0 + bl sub_81B8F38 + ldr r1, =gUnknown_0203CEE9 + strb r0, [r1] + ldr r1, =gUnknown_0203CEE8 + movs r0, 0x1 + strb r0, [r1] + ldr r1, =gBattlePartyID + ldr r0, =gUnknown_020244B8 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrb r0, [r0] + bl pokemon_order_func + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_81B8FB0 + adds r0, r4, 0 + muls r0, r7 + add r0, r8 + adds r1, r6, 0 + bl sub_81B1288 + movs r0, 0x1 + b _081B8C48 + .pool +_081B8BFC: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gStringVar1 + bl GetMonNickname + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085E9754 + b _081B8C42 + .pool +_081B8C20: + ldr r0, =gUnknown_020244B8 + ldrb r0, [r0] + ldr r1, =gBattlePartyID + lsls r0, 1 + adds r0, r1 + ldrb r0, [r0] + bl pokemon_order_func + lsls r0, 24 + lsrs r0, 24 + muls r0, r7 + add r0, r8 + ldr r1, =gStringVar1 + bl GetMonNickname + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085E9738 +_081B8C42: + bl StringExpandPlaceholders +_081B8C46: + movs r0, 0 +_081B8C48: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81B8A7C + + thumb_func_start sub_81B8C68 +sub_81B8C68: @ 81B8C68 + push {r4,lr} + ldr r4, =gUnknown_0203CF00 + bl sub_806D7EC + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_81B8C88 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B8C68 + + thumb_func_start sub_81B8C88 +sub_81B8C88: @ 81B8C88 + push {r4-r6,lr} + sub sp, 0x8 + adds r6, r0, 0 + lsls r1, 24 + lsrs r4, r1, 24 + bl sub_81B1250 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081B8CBE + cmp r4, 0 + beq _081B8CB0 + movs r0, 0x30 + strb r0, [r6] + movs r0, 0x45 + strb r0, [r6, 0x1] + movs r0, 0x12 + strb r0, [r6, 0x2] + b _081B8D58 +_081B8CB0: + movs r0, 0x3 + strb r0, [r6] + movs r0, 0x12 + strb r0, [r6, 0x1] + movs r0, 0x45 + strb r0, [r6, 0x2] + b _081B8D58 +_081B8CBE: + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + bne _081B8CFC + movs r5, 0x1 + movs r0, 0 + bl GetBankByPlayerAI + mov r2, sp + ldr r1, =gBattlePartyID + lsls r0, 24 + lsrs r0, 23 + adds r0, r1 + ldrh r0, [r0] + strb r0, [r2] + movs r4, 0 + mov r1, sp +_081B8CE2: + ldrb r0, [r1] + cmp r4, r0 + beq _081B8CF0 + mov r2, sp + adds r0, r2, r5 + strb r4, [r0] + adds r5, 0x1 +_081B8CF0: + adds r4, 0x1 + cmp r4, 0x5 + ble _081B8CE2 + b _081B8D40 + .pool +_081B8CFC: + movs r5, 0x2 + movs r0, 0 + bl GetBankByPlayerAI + mov r1, sp + ldr r4, =gBattlePartyID + lsls r0, 24 + lsrs r0, 23 + adds r0, r4 + ldrh r0, [r0] + strb r0, [r1] + movs r0, 0x2 + bl GetBankByPlayerAI + mov r1, sp + lsls r0, 24 + lsrs r0, 23 + adds r0, r4 + ldrh r0, [r0] + strb r0, [r1, 0x1] + movs r4, 0 +_081B8D26: + ldrb r0, [r1] + cmp r4, r0 + beq _081B8D3A + ldrb r0, [r1, 0x1] + cmp r4, r0 + beq _081B8D3A + mov r2, sp + adds r0, r2, r5 + strb r4, [r0] + adds r5, 0x1 +_081B8D3A: + adds r4, 0x1 + cmp r4, 0x5 + ble _081B8D26 +_081B8D40: + movs r4, 0 + mov r3, sp +_081B8D44: + adds r0, r6, r4 + ldrb r1, [r3] + lsls r1, 4 + ldrb r2, [r3, 0x1] + orrs r1, r2 + strb r1, [r0] + adds r3, 0x2 + adds r4, 0x1 + cmp r4, 0x2 + ble _081B8D44 +_081B8D58: + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B8C88 + + thumb_func_start sub_81B8D64 +sub_81B8D64: @ 81B8D64 + push {lr} + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r0, =gBattleStruct + lsls r3, r2, 1 + adds r3, r2 + adds r3, 0x60 + ldr r0, [r0] + adds r0, r3 + bl sub_81B8D88 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B8D64 + + thumb_func_start sub_81B8D88 +sub_81B8D88: @ 81B8D88 + push {r4-r7,lr} + sub sp, 0x8 + adds r5, r0, 0 + adds r0, r2, 0 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r0, 24 + lsrs r0, 24 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _081B8DB0 + movs r0, 0 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x2 + b _081B8DBC +_081B8DB0: + movs r0, 0x1 + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x3 +_081B8DBC: + bl GetBankByPlayerAI + lsls r0, 24 + lsrs r6, r0, 24 + bl sub_81B1250 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081B8DF0 + cmp r7, 0 + beq _081B8DE2 + movs r0, 0x30 + strb r0, [r5] + movs r0, 0x45 + strb r0, [r5, 0x1] + movs r0, 0x12 + strb r0, [r5, 0x2] + b _081B8E72 +_081B8DE2: + movs r0, 0x3 + strb r0, [r5] + movs r0, 0x12 + strb r0, [r5, 0x1] + movs r0, 0x45 + strb r0, [r5, 0x2] + b _081B8E72 +_081B8DF0: + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + bne _081B8E28 + movs r3, 0x1 + mov r2, sp + ldr r1, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r1 + ldrh r0, [r0] + strb r0, [r2] + movs r4, 0 + mov r1, sp +_081B8E0C: + ldrb r0, [r1] + cmp r4, r0 + beq _081B8E1A + mov r2, sp + adds r0, r2, r3 + strb r4, [r0] + adds r3, 0x1 +_081B8E1A: + adds r4, 0x1 + cmp r4, 0x5 + ble _081B8E0C + b _081B8E5A + .pool +_081B8E28: + movs r3, 0x2 + mov r1, sp + ldr r2, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1] + lsls r0, r6, 1 + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1, 0x1] + movs r4, 0 +_081B8E40: + ldrb r0, [r1] + cmp r4, r0 + beq _081B8E54 + ldrb r0, [r1, 0x1] + cmp r4, r0 + beq _081B8E54 + mov r2, sp + adds r0, r2, r3 + strb r4, [r0] + adds r3, 0x1 +_081B8E54: + adds r4, 0x1 + cmp r4, 0x5 + ble _081B8E40 +_081B8E5A: + movs r4, 0 + mov r3, sp +_081B8E5E: + adds r0, r5, r4 + ldrb r1, [r3] + lsls r1, 4 + ldrb r2, [r3, 0x1] + orrs r1, r2 + strb r1, [r0] + adds r3, 0x2 + adds r4, 0x1 + cmp r4, 0x2 + ble _081B8E5E +_081B8E72: + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B8D88 + + thumb_func_start sub_81B8E80 +sub_81B8E80: @ 81B8E80 + push {r4-r7,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + lsls r2, 24 + lsrs r6, r2, 24 + movs r7, 0 + bl sub_81B1250 + lsls r0, 24 + cmp r0, 0 + beq _081B8F2E + ldr r0, =gBattleStruct + lsls r1, r4, 1 + adds r1, r4 + adds r1, 0x60 + ldr r0, [r0] + adds r4, r0, r1 + movs r2, 0 + add r6, sp + mov r12, r6 + movs r6, 0xF + mov r3, sp +_081B8EB2: + adds r1, r4, r2 + ldrb r0, [r1] + lsrs r0, 4 + strb r0, [r3] + adds r3, 0x1 + ldrb r1, [r1] + adds r0, r6, 0 + ands r0, r1 + strb r0, [r3] + adds r3, 0x1 + adds r2, 0x1 + cmp r2, 0x2 + ble _081B8EB2 + mov r0, r12 + ldrb r3, [r0] + movs r2, 0 + mov r0, sp + ldrb r0, [r0] + cmp r0, r5 + bne _081B8EE8 + mov r0, sp + ldrb r7, [r0] + strb r3, [r0] + b _081B8EFC + .pool +_081B8EE8: + adds r2, 0x1 + cmp r2, 0x5 + bgt _081B8EFC + mov r0, sp + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, r5 + bne _081B8EE8 + adds r7, r0, 0 + strb r3, [r1] +_081B8EFC: + cmp r2, 0x6 + beq _081B8F2E + mov r0, r12 + strb r7, [r0] + mov r0, sp + ldrb r0, [r0] + lsls r0, 4 + mov r1, sp + ldrb r1, [r1, 0x1] + orrs r0, r1 + strb r0, [r4] + mov r0, sp + ldrb r0, [r0, 0x2] + lsls r0, 4 + mov r1, sp + ldrb r1, [r1, 0x3] + orrs r0, r1 + strb r0, [r4, 0x1] + mov r0, sp + ldrb r0, [r0, 0x4] + lsls r0, 4 + mov r1, sp + ldrb r1, [r1, 0x5] + orrs r0, r1 + strb r0, [r4, 0x2] +_081B8F2E: + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81B8E80 + + thumb_func_start sub_81B8F38 +sub_81B8F38: @ 81B8F38 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + movs r1, 0x1 + ands r1, r2 + lsrs r2, r0, 25 + cmp r1, 0 + beq _081B8F58 + ldr r0, =gUnknown_0203CF00 + adds r0, r2, r0 + ldrb r0, [r0] + movs r1, 0xF + ands r1, r0 + b _081B8F60 + .pool +_081B8F58: + ldr r0, =gUnknown_0203CF00 + adds r0, r2, r0 + ldrb r0, [r0] + lsrs r1, r0, 4 +_081B8F60: + adds r0, r1, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81B8F38 + + thumb_func_start sub_81B8F6C +sub_81B8F6C: @ 81B8F6C + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + movs r1, 0x1 + ands r1, r3 + lsrs r3, r0, 25 + cmp r1, 0 + beq _081B8F94 + ldr r0, =gUnknown_0203CF00 + adds r0, r3, r0 + ldrb r2, [r0] + movs r1, 0xF0 + ands r1, r2 + orrs r1, r4 + strb r1, [r0] + b _081B8FA4 + .pool +_081B8F94: + ldr r2, =gUnknown_0203CF00 + adds r2, r3, r2 + ldrb r1, [r2] + movs r0, 0xF + ands r0, r1 + lsls r1, r4, 4 + orrs r0, r1 + strb r0, [r2] +_081B8FA4: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B8F6C + + thumb_func_start sub_81B8FB0 +sub_81B8FB0: @ 81B8FB0 + push {r4-r6,lr} + adds r5, r0, 0 + adds r6, r1, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + adds r0, r5, 0 + bl sub_81B8F38 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + bl sub_81B8F38 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl sub_81B8F6C + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_81B8F6C + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81B8FB0 + + thumb_func_start pokemon_order_func +pokemon_order_func: @ 81B8FEC + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r3, 0 + movs r2, 0 + ldr r5, =gUnknown_0203CF00 +_081B8FF8: + adds r0, r3, r5 + ldrb r1, [r0] + lsrs r0, r1, 4 + cmp r0, r4 + beq _081B9010 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + movs r0, 0xF + ands r0, r1 + cmp r0, r4 + bne _081B9018 +_081B9010: + adds r0, r2, 0 + b _081B902A + .pool +_081B9018: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x2 + bls _081B8FF8 + movs r0, 0 +_081B902A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end pokemon_order_func + + thumb_func_start pokemon_change_order +pokemon_change_order: @ 81B9030 + push {r4-r6,lr} + movs r4, 0x96 + lsls r4, 2 + adds r0, r4, 0 + bl Alloc + adds r5, r0, 0 + ldr r1, =gPlayerParty + adds r2, r4, 0 + bl memcpy + movs r4, 0 + movs r6, 0x64 +_081B904A: + adds r0, r4, 0 + bl pokemon_order_func + lsls r0, 24 + lsrs r0, 24 + muls r0, r6 + ldr r1, =gPlayerParty + adds r0, r1 + adds r1, r4, 0 + muls r1, r6 + adds r1, r5 + movs r2, 0x64 + bl memcpy + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _081B904A + adds r0, r5, 0 + bl Free + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end pokemon_change_order + + thumb_func_start sub_81B9080 +sub_81B9080: @ 81B9080 + push {r4-r6,lr} + movs r4, 0x96 + lsls r4, 2 + adds r0, r4, 0 + bl Alloc + adds r5, r0, 0 + ldr r1, =gPlayerParty + adds r2, r4, 0 + bl memcpy + movs r4, 0 + movs r6, 0x64 +_081B909A: + adds r0, r4, 0 + bl sub_81B8F38 + lsls r0, 24 + lsrs r0, 24 + muls r0, r6 + ldr r1, =gPlayerParty + adds r0, r1 + adds r1, r4, 0 + muls r1, r6 + adds r1, r5 + movs r2, 0x64 + bl memcpy + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _081B909A + adds r0, r5, 0 + bl Free + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9080 + + thumb_func_start sub_81B90D0 +sub_81B90D0: @ 81B90D0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r6, 0x1 + movs r7, 0x64 + ldr r0, =gPlayerParty + mov r8, r0 +_081B90DE: + adds r0, r6, 0 + bl sub_81B8F38 + lsls r0, 24 + lsrs r0, 24 + muls r0, r7 + mov r1, r8 + adds r5, r0, r1 + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _081B912C + adds r0, r5, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _081B912C + movs r0, 0 + bl sub_81B8F38 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + adds r1, r6, 0 + bl sub_81B8FB0 + adds r0, r4, 0 + muls r0, r7 + add r0, r8 + adds r1, r5, 0 + bl sub_81B1288 + b _081B9136 + .pool +_081B912C: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x5 + bls _081B90DE +_081B9136: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81B90D0 + + thumb_func_start sub_81B9140 +sub_81B9140: @ 81B9140 + push {lr} + ldr r0, =sub_8059D40 + bl SetMainCallback2 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9140 + + thumb_func_start sub_81B9150 +sub_81B9150: @ 81B9150 + push {lr} + sub sp, 0xC + movs r0, 0x7F + str r0, [sp] + ldr r0, =sub_81B917C + str r0, [sp, 0x4] + ldr r0, =gMain + ldr r0, [r0, 0x8] + str r0, [sp, 0x8] + movs r0, 0x5 + movs r1, 0x3 + movs r2, 0 + movs r3, 0 + bl sub_81B0038 + add sp, 0xC + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9150 + + thumb_func_start sub_81B917C +sub_81B917C: @ 81B917C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + movs r1, 0x80 + lsls r1, 1 + strh r1, [r4, 0x8] + bl sub_81B9294 + movs r1, 0x80 + lsls r1, 9 + movs r0, 0x2 + movs r2, 0 + bl ChangeBgX + ldr r0, =sub_81B91B4 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B917C + + thumb_func_start sub_81B91B4 +sub_81B91B4: @ 81B91B4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r6, r5, 2 + adds r0, r6, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081B9220 + ldrh r0, [r4] + subs r0, 0x8 + strh r0, [r4] + adds r0, r5, 0 + bl sub_81B9294 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _081B9220 + movs r4, 0x3 + ldr r7, =gUnknown_02022FF8 +_081B91E8: + subs r0, r4, 0x3 + lsls r0, 5 + adds r0, r7 + ldrh r0, [r0] + cmp r0, 0 + beq _081B9204 + ldr r0, =gUnknown_0203CEDC + ldr r1, [r0] + lsls r0, r4, 4 + adds r0, r1 + ldrb r0, [r0, 0x9] + movs r1, 0 + bl sub_81B5B6C +_081B9204: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _081B91E8 + movs r0, 0x78 + bl PlaySE + ldr r0, =gTasks + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81B9240 + str r0, [r1] +_081B9220: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B91B4 + + thumb_func_start sub_81B9240 +sub_81B9240: @ 81B9240 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + strh r1, [r0] + lsls r1, 16 + movs r0, 0x80 + lsls r0, 17 + cmp r1, r0 + bne _081B9266 + adds r0, r2, 0 + bl sub_81B12C0 +_081B9266: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9240 + + thumb_func_start sub_81B9270 +sub_81B9270: @ 81B9270 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 16 + lsrs r3, r1, 16 + cmp r1, 0 + blt _081B928A + ldr r1, =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + strh r3, [r0, 0x24] +_081B928A: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9270 + + thumb_func_start sub_81B9294 +sub_81B9294: @ 81B9294 + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r5, r1, r0 + movs r6, 0x3 + ldr r7, =gUnknown_0203CEDC +_081B92A8: + ldr r0, =gUnknown_02022FF8 + subs r1, r6, 0x3 + lsls r1, 5 + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0 + beq _081B9300 + ldr r0, [r7] + lsls r4, r6, 4 + adds r0, r4, r0 + ldrb r0, [r0, 0x9] + ldrh r1, [r5] + subs r1, 0x8 + lsls r1, 16 + asrs r1, 16 + bl sub_81B9270 + ldr r0, [r7] + adds r0, r4, r0 + ldrb r0, [r0, 0xA] + ldrh r1, [r5] + subs r1, 0x8 + lsls r1, 16 + asrs r1, 16 + bl sub_81B9270 + ldr r0, [r7] + adds r0, r4, r0 + ldrb r0, [r0, 0xB] + ldrh r1, [r5] + subs r1, 0x8 + lsls r1, 16 + asrs r1, 16 + bl sub_81B9270 + ldr r0, [r7] + adds r4, r0 + ldrb r0, [r4, 0xC] + ldrh r1, [r5] + subs r1, 0x8 + lsls r1, 16 + asrs r1, 16 + bl sub_81B9270 +_081B9300: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x5 + bls _081B92A8 + movs r1, 0x80 + lsls r1, 4 + movs r0, 0x2 + movs r2, 0x1 + bl ChangeBgX + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9294 + + thumb_func_start sub_81B9328 +sub_81B9328: @ 81B9328 + push {lr} + sub sp, 0xC + movs r0, 0xF + str r0, [sp] + ldr r0, =sub_81B1370 + str r0, [sp, 0x4] + ldr r0, =sub_81B9390 + str r0, [sp, 0x8] + movs r0, 0x6 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_81B0038 + add sp, 0xC + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9328 + + thumb_func_start sub_81B9354 +sub_81B9354: @ 81B9354 + push {lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gUnknown_03005DB0 + ldr r1, =hm_add_c3_without_phase_2 + str r1, [r2] + movs r1, 0 + str r1, [sp] + ldr r1, =sub_81B1370 + str r1, [sp, 0x4] + ldr r1, =c2_exit_to_overworld_2_switch + str r1, [sp, 0x8] + movs r1, 0 + movs r2, 0xB + movs r3, 0 + bl sub_81B0038 + add sp, 0xC + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9354 + + thumb_func_start sub_81B9390 +sub_81B9390: @ 81B9390 + push {r4,lr} + ldr r4, =gSpecialVar_0x8004 + bl brm_get_pokemon_selection + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + cmp r0, 0x5 + bls _081B93A6 + movs r0, 0xFF + strh r0, [r4] +_081B93A6: + ldr r0, =gUnknown_03005DB0 + ldr r1, =hm_add_c3_without_phase_2 + str r1, [r0] + ldr r0, =c2_exit_to_overworld_2_switch + bl SetMainCallback2 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9390 + + thumb_func_start hm_add_c3_without_phase_2 +hm_add_c3_without_phase_2: @ 81B93C8 + push {lr} + bl pal_fill_black + ldr r0, =task_hm_without_phase_2 + movs r1, 0xA + bl CreateTask + movs r0, 0x1 + pop {r1} + bx r1 + .pool + thumb_func_end hm_add_c3_without_phase_2 + + thumb_func_start task_hm_without_phase_2 +task_hm_without_phase_2: @ 81B93E0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_80ABDFC + lsls r0, 24 + cmp r0, 0 + beq _081B93FE + adds r0, r4, 0 + bl DestroyTask + bl script_env_2_disable + bl script_env_2_enable_and_set_ctx_running +_081B93FE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end task_hm_without_phase_2 + + thumb_func_start sub_81B9404 +sub_81B9404: @ 81B9404 + push {lr} + bl script_env_2_enable + movs r0, 0x1 + movs r1, 0 + bl fade_screen + ldr r0, =sub_81B9424 + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9404 + + thumb_func_start sub_81B9424 +sub_81B9424: @ 81B9424 + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _081B945C + bl overworld_free_bg_tilemaps + str r4, [sp] + ldr r0, =sub_81B1370 + str r0, [sp, 0x4] + ldr r0, =sub_81B9470 + str r0, [sp, 0x8] + movs r0, 0x2 + movs r1, 0 + movs r2, 0xB + movs r3, 0 + bl sub_81B0038 + adds r0, r5, 0 + bl DestroyTask +_081B945C: + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9424 + + thumb_func_start sub_81B9470 +sub_81B9470: @ 81B9470 + push {lr} + bl brm_get_pokemon_selection + ldr r2, =gUnknown_02039F24 + strb r0, [r2] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bls _081B9486 + movs r0, 0xFF + strb r0, [r2] +_081B9486: + ldr r1, =gSpecialVar_0x8004 + ldrb r0, [r2] + strh r0, [r1] + ldr r1, =gUnknown_03005DB0 + ldr r0, =hm_add_c3_without_phase_2 + str r0, [r1] + ldr r0, =c2_exit_to_overworld_2_switch + bl SetMainCallback2 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9470 + + thumb_func_start sub_81B94B0 +sub_81B94B0: @ 81B94B0 + push {lr} + bl script_env_2_enable + movs r0, 0x1 + movs r1, 0 + bl fade_screen + ldr r0, =sub_81B94D0 + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B94B0 + + thumb_func_start sub_81B94D0 +sub_81B94D0: @ 81B94D0 + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _081B9508 + bl overworld_free_bg_tilemaps + str r4, [sp] + ldr r0, =sub_81B1370 + str r0, [sp, 0x4] + ldr r0, =sub_81B9390 + str r0, [sp, 0x8] + movs r0, 0x3 + movs r1, 0 + movs r2, 0xB + movs r3, 0 + bl sub_81B0038 + adds r0, r5, 0 + bl DestroyTask +_081B9508: + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B94D0 + + thumb_func_start sub_81B951C +sub_81B951C: @ 81B951C + push {lr} + bl script_env_2_enable + movs r0, 0x1 + movs r1, 0 + bl fade_screen + ldr r0, =sub_81B953C + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B951C + + thumb_func_start sub_81B953C +sub_81B953C: @ 81B953C + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _081B9574 + bl overworld_free_bg_tilemaps + str r4, [sp] + ldr r0, =sub_81B1370 + str r0, [sp, 0x4] + ldr r0, =sub_81B9588 + str r0, [sp, 0x8] + movs r0, 0x7 + movs r1, 0 + movs r2, 0xB + movs r3, 0 + bl sub_81B0038 + adds r0, r5, 0 + bl DestroyTask +_081B9574: + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B953C + + thumb_func_start sub_81B9588 +sub_81B9588: @ 81B9588 + push {r4,r5,lr} + ldr r5, =gSpecialVar_0x8004 + bl brm_get_pokemon_selection + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5] + cmp r0, 0x5 + bls _081B95A4 + movs r0, 0xFF + strh r0, [r5] + b _081B95BA + .pool +_081B95A4: + ldr r4, =gSpecialVar_0x8005 + ldrh r1, [r5] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + bl sub_806E25C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] +_081B95BA: + ldr r0, =gUnknown_03005DB0 + ldr r1, =hm_add_c3_without_phase_2 + str r1, [r0] + ldr r0, =c2_exit_to_overworld_2_switch + bl SetMainCallback2 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9588 + + thumb_func_start sub_81B95E0 +sub_81B95E0: @ 81B95E0 + push {r4,r5,lr} + ldr r1, =gScriptResult + movs r0, 0 + strh r0, [r1] + movs r4, 0 + adds r5, r1, 0 + b _081B95FA + .pool +_081B95F4: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_081B95FA: + cmp r4, 0x2 + bhi _081B9614 + movs r0, 0x64 + muls r0, r4 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xC + bl GetMonData + cmp r0, 0 + beq _081B95F4 + movs r0, 0x1 + strh r0, [r5] +_081B9614: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B95E0 + + thumb_func_start sub_81B9620 +sub_81B9620: @ 81B9620 + push {lr} + bl script_env_2_enable + movs r0, 0x1 + movs r1, 0 + bl fade_screen + ldr r0, =sub_81B9640 + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9620 + + thumb_func_start sub_81B9640 +sub_81B9640: @ 81B9640 + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _081B9678 + bl overworld_free_bg_tilemaps + str r4, [sp] + ldr r0, =sub_81B1370 + str r0, [sp, 0x4] + ldr r0, =sub_81B9390 + str r0, [sp, 0x8] + movs r0, 0xC + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_81B0038 + adds r0, r5, 0 + bl DestroyTask +_081B9678: + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9640 + + thumb_func_start sub_81B968C +sub_81B968C: @ 81B968C + push {lr} + sub sp, 0x4 + ldr r1, =gPlayerParty + ldr r0, =gSpecialVar_0x8004 + ldrb r2, [r0] + ldr r0, =gPlayerPartyCount + ldrb r3, [r0] + subs r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + ldr r0, =c2_exit_to_overworld_2_switch + str r0, [sp] + movs r0, 0x3 + bl sub_81BF8EC + ldr r1, =gUnknown_03005DAC + ldr r0, =sub_80AF168 + str r0, [r1] + add sp, 0x4 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B968C + + thumb_func_start sub_81B96D0 +sub_81B96D0: @ 81B96D0 + push {r4,r5,lr} + ldr r1, =gScriptResult + movs r0, 0 + strh r0, [r1] + movs r4, 0 + adds r5, r1, 0 +_081B96DC: + ldr r0, =gSpecialVar_0x8004 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + adds r1, r4, 0 + adds r1, 0xD + bl GetMonData + cmp r0, 0 + beq _081B96FA + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] +_081B96FA: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _081B96DC + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B96D0 + + thumb_func_start sub_81B9718 +sub_81B9718: @ 81B9718 + push {r4,r5,lr} + ldr r0, =gSpecialVar_0x8004 + ldrh r1, [r0] + movs r0, 0x64 + adds r5, r1, 0 + muls r5, r0 + ldr r0, =gPlayerParty + adds r5, r0 + ldr r0, =gSpecialVar_0x8005 + ldrh r1, [r0] + adds r1, 0xD + adds r0, r5, 0 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r1, =gStringVar1 + adds r0, r5, 0 + bl GetMonNickname + ldr r0, =gStringVar2 + movs r1, 0xD + muls r1, r4 + ldr r2, =gMoveNames + adds r1, r2 + bl StringCopy + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9718 + + thumb_func_start sub_81B9770 +sub_81B9770: @ 81B9770 + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r0, =gSpecialVar_0x8004 + mov r8, r0 + ldrh r0, [r0] + movs r6, 0x64 + muls r0, r6 + ldr r5, =gPlayerParty + adds r0, r5 + ldr r4, =gSpecialVar_0x8005 + ldrb r2, [r4] + movs r1, 0 + bl sub_80691F4 + mov r1, r8 + ldrh r0, [r1] + muls r0, r6 + adds r0, r5 + ldrb r1, [r4] + bl sub_806B9A8 + ldrh r4, [r4] + cmp r4, 0x2 + bhi _081B97C4 +_081B97A2: + ldr r0, =gSpecialVar_0x8004 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + lsls r1, r4, 24 + lsrs r1, 24 + adds r4, 0x1 + lsls r2, r4, 24 + lsrs r2, 24 + bl sub_81B97DC + lsls r4, 16 + lsrs r4, 16 + cmp r4, 0x2 + bls _081B97A2 +_081B97C4: + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9770 + + thumb_func_start sub_81B97DC +sub_81B97DC: @ 81B97DC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + mov r8, r0 + adds r5, r1, 0 + adds r4, r2, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + adds r0, 0xD + str r0, [sp, 0x8] + mov r0, r8 + ldr r1, [sp, 0x8] + bl GetMonData + mov r1, sp + adds r1, 0x2 + str r1, [sp, 0x14] + strh r0, [r1] + adds r3, r4, 0 + adds r3, 0xD + str r3, [sp, 0xC] + mov r0, r8 + adds r1, r3, 0 + bl GetMonData + mov r1, sp + strh r0, [r1] + adds r7, r5, 0 + adds r7, 0x11 + str r7, [sp, 0x10] + mov r0, r8 + adds r1, r7, 0 + bl GetMonData + mov r1, sp + adds r1, 0x5 + str r1, [sp, 0x18] + strb r0, [r1] + adds r3, r4, 0 + adds r3, 0x11 + str r3, [sp, 0x1C] + mov r0, r8 + adds r1, r3, 0 + bl GetMonData + add r7, sp, 0x4 + mov r10, r7 + strb r0, [r7] + mov r0, r8 + movs r1, 0x15 + bl GetMonData + mov r6, sp + adds r6, 0x6 + strb r0, [r6] + ldr r1, =gUnknown_08329D22 + adds r0, r5, r1 + ldrb r0, [r0] + mov r9, r0 + ldrb r0, [r6] + adds r2, r0, 0 + mov r3, r9 + ands r2, r3 + lsls r5, 1 + asrs r2, r5 + lsls r2, 24 + lsrs r2, 24 + adds r1, r4, r1 + ldrb r3, [r1] + adds r1, r0, 0 + ands r1, r3 + lsls r4, 1 + asrs r1, r4 + lsls r1, 24 + lsrs r1, 24 + mov r7, r9 + bics r0, r7 + strb r0, [r6] + ldrb r0, [r6] + bics r0, r3 + strb r0, [r6] + lsls r2, r4 + lsls r1, r5 + adds r2, r1 + ldrb r0, [r6] + orrs r0, r2 + strb r0, [r6] + mov r0, r8 + ldr r1, [sp, 0x8] + mov r2, sp + bl SetMonData + mov r0, r8 + ldr r1, [sp, 0xC] + ldr r2, [sp, 0x14] + bl SetMonData + mov r0, r8 + ldr r1, [sp, 0x10] + mov r2, r10 + bl SetMonData + mov r0, r8 + ldr r1, [sp, 0x1C] + ldr r2, [sp, 0x18] + bl SetMonData + mov r0, r8 + movs r1, 0x15 + adds r2, r6, 0 + bl SetMonData + 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_81B97DC + + thumb_func_start sub_81B98DC +sub_81B98DC: @ 81B98DC + push {lr} + ldr r0, =gSpecialVar_0x8004 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x2D + bl GetMonData + adds r1, r0, 0 + cmp r1, 0 + beq _081B990C + ldr r1, =gScriptResult + movs r0, 0x1 + strh r0, [r1] + b _081B9910 + .pool +_081B990C: + ldr r0, =gScriptResult + strh r1, [r0] +_081B9910: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B98DC + + thumb_func_start sub_81B9918 +sub_81B9918: @ 81B9918 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r1, =gScriptResult + movs r0, 0 + strh r0, [r1] + ldr r0, =gSpecialVar_0x8004 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + ldr r1, =gSpecialVar_0x8005 + ldrh r1, [r1] + adds r1, 0xD + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r0, 0x39 + bne _081B999C + movs r6, 0 + b _081B9980 + .pool +_081B9958: + ldr r0, =gSpecialVar_0x8004 + ldrh r0, [r0] + cmp r6, r0 + beq _081B997E + movs r4, 0 + movs r0, 0x64 + adds r5, r6, 0 + muls r5, r0 + ldr r7, =gPlayerParty +_081B996A: + adds r1, r4, 0 + adds r1, 0xD + adds r0, r5, r7 + bl GetMonData + cmp r0, 0x39 + beq _081B999C + adds r4, 0x1 + cmp r4, 0x3 + bls _081B996A +_081B997E: + adds r6, 0x1 +_081B9980: + bl calc_player_party_count + lsls r0, 24 + lsrs r0, 24 + cmp r6, r0 + bcc _081B9958 + mov r0, r8 + bl sub_80D23A8 + cmp r0, 0x1 + beq _081B999C + ldr r1, =gScriptResult + movs r0, 0x1 + strh r0, [r1] +_081B999C: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9918 + + thumb_func_start sub_81B99B4 +sub_81B99B4: @ 81B99B4 + push {lr} + ldr r1, =gUnknown_086160B4 + ldr r0, =gSpecialVar_0x8004 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B99B4 + + thumb_func_start sub_81B99D4 +sub_81B99D4: @ 81B99D4 + push {lr} + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + ldr r2, =0x00000ca8 + adds r0, r2 + movs r2, 0 + strb r2, [r0] + ldr r1, [r1] + ldr r3, =0x00000cb2 + adds r0, r1, r3 + strh r2, [r0] + ldr r0, =0x00000ca9 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + movs r1, 0x4 + ldrsb r1, [r0, r1] + movs r2, 0x5 + ldrsb r2, [r0, r2] + movs r3, 0x1 + negs r3, r3 + movs r0, 0 + bl saved_warp2_set + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B99D4 + + thumb_func_start sub_81B9A28 +sub_81B9A28: @ 81B9A28 + ldr r1, =gScriptResult + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r2, =0x00000e6a + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1] + bx lr + .pool + thumb_func_end sub_81B9A28 + + thumb_func_start sub_81B9A44 +sub_81B9A44: @ 81B9A44 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =gSpecialVar_0x8006 + ldrh r1, [r1] + ldr r2, =0x00000e6a + adds r0, r2 + strh r1, [r0] + bx lr + .pool + thumb_func_end sub_81B9A44 + + thumb_func_start sub_81B9A60 +sub_81B9A60: @ 81B9A60 + push {r4,lr} + ldr r4, =gUnknown_02038BCA + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xFF + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + lsls r1, r0, 2 + adds r1, r0 + lsrs r1, 6 + strh r1, [r4] + ldrh r0, [r4] + movs r1, 0 + bl sub_8162614 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9A60 + + thumb_func_start sub_81B9A90 +sub_81B9A90: @ 81B9A90 + push {lr} + ldr r3, =gUnknown_02038BCA + ldrh r1, [r3] + ldr r0, =0x0000012b + cmp r1, r0 + bhi _081B9AAC + ldr r2, =gUnknown_0203BC88 + movs r0, 0x34 + muls r1, r0 + ldr r0, [r2] + adds r0, r1 + adds r0, 0xC + bl ConvertBattleFrontierTrainerSpeechToString +_081B9AAC: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9A90 + + thumb_func_start sub_81B9ABC +sub_81B9ABC: @ 81B9ABC + push {r4,lr} + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =gSpecialVar_0x8005 + ldrh r1, [r1] + ldr r2, =0x00000ca8 + adds r0, r2 + strb r1, [r0] + movs r0, 0x80 + lsls r0, 7 + movs r1, 0 + bl VarSet + ldr r1, [r4] + ldr r0, =0x00000ca9 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + bl sub_81A4C30 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9ABC + + thumb_func_start sub_81B9B00 +sub_81B9B00: @ 81B9B00 + push {r4,r5,lr} + ldr r0, =gSaveBlock2Ptr + ldr r4, [r0] + ldr r5, =gUnknown_086160D4 + bl Random + ldrh r0, [r5] + ldr r1, =0x00000e6a + adds r4, r1 + strh r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9B00 + + thumb_func_start sub_81B9B28 +sub_81B9B28: @ 81B9B28 + push {r4,r5,lr} + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =0x00000e6a + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x1 + bl AddBagItem + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x1 + bne _081B9B70 + ldr r0, [r4] + ldr r1, =0x00000e6a + adds r0, r1 + ldrh r0, [r0] + ldr r1, =gStringVar1 + bl CopyItemName + ldr r0, [r4] + ldr r1, =0x00000e6a + adds r0, r1 + movs r1, 0 + strh r1, [r0] + ldr r0, =gScriptResult + strh r5, [r0] + b _081B9B76 + .pool +_081B9B70: + ldr r1, =gScriptResult + movs r0, 0 + strh r0, [r1] +_081B9B76: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9B28 + + thumb_func_start sub_81B9B80 +sub_81B9B80: @ 81B9B80 + push {lr} + ldr r1, =gUnknown_086160D8 + ldr r0, =gSpecialVar_0x8004 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9B80 + + thumb_func_start sub_81B9BA0 +sub_81B9BA0: @ 81B9BA0 + push {lr} + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + ldr r2, =0x00000ca8 + adds r0, r2 + movs r2, 0 + strb r2, [r0] + ldr r1, [r1] + ldr r3, =0x00000cb2 + adds r0, r1, r3 + strh r2, [r0] + ldr r0, =0x00000ca9 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + movs r1, 0x4 + ldrsb r1, [r0, r1] + movs r2, 0x5 + ldrsb r2, [r0, r2] + movs r3, 0x1 + negs r3, r3 + movs r0, 0 + bl saved_warp2_set + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9BA0 + + thumb_func_start sub_81B9BF4 +sub_81B9BF4: @ 81B9BF4 + ldr r1, =gScriptResult + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r2, =0x00000e6c + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1] + bx lr + .pool + thumb_func_end sub_81B9BF4 + + thumb_func_start sub_81B9C10 +sub_81B9C10: @ 81B9C10 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =gSpecialVar_0x8006 + ldrh r1, [r1] + ldr r2, =0x00000e6c + adds r0, r2 + strh r1, [r0] + bx lr + .pool + thumb_func_end sub_81B9C10 + + thumb_func_start sub_81B9C2C +sub_81B9C2C: @ 81B9C2C + push {r4,lr} + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =gSpecialVar_0x8005 + ldrh r1, [r1] + ldr r2, =0x00000ca8 + adds r0, r2 + strb r1, [r0] + movs r0, 0x80 + lsls r0, 7 + movs r1, 0 + bl VarSet + ldr r1, [r4] + ldr r0, =0x00000ca9 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + bl sub_81A4C30 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9C2C + + thumb_func_start sub_81B9C70 +sub_81B9C70: @ 81B9C70 + push {r4,r5,lr} + ldr r0, =gSaveBlock2Ptr + ldr r4, [r0] + ldr r5, =gUnknown_086160F4 + bl Random + ldrh r0, [r5] + ldr r1, =0x00000e6c + adds r4, r1 + strh r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9C70 + + thumb_func_start sub_81B9C98 +sub_81B9C98: @ 81B9C98 + push {r4,r5,lr} + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =0x00000e6c + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x1 + bl AddBagItem + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x1 + bne _081B9CE0 + ldr r0, [r4] + ldr r1, =0x00000e6c + adds r0, r1 + ldrh r0, [r0] + ldr r1, =gStringVar1 + bl CopyItemName + ldr r0, [r4] + ldr r1, =0x00000e6c + adds r0, r1 + movs r1, 0 + strh r1, [r0] + ldr r0, =gScriptResult + strh r5, [r0] + b _081B9CE6 + .pool +_081B9CE0: + ldr r1, =gScriptResult + movs r0, 0 + strh r0, [r1] +_081B9CE6: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9C98 + + thumb_func_start sub_81B9CF0 +sub_81B9CF0: @ 81B9CF0 + push {lr} + ldr r0, =gStringVar1 + ldr r1, =gUnknown_02038BCA + ldrh r1, [r1] + bl sub_8162E20 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9CF0 + + thumb_func_start sub_81B9D08 +sub_81B9D08: @ 81B9D08 + push {lr} + ldr r1, =gUnknown_086160F8 + ldr r0, =gSpecialVar_0x8004 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9D08 + + thumb_func_start sub_81B9D28 +sub_81B9D28: @ 81B9D28 + push {lr} + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + ldr r2, =0x00000ca8 + adds r0, r2 + movs r2, 0 + strb r2, [r0] + ldr r1, [r1] + ldr r3, =0x00000cb2 + adds r0, r1, r3 + strh r2, [r0] + ldr r0, =0x00000ca9 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + movs r1, 0x4 + ldrsb r1, [r0, r1] + movs r2, 0x5 + ldrsb r2, [r0, r2] + movs r3, 0x1 + negs r3, r3 + movs r0, 0 + bl saved_warp2_set + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9D28 + + thumb_func_start sub_81B9D7C +sub_81B9D7C: @ 81B9D7C + ldr r1, =gScriptResult + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r2, =0x00000e6e + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1] + bx lr + .pool + thumb_func_end sub_81B9D7C + + thumb_func_start sub_81B9D98 +sub_81B9D98: @ 81B9D98 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =gSpecialVar_0x8006 + ldrh r1, [r1] + ldr r2, =0x00000e6e + adds r0, r2 + strh r1, [r0] + bx lr + .pool + thumb_func_end sub_81B9D98 + + thumb_func_start sub_81B9DB4 +sub_81B9DB4: @ 81B9DB4 + push {r4,lr} + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =gSpecialVar_0x8005 + ldrh r1, [r1] + ldr r2, =0x00000ca8 + adds r0, r2 + strb r1, [r0] + movs r0, 0x80 + lsls r0, 7 + movs r1, 0 + bl VarSet + ldr r1, [r4] + ldr r0, =0x00000ca9 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + bl sub_81A4C30 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9DB4 + + thumb_func_start sub_81B9DF8 +sub_81B9DF8: @ 81B9DF8 + push {r4,r5,lr} + ldr r0, =gSaveBlock2Ptr + ldr r4, [r0] + ldr r5, =gUnknown_08616120 + bl Random + ldrh r0, [r5] + ldr r1, =0x00000e6e + adds r4, r1 + strh r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9DF8 + + thumb_func_start sub_81B9E20 +sub_81B9E20: @ 81B9E20 + push {r4,r5,lr} + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =0x00000e6e + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x1 + bl AddBagItem + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x1 + bne _081B9E68 + ldr r0, [r4] + ldr r1, =0x00000e6e + adds r0, r1 + ldrh r0, [r0] + ldr r1, =gStringVar1 + bl CopyItemName + ldr r0, [r4] + ldr r1, =0x00000e6e + adds r0, r1 + movs r1, 0 + strh r1, [r0] + ldr r0, =gScriptResult + strh r5, [r0] + b _081B9E6E + .pool +_081B9E68: + ldr r1, =gScriptResult + movs r0, 0 + strh r0, [r1] +_081B9E6E: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9E20 + + thumb_func_start sub_81B9E78 +sub_81B9E78: @ 81B9E78 + push {lr} + bl ZeroPlayerPartyMons + bl sub_819A4F8 + pop {r0} + bx r0 + thumb_func_end sub_81B9E78 + + thumb_func_start sub_81B9E88 +sub_81B9E88: @ 81B9E88 + push {lr} + bl sub_819DC00 + pop {r0} + bx r0 + thumb_func_end sub_81B9E88 + + thumb_func_start sub_81B9E94 +sub_81B9E94: @ 81B9E94 + push {lr} + movs r2, 0 + ldr r1, =gUnknown_02037318 + ldrb r0, [r1, 0x14] + cmp r0, 0x8 + bne _081B9EB2 + ldr r3, =0xfffffe7f + adds r0, r3, 0 + ldrh r1, [r1, 0x12] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _081B9EB2 + movs r2, 0x1 +_081B9EB2: + adds r0, r2, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81B9E94 + + thumb_func_start sub_81B9EC0 +sub_81B9EC0: @ 81B9EC0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x3C + ldr r1, =gUnknown_0203BC88 + ldr r0, =gSlateportBattleTentTrainers + str r0, [r1] + add r0, sp, 0xC + mov r9, r0 + mov r1, sp + adds r1, 0x18 + str r1, [sp, 0x2C] + ldr r5, =gUnknown_0203BC8C + ldr r4, =gSlateportBattleTentMons + movs r2, 0 + adds r3, r1, 0 + mov r1, r9 + mov r0, sp + movs r6, 0x5 + mov r8, r6 +_081B9EEC: + strh r2, [r0] + strh r2, [r1] + strh r2, [r3] + adds r3, 0x2 + adds r1, 0x2 + adds r0, 0x2 + movs r7, 0x1 + negs r7, r7 + add r8, r7 + mov r6, r8 + cmp r6, 0 + bge _081B9EEC + str r4, [r5] + movs r7, 0 + mov r10, r7 + movs r0, 0 + mov r8, r0 + ldr r1, [sp, 0x2C] + str r1, [sp, 0x30] + mov r2, sp + str r2, [sp, 0x34] + lsls r6, r0, 1 + str r6, [sp, 0x24] + add r6, r9 + str r6, [sp, 0x28] +_081B9F1E: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x46 + bl __umodsi3 + lsls r0, 16 + lsrs r5, r0, 16 + movs r2, 0 + mov r7, r8 + adds r6, r2, r7 + cmp r2, r6 + bge _081B9F7C + ldr r1, [sp, 0x28] + ldrh r0, [r1] + cmp r0, r5 + beq _081B9F7C + ldr r0, =gUnknown_0203BC8C + ldr r1, [r0] + lsls r0, r5, 4 + adds r4, r0, r1 + ldrh r7, [r4] + mov r12, r7 + lsls r3, r2, 1 + ldr r1, [sp, 0x24] + add r1, sp + str r6, [sp, 0x38] +_081B9F56: + ldrh r0, [r1] + cmp r0, r12 + bne _081B9F66 + mov r0, r10 + cmp r0, 0 + bne _081B9F7C + ldrh r7, [r4] + mov r10, r7 +_081B9F66: + adds r3, 0x2 + adds r1, 0x2 + adds r2, 0x1 + ldr r0, [sp, 0x38] + cmp r2, r0 + bge _081B9F7C + mov r7, r9 + adds r0, r7, r3 + ldrh r0, [r0] + cmp r0, r5 + bne _081B9F56 +_081B9F7C: + cmp r2, r6 + bne _081BA01C + movs r2, 0 + cmp r2, r6 + bge _081B9FD4 + ldr r0, =gBattleFrontierHeldItems + mov r12, r0 + ldr r7, =gUnknown_0203BC8C + ldr r1, [sp, 0x24] + ldr r0, [sp, 0x2C] + adds r4, r1, r0 +_081B9F92: + ldrh r3, [r4] + cmp r3, 0 + beq _081B9FCC + ldr r1, [r7] + lsls r0, r5, 4 + adds r1, r0, r1 + ldrb r0, [r1, 0xA] + lsls r0, 1 + add r0, r12 + ldrh r0, [r0] + cmp r3, r0 + bne _081B9FCC + ldrh r0, [r1] + cmp r0, r10 + bne _081B9FD4 + movs r1, 0 + mov r10, r1 + b _081B9FD4 + .pool +_081B9FCC: + adds r4, 0x2 + adds r2, 0x1 + cmp r2, r6 + blt _081B9F92 +_081B9FD4: + cmp r2, r6 + bne _081BA01C + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + mov r2, r8 + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + adds r1, r0 + movs r6, 0xE7 + lsls r6, 4 + adds r1, r6 + strh r5, [r1] + ldr r0, =gUnknown_0203BC8C + ldr r0, [r0] + lsls r1, r5, 4 + adds r1, r0 + ldrh r0, [r1] + ldr r7, [sp, 0x34] + strh r0, [r7] + ldr r2, =gBattleFrontierHeldItems + ldrb r0, [r1, 0xA] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + ldr r1, [sp, 0x30] + strh r0, [r1] + add r3, r9 + strh r5, [r3] + adds r1, 0x2 + str r1, [sp, 0x30] + adds r2, r7, 0 + adds r2, 0x2 + str r2, [sp, 0x34] + movs r6, 0x1 + add r8, r6 +_081BA01C: + mov r7, r8 + cmp r7, 0x6 + beq _081BA024 + b _081B9F1E +_081BA024: + add sp, 0x3C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81B9EC0 + + thumb_func_start sub_81BA040 +sub_81BA040: @ 81BA040 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + movs r0, 0 + mov r10, r0 + ldr r1, =gUnknown_0203BC88 + ldr r0, =gSlateportBattleTentTrainers + str r0, [r1] + ldr r1, =gUnknown_0203BC8C + ldr r0, =gSlateportBattleTentMons + str r0, [r1] + ldr r7, =gSaveBlock2Ptr + ldr r1, =0x0000ffff + mov r8, r1 +_081BA062: + mov r2, r10 + lsls r6, r2, 1 +_081BA066: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1E + bl __umodsi3 + lsls r0, 16 + lsrs r3, r0, 16 + movs r5, 0 + ldr r1, [r7] + ldr r4, =0x00000cb2 + adds r0, r1, r4 + ldrh r0, [r0] + cmp r5, r0 + bge _081BA0AA + ldr r2, =0x00000cb4 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r0, r3 + beq _081BA0AA + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + adds r0, r1, r4 + ldrh r2, [r0] + adds r4, 0x2 + adds r1, r4 +_081BA09C: + adds r1, 0x2 + adds r5, 0x1 + cmp r5, r2 + bge _081BA0AA + ldrh r0, [r1] + cmp r0, r3 + bne _081BA09C +_081BA0AA: + ldr r0, [r7] + ldr r1, =0x00000cb2 + adds r0, r1 + ldrh r0, [r0] + cmp r5, r0 + bne _081BA066 + ldr r2, =gUnknown_02038BCA + strh r3, [r2] + ldrh r3, [r2] + ldr r4, =gUnknown_0203BC88 + ldr r1, [r4] + movs r0, 0x34 + muls r0, r3 + adds r0, r1 + ldr r0, [r0, 0x30] + adds r1, r6, r0 + ldrh r0, [r1] + cmp r0, r8 + beq _081BA0DE + ldr r3, =0x0000ffff +_081BA0D2: + adds r1, 0x2 + movs r6, 0x1 + add r10, r6 + ldrh r0, [r1] + cmp r0, r3 + bne _081BA0D2 +_081BA0DE: + mov r0, r10 + cmp r0, 0x8 + bgt _081BA110 + movs r1, 0 + mov r10, r1 + b _081BA062 + .pool +_081BA110: + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r6, =0x00000cb2 + adds r3, r1, r6 + ldrh r0, [r3] + cmp r0, 0x1 + bhi _081BA12A + lsls r0, 1 + ldr r3, =0x00000cb4 + adds r1, r3 + adds r1, r0 + ldrh r0, [r2] + strh r0, [r1] +_081BA12A: + ldrh r1, [r2] + ldr r2, [r4] + movs r0, 0x34 + muls r0, r1 + adds r0, r2 + ldr r0, [r0, 0x30] + mov r9, r0 + movs r5, 0 + ldr r7, =gUnknown_03001298 + mov r8, sp +_081BA13E: + bl Random + lsls r0, 16 + lsrs r0, 16 + mov r1, r10 + bl __modsi3 + lsls r0, 1 + add r0, r9 + ldrh r0, [r0] + strh r0, [r7] + movs r2, 0 + ldrh r0, [r7] + ldr r4, =gUnknown_0203BC8C + ldr r3, [r4] + lsls r0, 4 + adds r0, r3 + ldr r1, =gSaveBlock2Ptr + ldrh r6, [r0] + ldr r1, [r1] +_081BA166: + movs r4, 0xE7 + lsls r4, 4 + adds r0, r1, r4 + ldrh r0, [r0] + lsls r0, 4 + adds r0, r3 + ldrh r0, [r0] + cmp r6, r0 + beq _081BA180 + adds r1, 0xC + adds r2, 0x1 + cmp r2, 0x5 + ble _081BA166 +_081BA180: + cmp r2, 0x6 + bne _081BA220 + movs r4, 0 + cmp r4, r5 + bge _081BA1B0 + mov r0, sp + ldrh r0, [r0] + cmp r0, r6 + beq _081BA1B0 + ldr r6, =gUnknown_03001298 + ldr r3, =gUnknown_0203BC8C + mov r2, sp +_081BA198: + adds r2, 0x2 + adds r4, 0x1 + cmp r4, r5 + bge _081BA1B0 + ldrh r0, [r6] + ldr r1, [r3] + lsls r0, 4 + adds r0, r1 + ldrh r1, [r2] + ldrh r0, [r0] + cmp r1, r0 + bne _081BA198 +_081BA1B0: + cmp r4, r5 + bne _081BA220 + movs r4, 0 + cmp r4, r5 + bge _081BA1E6 + ldr r6, =gBattleFrontierHeldItems + mov r12, r6 + add r3, sp, 0x8 +_081BA1C0: + ldrh r2, [r3] + cmp r2, 0 + beq _081BA1DE + ldr r1, =gUnknown_03001298 + ldrh r0, [r1] + ldr r6, =gUnknown_0203BC8C + ldr r1, [r6] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0, 0xA] + lsls r0, 1 + add r0, r12 + ldrh r0, [r0] + cmp r2, r0 + beq _081BA1E6 +_081BA1DE: + adds r3, 0x2 + adds r4, 0x1 + cmp r4, r5 + blt _081BA1C0 +_081BA1E6: + cmp r4, r5 + bne _081BA220 + lsls r2, r5, 1 + ldrh r0, [r7] + ldr r1, =gUnknown_0203BC8C + ldr r4, [r1] + lsls r0, 4 + adds r0, r4 + ldrh r0, [r0] + mov r3, r8 + strh r0, [r3] + add r1, sp, 0x8 + adds r1, r2 + ldr r3, =gBattleFrontierHeldItems + ldrh r0, [r7] + lsls r0, 4 + adds r0, r4 + ldrb r0, [r0, 0xA] + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strh r0, [r1] + ldr r0, =gUnknown_03006298 + adds r2, r0 + ldrh r0, [r7] + strh r0, [r2] + movs r4, 0x2 + add r8, r4 + adds r5, 0x1 +_081BA220: + cmp r5, 0x3 + bne _081BA13E + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BA040 + + thumb_func_start Font6Func +@ int Font6Func(struct TextPrinter *x) +Font6Func: @ 81BA250 + push {r4-r6,lr} + adds r6, r0, 0 + adds r4, r6, 0 + adds r4, 0x14 + ldrb r0, [r6, 0x1C] + cmp r0, 0x6 + bls _081BA260 + b _081BA660 +_081BA260: + lsls r0, 2 + ldr r1, =_081BA270 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081BA270: + .4byte _081BA28C + .4byte _081BA554 + .4byte _081BA566 + .4byte _081BA590 + .4byte _081BA5C8 + .4byte _081BA63C + .4byte _081BA64E +_081BA28C: + ldr r2, =gMain + ldrh r1, [r2, 0x2C] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _081BA2A6 + ldrb r1, [r4] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _081BA2A6 + movs r0, 0 + strb r0, [r6, 0x1E] +_081BA2A6: + ldrb r1, [r6, 0x1E] + cmp r1, 0 + beq _081BA2E8 + ldrb r0, [r6, 0x1D] + cmp r0, 0 + beq _081BA2E8 + subs r0, r1, 0x1 + strb r0, [r6, 0x1E] + ldr r0, =gTextFlags + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _081BA2C4 + b _081BA50E +_081BA2C4: + ldrh r1, [r2, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _081BA2D0 + b _081BA50E +_081BA2D0: + ldrb r0, [r4] + movs r1, 0x10 + orrs r0, r1 + strb r0, [r4] + movs r0, 0 + strb r0, [r6, 0x1E] + b _081BA50E + .pool +_081BA2E8: + ldr r2, =gTextFlags + ldrb r1, [r2] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _081BA2FC + movs r0, 0x3 + b _081BA2FE + .pool +_081BA2FC: + ldrb r0, [r6, 0x1D] +_081BA2FE: + strb r0, [r6, 0x1E] + ldr r0, [r6] + ldrb r3, [r0] + adds r0, 0x1 + str r0, [r6] + adds r0, r3, 0 + subs r0, 0xF8 + cmp r0, 0x7 + bls _081BA312 + b _081BA52E +_081BA312: + lsls r0, 2 + ldr r1, =_081BA320 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081BA320: + .4byte _081BA524 + .4byte _081BA512 + .4byte _081BA504 + .4byte _081BA500 + .4byte _081BA36E + .4byte _081BA368 + .4byte _081BA340 + .4byte _081BA660 +_081BA340: + ldrb r0, [r6, 0x6] + strb r0, [r6, 0x8] + ldrb r1, [r6, 0x5] + ldr r0, =gFonts + ldr r2, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r6, 0xB] + ldrb r0, [r0, 0x5] + adds r1, r0 + ldrb r0, [r6, 0x9] + adds r0, r1 + strb r0, [r6, 0x9] +_081BA35E: + movs r0, 0x2 + b _081BA662 + .pool +_081BA368: + ldr r0, [r6] + adds r0, 0x1 + b _081BA4C4 +_081BA36E: + ldr r0, [r6] + ldrb r3, [r0] + adds r0, 0x1 + str r0, [r6] + subs r0, r3, 0x1 + cmp r0, 0xF + bls _081BA37E + b _081BA52E +_081BA37E: + lsls r0, 2 + ldr r1, =_081BA38C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081BA38C: + .4byte _081BA3CC + .4byte _081BA3EE + .4byte _081BA412 + .4byte _081BA42C + .4byte _081BA478 + .4byte _081BA47E + .4byte _081BA35E + .4byte _081BA498 + .4byte _081BA4A8 + .4byte _081BA4BC + .4byte _081BA4C0 + .4byte _081BA4C8 + .4byte _081BA4D2 + .4byte _081BA4DE + .4byte _081BA4EE + .4byte _081BA4C0 +_081BA3CC: + ldr r2, [r6] + ldrb r1, [r2] + lsls r1, 4 + ldrb r3, [r6, 0xC] + movs r0, 0xF + ands r0, r3 + orrs r0, r1 + strb r0, [r6, 0xC] + adds r2, 0x1 + str r2, [r6] + lsls r0, 24 + lsrs r0, 28 + ldrb r2, [r6, 0xD] + lsls r1, r2, 28 + lsrs r1, 28 + lsrs r2, 4 + b _081BA472 +_081BA3EE: + ldr r1, [r6] + ldrb r2, [r1] + movs r0, 0xF + ands r0, r2 + ldrb r3, [r6, 0xD] + movs r2, 0x10 + negs r2, r2 + ands r2, r3 + orrs r2, r0 + strb r2, [r6, 0xD] + adds r1, 0x1 + str r1, [r6] + ldrb r0, [r6, 0xC] + lsrs r0, 4 + lsls r1, r2, 28 + lsrs r1, 28 + lsrs r2, 4 + b _081BA472 +_081BA412: + ldr r1, [r6] + ldrb r0, [r1] + lsls r0, 4 + ldrb r3, [r6, 0xD] + movs r2, 0xF + ands r2, r3 + orrs r2, r0 + strb r2, [r6, 0xD] + adds r1, 0x1 + str r1, [r6] + ldrb r0, [r6, 0xC] + lsrs r0, 4 + b _081BA46A +_081BA42C: + ldr r3, [r6] + ldrb r1, [r3] + lsls r1, 4 + ldrb r4, [r6, 0xC] + movs r2, 0xF + adds r0, r2, 0 + ands r0, r4 + orrs r0, r1 + strb r0, [r6, 0xC] + adds r5, r3, 0x1 + str r5, [r6] + ldrb r3, [r3, 0x1] + adds r1, r2, 0 + ands r1, r3 + ldrb r4, [r6, 0xD] + movs r3, 0x10 + negs r3, r3 + ands r3, r4 + orrs r3, r1 + strb r3, [r6, 0xD] + adds r4, r5, 0x1 + str r4, [r6] + ldrb r1, [r5, 0x1] + lsls r1, 4 + ands r2, r3 + orrs r2, r1 + strb r2, [r6, 0xD] + adds r4, 0x1 + str r4, [r6] + lsls r0, 24 + lsrs r0, 28 +_081BA46A: + lsls r1, r2, 28 + lsrs r1, 28 + lsls r2, 24 + lsrs r2, 28 +_081BA472: + bl GenerateFontHalfRowLookupTable + b _081BA35E +_081BA478: + ldr r0, [r6] + adds r0, 0x1 + b _081BA4C4 +_081BA47E: + ldr r0, [r6] + ldrb r0, [r0] + movs r1, 0xF + ands r1, r0 + ldrb r2, [r4] + movs r0, 0x10 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + ldr r0, [r6] + adds r0, 0x1 + b _081BA4C4 +_081BA498: + ldr r0, [r6] + ldrb r1, [r0] + strb r1, [r6, 0x1E] + adds r0, 0x1 + str r0, [r6] + movs r0, 0x6 + strb r0, [r6, 0x1C] + b _081BA35E +_081BA4A8: + movs r0, 0x1 + strb r0, [r6, 0x1C] + ldrb r1, [r2] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _081BA50E + movs r0, 0 + strb r0, [r4, 0x2] + b _081BA50E +_081BA4BC: + movs r0, 0x5 + b _081BA64A +_081BA4C0: + ldr r0, [r6] + adds r0, 0x2 +_081BA4C4: + str r0, [r6] + b _081BA35E +_081BA4C8: + ldr r1, [r6] + adds r0, r1, 0x1 + str r0, [r6] + ldrb r3, [r1, 0x1] + b _081BA52E +_081BA4D2: + ldr r1, [r6] + ldrb r0, [r1] + ldrb r2, [r6, 0x6] + adds r0, r2 + strb r0, [r6, 0x8] + b _081BA4E8 +_081BA4DE: + ldr r1, [r6] + ldrb r0, [r1] + ldrb r2, [r6, 0x7] + adds r0, r2 + strb r0, [r6, 0x9] +_081BA4E8: + adds r1, 0x1 + str r1, [r6] + b _081BA35E +_081BA4EE: + ldrb r0, [r6, 0x4] + ldrb r2, [r6, 0xD] + lsls r2, 28 + lsrs r1, r2, 4 + orrs r1, r2 + lsrs r1, 24 + bl FillWindowPixelBuffer + b _081BA35E +_081BA500: + movs r0, 0x2 + b _081BA506 +_081BA504: + movs r0, 0x3 +_081BA506: + strb r0, [r6, 0x1C] + adds r0, r6, 0 + bl TextPrinterInitDownArrowCounters +_081BA50E: + movs r0, 0x3 + b _081BA662 +_081BA512: + ldr r0, [r6] + ldrb r3, [r0] + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + orrs r3, r1 + adds r0, 0x1 + str r0, [r6] + b _081BA52E +_081BA524: + ldr r0, [r6] + adds r0, 0x1 + str r0, [r6] + movs r0, 0 + b _081BA662 +_081BA52E: + adds r0, r3, 0 + bl DecompressGlyphFont6 + adds r0, r6, 0 + bl CopyGlyphToWindow + ldr r0, =gUnknown_03002F90 + adds r0, 0x80 + ldrb r1, [r6, 0xA] + ldrb r0, [r0] + adds r1, r0 + ldrb r0, [r6, 0x8] + adds r0, r1 + strb r0, [r6, 0x8] + movs r0, 0 + b _081BA662 + .pool +_081BA554: + adds r0, r6, 0 + bl TextPrinterWait + lsls r0, 16 + cmp r0, 0 + beq _081BA50E + movs r0, 0 + strb r0, [r6, 0x1C] + b _081BA50E +_081BA566: + adds r0, r6, 0 + bl TextPrinterWaitWithDownArrow + lsls r0, 16 + cmp r0, 0 + beq _081BA50E + ldrb r0, [r6, 0x4] + ldrb r2, [r6, 0xD] + lsls r2, 28 + lsrs r1, r2, 4 + orrs r1, r2 + lsrs r1, 24 + bl FillWindowPixelBuffer + ldrb r0, [r6, 0x6] + movs r1, 0 + strb r0, [r6, 0x8] + ldrb r0, [r6, 0x7] + strb r0, [r6, 0x9] + strb r1, [r6, 0x1C] + b _081BA50E +_081BA590: + adds r0, r6, 0 + bl TextPrinterWaitWithDownArrow + lsls r0, 16 + cmp r0, 0 + beq _081BA50E + adds r0, r6, 0 + bl TextPrinterClearDownArrow + ldrb r1, [r6, 0x5] + ldr r0, =gFonts + ldr r2, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r6, 0xB] + ldrb r0, [r0, 0x5] + adds r1, r0 + strb r1, [r6, 0x1F] + ldrb r0, [r6, 0x6] + strb r0, [r6, 0x8] + movs r0, 0x4 + strb r0, [r6, 0x1C] + b _081BA50E + .pool +_081BA5C8: + ldrb r2, [r6, 0x1F] + cmp r2, 0 + beq _081BA638 + ldr r4, =gUnknown_08616124 + ldr r5, =gSaveBlock2Ptr + ldr r0, [r5] + ldrb r0, [r0, 0x14] + lsls r1, r0, 29 + lsrs r0, r1, 29 + adds r0, r4 + ldrb r0, [r0] + cmp r2, r0 + bcs _081BA604 + ldrb r0, [r6, 0x4] + ldrb r1, [r6, 0xD] + lsls r1, 28 + lsrs r3, r1, 4 + orrs r3, r1 + lsrs r3, 24 + movs r1, 0 + bl ScrollWindow + movs r0, 0 + strb r0, [r6, 0x1F] + b _081BA62E + .pool +_081BA604: + ldrb r0, [r6, 0x4] + lsrs r1, 29 + adds r1, r4 + ldrb r2, [r1] + ldrb r1, [r6, 0xD] + lsls r1, 28 + lsrs r3, r1, 4 + orrs r3, r1 + lsrs r3, 24 + movs r1, 0 + bl ScrollWindow + ldr r0, [r5] + ldrb r0, [r0, 0x14] + lsls r0, 29 + lsrs r0, 29 + adds r0, r4 + ldrb r1, [r6, 0x1F] + ldrb r0, [r0] + subs r1, r0 + strb r1, [r6, 0x1F] +_081BA62E: + ldrb r0, [r6, 0x4] + movs r1, 0x2 + bl CopyWindowToVram + b _081BA50E +_081BA638: + strb r2, [r6, 0x1C] + b _081BA50E +_081BA63C: + bl IsSEPlaying + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _081BA64A + b _081BA50E +_081BA64A: + strb r0, [r6, 0x1C] + b _081BA50E +_081BA64E: + ldrb r0, [r6, 0x1E] + adds r1, r0, 0 + cmp r1, 0 + beq _081BA65C + subs r0, 0x1 + strb r0, [r6, 0x1E] + b _081BA50E +_081BA65C: + strb r1, [r6, 0x1C] + b _081BA50E +_081BA660: + movs r0, 0x1 +_081BA662: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end Font6Func + + thumb_func_start DecompressGlyphFont6 +DecompressGlyphFont6: @ 81BA668 + push {r4,r5,lr} + lsls r0, 16 + lsrs r2, r0, 19 + lsls r2, 9 + movs r1, 0xE0 + lsls r1, 11 + ands r1, r0 + lsrs r1, 11 + ldr r0, =gFont6BrailleGlyphs + adds r1, r0 + adds r5, r2, r1 + ldr r4, =gUnknown_03002F90 + adds r0, r5, 0 + adds r1, r4, 0 + bl DecompressGlyphTile + adds r0, r5, 0 + adds r0, 0x10 + adds r1, r4, 0 + adds r1, 0x20 + bl DecompressGlyphTile + movs r1, 0x80 + lsls r1, 1 + adds r0, r5, r1 + adds r1, r4, 0 + adds r1, 0x40 + bl DecompressGlyphTile + movs r1, 0x88 + lsls r1, 1 + adds r0, r5, r1 + adds r1, r4, 0 + adds r1, 0x60 + bl DecompressGlyphTile + adds r0, r4, 0 + adds r0, 0x80 + movs r1, 0x10 + strb r1, [r0] + adds r0, 0x1 + strb r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end DecompressGlyphFont6 + + thumb_func_start GetGlyphWidthFont6 +GetGlyphWidthFont6: @ 81BA6CC + movs r0, 0x10 + bx lr + thumb_func_end GetGlyphWidthFont6 + + + .align 2, 0 @ Don't pad with nop. \ No newline at end of file diff --git a/asm/rom_81BAD84.s b/asm/rom_81BAD84.s index 757831b5ed..2a95feed49 100644 --- a/asm/rom_81BAD84.s +++ b/asm/rom_81BAD84.s @@ -53,63090 +53,5 @@ sub_81BAD84: @ 81BAD84 .pool thumb_func_end sub_81BAD84 - thumb_func_start nullsub_77 -nullsub_77: @ 81BADF0 - bx lr - thumb_func_end nullsub_77 - - thumb_func_start sub_81BADF4 -sub_81BADF4: @ 81BADF4 - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_exec_buffer_A_ch0_tbl3 - str r1, [r0] - bx lr - .pool - thumb_func_end sub_81BADF4 - - thumb_func_start bx_exec_buffer_A_ch0_tbl3 -bx_exec_buffer_A_ch0_tbl3: @ 81BAE10 - push {lr} - ldr r2, =gUnknown_02024068 - ldr r1, =gBitTable - ldr r0, =gUnknown_02024064 - ldrb r3, [r0] - lsls r0, r3, 2 - adds r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _081BAE5C - ldr r0, =gUnknown_02023064 - lsls r1, r3, 9 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x38 - bhi _081BAE58 - ldr r0, =gUnknown_08617170 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 - b _081BAE5C - .pool -_081BAE58: - bl dp01_tbl3_exec_completed -_081BAE5C: - pop {r0} - bx r0 - thumb_func_end bx_exec_buffer_A_ch0_tbl3 - - thumb_func_start sub_81BAE60 -sub_81BAE60: @ 81BAE60 - push {lr} - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _081BAE84 - bl dp01_tbl3_exec_completed -_081BAE84: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BAE60 - - thumb_func_start sub_81BAE98 -sub_81BAE98: @ 81BAE98 - push {r4-r6,lr} - ldr r6, =gUnknown_02020630 - ldr r5, =gUnknown_020241E4 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r6, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _081BAEE8 - movs r0, 0 - bl nullsub_25 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl obj_free_rotscale_entry - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl RemoveObjectAndFreeTiles - bl dp01_tbl3_exec_completed -_081BAEE8: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BAE98 - - thumb_func_start sub_81BAF00 -sub_81BAF00: @ 81BAF00 - push {r4,lr} - ldr r4, =gUnknown_020244D0 - ldr r1, [r4] - ldr r3, =gUnknown_02024064 - ldrb r0, [r3] - ldr r2, [r1, 0x4] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x9] - subs r0, 0x1 - strb r0, [r1, 0x9] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _081BAF38 - ldr r0, [r4] - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strb r1, [r0, 0x9] - bl dp01_tbl3_exec_completed -_081BAF38: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BAF00 - - thumb_func_start sub_81BAF48 -sub_81BAF48: @ 81BAF48 - push {r4-r6,lr} - movs r6, 0 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _081BAF6C - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _081BAFA0 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081BAFA0 -_081BAF6C: - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_03005D70 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _081BAFD8 - b _081BAFD6 - .pool -_081BAFA0: - ldr r2, =gUnknown_02020630 - ldr r5, =gUnknown_03005D70 - ldr r0, =gUnknown_02024064 - ldrb r3, [r0] - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r2, 0 - adds r4, 0x1C - adds r0, r4 - ldr r2, [r0] - ldr r0, =DummyObjectCallback - cmp r2, r0 - bne _081BAFD8 - movs r0, 0x2 - eors r3, r0 - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - cmp r0, r2 - bne _081BAFD8 -_081BAFD6: - movs r6, 0x1 -_081BAFD8: - bl sub_80A36C8 - lsls r0, 24 - cmp r0, 0 - beq _081BAFE4 - movs r6, 0 -_081BAFE4: - cmp r6, 0 - beq _081BB00A - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r3, =gUnknown_02024064 - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - strb r1, [r0, 0x9] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r3] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_81BAF00 - str r1, [r0] -_081BB00A: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BAF48 - - thumb_func_start sub_81BB02C -sub_81BB02C: @ 81BB02C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, =gUnknown_020244D0 - mov r12, r0 - ldr r0, [r0] - ldr r7, =gUnknown_02024064 - ldrb r2, [r7] - ldr r3, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r4, r0, r3 - ldrb r1, [r4] - movs r5, 0x8 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _081BB058 - b _081BB196 -_081BB058: - movs r1, 0x2 - mov r8, r1 - adds r1, r2, 0 - mov r0, r8 - eors r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0] - adds r0, r5, 0 - ands r0, r1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - beq _081BB07A - b _081BB196 -_081BB07A: - ldr r1, =gUnknown_02020630 - mov r10, r1 - ldr r0, =gUnknown_03005D7C - mov r9, r0 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - mov r5, r10 - adds r5, 0x1C - adds r0, r5 - ldr r3, [r0] - ldr r0, =DummyObjectCallback - cmp r3, r0 - bne _081BB196 - ldr r0, =gUnknown_020241E4 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r0, [r0] - cmp r0, r3 - bne _081BB196 - ldrb r0, [r4, 0x9] - adds r0, 0x1 - strb r0, [r4, 0x9] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081BB196 - mov r1, r12 - ldr r0, [r1] - ldrb r1, [r7] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strb r6, [r0, 0x9] - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _081BB134 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - bne _081BB134 - ldrb r0, [r7] - mov r1, r8 - eors r0, r1 - add r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r10 - bl RemoveObjectAndFreeTiles - ldr r4, =gUnknown_03005D70 - ldrb r0, [r7] - mov r1, r8 - eors r1, r0 - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, =gUnknown_0202406E - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gPlayerParty - adds r1, r2 - movs r2, 0 - bl healthbar_draw_field_maybe - ldrb r0, [r7] - mov r1, r8 - eors r0, r1 - bl sub_8076918 - ldrb r0, [r7] - mov r1, r8 - eors r0, r1 - adds r0, r4 - ldrb r0, [r0] - bl sub_80729D0 -_081BB134: - ldr r1, =gUnknown_03005D7C - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - bl RemoveObjectAndFreeTiles - ldr r5, =gUnknown_03005D70 - ldrb r1, [r4] - adds r0, r1, r5 - ldrb r0, [r0] - ldr r2, =gUnknown_0202406E - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gPlayerParty - adds r1, r2 - movs r2, 0 - bl healthbar_draw_field_maybe - ldrb r0, [r4] - bl sub_8076918 - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl sub_80729D0 - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r2, [r0, 0x8] - ldrb r1, [r2, 0x9] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x9] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_81BAF48 - str r1, [r0] -_081BB196: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BB02C - - thumb_func_start sub_81BB1D4 -sub_81BB1D4: @ 81BB1D4 - push {lr} - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 27 - cmp r0, 0 - bge _081BB202 - movs r2, 0x24 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _081BB202 - bl dp01_tbl3_exec_completed -_081BB202: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BB1D4 - - thumb_func_start bx_t3_healthbar_update -bx_t3_healthbar_update: @ 81BB214 - push {r4-r6,lr} - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - ldr r6, =gUnknown_03005D70 - adds r1, r0, r6 - ldrb r1, [r1] - movs r2, 0 - movs r3, 0 - bl sub_8074AA0 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r5] - adds r0, r6 - ldrb r0, [r0] - bl sub_80729D0 - lsls r4, 16 - asrs r1, r4, 16 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _081BB25C - ldrb r0, [r5] - adds r0, r6 - ldrb r0, [r0] - movs r2, 0 - bl heathbar_draw_hp - b _081BB276 - .pool -_081BB25C: - ldr r2, =gUnknown_0202406E - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, =gPlayerParty - adds r0, r2 - bl sub_805E990 - bl dp01_tbl3_exec_completed -_081BB276: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end bx_t3_healthbar_update - - thumb_func_start sub_81BB284 -sub_81BB284: @ 81BB284 - push {lr} - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _081BB296 - bl dp01_tbl3_exec_completed -_081BB296: - pop {r0} - bx r0 - thumb_func_end sub_81BB284 - - thumb_func_start sub_81BB29C -sub_81BB29C: @ 81BB29C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r1, =gTasks - lsls r0, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - mov r8, r0 - ldrb r0, [r0, 0x8] - mov r10, r0 - mov r1, r8 - ldrb r7, [r1, 0xC] - str r7, [sp, 0x8] - ldrh r2, [r1, 0xA] - str r2, [sp, 0xC] - bl battle_type_is_double - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081BB2E2 - ldr r1, =gUnknown_0202406E - lsls r0, r7, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r10, r0 - bne _081BB2E2 - b _081BB3F8 -_081BB2E2: - movs r0, 0x64 - mov r1, r10 - muls r1, r0 - ldr r0, =gPlayerParty - adds r6, r1, r0 - adds r0, r6, 0 - movs r1, 0xB - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r6, 0 - movs r1, 0x38 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - movs r1, 0x19 - bl GetMonData - str r0, [sp, 0x4] - ldr r3, =gExperienceTables - adds r4, 0x1 - lsls r4, 2 - ldr r2, =gBaseStats - lsls r1, r5, 3 - subs r1, r5 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1, 0x13] - movs r1, 0xCA - lsls r1, 1 - muls r1, r2 - adds r4, r1 - adds r4, r3 - ldr r2, [r4] - str r2, [sp] - ldr r3, [sp, 0xC] - lsls r1, r3, 16 - asrs r1, 16 - adds r0, r1 - cmp r0, r2 - bcc _081BB3D0 - adds r0, r6, 0 - movs r1, 0x19 - mov r2, sp - bl pokemon_setattr - adds r0, r6, 0 - bl pokemon_calc_effective_stats - ldr r2, [sp] - add r0, sp, 0x4 - ldrh r0, [r0] - subs r2, r0 - ldr r0, [sp, 0xC] - subs r2, r0, r2 - ldr r4, =gUnknown_02024064 - ldrb r5, [r4] - strb r7, [r4] - lsls r2, 16 - lsrs r2, 16 - movs r0, 0x1 - movs r1, 0xB - bl dp01_build_cmdbuf_x21_a_bb - strb r5, [r4] - bl battle_type_is_double - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081BB3B8 - ldr r2, =gUnknown_0202406E - lsls r0, r7, 1 - adds r0, r2 - mov r1, r10 - ldrh r0, [r0] - cmp r1, r0 - beq _081BB396 - movs r0, 0x2 - eors r7, r0 - lsls r0, r7, 1 - adds r0, r2 - ldrh r0, [r0] - cmp r1, r0 - bne _081BB3B8 -_081BB396: - ldr r0, =sub_81BB628 - b _081BB3FA - .pool -_081BB3B8: - ldr r0, =gTasks - mov r2, r9 - lsls r1, r2, 2 - add r1, r9 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81BB740 - b _081BB3FC - .pool -_081BB3D0: - str r0, [sp, 0x4] - add r2, sp, 0x4 - adds r0, r6, 0 - movs r1, 0x19 - bl pokemon_setattr - ldr r1, =gUnknown_03005D60 - ldr r3, [sp, 0x8] - lsls r0, r3, 2 - adds r0, r1 - ldr r1, =sub_81BB284 - str r1, [r0] - mov r0, r9 - bl DestroyTask - b _081BB3FE - .pool -_081BB3F8: - ldr r0, =sub_81BB414 -_081BB3FA: - mov r1, r8 -_081BB3FC: - str r0, [r1] -_081BB3FE: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BB29C - - thumb_func_start sub_81BB414 -sub_81BB414: @ 81BB414 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gTasks - lsls r2, r0, 2 - mov r8, r2 - add r8, r0 - mov r0, r8 - lsls r0, 3 - mov r8, r0 - add r8, r1 - mov r2, r8 - ldrb r1, [r2, 0x8] - movs r0, 0xA - ldrsh r2, [r2, r0] - mov r9, r2 - mov r2, r8 - ldrb r2, [r2, 0xC] - mov r10, r2 - movs r0, 0x64 - adds r6, r1, 0 - muls r6, r0 - ldr r0, =gPlayerParty - adds r6, r0 - adds r0, r6, 0 - movs r1, 0x38 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - movs r1, 0xB - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r6, 0 - movs r1, 0x19 - bl GetMonData - adds r3, r0, 0 - ldr r6, =gExperienceTables - lsls r1, r4, 2 - ldr r2, =gBaseStats - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - adds r0, r2 - ldrb r2, [r0, 0x13] - movs r0, 0xCA - lsls r0, 1 - muls r0, r2 - adds r1, r0 - adds r1, r6 - ldr r1, [r1] - subs r3, r1 - adds r4, 0x1 - lsls r4, 2 - adds r4, r0 - adds r4, r6 - ldr r2, [r4] - subs r2, r1 - ldr r0, =gUnknown_03005D70 - add r0, r10 - ldrb r1, [r0] - mov r0, r9 - negs r0, r0 - str r0, [sp] - mov r0, r10 - bl sub_807294C - movs r0, 0x21 - bl audio_play - ldr r0, =sub_81BB4E4 - mov r1, r8 - str r0, [r1] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BB414 - - thumb_func_start sub_81BB4E4 -sub_81BB4E4: @ 81BB4E4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r1, =gTasks - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r6, r0, r1 - ldrh r1, [r6, 0x1C] - movs r2, 0x1C - ldrsh r0, [r6, r2] - cmp r0, 0xC - bgt _081BB514 - adds r0, r1, 0x1 - strh r0, [r6, 0x1C] - b _081BB610 - .pool -_081BB514: - ldrb r0, [r6, 0x8] - mov r9, r0 - ldrh r2, [r6, 0xA] - mov r10, r2 - ldrb r7, [r6, 0xC] - ldr r5, =gUnknown_03005D70 - adds r5, r7, r5 - ldrb r1, [r5] - adds r0, r7, 0 - movs r2, 0x1 - movs r3, 0 - bl sub_8074AA0 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r5] - bl sub_80729D0 - lsls r4, 16 - asrs r4, 16 - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - bne _081BB610 - movs r0, 0x21 - bl m4aSongNumStop - movs r0, 0x64 - mov r1, r9 - muls r1, r0 - ldr r0, =gPlayerParty - adds r5, r1, r0 - 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, 0x19 - bl GetMonData - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - ldr r3, =gExperienceTables - adds r4, 0x1 - lsls r4, 2 - ldr r2, =gBaseStats - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r1, [r1, 0x13] - movs r0, 0xCA - lsls r0, 1 - muls r0, r1 - adds r4, r0 - adds r4, r3 - ldr r1, [r4] - str r1, [sp] - mov r2, r10 - lsls r0, r2, 16 - asrs r4, r0, 16 - ldr r0, [sp, 0x4] - adds r0, r4 - cmp r0, r1 - blt _081BB5F4 - adds r0, r5, 0 - movs r1, 0x19 - mov r2, sp - bl pokemon_setattr - adds r0, r5, 0 - bl pokemon_calc_effective_stats - ldr r2, [sp] - add r0, sp, 0x4 - ldrh r0, [r0] - subs r2, r0 - subs r2, r4, r2 - ldr r4, =gUnknown_02024064 - ldrb r5, [r4] - strb r7, [r4] - lsls r2, 16 - lsrs r2, 16 - movs r0, 0x1 - movs r1, 0xB - bl dp01_build_cmdbuf_x21_a_bb - strb r5, [r4] - ldr r0, =sub_81BB628 - str r0, [r6] - b _081BB610 - .pool -_081BB5F4: - str r0, [sp, 0x4] - add r2, sp, 0x4 - adds r0, r5, 0 - movs r1, 0x19 - bl pokemon_setattr - ldr r1, =gUnknown_03005D60 - lsls r0, r7, 2 - adds r0, r1 - ldr r1, =sub_81BB284 - str r1, [r0] - mov r0, r8 - bl DestroyTask -_081BB610: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BB4E4 - - thumb_func_start sub_81BB628 -sub_81BB628: @ 81BB628 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrb r4, [r0, 0xC] - ldrb r6, [r0, 0x8] - bl battle_type_is_double - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081BB65C - ldr r1, =gUnknown_0202406E - movs r0, 0x2 - adds r2, r4, 0 - eors r2, r0 - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r6, r0 - bne _081BB65C - adds r4, r2, 0 -_081BB65C: - adds r0, r4, 0 - adds r1, r4, 0 - adds r2, r4, 0 - movs r3, 0 - bl move_anim_start_t4 - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81BB688 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BB628 - - thumb_func_start sub_81BB688 -sub_81BB688: @ 81BB688 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r2, r0, r1 - ldrb r5, [r2, 0xC] - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r1, [r0, 0x4] - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _081BB72A - ldrb r4, [r2, 0x8] - movs r0, 0x64 - adds r1, r4, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r7, r1, r0 - adds r0, r7, 0 - movs r1, 0x38 - bl GetMonData - bl battle_type_is_double - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081BB708 - ldr r1, =gUnknown_0202406E - movs r0, 0x2 - adds r2, r5, 0 - eors r2, r0 - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r4, r0 - bne _081BB708 - ldr r0, =gUnknown_03005D70 - adds r0, r2, r0 - ldrb r0, [r0] - adds r1, r7, 0 - movs r2, 0 - bl healthbar_draw_field_maybe - b _081BB71C - .pool -_081BB708: - ldr r0, =gUnknown_03005D70 - adds r0, r5, r0 - ldrb r0, [r0] - movs r1, 0x64 - muls r1, r4 - ldr r2, =gPlayerParty - adds r1, r2 - movs r2, 0 - bl healthbar_draw_field_maybe -_081BB71C: - ldr r0, =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81BB740 - str r0, [r1] -_081BB72A: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BB688 - - thumb_func_start sub_81BB740 -sub_81BB740: @ 81BB740 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldrb r1, [r4, 0x8] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x38 - bl GetMonData - ldrb r0, [r4, 0xC] - ldr r1, =gUnknown_03005D60 - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_81BB284 - str r1, [r0] - adds r0, r5, 0 - bl DestroyTask - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BB740 - - thumb_func_start sub_81BB78C -sub_81BB78C: @ 81BB78C - push {r4-r6,lr} - ldr r6, =gUnknown_02020630 - ldr r5, =gUnknown_020241E4 - ldr r4, =gUnknown_02024064 - ldrb r2, [r4] - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r3, 0x22 - ldrsh r1, [r0, r3] - movs r3, 0x26 - ldrsh r0, [r0, r3] - adds r1, r0 - cmp r1, 0xA0 - ble _081BB808 - ldr r1, =gUnknown_0202406E - lsls r0, r2, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl nullsub_24 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl rotscale_free_entry - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl RemoveObjectAndFreeTiles - ldr r1, =gUnknown_03005D70 - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - bl sub_8072984 - bl dp01_tbl3_exec_completed -_081BB808: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BB78C - - thumb_func_start sub_81BB828 -sub_81BB828: @ 81BB828 - push {r4-r6,lr} - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r6, =gUnknown_02024064 - ldrb r2, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _081BB87C - ldr r5, =gUnknown_020241E4 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - bl obj_free_rotscale_entry - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl RemoveObjectAndFreeTiles - ldr r1, =gUnknown_03005D70 - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl sub_8072984 - bl dp01_tbl3_exec_completed -_081BB87C: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BB828 - - thumb_func_start sub_81BB898 -sub_81BB898: @ 81BB898 - push {lr} - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _081BB8AA - bl dp01_tbl3_exec_completed -_081BB8AA: - pop {r0} - bx r0 - thumb_func_end sub_81BB898 - - thumb_func_start bx_blink_t3 -bx_blink_t3: @ 81BB8B0 - push {r4,lr} - ldr r1, =gUnknown_020241E4 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - ldr r2, =gUnknown_02020630 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x20 - bne _081BB8FC - movs r3, 0 - movs r0, 0 - strh r0, [r4, 0x30] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - subs r0, 0x5 - ands r0, r1 - strb r0, [r2] - ldr r0, =gUnknown_020244B9 - strb r3, [r0] - bl dp01_tbl3_exec_completed - b _081BB926 - .pool -_081BB8FC: - ldrh r0, [r4, 0x30] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _081BB920 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_081BB920: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] -_081BB926: - pop {r4} - pop {r0} - bx r0 - thumb_func_end bx_blink_t3 - - thumb_func_start sub_81BB92C -sub_81BB92C: @ 81BB92C - push {r4,lr} - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_03005D70 - ldr r4, =gUnknown_02024064 - ldrb r3, [r4] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _081BB97E - adds r0, r3, 0 - bl sub_805E408 - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldrb r2, [r4] - ldr r1, [r0] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _081BB972 - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x6 - bl move_anim_start_t4 -_081BB972: - ldr r0, =gUnknown_03005D60 - ldrb r1, [r4] - lsls r1, 2 - adds r1, r0 - ldr r0, =dp01t_35_3_free_vram - str r0, [r1] -_081BB97E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BB92C - - thumb_func_start dp01t_35_3_free_vram -dp01t_35_3_free_vram: @ 81BB9A0 - push {lr} - ldr r0, =gUnknown_020244D0 - ldr r1, [r0] - ldr r0, =gUnknown_02024064 - ldrb r3, [r0] - ldr r1, [r1, 0x4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _081BB9DC - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _081BB9DC - bl dp01_tbl3_exec_completed -_081BB9DC: - pop {r0} - bx r0 - .pool - thumb_func_end dp01t_35_3_free_vram - - thumb_func_start sub_81BB9F4 -sub_81BB9F4: @ 81BB9F4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r3, =gUnknown_020244D0 - ldr r0, [r3] - ldr r7, =gUnknown_02024064 - ldrb r1, [r7] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r2, r0, r2 - ldrb r1, [r2, 0x1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081BBAB0 - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - ldr r0, [r3] - ldrb r2, [r7] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r4, =0x000027f9 - adds r0, r4, 0 - bl FreeObjectTilesByTag - adds r0, r4, 0 - bl FreeObjectPaletteByTag - ldr r0, =c3_0802FDF4 - movs r1, 0xA - bl CreateTask - ldr r0, =gUnknown_0202406E - mov r8, r0 - ldrb r1, [r7] - lsls r0, r1, 1 - add r0, r8 - ldrh r0, [r0] - movs r6, 0x64 - muls r0, r6 - ldr r5, =gPlayerParty - adds r0, r5 - bl sub_805E990 - ldr r1, =gUnknown_020241E4 - ldrb r0, [r7] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - movs r1, 0 - bl StartObjectImageAnim - ldr r4, =gUnknown_03005D70 - ldrb r1, [r7] - adds r0, r1, r4 - ldrb r0, [r0] - lsls r1, 1 - add r1, r8 - ldrh r1, [r1] - muls r1, r6 - adds r1, r5 - movs r2, 0 - bl healthbar_draw_field_maybe - ldrb r0, [r7] - bl sub_8076918 - ldrb r0, [r7] - adds r0, r4 - ldrb r0, [r0] - bl sub_80729D0 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_81BB92C - str r1, [r0] -_081BBAB0: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BB9F4 - - thumb_func_start sub_81BBAE8 -sub_81BBAE8: @ 81BBAE8 - push {r4-r6,lr} - ldr r6, =gUnknown_020244D0 - ldr r0, [r6] - ldr r4, =gUnknown_02024064 - ldrb r2, [r4] - ldr r1, [r0, 0x4] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x88 - ands r0, r1 - cmp r0, 0 - bne _081BBB1A - ldr r0, =gUnknown_0202406E - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8172EF0 -_081BBB1A: - ldr r5, =gUnknown_02020630 - ldr r0, =gUnknown_03005D7C - ldrb r2, [r4] - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r3, r0, 2 - adds r0, r5, 0 - adds r0, 0x1C - adds r0, r3, r0 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _081BBB60 - ldr r0, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _081BBB60 - adds r0, r3, r5 - bl RemoveObjectAndFreeTiles - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_81BB9F4 - str r1, [r0] -_081BBB60: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BBAE8 - - thumb_func_start dp01_tbl3_exec_completed -dp01_tbl3_exec_completed: @ 81BBB8C - push {r4,lr} - sub sp, 0x4 - ldr r1, =gUnknown_03005D60 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_exec_buffer_A_ch0_tbl3 - str r1, [r0] - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081BBBE0 - bl link_get_multiplayer_id - mov r1, sp - strb r0, [r1] - movs r0, 0x2 - movs r1, 0x4 - mov r2, sp - bl dp01_prepare_buffer_wireless_probably - ldr r1, =gUnknown_02023064 - ldrb r0, [r4] - lsls r0, 9 - adds r0, r1 - movs r1, 0x38 - strb r1, [r0] - b _081BBBF2 - .pool -_081BBBE0: - ldr r2, =gUnknown_02024068 - ldr r1, =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldr r0, [r2] - bics r0, r1 - str r0, [r2] -_081BBBF2: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end dp01_tbl3_exec_completed - - thumb_func_start sub_81BBC04 -sub_81BBC04: @ 81BBC04 - push {lr} - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _081BBC26 - bl dp01_tbl3_exec_completed -_081BBC26: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BBC04 - - thumb_func_start bx_80E8A6C -bx_80E8A6C: @ 81BBC34 - push {lr} - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _081BBC56 - bl dp01_tbl3_exec_completed -_081BBC56: - pop {r0} - bx r0 - .pool - thumb_func_end bx_80E8A6C - - thumb_func_start dp01t_00_3_getattr -dp01t_00_3_getattr: @ 81BBC64 - push {r4-r6,lr} - sub sp, 0x100 - movs r6, 0 - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - bne _081BBC9C - ldr r0, =gUnknown_0202406E - lsls r1, r2, 1 - adds r1, r0 - ldrb r0, [r1] - mov r1, sp - bl dp01_getattr_by_ch1_for_player_pokemon - adds r6, r0, 0 - b _081BBCBE - .pool -_081BBC9C: - ldrb r4, [r1] - movs r5, 0 -_081BBCA0: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _081BBCB6 - lsls r0, r5, 24 - lsrs r0, 24 - mov r2, sp - adds r1, r2, r6 - bl dp01_getattr_by_ch1_for_player_pokemon - adds r6, r0 -_081BBCB6: - lsrs r4, 1 - adds r5, 0x1 - cmp r5, 0x5 - ble _081BBCA0 -_081BBCBE: - lsls r1, r6, 16 - lsrs r1, 16 - movs r0, 0x1 - mov r2, sp - bl dp01_build_cmdbuf_x1D_1D_numargs_varargs - bl dp01_tbl3_exec_completed - add sp, 0x100 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end dp01t_00_3_getattr - - thumb_func_start dp01_getattr_by_ch1_for_player_pokemon -dp01_getattr_by_ch1_for_player_pokemon: @ 81BBCD8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x90 - adds r7, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - ldr r2, =gUnknown_02023064 - ldr r3, =gUnknown_02024064 - ldrb r0, [r3] - lsls r0, 9 - adds r1, r2, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3B - bls _081BBD02 - bl _081BC46E -_081BBD02: - lsls r0, 2 - ldr r1, =_081BBD18 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081BBD18: - .4byte _081BBE08 - .4byte _081BC02C - .4byte _081BC03C - .4byte _081BC04C - .4byte _081BC0B4 - .4byte _081BC0B4 - .4byte _081BC0B4 - .4byte _081BC0B4 - .4byte _081BC0D0 - .4byte _081BC10C - .4byte _081BC10C - .4byte _081BC10C - .4byte _081BC10C - .4byte _081BC46E - .4byte _081BC46E - .4byte _081BC46E - .4byte _081BC46E - .4byte _081BC128 - .4byte _081BC138 - .4byte _081BC168 - .4byte _081BC178 - .4byte _081BC188 - .4byte _081BC198 - .4byte _081BC1A8 - .4byte _081BC1B8 - .4byte _081BC1C8 - .4byte _081BC1D8 - .4byte _081BC1E8 - .4byte _081BC1F8 - .4byte _081BC208 - .4byte _081BC218 - .4byte _081BC228 - .4byte _081BC278 - .4byte _081BC288 - .4byte _081BC298 - .4byte _081BC2A8 - .4byte _081BC2B8 - .4byte _081BC2C8 - .4byte _081BC2D8 - .4byte _081BC2E8 - .4byte _081BC2F8 - .4byte _081BC32C - .4byte _081BC33C - .4byte _081BC34C - .4byte _081BC35C - .4byte _081BC36C - .4byte _081BC37C - .4byte _081BC38C - .4byte _081BC39C - .4byte _081BC3BC - .4byte _081BC3CC - .4byte _081BC3DC - .4byte _081BC3EC - .4byte _081BC3FC - .4byte _081BC40C - .4byte _081BC41C - .4byte _081BC42C - .4byte _081BC43C - .4byte _081BC44C - .4byte _081BC45C -_081BBE08: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - mov r1, sp - strh r0, [r1] - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2E] - movs r6, 0 - add r0, sp, 0x24 - mov r9, r0 - movs r1, 0x3B - add r1, sp - mov r10, r1 - mov r2, sp - adds r2, 0x2B - str r2, [sp, 0x80] - mov r0, sp - adds r0, 0x2A - str r0, [sp, 0x7C] - mov r1, sp - adds r1, 0x68 - str r1, [sp, 0x8C] - adds r2, 0x5 - str r2, [sp, 0x84] - adds r0, 0x12 - str r0, [sp, 0x88] - mov r8, r4 - add r4, sp, 0xC -_081BBE54: - adds r1, r6, 0 - adds r1, 0xD - mov r0, r8 - bl GetMonData - strh r0, [r4] - adds r1, r6, 0 - adds r1, 0x11 - mov r0, r8 - bl GetMonData - mov r2, r9 - adds r1, r2, r6 - strb r0, [r1] - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _081BBE54 - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x15 - bl GetMonData - mov r1, r10 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - ldr r2, [sp, 0x80] - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x19 - bl GetMonData - str r0, [sp, 0x44] - adds r0, r4, 0 - movs r1, 0x27 - bl GetMonData - mov r3, sp - movs r5, 0x1F - ands r0, r5 - ldrb r2, [r3, 0x14] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x14] - adds r0, r4, 0 - movs r1, 0x28 - bl GetMonData - mov r3, sp - movs r6, 0x1F - ands r0, r6 - lsls r0, 5 - ldrh r2, [r3, 0x14] - ldr r1, =0xfffffc1f - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x14] - adds r0, r4, 0 - movs r1, 0x29 - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, 2 - ldrb r2, [r3, 0x15] - movs r1, 0x7D - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x15] - adds r0, r4, 0 - movs r1, 0x2A - bl GetMonData - movs r1, 0x1F - ands r1, r0 - lsls r1, 15 - ldr r0, [sp, 0x14] - ldr r2, =0xfff07fff - ands r0, r2 - orrs r0, r1 - str r0, [sp, 0x14] - adds r0, r4, 0 - movs r1, 0x2B - bl GetMonData - mov r3, sp - ands r0, r6 - lsls r0, 4 - ldrh r2, [r3, 0x16] - ldr r1, =0xfffffe0f - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x16] - adds r0, r4, 0 - movs r1, 0x2C - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, 1 - ldrb r2, [r3, 0x17] - movs r1, 0x3F - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - str r0, [sp, 0x48] - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - str r0, [sp, 0x4C] - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - ldr r1, [sp, 0x7C] - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - mov r1, sp - strh r0, [r1, 0x28] - adds r0, r4, 0 - movs r1, 0x3A - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2C] - adds r0, r4, 0 - movs r1, 0x3B - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2] - adds r0, r4, 0 - movs r1, 0x3C - bl GetMonData - mov r1, sp - strh r0, [r1, 0x4] - adds r0, r4, 0 - movs r1, 0x3D - bl GetMonData - mov r1, sp - strh r0, [r1, 0x6] - adds r0, r4, 0 - movs r1, 0x3E - bl GetMonData - mov r1, sp - strh r0, [r1, 0x8] - adds r0, r4, 0 - movs r1, 0x3F - bl GetMonData - mov r1, sp - strh r0, [r1, 0xA] - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - mov r3, sp - movs r1, 0x1 - ands r0, r1 - lsls r0, 6 - ldrb r2, [r3, 0x17] - movs r1, 0x41 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0x2E - bl GetMonData - mov r3, sp - lsls r0, 7 - ldrb r2, [r3, 0x17] - movs r1, 0x7F - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - str r0, [sp, 0x54] - adds r0, r4, 0 - movs r1, 0x2 - ldr r2, [sp, 0x8C] - bl GetMonData - ldr r0, [sp, 0x84] - ldr r1, [sp, 0x8C] - bl StringCopy10 - adds r0, r4, 0 - movs r1, 0x7 - ldr r2, [sp, 0x88] - bl GetMonData - mov r2, sp - movs r6, 0 -_081BC00C: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, 0x1 - cmp r6, 0x57 - bls _081BC00C - b _081BC46E - .pool -_081BC02C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - b _081BC3A6 - .pool -_081BC03C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xC - b _081BC3A6 - .pool -_081BC04C: - movs r6, 0 - add r2, sp, 0x58 - mov r9, r2 - add r0, sp, 0x60 - mov r10, r0 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - mov r8, r9 -_081BC062: - adds r1, r6, 0 - adds r1, 0xD - adds r0, r4, 0 - bl GetMonData - mov r1, r8 - strh r0, [r1] - adds r1, r6, 0 - adds r1, 0x11 - adds r0, r4, 0 - bl GetMonData - mov r2, r10 - adds r1, r2, r6 - strb r0, [r1] - movs r0, 0x2 - add r8, r0 - adds r6, 0x1 - cmp r6, 0x3 - ble _081BC062 - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x15 - bl GetMonData - mov r1, r9 - strb r0, [r1, 0xC] - mov r2, r9 - movs r6, 0 -_081BC0A0: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, 0x1 - cmp r6, 0xF - bls _081BC0A0 - b _081BC46E - .pool -_081BC0B4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldrb r1, [r3] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r1, 0x9 - b _081BC3A6 - .pool -_081BC0D0: - movs r6, 0 - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r2, =gPlayerParty - mov r8, r2 -_081BC0DC: - adds r1, r6, 0 - adds r1, 0x11 - mov r2, r8 - adds r0, r4, r2 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, 0x1 - cmp r6, 0x3 - ble _081BC0DC - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x15 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, 0x1 - b _081BC46E - .pool -_081BC10C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldrb r1, [r3] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r1, 0x8 - b _081BC466 - .pool -_081BC128: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1 - b _081BC142 - .pool -_081BC138: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x19 -_081BC142: - bl GetMonData - adds r1, r0, 0 - strb r1, [r7] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r7, 0x2] - movs r6, 0x3 - b _081BC46E - .pool -_081BC168: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1A - b _081BC466 - .pool -_081BC178: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1B - b _081BC466 - .pool -_081BC188: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1C - b _081BC466 - .pool -_081BC198: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1D - b _081BC466 - .pool -_081BC1A8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1E - b _081BC466 - .pool -_081BC1B8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1F - b _081BC466 - .pool -_081BC1C8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x20 - b _081BC466 - .pool -_081BC1D8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x22 - b _081BC466 - .pool -_081BC1E8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x23 - b _081BC466 - .pool -_081BC1F8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x24 - b _081BC466 - .pool -_081BC208: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x25 - b _081BC466 - .pool -_081BC218: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x26 - b _081BC466 - .pool -_081BC228: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x27 - bl GetMonData - strb r0, [r7] - adds r0, r4, 0 - movs r1, 0x28 - bl GetMonData - strb r0, [r7, 0x1] - adds r0, r4, 0 - movs r1, 0x29 - bl GetMonData - strb r0, [r7, 0x2] - adds r0, r4, 0 - movs r1, 0x2A - bl GetMonData - strb r0, [r7, 0x3] - adds r0, r4, 0 - movs r1, 0x2B - bl GetMonData - strb r0, [r7, 0x4] - adds r0, r4, 0 - movs r1, 0x2C - bl GetMonData - strb r0, [r7, 0x5] - movs r6, 0x6 - b _081BC46E - .pool -_081BC278: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x27 - b _081BC466 - .pool -_081BC288: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x28 - b _081BC466 - .pool -_081BC298: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x29 - b _081BC466 - .pool -_081BC2A8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2A - b _081BC466 - .pool -_081BC2B8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2B - b _081BC466 - .pool -_081BC2C8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2C - b _081BC466 - .pool -_081BC2D8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0 - b _081BC302 - .pool -_081BC2E8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x9 - b _081BC3A6 - .pool -_081BC2F8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x37 -_081BC302: - bl GetMonData - adds r1, r0, 0 - strb r1, [r7] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r7, 0x2] - lsrs r0, r1, 24 - strb r0, [r7, 0x3] - movs r6, 0x4 - b _081BC46E - .pool -_081BC32C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x38 - b _081BC466 - .pool -_081BC33C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x39 - b _081BC3A6 - .pool -_081BC34C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3A - b _081BC3A6 - .pool -_081BC35C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3B - b _081BC3A6 - .pool -_081BC36C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3C - b _081BC3A6 - .pool -_081BC37C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3D - b _081BC3A6 - .pool -_081BC38C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3E - b _081BC3A6 - .pool -_081BC39C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3F -_081BC3A6: - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - strb r0, [r7] - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r6, 0x2 - b _081BC46E - .pool -_081BC3BC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x16 - b _081BC466 - .pool -_081BC3CC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x17 - b _081BC466 - .pool -_081BC3DC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x18 - b _081BC466 - .pool -_081BC3EC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x21 - b _081BC466 - .pool -_081BC3FC: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2F - b _081BC466 - .pool -_081BC40C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x30 - b _081BC466 - .pool -_081BC41C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x32 - b _081BC466 - .pool -_081BC42C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x33 - b _081BC466 - .pool -_081BC43C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x34 - b _081BC466 - .pool -_081BC44C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x35 - b _081BC466 - .pool -_081BC45C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x36 -_081BC466: - bl GetMonData - strb r0, [r7] - movs r6, 0x1 -_081BC46E: - adds r0, r6, 0 - add sp, 0x90 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end dp01_getattr_by_ch1_for_player_pokemon - - thumb_func_start sub_81BC484 -sub_81BC484: @ 81BC484 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_81BC484 - - thumb_func_start sub_81BC490 -sub_81BC490: @ 81BC490 - push {r4,r5,lr} - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - bne _081BC4C0 - ldr r0, =gUnknown_0202406E - lsls r1, r2, 1 - adds r1, r0 - ldrb r0, [r1] - bl sub_81BC4E8 - b _081BC4DE - .pool -_081BC4C0: - ldrb r4, [r1] - movs r5, 0 -_081BC4C4: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _081BC4D2 - adds r0, r5, 0 - bl sub_81BC4E8 -_081BC4D2: - lsrs r4, 1 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _081BC4C4 -_081BC4DE: - bl dp01_tbl3_exec_completed - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81BC490 - - thumb_func_start sub_81BC4E8 -sub_81BC4E8: @ 81BC4E8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x34 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 9 - ldr r2, =gUnknown_02023067 - adds r3, r0, r2 - adds r6, r3, 0 - subs r1, r2, 0x2 - adds r0, r1 - ldrb r0, [r0] - adds r7, r2, 0 - cmp r0, 0x3B - bls _081BC514 - bl _081BCEAE -_081BC514: - lsls r0, 2 - ldr r1, =_081BC52C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081BC52C: - .4byte _081BC61C - .4byte _081BC7B4 - .4byte _081BC7D4 - .4byte _081BC7F4 - .4byte _081BC84C - .4byte _081BC84C - .4byte _081BC84C - .4byte _081BC84C - .4byte _081BC874 - .4byte _081BC8D8 - .4byte _081BC8D8 - .4byte _081BC8D8 - .4byte _081BC8D8 - .4byte _081BCEAE - .4byte _081BCEAE - .4byte _081BCEAE - .4byte _081BCEAE - .4byte _081BC908 - .4byte _081BC928 - .4byte _081BC948 - .4byte _081BC968 - .4byte _081BC988 - .4byte _081BC9A8 - .4byte _081BC9C8 - .4byte _081BC9E8 - .4byte _081BCA08 - .4byte _081BCA28 - .4byte _081BCA48 - .4byte _081BCA68 - .4byte _081BCA88 - .4byte _081BCAA8 - .4byte _081BCAC8 - .4byte _081BCB38 - .4byte _081BCB58 - .4byte _081BCB78 - .4byte _081BCB98 - .4byte _081BCBB8 - .4byte _081BCBD8 - .4byte _081BCBF8 - .4byte _081BCC18 - .4byte _081BCC38 - .4byte _081BCC58 - .4byte _081BCC78 - .4byte _081BCC98 - .4byte _081BCCB8 - .4byte _081BCCD8 - .4byte _081BCCF8 - .4byte _081BCD18 - .4byte _081BCD38 - .4byte _081BCD58 - .4byte _081BCD78 - .4byte _081BCD98 - .4byte _081BCDB8 - .4byte _081BCDD8 - .4byte _081BCDF8 - .4byte _081BCE18 - .4byte _081BCE38 - .4byte _081BCE58 - .4byte _081BCE78 - .4byte _081BCE98 -_081BC61C: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - adds r2, r6, 0 - bl pokemon_setattr - adds r2, r6, 0 - adds r2, 0x2E - adds r0, r4, 0 - movs r1, 0xC - bl pokemon_setattr - movs r0, 0 - mov r8, r0 - movs r0, 0x3B - adds r0, r6 - mov r10, r0 - adds r0, r6, 0 - adds r0, 0x2B - str r0, [sp, 0x20] - adds r0, 0x19 - str r0, [sp, 0x28] - adds r0, 0x4 - str r0, [sp, 0x2C] - adds r0, 0x4 - str r0, [sp, 0x30] - subs r0, 0x22 - str r0, [sp, 0x1C] - subs r0, 0x2 - str r0, [sp, 0x18] - adds r0, 0x4 - str r0, [sp, 0x24] - adds r0, r6, 0x2 - str r0, [sp, 0x4] - adds r0, r6, 0x4 - str r0, [sp, 0x8] - adds r0, r6, 0x6 - str r0, [sp, 0xC] - adds r0, 0x2 - str r0, [sp, 0x10] - adds r0, 0x2 - str r0, [sp, 0x14] - mov r9, r4 - adds r7, r6, 0 - adds r7, 0x24 - adds r4, r6, 0 - adds r4, 0xC -_081BC682: - mov r1, r8 - adds r1, 0xD - mov r0, r9 - adds r2, r4, 0 - bl pokemon_setattr - mov r1, r8 - adds r1, 0x11 - mov r0, r9 - adds r2, r7, 0 - bl pokemon_setattr - adds r7, 0x1 - adds r4, 0x2 - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x3 - ble _081BC682 - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x15 - mov r2, r10 - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x20 - ldr r2, [sp, 0x20] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x19 - ldr r2, [sp, 0x28] - bl pokemon_setattr - ldrb r0, [r6, 0x14] - lsls r0, 27 - lsrs r0, 27 - mov r1, sp - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x27 - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrh r0, [r6, 0x14] - lsls r0, 22 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x28 - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrb r0, [r6, 0x15] - lsls r0, 25 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x29 - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldr r0, [r6, 0x14] - lsls r0, 12 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2A - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrh r0, [r6, 0x16] - lsls r0, 23 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2B - mov r2, sp - bl pokemon_setattr - mov r1, sp - ldrb r0, [r6, 0x17] - lsls r0, 26 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2C - mov r2, sp - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0 - ldr r2, [sp, 0x2C] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x37 - ldr r2, [sp, 0x30] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x38 - ldr r2, [sp, 0x1C] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x39 - ldr r2, [sp, 0x18] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3A - ldr r2, [sp, 0x24] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3B - ldr r2, [sp, 0x4] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3C - ldr r2, [sp, 0x8] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3D - ldr r2, [sp, 0xC] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3E - ldr r2, [sp, 0x10] - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x3F - ldr r2, [sp, 0x14] - bl pokemon_setattr - b _081BCEAE - .pool -_081BC7B4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0xB - bl pokemon_setattr - b _081BCEAE - .pool -_081BC7D4: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0xC - bl pokemon_setattr - b _081BCEAE - .pool -_081BC7F4: - movs r0, 0 - mov r8, r0 - movs r0, 0xC - adds r0, r3 - mov r9, r0 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r7, r1, r0 - adds r6, r3, 0 - adds r6, 0x8 - adds r4, r3, 0 -_081BC80E: - mov r1, r8 - adds r1, 0xD - adds r0, r7, 0 - adds r2, r4, 0 - bl pokemon_setattr - mov r1, r8 - adds r1, 0x11 - adds r0, r7, 0 - adds r2, r6, 0 - bl pokemon_setattr - adds r6, 0x1 - adds r4, 0x2 - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x3 - ble _081BC80E - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x15 - mov r2, r9 - bl pokemon_setattr - b _081BCEAE - .pool -_081BC84C: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r3, =gUnknown_02023064 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, 0x9 - b _081BC8F0 - .pool -_081BC874: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - lsls r2, 9 - adds r2, r7 - adds r0, r4, 0 - movs r1, 0x11 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x1 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x12 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x2 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x13 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x3 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x14 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x4 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x15 - bl pokemon_setattr - b _081BCEAE - .pool -_081BC8D8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r3, =gUnknown_02023064 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, 0x8 -_081BC8F0: - adds r3, 0x3 - adds r2, r3 - bl pokemon_setattr - b _081BCEAE - .pool -_081BC908: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1 - bl pokemon_setattr - b _081BCEAE - .pool -_081BC928: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x19 - bl pokemon_setattr - b _081BCEAE - .pool -_081BC948: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1A - bl pokemon_setattr - b _081BCEAE - .pool -_081BC968: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1B - bl pokemon_setattr - b _081BCEAE - .pool -_081BC988: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1C - bl pokemon_setattr - b _081BCEAE - .pool -_081BC9A8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1D - bl pokemon_setattr - b _081BCEAE - .pool -_081BC9C8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1E - bl pokemon_setattr - b _081BCEAE - .pool -_081BC9E8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1F - bl pokemon_setattr - b _081BCEAE - .pool -_081BCA08: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x20 - bl pokemon_setattr - b _081BCEAE - .pool -_081BCA28: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x22 - bl pokemon_setattr - b _081BCEAE - .pool -_081BCA48: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x23 - bl pokemon_setattr - b _081BCEAE - .pool -_081BCA68: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x24 - bl pokemon_setattr - b _081BCEAE - .pool -_081BCA88: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x25 - bl pokemon_setattr - b _081BCEAE - .pool -_081BCAA8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x26 - bl pokemon_setattr - b _081BCEAE - .pool -_081BCAC8: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - lsls r2, 9 - adds r2, r7 - adds r0, r4, 0 - movs r1, 0x27 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x1 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x28 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x2 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x29 - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x3 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x2A - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x4 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x2B - bl pokemon_setattr - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x5 - adds r2, r0 - adds r0, r4, 0 - b _081BCBE8 - .pool -_081BCB38: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x27 - bl pokemon_setattr - b _081BCEAE - .pool -_081BCB58: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x28 - bl pokemon_setattr - b _081BCEAE - .pool -_081BCB78: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x29 - bl pokemon_setattr - b _081BCEAE - .pool -_081BCB98: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x2A - bl pokemon_setattr - b _081BCEAE - .pool -_081BCBB8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x2B - bl pokemon_setattr - b _081BCEAE - .pool -_081BCBD8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 -_081BCBE8: - movs r1, 0x2C - bl pokemon_setattr - b _081BCEAE - .pool -_081BCBF8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0 - bl pokemon_setattr - b _081BCEAE - .pool -_081BCC18: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x9 - bl pokemon_setattr - b _081BCEAE - .pool -_081BCC38: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x37 - bl pokemon_setattr - b _081BCEAE - .pool -_081BCC58: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x38 - bl pokemon_setattr - b _081BCEAE - .pool -_081BCC78: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x39 - bl pokemon_setattr - b _081BCEAE - .pool -_081BCC98: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3A - bl pokemon_setattr - b _081BCEAE - .pool -_081BCCB8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3B - bl pokemon_setattr - b _081BCEAE - .pool -_081BCCD8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3C - bl pokemon_setattr - b _081BCEAE - .pool -_081BCCF8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3D - bl pokemon_setattr - b _081BCEAE - .pool -_081BCD18: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3E - bl pokemon_setattr - b _081BCEAE - .pool -_081BCD38: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3F - bl pokemon_setattr - b _081BCEAE - .pool -_081BCD58: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x16 - bl pokemon_setattr - b _081BCEAE - .pool -_081BCD78: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x17 - bl pokemon_setattr - b _081BCEAE - .pool -_081BCD98: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x18 - bl pokemon_setattr - b _081BCEAE - .pool -_081BCDB8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x21 - bl pokemon_setattr - b _081BCEAE - .pool -_081BCDD8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x2F - bl pokemon_setattr - b _081BCEAE - .pool -_081BCDF8: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x30 - bl pokemon_setattr - b _081BCEAE - .pool -_081BCE18: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x32 - bl pokemon_setattr - b _081BCEAE - .pool -_081BCE38: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x33 - bl pokemon_setattr - b _081BCEAE - .pool -_081BCE58: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x34 - bl pokemon_setattr - b _081BCEAE - .pool -_081BCE78: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x35 - bl pokemon_setattr - b _081BCEAE - .pool -_081BCE98: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_02024064 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x36 - bl pokemon_setattr -_081BCEAE: - ldr r2, =gUnknown_0202406E - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, =gPlayerParty - adds r0, r2 - bl sub_805E990 - add sp, 0x34 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BC4E8 - - thumb_func_start sub_81BCEE4 -sub_81BCEE4: @ 81BCEE4 - push {r4-r7,lr} - ldr r1, =gUnknown_0202406E - ldr r7, =gUnknown_02024064 - ldrb r2, [r7] - lsls r0, r2, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - adds r3, r1, 0 - muls r3, r0 - ldr r4, =gUnknown_02023064 - lsls r2, 9 - adds r0, r4, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - ldr r1, =gPlayerParty - adds r0, r1 - adds r5, r3, r0 - movs r3, 0 - adds r0, r4, 0x2 - adds r2, r0 - ldrb r2, [r2] - cmp r3, r2 - bcs _081BCF3C - adds r6, r4, 0 - adds r2, r7, 0 - adds r4, r0, 0 -_081BCF1A: - adds r1, r5, r3 - ldrb r0, [r2] - lsls r0, 9 - adds r0, 0x3 - adds r0, r3, r0 - adds r0, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r0, [r2] - lsls r0, 9 - adds r0, r4 - ldrb r0, [r0] - cmp r3, r0 - bcc _081BCF1A -_081BCF3C: - bl dp01_tbl3_exec_completed - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BCEE4 - - thumb_func_start sub_81BCF58 -sub_81BCF58: @ 81BCF58 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r0, =gUnknown_0202406E - mov r8, r0 - ldr r6, =gUnknown_02024064 - ldrb r1, [r6] - lsls r0, r1, 1 - add r0, r8 - ldrh r0, [r0] - movs r5, 0x64 - muls r0, r5 - ldr r4, =gPlayerParty - adds r0, r4 - bl sub_805DD7C - ldrb r0, [r6] - lsls r0, 1 - add r0, r8 - ldrh r0, [r0] - muls r0, r5 - adds r0, r4 - movs r1, 0xB - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r6] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_806A068 - ldr r0, =gUnknown_0202499C - mov r8, r0 - ldrb r0, [r6] - movs r1, 0x2 - bl sub_80A5C6C - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldrb r0, [r6] - bl sub_80A6138 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r6] - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r8 - adds r1, r5, 0 - adds r2, r4, 0 - bl AddObjectToFront - ldr r4, =gUnknown_020241E4 - ldrb r1, [r6] - adds r1, r4 - strb r0, [r1] - ldr r5, =gUnknown_02020630 - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =0x0000ff10 - strh r1, [r0, 0x24] - ldrb r2, [r6] - adds r0, r2, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x2E] - ldrb r3, [r6] - adds r0, r3, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r2, [r6] - adds r4, r2, r4 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =gUnknown_020244E4 - adds r2, r1 - ldrb r1, [r2] - bl StartObjectImageAnim - ldr r1, =gUnknown_03005D60 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_81BB1D4 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BCF58 - - thumb_func_start sub_81BD074 -sub_81BD074: @ 81BD074 - push {r4-r6,lr} - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - ldr r4, =gUnknown_02023064 - lsls r1, r0, 9 - adds r6, r4, 0x2 - adds r1, r6 - ldrb r1, [r1] - bl sub_805EF84 - ldr r2, =gUnknown_0202406E - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r2 - lsls r0, 9 - adds r4, 0x1 - adds r0, r4 - ldrb r0, [r0] - strh r0, [r1] - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, =gPlayerParty - adds r0, r2 - bl sub_805DD7C - ldrb r0, [r5] - lsls r1, r0, 9 - adds r1, r6 - ldrb r1, [r1] - bl sub_81BD0E4 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_81BBAE8 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BD074 - - thumb_func_start sub_81BD0E4 -sub_81BD0E4: @ 81BD0E4 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_805EF84 - ldr r0, =gUnknown_0202406E - lsls r2, r6, 1 - adds r2, r0 - ldr r0, =gUnknown_02023064 - lsls r1, r6, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - strh r0, [r2] - ldrh r1, [r2] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - mov r8, r0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r0, =sub_805D714 - bl CreateInvisibleSpriteWithCallback - ldr r1, =gUnknown_03005D7C - mov r9, r1 - add r9, r6 - mov r1, r9 - strb r0, [r1] - adds r0, r6, 0 - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl sub_806A068 - ldr r0, =gUnknown_0202499C - mov r10, r0 - adds r0, r6, 0 - movs r1, 0x2 - bl sub_80A5C6C - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r6, 0 - bl sub_80A6138 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r10 - adds r1, r5, 0 - adds r2, r4, 0 - bl AddObjectToFront - ldr r4, =gUnknown_020241E4 - adds r4, r6, r4 - strb r0, [r4] - ldr r5, =gUnknown_02020630 - mov r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r4] - strh r1, [r0, 0x30] - mov r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x32] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x2E] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r8 - strh r1, [r0, 0x32] - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, r6, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =gUnknown_020244E4 - adds r6, r1 - ldrb r1, [r6] - bl StartObjectImageAnim - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =DummyObjectCallback - str r1, [r0] - movs r0, 0 - movs r1, 0xFF - bl sub_80753E8 - mov r1, r9 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r5 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x2E] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BD0E4 - - thumb_func_start sub_81BD260 -sub_81BD260: @ 81BD260 - push {r4-r6,lr} - ldr r1, =gUnknown_02023064 - ldr r6, =gUnknown_02024064 - ldrb r2, [r6] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r3, [r0] - cmp r3, 0 - bne _081BD2A8 - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - strb r3, [r0, 0x4] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_81BD2F0 - str r1, [r0] - b _081BD2DE - .pool -_081BD2A8: - ldr r5, =gUnknown_020241E4 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - bl obj_free_rotscale_entry - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl RemoveObjectAndFreeTiles - ldr r1, =gUnknown_03005D70 - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl sub_8072984 - bl dp01_tbl3_exec_completed -_081BD2DE: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BD260 - - thumb_func_start sub_81BD2F0 -sub_81BD2F0: @ 81BD2F0 - push {r4-r6,lr} - ldr r6, =gUnknown_020244D0 - ldr r4, [r6] - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - ldr r1, [r4, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r1 - ldrb r0, [r3, 0x4] - cmp r0, 0 - beq _081BD318 - cmp r0, 0x1 - beq _081BD346 - b _081BD36E - .pool -_081BD318: - ldr r1, [r4] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _081BD332 - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_081BD332: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0, 0x4] - b _081BD36E -_081BD346: - ldrb r1, [r3] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _081BD36E - strb r0, [r3, 0x4] - ldrb r2, [r5] - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x1 - bl move_anim_start_t4 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_81BB828 - str r1, [r0] -_081BD36E: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BD2F0 - - thumb_func_start sub_81BD37C -sub_81BD37C: @ 81BD37C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r2, =gUnknown_02038BCE - ldrh r1, [r2] - ldr r0, =0x00000c03 - cmp r1, r0 - bne _081BD3A8 - movs r4, 0x7 - movs r0, 0x5A - mov r9, r0 - ldr r0, =gUnknown_08305D2C - ldrb r1, [r0, 0x1C] - b _081BD3BE - .pool -_081BD3A8: - ldrh r0, [r2] - bl sub_8162AA0 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x20 - mov r9, r0 - ldr r1, =gUnknown_083054E0 - lsls r0, r4, 2 - adds r0, r1 - ldrb r1, [r0] -_081BD3BE: - movs r0, 0x8 - subs r0, r1 - lsls r0, 18 - movs r1, 0xA0 - lsls r1, 15 - adds r0, r1 - lsrs r7, r0, 16 - ldr r0, =gUnknown_02038BCE - ldrh r1, [r0] - ldr r0, =0x00000c03 - cmp r1, r0 - bne _081BD494 - ldr r5, =gUnknown_02024064 - ldrb r1, [r5] - adds r0, r4, 0 - bl sub_805DF84 - ldrb r0, [r5] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl template_build_for_pokemon_or_trainer - ldr r6, =gUnknown_0202499C - mov r8, r9 - lsls r4, r7, 16 - asrs r4, 16 - ldrb r0, [r5] - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r6, 0 - mov r1, r8 - adds r2, r4, 0 - bl AddObjectToFront - ldr r6, =gUnknown_020241E4 - ldrb r1, [r5] - adds r1, r6 - strb r0, [r1] - ldr r4, =gUnknown_02020630 - ldrb r3, [r5] - adds r0, r3, r6 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xF0 - strh r1, [r0, 0x24] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =0x0000fffe - strh r1, [r0, 0x2E] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, =sub_805D7AC - str r1, [r0] - b _081BD57C - .pool -_081BD494: - adds r5, r4, 0 - ldr r6, =gUnknown_02024064 - ldrb r1, [r6] - adds r0, r5, 0 - bl sub_805DF38 - ldrb r0, [r6] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl sub_806A1C0 - ldr r0, =gUnknown_0202499C - mov r8, r0 - lsls r4, r7, 16 - asrs r4, 16 - ldrb r0, [r6] - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r8 - mov r1, r9 - adds r2, r4, 0 - bl AddObjectToFront - ldr r4, =gUnknown_020241E4 - ldrb r1, [r6] - adds r1, r4 - strb r0, [r1] - ldr r0, =gTrainerFrontPicPaletteTable - lsls r5, 3 - adds r5, r0 - ldrh r0, [r5, 0x4] - bl IndexOfObjectPaletteTag - ldr r5, =gUnknown_02020630 - ldrb r1, [r6] - adds r1, r4 - ldrb r1, [r1] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r5 - lsls r0, 4 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - orrs r1, r0 - strb r1, [r2, 0x5] - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0xF0 - strh r1, [r0, 0x24] - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x30 - strh r1, [r0, 0x26] - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =0x0000fffe - strh r1, [r0, 0x2E] - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_805D7AC - str r1, [r0] - ldrb r0, [r6] - adds r0, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r2, [r1, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3F - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] -_081BD57C: - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_81BAE60 - str r1, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BD37C - - thumb_func_start sub_81BD5BC -sub_81BD5BC: @ 81BD5BC - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_81BD5BC - - thumb_func_start sub_81BD5C8 -sub_81BD5C8: @ 81BD5C8 - push {r4-r6,lr} - ldr r6, =gUnknown_020241E4 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, =gUnknown_02020630 - adds r0, r5 - bl oamt_add_pos2_onto_pos1 - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x23 - strh r1, [r0, 0x2E] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =0x0000ffd8 - strh r1, [r0, 0x32] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r0, 0x22] - strh r1, [r0, 0x36] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_80A6EEC - str r1, [r0] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =DummyObjectCallback - bl oamt_set_x3A_32 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_81BAE98 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BD5C8 - - thumb_func_start sub_81BD674 -sub_81BD674: @ 81BD674 - push {r4-r6,lr} - ldr r6, =gUnknown_020244D0 - ldr r4, [r6] - ldr r5, =gUnknown_02024064 - ldrb r2, [r5] - ldr r0, [r4, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r3, r1, r0 - ldrb r0, [r3, 0x4] - cmp r0, 0 - bne _081BD6C8 - ldr r1, [r4] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _081BD6A8 - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_081BD6A8: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x4] - adds r1, 0x1 - strb r1, [r0, 0x4] - b _081BD73E - .pool -_081BD6C8: - ldrb r1, [r3] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _081BD73E - strb r4, [r3, 0x4] - ldr r2, =gUnknown_0202406E - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, =gPlayerParty - adds r0, r2 - bl sub_805E990 - movs r1, 0x40 - negs r1, r1 - movs r0, 0x10 - bl audio_play_and_stuff - ldr r2, =gUnknown_02020630 - ldr r3, =gUnknown_020241E4 - ldrb r0, [r5] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r4, [r0, 0x30] - ldrb r0, [r5] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x5 - strh r1, [r0, 0x32] - ldrb r0, [r5] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, =sub_8039C00 - str r1, [r0] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_81BB78C - str r1, [r0] -_081BD73E: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BD674 - - thumb_func_start sub_81BD760 -sub_81BD760: @ 81BD760 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_81BD760 - - thumb_func_start sub_81BD76C -sub_81BD76C: @ 81BD76C - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_81BD76C - - thumb_func_start sub_81BD778 -sub_81BD778: @ 81BD778 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_81BD778 - - thumb_func_start sub_81BD784 -sub_81BD784: @ 81BD784 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_81BD784 - - thumb_func_start sub_81BD790 -sub_81BD790: @ 81BD790 - push {r4-r6,lr} - ldr r6, =gUnknown_02024064 - ldrb r0, [r6] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - beq _081BD7A2 - b _081BD8B6 -_081BD7A2: - ldr r0, =gUnknown_02023064 - mov r12, r0 - ldrb r2, [r6] - lsls r2, 9 - adds r0, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - mov r1, r12 - adds r1, 0x2 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - ldr r5, =gUnknown_02038432 - mov r1, r12 - adds r1, 0x3 - adds r2, r1 - ldrb r1, [r2] - strb r1, [r5] - ldr r4, =gUnknown_02038408 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x4 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0x5 - adds r2, r1 - ldrb r1, [r2] - lsls r1, 8 - orrs r3, r1 - strh r3, [r4] - ldr r4, =gUnknown_02038404 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x6 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0x7 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r3, r1 - mov r1, r12 - adds r1, 0x8 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 16 - orrs r3, r1 - mov r1, r12 - adds r1, 0x9 - adds r2, r1 - ldrb r1, [r2] - lsls r1, 24 - orrs r3, r1 - str r3, [r4] - ldr r3, =gUnknown_0203841A - ldrb r1, [r6] - lsls r1, 9 - mov r2, r12 - adds r2, 0xA - adds r1, r2 - ldrb r1, [r1] - strb r1, [r3] - ldr r4, =gUnknown_0203841C - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0xC - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0xD - adds r2, r1 - ldrb r1, [r2] - lsls r1, 8 - orrs r3, r1 - strh r3, [r4] - ldr r3, =gUnknown_02038400 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x10 - adds r2, r1 - str r2, [r3] - ldr r3, =gUnknown_020244BC - ldrb r1, [r6] - lsls r1, 2 - adds r1, r3 - ldr r2, [r2] - str r2, [r1] - ldrb r1, [r5] - bl sub_805DB8C - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _081BD898 - bl dp01_tbl3_exec_completed - b _081BD8B6 - .pool -_081BD898: - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strb r3, [r0, 0x4] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_move_anim_3 - str r1, [r0] -_081BD8B6: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BD790 - - thumb_func_start bx_move_anim_3 -bx_move_anim_3: @ 81BD8C8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r2, =gUnknown_02023064 - ldr r6, =gUnknown_02024064 - ldrb r3, [r6] - lsls r1, r3, 9 - adds r0, r2, 0x1 - mov r10, r0 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, r2, 0x2 - mov r9, r5 - adds r0, r1, r5 - ldrb r0, [r0] - lsls r0, 8 - orrs r4, r0 - adds r2, 0xB - adds r1, r2 - ldrb r1, [r1] - mov r8, r1 - ldr r7, =gUnknown_020244D0 - ldr r5, [r7] - ldr r1, [r5, 0x4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x4] - cmp r2, 0x1 - beq _081BD960 - cmp r2, 0x1 - bgt _081BD920 - cmp r2, 0 - beq _081BD92A - b _081BDA3C - .pool -_081BD920: - cmp r2, 0x2 - beq _081BD98A - cmp r2, 0x3 - beq _081BDA00 - b _081BDA3C -_081BD92A: - ldr r1, [r5] - lsls r0, r3, 2 - adds r1, r0, r1 - ldrb r2, [r1] - movs r0, 0xC - ands r0, r2 - cmp r0, 0x4 - bne _081BD94C - movs r0, 0x8 - orrs r0, r2 - strb r0, [r1] - ldrb r2, [r6] - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_081BD94C: - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0, 0x4] - b _081BDA3C -_081BD960: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _081BDA3C - movs r0, 0 - bl sub_805EB9C - adds r0, r4, 0 - bl move_anim_start_t1 - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2 - strb r1, [r0, 0x4] - b _081BDA3C -_081BD98A: - ldr r0, =gUnknown_020383F8 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, =gUnknown_020383FD - ldrb r0, [r0] - cmp r0, 0 - bne _081BDA3C - movs r0, 0x1 - bl sub_805EB9C - ldr r0, [r7] - ldrb r2, [r6] - ldr r1, [r0] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _081BD9D8 - mov r0, r8 - cmp r0, 0x1 - bhi _081BD9D8 - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x6 - bl move_anim_start_t4 - ldr r0, [r7] - ldrb r1, [r6] - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - strb r0, [r1] -_081BD9D8: - ldr r0, =gUnknown_020244D0 - ldr r2, [r0] - ldr r0, =gUnknown_02024064 - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - strb r1, [r0, 0x4] - b _081BDA3C - .pool -_081BDA00: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _081BDA3C - bl sub_805E394 - ldrb r0, [r6] - lsls r2, r0, 9 - mov r3, r10 - adds r1, r2, r3 - ldrb r1, [r1] - add r2, r9 - ldrb r2, [r2] - lsls r2, 8 - orrs r1, r2 - bl sub_805E94C - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strb r4, [r0, 0x4] - bl dp01_tbl3_exec_completed -_081BDA3C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end bx_move_anim_3 - - thumb_func_start sub_81BDA4C -sub_81BDA4C: @ 81BDA4C - push {r4,lr} - ldr r0, =gUnknown_02022E14 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_02022E16 - strh r1, [r0] - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - lsls r0, 9 - ldr r1, =gUnknown_02023066 - adds r0, r1 - ldrh r0, [r0] - bl battle_pick_message - ldr r0, =gUnknown_02022E2C - movs r1, 0 - bl battle_show_message_maybe - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_81BB898 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BDA4C - - thumb_func_start sub_81BDAA0 -sub_81BDAA0: @ 81BDAA0 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_81BDAA0 - - thumb_func_start sub_81BDAAC -sub_81BDAAC: @ 81BDAAC - push {lr} - bl sub_8063880 - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_81BDAAC - - thumb_func_start sub_81BDABC -sub_81BDABC: @ 81BDABC - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_81BDABC - - thumb_func_start sub_81BDAC8 -sub_81BDAC8: @ 81BDAC8 - push {r4-r6,lr} - ldr r6, =gUnknown_02024064 - ldrb r4, [r6] - lsls r4, 9 - ldr r0, =gUnknown_02023068 - adds r4, r0 - movs r0, 0xF - bl BattleAI_SetupAIData - bl sub_8130BA4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, =gBattleMoves - lsls r0, r5, 1 - adds r4, r0 - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x6] - movs r0, 0x12 - ands r0, r1 - cmp r0, 0 - beq _081BDB02 - ldr r1, =gEnemyMonIndex - ldrb r0, [r6] - strb r0, [r1] -_081BDB02: - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x6] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _081BDB3C - movs r0, 0x1 - bl battle_get_side_with_given_state - ldr r4, =gEnemyMonIndex - strb r0, [r4] - ldr r0, =gUnknown_02024210 - ldrb r1, [r0] - ldr r2, =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _081BDB3C - movs r0, 0x3 - bl battle_get_side_with_given_state - strb r0, [r4] -_081BDB3C: - ldr r0, =gEnemyMonIndex - ldrb r2, [r0] - lsls r2, 8 - orrs r2, r5 - movs r0, 0x1 - movs r1, 0xA - bl dp01_build_cmdbuf_x21_a_bb - bl dp01_tbl3_exec_completed - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BDAC8 - - thumb_func_start sub_81BDB70 -sub_81BDB70: @ 81BDB70 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_81BDB70 - - thumb_func_start sub_81BDB7C -sub_81BDB7C: @ 81BDB7C - push {r4-r6,lr} - bl sub_8063A90 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x6 - bne _081BDBD0 - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0x2 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0x3 - b _081BDBA4 -_081BDBA2: - adds r4, 0x1 -_081BDBA4: - cmp r4, 0x5 - bgt _081BDBD0 - movs r0, 0x64 - muls r0, r4 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _081BDBA2 - ldr r1, =gUnknown_0202406E - lsls r0, r6, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r4, r0 - beq _081BDBA2 - lsls r0, r5, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r4, r0 - beq _081BDBA2 -_081BDBD0: - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - ldr r1, =gUnknown_0202449C - ldr r1, [r1] - adds r0, r1 - adds r0, 0x5C - strb r4, [r0] - lsls r1, r4, 24 - lsrs r1, 24 - movs r0, 0x1 - movs r2, 0 - bl dp01_build_cmdbuf_x22_a_three_bytes - bl dp01_tbl3_exec_completed - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BDB7C - - thumb_func_start sub_81BDC04 -sub_81BDC04: @ 81BDC04 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_81BDC04 - - thumb_func_start sub_81BDC10 -sub_81BDC10: @ 81BDC10 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - movs r0, 0 - bl load_gfxc_health_bar - ldr r3, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - mov r9, r0 - ldrb r4, [r0] - lsls r2, r4, 9 - adds r0, r3, 0x2 - adds r0, r2, r0 - ldrb r1, [r0] - adds r3, 0x3 - adds r2, r3 - ldrb r0, [r2] - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - asrs r7, r1, 16 - ldr r0, =0x00007fff - cmp r7, r0 - beq _081BDCA0 - ldr r6, =gUnknown_0202406E - lsls r0, r4, 1 - adds r0, r6 - ldrh r0, [r0] - movs r5, 0x64 - muls r0, r5 - ldr r4, =gPlayerParty - adds r0, r4 - movs r1, 0x3A - bl GetMonData - mov r8, r0 - mov r1, r9 - ldrb r0, [r1] - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - muls r0, r5 - adds r0, r4 - movs r1, 0x39 - bl GetMonData - adds r3, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r1, =gUnknown_03005D70 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - mov r2, r8 - bl sub_807294C - b _081BDCCA - .pool -_081BDCA0: - ldr r1, =gUnknown_0202406E - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3A - bl GetMonData - adds r2, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r1, =gUnknown_03005D70 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - movs r3, 0 - bl sub_807294C -_081BDCCA: - ldr r1, =gUnknown_03005D60 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_t3_healthbar_update - str r1, [r0] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BDC10 - - thumb_func_start sub_81BDD00 -sub_81BDD00: @ 81BDD00 - push {r4-r7,lr} - ldr r5, =gUnknown_02023064 - ldr r6, =gUnknown_02024064 - ldrb r0, [r6] - lsls r0, 9 - adds r1, r5, 0x1 - adds r0, r1 - ldrb r7, [r0] - movs r0, 0x64 - adds r1, r7, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - cmp r0, 0x63 - bls _081BDD38 - bl dp01_tbl3_exec_completed - b _081BDD84 - .pool -_081BDD38: - movs r0, 0x1 - bl load_gfxc_health_bar - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - ldrb r1, [r6] - lsls r1, 9 - adds r0, r5, 0x2 - adds r0, r1, r0 - ldrb r4, [r0] - adds r0, r5, 0x3 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 8 - orrs r4, r0 - ldr r0, =sub_81BB29C - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r7, [r1, 0x8] - strh r4, [r1, 0xA] - ldrb r0, [r6] - strh r0, [r1, 0xC] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, =nullsub_21 - str r1, [r0] -_081BDD84: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BDD00 - - thumb_func_start sub_81BDD9C -sub_81BDD9C: @ 81BDD9C - push {r4,lr} - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _081BDDF0 - ldr r0, =gUnknown_03005D70 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, =gUnknown_0202406E - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gPlayerParty - adds r1, r2 - movs r2, 0x9 - bl healthbar_draw_field_maybe - ldrb r2, [r4] - ldr r0, =gUnknown_020244D0 - ldr r0, [r0] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_81BBC04 - str r1, [r0] -_081BDDF0: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BDD9C - - thumb_func_start sub_81BDE14 -sub_81BDE14: @ 81BDE14 - push {r4,r5,lr} - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _081BDE64 - ldr r4, =gUnknown_02023064 - ldrb r3, [r5] - lsls r3, 9 - adds r0, r4, 0x1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, 0x2 - adds r1, r3, r1 - ldrb r1, [r1] - adds r2, r4, 0x3 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, 8 - orrs r1, r2 - adds r2, r4, 0x4 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, 16 - orrs r1, r2 - adds r4, 0x5 - adds r3, r4 - ldrb r2, [r3] - lsls r2, 24 - orrs r1, r2 - bl move_anim_start_t2_for_situation - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_81BBC04 - str r1, [r0] -_081BDE64: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BDE14 - - thumb_func_start sub_81BDE7C -sub_81BDE7C: @ 81BDE7C - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_81BDE7C - - thumb_func_start sub_81BDE88 -sub_81BDE88: @ 81BDE88 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_81BDE88 - - thumb_func_start sub_81BDE94 -sub_81BDE94: @ 81BDE94 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_81BDE94 - - thumb_func_start sub_81BDEA0 -sub_81BDEA0: @ 81BDEA0 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_81BDEA0 - - thumb_func_start sub_81BDEAC -sub_81BDEAC: @ 81BDEAC - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_81BDEAC - - thumb_func_start sub_81BDEB8 -sub_81BDEB8: @ 81BDEB8 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_81BDEB8 - - thumb_func_start sub_81BDEC4 -sub_81BDEC4: @ 81BDEC4 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_81BDEC4 - - thumb_func_start sub_81BDED0 -sub_81BDED0: @ 81BDED0 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_81BDED0 - - thumb_func_start sub_81BDEDC -sub_81BDEDC: @ 81BDEDC - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_81BDEDC - - thumb_func_start sub_81BDEE8 -sub_81BDEE8: @ 81BDEE8 - push {lr} - ldr r2, =gUnknown_02022D0C - ldrb r1, [r2] - movs r0, 0x80 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BDEE8 - - thumb_func_start sub_81BDF04 -sub_81BDF04: @ 81BDF04 - push {lr} - ldr r3, =gUnknown_02022D0C - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x7F - ands r1, r0 - ldrb r2, [r3] - movs r0, 0x80 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BDF04 - - thumb_func_start sub_81BDF3C -sub_81BDF3C: @ 81BDF3C - push {lr} - ldr r2, =gUnknown_02022D0C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BDF3C - - thumb_func_start sub_81BDF54 -sub_81BDF54: @ 81BDF54 - push {lr} - ldr r3, =gUnknown_02022D0C - ldr r1, [r3] - lsls r1, 24 - lsrs r1, 31 - movs r0, 0x1 - eors r1, r0 - lsls r1, 7 - ldrb r2, [r3] - movs r0, 0x7F - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BDF54 - - thumb_func_start dp01t_29_3_blink -dp01t_29_3_blink: @ 81BDF7C - push {r4,lr} - ldr r3, =gUnknown_02020630 - ldr r2, =gUnknown_020241E4 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _081BDFB0 - bl dp01_tbl3_exec_completed - b _081BDFDA - .pool -_081BDFB0: - ldr r1, =gUnknown_020244B9 - movs r0, 0x1 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0 - strh r1, [r0, 0x30] - ldrb r0, [r4] - bl sub_80769F4 - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_blink_t3 - str r1, [r0] -_081BDFDA: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end dp01t_29_3_blink - - thumb_func_start sub_81BDFEC -sub_81BDFEC: @ 81BDFEC - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_81BDFEC - - thumb_func_start sub_81BDFF8 -sub_81BDFF8: @ 81BDFF8 - push {r4,lr} - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - movs r3, 0x3F - cmp r0, 0 - bne _081BE00C - movs r3, 0xC0 -_081BE00C: - ldr r2, =gUnknown_02023064 - ldrb r1, [r4] - lsls r1, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - lsls r1, r3, 24 - asrs r1, 24 - bl audio_play_and_stuff - bl dp01_tbl3_exec_completed - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BDFF8 - - thumb_func_start sub_81BE03C -sub_81BE03C: @ 81BE03C - push {r4,r5,lr} - ldr r4, =gUnknown_02023064 - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - lsls r3, r0, 9 - adds r0, r4, 0x3 - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, 0 - beq _081BE078 - bl sub_805EA60 - ldrb r1, [r5] - lsls r1, 9 - adds r0, r4, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, r4, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - bl song_play_for_text - b _081BE08C - .pool -_081BE078: - adds r0, r4, 0x1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, 0x2 - adds r1, r3, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - bl fanfare_play -_081BE08C: - bl dp01_tbl3_exec_completed - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81BE03C - - thumb_func_start sub_81BE098 -sub_81BE098: @ 81BE098 - push {lr} - ldr r1, =gUnknown_0202406E - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x19 - negs r1, r1 - movs r2, 0x5 - bl sub_80A32E4 - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BE098 - - thumb_func_start dp01t_2E_3_battle_intro -dp01t_2E_3_battle_intro: @ 81BE0D8 - push {lr} - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - bl battle_intro_launch - ldr r2, =gUnknown_020243FC - ldrh r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end dp01t_2E_3_battle_intro - - thumb_func_start sub_81BE10C -sub_81BE10C: @ 81BE10C - push {r4-r6,lr} - ldr r6, =gUnknown_020241E4 - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - bl oamt_add_pos2_onto_pos1 - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x32 - strh r1, [r0, 0x2E] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =0x0000ffd8 - strh r1, [r0, 0x32] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x22] - strh r1, [r0, 0x36] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_80A6EEC - str r1, [r0] - ldrb r2, [r5] - adds r0, r2, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r2, [r0, 0x38] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, =sub_805CC00 - bl oamt_set_x3A_32 - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x1 - bl StartObjectImageAnim - ldr r0, =0x0000d6f9 - bl AllocObjectPalette - lsls r0, 24 - lsrs r4, r0, 24 - ldr r2, =gUnknown_02038BCE - ldrh r1, [r2] - ldr r0, =0x00000c03 - cmp r1, r0 - bne _081BE1FC - ldr r0, =gTrainerBackPicPaletteTable - ldr r0, [r0, 0x38] - lsls r4, 4 - movs r2, 0x80 - lsls r2, 1 - adds r1, r4, r2 - movs r2, 0x20 - bl LoadCompressedPalette - b _081BE21A - .pool -_081BE1FC: - ldrh r0, [r2] - bl sub_8162AA0 - lsls r0, 24 - ldr r1, =gTrainerFrontPicPaletteTable - lsrs r0, 21 - adds r0, r1 - ldr r0, [r0] - lsls r4, 4 - movs r2, 0x80 - lsls r2, 1 - adds r1, r4, r2 - movs r2, 0x20 - bl LoadCompressedPalette -_081BE21A: - ldr r2, =gUnknown_02020630 - ldr r1, =gUnknown_020241E4 - ldr r5, =gUnknown_02024064 - ldrb r0, [r5] - adds r0, r1 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r4 - strb r0, [r1, 0x5] - ldr r0, =sub_81BE2C8 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r4, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - ldrb r0, [r5] - strh r0, [r1, 0x8] - ldr r3, =gUnknown_020244D0 - ldr r0, [r3] - ldrb r2, [r5] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081BE27E - ldr r0, =gUnknown_020244B4 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - ldr r1, =sub_8073C30 - str r1, [r0] -_081BE27E: - ldr r0, [r3] - ldr r2, [r0, 0x8] - ldrb r0, [r2, 0x9] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x9] - ldr r1, =gUnknown_03005D60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =nullsub_77 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BE10C - - thumb_func_start sub_81BE2C8 -sub_81BE2C8: @ 81BE2C8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r1, =gTasks - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0xA] - movs r3, 0xA - ldrsh r0, [r1, r3] - cmp r0, 0x17 - bgt _081BE2F4 - adds r0, r2, 0x1 - strh r0, [r1, 0xA] - b _081BE3B0 - .pool -_081BE2F4: - ldr r7, =gUnknown_02024064 - ldrb r0, [r7] - mov r9, r0 - ldrh r0, [r1, 0x8] - strb r0, [r7] - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _081BE314 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081BE344 -_081BE314: - ldr r0, =gUnknown_02023064 - ldrb r1, [r7] - lsls r2, r1, 9 - adds r0, 0x1 - adds r2, r0 - ldr r0, =gUnknown_0202406E - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - strb r0, [r2] - ldrb r0, [r7] - movs r1, 0 - bl sub_81BD0E4 - b _081BE398 - .pool -_081BE344: - ldr r4, =gUnknown_02023064 - ldrb r0, [r7] - lsls r1, r0, 9 - adds r4, 0x1 - adds r1, r4 - ldr r5, =gUnknown_0202406E - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r1, 0 - bl sub_81BD0E4 - ldrb r0, [r7] - movs r6, 0x2 - eors r0, r6 - strb r0, [r7] - ldrb r0, [r7] - lsls r1, r0, 9 - adds r1, r4 - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - strb r0, [r1] - ldrb r1, [r7] - lsls r0, r1, 1 - adds r0, r5 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, =gPlayerParty - adds r0, r2 - bl sub_805DD7C - ldrb r0, [r7] - movs r1, 0 - bl sub_81BD0E4 - ldrb r0, [r7] - eors r0, r6 - strb r0, [r7] -_081BE398: - ldr r1, =gUnknown_03005D60 - ldr r2, =gUnknown_02024064 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_81BB02C - str r1, [r0] - mov r3, r9 - strb r3, [r2] - mov r0, r8 - bl DestroyTask -_081BE3B0: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BE2C8 - - thumb_func_start dp01t_30_3_80EB11C -dp01t_30_3_80EB11C: @ 81BE3D4 - push {r4-r6,lr} - ldr r1, =gUnknown_02023064 - ldr r0, =gUnknown_02024064 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _081BE404 - adds r0, r2, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _081BE404 - bl dp01_tbl3_exec_completed - b _081BE478 - .pool -_081BE404: - ldr r6, =gUnknown_020244D0 - ldr r0, [r6] - ldr r5, =gUnknown_02024064 - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - ldrb r0, [r5] - lsls r3, r0, 9 - ldr r4, =gUnknown_02023068 - adds r1, r3, r4 - subs r2, r4, 0x3 - adds r2, r3, r2 - ldrb r2, [r2] - subs r4, 0x2 - adds r3, r4 - ldrb r3, [r3] - bl sub_80735DC - ldr r2, =gUnknown_020244B4 - ldrb r1, [r5] - adds r1, r2 - movs r3, 0 - strb r0, [r1] - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strb r3, [r0, 0x5] - ldrb r2, [r5] - lsls r0, r2, 9 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _081BE46C - ldr r0, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0x5D - strb r1, [r0, 0x5] -_081BE46C: - ldr r0, =gUnknown_03005D60 - ldrb r1, [r5] - lsls r1, 2 - adds r1, r0 - ldr r0, =sub_81BE498 - str r0, [r1] -_081BE478: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end dp01t_30_3_80EB11C - - thumb_func_start sub_81BE498 -sub_81BE498: @ 81BE498 - push {r4,lr} - ldr r4, =gUnknown_020244D0 - ldr r0, [r4] - ldr r3, =gUnknown_02024064 - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x5] - adds r2, r1, 0x1 - strb r2, [r0, 0x5] - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x5C - bls _081BE4D0 - ldr r0, [r4] - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strb r1, [r0, 0x5] - bl dp01_tbl3_exec_completed -_081BE4D0: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BE498 - - thumb_func_start sub_81BE4E0 -sub_81BE4E0: @ 81BE4E0 - push {lr} - ldr r0, =gUnknown_020244D0 - ldr r1, [r0] - ldr r0, =gUnknown_02024064 - ldrb r3, [r0] - ldr r1, [r1, 0x4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081BE512 - ldr r2, =gTasks - ldr r0, =gUnknown_020244B4 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, =sub_8073C30 - str r1, [r0] -_081BE512: - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BE4E0 - - thumb_func_start sub_81BE530 -sub_81BE530: @ 81BE530 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_81BE530 - - thumb_func_start sub_81BE53C -sub_81BE53C: @ 81BE53C - push {r4,lr} - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - bl sub_80A6A90 - lsls r0, 24 - cmp r0, 0 - beq _081BE582 - ldr r3, =gUnknown_02020630 - ldr r0, =gUnknown_020241E4 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldr r0, =gUnknown_02023064 - lsls r1, 9 - adds r0, 0x1 - adds r1, r0 - adds r2, 0x3E - movs r0, 0x1 - ldrb r1, [r1] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - bl sub_805E408 -_081BE582: - bl dp01_tbl3_exec_completed - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BE53C - - thumb_func_start sub_81BE59C -sub_81BE59C: @ 81BE59C - push {r4-r6,lr} - sub sp, 0x4 - ldr r6, =gUnknown_02024064 - ldrb r0, [r6] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _081BE5F4 - ldr r5, =gUnknown_02023064 - ldrb r2, [r6] - lsls r1, r2, 9 - adds r0, r5, 0x1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r0, r5, 0x2 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, 0x3 - adds r1, r5 - ldrb r0, [r1] - lsls r0, 8 - orrs r4, r0 - str r4, [sp] - adds r0, r2, 0 - adds r1, r2, 0 - bl move_anim_start_t3 - lsls r0, 24 - cmp r0, 0 - beq _081BE5E8 - bl dp01_tbl3_exec_completed - b _081BE5F4 - .pool -_081BE5E8: - ldr r0, =gUnknown_03005D60 - ldrb r1, [r6] - lsls r1, 2 - adds r1, r0 - ldr r0, =bx_80E8A6C - str r0, [r1] -_081BE5F4: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BE59C - - thumb_func_start sub_81BE604 -sub_81BE604: @ 81BE604 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_81BE604 - - thumb_func_start sub_81BE610 -sub_81BE610: @ 81BE610 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_81BE610 - - thumb_func_start sub_81BE61C -sub_81BE61C: @ 81BE61C - push {r4,lr} - ldr r2, =gUnknown_0202433A - ldr r1, =gUnknown_02023064 - ldr r4, =gUnknown_02024064 - ldrb r0, [r4] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - movs r0, 0x5 - bl sub_80A2F50 - movs r0, 0x3 - bl BeginFastPaletteFade - bl dp01_tbl3_exec_completed - ldr r1, =gUnknown_03005D60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_80587B0 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BE61C - - thumb_func_start nullsub_128 -nullsub_128: @ 81BE668 - bx lr - thumb_func_end nullsub_128 - - thumb_func_start sub_81BE66C -sub_81BE66C: @ 81BE66C - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0, 0x4] - movs r0, 0xD0 - lsls r0, 5 - cmp r1, r0 - bne _081BE690 - movs r0, 0xA7 - lsls r0, 1 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - b _081BE692 - .pool -_081BE690: - movs r0, 0 -_081BE692: - pop {r1} - bx r1 - thumb_func_end sub_81BE66C - - thumb_func_start sub_81BE698 -sub_81BE698: @ 81BE698 - push {lr} - ldr r0, =gUnknown_0203CF18 - ldr r0, [r0] - adds r0, 0x4 - bl sub_8151E50 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BE698 - - thumb_func_start sub_81BE6AC -sub_81BE6AC: @ 81BE6AC - ldr r1, =gUnknown_0203CF18 - movs r0, 0 - str r0, [r1] - bx lr - .pool - thumb_func_end sub_81BE6AC - - thumb_func_start sub_81BE6B8 -sub_81BE6B8: @ 81BE6B8 - push {r4,lr} - ldr r4, =gUnknown_0203CF18 - ldr r0, [r4] - cmp r0, 0 - beq _081BE6CC - movs r0, 0 - str r0, [r4] - b _081BE718 - .pool -_081BE6CC: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0, 0x4] - movs r0, 0xD0 - lsls r0, 5 - cmp r1, r0 - bne _081BE718 - movs r0, 0xA7 - lsls r0, 1 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _081BE718 - movs r0, 0xC8 - bl AllocZeroed - str r0, [r4] - adds r0, 0x4 - bl sub_8151B3C - ldr r0, [r4] - adds r0, 0x4 - ldr r1, =gUnknown_08617E18 - bl sub_8151B68 - ldr r0, [r4] - adds r0, 0x4 - movs r1, 0x1 - movs r2, 0x1 - bl sub_8151CA8 - ldr r0, =sub_81BE698 - movs r1, 0xFF - bl CreateTask - ldr r1, [r4] - strb r0, [r1] -_081BE718: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BE6B8 - - thumb_func_start sub_81BE72C -sub_81BE72C: @ 81BE72C - push {r4,lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0, 0x4] - movs r0, 0xD0 - lsls r0, 5 - cmp r1, r0 - bne _081BE788 - movs r0, 0xA7 - lsls r0, 1 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _081BE788 - ldr r4, =gUnknown_0203CF18 - ldr r0, [r4] - cmp r0, 0 - beq _081BE788 - ldr r0, =sub_81BE698 - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - beq _081BE766 - ldr r0, [r4] - ldrb r0, [r0] - bl DestroyTask -_081BE766: - ldr r0, [r4] - adds r0, 0x4 - movs r1, 0x1 - movs r2, 0x1 - bl sub_8151D28 - ldr r0, [r4] - adds r0, 0x4 - movs r1, 0x1 - movs r2, 0x1 - bl sub_8151C50 - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] -_081BE788: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BE72C - - thumb_func_start sub_81BE79C -sub_81BE79C: @ 81BE79C - push {r4,lr} - ldr r0, =0x000040cb - bl VarGet - lsls r0, 16 - cmp r0, 0 - beq _081BE7B8 - movs r0, 0xA7 - lsls r0, 1 - bl FlagReset - b _081BE7EE - .pool -_081BE7B8: - bl Random - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0x1 - ands r4, r0 - movs r0, 0x9D - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081BE7D4 - movs r4, 0x1 -_081BE7D4: - cmp r4, 0 - beq _081BE7E6 - movs r0, 0xA7 - lsls r0, 1 - bl FlagSet - bl sub_81BE6B8 - b _081BE7EE -_081BE7E6: - movs r0, 0xA7 - lsls r0, 1 - bl FlagReset -_081BE7EE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81BE79C - - thumb_func_start sub_81BE7F4 -sub_81BE7F4: @ 81BE7F4 - push {lr} - ldr r0, =sub_81BE808 - movs r1, 0x8 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BE7F4 - - thumb_func_start sub_81BE808 -sub_81BE808: @ 81BE808 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - movs r0, 0x2D - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - mov r0, sp - ldrb r0, [r0] - lsls r2, r0, 3 - adds r2, r0 - lsls r2, 2 - ldr r4, =gUnknown_02037350 - adds r2, r4 - ldr r3, =gUnknown_02020630 - ldrb r1, [r2, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x26] - adds r1, 0x4 - strh r1, [r0, 0x26] - ldr r0, =gUnknown_02037590 - ldrb r0, [r0, 0x5] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r2, 0x4] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - movs r4, 0x22 - ldrsh r2, [r0, r4] - movs r4, 0x26 - ldrsh r0, [r0, r4] - adds r2, r0 - ldrb r1, [r1, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r3, 0x22 - ldrsh r1, [r0, r3] - movs r4, 0x26 - ldrsh r0, [r0, r4] - adds r1, r0 - cmp r2, r1 - blt _081BE882 - adds r0, r5, 0 - bl DestroyTask - bl script_env_2_enable_and_set_ctx_running -_081BE882: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BE808 - - thumb_func_start sp136_strengh_sound -sp136_strengh_sound: @ 81BE89C - push {r4-r6,lr} - mov r6, r8 - push {r6} - mov r8, r0 - adds r4, r1, 0 - adds r5, r2, 0 - adds r6, r3, 0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - ldr r0, =sub_81BE900 - movs r1, 0x9 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r4, [r1, 0x8] - strh r0, [r1, 0xA] - strh r5, [r1, 0xC] - strh r6, [r1, 0xE] - mov r0, r8 - strh r0, [r1, 0x10] - movs r0, 0 - bl SetCameraPanningCallback - movs r0, 0xD6 - bl audio_play - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sp136_strengh_sound - - thumb_func_start sub_81BE900 -sub_81BE900: @ 81BE900 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - movs r1, 0x2 - ldrsh r0, [r4, r1] - movs r2, 0x6 - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, 0 - bne _081BE95C - strh r0, [r4, 0x2] - ldrh r0, [r4, 0x4] - subs r0, 0x1 - strh r0, [r4, 0x4] - ldrh r0, [r4] - negs r0, r0 - strh r0, [r4] - ldrh r0, [r4, 0x8] - negs r0, r0 - strh r0, [r4, 0x8] - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x8 - ldrsh r1, [r4, r2] - bl SetCameraPanning - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081BE95C - bl sub_81BE968 - adds r0, r5, 0 - bl DestroyTask - bl InstallCameraPanAheadCallback -_081BE95C: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BE900 - - thumb_func_start sub_81BE968 -sub_81BE968: @ 81BE968 - push {lr} - ldr r0, =sub_81BE9C0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _081BE988 - ldr r0, =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_081BE988: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BE968 - - thumb_func_start sub_81BE994 -sub_81BE994: @ 81BE994 - push {lr} - ldr r0, =gUnknown_08617D94 - bl LoadObjectPics - bl sub_81BEA20 - ldr r0, =sub_81BE9C0 - movs r1, 0x8 - bl CreateTask - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0x10 - movs r3, 0x3 - bl sp136_strengh_sound - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BE994 - - thumb_func_start sub_81BE9C0 -sub_81BE9C0: @ 81BE9C0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r3, r1, 3 - ldr r4, =gTasks + 0x8 - adds r2, r3, r4 - ldrh r0, [r2, 0x2] - adds r0, 0x1 - strh r0, [r2, 0x2] - lsls r0, 16 - movs r1, 0xFA - lsls r1, 18 - cmp r0, r1 - beq _081BE9E6 - ldrh r0, [r2] - cmp r0, 0x11 - bne _081BE9F0 -_081BE9E6: - adds r0, r4, 0 - subs r0, 0x8 - adds r0, r3, r0 - ldr r1, =sub_81BEA00 - str r1, [r0] -_081BE9F0: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BE9C0 - - thumb_func_start sub_81BEA00 -sub_81BEA00: @ 81BEA00 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0xFA - lsls r0, 4 - bl FreeObjectTilesByTag - adds r0, r4, 0 - bl DestroyTask - bl script_env_2_enable_and_set_ctx_running - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81BEA00 - - thumb_func_start sub_81BEA20 -sub_81BEA20: @ 81BEA20 - push {r4-r7,lr} - movs r4, 0 - ldr r5, =gUnknown_08617D64 - adds r7, r5, 0x2 - ldr r6, =gUnknown_02020630 -_081BEA2A: - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 1 - adds r1, r0, r5 - ldrh r1, [r1] - adds r1, 0x78 - lsls r1, 16 - asrs r1, 16 - adds r0, r7 - movs r3, 0 - ldrsh r2, [r0, r3] - ldr r0, =gUnknown_08617E60 - movs r3, 0x8 - bl AddObjectToFront - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r2, [r0, 0x5] - movs r3, 0xD - negs r3, r3 - adds r1, r3, 0 - ands r2, r1 - movs r1, 0xF - ands r2, r1 - strb r2, [r0, 0x5] - strh r4, [r0, 0x2E] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _081BEA2A - movs r4, 0 - ldr r5, =gUnknown_08617D64 - adds r7, r5, 0x2 - ldr r6, =gUnknown_02020630 -_081BEA78: - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 1 - adds r1, r0, r5 - ldrh r1, [r1] - adds r1, 0x73 - lsls r1, 16 - asrs r1, 16 - adds r0, r7 - ldrh r2, [r0] - subs r2, 0x3 - lsls r2, 16 - asrs r2, 16 - ldr r0, =gUnknown_08617E34 - movs r3, 0x8 - bl AddObjectToFront - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r2, [r0, 0x5] - movs r3, 0xD - negs r3, r3 - adds r1, r3, 0 - ands r2, r1 - movs r1, 0xF - ands r2, r1 - strb r2, [r0, 0x5] - strh r4, [r0, 0x2E] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _081BEA78 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BEA20 - - thumb_func_start sub_81BEAD8 -sub_81BEAD8: @ 81BEAD8 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - adds r0, 0x2 - strh r0, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r4, 0x26] - movs r0, 0x22 - ldrsh r3, [r4, r0] - movs r1, 0x26 - ldrsh r0, [r4, r1] - adds r3, r0 - ldr r2, =gUnknown_08617D64 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - adds r2, 0x4 - adds r0, r2 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r3, r0 - ble _081BEB1A - adds r0, r4, 0 - bl RemoveObjectAndFreeTiles - bl sub_81BE968 -_081BEB1A: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BEAD8 - - thumb_func_start sub_81BEB24 -sub_81BEB24: @ 81BEB24 - push {r4,r5,lr} - movs r4, 0 - ldr r5, =gUnknown_08617DA4 -_081BEB2A: - lsls r2, r4, 2 - adds r2, r5 - ldrb r0, [r2] - adds r0, 0x7 - ldrb r1, [r2, 0x1] - adds r1, 0x7 - ldrh r2, [r2, 0x2] - bl MapGridSetMetatileIdAt - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x11 - bls _081BEB2A - bl DrawWholeMapView - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BEB24 - - thumb_func_start sub_81BEB54 -sub_81BEB54: @ 81BEB54 - push {lr} - ldr r0, =sub_81BED50 - movs r1, 0x9 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BEB54 - - thumb_func_start sub_81BEB68 -sub_81BEB68: @ 81BEB68 - push {lr} - ldr r0, =sub_81BEBF4 - movs r1, 0x9 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BEB68 - - thumb_func_start sub_81BEB7C -sub_81BEB7C: @ 81BEB7C - push {lr} - ldr r0, =sub_81BF028 - movs r1, 0x9 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BEB7C - - thumb_func_start sub_81BEB90 -sub_81BEB90: @ 81BEB90 - push {r4,lr} - ldr r4, =gUnknown_0203CF14 - ldr r0, [r4] - ldrh r1, [r0] - movs r0, 0x10 - bl SetGpuReg - ldr r0, [r4] - ldrh r1, [r0, 0x2] - movs r0, 0x12 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BEB90 - - thumb_func_start sub_81BEBB4 -sub_81BEBB4: @ 81BEBB4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r2, r1, r2 - ldrh r1, [r2, 0x8] - movs r3, 0x8 - ldrsh r0, [r2, r3] - cmp r0, 0 - bne _081BEBEC - ldr r0, =gUnknown_0203CF14 - ldr r1, [r0] - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] - movs r0, 0x2 - strh r0, [r2, 0x8] - bl sub_81BEB90 - b _081BEBF0 - .pool -_081BEBEC: - subs r0, r1, 0x1 - strh r0, [r2, 0x8] -_081BEBF0: - pop {r0} - bx r0 - thumb_func_end sub_81BEBB4 - - thumb_func_start sub_81BEBF4 -sub_81BEBF4: @ 81BEBF4 - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0x6 - bls _081BEC10 - b _081BED40 -_081BEC10: - lsls r0, 2 - ldr r1, =_081BEC24 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081BEC24: - .4byte _081BEC40 - .4byte _081BEC50 - .4byte _081BEC88 - .4byte _081BECB0 - .4byte _081BECF8 - .4byte _081BED00 - .4byte _081BED1C -_081BEC40: - bl FreeAllWindowBuffers - movs r0, 0 - movs r1, 0x7 - movs r2, 0x2 - bl SetBgAttribute - b _081BED04 -_081BEC50: - ldr r4, =gUnknown_0203CF04 - movs r0, 0x92 - lsls r0, 4 - bl AllocZeroed - str r0, [r4] - ldr r4, =gUnknown_0203CF08 - movs r0, 0x80 - lsls r0, 4 - bl AllocZeroed - str r0, [r4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - b _081BECD8 - .pool -_081BEC88: - ldr r0, =gUnknown_08617274 - ldr r4, =gUnknown_0203CF04 - ldr r1, [r4] - movs r2, 0x92 - lsls r2, 3 - bl CpuSet - ldr r1, [r4] - movs r2, 0x92 - lsls r2, 4 - movs r0, 0 - movs r3, 0 - bl LoadBgTiles - b _081BECD8 - .pool -_081BECB0: - ldr r0, =gUnknown_0203CF08 - ldr r1, [r0] - movs r0, 0 - bl SetBgTilemapBuffer - ldr r1, =gUnknown_08617B94 - movs r0, 0x6 - str r0, [sp] - movs r0, 0xC - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - movs r2, 0xC - movs r3, 0x1D - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, 0 - bl CopyBgTilemapBufferToVram -_081BECD8: - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _081BED40 - .pool -_081BECF8: - movs r0, 0 - bl ShowBg - b _081BED04 -_081BED00: - bl sub_81BEB24 -_081BED04: - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _081BED40 - .pool -_081BED1C: - ldr r4, =gUnknown_0203CF14 - movs r0, 0x4 - bl Alloc - str r0, [r4] - movs r2, 0 - movs r1, 0x2 - strh r1, [r0] - strh r2, [r0, 0x2] - ldr r0, =sub_81BEBB4 - movs r1, 0xA - bl CreateTask - adds r0, r5, 0 - bl DestroyTask - bl script_env_2_enable_and_set_ctx_running -_081BED40: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BEBF4 - - thumb_func_start sub_81BED50 -sub_81BED50: @ 81BED50 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r1, =gTasks - lsls r0, 2 - add r0, r10 - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x8] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - adds r6, r1, 0 - cmp r0, 0x7 - bls _081BED7C - b _081BF002 -_081BED7C: - lsls r0, 2 - ldr r1, =_081BED90 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081BED90: - .4byte _081BEDB0 - .4byte _081BF002 - .4byte _081BEDC4 - .4byte _081BEF64 - .4byte _081BEF94 - .4byte _081BEFD0 - .4byte _081BEFF0 - .4byte _081BEFF8 -_081BEDB0: - ldr r4, =gUnknown_0203CF10 - movs r0, 0xC0 - lsls r0, 2 - bl AllocZeroed - str r0, [r4] - b _081BF002 - .pool -_081BEDC4: - mov r1, r10 - lsls r0, r1, 2 - adds r1, r0, r1 - lsls r1, 3 - adds r2, r1, r6 - ldrh r3, [r2, 0xE] - movs r4, 0xE - ldrsh r1, [r2, r4] - str r0, [sp, 0x8] - cmp r1, 0x5F - bgt _081BEE8A - movs r1, 0xA - ldrsh r0, [r2, r1] - cmp r0, 0x1 - ble _081BEE7C - lsls r0, r3, 24 - lsrs r4, r0, 24 - movs r0, 0x30 - bl Alloc - ldr r3, =gUnknown_0203CF10 - ldr r1, [r3] - lsls r2, r4, 3 - adds r1, r2, r1 - str r0, [r1] - movs r5, 0 - adds r4, r2, 0 -_081BEDFA: - ldr r0, [r3] - adds r0, r4, r0 - ldr r0, [r0] - adds r0, r5 - strb r5, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x2F - bls _081BEDFA - movs r5, 0 - ldr r7, =gUnknown_0203CF10 - adds r6, r2, 0 -_081BEE14: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x30 - bl __umodsi3 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x30 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - ldr r1, [r7] - adds r1, r6, r1 - ldr r1, [r1] - adds r0, r1, r0 - ldrb r2, [r0] - adds r1, r4 - ldrb r1, [r1] - strb r1, [r0] - ldr r0, [r7] - adds r0, r6, r0 - ldr r0, [r0] - adds r0, r4 - strb r2, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x2F - bls _081BEE14 - ldr r0, =gTasks - ldr r1, [sp, 0x8] - add r1, r10 - lsls r1, 3 - adds r2, r1, r0 - ldrh r3, [r2, 0xE] - movs r4, 0xE - ldrsh r1, [r2, r4] - adds r6, r0, 0 - cmp r1, 0x5F - bgt _081BEE78 - adds r0, r3, 0x1 - strh r0, [r2, 0xE] -_081BEE78: - movs r0, 0 - strh r0, [r2, 0xA] -_081BEE7C: - ldr r1, [sp, 0x8] - add r1, r10 - lsls r1, 3 - adds r1, r6 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] -_081BEE8A: - ldr r0, [sp, 0x8] - add r0, r10 - lsls r0, 3 - adds r0, r6 - ldrb r4, [r0, 0xE] - ldrb r5, [r0, 0xC] - lsls r0, r4, 16 - cmp r5, r4 - bcs _081BEF32 - str r0, [sp, 0xC] -_081BEE9E: - movs r6, 0 - adds r0, r5, 0x1 - str r0, [sp, 0x4] - lsls r4, r5, 3 - movs r2, 0x5F - subs r1, r2, r5 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 4 - mov r9, r0 -_081BEEB2: - ldr r0, =gUnknown_0203CF04 - ldr r0, [r0] - ldr r7, =gUnknown_0203CF10 - ldr r3, [r7] - adds r3, r4, r3 - ldrb r2, [r3, 0x4] - adds r1, r2, 0x1 - strb r1, [r3, 0x4] - lsls r2, 24 - lsrs r2, 24 - ldr r1, [r3] - adds r1, r2 - ldrb r1, [r1] - add r1, r9 - lsls r1, 16 - lsrs r1, 16 - movs r2, 0x1 - mov r8, r2 - str r2, [sp] - movs r2, 0 - movs r3, 0x30 - bl sub_81BF2B8 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - beq _081BEEB2 - ldr r0, [r7] - adds r1, r4, r0 - ldrb r0, [r1, 0x4] - cmp r0, 0x2F - bls _081BEF24 - ldr r0, [r1] - bl Free - ldr r0, [r7] - adds r0, r4, r0 - movs r1, 0 - str r1, [r0] - ldr r1, [sp, 0x8] - add r1, r10 - lsls r1, 3 - ldr r4, =gTasks - adds r1, r4 - ldrh r0, [r1, 0xC] - adds r0, 0x1 - strh r0, [r1, 0xC] - mov r0, r8 - ands r5, r0 - cmp r5, 0x1 - bne _081BEF24 - ldr r0, =gUnknown_0203CF14 - ldr r1, [r0] - ldrh r0, [r1, 0x2] - subs r0, 0x1 - strh r0, [r1, 0x2] -_081BEF24: - ldr r1, [sp, 0x4] - lsls r0, r1, 16 - lsrs r5, r0, 16 - ldr r2, [sp, 0xC] - lsrs r0, r2, 16 - cmp r5, r0 - bcc _081BEE9E -_081BEF32: - ldr r0, =gUnknown_0203CF04 - ldr r1, [r0] - movs r2, 0x92 - lsls r2, 4 - movs r0, 0 - movs r3, 0 - bl LoadBgTiles - ldr r0, =gUnknown_0203CF10 - ldr r0, [r0] - movs r4, 0xBE - lsls r4, 2 - adds r0, r4 - ldrb r0, [r0, 0x4] - cmp r0, 0x2F - bhi _081BF002 - b _081BF014 - .pool -_081BEF64: - movs r0, 0 - bl UnsetBgTilemapBuffer - ldr r0, =sub_81BEBB4 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _081BEF7C - bl DestroyTask -_081BEF7C: - ldr r0, =gUnknown_0203CF14 - ldr r1, [r0] - movs r0, 0 - strh r0, [r1] - strh r0, [r1, 0x2] - bl sub_81BEB90 - b _081BF002 - .pool -_081BEF94: - ldr r4, =gUnknown_0203CF14 - ldr r0, [r4] - bl Free - movs r5, 0 - str r5, [r4] - ldr r4, =gUnknown_0203CF10 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203CF04 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203CF08 - ldr r0, [r4] - bl Free - str r5, [r4] - b _081BF002 - .pool -_081BEFD0: - movs r0, 0xC - movs r1, 0x2 - bl SetGpuRegBits - movs r0, 0x8 - movs r1, 0 - bl SetGpuRegBits - movs r0, 0 - movs r1, 0x7 - movs r2, 0 - bl SetBgAttribute - bl sub_81971D0 - b _081BF002 -_081BEFF0: - movs r0, 0 - bl ShowBg - b _081BF002 -_081BEFF8: - mov r0, r10 - bl DestroyTask - bl script_env_2_enable_and_set_ctx_running -_081BF002: - ldr r0, =gTasks - mov r2, r10 - lsls r1, r2, 2 - add r1, r10 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_081BF014: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BED50 - - thumb_func_start sub_81BF028 -sub_81BF028: @ 81BF028 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x18 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x8] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - bls _081BF04C - b _081BF228 -_081BF04C: - lsls r0, 2 - ldr r1, =_081BF060 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081BF060: - .4byte _081BF080 - .4byte _081BF0B4 - .4byte _081BF0DC - .4byte _081BF0F0 - .4byte _081BF148 - .4byte _081BF170 - .4byte _081BF1CC - .4byte _081BF224 -_081BF080: - ldr r4, =gUnknown_0203CF0C - movs r0, 0x14 - bl AllocZeroed - str r0, [r4] - movs r0, 0x80 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1] - movs r0, 0x8 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, 0x4] - movs r0, 0x80 - lsls r0, 2 - bl AllocZeroed - ldr r1, [r4] - str r0, [r1, 0xC] - movs r0, 0 - strh r0, [r1, 0x10] - b _081BF228 - .pool -_081BF0B4: - ldr r0, =gUnknown_0203CF0C - ldr r0, [r0] - ldr r1, [r0] - movs r5, 0 - ldr r2, =gUnknown_08617C44 -_081BF0BE: - adds r0, r5, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - adds r1, 0x1 - cmp r5, 0x7F - bls _081BF0BE - b _081BF228 - .pool -_081BF0DC: - ldr r0, =gUnknown_0203CF0C - ldr r0, [r0] - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [r1] - movs r0, 0x80 - strh r0, [r1, 0x4] - b _081BF228 - .pool -_081BF0F0: - mov r1, sp - ldr r0, =gUnknown_08617E00 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldr r4, =gUnknown_0203CF0C - ldr r0, [r4] - ldr r0, [r0, 0x4] - str r0, [sp, 0xC] - movs r2, 0x10 - negs r2, r2 - mov r0, sp - movs r1, 0x80 - movs r3, 0x1 - bl AddObjectToFront - ldr r1, [r4] - movs r3, 0 - strb r0, [r1, 0x8] - ldr r2, =gUnknown_02020630 - ldr r0, [r4] - ldrb r1, [r0, 0x8] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x28 - strb r3, [r0] - ldr r3, [r4] - ldrb r1, [r3, 0x8] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x20] - strh r1, [r0, 0x2E] - ldrb r1, [r3, 0x8] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strh r1, [r0, 0x30] -_081BF148: - movs r5, 0 - ldr r2, =gUnknown_0203CF0C -_081BF14C: - ldr r0, [r2] - ldr r1, [r0, 0xC] - lsls r0, r5, 1 - adds r0, r1 - strh r5, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xFF - bls _081BF14C - b _081BF228 - .pool -_081BF170: - movs r5, 0 - movs r6, 0xFF - ldr r0, =0x000001ff - mov r8, r0 -_081BF178: - bl Random - adds r4, r6, 0 - ands r4, r0 - bl Random - adds r1, r6, 0 - ands r1, r0 - ldr r0, =gUnknown_0203CF0C - ldr r3, [r0] - ldr r0, [r3, 0xC] - lsls r1, 1 - adds r1, r0 - ldrh r2, [r1] - lsls r4, 1 - adds r4, r0 - ldrh r0, [r4] - strh r0, [r1] - strh r2, [r4] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bls _081BF178 - ldr r2, =gUnknown_02020630 - ldrb r1, [r3, 0x8] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, =sub_81BF248 - str r1, [r0] - b _081BF228 - .pool -_081BF1CC: - ldr r3, =gUnknown_02020630 - ldr r5, =gUnknown_0203CF0C - ldr r0, [r5] - ldrb r1, [r0, 0x8] - lsls r0, r1, 4 - adds r0, r1 - lsls r2, r0, 2 - adds r0, r3, 0 - adds r0, 0x1C - adds r0, r2, r0 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - bne _081BF238 - adds r0, r2, r3 - bl RemoveObjectAndFreeTiles - ldr r0, [r5] - ldr r0, [r0, 0xC] - bl Free - ldr r0, [r5] - movs r4, 0 - str r4, [r0, 0xC] - ldr r0, [r0, 0x4] - bl Free - ldr r0, [r5] - str r4, [r0, 0x4] - ldr r0, [r0] - bl Free - ldr r0, [r5] - str r4, [r0] - bl Free - str r4, [r5] - b _081BF228 - .pool -_081BF224: - bl script_env_2_enable_and_set_ctx_running -_081BF228: - ldr r0, =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_081BF238: - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BF028 - - thumb_func_start sub_81BF248 -sub_81BF248: @ 81BF248 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, =gUnknown_0203CF0C - ldr r0, [r0] - ldrh r0, [r0, 0x10] - cmp r0, 0xFF - bls _081BF268 - ldr r0, =DummyObjectCallback - str r0, [r5, 0x1C] - b _081BF2B0 - .pool -_081BF268: - ldrh r1, [r5, 0x22] - movs r2, 0x22 - ldrsh r0, [r5, r2] - cmp r0, 0x5F - ble _081BF2AC - movs r4, 0 -_081BF274: - ldr r0, =gUnknown_0203CF0C - ldr r3, [r0] - ldr r0, [r3] - ldrh r1, [r3, 0x10] - adds r2, r1, 0x1 - strh r2, [r3, 0x10] - lsls r1, 16 - ldr r2, [r3, 0xC] - lsrs r1, 15 - adds r1, r2 - ldrh r1, [r1] - movs r2, 0 - str r2, [sp] - movs r3, 0x10 - bl sub_81BF2B8 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _081BF274 - adds r0, r5, 0 - movs r1, 0 - bl StartObjectImageAnim - b _081BF2B0 - .pool -_081BF2AC: - adds r0, r1, 0x1 - strh r0, [r5, 0x22] -_081BF2B0: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81BF248 - - thumb_func_start sub_81BF2B8 -sub_81BF2B8: @ 81BF2B8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - str r0, [sp] - mov r10, r1 - adds r6, r2, 0 - mov r8, r3 - ldr r0, [sp, 0x28] - mov r9, r0 - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - lsls r6, 24 - lsrs r6, 24 - mov r0, r8 - lsls r0, 24 - mov r8, r0 - lsrs r7, r0, 24 - mov r1, r9 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - mov r0, r10 - adds r1, r7, 0 - bl __divsi3 - adds r5, r0, 0 - lsls r5, 24 - lsrs r4, r5, 24 - ldr r3, =gUnknown_030012A8 - strh r4, [r3] - mov r0, r10 - adds r1, r7, 0 - str r3, [sp, 0x4] - bl __modsi3 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r3, [sp, 0x4] - strh r2, [r3, 0x2] - movs r1, 0x7 - ands r4, r1 - ands r2, r1 - strh r4, [r3, 0x4] - strh r2, [r3, 0x6] - lsrs r0, 27 - lsrs r5, 27 - strh r0, [r3, 0x8] - strh r5, [r3, 0xA] - mov r1, r8 - lsrs r1, 27 - lsls r1, 6 - mov r8, r1 - mov r1, r8 - muls r1, r5 - lsls r0, 6 - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - strh r1, [r3, 0xC] - lsls r4, 3 - adds r4, r2 - adds r1, r4 - lsls r4, r1, 16 - lsrs r4, 17 - strh r1, [r3, 0xE] - movs r1, 0x1 - mov r0, r10 - ands r1, r0 - movs r2, 0x1 - eors r1, r2 - lsls r0, r1, 2 - lsls r6, r0 - eors r1, r2 - lsls r1, 2 - movs r0, 0xF - lsls r0, r1 - orrs r6, r0 - lsls r6, 24 - lsrs r6, 24 - mov r1, r9 - lsls r1, 5 - mov r9, r1 - add r9, r4 - ldr r1, [sp] - add r1, r9 - ldrb r0, [r1] - ands r6, r0 - strb r6, [r1] - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BF2B8 - - thumb_func_start sub_81BF384 -sub_81BF384: @ 81BF384 - push {r4,lr} - ldr r0, =0x0000ffff - bl DisableInterrupts - movs r0, 0x1 - bl EnableInterrupts - bl m4aSoundVSyncOff - movs r0, 0 - bl SetVBlankCallback - bl ResetAllObjectData - bl ResetTasks - bl remove_some_task - movs r0, 0 - movs r1, 0 - bl SetGpuReg - ldr r4, =gUnknown_030012B8 - movs r0, 0x50 - bl AllocZeroed - str r0, [r4] - movs r1, 0 - strb r1, [r0] - ldr r1, [r4] - movs r0, 0x6 - strb r0, [r1, 0x1] - ldr r0, =sub_81BF3DC - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BF384 - - thumb_func_start sub_81BF3DC -sub_81BF3DC: @ 81BF3DC - push {r4,r5,lr} - sub sp, 0x4 - ldr r1, =gUnknown_030012B8 - ldr r0, [r1] - ldrb r0, [r0] - adds r5, r1, 0 - cmp r0, 0x7 - bls _081BF3EE - b _081BF592 -_081BF3EE: - lsls r0, 2 - ldr r1, =_081BF400 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081BF400: - .4byte _081BF420 - .4byte _081BF430 - .4byte _081BF45C - .4byte _081BF488 - .4byte _081BF4BC - .4byte _081BF514 - .4byte _081BF552 - .4byte _081BF574 -_081BF420: - bl sub_81BF5A4 - ldr r0, =gUnknown_030012B8 - ldr r1, [r0] - movs r0, 0x1 - b _081BF590 - .pool -_081BF430: - movs r0, 0x5 - bl sub_81BF7A4 - cmp r0, 0x5 - beq _081BF43C - b _081BF592 -_081BF43C: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081BF44A - b _081BF592 -_081BF44A: - ldr r0, =gUnknown_030012B8 - ldr r1, [r0] - movs r0, 0x2 - b _081BF590 - .pool -_081BF45C: - movs r0, 0 - bl sub_81BF7A4 - cmp r0, 0 - beq _081BF468 - b _081BF592 -_081BF468: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081BF476 - b _081BF592 -_081BF476: - ldr r0, =gUnknown_030012B8 - ldr r1, [r0] - movs r0, 0x3 - b _081BF590 - .pool -_081BF488: - movs r0, 0x1 - bl sub_81BF7A4 - cmp r0, 0x1 - beq _081BF494 - b _081BF592 -_081BF494: - ldr r4, =gUnknown_030012B8 - ldr r0, [r4] - ldr r1, =gUnknown_089A6550 - str r1, [r0, 0x2C] - adds r0, 0x4F - movs r5, 0 - strb r5, [r0] - ldr r0, [r4] - adds r0, 0x4 - bl MultiBootInit - ldr r1, [r4] - strh r5, [r1, 0x2] - movs r0, 0x4 - b _081BF590 - .pool -_081BF4BC: - adds r4, r5, 0 - ldr r0, [r4] - adds r0, 0x4 - bl MultiBootMain - ldr r4, [r4] - ldrb r0, [r4, 0x1C] - cmp r0, 0 - bne _081BF4D8 - ldr r0, [r4, 0x20] - ldr r1, =0x00020200 - ands r0, r1 - cmp r0, r1 - beq _081BF4E4 -_081BF4D8: - movs r0, 0 - strh r0, [r4, 0x2] - b _081BF592 - .pool -_081BF4E4: - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xB4 - bls _081BF592 - adds r0, r4, 0x4 - ldr r1, =gMultiBootProgram_BerryGlitchFix_Start - ldr r2, =gMultiBootProgram_BerryGlitchFix_End - subs r2, r1 - movs r3, 0x1 - str r3, [sp] - movs r3, 0x4 - bl MultiBootStartMaster - ldr r1, [r5] - movs r0, 0x5 - b _081BF590 - .pool -_081BF514: - movs r0, 0x2 - bl sub_81BF7A4 - adds r4, r0, 0 - cmp r4, 0x2 - bne _081BF592 - ldr r5, =gUnknown_030012B8 - ldr r0, [r5] - adds r0, 0x4 - bl MultiBootMain - ldr r0, [r5] - adds r0, 0x4 - bl MultiBootCheckComplete - cmp r0, 0 - beq _081BF540 - ldr r1, [r5] - movs r0, 0x6 - b _081BF590 - .pool -_081BF540: - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - ands r4, r0 - cmp r4, 0 - bne _081BF592 - movs r0, 0x7 - b _081BF590 -_081BF552: - movs r0, 0x3 - bl sub_81BF7A4 - cmp r0, 0x3 - bne _081BF592 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081BF592 - bl DoSoftReset - b _081BF592 - .pool -_081BF574: - movs r0, 0x4 - bl sub_81BF7A4 - cmp r0, 0x4 - bne _081BF592 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081BF592 - ldr r0, =gUnknown_030012B8 - ldr r1, [r0] - movs r0, 0x1 -_081BF590: - strb r0, [r1] -_081BF592: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BF3DC - - thumb_func_start sub_81BF5A4 -sub_81BF5A4: @ 81BF5A4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x10 - movs r0, 0x8 - movs r1, 0 - bl SetGpuReg - movs r0, 0xA - movs r1, 0 - bl SetGpuReg - movs r0, 0x10 - movs r1, 0 - bl SetGpuReg - movs r0, 0x12 - movs r1, 0 - bl SetGpuReg - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - movs r0, 0x16 - movs r1, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r1, 0 - str r1, [sp, 0xC] - ldr r4, =0x040000d4 - add r0, sp, 0xC - str r0, [r4] - movs r0, 0xC0 - lsls r0, 19 - str r0, [r4, 0x4] - ldr r0, =0x85006000 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - str r1, [sp, 0xC] - add r0, sp, 0xC - str r0, [r4] - movs r0, 0xE0 - lsls r0, 19 - str r0, [r4, 0x4] - ldr r2, =0x85000100 - str r2, [r4, 0x8] - ldr r0, [r4, 0x8] - str r1, [sp, 0xC] - add r0, sp, 0xC - str r0, [r4] - movs r0, 0xA0 - lsls r0, 19 - str r0, [r4, 0x4] - str r2, [r4, 0x8] - ldr r0, [r4, 0x8] - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_08618108 - movs r0, 0 - movs r2, 0x2 - bl InitBgsFromTemplates - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - ldr r0, =gUnknown_08618110 - bl InitWindows - bl DeactivateAllTextPrinters - ldr r0, =gUnknown_08618138 - str r0, [r4] - ldr r0, =0x050001e0 - str r0, [r4, 0x4] - ldr r0, =0x84000008 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - movs r0, 0 - movs r1, 0x40 - bl SetGpuReg - movs r0, 0x2 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x3 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0 - movs r1, 0xAA - bl FillWindowPixelBuffer - ldr r5, =gUnknown_08617E9B - movs r0, 0 - adds r1, r5, 0 - movs r2, 0 - bl GetStringWidth - adds r1, r0, 0 - movs r4, 0x78 - subs r0, r4, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - lsls r2, r0, 24 - lsrs r2, 24 - ldr r6, =gUnknown_0861815B - str r6, [sp] - movs r0, 0x1 - negs r0, r0 - mov r8, r0 - str r0, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0x2 - movs r1, 0 - movs r3, 0x3 - bl box_print - ldr r5, =gUnknown_08617E8D - movs r0, 0 - adds r1, r5, 0 - movs r2, 0 - bl GetStringWidth - adds r1, r0, 0 - subs r4, r1 - lsrs r0, r4, 31 - adds r4, r0 - asrs r4, 1 - adds r0, r4, 0 - adds r0, 0x78 - lsls r2, r0, 24 - lsrs r2, 24 - str r6, [sp] - mov r0, r8 - str r0, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0x2 - movs r1, 0 - movs r3, 0x3 - bl box_print - movs r0, 0 - adds r1, r5, 0 - movs r2, 0 - bl GetStringWidth - adds r1, r0, 0 - movs r0, 0x70 - subs r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - lsls r2, r0, 24 - lsrs r2, 24 - str r6, [sp] - mov r0, r8 - str r0, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0x3 - movs r1, 0 - movs r3, 0 - bl box_print - ldr r4, =gUnknown_08617E78 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0 - bl GetStringWidth - adds r1, r0, 0 - movs r0, 0xD0 - subs r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - lsls r2, r0, 24 - lsrs r2, 24 - ldr r0, =gUnknown_08618158 - str r0, [sp] - mov r0, r8 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0 - movs r1, 0x1 - movs r3, 0x2 - bl box_print - movs r0, 0x2 - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0x3 - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0 - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BF5A4 - - thumb_func_start sub_81BF7A4 -sub_81BF7A4: @ 81BF7A4 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, =gUnknown_030012B8 - ldr r0, [r5] - ldrb r0, [r0, 0x1] - cmp r0, r4 - bne _081BF7BC - adds r0, r4, 0 - b _081BF7DC - .pool -_081BF7BC: - cmp r0, 0x6 - bne _081BF7CC - adds r0, r4, 0 - bl sub_81BF7E8 - ldr r0, [r5] - strb r4, [r0, 0x1] - b _081BF7D6 -_081BF7CC: - bl sub_81BF8D8 - ldr r1, [r5] - movs r0, 0x6 - strb r0, [r1, 0x1] -_081BF7D6: - ldr r0, =gUnknown_030012B8 - ldr r0, [r0] - ldrb r0, [r0, 0x1] -_081BF7DC: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81BF7A4 - - thumb_func_start sub_81BF7E8 -sub_81BF7E8: @ 81BF7E8 - push {r4-r6,lr} - sub sp, 0xC - adds r6, r0, 0 - movs r0, 0x20 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0x1 - movs r1, 0xAA - bl FillWindowPixelBuffer - ldr r0, =gUnknown_08618158 - str r0, [sp] - movs r0, 0x1 - negs r0, r0 - str r0, [sp, 0x4] - ldr r0, =gUnknown_08618160 - lsls r4, r6, 2 - adds r0, r4, r0 - ldr r0, [r0] - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - movs r3, 0 - bl box_print - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x1 - movs r1, 0x2 - bl CopyWindowToVram - cmp r6, 0x5 - bhi _081BF87E - ldr r0, =_081BF850 - adds r0, r4, r0 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081BF850: - .4byte _081BF868 - .4byte _081BF870 - .4byte _081BF868 - .4byte _081BF868 - .4byte _081BF868 - .4byte _081BF878 -_081BF868: - movs r0, 0x2 - bl PutWindowTilemap - b _081BF87E -_081BF870: - movs r0, 0x3 - bl PutWindowTilemap - b _081BF87E -_081BF878: - movs r0, 0 - bl PutWindowTilemap -_081BF87E: - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r5, =gUnknown_08618178 - lsls r4, r6, 1 - adds r4, r6 - lsls r4, 2 - adds r0, r4, r5 - ldr r0, [r0] - ldr r1, =0x06004000 - bl LZ77UnCompVram - adds r0, r5, 0x4 - adds r0, r4, r0 - ldr r0, [r0] - ldr r1, =0x0600f800 - bl LZ77UnCompVram - adds r5, 0x8 - adds r4, r5 - ldr r0, [r4] - movs r1, 0xA0 - lsls r1, 19 - ldr r2, =0x04000040 - bl CpuSet - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BF7E8 - - thumb_func_start sub_81BF8D8 -sub_81BF8D8: @ 81BF8D8 - push {lr} - movs r0, 0 - bl HideBg - movs r0, 0x1 - bl HideBg - pop {r0} - bx r0 - thumb_func_end sub_81BF8D8 - - thumb_func_start sub_81BF8EC -sub_81BF8EC: @ 81BF8EC - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r1 - adds r5, r2, 0 - adds r6, r3, 0 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - ldr r4, =gUnknown_0203CF1C - ldr r0, =0x000040f8 - bl AllocZeroed - str r0, [r4] - ldr r1, =0x000040bc - adds r0, r1 - strb r7, [r0] - ldr r0, [r4] - mov r2, r8 - str r2, [r0] - adds r1, 0x2 - adds r0, r1 - strb r5, [r0] - ldr r0, [r4] - ldr r2, =0x000040bf - adds r0, r2 - strb r6, [r0] - ldr r1, [r4] - ldr r0, [sp, 0x18] - str r0, [r1, 0x4] - cmp r7, 0x2 - bne _081BF94C - subs r2, 0x2 - adds r1, r2 - movs r0, 0x1 - b _081BF952 - .pool -_081BF94C: - ldr r0, =0x000040bd - adds r1, r0 - movs r0, 0 -_081BF952: - strb r0, [r1] - cmp r7, 0x1 - beq _081BF9A0 - cmp r7, 0x1 - bgt _081BF96C - cmp r7, 0 - beq _081BF97C - ldr r2, =gUnknown_0203CF1C - b _081BF9EE - .pool -_081BF96C: - cmp r7, 0x2 - beq _081BF97C - cmp r7, 0x3 - beq _081BF9D0 - ldr r2, =gUnknown_0203CF1C - b _081BF9EE - .pool -_081BF97C: - ldr r2, =gUnknown_0203CF1C - ldr r0, [r2] - ldr r1, =0x000040c1 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - ldr r1, =0x000040c2 - adds r0, r1 - movs r1, 0x3 - b _081BF9EC - .pool -_081BF9A0: - ldr r2, =gUnknown_0203CF1C - ldr r0, [r2] - ldr r1, =0x000040c1 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - ldr r1, =0x000040c2 - adds r0, r1 - movs r1, 0x3 - strb r1, [r0] - ldr r0, [r2] - ldr r1, =0x000040c8 - adds r0, r1 - strb r7, [r0] - b _081BF9EE - .pool -_081BF9D0: - ldr r2, =gUnknown_0203CF1C - ldr r0, [r2] - ldr r1, =0x000040c1 - adds r0, r1 - movs r1, 0x2 - strb r1, [r0] - ldr r0, [r2] - ldr r1, =0x000040c2 - adds r0, r1 - strb r7, [r0] - ldr r0, [r2] - adds r1, 0x1 - adds r0, r1 - movs r1, 0x1 -_081BF9EC: - strb r1, [r0] -_081BF9EE: - ldr r0, [r2] - ldr r2, =0x000040c1 - adds r1, r0, r2 - ldrb r1, [r1] - subs r2, 0x1 - adds r0, r2 - strb r1, [r0] - movs r0, 0xFF - bl sub_81C488C - ldr r0, =gUnknown_020244D4 - ldr r0, [r0] - cmp r0, 0 - bne _081BFA12 - movs r0, 0 - movs r1, 0 - bl sub_806F2AC -_081BFA12: - ldr r0, =sub_81BFAE4 - bl SetMainCallback2 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BF8EC - - thumb_func_start sub_81BFA38 -sub_81BFA38: @ 81BFA38 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - mov r8, r0 - adds r4, r1, 0 - adds r5, r2, 0 - ldr r6, [sp, 0x18] - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 16 - lsrs r6, 16 - str r3, [sp] - movs r0, 0x3 - mov r1, r8 - adds r2, r4, 0 - adds r3, r5, 0 - bl sub_81BF8EC - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c4 - adds r0, r1 - strh r6, [r0] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BFA38 - - thumb_func_start sub_81BFA80 -sub_81BFA80: @ 81BFA80 - push {r4,lr} - sub sp, 0x4 - ldr r4, [sp, 0xC] - lsls r0, 24 - lsrs r0, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - str r4, [sp] - bl sub_81BF8EC - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040ef - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BFA80 - - thumb_func_start sub_81BFAB4 -sub_81BFAB4: @ 81BFAB4 - push {lr} - bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_81BFAB4 - - thumb_func_start sub_81BFAD0 -sub_81BFAD0: @ 81BFAD0 - push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_81BFAD0 - - thumb_func_start sub_81BFAE4 -sub_81BFAE4: @ 81BFAE4 - push {lr} -_081BFAE6: - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081BFB0A - bl sub_81BFB10 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081BFB0A - bl sub_81221AC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081BFAE6 -_081BFB0A: - pop {r0} - bx r0 - thumb_func_end sub_81BFAE4 - - thumb_func_start sub_81BFB10 -sub_81BFB10: @ 81BFB10 - push {r4,lr} - sub sp, 0x4 - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x18 - bls _081BFB24 - b _081BFE00 -_081BFB24: - lsls r0, 2 - ldr r1, =_081BFB38 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081BFB38: - .4byte _081BFB9C - .4byte _081BFBAA - .4byte _081BFBBC - .4byte _081BFBD0 - .4byte _081BFBE4 - .4byte _081BFBEA - .4byte _081BFC04 - .4byte _081BFC20 - .4byte _081BFC26 - .4byte _081BFC38 - .4byte _081BFC58 - .4byte _081BFC7C - .4byte _081BFC82 - .4byte _081BFC94 - .4byte _081BFCAC - .4byte _081BFCC0 - .4byte _081BFCD8 - .4byte _081BFCF8 - .4byte _081BFD34 - .4byte _081BFD50 - .4byte _081BFD60 - .4byte _081BFD74 - .4byte _081BFD7A - .4byte _081BFDB0 - .4byte _081BFDCC -_081BFB9C: - bl SetVBlankHBlankCallbacksToNull - bl sub_8121DA0 - bl clear_scheduled_bg_copies_to_vram - b _081BFDE6 -_081BFBAA: - bl remove_some_task - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081BFDEE - .pool -_081BFBBC: - bl ResetPaletteFade - ldr r2, =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - b _081BFDE4 - .pool -_081BFBD0: - bl ResetAllObjectData - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081BFDEE - .pool -_081BFBE4: - bl ResetObjectPaletteAllocator - b _081BFDE6 -_081BFBEA: - bl sub_81BFE24 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040f0 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - b _081BFDE6 - .pool -_081BFC04: - bl sub_81BFEB0 - lsls r0, 24 - cmp r0, 0 - bne _081BFC10 - b _081BFE18 -_081BFC10: - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081BFDEE - .pool -_081BFC20: - bl sub_81C2554 - b _081BFDE6 -_081BFC26: - bl sub_81C1BA0 - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081BFDEE - .pool -_081BFC38: - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - adds r0, 0xC - bl sub_81C0098 - ldr r0, [r4] - ldr r1, =0x000040f0 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - b _081BFDE6 - .pool -_081BFC58: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0xC - bl sub_81C00F0 - lsls r0, 24 - cmp r0, 0 - bne _081BFC6A - b _081BFE18 -_081BFC6A: - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081BFDEE - .pool -_081BFC7C: - bl sub_81C25E8 - b _081BFDE6 -_081BFC82: - bl sub_81C286C - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081BFDEE - .pool -_081BFC94: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c0 - adds r0, r1 - ldrb r0, [r0] - bl sub_81C2D9C - b _081BFDE6 - .pool -_081BFCAC: - bl sub_81C0348 - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081BFDEE - .pool -_081BFCC0: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c0 - adds r0, r1 - ldrb r0, [r0] - bl sub_81C2AFC - b _081BFDE6 - .pool -_081BFCD8: - bl sub_81C4190 - bl sub_81C42C8 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040f0 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - b _081BFDE6 - .pool -_081BFCF8: - ldr r4, =gUnknown_0203CF1C - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0xC - ldr r2, =0x000040f0 - adds r1, r2 - bl sub_81C45F4 - ldr r1, [r4] - ldr r2, =0x000040d3 - adds r1, r2 - strb r0, [r1] - ldr r1, [r4] - adds r2, r1, r2 - ldrb r0, [r2] - cmp r0, 0xFF - bne _081BFD1C - b _081BFE18 -_081BFD1C: - ldr r0, =0x000040f0 - adds r1, r0 - movs r0, 0 - strh r0, [r1] - b _081BFDE6 - .pool -_081BFD34: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0xC - bl sub_81C4984 - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081BFDEE - .pool -_081BFD50: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0xC - bl sub_81C4A08 - b _081BFDE6 - .pool -_081BFD60: - bl sub_81C4A88 - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081BFDEE - .pool -_081BFD74: - bl sub_81C4280 - b _081BFDE6 -_081BFD7A: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040bc - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3 - beq _081BFDA0 - ldr r0, =sub_81C0510 - movs r1, 0 - bl CreateTask - b _081BFDE6 - .pool -_081BFDA0: - ldr r0, =sub_81C171C - movs r1, 0 - bl CreateTask - b _081BFDE6 - .pool -_081BFDB0: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - b _081BFDEE - .pool -_081BFDCC: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r2, =gPaletteFade - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 -_081BFDE4: - strb r0, [r2, 0x8] -_081BFDE6: - ldr r1, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r1, r2 -_081BFDEE: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _081BFE18 - .pool -_081BFE00: - ldr r0, =sub_81BFAD0 - bl SetVBlankCallback - ldr r0, =sub_81BFAB4 - bl SetMainCallback2 - movs r0, 0x1 - b _081BFE1A - .pool -_081BFE18: - movs r0, 0 -_081BFE1A: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81BFB10 - - thumb_func_start sub_81BFE24 -sub_81BFE24: @ 81BFE24 - push {r4,lr} - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_0861CBB4 - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - ldr r4, =gUnknown_0203CF1C - ldr r1, [r4] - ldr r0, =0x000020bc - adds r1, r0 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x000010bc - adds r1, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - ldr r1, [r4] - adds r1, 0xBC - movs r0, 0x3 - bl SetBgTilemapBuffer - bl sub_8121E10 - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x3 - bl schedule_bg_copy_tilemap_to_vram - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BFE24 - - thumb_func_start sub_81BFEB0 -sub_81BFEB0: @ 81BFEB0 - push {r4,lr} - sub sp, 0x4 - ldr r1, =gUnknown_0203CF1C - ldr r0, [r1] - ldr r2, =0x000040f0 - adds r0, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - adds r4, r1, 0 - cmp r0, 0xC - bls _081BFEC8 - b _081C008C -_081BFEC8: - lsls r0, 2 - ldr r1, =_081BFEE0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081BFEE0: - .4byte _081BFF14 - .4byte _081BFF30 - .4byte _081BFF60 - .4byte _081BFF78 - .4byte _081BFF90 - .4byte _081BFFA8 - .4byte _081BFFC0 - .4byte _081BFFF0 - .4byte _081BFFFC - .4byte _081C0018 - .4byte _081C0024 - .4byte _081C0040 - .4byte _081C0064 -_081BFF14: - bl reset_temp_tile_data_buffers - ldr r1, =gUnknown_08D97D0C - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - b _081C0046 - .pool -_081BFF30: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081BFF3E - b _081C008C -_081BFF3E: - ldr r0, =gUnknown_08D9862C - ldr r4, =gUnknown_0203CF1C - ldr r1, [r4] - adds r1, 0xBC - bl LZDecompressWram - ldr r1, [r4] - ldr r2, =0x000040f0 - adds r1, r2 - b _081C004E - .pool -_081BFF60: - ldr r0, =gUnknown_08D98CC8 - ldr r1, [r4] - ldr r2, =0x000008bc - adds r1, r2 - bl LZDecompressWram - ldr r1, [r4] - b _081C004A - .pool -_081BFF78: - ldr r0, =gUnknown_08D987FC - ldr r1, [r4] - ldr r2, =0x000018bc - adds r1, r2 - bl LZDecompressWram - ldr r1, [r4] - b _081C004A - .pool -_081BFF90: - ldr r0, =gUnknown_08D9898C - ldr r1, [r4] - ldr r2, =0x000028bc - adds r1, r2 - bl LZDecompressWram - ldr r1, [r4] - b _081C004A - .pool -_081BFFA8: - ldr r0, =gUnknown_08D98B28 - ldr r1, [r4] - ldr r2, =0x000038bc - adds r1, r2 - bl LZDecompressWram - ldr r1, [r4] - b _081C004A - .pool -_081BFFC0: - ldr r0, =gUnknown_08D9853C - movs r2, 0x80 - lsls r2, 1 - movs r1, 0 - bl LoadCompressedPalette - ldr r0, =gUnknown_08D85620 - movs r1, 0x81 - movs r2, 0x1E - bl LoadPalette - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040f0 - adds r1, r2 - b _081C004E - .pool -_081BFFF0: - ldr r0, =gUnknown_0861CFBC - bl LoadCompressedObjectPic - b _081C0046 - .pool -_081BFFFC: - ldr r0, =gUnknown_0861D074 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040f0 - adds r1, r2 - b _081C004E - .pool -_081C0018: - ldr r0, =gUnknown_0861D0F8 - bl LoadCompressedObjectPic - b _081C0046 - .pool -_081C0024: - ldr r0, =gUnknown_0861D100 - bl LoadCompressedObjectPalette - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040f0 - adds r1, r2 - b _081C004E - .pool -_081C0040: - ldr r0, =gUnknown_0861D07C - bl LoadCompressedObjectPalette -_081C0046: - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] -_081C004A: - ldr r0, =0x000040f0 - adds r1, r0 -_081C004E: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _081C008C - .pool -_081C0064: - ldr r0, =gUnknown_08D97B84 - movs r1, 0xE8 - lsls r1, 1 - movs r2, 0x60 - bl LoadCompressedPalette - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040f0 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - movs r0, 0x1 - b _081C008E - .pool -_081C008C: - movs r0, 0 -_081C008E: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81BFEB0 - - thumb_func_start sub_81C0098 -sub_81C0098: @ 81C0098 - push {r4,lr} - adds r3, r0, 0 - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040bd - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _081C00D0 - ldr r2, [r1] - ldr r4, =0x000040be - adds r0, r1, r4 - ldrb r1, [r0] - movs r0, 0x64 - muls r1, r0 - adds r1, r2 - adds r0, r3, 0 - movs r2, 0x64 - bl memcpy - b _081C00E6 - .pool -_081C00D0: - ldr r0, [r1] - ldr r2, =0x000040be - adds r1, r2 - ldrb r2, [r1] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - adds r0, r1 - adds r1, r3, 0 - bl sub_8069004 -_081C00E6: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C0098 - - thumb_func_start sub_81C00F0 -sub_81C00F0: @ 81C00F0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - ldr r0, =gUnknown_0203CF1C - ldr r7, [r0] - adds r6, r7, 0 - adds r6, 0x70 - ldr r1, =0x000040f0 - adds r0, r7, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0x1 - beq _081C0198 - cmp r0, 0x1 - bgt _081C0120 - cmp r0, 0 - beq _081C012C - b _081C0314 - .pool -_081C0120: - cmp r0, 0x2 - beq _081C01DC - cmp r0, 0x3 - bne _081C012A - b _081C02A8 -_081C012A: - b _081C0314 -_081C012C: - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - strh r0, [r6] - adds r0, r5, 0 - movs r1, 0x41 - bl GetMonData - strh r0, [r6, 0x2] - adds r0, r5, 0 - movs r1, 0x19 - bl GetMonData - str r0, [r6, 0x10] - adds r0, r5, 0 - movs r1, 0x38 - bl GetMonData - strb r0, [r6, 0x5] - adds r0, r5, 0 - movs r1, 0x2E - bl GetMonData - strb r0, [r6, 0x8] - adds r0, r5, 0 - movs r1, 0xC - bl GetMonData - strh r0, [r6, 0x2E] - adds r0, r5, 0 - movs r1, 0 - bl GetMonData - str r0, [r6, 0xC] - adds r0, r5, 0 - movs r1, 0x4 - bl GetMonData - adds r1, r7, 0 - adds r1, 0xA5 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - beq _081C018C - movs r0, 0x1 - strb r0, [r6, 0x4] - b _081C0322 -_081C018C: - adds r0, r5, 0 - movs r1, 0x2D - bl GetMonData - strb r0, [r6, 0x4] - b _081C0322 -_081C0198: - movs r4, 0 - movs r0, 0x8C - adds r0, r7 - mov r8, r0 - movs r1, 0xA4 - adds r1, r7 - mov r9, r1 - adds r6, r7, 0 - adds r6, 0x84 -_081C01AA: - adds r1, r4, 0 - adds r1, 0xD - adds r0, r5, 0 - bl GetMonData - strh r0, [r6] - adds r1, r4, 0 - adds r1, 0x11 - adds r0, r5, 0 - bl GetMonData - mov r2, r8 - adds r1, r2, r4 - strb r0, [r1] - adds r6, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - bls _081C01AA - adds r0, r5, 0 - movs r1, 0x15 - bl GetMonData - mov r1, r9 - strb r0, [r1] - b _081C0322 -_081C01DC: - ldr r1, [r7] - ldr r0, =gPlayerParty - cmp r1, r0 - beq _081C01F8 - ldr r2, =0x000040bc - adds r0, r7, r2 - ldrb r0, [r0] - cmp r0, 0x2 - beq _081C01F8 - ldr r1, =0x000040ef - adds r0, r7, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _081C0254 -_081C01F8: - adds r0, r5, 0 - bl GetNature - adds r1, r6, 0 - adds r1, 0x33 - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - strh r0, [r6, 0x20] - adds r0, r5, 0 - movs r1, 0x3A - bl GetMonData - strh r0, [r6, 0x22] - adds r0, r5, 0 - movs r1, 0x3B - bl GetMonData - strh r0, [r6, 0x24] - adds r0, r5, 0 - movs r1, 0x3C - bl GetMonData - strh r0, [r6, 0x26] - adds r0, r5, 0 - movs r1, 0x3E - bl GetMonData - strh r0, [r6, 0x28] - adds r0, r5, 0 - movs r1, 0x3F - bl GetMonData - strh r0, [r6, 0x2A] - adds r0, r5, 0 - movs r1, 0x3D - b _081C02A0 - .pool -_081C0254: - adds r0, r5, 0 - bl GetNature - adds r1, r7, 0 - adds r1, 0xA3 - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - strh r0, [r6, 0x20] - adds r0, r5, 0 - movs r1, 0x3A - bl GetMonData - strh r0, [r6, 0x22] - adds r0, r5, 0 - movs r1, 0x54 - bl GetMonData - strh r0, [r6, 0x24] - adds r0, r5, 0 - movs r1, 0x55 - bl GetMonData - strh r0, [r6, 0x26] - adds r0, r5, 0 - movs r1, 0x57 - bl GetMonData - strh r0, [r6, 0x28] - adds r0, r5, 0 - movs r1, 0x58 - bl GetMonData - strh r0, [r6, 0x2A] - adds r0, r5, 0 - movs r1, 0x56 -_081C02A0: - bl GetMonData - strh r0, [r6, 0x2C] - b _081C0322 -_081C02A8: - adds r4, r7, 0 - adds r4, 0xA6 - adds r0, r5, 0 - movs r1, 0x7 - adds r2, r4, 0 - bl GetMonData - adds r0, r5, 0 - movs r1, 0x3 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl ConvertInternationalString - adds r0, r5, 0 - bl sub_81B205C - strb r0, [r6, 0x7] - adds r0, r5, 0 - movs r1, 0x31 - bl GetMonData - adds r1, r7, 0 - adds r1, 0xA2 - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x1 - bl GetMonData - str r0, [r6, 0x48] - adds r0, r5, 0 - movs r1, 0x23 - bl GetMonData - strb r0, [r6, 0x9] - adds r0, r5, 0 - movs r1, 0x24 - bl GetMonData - strb r0, [r6, 0xA] - adds r0, r5, 0 - movs r1, 0x25 - bl GetMonData - strb r0, [r6, 0xB] - adds r0, r5, 0 - movs r1, 0x20 - bl GetMonData - strh r0, [r6, 0x30] - b _081C0322 -_081C0314: - adds r0, r5, 0 - movs r1, 0x52 - bl GetMonData - strb r0, [r6, 0x6] - movs r0, 0x1 - b _081C0332 -_081C0322: - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040f0 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r0, 0 -_081C0332: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C00F0 - - thumb_func_start sub_81C0348 -sub_81C0348: @ 81C0348 - push {r4-r6,lr} - ldr r6, =gUnknown_0203CF1C - ldr r2, [r6] - ldr r1, =0x000040c0 - adds r0, r2, r1 - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _081C037C - movs r0, 0 - movs r1, 0xFF - bl sub_81C1DA4 - movs r0, 0 - movs r1, 0xFF - movs r2, 0 - bl sub_81C1EFC - b _081C03D8 - .pool -_081C037C: - ldr r1, =0x000040c6 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r1, 1 - adds r0, r2, 0 - adds r0, 0x84 - adds r0, r1 - ldrh r0, [r0] - bl sub_81C240C - ldr r0, [r6] - ldr r5, =0x000020bc - adds r0, r5 - movs r1, 0x3 - movs r2, 0 - bl sub_81C2194 - ldr r0, [r6] - ldr r4, =0x000030bc - adds r0, r4 - movs r1, 0x1 - movs r2, 0 - bl sub_81C2194 - ldr r1, [r6] - adds r1, r4 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r6] - adds r1, r5 - movs r0, 0x2 - bl SetBgTilemapBuffer - movs r1, 0x80 - lsls r1, 9 - movs r0, 0x2 - movs r2, 0x1 - bl ChangeBgX - movs r0, 0x13 - bl ClearWindowTilemap - movs r0, 0xD - bl ClearWindowTilemap -_081C03D8: - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x77 - ldrb r0, [r0] - cmp r0, 0 - bne _081C0400 - movs r0, 0 - movs r1, 0xFF - bl sub_81C2074 - b _081C0416 - .pool -_081C0400: - ldr r2, =0x000040c0 - adds r0, r1, r2 - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _081C0416 - movs r0, 0xD - bl PutWindowTilemap -_081C0416: - bl sub_81C2524 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0xC - bl sub_81C2228 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C0348 - - thumb_func_start sub_81C0434 -sub_81C0434: @ 81C0434 - push {lr} - bl FreeAllWindowBuffers - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - bl Free - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C0434 - - thumb_func_start sub_81C044C -sub_81C044C: @ 81C044C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81C0484 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C044C - - thumb_func_start sub_81C0484 -sub_81C0484: @ 81C0484 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C04EC - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081C04EC - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - ldr r0, [r0, 0x4] - bl SetMainCallback2 - ldr r1, =gUnknown_0203CF20 - ldr r0, [r4] - ldr r2, =0x000040be - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - bl sub_81C4898 - bl ResetAllObjectData - bl ResetObjectPaletteAllocator - bl sub_80A369C - ldr r0, =gMPlay_BGM - ldr r1, =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl - ldr r0, =gUnknown_020244D4 - ldr r0, [r0] - cmp r0, 0 - bne _081C04E2 - movs r0, 0 - bl sub_806F47C -_081C04E2: - bl sub_81C0434 - adds r0, r5, 0 - bl DestroyTask -_081C04EC: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C0484 - - thumb_func_start sub_81C0510 -sub_81C0510: @ 81C0510 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C05FE - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r2, 0x80 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _081C05FE - ldr r5, =gMain - ldrh r1, [r5, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081C0550 - movs r1, 0x1 - negs r1, r1 - adds r0, r4, 0 - bl sub_81C0604 - b _081C05FE - .pool -_081C0550: - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _081C0562 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81C0604 - b _081C05FE -_081C0562: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _081C0576 - bl GetLRKeysState - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C0582 -_081C0576: - movs r1, 0x1 - negs r1, r1 - adds r0, r4, 0 - bl sub_81C0A8C - b _081C05FE -_081C0582: - ldrh r1, [r5, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _081C0598 - bl GetLRKeysState - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _081C05A2 -_081C0598: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81C0A8C - b _081C05FE -_081C05A2: - ldrh r1, [r5, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081C05E6 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c0 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _081C05FE - cmp r0, 0 - bne _081C05D8 - bl sub_81C48F0 - movs r0, 0x5 - bl audio_play - adds r0, r4, 0 - bl sub_81C044C - b _081C05FE - .pool -_081C05D8: - movs r0, 0x5 - bl audio_play - adds r0, r4, 0 - bl sub_81C0E48 - b _081C05FE -_081C05E6: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081C05FE - bl sub_81C48F0 - movs r0, 0x5 - bl audio_play - adds r0, r4, 0 - bl sub_81C044C -_081C05FE: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81C0510 - - thumb_func_start sub_81C0604 -sub_81C0604: @ 81C0604 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - adds r4, r5, 0 - ldr r1, =gUnknown_0203CF1C - ldr r3, [r1] - ldr r2, =0x000040c3 - adds r0, r3, r2 - ldrb r0, [r0] - adds r6, r1, 0 - cmp r0, 0 - bne _081C06EE - ldr r1, =0x000040bd - adds r0, r3, r1 - ldrb r2, [r0] - cmp r2, 0x1 - bne _081C0678 - adds r1, 0x3 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _081C0654 - lsls r1, r5, 24 - asrs r1, 24 - movs r4, 0x2 - eors r1, r2 - negs r0, r1 - orrs r0, r1 - asrs r0, 31 - ands r4, r0 - b _081C065C - .pool -_081C0654: - movs r4, 0x3 - cmp r5, 0x1 - bne _081C065C - movs r4, 0x1 -_081C065C: - ldr r2, [r6] - ldr r0, [r2] - ldr r3, =0x000040be - adds r1, r2, r3 - ldrb r1, [r1] - adds r3, 0x1 - adds r2, r3 - ldrb r2, [r2] - adds r3, r4, 0 - bl sub_80D214C - b _081C0696 - .pool -_081C0678: - bl sub_81B1250 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C068E - lsls r0, r5, 24 - asrs r0, 24 - bl sub_81C09B4 - b _081C0696 -_081C068E: - lsls r0, r4, 24 - asrs r0, 24 - bl sub_81C08F8 -_081C0696: - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _081C06EE - movs r0, 0x5 - bl audio_play - ldr r5, =gUnknown_0203CF1C - ldr r0, [r5] - adds r0, 0x77 - ldrb r0, [r0] - cmp r0, 0 - beq _081C06D4 - movs r0, 0x2 - movs r1, 0x1 - bl sub_81C4204 - movs r0, 0xD - bl ClearWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0 - movs r1, 0x2 - bl sub_81C2074 -_081C06D4: - ldr r0, [r5] - ldr r1, =0x000040be - adds r0, r1 - movs r2, 0 - strb r4, [r0] - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x8] - ldr r1, =sub_81C0704 - str r1, [r0] -_081C06EE: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C0604 - - thumb_func_start sub_81C0704 -sub_81C0704: @ 81C0704 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r4, r1, 3 - ldr r6, =gTasks + 0x8 - adds r5, r4, r6 - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0xC - bls _081C071E - b _081C08BC -_081C071E: - lsls r0, 2 - ldr r1, =_081C0730 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C0730: - .4byte _081C0764 - .4byte _081C076A - .4byte _081C0780 - .4byte _081C07A8 - .4byte _081C07C8 - .4byte _081C07E0 - .4byte _081C07F0 - .4byte _081C0800 - .4byte _081C0828 - .4byte _081C086C - .4byte _081C0872 - .4byte _081C0878 - .4byte _081C0894 -_081C0764: - bl sub_80A369C - b _081C08EC -_081C076A: - bl sub_81C4898 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040d3 - b _081C0786 - .pool -_081C0780: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040d4 -_081C0786: - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - bl RemoveObjectAndFreeResources - b _081C08EC - .pool -_081C07A8: - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - adds r0, 0xC - bl sub_81C0098 - ldr r0, [r4] - ldr r1, =0x000040f0 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - b _081C08EC - .pool -_081C07C8: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0xC - bl sub_81C00F0 - lsls r0, 24 - cmp r0, 0 - bne _081C07DA - b _081C08F2 -_081C07DA: - b _081C08EC - .pool -_081C07E0: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0xC - bl sub_81C49E0 - b _081C08EC - .pool -_081C07F0: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0xC - bl sub_81C4A08 - b _081C08EC - .pool -_081C0800: - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - adds r0, 0x77 - ldrb r0, [r0] - cmp r0, 0 - beq _081C0816 - movs r1, 0x2 - negs r1, r1 - movs r0, 0xA - bl sub_81C2074 -_081C0816: - ldr r0, [r4] - adds r0, 0xC - bl sub_81C2228 - movs r0, 0 - strh r0, [r5, 0x2] - b _081C08EC - .pool -_081C0828: - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - adds r0, 0xC - adds r1, r5, 0x2 - bl sub_81C45F4 - ldr r1, [r4] - ldr r2, =0x000040d3 - adds r1, r2 - strb r0, [r1] - ldr r0, [r4] - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0xFF - beq _081C08F2 - ldr r2, =gUnknown_02020630 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strh r1, [r0, 0x32] - bl sub_81C0E24 - movs r0, 0 - strh r0, [r5, 0x2] - b _081C08EC - .pool -_081C086C: - bl sub_81C4280 - b _081C08EC -_081C0872: - bl sub_81C25E8 - b _081C08EC -_081C0878: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c0 - adds r0, r1 - ldrb r0, [r0] - bl sub_81C2D9C - bl sub_81C2524 - b _081C08EC - .pool -_081C0894: - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040d3 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0x32] - b _081C08EC - .pool -_081C08BC: - bl sub_81221EC - lsls r0, 24 - cmp r0, 0 - bne _081C08F2 - ldr r0, =sub_81C20F0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _081C08F2 - strh r0, [r5] - adds r0, r6, 0 - subs r0, 0x8 - adds r0, r4, r0 - ldr r1, =sub_81C0510 - str r1, [r0] - b _081C08F2 - .pool -_081C08EC: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] -_081C08F2: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81C0704 - - thumb_func_start sub_81C08F8 -sub_81C08F8: @ 81C08F8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0203CF1C - ldr r2, [r1] - ldr r7, [r2] - ldr r3, =0x000040c0 - adds r0, r2, r3 - ldrb r0, [r0] - adds r5, r1, 0 - cmp r0, 0 - bne _081C0960 - lsls r0, r4, 24 - asrs r3, r0, 24 - movs r1, 0x1 - negs r1, r1 - adds r6, r0, 0 - cmp r3, r1 - bne _081C0928 - ldr r1, =0x000040be - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _081C0988 -_081C0928: - asrs r0, r6, 24 - cmp r0, 0x1 - bne _081C0940 - ldr r0, [r5] - ldr r2, =0x000040be - adds r1, r0, r2 - ldr r3, =0x000040bf - adds r0, r3 - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bcs _081C0988 -_081C0940: - ldr r0, [r5] - ldr r1, =0x000040be - adds r0, r1 - ldrb r0, [r0] - adds r0, r4 - lsls r0, 24 - asrs r0, 24 - b _081C09AE - .pool -_081C0960: - ldr r3, =0x000040be - adds r0, r2, r3 - ldrb r5, [r0] - lsls r6, r4, 24 -_081C0968: - lsls r0, r5, 24 - asrs r0, 24 - asrs r1, r6, 24 - adds r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - asrs r4, r0, 24 - cmp r4, 0 - blt _081C0988 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040bf - adds r0, r1 - ldrb r0, [r0] - cmp r4, r0 - ble _081C099C -_081C0988: - movs r0, 0x1 - negs r0, r0 - b _081C09AE - .pool -_081C099C: - movs r0, 0x64 - muls r0, r4 - adds r0, r7, r0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _081C0968 - adds r0, r4, 0 -_081C09AE: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81C08F8 - - thumb_func_start sub_81C09B4 -sub_81C09B4: @ 81C09B4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - ldr r6, =gUnknown_0203CF1C - ldr r0, [r6] - ldr r1, [r0] - mov r8, r1 - movs r5, 0 - movs r2, 0 - ldr r3, =gUnknown_0861CC1C - movs r1, 0 - ldrsb r1, [r3, r1] - ldr r4, =0x000040be - adds r0, r4 - ldrb r0, [r0] - cmp r1, r0 - beq _081C09FC - adds r7, r3, 0 - adds r3, r4, 0 -_081C09E0: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x5 - bhi _081C09FC - adds r0, r2, r7 - movs r1, 0 - ldrsb r1, [r0, r1] - ldr r0, [r6] - adds r0, r3 - ldrb r0, [r0] - cmp r1, r0 - bne _081C09E0 - adds r5, r2, 0 -_081C09FC: - mov r0, r12 - lsls r6, r0, 24 - ldr r7, =gUnknown_0861CC1C -_081C0A02: - lsls r0, r5, 24 - asrs r0, 24 - asrs r1, r6, 24 - adds r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, r5, 24 - lsrs r0, r1, 24 - cmp r0, 0x5 - bhi _081C0A40 - asrs r0, r1, 24 - adds r0, r7 - movs r4, 0 - ldrsb r4, [r0, r4] - movs r0, 0x64 - muls r0, r4 - add r0, r8 - bl sub_81C0A50 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C0A02 - adds r0, r4, 0 - b _081C0A44 - .pool -_081C0A40: - movs r0, 0x1 - negs r0, r0 -_081C0A44: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81C09B4 - - thumb_func_start sub_81C0A50 -sub_81C0A50: @ 81C0A50 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _081C0A84 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040be - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _081C0A78 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _081C0A84 -_081C0A78: - movs r0, 0x1 - b _081C0A86 - .pool -_081C0A84: - movs r0, 0 -_081C0A86: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81C0A50 - - thumb_func_start sub_81C0A8C -sub_81C0A8C: @ 81C0A8C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r6, r0, 24 - str r6, [sp] - lsls r1, 24 - lsrs r3, r1, 24 - str r3, [sp, 0x4] - ldr r0, =gUnknown_0203CF1C - mov r8, r0 - ldr r2, [r0] - adds r1, r2, 0 - adds r1, 0x70 - lsls r0, r6, 2 - adds r0, r6 - lsls r7, r0, 3 - ldr r0, =gTasks + 0x8 - mov r9, r0 - adds r0, r7, r0 - str r0, [sp, 0x8] - ldrb r1, [r1, 0x4] - mov r10, r1 - cmp r1, 0 - bne _081C0B6E - lsls r0, r3, 24 - asrs r5, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r5, r0 - bne _081C0AE0 - ldr r1, =0x000040c0 - adds r0, r2, r1 - ldr r3, =0x000040c1 - adds r1, r2, r3 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _081C0B6E -_081C0AE0: - cmp r5, 0x1 - bne _081C0AF4 - ldr r1, =0x000040c0 - adds r0, r2, r1 - ldr r3, =0x000040c2 - adds r1, r2, r3 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _081C0B6E -_081C0AF4: - movs r0, 0x5 - bl audio_play - mov r1, r8 - ldr r0, [r1] - ldr r4, =0x000040c0 - adds r0, r4 - ldrb r0, [r0] - bl sub_81C2C38 - mov r2, r8 - ldr r1, [r2] - adds r1, r4 - ldrb r0, [r1] - ldr r3, [sp, 0x4] - adds r0, r3 - strb r0, [r1] - mov r1, r10 - ldr r0, [sp, 0x8] - strh r1, [r0] - cmp r5, 0x1 - bne _081C0B4C - ldr r1, =sub_81C0B8C - mov r0, r9 - subs r0, 0x8 - adds r0, r7, r0 - ldr r2, [r0] - adds r0, r6, 0 - bl SetTaskFuncWithFollowupFunc - b _081C0B5C - .pool -_081C0B4C: - ldr r1, =sub_81C0CC4 - mov r0, r9 - subs r0, 0x8 - adds r0, r7, r0 - ldr r2, [r0] - ldr r0, [sp] - bl SetTaskFuncWithFollowupFunc -_081C0B5C: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r2, =0x000040c0 - adds r0, r2 - ldrb r0, [r0] - bl sub_81C2DE4 - bl sub_81C424C -_081C0B6E: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C0A8C - - thumb_func_start sub_81C0B8C -sub_81C0B8C: @ 81C0B8C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081C0C2A - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r3, =0x000040c9 - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0 - bne _081C0BE0 - movs r0, 0x1 - strh r0, [r4, 0x2] - movs r0, 0x1 - movs r1, 0x7 - movs r2, 0x1 - bl SetBgAttribute - movs r0, 0x2 - movs r1, 0x7 - movs r2, 0x2 - bl SetBgAttribute - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - b _081C0BFE - .pool -_081C0BE0: - movs r0, 0x2 - strh r0, [r4, 0x2] - movs r0, 0x2 - movs r1, 0x7 - movs r2, 0x1 - bl SetBgAttribute - movs r0, 0x1 - movs r1, 0x7 - movs r2, 0x2 - bl SetBgAttribute - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram -_081C0BFE: - ldrb r0, [r4, 0x2] - movs r1, 0 - movs r2, 0 - bl ChangeBgX - ldrb r0, [r4, 0x2] - ldr r1, =gUnknown_0203CF1C - ldr r1, [r1] - ldr r3, =0x000040c0 - adds r2, r1, r3 - ldrb r2, [r2] - lsls r2, 12 - adds r2, 0xBC - adds r1, r2 - bl SetBgTilemapBuffer - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg -_081C0C2A: - ldrb r0, [r4, 0x2] - movs r1, 0x80 - lsls r1, 6 - movs r2, 0x1 - bl ChangeBgX - ldrh r0, [r4] - adds r0, 0x20 - strh r0, [r4] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _081C0C52 - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81C0C68 - str r0, [r1] -_081C0C52: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C0B8C - - thumb_func_start sub_81C0C68 -sub_81C0C68: @ 81C0C68 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r2, r4, 2 - adds r2, r4 - lsls r2, 3 - ldr r0, =gTasks + 0x8 - adds r2, r0 - ldr r5, =gUnknown_0203CF1C - ldr r3, [r5] - ldr r0, =0x000040c9 - adds r3, r0 - ldrb r0, [r3] - movs r1, 0x1 - eors r0, r1 - movs r1, 0 - strb r0, [r3] - strh r1, [r2, 0x2] - strh r1, [r2] - bl sub_81C1BA0 - ldr r0, [r5] - ldr r1, =0x000040c0 - adds r0, r1 - ldrb r0, [r0] - bl sub_81C2AFC - bl sub_81C4280 - bl sub_81C0E24 - adds r0, r4, 0 - bl SwitchTaskToFollowupFunc - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C0C68 - - thumb_func_start sub_81C0CC4 -sub_81C0CC4: @ 81C0CC4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081C0D0C - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c9 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _081C0CFC - movs r0, 0x2 - b _081C0CFE - .pool -_081C0CFC: - movs r0, 0x1 -_081C0CFE: - strh r0, [r4, 0x2] - ldrb r0, [r4, 0x2] - movs r1, 0x80 - lsls r1, 9 - movs r2, 0 - bl ChangeBgX -_081C0D0C: - ldrb r0, [r4, 0x2] - movs r1, 0x80 - lsls r1, 6 - movs r2, 0x2 - bl ChangeBgX - ldrh r0, [r4] - adds r0, 0x20 - strh r0, [r4] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _081C0D34 - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81C0D44 - str r0, [r1] -_081C0D34: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C0CC4 - - thumb_func_start sub_81C0D44 -sub_81C0D44: @ 81C0D44 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c9 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _081C0D8C - movs r0, 0x1 - movs r1, 0x7 - movs r2, 0x1 - bl SetBgAttribute - movs r0, 0x2 - movs r1, 0x7 - movs r2, 0x2 - bl SetBgAttribute - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - b _081C0DA6 - .pool -_081C0D8C: - movs r0, 0x2 - movs r1, 0x7 - movs r2, 0x1 - bl SetBgAttribute - movs r0, 0x1 - movs r1, 0x7 - movs r2, 0x2 - bl SetBgAttribute - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram -_081C0DA6: - ldr r6, =gUnknown_0203CF1C - ldr r2, [r6] - ldr r7, =0x000040c0 - adds r1, r2, r7 - ldrb r0, [r1] - cmp r0, 0x1 - bls _081C0DD0 - ldrb r0, [r4, 0x2] - ldrb r1, [r1] - lsls r1, 12 - ldr r3, =0xfffff0bc - adds r1, r3 - adds r1, r2, r1 - bl SetBgTilemapBuffer - ldrb r0, [r4, 0x2] - movs r1, 0x80 - lsls r1, 9 - movs r2, 0 - bl ChangeBgX -_081C0DD0: - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - ldr r2, [r6] - ldr r0, =0x000040c9 - adds r2, r0 - ldrb r0, [r2] - movs r1, 0x1 - eors r0, r1 - movs r1, 0 - strb r0, [r2] - strh r1, [r4, 0x2] - strh r1, [r4] - bl sub_81C1BA0 - ldr r0, [r6] - adds r0, r7 - ldrb r0, [r0] - bl sub_81C2AFC - bl sub_81C4280 - bl sub_81C0E24 - adds r0, r5, 0 - bl SwitchTaskToFollowupFunc - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C0D44 - - thumb_func_start sub_81C0E24 -sub_81C0E24: @ 81C0E24 - push {lr} - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040c0 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x1 - bne _081C0E3C - adds r0, r1, 0 - adds r0, 0xC - bl sub_81C22CC -_081C0E3C: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C0E24 - - thumb_func_start sub_81C0E48 -sub_81C0E48: @ 81C0E48 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r5, =gUnknown_0203CF1C - ldr r0, [r5] - ldr r2, =0x000040c6 - adds r0, r2 - movs r1, 0 - strb r1, [r0] - ldr r1, [r5] - adds r2, r1, r2 - ldrb r0, [r2] - lsls r0, 1 - adds r1, 0x84 - adds r1, r0 - ldrh r6, [r1] - mov r8, r6 - movs r0, 0x13 - bl ClearWindowTilemap - ldr r2, =gUnknown_02020630 - ldr r0, [r5] - ldr r1, =0x000040d5 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _081C0E96 - movs r0, 0xD - bl ClearWindowTilemap -_081C0E96: - movs r4, 0x3 - negs r4, r4 - movs r0, 0x9 - adds r1, r4, 0 - bl sub_81C1DA4 - movs r0, 0x9 - adds r1, r4, 0 - adds r2, r6, 0 - bl sub_81C1EFC - ldr r0, [r5] - ldr r1, =0x000040c8 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _081C0EC4 - movs r0, 0x5 - bl ClearWindowTilemap - movs r0, 0x6 - bl PutWindowTilemap -_081C0EC4: - ldr r0, [r5] - ldr r1, =0x000020bc - adds r0, r1 - movs r1, 0x3 - movs r2, 0 - bl sub_81C2194 - ldr r0, [r5] - ldr r1, =0x000030bc - adds r0, r1 - movs r1, 0x1 - movs r2, 0 - bl sub_81C2194 - mov r0, r8 - bl sub_81C3E9C - bl sub_81C3F44 - bl sub_81C44F0 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x8 - bl sub_81C4AF8 - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81C0F44 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C0E48 - - thumb_func_start sub_81C0F44 -sub_81C0F44: @ 81C0F44 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C103A - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081C0F98 - movs r0, 0x4 - strh r0, [r4] - movs r1, 0x1 - negs r1, r1 - ldr r0, =gUnknown_0203CF1C - ldr r2, [r0] - ldr r0, =0x000040c6 - adds r2, r0 - adds r0, r4, 0 - bl sub_81C1070 - b _081C103A - .pool -_081C0F98: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081C0FC0 - movs r0, 0x4 - strh r0, [r4] - ldr r0, =gUnknown_0203CF1C - ldr r2, [r0] - ldr r0, =0x000040c6 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81C1070 - b _081C103A - .pool -_081C0FC0: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081C1026 - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040c8 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x1 - beq _081C0FE8 - subs r2, 0x4 - adds r0, r1, r2 - ldr r0, [r0] - ldr r1, =0x00ffffff - ands r0, r1 - movs r1, 0x80 - lsls r1, 11 - cmp r0, r1 - bne _081C1004 -_081C0FE8: - movs r0, 0x5 - bl audio_play - adds r0, r5, 0 - bl sub_81C11F4 - b _081C103A - .pool -_081C1004: - bl sub_81C1040 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C101E - movs r0, 0x5 - bl audio_play - adds r0, r5, 0 - bl sub_81C129C - b _081C103A -_081C101E: - movs r0, 0x20 - bl audio_play - b _081C103A -_081C1026: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081C103A - movs r0, 0x5 - bl audio_play - adds r0, r6, 0 - bl sub_81C11F4 -_081C103A: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81C0F44 - - thumb_func_start sub_81C1040 -sub_81C1040: @ 81C1040 - push {lr} - movs r1, 0x1 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r2, r0, 0 - adds r2, 0x84 -_081C104C: - lsls r0, r1, 1 - adds r0, r2, r0 - ldrh r0, [r0] - cmp r0, 0 - beq _081C1060 - movs r0, 0x1 - b _081C106C - .pool -_081C1060: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bls _081C104C - movs r0, 0 -_081C106C: - pop {r1} - bx r1 - thumb_func_end sub_81C1040 - - thumb_func_start sub_81C1070 -sub_81C1070: @ 81C1070 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - adds r4, r1, 0 - mov r8, r2 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl audio_play - mov r0, r8 - ldrb r6, [r0] - movs r2, 0 - lsls r4, 24 - asrs r4, 24 - mov r12, r4 - movs r1, 0 - ldrsh r4, [r7, r1] - ldrb r0, [r7] - lsls r3, r0, 24 -_081C109C: - lsls r0, r6, 24 - asrs r0, 24 - add r0, r12 - lsls r0, 24 - lsrs r6, r0, 24 - asrs r0, 24 - cmp r0, r4 - ble _081C10B0 - movs r6, 0 - b _081C10B6 -_081C10B0: - cmp r0, 0 - bge _081C10B6 - lsrs r6, r3, 24 -_081C10B6: - lsls r0, r6, 24 - asrs r1, r0, 24 - mov r9, r0 - cmp r1, 0x4 - bne _081C10C2 - b _081C11CC -_081C10C2: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - lsls r1, 1 - adds r0, 0x84 - adds r0, r1 - ldrh r5, [r0] - cmp r5, 0 - bne _081C10E2 - lsls r0, r2, 24 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r2, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _081C109C -_081C10E2: - adds r0, r5, 0 - bl sub_81C240C - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r5, 0 - bl sub_81C3E9C - mov r1, r8 - ldrb r0, [r1] - cmp r0, 0x4 - bne _081C1110 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c4 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _081C1118 -_081C1110: - movs r1, 0x2 - ldrsh r0, [r7, r1] - cmp r0, 0x1 - bne _081C115E -_081C1118: - movs r0, 0x13 - bl ClearWindowTilemap - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040d5 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _081C1142 - movs r0, 0xD - bl ClearWindowTilemap -_081C1142: - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r4, 0x3 - negs r4, r4 - movs r0, 0x9 - adds r1, r4, 0 - bl sub_81C1DA4 - movs r0, 0x9 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_81C1EFC -_081C115E: - mov r1, r8 - ldrb r0, [r1] - cmp r0, 0x4 - beq _081C11A0 - mov r1, r9 - asrs r0, r1, 24 - cmp r0, 0x4 - bne _081C11A0 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c4 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - bne _081C11A0 - movs r0, 0xE - bl ClearWindowTilemap - movs r0, 0xF - bl ClearWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0 - movs r1, 0x3 - bl sub_81C1DA4 - movs r0, 0 - movs r1, 0x3 - movs r2, 0 - bl sub_81C1EFC -_081C11A0: - mov r0, r8 - strb r6, [r0] - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c6 - adds r0, r1 - cmp r8, r0 - bne _081C11E0 - movs r0, 0x8 - bl sub_81C4D18 - b _081C11E6 - .pool -_081C11CC: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c4 - adds r0, r1 - ldrh r5, [r0] - b _081C10E2 - .pool -_081C11E0: - movs r0, 0x12 - bl sub_81C4D18 -_081C11E6: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81C1070 - - thumb_func_start sub_81C11F4 -sub_81C11F4: @ 81C11F4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x8 - bl sub_81C4C60 - movs r0, 0x6 - bl ClearWindowTilemap - movs r0, 0x5 - bl PutWindowTilemap - movs r0, 0 - bl sub_81C3E9C - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - ldr r1, =0x000020bc - adds r0, r1 - movs r1, 0x3 - movs r2, 0x1 - bl sub_81C2194 - ldr r0, [r4] - ldr r1, =0x000030bc - adds r0, r1 - movs r1, 0x1 - movs r2, 0x1 - bl sub_81C2194 - bl sub_81C4064 - ldr r0, [r4] - ldr r1, =0x000040c6 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x4 - beq _081C125E - movs r0, 0xE - bl ClearWindowTilemap - movs r0, 0xF - bl ClearWindowTilemap - movs r0, 0 - movs r1, 0x3 - bl sub_81C1DA4 - movs r0, 0 - movs r1, 0x3 - movs r2, 0 - bl sub_81C1EFC -_081C125E: - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81C0510 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C11F4 - - thumb_func_start sub_81C129C -sub_81C129C: @ 81C129C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r2, =0x000040c6 - adds r1, r0, r2 - ldrb r1, [r1] - adds r2, 0x1 - adds r0, r2 - strb r1, [r0] - movs r0, 0x1 - bl sub_81C4C84 - movs r0, 0x12 - bl sub_81C4AF8 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81C12E4 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C129C - - thumb_func_start sub_81C12E4 -sub_81C12E4: @ 81C12E4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C13AA - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081C1338 - movs r0, 0x3 - strh r0, [r4] - movs r1, 0x1 - negs r1, r1 - ldr r0, =gUnknown_0203CF1C - ldr r2, [r0] - ldr r0, =0x000040c7 - adds r2, r0 - adds r0, r4, 0 - bl sub_81C1070 - b _081C13AA - .pool -_081C1338: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081C1360 - movs r0, 0x3 - strh r0, [r4] - ldr r0, =gUnknown_0203CF1C - ldr r2, [r0] - ldr r0, =0x000040c7 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81C1070 - b _081C13AA - .pool -_081C1360: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081C139A - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r2, =0x000040c6 - adds r1, r0, r2 - adds r2, 0x1 - adds r0, r2 - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bne _081C1390 - adds r0, r5, 0 - movs r1, 0 - bl sub_81C13B0 - b _081C13AA - .pool -_081C1390: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_81C13B0 - b _081C13AA -_081C139A: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081C13AA - adds r0, r6, 0 - movs r1, 0 - bl sub_81C13B0 -_081C13AA: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81C12E4 - - thumb_func_start sub_81C13B0 -sub_81C13B0: @ 81C13B0 - push {r4-r7,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl audio_play - movs r0, 0 - bl sub_81C4C84 - movs r0, 0x12 - bl sub_81C4C60 - cmp r4, 0x1 - bne _081C1464 - ldr r0, =gUnknown_0203CF1C - ldr r3, [r0] - ldr r1, =0x000040bd - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _081C1410 - ldr r0, [r3] - ldr r2, =0x000040be - adds r1, r3, r2 - ldrb r2, [r1] - movs r1, 0x64 - muls r1, r2 - adds r0, r1 - ldr r4, =0x000040c6 - adds r1, r3, r4 - ldrb r1, [r1] - adds r4, 0x1 - adds r2, r3, r4 - ldrb r2, [r2] - bl sub_81C14BC - b _081C1430 - .pool -_081C1410: - ldr r0, [r3] - ldr r2, =0x000040be - adds r1, r3, r2 - ldrb r2, [r1] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - adds r0, r1 - ldr r4, =0x000040c6 - adds r1, r3, r4 - ldrb r1, [r1] - adds r4, 0x1 - adds r2, r3, r4 - ldrb r2, [r2] - bl sub_81C15EC -_081C1430: - ldr r5, =gUnknown_0203CF1C - ldr r0, [r5] - adds r0, 0xC - bl sub_81C0098 - ldr r1, [r5] - ldr r6, =0x000040c6 - adds r0, r1, r6 - ldrb r0, [r0] - ldr r4, =0x000040c7 - adds r1, r4 - ldrb r1, [r1] - bl sub_81C40A0 - ldr r1, [r5] - adds r0, r1, r6 - ldrb r0, [r0] - adds r1, r4 - ldrb r1, [r1] - bl sub_81C4568 - ldr r0, [r5] - adds r4, r0, r4 - ldrb r1, [r4] - adds r0, r6 - strb r1, [r0] -_081C1464: - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040c6 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 1 - adds r1, 0x84 - adds r1, r0 - ldrh r4, [r1] - adds r0, r4, 0 - bl sub_81C3E9C - adds r0, r4, 0 - bl sub_81C240C - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81C0F44 - str r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C13B0 - - thumb_func_start sub_81C14BC -sub_81C14BC: @ 81C14BC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - adds r7, r0, 0 - adds r4, r1, 0 - adds r6, r2, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - ldr r0, =gUnknown_0203CF1C - ldr r2, [r0] - lsls r0, r4, 1 - mov r10, r0 - adds r1, r2, 0 - adds r1, 0x84 - adds r0, r1, r0 - str r0, [sp, 0x8] - ldrh r0, [r0] - mov r3, sp - adds r3, 0x2 - str r3, [sp, 0x1C] - strh r0, [r3] - lsls r0, r6, 1 - mov r9, r0 - add r1, r9 - str r1, [sp, 0xC] - ldrh r1, [r1] - mov r0, sp - strh r1, [r0] - adds r1, r2, 0 - adds r1, 0x8C - adds r3, r1, r4 - str r3, [sp, 0x10] - ldrb r0, [r3] - mov r3, sp - adds r3, 0x5 - str r3, [sp, 0x24] - strb r0, [r3] - adds r1, r6 - str r1, [sp, 0x14] - ldrb r0, [r1] - mov r1, sp - adds r1, 0x4 - str r1, [sp, 0x20] - strb r0, [r1] - adds r2, 0xA4 - str r2, [sp, 0x18] - ldrb r0, [r2] - mov r5, sp - adds r5, 0x6 - strb r0, [r5] - ldr r1, =gUnknown_08329D22 - adds r0, r4, r1 - ldrb r0, [r0] - mov r8, r0 - ldrb r0, [r5] - adds r2, r0, 0 - mov r3, r8 - ands r2, r3 - mov r3, r10 - asrs r2, r3 - lsls r2, 24 - lsrs r2, 24 - adds r1, r6, r1 - ldrb r1, [r1] - mov r12, r1 - adds r1, r0, 0 - mov r3, r12 - ands r1, r3 - mov r3, r9 - asrs r1, r3 - lsls r1, 24 - lsrs r1, 24 - mov r3, r8 - bics r0, r3 - strb r0, [r5] - ldrb r0, [r5] - mov r3, r12 - bics r0, r3 - strb r0, [r5] - mov r0, r9 - lsls r2, r0 - mov r3, r10 - lsls r1, r3 - adds r2, r1 - ldrb r0, [r5] - orrs r0, r2 - strb r0, [r5] - adds r1, r4, 0 - adds r1, 0xD - adds r0, r7, 0 - mov r2, sp - bl pokemon_setattr - adds r1, r6, 0 - adds r1, 0xD - adds r0, r7, 0 - ldr r2, [sp, 0x1C] - bl pokemon_setattr - adds r4, 0x11 - adds r0, r7, 0 - adds r1, r4, 0 - ldr r2, [sp, 0x20] - bl pokemon_setattr - adds r6, 0x11 - adds r0, r7, 0 - adds r1, r6, 0 - ldr r2, [sp, 0x24] - bl pokemon_setattr - adds r0, r7, 0 - movs r1, 0x15 - adds r2, r5, 0 - bl pokemon_setattr - mov r0, sp - ldrh r0, [r0] - ldr r1, [sp, 0x8] - strh r0, [r1] - ldr r3, [sp, 0x1C] - ldrh r0, [r3] - ldr r1, [sp, 0xC] - strh r0, [r1] - ldr r3, [sp, 0x20] - ldrb r0, [r3] - ldr r1, [sp, 0x10] - strb r0, [r1] - ldr r3, [sp, 0x24] - ldrb r0, [r3] - ldr r1, [sp, 0x14] - strb r0, [r1] - ldrb r0, [r5] - ldr r3, [sp, 0x18] - strb r0, [r3] - add sp, 0x28 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C14BC - - thumb_func_start sub_81C15EC -sub_81C15EC: @ 81C15EC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - adds r7, r0, 0 - adds r4, r1, 0 - adds r6, r2, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - ldr r0, =gUnknown_0203CF1C - ldr r2, [r0] - lsls r0, r4, 1 - mov r10, r0 - adds r1, r2, 0 - adds r1, 0x84 - adds r0, r1, r0 - str r0, [sp, 0x8] - ldrh r0, [r0] - mov r3, sp - adds r3, 0x2 - str r3, [sp, 0x1C] - strh r0, [r3] - lsls r0, r6, 1 - mov r9, r0 - add r1, r9 - str r1, [sp, 0xC] - ldrh r1, [r1] - mov r0, sp - strh r1, [r0] - adds r1, r2, 0 - adds r1, 0x8C - adds r3, r1, r4 - str r3, [sp, 0x10] - ldrb r0, [r3] - mov r3, sp - adds r3, 0x5 - str r3, [sp, 0x24] - strb r0, [r3] - adds r1, r6 - str r1, [sp, 0x14] - ldrb r0, [r1] - mov r1, sp - adds r1, 0x4 - str r1, [sp, 0x20] - strb r0, [r1] - adds r2, 0xA4 - str r2, [sp, 0x18] - ldrb r0, [r2] - mov r5, sp - adds r5, 0x6 - strb r0, [r5] - ldr r1, =gUnknown_08329D22 - adds r0, r4, r1 - ldrb r0, [r0] - mov r8, r0 - ldrb r0, [r5] - adds r2, r0, 0 - mov r3, r8 - ands r2, r3 - mov r3, r10 - asrs r2, r3 - lsls r2, 24 - lsrs r2, 24 - adds r1, r6, r1 - ldrb r1, [r1] - mov r12, r1 - adds r1, r0, 0 - mov r3, r12 - ands r1, r3 - mov r3, r9 - asrs r1, r3 - lsls r1, 24 - lsrs r1, 24 - mov r3, r8 - bics r0, r3 - strb r0, [r5] - ldrb r0, [r5] - mov r3, r12 - bics r0, r3 - strb r0, [r5] - mov r0, r9 - lsls r2, r0 - mov r3, r10 - lsls r1, r3 - adds r2, r1 - ldrb r0, [r5] - orrs r0, r2 - strb r0, [r5] - adds r1, r4, 0 - adds r1, 0xD - adds r0, r7, 0 - mov r2, sp - bl pokemon_setattr_encrypted - adds r1, r6, 0 - adds r1, 0xD - adds r0, r7, 0 - ldr r2, [sp, 0x1C] - bl pokemon_setattr_encrypted - adds r4, 0x11 - adds r0, r7, 0 - adds r1, r4, 0 - ldr r2, [sp, 0x20] - bl pokemon_setattr_encrypted - adds r6, 0x11 - adds r0, r7, 0 - adds r1, r6, 0 - ldr r2, [sp, 0x24] - bl pokemon_setattr_encrypted - adds r0, r7, 0 - movs r1, 0x15 - adds r2, r5, 0 - bl pokemon_setattr_encrypted - mov r0, sp - ldrh r0, [r0] - ldr r1, [sp, 0x8] - strh r0, [r1] - ldr r3, [sp, 0x1C] - ldrh r0, [r3] - ldr r1, [sp, 0xC] - strh r0, [r1] - ldr r3, [sp, 0x20] - ldrb r0, [r3] - ldr r1, [sp, 0x10] - strb r0, [r1] - ldr r3, [sp, 0x24] - ldrb r0, [r3] - ldr r1, [sp, 0x14] - strb r0, [r1] - ldrb r0, [r5] - ldr r3, [sp, 0x18] - strb r0, [r3] - add sp, 0x28 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C15EC - - thumb_func_start sub_81C171C -sub_81C171C: @ 81C171C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_81C44F0 - movs r0, 0x8 - bl sub_81C4AF8 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81C174C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C171C - - thumb_func_start sub_81C174C -sub_81C174C: @ 81C174C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C176A - b _081C189A -_081C176A: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r2, 0x80 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _081C177A - b _081C189A -_081C177A: - ldr r6, =gMain - ldrh r1, [r6, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081C17B4 - movs r0, 0x4 - strh r0, [r4] - movs r1, 0x1 - negs r1, r1 - ldr r0, =gUnknown_0203CF1C - ldr r2, [r0] - ldr r0, =0x000040c6 - adds r2, r0 - adds r0, r4, 0 - bl sub_81C1070 - b _081C189A - .pool -_081C17B4: - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _081C17DC - movs r0, 0x4 - strh r0, [r4] - ldr r0, =gUnknown_0203CF1C - ldr r2, [r0] - ldr r1, =0x000040c6 - adds r2, r1 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81C1070 - b _081C189A - .pool -_081C17DC: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _081C17F0 - bl GetLRKeysState - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C17FC -_081C17F0: - movs r1, 0x1 - negs r1, r1 - adds r0, r5, 0 - bl sub_81C0A8C - b _081C189A -_081C17FC: - ldrh r1, [r6, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _081C1812 - bl GetLRKeysState - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _081C181C -_081C1812: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_81C0A8C - b _081C189A -_081C181C: - ldrh r1, [r6, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081C1876 - bl sub_81C18A8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C1868 - bl sub_81C48F0 - movs r0, 0x5 - bl audio_play - ldr r2, =gUnknown_0203CF21 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c6 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r1, =gUnknown_020375E2 - ldrb r0, [r2] - strh r0, [r1] - adds r0, r5, 0 - bl sub_81C044C - b _081C189A - .pool -_081C1868: - movs r0, 0x20 - bl audio_play - adds r0, r5, 0 - bl sub_81C18F4 - b _081C189A -_081C1876: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081C189A - bl sub_81C48F0 - movs r0, 0x5 - bl audio_play - ldr r1, =gUnknown_0203CF21 - movs r0, 0x4 - strb r0, [r1] - ldr r1, =gUnknown_020375E2 - movs r0, 0x4 - strh r0, [r1] - adds r0, r5, 0 - bl sub_81C044C -_081C189A: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C174C - - thumb_func_start sub_81C18A8 -sub_81C18A8: @ 81C18A8 - push {lr} - ldr r0, =gUnknown_0203CF1C - ldr r2, [r0] - ldr r0, =0x000040c6 - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0x4 - beq _081C18DA - ldr r3, =0x000040c4 - adds r0, r2, r3 - ldrh r0, [r0] - cmp r0, 0 - beq _081C18DA - ldrb r1, [r1] - lsls r1, 1 - adds r0, r2, 0 - adds r0, 0x84 - adds r0, r1 - ldrh r0, [r0] - bl sub_81B6D14 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C18EC -_081C18DA: - movs r0, 0x1 - b _081C18EE - .pool -_081C18EC: - movs r0, 0 -_081C18EE: - pop {r1} - bx r1 - thumb_func_end sub_81C18A8 - - thumb_func_start sub_81C18F4 -sub_81C18F4: @ 81C18F4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0xE - bl ClearWindowTilemap - movs r0, 0xF - bl ClearWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0 - movs r1, 0x3 - bl sub_81C1DA4 - movs r0, 0 - movs r1, 0x3 - movs r2, 0 - bl sub_81C1EFC - bl sub_81C4154 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81C1940 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C18F4 - - thumb_func_start sub_81C1940 -sub_81C1940: @ 81C1940 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - mov r8, r0 - ldr r0, =gTasks + 0x8 - mov r9, r0 - mov r4, r8 - add r4, r9 - ldr r0, =sub_81C1E20 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C196C - b _081C1B74 -_081C196C: - ldr r6, =gMain - ldrh r1, [r6, 0x2E] - movs r0, 0x40 - ands r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _081C19B0 - movs r0, 0x1 - strh r0, [r4, 0x2] - movs r0, 0x4 - strh r0, [r4] - movs r1, 0x1 - negs r1, r1 - ldr r0, =gUnknown_0203CF1C - ldr r2, [r0] - ldr r0, =0x000040c6 - adds r2, r0 - adds r0, r4, 0 - bl sub_81C1070 - movs r0, 0 - strh r0, [r4, 0x2] - b _081C1B6A - .pool -_081C19B0: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081C19DC - movs r0, 0x1 - strh r0, [r4, 0x2] - movs r0, 0x4 - strh r0, [r4] - ldr r0, =gUnknown_0203CF1C - ldr r2, [r0] - ldr r1, =0x000040c6 - adds r2, r1 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81C1070 - strh r5, [r4, 0x2] - b _081C1B6A - .pool -_081C19DC: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _081C19F0 - bl GetLRKeysState - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C1A64 -_081C19F0: - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - ldr r2, =0x000040c0 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x2 - bne _081C1A00 - b _081C1B74 -_081C1A00: - movs r0, 0x13 - bl ClearWindowTilemap - ldr r2, =gUnknown_02020630 - ldr r0, [r4] - ldr r1, =0x000040d5 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _081C1A28 - movs r0, 0xD - bl ClearWindowTilemap -_081C1A28: - ldr r1, [r4] - ldr r2, =0x000040c6 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 1 - adds r1, 0x84 - adds r1, r0 - ldrh r5, [r1] - mov r0, r9 - subs r0, 0x8 - add r0, r8 - ldr r1, =sub_81C174C - str r1, [r0] - movs r1, 0x1 - negs r1, r1 - adds r0, r7, 0 - b _081C1ACE - .pool -_081C1A64: - ldrh r1, [r6, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _081C1A7A - bl GetLRKeysState - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _081C1B04 -_081C1A7A: - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - ldr r1, =0x000040c0 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3 - beq _081C1B74 - movs r0, 0x13 - bl ClearWindowTilemap - ldr r2, =gUnknown_02020630 - ldr r0, [r4] - ldr r1, =0x000040d5 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _081C1AB0 - movs r0, 0xD - bl ClearWindowTilemap -_081C1AB0: - ldr r1, [r4] - ldr r2, =0x000040c6 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 1 - adds r1, 0x84 - adds r1, r0 - ldrh r5, [r1] - mov r0, r9 - subs r0, 0x8 - add r0, r8 - ldr r1, =sub_81C174C - str r1, [r0] - adds r0, r7, 0 - movs r1, 0x1 -_081C1ACE: - bl sub_81C0A8C - movs r4, 0x2 - negs r4, r4 - movs r0, 0x9 - adds r1, r4, 0 - bl sub_81C1DA4 - movs r0, 0x9 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_81C1EFC - b _081C1B74 - .pool -_081C1B04: - ldrh r1, [r6, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _081C1B74 - movs r0, 0x13 - bl ClearWindowTilemap - ldr r2, =gUnknown_02020630 - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - ldr r1, =0x000040d5 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _081C1B38 - movs r0, 0xD - bl ClearWindowTilemap -_081C1B38: - ldr r1, [r4] - ldr r2, =0x000040c6 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 1 - adds r1, 0x84 - adds r1, r0 - ldrh r5, [r1] - adds r0, r5, 0 - bl sub_81C3E9C - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r4, 0x3 - negs r4, r4 - movs r0, 0x9 - adds r1, r4, 0 - bl sub_81C1DA4 - movs r0, 0x9 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_81C1EFC -_081C1B6A: - mov r0, r9 - subs r0, 0x8 - add r0, r8 - ldr r1, =sub_81C174C - str r1, [r0] -_081C1B74: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C1940 - - thumb_func_start sub_81C1B94 -sub_81C1B94: @ 81C1B94 - ldr r0, =gUnknown_0203CF21 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_81C1B94 - - thumb_func_start sub_81C1BA0 -sub_81C1BA0: @ 81C1BA0 - push {r4-r7,lr} - sub sp, 0xC - movs r0, 0x20 - bl Alloc - adds r4, r0, 0 - movs r5, 0 -_081C1BAE: - lsls r0, r5, 25 - lsrs r1, r0, 24 - adds r6, r1, 0 - ldr r0, =gUnknown_0203CF1C - ldr r3, [r0] - ldr r2, =0x000040c1 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r5, r0 - bcs _081C1BD8 - lsls r0, r1, 1 - adds r0, r4 - movs r1, 0x40 - strh r1, [r0] - strh r1, [r0, 0x2] - movs r1, 0x50 - b _081C1BEE - .pool -_081C1BD8: - ldr r7, =0x000040c2 - adds r0, r3, r7 - ldrb r2, [r0] - cmp r5, r2 - bls _081C1BF8 - lsls r0, r1, 1 - adds r0, r4 - movs r1, 0x4A - strh r1, [r0] - strh r1, [r0, 0x2] - movs r1, 0x5A -_081C1BEE: - strh r1, [r0, 0x10] - strh r1, [r0, 0x12] - b _081C1C78 - .pool -_081C1BF8: - ldr r7, =0x000040c0 - adds r0, r3, r7 - ldrb r0, [r0] - cmp r5, r0 - bcs _081C1C1C - lsls r1, 1 - adds r1, r4 - movs r0, 0x46 - strh r0, [r1] - movs r0, 0x47 - strh r0, [r1, 0x2] - movs r0, 0x56 - strh r0, [r1, 0x10] - movs r0, 0x57 - b _081C1C76 - .pool -_081C1C1C: - cmp r5, r0 - bne _081C1C4C - cmp r5, r2 - beq _081C1C38 - lsls r1, 1 - adds r1, r4 - movs r0, 0x41 - strh r0, [r1] - movs r0, 0x42 - strh r0, [r1, 0x2] - movs r0, 0x51 - strh r0, [r1, 0x10] - movs r0, 0x52 - b _081C1C76 -_081C1C38: - lsls r1, 1 - adds r1, r4 - movs r0, 0x4B - strh r0, [r1] - movs r0, 0x4C - strh r0, [r1, 0x2] - movs r0, 0x5B - strh r0, [r1, 0x10] - movs r0, 0x5C - b _081C1C76 -_081C1C4C: - cmp r5, r2 - beq _081C1C64 - lsls r1, 1 - adds r1, r4 - movs r0, 0x43 - strh r0, [r1] - movs r0, 0x44 - strh r0, [r1, 0x2] - movs r0, 0x53 - strh r0, [r1, 0x10] - movs r0, 0x54 - b _081C1C76 -_081C1C64: - lsls r1, r6, 1 - adds r1, r4 - movs r0, 0x48 - strh r0, [r1] - movs r0, 0x49 - strh r0, [r1, 0x2] - movs r0, 0x58 - strh r0, [r1, 0x10] - movs r0, 0x59 -_081C1C76: - strh r0, [r1, 0x12] -_081C1C78: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _081C1BAE - movs r0, 0x8 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x10 - str r0, [sp, 0x8] - movs r0, 0x3 - adds r1, r4, 0 - movs r2, 0xB - movs r3, 0 - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, 0x3 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r4, 0 - bl Free - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81C1BA0 - - thumb_func_start sub_81C1CB0 -sub_81C1CB0: @ 81C1CB0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r4, r0, 0 - mov r8, r1 - lsls r2, 24 - lsrs r6, r2, 24 - lsls r3, 24 - lsrs r5, r3, 24 - ldrb r1, [r4, 0x6] - ldrb r0, [r4, 0x7] - lsls r0, 1 - muls r0, r1 - bl Alloc - adds r7, r0, 0 - mov r1, sp - ldrh r0, [r4, 0x4] - strh r0, [r1] - ldrb r1, [r4, 0x7] - ldrb r0, [r4, 0x6] - adds r2, r1, 0 - muls r2, r0 - movs r0, 0x80 - lsls r0, 17 - orrs r2, r0 - mov r0, sp - adds r1, r7, 0 - bl CpuSet - ldrb r0, [r4, 0x6] - cmp r0, r6 - beq _081C1D60 - cmp r5, 0 - bne _081C1D30 - movs r5, 0 - ldrb r0, [r4, 0x7] - cmp r5, r0 - bcs _081C1D60 -_081C1D00: - ldrb r2, [r4, 0x6] - adds r1, r2, 0 - muls r1, r5 - adds r3, r6, r1 - lsls r3, 1 - ldr r0, [r4] - adds r0, r3 - lsls r1, 1 - adds r1, r7, r1 - subs r2, r6 - ldr r3, =0x001fffff - ands r2, r3 - bl CpuSet - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldrb r3, [r4, 0x7] - cmp r5, r3 - bcc _081C1D00 - b _081C1D60 - .pool -_081C1D30: - movs r5, 0 - ldrb r0, [r4, 0x7] - cmp r5, r0 - bcs _081C1D60 -_081C1D38: - ldrb r2, [r4, 0x6] - adds r1, r2, 0 - muls r1, r5 - lsls r3, r1, 1 - ldr r0, [r4] - adds r0, r3 - adds r1, r6, r1 - lsls r1, 1 - adds r1, r7, r1 - subs r2, r6 - ldr r3, =0x001fffff - ands r2, r3 - bl CpuSet - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldrb r3, [r4, 0x7] - cmp r5, r3 - bcc _081C1D38 -_081C1D60: - movs r5, 0 - b _081C1D8A - .pool -_081C1D68: - ldrb r2, [r4, 0x6] - adds r0, r2, 0 - muls r0, r5 - lsls r0, 1 - adds r0, r7, r0 - ldrb r1, [r4, 0x9] - adds r1, r5 - lsls r1, 5 - ldrb r3, [r4, 0x8] - adds r1, r3 - lsls r1, 1 - add r1, r8 - bl CpuSet - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_081C1D8A: - ldrb r0, [r4, 0x7] - cmp r5, r0 - bcc _081C1D68 - adds r0, r7, 0 - bl Free - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81C1CB0 - - thumb_func_start sub_81C1DA4 -sub_81C1DA4: @ 81C1DA4 - push {r4-r6,lr} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r4, r1, 16 - asrs r1, 16 - ldr r3, =gUnknown_0861CC04 - ldrb r2, [r3, 0x6] - cmp r1, r2 - ble _081C1DBA - adds r4, r2, 0 -_081C1DBA: - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, 0 - beq _081C1DC6 - cmp r0, r2 - bne _081C1DE8 -_081C1DC6: - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r0, =0x000020bc - adds r1, r0 - lsls r2, r4, 24 - lsrs r2, 24 - adds r0, r3, 0 - movs r3, 0x1 - bl sub_81C1CB0 - b _081C1E12 - .pool -_081C1DE8: - ldr r5, =sub_81C1E20 - adds r0, r5, 0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - bne _081C1E04 - adds r0, r5, 0 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 -_081C1E04: - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - strh r4, [r0, 0x8] - strh r6, [r0, 0xA] -_081C1E12: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C1DA4 - - thumb_func_start sub_81C1E20 -sub_81C1E20: @ 81C1E20 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldrh r0, [r4] - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r4, 0x2] - lsls r0, 16 - cmp r0, 0 - bge _081C1E50 - movs r0, 0 - strh r0, [r4, 0x2] - ldr r7, =gUnknown_0861CC04 - b _081C1E60 - .pool -_081C1E50: - movs r0, 0x2 - ldrsh r1, [r4, r0] - ldr r0, =gUnknown_0861CC04 - ldrb r2, [r0, 0x6] - adds r7, r0, 0 - cmp r1, r2 - ble _081C1E60 - strh r2, [r4, 0x2] -_081C1E60: - ldr r5, =gUnknown_0203CF1C - ldr r1, [r5] - ldr r0, =0x000020bc - adds r1, r0 - ldrb r2, [r4, 0x2] - adds r0, r7, 0 - movs r3, 0x1 - bl sub_81C1CB0 - movs r1, 0x2 - ldrsh r0, [r4, r1] - cmp r0, 0 - ble _081C1E80 - ldrb r7, [r7, 0x6] - cmp r0, r7 - blt _081C1EE0 -_081C1E80: - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0 - bge _081C1EAC - ldr r0, [r5] - ldr r1, =0x000040c0 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x2 - bne _081C1ED4 - movs r0, 0xE - bl PutWindowTilemap - b _081C1ED4 - .pool -_081C1EAC: - ldr r2, =gUnknown_02020630 - ldr r0, [r5] - ldr r1, =0x000040d5 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _081C1ECE - movs r0, 0xD - bl PutWindowTilemap -_081C1ECE: - movs r0, 0x13 - bl PutWindowTilemap -_081C1ED4: - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r6, 0 - bl DestroyTask -_081C1EE0: - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C1E20 - - thumb_func_start sub_81C1EFC -sub_81C1EFC: @ 81C1EFC - push {r4-r7,lr} - lsls r0, 16 - lsrs r7, r0, 16 - lsls r1, 16 - lsls r2, 16 - lsrs r6, r2, 16 - lsrs r4, r1, 16 - asrs r1, 16 - ldr r3, =gUnknown_0861CC10 - ldrb r2, [r3, 0x6] - cmp r1, r2 - ble _081C1F16 - adds r4, r2, 0 -_081C1F16: - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, 0 - beq _081C1F22 - cmp r0, r2 - bne _081C1F44 -_081C1F22: - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r0, =0x000030bc - adds r1, r0 - lsls r2, r4, 24 - lsrs r2, 24 - adds r0, r3, 0 - movs r3, 0x1 - bl sub_81C1CB0 - b _081C1F70 - .pool -_081C1F44: - ldr r5, =sub_81C1F80 - adds r0, r5, 0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - bne _081C1F60 - adds r0, r5, 0 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 -_081C1F60: - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - strh r4, [r0, 0x8] - strh r7, [r0, 0xA] - strh r6, [r0, 0xC] -_081C1F70: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C1EFC - - thumb_func_start sub_81C1F80 -sub_81C1F80: @ 81C1F80 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldrh r0, [r4] - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r4, 0x2] - lsls r0, 16 - cmp r0, 0 - bge _081C1FB0 - movs r0, 0 - strh r0, [r4, 0x2] - ldr r7, =gUnknown_0861CC10 - b _081C1FC0 - .pool -_081C1FB0: - movs r0, 0x2 - ldrsh r1, [r4, r0] - ldr r0, =gUnknown_0861CC10 - ldrb r2, [r0, 0x6] - adds r7, r0, 0 - cmp r1, r2 - ble _081C1FC0 - strh r2, [r4, 0x2] -_081C1FC0: - ldr r5, =gUnknown_0203CF1C - ldr r1, [r5] - ldr r0, =0x000030bc - adds r1, r0 - ldrb r2, [r4, 0x2] - adds r0, r7, 0 - movs r3, 0x1 - bl sub_81C1CB0 - movs r1, 0x2 - ldrsh r0, [r4, r1] - cmp r0, 0 - ble _081C1FE0 - ldrb r7, [r7, 0x6] - cmp r0, r7 - blt _081C2058 -_081C1FE0: - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0 - bge _081C2024 - ldr r0, [r5] - ldr r1, =0x000040c0 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3 - bne _081C2006 - ldr r0, =sub_81C0B8C - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - bne _081C2006 - movs r0, 0xF - bl PutWindowTilemap -_081C2006: - ldrh r0, [r4, 0x4] - bl sub_81C240C - b _081C204C - .pool -_081C2024: - ldr r2, =gUnknown_02020630 - ldr r0, [r5] - ldr r1, =0x000040d5 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _081C2046 - movs r0, 0xD - bl PutWindowTilemap -_081C2046: - movs r0, 0x13 - bl PutWindowTilemap -_081C204C: - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r6, 0 - bl DestroyTask -_081C2058: - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C1F80 - - thumb_func_start sub_81C2074 -sub_81C2074: @ 81C2074 - push {r4,r5,lr} - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 16 - lsrs r4, r1, 16 - asrs r1, 16 - ldr r3, =gUnknown_0861CBEC - ldrb r2, [r3, 0x6] - cmp r1, r2 - ble _081C208A - adds r4, r2, 0 -_081C208A: - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, 0 - beq _081C2096 - cmp r0, r2 - bne _081C20C8 -_081C2096: - ldr r5, =gUnknown_0203CF1C - ldr r1, [r5] - adds r1, 0xBC - lsls r4, 24 - lsrs r4, 24 - adds r0, r3, 0 - adds r2, r4, 0 - movs r3, 0 - bl sub_81C1CB0 - ldr r0, =gUnknown_0861CBF8 - ldr r1, [r5] - adds r1, 0xBC - adds r2, r4, 0 - movs r3, 0 - bl sub_81C1CB0 - b _081C20E2 - .pool -_081C20C8: - ldr r0, =sub_81C20F0 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - strh r5, [r1, 0xA] -_081C20E2: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C2074 - - thumb_func_start sub_81C20F0 -sub_81C20F0: @ 81C20F0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r5, r0, r1 - ldrh r0, [r5] - ldrh r1, [r5, 0x2] - adds r0, r1 - strh r0, [r5, 0x2] - lsls r0, 16 - cmp r0, 0 - bge _081C2120 - movs r0, 0 - strh r0, [r5, 0x2] - ldr r7, =gUnknown_0861CBEC - b _081C2130 - .pool -_081C2120: - movs r0, 0x2 - ldrsh r1, [r5, r0] - ldr r0, =gUnknown_0861CBEC - ldrb r2, [r0, 0x6] - adds r7, r0, 0 - cmp r1, r2 - ble _081C2130 - strh r2, [r5, 0x2] -_081C2130: - ldr r4, =gUnknown_0203CF1C - ldr r1, [r4] - adds r1, 0xBC - ldrb r2, [r5, 0x2] - adds r0, r7, 0 - movs r3, 0 - bl sub_81C1CB0 - ldr r0, =gUnknown_0861CBF8 - ldr r1, [r4] - adds r1, 0xBC - ldrb r2, [r5, 0x2] - movs r3, 0 - bl sub_81C1CB0 - movs r0, 0x3 - bl schedule_bg_copy_tilemap_to_vram - movs r1, 0x2 - ldrsh r0, [r5, r1] - cmp r0, 0 - ble _081C2162 - ldrb r7, [r7, 0x6] - cmp r0, r7 - blt _081C2180 -_081C2162: - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0 - bge _081C217A - bl sub_81C4A88 - movs r0, 0xD - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram -_081C217A: - adds r0, r6, 0 - bl DestroyTask -_081C2180: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C20F0 - - thumb_func_start sub_81C2194 -sub_81C2194: @ 81C2194 - push {r4-r7,lr} - adds r6, r0, 0 - lsls r2, 24 - lsls r1, 28 - lsrs r4, r1, 16 - ldr r7, =0x0000056a - cmp r2, 0 - bne _081C21E4 - movs r3, 0 - ldr r5, =gUnknown_08DC3CD4 -_081C21A8: - adds r2, r7, r3 - lsls r2, 1 - adds r2, r6 - lsls r0, r3, 1 - adds r0, r5 - ldrh r1, [r0] - adds r1, r4, r1 - strh r1, [r2] - adds r0, r2, 0 - adds r0, 0x40 - strh r1, [r0] - adds r2, 0x80 - adds r0, r3, 0 - adds r0, 0x14 - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - adds r0, r4, r0 - strh r0, [r2] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x13 - bls _081C21A8 - b _081C221C - .pool -_081C21E4: - movs r3, 0 - ldr r5, =gUnknown_08DC3CD4 -_081C21E8: - adds r1, r7, r3 - lsls r1, 1 - adds r1, r6 - adds r0, r3, 0 - adds r0, 0x14 - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - adds r0, r4, r0 - strh r0, [r1] - adds r2, r1, 0 - adds r2, 0x40 - adds r0, r3, 0 - adds r0, 0x28 - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - adds r0, r4, r0 - strh r0, [r2] - adds r1, 0x80 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x13 - bls _081C21E8 -_081C221C: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C2194 - - thumb_func_start sub_81C2228 -sub_81C2228: @ 81C2228 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_806DD7C - lsls r0, 24 - cmp r0, 0 - bne _081C225C - adds r0, r4, 0 - movs r1, 0 - bl sub_806DDE4 - lsls r0, 24 - cmp r0, 0 - beq _081C225C - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r2, =0x00000502 - adds r1, r0, r2 - movs r2, 0x2C - b _081C2266 - .pool -_081C225C: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r2, =0x00000502 - adds r1, r0, r2 - ldr r2, =0x0000081a -_081C2266: - strh r2, [r1] - ldr r1, =0x00000d02 - adds r0, r1 - strh r2, [r0] - movs r0, 0x3 - bl schedule_bg_copy_tilemap_to_vram - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C2228 - - thumb_func_start sub_81C228C -sub_81C228C: @ 81C228C - push {lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _081C22AC - movs r0, 0x8 - str r0, [sp] - str r1, [sp, 0x4] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0x4 - movs r3, 0x8 - bl sub_8199C30 - b _081C22C0 -_081C22AC: - movs r0, 0x8 - str r0, [sp] - movs r0, 0x5 - str r0, [sp, 0x4] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0x4 - movs r3, 0x8 - bl sub_8199C30 -_081C22C0: - movs r0, 0x3 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_81C228C - - thumb_func_start sub_81C22CC -sub_81C22CC: @ 81C22CC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - adds r6, r1, 0 - adds r6, 0x70 - ldrb r1, [r6, 0x5] - mov r8, r0 - cmp r1, 0x63 - bhi _081C2340 - ldr r5, =gExperienceTables - adds r2, r1, 0 - adds r1, r2, 0x1 - lsls r1, 2 - ldr r4, =gBaseStats - ldrh r3, [r6] - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r4 - ldrb r3, [r0, 0x13] - movs r0, 0xCA - lsls r0, 1 - muls r0, r3 - adds r1, r0 - adds r1, r5 - lsls r2, 2 - adds r2, r0 - adds r2, r5 - ldr r1, [r1] - ldr r2, [r2] - subs r1, r2 - ldr r0, [r6, 0x10] - subs r4, r0, r2 - lsls r0, r4, 6 - bl __udivsi3 - adds r6, r0, 0 - movs r7, 0 - adds r0, r7, 0 - orrs r0, r6 - cmp r0, 0 - bne _081C2344 - cmp r4, 0 - beq _081C2344 - movs r6, 0x1 - movs r7, 0 - b _081C2344 - .pool -_081C2340: - movs r6, 0 - movs r7, 0 -_081C2344: - mov r1, r8 - ldr r0, [r1] - ldr r2, =0x00001d66 - adds r2, r0 - mov r9, r2 - movs r0, 0 - mov r12, r0 - ldr r1, =0x00002062 - mov r10, r1 -_081C2356: - cmp r7, 0 - bgt _081C2362 - cmp r7, 0 - bne _081C237C - cmp r6, 0x7 - bls _081C237C -_081C2362: - mov r2, r12 - lsls r0, r2, 1 - add r0, r9 - ldr r2, =0x0000206a - adds r1, r2, 0 - strh r1, [r0] - b _081C23B6 - .pool -_081C237C: - mov r1, r12 - lsls r0, r1, 1 - add r0, r9 - mov r8, r0 - adds r5, r7, 0 - adds r4, r6, 0 - cmp r7, 0 - bge _081C2394 - movs r4, 0x7 - movs r5, 0 - adds r4, r6 - adcs r5, r7 -_081C2394: - lsls r3, r5, 29 - lsrs r2, r4, 3 - adds r0, r3, 0 - orrs r0, r2 - asrs r1, r5, 3 - lsrs r5, r0, 29 - lsls r4, r1, 3 - adds r3, r5, 0 - orrs r3, r4 - lsls r2, r0, 3 - adds r1, r7, 0 - adds r0, r6, 0 - subs r0, r2 - sbcs r1, r3 - add r0, r10 - mov r2, r8 - strh r0, [r2] -_081C23B6: - movs r0, 0x8 - negs r0, r0 - asrs r1, r0, 31 - adds r6, r0 - adcs r7, r1 - cmp r7, 0 - bge _081C23C8 - movs r6, 0 - movs r7, 0 -_081C23C8: - mov r0, r12 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - cmp r0, 0x7 - bls _081C2356 - movs r0, 0x1 - bl GetBgTilemapBuffer - ldr r1, =gUnknown_0203CF1C - ldr r1, [r1] - ldr r2, =0x000010bc - adds r1, r2 - cmp r0, r1 - bne _081C23F8 - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - b _081C23FE - .pool -_081C23F8: - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram -_081C23FE: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81C22CC - - thumb_func_start sub_81C240C -sub_81C240C: @ 81C240C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 16 - lsrs r3, r0, 16 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000038bc - adds r5, r0, r1 - cmp r3, 0 - beq _081C2510 - ldr r1, =gContestEffects - ldr r2, =gContestMoves - lsls r3, 3 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x1] - mov r9, r1 - mov r8, r2 - mov r10, r3 - cmp r4, 0xFF - beq _081C244C - adds r0, r4, 0 - movs r1, 0xA - bl __udivsi3 - lsls r0, 24 - lsrs r4, r0, 24 -_081C244C: - movs r2, 0 - movs r6, 0x3 - movs r3, 0xF3 - lsls r3, 2 -_081C2454: - cmp r4, 0xFF - beq _081C2484 - cmp r2, r4 - bcs _081C2484 - lsrs r0, r2, 2 - adds r1, r2, 0 - ands r1, r6 - lsls r0, 5 - adds r0, r1 - lsls r0, 1 - adds r0, r5 - adds r0, r3 - ldr r7, =0x0000103a - b _081C2496 - .pool -_081C2484: - lsrs r0, r2, 2 - adds r1, r2, 0 - ands r1, r6 - lsls r0, 5 - adds r0, r1 - lsls r0, 1 - adds r0, r5 - adds r0, r3 - ldr r7, =0x00001039 -_081C2496: - adds r1, r7, 0 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _081C2454 - mov r0, r10 - add r0, r8 - ldrb r0, [r0] - lsls r0, 2 - add r0, r9 - ldrb r4, [r0, 0x2] - cmp r4, 0xFF - beq _081C24C0 - adds r0, r4, 0 - movs r1, 0xA - bl __udivsi3 - lsls r0, 24 - lsrs r4, r0, 24 -_081C24C0: - movs r2, 0 - movs r6, 0x3 - ldr r3, =0x0000044c -_081C24C6: - cmp r4, 0xFF - beq _081C24F0 - cmp r2, r4 - bcs _081C24F0 - lsrs r0, r2, 2 - adds r1, r2, 0 - ands r1, r6 - lsls r0, 5 - adds r0, r1 - lsls r0, 1 - adds r0, r5 - adds r0, r3 - ldr r7, =0x0000103c - b _081C2502 - .pool -_081C24F0: - lsrs r0, r2, 2 - adds r1, r2, 0 - ands r1, r6 - lsls r0, 5 - adds r0, r1 - lsls r0, 1 - adds r0, r5 - adds r0, r3 - ldr r7, =0x0000103d -_081C2502: - adds r1, r7, 0 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _081C24C6 -_081C2510: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C240C - - thumb_func_start sub_81C2524 -sub_81C2524: @ 81C2524 - push {lr} - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0x74 - ldrb r0, [r0] - cmp r0, 0 - beq _081C2544 - movs r1, 0x80 - lsls r1, 9 - movs r0, 0x3 - movs r2, 0 - bl ChangeBgX - b _081C254E - .pool -_081C2544: - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgX -_081C254E: - pop {r0} - bx r0 - thumb_func_end sub_81C2524 - - thumb_func_start sub_81C2554 -sub_81C2554: @ 81C2554 - push {r4,r5,lr} - ldr r0, =gUnknown_0861CC24 - bl InitWindows - bl DeactivateAllTextPrinters - movs r4, 0 -_081C2562: - adds r0, r4, 0 - movs r1, 0 - bl FillWindowPixelBuffer - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x13 - bls _081C2562 - movs r4, 0 - ldr r5, =gUnknown_0203CF1C - ldr r3, =0x000040cb - movs r2, 0xFF -_081C257C: - ldr r0, [r5] - adds r0, r3 - adds r0, r4 - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _081C257C - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C2554 - - thumb_func_start sub_81C25A4 -sub_81C25A4: @ 81C25A4 - push {r4-r6,lr} - sub sp, 0x14 - ldr r4, [sp, 0x24] - ldr r5, [sp, 0x28] - lsls r0, 24 - lsrs r0, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - movs r6, 0 - str r6, [sp] - str r4, [sp, 0x4] - lsls r4, r5, 1 - adds r4, r5 - ldr r5, =gUnknown_0861CD2C - adds r4, r5 - str r4, [sp, 0x8] - str r6, [sp, 0xC] - str r1, [sp, 0x10] - movs r1, 0x1 - bl AddTextPrinterParametrized2 - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C25A4 - - thumb_func_start sub_81C25E8 -sub_81C25E8: @ 81C25E8 - push {lr} - movs r0, 0x11 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x12 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x13 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0x74 - ldrb r0, [r0] - cmp r0, 0 - bne _081C2618 - bl sub_81C2628 - b _081C261C - .pool -_081C2618: - bl sub_81C2794 -_081C261C: - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - pop {r0} - bx r0 - thumb_func_end sub_81C25E8 - - thumb_func_start sub_81C2628 -sub_81C2628: @ 81C2628 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x18 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - movs r1, 0xC - adds r1, r0 - mov r8, r1 - adds r7, r0, 0 - adds r7, 0x70 - ldrh r0, [r7] - bl sub_806E3C0 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, =0x0000ffff - cmp r5, r0 - beq _081C26CE - ldr r6, =gStringVar1 - ldr r1, =gUnknown_085E8D4F - adds r0, r6, 0 - bl StringCopy - ldr r4, =gStringVar2 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r0, r6, 0 - adds r1, r4, 0 - bl StringAppend - mov r0, r8 - bl sub_806EBA4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _081C26AC - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r0, 0x11 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_81C25A4 - movs r0, 0 - bl sub_81C228C - b _081C26C6 - .pool -_081C26AC: - movs r0, 0 - str r0, [sp] - movs r0, 0x7 - str r0, [sp, 0x4] - movs r0, 0x11 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_81C25A4 - movs r0, 0x1 - bl sub_81C228C -_081C26C6: - movs r0, 0x11 - bl PutWindowTilemap - b _081C26EE -_081C26CE: - movs r0, 0x11 - bl ClearWindowTilemap - mov r0, r8 - bl sub_806EBA4 - lsls r0, 24 - cmp r0, 0 - bne _081C26E8 - movs r0, 0 - bl sub_81C228C - b _081C26EE -_081C26E8: - movs r0, 0x1 - bl sub_81C228C -_081C26EE: - ldr r4, =gStringVar1 - ldr r1, =gUnknown_085E8D4D - adds r0, r4, 0 - bl StringCopy - ldr r5, =gStringVar2 - ldrb r1, [r7, 0x5] - adds r0, r5, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r0, r4, 0 - adds r1, r5, 0 - bl StringAppend - movs r6, 0 - str r6, [sp] - movs r5, 0x1 - str r5, [sp, 0x4] - movs r0, 0x13 - adds r1, r4, 0 - movs r2, 0x18 - movs r3, 0x11 - bl sub_81C25A4 - mov r0, r8 - adds r1, r4, 0 - bl GetMonNickname - str r6, [sp] - str r5, [sp, 0x4] - movs r0, 0x12 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_81C25A4 - add r1, sp, 0x8 - movs r0, 0xBA - strb r0, [r1] - mov r0, sp - adds r0, 0x9 - ldrh r2, [r7, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - str r6, [sp] - str r5, [sp, 0x4] - movs r0, 0x13 - add r1, sp, 0x8 - movs r2, 0 - movs r3, 0x1 - bl sub_81C25A4 - ldrh r1, [r7, 0x2] - mov r0, r8 - bl sub_81C27DC - movs r0, 0x12 - bl PutWindowTilemap - movs r0, 0x13 - bl PutWindowTilemap - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C2628 - - thumb_func_start sub_81C2794 -sub_81C2794: @ 81C2794 - push {r4,lr} - sub sp, 0x8 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0xC - ldr r4, =gStringVar1 - adds r1, r4, 0 - bl GetMonNickname - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r0, 0x12 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_81C25A4 - movs r0, 0x12 - bl PutWindowTilemap - movs r0, 0x11 - bl ClearWindowTilemap - movs r0, 0x13 - bl ClearWindowTilemap - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C2794 - - thumb_func_start sub_81C27DC -sub_81C27DC: @ 81C27DC - push {lr} - sub sp, 0x8 - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0x20 - beq _081C282C - cmp r1, 0x1D - beq _081C282C - bl pokemon_get_gender - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _081C27FE - cmp r0, 0xFE - beq _081C2818 - b _081C282C -_081C27FE: - ldr r1, =gUnknown_085E8D49 - str r0, [sp] - movs r0, 0x3 - str r0, [sp, 0x4] - movs r0, 0x13 - movs r2, 0x39 - movs r3, 0x11 - bl sub_81C25A4 - b _081C282C - .pool -_081C2818: - ldr r1, =gUnknown_085E8D4B - movs r0, 0 - str r0, [sp] - movs r0, 0x4 - str r0, [sp, 0x4] - movs r0, 0x13 - movs r2, 0x39 - movs r3, 0x11 - bl sub_81C25A4 -_081C282C: - add sp, 0x8 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C27DC - - thumb_func_start sub_81C2838 -sub_81C2838: @ 81C2838 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - ldr r3, =gUnknown_0861CDD3 - cmp r1, 0 - bne _081C284A - subs r3, 0x80 -_081C284A: - lsls r2, 16 - lsrs r2, 16 - movs r0, 0x10 - str r0, [sp] - str r0, [sp, 0x4] - adds r0, r4, 0 - adds r1, r3, 0 - movs r3, 0 - bl BlitBitmapToWindow - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C2838 - - thumb_func_start sub_81C286C -sub_81C286C: @ 81C286C - push {r4-r7,lr} - sub sp, 0x8 - ldr r1, =gUnknown_085EA3CF - movs r5, 0 - str r5, [sp] - movs r6, 0x1 - str r6, [sp, 0x4] - movs r0, 0 - movs r2, 0x2 - movs r3, 0x1 - bl sub_81C25A4 - ldr r1, =gUnknown_085EA3DC - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0x1 - movs r2, 0x2 - movs r3, 0x1 - bl sub_81C25A4 - ldr r1, =gUnknown_085EA3EB - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0x2 - movs r2, 0x2 - movs r3, 0x1 - bl sub_81C25A4 - ldr r1, =gUnknown_085EA3F8 - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0x3 - movs r2, 0x2 - movs r3, 0x1 - bl sub_81C25A4 - ldr r7, =gUnknown_085E8CF7 - movs r0, 0x1 - adds r1, r7, 0 - movs r2, 0x3E - bl GetStringRightAlignXOffset - adds r4, r0, 0 - adds r2, r4, 0 - subs r2, 0x10 - cmp r2, 0 - bge _081C28CC - movs r2, 0 -_081C28CC: - movs r0, 0x4 - movs r1, 0 - bl sub_81C2838 - lsls r2, r4, 24 - lsrs r2, 24 - str r5, [sp] - str r5, [sp, 0x4] - movs r0, 0x4 - adds r1, r7, 0 - movs r3, 0x1 - bl sub_81C25A4 - ldr r7, =gUnknown_085EA406 - movs r0, 0x1 - adds r1, r7, 0 - movs r2, 0x3E - bl GetStringRightAlignXOffset - adds r4, r0, 0 - adds r2, r4, 0 - subs r2, 0x10 - cmp r2, 0 - bge _081C28FE - movs r2, 0 -_081C28FE: - movs r0, 0x5 - movs r1, 0 - bl sub_81C2838 - lsls r2, r4, 24 - lsrs r2, 24 - str r5, [sp] - str r5, [sp, 0x4] - movs r0, 0x5 - adds r1, r7, 0 - movs r3, 0x1 - bl sub_81C25A4 - ldr r7, =gUnknown_085EA3C8 - movs r0, 0x1 - adds r1, r7, 0 - movs r2, 0x3E - bl GetStringRightAlignXOffset - adds r4, r0, 0 - adds r2, r4, 0 - subs r2, 0x10 - cmp r2, 0 - bge _081C2930 - movs r2, 0 -_081C2930: - movs r0, 0x6 - movs r1, 0 - bl sub_81C2838 - lsls r2, r4, 24 - lsrs r2, 24 - str r5, [sp] - str r5, [sp, 0x4] - movs r0, 0x6 - adds r1, r7, 0 - movs r3, 0x1 - bl sub_81C25A4 - ldr r1, =gUnknown_085EA369 - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0x8 - movs r2, 0 - movs r3, 0x1 - bl sub_81C25A4 - ldr r1, =gUnknown_085EA378 - str r5, [sp] - str r5, [sp, 0x4] - movs r0, 0x9 - movs r2, 0 - movs r3, 0x1 - bl sub_81C25A4 - ldr r4, =gUnknown_085EA361 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x2A - bl GetStringCenterAlignXOffset - adds r0, 0x6 - lsls r2, r0, 24 - lsrs r2, 24 - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0xA - adds r1, r4, 0 - movs r3, 0x1 - bl sub_81C25A4 - ldr r4, =gUnknown_085EA33C - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x2A - bl GetStringCenterAlignXOffset - adds r0, 0x6 - lsls r2, r0, 24 - lsrs r2, 24 - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0xA - adds r1, r4, 0 - movs r3, 0x11 - bl sub_81C25A4 - ldr r4, =gUnknown_085EA343 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x2A - bl GetStringCenterAlignXOffset - adds r0, 0x6 - lsls r2, r0, 24 - lsrs r2, 24 - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0xA - adds r1, r4, 0 - movs r3, 0x21 - bl sub_81C25A4 - ldr r4, =gUnknown_085EA34B - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x24 - bl GetStringCenterAlignXOffset - adds r0, 0x2 - lsls r2, r0, 24 - lsrs r2, 24 - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0xB - adds r1, r4, 0 - movs r3, 0x1 - bl sub_81C25A4 - ldr r4, =gUnknown_085EA353 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x24 - bl GetStringCenterAlignXOffset - adds r0, 0x2 - lsls r2, r0, 24 - lsrs r2, 24 - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0xB - adds r1, r4, 0 - movs r3, 0x11 - bl sub_81C25A4 - ldr r4, =gUnknown_085EA35B - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x24 - bl GetStringCenterAlignXOffset - adds r0, 0x2 - lsls r2, r0, 24 - lsrs r2, 24 - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0xB - adds r1, r4, 0 - movs r3, 0x21 - bl sub_81C25A4 - ldr r1, =gUnknown_085EA39F - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0xC - movs r2, 0x6 - movs r3, 0x1 - bl sub_81C25A4 - ldr r1, =gUnknown_085EA3AB - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0xC - movs r2, 0x6 - movs r3, 0x11 - bl sub_81C25A4 - ldr r1, =gUnknown_085EA398 - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0xD - movs r2, 0x2 - movs r3, 0x1 - bl sub_81C25A4 - ldr r1, =gUnknown_085EA37E - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0xE - movs r2, 0 - movs r3, 0x1 - bl sub_81C25A4 - ldr r1, =gUnknown_085EA384 - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0xE - movs r2, 0 - movs r3, 0x11 - bl sub_81C25A4 - ldr r1, =gUnknown_085EA38D - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0xF - movs r2, 0 - movs r3, 0x1 - bl sub_81C25A4 - ldr r1, =gUnknown_085EA394 - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0xF - movs r2, 0 - movs r3, 0x11 - bl sub_81C25A4 - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C286C - - thumb_func_start sub_81C2AFC -sub_81C2AFC: @ 81C2AFC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - movs r0, 0 - bl ClearWindowTilemap - movs r0, 0x1 - bl ClearWindowTilemap - movs r0, 0x2 - bl ClearWindowTilemap - movs r0, 0x3 - bl ClearWindowTilemap - cmp r4, 0x1 - beq _081C2B66 - cmp r4, 0x1 - bgt _081C2B2A - cmp r4, 0 - beq _081C2B34 - b _081C2C06 -_081C2B2A: - cmp r5, 0x2 - beq _081C2B80 - cmp r5, 0x3 - beq _081C2BC4 - b _081C2C06 -_081C2B34: - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x4 - bl PutWindowTilemap - bl sub_81A6BF4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C2B58 - bl sub_81B9E94 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C2B5E -_081C2B58: - movs r0, 0x8 - bl PutWindowTilemap -_081C2B5E: - movs r0, 0x9 - bl PutWindowTilemap - b _081C2C06 -_081C2B66: - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0xA - bl PutWindowTilemap - movs r0, 0xB - bl PutWindowTilemap - movs r0, 0xC - bl PutWindowTilemap - b _081C2C06 -_081C2B80: - movs r0, 0x2 - bl PutWindowTilemap - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040bc - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x3 - bne _081C2BBC - adds r2, 0x8 - adds r0, r1, r2 - ldr r0, [r0] - ldr r1, =0x00ffffff - ands r0, r1 - movs r1, 0x80 - lsls r1, 11 - cmp r0, r1 - beq _081C2C06 - movs r0, 0xE - bl PutWindowTilemap - b _081C2C06 - .pool -_081C2BBC: - movs r0, 0x5 - bl PutWindowTilemap - b _081C2C06 -_081C2BC4: - movs r0, 0x3 - bl PutWindowTilemap - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040bc - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x3 - bne _081C2C00 - adds r2, 0x8 - adds r0, r1, r2 - ldr r0, [r0] - ldr r1, =0x00ffffff - ands r0, r1 - movs r1, 0x80 - lsls r1, 11 - cmp r0, r1 - beq _081C2C06 - movs r0, 0xF - bl PutWindowTilemap - b _081C2C06 - .pool -_081C2C00: - movs r0, 0x5 - bl PutWindowTilemap -_081C2C06: - movs r4, 0 - ldr r5, =gUnknown_0203CF1C -_081C2C0A: - ldr r0, [r5] - ldr r1, =0x000040cb - adds r0, r1 - adds r0, r4 - ldrb r0, [r0] - bl PutWindowTilemap - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _081C2C0A - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C2AFC - - thumb_func_start sub_81C2C38 -sub_81C2C38: @ 81C2C38 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x1 - beq _081C2C84 - cmp r0, 0x1 - bgt _081C2C4E - cmp r0, 0 - beq _081C2C58 - b _081C2D0E -_081C2C4E: - cmp r1, 0x2 - beq _081C2C98 - cmp r1, 0x3 - beq _081C2CD4 - b _081C2D0E -_081C2C58: - movs r0, 0x4 - bl ClearWindowTilemap - bl sub_81A6BF4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C2C76 - bl sub_81B9E94 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C2C7C -_081C2C76: - movs r0, 0x8 - bl ClearWindowTilemap -_081C2C7C: - movs r0, 0x9 - bl ClearWindowTilemap - b _081C2D0E -_081C2C84: - movs r0, 0xA - bl ClearWindowTilemap - movs r0, 0xB - bl ClearWindowTilemap - movs r0, 0xC - bl ClearWindowTilemap - b _081C2D0E -_081C2C98: - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040bc - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x3 - bne _081C2CCC - adds r2, 0x8 - adds r0, r1, r2 - ldr r0, [r0] - ldr r1, =0x00ffffff - ands r0, r1 - movs r1, 0x80 - lsls r1, 11 - cmp r0, r1 - beq _081C2D0E - movs r0, 0xE - bl ClearWindowTilemap - b _081C2D0E - .pool -_081C2CCC: - movs r0, 0x5 - bl ClearWindowTilemap - b _081C2D0E -_081C2CD4: - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040bc - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x3 - bne _081C2D08 - adds r2, 0x8 - adds r0, r1, r2 - ldr r0, [r0] - ldr r1, =0x00ffffff - ands r0, r1 - movs r1, 0x80 - lsls r1, 11 - cmp r0, r1 - beq _081C2D0E - movs r0, 0xF - bl ClearWindowTilemap - b _081C2D0E - .pool -_081C2D08: - movs r0, 0x5 - bl ClearWindowTilemap -_081C2D0E: - movs r4, 0 -_081C2D10: - adds r0, r4, 0 - bl sub_81C2D68 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _081C2D10 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C2C38 - - thumb_func_start sub_81C2D2C -sub_81C2D2C: @ 81C2D2C - push {r4,lr} - adds r3, r0, 0 - lsls r1, 24 - lsrs r2, r1, 24 - ldr r0, =gUnknown_0203CF1C - ldr r4, =0x000040cb - adds r1, r2, r4 - ldr r0, [r0] - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0xFF - bne _081C2D56 - lsls r0, r2, 3 - adds r0, r3, r0 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, 0 - bl FillWindowPixelBuffer -_081C2D56: - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C2D2C - - thumb_func_start sub_81C2D68 -sub_81C2D68: @ 81C2D68 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0203CF1C - ldr r2, =0x000040cb - adds r0, r2 - ldr r1, [r1] - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, 0xFF - beq _081C2D8C - bl ClearWindowTilemap - ldrb r0, [r4] - bl RemoveWindow - movs r0, 0xFF - strb r0, [r4] -_081C2D8C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C2D68 - - thumb_func_start sub_81C2D9C -sub_81C2D9C: @ 81C2D9C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 -_081C2DA4: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040cb - adds r0, r1 - adds r1, r0, r4 - ldrb r0, [r1] - cmp r0, 0xFF - beq _081C2DBA - movs r1, 0 - bl FillWindowPixelBuffer -_081C2DBA: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x7 - bls _081C2DA4 - ldr r0, =gUnknown_0861CE54 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C2D9C - - thumb_func_start sub_81C2DE4 -sub_81C2DE4: @ 81C2DE4 - push {lr} - lsls r0, 24 - ldr r1, =gUnknown_0861CE64 - lsrs r0, 22 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x10 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C2DE4 - - thumb_func_start sub_81C2E00 -sub_81C2E00: @ 81C2E00 - push {lr} - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0x74 - ldrb r0, [r0] - cmp r0, 0 - beq _081C2E24 - bl sub_81C335C - bl sub_81C33CC - bl sub_81C3428 - bl sub_81C349C - b _081C2E3C - .pool -_081C2E24: - bl sub_81C2EC4 - bl sub_81C2F5C - bl sub_81C2FD8 - bl sub_81C302C - bl sub_81C307C - bl sub_81C3194 -_081C2E3C: - pop {r0} - bx r0 - thumb_func_end sub_81C2E00 - - thumb_func_start sub_81C2E40 -sub_81C2E40: @ 81C2E40 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldrh r0, [r4] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - bhi _081C2EB8 - lsls r0, 2 - ldr r1, =_081C2E70 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C2E70: - .4byte _081C2E8C - .4byte _081C2E92 - .4byte _081C2E98 - .4byte _081C2E9E - .4byte _081C2EA4 - .4byte _081C2EAA - .4byte _081C2EB0 -_081C2E8C: - bl sub_81C2EC4 - b _081C2EB8 -_081C2E92: - bl sub_81C2F5C - b _081C2EB8 -_081C2E98: - bl sub_81C2FD8 - b _081C2EB8 -_081C2E9E: - bl sub_81C302C - b _081C2EB8 -_081C2EA4: - bl sub_81C307C - b _081C2EB8 -_081C2EAA: - bl sub_81C3194 - b _081C2EB8 -_081C2EB0: - adds r0, r2, 0 - bl DestroyTask - b _081C2EBE -_081C2EB8: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_081C2EBE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C2E40 - - thumb_func_start sub_81C2EC4 -sub_81C2EC4: @ 81C2EC4 - push {r4-r6,lr} - sub sp, 0x8 - bl sub_81A6BF4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C2F54 - bl sub_81B9E94 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C2F54 - ldr r0, =gUnknown_0861CCCC - movs r1, 0 - bl sub_81C2D2C - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, =gUnknown_085EA365 - movs r6, 0 - str r6, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_81C25A4 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0 - bl GetStringWidth - adds r2, r0, 0 - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0xA2 - ldrb r0, [r0] - cmp r0, 0 - bne _081C2F40 - adds r1, 0xA6 - lsls r2, 24 - lsrs r2, 24 - str r6, [sp] - movs r0, 0x5 - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r3, 0x1 - bl sub_81C25A4 - b _081C2F54 - .pool -_081C2F40: - adds r1, 0xA6 - lsls r2, 24 - lsrs r2, 24 - str r6, [sp] - movs r0, 0x6 - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r3, 0x1 - bl sub_81C25A4 -_081C2F54: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81C2EC4 - - thumb_func_start sub_81C2F5C -sub_81C2F5C: @ 81C2F5C - push {r4,r5,lr} - sub sp, 0x8 - bl sub_81A6BF4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C2FC0 - bl sub_81B9E94 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C2FC0 - ldr r5, =gStringVar1 - ldr r1, =gUnknown_085E8D59 - adds r0, r5, 0 - bl StringCopy - ldr r1, =gUnknown_0203CF1C - ldr r1, [r1] - adds r1, 0xB8 - ldrh r1, [r1] - movs r2, 0x2 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - movs r0, 0x1 - adds r1, r5, 0 - movs r2, 0x38 - bl GetStringRightAlignXOffset - adds r4, r0, 0 - ldr r0, =gUnknown_0861CCCC - movs r1, 0x1 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - movs r1, 0 - str r1, [sp] - movs r1, 0x1 - str r1, [sp, 0x4] - adds r1, r5, 0 - adds r2, r4, 0 - movs r3, 0x1 - bl sub_81C25A4 -_081C2FC0: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C2F5C - - thumb_func_start sub_81C2FD8 -sub_81C2FD8: @ 81C2FD8 - push {r4,lr} - sub sp, 0x8 - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x70 - ldrh r0, [r0] - adds r1, 0x78 - ldrb r1, [r1] - bl sub_806B694 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_0861CCCC - movs r1, 0x2 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xD - muls r1, r4 - ldr r2, =gAbilityNames - adds r1, r2 - movs r2, 0 - str r2, [sp] - movs r2, 0x1 - str r2, [sp, 0x4] - movs r2, 0 - movs r3, 0x1 - bl sub_81C25A4 - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C2FD8 - - thumb_func_start sub_81C302C -sub_81C302C: @ 81C302C - push {r4,lr} - sub sp, 0x8 - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x70 - ldrh r0, [r0] - adds r1, 0x78 - ldrb r1, [r1] - bl sub_806B694 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_0861CCCC - movs r1, 0x2 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gAbilityDescriptionPointers - lsls r4, 2 - adds r4, r1 - ldr r1, [r4] - movs r2, 0 - str r2, [sp] - str r2, [sp, 0x4] - movs r3, 0x11 - bl sub_81C25A4 - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C302C - - thumb_func_start sub_81C307C -sub_81C307C: @ 81C307C - push {r4-r6,lr} - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r4, r0, 0 - adds r4, 0x70 - bl sub_81AFBF0 - ldr r1, =gUnknown_0861CE74 - movs r0, 0 - bl sub_81AFC0C - ldr r1, =gUnknown_0861CE7B - movs r0, 0x1 - bl sub_81AFC0C - bl sub_81C31C0 - bl sub_81A6BF4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C30C2 - bl sub_81B9E94 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C30C2 - bl sub_81C3304 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C30E0 -_081C30C2: - ldr r0, =gStringVar4 - ldr r1, =gUnknown_085EA5DB - bl sub_81AFC28 - b _081C3182 - .pool -_081C30E0: - movs r0, 0x20 - bl Alloc - adds r6, r0, 0 - movs r0, 0x20 - bl Alloc - adds r5, r0, 0 - adds r0, r6, 0 - bl sub_81C31F0 - ldrb r0, [r4, 0x9] - cmp r0, 0xD4 - bhi _081C310C - adds r1, r0, 0 - adds r0, r5, 0 - bl sub_8124610 - movs r0, 0x4 - adds r1, r5, 0 - bl sub_81AFC0C -_081C310C: - bl sub_81C3220 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C3148 - ldrb r0, [r4, 0xA] - cmp r0, 0 - bne _081C3134 - ldrb r0, [r4, 0x9] - ldr r1, =gUnknown_085EA516 - cmp r0, 0xD4 - bls _081C3170 - ldr r1, =gUnknown_085EA617 - b _081C3170 - .pool -_081C3134: - ldrb r0, [r4, 0x9] - ldr r1, =gUnknown_085EA4EC - cmp r0, 0xD4 - bls _081C3170 - ldr r1, =gUnknown_085EA5EB - b _081C3170 - .pool -_081C3148: - ldrb r0, [r4, 0x9] - cmp r0, 0xFF - bne _081C3158 - ldr r1, =gUnknown_085EA56A - b _081C3170 - .pool -_081C3158: - cmp r0, 0xFE - beq _081C316E - bl sub_81C32BC - lsls r0, 24 - cmp r0, 0 - beq _081C316E - ldrb r0, [r4, 0x9] - ldr r1, =gUnknown_085EA5A8 - cmp r0, 0xD4 - bls _081C3170 -_081C316E: - ldr r1, =gUnknown_085EA544 -_081C3170: - ldr r0, =gStringVar4 - bl sub_81AFC28 - adds r0, r6, 0 - bl Free - adds r0, r5, 0 - bl Free -_081C3182: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C307C - - thumb_func_start sub_81C3194 -sub_81C3194: @ 81C3194 - push {lr} - sub sp, 0x8 - ldr r0, =gUnknown_0861CCCC - movs r1, 0x3 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gStringVar4 - movs r2, 0 - str r2, [sp] - str r2, [sp, 0x4] - movs r3, 0x1 - bl sub_81C25A4 - add sp, 0x8 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C3194 - - thumb_func_start sub_81C31C0 -sub_81C31C0: @ 81C31C0 - push {lr} - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =gNatureNamePointers - adds r0, 0xA3 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - movs r0, 0x2 - bl sub_81AFC0C - ldr r1, =gUnknown_085EA3C0 - movs r0, 0x5 - bl sub_81AFC0C - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C31C0 - - thumb_func_start sub_81C31F0 -sub_81C31F0: @ 81C31F0 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0x7A - ldrb r1, [r0] - cmp r1, 0 - bne _081C3202 - movs r1, 0x5 -_081C3202: - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - movs r0, 0x3 - adds r1, r4, 0 - bl sub_81AFC0C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C31F0 - - thumb_func_start sub_81C3220 -sub_81C3220: @ 81C3220 - push {r4-r6,lr} - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r6, r0, 0 - adds r6, 0x70 - ldr r1, [r0] - ldr r0, =gEnemyParty - cmp r1, r0 - bne _081C326C - bl link_get_multiplayer_id - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_020229E8 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r0, r2, 0x4 - adds r0, r1, r0 - ldrh r4, [r0] - adds r0, r1, r2 - ldrb r5, [r0, 0x13] - ldr r0, =gStringVar1 - adds r2, 0x8 - adds r1, r2 - bl StringCopy - b _081C3282 - .pool -_081C326C: - bl sub_80F0020 - adds r4, r0, 0 - ldr r0, =0x0000ffff - ands r4, r0 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldrb r5, [r1, 0x8] - ldr r0, =gStringVar1 - bl StringCopy -_081C3282: - adds r0, r6, 0 - adds r0, 0x32 - ldrb r0, [r0] - cmp r5, r0 - bne _081C32A4 - ldr r0, [r6, 0x48] - ldr r1, =0x0000ffff - ands r0, r1 - cmp r4, r0 - bne _081C32A4 - ldr r0, =gStringVar1 - adds r1, r6, 0 - adds r1, 0x36 - bl StringCompareWithoutExtCtrlCodes - cmp r0, 0 - beq _081C32B4 -_081C32A4: - movs r0, 0 - b _081C32B6 - .pool -_081C32B4: - movs r0, 0x1 -_081C32B6: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81C3220 - - thumb_func_start sub_81C32BC -sub_81C32BC: @ 81C32BC - push {lr} - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0x70 - ldrb r0, [r0, 0xB] - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _081C32D8 - movs r0, 0 - b _081C32DA - .pool -_081C32D8: - movs r0, 0x1 -_081C32DA: - pop {r1} - bx r1 - thumb_func_end sub_81C32BC - - thumb_func_start sub_81C32E0 -sub_81C32E0: @ 81C32E0 - push {lr} - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r0, 0x70 - ldrb r0, [r0, 0xB] - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bls _081C32FC - movs r0, 0 - b _081C32FE - .pool -_081C32FC: - movs r0, 0x1 -_081C32FE: - pop {r1} - bx r1 - thumb_func_end sub_81C32E0 - - thumb_func_start sub_81C3304 -sub_81C3304: @ 81C3304 - push {lr} - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 15 - ands r0, r1 - cmp r0, 0 - beq _081C3354 - ldr r0, =gMain - ldr r1, =0x00000439 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081C3354 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040be - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _081C333A - cmp r0, 0x4 - beq _081C333A - cmp r0, 0x5 - bne _081C3354 -_081C333A: - movs r0, 0x1 - b _081C3356 - .pool -_081C3354: - movs r0, 0 -_081C3356: - pop {r1} - bx r1 - thumb_func_end sub_81C3304 - - thumb_func_start sub_81C335C -sub_81C335C: @ 81C335C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x8 - ldr r0, =gUnknown_0861CCCC - movs r1, 0 - bl sub_81C2D2C - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_085EA365 - mov r8, r0 - movs r0, 0x1 - mov r1, r8 - movs r2, 0 - bl GetStringWidth - adds r5, r0, 0 - movs r0, 0 - mov r9, r0 - str r0, [sp] - movs r6, 0x1 - str r6, [sp, 0x4] - adds r0, r4, 0 - mov r1, r8 - movs r2, 0 - movs r3, 0x1 - bl sub_81C25A4 - ldr r1, =gUnknown_085E8D38 - lsls r5, 24 - lsrs r5, 24 - mov r0, r9 - str r0, [sp] - str r6, [sp, 0x4] - adds r0, r4, 0 - adds r2, r5, 0 - movs r3, 0x1 - bl sub_81C25A4 - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C335C - - thumb_func_start sub_81C33CC -sub_81C33CC: @ 81C33CC - push {r4,r5,lr} - sub sp, 0x8 - ldr r5, =gStringVar1 - ldr r1, =gUnknown_085E8D59 - adds r0, r5, 0 - bl StringCopy - ldr r1, =gUnknown_085E8D38 - adds r0, r5, 0 - bl StringAppend - movs r0, 0x1 - adds r1, r5, 0 - movs r2, 0x38 - bl GetStringRightAlignXOffset - adds r4, r0, 0 - ldr r0, =gUnknown_0861CCCC - movs r1, 0x1 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - movs r1, 0 - str r1, [sp] - movs r1, 0x1 - str r1, [sp, 0x4] - adds r1, r5, 0 - adds r2, r4, 0 - movs r3, 0x1 - bl sub_81C25A4 - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C33CC - - thumb_func_start sub_81C3428 -sub_81C3428: @ 81C3428 - push {r4,lr} - sub sp, 0x8 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0x70 - adds r0, 0xA5 - ldrb r0, [r0] - cmp r0, 0x1 - bne _081C3448 - ldr r4, =gUnknown_085EA40B - b _081C346C - .pool -_081C3448: - ldrh r0, [r1, 0x30] - cmp r0, 0x5 - bhi _081C3458 - ldr r4, =gUnknown_085EA4A2 - b _081C346C - .pool -_081C3458: - cmp r0, 0xA - bhi _081C3464 - ldr r4, =gUnknown_085EA475 - b _081C346C - .pool -_081C3464: - ldr r4, =gUnknown_085EA40B - cmp r0, 0x28 - bhi _081C346C - ldr r4, =gUnknown_085EA442 -_081C346C: - ldr r0, =gUnknown_0861CCCC - movs r1, 0x2 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_81C25A4 - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C3428 - - thumb_func_start sub_81C349C -sub_81C349C: @ 81C349C - push {r4,lr} - sub sp, 0x8 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r4, r0, 0 - adds r4, 0x70 - adds r0, 0xA5 - ldrb r0, [r0] - cmp r0, 0x1 - beq _081C3500 - ldrb r0, [r4, 0x9] - cmp r0, 0xFF - bne _081C34C4 - ldr r4, =gUnknown_085EA678 - b _081C3502 - .pool -_081C34C4: - bl sub_81C32BC - lsls r0, 24 - cmp r0, 0 - beq _081C34D8 - bl sub_81C3220 - lsls r0, 24 - cmp r0, 0 - bne _081C34E0 -_081C34D8: - ldr r4, =gUnknown_085EA6AB - b _081C3502 - .pool -_081C34E0: - ldrb r0, [r4, 0x9] - cmp r0, 0xFD - bne _081C3500 - bl sub_81C32E0 - lsls r0, 24 - lsrs r0, 24 - ldr r4, =gUnknown_085EA702 - cmp r0, 0x1 - bne _081C3502 - ldr r4, =gUnknown_085EA6D7 - b _081C3502 - .pool -_081C3500: - ldr r4, =gUnknown_085EA647 -_081C3502: - ldr r0, =gUnknown_0861CCCC - movs r1, 0x3 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_81C25A4 - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C349C - - thumb_func_start sub_81C3530 -sub_81C3530: @ 81C3530 - push {lr} - bl sub_81C35E4 - bl sub_81C3690 - bl sub_81C3710 - bl sub_81C37D8 - bl sub_81C3808 - bl sub_81C3890 - bl sub_81C38C0 - pop {r0} - bx r0 - thumb_func_end sub_81C3530 - - thumb_func_start sub_81C3554 -sub_81C3554: @ 81C3554 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldrh r0, [r4] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - bhi _081C35D6 - lsls r0, 2 - ldr r1, =_081C3584 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C3584: - .4byte _081C35A4 - .4byte _081C35AA - .4byte _081C35B0 - .4byte _081C35B6 - .4byte _081C35BC - .4byte _081C35C2 - .4byte _081C35C8 - .4byte _081C35CE -_081C35A4: - bl sub_81C35E4 - b _081C35D6 -_081C35AA: - bl sub_81C3690 - b _081C35D6 -_081C35B0: - bl sub_81C3710 - b _081C35D6 -_081C35B6: - bl sub_81C37D8 - b _081C35D6 -_081C35BC: - bl sub_81C3808 - b _081C35D6 -_081C35C2: - bl sub_81C3890 - b _081C35D6 -_081C35C8: - bl sub_81C38C0 - b _081C35D6 -_081C35CE: - adds r0, r2, 0 - bl DestroyTask - b _081C35DC -_081C35D6: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_081C35DC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C3554 - - thumb_func_start sub_81C35E4 -sub_81C35E4: @ 81C35E4 - push {r4,r5,lr} - sub sp, 0x8 - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - adds r0, 0x9E - ldrh r0, [r0] - cmp r0, 0xAF - bne _081C3628 - bl sub_81B1250 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C3628 - ldr r0, [r4] - ldr r1, =0x000040be - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _081C3614 - cmp r0, 0x4 - beq _081C3614 - cmp r0, 0x5 - bne _081C3628 -_081C3614: - movs r0, 0xAF - bl itemid_get_item - adds r5, r0, 0 - b _081C3650 - .pool -_081C3628: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0x9E - ldrh r0, [r1] - cmp r0, 0 - bne _081C3644 - ldr r5, =gUnknown_085E8D26 - b _081C3650 - .pool -_081C3644: - ldrh r0, [r1] - ldr r4, =gStringVar1 - adds r1, r4, 0 - bl itemid_get_name - adds r5, r4, 0 -_081C3650: - movs r0, 0x1 - adds r1, r5, 0 - movs r2, 0x48 - bl GetStringCenterAlignXOffset - adds r4, r0, 0 - adds r4, 0x6 - ldr r0, =gUnknown_0861CCEC - movs r1, 0 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - adds r1, r5, 0 - adds r2, r4, 0 - movs r3, 0x1 - bl sub_81C25A4 - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C35E4 - - thumb_func_start sub_81C3690 -sub_81C3690: @ 81C3690 - push {r4,r5,lr} - sub sp, 0x8 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0x76 - ldrb r0, [r1] - cmp r0, 0 - bne _081C36B0 - ldr r5, =gUnknown_085E8D26 - b _081C36C8 - .pool -_081C36B0: - ldr r0, =gStringVar1 - ldrb r1, [r1] - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EA3B4 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r5, r4, 0 -_081C36C8: - movs r0, 0x1 - adds r1, r5, 0 - movs r2, 0x46 - bl GetStringCenterAlignXOffset - adds r4, r0, 0 - adds r4, 0x6 - ldr r0, =gUnknown_0861CCEC - movs r1, 0x1 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - adds r1, r5, 0 - adds r2, r4, 0 - movs r3, 0x1 - bl sub_81C25A4 - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C3690 - - thumb_func_start sub_81C3710 -sub_81C3710: @ 81C3710 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - movs r0, 0x8 - bl Alloc - mov r9, r0 - movs r0, 0x8 - bl Alloc - mov r8, r0 - movs r0, 0x8 - bl Alloc - adds r6, r0, 0 - movs r0, 0x8 - bl Alloc - adds r5, r0, 0 - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - adds r0, 0x90 - ldrh r1, [r0] - mov r0, r9 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, [r4] - adds r0, 0x92 - ldrh r1, [r0] - mov r0, r8 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, [r4] - adds r0, 0x94 - ldrh r1, [r0] - adds r0, r6, 0 - movs r2, 0x1 - movs r3, 0x7 - bl ConvertIntToDecimalStringN - ldr r0, [r4] - adds r0, 0x96 - ldrh r1, [r0] - adds r0, r5, 0 - movs r2, 0x1 - movs r3, 0x7 - bl ConvertIntToDecimalStringN - bl sub_81AFBF0 - movs r0, 0 - mov r1, r9 - bl sub_81AFC0C - movs r0, 0x1 - mov r1, r8 - bl sub_81AFC0C - movs r0, 0x2 - adds r1, r6, 0 - bl sub_81AFC0C - movs r0, 0x3 - adds r1, r5, 0 - bl sub_81AFC0C - ldr r0, =gStringVar4 - ldr r1, =gUnknown_0861CE82 - bl sub_81AFC28 - mov r0, r9 - bl Free - mov r0, r8 - bl Free - adds r0, r6, 0 - bl Free - adds r0, r5, 0 - bl Free - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C3710 - - thumb_func_start sub_81C37D8 -sub_81C37D8: @ 81C37D8 - push {lr} - sub sp, 0x8 - ldr r0, =gUnknown_0861CCEC - movs r1, 0x2 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gStringVar4 - movs r2, 0 - str r2, [sp] - str r2, [sp, 0x4] - movs r2, 0x4 - movs r3, 0x1 - bl sub_81C25A4 - add sp, 0x8 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C37D8 - - thumb_func_start sub_81C3808 -sub_81C3808: @ 81C3808 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r0, =gStringVar1 - mov r8, r0 - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - adds r0, 0x98 - ldrh r1, [r0] - mov r0, r8 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r6, =gStringVar2 - ldr r0, [r4] - adds r0, 0x9A - ldrh r1, [r0] - adds r0, r6, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r5, =gStringVar3 - ldr r0, [r4] - adds r0, 0x9C - ldrh r1, [r0] - adds r0, r5, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - bl sub_81AFBF0 - movs r0, 0 - mov r1, r8 - bl sub_81AFC0C - movs r0, 0x1 - adds r1, r6, 0 - bl sub_81AFC0C - movs r0, 0x2 - adds r1, r5, 0 - bl sub_81AFC0C - ldr r0, =gStringVar4 - ldr r1, =gUnknown_0861CE8E - bl sub_81AFC28 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C3808 - - thumb_func_start sub_81C3890 -sub_81C3890: @ 81C3890 - push {lr} - sub sp, 0x8 - ldr r0, =gUnknown_0861CCEC - movs r1, 0x3 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gStringVar4 - movs r2, 0 - str r2, [sp] - str r2, [sp, 0x4] - movs r2, 0x2 - movs r3, 0x1 - bl sub_81C25A4 - add sp, 0x8 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C3890 - - thumb_func_start sub_81C38C0 -sub_81C38C0: @ 81C38C0 - push {r4-r6,lr} - sub sp, 0x8 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r5, r0, 0 - adds r5, 0x70 - ldr r0, =gUnknown_0861CCEC - movs r1, 0x4 - bl sub_81C2D2C - lsls r0, 24 - lsrs r6, r0, 24 - ldr r4, =gStringVar1 - ldr r1, [r5, 0x10] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x7 - bl ConvertIntToDecimalStringN - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x2A - bl GetStringRightAlignXOffset - adds r0, 0x2 - lsls r2, r0, 24 - lsrs r2, 24 - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - adds r0, r6, 0 - adds r1, r4, 0 - movs r3, 0x1 - bl sub_81C25A4 - ldrb r0, [r5, 0x5] - cmp r0, 0x63 - bhi _081C3948 - ldr r4, =gExperienceTables - adds r1, r0, 0 - adds r1, 0x1 - lsls r1, 2 - ldr r3, =gBaseStats - ldrh r2, [r5] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r3 - ldrb r2, [r0, 0x13] - movs r0, 0xCA - lsls r0, 1 - muls r0, r2 - adds r1, r0 - adds r1, r4 - ldr r1, [r1] - ldr r0, [r5, 0x10] - subs r1, r0 - b _081C394A - .pool -_081C3948: - movs r1, 0 -_081C394A: - ldr r4, =gStringVar1 - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x6 - bl ConvertIntToDecimalStringN - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x2A - bl GetStringRightAlignXOffset - adds r0, 0x2 - lsls r2, r0, 24 - lsrs r2, 24 - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - adds r0, r6, 0 - adds r1, r4, 0 - movs r3, 0x11 - bl sub_81C25A4 - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C38C0 - - thumb_func_start sub_81C3984 -sub_81C3984: @ 81C3984 - push {r4,lr} - movs r0, 0 - bl sub_81C3B08 - movs r0, 0x1 - bl sub_81C3B08 - movs r0, 0x2 - bl sub_81C3B08 - movs r0, 0x3 - bl sub_81C3B08 - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - ldr r1, =0x000040bc - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3 - bne _081C39EA - bl sub_81C3F44 - ldr r1, [r4] - ldr r0, =0x000040c6 - adds r2, r1, r0 - ldrb r0, [r2] - cmp r0, 0x4 - bne _081C39DC - ldr r0, =0x000040c4 - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - beq _081C39EA - bl sub_81C3E9C - b _081C39EA - .pool -_081C39DC: - ldrb r0, [r2] - lsls r0, 1 - adds r1, 0x84 - adds r1, r0 - ldrh r0, [r1] - bl sub_81C3E9C -_081C39EA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C3984 - - thumb_func_start sub_81C39F0 -sub_81C39F0: @ 81C39F0 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldrh r0, [r4] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - bhi _081C3AFC - lsls r0, 2 - ldr r1, =_081C3A20 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C3A20: - .4byte _081C3A40 - .4byte _081C3A48 - .4byte _081C3A50 - .4byte _081C3A58 - .4byte _081C3A60 - .4byte _081C3A7C - .4byte _081C3ABE - .4byte _081C3AF4 -_081C3A40: - movs r0, 0 - bl sub_81C3B08 - b _081C3AFC -_081C3A48: - movs r0, 0x1 - bl sub_81C3B08 - b _081C3AFC -_081C3A50: - movs r0, 0x2 - bl sub_81C3B08 - b _081C3AFC -_081C3A58: - movs r0, 0x3 - bl sub_81C3B08 - b _081C3AFC -_081C3A60: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040bc - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3 - bne _081C3AFC - bl sub_81C3F44 - b _081C3AFC - .pool -_081C3A7C: - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040bc - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x3 - bne _081C3AFC - ldr r0, =0x000040c6 - adds r2, r1, r0 - ldrb r0, [r2] - cmp r0, 0x4 - bne _081C3AB0 - ldr r2, =0x000040c4 - adds r0, r1, r2 - ldrh r0, [r0] - strh r0, [r4, 0x2] - b _081C3AFC - .pool -_081C3AB0: - ldrb r0, [r2] - lsls r0, 1 - adds r1, 0x84 - adds r1, r0 - ldrh r0, [r1] - strh r0, [r4, 0x2] - b _081C3AFC -_081C3ABE: - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040bc - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x3 - bne _081C3AFC - adds r2, 0x8 - adds r0, r1, r2 - ldr r0, [r0] - ldr r1, =0x00ffffff - ands r0, r1 - movs r1, 0x80 - lsls r1, 11 - cmp r0, r1 - beq _081C3AFC - ldrh r0, [r4, 0x2] - bl sub_81C3E9C - b _081C3AFC - .pool -_081C3AF4: - adds r0, r2, 0 - bl DestroyTask - b _081C3B02 -_081C3AFC: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_081C3B02: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C39F0 - - thumb_func_start sub_81C3B08 -sub_81C3B08: @ 81C3B08 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - mov r10, r0 - ldr r4, =gUnknown_0861CD14 - adds r0, r4, 0 - movs r1, 0 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - lsls r1, r7, 1 - mov r0, r10 - adds r0, 0x84 - adds r0, r1 - ldrh r5, [r0] - cmp r5, 0 - beq _081C3C00 - mov r0, r10 - adds r0, 0xA4 - ldrb r1, [r0] - adds r0, r5, 0 - adds r2, r7, 0 - bl CalcPPWithPPUps - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - movs r0, 0xD - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gMoveNames - adds r1, r0 - lsls r0, r7, 4 - mov r9, r0 - mov r3, r9 - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - mov r0, r8 - movs r2, 0 - bl sub_81C25A4 - ldr r0, =gStringVar1 - mov r8, r0 - mov r5, r10 - adds r5, 0x8C - adds r5, r7 - ldrb r1, [r5] - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar2 - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - bl sub_81AFBF0 - movs r0, 0 - mov r1, r8 - bl sub_81AFC0C - movs r0, 0x1 - adds r1, r4, 0 - bl sub_81AFC0C - ldr r4, =gStringVar4 - ldr r1, =gUnknown_0861CE97 - adds r0, r4, 0 - bl sub_81AFC28 - adds r7, r4, 0 - ldrb r0, [r5] - adds r1, r6, 0 - bl sub_814FC20 - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - adds r5, 0x9 - movs r0, 0x1 - adds r1, r7, 0 - movs r2, 0x2C - bl GetStringRightAlignXOffset - mov r4, r9 - b _081C3C26 - .pool -_081C3C00: - ldr r1, =gUnknown_085E8D40 - lsls r4, r7, 4 - adds r3, r4, 0x1 - lsls r3, 24 - lsrs r3, 24 - str r5, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - mov r0, r8 - movs r2, 0 - bl sub_81C25A4 - ldr r7, =gUnknown_085E8D42 - movs r5, 0xC - movs r0, 0x1 - adds r1, r7, 0 - movs r2, 0x2C - bl GetStringCenterAlignXOffset -_081C3C26: - lsls r2, r0, 24 - lsrs r2, 24 - adds r3, r4, 0x1 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0 - str r0, [sp] - lsls r0, r5, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - ldr r0, [sp, 0x8] - adds r1, r7, 0 - bl sub_81C25A4 - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C3B08 - - thumb_func_start sub_81C3C5C -sub_81C3C5C: @ 81C3C5C - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _081C3CFC - movs r0, 0x13 - str r0, [sp] - movs r0, 0x20 - str r0, [sp, 0x4] - movs r0, 0xE - movs r1, 0 - movs r2, 0x35 - movs r3, 0 - bl FillWindowPixelRect - ldr r2, =gBattleMoves - lsls r1, r5, 1 - adds r0, r1, r5 - lsls r0, 2 - adds r2, r0, r2 - ldrb r0, [r2, 0x1] - adds r6, r1, 0 - cmp r0, 0x1 - bhi _081C3C9C - ldr r1, =gUnknown_085E8D45 - b _081C3CAC - .pool -_081C3C9C: - ldr r4, =gStringVar1 - ldrb r1, [r2, 0x1] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r1, r4, 0 -_081C3CAC: - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0xE - movs r2, 0x35 - movs r3, 0x1 - bl sub_81C25A4 - ldr r1, =gBattleMoves - adds r0, r6, r5 - lsls r0, 2 - adds r1, r0, r1 - ldrb r0, [r1, 0x3] - cmp r0, 0 - bne _081C3CDC - ldr r1, =gUnknown_085E8D45 - b _081C3CEC - .pool -_081C3CDC: - ldr r4, =gStringVar1 - ldrb r1, [r1, 0x3] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r1, r4, 0 -_081C3CEC: - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0xE - movs r2, 0x35 - movs r3, 0x11 - bl sub_81C25A4 -_081C3CFC: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C3C5C - - thumb_func_start sub_81C3D08 -sub_81C3D08: @ 81C3D08 - push {r4,lr} - movs r0, 0 - bl sub_81C3B08 - movs r0, 0x1 - bl sub_81C3B08 - movs r0, 0x2 - bl sub_81C3B08 - movs r0, 0x3 - bl sub_81C3B08 - ldr r4, =gUnknown_0203CF1C - ldr r0, [r4] - ldr r1, =0x000040bc - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3 - bne _081C3D40 - bl sub_81C3F44 - ldr r0, [r4] - ldr r1, =0x000040c6 - adds r0, r1 - ldrb r0, [r0] - bl sub_81C3E2C -_081C3D40: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C3D08 - - thumb_func_start sub_81C3D54 -sub_81C3D54: @ 81C3D54 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldrh r0, [r4] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - bhi _081C3E20 - lsls r0, 2 - ldr r1, =_081C3D84 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C3D84: - .4byte _081C3DA0 - .4byte _081C3DA8 - .4byte _081C3DB0 - .4byte _081C3DB8 - .4byte _081C3DC0 - .4byte _081C3DDC - .4byte _081C3E18 -_081C3DA0: - movs r0, 0 - bl sub_81C3B08 - b _081C3E20 -_081C3DA8: - movs r0, 0x1 - bl sub_81C3B08 - b _081C3E20 -_081C3DB0: - movs r0, 0x2 - bl sub_81C3B08 - b _081C3E20 -_081C3DB8: - movs r0, 0x3 - bl sub_81C3B08 - b _081C3E20 -_081C3DC0: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040bc - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3 - bne _081C3E20 - bl sub_81C3F44 - b _081C3E20 - .pool -_081C3DDC: - ldr r0, =gUnknown_0203CF1C - ldr r2, [r0] - ldr r1, =0x000040bc - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x3 - bne _081C3E20 - adds r1, 0x8 - adds r0, r2, r1 - ldr r0, [r0] - ldr r1, =0x00ffffff - ands r0, r1 - movs r1, 0x80 - lsls r1, 11 - cmp r0, r1 - beq _081C3E20 - ldr r1, =0x000040c6 - adds r0, r2, r1 - ldrb r0, [r0] - bl sub_81C3E2C - b _081C3E20 - .pool -_081C3E18: - adds r0, r2, 0 - bl DestroyTask - b _081C3E26 -_081C3E20: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_081C3E26: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C3D54 - - thumb_func_start sub_81C3E2C -sub_81C3E2C: @ 81C3E2C - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x4 - bne _081C3E48 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c4 - b _081C3E50 - .pool -_081C3E48: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - lsls r1, 1 - adds r0, 0x84 -_081C3E50: - adds r0, r1 - ldrh r4, [r0] - cmp r4, 0 - beq _081C3E82 - ldr r0, =gUnknown_0861CD14 - movs r1, 0x2 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - ldr r3, =gContestEffectDescriptionPointers - ldr r2, =gContestMoves - lsls r1, r4, 3 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - movs r2, 0 - str r2, [sp] - str r2, [sp, 0x4] - movs r2, 0x6 - movs r3, 0x1 - bl sub_81C25A4 -_081C3E82: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C3E2C - - thumb_func_start sub_81C3E9C -sub_81C3E9C: @ 81C3E9C - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 16 - lsrs r4, r0, 16 - adds r6, r4, 0 - ldr r0, =gUnknown_0861CD14 - movs r1, 0x2 - bl sub_81C2D2C - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - movs r1, 0 - bl FillWindowPixelBuffer - cmp r4, 0 - beq _081C3F30 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c0 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x2 - bne _081C3F00 - adds r0, r4, 0 - bl sub_81C3C5C - ldr r1, =gMoveDescriptionPointers - subs r0, r4, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r2, 0x6 - movs r3, 0x1 - bl sub_81C25A4 - b _081C3F20 - .pool -_081C3F00: - ldr r2, =gContestEffectDescriptionPointers - ldr r1, =gContestMoves - lsls r0, r6, 3 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldr r1, [r0] - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r2, 0x6 - movs r3, 0x1 - bl sub_81C25A4 -_081C3F20: - adds r0, r5, 0 - bl PutWindowTilemap - b _081C3F36 - .pool -_081C3F30: - adds r0, r5, 0 - bl ClearWindowTilemap -_081C3F36: - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81C3E9C - - thumb_func_start sub_81C3F44 -sub_81C3F44: @ 81C3F44 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - ldr r4, =gUnknown_0861CD14 - adds r0, r4, 0 - movs r1, 0 - bl sub_81C2D2C - lsls r0, 24 - lsrs r6, r0, 24 - adds r7, r6, 0 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81C2D2C - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r2, =0x000040c4 - adds r0, r1, r2 - ldrh r2, [r0] - cmp r2, 0 - bne _081C3F9C - ldr r1, =gUnknown_085E8CF0 - str r2, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - adds r0, r6, 0 - movs r2, 0 - movs r3, 0x41 - bl sub_81C25A4 - b _081C4044 - .pool -_081C3F9C: - ldrh r5, [r0] - ldr r2, =0x000040c0 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x2 - bne _081C3FD0 - movs r0, 0xD - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gMoveNames - adds r1, r0 - movs r0, 0 - str r0, [sp] - movs r0, 0x6 - str r0, [sp, 0x4] - adds r0, r6, 0 - movs r2, 0 - movs r3, 0x41 - bl sub_81C25A4 - b _081C3FEC - .pool -_081C3FD0: - movs r0, 0xD - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gMoveNames - adds r1, r0 - movs r0, 0 - str r0, [sp] - movs r0, 0x5 - str r0, [sp, 0x4] - adds r0, r7, 0 - movs r2, 0 - movs r3, 0x41 - bl sub_81C25A4 -_081C3FEC: - ldr r4, =gStringVar1 - ldr r1, =gBattleMoves - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x4] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - bl sub_81AFBF0 - movs r0, 0 - adds r1, r4, 0 - bl sub_81AFC0C - movs r0, 0x1 - adds r1, r4, 0 - bl sub_81AFC0C - ldr r4, =gStringVar4 - ldr r1, =gUnknown_0861CE97 - adds r0, r4, 0 - bl sub_81AFC28 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x2C - bl GetStringRightAlignXOffset - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - movs r0, 0 - str r0, [sp] - movs r0, 0xC - str r0, [sp, 0x4] - mov r0, r8 - adds r1, r4, 0 - movs r3, 0x41 - bl sub_81C25A4 -_081C4044: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C3F44 - - thumb_func_start sub_81C4064 -sub_81C4064: @ 81C4064 - push {r4,lr} - sub sp, 0x8 - ldr r0, =gUnknown_0861CD14 - movs r1, 0 - bl sub_81C2D2C - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x48 - str r0, [sp] - movs r0, 0x10 - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x42 - bl FillWindowPixelRect - adds r0, r4, 0 - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4064 - - thumb_func_start sub_81C40A0 -sub_81C40A0: @ 81C40A0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - mov r9, r0 - mov r10, r1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - mov r0, r10 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r5, =gUnknown_0861CD14 - adds r0, r5, 0 - movs r1, 0 - bl sub_81C2D2C - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_81C2D2C - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - mov r0, r9 - lsls r6, r0, 4 - movs r0, 0x48 - mov r8, r0 - str r0, [sp] - movs r0, 0x10 - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - adds r3, r6, 0 - bl FillWindowPixelRect - mov r0, r10 - lsls r7, r0, 4 - mov r0, r8 - str r0, [sp] - movs r0, 0x10 - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - adds r3, r7, 0 - bl FillWindowPixelRect - movs r4, 0x30 - str r4, [sp] - movs r0, 0x10 - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0 - adds r3, r6, 0 - bl FillWindowPixelRect - str r4, [sp] - movs r0, 0x10 - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0 - adds r3, r7, 0 - bl FillWindowPixelRect - mov r0, r9 - bl sub_81C3B08 - mov r0, r10 - bl sub_81C3B08 - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C40A0 - - thumb_func_start sub_81C4154 -sub_81C4154: @ 81C4154 - push {r4,lr} - sub sp, 0x8 - ldr r0, =gUnknown_0861CD14 - movs r1, 0x2 - bl sub_81C2D2C - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r1, =gUnknown_085EA4CB - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r2, 0x6 - movs r3, 0x1 - bl sub_81C25A4 - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4154 - - thumb_func_start sub_81C4190 -sub_81C4190: @ 81C4190 - push {r4,r5,lr} - movs r2, 0 - ldr r5, =gUnknown_0203CF1C - ldr r4, =0x000040d3 - movs r3, 0xFF -_081C419A: - ldr r0, [r5] - adds r0, r4 - adds r0, r2 - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x1B - bls _081C419A - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4190 - - thumb_func_start sub_81C41C0 -sub_81C41C0: @ 81C41C0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, =gUnknown_0203CF1C - ldr r0, [r5] - ldr r1, =0x000040d3 - adds r0, r1 - adds r1, r0, r4 - ldrb r0, [r1] - cmp r0, 0xFF - beq _081C41F2 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - bl RemoveObjectAndFreeTiles - ldr r0, [r5] - ldr r1, =0x000040d3 - adds r0, r1 - adds r0, r4 - movs r1, 0xFF - strb r1, [r0] -_081C41F2: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C41C0 - - thumb_func_start sub_81C4204 -sub_81C4204: @ 81C4204 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r3, =gUnknown_02020630 - ldr r2, =gUnknown_0203CF1C - ldr r2, [r2] - ldr r4, =0x000040d3 - adds r2, r4 - adds r2, r0 - ldrb r0, [r2] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - adds r2, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4204 - - thumb_func_start sub_81C424C -sub_81C424C: @ 81C424C - push {r4,lr} - movs r4, 0x3 -_081C4250: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040d3 - adds r0, r1 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0xFF - beq _081C4268 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81C4204 -_081C4268: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1B - bls _081C4250 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C424C - - thumb_func_start sub_81C4280 -sub_81C4280: @ 81C4280 - push {lr} - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c0 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x2 - beq _081C42B0 - cmp r0, 0x2 - bgt _081C42A4 - cmp r0, 0 - beq _081C42AA - b _081C42C2 - .pool -_081C42A4: - cmp r0, 0x3 - beq _081C42BA - b _081C42C2 -_081C42AA: - bl sub_81C43A0 - b _081C42C2 -_081C42B0: - bl sub_81C4420 - bl sub_81C44F0 - b _081C42C2 -_081C42BA: - bl sub_81C4484 - bl sub_81C44F0 -_081C42C2: - pop {r0} - bx r0 - thumb_func_end sub_81C4280 - - thumb_func_start sub_81C42C8 -sub_81C42C8: @ 81C42C8 - push {r4,r5,lr} - movs r4, 0x3 - ldr r5, =gUnknown_0203CF1C -_081C42CE: - ldr r0, [r5] - ldr r1, =0x000040d3 - adds r0, r1 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0xFF - bne _081C42F2 - ldr r0, =gUnknown_0861CFC4 - movs r1, 0 - movs r2, 0 - movs r3, 0x2 - bl AddObjectToFront - ldr r1, [r5] - ldr r2, =0x000040d3 - adds r1, r2 - adds r1, r4 - strb r0, [r1] -_081C42F2: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81C4204 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _081C42CE - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C42C8 - - thumb_func_start sub_81C4318 -sub_81C4318: @ 81C4318 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - mov r8, r2 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r3, 24 - lsrs r3, 24 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040d3 - adds r0, r1 - adds r0, r3 - ldrb r0, [r0] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, =gUnknown_02020630 - adds r4, r0 - adds r0, r4, 0 - adds r1, r5, 0 - str r3, [sp] - bl StartObjectImageAnim - ldr r0, =gUnknown_0861CFDC - adds r5, r0 - ldrb r1, [r5] - lsls r1, 4 - ldrb r2, [r4, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - adds r6, 0x10 - strh r6, [r4, 0x20] - movs r0, 0x8 - add r8, r0 - mov r1, r8 - strh r1, [r4, 0x22] - ldr r3, [sp] - adds r0, r3, 0 - movs r1, 0 - bl sub_81C4204 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4318 - - thumb_func_start sub_81C43A0 -sub_81C43A0: @ 81C43A0 - push {r4,r5,lr} - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r5, r0, 0 - adds r5, 0x70 - ldrb r0, [r5, 0x4] - cmp r0, 0 - beq _081C43CC - movs r0, 0x9 - movs r1, 0x78 - movs r2, 0x30 - movs r3, 0x3 - bl sub_81C4318 - movs r0, 0x4 - movs r1, 0x1 - bl sub_81C4204 - b _081C4418 - .pool -_081C43CC: - ldr r4, =gBaseStats - ldrh r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x6] - movs r1, 0x78 - movs r2, 0x30 - movs r3, 0x3 - bl sub_81C4318 - ldrh r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r0, r4 - ldrb r0, [r1, 0x6] - ldrb r2, [r1, 0x7] - cmp r0, r2 - beq _081C4410 - ldrb r0, [r1, 0x7] - movs r1, 0xA0 - movs r2, 0x30 - movs r3, 0x4 - bl sub_81C4318 - movs r0, 0x4 - movs r1, 0 - bl sub_81C4204 - b _081C4418 - .pool -_081C4410: - movs r0, 0x4 - movs r1, 0x1 - bl sub_81C4204 -_081C4418: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81C43A0 - - thumb_func_start sub_81C4420 -sub_81C4420: @ 81C4420 - push {r4-r6,lr} - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r5, r0, 0 - adds r5, 0x70 - movs r4, 0 - ldr r6, =gBattleMoves -_081C442E: - lsls r0, r4, 1 - adds r1, r5, 0 - adds r1, 0x14 - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - beq _081C4468 - adds r1, r0, 0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x2] - lsls r2, r4, 28 - movs r1, 0x80 - lsls r1, 22 - adds r2, r1 - lsrs r2, 24 - adds r3, r4, 0x3 - lsls r3, 24 - lsrs r3, 24 - movs r1, 0x55 - bl sub_81C4318 - b _081C4474 - .pool -_081C4468: - adds r0, r4, 0x3 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl sub_81C4204 -_081C4474: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _081C442E - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81C4420 - - thumb_func_start sub_81C4484 -sub_81C4484: @ 81C4484 - push {r4,r5,lr} - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r5, r0, 0 - adds r5, 0x70 - movs r4, 0 -_081C4490: - lsls r0, r4, 1 - adds r1, r5, 0 - adds r1, 0x14 - adds r2, r1, r0 - ldrh r0, [r2] - cmp r0, 0 - beq _081C44D4 - ldr r1, =gContestMoves - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x1] - lsls r0, 29 - lsrs r0, 5 - movs r1, 0x90 - lsls r1, 21 - adds r0, r1 - lsrs r0, 24 - lsls r2, r4, 28 - movs r1, 0x80 - lsls r1, 22 - adds r2, r1 - lsrs r2, 24 - adds r3, r4, 0x3 - lsls r3, 24 - lsrs r3, 24 - movs r1, 0x55 - bl sub_81C4318 - b _081C44E0 - .pool -_081C44D4: - adds r0, r4, 0x3 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl sub_81C4204 -_081C44E0: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _081C4490 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81C4484 - - thumb_func_start sub_81C44F0 -sub_81C44F0: @ 81C44F0 - push {lr} - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - ldr r0, =0x000040c4 - adds r3, r1, r0 - ldrh r0, [r3] - cmp r0, 0 - bne _081C4514 - movs r0, 0x7 - movs r1, 0x1 - bl sub_81C4204 - b _081C4560 - .pool -_081C4514: - ldr r2, =0x000040c0 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x2 - bne _081C4540 - ldr r2, =gBattleMoves - ldrh r1, [r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x2] - movs r1, 0x55 - movs r2, 0x60 - movs r3, 0x7 - bl sub_81C4318 - b _081C4560 - .pool -_081C4540: - ldr r1, =gContestMoves - ldrh r0, [r3] - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x1] - lsls r0, 29 - lsrs r0, 5 - movs r1, 0x90 - lsls r1, 21 - adds r0, r1 - lsrs r0, 24 - movs r1, 0x55 - movs r2, 0x60 - movs r3, 0x7 - bl sub_81C4318 -_081C4560: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C44F0 - - thumb_func_start sub_81C4568 -sub_81C4568: @ 81C4568 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, =gUnknown_0203CF1C - ldr r2, [r2] - adds r0, 0x3 - ldr r3, =0x000040d3 - adds r2, r3 - adds r0, r2, r0 - ldrb r0, [r0] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r5, =gUnknown_02020630 - adds r4, r5 - adds r1, 0x3 - adds r2, r1 - ldrb r0, [r2] - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - adds r3, r5 - adds r5, r4, 0 - adds r5, 0x2A - ldrb r1, [r5] - adds r2, r3, 0 - adds r2, 0x2A - ldrb r0, [r2] - strb r0, [r5] - strb r1, [r2] - ldrb r6, [r4, 0x5] - lsrs r5, r6, 4 - ldrb r2, [r3, 0x5] - lsrs r2, 4 - lsls r2, 4 - movs r1, 0xF - adds r0, r1, 0 - ands r0, r6 - orrs r0, r2 - strb r0, [r4, 0x5] - lsls r5, 4 - ldrb r0, [r3, 0x5] - ands r1, r0 - orrs r1, r5 - strb r1, [r3, 0x5] - adds r4, 0x3F - ldrb r0, [r4] - movs r2, 0x4 - orrs r0, r2 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r4] - adds r3, 0x3F - ldrb r0, [r3] - orrs r0, r2 - ands r0, r1 - strb r0, [r3] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4568 - - thumb_func_start sub_81C45F4 -sub_81C45F4: @ 81C45F4 - push {r4-r6,lr} - adds r3, r0, 0 - adds r6, r1, 0 - ldr r0, =gUnknown_0203CF1C - ldr r2, [r0] - adds r5, r2, 0 - adds r5, 0x70 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _081C4620 - cmp r0, 0x1 - bne _081C4610 - b _081C4750 -_081C4610: - adds r0, r3, 0 - bl sub_81C47B4 - lsls r0, 24 - lsrs r0, 24 - b _081C4770 - .pool -_081C4620: - ldr r0, =gMain - ldr r1, =0x00000439 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081C4680 - ldr r1, =0x000040be - adds r0, r2, r1 - ldrb r1, [r0] - movs r0, 0x3 - bl sub_80688F8 - lsls r0, 24 - cmp r0, 0 - beq _081C4668 - ldrh r2, [r5, 0x2] - lsls r0, r2, 3 - ldr r1, =gMonFrontPicTable - adds r0, r1 - ldr r1, =gUnknown_020244D4 - ldr r1, [r1] - ldr r1, [r1, 0x8] - b _081C46D6 - .pool -_081C4668: - ldrh r2, [r5, 0x2] - lsls r0, r2, 3 - ldr r1, =gMonFrontPicTable - adds r0, r1 - ldr r1, =gUnknown_020244D4 - ldr r1, [r1] - b _081C46B0 - .pool -_081C4680: - ldr r0, =gUnknown_020244D4 - ldr r3, [r0] - adds r4, r0, 0 - cmp r3, 0 - beq _081C46E4 - ldr r1, [r2] - ldr r0, =gPlayerParty - cmp r1, r0 - beq _081C46A6 - ldr r1, =0x000040bc - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x2 - beq _081C46A6 - adds r1, 0x33 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _081C46CC -_081C46A6: - ldrh r2, [r5, 0x2] - lsls r0, r2, 3 - ldr r1, =gMonFrontPicTable - adds r0, r1 - ldr r1, [r4] -_081C46B0: - ldr r1, [r1, 0x8] - ldr r3, [r5, 0xC] - bl DecompressMonPic_DetectFrontOrBack_2 - b _081C4768 - .pool -_081C46CC: - ldrh r2, [r5, 0x2] - lsls r0, r2, 3 - ldr r1, =gMonFrontPicTable - adds r0, r1 - ldr r1, [r3, 0x8] -_081C46D6: - ldr r3, [r5, 0xC] - bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack - b _081C4768 - .pool -_081C46E4: - ldr r1, [r2] - ldr r0, =gPlayerParty - cmp r1, r0 - beq _081C4700 - ldr r1, =0x000040bc - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x2 - beq _081C4700 - adds r1, 0x33 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _081C472C -_081C4700: - ldrh r4, [r5, 0x2] - lsls r4, 3 - ldr r0, =gMonFrontPicTable - adds r4, r0 - movs r0, 0 - movs r1, 0x1 - bl sub_806F4F8 - adds r1, r0, 0 - ldrh r2, [r5, 0x2] - ldr r3, [r5, 0xC] - adds r0, r4, 0 - bl DecompressMonPic_DetectFrontOrBack_2 - b _081C4768 - .pool -_081C472C: - ldrh r4, [r5, 0x2] - lsls r4, 3 - ldr r0, =gMonFrontPicTable - adds r4, r0 - movs r0, 0 - movs r1, 0x1 - bl sub_806F4F8 - adds r1, r0, 0 - ldrh r2, [r5, 0x2] - ldr r3, [r5, 0xC] - adds r0, r4, 0 - bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack - b _081C4768 - .pool -_081C4750: - ldrh r0, [r5, 0x2] - ldr r1, [r5, 0x48] - ldr r2, [r5, 0xC] - bl sub_806E7CC - adds r4, r0, 0 - bl LoadCompressedObjectPalette - ldrh r0, [r4, 0x4] - movs r1, 0x1 - bl sub_806A068 -_081C4768: - ldrh r0, [r6] - adds r0, 0x1 - strh r0, [r6] - movs r0, 0xFF -_081C4770: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81C45F4 - - thumb_func_start sub_81C4778 -sub_81C4778: @ 81C4778 - push {r4,lr} - ldr r0, =gUnknown_0203CF1C - ldr r1, [r0] - adds r4, r1, 0 - adds r4, 0x70 - ldrb r0, [r4, 0x4] - cmp r0, 0 - bne _081C47AE - adds r0, r1, 0 - adds r0, 0xC - bl sub_805F110 - cmp r0, 0x1 - bne _081C47A4 - ldrh r0, [r4, 0x2] - movs r1, 0 - movs r2, 0 - bl sub_80A32E4 - b _081C47AE - .pool -_081C47A4: - ldrh r0, [r4, 0x2] - movs r1, 0 - movs r2, 0xB - bl sub_80A32E4 -_081C47AE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C4778 - - thumb_func_start sub_81C47B4 -sub_81C47B4: @ 81C47B4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, =gUnknown_0203CF1C - ldr r6, [r0] - adds r6, 0x70 - ldr r0, =gUnknown_0202499C - movs r1, 0x28 - movs r2, 0x40 - movs r3, 0x5 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r4, r0, 4 - add r4, r8 - lsls r4, 2 - ldr r5, =gUnknown_02020630 - adds r7, r4, r5 - adds r0, r7, 0 - bl obj_free_rotscale_entry - ldrh r0, [r6, 0x2] - movs r1, 0 - strh r0, [r7, 0x2E] - strh r1, [r7, 0x32] - adds r5, 0x1C - adds r4, r5 - ldr r0, =sub_81C4844 - str r0, [r4] - ldrb r1, [r7, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r7, 0x5] - ldrh r0, [r6, 0x2] - bl sub_806E840 - lsls r0, 24 - cmp r0, 0 - bne _081C4828 - adds r0, r7, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - b _081C4836 - .pool -_081C4828: - adds r2, r7, 0 - adds r2, 0x3F - ldrb r1, [r2] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_081C4836: - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81C47B4 - - thumb_func_start sub_81C4844 -sub_81C4844: @ 81C4844 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - adds r5, r0, 0 - adds r5, 0x70 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081C487E - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _081C487E - ldrh r0, [r4, 0x2E] - bl sub_806E840 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x30] - bl sub_81C4778 - ldrh r1, [r4, 0x2E] - ldrb r2, [r5, 0x4] - adds r0, r4, 0 - bl sub_806EE0C -_081C487E: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4844 - - thumb_func_start sub_81C488C -sub_81C488C: @ 81C488C - ldr r1, =gUnknown_0203CF24 - strb r0, [r1] - bx lr - .pool - thumb_func_end sub_81C488C - - thumb_func_start sub_81C4898 -sub_81C4898: @ 81C4898 - push {r4,lr} - ldr r4, =gUnknown_0203CF24 - ldrb r0, [r4] - cmp r0, 0xFF - beq _081C48AA - bl DestroyTask - movs r0, 0xFF - strb r0, [r4] -_081C48AA: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4898 - - thumb_func_start sub_81C48B4 -sub_81C48B4: @ 81C48B4 - push {lr} - ldr r2, =gUnknown_02020630 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040d3 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - cmp r1, r0 - beq _081C48E8 - movs r0, 0x1 - b _081C48EA - .pool -_081C48E8: - movs r0, 0 -_081C48EA: - pop {r1} - bx r1 - thumb_func_end sub_81C48B4 - - thumb_func_start sub_81C48F0 -sub_81C48F0: @ 81C48F0 - push {r4-r6,lr} - ldr r6, =gUnknown_02020630 - ldr r5, =gUnknown_0203CF1C - ldr r0, [r5] - ldr r4, =0x000040d3 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r5] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r6, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =DummyObjectCallback - str r1, [r0] - bl sub_806EE98 - ldr r0, [r5] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - lsls r3, r0, 4 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1, 0 - orrs r3, r0 - movs r2, 0 - ldr r5, =gPlttBufferUnfaded - ldr r4, =gPlttBufferFaded -_081C494C: - adds r0, r2, r3 - lsls r0, 16 - lsrs r0, 15 - adds r1, r0, r5 - adds r0, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0xF - bls _081C494C - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C48F0 - - thumb_func_start sub_81C4984 -sub_81C4984: @ 81C4984 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r1, =0x00007533 - ldr r2, =gUnknown_0861D120 - adds r0, r1, 0 - bl sub_811FF94 - adds r4, r0, 0 - ldr r6, =gUnknown_0203CF1C - ldr r0, [r6] - str r4, [r0, 0x8] - cmp r4, 0 - beq _081C49CE - adds r0, r5, 0 - movs r1, 0x8 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartObjectImageAnim - ldr r1, [r6] - ldr r2, [r1, 0x8] - movs r0, 0x3C - strh r0, [r2, 0x20] - ldr r2, [r1, 0x8] - movs r0, 0x1A - strh r0, [r2, 0x22] - ldr r2, [r1, 0x8] - ldrb r1, [r2, 0x5] - subs r0, 0x27 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x5] -_081C49CE: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4984 - - thumb_func_start sub_81C49E0 -sub_81C49E0: @ 81C49E0 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r0, [r0, 0x8] - bl RemoveObjectAndFreeTiles - ldr r0, =0x00007533 - bl FreeObjectTilesByTag - adds r0, r4, 0 - bl sub_81C4984 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C49E0 - - thumb_func_start sub_81C4A08 -sub_81C4A08: @ 81C4A08 - push {r4,lr} - movs r1, 0x26 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl ball_number_to_ball_processing_index - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_8076A78 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - ldr r1, =gUnknown_0832C588 - adds r0, r1 - movs r1, 0x10 - movs r2, 0x88 - movs r3, 0 - bl AddObjectToFront - ldr r2, =gUnknown_0203CF1C - ldr r1, [r2] - ldr r3, =0x000040d4 - adds r1, r3 - strb r0, [r1] - ldr r4, =gUnknown_02020630 - ldr r2, [r2] - adds r2, r3 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =DummyObjectCallback - str r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x5] - movs r2, 0xC - orrs r1, r2 - strb r1, [r0, 0x5] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4A08 - - thumb_func_start sub_81C4A88 -sub_81C4A88: @ 81C4A88 - push {r4,r5,lr} - ldr r5, =gUnknown_0203CF1C - ldr r0, [r5] - ldr r1, =0x000040d5 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0xFF - bne _081C4AA6 - ldr r0, =gUnknown_0861D108 - movs r1, 0x40 - movs r2, 0x98 - movs r3, 0 - bl AddObjectToFront - strb r0, [r4] -_081C4AA6: - ldr r0, [r5] - adds r0, 0xC - bl sub_81B205C - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _081C4AE8 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - subs r1, r2, 0x1 - lsls r1, 24 - lsrs r1, 24 - bl StartObjectImageAnim - movs r0, 0x2 - movs r1, 0 - bl sub_81C4204 - b _081C4AF0 - .pool -_081C4AE8: - movs r0, 0x2 - movs r1, 0x1 - bl sub_81C4204 -_081C4AF0: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81C4A88 - - thumb_func_start sub_81C4AF8 -sub_81C4AF8: @ 81C4AF8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, =gUnknown_0203CF1C - ldr r1, =0x000040d3 - add r1, r8 - ldr r0, [r0] - adds r7, r0, r1 - ldr r1, =0x000040c0 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bls _081C4BD2 - movs r0, 0 - mov r9, r0 - mov r1, r8 - cmp r1, 0x8 - bne _081C4B2A - movs r0, 0x1 - mov r9, r0 -_081C4B2A: - movs r5, 0 - ldr r6, =gUnknown_02020630 - mov r10, r5 -_081C4B30: - lsls r1, r5, 20 - movs r0, 0xB2 - lsls r0, 15 - adds r1, r0 - asrs r1, 16 - ldr r0, =gUnknown_0861D084 - movs r2, 0x28 - mov r3, r9 - bl AddObjectToFront - adds r1, r7, r5 - strb r0, [r1] - adds r4, r1, 0 - cmp r5, 0 - bne _081C4B74 - ldrb r1, [r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x4 - bl StartObjectImageAnim - b _081C4B9A - .pool -_081C4B74: - cmp r5, 0x9 - bne _081C4B8A - ldrb r1, [r7, 0x9] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x5 - bl StartObjectImageAnim - b _081C4B9A -_081C4B8A: - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x6 - bl StartObjectImageAnim -_081C4B9A: - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r6, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_81C4BE4 - str r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - mov r1, r8 - strh r1, [r0, 0x2E] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - mov r1, r10 - strh r1, [r0, 0x30] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x9 - bls _081C4B30 -_081C4BD2: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4AF8 - - thumb_func_start sub_81C4BE4 -sub_81C4BE4: @ 81C4BE4 - push {lr} - adds r3, r0, 0 - adds r0, 0x2A - ldrb r0, [r0] - subs r0, 0x4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bhi _081C4C1C - ldrh r0, [r3, 0x30] - adds r0, 0x1 - movs r1, 0x1F - ands r0, r1 - strh r0, [r3, 0x30] - cmp r0, 0x18 - ble _081C4C10 - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - b _081C4C2A -_081C4C10: - adds r2, r3, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - b _081C4C28 -_081C4C1C: - movs r0, 0 - strh r0, [r3, 0x30] - adds r2, r3, 0 - adds r2, 0x3E - ldrb r1, [r2] - subs r0, 0x5 -_081C4C28: - ands r0, r1 -_081C4C2A: - strb r0, [r2] - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0x8 - bne _081C4C44 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c6 - b _081C4C4A - .pool -_081C4C44: - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040c7 -_081C4C4A: - adds r0, r1 - ldrb r0, [r0] - lsls r0, 4 - strh r0, [r3, 0x26] - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4BE4 - - thumb_func_start sub_81C4C60 -sub_81C4C60: @ 81C4C60 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 -_081C4C68: - adds r0, r5, r4 - lsls r0, 24 - lsrs r0, 24 - bl sub_81C41C0 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _081C4C68 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81C4C60 - - thumb_func_start sub_81C4C84 -sub_81C4C84: @ 81C4C84 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, =gUnknown_0203CF1C - ldr r0, [r0] - ldr r1, =0x000040db - adds r5, r0, r1 - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 24 - movs r4, 0 - ldr r7, =gUnknown_02020630 - movs r2, 0x80 - lsls r2, 19 - adds r2, r0 - mov r9, r2 - lsrs r6, r0, 24 - movs r1, 0xA0 - lsls r1, 19 - adds r1, r0 - mov r8, r1 -_081C4CB4: - cmp r4, 0 - bne _081C4CD4 - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - mov r2, r9 - b _081C4CE4 - .pool -_081C4CD4: - cmp r4, 0x9 - bne _081C4CEC - ldrb r1, [r5, 0x9] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - mov r2, r8 -_081C4CE4: - lsrs r1, r2, 24 - bl StartObjectImageAnim - b _081C4D02 -_081C4CEC: - adds r0, r5, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - adds r1, r6, 0x6 - lsls r1, 24 - lsrs r1, 24 - bl StartObjectImageAnim -_081C4D02: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _081C4CB4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81C4C84 - - thumb_func_start sub_81C4D18 -sub_81C4D18: @ 81C4D18 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0203CF1C - ldr r2, =0x000040d3 - adds r0, r2 - ldr r1, [r1] - adds r5, r1, r0 - movs r3, 0 - ldr r4, =gUnknown_02020630 - movs r7, 0x5 - negs r7, r7 - movs r6, 0 -_081C4D32: - adds r2, r5, r3 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r6, [r0, 0x30] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r7, 0 - ands r0, r2 - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x9 - bls _081C4D32 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4D18 - - thumb_func_start sub_81C4D70 -sub_81C4D70: @ 81C4D70 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - ldr r4, =gUnknown_0203CF28 - movs r0, 0x4 - bl Alloc - str r0, [r4] - ldr r1, [r5] - lsls r0, r1, 20 - lsrs r4, r0, 30 - cmp r4, 0 - bne _081C4DDC - lsls r0, r1, 30 - lsrs r0, 30 - movs r1, 0x8 - movs r2, 0 - bl SetBgAttribute - ldr r3, [r5] - lsls r0, r3, 30 - lsrs r0, 30 - ldr r1, =gUnknown_0861D1A0 - lsls r3, 22 - lsrs r3, 24 - str r4, [sp] - movs r2, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, [r5] - lsls r0, 30 - lsrs r0, 30 - ldr r1, =gUnknown_0861DEF4 - movs r2, 0x1 - str r2, [sp] - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, [r5] - lsls r1, 22 - lsrs r1, 24 - str r4, [sp] - movs r2, 0x20 - movs r3, 0x20 - bl sub_8199D3C - b _081C4E2E - .pool -_081C4DDC: - lsls r0, r1, 30 - lsrs r0, 30 - movs r1, 0x8 - movs r2, 0x2 - bl SetBgAttribute - ldr r0, [r5] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x9 - movs r2, 0x1 - bl SetBgAttribute - ldr r3, [r5] - lsls r0, r3, 30 - lsrs r0, 30 - ldr r1, =gUnknown_0861E208 - lsls r3, 22 - lsrs r3, 24 - movs r2, 0 - str r2, [sp] - bl decompress_and_copy_tile_data_to_vram - ldr r0, [r5] - lsls r0, 30 - lsrs r0, 30 - ldr r1, =gUnknown_0861EF64 - movs r4, 0x1 - str r4, [sp] - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, [r5] - lsls r1, 22 - lsrs r1, 24 - str r4, [sp] - movs r2, 0x40 - movs r3, 0x40 - bl sub_8199D3C -_081C4E2E: - ldr r0, [r5] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - ldr r0, [r5] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - ldr r0, [r5] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x4 - movs r2, 0x1 - bl SetBgAttribute - ldr r0, =gUnknown_0861D140 - ldr r1, =gPlttBufferUnfaded + 0xE0 - ldr r2, =0x04000018 - bl CpuSet - ldr r0, =gUnknown_0203CF28 - ldr r1, [r0] - ldr r0, [r5] - lsls r0, 30 - lsrs r0, 30 - strb r0, [r1] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4D70 - - thumb_func_start sub_81C4E90 -sub_81C4E90: @ 81C4E90 - push {lr} - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - beq _081C4EA0 - movs r0, 0x1 - b _081C4EAC -_081C4EA0: - ldr r0, =gUnknown_0203CF28 - ldr r0, [r0] - ldrb r0, [r0] - bl ShowBg - movs r0, 0 -_081C4EAC: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C4E90 - - thumb_func_start sub_81C4EB4 -sub_81C4EB4: @ 81C4EB4 - push {r4,lr} - ldr r4, =gUnknown_0203CF28 - ldr r0, [r4] - cmp r0, 0 - beq _081C4EC6 - bl Free - movs r0, 0 - str r0, [r4] -_081C4EC6: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4EB4 - - thumb_func_start sub_81C4ED0 -sub_81C4ED0: @ 81C4ED0 - push {lr} - adds r1, r0, 0 - ldr r0, =gUnknown_0203CF28 - ldr r0, [r0] - ldrb r0, [r0] - lsls r1, 8 - movs r2, 0 - bl ChangeBgY - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4ED0 - - thumb_func_start sub_81C4EEC -sub_81C4EEC: @ 81C4EEC - ldr r1, =gUnknown_0203CF30 - movs r0, 0 - strh r0, [r1, 0x6] - strh r0, [r1, 0x8] - bx lr - .pool - thumb_func_end sub_81C4EEC - - thumb_func_start sub_81C4EFC -sub_81C4EFC: @ 81C4EFC - push {lr} - ldr r1, =sub_8086194 - movs r0, 0 - bl sub_81C4F98 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4EFC - - thumb_func_start sub_81C4F10 -sub_81C4F10: @ 81C4F10 - push {lr} - ldr r1, =sub_8059D50 - movs r0, 0x1 - bl sub_81C4F98 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4F10 - - thumb_func_start sub_81C4F24 -sub_81C4F24: @ 81C4F24 - push {lr} - bl script_env_2_enable - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r0, =sub_81C4F44 - movs r1, 0xA - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4F24 - - thumb_func_start sub_81C4F44 -sub_81C4F44: @ 81C4F44 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081C4F6E - bl overworld_free_bg_tilemaps - ldr r0, =gUnknown_03005DB0 - ldr r1, =hm_add_c3_without_phase_2 - str r1, [r0] - ldr r1, =c2_exit_to_overworld_2_switch - movs r0, 0x3 - bl sub_81C4F98 - adds r0, r4, 0 - bl DestroyTask -_081C4F6E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4F44 - - thumb_func_start sub_81C4F84 -sub_81C4F84: @ 81C4F84 - push {lr} - ldr r0, =gUnknown_0203CF30 - ldr r1, [r0] - movs r0, 0x4 - bl sub_81C4F98 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4F84 - - thumb_func_start sub_81C4F98 -sub_81C4F98: @ 81C4F98 - push {r4-r6,lr} - adds r5, r1, 0 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r6, =gUnknown_0203CF2C - ldr r0, =0x0000098c - bl AllocZeroed - str r0, [r6] - cmp r4, 0x4 - beq _081C4FB2 - ldr r0, =gUnknown_0203CF30 - strb r4, [r0, 0x4] -_081C4FB2: - cmp r5, 0 - beq _081C4FBA - ldr r0, =gUnknown_0203CF30 - str r5, [r0] -_081C4FBA: - ldr r0, [r6] - movs r1, 0 - str r1, [r0] - ldr r1, =0x00000814 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - ldr r0, [r6] - ldr r1, =0x00000816 - adds r0, r1 - movs r1, 0x1 - negs r1, r1 - strb r1, [r0] - ldr r0, [r6] - ldr r1, =0x00000804 - adds r0, r1 - movs r1, 0xFF - movs r2, 0xB - bl memset - ldr r0, [r6] - ldr r1, =0x0000080f - adds r0, r1 - movs r1, 0xFF - movs r2, 0x5 - bl memset - ldr r0, =sub_81C504C - bl SetMainCallback2 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C4F98 - - thumb_func_start sub_81C501C -sub_81C501C: @ 81C501C - push {lr} - bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_81C501C - - thumb_func_start sub_81C5038 -sub_81C5038: @ 81C5038 - push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_81C5038 - - thumb_func_start sub_81C504C -sub_81C504C: @ 81C504C - push {lr} -_081C504E: - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C5072 - bl sub_81C5078 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C5072 - bl sub_81221AC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C504E -_081C5072: - pop {r0} - bx r0 - thumb_func_end sub_81C504C - - thumb_func_start sub_81C5078 -sub_81C5078: @ 81C5078 - push {lr} - sub sp, 0x4 - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x10 - bls _081C508C - b _081C51BC -_081C508C: - lsls r0, 2 - ldr r1, =_081C50A0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C50A0: - .4byte _081C50E4 - .4byte _081C50EE - .4byte _081C50F4 - .4byte _081C50FA - .4byte _081C510C - .4byte _081C5112 - .4byte _081C5122 - .4byte _081C513C - .4byte _081C5148 - .4byte _081C514E - .4byte _081C515C - .4byte _081C5162 - .4byte _081C5168 - .4byte _081C516E - .4byte _081C5174 - .4byte _081C517A - .4byte _081C5188 -_081C50E4: - bl SetVBlankHBlankCallbacksToNull - bl clear_scheduled_bg_copies_to_vram - b _081C51A2 -_081C50EE: - bl remove_some_task - b _081C51A2 -_081C50F4: - bl ResetObjectPaletteAllocator - b _081C51A2 -_081C50FA: - bl ResetPaletteFade - ldr r2, =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - b _081C51A0 - .pool -_081C510C: - bl ResetAllObjectData - b _081C51A2 -_081C5112: - bl sub_81221AC - lsls r0, 24 - cmp r0, 0 - bne _081C51A2 - bl ResetTasks - b _081C51A2 -_081C5122: - bl sub_81C51DC - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r1, =0x00000984 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - b _081C51A2 - .pool -_081C513C: - bl sub_81C5238 - lsls r0, 24 - cmp r0, 0 - beq _081C51D4 - b _081C51A2 -_081C5148: - bl sub_81C6BD8 - b _081C51A2 -_081C514E: - bl sub_81C5924 - bl sub_81C59BC - bl sub_81C5A20 - b _081C51A2 -_081C515C: - bl sub_81C5314 - b _081C51A2 -_081C5162: - bl sub_81C56F8 - b _081C51A2 -_081C5168: - bl sub_81C6EF4 - b _081C51A2 -_081C516E: - bl sub_81C5674 - b _081C51A2 -_081C5174: - bl sub_81C700C - b _081C51A2 -_081C517A: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - b _081C51A2 -_081C5188: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r2, =gPaletteFade - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 -_081C51A0: - strb r0, [r2, 0x8] -_081C51A2: - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _081C51D4 - .pool -_081C51BC: - ldr r0, =sub_81C5038 - bl SetVBlankCallback - ldr r0, =sub_81C501C - bl SetMainCallback2 - movs r0, 0x1 - b _081C51D6 - .pool -_081C51D4: - movs r0, 0 -_081C51D6: - add sp, 0x4 - pop {r1} - bx r1 - thumb_func_end sub_81C5078 - - thumb_func_start sub_81C51DC -sub_81C51DC: @ 81C51DC - push {lr} - bl sub_8121DA0 - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_0861F2B4 - movs r0, 0 - movs r2, 0x3 - bl InitBgsFromTemplates - ldr r0, =gUnknown_0203CF2C - ldr r1, [r0] - adds r1, 0x4 - movs r0, 0x2 - bl SetBgTilemapBuffer - bl sub_8121E10 - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C51DC - - thumb_func_start sub_81C5238 -sub_81C5238: @ 81C5238 - push {r4,lr} - sub sp, 0x4 - ldr r4, =gUnknown_0203CF2C - ldr r0, [r4] - ldr r1, =0x00000984 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x4 - bhi _081C52F0 - lsls r0, 2 - ldr r1, =_081C5264 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C5264: - .4byte _081C5278 - .4byte _081C5294 - .4byte _081C52B8 - .4byte _081C52C8 - .4byte _081C52D4 -_081C5278: - bl reset_temp_tile_data_buffers - ldr r1, =gUnknown_08D9A620 - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - b _081C52D8 - .pool -_081C5294: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C5308 - ldr r0, =gUnknown_08D9AE04 - ldr r4, =gUnknown_0203CF2C - ldr r1, [r4] - adds r1, 0x4 - bl LZDecompressWram - ldr r1, [r4] - b _081C52DC - .pool -_081C52B8: - ldr r0, =gUnknown_08D9AF44 - movs r1, 0 - movs r2, 0x20 - bl LoadCompressedPalette - b _081C52D8 - .pool -_081C52C8: - ldr r0, =gUnknown_0861F3CC - bl LoadCompressedObjectPic - b _081C52D8 - .pool -_081C52D4: - bl sub_81C6E98 -_081C52D8: - ldr r0, =gUnknown_0203CF2C - ldr r1, [r0] -_081C52DC: - ldr r0, =0x00000984 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _081C5308 - .pool -_081C52F0: - bl sub_8122328 - ldr r0, [r4] - ldr r1, =0x00000984 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - movs r0, 0x1 - b _081C530A - .pool -_081C5308: - movs r0, 0 -_081C530A: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81C5238 - - thumb_func_start sub_81C5314 -sub_81C5314: @ 81C5314 - push {r4-r7,lr} - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r1, =0x00000ca9 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r1, 30 - lsrs r1, 30 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - ldr r3, =0x00000e2c - adds r0, r3 - adds r7, r2, r0 - movs r6, 0 - ldr r1, =gUnknown_0203CF2C - ldr r0, [r1] - ldr r4, =0x00000821 - adds r0, r4 - ldrb r0, [r0] - subs r0, 0x1 - cmp r6, r0 - bge _081C5382 - adds r5, r1, 0 -_081C5344: - lsls r1, r6, 1 - adds r4, r1, r6 - lsls r4, 3 - ldr r0, =0x0000087c - adds r4, r0 - ldr r0, [r5] - adds r0, r4 - adds r1, r7 - ldrh r1, [r1] - bl sub_81C540C - ldr r1, [r5] - lsls r2, r6, 3 - ldr r3, =0x00000824 - adds r0, r1, r3 - adds r0, r2 - adds r4, r1, r4 - str r4, [r0] - ldr r4, =0x00000828 - adds r0, r1, r4 - adds r0, r2 - str r6, [r0] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, =0x00000821 - adds r1, r0 - ldrb r0, [r1] - subs r0, 0x1 - cmp r6, r0 - blt _081C5344 -_081C5382: - ldr r5, =gUnknown_0203CF2C - lsls r4, r6, 1 - adds r4, r6 - lsls r4, 3 - ldr r1, =0x0000087c - adds r4, r1 - ldr r0, [r5] - adds r0, r4 - ldr r1, =gUnknown_085E8DB4 - bl StringCopy - ldr r1, [r5] - lsls r2, r6, 3 - ldr r3, =0x00000824 - adds r0, r1, r3 - adds r0, r2 - adds r4, r1, r4 - str r4, [r0] - ldr r4, =0x00000828 - adds r1, r4 - adds r1, r2 - movs r0, 0x2 - negs r0, r0 - str r0, [r1] - ldr r2, =gUnknown_03006310 - adds r1, r2, 0 - ldr r0, =gUnknown_0861F2C0 - ldm r0!, {r4,r6,r7} - stm r1!, {r4,r6,r7} - ldm r0!, {r4,r6,r7} - stm r1!, {r4,r6,r7} - ldr r1, [r5] - ldr r6, =0x00000821 - adds r0, r1, r6 - ldrb r0, [r0] - strh r0, [r2, 0xC] - adds r3, r1, r3 - str r3, [r2] - ldr r7, =0x00000822 - adds r1, r7 - ldrb r0, [r1] - strh r0, [r2, 0xE] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5314 - - thumb_func_start sub_81C540C -sub_81C540C: @ 81C540C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - adds r0, r4, 0 - bl itemid_get_pocket_number - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _081C5450 - ldr r0, =gStringVar1 - adds r1, r4, 0 - subs r1, 0x84 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r1, =gStringVar2 - adds r0, r4, 0 - bl itemid_get_name - ldr r1, =gUnknown_085E9210 - adds r0, r5, 0 - bl StringExpandPlaceholders - b _081C5458 - .pool -_081C5450: - adds r0, r4, 0 - adds r1, r5, 0 - bl itemid_get_name -_081C5458: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81C540C - - thumb_func_start sub_81C5460 -sub_81C5460: @ 81C5460 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x1 - beq _081C5476 - movs r0, 0x5 - bl audio_play - bl sub_81C6F20 -_081C5476: - ldr r5, =gUnknown_0203CF2C - ldr r1, [r5] - ldr r2, =0x00000814 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0xFF - bne _081C5504 - adds r2, 0x1 - adds r0, r1, r2 - ldrb r1, [r0] - movs r0, 0x1 - eors r0, r1 - bl sub_81C6FF8 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _081C54E0 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - lsls r3, r4, 1 - ldr r1, =0x00000ca9 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r1, 30 - lsrs r1, 30 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r3, r0 - ldr r0, =0x00000e2c - adds r2, r0 - adds r2, r3 - ldrh r0, [r2] - ldr r1, [r5] - ldr r2, =0x00000815 - adds r1, r2 - ldrb r1, [r1] - bl sub_81C6F90 - b _081C54EE - .pool -_081C54E0: - ldr r0, =0x0000ffff - ldr r1, [r5] - ldr r2, =0x00000815 - adds r1, r2 - ldrb r1, [r1] - bl sub_81C6F90 -_081C54EE: - ldr r0, =gUnknown_0203CF2C - ldr r1, [r0] - ldr r0, =0x00000815 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x1 - eors r0, r2 - strb r0, [r1] - adds r0, r4, 0 - bl sub_81C55D8 -_081C5504: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5460 - - thumb_func_start sub_81C5518 -sub_81C5518: @ 81C5518 - push {r4-r6,lr} - sub sp, 0x10 - adds r4, r1, 0 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r2, 24 - lsrs r5, r2, 24 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _081C55B8 - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r1, =0x00000814 - adds r0, r1 - ldrb r1, [r0] - cmp r1, 0xFF - beq _081C5560 - lsls r0, r4, 24 - lsrs r0, 24 - cmp r1, r0 - bne _081C5558 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_81C5AB8 - b _081C5560 - .pool -_081C5558: - adds r0, r5, 0 - movs r1, 0xFF - bl sub_81C5AB8 -_081C5560: - ldr r0, =gStringVar1 - ldr r1, =gSaveBlock2Ptr - ldr r3, [r1] - ldr r2, =0x00000ca9 - adds r1, r3, r2 - ldrb r2, [r1] - lsls r2, 30 - lsrs r2, 30 - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 1 - adds r1, r4, r1 - ldr r2, =0x00000e54 - adds r3, r2 - adds r3, r1 - ldrb r1, [r3] - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E8DA0 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x7 - adds r1, r4, 0 - movs r2, 0x77 - bl GetStringRightAlignXOffset - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r0, 0xFF - str r0, [sp, 0x8] - str r1, [sp, 0xC] - adds r0, r6, 0 - adds r1, r4, 0 - adds r3, r5, 0 - bl sub_81C6C94 -_081C55B8: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5518 - - thumb_func_start sub_81C55D8 -sub_81C55D8: @ 81C55D8 - push {r4,lr} - sub sp, 0x10 - adds r3, r0, 0 - movs r0, 0x2 - negs r0, r0 - cmp r3, r0 - beq _081C561C - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - lsls r3, 1 - ldr r1, =0x00000ca9 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r1, 30 - lsrs r1, 30 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r3, r0 - ldr r0, =0x00000e2c - adds r2, r0 - adds r2, r3 - ldrh r0, [r2] - bl itemid_get_description - adds r4, r0, 0 - b _081C5638 - .pool -_081C561C: - ldr r0, =gStringVar1 - ldr r2, =gUnknown_085E91B0 - ldr r1, =gUnknown_0203CF30 - ldrb r1, [r1, 0x4] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E91C0 - adds r0, r4, 0 - bl StringExpandPlaceholders -_081C5638: - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r1, 0 - str r1, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - str r1, [sp, 0x8] - str r1, [sp, 0xC] - adds r1, r4, 0 - movs r2, 0x3 - movs r3, 0 - bl sub_81C6C3C - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C55D8 - - thumb_func_start sub_81C5674 -sub_81C5674: @ 81C5674 - push {r4,lr} - sub sp, 0x10 - ldr r4, =gUnknown_0203CF2C - ldr r1, [r4] - ldr r2, =0x00000816 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0xFF - bne _081C56B4 - adds r2, 0xB - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - subs r0, r1 - str r0, [sp] - ldr r0, =0x00000b5e - str r0, [sp, 0x4] - str r0, [sp, 0x8] - ldr r0, =gUnknown_0203CF38 - str r0, [sp, 0xC] - movs r0, 0x2 - movs r1, 0xAC - movs r2, 0xC - movs r3, 0x94 - bl AddScrollIndicatorArrowPairParametrized - ldr r1, [r4] - ldr r2, =0x00000816 - adds r1, r2 - strb r0, [r1] -_081C56B4: - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5674 - - thumb_func_start sub_81C56CC -sub_81C56CC: @ 81C56CC - push {r4,lr} - ldr r4, =gUnknown_0203CF2C - ldr r0, [r4] - ldr r2, =0x00000816 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0xFF - beq _081C56EA - bl RemoveScrollIndicatorArrowPair - ldr r0, [r4] - ldr r1, =0x00000816 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] -_081C56EA: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C56CC - - thumb_func_start sub_81C56F8 -sub_81C56F8: @ 81C56F8 - push {r4,lr} - ldr r0, =sub_81C5BC8 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - ldr r0, =gUnknown_03006310 - ldr r2, =gUnknown_0203CF30 - ldrh r1, [r2, 0x8] - ldrh r2, [r2, 0x6] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C56F8 - - thumb_func_start sub_81C5738 -sub_81C5738: @ 81C5738 - push {r4-r6,lr} - mov r6, r8 - push {r6} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, =gSaveBlock2Ptr - ldr r6, [r2] - ldr r3, =0x00000ca9 - adds r2, r6, r3 - ldrb r3, [r2] - lsls r3, 30 - lsrs r2, r3, 30 - lsls r4, r2, 2 - adds r4, r2 - lsls r4, 2 - ldr r2, =0x00000e2c - adds r4, r2 - adds r4, r6, r4 - lsrs r3, 30 - lsls r2, r3, 2 - adds r2, r3 - lsls r2, 1 - ldr r3, =0x00000e54 - adds r2, r3 - adds r6, r2 - lsls r5, r0, 1 - adds r5, r4 - ldrh r2, [r5] - mov r8, r2 - lsls r2, r1, 1 - adds r2, r4 - ldrh r3, [r2] - strh r3, [r5] - mov r3, r8 - strh r3, [r2] - adds r0, r6, r0 - ldrb r2, [r0] - adds r6, r1 - ldrb r1, [r6] - strb r1, [r0] - strb r2, [r6] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5738 - - thumb_func_start sub_81C57A8 -sub_81C57A8: @ 81C57A8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r4, r0, 24 - adds r7, r4, 0 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r1, =0x00000ca9 - adds r0, r3, r1 - ldrb r1, [r0] - lsls r1, 30 - lsrs r2, r1, 30 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 2 - ldr r2, =0x00000e2c - adds r0, r2 - adds r6, r3, r0 - lsrs r1, 30 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - ldr r1, =0x00000e54 - adds r0, r1 - adds r3, r0 - cmp r4, r5 - beq _081C5862 - lsls r0, r4, 1 - adds r0, r6 - ldrh r0, [r0] - mov r12, r0 - adds r0, r3, r4 - ldrb r0, [r0] - mov r8, r0 - cmp r5, r4 - bls _081C5830 - subs r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r2, r4, 16 - cmp r4, r5 - bge _081C5854 -_081C5802: - asrs r2, 16 - lsls r0, r2, 1 - adds r0, r6 - ldrh r1, [r0, 0x2] - strh r1, [r0] - adds r1, r3, r2 - ldrb r0, [r1, 0x1] - strb r0, [r1] - adds r2, 0x1 - lsls r2, 16 - asrs r0, r2, 16 - cmp r0, r5 - blt _081C5802 - b _081C5854 - .pool -_081C5830: - lsls r2, r7, 16 - cmp r7, r5 - ble _081C5854 -_081C5836: - asrs r2, 16 - lsls r1, r2, 1 - adds r1, r6 - subs r0, r1, 0x2 - ldrh r0, [r0] - strh r0, [r1] - adds r1, r3, r2 - subs r0, r1, 0x1 - ldrb r0, [r0] - strb r0, [r1] - subs r2, 0x1 - lsls r2, 16 - asrs r0, r2, 16 - cmp r0, r5 - bgt _081C5836 -_081C5854: - lsls r0, r5, 1 - adds r0, r6 - mov r2, r12 - strh r2, [r0] - adds r0, r3, r5 - mov r1, r8 - strb r1, [r0] -_081C5862: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81C57A8 - - thumb_func_start sub_81C586C -sub_81C586C: @ 81C586C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r1, =0x00000ca9 - adds r0, r3, r1 - ldrb r1, [r0] - lsls r1, 30 - lsrs r2, r1, 30 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 2 - ldr r2, =0x00000e2c - adds r0, r2 - adds r0, r3 - mov r9, r0 - lsrs r1, 30 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - ldr r4, =0x00000e54 - adds r0, r4 - adds r3, r0 - mov r8, r3 - movs r5, 0 - movs r3, 0 -_081C58A4: - lsls r0, r5, 1 - mov r1, r9 - adds r2, r0, r1 - ldrh r0, [r2] - mov r4, r8 - adds r1, r4, r5 - cmp r0, 0 - beq _081C58BA - ldrb r0, [r1] - cmp r0, 0 - bne _081C58BE -_081C58BA: - strh r3, [r2] - strb r3, [r1] -_081C58BE: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x9 - bls _081C58A4 - movs r5, 0 -_081C58CA: - adds r1, r5, 0x1 - lsls r0, r1, 24 - lsrs r4, r0, 24 - adds r7, r1, 0 - cmp r4, 0x9 - bhi _081C58FE - lsls r0, r5, 1 - mov r1, r9 - adds r6, r0, r1 -_081C58DC: - ldrh r0, [r6] - cmp r0, 0 - beq _081C58EC - mov r2, r8 - adds r0, r2, r5 - ldrb r0, [r0] - cmp r0, 0 - bne _081C58F4 -_081C58EC: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_81C5738 -_081C58F4: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _081C58DC -_081C58FE: - lsls r0, r7, 24 - lsrs r5, r0, 24 - cmp r5, 0x8 - bls _081C58CA - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C586C - - thumb_func_start sub_81C5924 -sub_81C5924: @ 81C5924 - push {r4-r6,lr} - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r1, =0x00000ca9 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r1, 30 - lsrs r1, 30 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x00000e2c - adds r0, r1 - adds r5, r2, r0 - bl sub_81C586C - ldr r3, =gUnknown_0203CF2C - ldr r0, [r3] - ldr r2, =0x00000821 - adds r0, r2 - movs r1, 0 - strb r1, [r0] - movs r4, 0 - adds r6, r3, 0 -_081C5954: - lsls r0, r4, 1 - adds r0, r5 - ldrh r0, [r0] - ldr r3, =gUnknown_0203CF2C - cmp r0, 0 - beq _081C596A - ldr r1, [r6] - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_081C596A: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x9 - bls _081C5954 - ldr r0, [r3] - ldr r2, =0x00000821 - adds r0, r2 - ldrb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - ldr r0, [r3] - adds r2, r0, r2 - ldrb r2, [r2] - cmp r2, 0x8 - bls _081C59AC - ldr r2, =0x00000822 - adds r1, r0, r2 - movs r0, 0x8 - strb r0, [r1] - b _081C59B2 - .pool -_081C59AC: - ldr r1, =0x00000822 - adds r0, r1 - strb r2, [r0] -_081C59B2: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5924 - - thumb_func_start sub_81C59BC -sub_81C59BC: @ 81C59BC - push {r4,r5,lr} - ldr r0, =gUnknown_0203CF30 - ldrh r1, [r0, 0x8] - adds r3, r0, 0 - ldr r4, =gUnknown_0203CF2C - cmp r1, 0 - beq _081C59E4 - ldrh r0, [r3, 0x8] - ldr r1, [r4] - ldr r5, =0x00000822 - adds r2, r1, r5 - ldrb r2, [r2] - adds r0, r2 - subs r5, 0x1 - adds r1, r5 - ldrb r1, [r1] - cmp r0, r1 - ble _081C59E4 - subs r0, r1, r2 - strh r0, [r3, 0x8] -_081C59E4: - adds r2, r3, 0 - ldrh r1, [r2, 0x8] - ldrh r0, [r2, 0x6] - adds r1, r0 - ldr r0, [r4] - ldr r4, =0x00000821 - adds r0, r4 - ldrb r0, [r0] - cmp r1, r0 - blt _081C5A18 - adds r1, r0, 0 - cmp r1, 0 - bne _081C5A14 - strh r1, [r2, 0x6] - b _081C5A18 - .pool -_081C5A14: - subs r0, 0x1 - strh r0, [r3, 0x6] -_081C5A18: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81C59BC - - thumb_func_start sub_81C5A20 -sub_81C5A20: @ 81C5A20 - push {r4-r7,lr} - ldr r0, =gUnknown_0203CF30 - ldrh r1, [r0, 0x6] - adds r5, r0, 0 - cmp r1, 0x4 - bls _081C5A80 - movs r4, 0 - ldrh r0, [r5, 0x6] - subs r0, 0x4 - cmp r4, r0 - bgt _081C5A80 - ldrh r2, [r5, 0x8] - ldr r6, =gUnknown_0203CF2C - ldr r0, [r6] - ldr r3, =0x00000822 - adds r1, r0, r3 - ldrb r1, [r1] - adds r2, r1 - ldr r7, =0x00000821 - adds r0, r7 - ldrb r0, [r0] - cmp r2, r0 - beq _081C5A80 - adds r3, r5, 0 -_081C5A50: - ldrh r0, [r3, 0x6] - subs r0, 0x1 - strh r0, [r3, 0x6] - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldrh r0, [r3, 0x6] - subs r0, 0x4 - cmp r4, r0 - bgt _081C5A80 - ldrh r2, [r5, 0x8] - ldr r1, [r6] - ldr r7, =0x00000822 - adds r0, r1, r7 - ldrb r0, [r0] - adds r2, r0 - ldr r0, =0x00000821 - adds r1, r0 - ldrb r1, [r1] - cmp r2, r1 - bne _081C5A50 -_081C5A80: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5A20 - - thumb_func_start sub_81C5A98 -sub_81C5A98: @ 81C5A98 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - bl ListMenuGetYCoordForPrintingArrowCursor - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - bl sub_81C5AB8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C5A98 - - thumb_func_start sub_81C5AB8 -sub_81C5AB8: @ 81C5AB8 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r2, r1, 24 - cmp r2, 0xFF - bne _081C5AF4 - movs r0, 0x1 - movs r1, 0 - bl GetMenuCursorDimensionByFont - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - movs r1, 0x1 - bl GetMenuCursorDimensionByFont - lsls r0, 24 - lsrs r0, 24 - str r4, [sp] - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - adds r3, r5, 0 - bl FillWindowPixelRect - b _081C5B08 -_081C5AF4: - ldr r1, =gUnknown_085E8D60 - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r2, [sp, 0xC] - movs r2, 0 - adds r3, r5, 0 - bl sub_81C6C3C -_081C5B08: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5AB8 - - thumb_func_start sub_81C5B14 -sub_81C5B14: @ 81C5B14 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81C5B4C - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5B14 - - thumb_func_start sub_81C5B4C -sub_81C5B4C: @ 81C5B4C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r2, r0, r1 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081C5BBC - ldrb r0, [r2] - ldr r4, =gUnknown_0203CF38 - subs r2, r4, 0x2 - adds r1, r4, 0 - bl sub_81AE6C8 - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0 - beq _081C5B94 - bl SetMainCallback2 - b _081C5B9E - .pool -_081C5B94: - adds r0, r4, 0 - subs r0, 0x8 - ldr r0, [r0] - bl SetMainCallback2 -_081C5B9E: - bl sub_81C56CC - bl ResetAllObjectData - bl ResetObjectPaletteAllocator - bl FreeAllWindowBuffers - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - bl Free - adds r0, r5, 0 - bl DestroyTask -_081C5BBC: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5B4C - - thumb_func_start sub_81C5BC8 -sub_81C5BC8: @ 81C5BC8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r7, r0, r1 - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C5BEA - b _081C5D16 -_081C5BEA: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081C5BF8 - b _081C5D16 -_081C5BF8: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x4 - ands r0, r1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _081C5C5C - ldr r4, =gUnknown_0203CF30 - ldrb r0, [r4, 0x4] - cmp r0, 0x2 - bne _081C5C12 - b _081C5D16 -_081C5C12: - ldrb r0, [r7] - adds r1, r4, 0 - adds r1, 0x8 - adds r2, r4, 0x6 - bl get_coro_args_x18_x1A - ldrh r1, [r4, 0x8] - ldrh r0, [r4, 0x6] - adds r1, r0 - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r2, =0x00000821 - adds r0, r2 - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - beq _081C5D16 - movs r0, 0x5 - bl audio_play - adds r0, r5, 0 - bl sub_81C67CC - b _081C5D16 - .pool -_081C5C5C: - ldrb r0, [r7] - bl ListMenuHandleInput - adds r6, r0, 0 - ldrb r0, [r7] - ldr r1, =gUnknown_0203CF38 - mov r8, r1 - mov r2, r8 - subs r2, 0x2 - bl get_coro_args_x18_x1A - movs r0, 0x2 - negs r0, r0 - cmp r6, r0 - beq _081C5C88 - adds r0, 0x1 - cmp r6, r0 - bne _081C5CA0 - b _081C5D16 - .pool -_081C5C88: - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_0203CE7C - strh r4, [r0] - adds r0, r5, 0 - bl sub_81C5B14 - b _081C5D16 - .pool -_081C5CA0: - movs r0, 0x5 - bl audio_play - ldr r2, =gUnknown_0203CE7C - mov r12, r2 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - lsls r3, r6, 1 - ldr r0, =0x00000ca9 - adds r4, r2, r0 - ldrb r1, [r4] - lsls r1, 30 - lsrs r1, 30 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r3, r0 - ldr r1, =0x00000e2c - adds r0, r2, r1 - adds r0, r3 - ldrh r0, [r0] - mov r1, r12 - strh r0, [r1] - strh r6, [r7, 0x2] - ldrb r1, [r4] - lsls r1, 30 - lsrs r1, 30 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - adds r0, r6, r0 - ldr r1, =0x00000e54 - adds r2, r1 - adds r2, r0 - ldrb r0, [r2] - strh r0, [r7, 0x4] - mov r0, r8 - subs r0, 0x8 - ldrb r0, [r0, 0x4] - cmp r0, 0x2 - bne _081C5D10 - adds r0, r5, 0 - bl sub_81C674C - b _081C5D16 - .pool -_081C5D10: - adds r0, r5, 0 - bl sub_81C5D20 -_081C5D16: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81C5BC8 - - thumb_func_start sub_81C5D20 -sub_81C5D20: @ 81C5D20 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - bl sub_81C56CC - ldrb r0, [r4] - movs r1, 0x1 - bl sub_81C5A98 - ldr r0, =gUnknown_0203CF30 - ldrb r4, [r0, 0x4] - cmp r4, 0x1 - beq _081C5D74 - cmp r4, 0x3 - beq _081C5DC4 - ldr r0, =gUnknown_0203CF2C - ldr r1, [r0] - ldr r0, =0x00000818 - adds r2, r1, r0 - ldr r0, =gUnknown_0861F308 - str r0, [r2] - movs r0, 0x82 - lsls r0, 4 - adds r1, r0 - movs r0, 0x4 - b _081C5DD8 - .pool -_081C5D74: - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - bl itemid_get_usage - lsls r0, 24 - cmp r0, 0 - beq _081C5DA0 - ldr r0, =gUnknown_0203CF2C - ldr r1, [r0] - ldr r0, =0x00000818 - adds r2, r1, r0 - ldr r0, =gUnknown_0861F30E - b _081C5DCE - .pool -_081C5DA0: - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r1, =0x00000818 - adds r2, r0, r1 - ldr r1, =gUnknown_0861F310 - str r1, [r2] - movs r1, 0x82 - lsls r1, 4 - adds r0, r1 - strb r4, [r0] - b _081C5DDA - .pool -_081C5DC4: - ldr r0, =gUnknown_0203CF2C - ldr r1, [r0] - ldr r0, =0x00000818 - adds r2, r1, r0 - ldr r0, =gUnknown_0861F30C -_081C5DCE: - str r0, [r2] - movs r0, 0x82 - lsls r0, 4 - adds r1, r0 - movs r0, 0x2 -_081C5DD8: - strb r0, [r1] -_081C5DDA: - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - ldr r1, =gStringVar1 - bl itemid_get_name - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E8DBE - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r1, 0 - str r1, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - str r1, [sp, 0x8] - str r1, [sp, 0xC] - adds r1, r4, 0 - movs r2, 0x3 - movs r3, 0 - bl sub_81C6C3C - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - movs r1, 0x82 - lsls r1, 4 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _081C5E3C - movs r0, 0 - b _081C5E42 - .pool -_081C5E3C: - cmp r0, 0x2 - bne _081C5E50 - movs r0, 0x1 -_081C5E42: - bl sub_81C6D24 - lsls r0, 24 - lsrs r0, 24 - bl sub_81C5EAC - b _081C5E62 -_081C5E50: - movs r0, 0x2 - bl sub_81C6D24 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - movs r2, 0x2 - bl sub_81C5F08 -_081C5E62: - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - movs r1, 0x82 - lsls r1, 4 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x4 - bne _081C5E8C - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81C5FE4 - b _081C5E98 - .pool -_081C5E8C: - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81C5F68 -_081C5E98: - str r0, [r1] - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5D20 - - thumb_func_start sub_81C5EAC -sub_81C5EAC: @ 81C5EAC - push {r4-r6,lr} - sub sp, 0x14 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - str r0, [sp] - movs r0, 0x10 - str r0, [sp, 0x4] - ldr r6, =gUnknown_0203CF2C - ldr r1, [r6] - movs r5, 0x82 - lsls r5, 4 - adds r0, r1, r5 - ldrb r0, [r0] - str r0, [sp, 0x8] - ldr r0, =gUnknown_0861F2D8 - str r0, [sp, 0xC] - ldr r0, =0x00000818 - adds r1, r0 - ldr r0, [r1] - str r0, [sp, 0x10] - adds r0, r4, 0 - movs r1, 0x7 - movs r2, 0x8 - movs r3, 0x1 - bl AddItemMenuActionTextPrinters - ldr r0, [r6] - adds r0, r5 - ldrb r1, [r0] - adds r0, r4, 0 - movs r2, 0 - bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5EAC - - thumb_func_start sub_81C5F08 -sub_81C5F08: @ 81C5F08 - push {r4-r6,lr} - sub sp, 0x14 - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - movs r0, 0x38 - str r0, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - ldr r0, =gUnknown_0861F2D8 - str r0, [sp, 0xC] - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r1, =0x00000818 - adds r0, r1 - ldr r0, [r0] - str r0, [sp, 0x10] - adds r0, r4, 0 - movs r1, 0x7 - movs r2, 0x8 - movs r3, 0x1 - bl sub_8198DBC - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0x38 - adds r2, r5, 0 - adds r3, r6, 0 - bl sub_8199944 - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5F08 - - thumb_func_start sub_81C5F68 -sub_81C5F68: @ 81C5F68 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C5FD0 - bl ProcessMenuInputNoWrapAround - lsls r0, 24 - asrs r4, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _081C5FD0 - adds r0, 0x1 - cmp r4, r0 - bne _081C5FA8 - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_0861F2D8 - ldr r1, [r0, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - b _081C5FD0 - .pool -_081C5FA8: - movs r0, 0x5 - bl audio_play - ldr r1, =gUnknown_0861F2D8 - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r2, =0x00000818 - adds r0, r2 - ldr r0, [r0] - adds r0, r4 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - cmp r1, 0 - beq _081C5FD0 - adds r0, r6, 0 - bl _call_via_r1 -_081C5FD0: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5F68 - - thumb_func_start sub_81C5FE4 -sub_81C5FE4: @ 81C5FE4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C5FF8 - b _081C6160 -_081C5FF8: - bl GetMenuCursorPos - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, =gMain - ldrh r1, [r5, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081C6040 - lsls r0, r4, 24 - asrs r0, 24 - cmp r0, 0 - bgt _081C6016 - b _081C6160 -_081C6016: - subs r0, 0x2 - lsls r0, 24 - asrs r0, 24 - bl sub_81C616C - lsls r0, 24 - cmp r0, 0 - bne _081C6028 - b _081C6160 -_081C6028: - movs r0, 0x5 - bl audio_play - movs r1, 0x1 - negs r1, r1 - movs r0, 0 - bl sub_8199134 - b _081C6160 - .pool -_081C6040: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081C6084 - lsls r0, r4, 24 - asrs r1, r0, 24 - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - movs r2, 0x82 - lsls r2, 4 - adds r0, r2 - ldrb r0, [r0] - subs r0, 0x2 - cmp r1, r0 - blt _081C6060 - b _081C6160 -_081C6060: - adds r0, r1, 0x2 - lsls r0, 24 - asrs r0, 24 - bl sub_81C616C - lsls r0, 24 - cmp r0, 0 - beq _081C6160 - movs r0, 0x5 - bl audio_play - movs r0, 0 - movs r1, 0x1 - bl sub_8199134 - b _081C6160 - .pool -_081C6084: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _081C6098 - bl GetLRKeysState - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C60C0 -_081C6098: - lsls r0, r4, 24 - asrs r1, r0, 24 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081C6160 - subs r0, r1, 0x1 - lsls r0, 24 - asrs r0, 24 - bl sub_81C616C - lsls r0, 24 - cmp r0, 0 - beq _081C6160 - movs r0, 0x5 - bl audio_play - movs r0, 0x1 - negs r0, r0 - b _081C60FA -_081C60C0: - ldrh r1, [r5, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _081C60D6 - bl GetLRKeysState - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _081C6102 -_081C60D6: - lsls r0, r4, 24 - asrs r1, r0, 24 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081C6160 - adds r0, r1, 0x1 - lsls r0, 24 - asrs r0, 24 - bl sub_81C616C - lsls r0, 24 - cmp r0, 0 - beq _081C6160 - movs r0, 0x5 - bl audio_play - movs r0, 0x1 -_081C60FA: - movs r1, 0 - bl sub_8199134 - b _081C6160 -_081C6102: - ldrh r1, [r5, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081C6148 - movs r0, 0x5 - bl audio_play - ldr r2, =gUnknown_0861F2D8 - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - lsls r1, r4, 24 - asrs r1, 24 - ldr r3, =0x00000818 - adds r0, r3 - ldr r0, [r0] - adds r0, r1 - ldrb r0, [r0] - lsls r0, 3 - adds r2, 0x4 - adds r0, r2 - ldr r1, [r0] - cmp r1, 0 - beq _081C6160 - adds r0, r6, 0 - bl _call_via_r1 - b _081C6160 - .pool -_081C6148: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081C6160 - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_0861F2D8 - ldr r1, [r0, 0x1C] - adds r0, r6, 0 - bl _call_via_r1 -_081C6160: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C5FE4 - - thumb_func_start sub_81C616C -sub_81C616C: @ 81C616C - push {lr} - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - blt _081C61A0 - ldr r0, =gUnknown_0203CF2C - ldr r2, [r0] - movs r3, 0x82 - lsls r3, 4 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r1, r0 - bgt _081C61A0 - ldr r3, =0x00000818 - adds r0, r2, r3 - ldr r0, [r0] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x5 - beq _081C61A0 - movs r0, 0x1 - b _081C61A2 - .pool -_081C61A0: - movs r0, 0 -_081C61A2: - pop {r1} - bx r1 - thumb_func_end sub_81C616C - - thumb_func_start sub_81C61A8 -sub_81C61A8: @ 81C61A8 - push {lr} - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - movs r1, 0x82 - lsls r1, 4 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _081C61C8 - movs r0, 0 - bl sub_81C6D6C - b _081C61DA - .pool -_081C61C8: - cmp r0, 0x2 - bne _081C61D4 - movs r0, 0x1 - bl sub_81C6D6C - b _081C61DA -_081C61D4: - movs r0, 0x2 - bl sub_81C6D6C -_081C61DA: - pop {r0} - bx r0 - thumb_func_end sub_81C61A8 - - thumb_func_start sub_81C61E0 -sub_81C61E0: @ 81C61E0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, =gUnknown_0203CE7C - ldrh r0, [r4] - bl itemid_get_pocket_number - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - beq _081C620C - cmp r0, 0x2 - beq _081C620C - cmp r0, 0x3 - beq _081C620C - ldrh r0, [r4] - bl itemid_is_mail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C6228 -_081C620C: - bl sub_81C61A8 - ldr r1, =gUnknown_085E8F31 - ldr r2, =sub_81C6714 - adds r0, r5, 0 - bl DisplayItemMessageInBattlePyramid - b _081C6252 - .pool -_081C6228: - ldrh r0, [r4] - bl itemid_get_overworld_function - cmp r0, 0 - beq _081C6252 - bl sub_81C61A8 - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - ldrh r0, [r4] - bl itemid_get_overworld_function - adds r1, r0, 0 - adds r0, r5, 0 - bl _call_via_r1 -_081C6252: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81C61E0 - - thumb_func_start sub_81C6258 -sub_81C6258: @ 81C6258 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - bl sub_81C61A8 - movs r1, 0x2 - ldrsh r0, [r4, r1] - bl sub_81C55D8 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - ldrb r0, [r4] - movs r1, 0 - bl sub_81C5A98 - adds r0, r5, 0 - bl sub_81C629C - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6258 - - thumb_func_start sub_81C629C -sub_81C629C: @ 81C629C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_81C5674 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81C5BC8 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C629C - - thumb_func_start sub_81C62C4 -sub_81C62C4: @ 81C62C4 - push {r4-r7,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r6, r0, 3 - ldr r7, =gTasks + 0x8 - adds r4, r6, r7 - bl sub_81C61A8 - movs r0, 0x1 - strh r0, [r4, 0x10] - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _081C62F4 - adds r0, r5, 0 - bl sub_81C6350 - b _081C6334 - .pool -_081C62F4: - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - ldr r1, =gStringVar1 - bl itemid_get_name - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E8EE0 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r1, 0 - str r1, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - str r1, [sp, 0x8] - str r1, [sp, 0xC] - adds r1, r4, 0 - movs r2, 0x3 - movs r3, 0 - bl sub_81C6C3C - bl sub_81C6404 - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, =sub_81C64B4 - str r1, [r0] -_081C6334: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C62C4 - - thumb_func_start sub_81C6350 -sub_81C6350: @ 81C6350 - push {r4,r5,lr} - sub sp, 0x10 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - ldr r1, =gStringVar1 - bl itemid_get_name - ldr r0, =gStringVar2 - movs r2, 0x10 - ldrsh r1, [r4, r2] - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E8F0E - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r1, 0 - str r1, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - str r1, [sp, 0x8] - str r1, [sp, 0xC] - adds r1, r4, 0 - movs r2, 0x3 - movs r3, 0 - bl sub_81C6C3C - ldr r1, =gUnknown_0861F314 - adds r0, r5, 0 - bl sub_81C6DAC - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6350 - - thumb_func_start sub_81C63D0 -sub_81C63D0: @ 81C63D0 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - movs r1, 0x2 - ldrsh r0, [r4, r1] - bl sub_81C55D8 - ldrb r0, [r4] - movs r1, 0 - bl sub_81C5A98 - adds r0, r5, 0 - bl sub_81C629C - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C63D0 - - thumb_func_start sub_81C6404 -sub_81C6404: @ 81C6404 - push {r4,lr} - sub sp, 0xC - ldr r0, =gStringVar1 - movs r1, 0x1 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E8DA0 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x3 - bl sub_81C6CEC - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x28 - bl GetStringCenterAlignXOffset - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x2 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x1 - adds r2, r4, 0 - bl Print - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6404 - - thumb_func_start sub_81C645C -sub_81C645C: @ 81C645C - push {r4,lr} - sub sp, 0xC - adds r1, r0, 0 - ldr r0, =gStringVar1 - lsls r1, 16 - asrs r1, 16 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085E8DA0 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x28 - bl GetStringCenterAlignXOffset - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x2 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x1 - adds r2, r4, 0 - bl Print - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C645C - - thumb_func_start sub_81C64B4 -sub_81C64B4: @ 81C64B4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - adds r0, r4, 0 - adds r0, 0x10 - ldrh r1, [r4, 0x4] - bl AdjustQuantityAccordingToDPadInput - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C64E8 - movs r1, 0x10 - ldrsh r0, [r4, r1] - bl sub_81C645C - b _081C6544 - .pool -_081C64E8: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081C651C - movs r0, 0x5 - bl audio_play - movs r0, 0x3 - movs r1, 0 - bl sub_8198070 - movs r0, 0x3 - bl ClearWindowTilemap - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r5, 0 - bl sub_81C6350 - b _081C6544 - .pool -_081C651C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081C6544 - movs r0, 0x5 - bl audio_play - movs r0, 0x3 - movs r1, 0 - bl sub_8198070 - movs r0, 0x3 - bl ClearWindowTilemap - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r6, 0 - bl sub_81C63D0 -_081C6544: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81C64B4 - - thumb_func_start sub_81C654C -sub_81C654C: @ 81C654C - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r5, =gTasks + 0x8 - adds r6, r4, r5 - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - ldr r1, =gStringVar1 - bl itemid_get_name - ldr r0, =gStringVar2 - movs r2, 0x10 - ldrsh r1, [r6, r2] - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r6, =gStringVar4 - ldr r1, =gUnknown_085E8EF9 - adds r0, r6, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r1, 0 - str r1, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - str r1, [sp, 0x8] - str r1, [sp, 0xC] - adds r1, r6, 0 - movs r2, 0x3 - movs r3, 0 - bl sub_81C6C3C - subs r5, 0x8 - adds r4, r5 - ldr r0, =sub_81C65CC - str r0, [r4] - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C654C - - thumb_func_start sub_81C65CC -sub_81C65CC: @ 81C65CC - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldr r6, =gUnknown_0203CF38 - subs r7, r6, 0x2 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _081C662E - movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - ldrh r1, [r4, 0x10] - bl sub_80D7334 - ldrb r0, [r4] - adds r1, r6, 0 - adds r2, r7, 0 - bl sub_81AE6C8 - bl sub_81C5924 - bl sub_81C59BC - bl sub_81C5314 - ldr r0, =gUnknown_03006310 - ldrh r1, [r6] - ldrh r2, [r7] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r5, 0 - bl sub_81C629C -_081C662E: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C65CC - - thumb_func_start sub_81C6648 -sub_81C6648: @ 81C6648 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - bl sub_81C61A8 - ldr r5, =gUnknown_0203CE7C - ldrh r0, [r5] - bl itemid_is_mail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081C667C - ldr r1, =gUnknown_085E8DCE - ldr r2, =sub_81C66EC - adds r0, r4, 0 - bl DisplayItemMessageInBattlePyramid - b _081C66A6 - .pool -_081C667C: - ldrh r0, [r5] - bl itemid_is_unique - lsls r0, 24 - cmp r0, 0 - bne _081C66A0 - ldr r0, =gUnknown_0203CF2C - ldr r1, [r0] - ldr r0, =sub_81B7F60 - str r0, [r1] - adds r0, r4, 0 - bl sub_81C5B14 - b _081C66A6 - .pool -_081C66A0: - adds r0, r6, 0 - bl sub_81C66AC -_081C66A6: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81C6648 - - thumb_func_start sub_81C66AC -sub_81C66AC: @ 81C66AC - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_0203CE7C - ldrh r0, [r0] - ldr r1, =gStringVar1 - bl itemid_get_name - ldr r5, =gStringVar4 - ldr r1, =gUnknown_085E8E11 - adds r0, r5, 0 - bl StringExpandPlaceholders - ldr r2, =sub_81C66EC - adds r0, r4, 0 - adds r1, r5, 0 - bl DisplayItemMessageInBattlePyramid - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C66AC - - thumb_func_start sub_81C66EC -sub_81C66EC: @ 81C66EC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081C670A - movs r0, 0x5 - bl audio_play - adds r0, r4, 0 - bl sub_81C6714 -_081C670A: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C66EC - - thumb_func_start sub_81C6714 -sub_81C6714: @ 81C6714 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - bl sub_81C6E1C - movs r1, 0x2 - ldrsh r0, [r4, r1] - bl sub_81C55D8 - ldrb r0, [r4] - movs r1, 0 - bl sub_81C5A98 - adds r0, r5, 0 - bl sub_81C629C - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6714 - - thumb_func_start sub_81C674C -sub_81C674C: @ 81C674C - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - ldr r5, =gUnknown_0203CE7C - ldrh r0, [r5] - bl itemid_80BF6D8_mail_related - lsls r0, 24 - cmp r0, 0 - bne _081C677C - ldr r1, =gUnknown_085E8DCE - ldr r2, =sub_81C66EC - adds r0, r4, 0 - bl DisplayItemMessageInBattlePyramid - b _081C6796 - .pool -_081C677C: - ldrh r0, [r5] - bl itemid_is_unique - lsls r0, 24 - cmp r0, 0 - bne _081C6790 - adds r0, r4, 0 - bl sub_81C5B14 - b _081C6796 -_081C6790: - adds r0, r6, 0 - bl sub_81C66AC -_081C6796: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81C674C - - thumb_func_start sub_81C679C -sub_81C679C: @ 81C679C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, =gUnknown_0203CE7C - ldrh r0, [r4] - bl itemid_get_battle_function - cmp r0, 0 - beq _081C67C0 - bl sub_81C61A8 - ldrh r0, [r4] - bl itemid_get_battle_function - adds r1, r0, 0 - adds r0, r5, 0 - bl _call_via_r1 -_081C67C0: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C679C - - thumb_func_start sub_81C67CC -sub_81C67CC: @ 81C67CC - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - mov r9, r0 - adds r5, r4, r0 - ldr r0, =gUnknown_0203CF30 - ldrh r1, [r0, 0x6] - ldrh r0, [r0, 0x8] - adds r1, r0 - strh r1, [r5, 0x2] - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r2, =0x00000814 - adds r0, r2 - movs r2, 0 - mov r8, r2 - strb r1, [r0] - ldrb r0, [r5] - movs r1, 0x10 - movs r2, 0x1 - bl sub_81AF15C - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - movs r0, 0x2 - ldrsh r2, [r5, r0] - lsls r2, 1 - ldr r1, =0x00000ca9 - adds r0, r3, r1 - ldrb r1, [r0] - lsls r1, 30 - lsrs r1, 30 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - ldr r0, =0x00000e2c - adds r3, r0 - adds r3, r2 - ldrh r0, [r3] - ldr r1, =gStringVar1 - bl itemid_get_name - ldr r6, =gStringVar4 - ldr r1, =gUnknown_085E8DFE - adds r0, r6, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - mov r1, r8 - str r1, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - str r1, [sp, 0x8] - str r1, [sp, 0xC] - adds r1, r6, 0 - movs r2, 0x3 - movs r3, 0 - bl sub_81C6C3C - ldrb r0, [r5] - movs r1, 0x1 - bl sub_81C5A98 - ldrb r0, [r5, 0x2] - bl sub_81C704C - movs r2, 0x8 - negs r2, r2 - add r9, r2 - add r4, r9 - ldr r0, =sub_81C68B0 - str r0, [r4] - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C67CC - - thumb_func_start sub_81C68B0 -sub_81C68B0: @ 81C68B0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081C695C - ldr r7, =gMain - ldrh r1, [r7, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _081C68F8 - movs r0, 0x5 - bl audio_play - ldrb r0, [r4] - ldr r1, =gUnknown_0203CF38 - subs r2, r1, 0x2 - bl get_coro_args_x18_x1A - b _081C6940 - .pool -_081C68F8: - ldrb r0, [r4] - bl ListMenuHandleInput - adds r6, r0, 0 - ldrb r0, [r4] - ldr r4, =gUnknown_0203CF38 - subs r2, r4, 0x2 - adds r1, r4, 0 - bl get_coro_args_x18_x1A - movs r0, 0 - bl sub_81C7028 - subs r4, 0x8 - ldrb r0, [r4, 0x6] - bl sub_81C704C - movs r0, 0x2 - negs r0, r0 - cmp r6, r0 - beq _081C6930 - adds r0, 0x1 - cmp r6, r0 - bne _081C6950 - b _081C695C - .pool -_081C6930: - movs r0, 0x5 - bl audio_play - ldrh r1, [r7, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081C6948 -_081C6940: - adds r0, r5, 0 - bl sub_81C6964 - b _081C695C -_081C6948: - adds r0, r5, 0 - bl sub_81C6A14 - b _081C695C -_081C6950: - movs r0, 0x5 - bl audio_play - adds r0, r5, 0 - bl sub_81C6964 -_081C695C: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81C68B0 - - thumb_func_start sub_81C6964 -sub_81C6964: @ 81C6964 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r5, r0, r1 - ldr r7, =gUnknown_0203CF38 - subs r0, r7, 0x2 - mov r8, r0 - ldrh r0, [r0] - ldrh r1, [r7] - adds r0, r1 - lsls r0, 16 - lsrs r4, r0, 16 - movs r3, 0x2 - ldrsh r1, [r5, r3] - cmp r1, r4 - beq _081C6996 - subs r0, r4, 0x1 - cmp r1, r0 - bne _081C69A8 -_081C6996: - adds r0, r6, 0 - bl sub_81C6A14 - b _081C69FC - .pool -_081C69A8: - ldrb r0, [r5, 0x2] - lsls r1, r4, 24 - lsrs r1, 24 - bl sub_81C57A8 - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r1, =0x00000814 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - movs r0, 0x1 - bl sub_81C7028 - ldrb r0, [r5] - adds r1, r7, 0 - mov r2, r8 - bl sub_81AE6C8 - movs r3, 0x2 - ldrsh r0, [r5, r3] - cmp r0, r4 - bge _081C69E0 - adds r1, r7, 0 - subs r1, 0x8 - ldrh r0, [r1, 0x6] - subs r0, 0x1 - strh r0, [r1, 0x6] -_081C69E0: - bl sub_81C5314 - ldr r0, =gUnknown_03006310 - ldrh r1, [r7] - mov r3, r8 - ldrh r2, [r3] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - adds r0, r6, 0 - bl sub_81C629C -_081C69FC: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6964 - - thumb_func_start sub_81C6A14 -sub_81C6A14: @ 81C6A14 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldr r5, =gUnknown_0203CF38 - subs r7, r5, 0x2 - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r1, =0x00000814 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - movs r0, 0x1 - bl sub_81C7028 - ldrb r0, [r4] - adds r1, r5, 0 - adds r2, r7, 0 - bl sub_81AE6C8 - movs r0, 0x2 - ldrsh r2, [r4, r0] - ldrh r0, [r5] - ldrh r1, [r7] - adds r0, r1 - cmp r2, r0 - bge _081C6A5E - adds r1, r5, 0 - subs r1, 0x8 - ldrh r0, [r1, 0x6] - subs r0, 0x1 - strh r0, [r1, 0x6] -_081C6A5E: - bl sub_81C5314 - ldr r0, =gUnknown_03006310 - ldrh r1, [r5] - ldrh r2, [r7] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - adds r0, r6, 0 - bl sub_81C629C - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6A14 - - thumb_func_start sub_81C6A94 -sub_81C6A94: @ 81C6A94 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - ldr r0, =gPlayerParty - mov r9, r0 - movs r0, 0x14 - bl Alloc - adds r7, r0, 0 - movs r0, 0xA - bl Alloc - adds r5, r0, 0 - ldr r1, =gSaveBlock2Ptr - mov r8, r1 - ldr r2, [r1] - ldr r4, =0x00000ca9 - adds r0, r2, r4 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 30 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldr r0, =0x00000e2c - adds r1, r0 - adds r0, r7, 0 - movs r2, 0x14 - bl memcpy - mov r1, r8 - ldr r2, [r1] - adds r0, r2, r4 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 30 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 1 - adds r1, r2 - ldr r0, =0x00000e54 - adds r1, r0 - adds r0, r5, 0 - movs r2, 0xA - bl memcpy - movs r6, 0 -_081C6AF8: - movs r0, 0x64 - muls r0, r6 - add r0, r9 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - mov r1, sp - strh r0, [r1] - cmp r0, 0 - beq _081C6B88 - movs r1, 0x1 - bl bag_add_item - lsls r0, 24 - cmp r0, 0 - bne _081C6B88 - mov r1, r8 - ldr r2, [r1] - adds r0, r2, r4 - ldrb r1, [r0] - lsls r1, 30 - lsrs r1, 30 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, =0x00000e2c - adds r0, r1 - adds r1, r7, 0 - movs r2, 0x14 - bl memcpy - mov r0, r8 - ldr r2, [r0] - adds r0, r2, r4 - ldrb r1, [r0] - lsls r1, 30 - lsrs r1, 30 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - adds r0, r2 - ldr r1, =0x00000e54 - adds r0, r1 - adds r1, r5, 0 - movs r2, 0xA - bl memcpy - adds r0, r7, 0 - bl Free - adds r0, r5, 0 - bl Free - ldr r1, =gUnknown_020375F0 - movs r0, 0x1 - strh r0, [r1] - b _081C6BC6 - .pool -_081C6B88: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x2 - bls _081C6AF8 - movs r1, 0 - mov r0, sp - strh r1, [r0] - movs r6, 0 - movs r4, 0x64 -_081C6B9C: - adds r0, r6, 0 - muls r0, r4 - add r0, r9 - movs r1, 0xC - mov r2, sp - bl pokemon_setattr - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x2 - bls _081C6B9C - ldr r1, =gUnknown_020375F0 - movs r0, 0 - strh r0, [r1] - adds r0, r7, 0 - bl Free - adds r0, r5, 0 - bl Free -_081C6BC6: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6A94 - - thumb_func_start sub_81C6BD8 -sub_81C6BD8: @ 81C6BD8 - push {r4,lr} - ldr r0, =gUnknown_0861F328 - bl InitWindows - bl DeactivateAllTextPrinters - movs r0, 0 - movs r1, 0x1 - movs r2, 0xE0 - bl sub_809882C - movs r0, 0 - movs r1, 0xA - movs r2, 0xD0 - bl copy_textbox_border_tile_patterns_to_vram - ldr r0, =gUnknown_0860F074 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - movs r4, 0 -_081C6C04: - adds r0, r4, 0 - movs r1, 0 - bl FillWindowPixelBuffer - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _081C6C04 - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6BD8 - - thumb_func_start sub_81C6C3C -sub_81C6C3C: @ 81C6C3C - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x14 - ldr r4, [sp, 0x28] - ldr r6, [sp, 0x2C] - ldr r5, [sp, 0x30] - mov r8, r5 - ldr r5, [sp, 0x34] - lsls r0, 24 - lsrs r0, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r5, 24 - lsrs r5, 24 - str r4, [sp] - str r6, [sp, 0x4] - lsls r4, r5, 1 - adds r4, r5 - ldr r5, =gUnknown_0861F31C - adds r4, r5 - str r4, [sp, 0x8] - mov r4, r8 - lsls r4, 24 - asrs r4, 24 - str r4, [sp, 0xC] - str r1, [sp, 0x10] - movs r1, 0x1 - bl AddTextPrinterParametrized2 - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6C3C - - thumb_func_start sub_81C6C94 -sub_81C6C94: @ 81C6C94 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x14 - ldr r4, [sp, 0x28] - ldr r6, [sp, 0x2C] - ldr r5, [sp, 0x30] - mov r8, r5 - ldr r5, [sp, 0x34] - lsls r0, 24 - lsrs r0, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r5, 24 - lsrs r5, 24 - str r4, [sp] - str r6, [sp, 0x4] - lsls r4, r5, 1 - adds r4, r5 - ldr r5, =gUnknown_0861F31C - adds r4, r5 - str r4, [sp, 0x8] - mov r4, r8 - lsls r4, 24 - asrs r4, 24 - str r4, [sp, 0xC] - str r1, [sp, 0x10] - movs r1, 0x7 - bl AddTextPrinterParametrized2 - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6C94 - - thumb_func_start sub_81C6CEC -sub_81C6CEC: @ 81C6CEC - push {lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - movs r2, 0x1 - movs r3, 0xE - bl SetWindowBorderStyle - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - pop {r0} - bx r0 - thumb_func_end sub_81C6CEC - - thumb_func_start sub_81C6D08 -sub_81C6D08: @ 81C6D08 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0203CF2C - ldr r1, [r1] - ldr r2, =0x0000080f - adds r1, r2 - adds r1, r0 - ldrb r0, [r1] - bx lr - .pool - thumb_func_end sub_81C6D08 - - thumb_func_start sub_81C6D24 -sub_81C6D24: @ 81C6D24 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gUnknown_0203CF2C - ldr r3, =0x0000080f - adds r1, r2, r3 - ldr r0, [r0] - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0xFF - bne _081C6D58 - lsls r0, r2, 3 - ldr r1, =gUnknown_0861F350 - adds r0, r1 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, 0 - movs r2, 0x1 - movs r3, 0xE - bl SetWindowBorderStyle - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram -_081C6D58: - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C6D24 - - thumb_func_start sub_81C6D6C -sub_81C6D6C: @ 81C6D6C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0203CF2C - ldr r2, =0x0000080f - adds r0, r2 - ldr r1, [r1] - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, 0xFF - beq _081C6D9E - movs r1, 0 - bl sub_8198070 - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - bl RemoveWindow - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0xFF - strb r0, [r4] -_081C6D9E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6D6C - - thumb_func_start sub_81C6DAC -sub_81C6DAC: @ 81C6DAC - push {lr} - sub sp, 0x10 - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0861F370 - movs r2, 0x2 - str r2, [sp] - movs r2, 0x1 - str r2, [sp, 0x4] - movs r2, 0xE - str r2, [sp, 0x8] - str r3, [sp, 0xC] - movs r2, 0x1 - movs r3, 0 - bl CreateYesNoMenuWithCallbacks - add sp, 0x10 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6DAC - - thumb_func_start DisplayItemMessageInBattlePyramid -@ void DisplayItemMessageInBattlePyramid(u8 taskId, u8 *str, void ( *callback)(u8 taskId)) -DisplayItemMessageInBattlePyramid: @ 81C6DD8 - push {r4-r6,lr} - sub sp, 0x10 - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x2 - movs r1, 0x11 - bl FillWindowPixelBuffer - bl sav2_get_text_speed - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - str r1, [sp] - str r0, [sp, 0x4] - str r5, [sp, 0x8] - str r6, [sp, 0xC] - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0xA - movs r3, 0xD - bl DisplayMessageAndContinueTask - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end DisplayItemMessageInBattlePyramid - - thumb_func_start sub_81C6E1C -sub_81C6E1C: @ 81C6E1C - push {lr} - movs r0, 0x2 - movs r1, 0 - bl sub_8197DF8 - movs r0, 0x2 - bl ClearWindowTilemap - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - pop {r0} - bx r0 - thumb_func_end sub_81C6E1C - - thumb_func_start sub_81C6E38 -sub_81C6E38: @ 81C6E38 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gUnknown_0203CF2C - ldr r2, =0x00000804 - adds r1, r4, r2 - ldr r0, [r0] - adds r5, r0, r1 - ldrb r0, [r5] - cmp r0, 0xFF - beq _081C6E80 - ldr r0, =0x00001024 - adds r4, r0 - adds r0, r4, 0 - bl FreeObjectTilesByTag - adds r0, r4, 0 - bl FreeObjectPaletteByTag - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - bl obj_free_rotscale_entry - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl RemoveObjectAndFreeTiles - movs r0, 0xFF - strb r0, [r5] -_081C6E80: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6E38 - - thumb_func_start sub_81C6E98 -sub_81C6E98: @ 81C6E98 - push {r4,lr} - sub sp, 0x8 - movs r0, 0x40 - bl Alloc - adds r4, r0, 0 - ldr r0, =gUnknown_08D9ADD0 - adds r1, r4, 0 - bl LZDecompressWram - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 25 - adds r0, r4, r0 - str r0, [sp] - ldr r1, =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - ldr r1, =0x00001024 - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadTaggedObjectPalette - adds r0, r4, 0 - bl Free - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6E98 - - thumb_func_start sub_81C6EF4 -sub_81C6EF4: @ 81C6EF4 - push {r4,lr} - ldr r0, =gUnknown_0203CF2C - ldr r4, [r0] - ldr r0, =0x00000804 - adds r4, r0 - ldr r0, =gUnknown_0861F3D4 - movs r1, 0x44 - movs r2, 0x38 - movs r3, 0 - bl AddObjectToFront - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6EF4 - - thumb_func_start sub_81C6F20 -sub_81C6F20: @ 81C6F20 - push {r4,lr} - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r1, =0x00000804 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r4, r0, r1 - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _081C6F50 - adds r0, r4, 0 - movs r1, 0x1 - bl StartObjectRotScalAnim - ldr r0, =sub_81C6F68 - str r0, [r4, 0x1C] -_081C6F50: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6F20 - - thumb_func_start sub_81C6F68 -sub_81C6F68: @ 81C6F68 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _081C6F84 - adds r0, r4, 0 - movs r1, 0 - bl StartObjectRotScalAnim - ldr r0, =DummyObjectCallback - str r0, [r4, 0x1C] -_081C6F84: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6F68 - - thumb_func_start sub_81C6F90 -sub_81C6F90: @ 81C6F90 - push {r4-r6,lr} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r4, r1, 24 - ldr r0, =gUnknown_0203CF2C - ldr r2, =0x00000805 - adds r1, r4, r2 - ldr r0, [r0] - adds r5, r0, r1 - ldrb r0, [r5] - cmp r0, 0xFF - bne _081C6FE0 - ldr r0, =0x00001025 - adds r4, r0 - adds r0, r4, 0 - bl FreeObjectTilesByTag - adds r0, r4, 0 - bl FreeObjectPaletteByTag - adds r0, r4, 0 - adds r1, r4, 0 - adds r2, r6, 0 - bl AddItemIconObject - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _081C6FE0 - strb r2, [r5] - ldr r1, =gUnknown_02020630 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0x18 - strh r1, [r0, 0x24] - movs r1, 0x58 - strh r1, [r0, 0x26] -_081C6FE0: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C6F90 - - thumb_func_start sub_81C6FF8 -sub_81C6FF8: @ 81C6FF8 - push {lr} - lsls r0, 24 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r0, 24 - bl sub_81C6E38 - pop {r0} - bx r0 - thumb_func_end sub_81C6FF8 - - thumb_func_start sub_81C700C -sub_81C700C: @ 81C700C - push {lr} - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r1, =0x00000807 - adds r0, r1 - movs r1, 0x8 - bl sub_8122344 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C700C - - thumb_func_start sub_81C7028 -sub_81C7028: @ 81C7028 - push {lr} - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r1, =0x00000807 - adds r0, r1 - movs r1, 0x8 - bl sub_81223FC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C7028 - - thumb_func_start sub_81C704C -sub_81C704C: @ 81C704C - push {lr} - adds r3, r0, 0 - lsls r3, 24 - ldr r0, =gUnknown_0203CF2C - ldr r0, [r0] - ldr r1, =0x00000807 - adds r0, r1 - lsrs r3, 4 - movs r1, 0x80 - lsls r1, 13 - adds r3, r1 - lsrs r3, 16 - movs r1, 0x88 - movs r2, 0x78 - bl sub_8122448 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C704C - - thumb_func_start sub_81C7078 -sub_81C7078: @ 81C7078 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - bl is_c1_link_related_active - cmp r0, 0 - bne _081C7090 - ldr r0, =sub_81C7170 - b _081C7092 - .pool -_081C7090: - ldr r0, =sub_81C71E4 -_081C7092: - lsls r1, r4, 24 - lsrs r1, 24 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - movs r1, 0x1 - adds r2, r5, 0 - bl SetWordTaskArg - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r2, =gUnknown_0203CF3C - ldrb r1, [r2] - strh r1, [r0, 0xE] - ldrb r0, [r2] - adds r1, r0, 0x1 - strb r1, [r2] - lsls r0, 24 - lsrs r0, 8 - orrs r0, r4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C7078 - - thumb_func_start sub_81C70D8 -sub_81C70D8: @ 81C70D8 - push {lr} - ldr r1, =0x0000ffff - ands r1, r0 - lsrs r3, r0, 16 - ldr r2, =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r1, r0, r2 - ldrb r0, [r1, 0x4] - cmp r0, 0 - beq _081C711C - ldr r2, [r1] - ldr r0, =sub_81C7170 - cmp r2, r0 - beq _081C70FE - ldr r0, =sub_81C71E4 - cmp r2, r0 - bne _081C711C -_081C70FE: - movs r2, 0xE - ldrsh r0, [r1, r2] - cmp r0, r3 - bne _081C711C - movs r0, 0x1 - b _081C711E - .pool -_081C711C: - movs r0, 0 -_081C711E: - pop {r1} - bx r1 - thumb_func_end sub_81C70D8 - - thumb_func_start sub_81C7124 -sub_81C7124: @ 81C7124 - push {r4-r6,lr} - adds r6, r0, 0 - movs r5, 0 - ldr r4, =gTasks -_081C712C: - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _081C7160 - ldr r1, [r4] - ldr r0, =sub_81C7170 - cmp r1, r0 - beq _081C7140 - ldr r0, =sub_81C71E4 - cmp r1, r0 - bne _081C7160 -_081C7140: - lsls r0, r5, 24 - lsrs r0, 24 - movs r1, 0x1 - bl GetWordTaskArg - cmp r0, r6 - bne _081C7160 - movs r0, 0x1 - b _081C716A - .pool -_081C7160: - adds r4, 0x28 - adds r5, 0x1 - cmp r5, 0xF - ble _081C712C - movs r0, 0 -_081C716A: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81C7124 - - thumb_func_start sub_81C7170 -sub_81C7170: @ 81C7170 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - movs r1, 0x1 - bl GetWordTaskArg - adds r6, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - movs r7, 0 -_081C718C: - movs r1, 0 - ldrsh r0, [r4, r1] - bl _call_via_r6 - cmp r0, 0x4 - bhi _081C71D6 - lsls r0, 2 - ldr r1, =_081C71AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C71AC: - .4byte _081C71C6 - .4byte _081C71C0 - .4byte _081C71DE - .4byte _081C71DA - .4byte _081C71CE -_081C71C0: - ldrh r0, [r4] - adds r0, 0x1 - b _081C71D8 -_081C71C6: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _081C71DE -_081C71CE: - adds r0, r5, 0 - bl DestroyTask - b _081C71DE -_081C71D6: - subs r0, 0x5 -_081C71D8: - strh r0, [r4] -_081C71DA: - cmp r7, 0 - beq _081C718C -_081C71DE: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81C7170 - - thumb_func_start sub_81C71E4 -sub_81C71E4: @ 81C71E4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_8087598 - cmp r0, 0 - bne _081C724A - adds r0, r5, 0 - movs r1, 0x1 - bl GetWordTaskArg - adds r2, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - movs r1, 0 - ldrsh r0, [r4, r1] - bl _call_via_r2 - cmp r0, 0x4 - bhi _081C7246 - lsls r0, 2 - ldr r1, =_081C7224 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C7224: - .4byte _081C7238 - .4byte _081C7238 - .4byte _081C724A - .4byte _081C724A - .4byte _081C723E -_081C7238: - ldrh r0, [r4] - adds r0, 0x1 - b _081C7248 -_081C723E: - adds r0, r5, 0 - bl DestroyTask - b _081C724A -_081C7246: - subs r0, 0x5 -_081C7248: - strh r0, [r4] -_081C724A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81C71E4 - - thumb_func_start CB2_PokeNav -CB2_PokeNav: @ 81C7250 - push {r4,lr} - ldr r4, =gUnknown_0203CF40 - movs r0, 0x5C - bl Alloc - str r0, [r4] - cmp r0, 0 - bne _081C7270 - ldr r0, =sub_8086194 - bl SetMainCallback2 - b _081C7292 - .pool -_081C7270: - bl sub_81C7360 - bl ResetTasks - movs r0, 0 - bl SetVBlankCallback - ldr r0, =sub_81C742C - movs r1, 0 - bl CreateTask - ldr r0, =sub_81C7400 - bl SetMainCallback2 - ldr r0, =sub_81C7418 - bl SetVBlankCallback -_081C7292: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end CB2_PokeNav - - thumb_func_start sub_81C72A4 -sub_81C72A4: @ 81C72A4 - push {lr} - ldr r0, =sub_81C72BC - bl SetMainCallback2 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C72A4 - - thumb_func_start sub_81C72BC -sub_81C72BC: @ 81C72BC - push {r4,lr} - bl UpdatePaletteFade - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081C7320 - ldr r4, =gUnknown_0203CF40 - movs r0, 0x5C - bl Alloc - str r0, [r4] - cmp r0, 0 - bne _081C72F0 - ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 - b _081C7320 - .pool -_081C72F0: - bl sub_81C7360 - ldr r1, [r4] - movs r0, 0x1 - strh r0, [r1, 0x8] - bl ResetTasks - bl ResetAllObjectData - bl ResetObjectPaletteAllocator - movs r0, 0 - bl SetVBlankCallback - ldr r0, =sub_81C742C - movs r1, 0 - bl CreateTask - ldr r0, =sub_81C7400 - bl SetMainCallback2 - ldr r0, =sub_81C7418 - bl SetVBlankCallback -_081C7320: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C72BC - - thumb_func_start sub_81C7334 -sub_81C7334: @ 81C7334 - push {r4,lr} - movs r4, 0 -_081C7338: - adds r0, r4, 0 - bl sub_81C7650 - adds r4, 0x1 - cmp r4, 0x12 - ble _081C7338 - ldr r4, =gUnknown_0203CF40 - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] - bl InitKeys - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C7334 - - thumb_func_start sub_81C7360 -sub_81C7360: @ 81C7360 - push {r4,r5,lr} - adds r5, r0, 0 - movs r2, 0 - movs r1, 0x12 - adds r0, 0x58 -_081C736A: - str r2, [r0] - subs r0, 0x4 - subs r1, 0x1 - cmp r1, 0 - bge _081C736A - movs r4, 0 - strh r4, [r5, 0x8] - str r4, [r5, 0x4] - bl sub_81C7388 - str r0, [r5, 0xC] - str r4, [r5] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81C7360 - - thumb_func_start sub_81C7388 -sub_81C7388: @ 81C7388 - push {r4-r6,lr} - movs r5, 0 -_081C738C: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x5 - bl GetMonData - cmp r0, 0 - beq _081C73BA - adds r0, r4, 0 - movs r1, 0x6 - bl GetMonData - cmp r0, 0 - bne _081C73BA - adds r0, r4, 0 - movs r1, 0x52 - bl GetMonData - cmp r0, 0 - bne _081C73E2 -_081C73BA: - adds r5, 0x1 - cmp r5, 0x5 - ble _081C738C - movs r4, 0 -_081C73C2: - movs r5, 0 - lsls r6, r4, 24 -_081C73C6: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80D2270 - cmp r0, 0 - beq _081C73EC - lsls r1, r5, 24 - lsrs r1, 24 - lsrs r0, r6, 24 - movs r2, 0x52 - bl get_pokemon_data_from_any_box - cmp r0, 0 - beq _081C73EC -_081C73E2: - movs r0, 0x1 - b _081C73FA - .pool -_081C73EC: - adds r5, 0x1 - cmp r5, 0x1D - ble _081C73C6 - adds r4, 0x1 - cmp r4, 0xD - ble _081C73C2 - movs r0, 0 -_081C73FA: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81C7388 - - thumb_func_start sub_81C7400 -sub_81C7400: @ 81C7400 - push {lr} - bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_81C7400 - - thumb_func_start sub_81C7418 -sub_81C7418: @ 81C7418 - push {lr} - bl TransferPlttBuffer - bl LoadOamFromSprites - bl ProcessObjectCopyRequests - pop {r0} - bx r0 - thumb_func_end sub_81C7418 - - thumb_func_start sub_81C742C -sub_81C742C: @ 81C742C - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r7, r1, r0 - movs r1, 0 - ldrsh r0, [r7, r1] - cmp r0, 0x5 - bls _081C7446 - b _081C7562 -_081C7446: - lsls r0, 2 - ldr r1, =_081C7458 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C7458: - .4byte _081C7470 - .4byte _081C747A - .4byte _081C7490 - .4byte _081C749C - .4byte _081C751E - .4byte _081C752C -_081C7470: - bl sub_81C76C4 - movs r0, 0x1 - strh r0, [r7] - b _081C7562 -_081C747A: - bl sub_81C76FC - cmp r0, 0 - bne _081C7562 - ldr r0, =0x000186a0 - bl sub_81C756C - b _081C74E8 - .pool -_081C7490: - bl sub_81C786C - cmp r0, 0 - bne _081C7562 - movs r0, 0x3 - strh r0, [r7] -_081C749C: - bl sub_81C75E0 - adds r6, r0, 0 - movs r0, 0x1 - negs r0, r0 - cmp r6, r0 - beq _081C74FC - ldr r0, =0x0001869f - cmp r6, r0 - bls _081C7506 - ldr r4, =gUnknown_0861F3EC - ldr r5, =gUnknown_0203CF40 - ldr r0, [r5] - ldr r1, [r0, 0x4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x18 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, [r5] - ldr r1, [r0, 0x4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r4, 0x14 - adds r0, r4 - ldr r0, [r0] - bl _call_via_r0 - adds r0, r6, 0 - bl sub_81C756C - cmp r0, 0 - beq _081C74FC -_081C74E8: - movs r0, 0x4 - strh r0, [r7] - b _081C7562 - .pool -_081C74FC: - bl sub_81C7710 - movs r0, 0x5 - strh r0, [r7] - b _081C7562 -_081C7506: - cmp r6, 0 - beq _081C7562 - adds r0, r6, 0 - bl sub_81C7850 - bl sub_81C786C - cmp r0, 0 - beq _081C7562 - movs r0, 0x2 - strh r0, [r7] - b _081C7562 -_081C751E: - bl sub_81C75D4 - cmp r0, 0 - bne _081C7562 - movs r0, 0x3 - strh r0, [r7] - b _081C7562 -_081C752C: - bl sub_81C7738 - cmp r0, 0 - bne _081C7562 - ldr r0, =gUnknown_0203CF40 - ldr r0, [r0] - ldrh r0, [r0, 0x8] - negs r4, r0 - orrs r4, r0 - lsrs r4, 31 - bl sub_81C9430 - bl sub_81C7334 - cmp r4, 0 - beq _081C755C - ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 - b _081C7562 - .pool -_081C755C: - ldr r0, =sub_8086194 - bl SetMainCallback2 -_081C7562: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C742C - - thumb_func_start sub_81C756C -sub_81C756C: @ 81C756C - push {r4-r6,lr} - ldr r1, =0xfffe7960 - adds r6, r0, r1 - bl sub_81C75F4 - ldr r5, =gUnknown_0861F3EC - lsls r0, r6, 3 - subs r0, r6 - lsls r4, r0, 2 - adds r0, r4, r5 - ldr r0, [r0] - bl _call_via_r0 - cmp r0, 0 - beq _081C75CC - adds r0, r5, 0 - adds r0, 0x8 - adds r0, r4, r0 - ldr r0, [r0] - bl _call_via_r0 - cmp r0, 0 - beq _081C75CC - adds r0, r5, 0 - adds r0, 0xC - adds r0, r4, r0 - ldr r0, [r0] - adds r1, r5, 0 - adds r1, 0x10 - adds r1, r4, r1 - ldr r1, [r1] - bl sub_81C7834 - ldr r0, =gUnknown_0203CF40 - ldr r1, [r0] - adds r0, r5, 0x4 - adds r0, r4, r0 - ldr r0, [r0] - str r0, [r1] - str r6, [r1, 0x4] - movs r0, 0x1 - b _081C75CE - .pool -_081C75CC: - movs r0, 0 -_081C75CE: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81C756C - - thumb_func_start sub_81C75D4 -sub_81C75D4: @ 81C75D4 - push {lr} - bl sub_81C786C - pop {r1} - bx r1 - thumb_func_end sub_81C75D4 - - thumb_func_start sub_81C75E0 -sub_81C75E0: @ 81C75E0 - push {lr} - ldr r0, =gUnknown_0203CF40 - ldr r0, [r0] - ldr r0, [r0] - bl _call_via_r0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C75E0 - - thumb_func_start sub_81C75F4 -sub_81C75F4: @ 81C75F4 - push {lr} - bl InitKeys - pop {r0} - bx r0 - thumb_func_end sub_81C75F4 - - thumb_func_start c3args_set_0toR1_1to0 -c3args_set_0toR1_1to0: @ 81C7600 - push {lr} - bl SetVBlankCallback - pop {r0} - bx r0 - thumb_func_end c3args_set_0toR1_1to0 - - thumb_func_start sub_81C760C -sub_81C760C: @ 81C760C - push {lr} - ldr r0, =sub_81C7418 - bl SetVBlankCallback - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C760C - - thumb_func_start sub_81C761C -sub_81C761C: @ 81C761C - push {r4,lr} - adds r4, r0, 0 - adds r0, r1, 0 - bl Alloc - ldr r1, =gUnknown_0203CF40 - ldr r1, [r1] - lsls r4, 2 - adds r1, 0x10 - adds r1, r4 - str r0, [r1] - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C761C - - thumb_func_start sub_81C763C -sub_81C763C: @ 81C763C - ldr r1, =gUnknown_0203CF40 - ldr r1, [r1] - lsls r0, 2 - adds r1, 0x10 - adds r1, r0 - ldr r0, [r1] - bx lr - .pool - thumb_func_end sub_81C763C - - thumb_func_start sub_81C7650 -sub_81C7650: @ 81C7650 - push {r4,r5,lr} - ldr r5, =gUnknown_0203CF40 - ldr r1, [r5] - lsls r4, r0, 2 - adds r1, 0x10 - adds r1, r4 - ldr r0, [r1] - cmp r0, 0 - beq _081C7670 - bl Free - ldr r0, [r5] - adds r0, 0x10 - adds r0, r4 - movs r1, 0 - str r1, [r0] -_081C7670: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C7650 - - thumb_func_start sub_81C767C -sub_81C767C: @ 81C767C - ldr r0, =gUnknown_0203CF40 - ldr r0, [r0] - ldrh r0, [r0, 0x8] - bx lr - .pool - thumb_func_end sub_81C767C - - thumb_func_start sub_81C7688 -sub_81C7688: @ 81C7688 - ldr r1, =gUnknown_0203CF40 - ldr r1, [r1] - strh r0, [r1, 0x8] - bx lr - .pool - thumb_func_end sub_81C7688 - - thumb_func_start sub_81C7694 -sub_81C7694: @ 81C7694 - push {lr} - adds r1, r0, 0 - cmp r1, 0x4 - bls _081C769E - movs r1, 0 -_081C769E: - ldr r0, =gUnknown_0203CF40 - ldr r0, [r0] - strh r1, [r0, 0xA] - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C7694 - - thumb_func_start sub_81C76AC -sub_81C76AC: @ 81C76AC - ldr r0, =gUnknown_0203CF40 - ldr r0, [r0] - ldrh r0, [r0, 0xA] - bx lr - .pool - thumb_func_end sub_81C76AC - - thumb_func_start sub_81C76B8 -sub_81C76B8: @ 81C76B8 - ldr r0, =gUnknown_0203CF40 - ldr r0, [r0] - ldr r0, [r0, 0xC] - bx lr - .pool - thumb_func_end sub_81C76B8 - - thumb_func_start sub_81C76C4 -sub_81C76C4: @ 81C76C4 - push {r4,lr} - ldr r1, =0x0000082c - movs r0, 0 - bl sub_81C761C - adds r4, r0, 0 - cmp r4, 0 - beq _081C76F4 - bl ResetAllObjectData - bl ResetObjectPaletteAllocator - ldr r0, =sub_81C7764 - movs r1, 0x1 - bl sub_81C7078 - str r0, [r4, 0xC] - movs r0, 0x1 - b _081C76F6 - .pool -_081C76F4: - movs r0, 0 -_081C76F6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81C76C4 - - thumb_func_start sub_81C76FC -sub_81C76FC: @ 81C76FC - push {lr} - movs r0, 0 - bl sub_81C763C - ldr r0, [r0, 0xC] - bl sub_81C70D8 - pop {r1} - bx r1 - thumb_func_end sub_81C76FC - - thumb_func_start sub_81C7710 -sub_81C7710: @ 81C7710 - push {lr} - sub sp, 0x4 - movs r0, 0x6F - bl audio_play - bl sub_81CAADC - movs r1, 0x1 - negs r1, r1 - movs r0, 0 - str r0, [sp] - adds r0, r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_81C7710 - - thumb_func_start sub_81C7738 -sub_81C7738: @ 81C7738 - push {lr} - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081C7750 - movs r0, 0x1 - b _081C775E - .pool -_081C7750: - bl sub_81C99D4 - bl sub_81C7C94 - bl FreeAllWindowBuffers - movs r0, 0 -_081C775E: - pop {r1} - bx r1 - thumb_func_end sub_81C7738 - - thumb_func_start sub_81C7764 -sub_81C7764: @ 81C7764 - push {r4,lr} - sub sp, 0x4 - cmp r0, 0x1 - beq _081C77B0 - cmp r0, 0x1 - bgt _081C7776 - cmp r0, 0 - beq _081C7780 - b _081C782A -_081C7776: - cmp r0, 0x2 - beq _081C77FC - cmp r0, 0x3 - beq _081C780E - b _081C782A -_081C7780: - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - bl FreeAllWindowBuffers - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_0861FA04 - movs r0, 0 - movs r2, 0x1 - bl InitBgsFromTemplates - bl sub_8199D98 - bl reset_temp_tile_data_buffers - movs r0, 0x1 - b _081C782C - .pool -_081C77B0: - movs r0, 0 - bl sub_81C763C - adds r4, r0, 0 - ldr r1, =gUnknown_08DC7B80 - movs r0, 0 - str r0, [sp] - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - adds r4, 0x2C - movs r0, 0 - adds r1, r4, 0 - bl SetBgTilemapBuffer - ldr r1, =gUnknown_08DC7D84 - movs r0, 0 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - ldr r0, =gUnknown_08DC7B60 - movs r1, 0 - movs r2, 0x20 - bl sub_81C7944 - movs r0, 0 - bl CopyBgTilemapBufferToVram - movs r0, 0 - b _081C782C - .pool -_081C77FC: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081C7818 - bl sub_81C7B74 - movs r0, 0 - b _081C782C -_081C780E: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081C781C -_081C7818: - movs r0, 0x2 - b _081C782C -_081C781C: - bl sub_81C7C28 - bl sub_81C7D28 - movs r0, 0 - bl ShowBg -_081C782A: - movs r0, 0x4 -_081C782C: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81C7764 - - thumb_func_start sub_81C7834 -sub_81C7834: @ 81C7834 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - bl sub_81C763C - str r4, [r0] - str r5, [r0, 0x4] - movs r1, 0 - str r1, [r0, 0x8] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81C7834 - - thumb_func_start sub_81C7850 -sub_81C7850: @ 81C7850 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0 - bl sub_81C763C - movs r1, 0 - str r1, [r0, 0x8] - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C7850 - - thumb_func_start sub_81C786C -sub_81C786C: @ 81C786C - push {lr} - movs r0, 0 - bl sub_81C763C - ldr r0, [r0, 0x4] - bl _call_via_r0 - pop {r1} - bx r1 - thumb_func_end sub_81C786C - - thumb_func_start sub_81C7880 -sub_81C7880: @ 81C7880 - push {r4,lr} - movs r0, 0 - bl sub_81C763C - adds r4, r0, 0 - ldr r0, =atk47_cmd47 - movs r1, 0x4 - bl sub_81C7078 - str r0, [r4, 0xC] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C7880 - - thumb_func_start sub_81C78A0 -sub_81C78A0: @ 81C78A0 - push {r4,lr} - movs r0, 0 - bl sub_81C763C - adds r4, r0, 0 - ldr r0, =sub_81C791C - movs r1, 0x4 - bl sub_81C7078 - str r0, [r4, 0xC] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C78A0 - - thumb_func_start sub_81C78C0 -sub_81C78C0: @ 81C78C0 - push {lr} - movs r0, 0 - bl sub_81C763C - ldr r0, [r0, 0xC] - bl sub_81C70D8 - pop {r1} - bx r1 - thumb_func_end sub_81C78C0 - - thumb_func_start atk47_cmd47 -atk47_cmd47: @ 81C78D4 - push {lr} - cmp r0, 0x1 - beq _081C78EA - cmp r0, 0x1 - bgt _081C78E4 - cmp r0, 0 - beq _081C78EA - b _081C7914 -_081C78E4: - cmp r0, 0x2 - beq _081C78EE - b _081C7914 -_081C78EA: - movs r0, 0 - b _081C7916 -_081C78EE: - movs r1, 0xC0 - lsls r1, 1 - movs r0, 0 - movs r2, 0x1 - bl ChangeBgY - ldr r1, =0x00001fff - cmp r0, r1 - bhi _081C7908 - movs r0, 0x2 - b _081C7916 - .pool -_081C7908: - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - movs r2, 0 - bl ChangeBgY -_081C7914: - movs r0, 0x4 -_081C7916: - pop {r1} - bx r1 - thumb_func_end atk47_cmd47 - - thumb_func_start sub_81C791C -sub_81C791C: @ 81C791C - push {lr} - movs r1, 0xC0 - lsls r1, 1 - movs r0, 0 - movs r2, 0x2 - bl ChangeBgY - cmp r0, 0 - ble _081C7932 - movs r0, 0x2 - b _081C793E -_081C7932: - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x4 -_081C793E: - pop {r1} - bx r1 - thumb_func_end sub_81C791C - - thumb_func_start sub_81C7944 -sub_81C7944: @ 81C7944 - push {lr} - lsls r1, 1 - ldr r3, =gPlttBufferUnfaded - adds r1, r3 - lsls r2, 10 - lsrs r2, 11 - bl CpuSet - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C7944 - - thumb_func_start sub_81C795C -sub_81C795C: @ 81C795C - push {r4,lr} - adds r4, r0, 0 - b _081C7974 -_081C7962: - lsls r0, r1, 4 - movs r2, 0x80 - lsls r2, 1 - adds r1, r0, r2 - ldr r0, [r4] - movs r2, 0x20 - bl sub_81C7944 - adds r4, 0x8 -_081C7974: - ldr r0, [r4] - cmp r0, 0 - beq _081C7988 - ldrh r0, [r4, 0x4] - bl AllocObjectPalette - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xFF - bne _081C7962 -_081C7988: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C795C - - thumb_func_start sub_81C7990 -sub_81C7990: @ 81C7990 - push {lr} - sub sp, 0x4 - adds r3, r0, 0 - lsls r1, 16 - lsrs r1, 16 - mov r0, sp - strh r1, [r0] - lsls r3, 5 - ldr r0, =gPlttBufferFaded + 0x200 - adds r3, r0 - ldr r2, =0x01000010 - mov r0, sp - adds r1, r3, 0 - bl CpuSet - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C7990 - - thumb_func_start sub_81C79BC -sub_81C79BC: @ 81C79BC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - str r0, [sp] - str r1, [sp, 0x4] - mov r10, r2 - str r3, [sp, 0x8] - ldr r0, [sp, 0x2C] - cmp r0, 0 - bne _081C79E4 - ldr r2, =0x001fffff - mov r1, r10 - ands r2, r1 - ldr r0, [sp] - b _081C79F4 - .pool -_081C79E4: - ldr r2, [sp, 0x2C] - ldr r0, [sp, 0x8] - cmp r2, r0 - blt _081C7A00 - ldr r2, =0x001fffff - mov r1, r10 - ands r2, r1 - ldr r0, [sp, 0x4] -_081C79F4: - ldr r1, [sp, 0x30] - bl CpuSet - b _081C7AAE - .pool -_081C7A00: - movs r2, 0x1 - negs r2, r2 - add r10, r2 - b _081C7AA6 -_081C7A08: - ldr r1, [sp] - ldrh r0, [r1] - movs r2, 0x1F - mov r9, r2 - mov r1, r9 - ands r1, r0 - mov r9, r1 - lsls r0, 16 - lsrs r2, r0, 21 - movs r1, 0x1F - ands r1, r2 - mov r8, r1 - lsrs r7, r0, 26 - movs r2, 0x1F - ands r7, r2 - ldr r0, [sp, 0x4] - ldrh r4, [r0] - movs r0, 0x1F - ands r0, r4 - mov r1, r9 - subs r0, r1 - lsls r0, 8 - ldr r1, [sp, 0x8] - bl __divsi3 - ldr r2, [sp, 0x2C] - adds r6, r0, 0 - muls r6, r2 - asrs r6, 8 - lsls r4, 16 - lsrs r0, r4, 21 - movs r1, 0x1F - ands r0, r1 - mov r2, r8 - subs r0, r2 - lsls r0, 8 - ldr r1, [sp, 0x8] - bl __divsi3 - ldr r1, [sp, 0x2C] - adds r5, r0, 0 - muls r5, r1 - asrs r5, 8 - lsrs r4, 26 - movs r2, 0x1F - ands r4, r2 - subs r4, r7 - lsls r4, 8 - adds r0, r4, 0 - ldr r1, [sp, 0x8] - bl __divsi3 - ldr r1, [sp, 0x2C] - muls r0, r1 - asrs r0, 8 - add r6, r9 - movs r2, 0x1F - ands r6, r2 - add r5, r8 - ands r5, r2 - adds r0, r7, r0 - ands r0, r2 - lsls r0, 10 - lsls r5, 5 - orrs r0, r5 - orrs r0, r6 - ldr r1, [sp, 0x30] - strh r0, [r1] - ldr r2, [sp] - adds r2, 0x2 - str r2, [sp] - ldr r0, [sp, 0x4] - adds r0, 0x2 - str r0, [sp, 0x4] - adds r1, 0x2 - str r1, [sp, 0x30] - movs r1, 0x1 - negs r1, r1 - add r10, r1 -_081C7AA6: - movs r0, 0x1 - negs r0, r0 - cmp r10, r0 - bne _081C7A08 -_081C7AAE: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81C79BC - - thumb_func_start sub_81C7AC0 -sub_81C7AC0: @ 81C7AC0 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r0, 0 - bl sub_81C763C - cmp r4, 0x1 - beq _081C7AF0 - cmp r4, 0x1 - bgt _081C7ADA - cmp r4, 0 - beq _081C7AE4 - b _081C7B2C -_081C7ADA: - cmp r4, 0x2 - beq _081C7B04 - cmp r4, 0x3 - beq _081C7B18 - b _081C7B2C -_081C7AE4: - ldr r0, [r0, 0x14] - movs r1, 0x2 - negs r1, r1 - str r4, [sp] - movs r2, 0 - b _081C7B10 -_081C7AF0: - ldr r0, [r0, 0x14] - movs r1, 0x2 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _081C7B2C -_081C7B04: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x2 - negs r1, r1 - movs r2, 0 - str r2, [sp] -_081C7B10: - movs r3, 0x10 - bl BeginNormalPaletteFade - b _081C7B2C -_081C7B18: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x2 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_081C7B2C: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C7AC0 - - thumb_func_start sub_81C7B34 -sub_81C7B34: @ 81C7B34 - ldr r0, =gPaletteFade - ldrb r0, [r0, 0x7] - lsrs r0, 7 - bx lr - .pool - thumb_func_end sub_81C7B34 - - thumb_func_start sub_81C7B40 -sub_81C7B40: @ 81C7B40 - push {lr} - ldr r0, =0xfffefffe - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C7B40 - - thumb_func_start sub_81C7B54 -sub_81C7B54: @ 81C7B54 - push {r4,r5,lr} - adds r5, r0, 0 - cmp r1, 0 - ble _081C7B6C - adds r4, r1, 0 -_081C7B5E: - adds r0, r5, 0 - adds r5, 0x4 - bl InitBgFromTemplate - subs r4, 0x1 - cmp r4, 0 - bne _081C7B5E -_081C7B6C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81C7B54 - - thumb_func_start sub_81C7B74 -sub_81C7B74: @ 81C7B74 - push {r4,lr} - movs r0, 0 - bl sub_81C763C - adds r4, r0, 0 - ldr r0, =gUnknown_0861FA08 - bl InitWindows - movs r0, 0 - str r0, [r4, 0x10] - bl sub_81C7BF8 - ldrb r0, [r4, 0x10] - bl PutWindowTilemap - ldrb r0, [r4, 0x10] - movs r1, 0x3 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C7B74 - - thumb_func_start sub_81C7BA4 -sub_81C7BA4: @ 81C7BA4 - push {r4,r5,lr} - sub sp, 0xC - adds r4, r0, 0 - movs r0, 0 - bl sub_81C763C - adds r5, r0, 0 - ldr r0, [r5, 0x10] - bl sub_81C7BF8 - ldrb r0, [r5, 0x10] - ldr r1, =gUnknown_0861FA48 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - ldr r1, =gUnknown_0861FA18 - lsls r4, 2 - adds r4, r1 - ldr r1, [r4] - str r1, [sp, 0x8] - movs r1, 0x1 - movs r2, 0 - movs r3, 0x1 - bl box_print - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C7BA4 - - thumb_func_start sub_81C7BE8 -sub_81C7BE8: @ 81C7BE8 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_81C7BE8 - - thumb_func_start sub_81C7BF8 -sub_81C7BF8: @ 81C7BF8 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0x44 - bl FillWindowPixelBuffer - movs r0, 0x80 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r1, 0x55 - movs r2, 0 - movs r3, 0 - bl FillWindowPixelRect - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C7BF8 - - thumb_func_start sub_81C7C28 -sub_81C7C28: @ 81C7C28 - push {r4-r6,lr} - movs r0, 0 - bl sub_81C763C - adds r6, r0, 0 - movs r5, 0 - ldr r4, =gUnknown_0861FA4C -_081C7C36: - adds r0, r4, 0 - bl LoadCompressedObjectPic - adds r4, 0x8 - adds r5, 0x1 - cmp r5, 0 - beq _081C7C36 - ldr r0, =gUnknown_0861FA54 - bl sub_81C795C - movs r0, 0 - bl IndexOfObjectPaletteTag - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x80 - lsls r1, 9 - lsls r1, r0 - movs r0, 0x2 - negs r0, r0 - bics r0, r1 - str r0, [r6, 0x14] - ldr r0, =gUnknown_0861FB04 - movs r1, 0xDC - movs r2, 0xC - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gUnknown_02020630 - adds r1, r0 - str r1, [r6, 0x18] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C7C28 - - thumb_func_start sub_81C7C94 -sub_81C7C94: @ 81C7C94 - push {lr} - movs r0, 0 - bl sub_81C763C - ldr r0, [r0, 0x18] - bl RemoveObjectAndFreeTiles - movs r0, 0 - bl FreeObjectTilesByTag - movs r0, 0 - bl FreeObjectPaletteByTag - pop {r0} - bx r0 - thumb_func_end sub_81C7C94 - - thumb_func_start sub_81C7CB4 -sub_81C7CB4: @ 81C7CB4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0 - bl GetBgY - lsrs r0, 8 - negs r0, r0 - strh r0, [r4, 0x26] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C7CB4 - - thumb_func_start sub_81C7CCC -sub_81C7CCC: @ 81C7CCC - push {lr} - movs r0, 0 - bl sub_81C763C - ldr r0, [r0, 0x18] - ldr r1, =DummyObjectCallback - str r1, [r0, 0x1C] - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C7CCC - - thumb_func_start sub_81C7CE4 -sub_81C7CE4: @ 81C7CE4 - push {r4,lr} - movs r0, 0 - bl sub_81C763C - ldr r2, [r0, 0x18] - movs r4, 0 - movs r1, 0xDC - strh r1, [r2, 0x20] - ldr r2, [r0, 0x18] - movs r1, 0xC - strh r1, [r2, 0x22] - ldr r2, [r0, 0x18] - ldr r1, =sub_81C7CB4 - str r1, [r2, 0x1C] - adds r2, 0x3E - ldrb r3, [r2] - movs r1, 0x5 - negs r1, r1 - ands r1, r3 - strb r1, [r2] - ldr r3, [r0, 0x18] - ldrb r2, [r3, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - strb r1, [r3, 0x5] - ldr r0, [r0, 0x18] - adds r0, 0x43 - strb r4, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C7CE4 - - thumb_func_start sub_81C7D28 -sub_81C7D28: @ 81C7D28 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r0, 0 - bl sub_81C763C - adds r6, r0, 0 - ldr r0, =gUnknown_0861FA64 - bl LoadCompressedObjectPic - movs r0, 0x1 - bl AllocObjectPalette - movs r0, 0x2 - bl AllocObjectPalette - movs r5, 0 - ldr r0, =gUnknown_02020630 - mov r8, r0 - movs r7, 0x4 -_081C7D50: - ldr r0, =gUnknown_0861FB2C - movs r1, 0 - movs r2, 0 - movs r3, 0x1 - bl AddObjectToFront - lsls r0, 24 - lsrs r1, r0, 24 - lsls r4, r5, 2 - adds r2, r6, 0 - adds r2, 0x1C - adds r2, r4 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - str r0, [r2] - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r7 - strb r1, [r0] - ldr r1, [r2] - lsls r0, r5, 6 - strh r0, [r1, 0x24] - ldr r0, =gUnknown_0861FB44 - movs r1, 0 - movs r2, 0 - movs r3, 0x2 - bl AddObjectToFront - lsls r0, 24 - lsrs r1, r0, 24 - adds r2, r6, 0 - adds r2, 0x24 - adds r2, r4 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - str r0, [r2] - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r7 - strb r1, [r0] - ldr r1, [r2] - lsls r0, r5, 5 - strh r0, [r1, 0x24] - ldr r1, [r2] - movs r0, 0x12 - strh r0, [r1, 0x26] - ldr r3, [r2] - ldrh r2, [r3, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - lsls r0, r5, 3 - adds r0, 0x40 - adds r1, r0 - ldr r4, =0x000003ff - adds r0, r4, 0 - ands r1, r0 - ldr r4, =0xfffffc00 - adds r0, r4, 0 - ands r2, r0 - orrs r2, r1 - strh r2, [r3, 0x4] - adds r5, 0x1 - cmp r5, 0x1 - ble _081C7D50 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C7D28 - - thumb_func_start sub_81C7DFC -sub_81C7DFC: @ 81C7DFC - push {lr} - cmp r0, 0x5 - bhi _081C7E08 - bl sub_81C7E58 - b _081C7E0E -_081C7E08: - subs r0, 0x6 - bl sub_81C7F24 -_081C7E0E: - pop {r0} - bx r0 - thumb_func_end sub_81C7DFC - - thumb_func_start sub_81C7E14 -sub_81C7E14: @ 81C7E14 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0 - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x4 - bne _081C7E30 - movs r0, 0x2 - bl GetObjectTileRangeStartByTag - ldr r3, [r5, 0x20] - adds r0, 0x20 - b _081C7E3A -_081C7E30: - movs r0, 0x2 - bl GetObjectTileRangeStartByTag - ldr r3, [r5, 0x20] - adds r0, 0x40 -_081C7E3A: - ldr r2, =0x000003ff - adds r1, r2, 0 - ands r0, r1 - ldrh r2, [r3, 0x4] - ldr r1, =0xfffffc00 - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x4] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C7E14 - - thumb_func_start sub_81C7E58 -sub_81C7E58: @ 81C7E58 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r9, r0 - cmp r0, 0x5 - bhi _081C7F16 - movs r0, 0 - bl sub_81C763C - adds r7, r0, 0 - ldr r0, =gUnknown_0861FA6C - mov r1, r9 - lsls r6, r1, 3 - adds r6, r0 - ldrh r4, [r6, 0x6] - ldr r2, [r6] - mov r8, r2 - mov r0, r8 - bl sub_8034974 - adds r5, r0, 0 - lsls r4, 5 - ldr r0, =gUnknown_08DC7F00 - adds r4, r0 - movs r0, 0x1 - bl IndexOfObjectPaletteTag - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 4 - movs r0, 0x80 - lsls r0, 17 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette - ldr r4, =0x0201c000 - mov r0, r8 - adds r1, r4, 0 - bl LZ77UnCompWram - movs r0, 0x2 - bl GetObjectTileRangeStartByTag - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 11 - ldr r2, =0x06010000 - adds r1, r2 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - adds r2, r5, 0 - movs r3, 0x1 - bl RequestDma3Copy - movs r0, 0x2 - bl GetObjectTileRangeStartByTag - ldr r3, [r7, 0x20] - ldrh r1, [r6, 0x4] - adds r0, r1 - ldr r2, =0x000003ff - adds r1, r2, 0 - ands r0, r1 - ldrh r2, [r3, 0x4] - ldr r1, =0xfffffc00 - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x4] - mov r0, r9 - subs r0, 0x4 - cmp r0, 0x1 - bhi _081C7F10 - ldr r1, [r7, 0x20] - movs r0, 0x38 - b _081C7F14 - .pool -_081C7F10: - ldr r1, [r7, 0x20] - movs r0, 0x40 -_081C7F14: - strh r0, [r1, 0x24] -_081C7F16: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81C7E58 - - thumb_func_start sub_81C7F24 -sub_81C7F24: @ 81C7F24 - push {r4-r6,lr} - cmp r0, 0x6 - bhi _081C7F8A - ldr r2, =gUnknown_0861FA9C - lsls r1, r0, 3 - adds r0, r2, 0x4 - adds r0, r1, r0 - ldr r4, [r0] - adds r1, r2 - ldr r6, [r1] - adds r0, r6, 0 - bl sub_8034974 - adds r5, r0, 0 - lsls r4, 5 - ldr r0, =gUnknown_08DC7F00 - adds r4, r0 - movs r0, 0x2 - bl IndexOfObjectPaletteTag - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 4 - movs r0, 0x80 - lsls r0, 17 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette - ldr r4, =0x0201d000 - adds r0, r6, 0 - adds r1, r4, 0 - bl LZ77UnCompWram - movs r0, 0x2 - bl GetObjectTileRangeStartByTag - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 11 - ldr r0, =0x06010800 - adds r1, r0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - adds r2, r5, 0 - movs r3, 0x1 - bl RequestDma3Copy -_081C7F8A: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C7F24 - - thumb_func_start sub_81C7FA0 -sub_81C7FA0: @ 81C7FA0 - push {lr} - adds r3, r0, 0 - movs r0, 0x10 - cmp r1, 0 - bne _081C7FAC - movs r0, 0x30 -_081C7FAC: - cmp r3, 0x5 - bhi _081C7FB8 - adds r1, r2, 0 - bl sub_81C803C - b _081C7FBE -_081C7FB8: - adds r1, r2, 0 - bl sub_81C8088 -_081C7FBE: - pop {r0} - bx r0 - thumb_func_end sub_81C7FA0 - - thumb_func_start sub_81C7FC4 -sub_81C7FC4: @ 81C7FC4 - push {lr} - cmp r0, 0x5 - bhi _081C7FD2 - adds r0, r1, 0 - bl sub_81C80D4 - b _081C7FD8 -_081C7FD2: - adds r0, r1, 0 - bl sub_81C8110 -_081C7FD8: - pop {r0} - bx r0 - thumb_func_end sub_81C7FC4 - - thumb_func_start sub_81C7FDC -sub_81C7FDC: @ 81C7FDC - push {r4,lr} - movs r0, 0 - bl sub_81C763C - movs r4, 0x4 - adds r2, r0, 0 - adds r2, 0x1C - movs r3, 0x1 -_081C7FEC: - ldr r1, [r2] - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r4 - strb r0, [r1] - ldr r1, [r2, 0x8] - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r4 - strb r0, [r1] - adds r2, 0x4 - subs r3, 0x1 - cmp r3, 0 - bge _081C7FEC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C7FDC - - thumb_func_start sub_81C8010 -sub_81C8010: @ 81C8010 - push {lr} - movs r0, 0 - bl sub_81C763C - adds r1, r0, 0 - ldr r0, [r1, 0x1C] - ldr r2, [r0, 0x1C] - ldr r0, =DummyObjectCallback - cmp r2, r0 - bne _081C8034 - ldr r0, [r1, 0x24] - ldr r0, [r0, 0x1C] - cmp r0, r2 - bne _081C8034 - movs r0, 0 - b _081C8036 - .pool -_081C8034: - movs r0, 0x1 -_081C8036: - pop {r1} - bx r1 - thumb_func_end sub_81C8010 - - thumb_func_start sub_81C803C -sub_81C803C: @ 81C803C - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r4, r1, 0 - movs r0, 0 - bl sub_81C763C - cmp r4, 0 - bne _081C8058 - movs r7, 0x60 - negs r7, r7 - movs r6, 0x20 - b _081C805E -_081C8058: - movs r7, 0x80 - lsls r7, 1 - movs r6, 0xA0 -_081C805E: - adds r4, r0, 0 - adds r4, 0x1C - movs r5, 0x1 -_081C8064: - ldr r0, [r4] - mov r1, r8 - strh r1, [r0, 0x22] - ldm r4!, {r0} - adds r1, r7, 0 - adds r2, r6, 0 - movs r3, 0xC - bl sub_81C814C - subs r5, 0x1 - cmp r5, 0 - bge _081C8064 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81C803C - - thumb_func_start sub_81C8088 -sub_81C8088: @ 81C8088 - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r4, r1, 0 - movs r0, 0 - bl sub_81C763C - cmp r4, 0 - bne _081C80A4 - movs r7, 0x60 - negs r7, r7 - movs r6, 0x10 - b _081C80AA -_081C80A4: - movs r7, 0x80 - lsls r7, 1 - movs r6, 0xC0 -_081C80AA: - adds r4, r0, 0 - adds r4, 0x24 - movs r5, 0x1 -_081C80B0: - ldr r0, [r4] - mov r1, r8 - strh r1, [r0, 0x22] - ldm r4!, {r0} - adds r1, r7, 0 - adds r2, r6, 0 - movs r3, 0xC - bl sub_81C814C - subs r5, 0x1 - cmp r5, 0 - bge _081C80B0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81C8088 - - thumb_func_start sub_81C80D4 -sub_81C80D4: @ 81C80D4 - push {r4-r7,lr} - adds r4, r0, 0 - movs r0, 0 - bl sub_81C763C - cmp r4, 0 - bne _081C80EA - movs r6, 0x20 - movs r5, 0x60 - negs r5, r5 - b _081C80F0 -_081C80EA: - movs r6, 0xC0 - movs r5, 0x80 - lsls r5, 1 -_081C80F0: - adds r7, r0, 0 - adds r7, 0x1C - movs r4, 0x1 -_081C80F6: - ldm r7!, {r0} - adds r1, r6, 0 - adds r2, r5, 0 - movs r3, 0xC - bl sub_81C814C - subs r4, 0x1 - cmp r4, 0 - bge _081C80F6 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81C80D4 - - thumb_func_start sub_81C8110 -sub_81C8110: @ 81C8110 - push {r4-r7,lr} - adds r4, r0, 0 - movs r0, 0 - bl sub_81C763C - cmp r4, 0 - bne _081C8126 - movs r6, 0x10 - movs r5, 0x60 - negs r5, r5 - b _081C812C -_081C8126: - movs r6, 0xC0 - movs r5, 0x80 - lsls r5, 1 -_081C812C: - adds r7, r0, 0 - adds r7, 0x24 - movs r4, 0x1 -_081C8132: - ldm r7!, {r0} - adds r1, r6, 0 - adds r2, r5, 0 - movs r3, 0xC - bl sub_81C814C - subs r4, 0x1 - cmp r4, 0 - bge _081C8132 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81C8110 - - thumb_func_start sub_81C814C -sub_81C814C: @ 81C814C - push {r4-r6,lr} - adds r4, r0, 0 - adds r0, r1, 0 - adds r6, r2, 0 - adds r5, r3, 0 - strh r0, [r4, 0x20] - lsls r1, r0, 4 - strh r1, [r4, 0x2E] - subs r0, r6, r0 - lsls r0, 4 - adds r1, r5, 0 - bl __divsi3 - strh r0, [r4, 0x30] - strh r5, [r4, 0x32] - strh r6, [r4, 0x3C] - ldr r0, =sub_81C817C - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C814C - - thumb_func_start sub_81C817C -sub_81C817C: @ 81C817C - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x32] - movs r3, 0x32 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _081C81C4 - subs r0, r1, 0x1 - strh r0, [r2, 0x32] - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x2E] - adds r0, r1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 20 - strh r0, [r2, 0x20] - adds r0, 0x10 - lsls r0, 16 - movs r1, 0x88 - lsls r1, 17 - cmp r0, r1 - bls _081C81B6 - adds r0, r2, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _081C81CC -_081C81B6: - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - b _081C81CC -_081C81C4: - ldrh r0, [r2, 0x3C] - strh r0, [r2, 0x20] - ldr r0, =DummyObjectCallback - str r0, [r2, 0x1C] -_081C81CC: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C817C - - thumb_func_start sub_81C81D4 -sub_81C81D4: @ 81C81D4 - push {r4-r7,lr} - adds r6, r0, 0 - adds r5, r1, 0 - adds r7, r2, 0 - ldr r1, =0x000008a4 - movs r0, 0x11 - bl sub_81C761C - adds r4, r0, 0 - cmp r4, 0 - beq _081C821C - ldr r1, =0x00000888 - adds r0, r4, r1 - adds r1, r5, 0 - bl sub_81C9160 - adds r0, r4, 0 - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r7, 0 - bl sub_81C91AC - cmp r0, 0 - beq _081C821C - ldr r0, =sub_81C8254 - movs r1, 0x6 - bl sub_81C7078 - movs r0, 0x1 - b _081C821E - .pool -_081C821C: - movs r0, 0 -_081C821E: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81C81D4 - - thumb_func_start sub_81C8224 -sub_81C8224: @ 81C8224 - push {lr} - ldr r0, =sub_81C8254 - bl sub_81C7124 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C8224 - - thumb_func_start sub_81C8234 -sub_81C8234: @ 81C8234 - push {r4,lr} - movs r0, 0x11 - bl sub_81C763C - adds r4, r0, 0 - bl sub_81C8FE0 - ldrb r0, [r4, 0x8] - bl RemoveWindow - movs r0, 0x11 - bl sub_81C7650 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C8234 - - thumb_func_start sub_81C8254 -sub_81C8254: @ 81C8254 - push {r4,lr} - adds r4, r0, 0 - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _081C82C0 - movs r0, 0x11 - bl sub_81C763C - adds r2, r0, 0 - cmp r4, 0x4 - bhi _081C82D6 - lsls r0, r4, 2 - ldr r1, =_081C827C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C827C: - .4byte _081C8290 - .4byte _081C829A - .4byte _081C82A4 - .4byte _081C82B8 - .4byte _081C82CC -_081C8290: - adds r0, r2, 0 - bl sub_81C82E4 - movs r0, 0 - b _081C82D8 -_081C829A: - adds r0, r2, 0 - bl sub_81C835C - movs r0, 0 - b _081C82D8 -_081C82A4: - ldr r1, =0x00000888 - adds r0, r2, r1 - adds r1, r2, 0 - bl sub_81C837C - movs r0, 0 - b _081C82D8 - .pool -_081C82B8: - bl sub_81C83E0 - cmp r0, 0 - beq _081C82C4 -_081C82C0: - movs r0, 0x2 - b _081C82D8 -_081C82C4: - bl sub_81C8ED0 - movs r0, 0x1 - b _081C82D8 -_081C82CC: - ldr r1, =0x00000888 - adds r0, r2, r1 - adds r1, r2, 0 - bl sub_81C8EF8 -_081C82D6: - movs r0, 0x4 -_081C82D8: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C8254 - - thumb_func_start sub_81C82E4 -sub_81C82E4: @ 81C82E4 - push {r4,r5,lr} - sub sp, 0x8 - adds r5, r0, 0 - ldrb r4, [r5, 0x1] - lsls r4, 12 - ldrh r0, [r5, 0x6] - orrs r4, r0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r5] - ldrh r2, [r5, 0x6] - movs r1, 0x11 - movs r3, 0x1 - bl sub_8199DF0 - ldrb r0, [r5] - ldrh r2, [r5, 0x6] - adds r2, 0x1 - movs r1, 0x44 - movs r3, 0x1 - bl sub_8199DF0 - ldrb r0, [r5] - adds r1, r5, 0 - adds r1, 0x88 - bl SetBgTilemapBuffer - ldrb r0, [r5] - movs r1, 0x20 - str r1, [sp] - str r1, [sp, 0x4] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - ldrb r0, [r5] - movs r1, 0 - movs r2, 0 - bl ChangeBgY - ldrb r0, [r5] - movs r1, 0 - movs r2, 0 - bl ChangeBgX - ldrb r0, [r5] - ldrb r1, [r5, 0x3] - lsls r1, 11 - movs r2, 0x2 - bl ChangeBgY - ldrb r0, [r5] - bl CopyBgTilemapBufferToVram - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81C82E4 - - thumb_func_start sub_81C835C -sub_81C835C: @ 81C835C - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0x8] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4, 0x8] - bl PutWindowTilemap - ldrb r0, [r4, 0x8] - movs r1, 0x1 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C835C - - thumb_func_start sub_81C837C -sub_81C837C: @ 81C837C - push {r4,r5,lr} - sub sp, 0x8 - adds r3, r0, 0 - adds r5, r1, 0 - ldrh r0, [r3, 0x2] - ldrh r4, [r3] - subs r2, r0, r4 - ldrh r0, [r3, 0x8] - cmp r2, r0 - ble _081C8392 - adds r2, r0, 0 -_081C8392: - ldr r0, [r3, 0x10] - ldr r3, [r3, 0xC] - movs r1, 0 - str r1, [sp] - str r5, [sp, 0x4] - adds r1, r4, 0 - bl sub_81C83AC - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81C837C - - thumb_func_start sub_81C83AC -sub_81C83AC: @ 81C83AC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, [sp, 0x10] - cmp r2, 0 - beq _081C83D6 - adds r0, r5, 0 - muls r0, r3 - adds r0, r4, r0 - str r0, [r1, 0x1C] - str r3, [r1, 0x18] - movs r0, 0 - strh r0, [r1, 0xC] - strh r2, [r1, 0xE] - str r5, [r1, 0x14] - ldr r0, [sp, 0xC] - str r0, [r1, 0x10] - ldr r0, =sub_81C83F0 - movs r1, 0x5 - bl sub_81C7078 -_081C83D6: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C83AC - - thumb_func_start sub_81C83E0 -sub_81C83E0: @ 81C83E0 - push {lr} - ldr r0, =sub_81C83F0 - bl sub_81C7124 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C83E0 - - thumb_func_start sub_81C83F0 -sub_81C83F0: @ 81C83F0 - push {r4-r7,lr} - sub sp, 0xC - adds r6, r0, 0 - movs r0, 0x11 - bl sub_81C763C - adds r4, r0, 0 - cmp r6, 0 - beq _081C8408 - cmp r6, 0x1 - beq _081C848C - b _081C849A -_081C8408: - ldrh r0, [r4, 0xA] - ldrh r1, [r4, 0xC] - adds r0, r1 - ldr r1, [r4, 0x10] - adds r5, r0, r1 - movs r0, 0xF - ands r5, r0 - ldr r0, [r4, 0x1C] - adds r7, r4, 0 - adds r7, 0x48 - ldr r2, [r4, 0x34] - adds r1, r7, 0 - bl _call_via_r2 - ldr r3, [r4, 0x38] - cmp r3, 0 - beq _081C8434 - ldrh r0, [r4, 0x8] - ldr r1, [r4, 0x14] - adds r2, r5, 0 - bl _call_via_r3 -_081C8434: - ldrb r0, [r4, 0x8] - ldrb r1, [r4, 0x5] - lsls r2, r5, 4 - movs r3, 0x1 - orrs r2, r3 - str r2, [sp] - movs r2, 0xFF - str r2, [sp, 0x4] - str r6, [sp, 0x8] - adds r2, r7, 0 - movs r3, 0x8 - bl Print - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r4, 0xE] - cmp r0, r1 - bcc _081C847A - ldr r0, [r4, 0x38] - cmp r0, 0 - beq _081C846E - ldrb r0, [r4, 0x8] - movs r1, 0x3 - bl CopyWindowToVram - b _081C8476 -_081C846E: - ldrb r0, [r4, 0x8] - movs r1, 0x2 - bl CopyWindowToVram -_081C8476: - movs r0, 0 - b _081C849C -_081C847A: - ldr r0, [r4, 0x1C] - ldr r1, [r4, 0x18] - adds r0, r1 - str r0, [r4, 0x1C] - ldr r0, [r4, 0x14] - adds r0, 0x1 - str r0, [r4, 0x14] - movs r0, 0x3 - b _081C849C -_081C848C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081C849A - movs r0, 0x2 - b _081C849C -_081C849A: - movs r0, 0x4 -_081C849C: - add sp, 0xC - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81C83F0 - - thumb_func_start sub_81C84A4 -sub_81C84A4: @ 81C84A4 - push {lr} - movs r0, 0x11 - bl sub_81C763C - ldr r1, =0x00000888 - adds r0, r1 - ldrh r1, [r0] - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C84A4 - - thumb_func_start sub_81C84C0 -sub_81C84C0: @ 81C84C0 - push {lr} - movs r0, 0x11 - bl sub_81C763C - ldr r1, =0x00000888 - adds r0, r1 - movs r3, 0 - ldrh r1, [r0] - ldrh r2, [r0, 0x8] - adds r1, r2 - ldrh r0, [r0, 0x2] - cmp r1, r0 - bge _081C84DC - movs r3, 0x1 -_081C84DC: - adds r0, r3, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C84C0 - - thumb_func_start sub_81C84E8 -sub_81C84E8: @ 81C84E8 - push {r4-r7,lr} - sub sp, 0x8 - adds r6, r0, 0 - adds r4, r1, 0 - movs r0, 0x11 - bl sub_81C763C - adds r7, r0, 0 - ldr r0, =0x00000888 - adds r5, r7, r0 - cmp r6, 0 - bge _081C8524 - ldrh r1, [r5] - adds r0, r1, r6 - cmp r0, 0 - bge _081C850A - negs r6, r1 -_081C850A: - cmp r4, 0 - beq _081C854E - ldr r0, [r5, 0x10] - adds r1, r6 - negs r2, r6 - ldr r3, [r5, 0xC] - str r6, [sp] - str r7, [sp, 0x4] - bl sub_81C83AC - b _081C854E - .pool -_081C8524: - cmp r4, 0 - beq _081C854E - ldr r2, =gUnknown_0203CF44 - ldrh r1, [r5] - ldrh r0, [r5, 0x8] - adds r4, r1, r0 - str r4, [r2] - adds r0, r4, r6 - ldrh r1, [r5, 0x2] - cmp r0, r1 - blt _081C853C - subs r6, r1, r4 -_081C853C: - ldr r0, [r5, 0x10] - ldr r3, [r5, 0xC] - ldrh r1, [r5, 0x8] - str r1, [sp] - str r7, [sp, 0x4] - adds r1, r4, 0 - adds r2, r6, 0 - bl sub_81C83AC -_081C854E: - adds r0, r6, 0 - adds r1, r7, 0 - bl sub_81C8568 - ldrh r0, [r5] - adds r0, r6 - strh r0, [r5] - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C84E8 - - thumb_func_start sub_81C8568 -sub_81C8568: @ 81C8568 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - ldrb r0, [r4] - bl GetBgY - str r0, [r4, 0x20] - lsls r1, r5, 12 - adds r0, r1 - str r0, [r4, 0x24] - cmp r5, 0 - ble _081C8584 - movs r0, 0x1 - b _081C8586 -_081C8584: - movs r0, 0x2 -_081C8586: - str r0, [r4, 0x30] - str r5, [r4, 0x2C] - ldr r0, =sub_81C85A0 - movs r1, 0x6 - bl sub_81C7078 - str r0, [r4, 0x28] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C8568 - - thumb_func_start sub_81C85A0 -sub_81C85A0: @ 81C85A0 - push {r4-r6,lr} - adds r5, r0, 0 - movs r0, 0x11 - bl sub_81C763C - adds r4, r0, 0 - cmp r5, 0 - beq _081C85B8 - cmp r5, 0x1 - beq _081C85C4 - movs r0, 0x4 - b _081C862A -_081C85B8: - bl sub_81C83E0 - cmp r0, 0 - bne _081C8628 - movs r0, 0x1 - b _081C862A -_081C85C4: - movs r6, 0 - ldrb r0, [r4] - bl GetBgY - adds r5, r0, 0 - ldrb r0, [r4] - movs r1, 0x80 - lsls r1, 5 - ldr r2, [r4, 0x30] - lsls r2, 24 - lsrs r2, 24 - bl ChangeBgY - adds r1, r0, 0 - ldr r0, [r4, 0x30] - cmp r0, 0x2 - bne _081C85F8 - ldr r2, [r4, 0x24] - cmp r5, r2 - bgt _081C85F2 - ldr r0, [r4, 0x20] - cmp r5, r0 - bgt _081C860A -_081C85F2: - cmp r1, r2 - bgt _081C860A - b _081C860E -_081C85F8: - ldr r2, [r4, 0x24] - cmp r5, r2 - blt _081C8604 - ldr r0, [r4, 0x20] - cmp r5, r0 - blt _081C860A -_081C8604: - cmp r1, r2 - blt _081C860A - movs r6, 0x1 -_081C860A: - cmp r6, 0 - beq _081C8628 -_081C860E: - ldr r1, [r4, 0x2C] - ldrh r0, [r4, 0xA] - adds r0, r1 - movs r1, 0xF - ands r0, r1 - strh r0, [r4, 0xA] - ldrb r0, [r4] - adds r1, r2, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x4 - b _081C862A -_081C8628: - movs r0, 0x2 -_081C862A: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81C85A0 - - thumb_func_start sub_81C8630 -sub_81C8630: @ 81C8630 - push {lr} - movs r0, 0x11 - bl sub_81C763C - ldr r0, [r0, 0x28] - bl sub_81C70D8 - pop {r1} - bx r1 - thumb_func_end sub_81C8630 - - thumb_func_start sub_81C8644 -sub_81C8644: @ 81C8644 - push {lr} - movs r0, 0x11 - bl sub_81C763C - ldr r1, =0x00000888 - adds r0, r1 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C8644 - - thumb_func_start sub_81C8658 -sub_81C8658: @ 81C8658 - push {lr} - bl sub_81C8644 - adds r1, r0, 0 - ldrh r0, [r1, 0x6] - cmp r0, 0 - beq _081C866E - subs r0, 0x1 - strh r0, [r1, 0x6] - movs r0, 0x1 - b _081C8686 -_081C866E: - bl sub_81C84A4 - cmp r0, 0 - bne _081C867A - movs r0, 0 - b _081C8686 -_081C867A: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x1 - bl sub_81C84E8 - movs r0, 0x2 -_081C8686: - pop {r1} - bx r1 - thumb_func_end sub_81C8658 - - thumb_func_start sub_81C868C -sub_81C868C: @ 81C868C - push {lr} - bl sub_81C8644 - adds r2, r0, 0 - ldrh r1, [r2] - ldrh r3, [r2, 0x6] - adds r1, r3 - ldrh r0, [r2, 0x2] - subs r0, 0x1 - cmp r1, r0 - bge _081C86BA - ldrh r0, [r2, 0x8] - subs r0, 0x1 - cmp r3, r0 - bge _081C86B2 - adds r0, r3, 0x1 - strh r0, [r2, 0x6] - movs r0, 0x1 - b _081C86C8 -_081C86B2: - bl sub_81C84C0 - cmp r0, 0 - bne _081C86BE -_081C86BA: - movs r0, 0 - b _081C86C8 -_081C86BE: - movs r0, 0x1 - movs r1, 0x1 - bl sub_81C84E8 - movs r0, 0x2 -_081C86C8: - pop {r1} - bx r1 - thumb_func_end sub_81C868C - - thumb_func_start sub_81C86CC -sub_81C86CC: @ 81C86CC - push {r4,lr} - bl sub_81C8644 - adds r4, r0, 0 - bl sub_81C84A4 - adds r1, r0, 0 - cmp r1, 0 - beq _081C86F8 - ldrh r0, [r4] - ldrh r1, [r4, 0x8] - cmp r0, r1 - bcc _081C86EA - ldrh r0, [r4, 0x8] - b _081C86EC -_081C86EA: - ldrh r0, [r4] -_081C86EC: - negs r0, r0 - movs r1, 0x1 - bl sub_81C84E8 - movs r0, 0x2 - b _081C8706 -_081C86F8: - ldrh r0, [r4, 0x6] - cmp r0, 0 - bne _081C8702 - movs r0, 0 - b _081C8706 -_081C8702: - strh r1, [r4, 0x6] - movs r0, 0x1 -_081C8706: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81C86CC - - thumb_func_start sub_81C870C -sub_81C870C: @ 81C870C - push {r4,lr} - bl sub_81C8644 - adds r4, r0, 0 - bl sub_81C84C0 - cmp r0, 0 - beq _081C8736 - ldrh r0, [r4] - ldrh r3, [r4, 0x8] - adds r2, r0, r3 - ldrh r1, [r4, 0x4] - subs r0, r1, r0 - cmp r2, r1 - bgt _081C872C - adds r0, r3, 0 -_081C872C: - movs r1, 0x1 - bl sub_81C84E8 - movs r0, 0x2 - b _081C8756 -_081C8736: - ldrh r0, [r4, 0x2] - ldrh r1, [r4, 0x8] - cmp r0, r1 - bcc _081C8744 - ldrh r1, [r4, 0x6] - ldrh r0, [r4, 0x8] - b _081C8748 -_081C8744: - ldrh r1, [r4, 0x6] - ldrh r0, [r4, 0x2] -_081C8748: - subs r0, 0x1 - cmp r1, r0 - bge _081C8754 - strh r0, [r4, 0x6] - movs r0, 0x1 - b _081C8756 -_081C8754: - movs r0, 0 -_081C8756: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81C870C - - thumb_func_start sub_81C875C -sub_81C875C: @ 81C875C - push {lr} - bl sub_81C8644 - adds r1, r0, 0 - ldrh r0, [r1] - ldrh r1, [r1, 0x6] - adds r0, r1 - pop {r1} - bx r1 - thumb_func_end sub_81C875C - - thumb_func_start sub_81C8770 -sub_81C8770: @ 81C8770 - push {lr} - bl sub_81C8644 - ldrh r0, [r0] - pop {r1} - bx r1 - thumb_func_end sub_81C8770 - - thumb_func_start sub_81C877C -sub_81C877C: @ 81C877C - push {r4,lr} - movs r0, 0x11 - bl sub_81C763C - adds r4, r0, 0 - ldr r0, =0x0000089c - adds r1, r4, r0 - movs r0, 0 - str r0, [r1] - ldr r0, =sub_81C8870 - movs r1, 0x6 - bl sub_81C7078 - movs r1, 0x8A - lsls r1, 4 - adds r4, r1 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C877C - - thumb_func_start sub_81C87AC -sub_81C87AC: @ 81C87AC - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0x11 - bl sub_81C763C - adds r5, r0, 0 - ldr r0, =0x00000888 - adds r1, r5, r0 - ldrh r0, [r1] - adds r0, r4 - movs r2, 0 - strh r0, [r1] - ldr r1, =0x0000089c - adds r0, r5, r1 - str r2, [r0] - ldr r0, =sub_81C8958 - movs r1, 0x6 - bl sub_81C7078 - movs r1, 0x8A - lsls r1, 4 - adds r5, r1 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C87AC - - thumb_func_start sub_81C87F0 -sub_81C87F0: @ 81C87F0 - push {r4,lr} - movs r0, 0x11 - bl sub_81C763C - adds r4, r0, 0 - ldr r0, =0x0000089c - adds r1, r4, r0 - movs r0, 0 - str r0, [r1] - ldr r0, =sub_81C8A28 - movs r1, 0x6 - bl sub_81C7078 - movs r1, 0x8A - lsls r1, 4 - adds r4, r1 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C87F0 - - thumb_func_start sub_81C8820 -sub_81C8820: @ 81C8820 - push {lr} - movs r0, 0x11 - bl sub_81C763C - movs r1, 0x8A - lsls r1, 4 - adds r0, r1 - ldr r0, [r0] - bl sub_81C70D8 - pop {r1} - bx r1 - thumb_func_end sub_81C8820 - - thumb_func_start sub_81C8838 -sub_81C8838: @ 81C8838 - push {r4,lr} - movs r0, 0x11 - bl sub_81C763C - adds r4, r0, 0 - ldr r0, =0x00000888 - adds r2, r4, r0 - ldrh r0, [r4, 0x8] - ldrh r1, [r2] - ldrh r3, [r2, 0x6] - adds r1, r3 - ldrh r2, [r4, 0xA] - adds r2, r3 - movs r3, 0xF - ands r2, r3 - ldr r3, [r4, 0x38] - bl _call_via_r3 - ldrb r0, [r4, 0x8] - movs r1, 0x1 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C8838 - - thumb_func_start sub_81C8870 -sub_81C8870: @ 81C8870 - push {r4,r5,lr} - adds r5, r0, 0 - movs r0, 0x11 - bl sub_81C763C - adds r4, r0, 0 - cmp r5, 0x4 - bhi _081C894C - lsls r0, r5, 2 - ldr r1, =_081C8890 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C8890: - .4byte _081C88A4 - .4byte _081C88AC - .4byte _081C88D8 - .4byte _081C8918 - .4byte _081C8938 -_081C88A4: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81C9008 -_081C88AC: - ldr r0, =0x0000089c - adds r5, r4, r0 - ldr r1, =0x0000088e - adds r0, r4, r1 - ldr r1, [r5] - ldrh r0, [r0] - cmp r1, r0 - beq _081C88C4 - adds r0, r4, 0 - movs r2, 0x1 - bl sub_81C8B70 -_081C88C4: - ldr r0, [r5] - adds r0, 0x1 - str r0, [r5] -_081C88CA: - movs r0, 0 - b _081C894E - .pool -_081C88D8: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _081C8942 - ldr r2, =0x0000089c - adds r0, r4, r2 - subs r2, 0xC - adds r1, r4, r2 - ldr r3, [r0] - ldrh r1, [r1] - cmp r3, r1 - beq _081C88FC - movs r0, 0x6 - b _081C894E - .pool -_081C88FC: - ldr r0, =0x0000088e - adds r1, r4, r0 - ldrh r0, [r1] - cmp r0, 0 - beq _081C88CA - adds r2, r0, 0 - adds r0, r4, 0 - adds r1, r3, 0 - bl sub_81C8B70 - b _081C88CA - .pool -_081C8918: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _081C8942 - ldr r2, =0x0000088e - adds r1, r4, r2 - ldrh r0, [r1] - cmp r0, 0 - beq _081C894C - movs r1, 0 - bl sub_81C84E8 - b _081C88CA - .pool -_081C8938: - bl sub_81C8630 - adds r1, r0, 0 - cmp r1, 0 - beq _081C8946 -_081C8942: - movs r0, 0x2 - b _081C894E -_081C8946: - ldr r2, =0x0000088e - adds r0, r4, r2 - strh r1, [r0] -_081C894C: - movs r0, 0x4 -_081C894E: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C8870 - - thumb_func_start sub_81C8958 -sub_81C8958: @ 81C8958 - push {r4,r5,lr} - adds r5, r0, 0 - movs r0, 0x11 - bl sub_81C763C - adds r4, r0, 0 - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081C8972 - movs r0, 0x2 - b _081C8A22 -_081C8972: - cmp r5, 0x7 - bhi _081C8A1C - lsls r0, r5, 2 - ldr r1, =_081C8984 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C8984: - .4byte _081C89A4 - .4byte _081C89B4 - .4byte _081C89BE - .4byte _081C89D0 - .4byte _081C89DA - .4byte _081C89EC - .4byte _081C89F6 - .4byte _081C8A08 -_081C89A4: - ldr r1, =0x00000888 - adds r0, r4, r1 - adds r1, r4, 0 - bl sub_81C8CB4 - b _081C8A20 - .pool -_081C89B4: - adds r0, r4, 0 - movs r1, 0 - bl sub_81C8DBC - b _081C8A20 -_081C89BE: - ldr r1, =0x00000888 - adds r0, r4, r1 - adds r1, r4, 0 - movs r2, 0 - bl sub_81C8E54 - b _081C8A20 - .pool -_081C89D0: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81C8DBC - b _081C8A20 -_081C89DA: - ldr r1, =0x00000888 - adds r0, r4, r1 - adds r1, r4, 0 - movs r2, 0x1 - bl sub_81C8E54 - b _081C8A20 - .pool -_081C89EC: - adds r0, r4, 0 - movs r1, 0x2 - bl sub_81C8DBC - b _081C8A20 -_081C89F6: - ldr r1, =0x00000888 - adds r0, r4, r1 - adds r1, r4, 0 - movs r2, 0x2 - bl sub_81C8E54 - b _081C8A20 - .pool -_081C8A08: - ldr r1, =0x00000888 - adds r0, r4, r1 - adds r1, r4, 0 - movs r2, 0x3 - bl sub_81C8E54 - b _081C8A20 - .pool -_081C8A1C: - movs r0, 0x4 - b _081C8A22 -_081C8A20: - movs r0, 0 -_081C8A22: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81C8958 - - thumb_func_start sub_81C8A28 -sub_81C8A28: @ 81C8A28 - push {r4-r7,lr} - sub sp, 0x8 - adds r5, r0, 0 - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _081C8AA6 - movs r0, 0x11 - bl sub_81C763C - adds r4, r0, 0 - ldr r0, =0x00000888 - adds r6, r4, r0 - adds r2, r4, 0 - cmp r5, 0x6 - bls _081C8A4C - b _081C8B64 -_081C8A4C: - lsls r0, r5, 2 - ldr r1, =_081C8A60 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C8A60: - .4byte _081C8A7C - .4byte _081C8A88 - .4byte _081C8AE8 - .4byte _081C8AFC - .4byte _081C8B14 - .4byte _081C8B34 - .4byte _081C8B5C -_081C8A7C: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_81C8D4C - movs r0, 0 - b _081C8B66 -_081C8A88: - ldr r1, =0x0000089c - adds r7, r4, r1 - ldr r0, [r7] - adds r1, r0, 0x1 - str r1, [r7] - movs r3, 0x89 - lsls r3, 4 - adds r0, r4, r3 - ldrh r0, [r0] - cmp r1, r0 - bge _081C8AB0 - adds r0, r2, 0 - movs r2, 0x1 - bl sub_81C8B70 -_081C8AA6: - movs r0, 0x2 - b _081C8B66 - .pool -_081C8AB0: - movs r0, 0 - str r0, [r7] - ldrh r0, [r6, 0x2] - ldrh r1, [r6, 0x8] - cmp r0, r1 - bhi _081C8AC6 - ldrh r0, [r6] - cmp r0, 0 - beq _081C8B52 - adds r4, r0, 0 - b _081C8AD4 -_081C8AC6: - ldrh r1, [r6] - ldrh r0, [r6, 0x8] - adds r4, r1, r0 - ldrh r1, [r6, 0x2] - cmp r4, r1 - ble _081C8B52 - subs r4, r1 -_081C8AD4: - negs r5, r4 - adds r0, r2, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_81C8B70 - strh r4, [r6, 0x6] - str r5, [r7] - movs r0, 0 - b _081C8B66 -_081C8AE8: - ldr r2, =0x0000089c - adds r0, r4, r2 - ldr r0, [r0] - movs r1, 0 - bl sub_81C84E8 - movs r0, 0 - b _081C8B66 - .pool -_081C8AFC: - bl sub_81C8630 - adds r1, r0, 0 - cmp r1, 0 - bne _081C8AA6 - ldr r3, =0x0000089c - adds r0, r4, r3 - str r1, [r0] -_081C8B0C: - movs r0, 0x1 - b _081C8B66 - .pool -_081C8B14: - ldr r0, [r6, 0x10] - ldrh r1, [r6] - ldr r3, =0x0000089c - adds r2, r4, r3 - ldr r2, [r2] - adds r1, r2 - ldr r3, [r6, 0xC] - str r2, [sp] - str r4, [sp, 0x4] - movs r2, 0x1 - bl sub_81C83AC - movs r0, 0 - b _081C8B66 - .pool -_081C8B34: - bl sub_81C83E0 - cmp r0, 0 - bne _081C8AA6 - ldr r0, =0x0000089c - adds r1, r4, r0 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldrh r1, [r6, 0x2] - cmp r0, r1 - bge _081C8B0C - ldrh r6, [r6, 0x8] - cmp r0, r6 - bge _081C8B0C -_081C8B52: - movs r0, 0x9 - b _081C8B66 - .pool -_081C8B5C: - adds r0, r2, 0 - movs r1, 0 - bl sub_81C9008 -_081C8B64: - movs r0, 0x4 -_081C8B66: - add sp, 0x8 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81C8A28 - - thumb_func_start sub_81C8B70 -sub_81C8B70: @ 81C8B70 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - mov r9, r0 - adds r7, r1, 0 - adds r6, r2, 0 - ldrb r0, [r0, 0x8] - movs r1, 0x7 - bl GetWindowAttribute - mov r10, r0 - mov r1, r9 - ldrb r0, [r1, 0x4] - lsls r3, r0, 6 - ldrh r0, [r1, 0xA] - adds r7, r0, r7 - movs r0, 0xF - ands r7, r0 - adds r0, r7, r6 - cmp r0, 0x10 - bgt _081C8BD4 - ldr r0, =0x11111111 - str r0, [sp] - adds r1, r7, 0 - muls r1, r3 - add r1, r10 - adds r2, r6, 0 - muls r2, r3 - lsrs r2, 2 - ldr r0, =0x001fffff - ands r2, r0 - movs r0, 0x80 - lsls r0, 17 - orrs r2, r0 - mov r0, sp - bl CpuFastSet - mov r1, r9 - ldrb r0, [r1, 0x8] - movs r1, 0x2 - bl CopyWindowToVram - b _081C8C1E - .pool -_081C8BD4: - movs r2, 0x10 - subs r2, r7 - subs r0, r6, r2 - mov r8, r0 - ldr r1, =0x11111111 - str r1, [sp, 0x4] - add r0, sp, 0x4 - adds r1, r7, 0 - muls r1, r3 - add r1, r10 - muls r2, r3 - lsrs r2, 2 - ldr r5, =0x001fffff - ands r2, r5 - movs r4, 0x80 - lsls r4, 17 - orrs r2, r4 - str r3, [sp, 0xC] - bl CpuFastSet - ldr r0, =0x11111111 - str r0, [sp, 0x8] - add r0, sp, 0x8 - ldr r3, [sp, 0xC] - mov r2, r8 - muls r2, r3 - lsrs r2, 2 - ands r2, r5 - orrs r2, r4 - mov r1, r10 - bl CpuFastSet - mov r1, r9 - ldrb r0, [r1, 0x8] - movs r1, 0x2 - bl CopyWindowToVram -_081C8C1E: - subs r6, 0x1 - movs r0, 0x1 - negs r0, r0 - cmp r6, r0 - beq _081C8C40 - movs r5, 0xF - adds r4, r0, 0 -_081C8C2C: - mov r1, r9 - ldrh r0, [r1, 0x8] - adds r1, r7, 0 - bl sub_81CBD48 - adds r7, 0x1 - ands r7, r5 - subs r6, 0x1 - cmp r6, r4 - bne _081C8C2C -_081C8C40: - mov r1, r9 - ldrb r0, [r1, 0x8] - movs r1, 0x1 - bl CopyWindowToVram - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C8B70 - - thumb_func_start sub_81C8C64 -sub_81C8C64: @ 81C8C64 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - ldrb r0, [r5, 0x8] - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r0, 24 - bl GetBgTilemapBuffer - adds r2, r0, 0 - ldrh r0, [r5, 0xA] - lsls r0, 6 - ldrb r1, [r5, 0x2] - adds r0, r1 - lsls r0, 1 - subs r0, 0x2 - adds r2, r0 - cmp r4, 0 - beq _081C8C98 - ldrb r0, [r5, 0x1] - lsls r0, 12 - ldrh r1, [r5, 0x6] - adds r1, 0x1 - b _081C8C9E -_081C8C98: - ldrb r0, [r5, 0x1] - lsls r0, 12 - ldrh r1, [r5, 0x6] -_081C8C9E: - orrs r0, r1 - lsls r0, 16 - lsrs r1, r0, 16 - strh r1, [r2] - adds r0, r2, 0 - adds r0, 0x40 - strh r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81C8C64 - - thumb_func_start sub_81C8CB4 -sub_81C8CB4: @ 81C8CB4 - push {r4-r6,lr} - sub sp, 0x10 - adds r5, r0, 0 - adds r4, r1, 0 - ldr r1, =gUnknown_0861FBE4 - add r0, sp, 0xC - movs r2, 0x3 - bl memcpy - ldrh r1, [r5] - ldr r0, [r5, 0xC] - muls r1, r0 - ldr r0, [r5, 0x10] - adds r0, r1 - adds r6, r4, 0 - adds r6, 0x48 - ldr r2, [r4, 0x34] - adds r1, r6, 0 - bl _call_via_r2 - ldrh r0, [r4, 0x8] - ldrh r1, [r5] - ldrh r2, [r4, 0xA] - ldr r3, [r4, 0x38] - bl _call_via_r3 - ldrb r0, [r4, 0x8] - ldrh r3, [r4, 0xA] - lsls r3, 20 - lsrs r3, 16 - ldrb r1, [r4, 0x4] - lsls r1, 3 - str r1, [sp] - movs r1, 0x10 - str r1, [sp, 0x4] - movs r1, 0x44 - movs r2, 0 - bl FillWindowPixelRect - ldrb r0, [r4, 0x8] - ldrb r1, [r4, 0x5] - ldrh r3, [r4, 0xA] - lsls r3, 4 - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - add r2, sp, 0xC - str r2, [sp] - movs r2, 0x1 - negs r2, r2 - str r2, [sp, 0x4] - str r6, [sp, 0x8] - movs r2, 0x8 - bl box_print - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81C8C64 - ldrh r0, [r4, 0x8] - ldrh r3, [r4, 0xA] - lsls r3, 1 - ldrb r1, [r4, 0x4] - str r1, [sp] - movs r1, 0x2 - str r1, [sp, 0x4] - movs r1, 0x3 - movs r2, 0 - bl CopyWindowRectToVram - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C8CB4 - - thumb_func_start sub_81C8D4C -sub_81C8D4C: @ 81C8D4C - push {r4,r5,lr} - sub sp, 0xC - adds r4, r1, 0 - ldrh r2, [r0] - ldr r1, [r0, 0xC] - muls r1, r2 - ldr r0, [r0, 0x10] - adds r0, r1 - adds r5, r4, 0 - adds r5, 0x48 - ldr r2, [r4, 0x34] - adds r1, r5, 0 - bl _call_via_r2 - ldrb r0, [r4, 0x8] - ldrh r3, [r4, 0xA] - lsls r3, 20 - lsrs r3, 16 - ldrb r1, [r4, 0x4] - lsls r1, 3 - str r1, [sp] - movs r1, 0x10 - str r1, [sp, 0x4] - movs r1, 0x11 - movs r2, 0 - bl FillWindowPixelRect - ldrb r0, [r4, 0x8] - ldrb r1, [r4, 0x5] - ldrh r2, [r4, 0xA] - lsls r2, 4 - adds r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp] - movs r2, 0xFF - str r2, [sp, 0x4] - movs r2, 0 - str r2, [sp, 0x8] - adds r2, r5, 0 - movs r3, 0x8 - bl Print - adds r0, r4, 0 - movs r1, 0 - bl sub_81C8C64 - ldrb r0, [r4, 0x8] - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81C8D4C - - thumb_func_start sub_81C8DBC -sub_81C8DBC: @ 81C8DBC - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x1C - adds r6, r0, 0 - mov r8, r1 - add r1, sp, 0xC - ldr r0, =gUnknown_0861FBE8 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - add r0, sp, 0x18 - mov r9, r0 - ldr r1, =gUnknown_0861FBF4 - movs r2, 0x3 - bl memcpy - ldrh r4, [r6, 0xA] - mov r1, r8 - lsls r0, r1, 1 - adds r0, 0x1 - adds r4, r0 - movs r0, 0xF - ands r4, r0 - ldrb r0, [r6, 0x8] - lsls r5, r4, 4 - adds r3, r5, 0 - ldrb r1, [r6, 0x4] - str r1, [sp] - movs r1, 0x10 - str r1, [sp, 0x4] - movs r1, 0x11 - movs r2, 0 - bl FillWindowPixelRect - ldrb r0, [r6, 0x8] - movs r1, 0x1 - orrs r5, r1 - mov r2, r9 - str r2, [sp] - subs r1, 0x2 - str r1, [sp, 0x4] - mov r3, r8 - lsls r3, 2 - mov r8, r3 - mov r1, sp - add r1, r8 - adds r1, 0xC - ldr r1, [r1] - str r1, [sp, 0x8] - movs r1, 0x7 - movs r2, 0x2 - adds r3, r5, 0 - bl box_print - ldrh r0, [r6, 0x8] - lsls r4, 1 - ldrb r1, [r6, 0x4] - str r1, [sp] - movs r1, 0x2 - str r1, [sp, 0x4] - movs r2, 0 - adds r3, r4, 0 - bl CopyWindowRectToVram - add sp, 0x1C - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C8DBC - - thumb_func_start sub_81C8E54 -sub_81C8E54: @ 81C8E54 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - adds r7, r1, 0 - adds r1, r2, 0 - ldrh r3, [r7, 0xA] - ldr r2, =gUnknown_0861FBF7 - adds r2, r1, r2 - ldrb r2, [r2] - adds r6, r3, r2 - movs r2, 0xF - ands r6, r2 - ldrh r0, [r0] - bl sub_81CAFD8 - adds r5, r0, 0 - cmp r5, 0 - beq _081C8EC0 - ldrh r0, [r7, 0x8] - lsls r4, r6, 1 - ldrb r3, [r7, 0x4] - subs r3, 0x1 - movs r1, 0x2 - mov r8, r1 - str r1, [sp] - movs r1, 0x1 - adds r2, r4, 0 - bl sub_81DB620 - ldrb r0, [r7, 0x8] - lsls r1, r6, 4 - movs r2, 0x1 - orrs r1, r2 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x7 - adds r2, r5, 0 - movs r3, 0x2 - bl Print - ldrh r0, [r7, 0x8] - ldrb r1, [r7, 0x4] - str r1, [sp] - mov r1, r8 - str r1, [sp, 0x4] - movs r1, 0x2 - movs r2, 0 - adds r3, r4, 0 - bl CopyWindowRectToVram -_081C8EC0: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C8E54 - - thumb_func_start sub_81C8ED0 -sub_81C8ED0: @ 81C8ED0 - push {r4,r5,lr} - movs r5, 0 - ldr r4, =gUnknown_0861FBFC -_081C8ED6: - adds r0, r4, 0 - bl LoadCompressedObjectPic - adds r4, 0x8 - adds r5, 0x1 - cmp r5, 0 - beq _081C8ED6 - ldr r0, =gUnknown_0861FC04 - bl sub_81C795C - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C8ED0 - - thumb_func_start sub_81C8EF8 -sub_81C8EF8: @ 81C8EF8 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, =gUnknown_0861FC1C - ldrb r1, [r5, 0x2] - lsls r1, 3 - adds r1, 0x3 - ldrb r2, [r5, 0x3] - adds r2, 0x1 - lsls r2, 3 - movs r3, 0x7 - bl AddObjectToFront - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - mov r8, r1 - add r0, r8 - str r0, [r5, 0x3C] - ldrb r6, [r5, 0x2] - lsls r6, 3 - ldrb r0, [r5, 0x4] - subs r0, 0x1 - lsls r0, 2 - ldr r3, =gUnknown_0861FC3C - mov r10, r3 - adds r6, r0 - ldrb r2, [r5, 0x3] - lsls r2, 3 - ldrh r0, [r4, 0x8] - lsls r0, 4 - adds r2, r0 - lsls r2, 16 - asrs r2, 16 - mov r0, r10 - adds r1, r6, 0 - movs r3, 0x7 - bl AddObjectToFront - lsls r0, 24 - lsrs r3, r0, 24 - lsls r2, r3, 4 - adds r2, r3 - lsls r2, 2 - add r2, r8 - str r2, [r5, 0x44] - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x2 - ldr r0, =0x000003ff - mov r9, r0 - mov r0, r9 - ands r1, r0 - ldr r4, =0xfffffc00 - adds r0, r4, 0 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, 0x4] - ldr r1, [r5, 0x44] - ldr r0, =sub_81C90A0 - str r0, [r1, 0x1C] - ldrb r2, [r5, 0x3] - lsls r2, 3 - mov r0, r10 - adds r1, r6, 0 - movs r3, 0x7 - bl AddObjectToFront - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, r3, 4 - adds r1, r3 - lsls r1, 2 - add r1, r8 - str r1, [r5, 0x40] - ldrh r2, [r1, 0x4] - lsls r0, r2, 22 - lsrs r0, 22 - adds r0, 0x4 - mov r3, r9 - ands r0, r3 - ands r4, r2 - orrs r4, r0 - strh r4, [r1, 0x4] - ldr r1, [r5, 0x40] - ldr r0, =sub_81C90F4 - str r0, [r1, 0x1C] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C8EF8 - - thumb_func_start sub_81C8FE0 -sub_81C8FE0: @ 81C8FE0 - push {r4,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x3C] - bl RemoveObjectAndFreeTiles - ldr r0, [r4, 0x40] - bl RemoveObjectAndFreeTiles - ldr r0, [r4, 0x44] - bl RemoveObjectAndFreeTiles - movs r0, 0xA - bl FreeObjectTilesByTag - movs r0, 0x14 - bl FreeObjectPaletteByTag - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C8FE0 - - thumb_func_start sub_81C9008 -sub_81C9008: @ 81C9008 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - cmp r4, 0 - beq _081C9028 - ldr r2, [r5, 0x3C] - ldr r1, =DummyObjectCallback - str r1, [r2, 0x1C] - ldr r0, [r5, 0x40] - str r1, [r0, 0x1C] - ldr r0, [r5, 0x44] - str r1, [r0, 0x1C] - b _081C903A - .pool -_081C9028: - ldr r2, [r5, 0x3C] - ldr r0, =sub_81C9080 - str r0, [r2, 0x1C] - ldr r1, [r5, 0x40] - ldr r0, =sub_81C90F4 - str r0, [r1, 0x1C] - ldr r1, [r5, 0x44] - ldr r0, =sub_81C90A0 - str r0, [r1, 0x1C] -_081C903A: - adds r3, r2, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r4, r0 - lsls r4, 2 - ldrb r2, [r3] - movs r1, 0x5 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - orrs r0, r4 - strb r0, [r3] - ldr r2, [r5, 0x40] - adds r2, 0x3E - ldrb r3, [r2] - adds r0, r1, 0 - ands r0, r3 - orrs r0, r4 - strb r0, [r2] - ldr r0, [r5, 0x44] - adds r0, 0x3E - ldrb r2, [r0] - ands r1, r2 - orrs r1, r4 - strb r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C9008 - - thumb_func_start sub_81C9080 -sub_81C9080: @ 81C9080 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x11 - bl sub_81C763C - ldr r1, =0x0000088e - adds r0, r1 - ldrh r0, [r0] - lsls r0, 4 - strh r0, [r4, 0x26] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C9080 - - thumb_func_start sub_81C90A0 -sub_81C90A0: @ 81C90A0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081C90C2 - bl sub_81C84C0 - cmp r0, 0 - beq _081C90C2 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - b _081C90CC -_081C90C2: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 -_081C90CC: - strb r0, [r2] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _081C90EC - movs r0, 0 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - movs r1, 0x7 - ands r0, r1 - strh r0, [r4, 0x30] - strh r0, [r4, 0x26] -_081C90EC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C90A0 - - thumb_func_start sub_81C90F4 -sub_81C90F4: @ 81C90F4 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081C9116 - bl sub_81C84A4 - cmp r0, 0 - beq _081C9116 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - b _081C9120 -_081C9116: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 -_081C9120: - strb r0, [r2] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _081C9142 - movs r0, 0 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - movs r1, 0x7 - ands r0, r1 - strh r0, [r4, 0x30] - negs r0, r0 - strh r0, [r4, 0x26] -_081C9142: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C90F4 - - thumb_func_start sub_81C9148 -sub_81C9148: @ 81C9148 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x11 - bl sub_81C763C - ldr r1, [r0, 0x40] - strh r4, [r1, 0x3C] - ldr r0, [r0, 0x44] - strh r4, [r0, 0x3C] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C9148 - - thumb_func_start sub_81C9160 -sub_81C9160: @ 81C9160 - push {r4,r5,lr} - adds r2, r0, 0 - ldr r0, [r1] - str r0, [r2, 0x10] - ldrh r4, [r1, 0x6] - movs r5, 0 - strh r4, [r2] - ldrh r3, [r1, 0x4] - strh r3, [r2, 0x2] - ldrb r0, [r1, 0x8] - str r0, [r2, 0xC] - ldrb r1, [r1, 0xC] - strh r1, [r2, 0x8] - lsls r0, r3, 16 - lsrs r0, 16 - cmp r1, r0 - bcc _081C918A - strh r5, [r2] - strh r5, [r2, 0x4] - strh r4, [r2, 0x6] - b _081C91A6 -_081C918A: - subs r0, r3, r1 - strh r0, [r2, 0x4] - ldrh r1, [r2] - ldrh r0, [r2, 0x8] - adds r1, r0 - ldrh r0, [r2, 0x2] - cmp r1, r0 - ble _081C91A4 - subs r0, r1, r0 - strh r0, [r2, 0x6] - subs r0, r4, r0 - strh r0, [r2] - b _081C91A6 -_081C91A4: - strh r5, [r2, 0x6] -_081C91A6: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81C9160 - - thumb_func_start sub_81C91AC -sub_81C91AC: @ 81C91AC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - adds r7, r0, 0 - ldr r4, [r1] - lsls r4, 30 - lsrs r0, r4, 30 - movs r1, 0 - mov r9, r1 - strb r0, [r7] - strh r3, [r7, 0x6] - ldr r0, [r2, 0x10] - str r0, [r7, 0x34] - ldr r0, [r2, 0x14] - str r0, [r7, 0x38] - ldrb r6, [r2, 0xD] - strb r6, [r7, 0x1] - ldrb r1, [r2, 0x9] - strb r1, [r7, 0x2] - ldrb r0, [r2, 0xB] - strb r0, [r7, 0x3] - ldrb r5, [r2, 0xA] - strb r5, [r7, 0x4] - ldrb r0, [r2, 0xE] - strb r0, [r7, 0x5] - lsrs r4, 30 - ldr r2, =0xffffff00 - mov r8, r2 - ldr r0, [sp] - ands r0, r2 - orrs r0, r4 - lsls r1, 24 - lsrs r1, 16 - ldr r2, =0xffff00ff - ands r0, r2 - orrs r0, r1 - ldr r1, =0xff00ffff - ands r0, r1 - lsls r5, 24 - ldr r1, =0x00ffffff - ands r0, r1 - orrs r0, r5 - str r0, [sp] - ldr r0, [sp, 0x4] - mov r1, r8 - ands r0, r1 - movs r1, 0x20 - orrs r0, r1 - lsls r6, 24 - lsrs r6, 16 - ands r0, r2 - orrs r0, r6 - adds r3, 0x2 - lsls r3, 16 - ldr r1, =0x0000ffff - ands r0, r1 - orrs r0, r3 - str r0, [sp, 0x4] - mov r0, sp - bl AddWindow - strh r0, [r7, 0x8] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xFF - beq _081C9258 - mov r2, r9 - strh r2, [r7, 0xA] - mov r0, r9 - str r0, [r7, 0x3C] - str r0, [r7, 0x40] - str r0, [r7, 0x44] - movs r0, 0x1 - b _081C925A - .pool -_081C9258: - movs r0, 0 -_081C925A: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81C91AC - - thumb_func_start sub_81C9268 -sub_81C9268: @ 81C9268 - push {r4,lr} - movs r4, 0 - movs r0, 0x98 - lsls r0, 1 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _081C928A - movs r4, 0x1 - ldr r0, =0x0000089b - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _081C928A - movs r4, 0x2 -_081C928A: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C9268 - - thumb_func_start sub_81C9298 -sub_81C9298: @ 81C9298 - push {r4,lr} - movs r0, 0x1 - movs r1, 0x10 - bl sub_81C761C - adds r4, r0, 0 - cmp r4, 0 - beq _081C92C4 - bl sub_81C9268 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - strh r0, [r4] - strh r1, [r4, 0x2] - strh r1, [r4, 0x4] - strh r1, [r4, 0x6] - adds r0, r4, 0 - bl sub_81C939C - movs r0, 0x1 - b _081C92C6 -_081C92C4: - movs r0, 0 -_081C92C6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81C9298 - - thumb_func_start sub_81C92CC -sub_81C92CC: @ 81C92CC - push {r4,lr} - movs r0, 0x1 - movs r1, 0x10 - bl sub_81C761C - adds r4, r0, 0 - cmp r4, 0 - beq _081C92FA - bl sub_81C9268 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - strh r0, [r4] - movs r0, 0x2 - strh r0, [r4, 0x2] - strh r0, [r4, 0x4] - strh r1, [r4, 0x6] - adds r0, r4, 0 - bl sub_81C939C - movs r0, 0x1 - b _081C92FC -_081C92FA: - movs r0, 0 -_081C92FC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81C92CC - - thumb_func_start sub_81C9304 -sub_81C9304: @ 81C9304 - push {r4,lr} - movs r0, 0x1 - movs r1, 0x10 - bl sub_81C761C - adds r4, r0, 0 - cmp r4, 0 - beq _081C932E - bl sub_81C9268 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - movs r0, 0x3 - strh r0, [r4, 0x2] - strh r0, [r4, 0x4] - adds r0, r4, 0 - bl sub_81C939C - movs r0, 0x1 - b _081C9330 -_081C932E: - movs r0, 0 -_081C9330: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81C9304 - - thumb_func_start sub_81C9338 -sub_81C9338: @ 81C9338 - push {lr} - movs r0, 0x1 - movs r1, 0x10 - bl sub_81C761C - adds r2, r0, 0 - cmp r2, 0 - beq _081C9360 - movs r0, 0 - movs r1, 0x3 - strh r1, [r2] - strh r0, [r2, 0x2] - movs r1, 0x5 - strh r1, [r2, 0x4] - strh r0, [r2, 0x6] - adds r0, r2, 0 - bl sub_81C939C - movs r0, 0x1 - b _081C9362 -_081C9360: - movs r0, 0 -_081C9362: - pop {r1} - bx r1 - thumb_func_end sub_81C9338 - - thumb_func_start sub_81C9368 -sub_81C9368: @ 81C9368 - push {r4,r5,lr} - movs r0, 0x1 - movs r1, 0x10 - bl sub_81C761C - adds r5, r0, 0 - cmp r5, 0 - beq _081C9394 - movs r4, 0 - movs r0, 0x4 - strh r0, [r5] - bl sub_81C76AC - strh r0, [r5, 0x2] - adds r0, 0x8 - strh r0, [r5, 0x4] - strh r4, [r5, 0x6] - adds r0, r5, 0 - bl sub_81C939C - movs r0, 0x1 - b _081C9396 -_081C9394: - movs r0, 0 -_081C9396: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81C9368 - - thumb_func_start sub_81C939C -sub_81C939C: @ 81C939C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4] - cmp r0, 0x4 - bhi _081C93E0 - lsls r0, 2 - ldr r1, =_081C93B4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C93B4: - .4byte _081C93C8 - .4byte _081C93CE - .4byte _081C93CE - .4byte _081C93D4 - .4byte _081C93DC -_081C93C8: - movs r0, 0 - bl sub_81C7688 -_081C93CE: - bl sub_81C93EC - b _081C93DE -_081C93D4: - ldr r0, =sub_81C963C - b _081C93DE - .pool -_081C93DC: - ldr r0, =sub_81C96FC -_081C93DE: - str r0, [r4, 0xC] -_081C93E0: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C939C - - thumb_func_start sub_81C93EC -sub_81C93EC: @ 81C93EC - push {lr} - bl sub_81C767C - cmp r0, 0x1 - beq _081C9408 - cmp r0, 0x1 - bcc _081C93FE - cmp r0, 0x2 - beq _081C9410 -_081C93FE: - ldr r0, =sub_81C943C - b _081C9412 - .pool -_081C9408: - ldr r0, =sub_81C9520 - b _081C9412 - .pool -_081C9410: - ldr r0, =c2_pre_battle_1 -_081C9412: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C93EC - - thumb_func_start sub_81C941C -sub_81C941C: @ 81C941C - push {lr} - movs r0, 0x1 - bl sub_81C763C - ldr r1, [r0, 0xC] - bl _call_via_r1 - pop {r1} - bx r1 - thumb_func_end sub_81C941C - - thumb_func_start sub_81C9430 -sub_81C9430: @ 81C9430 - push {lr} - movs r0, 0x1 - bl sub_81C7650 - pop {r0} - bx r0 - thumb_func_end sub_81C9430 - - thumb_func_start sub_81C943C -sub_81C943C: @ 81C943C - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_81C9814 - cmp r0, 0 - beq _081C944C - movs r0, 0x1 - b _081C951A -_081C944C: - ldr r2, =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - adds r5, r2, 0 - cmp r0, 0 - beq _081C9508 - ldr r3, =gUnknown_0861FC59 - movs r0, 0x2 - ldrsh r1, [r4, r0] - ldrh r2, [r4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 1 - adds r1, r0 - adds r1, r3 - ldrb r0, [r1] - cmp r0, 0x4 - bhi _081C9508 - lsls r0, 2 - ldr r1, =_081C9488 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C9488: - .4byte _081C949C - .4byte _081C94BC - .4byte _081C94D4 - .4byte _081C94E0 - .4byte _081C9516 -_081C949C: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r1, [r0, 0x15] - movs r0, 0x8 - ands r0, r1 - movs r1, 0x1 - cmp r0, 0 - beq _081C94AE - movs r1, 0x2 -_081C94AE: - strh r1, [r4, 0x6] - ldr r1, =0x000186a6 - b _081C94EE - .pool -_081C94BC: - movs r1, 0 - movs r0, 0x3 - strh r0, [r4] - strh r1, [r4, 0x2] - ldrb r0, [r3, 0x12] - strh r0, [r4, 0x4] - ldr r0, =sub_81C963C - str r0, [r4, 0xC] - movs r0, 0x2 - b _081C951A - .pool -_081C94D4: - movs r0, 0x6 - strh r0, [r4, 0x6] - ldr r1, =0x000186ab - b _081C94EE - .pool -_081C94E0: - bl sub_81C76B8 - cmp r0, 0 - beq _081C94FC - movs r0, 0x9 - strh r0, [r4, 0x6] - ldr r1, =0x000186ac -_081C94EE: - adds r0, r4, 0 - bl sub_81C97B0 - movs r0, 0x8 - b _081C951A - .pool -_081C94FC: - ldr r0, =sub_81C9600 - str r0, [r4, 0xC] - movs r0, 0x6 - b _081C951A - .pool -_081C9508: - ldrh r1, [r5, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _081C9516 - movs r0, 0 - b _081C951A -_081C9516: - movs r0, 0x1 - negs r0, r0 -_081C951A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81C943C - - thumb_func_start sub_81C9520 -sub_81C9520: @ 81C9520 - push {r4,lr} - adds r4, r0, 0 - bl sub_81C9814 - cmp r0, 0 - beq _081C9530 - movs r0, 0x1 - b _081C9580 -_081C9530: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081C9570 - ldr r3, =gUnknown_0861FC59 - movs r0, 0x2 - ldrsh r1, [r4, r0] - ldrh r2, [r4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 1 - adds r1, r0 - adds r1, r3 - ldrb r0, [r1] - cmp r0, 0x2 - bne _081C9578 - movs r0, 0x6 - strh r0, [r4, 0x6] - ldr r1, =0x000186ab - adds r0, r4, 0 - bl sub_81C97B0 - movs r0, 0x8 - b _081C9580 - .pool -_081C9570: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081C957E -_081C9578: - movs r0, 0x20 - bl audio_play -_081C957E: - movs r0, 0 -_081C9580: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81C9520 - - thumb_func_start c2_pre_battle_1 -c2_pre_battle_1: @ 81C9588 - push {r4,lr} - adds r4, r0, 0 - bl sub_81C9814 - cmp r0, 0 - beq _081C9598 - movs r0, 0x1 - b _081C95F8 -_081C9598: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081C95E8 - ldr r3, =gUnknown_0861FC59 - movs r0, 0x2 - ldrsh r1, [r4, r0] - ldrh r2, [r4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 1 - adds r1, r0 - adds r1, r3 - ldrb r0, [r1] - cmp r0, 0x2 - beq _081C95D4 - cmp r0, 0x4 - beq _081C95F4 - movs r0, 0x20 - bl audio_play - movs r0, 0 - b _081C95F8 - .pool -_081C95D4: - movs r0, 0x6 - strh r0, [r4, 0x6] - ldr r1, =0x000186ab - adds r0, r4, 0 - bl sub_81C97B0 - movs r0, 0x8 - b _081C95F8 - .pool -_081C95E8: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _081C95F4 - movs r0, 0 - b _081C95F8 -_081C95F4: - movs r0, 0x1 - negs r0, r0 -_081C95F8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end c2_pre_battle_1 - - thumb_func_start sub_81C9600 -sub_81C9600: @ 81C9600 - push {r4,lr} - adds r4, r0, 0 - bl sub_81C9814 - cmp r0, 0 - beq _081C9616 - bl sub_81C93EC - str r0, [r4, 0xC] - movs r0, 0x1 - b _081C9634 -_081C9616: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _081C962C - movs r0, 0 - b _081C9634 - .pool -_081C962C: - bl sub_81C93EC - str r0, [r4, 0xC] - movs r0, 0x7 -_081C9634: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81C9600 - - thumb_func_start sub_81C963C -sub_81C963C: @ 81C963C - push {r4-r6,lr} - adds r4, r0, 0 - bl sub_81C9814 - adds r3, r0, 0 - cmp r3, 0 - beq _081C964E - movs r0, 0x1 - b _081C96F6 -_081C964E: - ldr r2, =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - adds r6, r2, 0 - cmp r0, 0 - beq _081C96B8 - ldr r5, =gUnknown_0861FC59 - movs r1, 0x2 - ldrsh r0, [r4, r1] - ldrh r2, [r4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 1 - adds r0, r1 - adds r0, r5 - ldrb r0, [r0] - cmp r0, 0x6 - beq _081C968E - cmp r0, 0x6 - bgt _081C9688 - cmp r0, 0x5 - beq _081C96A4 - b _081C96B8 - .pool -_081C9688: - cmp r0, 0x7 - beq _081C96E4 - b _081C96B8 -_081C968E: - movs r0, 0x4 - strh r0, [r4] - strh r3, [r4, 0x2] - ldrb r0, [r5, 0x18] - strh r0, [r4, 0x4] - ldr r0, =sub_81C96FC - str r0, [r4, 0xC] - movs r0, 0x4 - b _081C96F6 - .pool -_081C96A4: - strh r3, [r4, 0x6] - ldr r1, =0x000186a7 - adds r0, r4, 0 - bl sub_81C97B0 - movs r0, 0x8 - b _081C96F6 - .pool -_081C96B8: - ldrh r1, [r6, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081C96F4 - movs r0, 0x2 - ldrsh r2, [r4, r0] - ldr r1, =gUnknown_0861FC54 - ldrh r0, [r4] - adds r0, r1 - ldrb r0, [r0] - cmp r2, r0 - beq _081C96E4 - strh r0, [r4, 0x2] - ldr r0, =sub_81C9798 - str r0, [r4, 0xC] - movs r0, 0x1 - b _081C96F6 - .pool -_081C96E4: - movs r0, 0x5 - bl audio_play - adds r0, r4, 0 - bl sub_81C97C0 - movs r0, 0x3 - b _081C96F6 -_081C96F4: - movs r0, 0 -_081C96F6: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81C963C - - thumb_func_start sub_81C96FC -sub_81C96FC: @ 81C96FC - push {r4,lr} - adds r4, r0, 0 - bl sub_81C9814 - cmp r0, 0 - beq _081C970C - movs r0, 0x1 - b _081C9792 -_081C970C: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081C9754 - ldr r3, =gUnknown_0861FC59 - movs r0, 0x2 - ldrsh r1, [r4, r0] - ldrh r2, [r4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 1 - adds r1, r0 - adds r1, r3 - ldrb r0, [r1] - cmp r0, 0xD - beq _081C9780 - subs r0, 0x8 - bl sub_81C7694 - ldr r1, =0x000186a8 - adds r0, r4, 0 - bl sub_81C97B0 - movs r0, 0x3 - strh r0, [r4, 0x6] - movs r0, 0x8 - b _081C9792 - .pool -_081C9754: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081C9790 - movs r0, 0x2 - ldrsh r2, [r4, r0] - ldr r1, =gUnknown_0861FC54 - ldrh r0, [r4] - adds r0, r1 - ldrb r0, [r0] - cmp r2, r0 - beq _081C9780 - strh r0, [r4, 0x2] - ldr r0, =sub_81C97A4 - str r0, [r4, 0xC] - movs r0, 0x1 - b _081C9792 - .pool -_081C9780: - movs r0, 0x5 - bl audio_play - adds r0, r4, 0 - bl sub_81C97F8 - movs r0, 0x5 - b _081C9792 -_081C9790: - movs r0, 0 -_081C9792: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81C96FC - - thumb_func_start sub_81C9798 -sub_81C9798: @ 81C9798 - push {lr} - bl sub_81C97C0 - movs r0, 0x3 - pop {r1} - bx r1 - thumb_func_end sub_81C9798 - - thumb_func_start sub_81C97A4 -sub_81C97A4: @ 81C97A4 - push {lr} - bl sub_81C97F8 - movs r0, 0x5 - pop {r1} - bx r1 - thumb_func_end sub_81C97A4 - - thumb_func_start sub_81C97B0 -sub_81C97B0: @ 81C97B0 - str r1, [r0, 0x8] - ldr r1, =sub_81C97BC - str r1, [r0, 0xC] - bx lr - .pool - thumb_func_end sub_81C97B0 - - thumb_func_start sub_81C97BC -sub_81C97BC: @ 81C97BC - ldr r0, [r0, 0x8] - bx lr - thumb_func_end sub_81C97BC - - thumb_func_start sub_81C97C0 -sub_81C97C0: @ 81C97C0 - push {r4,lr} - adds r4, r0, 0 - bl sub_81C9268 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - movs r0, 0x1 - strh r0, [r4, 0x2] - ldr r2, =gUnknown_0861FC59 - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - adds r0, 0x1 - adds r0, r2 - ldrb r0, [r0] - strh r0, [r4, 0x4] - ldr r0, =sub_81C943C - str r0, [r4, 0xC] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C97C0 - - thumb_func_start sub_81C97F8 -sub_81C97F8: @ 81C97F8 - movs r1, 0x3 - strh r1, [r0] - movs r1, 0x1 - strh r1, [r0, 0x2] - ldr r1, =gUnknown_0861FC59 - ldrb r1, [r1, 0x13] - strh r1, [r0, 0x4] - ldr r1, =sub_81C963C - str r1, [r0, 0xC] - bx lr - .pool - thumb_func_end sub_81C97F8 - - thumb_func_start sub_81C9814 -sub_81C9814: @ 81C9814 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _081C9848 - ldrh r0, [r4, 0x2] - subs r0, 0x1 - strh r0, [r4, 0x2] - lsls r0, 16 - ldrh r3, [r4] - cmp r0, 0 - bge _081C986A - ldr r0, =gUnknown_0861FC54 - adds r0, r3, r0 - ldrb r0, [r0] - strh r0, [r4, 0x2] - b _081C986A - .pool -_081C9848: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081C988C - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - movs r0, 0x2 - ldrsh r2, [r4, r0] - ldr r0, =gUnknown_0861FC54 - ldrh r1, [r4] - adds r0, r1, r0 - adds r3, r1, 0 - ldrb r0, [r0] - cmp r2, r0 - ble _081C986A - strh r5, [r4, 0x2] -_081C986A: - ldr r2, =gUnknown_0861FC59 - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 1 - adds r1, r0 - adds r1, r2 - ldrb r0, [r1] - strh r0, [r4, 0x4] - movs r0, 0x1 - b _081C988E - .pool -_081C988C: - movs r0, 0 -_081C988E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81C9814 - - thumb_func_start sub_81C9894 -sub_81C9894: @ 81C9894 - push {lr} - movs r0, 0x1 - bl sub_81C763C - ldrh r0, [r0] - pop {r1} - bx r1 - thumb_func_end sub_81C9894 - - thumb_func_start sub_81C98A4 -sub_81C98A4: @ 81C98A4 - push {lr} - movs r0, 0x1 - bl sub_81C763C - movs r1, 0x2 - ldrsh r0, [r0, r1] - pop {r1} - bx r1 - thumb_func_end sub_81C98A4 - - thumb_func_start sub_81C98B4 -sub_81C98B4: @ 81C98B4 - push {lr} - movs r0, 0x1 - bl sub_81C763C - ldrh r0, [r0, 0x4] - pop {r1} - bx r1 - thumb_func_end sub_81C98B4 - - thumb_func_start sub_81C98C4 -sub_81C98C4: @ 81C98C4 - push {lr} - movs r0, 0x1 - bl sub_81C763C - ldrh r0, [r0, 0x6] - pop {r1} - bx r1 - thumb_func_end sub_81C98C4 - - thumb_func_start sub_81C98D4 -sub_81C98D4: @ 81C98D4 - push {r4,lr} - movs r4, 0 -_081C98D8: - adds r0, r4, 0 - bl sub_81CB0C8 - ldr r1, =gUnknown_02037318 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1, 0x14] - cmp r0, r1 - bne _081C9914 - adds r0, r4, 0 - bl sub_81CAE08 - cmp r0, 0 - beq _081C9914 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x000009ca - adds r0, r1 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _081C9914 - movs r0, 0x1 - b _081C991C - .pool -_081C9914: - adds r4, 0x1 - cmp r4, 0x4D - ble _081C98D8 - movs r0, 0 -_081C991C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81C98D4 - - thumb_func_start sub_81C9924 -sub_81C9924: @ 81C9924 - push {lr} - bl sub_81C9958 - adds r1, r0, 0 - cmp r1, 0 - beq _081C9938 - movs r0, 0 - strb r0, [r1, 0xD] - movs r0, 0x1 - b _081C993A -_081C9938: - movs r0, 0 -_081C993A: - pop {r1} - bx r1 - thumb_func_end sub_81C9924 - - thumb_func_start sub_81C9940 -sub_81C9940: @ 81C9940 - push {lr} - bl sub_81C9958 - adds r1, r0, 0 - cmp r1, 0 - beq _081C9952 - movs r0, 0x1 - strb r0, [r1, 0xD] - b _081C9954 -_081C9952: - movs r0, 0 -_081C9954: - pop {r1} - bx r1 - thumb_func_end sub_81C9940 - - thumb_func_start sub_81C9958 -sub_81C9958: @ 81C9958 - push {r4,lr} - ldr r1, =0x0000088c - movs r0, 0x2 - bl sub_81C761C - adds r4, r0, 0 - cmp r4, 0 - beq _081C997A - movs r0, 0 - strb r0, [r4, 0xC] - ldr r0, =sub_81C9A10 - movs r1, 0x1 - bl sub_81C7078 - str r0, [r4, 0x4] - ldr r0, =sub_81C99FC - str r0, [r4] -_081C997A: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C9958 - - thumb_func_start sub_81C9990 -sub_81C9990: @ 81C9990 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x2 - bl sub_81C763C - adds r5, r0, 0 - ldr r0, =gUnknown_086201A0 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - movs r1, 0x1 - bl sub_81C7078 - str r0, [r5, 0x4] - ldr r0, =sub_81C99FC - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C9990 - - thumb_func_start sub_81C99C0 -sub_81C99C0: @ 81C99C0 - push {lr} - movs r0, 0x2 - bl sub_81C763C - ldr r0, [r0] - bl _call_via_r0 - pop {r1} - bx r1 - thumb_func_end sub_81C99C0 - - thumb_func_start sub_81C99D4 -sub_81C99D4: @ 81C99D4 - push {r4,lr} - movs r0, 0x2 - bl sub_81C763C - adds r4, r0, 0 - bl sub_81CA7F4 - ldrb r0, [r4, 0x8] - bl RemoveWindow - bl sub_81C9FEC - bl sub_81CA994 - movs r0, 0x2 - bl sub_81C7650 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C99D4 - - thumb_func_start sub_81C99FC -sub_81C99FC: @ 81C99FC - push {lr} - movs r0, 0x2 - bl sub_81C763C - ldr r0, [r0, 0x4] - bl sub_81C70D8 - pop {r1} - bx r1 - thumb_func_end sub_81C99FC - - thumb_func_start sub_81C9A10 -sub_81C9A10: @ 81C9A10 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r0, 0x2 - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x9 - bls _081C9A24 - b _081C9C60 -_081C9A24: - lsls r0, r4, 2 - ldr r1, =_081C9A34 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C9A34: - .4byte _081C9A5C - .4byte _081C9AEC - .4byte _081C9B30 - .4byte _081C9B88 - .4byte _081C9B9E - .4byte _081C9BA4 - .4byte _081C9BB6 - .4byte _081C9BC0 - .4byte _081C9C0E - .4byte _081C9C4C -_081C9A5C: - ldr r0, =gUnknown_08620194 - movs r1, 0x3 - bl sub_81C7B54 - ldr r1, =gUnknown_08DC90E0 - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - adds r1, r5, 0 - adds r1, 0x8C - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, =gUnknown_08DC9130 - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - ldr r0, =gUnknown_08DC90C0 - movs r1, 0x10 - movs r2, 0x20 - bl sub_81C7944 - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgY -_081C9AD6: - movs r0, 0 - b _081C9C62 - .pool -_081C9AEC: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _081C9AFA - b _081C9C5C -_081C9AFA: - ldr r1, =gUnknown_0861FD6C - str r0, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, =gUnknown_0861FFF4 - movs r0, 0x1 - str r0, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, =gUnknown_0861FD4C - movs r1, 0x20 - movs r2, 0x20 - bl sub_81C7944 - b _081C9AD6 - .pool -_081C9B30: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _081C9B3E - b _081C9C5C -_081C9B3E: - ldr r1, =gUnknown_0861FC98 - str r0, [sp] - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, =gUnknown_0861FCAC - movs r0, 0x1 - str r0, [sp] - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, =gUnknown_0861FC78 - movs r1, 0x30 - movs r2, 0x20 - bl sub_81C7944 - bl sub_81C9894 - cmp r0, 0x3 - beq _081C9B76 - bl sub_81C9894 - cmp r0, 0x4 - bne _081C9AD6 -_081C9B76: - bl sub_81CA850 - b _081C9AD6 - .pool -_081C9B88: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081C9C5C - bl sub_81CA6E0 - bl sub_81CA7D4 -_081C9B9A: - movs r0, 0x1 - b _081C9C62 -_081C9B9E: - bl sub_81C9FC4 - b _081C9B9A -_081C9BA4: - bl sub_81CA714 - bl sub_81CA02C - bl sub_81CA640 - bl sub_81CA0C8 - b _081C9AD6 -_081C9BB6: - bl sub_81CA7C4 - cmp r0, 0 - bne _081C9C5C - b _081C9B9A -_081C9BC0: - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg - ldrb r0, [r5, 0xD] - cmp r0, 0 - beq _081C9BE0 - movs r0, 0x1 - bl sub_81C7AC0 - b _081C9BEC -_081C9BE0: - movs r0, 0x6E - bl audio_play - movs r0, 0x3 - bl sub_81C7AC0 -_081C9BEC: - bl sub_81C9894 - cmp r0, 0x3 - beq _081C9BFE - cmp r0, 0x4 - bne _081C9C06 - movs r0, 0x7 - bl sub_81C7DFC -_081C9BFE: - movs r0, 0x1 - bl sub_81C7DFC - b _081C9AD6 -_081C9C06: - movs r0, 0 - bl sub_81C7DFC - b _081C9AD6 -_081C9C0E: - bl sub_81C7B34 - cmp r0, 0 - bne _081C9C5C - bl sub_81C9894 - cmp r0, 0x3 - beq _081C9C2C - cmp r0, 0x4 - bne _081C9C38 - movs r0, 0x7 - movs r1, 0 - movs r2, 0 - bl sub_81C7FA0 -_081C9C2C: - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl sub_81C7FA0 - b _081C9C42 -_081C9C38: - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl sub_81C7FA0 -_081C9C42: - bl sub_81CA20C - bl titlescreen_0 - b _081C9B9A -_081C9C4C: - bl sub_81CA324 - cmp r0, 0 - bne _081C9C5C - bl sub_81C8010 - cmp r0, 0 - beq _081C9C60 -_081C9C5C: - movs r0, 0x2 - b _081C9C62 -_081C9C60: - movs r0, 0x4 -_081C9C62: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81C9A10 - - thumb_func_start sub_81C9C6C -sub_81C9C6C: @ 81C9C6C - push {lr} - cmp r0, 0 - beq _081C9C78 - cmp r0, 0x1 - beq _081C9C8E - b _081C9CA2 -_081C9C78: - bl sub_81CAA3C - bl sub_81CA278 - bl sub_81CA714 - movs r0, 0x5 - bl audio_play - movs r0, 0 - b _081C9CA4 -_081C9C8E: - bl sub_81CA324 - cmp r0, 0 - bne _081C9C9E - bl sub_81CA7C4 - cmp r0, 0 - beq _081C9CA2 -_081C9C9E: - movs r0, 0x2 - b _081C9CA4 -_081C9CA2: - movs r0, 0x4 -_081C9CA4: - pop {r1} - bx r1 - thumb_func_end sub_81C9C6C - - thumb_func_start sub_81C9CA8 -sub_81C9CA8: @ 81C9CA8 - push {lr} - cmp r0, 0x1 - beq _081C9CDC - cmp r0, 0x1 - bgt _081C9CB8 - cmp r0, 0 - beq _081C9CC2 - b _081C9D3C -_081C9CB8: - cmp r0, 0x2 - beq _081C9CFA - cmp r0, 0x3 - beq _081C9D14 - b _081C9D3C -_081C9CC2: - bl sub_81CA9C8 - bl sub_81CA2DC - movs r0, 0 - movs r1, 0 - bl sub_81C7FC4 - movs r0, 0x5 - bl audio_play - movs r0, 0 - b _081C9D3E -_081C9CDC: - bl sub_81CA324 - cmp r0, 0 - bne _081C9D34 - bl sub_81C8010 - cmp r0, 0 - bne _081C9D34 - bl sub_81CA0C8 - movs r0, 0x1 - bl sub_81C7DFC - movs r0, 0 - b _081C9D3E -_081C9CFA: - bl sub_81CA20C - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl sub_81C7FA0 - bl sub_81CA818 - bl sub_81CA714 - movs r0, 0 - b _081C9D3E -_081C9D14: - bl sub_81CA324 - cmp r0, 0 - bne _081C9D34 - bl sub_81C8010 - cmp r0, 0 - bne _081C9D34 - bl sub_81CA89C - cmp r0, 0 - bne _081C9D34 - bl sub_81CA7C4 - cmp r0, 0 - beq _081C9D38 -_081C9D34: - movs r0, 0x2 - b _081C9D3E -_081C9D38: - bl sub_81CA9D8 -_081C9D3C: - movs r0, 0x4 -_081C9D3E: - pop {r1} - bx r1 - thumb_func_end sub_81C9CA8 - - thumb_func_start sub_81C9D44 -sub_81C9D44: @ 81C9D44 - push {lr} - cmp r0, 0x1 - beq _081C9D72 - cmp r0, 0x1 - bgt _081C9D54 - cmp r0, 0 - beq _081C9D5E - b _081C9DD2 -_081C9D54: - cmp r0, 0x2 - beq _081C9D90 - cmp r0, 0x3 - beq _081C9DAA - b _081C9DD2 -_081C9D5E: - bl sub_81CA9C8 - bl sub_81CA2DC - movs r0, 0x1 - movs r1, 0 - bl sub_81C7FC4 - movs r0, 0 - b _081C9DD4 -_081C9D72: - bl sub_81CA324 - cmp r0, 0 - bne _081C9DCA - bl sub_81C8010 - cmp r0, 0 - bne _081C9DCA - bl sub_81CA0C8 - movs r0, 0 - bl sub_81C7DFC - movs r0, 0 - b _081C9DD4 -_081C9D90: - bl sub_81CA20C - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl sub_81C7FA0 - bl sub_81CA864 - bl sub_81CA714 - movs r0, 0 - b _081C9DD4 -_081C9DAA: - bl sub_81CA324 - cmp r0, 0 - bne _081C9DCA - bl sub_81C8010 - cmp r0, 0 - bne _081C9DCA - bl sub_81CA89C - cmp r0, 0 - bne _081C9DCA - bl sub_81CA7C4 - cmp r0, 0 - beq _081C9DCE -_081C9DCA: - movs r0, 0x2 - b _081C9DD4 -_081C9DCE: - bl sub_81CA9D8 -_081C9DD2: - movs r0, 0x4 -_081C9DD4: - pop {r1} - bx r1 - thumb_func_end sub_81C9D44 - - thumb_func_start sub_81C9DD8 -sub_81C9DD8: @ 81C9DD8 - push {lr} - cmp r0, 0x1 - beq _081C9E04 - cmp r0, 0x1 - bgt _081C9DE8 - cmp r0, 0 - beq _081C9DF2 - b _081C9E50 -_081C9DE8: - cmp r0, 0x2 - beq _081C9E1A - cmp r0, 0x3 - beq _081C9E30 - b _081C9E50 -_081C9DF2: - bl sub_81CA9C8 - bl sub_81CA2DC - movs r0, 0x5 - bl audio_play - movs r0, 0 - b _081C9E52 -_081C9E04: - bl sub_81CA324 - cmp r0, 0 - bne _081C9E48 - movs r0, 0x7 - bl sub_81C7DFC - bl sub_81CA0C8 - movs r0, 0 - b _081C9E52 -_081C9E1A: - bl sub_81CA20C - movs r0, 0x7 - movs r1, 0 - movs r2, 0 - bl sub_81C7FA0 - bl sub_81CA714 - movs r0, 0 - b _081C9E52 -_081C9E30: - bl sub_81CA324 - cmp r0, 0 - bne _081C9E48 - bl sub_81C8010 - cmp r0, 0 - bne _081C9E48 - bl sub_81CA89C - cmp r0, 0 - beq _081C9E4C -_081C9E48: - movs r0, 0x2 - b _081C9E52 -_081C9E4C: - bl sub_81CA9D8 -_081C9E50: - movs r0, 0x4 -_081C9E52: - pop {r1} - bx r1 - thumb_func_end sub_81C9DD8 - - thumb_func_start sub_81C9E58 -sub_81C9E58: @ 81C9E58 - push {lr} - cmp r0, 0x1 - beq _081C9E86 - cmp r0, 0x1 - bgt _081C9E68 - cmp r0, 0 - beq _081C9E72 - b _081C9EC2 -_081C9E68: - cmp r0, 0x2 - beq _081C9E9E - cmp r0, 0x3 - beq _081C9EAA - b _081C9EC2 -_081C9E72: - bl sub_81CA9C8 - bl sub_81CA2DC - movs r0, 0x7 - movs r1, 0 - bl sub_81C7FC4 - movs r0, 0 - b _081C9EC4 -_081C9E86: - bl sub_81CA324 - cmp r0, 0 - bne _081C9EBA - bl sub_81C8010 - cmp r0, 0 - bne _081C9EBA - bl sub_81CA0C8 - movs r0, 0 - b _081C9EC4 -_081C9E9E: - bl sub_81CA20C - bl sub_81CA714 - movs r0, 0 - b _081C9EC4 -_081C9EAA: - bl sub_81CA324 - cmp r0, 0 - bne _081C9EBA - bl sub_81CA89C - cmp r0, 0 - beq _081C9EBE -_081C9EBA: - movs r0, 0x2 - b _081C9EC4 -_081C9EBE: - bl sub_81CA9D8 -_081C9EC2: - movs r0, 0x4 -_081C9EC4: - pop {r1} - bx r1 - thumb_func_end sub_81C9E58 - - thumb_func_start sub_81C9EC8 -sub_81C9EC8: @ 81C9EC8 - push {lr} - cmp r0, 0 - beq _081C9ED4 - cmp r0, 0x1 - beq _081C9EE2 - b _081C9EF0 -_081C9ED4: - movs r0, 0x20 - bl audio_play - bl sub_81CA770 - movs r0, 0 - b _081C9EF2 -_081C9EE2: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081C9EF0 - movs r0, 0x2 - b _081C9EF2 -_081C9EF0: - movs r0, 0x4 -_081C9EF2: - pop {r1} - bx r1 - thumb_func_end sub_81C9EC8 - - thumb_func_start sub_81C9EF8 -sub_81C9EF8: @ 81C9EF8 - push {lr} - cmp r0, 0 - beq _081C9F04 - cmp r0, 0x1 - beq _081C9F12 - b _081C9F20 -_081C9F04: - movs r0, 0x5 - bl audio_play - bl sub_81CA714 - movs r0, 0 - b _081C9F22 -_081C9F12: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081C9F20 - movs r0, 0x2 - b _081C9F22 -_081C9F20: - movs r0, 0x4 -_081C9F22: - pop {r1} - bx r1 - thumb_func_end sub_81C9EF8 - - thumb_func_start sub_81C9F28 -sub_81C9F28: @ 81C9F28 - push {lr} - cmp r0, 0x1 - beq _081C9F52 - cmp r0, 0x1 - bgt _081C9F38 - cmp r0, 0 - beq _081C9F42 - b _081C9FBC -_081C9F38: - cmp r0, 0x2 - beq _081C9F96 - cmp r0, 0x3 - beq _081C9FB0 - b _081C9FBC -_081C9F42: - bl sub_81C98C4 - lsls r0, 16 - lsrs r0, 16 - bl sub_81C7BA4 - movs r0, 0 - b _081C9FBE -_081C9F52: - bl sub_81C7BE8 - cmp r0, 0 - bne _081C9FB8 - bl sub_81C7880 - bl sub_81CA9C8 - bl sub_81CA2DC - bl sub_81C9894 - cmp r0, 0x3 - beq _081C9F7A - cmp r0, 0x4 - bne _081C9F84 - movs r0, 0x7 - movs r1, 0 - bl sub_81C7FC4 -_081C9F7A: - movs r0, 0x1 - movs r1, 0 - bl sub_81C7FC4 - b _081C9F8C -_081C9F84: - movs r0, 0 - movs r1, 0 - bl sub_81C7FC4 -_081C9F8C: - movs r0, 0x5 - bl audio_play - movs r0, 0 - b _081C9FBE -_081C9F96: - bl sub_81CA324 - cmp r0, 0 - bne _081C9FB8 - bl sub_81C8010 - cmp r0, 0 - bne _081C9FB8 - movs r0, 0 - bl sub_81C7AC0 - movs r0, 0 - b _081C9FBE -_081C9FB0: - bl sub_81C7B34 - cmp r0, 0 - beq _081C9FBC -_081C9FB8: - movs r0, 0x2 - b _081C9FBE -_081C9FBC: - movs r0, 0x4 -_081C9FBE: - pop {r1} - bx r1 - thumb_func_end sub_81C9F28 - - thumb_func_start sub_81C9FC4 -sub_81C9FC4: @ 81C9FC4 - push {r4,r5,lr} - movs r5, 0 - ldr r4, =gUnknown_086201C4 -_081C9FCA: - adds r0, r4, 0 - bl LoadCompressedObjectPic - adds r4, 0x8 - adds r5, 0x1 - cmp r5, 0x1 - bls _081C9FCA - ldr r0, =gUnknown_086201D4 - bl sub_81C795C - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C9FC4 - - thumb_func_start sub_81C9FEC -sub_81C9FEC: @ 81C9FEC - push {lr} - movs r0, 0x3 - bl FreeObjectTilesByTag - movs r0, 0x1 - bl FreeObjectTilesByTag - movs r0, 0x4 - bl FreeObjectPaletteByTag - movs r0, 0x5 - bl FreeObjectPaletteByTag - movs r0, 0x6 - bl FreeObjectPaletteByTag - movs r0, 0x7 - bl FreeObjectPaletteByTag - movs r0, 0x8 - bl FreeObjectPaletteByTag - movs r0, 0x3 - bl FreeObjectPaletteByTag - bl sub_81CA094 - bl sub_81CA698 - pop {r0} - bx r0 - thumb_func_end sub_81C9FEC - - thumb_func_start sub_81CA02C -sub_81CA02C: @ 81CA02C - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r0, 0x2 - bl sub_81C763C - movs r2, 0 - adds r0, 0x2C - mov r8, r0 -_081CA03E: - movs r4, 0 - lsls r0, r2, 2 - lsls r1, r2, 4 - adds r7, r2, 0x1 - adds r0, r2 - lsls r0, 18 - movs r2, 0xA0 - lsls r2, 14 - adds r5, r0, r2 - mov r0, r8 - adds r6, r1, r0 -_081CA054: - ldr r0, =gUnknown_0862034C - movs r1, 0x8C - asrs r2, r5, 16 - movs r3, 0x3 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gUnknown_02020630 - adds r1, r0 - stm r6!, {r1} - lsls r0, r4, 5 - strh r0, [r1, 0x24] - adds r4, 0x1 - cmp r4, 0x3 - ble _081CA054 - adds r2, r7, 0 - cmp r2, 0x5 - ble _081CA03E - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA02C - - thumb_func_start sub_81CA094 -sub_81CA094: @ 81CA094 - push {r4-r7,lr} - movs r0, 0x2 - bl sub_81C763C - movs r1, 0 - adds r7, r0, 0 - adds r7, 0x2C -_081CA0A2: - lsls r0, r1, 4 - adds r6, r1, 0x1 - adds r4, r0, r7 - movs r5, 0x3 -_081CA0AA: - ldr r0, [r4] - bl obj_free_rotscale_entry - ldm r4!, {r0} - bl RemoveObjectAndFreeTiles - subs r5, 0x1 - cmp r5, 0 - bge _081CA0AA - adds r1, r6, 0 - cmp r1, 0x5 - ble _081CA0A2 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81CA094 - - thumb_func_start sub_81CA0C8 -sub_81CA0C8: @ 81CA0C8 - push {lr} - bl sub_81C9894 - lsls r2, r0, 3 - subs r2, r0 - lsls r2, 2 - ldr r1, =gUnknown_08620244 - adds r0, r2, r1 - subs r1, 0x4 - adds r2, r1 - ldrh r1, [r2] - ldrh r2, [r2, 0x2] - bl sub_81CA0EC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA0C8 - - thumb_func_start sub_81CA0EC -sub_81CA0EC: @ 81CA0EC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - adds r6, r0, 0 - str r1, [sp, 0x14] - str r2, [sp] - movs r0, 0x2 - bl sub_81C763C - mov r10, r0 - movs r0, 0x3 - bl GetObjectTileRangeStartByTag - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x4] - movs r1, 0 -_081CA114: - ldr r0, [r6] - cmp r0, 0 - beq _081CA1B0 - movs r5, 0 - lsls r2, r1, 4 - mov r0, r10 - adds r0, 0x2C - lsls r3, r1, 2 - mov r9, r3 - movs r4, 0x10 - add r4, r10 - mov r8, r4 - adds r7, r6, 0x4 - str r7, [sp, 0xC] - ldr r3, [sp, 0x14] - ldr r4, [sp] - adds r3, r4 - str r3, [sp, 0x8] - adds r1, 0x1 - str r1, [sp, 0x10] - adds r4, r2, r0 -_081CA13E: - ldr r3, [r4] - ldr r0, [r6] - ldrh r2, [r0] - ldr r7, [sp, 0x4] - adds r2, r7 - lsls r0, r5, 3 - adds r2, r0 - ldr r1, =0x000003ff - adds r0, r1, 0 - ands r2, r0 - ldrh r0, [r3, 0x4] - ldr r7, =0xfffffc00 - adds r1, r7, 0 - ands r0, r1 - orrs r0, r2 - strh r0, [r3, 0x4] - ldr r0, [r6] - ldrh r0, [r0, 0x2] - adds r0, 0x4 - lsls r0, 16 - lsrs r0, 16 - bl IndexOfObjectPaletteTag - ldr r3, [r4] - lsls r0, 4 - ldrb r2, [r3, 0x5] - movs r1, 0xF - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x5] - ldr r2, [r4] - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r4] - mov r1, sp - ldrh r1, [r1, 0x14] - strh r1, [r0, 0x22] - ldr r1, [r4] - movs r0, 0x8C - strh r0, [r1, 0x20] - ldm r4!, {r1} - lsls r0, r5, 5 - strh r0, [r1, 0x24] - adds r5, 0x1 - cmp r5, 0x3 - ble _081CA13E - mov r1, r8 - add r1, r9 - movs r0, 0x1 - b _081CA1EC - .pool -_081CA1B0: - lsls r2, r1, 4 - mov r0, r10 - adds r0, 0x2C - lsls r3, r1, 2 - mov r9, r3 - movs r4, 0x10 - add r4, r10 - mov r8, r4 - adds r6, 0x4 - str r6, [sp, 0xC] - ldr r7, [sp, 0x14] - ldr r3, [sp] - adds r7, r3 - str r7, [sp, 0x8] - adds r1, 0x1 - str r1, [sp, 0x10] - movs r3, 0x4 - adds r2, r0 - movs r5, 0x3 -_081CA1D6: - ldm r2!, {r1} - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r3 - strb r0, [r1] - subs r5, 0x1 - cmp r5, 0 - bge _081CA1D6 - mov r1, r8 - add r1, r9 - movs r0, 0 -_081CA1EC: - str r0, [r1] - ldr r6, [sp, 0xC] - ldr r4, [sp, 0x8] - str r4, [sp, 0x14] - ldr r1, [sp, 0x10] - cmp r1, 0x5 - ble _081CA114 - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81CA0EC - - thumb_func_start sub_81CA20C -sub_81CA20C: @ 81CA20C - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r0, 0x2 - bl sub_81C763C - adds r6, r0, 0 - bl sub_81C98A4 - mov r8, r0 - movs r7, 0 - movs r5, 0 - adds r4, r6, 0 - adds r4, 0x2C -_081CA228: - lsls r0, r5, 2 - adds r1, r6, 0 - adds r1, 0x10 - adds r1, r0 - ldr r0, [r1] - cmp r0, 0 - beq _081CA25C - adds r0, r7, 0 - adds r7, 0x1 - cmp r0, r8 - bne _081CA244 - movs r2, 0x82 - strb r5, [r6, 0xB] - b _081CA246 -_081CA244: - movs r2, 0x8C -_081CA246: - adds r0, r4, 0 - movs r1, 0x80 - lsls r1, 1 - movs r3, 0xC - bl sub_81CA35C - adds r0, r4, 0 - movs r1, 0 - bl sub_81CA448 - b _081CA264 -_081CA25C: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81CA448 -_081CA264: - adds r4, 0x10 - adds r5, 0x1 - cmp r5, 0x5 - ble _081CA228 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81CA20C - - thumb_func_start sub_81CA278 -sub_81CA278: @ 81CA278 - push {r4,r5,lr} - movs r0, 0x2 - bl sub_81C763C - adds r4, r0, 0 - bl sub_81C98A4 - adds r3, r0, 0 - movs r2, 0 - movs r5, 0 - ldr r0, [r4, 0x10] - cmp r0, 0 - beq _081CA298 - cmp r5, r3 - beq _081CA2B2 -_081CA296: - adds r5, 0x1 -_081CA298: - adds r2, 0x1 - cmp r2, 0x5 - bgt _081CA2B2 - lsls r0, r2, 2 - adds r1, r4, 0 - adds r1, 0x10 - adds r1, r0 - ldr r0, [r1] - cmp r0, 0 - beq _081CA298 - cmp r5, r3 - bne _081CA296 - adds r5, r2, 0 -_081CA2B2: - ldrb r0, [r4, 0xB] - lsls r0, 4 - adds r0, 0x2C - adds r0, r4, r0 - movs r1, 0x82 - movs r2, 0x8C - movs r3, 0x4 - bl sub_81CA35C - lsls r0, r5, 4 - adds r0, 0x2C - adds r0, r4, r0 - movs r1, 0x8C - movs r2, 0x82 - movs r3, 0x4 - bl sub_81CA35C - strb r5, [r4, 0xB] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81CA278 - - thumb_func_start sub_81CA2DC -sub_81CA2DC: @ 81CA2DC - push {r4-r6,lr} - movs r0, 0x2 - bl sub_81C763C - adds r6, r0, 0 - movs r5, 0 - adds r4, r6, 0 - adds r4, 0x2C -_081CA2EC: - lsls r0, r5, 2 - adds r1, r6, 0 - adds r1, 0x10 - adds r1, r0 - ldr r0, [r1] - cmp r0, 0 - beq _081CA316 - ldrb r0, [r6, 0xB] - cmp r0, r5 - beq _081CA310 - adds r0, r4, 0 - movs r1, 0x8C - movs r2, 0x80 - lsls r2, 1 - movs r3, 0x8 - bl sub_81CA35C - b _081CA316 -_081CA310: - adds r0, r4, 0 - bl sub_81CA3B4 -_081CA316: - adds r4, 0x10 - adds r5, 0x1 - cmp r5, 0x5 - ble _081CA2EC - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81CA2DC - - thumb_func_start sub_81CA324 -sub_81CA324: @ 81CA324 - push {r4,lr} - movs r0, 0x2 - bl sub_81C763C - adds r3, r0, 0 - movs r2, 0 - ldr r4, =DummyObjectCallback - adds r1, r3, 0 - adds r1, 0x2C -_081CA336: - ldr r0, [r1] - ldr r0, [r0, 0x1C] - cmp r0, r4 - bne _081CA354 - adds r1, 0x10 - adds r2, 0x1 - cmp r2, 0x5 - ble _081CA336 - ldrb r0, [r3, 0xC] - cmp r0, 0 - bne _081CA354 - movs r0, 0 - b _081CA356 - .pool -_081CA354: - movs r0, 0x1 -_081CA356: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CA324 - - thumb_func_start sub_81CA35C -sub_81CA35C: @ 81CA35C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r4, r0, 0 - adds r5, r1, 0 - mov r9, r2 - adds r6, r3, 0 - ldr r0, =sub_81CA474 - mov r8, r0 - subs r0, r2, r5 - lsls r0, 4 - adds r1, r6, 0 - bl __divsi3 - adds r3, r0, 0 - movs r1, 0x3 - lsls r2, r5, 4 -_081CA380: - ldr r0, [r4] - strh r5, [r0, 0x20] - ldr r0, [r4] - strh r6, [r0, 0x2E] - ldr r0, [r4] - strh r3, [r0, 0x30] - ldr r0, [r4] - strh r2, [r0, 0x32] - ldr r0, [r4] - mov r7, r9 - strh r7, [r0, 0x3C] - ldm r4!, {r0} - mov r7, r8 - str r7, [r0, 0x1C] - subs r1, 0x1 - cmp r1, 0 - bge _081CA380 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA35C - - thumb_func_start sub_81CA3B4 -sub_81CA3B4: @ 81CA3B4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - movs r0, 0x2 - bl sub_81C763C - adds r7, r0, 0 - movs r5, 0 - mov r8, r5 -_081CA3C8: - ldr r2, [r4] - ldrb r1, [r2, 0x1] - movs r3, 0xD - negs r3, r3 - adds r0, r3, 0 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r2, 0x1] - ldr r2, [r4] - ldrb r0, [r2, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r2, 0x1] - ldr r1, [r4] - ldr r0, =sub_81CA4AC - str r0, [r1, 0x1C] - movs r6, 0x8 - strh r6, [r1, 0x2E] - ldr r0, [r4] - mov r1, r8 - strh r1, [r0, 0x30] - ldr r0, [r4] - strh r5, [r0, 0x3C] - ldr r0, [r4] - bl obj_alloc_rotscale_entry - ldm r4!, {r0} - movs r1, 0 - bl StartObjectRotScalAnim - adds r5, 0x1 - cmp r5, 0x3 - ble _081CA3C8 - movs r0, 0x52 - movs r1, 0x10 - bl SetGpuReg - ldr r0, =sub_81CA580 - movs r1, 0x3 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r6, [r1, 0x8] - ldrb r0, [r7, 0xC] - adds r0, 0x1 - strb r0, [r7, 0xC] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA3B4 - - thumb_func_start sub_81CA448 -sub_81CA448: @ 81CA448 - push {r4-r6,lr} - adds r5, r0, 0 - movs r0, 0x1 - ands r1, r0 - lsls r4, r1, 2 - movs r6, 0x5 - negs r6, r6 - movs r3, 0x3 -_081CA458: - ldm r5!, {r0} - adds r0, 0x3E - ldrb r2, [r0] - adds r1, r6, 0 - ands r1, r2 - orrs r1, r4 - strb r1, [r0] - subs r3, 0x1 - cmp r3, 0 - bge _081CA458 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81CA448 - - thumb_func_start sub_81CA474 -sub_81CA474: @ 81CA474 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - subs r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _081CA49A - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - lsls r0, 16 - asrs r0, 20 - strh r0, [r2, 0x20] - b _081CA4A2 -_081CA49A: - ldrh r0, [r2, 0x3C] - strh r0, [r2, 0x20] - ldr r0, =DummyObjectCallback - str r0, [r2, 0x1C] -_081CA4A2: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA474 - - thumb_func_start sub_81CA4AC -sub_81CA4AC: @ 81CA4AC - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _081CA574 - movs r0, 0x30 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _081CA4E2 - adds r0, r4, 0 - movs r1, 0x1 - bl StartObjectRotScalAnim - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - movs r0, 0x80 - lsls r0, 1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - strh r5, [r4, 0x24] - b _081CA578 -_081CA4E2: - ldrh r0, [r4, 0x32] - adds r0, 0x10 - strh r0, [r4, 0x32] - movs r2, 0x32 - ldrsh r0, [r4, r2] - asrs r1, r0, 3 - adds r0, r1, 0 - subs r0, 0x20 - lsrs r1, r0, 31 - adds r0, r1 - asrs r1, r0, 1 - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0x1 - beq _081CA518 - cmp r0, 0x1 - bgt _081CA50A - cmp r0, 0 - beq _081CA514 - b _081CA526 -_081CA50A: - cmp r0, 0x2 - beq _081CA51C - cmp r0, 0x3 - beq _081CA520 - b _081CA526 -_081CA514: - negs r1, r1 - b _081CA520 -_081CA518: - negs r0, r1 - b _081CA524 -_081CA51C: - strh r1, [r4, 0x24] - b _081CA526 -_081CA520: - lsls r0, r1, 1 - adds r0, r1 -_081CA524: - strh r0, [r4, 0x24] -_081CA526: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _081CA578 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl rotscale_free_entry - ldrb r1, [r4, 0x1] - lsrs r1, 6 - ldrb r2, [r4, 0x3] - lsrs r2, 6 - adds r0, r4, 0 - movs r3, 0 - bl CalcVecFromObjectCenterToObjectUpperLeft - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0xD - negs r1, r1 - ands r0, r1 - strb r0, [r4, 0x1] - ldr r0, =DummyObjectCallback - str r0, [r4, 0x1C] - b _081CA578 - .pool -_081CA574: - subs r0, r1, 0x1 - strh r0, [r4, 0x2E] -_081CA578: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81CA4AC - - thumb_func_start sub_81CA580 -sub_81CA580: @ 81CA580 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldrh r0, [r4] - movs r1, 0 - ldrsh r2, [r4, r1] - cmp r2, 0 - bne _081CA634 - movs r0, 0x2 - ldrsh r1, [r4, r0] - cmp r1, 0 - beq _081CA5AC - cmp r1, 0x1 - beq _081CA5CC - b _081CA638 - .pool -_081CA5AC: - movs r0, 0x10 - strh r0, [r4, 0x4] - strh r2, [r4, 0x6] - movs r1, 0xFC - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0x10 - bl SetGpuReg - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - b _081CA638 -_081CA5CC: - ldrh r0, [r4, 0x8] - ands r1, r0 - cmp r1, 0 - beq _081CA5E4 - ldrh r0, [r4, 0x4] - subs r0, 0x3 - strh r0, [r4, 0x4] - lsls r0, 16 - cmp r0, 0 - bge _081CA5F6 - strh r2, [r4, 0x4] - b _081CA5F6 -_081CA5E4: - ldrh r0, [r4, 0x6] - adds r0, 0x3 - strh r0, [r4, 0x6] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _081CA5F6 - movs r0, 0x10 - strh r0, [r4, 0x6] -_081CA5F6: - ldrh r1, [r4, 0x6] - lsls r1, 8 - ldrh r0, [r4, 0x4] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - bne _081CA638 - movs r0, 0x2 - bl sub_81C763C - ldrb r1, [r0, 0xC] - subs r1, 0x1 - strb r1, [r0, 0xC] - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - adds r0, r5, 0 - bl DestroyTask - b _081CA638 -_081CA634: - subs r0, 0x1 - strh r0, [r4] -_081CA638: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81CA580 - - thumb_func_start sub_81CA640 -sub_81CA640: @ 81CA640 - push {r4,lr} - movs r0, 0x2 - bl sub_81C763C - adds r4, r0, 0 - ldr r0, =gUnknown_0862036C - movs r1, 0x10 - movs r2, 0x60 - movs r3, 0x4 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gUnknown_02020630 - adds r1, r0 - str r1, [r4, 0x28] - bl sub_81C98D4 - cmp r0, 0 - beq _081CA684 - ldr r1, [r4, 0x28] - ldr r0, =sub_81CA6AC - str r0, [r1, 0x1C] - b _081CA690 - .pool -_081CA684: - ldr r0, [r4, 0x28] - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_081CA690: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CA640 - - thumb_func_start sub_81CA698 -sub_81CA698: @ 81CA698 - push {lr} - movs r0, 0x2 - bl sub_81C763C - ldr r0, [r0, 0x28] - bl RemoveObjectAndFreeTiles - pop {r0} - bx r0 - thumb_func_end sub_81CA698 - - thumb_func_start sub_81CA6AC -sub_81CA6AC: @ 81CA6AC - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _081CA6DA - movs r0, 0 - strh r0, [r3, 0x2E] - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_081CA6DA: - pop {r0} - bx r0 - thumb_func_end sub_81CA6AC - - thumb_func_start sub_81CA6E0 -sub_81CA6E0: @ 81CA6E0 - push {r4,lr} - movs r0, 0x2 - bl sub_81C763C - adds r4, r0, 0 - ldr r0, =gUnknown_086202CC - bl AddWindow - strh r0, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - ldrb r0, [r4, 0x8] - movs r1, 0x66 - bl FillWindowPixelBuffer - ldrb r0, [r4, 0x8] - movs r1, 0x3 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA6E0 - - thumb_func_start sub_81CA714 -sub_81CA714: @ 81CA714 - push {r4-r6,lr} - sub sp, 0xC - movs r0, 0x2 - bl sub_81C763C - adds r5, r0, 0 - bl sub_81C98B4 - ldr r1, =gUnknown_086202D4 - lsls r0, 2 - adds r0, r1 - ldr r6, [r0] - movs r2, 0x1 - negs r2, r2 - movs r0, 0x1 - adds r1, r6, 0 - bl GetStringWidth - adds r4, r0, 0 - ldrb r0, [r5, 0x8] - movs r1, 0x66 - bl FillWindowPixelBuffer - ldrb r0, [r5, 0x8] - movs r2, 0xC0 - subs r2, r4 - lsrs r2, 1 - lsls r2, 24 - lsrs r2, 24 - ldr r1, =gUnknown_0862030C - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - str r6, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x1 - bl box_print - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA714 - - thumb_func_start sub_81CA770 -sub_81CA770: @ 81CA770 - push {r4-r6,lr} - sub sp, 0xC - movs r0, 0x2 - bl sub_81C763C - adds r5, r0, 0 - ldr r6, =gUnknown_085EBD4A - movs r2, 0x1 - negs r2, r2 - movs r0, 0x1 - adds r1, r6, 0 - bl GetStringWidth - adds r4, r0, 0 - ldrb r0, [r5, 0x8] - movs r1, 0x66 - bl FillWindowPixelBuffer - ldrb r0, [r5, 0x8] - movs r2, 0xC0 - subs r2, r4 - lsrs r2, 1 - lsls r2, 24 - lsrs r2, 24 - ldr r1, =gUnknown_0862030F - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - str r6, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x1 - bl box_print - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA770 - - thumb_func_start sub_81CA7C4 -sub_81CA7C4: @ 81CA7C4 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_81CA7C4 - - thumb_func_start sub_81CA7D4 -sub_81CA7D4: @ 81CA7D4 - push {r4,lr} - movs r0, 0x2 - bl sub_81C763C - adds r4, r0, 0 - ldr r0, =sub_81CA808 - movs r1, 0x2 - bl CreateTask - strb r0, [r4, 0xA] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA7D4 - - thumb_func_start sub_81CA7F4 -sub_81CA7F4: @ 81CA7F4 - push {lr} - movs r0, 0x2 - bl sub_81C763C - ldrb r0, [r0, 0xA] - bl DestroyTask - pop {r0} - bx r0 - thumb_func_end sub_81CA7F4 - - thumb_func_start sub_81CA808 -sub_81CA808: @ 81CA808 - push {lr} - movs r0, 0x3 - movs r1, 0x80 - movs r2, 0x1 - bl ChangeBgX - pop {r0} - bx r0 - thumb_func_end sub_81CA808 - - thumb_func_start sub_81CA818 -sub_81CA818: @ 81CA818 - push {r4,r5,lr} - ldr r0, =sub_81CA8B0 - movs r1, 0x3 - bl CreateTask - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, =gUnknown_0861FC7A - adds r0, r4, 0 - movs r1, 0x1 - adds r2, r5, 0 - bl SetWordTaskArg - adds r5, 0xC - adds r0, r4, 0 - movs r1, 0x3 - adds r2, r5, 0 - bl SetWordTaskArg - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA818 - - thumb_func_start sub_81CA850 -sub_81CA850: @ 81CA850 - push {lr} - ldr r0, =gUnknown_0861FC86 - movs r1, 0x31 - movs r2, 0x4 - bl sub_81C7944 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA850 - - thumb_func_start sub_81CA864 -sub_81CA864: @ 81CA864 - push {r4,r5,lr} - ldr r0, =sub_81CA8B0 - movs r1, 0x3 - bl CreateTask - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, =gUnknown_0861FC86 - adds r0, r4, 0 - movs r1, 0x1 - adds r2, r5, 0 - bl SetWordTaskArg - subs r5, 0xC - adds r0, r4, 0 - movs r1, 0x3 - adds r2, r5, 0 - bl SetWordTaskArg - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA864 - - thumb_func_start sub_81CA89C -sub_81CA89C: @ 81CA89C - push {lr} - ldr r0, =sub_81CA8B0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CA89C - - thumb_func_start sub_81CA8B0 -sub_81CA8B0: @ 81CA8B0 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r6, r0, 24 - lsls r4, r6, 2 - adds r4, r6 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - adds r0, r6, 0 - movs r1, 0x1 - bl GetWordTaskArg - adds r5, r0, 0 - adds r0, r6, 0 - movs r1, 0x3 - bl GetWordTaskArg - adds r1, r0, 0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - lsls r0, 16 - asrs r0, 16 - str r0, [sp] - add r0, sp, 0x8 - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r2, 0x2 - movs r3, 0xC - bl sub_81C79BC - add r0, sp, 0x8 - movs r1, 0x31 - movs r2, 0x4 - bl LoadPalette - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0xC - bne _081CA908 - adds r0, r6, 0 - bl DestroyTask -_081CA908: - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA8B0 - - thumb_func_start sub_81CA914 -sub_81CA914: @ 81CA914 - push {lr} - bl TransferPlttBuffer - bl LoadOamFromSprites - bl ProcessObjectCopyRequests - bl sub_80BA0A8 - pop {r0} - bx r0 - thumb_func_end sub_81CA914 - - thumb_func_start titlescreen_0 -titlescreen_0: @ 81CA92C - push {lr} - movs r0, 0x50 - movs r1, 0x90 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl SetGpuRegBits - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuRegBits - movs r0, 0x4A - movs r1, 0x1F - bl SetGpuRegBits - movs r0, 0x44 - movs r1, 0xA0 - bl SetGpuRegBits - bl remove_some_task - bl sub_81CAA3C - ldr r2, =gUnknown_08620384 - ldr r0, [r2] - ldr r1, [r2, 0x4] - ldr r2, [r2, 0x8] - bl sub_80BA038 - ldr r0, =sub_81CA914 - bl c3args_set_0toR1_1to0 - ldr r0, =sub_81CA9EC - movs r1, 0x3 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end titlescreen_0 - - thumb_func_start sub_81CA994 -sub_81CA994: @ 81CA994 - push {lr} - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl ClearGpuRegBits - bl remove_some_task - ldr r0, =sub_81CA9EC - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - bl sub_81C760C - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA994 - - thumb_func_start sub_81CA9C8 -sub_81CA9C8: @ 81CA9C8 - push {lr} - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - pop {r0} - bx r0 - thumb_func_end sub_81CA9C8 - - thumb_func_start sub_81CA9D8 -sub_81CA9D8: @ 81CA9D8 - push {lr} - bl sub_81CAA3C - movs r0, 0x50 - movs r1, 0x90 - bl SetGpuReg - pop {r0} - bx r0 - thumb_func_end sub_81CA9D8 - - thumb_func_start sub_81CA9EC -sub_81CA9EC: @ 81CA9EC - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r2, r1, r0 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - lsls r0, 16 - cmp r0, 0 - ble _081CAA30 - movs r0, 0 - strh r0, [r2] - ldrh r0, [r2, 0x2] - adds r0, 0x3 - movs r1, 0x7F - ands r0, r1 - strh r0, [r2, 0x2] - ldr r1, =gUnknown_08329F40 - movs r3, 0x2 - ldrsh r0, [r2, r3] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r1, 16 - asrs r1, 21 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x54 - bl SetGpuReg -_081CAA30: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA9EC - - thumb_func_start sub_81CAA3C -sub_81CAA3C: @ 81CAA3C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x8 - bl sub_81C9894 - adds r4, r0, 0 - bl sub_81C98A4 - ldr r2, =gUnknown_08620240 - lsls r1, r4, 3 - subs r1, r4 - lsls r1, 2 - adds r1, r2 - ldrh r2, [r1, 0x2] - adds r4, r2, 0 - muls r4, r0 - ldrh r1, [r1] - adds r4, r1 - subs r4, 0x8 - mov r0, sp - movs r6, 0 - strh r6, [r0] - ldr r5, =gUnknown_02038C28 - ldr r0, =0x010000a0 - mov r8, r0 - mov r0, sp - adds r1, r5, 0 - mov r2, r8 - bl CpuSet - mov r0, sp - adds r0, 0x2 - strh r6, [r0] - movs r1, 0xF0 - lsls r1, 3 - adds r1, r5 - mov r9, r1 - mov r2, r8 - bl CpuSet - add r0, sp, 0x4 - ldr r1, =0x000072f0 - adds r6, r1, 0 - strh r6, [r0] - lsls r4, 1 - adds r5, r4, r5 - ldr r1, =0x01000010 - mov r8, r1 - adds r1, r5, 0 - mov r2, r8 - bl CpuSet - mov r0, sp - adds r0, 0x6 - strh r6, [r0] - add r4, r9 - adds r1, r4, 0 - mov r2, r8 - bl CpuSet - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CAA3C - - thumb_func_start sub_81CAADC -sub_81CAADC: @ 81CAADC - push {lr} - bl sub_81CA9C8 - pop {r0} - bx r0 - thumb_func_end sub_81CAADC - - thumb_func_start sub_81CAAE8 -sub_81CAAE8: @ 81CAAE8 - push {r4,lr} - movs r1, 0xD4 - lsls r1, 1 - movs r0, 0x5 - bl sub_81C761C - adds r4, r0, 0 - cmp r4, 0 - beq _081CAB1C - ldr r0, =sub_81CAB44 - str r0, [r4, 0x18] - movs r0, 0 - strh r0, [r4, 0x8] - str r0, [r4, 0x10] - ldr r0, =sub_81CAD20 - movs r1, 0x1 - bl sub_81C7078 - str r0, [r4, 0x14] - movs r0, 0x1 - b _081CAB1E - .pool -_081CAB1C: - movs r0, 0 -_081CAB1E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CAAE8 - - thumb_func_start sub_81CAB24 -sub_81CAB24: @ 81CAB24 - push {lr} - movs r0, 0x5 - bl sub_81C763C - ldr r1, [r0, 0x18] - bl _call_via_r1 - pop {r1} - bx r1 - thumb_func_end sub_81CAB24 - - thumb_func_start sub_81CAB38 -sub_81CAB38: @ 81CAB38 - push {lr} - movs r0, 0x5 - bl sub_81C7650 - pop {r0} - bx r0 - thumb_func_end sub_81CAB38 - - thumb_func_start sub_81CAB44 -sub_81CAB44: @ 81CAB44 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r3, =gMain - ldrh r1, [r3, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081CAB5C - movs r0, 0x2 - b _081CABF4 - .pool -_081CAB5C: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081CAB68 - movs r0, 0x1 - b _081CABF4 -_081CAB68: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _081CAB74 - movs r0, 0x4 - b _081CABF4 -_081CAB74: - movs r0, 0x10 - ands r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _081CAB84 - movs r0, 0x3 - b _081CABF4 -_081CAB84: - ldrh r1, [r3, 0x2E] - movs r5, 0x1 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _081CABD0 - ldr r0, =sub_81CAC04 - str r0, [r4, 0x18] - strh r2, [r4] - bl sub_81C875C - lsls r0, 2 - adds r1, r4, r0 - ldrb r0, [r1, 0x1C] - cmp r0, 0 - beq _081CABAE - ldrh r0, [r1, 0x1E] - bl sub_81D17E8 - cmp r0, 0 - beq _081CABC0 -_081CABAE: - ldr r0, =gUnknown_0862250A - str r0, [r4, 0x4] - movs r0, 0x2 - strh r0, [r4, 0x2] - b _081CABC6 - .pool -_081CABC0: - ldr r0, =gUnknown_08622508 - str r0, [r4, 0x4] - strh r5, [r4, 0x2] -_081CABC6: - movs r0, 0x5 - b _081CABF4 - .pool -_081CABD0: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081CABF2 - bl sub_81C767C - cmp r0, 0x1 - beq _081CABEC - ldr r0, =sub_81CABFC - str r0, [r4, 0x18] - movs r0, 0xF - b _081CABF4 - .pool -_081CABEC: - movs r0, 0x20 - bl audio_play -_081CABF2: - movs r0, 0 -_081CABF4: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CAB44 - - thumb_func_start sub_81CABFC -sub_81CABFC: @ 81CABFC - ldr r0, =0x000186a4 - bx lr - .pool - thumb_func_end sub_81CABFC - - thumb_func_start sub_81CAC04 -sub_81CAC04: @ 81CAC04 - push {r4,lr} - adds r4, r0, 0 - ldr r2, =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081CAC24 - ldrh r0, [r4] - cmp r0, 0 - beq _081CAC24 - subs r0, 0x1 - b _081CAC38 - .pool -_081CAC24: - ldrh r1, [r2, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081CAC3E - ldrh r0, [r4] - ldrh r1, [r4, 0x2] - cmp r0, r1 - bcs _081CAC3E - adds r0, 0x1 -_081CAC38: - strh r0, [r4] - movs r0, 0x6 - b _081CACAC -_081CAC3E: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081CAC98 - ldrh r1, [r4] - ldr r0, [r4, 0x4] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _081CAC8C - cmp r0, 0x1 - bgt _081CAC5E - cmp r0, 0 - beq _081CAC64 - b _081CAC98 -_081CAC5E: - cmp r0, 0x2 - bne _081CAC98 - b _081CACA6 -_081CAC64: - bl sub_81C767C - cmp r0, 0x1 - bne _081CAC72 - movs r0, 0x2 - bl sub_81C7688 -_081CAC72: - ldr r0, =sub_81CACF8 - str r0, [r4, 0x18] - bl sub_81CB1D0 - cmp r0, 0 - beq _081CAC88 - movs r0, 0x9 - b _081CACAC - .pool -_081CAC88: - movs r0, 0x8 - b _081CACAC -_081CAC8C: - ldr r0, =sub_81CACB8 - str r0, [r4, 0x18] - movs r0, 0xB - b _081CACAC - .pool -_081CAC98: - ldrh r1, [r2, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _081CACA6 - movs r0, 0 - b _081CACAC -_081CACA6: - ldr r0, =sub_81CAB44 - str r0, [r4, 0x18] - movs r0, 0x7 -_081CACAC: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CAC04 - - thumb_func_start sub_81CACB8 -sub_81CACB8: @ 81CACB8 - push {lr} - adds r3, r0, 0 - ldr r2, =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081CACD0 - movs r0, 0xC - b _081CACF0 - .pool -_081CACD0: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081CACDC - movs r0, 0xD - b _081CACF0 -_081CACDC: - ldrh r1, [r2, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _081CACEA - movs r0, 0 - b _081CACF0 -_081CACEA: - ldr r0, =sub_81CAB44 - str r0, [r3, 0x18] - movs r0, 0xE -_081CACF0: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CACB8 - - thumb_func_start sub_81CACF8 -sub_81CACF8: @ 81CACF8 - push {lr} - adds r2, r0, 0 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _081CAD10 - movs r0, 0 - b _081CAD16 - .pool -_081CAD10: - ldr r0, =sub_81CAB44 - str r0, [r2, 0x18] - movs r0, 0xA -_081CAD16: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CACF8 - - thumb_func_start sub_81CAD20 -sub_81CAD20: @ 81CAD20 - push {r4-r7,lr} - adds r5, r0, 0 - movs r0, 0x5 - bl sub_81C763C - adds r4, r0, 0 - cmp r5, 0x1 - beq _081CAD4C - cmp r5, 0x1 - bgt _081CAD3A - cmp r5, 0 - beq _081CAD44 - b _081CAE00 -_081CAD3A: - cmp r5, 0x2 - beq _081CAD9C - cmp r5, 0x3 - beq _081CADFC - b _081CAE00 -_081CAD44: - strh r5, [r4, 0x8] - strh r5, [r4, 0xA] -_081CAD48: - movs r0, 0x1 - b _081CAE02 -_081CAD4C: - movs r6, 0 - ldrh r5, [r4, 0x8] -_081CAD50: - adds r0, r5, 0 - bl sub_81D15F4 - cmp r0, 0 - beq _081CAD80 - ldrh r0, [r4, 0xA] - lsls r0, 2 - adds r0, r4, r0 - strh r5, [r0, 0x1E] - ldrh r0, [r4, 0xA] - lsls r0, 2 - adds r0, r4, r0 - movs r1, 0x1 - strb r1, [r0, 0x1C] - adds r0, r5, 0 - bl sub_81D16DC - ldrh r1, [r4, 0xA] - lsls r1, 2 - adds r1, r4, r1 - strb r0, [r1, 0x1D] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] -_081CAD80: - ldrh r0, [r4, 0x8] - adds r1, r0, 0x1 - movs r2, 0 - strh r1, [r4, 0x8] - lsls r0, r1, 16 - lsrs r0, 16 - cmp r0, 0x14 - bhi _081CADF6 - adds r6, 0x1 - adds r5, 0x1 - cmp r6, 0x1D - ble _081CAD50 - movs r0, 0x3 - b _081CAE02 -_081CAD9C: - movs r6, 0 - ldrh r5, [r4, 0x8] - movs r7, 0 -_081CADA2: - ldrh r0, [r4, 0x8] - bl sub_81D1BF8 - cmp r0, 0 - bne _081CADDC - ldrh r0, [r4, 0x8] - bl sub_81CAE08 - cmp r0, 0 - beq _081CADDC - ldrh r0, [r4, 0xA] - lsls r0, 2 - adds r0, r4, r0 - ldrh r1, [r4, 0x8] - strh r1, [r0, 0x1E] - ldrh r0, [r4, 0xA] - lsls r0, 2 - adds r0, r4, r0 - strb r7, [r0, 0x1C] - adds r0, r5, 0 - bl sub_81CB0C8 - ldrh r1, [r4, 0xA] - lsls r1, 2 - adds r1, r4, r1 - strb r0, [r1, 0x1D] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] -_081CADDC: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x4D - bhi _081CAD48 - adds r6, 0x1 - adds r5, 0x1 - cmp r6, 0x1D - ble _081CADA2 - movs r0, 0x3 - b _081CAE02 -_081CADF6: - strh r1, [r4, 0xC] - strh r2, [r4, 0x8] - b _081CAD48 -_081CADFC: - movs r0, 0x1 - str r0, [r4, 0x10] -_081CAE00: - movs r0, 0x4 -_081CAE02: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81CAD20 - - thumb_func_start sub_81CAE08 -sub_81CAE08: @ 81CAE08 - push {lr} - cmp r0, 0x4D - ble _081CAE12 - movs r0, 0 - b _081CAE24 -_081CAE12: - movs r1, 0xAE - lsls r1, 1 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 -_081CAE24: - pop {r1} - bx r1 - thumb_func_end sub_81CAE08 - - thumb_func_start sub_81CAE28 -sub_81CAE28: @ 81CAE28 - push {lr} - movs r0, 0x5 - bl sub_81C763C - ldr r0, [r0, 0x10] - pop {r1} - bx r1 - thumb_func_end sub_81CAE28 - - thumb_func_start sub_81CAE38 -sub_81CAE38: @ 81CAE38 - push {lr} - movs r0, 0x5 - bl sub_81C763C - ldrh r0, [r0, 0xA] - pop {r1} - bx r1 - thumb_func_end sub_81CAE38 - - thumb_func_start sub_81CAE48 -sub_81CAE48: @ 81CAE48 - push {lr} - movs r0, 0x5 - bl sub_81C763C - ldrh r0, [r0, 0xC] - pop {r1} - bx r1 - thumb_func_end sub_81CAE48 - - thumb_func_start sub_81CAE58 -sub_81CAE58: @ 81CAE58 - push {lr} - movs r0, 0x5 - bl sub_81C763C - adds r1, r0, 0 - ldrh r0, [r1, 0xA] - ldrh r1, [r1, 0xC] - subs r0, r1 - pop {r1} - bx r1 - thumb_func_end sub_81CAE58 - - thumb_func_start sub_81CAE6C -sub_81CAE6C: @ 81CAE6C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x5 - bl sub_81C763C - adds r1, r0, 0 - ldrh r0, [r1, 0xC] - adds r4, r0 - ldrh r0, [r1, 0xA] - cmp r4, r0 - bge _081CAE8A - lsls r0, r4, 2 - adds r0, r1, r0 - ldrh r0, [r0, 0x1E] - b _081CAE8C -_081CAE8A: - movs r0, 0x4E -_081CAE8C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CAE6C - - thumb_func_start sub_81CAE94 -sub_81CAE94: @ 81CAE94 - push {lr} - movs r0, 0x5 - bl sub_81C763C - adds r0, 0x1C - pop {r1} - bx r1 - thumb_func_end sub_81CAE94 - - thumb_func_start sub_81CAEA4 -sub_81CAEA4: @ 81CAEA4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x5 - bl sub_81C763C - lsls r4, 2 - adds r0, r4 - ldrb r0, [r0, 0x1D] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CAEA4 - - thumb_func_start sub_81CAEBC -sub_81CAEBC: @ 81CAEBC - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x5 - bl sub_81C763C - lsls r1, r4, 2 - adds r1, r0, r1 - ldrb r0, [r1, 0x1C] - cmp r0, 0 - bne _081CAED4 - ldrh r4, [r1, 0x1E] - b _081CAEDC -_081CAED4: - ldrh r0, [r1, 0x1E] - bl sub_81D1854 - adds r4, r0, 0 -_081CAEDC: - cmp r4, 0x4E - beq _081CAEFC - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x000009ca - adds r0, r1 - adds r0, r4 - ldrb r1, [r0] - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - b _081CAEFE - .pool -_081CAEFC: - movs r0, 0 -_081CAEFE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CAEBC - - thumb_func_start sub_81CAF04 -sub_81CAF04: @ 81CAF04 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x5 - bl sub_81C763C - lsls r1, r4, 2 - adds r1, r0, r1 - ldrb r0, [r1, 0x1C] - cmp r0, 0 - bne _081CAF34 - ldrh r0, [r1, 0x1E] - bl sub_81D15BC - adds r4, r0, 0 - ldr r1, =gTrainers - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x3] - b _081CAF6C - .pool -_081CAF34: - ldrh r5, [r1, 0x1E] - adds r0, r5, 0 - bl sub_81D1854 - adds r4, r0, 0 - cmp r4, 0x4E - bne _081CAF58 - adds r0, r5, 0 - bl sub_81D1BD0 - adds r4, r0, 0 - ldr r0, =gTrainerPicIndices - adds r0, r4, r0 - ldrb r0, [r0] - b _081CAF6C - .pool -_081CAF58: - adds r0, r4, 0 - bl sub_81D15BC - adds r4, r0, 0 - ldr r0, =gTrainers - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r0, [r1, 0x3] -_081CAF6C: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CAF04 - - thumb_func_start sub_81CAF78 -sub_81CAF78: @ 81CAF78 - push {r4-r6,lr} - adds r5, r0, 0 - adds r6, r1, 0 - movs r0, 0x5 - bl sub_81C763C - adds r4, r0, 0 - movs r0, 0 - strb r0, [r6] - ldr r0, =gUnknown_02037318 - ldrb r0, [r0, 0x17] - bl is_light_level_1_2_3_or_6 - lsls r0, 24 - cmp r0, 0 - bne _081CAFA4 - ldr r0, =gUnknown_085EEB0B - b _081CAFCE - .pool -_081CAFA4: - lsls r0, r5, 2 - adds r1, r4, r0 - ldrb r0, [r1, 0x1C] - cmp r0, 0 - bne _081CAFC4 - ldrh r0, [r1, 0x1E] - bl sub_81D15BC - ldr r1, =gStringVar4 - bl sub_81967AC - strb r0, [r6] - b _081CAFCC - .pool -_081CAFC4: - ldrh r0, [r1, 0x1E] - ldr r1, =gStringVar4 - bl sub_81D189C -_081CAFCC: - ldr r0, =gStringVar4 -_081CAFCE: - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CAF78 - - thumb_func_start sub_81CAFD8 -sub_81CAFD8: @ 81CAFD8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x5 - bl sub_81C763C - lsls r4, 2 - adds r4, r0, r4 - ldrb r0, [r4, 0x1C] - cmp r0, 0 - beq _081CB004 - ldrh r0, [r4, 0x1E] - bl sub_81D1854 - adds r1, r0, 0 - cmp r1, 0x4E - bne _081CB006 - ldrh r0, [r4, 0x1E] - adds r1, r5, 0 - bl sub_81D1B40 - b _081CB012 -_081CB004: - ldrh r1, [r4, 0x1E] -_081CB006: - ldr r2, =gUnknown_08622028 - lsls r0, r5, 2 - lsls r1, 4 - adds r0, r1 - adds r0, r2 - ldr r0, [r0] -_081CB012: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CAFD8 - - thumb_func_start sub_81CB01C -sub_81CB01C: @ 81CB01C - push {lr} - movs r0, 0x5 - bl sub_81C763C - ldrh r0, [r0] - pop {r1} - bx r1 - thumb_func_end sub_81CB01C - - thumb_func_start sub_81CB02C -sub_81CB02C: @ 81CB02C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x5 - bl sub_81C763C - adds r1, r0, 0 - ldrh r0, [r1, 0x2] - cmp r0, r4 - blt _081CB046 - ldr r0, [r1, 0x4] - adds r0, r4 - ldrb r0, [r0] - b _081CB048 -_081CB046: - movs r0, 0x3 -_081CB048: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CB02C - - thumb_func_start sub_81CB050 -sub_81CB050: @ 81CB050 - push {r4,lr} - sub sp, 0x8 - adds r2, r0, 0 - adds r4, r1, 0 - ldrb r0, [r2] - cmp r0, 0 - bne _081CB088 - ldrh r0, [r2, 0x2] - bl sub_81D15BC - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTrainers - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0xD - muls r0, r2 - ldr r2, =gTrainerClassNames - adds r0, r2 - str r0, [sp] - adds r1, 0x4 - str r1, [sp, 0x4] - b _081CB092 - .pool -_081CB088: - ldrh r0, [r2, 0x2] - add r2, sp, 0x4 - mov r1, sp - bl sub_81D1A78 -_081CB092: - ldr r2, [sp] - cmp r2, 0 - beq _081CB0B4 - ldr r0, [sp, 0x4] - cmp r0, 0 - beq _081CB0B4 - adds r0, r4, 0 - movs r1, 0x7 - movs r3, 0x45 - bl sub_81DB494 - ldr r2, [sp, 0x4] - movs r1, 0x7 - movs r3, 0x33 - bl sub_81DB494 - b _081CB0C0 -_081CB0B4: - adds r0, r4, 0 - movs r1, 0x7 - movs r2, 0 - movs r3, 0x78 - bl sub_81DB494 -_081CB0C0: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CB050 - - thumb_func_start sub_81CB0C8 -sub_81CB0C8: @ 81CB0C8 - push {lr} - ldr r1, =gUnknown_085500A4 - lsls r0, 4 - adds r0, r1 - ldrh r2, [r0, 0xA] - ldrh r1, [r0, 0xC] - adds r0, r2, 0 - bl get_mapheader_by_bank_and_number - ldrb r0, [r0, 0x14] - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CB0C8 - - thumb_func_start sub_81CB0E4 -sub_81CB0E4: @ 81CB0E4 - push {r4-r7,lr} - adds r5, r0, 0 - movs r0, 0x5 - bl sub_81C763C - adds r7, r0, 0 - movs r6, 0x1 - adds r5, 0x1 - ldrh r0, [r7, 0xA] - cmp r5, r0 - bge _081CB120 - lsls r0, r5, 2 - adds r0, 0x1C - adds r4, r0, r7 -_081CB100: - ldrb r0, [r4] - cmp r0, 0 - beq _081CB110 - ldrh r0, [r4, 0x2] - bl sub_81D17E8 - cmp r0, 0 - beq _081CB114 -_081CB110: - adds r0, r6, 0 - b _081CB122 -_081CB114: - adds r6, 0x1 - adds r4, 0x4 - adds r5, 0x1 - ldrh r0, [r7, 0xA] - cmp r5, r0 - blt _081CB100 -_081CB120: - movs r0, 0 -_081CB122: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81CB0E4 - - thumb_func_start sub_81CB128 -sub_81CB128: @ 81CB128 - push {r4-r6,lr} - adds r5, r0, 0 - movs r0, 0x5 - bl sub_81C763C - adds r1, r0, 0 - movs r6, 0x1 - negs r6, r6 - subs r5, 0x1 - cmp r5, 0 - blt _081CB162 - lsls r0, r5, 2 - adds r0, 0x1C - adds r4, r0, r1 -_081CB144: - ldrb r0, [r4] - cmp r0, 0 - beq _081CB154 - ldrh r0, [r4, 0x2] - bl sub_81D17E8 - cmp r0, 0 - beq _081CB158 -_081CB154: - adds r0, r6, 0 - b _081CB164 -_081CB158: - subs r6, 0x1 - subs r4, 0x4 - subs r5, 0x1 - cmp r5, 0 - bge _081CB144 -_081CB162: - movs r0, 0 -_081CB164: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81CB128 - - thumb_func_start sub_81CB16C -sub_81CB16C: @ 81CB16C - push {r4,lr} - movs r4, 0 -_081CB170: - adds r0, r4, 0 - bl sub_81CAE08 - cmp r0, 0 - beq _081CB18A - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x000009ca - adds r0, r1 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _081CB1B2 -_081CB18A: - adds r4, 0x1 - cmp r4, 0x4D - ble _081CB170 - movs r4, 0 -_081CB192: - adds r0, r4, 0 - bl sub_81D15F4 - cmp r0, 0 - beq _081CB1C0 - adds r0, r4, 0 - bl sub_81D1854 - ldr r1, =gSaveBlock1Ptr - ldr r1, [r1] - ldr r2, =0x000009ca - adds r1, r2 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _081CB1C0 -_081CB1B2: - movs r0, 0x1 - b _081CB1C8 - .pool -_081CB1C0: - adds r4, 0x1 - cmp r4, 0x14 - ble _081CB192 - movs r0, 0 -_081CB1C8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CB16C - - thumb_func_start sub_81CB1D0 -sub_81CB1D0: @ 81CB1D0 - push {r4,lr} - movs r0, 0x5 - bl sub_81C763C - adds r4, r0, 0 - bl sub_81C875C - adds r1, r0, 0 - lsls r0, r1, 2 - adds r4, r0 - ldrb r0, [r4, 0x1C] - cmp r0, 0 - bne _081CB218 - adds r0, r1, 0 - bl sub_81CAEA4 - ldr r1, =gUnknown_02037318 - lsls r0, 16 - lsrs r0, 16 - ldrb r1, [r1, 0x14] - cmp r0, r1 - bne _081CB258 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x000009ca - adds r0, r1 - ldrh r4, [r4, 0x1E] - adds r0, r4 - ldrb r0, [r0] - b _081CB246 - .pool -_081CB218: - ldrh r0, [r4, 0x1E] - cmp r0, 0xB - bne _081CB258 - adds r0, r1, 0 - bl sub_81CAEA4 - ldr r1, =gUnknown_02037318 - lsls r0, 16 - lsrs r0, 16 - ldrb r1, [r1, 0x14] - cmp r0, r1 - bne _081CB258 - ldr r0, =0x0000086b - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081CB258 - movs r0, 0x5B - bl FlagGet - lsls r0, 24 -_081CB246: - cmp r0, 0 - bne _081CB258 - movs r0, 0x1 - b _081CB25A - .pool -_081CB258: - movs r0, 0 -_081CB25A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CB1D0 - - thumb_func_start sub_81CB260 -sub_81CB260: @ 81CB260 - push {r4,lr} - ldr r1, =0x00002048 - movs r0, 0x6 - bl sub_81C761C - adds r4, r0, 0 - cmp r4, 0 - beq _081CB294 - movs r0, 0 - strb r0, [r4, 0x19] - ldr r0, =sub_81CB324 - movs r1, 0x1 - bl sub_81C7078 - str r0, [r4, 0x4] - ldr r0, =sub_81CB310 - str r0, [r4] - movs r0, 0x1 - b _081CB296 - .pool -_081CB294: - movs r0, 0 -_081CB296: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CB260 - - thumb_func_start sub_81CB29C -sub_81CB29C: @ 81CB29C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl sub_81C763C - adds r5, r0, 0 - ldr r0, =gUnknown_08622798 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - movs r1, 0x1 - bl sub_81C7078 - str r0, [r5, 0x4] - ldr r0, =sub_81CB310 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CB29C - - thumb_func_start sub_81CB2CC -sub_81CB2CC: @ 81CB2CC - push {lr} - movs r0, 0x6 - bl sub_81C763C - ldr r0, [r0] - bl _call_via_r0 - pop {r1} - bx r1 - thumb_func_end sub_81CB2CC - - thumb_func_start sub_81CB2E0 -sub_81CB2E0: @ 81CB2E0 - push {r4,lr} - movs r0, 0x6 - bl sub_81C763C - adds r4, r0, 0 - bl sub_81CC2B4 - bl sub_81CBC1C - ldrb r0, [r4, 0x12] - bl RemoveWindow - ldrb r0, [r4, 0x10] - bl RemoveWindow - ldrb r0, [r4, 0x14] - bl RemoveWindow - movs r0, 0x6 - bl sub_81C7650 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CB2E0 - - thumb_func_start sub_81CB310 -sub_81CB310: @ 81CB310 - push {lr} - movs r0, 0x6 - bl sub_81C763C - ldr r0, [r0, 0x4] - bl sub_81C70D8 - pop {r1} - bx r1 - thumb_func_end sub_81CB310 - - thumb_func_start sub_81CB324 -sub_81CB324: @ 81CB324 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - movs r0, 0x6 - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x7 - bls _081CB338 - b _081CB504 -_081CB338: - lsls r0, r4, 2 - ldr r1, =_081CB348 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CB348: - .4byte _081CB368 - .4byte _081CB3D4 - .4byte _081CB424 - .4byte _081CB468 - .4byte _081CB482 - .4byte _081CB494 - .4byte _081CB4A6 - .4byte _081CB4EA -_081CB368: - ldr r0, =gUnknown_0862278C - movs r1, 0x3 - bl sub_81C7B54 - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - ldr r1, =gUnknown_08622530 - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, =0x00001024 - adds r1, r5, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - ldr r1, =gUnknown_086225D4 - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - ldr r0, =gUnknown_08622510 - movs r1, 0x20 - movs r2, 0x20 - bl sub_81C7944 - movs r0, 0x2 - b _081CB418 - .pool -_081CB3D4: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - beq _081CB3E0 - b _081CB4FA -_081CB3E0: - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_8199DF0 - adds r1, r5, 0 - adds r1, 0x24 - movs r0, 0x1 - bl SetBgTilemapBuffer - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x20 - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - ldr r0, =gUnknown_086226E0 - movs r1, 0x10 - movs r2, 0x20 - bl sub_81C7944 - movs r0, 0x1 -_081CB418: - bl CopyBgTilemapBufferToVram - movs r0, 0 - b _081CB506 - .pool -_081CB424: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _081CB4FA - adds r0, r5, 0 - bl sub_81CC034 - ldr r1, =gUnknown_08622760 - str r4, [sp] - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, =gUnknown_08622700 - movs r1, 0x30 - movs r2, 0x20 - bl sub_81C7944 - ldr r0, =gUnknown_08622720 - movs r1, 0x50 - movs r2, 0x20 - bl sub_81C7944 - movs r0, 0 - b _081CB506 - .pool -_081CB468: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081CB4FA - bl sub_81CAE28 - cmp r0, 0 - beq _081CB4FA - bl sub_81CBBB8 - movs r0, 0 - b _081CB506 -_081CB482: - bl sub_81C8224 - cmp r0, 0 - bne _081CB4FA - adds r0, r5, 0 - bl sub_81CBD78 - movs r0, 0 - b _081CB506 -_081CB494: - adds r0, r5, 0 - bl sub_81CBDC0 - adds r0, r5, 0 - movs r1, 0 - bl sub_81CBEF8 - movs r0, 0 - b _081CB506 -_081CB4A6: - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg - movs r0, 0x1 - bl ShowBg - bl sub_81CC214 - movs r0, 0x3 - bl sub_81C7DFC - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0 - bl sub_81C7FA0 - movs r0, 0x1 - bl sub_81C7AC0 - movs r0, 0 - b _081CB506 -_081CB4EA: - bl sub_81C7B34 - cmp r0, 0 - bne _081CB4FA - bl sub_81C8010 - cmp r0, 0 - beq _081CB4FE -_081CB4FA: - movs r0, 0x2 - b _081CB506 -_081CB4FE: - movs r0, 0x1 - bl sub_81CBC38 -_081CB504: - movs r0, 0x4 -_081CB506: - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CB324 - - thumb_func_start sub_81CB510 -sub_81CB510: @ 81CB510 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CB55E - cmp r4, 0x1 - bgt _081CB52A - cmp r4, 0 - beq _081CB534 - b _081CB580 -_081CB52A: - cmp r4, 0x2 - beq _081CB566 - cmp r4, 0x3 - beq _081CB572 - b _081CB580 -_081CB534: - bl sub_81C868C - cmp r0, 0x1 - beq _081CB54C - cmp r0, 0x1 - bgt _081CB546 - cmp r0, 0 - beq _081CB580 - b _081CB56E -_081CB546: - cmp r0, 0x2 - beq _081CB556 - b _081CB56E -_081CB54C: - movs r0, 0x5 - bl audio_play - movs r0, 0x7 - b _081CB582 -_081CB556: - movs r0, 0x5 - bl audio_play - b _081CB56E -_081CB55E: - bl sub_81C8630 - cmp r0, 0 - bne _081CB57C -_081CB566: - adds r0, r5, 0 - movs r1, 0 - bl sub_81CBEF8 -_081CB56E: - movs r0, 0 - b _081CB582 -_081CB572: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081CB580 -_081CB57C: - movs r0, 0x2 - b _081CB582 -_081CB580: - movs r0, 0x4 -_081CB582: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CB510 - - thumb_func_start sub_81CB588 -sub_81CB588: @ 81CB588 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CB5D6 - cmp r4, 0x1 - bgt _081CB5A2 - cmp r4, 0 - beq _081CB5AC - b _081CB5F8 -_081CB5A2: - cmp r4, 0x2 - beq _081CB5DE - cmp r4, 0x3 - beq _081CB5EA - b _081CB5F8 -_081CB5AC: - bl sub_81C8658 - cmp r0, 0x1 - beq _081CB5C4 - cmp r0, 0x1 - bgt _081CB5BE - cmp r0, 0 - beq _081CB5F8 - b _081CB5E6 -_081CB5BE: - cmp r0, 0x2 - beq _081CB5CE - b _081CB5E6 -_081CB5C4: - movs r0, 0x5 - bl audio_play - movs r0, 0x7 - b _081CB5FA -_081CB5CE: - movs r0, 0x5 - bl audio_play - b _081CB5E6 -_081CB5D6: - bl sub_81C8630 - cmp r0, 0 - bne _081CB5F4 -_081CB5DE: - adds r0, r5, 0 - movs r1, 0 - bl sub_81CBEF8 -_081CB5E6: - movs r0, 0 - b _081CB5FA -_081CB5EA: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081CB5F8 -_081CB5F4: - movs r0, 0x2 - b _081CB5FA -_081CB5F8: - movs r0, 0x4 -_081CB5FA: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CB588 - - thumb_func_start sub_81CB600 -sub_81CB600: @ 81CB600 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CB64E - cmp r4, 0x1 - bgt _081CB61A - cmp r4, 0 - beq _081CB624 - b _081CB670 -_081CB61A: - cmp r4, 0x2 - beq _081CB656 - cmp r4, 0x3 - beq _081CB662 - b _081CB670 -_081CB624: - bl sub_81C870C - cmp r0, 0x1 - beq _081CB63C - cmp r0, 0x1 - bgt _081CB636 - cmp r0, 0 - beq _081CB670 - b _081CB65E -_081CB636: - cmp r0, 0x2 - beq _081CB646 - b _081CB65E -_081CB63C: - movs r0, 0x5 - bl audio_play - movs r0, 0x7 - b _081CB672 -_081CB646: - movs r0, 0x5 - bl audio_play - b _081CB65E -_081CB64E: - bl sub_81C8630 - cmp r0, 0 - bne _081CB66C -_081CB656: - adds r0, r5, 0 - movs r1, 0 - bl sub_81CBEF8 -_081CB65E: - movs r0, 0 - b _081CB672 -_081CB662: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081CB670 -_081CB66C: - movs r0, 0x2 - b _081CB672 -_081CB670: - movs r0, 0x4 -_081CB672: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CB600 - - thumb_func_start sub_81CB678 -sub_81CB678: @ 81CB678 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CB6C6 - cmp r4, 0x1 - bgt _081CB692 - cmp r4, 0 - beq _081CB69C - b _081CB6E8 -_081CB692: - cmp r4, 0x2 - beq _081CB6CE - cmp r4, 0x3 - beq _081CB6DA - b _081CB6E8 -_081CB69C: - bl sub_81C86CC - cmp r0, 0x1 - beq _081CB6B4 - cmp r0, 0x1 - bgt _081CB6AE - cmp r0, 0 - beq _081CB6E8 - b _081CB6D6 -_081CB6AE: - cmp r0, 0x2 - beq _081CB6BE - b _081CB6D6 -_081CB6B4: - movs r0, 0x5 - bl audio_play - movs r0, 0x7 - b _081CB6EA -_081CB6BE: - movs r0, 0x5 - bl audio_play - b _081CB6D6 -_081CB6C6: - bl sub_81C8630 - cmp r0, 0 - bne _081CB6E4 -_081CB6CE: - adds r0, r5, 0 - movs r1, 0 - bl sub_81CBEF8 -_081CB6D6: - movs r0, 0 - b _081CB6EA -_081CB6DA: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081CB6E8 -_081CB6E4: - movs r0, 0x2 - b _081CB6EA -_081CB6E8: - movs r0, 0x4 -_081CB6EA: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CB678 - - thumb_func_start sub_81CB6F0 -sub_81CB6F0: @ 81CB6F0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0 - beq _081CB706 - cmp r4, 0x1 - beq _081CB71C - b _081CB72A -_081CB706: - movs r0, 0x5 - bl audio_play - adds r0, r5, 0 - bl sub_81CBF60 - movs r0, 0x7 - bl sub_81C7BA4 - movs r0, 0 - b _081CB72C -_081CB71C: - adds r0, r5, 0 - bl sub_81CBFC4 - cmp r0, 0 - beq _081CB72A - movs r0, 0x2 - b _081CB72C -_081CB72A: - movs r0, 0x4 -_081CB72C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CB6F0 - - thumb_func_start sub_81CB734 -sub_81CB734: @ 81CB734 - push {r4,lr} - movs r0, 0x5 - bl audio_play - movs r0, 0x6 - bl sub_81C763C - adds r4, r0, 0 - bl sub_81CB01C - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_81CC344 - movs r0, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CB734 - - thumb_func_start sub_81CB75C -sub_81CB75C: @ 81CB75C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0 - beq _081CB772 - cmp r4, 0x1 - beq _081CB788 - b _081CB796 -_081CB772: - movs r0, 0x5 - bl audio_play - adds r0, r5, 0 - bl sub_81CBFF0 - movs r0, 0x6 - bl sub_81C7BA4 - movs r0, 0 - b _081CB798 -_081CB788: - adds r0, r5, 0 - bl sub_81CC004 - cmp r0, 0 - beq _081CB796 - movs r0, 0x2 - b _081CB798 -_081CB796: - movs r0, 0x4 -_081CB798: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CB75C - - thumb_func_start sub_81CB7A0 -sub_81CB7A0: @ 81CB7A0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CB7D4 - cmp r4, 0x1 - bgt _081CB7BA - cmp r4, 0 - beq _081CB7C4 - b _081CB81A -_081CB7BA: - cmp r4, 0x2 - beq _081CB7F8 - cmp r4, 0x3 - beq _081CB80C - b _081CB81A -_081CB7C4: - movs r0, 0x1 - bl sub_81C9148 - adds r0, r5, 0 - bl sub_81CC058 - movs r0, 0 - b _081CB81C -_081CB7D4: - adds r0, r5, 0 - bl sub_81CC0D0 - adds r4, r0, 0 - cmp r4, 0 - bne _081CB816 - adds r0, r5, 0 - bl sub_81CC0E0 - ldr r0, =0x00000107 - bl audio_play - strb r4, [r5, 0xE] - movs r0, 0 - b _081CB81C - .pool -_081CB7F8: - adds r0, r5, 0 - bl sub_81CC104 - cmp r0, 0 - bne _081CB816 - adds r0, r5, 0 - bl sub_81CC158 - movs r0, 0 - b _081CB81C -_081CB80C: - adds r0, r5, 0 - bl sub_81CC194 - cmp r0, 0 - beq _081CB81A -_081CB816: - movs r0, 0x2 - b _081CB81C -_081CB81A: - movs r0, 0x4 -_081CB81C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CB7A0 - - thumb_func_start sub_81CB824 -sub_81CB824: @ 81CB824 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CB85E - cmp r4, 0x1 - bgt _081CB83E - cmp r4, 0 - beq _081CB844 - b _081CB880 -_081CB83E: - cmp r4, 0x2 - beq _081CB872 - b _081CB880 -_081CB844: - movs r0, 0x5 - bl audio_play - adds r0, r5, 0 - bl sub_81CC09C - movs r0, 0x1 - bl sub_81C9148 - movs r0, 0x1 - strb r0, [r5, 0xE] - movs r0, 0 - b _081CB882 -_081CB85E: - adds r0, r5, 0 - bl sub_81CC0D0 - cmp r0, 0 - bne _081CB87C - adds r0, r5, 0 - bl sub_81CC11C - movs r0, 0 - b _081CB882 -_081CB872: - adds r0, r5, 0 - bl sub_81CC140 - cmp r0, 0 - beq _081CB880 -_081CB87C: - movs r0, 0x2 - b _081CB882 -_081CB880: - movs r0, 0x4 -_081CB882: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CB824 - - thumb_func_start sub_81CB888 -sub_81CB888: @ 81CB888 - push {r4-r6,lr} - adds r5, r0, 0 - movs r0, 0x6 - bl sub_81C763C - adds r4, r0, 0 - movs r6, 0 - cmp r5, 0x6 - bhi _081CB934 - lsls r0, r5, 2 - ldr r1, =_081CB8A8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CB8A8: - .4byte _081CB8C4 - .4byte _081CB8DA - .4byte _081CB8E2 - .4byte _081CB8F0 - .4byte _081CB8F8 - .4byte _081CB90C - .4byte _081CB922 -_081CB8C4: - ldrb r0, [r4, 0xE] - cmp r0, 0 - bne _081CB8D2 - movs r0, 0x84 - lsls r0, 1 - bl audio_play -_081CB8D2: - movs r0, 0x5 - bl audio_play - b _081CB934 -_081CB8DA: - adds r0, r4, 0 - bl sub_81CC1DC - b _081CB934 -_081CB8E2: - adds r0, r4, 0 - bl sub_81CC204 - cmp r0, 0 - beq _081CB934 -_081CB8EC: - movs r6, 0x2 - b _081CB934 -_081CB8F0: - adds r0, r4, 0 - bl sub_81CBFF0 - b _081CB934 -_081CB8F8: - adds r0, r4, 0 - bl sub_81CC004 - cmp r0, 0 - beq _081CB904 - movs r6, 0x2 -_081CB904: - movs r0, 0x6 - bl sub_81C7BA4 - b _081CB934 -_081CB90C: - bl sub_81C7BE8 - cmp r0, 0 - bne _081CB8EC - ldrb r0, [r4, 0xF] - cmp r0, 0 - beq _081CB92C - bl sub_81C8838 - movs r6, 0x1 - b _081CB934 -_081CB922: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _081CB8EC -_081CB92C: - movs r0, 0 - bl sub_81C9148 - movs r6, 0x4 -_081CB934: - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81CB888 - - thumb_func_start sub_81CB93C -sub_81CB93C: @ 81CB93C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CB974 - cmp r4, 0x1 - bgt _081CB956 - cmp r4, 0 - beq _081CB960 - b _081CB9BE -_081CB956: - cmp r4, 0x2 - beq _081CB990 - cmp r4, 0x3 - beq _081CB9A0 - b _081CB9BE -_081CB960: - movs r0, 0x5 - bl audio_play - bl sub_81C877C - adds r0, r5, 0 - bl sub_81CC014 - movs r0, 0 - b _081CB9C0 -_081CB974: - bl sub_81C8820 - cmp r0, 0 - bne _081CB9BA - adds r0, r5, 0 - bl sub_81CC004 - cmp r0, 0 - bne _081CB9BA - movs r0, 0x8 - bl sub_81C7BA4 - movs r0, 0 - b _081CB9C0 -_081CB990: - movs r0, 0 - bl sub_81C87AC - adds r0, r5, 0 - bl sub_81CC39C - movs r0, 0 - b _081CB9C0 -_081CB9A0: - bl sub_81C8820 - cmp r0, 0 - bne _081CB9BA - adds r0, r5, 0 - bl sub_81CC42C - cmp r0, 0 - bne _081CB9BA - bl sub_81C7BE8 - cmp r0, 0 - beq _081CB9BE -_081CB9BA: - movs r0, 0x2 - b _081CB9C0 -_081CB9BE: - movs r0, 0x4 -_081CB9C0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CB93C - - thumb_func_start sub_81CB9C8 -sub_81CB9C8: @ 81CB9C8 - push {r4,r5,lr} - adds r5, r0, 0 - movs r0, 0x6 - bl sub_81C763C - adds r4, r0, 0 - cmp r5, 0x4 - bhi _081CBA60 - lsls r0, r5, 2 - ldr r1, =_081CB9E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CB9E8: - .4byte _081CB9FC - .4byte _081CBA1C - .4byte _081CBA34 - .4byte _081CBA40 - .4byte _081CBA4A -_081CB9FC: - bl sub_81C8770 - bl sub_81CB0E4 - adds r5, r0, 0 - cmp r5, 0 - beq _081CBA60 - movs r0, 0x5 - bl audio_play - strh r5, [r4, 0x16] - adds r0, r4, 0 - bl sub_81CC420 - movs r0, 0 - b _081CBA62 -_081CBA1C: - adds r0, r4, 0 - bl sub_81CC42C - cmp r0, 0 - bne _081CBA5C - movs r0, 0x16 - ldrsh r1, [r4, r0] - adds r0, r4, 0 - bl sub_81CBEF8 - movs r0, 0 - b _081CBA62 -_081CBA34: - movs r1, 0x16 - ldrsh r0, [r4, r1] - bl sub_81C87AC - movs r0, 0 - b _081CBA62 -_081CBA40: - adds r0, r4, 0 - bl sub_81CC39C - movs r0, 0 - b _081CBA62 -_081CBA4A: - bl sub_81C8820 - cmp r0, 0 - bne _081CBA5C - adds r0, r4, 0 - bl sub_81CC42C - cmp r0, 0 - beq _081CBA60 -_081CBA5C: - movs r0, 0x2 - b _081CBA62 -_081CBA60: - movs r0, 0x4 -_081CBA62: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CB9C8 - - thumb_func_start sub_81CBA68 -sub_81CBA68: @ 81CBA68 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CBA9C - cmp r4, 0x1 - bgt _081CBA82 - cmp r4, 0 - beq _081CBA88 - b _081CBACC -_081CBA82: - cmp r4, 0x2 - beq _081CBABE - b _081CBACC -_081CBA88: - movs r0, 0x5 - bl audio_play - adds r0, r5, 0 - bl sub_81CC420 - bl sub_81C87F0 - movs r0, 0 - b _081CBACE -_081CBA9C: - bl sub_81C8820 - cmp r0, 0 - bne _081CBAC8 - adds r0, r5, 0 - bl sub_81CC42C - cmp r0, 0 - bne _081CBAC8 - movs r0, 0x6 - bl sub_81C7BA4 - adds r0, r5, 0 - bl sub_81CBDC0 - movs r0, 0 - b _081CBACE -_081CBABE: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081CBACC -_081CBAC8: - movs r0, 0x2 - b _081CBACE -_081CBACC: - movs r0, 0x4 -_081CBACE: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CBA68 - - thumb_func_start sub_81CBAD4 -sub_81CBAD4: @ 81CBAD4 - push {r4,r5,lr} - adds r5, r0, 0 - movs r0, 0x6 - bl sub_81C763C - adds r4, r0, 0 - cmp r5, 0x4 - bhi _081CBB6C - lsls r0, r5, 2 - ldr r1, =_081CBAF4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CBAF4: - .4byte _081CBB08 - .4byte _081CBB28 - .4byte _081CBB40 - .4byte _081CBB4C - .4byte _081CBB56 -_081CBB08: - bl sub_81C8770 - bl sub_81CB128 - adds r5, r0, 0 - cmp r5, 0 - beq _081CBB6C - movs r0, 0x5 - bl audio_play - strh r5, [r4, 0x16] - adds r0, r4, 0 - bl sub_81CC420 - movs r0, 0 - b _081CBB6E -_081CBB28: - adds r0, r4, 0 - bl sub_81CC42C - cmp r0, 0 - bne _081CBB68 - movs r0, 0x16 - ldrsh r1, [r4, r0] - adds r0, r4, 0 - bl sub_81CBEF8 - movs r0, 0 - b _081CBB6E -_081CBB40: - movs r1, 0x16 - ldrsh r0, [r4, r1] - bl sub_81C87AC - movs r0, 0 - b _081CBB6E -_081CBB4C: - adds r0, r4, 0 - bl sub_81CC39C - movs r0, 0 - b _081CBB6E -_081CBB56: - bl sub_81C8820 - cmp r0, 0 - bne _081CBB68 - adds r0, r4, 0 - bl sub_81CC42C - cmp r0, 0 - beq _081CBB6C -_081CBB68: - movs r0, 0x2 - b _081CBB6E -_081CBB6C: - movs r0, 0x4 -_081CBB6E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CBAD4 - - thumb_func_start sub_81CBB74 -sub_81CBB74: @ 81CBB74 - push {lr} - cmp r0, 0 - beq _081CBB80 - cmp r0, 0x1 - beq _081CBB9A - b _081CBBB2 -_081CBB80: - movs r0, 0x5 - bl audio_play - movs r0, 0 - bl sub_81CBC38 - movs r0, 0 - bl sub_81C7AC0 - bl sub_81C78A0 - movs r0, 0 - b _081CBBB4 -_081CBB9A: - bl sub_81C7B34 - cmp r0, 0 - bne _081CBBAA - bl sub_81C78C0 - cmp r0, 0 - beq _081CBBAE -_081CBBAA: - movs r0, 0x2 - b _081CBBB4 -_081CBBAE: - bl sub_81C7FDC -_081CBBB2: - movs r0, 0x4 -_081CBBB4: - pop {r1} - bx r1 - thumb_func_end sub_81CBB74 - - thumb_func_start sub_81CBBB8 -sub_81CBBB8: @ 81CBBB8 - push {lr} - sub sp, 0x18 - bl sub_81CAE94 - str r0, [sp] - bl sub_81CAE38 - mov r1, sp - movs r2, 0 - strh r0, [r1, 0x4] - movs r0, 0x4 - strb r0, [r1, 0x8] - mov r0, sp - strh r2, [r0, 0x6] - movs r0, 0xD - strb r0, [r1, 0x9] - movs r0, 0x10 - strb r0, [r1, 0xA] - movs r0, 0x1 - strb r0, [r1, 0xB] - movs r0, 0x8 - strb r0, [r1, 0xC] - movs r0, 0x3 - strb r0, [r1, 0xD] - movs r0, 0x7 - strb r0, [r1, 0xE] - ldr r0, =sub_81CB050 - str r0, [sp, 0x10] - ldr r0, =sub_81CBCEC - str r0, [sp, 0x14] - ldr r0, =gUnknown_08622794 - movs r2, 0x2 - bl sub_81C81D4 - ldr r0, =sub_81CBC64 - movs r1, 0x7 - bl CreateTask - add sp, 0x18 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CBBB8 - - thumb_func_start sub_81CBC1C -sub_81CBC1C: @ 81CBC1C - push {lr} - bl sub_81C8234 - ldr r0, =sub_81CBC64 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CBC1C - - thumb_func_start sub_81CBC38 -sub_81CBC38: @ 81CBC38 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =sub_81CBC64 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _081CBC56 - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - strh r4, [r0, 0x26] -_081CBC56: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CBC38 - - thumb_func_start sub_81CBC64 -sub_81CBC64: @ 81CBC64 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r2, r1, r0 - movs r1, 0x1E - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _081CBCC8 - ldrh r0, [r2] - adds r0, 0x4 - movs r1, 0x7F - ands r0, r1 - strh r0, [r2] - ldr r1, =gUnknown_08329F40 - movs r3, 0 - ldrsh r0, [r2, r3] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 20 - strh r0, [r2, 0x2] - ldr r0, =gUnknown_08622720 - adds r1, r0, 0 - adds r1, 0x20 - movs r3, 0x2 - ldrsh r2, [r2, r3] - str r2, [sp] - ldr r4, =gPlttBufferUnfaded + 0xA0 - str r4, [sp, 0x4] - movs r2, 0x10 - movs r3, 0x10 - bl sub_81C79BC - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081CBCC8 - ldr r1, =gPlttBufferFaded + 0xA0 - ldr r2, =0x04000008 - adds r0, r4, 0 - bl CpuSet -_081CBCC8: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CBC64 - - thumb_func_start sub_81CBCEC -sub_81CBCEC: @ 81CBCEC - push {r4-r6,lr} - adds r5, r1, 0 - adds r4, r2, 0 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r0, 24 - bl GetBgTilemapBuffer - adds r6, r0, 0 - lsls r4, 7 - adds r4, 0x3A - adds r6, r4 - adds r0, r5, 0 - bl sub_81CAEBC - cmp r0, 0 - beq _081CBD30 - movs r1, 0xA0 - lsls r1, 7 - adds r0, r1, 0 - strh r0, [r6] - adds r1, r6, 0 - adds r1, 0x40 - ldr r2, =0x00005001 - adds r0, r2, 0 - strh r0, [r1] - b _081CBD3C - .pool -_081CBD30: - ldr r0, =0x00005002 - adds r1, r0, 0 - strh r1, [r6] - adds r0, r6, 0 - adds r0, 0x40 - strh r1, [r0] -_081CBD3C: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CBCEC - - thumb_func_start sub_81CBD48 -sub_81CBD48: @ 81CBD48 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r0, 24 - bl GetBgTilemapBuffer - lsls r4, 7 - adds r4, 0x3A - adds r0, r4 - ldr r2, =0x00005002 - adds r1, r2, 0 - strh r1, [r0] - adds r0, 0x40 - strh r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CBD48 - - thumb_func_start sub_81CBD78 -sub_81CBD78: @ 81CBD78 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_086227D8 - bl AddWindow - strh r0, [r4, 0x10] - ldr r0, =gUnknown_086227E0 - bl AddWindow - strh r0, [r4, 0x12] - ldrb r0, [r4, 0x10] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4, 0x10] - bl PutWindowTilemap - ldrb r0, [r4, 0x12] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4, 0x12] - bl PutWindowTilemap - ldrb r0, [r4, 0x10] - movs r1, 0x1 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CBD78 - - thumb_func_start sub_81CBDC0 -sub_81CBDC0: @ 81CBDC0 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0x12] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrh r0, [r4, 0x12] - bl sub_81CBDF4 - ldrh r0, [r4, 0x12] - bl sub_81CBE0C - ldrh r0, [r4, 0x12] - bl sub_81CBE38 - ldrh r0, [r4, 0x12] - bl sub_81CBE50 - ldrb r0, [r4, 0x12] - movs r1, 0x2 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CBDC0 - - thumb_func_start sub_81CBDF4 -sub_81CBDF4: @ 81CBDF4 - push {lr} - lsls r0, 16 - lsrs r0, 16 - ldr r1, =gUnknown_085EBE5F - movs r2, 0 - bl sub_81CBE88 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CBDF4 - - thumb_func_start sub_81CBE0C -sub_81CBE0C: @ 81CBE0C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl sub_81CAE38 - adds r1, r0, 0 - mov r0, sp - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r0, r4, 0 - mov r1, sp - movs r2, 0x1 - bl sub_81CBEB4 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CBE0C - - thumb_func_start sub_81CBE38 -sub_81CBE38: @ 81CBE38 - push {lr} - lsls r0, 16 - lsrs r0, 16 - ldr r1, =gUnknown_085EBE6E - movs r2, 0x2 - bl sub_81CBE88 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CBE38 - - thumb_func_start sub_81CBE50 -sub_81CBE50: @ 81CBE50 - push {r4,lr} - sub sp, 0x8 - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0x9 - bl sub_80847F8 - adds r1, r0, 0 - ldr r0, =0x0001869f - cmp r1, r0 - ble _081CBE68 - adds r1, r0, 0 -_081CBE68: - mov r0, sp - movs r2, 0 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - adds r0, r4, 0 - mov r1, sp - movs r2, 0x3 - bl sub_81CBEB4 - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CBE50 - - thumb_func_start sub_81CBE88 -sub_81CBE88: @ 81CBE88 - push {lr} - sub sp, 0xC - adds r3, r1, 0 - lsls r2, 4 - adds r2, 0x1 - lsls r0, 24 - lsrs r0, 24 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x7 - adds r2, r3, 0 - movs r3, 0x2 - bl Print - add sp, 0xC - pop {r0} - bx r0 - thumb_func_end sub_81CBE88 - - thumb_func_start sub_81CBEB4 -sub_81CBEB4: @ 81CBEB4 - push {r4-r6,lr} - sub sp, 0xC - adds r5, r0, 0 - adds r6, r1, 0 - adds r4, r2, 0 - lsls r5, 16 - lsrs r5, 16 - movs r0, 0x7 - movs r2, 0x56 - bl GetStringRightAlignXOffset - adds r3, r0, 0 - lsls r4, 4 - adds r4, 0x1 - lsls r5, 24 - lsrs r5, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r5, 0 - movs r1, 0x7 - adds r2, r6, 0 - bl Print - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81CBEB4 - - thumb_func_start sub_81CBEF8 -sub_81CBEF8: @ 81CBEF8 - push {r4,r5,lr} - sub sp, 0x2C - adds r5, r0, 0 - adds r4, r1, 0 - bl sub_81C875C - adds r0, r4 - bl sub_81CAEA4 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xD5 - beq _081CBF1C - add r0, sp, 0xC - movs r2, 0 - bl GetMapName - b _081CBF24 -_081CBF1C: - ldr r1, =gUnknown_085EC00F - add r0, sp, 0xC - bl StringCopy -_081CBF24: - movs r0, 0x7 - add r1, sp, 0xC - movs r2, 0x58 - bl GetStringCenterAlignXOffset - adds r4, r0, 0 - ldrb r0, [r5, 0x10] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r5, 0x10] - lsls r4, 24 - lsrs r4, 24 - movs r1, 0x1 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - str r1, [sp, 0x8] - movs r1, 0x7 - add r2, sp, 0xC - adds r3, r4, 0 - bl Print - add sp, 0x2C - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CBEF8 - - thumb_func_start sub_81CBF60 -sub_81CBF60: @ 81CBF60 - push {r4-r6,lr} - sub sp, 0xC - adds r5, r0, 0 - ldrb r0, [r5, 0x12] - movs r1, 0x11 - bl FillWindowPixelBuffer - movs r4, 0 - movs r6, 0x80 - lsls r6, 17 - b _081CBF9C -_081CBF76: - ldrb r0, [r5, 0x12] - ldr r2, =gUnknown_086227E8 - lsls r1, 2 - adds r1, r2 - ldr r2, [r1] - lsrs r1, r6, 24 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x7 - movs r3, 0x10 - bl Print - movs r0, 0x80 - lsls r0, 21 - adds r6, r0 - adds r4, 0x1 -_081CBF9C: - cmp r4, 0x2 - bhi _081CBFAE - adds r0, r4, 0 - bl sub_81CB02C - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x3 - bne _081CBF76 -_081CBFAE: - ldrb r0, [r5, 0x12] - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CBF60 - - thumb_func_start sub_81CBFC4 -sub_81CBFC4: @ 81CBFC4 - push {r4,lr} - adds r4, r0, 0 - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081CBFD6 - movs r0, 0x1 - b _081CBFE8 -_081CBFD6: - bl sub_81CB01C - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_81CC2F0 - movs r0, 0 -_081CBFE8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CBFC4 - - thumb_func_start sub_81CBFF0 -sub_81CBFF0: @ 81CBFF0 - push {r4,lr} - adds r4, r0, 0 - bl sub_81CC330 - adds r0, r4, 0 - bl sub_81CBDC0 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CBFF0 - - thumb_func_start sub_81CC004 -sub_81CC004: @ 81CC004 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_81CC004 - - thumb_func_start sub_81CC014 -sub_81CC014: @ 81CC014 - push {r4,lr} - adds r4, r0, 0 - bl sub_81CC330 - ldrb r0, [r4, 0x12] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4, 0x12] - movs r1, 0x2 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CC014 - - thumb_func_start sub_81CC034 -sub_81CC034: @ 81CC034 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_08622808 - bl AddWindow - strh r0, [r4, 0x14] - ldrh r0, [r4, 0x14] - movs r1, 0x1 - movs r2, 0x4 - bl sub_8197184 - bl sub_81C7B40 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CC034 - - thumb_func_start sub_81CC058 -sub_81CC058: @ 81CC058 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x14] - movs r1, 0x1 - movs r2, 0x4 - bl sub_8197184 - ldrh r0, [r4, 0x14] - movs r1, 0x1 - movs r2, 0x4 - bl sub_81971C4 - ldrb r0, [r4, 0x14] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4, 0x14] - bl PutWindowTilemap - ldrb r0, [r4, 0x14] - movs r1, 0x3 - bl CopyWindowToVram - bl sub_81C7CCC - movs r2, 0 - movs r1, 0x18 - strh r1, [r0, 0x20] - movs r1, 0x70 - strh r1, [r0, 0x22] - strh r2, [r0, 0x26] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CC058 - - thumb_func_start sub_81CC09C -sub_81CC09C: @ 81CC09C - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0x14] - movs r1, 0x1 - movs r2, 0x40 - bl sub_809882C - ldrb r0, [r4, 0x14] - movs r1, 0x1 - movs r2, 0x4 - bl sub_8098858 - ldrb r0, [r4, 0x14] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4, 0x14] - bl PutWindowTilemap - ldrb r0, [r4, 0x14] - movs r1, 0x3 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CC09C - - thumb_func_start sub_81CC0D0 -sub_81CC0D0: @ 81CC0D0 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_81CC0D0 - - thumb_func_start sub_81CC0E0 -sub_81CC0E0: @ 81CC0E0 - push {lr} - sub sp, 0xC - ldrb r0, [r0, 0x14] - ldr r2, =gUnknown_086227F4 - movs r1, 0x1 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x20 - bl Print - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CC0E0 - - thumb_func_start sub_81CC104 -sub_81CC104: @ 81CC104 - push {r4,lr} - adds r4, r0, 0 - bl RunTextPrinters - ldrb r0, [r4, 0x14] - bl IsTextPrinterActive - lsls r0, 16 - lsrs r0, 16 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CC104 - - thumb_func_start sub_81CC11C -sub_81CC11C: @ 81CC11C - push {lr} - sub sp, 0xC - ldrb r0, [r0, 0x14] - ldr r2, =gUnknown_085EBF95 - movs r1, 0x1 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl Print - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CC11C - - thumb_func_start sub_81CC140 -sub_81CC140: @ 81CC140 - push {r4,lr} - adds r4, r0, 0 - bl RunTextPrinters - ldrb r0, [r4, 0x14] - bl IsTextPrinterActive - lsls r0, 16 - lsrs r0, 16 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CC140 - - thumb_func_start sub_81CC158 -sub_81CC158: @ 81CC158 - push {r4,r5,lr} - sub sp, 0xC - adds r4, r0, 0 - bl sub_81C875C - adds r1, r4, 0 - adds r1, 0xF - bl sub_81CAF78 - adds r5, r0, 0 - bl sav2_get_text_speed - lsls r0, 24 - lsrs r0, 24 - ldrb r2, [r4, 0x14] - movs r1, 0x1 - str r1, [sp] - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r2, 0 - adds r2, r5, 0 - movs r3, 0x20 - bl Print - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81CC158 - - thumb_func_start sub_81CC194 -sub_81CC194: @ 81CC194 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gMain - ldrh r1, [r0, 0x2C] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081CC1B8 - ldr r0, =gTextFlags - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - b _081CC1C4 - .pool -_081CC1B8: - ldr r2, =gTextFlags - ldrb r1, [r2] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_081CC1C4: - bl RunTextPrinters - ldrb r0, [r4, 0x14] - bl IsTextPrinterActive - lsls r0, 16 - lsrs r0, 16 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CC194 - - thumb_func_start sub_81CC1DC -sub_81CC1DC: @ 81CC1DC - push {lr} - sub sp, 0x8 - bl sub_81C7CE4 - movs r0, 0x20 - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_81CC1DC - - thumb_func_start sub_81CC204 -sub_81CC204: @ 81CC204 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_81CC204 - - thumb_func_start sub_81CC214 -sub_81CC214: @ 81CC214 - push {r4-r6,lr} - sub sp, 0x8 - movs r0, 0x6 - bl sub_81C763C - adds r6, r0, 0 - movs r5, 0 - ldr r4, =gUnknown_08622810 -_081CC224: - adds r0, r4, 0 - bl LoadCompressedObjectPic - adds r4, 0x8 - adds r5, 0x1 - cmp r5, 0 - beq _081CC224 - ldr r0, =gUnknown_08622818 - bl sub_81C795C - movs r0, 0 - str r0, [r6, 0x1C] - ldr r1, =0x00001828 - adds r0, r6, r1 - str r0, [sp] - ldr r1, =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - movs r1, 0x80 - lsls r1, 4 - orrs r0, r1 - ldr r1, =0x0000ffff - ands r0, r1 - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadObjectPic - ldr r2, =0x00001824 - adds r1, r6, r2 - lsls r0, 16 - lsrs r0, 11 - ldr r2, =0x06010000 - adds r0, r2 - str r0, [r1] - movs r0, 0xD - bl AllocObjectPalette - lsls r0, 24 - lsrs r0, 20 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r0, [r6, 0x1A] - bl sub_81CC370 - str r0, [r6, 0x20] - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CC214 - - thumb_func_start sub_81CC2B4 -sub_81CC2B4: @ 81CC2B4 - push {r4,lr} - movs r0, 0x6 - bl sub_81C763C - adds r4, r0, 0 - ldr r0, [r4, 0x1C] - cmp r0, 0 - beq _081CC2C8 - bl RemoveObjectAndFreeTiles -_081CC2C8: - ldr r0, [r4, 0x20] - cmp r0, 0 - beq _081CC2D2 - bl RemoveObjectAndFreeTiles -_081CC2D2: - movs r0, 0x8 - bl FreeObjectTilesByTag - movs r0, 0x7 - bl FreeObjectTilesByTag - movs r0, 0xC - bl FreeObjectPaletteByTag - movs r0, 0xD - bl FreeObjectPaletteByTag - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CC2B4 - - thumb_func_start sub_81CC2F0 -sub_81CC2F0: @ 81CC2F0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, [r4, 0x1C] - cmp r0, 0 - bne _081CC320 - ldr r0, =gUnknown_08622830 - movs r1, 0x4 - movs r2, 0x50 - movs r3, 0x5 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gUnknown_02020630 - adds r1, r0 - str r1, [r4, 0x1C] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_81CC344 -_081CC320: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CC2F0 - - thumb_func_start sub_81CC330 -sub_81CC330: @ 81CC330 - push {r4,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x1C] - bl RemoveObjectAndFreeTiles - movs r0, 0 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CC330 - - thumb_func_start sub_81CC344 -sub_81CC344: @ 81CC344 - ldr r0, [r0, 0x1C] - lsls r1, 4 - strh r1, [r0, 0x26] - bx lr - thumb_func_end sub_81CC344 - - thumb_func_start sub_81CC34C -sub_81CC34C: @ 81CC34C - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _081CC36C - movs r0, 0 - strh r0, [r2, 0x2E] - ldrh r0, [r2, 0x24] - adds r0, 0x1 - movs r1, 0x7 - ands r0, r1 - strh r0, [r2, 0x24] -_081CC36C: - pop {r0} - bx r0 - thumb_func_end sub_81CC34C - - thumb_func_start sub_81CC370 -sub_81CC370: @ 81CC370 - push {lr} - ldr r0, =gUnknown_08622850 - movs r1, 0x2C - movs r2, 0x68 - movs r3, 0x6 - bl AddObjectToFront - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CC370 - - thumb_func_start sub_81CC39C -sub_81CC39C: @ 81CC39C - push {r4-r7,lr} - adds r7, r0, 0 - bl sub_81C875C - bl sub_81CAF04 - cmp r0, 0 - blt _081CC400 - lsls r4, r0, 3 - ldr r0, =gTrainerFrontPicTable - adds r0, r4, r0 - ldr r1, =0x00001828 - adds r5, r7, r1 - adds r1, r5, 0 - movs r2, 0 - bl DecompressPicFromTable - ldr r0, =gTrainerFrontPicPaletteTable - adds r4, r0 - ldr r0, [r4] - ldr r1, =0x00002028 - adds r6, r7, r1 - adds r1, r6, 0 - bl LZ77UnCompWram - ldr r1, =0x00001824 - adds r0, r7, r1 - ldr r1, [r0] - movs r2, 0x80 - lsls r2, 4 - adds r0, r5, 0 - movs r3, 0x1 - bl RequestDma3Copy - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrh r1, [r7, 0x1A] - adds r0, r6, 0 - movs r2, 0x20 - bl LoadPalette - ldr r1, [r7, 0x20] - movs r0, 0 - strh r0, [r1, 0x2E] - ldr r0, [r7, 0x20] - strh r4, [r0, 0x3C] - ldr r1, [r7, 0x20] - ldr r0, =sub_81CC440 - str r0, [r1, 0x1C] -_081CC400: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CC39C - - thumb_func_start sub_81CC420 -sub_81CC420: @ 81CC420 - ldr r1, [r0, 0x20] - ldr r0, =sub_81CC4A4 - str r0, [r1, 0x1C] - bx lr - .pool - thumb_func_end sub_81CC420 - - thumb_func_start sub_81CC42C -sub_81CC42C: @ 81CC42C - ldr r0, [r0, 0x20] - ldr r1, [r0, 0x1C] - ldr r0, =DummyObjectCallback - eors r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - bx lr - .pool - thumb_func_end sub_81CC42C - - thumb_func_start sub_81CC440 -sub_81CC440: @ 81CC440 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _081CC452 - cmp r0, 0x1 - beq _081CC484 - b _081CC498 -_081CC452: - movs r1, 0x3C - ldrsh r0, [r4, r1] - bl CheckForSpaceForDma3Request - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _081CC498 - ldr r0, =0x0000ffb0 - strh r0, [r4, 0x24] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _081CC498 - .pool -_081CC484: - ldrh r0, [r4, 0x24] - adds r0, 0x8 - strh r0, [r4, 0x24] - lsls r0, 16 - cmp r0, 0 - blt _081CC498 - movs r0, 0 - strh r0, [r4, 0x24] - ldr r0, =DummyObjectCallback - str r0, [r4, 0x1C] -_081CC498: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CC440 - - thumb_func_start sub_81CC4A4 -sub_81CC4A4: @ 81CC4A4 - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x24] - subs r0, 0x8 - strh r0, [r3, 0x24] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x50 - negs r1, r1 - cmp r0, r1 - bgt _081CC4CA - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, =DummyObjectCallback - str r0, [r3, 0x1C] -_081CC4CA: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CC4A4 - - thumb_func_start sub_81CC4D4 -sub_81CC4D4: @ 81CC4D4 - push {r4,lr} - movs r0, 0x3 - movs r1, 0x14 - bl sub_81C761C - adds r4, r0, 0 - cmp r4, 0 - beq _081CC4F0 - ldr r1, =0x00000884 - movs r0, 0x10 - bl sub_81C761C - cmp r0, 0 - bne _081CC4F8 -_081CC4F0: - movs r0, 0 - b _081CC51A - .pool -_081CC4F8: - ldr r0, =gUnknown_02037318 - ldrb r0, [r0, 0x14] - bl sub_8124668 - str r0, [r4, 0xC] - cmp r0, 0 - bne _081CC514 - ldr r0, =sub_81CC568 - b _081CC516 - .pool -_081CC514: - ldr r0, =sub_81CC5B4 -_081CC516: - str r0, [r4, 0x10] - movs r0, 0x1 -_081CC51A: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CC4D4 - - thumb_func_start sub_81CC524 -sub_81CC524: @ 81CC524 - push {lr} - bl sub_8124658 - ldr r1, =gSaveBlock2Ptr - ldr r3, [r1] - movs r1, 0x1 - ands r1, r0 - lsls r1, 3 - ldrb r2, [r3, 0x15] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x15] - movs r0, 0x10 - bl sub_81C7650 - movs r0, 0x3 - bl sub_81C7650 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CC524 - - thumb_func_start sub_81CC554 -sub_81CC554: @ 81CC554 - push {lr} - movs r0, 0x3 - bl sub_81C763C - ldr r1, [r0, 0x10] - bl _call_via_r1 - pop {r1} - bx r1 - thumb_func_end sub_81CC554 - - thumb_func_start sub_81CC568 -sub_81CC568: @ 81CC568 - push {r4,lr} - adds r4, r0, 0 - bl sub_81230AC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - beq _081CC58C - cmp r0, 0x4 - bgt _081CC582 - cmp r0, 0x3 - beq _081CC588 - b _081CC5AC -_081CC582: - cmp r0, 0x5 - beq _081CC59E - b _081CC5AC -_081CC588: - movs r0, 0x1 - b _081CC5AE -_081CC58C: - bl sub_8124658 - lsls r0, 24 - cmp r0, 0 - bne _081CC59A - movs r0, 0x3 - b _081CC5AE -_081CC59A: - movs r0, 0x2 - b _081CC5AE -_081CC59E: - ldr r0, =sub_81CC5DC - str r0, [r4, 0x10] - movs r0, 0x4 - b _081CC5AE - .pool -_081CC5AC: - movs r0, 0 -_081CC5AE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CC568 - - thumb_func_start sub_81CC5B4 -sub_81CC5B4: @ 81CC5B4 - push {lr} - adds r2, r0, 0 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _081CC5CC - movs r0, 0 - b _081CC5D2 - .pool -_081CC5CC: - ldr r0, =sub_81CC5DC - str r0, [r2, 0x10] - movs r0, 0x4 -_081CC5D2: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CC5B4 - - thumb_func_start sub_81CC5DC -sub_81CC5DC: @ 81CC5DC - ldr r0, =0x000186a1 - bx lr - .pool - thumb_func_end sub_81CC5DC - - thumb_func_start sub_81CC5E4 -sub_81CC5E4: @ 81CC5E4 - push {lr} - movs r0, 0x3 - bl sub_81C763C - ldr r0, [r0, 0xC] - pop {r1} - bx r1 - thumb_func_end sub_81CC5E4 - - thumb_func_start sub_81CC5F4 -sub_81CC5F4: @ 81CC5F4 - push {r4,lr} - ldr r1, =0x00001948 - movs r0, 0x4 - bl sub_81C761C - adds r4, r0, 0 - cmp r4, 0 - beq _081CC624 - ldr r0, =sub_81CC6F4 - movs r1, 0x1 - bl sub_81C7078 - str r0, [r4, 0x4] - ldr r0, =sub_81CC6BC - str r0, [r4] - movs r0, 0x1 - b _081CC626 - .pool -_081CC624: - movs r0, 0 -_081CC626: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CC5F4 - - thumb_func_start sub_81CC62C -sub_81CC62C: @ 81CC62C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x4 - bl sub_81C763C - adds r5, r0, 0 - ldr r0, =gUnknown_086230E4 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - movs r1, 0x1 - bl sub_81C7078 - str r0, [r5, 0x4] - ldr r0, =sub_81CC6BC - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CC62C - - thumb_func_start sub_81CC65C -sub_81CC65C: @ 81CC65C - push {lr} - movs r0, 0x4 - bl sub_81C763C - ldr r0, [r0] - bl _call_via_r0 - pop {r1} - bx r1 - thumb_func_end sub_81CC65C - - thumb_func_start sub_81CC670 -sub_81CC670: @ 81CC670 - push {r4,lr} - movs r0, 0x4 - bl sub_81C763C - adds r4, r0, 0 - bl sub_812305C - bl sub_81CC9EC - ldrb r0, [r4, 0x8] - bl RemoveWindow - movs r0, 0x10 - bl sub_81C7650 - movs r0, 0x4 - bl sub_81C7650 - bl sub_81C760C - movs r0, 0 - bl SetBgMode - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CC670 - - thumb_func_start sub_81CC6A4 -sub_81CC6A4: @ 81CC6A4 - push {lr} - bl TransferPlttBuffer - bl LoadOamFromSprites - bl ProcessObjectCopyRequests - bl sub_81237B4 - pop {r0} - bx r0 - thumb_func_end sub_81CC6A4 - - thumb_func_start sub_81CC6BC -sub_81CC6BC: @ 81CC6BC - push {lr} - movs r0, 0x4 - bl sub_81C763C - ldr r0, [r0, 0x4] - bl sub_81C70D8 - pop {r1} - bx r1 - thumb_func_end sub_81CC6BC - - thumb_func_start sub_81CC6D0 -sub_81CC6D0: @ 81CC6D0 - push {lr} - bl sub_81CC5E4 - cmp r0, 0 - bne _081CC6EC - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x15] - lsrs r0, 3 - movs r1, 0x1 - ands r0, r1 - b _081CC6EE - .pool -_081CC6EC: - movs r0, 0 -_081CC6EE: - pop {r1} - bx r1 - thumb_func_end sub_81CC6D0 - - thumb_func_start sub_81CC6F4 -sub_81CC6F4: @ 81CC6F4 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x4 - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x7 - bls _081CC706 - b _081CC83E -_081CC706: - lsls r0, r4, 2 - ldr r1, =_081CC714 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CC714: - .4byte _081CC734 - .4byte _081CC784 - .4byte _081CC7B6 - .4byte _081CC7BE - .4byte _081CC7CE - .4byte _081CC7E2 - .4byte _081CC804 - .4byte _081CC82A -_081CC734: - movs r0, 0 - bl c3args_set_0toR1_1to0 - movs r0, 0x1 - bl HideBg - movs r0, 0x2 - bl HideBg - movs r0, 0x3 - bl HideBg - movs r0, 0x1 - bl SetBgMode - ldr r4, =gUnknown_086230D8 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_81C7B54 - movs r0, 0x10 - bl sub_81C763C - adds r5, r0, 0 - adds r4, 0x4 - bl sub_81CC6D0 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8122CF8 - bl sub_81CC9C0 -_081CC77C: - movs r0, 0 - b _081CC840 - .pool -_081CC784: - bl sub_8122DB0 - lsls r0, 24 - cmp r0, 0 - bne _081CC83A - bl sub_81CC5E4 - cmp r0, 0 - bne _081CC7AC - movs r0, 0x4 - movs r1, 0x9 - bl sub_8124288 - movs r0, 0x5 - movs r1, 0xA - bl sub_81240D4 - bl sub_812454C - b _081CC77C -_081CC7AC: - movs r0, 0 - movs r1, 0x6 - bl sub_8123030 - b _081CC77C -_081CC7B6: - bl sub_81CCD10 -_081CC7BA: - movs r0, 0x1 - b _081CC840 -_081CC7BE: - bl sub_81CCD24 - cmp r0, 0 - bne _081CC83A - adds r0, r5, 0 - bl sub_81CCA1C - b _081CC7BA -_081CC7CE: - bl sub_81CCAFC - cmp r0, 0 - bne _081CC83A - adds r0, r5, 0 - bl sub_81CCB0C - bl sub_81C7B40 - b _081CC77C -_081CC7E2: - adds r0, r5, 0 - bl sub_81CCC4C - cmp r0, 0 - bne _081CC83A - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - ldr r0, =sub_81CC6A4 - bl c3args_set_0toR1_1to0 - b _081CC77C - .pool -_081CC804: - bl sub_81CC6D0 - lsls r0, 24 - movs r4, 0x5 - cmp r0, 0 - bne _081CC812 - movs r4, 0x4 -_081CC812: - adds r0, r4, 0 - bl sub_81C7DFC - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_81C7FA0 - movs r0, 0x1 - bl sub_81C7AC0 - b _081CC77C -_081CC82A: - bl sub_81C7B34 - cmp r0, 0 - bne _081CC83A - bl sub_81C8010 - cmp r0, 0 - beq _081CC7BA -_081CC83A: - movs r0, 0x2 - b _081CC840 -_081CC83E: - movs r0, 0x4 -_081CC840: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CC6F4 - - thumb_func_start sub_81CC848 -sub_81CC848: @ 81CC848 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x4 - bl sub_81C763C - cmp r4, 0 - beq _081CC85C - cmp r4, 0x1 - beq _081CC864 - b _081CC870 -_081CC85C: - bl sub_81CCB0C - movs r0, 0 - b _081CC872 -_081CC864: - bl sub_81CCC4C - cmp r0, 0 - beq _081CC870 - movs r0, 0x2 - b _081CC872 -_081CC870: - movs r0, 0x4 -_081CC872: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CC848 - - thumb_func_start sub_81CC878 -sub_81CC878: @ 81CC878 - push {lr} - cmp r0, 0x1 - beq _081CC8A2 - cmp r0, 0x1 - bgt _081CC888 - cmp r0, 0 - beq _081CC88E - b _081CC8D0 -_081CC888: - cmp r0, 0x2 - beq _081CC8BE - b _081CC8D0 -_081CC88E: - movs r0, 0x5 - bl audio_play - movs r0, 0 - bl sub_81CCC5C - bl sub_8123418 - movs r0, 0 - b _081CC8D2 -_081CC8A2: - bl sub_8123514 - lsls r0, 24 - cmp r0, 0 - bne _081CC8C6 - bl sub_81CCC88 - cmp r0, 0 - bne _081CC8C6 - movs r0, 0x1 - bl sub_81C7BA4 - movs r0, 0 - b _081CC8D2 -_081CC8BE: - bl sub_81C7BE8 - cmp r0, 0 - beq _081CC8CA -_081CC8C6: - movs r0, 0x2 - b _081CC8D2 -_081CC8CA: - movs r0, 0x4 - bl sub_81C7E14 -_081CC8D0: - movs r0, 0x4 -_081CC8D2: - pop {r1} - bx r1 - thumb_func_end sub_81CC878 - - thumb_func_start sub_81CC8D8 -sub_81CC8D8: @ 81CC8D8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x4 - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CC90C - cmp r4, 0x1 - bgt _081CC8F2 - cmp r4, 0 - beq _081CC8FC - b _081CC952 -_081CC8F2: - cmp r4, 0x2 - beq _081CC924 - cmp r4, 0x3 - beq _081CC940 - b _081CC952 -_081CC8FC: - movs r0, 0x5 - bl audio_play - adds r0, r5, 0 - bl sub_81CCB0C - movs r0, 0 - b _081CC954 -_081CC90C: - adds r0, r5, 0 - bl sub_81CCC4C - cmp r0, 0 - bne _081CC948 - movs r0, 0x1 - bl sub_81CCC5C - bl sub_8123418 - movs r0, 0 - b _081CC954 -_081CC924: - bl sub_8123514 - lsls r0, 24 - cmp r0, 0 - bne _081CC948 - bl sub_81CCC88 - cmp r0, 0 - bne _081CC948 - movs r0, 0x2 - bl sub_81C7BA4 - movs r0, 0 - b _081CC954 -_081CC940: - bl sub_81C7BE8 - cmp r0, 0 - beq _081CC94C -_081CC948: - movs r0, 0x2 - b _081CC954 -_081CC94C: - movs r0, 0x5 - bl sub_81C7E14 -_081CC952: - movs r0, 0x4 -_081CC954: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CC8D8 - - thumb_func_start sub_81CC95C -sub_81CC95C: @ 81CC95C - push {lr} - cmp r0, 0x1 - beq _081CC982 - cmp r0, 0x1 - bgt _081CC96C - cmp r0, 0 - beq _081CC972 - b _081CC9B8 -_081CC96C: - cmp r0, 0x2 - beq _081CC996 - b _081CC9B8 -_081CC972: - movs r0, 0x5 - bl audio_play - movs r0, 0 - bl sub_81C7AC0 - movs r0, 0 - b _081CC9BA -_081CC982: - bl sub_81C7B34 - cmp r0, 0 - bne _081CC99E - bl sub_81C7FDC - bl sub_81C78A0 - movs r0, 0 - b _081CC9BA -_081CC996: - bl sub_81C78C0 - cmp r0, 0 - beq _081CC9A2 -_081CC99E: - movs r0, 0x2 - b _081CC9BA -_081CC9A2: - movs r0, 0x1 - bl HideBg - movs r0, 0x2 - bl HideBg - movs r0, 0x3 - bl HideBg - movs r0, 0 - b _081CC9BA -_081CC9B8: - movs r0, 0x4 -_081CC9BA: - pop {r1} - bx r1 - thumb_func_end sub_81CC95C - - thumb_func_start sub_81CC9C0 -sub_81CC9C0: @ 81CC9C0 - push {r4,r5,lr} - movs r5, 0 - ldr r4, =gUnknown_086230F8 -_081CC9C6: - adds r0, r4, 0 - bl LoadCompressedObjectPic - adds r4, 0x8 - adds r5, 0x1 - cmp r5, 0 - beq _081CC9C6 - ldr r0, =gUnknown_08623100 - bl sub_81C795C - bl sub_81CCE58 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CC9C0 - - thumb_func_start sub_81CC9EC -sub_81CC9EC: @ 81CC9EC - push {r4,r5,lr} - movs r0, 0x4 - bl sub_81C763C - adds r4, r0, 0 - movs r0, 0x6 - bl FreeObjectTilesByTag - movs r0, 0xB - bl FreeObjectPaletteByTag - adds r5, r4, 0 - adds r5, 0xC - movs r4, 0x2 -_081CCA08: - ldm r5!, {r0} - bl RemoveObjectAndFreeTiles - subs r4, 0x1 - cmp r4, 0 - bge _081CCA08 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81CC9EC - - thumb_func_start sub_81CCA1C -sub_81CCA1C: @ 81CCA1C - push {r4,r5,lr} - sub sp, 0x8 - adds r5, r0, 0 - movs r0, 0x1 - movs r1, 0 - movs r2, 0x40 - movs r3, 0x1 - bl sub_8199DF0 - movs r0, 0x1 - movs r1, 0x11 - movs r2, 0x41 - movs r3, 0x1 - bl sub_8199DF0 - add r1, sp, 0x4 - movs r2, 0x82 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - adds r4, r5, 0 - adds r4, 0x18 - ldr r2, =0x01000400 - adds r0, r1, 0 - adds r1, r4, 0 - bl CpuSet - movs r0, 0x1 - adds r1, r4, 0 - bl SetBgTilemapBuffer - ldr r0, =gUnknown_08623110 - bl AddWindow - movs r4, 0 - strh r0, [r5, 0x8] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x42 - movs r2, 0x40 - bl box_border_load_tiles_and_pal - ldrb r0, [r5, 0x8] - movs r1, 0x42 - movs r2, 0x4 - bl sub_8098858 - ldr r1, =gUnknown_08622888 - str r4, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldrb r0, [r5, 0x8] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r5, 0x8] - bl PutWindowTilemap - ldrb r0, [r5, 0x8] - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, =gUnknown_08622868 - movs r1, 0x10 - movs r2, 0x20 - bl sub_81C7944 - ldr r0, =gUnknown_08DC91E8 - movs r1, 0x30 - movs r2, 0x20 - bl sub_81C7944 - bl sub_8124658 - lsls r0, 24 - cmp r0, 0 - bne _081CCAE0 - ldr r1, =0xffffa000 - movs r0, 0x1 - movs r2, 0 - bl ChangeBgY - b _081CCAEA - .pool -_081CCAE0: - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY -_081CCAEA: - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81CCA1C - - thumb_func_start sub_81CCAFC -sub_81CCAFC: @ 81CCAFC - push {lr} - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_81CCAFC - - thumb_func_start sub_81CCB0C -sub_81CCB0C: @ 81CCB0C - push {r4,r5,lr} - sub sp, 0xC - adds r4, r0, 0 - movs r0, 0x10 - bl sub_81C763C - adds r5, r0, 0 - ldrb r0, [r5, 0x2] - cmp r0, 0x4 - bls _081CCB22 - b _081CCC40 -_081CCB22: - lsls r0, 2 - ldr r1, =_081CCB30 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CCB30: - .4byte _081CCC1C - .4byte _081CCBDC - .4byte _081CCB44 - .4byte _081CCB8E - .4byte _081CCBDC -_081CCB44: - ldrb r0, [r4, 0x8] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4, 0x8] - movs r1, 0x2 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0xC - bl PutWindowRectTilemap - ldrb r0, [r4, 0x8] - adds r2, r5, 0x4 - movs r1, 0x1 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x7 - movs r3, 0 - bl Print - ldrh r1, [r5] - ldrb r2, [r5, 0x3] - adds r0, r4, 0 - bl sub_81CCD70 - ldrb r0, [r4, 0x8] - movs r1, 0x3 - bl CopyWindowToVram - movs r0, 0 - bl sub_81CCFA4 - b _081CCC40 -_081CCB8E: - ldrb r0, [r4, 0x8] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4, 0x8] - movs r1, 0x2 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0xC - bl PutWindowRectTilemap - ldrb r0, [r4, 0x8] - adds r2, r5, 0x4 - movs r1, 0x1 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x7 - movs r3, 0 - bl Print - ldr r1, =0x00001041 - movs r0, 0xC - str r0, [sp] - movs r0, 0xB - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r2, 0x11 - movs r3, 0x6 - bl FillBgTilemapBufferRect - b _081CCC0C - .pool -_081CCBDC: - ldrb r0, [r4, 0x8] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4, 0x8] - bl PutWindowTilemap - ldrb r0, [r4, 0x8] - adds r2, r5, 0x4 - movs r1, 0x1 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x7 - movs r3, 0 - bl Print - ldrh r1, [r5] - ldrb r2, [r5, 0x3] - adds r0, r4, 0 - bl sub_81CCDE8 -_081CCC0C: - ldrb r0, [r4, 0x8] - movs r1, 0x3 - bl CopyWindowToVram - movs r0, 0x1 - bl sub_81CCFA4 - b _081CCC40 -_081CCC1C: - ldr r1, =0x00001041 - movs r0, 0xC - str r0, [sp] - movs r0, 0xD - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r2, 0x11 - movs r3, 0x4 - bl FillBgTilemapBufferRect - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - movs r0, 0x1 - bl sub_81CCFA4 -_081CCC40: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CCB0C - - thumb_func_start sub_81CCC4C -sub_81CCC4C: @ 81CCC4C - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_81CCC4C - - thumb_func_start sub_81CCC5C -sub_81CCC5C: @ 81CCC5C - push {r4,lr} - adds r4, r0, 0 - ldr r0, =sub_81CCC9C - movs r1, 0x3 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CCC5C - - thumb_func_start sub_81CCC88 -sub_81CCC88: @ 81CCC88 - push {lr} - ldr r0, =sub_81CCC9C - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CCC88 - - thumb_func_start sub_81CCC9C -sub_81CCC9C: @ 81CCC9C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _081CCCE0 - movs r1, 0x90 - lsls r1, 3 - movs r0, 0x1 - movs r2, 0x1 - bl ChangeBgY - cmp r0, 0 - blt _081CCCD6 - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - adds r0, r4, 0 - bl DestroyTask -_081CCCD6: - bl sub_81CCF78 - b _081CCD04 - .pool -_081CCCE0: - movs r1, 0x90 - lsls r1, 3 - movs r0, 0x1 - movs r2, 0x2 - bl ChangeBgY - ldr r1, =0xffffa000 - cmp r0, r1 - bgt _081CCD00 - movs r0, 0x1 - movs r2, 0 - bl ChangeBgY - adds r0, r5, 0 - bl DestroyTask -_081CCD00: - bl sub_81CCF78 -_081CCD04: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CCC9C - - thumb_func_start sub_81CCD10 -sub_81CCD10: @ 81CCD10 - push {lr} - ldr r0, =sub_81CCD34 - movs r1, 0x1 - bl sub_81C7078 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CCD10 - - thumb_func_start sub_81CCD24 -sub_81CCD24: @ 81CCD24 - push {lr} - ldr r0, =sub_81CCD34 - bl sub_81C7124 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CCD24 - - thumb_func_start sub_81CCD34 -sub_81CCD34: @ 81CCD34 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x4 - bl sub_81C763C - adds r2, r0, 0 - cmp r4, 0x15 - ble _081CCD48 - movs r0, 0x4 - b _081CCD62 -_081CCD48: - ldr r0, =gUnknown_08623118 - lsls r1, r4, 3 - adds r0, 0x4 - adds r1, r0 - ldr r0, [r1] - movs r1, 0xC8 - muls r1, r4 - ldr r3, =0x00000818 - adds r1, r3 - adds r1, r2, r1 - bl LZ77UnCompWram - movs r0, 0x1 -_081CCD62: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CCD34 - - thumb_func_start sub_81CCD70 -sub_81CCD70: @ 81CCD70 - push {r4-r6,lr} - sub sp, 0x8 - adds r6, r0, 0 - adds r3, r1, 0 - movs r4, 0 - ldr r0, =gUnknown_08623118 - ldrh r1, [r0] - adds r5, r0, 0 - cmp r1, r3 - bne _081CCD8A - ldrh r0, [r5, 0x2] - cmp r0, r2 - beq _081CCDA0 -_081CCD8A: - adds r4, 0x1 - cmp r4, 0x15 - bgt _081CCDA0 - lsls r0, r4, 3 - adds r1, r0, r5 - ldrh r0, [r1] - cmp r0, r3 - bne _081CCD8A - ldrh r0, [r1, 0x2] - cmp r0, r2 - bne _081CCD8A -_081CCDA0: - cmp r4, 0x16 - beq _081CCDD4 - ldr r1, =0x00001041 - movs r0, 0xC - str r0, [sp] - movs r0, 0xB - str r0, [sp, 0x4] - movs r0, 0x1 - movs r2, 0x11 - movs r3, 0x6 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0xC8 - adds r1, r4, 0 - muls r1, r0 - ldr r0, =0x00000818 - adds r1, r0 - adds r1, r6, r1 - movs r0, 0xA - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x1 - movs r2, 0x12 - movs r3, 0x6 - bl CopyToBgTilemapBufferRect -_081CCDD4: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CCD70 - - thumb_func_start sub_81CCDE8 -sub_81CCDE8: @ 81CCDE8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xC - mov r9, r0 - movs r5, 0 - ldr r6, =gStringVar1 - movs r4, 0x88 - lsls r4, 21 - lsls r1, 24 - mov r8, r1 - lsls r7, r2, 24 - b _081CCE34 - .pool -_081CCE08: - adds r0, r6, 0 - movs r2, 0 - movs r3, 0xC - bl StringCopyPadded - mov r1, r9 - ldrb r0, [r1, 0x8] - lsrs r1, r4, 24 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x7 - adds r2, r6, 0 - movs r3, 0 - bl Print - movs r0, 0x80 - lsls r0, 21 - adds r4, r0 - adds r5, 0x1 -_081CCE34: - lsls r2, r5, 24 - lsrs r2, 24 - mov r1, r8 - lsrs r0, r1, 24 - lsrs r1, r7, 24 - bl sub_8145CF4 - adds r1, r0, 0 - cmp r1, 0 - bne _081CCE08 - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81CCDE8 - - thumb_func_start sub_81CCE58 -sub_81CCE58: @ 81CCE58 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r0, 0x4 - bl sub_81C763C - adds r4, r0, 0 - bl sub_8124658 - lsls r0, 24 - movs r2, 0x84 - cmp r0, 0 - bne _081CCE74 - movs r2, 0xE4 -_081CCE74: - movs r5, 0 - lsls r7, r2, 16 - adds r4, 0xC - mov r8, r4 - movs r6, 0x98 - lsls r6, 16 -_081CCE80: - asrs r1, r6, 16 - ldr r0, =gUnknown_086231D0 - asrs r2, r7, 16 - movs r3, 0x8 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, =gUnknown_02020630 - adds r2, r0 - movs r0, 0 - strh r0, [r2, 0x2E] - lsls r4, r5, 2 - strh r4, [r2, 0x30] - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r0, r1, 22 - adds r1, r0, 0 - strh r0, [r2, 0x32] - movs r0, 0x96 - strh r0, [r2, 0x34] - strh r4, [r2, 0x36] - adds r1, r4 - ldr r4, =0x000003ff - adds r0, r4, 0 - ands r1, r0 - ldr r4, =0xfffffc00 - adds r0, r4, 0 - ands r3, r0 - orrs r3, r1 - strh r3, [r2, 0x4] - mov r0, r8 - adds r0, 0x4 - mov r8, r0 - subs r0, 0x4 - stm r0!, {r2} - movs r4, 0x80 - lsls r4, 14 - adds r6, r4 - adds r5, 0x1 - cmp r5, 0x2 - ble _081CCE80 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CCE58 - - thumb_func_start sub_81CCEF4 -sub_81CCEF4: @ 81CCEF4 - push {r4,r5,lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x34] - movs r1, 0x34 - ldrsh r4, [r3, r1] - cmp r4, 0 - beq _081CCF06 - subs r0, 0x1 - b _081CCF6E -_081CCF06: - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - ble _081CCF16 - strh r4, [r3, 0x2E] -_081CCF16: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _081CCF26 - strh r4, [r3, 0x30] -_081CCF26: - ldrh r5, [r3, 0x30] - ldrh r2, [r3, 0x32] - adds r1, r5, r2 - ldr r2, =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r3, 0x4] - ldr r0, =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] - ldrh r1, [r3, 0x38] - movs r2, 0x38 - ldrsh r0, [r3, r2] - cmp r0, 0x3 - bgt _081CCF5C - movs r2, 0x2E - ldrsh r0, [r3, r2] - cmp r0, 0 - bne _081CCF70 - adds r0, r1, 0x1 - strh r0, [r3, 0x38] - b _081CCF6C - .pool -_081CCF5C: - lsls r0, r5, 16 - asrs r0, 16 - movs r2, 0x36 - ldrsh r1, [r3, r2] - cmp r0, r1 - bne _081CCF70 - strh r4, [r3, 0x38] - strh r4, [r3, 0x2E] -_081CCF6C: - movs r0, 0x78 -_081CCF6E: - strh r0, [r3, 0x34] -_081CCF70: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81CCEF4 - - thumb_func_start sub_81CCF78 -sub_81CCF78: @ 81CCF78 - push {r4,lr} - movs r0, 0x4 - bl sub_81C763C - adds r4, r0, 0 - movs r0, 0x1 - bl GetBgY - asrs r0, 8 - movs r1, 0x84 - subs r1, r0 - adds r4, 0xC - movs r2, 0x2 -_081CCF92: - ldm r4!, {r0} - strh r1, [r0, 0x22] - subs r2, 0x1 - cmp r2, 0 - bge _081CCF92 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CCF78 - - thumb_func_start sub_81CCFA4 -sub_81CCFA4: @ 81CCFA4 - push {r4-r6,lr} - adds r4, r0, 0 - movs r0, 0x4 - bl sub_81C763C - movs r1, 0x1 - ands r4, r1 - lsls r5, r4, 2 - movs r6, 0x5 - negs r6, r6 - adds r4, r0, 0 - adds r4, 0xC - movs r3, 0x2 -_081CCFBE: - ldm r4!, {r0} - adds r0, 0x3E - ldrb r2, [r0] - adds r1, r6, 0 - ands r1, r2 - orrs r1, r5 - strb r1, [r0] - subs r3, 0x1 - cmp r3, 0 - bge _081CCFBE - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81CCFA4 - - thumb_func_start sub_81CCFD8 -sub_81CCFD8: @ 81CCFD8 - push {r4,lr} - ldr r1, =0x0000678c - movs r0, 0xB - bl sub_81C761C - adds r4, r0, 0 - cmp r4, 0 - beq _081CD01C - ldr r1, =0x00006428 - adds r0, r4, r1 - bl sub_81D1ED4 - bl sub_81CD970 - ldr r1, =gKeyRepeatStartDelay - movs r0, 0x14 - strh r0, [r1] - ldr r0, =0x00006304 - adds r1, r4, r0 - ldr r0, =sub_81CD08C - str r0, [r1] - movs r0, 0x1 - b _081CD01E - .pool -_081CD01C: - movs r0, 0 -_081CD01E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CCFD8 - - thumb_func_start sub_81CD024 -sub_81CD024: @ 81CD024 - push {r4,lr} - ldr r1, =0x0000678c - movs r0, 0xB - bl sub_81C761C - adds r4, r0, 0 - cmp r4, 0 - beq _081CD068 - ldr r1, =0x00006428 - adds r0, r4, r1 - bl sub_81D1ED4 - bl sub_81CD9F8 - ldr r1, =gKeyRepeatStartDelay - movs r0, 0x14 - strh r0, [r1] - ldr r0, =0x00006304 - adds r1, r4, r0 - ldr r0, =sub_81CD08C - str r0, [r1] - movs r0, 0x1 - b _081CD06A - .pool -_081CD068: - movs r0, 0 -_081CD06A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CD024 - - thumb_func_start sub_81CD070 -sub_81CD070: @ 81CD070 - push {lr} - movs r0, 0xB - bl sub_81C763C - ldr r2, =0x00006304 - adds r1, r0, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CD070 - - thumb_func_start sub_81CD08C -sub_81CD08C: @ 81CD08C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x12 - bl sub_81C763C - adds r5, r0, 0 - adds r0, r4, 0 - bl sub_81CD1E4 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _081CD100 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _081CD0D0 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081CD100 - movs r1, 0xC6 - lsls r1, 7 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _081CD0F0 - ldrh r1, [r5, 0x2] - ldrh r0, [r5] - subs r0, 0x1 - cmp r1, r0 - bne _081CD100 -_081CD0D0: - movs r0, 0x5 - bl audio_play - ldr r0, =0x00006304 - adds r1, r4, r0 - ldr r0, =sub_81CD19C - str r0, [r1] - movs r2, 0x2 - b _081CD100 - .pool -_081CD0F0: - movs r0, 0x5 - bl audio_play - movs r2, 0x5 - ldr r0, =0x00006304 - adds r1, r4, r0 - ldr r0, =sub_81CD110 - str r0, [r1] -_081CD100: - adds r0, r2, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CD08C - - thumb_func_start sub_81CD110 -sub_81CD110: @ 81CD110 - push {r4-r6,lr} - sub sp, 0x4 - adds r6, r0, 0 - movs r4, 0 - bl sub_811FBA4 - lsls r0, 24 - cmp r0, 0 - bne _081CD18A - bl sub_81CEF14 - ldr r1, =0x00006786 - adds r5, r6, r1 - movs r1, 0 - ldrsb r1, [r5, r1] - ldr r2, =0x00006783 - adds r4, r6, r2 - adds r1, r4, r1 - strb r0, [r1] - movs r0, 0x12 - bl sub_81C763C - ldrh r1, [r0, 0x2] - lsls r1, 2 - adds r0, r1 - ldrb r2, [r0, 0x4] - ldrb r3, [r0, 0x5] - movs r0, 0 - ldrsb r0, [r5, r0] - adds r4, r0 - ldrb r1, [r4] - mov r0, sp - strb r1, [r0] - cmp r2, 0xE - bne _081CD174 - movs r0, 0x64 - muls r0, r3 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x8 - mov r2, sp - bl pokemon_setattr - b _081CD180 - .pool -_081CD174: - adds r0, r2, 0 - adds r1, r3, 0 - movs r2, 0x8 - mov r3, sp - bl set_pokemon_data_from_any_box -_081CD180: - ldr r0, =0x00006304 - adds r1, r6, r0 - ldr r0, =sub_81CD08C - str r0, [r1] - movs r4, 0x6 -_081CD18A: - adds r0, r4, 0 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CD110 - - thumb_func_start sub_81CD19C -sub_81CD19C: @ 81CD19C - push {lr} - movs r1, 0xC6 - lsls r1, 7 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _081CD1B4 - ldr r0, =0x000186aa - b _081CD1B6 - .pool -_081CD1B4: - ldr r0, =0x000186a2 -_081CD1B6: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CD19C - - thumb_func_start sub_81CD1C0 -sub_81CD1C0: @ 81CD1C0 - push {lr} - movs r0, 0xB - bl sub_81C763C - movs r1, 0xC6 - lsls r1, 7 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _081CD1DA - movs r0, 0x12 - bl sub_81C7650 -_081CD1DA: - movs r0, 0xB - bl sub_81C7650 - pop {r0} - bx r0 - thumb_func_end sub_81CD1C0 - - thumb_func_start sub_81CD1E4 -sub_81CD1E4: @ 81CD1E4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x12 - bl sub_81C763C - adds r2, r0, 0 - movs r3, 0 - ldr r0, =gMain - ldrh r1, [r0, 0x2C] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081CD220 - movs r1, 0xC6 - lsls r1, 7 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _081CD210 - ldrh r0, [r2, 0x2] - cmp r0, 0 - beq _081CD24E -_081CD210: - movs r0, 0x5 - bl audio_play - movs r0, 0x1 - b _081CD246 - .pool -_081CD220: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081CD24E - movs r1, 0xC6 - lsls r1, 7 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _081CD23E - ldrh r1, [r2, 0x2] - ldrh r0, [r2] - subs r0, 0x1 - cmp r1, r0 - bge _081CD24E -_081CD23E: - movs r0, 0x5 - bl audio_play - movs r0, 0 -_081CD246: - bl sub_81CD258 - lsls r0, 24 - lsrs r3, r0, 24 -_081CD24E: - adds r0, r3, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CD1E4 - - thumb_func_start sub_81CD258 -sub_81CD258: @ 81CD258 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r0, 0xB - bl sub_81C763C - adds r4, r0, 0 - movs r0, 0x12 - bl sub_81C763C - adds r5, r0, 0 - mov r0, r8 - cmp r0, 0 - beq _081CD284 - ldr r1, =0x00006788 - adds r0, r4, r1 - b _081CD288 - .pool -_081CD284: - ldr r2, =0x00006787 - adds r0, r4, r2 -_081CD288: - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r0, 16 - adds r7, r0, 0 - ldr r1, =0x00006428 - adds r0, r4, r1 - ldr r2, =0x00006786 - adds r1, r4, r2 - movs r2, 0 - ldrsb r2, [r1, r2] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 2 - ldr r3, =0x0000643c - adds r1, r3 - adds r1, r4, r1 - lsls r2, r7, 2 - adds r2, r7 - lsls r2, 2 - adds r2, r3 - adds r2, r4, r2 - bl sub_81D1F84 - ldrh r6, [r5, 0x2] - bl sub_81CDD5C - cmp r0, 0 - beq _081CD2D8 - ldrh r1, [r5] - b _081CD2DC - .pool -_081CD2D8: - ldrh r1, [r5] - subs r1, 0x1 -_081CD2DC: - eors r1, r6 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - adds r6, r0, 0 - mov r0, r8 - cmp r0, 0 - beq _081CD332 - ldr r1, =0x00006787 - adds r2, r4, r1 - ldrb r0, [r2] - adds r1, 0x1 - adds r3, r4, r1 - strb r0, [r3] - ldr r0, =0x00006786 - adds r1, r4, r0 - ldrb r0, [r1] - strb r0, [r2] - strb r7, [r1] - ldrb r1, [r3] - ldr r2, =0x00006789 - adds r0, r4, r2 - strb r1, [r0] - ldrh r0, [r5, 0x2] - cmp r0, 0 - bne _081CD312 - ldrh r0, [r5] -_081CD312: - subs r1, r0, 0x1 - strh r1, [r5, 0x2] - lsls r0, r1, 16 - cmp r0, 0 - beq _081CD32C - subs r1, 0x1 - b _081CD384 - .pool -_081CD32C: - ldrh r0, [r5] - subs r1, r0, 0x1 - b _081CD384 -_081CD332: - ldr r0, =0x00006788 - adds r2, r4, r0 - ldrb r0, [r2] - ldr r1, =0x00006787 - adds r3, r4, r1 - strb r0, [r3] - ldr r0, =0x00006786 - adds r1, r4, r0 - ldrb r0, [r1] - strb r0, [r2] - strb r7, [r1] - ldrb r1, [r3] - ldr r2, =0x00006789 - adds r0, r4, r2 - strb r1, [r0] - ldrh r1, [r5, 0x2] - ldrh r0, [r5] - subs r0, 0x1 - cmp r1, r0 - bge _081CD370 - adds r0, r1, 0x1 - b _081CD372 - .pool -_081CD370: - movs r0, 0 -_081CD372: - strh r0, [r5, 0x2] - ldrh r1, [r5, 0x2] - ldrh r0, [r5] - subs r0, 0x1 - cmp r1, r0 - bge _081CD382 - adds r1, 0x1 - b _081CD384 -_081CD382: - movs r1, 0 -_081CD384: - ldr r2, =0x00006302 - adds r0, r4, r2 - strh r1, [r0] - ldrh r4, [r5, 0x2] - bl sub_81CDD5C - cmp r0, 0 - beq _081CD39C - ldrh r1, [r5] - b _081CD3A0 - .pool -_081CD39C: - ldrh r1, [r5] - subs r1, 0x1 -_081CD3A0: - eors r1, r4 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - cmp r6, 0 - bne _081CD3B0 - movs r0, 0x3 - b _081CD3BA -_081CD3B0: - cmp r0, 0 - beq _081CD3B8 - movs r0, 0x1 - b _081CD3BA -_081CD3B8: - movs r0, 0x4 -_081CD3BA: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81CD258 - - thumb_func_start sub_81CD3C4 -sub_81CD3C4: @ 81CD3C4 - push {r4,lr} - movs r0, 0xB - bl sub_81C763C - adds r4, r0, 0 - movs r0, 0x12 - bl sub_81C763C - adds r2, r0, 0 - ldr r1, =0x0000678a - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0x9 - bls _081CD3E2 - b _081CD530 -_081CD3E2: - lsls r0, 2 - ldr r1, =_081CD3F4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CD3F4: - .4byte _081CD41C - .4byte _081CD428 - .4byte _081CD434 - .4byte _081CD440 - .4byte _081CD490 - .4byte _081CD4A8 - .4byte _081CD4C0 - .4byte _081CD4D8 - .4byte _081CD4F0 - .4byte _081CD508 -_081CD41C: - movs r1, 0x2 - ldrsh r0, [r2, r1] - movs r1, 0 - bl sub_81CD824 - b _081CD530 -_081CD428: - movs r1, 0x2 - ldrsh r0, [r2, r1] - movs r1, 0 - bl sub_81CDA1C - b _081CD530 -_081CD434: - movs r1, 0x2 - ldrsh r0, [r2, r1] - movs r1, 0 - bl sub_81CDB98 - b _081CD530 -_081CD440: - ldrh r0, [r2] - cmp r0, 0x1 - bne _081CD468 - ldr r2, =0x00006786 - adds r0, r4, r2 - movs r1, 0 - strb r1, [r0] - adds r2, 0x1 - adds r0, r4, r2 - strb r1, [r0] - adds r2, 0x1 - adds r0, r4, r2 - strb r1, [r0] - adds r2, 0x2 - adds r0, r4, r2 - strb r1, [r0] - movs r0, 0x1 - b _081CD53C - .pool -_081CD468: - ldr r0, =0x00006786 - adds r1, r4, r0 - movs r0, 0 - strb r0, [r1] - ldr r2, =0x00006787 - adds r1, r4, r2 - movs r0, 0x1 - strb r0, [r1] - ldr r0, =0x00006788 - adds r1, r4, r0 - movs r0, 0x2 - strb r0, [r1] - b _081CD530 - .pool -_081CD490: - ldrh r0, [r2, 0x2] - adds r0, 0x1 - ldrh r2, [r2] - cmp r0, r2 - blt _081CD49C - movs r0, 0 -_081CD49C: - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - bl sub_81CD824 - b _081CD530 -_081CD4A8: - ldrh r0, [r2, 0x2] - adds r0, 0x1 - ldrh r2, [r2] - cmp r0, r2 - blt _081CD4B4 - movs r0, 0 -_081CD4B4: - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - bl sub_81CDA1C - b _081CD530 -_081CD4C0: - ldrh r0, [r2, 0x2] - adds r0, 0x1 - ldrh r2, [r2] - cmp r0, r2 - blt _081CD4CC - movs r0, 0 -_081CD4CC: - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - bl sub_81CDB98 - b _081CD530 -_081CD4D8: - ldrh r0, [r2, 0x2] - subs r0, 0x1 - cmp r0, 0 - bge _081CD4E4 - ldrh r0, [r2] - subs r0, 0x1 -_081CD4E4: - lsls r0, 16 - asrs r0, 16 - movs r1, 0x2 - bl sub_81CD824 - b _081CD530 -_081CD4F0: - ldrh r0, [r2, 0x2] - subs r0, 0x1 - cmp r0, 0 - bge _081CD4FC - ldrh r0, [r2] - subs r0, 0x1 -_081CD4FC: - lsls r0, 16 - asrs r0, 16 - movs r1, 0x2 - bl sub_81CDA1C - b _081CD530 -_081CD508: - ldrh r0, [r2, 0x2] - subs r0, 0x1 - cmp r0, 0 - bge _081CD514 - ldrh r0, [r2] - subs r0, 0x1 -_081CD514: - lsls r0, 16 - asrs r0, 16 - movs r1, 0x2 - bl sub_81CDB98 - ldr r2, =0x0000678a - adds r1, r4, r2 - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - b _081CD53C - .pool -_081CD530: - ldr r0, =0x0000678a - adds r1, r4, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0 -_081CD53C: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CD3C4 - - thumb_func_start sub_81CD548 -sub_81CD548: @ 81CD548 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - movs r0, 0xB - bl sub_81C763C - adds r1, r0, 0 - cmp r4, 0x1 - beq _081CD588 - cmp r4, 0x1 - bgt _081CD566 - cmp r4, 0 - beq _081CD56C - b _081CD5C4 -_081CD566: - cmp r5, 0x2 - beq _081CD5A4 - b _081CD5C4 -_081CD56C: - ldr r2, =0x00006302 - adds r0, r1, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - ldr r2, =0x00006789 - adds r1, r2 - ldrb r1, [r1] - bl sub_81CD824 - b _081CD5C4 - .pool -_081CD588: - ldr r2, =0x00006302 - adds r0, r1, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - ldr r2, =0x00006789 - adds r1, r2 - ldrb r1, [r1] - bl sub_81CDA1C - b _081CD5C4 - .pool -_081CD5A4: - ldr r2, =0x00006302 - adds r0, r1, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - ldr r2, =0x00006789 - adds r1, r2 - ldrb r1, [r1] - bl sub_81CDB98 - movs r0, 0x1 - b _081CD5C6 - .pool -_081CD5C4: - movs r0, 0 -_081CD5C6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CD548 - - thumb_func_start sub_81CD5CC -sub_81CD5CC: @ 81CD5CC - push {r4,lr} - adds r4, r0, 0 - lsls r2, 16 - lsrs r2, 16 - b _081CD5E4 -_081CD5D6: - strb r3, [r4] - adds r1, 0x1 - adds r4, 0x1 - lsls r0, r2, 16 - ldr r2, =0xffff0000 - adds r0, r2 - lsrs r2, r0, 16 -_081CD5E4: - ldrb r3, [r1] - adds r0, r3, 0 - cmp r0, 0xFF - bne _081CD5D6 - adds r1, r2, 0 - lsls r0, r1, 16 - ldr r2, =0xffff0000 - adds r0, r2 - lsrs r2, r0, 16 - lsls r1, 16 - cmp r1, 0 - ble _081CD612 - movs r3, 0 -_081CD5FE: - strb r3, [r4] - adds r4, 0x1 - adds r1, r2, 0 - lsls r0, r1, 16 - ldr r2, =0xffff0000 - adds r0, r2 - lsrs r2, r0, 16 - lsls r1, 16 - cmp r1, 0 - bgt _081CD5FE -_081CD612: - movs r0, 0xFF - strb r0, [r4] - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CD5CC - - thumb_func_start sub_81CD624 -sub_81CD624: @ 81CD624 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r5, r0, 0 - adds r4, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - movs r0, 0x12 - bl sub_81C763C - lsls r4, 2 - adds r0, r4 - ldrb r4, [r0, 0x4] - mov r8, r4 - ldrb r6, [r0, 0x5] - mov r9, r6 - movs r0, 0xFC - strb r0, [r5] - adds r5, 0x1 - movs r0, 0x4 - strb r0, [r5] - adds r5, 0x1 - movs r0, 0x8 - strb r0, [r5] - adds r5, 0x1 - movs r0, 0 - strb r0, [r5] - adds r5, 0x1 - movs r0, 0x9 - strb r0, [r5] - adds r5, 0x1 - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0x2D - movs r3, 0 - bl sub_81D2C68 - cmp r0, 0 - beq _081CD690 - ldr r1, =gUnknown_085E8264 - adds r0, r5, 0 - movs r2, 0 - movs r3, 0xC - bl StringCopyPadded - b _081CD80E - .pool -_081CD690: - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0x2 - adds r3, r5, 0 - bl sub_81D2C68 - adds r0, r5, 0 - bl StringGetEnd10 - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0xB - movs r3, 0 - bl sub_81D2C68 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r4, 0xE - bne _081CD6E0 - movs r0, 0x64 - adds r4, r6, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - adds r0, r4, 0 - bl pokemon_get_gender - lsls r0, 24 - lsrs r6, r0, 24 - b _081CD6FE - .pool -_081CD6E0: - mov r0, r8 - mov r1, r9 - bl get_pokemon_by_box_and_pos - adds r4, r0, 0 - bl pokemon_roll_gender - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r4, 0 - bl sub_80690C0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 -_081CD6FE: - cmp r7, 0x1D - beq _081CD706 - cmp r7, 0x20 - bne _081CD71C -_081CD706: - movs r0, 0xB - adds r1, r7, 0 - muls r1, r0 - ldr r0, =gSpeciesNames - adds r1, r0 - adds r0, r5, 0 - bl StringCompare - cmp r0, 0 - bne _081CD71C - movs r6, 0xFF -_081CD71C: - adds r3, r5, 0 - b _081CD726 - .pool -_081CD724: - adds r3, 0x1 -_081CD726: - ldrb r0, [r3] - cmp r0, 0xFF - bne _081CD724 - movs r1, 0xFC - strb r1, [r3] - adds r3, 0x1 - movs r0, 0x12 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x3C - strb r0, [r3] - adds r3, 0x1 - cmp r6, 0 - beq _081CD74A - cmp r6, 0xFE - beq _081CD76E - movs r0, 0x77 - b _081CD790 -_081CD74A: - strb r1, [r3] - adds r3, 0x1 - movs r0, 0x1 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x4 - strb r0, [r3] - adds r3, 0x1 - strb r1, [r3] - adds r3, 0x1 - movs r0, 0x3 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x5 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0xB5 - b _081CD790 -_081CD76E: - strb r1, [r3] - adds r3, 0x1 - movs r0, 0x1 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x6 - strb r0, [r3] - adds r3, 0x1 - strb r1, [r3] - adds r3, 0x1 - movs r0, 0x3 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x7 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0xB6 -_081CD790: - strb r0, [r3] - adds r3, 0x1 - movs r0, 0xFC - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x4 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x8 - strb r0, [r3] - adds r3, 0x1 - movs r5, 0 - strb r5, [r3] - adds r3, 0x1 - movs r0, 0x9 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0xBA - strb r0, [r3] - adds r3, 0x1 - movs r0, 0xF9 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x5 - strb r0, [r3] - adds r3, 0x1 - adds r4, r3, 0 - adds r0, r4, 0 - mov r1, r8 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r3, r0, 0 - subs r4, r3, r4 - lsls r4, 16 - lsrs r4, 16 - strb r5, [r3] - adds r3, 0x1 - mov r0, r10 - cmp r0, 0 - bne _081CD808 - movs r0, 0x3 - subs r0, r4 - lsls r0, 16 - ldr r1, =0xffff0000 - adds r0, r1 - lsrs r4, r0, 16 - ldr r0, =0x0000ffff - cmp r4, r0 - beq _081CD808 - movs r2, 0 - adds r1, r0, 0 -_081CD7FA: - strb r2, [r3] - adds r3, 0x1 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r1 - bne _081CD7FA -_081CD808: - movs r0, 0xFF - strb r0, [r3] - adds r0, r3, 0 -_081CD80E: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CD624 - - thumb_func_start sub_81CD824 -sub_81CD824: @ 81CD824 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r1, 24 - lsrs r6, r1, 24 - movs r0, 0xB - bl sub_81C763C - adds r5, r0, 0 - movs r0, 0x12 - bl sub_81C763C - adds r7, r0, 0 - mov r1, r8 - lsls r0, r1, 16 - asrs r4, r0, 16 - bl sub_81CDD5C - cmp r0, 0 - beq _081CD85A - ldrh r2, [r7] - cmp r4, r2 - bne _081CD862 - b _081CD900 -_081CD85A: - ldrh r0, [r7] - subs r0, 0x1 - cmp r4, r0 - beq _081CD900 -_081CD862: - lsls r0, r6, 6 - ldr r1, =0x00006368 - adds r0, r1 - adds r0, r5, r0 - mov r2, r8 - lsls r4, r2, 16 - lsrs r1, r4, 16 - movs r2, 0 - bl sub_81CD624 - asrs r4, 14 - adds r4, r7, r4 - ldrb r3, [r4, 0x4] - lsls r0, r6, 1 - adds r0, r6 - lsls r4, r0, 3 - ldr r1, =0x00006320 - adds r0, r5, r1 - adds r0, r4 - movs r2, 0 - movs r1, 0xFC - strb r1, [r0] - ldr r1, =0x00006321 - adds r0, r5, r1 - adds r0, r4 - movs r1, 0x4 - strb r1, [r0] - ldr r1, =0x00006322 - adds r0, r5, r1 - adds r0, r4 - movs r1, 0x8 - strb r1, [r0] - ldr r1, =0x00006323 - adds r0, r5, r1 - adds r0, r4 - strb r2, [r0] - ldr r2, =0x00006324 - adds r0, r5, r2 - adds r0, r4 - movs r1, 0x9 - strb r1, [r0] - cmp r3, 0xE - bne _081CD8E4 - adds r0, r4, r5 - ldr r1, =0x00006325 - adds r0, r1 - ldr r1, =gUnknown_085EBFCE - b _081CD8F4 - .pool -_081CD8E4: - adds r4, r5 - ldr r2, =0x00006325 - adds r4, r2 - adds r0, r3, 0 - bl sav3_get_box_name - adds r1, r0, 0 - adds r0, r4, 0 -_081CD8F4: - movs r2, 0x8 - bl sub_81CD5CC - b _081CD95C - .pool -_081CD900: - movs r1, 0 - lsls r4, r6, 6 - lsls r0, r6, 1 - mov r8, r0 - adds r3, r4, 0 - ldr r0, =0x00006368 - adds r2, r5, r0 - movs r7, 0 -_081CD910: - adds r0, r1, r3 - adds r0, r2, r0 - strb r7, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xB - bls _081CD910 - adds r1, r4 - ldr r2, =0x00006368 - adds r0, r5, r2 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - movs r1, 0 - mov r2, r8 - adds r0, r2, r6 - lsls r3, r0, 3 - ldr r0, =0x00006320 - adds r2, r5, r0 - movs r4, 0 -_081CD93A: - adds r0, r1, r3 - adds r0, r2, r0 - strb r4, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x7 - bls _081CD93A - mov r2, r8 - adds r0, r2, r6 - lsls r0, 3 - adds r0, r1, r0 - ldr r2, =0x00006320 - adds r1, r5, r2 - adds r1, r0 - movs r0, 0xFF - strb r0, [r1] -_081CD95C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CD824 - - thumb_func_start sub_81CD970 -sub_81CD970: @ 81CD970 - push {r4-r7,lr} - movs r0, 0xB - bl sub_81C763C - adds r7, r0, 0 - ldr r1, =0x000006ac - movs r0, 0x12 - bl sub_81C761C - adds r6, r0, 0 - movs r0, 0xC6 - lsls r0, 7 - adds r1, r7, r0 - movs r0, 0 - strb r0, [r1] - movs r4, 0 - movs r5, 0 - b _081CD9C4 - .pool -_081CD998: - movs r0, 0x64 - muls r0, r4 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2D - bl GetMonData - adds r2, r0, 0 - cmp r2, 0 - bne _081CD9BE - lsls r1, r5, 2 - adds r1, r6, r1 - movs r0, 0xE - strb r0, [r1, 0x4] - strb r4, [r1, 0x5] - strh r2, [r1, 0x6] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_081CD9BE: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_081CD9C4: - bl calc_player_party_count - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcc _081CD998 - lsls r0, r5, 2 - adds r0, r6, r0 - movs r1, 0 - strb r1, [r0, 0x4] - strb r1, [r0, 0x5] - movs r2, 0 - strh r1, [r0, 0x6] - strh r1, [r6, 0x2] - adds r0, r5, 0x1 - strh r0, [r6] - ldr r1, =0x0000678a - adds r0, r7, r1 - strb r2, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CD970 - - thumb_func_start sub_81CD9F8 -sub_81CD9F8: @ 81CD9F8 - push {lr} - movs r0, 0xB - bl sub_81C763C - movs r1, 0xC6 - lsls r1, 7 - adds r2, r0, r1 - movs r3, 0 - movs r1, 0x1 - strb r1, [r2] - ldr r1, =0x0000678a - adds r0, r1 - strb r3, [r0] - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CD9F8 - - thumb_func_start sub_81CDA1C -sub_81CDA1C: @ 81CDA1C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - movs r0, 0xB - bl sub_81C763C - mov r8, r0 - movs r0, 0x12 - bl sub_81C763C - adds r4, r0, 0 - lsls r0, r6, 16 - asrs r5, r0, 16 - bl sub_81CDD5C - cmp r0, 0 - beq _081CDA52 - ldrh r0, [r4] - cmp r5, r0 - bne _081CDA5A - b _081CDB48 -_081CDA52: - ldrh r0, [r4] - subs r0, 0x1 - cmp r5, r0 - beq _081CDB48 -_081CDA5A: - lsls r0, r6, 16 - asrs r0, 14 - adds r0, r4, r0 - ldrb r6, [r0, 0x4] - ldrb r7, [r0, 0x5] - adds r0, r6, 0 - adds r1, r7, 0 - movs r2, 0x16 - movs r3, 0 - bl sub_81D2C68 - mov r1, r9 - lsls r5, r1, 2 - adds r4, r5, r1 - ldr r1, =0x00006428 - add r1, r8 - adds r1, r4 - strb r0, [r1] - adds r0, r6, 0 - adds r1, r7, 0 - movs r2, 0x2F - movs r3, 0 - bl sub_81D2C68 - ldr r1, =0x00006429 - add r1, r8 - adds r1, r4 - strb r0, [r1] - adds r0, r6, 0 - adds r1, r7, 0 - movs r2, 0x21 - movs r3, 0 - bl sub_81D2C68 - ldr r1, =0x0000642a - add r1, r8 - adds r1, r4 - strb r0, [r1] - adds r0, r6, 0 - adds r1, r7, 0 - movs r2, 0x18 - movs r3, 0 - bl sub_81D2C68 - ldr r1, =0x0000642b - add r1, r8 - adds r1, r4 - strb r0, [r1] - adds r0, r6, 0 - adds r1, r7, 0 - movs r2, 0x17 - movs r3, 0 - bl sub_81D2C68 - ldr r1, =0x0000642c - add r1, r8 - adds r1, r4 - strb r0, [r1] - movs r0, 0xCF - lsls r0, 7 - add r0, r8 - mov r2, r9 - adds r4, r0, r2 - adds r0, r6, 0 - adds r1, r7, 0 - movs r2, 0x30 - movs r3, 0 - bl sub_81D2C68 - cmp r0, 0xFF - beq _081CDB10 - adds r0, r6, 0 - adds r1, r7, 0 - movs r2, 0x30 - movs r3, 0 - bl sub_81D2C68 - movs r1, 0x1D - bl __udivsi3 - b _081CDB12 - .pool -_081CDB10: - movs r0, 0x9 -_081CDB12: - strb r0, [r4] - adds r0, r6, 0 - adds r1, r7, 0 - movs r2, 0x8 - movs r3, 0 - bl sub_81D2C68 - ldr r1, =0x00006783 - add r1, r8 - add r1, r9 - strb r0, [r1] - mov r0, r9 - adds r1, r5, r0 - ldr r2, =0x00006428 - adds r0, r1, r2 - add r0, r8 - lsls r1, 2 - adds r2, 0x14 - adds r1, r2 - add r1, r8 - bl sub_81D2754 - b _081CDB80 - .pool -_081CDB48: - movs r2, 0 - mov r0, r9 - lsls r5, r0, 2 - add r5, r9 - ldr r4, =0x00006428 - add r4, r8 - lsls r3, r5, 2 - mov r9, r2 - ldr r7, =0x0000643c - movs r6, 0x9B -_081CDB5C: - adds r0, r2, r5 - adds r0, r4, r0 - mov r1, r9 - strb r1, [r0] - lsls r0, r2, 2 - adds r0, r3 - add r0, r8 - adds r1, r0, r7 - strh r6, [r1] - ldr r1, =0x0000643e - adds r0, r1 - movs r1, 0x5B - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x4 - bls _081CDB5C -_081CDB80: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CDA1C - - thumb_func_start sub_81CDB98 -sub_81CDB98: @ 81CDB98 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - movs r0, 0xB - bl sub_81C763C - adds r7, r0, 0 - movs r0, 0x12 - bl sub_81C763C - adds r4, r0, 0 - lsls r0, r6, 16 - asrs r5, r0, 16 - bl sub_81CDD5C - cmp r0, 0 - beq _081CDBCC - ldrh r0, [r4] - b _081CDBD0 -_081CDBCC: - ldrh r0, [r4] - subs r0, 0x1 -_081CDBD0: - cmp r5, r0 - beq _081CDC3E - lsls r0, r6, 16 - asrs r0, 14 - adds r0, r4, r0 - ldrb r5, [r0, 0x4] - ldrb r6, [r0, 0x5] - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x41 - movs r3, 0 - bl sub_81D2C68 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x1 - movs r3, 0 - bl sub_81D2C68 - mov r8, r0 - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0 - bl sub_81D2C68 - adds r5, r0, 0 - lsls r0, r4, 3 - ldr r1, =gMonFrontPicTable - adds r0, r1 - mov r2, r9 - lsls r1, r2, 13 - movs r2, 0xC0 - lsls r2, 2 - adds r1, r2 - adds r1, r7, r1 - movs r2, 0x1 - str r2, [sp] - adds r2, r4, 0 - adds r3, r5, 0 - bl DecompressMonPic - adds r0, r4, 0 - mov r1, r8 - adds r2, r5, 0 - bl species_and_otid_get_pal - mov r2, r9 - lsls r1, r2, 7 - adds r1, r7, r1 - bl LZ77UnCompWram -_081CDC3E: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CDB98 - - thumb_func_start sub_81CDC50 -sub_81CDC50: @ 81CDC50 - push {lr} - movs r0, 0x12 - bl sub_81C763C - ldrh r0, [r0] - pop {r1} - bx r1 - thumb_func_end sub_81CDC50 - - thumb_func_start sub_81CDC60 -sub_81CDC60: @ 81CDC60 - push {lr} - movs r0, 0x12 - bl sub_81C763C - ldrh r0, [r0, 0x2] - pop {r1} - bx r1 - thumb_func_end sub_81CDC60 - - thumb_func_start sub_81CDC70 -sub_81CDC70: @ 81CDC70 - push {lr} - movs r0, 0xB - bl sub_81C763C - ldr r1, =0x00006428 - adds r0, r1 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CDC70 - - thumb_func_start sub_81CDC84 -sub_81CDC84: @ 81CDC84 - push {lr} - movs r0, 0xB - bl sub_81C763C - ldr r1, =0x00006786 - adds r0, r1 - ldrb r0, [r0] - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CDC84 - - thumb_func_start sub_81CDC9C -sub_81CDC9C: @ 81CDC9C - push {lr} - movs r0, 0xB - bl sub_81C763C - ldr r1, =0x00006302 - adds r0, r1 - ldrb r0, [r0] - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CDC9C - - thumb_func_start sub_81CDCB4 -sub_81CDCB4: @ 81CDCB4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0xB - bl sub_81C763C - lsls r4, 13 - movs r1, 0xC0 - lsls r1, 2 - adds r4, r1 - adds r0, r4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CDCB4 - - thumb_func_start sub_81CDCD4 -sub_81CDCD4: @ 81CDCD4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0xB - bl sub_81C763C - lsls r4, 7 - adds r0, r4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CDCD4 - - thumb_func_start sub_81CDCEC -sub_81CDCEC: @ 81CDCEC - push {lr} - movs r0, 0xB - bl sub_81C763C - ldr r1, =0x00006789 - adds r0, r1 - ldrb r0, [r0] - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CDCEC - - thumb_func_start sub_81CDD04 -sub_81CDD04: @ 81CDD04 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0xB - bl sub_81C763C - lsls r4, 6 - ldr r1, =0x00006368 - adds r4, r1 - adds r0, r4 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CDD04 - - thumb_func_start sub_81CDD24 -sub_81CDD24: @ 81CDD24 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0xB - bl sub_81C763C - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 3 - ldr r2, =0x00006320 - adds r1, r2 - adds r0, r1 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CDD24 - - thumb_func_start sub_81CDD48 -sub_81CDD48: @ 81CDD48 - push {lr} - movs r0, 0x12 - bl sub_81C763C - ldrh r1, [r0, 0x2] - lsls r1, 2 - adds r0, r1 - ldrh r0, [r0, 0x6] - pop {r1} - bx r1 - thumb_func_end sub_81CDD48 - - thumb_func_start sub_81CDD5C -sub_81CDD5C: @ 81CDD5C - push {lr} - movs r0, 0xB - bl sub_81C763C - movs r1, 0xC6 - lsls r1, 7 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _081CDD74 - movs r0, 0 - b _081CDD76 -_081CDD74: - movs r0, 0x1 -_081CDD76: - pop {r1} - bx r1 - thumb_func_end sub_81CDD5C - - thumb_func_start sub_81CDD7C -sub_81CDD7C: @ 81CDD7C - push {lr} - movs r0, 0xB - bl sub_81C763C - adds r2, r0, 0 - movs r1, 0xC6 - lsls r1, 7 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _081CDD96 - movs r0, 0 - b _081CDDA6 -_081CDD96: - ldr r3, =0x00006786 - adds r0, r2, r3 - movs r1, 0 - ldrsb r1, [r0, r1] - subs r3, 0x3 - adds r0, r2, r3 - adds r0, r1 - ldrb r0, [r0] -_081CDDA6: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CDD7C - - thumb_func_start sub_81CDDB0 -sub_81CDDB0: @ 81CDDB0 - push {lr} - movs r0, 0xB - bl sub_81C763C - ldr r2, =0x00006786 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - subs r2, 0x6 - adds r0, r2 - adds r0, r1 - ldrb r0, [r0] - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CDDB0 - - thumb_func_start sub_81CDDD4 -sub_81CDDD4: @ 81CDDD4 - push {r4,lr} - ldr r1, =0x000038ac - movs r0, 0xC - bl sub_81C761C - adds r4, r0, 0 - cmp r4, 0 - beq _081CDE24 - ldr r0, =0x00001816 - adds r1, r4, r0 - movs r0, 0xFF - strb r0, [r1] - ldr r0, =sub_81CDE94 - movs r1, 0x1 - bl sub_81C7078 - str r0, [r4] - ldr r0, =0x00001810 - adds r1, r4, r0 - ldr r0, =sub_81CDE80 - str r0, [r1] - ldr r0, =0x00002908 - adds r1, r4, r0 - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - b _081CDE26 - .pool -_081CDE24: - movs r0, 0 -_081CDE26: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CDDD4 - - thumb_func_start sub_81CDE2C -sub_81CDE2C: @ 81CDE2C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xC - bl sub_81C763C - adds r5, r0, 0 - ldr r0, =gUnknown_08623384 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - movs r1, 0x1 - bl sub_81C7078 - str r0, [r5] - ldr r0, =0x00001810 - adds r5, r0 - ldr r0, =sub_81CDE80 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CDE2C - - thumb_func_start sub_81CDE64 -sub_81CDE64: @ 81CDE64 - push {lr} - movs r0, 0xC - bl sub_81C763C - ldr r1, =0x00001810 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CDE64 - - thumb_func_start sub_81CDE80 -sub_81CDE80: @ 81CDE80 - push {lr} - movs r0, 0xC - bl sub_81C763C - ldr r0, [r0] - bl sub_81C70D8 - pop {r1} - bx r1 - thumb_func_end sub_81CDE80 - - thumb_func_start sub_81CDE94 -sub_81CDE94: @ 81CDE94 - push {r4-r6,lr} - sub sp, 0xC - adds r4, r0, 0 - movs r0, 0xC - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x14 - bls _081CDEA8 - b _081CE2C4 -_081CDEA8: - lsls r0, r4, 2 - ldr r1, =_081CDEB8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CDEB8: - .4byte _081CDF0C - .4byte _081CDF18 - .4byte _081CDF94 - .4byte _081CDFB8 - .4byte _081CE030 - .4byte _081CE074 - .4byte _081CE0B0 - .4byte _081CE118 - .4byte _081CE120 - .4byte _081CE126 - .4byte _081CE136 - .4byte _081CE146 - .4byte _081CE156 - .4byte _081CE16C - .4byte _081CE1C8 - .4byte _081CE1EC - .4byte _081CE218 - .4byte _081CE23C - .4byte _081CE24A - .4byte _081CE25A - .4byte _081CE262 -_081CDF0C: - bl sub_81CD3C4 - cmp r0, 0x1 - beq _081CDF16 - b _081CE2C0 -_081CDF16: - b _081CDFB0 -_081CDF18: - ldr r0, =gUnknown_08623358 - movs r1, 0x3 - bl sub_81C7B54 - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - ldr r1, =0x00007940 - movs r0, 0 - bl SetGpuReg - ldr r1, =0x00000844 - movs r0, 0x50 - bl SetGpuReg - ldr r1, =0x0000040b - movs r0, 0x52 - bl SetGpuReg - ldr r1, =gUnknown_08DC6548 - movs r0, 0 - str r0, [sp] - movs r0, 0x3 - b _081CDFA8 - .pool -_081CDF94: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _081CDFA2 - b _081CE2C0 -_081CDFA2: - ldr r1, =gUnknown_08623228 - str r0, [sp] - movs r0, 0x2 -_081CDFA8: - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram -_081CDFB0: - movs r0, 0 - b _081CE2C6 - .pool -_081CDFB8: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - beq _081CDFC4 - b _081CE2C0 -_081CDFC4: - ldr r0, =gUnknown_08DC6DFC - adds r4, r5, 0x4 - adds r1, r4, 0 - bl LZ77UnCompVram - movs r0, 0x3 - adds r1, r4, 0 - bl SetBgTilemapBuffer - bl sub_81CDD5C - cmp r0, 0x1 - bne _081CDFF2 - ldr r1, =gUnknown_08DC7070 - movs r0, 0x9 - str r0, [sp] - movs r0, 0x4 - str r0, [sp, 0x4] - movs r0, 0x3 - movs r2, 0 - movs r3, 0x5 - bl CopyToBgTilemapBufferRect -_081CDFF2: - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - ldr r0, =gUnknown_08DC6528 - movs r1, 0x10 - movs r2, 0x20 - bl sub_81C7944 - ldr r0, =gUnknown_08623208 - movs r1, 0xF0 - movs r2, 0x20 - bl sub_81C7944 - ldr r0, =0x00001814 - adds r1, r5, r0 - ldr r0, =0x0000ffb0 - strh r0, [r1] - b _081CDFB0 - .pool -_081CE030: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - beq _081CE03C - b _081CE2C0 -_081CE03C: - ldr r0, =gUnknown_0862323C - ldr r1, =0x00001004 - adds r4, r5, r1 - adds r1, r4, 0 - bl LZ77UnCompVram - movs r0, 0x2 - adds r1, r4, 0 - bl SetBgTilemapBuffer - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - ldr r0, =gUnknown_086231E8 - movs r1, 0x30 - movs r2, 0x20 - bl sub_81C7944 - movs r0, 0x2 - bl sub_81D21DC - b _081CDFB0 - .pool -_081CE074: - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_8199DF0 - movs r0, 0x1 - movs r1, 0x11 - movs r2, 0x1 - movs r3, 0x1 - bl sub_8199DF0 - movs r0, 0 - str r0, [sp, 0x8] - ldr r2, =0x00000804 - adds r4, r5, r2 - ldr r2, =0x05000200 - add r0, sp, 0x8 - adds r1, r4, 0 - bl CpuSet - movs r0, 0x1 - adds r1, r4, 0 - bl SetBgTilemapBuffer - b _081CDFB0 - .pool -_081CE0B0: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - beq _081CE0BC - b _081CE2C0 -_081CE0BC: - ldr r0, =gUnknown_08623364 - bl AddWindow - movs r2, 0xC1 - lsls r2, 5 - adds r1, r5, r2 - strb r0, [r1] - bl sub_81CDD5C - cmp r0, 0x1 - bne _081CE0F6 - ldr r0, =gUnknown_0862336C - bl AddWindow - ldr r2, =0x00001821 - adds r1, r5, r2 - strb r0, [r1] - ldr r0, =gUnknown_08623374 - bl AddWindow - ldr r2, =0x00001822 - adds r1, r5, r2 - strb r0, [r1] - ldr r0, =gUnknown_0862337C - bl AddWindow - ldr r2, =0x00001823 - adds r1, r5, r2 - strb r0, [r1] -_081CE0F6: - bl DeactivateAllTextPrinters - b _081CDFB0 - .pool -_081CE118: - movs r0, 0 - bl sub_81CED30 - b _081CDFB0 -_081CE120: - bl sub_81CE9E4 - b _081CDFB0 -_081CE126: - bl sub_81CDD5C - cmp r0, 0x1 - beq _081CE130 - b _081CDFB0 -_081CE130: - bl sub_81CE934 - b _081CDFB0 -_081CE136: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0 - b _081CE164 -_081CE146: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0x1 - b _081CE164 -_081CE156: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0x2 -_081CE164: - movs r2, 0x1 - bl sub_81CE754 - b _081CDFB0 -_081CE16C: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0x3 - movs r2, 0x1 - bl sub_81CE754 - cmp r0, 0x1 - beq _081CE186 - b _081CE2C0 -_081CE186: - movs r1, 0xC1 - lsls r1, 5 - adds r0, r5, r1 - ldrb r0, [r0] - bl PutWindowTilemap - bl sub_81CDD5C - cmp r0, 0x1 - beq _081CE19C - b _081CDFB0 -_081CE19C: - ldr r2, =0x00001821 - adds r0, r5, r2 - ldrb r0, [r0] - bl PutWindowTilemap - ldr r1, =0x00001822 - adds r0, r5, r1 - ldrb r0, [r0] - bl PutWindowTilemap - ldr r2, =0x00001823 - adds r0, r5, r2 - ldrb r0, [r0] - bl PutWindowTilemap - b _081CDFB0 - .pool -_081CE1C8: - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl HideBg - movs r0, 0x3 - bl ShowBg - bl sub_81CDD5C - cmp r0, 0x1 - beq _081CE1E4 - b _081CDFB0 -_081CE1E4: - movs r0, 0x4 - bl sub_81C7BA4 - b _081CDFB0 -_081CE1EC: - movs r0, 0x1 - bl sub_81C7AC0 - bl sub_81CDD5C - cmp r0, 0 - beq _081CE1FC - b _081CDFB0 -_081CE1FC: - movs r0, 0x6 - bl sub_81C7DFC - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - bl sub_81C7FA0 - movs r0, 0x6 - movs r1, 0x1 - movs r2, 0 - bl sub_81C7FA0 - b _081CDFB0 -_081CE218: - bl sub_81C7B34 - cmp r0, 0 - bne _081CE2C0 - bl sub_81CDD5C - cmp r0, 0 - bne _081CE230 - bl sub_81C8010 - cmp r0, 0 - bne _081CE2C0 -_081CE230: - ldr r0, =sub_81CEE44 - bl c3args_set_0toR1_1to0 - b _081CDFB0 - .pool -_081CE23C: - bl sub_81CEE90 - bl sub_81CDC70 - bl sub_81D20AC - b _081CDFB0 -_081CE24A: - bl sub_81CDC70 - bl sub_81D20BC - lsls r0, 24 - cmp r0, 0 - bne _081CE2C0 - b _081CDFB0 -_081CE25A: - movs r0, 0x1 - bl sub_81CEE74 - b _081CDFB0 -_081CE262: - bl sub_81CDC70 - ldr r2, =0x00001814 - adds r1, r5, r2 - bl sub_81D3178 - lsls r0, 24 - cmp r0, 0 - bne _081CE2C0 - ldr r0, =0x000028e0 - adds r6, r5, r0 - adds r0, r6, 0 - bl sub_81D3464 - bl sub_81CDD5C - cmp r0, 0x1 - beq _081CE298 - bl sub_81CDC60 - adds r4, r0, 0 - bl sub_81CDC50 - lsls r4, 16 - lsls r0, 16 - cmp r4, r0 - beq _081CE2C4 -_081CE298: - ldr r1, =0x00001816 - adds r0, r5, r1 - ldrb r4, [r0] - bl sub_81CDDB0 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_81D3480 - b _081CE2C4 - .pool -_081CE2C0: - movs r0, 0x2 - b _081CE2C6 -_081CE2C4: - movs r0, 0x4 -_081CE2C6: - add sp, 0xC - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81CDE94 - - thumb_func_start sub_81CE2D0 -sub_81CE2D0: @ 81CE2D0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xC - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CE308 - cmp r4, 0x1 - bgt _081CE2EA - cmp r4, 0 - beq _081CE2F4 - b _081CE374 -_081CE2EA: - cmp r4, 0x2 - beq _081CE328 - cmp r4, 0x3 - beq _081CE33E - b _081CE374 -_081CE2F4: - bl sub_81CEEC8 - ldr r1, =0x000028e0 - adds r0, r5, r1 - bl sub_81D3520 - movs r0, 0x1 - b _081CE376 - .pool -_081CE308: - bl sub_81CDC70 - ldr r2, =0x00001814 - adds r1, r5, r2 - bl sub_81D31A4 - lsls r0, 24 - cmp r0, 0 - bne _081CE34E - movs r0, 0 - bl sub_81CEE74 - movs r0, 0x1 - b _081CE376 - .pool -_081CE328: - movs r0, 0 - bl sub_81C7AC0 - bl sub_81CDD5C - cmp r0, 0 - bne _081CE33A - bl sub_81C78A0 -_081CE33A: - movs r0, 0 - b _081CE376 -_081CE33E: - bl sub_81C7B34 - cmp r0, 0 - bne _081CE34E - bl sub_81C78C0 - cmp r0, 0 - beq _081CE352 -_081CE34E: - movs r0, 0x2 - b _081CE376 -_081CE352: - ldr r1, =0x000028e0 - adds r0, r5, r1 - bl sub_81D354C - movs r0, 0x1 - bl HideBg - movs r0, 0x2 - bl HideBg - movs r0, 0x3 - bl HideBg - movs r0, 0x1 - b _081CE376 - .pool -_081CE374: - movs r0, 0x4 -_081CE376: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CE2D0 - - thumb_func_start sub_81CE37C -sub_81CE37C: @ 81CE37C - push {r4-r6,lr} - adds r4, r0, 0 - movs r0, 0xC - bl sub_81C763C - adds r6, r0, 0 - bl sub_81CDC70 - adds r2, r0, 0 - cmp r4, 0x9 - bls _081CE394 - b _081CE4D0 -_081CE394: - lsls r0, r4, 2 - ldr r1, =_081CE3A4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CE3A4: - .4byte _081CE3CC - .4byte _081CE3D0 - .4byte _081CE3DA - .4byte _081CE3F0 - .4byte _081CE3F8 - .4byte _081CE418 - .4byte _081CE428 - .4byte _081CE438 - .4byte _081CE44E - .4byte _081CE468 -_081CE3CC: - movs r0, 0 - b _081CE3D2 -_081CE3D0: - movs r0, 0x1 -_081CE3D2: - bl sub_81CD548 -_081CE3D6: - movs r0, 0x1 - b _081CE4D2 -_081CE3DA: - movs r0, 0x2 - bl sub_81CD548 - ldr r1, =0x000028e0 - adds r0, r6, r1 - bl sub_81D3520 - b _081CE3D6 - .pool -_081CE3F0: - adds r0, r2, 0 - bl sub_81D2074 - b _081CE3D6 -_081CE3F8: - ldr r1, =0x00001814 - adds r0, r6, r1 - bl sub_81D3150 - lsls r0, 24 - cmp r0, 0 - bne _081CE4CC - bl sub_81CDC84 - lsls r0, 24 - lsrs r0, 24 - bl sub_81CED30 - b _081CE3D6 - .pool -_081CE418: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0 - b _081CE446 -_081CE428: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0x1 - b _081CE446 -_081CE438: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0x2 -_081CE446: - movs r2, 0 - bl sub_81CE754 - b _081CE3D6 -_081CE44E: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0x3 - movs r2, 0 - bl sub_81CE754 - cmp r0, 0x1 - beq _081CE3D6 - b _081CE4CC -_081CE468: - bl sub_81CDC70 - adds r2, r0, 0 - ldr r0, =0x00001814 - adds r1, r6, r0 - adds r0, r2, 0 - bl sub_81D3178 - lsls r0, 24 - cmp r0, 0 - bne _081CE4CC - ldr r1, =0x000028e0 - adds r0, r6, r1 - bl sub_81D3464 - bl sub_81CDD5C - cmp r0, 0x1 - beq _081CE4A0 - bl sub_81CDC60 - adds r4, r0, 0 - bl sub_81CDC50 - lsls r4, 16 - lsls r0, 16 - cmp r4, r0 - beq _081CE3D6 -_081CE4A0: - ldr r0, =0x000028e0 - adds r5, r6, r0 - ldr r1, =0x00001816 - adds r0, r6, r1 - ldrb r4, [r0] - bl sub_81CDDB0 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_81D3480 - b _081CE3D6 - .pool -_081CE4CC: - movs r0, 0x2 - b _081CE4D2 -_081CE4D0: - movs r0, 0x4 -_081CE4D2: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81CE37C - - thumb_func_start sub_81CE4D8 -sub_81CE4D8: @ 81CE4D8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xC - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x8 - bhi _081CE5DC - lsls r0, r4, 2 - ldr r1, =_081CE4F8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CE4F8: - .4byte _081CE51C - .4byte _081CE520 - .4byte _081CE524 - .4byte _081CE52E - .4byte _081CE53E - .4byte _081CE54E - .4byte _081CE55E - .4byte _081CE576 - .4byte _081CE592 -_081CE51C: - movs r0, 0 - b _081CE526 -_081CE520: - movs r0, 0x1 - b _081CE526 -_081CE524: - movs r0, 0x2 -_081CE526: - bl sub_81CD548 - movs r0, 0x1 - b _081CE5DE -_081CE52E: - bl sub_81CDC84 - lsls r0, 24 - lsrs r0, 24 - bl sub_81CED30 - movs r0, 0x1 - b _081CE5DE -_081CE53E: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0 - b _081CE56C -_081CE54E: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0x1 - b _081CE56C -_081CE55E: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0x2 -_081CE56C: - movs r2, 0 - bl sub_81CE754 - movs r0, 0x1 - b _081CE5DE -_081CE576: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0x3 - movs r2, 0 - bl sub_81CE754 - cmp r0, 0x1 - bne _081CE5D8 - movs r0, 0x1 - b _081CE5DE -_081CE592: - bl sub_81CDC70 - ldr r2, =0x00001814 - adds r1, r5, r2 - bl sub_81D3178 - lsls r0, 24 - cmp r0, 0 - bne _081CE5D8 - ldr r0, =0x000028e0 - adds r4, r5, r0 - adds r0, r4, 0 - bl sub_81D3464 - ldr r1, =0x00001816 - adds r0, r5, r1 - ldrb r5, [r0] - bl sub_81CDDB0 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_81D3480 - movs r0, 0x1 - b _081CE5DE - .pool -_081CE5D8: - movs r0, 0x2 - b _081CE5DE -_081CE5DC: - movs r0, 0x4 -_081CE5DE: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CE4D8 - - thumb_func_start sub_81CE5E4 -sub_81CE5E4: @ 81CE5E4 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xC - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x7 - bhi _081CE6B2 - lsls r0, r4, 2 - ldr r1, =_081CE604 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CE604: - .4byte _081CE624 - .4byte _081CE628 - .4byte _081CE632 - .4byte _081CE648 - .4byte _081CE660 - .4byte _081CE670 - .4byte _081CE680 - .4byte _081CE696 -_081CE624: - movs r0, 0 - b _081CE62A -_081CE628: - movs r0, 0x1 -_081CE62A: - bl sub_81CD548 -_081CE62E: - movs r0, 0x1 - b _081CE6B4 -_081CE632: - movs r0, 0x2 - bl sub_81CD548 - ldr r1, =0x000028e0 - adds r0, r5, r1 - bl sub_81D3520 - b _081CE62E - .pool -_081CE648: - bl sub_81CDC70 - ldr r2, =0x00001814 - adds r1, r5, r2 - bl sub_81D31A4 - lsls r0, 24 - cmp r0, 0 - beq _081CE62E - b _081CE6AE - .pool -_081CE660: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0 - b _081CE68E -_081CE670: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0x1 - b _081CE68E -_081CE680: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0x2 -_081CE68E: - movs r2, 0 - bl sub_81CE754 - b _081CE62E -_081CE696: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0x3 - movs r2, 0 - bl sub_81CE754 - cmp r0, 0x1 - beq _081CE62E -_081CE6AE: - movs r0, 0x2 - b _081CE6B4 -_081CE6B2: - movs r0, 0x4 -_081CE6B4: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CE5E4 - - thumb_func_start sub_81CE6BC -sub_81CE6BC: @ 81CE6BC - push {lr} - cmp r0, 0x1 - beq _081CE6E6 - cmp r0, 0x1 - bgt _081CE6CC - cmp r0, 0 - beq _081CE6D2 - b _081CE6FA -_081CE6CC: - cmp r0, 0x2 - beq _081CE6EE - b _081CE6FA -_081CE6D2: - bl sub_81CDD7C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xB0 - movs r2, 0x20 - bl sub_811FAA4 -_081CE6E2: - movs r0, 0x1 - b _081CE6FC -_081CE6E6: - movs r0, 0x5 - bl sub_81C7BA4 - b _081CE6E2 -_081CE6EE: - bl sub_81C7BE8 - cmp r0, 0x1 - bne _081CE6E2 - movs r0, 0x2 - b _081CE6FC -_081CE6FA: - movs r0, 0x4 -_081CE6FC: - pop {r1} - bx r1 - thumb_func_end sub_81CE6BC - - thumb_func_start sub_81CE700 -sub_81CE700: @ 81CE700 - push {lr} - cmp r0, 0x1 - beq _081CE71E - cmp r0, 0x1 - bgt _081CE710 - cmp r0, 0 - beq _081CE716 - b _081CE732 -_081CE710: - cmp r0, 0x2 - beq _081CE726 - b _081CE732 -_081CE716: - bl sub_811FAF8 -_081CE71A: - movs r0, 0x1 - b _081CE734 -_081CE71E: - movs r0, 0x4 - bl sub_81C7BA4 - b _081CE71A -_081CE726: - bl sub_81C7BE8 - cmp r0, 0x1 - bne _081CE71A - movs r0, 0x2 - b _081CE734 -_081CE732: - movs r0, 0x4 -_081CE734: - pop {r1} - bx r1 - thumb_func_end sub_81CE700 - - thumb_func_start sub_81CE738 -sub_81CE738: @ 81CE738 - push {lr} - lsls r1, 16 - lsrs r1, 16 - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldr r1, =gUnknown_085EBFD7 - bl StringCopy - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CE738 - - thumb_func_start sub_81CE754 -sub_81CE754: @ 81CE754 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x2C - lsls r0, 24 - lsrs r4, r0, 24 - adds r7, r4, 0 - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - lsls r2, 24 - lsrs r5, r2, 24 - movs r0, 0xC - bl sub_81C763C - adds r6, r0, 0 - cmp r4, 0x1 - beq _081CE7B8 - cmp r4, 0x1 - bgt _081CE782 - cmp r4, 0 - beq _081CE78E - b _081CE924 -_081CE782: - cmp r4, 0x2 - beq _081CE800 - cmp r4, 0x3 - bne _081CE78C - b _081CE89C -_081CE78C: - b _081CE924 -_081CE78E: - movs r1, 0xC1 - lsls r1, 5 - adds r0, r6, r1 - ldrb r0, [r0] - movs r1, 0 - bl FillWindowPixelBuffer - bl sub_81CDD5C - cmp r0, 0x1 - beq _081CE7A6 - b _081CE924 -_081CE7A6: - ldr r1, =0x00001821 - adds r0, r6, r1 - ldrb r0, [r0] - movs r1, 0 - bl FillWindowPixelBuffer - b _081CE924 - .pool -_081CE7B8: - bl sub_81CDC60 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl sub_81CDC50 - lsls r0, 16 - lsrs r0, 16 - subs r0, 0x1 - cmp r4, r0 - bne _081CE7DA - bl sub_81CDD5C - cmp r0, 0x1 - beq _081CE7DA - b _081CE924 -_081CE7DA: - mov r1, r8 - lsls r0, r1, 24 - lsrs r0, 24 - bl sub_81CDD04 - adds r2, r0, 0 - movs r1, 0xC1 - lsls r1, 5 - adds r0, r6, r1 - ldrb r0, [r0] - str r7, [sp] - movs r1, 0 - str r1, [sp, 0x4] - str r1, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl Print - b _081CE924 -_081CE800: - bl sub_81CDD5C - adds r7, r0, 0 - cmp r7, 0x1 - beq _081CE80C - b _081CE924 -_081CE80C: - mov r1, r8 - lsls r0, r1, 24 - lsrs r0, 24 - bl sub_81CDD24 - adds r2, r0, 0 - movs r1, 0xC1 - lsls r1, 5 - adds r0, r6, r1 - ldrb r0, [r0] - movs r1, 0x11 - str r1, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl Print - add r1, sp, 0xC - movs r0, 0xFC - strb r0, [r1] - movs r0, 0x4 - strb r0, [r1, 0x1] - movs r0, 0x8 - strb r0, [r1, 0x2] - adds r0, r1, 0 - strb r4, [r0, 0x3] - movs r0, 0x9 - strb r0, [r1, 0x4] - mov r5, sp - adds r5, 0x11 - ldr r1, =gUnknown_085EBFD7 - adds r0, r5, 0 - bl StringCopy - ldr r0, =0x00001821 - adds r6, r0 - ldrb r0, [r6] - str r7, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x1 - add r2, sp, 0xC - movs r3, 0x4 - bl Print - bl sub_81CDD48 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldrb r0, [r6] - str r7, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x1 - add r2, sp, 0xC - movs r3, 0x1C - bl Print - b _081CE924 - .pool -_081CE89C: - ldr r1, =0x00002908 - adds r0, r6, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _081CE8B0 - cmp r0, 0x1 - beq _081CE8EC - b _081CE924 - .pool -_081CE8B0: - cmp r5, 0 - beq _081CE8C4 - movs r1, 0xC1 - lsls r1, 5 - adds r0, r6, r1 - ldrb r0, [r0] - movs r1, 0x3 - bl CopyWindowToVram - b _081CE8D2 -_081CE8C4: - movs r1, 0xC1 - lsls r1, 5 - adds r0, r6, r1 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram -_081CE8D2: - bl sub_81CDD5C - cmp r0, 0x1 - bne _081CE910 - ldr r0, =0x00002908 - adds r1, r6, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _081CE924 - .pool -_081CE8EC: - cmp r5, 0 - beq _081CE904 - ldr r1, =0x00001821 - adds r0, r6, r1 - ldrb r0, [r0] - movs r1, 0x3 - bl CopyWindowToVram - b _081CE910 - .pool -_081CE904: - ldr r1, =0x00001821 - adds r0, r6, r1 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram -_081CE910: - ldr r0, =0x00002908 - adds r1, r6, r0 - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - b _081CE926 - .pool -_081CE924: - movs r0, 0 -_081CE926: - add sp, 0x2C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81CE754 - - thumb_func_start sub_81CE934 -sub_81CE934: @ 81CE934 - push {r4,lr} - movs r0, 0xC - bl sub_81C763C - adds r4, r0, 0 - ldr r1, =0x00001822 - adds r0, r4, r1 - ldrb r0, [r0] - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, =0x00001823 - adds r4, r0 - ldrb r0, [r4] - movs r1, 0x3 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CE934 - - thumb_func_start sub_81CE964 -sub_81CE964: @ 81CE964 - push {r4,r5,lr} - adds r5, r0, 0 - movs r0, 0x2E - ldrsh r4, [r5, r0] - bl sub_81CDC60 - lsls r0, 16 - lsrs r0, 16 - cmp r4, r0 - bne _081CE982 - adds r0, r5, 0 - movs r1, 0 - bl StartObjectImageAnim - b _081CE98A -_081CE982: - adds r0, r5, 0 - movs r1, 0x1 - bl StartObjectImageAnim -_081CE98A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81CE964 - - thumb_func_start sub_81CE990 -sub_81CE990: @ 81CE990 - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_81CDC60 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl sub_81CDC50 - lsls r0, 16 - lsrs r0, 16 - subs r0, 0x1 - cmp r4, r0 - bne _081CE9B0 - movs r0, 0x65 - b _081CE9B2 -_081CE9B0: - movs r0, 0x66 -_081CE9B2: - bl IndexOfObjectPaletteTag - lsls r0, 4 - ldrb r2, [r5, 0x5] - movs r1, 0xF - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x5] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81CE990 - - thumb_func_start sub_81CE9C8 -sub_81CE9C8: @ 81CE9C8 - push {r4,lr} - adds r4, r0, 0 - bl sub_81CDD7C - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartObjectImageAnim - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CE9C8 - - thumb_func_start sub_81CE9E4 -sub_81CE9E4: @ 81CE9E4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x58 - movs r0, 0xC - bl sub_81C763C - adds r6, r0, 0 - add r4, sp, 0x20 - add r5, sp, 0x38 - mov r0, sp - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_81D321C - bl sub_81CDD5C - adds r7, r4, 0 - mov r10, r5 - cmp r0, 0x1 - bne _081CEA78 - ldr r1, =0x00001824 - adds r0, r6, r1 - movs r2, 0x6A - strh r2, [r0] - ldr r3, =0x00001826 - adds r1, r6, r3 - strh r2, [r1] - bl sub_811F90C - bl sub_811FA90 - ldr r2, =gUnknown_08623338 - movs r0, 0x69 - movs r1, 0x69 - bl sub_811FF94 - ldrb r1, [r0, 0x5] - movs r2, 0xC - orrs r1, r2 - strb r1, [r0, 0x5] - movs r1, 0xC0 - strh r1, [r0, 0x20] - movs r1, 0x20 - strh r1, [r0, 0x22] - ldr r1, =sub_81CE9C8 - str r1, [r0, 0x1C] - ldr r2, =0x000028dc - adds r1, r6, r2 - str r0, [r1] - movs r0, 0x69 - bl IndexOfObjectPaletteTag - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_81C7990 - add r3, sp, 0x50 - mov r8, r3 - b _081CEBC6 - .pool -_081CEA78: - mov r0, sp - bl LoadObjectPics - mov r0, r10 - bl sub_81C795C - movs r4, 0 - add r0, sp, 0x50 - mov r8, r0 - b _081CEAE8 -_081CEA8C: - lsls r2, r4, 2 - adds r2, r4 - lsls r2, 18 - movs r1, 0x80 - lsls r1, 12 - adds r2, r1 - asrs r2, 16 - adds r0, r7, 0 - movs r1, 0xE2 - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - beq _081CEAD8 - ldr r2, =0x00001806 - adds r0, r6, r2 - adds r0, r4 - strb r3, [r0] - ldr r2, =gUnknown_02020630 - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - adds r1, r0, r2 - strh r4, [r1, 0x2E] - adds r2, 0x1C - adds r0, r2 - ldr r1, =sub_81CE964 - str r1, [r0] - b _081CEAE2 - .pool -_081CEAD8: - ldr r3, =0x00001806 - adds r0, r6, r3 - adds r0, r4 - movs r1, 0xFF - strb r1, [r0] -_081CEAE2: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_081CEAE8: - bl sub_81CDC50 - lsls r0, 16 - lsrs r0, 16 - subs r0, 0x1 - cmp r4, r0 - blt _081CEA8C - movs r0, 0x67 - strh r0, [r7] - ldr r0, =DummyObjectCallback - str r0, [r7, 0x14] - cmp r4, 0x5 - bhi _081CEB5C - ldr r0, =0x00001806 - adds r5, r6, r0 - ldr r1, =gUnknown_02020630 - mov r9, r1 -_081CEB0A: - lsls r2, r4, 2 - adds r2, r4 - lsls r2, 18 - movs r3, 0x80 - lsls r3, 12 - adds r2, r3 - asrs r2, 16 - adds r0, r7, 0 - movs r1, 0xE6 - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - beq _081CEB4C - adds r0, r5, r4 - strb r3, [r0] - lsls r1, r3, 4 - adds r1, r3 - lsls r1, 2 - add r1, r9 - ldrb r2, [r1, 0x3] - movs r0, 0x3F - ands r0, r2 - strb r0, [r1, 0x3] - b _081CEB52 - .pool -_081CEB4C: - adds r1, r5, r4 - movs r0, 0xFF - strb r0, [r1] -_081CEB52: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x5 - bls _081CEB0A -_081CEB5C: - movs r0, 0x66 - strh r0, [r7] - ldr r0, =sub_81CE990 - str r0, [r7, 0x14] - lsls r2, r4, 2 - adds r2, r4 - lsls r2, 18 - movs r0, 0x80 - lsls r0, 12 - adds r2, r0 - asrs r2, 16 - adds r0, r7, 0 - movs r1, 0xDE - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - beq _081CEBBC - ldr r1, =0x00001806 - adds r0, r6, r1 - adds r0, r4 - strb r3, [r0] - ldr r0, =gUnknown_02020630 - lsls r2, r3, 4 - adds r2, r3 - lsls r2, 2 - adds r2, r0 - ldrb r3, [r2, 0x1] - movs r1, 0x3F - adds r0, r1, 0 - ands r0, r3 - movs r3, 0x40 - orrs r0, r3 - strb r0, [r2, 0x1] - ldrb r0, [r2, 0x3] - ands r1, r0 - movs r0, 0x80 - orrs r1, r0 - strb r1, [r2, 0x3] - b _081CEBC6 - .pool -_081CEBBC: - ldr r2, =0x00001806 - adds r0, r6, r2 - adds r0, r4 - movs r1, 0xFF - strb r1, [r0] -_081CEBC6: - mov r0, r8 - mov r1, r10 - bl sub_81D32B0 - mov r0, r8 - bl LoadObjectPic - movs r0, 0 - mov r3, r10 - str r0, [r3, 0x8] - mov r0, r10 - bl sub_81C795C - add sp, 0x58 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CE9E4 - - thumb_func_start sub_81CEBF4 -sub_81CEBF4: @ 81CEBF4 - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_81CDD5C - cmp r0, 0x1 - bne _081CEC28 - ldr r1, =0x000028dc - adds r0, r5, r1 - ldr r0, [r0] - bl RemoveObjectAndFreeTiles - movs r0, 0x6A - bl FreeObjectTilesByTag - movs r0, 0x69 - bl FreeObjectTilesByTag - movs r0, 0x6A - bl FreeObjectPaletteByTag - movs r0, 0x69 - bl FreeObjectPaletteByTag - b _081CEC68 - .pool -_081CEC28: - movs r4, 0 -_081CEC2A: - ldr r1, =0x00001806 - adds r0, r5, r1 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - bl RemoveObjectAndFreeTiles - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x6 - bls _081CEC2A - movs r0, 0x65 - bl FreeObjectTilesByTag - movs r0, 0x66 - bl FreeObjectTilesByTag - movs r0, 0x67 - bl FreeObjectTilesByTag - movs r0, 0x65 - bl FreeObjectPaletteByTag - movs r0, 0x66 - bl FreeObjectPaletteByTag -_081CEC68: - ldr r0, =0x00001816 - adds r1, r5, r0 - ldrb r0, [r1] - cmp r0, 0xFF - beq _081CEC8E - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - bl RemoveObjectAndFreeTiles - movs r0, 0x64 - bl FreeObjectTilesByTag - movs r0, 0x64 - bl FreeObjectPaletteByTag -_081CEC8E: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CEBF4 - - thumb_func_start sub_81CECA0 -sub_81CECA0: @ 81CECA0 - push {r4,lr} - movs r0, 0xC - bl sub_81C763C - adds r4, r0, 0 - movs r1, 0xC1 - lsls r1, 5 - adds r0, r4, r1 - ldrb r0, [r0] - bl RemoveWindow - bl sub_81CDD5C - cmp r0, 0x1 - bne _081CECEC - ldr r1, =0x00001821 - adds r0, r4, r1 - ldrb r0, [r0] - bl RemoveWindow - ldr r1, =0x00001822 - adds r0, r4, r1 - ldrb r0, [r0] - bl RemoveWindow - ldr r1, =0x00001823 - adds r0, r4, r1 - ldrb r0, [r0] - bl RemoveWindow - b _081CECF0 - .pool -_081CECEC: - bl sub_81C7FDC -_081CECF0: - movs r1, 0x8A - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - adds r0, r4, 0 - bl sub_81CEBF4 - bl sub_81CEE68 - movs r0, 0xC - bl sub_81C7650 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CECA0 - - thumb_func_start sub_81CED10 -sub_81CED10: @ 81CED10 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0xC - bl sub_81C763C - ldr r1, =0x00001814 - adds r0, r1 - ldrh r0, [r0] - adds r0, 0x26 - strh r0, [r4, 0x20] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CED10 - - thumb_func_start sub_81CED30 -sub_81CED30: @ 81CED30 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x28 - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0xC - bl sub_81C763C - mov r8, r0 - ldr r7, =0x00001816 - add r7, r8 - ldrb r0, [r7] - cmp r0, 0xFF - bne _081CEDFC - add r5, sp, 0x18 - add r4, sp, 0x20 - adds r0, r5, 0 - mov r1, sp - adds r2, r4, 0 - bl sub_81D31D0 - adds r0, r6, 0 - bl sub_81CDCB4 - str r0, [sp, 0x18] - adds r0, r6, 0 - bl sub_81CDCD4 - str r0, [sp, 0x20] - adds r0, r4, 0 - bl LoadTaggedObjectPalette - lsls r0, 24 - lsrs r0, 24 - ldr r4, =0x00001818 - add r4, r8 - strh r0, [r4] - adds r0, r5, 0 - bl LoadObjectPic - ldr r5, =0x0000181a - add r5, r8 - strh r0, [r5] - mov r0, sp - movs r1, 0x26 - movs r2, 0x68 - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - strb r0, [r7] - cmp r0, 0x40 - bne _081CEDBC - movs r0, 0x64 - bl FreeObjectTilesByTag - movs r0, 0x64 - bl FreeObjectPaletteByTag - movs r0, 0xFF - strb r0, [r7] - b _081CEE26 - .pool -_081CEDBC: - strb r0, [r7] - ldr r2, =gUnknown_02020630 - ldrb r1, [r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, =sub_81CED10 - str r1, [r0] - ldr r1, =0x0000181c - add r1, r8 - ldrh r0, [r5] - lsls r0, 5 - ldr r2, =0x06010000 - adds r0, r2 - str r0, [r1] - ldrh r0, [r4] - lsls r0, 4 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r0, [r4] - b _081CEE26 - .pool -_081CEDFC: - adds r0, r6, 0 - bl sub_81CDCB4 - ldr r1, =0x0000181c - add r1, r8 - ldr r2, [r1] - ldr r1, =0x040000d4 - str r0, [r1] - str r2, [r1, 0x4] - ldr r0, =0x80000400 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r0, r6, 0 - bl sub_81CDCD4 - ldr r1, =0x00001818 - add r1, r8 - ldrh r1, [r1] - movs r2, 0x20 - bl LoadPalette -_081CEE26: - add sp, 0x28 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CED30 - - thumb_func_start sub_81CEE44 -sub_81CEE44: @ 81CEE44 - push {r4,lr} - bl sub_81CDC70 - adds r4, r0, 0 - bl LoadOamFromSprites - bl ProcessObjectCopyRequests - bl TransferPlttBuffer - adds r0, r4, 0 - bl sub_81D2108 - bl sub_80BA0A8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CEE44 - - thumb_func_start sub_81CEE68 -sub_81CEE68: @ 81CEE68 - push {lr} - bl sub_81C760C - pop {r0} - bx r0 - thumb_func_end sub_81CEE68 - - thumb_func_start sub_81CEE74 -sub_81CEE74: @ 81CEE74 - push {lr} - lsls r0, 24 - cmp r0, 0 - beq _081CEE84 - movs r0, 0x2 - bl ShowBg - b _081CEE8A -_081CEE84: - movs r0, 0x2 - bl HideBg -_081CEE8A: - pop {r0} - bx r0 - thumb_func_end sub_81CEE74 - - thumb_func_start sub_81CEE90 -sub_81CEE90: @ 81CEE90 - push {r4,lr} - bl sub_81CDC70 - adds r4, r0, 0 - bl sub_81CDC84 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_030012BC - strb r0, [r1] - adds r1, r4, 0 - adds r1, 0x50 - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 2 - adds r2, 0x14 - adds r2, r4, r2 - adds r0, r4, 0 - bl sub_81D1F84 - adds r0, r4, 0 - bl sub_81D2074 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CEE90 - - thumb_func_start sub_81CEEC8 -sub_81CEEC8: @ 81CEEC8 - push {r4,r5,lr} - bl sub_81CDC70 - adds r5, r0, 0 - bl sub_81CDD5C - cmp r0, 0 - bne _081CEEF0 - bl sub_81CDC60 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl sub_81CDC50 - lsls r0, 16 - lsrs r0, 16 - subs r0, 0x1 - cmp r4, r0 - beq _081CEF0C -_081CEEF0: - bl sub_81CDC84 - lsls r0, 24 - asrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, 0x14 - adds r1, r5, r1 - adds r2, r5, 0 - adds r2, 0x50 - adds r0, r5, 0 - bl sub_81D1F84 -_081CEF0C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81CEEC8 - - thumb_func_start sub_81CEF14 -sub_81CEF14: @ 81CEF14 - push {r4,lr} - movs r0, 0xC - bl sub_81C763C - adds r4, r0, 0 - bl sub_81CDD5C - cmp r0, 0x1 - beq _081CEF2A - movs r0, 0 - b _081CEF30 -_081CEF2A: - ldr r1, =0x00001828 - adds r0, r4, r1 - ldrb r0, [r0] -_081CEF30: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CEF14 - - thumb_func_start sub_81CEF3C -sub_81CEF3C: @ 81CEF3C - push {r4,lr} - movs r0, 0x7 - movs r1, 0x24 - bl sub_81C761C - adds r4, r0, 0 - cmp r4, 0 - beq _081CEF90 - ldr r1, =0x000006ac - movs r0, 0x12 - bl sub_81C761C - str r0, [r4, 0x20] - cmp r0, 0 - beq _081CEF90 - ldr r0, =sub_81CF010 - str r0, [r4] - ldr r0, =sub_81CF11C - movs r1, 0x1 - bl sub_81C7078 - str r0, [r4, 0x4] - movs r0, 0 - str r0, [r4, 0x18] - bl sub_81C76AC - ldr r1, =gUnknown_086233A0 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [r4, 0x14] - movs r0, 0x1 - b _081CEF92 - .pool -_081CEF90: - movs r0, 0 -_081CEF92: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CEF3C - - thumb_func_start sub_81CEF98 -sub_81CEF98: @ 81CEF98 - push {r4,lr} - movs r0, 0x7 - movs r1, 0x24 - bl sub_81C761C - adds r4, r0, 0 - cmp r4, 0 - beq _081CEFD4 - movs r0, 0x12 - bl sub_81C763C - str r0, [r4, 0x20] - ldr r0, =sub_81CF030 - str r0, [r4] - movs r0, 0x1 - str r0, [r4, 0x18] - bl sub_81C76AC - ldr r1, =gUnknown_086233A0 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [r4, 0x14] - movs r0, 0x1 - b _081CEFD6 - .pool -_081CEFD4: - movs r0, 0 -_081CEFD6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CEF98 - - thumb_func_start sub_81CEFDC -sub_81CEFDC: @ 81CEFDC - push {lr} - movs r0, 0x7 - bl sub_81C763C - ldr r1, [r0] - bl _call_via_r1 - pop {r1} - bx r1 - thumb_func_end sub_81CEFDC - - thumb_func_start sub_81CEFF0 -sub_81CEFF0: @ 81CEFF0 - push {lr} - movs r0, 0x7 - bl sub_81C763C - ldr r0, [r0, 0x1C] - cmp r0, 0 - bne _081CF004 - movs r0, 0x12 - bl sub_81C7650 -_081CF004: - movs r0, 0x7 - bl sub_81C7650 - pop {r0} - bx r0 - thumb_func_end sub_81CEFF0 - - thumb_func_start sub_81CF010 -sub_81CF010: @ 81CF010 - push {r4,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x4] - bl sub_81C70D8 - cmp r0, 0 - bne _081CF022 - ldr r0, =sub_81CF030 - str r0, [r4] -_081CF022: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CF010 - - thumb_func_start sub_81CF030 -sub_81CF030: @ 81CF030 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r2, =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081CF048 - movs r0, 0x1 - b _081CF0A6 - .pool -_081CF048: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081CF054 - movs r0, 0x2 - b _081CF0A6 -_081CF054: - ldrh r1, [r2, 0x2E] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _081CF062 - movs r0, 0x3 - b _081CF0A6 -_081CF062: - movs r0, 0x10 - ands r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _081CF072 - movs r0, 0x4 - b _081CF0A6 -_081CF072: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081CF088 - str r2, [r4, 0x1C] - ldr r0, =sub_81CF0B0 - str r0, [r4] - movs r0, 0x5 - b _081CF0A6 - .pool -_081CF088: - movs r5, 0x1 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _081CF096 - movs r0, 0 - b _081CF0A6 -_081CF096: - bl sub_81C875C - ldr r1, [r4, 0x20] - strh r0, [r1, 0x2] - str r5, [r4, 0x1C] - ldr r0, =sub_81CF0B8 - str r0, [r4] - movs r0, 0x6 -_081CF0A6: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CF030 - - thumb_func_start sub_81CF0B0 -sub_81CF0B0: @ 81CF0B0 - ldr r0, =0x000186a3 - bx lr - .pool - thumb_func_end sub_81CF0B0 - - thumb_func_start sub_81CF0B8 -sub_81CF0B8: @ 81CF0B8 - ldr r0, =0x000186a9 - bx lr - .pool - thumb_func_end sub_81CF0B8 - - thumb_func_start sub_81CF0C0 -sub_81CF0C0: @ 81CF0C0 - push {lr} - movs r0, 0x7 - bl sub_81C763C - ldr r0, [r0, 0x18] - pop {r1} - bx r1 - thumb_func_end sub_81CF0C0 - - thumb_func_start sub_81CF0D0 -sub_81CF0D0: @ 81CF0D0 - push {lr} - movs r0, 0x7 - bl sub_81C763C - ldr r0, [r0, 0x20] - adds r0, 0x4 - pop {r1} - bx r1 - thumb_func_end sub_81CF0D0 - - thumb_func_start sub_81CF0E0 -sub_81CF0E0: @ 81CF0E0 - push {lr} - movs r0, 0x7 - bl sub_81C763C - ldr r0, [r0, 0x20] - ldrh r0, [r0] - pop {r1} - bx r1 - thumb_func_end sub_81CF0E0 - - thumb_func_start sub_81CF0F0 -sub_81CF0F0: @ 81CF0F0 - push {r4,lr} - movs r0, 0x7 - bl sub_81C763C - adds r4, r0, 0 - bl sub_81C875C - ldr r1, [r4, 0x20] - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1, 0x6] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CF0F0 - - thumb_func_start sub_81CF10C -sub_81CF10C: @ 81CF10C - push {lr} - movs r0, 0x7 - bl sub_81C763C - ldr r0, [r0, 0x20] - ldrh r0, [r0, 0x2] - pop {r1} - bx r1 - thumb_func_end sub_81CF10C - - thumb_func_start sub_81CF11C -sub_81CF11C: @ 81CF11C - push {lr} - ldr r2, =gUnknown_086233B4 - lsls r1, r0, 2 - adds r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CF11C - - thumb_func_start sub_81CF134 -sub_81CF134: @ 81CF134 - push {r4-r6,lr} - sub sp, 0x4 - movs r0, 0x7 - bl sub_81C763C - adds r6, r0, 0 - ldr r0, [r6, 0x20] - movs r1, 0 - strh r1, [r0] - ldr r0, [r6, 0x20] - strh r1, [r0, 0x2] - ldr r1, =0xffffff00 - ldr r0, [sp] - ands r0, r1 - movs r1, 0xE - orrs r0, r1 - str r0, [sp] - movs r5, 0 -_081CF158: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x5 - bl GetMonData - cmp r0, 0 - beq _081CF1AA - adds r0, r4, 0 - movs r1, 0x6 - bl GetMonData - cmp r0, 0 - bne _081CF1A4 - lsls r1, r5, 24 - lsrs r1, 16 - ldr r2, =0xffff00ff - ldr r0, [sp] - ands r0, r2 - orrs r0, r1 - str r0, [sp] - ldr r1, [r6, 0x14] - adds r0, r4, 0 - bl GetMonData - lsls r0, 16 - ldr r2, =0x0000ffff - ldr r1, [sp] - ands r1, r2 - orrs r1, r0 - str r1, [sp] - adds r0, r6, 0 - mov r1, sp - bl sub_81CF2C4 -_081CF1A4: - adds r5, 0x1 - cmp r5, 0x5 - ble _081CF158 -_081CF1AA: - movs r0, 0x1 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CF134 - - thumb_func_start sub_81CF1C4 -sub_81CF1C4: @ 81CF1C4 - push {lr} - movs r0, 0x7 - bl sub_81C763C - movs r1, 0 - str r1, [r0, 0x10] - str r1, [r0, 0xC] - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_81CF1C4 - - thumb_func_start sub_81CF1D8 -sub_81CF1D8: @ 81CF1D8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - movs r0, 0x7 - bl sub_81C763C - adds r6, r0, 0 - ldr r5, [r6, 0xC] - ldr r4, [r6, 0x10] - movs r0, 0 - mov r8, r0 - cmp r5, 0xD - bgt _081CF268 -_081CF1F4: - cmp r4, 0x1D - bgt _081CF260 - lsls r0, r5, 24 - lsrs r7, r0, 24 -_081CF1FC: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80D2270 - cmp r0, 0 - beq _081CF23A - ldr r1, =0xffffff00 - ldr r0, [sp] - ands r0, r1 - orrs r0, r7 - lsls r1, r4, 24 - lsrs r1, 24 - lsls r3, r1, 8 - ldr r2, =0xffff00ff - ands r0, r2 - orrs r0, r3 - str r0, [sp] - ldr r2, [r6, 0x14] - adds r0, r7, 0 - bl get_pokemon_data_from_any_box - lsls r0, 16 - ldr r2, =0x0000ffff - ldr r1, [sp] - ands r1, r2 - orrs r1, r0 - str r1, [sp] - adds r0, r6, 0 - mov r1, sp - bl sub_81CF2C4 -_081CF23A: - movs r0, 0x1 - add r8, r0 - adds r4, 0x1 - mov r0, r8 - cmp r0, 0xE - ble _081CF25C - str r5, [r6, 0xC] - str r4, [r6, 0x10] - movs r0, 0x3 - b _081CF26A - .pool -_081CF25C: - cmp r4, 0x1D - ble _081CF1FC -_081CF260: - movs r4, 0 - adds r5, 0x1 - cmp r5, 0xD - ble _081CF1F4 -_081CF268: - movs r0, 0x1 -_081CF26A: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81CF1D8 - - thumb_func_start sub_81CF278 -sub_81CF278: @ 81CF278 - push {r4-r6,lr} - movs r0, 0x7 - bl sub_81C763C - adds r5, r0, 0 - ldr r0, [r5, 0x20] - ldrh r6, [r0] - ldrh r4, [r0, 0x6] - movs r1, 0x1 - strh r1, [r0, 0x6] - movs r3, 0x1 - cmp r3, r6 - bge _081CF2B8 -_081CF292: - ldr r2, [r5, 0x20] - lsls r0, r3, 2 - adds r1, r2, r0 - ldrh r0, [r1, 0x6] - cmp r0, r4 - bne _081CF2AC - subs r0, r3, 0x1 - lsls r0, 2 - adds r0, r2, r0 - ldrh r0, [r0, 0x6] - strh r0, [r1, 0x6] - adds r0, r3, 0x1 - b _081CF2B2 -_081CF2AC: - adds r4, r0, 0 - adds r0, r3, 0x1 - strh r0, [r1, 0x6] -_081CF2B2: - adds r3, r0, 0 - cmp r3, r6 - blt _081CF292 -_081CF2B8: - movs r0, 0x1 - str r0, [r5, 0x18] - movs r0, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81CF278 - - thumb_func_start sub_81CF2C4 -sub_81CF2C4: @ 81CF2C4 - push {r4-r7,lr} - adds r5, r0, 0 - adds r7, r1, 0 - movs r1, 0 - ldr r0, [r5, 0x20] - ldrh r2, [r0] - lsrs r3, r2, 1 - cmp r2, r3 - beq _081CF2F4 - adds r6, r0, 0 - ldrh r4, [r7, 0x2] -_081CF2DA: - lsls r0, r3, 2 - adds r0, r6, r0 - ldrh r0, [r0, 0x6] - cmp r4, r0 - bls _081CF2E8 - adds r2, r3, 0 - b _081CF2EA -_081CF2E8: - adds r1, r3, 0x1 -_081CF2EA: - subs r0, r2, r1 - lsrs r0, 1 - adds r3, r1, r0 - cmp r2, r3 - bne _081CF2DA -_081CF2F4: - ldr r0, [r5, 0x20] - ldrh r2, [r0] - lsls r6, r3, 2 - cmp r2, r3 - bls _081CF318 - lsls r0, r2, 2 - subs r4, r0, 0x4 -_081CF302: - ldr r0, [r5, 0x20] - lsls r1, r2, 2 - adds r0, 0x4 - adds r1, r0, r1 - adds r0, r4 - ldr r0, [r0] - str r0, [r1] - subs r4, 0x4 - subs r2, 0x1 - cmp r2, r3 - bhi _081CF302 -_081CF318: - ldr r0, [r5, 0x20] - adds r0, 0x4 - adds r0, r6 - ldr r1, [r7] - str r1, [r0] - ldr r1, [r5, 0x20] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81CF2C4 - - thumb_func_start sub_81CF330 -sub_81CF330: @ 81CF330 - push {r4,lr} - movs r1, 0x81 - lsls r1, 4 - movs r0, 0x8 - bl sub_81C761C - adds r4, r0, 0 - cmp r4, 0 - beq _081CF360 - ldr r0, =sub_81CF418 - movs r1, 0x1 - bl sub_81C7078 - str r0, [r4, 0x4] - ldr r0, =sub_81CF3E4 - str r0, [r4] - movs r0, 0 - str r0, [r4, 0xC] - movs r0, 0x1 - b _081CF362 - .pool -_081CF360: - movs r0, 0 -_081CF362: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CF330 - - thumb_func_start sub_81CF368 -sub_81CF368: @ 81CF368 - push {r4,lr} - movs r1, 0x81 - lsls r1, 4 - movs r0, 0x8 - bl sub_81C761C - adds r4, r0, 0 - cmp r4, 0 - beq _081CF398 - ldr r0, =sub_81CF418 - movs r1, 0x1 - bl sub_81C7078 - str r0, [r4, 0x4] - ldr r0, =sub_81CF3E4 - str r0, [r4] - movs r0, 0x1 - str r0, [r4, 0xC] - b _081CF39A - .pool -_081CF398: - movs r0, 0 -_081CF39A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CF368 - - thumb_func_start sub_81CF3A0 -sub_81CF3A0: @ 81CF3A0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x8 - bl sub_81C763C - adds r5, r0, 0 - ldr r0, =gUnknown_08623598 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - movs r1, 0x1 - bl sub_81C7078 - str r0, [r5, 0x4] - ldr r0, =sub_81CF3E4 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CF3A0 - - thumb_func_start sub_81CF3D0 -sub_81CF3D0: @ 81CF3D0 - push {lr} - movs r0, 0x8 - bl sub_81C763C - ldr r0, [r0] - bl _call_via_r0 - pop {r1} - bx r1 - thumb_func_end sub_81CF3D0 - - thumb_func_start sub_81CF3E4 -sub_81CF3E4: @ 81CF3E4 - push {lr} - movs r0, 0x8 - bl sub_81C763C - ldr r0, [r0, 0x4] - bl sub_81C70D8 - pop {r1} - bx r1 - thumb_func_end sub_81CF3E4 - - thumb_func_start sub_81CF3F8 -sub_81CF3F8: @ 81CF3F8 - push {r4,lr} - movs r0, 0x8 - bl sub_81C763C - adds r4, r0, 0 - bl sub_81C8234 - ldrb r0, [r4, 0x8] - bl RemoveWindow - movs r0, 0x8 - bl sub_81C7650 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CF3F8 - - thumb_func_start sub_81CF418 -sub_81CF418: @ 81CF418 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r0, 0x8 - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x5 - bls _081CF42C - b _081CF56E -_081CF42C: - lsls r0, r4, 2 - ldr r1, =_081CF43C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CF43C: - .4byte _081CF454 - .4byte _081CF4AC - .4byte _081CF4C0 - .4byte _081CF4E0 - .4byte _081CF4F6 - .4byte _081CF55A -_081CF454: - ldr r0, =gUnknown_08623590 - movs r1, 0x2 - bl sub_81C7B54 - ldr r1, =gUnknown_086233E4 - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - adds r1, r5, 0 - adds r1, 0x10 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, =gUnknown_086234AC - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - ldr r0, =gUnknown_086233C4 - movs r1, 0x10 - movs r2, 0x20 - bl sub_81C7944 - movs r0, 0x1 - bl CopyBgTilemapBufferToVram -_081CF498: - movs r0, 0 - b _081CF570 - .pool -_081CF4AC: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081CF56A - bl sub_81CF0C0 - cmp r0, 0 - beq _081CF56A - b _081CF498 -_081CF4C0: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081CF56A - ldr r0, =gUnknown_08623570 - movs r1, 0x20 - movs r2, 0x20 - bl sub_81C7944 - bl sub_81CF88C - b _081CF498 - .pool -_081CF4E0: - bl sub_81C8224 - cmp r0, 0 - bne _081CF56A - adds r0, r5, 0 - bl sub_81CF7C8 - movs r0, 0x3 - bl sub_81C7BA4 - b _081CF498 -_081CF4F6: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081CF56A - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl HideBg - ldr r0, [r5, 0xC] - cmp r0, 0 - bne _081CF552 - bl sub_81C76AC - adds r4, r0, 0 - adds r4, 0x8 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_81C7DFC - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - bl sub_81C7FA0 - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - bl sub_81C7FA0 -_081CF552: - movs r0, 0x1 - bl sub_81C7AC0 - b _081CF498 -_081CF55A: - bl sub_81C7B34 - cmp r0, 0 - bne _081CF56A - bl sub_81C8010 - cmp r0, 0 - beq _081CF56E -_081CF56A: - movs r0, 0x2 - b _081CF570 -_081CF56E: - movs r0, 0x4 -_081CF570: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CF418 - - thumb_func_start sub_81CF578 -sub_81CF578: @ 81CF578 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x8 - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CF5C6 - cmp r4, 0x1 - bgt _081CF592 - cmp r4, 0 - beq _081CF59C - b _081CF5E6 -_081CF592: - cmp r4, 0x2 - beq _081CF5CE - cmp r4, 0x3 - beq _081CF5D8 - b _081CF5E6 -_081CF59C: - bl sub_81C8658 - cmp r0, 0x1 - beq _081CF5B4 - cmp r0, 0x1 - bgt _081CF5AE - cmp r0, 0 - beq _081CF5E6 - b _081CF5D4 -_081CF5AE: - cmp r0, 0x2 - beq _081CF5BE - b _081CF5D4 -_081CF5B4: - movs r0, 0x5 - bl audio_play - movs r0, 0x7 - b _081CF5E8 -_081CF5BE: - movs r0, 0x5 - bl audio_play - b _081CF5D4 -_081CF5C6: - bl sub_81C8630 - cmp r0, 0 - bne _081CF5E2 -_081CF5CE: - adds r0, r5, 0 - bl sub_81CF7F4 -_081CF5D4: - movs r0, 0 - b _081CF5E8 -_081CF5D8: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081CF5E6 -_081CF5E2: - movs r0, 0x2 - b _081CF5E8 -_081CF5E6: - movs r0, 0x4 -_081CF5E8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CF578 - - thumb_func_start sub_81CF5F0 -sub_81CF5F0: @ 81CF5F0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x8 - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CF63E - cmp r4, 0x1 - bgt _081CF60A - cmp r4, 0 - beq _081CF614 - b _081CF65E -_081CF60A: - cmp r4, 0x2 - beq _081CF646 - cmp r4, 0x3 - beq _081CF650 - b _081CF65E -_081CF614: - bl sub_81C868C - cmp r0, 0x1 - beq _081CF62C - cmp r0, 0x1 - bgt _081CF626 - cmp r0, 0 - beq _081CF65E - b _081CF64C -_081CF626: - cmp r0, 0x2 - beq _081CF636 - b _081CF64C -_081CF62C: - movs r0, 0x5 - bl audio_play - movs r0, 0x7 - b _081CF660 -_081CF636: - movs r0, 0x5 - bl audio_play - b _081CF64C -_081CF63E: - bl sub_81C8630 - cmp r0, 0 - bne _081CF65A -_081CF646: - adds r0, r5, 0 - bl sub_81CF7F4 -_081CF64C: - movs r0, 0 - b _081CF660 -_081CF650: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081CF65E -_081CF65A: - movs r0, 0x2 - b _081CF660 -_081CF65E: - movs r0, 0x4 -_081CF660: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CF5F0 - - thumb_func_start sub_81CF668 -sub_81CF668: @ 81CF668 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x8 - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CF6B6 - cmp r4, 0x1 - bgt _081CF682 - cmp r4, 0 - beq _081CF68C - b _081CF6D6 -_081CF682: - cmp r4, 0x2 - beq _081CF6BE - cmp r4, 0x3 - beq _081CF6C8 - b _081CF6D6 -_081CF68C: - bl sub_81C86CC - cmp r0, 0x1 - beq _081CF6A4 - cmp r0, 0x1 - bgt _081CF69E - cmp r0, 0 - beq _081CF6D6 - b _081CF6C4 -_081CF69E: - cmp r0, 0x2 - beq _081CF6AE - b _081CF6C4 -_081CF6A4: - movs r0, 0x5 - bl audio_play - movs r0, 0x7 - b _081CF6D8 -_081CF6AE: - movs r0, 0x5 - bl audio_play - b _081CF6C4 -_081CF6B6: - bl sub_81C8630 - cmp r0, 0 - bne _081CF6D2 -_081CF6BE: - adds r0, r5, 0 - bl sub_81CF7F4 -_081CF6C4: - movs r0, 0 - b _081CF6D8 -_081CF6C8: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081CF6D6 -_081CF6D2: - movs r0, 0x2 - b _081CF6D8 -_081CF6D6: - movs r0, 0x4 -_081CF6D8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CF668 - - thumb_func_start sub_81CF6E0 -sub_81CF6E0: @ 81CF6E0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x8 - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CF72E - cmp r4, 0x1 - bgt _081CF6FA - cmp r4, 0 - beq _081CF704 - b _081CF74E -_081CF6FA: - cmp r4, 0x2 - beq _081CF736 - cmp r4, 0x3 - beq _081CF740 - b _081CF74E -_081CF704: - bl sub_81C870C - cmp r0, 0x1 - beq _081CF71C - cmp r0, 0x1 - bgt _081CF716 - cmp r0, 0 - beq _081CF74E - b _081CF73C -_081CF716: - cmp r0, 0x2 - beq _081CF726 - b _081CF73C -_081CF71C: - movs r0, 0x5 - bl audio_play - movs r0, 0x7 - b _081CF750 -_081CF726: - movs r0, 0x5 - bl audio_play - b _081CF73C -_081CF72E: - bl sub_81C8630 - cmp r0, 0 - bne _081CF74A -_081CF736: - adds r0, r5, 0 - bl sub_81CF7F4 -_081CF73C: - movs r0, 0 - b _081CF750 -_081CF740: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081CF74E -_081CF74A: - movs r0, 0x2 - b _081CF750 -_081CF74E: - movs r0, 0x4 -_081CF750: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CF6E0 - - thumb_func_start sub_81CF758 -sub_81CF758: @ 81CF758 - push {lr} - cmp r0, 0 - beq _081CF764 - cmp r0, 0x1 - beq _081CF778 - b _081CF790 -_081CF764: - movs r0, 0x5 - bl audio_play - movs r0, 0 - bl sub_81C7AC0 - bl sub_81C78A0 - movs r0, 0 - b _081CF792 -_081CF778: - bl sub_81C7B34 - cmp r0, 0 - bne _081CF788 - bl sub_81C78C0 - cmp r0, 0 - beq _081CF78C -_081CF788: - movs r0, 0x2 - b _081CF792 -_081CF78C: - bl sub_81C7FDC -_081CF790: - movs r0, 0x4 -_081CF792: - pop {r1} - bx r1 - thumb_func_end sub_81CF758 - - thumb_func_start sub_81CF798 -sub_81CF798: @ 81CF798 - push {lr} - cmp r0, 0 - beq _081CF7A4 - cmp r0, 0x1 - beq _081CF7B4 - b _081CF7C0 -_081CF7A4: - movs r0, 0x5 - bl audio_play - movs r0, 0 - bl sub_81C7AC0 - movs r0, 0 - b _081CF7C2 -_081CF7B4: - bl sub_81C7B34 - cmp r0, 0 - beq _081CF7C0 - movs r0, 0x2 - b _081CF7C2 -_081CF7C0: - movs r0, 0x4 -_081CF7C2: - pop {r1} - bx r1 - thumb_func_end sub_81CF798 - - thumb_func_start sub_81CF7C8 -sub_81CF7C8: @ 81CF7C8 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_086235B4 - bl AddWindow - strh r0, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - ldrb r0, [r4, 0x8] - movs r1, 0x1 - bl CopyWindowToVram - adds r0, r4, 0 - bl sub_81CF7F4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CF7C8 - - thumb_func_start sub_81CF7F4 -sub_81CF7F4: @ 81CF7F4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - mov r8, r0 - bl sub_81CF0F0 - adds r7, r0, 0 - bl sub_81AFBF0 - ldr r4, =gStringVar1 - movs r0, 0 - adds r1, r4, 0 - bl sub_81AFC0C - movs r0, 0xFF - strb r0, [r4] - ldr r5, =gStringVar2 - ldr r1, =gUnknown_085EC029 - adds r0, r5, 0 - bl sub_81AFC28 - mov r1, r8 - ldrb r0, [r1, 0x8] - movs r1, 0x1 - mov r10, r1 - str r1, [sp] - movs r1, 0xFF - mov r9, r1 - str r1, [sp, 0x4] - movs r6, 0 - str r6, [sp, 0x8] - movs r1, 0x1 - adds r2, r5, 0 - movs r3, 0x4 - bl Print - adds r0, r4, 0 - adds r1, r7, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - mov r1, r8 - ldrb r0, [r1, 0x8] - mov r1, r10 - str r1, [sp] - mov r1, r9 - str r1, [sp, 0x4] - str r6, [sp, 0x8] - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0x22 - bl Print - mov r1, r8 - ldrb r0, [r1, 0x8] - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CF7F4 - - thumb_func_start sub_81CF88C -sub_81CF88C: @ 81CF88C - push {r4,lr} - sub sp, 0x18 - bl sub_81CF0D0 - str r0, [sp] - bl sub_81CF0E0 - mov r1, sp - movs r4, 0 - strh r0, [r1, 0x4] - movs r0, 0x4 - strb r0, [r1, 0x8] - bl sub_81CF10C - mov r1, sp - strh r0, [r1, 0x6] - movs r0, 0xD - strb r0, [r1, 0x9] - movs r0, 0x11 - strb r0, [r1, 0xA] - mov r0, sp - movs r2, 0x1 - strb r2, [r0, 0xB] - movs r0, 0x8 - strb r0, [r1, 0xC] - movs r0, 0x2 - strb r0, [r1, 0xD] - mov r0, sp - strb r2, [r0, 0xE] - ldr r0, =sub_81CF8E4 - str r0, [sp, 0x10] - str r4, [sp, 0x14] - ldr r0, =gUnknown_08623594 - movs r2, 0 - bl sub_81C81D4 - add sp, 0x18 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CF88C - - thumb_func_start sub_81CF8E4 -sub_81CF8E4: @ 81CF8E4 - push {r4-r7,lr} - adds r2, r0, 0 - adds r6, r1, 0 - ldrb r0, [r2] - cmp r0, 0xE - bne _081CF924 - ldrb r1, [r2, 0x1] - movs r0, 0x64 - adds r4, r1, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - bl pokemon_get_gender - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - bl level_by_exp - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, =gStringVar3 - adds r0, r4, 0 - movs r1, 0x2 - bl GetMonData - b _081CF94A - .pool -_081CF924: - ldrb r0, [r2] - ldrb r1, [r2, 0x1] - bl get_pokemon_by_box_and_pos - adds r4, r0, 0 - bl pokemon_roll_gender - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - bl sub_80690C0 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, =gStringVar3 - adds r0, r4, 0 - movs r1, 0x2 - bl pokemon_getattr_encrypted -_081CF94A: - ldr r4, =gStringVar3 - adds r0, r4, 0 - bl StringGetEnd10 - adds r0, r6, 0 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0x3C - bl sub_81DB494 - adds r6, r0, 0 - cmp r5, 0 - beq _081CF974 - cmp r5, 0xFE - beq _081CF97C - ldr r1, =gUnknown_086235D4 - b _081CF97E - .pool -_081CF974: - ldr r1, =gUnknown_086235BC - b _081CF97E - .pool -_081CF97C: - ldr r1, =gUnknown_086235C8 -_081CF97E: - ldr r4, =gStringVar1 - adds r0, r4, 0 - bl StringCopy - movs r1, 0xBA - strb r1, [r0] - adds r0, 0x1 - movs r1, 0xF9 - strb r1, [r0] - adds r0, 0x1 - movs r1, 0x5 - strb r1, [r0] - adds r0, 0x1 - adds r1, r7, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r0, r6, 0 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0x28 - bl sub_81DB494 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CF8E4 - - thumb_func_start sub_81CF9BC -sub_81CF9BC: @ 81CF9BC - push {r4,lr} - movs r0, 0x9 - movs r1, 0x20 - bl sub_81C761C - adds r4, r0, 0 - cmp r4, 0 - beq _081CF9FC - ldr r1, =0x000006ac - movs r0, 0x12 - bl sub_81C761C - str r0, [r4, 0x1C] - cmp r0, 0 - beq _081CF9FC - ldr r0, =sub_81CFA68 - str r0, [r4] - ldr r0, =sub_81CFB74 - movs r1, 0x1 - bl sub_81C7078 - str r0, [r4, 0x4] - movs r0, 0 - str r0, [r4, 0x14] - movs r0, 0x1 - b _081CF9FE - .pool -_081CF9FC: - movs r0, 0 -_081CF9FE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CF9BC - - thumb_func_start sub_81CFA04 -sub_81CFA04: @ 81CFA04 - push {r4,lr} - movs r0, 0x9 - movs r1, 0x20 - bl sub_81C761C - adds r4, r0, 0 - cmp r4, 0 - beq _081CFA2C - movs r0, 0x12 - bl sub_81C763C - str r0, [r4, 0x1C] - ldr r0, =sub_81CFA88 - str r0, [r4] - movs r0, 0x1 - str r0, [r4, 0x14] - b _081CFA2E - .pool -_081CFA2C: - movs r0, 0 -_081CFA2E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CFA04 - - thumb_func_start sub_81CFA34 -sub_81CFA34: @ 81CFA34 - push {lr} - movs r0, 0x9 - bl sub_81C763C - ldr r1, [r0] - bl _call_via_r1 - pop {r1} - bx r1 - thumb_func_end sub_81CFA34 - - thumb_func_start sub_81CFA48 -sub_81CFA48: @ 81CFA48 - push {lr} - movs r0, 0x9 - bl sub_81C763C - ldr r0, [r0, 0x18] - cmp r0, 0 - bne _081CFA5C - movs r0, 0x12 - bl sub_81C7650 -_081CFA5C: - movs r0, 0x9 - bl sub_81C7650 - pop {r0} - bx r0 - thumb_func_end sub_81CFA48 - - thumb_func_start sub_81CFA68 -sub_81CFA68: @ 81CFA68 - push {r4,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x4] - bl sub_81C70D8 - cmp r0, 0 - bne _081CFA7A - ldr r0, =sub_81CFA88 - str r0, [r4] -_081CFA7A: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CFA68 - - thumb_func_start sub_81CFA88 -sub_81CFA88: @ 81CFA88 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r2, =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081CFAA0 - movs r0, 0x1 - b _081CFAFE - .pool -_081CFAA0: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081CFAAC - movs r0, 0x2 - b _081CFAFE -_081CFAAC: - ldrh r1, [r2, 0x2E] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _081CFABA - movs r0, 0x3 - b _081CFAFE -_081CFABA: - movs r0, 0x10 - ands r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _081CFACA - movs r0, 0x4 - b _081CFAFE -_081CFACA: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081CFAE0 - str r2, [r4, 0x18] - ldr r0, =sub_81CFB08 - str r0, [r4] - movs r0, 0x5 - b _081CFAFE - .pool -_081CFAE0: - movs r5, 0x1 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _081CFAEE - movs r0, 0 - b _081CFAFE -_081CFAEE: - bl sub_81C875C - ldr r1, [r4, 0x1C] - strh r0, [r1, 0x2] - str r5, [r4, 0x18] - ldr r0, =sub_81CFB10 - str r0, [r4] - movs r0, 0x6 -_081CFAFE: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CFA88 - - thumb_func_start sub_81CFB08 -sub_81CFB08: @ 81CFB08 - ldr r0, =0x000186a5 - bx lr - .pool - thumb_func_end sub_81CFB08 - - thumb_func_start sub_81CFB10 -sub_81CFB10: @ 81CFB10 - ldr r0, =0x000186ad - bx lr - .pool - thumb_func_end sub_81CFB10 - - thumb_func_start sub_81CFB18 -sub_81CFB18: @ 81CFB18 - push {lr} - movs r0, 0x9 - bl sub_81C763C - ldr r0, [r0, 0x14] - pop {r1} - bx r1 - thumb_func_end sub_81CFB18 - - thumb_func_start sub_81CFB28 -sub_81CFB28: @ 81CFB28 - push {lr} - movs r0, 0x9 - bl sub_81C763C - ldr r0, [r0, 0x1C] - adds r0, 0x4 - pop {r1} - bx r1 - thumb_func_end sub_81CFB28 - - thumb_func_start sub_81CFB38 -sub_81CFB38: @ 81CFB38 - push {lr} - movs r0, 0x9 - bl sub_81C763C - ldr r0, [r0, 0x1C] - ldrh r0, [r0] - pop {r1} - bx r1 - thumb_func_end sub_81CFB38 - - thumb_func_start sub_81CFB48 -sub_81CFB48: @ 81CFB48 - push {r4,lr} - movs r0, 0x9 - bl sub_81C763C - adds r4, r0, 0 - bl sub_81C875C - ldr r1, [r4, 0x1C] - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1, 0x6] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CFB48 - - thumb_func_start sub_81CFB64 -sub_81CFB64: @ 81CFB64 - push {lr} - movs r0, 0x9 - bl sub_81C763C - ldr r0, [r0, 0x1C] - ldrh r0, [r0, 0x2] - pop {r1} - bx r1 - thumb_func_end sub_81CFB64 - - thumb_func_start sub_81CFB74 -sub_81CFB74: @ 81CFB74 - push {lr} - ldr r2, =gUnknown_086235D8 - lsls r1, r0, 2 - adds r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CFB74 - - thumb_func_start sub_81CFB8C -sub_81CFB8C: @ 81CFB8C - push {r4-r6,lr} - sub sp, 0x4 - movs r0, 0x9 - bl sub_81C763C - adds r6, r0, 0 - ldr r0, [r6, 0x1C] - movs r1, 0 - strh r1, [r0] - ldr r0, [r6, 0x1C] - strh r1, [r0, 0x2] - ldr r1, =0xffffff00 - ldr r0, [sp] - ands r0, r1 - movs r1, 0xE - orrs r0, r1 - str r0, [sp] - movs r5, 0 -_081CFBB0: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x5 - bl GetMonData - cmp r0, 0 - beq _081CFC10 - adds r0, r4, 0 - movs r1, 0x6 - bl GetMonData - cmp r0, 0 - bne _081CFC0A - adds r0, r4, 0 - movs r1, 0x4 - bl GetMonData - cmp r0, 0 - bne _081CFC0A - adds r0, r4, 0 - movs r1, 0x52 - bl GetMonData - adds r3, r0, 0 - cmp r3, 0 - beq _081CFC0A - lsls r1, r5, 24 - lsrs r1, 16 - ldr r2, =0xffff00ff - ldr r0, [sp] - ands r0, r2 - orrs r0, r1 - lsls r2, r3, 16 - ldr r1, =0x0000ffff - ands r0, r1 - orrs r0, r2 - str r0, [sp] - adds r0, r6, 0 - mov r1, sp - bl sub_81CFCEC -_081CFC0A: - adds r5, 0x1 - cmp r5, 0x5 - ble _081CFBB0 -_081CFC10: - movs r0, 0x1 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CFB8C - - thumb_func_start sub_81CFC2C -sub_81CFC2C: @ 81CFC2C - push {lr} - movs r0, 0x9 - bl sub_81C763C - movs r1, 0 - str r1, [r0, 0x10] - str r1, [r0, 0xC] - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_81CFC2C - - thumb_func_start sub_81CFC40 -sub_81CFC40: @ 81CFC40 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - movs r0, 0x9 - bl sub_81C763C - mov r8, r0 - ldr r7, [r0, 0xC] - ldr r6, [r0, 0x10] - movs r0, 0 - mov r9, r0 - cmp r7, 0xD - bgt _081CFCD4 - b _081CFCC8 -_081CFC60: - adds r0, r7, 0 - adds r1, r6, 0 - bl sub_80D2270 - cmp r0, 0 - beq _081CFCA6 - lsls r0, r7, 24 - lsrs r5, r0, 24 - lsls r0, r6, 24 - lsrs r4, r0, 24 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x52 - bl get_pokemon_data_from_any_box - adds r3, r0, 0 - cmp r3, 0 - beq _081CFCA6 - ldr r1, =0xffffff00 - ldr r0, [sp] - ands r0, r1 - orrs r0, r5 - lsls r2, r4, 8 - ldr r1, =0xffff00ff - ands r0, r1 - orrs r0, r2 - lsls r2, r3, 16 - ldr r1, =0x0000ffff - ands r0, r1 - orrs r0, r2 - str r0, [sp] - mov r0, r8 - mov r1, sp - bl sub_81CFCEC -_081CFCA6: - movs r1, 0x1 - add r9, r1 - adds r6, 0x1 - mov r0, r9 - cmp r0, 0xE - ble _081CFCC8 - mov r1, r8 - str r7, [r1, 0xC] - str r6, [r1, 0x10] - movs r0, 0x3 - b _081CFCDC - .pool -_081CFCC8: - cmp r6, 0x1D - ble _081CFC60 - movs r6, 0 - adds r7, 0x1 - cmp r7, 0xD - ble _081CFCC8 -_081CFCD4: - movs r0, 0x1 - mov r1, r8 - str r0, [r1, 0x14] - movs r0, 0x4 -_081CFCDC: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81CFC40 - - thumb_func_start sub_81CFCEC -sub_81CFCEC: @ 81CFCEC - push {r4-r7,lr} - adds r5, r0, 0 - adds r7, r1, 0 - movs r1, 0 - ldr r0, [r5, 0x1C] - ldrh r2, [r0] - lsrs r3, r2, 1 - cmp r2, r3 - beq _081CFD1C - adds r6, r0, 0 - ldrh r4, [r7, 0x2] -_081CFD02: - lsls r0, r3, 2 - adds r0, r6, r0 - ldrh r0, [r0, 0x6] - cmp r4, r0 - bls _081CFD10 - adds r2, r3, 0 - b _081CFD12 -_081CFD10: - adds r1, r3, 0x1 -_081CFD12: - subs r0, r2, r1 - lsrs r0, 1 - adds r3, r1, r0 - cmp r2, r3 - bne _081CFD02 -_081CFD1C: - ldr r0, [r5, 0x1C] - ldrh r2, [r0] - lsls r6, r3, 2 - cmp r2, r3 - bls _081CFD40 - lsls r0, r2, 2 - subs r4, r0, 0x4 -_081CFD2A: - ldr r0, [r5, 0x1C] - lsls r1, r2, 2 - adds r0, 0x4 - adds r1, r0, r1 - adds r0, r4 - ldr r0, [r0] - str r0, [r1] - subs r4, 0x4 - subs r2, 0x1 - cmp r2, r3 - bhi _081CFD2A -_081CFD40: - ldr r0, [r5, 0x1C] - adds r0, 0x4 - adds r0, r6 - ldr r1, [r7] - str r1, [r0] - ldr r1, [r5, 0x1C] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81CFCEC - - thumb_func_start sub_81CFD58 -sub_81CFD58: @ 81CFD58 - push {r4-r6,lr} - movs r5, 0 -_081CFD5C: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x5 - bl GetMonData - cmp r0, 0 - beq _081CFD8A - adds r0, r4, 0 - movs r1, 0x6 - bl GetMonData - cmp r0, 0 - bne _081CFD8A - adds r0, r4, 0 - movs r1, 0x53 - bl GetMonData - cmp r0, 0 - bne _081CFDB2 -_081CFD8A: - adds r5, 0x1 - cmp r5, 0x5 - ble _081CFD5C - movs r5, 0 -_081CFD92: - movs r4, 0 - lsls r6, r5, 24 -_081CFD96: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80D2270 - cmp r0, 0 - beq _081CFDBC - lsls r1, r4, 24 - lsrs r1, 24 - lsrs r0, r6, 24 - movs r2, 0x53 - bl get_pokemon_data_from_any_box - cmp r0, 0 - beq _081CFDBC -_081CFDB2: - movs r0, 0x1 - b _081CFDCA - .pool -_081CFDBC: - adds r4, 0x1 - cmp r4, 0x1D - ble _081CFD96 - adds r5, 0x1 - cmp r5, 0xD - ble _081CFD92 - movs r0, 0 -_081CFDCA: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81CFD58 - - thumb_func_start sub_81CFDD0 -sub_81CFDD0: @ 81CFDD0 - push {r4,lr} - movs r1, 0x81 - lsls r1, 4 - movs r0, 0xA - bl sub_81C761C - adds r4, r0, 0 - cmp r4, 0 - beq _081CFE00 - ldr r0, =sub_81CFEB8 - movs r1, 0x1 - bl sub_81C7078 - str r0, [r4, 0x4] - ldr r0, =sub_81CFE84 - str r0, [r4] - movs r0, 0 - str r0, [r4, 0xC] - movs r0, 0x1 - b _081CFE02 - .pool -_081CFE00: - movs r0, 0 -_081CFE02: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CFDD0 - - thumb_func_start sub_81CFE08 -sub_81CFE08: @ 81CFE08 - push {r4,lr} - movs r1, 0x81 - lsls r1, 4 - movs r0, 0xA - bl sub_81C761C - adds r4, r0, 0 - cmp r4, 0 - beq _081CFE38 - ldr r0, =sub_81CFEB8 - movs r1, 0x1 - bl sub_81C7078 - str r0, [r4, 0x4] - ldr r0, =sub_81CFE84 - str r0, [r4] - movs r0, 0x1 - str r0, [r4, 0xC] - b _081CFE3A - .pool -_081CFE38: - movs r0, 0 -_081CFE3A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CFE08 - - thumb_func_start sub_81CFE40 -sub_81CFE40: @ 81CFE40 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xA - bl sub_81C763C - adds r5, r0, 0 - ldr r0, =gUnknown_086237B8 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - movs r1, 0x1 - bl sub_81C7078 - str r0, [r5, 0x4] - ldr r0, =sub_81CFE84 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CFE40 - - thumb_func_start sub_81CFE70 -sub_81CFE70: @ 81CFE70 - push {lr} - movs r0, 0xA - bl sub_81C763C - ldr r0, [r0] - bl _call_via_r0 - pop {r1} - bx r1 - thumb_func_end sub_81CFE70 - - thumb_func_start sub_81CFE84 -sub_81CFE84: @ 81CFE84 - push {lr} - movs r0, 0xA - bl sub_81C763C - ldr r0, [r0, 0x4] - bl sub_81C70D8 - pop {r1} - bx r1 - thumb_func_end sub_81CFE84 - - thumb_func_start sub_81CFE98 -sub_81CFE98: @ 81CFE98 - push {r4,lr} - movs r0, 0xA - bl sub_81C763C - adds r4, r0, 0 - bl sub_81C8234 - ldrb r0, [r4, 0x8] - bl RemoveWindow - movs r0, 0xA - bl sub_81C7650 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CFE98 - - thumb_func_start sub_81CFEB8 -sub_81CFEB8: @ 81CFEB8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r0, 0xA - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x5 - bls _081CFECC - b _081CFFF2 -_081CFECC: - lsls r0, r4, 2 - ldr r1, =_081CFEDC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CFEDC: - .4byte _081CFEF4 - .4byte _081CFF48 - .4byte _081CFF76 - .4byte _081CFF94 - .4byte _081CFFA4 - .4byte _081CFFDE -_081CFEF4: - ldr r0, =gUnknown_086237B0 - movs r1, 0x2 - bl sub_81C7B54 - ldr r1, =gUnknown_08623604 - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - adds r1, r5, 0 - adds r1, 0x10 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, =gUnknown_086236CC - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - ldr r0, =gUnknown_086235E4 - movs r1, 0x10 - movs r2, 0x20 - bl sub_81C7944 - movs r0, 0x1 - bl CopyBgTilemapBufferToVram -_081CFF32: - movs r0, 0 - b _081CFFF4 - .pool -_081CFF48: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081CFFEE - bl sub_81CFB18 - cmp r0, 0 - beq _081CFFEE - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x1 - bl ShowBg - b _081CFF32 -_081CFF76: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081CFFEE - ldr r0, =gUnknown_08623790 - movs r1, 0x20 - movs r2, 0x20 - bl sub_81C7944 - bl sub_81D0304 - b _081CFF32 - .pool -_081CFF94: - bl sub_81C8224 - cmp r0, 0 - bne _081CFFEE - adds r0, r5, 0 - bl sub_81D024C - b _081CFF32 -_081CFFA4: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081CFFEE - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl HideBg - movs r0, 0x9 - bl sub_81C7BA4 - movs r0, 0x1 - bl sub_81C7AC0 - ldr r0, [r5, 0xC] - cmp r0, 0 - bne _081CFF32 - movs r0, 0x2 - bl sub_81C7DFC - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0 - bl sub_81C7FA0 - b _081CFF32 -_081CFFDE: - bl sub_81C7B34 - cmp r0, 0 - bne _081CFFEE - bl sub_81C8010 - cmp r0, 0 - beq _081CFFF2 -_081CFFEE: - movs r0, 0x2 - b _081CFFF4 -_081CFFF2: - movs r0, 0x4 -_081CFFF4: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CFEB8 - - thumb_func_start sub_81CFFFC -sub_81CFFFC: @ 81CFFFC - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xA - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x1 - beq _081D004A - cmp r4, 0x1 - bgt _081D0016 - cmp r4, 0 - beq _081D0020 - b _081D006A -_081D0016: - cmp r4, 0x2 - beq _081D0052 - cmp r4, 0x3 - beq _081D005C - b _081D006A -_081D0020: - bl sub_81C8658 - cmp r0, 0x1 - beq _081D0038 - cmp r0, 0x1 - bgt _081D0032 - cmp r0, 0 - beq _081D006A - b _081D0058 -_081D0032: - cmp r0, 0x2 - beq _081D0042 - b _081D0058 -_081D0038: - movs r0, 0x5 - bl audio_play - movs r0, 0x7 - b _081D006C -_081D0042: - movs r0, 0x5 - bl audio_play - b _081D0058 -_081D004A: - bl sub_81C8630 - cmp r0, 0 - bne _081D0066 -_081D0052: - adds r0, r5, 0 - bl sub_81D0288 -_081D0058: - movs r0, 0 - b _081D006C -_081D005C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081D006A -_081D0066: - movs r0, 0x2 - b _081D006C -_081D006A: - movs r0, 0x4 -_081D006C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CFFFC - - thumb_func_start sub_81D0074 -sub_81D0074: @ 81D0074 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xA - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x1 - beq _081D00C2 - cmp r4, 0x1 - bgt _081D008E - cmp r4, 0 - beq _081D0098 - b _081D00E2 -_081D008E: - cmp r4, 0x2 - beq _081D00CA - cmp r4, 0x3 - beq _081D00D4 - b _081D00E2 -_081D0098: - bl sub_81C868C - cmp r0, 0x1 - beq _081D00B0 - cmp r0, 0x1 - bgt _081D00AA - cmp r0, 0 - beq _081D00E2 - b _081D00D0 -_081D00AA: - cmp r0, 0x2 - beq _081D00BA - b _081D00D0 -_081D00B0: - movs r0, 0x5 - bl audio_play - movs r0, 0x7 - b _081D00E4 -_081D00BA: - movs r0, 0x5 - bl audio_play - b _081D00D0 -_081D00C2: - bl sub_81C8630 - cmp r0, 0 - bne _081D00DE -_081D00CA: - adds r0, r5, 0 - bl sub_81D0288 -_081D00D0: - movs r0, 0 - b _081D00E4 -_081D00D4: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081D00E2 -_081D00DE: - movs r0, 0x2 - b _081D00E4 -_081D00E2: - movs r0, 0x4 -_081D00E4: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D0074 - - thumb_func_start sub_81D00EC -sub_81D00EC: @ 81D00EC - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xA - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x1 - beq _081D013A - cmp r4, 0x1 - bgt _081D0106 - cmp r4, 0 - beq _081D0110 - b _081D015A -_081D0106: - cmp r4, 0x2 - beq _081D0142 - cmp r4, 0x3 - beq _081D014C - b _081D015A -_081D0110: - bl sub_81C86CC - cmp r0, 0x1 - beq _081D0128 - cmp r0, 0x1 - bgt _081D0122 - cmp r0, 0 - beq _081D015A - b _081D0148 -_081D0122: - cmp r0, 0x2 - beq _081D0132 - b _081D0148 -_081D0128: - movs r0, 0x5 - bl audio_play - movs r0, 0x7 - b _081D015C -_081D0132: - movs r0, 0x5 - bl audio_play - b _081D0148 -_081D013A: - bl sub_81C8630 - cmp r0, 0 - bne _081D0156 -_081D0142: - adds r0, r5, 0 - bl sub_81D0288 -_081D0148: - movs r0, 0 - b _081D015C -_081D014C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081D015A -_081D0156: - movs r0, 0x2 - b _081D015C -_081D015A: - movs r0, 0x4 -_081D015C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D00EC - - thumb_func_start sub_81D0164 -sub_81D0164: @ 81D0164 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xA - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x1 - beq _081D01B2 - cmp r4, 0x1 - bgt _081D017E - cmp r4, 0 - beq _081D0188 - b _081D01D2 -_081D017E: - cmp r4, 0x2 - beq _081D01BA - cmp r4, 0x3 - beq _081D01C4 - b _081D01D2 -_081D0188: - bl sub_81C870C - cmp r0, 0x1 - beq _081D01A0 - cmp r0, 0x1 - bgt _081D019A - cmp r0, 0 - beq _081D01D2 - b _081D01C0 -_081D019A: - cmp r0, 0x2 - beq _081D01AA - b _081D01C0 -_081D01A0: - movs r0, 0x5 - bl audio_play - movs r0, 0x7 - b _081D01D4 -_081D01AA: - movs r0, 0x5 - bl audio_play - b _081D01C0 -_081D01B2: - bl sub_81C8630 - cmp r0, 0 - bne _081D01CE -_081D01BA: - adds r0, r5, 0 - bl sub_81D0288 -_081D01C0: - movs r0, 0 - b _081D01D4 -_081D01C4: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081D01D2 -_081D01CE: - movs r0, 0x2 - b _081D01D4 -_081D01D2: - movs r0, 0x4 -_081D01D4: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D0164 - - thumb_func_start sub_81D01DC -sub_81D01DC: @ 81D01DC - push {lr} - cmp r0, 0 - beq _081D01E8 - cmp r0, 0x1 - beq _081D01FC - b _081D0214 -_081D01E8: - movs r0, 0x5 - bl audio_play - movs r0, 0 - bl sub_81C7AC0 - bl sub_81C78A0 - movs r0, 0 - b _081D0216 -_081D01FC: - bl sub_81C7B34 - cmp r0, 0 - bne _081D020C - bl sub_81C78C0 - cmp r0, 0 - beq _081D0210 -_081D020C: - movs r0, 0x2 - b _081D0216 -_081D0210: - bl sub_81C7FDC -_081D0214: - movs r0, 0x4 -_081D0216: - pop {r1} - bx r1 - thumb_func_end sub_81D01DC - - thumb_func_start sub_81D021C -sub_81D021C: @ 81D021C - push {lr} - cmp r0, 0 - beq _081D0228 - cmp r0, 0x1 - beq _081D0238 - b _081D0244 -_081D0228: - movs r0, 0x5 - bl audio_play - movs r0, 0 - bl sub_81C7AC0 - movs r0, 0 - b _081D0246 -_081D0238: - bl sub_81C7B34 - cmp r0, 0 - beq _081D0244 - movs r0, 0x2 - b _081D0246 -_081D0244: - movs r0, 0x4 -_081D0246: - pop {r1} - bx r1 - thumb_func_end sub_81D021C - - thumb_func_start sub_81D024C -sub_81D024C: @ 81D024C - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_086237D4 - bl AddWindow - strh r0, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - bl sub_81CFB38 - adds r2, r0, 0 - ldrh r0, [r4, 0x8] - movs r1, 0 - bl sub_81D02B0 - ldrb r0, [r4, 0x8] - movs r1, 0x1 - bl CopyWindowToVram - adds r0, r4, 0 - bl sub_81D0288 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D024C - - thumb_func_start sub_81D0288 -sub_81D0288: @ 81D0288 - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_81C875C - adds r4, r0, 0 - bl sub_81CFB38 - adds r2, r0, 0 - ldrh r0, [r5, 0x8] - adds r4, 0x1 - adds r1, r4, 0 - bl sub_81D02B0 - ldrb r0, [r5, 0x8] - movs r1, 0x2 - bl CopyWindowToVram - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81D0288 - - thumb_func_start sub_81D02B0 -sub_81D02B0: @ 81D02B0 - push {r4,r5,lr} - sub sp, 0x1C - adds r4, r0, 0 - adds r5, r2, 0 - add r0, sp, 0xC - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - movs r1, 0xBA - strb r1, [r0] - adds r0, 0x1 - adds r1, r5, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - movs r0, 0x1 - add r1, sp, 0xC - movs r2, 0x38 - bl GetStringCenterAlignXOffset - adds r3, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x1 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r1, 0x1 - add r2, sp, 0xC - bl Print - add sp, 0x1C - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81D02B0 - - thumb_func_start sub_81D0304 -sub_81D0304: @ 81D0304 - push {r4,lr} - sub sp, 0x18 - bl sub_81CFB28 - str r0, [sp] - bl sub_81CFB38 - mov r1, sp - movs r4, 0 - strh r0, [r1, 0x4] - movs r0, 0x4 - strb r0, [r1, 0x8] - bl sub_81CFB64 - mov r1, sp - strh r0, [r1, 0x6] - movs r0, 0xD - strb r0, [r1, 0x9] - movs r0, 0x11 - strb r0, [r1, 0xA] - mov r0, sp - movs r2, 0x1 - strb r2, [r0, 0xB] - movs r0, 0x8 - strb r0, [r1, 0xC] - movs r0, 0x2 - strb r0, [r1, 0xD] - mov r0, sp - strb r2, [r0, 0xE] - ldr r0, =sub_81D035C - str r0, [sp, 0x10] - str r4, [sp, 0x14] - ldr r0, =gUnknown_086237B4 - movs r2, 0 - bl sub_81C81D4 - add sp, 0x18 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D0304 - - thumb_func_start sub_81D035C -sub_81D035C: @ 81D035C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r1, 0 - adds r7, r0, 0 - ldrb r0, [r7] - cmp r0, 0xE - bne _081D03A4 - ldrb r1, [r7, 0x1] - movs r0, 0x64 - adds r4, r1, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - bl pokemon_get_gender - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - bl level_by_exp - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r2, =gStringVar3 - adds r0, r4, 0 - movs r1, 0x2 - bl GetMonData - b _081D03CC - .pool -_081D03A4: - ldrb r0, [r7] - ldrb r1, [r7, 0x1] - bl get_pokemon_by_box_and_pos - adds r4, r0, 0 - bl pokemon_roll_gender - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - bl sub_80690C0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r2, =gStringVar3 - adds r0, r4, 0 - movs r1, 0x2 - bl pokemon_getattr_encrypted -_081D03CC: - ldr r4, =gStringVar3 - adds r0, r4, 0 - bl StringGetEnd10 - adds r0, r6, 0 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0x3C - bl sub_81DB494 - adds r6, r0, 0 - cmp r5, 0 - beq _081D03F8 - cmp r5, 0xFE - beq _081D0400 - ldr r1, =gUnknown_086237F4 - b _081D0402 - .pool -_081D03F8: - ldr r1, =gUnknown_086237DC - b _081D0402 - .pool -_081D0400: - ldr r1, =gUnknown_086237E8 -_081D0402: - ldr r4, =gStringVar1 - adds r0, r4, 0 - bl StringCopy - movs r1, 0xBA - strb r1, [r0] - adds r0, 0x1 - movs r1, 0xF9 - strb r1, [r0] - adds r0, 0x1 - movs r1, 0x5 - strb r1, [r0] - adds r0, 0x1 - mov r1, r8 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r0, r6, 0 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0x36 - bl sub_81DB494 - adds r6, r0, 0 - ldrh r1, [r7, 0x2] - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D035C - - thumb_func_start sub_81D0450 -sub_81D0450: @ 81D0450 - push {r4,lr} - movs r0, 0xD - movs r1, 0x9C - bl sub_81C761C - adds r4, r0, 0 - cmp r4, 0 - beq _081D0498 - movs r0, 0x12 - bl sub_81C763C - str r0, [r4, 0x8] - cmp r0, 0 - beq _081D0498 - adds r0, r4, 0 - bl sub_81D0814 - adds r1, r4, 0 - adds r1, 0x98 - ldr r0, =sub_81D04C4 - str r0, [r1] - ldr r1, =gKeyRepeatContinueDelay - movs r0, 0x3 - strh r0, [r1] - ldr r1, =gKeyRepeatStartDelay - movs r0, 0xA - strh r0, [r1] - movs r0, 0x1 - b _081D049A - .pool -_081D0498: - movs r0, 0 -_081D049A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81D0450 - - thumb_func_start sub_81D04A0 -sub_81D04A0: @ 81D04A0 - push {lr} - movs r0, 0xD - bl sub_81C763C - adds r1, r0, 0 - adds r1, 0x98 - ldr r1, [r1] - bl _call_via_r1 - pop {r1} - bx r1 - thumb_func_end sub_81D04A0 - - thumb_func_start sub_81D04B8 -sub_81D04B8: @ 81D04B8 - push {lr} - movs r0, 0xD - bl sub_81C7650 - pop {r0} - bx r0 - thumb_func_end sub_81D04B8 - - thumb_func_start sub_81D04C4 -sub_81D04C4: @ 81D04C4 - push {r4,lr} - adds r4, r0, 0 - ldr r2, =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081D04E4 - ldr r3, [r4, 0x8] - ldrh r0, [r3, 0x2] - cmp r0, 0 - beq _081D04E4 - subs r0, 0x1 - b _081D04FC - .pool -_081D04E4: - ldrh r1, [r2, 0x30] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081D050C - ldr r3, [r4, 0x8] - ldrh r1, [r3, 0x2] - ldrh r0, [r3] - subs r0, 0x1 - cmp r1, r0 - bge _081D050C - adds r0, r1, 0x1 -_081D04FC: - movs r1, 0 - strh r0, [r3, 0x2] - strh r1, [r4, 0xC] - adds r0, r4, 0 - bl sub_81D0814 - movs r0, 0x1 - b _081D053E -_081D050C: - ldrh r2, [r2, 0x2E] - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - beq _081D0528 - adds r1, r4, 0 - adds r1, 0x98 - ldr r0, =sub_81D0548 - str r0, [r1] - movs r0, 0x2 - b _081D053E - .pool -_081D0528: - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - bne _081D0534 - movs r0, 0 - b _081D053E -_081D0534: - adds r1, r4, 0 - adds r1, 0x98 - ldr r0, =sub_81D05D4 - str r0, [r1] - movs r0, 0x5 -_081D053E: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D04C4 - - thumb_func_start sub_81D0548 -sub_81D0548: @ 81D0548 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gMain - ldrh r1, [r0, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081D0562 - adds r0, r4, 0 - bl sub_81D05DC - cmp r0, 0 - bne _081D05A4 -_081D0562: - ldr r0, =gMain - ldrh r1, [r0, 0x30] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081D0578 - adds r0, r4, 0 - bl sub_81D061C - cmp r0, 0 - bne _081D05A4 -_081D0578: - ldr r0, =gMain - ldrh r1, [r0, 0x30] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _081D058E - adds r0, r4, 0 - bl sub_81D0664 - cmp r0, 0 - bne _081D05A4 -_081D058E: - ldr r0, =gMain - ldrh r1, [r0, 0x30] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _081D05AC - adds r0, r4, 0 - bl sub_81D0688 - cmp r0, 0 - beq _081D05AC -_081D05A4: - movs r0, 0x3 - b _081D05CA - .pool -_081D05AC: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _081D05C0 - movs r0, 0 - b _081D05CA - .pool -_081D05C0: - adds r1, r4, 0 - adds r1, 0x98 - ldr r0, =sub_81D04C4 - str r0, [r1] - movs r0, 0x4 -_081D05CA: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D0548 - - thumb_func_start sub_81D05D4 -sub_81D05D4: @ 81D05D4 - ldr r0, =0x000186ae - bx lr - .pool - thumb_func_end sub_81D05D4 - - thumb_func_start sub_81D05DC -sub_81D05DC: @ 81D05DC - push {r4,lr} - adds r1, r0, 0 - ldrh r0, [r1, 0xC] - adds r2, r0, 0 - cmp r2, 0x18 - bhi _081D05F0 - cmp r2, 0x8 - bls _081D0612 - subs r0, 0x9 - b _081D060C -_081D05F0: - ldrh r3, [r1, 0x10] - adds r2, r3, 0 - cmp r2, 0 - beq _081D0612 - ldrh r0, [r1, 0xC] - subs r0, 0x1B - ldrh r4, [r1, 0xE] - adds r0, r4 - strh r0, [r1, 0xC] - lsls r0, 16 - lsrs r0, 16 - cmp r0, r2 - bcc _081D060E - subs r0, r3, 0x1 -_081D060C: - strh r0, [r1, 0xC] -_081D060E: - movs r0, 0x1 - b _081D0614 -_081D0612: - movs r0, 0 -_081D0614: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81D05DC - - thumb_func_start sub_81D061C -sub_81D061C: @ 81D061C - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0xC] - adds r1, r0, 0 - cmp r1, 0x18 - bhi _081D065C - ldrh r3, [r2, 0xE] - cmp r1, r3 - bcs _081D0640 - adds r0, 0x9 - strh r0, [r2, 0xC] - ldrh r1, [r2, 0x10] - lsls r0, 16 - lsrs r0, 16 - cmp r0, r1 - bcc _081D0658 - subs r0, r1, 0x1 - b _081D0656 -_081D0640: - ldrh r0, [r2, 0x12] - cmp r0, 0 - beq _081D065C - ldrh r1, [r2, 0xC] - ldrh r0, [r2, 0xE] - subs r0, r1, r0 - ldrh r1, [r2, 0x12] - cmp r0, r1 - blt _081D0654 - subs r0, r1, 0x1 -_081D0654: - adds r0, 0x1B -_081D0656: - strh r0, [r2, 0xC] -_081D0658: - movs r0, 0x1 - b _081D065E -_081D065C: - movs r0, 0 -_081D065E: - pop {r1} - bx r1 - thumb_func_end sub_81D061C - - thumb_func_start sub_81D0664 -sub_81D0664: @ 81D0664 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r4, [r5, 0xC] - adds r0, r4, 0 - movs r1, 0x9 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _081D067C - movs r0, 0 - b _081D0682 -_081D067C: - subs r0, r4, 0x1 - strh r0, [r5, 0xC] - movs r0, 0x1 -_081D0682: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D0664 - - thumb_func_start sub_81D0688 -sub_81D0688: @ 81D0688 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r4, [r5, 0xC] - adds r0, r4, 0 - movs r1, 0x9 - bl __umodsi3 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x7 - bgt _081D06BC - cmp r4, 0x1A - bhi _081D06AC - ldrh r0, [r5, 0x10] - subs r0, 0x1 - cmp r4, r0 - bge _081D06BC - b _081D06B4 -_081D06AC: - ldrh r0, [r5, 0x12] - subs r0, 0x1 - cmp r1, r0 - bge _081D06BC -_081D06B4: - adds r0, r4, 0x1 - strh r0, [r5, 0xC] - movs r0, 0x1 - b _081D06BE -_081D06BC: - movs r0, 0 -_081D06BE: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D0688 - - thumb_func_start sub_81D06C4 -sub_81D06C4: @ 81D06C4 - push {lr} - movs r0, 0xD - bl sub_81C763C - ldr r0, [r0, 0x8] - ldrh r0, [r0, 0x2] - pop {r1} - bx r1 - thumb_func_end sub_81D06C4 - - thumb_func_start sub_81D06D4 -sub_81D06D4: @ 81D06D4 - push {lr} - movs r0, 0xD - bl sub_81C763C - ldr r0, [r0, 0x8] - ldrh r0, [r0] - pop {r1} - bx r1 - thumb_func_end sub_81D06D4 - - thumb_func_start sub_81D06E4 -sub_81D06E4: @ 81D06E4 - push {r4-r7,lr} - adds r5, r0, 0 - adds r7, r1, 0 - adds r6, r2, 0 - movs r0, 0xD - bl sub_81C763C - ldr r1, [r0, 0x8] - ldrh r0, [r1, 0x2] - lsls r0, 2 - adds r0, 0x4 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0xE - bne _081D0730 - ldrb r1, [r1, 0x1] - movs r0, 0x64 - adds r4, r1, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x2 - adds r2, r5, 0 - bl GetMonData - adds r0, r4, 0 - bl level_by_exp - strb r0, [r7] - adds r0, r4, 0 - bl pokemon_get_gender - strb r0, [r6] - b _081D0752 - .pool -_081D0730: - ldrb r0, [r1] - ldrb r1, [r1, 0x1] - bl get_pokemon_by_box_and_pos - adds r4, r0, 0 - bl pokemon_roll_gender - strb r0, [r6] - adds r0, r4, 0 - bl sub_80690C0 - strb r0, [r7] - adds r0, r4, 0 - movs r1, 0x2 - adds r2, r5, 0 - bl pokemon_getattr_encrypted -_081D0752: - adds r0, r5, 0 - bl StringGetEnd10 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D06E4 - - thumb_func_start sub_81D0760 -sub_81D0760: @ 81D0760 - push {r4-r7,lr} - adds r5, r0, 0 - adds r6, r1, 0 - adds r7, r2, 0 - movs r0, 0xD - bl sub_81C763C - ldr r1, [r0, 0x8] - ldrh r0, [r1, 0x2] - lsls r0, 2 - adds r0, 0x4 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0xE - bne _081D07AC - ldrb r1, [r1, 0x1] - movs r0, 0x64 - adds r4, r1, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - strh r0, [r5] - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - str r0, [r6] - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - b _081D07D0 - .pool -_081D07AC: - ldrb r0, [r1] - ldrb r1, [r1, 0x1] - bl get_pokemon_by_box_and_pos - adds r4, r0, 0 - movs r1, 0xB - bl pokemon_getattr_encrypted - strh r0, [r5] - adds r0, r4, 0 - movs r1, 0 - bl pokemon_getattr_encrypted - str r0, [r6] - adds r0, r4, 0 - movs r1, 0x1 - bl pokemon_getattr_encrypted -_081D07D0: - str r0, [r7] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D0760 - - thumb_func_start sub_81D07D8 -sub_81D07D8: @ 81D07D8 - push {lr} - movs r0, 0xD - bl sub_81C763C - ldr r1, [r0, 0x8] - ldrh r0, [r1, 0x2] - lsls r0, 2 - adds r0, 0x4 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0xE - beq _081D07FA - ldrb r1, [r1, 0x1] - movs r2, 0x52 - bl get_pokemon_data_from_any_box - b _081D080A -_081D07FA: - ldrb r1, [r1, 0x1] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x52 - bl GetMonData -_081D080A: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D07D8 - - thumb_func_start sub_81D0814 -sub_81D0814: @ 81D0814 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrh r1, [r0, 0x2] - lsls r1, 2 - adds r1, 0x4 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0xE - bne _081D0848 - ldrb r1, [r1, 0x1] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x53 - bl GetMonData - b _081D0852 - .pool -_081D0848: - ldrb r0, [r1] - ldrb r1, [r1, 0x1] - movs r2, 0x53 - bl get_pokemon_data_from_any_box -_081D0852: - mov r12, r0 - movs r0, 0 - strh r0, [r5, 0x10] - strh r0, [r5, 0x12] - movs r6, 0 - ldr r0, =gUnknown_086237F8 - mov r9, r0 - mov r10, r9 -_081D0862: - lsls r2, r6, 2 - mov r3, r9 - adds r1, r2, r3 - movs r0, 0x1 - ldrb r3, [r1] - lsls r0, r3 - subs r4, r0, 0x1 - mov r0, r12 - ands r4, r0 - ldrb r0, [r1, 0x3] - adds r7, r2, 0 - cmp r0, 0 - bne _081D08AC - movs r3, 0 - adds r6, 0x1 - mov r8, r6 - cmp r3, r4 - bge _081D08D6 - adds r6, r5, 0 - adds r6, 0x14 - mov r1, r10 - adds r0, r7, r1 - ldrb r2, [r0, 0x2] -_081D0890: - ldrh r0, [r5, 0x10] - adds r1, r0, 0x1 - strh r1, [r5, 0x10] - lsls r0, 16 - lsrs r0, 14 - adds r0, r6, r0 - adds r1, r2, r3 - str r1, [r0] - adds r3, 0x1 - cmp r3, r4 - blt _081D0890 - b _081D08D6 - .pool -_081D08AC: - movs r3, 0 - adds r6, 0x1 - mov r8, r6 - cmp r3, r4 - bge _081D08D6 - adds r6, r5, 0 - adds r6, 0x78 - mov r1, r10 - adds r0, r7, r1 - ldrb r2, [r0, 0x2] -_081D08C0: - ldrh r0, [r5, 0x12] - adds r1, r0, 0x1 - strh r1, [r5, 0x12] - lsls r0, 16 - lsrs r0, 14 - adds r0, r6, r0 - adds r1, r2, r3 - str r1, [r0] - adds r3, 0x1 - cmp r3, r4 - blt _081D08C0 -_081D08D6: - mov r3, r9 - adds r0, r7, r3 - mov r1, r12 - ldrb r0, [r0] - lsrs r1, r0 - mov r12, r1 - mov r6, r8 - cmp r6, 0x10 - bls _081D0862 - ldrh r0, [r5, 0x10] - cmp r0, 0 - beq _081D0900 - subs r0, 0x1 - movs r1, 0x9 - bl __divsi3 - lsls r1, r0, 3 - adds r1, r0 - movs r0, 0 - strh r1, [r5, 0xE] - b _081D0904 -_081D0900: - strh r0, [r5, 0xE] - movs r0, 0x1B -_081D0904: - strh r0, [r5, 0xC] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D0814 - - thumb_func_start sub_81D0914 -sub_81D0914: @ 81D0914 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0xD - bl sub_81C763C - ldrh r1, [r0, 0x10] - str r1, [r4] - adds r0, 0x14 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81D0914 - - thumb_func_start sub_81D092C -sub_81D092C: @ 81D092C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0xD - bl sub_81C763C - ldrh r1, [r0, 0x12] - str r1, [r4] - adds r0, 0x78 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81D092C - - thumb_func_start sub_81D0944 -sub_81D0944: @ 81D0944 - push {lr} - movs r0, 0xD - bl sub_81C763C - ldrh r0, [r0, 0xC] - pop {r1} - bx r1 - thumb_func_end sub_81D0944 - - thumb_func_start sub_81D0954 -sub_81D0954: @ 81D0954 - push {lr} - movs r0, 0xD - bl sub_81C763C - adds r1, r0, 0 - ldrh r0, [r1, 0xC] - cmp r0, 0x18 - ble _081D096C - subs r0, 0x1B - lsls r0, 2 - adds r1, 0x78 - b _081D0970 -_081D096C: - lsls r0, 2 - adds r1, 0x14 -_081D0970: - adds r1, r0 - ldr r0, [r1] - pop {r1} - bx r1 - thumb_func_end sub_81D0954 - - thumb_func_start sub_81D0978 -sub_81D0978: @ 81D0978 - push {r4,lr} - ldr r1, =0x0000101c - movs r0, 0xE - bl sub_81C761C - adds r4, r0, 0 - cmp r4, 0 - beq _081D09A8 - ldr r0, =sub_81D0A6C - movs r1, 0x1 - bl sub_81C7078 - str r0, [r4, 0x4] - ldr r0, =sub_81D0A58 - str r0, [r4] - movs r0, 0x1 - b _081D09AA - .pool -_081D09A8: - movs r0, 0 -_081D09AA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81D0978 - - thumb_func_start sub_81D09B0 -sub_81D09B0: @ 81D09B0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xE - bl sub_81C763C - adds r5, r0, 0 - ldr r0, =gUnknown_08624BA0 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - movs r1, 0x1 - bl sub_81C7078 - str r0, [r5, 0x4] - ldr r0, =sub_81D0A58 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D09B0 - - thumb_func_start sub_81D09E0 -sub_81D09E0: @ 81D09E0 - push {lr} - movs r0, 0xE - bl sub_81C763C - ldr r0, [r0] - bl _call_via_r0 - pop {r1} - bx r1 - thumb_func_end sub_81D09E0 - - thumb_func_start sub_81D09F4 -sub_81D09F4: @ 81D09F4 - push {r4,lr} - movs r0, 0xE - bl sub_81C763C - adds r4, r0, 0 - ldrb r0, [r4, 0xA] - bl RemoveWindow - ldrb r0, [r4, 0x8] - bl RemoveWindow - ldrb r0, [r4, 0xC] - bl RemoveWindow - ldrb r0, [r4, 0xE] - bl RemoveWindow - adds r0, r4, 0 - bl sub_81D1178 - movs r0, 0x9 - bl FreeObjectTilesByTag - movs r0, 0xF - bl FreeObjectPaletteByTag - movs r0, 0x10 - bl FreeObjectPaletteByTag - movs r0, 0x11 - bl FreeObjectPaletteByTag - movs r0, 0x12 - bl FreeObjectPaletteByTag - movs r0, 0x13 - bl FreeObjectPaletteByTag - ldr r0, [r4, 0x14] - bl obj_free_rotscale_entry - ldr r0, [r4, 0x14] - bl RemoveObjectAndFreeTiles - movs r0, 0xE - bl sub_81C7650 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81D09F4 - - thumb_func_start sub_81D0A58 -sub_81D0A58: @ 81D0A58 - push {lr} - movs r0, 0xE - bl sub_81C763C - ldr r0, [r0, 0x4] - bl sub_81C70D8 - pop {r1} - bx r1 - thumb_func_end sub_81D0A58 - - thumb_func_start sub_81D0A6C -sub_81D0A6C: @ 81D0A6C - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - movs r0, 0xE - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x9 - bls _081D0A80 - b _081D0C48 -_081D0A80: - lsls r0, r4, 2 - ldr r1, =_081D0A90 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081D0A90: - .4byte _081D0AB8 - .4byte _081D0B04 - .4byte _081D0B74 - .4byte _081D0B88 - .4byte _081D0B9C - .4byte _081D0BB0 - .4byte _081D0BC4 - .4byte _081D0BD8 - .4byte _081D0BE8 - .4byte _081D0C3C -_081D0AB8: - ldr r0, =gUnknown_08624B98 - movs r1, 0x2 - bl sub_81C7B54 - ldr r1, =gUnknown_08DDE030 - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - adds r1, r5, 0 - adds r1, 0x1C - movs r0, 0x2 - bl SetBgTilemapBuffer - ldr r1, =gUnknown_08DDE12C - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - ldr r0, =gUnknown_08DDE010 - movs r1, 0x10 - movs r2, 0x20 - bl sub_81C7944 - b _081D0BBA - .pool -_081D0B04: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _081D0B12 - b _081D0C44 -_081D0B12: - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_8199DF0 - ldr r1, =gUnknown_086240B8 - str r4, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0x1 - bl decompress_and_copy_tile_data_to_vram - ldr r0, =0x0000081c - adds r1, r5, r0 - movs r0, 0x1 - bl SetBgTilemapBuffer - movs r0, 0x20 - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - ldr r0, =gUnknown_08623FF8 - movs r1, 0x20 - movs r2, 0xA0 - bl sub_81C7944 - ldr r0, =gUnknown_08624098 - movs r1, 0xA0 - movs r2, 0x20 - bl sub_81C7944 - movs r0, 0x1 - b _081D0BBC - .pool -_081D0B74: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081D0C44 - adds r0, r5, 0 - bl sub_81D0E60 - movs r0, 0 - b _081D0C4A -_081D0B88: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081D0C44 - adds r0, r5, 0 - bl sub_81D0FCC - movs r0, 0 - b _081D0C4A -_081D0B9C: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081D0C44 - adds r0, r5, 0 - bl sub_81D10A4 - movs r0, 0 - b _081D0C4A -_081D0BB0: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _081D0C44 -_081D0BBA: - movs r0, 0x2 -_081D0BBC: - bl CopyBgTilemapBufferToVram - movs r0, 0 - b _081D0C4A -_081D0BC4: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _081D0C44 - adds r0, r5, 0 - bl sub_81D1148 - movs r0, 0x1 - b _081D0C4A -_081D0BD8: - adds r0, r5, 0 - bl sub_81D12D8 - movs r0, 0xA - bl sub_81C7BA4 - movs r0, 0 - b _081D0C4A -_081D0BE8: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _081D0C44 - adds r0, r5, 0 - bl sub_81D13FC - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl HideBg - movs r0, 0x1 - bl sub_81C7AC0 - movs r0, 0 - b _081D0C4A -_081D0C3C: - bl sub_81C7B34 - cmp r0, 0 - beq _081D0C48 -_081D0C44: - movs r0, 0x2 - b _081D0C4A -_081D0C48: - movs r0, 0x4 -_081D0C4A: - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D0A6C - - thumb_func_start sub_81D0C54 -sub_81D0C54: @ 81D0C54 - push {lr} - cmp r0, 0 - beq _081D0C60 - cmp r0, 0x1 - beq _081D0C70 - b _081D0C7C -_081D0C60: - movs r0, 0x5 - bl audio_play - movs r0, 0 - bl sub_81C7AC0 - movs r0, 0 - b _081D0C7E -_081D0C70: - bl sub_81C7B34 - cmp r0, 0 - beq _081D0C7C - movs r0, 0x2 - b _081D0C7E -_081D0C7C: - movs r0, 0x4 -_081D0C7E: - pop {r1} - bx r1 - thumb_func_end sub_81D0C54 - - thumb_func_start sub_81D0C84 -sub_81D0C84: @ 81D0C84 - push {r4,r5,lr} - adds r5, r0, 0 - movs r0, 0xE - bl sub_81C763C - adds r4, r0, 0 - cmp r5, 0x6 - bhi _081D0D24 - lsls r0, r5, 2 - ldr r1, =_081D0CA4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081D0CA4: - .4byte _081D0CC0 - .4byte _081D0CD0 - .4byte _081D0CE4 - .4byte _081D0CEE - .4byte _081D0CF8 - .4byte _081D0D02 - .4byte _081D0D16 -_081D0CC0: - movs r0, 0x5 - bl audio_play - adds r0, r4, 0 - bl sub_81D11D8 - movs r0, 0 - b _081D0D26 -_081D0CD0: - adds r0, r4, 0 - bl sub_81D1234 - cmp r0, 0 - bne _081D0D20 - adds r0, r4, 0 - bl sub_81D0FF0 - movs r0, 0x1 - b _081D0D26 -_081D0CE4: - adds r0, r4, 0 - bl sub_81D12D8 - movs r0, 0x1 - b _081D0D26 -_081D0CEE: - adds r0, r4, 0 - bl sub_81D10D0 - movs r0, 0x1 - b _081D0D26 -_081D0CF8: - adds r0, r4, 0 - bl sub_81D0E84 - movs r0, 0x1 - b _081D0D26 -_081D0D02: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _081D0D20 - adds r0, r4, 0 - bl sub_81D11FC - movs r0, 0 - b _081D0D26 -_081D0D16: - adds r0, r4, 0 - bl sub_81D1234 - cmp r0, 0 - beq _081D0D24 -_081D0D20: - movs r0, 0x2 - b _081D0D26 -_081D0D24: - movs r0, 0x4 -_081D0D26: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D0C84 - - thumb_func_start sub_81D0D2C -sub_81D0D2C: @ 81D0D2C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xE - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x1 - beq _081D0D5C - cmp r4, 0x1 - bgt _081D0D46 - cmp r4, 0 - beq _081D0D4C - b _081D0D84 -_081D0D46: - cmp r4, 0x2 - beq _081D0D76 - b _081D0D84 -_081D0D4C: - movs r0, 0x5 - bl audio_play - adds r0, r5, 0 - bl sub_81D1448 - movs r0, 0 - b _081D0D86 -_081D0D5C: - adds r0, r5, 0 - bl sub_81D1524 - cmp r0, 0 - bne _081D0D80 - adds r0, r5, 0 - bl sub_81D0EFC - movs r0, 0xB - bl sub_81C7BA4 - movs r0, 0 - b _081D0D86 -_081D0D76: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081D0D84 -_081D0D80: - movs r0, 0x2 - b _081D0D86 -_081D0D84: - movs r0, 0x4 -_081D0D86: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D0D2C - - thumb_func_start sub_81D0D8C -sub_81D0D8C: @ 81D0D8C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xE - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x1 - beq _081D0DC0 - cmp r4, 0x1 - bgt _081D0DA6 - cmp r4, 0 - beq _081D0DB0 - b _081D0DF6 -_081D0DA6: - cmp r4, 0x2 - beq _081D0DD4 - cmp r4, 0x3 - beq _081D0DE8 - b _081D0DF6 -_081D0DB0: - movs r0, 0x5 - bl audio_play - adds r0, r5, 0 - bl sub_81D1500 - movs r0, 0 - b _081D0DF8 -_081D0DC0: - adds r0, r5, 0 - bl sub_81D1524 - cmp r0, 0 - bne _081D0DF2 - adds r0, r5, 0 - bl sub_81D1448 - movs r0, 0 - b _081D0DF8 -_081D0DD4: - adds r0, r5, 0 - bl sub_81D1524 - cmp r0, 0 - bne _081D0DF2 - adds r0, r5, 0 - bl sub_81D0EFC - movs r0, 0 - b _081D0DF8 -_081D0DE8: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081D0DF6 -_081D0DF2: - movs r0, 0x2 - b _081D0DF8 -_081D0DF6: - movs r0, 0x4 -_081D0DF8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D0D8C - - thumb_func_start sub_81D0E00 -sub_81D0E00: @ 81D0E00 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xE - bl sub_81C763C - adds r5, r0, 0 - cmp r4, 0x1 - beq _081D0E30 - cmp r4, 0x1 - bgt _081D0E1A - cmp r4, 0 - beq _081D0E20 - b _081D0E58 -_081D0E1A: - cmp r4, 0x2 - beq _081D0E4A - b _081D0E58 -_081D0E20: - movs r0, 0x5 - bl audio_play - adds r0, r5, 0 - bl sub_81D1500 - movs r0, 0 - b _081D0E5A -_081D0E30: - adds r0, r5, 0 - bl sub_81D1524 - cmp r0, 0 - bne _081D0E54 - adds r0, r5, 0 - bl sub_81D0E84 - movs r0, 0xA - bl sub_81C7BA4 - movs r0, 0 - b _081D0E5A -_081D0E4A: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081D0E58 -_081D0E54: - movs r0, 0x2 - b _081D0E5A -_081D0E58: - movs r0, 0x4 -_081D0E5A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D0E00 - - thumb_func_start sub_81D0E60 -sub_81D0E60: @ 81D0E60 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_08624BB8 - bl AddWindow - strh r0, [r4, 0xA] - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - adds r0, r4, 0 - bl sub_81D0E84 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D0E60 - - thumb_func_start sub_81D0E84 -sub_81D0E84: @ 81D0E84 - push {r4,r5,lr} - sub sp, 0x10 - adds r5, r0, 0 - ldr r1, =gUnknown_08624BC0 - add r0, sp, 0xC - movs r2, 0x3 - bl memcpy - ldr r4, =gStringVar1 - bl sub_81D07D8 - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - bl sub_81AFBF0 - movs r0, 0 - adds r1, r4, 0 - bl sub_81AFC0C - ldr r4, =gStringVar4 - ldr r1, =gUnknown_085EC030 - adds r0, r4, 0 - bl sub_81AFC28 - ldrb r0, [r5, 0xA] - movs r1, 0x44 - bl FillWindowPixelBuffer - ldrb r0, [r5, 0xA] - add r1, sp, 0xC - str r1, [sp] - movs r1, 0x1 - negs r1, r1 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x1 - movs r2, 0 - movs r3, 0x1 - bl box_print - ldrb r0, [r5, 0xA] - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D0E84 - - thumb_func_start sub_81D0EFC -sub_81D0EFC: @ 81D0EFC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - adds r7, r0, 0 - bl sub_81D0954 - adds r5, r0, 0 - ldr r1, =gUnknown_08624BC0 - add r0, sp, 0xC - movs r2, 0x3 - bl memcpy - ldrb r0, [r7, 0xA] - movs r1, 0x44 - bl FillWindowPixelBuffer - cmp r5, 0x18 - bhi _081D0F60 - lsls r1, r5, 3 - ldr r0, =gRibbonDescriptionPointers - adds r6, r1, r0 - movs r5, 0x80 - lsls r5, 17 - movs r4, 0x1 -_081D0F2E: - ldrb r0, [r7, 0xA] - lsrs r3, r5, 24 - add r1, sp, 0xC - str r1, [sp] - movs r1, 0x1 - negs r1, r1 - str r1, [sp, 0x4] - ldm r6!, {r1} - str r1, [sp, 0x8] - movs r1, 0x1 - movs r2, 0 - bl box_print - movs r0, 0x80 - lsls r0, 21 - adds r5, r0 - subs r4, 0x1 - cmp r4, 0 - bge _081D0F2E - b _081D0FAA - .pool -_081D0F60: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - adds r0, r5 - ldr r1, =0x0000318f - adds r0, r1 - ldrb r5, [r0] - cmp r5, 0 - beq _081D0FB2 - subs r5, 0x1 - movs r4, 0 - ldr r0, =gGiftRibbonDescriptionPointers - mov r8, r0 - movs r6, 0x80 - lsls r6, 17 -_081D0F7C: - ldrb r0, [r7, 0xA] - lsrs r3, r6, 24 - add r1, sp, 0xC - str r1, [sp] - movs r1, 0x1 - negs r1, r1 - str r1, [sp, 0x4] - lsls r1, r4, 2 - lsls r2, r5, 3 - adds r1, r2 - add r1, r8 - ldr r1, [r1] - str r1, [sp, 0x8] - movs r1, 0x1 - movs r2, 0 - bl box_print - movs r0, 0x80 - lsls r0, 21 - adds r6, r0 - adds r4, 0x1 - cmp r4, 0x1 - ble _081D0F7C -_081D0FAA: - ldrb r0, [r7, 0xA] - movs r1, 0x2 - bl CopyWindowToVram -_081D0FB2: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D0EFC - - thumb_func_start sub_81D0FCC -sub_81D0FCC: @ 81D0FCC - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_08624BC4 - bl AddWindow - strh r0, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - adds r0, r4, 0 - bl sub_81D0FF0 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D0FCC - - thumb_func_start sub_81D0FF0 -sub_81D0FF0: @ 81D0FF0 - push {r4-r7,lr} - sub sp, 0x10 - ldrh r7, [r0, 0x8] - ldrb r5, [r0, 0x8] - adds r0, r5, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r4, =gStringVar3 - mov r6, sp - adds r6, 0xD - adds r0, r4, 0 - add r1, sp, 0xC - adds r2, r6, 0 - bl sub_81D06E4 - movs r0, 0x1 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r5, 0 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0 - bl Print - ldrb r0, [r6] - cmp r0, 0 - beq _081D1040 - cmp r0, 0xFE - beq _081D1048 - ldr r1, =gUnknown_08624BE4 - b _081D104A - .pool -_081D1040: - ldr r1, =gUnknown_08624BCC - b _081D104A - .pool -_081D1048: - ldr r1, =gUnknown_08624BD8 -_081D104A: - ldr r5, =gStringVar1 - adds r0, r5, 0 - bl StringCopy - movs r1, 0xBA - strb r1, [r0] - adds r0, 0x1 - movs r1, 0xF9 - strb r1, [r0] - adds r0, 0x1 - movs r1, 0x5 - strb r1, [r0] - adds r0, 0x1 - add r1, sp, 0xC - ldrb r1, [r1] - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - lsls r4, r7, 24 - lsrs r4, 24 - movs r0, 0x1 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r1, 0x1 - adds r2, r5, 0 - movs r3, 0x3C - bl Print - adds r0, r4, 0 - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D0FF0 - - thumb_func_start sub_81D10A4 -sub_81D10A4: @ 81D10A4 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_08624BE8 - bl AddWindow - strh r0, [r4, 0xC] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4, 0xC] - bl PutWindowTilemap - adds r0, r4, 0 - bl sub_81D10D0 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D10A4 - - thumb_func_start sub_81D10D0 -sub_81D10D0: @ 81D10D0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0xC - mov r8, r0 - bl sub_81D06C4 - adds r4, r0, 0 - adds r4, 0x1 - bl sub_81D06D4 - adds r6, r0, 0 - ldr r5, =gStringVar1 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - movs r1, 0xBA - strb r1, [r0] - adds r0, 0x1 - adds r1, r6, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - movs r0, 0x1 - adds r1, r5, 0 - movs r2, 0x38 - bl GetStringCenterAlignXOffset - adds r3, r0, 0 - mov r1, r8 - ldrb r0, [r1, 0xC] - lsls r3, 24 - lsrs r3, 24 - movs r1, 0x1 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x1 - adds r2, r5, 0 - bl Print - mov r1, r8 - ldrb r0, [r1, 0xC] - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D10D0 - - thumb_func_start sub_81D1148 -sub_81D1148: @ 81D1148 - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - add r1, sp, 0x4 - add r2, sp, 0x8 - mov r0, sp - bl sub_81D0760 - bl dp13_810BB8C - movs r0, 0x28 - movs r1, 0x68 - bl sub_81D1184 - strh r0, [r4, 0x10] - movs r0, 0xF - movs r1, 0 - bl sub_81C7990 - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81D1148 - - thumb_func_start sub_81D1178 -sub_81D1178: @ 81D1178 - push {lr} - ldrh r0, [r0, 0x10] - bl sub_818D820 - pop {r0} - bx r0 - thumb_func_end sub_81D1178 - - thumb_func_start sub_81D1184 -sub_81D1184: @ 81D1184 - push {lr} - sub sp, 0x1C - add r1, sp, 0x14 - add r2, sp, 0x18 - add r0, sp, 0x10 - bl sub_81D0760 - add r0, sp, 0x10 - ldrh r0, [r0] - ldr r1, [sp, 0x18] - ldr r2, [sp, 0x14] - movs r3, 0x28 - str r3, [sp] - movs r3, 0x68 - str r3, [sp, 0x4] - movs r3, 0xF - str r3, [sp, 0x8] - ldr r3, =0x0000ffff - str r3, [sp, 0xC] - movs r3, 0x1 - bl sub_818D7D8 - lsls r0, 16 - lsrs r0, 16 - ldr r1, =gUnknown_02020630 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r3, [r2, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r3 - strb r1, [r2, 0x5] - add sp, 0x1C - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D1184 - - thumb_func_start sub_81D11D8 -sub_81D11D8: @ 81D11D8 - push {lr} - ldrh r1, [r0, 0x10] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - movs r2, 0x20 - negs r2, r2 - movs r1, 0x28 - movs r3, 0x6 - bl sub_81D1258 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D11D8 - - thumb_func_start sub_81D11FC -sub_81D11FC: @ 81D11FC - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x10] - bl sub_818D820 - movs r5, 0x20 - negs r5, r5 - adds r0, r5, 0 - movs r1, 0x68 - bl sub_81D1184 - strh r0, [r4, 0x10] - ldrh r1, [r4, 0x10] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - adds r1, r5, 0 - movs r2, 0x28 - movs r3, 0x6 - bl sub_81D1258 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D11FC - - thumb_func_start sub_81D1234 -sub_81D1234: @ 81D1234 - ldr r2, =gUnknown_02020630 - ldrh r1, [r0, 0x10] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =DummyObjectCallback - eors r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - bx lr - .pool - thumb_func_end sub_81D1234 - - thumb_func_start sub_81D1258 -sub_81D1258: @ 81D1258 - push {r4-r6,lr} - adds r4, r0, 0 - adds r6, r2, 0 - adds r5, r3, 0 - subs r0, r6, r1 - strh r1, [r4, 0x20] - lsls r1, 4 - strh r1, [r4, 0x2E] - lsls r0, 4 - adds r1, r5, 0 - bl __udivsi3 - strh r0, [r4, 0x30] - strh r5, [r4, 0x32] - strh r6, [r4, 0x34] - ldr r0, =sub_81D1284 - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D1258 - - thumb_func_start sub_81D1284 -sub_81D1284: @ 81D1284 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x32] - movs r3, 0x32 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _081D12C8 - subs r0, r1, 0x1 - strh r0, [r2, 0x32] - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x2E] - adds r0, r1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 20 - strh r0, [r2, 0x20] - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bgt _081D12BA - adds r0, r2, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _081D12D0 -_081D12BA: - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - b _081D12D0 -_081D12C8: - ldrh r0, [r2, 0x34] - strh r0, [r2, 0x20] - ldr r0, =DummyObjectCallback - str r0, [r2, 0x1C] -_081D12D0: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D1284 - - thumb_func_start sub_81D12D8 -sub_81D12D8: @ 81D12D8 - push {r4-r6,lr} - bl sub_81D1350 - ldr r5, =gUnknown_030012C0 - adds r0, r5, 0 - bl sub_81D0914 - adds r6, r0, 0 - ldr r2, =gUnknown_030012C4 - movs r1, 0 - str r1, [r2] - ldr r0, [r5] - cmp r1, r0 - bcs _081D130A - adds r4, r2, 0 -_081D12F6: - ldr r0, [r4] - ldm r6!, {r1} - bl sub_81D1370 - ldr r1, [r4] - adds r1, 0x1 - str r1, [r4] - ldr r0, [r5] - cmp r1, r0 - bcc _081D12F6 -_081D130A: - ldr r4, =gUnknown_030012C0 - adds r0, r4, 0 - bl sub_81D092C - adds r6, r0, 0 - ldr r2, =gUnknown_030012C4 - movs r1, 0 - str r1, [r2] - ldr r0, [r4] - cmp r1, r0 - bcs _081D133A - adds r4, r2, 0 -_081D1322: - ldr r0, [r4] - adds r0, 0x1B - ldm r6!, {r1} - bl sub_81D1370 - ldr r1, [r4] - adds r1, 0x1 - str r1, [r4] - ldr r0, =gUnknown_030012C0 - ldr r0, [r0] - cmp r1, r0 - bcc _081D1322 -_081D133A: - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D12D8 - - thumb_func_start sub_81D1350 -sub_81D1350: @ 81D1350 - push {lr} - sub sp, 0x8 - movs r0, 0x20 - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_81D1350 - - thumb_func_start sub_81D1370 -sub_81D1370: @ 81D1370 - push {r4-r6,lr} - sub sp, 0x10 - adds r4, r0, 0 - adds r6, r1, 0 - movs r1, 0x9 - bl __umodsi3 - adds r5, r0, 0 - lsls r5, 1 - adds r5, 0xB - adds r0, r4, 0 - movs r1, 0x9 - bl __udivsi3 - adds r4, r0, 0 - lsls r4, 1 - adds r4, 0x4 - add r0, sp, 0x8 - adds r1, r6, 0 - bl sub_81D13BC - lsls r5, 24 - lsrs r5, 24 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x2 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x1 - add r1, sp, 0x8 - adds r2, r5, 0 - adds r3, r4, 0 - bl CopyToBgTilemapBufferRect - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81D1370 - - thumb_func_start sub_81D13BC -sub_81D13BC: @ 81D13BC - push {r4,r5,lr} - ldr r2, =gUnknown_08624BF8 - lsls r1, 2 - adds r1, r2 - ldrh r3, [r1, 0x2] - adds r3, 0x2 - lsls r3, 16 - ldrh r1, [r1] - lsls r1, 1 - adds r1, 0x1 - lsls r1, 16 - lsrs r1, 16 - lsrs r3, 4 - adds r2, r1, 0 - orrs r2, r3 - strh r2, [r0] - movs r5, 0x80 - lsls r5, 3 - adds r4, r5, 0 - orrs r2, r4 - strh r2, [r0, 0x2] - adds r1, 0x1 - orrs r1, r3 - strh r1, [r0, 0x4] - orrs r1, r4 - strh r1, [r0, 0x6] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D13BC - - thumb_func_start sub_81D13FC -sub_81D13FC: @ 81D13FC - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_08624C78 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_08624C80 - bl sub_81C795C - ldr r0, =gUnknown_08624D04 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gUnknown_02020630 - adds r1, r0 - str r1, [r4, 0x14] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D13FC - - thumb_func_start sub_81D1448 -sub_81D1448: @ 81D1448 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r6, r0, 0 - bl sub_81D0944 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - movs r1, 0x9 - bl __modsi3 - adds r5, r0, 0 - lsls r5, 4 - adds r5, 0x60 - adds r0, r4, 0 - movs r1, 0x9 - bl __divsi3 - lsls r0, 4 - adds r0, 0x28 - ldr r1, [r6, 0x14] - movs r2, 0 - mov r8, r2 - strh r5, [r1, 0x20] - ldr r1, [r6, 0x14] - strh r0, [r1, 0x22] - bl sub_81D0954 - adds r4, r0, 0 - movs r0, 0x9 - bl GetObjectTileRangeStartByTag - ldr r3, [r6, 0x14] - ldr r1, =gUnknown_08624BF8 - lsls r4, 2 - adds r4, r1 - ldrh r1, [r4] - lsls r1, 4 - adds r0, r1 - ldr r2, =0x000003ff - adds r1, r2, 0 - ands r0, r1 - ldrh r2, [r3, 0x4] - ldr r1, =0xfffffc00 - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x4] - ldrh r0, [r4, 0x2] - adds r0, 0xF - lsls r0, 16 - lsrs r0, 16 - bl IndexOfObjectPaletteTag - ldr r3, [r6, 0x14] - lsls r0, 4 - ldrb r2, [r3, 0x5] - movs r1, 0xF - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x5] - ldr r0, [r6, 0x14] - movs r1, 0x1 - bl StartObjectRotScalAnim - ldr r1, [r6, 0x14] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r0, [r6, 0x14] - mov r1, r8 - strh r1, [r0, 0x2E] - ldr r1, [r6, 0x14] - ldr r0, =sub_81D1538 - str r0, [r1, 0x1C] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D1448 - - thumb_func_start sub_81D1500 -sub_81D1500: @ 81D1500 - push {r4,lr} - adds r4, r0, 0 - ldr r1, [r4, 0x14] - movs r0, 0x1 - strh r0, [r1, 0x2E] - ldr r0, [r4, 0x14] - movs r1, 0x2 - bl StartObjectRotScalAnim - ldr r1, [r4, 0x14] - ldr r0, =sub_81D1538 - str r0, [r1, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D1500 - - thumb_func_start sub_81D1524 -sub_81D1524: @ 81D1524 - ldr r0, [r0, 0x14] - ldr r1, [r0, 0x1C] - ldr r0, =DummyObjectCallback - eors r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - bx lr - .pool - thumb_func_end sub_81D1524 - - thumb_func_start sub_81D1538 -sub_81D1538: @ 81D1538 - push {lr} - adds r3, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _081D156A - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - movs r0, 0x1 - ldrh r1, [r3, 0x2E] - ands r1, r0 - lsls r1, 2 - mov r0, r12 - ldrb r2, [r0] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldr r0, =DummyObjectCallback - str r0, [r3, 0x1C] -_081D156A: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D1538 - - thumb_func_start sub_81D1574 -sub_81D1574: @ 81D1574 - push {lr} - ldrb r0, [r0] - cmp r0, 0x5 - bhi _081D15A4 - lsls r0, 2 - ldr r1, =_081D158C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081D158C: - .4byte _081D15A4 - .4byte _081D15A8 - .4byte _081D15AC - .4byte _081D15B4 - .4byte _081D15B0 - .4byte _081D15A8 -_081D15A4: - movs r0, 0 - b _081D15B6 -_081D15A8: - movs r0, 0x1 - b _081D15B6 -_081D15AC: - movs r0, 0x2 - b _081D15B6 -_081D15B0: - movs r0, 0x3 - b _081D15B6 -_081D15B4: - movs r0, 0x4 -_081D15B6: - pop {r1} - bx r1 - thumb_func_end sub_81D1574 - - thumb_func_start sub_81D15BC -sub_81D15BC: @ 81D15BC - ldr r1, =gUnknown_085500A4 - lsls r0, 4 - adds r0, r1 - ldrh r0, [r0] - bx lr - .pool - thumb_func_end sub_81D15BC - - thumb_func_start sub_81D15CC -sub_81D15CC: @ 81D15CC - push {lr} - adds r3, r0, 0 - movs r1, 0 - ldr r2, =gUnknown_085500A4 -_081D15D4: - ldrh r0, [r2] - cmp r0, r3 - bne _081D15E4 - adds r0, r1, 0 - b _081D15F0 - .pool -_081D15E4: - adds r2, 0x10 - adds r1, 0x1 - cmp r1, 0x4D - ble _081D15D4 - movs r0, 0x1 - negs r0, r0 -_081D15F0: - pop {r1} - bx r1 - thumb_func_end sub_81D15CC - - thumb_func_start sub_81D15F4 -sub_81D15F4: @ 81D15F4 - push {r4,lr} - cmp r0, 0x14 - bhi _081D1620 - ldr r1, =gUnknown_086252A8 - lsls r0, 2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_81D1574 - ldr r1, =gUnknown_086252FC - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - b _081D1622 - .pool -_081D1620: - movs r0, 0 -_081D1622: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81D15F4 - - thumb_func_start sub_81D1628 -sub_81D1628: @ 81D1628 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x2] - ldr r0, =0x0000ffff - cmp r1, r0 - beq _081D1644 - adds r0, r1, 0 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - b _081D1646 - .pool -_081D1644: - movs r0, 0x1 -_081D1646: - pop {r1} - bx r1 - thumb_func_end sub_81D1628 - - thumb_func_start sub_81D164C -sub_81D164C: @ 81D164C - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x2] - ldr r0, =0x0000ffff - cmp r1, r0 - beq _081D1668 - adds r0, r1, 0 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - b _081D166A - .pool -_081D1668: - movs r0, 0x1 -_081D166A: - pop {r1} - bx r1 - thumb_func_end sub_81D164C - - thumb_func_start sub_81D1670 -sub_81D1670: @ 81D1670 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x2] - ldr r0, =0x0000ffff - cmp r1, r0 - beq _081D168C - adds r0, r1, 0 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - b _081D168E - .pool -_081D168C: - movs r0, 0x1 -_081D168E: - pop {r1} - bx r1 - thumb_func_end sub_81D1670 - - thumb_func_start sub_81D1694 -sub_81D1694: @ 81D1694 - push {lr} - adds r2, r0, 0 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldrb r0, [r2, 0x1] - ldrb r1, [r1, 0x8] - cmp r0, r1 - beq _081D16AC - movs r0, 0 - b _081D16C6 - .pool -_081D16AC: - ldrh r1, [r2, 0x2] - ldr r0, =0x0000ffff - cmp r1, r0 - beq _081D16C4 - adds r0, r1, 0 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - b _081D16C6 - .pool -_081D16C4: - movs r0, 0x1 -_081D16C6: - pop {r1} - bx r1 - thumb_func_end sub_81D1694 - - thumb_func_start sub_81D16CC -sub_81D16CC: @ 81D16CC - push {lr} - ldrh r0, [r0, 0x2] - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_81D16CC - - thumb_func_start sub_81D16DC -sub_81D16DC: @ 81D16DC - push {r4,lr} - cmp r0, 0x14 - bhi _081D170C - ldr r1, =gUnknown_086252A8 - lsls r0, 2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_81D1574 - ldr r1, =gUnknown_08625310 - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - lsrs r0, 24 - b _081D170E - .pool -_081D170C: - movs r0, 0 -_081D170E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81D16DC - - thumb_func_start sub_81D1714 -sub_81D1714: @ 81D1714 - ldrb r0, [r0, 0x1] - bx lr - thumb_func_end sub_81D1714 - - thumb_func_start sub_81D1718 -sub_81D1718: @ 81D1718 - ldrb r0, [r0, 0x1] - bx lr - thumb_func_end sub_81D1718 - - thumb_func_start sub_81D171C -sub_81D171C: @ 81D171C - push {r4-r7,lr} - adds r5, r0, 0 - movs r6, 0 - ldr r7, =0x0000ffff - b _081D172E - .pool -_081D172C: - adds r6, 0x1 -_081D172E: - ldr r0, [r5, 0x10] - lsls r4, r6, 2 - adds r1, r4, r0 - ldrh r0, [r1] - cmp r0, r7 - beq _081D1744 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _081D172C -_081D1744: - ldr r0, [r5, 0x10] - adds r0, r4, r0 - ldrb r0, [r0, 0x2] - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81D171C - - thumb_func_start sub_81D1750 -sub_81D1750: @ 81D1750 - movs r0, 0xD5 - bx lr - thumb_func_end sub_81D1750 - - thumb_func_start sub_81D1754 -sub_81D1754: @ 81D1754 - movs r0, 0xD5 - bx lr - thumb_func_end sub_81D1754 - - thumb_func_start sub_81D1758 -sub_81D1758: @ 81D1758 - push {r4,lr} - cmp r0, 0x14 - bhi _081D1784 - ldr r1, =gUnknown_086252A8 - lsls r0, 2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_81D1574 - ldr r1, =gUnknown_08625324 - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - b _081D1786 - .pool -_081D1784: - movs r0, 0 -_081D1786: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81D1758 - - thumb_func_start sub_81D178C -sub_81D178C: @ 81D178C - movs r0, 0 - bx lr - thumb_func_end sub_81D178C - - thumb_func_start sub_81D1790 -sub_81D1790: @ 81D1790 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x4] - cmp r0, 0x48 - bhi _081D17B8 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x000009ca - adds r0, r2 - ldrh r1, [r1, 0x4] - adds r0, r1 - ldrb r1, [r0] - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - b _081D17BA - .pool -_081D17B8: - movs r0, 0 -_081D17BA: - pop {r1} - bx r1 - thumb_func_end sub_81D1790 - - thumb_func_start sub_81D17C0 -sub_81D17C0: @ 81D17C0 - ldr r1, =gSaveBlock1Ptr - ldr r1, [r1] - ldr r2, =0x000009ca - adds r1, r2 - ldrh r0, [r0, 0x4] - adds r1, r0 - ldrb r1, [r1] - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - bx lr - .pool - thumb_func_end sub_81D17C0 - - thumb_func_start sub_81D17E0 -sub_81D17E0: @ 81D17E0 - movs r0, 0 - bx lr - thumb_func_end sub_81D17E0 - - thumb_func_start sub_81D17E4 -sub_81D17E4: @ 81D17E4 - movs r0, 0 - bx lr - thumb_func_end sub_81D17E4 - - thumb_func_start sub_81D17E8 -sub_81D17E8: @ 81D17E8 - push {r4,r5,lr} - adds r5, r0, 0 - cmp r5, 0x14 - bhi _081D1832 - ldr r1, =gUnknown_086252A8 - lsls r0, r5, 2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_81D1574 - adds r2, r0, 0 - ldr r1, =gUnknown_08625338 - lsls r0, r2, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - cmp r0, 0 - beq _081D1820 -_081D1812: - movs r0, 0x1 - b _081D1834 - .pool -_081D1820: - movs r2, 0 - ldr r1, =gUnknown_08625388 -_081D1824: - ldrh r0, [r1] - cmp r0, r5 - beq _081D1812 - adds r1, 0x18 - adds r2, 0x1 - cmp r2, 0x3 - bls _081D1824 -_081D1832: - movs r0, 0 -_081D1834: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D17E8 - - thumb_func_start sub_81D1840 -sub_81D1840: @ 81D1840 - movs r0, 0 - bx lr - thumb_func_end sub_81D1840 - - thumb_func_start sub_81D1844 -sub_81D1844: @ 81D1844 - movs r0, 0x1 - bx lr - thumb_func_end sub_81D1844 - - thumb_func_start sub_81D1848 -sub_81D1848: @ 81D1848 - movs r0, 0x1 - bx lr - thumb_func_end sub_81D1848 - - thumb_func_start sub_81D184C -sub_81D184C: @ 81D184C - movs r0, 0 - bx lr - thumb_func_end sub_81D184C - - thumb_func_start sub_81D1850 -sub_81D1850: @ 81D1850 - movs r0, 0 - bx lr - thumb_func_end sub_81D1850 - - thumb_func_start sub_81D1854 -sub_81D1854: @ 81D1854 - push {r4,lr} - cmp r0, 0x14 - bhi _081D1880 - ldr r1, =gUnknown_086252A8 - lsls r0, 2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_81D1574 - ldr r1, =gUnknown_0862534C - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - b _081D1882 - .pool -_081D1880: - movs r0, 0x4E -_081D1882: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81D1854 - - thumb_func_start sub_81D1888 -sub_81D1888: @ 81D1888 - movs r0, 0x4E - bx lr - thumb_func_end sub_81D1888 - - thumb_func_start sub_81D188C -sub_81D188C: @ 81D188C - ldrh r0, [r0, 0x4] - bx lr - thumb_func_end sub_81D188C - - thumb_func_start sub_81D1890 -sub_81D1890: @ 81D1890 - ldrh r0, [r0, 0x4] - bx lr - thumb_func_end sub_81D1890 - - thumb_func_start sub_81D1894 -sub_81D1894: @ 81D1894 - movs r0, 0x4E - bx lr - thumb_func_end sub_81D1894 - - thumb_func_start sub_81D1898 -sub_81D1898: @ 81D1898 - movs r0, 0x4E - bx lr - thumb_func_end sub_81D1898 - - thumb_func_start sub_81D189C -sub_81D189C: @ 81D189C - push {r4,r5,lr} - adds r5, r1, 0 - cmp r0, 0x14 - bhi _081D18C2 - ldr r1, =gUnknown_086252A8 - lsls r0, 2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_81D1574 - ldr r1, =gUnknown_08625360 - lsls r0, 2 - adds r0, r1 - ldr r2, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl _call_via_r2 -_081D18C2: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D189C - - thumb_func_start sub_81D18D0 -sub_81D18D0: @ 81D18D0 - push {lr} - ldr r0, [r0, 0xC] - bl sub_81D1920 - pop {r0} - bx r0 - thumb_func_end sub_81D18D0 - - thumb_func_start sub_81D18DC -sub_81D18DC: @ 81D18DC - push {lr} - adds r3, r0, 0 - adds r2, r1, 0 - ldrb r0, [r3] - cmp r0, 0x5 - beq _081D18F0 - ldr r0, [r3, 0x10] - bl sub_81D1920 - b _081D18F8 -_081D18F0: - ldr r0, [r3, 0x10] - ldrh r1, [r3, 0x4] - bl sub_81D199C -_081D18F8: - pop {r0} - bx r0 - thumb_func_end sub_81D18DC - - thumb_func_start sub_81D18FC -sub_81D18FC: @ 81D18FC - push {lr} - ldr r0, [r0, 0xC] - bl sub_81D1920 - pop {r0} - bx r0 - thumb_func_end sub_81D18FC - - thumb_func_start sub_81D1908 -sub_81D1908: @ 81D1908 - push {lr} - ldr r0, [r0, 0xC] - bl sub_81D1920 - pop {r0} - bx r0 - thumb_func_end sub_81D1908 - - thumb_func_start sub_81D1914 -sub_81D1914: @ 81D1914 - push {lr} - adds r0, r1, 0 - bl sub_8197080 - pop {r0} - bx r0 - thumb_func_end sub_81D1914 - - thumb_func_start sub_81D1920 -sub_81D1920: @ 81D1920 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r6, r0, 0 - mov r9, r1 - movs r5, 0 - ldr r0, [r6] - cmp r0, 0 - beq _081D1940 - adds r1, r6, 0 -_081D1936: - adds r1, 0x8 - adds r5, 0x1 - ldr r0, [r1] - cmp r0, 0 - bne _081D1936 -_081D1940: - cmp r5, 0 - beq _081D1946 - subs r5, 0x1 -_081D1946: - ldr r0, =0x0000ffff - mov r8, r0 - lsls r0, r5, 3 - adds r0, 0x4 - adds r4, r0, r6 - b _081D195C - .pool -_081D1958: - subs r4, 0x8 - subs r5, 0x1 -_081D195C: - lsls r7, r5, 3 - cmp r5, 0 - beq _081D1974 - ldrh r0, [r4] - cmp r0, r8 - beq _081D1958 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081D1958 -_081D1974: - adds r4, r7, r6 - ldrh r1, [r4, 0x6] - ldr r0, =0x0000ffff - cmp r1, r0 - beq _081D1984 - adds r0, r1, 0 - bl FlagSet -_081D1984: - ldr r1, [r4] - mov r0, r9 - bl StringExpandPlaceholders - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D1920 - - thumb_func_start sub_81D199C -sub_81D199C: @ 81D199C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r6, r0, 0 - mov r10, r2 - lsls r1, 16 - lsrs r7, r1, 16 - movs r5, 0 - ldr r0, [r6] - cmp r0, 0 - beq _081D19E6 - ldrh r0, [r6, 0x4] - ldr r1, =0x0000fffe - cmp r0, r1 - beq _081D1A24 - ldr r0, =0x0000ffff - mov r9, r0 - mov r8, r1 - adds r4, r6, 0 -_081D19C6: - ldrh r0, [r4, 0x4] - cmp r0, r9 - beq _081D19D6 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _081D19E6 -_081D19D6: - adds r4, 0x8 - adds r5, 0x1 - ldr r0, [r4] - cmp r0, 0 - beq _081D19E6 - ldrh r0, [r4, 0x4] - cmp r0, r8 - bne _081D19C6 -_081D19E6: - lsls r0, r5, 3 - adds r0, r6 - ldrh r1, [r0, 0x4] - ldr r0, =0x0000fffe - cmp r1, r0 - beq _081D1A24 - cmp r5, 0 - beq _081D19F8 - subs r5, 0x1 -_081D19F8: - lsls r0, r5, 3 - adds r4, r0, r6 - ldrh r1, [r4, 0x6] - ldr r0, =0x0000ffff - cmp r1, r0 - beq _081D1A0A - adds r0, r1, 0 - bl FlagSet -_081D1A0A: - ldr r1, [r4] - mov r0, r10 - bl StringExpandPlaceholders - b _081D1A5C - .pool -_081D1A1C: - adds r5, 0x2 - b _081D1A50 -_081D1A20: - adds r5, 0x3 - b _081D1A50 -_081D1A24: - ldr r0, =0x00000864 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _081D1A50 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x000009ca - adds r0, r1 - adds r0, r7 - ldrb r0, [r0] - cmp r0, 0 - bne _081D1A1C - adds r0, r7, 0 - bl sub_80B2318 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _081D1A20 - adds r5, 0x1 -_081D1A50: - lsls r0, r5, 3 - adds r0, r6 - ldr r1, [r0] - mov r0, r10 - bl StringExpandPlaceholders -_081D1A5C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D199C - - thumb_func_start sub_81D1A78 -sub_81D1A78: @ 81D1A78 - push {r4-r6,lr} - adds r5, r1, 0 - adds r6, r2, 0 - cmp r0, 0x14 - bhi _081D1AA2 - ldr r1, =gUnknown_086252A8 - lsls r0, 2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_81D1574 - ldr r1, =gUnknown_08625374 - lsls r0, 2 - adds r0, r1 - ldr r3, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl _call_via_r3 -_081D1AA2: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D1A78 - - thumb_func_start sub_81D1AB0 -sub_81D1AB0: @ 81D1AB0 - ldr r3, [r0, 0x4] - str r3, [r1] - ldr r0, [r0, 0x8] - str r0, [r2] - bx lr - thumb_func_end sub_81D1AB0 - - thumb_func_start sub_81D1ABC -sub_81D1ABC: @ 81D1ABC - push {r4,r5,lr} - adds r5, r1, 0 - adds r4, r0, 0 - ldr r0, [r4, 0xC] - cmp r0, 0 - bne _081D1AD0 - ldrh r0, [r4, 0x4] - bl sub_81D1B0C - b _081D1AD2 -_081D1AD0: - str r0, [r2] -_081D1AD2: - ldr r0, [r4, 0x8] - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81D1ABC - - thumb_func_start sub_81D1ADC -sub_81D1ADC: @ 81D1ADC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrh r0, [r4, 0x4] - bl sub_81D1B0C - ldr r0, [r4, 0x8] - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81D1ADC - - thumb_func_start sub_81D1AF4 -sub_81D1AF4: @ 81D1AF4 - ldr r3, [r0, 0x4] - str r3, [r1] - ldr r0, [r0, 0x8] - str r0, [r2] - bx lr - thumb_func_end sub_81D1AF4 - - thumb_func_start sub_81D1B00 -sub_81D1B00: @ 81D1B00 - ldr r3, [r0, 0x4] - str r3, [r1] - ldr r0, [r0, 0x8] - str r0, [r2] - bx lr - thumb_func_end sub_81D1B00 - - thumb_func_start sub_81D1B0C -sub_81D1B0C: @ 81D1B0C - push {r4,r5,lr} - adds r4, r1, 0 - adds r5, r2, 0 - bl sub_81D15BC - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTrainers - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0xD - muls r0, r2 - ldr r2, =gTrainerClassNames - adds r0, r2 - str r0, [r4] - adds r1, 0x4 - str r1, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D1B0C - - thumb_func_start sub_81D1B40 -sub_81D1B40: @ 81D1B40 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r6, r0, 0 - movs r5, 0 - ldr r2, =gUnknown_08625388 - movs r0, 0x8 - adds r0, r2 - mov r9, r0 -_081D1B54: - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0] - cmp r0, r6 - bne _081D1BBC - adds r4, r5, 0x1 - lsls r1, 2 - mov r8, r1 - cmp r4, 0x3 - bhi _081D1BA8 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0] - cmp r0, r6 - bne _081D1BA8 - ldr r7, =gUnknown_08625388 -_081D1B7C: - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - adds r1, r7, 0x4 - adds r0, r1 - ldrh r0, [r0] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _081D1BA8 - adds r5, r4, 0 - adds r4, r5, 0x1 - cmp r4, 0x3 - bhi _081D1BA8 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - adds r0, r7 - ldrh r0, [r0] - cmp r0, r6 - beq _081D1B7C -_081D1BA8: - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 3 - add r0, r8 - add r0, r9 - ldr r0, [r0] - b _081D1BC4 - .pool -_081D1BBC: - adds r5, 0x1 - cmp r5, 0x3 - bls _081D1B54 - movs r0, 0 -_081D1BC4: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81D1B40 - - thumb_func_start sub_81D1BD0 -sub_81D1BD0: @ 81D1BD0 - push {lr} - adds r3, r0, 0 - movs r2, 0 - ldr r1, =gUnknown_08625388 -_081D1BD8: - ldrh r0, [r1] - cmp r0, r3 - bne _081D1BE8 - ldrh r0, [r1, 0x2] - b _081D1BF4 - .pool -_081D1BE8: - adds r1, 0x18 - adds r2, 0x1 - cmp r2, 0x3 - bls _081D1BD8 - movs r0, 0x1 - negs r0, r0 -_081D1BF4: - pop {r1} - bx r1 - thumb_func_end sub_81D1BD0 - - thumb_func_start sub_81D1BF8 -sub_81D1BF8: @ 81D1BF8 - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0 -_081D1BFE: - adds r0, r4, 0 - bl sub_81D1854 - cmp r0, 0x4E - beq _081D1C10 - cmp r0, r5 - bne _081D1C10 - movs r0, 0x1 - b _081D1C18 -_081D1C10: - adds r4, 0x1 - cmp r4, 0x14 - ble _081D1BFE - movs r0, 0 -_081D1C18: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D1BF8 - - thumb_func_start sub_81D1C20 -sub_81D1C20: @ 81D1C20 - push {lr} - ldr r0, =gUnknown_020375E0 - ldrh r0, [r0] - bl sub_81D15CC - cmp r0, 0 - blt _081D1C3C - movs r1, 0xAE - lsls r1, 1 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl FlagSet -_081D1C3C: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D1C20 - - thumb_func_start sub_81D1C44 -sub_81D1C44: @ 81D1C44 - push {r4,lr} - lsls r0, 24 - ldr r4, =gUnknown_0203CF4C - lsrs r0, 21 - adds r0, 0x8 - bl Alloc - str r0, [r4] - cmp r0, 0 - bne _081D1C60 - movs r0, 0 - b _081D1C7A - .pool -_081D1C60: - movs r2, 0 - ldr r4, =gUnknown_0203CF48 - movs r3, 0xFF -_081D1C66: - adds r0, r2, r4 - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bls _081D1C66 - movs r0, 0x1 -_081D1C7A: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D1C44 - - thumb_func_start sub_81D1C84 -sub_81D1C84: @ 81D1C84 - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r6, =gUnknown_0203CF48 - adds r5, r4, r6 - ldrb r0, [r5] - cmp r0, 0xFF - bne _081D1CEC - cmp r4, 0x2 - bne _081D1CD4 - ldr r0, =gUnknown_086253E8 - ldr r1, [r0, 0x14] - ldr r0, [r0, 0x10] - str r0, [sp] - str r1, [sp, 0x4] - ldr r0, =gUnknown_085DFF04 - movs r1, 0x4 - bl GetMaxWidthInMenuTable - lsls r0, 24 - ldr r2, =0x00ffffff - ldr r1, [sp] - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - bl AddWindow - strb r0, [r6, 0x2] - b _081D1CE0 - .pool -_081D1CD4: - lsls r0, r4, 3 - ldr r1, =gUnknown_086253E8 - adds r0, r1 - bl AddWindow - strb r0, [r5] -_081D1CE0: - ldr r0, =gUnknown_0203CF48 - adds r0, r4, r0 - ldrb r0, [r0] - movs r1, 0 - bl SetStandardWindowBorderStyle -_081D1CEC: - ldr r0, =gUnknown_0203CF48 - adds r0, r4, r0 - ldrb r0, [r0] - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D1C84 - - thumb_func_start sub_81D1D04 -sub_81D1D04: @ 81D1D04 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_0203CF48 - adds r4, r0 - ldrb r0, [r4] - movs r1, 0 - bl sub_8198070 - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - bl RemoveWindow - movs r0, 0xFF - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D1D04 - - thumb_func_start sub_81D1D34 -sub_81D1D34: @ 81D1D34 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0203CF48 - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_81D1D34 - - thumb_func_start sub_81D1D44 -sub_81D1D44: @ 81D1D44 - push {r4,r5,lr} - sub sp, 0x34 - adds r3, r1, 0 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r2, 24 - lsrs r5, r2, 24 - movs r0, 0x2 - negs r0, r0 - cmp r3, r0 - beq _081D1DAC - ldr r0, =gSaveBlock1Ptr - lsls r1, r3, 3 - adds r1, r3 - lsls r1, 2 - ldr r0, [r0] - adds r1, r0 - ldr r0, =0x00002cca - adds r1, r0 - add r0, sp, 0x14 - bl StringCopy - add r0, sp, 0x14 - bl sub_81DB52C - add r0, sp, 0x14 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x5 - bhi _081D1D8C - add r0, sp, 0x14 - movs r1, 0x1 - bl ConvertInternationalString -_081D1D8C: - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - ldr r0, =gUnknown_08625400 - str r0, [sp, 0x8] - movs r0, 0x1 - negs r0, r0 - str r0, [sp, 0xC] - add r0, sp, 0x14 - str r0, [sp, 0x10] - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0x8 - adds r3, r5, 0 - bl AddTextPrinterParametrized2 -_081D1DAC: - add sp, 0x34 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D1D44 - - thumb_func_start sub_81D1DC0 -sub_81D1DC0: @ 81D1DC0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r5, r0, 0 - movs r3, 0 - ldr r7, =gUnknown_0203CF4C - ldr r0, =gUnknown_085E8CF7 - mov r12, r0 - ldr r4, =gUnknown_03006310 - ldr r1, =gUnknown_0203CF48 - mov r8, r1 - ldr r2, =sub_81D1E7C - mov r9, r2 - ldr r0, =sub_81D1D44 - mov r10, r0 - ldrb r1, [r5, 0x5] - cmp r3, r1 - bcs _081D1E02 - adds r6, r7, 0 - ldr r2, =gUnknown_08625403 -_081D1DEC: - ldr r1, [r6] - lsls r0, r3, 3 - adds r0, r1 - str r2, [r0] - str r3, [r0, 0x4] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - ldrb r0, [r5, 0x5] - cmp r3, r0 - bcc _081D1DEC -_081D1E02: - ldr r2, [r7] - lsls r0, r3, 3 - adds r0, r2 - mov r1, r12 - str r1, [r0] - movs r1, 0x2 - negs r1, r1 - str r1, [r0, 0x4] - str r2, [r4] - ldrb r0, [r5, 0x5] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0xC] - mov r2, r8 - ldrb r0, [r2, 0x1] - strb r0, [r4, 0x10] - strb r1, [r4, 0x11] - movs r0, 0x8 - strb r0, [r4, 0x12] - strb r1, [r4, 0x13] - strh r0, [r4, 0xE] - movs r0, 0x29 - strb r0, [r4, 0x14] - movs r0, 0x31 - strb r0, [r4, 0x15] - mov r0, r9 - str r0, [r4, 0x4] - mov r1, r10 - str r1, [r4, 0x8] - movs r0, 0x1 - strb r0, [r4, 0x17] - movs r0, 0 - strb r0, [r4, 0x16] - ldrh r1, [r5, 0x2] - ldrh r2, [r5] - adds r0, r4, 0 - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D1DC0 - - thumb_func_start sub_81D1E7C -sub_81D1E7C: @ 81D1E7C - push {lr} - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x1 - beq _081D1E8C - movs r0, 0x5 - bl audio_play -_081D1E8C: - pop {r0} - bx r0 - thumb_func_end sub_81D1E7C - - thumb_func_start sub_81D1E90 -sub_81D1E90: @ 81D1E90 - push {r4,lr} - sub sp, 0x10 - adds r4, r0, 0 - ldrb r0, [r4, 0x5] - ldrb r1, [r4, 0x4] - subs r0, r1 - adds r0, 0x1 - str r0, [sp] - movs r0, 0x6E - str r0, [sp, 0x4] - str r0, [sp, 0x8] - adds r0, r4, 0x2 - str r0, [sp, 0xC] - movs r0, 0x2 - movs r1, 0xC8 - movs r2, 0xC - movs r3, 0x94 - bl AddScrollIndicatorArrowPairParametrized - strb r0, [r4, 0x9] - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81D1E90 - - thumb_func_start sub_81D1EC0 -sub_81D1EC0: @ 81D1EC0 - push {lr} - ldr r0, =gUnknown_0203CF4C - ldr r0, [r0] - bl Free - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D1EC0 - - thumb_func_start sub_81D1ED4 -sub_81D1ED4: @ 81D1ED4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r3, r0, 0 - movs r6, 0 - movs r7, 0 -_081D1EE6: - movs r2, 0 - lsls r5, r6, 2 - adds r0, r6, 0x1 - mov r10, r0 - adds r4, r5, 0 -_081D1EF0: - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 2 - adds r0, r4, r0 - adds r0, r3, r0 - adds r1, r0, 0 - adds r1, 0x64 - strh r7, [r1] - adds r0, 0x66 - strh r7, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x9 - bls _081D1EF0 - movs r2, 0 - mov r9, r2 - str r5, [sp] - movs r1, 0x9B - mov r8, r1 - movs r4, 0x5B - mov r12, r4 -_081D1F1C: - lsls r0, r2, 2 - adds r0, r2 - adds r1, r6, r0 - adds r1, r3, r1 - mov r4, r9 - strb r4, [r1] - lsls r0, 2 - ldr r1, [sp] - adds r0, r1, r0 - adds r0, r3, r0 - mov r4, r8 - strh r4, [r0, 0x14] - mov r1, r12 - strh r1, [r0, 0x16] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _081D1F1C - adds r1, r3, r5 - movs r2, 0x96 - lsls r2, 1 - adds r0, r1, r2 - strh r7, [r0] - movs r4, 0x97 - lsls r4, 1 - adds r0, r1, r4 - strh r7, [r0] - mov r1, r10 - lsls r0, r1, 24 - lsrs r6, r0, 24 - cmp r6, 0x4 - bls _081D1EE6 - movs r2, 0xD5 - lsls r2, 2 - adds r0, r3, r2 - movs r1, 0 - strb r1, [r0] - ldr r4, =0x00000352 - adds r0, r3, r4 - strh r1, [r0] - 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_81D1ED4 - - thumb_func_start sub_81D1F84 -sub_81D1F84: @ 81D1F84 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - mov r8, r0 - str r1, [sp] - mov r9, r2 - movs r7, 0 -_081D1F98: - lsls r4, r7, 2 - ldr r1, [sp] - adds r0, r4, r1 - ldrh r1, [r0] - lsls r5, r1, 8 - mov r2, r9 - adds r0, r4, r2 - ldrh r0, [r0] - subs r0, r1 - lsls r0, 8 - movs r1, 0xA - bl __divsi3 - adds r6, r0, 0 - movs r3, 0 - adds r7, 0x1 - mov r10, r7 - mov r12, r4 -_081D1FBC: - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 2 - add r0, r12 - add r0, r8 - asrs r2, r5, 8 - asrs r1, r5, 7 - movs r7, 0x1 - ands r1, r7 - adds r2, r1 - adds r0, 0x64 - strh r2, [r0] - adds r5, r6 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x8 - bls _081D1FBC - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 2 - adds r0, r4, r0 - add r0, r8 - mov r1, r9 - adds r2, r4, r1 - ldrh r1, [r2] - adds r0, 0x64 - strh r1, [r0] - ldr r7, [sp] - adds r0, r4, r7 - ldrh r1, [r0, 0x2] - lsls r5, r1, 8 - ldrh r0, [r2, 0x2] - subs r0, r1 - lsls r0, 8 - movs r1, 0xA - bl __divsi3 - adds r6, r0, 0 - movs r3, 0 - str r4, [sp, 0x4] - movs r0, 0x1 - mov r12, r0 -_081D2012: - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 2 - ldr r1, [sp, 0x4] - adds r0, r1, r0 - add r0, r8 - asrs r2, r5, 8 - asrs r1, r5, 7 - mov r7, r12 - ands r1, r7 - adds r2, r1 - adds r0, 0x66 - strh r2, [r0] - adds r5, r6 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x8 - bls _081D2012 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 2 - adds r0, r4, r0 - add r0, r8 - mov r2, r9 - adds r1, r4, r2 - ldrh r1, [r1, 0x2] - adds r0, 0x66 - strh r1, [r0] - mov r7, r10 - lsls r0, r7, 16 - lsrs r7, r0, 16 - cmp r7, 0x4 - bls _081D1F98 - ldr r1, =0x00000352 - add r1, r8 - movs r0, 0 - strh r0, [r1] - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D1F84 - - thumb_func_start sub_81D2074 -sub_81D2074: @ 81D2074 - push {r4,lr} - adds r1, r0, 0 - ldr r0, =0x00000352 - adds r4, r1, r0 - ldrh r0, [r4] - cmp r0, 0x9 - bls _081D208C - movs r0, 0 - b _081D20A6 - .pool -_081D208C: - adds r0, r1, 0 - bl sub_81D2230 - ldrh r1, [r4] - adds r1, 0x1 - strh r1, [r4] - lsls r1, 16 - lsrs r1, 16 - movs r0, 0xA - eors r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 -_081D20A6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81D2074 - - thumb_func_start sub_81D20AC -sub_81D20AC: @ 81D20AC - ldr r1, =0x00000355 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - bx lr - .pool - thumb_func_end sub_81D20AC - - thumb_func_start sub_81D20BC -sub_81D20BC: @ 81D20BC - push {r4,r5,lr} - sub sp, 0xC - ldr r1, =0x00000355 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0 - beq _081D20D4 - cmp r0, 0x1 - beq _081D20E2 - b _081D20FA - .pool -_081D20D4: - bl dp12_8087EA4 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - movs r0, 0x1 - b _081D20FC -_081D20E2: - mov r0, sp - ldr r1, =gUnknown_08625404 - ldm r1!, {r2,r3,r5} - stm r0!, {r2,r3,r5} - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_80BA038 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] -_081D20FA: - movs r0, 0 -_081D20FC: - add sp, 0xC - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D20BC - - thumb_func_start sub_81D2108 -sub_81D2108: @ 81D2108 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - adds r6, r0, 0 - movs r1, 0xD5 - lsls r1, 2 - adds r0, r6, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _081D21BE - adds r0, r6, 0 - bl sub_81D24A4 - adds r0, r6, 0 - bl sub_81D2634 - movs r7, 0 - ldr r5, =gUnknown_02038C28 - mov r12, r5 - movs r0, 0xF0 - lsls r0, 3 - add r0, r12 - mov r9, r0 - movs r1, 0xA0 - lsls r1, 1 - adds r1, r6, r1 - str r1, [sp] - ldr r5, =0x0000ffff - mov r8, r5 - movs r0, 0xA1 - lsls r0, 1 - adds r0, r6, r0 - str r0, [sp, 0x4] - movs r1, 0x92 - lsls r1, 2 - adds r1, r6, r1 - str r1, [sp, 0x8] - ldr r5, =0x0000024a - adds r5, r6 - mov r10, r5 -_081D215E: - adds r2, r7, 0 - adds r2, 0x37 - lsls r3, r2, 2 - mov r0, r9 - adds r0, r3, r0 - str r0, [sp, 0xC] - add r3, r12 - lsls r4, r7, 2 - ldr r1, [sp] - adds r0, r1, r4 - ldrh r0, [r0] - lsls r0, 8 - ldr r5, [sp, 0x4] - adds r1, r5, r4 - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r3] - mov r1, r8 - ands r0, r1 - ldr r5, [sp, 0xC] - strh r0, [r5] - lsls r2, 1 - adds r2, 0x1 - lsls r2, 1 - mov r0, r9 - adds r3, r2, r0 - add r2, r12 - ldr r1, [sp, 0x8] - adds r0, r1, r4 - ldrh r0, [r0] - lsls r0, 8 - add r4, r10 - ldrh r1, [r4] - orrs r0, r1 - strh r0, [r2] - mov r5, r8 - ands r0, r5 - strh r0, [r3] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, 0x41 - bls _081D215E - movs r0, 0xD5 - lsls r0, 2 - adds r1, r6, r0 - movs r0, 0 - strb r0, [r1] -_081D21BE: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D2108 - - thumb_func_start sub_81D21DC -sub_81D21DC: @ 81D21DC - push {r4,r5,lr} - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bls _081D21E8 - movs r1, 0 -_081D21E8: - movs r0, 0x1 - lsls r0, r1 - movs r5, 0x1F - bics r5, r0 - movs r0, 0x40 - movs r1, 0xF0 - bl SetGpuReg - movs r0, 0x42 - movs r1, 0x9B - bl SetGpuReg - ldr r4, =0x00003879 - movs r0, 0x44 - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x46 - adds r1, r4, 0 - bl SetGpuReg - ldr r1, =0x00003f3f - movs r0, 0x48 - bl SetGpuReg - movs r0, 0x4A - adds r1, r5, 0 - bl SetGpuReg - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D21DC - - thumb_func_start sub_81D2230 -sub_81D2230: @ 81D2230 - push {r4-r7,lr} - mov r12, r0 - movs r4, 0 - movs r7, 0x96 - lsls r7, 1 - add r7, r12 - ldr r6, =0x00000352 - add r6, r12 - mov r5, r12 - adds r5, 0x64 -_081D2244: - lsls r2, r4, 2 - adds r3, r7, r2 - ldrh r1, [r6] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - adds r2, r5, r2 - ldr r0, [r2] - str r0, [r3] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x4 - bls _081D2244 - movs r1, 0xD5 - lsls r1, 2 - add r1, r12 - movs r0, 0x1 - strb r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D2230 - - thumb_func_start sub_81D2278 -sub_81D2278: @ 81D2278 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - str r0, [sp] - adds r6, r1, 0 - adds r5, r2, 0 - str r3, [sp, 0x4] - ldr r0, [sp, 0x38] - ldr r7, [sp, 0x3C] - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r0, 0 - str r0, [sp, 0xC] - ldrh r0, [r5, 0x2] - ldrh r1, [r3, 0x2] - cmp r0, r1 - bcs _081D22B2 - adds r2, r0, 0 - mov r10, r2 - ldrh r0, [r3, 0x2] - ldrh r1, [r5] - lsls r4, r1, 10 - ldrh r3, [r3] - str r3, [sp, 0x8] - b _081D22C6 -_081D22B2: - ldrh r0, [r5, 0x2] - ldr r1, [sp, 0x4] - ldrh r1, [r1, 0x2] - mov r10, r1 - ldr r2, [sp, 0x4] - ldrh r1, [r2] - lsls r4, r1, 10 - ldrh r3, [r5] - str r3, [sp, 0x8] - mov r2, r10 -_081D22C6: - subs r0, r2 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r0, 0 - beq _081D22DE - subs r0, r3, r1 - lsls r0, 10 - mov r1, r8 - bl __divsi3 - str r0, [sp, 0xC] -_081D22DE: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r7, 0 - bne _081D2328 - mov r0, r10 - subs r0, 0x38 - lsls r0, 2 - adds r6, r0 - movs r5, 0 - mov r3, r9 - lsls r3, 1 - mov r12, r3 - ldr r0, [sp, 0x8] - add r0, r9 - str r0, [sp, 0x10] - cmp r7, r8 - bcs _081D23B6 - movs r7, 0x1 -_081D2308: - adds r2, r3, r6 - asrs r1, r4, 10 - asrs r0, r4, 9 - ands r0, r7 - adds r1, r0 - add r1, r9 - strh r1, [r2] - ldr r1, [sp, 0xC] - adds r4, r1 - adds r6, 0x4 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bcc _081D2308 - b _081D23B6 -_081D2328: - ldr r2, [sp, 0xC] - cmp r2, 0 - ble _081D23C0 - mov r0, r10 - subs r0, 0x38 - lsls r0, 2 - adds r7, r0 - movs r5, 0 - mov r3, r9 - lsls r3, 1 - mov r12, r3 - ldr r0, [sp, 0x8] - add r0, r9 - str r0, [sp, 0x10] - cmp r5, r8 - bcs _081D237A - ldr r0, =0x00026bff - cmp r4, r0 - bgt _081D237A - mov r1, r12 - str r1, [sp, 0x14] -_081D2352: - ldr r3, [sp, 0x14] - adds r2, r3, r7 - asrs r1, r4, 10 - asrs r0, r4, 9 - movs r3, 0x1 - ands r0, r3 - adds r1, r0 - add r1, r9 - strh r1, [r2] - ldr r0, [sp, 0xC] - adds r4, r0 - adds r7, 0x4 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bcs _081D237A - ldr r1, =0x00026bff - cmp r4, r1 - ble _081D2352 -_081D237A: - mov r2, r10 - adds r1, r2, r5 - ldr r3, [sp] - movs r2, 0xD4 - lsls r2, 2 - adds r0, r3, r2 - strh r1, [r0] - ldrh r0, [r0] - subs r0, 0x38 - lsls r0, 2 - adds r6, r0 - cmp r5, r8 - bcs _081D23B6 - mov r3, r12 - movs r7, 0x1 -_081D2398: - adds r2, r3, r6 - asrs r1, r4, 10 - asrs r0, r4, 9 - ands r0, r7 - adds r1, r0 - add r1, r9 - strh r1, [r2] - ldr r0, [sp, 0xC] - adds r4, r0 - adds r6, 0x4 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bcc _081D2398 -_081D23B6: - subs r0, r6, 0x4 - b _081D248C - .pool -_081D23C0: - ldr r1, [sp, 0xC] - cmp r1, 0 - bge _081D2464 - mov r0, r10 - subs r0, 0x38 - lsls r0, 2 - adds r6, r0 - movs r5, 0 - mov r2, r9 - lsls r2, 1 - mov r12, r2 - ldr r3, [sp, 0x8] - add r3, r9 - str r3, [sp, 0x10] - cmp r5, r8 - bcs _081D241E - adds r3, r2, r6 - asrs r1, r4, 10 - asrs r0, r4, 9 - movs r2, 0x1 - ands r0, r2 - adds r1, r0 - add r1, r9 - strh r1, [r3] - b _081D2414 -_081D23F2: - ldr r0, [sp, 0xC] - adds r4, r0 - adds r6, 0x4 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bcs _081D241E - mov r1, r12 - adds r3, r1, r6 - asrs r2, r4, 10 - asrs r0, r4, 9 - movs r1, 0x1 - ands r0, r1 - adds r2, r0 - add r2, r9 - strh r2, [r3] -_081D2414: - ldr r0, =0x00026bff - cmp r4, r0 - bgt _081D23F2 - movs r0, 0x9B - strh r0, [r3] -_081D241E: - mov r2, r10 - adds r1, r2, r5 - ldr r3, [sp] - movs r2, 0xD4 - lsls r2, 2 - adds r0, r3, r2 - strh r1, [r0] - ldrh r0, [r0] - subs r0, 0x38 - lsls r0, 2 - adds r7, r0 - cmp r5, r8 - bcs _081D245A - mov r3, r12 - movs r6, 0x1 -_081D243C: - adds r2, r3, r7 - asrs r1, r4, 10 - asrs r0, r4, 9 - ands r0, r6 - adds r1, r0 - add r1, r9 - strh r1, [r2] - ldr r0, [sp, 0xC] - adds r4, r0 - adds r7, 0x4 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bcc _081D243C -_081D245A: - subs r0, r7, 0x4 - b _081D248C - .pool -_081D2464: - ldr r1, [sp] - movs r2, 0xD4 - lsls r2, 2 - adds r0, r1, r2 - mov r3, r10 - strh r3, [r0] - mov r0, r10 - subs r0, 0x38 - lsls r0, 2 - adds r6, r0 - adds r7, r0 - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r6, 0x2] - ldr r1, [sp, 0x4] - ldrh r0, [r1] - strh r0, [r7] - movs r0, 0x9B - strh r0, [r7, 0x2] - b _081D2494 -_081D248C: - add r0, r12 - mov r2, sp - ldrh r2, [r2, 0x10] - strh r2, [r0] -_081D2494: - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D2278 - - thumb_func_start sub_81D24A4 -sub_81D24A4: @ 81D24A4 - push {r4-r7,lr} - sub sp, 0x8 - adds r4, r0, 0 - movs r0, 0x97 - lsls r0, 1 - adds r2, r4, r0 - movs r3, 0x99 - lsls r3, 1 - adds r1, r4, r3 - ldrh r0, [r2] - ldrh r3, [r1] - cmp r0, r3 - bcs _081D24E0 - adds r7, r0, 0 - movs r0, 0xA0 - lsls r0, 1 - adds r1, r4, r0 - movs r3, 0x96 - lsls r3, 1 - adds r2, r4, r3 - subs r0, 0x10 - adds r3, r4, r0 - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - adds r0, r4, 0 - bl sub_81D2278 - b _081D2500 -_081D24E0: - ldrh r7, [r1] - movs r2, 0xA0 - lsls r2, 1 - adds r1, r4, r2 - movs r3, 0x98 - lsls r3, 1 - adds r2, r4, r3 - movs r0, 0x96 - lsls r0, 1 - adds r3, r4, r0 - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - adds r0, r4, 0 - bl sub_81D2278 -_081D2500: - movs r1, 0xA0 - lsls r1, 1 - adds r5, r4, r1 - movs r3, 0x98 - lsls r3, 1 - adds r2, r4, r3 - movs r0, 0x9A - lsls r0, 1 - adds r6, r4, r0 - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - adds r0, r4, 0 - adds r1, r5, 0 - adds r3, r6, 0 - bl sub_81D2278 - movs r2, 0 - movs r1, 0x9B - lsls r1, 1 - adds r0, r4, r1 - movs r3, 0x9D - lsls r3, 1 - adds r1, r4, r3 - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - bhi _081D253C - movs r2, 0x1 -_081D253C: - movs r0, 0x9C - lsls r0, 1 - adds r3, r4, r0 - str r2, [sp] - movs r1, 0x92 - lsls r1, 2 - adds r0, r4, r1 - str r0, [sp, 0x4] - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_81D2278 - movs r2, 0x38 - cmp r2, r7 - bcs _081D257E - adds r6, r5, 0 - movs r3, 0 - movs r0, 0xA1 - lsls r0, 1 - adds r5, r4, r0 -_081D2566: - adds r0, r2, 0 - subs r0, 0x38 - lsls r0, 2 - adds r1, r6, r0 - strh r3, [r1] - adds r0, r5, r0 - strh r3, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r7 - bcc _081D2566 -_081D257E: - movs r1, 0x97 - lsls r1, 1 - adds r0, r4, r1 - ldrh r2, [r0] - movs r3, 0xD4 - lsls r3, 2 - adds r0, r4, r3 - ldrh r1, [r0] - cmp r2, r1 - bhi _081D25B2 - movs r1, 0xA0 - lsls r1, 1 - adds r3, r4, r1 - movs r5, 0x9B - adds r1, r0, 0 -_081D259C: - adds r0, r2, 0 - subs r0, 0x38 - lsls r0, 2 - adds r0, r3, r0 - strh r5, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r0, [r1] - cmp r2, r0 - bls _081D259C -_081D25B2: - movs r2, 0x9B - lsls r2, 1 - adds r1, r4, r2 - movs r3, 0xD4 - lsls r3, 2 - adds r0, r4, r3 - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - bcs _081D25C8 - adds r0, r1, 0 -_081D25C8: - adds r0, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x79 - bhi _081D25F8 - movs r0, 0xA0 - lsls r0, 1 - adds r6, r4, r0 - movs r3, 0 - movs r1, 0xA1 - lsls r1, 1 - adds r5, r4, r1 -_081D25E0: - adds r0, r2, 0 - subs r0, 0x38 - lsls r0, 2 - adds r1, r6, r0 - strh r3, [r1] - adds r0, r5, r0 - strh r3, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x79 - bls _081D25E0 -_081D25F8: - movs r2, 0x38 - movs r3, 0xA0 - lsls r3, 1 - adds r5, r4, r3 - movs r0, 0xA1 - lsls r0, 1 - adds r4, r0 - movs r6, 0x9B -_081D2608: - adds r0, r2, 0 - subs r0, 0x38 - lsls r1, r0, 2 - adds r3, r5, r1 - ldrh r0, [r3] - cmp r0, 0 - bne _081D2620 - adds r0, r4, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _081D2620 - strh r6, [r3] -_081D2620: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x79 - bls _081D2608 - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D24A4 - - thumb_func_start sub_81D2634 -sub_81D2634: @ 81D2634 - push {r4-r6,lr} - sub sp, 0x8 - adds r4, r0, 0 - movs r0, 0x97 - lsls r0, 1 - adds r2, r4, r0 - movs r3, 0x9F - lsls r3, 1 - adds r1, r4, r3 - ldrh r0, [r2] - ldrh r5, [r1] - cmp r0, r5 - bcs _081D266E - adds r6, r0, 0 - movs r0, 0x92 - lsls r0, 2 - adds r1, r4, r0 - subs r3, 0x12 - adds r2, r4, r3 - movs r5, 0x9E - lsls r5, 1 - adds r3, r4, r5 - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - adds r0, r4, 0 - bl sub_81D2278 - b _081D2690 -_081D266E: - ldrh r6, [r1] - movs r0, 0x92 - lsls r0, 2 - adds r1, r4, r0 - movs r3, 0x9E - lsls r3, 1 - adds r2, r4, r3 - movs r5, 0x96 - lsls r5, 1 - adds r3, r4, r5 - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - adds r0, r4, 0 - bl sub_81D2278 -_081D2690: - movs r0, 0x92 - lsls r0, 2 - adds r5, r4, r0 - movs r1, 0x9E - lsls r1, 1 - adds r2, r4, r1 - movs r0, 0x9C - lsls r0, 1 - adds r3, r4, r0 - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_81D2278 - cmp r6, 0x38 - ble _081D26C8 - movs r0, 0 - adds r1, r5, 0 - adds r2, r6, 0 - subs r2, 0x38 -_081D26BC: - strh r0, [r1] - strh r0, [r1, 0x2] - adds r1, 0x4 - subs r2, 0x1 - cmp r2, 0 - bne _081D26BC -_081D26C8: - movs r1, 0x97 - lsls r1, 1 - adds r0, r4, r1 - ldrh r2, [r0] - movs r3, 0xD4 - lsls r3, 2 - adds r0, r4, r3 - ldrh r5, [r0] - cmp r2, r5 - bgt _081D26F6 - movs r3, 0x9B - adds r1, r0, 0 - lsls r0, r2, 2 - movs r5, 0xB5 - lsls r5, 1 - adds r0, r5 - adds r0, r4 -_081D26EA: - strh r3, [r0] - adds r0, 0x4 - adds r2, 0x1 - ldrh r5, [r1] - cmp r2, r5 - ble _081D26EA -_081D26F6: - movs r1, 0x9D - lsls r1, 1 - adds r0, r4, r1 - ldrh r0, [r0] - adds r1, r0, 0x1 - movs r2, 0xD4 - lsls r2, 2 - adds r0, r4, r2 - ldrh r0, [r0] - cmp r0, r1 - bge _081D270E - adds r0, r1, 0 -_081D270E: - adds r2, r0, 0 - cmp r2, 0x79 - bgt _081D272C - movs r1, 0 - lsls r0, r2, 2 - movs r3, 0xB4 - lsls r3, 1 - adds r0, r3 - adds r0, r4 -_081D2720: - strh r1, [r0] - strh r1, [r0, 0x2] - adds r0, 0x4 - adds r2, 0x1 - cmp r2, 0x79 - ble _081D2720 -_081D272C: - movs r3, 0 - movs r5, 0x92 - lsls r5, 2 - adds r1, r4, r5 - movs r2, 0x41 -_081D2736: - ldrh r0, [r1] - ldrh r4, [r1, 0x2] - cmp r0, r4 - bcc _081D2742 - strh r3, [r1, 0x2] - strh r3, [r1] -_081D2742: - adds r1, 0x4 - subs r2, 0x1 - cmp r2, 0 - bge _081D2736 - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81D2634 - - thumb_func_start sub_81D2754 -sub_81D2754: @ 81D2754 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r6, r0, 0 - mov r8, r1 - ldr r1, =gUnknown_08625410 - ldrb r0, [r6] - adds r0, r1 - ldrb r2, [r0] - adds r6, 0x1 - movs r0, 0x9B - mov r3, r8 - strh r0, [r3] - movs r0, 0x5B - subs r0, r2 - strh r0, [r3, 0x2] - movs r7, 0x40 - movs r0, 0 - mov r12, r0 - movs r2, 0x1 - mov r9, r2 - ldr r3, =gUnknown_08329F40 - mov r10, r3 -_081D2786: - adds r0, r7, 0 - adds r0, 0x33 - lsls r0, 24 - lsrs r7, r0, 24 - mov r1, r12 - lsls r0, r1, 24 - movs r2, 0xFF - lsls r2, 24 - adds r0, r2 - lsrs r3, r0, 24 - mov r12, r3 - cmp r0, 0 - bge _081D27A4 - movs r0, 0x4 - mov r12, r0 -_081D27A4: - mov r1, r12 - lsls r0, r1, 24 - asrs r4, r0, 24 - cmp r4, 0x2 - bne _081D27B4 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_081D27B4: - ldrb r0, [r6] - ldr r2, =gUnknown_08625410 - adds r0, r2 - ldrb r2, [r0] - adds r6, 0x1 - lsls r0, r4, 2 - mov r1, r8 - adds r3, r0, r1 - adds r0, r7, 0 - adds r0, 0x40 - lsls r0, 1 - add r0, r10 - movs r1, 0 - ldrsh r0, [r0, r1] - muls r0, r2 - asrs r5, r0, 8 - adds r0, r5, 0 - adds r0, 0x9B - strh r0, [r3] - lsls r0, r7, 1 - add r0, r10 - movs r1, 0 - ldrsh r0, [r0, r1] - adds r1, r2, 0 - muls r1, r0 - asrs r1, 8 - movs r0, 0x5B - subs r0, r1 - strh r0, [r3, 0x2] - cmp r4, 0x2 - bgt _081D2800 - cmp r2, 0x20 - bne _081D27FA - cmp r4, 0x2 - beq _081D2800 -_081D27FA: - adds r0, r5, 0 - adds r0, 0x9C - strh r0, [r3] -_081D2800: - mov r0, r9 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - cmp r0, 0x4 - bls _081D2786 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D2754 - - thumb_func_start sub_81D2824 -sub_81D2824: @ 81D2824 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gUnknown_08625510 - bl InitWindows - bl DeactivateAllTextPrinters - movs r0, 0 - movs r1, 0x1 - movs r2, 0xE0 - bl sub_809882C - ldr r0, =gUnknown_0860F074 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - movs r4, 0 -_081D284A: - adds r0, r4, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _081D284A - cmp r5, 0 - bne _081D287C - movs r0, 0 - bl PutWindowTilemap - movs r0, 0 - movs r1, 0 - movs r2, 0x1 - movs r3, 0xE - bl SetWindowBorderStyle - b _081D288E - .pool -_081D287C: - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x1 - movs r1, 0 - movs r2, 0x1 - movs r3, 0xE - bl SetWindowBorderStyle -_081D288E: - movs r0, 0x2 - bl PutWindowTilemap - movs r0, 0x3 - bl PutWindowTilemap - movs r0, 0x2 - movs r1, 0 - movs r2, 0x1 - movs r3, 0xE - bl SetWindowBorderStyle - movs r0, 0x3 - movs r1, 0 - movs r2, 0x1 - movs r3, 0xE - bl SetWindowBorderStyle - bl nullsub_79 - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81D2824 - - thumb_func_start nullsub_79 -nullsub_79: @ 81D28C4 - bx lr - thumb_func_end nullsub_79 - - thumb_func_start sub_81D28C8 -sub_81D28C8: @ 81D28C8 - push {r4-r7,lr} - lsls r1, 16 - lsrs r4, r1, 16 - ldr r3, =gUnknown_03006310 - adds r2, r3, 0 - ldr r1, =gUnknown_08625548 - ldm r1!, {r5-r7} - stm r2!, {r5-r7} - ldm r1!, {r5-r7} - stm r2!, {r5-r7} - strh r4, [r3, 0xC] - str r0, [r3] - cmp r4, 0x5 - bhi _081D28F0 - strh r4, [r3, 0xE] - b _081D28F4 - .pool -_081D28F0: - movs r0, 0x6 - strh r0, [r3, 0xE] -_081D28F4: - ldrb r0, [r3, 0xE] - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81D28C8 - - thumb_func_start sub_81D28FC -sub_81D28FC: @ 81D28FC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - mov r9, r0 - movs r0, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r5, =gUnknown_085EFA31 - movs r0, 0x1 - adds r1, r5, 0 - movs r2, 0x80 - bl GetStringCenterAlignXOffset - adds r4, r0, 0 - lsls r3, r4, 24 - lsrs r3, 24 - movs r0, 0x1 - str r0, [sp] - movs r0, 0xFF - mov r8, r0 - str r0, [sp, 0x4] - movs r7, 0 - str r7, [sp, 0x8] - movs r0, 0 - movs r1, 0x1 - adds r2, r5, 0 - bl Print - ldr r5, =gUnknown_085EFA52 - movs r1, 0x29 - mov r10, r1 - str r1, [sp] - mov r0, r8 - str r0, [sp, 0x4] - str r7, [sp, 0x8] - movs r0, 0 - movs r1, 0x1 - adds r2, r5, 0 - movs r3, 0x4 - bl Print - ldr r5, =gUnknown_085EFA56 - movs r0, 0x1 - adds r1, r5, 0 - movs r2, 0x6A - bl GetStringRightAlignXOffset - adds r4, r0, 0 - lsls r3, r4, 24 - lsrs r3, 24 - movs r1, 0x19 - str r1, [sp] - mov r0, r8 - str r0, [sp, 0x4] - str r7, [sp, 0x8] - movs r0, 0 - movs r1, 0x1 - adds r2, r5, 0 - bl Print - ldr r5, =gUnknown_085EFA5D - movs r0, 0x1 - adds r1, r5, 0 - movs r2, 0x6A - bl GetStringRightAlignXOffset - adds r4, r0, 0 - lsls r3, r4, 24 - lsrs r3, 24 - mov r1, r10 - str r1, [sp] - mov r0, r8 - str r0, [sp, 0x4] - str r7, [sp, 0x8] - movs r0, 0 - movs r1, 0x1 - adds r2, r5, 0 - bl Print - movs r0, 0x2 - negs r0, r0 - cmp r9, r0 - bne _081D29C4 - movs r0, 0 - movs r1, 0x2 - bl CopyWindowToVram - b _081D2AB6 - .pool -_081D29C4: - mov r1, r9 - lsls r0, r1, 1 - add r0, r9 - lsls r0, 2 - ldr r1, =gBattleMoves - adds r6, r0, r1 - ldrb r1, [r6, 0x2] - lsls r0, r1, 3 - subs r0, r1 - ldr r1, =gTypeNames - adds r5, r0, r1 - movs r0, 0x19 - str r0, [sp] - mov r1, r8 - str r1, [sp, 0x4] - str r7, [sp, 0x8] - movs r0, 0 - movs r1, 0x1 - adds r2, r5, 0 - movs r3, 0x4 - bl Print - ldr r1, =gUnknown_085EFA52 - movs r0, 0x1 - movs r2, 0 - bl GetStringWidth - adds r4, r0, 0x4 - ldrb r1, [r6, 0x4] - add r0, sp, 0xC - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - lsls r3, r4, 24 - lsrs r3, 24 - mov r0, r10 - str r0, [sp] - mov r1, r8 - str r1, [sp, 0x4] - str r7, [sp, 0x8] - movs r0, 0 - movs r1, 0x1 - add r2, sp, 0xC - bl Print - ldrb r0, [r6, 0x1] - cmp r0, 0x1 - bhi _081D2A3C - ldr r5, =gUnknown_085E8D45 - b _081D2A4A - .pool -_081D2A3C: - ldrb r1, [r6, 0x1] - add r0, sp, 0xC - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - add r5, sp, 0xC -_081D2A4A: - movs r0, 0x19 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - movs r1, 0x1 - adds r2, r5, 0 - movs r3, 0x6A - bl Print - ldrb r0, [r6, 0x3] - cmp r0, 0 - bne _081D2A70 - ldr r5, =gUnknown_085E8D45 - b _081D2A7E - .pool -_081D2A70: - ldrb r1, [r6, 0x3] - add r0, sp, 0xC - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - add r5, sp, 0xC -_081D2A7E: - movs r0, 0x29 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - movs r0, 0 - movs r1, 0x1 - adds r2, r5, 0 - movs r3, 0x6A - bl Print - ldr r1, =gMoveDescriptionPointers - mov r0, r9 - subs r0, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r5, [r0] - movs r0, 0x41 - str r0, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0 - movs r1, 0x7 - adds r2, r5, 0 - movs r3, 0 - bl Print -_081D2AB6: - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D28FC - - thumb_func_start sub_81D2ACC -sub_81D2ACC: @ 81D2ACC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - adds r4, r0, 0 - bl sub_816137C - movs r0, 0x1 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r5, =gUnknown_085EFA3E - movs r0, 0x1 - adds r1, r5, 0 - movs r2, 0x80 - bl GetStringCenterAlignXOffset - lsls r3, r0, 24 - lsrs r3, 24 - movs r0, 0x1 - str r0, [sp] - movs r7, 0xFF - str r7, [sp, 0x4] - movs r6, 0 - str r6, [sp, 0x8] - movs r1, 0x1 - adds r2, r5, 0 - bl Print - ldr r5, =gUnknown_085EFA67 - movs r0, 0x1 - adds r1, r5, 0 - movs r2, 0x5C - bl GetStringRightAlignXOffset - lsls r3, r0, 24 - lsrs r3, 24 - movs r0, 0x19 - mov r8, r0 - str r0, [sp] - str r7, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - adds r2, r5, 0 - bl Print - ldr r5, =gUnknown_085EFA6E - movs r0, 0x1 - adds r1, r5, 0 - movs r2, 0x5C - bl GetStringRightAlignXOffset - lsls r3, r0, 24 - lsrs r3, 24 - movs r0, 0x29 - str r0, [sp] - str r7, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - adds r2, r5, 0 - bl Print - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - bne _081D2B6C - movs r0, 0x1 - movs r1, 0x2 - bl CopyWindowToVram - b _081D2BB8 - .pool -_081D2B6C: - lsls r4, 3 - ldr r0, =gContestMoves - adds r4, r0 - ldr r1, =gContestMoveTypeTextPointers - ldrb r0, [r4, 0x1] - lsls r0, 29 - lsrs r0, 27 - adds r0, r1 - ldr r5, [r0] - mov r0, r8 - str r0, [sp] - str r7, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - adds r2, r5, 0 - movs r3, 0x4 - bl Print - ldr r1, =gContestEffectDescriptionPointers - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r5, [r0] - movs r0, 0x41 - str r0, [sp] - str r7, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x7 - adds r2, r5, 0 - movs r3, 0 - bl Print - movs r0, 0x1 - movs r1, 0x2 - bl CopyWindowToVram -_081D2BB8: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D2ACC - - thumb_func_start sub_81D2BD0 -sub_81D2BD0: @ 81D2BD0 - push {r4,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x1 - beq _081D2BE2 - movs r0, 0x5 - bl audio_play -_081D2BE2: - adds r0, r4, 0 - bl sub_81D28FC - adds r0, r4, 0 - bl sub_81D2ACC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81D2BD0 - - thumb_func_start sub_81D2BF4 -sub_81D2BF4: @ 81D2BF4 - push {r4,lr} - sub sp, 0x10 - adds r4, r0, 0 - movs r0, 0x3 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r2, =gTextFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - bl sav2_get_text_speed - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r1, 0x1 - adds r2, r4, 0 - bl AddTextPrinterParametrized - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D2BF4 - - thumb_func_start sub_81D2C3C -sub_81D2C3C: @ 81D2C3C - push {lr} - bl RunTextPrinters - movs r0, 0x3 - bl IsTextPrinterActive - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_81D2C3C - - thumb_func_start sub_81D2C50 -sub_81D2C50: @ 81D2C50 - push {lr} - ldr r0, =gUnknown_08625540 - movs r1, 0x1 - movs r2, 0xE - movs r3, 0 - bl CreateYesNoMenu - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D2C50 - - thumb_func_start sub_81D2C68 -sub_81D2C68: @ 81D2C68 - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - cmp r0, 0xE - bne _081D2CA8 - cmp r2, 0x2 - beq _081D2C7E - cmp r2, 0x7 - bne _081D2C94 -_081D2C7E: - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - adds r1, r2, 0 - adds r2, r3, 0 - bl GetMonData - b _081D2CCA - .pool -_081D2C94: - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - adds r1, r2, 0 - bl GetMonData - b _081D2CCA - .pool -_081D2CA8: - cmp r2, 0x2 - beq _081D2CB0 - cmp r2, 0x7 - bne _081D2CBE -_081D2CB0: - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - bl sub_80D1ED0 - b _081D2CCA -_081D2CBE: - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - bl get_pokemon_data_from_any_box -_081D2CCA: - pop {r1} - bx r1 - thumb_func_end sub_81D2C68 - - thumb_func_start sub_81D2CD0 -sub_81D2CD0: @ 81D2CD0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 16 - lsrs r6, r2, 16 - movs r0, 0xFC - strb r0, [r5] - adds r5, 0x1 - movs r0, 0x4 - strb r0, [r5] - adds r5, 0x1 - movs r0, 0x8 - strb r0, [r5] - adds r5, 0x1 - movs r0, 0 - strb r0, [r5] - adds r5, 0x1 - movs r0, 0x9 - strb r0, [r5] - adds r5, 0x1 - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0x2D - movs r3, 0 - bl sub_81D2C68 - cmp r0, 0 - beq _081D2D20 - ldr r1, =gUnknown_085E8264 - adds r0, r5, 0 - movs r2, 0 - movs r3, 0xC - bl StringCopyPadded - b _081D2E70 - .pool -_081D2D20: - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0x2 - adds r3, r5, 0 - bl sub_81D2C68 - adds r0, r5, 0 - bl StringGetEnd10 - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0xB - movs r3, 0 - bl sub_81D2C68 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r4, 0xE - bne _081D2D70 - movs r0, 0x64 - adds r4, r6, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - adds r0, r4, 0 - bl pokemon_get_gender - lsls r0, 24 - lsrs r6, r0, 24 - b _081D2D92 - .pool -_081D2D70: - lsls r0, r4, 24 - lsrs r0, 24 - lsls r1, r6, 24 - lsrs r1, 24 - bl get_pokemon_by_box_and_pos - adds r4, r0, 0 - bl pokemon_roll_gender - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r4, 0 - bl sub_80690C0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 -_081D2D92: - cmp r7, 0x1D - beq _081D2D9A - cmp r7, 0x20 - bne _081D2DB0 -_081D2D9A: - movs r0, 0xB - adds r1, r7, 0 - muls r1, r0 - ldr r0, =gSpeciesNames - adds r1, r0 - adds r0, r5, 0 - bl StringCompare - cmp r0, 0 - bne _081D2DB0 - movs r6, 0xFF -_081D2DB0: - adds r3, r5, 0 - b _081D2DBA - .pool -_081D2DB8: - adds r3, 0x1 -_081D2DBA: - ldrb r0, [r3] - cmp r0, 0xFF - bne _081D2DB8 - movs r1, 0xFC - strb r1, [r3] - adds r3, 0x1 - movs r0, 0x12 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x3C - strb r0, [r3] - adds r3, 0x1 - cmp r6, 0 - beq _081D2DDE - cmp r6, 0xFE - beq _081D2E02 - movs r0, 0 - b _081D2E24 -_081D2DDE: - strb r1, [r3] - adds r3, 0x1 - movs r0, 0x1 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x4 - strb r0, [r3] - adds r3, 0x1 - strb r1, [r3] - adds r3, 0x1 - movs r0, 0x3 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x5 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0xB5 - b _081D2E24 -_081D2E02: - strb r1, [r3] - adds r3, 0x1 - movs r0, 0x1 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x6 - strb r0, [r3] - adds r3, 0x1 - strb r1, [r3] - adds r3, 0x1 - movs r0, 0x3 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x7 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0xB6 -_081D2E24: - strb r0, [r3] - adds r3, 0x1 - movs r0, 0xFC - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x4 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x8 - strb r0, [r3] - adds r3, 0x1 - movs r4, 0 - strb r4, [r3] - adds r3, 0x1 - movs r0, 0x9 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0xBA - strb r0, [r3] - adds r3, 0x1 - movs r0, 0xF9 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x5 - strb r0, [r3] - adds r3, 0x1 - adds r0, r3, 0 - mov r1, r8 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r3, r0, 0 - strb r4, [r3] - adds r3, 0x1 - movs r0, 0xFF - strb r0, [r3] - adds r0, r3, 0 -_081D2E70: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81D2CD0 - - thumb_func_start sub_81D2E7C -sub_81D2E7C: @ 81D2E7C - push {r4,lr} - adds r4, r0, 0 - lsls r2, 16 - lsrs r2, 16 - b _081D2E94 -_081D2E86: - strb r3, [r4] - adds r1, 0x1 - adds r4, 0x1 - lsls r0, r2, 16 - ldr r2, =0xffff0000 - adds r0, r2 - lsrs r2, r0, 16 -_081D2E94: - ldrb r3, [r1] - adds r0, r3, 0 - cmp r0, 0xFF - bne _081D2E86 - adds r1, r2, 0 - lsls r0, r1, 16 - ldr r2, =0xffff0000 - adds r0, r2 - lsrs r2, r0, 16 - lsls r1, 16 - cmp r1, 0 - ble _081D2EC2 - movs r3, 0 -_081D2EAE: - strb r3, [r4] - adds r4, 0x1 - adds r1, r2, 0 - lsls r0, r1, 16 - ldr r2, =0xffff0000 - adds r0, r2 - lsrs r2, r0, 16 - lsls r1, 16 - cmp r1, 0 - bgt _081D2EAE -_081D2EC2: - movs r0, 0xFF - strb r0, [r4] - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D2E7C - - thumb_func_start sub_81D2ED4 -sub_81D2ED4: @ 81D2ED4 - push {r4-r7,lr} - adds r5, r0, 0 - adds r6, r1, 0 - ldr r0, [sp, 0x14] - ldr r1, [sp, 0x18] - ldr r4, [sp, 0x1C] - lsls r2, 16 - lsrs r7, r2, 16 - lsls r3, 16 - lsrs r3, 16 - lsls r0, 16 - lsrs r2, r0, 16 - lsls r1, 16 - lsrs r0, r1, 16 - lsls r4, 24 - cmp r4, 0 - bne _081D2EFC - subs r0, 0x1 - lsls r0, 16 - lsrs r0, 16 -_081D2EFC: - cmp r2, r0 - beq _081D2F42 - adds r0, r6, 0 - adds r1, r7, 0 - adds r2, r3, 0 - bl sub_81D2CD0 - movs r0, 0xFC - strb r0, [r5] - movs r0, 0x4 - strb r0, [r5, 0x1] - movs r0, 0x8 - strb r0, [r5, 0x2] - movs r0, 0 - strb r0, [r5, 0x3] - movs r0, 0x9 - strb r0, [r5, 0x4] - cmp r7, 0xE - bne _081D2F2C - adds r0, r5, 0x5 - ldr r1, =gUnknown_085EBFCE - b _081D2F3A - .pool -_081D2F2C: - adds r4, r5, 0x5 - lsls r0, r7, 24 - lsrs r0, 24 - bl sav3_get_box_name - adds r1, r0, 0 - adds r0, r4, 0 -_081D2F3A: - movs r2, 0x8 - bl sub_81D2E7C - b _081D2F72 -_081D2F42: - movs r1, 0 - movs r2, 0 -_081D2F46: - adds r0, r6, r1 - strb r2, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xB - bls _081D2F46 - adds r1, r6, r1 - movs r0, 0xFF - strb r0, [r1] - movs r1, 0 - movs r2, 0 -_081D2F5E: - adds r0, r5, r1 - strb r2, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x7 - bls _081D2F5E - adds r1, r5, r1 - movs r0, 0xFF - strb r0, [r1] -_081D2F72: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D2ED4 - - thumb_func_start sub_81D2F78 -sub_81D2F78: @ 81D2F78 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r8, r0 - mov r10, r1 - ldr r0, [sp, 0x20] - ldr r1, [sp, 0x24] - ldr r4, [sp, 0x28] - ldr r5, [sp, 0x2C] - lsls r2, 16 - lsrs r7, r2, 16 - lsls r3, 16 - lsrs r6, r3, 16 - lsls r0, 16 - lsrs r2, r0, 16 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - lsls r4, 16 - lsrs r0, r4, 16 - lsls r5, 24 - cmp r5, 0 - bne _081D2FB0 - subs r0, 0x1 - lsls r0, 16 - lsrs r0, 16 -_081D2FB0: - cmp r2, r0 - beq _081D305C - adds r0, r7, 0 - adds r1, r6, 0 - movs r2, 0x16 - movs r3, 0 - bl sub_81D2C68 - mov r1, r9 - lsls r5, r1, 2 - adds r4, r5, r1 - mov r2, r8 - adds r1, r2, r4 - strb r0, [r1] - adds r0, r7, 0 - adds r1, r6, 0 - movs r2, 0x2F - movs r3, 0 - bl sub_81D2C68 - mov r1, r8 - adds r1, 0x1 - adds r1, r4 - strb r0, [r1] - adds r0, r7, 0 - adds r1, r6, 0 - movs r2, 0x21 - movs r3, 0 - bl sub_81D2C68 - mov r1, r8 - adds r1, 0x2 - adds r1, r4 - strb r0, [r1] - adds r0, r7, 0 - adds r1, r6, 0 - movs r2, 0x18 - movs r3, 0 - bl sub_81D2C68 - mov r1, r8 - adds r1, 0x3 - adds r1, r4 - strb r0, [r1] - adds r0, r7, 0 - adds r1, r6, 0 - movs r2, 0x17 - movs r3, 0 - bl sub_81D2C68 - mov r1, r8 - adds r1, 0x4 - adds r1, r4 - strb r0, [r1] - mov r4, r10 - add r4, r9 - adds r0, r7, 0 - adds r1, r6, 0 - movs r2, 0x30 - movs r3, 0 - bl sub_81D2C68 - cmp r0, 0xFF - beq _081D3044 - adds r0, r7, 0 - adds r1, r6, 0 - movs r2, 0x30 - movs r3, 0 - bl sub_81D2C68 - movs r1, 0x1D - bl __udivsi3 - b _081D3046 -_081D3044: - movs r0, 0x9 -_081D3046: - strb r0, [r4] - mov r0, r9 - adds r1, r5, r0 - mov r2, r8 - adds r0, r2, r1 - lsls r1, 2 - adds r1, 0x14 - add r1, r8 - bl sub_81D2754 - b _081D3086 -_081D305C: - movs r2, 0 - mov r0, r9 - lsls r5, r0, 2 - adds r1, r5, r0 - movs r6, 0 - lsls r3, r1, 2 - movs r5, 0x9B - movs r4, 0x5B -_081D306C: - adds r0, r2, r1 - add r0, r8 - strb r6, [r0] - lsls r0, r2, 2 - adds r0, r3 - add r0, r8 - strh r5, [r0, 0x14] - strh r4, [r0, 0x16] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x4 - bls _081D306C -_081D3086: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D2F78 - - thumb_func_start sub_81D3094 -sub_81D3094: @ 81D3094 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - mov r8, r0 - mov r9, r1 - ldr r0, [sp, 0x20] - ldr r1, [sp, 0x24] - ldr r4, [sp, 0x28] - lsls r2, 16 - lsrs r7, r2, 16 - lsls r3, 16 - lsrs r5, r3, 16 - lsls r0, 16 - lsrs r2, r0, 16 - lsls r1, 16 - lsrs r0, r1, 16 - lsls r4, 24 - cmp r4, 0 - bne _081D30C4 - subs r0, 0x1 - lsls r0, 16 - lsrs r0, 16 -_081D30C4: - cmp r2, r0 - beq _081D311A - adds r0, r7, 0 - adds r1, r5, 0 - movs r2, 0x41 - movs r3, 0 - bl sub_81D2C68 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r7, 0 - adds r1, r5, 0 - movs r2, 0x1 - movs r3, 0 - bl sub_81D2C68 - adds r6, r0, 0 - adds r0, r7, 0 - adds r1, r5, 0 - movs r2, 0 - movs r3, 0 - bl sub_81D2C68 - adds r5, r0, 0 - lsls r0, r4, 3 - ldr r1, =gMonFrontPicTable - adds r0, r1 - movs r1, 0x1 - str r1, [sp] - mov r1, r8 - adds r2, r4, 0 - adds r3, r5, 0 - bl DecompressMonPic - adds r0, r4, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl species_and_otid_get_pal - mov r1, r9 - bl LZ77UnCompWram -_081D311A: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D3094 - - thumb_func_start sub_81D312C -sub_81D312C: @ 81D312C - push {lr} - adds r1, r0, 0 - ldrh r0, [r1] - adds r0, 0x18 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - ble _081D3140 - movs r0, 0 - strh r0, [r1] -_081D3140: - movs r0, 0 - ldrsh r1, [r1, r0] - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - pop {r1} - bx r1 - thumb_func_end sub_81D312C - - thumb_func_start sub_81D3150 -sub_81D3150: @ 81D3150 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1] - subs r0, 0x18 - strh r0, [r1] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x50 - negs r2, r2 - cmp r0, r2 - bge _081D3168 - strh r2, [r1] -_081D3168: - movs r0, 0 - ldrsh r1, [r1, r0] - eors r1, r2 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - pop {r1} - bx r1 - thumb_func_end sub_81D3150 - - thumb_func_start sub_81D3178 -sub_81D3178: @ 81D3178 - push {r4,r5,lr} - adds r5, r1, 0 - bl sub_81D2074 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - bl sub_81D312C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - cmp r4, 0 - bne _081D319A - cmp r0, 0 - beq _081D319C -_081D319A: - movs r1, 0x1 -_081D319C: - adds r0, r1, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D3178 - - thumb_func_start sub_81D31A4 -sub_81D31A4: @ 81D31A4 - push {r4,r5,lr} - adds r5, r1, 0 - bl sub_81D2074 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - bl sub_81D3150 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - cmp r4, 0 - bne _081D31C6 - cmp r0, 0 - beq _081D31C8 -_081D31C6: - movs r1, 0x1 -_081D31C8: - adds r0, r1, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D31A4 - - thumb_func_start sub_81D31D0 -sub_81D31D0: @ 81D31D0 - push {r4-r7,lr} - sub sp, 0x20 - ldr r3, =gUnknown_08625A48 - ldr r4, [r3] - ldr r5, [r3, 0x4] - str r4, [sp, 0x18] - str r5, [sp, 0x1C] - mov r4, sp - ldr r3, =gUnknown_08625A50 - ldm r3!, {r5-r7} - stm r4!, {r5-r7} - ldm r3!, {r5-r7} - stm r4!, {r5-r7} - ldr r3, =gUnknown_08625A68 - ldr r4, [r3, 0x4] - ldr r3, [r3] - ldr r5, [sp, 0x18] - ldr r6, [sp, 0x1C] - str r5, [r0] - str r6, [r0, 0x4] - mov r0, sp - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - str r3, [r2] - str r4, [r2, 0x4] - add sp, 0x20 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D31D0 - - thumb_func_start sub_81D321C -sub_81D321C: @ 81D321C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x50 - adds r5, r0, 0 - mov r12, r1 - mov r8, r2 - mov r1, sp - ldr r0, =gUnknown_08625A70 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2,r6,r7} - stm r1!, {r2,r6,r7} - ldm r0!, {r3,r4} - stm r1!, {r3,r4} - add r3, sp, 0x20 - adds r1, r3, 0 - ldr r0, =gUnknown_08625A90 - ldm r0!, {r2,r6,r7} - stm r1!, {r2,r6,r7} - ldm r0!, {r4,r6,r7} - stm r1!, {r4,r6,r7} - add r2, sp, 0x38 - adds r1, r2, 0 - ldr r0, =gUnknown_08625AA8 - ldm r0!, {r4,r6,r7} - stm r1!, {r4,r6,r7} - ldm r0!, {r4,r6,r7} - stm r1!, {r4,r6,r7} - movs r4, 0 -_081D3258: - lsls r0, r4, 3 - add r0, sp - ldr r1, [r0, 0x4] - ldr r0, [r0] - stm r5!, {r0,r1} - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _081D3258 - mov r1, r12 - adds r0, r2, 0 - ldm r0!, {r2,r4,r5} - stm r1!, {r2,r4,r5} - ldm r0!, {r2,r6,r7} - stm r1!, {r2,r6,r7} - movs r4, 0 -_081D327A: - lsls r0, r4, 3 - adds r0, r3, r0 - ldr r1, [r0, 0x4] - ldr r0, [r0] - mov r5, r8 - adds r5, 0x8 - mov r8, r5 - subs r5, 0x8 - stm r5!, {r0,r1} - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _081D327A - add sp, 0x50 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D321C - - thumb_func_start sub_81D32B0 -sub_81D32B0: @ 81D32B0 - push {r4,r5,lr} - ldr r2, =gUnknown_08625AC0 - ldr r4, [r2] - ldr r5, [r2, 0x4] - ldr r2, =gUnknown_08625AC8 - ldr r3, [r2, 0x4] - ldr r2, [r2] - str r4, [r0] - str r5, [r0, 0x4] - str r2, [r1] - str r3, [r1, 0x4] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D32B0 - - thumb_func_start sub_81D32D4 -sub_81D32D4: @ 81D32D4 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _081D32F0 - movs r0, 0 - strh r0, [r1, 0x30] - adds r0, r1, 0 - bl sub_81D3408 -_081D32F0: - pop {r0} - bx r0 - thumb_func_end sub_81D32D4 - - thumb_func_start sub_81D32F4 -sub_81D32F4: @ 81D32F4 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _081D330C - movs r0, 0 - strh r0, [r2, 0x30] - ldr r0, =sub_81D32D4 - str r0, [r2, 0x1C] -_081D330C: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D32F4 - - thumb_func_start sub_81D3314 -sub_81D3314: @ 81D3314 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x36 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gUnknown_02020630 - adds r3, r1, r0 - cmp r3, 0 - beq _081D3360 - ldrh r1, [r3, 0x24] - ldrh r2, [r3, 0x20] - adds r1, r2 - ldr r2, =gUnknown_08625B2C - movs r5, 0x2E - ldrsh r0, [r4, r5] - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r1, [r3, 0x26] - ldrh r3, [r3, 0x22] - adds r1, r3 - movs r3, 0x2E - ldrsh r0, [r4, r3] - lsls r0, 2 - adds r2, 0x2 - adds r0, r2 - ldrh r0, [r0] - adds r0, r1 - b _081D337E - .pool -_081D3360: - ldr r1, =gUnknown_08625B2C - movs r5, 0x2E - ldrsh r0, [r4, r5] - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0] - adds r0, 0x28 - strh r0, [r4, 0x20] - movs r2, 0x2E - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r1, 0x2 - adds r0, r1 - ldrh r0, [r0] - adds r0, 0x68 -_081D337E: - strh r0, [r4, 0x22] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D3314 - - thumb_func_start sub_81D338C -sub_81D338C: @ 81D338C - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r2 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - movs r5, 0 -_081D339E: - lsls r0, r5, 2 - mov r1, r8 - adds r4, r0, r1 - ldr r0, [r4] - cmp r0, 0 - beq _081D33F0 - strh r5, [r0, 0x2E] - ldr r1, [r4] - lsls r0, r5, 4 - adds r0, 0x1 - strh r0, [r1, 0x30] - ldr r0, [r4] - strh r6, [r0, 0x32] - ldr r0, [r4] - strh r5, [r0, 0x34] - cmp r7, 0 - beq _081D33C4 - cmp r6, 0x9 - beq _081D33D0 -_081D33C4: - ldr r1, [r4] - ldr r0, =sub_81D3564 - str r0, [r1, 0x1C] - b _081D33F0 - .pool -_081D33D0: - ldr r0, [r4] - bl sub_81D3314 - ldr r0, [r4] - bl sub_81D35E8 - ldr r2, [r4] - ldr r0, =sub_81D32F4 - str r0, [r2, 0x1C] - adds r2, 0x3E - ldrb r0, [r2] - movs r3, 0x5 - negs r3, r3 - adds r1, r3, 0 - ands r0, r1 - strb r0, [r2] -_081D33F0: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x9 - bls _081D339E - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D338C - - thumb_func_start sub_81D3408 -sub_81D3408: @ 81D3408 - push {r4-r7,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x38] - lsls r0, 24 - lsrs r2, r0, 24 - movs r3, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - adds r0, 0x1 - cmp r3, r0 - bge _081D3454 - ldr r5, =gUnknown_02020630 - movs r7, 0x1C - adds r7, r5 - mov r12, r7 - ldr r6, =sub_81D3564 -_081D3428: - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r2, r1, r5 - movs r7, 0x2E - ldrsh r0, [r2, r7] - lsls r0, 4 - adds r0, 0x1 - strh r0, [r2, 0x30] - add r1, r12 - str r6, [r1] - ldrh r0, [r2, 0x38] - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - movs r1, 0x32 - ldrsh r0, [r4, r1] - adds r0, 0x1 - cmp r3, r0 - blt _081D3428 -_081D3454: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D3408 - - thumb_func_start sub_81D3464 -sub_81D3464: @ 81D3464 - push {lr} - adds r2, r0, 0 - movs r1, 0 - movs r3, 0 -_081D346C: - lsls r0, r1, 2 - adds r0, r2 - str r3, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x9 - bls _081D346C - pop {r0} - bx r0 - thumb_func_end sub_81D3464 - - thumb_func_start sub_81D3480 -sub_81D3480: @ 81D3480 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - movs r0, 0 - mov r9, r0 - lsrs r7, r2, 24 - movs r5, 0 - adds r0, r7, 0x1 - cmp r9, r0 - bge _081D34FE -_081D34A2: - ldr r0, =gUnknown_08625B14 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r3, r0, 24 - adds r6, r3, 0 - cmp r3, 0x40 - beq _081D34FE - lsls r0, r5, 2 - mov r1, r8 - adds r4, r0, r1 - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - str r0, [r4] - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldr r0, [r4] - mov r1, r10 - strh r1, [r0, 0x36] - cmp r5, 0 - beq _081D34F0 - subs r0, r4, 0x4 - ldr r0, [r0] - strh r3, [r0, 0x38] - b _081D34F2 - .pool -_081D34F0: - mov r9, r6 -_081D34F2: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r7, 0x1 - cmp r5, r0 - blt _081D34A2 -_081D34FE: - lsls r0, r7, 2 - add r0, r8 - ldr r0, [r0] - mov r1, r9 - strh r1, [r0, 0x38] - adds r0, r7, 0 - movs r1, 0x1 - mov r2, r8 - bl sub_81D338C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D3480 - - thumb_func_start sub_81D3520 -sub_81D3520: @ 81D3520 - push {r4-r6,lr} - adds r6, r0, 0 - movs r5, 0 -_081D3526: - cmp r5, 0x9 - bhi _081D3544 - lsls r0, r5, 2 - adds r4, r0, r6 - ldr r0, [r4] - cmp r0, 0 - beq _081D3544 - bl RemoveObjectAndFreeTiles - movs r0, 0 - str r0, [r4] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - b _081D3526 -_081D3544: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81D3520 - - thumb_func_start sub_81D354C -sub_81D354C: @ 81D354C - push {lr} - bl sub_81D3520 - movs r0, 0x68 - bl FreeObjectTilesByTag - movs r0, 0x68 - bl FreeObjectPaletteByTag - pop {r0} - bx r0 - thumb_func_end sub_81D354C - - thumb_func_start sub_81D3564 -sub_81D3564: @ 81D3564 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _081D3592 - subs r0, r1, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _081D35DC - adds r0, r4, 0 - movs r1, 0 - bl SeekObjectImageAnim - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_081D3592: - adds r0, r4, 0 - bl sub_81D3314 - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _081D35DC - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x34 - ldrsh r1, [r4, r0] - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _081D35D8 - cmp r1, 0x9 - bne _081D35D0 - adds r0, r4, 0 - bl sub_81D35E8 - ldr r0, =sub_81D32F4 - b _081D35DA - .pool -_081D35D0: - ldr r0, =sub_81D32D4 - b _081D35DA - .pool -_081D35D8: - ldr r0, =DummyObjectCallback -_081D35DA: - str r0, [r4, 0x1C] -_081D35DC: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D3564 - - thumb_func_start sub_81D35E8 -sub_81D35E8: @ 81D35E8 - push {r4-r7,lr} - adds r6, r0, 0 - ldrh r0, [r6, 0x38] - lsls r0, 24 - lsrs r1, r0, 24 - movs r5, 0 - movs r2, 0x32 - ldrsh r0, [r6, r2] - adds r0, 0x1 - cmp r5, r0 - bge _081D3636 - movs r0, 0x5 - negs r0, r0 - adds r7, r0, 0 -_081D3604: - lsls r4, r1, 4 - adds r4, r1 - lsls r4, 2 - ldr r0, =gUnknown_02020630 - adds r4, r0 - adds r0, r4, 0 - movs r1, 0 - bl SeekObjectImageAnim - adds r1, r4, 0 - adds r1, 0x3E - ldrb r0, [r1] - ands r0, r7 - strb r0, [r1] - ldrh r0, [r4, 0x38] - lsls r0, 24 - lsrs r1, r0, 24 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - movs r2, 0x32 - ldrsh r0, [r6, r2] - adds r0, 0x1 - cmp r5, r0 - blt _081D3604 -_081D3636: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D35E8 - - thumb_func_start sub_81D3640 -sub_81D3640: @ 81D3640 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - mov r8, r0 - adds r6, r1, 0 - adds r5, r2, 0 - adds r4, r3, 0 - ldr r3, [sp, 0x4C] - ldr r0, [sp, 0x50] - mov r9, r0 - lsls r4, 24 - lsrs r4, 24 - lsls r3, 24 - lsrs r3, 24 - mov r1, r9 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, r4, 4 - orrs r1, r4 - lsls r1, 24 - lsrs r1, 24 - str r3, [sp, 0x28] - bl FillWindowPixelBuffer - add r2, sp, 0xC - ldrh r0, [r5] - ldrh r1, [r6] - subs r0, r1 - strh r0, [r2] - ldrh r0, [r5, 0x2] - ldrh r1, [r6, 0x2] - subs r0, r1 - strh r0, [r2, 0x2] - ldrh r0, [r5, 0x4] - ldrh r1, [r6, 0x4] - subs r0, r1 - strh r0, [r2, 0x4] - ldrh r0, [r5, 0x8] - ldrh r1, [r6, 0x8] - subs r0, r1 - strh r0, [r2, 0x6] - ldrh r0, [r5, 0xA] - ldrh r1, [r6, 0xA] - subs r0, r1 - strh r0, [r2, 0x8] - ldrh r0, [r5, 0x6] - ldrh r1, [r6, 0x6] - subs r0, r1 - strh r0, [r2, 0xA] - add r0, sp, 0x24 - strb r4, [r0] - ldr r3, [sp, 0x28] - strb r3, [r0, 0x1] - mov r1, r9 - strb r1, [r0, 0x2] - movs r7, 0 - mov r10, r0 - movs r0, 0x1 - negs r0, r0 - mov r9, r0 - add r6, sp, 0x18 -_081D36CA: - lsls r0, r7, 4 - subs r0, r7 - lsls r0, 24 - lsrs r5, r0, 24 - mov r1, r10 - str r1, [sp] - mov r0, r9 - str r0, [sp, 0x4] - ldr r1, =gUnknown_08625B54 - lsls r0, r7, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [sp, 0x8] - mov r0, r8 - movs r1, 0x1 - movs r2, 0 - adds r3, r5, 0 - bl box_print - lsls r0, r7, 1 - mov r4, sp - adds r4, r0 - adds r4, 0xC - movs r1, 0 - ldrsh r0, [r4, r1] - ldr r1, =gUnknown_085EEA76 - cmp r0, 0 - blt _081D3704 - ldr r1, =gUnknown_085EEA73 -_081D3704: - adds r0, r6, 0 - bl StringCopy - mov r0, r10 - str r0, [sp] - mov r1, r9 - str r1, [sp, 0x4] - str r6, [sp, 0x8] - mov r0, r8 - movs r1, 0x1 - movs r2, 0x38 - adds r3, r5, 0 - bl box_print - movs r0, 0 - ldrsh r1, [r4, r0] - adds r0, r1, 0 - cmp r1, 0 - bge _081D372C - negs r0, r1 -_081D372C: - movs r4, 0xC - cmp r0, 0x9 - bgt _081D3734 - movs r4, 0x12 -_081D3734: - cmp r1, 0 - bge _081D373A - negs r1, r1 -_081D373A: - adds r0, r6, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - adds r2, r4, 0 - adds r2, 0x38 - mov r1, r10 - str r1, [sp] - mov r0, r9 - str r0, [sp, 0x4] - str r6, [sp, 0x8] - mov r0, r8 - movs r1, 0x1 - adds r3, r5, 0 - bl box_print - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, 0x5 - bls _081D36CA - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D3640 - - thumb_func_start sub_81D3784 -sub_81D3784: @ 81D3784 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - mov r8, r0 - adds r5, r1, 0 - adds r4, r2, 0 - adds r6, r3, 0 - ldr r2, [sp, 0x4C] - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, r4, 4 - orrs r1, r4 - lsls r1, 24 - lsrs r1, 24 - str r2, [sp, 0x28] - bl FillWindowPixelBuffer - add r1, sp, 0xC - ldrh r0, [r5] - strh r0, [r1] - ldrh r0, [r5, 0x2] - strh r0, [r1, 0x2] - ldrh r0, [r5, 0x4] - strh r0, [r1, 0x4] - ldrh r0, [r5, 0x8] - strh r0, [r1, 0x6] - ldrh r0, [r5, 0xA] - strh r0, [r1, 0x8] - ldrh r0, [r5, 0x6] - strh r0, [r1, 0xA] - add r0, sp, 0x24 - strb r4, [r0] - strb r6, [r0, 0x1] - ldr r2, [sp, 0x28] - strb r2, [r0, 0x2] - movs r6, 0 - add r1, sp, 0x18 - mov r9, r1 - mov r7, r8 - mov r10, r0 - movs r2, 0x1 - negs r2, r2 - mov r8, r2 -_081D37EE: - lsls r1, r6, 1 - mov r0, sp - adds r0, r1 - adds r0, 0xC - movs r2, 0 - ldrsh r0, [r0, r2] - movs r4, 0x3 - cmp r0, 0x63 - bgt _081D3808 - movs r4, 0x1 - cmp r0, 0x9 - ble _081D3808 - movs r4, 0x2 -_081D3808: - mov r0, sp - adds r0, r1 - adds r0, 0xC - movs r2, 0 - ldrsh r1, [r0, r2] - mov r0, r9 - movs r2, 0 - adds r3, r4, 0 - bl ConvertIntToDecimalStringN - movs r0, 0x4 - subs r0, r4 - lsls r4, r0, 1 - adds r4, r0 - lsls r4, 17 - lsrs r4, 16 - lsls r5, r6, 4 - subs r5, r6 - lsls r5, 24 - lsrs r5, 24 - mov r0, r10 - str r0, [sp] - mov r1, r8 - str r1, [sp, 0x4] - ldr r1, =gUnknown_08625B54 - lsls r0, r6, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [sp, 0x8] - adds r0, r7, 0 - movs r1, 0x1 - movs r2, 0 - adds r3, r5, 0 - bl box_print - adds r4, 0x38 - lsls r4, 24 - lsrs r4, 24 - mov r2, r10 - str r2, [sp] - mov r0, r8 - str r0, [sp, 0x4] - mov r1, r9 - str r1, [sp, 0x8] - adds r0, r7, 0 - movs r1, 0x1 - adds r2, r4, 0 - adds r3, r5, 0 - bl box_print - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x5 - bls _081D37EE - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D3784 - - thumb_func_start sub_81D388C -sub_81D388C: @ 81D388C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r1, 0x3A - bl GetMonData - strh r0, [r5] - adds r0, r4, 0 - movs r1, 0x3B - bl GetMonData - strh r0, [r5, 0x2] - adds r0, r4, 0 - movs r1, 0x3C - bl GetMonData - strh r0, [r5, 0x4] - adds r0, r4, 0 - movs r1, 0x3D - bl GetMonData - strh r0, [r5, 0x6] - adds r0, r4, 0 - movs r1, 0x3E - bl GetMonData - strh r0, [r5, 0x8] - adds r0, r4, 0 - movs r1, 0x3F - bl GetMonData - strh r0, [r5, 0xA] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81D388C - - thumb_func_start sub_81D38D4 -sub_81D38D4: @ 81D38D4 - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003d6d - adds r0, r1 - ldrb r1, [r0] - adds r2, r1, 0x1 - adds r0, r2, 0 - asrs r0, 8 - lsls r0, 8 - subs r0, r2, r0 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D38D4 - - thumb_func_start sub_81D38FC -sub_81D38FC: @ 81D38FC - push {r4,r5,lr} - adds r4, r0, 0 - movs r5, 0x9C - lsls r5, 2 - adds r1, r5, 0 - bl CalcByteArraySum - adds r4, r5 - ldr r1, [r4] - cmp r0, r1 - bne _081D3916 - movs r0, 0x1 - b _081D3918 -_081D3916: - movs r0, 0 -_081D3918: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D38FC - - thumb_func_start sub_81D3920 -sub_81D3920: @ 81D3920 - push {r4-r7,lr} - adds r7, r0, 0 - ldrb r6, [r7] - subs r0, r6, 0x1 - cmp r0, 0x7 - bhi _081D3964 - movs r5, 0 - cmp r5, r6 - bcs _081D394C - adds r4, r7, 0 - adds r4, 0x8 -_081D3936: - adds r0, r4, 0 - bl sub_81D38FC - cmp r0, 0 - beq _081D3964 - movs r0, 0x9D - lsls r0, 2 - adds r4, r0 - adds r5, 0x1 - cmp r5, r6 - bcc _081D3936 -_081D394C: - adds r0, r7, 0 - adds r0, 0x8 - movs r1, 0x9D - lsls r1, 2 - muls r1, r6 - bl CalcByteArraySum - ldr r1, [r7, 0x4] - cmp r0, r1 - bne _081D3964 - movs r0, 0x1 - b _081D3966 -_081D3964: - movs r0, 0 -_081D3966: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81D3920 - - thumb_func_start sub_81D396C -sub_81D396C: @ 81D396C - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4] - subs r0, 0x1 - cmp r0, 0x7 - bhi _081D398E - adds r0, r4, 0 - adds r0, 0x8 - movs r1, 0xEE - lsls r1, 4 - bl CalcByteArraySum - ldr r1, [r4, 0x4] - cmp r0, r1 - bne _081D398E - movs r0, 0x1 - b _081D3990 -_081D398E: - movs r0, 0 -_081D3990: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81D396C - - thumb_func_start sub_81D3998 -sub_81D3998: @ 81D3998 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - mov r8, r1 - movs r2, 0x80 - lsls r2, 5 - mov r0, r8 - movs r1, 0 - bl memset - ldrb r0, [r7] - mov r1, r8 - strb r0, [r1] - bl sub_81D38D4 - mov r2, r8 - strb r0, [r2, 0x1] - ldrb r0, [r7] - adds r0, 0x1 - asrs r0, 1 - strb r0, [r2, 0x2] - movs r6, 0 - b _081D3A42 -_081D39C8: - movs r0, 0x1 - ands r0, r6 - cmp r0, 0 - bne _081D3A14 - lsrs r0, r6, 31 - adds r0, r6, r0 - asrs r0, 1 - lsls r4, r0, 4 - subs r4, r0 - lsls r4, 3 - subs r4, r0 - lsls r4, 3 - add r4, r8 - movs r0, 0x9D - lsls r0, 2 - adds r5, r6, 0 - muls r5, r0 - adds r5, r7, r5 - ldrb r0, [r5, 0x8] - strb r0, [r4, 0x8] - movs r1, 0xA7 - lsls r1, 2 - adds r0, r4, r1 - movs r2, 0xAA - lsls r2, 1 - adds r1, r5, r2 - subs r2, 0x30 - bl memcpy - adds r4, 0xC - adds r5, 0xC - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0xA4 - lsls r2, 1 - bl memcpy - b _081D3A40 -_081D3A14: - lsrs r1, r6, 31 - adds r1, r6, r1 - asrs r1, 1 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 3 - subs r0, r1 - lsls r0, 3 - add r0, r8 - movs r1, 0x9D - lsls r1, 2 - muls r1, r6 - adds r1, r7, r1 - ldrb r2, [r1, 0x8] - strb r2, [r0, 0x9] - movs r2, 0xAA - lsls r2, 1 - adds r0, r2 - adds r1, 0xC - subs r2, 0xC - bl memcpy -_081D3A40: - adds r6, 0x1 -_081D3A42: - ldrb r0, [r7] - cmp r6, r0 - blt _081D39C8 - movs r0, 0x1 - ands r0, r6 - cmp r0, 0 - beq _081D3A7E - lsrs r2, r6, 31 - adds r2, r6, r2 - asrs r2, 1 - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 3 - subs r0, r2 - lsls r0, 3 - add r0, r8 - movs r1, 0xAA - lsls r1, 1 - adds r0, r1 - ldr r3, =gUnknown_08625B6C - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r2 - lsls r1, 3 - adds r1, r3 - movs r2, 0xA4 - lsls r2, 1 - bl memcpy -_081D3A7E: - mov r0, r8 - adds r0, 0x8 - movs r1, 0xEE - lsls r1, 4 - bl CalcByteArraySum - mov r2, r8 - str r0, [r2, 0x4] - movs r0, 0x1E - mov r1, r8 - bl sub_8153634 - cmp r0, 0x1 - bne _081D3AA4 - movs r0, 0x1 - b _081D3AA6 - .pool -_081D3AA4: - movs r0, 0 -_081D3AA6: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81D3998 - - thumb_func_start sub_81D3AB0 -sub_81D3AB0: @ 81D3AB0 - 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_81D3998 - adds r4, r0, 0 - adds r0, r5, 0 - bl Free - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D3AB0 - - thumb_func_start sub_81D3AD8 -sub_81D3AD8: @ 81D3AD8 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r0, 0x1E - bl sub_81535DC - cmp r0, 0x1 - bne _081D3B04 - ldr r2, =0x00000ee8 - adds r0, r5, 0 - adds r1, r4, 0 - bl memcpy - adds r0, r5, 0 - bl sub_81D396C - cmp r0, 0 - beq _081D3B04 - movs r0, 0x1 - b _081D3B06 - .pool -_081D3B04: - movs r0, 0 -_081D3B06: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D3AD8 - - thumb_func_start sub_81D3B0C -sub_81D3B0C: @ 81D3B0C - 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_81D3AD8 - adds r4, r0, 0 - adds r0, r5, 0 - bl Free - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D3B0C - - thumb_func_start sub_81D3B34 -sub_81D3B34: @ 81D3B34 - push {r4,r5,lr} - movs r0, 0x80 - lsls r0, 5 - bl AllocZeroed - adds r4, r0, 0 - bl sub_81D3B0C - 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_81D3B34 - - thumb_func_start sub_81D3B54 -sub_81D3B54: @ 81D3B54 - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r0, 0 - adds r5, r1, 0 - bl sub_81D41A0 - movs r7, 0x2 - ldr r4, =gUnknown_03003144 -_081D3B64: - bl sub_81D4170 - ldr r0, =gUnknown_030012E2 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081D3B76 - strb r7, [r4] -_081D3B76: - movs r0, 0x1 - adds r1, r6, 0 - adds r2, r5, 0 - movs r3, 0 - bl sub_81D3D70 - adds r1, r0, 0 - ldr r0, =gUnknown_030012E4 - strh r1, [r0] - movs r0, 0x13 - ands r0, r1 - cmp r0, 0x10 - bne _081D3BA0 - movs r4, 0 - b _081D3BC2 - .pool -_081D3BA0: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _081D3BAC - movs r4, 0x1 - b _081D3BC2 -_081D3BAC: - movs r0, 0x4 - ands r0, r1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _081D3BC0 - strb r0, [r4] - bl VBlankIntrWait - b _081D3B64 -_081D3BC0: - movs r4, 0x2 -_081D3BC2: - movs r0, 0 - str r0, [sp] - ldr r1, =gUnknown_030012C8 - ldr r2, =0x05000006 - mov r0, sp - bl CpuSet - bl sub_81D41F4 - adds r0, r4, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D3B54 - - thumb_func_start sub_81D3BE8 -sub_81D3BE8: @ 81D3BE8 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - bl sub_81D41A0 - movs r6, 0x2 - ldr r4, =gUnknown_03003144 -_081D3BF6: - bl sub_81D4170 - ldr r0, =gUnknown_030012E2 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081D3C08 - strb r6, [r4] -_081D3C08: - movs r0, 0 - movs r1, 0 - movs r2, 0 - adds r3, r5, 0 - bl sub_81D3D70 - adds r1, r0, 0 - ldr r0, =gUnknown_030012E4 - strh r1, [r0] - movs r0, 0x13 - ands r0, r1 - cmp r0, 0x10 - bne _081D3C34 - movs r4, 0 - b _081D3C56 - .pool -_081D3C34: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _081D3C40 - movs r4, 0x1 - b _081D3C56 -_081D3C40: - movs r0, 0x4 - ands r0, r1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _081D3C54 - strb r0, [r4] - bl VBlankIntrWait - b _081D3BF6 -_081D3C54: - movs r4, 0x2 -_081D3C56: - movs r0, 0 - str r0, [sp] - ldr r1, =gUnknown_030012C8 - ldr r2, =0x05000006 - mov r0, sp - bl CpuSet - bl sub_81D41F4 - adds r0, r4, 0 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D3BE8 - - thumb_func_start sub_81D3C7C -sub_81D3C7C: @ 81D3C7C - push {r4,lr} - ldr r4, =0x04000208 - movs r3, 0 - strh r3, [r4] - ldr r2, =0x04000200 - ldrh r1, [r2] - ldr r0, =0x0000ff3f - ands r0, r1 - strh r0, [r2] - movs r0, 0x1 - strh r0, [r4] - ldr r0, =0x04000128 - strh r3, [r0] - subs r0, 0x1A - strh r3, [r0] - ldr r1, =0x04000202 - movs r0, 0xC0 - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D3C7C - - thumb_func_start sub_81D3CBC -sub_81D3CBC: @ 81D3CBC - push {r4-r7,lr} - sub sp, 0x4 - ldr r5, =0x04000208 - movs r4, 0 - strh r4, [r5] - ldr r3, =0x04000200 - ldrh r1, [r3] - ldr r0, =0x0000ff3f - ands r0, r1 - strh r0, [r3] - movs r6, 0x1 - strh r6, [r5] - ldr r0, =0x04000134 - strh r4, [r0] - ldr r2, =0x04000128 - movs r1, 0x80 - lsls r1, 6 - adds r0, r1, 0 - strh r0, [r2] - ldrh r0, [r2] - ldr r7, =0x00004003 - adds r1, r7, 0 - orrs r0, r1 - strh r0, [r2] - strh r4, [r5] - ldrh r0, [r3] - movs r1, 0x80 - orrs r0, r1 - strh r0, [r3] - strh r6, [r5] - ldr r1, =gUnknown_030012C8 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _081D3D0A - str r0, [sp] - ldr r2, =0x05000006 - mov r0, sp - bl CpuSet -_081D3D0A: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D3CBC - - thumb_func_start sub_81D3D34 -sub_81D3D34: @ 81D3D34 - ldr r0, =0x04000134 - movs r3, 0 - strh r3, [r0] - ldr r2, =0x04000128 - movs r1, 0xA0 - lsls r1, 7 - adds r0, r1, 0 - strh r0, [r2] - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - ldr r0, =gUnknown_03003144 - strb r3, [r0] - ldr r0, =gUnknown_030012E6 - strh r3, [r0] - ldr r1, =gUnknown_030012E8 - movs r0, 0 - str r0, [r1] - bx lr - .pool - thumb_func_end sub_81D3D34 - - thumb_func_start sub_81D3D70 -sub_81D3D70: @ 81D3D70 - push {r4-r6,lr} - adds r4, r1, 0 - adds r5, r2, 0 - adds r6, r3, 0 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gUnknown_030012C8 - ldrb r0, [r0, 0x1] - cmp r0, 0x6 - bls _081D3D86 - b _081D3ECC -_081D3D86: - lsls r0, 2 - ldr r1, =_081D3D98 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081D3D98: - .4byte _081D3DB4 - .4byte _081D3DC8 - .4byte _081D3DE8 - .4byte _081D3DFC - .4byte _081D3E74 - .4byte _081D3E84 - .4byte _081D3EBC -_081D3DB4: - bl sub_81D3CBC - ldr r1, =gUnknown_030012C8 - movs r0, 0x1 - strb r0, [r1, 0x2] - strb r0, [r1, 0x1] - b _081D3ECC - .pool -_081D3DC8: - adds r0, r2, 0 - bl sub_81D3EE8 - lsls r0, 16 - cmp r0, 0 - beq _081D3DD8 - bl sub_81D413C -_081D3DD8: - ldr r0, =gUnknown_03003144 - ldrb r0, [r0] - cmp r0, 0x2 - beq _081D3DE2 - b _081D3ECC -_081D3DE2: - b _081D3E04 - .pool -_081D3DE8: - bl sub_81D3D34 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_81D3F1C - ldr r1, =gUnknown_030012C8 - movs r0, 0x3 - strb r0, [r1, 0x1] -_081D3DFC: - ldr r0, =gUnknown_03003144 - ldrb r0, [r0] - cmp r0, 0x2 - bne _081D3E18 -_081D3E04: - ldr r1, =gUnknown_030012C8 - strb r0, [r1, 0x4] - movs r0, 0x6 - strb r0, [r1, 0x1] - b _081D3ECC - .pool -_081D3E18: - ldr r2, =gUnknown_030012E6 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - ldr r1, =gUnknown_030012E8 - ldr r0, [r1] - adds r3, r0, 0x1 - str r3, [r1] - ldr r1, =gUnknown_030012C8 - ldrb r0, [r1] - cmp r0, 0 - bne _081D3E3C - cmp r3, 0x3C - bls _081D3E3C - movs r0, 0x1 - strb r0, [r1, 0x4] - movs r0, 0x6 - strb r0, [r1, 0x1] -_081D3E3C: - ldr r4, =gUnknown_030012C8 - ldrb r0, [r4, 0x2] - cmp r0, 0x2 - beq _081D3ECC - ldrb r0, [r4] - cmp r0, 0 - beq _081D3E64 - ldrh r0, [r2] - cmp r0, 0x2 - bls _081D3E64 - bl sub_81D413C - movs r0, 0x2 - b _081D3ECA - .pool -_081D3E64: - bl sub_81D413C - ldr r1, =gUnknown_030012C8 - movs r0, 0x2 - strb r0, [r1, 0x2] - b _081D3ECC - .pool -_081D3E74: - bl sub_81D3CBC - ldr r1, =gUnknown_030012C8 - movs r0, 0x5 - strb r0, [r1, 0x1] - b _081D3ECC - .pool -_081D3E84: - ldr r0, =gUnknown_030012C8 - ldrb r0, [r0] - cmp r0, 0x1 - bne _081D3E98 - ldr r0, =gUnknown_030012E6 - ldrh r0, [r0] - cmp r0, 0x2 - bls _081D3E98 - bl sub_81D413C -_081D3E98: - ldr r1, =gUnknown_030012E6 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x3C - bls _081D3ECC - ldr r0, =gUnknown_030012C8 - movs r1, 0x1 - strb r1, [r0, 0x4] - movs r1, 0x6 - strb r1, [r0, 0x1] - b _081D3ECC - .pool -_081D3EBC: - ldr r4, =gUnknown_030012C8 - ldrb r0, [r4, 0x2] - cmp r0, 0 - beq _081D3ECC - bl sub_81D3C7C - movs r0, 0 -_081D3ECA: - strb r0, [r4, 0x2] -_081D3ECC: - ldr r2, =gUnknown_030012C8 - ldrb r0, [r2, 0x2] - ldrb r1, [r2, 0x4] - lsls r1, 2 - orrs r0, r1 - ldrb r1, [r2, 0x3] - lsls r1, 4 - orrs r0, r1 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D3D70 - - thumb_func_start sub_81D3EE8 -sub_81D3EE8: @ 81D3EE8 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =0x04000128 - ldr r0, [r0] - movs r1, 0xC - ands r0, r1 - cmp r0, 0x8 - bne _081D3F0C - cmp r2, 0 - beq _081D3F0C - ldr r1, =gUnknown_030012C8 - movs r0, 0x1 - b _081D3F10 - .pool -_081D3F0C: - ldr r1, =gUnknown_030012C8 - movs r0, 0 -_081D3F10: - strb r0, [r1] - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D3EE8 - - thumb_func_start sub_81D3F1C -sub_81D3F1C: @ 81D3F1C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r3, =gUnknown_030012C8 - ldrb r0, [r3] - cmp r0, 0 - beq _081D3F54 - ldr r2, =0x04000128 - ldrh r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] - str r5, [r3, 0x8] - ldr r0, =0x04000120 - str r4, [r0] - lsrs r0, r4, 2 - adds r0, 0x1 - str r0, [r3, 0x10] - bl sub_81D3F68 - b _081D3F5C - .pool -_081D3F54: - ldr r1, =0x04000128 - ldrh r0, [r1] - strh r0, [r1] - str r2, [r3, 0x8] -_081D3F5C: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D3F1C - - thumb_func_start sub_81D3F68 -sub_81D3F68: @ 81D3F68 - ldr r1, =0x0400010c - ldr r2, =0x0000fda7 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, =0x0400010e - movs r2, 0x40 - strh r2, [r0] - ldr r3, =0x04000208 - movs r0, 0 - strh r0, [r3] - adds r1, 0xF4 - ldrh r0, [r1] - orrs r0, r2 - strh r0, [r1] - movs r0, 0x1 - strh r0, [r3] - bx lr - .pool - thumb_func_end sub_81D3F68 - - thumb_func_start sub_81D3F9C -sub_81D3F9C: @ 81D3F9C - push {lr} - bl sub_81D414C - bl sub_81D413C - pop {r0} - bx r0 - thumb_func_end sub_81D3F9C - - thumb_func_start sub_81D3FAC -sub_81D3FAC: @ 81D3FAC - push {r4-r6,lr} - sub sp, 0x8 - ldr r2, =gUnknown_030012C8 - ldrb r0, [r2, 0x1] - adds r3, r2, 0 - cmp r0, 0x3 - beq _081D4034 - cmp r0, 0x3 - bgt _081D3FC8 - cmp r0, 0x1 - beq _081D3FD0 - b _081D412A - .pool -_081D3FC8: - cmp r0, 0x5 - bne _081D3FCE - b _081D40FC -_081D3FCE: - b _081D412A -_081D3FD0: - ldr r1, =0x0400012a - ldr r2, =0x0000ccd0 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, =0x04000120 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r4, 0 - ldr r6, =0x0000ccd0 - ldr r5, =0x0000ffff -_081D3FEC: - lsls r0, r1, 1 - add r0, sp - ldrh r0, [r0] - cmp r0, r6 - bne _081D4010 - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - b _081D401A - .pool -_081D4010: - cmp r0, r5 - beq _081D401A - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_081D401A: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x3 - bls _081D3FEC - cmp r2, 0x2 - beq _081D402A - b _081D412A -_081D402A: - cmp r4, 0 - beq _081D4030 - b _081D412A -_081D4030: - strb r2, [r3, 0x1] - b _081D412A -_081D4034: - ldr r0, =0x04000120 - ldr r4, [r0] - ldr r0, [r2, 0xC] - cmp r0, 0 - bne _081D404A - ldrb r0, [r2] - cmp r0, 0 - bne _081D404A - lsrs r0, r4, 2 - adds r0, 0x1 - str r0, [r2, 0x10] -_081D404A: - ldrb r0, [r3] - cmp r0, 0x1 - bne _081D4080 - ldr r1, [r3, 0xC] - ldr r0, [r3, 0x10] - cmp r1, r0 - bge _081D4074 - ldr r2, =0x04000120 - ldr r0, [r3, 0x8] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - str r0, [r2] - ldr r0, [r3, 0x14] - ldr r1, [r1] - adds r0, r1 - str r0, [r3, 0x14] - b _081D40BA - .pool -_081D4074: - ldr r1, =0x04000120 - ldr r0, [r3, 0x14] - b _081D40B8 - .pool -_081D4080: - ldr r1, [r3, 0xC] - cmp r1, 0 - ble _081D40A0 - ldr r0, [r3, 0x10] - adds r0, 0x1 - cmp r1, r0 - bge _081D40A0 - ldr r0, [r3, 0x8] - lsls r1, 2 - adds r1, r0 - subs r1, 0x4 - str r4, [r1] - ldr r0, [r3, 0x14] - adds r0, r4 - str r0, [r3, 0x14] - b _081D40B4 -_081D40A0: - ldr r0, [r3, 0xC] - cmp r0, 0 - beq _081D40B4 - ldr r0, [r3, 0x14] - cmp r0, r4 - bne _081D40B0 - movs r0, 0x1 - b _081D40B2 -_081D40B0: - movs r0, 0x2 -_081D40B2: - strb r0, [r3, 0x3] -_081D40B4: - ldr r1, =gUnknown_030012E8 - movs r0, 0 -_081D40B8: - str r0, [r1] -_081D40BA: - ldr r1, [r3, 0xC] - adds r1, 0x1 - str r1, [r3, 0xC] - ldr r0, [r3, 0x10] - adds r0, 0x2 - cmp r1, r0 - bge _081D40EA - ldrb r0, [r3] - cmp r0, 0 - beq _081D40E4 - ldr r0, =0x0400010e - ldrh r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strh r1, [r0] - b _081D412A - .pool -_081D40E4: - bl sub_81D413C - b _081D412A -_081D40EA: - movs r0, 0 - movs r1, 0x4 - strb r1, [r3, 0x1] - ldr r1, =gUnknown_030012E6 - strh r0, [r1] - b _081D412A - .pool -_081D40FC: - ldrb r3, [r2] - cmp r3, 0 - bne _081D4108 - ldr r1, =0x0400012a - ldrb r0, [r2, 0x3] - strh r0, [r1] -_081D4108: - ldr r0, =0x04000120 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - mov r0, sp - ldrh r1, [r0, 0x2] - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _081D412A - cmp r3, 0x1 - bne _081D4126 - strb r1, [r2, 0x3] -_081D4126: - movs r0, 0x6 - strb r0, [r2, 0x1] -_081D412A: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D3FAC - - thumb_func_start sub_81D413C -sub_81D413C: @ 81D413C - ldr r0, =0x04000128 - ldrh r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strh r1, [r0] - bx lr - .pool - thumb_func_end sub_81D413C - - thumb_func_start sub_81D414C -sub_81D414C: @ 81D414C - ldr r2, =0x0400010e - ldrh r1, [r2] - ldr r0, =0x0000ff7f - ands r0, r1 - strh r0, [r2] - ldr r1, =0x0400010c - ldr r2, =0x0000fda7 - adds r0, r2, 0 - strh r0, [r1] - bx lr - .pool - thumb_func_end sub_81D414C - - thumb_func_start sub_81D4170 -sub_81D4170: @ 81D4170 - push {r4,lr} - ldr r0, =0x04000130 - ldrh r0, [r0] - ldr r2, =0x000003ff - adds r1, r2, 0 - eors r1, r0 - ldr r4, =gUnknown_030012E2 - ldr r3, =gUnknown_030012E0 - ldrh r2, [r3] - adds r0, r1, 0 - bics r0, r2 - strh r0, [r4] - strh r1, [r3] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D4170 - - thumb_func_start sub_81D41A0 -sub_81D41A0: @ 81D41A0 - ldr r1, =gUnknown_030012EC - ldr r0, =0x04000208 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_030012EE - ldr r0, =0x04000200 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_030012F0 - ldr r0, =0x0400010e - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_030012F2 - ldr r0, =0x04000128 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_030012F4 - ldr r0, =0x04000134 - ldrh r0, [r0] - strh r0, [r1] - bx lr - .pool - thumb_func_end sub_81D41A0 - - thumb_func_start sub_81D41F4 -sub_81D41F4: @ 81D41F4 - ldr r1, =0x04000208 - ldr r0, =gUnknown_030012EC - ldrh r0, [r0] - strh r0, [r1] - subs r1, 0x8 - ldr r0, =gUnknown_030012EE - ldrh r0, [r0] - strh r0, [r1] - subs r1, 0xF2 - ldr r0, =gUnknown_030012F0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x1A - ldr r0, =gUnknown_030012F2 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0xC - ldr r0, =gUnknown_030012F4 - ldrh r0, [r0] - strh r0, [r1] - bx lr - .pool - thumb_func_end sub_81D41F4 - - thumb_func_start sub_81D4238 -sub_81D4238: @ 81D4238 - push {lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - ldr r1, =gUnknown_030012C8 - ldr r2, =0x05000006 - mov r0, sp - bl CpuSet - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D4238 - - thumb_func_start sub_81D4258 -sub_81D4258: @ 81D4258 - push {lr} - sub sp, 0x4 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - movs r0, 0x1 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - mov r0, sp - ldrb r0, [r0] - add sp, 0x4 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D4258 - - thumb_func_start sub_81D427C -sub_81D427C: @ 81D427C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - bl sub_81D4258 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r2, =gUnknown_02037350 - adds r5, r1, r2 - ldr r4, =gUnknown_030012F8 - ldr r3, =gUnknown_02037590 - ldrb r1, [r3, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x14] - ldrh r1, [r5, 0x10] - subs r0, r1 - strh r0, [r4] - ldr r4, =gUnknown_030012FA - ldrb r1, [r3, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x16] - ldrh r1, [r5, 0x12] - subs r0, r1 - strh r0, [r4] - movs r0, 0 - mov r8, r0 - ldr r2, =gUnknown_030012FC - movs r1, 0 -_081D42CA: - mov r3, r8 - adds r0, r3, r2 - strb r1, [r0] - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0x3 - bls _081D42CA - ldr r2, =gUnknown_02037350 - ldr r0, =gUnknown_02037590 - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r2, r0, r2 - movs r4, 0x14 - ldrsh r1, [r2, r4] - movs r6, 0x10 - ldrsh r0, [r2, r6] - cmp r1, r0 - bne _081D4304 - movs r0, 0x16 - ldrsh r1, [r2, r0] - movs r3, 0x12 - ldrsh r0, [r2, r3] - cmp r1, r0 - beq _081D4356 -_081D4304: - ldr r0, =0x0000403a - bl VarGet - lsls r0, 16 - movs r1, 0xE0 - lsls r1, 11 - ands r1, r0 - cmp r1, 0 - bne _081D4338 - ldrb r1, [r5, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - b _081D433E - .pool -_081D4338: - ldrb r0, [r5, 0x1] - movs r1, 0x20 - orrs r0, r1 -_081D433E: - strb r0, [r5, 0x1] - ldr r0, =0x0000403a - bl VarGet - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x9 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _081D4360 -_081D4356: - movs r0, 0 - b _081D4816 - .pool -_081D4360: - movs r4, 0 - mov r8, r4 - ldr r6, =gUnknown_02037350 - mov r10, r6 -_081D4368: - ldr r3, =gUnknown_02037590 - ldrb r1, [r3, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - mov r1, r10 - adds r4, r0, r1 - mov r2, r8 - lsls r1, r2, 2 - ldr r6, =gUnknown_0862608C - adds r0, r1, r6 - movs r6, 0x14 - ldrsh r2, [r4, r6] - movs r6, 0 - ldrsh r0, [r0, r6] - ldr r6, =gUnknown_02037350 - mov r9, r6 - mov r12, r3 - adds r7, r1, 0 - cmp r2, r0 - beq _081D4394 - b _081D449E -_081D4394: - movs r3, 0 - ldr r1, =gUnknown_0862608E - adds r0, r7, r1 - movs r2, 0x16 - ldrsh r1, [r4, r2] - movs r4, 0 - ldrsh r2, [r0, r4] - cmp r1, r2 - bge _081D43C0 - movs r6, 0x12 - ldrsh r0, [r5, r6] - cmp r0, r2 - bgt _081D43CA - b _081D449E - .pool -_081D43C0: - movs r1, 0x12 - ldrsh r0, [r5, r1] - cmp r0, r2 - blt _081D43CA - movs r3, 0x1 -_081D43CA: - cmp r3, 0 - bne _081D449E - ldr r0, =gUnknown_030012F8 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - ble _081D4410 - movs r3, 0x10 - ldrsh r2, [r5, r3] - adds r2, 0x1 - mov r4, r12 - ldrb r1, [r4, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - add r0, r9 - movs r6, 0x14 - ldrsh r0, [r0, r6] - cmp r2, r0 - bne _081D4446 - ldrh r0, [r5, 0x10] - adds r0, 0x1 - lsls r0, 16 - asrs r0, 16 - movs r2, 0x12 - ldrsh r1, [r5, r2] - bl sub_81D4834 - lsls r0, 24 - cmp r0, 0 - beq _081D4446 -_081D4408: - movs r0, 0x4 - b _081D4816 - .pool -_081D4410: - cmp r0, 0 - bge _081D4446 - movs r3, 0x10 - ldrsh r2, [r5, r3] - subs r2, 0x1 - mov r4, r12 - ldrb r1, [r4, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - add r0, r9 - movs r6, 0x14 - ldrsh r0, [r0, r6] - cmp r2, r0 - bne _081D4446 - ldrh r0, [r5, 0x10] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - movs r2, 0x12 - ldrsh r1, [r5, r2] - bl sub_81D4834 - lsls r0, 24 - cmp r0, 0 - beq _081D4446 - b _081D45AA -_081D4446: - ldr r0, =gUnknown_02037590 - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - add r0, r10 - movs r3, 0x10 - ldrsh r1, [r5, r3] - movs r4, 0x14 - ldrsh r0, [r0, r4] - cmp r1, r0 - bne _081D449E - ldr r0, =gUnknown_030012FA - movs r6, 0 - ldrsh r0, [r0, r6] - cmp r0, 0 - ble _081D4488 - adds r0, r1, 0 - ldrh r1, [r5, 0x12] - subs r1, 0x1 - lsls r1, 16 - asrs r1, 16 - bl sub_81D4834 - lsls r0, 24 - cmp r0, 0 - beq _081D449E -_081D447C: - movs r0, 0x2 - b _081D4816 - .pool -_081D4488: - movs r2, 0x10 - ldrsh r0, [r5, r2] - ldrh r1, [r5, 0x12] - adds r1, 0x1 - lsls r1, 16 - asrs r1, 16 - bl sub_81D4834 - lsls r0, 24 - cmp r0, 0 - bne _081D4538 -_081D449E: - ldr r2, =gUnknown_02037590 - ldrb r1, [r2, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - mov r3, r10 - adds r4, r0, r3 - ldr r6, =gUnknown_0862608C - ldr r1, =gUnknown_0862608E - adds r0, r7, r1 - movs r3, 0x16 - ldrsh r1, [r4, r3] - movs r3, 0 - ldrsh r0, [r0, r3] - ldr r3, =gUnknown_02037350 - mov r9, r3 - mov r12, r2 - cmp r1, r0 - beq _081D44C6 - b _081D45D0 -_081D44C6: - movs r3, 0 - adds r0, r7, r6 - movs r6, 0x14 - ldrsh r1, [r4, r6] - movs r4, 0 - ldrsh r2, [r0, r4] - cmp r1, r2 - bge _081D44F0 - movs r6, 0x10 - ldrsh r0, [r5, r6] - cmp r0, r2 - bgt _081D44FA - b _081D45D0 - .pool -_081D44F0: - movs r1, 0x10 - ldrsh r0, [r5, r1] - cmp r0, r2 - blt _081D44FA - movs r3, 0x1 -_081D44FA: - cmp r3, 0 - bne _081D45D0 - ldr r0, =gUnknown_030012FA - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - ble _081D4540 - movs r3, 0x12 - ldrsh r2, [r5, r3] - adds r2, 0x1 - mov r4, r12 - ldrb r1, [r4, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - add r0, r9 - movs r6, 0x16 - ldrsh r0, [r0, r6] - cmp r2, r0 - bne _081D4576 - movs r1, 0x10 - ldrsh r0, [r5, r1] - ldrh r1, [r5, 0x12] - adds r1, 0x1 - lsls r1, 16 - asrs r1, 16 - bl sub_81D4834 - lsls r0, 24 - cmp r0, 0 - beq _081D4576 -_081D4538: - movs r0, 0x1 - b _081D4816 - .pool -_081D4540: - cmp r0, 0 - bge _081D4576 - movs r3, 0x12 - ldrsh r2, [r5, r3] - subs r2, 0x1 - mov r4, r12 - ldrb r1, [r4, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - add r0, r9 - movs r6, 0x16 - ldrsh r0, [r0, r6] - cmp r2, r0 - bne _081D4576 - movs r1, 0x10 - ldrsh r0, [r5, r1] - ldrh r1, [r5, 0x12] - subs r1, 0x1 - lsls r1, 16 - asrs r1, 16 - bl sub_81D4834 - lsls r0, 24 - cmp r0, 0 - beq _081D4576 - b _081D447C -_081D4576: - ldr r0, =gUnknown_02037590 - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - add r0, r10 - movs r2, 0x12 - ldrsh r1, [r5, r2] - movs r3, 0x16 - ldrsh r0, [r0, r3] - cmp r1, r0 - bne _081D45D0 - ldr r0, =gUnknown_030012F8 - movs r4, 0 - ldrsh r0, [r0, r4] - cmp r0, 0 - ble _081D45B8 - ldrh r0, [r5, 0x10] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - bl sub_81D4834 - lsls r0, 24 - cmp r0, 0 - beq _081D45D0 -_081D45AA: - movs r0, 0x3 - b _081D4816 - .pool -_081D45B8: - ldrh r0, [r5, 0x10] - adds r0, 0x1 - lsls r0, 16 - asrs r0, 16 - movs r2, 0x12 - ldrsh r1, [r5, r2] - bl sub_81D4834 - lsls r0, 24 - cmp r0, 0 - beq _081D45D0 - b _081D4408 -_081D45D0: - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0x3 - bhi _081D45E0 - b _081D4368 -_081D45E0: - adds r0, r5, 0 - movs r1, 0 - bl sub_81D4C14 - lsls r0, 24 - cmp r0, 0 - beq _081D461C - adds r0, r5, 0 - movs r1, 0x1 - bl sub_81D4C58 - lsls r0, 24 - cmp r0, 0 - beq _081D4604 - movs r0, 0x2 - bl sub_81D4D24 - b _081D4812 -_081D4604: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_81D4CE0 - lsls r0, 24 - cmp r0, 0 - bne _081D4614 - b _081D447C -_081D4614: - movs r0, 0x2 - bl sub_81D4D24 - b _081D4812 -_081D461C: - adds r0, r5, 0 - movs r1, 0 - bl sub_81D4C9C - lsls r0, 24 - cmp r0, 0 - beq _081D4658 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_81D4C58 - lsls r0, 24 - cmp r0, 0 - beq _081D4640 - movs r0, 0x2 - bl sub_81D4D24 - b _081D4812 -_081D4640: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_81D4CE0 - lsls r0, 24 - cmp r0, 0 - bne _081D4650 - b _081D4538 -_081D4650: - movs r0, 0x2 - bl sub_81D4D24 - b _081D4812 -_081D4658: - adds r0, r5, 0 - movs r1, 0 - bl sub_81D4C58 - lsls r0, 24 - cmp r0, 0 - beq _081D4694 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_81D4C14 - lsls r0, 24 - cmp r0, 0 - beq _081D467C - movs r0, 0x2 - bl sub_81D4D24 - b _081D4812 -_081D467C: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_81D4C9C - lsls r0, 24 - cmp r0, 0 - bne _081D468C - b _081D4408 -_081D468C: - movs r0, 0x2 - bl sub_81D4D24 - b _081D4812 -_081D4694: - adds r0, r5, 0 - movs r1, 0 - bl sub_81D4CE0 - lsls r0, 24 - cmp r0, 0 - beq _081D46D0 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_81D4C14 - lsls r0, 24 - cmp r0, 0 - beq _081D46B8 - movs r0, 0x2 - bl sub_81D4D24 - b _081D4812 -_081D46B8: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_81D4C9C - lsls r0, 24 - cmp r0, 0 - bne _081D46C8 - b _081D45AA -_081D46C8: - movs r0, 0x2 - bl sub_81D4D24 - b _081D4812 -_081D46D0: - ldr r0, =gUnknown_030012FA - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r0, 0 - bne _081D476E - ldr r2, =gUnknown_02037350 - ldr r0, =gUnknown_02037590 - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r4, 0x12 - ldrsh r1, [r0, r4] - ldrh r2, [r5, 0x12] - movs r6, 0x12 - ldrsh r0, [r5, r6] - cmp r1, r0 - ble _081D470C - movs r1, 0x10 - ldrsh r0, [r5, r1] - subs r1, r2, 0x1 - lsls r1, 16 - asrs r1, 16 - bl sub_81D4834 - lsls r0, 24 - cmp r0, 0 - beq _081D470C - b _081D447C -_081D470C: - ldr r2, =gUnknown_02037350 - ldr r0, =gUnknown_02037590 - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r2, 0x12 - ldrsh r1, [r0, r2] - ldrh r2, [r5, 0x12] - movs r3, 0x12 - ldrsh r0, [r5, r3] - cmp r1, r0 - bge _081D473E - movs r4, 0x10 - ldrsh r0, [r5, r4] - adds r1, r2, 0x1 - lsls r1, 16 - asrs r1, 16 - bl sub_81D4834 - lsls r0, 24 - cmp r0, 0 - beq _081D473E - b _081D4538 -_081D473E: - movs r6, 0x10 - ldrsh r0, [r5, r6] - ldrh r1, [r5, 0x12] - subs r1, 0x1 - lsls r1, 16 - asrs r1, 16 - bl sub_81D4834 - lsls r0, 24 - cmp r0, 0 - beq _081D4756 - b _081D447C -_081D4756: - movs r1, 0x10 - ldrsh r0, [r5, r1] - ldrh r1, [r5, 0x12] - adds r1, 0x1 - lsls r1, 16 - asrs r1, 16 - bl sub_81D4834 - lsls r0, 24 - cmp r0, 0 - beq _081D476E - b _081D4538 -_081D476E: - ldr r0, =gUnknown_030012F8 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - bne _081D480C - ldr r2, =gUnknown_02037350 - ldr r0, =gUnknown_02037590 - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r3, 0x10 - ldrsh r1, [r0, r3] - ldrh r2, [r5, 0x10] - movs r4, 0x10 - ldrsh r0, [r5, r4] - cmp r1, r0 - ble _081D47AA - subs r0, r2, 0x1 - lsls r0, 16 - asrs r0, 16 - movs r6, 0x12 - ldrsh r1, [r5, r6] - bl sub_81D4834 - lsls r0, 24 - cmp r0, 0 - beq _081D47AA - b _081D45AA -_081D47AA: - ldr r2, =gUnknown_02037350 - ldr r0, =gUnknown_02037590 - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r2, 0x10 - ldrsh r1, [r0, r2] - ldrh r2, [r5, 0x10] - movs r3, 0x10 - ldrsh r0, [r5, r3] - cmp r1, r0 - bge _081D47DC - adds r0, r2, 0x1 - lsls r0, 16 - asrs r0, 16 - movs r4, 0x12 - ldrsh r1, [r5, r4] - bl sub_81D4834 - lsls r0, 24 - cmp r0, 0 - beq _081D47DC - b _081D4408 -_081D47DC: - ldrh r0, [r5, 0x10] - adds r0, 0x1 - lsls r0, 16 - asrs r0, 16 - movs r6, 0x12 - ldrsh r1, [r5, r6] - bl sub_81D4834 - lsls r0, 24 - cmp r0, 0 - beq _081D47F4 - b _081D4408 -_081D47F4: - ldrh r0, [r5, 0x10] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - movs r2, 0x12 - ldrsh r1, [r5, r2] - bl sub_81D4834 - lsls r0, 24 - cmp r0, 0 - beq _081D480C - b _081D45AA -_081D480C: - movs r0, 0 - bl sub_81D4890 -_081D4812: - lsls r0, 24 - lsrs r0, 24 -_081D4816: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D427C - - thumb_func_start sub_81D4834 -sub_81D4834: @ 81D4834 - push {r4,lr} - lsls r0, 16 - lsls r1, 16 - lsrs r4, r1, 16 - ldr r3, =gUnknown_02037350 - ldr r1, =gUnknown_02037590 - ldrb r2, [r1, 0x5] - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r2, r1, r3 - movs r3, 0x10 - ldrsh r1, [r2, r3] - lsrs r3, r0, 16 - asrs r0, 16 - cmp r1, r0 - bne _081D4870 - movs r0, 0x12 - ldrsh r1, [r2, r0] - lsls r0, r4, 16 - asrs r0, 16 - cmp r1, r0 - bne _081D4870 - movs r0, 0 - b _081D4888 - .pool -_081D4870: - lsls r0, r3, 16 - asrs r0, 16 - lsls r1, r4, 16 - asrs r1, 16 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl sub_8088E64 - lsls r0, 24 - lsrs r0, 24 -_081D4888: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81D4834 - - thumb_func_start sub_81D4890 -sub_81D4890: @ 81D4890 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - bl sub_81D4258 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, =gUnknown_02037350 - adds r4, r1, r0 - movs r1, 0 - ldr r3, =gUnknown_030012FC - movs r2, 0 -_081D48B0: - adds r0, r1, r3 - strb r2, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bls _081D48B0 - movs r1, 0x10 - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x12] - subs r1, 0x1 - lsls r1, 16 - asrs r1, 16 - bl sub_81D4834 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081D48E8 - cmp r6, 0x2 - beq _081D48E8 - ldr r0, =gUnknown_030012FC - adds r0, r5, r0 - movs r1, 0x2 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_081D48E8: - ldrh r0, [r4, 0x10] - adds r0, 0x1 - lsls r0, 16 - asrs r0, 16 - movs r2, 0x12 - ldrsh r1, [r4, r2] - bl sub_81D4834 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081D4912 - cmp r6, 0x4 - beq _081D4912 - ldr r0, =gUnknown_030012FC - adds r0, r5, r0 - movs r1, 0x4 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_081D4912: - movs r1, 0x10 - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x12] - adds r1, 0x1 - lsls r1, 16 - asrs r1, 16 - bl sub_81D4834 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1 - bne _081D493A - cmp r6, 0x1 - beq _081D493A - ldr r0, =gUnknown_030012FC - adds r0, r5, r0 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_081D493A: - ldrh r0, [r4, 0x10] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - movs r2, 0x12 - ldrsh r1, [r4, r2] - bl sub_81D4834 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081D4964 - cmp r6, 0x3 - beq _081D4964 - ldr r0, =gUnknown_030012FC - adds r0, r5, r0 - movs r1, 0x3 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_081D4964: - cmp r5, 0x1 - bhi _081D4974 - ldr r0, =gUnknown_030012FC - b _081D4988 - .pool -_081D4974: - ldr r4, =gUnknown_030012FC - ldr r0, =0x0000403a - bl VarGet - lsls r0, 16 - lsrs r0, 16 - adds r1, r5, 0 - bl __modsi3 - adds r0, r4 -_081D4988: - ldrb r0, [r0] - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D4890 - - thumb_func_start sub_81D4998 -sub_81D4998: @ 81D4998 - push {r4,lr} - ldr r4, =0x0000403a - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0, 0x4] - ldr r0, =0x0000391a - cmp r1, r0 - bne _081D49E0 - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, =0x0000270e - cmp r2, r0 - bls _081D49D8 - adds r0, r4, 0 - movs r1, 0 - bl VarSet - b _081D49E0 - .pool -_081D49D8: - adds r0, r4, 0 - adds r1, r2, 0 - bl VarSet -_081D49E0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81D4998 - - thumb_func_start FieldObjectIsFarawayIslandMew -@ bool8 FieldObjectIsFarawayIslandMew(struct npc_state *fieldObject) -FieldObjectIsFarawayIslandMew: @ 81D49E8 - push {lr} - adds r2, r0, 0 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0, 0x4] - ldr r0, =0x0000391a - cmp r1, r0 - bne _081D4A0C - ldrb r0, [r2, 0x5] - cmp r0, 0xE5 - bne _081D4A0C - movs r0, 0x1 - b _081D4A0E - .pool -_081D4A0C: - movs r0, 0 -_081D4A0E: - pop {r1} - bx r1 - thumb_func_end FieldObjectIsFarawayIslandMew - - thumb_func_start unown_chamber_related -unown_chamber_related: @ 81D4A14 - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0, 0x4] - ldr r0, =0x0000391a - cmp r1, r0 - bne _081D4A50 - movs r0, 0xE5 - lsls r0, 1 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081D4A50 - ldr r0, =0x000002ce - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081D4A50 - movs r0, 0x1 - b _081D4A52 - .pool -_081D4A50: - movs r0, 0 -_081D4A52: - pop {r1} - bx r1 - thumb_func_end unown_chamber_related - - thumb_func_start sub_81D4A58 -sub_81D4A58: @ 81D4A58 - push {r4,lr} - ldr r4, =0x0000403a - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - ldr r1, =0xffff0000 - cmp r0, r1 - beq _081D4A88 - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - cmp r1, 0 - bne _081D4A88 - movs r0, 0x1 - b _081D4A8A - .pool -_081D4A88: - movs r0, 0 -_081D4A8A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81D4A58 - - thumb_func_start sub_81D4A90 -sub_81D4A90: @ 81D4A90 - push {r4-r6,lr} - sub sp, 0x4 - bl sub_81D4258 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, =gUnknown_02037350 - adds r5, r1, r0 - ldrb r1, [r5, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r5, 0x1] - ldr r0, =gUnknown_020375E0 - ldrh r4, [r0] - cmp r4, 0x1 - bne _081D4AF8 - ldrb r0, [r5, 0x3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r5, 0x3] - ldr r3, =gUnknown_02020630 - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x42 - ldrb r2, [r0] - movs r1, 0x3F - ands r1, r2 - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x43 - strb r4, [r0] - b _081D4BC4 - .pool -_081D4AF8: - ldr r0, =0x0000403a - ldr r1, =0x0000ffff - bl VarSet - ldrb r0, [r5, 0x3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r5, 0x3] - ldr r6, =gUnknown_02020630 - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x42 - ldrb r2, [r0] - movs r1, 0x3F - ands r1, r2 - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] - ldr r0, =gUnknown_020375F4 - ldrh r0, [r0] - cmp r0, 0x2 - beq _081D4B3A - ldrb r0, [r5, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - adds r1, 0x43 - movs r0, 0x1 - strb r0, [r1] -_081D4B3A: - ldr r4, =gFieldEffectObjectPaletteInfo1 - adds r0, r4, 0 - bl LoadTaggedObjectPalette - ldrh r0, [r4, 0x4] - bl IndexOfObjectPaletteTag - lsls r0, 24 - lsrs r0, 24 - bl sub_80ABE18 - ldrh r1, [r5, 0x10] - mov r0, sp - strh r1, [r0] - ldrh r0, [r5, 0x12] - mov r4, sp - adds r4, 0x2 - strh r0, [r4] - mov r0, sp - adds r1, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_80930E0 - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x3C] - mov r1, sp - movs r2, 0 - ldrsh r1, [r1, r2] - movs r3, 0 - ldrsh r2, [r4, r3] - ldrb r4, [r5, 0x4] - lsls r3, r4, 4 - adds r3, r4 - lsls r3, 2 - adds r3, r6 - adds r3, 0x43 - ldrb r3, [r3] - subs r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - bl AddObjectToBack - ldr r1, =gUnknown_0203CF50 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _081D4BC4 - ldrb r0, [r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - adds r3, r1, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r3] - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - movs r2, 0x8 - orrs r0, r2 - strb r0, [r1, 0x5] - ldr r0, =DummyObjectCallback - str r0, [r1, 0x1C] -_081D4BC4: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D4A90 - - thumb_func_start sub_81D4BEC -sub_81D4BEC: @ 81D4BEC - push {lr} - ldr r1, =gUnknown_0203CF50 - ldrb r0, [r1] - cmp r0, 0x40 - beq _081D4C06 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r0, r1 - bl RemoveObjectAndFreeTiles -_081D4C06: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D4BEC - - thumb_func_start sub_81D4C14 -sub_81D4C14: @ 81D4C14 - push {r4,lr} - adds r2, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - ldr r0, =gUnknown_030012FA - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - ble _081D4C50 - movs r1, 0x10 - ldrsh r0, [r2, r1] - ldrh r1, [r2, 0x12] - subs r1, 0x1 - lsls r1, 16 - asrs r1, 16 - bl sub_81D4834 - lsls r0, 24 - cmp r0, 0 - beq _081D4C50 - ldr r0, =gUnknown_030012FC - adds r0, r4, r0 - movs r1, 0x2 - strb r1, [r0] - movs r0, 0x1 - b _081D4C52 - .pool -_081D4C50: - movs r0, 0 -_081D4C52: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81D4C14 - - thumb_func_start sub_81D4C58 -sub_81D4C58: @ 81D4C58 - push {r4,lr} - adds r2, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - ldr r0, =gUnknown_030012F8 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bge _081D4C94 - ldrh r0, [r2, 0x10] - adds r0, 0x1 - lsls r0, 16 - asrs r0, 16 - movs r3, 0x12 - ldrsh r1, [r2, r3] - bl sub_81D4834 - lsls r0, 24 - cmp r0, 0 - beq _081D4C94 - ldr r0, =gUnknown_030012FC - adds r0, r4, r0 - movs r1, 0x4 - strb r1, [r0] - movs r0, 0x1 - b _081D4C96 - .pool -_081D4C94: - movs r0, 0 -_081D4C96: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81D4C58 - - thumb_func_start sub_81D4C9C -sub_81D4C9C: @ 81D4C9C - push {r4,lr} - adds r2, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - ldr r0, =gUnknown_030012FA - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bge _081D4CD8 - movs r1, 0x10 - ldrsh r0, [r2, r1] - ldrh r1, [r2, 0x12] - adds r1, 0x1 - lsls r1, 16 - asrs r1, 16 - bl sub_81D4834 - lsls r0, 24 - cmp r0, 0 - beq _081D4CD8 - ldr r0, =gUnknown_030012FC - adds r0, r4, r0 - movs r1, 0x1 - strb r1, [r0] - movs r0, 0x1 - b _081D4CDA - .pool -_081D4CD8: - movs r0, 0 -_081D4CDA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81D4C9C - - thumb_func_start sub_81D4CE0 -sub_81D4CE0: @ 81D4CE0 - push {r4,lr} - adds r2, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - ldr r0, =gUnknown_030012F8 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - ble _081D4D1C - ldrh r0, [r2, 0x10] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - movs r3, 0x12 - ldrsh r1, [r2, r3] - bl sub_81D4834 - lsls r0, 24 - cmp r0, 0 - beq _081D4D1C - ldr r0, =gUnknown_030012FC - adds r0, r4, r0 - movs r1, 0x3 - strb r1, [r0] - movs r0, 0x1 - b _081D4D1E - .pool -_081D4D1C: - movs r0, 0 -_081D4D1E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81D4CE0 - - thumb_func_start sub_81D4D24 -sub_81D4D24: @ 81D4D24 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, =gUnknown_030012FC - ldr r0, =0x0000403a - bl VarGet - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0 - bl __modsi3 - adds r0, r5 - ldrb r0, [r0] - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D4D24 - - thumb_func_start sub_81D4D50 -sub_81D4D50: @ 81D4D50 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - mov r8, r2 - mov r1, sp - ldr r4, =0x04000208 - ldrh r0, [r4] - strh r0, [r1] - movs r0, 0 - strh r0, [r4] - ldr r1, =gIntrTable - ldr r0, =sub_81D3FAC - str r0, [r1, 0x4] - ldr r0, =sub_81D3F9C - str r0, [r1, 0x8] - bl sub_81D41A0 - bl sub_81D4238 - ldr r2, =0x04000200 - ldrh r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strh r0, [r2] - mov r0, sp - ldrh r0, [r0] - strh r0, [r4] - movs r0, 0 - strh r0, [r5] - str r6, [r5, 0x4] - mov r0, r8 - str r0, [r5, 0x8] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D4D50 - - thumb_func_start sub_81D4DB8 -sub_81D4DB8: @ 81D4DB8 - push {r4,lr} - sub sp, 0x4 - mov r1, sp - ldr r4, =0x04000208 - ldrh r0, [r4] - strh r0, [r1] - movs r0, 0 - strh r0, [r4] - bl sub_81D4238 - bl sub_81D41F4 - bl RestoreSerialTimer3IntrHandlers - mov r0, sp - ldrh r0, [r0] - strh r0, [r4] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D4DB8 - - thumb_func_start sub_81D4DE8 -sub_81D4DE8: @ 81D4DE8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r5, 0 - ldr r1, [r4, 0x4] - ldr r2, [r4, 0x8] - movs r0, 0x1 - movs r3, 0 - bl sub_81D3D70 - adds r1, r0, 0 - strh r1, [r4] - movs r0, 0x13 - ands r0, r1 - cmp r0, 0x10 - bne _081D4E08 - movs r5, 0x1 -_081D4E08: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _081D4E12 - movs r5, 0x2 -_081D4E12: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _081D4E1C - movs r5, 0x3 -_081D4E1C: - ldr r1, =gUnknown_03003144 - movs r0, 0 - strb r0, [r1] - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D4DE8 - - thumb_func_start sub_81D4E30 -sub_81D4E30: @ 81D4E30 - push {lr} - ldr r0, =0x0201c000 - movs r2, 0x80 - lsls r2, 6 - movs r1, 0 - bl memset - ldr r1, =gUnknown_020229C6 - ldr r2, =0x00005503 - adds r0, r2, 0 - strh r0, [r1] - bl sub_8009734 - movs r0, 0x1 - bl sub_800B330 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D4E30 - - thumb_func_start sub_81D4E60 -sub_81D4E60: @ 81D4E60 - push {lr} - sub sp, 0xC - mov r1, sp - ldr r2, =0x04000208 - ldrh r0, [r2] - strh r0, [r1] - movs r0, 0 - strh r0, [r2] - ldr r0, =gUnknown_03003174 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x4] - str r1, [sp, 0x8] - mov r0, sp - ldrh r0, [r0] - strh r0, [r2] - add r2, sp, 0x4 - ldrh r1, [r2] - ldr r0, =0x0000b9a0 - cmp r1, r0 - bne _081D4EB8 - ldrh r1, [r2, 0x2] - ldr r0, =0x0000ccd0 - cmp r1, r0 - bne _081D4EB8 - ldrh r1, [r2, 0x4] - ldr r0, =0x0000ffff - cmp r1, r0 - bne _081D4EB8 - ldrh r0, [r2, 0x6] - cmp r0, r1 - bne _081D4EB8 - movs r0, 0x1 - b _081D4EBA - .pool -_081D4EB8: - movs r0, 0 -_081D4EBA: - add sp, 0xC - pop {r1} - bx r1 - thumb_func_end sub_81D4E60 - - thumb_func_start sub_81D4EC0 -sub_81D4EC0: @ 81D4EC0 - push {lr} - bl sub_800ABBC - lsls r0, 24 - cmp r0, 0 - beq _081D4EDC - bl sub_800ABAC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _081D4EDC - movs r0, 0x1 - b _081D4EDE -_081D4EDC: - movs r0, 0 -_081D4EDE: - pop {r1} - bx r1 - thumb_func_end sub_81D4EC0 - - thumb_func_start sub_81D4EE4 -sub_81D4EE4: @ 81D4EE4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4] - subs r0, 0x3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bhi _081D4F08 - bl sub_800B33C - lsls r0, 24 - cmp r0, 0 - beq _081D4F08 - movs r0, 0 - strb r0, [r4] - movs r0, 0x3 - b _081D500E -_081D4F08: - ldrb r0, [r4] - cmp r0, 0x5 - bls _081D4F10 - b _081D500C -_081D4F10: - lsls r0, 2 - ldr r1, =_081D4F20 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081D4F20: - .4byte _081D4F38 - .4byte _081D4F54 - .4byte _081D4F6C - .4byte _081D4FA0 - .4byte _081D4FEC - .4byte _081D4FF8 -_081D4F38: - bl sub_800ABBC - lsls r0, 24 - cmp r0, 0 - beq _081D4F88 - bl sub_800ABAC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _081D4F88 - movs r0, 0x1 - strb r0, [r4] - b _081D500C -_081D4F54: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x5 - bls _081D500C - movs r0, 0 - strh r0, [r5] - movs r0, 0x2 - strb r0, [r4] - b _081D500C -_081D4F6C: - bl sub_800ABAC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _081D4F88 - movs r0, 0x49 - bl audio_play - bl sub_800A620 - movs r0, 0 - strh r0, [r5] - b _081D4FE6 -_081D4F88: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081D500C - movs r0, 0 - strb r0, [r4] - movs r0, 0x1 - b _081D500E - .pool -_081D4FA0: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1E - bls _081D4FB6 - movs r0, 0 - strb r0, [r4] - movs r0, 0x5 - b _081D500E -_081D4FB6: - bl sub_800B320 - lsls r0, 24 - cmp r0, 0 - beq _081D500C - ldr r0, =gUnknown_03003124 - ldrb r0, [r0] - cmp r0, 0 - beq _081D4FE6 - bl sub_800A23C - lsls r0, 24 - cmp r0, 0 - beq _081D4FE0 - movs r0, 0 - strb r0, [r4] - movs r0, 0x2 - b _081D500E - .pool -_081D4FE0: - movs r0, 0x4 - strb r0, [r4] - b _081D500C -_081D4FE6: - movs r0, 0x3 - strb r0, [r4] - b _081D500C -_081D4FEC: - movs r0, 0 - bl sub_800ABF4 - movs r0, 0x5 - strb r0, [r4] - b _081D500C -_081D4FF8: - ldr r0, =gUnknown_03003124 - ldrb r0, [r0] - cmp r0, 0 - bne _081D500C - strb r0, [r4] - movs r0, 0x4 - b _081D500E - .pool -_081D500C: - movs r0, 0 -_081D500E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D4EE4 - - thumb_func_start sub_81D5014 -sub_81D5014: @ 81D5014 - push {r4,lr} - ldr r0, =sub_81D5084 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - movs r0, 0 - strb r0, [r4, 0x8] - strb r0, [r4, 0x9] - strb r0, [r4, 0xA] - strb r0, [r4, 0xB] - strb r0, [r4, 0xC] - strb r0, [r4, 0xD] - movs r1, 0 - strh r0, [r4] - strh r0, [r4, 0x2] - strh r0, [r4, 0x4] - strh r0, [r4, 0x6] - strb r1, [r4, 0xE] - movs r0, 0x40 - bl AllocZeroed - str r0, [r4, 0x10] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D5014 - - thumb_func_start sub_81D505C -sub_81D505C: @ 81D505C - movs r1, 0 - strh r1, [r0] - bx lr - thumb_func_end sub_81D505C - - thumb_func_start sub_81D5064 -sub_81D5064: @ 81D5064 - push {lr} - adds r2, r0, 0 - lsls r1, 16 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - lsls r0, 16 - cmp r0, r1 - bhi _081D507A - movs r0, 0 - b _081D5080 -_081D507A: - movs r0, 0 - strh r0, [r2] - movs r0, 0x1 -_081D5080: - pop {r1} - bx r1 - thumb_func_end sub_81D5064 - - thumb_func_start sub_81D5084 -sub_81D5084: @ 81D5084 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldrb r0, [r4, 0x8] - cmp r0, 0x1A - bls _081D509C - b _081D548A -_081D509C: - lsls r0, 2 - ldr r1, =_081D50B0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081D50B0: - .4byte _081D511C - .4byte _081D5138 - .4byte _081D5148 - .4byte _081D515C - .4byte _081D516C - .4byte _081D5198 - .4byte _081D51D0 - .4byte _081D524C - .4byte _081D5268 - .4byte _081D5290 - .4byte _081D52AC - .4byte _081D52DC - .4byte _081D52F2 - .4byte _081D5308 - .4byte _081D536A - .4byte _081D5390 - .4byte _081D53A8 - .4byte _081D53C6 - .4byte _081D53F2 - .4byte _081D5418 - .4byte _081D5448 - .4byte _081D5454 - .4byte _081D5460 - .4byte _081D5430 - .4byte _081D548A - .4byte _081D548A - .4byte _081D5478 -_081D511C: - adds r0, r4, 0 - adds r0, 0x9 - ldr r1, =gUnknown_085EDFD6 - bl mevent_0814257C - cmp r0, 0 - bne _081D512C - b _081D548A -_081D512C: - movs r0, 0x1 - strb r0, [r4, 0x8] - b _081D548A - .pool -_081D5138: - bl sub_81D4E30 - adds r0, r4, 0 - bl sub_81D505C - movs r0, 0x2 - strb r0, [r4, 0x8] - b _081D548A -_081D5148: - adds r0, r4, 0 - movs r1, 0xA - bl sub_81D5064 - cmp r0, 0 - bne _081D5156 - b _081D548A -_081D5156: - movs r0, 0x3 - strb r0, [r4, 0x8] - b _081D548A -_081D515C: - bl sub_81D4EC0 - cmp r0, 0 - beq _081D5166 - b _081D52FC -_081D5166: - bl sub_80097E8 - b _081D525C -_081D516C: - adds r0, r4, 0 - adds r0, 0x9 - ldr r1, =gUnknown_085EDFF5 - bl mevent_0814257C - cmp r0, 0 - bne _081D517C - b _081D548A -_081D517C: - ldr r0, =gUnknown_085EE014 - bl sub_8018884 - adds r0, r4, 0 - bl sub_81D505C - movs r0, 0x5 - strb r0, [r4, 0x8] - b _081D548A - .pool -_081D5198: - adds r0, r4, 0 - movs r1, 0x5A - bl sub_81D5064 - cmp r0, 0 - beq _081D51AE - bl sub_81D4E30 - movs r0, 0x6 - strb r0, [r4, 0x8] - b _081D548A -_081D51AE: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _081D51BC - b _081D548A -_081D51BC: - adds r0, r4, 0 - bl sub_81D505C - movs r0, 0x5 - bl audio_play - b _081D535A - .pool -_081D51D0: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081D51F4 - movs r0, 0x5 - bl audio_play - bl sub_80097E8 - adds r0, r4, 0 - bl sub_81D505C - b _081D535A - .pool -_081D51F4: - bl sub_800ABAC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _081D5210 - adds r0, r4, 0 - bl sub_81D505C - bl sub_80097E8 - movs r0, 0x7 - strb r0, [r4, 0x8] - b _081D548A -_081D5210: - bl sub_81D4E60 - cmp r0, 0 - beq _081D522E - movs r0, 0x5 - bl audio_play - bl sub_80097E8 - adds r0, r4, 0 - bl sub_81D505C - movs r0, 0x8 - strb r0, [r4, 0x8] - b _081D548A -_081D522E: - adds r0, r4, 0 - movs r1, 0xA - bl sub_81D5064 - cmp r0, 0 - bne _081D523C - b _081D548A -_081D523C: - bl sub_80097E8 - bl sub_81D4E30 - adds r0, r4, 0 - bl sub_81D505C - b _081D548A -_081D524C: - adds r0, r4, 0 - adds r0, 0x9 - ldr r1, =gUnknown_085EE05C - bl mevent_0814257C - cmp r0, 0 - bne _081D525C - b _081D548A -_081D525C: - movs r0, 0x4 - strb r0, [r4, 0x8] - b _081D548A - .pool -_081D5268: - ldr r0, =gUnknown_085EE097 - bl sub_8018884 - ldr r0, =gUnknown_03006370 - ldr r1, =gUnknown_089A6550 - ldr r2, =gUnknown_089A3470 - subs r1, r2 - bl sub_81D4D50 - movs r0, 0x9 - strb r0, [r4, 0x8] - b _081D548A - .pool -_081D5290: - ldr r0, =gUnknown_03006370 - bl sub_81D4DE8 - strb r0, [r4, 0xE] - lsls r0, 24 - cmp r0, 0 - bne _081D52A0 - b _081D548A -_081D52A0: - movs r0, 0xA - strb r0, [r4, 0x8] - b _081D548A - .pool -_081D52AC: - ldr r0, =gUnknown_03006370 - bl sub_81D4DB8 - ldrb r0, [r4, 0xE] - cmp r0, 0x3 - bne _081D52BA - b _081D53C0 -_081D52BA: - cmp r0, 0x1 - beq _081D52C0 - b _081D546E -_081D52C0: - adds r0, r4, 0 - bl sub_81D505C - ldr r0, =gUnknown_085EE120 - bl sub_8018884 - movs r0, 0xB - strb r0, [r4, 0x8] - b _081D548A - .pool -_081D52DC: - movs r1, 0xD2 - lsls r1, 2 - adds r0, r4, 0 - bl sub_81D5064 - cmp r0, 0 - bne _081D52EC - b _081D548A -_081D52EC: - movs r0, 0xC - strb r0, [r4, 0x8] - b _081D548A -_081D52F2: - bl sub_81D4E30 - ldr r0, =gUnknown_085EE0DC - bl sub_8018884 -_081D52FC: - movs r0, 0xD - strb r0, [r4, 0x8] - b _081D548A - .pool -_081D5308: - adds r0, r4, 0 - adds r0, 0x9 - adds r1, r4, 0 - bl sub_81D4EE4 - cmp r0, 0x5 - bls _081D5318 - b _081D548A -_081D5318: - lsls r0, 2 - ldr r1, =_081D5328 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081D5328: - .4byte _081D548A - .4byte _081D5350 - .4byte _081D5340 - .4byte _081D5374 - .4byte _081D5374 - .4byte _081D5360 -_081D5340: - ldr r0, =gUnknown_085EE097 - bl sub_8018884 - movs r0, 0xE - strb r0, [r4, 0x8] - b _081D548A - .pool -_081D5350: - movs r0, 0x5 - bl audio_play - bl sub_80097E8 -_081D535A: - movs r0, 0x17 - strb r0, [r4, 0x8] - b _081D548A -_081D5360: - bl sub_80097E8 - movs r0, 0x15 - strb r0, [r4, 0x8] - b _081D548A -_081D536A: - bl sub_800B33C - lsls r0, 24 - cmp r0, 0 - beq _081D537A -_081D5374: - bl sub_80097E8 - b _081D53C0 -_081D537A: - bl sub_800A550 - lsls r0, 24 - cmp r0, 0 - bne _081D5386 - b _081D548A -_081D5386: - bl sub_800A5B4 - movs r0, 0xF - strb r0, [r4, 0x8] - b _081D548A -_081D5390: - ldr r0, =0x0201c000 - bl sub_81D3920 - strb r0, [r4, 0xE] - ldrb r0, [r4, 0xE] - bl sub_800ABF4 - movs r0, 0x10 - strb r0, [r4, 0x8] - b _081D548A - .pool -_081D53A8: - ldr r0, =gUnknown_03003124 - ldrb r0, [r0] - cmp r0, 0 - bne _081D548A - ldrb r0, [r4, 0xE] - cmp r0, 0x1 - bne _081D53C0 - movs r0, 0x11 - strb r0, [r4, 0x8] - b _081D548A - .pool -_081D53C0: - movs r0, 0x14 - strb r0, [r4, 0x8] - b _081D548A -_081D53C6: - ldr r0, =0x0201c000 - bl sub_81D3AB0 - cmp r0, 0 - beq _081D53EC - ldr r0, =gUnknown_085EE0FA - bl sub_8018884 - adds r0, r4, 0 - bl sub_81D505C - movs r0, 0x12 - strb r0, [r4, 0x8] - b _081D548A - .pool -_081D53EC: - movs r0, 0x16 - strb r0, [r4, 0x8] - b _081D548A -_081D53F2: - adds r0, r4, 0 - movs r1, 0x78 - bl sub_81D5064 - cmp r0, 0 - beq _081D548A - ldr r0, =gUnknown_085EE107 - bl sub_8018884 - movs r0, 0xB9 - lsls r0, 1 - bl fanfare_play - movs r0, 0x13 - strb r0, [r4, 0x8] - b _081D548A - .pool -_081D5418: - bl task_is_not_running_overworld_fanfare - lsls r0, 24 - cmp r0, 0 - beq _081D548A - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - b _081D543A - .pool -_081D5430: - adds r0, r4, 0 - adds r0, 0x9 - ldr r1, =gUnknown_085EE06B - bl mevent_0814257C -_081D543A: - cmp r0, 0 - beq _081D548A - movs r0, 0x1A - strb r0, [r4, 0x8] - b _081D548A - .pool -_081D5448: - adds r0, r4, 0 - adds r0, 0x9 - ldr r1, =gUnknown_085EE0A3 - b _081D5466 - .pool -_081D5454: - adds r0, r4, 0 - adds r0, 0x9 - ldr r1, =gUnknown_085EE0BF - b _081D5466 - .pool -_081D5460: - adds r0, r4, 0 - adds r0, 0x9 - ldr r1, =gUnknown_085EE12D -_081D5466: - bl mevent_0814257C - cmp r0, 0 - beq _081D548A -_081D546E: - movs r0, 0 - strb r0, [r4, 0x8] - b _081D548A - .pool -_081D5478: - ldr r0, [r4, 0x10] - bl Free - adds r0, r5, 0 - bl DestroyTask - ldr r0, =sub_80186A4 - bl SetMainCallback2 -_081D548A: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D5084 - - thumb_func_start sp194_trainer_tower -sp194_trainer_tower: @ 81D5494 - push {lr} - bl sub_81D56B0 - ldr r1, =gUnknown_0862A618 - ldr r0, =gUnknown_020375E0 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - bl sub_81D5710 - pop {r0} - bx r0 - .pool - thumb_func_end sp194_trainer_tower - - thumb_func_start sub_81D54BC -sub_81D54BC: @ 81D54BC - push {r4-r6,lr} - ldr r4, =gSaveBlock2Ptr - ldr r1, [r4] - ldr r3, =0x00000ef9 - adds r1, r3 - ldrb r2, [r1] - movs r0, 0x7F - ands r0, r2 - strb r0, [r1] - ldr r1, [r4] - adds r1, r3 - ldrb r2, [r1] - movs r0, 0x80 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r2, =gSaveBlock1Ptr - ldr r0, [r2] - ldr r1, =0x00003d68 - adds r0, r1 - movs r1, 0 - str r1, [r0] - adds r6, r2, 0 - ldr r5, =0x00003718 - movs r4, 0x3 -_081D54EE: - ldr r0, [r6] - adds r0, r5 - ldr r1, =0x00034bbf - bl sub_81D5DF4 - adds r5, 0x4 - subs r4, 0x1 - cmp r4, 0 - bge _081D54EE - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D54BC - - thumb_func_start sub_81D5520 -sub_81D5520: @ 81D5520 - ldr r0, =gUnknown_02037318 - ldrb r0, [r0, 0x12] - adds r0, 0x61 - lsls r0, 24 - lsrs r0, 24 - bx lr - .pool - thumb_func_end sub_81D5520 - - thumb_func_start sub_81D5530 -sub_81D5530: @ 81D5530 - lsls r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - ldr r2, =gTrainerClassNameIndices - ldr r1, =gUnknown_0203CF58 - ldr r1, [r1] - adds r1, 0x16 - adds r1, r0 - ldrb r0, [r1] - adds r0, r2 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_81D5530 - - thumb_func_start sub_81D5554 -sub_81D5554: @ 81D5554 - push {r4,lr} - adds r4, r0, 0 - lsls r1, 24 - movs r0, 0xFF - lsls r0, 24 - adds r1, r0 - lsrs r1, 24 - movs r3, 0 - ldr r0, =gUnknown_0203CF58 - ldr r2, [r0] - movs r0, 0xB - muls r0, r1 - adds r2, r0, r2 -_081D556E: - adds r1, r4, r3 - ldrb r0, [r2] - strb r0, [r1] - adds r2, 0x1 - adds r3, 0x1 - cmp r3, 0xA - ble _081D556E - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D5554 - - thumb_func_start sub_81D5588 -sub_81D5588: @ 81D5588 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl sub_81D56B0 - subs r4, 0x1 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_0203CF54 - ldr r3, [r0] - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r4 - ldrb r2, [r3] - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 3 - subs r0, r2 - adds r0, r1 - lsls r0, 3 - adds r3, r0 - ldrb r4, [r3, 0x1B] - bl sub_81D5710 - ldr r0, =gTrainerPicIndices - adds r4, r0 - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D5588 - - thumb_func_start sub_81D55D0 -sub_81D55D0: @ 81D55D0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - bl sub_81D56B0 - ldr r4, =gUnknown_0203CF58 - movs r0, 0x18 - bl AllocZeroed - str r0, [r4] - movs r6, 0 - ldr r0, =gUnknown_0203CF54 - mov r10, r0 -_081D55EE: - movs r5, 0 - lsls r1, r6, 2 - mov r8, r1 - adds r0, r6, 0x1 - mov r9, r0 - movs r0, 0xB - adds r1, r6, 0 - muls r1, r0 - mov r12, r1 - mov r1, r8 - adds r0, r1, r6 - lsls r0, 3 - adds r0, r6 - lsls r7, r0, 3 -_081D560A: - ldr r0, =gUnknown_0203CF58 - ldr r4, [r0] - mov r1, r12 - adds r0, r5, r1 - adds r4, r0 - mov r0, r10 - ldr r2, [r0] - adds r3, r5, r7 - ldrb r1, [r2] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 3 - subs r0, r1 - lsls r0, 3 - adds r3, r0 - adds r2, 0x10 - adds r2, r3 - ldrb r0, [r2] - strb r0, [r4] - adds r5, 0x1 - cmp r5, 0xA - ble _081D560A - ldr r1, =gUnknown_0203CF58 - ldr r4, [r1] - adds r4, 0x16 - adds r4, r6 - mov r0, r10 - ldr r3, [r0] - mov r1, r8 - adds r2, r1, r6 - lsls r2, 3 - adds r2, r6 - ldrb r1, [r3] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 3 - subs r0, r1 - adds r0, r2 - lsls r0, 3 - adds r3, r0 - ldrb r0, [r3, 0x1B] - strb r0, [r4] - mov r6, r9 - cmp r6, 0x1 - ble _081D55EE - ldr r1, =gSaveBlock1Ptr - ldr r0, [r1] - ldr r1, =0x00003d64 - adds r0, r1 - bl sub_80008DC - bl sub_81D5710 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D55D0 - - thumb_func_start sub_81D5694 -sub_81D5694: @ 81D5694 - push {r4,lr} - ldr r4, =gUnknown_0203CF58 - ldr r0, [r4] - cmp r0, 0 - beq _081D56A6 - bl Free - movs r0, 0 - str r0, [r4] -_081D56A6: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D5694 - - thumb_func_start sub_81D56B0 -sub_81D56B0: @ 81D56B0 - push {r4,lr} - ldr r4, =gUnknown_0203CF54 - ldr r0, [r4] - cmp r0, 0 - bne _081D56EC - ldr r0, =0x00000eec - bl AllocZeroed - str r0, [r4] - ldr r1, =gUnknown_02037318 - ldrb r1, [r1, 0x12] - adds r1, 0x61 - strb r1, [r0] - ldr r1, =gUnknown_0862A5F8 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003d6e - adds r0, r2 - ldrb r0, [r0] - lsrs r0, 6 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, [r4] - adds r1, 0x4 - ldr r2, =0x040003ba - bl CpuSet - bl nullsub_2 -_081D56EC: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D56B0 - - thumb_func_start sub_81D5710 -sub_81D5710: @ 81D5710 - push {r4,lr} - ldr r4, =gUnknown_0203CF54 - ldr r0, [r4] - cmp r0, 0 - beq _081D5722 - bl Free - movs r0, 0 - str r0, [r4] -_081D5722: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D5710 - - thumb_func_start sub_81D572C -sub_81D572C: @ 81D572C - push {r4-r6,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - lsls r4, 16 - lsrs r4, 16 - bl sub_81D56B0 - bl sub_81D5520 - lsls r0, 24 - lsrs r2, r0, 24 - subs r4, 0x1 - lsls r4, 24 - lsrs r4, 24 - cmp r5, 0x3 - beq _081D5790 - cmp r5, 0x3 - bgt _081D575A - cmp r5, 0x2 - beq _081D5764 - b _081D580E -_081D575A: - cmp r6, 0x4 - beq _081D57BC - cmp r6, 0x5 - beq _081D57E8 - b _081D580E -_081D5764: - ldr r0, =gUnknown_0203CF54 - lsls r1, r2, 4 - subs r1, r2 - lsls r1, 3 - subs r1, r2 - lsls r1, 3 - adds r1, 0xC - ldr r0, [r0] - adds r0, r1 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r4 - lsls r1, 3 - adds r1, 0x4 - adds r0, r1 - adds r0, 0x10 - bl ConvertBattleFrontierTrainerSpeechToString - b _081D580E - .pool -_081D5790: - ldr r0, =gUnknown_0203CF54 - lsls r1, r2, 4 - subs r1, r2 - lsls r1, 3 - subs r1, r2 - lsls r1, 3 - adds r1, 0xC - ldr r0, [r0] - adds r0, r1 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r4 - lsls r1, 3 - adds r1, 0x4 - adds r0, r1 - adds r0, 0x1C - bl ConvertBattleFrontierTrainerSpeechToString - b _081D580E - .pool -_081D57BC: - ldr r0, =gUnknown_0203CF54 - lsls r1, r2, 4 - subs r1, r2 - lsls r1, 3 - subs r1, r2 - lsls r1, 3 - adds r1, 0xC - ldr r0, [r0] - adds r0, r1 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r4 - lsls r1, 3 - adds r1, 0x4 - adds r0, r1 - adds r0, 0x28 - bl ConvertBattleFrontierTrainerSpeechToString - b _081D580E - .pool -_081D57E8: - ldr r0, =gUnknown_0203CF54 - lsls r1, r2, 4 - subs r1, r2 - lsls r1, 3 - subs r1, r2 - lsls r1, 3 - adds r1, 0xC - ldr r0, [r0] - adds r0, r1 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r4 - lsls r1, 3 - adds r1, 0x4 - adds r0, r1 - adds r0, 0x34 - bl ConvertBattleFrontierTrainerSpeechToString -_081D580E: - bl sub_81D5710 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D572C - - thumb_func_start sub_81D581C -sub_81D581C: @ 81D581C - push {r4-r6,lr} - bl nullsub_2 - bl sub_81D3B34 - cmp r0, 0 - bne _081D5844 - ldr r3, =gSaveBlock1Ptr - ldr r1, [r3] - ldr r0, =0x00003d6e - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x20 - orrs r0, r2 - b _081D5854 - .pool -_081D5844: - ldr r3, =gSaveBlock1Ptr - ldr r1, [r3] - ldr r0, =0x00003d6e - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x21 - negs r0, r0 - ands r0, r2 -_081D5854: - strb r0, [r1] - adds r6, r3, 0 - ldr r0, [r6] - ldr r1, =0x00003d6c - adds r0, r1 - movs r5, 0 - strb r5, [r0] - ldr r0, [r6] - ldr r4, =0x00003d64 - adds r0, r4 - bl sub_80008DC - ldr r1, [r6] - adds r4, r1, r4 - str r5, [r4] - ldr r3, =0x00003d6e - adds r1, r3 - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r6] - adds r1, r3 - ldrb r2, [r1] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r6] - adds r1, r3 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - movs r1, 0xEE - lsls r1, 4 - adds r0, r1 - strb r5, [r0] - ldr r0, =gUnknown_0202433A - strb r5, [r0] - ldr r1, [r6] - adds r1, r3 - ldrb r2, [r1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D581C - - thumb_func_start sub_81D58D8 -sub_81D58D8: @ 81D58D8 - push {lr} - bl sub_80008E8 - ldr r3, =gUnknown_020375F0 - movs r0, 0 - strh r0, [r3] - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003d6e - adds r2, r0, r1 - ldrb r1, [r2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _081D58FA - movs r0, 0x1 - strh r0, [r3] -_081D58FA: - ldrb r1, [r2] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x3 - bne _081D590A - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] -_081D590A: - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D58D8 - - thumb_func_start sub_81D5924 -sub_81D5924: @ 81D5924 - push {r4-r7,lr} - mov r7, r8 - push {r7} - bl sub_81D6640 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, =gUnknown_0203CF54 - ldr r0, [r0] - ldrb r0, [r0, 0x6] - cmp r0, 0x4 - bne _081D5952 - ldr r0, =gSaveBlock1Ptr - mov r8, r0 - ldr r0, [r0] - ldr r7, =0x00003d6e - adds r0, r7 - ldrb r0, [r0] - movs r6, 0x1 - adds r4, r6, 0 - ands r4, r0 - cmp r4, 0 - beq _081D596C -_081D5952: - ldr r1, =gUnknown_020375F0 - movs r0, 0x2 - strh r0, [r1] - b _081D59C0 - .pool -_081D596C: - adds r0, r5, 0 - movs r1, 0x1 - bl bag_add_item - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081D59BC - ldr r1, =gStringVar2 - adds r0, r5, 0 - bl itemid_get_name - mov r0, r8 - ldr r1, [r0] - adds r1, r7 - ldrb r0, [r1] - movs r2, 0x1 - orrs r0, r2 - strb r0, [r1] - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r0, =0x00000ef9 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x80 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r0, =gUnknown_020375F0 - strh r4, [r0] - b _081D59C0 - .pool -_081D59BC: - ldr r0, =gUnknown_020375F0 - strh r6, [r0] -_081D59C0: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D5924 - - thumb_func_start sub_81D59D0 -sub_81D59D0: @ 81D59D0 - push {r4-r6,lr} - ldr r4, =gSaveBlock1Ptr - ldr r2, [r4] - ldr r6, =0x00003d6e - adds r0, r2, r6 - ldrb r1, [r0] - movs r3, 0x2 - adds r0, r3, 0 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - beq _081D59FC - ldr r0, =gUnknown_020375F0 - strh r3, [r0] - b _081D5A4E - .pool -_081D59FC: - ldr r1, =0x00003d68 - adds r0, r2, r1 - bl free_203F458 - ldr r2, [r4] - ldr r3, =0x00003d64 - adds r1, r2, r3 - ldr r1, [r1] - cmp r0, r1 - bls _081D5A48 - adds r3, 0x4 - adds r0, r2, r3 - bl sub_81D5DF4 - ldr r2, [r4] - adds r0, r2, r6 - ldrb r0, [r0] - lsrs r0, 6 - lsls r0, 2 - ldr r3, =0x00003718 - adds r1, r2, r3 - adds r1, r0 - ldr r0, =0x00003d68 - adds r2, r0 - ldr r0, [r2] - str r0, [r1] - ldr r0, =gUnknown_020375F0 - strh r5, [r0] - b _081D5A4E - .pool -_081D5A48: - ldr r1, =gUnknown_020375F0 - movs r0, 0x1 - strh r0, [r1] -_081D5A4E: - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r3, =0x00003d6e - adds r1, r3 - ldrb r0, [r1] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D59D0 - - thumb_func_start sub_81D5A70 -sub_81D5A70: @ 81D5A70 - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - ldr r1, =0x00003d6e - adds r0, r2, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - bne _081D5AAE - ldr r0, =0x00003d64 - adds r2, r0 - ldr r1, [r2] - ldr r0, =0x00034bbe - cmp r1, r0 - bls _081D5AA8 - adds r0, 0x1 - str r0, [r2] - b _081D5AAE - .pool -_081D5AA8: - adds r0, r2, 0 - bl sub_80008DC -_081D5AAE: - pop {r0} - bx r0 - thumb_func_end sub_81D5A70 - - thumb_func_start sub_81D5AB4 -sub_81D5AB4: @ 81D5AB4 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, =0x00003d6e - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x8 - orrs r0, r2 - strb r0, [r1] - bx lr - .pool - thumb_func_end sub_81D5AB4 - - thumb_func_start sub_81D5AD0 -sub_81D5AD0: @ 81D5AD0 - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003d6e - adds r2, r0, r1 - ldrb r1, [r2] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _081D5B00 - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_020375F0 - movs r0, 0 - b _081D5B20 - .pool -_081D5B00: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _081D5B1C - movs r0, 0x11 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r1, =gUnknown_020375F0 - movs r0, 0x1 - b _081D5B20 - .pool -_081D5B1C: - ldr r1, =gUnknown_020375F0 - movs r0, 0x2 -_081D5B20: - strh r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D5AD0 - - thumb_func_start sub_81D5B2C -sub_81D5B2C: @ 81D5B2C - push {r4-r7,lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003d64 - adds r0, r1 - ldr r7, [r0] - ldr r0, =0x00034bbe - cmp r7, r0 - ble _081D5B40 - ldr r7, =0x00034bbf -_081D5B40: - movs r4, 0xE1 - lsls r4, 4 - adds r0, r7, 0 - adds r1, r4, 0 - bl __divsi3 - adds r6, r0, 0 - adds r0, r7, 0 - adds r1, r4, 0 - bl __modsi3 - adds r7, r0, 0 - movs r1, 0x3C - bl __divsi3 - adds r5, r0, 0 - adds r0, r7, 0 - movs r1, 0x3C - bl __modsi3 - adds r7, r0, 0 - movs r0, 0xA8 - muls r0, r7 - movs r1, 0x64 - bl __divsi3 - adds r4, r0, 0 - ldr r0, =gStringVar1 - adds r1, r6, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, =gStringVar2 - adds r1, r5, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, =gStringVar3 - adds r1, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D5B2C - - thumb_func_start sub_81D5BBC -sub_81D5BBC: @ 81D5BBC - push {lr} - bl sub_81D56B0 - ldr r0, =gUnknown_0203CF54 - ldr r1, [r0] - ldrb r0, [r1, 0x6] - cmp r0, 0x4 - beq _081D5BEC - ldr r0, =gStringVar1 - ldrb r1, [r1, 0x6] - movs r2, 0 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - ldr r1, =gUnknown_020375F0 - movs r0, 0 - b _081D5BF0 - .pool -_081D5BEC: - ldr r1, =gUnknown_020375F0 - movs r0, 0x1 -_081D5BF0: - strh r0, [r1] - bl sub_81D5710 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D5BBC - - thumb_func_start sub_81D5C00 -sub_81D5C00: @ 81D5C00 - push {lr} - bl sub_81D56B0 - ldr r1, =gUnknown_020375F0 - movs r0, 0 - strh r0, [r1] - bl sub_81D5710 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D5C00 - - thumb_func_start sub_81D5C18 -sub_81D5C18: @ 81D5C18 - push {lr} - ldr r0, =0x000040d6 - bl VarGet - lsls r0, 16 - cmp r0, 0 - beq _081D5C42 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003d6e - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - bne _081D5C42 - bl GetCurrentTrainerHillMapId - lsls r0, 24 - cmp r0, 0 - bne _081D5C54 -_081D5C42: - movs r0, 0 - b _081D5C56 - .pool -_081D5C54: - movs r0, 0x1 -_081D5C56: - pop {r1} - bx r1 - thumb_func_end sub_81D5C18 - - thumb_func_start sub_81D5C5C -sub_81D5C5C: @ 81D5C5C - push {lr} - bl sub_81D5C18 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _081D5C74 - ldr r0, =gUnknown_020375F0 - strh r1, [r0] - b _081D5C7A - .pool -_081D5C74: - ldr r1, =gUnknown_020375F0 - movs r0, 0x1 - strh r0, [r1] -_081D5C7A: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D5C5C - - thumb_func_start nullsub_129 -nullsub_129: @ 81D5C84 - bx lr - thumb_func_end nullsub_129 - - thumb_func_start nullsub_2 -nullsub_2: @ 81D5C88 - bx lr - thumb_func_end nullsub_2 - - thumb_func_start sub_81D5C8C -sub_81D5C8C: @ 81D5C8C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - bl sub_81D56B0 - movs r0, 0 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r5, =gUnknown_085EF88A - movs r0, 0x1 - adds r1, r5, 0 - movs r2, 0xD0 - bl GetStringCenterAlignXOffset - lsls r2, r0, 24 - lsrs r2, 24 - ldr r6, =gUnknown_0862A5F4 - str r6, [sp] - movs r4, 0x1 - negs r4, r4 - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x1 - movs r3, 0x2 - bl box_print - movs r7, 0x12 - movs r0, 0 - mov r8, r0 - mov r10, r4 - ldr r1, =gStringVar4 - mov r9, r1 -_081D5CD6: - lsls r3, r7, 24 - lsrs r3, 24 - ldr r0, =gUnknown_0862A5F4 - str r0, [sp] - mov r1, r10 - str r1, [sp, 0x4] - ldr r0, =gUnknown_0862A660 - mov r1, r8 - lsls r4, r1, 2 - adds r0, r4, r0 - ldr r0, [r0] - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0x1 - movs r2, 0 - bl box_print - adds r7, 0xF - ldr r0, =gSaveBlock1Ptr - ldr r1, =0x00003718 - adds r4, r1 - ldr r0, [r0] - adds r0, r4 - bl free_203F458 - adds r4, r0, 0 - movs r5, 0xE1 - lsls r5, 4 - adds r1, r5, 0 - bl __udivsi3 - adds r6, r0, 0 - adds r0, r4, 0 - adds r1, r5, 0 - bl __umodsi3 - adds r5, r0, 0 - ldr r0, =gStringVar1 - adds r1, r6, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - adds r0, r5, 0 - movs r1, 0x3C - bl __udivsi3 - adds r4, r0, 0 - adds r0, r5, 0 - movs r1, 0x3C - bl __umodsi3 - adds r5, r0, 0 - ldr r0, =gStringVar2 - adds r1, r4, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - movs r0, 0xA8 - muls r0, r5 - movs r1, 0x64 - bl __udivsi3 - adds r1, r0, 0 - ldr r0, =gStringVar3 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - mov r0, r9 - ldr r1, =gUnknown_085EF895 - bl StringCopy - ldr r1, =gUnknown_085EF8A3 - bl StringExpandPlaceholders - movs r0, 0x1 - mov r1, r9 - movs r2, 0xD0 - bl GetStringRightAlignXOffset - lsls r2, r0, 24 - lsrs r2, 24 - lsls r3, r7, 24 - lsrs r3, 24 - ldr r0, =gUnknown_0862A5F4 - str r0, [sp] - mov r1, r10 - str r1, [sp, 0x4] - mov r0, r9 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0x1 - bl box_print - adds r7, 0x11 - movs r1, 0x1 - add r8, r1 - mov r0, r8 - cmp r0, 0x3 - ble _081D5CD6 - movs r0, 0 - bl PutWindowTilemap - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - bl sub_81D5710 - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D5C8C - - thumb_func_start free_203F458 -free_203F458: @ 81D5DF0 - ldr r0, [r0] - bx lr - thumb_func_end free_203F458 - - thumb_func_start sub_81D5DF4 -sub_81D5DF4: @ 81D5DF4 - str r1, [r0] - bx lr - thumb_func_end sub_81D5DF4 - - thumb_func_start sub_81D5DF8 -sub_81D5DF8: @ 81D5DF8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xC7 - lsls r1, 4 - adds r1, r0, r1 - str r1, [sp, 0x4] - bl sub_81D5F48 - cmp r0, 0 - beq _081D5F0E - bl sub_81D56B0 - movs r7, 0 - ldr r4, =gSaveBlock2Ptr - ldr r3, =0x00000cb4 - ldr r0, =0x0000ffff - adds r2, r0, 0 -_081D5E26: - ldr r1, [r4] - lsls r0, r7, 1 - adds r1, r3 - adds r1, r0 - ldrh r0, [r1] - orrs r0, r2 - strh r0, [r1] - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x1 - bls _081D5E26 - movs r0, 0 - str r0, [sp] - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - movs r2, 0xC7 - lsls r2, 4 - adds r1, r2 - ldr r2, =0x05000180 - mov r0, sp - bl CpuSet - bl sub_81D5520 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r7, 0 - ldr r3, =gUnknown_0203CF54 - mov r10, r3 -_081D5E64: - lsls r4, r7, 1 - mov r8, r4 - adds r5, r4, r7 - lsls r5, 3 - ldr r0, [sp, 0x4] - adds r5, r0 - adds r1, r5, 0 - ldr r0, =gUnknown_0862A670 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - adds r6, r7, 0x1 - strb r6, [r5] - mov r0, r10 - ldr r1, [r0] - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r7 - lsls r0, 3 - mov r2, r9 - lsls r4, r2, 4 - subs r4, r2 - lsls r4, 3 - subs r4, r2 - lsls r4, 3 - adds r0, r4 - adds r1, r0 - ldrb r0, [r1, 0x1B] - bl sub_81660B8 - strb r0, [r5, 0x1] - mov r0, r10 - ldr r3, [r0] - adds r0, r7, r4 - movs r2, 0xF0 - lsls r2, 2 - adds r1, r3, r2 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0xF - ands r0, r2 - strh r0, [r5, 0x4] - ldrb r0, [r1] - lsrs r0, 4 - movs r1, 0xF - ands r0, r1 - adds r0, 0x5 - strh r0, [r5, 0x6] - lsls r1, r7, 26 - lsrs r1, 24 - adds r3, r4 - ldr r2, =0x000003c2 - adds r3, r2 - ldrb r0, [r3] - asrs r0, r1 - movs r3, 0xF - ands r0, r3 - adds r0, 0x7 - strb r0, [r5, 0x9] - mov r2, r10 - ldr r0, [r2] - adds r0, r4 - ldr r3, =0x000003c3 - adds r0, r3 - ldrb r0, [r0] - asrs r0, r1 - movs r1, 0xF - ands r0, r1 - strh r0, [r5, 0xE] - ldr r0, =gUnknown_082C83F0 - str r0, [r5, 0x10] - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r4, =0x00000cb4 - adds r0, r4 - add r0, r8 - strh r6, [r0] - lsls r6, 24 - lsrs r7, r6, 24 - cmp r7, 0x1 - bls _081D5E64 - bl sub_81D5710 -_081D5F0E: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D5DF8 - - thumb_func_start sub_81D5F48 -sub_81D5F48: @ 81D5F48 - push {lr} - bl sub_81D56B0 - bl sub_81D5710 - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_81D5F48 - - thumb_func_start sub_81D5F58 -sub_81D5F58: @ 81D5F58 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r4, =gUnknown_0203CF54 - ldr r4, [r4] - mov r12, r4 - lsls r4, r2, 1 - lsls r5, r0, 4 - subs r5, r0 - lsls r5, 3 - subs r5, r0 - lsls r5, 3 - adds r4, r5 - movs r0, 0xE8 - lsls r0, 2 - add r0, r12 - adds r0, r4 - ldrh r0, [r0] - movs r4, 0xF - subs r4, r1 - asrs r0, r4 - movs r4, 0x1 - ands r0, r4 - muls r2, r3 - adds r2, r1 - adds r2, r5 - movs r1, 0xA8 - lsls r1, 2 - add r1, r12 - adds r1, r2 - ldrb r1, [r1] - movs r2, 0x80 - lsls r2, 2 - adds r3, r2, 0 - movs r2, 0xC0 - lsls r2, 6 - lsls r0, 10 - orrs r0, r2 - orrs r1, r3 - orrs r0, r1 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D5F58 - - thumb_func_start sub_81D5FB4 -sub_81D5FB4: @ 81D5FB4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r4, r0, 0 - bl GetCurrentTrainerHillMapId - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - cmp r0, 0x6 - bne _081D5FD2 - bl sub_8087D74 - b _081D605E -_081D5FD2: - bl sub_81D56B0 - mov r0, r9 - cmp r0, 0x5 - bne _081D5FE6 - bl sub_8087D74 - bl sub_81D5710 - b _081D605E -_081D5FE6: - bl sub_81D5520 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r0, =gUnknown_02037318 - ldr r0, [r0] - ldr r2, [r0, 0xC] - ldr r1, =gUnknown_03005DC0 - str r4, [r1, 0x8] - movs r0, 0x1F - str r0, [r1] - movs r0, 0x23 - str r0, [r1, 0x4] - movs r0, 0xE0 - lsls r0, 1 - adds r3, r4, r0 - movs r6, 0x4 -_081D600A: - adds r4, r2, 0 - adds r4, 0x20 - adds r1, r3, 0 - movs r5, 0xF -_081D6012: - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - adds r1, 0x2 - subs r5, 0x1 - cmp r5, 0 - bge _081D6012 - adds r3, 0x3E - adds r2, r4, 0 - subs r6, 0x1 - cmp r6, 0 - bge _081D600A - movs r6, 0 -_081D602C: - movs r5, 0 - adds r7, r3, 0 - adds r7, 0x3E - adds r0, r6, 0x1 - mov r8, r0 - adds r4, r3, 0 -_081D6038: - mov r0, r9 - adds r1, r5, 0 - adds r2, r6, 0 - movs r3, 0x10 - bl sub_81D5F58 - strh r0, [r4] - adds r4, 0x2 - adds r5, 0x1 - cmp r5, 0xF - ble _081D6038 - adds r3, r7, 0 - mov r6, r8 - cmp r6, 0xF - ble _081D602C - bl mapheader_run_script_with_tag_x1 - bl sub_81D5710 -_081D605E: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D5FB4 - - thumb_func_start InTrainerHill -InTrainerHill: @ 81D6074 - push {lr} - ldr r1, =gUnknown_02037318 - ldr r2, =0xfffffe61 - adds r0, r2, 0 - ldrh r1, [r1, 0x12] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - cmp r0, 0x3 - bhi _081D608C - movs r1, 0x1 -_081D608C: - adds r0, r1, 0 - pop {r1} - bx r1 - .pool - thumb_func_end InTrainerHill - - thumb_func_start GetCurrentTrainerHillMapId -@ u8 GetCurrentTrainerHillMapId() -GetCurrentTrainerHillMapId: @ 81D609C - push {lr} - ldr r0, =gUnknown_02037318 - ldrh r2, [r0, 0x12] - ldr r0, =0x0000019f - cmp r2, r0 - bne _081D60B4 - movs r1, 0x1 - b _081D60F8 - .pool -_081D60B4: - movs r0, 0xD0 - lsls r0, 1 - cmp r2, r0 - bne _081D60C0 - movs r1, 0x2 - b _081D60F8 -_081D60C0: - ldr r0, =0x000001a1 - cmp r2, r0 - bne _081D60D0 - movs r1, 0x3 - b _081D60F8 - .pool -_081D60D0: - movs r0, 0xD1 - lsls r0, 1 - cmp r2, r0 - bne _081D60DC - movs r1, 0x4 - b _081D60F8 -_081D60DC: - ldr r0, =0x000001a3 - cmp r2, r0 - bne _081D60EC - movs r1, 0x5 - b _081D60F8 - .pool -_081D60EC: - movs r0, 0xCF - lsls r0, 1 - movs r1, 0 - cmp r2, r0 - bne _081D60F8 - movs r1, 0x6 -_081D60F8: - adds r0, r1, 0 - pop {r1} - bx r1 - thumb_func_end GetCurrentTrainerHillMapId - - thumb_func_start sub_81D6100 -sub_81D6100: @ 81D6100 - push {lr} - ldr r0, =gUnknown_02037318 - ldrh r1, [r0, 0x12] - ldr r0, =0x000001a3 - movs r2, 0 - cmp r1, r0 - bne _081D6110 - movs r2, 0x1 -_081D6110: - adds r0, r2, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D6100 - - thumb_func_start sub_81D6120 -sub_81D6120: @ 81D6120 - push {lr} - movs r0, 0x1A - movs r1, 0x40 - bl get_mapheader_by_bank_and_number - ldr r0, [r0, 0x4] - ldr r0, [r0, 0x8] - adds r0, 0x8 - pop {r1} - bx r1 - thumb_func_end sub_81D6120 - - thumb_func_start sub_81D6134 -sub_81D6134: @ 81D6134 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081D614C - ldr r0, =gUnknown_02037318 - ldr r0, [r0, 0x4] - ldr r0, [r0, 0x8] - adds r0, 0x8 - b _081D6176 - .pool -_081D614C: - bl sub_81D6490 - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x3 - bls _081D6162 - movs r2, 0x4 -_081D6162: - ldr r1, =gUnknown_0862A688 - subs r0, r2, 0x1 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x1A - bl get_mapheader_by_bank_and_number - ldr r0, [r0, 0x4] - ldr r0, [r0, 0x8] -_081D6176: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D6134 - - thumb_func_start battle_init -battle_init: @ 81D6180 - lsls r0, 24 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - lsrs r0, 23 - adds r1, r0 - ldr r0, =0x00000cb2 - adds r1, r0 - ldrh r0, [r1] - bx lr - .pool - thumb_func_end battle_init - - thumb_func_start GetTrainerHillTrainerFlag -@ u8 GetTrainerHillTrainerFlag(u8 fieldObjectId) -GetTrainerHillTrainerFlag: @ 81D619C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_81D5520 - lsls r0, 24 - lsrs r0, 23 - ldr r2, =gUnknown_02037350 - lsls r1, r4, 3 - adds r1, r4 - lsls r1, 2 - adds r1, r2 - adds r0, 0xFF - ldrb r1, [r1, 0x8] - adds r0, r1 - lsls r0, 24 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - movs r2, 0xEE - lsls r2, 4 - adds r1, r2 - ldr r2, =gBitTable - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ldrb r1, [r1] - ands r0, r1 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end GetTrainerHillTrainerFlag - - thumb_func_start sub_81D61E8 -sub_81D61E8: @ 81D61E8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - bl sub_81D5520 - lsls r0, 25 - lsrs r4, r0, 24 - movs r3, 0 - ldr r0, =gUnknown_02038BCA - mov r8, r0 - ldr r6, =gSaveBlock2Ptr - ldr r1, =gBitTable - mov r12, r1 - adds r5, r6, 0 -_081D6204: - ldr r2, [r5] - lsls r0, r3, 1 - ldr r7, =0x00000cb4 - adds r1, r2, r7 - adds r1, r0 - ldrh r0, [r1] - mov r1, r8 - ldrh r1, [r1] - cmp r0, r1 - bne _081D6240 - movs r7, 0xEE - lsls r7, 4 - adds r2, r7 - adds r0, r4, r3 - lsls r0, 2 - add r0, r12 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - b _081D624A - .pool -_081D6240: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1 - bls _081D6204 -_081D624A: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _081D62A2 - movs r3, 0 - ldr r5, =gUnknown_02038BCC - ldr r0, =gBitTable - mov r8, r0 -_081D6260: - ldr r2, [r6] - lsls r0, r3, 1 - ldr r7, =0x00000cb4 - adds r1, r2, r7 - adds r1, r0 - ldrh r0, [r1] - ldrh r1, [r5] - cmp r0, r1 - bne _081D6298 - movs r7, 0xEE - lsls r7, 4 - adds r2, r7 - adds r0, r4, r3 - lsls r0, 2 - add r0, r8 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - b _081D62A2 - .pool -_081D6298: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1 - bls _081D6260 -_081D62A2: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D61E8 - - thumb_func_start sub_81D62AC -sub_81D62AC: @ 81D62AC - ldr r0, =gUnknown_082C83F0 - bx lr - .pool - thumb_func_end sub_81D62AC - - thumb_func_start sub_81D62B4 -sub_81D62B4: @ 81D62B4 - push {lr} - ldr r0, =gUnknown_020375F2 - ldrh r1, [r0] - movs r0, 0x5 - bl sub_81D572C - bl sub_80982B8 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D62B4 - - thumb_func_start sub_81D62CC -sub_81D62CC: @ 81D62CC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - subs r1, r0, 0x1 - lsls r0, r1, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _081D636A - lsls r0, r1, 24 - lsrs r6, r0, 24 - bl sub_81D56B0 - bl sub_8165CB4 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - bl sub_81D5520 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - mov r5, r9 - adds r0, r5, 0x3 - cmp r5, r0 - bge _081D6366 - ldr r1, =gUnknown_0862A698 - lsls r0, r6, 1 - adds r0, r6 - adds r7, r0, r1 -_081D6316: - ldrb r2, [r7] - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gEnemyParty - adds r4, r0 - mov r1, r8 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 3 - subs r0, r1 - lsls r0, 3 - adds r0, 0xC - ldr r3, =gUnknown_0203CF54 - ldr r1, [r3] - adds r1, r0 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r6 - lsls r0, 3 - adds r0, 0x4 - adds r1, r0 - movs r0, 0x2C - muls r0, r2 - adds r0, 0x40 - adds r1, r0 - adds r0, r4, 0 - bl sub_806819C - adds r0, r4, 0 - mov r1, r10 - bl sub_81D642C - adds r5, 0x1 - adds r7, 0x1 - mov r0, r9 - adds r0, 0x3 - cmp r5, r0 - blt _081D6316 -_081D6366: - bl sub_81D5710 -_081D636A: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D62CC - - thumb_func_start sub_81D6384 -sub_81D6384: @ 81D6384 - push {lr} - bl zero_enemy_party_data - ldr r0, =gUnknown_02038BCA - ldrh r0, [r0] - movs r1, 0 - bl sub_81D62CC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D6384 - - thumb_func_start sub_81D639C -sub_81D639C: @ 81D639C - push {lr} - bl zero_enemy_party_data - ldr r0, =gUnknown_02038BCA - ldrh r0, [r0] - movs r1, 0 - bl sub_81D62CC - ldr r0, =gUnknown_02038BCC - ldrh r0, [r0] - movs r1, 0x3 - bl sub_81D62CC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D639C - - thumb_func_start sub_81D63C4 -sub_81D63C4: @ 81D63C4 - movs r0, 0x7 - bx lr - thumb_func_end sub_81D63C4 - - thumb_func_start sub_81D63C8 -sub_81D63C8: @ 81D63C8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl sub_81D56B0 - subs r4, 0x1 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_0203CF54 - ldr r3, [r0] - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r4 - ldrb r2, [r3] - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 3 - subs r0, r2 - adds r0, r1 - lsls r0, 3 - adds r3, r0 - ldrb r4, [r3, 0x1B] - bl sub_81D5710 - movs r2, 0 - ldr r0, =gTrainerClassNameIndices - adds r4, r0 - ldrb r3, [r4] - ldr r1, =gUnknown_0862A3B4 -_081D6406: - ldrb r0, [r1] - cmp r0, r3 - bne _081D641C - ldrb r0, [r1, 0x1] - b _081D6426 - .pool -_081D641C: - adds r1, 0x4 - adds r2, 0x1 - cmp r2, 0x35 - bls _081D6406 - movs r0, 0 -_081D6426: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81D63C8 - - thumb_func_start sub_81D642C -sub_81D642C: @ 81D642C - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - mov r0, sp - strb r1, [r0] - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - ldr r5, =gExperienceTables - mov r1, sp - ldrb r2, [r1] - lsls r2, 2 - ldr r3, =gBaseStats - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r1, [r1, 0x13] - movs r0, 0xCA - lsls r0, 1 - muls r0, r1 - adds r2, r0 - adds r2, r5 - ldr r0, [r2] - str r0, [sp, 0x4] - add r2, sp, 0x4 - adds r0, r4, 0 - movs r1, 0x19 - bl pokemon_setattr - adds r0, r4, 0 - movs r1, 0x38 - mov r2, sp - bl pokemon_setattr - adds r0, r4, 0 - bl pokemon_calc_effective_stats - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D642C - - thumb_func_start sub_81D6490 -sub_81D6490: @ 81D6490 - push {r4,lr} - bl sub_81D56B0 - ldr r0, =gUnknown_0203CF54 - ldr r0, [r0] - ldrb r4, [r0, 0x6] - bl sub_81D5710 - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D6490 - - thumb_func_start sub_81D64AC -sub_81D64AC: @ 81D64AC - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - movs r1, 0xEE - lsls r1, 4 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - bx lr - .pool - thumb_func_end sub_81D64AC - - thumb_func_start sub_81D64C0 -sub_81D64C0: @ 81D64C0 - push {lr} - bl sub_81D6534 - cmp r0, 0x1 - bne _081D64D4 - ldr r0, =gUnknown_0862A5D4 - movs r1, 0x70 - movs r2, 0x20 - bl LoadPalette -_081D64D4: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D64C0 - - thumb_func_start sub_81D64DC -sub_81D64DC: @ 81D64DC - ldr r1, =gUnknown_020375F0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000ef9 - adds r0, r2 - ldrb r0, [r0] - lsrs r0, 7 - strh r0, [r1] - bx lr - .pool - thumb_func_end sub_81D64DC - - thumb_func_start sub_81D64FC -sub_81D64FC: @ 81D64FC - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r0, =0x00000ef9 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x80 - orrs r0, r2 - strb r0, [r1] - bx lr - .pool - thumb_func_end sub_81D64FC - - thumb_func_start sub_81D6518 -sub_81D6518: @ 81D6518 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r0, =0x00000ef9 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x7F - ands r0, r2 - strb r0, [r1] - bx lr - .pool - thumb_func_end sub_81D6518 - - thumb_func_start sub_81D6534 -sub_81D6534: @ 81D6534 - push {lr} - bl sub_81D5C18 - lsls r0, 24 - cmp r0, 0 - beq _081D6560 - bl GetCurrentTrainerHillMapId - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - beq _081D6560 - bl sub_81D5C00 - ldr r0, =gUnknown_020375F0 - ldrh r0, [r0] - cmp r0, 0 - beq _081D6560 - movs r0, 0x1 - b _081D6562 - .pool -_081D6560: - movs r0, 0 -_081D6562: - pop {r1} - bx r1 - thumb_func_end sub_81D6534 - - thumb_func_start sub_81D6568 -sub_81D6568: @ 81D6568 - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003d6e - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _081D6590 - ldr r1, =gUnknown_020375F0 - movs r0, 0 - b _081D6594 - .pool -_081D6590: - ldr r1, =gUnknown_020375F0 - movs r0, 0x1 -_081D6594: - strh r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D6568 - - thumb_func_start sub_81D65A0 -sub_81D65A0: @ 81D65A0 - push {r4,r5,lr} - ldr r4, =gSaveBlock1Ptr - ldr r2, [r4] - ldr r5, =gUnknown_020375E2 - ldr r0, =0x00003d6e - adds r2, r0 - ldrb r1, [r5] - lsls r1, 6 - ldrb r3, [r2] - movs r0, 0x3F - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r4] - ldr r3, =0x00003d68 - adds r2, r1, r3 - ldrh r0, [r5] - lsls r0, 2 - ldr r3, =0x00003718 - adds r1, r3 - adds r1, r0 - ldr r0, [r1] - str r0, [r2] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D65A0 - - thumb_func_start sub_81D65E8 -sub_81D65E8: @ 81D65E8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - movs r3, 0 - movs r4, 0 - ldr r0, =gUnknown_0203CF54 - ldr r6, [r0] - movs r5, 0x1F -_081D65F8: - lsls r1, r4, 4 - subs r1, r4 - lsls r1, 3 - subs r1, r4 - lsls r1, 3 - adds r1, r6, r1 - ldrb r2, [r1, 0xC] - adds r0, r5, 0 - ands r0, r2 - eors r3, r0 - ldrb r1, [r1, 0xD] - adds r0, r5, 0 - ands r0, r1 - eors r3, r0 - lsls r0, r3, 24 - lsrs r3, r0, 24 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _081D65F8 - movs r1, 0x5 - cmp r7, 0 - beq _081D662A - movs r1, 0xA -_081D662A: - adds r0, r3, 0 - bl __umodsi3 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r3, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D65E8 - - thumb_func_start sub_81D6640 -sub_81D6640: @ 81D6640 - push {r4,r5,lr} - movs r3, 0 - movs r2, 0 - ldr r0, =gUnknown_0203CF54 - ldr r4, [r0] -_081D664A: - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 3 - subs r0, r2 - lsls r0, 3 - adds r0, r4, r0 - ldrb r1, [r0, 0xC] - adds r1, r3, r1 - ldrb r0, [r0, 0xD] - adds r3, r1, r0 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _081D664A - adds r0, r3, 0 - cmp r0, 0 - bge _081D6670 - adds r0, 0xFF -_081D6670: - asrs r4, r0, 8 - lsrs r0, 31 - adds r0, r4, r0 - asrs r0, 1 - lsls r0, 1 - subs r4, r0 - ldr r0, =0x00000864 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _081D66A0 - ldr r0, =gUnknown_0203CF54 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - cmp r0, 0x8 - bne _081D66A0 - movs r0, 0x1 - b _081D66A2 - .pool -_081D66A0: - movs r0, 0 -_081D66A2: - bl sub_81D65E8 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gSaveBlock1Ptr - ldr r5, [r0] - ldr r1, =0x00003d6e - adds r0, r5, r1 - ldrb r1, [r0] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0xC0 - bne _081D66C8 - adds r0, r2, 0x1 - movs r1, 0xA - bl __modsi3 - lsls r0, 24 - lsrs r2, r0, 24 -_081D66C8: - ldr r1, =gUnknown_0862A5CC - lsls r0, r4, 2 - adds r0, r1 - ldr r1, [r0] - lsls r0, r2, 2 - adds r0, r1 - ldr r4, [r0] - ldr r1, =0x00003d64 - adds r0, r5, r1 - ldr r0, [r0] - movs r1, 0xE1 - lsls r1, 4 - bl __divsi3 - movs r1, 0 - cmp r0, 0xB - ble _081D6704 - movs r1, 0x1 - cmp r0, 0xC - ble _081D6704 - movs r1, 0x2 - cmp r0, 0xD - ble _081D6704 - movs r1, 0x3 - cmp r0, 0xF - ble _081D6704 - movs r1, 0x5 - cmp r0, 0x11 - bgt _081D6704 - movs r1, 0x4 -_081D6704: - lsls r0, r1, 1 - adds r0, r4 - ldrh r0, [r0] - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D6640 - - thumb_func_start sub_81D6720 -sub_81D6720: @ 81D6720 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r4, r0, 0 - adds r5, r1, 0 - mov r8, r2 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r6, =gUnknown_0203CF60 - ldr r0, =0x00002018 - bl AllocZeroed - str r0, [r6] - ldr r1, =0x00002006 - adds r0, r1 - strb r4, [r0] - ldr r0, [r6] - mov r1, r8 - str r1, [r0] - ldr r1, =0x00002007 - adds r0, r1 - strb r5, [r0] - ldr r0, =sub_81D6774 - bl SetMainCallback2 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D6720 - - thumb_func_start sub_81D6774 -sub_81D6774: @ 81D6774 - push {lr} - bl SetVBlankHBlankCallbacksToNull - bl clear_scheduled_bg_copies_to_vram - bl remove_some_task - bl ResetObjectPaletteAllocator - bl ResetPaletteFade - bl ResetAllObjectData - bl ResetTasks - movs r0, 0 - movs r1, 0xF0 - movs r2, 0x20 - bl FillPalette - ldr r1, =gUnknown_0862A6A0 - ldr r0, =gUnknown_0203CF60 - ldr r0, [r0] - ldr r2, =0x00002006 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - bl CreateTask - ldr r0, =sub_81D67D0 - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D6774 - - thumb_func_start sub_81D67D0 -sub_81D67D0: @ 81D67D0 - push {lr} - bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_81D67D0 - - thumb_func_start sub_81D67EC -sub_81D67EC: @ 81D67EC - push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_81D67EC - - thumb_func_start sub_81D6800 -sub_81D6800: @ 81D6800 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081D6830 - bl ResetAllObjectData - bl ResetObjectPaletteAllocator - ldr r4, =gUnknown_0203CF60 - ldr r0, [r4] - ldr r0, [r0] - bl SetMainCallback2 - ldr r0, [r4] - bl Free - adds r0, r5, 0 - bl DestroyTask -_081D6830: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D6800 - - thumb_func_start sub_81D6840 -sub_81D6840: @ 81D6840 - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - adds r6, r3, 0 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _081D68B2 - ldr r2, =gUnknown_0203CF60 - ldr r1, [r2] - ldr r4, =0x00002007 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0x1 - bne _081D6888 - ldr r0, =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81D6800 - b _081D68B0 - .pool -_081D6888: - ldr r4, =0x00002006 - adds r1, r4 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r2, [r2] - ldr r1, =0x00002004 - adds r0, r2, r1 - strh r5, [r0] - ldr r0, =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r3, =gUnknown_0862A6A0 - adds r2, r4 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] -_081D68B0: - str r0, [r1] -_081D68B2: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D6840 - - thumb_func_start sub_81D68C8 -sub_81D68C8: @ 81D68C8 - push {lr} - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - movs r0, 0x4A - movs r1, 0 - bl SetGpuReg - movs r0, 0x40 - movs r1, 0xF0 - bl SetGpuReg - ldr r1, =0x00001888 - movs r0, 0x44 - bl SetGpuReg - ldr r0, =gPlttBufferUnfaded - movs r1, 0 - strh r1, [r0] - ldr r0, =gPlttBufferFaded - strh r1, [r0] - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D68C8 - - thumb_func_start sub_81D6904 -sub_81D6904: @ 81D6904 - push {lr} - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - movs r0, 0x4A - movs r1, 0x3F - bl SetGpuReg - pop {r0} - bx r0 - thumb_func_end sub_81D6904 - - thumb_func_start sub_81D691C -sub_81D691C: @ 81D691C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r5, r0, r1 - bl sub_81D750C - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081D697E - movs r0, 0 - ldrsh r1, [r5, r0] - cmp r1, 0x40 - bne _081D6954 - bl sub_81D7438 - b _081D6978 - .pool -_081D6954: - cmp r1, 0x90 - bne _081D695E - bl sub_81D7480 - b _081D6978 -_081D695E: - cmp r1, 0x94 - beq _081D6974 - movs r0, 0xA4 - lsls r0, 1 - cmp r1, r0 - bne _081D6978 - adds r0, r4, 0 - movs r1, 0 - bl sub_81D75B4 - b _081D697E -_081D6974: - bl sub_81D74C8 -_081D6978: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] -_081D697E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81D691C - - thumb_func_start sub_81D6984 -sub_81D6984: @ 81D6984 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r0, =gUnknown_0862A72C - mov r8, r0 - movs r1, 0x58 - movs r2, 0x48 - movs r3, 0x3 - bl AddObjectToFront - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r6, =gUnknown_02020630 - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - adds r0, r6, 0 - adds r0, 0x1C - adds r0, r4, r0 - ldr r1, =sub_81D6A20 - str r1, [r0] - adds r0, r6, 0 - adds r0, 0x2E - adds r4, r0 - mov r0, r8 - movs r1, 0x38 - movs r2, 0x68 - movs r3, 0x3 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - ldr r0, =gUnknown_0862A750 - movs r1, 0x4B - movs r2, 0x65 - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2] - ldr r0, =gUnknown_0862A774 - movs r1, 0x6D - movs r2, 0x72 - movs r3, 0x1 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x4] - movs r0, 0 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x1 - bl StartObjectImageAnim - adds r0, r5, 0 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D6984 - - thumb_func_start sub_81D6A20 -sub_81D6A20: @ 81D6A20 - push {r4,lr} - adds r3, r0, 0 - movs r0, 0x2E - adds r0, r3 - mov r12, r0 - ldrh r0, [r0, 0xA] - adds r0, 0x1 - movs r1, 0x1F - ands r0, r1 - mov r1, r12 - strh r0, [r1, 0xA] - cmp r0, 0 - bne _081D6A84 - ldrh r1, [r3, 0x20] - movs r2, 0x20 - ldrsh r0, [r3, r2] - cmp r0, 0x48 - beq _081D6A84 - subs r0, r1, 0x1 - strh r0, [r3, 0x20] - ldr r2, =gUnknown_02020630 - movs r4, 0x2E - ldrsh r1, [r3, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x20] - subs r1, 0x1 - strh r1, [r0, 0x20] - mov r0, r12 - movs r4, 0x2 - ldrsh r1, [r0, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x20] - subs r1, 0x1 - strh r1, [r0, 0x20] - mov r0, r12 - movs r4, 0x4 - ldrsh r1, [r0, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x20] - subs r1, 0x1 - strh r1, [r0, 0x20] -_081D6A84: - adds r0, r3, 0 - adds r0, 0x2B - ldrb r3, [r0] - cmp r3, 0x1 - beq _081D6AE4 - cmp r3, 0x1 - bgt _081D6A9C - cmp r3, 0 - beq _081D6AA6 - b _081D6B68 - .pool -_081D6A9C: - cmp r3, 0x2 - beq _081D6B24 - cmp r3, 0x3 - beq _081D6AE4 - b _081D6B68 -_081D6AA6: - ldr r2, =gUnknown_02020630 - mov r0, r12 - movs r4, 0x2 - ldrsh r1, [r0, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x24] - mov r0, r12 - movs r4, 0x2 - ldrsh r1, [r0, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x26] - mov r0, r12 - movs r4, 0x4 - ldrsh r1, [r0, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x24] - mov r0, r12 - movs r4, 0x4 - ldrsh r1, [r0, r4] - b _081D6B5E - .pool -_081D6AE4: - ldr r2, =gUnknown_02020630 - mov r0, r12 - movs r3, 0x2 - ldrsh r1, [r0, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, =0x0000ffff - strh r1, [r0, 0x24] - mov r4, r12 - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r3, 0 - strh r3, [r0, 0x26] - movs r0, 0x4 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - negs r1, r1 - b _081D6B58 - .pool -_081D6B24: - ldr r2, =gUnknown_02020630 - mov r3, r12 - movs r4, 0x2 - ldrsh r1, [r3, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, =0x0000ffff - strh r1, [r0, 0x24] - movs r0, 0x2 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r3, 0x1 - strh r3, [r0, 0x26] - mov r4, r12 - movs r0, 0x4 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, =0x0000fffe -_081D6B58: - strh r1, [r0, 0x24] - movs r0, 0x4 - ldrsh r1, [r4, r0] -_081D6B5E: - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x26] -_081D6B68: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D6A20 - - thumb_func_start sub_81D6B7C -sub_81D6B7C: @ 81D6B7C - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r5, =gUnknown_0862A81C - adds r0, r5, 0 - movs r1, 0x88 - movs r2, 0x60 - movs r3, 0x1 - bl AddObjectToFront - mov r8, r0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r6, =gUnknown_02020630 - lsls r4, r0, 4 - add r4, r8 - lsls r4, 2 - adds r0, r6, 0 - adds r0, 0x1C - adds r0, r4, r0 - ldr r1, =sub_81D6D20 - str r1, [r0] - adds r0, r6, 0 - adds r0, 0x2E - adds r4, r0 - adds r0, r5, 0 - movs r1, 0xA8 - movs r2, 0x60 - movs r3, 0x1 - bl AddObjectToFront - lsls r0, 8 - strh r0, [r4] - adds r0, r5, 0 - movs r1, 0x88 - movs r2, 0x70 - movs r3, 0x1 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4] - orrs r0, r1 - strh r0, [r4] - adds r0, r5, 0 - movs r1, 0xA8 - movs r2, 0x70 - movs r3, 0x1 - bl AddObjectToFront - lsls r0, 8 - strh r0, [r4, 0x2] - adds r0, r5, 0 - movs r1, 0x88 - movs r2, 0x80 - movs r3, 0x1 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - orrs r0, r1 - strh r0, [r4, 0x2] - adds r0, r5, 0 - movs r1, 0xA8 - movs r2, 0x80 - movs r3, 0x1 - bl AddObjectToFront - lsls r0, 8 - strh r0, [r4, 0x4] - adds r0, r5, 0 - movs r1, 0x68 - movs r2, 0x80 - movs r3, 0x2 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - orrs r0, r1 - strh r0, [r4, 0x4] - adds r0, r5, 0 - movs r1, 0x88 - movs r2, 0x80 - movs r3, 0x2 - bl AddObjectToFront - lsls r0, 8 - strh r0, [r4, 0x6] - adds r0, r5, 0 - movs r1, 0xB8 - movs r2, 0x80 - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x6] - orrs r0, r1 - strh r0, [r4, 0x6] - ldr r0, =gUnknown_0862A84C - movs r1, 0xD0 - movs r2, 0x84 - movs r3, 0 - bl AddObjectToFront - lsls r0, 8 - strh r0, [r4, 0x8] - ldr r0, =gUnknown_0862A864 - movs r1, 0xC8 - movs r2, 0x78 - movs r3, 0x1 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x8] - orrs r0, r1 - strh r0, [r4, 0x8] - ldrh r1, [r4] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x1 - bl StartObjectImageAnim - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x2 - bl StartObjectImageAnim - ldrh r1, [r4, 0x2] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x3 - bl StartObjectImageAnim - ldrb r1, [r4, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x4 - bl StartObjectImageAnim - ldrh r1, [r4, 0x4] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x5 - bl StartObjectImageAnim - ldrb r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x6 - bl StartObjectImageAnim - ldrh r1, [r4, 0x6] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x7 - bl StartObjectImageAnim - ldrb r1, [r4, 0x6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x8 - bl StartObjectImageAnim - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D6B7C - - thumb_func_start sub_81D6D20 -sub_81D6D20: @ 81D6D20 - push {r4-r7,lr} - adds r4, r0, 0 - adds r3, r4, 0 - adds r3, 0x2E - ldrh r0, [r3, 0xA] - adds r0, 0x1 - movs r1, 0x1F - ands r0, r1 - strh r0, [r3, 0xA] - ldr r7, =gUnknown_02020630 - cmp r0, 0 - bne _081D6E0E - ldrh r1, [r4, 0x20] - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x98 - beq _081D6E0E - adds r0, r1, 0x1 - strh r0, [r4, 0x20] - ldrh r1, [r4, 0x2E] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r0, [r4, 0x2E] - movs r2, 0xFF - adds r1, r2, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r1, [r3, 0x2] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0x2] - adds r1, r2, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r1, [r3, 0x4] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0x4] - adds r1, r2, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r1, [r3, 0x6] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0x6] - adds r1, r2, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r1, [r3, 0x8] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0x8] - ands r2, r0 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] -_081D6E0E: - adds r6, r7, 0 - movs r5, 0xFF - ldrb r1, [r3, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x2B - ldrb r2, [r0] - cmp r2, 0x1 - beq _081D6EE0 - cmp r2, 0x1 - bgt _081D6E34 - cmp r2, 0 - beq _081D6E40 - b _081D6FC8 - .pool -_081D6E34: - cmp r2, 0x2 - bne _081D6E3A - b _081D6F68 -_081D6E3A: - cmp r2, 0x3 - beq _081D6EE0 - b _081D6FC8 -_081D6E40: - strh r2, [r4, 0x26] - ldrh r1, [r3] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r0, [r3] - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x2] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r0, [r3, 0x2] - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x4] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r0, [r3, 0x4] - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x6] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r0, [r3, 0x6] - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x8] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x8] - ands r1, r5 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - b _081D6FC6 -_081D6EE0: - movs r2, 0x1 - strh r2, [r4, 0x26] - ldrh r1, [r3] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x2] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrb r1, [r3, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x4] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrb r1, [r3, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x6] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrb r1, [r3, 0x6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x8] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrb r1, [r3, 0x8] - b _081D6FBE -_081D6F68: - strh r2, [r4, 0x26] - ldrh r1, [r3] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r0, [r3] - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x2] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r0, [r3, 0x2] - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x4] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x8] - ands r1, r5 -_081D6FBE: - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 -_081D6FC6: - strh r2, [r0, 0x26] -_081D6FC8: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D6D20 - - thumb_func_start sub_81D6FD0 -sub_81D6FD0: @ 81D6FD0 - push {lr} - bl sub_81D67EC - bl sub_80BA0A8 - pop {r0} - bx r0 - thumb_func_end sub_81D6FD0 - - thumb_func_start sub_81D6FE0 -sub_81D6FE0: @ 81D6FE0 - push {r4,lr} - bl sub_8121DA0 - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_0862A888 - movs r0, 0 - movs r2, 0x3 - bl InitBgsFromTemplates - ldr r4, =gUnknown_0203CF60 - ldr r1, [r4] - adds r1, 0x4 - movs r0, 0 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00000804 - adds r1, r0 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00001004 - adds r1, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - bl sub_8121E10 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D6FE0 - - thumb_func_start sub_81D706C -sub_81D706C: @ 81D706C - push {r4,lr} - sub sp, 0x4 - bl reset_temp_tile_data_buffers - ldr r1, =gUnknown_08DA33C0 - movs r0, 0 - str r0, [sp] - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram -_081D7082: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081D7082 - ldr r0, =gUnknown_08DA3988 - ldr r4, =gUnknown_0203CF60 - ldr r1, [r4] - adds r1, 0x4 - bl LZDecompressWram - ldr r0, =gUnknown_08DA3824 - ldr r1, [r4] - ldr r2, =0x00000804 - adds r1, r2 - bl LZDecompressWram - ldr r0, =gUnknown_08DA3A88 - ldr r1, [r4] - ldr r2, =0x00001004 - adds r1, r2 - bl LZDecompressWram - ldr r0, =gUnknown_08DA37E8 - movs r1, 0 - movs r2, 0x40 - bl LoadCompressedPalette - ldr r0, =gUnknown_0862A8C4 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862A8F8 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862A924 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862A9D4 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862AA14 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862AA34 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862A8CC - bl LoadCompressedObjectPalette - ldr r0, =gUnknown_0862A9DC - bl LoadCompressedObjectPalette - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D706C - - thumb_func_start task_add_00_WIN0V_open_close_above_and_more -task_add_00_WIN0V_open_close_above_and_more: @ 81D7134 - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r6, r1, 3 - ldr r7, =gTasks + 0x8 - adds r5, r6, r7 - bl dp12_8087EA4 - bl sub_81D6FE0 - bl sub_81D706C - movs r4, 0 - str r4, [sp, 0x4] - ldr r1, =gUnknown_02038C28 - ldr r2, =0x010003c0 - add r0, sp, 0x4 - bl CpuFastSet - ldr r2, =gUnknown_0862A87C - ldr r0, [r2] - ldr r1, [r2, 0x4] - ldr r2, [r2, 0x8] - bl sub_80BA038 - strh r4, [r5] - ldr r0, =sub_81D7228 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x2] - ldr r0, =gUnknown_0203CF60 - ldr r0, [r0] - ldr r1, =0x00002006 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _081D71CC - bl sub_81D6984 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x4] - bl sub_81D6B7C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x6] - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, =sub_81D691C - str r1, [r0] - b _081D71EE - .pool -_081D71CC: - bl sub_81D7664 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x4] - bl sub_81D78BC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x6] - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, =sub_81D736C - str r1, [r0] - bl sub_80A2F30 -_081D71EE: - movs r4, 0x1 - negs r4, r4 - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, =sub_81D6FD0 - bl SetVBlankCallback - movs r0, 0x53 - bl audio_play - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end task_add_00_WIN0V_open_close_above_and_more - - thumb_func_start sub_81D7228 -sub_81D7228: @ 81D7228 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r3, r1, r0 - movs r1, 0x18 - ldr r7, =gUnknown_0203CF60 - ldr r4, =gUnknown_02038C28 - movs r0, 0xF0 - lsls r0, 3 - adds r5, r4, r0 -_081D7244: - lsls r0, r1, 16 - asrs r1, r0, 16 - adds r6, r0, 0 - cmp r1, 0x2F - bgt _081D726C - lsls r1, 1 - adds r2, r1, r4 - ldrh r0, [r3] - lsrs r0, 8 - strh r0, [r2] - adds r1, r5 - ldrh r0, [r3] - b _081D72CA - .pool -_081D726C: - cmp r1, 0x3F - bgt _081D7280 - lsls r1, 1 - adds r2, r1, r4 - ldrh r0, [r3, 0x2] - lsrs r0, 8 - strh r0, [r2] - adds r1, r5 - ldrh r0, [r3, 0x2] - b _081D72CA -_081D7280: - cmp r1, 0x4B - bgt _081D7294 - lsls r1, 1 - adds r2, r1, r4 - ldrh r0, [r3, 0x4] - lsrs r0, 8 - strh r0, [r2] - adds r1, r5 - ldrh r0, [r3, 0x4] - b _081D72CA -_081D7294: - cmp r1, 0x53 - bgt _081D72A8 - lsls r1, 1 - adds r2, r1, r4 - ldrh r0, [r3, 0x6] - lsrs r0, 8 - strh r0, [r2] - adds r1, r5 - ldrh r0, [r3, 0x6] - b _081D72CA -_081D72A8: - cmp r1, 0x57 - bgt _081D72BC - lsls r1, 1 - adds r2, r1, r4 - ldrh r0, [r3, 0x8] - lsrs r0, 8 - strh r0, [r2] - adds r1, r5 - ldrh r0, [r3, 0x8] - b _081D72CA -_081D72BC: - lsls r1, 1 - adds r2, r1, r4 - ldrh r0, [r3, 0xA] - lsrs r0, 8 - strh r0, [r2] - adds r1, r5 - ldrh r0, [r3, 0xA] -_081D72CA: - lsrs r0, 8 - strh r0, [r1] - movs r1, 0x80 - lsls r1, 9 - adds r0, r6, r1 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, 0x5B - ble _081D7244 - ldr r0, [r7] - ldr r1, =0x00002006 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _081D7324 - movs r1, 0xE0 - lsls r1, 1 - adds r0, r1, 0 - ldrh r1, [r3] - adds r0, r1 - strh r0, [r3] - movs r1, 0xC0 - lsls r1, 1 - adds r0, r1, 0 - ldrh r1, [r3, 0x2] - adds r0, r1 - strh r0, [r3, 0x2] - movs r1, 0xA0 - lsls r1, 1 - adds r0, r1, 0 - ldrh r1, [r3, 0x4] - adds r0, r1 - strh r0, [r3, 0x4] - movs r1, 0x80 - lsls r1, 1 - adds r0, r1, 0 - ldrh r1, [r3, 0x6] - adds r0, r1 - strh r0, [r3, 0x6] - ldrh r0, [r3, 0x8] - adds r0, 0xC0 - b _081D735E - .pool -_081D7324: - movs r1, 0xC0 - lsls r1, 2 - adds r0, r1, 0 - ldrh r1, [r3] - adds r0, r1 - strh r0, [r3] - movs r1, 0xA0 - lsls r1, 2 - adds r0, r1, 0 - ldrh r1, [r3, 0x2] - adds r0, r1 - strh r0, [r3, 0x2] - movs r1, 0x80 - lsls r1, 2 - adds r0, r1, 0 - ldrh r1, [r3, 0x4] - adds r0, r1 - strh r0, [r3, 0x4] - movs r1, 0xC0 - lsls r1, 1 - adds r0, r1, 0 - ldrh r1, [r3, 0x6] - adds r0, r1 - strh r0, [r3, 0x6] - movs r1, 0x80 - lsls r1, 1 - adds r0, r1, 0 - ldrh r1, [r3, 0x8] - adds r0, r1 -_081D735E: - strh r0, [r3, 0x8] - ldrh r0, [r3, 0xA] - adds r0, 0x80 - strh r0, [r3, 0xA] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D7228 - - thumb_func_start sub_81D736C -sub_81D736C: @ 81D736C - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r7, =gTasks + 0x8 - adds r4, r0, r7 - bl sub_81D750C - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - bne _081D742E - movs r0, 0 - ldrsh r1, [r4, r0] - cmp r1, 0x20 - beq _081D739C - cmp r1, 0x70 - bne _081D73AC -_081D739C: - bl sub_81D7438 - b _081D7428 - .pool -_081D73AC: - cmp r1, 0xD8 - bne _081D73B6 - bl sub_81D7480 - b _081D7428 -_081D73B6: - cmp r1, 0xDC - bne _081D73C0 - bl sub_81D74C8 - b _081D7428 -_081D73C0: - movs r0, 0xBE - lsls r0, 1 - cmp r1, r0 - beq _081D73D8 - adds r0, 0x20 - cmp r1, r0 - bne _081D7428 - adds r0, r5, 0 - movs r1, 0x2 - bl sub_81D75B4 - b _081D742E -_081D73D8: - movs r1, 0x91 - lsls r1, 2 - movs r0, 0x50 - bl SetGpuReg - adds r2, r7, 0 - subs r2, 0x8 - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, =sub_81D752C - str r1, [r0] - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - strh r6, [r0, 0x8] - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r4, 0x4] - strh r1, [r0, 0xC] - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r4, 0x6] - strh r1, [r0, 0xE] - bl remove_some_task -_081D7428: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_081D742E: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D736C - - thumb_func_start sub_81D7438 -sub_81D7438: @ 81D7438 - push {r4,lr} - sub sp, 0xC - movs r0, 0x57 - bl audio_play - ldr r0, =0x00007fff - ldr r1, =0x0000ffff - str r1, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl sub_80A2C44 - ldr r0, =0xffff0000 - str r4, [sp] - str r4, [sp, 0x4] - movs r1, 0x1 - str r1, [sp, 0x8] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl sub_80A2C44 - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D7438 - - thumb_func_start sub_81D7480 -sub_81D7480: @ 81D7480 - push {r4,lr} - sub sp, 0xC - movs r0, 0x57 - bl audio_play - ldr r0, =0x00007fff - ldr r1, =0x0000ffff - str r1, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0 - movs r2, 0x10 - movs r3, 0x10 - bl sub_80A2C44 - ldr r0, =0xffff0000 - str r4, [sp] - str r4, [sp, 0x4] - movs r1, 0x1 - str r1, [sp, 0x8] - movs r1, 0 - movs r2, 0x10 - movs r3, 0x10 - bl sub_80A2C44 - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D7480 - - thumb_func_start sub_81D74C8 -sub_81D74C8: @ 81D74C8 - push {r4,lr} - sub sp, 0xC - ldr r0, =0x00007fff - ldr r1, =0x0000ffff - str r1, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x4 - movs r2, 0x10 - movs r3, 0 - bl sub_80A2C44 - ldr r0, =0xffff0000 - str r4, [sp] - str r4, [sp, 0x4] - movs r1, 0x1 - str r1, [sp, 0x8] - movs r1, 0x4 - movs r2, 0x10 - movs r3, 0 - bl sub_80A2C44 - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D74C8 - - thumb_func_start sub_81D750C -sub_81D750C: @ 81D750C - push {lr} - movs r1, 0x80 - lsls r1, 3 - movs r0, 0x2 - movs r2, 0x1 - bl ChangeBgX - movs r1, 0x80 - lsls r1, 4 - movs r0, 0x2 - movs r2, 0x2 - bl ChangeBgY - pop {r0} - bx r0 - thumb_func_end sub_81D750C - - thumb_func_start sub_81D752C -sub_81D752C: @ 81D752C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r5, r1, r0 - movs r0, 0x4 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - bl sub_81D7860 - movs r0, 0x6 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl sub_81D7D14 - movs r0, 0x1 - bl GetBgY - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0x1 - bl GetBgY - cmp r0, 0 - beq _081D757A - movs r0, 0x80 - lsls r0, 8 - cmp r4, r0 - bls _081D7586 -_081D757A: - movs r1, 0x80 - lsls r1, 3 - movs r0, 0x1 - movs r2, 0x2 - bl ChangeBgY -_081D7586: - ldrh r2, [r5] - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0x10 - beq _081D75A6 - adds r2, 0x1 - strh r2, [r5] - lsls r1, r2, 8 - movs r0, 0x10 - subs r0, r2 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg -_081D75A6: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D752C - - thumb_func_start sub_81D75B4 -sub_81D75B4: @ 81D75B4 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r4, r1, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x54 - bl audio_play - movs r0, 0x1 - negs r0, r0 - lsls r4, 24 - asrs r4, 24 - movs r1, 0 - str r1, [sp] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81D7600 - str r1, [r0] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D75B4 - - thumb_func_start sub_81D7600 -sub_81D7600: @ 81D7600 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r6, r1, 3 - ldr r7, =gTasks + 0x8 - adds r5, r6, r7 - bl sub_81D750C - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _081D7652 - ldrb r0, [r5, 0x2] - bl DestroyTask - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0 - bl SetVBlankCallback - bl remove_some_task - bl ResetAllObjectData - bl ResetObjectPaletteAllocator - strh r4, [r5] - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, =sub_81D6840 - str r1, [r0] -_081D7652: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D7600 - - thumb_func_start sub_81D7664 -sub_81D7664: @ 81D7664 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r0, =gUnknown_0862A8D4 - mov r8, r0 - movs r1, 0x62 - movs r2, 0x48 - movs r3, 0x3 - bl AddObjectToFront - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r6, =gUnknown_02020630 - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - adds r0, r6, 0 - adds r0, 0x1C - adds r0, r4, r0 - ldr r1, =sub_81D7700 - str r1, [r0] - adds r0, r6, 0 - adds r0, 0x2E - adds r4, r0 - mov r0, r8 - movs r1, 0x42 - movs r2, 0x68 - movs r3, 0x3 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - ldr r0, =gUnknown_0862A900 - movs r1, 0x55 - movs r2, 0x65 - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2] - ldr r0, =gUnknown_0862A92C - movs r1, 0x77 - movs r2, 0x72 - movs r3, 0x1 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x4] - movs r0, 0 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x1 - bl StartObjectImageAnim - adds r0, r5, 0 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D7664 - - thumb_func_start sub_81D7700 -sub_81D7700: @ 81D7700 - push {r4,lr} - adds r3, r0, 0 - movs r0, 0x2E - adds r0, r3 - mov r12, r0 - ldrh r0, [r0, 0xA] - adds r0, 0x1 - movs r1, 0xF - ands r0, r1 - mov r1, r12 - strh r0, [r1, 0xA] - movs r1, 0x7 - ands r1, r0 - cmp r1, 0 - bne _081D7768 - ldrh r1, [r3, 0x20] - movs r2, 0x20 - ldrsh r0, [r3, r2] - cmp r0, 0x48 - beq _081D7768 - subs r0, r1, 0x1 - strh r0, [r3, 0x20] - ldr r2, =gUnknown_02020630 - movs r4, 0x2E - ldrsh r1, [r3, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x20] - subs r1, 0x1 - strh r1, [r0, 0x20] - mov r0, r12 - movs r4, 0x2 - ldrsh r1, [r0, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x20] - subs r1, 0x1 - strh r1, [r0, 0x20] - mov r0, r12 - movs r4, 0x4 - ldrsh r1, [r0, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x20] - subs r1, 0x1 - strh r1, [r0, 0x20] -_081D7768: - adds r0, r3, 0 - adds r0, 0x2B - ldrb r3, [r0] - cmp r3, 0x1 - beq _081D77C8 - cmp r3, 0x1 - bgt _081D7780 - cmp r3, 0 - beq _081D778A - b _081D784C - .pool -_081D7780: - cmp r3, 0x2 - beq _081D7808 - cmp r3, 0x3 - beq _081D77C8 - b _081D784C -_081D778A: - ldr r2, =gUnknown_02020630 - mov r0, r12 - movs r4, 0x2 - ldrsh r1, [r0, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x24] - mov r0, r12 - movs r4, 0x2 - ldrsh r1, [r0, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x26] - mov r0, r12 - movs r4, 0x4 - ldrsh r1, [r0, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x24] - mov r0, r12 - movs r4, 0x4 - ldrsh r1, [r0, r4] - b _081D7842 - .pool -_081D77C8: - ldr r2, =gUnknown_02020630 - mov r0, r12 - movs r3, 0x2 - ldrsh r1, [r0, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, =0x0000ffff - strh r1, [r0, 0x24] - mov r4, r12 - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r3, 0 - strh r3, [r0, 0x26] - movs r0, 0x4 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - negs r1, r1 - b _081D783C - .pool -_081D7808: - ldr r2, =gUnknown_02020630 - mov r3, r12 - movs r4, 0x2 - ldrsh r1, [r3, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, =0x0000ffff - strh r1, [r0, 0x24] - movs r0, 0x2 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r3, 0x1 - strh r3, [r0, 0x26] - mov r4, r12 - movs r0, 0x4 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, =0x0000fffe -_081D783C: - strh r1, [r0, 0x24] - movs r0, 0x4 - ldrsh r1, [r4, r0] -_081D7842: - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x26] -_081D784C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D7700 - - thumb_func_start sub_81D7860 -sub_81D7860: @ 81D7860 - push {r4,lr} - adds r1, r0, 0 - adds r3, r1, 0 - adds r3, 0x2E - ldrh r2, [r1, 0x22] - movs r4, 0x22 - ldrsh r0, [r1, r4] - cmp r0, 0xA0 - bgt _081D78B0 - adds r0, r2, 0 - adds r0, 0x8 - strh r0, [r1, 0x22] - ldr r2, =gUnknown_02020630 - movs r0, 0x2E - ldrsh r1, [r1, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - movs r4, 0x2 - ldrsh r1, [r3, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - movs r0, 0x4 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] -_081D78B0: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D7860 - - thumb_func_start sub_81D78BC -sub_81D78BC: @ 81D78BC - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r5, =gUnknown_0862A9E4 - adds r0, r5, 0 - movs r1, 0x7E - movs r2, 0x60 - movs r3, 0x1 - bl AddObjectToFront - mov r8, r0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r6, =gUnknown_02020630 - lsls r4, r0, 4 - add r4, r8 - lsls r4, 2 - adds r0, r6, 0 - adds r0, 0x1C - adds r0, r4, r0 - ldr r1, =sub_81D7A60 - str r1, [r0] - adds r0, r6, 0 - adds r0, 0x2E - adds r4, r0 - adds r0, r5, 0 - movs r1, 0x9E - movs r2, 0x60 - movs r3, 0x1 - bl AddObjectToFront - lsls r0, 8 - strh r0, [r4] - adds r0, r5, 0 - movs r1, 0x7E - movs r2, 0x70 - movs r3, 0x1 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4] - orrs r0, r1 - strh r0, [r4] - adds r0, r5, 0 - movs r1, 0x9E - movs r2, 0x70 - movs r3, 0x1 - bl AddObjectToFront - lsls r0, 8 - strh r0, [r4, 0x2] - adds r0, r5, 0 - movs r1, 0x7E - movs r2, 0x80 - movs r3, 0x1 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - orrs r0, r1 - strh r0, [r4, 0x2] - adds r0, r5, 0 - movs r1, 0x9E - movs r2, 0x80 - movs r3, 0x1 - bl AddObjectToFront - lsls r0, 8 - strh r0, [r4, 0x4] - adds r0, r5, 0 - movs r1, 0x5E - movs r2, 0x80 - movs r3, 0x2 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - orrs r0, r1 - strh r0, [r4, 0x4] - adds r0, r5, 0 - movs r1, 0x7E - movs r2, 0x80 - movs r3, 0x2 - bl AddObjectToFront - lsls r0, 8 - strh r0, [r4, 0x6] - adds r0, r5, 0 - movs r1, 0xAE - movs r2, 0x80 - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x6] - orrs r0, r1 - strh r0, [r4, 0x6] - ldr r0, =gUnknown_0862AA1C - movs r1, 0xC6 - movs r2, 0x84 - movs r3, 0 - bl AddObjectToFront - lsls r0, 8 - strh r0, [r4, 0x8] - ldr r0, =gUnknown_0862AA3C - movs r1, 0xBE - movs r2, 0x78 - movs r3, 0x1 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x8] - orrs r0, r1 - strh r0, [r4, 0x8] - ldrh r1, [r4] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x1 - bl StartObjectImageAnim - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x2 - bl StartObjectImageAnim - ldrh r1, [r4, 0x2] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x3 - bl StartObjectImageAnim - ldrb r1, [r4, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x4 - bl StartObjectImageAnim - ldrh r1, [r4, 0x4] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x5 - bl StartObjectImageAnim - ldrb r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x6 - bl StartObjectImageAnim - ldrh r1, [r4, 0x6] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x7 - bl StartObjectImageAnim - ldrb r1, [r4, 0x6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x8 - bl StartObjectImageAnim - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D78BC - - thumb_func_start sub_81D7A60 -sub_81D7A60: @ 81D7A60 - push {r4-r7,lr} - adds r4, r0, 0 - adds r3, r4, 0 - adds r3, 0x2E - ldrh r0, [r3, 0xA] - adds r0, 0x1 - movs r1, 0xF - ands r0, r1 - strh r0, [r3, 0xA] - movs r1, 0x7 - ands r1, r0 - ldr r7, =gUnknown_02020630 - cmp r1, 0 - bne _081D7B52 - ldrh r1, [r4, 0x20] - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x98 - beq _081D7B52 - adds r0, r1, 0x1 - strh r0, [r4, 0x20] - ldrh r1, [r4, 0x2E] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r0, [r4, 0x2E] - movs r2, 0xFF - adds r1, r2, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r1, [r3, 0x2] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0x2] - adds r1, r2, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r1, [r3, 0x4] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0x4] - adds r1, r2, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r1, [r3, 0x6] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0x6] - adds r1, r2, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r1, [r3, 0x8] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0x8] - ands r2, r0 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] -_081D7B52: - adds r6, r7, 0 - movs r5, 0xFF - ldrb r1, [r3, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x2B - ldrb r2, [r0] - cmp r2, 0x1 - beq _081D7C24 - cmp r2, 0x1 - bgt _081D7B78 - cmp r2, 0 - beq _081D7B84 - b _081D7D0C - .pool -_081D7B78: - cmp r2, 0x2 - bne _081D7B7E - b _081D7CAC -_081D7B7E: - cmp r2, 0x3 - beq _081D7C24 - b _081D7D0C -_081D7B84: - strh r2, [r4, 0x26] - ldrh r1, [r3] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r0, [r3] - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x2] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r0, [r3, 0x2] - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x4] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r0, [r3, 0x4] - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x6] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r0, [r3, 0x6] - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x8] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x8] - ands r1, r5 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - b _081D7D0A -_081D7C24: - movs r2, 0x1 - strh r2, [r4, 0x26] - ldrh r1, [r3] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x2] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrb r1, [r3, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x4] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrb r1, [r3, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x6] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrb r1, [r3, 0x6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x8] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrb r1, [r3, 0x8] - b _081D7D02 -_081D7CAC: - strh r2, [r4, 0x26] - ldrh r1, [r3] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r0, [r3] - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x2] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r0, [r3, 0x2] - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x4] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x8] - ands r1, r5 -_081D7D02: - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 -_081D7D0A: - strh r2, [r0, 0x26] -_081D7D0C: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D7A60 - - thumb_func_start sub_81D7D14 -sub_81D7D14: @ 81D7D14 - push {lr} - adds r2, r0, 0 - movs r0, 0x2E - adds r0, r2 - mov r12, r0 - ldrh r1, [r2, 0x22] - movs r3, 0x22 - ldrsh r0, [r2, r3] - cmp r0, 0xA0 - bgt _081D7E08 - adds r0, r1, 0 - adds r0, 0x8 - strh r0, [r2, 0x22] - ldr r3, =gUnknown_02020630 - ldrh r1, [r2, 0x2E] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - ldrh r0, [r2, 0x2E] - movs r2, 0xFF - adds r1, r2, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - mov r0, r12 - ldrh r1, [r0, 0x2] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - mov r1, r12 - ldrh r0, [r1, 0x2] - adds r1, r2, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - mov r0, r12 - ldrh r1, [r0, 0x4] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - mov r1, r12 - ldrh r0, [r1, 0x4] - adds r1, r2, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - mov r0, r12 - ldrh r1, [r0, 0x6] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - mov r1, r12 - ldrh r0, [r1, 0x6] - adds r1, r2, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - mov r0, r12 - ldrh r1, [r0, 0x8] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - mov r1, r12 - ldrh r0, [r1, 0x8] - ands r2, r0 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] -_081D7E08: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D7D14 - - thumb_func_start sub_81D7E10 -sub_81D7E10: @ 81D7E10 - push {r4,lr} - bl sub_8121DA0 - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_0862AA54 - movs r0, 0x1 - movs r2, 0x3 - bl InitBgsFromTemplates - ldr r4, =gUnknown_0203CF60 - ldr r1, [r4] - adds r1, 0x4 - movs r0, 0 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00000804 - adds r1, r0 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00001004 - adds r1, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - bl sub_8121E10 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D7E10 - - thumb_func_start sub_81D7E9C -sub_81D7E9C: @ 81D7E9C - push {r4,lr} - sub sp, 0x4 - bl reset_temp_tile_data_buffers - ldr r1, =gUnknown_08DA33C0 - movs r4, 0 - str r4, [sp] - movs r0, 0 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, =gUnknown_08DA4F70 - str r4, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, =gUnknown_08DA3C94 - str r4, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram -_081D7ED0: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081D7ED0 - ldr r0, =gUnknown_08DA3988 - ldr r4, =gUnknown_0203CF60 - ldr r1, [r4] - adds r1, 0x4 - bl LZDecompressWram - ldr r0, =gUnknown_08DA60B8 - ldr r1, [r4] - ldr r2, =0x00000804 - adds r1, r2 - bl LZDecompressWram - ldr r0, =gUnknown_08DA4DEC - ldr r1, [r4] - ldr r2, =0x00001004 - adds r1, r2 - bl LZDecompressWram - ldr r0, =gUnknown_08DA4DA8 - movs r1, 0 - movs r2, 0x40 - bl LoadCompressedPalette - ldr r0, =gUnknown_0862AA90 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862AA98 - bl LoadCompressedObjectPalette - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D7E9C - - thumb_func_start sub_81D7F4C -sub_81D7F4C: @ 81D7F4C - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r5, =gTasks + 0x8 - adds r6, r4, r5 - movs r0, 0xE8 - lsls r0, 1 - bl current_map_music_set - bl sub_81D7E10 - bl sub_81D7E9C - movs r1, 0x94 - lsls r1, 2 - movs r0, 0x50 - bl SetGpuReg - ldr r1, =0x00000808 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - ldr r0, =sub_81D67EC - bl SetVBlankCallback - ldr r0, =sub_81D81A4 - movs r1, 0 - bl CreateTask - movs r0, 0 - strh r0, [r6] - strh r0, [r6, 0x2] - subs r5, 0x8 - adds r4, r5 - ldr r0, =sub_81D7FC0 - str r0, [r4] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D7F4C - - thumb_func_start sub_81D7FC0 -sub_81D7FC0: @ 81D7FC0 - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - movs r0, 0 - ldrsh r5, [r4, r0] - cmp r5, 0x1 - beq _081D802A - cmp r5, 0x1 - bgt _081D7FE8 - cmp r5, 0 - beq _081D7FF4 - b _081D815A - .pool -_081D7FE8: - cmp r5, 0x2 - beq _081D80A4 - cmp r5, 0x3 - bne _081D7FF2 - b _081D8124 -_081D7FF2: - b _081D815A -_081D7FF4: - ldrh r1, [r4, 0x2] - movs r2, 0x2 - ldrsh r0, [r4, r2] - cmp r0, 0x8 - bne _081D8024 - movs r0, 0x1 - negs r0, r0 - str r5, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - strh r5, [r4, 0x4] - movs r0, 0x1E - strh r0, [r4, 0x6] - strh r5, [r4, 0x8] - movs r0, 0x7 - strh r0, [r4, 0xA] - strh r5, [r4, 0x2] - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _081D815A -_081D8024: - adds r0, r1, 0x1 - strh r0, [r4, 0x2] - b _081D815A -_081D802A: - ldrh r1, [r4, 0x6] - ldrh r3, [r4, 0x4] - adds r0, r1, r3 - strh r0, [r4, 0x4] - ldrh r2, [r4, 0xA] - ldrh r3, [r4, 0x8] - adds r0, r2, r3 - strh r0, [r4, 0x8] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _081D8046 - subs r0, r1, 0x3 - strh r0, [r4, 0x6] -_081D8046: - lsls r0, r2, 16 - cmp r0, 0 - beq _081D8050 - subs r0, r2, 0x1 - strh r0, [r4, 0xA] -_081D8050: - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0xFF - ble _081D8078 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r4, 0x4] - movs r1, 0 - strh r1, [r4, 0x6] - movs r0, 0xC - strh r0, [r4, 0xC] - movs r3, 0x1 - negs r3, r3 - adds r0, r3, 0 - strh r0, [r4, 0xE] - strh r1, [r4, 0x2] - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_081D8078: - movs r1, 0xF0 - lsls r1, 7 - movs r2, 0xC0 - lsls r2, 5 - ldrh r0, [r4, 0x8] - adds r0, 0x20 - lsls r0, 16 - asrs r0, 16 - str r0, [sp] - movs r3, 0x4 - ldrsh r0, [r4, r3] - str r0, [sp, 0x4] - movs r3, 0x4 - ldrsh r0, [r4, r3] - str r0, [sp, 0x8] - movs r0, 0 - str r0, [sp, 0xC] - movs r0, 0x2 - movs r3, 0x78 - bl SetBgAffine - b _081D815A -_081D80A4: - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - movs r1, 0xF0 - lsls r1, 7 - movs r2, 0xC0 - lsls r2, 5 - ldrh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 18 - adds r0, 0x20 - ldrh r3, [r4, 0x8] - adds r0, r3 - lsls r0, 16 - asrs r0, 16 - str r0, [sp] - movs r3, 0x4 - ldrsh r0, [r4, r3] - str r0, [sp, 0x4] - movs r3, 0x4 - ldrsh r0, [r4, r3] - str r0, [sp, 0x8] - movs r5, 0 - str r5, [sp, 0xC] - movs r0, 0x2 - movs r3, 0x78 - bl SetBgAffine - ldrh r0, [r4, 0xE] - ldrh r1, [r4, 0xC] - adds r0, r1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0xC - beq _081D80F4 - movs r0, 0xC - negs r0, r0 - cmp r1, r0 - bne _081D815A -_081D80F4: - movs r2, 0xE - ldrsh r0, [r4, r2] - negs r0, r0 - strh r0, [r4, 0xE] - movs r3, 0x2 - ldrsh r1, [r4, r3] - ldr r0, =0x00000127 - cmp r1, r0 - ble _081D815A - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - movs r0, 0x1 - negs r0, r0 - str r5, [sp] - movs r1, 0x6 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _081D815A - .pool -_081D8124: - ldrh r0, [r4, 0x4] - adds r0, 0x10 - strh r0, [r4, 0x4] - movs r1, 0xF0 - lsls r1, 7 - movs r2, 0xC0 - lsls r2, 5 - ldrh r0, [r4, 0x8] - adds r0, 0x20 - lsls r0, 16 - asrs r0, 16 - str r0, [sp] - movs r3, 0x4 - ldrsh r0, [r4, r3] - str r0, [sp, 0x4] - movs r3, 0x4 - ldrsh r0, [r4, r3] - str r0, [sp, 0x8] - movs r0, 0 - str r0, [sp, 0xC] - movs r0, 0x2 - movs r3, 0x78 - bl SetBgAffine - adds r0, r6, 0 - bl sub_81D8164 -_081D815A: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81D7FC0 - - thumb_func_start sub_81D8164 -sub_81D8164: @ 81D8164 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081D8192 - movs r0, 0 - bl SetVBlankCallback - bl ResetAllObjectData - bl ResetObjectPaletteAllocator - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81D6840 - str r0, [r1] -_081D8192: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D8164 - - thumb_func_start sub_81D81A4 -sub_81D81A4: @ 81D81A4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldrh r1, [r4, 0x2] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _081D8254 - ldr r0, =gUnknown_0862AAA0 - ldr r3, =gUnknown_0862AAB8 - movs r1, 0 - ldrsh r2, [r4, r1] - lsls r2, 1 - adds r1, r2, r3 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - lsls r1, 18 - movs r6, 0xF0 - lsls r6, 15 - adds r1, r6 - asrs r1, 16 - adds r3, 0x1 - adds r2, r3 - ldrb r2, [r2] - lsls r2, 24 - asrs r2, 24 - lsls r2, 18 - movs r3, 0xA0 - lsls r3, 15 - adds r2, r3 - asrs r2, 16 - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02020630 - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - adds r3, r1 - movs r0, 0 - ldrsb r0, [r4, r0] - strh r0, [r3, 0x2E] - ldrb r2, [r3, 0x1] - movs r1, 0xD - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - movs r2, 0x4 - orrs r0, r2 - movs r2, 0x3 - orrs r0, r2 - strb r0, [r3, 0x1] - ldrb r0, [r3, 0x5] - ands r1, r0 - movs r0, 0x8 - orrs r1, r0 - strb r1, [r3, 0x5] - adds r0, r3, 0 - bl obj_alloc_rotscale_entry - ldrh r1, [r4] - movs r6, 0 - ldrsh r0, [r4, r6] - cmp r0, 0x9 - bne _081D8250 - adds r0, r5, 0 - bl DestroyTask - b _081D825A - .pool -_081D8250: - adds r0, r1, 0x1 - strh r0, [r4] -_081D8254: - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] -_081D825A: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81D81A4 - - thumb_func_start sub_81D8260 -sub_81D8260: @ 81D8260 - push {lr} - adds r2, r0, 0 - movs r1, 0x30 - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _081D8270 - strh r0, [r2, 0x24] - b _081D829A -_081D8270: - ldr r1, =gUnknown_0862AAB8 - movs r3, 0x2E - ldrsh r0, [r2, r3] - lsls r0, 1 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldrh r3, [r2, 0x24] - adds r0, r3 - strh r0, [r2, 0x24] - movs r3, 0x2E - ldrsh r0, [r2, r3] - lsls r0, 1 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldrh r1, [r2, 0x26] - adds r0, r1 -_081D829A: - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x30] - adds r0, 0x1 - movs r1, 0xF - ands r0, r1 - strh r0, [r2, 0x30] - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D8260 - - thumb_func_start sub_81D82B0 -sub_81D82B0: @ 81D82B0 - push {r4,lr} - bl sub_8121DA0 - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_0862AACC - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - ldr r4, =gUnknown_0203CF60 - ldr r1, [r4] - adds r1, 0x4 - movs r0, 0 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00000804 - adds r1, r0 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00001004 - adds r1, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00001804 - adds r1, r0 - movs r0, 0x3 - bl SetBgTilemapBuffer - bl sub_8121E10 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x3 - bl schedule_bg_copy_tilemap_to_vram - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D82B0 - - thumb_func_start sub_81D8358 -sub_81D8358: @ 81D8358 - push {r4-r7,lr} - sub sp, 0xC - bl reset_temp_tile_data_buffers - ldr r1, =gUnknown_08DA7528 - movs r4, 0 - str r4, [sp] - movs r0, 0 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, =gUnknown_08DA69BC - str r4, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - add r7, sp, 0x8 -_081D8380: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - bne _081D8380 - ldr r0, =gUnknown_08DA7AAC - ldr r5, =gUnknown_0203CF60 - ldr r1, [r5] - adds r1, 0x4 - bl LZDecompressWram - ldr r0, =gUnknown_08DA7784 - ldr r1, [r5] - ldr r4, =0x00001804 - adds r1, r4 - bl LZDecompressWram - str r6, [sp, 0x4] - ldr r1, [r5] - ldr r0, =0x00001004 - adds r1, r0 - ldr r2, =0x01000200 - add r0, sp, 0x4 - bl CpuFastSet - ldr r1, [r5] - adds r4, r1, r4 - ldr r0, =0x00000804 - adds r1, r0 - movs r2, 0x80 - lsls r2, 2 - adds r0, r4, 0 - bl CpuFastSet - str r6, [sp, 0x8] - ldr r1, [r5] - ldr r0, =0x00000904 - adds r1, r0 - ldr r2, =0x010000d0 - adds r0, r7, 0 - bl CpuFastSet - ldr r0, =gUnknown_08DA7744 - movs r1, 0 - movs r2, 0x40 - bl LoadCompressedPalette - ldr r0, =gPlttBufferUnfaded - ldr r1, =0x00007fff - strh r1, [r0] - ldr r0, =gPlttBufferFaded - strh r1, [r0] - ldr r0, =gUnknown_0862AAFC - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862AB04 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862AB0C - bl LoadCompressedObjectPalette - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D8358 - - thumb_func_start sub_81D844C -sub_81D844C: @ 81D844C - push {r4,r5,lr} - movs r0, 0x6 - bl GetGpuReg - lsls r0, 16 - lsrs r2, r0, 16 - adds r1, r2, 0 - subs r1, 0x18 - lsls r0, r1, 16 - lsrs r0, 16 - cmp r0, 0x6F - bhi _081D848C - ldr r0, =gUnknown_0203CF60 - ldr r0, [r0] - ldr r3, =0x00002008 - adds r0, r3 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r1, r0 - bgt _081D848C - ldr r1, =0x04000052 - ldr r3, =0x00000d08 - b _081D8492 - .pool -_081D848C: - ldr r1, =0x04000052 - movs r3, 0x80 - lsls r3, 5 -_081D8492: - adds r0, r3, 0 - strh r0, [r1] - cmp r2, 0 - bne _081D84E0 - ldr r0, =gUnknown_0203CF60 - ldr r1, [r0] - ldr r2, =0x00002008 - adds r3, r1, r2 - ldrh r4, [r3] - movs r1, 0 - ldrsh r2, [r3, r1] - ldr r1, =0x00001fff - adds r5, r0, 0 - cmp r2, r1 - bgt _081D84D4 - cmp r2, 0x27 - bgt _081D84C8 - adds r0, r4, 0x4 - b _081D84D2 - .pool -_081D84C8: - cmp r2, 0x4F - bgt _081D84D0 - adds r0, r4, 0x2 - b _081D84D2 -_081D84D0: - adds r0, r4, 0x1 -_081D84D2: - strh r0, [r3] -_081D84D4: - ldr r1, [r5] - ldr r2, =0x0000200a - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_081D84E0: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D844C - - thumb_func_start sub_81D84EC -sub_81D84EC: @ 81D84EC - push {r4-r6,lr} - mov r6, r8 - push {r6} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r6, =gTasks + 0x8 - adds r5, r4, r6 - bl sub_81D82B0 - bl sub_81D8358 - ldr r1, =0x00001e41 - movs r0, 0x50 - bl SetGpuRegBits - movs r0, 0x80 - lsls r0, 5 - mov r8, r0 - movs r0, 0x52 - mov r1, r8 - bl SetGpuReg - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - ldr r0, =sub_81D67EC - bl SetVBlankCallback - ldr r0, =gUnknown_0203CF60 - ldr r0, [r0] - ldr r1, =0x00002008 - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r2, =0x0000200a - adds r0, r2 - strh r1, [r0] - strh r1, [r5] - strh r1, [r5, 0x2] - strh r1, [r5, 0x4] - strh r1, [r5, 0x6] - mov r0, r8 - strh r0, [r5, 0x8] - subs r6, 0x8 - adds r4, r6 - ldr r0, =sub_81D857C - str r0, [r4] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D84EC - - thumb_func_start sub_81D857C -sub_81D857C: @ 81D857C - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r5, r0, r1 - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0x4 - bhi _081D8674 - lsls r0, 2 - ldr r1, =_081D85A8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081D85A8: - .4byte _081D85BC - .4byte _081D85DC - .4byte _081D861A - .4byte _081D863A - .4byte _081D8656 -_081D85BC: - ldrh r1, [r5, 0x2] - movs r2, 0x2 - ldrsh r0, [r5, r2] - cmp r0, 0x8 - bne _081D8634 - movs r0, 0x1 - negs r0, r0 - movs r4, 0 - str r4, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - strh r4, [r5, 0x2] - b _081D864E -_081D85DC: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _081D8674 - ldrh r2, [r5, 0x2] - movs r3, 0x2 - ldrsh r0, [r5, r3] - cmp r0, 0xA - bne _081D8614 - strh r1, [r5, 0x2] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - ldr r0, =sub_81D844C - bl SetHBlankCallback - movs r0, 0x3 - bl EnableInterrupts - b _081D8674 - .pool -_081D8614: - adds r0, r2, 0x1 - strh r0, [r5, 0x2] - b _081D8674 -_081D861A: - ldrh r1, [r5, 0x2] - movs r2, 0x2 - ldrsh r0, [r5, r2] - cmp r0, 0x50 - bne _081D8634 - movs r0, 0 - strh r0, [r5, 0x2] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - bl sub_81D86CC - b _081D8674 -_081D8634: - adds r0, r1, 0x1 - strh r0, [r5, 0x2] - b _081D8674 -_081D863A: - ldrh r0, [r5, 0x2] - adds r0, 0x1 - strh r0, [r5, 0x2] - lsls r0, 16 - movs r1, 0xB8 - lsls r1, 17 - cmp r0, r1 - bne _081D8674 - movs r0, 0 - strh r0, [r5, 0x2] -_081D864E: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - b _081D8674 -_081D8656: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81D8684 - str r1, [r0] -_081D8674: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D857C - - thumb_func_start sub_81D8684 -sub_81D8684: @ 81D8684 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081D86B8 - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - bl SetHBlankCallback - bl ResetAllObjectData - bl ResetObjectPaletteAllocator - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81D6840 - str r0, [r1] -_081D86B8: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D8684 - - thumb_func_start sub_81D86CC -sub_81D86CC: @ 81D86CC - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r0, =gUnknown_0862AB14 - movs r1, 0xA0 - movs r2, 0 - movs r3, 0 - bl AddObjectToFront - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r5, r6, 4 - adds r5, r6 - lsls r5, 2 - ldr r4, =gUnknown_0202065E - adds r0, r5, r4 - mov r8, r0 - ldr r0, =gUnknown_0862AB2C - movs r2, 0x30 - negs r2, r2 - movs r1, 0xB8 - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - strh r0, [r1] - adds r3, r4, 0 - subs r3, 0x2E - subs r4, 0x12 - adds r4, r5, r4 - ldr r0, =sub_81D874C - str r0, [r4] - adds r5, r3 - ldrb r0, [r5, 0x5] - movs r2, 0xC - orrs r0, r2 - strb r0, [r5, 0x5] - movs r4, 0 - ldrsh r1, [r1, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x5] - orrs r1, r2 - strb r1, [r0, 0x5] - adds r0, r6, 0 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D86CC - - thumb_func_start sub_81D874C -sub_81D874C: @ 81D874C - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r5, 0 - adds r4, 0x2E - movs r0, 0x4 - ldrsh r1, [r4, r0] - cmp r1, 0 - bne _081D8764 - movs r0, 0xC - strh r0, [r4, 0x6] - movs r0, 0x8 - b _081D87C2 -_081D8764: - movs r0, 0x80 - lsls r0, 1 - cmp r1, r0 - bne _081D8774 - movs r0, 0x9 - strh r0, [r4, 0x6] - movs r0, 0x7 - b _081D87C2 -_081D8774: - movs r0, 0x86 - lsls r0, 1 - cmp r1, r0 - bne _081D8784 - movs r0, 0x8 - strh r0, [r4, 0x6] - movs r0, 0x6 - b _081D87C2 -_081D8784: - movs r0, 0x8C - lsls r0, 1 - cmp r1, r0 - bne _081D8794 - movs r0, 0x7 - strh r0, [r4, 0x6] - movs r0, 0x5 - b _081D87C2 -_081D8794: - movs r0, 0x92 - lsls r0, 1 - cmp r1, r0 - bne _081D87A4 - movs r0, 0x6 - strh r0, [r4, 0x6] - movs r0, 0x4 - b _081D87C2 -_081D87A4: - movs r0, 0x98 - lsls r0, 1 - cmp r1, r0 - bne _081D87B4 - movs r0, 0x5 - strh r0, [r4, 0x6] - movs r0, 0x3 - b _081D87C2 -_081D87B4: - movs r0, 0xA0 - lsls r0, 1 - cmp r1, r0 - bne _081D87C4 - movs r0, 0x4 - strh r0, [r4, 0x6] - movs r0, 0x2 -_081D87C2: - strh r0, [r4, 0x8] -_081D87C4: - movs r1, 0x4 - ldrsh r0, [r4, r1] - movs r2, 0x6 - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, 0 - bne _081D87EE - ldrh r0, [r5, 0x24] - subs r0, 0x1 - strh r0, [r5, 0x24] - ldr r2, =gUnknown_02020630 - movs r0, 0 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x24] - subs r1, 0x1 - strh r1, [r0, 0x24] -_081D87EE: - movs r1, 0x4 - ldrsh r0, [r4, r1] - movs r2, 0x8 - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, 0 - bne _081D8818 - ldrh r0, [r5, 0x26] - adds r0, 0x1 - strh r0, [r5, 0x26] - ldr r2, =gUnknown_02020630 - movs r0, 0 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - adds r1, 0x1 - strh r1, [r0, 0x26] -_081D8818: - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D874C - - thumb_func_start sub_81D8828 -sub_81D8828: @ 81D8828 - push {r4,lr} - bl sub_8121DA0 - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_0862AB44 - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - ldr r4, =gUnknown_0203CF60 - ldr r1, [r4] - adds r1, 0x4 - movs r0, 0 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00000804 - adds r1, r0 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00001004 - adds r1, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00001804 - adds r1, r0 - movs r0, 0x3 - bl SetBgTilemapBuffer - bl sub_8121E10 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x3 - bl schedule_bg_copy_tilemap_to_vram - movs r1, 0xC1 - lsls r1, 6 - movs r0, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D8828 - - thumb_func_start sub_81D88D0 -sub_81D88D0: @ 81D88D0 - push {r4,lr} - sub sp, 0x4 - bl reset_temp_tile_data_buffers - ldr r1, =gUnknown_08DA80BC - movs r4, 0 - str r4, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, =gUnknown_08DA7EAC - str r4, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, =gUnknown_08DA7C30 - str r4, [sp] - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram -_081D8904: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081D8904 - ldr r0, =gUnknown_08DA8D6C - ldr r4, =gUnknown_0203CF60 - ldr r1, [r4] - adds r1, 0x4 - bl LZDecompressWram - ldr r0, =gUnknown_08DA8B40 - ldr r1, [r4] - ldr r2, =0x00000804 - adds r1, r2 - bl LZDecompressWram - ldr r0, =gUnknown_08DA7FB4 - ldr r1, [r4] - ldr r2, =0x00001004 - adds r1, r2 - bl LZDecompressWram - ldr r0, =gUnknown_08DA7D6C - ldr r1, [r4] - ldr r2, =0x00001804 - adds r1, r2 - bl LZDecompressWram - ldr r0, =gUnknown_08DA8E84 - movs r1, 0 - movs r2, 0x80 - bl LoadCompressedPalette - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D88D0 - - thumb_func_start sub_81D8980 -sub_81D8980: @ 81D8980 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r5, =gTasks + 0x8 - adds r6, r4, r5 - bl sub_81D8828 - bl sub_81D88D0 - bl sub_81D68C8 - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - ldr r0, =sub_81D67EC - bl SetVBlankCallback - movs r0, 0 - strh r0, [r6] - strh r0, [r6, 0x2] - ldr r0, =sub_81D8AD8 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x4] - subs r5, 0x8 - adds r4, r5 - ldr r0, =sub_81D89E0 - str r0, [r4] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D8980 - - thumb_func_start sub_81D89E0 -sub_81D89E0: @ 81D89E0 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - bl sub_81D8BB4 - ldrh r1, [r4, 0x6] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _081D8A16 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bgt _081D8A16 - movs r2, 0x2 - ldrsh r0, [r4, r2] - cmp r0, 0x59 - bgt _081D8A16 - movs r0, 0x67 - bl audio_play -_081D8A16: - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] - movs r0, 0 - ldrsh r5, [r4, r0] - cmp r5, 0x1 - beq _081D8A5C - cmp r5, 0x1 - bgt _081D8A34 - cmp r5, 0 - beq _081D8A3E - b _081D8AC6 - .pool -_081D8A34: - cmp r5, 0x2 - beq _081D8A8C - cmp r5, 0x3 - beq _081D8AA8 - b _081D8AC6 -_081D8A3E: - ldrh r1, [r4, 0x2] - movs r2, 0x2 - ldrsh r0, [r4, r2] - cmp r0, 0x8 - bne _081D8AA2 - movs r0, 0x1 - negs r0, r0 - str r5, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - strh r5, [r4, 0x2] - b _081D8A9A -_081D8A5C: - ldrh r1, [r4, 0x2] - movs r2, 0x2 - ldrsh r0, [r4, r2] - cmp r0, 0x7F - bne _081D8AA2 - movs r0, 0 - strh r0, [r4, 0x2] - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - ldr r2, =gTasks - movs r0, 0x4 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, =sub_81D8B2C - b _081D8AC4 - .pool -_081D8A8C: - ldrh r1, [r4, 0x2] - movs r2, 0x2 - ldrsh r0, [r4, r2] - cmp r0, 0xC - bne _081D8AA2 - movs r0, 0 - strh r0, [r4, 0x2] -_081D8A9A: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _081D8AC6 -_081D8AA2: - adds r0, r1, 0x1 - strh r0, [r4, 0x2] - b _081D8AC6 -_081D8AA8: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81D8BEC -_081D8AC4: - str r1, [r0] -_081D8AC6: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D89E0 - - thumb_func_start sub_81D8AD8 -sub_81D8AD8: @ 81D8AD8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r5, r1, r0 - ldrh r1, [r5, 0x1E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _081D8B1C - bl Random - movs r4, 0x7 - adds r1, r4, 0 - ands r1, r0 - subs r1, 0x4 - lsls r1, 8 - movs r0, 0x1 - movs r2, 0 - bl ChangeBgX - bl Random - ands r4, r0 - subs r4, 0x4 - lsls r4, 8 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0 - bl ChangeBgY -_081D8B1C: - ldrh r0, [r5, 0x1E] - adds r0, 0x1 - strh r0, [r5, 0x1E] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D8AD8 - - thumb_func_start sub_81D8B2C -sub_81D8B2C: @ 81D8B2C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r4, r1, r0 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081D8B70 - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - movs r0, 0xA - strh r0, [r4, 0x2] - movs r1, 0x1 - negs r1, r1 - adds r0, r1, 0 - b _081D8BAA - .pool -_081D8B70: - cmp r0, 0x1 - bne _081D8BAC - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r1, 8 - movs r0, 0x1 - movs r2, 0x2 - bl ChangeBgX - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r1, 8 - movs r0, 0x1 - movs r2, 0x1 - bl ChangeBgY - ldrh r0, [r4, 0x4] - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r4, 0x2] - lsls r0, 16 - asrs r0, 16 - movs r1, 0xA - negs r1, r1 - cmp r0, r1 - bne _081D8BAC - movs r1, 0x4 - ldrsh r0, [r4, r1] - negs r0, r0 -_081D8BAA: - strh r0, [r4, 0x4] -_081D8BAC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81D8B2C - - thumb_func_start sub_81D8BB4 -sub_81D8BB4: @ 81D8BB4 - push {r4,lr} - movs r4, 0x80 - lsls r4, 3 - movs r0, 0x2 - adds r1, r4, 0 - movs r2, 0x2 - bl ChangeBgX - movs r0, 0x2 - adds r1, r4, 0 - movs r2, 0x1 - bl ChangeBgY - movs r4, 0x80 - lsls r4, 4 - movs r0, 0 - adds r1, r4, 0 - movs r2, 0x2 - bl ChangeBgX - movs r0, 0 - adds r1, r4, 0 - movs r2, 0x1 - bl ChangeBgY - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81D8BB4 - - thumb_func_start sub_81D8BEC -sub_81D8BEC: @ 81D8BEC - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r5, r1, 3 - ldr r6, =gTasks + 0x8 - adds r4, r5, r6 - bl sub_81D8BB4 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081D8C26 - movs r0, 0 - bl SetVBlankCallback - bl sub_81D6904 - ldrb r0, [r4, 0x4] - bl DestroyTask - adds r0, r6, 0 - subs r0, 0x8 - adds r0, r5, r0 - ldr r1, =sub_81D6840 - str r1, [r0] -_081D8C26: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D8BEC - - thumb_func_start sub_81D8C38 -sub_81D8C38: @ 81D8C38 - push {r4,lr} - bl sub_8121DA0 - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_0862AD08 - movs r0, 0x1 - movs r2, 0x3 - bl InitBgsFromTemplates - ldr r4, =gUnknown_0203CF60 - ldr r1, [r4] - adds r1, 0x4 - movs r0, 0 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00000804 - adds r1, r0 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00001004 - adds r1, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - bl sub_8121E10 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r1, 0xC1 - lsls r1, 6 - movs r0, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D8C38 - - thumb_func_start sub_81D8CC4 -sub_81D8CC4: @ 81D8CC4 - push {r4,lr} - sub sp, 0x4 - bl reset_temp_tile_data_buffers - ldr r1, =gUnknown_08DAAB24 - movs r4, 0 - str r4, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, =gUnknown_08DAA8B4 - str r4, [sp] - movs r0, 0 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram -_081D8CEA: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081D8CEA - ldr r0, =gUnknown_08DAAE54 - ldr r4, =gUnknown_0203CF60 - ldr r1, [r4] - ldr r2, =0x00000804 - adds r1, r2 - bl LZDecompressWram - ldr r0, =gUnknown_08DAAC1C - ldr r1, [r4] - adds r1, 0x4 - bl LZDecompressWram - ldr r0, =gUnknown_08DAAF98 - ldr r1, [r4] - ldr r2, =0x00001004 - adds r1, r2 - bl LZDecompressWram - ldr r0, =gUnknown_08DAAFEC - movs r1, 0 - movs r2, 0x60 - bl LoadCompressedPalette - ldr r0, =gUnknown_0862AC28 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862AC30 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862AC38 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862AC40 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862AC48 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862AC50 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862AC58 - bl LoadCompressedObjectPalette - ldr r0, =gUnknown_0862AC60 - bl LoadCompressedObjectPalette - ldr r0, =gUnknown_0862AC68 - bl LoadCompressedObjectPalette - ldr r0, =gUnknown_0862AC70 - bl LoadCompressedObjectPalette - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D8CC4 - - thumb_func_start sub_81D8DB4 -sub_81D8DB4: @ 81D8DB4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r5, =gTasks + 0x8 - adds r6, r4, r5 - bl sub_81D8C38 - bl sub_81D8CC4 - bl sub_81D68C8 - movs r1, 0x80 - lsls r1, 3 - movs r0, 0 - bl ClearGpuRegBits - ldr r1, =0x00000241 - movs r0, 0x50 - bl SetGpuReg - ldr r1, =0x00000e09 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - ldr r0, =sub_81D67EC - bl SetVBlankCallback - movs r0, 0 - strh r0, [r6] - strh r0, [r6, 0x2] - subs r5, 0x8 - adds r4, r5 - ldr r0, =sub_81D8E80 - str r0, [r4] - ldr r0, =sub_81D8FB0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x4] - movs r0, 0x4 - ldrsh r1, [r6, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - movs r2, 0 - strh r2, [r0, 0x8] - movs r0, 0x4 - ldrsh r1, [r6, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - strh r2, [r0, 0xA] - movs r0, 0x4 - ldrsh r1, [r6, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - strh r2, [r0, 0xC] - movs r0, 0x4 - ldrsh r1, [r6, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - movs r2, 0x1 - strh r2, [r0, 0xE] - movs r0, 0x4 - ldrsh r1, [r6, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - strh r2, [r0, 0x10] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D8DB4 - - thumb_func_start sub_81D8E80 -sub_81D8E80: @ 81D8E80 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r7, r0, 3 - ldr r0, =gTasks + 0x8 - mov r8, r0 - adds r4, r7, r0 - movs r1, 0 - ldrsh r5, [r4, r1] - cmp r5, 0x1 - beq _081D8EDE - cmp r5, 0x1 - bgt _081D8EB0 - cmp r5, 0 - beq _081D8EBA - b _081D8FA0 - .pool -_081D8EB0: - cmp r5, 0x2 - beq _081D8F1E - cmp r5, 0x3 - beq _081D8F84 - b _081D8FA0 -_081D8EBA: - ldrh r1, [r4, 0x2] - movs r2, 0x2 - ldrsh r0, [r4, r2] - cmp r0, 0x8 - bne _081D8F18 - adds r0, r6, 0 - bl sub_81D90A8 - movs r0, 0x1 - negs r0, r0 - str r5, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - strh r5, [r4, 0x2] - b _081D8F30 -_081D8EDE: - ldr r2, =gUnknown_02020630 - movs r0, 0xA - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =sub_81D97E0 - cmp r1, r0 - bne _081D8FA0 - ldrh r1, [r4, 0x2] - movs r2, 0x2 - ldrsh r0, [r4, r2] - cmp r0, 0x40 - bne _081D8F18 - adds r0, r6, 0 - bl sub_81D94D4 - adds r0, r6, 0 - bl sub_81D93D8 - b _081D8F2C - .pool -_081D8F18: - adds r0, r1, 0x1 - strh r0, [r4, 0x2] - b _081D8FA0 -_081D8F1E: - ldrh r2, [r4, 0x2] - movs r0, 0x2 - ldrsh r1, [r4, r0] - movs r0, 0xE0 - lsls r0, 1 - cmp r1, r0 - bne _081D8F38 -_081D8F2C: - movs r0, 0 - strh r0, [r4, 0x2] -_081D8F30: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _081D8FA0 -_081D8F38: - adds r0, r2, 0x1 - strh r0, [r4, 0x2] - movs r1, 0x2 - ldrsh r0, [r4, r1] - movs r1, 0x90 - bl __modsi3 - lsls r0, 16 - asrs r4, r0, 16 - cmp r4, 0 - bne _081D8FA0 - ldr r0, =0x0000fffe - ldr r1, =0x0000ffff - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl sub_80A2C44 - ldr r0, =0xffff0000 - str r4, [sp] - str r4, [sp, 0x4] - movs r1, 0x1 - str r1, [sp, 0x8] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl sub_80A2C44 - b _081D8FA0 - .pool -_081D8F84: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r1, 0x4 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - mov r0, r8 - subs r0, 0x8 - adds r0, r7, r0 - ldr r1, =sub_81D9034 - str r1, [r0] -_081D8FA0: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D8E80 - - thumb_func_start sub_81D8FB0 -sub_81D8FB0: @ 81D8FB0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r4, r1, r0 - ldrh r1, [r4] - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - bne _081D9024 - ldrh r1, [r4, 0x2] - adds r1, 0xE - lsls r1, 8 - movs r2, 0xF8 - lsls r2, 5 - adds r0, r2, 0 - ands r1, r0 - ldrh r0, [r4, 0x4] - adds r0, 0x9 - movs r2, 0xF - ands r0, r2 - orrs r1, r0 - movs r0, 0x52 - bl SetGpuReg - ldrh r1, [r4, 0x2] - ldrh r0, [r4, 0x6] - subs r1, r0 - strh r1, [r4, 0x2] - ldrh r0, [r4, 0x8] - ldrh r2, [r4, 0x4] - adds r0, r2 - strh r0, [r4, 0x4] - lsls r1, 16 - asrs r1, 16 - movs r0, 0x3 - negs r0, r0 - cmp r1, r0 - beq _081D9008 - cmp r1, 0 - bne _081D9010 -_081D9008: - movs r1, 0x6 - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4, 0x6] -_081D9010: - movs r2, 0x4 - ldrsh r0, [r4, r2] - cmp r0, 0x3 - beq _081D901C - cmp r0, 0 - bne _081D9024 -_081D901C: - movs r1, 0x8 - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4, 0x8] -_081D9024: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D8FB0 - - thumb_func_start sub_81D9034 -sub_81D9034: @ 81D9034 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r6, r1, 3 - ldr r7, =gTasks + 0x8 - adds r4, r6, r7 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _081D90A0 - bl sub_80A2F30 - movs r1, 0x2 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081D9078 - movs r0, 0 - bl SetVBlankCallback - bl sub_81D6904 - bl ResetAllObjectData - bl ResetObjectPaletteAllocator - ldrb r0, [r4, 0x4] - bl DestroyTask -_081D9078: - ldrh r1, [r4, 0x2] - movs r2, 0x2 - ldrsh r0, [r4, r2] - cmp r0, 0x20 - bne _081D909C - strh r5, [r4, 0x2] - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, =sub_81D6840 - str r1, [r0] - b _081D90A0 - .pool -_081D909C: - adds r0, r1, 0x1 - strh r0, [r4, 0x2] -_081D90A0: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D9034 - - thumb_func_start sub_81D90A8 -sub_81D90A8: @ 81D90A8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - ldr r0, =gUnknown_0862AC78 - movs r1, 0x40 - movs r2, 0x78 - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x6] - movs r0, 0x6 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_0202065E - mov r10, r1 - adds r7, r0, r1 - ldr r0, =gUnknown_0862AC90 - movs r1, 0x10 - movs r2, 0x82 - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7] - movs r2, 0x2E - negs r2, r2 - add r2, r10 - mov r8, r2 - movs r1, 0x6 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r8 - ldrb r2, [r1, 0x5] - movs r6, 0xD - negs r6, r6 - adds r0, r6, 0 - ands r0, r2 - movs r2, 0x4 - mov r9, r2 - mov r2, r9 - orrs r0, r2 - strb r0, [r1, 0x5] - movs r1, 0 - ldrsh r0, [r7, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r8 - ldrb r2, [r1, 0x5] - adds r0, r6, 0 - ands r0, r2 - mov r2, r9 - orrs r0, r2 - strb r0, [r1, 0x5] - ldr r5, =gUnknown_0862ACA8 - adds r0, r5, 0 - movs r1, 0xA0 - movs r2, 0x80 - movs r3, 0x1 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x8] - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - mov r1, r10 - adds r7, r0, r1 - adds r0, r5, 0 - movs r1, 0xC0 - movs r2, 0x80 - movs r3, 0x1 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7] - adds r0, r5, 0 - movs r1, 0xE0 - movs r2, 0x80 - movs r3, 0x1 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7, 0x2] - movs r2, 0x8 - ldrsh r0, [r4, r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r8 - ldrb r2, [r1, 0x5] - adds r0, r6, 0 - ands r0, r2 - mov r2, r9 - orrs r0, r2 - strb r0, [r1, 0x5] - movs r1, 0 - ldrsh r0, [r7, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r8 - ldrb r2, [r1, 0x5] - adds r0, r6, 0 - ands r0, r2 - mov r2, r9 - orrs r0, r2 - strb r0, [r1, 0x5] - movs r1, 0x2 - ldrsh r0, [r7, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r8 - ldrb r2, [r1, 0x5] - adds r0, r6, 0 - ands r0, r2 - mov r2, r9 - orrs r0, r2 - strb r0, [r1, 0x5] - movs r0, 0 - ldrsh r1, [r7, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - movs r1, 0x1 - bl StartObjectImageAnim - movs r2, 0x2 - ldrsh r1, [r7, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - movs r1, 0x2 - bl StartObjectImageAnim - ldr r0, =gUnknown_0862ACC0 - movs r2, 0x41 - negs r2, r2 - movs r1, 0x78 - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] - movs r0, 0xA - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - mov r1, r10 - adds r7, r0, r1 - ldr r0, =gUnknown_0862ACD8 - movs r2, 0x71 - negs r2, r2 - movs r1, 0x78 - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7] - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r8 - ldrb r2, [r1, 0x5] - adds r0, r6, 0 - ands r0, r2 - mov r2, r9 - orrs r0, r2 - strb r0, [r1, 0x5] - movs r0, 0 - ldrsh r1, [r7, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - ldrb r1, [r0, 0x5] - ands r6, r1 - orrs r6, r2 - strb r6, [r0, 0x5] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D90A8 - - thumb_func_start sub_81D9274 -sub_81D9274: @ 81D9274 - push {r4-r6,lr} - mov r6, r8 - push {r6} - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - ldr r0, =gTasks + 0x8 - adds r2, r0 - ldr r3, =gUnknown_02020630 - movs r0, 0x6 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - movs r1, 0x1C - adds r1, r3 - mov r8, r1 - add r0, r8 - ldr r6, =pokemon_alive_on_battle_side - str r6, [r0] - movs r0, 0x6 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r4, 0 - strh r4, [r0, 0x36] - movs r0, 0x6 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x38] - movs r0, 0x6 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r5, 0x4 - strh r5, [r0, 0x3A] - movs r0, 0x6 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x3C] - movs r0, 0x8 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - str r6, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x36] - movs r0, 0x8 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x38] - movs r0, 0x8 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r5, [r0, 0x3A] - movs r0, 0x8 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x1 - strh r1, [r0, 0x3C] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D9274 - - thumb_func_start pokemon_alive_on_battle_side -pokemon_alive_on_battle_side: @ 81D9338 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x36] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _081D93CC - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081D9370 - ldrh r0, [r4, 0x20] - ldrh r3, [r4, 0x3A] - subs r0, r3 - strh r0, [r4, 0x20] - ldr r2, =gUnknown_02020630 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x20] - subs r1, r3 - b _081D939E - .pool -_081D9370: - ldrh r2, [r4, 0x3A] - ldrh r1, [r4, 0x20] - adds r0, r2, r1 - strh r0, [r4, 0x20] - ldr r3, =gUnknown_02020630 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x20] - adds r2, r1 - strh r2, [r0, 0x20] - movs r2, 0x30 - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r4, 0x3A] - ldrh r2, [r0, 0x20] - adds r1, r2 -_081D939E: - strh r1, [r0, 0x20] - ldrh r1, [r4, 0x38] - adds r1, 0x1 - movs r2, 0 - strh r1, [r4, 0x38] - ldrh r0, [r4, 0x3A] - subs r0, r1 - strh r0, [r4, 0x3A] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x3 - bne _081D93CC - strh r2, [r4, 0x36] - strh r2, [r4, 0x38] - strh r2, [r4, 0x3A] - ldr r0, =DummyObjectCallback - str r0, [r4, 0x1C] - b _081D93D2 - .pool -_081D93CC: - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] -_081D93D2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemon_alive_on_battle_side - - thumb_func_start sub_81D93D8 -sub_81D93D8: @ 81D93D8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - ldr r0, =gTasks + 0x8 - adds r2, r0 - ldr r3, =gUnknown_02020630 - movs r0, 0x6 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r3, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_81D9420 - str r1, [r0] - movs r0, 0x6 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x1 - bl StartObjectImageAnim - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D93D8 - - thumb_func_start sub_81D9420 -sub_81D9420: @ 81D9420 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0x1 - beq _081D9488 - cmp r0, 0x1 - bgt _081D9436 - cmp r0, 0 - beq _081D9440 - b _081D94C4 -_081D9436: - cmp r0, 0x2 - beq _081D9440 - cmp r0, 0x3 - beq _081D9488 - b _081D94C4 -_081D9440: - adds r0, r4, 0 - adds r0, 0x2C - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 26 - movs r1, 0xC - bl __umodsi3 - lsls r0, 24 - ldr r2, =gUnknown_02020630 - cmp r0, 0 - bne _081D9470 - ldrh r0, [r4, 0x20] - subs r0, 0x2 - strh r0, [r4, 0x20] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x20] - subs r1, 0x2 - strh r1, [r0, 0x20] -_081D9470: - movs r1, 0x2E - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x26] - b _081D94C4 - .pool -_081D9488: - ldr r2, =gUnknown_02020630 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, =0x0000fffe - strh r1, [r0, 0x26] - adds r0, r4, 0 - adds r0, 0x2C - ldrb r1, [r0] - lsls r1, 26 - lsrs r1, 26 - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - bne _081D94C4 - ldrh r0, [r4, 0x22] - adds r0, 0x1 - strh r0, [r4, 0x22] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - adds r1, 0x1 - strh r1, [r0, 0x22] -_081D94C4: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D9420 - - thumb_func_start sub_81D94D4 -sub_81D94D4: @ 81D94D4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r1, r0 - movs r0, 0x8 - ldrsh r1, [r1, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r2, =gUnknown_0202065E - adds r4, r0, r2 - subs r2, 0x12 - adds r0, r2 - ldr r3, =sub_81D9528 - str r3, [r0] - movs r0, 0 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - str r3, [r0] - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - str r3, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D94D4 - - thumb_func_start sub_81D9528 -sub_81D9528: @ 81D9528 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - ldrh r1, [r7, 0x36] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _081D9550 - ldrh r1, [r7, 0x24] - movs r2, 0x24 - ldrsh r0, [r7, r2] - cmp r0, 0x1 - bne _081D954C - ldr r0, =0x0000ffff - b _081D954E - .pool -_081D954C: - movs r0, 0x1 -_081D954E: - strh r0, [r7, 0x24] -_081D9550: - movs r1, 0x38 - ldrsh r0, [r7, r1] - cmp r0, 0x80 - bne _081D95CE - ldr r2, =gUnknown_0862ACF0 - mov r8, r2 - mov r0, r8 - movs r1, 0x98 - movs r2, 0x84 - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7, 0x3C] - ldr r5, =gUnknown_02020630 - movs r1, 0x3C - ldrsh r0, [r7, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r2, [r1, 0x5] - movs r4, 0xD - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - movs r6, 0x4 - orrs r0, r6 - strb r0, [r1, 0x5] - mov r0, r8 - movs r1, 0xE0 - movs r2, 0x84 - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7, 0x3C] - movs r2, 0x3C - ldrsh r1, [r7, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0, 0x5] - ands r4, r1 - orrs r4, r6 - strb r4, [r0, 0x5] - movs r0, 0x3C - ldrsh r1, [r7, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3F - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - ldrh r0, [r7, 0x38] - adds r0, 0x1 - strh r0, [r7, 0x38] -_081D95CE: - ldrh r1, [r7, 0x38] - movs r2, 0x38 - ldrsh r0, [r7, r2] - cmp r0, 0x7F - ble _081D95F8 - movs r1, 0x26 - ldrsh r0, [r7, r1] - cmp r0, 0x20 - beq _081D95FC - ldrh r0, [r7, 0x3A] - adds r0, 0x1 - strh r0, [r7, 0x3A] - lsls r0, 16 - asrs r0, 20 - strh r0, [r7, 0x26] - b _081D95FC - .pool -_081D95F8: - adds r0, r1, 0x1 - strh r0, [r7, 0x38] -_081D95FC: - ldrh r0, [r7, 0x36] - movs r1, 0x3F - ands r0, r1 - cmp r0, 0 - bne _081D960C - movs r0, 0xA5 - bl audio_play -_081D960C: - ldrh r0, [r7, 0x36] - adds r0, 0x1 - strh r0, [r7, 0x36] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D9528 - - thumb_func_start sub_81D961C -sub_81D961C: @ 81D961C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x3C - ldrsh r1, [r4, r0] - cmp r1, 0x40 - bgt _081D968C - ldrh r0, [r4, 0x26] - adds r0, 0x2 - strh r0, [r4, 0x26] - ldr r5, =gUnknown_02020630 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r0, 0x26] - adds r1, 0x2 - strh r1, [r0, 0x26] - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0x40 - beq _081D964C - b _081D979E -_081D964C: - movs r3, 0x30 - negs r3, r3 - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - bl sub_81D9868 - movs r2, 0x5 - strh r2, [r4, 0x36] - ldr r0, =0x0000ffff - strh r0, [r4, 0x38] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x3 - strh r1, [r0, 0x36] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x38] - b _081D979E - .pool -_081D968C: - cmp r1, 0x6F - bgt _081D96BE - adds r0, r4, 0 - bl sub_81D97E0 - movs r1, 0x36 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081D96A4 - movs r0, 0x68 - bl audio_play -_081D96A4: - movs r0, 0x36 - ldrsh r1, [r4, r0] - movs r0, 0x3 - negs r0, r0 - cmp r1, r0 - bne _081D979E - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0x30 - movs r3, 0x10 - bl sub_81D9868 - b _081D979E -_081D96BE: - cmp r1, 0x70 - bne _081D96EC - ldr r2, =gUnknown_02020630 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x7 - strh r1, [r0, 0x36] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - strh r1, [r0, 0x38] - b _081D96F2 - .pool -_081D96EC: - ldr r0, =0x00000147 - cmp r1, r0 - bgt _081D9700 -_081D96F2: - adds r0, r4, 0 - bl sub_81D97E0 - b _081D979E - .pool -_081D9700: - movs r0, 0xA4 - lsls r0, 1 - cmp r1, r0 - bne _081D974C - adds r0, r4, 0 - bl sub_81D97E0 - adds r0, r4, 0 - movs r1, 0x3 - movs r2, 0x30 - movs r3, 0x10 - bl sub_81D9868 - movs r3, 0x1 - strh r3, [r4, 0x24] - ldr r2, =gUnknown_02020630 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x24] - movs r0, 0xCB - lsls r0, 1 - movs r1, 0 - bl cry_related - ldr r0, =sub_81D98B4 - movs r1, 0 - bl CreateTask - b _081D979E - .pool -_081D974C: - movs r0, 0xB0 - lsls r0, 1 - cmp r1, r0 - beq _081D9790 - adds r0, 0x18 - cmp r1, r0 - bne _081D979E - movs r3, 0 - strh r3, [r4, 0x24] - ldr r2, =gUnknown_02020630 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x24] - adds r0, r4, 0 - bl sub_81D97E0 - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0x30 - movs r3, 0x10 - bl sub_81D9868 - ldr r0, =sub_81D97E0 - str r0, [r4, 0x1C] - b _081D97D2 - .pool -_081D9790: - ldr r0, =sub_81D8E80 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl sub_81D9274 -_081D979E: - ldrh r2, [r4, 0x3C] - movs r0, 0x3C - ldrsh r1, [r4, r0] - movs r0, 0xA4 - lsls r0, 1 - cmp r1, r0 - ble _081D97CC - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - bne _081D97CC - movs r1, 0x24 - ldrsh r2, [r4, r1] - negs r2, r2 - strh r2, [r4, 0x24] - ldr r3, =gUnknown_02020630 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x24] -_081D97CC: - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] -_081D97D2: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D961C - - thumb_func_start sub_81D97E0 -sub_81D97E0: @ 81D97E0 - push {r4-r7,lr} - adds r3, r0, 0 - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, =gUnknown_02020630 - adds r4, r0, r5 - ldrh r1, [r3, 0x3A] - ldrh r0, [r4, 0x36] - ands r0, r1 - cmp r0, 0 - bne _081D985C - ldrh r2, [r3, 0x36] - ldrh r1, [r3, 0x26] - adds r0, r2, r1 - strh r0, [r3, 0x26] - movs r7, 0x2E - ldrsh r1, [r3, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r0, 0x26] - adds r2, r1 - strh r2, [r0, 0x26] - ldrh r0, [r3, 0x38] - ldrh r2, [r3, 0x36] - adds r0, r2 - strh r0, [r3, 0x36] - lsls r0, 16 - asrs r5, r0, 16 - ldrh r6, [r4, 0x38] - movs r7, 0x38 - ldrsh r2, [r4, r7] - cmp r5, r2 - bge _081D9836 - movs r0, 0x36 - ldrsh r1, [r3, r0] - adds r0, r2, 0 - cmn r1, r0 - bgt _081D985C -_081D9836: - cmp r5, r2 - ble _081D9844 - strh r6, [r3, 0x36] - b _081D9854 - .pool -_081D9844: - movs r0, 0x36 - ldrsh r1, [r3, r0] - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmn r1, r0 - bge _081D9854 - negs r0, r6 - strh r0, [r3, 0x36] -_081D9854: - movs r7, 0x38 - ldrsh r0, [r3, r7] - negs r0, r0 - strh r0, [r3, 0x38] -_081D985C: - ldrh r0, [r3, 0x3A] - adds r0, 0x1 - strh r0, [r3, 0x3A] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D97E0 - - thumb_func_start sub_81D9868 -sub_81D9868: @ 81D9868 - push {r4,r5,lr} - adds r5, r1, 0 - lsls r5, 24 - lsrs r5, 24 - movs r4, 0x2E - ldrsh r1, [r0, r4] - lsls r4, r1, 4 - adds r4, r1 - lsls r4, 2 - ldr r1, =gUnknown_02020630 - adds r4, r1 - lsls r2, 16 - asrs r2, 16 - ldrh r1, [r0, 0x20] - adds r2, r1 - strh r2, [r4, 0x20] - lsls r3, 16 - asrs r3, 16 - ldrh r1, [r0, 0x22] - adds r3, r1 - strh r3, [r4, 0x22] - ldrh r1, [r0, 0x24] - strh r1, [r4, 0x24] - ldrh r1, [r0, 0x26] - strh r1, [r4, 0x26] - adds r1, r5, 0 - bl StartObjectImageAnim - adds r0, r4, 0 - adds r1, r5, 0 - bl StartObjectImageAnim - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D9868 - - thumb_func_start sub_81D98B4 -sub_81D98B4: @ 81D98B4 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - movs r0, 0 - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _081D990C - cmp r1, 0x1 - bgt _081D98DC - cmp r1, 0 - beq _081D98E2 - b _081D99B4 - .pool -_081D98DC: - cmp r1, 0x2 - beq _081D99A4 - b _081D99B4 -_081D98E2: - movs r2, 0x80 - lsls r2, 7 - movs r0, 0x40 - str r0, [sp] - adds r0, 0xC0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r1, [sp, 0xC] - movs r0, 0x2 - adds r1, r2, 0 - movs r3, 0x78 - bl SetBgAffine - movs r1, 0x80 - lsls r1, 3 - movs r0, 0 - bl SetGpuRegBits - movs r0, 0x10 - strh r0, [r4, 0x8] - b _081D9922 -_081D990C: - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x8 - bne _081D991A - movs r0, 0x12 - bl audio_play -_081D991A: - movs r3, 0x4 - ldrsh r0, [r4, r3] - cmp r0, 0x2 - bne _081D992A -_081D9922: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _081D99B4 -_081D992A: - ldrh r5, [r4, 0x8] - ldrh r1, [r4, 0x2] - adds r0, r5, r1 - strh r0, [r4, 0x2] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - movs r3, 0x6 - ldrsh r0, [r4, r3] - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - bne _081D9954 - lsls r0, r5, 16 - asrs r0, 16 - cmp r0, 0x4 - beq _081D9954 - subs r0, r5, 0x2 - strh r0, [r4, 0x8] -_081D9954: - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] - movs r2, 0x80 - lsls r2, 7 - movs r0, 0x40 - str r0, [sp] - ldrh r0, [r4, 0x2] - movs r3, 0x80 - lsls r3, 1 - adds r1, r3, 0 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - str r0, [sp, 0x4] - ldrh r0, [r4, 0x2] - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - str r1, [sp, 0x8] - movs r5, 0 - str r5, [sp, 0xC] - movs r0, 0x2 - adds r1, r2, 0 - movs r3, 0x78 - bl SetBgAffine - movs r1, 0x2 - ldrsh r0, [r4, r1] - cmp r0, 0xFF - ble _081D99B4 - strh r5, [r4, 0x2] - strh r5, [r4, 0x6] - strh r5, [r4, 0xA] - movs r0, 0x10 - strh r0, [r4, 0x8] - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] - b _081D99B4 -_081D99A4: - movs r1, 0x80 - lsls r1, 3 - movs r0, 0 - bl ClearGpuRegBits - adds r0, r5, 0 - bl DestroyTask -_081D99B4: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81D98B4 - - thumb_func_start sub_81D99BC -sub_81D99BC: @ 81D99BC - push {r4,lr} - bl sub_80D2578 - cmp r0, 0 - bne _081D99DC - ldr r4, =gStringVar1 - bl sub_80D2548 - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - movs r0, 0x1 - b _081D99DE - .pool -_081D99DC: - movs r0, 0 -_081D99DE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81D99BC - - thumb_func_start walda_maybe -walda_maybe: @ 81D99E4 - push {r4,lr} - sub sp, 0x8 - ldr r4, =gStringVar2 - bl sub_80D2548 - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - movs r0, 0 - str r0, [sp] - ldr r0, =sub_81D9A1C - str r0, [sp, 0x4] - movs r0, 0x4 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl do_choose_name_or_words_screen - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end walda_maybe - - thumb_func_start sub_81D9A1C -sub_81D9A1C: @ 81D9A1C - push {r4,r5,lr} - ldr r4, =gUnknown_020375E0 - ldr r5, =gStringVar2 - adds r0, r5, 0 - bl sub_81D9A98 - strh r0, [r4] - ldrh r0, [r4] - cmp r0, 0x1 - beq _081D9A68 - cmp r0, 0x1 - bgt _081D9A44 - cmp r0, 0 - beq _081D9A62 - b _081D9A68 - .pool -_081D9A44: - cmp r0, 0x2 - bne _081D9A68 - bl sub_80D2578 - cmp r0, 0 - beq _081D9A5C - ldr r0, =gUnknown_085EE49A - bl sub_80D255C - b _081D9A68 - .pool -_081D9A5C: - movs r0, 0x1 - strh r0, [r4] - b _081D9A68 -_081D9A62: - adds r0, r5, 0 - bl sub_80D255C -_081D9A68: - ldr r4, =gStringVar1 - bl sub_80D2548 - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldr r1, =gUnknown_03005DAC - ldr r0, =sub_80AF168 - str r0, [r1] - ldr r0, =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D9A1C - - thumb_func_start sub_81D9A98 -sub_81D9A98: @ 81D9A98 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4] - cmp r0, 0xFF - bne _081D9AA6 - movs r0, 0x2 - b _081D9ABC -_081D9AA6: - bl sub_80D2548 - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCompare - cmp r0, 0 - beq _081D9ABA - movs r0, 0 - b _081D9ABC -_081D9ABA: - movs r0, 0x1 -_081D9ABC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81D9A98 - - thumb_func_start sub_81D9AC4 -sub_81D9AC4: @ 81D9AC4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xA - bl sub_80842DC - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, =gUnknown_020375F0 - mov r8, r0 - bl sub_80D2548 - mov r7, sp - adds r7, 0xA - add r6, sp, 0xC - mov r5, sp - adds r5, 0xD - str r4, [sp] - str r0, [sp, 0x4] - add r0, sp, 0x8 - adds r1, r7, 0 - adds r2, r6, 0 - adds r3, r5, 0 - bl sub_81D9B68 - mov r1, r8 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - beq _081D9B1E - ldrb r0, [r5] - bl sub_80D24BC - ldrb r0, [r6] - bl sub_80D24F0 - add r0, sp, 0x8 - ldrh r0, [r0] - ldrh r1, [r7] - bl sub_80D2524 -_081D9B1E: - mov r1, r8 - ldrh r0, [r1] - bl sub_80D2480 - mov r1, r8 - ldrb r0, [r1] - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D9AC4 - - thumb_func_start sub_81D9B40 -sub_81D9B40: @ 81D9B40 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r3, =gUnknown_0862AD14 -_081D9B4A: - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _081D9B5C - lsls r0, r1, 24 - lsrs r0, 24 - b _081D9B64 - .pool -_081D9B5C: - adds r1, 0x1 - cmp r1, 0x1F - bls _081D9B4A - movs r0, 0x20 -_081D9B64: - pop {r1} - bx r1 - thumb_func_end sub_81D9B40 - - thumb_func_start sub_81D9B68 -sub_81D9B68: @ 81D9B68 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - mov r10, r0 - str r1, [sp, 0x20] - str r2, [sp, 0x24] - str r3, [sp, 0x28] - ldr r0, [sp, 0x4C] - ldr r5, [sp, 0x50] - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - adds r0, r5, 0 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xF - bne _081D9C7E - movs r4, 0 - add r7, sp, 0x10 -_081D9B98: - adds r0, r5, r4 - ldrb r0, [r0] - bl sub_81D9B40 - adds r1, r7, r4 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x20 - beq _081D9C7E - adds r4, 0x1 - cmp r4, 0xE - ble _081D9B98 - movs r6, 0x3 - movs r5, 0 - movs r0, 0x5 - mov r8, r0 - movs r4, 0xD -_081D9BBC: - mov r1, r8 - str r1, [sp] - add r0, sp, 0x4 - adds r1, r7, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl sub_81D9D5C - adds r6, 0x8 - adds r5, 0x5 - subs r4, 0x1 - cmp r4, 0 - bge _081D9BBC - movs r0, 0x2 - str r0, [sp] - add r0, sp, 0x4 - adds r1, r7, 0 - movs r2, 0x46 - movs r3, 0x73 - bl sub_81D9D5C - add r0, sp, 0x4 - movs r1, 0 - movs r2, 0x3 - bl sub_81D9DAC - adds r4, r0, 0 - adds r0, r7, 0 - movs r1, 0x75 - movs r2, 0x3 - bl sub_81D9DAC - cmp r4, r0 - bne _081D9C7E - add r0, sp, 0x4 - movs r1, 0x9 - movs r2, 0x15 - bl sub_81D9C90 - add r0, sp, 0x4 - ldrb r0, [r0, 0x8] - movs r2, 0xF - ands r2, r0 - add r0, sp, 0x4 - movs r1, 0x8 - bl sub_81D9C90 - add r0, sp, 0x4 - ldrb r2, [r0, 0x8] - lsrs r2, 4 - movs r1, 0x8 - bl sub_81D9CDC - add r0, sp, 0x4 - ldrb r2, [r0, 0x6] - adds r1, r0, 0 - ldrb r0, [r0] - ldrb r1, [r1, 0x2] - eors r0, r1 - add r1, sp, 0x4 - ldrb r4, [r1, 0x4] - eors r0, r4 - mov r3, r9 - lsrs r1, r3, 8 - eors r0, r1 - cmp r2, r0 - bne _081D9C7E - add r0, sp, 0x4 - ldrb r3, [r0, 0x7] - adds r2, r0, 0 - ldrb r1, [r0, 0x1] - ldrb r0, [r2, 0x3] - eors r1, r0 - adds r0, r2, 0 - ldrb r2, [r0, 0x5] - eors r1, r2 - movs r0, 0xFF - mov r5, r9 - ands r0, r5 - eors r1, r0 - cmp r3, r1 - bne _081D9C7E - add r0, sp, 0x4 - ldrh r0, [r0] - mov r1, r10 - strh r0, [r1] - mov r0, sp - adds r0, 0x6 - ldrh r0, [r0] - ldr r3, [sp, 0x20] - strh r0, [r3] - ldr r5, [sp, 0x24] - strb r4, [r5] - ldr r0, [sp, 0x28] - strb r2, [r0] - movs r0, 0x1 - b _081D9C80 -_081D9C7E: - movs r0, 0 -_081D9C80: - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81D9B68 - - thumb_func_start sub_81D9C90 -sub_81D9C90: @ 81D9C90 - push {r4-r7,lr} - adds r7, r0, 0 - mov r12, r1 - subs r3, r2, 0x1 - cmp r2, 0 - beq _081D9CD6 -_081D9C9C: - ldrb r1, [r7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 31 - mov r2, r12 - subs r2, 0x1 - subs r5, r3, 0x1 - cmp r2, 0 - blt _081D9CCC - movs r6, 0x80 - adds r3, r2, r7 -_081D9CB4: - ldrb r1, [r3] - adds r0, r6, 0 - ands r0, r1 - lsls r0, 24 - lsls r1, 1 - orrs r4, r1 - strb r4, [r3] - lsrs r4, r0, 31 - subs r3, 0x1 - subs r2, 0x1 - cmp r2, 0 - bge _081D9CB4 -_081D9CCC: - adds r3, r5, 0 - movs r0, 0x1 - negs r0, r0 - cmp r3, r0 - bne _081D9C9C -_081D9CD6: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D9C90 - - thumb_func_start sub_81D9CDC -sub_81D9CDC: @ 81D9CDC - push {r4-r6,lr} - adds r6, r0, 0 - adds r5, r1, 0 - lsls r2, 24 - lsrs r3, r2, 24 - lsls r0, r3, 4 - orrs r3, r0 - lsls r0, r3, 24 - lsrs r3, r0, 24 - movs r4, 0 - cmp r4, r5 - bcs _081D9D04 -_081D9CF4: - adds r2, r6, r4 - ldrb r1, [r2] - adds r0, r3, 0 - eors r0, r1 - strb r0, [r2] - adds r4, 0x1 - cmp r4, r5 - bcc _081D9CF4 -_081D9D04: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81D9CDC - - thumb_func_start sub_81D9D0C -sub_81D9D0C: @ 81D9D0C - push {lr} - lsrs r3, r1, 3 - movs r2, 0x7 - ands r2, r1 - movs r1, 0x80 - asrs r1, r2 - adds r0, r3 - ldrb r0, [r0] - ands r0, r1 - cmp r0, 0 - beq _081D9D24 - movs r0, 0x1 -_081D9D24: - pop {r1} - bx r1 - thumb_func_end sub_81D9D0C - - thumb_func_start sub_81D9D28 -sub_81D9D28: @ 81D9D28 - lsrs r3, r1, 3 - movs r2, 0x7 - ands r2, r1 - movs r1, 0x80 - asrs r1, r2 - lsls r1, 24 - lsrs r1, 24 - adds r0, r3 - ldrb r2, [r0] - orrs r1, r2 - strb r1, [r0] - bx lr - thumb_func_end sub_81D9D28 - - thumb_func_start sub_81D9D40 -sub_81D9D40: @ 81D9D40 - lsrs r3, r1, 3 - movs r2, 0x7 - ands r2, r1 - movs r1, 0x80 - asrs r1, r2 - mvns r1, r1 - lsls r1, 24 - lsrs r1, 24 - adds r0, r3 - ldrb r2, [r0] - ands r1, r2 - strb r1, [r0] - bx lr - thumb_func_end sub_81D9D40 - - thumb_func_start sub_81D9D5C -sub_81D9D5C: @ 81D9D5C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r6, r0, 0 - mov r9, r1 - adds r1, r2, 0 - mov r8, r3 - ldr r7, [sp, 0x1C] - movs r5, 0 - cmp r5, r7 - bcs _081D9DA0 - adds r4, r1, 0 -_081D9D76: - mov r0, r8 - adds r1, r0, r5 - mov r0, r9 - bl sub_81D9D0C - lsls r0, 24 - cmp r0, 0 - beq _081D9D90 - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_81D9D28 - b _081D9D98 -_081D9D90: - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_81D9D40 -_081D9D98: - adds r4, 0x1 - adds r5, 0x1 - cmp r5, r7 - bcc _081D9D76 -_081D9DA0: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D9D5C - - thumb_func_start sub_81D9DAC -sub_81D9DAC: @ 81D9DAC - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r7, r1, 0 - adds r6, r2, 0 - movs r4, 0 - movs r5, 0 - cmp r4, r6 - bcs _081D9DD6 -_081D9DC0: - lsls r4, 1 - adds r1, r7, r5 - mov r0, r8 - bl sub_81D9D0C - lsls r0, 24 - lsrs r0, 24 - orrs r4, r0 - adds r5, 0x1 - cmp r5, r6 - bcc _081D9DC0 -_081D9DD6: - adds r0, r4, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81D9DAC - - thumb_func_start sub_81D9DE4 -sub_81D9DE4: @ 81D9DE4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1A - ldrsh r0, [r0, r1] - cmp r0, 0x4 - bhi _081D9EA4 - lsls r0, 2 - ldr r1, =_081D9E10 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081D9E10: - .4byte _081D9E24 - .4byte _081D9E44 - .4byte _081D9E64 - .4byte _081D9E84 - .4byte _081D9EA4 -_081D9E24: - ldr r4, =gUnknown_02039F31 - ldr r0, =gUnknown_02039F24 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x32 - b _081D9EB4 - .pool -_081D9E44: - ldr r4, =gUnknown_02039F31 - ldr r0, =gUnknown_02039F24 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x33 - b _081D9EB4 - .pool -_081D9E64: - ldr r4, =gUnknown_02039F31 - ldr r0, =gUnknown_02039F24 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x34 - b _081D9EB4 - .pool -_081D9E84: - ldr r4, =gUnknown_02039F31 - ldr r0, =gUnknown_02039F24 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x35 - b _081D9EB4 - .pool -_081D9EA4: - ldr r4, =gUnknown_02039F31 - ldr r0, =gUnknown_02039F24 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x36 -_081D9EB4: - bl GetMonData - strb r0, [r4] - ldr r5, =gUnknown_02039E00 - ldr r4, =gUnknown_02039F25 - ldrb r0, [r4] - lsls r0, 6 - adds r0, r5 - ldr r1, =gUnknown_02039F31 - ldrb r1, [r1] - adds r0, 0x2C - strb r1, [r0] - ldr r0, =0x00000864 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - negs r0, r0 - lsrs r0, 31 - ldrb r1, [r4] - lsls r1, 6 - adds r1, r5 - adds r1, 0x2D - strb r0, [r1] - ldr r1, =sub_81DA160 - ldr r2, =sub_81D9F14 - adds r0, r6, 0 - bl SetTaskFuncWithFollowupFunc - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D9DE4 - - thumb_func_start sub_81D9F14 -sub_81D9F14: @ 81D9F14 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =sub_81DA244 - ldr r2, =sub_81D9F30 - bl SetTaskFuncWithFollowupFunc - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D9F14 - - thumb_func_start sub_81D9F30 -sub_81D9F30: @ 81D9F30 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =sub_81DA2E8 - ldr r2, =sub_81D9F4C - bl SetTaskFuncWithFollowupFunc - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D9F30 - - thumb_func_start sub_81D9F4C -sub_81D9F4C: @ 81D9F4C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =sub_81DA3B8 - ldr r2, =sub_81D9F68 - bl SetTaskFuncWithFollowupFunc - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D9F4C - - thumb_func_start sub_81D9F68 -sub_81D9F68: @ 81D9F68 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - movs r3, 0 - ldr r5, =gUnknown_02039F30 - mov r8, r5 - ldr r0, =gUnknown_020375E0 - mov r12, r0 - add r1, sp, 0x4 - mov r9, r1 - ldrb r4, [r5] - cmp r3, r4 - bcs _081D9FB2 - lsls r0, r6, 2 - adds r0, r6 - lsls r4, r0, 3 - ldr r7, =gTasks + 0x8 -_081D9F98: - mov r0, sp - adds r2, r0, r3 - adds r1, r3, 0x1 - lsls r0, r1, 1 - adds r0, r4 - adds r0, r7 - ldrh r0, [r0] - strb r0, [r2] - lsls r1, 24 - lsrs r3, r1, 24 - ldrb r1, [r5] - cmp r3, r1 - bcc _081D9F98 -_081D9FB2: - movs r3, 0 - mov r4, r8 - ldrb r0, [r4] - cmp r3, r0 - bcs _081D9FD6 - adds r4, r0, 0 - mov r2, sp -_081D9FC0: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r4 - bcs _081D9FD6 - mov r7, sp - adds r1, r7, r3 - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - beq _081D9FC0 -_081D9FD6: - mov r0, r8 - ldrb r0, [r0] - cmp r3, r0 - bne _081D9FF4 - movs r0, 0 - mov r1, r12 - strh r0, [r1] - b _081D9FFA - .pool -_081D9FF4: - movs r0, 0x1 - mov r4, r12 - strh r0, [r4] -_081D9FFA: - movs r3, 0 - mov r7, r8 - mov r0, r8 - ldrb r0, [r0] - cmp r3, r0 - bcs _081DA02A - mov r4, r9 - lsls r0, r6, 2 - adds r0, r6 - lsls r2, r0, 3 - ldr r5, =gTasks + 0x8 -_081DA010: - adds r1, r4, r3 - adds r0, r3, 0x5 - lsls r0, 1 - adds r0, r2 - adds r0, r5 - ldrh r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r1, [r7] - cmp r3, r1 - bcc _081DA010 -_081DA02A: - mov r4, r8 - ldrb r0, [r4] - cmp r0, 0x4 - beq _081DA0B8 - bl link_get_multiplayer_id - lsls r0, 24 - cmp r0, 0 - bne _081DA0B8 - ldr r0, =gUnknown_02039E00 - adds r1, r0, 0 - adds r1, 0x2C - ldrb r2, [r1] - movs r3, 0x1 - ldrb r1, [r4] - adds r5, r0, 0 - cmp r3, r1 - bcs _081DA06C - adds r4, r5, 0 - mov r7, r8 - ldrb r1, [r7] -_081DA054: - lsls r0, r3, 6 - adds r0, r4 - adds r0, 0x2C - ldrb r7, [r0] - cmp r2, r7 - bcs _081DA062 - ldrb r2, [r0] -_081DA062: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r1 - bcc _081DA054 -_081DA06C: - cmp r2, 0 - beq _081DA076 - subs r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 -_081DA076: - movs r4, 0x1 - movs r3, 0 - mov r0, r8 - ldrb r0, [r0] - cmp r3, r0 - bcs _081DA0AC - adds r0, r5, 0 - b _081DA0A2 - .pool -_081DA090: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - mov r1, r8 - ldrb r1, [r1] - cmp r3, r1 - bcs _081DA0AC - lsls r0, r3, 6 - adds r0, r5 -_081DA0A2: - adds r0, 0x2D - ldrb r0, [r0] - cmp r0, 0 - bne _081DA090 - movs r4, 0 -_081DA0AC: - mov r0, sp - ldrb r0, [r0] - adds r1, r2, 0 - adds r2, r4, 0 - bl sub_80DACBC -_081DA0B8: - mov r0, r9 - bl sub_80F86E0 - ldr r1, =gUnknown_02039F2B - strb r0, [r1] - ldr r0, =gUnknown_02039F30 - ldrb r0, [r0] - cmp r0, 0x3 - bhi _081DA0E8 - ldr r1, =sub_81DA488 - ldr r2, =sub_81DA10C - adds r0, r6, 0 - bl SetTaskFuncWithFollowupFunc - b _081DA0F6 - .pool -_081DA0E8: - ldr r0, =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81DA10C - str r0, [r1] -_081DA0F6: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D9F68 - - thumb_func_start sub_81DA10C -sub_81DA10C: @ 81DA10C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_02039F2C - ldrb r0, [r0] - bl sub_80DB09C - ldr r1, =sub_80FCF40 - ldr r2, =sub_81DA138 - adds r0, r4, 0 - bl SetTaskFuncWithFollowupFunc - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81DA10C - - thumb_func_start sub_81DA138 -sub_81DA138: @ 81DA138 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl sub_80DCE58 - ldr r1, =sub_80FCFD0 - ldr r2, =sub_80F8714 - adds r0, r4, 0 - bl SetTaskFuncWithFollowupFunc - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81DA138 - - thumb_func_start sub_81DA160 -sub_81DA160: @ 81DA160 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r6, r7, 2 - adds r0, r6, r7 - lsls r4, r0, 3 - ldr r5, =gTasks + 0x8 - adds r0, r4, r5 - adds r0, 0x18 - bl sub_80FC670 - cmp r0, 0 - beq _081DA224 - adds r0, r5, 0 - subs r0, 0x8 - adds r4, r0 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _081DA1A4 - cmp r0, 0x1 - beq _081DA1D4 - movs r0, 0 - strh r0, [r4, 0x8] - strh r0, [r4, 0x20] - adds r0, r7, 0 - bl SwitchTaskToFollowupFunc - b _081DA224 - .pool -_081DA1A4: - bl sub_800A520 - lsls r0, 24 - cmp r0, 0 - beq _081DA224 - ldr r0, =gUnknown_02039F25 - ldrb r0, [r0] - lsls r0, 6 - ldr r1, =gUnknown_02039E00 - adds r0, r1 - movs r1, 0x40 - bl sub_80FC4F4 - cmp r0, 0x1 - bne _081DA224 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _081DA224 - .pool -_081DA1D4: - bl sub_80FC55C - lsls r0, 24 - cmp r0, 0 - beq _081DA224 - movs r5, 0 - ldr r0, =gUnknown_02039F30 - mov r8, r6 - ldrb r0, [r0] - cmp r5, r0 - bge _081DA214 - ldr r6, =gUnknown_020229E8 -_081DA1EC: - lsls r4, r5, 6 - ldr r0, =gUnknown_02039E00 - adds r4, r0 - lsls r1, r5, 8 - ldr r0, =gUnknown_020223C4 - adds r1, r0 - adds r0, r4, 0 - movs r2, 0x40 - bl memcpy - ldrh r1, [r6, 0x1A] - adds r0, r4, 0 - bl sub_80DFA08 - adds r6, 0x1C - adds r5, 0x1 - ldr r0, =gUnknown_02039F30 - ldrb r0, [r0] - cmp r5, r0 - blt _081DA1EC -_081DA214: - ldr r0, =gTasks - mov r2, r8 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_081DA224: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81DA160 - - thumb_func_start sub_81DA244 -sub_81DA244: @ 81DA244 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r5, r0, 3 - ldr r6, =gTasks + 0x8 - adds r0, r5, r6 - adds r0, 0x18 - bl sub_80FC670 - cmp r0, 0 - beq _081DA2D4 - adds r0, r6, 0 - subs r0, 0x8 - adds r5, r0 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _081DA284 - cmp r0, 0x1 - beq _081DA2AC - movs r0, 0 - strh r0, [r5, 0x8] - strh r0, [r5, 0x20] - adds r0, r4, 0 - bl SwitchTaskToFollowupFunc - b _081DA2D4 - .pool -_081DA284: - bl link_get_multiplayer_id - lsls r0, 24 - cmp r0, 0 - bne _081DA2CE - bl sub_800A520 - lsls r0, 24 - cmp r0, 0 - beq _081DA2D4 - ldr r0, =gRngValue - movs r1, 0x4 - bl sub_80FC4F4 - cmp r0, 0x1 - bne _081DA2D4 - b _081DA2CE - .pool -_081DA2AC: - movs r0, 0 - bl sub_80FC530 - lsls r0, 24 - cmp r0, 0 - beq _081DA2D4 - ldr r0, =gRngValue - ldr r4, =gUnknown_020223C4 - adds r1, r4, 0 - movs r2, 0x4 - bl memcpy - ldr r0, =gUnknown_030060B8 - adds r1, r4, 0 - movs r2, 0x4 - bl memcpy -_081DA2CE: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] -_081DA2D4: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81DA244 - - thumb_func_start sub_81DA2E8 -sub_81DA2E8: @ 81DA2E8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - mov r9, r0 - adds r0, r6 - lsls r5, r0, 3 - ldr r1, =gTasks + 0x8 - mov r8, r1 - adds r0, r5, r1 - adds r0, 0x18 - bl sub_80FC670 - cmp r0, 0 - beq _081DA39E - movs r0, 0x8 - negs r0, r0 - add r0, r8 - mov r10, r0 - adds r4, r5, r0 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _081DA338 - cmp r0, 0x1 - beq _081DA35A - movs r0, 0 - strh r0, [r4, 0x8] - strh r0, [r4, 0x20] - adds r0, r6, 0 - bl SwitchTaskToFollowupFunc - b _081DA39E - .pool -_081DA338: - bl sub_800A520 - lsls r0, 24 - cmp r0, 0 - beq _081DA39E - add r0, sp, 0x8 - movs r1, 0x6E - strh r1, [r0] - movs r1, 0x2 - bl sub_80FC4F4 - cmp r0, 0x1 - bne _081DA39E - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _081DA39E -_081DA35A: - bl sub_80FC55C - lsls r0, 24 - cmp r0, 0 - beq _081DA39E - movs r1, 0 - ldr r7, =gUnknown_02039F30 - ldrb r0, [r7] - cmp r1, r0 - bge _081DA390 - mov r0, r8 - adds r0, 0xA - adds r3, r5, r0 - ldr r4, =gUnknown_020223C4 - mov r2, sp - movs r5, 0x80 - lsls r5, 1 -_081DA37C: - ldrh r0, [r4] - strh r0, [r2] - strh r0, [r3] - adds r3, 0x2 - adds r4, r5 - adds r2, 0x2 - adds r1, 0x1 - ldrb r0, [r7] - cmp r1, r0 - blt _081DA37C -_081DA390: - mov r0, r9 - adds r1, r0, r6 - lsls r1, 3 - add r1, r10 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_081DA39E: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81DA2E8 - - thumb_func_start sub_81DA3B8 -sub_81DA3B8: @ 81DA3B8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - mov r9, r0 - adds r0, r6 - lsls r5, r0, 3 - ldr r1, =gTasks + 0x8 - mov r8, r1 - adds r0, r5, r1 - adds r0, 0x18 - bl sub_80FC670 - cmp r0, 0 - beq _081DA46E - movs r0, 0x8 - negs r0, r0 - add r0, r8 - mov r10, r0 - adds r4, r5, r0 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _081DA408 - cmp r0, 0x1 - beq _081DA42A - movs r0, 0 - strh r0, [r4, 0x8] - strh r0, [r4, 0x20] - adds r0, r6, 0 - bl SwitchTaskToFollowupFunc - b _081DA46E - .pool -_081DA408: - bl sub_800A520 - lsls r0, 24 - cmp r0, 0 - beq _081DA46E - ldrh r1, [r4, 0x1A] - add r0, sp, 0x8 - strh r1, [r0] - movs r1, 0x2 - bl sub_80FC4F4 - cmp r0, 0x1 - bne _081DA46E - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _081DA46E -_081DA42A: - bl sub_80FC55C - lsls r0, 24 - cmp r0, 0 - beq _081DA46E - movs r1, 0 - ldr r7, =gUnknown_02039F30 - ldrb r0, [r7] - cmp r1, r0 - bge _081DA460 - mov r0, r8 - adds r0, 0x2 - adds r3, r5, r0 - ldr r4, =gUnknown_020223C4 - mov r2, sp - movs r5, 0x80 - lsls r5, 1 -_081DA44C: - ldrh r0, [r4] - strh r0, [r2] - strh r0, [r3] - adds r3, 0x2 - adds r4, r5 - adds r2, 0x2 - adds r1, 0x1 - ldrb r0, [r7] - cmp r1, r0 - blt _081DA44C -_081DA460: - mov r0, r9 - adds r1, r0, r6 - lsls r1, 3 - add r1, r10 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_081DA46E: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81DA3B8 - - thumb_func_start sub_81DA488 -sub_81DA488: @ 81DA488 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r7, r6, 2 - adds r0, r7, r6 - lsls r4, r0, 3 - ldr r5, =gTasks + 0x8 - adds r0, r4, r5 - adds r0, 0x18 - bl sub_80FC670 - cmp r0, 0 - beq _081DA55C - adds r0, r5, 0 - subs r0, 0x8 - adds r4, r0 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _081DA4CC - cmp r0, 0x1 - beq _081DA50C - movs r0, 0 - strh r0, [r4, 0x8] - strh r0, [r4, 0x20] - adds r0, r6, 0 - bl SwitchTaskToFollowupFunc - b _081DA55C - .pool -_081DA4CC: - bl link_get_multiplayer_id - lsls r0, 24 - cmp r0, 0 - bne _081DA4FA - bl sub_800A520 - lsls r0, 24 - cmp r0, 0 - beq _081DA55C - ldr r0, =gUnknown_02039F30 - ldrb r2, [r0] - lsls r0, r2, 6 - ldr r1, =gUnknown_02039E00 - adds r0, r1 - movs r1, 0x4 - subs r1, r2 - lsls r1, 22 - lsrs r1, 16 - bl sub_80FC4F4 - cmp r0, 0x1 - bne _081DA55C -_081DA4FA: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _081DA55C - .pool -_081DA50C: - movs r0, 0 - bl sub_80FC530 - lsls r0, 24 - cmp r0, 0 - beq _081DA55C - ldr r4, =gUnknown_02039F30 - ldrb r3, [r4] - lsls r0, r3, 6 - ldr r5, =gUnknown_02039E00 - adds r0, r5 - ldr r1, =gUnknown_020223C4 - movs r2, 0x4 - subs r2, r3 - lsls r2, 6 - bl memcpy - ldrb r4, [r4] - mov r8, r7 - cmp r4, 0x3 - bgt _081DA54C - lsls r0, r4, 6 - adds r5, r0, r5 - ldr r7, =gUnknown_020229E8 -_081DA53C: - ldrh r1, [r7, 0x1A] - adds r0, r5, 0 - bl sub_80DFA08 - adds r5, 0x40 - adds r4, 0x1 - cmp r4, 0x3 - ble _081DA53C -_081DA54C: - ldr r0, =gTasks - mov r2, r8 - adds r1, r2, r6 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_081DA55C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81DA488 - - thumb_func_start sub_81DA57C -sub_81DA57C: @ 81DA57C - push {lr} - ldr r0, =0x00000864 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _081DA5CA - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1E - bhi _081DA5CA - movs r0, 0x5B - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _081DA5C0 - ldr r0, =gUnknown_0862AD34 - movs r1, 0x8 - movs r2, 0x5 - bl sub_81DA5D4 - b _081DA5CA - .pool -_081DA5C0: - ldr r0, =gUnknown_0862AD44 - movs r1, 0x7 - movs r2, 0x1 - bl sub_81DA5D4 -_081DA5CA: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81DA57C - - thumb_func_start sub_81DA5D4 -sub_81DA5D4: @ 81DA5D4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - mov r9, r0 - adds r7, r1, 0 - mov r10, r2 - movs r6, 0 - movs r0, 0x5 - mov r8, r0 - movs r5, 0 - cmp r5, r7 - bcs _081DA61C - mov r4, r9 -_081DA5F4: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r4] - ldr r2, =0x000009ca - adds r0, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _081DA614 - adds r0, r1, 0 - bl sub_81DA6CC - cmp r8, r0 - ble _081DA612 - mov r8, r0 -_081DA612: - adds r6, 0x1 -_081DA614: - adds r4, 0x2 - adds r5, 0x1 - cmp r5, r7 - bcc _081DA5F4 -_081DA61C: - cmp r6, 0 - beq _081DA6BA - cmp r8, r10 - bhi _081DA6BA - movs r6, 0 - movs r5, 0 - cmp r5, r7 - bcs _081DA654 - mov r4, r9 -_081DA62E: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r4] - ldr r2, =0x000009ca - adds r0, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _081DA64C - adds r0, r1, 0 - bl sub_81DA6CC - cmp r0, r8 - bne _081DA64C - adds r6, 0x1 -_081DA64C: - adds r4, 0x2 - adds r5, 0x1 - cmp r5, r7 - bcc _081DA62E -_081DA654: - cmp r6, 0 - beq _081DA6BA - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r6, 0 - bl __modsi3 - adds r6, r0, 0 - movs r5, 0 - cmp r5, r7 - bcs _081DA6BA - ldr r2, =gSaveBlock1Ptr - ldr r3, =0x000009ca - mov r4, r9 -_081DA674: - ldr r0, [r2] - ldrh r1, [r4] - adds r0, r3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _081DA6B2 - adds r0, r1, 0 - str r2, [sp] - str r3, [sp, 0x4] - bl sub_81DA6CC - ldr r2, [sp] - ldr r3, [sp, 0x4] - cmp r0, r8 - bne _081DA6B2 - cmp r6, 0 - bne _081DA6B0 - ldr r0, [r2] - adds r0, r3 - ldrh r4, [r4] - adds r0, r4 - mov r1, r8 - strb r1, [r0] - b _081DA6BA - .pool -_081DA6B0: - subs r6, 0x1 -_081DA6B2: - adds r4, 0x2 - adds r5, 0x1 - cmp r5, r7 - bcc _081DA674 -_081DA6BA: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81DA5D4 - - thumb_func_start sub_81DA6CC -sub_81DA6CC: @ 81DA6CC - push {r4-r6,lr} - adds r5, r0, 0 - movs r4, 0 - ldr r6, =gUnknown_085500A4 -_081DA6D4: - lsls r0, r4, 1 - lsls r1, r5, 4 - adds r0, r1 - adds r0, r6 - ldrh r0, [r0] - bl trainer_flag_check - lsls r0, 24 - cmp r0, 0 - bne _081DA6F0 - adds r0, r4, 0 - b _081DA6F8 - .pool -_081DA6F0: - adds r4, 0x1 - cmp r4, 0x4 - ble _081DA6D4 - movs r0, 0x5 -_081DA6F8: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81DA6CC - - thumb_func_start sub_81DA700 -sub_81DA700: @ 81DA700 - push {lr} - sub sp, 0x8 - add r1, sp, 0x4 - mov r0, sp - bl sub_8149F58 - ldr r0, =gUnknown_0862AD54 - ldr r1, [sp, 0x4] - bl LZ77UnCompVram - ldr r0, =gUnknown_0862AF30 - ldr r1, [sp] - bl LZ77UnCompVram - ldr r0, =gUnknown_0862B53C - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldr r0, =gUnknown_0862B724 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862B72C - bl LoadTaggedObjectPalette - add sp, 0x8 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81DA700 - - thumb_func_start sub_81DA74C -sub_81DA74C: @ 81DA74C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - ldr r0, [sp, 0x24] - ldr r1, [sp, 0x28] - ldr r4, [sp, 0x2C] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp] - lsls r3, 24 - lsrs r3, 24 - mov r10, r3 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r4, 24 - lsrs r7, r4, 24 - ldr r0, =gUnknown_0862B758 - lsls r5, 16 - asrs r5, 16 - lsls r6, 16 - asrs r6, 16 - adds r1, r5, 0 - adds r2, r6, 0 - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r5, r0, 24 - cmp r7, 0x1 - beq _081DA7D0 - cmp r7, 0x1 - bgt _081DA7A8 - cmp r7, 0 - beq _081DA7B8 - b _081DA7AC - .pool -_081DA7A8: - cmp r7, 0x2 - beq _081DA7E4 -_081DA7AC: - ldr r6, =gUnknown_02020630 - lsls r3, r5, 4 - b _081DA7F8 - .pool -_081DA7B8: - ldr r2, =gUnknown_02020630 - lsls r3, r5, 4 - adds r0, r3, r5 - lsls r0, 2 - adds r0, r2 - movs r1, 0x78 - strh r1, [r0, 0x2E] - movs r1, 0x2D - b _081DA7F4 - .pool -_081DA7D0: - ldr r2, =gUnknown_02020630 - lsls r3, r5, 4 - adds r0, r3, r5 - lsls r0, 2 - adds r0, r2 - movs r1, 0x59 - b _081DA7F0 - .pool -_081DA7E4: - ldr r2, =gUnknown_02020630 - lsls r3, r5, 4 - adds r0, r3, r5 - lsls r0, 2 - adds r0, r2 - movs r1, 0x97 -_081DA7F0: - strh r1, [r0, 0x2E] - movs r1, 0x61 -_081DA7F4: - strh r1, [r0, 0x30] - adds r6, r2, 0 -_081DA7F8: - adds r4, r3, r5 - lsls r4, 2 - adds r0, r4, r6 - mov r2, r8 - lsls r1, r2, 24 - asrs r1, 24 - movs r2, 0 - strh r1, [r0, 0x32] - mov r3, r9 - lsls r1, r3, 24 - asrs r1, 24 - strh r1, [r0, 0x34] - mov r1, sp - ldrh r1, [r1] - strh r1, [r0, 0x3A] - mov r3, r10 - strh r3, [r0, 0x3C] - strh r2, [r0, 0x36] - strh r2, [r0, 0x38] - adds r1, r7, 0 - bl StartObjectImageAnim - adds r0, r6, 0 - adds r0, 0x1C - adds r4, r0 - ldr r0, =sub_81DA848 - str r0, [r4] - adds r0, r5, 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_81DA74C - - thumb_func_start sub_81DA848 -sub_81DA848: @ 81DA848 - push {r4,r5,lr} - adds r3, r0, 0 - adds r2, r3, 0 - adds r2, 0x2E - movs r0, 0x20 - ldrsh r1, [r3, r0] - movs r4, 0x2E - ldrsh r0, [r3, r4] - cmp r1, r0 - bne _081DA874 - movs r5, 0x22 - ldrsh r1, [r3, r5] - movs r4, 0x2 - ldrsh r0, [r2, r4] - cmp r1, r0 - bne _081DA874 - ldr r0, =DummyObjectCallback - str r0, [r3, 0x1C] - b _081DA8B4 - .pool -_081DA874: - ldrh r4, [r2, 0x8] - movs r5, 0x8 - ldrsh r1, [r2, r5] - movs r5, 0xC - ldrsh r0, [r2, r5] - cmp r1, r0 - bne _081DA890 - ldrh r0, [r2, 0x4] - ldrh r1, [r3, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r3, 0x20] - strh r1, [r2, 0x8] - b _081DA894 -_081DA890: - adds r0, r4, 0x1 - strh r0, [r2, 0x8] -_081DA894: - ldrh r4, [r2, 0xA] - movs r5, 0xA - ldrsh r1, [r2, r5] - movs r5, 0xE - ldrsh r0, [r2, r5] - cmp r1, r0 - bne _081DA8B0 - ldrh r0, [r2, 0x6] - ldrh r1, [r3, 0x22] - adds r0, r1 - movs r1, 0 - strh r0, [r3, 0x22] - strh r1, [r2, 0xA] - b _081DA8B4 -_081DA8B0: - adds r0, r4, 0x1 - strh r0, [r2, 0xA] -_081DA8B4: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81DA848 - - thumb_func_start sub_81DA8BC -sub_81DA8BC: @ 81DA8BC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - adds r6, r0, 0 - mov r8, r1 - ldr r0, [sp, 0x2C] - ldr r1, [sp, 0x30] - ldr r4, [sp, 0x34] - ldr r5, [sp, 0x38] - lsls r2, 16 - lsrs r2, 16 - str r2, [sp] - lsls r3, 16 - lsrs r3, 16 - str r3, [sp, 0x4] - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - lsls r4, 16 - lsrs r7, r4, 16 - lsls r5, 24 - lsrs r5, 24 - ldr r0, =gUnknown_0862B758 - lsls r6, 16 - asrs r6, 16 - mov r1, r8 - lsls r1, 16 - asrs r1, 16 - mov r8, r1 - adds r1, r6, 0 - mov r2, r8 - movs r3, 0 - bl AddObjectToFront - lsls r0, 24 - lsrs r6, r0, 24 - cmp r5, 0x1 - beq _081DA94C - cmp r5, 0x1 - bgt _081DA924 - cmp r5, 0 - beq _081DA934 - b _081DA928 - .pool -_081DA924: - cmp r5, 0x2 - beq _081DA960 -_081DA928: - ldr r2, =gUnknown_02020630 - lsls r3, r6, 4 - b _081DA972 - .pool -_081DA934: - ldr r2, =gUnknown_02020630 - lsls r3, r6, 4 - adds r0, r3, r6 - lsls r0, 2 - adds r0, r2 - movs r1, 0x78 - strh r1, [r0, 0x2E] - movs r1, 0x2D - b _081DA970 - .pool -_081DA94C: - ldr r2, =gUnknown_02020630 - lsls r3, r6, 4 - adds r0, r3, r6 - lsls r0, 2 - adds r0, r2 - movs r1, 0x59 - b _081DA96C - .pool -_081DA960: - ldr r2, =gUnknown_02020630 - lsls r3, r6, 4 - adds r0, r3, r6 - lsls r0, 2 - adds r0, r2 - movs r1, 0x97 -_081DA96C: - strh r1, [r0, 0x2E] - movs r1, 0x61 -_081DA970: - strh r1, [r0, 0x30] -_081DA972: - adds r4, r3, r6 - lsls r4, 2 - adds r0, r4, r2 - mov r3, sp - ldrh r3, [r3] - strh r3, [r0, 0x32] - mov r1, sp - ldrh r1, [r1, 0x4] - strh r1, [r0, 0x34] - mov r3, r10 - strh r3, [r0, 0x36] - mov r1, r9 - strh r1, [r0, 0x38] - strh r7, [r0, 0x3A] - adds r1, r5, 0 - str r2, [sp, 0x8] - bl StartObjectImageAnim - ldr r2, [sp, 0x8] - adds r0, r2, 0 - adds r0, 0x1C - adds r4, r0 - ldr r0, =sub_81DA9BC - str r0, [r4] - adds r0, r6, 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_81DA8BC - - thumb_func_start sub_81DA9BC -sub_81DA9BC: @ 81DA9BC - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - bl Sin2 - lsls r0, 16 - asrs r0, 16 - movs r2, 0x36 - ldrsh r1, [r4, r2] - muls r0, r1 - asrs r0, 12 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x32] - bl Cos2 - lsls r0, 16 - asrs r0, 16 - movs r3, 0x36 - ldrsh r1, [r4, r3] - muls r0, r1 - asrs r0, 12 - strh r0, [r4, 0x26] - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r2, 0x34 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r1, 0xB4 - lsls r1, 1 - bl __modsi3 - strh r0, [r4, 0x32] - ldrh r2, [r4, 0x36] - movs r3, 0x36 - ldrsh r1, [r4, r3] - movs r3, 0x38 - ldrsh r0, [r4, r3] - cmp r1, r0 - beq _081DAA12 - ldrh r0, [r4, 0x3A] - adds r0, r2, r0 - strh r0, [r4, 0x36] - b _081DAA16 -_081DAA12: - ldr r0, =DummyObjectCallback - str r0, [r4, 0x1C] -_081DAA16: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81DA9BC - - thumb_func_start sub_81DAA20 -sub_81DAA20: @ 81DAA20 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, =0x00002e90 - adds r0, r4, 0 - bl FreeObjectTilesByTag - adds r0, r4, 0 - bl FreeObjectPaletteByTag - movs r0, 0x10 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gUnknown_02020630 - adds r0, r4 - bl RemoveObjectAndFreeTiles - movs r0, 0x12 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl RemoveObjectAndFreeTiles - movs r0, 0x14 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl RemoveObjectAndFreeTiles - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81DAA20 - - thumb_func_start sub_81DAA74 -sub_81DAA74: @ 81DAA74 - push {r4,r5,lr} - adds r3, r0, 0 - ldr r2, =gUnknown_02020630 - movs r0, 0x10 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r5, r2, 0 - adds r5, 0x1C - adds r0, r5 - ldr r4, [r0] - ldr r0, =DummyObjectCallback - cmp r4, r0 - bne _081DAAC4 - movs r0, 0x12 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r2, [r0] - cmp r2, r4 - bne _081DAAC4 - movs r1, 0x14 - ldrsh r0, [r3, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldr r0, [r1] - cmp r0, r2 - bne _081DAAC4 - movs r0, 0x1 - b _081DAAC6 - .pool -_081DAAC4: - movs r0, 0 -_081DAAC6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81DAA74 - - thumb_func_start sub_81DAACC -sub_81DAACC: @ 81DAACC - push {r4,lr} - adds r4, r0, 0 - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _081DAB20 - bl sub_81DA700 - ldr r1, =0x00003f41 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r1, 0xA0 - lsls r1, 3 - movs r0, 0 - movs r2, 0x2 - bl ChangeBgY - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x1 - b _081DAB46 - .pool -_081DAB20: - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl ClearGpuRegBits - movs r1, 0x80 - lsls r1, 7 - movs r0, 0 - bl ClearGpuRegBits - movs r1, 0x80 - lsls r1, 1 - movs r0, 0 - bl ClearGpuRegBits - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - movs r0, 0 -_081DAB46: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81DAACC - - thumb_func_start sub_81DAB4C -sub_81DAB4C: @ 81DAB4C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081DAB64 - movs r1, 0x80 - lsls r1, 1 - movs r0, 0 - bl SetGpuRegBits -_081DAB64: - ldrh r1, [r4, 0xC] - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0x10 - bne _081DAB98 - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0x1F - bne _081DAB92 - movs r1, 0x1 - negs r1, r1 - movs r0, 0 - str r0, [sp] - adds r0, r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _081DABB0 -_081DAB92: - adds r0, r1, 0x1 - strh r0, [r4, 0xE] - b _081DABB0 -_081DAB98: - adds r0, r1, 0x1 - strh r0, [r4, 0xC] - ldrh r1, [r4, 0xC] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg -_081DABB0: - movs r0, 0 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81DAB4C - - thumb_func_start sub_81DABBC -sub_81DABBC: @ 81DABBC - push {r4,lr} - adds r4, r0, 0 - bl sub_81DAA74 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081DABD2 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_081DABD2: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81DABBC - - thumb_func_start sub_81DABDC -sub_81DABDC: @ 81DABDC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, =gUnknown_0862B770 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_081DABEE: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _081DABEE - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81DABDC - - thumb_func_start sub_81DAC14 -sub_81DAC14: @ 81DAC14 - push {r4-r6,lr} - sub sp, 0xC - adds r6, r0, 0 - movs r1, 0x33 - negs r1, r1 - movs r0, 0 - str r0, [sp] - movs r5, 0x2 - str r5, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x78 - movs r2, 0 - movs r3, 0 - bl sub_81DA74C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x10] - movs r0, 0x7 - negs r0, r0 - str r5, [sp] - movs r4, 0x2 - negs r4, r4 - str r4, [sp, 0x4] - movs r1, 0x1 - str r1, [sp, 0x8] - movs r1, 0xC1 - movs r2, 0 - movs r3, 0 - bl sub_81DA74C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x12] - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0xF7 - movs r1, 0xC1 - movs r2, 0 - movs r3, 0 - bl sub_81DA74C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x14] - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] - movs r0, 0 - add sp, 0xC - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81DAC14 - - thumb_func_start sub_81DAC80 -sub_81DAC80: @ 81DAC80 - push {lr} - adds r2, r0, 0 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081DACA4 - adds r0, r2, 0 - bl sub_81DAA20 - ldr r0, =sub_81DABDC - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_081DACA4: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81DAC80 - - thumb_func_start sub_81DACB4 -sub_81DACB4: @ 81DACB4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, =gUnknown_0862B784 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_081DACC6: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _081DACC6 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81DACB4 - - thumb_func_start sub_81DACEC -sub_81DACEC: @ 81DACEC - push {r4,r5,lr} - sub sp, 0xC - adds r5, r0, 0 - movs r0, 0 - str r0, [sp] - movs r4, 0x4 - negs r4, r4 - str r4, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x78 - movs r1, 0xC5 - movs r2, 0 - movs r3, 0 - bl sub_81DA74C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x10] - str r4, [sp] - movs r4, 0x2 - str r4, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0xF1 - movs r1, 0x3B - movs r2, 0 - movs r3, 0x1 - bl sub_81DA74C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x12] - movs r0, 0x1 - negs r0, r0 - movs r1, 0x4 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x3B - movs r2, 0 - movs r3, 0x1 - bl sub_81DA74C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x14] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - add sp, 0xC - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81DACEC - - thumb_func_start sub_81DAD58 -sub_81DAD58: @ 81DAD58 - push {lr} - adds r2, r0, 0 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081DAD7C - adds r0, r2, 0 - bl sub_81DAA20 - ldr r0, =sub_81DACB4 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_081DAD7C: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81DAD58 - - thumb_func_start sub_81DAD8C -sub_81DAD8C: @ 81DAD8C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, =gUnknown_0862B798 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_081DAD9E: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _081DAD9E - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81DAD8C - - thumb_func_start sub_81DADC4 -sub_81DADC4: @ 81DADC4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x10 - mov r8, r0 - movs r6, 0x80 - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r5, 0x4 - negs r5, r5 - str r5, [sp, 0x8] - str r4, [sp, 0xC] - movs r0, 0x78 - movs r1, 0x2D - movs r2, 0xC - movs r3, 0x4 - bl sub_81DA8BC - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - strh r0, [r1, 0x10] - str r6, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0x1 - str r0, [sp, 0xC] - movs r0, 0x59 - movs r1, 0x61 - movs r2, 0xFC - movs r3, 0x4 - bl sub_81DA8BC - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - strh r0, [r1, 0x12] - str r6, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0x2 - str r0, [sp, 0xC] - movs r0, 0x97 - movs r1, 0x61 - movs r2, 0x84 - movs r3, 0x4 - bl sub_81DA8BC - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - strh r0, [r1, 0x14] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0 - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81DADC4 - - thumb_func_start sub_81DAE44 -sub_81DAE44: @ 81DAE44 - push {lr} - adds r2, r0, 0 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081DAE68 - adds r0, r2, 0 - bl sub_81DAA20 - ldr r0, =sub_81DAD8C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_081DAE68: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81DAE44 - - thumb_func_start sub_81DAE78 -sub_81DAE78: @ 81DAE78 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, =gUnknown_0862B7AC - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_081DAE8A: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _081DAE8A - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81DAE78 - - thumb_func_start sub_81DAEB0 -sub_81DAEB0: @ 81DAEB0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x10 - mov r8, r0 - movs r2, 0x8E - lsls r2, 1 - movs r6, 0x83 - str r6, [sp] - movs r5, 0x23 - str r5, [sp, 0x4] - movs r4, 0x3 - negs r4, r4 - str r4, [sp, 0x8] - movs r0, 0 - str r0, [sp, 0xC] - movs r0, 0x78 - movs r1, 0x50 - movs r3, 0x8 - bl sub_81DA8BC - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - strh r0, [r1, 0x10] - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - str r0, [sp, 0xC] - movs r0, 0x78 - movs r1, 0x50 - movs r2, 0x2C - movs r3, 0x8 - bl sub_81DA8BC - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - strh r0, [r1, 0x12] - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x2 - str r0, [sp, 0xC] - movs r0, 0x79 - movs r1, 0x50 - movs r2, 0xA4 - movs r3, 0x8 - bl sub_81DA8BC - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - strh r0, [r1, 0x14] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0 - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81DAEB0 - - thumb_func_start sub_81DAF34 -sub_81DAF34: @ 81DAF34 - push {lr} - adds r2, r0, 0 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081DAF58 - adds r0, r2, 0 - bl sub_81DAA20 - ldr r0, =sub_81DAE78 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_081DAF58: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81DAF34 - - thumb_func_start sub_81DAF68 -sub_81DAF68: @ 81DAF68 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, =gUnknown_0862B7C0 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_081DAF7A: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _081DAF7A - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81DAF68 - - thumb_func_start sub_81DAFA0 -sub_81DAFA0: @ 81DAFA0 - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - movs r0, 0xA - ldrsh r2, [r4, r0] - cmp r2, 0 - bne _081DAFCC - movs r1, 0x33 - negs r1, r1 - str r2, [sp] - movs r0, 0x4 - str r0, [sp, 0x4] - str r2, [sp, 0x8] - movs r0, 0x78 - movs r2, 0 - movs r3, 0 - bl sub_81DA74C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x10] - b _081DB01A -_081DAFCC: - cmp r2, 0x10 - bne _081DAFF2 - movs r0, 0x7 - negs r0, r0 - movs r1, 0x4 - str r1, [sp] - subs r1, 0x8 - str r1, [sp, 0x4] - movs r1, 0x1 - str r1, [sp, 0x8] - movs r1, 0xC1 - movs r2, 0 - movs r3, 0 - bl sub_81DA74C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x12] - b _081DB01A -_081DAFF2: - cmp r2, 0x20 - bne _081DB01A - movs r0, 0x4 - negs r0, r0 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x2 - str r0, [sp, 0x8] - movs r0, 0xF7 - movs r1, 0xC1 - movs r2, 0 - movs r3, 0 - bl sub_81DA74C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x14] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_081DB01A: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - movs r0, 0 - add sp, 0xC - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81DAFA0 - - thumb_func_start sub_81DB02C -sub_81DB02C: @ 81DB02C - push {lr} - adds r2, r0, 0 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081DB050 - adds r0, r2, 0 - bl sub_81DAA20 - ldr r0, =sub_81DAF68 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_081DB050: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81DB02C - - thumb_func_start sub_81DB060 -sub_81DB060: @ 81DB060 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, =gUnknown_0862B7D4 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_081DB072: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _081DB072 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81DB060 - - thumb_func_start sub_81DB098 -sub_81DB098: @ 81DB098 - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - movs r0, 0xA - ldrsh r1, [r4, r0] - cmp r1, 0 - bne _081DB0C4 - str r1, [sp] - movs r0, 0x8 - negs r0, r0 - str r0, [sp, 0x4] - str r1, [sp, 0x8] - movs r0, 0x78 - movs r1, 0xC5 - movs r2, 0 - movs r3, 0 - bl sub_81DA74C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x10] - b _081DB112 -_081DB0C4: - cmp r1, 0x10 - bne _081DB0E8 - movs r0, 0x8 - negs r0, r0 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0xF1 - movs r1, 0x4E - movs r2, 0 - movs r3, 0 - bl sub_81DA74C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x12] - b _081DB112 -_081DB0E8: - cmp r1, 0x20 - bne _081DB112 - movs r0, 0x1 - negs r0, r0 - movs r1, 0x8 - str r1, [sp] - movs r1, 0x1 - str r1, [sp, 0x4] - movs r1, 0x2 - str r1, [sp, 0x8] - movs r1, 0x4E - movs r2, 0 - movs r3, 0 - bl sub_81DA74C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x14] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_081DB112: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - movs r0, 0 - add sp, 0xC - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81DB098 - - thumb_func_start sub_81DB124 -sub_81DB124: @ 81DB124 - push {lr} - adds r2, r0, 0 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081DB148 - adds r0, r2, 0 - bl sub_81DAA20 - ldr r0, =sub_81DB060 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_081DB148: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81DB124 - - thumb_func_start sub_81DB158 -sub_81DB158: @ 81DB158 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, =gUnknown_0862B7E8 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_081DB16A: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _081DB16A - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81DB158 - - thumb_func_start sub_81DB190 -sub_81DB190: @ 81DB190 - push {r4,lr} - sub sp, 0x10 - adds r4, r0, 0 - movs r0, 0xA - ldrsh r1, [r4, r0] - cmp r1, 0 - bne _081DB1BE - movs r0, 0x80 - str r0, [sp] - str r1, [sp, 0x4] - subs r0, 0x84 - str r0, [sp, 0x8] - str r1, [sp, 0xC] - movs r0, 0x78 - movs r1, 0x2D - movs r2, 0xC - movs r3, 0x4 - bl sub_81DA8BC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x10] - b _081DB212 -_081DB1BE: - cmp r1, 0x10 - bne _081DB1E6 - movs r0, 0x80 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - subs r0, 0x4 - str r0, [sp, 0x8] - movs r0, 0x1 - str r0, [sp, 0xC] - movs r0, 0x59 - movs r1, 0x61 - movs r2, 0xFC - movs r3, 0x4 - bl sub_81DA8BC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x12] - b _081DB212 -_081DB1E6: - cmp r1, 0x20 - bne _081DB212 - movs r0, 0x80 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - subs r0, 0x4 - str r0, [sp, 0x8] - movs r0, 0x2 - str r0, [sp, 0xC] - movs r0, 0x97 - movs r1, 0x61 - movs r2, 0x84 - movs r3, 0x4 - bl sub_81DA8BC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x14] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_081DB212: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - movs r0, 0 - add sp, 0x10 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81DB190 - - thumb_func_start sub_81DB224 -sub_81DB224: @ 81DB224 - push {lr} - adds r2, r0, 0 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081DB248 - adds r0, r2, 0 - bl sub_81DAA20 - ldr r0, =sub_81DB158 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_081DB248: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81DB224 - - thumb_func_start sub_81DB258 -sub_81DB258: @ 81DB258 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, =gUnknown_0862B7FC - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_081DB26A: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _081DB26A - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81DB258 - - thumb_func_start sub_81DB290 -sub_81DB290: @ 81DB290 - push {r4,lr} - sub sp, 0x10 - adds r4, r0, 0 - movs r0, 0xA - ldrsh r1, [r4, r0] - cmp r1, 0 - bne _081DB2C2 - movs r2, 0x8E - lsls r2, 1 - movs r0, 0x83 - str r0, [sp] - movs r0, 0x23 - str r0, [sp, 0x4] - subs r0, 0x26 - str r0, [sp, 0x8] - str r1, [sp, 0xC] - movs r0, 0x78 - movs r1, 0x50 - movs r3, 0x8 - bl sub_81DA8BC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x10] - b _081DB316 -_081DB2C2: - cmp r1, 0x10 - bne _081DB2EA - movs r0, 0x83 - str r0, [sp] - movs r0, 0x23 - str r0, [sp, 0x4] - subs r0, 0x26 - str r0, [sp, 0x8] - movs r0, 0x1 - str r0, [sp, 0xC] - movs r0, 0x78 - movs r1, 0x50 - movs r2, 0x2C - movs r3, 0x8 - bl sub_81DA8BC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x12] - b _081DB316 -_081DB2EA: - cmp r1, 0x20 - bne _081DB316 - movs r0, 0x83 - str r0, [sp] - movs r0, 0x23 - str r0, [sp, 0x4] - subs r0, 0x26 - str r0, [sp, 0x8] - movs r0, 0x2 - str r0, [sp, 0xC] - movs r0, 0x79 - movs r1, 0x50 - movs r2, 0xA4 - movs r3, 0x8 - bl sub_81DA8BC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x14] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_081DB316: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - movs r0, 0 - add sp, 0x10 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81DB290 - - thumb_func_start sub_81DB328 -sub_81DB328: @ 81DB328 - push {lr} - adds r2, r0, 0 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081DB34C - adds r0, r2, 0 - bl sub_81DAA20 - ldr r0, =sub_81DB258 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_081DB34C: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81DB328 - - thumb_func_start GetStringCenterAlignXOffset -@ s32 GetStringCenterAlignXOffset(u8 fontId, u8 *str, s32 totalWidth) -GetStringCenterAlignXOffset: @ 81DB35C - push {lr} - movs r3, 0 - bl GetStringCenterAlignXOffsetWithLetterSpacing - pop {r1} - bx r1 - thumb_func_end GetStringCenterAlignXOffset - - thumb_func_start GetStringRightAlignXOffset -@ s32 GetStringRightAlignXOffset(u8 fontId, u8 *str, s32 totalWidth) -GetStringRightAlignXOffset: @ 81DB368 - push {lr} - movs r3, 0 - bl GetStringWidthDifference - pop {r1} - bx r1 - thumb_func_end GetStringRightAlignXOffset - - thumb_func_start GetStringCenterAlignXOffsetWithLetterSpacing -@ s32 GetStringCenterAlignXOffsetWithLetterSpacing(u8 fontId, u8 *str, s32 totalWidth, s16 letterSpacing) -GetStringCenterAlignXOffsetWithLetterSpacing: @ 81DB374 - push {lr} - bl GetStringWidthDifference - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - pop {r1} - bx r1 - thumb_func_end GetStringCenterAlignXOffsetWithLetterSpacing - - thumb_func_start GetStringWidthDifference -@ s32 GetStringWidthDifference(u8 fontId, u8 *str, s32 totalWidth, s16 letterSpacing) -GetStringWidthDifference: @ 81DB384 - push {r4,lr} - adds r4, r2, 0 - adds r2, r3, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r2, 16 - asrs r2, 16 - bl GetStringWidth - cmp r4, r0 - bgt _081DB39E - movs r0, 0 - b _081DB3A0 -_081DB39E: - subs r0, r4, r0 -_081DB3A0: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetStringWidthDifference - - thumb_func_start GetMaxWidthInMenuTable -GetMaxWidthInMenuTable: @ 81DB3A8 - push {r4-r6,lr} - movs r6, 0 - cmp r6, r1 - bge _081DB3CC - adds r5, r0, 0 - adds r4, r1, 0 -_081DB3B4: - ldr r1, [r5] - movs r0, 0x1 - movs r2, 0 - bl GetStringWidth - cmp r0, r6 - ble _081DB3C4 - adds r6, r0, 0 -_081DB3C4: - adds r5, 0x8 - subs r4, 0x1 - cmp r4, 0 - bne _081DB3B4 -_081DB3CC: - adds r0, r6, 0 - bl convert_pixel_width_to_tile_width - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end GetMaxWidthInMenuTable - - thumb_func_start sub_81DB3D8 -sub_81DB3D8: @ 81DB3D8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r7, r1, 0 - adds r5, r2, 0 - movs r6, 0 - movs r4, 0 - cmp r6, r5 - bge _081DB40A -_081DB3EC: - adds r0, r7, r4 - ldrb r0, [r0] - lsls r0, 3 - add r0, r8 - ldr r1, [r0] - movs r0, 0x1 - movs r2, 0 - bl GetStringWidth - cmp r0, r6 - ble _081DB404 - adds r6, r0, 0 -_081DB404: - adds r4, 0x1 - cmp r4, r5 - blt _081DB3EC -_081DB40A: - adds r0, r6, 0 - bl convert_pixel_width_to_tile_width - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81DB3D8 - - thumb_func_start sub_81DB41C -sub_81DB41C: @ 81DB41C - push {r4-r7,lr} - adds r4, r0, 0 - ldr r1, [r4] - movs r7, 0 - movs r6, 0 - ldrh r0, [r4, 0xC] - cmp r7, r0 - bge _081DB44C - adds r5, r1, 0 -_081DB42E: - ldrb r0, [r4, 0x17] - lsls r0, 26 - lsrs r0, 26 - ldr r1, [r5] - movs r2, 0 - bl GetStringWidth - cmp r0, r7 - ble _081DB442 - adds r7, r0, 0 -_081DB442: - adds r5, 0x8 - adds r6, 0x1 - ldrh r0, [r4, 0xC] - cmp r6, r0 - blt _081DB42E -_081DB44C: - ldrb r0, [r4, 0x12] - adds r1, r7, r0 - adds r0, r1, 0 - adds r0, 0x9 - cmp r0, 0 - bge _081DB45A - adds r0, 0x7 -_081DB45A: - asrs r0, 3 - cmp r0, 0x1C - ble _081DB462 - movs r0, 0x1C -_081DB462: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81DB41C - - thumb_func_start sub_81DB468 -sub_81DB468: @ 81DB468 - push {lr} - adds r2, r0, 0 - adds r0, r1, 0 - lsls r2, 5 - ldr r1, =gPokedexEntries - adds r2, r1 - adds r1, r2, 0 - bl StringCopy - movs r1, 0 - strb r1, [r0] - adds r0, 0x1 - ldr r1, =gUnknown_085E8268 - bl StringCopy - pop {r0} - bx r0 - .pool - thumb_func_end sub_81DB468 - - thumb_func_start sub_81DB494 -sub_81DB494: @ 81DB494 - push {r4-r7,lr} - adds r6, r1, 0 - adds r5, r2, 0 - adds r7, r3, 0 - cmp r5, 0 - beq _081DB4B6 - adds r1, r5, 0 - bl StringCopy - adds r4, r0, 0 - lsls r0, r6, 24 - lsrs r0, 24 - adds r1, r5, 0 - movs r2, 0 - bl GetStringWidth - b _081DB4BA -_081DB4B6: - adds r4, r0, 0 - movs r0, 0 -_081DB4BA: - subs r3, r7, r0 - cmp r3, 0 - ble _081DB4D4 - movs r0, 0xFC - strb r0, [r4] - adds r4, 0x1 - movs r0, 0x11 - strb r0, [r4] - adds r4, 0x1 - strb r3, [r4] - adds r4, 0x1 - movs r0, 0xFF - strb r0, [r4] -_081DB4D4: - adds r0, r4, 0 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81DB494 - - thumb_func_start sub_81DB4DC -sub_81DB4DC: @ 81DB4DC - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - bl StripExtCtrlCodes - adds r0, r4, 0 - bl StringLength - lsls r0, 24 - lsrs r1, r0, 24 - cmp r5, 0xFC - bne _081DB51A - cmp r1, 0x5 - bhi _081DB51E - movs r3, 0xFC - movs r2, 0x7 -_081DB4FE: - adds r0, r4, r1 - strb r3, [r0] - strb r2, [r0, 0x1] - adds r0, r1, 0x2 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x5 - bls _081DB4FE - b _081DB51E -_081DB510: - adds r0, r4, r1 - strb r5, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 -_081DB51A: - cmp r1, 0x5 - bls _081DB510 -_081DB51E: - adds r1, r4, r1 - movs r0, 0xFF - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81DB4DC - - thumb_func_start sub_81DB52C -sub_81DB52C: @ 81DB52C - push {r4,lr} - adds r4, r0, 0 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x5 - bhi _081DB546 - adds r0, r4, 0 - movs r1, 0x1 - bl ConvertInternationalString - b _081DB54C -_081DB546: - adds r0, r4, 0 - bl StripExtCtrlCodes -_081DB54C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81DB52C - - thumb_func_start sub_81DB554 -sub_81DB554: @ 81DB554 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x5 - bhi _081DB572 - adds r0, r4, 0 - movs r1, 0x1 - bl ConvertInternationalString - b _081DB5A4 -_081DB572: - cmp r5, 0xFC - bne _081DB57E - adds r0, r4, 0 - bl StripExtCtrlCodes - b _081DB5A4 -_081DB57E: - adds r1, r4, 0 - b _081DB584 -_081DB582: - adds r1, 0x1 -_081DB584: - ldrb r0, [r1, 0x1] - cmp r0, 0xFF - bne _081DB582 - cmp r1, r4 - bcc _081DB5A4 - ldrb r0, [r1] - cmp r0, r5 - bne _081DB5A4 - movs r2, 0xFF -_081DB596: - strb r2, [r1] - subs r1, 0x1 - cmp r1, r4 - bcc _081DB5A4 - ldrb r0, [r1] - cmp r0, r5 - beq _081DB596 -_081DB5A4: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81DB554 - - thumb_func_start sub_81DB5AC -sub_81DB5AC: @ 81DB5AC - push {lr} - adds r2, r0, 0 - ldrb r0, [r2] - adds r2, 0x1 - cmp r0, 0xFC - bne _081DB5E4 - ldrb r0, [r2] - adds r2, 0x1 - cmp r0, 0x15 - bne _081DB5E4 - b _081DB5CE -_081DB5C2: - cmp r1, 0xFC - bne _081DB5CC - ldrb r0, [r2, 0x1] - cmp r0, 0x16 - beq _081DB5E4 -_081DB5CC: - adds r2, 0x1 -_081DB5CE: - ldrb r1, [r2] - adds r0, r1, 0 - cmp r0, 0xFF - bne _081DB5C2 - movs r0, 0xFC - strb r0, [r2] - adds r2, 0x1 - movs r0, 0x16 - strb r0, [r2] - movs r0, 0xFF - strb r0, [r2, 0x1] -_081DB5E4: - pop {r0} - bx r0 - thumb_func_end sub_81DB5AC - - thumb_func_start sub_81DB5E8 -sub_81DB5E8: @ 81DB5E8 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r2, 0 - bl StringCopy - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl ConvertInternationalString - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81DB5E8 - - thumb_func_start sub_81DB604 -sub_81DB604: @ 81DB604 - push {lr} - adds r1, r0, 0 - ldrb r0, [r1] - cmp r0, 0xFC - bne _081DB618 - ldrb r0, [r1, 0x1] - cmp r0, 0x15 - bne _081DB618 - movs r0, 0x1 - b _081DB61A -_081DB618: - movs r0, 0x2 -_081DB61A: - pop {r1} - bx r1 - thumb_func_end sub_81DB604 - - thumb_func_start sub_81DB620 -sub_81DB620: @ 81DB620 - push {r4-r7,lr} - sub sp, 0x4 - lsls r4, r0, 1 - adds r4, r0 - lsls r4, 2 - ldr r0, =gWindows - adds r4, r0 - lsls r7, r3, 5 - ldrb r0, [r4, 0x3] - lsls r6, r0, 5 - muls r2, r6 - ldr r0, [r4, 0x8] - adds r0, r2 - lsls r1, 5 - adds r5, r0, r1 - ldr r0, [sp, 0x18] - cmp r0, 0 - ble _081DB66C - adds r4, r0, 0 -_081DB646: - ldr r0, =0x11111111 - str r0, [sp] - adds r2, r7, 0 - cmp r2, 0 - bge _081DB652 - adds r2, 0x3 -_081DB652: - lsls r2, 9 - lsrs r2, 11 - movs r0, 0x80 - lsls r0, 17 - orrs r2, r0 - mov r0, sp - adds r1, r5, 0 - bl CpuFastSet - adds r5, r6 - subs r4, 0x1 - cmp r4, 0 - bne _081DB646 -_081DB66C: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81DB620 .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_81BE66C.s b/asm/rom_81BE66C.s new file mode 100644 index 0000000000..297252c7e8 --- /dev/null +++ b/asm/rom_81BE66C.s @@ -0,0 +1,56759 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_81BE66C +sub_81BE66C: @ 81BE66C + push {lr} + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldrh r1, [r0, 0x4] + movs r0, 0xD0 + lsls r0, 5 + cmp r1, r0 + bne _081BE690 + movs r0, 0xA7 + lsls r0, 1 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + b _081BE692 + .pool +_081BE690: + movs r0, 0 +_081BE692: + pop {r1} + bx r1 + thumb_func_end sub_81BE66C + + thumb_func_start sub_81BE698 +sub_81BE698: @ 81BE698 + push {lr} + ldr r0, =gUnknown_0203CF18 + ldr r0, [r0] + adds r0, 0x4 + bl sub_8151E50 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BE698 + + thumb_func_start sub_81BE6AC +sub_81BE6AC: @ 81BE6AC + ldr r1, =gUnknown_0203CF18 + movs r0, 0 + str r0, [r1] + bx lr + .pool + thumb_func_end sub_81BE6AC + + thumb_func_start sub_81BE6B8 +sub_81BE6B8: @ 81BE6B8 + push {r4,lr} + ldr r4, =gUnknown_0203CF18 + ldr r0, [r4] + cmp r0, 0 + beq _081BE6CC + movs r0, 0 + str r0, [r4] + b _081BE718 + .pool +_081BE6CC: + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldrh r1, [r0, 0x4] + movs r0, 0xD0 + lsls r0, 5 + cmp r1, r0 + bne _081BE718 + movs r0, 0xA7 + lsls r0, 1 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _081BE718 + movs r0, 0xC8 + bl AllocZeroed + str r0, [r4] + adds r0, 0x4 + bl sub_8151B3C + ldr r0, [r4] + adds r0, 0x4 + ldr r1, =gUnknown_08617E18 + bl sub_8151B68 + ldr r0, [r4] + adds r0, 0x4 + movs r1, 0x1 + movs r2, 0x1 + bl sub_8151CA8 + ldr r0, =sub_81BE698 + movs r1, 0xFF + bl CreateTask + ldr r1, [r4] + strb r0, [r1] +_081BE718: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BE6B8 + + thumb_func_start sub_81BE72C +sub_81BE72C: @ 81BE72C + push {r4,lr} + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldrh r1, [r0, 0x4] + movs r0, 0xD0 + lsls r0, 5 + cmp r1, r0 + bne _081BE788 + movs r0, 0xA7 + lsls r0, 1 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _081BE788 + ldr r4, =gUnknown_0203CF18 + ldr r0, [r4] + cmp r0, 0 + beq _081BE788 + ldr r0, =sub_81BE698 + bl FuncIsActiveTask + lsls r0, 24 + cmp r0, 0 + beq _081BE766 + ldr r0, [r4] + ldrb r0, [r0] + bl DestroyTask +_081BE766: + ldr r0, [r4] + adds r0, 0x4 + movs r1, 0x1 + movs r2, 0x1 + bl sub_8151D28 + ldr r0, [r4] + adds r0, 0x4 + movs r1, 0x1 + movs r2, 0x1 + bl sub_8151C50 + ldr r0, [r4] + bl Free + movs r0, 0 + str r0, [r4] +_081BE788: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BE72C + + thumb_func_start sub_81BE79C +sub_81BE79C: @ 81BE79C + push {r4,lr} + ldr r0, =0x000040cb + bl VarGet + lsls r0, 16 + cmp r0, 0 + beq _081BE7B8 + movs r0, 0xA7 + lsls r0, 1 + bl FlagReset + b _081BE7EE + .pool +_081BE7B8: + bl Random + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0x1 + ands r4, r0 + movs r0, 0x9D + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081BE7D4 + movs r4, 0x1 +_081BE7D4: + cmp r4, 0 + beq _081BE7E6 + movs r0, 0xA7 + lsls r0, 1 + bl FlagSet + bl sub_81BE6B8 + b _081BE7EE +_081BE7E6: + movs r0, 0xA7 + lsls r0, 1 + bl FlagReset +_081BE7EE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81BE79C + + thumb_func_start sub_81BE7F4 +sub_81BE7F4: @ 81BE7F4 + push {lr} + ldr r0, =sub_81BE808 + movs r1, 0x8 + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BE7F4 + + thumb_func_start sub_81BE808 +sub_81BE808: @ 81BE808 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldrb r1, [r0, 0x5] + ldrb r2, [r0, 0x4] + movs r0, 0x2D + mov r3, sp + bl TryGetFieldObjectIdByLocalIdAndMap + mov r0, sp + ldrb r0, [r0] + lsls r2, r0, 3 + adds r2, r0 + lsls r2, 2 + ldr r4, =gUnknown_02037350 + adds r2, r4 + ldr r3, =gSprites + ldrb r1, [r2, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x26] + adds r1, 0x4 + strh r1, [r0, 0x26] + ldr r0, =gUnknown_02037590 + ldrb r0, [r0, 0x5] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r2, 0x4] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + movs r4, 0x22 + ldrsh r2, [r0, r4] + movs r4, 0x26 + ldrsh r0, [r0, r4] + adds r2, r0 + ldrb r1, [r1, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r3, 0x22 + ldrsh r1, [r0, r3] + movs r4, 0x26 + ldrsh r0, [r0, r4] + adds r1, r0 + cmp r2, r1 + blt _081BE882 + adds r0, r5, 0 + bl DestroyTask + bl script_env_2_enable_and_set_ctx_running +_081BE882: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BE808 + + thumb_func_start sp136_strengh_sound +sp136_strengh_sound: @ 81BE89C + push {r4-r6,lr} + mov r6, r8 + push {r6} + mov r8, r0 + adds r4, r1, 0 + adds r5, r2, 0 + adds r6, r3, 0 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + ldr r0, =sub_81BE900 + movs r1, 0x9 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r4, [r1, 0x8] + strh r0, [r1, 0xA] + strh r5, [r1, 0xC] + strh r6, [r1, 0xE] + mov r0, r8 + strh r0, [r1, 0x10] + movs r0, 0 + bl SetCameraPanningCallback + movs r0, 0xD6 + bl PlaySE + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sp136_strengh_sound + + thumb_func_start sub_81BE900 +sub_81BE900: @ 81BE900 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] + movs r1, 0x2 + ldrsh r0, [r4, r1] + movs r2, 0x6 + ldrsh r1, [r4, r2] + bl __modsi3 + cmp r0, 0 + bne _081BE95C + strh r0, [r4, 0x2] + ldrh r0, [r4, 0x4] + subs r0, 0x1 + strh r0, [r4, 0x4] + ldrh r0, [r4] + negs r0, r0 + strh r0, [r4] + ldrh r0, [r4, 0x8] + negs r0, r0 + strh r0, [r4, 0x8] + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0x8 + ldrsh r1, [r4, r2] + bl SetCameraPanning + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _081BE95C + bl sub_81BE968 + adds r0, r5, 0 + bl DestroyTask + bl InstallCameraPanAheadCallback +_081BE95C: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BE900 + + thumb_func_start sub_81BE968 +sub_81BE968: @ 81BE968 + push {lr} + ldr r0, =sub_81BE9C0 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _081BE988 + ldr r0, =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_081BE988: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BE968 + + thumb_func_start sub_81BE994 +sub_81BE994: @ 81BE994 + push {lr} + ldr r0, =gUnknown_08617D94 + bl LoadSpriteSheets + bl sub_81BEA20 + ldr r0, =sub_81BE9C0 + movs r1, 0x8 + bl CreateTask + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0x10 + movs r3, 0x3 + bl sp136_strengh_sound + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BE994 + + thumb_func_start sub_81BE9C0 +sub_81BE9C0: @ 81BE9C0 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r3, r1, 3 + ldr r4, =gTasks + 0x8 + adds r2, r3, r4 + ldrh r0, [r2, 0x2] + adds r0, 0x1 + strh r0, [r2, 0x2] + lsls r0, 16 + movs r1, 0xFA + lsls r1, 18 + cmp r0, r1 + beq _081BE9E6 + ldrh r0, [r2] + cmp r0, 0x11 + bne _081BE9F0 +_081BE9E6: + adds r0, r4, 0 + subs r0, 0x8 + adds r0, r3, r0 + ldr r1, =sub_81BEA00 + str r1, [r0] +_081BE9F0: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BE9C0 + + thumb_func_start sub_81BEA00 +sub_81BEA00: @ 81BEA00 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0xFA + lsls r0, 4 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl DestroyTask + bl script_env_2_enable_and_set_ctx_running + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81BEA00 + + thumb_func_start sub_81BEA20 +sub_81BEA20: @ 81BEA20 + push {r4-r7,lr} + movs r4, 0 + ldr r5, =gUnknown_08617D64 + adds r7, r5, 0x2 + ldr r6, =gSprites +_081BEA2A: + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 1 + adds r1, r0, r5 + ldrh r1, [r1] + adds r1, 0x78 + lsls r1, 16 + asrs r1, 16 + adds r0, r7 + movs r3, 0 + ldrsh r2, [r0, r3] + ldr r0, =gUnknown_08617E60 + movs r3, 0x8 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r2, [r0, 0x5] + movs r3, 0xD + negs r3, r3 + adds r1, r3, 0 + ands r2, r1 + movs r1, 0xF + ands r2, r1 + strb r2, [r0, 0x5] + strh r4, [r0, 0x2E] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x7 + bls _081BEA2A + movs r4, 0 + ldr r5, =gUnknown_08617D64 + adds r7, r5, 0x2 + ldr r6, =gSprites +_081BEA78: + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 1 + adds r1, r0, r5 + ldrh r1, [r1] + adds r1, 0x73 + lsls r1, 16 + asrs r1, 16 + adds r0, r7 + ldrh r2, [r0] + subs r2, 0x3 + lsls r2, 16 + asrs r2, 16 + ldr r0, =gUnknown_08617E34 + movs r3, 0x8 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r2, [r0, 0x5] + movs r3, 0xD + negs r3, r3 + adds r1, r3, 0 + ands r2, r1 + movs r1, 0xF + ands r2, r1 + strb r2, [r0, 0x5] + strh r4, [r0, 0x2E] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x7 + bls _081BEA78 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BEA20 + + thumb_func_start sub_81BEAD8 +sub_81BEAD8: @ 81BEAD8 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + adds r0, 0x2 + strh r0, [r4, 0x30] + movs r1, 0x30 + ldrsh r0, [r4, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r4, 0x26] + movs r0, 0x22 + ldrsh r3, [r4, r0] + movs r1, 0x26 + ldrsh r0, [r4, r1] + adds r3, r0 + ldr r2, =gUnknown_08617D64 + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + adds r2, 0x4 + adds r0, r2 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r3, r0 + ble _081BEB1A + adds r0, r4, 0 + bl DestroySprite + bl sub_81BE968 +_081BEB1A: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BEAD8 + + thumb_func_start sub_81BEB24 +sub_81BEB24: @ 81BEB24 + push {r4,r5,lr} + movs r4, 0 + ldr r5, =gUnknown_08617DA4 +_081BEB2A: + lsls r2, r4, 2 + adds r2, r5 + ldrb r0, [r2] + adds r0, 0x7 + ldrb r1, [r2, 0x1] + adds r1, 0x7 + ldrh r2, [r2, 0x2] + bl MapGridSetMetatileIdAt + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x11 + bls _081BEB2A + bl DrawWholeMapView + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BEB24 + + thumb_func_start sub_81BEB54 +sub_81BEB54: @ 81BEB54 + push {lr} + ldr r0, =sub_81BED50 + movs r1, 0x9 + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BEB54 + + thumb_func_start sub_81BEB68 +sub_81BEB68: @ 81BEB68 + push {lr} + ldr r0, =sub_81BEBF4 + movs r1, 0x9 + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BEB68 + + thumb_func_start sub_81BEB7C +sub_81BEB7C: @ 81BEB7C + push {lr} + ldr r0, =sub_81BF028 + movs r1, 0x9 + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BEB7C + + thumb_func_start sub_81BEB90 +sub_81BEB90: @ 81BEB90 + push {r4,lr} + ldr r4, =gUnknown_0203CF14 + ldr r0, [r4] + ldrh r1, [r0] + movs r0, 0x10 + bl SetGpuReg + ldr r0, [r4] + ldrh r1, [r0, 0x2] + movs r0, 0x12 + bl SetGpuReg + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BEB90 + + thumb_func_start sub_81BEBB4 +sub_81BEBB4: @ 81BEBB4 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r2, r1, r2 + ldrh r1, [r2, 0x8] + movs r3, 0x8 + ldrsh r0, [r2, r3] + cmp r0, 0 + bne _081BEBEC + ldr r0, =gUnknown_0203CF14 + ldr r1, [r0] + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] + movs r0, 0x2 + strh r0, [r2, 0x8] + bl sub_81BEB90 + b _081BEBF0 + .pool +_081BEBEC: + subs r0, r1, 0x1 + strh r0, [r2, 0x8] +_081BEBF0: + pop {r0} + bx r0 + thumb_func_end sub_81BEBB4 + + thumb_func_start sub_81BEBF4 +sub_81BEBF4: @ 81BEBF4 + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r0, 0x6 + bls _081BEC10 + b _081BED40 +_081BEC10: + lsls r0, 2 + ldr r1, =_081BEC24 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081BEC24: + .4byte _081BEC40 + .4byte _081BEC50 + .4byte _081BEC88 + .4byte _081BECB0 + .4byte _081BECF8 + .4byte _081BED00 + .4byte _081BED1C +_081BEC40: + bl FreeAllWindowBuffers + movs r0, 0 + movs r1, 0x7 + movs r2, 0x2 + bl SetBgAttribute + b _081BED04 +_081BEC50: + ldr r4, =gUnknown_0203CF04 + movs r0, 0x92 + lsls r0, 4 + bl AllocZeroed + str r0, [r4] + ldr r4, =gUnknown_0203CF08 + movs r0, 0x80 + lsls r0, 4 + bl AllocZeroed + str r0, [r4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + b _081BECD8 + .pool +_081BEC88: + ldr r0, =gUnknown_08617274 + ldr r4, =gUnknown_0203CF04 + ldr r1, [r4] + movs r2, 0x92 + lsls r2, 3 + bl CpuSet + ldr r1, [r4] + movs r2, 0x92 + lsls r2, 4 + movs r0, 0 + movs r3, 0 + bl LoadBgTiles + b _081BECD8 + .pool +_081BECB0: + ldr r0, =gUnknown_0203CF08 + ldr r1, [r0] + movs r0, 0 + bl SetBgTilemapBuffer + ldr r1, =gUnknown_08617B94 + movs r0, 0x6 + str r0, [sp] + movs r0, 0xC + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0 + movs r2, 0xC + movs r3, 0x1D + bl CopyToBgTilemapBufferRect_ChangePalette + movs r0, 0 + bl CopyBgTilemapBufferToVram +_081BECD8: + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + b _081BED40 + .pool +_081BECF8: + movs r0, 0 + bl ShowBg + b _081BED04 +_081BED00: + bl sub_81BEB24 +_081BED04: + ldr r0, =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _081BED40 + .pool +_081BED1C: + ldr r4, =gUnknown_0203CF14 + movs r0, 0x4 + bl Alloc + str r0, [r4] + movs r2, 0 + movs r1, 0x2 + strh r1, [r0] + strh r2, [r0, 0x2] + ldr r0, =sub_81BEBB4 + movs r1, 0xA + bl CreateTask + adds r0, r5, 0 + bl DestroyTask + bl script_env_2_enable_and_set_ctx_running +_081BED40: + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BEBF4 + + thumb_func_start sub_81BED50 +sub_81BED50: @ 81BED50 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r1, =gTasks + lsls r0, 2 + add r0, r10 + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x8] + subs r0, 0x1 + lsls r0, 16 + asrs r0, 16 + adds r6, r1, 0 + cmp r0, 0x7 + bls _081BED7C + b _081BF002 +_081BED7C: + lsls r0, 2 + ldr r1, =_081BED90 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081BED90: + .4byte _081BEDB0 + .4byte _081BF002 + .4byte _081BEDC4 + .4byte _081BEF64 + .4byte _081BEF94 + .4byte _081BEFD0 + .4byte _081BEFF0 + .4byte _081BEFF8 +_081BEDB0: + ldr r4, =gUnknown_0203CF10 + movs r0, 0xC0 + lsls r0, 2 + bl AllocZeroed + str r0, [r4] + b _081BF002 + .pool +_081BEDC4: + mov r1, r10 + lsls r0, r1, 2 + adds r1, r0, r1 + lsls r1, 3 + adds r2, r1, r6 + ldrh r3, [r2, 0xE] + movs r4, 0xE + ldrsh r1, [r2, r4] + str r0, [sp, 0x8] + cmp r1, 0x5F + bgt _081BEE8A + movs r1, 0xA + ldrsh r0, [r2, r1] + cmp r0, 0x1 + ble _081BEE7C + lsls r0, r3, 24 + lsrs r4, r0, 24 + movs r0, 0x30 + bl Alloc + ldr r3, =gUnknown_0203CF10 + ldr r1, [r3] + lsls r2, r4, 3 + adds r1, r2, r1 + str r0, [r1] + movs r5, 0 + adds r4, r2, 0 +_081BEDFA: + ldr r0, [r3] + adds r0, r4, r0 + ldr r0, [r0] + adds r0, r5 + strb r5, [r0] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x2F + bls _081BEDFA + movs r5, 0 + ldr r7, =gUnknown_0203CF10 + adds r6, r2, 0 +_081BEE14: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x30 + bl __umodsi3 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x30 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + ldr r1, [r7] + adds r1, r6, r1 + ldr r1, [r1] + adds r0, r1, r0 + ldrb r2, [r0] + adds r1, r4 + ldrb r1, [r1] + strb r1, [r0] + ldr r0, [r7] + adds r0, r6, r0 + ldr r0, [r0] + adds r0, r4 + strb r2, [r0] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x2F + bls _081BEE14 + ldr r0, =gTasks + ldr r1, [sp, 0x8] + add r1, r10 + lsls r1, 3 + adds r2, r1, r0 + ldrh r3, [r2, 0xE] + movs r4, 0xE + ldrsh r1, [r2, r4] + adds r6, r0, 0 + cmp r1, 0x5F + bgt _081BEE78 + adds r0, r3, 0x1 + strh r0, [r2, 0xE] +_081BEE78: + movs r0, 0 + strh r0, [r2, 0xA] +_081BEE7C: + ldr r1, [sp, 0x8] + add r1, r10 + lsls r1, 3 + adds r1, r6 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] +_081BEE8A: + ldr r0, [sp, 0x8] + add r0, r10 + lsls r0, 3 + adds r0, r6 + ldrb r4, [r0, 0xE] + ldrb r5, [r0, 0xC] + lsls r0, r4, 16 + cmp r5, r4 + bcs _081BEF32 + str r0, [sp, 0xC] +_081BEE9E: + movs r6, 0 + adds r0, r5, 0x1 + str r0, [sp, 0x4] + lsls r4, r5, 3 + movs r2, 0x5F + subs r1, r2, r5 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 4 + mov r9, r0 +_081BEEB2: + ldr r0, =gUnknown_0203CF04 + ldr r0, [r0] + ldr r7, =gUnknown_0203CF10 + ldr r3, [r7] + adds r3, r4, r3 + ldrb r2, [r3, 0x4] + adds r1, r2, 0x1 + strb r1, [r3, 0x4] + lsls r2, 24 + lsrs r2, 24 + ldr r1, [r3] + adds r1, r2 + ldrb r1, [r1] + add r1, r9 + lsls r1, 16 + lsrs r1, 16 + movs r2, 0x1 + mov r8, r2 + str r2, [sp] + movs r2, 0 + movs r3, 0x30 + bl sub_81BF2B8 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + beq _081BEEB2 + ldr r0, [r7] + adds r1, r4, r0 + ldrb r0, [r1, 0x4] + cmp r0, 0x2F + bls _081BEF24 + ldr r0, [r1] + bl Free + ldr r0, [r7] + adds r0, r4, r0 + movs r1, 0 + str r1, [r0] + ldr r1, [sp, 0x8] + add r1, r10 + lsls r1, 3 + ldr r4, =gTasks + adds r1, r4 + ldrh r0, [r1, 0xC] + adds r0, 0x1 + strh r0, [r1, 0xC] + mov r0, r8 + ands r5, r0 + cmp r5, 0x1 + bne _081BEF24 + ldr r0, =gUnknown_0203CF14 + ldr r1, [r0] + ldrh r0, [r1, 0x2] + subs r0, 0x1 + strh r0, [r1, 0x2] +_081BEF24: + ldr r1, [sp, 0x4] + lsls r0, r1, 16 + lsrs r5, r0, 16 + ldr r2, [sp, 0xC] + lsrs r0, r2, 16 + cmp r5, r0 + bcc _081BEE9E +_081BEF32: + ldr r0, =gUnknown_0203CF04 + ldr r1, [r0] + movs r2, 0x92 + lsls r2, 4 + movs r0, 0 + movs r3, 0 + bl LoadBgTiles + ldr r0, =gUnknown_0203CF10 + ldr r0, [r0] + movs r4, 0xBE + lsls r4, 2 + adds r0, r4 + ldrb r0, [r0, 0x4] + cmp r0, 0x2F + bhi _081BF002 + b _081BF014 + .pool +_081BEF64: + movs r0, 0 + bl UnsetBgTilemapBuffer + ldr r0, =sub_81BEBB4 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _081BEF7C + bl DestroyTask +_081BEF7C: + ldr r0, =gUnknown_0203CF14 + ldr r1, [r0] + movs r0, 0 + strh r0, [r1] + strh r0, [r1, 0x2] + bl sub_81BEB90 + b _081BF002 + .pool +_081BEF94: + ldr r4, =gUnknown_0203CF14 + ldr r0, [r4] + bl Free + movs r5, 0 + str r5, [r4] + ldr r4, =gUnknown_0203CF10 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, =gUnknown_0203CF04 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, =gUnknown_0203CF08 + ldr r0, [r4] + bl Free + str r5, [r4] + b _081BF002 + .pool +_081BEFD0: + movs r0, 0xC + movs r1, 0x2 + bl SetGpuRegBits + movs r0, 0x8 + movs r1, 0 + bl SetGpuRegBits + movs r0, 0 + movs r1, 0x7 + movs r2, 0 + bl SetBgAttribute + bl sub_81971D0 + b _081BF002 +_081BEFF0: + movs r0, 0 + bl ShowBg + b _081BF002 +_081BEFF8: + mov r0, r10 + bl DestroyTask + bl script_env_2_enable_and_set_ctx_running +_081BF002: + ldr r0, =gTasks + mov r2, r10 + lsls r1, r2, 2 + add r1, r10 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_081BF014: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BED50 + + thumb_func_start sub_81BF028 +sub_81BF028: @ 81BF028 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x18 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x8] + subs r0, 0x1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + bls _081BF04C + b _081BF228 +_081BF04C: + lsls r0, 2 + ldr r1, =_081BF060 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081BF060: + .4byte _081BF080 + .4byte _081BF0B4 + .4byte _081BF0DC + .4byte _081BF0F0 + .4byte _081BF148 + .4byte _081BF170 + .4byte _081BF1CC + .4byte _081BF224 +_081BF080: + ldr r4, =gUnknown_0203CF0C + movs r0, 0x14 + bl AllocZeroed + str r0, [r4] + movs r0, 0x80 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1] + movs r0, 0x8 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, 0x4] + movs r0, 0x80 + lsls r0, 2 + bl AllocZeroed + ldr r1, [r4] + str r0, [r1, 0xC] + movs r0, 0 + strh r0, [r1, 0x10] + b _081BF228 + .pool +_081BF0B4: + ldr r0, =gUnknown_0203CF0C + ldr r0, [r0] + ldr r1, [r0] + movs r5, 0 + ldr r2, =gUnknown_08617C44 +_081BF0BE: + adds r0, r5, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + adds r1, 0x1 + cmp r5, 0x7F + bls _081BF0BE + b _081BF228 + .pool +_081BF0DC: + ldr r0, =gUnknown_0203CF0C + ldr r0, [r0] + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [r1] + movs r0, 0x80 + strh r0, [r1, 0x4] + b _081BF228 + .pool +_081BF0F0: + mov r1, sp + ldr r0, =gUnknown_08617E00 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldr r4, =gUnknown_0203CF0C + ldr r0, [r4] + ldr r0, [r0, 0x4] + str r0, [sp, 0xC] + movs r2, 0x10 + negs r2, r2 + mov r0, sp + movs r1, 0x80 + movs r3, 0x1 + bl CreateSprite + ldr r1, [r4] + movs r3, 0 + strb r0, [r1, 0x8] + ldr r2, =gSprites + ldr r0, [r4] + ldrb r1, [r0, 0x8] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x28 + strb r3, [r0] + ldr r3, [r4] + ldrb r1, [r3, 0x8] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x20] + strh r1, [r0, 0x2E] + ldrb r1, [r3, 0x8] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x1 + strh r1, [r0, 0x30] +_081BF148: + movs r5, 0 + ldr r2, =gUnknown_0203CF0C +_081BF14C: + ldr r0, [r2] + ldr r1, [r0, 0xC] + lsls r0, r5, 1 + adds r0, r1 + strh r5, [r0] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0xFF + bls _081BF14C + b _081BF228 + .pool +_081BF170: + movs r5, 0 + movs r6, 0xFF + ldr r0, =0x000001ff + mov r8, r0 +_081BF178: + bl Random + adds r4, r6, 0 + ands r4, r0 + bl Random + adds r1, r6, 0 + ands r1, r0 + ldr r0, =gUnknown_0203CF0C + ldr r3, [r0] + ldr r0, [r3, 0xC] + lsls r1, 1 + adds r1, r0 + ldrh r2, [r1] + lsls r4, 1 + adds r4, r0 + ldrh r0, [r4] + strh r0, [r1] + strh r2, [r4] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bls _081BF178 + ldr r2, =gSprites + ldrb r1, [r3, 0x8] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, =sub_81BF248 + str r1, [r0] + b _081BF228 + .pool +_081BF1CC: + ldr r3, =gSprites + ldr r5, =gUnknown_0203CF0C + ldr r0, [r5] + ldrb r1, [r0, 0x8] + lsls r0, r1, 4 + adds r0, r1 + lsls r2, r0, 2 + adds r0, r3, 0 + adds r0, 0x1C + adds r0, r2, r0 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + bne _081BF238 + adds r0, r2, r3 + bl DestroySprite + ldr r0, [r5] + ldr r0, [r0, 0xC] + bl Free + ldr r0, [r5] + movs r4, 0 + str r4, [r0, 0xC] + ldr r0, [r0, 0x4] + bl Free + ldr r0, [r5] + str r4, [r0, 0x4] + ldr r0, [r0] + bl Free + ldr r0, [r5] + str r4, [r0] + bl Free + str r4, [r5] + b _081BF228 + .pool +_081BF224: + bl script_env_2_enable_and_set_ctx_running +_081BF228: + ldr r0, =gTasks + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_081BF238: + add sp, 0x18 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BF028 + + thumb_func_start sub_81BF248 +sub_81BF248: @ 81BF248 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + ldr r0, =gUnknown_0203CF0C + ldr r0, [r0] + ldrh r0, [r0, 0x10] + cmp r0, 0xFF + bls _081BF268 + ldr r0, =SpriteCallbackDummy + str r0, [r5, 0x1C] + b _081BF2B0 + .pool +_081BF268: + ldrh r1, [r5, 0x22] + movs r2, 0x22 + ldrsh r0, [r5, r2] + cmp r0, 0x5F + ble _081BF2AC + movs r4, 0 +_081BF274: + ldr r0, =gUnknown_0203CF0C + ldr r3, [r0] + ldr r0, [r3] + ldrh r1, [r3, 0x10] + adds r2, r1, 0x1 + strh r2, [r3, 0x10] + lsls r1, 16 + ldr r2, [r3, 0xC] + lsrs r1, 15 + adds r1, r2 + ldrh r1, [r1] + movs r2, 0 + str r2, [sp] + movs r3, 0x10 + bl sub_81BF2B8 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + bls _081BF274 + adds r0, r5, 0 + movs r1, 0 + bl StartSpriteAnim + b _081BF2B0 + .pool +_081BF2AC: + adds r0, r1, 0x1 + strh r0, [r5, 0x22] +_081BF2B0: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81BF248 + + thumb_func_start sub_81BF2B8 +sub_81BF2B8: @ 81BF2B8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + str r0, [sp] + mov r10, r1 + adds r6, r2, 0 + mov r8, r3 + ldr r0, [sp, 0x28] + mov r9, r0 + lsls r1, 16 + lsrs r1, 16 + mov r10, r1 + lsls r6, 24 + lsrs r6, 24 + mov r0, r8 + lsls r0, 24 + mov r8, r0 + lsrs r7, r0, 24 + mov r1, r9 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + mov r0, r10 + adds r1, r7, 0 + bl __divsi3 + adds r5, r0, 0 + lsls r5, 24 + lsrs r4, r5, 24 + ldr r3, =gUnknown_030012A8 + strh r4, [r3] + mov r0, r10 + adds r1, r7, 0 + str r3, [sp, 0x4] + bl __modsi3 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r3, [sp, 0x4] + strh r2, [r3, 0x2] + movs r1, 0x7 + ands r4, r1 + ands r2, r1 + strh r4, [r3, 0x4] + strh r2, [r3, 0x6] + lsrs r0, 27 + lsrs r5, 27 + strh r0, [r3, 0x8] + strh r5, [r3, 0xA] + mov r1, r8 + lsrs r1, 27 + lsls r1, 6 + mov r8, r1 + mov r1, r8 + muls r1, r5 + lsls r0, 6 + adds r1, r0 + lsls r1, 16 + lsrs r1, 16 + strh r1, [r3, 0xC] + lsls r4, 3 + adds r4, r2 + adds r1, r4 + lsls r4, r1, 16 + lsrs r4, 17 + strh r1, [r3, 0xE] + movs r1, 0x1 + mov r0, r10 + ands r1, r0 + movs r2, 0x1 + eors r1, r2 + lsls r0, r1, 2 + lsls r6, r0 + eors r1, r2 + lsls r1, 2 + movs r0, 0xF + lsls r0, r1 + orrs r6, r0 + lsls r6, 24 + lsrs r6, 24 + mov r1, r9 + lsls r1, 5 + mov r9, r1 + add r9, r4 + ldr r1, [sp] + add r1, r9 + ldrb r0, [r1] + ands r6, r0 + strb r6, [r1] + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BF2B8 + + thumb_func_start sub_81BF384 +sub_81BF384: @ 81BF384 + push {r4,lr} + ldr r0, =0x0000ffff + bl DisableInterrupts + movs r0, 0x1 + bl EnableInterrupts + bl m4aSoundVSyncOff + movs r0, 0 + bl SetVBlankCallback + bl ResetSpriteData + bl ResetTasks + bl remove_some_task + movs r0, 0 + movs r1, 0 + bl SetGpuReg + ldr r4, =gUnknown_030012B8 + movs r0, 0x50 + bl AllocZeroed + str r0, [r4] + movs r1, 0 + strb r1, [r0] + ldr r1, [r4] + movs r0, 0x6 + strb r0, [r1, 0x1] + ldr r0, =sub_81BF3DC + bl SetMainCallback2 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BF384 + + thumb_func_start sub_81BF3DC +sub_81BF3DC: @ 81BF3DC + push {r4,r5,lr} + sub sp, 0x4 + ldr r1, =gUnknown_030012B8 + ldr r0, [r1] + ldrb r0, [r0] + adds r5, r1, 0 + cmp r0, 0x7 + bls _081BF3EE + b _081BF592 +_081BF3EE: + lsls r0, 2 + ldr r1, =_081BF400 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081BF400: + .4byte _081BF420 + .4byte _081BF430 + .4byte _081BF45C + .4byte _081BF488 + .4byte _081BF4BC + .4byte _081BF514 + .4byte _081BF552 + .4byte _081BF574 +_081BF420: + bl sub_81BF5A4 + ldr r0, =gUnknown_030012B8 + ldr r1, [r0] + movs r0, 0x1 + b _081BF590 + .pool +_081BF430: + movs r0, 0x5 + bl sub_81BF7A4 + cmp r0, 0x5 + beq _081BF43C + b _081BF592 +_081BF43C: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _081BF44A + b _081BF592 +_081BF44A: + ldr r0, =gUnknown_030012B8 + ldr r1, [r0] + movs r0, 0x2 + b _081BF590 + .pool +_081BF45C: + movs r0, 0 + bl sub_81BF7A4 + cmp r0, 0 + beq _081BF468 + b _081BF592 +_081BF468: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _081BF476 + b _081BF592 +_081BF476: + ldr r0, =gUnknown_030012B8 + ldr r1, [r0] + movs r0, 0x3 + b _081BF590 + .pool +_081BF488: + movs r0, 0x1 + bl sub_81BF7A4 + cmp r0, 0x1 + beq _081BF494 + b _081BF592 +_081BF494: + ldr r4, =gUnknown_030012B8 + ldr r0, [r4] + ldr r1, =gUnknown_089A6550 + str r1, [r0, 0x2C] + adds r0, 0x4F + movs r5, 0 + strb r5, [r0] + ldr r0, [r4] + adds r0, 0x4 + bl MultiBootInit + ldr r1, [r4] + strh r5, [r1, 0x2] + movs r0, 0x4 + b _081BF590 + .pool +_081BF4BC: + adds r4, r5, 0 + ldr r0, [r4] + adds r0, 0x4 + bl MultiBootMain + ldr r4, [r4] + ldrb r0, [r4, 0x1C] + cmp r0, 0 + bne _081BF4D8 + ldr r0, [r4, 0x20] + ldr r1, =0x00020200 + ands r0, r1 + cmp r0, r1 + beq _081BF4E4 +_081BF4D8: + movs r0, 0 + strh r0, [r4, 0x2] + b _081BF592 + .pool +_081BF4E4: + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xB4 + bls _081BF592 + adds r0, r4, 0x4 + ldr r1, =gMultiBootProgram_BerryGlitchFix_Start + ldr r2, =gMultiBootProgram_BerryGlitchFix_End + subs r2, r1 + movs r3, 0x1 + str r3, [sp] + movs r3, 0x4 + bl MultiBootStartMaster + ldr r1, [r5] + movs r0, 0x5 + b _081BF590 + .pool +_081BF514: + movs r0, 0x2 + bl sub_81BF7A4 + adds r4, r0, 0 + cmp r4, 0x2 + bne _081BF592 + ldr r5, =gUnknown_030012B8 + ldr r0, [r5] + adds r0, 0x4 + bl MultiBootMain + ldr r0, [r5] + adds r0, 0x4 + bl MultiBootCheckComplete + cmp r0, 0 + beq _081BF540 + ldr r1, [r5] + movs r0, 0x6 + b _081BF590 + .pool +_081BF540: + ldr r1, [r5] + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + ands r4, r0 + cmp r4, 0 + bne _081BF592 + movs r0, 0x7 + b _081BF590 +_081BF552: + movs r0, 0x3 + bl sub_81BF7A4 + cmp r0, 0x3 + bne _081BF592 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081BF592 + bl DoSoftReset + b _081BF592 + .pool +_081BF574: + movs r0, 0x4 + bl sub_81BF7A4 + cmp r0, 0x4 + bne _081BF592 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081BF592 + ldr r0, =gUnknown_030012B8 + ldr r1, [r0] + movs r0, 0x1 +_081BF590: + strb r0, [r1] +_081BF592: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BF3DC + + thumb_func_start sub_81BF5A4 +sub_81BF5A4: @ 81BF5A4 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x10 + movs r0, 0x8 + movs r1, 0 + bl SetGpuReg + movs r0, 0xA + movs r1, 0 + bl SetGpuReg + movs r0, 0x10 + movs r1, 0 + bl SetGpuReg + movs r0, 0x12 + movs r1, 0 + bl SetGpuReg + movs r0, 0x14 + movs r1, 0 + bl SetGpuReg + movs r0, 0x16 + movs r1, 0 + bl SetGpuReg + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r1, 0 + str r1, [sp, 0xC] + ldr r4, =0x040000d4 + add r0, sp, 0xC + str r0, [r4] + movs r0, 0xC0 + lsls r0, 19 + str r0, [r4, 0x4] + ldr r0, =0x85006000 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + str r1, [sp, 0xC] + add r0, sp, 0xC + str r0, [r4] + movs r0, 0xE0 + lsls r0, 19 + str r0, [r4, 0x4] + ldr r2, =0x85000100 + str r2, [r4, 0x8] + ldr r0, [r4, 0x8] + str r1, [sp, 0xC] + add r0, sp, 0xC + str r0, [r4] + movs r0, 0xA0 + lsls r0, 19 + str r0, [r4, 0x4] + str r2, [r4, 0x8] + ldr r0, [r4, 0x8] + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, =gUnknown_08618108 + movs r0, 0 + movs r2, 0x2 + bl InitBgsFromTemplates + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + ldr r0, =gUnknown_08618110 + bl InitWindows + bl DeactivateAllTextPrinters + ldr r0, =gUnknown_08618138 + str r0, [r4] + ldr r0, =0x050001e0 + str r0, [r4, 0x4] + ldr r0, =0x84000008 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + movs r0, 0 + movs r1, 0x40 + bl SetGpuReg + movs r0, 0x2 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0x3 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0 + movs r1, 0xAA + bl FillWindowPixelBuffer + ldr r5, =gUnknown_08617E9B + movs r0, 0 + adds r1, r5, 0 + movs r2, 0 + bl GetStringWidth + adds r1, r0, 0 + movs r4, 0x78 + subs r0, r4, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + lsls r2, r0, 24 + lsrs r2, 24 + ldr r6, =gUnknown_0861815B + str r6, [sp] + movs r0, 0x1 + negs r0, r0 + mov r8, r0 + str r0, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0x2 + movs r1, 0 + movs r3, 0x3 + bl box_print + ldr r5, =gUnknown_08617E8D + movs r0, 0 + adds r1, r5, 0 + movs r2, 0 + bl GetStringWidth + adds r1, r0, 0 + subs r4, r1 + lsrs r0, r4, 31 + adds r4, r0 + asrs r4, 1 + adds r0, r4, 0 + adds r0, 0x78 + lsls r2, r0, 24 + lsrs r2, 24 + str r6, [sp] + mov r0, r8 + str r0, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0x2 + movs r1, 0 + movs r3, 0x3 + bl box_print + movs r0, 0 + adds r1, r5, 0 + movs r2, 0 + bl GetStringWidth + adds r1, r0, 0 + movs r0, 0x70 + subs r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + lsls r2, r0, 24 + lsrs r2, 24 + str r6, [sp] + mov r0, r8 + str r0, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0x3 + movs r1, 0 + movs r3, 0 + bl box_print + ldr r4, =gUnknown_08617E78 + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0 + bl GetStringWidth + adds r1, r0, 0 + movs r0, 0xD0 + subs r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + lsls r2, r0, 24 + lsrs r2, 24 + ldr r0, =gUnknown_08618158 + str r0, [sp] + mov r0, r8 + str r0, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0 + movs r1, 0x1 + movs r3, 0x2 + bl box_print + movs r0, 0x2 + movs r1, 0x2 + bl CopyWindowToVram + movs r0, 0x3 + movs r1, 0x2 + bl CopyWindowToVram + movs r0, 0 + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BF5A4 + + thumb_func_start sub_81BF7A4 +sub_81BF7A4: @ 81BF7A4 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, =gUnknown_030012B8 + ldr r0, [r5] + ldrb r0, [r0, 0x1] + cmp r0, r4 + bne _081BF7BC + adds r0, r4, 0 + b _081BF7DC + .pool +_081BF7BC: + cmp r0, 0x6 + bne _081BF7CC + adds r0, r4, 0 + bl sub_81BF7E8 + ldr r0, [r5] + strb r4, [r0, 0x1] + b _081BF7D6 +_081BF7CC: + bl sub_81BF8D8 + ldr r1, [r5] + movs r0, 0x6 + strb r0, [r1, 0x1] +_081BF7D6: + ldr r0, =gUnknown_030012B8 + ldr r0, [r0] + ldrb r0, [r0, 0x1] +_081BF7DC: + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81BF7A4 + + thumb_func_start sub_81BF7E8 +sub_81BF7E8: @ 81BF7E8 + push {r4-r6,lr} + sub sp, 0xC + adds r6, r0, 0 + movs r0, 0x20 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, 0x1 + movs r1, 0xAA + bl FillWindowPixelBuffer + ldr r0, =gUnknown_08618158 + str r0, [sp] + movs r0, 0x1 + negs r0, r0 + str r0, [sp, 0x4] + ldr r0, =gUnknown_08618160 + lsls r4, r6, 2 + adds r0, r4, r0 + ldr r0, [r0] + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0 + movs r3, 0 + bl box_print + movs r0, 0x1 + bl PutWindowTilemap + movs r0, 0x1 + movs r1, 0x2 + bl CopyWindowToVram + cmp r6, 0x5 + bhi _081BF87E + ldr r0, =_081BF850 + adds r0, r4, r0 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081BF850: + .4byte _081BF868 + .4byte _081BF870 + .4byte _081BF868 + .4byte _081BF868 + .4byte _081BF868 + .4byte _081BF878 +_081BF868: + movs r0, 0x2 + bl PutWindowTilemap + b _081BF87E +_081BF870: + movs r0, 0x3 + bl PutWindowTilemap + b _081BF87E +_081BF878: + movs r0, 0 + bl PutWindowTilemap +_081BF87E: + movs r0, 0 + bl CopyBgTilemapBufferToVram + ldr r5, =gUnknown_08618178 + lsls r4, r6, 1 + adds r4, r6 + lsls r4, 2 + adds r0, r4, r5 + ldr r0, [r0] + ldr r1, =0x06004000 + bl LZ77UnCompVram + adds r0, r5, 0x4 + adds r0, r4, r0 + ldr r0, [r0] + ldr r1, =0x0600f800 + bl LZ77UnCompVram + adds r5, 0x8 + adds r4, r5 + ldr r0, [r4] + movs r1, 0xA0 + lsls r1, 19 + ldr r2, =0x04000040 + bl CpuSet + movs r0, 0 + bl ShowBg + movs r0, 0x1 + bl ShowBg + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BF7E8 + + thumb_func_start sub_81BF8D8 +sub_81BF8D8: @ 81BF8D8 + push {lr} + movs r0, 0 + bl HideBg + movs r0, 0x1 + bl HideBg + pop {r0} + bx r0 + thumb_func_end sub_81BF8D8 + + thumb_func_start sub_81BF8EC +sub_81BF8EC: @ 81BF8EC + push {r4-r7,lr} + mov r7, r8 + push {r7} + mov r8, r1 + adds r5, r2, 0 + adds r6, r3, 0 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + ldr r4, =gUnknown_0203CF1C + ldr r0, =0x000040f8 + bl AllocZeroed + str r0, [r4] + ldr r1, =0x000040bc + adds r0, r1 + strb r7, [r0] + ldr r0, [r4] + mov r2, r8 + str r2, [r0] + adds r1, 0x2 + adds r0, r1 + strb r5, [r0] + ldr r0, [r4] + ldr r2, =0x000040bf + adds r0, r2 + strb r6, [r0] + ldr r1, [r4] + ldr r0, [sp, 0x18] + str r0, [r1, 0x4] + cmp r7, 0x2 + bne _081BF94C + subs r2, 0x2 + adds r1, r2 + movs r0, 0x1 + b _081BF952 + .pool +_081BF94C: + ldr r0, =0x000040bd + adds r1, r0 + movs r0, 0 +_081BF952: + strb r0, [r1] + cmp r7, 0x1 + beq _081BF9A0 + cmp r7, 0x1 + bgt _081BF96C + cmp r7, 0 + beq _081BF97C + ldr r2, =gUnknown_0203CF1C + b _081BF9EE + .pool +_081BF96C: + cmp r7, 0x2 + beq _081BF97C + cmp r7, 0x3 + beq _081BF9D0 + ldr r2, =gUnknown_0203CF1C + b _081BF9EE + .pool +_081BF97C: + ldr r2, =gUnknown_0203CF1C + ldr r0, [r2] + ldr r1, =0x000040c1 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldr r0, [r2] + ldr r1, =0x000040c2 + adds r0, r1 + movs r1, 0x3 + b _081BF9EC + .pool +_081BF9A0: + ldr r2, =gUnknown_0203CF1C + ldr r0, [r2] + ldr r1, =0x000040c1 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldr r0, [r2] + ldr r1, =0x000040c2 + adds r0, r1 + movs r1, 0x3 + strb r1, [r0] + ldr r0, [r2] + ldr r1, =0x000040c8 + adds r0, r1 + strb r7, [r0] + b _081BF9EE + .pool +_081BF9D0: + ldr r2, =gUnknown_0203CF1C + ldr r0, [r2] + ldr r1, =0x000040c1 + adds r0, r1 + movs r1, 0x2 + strb r1, [r0] + ldr r0, [r2] + ldr r1, =0x000040c2 + adds r0, r1 + strb r7, [r0] + ldr r0, [r2] + adds r1, 0x1 + adds r0, r1 + movs r1, 0x1 +_081BF9EC: + strb r1, [r0] +_081BF9EE: + ldr r0, [r2] + ldr r2, =0x000040c1 + adds r1, r0, r2 + ldrb r1, [r1] + subs r2, 0x1 + adds r0, r2 + strb r1, [r0] + movs r0, 0xFF + bl sub_81C488C + ldr r0, =gUnknown_020244D4 + ldr r0, [r0] + cmp r0, 0 + bne _081BFA12 + movs r0, 0 + movs r1, 0 + bl sub_806F2AC +_081BFA12: + ldr r0, =sub_81BFAE4 + bl SetMainCallback2 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BF8EC + + thumb_func_start sub_81BFA38 +sub_81BFA38: @ 81BFA38 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x4 + mov r8, r0 + adds r4, r1, 0 + adds r5, r2, 0 + ldr r6, [sp, 0x18] + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 16 + lsrs r6, 16 + str r3, [sp] + movs r0, 0x3 + mov r1, r8 + adds r2, r4, 0 + adds r3, r5, 0 + bl sub_81BF8EC + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040c4 + adds r0, r1 + strh r6, [r0] + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BFA38 + + thumb_func_start sub_81BFA80 +sub_81BFA80: @ 81BFA80 + push {r4,lr} + sub sp, 0x4 + ldr r4, [sp, 0xC] + lsls r0, 24 + lsrs r0, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + str r4, [sp] + bl sub_81BF8EC + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040ef + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BFA80 + + thumb_func_start sub_81BFAB4 +sub_81BFAB4: @ 81BFAB4 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl do_scheduled_bg_tilemap_copies_to_vram + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_81BFAB4 + + thumb_func_start sub_81BFAD0 +sub_81BFAD0: @ 81BFAD0 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_81BFAD0 + + thumb_func_start sub_81BFAE4 +sub_81BFAE4: @ 81BFAE4 + push {lr} +_081BFAE6: + bl sub_81221EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081BFB0A + bl sub_81BFB10 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081BFB0A + bl sub_81221AC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081BFAE6 +_081BFB0A: + pop {r0} + bx r0 + thumb_func_end sub_81BFAE4 + + thumb_func_start sub_81BFB10 +sub_81BFB10: @ 81BFB10 + push {r4,lr} + sub sp, 0x4 + ldr r0, =gMain + movs r1, 0x87 + lsls r1, 3 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x18 + bls _081BFB24 + b _081BFE00 +_081BFB24: + lsls r0, 2 + ldr r1, =_081BFB38 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081BFB38: + .4byte _081BFB9C + .4byte _081BFBAA + .4byte _081BFBBC + .4byte _081BFBD0 + .4byte _081BFBE4 + .4byte _081BFBEA + .4byte _081BFC04 + .4byte _081BFC20 + .4byte _081BFC26 + .4byte _081BFC38 + .4byte _081BFC58 + .4byte _081BFC7C + .4byte _081BFC82 + .4byte _081BFC94 + .4byte _081BFCAC + .4byte _081BFCC0 + .4byte _081BFCD8 + .4byte _081BFCF8 + .4byte _081BFD34 + .4byte _081BFD50 + .4byte _081BFD60 + .4byte _081BFD74 + .4byte _081BFD7A + .4byte _081BFDB0 + .4byte _081BFDCC +_081BFB9C: + bl SetVBlankHBlankCallbacksToNull + bl sub_8121DA0 + bl clear_scheduled_bg_copies_to_vram + b _081BFDE6 +_081BFBAA: + bl remove_some_task + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _081BFDEE + .pool +_081BFBBC: + bl ResetPaletteFade + ldr r2, =gPaletteFade + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + b _081BFDE4 + .pool +_081BFBD0: + bl ResetSpriteData + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _081BFDEE + .pool +_081BFBE4: + bl FreeAllSpritePalettes + b _081BFDE6 +_081BFBEA: + bl sub_81BFE24 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040f0 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + b _081BFDE6 + .pool +_081BFC04: + bl sub_81BFEB0 + lsls r0, 24 + cmp r0, 0 + bne _081BFC10 + b _081BFE18 +_081BFC10: + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _081BFDEE + .pool +_081BFC20: + bl sub_81C2554 + b _081BFDE6 +_081BFC26: + bl sub_81C1BA0 + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _081BFDEE + .pool +_081BFC38: + ldr r4, =gUnknown_0203CF1C + ldr r0, [r4] + adds r0, 0xC + bl sub_81C0098 + ldr r0, [r4] + ldr r1, =0x000040f0 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + b _081BFDE6 + .pool +_081BFC58: + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + adds r0, 0xC + bl sub_81C00F0 + lsls r0, 24 + cmp r0, 0 + bne _081BFC6A + b _081BFE18 +_081BFC6A: + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _081BFDEE + .pool +_081BFC7C: + bl sub_81C25E8 + b _081BFDE6 +_081BFC82: + bl sub_81C286C + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _081BFDEE + .pool +_081BFC94: + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040c0 + adds r0, r1 + ldrb r0, [r0] + bl sub_81C2D9C + b _081BFDE6 + .pool +_081BFCAC: + bl sub_81C0348 + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _081BFDEE + .pool +_081BFCC0: + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040c0 + adds r0, r1 + ldrb r0, [r0] + bl sub_81C2AFC + b _081BFDE6 + .pool +_081BFCD8: + bl sub_81C4190 + bl sub_81C42C8 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040f0 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + b _081BFDE6 + .pool +_081BFCF8: + ldr r4, =gUnknown_0203CF1C + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0xC + ldr r2, =0x000040f0 + adds r1, r2 + bl sub_81C45F4 + ldr r1, [r4] + ldr r2, =0x000040d3 + adds r1, r2 + strb r0, [r1] + ldr r1, [r4] + adds r2, r1, r2 + ldrb r0, [r2] + cmp r0, 0xFF + bne _081BFD1C + b _081BFE18 +_081BFD1C: + ldr r0, =0x000040f0 + adds r1, r0 + movs r0, 0 + strh r0, [r1] + b _081BFDE6 + .pool +_081BFD34: + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + adds r0, 0xC + bl sub_81C4984 + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _081BFDEE + .pool +_081BFD50: + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + adds r0, 0xC + bl sub_81C4A08 + b _081BFDE6 + .pool +_081BFD60: + bl sub_81C4A88 + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _081BFDEE + .pool +_081BFD74: + bl sub_81C4280 + b _081BFDE6 +_081BFD7A: + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040bc + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x3 + beq _081BFDA0 + ldr r0, =sub_81C0510 + movs r1, 0 + bl CreateTask + b _081BFDE6 + .pool +_081BFDA0: + ldr r0, =sub_81C171C + movs r1, 0 + bl CreateTask + b _081BFDE6 + .pool +_081BFDB0: + movs r0, 0x1 + negs r0, r0 + movs r1, 0x10 + movs r2, 0 + bl BlendPalettes + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _081BFDEE + .pool +_081BFDCC: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r2, =gPaletteFade + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 +_081BFDE4: + strb r0, [r2, 0x8] +_081BFDE6: + ldr r1, =gMain + movs r2, 0x87 + lsls r2, 3 + adds r1, r2 +_081BFDEE: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _081BFE18 + .pool +_081BFE00: + ldr r0, =sub_81BFAD0 + bl SetVBlankCallback + ldr r0, =sub_81BFAB4 + bl SetMainCallback2 + movs r0, 0x1 + b _081BFE1A + .pool +_081BFE18: + movs r0, 0 +_081BFE1A: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81BFB10 + + thumb_func_start sub_81BFE24 +sub_81BFE24: @ 81BFE24 + push {r4,lr} + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, =gUnknown_0861CBB4 + movs r0, 0 + movs r2, 0x4 + bl InitBgsFromTemplates + ldr r4, =gUnknown_0203CF1C + ldr r1, [r4] + ldr r0, =0x000020bc + adds r1, r0 + movs r0, 0x1 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, =0x000010bc + adds r1, r0 + movs r0, 0x2 + bl SetBgTilemapBuffer + ldr r1, [r4] + adds r1, 0xBC + movs r0, 0x3 + bl SetBgTilemapBuffer + bl sub_8121E10 + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0x3 + bl schedule_bg_copy_tilemap_to_vram + movs r1, 0x82 + lsls r1, 5 + movs r0, 0 + bl SetGpuReg + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0 + bl ShowBg + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + movs r0, 0x3 + bl ShowBg + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81BFE24 + + thumb_func_start sub_81BFEB0 +sub_81BFEB0: @ 81BFEB0 + push {r4,lr} + sub sp, 0x4 + ldr r1, =gUnknown_0203CF1C + ldr r0, [r1] + ldr r2, =0x000040f0 + adds r0, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + adds r4, r1, 0 + cmp r0, 0xC + bls _081BFEC8 + b _081C008C +_081BFEC8: + lsls r0, 2 + ldr r1, =_081BFEE0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081BFEE0: + .4byte _081BFF14 + .4byte _081BFF30 + .4byte _081BFF60 + .4byte _081BFF78 + .4byte _081BFF90 + .4byte _081BFFA8 + .4byte _081BFFC0 + .4byte _081BFFF0 + .4byte _081BFFFC + .4byte _081C0018 + .4byte _081C0024 + .4byte _081C0040 + .4byte _081C0064 +_081BFF14: + bl reset_temp_tile_data_buffers + ldr r1, =gUnknown_08D97D0C + movs r0, 0 + str r0, [sp] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + b _081C0046 + .pool +_081BFF30: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081BFF3E + b _081C008C +_081BFF3E: + ldr r0, =gUnknown_08D9862C + ldr r4, =gUnknown_0203CF1C + ldr r1, [r4] + adds r1, 0xBC + bl LZDecompressWram + ldr r1, [r4] + ldr r2, =0x000040f0 + adds r1, r2 + b _081C004E + .pool +_081BFF60: + ldr r0, =gUnknown_08D98CC8 + ldr r1, [r4] + ldr r2, =0x000008bc + adds r1, r2 + bl LZDecompressWram + ldr r1, [r4] + b _081C004A + .pool +_081BFF78: + ldr r0, =gUnknown_08D987FC + ldr r1, [r4] + ldr r2, =0x000018bc + adds r1, r2 + bl LZDecompressWram + ldr r1, [r4] + b _081C004A + .pool +_081BFF90: + ldr r0, =gUnknown_08D9898C + ldr r1, [r4] + ldr r2, =0x000028bc + adds r1, r2 + bl LZDecompressWram + ldr r1, [r4] + b _081C004A + .pool +_081BFFA8: + ldr r0, =gUnknown_08D98B28 + ldr r1, [r4] + ldr r2, =0x000038bc + adds r1, r2 + bl LZDecompressWram + ldr r1, [r4] + b _081C004A + .pool +_081BFFC0: + ldr r0, =gUnknown_08D9853C + movs r2, 0x80 + lsls r2, 1 + movs r1, 0 + bl LoadCompressedPalette + ldr r0, =gUnknown_08D85620 + movs r1, 0x81 + movs r2, 0x1E + bl LoadPalette + ldr r0, =gUnknown_0203CF1C + ldr r1, [r0] + ldr r2, =0x000040f0 + adds r1, r2 + b _081C004E + .pool +_081BFFF0: + ldr r0, =gUnknown_0861CFBC + bl LoadCompressedObjectPic + b _081C0046 + .pool +_081BFFFC: + ldr r0, =gUnknown_0861D074 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_0203CF1C + ldr r1, [r0] + ldr r2, =0x000040f0 + adds r1, r2 + b _081C004E + .pool +_081C0018: + ldr r0, =gUnknown_0861D0F8 + bl LoadCompressedObjectPic + b _081C0046 + .pool +_081C0024: + ldr r0, =gUnknown_0861D100 + bl LoadCompressedObjectPalette + ldr r0, =gUnknown_0203CF1C + ldr r1, [r0] + ldr r2, =0x000040f0 + adds r1, r2 + b _081C004E + .pool +_081C0040: + ldr r0, =gUnknown_0861D07C + bl LoadCompressedObjectPalette +_081C0046: + ldr r0, =gUnknown_0203CF1C + ldr r1, [r0] +_081C004A: + ldr r0, =0x000040f0 + adds r1, r0 +_081C004E: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _081C008C + .pool +_081C0064: + ldr r0, =gUnknown_08D97B84 + movs r1, 0xE8 + lsls r1, 1 + movs r2, 0x60 + bl LoadCompressedPalette + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040f0 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + movs r0, 0x1 + b _081C008E + .pool +_081C008C: + movs r0, 0 +_081C008E: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81BFEB0 + + thumb_func_start sub_81C0098 +sub_81C0098: @ 81C0098 + push {r4,lr} + adds r3, r0, 0 + ldr r0, =gUnknown_0203CF1C + ldr r1, [r0] + ldr r2, =0x000040bd + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _081C00D0 + ldr r2, [r1] + ldr r4, =0x000040be + adds r0, r1, r4 + ldrb r1, [r0] + movs r0, 0x64 + muls r1, r0 + adds r1, r2 + adds r0, r3, 0 + movs r2, 0x64 + bl memcpy + b _081C00E6 + .pool +_081C00D0: + ldr r0, [r1] + ldr r2, =0x000040be + adds r1, r2 + ldrb r2, [r1] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + adds r0, r1 + adds r1, r3, 0 + bl sub_8069004 +_081C00E6: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C0098 + + thumb_func_start sub_81C00F0 +sub_81C00F0: @ 81C00F0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r5, r0, 0 + ldr r0, =gUnknown_0203CF1C + ldr r7, [r0] + adds r6, r7, 0 + adds r6, 0x70 + ldr r1, =0x000040f0 + adds r0, r7, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0x1 + beq _081C0198 + cmp r0, 0x1 + bgt _081C0120 + cmp r0, 0 + beq _081C012C + b _081C0314 + .pool +_081C0120: + cmp r0, 0x2 + beq _081C01DC + cmp r0, 0x3 + bne _081C012A + b _081C02A8 +_081C012A: + b _081C0314 +_081C012C: + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + strh r0, [r6] + adds r0, r5, 0 + movs r1, 0x41 + bl GetMonData + strh r0, [r6, 0x2] + adds r0, r5, 0 + movs r1, 0x19 + bl GetMonData + str r0, [r6, 0x10] + adds r0, r5, 0 + movs r1, 0x38 + bl GetMonData + strb r0, [r6, 0x5] + adds r0, r5, 0 + movs r1, 0x2E + bl GetMonData + strb r0, [r6, 0x8] + adds r0, r5, 0 + movs r1, 0xC + bl GetMonData + strh r0, [r6, 0x2E] + adds r0, r5, 0 + movs r1, 0 + bl GetMonData + str r0, [r6, 0xC] + adds r0, r5, 0 + movs r1, 0x4 + bl GetMonData + adds r1, r7, 0 + adds r1, 0xA5 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + beq _081C018C + movs r0, 0x1 + strb r0, [r6, 0x4] + b _081C0322 +_081C018C: + adds r0, r5, 0 + movs r1, 0x2D + bl GetMonData + strb r0, [r6, 0x4] + b _081C0322 +_081C0198: + movs r4, 0 + movs r0, 0x8C + adds r0, r7 + mov r8, r0 + movs r1, 0xA4 + adds r1, r7 + mov r9, r1 + adds r6, r7, 0 + adds r6, 0x84 +_081C01AA: + adds r1, r4, 0 + adds r1, 0xD + adds r0, r5, 0 + bl GetMonData + strh r0, [r6] + adds r1, r4, 0 + adds r1, 0x11 + adds r0, r5, 0 + bl GetMonData + mov r2, r8 + adds r1, r2, r4 + strb r0, [r1] + adds r6, 0x2 + adds r4, 0x1 + cmp r4, 0x3 + bls _081C01AA + adds r0, r5, 0 + movs r1, 0x15 + bl GetMonData + mov r1, r9 + strb r0, [r1] + b _081C0322 +_081C01DC: + ldr r1, [r7] + ldr r0, =gPlayerParty + cmp r1, r0 + beq _081C01F8 + ldr r2, =0x000040bc + adds r0, r7, r2 + ldrb r0, [r0] + cmp r0, 0x2 + beq _081C01F8 + ldr r1, =0x000040ef + adds r0, r7, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _081C0254 +_081C01F8: + adds r0, r5, 0 + bl GetNature + adds r1, r6, 0 + adds r1, 0x33 + strb r0, [r1] + adds r0, r5, 0 + movs r1, 0x39 + bl GetMonData + strh r0, [r6, 0x20] + adds r0, r5, 0 + movs r1, 0x3A + bl GetMonData + strh r0, [r6, 0x22] + adds r0, r5, 0 + movs r1, 0x3B + bl GetMonData + strh r0, [r6, 0x24] + adds r0, r5, 0 + movs r1, 0x3C + bl GetMonData + strh r0, [r6, 0x26] + adds r0, r5, 0 + movs r1, 0x3E + bl GetMonData + strh r0, [r6, 0x28] + adds r0, r5, 0 + movs r1, 0x3F + bl GetMonData + strh r0, [r6, 0x2A] + adds r0, r5, 0 + movs r1, 0x3D + b _081C02A0 + .pool +_081C0254: + adds r0, r5, 0 + bl GetNature + adds r1, r7, 0 + adds r1, 0xA3 + strb r0, [r1] + adds r0, r5, 0 + movs r1, 0x39 + bl GetMonData + strh r0, [r6, 0x20] + adds r0, r5, 0 + movs r1, 0x3A + bl GetMonData + strh r0, [r6, 0x22] + adds r0, r5, 0 + movs r1, 0x54 + bl GetMonData + strh r0, [r6, 0x24] + adds r0, r5, 0 + movs r1, 0x55 + bl GetMonData + strh r0, [r6, 0x26] + adds r0, r5, 0 + movs r1, 0x57 + bl GetMonData + strh r0, [r6, 0x28] + adds r0, r5, 0 + movs r1, 0x58 + bl GetMonData + strh r0, [r6, 0x2A] + adds r0, r5, 0 + movs r1, 0x56 +_081C02A0: + bl GetMonData + strh r0, [r6, 0x2C] + b _081C0322 +_081C02A8: + adds r4, r7, 0 + adds r4, 0xA6 + adds r0, r5, 0 + movs r1, 0x7 + adds r2, r4, 0 + bl GetMonData + adds r0, r5, 0 + movs r1, 0x3 + bl GetMonData + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl ConvertInternationalString + adds r0, r5, 0 + bl sub_81B205C + strb r0, [r6, 0x7] + adds r0, r5, 0 + movs r1, 0x31 + bl GetMonData + adds r1, r7, 0 + adds r1, 0xA2 + strb r0, [r1] + adds r0, r5, 0 + movs r1, 0x1 + bl GetMonData + str r0, [r6, 0x48] + adds r0, r5, 0 + movs r1, 0x23 + bl GetMonData + strb r0, [r6, 0x9] + adds r0, r5, 0 + movs r1, 0x24 + bl GetMonData + strb r0, [r6, 0xA] + adds r0, r5, 0 + movs r1, 0x25 + bl GetMonData + strb r0, [r6, 0xB] + adds r0, r5, 0 + movs r1, 0x20 + bl GetMonData + strh r0, [r6, 0x30] + b _081C0322 +_081C0314: + adds r0, r5, 0 + movs r1, 0x52 + bl GetMonData + strb r0, [r6, 0x6] + movs r0, 0x1 + b _081C0332 +_081C0322: + ldr r0, =gUnknown_0203CF1C + ldr r1, [r0] + ldr r2, =0x000040f0 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0 +_081C0332: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81C00F0 + + thumb_func_start sub_81C0348 +sub_81C0348: @ 81C0348 + push {r4-r6,lr} + ldr r6, =gUnknown_0203CF1C + ldr r2, [r6] + ldr r1, =0x000040c0 + adds r0, r2, r1 + ldrb r0, [r0] + subs r0, 0x2 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bls _081C037C + movs r0, 0 + movs r1, 0xFF + bl sub_81C1DA4 + movs r0, 0 + movs r1, 0xFF + movs r2, 0 + bl sub_81C1EFC + b _081C03D8 + .pool +_081C037C: + ldr r1, =0x000040c6 + adds r0, r2, r1 + ldrb r1, [r0] + lsls r1, 1 + adds r0, r2, 0 + adds r0, 0x84 + adds r0, r1 + ldrh r0, [r0] + bl sub_81C240C + ldr r0, [r6] + ldr r5, =0x000020bc + adds r0, r5 + movs r1, 0x3 + movs r2, 0 + bl sub_81C2194 + ldr r0, [r6] + ldr r4, =0x000030bc + adds r0, r4 + movs r1, 0x1 + movs r2, 0 + bl sub_81C2194 + ldr r1, [r6] + adds r1, r4 + movs r0, 0x1 + bl SetBgTilemapBuffer + ldr r1, [r6] + adds r1, r5 + movs r0, 0x2 + bl SetBgTilemapBuffer + movs r1, 0x80 + lsls r1, 9 + movs r0, 0x2 + movs r2, 0x1 + bl ChangeBgX + movs r0, 0x13 + bl ClearWindowTilemap + movs r0, 0xD + bl ClearWindowTilemap +_081C03D8: + ldr r0, =gUnknown_0203CF1C + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x77 + ldrb r0, [r0] + cmp r0, 0 + bne _081C0400 + movs r0, 0 + movs r1, 0xFF + bl sub_81C2074 + b _081C0416 + .pool +_081C0400: + ldr r2, =0x000040c0 + adds r0, r1, r2 + ldrb r0, [r0] + subs r0, 0x2 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bls _081C0416 + movs r0, 0xD + bl PutWindowTilemap +_081C0416: + bl sub_81C2524 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + adds r0, 0xC + bl sub_81C2228 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C0348 + + thumb_func_start sub_81C0434 +sub_81C0434: @ 81C0434 + push {lr} + bl FreeAllWindowBuffers + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + bl Free + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C0434 + + thumb_func_start sub_81C044C +sub_81C044C: @ 81C044C + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81C0484 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C044C + + thumb_func_start sub_81C0484 +sub_81C0484: @ 81C0484 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + bl sub_81221EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081C04EC + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081C04EC + ldr r4, =gUnknown_0203CF1C + ldr r0, [r4] + ldr r0, [r0, 0x4] + bl SetMainCallback2 + ldr r1, =gUnknown_0203CF20 + ldr r0, [r4] + ldr r2, =0x000040be + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1] + bl sub_81C4898 + bl ResetSpriteData + bl FreeAllSpritePalettes + bl StopCryAndClearCrySongs + ldr r0, =gMPlay_BGM + ldr r1, =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl + ldr r0, =gUnknown_020244D4 + ldr r0, [r0] + cmp r0, 0 + bne _081C04E2 + movs r0, 0 + bl sub_806F47C +_081C04E2: + bl sub_81C0434 + adds r0, r5, 0 + bl DestroyTask +_081C04EC: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C0484 + + thumb_func_start sub_81C0510 +sub_81C0510: @ 81C0510 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_81221EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081C05FE + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r2, 0x80 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _081C05FE + ldr r5, =gMain + ldrh r1, [r5, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081C0550 + movs r1, 0x1 + negs r1, r1 + adds r0, r4, 0 + bl sub_81C0604 + b _081C05FE + .pool +_081C0550: + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _081C0562 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81C0604 + b _081C05FE +_081C0562: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _081C0576 + bl GetLRKeysState + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081C0582 +_081C0576: + movs r1, 0x1 + negs r1, r1 + adds r0, r4, 0 + bl sub_81C0A8C + b _081C05FE +_081C0582: + ldrh r1, [r5, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _081C0598 + bl GetLRKeysState + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _081C05A2 +_081C0598: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81C0A8C + b _081C05FE +_081C05A2: + ldrh r1, [r5, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081C05E6 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040c0 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _081C05FE + cmp r0, 0 + bne _081C05D8 + bl sub_81C48F0 + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_81C044C + b _081C05FE + .pool +_081C05D8: + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_81C0E48 + b _081C05FE +_081C05E6: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081C05FE + bl sub_81C48F0 + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_81C044C +_081C05FE: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81C0510 + + thumb_func_start sub_81C0604 +sub_81C0604: @ 81C0604 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + adds r4, r5, 0 + ldr r1, =gUnknown_0203CF1C + ldr r3, [r1] + ldr r2, =0x000040c3 + adds r0, r3, r2 + ldrb r0, [r0] + adds r6, r1, 0 + cmp r0, 0 + bne _081C06EE + ldr r1, =0x000040bd + adds r0, r3, r1 + ldrb r2, [r0] + cmp r2, 0x1 + bne _081C0678 + adds r1, 0x3 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _081C0654 + lsls r1, r5, 24 + asrs r1, 24 + movs r4, 0x2 + eors r1, r2 + negs r0, r1 + orrs r0, r1 + asrs r0, 31 + ands r4, r0 + b _081C065C + .pool +_081C0654: + movs r4, 0x3 + cmp r5, 0x1 + bne _081C065C + movs r4, 0x1 +_081C065C: + ldr r2, [r6] + ldr r0, [r2] + ldr r3, =0x000040be + adds r1, r2, r3 + ldrb r1, [r1] + adds r3, 0x1 + adds r2, r3 + ldrb r2, [r2] + adds r3, r4, 0 + bl sub_80D214C + b _081C0696 + .pool +_081C0678: + bl sub_81B1250 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081C068E + lsls r0, r5, 24 + asrs r0, 24 + bl sub_81C09B4 + b _081C0696 +_081C068E: + lsls r0, r4, 24 + asrs r0, 24 + bl sub_81C08F8 +_081C0696: + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _081C06EE + movs r0, 0x5 + bl PlaySE + ldr r5, =gUnknown_0203CF1C + ldr r0, [r5] + adds r0, 0x77 + ldrb r0, [r0] + cmp r0, 0 + beq _081C06D4 + movs r0, 0x2 + movs r1, 0x1 + bl sub_81C4204 + movs r0, 0xD + bl ClearWindowTilemap + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0 + movs r1, 0x2 + bl sub_81C2074 +_081C06D4: + ldr r0, [r5] + ldr r1, =0x000040be + adds r0, r1 + movs r2, 0 + strb r4, [r0] + ldr r1, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + strh r2, [r0, 0x8] + ldr r1, =sub_81C0704 + str r1, [r0] +_081C06EE: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C0604 + + thumb_func_start sub_81C0704 +sub_81C0704: @ 81C0704 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r4, r1, 3 + ldr r6, =gTasks + 0x8 + adds r5, r4, r6 + movs r1, 0 + ldrsh r0, [r5, r1] + cmp r0, 0xC + bls _081C071E + b _081C08BC +_081C071E: + lsls r0, 2 + ldr r1, =_081C0730 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081C0730: + .4byte _081C0764 + .4byte _081C076A + .4byte _081C0780 + .4byte _081C07A8 + .4byte _081C07C8 + .4byte _081C07E0 + .4byte _081C07F0 + .4byte _081C0800 + .4byte _081C0828 + .4byte _081C086C + .4byte _081C0872 + .4byte _081C0878 + .4byte _081C0894 +_081C0764: + bl StopCryAndClearCrySongs + b _081C08EC +_081C076A: + bl sub_81C4898 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040d3 + b _081C0786 + .pool +_081C0780: + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040d4 +_081C0786: + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + bl DestroySpriteAndFreeResources + b _081C08EC + .pool +_081C07A8: + ldr r4, =gUnknown_0203CF1C + ldr r0, [r4] + adds r0, 0xC + bl sub_81C0098 + ldr r0, [r4] + ldr r1, =0x000040f0 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + b _081C08EC + .pool +_081C07C8: + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + adds r0, 0xC + bl sub_81C00F0 + lsls r0, 24 + cmp r0, 0 + bne _081C07DA + b _081C08F2 +_081C07DA: + b _081C08EC + .pool +_081C07E0: + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + adds r0, 0xC + bl sub_81C49E0 + b _081C08EC + .pool +_081C07F0: + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + adds r0, 0xC + bl sub_81C4A08 + b _081C08EC + .pool +_081C0800: + ldr r4, =gUnknown_0203CF1C + ldr r0, [r4] + adds r0, 0x77 + ldrb r0, [r0] + cmp r0, 0 + beq _081C0816 + movs r1, 0x2 + negs r1, r1 + movs r0, 0xA + bl sub_81C2074 +_081C0816: + ldr r0, [r4] + adds r0, 0xC + bl sub_81C2228 + movs r0, 0 + strh r0, [r5, 0x2] + b _081C08EC + .pool +_081C0828: + ldr r4, =gUnknown_0203CF1C + ldr r0, [r4] + adds r0, 0xC + adds r1, r5, 0x2 + bl sub_81C45F4 + ldr r1, [r4] + ldr r2, =0x000040d3 + adds r1, r2 + strb r0, [r1] + ldr r0, [r4] + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0xFF + beq _081C08F2 + ldr r2, =gSprites + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x1 + strh r1, [r0, 0x32] + bl sub_81C0E24 + movs r0, 0 + strh r0, [r5, 0x2] + b _081C08EC + .pool +_081C086C: + bl sub_81C4280 + b _081C08EC +_081C0872: + bl sub_81C25E8 + b _081C08EC +_081C0878: + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040c0 + adds r0, r1 + ldrb r0, [r0] + bl sub_81C2D9C + bl sub_81C2524 + b _081C08EC + .pool +_081C0894: + ldr r2, =gSprites + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040d3 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strh r1, [r0, 0x32] + b _081C08EC + .pool +_081C08BC: + bl sub_81221EC + lsls r0, 24 + cmp r0, 0 + bne _081C08F2 + ldr r0, =sub_81C20F0 + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _081C08F2 + strh r0, [r5] + adds r0, r6, 0 + subs r0, 0x8 + adds r0, r4, r0 + ldr r1, =sub_81C0510 + str r1, [r0] + b _081C08F2 + .pool +_081C08EC: + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] +_081C08F2: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81C0704 + + thumb_func_start sub_81C08F8 +sub_81C08F8: @ 81C08F8 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, =gUnknown_0203CF1C + ldr r2, [r1] + ldr r7, [r2] + ldr r3, =0x000040c0 + adds r0, r2, r3 + ldrb r0, [r0] + adds r5, r1, 0 + cmp r0, 0 + bne _081C0960 + lsls r0, r4, 24 + asrs r3, r0, 24 + movs r1, 0x1 + negs r1, r1 + adds r6, r0, 0 + cmp r3, r1 + bne _081C0928 + ldr r1, =0x000040be + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _081C0988 +_081C0928: + asrs r0, r6, 24 + cmp r0, 0x1 + bne _081C0940 + ldr r0, [r5] + ldr r2, =0x000040be + adds r1, r0, r2 + ldr r3, =0x000040bf + adds r0, r3 + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bcs _081C0988 +_081C0940: + ldr r0, [r5] + ldr r1, =0x000040be + adds r0, r1 + ldrb r0, [r0] + adds r0, r4 + lsls r0, 24 + asrs r0, 24 + b _081C09AE + .pool +_081C0960: + ldr r3, =0x000040be + adds r0, r2, r3 + ldrb r5, [r0] + lsls r6, r4, 24 +_081C0968: + lsls r0, r5, 24 + asrs r0, 24 + asrs r1, r6, 24 + adds r0, r1 + lsls r0, 24 + lsrs r5, r0, 24 + asrs r4, r0, 24 + cmp r4, 0 + blt _081C0988 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040bf + adds r0, r1 + ldrb r0, [r0] + cmp r4, r0 + ble _081C099C +_081C0988: + movs r0, 0x1 + negs r0, r0 + b _081C09AE + .pool +_081C099C: + movs r0, 0x64 + muls r0, r4 + adds r0, r7, r0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _081C0968 + adds r0, r4, 0 +_081C09AE: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81C08F8 + + thumb_func_start sub_81C09B4 +sub_81C09B4: @ 81C09B4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + ldr r6, =gUnknown_0203CF1C + ldr r0, [r6] + ldr r1, [r0] + mov r8, r1 + movs r5, 0 + movs r2, 0 + ldr r3, =gUnknown_0861CC1C + movs r1, 0 + ldrsb r1, [r3, r1] + ldr r4, =0x000040be + adds r0, r4 + ldrb r0, [r0] + cmp r1, r0 + beq _081C09FC + adds r7, r3, 0 + adds r3, r4, 0 +_081C09E0: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x5 + bhi _081C09FC + adds r0, r2, r7 + movs r1, 0 + ldrsb r1, [r0, r1] + ldr r0, [r6] + adds r0, r3 + ldrb r0, [r0] + cmp r1, r0 + bne _081C09E0 + adds r5, r2, 0 +_081C09FC: + mov r0, r12 + lsls r6, r0, 24 + ldr r7, =gUnknown_0861CC1C +_081C0A02: + lsls r0, r5, 24 + asrs r0, 24 + asrs r1, r6, 24 + adds r0, r1 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, r5, 24 + lsrs r0, r1, 24 + cmp r0, 0x5 + bhi _081C0A40 + asrs r0, r1, 24 + adds r0, r7 + movs r4, 0 + ldrsb r4, [r0, r4] + movs r0, 0x64 + muls r0, r4 + add r0, r8 + bl sub_81C0A50 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081C0A02 + adds r0, r4, 0 + b _081C0A44 + .pool +_081C0A40: + movs r0, 0x1 + negs r0, r0 +_081C0A44: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81C09B4 + + thumb_func_start sub_81C0A50 +sub_81C0A50: @ 81C0A50 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _081C0A84 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040be + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _081C0A78 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _081C0A84 +_081C0A78: + movs r0, 0x1 + b _081C0A86 + .pool +_081C0A84: + movs r0, 0 +_081C0A86: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81C0A50 + + thumb_func_start sub_81C0A8C +sub_81C0A8C: @ 81C0A8C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 24 + lsrs r6, r0, 24 + str r6, [sp] + lsls r1, 24 + lsrs r3, r1, 24 + str r3, [sp, 0x4] + ldr r0, =gUnknown_0203CF1C + mov r8, r0 + ldr r2, [r0] + adds r1, r2, 0 + adds r1, 0x70 + lsls r0, r6, 2 + adds r0, r6 + lsls r7, r0, 3 + ldr r0, =gTasks + 0x8 + mov r9, r0 + adds r0, r7, r0 + str r0, [sp, 0x8] + ldrb r1, [r1, 0x4] + mov r10, r1 + cmp r1, 0 + bne _081C0B6E + lsls r0, r3, 24 + asrs r5, r0, 24 + movs r0, 0x1 + negs r0, r0 + cmp r5, r0 + bne _081C0AE0 + ldr r1, =0x000040c0 + adds r0, r2, r1 + ldr r3, =0x000040c1 + adds r1, r2, r3 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _081C0B6E +_081C0AE0: + cmp r5, 0x1 + bne _081C0AF4 + ldr r1, =0x000040c0 + adds r0, r2, r1 + ldr r3, =0x000040c2 + adds r1, r2, r3 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _081C0B6E +_081C0AF4: + movs r0, 0x5 + bl PlaySE + mov r1, r8 + ldr r0, [r1] + ldr r4, =0x000040c0 + adds r0, r4 + ldrb r0, [r0] + bl sub_81C2C38 + mov r2, r8 + ldr r1, [r2] + adds r1, r4 + ldrb r0, [r1] + ldr r3, [sp, 0x4] + adds r0, r3 + strb r0, [r1] + mov r1, r10 + ldr r0, [sp, 0x8] + strh r1, [r0] + cmp r5, 0x1 + bne _081C0B4C + ldr r1, =sub_81C0B8C + mov r0, r9 + subs r0, 0x8 + adds r0, r7, r0 + ldr r2, [r0] + adds r0, r6, 0 + bl SetTaskFuncWithFollowupFunc + b _081C0B5C + .pool +_081C0B4C: + ldr r1, =sub_81C0CC4 + mov r0, r9 + subs r0, 0x8 + adds r0, r7, r0 + ldr r2, [r0] + ldr r0, [sp] + bl SetTaskFuncWithFollowupFunc +_081C0B5C: + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r2, =0x000040c0 + adds r0, r2 + ldrb r0, [r0] + bl sub_81C2DE4 + bl sub_81C424C +_081C0B6E: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C0A8C + + thumb_func_start sub_81C0B8C +sub_81C0B8C: @ 81C0B8C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _081C0C2A + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r3, =0x000040c9 + adds r0, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _081C0BE0 + movs r0, 0x1 + strh r0, [r4, 0x2] + movs r0, 0x1 + movs r1, 0x7 + movs r2, 0x1 + bl SetBgAttribute + movs r0, 0x2 + movs r1, 0x7 + movs r2, 0x2 + bl SetBgAttribute + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + b _081C0BFE + .pool +_081C0BE0: + movs r0, 0x2 + strh r0, [r4, 0x2] + movs r0, 0x2 + movs r1, 0x7 + movs r2, 0x1 + bl SetBgAttribute + movs r0, 0x1 + movs r1, 0x7 + movs r2, 0x2 + bl SetBgAttribute + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram +_081C0BFE: + ldrb r0, [r4, 0x2] + movs r1, 0 + movs r2, 0 + bl ChangeBgX + ldrb r0, [r4, 0x2] + ldr r1, =gUnknown_0203CF1C + ldr r1, [r1] + ldr r3, =0x000040c0 + adds r2, r1, r3 + ldrb r2, [r2] + lsls r2, 12 + adds r2, 0xBC + adds r1, r2 + bl SetBgTilemapBuffer + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg +_081C0C2A: + ldrb r0, [r4, 0x2] + movs r1, 0x80 + lsls r1, 6 + movs r2, 0x1 + bl ChangeBgX + ldrh r0, [r4] + adds r0, 0x20 + strh r0, [r4] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _081C0C52 + ldr r0, =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81C0C68 + str r0, [r1] +_081C0C52: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C0B8C + + thumb_func_start sub_81C0C68 +sub_81C0C68: @ 81C0C68 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r2, r4, 2 + adds r2, r4 + lsls r2, 3 + ldr r0, =gTasks + 0x8 + adds r2, r0 + ldr r5, =gUnknown_0203CF1C + ldr r3, [r5] + ldr r0, =0x000040c9 + adds r3, r0 + ldrb r0, [r3] + movs r1, 0x1 + eors r0, r1 + movs r1, 0 + strb r0, [r3] + strh r1, [r2, 0x2] + strh r1, [r2] + bl sub_81C1BA0 + ldr r0, [r5] + ldr r1, =0x000040c0 + adds r0, r1 + ldrb r0, [r0] + bl sub_81C2AFC + bl sub_81C4280 + bl sub_81C0E24 + adds r0, r4, 0 + bl SwitchTaskToFollowupFunc + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C0C68 + + thumb_func_start sub_81C0CC4 +sub_81C0CC4: @ 81C0CC4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _081C0D0C + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040c9 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _081C0CFC + movs r0, 0x2 + b _081C0CFE + .pool +_081C0CFC: + movs r0, 0x1 +_081C0CFE: + strh r0, [r4, 0x2] + ldrb r0, [r4, 0x2] + movs r1, 0x80 + lsls r1, 9 + movs r2, 0 + bl ChangeBgX +_081C0D0C: + ldrb r0, [r4, 0x2] + movs r1, 0x80 + lsls r1, 6 + movs r2, 0x2 + bl ChangeBgX + ldrh r0, [r4] + adds r0, 0x20 + strh r0, [r4] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _081C0D34 + ldr r0, =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81C0D44 + str r0, [r1] +_081C0D34: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C0CC4 + + thumb_func_start sub_81C0D44 +sub_81C0D44: @ 81C0D44 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040c9 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _081C0D8C + movs r0, 0x1 + movs r1, 0x7 + movs r2, 0x1 + bl SetBgAttribute + movs r0, 0x2 + movs r1, 0x7 + movs r2, 0x2 + bl SetBgAttribute + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + b _081C0DA6 + .pool +_081C0D8C: + movs r0, 0x2 + movs r1, 0x7 + movs r2, 0x1 + bl SetBgAttribute + movs r0, 0x1 + movs r1, 0x7 + movs r2, 0x2 + bl SetBgAttribute + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram +_081C0DA6: + ldr r6, =gUnknown_0203CF1C + ldr r2, [r6] + ldr r7, =0x000040c0 + adds r1, r2, r7 + ldrb r0, [r1] + cmp r0, 0x1 + bls _081C0DD0 + ldrb r0, [r4, 0x2] + ldrb r1, [r1] + lsls r1, 12 + ldr r3, =0xfffff0bc + adds r1, r3 + adds r1, r2, r1 + bl SetBgTilemapBuffer + ldrb r0, [r4, 0x2] + movs r1, 0x80 + lsls r1, 9 + movs r2, 0 + bl ChangeBgX +_081C0DD0: + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + ldr r2, [r6] + ldr r0, =0x000040c9 + adds r2, r0 + ldrb r0, [r2] + movs r1, 0x1 + eors r0, r1 + movs r1, 0 + strb r0, [r2] + strh r1, [r4, 0x2] + strh r1, [r4] + bl sub_81C1BA0 + ldr r0, [r6] + adds r0, r7 + ldrb r0, [r0] + bl sub_81C2AFC + bl sub_81C4280 + bl sub_81C0E24 + adds r0, r5, 0 + bl SwitchTaskToFollowupFunc + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C0D44 + + thumb_func_start sub_81C0E24 +sub_81C0E24: @ 81C0E24 + push {lr} + ldr r0, =gUnknown_0203CF1C + ldr r1, [r0] + ldr r2, =0x000040c0 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0x1 + bne _081C0E3C + adds r0, r1, 0 + adds r0, 0xC + bl sub_81C22CC +_081C0E3C: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C0E24 + + thumb_func_start sub_81C0E48 +sub_81C0E48: @ 81C0E48 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r5, =gUnknown_0203CF1C + ldr r0, [r5] + ldr r2, =0x000040c6 + adds r0, r2 + movs r1, 0 + strb r1, [r0] + ldr r1, [r5] + adds r2, r1, r2 + ldrb r0, [r2] + lsls r0, 1 + adds r1, 0x84 + adds r1, r0 + ldrh r6, [r1] + mov r8, r6 + movs r0, 0x13 + bl ClearWindowTilemap + ldr r2, =gSprites + ldr r0, [r5] + ldr r1, =0x000040d5 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + blt _081C0E96 + movs r0, 0xD + bl ClearWindowTilemap +_081C0E96: + movs r4, 0x3 + negs r4, r4 + movs r0, 0x9 + adds r1, r4, 0 + bl sub_81C1DA4 + movs r0, 0x9 + adds r1, r4, 0 + adds r2, r6, 0 + bl sub_81C1EFC + ldr r0, [r5] + ldr r1, =0x000040c8 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _081C0EC4 + movs r0, 0x5 + bl ClearWindowTilemap + movs r0, 0x6 + bl PutWindowTilemap +_081C0EC4: + ldr r0, [r5] + ldr r1, =0x000020bc + adds r0, r1 + movs r1, 0x3 + movs r2, 0 + bl sub_81C2194 + ldr r0, [r5] + ldr r1, =0x000030bc + adds r0, r1 + movs r1, 0x1 + movs r2, 0 + bl sub_81C2194 + mov r0, r8 + bl sub_81C3E9C + bl sub_81C3F44 + bl sub_81C44F0 + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0x8 + bl sub_81C4AF8 + ldr r1, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81C0F44 + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C0E48 + + thumb_func_start sub_81C0F44 +sub_81C0F44: @ 81C0F44 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r6, r5, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + bl sub_81221EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081C103A + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081C0F98 + movs r0, 0x4 + strh r0, [r4] + movs r1, 0x1 + negs r1, r1 + ldr r0, =gUnknown_0203CF1C + ldr r2, [r0] + ldr r0, =0x000040c6 + adds r2, r0 + adds r0, r4, 0 + bl sub_81C1070 + b _081C103A + .pool +_081C0F98: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081C0FC0 + movs r0, 0x4 + strh r0, [r4] + ldr r0, =gUnknown_0203CF1C + ldr r2, [r0] + ldr r0, =0x000040c6 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81C1070 + b _081C103A + .pool +_081C0FC0: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081C1026 + ldr r0, =gUnknown_0203CF1C + ldr r1, [r0] + ldr r2, =0x000040c8 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0x1 + beq _081C0FE8 + subs r2, 0x4 + adds r0, r1, r2 + ldr r0, [r0] + ldr r1, =0x00ffffff + ands r0, r1 + movs r1, 0x80 + lsls r1, 11 + cmp r0, r1 + bne _081C1004 +_081C0FE8: + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + bl sub_81C11F4 + b _081C103A + .pool +_081C1004: + bl sub_81C1040 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081C101E + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + bl sub_81C129C + b _081C103A +_081C101E: + movs r0, 0x20 + bl PlaySE + b _081C103A +_081C1026: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081C103A + movs r0, 0x5 + bl PlaySE + adds r0, r6, 0 + bl sub_81C11F4 +_081C103A: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81C0F44 + + thumb_func_start sub_81C1040 +sub_81C1040: @ 81C1040 + push {lr} + movs r1, 0x1 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + adds r2, r0, 0 + adds r2, 0x84 +_081C104C: + lsls r0, r1, 1 + adds r0, r2, r0 + ldrh r0, [r0] + cmp r0, 0 + beq _081C1060 + movs r0, 0x1 + b _081C106C + .pool +_081C1060: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bls _081C104C + movs r0, 0 +_081C106C: + pop {r1} + bx r1 + thumb_func_end sub_81C1040 + + thumb_func_start sub_81C1070 +sub_81C1070: @ 81C1070 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r7, r0, 0 + adds r4, r1, 0 + mov r8, r2 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x5 + bl PlaySE + mov r0, r8 + ldrb r6, [r0] + movs r2, 0 + lsls r4, 24 + asrs r4, 24 + mov r12, r4 + movs r1, 0 + ldrsh r4, [r7, r1] + ldrb r0, [r7] + lsls r3, r0, 24 +_081C109C: + lsls r0, r6, 24 + asrs r0, 24 + add r0, r12 + lsls r0, 24 + lsrs r6, r0, 24 + asrs r0, 24 + cmp r0, r4 + ble _081C10B0 + movs r6, 0 + b _081C10B6 +_081C10B0: + cmp r0, 0 + bge _081C10B6 + lsrs r6, r3, 24 +_081C10B6: + lsls r0, r6, 24 + asrs r1, r0, 24 + mov r9, r0 + cmp r1, 0x4 + bne _081C10C2 + b _081C11CC +_081C10C2: + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + lsls r1, 1 + adds r0, 0x84 + adds r0, r1 + ldrh r5, [r0] + cmp r5, 0 + bne _081C10E2 + lsls r0, r2, 24 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r2, r0, 24 + asrs r0, 24 + cmp r0, 0x3 + ble _081C109C +_081C10E2: + adds r0, r5, 0 + bl sub_81C240C + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + adds r0, r5, 0 + bl sub_81C3E9C + mov r1, r8 + ldrb r0, [r1] + cmp r0, 0x4 + bne _081C1110 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040c4 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0 + beq _081C1118 +_081C1110: + movs r1, 0x2 + ldrsh r0, [r7, r1] + cmp r0, 0x1 + bne _081C115E +_081C1118: + movs r0, 0x13 + bl ClearWindowTilemap + ldr r2, =gSprites + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040d5 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + blt _081C1142 + movs r0, 0xD + bl ClearWindowTilemap +_081C1142: + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + movs r4, 0x3 + negs r4, r4 + movs r0, 0x9 + adds r1, r4, 0 + bl sub_81C1DA4 + movs r0, 0x9 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_81C1EFC +_081C115E: + mov r1, r8 + ldrb r0, [r1] + cmp r0, 0x4 + beq _081C11A0 + mov r1, r9 + asrs r0, r1, 24 + cmp r0, 0x4 + bne _081C11A0 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040c4 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0 + bne _081C11A0 + movs r0, 0xE + bl ClearWindowTilemap + movs r0, 0xF + bl ClearWindowTilemap + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0 + movs r1, 0x3 + bl sub_81C1DA4 + movs r0, 0 + movs r1, 0x3 + movs r2, 0 + bl sub_81C1EFC +_081C11A0: + mov r0, r8 + strb r6, [r0] + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040c6 + adds r0, r1 + cmp r8, r0 + bne _081C11E0 + movs r0, 0x8 + bl sub_81C4D18 + b _081C11E6 + .pool +_081C11CC: + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040c4 + adds r0, r1 + ldrh r5, [r0] + b _081C10E2 + .pool +_081C11E0: + movs r0, 0x12 + bl sub_81C4D18 +_081C11E6: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81C1070 + + thumb_func_start sub_81C11F4 +sub_81C11F4: @ 81C11F4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0x8 + bl sub_81C4C60 + movs r0, 0x6 + bl ClearWindowTilemap + movs r0, 0x5 + bl PutWindowTilemap + movs r0, 0 + bl sub_81C3E9C + ldr r4, =gUnknown_0203CF1C + ldr r0, [r4] + ldr r1, =0x000020bc + adds r0, r1 + movs r1, 0x3 + movs r2, 0x1 + bl sub_81C2194 + ldr r0, [r4] + ldr r1, =0x000030bc + adds r0, r1 + movs r1, 0x1 + movs r2, 0x1 + bl sub_81C2194 + bl sub_81C4064 + ldr r0, [r4] + ldr r1, =0x000040c6 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x4 + beq _081C125E + movs r0, 0xE + bl ClearWindowTilemap + movs r0, 0xF + bl ClearWindowTilemap + movs r0, 0 + movs r1, 0x3 + bl sub_81C1DA4 + movs r0, 0 + movs r1, 0x3 + movs r2, 0 + bl sub_81C1EFC +_081C125E: + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + ldr r0, =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81C0510 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C11F4 + + thumb_func_start sub_81C129C +sub_81C129C: @ 81C129C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r2, =0x000040c6 + adds r1, r0, r2 + ldrb r1, [r1] + adds r2, 0x1 + adds r0, r2 + strb r1, [r0] + movs r0, 0x1 + bl sub_81C4C84 + movs r0, 0x12 + bl sub_81C4AF8 + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81C12E4 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C129C + + thumb_func_start sub_81C12E4 +sub_81C12E4: @ 81C12E4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r6, r5, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + bl sub_81221EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081C13AA + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081C1338 + movs r0, 0x3 + strh r0, [r4] + movs r1, 0x1 + negs r1, r1 + ldr r0, =gUnknown_0203CF1C + ldr r2, [r0] + ldr r0, =0x000040c7 + adds r2, r0 + adds r0, r4, 0 + bl sub_81C1070 + b _081C13AA + .pool +_081C1338: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081C1360 + movs r0, 0x3 + strh r0, [r4] + ldr r0, =gUnknown_0203CF1C + ldr r2, [r0] + ldr r0, =0x000040c7 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81C1070 + b _081C13AA + .pool +_081C1360: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081C139A + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r2, =0x000040c6 + adds r1, r0, r2 + adds r2, 0x1 + adds r0, r2 + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bne _081C1390 + adds r0, r5, 0 + movs r1, 0 + bl sub_81C13B0 + b _081C13AA + .pool +_081C1390: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_81C13B0 + b _081C13AA +_081C139A: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081C13AA + adds r0, r6, 0 + movs r1, 0 + bl sub_81C13B0 +_081C13AA: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81C12E4 + + thumb_func_start sub_81C13B0 +sub_81C13B0: @ 81C13B0 + push {r4-r7,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_81C4C84 + movs r0, 0x12 + bl sub_81C4C60 + cmp r4, 0x1 + bne _081C1464 + ldr r0, =gUnknown_0203CF1C + ldr r3, [r0] + ldr r1, =0x000040bd + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _081C1410 + ldr r0, [r3] + ldr r2, =0x000040be + adds r1, r3, r2 + ldrb r2, [r1] + movs r1, 0x64 + muls r1, r2 + adds r0, r1 + ldr r4, =0x000040c6 + adds r1, r3, r4 + ldrb r1, [r1] + adds r4, 0x1 + adds r2, r3, r4 + ldrb r2, [r2] + bl sub_81C14BC + b _081C1430 + .pool +_081C1410: + ldr r0, [r3] + ldr r2, =0x000040be + adds r1, r3, r2 + ldrb r2, [r1] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + adds r0, r1 + ldr r4, =0x000040c6 + adds r1, r3, r4 + ldrb r1, [r1] + adds r4, 0x1 + adds r2, r3, r4 + ldrb r2, [r2] + bl sub_81C15EC +_081C1430: + ldr r5, =gUnknown_0203CF1C + ldr r0, [r5] + adds r0, 0xC + bl sub_81C0098 + ldr r1, [r5] + ldr r6, =0x000040c6 + adds r0, r1, r6 + ldrb r0, [r0] + ldr r4, =0x000040c7 + adds r1, r4 + ldrb r1, [r1] + bl sub_81C40A0 + ldr r1, [r5] + adds r0, r1, r6 + ldrb r0, [r0] + adds r1, r4 + ldrb r1, [r1] + bl sub_81C4568 + ldr r0, [r5] + adds r4, r0, r4 + ldrb r1, [r4] + adds r0, r6 + strb r1, [r0] +_081C1464: + ldr r0, =gUnknown_0203CF1C + ldr r1, [r0] + ldr r2, =0x000040c6 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 1 + adds r1, 0x84 + adds r1, r0 + ldrh r4, [r1] + adds r0, r4, 0 + bl sub_81C3E9C + adds r0, r4, 0 + bl sub_81C240C + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + ldr r1, =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81C0F44 + str r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C13B0 + + thumb_func_start sub_81C14BC +sub_81C14BC: @ 81C14BC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x28 + adds r7, r0, 0 + adds r4, r1, 0 + adds r6, r2, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r6, 24 + lsrs r6, 24 + ldr r0, =gUnknown_0203CF1C + ldr r2, [r0] + lsls r0, r4, 1 + mov r10, r0 + adds r1, r2, 0 + adds r1, 0x84 + adds r0, r1, r0 + str r0, [sp, 0x8] + ldrh r0, [r0] + mov r3, sp + adds r3, 0x2 + str r3, [sp, 0x1C] + strh r0, [r3] + lsls r0, r6, 1 + mov r9, r0 + add r1, r9 + str r1, [sp, 0xC] + ldrh r1, [r1] + mov r0, sp + strh r1, [r0] + adds r1, r2, 0 + adds r1, 0x8C + adds r3, r1, r4 + str r3, [sp, 0x10] + ldrb r0, [r3] + mov r3, sp + adds r3, 0x5 + str r3, [sp, 0x24] + strb r0, [r3] + adds r1, r6 + str r1, [sp, 0x14] + ldrb r0, [r1] + mov r1, sp + adds r1, 0x4 + str r1, [sp, 0x20] + strb r0, [r1] + adds r2, 0xA4 + str r2, [sp, 0x18] + ldrb r0, [r2] + mov r5, sp + adds r5, 0x6 + strb r0, [r5] + ldr r1, =gUnknown_08329D22 + adds r0, r4, r1 + ldrb r0, [r0] + mov r8, r0 + ldrb r0, [r5] + adds r2, r0, 0 + mov r3, r8 + ands r2, r3 + mov r3, r10 + asrs r2, r3 + lsls r2, 24 + lsrs r2, 24 + adds r1, r6, r1 + ldrb r1, [r1] + mov r12, r1 + adds r1, r0, 0 + mov r3, r12 + ands r1, r3 + mov r3, r9 + asrs r1, r3 + lsls r1, 24 + lsrs r1, 24 + mov r3, r8 + bics r0, r3 + strb r0, [r5] + ldrb r0, [r5] + mov r3, r12 + bics r0, r3 + strb r0, [r5] + mov r0, r9 + lsls r2, r0 + mov r3, r10 + lsls r1, r3 + adds r2, r1 + ldrb r0, [r5] + orrs r0, r2 + strb r0, [r5] + adds r1, r4, 0 + adds r1, 0xD + adds r0, r7, 0 + mov r2, sp + bl SetMonData + adds r1, r6, 0 + adds r1, 0xD + adds r0, r7, 0 + ldr r2, [sp, 0x1C] + bl SetMonData + adds r4, 0x11 + adds r0, r7, 0 + adds r1, r4, 0 + ldr r2, [sp, 0x20] + bl SetMonData + adds r6, 0x11 + adds r0, r7, 0 + adds r1, r6, 0 + ldr r2, [sp, 0x24] + bl SetMonData + adds r0, r7, 0 + movs r1, 0x15 + adds r2, r5, 0 + bl SetMonData + mov r0, sp + ldrh r0, [r0] + ldr r1, [sp, 0x8] + strh r0, [r1] + ldr r3, [sp, 0x1C] + ldrh r0, [r3] + ldr r1, [sp, 0xC] + strh r0, [r1] + ldr r3, [sp, 0x20] + ldrb r0, [r3] + ldr r1, [sp, 0x10] + strb r0, [r1] + ldr r3, [sp, 0x24] + ldrb r0, [r3] + ldr r1, [sp, 0x14] + strb r0, [r1] + ldrb r0, [r5] + ldr r3, [sp, 0x18] + strb r0, [r3] + add sp, 0x28 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C14BC + + thumb_func_start sub_81C15EC +sub_81C15EC: @ 81C15EC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x28 + adds r7, r0, 0 + adds r4, r1, 0 + adds r6, r2, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r6, 24 + lsrs r6, 24 + ldr r0, =gUnknown_0203CF1C + ldr r2, [r0] + lsls r0, r4, 1 + mov r10, r0 + adds r1, r2, 0 + adds r1, 0x84 + adds r0, r1, r0 + str r0, [sp, 0x8] + ldrh r0, [r0] + mov r3, sp + adds r3, 0x2 + str r3, [sp, 0x1C] + strh r0, [r3] + lsls r0, r6, 1 + mov r9, r0 + add r1, r9 + str r1, [sp, 0xC] + ldrh r1, [r1] + mov r0, sp + strh r1, [r0] + adds r1, r2, 0 + adds r1, 0x8C + adds r3, r1, r4 + str r3, [sp, 0x10] + ldrb r0, [r3] + mov r3, sp + adds r3, 0x5 + str r3, [sp, 0x24] + strb r0, [r3] + adds r1, r6 + str r1, [sp, 0x14] + ldrb r0, [r1] + mov r1, sp + adds r1, 0x4 + str r1, [sp, 0x20] + strb r0, [r1] + adds r2, 0xA4 + str r2, [sp, 0x18] + ldrb r0, [r2] + mov r5, sp + adds r5, 0x6 + strb r0, [r5] + ldr r1, =gUnknown_08329D22 + adds r0, r4, r1 + ldrb r0, [r0] + mov r8, r0 + ldrb r0, [r5] + adds r2, r0, 0 + mov r3, r8 + ands r2, r3 + mov r3, r10 + asrs r2, r3 + lsls r2, 24 + lsrs r2, 24 + adds r1, r6, r1 + ldrb r1, [r1] + mov r12, r1 + adds r1, r0, 0 + mov r3, r12 + ands r1, r3 + mov r3, r9 + asrs r1, r3 + lsls r1, 24 + lsrs r1, 24 + mov r3, r8 + bics r0, r3 + strb r0, [r5] + ldrb r0, [r5] + mov r3, r12 + bics r0, r3 + strb r0, [r5] + mov r0, r9 + lsls r2, r0 + mov r3, r10 + lsls r1, r3 + adds r2, r1 + ldrb r0, [r5] + orrs r0, r2 + strb r0, [r5] + adds r1, r4, 0 + adds r1, 0xD + adds r0, r7, 0 + mov r2, sp + bl SetMonData_encrypted + adds r1, r6, 0 + adds r1, 0xD + adds r0, r7, 0 + ldr r2, [sp, 0x1C] + bl SetMonData_encrypted + adds r4, 0x11 + adds r0, r7, 0 + adds r1, r4, 0 + ldr r2, [sp, 0x20] + bl SetMonData_encrypted + adds r6, 0x11 + adds r0, r7, 0 + adds r1, r6, 0 + ldr r2, [sp, 0x24] + bl SetMonData_encrypted + adds r0, r7, 0 + movs r1, 0x15 + adds r2, r5, 0 + bl SetMonData_encrypted + mov r0, sp + ldrh r0, [r0] + ldr r1, [sp, 0x8] + strh r0, [r1] + ldr r3, [sp, 0x1C] + ldrh r0, [r3] + ldr r1, [sp, 0xC] + strh r0, [r1] + ldr r3, [sp, 0x20] + ldrb r0, [r3] + ldr r1, [sp, 0x10] + strb r0, [r1] + ldr r3, [sp, 0x24] + ldrb r0, [r3] + ldr r1, [sp, 0x14] + strb r0, [r1] + ldrb r0, [r5] + ldr r3, [sp, 0x18] + strb r0, [r3] + add sp, 0x28 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C15EC + + thumb_func_start sub_81C171C +sub_81C171C: @ 81C171C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_81C44F0 + movs r0, 0x8 + bl sub_81C4AF8 + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81C174C + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C171C + + thumb_func_start sub_81C174C +sub_81C174C: @ 81C174C + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + bl sub_81221EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081C176A + b _081C189A +_081C176A: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r2, 0x80 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _081C177A + b _081C189A +_081C177A: + ldr r6, =gMain + ldrh r1, [r6, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081C17B4 + movs r0, 0x4 + strh r0, [r4] + movs r1, 0x1 + negs r1, r1 + ldr r0, =gUnknown_0203CF1C + ldr r2, [r0] + ldr r0, =0x000040c6 + adds r2, r0 + adds r0, r4, 0 + bl sub_81C1070 + b _081C189A + .pool +_081C17B4: + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _081C17DC + movs r0, 0x4 + strh r0, [r4] + ldr r0, =gUnknown_0203CF1C + ldr r2, [r0] + ldr r1, =0x000040c6 + adds r2, r1 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81C1070 + b _081C189A + .pool +_081C17DC: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _081C17F0 + bl GetLRKeysState + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081C17FC +_081C17F0: + movs r1, 0x1 + negs r1, r1 + adds r0, r5, 0 + bl sub_81C0A8C + b _081C189A +_081C17FC: + ldrh r1, [r6, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _081C1812 + bl GetLRKeysState + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _081C181C +_081C1812: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_81C0A8C + b _081C189A +_081C181C: + ldrh r1, [r6, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081C1876 + bl sub_81C18A8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081C1868 + bl sub_81C48F0 + movs r0, 0x5 + bl PlaySE + ldr r2, =gUnknown_0203CF21 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040c6 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + ldr r1, =gSpecialVar_0x8005 + ldrb r0, [r2] + strh r0, [r1] + adds r0, r5, 0 + bl sub_81C044C + b _081C189A + .pool +_081C1868: + movs r0, 0x20 + bl PlaySE + adds r0, r5, 0 + bl sub_81C18F4 + b _081C189A +_081C1876: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081C189A + bl sub_81C48F0 + movs r0, 0x5 + bl PlaySE + ldr r1, =gUnknown_0203CF21 + movs r0, 0x4 + strb r0, [r1] + ldr r1, =gSpecialVar_0x8005 + movs r0, 0x4 + strh r0, [r1] + adds r0, r5, 0 + bl sub_81C044C +_081C189A: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C174C + + thumb_func_start sub_81C18A8 +sub_81C18A8: @ 81C18A8 + push {lr} + ldr r0, =gUnknown_0203CF1C + ldr r2, [r0] + ldr r0, =0x000040c6 + adds r1, r2, r0 + ldrb r0, [r1] + cmp r0, 0x4 + beq _081C18DA + ldr r3, =0x000040c4 + adds r0, r2, r3 + ldrh r0, [r0] + cmp r0, 0 + beq _081C18DA + ldrb r1, [r1] + lsls r1, 1 + adds r0, r2, 0 + adds r0, 0x84 + adds r0, r1 + ldrh r0, [r0] + bl sub_81B6D14 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081C18EC +_081C18DA: + movs r0, 0x1 + b _081C18EE + .pool +_081C18EC: + movs r0, 0 +_081C18EE: + pop {r1} + bx r1 + thumb_func_end sub_81C18A8 + + thumb_func_start sub_81C18F4 +sub_81C18F4: @ 81C18F4 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0xE + bl ClearWindowTilemap + movs r0, 0xF + bl ClearWindowTilemap + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0 + movs r1, 0x3 + bl sub_81C1DA4 + movs r0, 0 + movs r1, 0x3 + movs r2, 0 + bl sub_81C1EFC + bl sub_81C4154 + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81C1940 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C18F4 + + thumb_func_start sub_81C1940 +sub_81C1940: @ 81C1940 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r7, r0, 24 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + mov r8, r0 + ldr r0, =gTasks + 0x8 + mov r9, r0 + mov r4, r8 + add r4, r9 + ldr r0, =sub_81C1E20 + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081C196C + b _081C1B74 +_081C196C: + ldr r6, =gMain + ldrh r1, [r6, 0x2E] + movs r0, 0x40 + ands r0, r1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + beq _081C19B0 + movs r0, 0x1 + strh r0, [r4, 0x2] + movs r0, 0x4 + strh r0, [r4] + movs r1, 0x1 + negs r1, r1 + ldr r0, =gUnknown_0203CF1C + ldr r2, [r0] + ldr r0, =0x000040c6 + adds r2, r0 + adds r0, r4, 0 + bl sub_81C1070 + movs r0, 0 + strh r0, [r4, 0x2] + b _081C1B6A + .pool +_081C19B0: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081C19DC + movs r0, 0x1 + strh r0, [r4, 0x2] + movs r0, 0x4 + strh r0, [r4] + ldr r0, =gUnknown_0203CF1C + ldr r2, [r0] + ldr r1, =0x000040c6 + adds r2, r1 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81C1070 + strh r5, [r4, 0x2] + b _081C1B6A + .pool +_081C19DC: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _081C19F0 + bl GetLRKeysState + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081C1A64 +_081C19F0: + ldr r4, =gUnknown_0203CF1C + ldr r0, [r4] + ldr r2, =0x000040c0 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x2 + bne _081C1A00 + b _081C1B74 +_081C1A00: + movs r0, 0x13 + bl ClearWindowTilemap + ldr r2, =gSprites + ldr r0, [r4] + ldr r1, =0x000040d5 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + blt _081C1A28 + movs r0, 0xD + bl ClearWindowTilemap +_081C1A28: + ldr r1, [r4] + ldr r2, =0x000040c6 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 1 + adds r1, 0x84 + adds r1, r0 + ldrh r5, [r1] + mov r0, r9 + subs r0, 0x8 + add r0, r8 + ldr r1, =sub_81C174C + str r1, [r0] + movs r1, 0x1 + negs r1, r1 + adds r0, r7, 0 + b _081C1ACE + .pool +_081C1A64: + ldrh r1, [r6, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _081C1A7A + bl GetLRKeysState + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _081C1B04 +_081C1A7A: + ldr r4, =gUnknown_0203CF1C + ldr r0, [r4] + ldr r1, =0x000040c0 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x3 + beq _081C1B74 + movs r0, 0x13 + bl ClearWindowTilemap + ldr r2, =gSprites + ldr r0, [r4] + ldr r1, =0x000040d5 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + blt _081C1AB0 + movs r0, 0xD + bl ClearWindowTilemap +_081C1AB0: + ldr r1, [r4] + ldr r2, =0x000040c6 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 1 + adds r1, 0x84 + adds r1, r0 + ldrh r5, [r1] + mov r0, r9 + subs r0, 0x8 + add r0, r8 + ldr r1, =sub_81C174C + str r1, [r0] + adds r0, r7, 0 + movs r1, 0x1 +_081C1ACE: + bl sub_81C0A8C + movs r4, 0x2 + negs r4, r4 + movs r0, 0x9 + adds r1, r4, 0 + bl sub_81C1DA4 + movs r0, 0x9 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_81C1EFC + b _081C1B74 + .pool +_081C1B04: + ldrh r1, [r6, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _081C1B74 + movs r0, 0x13 + bl ClearWindowTilemap + ldr r2, =gSprites + ldr r4, =gUnknown_0203CF1C + ldr r0, [r4] + ldr r1, =0x000040d5 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + blt _081C1B38 + movs r0, 0xD + bl ClearWindowTilemap +_081C1B38: + ldr r1, [r4] + ldr r2, =0x000040c6 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 1 + adds r1, 0x84 + adds r1, r0 + ldrh r5, [r1] + adds r0, r5, 0 + bl sub_81C3E9C + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + movs r4, 0x3 + negs r4, r4 + movs r0, 0x9 + adds r1, r4, 0 + bl sub_81C1DA4 + movs r0, 0x9 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_81C1EFC +_081C1B6A: + mov r0, r9 + subs r0, 0x8 + add r0, r8 + ldr r1, =sub_81C174C + str r1, [r0] +_081C1B74: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C1940 + + thumb_func_start sub_81C1B94 +sub_81C1B94: @ 81C1B94 + ldr r0, =gUnknown_0203CF21 + ldrb r0, [r0] + bx lr + .pool + thumb_func_end sub_81C1B94 + + thumb_func_start sub_81C1BA0 +sub_81C1BA0: @ 81C1BA0 + push {r4-r7,lr} + sub sp, 0xC + movs r0, 0x20 + bl Alloc + adds r4, r0, 0 + movs r5, 0 +_081C1BAE: + lsls r0, r5, 25 + lsrs r1, r0, 24 + adds r6, r1, 0 + ldr r0, =gUnknown_0203CF1C + ldr r3, [r0] + ldr r2, =0x000040c1 + adds r0, r3, r2 + ldrb r0, [r0] + cmp r5, r0 + bcs _081C1BD8 + lsls r0, r1, 1 + adds r0, r4 + movs r1, 0x40 + strh r1, [r0] + strh r1, [r0, 0x2] + movs r1, 0x50 + b _081C1BEE + .pool +_081C1BD8: + ldr r7, =0x000040c2 + adds r0, r3, r7 + ldrb r2, [r0] + cmp r5, r2 + bls _081C1BF8 + lsls r0, r1, 1 + adds r0, r4 + movs r1, 0x4A + strh r1, [r0] + strh r1, [r0, 0x2] + movs r1, 0x5A +_081C1BEE: + strh r1, [r0, 0x10] + strh r1, [r0, 0x12] + b _081C1C78 + .pool +_081C1BF8: + ldr r7, =0x000040c0 + adds r0, r3, r7 + ldrb r0, [r0] + cmp r5, r0 + bcs _081C1C1C + lsls r1, 1 + adds r1, r4 + movs r0, 0x46 + strh r0, [r1] + movs r0, 0x47 + strh r0, [r1, 0x2] + movs r0, 0x56 + strh r0, [r1, 0x10] + movs r0, 0x57 + b _081C1C76 + .pool +_081C1C1C: + cmp r5, r0 + bne _081C1C4C + cmp r5, r2 + beq _081C1C38 + lsls r1, 1 + adds r1, r4 + movs r0, 0x41 + strh r0, [r1] + movs r0, 0x42 + strh r0, [r1, 0x2] + movs r0, 0x51 + strh r0, [r1, 0x10] + movs r0, 0x52 + b _081C1C76 +_081C1C38: + lsls r1, 1 + adds r1, r4 + movs r0, 0x4B + strh r0, [r1] + movs r0, 0x4C + strh r0, [r1, 0x2] + movs r0, 0x5B + strh r0, [r1, 0x10] + movs r0, 0x5C + b _081C1C76 +_081C1C4C: + cmp r5, r2 + beq _081C1C64 + lsls r1, 1 + adds r1, r4 + movs r0, 0x43 + strh r0, [r1] + movs r0, 0x44 + strh r0, [r1, 0x2] + movs r0, 0x53 + strh r0, [r1, 0x10] + movs r0, 0x54 + b _081C1C76 +_081C1C64: + lsls r1, r6, 1 + adds r1, r4 + movs r0, 0x48 + strh r0, [r1] + movs r0, 0x49 + strh r0, [r1, 0x2] + movs r0, 0x58 + strh r0, [r1, 0x10] + movs r0, 0x59 +_081C1C76: + strh r0, [r1, 0x12] +_081C1C78: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _081C1BAE + movs r0, 0x8 + str r0, [sp] + movs r0, 0x2 + str r0, [sp, 0x4] + movs r0, 0x10 + str r0, [sp, 0x8] + movs r0, 0x3 + adds r1, r4, 0 + movs r2, 0xB + movs r3, 0 + bl CopyToBgTilemapBufferRect_ChangePalette + movs r0, 0x3 + bl schedule_bg_copy_tilemap_to_vram + adds r0, r4, 0 + bl Free + add sp, 0xC + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81C1BA0 + + thumb_func_start sub_81C1CB0 +sub_81C1CB0: @ 81C1CB0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r4, r0, 0 + mov r8, r1 + lsls r2, 24 + lsrs r6, r2, 24 + lsls r3, 24 + lsrs r5, r3, 24 + ldrb r1, [r4, 0x6] + ldrb r0, [r4, 0x7] + lsls r0, 1 + muls r0, r1 + bl Alloc + adds r7, r0, 0 + mov r1, sp + ldrh r0, [r4, 0x4] + strh r0, [r1] + ldrb r1, [r4, 0x7] + ldrb r0, [r4, 0x6] + adds r2, r1, 0 + muls r2, r0 + movs r0, 0x80 + lsls r0, 17 + orrs r2, r0 + mov r0, sp + adds r1, r7, 0 + bl CpuSet + ldrb r0, [r4, 0x6] + cmp r0, r6 + beq _081C1D60 + cmp r5, 0 + bne _081C1D30 + movs r5, 0 + ldrb r0, [r4, 0x7] + cmp r5, r0 + bcs _081C1D60 +_081C1D00: + ldrb r2, [r4, 0x6] + adds r1, r2, 0 + muls r1, r5 + adds r3, r6, r1 + lsls r3, 1 + ldr r0, [r4] + adds r0, r3 + lsls r1, 1 + adds r1, r7, r1 + subs r2, r6 + ldr r3, =0x001fffff + ands r2, r3 + bl CpuSet + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldrb r3, [r4, 0x7] + cmp r5, r3 + bcc _081C1D00 + b _081C1D60 + .pool +_081C1D30: + movs r5, 0 + ldrb r0, [r4, 0x7] + cmp r5, r0 + bcs _081C1D60 +_081C1D38: + ldrb r2, [r4, 0x6] + adds r1, r2, 0 + muls r1, r5 + lsls r3, r1, 1 + ldr r0, [r4] + adds r0, r3 + adds r1, r6, r1 + lsls r1, 1 + adds r1, r7, r1 + subs r2, r6 + ldr r3, =0x001fffff + ands r2, r3 + bl CpuSet + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldrb r3, [r4, 0x7] + cmp r5, r3 + bcc _081C1D38 +_081C1D60: + movs r5, 0 + b _081C1D8A + .pool +_081C1D68: + ldrb r2, [r4, 0x6] + adds r0, r2, 0 + muls r0, r5 + lsls r0, 1 + adds r0, r7, r0 + ldrb r1, [r4, 0x9] + adds r1, r5 + lsls r1, 5 + ldrb r3, [r4, 0x8] + adds r1, r3 + lsls r1, 1 + add r1, r8 + bl CpuSet + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_081C1D8A: + ldrb r0, [r4, 0x7] + cmp r5, r0 + bcc _081C1D68 + adds r0, r7, 0 + bl Free + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81C1CB0 + + thumb_func_start sub_81C1DA4 +sub_81C1DA4: @ 81C1DA4 + push {r4-r6,lr} + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 16 + lsrs r4, r1, 16 + asrs r1, 16 + ldr r3, =gUnknown_0861CC04 + ldrb r2, [r3, 0x6] + cmp r1, r2 + ble _081C1DBA + adds r4, r2, 0 +_081C1DBA: + lsls r0, r4, 16 + asrs r0, 16 + cmp r0, 0 + beq _081C1DC6 + cmp r0, r2 + bne _081C1DE8 +_081C1DC6: + ldr r0, =gUnknown_0203CF1C + ldr r1, [r0] + ldr r0, =0x000020bc + adds r1, r0 + lsls r2, r4, 24 + lsrs r2, 24 + adds r0, r3, 0 + movs r3, 0x1 + bl sub_81C1CB0 + b _081C1E12 + .pool +_081C1DE8: + ldr r5, =sub_81C1E20 + adds r0, r5, 0 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + bne _081C1E04 + adds r0, r5, 0 + movs r1, 0x8 + bl CreateTask + lsls r0, 24 + lsrs r2, r0, 24 +_081C1E04: + ldr r1, =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + strh r4, [r0, 0x8] + strh r6, [r0, 0xA] +_081C1E12: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C1DA4 + + thumb_func_start sub_81C1E20 +sub_81C1E20: @ 81C1E20 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + ldrh r0, [r4] + ldrh r1, [r4, 0x2] + adds r0, r1 + strh r0, [r4, 0x2] + lsls r0, 16 + cmp r0, 0 + bge _081C1E50 + movs r0, 0 + strh r0, [r4, 0x2] + ldr r7, =gUnknown_0861CC04 + b _081C1E60 + .pool +_081C1E50: + movs r0, 0x2 + ldrsh r1, [r4, r0] + ldr r0, =gUnknown_0861CC04 + ldrb r2, [r0, 0x6] + adds r7, r0, 0 + cmp r1, r2 + ble _081C1E60 + strh r2, [r4, 0x2] +_081C1E60: + ldr r5, =gUnknown_0203CF1C + ldr r1, [r5] + ldr r0, =0x000020bc + adds r1, r0 + ldrb r2, [r4, 0x2] + adds r0, r7, 0 + movs r3, 0x1 + bl sub_81C1CB0 + movs r1, 0x2 + ldrsh r0, [r4, r1] + cmp r0, 0 + ble _081C1E80 + ldrb r7, [r7, 0x6] + cmp r0, r7 + blt _081C1EE0 +_081C1E80: + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0 + bge _081C1EAC + ldr r0, [r5] + ldr r1, =0x000040c0 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x2 + bne _081C1ED4 + movs r0, 0xE + bl PutWindowTilemap + b _081C1ED4 + .pool +_081C1EAC: + ldr r2, =gSprites + ldr r0, [r5] + ldr r1, =0x000040d5 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + blt _081C1ECE + movs r0, 0xD + bl PutWindowTilemap +_081C1ECE: + movs r0, 0x13 + bl PutWindowTilemap +_081C1ED4: + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + adds r0, r6, 0 + bl DestroyTask +_081C1EE0: + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C1E20 + + thumb_func_start sub_81C1EFC +sub_81C1EFC: @ 81C1EFC + push {r4-r7,lr} + lsls r0, 16 + lsrs r7, r0, 16 + lsls r1, 16 + lsls r2, 16 + lsrs r6, r2, 16 + lsrs r4, r1, 16 + asrs r1, 16 + ldr r3, =gUnknown_0861CC10 + ldrb r2, [r3, 0x6] + cmp r1, r2 + ble _081C1F16 + adds r4, r2, 0 +_081C1F16: + lsls r0, r4, 16 + asrs r0, 16 + cmp r0, 0 + beq _081C1F22 + cmp r0, r2 + bne _081C1F44 +_081C1F22: + ldr r0, =gUnknown_0203CF1C + ldr r1, [r0] + ldr r0, =0x000030bc + adds r1, r0 + lsls r2, r4, 24 + lsrs r2, 24 + adds r0, r3, 0 + movs r3, 0x1 + bl sub_81C1CB0 + b _081C1F70 + .pool +_081C1F44: + ldr r5, =sub_81C1F80 + adds r0, r5, 0 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + bne _081C1F60 + adds r0, r5, 0 + movs r1, 0x8 + bl CreateTask + lsls r0, 24 + lsrs r2, r0, 24 +_081C1F60: + ldr r1, =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + strh r4, [r0, 0x8] + strh r7, [r0, 0xA] + strh r6, [r0, 0xC] +_081C1F70: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C1EFC + + thumb_func_start sub_81C1F80 +sub_81C1F80: @ 81C1F80 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + ldrh r0, [r4] + ldrh r1, [r4, 0x2] + adds r0, r1 + strh r0, [r4, 0x2] + lsls r0, 16 + cmp r0, 0 + bge _081C1FB0 + movs r0, 0 + strh r0, [r4, 0x2] + ldr r7, =gUnknown_0861CC10 + b _081C1FC0 + .pool +_081C1FB0: + movs r0, 0x2 + ldrsh r1, [r4, r0] + ldr r0, =gUnknown_0861CC10 + ldrb r2, [r0, 0x6] + adds r7, r0, 0 + cmp r1, r2 + ble _081C1FC0 + strh r2, [r4, 0x2] +_081C1FC0: + ldr r5, =gUnknown_0203CF1C + ldr r1, [r5] + ldr r0, =0x000030bc + adds r1, r0 + ldrb r2, [r4, 0x2] + adds r0, r7, 0 + movs r3, 0x1 + bl sub_81C1CB0 + movs r1, 0x2 + ldrsh r0, [r4, r1] + cmp r0, 0 + ble _081C1FE0 + ldrb r7, [r7, 0x6] + cmp r0, r7 + blt _081C2058 +_081C1FE0: + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0 + bge _081C2024 + ldr r0, [r5] + ldr r1, =0x000040c0 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x3 + bne _081C2006 + ldr r0, =sub_81C0B8C + bl FuncIsActiveTask + lsls r0, 24 + cmp r0, 0 + bne _081C2006 + movs r0, 0xF + bl PutWindowTilemap +_081C2006: + ldrh r0, [r4, 0x4] + bl sub_81C240C + b _081C204C + .pool +_081C2024: + ldr r2, =gSprites + ldr r0, [r5] + ldr r1, =0x000040d5 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + blt _081C2046 + movs r0, 0xD + bl PutWindowTilemap +_081C2046: + movs r0, 0x13 + bl PutWindowTilemap +_081C204C: + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + adds r0, r6, 0 + bl DestroyTask +_081C2058: + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C1F80 + + thumb_func_start sub_81C2074 +sub_81C2074: @ 81C2074 + push {r4,r5,lr} + lsls r0, 16 + lsrs r5, r0, 16 + lsls r1, 16 + lsrs r4, r1, 16 + asrs r1, 16 + ldr r3, =gUnknown_0861CBEC + ldrb r2, [r3, 0x6] + cmp r1, r2 + ble _081C208A + adds r4, r2, 0 +_081C208A: + lsls r0, r4, 16 + asrs r0, 16 + cmp r0, 0 + beq _081C2096 + cmp r0, r2 + bne _081C20C8 +_081C2096: + ldr r5, =gUnknown_0203CF1C + ldr r1, [r5] + adds r1, 0xBC + lsls r4, 24 + lsrs r4, 24 + adds r0, r3, 0 + adds r2, r4, 0 + movs r3, 0 + bl sub_81C1CB0 + ldr r0, =gUnknown_0861CBF8 + ldr r1, [r5] + adds r1, 0xBC + adds r2, r4, 0 + movs r3, 0 + bl sub_81C1CB0 + b _081C20E2 + .pool +_081C20C8: + ldr r0, =sub_81C20F0 + movs r1, 0x8 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] + strh r5, [r1, 0xA] +_081C20E2: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C2074 + + thumb_func_start sub_81C20F0 +sub_81C20F0: @ 81C20F0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r5, r0, r1 + ldrh r0, [r5] + ldrh r1, [r5, 0x2] + adds r0, r1 + strh r0, [r5, 0x2] + lsls r0, 16 + cmp r0, 0 + bge _081C2120 + movs r0, 0 + strh r0, [r5, 0x2] + ldr r7, =gUnknown_0861CBEC + b _081C2130 + .pool +_081C2120: + movs r0, 0x2 + ldrsh r1, [r5, r0] + ldr r0, =gUnknown_0861CBEC + ldrb r2, [r0, 0x6] + adds r7, r0, 0 + cmp r1, r2 + ble _081C2130 + strh r2, [r5, 0x2] +_081C2130: + ldr r4, =gUnknown_0203CF1C + ldr r1, [r4] + adds r1, 0xBC + ldrb r2, [r5, 0x2] + adds r0, r7, 0 + movs r3, 0 + bl sub_81C1CB0 + ldr r0, =gUnknown_0861CBF8 + ldr r1, [r4] + adds r1, 0xBC + ldrb r2, [r5, 0x2] + movs r3, 0 + bl sub_81C1CB0 + movs r0, 0x3 + bl schedule_bg_copy_tilemap_to_vram + movs r1, 0x2 + ldrsh r0, [r5, r1] + cmp r0, 0 + ble _081C2162 + ldrb r7, [r7, 0x6] + cmp r0, r7 + blt _081C2180 +_081C2162: + movs r1, 0 + ldrsh r0, [r5, r1] + cmp r0, 0 + bge _081C217A + bl sub_81C4A88 + movs r0, 0xD + bl PutWindowTilemap + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram +_081C217A: + adds r0, r6, 0 + bl DestroyTask +_081C2180: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C20F0 + + thumb_func_start sub_81C2194 +sub_81C2194: @ 81C2194 + push {r4-r7,lr} + adds r6, r0, 0 + lsls r2, 24 + lsls r1, 28 + lsrs r4, r1, 16 + ldr r7, =0x0000056a + cmp r2, 0 + bne _081C21E4 + movs r3, 0 + ldr r5, =gUnknown_08DC3CD4 +_081C21A8: + adds r2, r7, r3 + lsls r2, 1 + adds r2, r6 + lsls r0, r3, 1 + adds r0, r5 + ldrh r1, [r0] + adds r1, r4, r1 + strh r1, [r2] + adds r0, r2, 0 + adds r0, 0x40 + strh r1, [r0] + adds r2, 0x80 + adds r0, r3, 0 + adds r0, 0x14 + lsls r0, 1 + adds r0, r5 + ldrh r0, [r0] + adds r0, r4, r0 + strh r0, [r2] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x13 + bls _081C21A8 + b _081C221C + .pool +_081C21E4: + movs r3, 0 + ldr r5, =gUnknown_08DC3CD4 +_081C21E8: + adds r1, r7, r3 + lsls r1, 1 + adds r1, r6 + adds r0, r3, 0 + adds r0, 0x14 + lsls r0, 1 + adds r0, r5 + ldrh r0, [r0] + adds r0, r4, r0 + strh r0, [r1] + adds r2, r1, 0 + adds r2, 0x40 + adds r0, r3, 0 + adds r0, 0x28 + lsls r0, 1 + adds r0, r5 + ldrh r0, [r0] + adds r0, r4, r0 + strh r0, [r2] + adds r1, 0x80 + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x13 + bls _081C21E8 +_081C221C: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C2194 + + thumb_func_start sub_81C2228 +sub_81C2228: @ 81C2228 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_806DD7C + lsls r0, 24 + cmp r0, 0 + bne _081C225C + adds r0, r4, 0 + movs r1, 0 + bl sub_806DDE4 + lsls r0, 24 + cmp r0, 0 + beq _081C225C + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r2, =0x00000502 + adds r1, r0, r2 + movs r2, 0x2C + b _081C2266 + .pool +_081C225C: + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r2, =0x00000502 + adds r1, r0, r2 + ldr r2, =0x0000081a +_081C2266: + strh r2, [r1] + ldr r1, =0x00000d02 + adds r0, r1 + strh r2, [r0] + movs r0, 0x3 + bl schedule_bg_copy_tilemap_to_vram + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C2228 + + thumb_func_start sub_81C228C +sub_81C228C: @ 81C228C + push {lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _081C22AC + movs r0, 0x8 + str r0, [sp] + str r1, [sp, 0x4] + movs r0, 0x3 + movs r1, 0x1 + movs r2, 0x4 + movs r3, 0x8 + bl sub_8199C30 + b _081C22C0 +_081C22AC: + movs r0, 0x8 + str r0, [sp] + movs r0, 0x5 + str r0, [sp, 0x4] + movs r0, 0x3 + movs r1, 0x1 + movs r2, 0x4 + movs r3, 0x8 + bl sub_8199C30 +_081C22C0: + movs r0, 0x3 + bl schedule_bg_copy_tilemap_to_vram + add sp, 0x8 + pop {r0} + bx r0 + thumb_func_end sub_81C228C + + thumb_func_start sub_81C22CC +sub_81C22CC: @ 81C22CC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, =gUnknown_0203CF1C + ldr r1, [r0] + adds r6, r1, 0 + adds r6, 0x70 + ldrb r1, [r6, 0x5] + mov r8, r0 + cmp r1, 0x63 + bhi _081C2340 + ldr r5, =gExperienceTables + adds r2, r1, 0 + adds r1, r2, 0x1 + lsls r1, 2 + ldr r4, =gBaseStats + ldrh r3, [r6] + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + adds r0, r4 + ldrb r3, [r0, 0x13] + movs r0, 0xCA + lsls r0, 1 + muls r0, r3 + adds r1, r0 + adds r1, r5 + lsls r2, 2 + adds r2, r0 + adds r2, r5 + ldr r1, [r1] + ldr r2, [r2] + subs r1, r2 + ldr r0, [r6, 0x10] + subs r4, r0, r2 + lsls r0, r4, 6 + bl __udivsi3 + adds r6, r0, 0 + movs r7, 0 + adds r0, r7, 0 + orrs r0, r6 + cmp r0, 0 + bne _081C2344 + cmp r4, 0 + beq _081C2344 + movs r6, 0x1 + movs r7, 0 + b _081C2344 + .pool +_081C2340: + movs r6, 0 + movs r7, 0 +_081C2344: + mov r1, r8 + ldr r0, [r1] + ldr r2, =0x00001d66 + adds r2, r0 + mov r9, r2 + movs r0, 0 + mov r12, r0 + ldr r1, =0x00002062 + mov r10, r1 +_081C2356: + cmp r7, 0 + bgt _081C2362 + cmp r7, 0 + bne _081C237C + cmp r6, 0x7 + bls _081C237C +_081C2362: + mov r2, r12 + lsls r0, r2, 1 + add r0, r9 + ldr r2, =0x0000206a + adds r1, r2, 0 + strh r1, [r0] + b _081C23B6 + .pool +_081C237C: + mov r1, r12 + lsls r0, r1, 1 + add r0, r9 + mov r8, r0 + adds r5, r7, 0 + adds r4, r6, 0 + cmp r7, 0 + bge _081C2394 + movs r4, 0x7 + movs r5, 0 + adds r4, r6 + adcs r5, r7 +_081C2394: + lsls r3, r5, 29 + lsrs r2, r4, 3 + adds r0, r3, 0 + orrs r0, r2 + asrs r1, r5, 3 + lsrs r5, r0, 29 + lsls r4, r1, 3 + adds r3, r5, 0 + orrs r3, r4 + lsls r2, r0, 3 + adds r1, r7, 0 + adds r0, r6, 0 + subs r0, r2 + sbcs r1, r3 + add r0, r10 + mov r2, r8 + strh r0, [r2] +_081C23B6: + movs r0, 0x8 + negs r0, r0 + asrs r1, r0, 31 + adds r6, r0 + adcs r7, r1 + cmp r7, 0 + bge _081C23C8 + movs r6, 0 + movs r7, 0 +_081C23C8: + mov r0, r12 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + cmp r0, 0x7 + bls _081C2356 + movs r0, 0x1 + bl GetBgTilemapBuffer + ldr r1, =gUnknown_0203CF1C + ldr r1, [r1] + ldr r2, =0x000010bc + adds r1, r2 + cmp r0, r1 + bne _081C23F8 + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + b _081C23FE + .pool +_081C23F8: + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram +_081C23FE: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81C22CC + + thumb_func_start sub_81C240C +sub_81C240C: @ 81C240C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 16 + lsrs r3, r0, 16 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000038bc + adds r5, r0, r1 + cmp r3, 0 + beq _081C2510 + ldr r1, =gContestEffects + ldr r2, =gContestMoves + lsls r3, 3 + adds r0, r3, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldrb r4, [r0, 0x1] + mov r9, r1 + mov r8, r2 + mov r10, r3 + cmp r4, 0xFF + beq _081C244C + adds r0, r4, 0 + movs r1, 0xA + bl __udivsi3 + lsls r0, 24 + lsrs r4, r0, 24 +_081C244C: + movs r2, 0 + movs r6, 0x3 + movs r3, 0xF3 + lsls r3, 2 +_081C2454: + cmp r4, 0xFF + beq _081C2484 + cmp r2, r4 + bcs _081C2484 + lsrs r0, r2, 2 + adds r1, r2, 0 + ands r1, r6 + lsls r0, 5 + adds r0, r1 + lsls r0, 1 + adds r0, r5 + adds r0, r3 + ldr r7, =0x0000103a + b _081C2496 + .pool +_081C2484: + lsrs r0, r2, 2 + adds r1, r2, 0 + ands r1, r6 + lsls r0, 5 + adds r0, r1 + lsls r0, 1 + adds r0, r5 + adds r0, r3 + ldr r7, =0x00001039 +_081C2496: + adds r1, r7, 0 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x7 + bls _081C2454 + mov r0, r10 + add r0, r8 + ldrb r0, [r0] + lsls r0, 2 + add r0, r9 + ldrb r4, [r0, 0x2] + cmp r4, 0xFF + beq _081C24C0 + adds r0, r4, 0 + movs r1, 0xA + bl __udivsi3 + lsls r0, 24 + lsrs r4, r0, 24 +_081C24C0: + movs r2, 0 + movs r6, 0x3 + ldr r3, =0x0000044c +_081C24C6: + cmp r4, 0xFF + beq _081C24F0 + cmp r2, r4 + bcs _081C24F0 + lsrs r0, r2, 2 + adds r1, r2, 0 + ands r1, r6 + lsls r0, 5 + adds r0, r1 + lsls r0, 1 + adds r0, r5 + adds r0, r3 + ldr r7, =0x0000103c + b _081C2502 + .pool +_081C24F0: + lsrs r0, r2, 2 + adds r1, r2, 0 + ands r1, r6 + lsls r0, 5 + adds r0, r1 + lsls r0, 1 + adds r0, r5 + adds r0, r3 + ldr r7, =0x0000103d +_081C2502: + adds r1, r7, 0 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x7 + bls _081C24C6 +_081C2510: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C240C + + thumb_func_start sub_81C2524 +sub_81C2524: @ 81C2524 + push {lr} + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + adds r0, 0x74 + ldrb r0, [r0] + cmp r0, 0 + beq _081C2544 + movs r1, 0x80 + lsls r1, 9 + movs r0, 0x3 + movs r2, 0 + bl ChangeBgX + b _081C254E + .pool +_081C2544: + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl ChangeBgX +_081C254E: + pop {r0} + bx r0 + thumb_func_end sub_81C2524 + + thumb_func_start sub_81C2554 +sub_81C2554: @ 81C2554 + push {r4,r5,lr} + ldr r0, =gUnknown_0861CC24 + bl InitWindows + bl DeactivateAllTextPrinters + movs r4, 0 +_081C2562: + adds r0, r4, 0 + movs r1, 0 + bl FillWindowPixelBuffer + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x13 + bls _081C2562 + movs r4, 0 + ldr r5, =gUnknown_0203CF1C + ldr r3, =0x000040cb + movs r2, 0xFF +_081C257C: + ldr r0, [r5] + adds r0, r3 + adds r0, r4 + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x7 + bls _081C257C + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C2554 + + thumb_func_start sub_81C25A4 +sub_81C25A4: @ 81C25A4 + push {r4-r6,lr} + sub sp, 0x14 + ldr r4, [sp, 0x24] + ldr r5, [sp, 0x28] + lsls r0, 24 + lsrs r0, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + movs r6, 0 + str r6, [sp] + str r4, [sp, 0x4] + lsls r4, r5, 1 + adds r4, r5 + ldr r5, =gUnknown_0861CD2C + adds r4, r5 + str r4, [sp, 0x8] + str r6, [sp, 0xC] + str r1, [sp, 0x10] + movs r1, 0x1 + bl AddTextPrinterParametrized2 + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C25A4 + + thumb_func_start sub_81C25E8 +sub_81C25E8: @ 81C25E8 + push {lr} + movs r0, 0x11 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0x12 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0x13 + movs r1, 0 + bl FillWindowPixelBuffer + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + adds r0, 0x74 + ldrb r0, [r0] + cmp r0, 0 + bne _081C2618 + bl sub_81C2628 + b _081C261C + .pool +_081C2618: + bl sub_81C2794 +_081C261C: + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + pop {r0} + bx r0 + thumb_func_end sub_81C25E8 + + thumb_func_start sub_81C2628 +sub_81C2628: @ 81C2628 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x18 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + movs r1, 0xC + adds r1, r0 + mov r8, r1 + adds r7, r0, 0 + adds r7, 0x70 + ldrh r0, [r7] + bl sub_806E3C0 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, =0x0000ffff + cmp r5, r0 + beq _081C26CE + ldr r6, =gStringVar1 + ldr r1, =gUnknown_085E8D4F + adds r0, r6, 0 + bl StringCopy + ldr r4, =gStringVar2 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x2 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r0, r6, 0 + adds r1, r4, 0 + bl StringAppend + mov r0, r8 + bl sub_806EBA4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _081C26AC + str r0, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + movs r0, 0x11 + adds r1, r6, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_81C25A4 + movs r0, 0 + bl sub_81C228C + b _081C26C6 + .pool +_081C26AC: + movs r0, 0 + str r0, [sp] + movs r0, 0x7 + str r0, [sp, 0x4] + movs r0, 0x11 + adds r1, r6, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_81C25A4 + movs r0, 0x1 + bl sub_81C228C +_081C26C6: + movs r0, 0x11 + bl PutWindowTilemap + b _081C26EE +_081C26CE: + movs r0, 0x11 + bl ClearWindowTilemap + mov r0, r8 + bl sub_806EBA4 + lsls r0, 24 + cmp r0, 0 + bne _081C26E8 + movs r0, 0 + bl sub_81C228C + b _081C26EE +_081C26E8: + movs r0, 0x1 + bl sub_81C228C +_081C26EE: + ldr r4, =gStringVar1 + ldr r1, =gUnknown_085E8D4D + adds r0, r4, 0 + bl StringCopy + ldr r5, =gStringVar2 + ldrb r1, [r7, 0x5] + adds r0, r5, 0 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r0, r4, 0 + adds r1, r5, 0 + bl StringAppend + movs r6, 0 + str r6, [sp] + movs r5, 0x1 + str r5, [sp, 0x4] + movs r0, 0x13 + adds r1, r4, 0 + movs r2, 0x18 + movs r3, 0x11 + bl sub_81C25A4 + mov r0, r8 + adds r1, r4, 0 + bl GetMonNickname + str r6, [sp] + str r5, [sp, 0x4] + movs r0, 0x12 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_81C25A4 + add r1, sp, 0x8 + movs r0, 0xBA + strb r0, [r1] + mov r0, sp + adds r0, 0x9 + ldrh r2, [r7, 0x2] + movs r1, 0xB + muls r1, r2 + ldr r2, =gSpeciesNames + adds r1, r2 + bl StringCopy + str r6, [sp] + str r5, [sp, 0x4] + movs r0, 0x13 + add r1, sp, 0x8 + movs r2, 0 + movs r3, 0x1 + bl sub_81C25A4 + ldrh r1, [r7, 0x2] + mov r0, r8 + bl sub_81C27DC + movs r0, 0x12 + bl PutWindowTilemap + movs r0, 0x13 + bl PutWindowTilemap + add sp, 0x18 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C2628 + + thumb_func_start sub_81C2794 +sub_81C2794: @ 81C2794 + push {r4,lr} + sub sp, 0x8 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + adds r0, 0xC + ldr r4, =gStringVar1 + adds r1, r4, 0 + bl GetMonNickname + movs r0, 0 + str r0, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + movs r0, 0x12 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_81C25A4 + movs r0, 0x12 + bl PutWindowTilemap + movs r0, 0x11 + bl ClearWindowTilemap + movs r0, 0x13 + bl ClearWindowTilemap + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C2794 + + thumb_func_start sub_81C27DC +sub_81C27DC: @ 81C27DC + push {lr} + sub sp, 0x8 + lsls r1, 16 + lsrs r1, 16 + cmp r1, 0x20 + beq _081C282C + cmp r1, 0x1D + beq _081C282C + bl pokemon_get_gender + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _081C27FE + cmp r0, 0xFE + beq _081C2818 + b _081C282C +_081C27FE: + ldr r1, =gUnknown_085E8D49 + str r0, [sp] + movs r0, 0x3 + str r0, [sp, 0x4] + movs r0, 0x13 + movs r2, 0x39 + movs r3, 0x11 + bl sub_81C25A4 + b _081C282C + .pool +_081C2818: + ldr r1, =gUnknown_085E8D4B + movs r0, 0 + str r0, [sp] + movs r0, 0x4 + str r0, [sp, 0x4] + movs r0, 0x13 + movs r2, 0x39 + movs r3, 0x11 + bl sub_81C25A4 +_081C282C: + add sp, 0x8 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C27DC + + thumb_func_start sub_81C2838 +sub_81C2838: @ 81C2838 + push {r4,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + ldr r3, =gUnknown_0861CDD3 + cmp r1, 0 + bne _081C284A + subs r3, 0x80 +_081C284A: + lsls r2, 16 + lsrs r2, 16 + movs r0, 0x10 + str r0, [sp] + str r0, [sp, 0x4] + adds r0, r4, 0 + adds r1, r3, 0 + movs r3, 0 + bl BlitBitmapToWindow + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C2838 + + thumb_func_start sub_81C286C +sub_81C286C: @ 81C286C + push {r4-r7,lr} + sub sp, 0x8 + ldr r1, =gUnknown_085EA3CF + movs r5, 0 + str r5, [sp] + movs r6, 0x1 + str r6, [sp, 0x4] + movs r0, 0 + movs r2, 0x2 + movs r3, 0x1 + bl sub_81C25A4 + ldr r1, =gUnknown_085EA3DC + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0x1 + movs r2, 0x2 + movs r3, 0x1 + bl sub_81C25A4 + ldr r1, =gUnknown_085EA3EB + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0x2 + movs r2, 0x2 + movs r3, 0x1 + bl sub_81C25A4 + ldr r1, =gUnknown_085EA3F8 + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0x3 + movs r2, 0x2 + movs r3, 0x1 + bl sub_81C25A4 + ldr r7, =gUnknown_085E8CF7 + movs r0, 0x1 + adds r1, r7, 0 + movs r2, 0x3E + bl GetStringRightAlignXOffset + adds r4, r0, 0 + adds r2, r4, 0 + subs r2, 0x10 + cmp r2, 0 + bge _081C28CC + movs r2, 0 +_081C28CC: + movs r0, 0x4 + movs r1, 0 + bl sub_81C2838 + lsls r2, r4, 24 + lsrs r2, 24 + str r5, [sp] + str r5, [sp, 0x4] + movs r0, 0x4 + adds r1, r7, 0 + movs r3, 0x1 + bl sub_81C25A4 + ldr r7, =gUnknown_085EA406 + movs r0, 0x1 + adds r1, r7, 0 + movs r2, 0x3E + bl GetStringRightAlignXOffset + adds r4, r0, 0 + adds r2, r4, 0 + subs r2, 0x10 + cmp r2, 0 + bge _081C28FE + movs r2, 0 +_081C28FE: + movs r0, 0x5 + movs r1, 0 + bl sub_81C2838 + lsls r2, r4, 24 + lsrs r2, 24 + str r5, [sp] + str r5, [sp, 0x4] + movs r0, 0x5 + adds r1, r7, 0 + movs r3, 0x1 + bl sub_81C25A4 + ldr r7, =gUnknown_085EA3C8 + movs r0, 0x1 + adds r1, r7, 0 + movs r2, 0x3E + bl GetStringRightAlignXOffset + adds r4, r0, 0 + adds r2, r4, 0 + subs r2, 0x10 + cmp r2, 0 + bge _081C2930 + movs r2, 0 +_081C2930: + movs r0, 0x6 + movs r1, 0 + bl sub_81C2838 + lsls r2, r4, 24 + lsrs r2, 24 + str r5, [sp] + str r5, [sp, 0x4] + movs r0, 0x6 + adds r1, r7, 0 + movs r3, 0x1 + bl sub_81C25A4 + ldr r1, =gUnknown_085EA369 + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0x8 + movs r2, 0 + movs r3, 0x1 + bl sub_81C25A4 + ldr r1, =gUnknown_085EA378 + str r5, [sp] + str r5, [sp, 0x4] + movs r0, 0x9 + movs r2, 0 + movs r3, 0x1 + bl sub_81C25A4 + ldr r4, =gUnknown_085EA361 + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x2A + bl GetStringCenterAlignXOffset + adds r0, 0x6 + lsls r2, r0, 24 + lsrs r2, 24 + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0xA + adds r1, r4, 0 + movs r3, 0x1 + bl sub_81C25A4 + ldr r4, =gUnknown_085EA33C + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x2A + bl GetStringCenterAlignXOffset + adds r0, 0x6 + lsls r2, r0, 24 + lsrs r2, 24 + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0xA + adds r1, r4, 0 + movs r3, 0x11 + bl sub_81C25A4 + ldr r4, =gUnknown_085EA343 + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x2A + bl GetStringCenterAlignXOffset + adds r0, 0x6 + lsls r2, r0, 24 + lsrs r2, 24 + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0xA + adds r1, r4, 0 + movs r3, 0x21 + bl sub_81C25A4 + ldr r4, =gUnknown_085EA34B + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x24 + bl GetStringCenterAlignXOffset + adds r0, 0x2 + lsls r2, r0, 24 + lsrs r2, 24 + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0xB + adds r1, r4, 0 + movs r3, 0x1 + bl sub_81C25A4 + ldr r4, =gUnknown_085EA353 + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x24 + bl GetStringCenterAlignXOffset + adds r0, 0x2 + lsls r2, r0, 24 + lsrs r2, 24 + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0xB + adds r1, r4, 0 + movs r3, 0x11 + bl sub_81C25A4 + ldr r4, =gUnknown_085EA35B + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x24 + bl GetStringCenterAlignXOffset + adds r0, 0x2 + lsls r2, r0, 24 + lsrs r2, 24 + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0xB + adds r1, r4, 0 + movs r3, 0x21 + bl sub_81C25A4 + ldr r1, =gUnknown_085EA39F + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0xC + movs r2, 0x6 + movs r3, 0x1 + bl sub_81C25A4 + ldr r1, =gUnknown_085EA3AB + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0xC + movs r2, 0x6 + movs r3, 0x11 + bl sub_81C25A4 + ldr r1, =gUnknown_085EA398 + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0xD + movs r2, 0x2 + movs r3, 0x1 + bl sub_81C25A4 + ldr r1, =gUnknown_085EA37E + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0xE + movs r2, 0 + movs r3, 0x1 + bl sub_81C25A4 + ldr r1, =gUnknown_085EA384 + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0xE + movs r2, 0 + movs r3, 0x11 + bl sub_81C25A4 + ldr r1, =gUnknown_085EA38D + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0xF + movs r2, 0 + movs r3, 0x1 + bl sub_81C25A4 + ldr r1, =gUnknown_085EA394 + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0xF + movs r2, 0 + movs r3, 0x11 + bl sub_81C25A4 + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C286C + + thumb_func_start sub_81C2AFC +sub_81C2AFC: @ 81C2AFC + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + movs r0, 0 + bl ClearWindowTilemap + movs r0, 0x1 + bl ClearWindowTilemap + movs r0, 0x2 + bl ClearWindowTilemap + movs r0, 0x3 + bl ClearWindowTilemap + cmp r4, 0x1 + beq _081C2B66 + cmp r4, 0x1 + bgt _081C2B2A + cmp r4, 0 + beq _081C2B34 + b _081C2C06 +_081C2B2A: + cmp r5, 0x2 + beq _081C2B80 + cmp r5, 0x3 + beq _081C2BC4 + b _081C2C06 +_081C2B34: + movs r0, 0 + bl PutWindowTilemap + movs r0, 0x4 + bl PutWindowTilemap + bl sub_81A6BF4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081C2B58 + bl sub_81B9E94 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081C2B5E +_081C2B58: + movs r0, 0x8 + bl PutWindowTilemap +_081C2B5E: + movs r0, 0x9 + bl PutWindowTilemap + b _081C2C06 +_081C2B66: + movs r0, 0x1 + bl PutWindowTilemap + movs r0, 0xA + bl PutWindowTilemap + movs r0, 0xB + bl PutWindowTilemap + movs r0, 0xC + bl PutWindowTilemap + b _081C2C06 +_081C2B80: + movs r0, 0x2 + bl PutWindowTilemap + ldr r0, =gUnknown_0203CF1C + ldr r1, [r0] + ldr r2, =0x000040bc + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0x3 + bne _081C2BBC + adds r2, 0x8 + adds r0, r1, r2 + ldr r0, [r0] + ldr r1, =0x00ffffff + ands r0, r1 + movs r1, 0x80 + lsls r1, 11 + cmp r0, r1 + beq _081C2C06 + movs r0, 0xE + bl PutWindowTilemap + b _081C2C06 + .pool +_081C2BBC: + movs r0, 0x5 + bl PutWindowTilemap + b _081C2C06 +_081C2BC4: + movs r0, 0x3 + bl PutWindowTilemap + ldr r0, =gUnknown_0203CF1C + ldr r1, [r0] + ldr r2, =0x000040bc + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0x3 + bne _081C2C00 + adds r2, 0x8 + adds r0, r1, r2 + ldr r0, [r0] + ldr r1, =0x00ffffff + ands r0, r1 + movs r1, 0x80 + lsls r1, 11 + cmp r0, r1 + beq _081C2C06 + movs r0, 0xF + bl PutWindowTilemap + b _081C2C06 + .pool +_081C2C00: + movs r0, 0x5 + bl PutWindowTilemap +_081C2C06: + movs r4, 0 + ldr r5, =gUnknown_0203CF1C +_081C2C0A: + ldr r0, [r5] + ldr r1, =0x000040cb + adds r0, r1 + adds r0, r4 + ldrb r0, [r0] + bl PutWindowTilemap + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x7 + bls _081C2C0A + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C2AFC + + thumb_func_start sub_81C2C38 +sub_81C2C38: @ 81C2C38 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0x1 + beq _081C2C84 + cmp r0, 0x1 + bgt _081C2C4E + cmp r0, 0 + beq _081C2C58 + b _081C2D0E +_081C2C4E: + cmp r1, 0x2 + beq _081C2C98 + cmp r1, 0x3 + beq _081C2CD4 + b _081C2D0E +_081C2C58: + movs r0, 0x4 + bl ClearWindowTilemap + bl sub_81A6BF4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081C2C76 + bl sub_81B9E94 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081C2C7C +_081C2C76: + movs r0, 0x8 + bl ClearWindowTilemap +_081C2C7C: + movs r0, 0x9 + bl ClearWindowTilemap + b _081C2D0E +_081C2C84: + movs r0, 0xA + bl ClearWindowTilemap + movs r0, 0xB + bl ClearWindowTilemap + movs r0, 0xC + bl ClearWindowTilemap + b _081C2D0E +_081C2C98: + ldr r0, =gUnknown_0203CF1C + ldr r1, [r0] + ldr r2, =0x000040bc + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0x3 + bne _081C2CCC + adds r2, 0x8 + adds r0, r1, r2 + ldr r0, [r0] + ldr r1, =0x00ffffff + ands r0, r1 + movs r1, 0x80 + lsls r1, 11 + cmp r0, r1 + beq _081C2D0E + movs r0, 0xE + bl ClearWindowTilemap + b _081C2D0E + .pool +_081C2CCC: + movs r0, 0x5 + bl ClearWindowTilemap + b _081C2D0E +_081C2CD4: + ldr r0, =gUnknown_0203CF1C + ldr r1, [r0] + ldr r2, =0x000040bc + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0x3 + bne _081C2D08 + adds r2, 0x8 + adds r0, r1, r2 + ldr r0, [r0] + ldr r1, =0x00ffffff + ands r0, r1 + movs r1, 0x80 + lsls r1, 11 + cmp r0, r1 + beq _081C2D0E + movs r0, 0xF + bl ClearWindowTilemap + b _081C2D0E + .pool +_081C2D08: + movs r0, 0x5 + bl ClearWindowTilemap +_081C2D0E: + movs r4, 0 +_081C2D10: + adds r0, r4, 0 + bl sub_81C2D68 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x7 + bls _081C2D10 + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81C2C38 + + thumb_func_start sub_81C2D2C +sub_81C2D2C: @ 81C2D2C + push {r4,lr} + adds r3, r0, 0 + lsls r1, 24 + lsrs r2, r1, 24 + ldr r0, =gUnknown_0203CF1C + ldr r4, =0x000040cb + adds r1, r2, r4 + ldr r0, [r0] + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0xFF + bne _081C2D56 + lsls r0, r2, 3 + adds r0, r3, r0 + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r1, 0 + bl FillWindowPixelBuffer +_081C2D56: + ldrb r0, [r4] + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81C2D2C + + thumb_func_start sub_81C2D68 +sub_81C2D68: @ 81C2D68 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gUnknown_0203CF1C + ldr r2, =0x000040cb + adds r0, r2 + ldr r1, [r1] + adds r4, r1, r0 + ldrb r0, [r4] + cmp r0, 0xFF + beq _081C2D8C + bl ClearWindowTilemap + ldrb r0, [r4] + bl RemoveWindow + movs r0, 0xFF + strb r0, [r4] +_081C2D8C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C2D68 + + thumb_func_start sub_81C2D9C +sub_81C2D9C: @ 81C2D9C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 +_081C2DA4: + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040cb + adds r0, r1 + adds r1, r0, r4 + ldrb r0, [r1] + cmp r0, 0xFF + beq _081C2DBA + movs r1, 0 + bl FillWindowPixelBuffer +_081C2DBA: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x7 + bls _081C2DA4 + ldr r0, =gUnknown_0861CE54 + lsls r1, r5, 2 + adds r1, r0 + ldr r0, [r1] + bl _call_via_r0 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C2D9C + + thumb_func_start sub_81C2DE4 +sub_81C2DE4: @ 81C2DE4 + push {lr} + lsls r0, 24 + ldr r1, =gUnknown_0861CE64 + lsrs r0, 22 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x10 + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C2DE4 + + thumb_func_start sub_81C2E00 +sub_81C2E00: @ 81C2E00 + push {lr} + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + adds r0, 0x74 + ldrb r0, [r0] + cmp r0, 0 + beq _081C2E24 + bl sub_81C335C + bl sub_81C33CC + bl sub_81C3428 + bl sub_81C349C + b _081C2E3C + .pool +_081C2E24: + bl sub_81C2EC4 + bl sub_81C2F5C + bl sub_81C2FD8 + bl sub_81C302C + bl sub_81C307C + bl sub_81C3194 +_081C2E3C: + pop {r0} + bx r0 + thumb_func_end sub_81C2E00 + + thumb_func_start sub_81C2E40 +sub_81C2E40: @ 81C2E40 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + ldrh r0, [r4] + subs r0, 0x1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + bhi _081C2EB8 + lsls r0, 2 + ldr r1, =_081C2E70 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081C2E70: + .4byte _081C2E8C + .4byte _081C2E92 + .4byte _081C2E98 + .4byte _081C2E9E + .4byte _081C2EA4 + .4byte _081C2EAA + .4byte _081C2EB0 +_081C2E8C: + bl sub_81C2EC4 + b _081C2EB8 +_081C2E92: + bl sub_81C2F5C + b _081C2EB8 +_081C2E98: + bl sub_81C2FD8 + b _081C2EB8 +_081C2E9E: + bl sub_81C302C + b _081C2EB8 +_081C2EA4: + bl sub_81C307C + b _081C2EB8 +_081C2EAA: + bl sub_81C3194 + b _081C2EB8 +_081C2EB0: + adds r0, r2, 0 + bl DestroyTask + b _081C2EBE +_081C2EB8: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_081C2EBE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81C2E40 + + thumb_func_start sub_81C2EC4 +sub_81C2EC4: @ 81C2EC4 + push {r4-r6,lr} + sub sp, 0x8 + bl sub_81A6BF4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081C2F54 + bl sub_81B9E94 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081C2F54 + ldr r0, =gUnknown_0861CCCC + movs r1, 0 + bl sub_81C2D2C + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, =gUnknown_085EA365 + movs r6, 0 + str r6, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_81C25A4 + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0 + bl GetStringWidth + adds r2, r0, 0 + ldr r0, =gUnknown_0203CF1C + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0xA2 + ldrb r0, [r0] + cmp r0, 0 + bne _081C2F40 + adds r1, 0xA6 + lsls r2, 24 + lsrs r2, 24 + str r6, [sp] + movs r0, 0x5 + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r3, 0x1 + bl sub_81C25A4 + b _081C2F54 + .pool +_081C2F40: + adds r1, 0xA6 + lsls r2, 24 + lsrs r2, 24 + str r6, [sp] + movs r0, 0x6 + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r3, 0x1 + bl sub_81C25A4 +_081C2F54: + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81C2EC4 + + thumb_func_start sub_81C2F5C +sub_81C2F5C: @ 81C2F5C + push {r4,r5,lr} + sub sp, 0x8 + bl sub_81A6BF4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081C2FC0 + bl sub_81B9E94 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081C2FC0 + ldr r5, =gStringVar1 + ldr r1, =gUnknown_085E8D59 + adds r0, r5, 0 + bl StringCopy + ldr r1, =gUnknown_0203CF1C + ldr r1, [r1] + adds r1, 0xB8 + ldrh r1, [r1] + movs r2, 0x2 + movs r3, 0x5 + bl ConvertIntToDecimalStringN + movs r0, 0x1 + adds r1, r5, 0 + movs r2, 0x38 + bl GetStringRightAlignXOffset + adds r4, r0, 0 + ldr r0, =gUnknown_0861CCCC + movs r1, 0x1 + bl sub_81C2D2C + lsls r0, 24 + lsrs r0, 24 + lsls r4, 24 + lsrs r4, 24 + movs r1, 0 + str r1, [sp] + movs r1, 0x1 + str r1, [sp, 0x4] + adds r1, r5, 0 + adds r2, r4, 0 + movs r3, 0x1 + bl sub_81C25A4 +_081C2FC0: + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C2F5C + + thumb_func_start sub_81C2FD8 +sub_81C2FD8: @ 81C2FD8 + push {r4,lr} + sub sp, 0x8 + ldr r0, =gUnknown_0203CF1C + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x70 + ldrh r0, [r0] + adds r1, 0x78 + ldrb r1, [r1] + bl sub_806B694 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =gUnknown_0861CCCC + movs r1, 0x2 + bl sub_81C2D2C + lsls r0, 24 + lsrs r0, 24 + movs r1, 0xD + muls r1, r4 + ldr r2, =gAbilityNames + adds r1, r2 + movs r2, 0 + str r2, [sp] + movs r2, 0x1 + str r2, [sp, 0x4] + movs r2, 0 + movs r3, 0x1 + bl sub_81C25A4 + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C2FD8 + + thumb_func_start sub_81C302C +sub_81C302C: @ 81C302C + push {r4,lr} + sub sp, 0x8 + ldr r0, =gUnknown_0203CF1C + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x70 + ldrh r0, [r0] + adds r1, 0x78 + ldrb r1, [r1] + bl sub_806B694 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =gUnknown_0861CCCC + movs r1, 0x2 + bl sub_81C2D2C + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gAbilityDescriptionPointers + lsls r4, 2 + adds r4, r1 + ldr r1, [r4] + movs r2, 0 + str r2, [sp] + str r2, [sp, 0x4] + movs r3, 0x11 + bl sub_81C25A4 + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C302C + + thumb_func_start sub_81C307C +sub_81C307C: @ 81C307C + push {r4-r6,lr} + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + adds r4, r0, 0 + adds r4, 0x70 + bl sub_81AFBF0 + ldr r1, =gUnknown_0861CE74 + movs r0, 0 + bl sub_81AFC0C + ldr r1, =gUnknown_0861CE7B + movs r0, 0x1 + bl sub_81AFC0C + bl sub_81C31C0 + bl sub_81A6BF4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081C30C2 + bl sub_81B9E94 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081C30C2 + bl sub_81C3304 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081C30E0 +_081C30C2: + ldr r0, =gStringVar4 + ldr r1, =gUnknown_085EA5DB + bl sub_81AFC28 + b _081C3182 + .pool +_081C30E0: + movs r0, 0x20 + bl Alloc + adds r6, r0, 0 + movs r0, 0x20 + bl Alloc + adds r5, r0, 0 + adds r0, r6, 0 + bl sub_81C31F0 + ldrb r0, [r4, 0x9] + cmp r0, 0xD4 + bhi _081C310C + adds r1, r0, 0 + adds r0, r5, 0 + bl sub_8124610 + movs r0, 0x4 + adds r1, r5, 0 + bl sub_81AFC0C +_081C310C: + bl sub_81C3220 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081C3148 + ldrb r0, [r4, 0xA] + cmp r0, 0 + bne _081C3134 + ldrb r0, [r4, 0x9] + ldr r1, =gUnknown_085EA516 + cmp r0, 0xD4 + bls _081C3170 + ldr r1, =gUnknown_085EA617 + b _081C3170 + .pool +_081C3134: + ldrb r0, [r4, 0x9] + ldr r1, =gUnknown_085EA4EC + cmp r0, 0xD4 + bls _081C3170 + ldr r1, =gUnknown_085EA5EB + b _081C3170 + .pool +_081C3148: + ldrb r0, [r4, 0x9] + cmp r0, 0xFF + bne _081C3158 + ldr r1, =gUnknown_085EA56A + b _081C3170 + .pool +_081C3158: + cmp r0, 0xFE + beq _081C316E + bl sub_81C32BC + lsls r0, 24 + cmp r0, 0 + beq _081C316E + ldrb r0, [r4, 0x9] + ldr r1, =gUnknown_085EA5A8 + cmp r0, 0xD4 + bls _081C3170 +_081C316E: + ldr r1, =gUnknown_085EA544 +_081C3170: + ldr r0, =gStringVar4 + bl sub_81AFC28 + adds r0, r6, 0 + bl Free + adds r0, r5, 0 + bl Free +_081C3182: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C307C + + thumb_func_start sub_81C3194 +sub_81C3194: @ 81C3194 + push {lr} + sub sp, 0x8 + ldr r0, =gUnknown_0861CCCC + movs r1, 0x3 + bl sub_81C2D2C + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gStringVar4 + movs r2, 0 + str r2, [sp] + str r2, [sp, 0x4] + movs r3, 0x1 + bl sub_81C25A4 + add sp, 0x8 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C3194 + + thumb_func_start sub_81C31C0 +sub_81C31C0: @ 81C31C0 + push {lr} + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =gNatureNamePointers + adds r0, 0xA3 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + movs r0, 0x2 + bl sub_81AFC0C + ldr r1, =gUnknown_085EA3C0 + movs r0, 0x5 + bl sub_81AFC0C + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C31C0 + + thumb_func_start sub_81C31F0 +sub_81C31F0: @ 81C31F0 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + adds r0, 0x7A + ldrb r1, [r0] + cmp r1, 0 + bne _081C3202 + movs r1, 0x5 +_081C3202: + adds r0, r4, 0 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + movs r0, 0x3 + adds r1, r4, 0 + bl sub_81AFC0C + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C31F0 + + thumb_func_start sub_81C3220 +sub_81C3220: @ 81C3220 + push {r4-r6,lr} + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + adds r6, r0, 0 + adds r6, 0x70 + ldr r1, [r0] + ldr r0, =gEnemyParty + cmp r1, r0 + bne _081C326C + bl link_get_multiplayer_id + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gUnknown_020229E8 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r0, r2, 0x4 + adds r0, r1, r0 + ldrh r4, [r0] + adds r0, r1, r2 + ldrb r5, [r0, 0x13] + ldr r0, =gStringVar1 + adds r2, 0x8 + adds r1, r2 + bl StringCopy + b _081C3282 + .pool +_081C326C: + bl sub_80F0020 + adds r4, r0, 0 + ldr r0, =0x0000ffff + ands r4, r0 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldrb r5, [r1, 0x8] + ldr r0, =gStringVar1 + bl StringCopy +_081C3282: + adds r0, r6, 0 + adds r0, 0x32 + ldrb r0, [r0] + cmp r5, r0 + bne _081C32A4 + ldr r0, [r6, 0x48] + ldr r1, =0x0000ffff + ands r0, r1 + cmp r4, r0 + bne _081C32A4 + ldr r0, =gStringVar1 + adds r1, r6, 0 + adds r1, 0x36 + bl StringCompareWithoutExtCtrlCodes + cmp r0, 0 + beq _081C32B4 +_081C32A4: + movs r0, 0 + b _081C32B6 + .pool +_081C32B4: + movs r0, 0x1 +_081C32B6: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81C3220 + + thumb_func_start sub_81C32BC +sub_81C32BC: @ 81C32BC + push {lr} + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + adds r0, 0x70 + ldrb r0, [r0, 0xB] + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bls _081C32D8 + movs r0, 0 + b _081C32DA + .pool +_081C32D8: + movs r0, 0x1 +_081C32DA: + pop {r1} + bx r1 + thumb_func_end sub_81C32BC + + thumb_func_start sub_81C32E0 +sub_81C32E0: @ 81C32E0 + push {lr} + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + adds r0, 0x70 + ldrb r0, [r0, 0xB] + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bls _081C32FC + movs r0, 0 + b _081C32FE + .pool +_081C32FC: + movs r0, 0x1 +_081C32FE: + pop {r1} + bx r1 + thumb_func_end sub_81C32E0 + + thumb_func_start sub_81C3304 +sub_81C3304: @ 81C3304 + push {lr} + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 15 + ands r0, r1 + cmp r0, 0 + beq _081C3354 + ldr r0, =gMain + ldr r1, =0x00000439 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081C3354 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040be + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _081C333A + cmp r0, 0x4 + beq _081C333A + cmp r0, 0x5 + bne _081C3354 +_081C333A: + movs r0, 0x1 + b _081C3356 + .pool +_081C3354: + movs r0, 0 +_081C3356: + pop {r1} + bx r1 + thumb_func_end sub_81C3304 + + thumb_func_start sub_81C335C +sub_81C335C: @ 81C335C + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x8 + ldr r0, =gUnknown_0861CCCC + movs r1, 0 + bl sub_81C2D2C + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =gUnknown_085EA365 + mov r8, r0 + movs r0, 0x1 + mov r1, r8 + movs r2, 0 + bl GetStringWidth + adds r5, r0, 0 + movs r0, 0 + mov r9, r0 + str r0, [sp] + movs r6, 0x1 + str r6, [sp, 0x4] + adds r0, r4, 0 + mov r1, r8 + movs r2, 0 + movs r3, 0x1 + bl sub_81C25A4 + ldr r1, =gUnknown_085E8D38 + lsls r5, 24 + lsrs r5, 24 + mov r0, r9 + str r0, [sp] + str r6, [sp, 0x4] + adds r0, r4, 0 + adds r2, r5, 0 + movs r3, 0x1 + bl sub_81C25A4 + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C335C + + thumb_func_start sub_81C33CC +sub_81C33CC: @ 81C33CC + push {r4,r5,lr} + sub sp, 0x8 + ldr r5, =gStringVar1 + ldr r1, =gUnknown_085E8D59 + adds r0, r5, 0 + bl StringCopy + ldr r1, =gUnknown_085E8D38 + adds r0, r5, 0 + bl StringAppend + movs r0, 0x1 + adds r1, r5, 0 + movs r2, 0x38 + bl GetStringRightAlignXOffset + adds r4, r0, 0 + ldr r0, =gUnknown_0861CCCC + movs r1, 0x1 + bl sub_81C2D2C + lsls r0, 24 + lsrs r0, 24 + lsls r4, 24 + lsrs r4, 24 + movs r1, 0 + str r1, [sp] + movs r1, 0x1 + str r1, [sp, 0x4] + adds r1, r5, 0 + adds r2, r4, 0 + movs r3, 0x1 + bl sub_81C25A4 + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C33CC + + thumb_func_start sub_81C3428 +sub_81C3428: @ 81C3428 + push {r4,lr} + sub sp, 0x8 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + adds r1, r0, 0 + adds r1, 0x70 + adds r0, 0xA5 + ldrb r0, [r0] + cmp r0, 0x1 + bne _081C3448 + ldr r4, =gUnknown_085EA40B + b _081C346C + .pool +_081C3448: + ldrh r0, [r1, 0x30] + cmp r0, 0x5 + bhi _081C3458 + ldr r4, =gUnknown_085EA4A2 + b _081C346C + .pool +_081C3458: + cmp r0, 0xA + bhi _081C3464 + ldr r4, =gUnknown_085EA475 + b _081C346C + .pool +_081C3464: + ldr r4, =gUnknown_085EA40B + cmp r0, 0x28 + bhi _081C346C + ldr r4, =gUnknown_085EA442 +_081C346C: + ldr r0, =gUnknown_0861CCCC + movs r1, 0x2 + bl sub_81C2D2C + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_81C25A4 + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C3428 + + thumb_func_start sub_81C349C +sub_81C349C: @ 81C349C + push {r4,lr} + sub sp, 0x8 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + adds r4, r0, 0 + adds r4, 0x70 + adds r0, 0xA5 + ldrb r0, [r0] + cmp r0, 0x1 + beq _081C3500 + ldrb r0, [r4, 0x9] + cmp r0, 0xFF + bne _081C34C4 + ldr r4, =gUnknown_085EA678 + b _081C3502 + .pool +_081C34C4: + bl sub_81C32BC + lsls r0, 24 + cmp r0, 0 + beq _081C34D8 + bl sub_81C3220 + lsls r0, 24 + cmp r0, 0 + bne _081C34E0 +_081C34D8: + ldr r4, =gUnknown_085EA6AB + b _081C3502 + .pool +_081C34E0: + ldrb r0, [r4, 0x9] + cmp r0, 0xFD + bne _081C3500 + bl sub_81C32E0 + lsls r0, 24 + lsrs r0, 24 + ldr r4, =gUnknown_085EA702 + cmp r0, 0x1 + bne _081C3502 + ldr r4, =gUnknown_085EA6D7 + b _081C3502 + .pool +_081C3500: + ldr r4, =gUnknown_085EA647 +_081C3502: + ldr r0, =gUnknown_0861CCCC + movs r1, 0x3 + bl sub_81C2D2C + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_81C25A4 + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C349C + + thumb_func_start sub_81C3530 +sub_81C3530: @ 81C3530 + push {lr} + bl sub_81C35E4 + bl sub_81C3690 + bl sub_81C3710 + bl sub_81C37D8 + bl sub_81C3808 + bl sub_81C3890 + bl sub_81C38C0 + pop {r0} + bx r0 + thumb_func_end sub_81C3530 + + thumb_func_start sub_81C3554 +sub_81C3554: @ 81C3554 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + ldrh r0, [r4] + subs r0, 0x1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + bhi _081C35D6 + lsls r0, 2 + ldr r1, =_081C3584 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081C3584: + .4byte _081C35A4 + .4byte _081C35AA + .4byte _081C35B0 + .4byte _081C35B6 + .4byte _081C35BC + .4byte _081C35C2 + .4byte _081C35C8 + .4byte _081C35CE +_081C35A4: + bl sub_81C35E4 + b _081C35D6 +_081C35AA: + bl sub_81C3690 + b _081C35D6 +_081C35B0: + bl sub_81C3710 + b _081C35D6 +_081C35B6: + bl sub_81C37D8 + b _081C35D6 +_081C35BC: + bl sub_81C3808 + b _081C35D6 +_081C35C2: + bl sub_81C3890 + b _081C35D6 +_081C35C8: + bl sub_81C38C0 + b _081C35D6 +_081C35CE: + adds r0, r2, 0 + bl DestroyTask + b _081C35DC +_081C35D6: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_081C35DC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81C3554 + + thumb_func_start sub_81C35E4 +sub_81C35E4: @ 81C35E4 + push {r4,r5,lr} + sub sp, 0x8 + ldr r4, =gUnknown_0203CF1C + ldr r0, [r4] + adds r0, 0x9E + ldrh r0, [r0] + cmp r0, 0xAF + bne _081C3628 + bl sub_81B1250 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081C3628 + ldr r0, [r4] + ldr r1, =0x000040be + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _081C3614 + cmp r0, 0x4 + beq _081C3614 + cmp r0, 0x5 + bne _081C3628 +_081C3614: + movs r0, 0xAF + bl ItemId_GetItem + adds r5, r0, 0 + b _081C3650 + .pool +_081C3628: + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + adds r1, r0, 0 + adds r1, 0x9E + ldrh r0, [r1] + cmp r0, 0 + bne _081C3644 + ldr r5, =gUnknown_085E8D26 + b _081C3650 + .pool +_081C3644: + ldrh r0, [r1] + ldr r4, =gStringVar1 + adds r1, r4, 0 + bl CopyItemName + adds r5, r4, 0 +_081C3650: + movs r0, 0x1 + adds r1, r5, 0 + movs r2, 0x48 + bl GetStringCenterAlignXOffset + adds r4, r0, 0 + adds r4, 0x6 + ldr r0, =gUnknown_0861CCEC + movs r1, 0 + bl sub_81C2D2C + lsls r0, 24 + lsrs r0, 24 + lsls r4, 24 + lsrs r4, 24 + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + adds r1, r5, 0 + adds r2, r4, 0 + movs r3, 0x1 + bl sub_81C25A4 + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C35E4 + + thumb_func_start sub_81C3690 +sub_81C3690: @ 81C3690 + push {r4,r5,lr} + sub sp, 0x8 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + adds r1, r0, 0 + adds r1, 0x76 + ldrb r0, [r1] + cmp r0, 0 + bne _081C36B0 + ldr r5, =gUnknown_085E8D26 + b _081C36C8 + .pool +_081C36B0: + ldr r0, =gStringVar1 + ldrb r1, [r1] + movs r2, 0x1 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085EA3B4 + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r5, r4, 0 +_081C36C8: + movs r0, 0x1 + adds r1, r5, 0 + movs r2, 0x46 + bl GetStringCenterAlignXOffset + adds r4, r0, 0 + adds r4, 0x6 + ldr r0, =gUnknown_0861CCEC + movs r1, 0x1 + bl sub_81C2D2C + lsls r0, 24 + lsrs r0, 24 + lsls r4, 24 + lsrs r4, 24 + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + adds r1, r5, 0 + adds r2, r4, 0 + movs r3, 0x1 + bl sub_81C25A4 + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C3690 + + thumb_func_start sub_81C3710 +sub_81C3710: @ 81C3710 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + movs r0, 0x8 + bl Alloc + mov r9, r0 + movs r0, 0x8 + bl Alloc + mov r8, r0 + movs r0, 0x8 + bl Alloc + adds r6, r0, 0 + movs r0, 0x8 + bl Alloc + adds r5, r0, 0 + ldr r4, =gUnknown_0203CF1C + ldr r0, [r4] + adds r0, 0x90 + ldrh r1, [r0] + mov r0, r9 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + ldr r0, [r4] + adds r0, 0x92 + ldrh r1, [r0] + mov r0, r8 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + ldr r0, [r4] + adds r0, 0x94 + ldrh r1, [r0] + adds r0, r6, 0 + movs r2, 0x1 + movs r3, 0x7 + bl ConvertIntToDecimalStringN + ldr r0, [r4] + adds r0, 0x96 + ldrh r1, [r0] + adds r0, r5, 0 + movs r2, 0x1 + movs r3, 0x7 + bl ConvertIntToDecimalStringN + bl sub_81AFBF0 + movs r0, 0 + mov r1, r9 + bl sub_81AFC0C + movs r0, 0x1 + mov r1, r8 + bl sub_81AFC0C + movs r0, 0x2 + adds r1, r6, 0 + bl sub_81AFC0C + movs r0, 0x3 + adds r1, r5, 0 + bl sub_81AFC0C + ldr r0, =gStringVar4 + ldr r1, =gUnknown_0861CE82 + bl sub_81AFC28 + mov r0, r9 + bl Free + mov r0, r8 + bl Free + adds r0, r6, 0 + bl Free + adds r0, r5, 0 + bl Free + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C3710 + + thumb_func_start sub_81C37D8 +sub_81C37D8: @ 81C37D8 + push {lr} + sub sp, 0x8 + ldr r0, =gUnknown_0861CCEC + movs r1, 0x2 + bl sub_81C2D2C + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gStringVar4 + movs r2, 0 + str r2, [sp] + str r2, [sp, 0x4] + movs r2, 0x4 + movs r3, 0x1 + bl sub_81C25A4 + add sp, 0x8 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C37D8 + + thumb_func_start sub_81C3808 +sub_81C3808: @ 81C3808 + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r0, =gStringVar1 + mov r8, r0 + ldr r4, =gUnknown_0203CF1C + ldr r0, [r4] + adds r0, 0x98 + ldrh r1, [r0] + mov r0, r8 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + ldr r6, =gStringVar2 + ldr r0, [r4] + adds r0, 0x9A + ldrh r1, [r0] + adds r0, r6, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + ldr r5, =gStringVar3 + ldr r0, [r4] + adds r0, 0x9C + ldrh r1, [r0] + adds r0, r5, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + bl sub_81AFBF0 + movs r0, 0 + mov r1, r8 + bl sub_81AFC0C + movs r0, 0x1 + adds r1, r6, 0 + bl sub_81AFC0C + movs r0, 0x2 + adds r1, r5, 0 + bl sub_81AFC0C + ldr r0, =gStringVar4 + ldr r1, =gUnknown_0861CE8E + bl sub_81AFC28 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C3808 + + thumb_func_start sub_81C3890 +sub_81C3890: @ 81C3890 + push {lr} + sub sp, 0x8 + ldr r0, =gUnknown_0861CCEC + movs r1, 0x3 + bl sub_81C2D2C + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gStringVar4 + movs r2, 0 + str r2, [sp] + str r2, [sp, 0x4] + movs r2, 0x2 + movs r3, 0x1 + bl sub_81C25A4 + add sp, 0x8 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C3890 + + thumb_func_start sub_81C38C0 +sub_81C38C0: @ 81C38C0 + push {r4-r6,lr} + sub sp, 0x8 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + adds r5, r0, 0 + adds r5, 0x70 + ldr r0, =gUnknown_0861CCEC + movs r1, 0x4 + bl sub_81C2D2C + lsls r0, 24 + lsrs r6, r0, 24 + ldr r4, =gStringVar1 + ldr r1, [r5, 0x10] + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x7 + bl ConvertIntToDecimalStringN + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x2A + bl GetStringRightAlignXOffset + adds r0, 0x2 + lsls r2, r0, 24 + lsrs r2, 24 + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + adds r0, r6, 0 + adds r1, r4, 0 + movs r3, 0x1 + bl sub_81C25A4 + ldrb r0, [r5, 0x5] + cmp r0, 0x63 + bhi _081C3948 + ldr r4, =gExperienceTables + adds r1, r0, 0 + adds r1, 0x1 + lsls r1, 2 + ldr r3, =gBaseStats + ldrh r2, [r5] + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r3 + ldrb r2, [r0, 0x13] + movs r0, 0xCA + lsls r0, 1 + muls r0, r2 + adds r1, r0 + adds r1, r4 + ldr r1, [r1] + ldr r0, [r5, 0x10] + subs r1, r0 + b _081C394A + .pool +_081C3948: + movs r1, 0 +_081C394A: + ldr r4, =gStringVar1 + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x6 + bl ConvertIntToDecimalStringN + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x2A + bl GetStringRightAlignXOffset + adds r0, 0x2 + lsls r2, r0, 24 + lsrs r2, 24 + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + adds r0, r6, 0 + adds r1, r4, 0 + movs r3, 0x11 + bl sub_81C25A4 + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C38C0 + + thumb_func_start sub_81C3984 +sub_81C3984: @ 81C3984 + push {r4,lr} + movs r0, 0 + bl sub_81C3B08 + movs r0, 0x1 + bl sub_81C3B08 + movs r0, 0x2 + bl sub_81C3B08 + movs r0, 0x3 + bl sub_81C3B08 + ldr r4, =gUnknown_0203CF1C + ldr r0, [r4] + ldr r1, =0x000040bc + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x3 + bne _081C39EA + bl sub_81C3F44 + ldr r1, [r4] + ldr r0, =0x000040c6 + adds r2, r1, r0 + ldrb r0, [r2] + cmp r0, 0x4 + bne _081C39DC + ldr r0, =0x000040c4 + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0 + beq _081C39EA + bl sub_81C3E9C + b _081C39EA + .pool +_081C39DC: + ldrb r0, [r2] + lsls r0, 1 + adds r1, 0x84 + adds r1, r0 + ldrh r0, [r1] + bl sub_81C3E9C +_081C39EA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81C3984 + + thumb_func_start sub_81C39F0 +sub_81C39F0: @ 81C39F0 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + ldrh r0, [r4] + subs r0, 0x1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + bhi _081C3AFC + lsls r0, 2 + ldr r1, =_081C3A20 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081C3A20: + .4byte _081C3A40 + .4byte _081C3A48 + .4byte _081C3A50 + .4byte _081C3A58 + .4byte _081C3A60 + .4byte _081C3A7C + .4byte _081C3ABE + .4byte _081C3AF4 +_081C3A40: + movs r0, 0 + bl sub_81C3B08 + b _081C3AFC +_081C3A48: + movs r0, 0x1 + bl sub_81C3B08 + b _081C3AFC +_081C3A50: + movs r0, 0x2 + bl sub_81C3B08 + b _081C3AFC +_081C3A58: + movs r0, 0x3 + bl sub_81C3B08 + b _081C3AFC +_081C3A60: + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040bc + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x3 + bne _081C3AFC + bl sub_81C3F44 + b _081C3AFC + .pool +_081C3A7C: + ldr r0, =gUnknown_0203CF1C + ldr r1, [r0] + ldr r2, =0x000040bc + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0x3 + bne _081C3AFC + ldr r0, =0x000040c6 + adds r2, r1, r0 + ldrb r0, [r2] + cmp r0, 0x4 + bne _081C3AB0 + ldr r2, =0x000040c4 + adds r0, r1, r2 + ldrh r0, [r0] + strh r0, [r4, 0x2] + b _081C3AFC + .pool +_081C3AB0: + ldrb r0, [r2] + lsls r0, 1 + adds r1, 0x84 + adds r1, r0 + ldrh r0, [r1] + strh r0, [r4, 0x2] + b _081C3AFC +_081C3ABE: + ldr r0, =gUnknown_0203CF1C + ldr r1, [r0] + ldr r2, =0x000040bc + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0x3 + bne _081C3AFC + adds r2, 0x8 + adds r0, r1, r2 + ldr r0, [r0] + ldr r1, =0x00ffffff + ands r0, r1 + movs r1, 0x80 + lsls r1, 11 + cmp r0, r1 + beq _081C3AFC + ldrh r0, [r4, 0x2] + bl sub_81C3E9C + b _081C3AFC + .pool +_081C3AF4: + adds r0, r2, 0 + bl DestroyTask + b _081C3B02 +_081C3AFC: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_081C3B02: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81C39F0 + + thumb_func_start sub_81C3B08 +sub_81C3B08: @ 81C3B08 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + mov r10, r0 + ldr r4, =gUnknown_0861CD14 + adds r0, r4, 0 + movs r1, 0 + bl sub_81C2D2C + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81C2D2C + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x8] + lsls r1, r7, 1 + mov r0, r10 + adds r0, 0x84 + adds r0, r1 + ldrh r5, [r0] + cmp r5, 0 + beq _081C3C00 + mov r0, r10 + adds r0, 0xA4 + ldrb r1, [r0] + adds r0, r5, 0 + adds r2, r7, 0 + bl CalcPPWithPPUps + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + movs r0, 0xD + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gMoveNames + adds r1, r0 + lsls r0, r7, 4 + mov r9, r0 + mov r3, r9 + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0 + str r0, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + mov r0, r8 + movs r2, 0 + bl sub_81C25A4 + ldr r0, =gStringVar1 + mov r8, r0 + mov r5, r10 + adds r5, 0x8C + adds r5, r7 + ldrb r1, [r5] + movs r2, 0x1 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r4, =gStringVar2 + adds r0, r4, 0 + adds r1, r6, 0 + movs r2, 0x1 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + bl sub_81AFBF0 + movs r0, 0 + mov r1, r8 + bl sub_81AFC0C + movs r0, 0x1 + adds r1, r4, 0 + bl sub_81AFC0C + ldr r4, =gStringVar4 + ldr r1, =gUnknown_0861CE97 + adds r0, r4, 0 + bl sub_81AFC28 + adds r7, r4, 0 + ldrb r0, [r5] + adds r1, r6, 0 + bl sub_814FC20 + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + adds r5, 0x9 + movs r0, 0x1 + adds r1, r7, 0 + movs r2, 0x2C + bl GetStringRightAlignXOffset + mov r4, r9 + b _081C3C26 + .pool +_081C3C00: + ldr r1, =gUnknown_085E8D40 + lsls r4, r7, 4 + adds r3, r4, 0x1 + lsls r3, 24 + lsrs r3, 24 + str r5, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + mov r0, r8 + movs r2, 0 + bl sub_81C25A4 + ldr r7, =gUnknown_085E8D42 + movs r5, 0xC + movs r0, 0x1 + adds r1, r7, 0 + movs r2, 0x2C + bl GetStringCenterAlignXOffset +_081C3C26: + lsls r2, r0, 24 + lsrs r2, 24 + adds r3, r4, 0x1 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0 + str r0, [sp] + lsls r0, r5, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + ldr r0, [sp, 0x8] + adds r1, r7, 0 + bl sub_81C25A4 + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C3B08 + + thumb_func_start sub_81C3C5C +sub_81C3C5C: @ 81C3C5C + push {r4-r6,lr} + sub sp, 0x8 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + beq _081C3CFC + movs r0, 0x13 + str r0, [sp] + movs r0, 0x20 + str r0, [sp, 0x4] + movs r0, 0xE + movs r1, 0 + movs r2, 0x35 + movs r3, 0 + bl FillWindowPixelRect + ldr r2, =gBattleMoves + lsls r1, r5, 1 + adds r0, r1, r5 + lsls r0, 2 + adds r2, r0, r2 + ldrb r0, [r2, 0x1] + adds r6, r1, 0 + cmp r0, 0x1 + bhi _081C3C9C + ldr r1, =gUnknown_085E8D45 + b _081C3CAC + .pool +_081C3C9C: + ldr r4, =gStringVar1 + ldrb r1, [r2, 0x1] + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r1, r4, 0 +_081C3CAC: + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0xE + movs r2, 0x35 + movs r3, 0x1 + bl sub_81C25A4 + ldr r1, =gBattleMoves + adds r0, r6, r5 + lsls r0, 2 + adds r1, r0, r1 + ldrb r0, [r1, 0x3] + cmp r0, 0 + bne _081C3CDC + ldr r1, =gUnknown_085E8D45 + b _081C3CEC + .pool +_081C3CDC: + ldr r4, =gStringVar1 + ldrb r1, [r1, 0x3] + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r1, r4, 0 +_081C3CEC: + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0xE + movs r2, 0x35 + movs r3, 0x11 + bl sub_81C25A4 +_081C3CFC: + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C3C5C + + thumb_func_start sub_81C3D08 +sub_81C3D08: @ 81C3D08 + push {r4,lr} + movs r0, 0 + bl sub_81C3B08 + movs r0, 0x1 + bl sub_81C3B08 + movs r0, 0x2 + bl sub_81C3B08 + movs r0, 0x3 + bl sub_81C3B08 + ldr r4, =gUnknown_0203CF1C + ldr r0, [r4] + ldr r1, =0x000040bc + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x3 + bne _081C3D40 + bl sub_81C3F44 + ldr r0, [r4] + ldr r1, =0x000040c6 + adds r0, r1 + ldrb r0, [r0] + bl sub_81C3E2C +_081C3D40: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C3D08 + + thumb_func_start sub_81C3D54 +sub_81C3D54: @ 81C3D54 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + ldrh r0, [r4] + subs r0, 0x1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + bhi _081C3E20 + lsls r0, 2 + ldr r1, =_081C3D84 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081C3D84: + .4byte _081C3DA0 + .4byte _081C3DA8 + .4byte _081C3DB0 + .4byte _081C3DB8 + .4byte _081C3DC0 + .4byte _081C3DDC + .4byte _081C3E18 +_081C3DA0: + movs r0, 0 + bl sub_81C3B08 + b _081C3E20 +_081C3DA8: + movs r0, 0x1 + bl sub_81C3B08 + b _081C3E20 +_081C3DB0: + movs r0, 0x2 + bl sub_81C3B08 + b _081C3E20 +_081C3DB8: + movs r0, 0x3 + bl sub_81C3B08 + b _081C3E20 +_081C3DC0: + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040bc + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x3 + bne _081C3E20 + bl sub_81C3F44 + b _081C3E20 + .pool +_081C3DDC: + ldr r0, =gUnknown_0203CF1C + ldr r2, [r0] + ldr r1, =0x000040bc + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x3 + bne _081C3E20 + adds r1, 0x8 + adds r0, r2, r1 + ldr r0, [r0] + ldr r1, =0x00ffffff + ands r0, r1 + movs r1, 0x80 + lsls r1, 11 + cmp r0, r1 + beq _081C3E20 + ldr r1, =0x000040c6 + adds r0, r2, r1 + ldrb r0, [r0] + bl sub_81C3E2C + b _081C3E20 + .pool +_081C3E18: + adds r0, r2, 0 + bl DestroyTask + b _081C3E26 +_081C3E20: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_081C3E26: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81C3D54 + + thumb_func_start sub_81C3E2C +sub_81C3E2C: @ 81C3E2C + push {r4,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x4 + bne _081C3E48 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040c4 + b _081C3E50 + .pool +_081C3E48: + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + lsls r1, 1 + adds r0, 0x84 +_081C3E50: + adds r0, r1 + ldrh r4, [r0] + cmp r4, 0 + beq _081C3E82 + ldr r0, =gUnknown_0861CD14 + movs r1, 0x2 + bl sub_81C2D2C + lsls r0, 24 + lsrs r0, 24 + ldr r3, =gContestEffectDescriptionPointers + ldr r2, =gContestMoves + lsls r1, r4, 3 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 2 + adds r1, r3 + ldr r1, [r1] + movs r2, 0 + str r2, [sp] + str r2, [sp, 0x4] + movs r2, 0x6 + movs r3, 0x1 + bl sub_81C25A4 +_081C3E82: + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C3E2C + + thumb_func_start sub_81C3E9C +sub_81C3E9C: @ 81C3E9C + push {r4-r6,lr} + sub sp, 0x8 + lsls r0, 16 + lsrs r4, r0, 16 + adds r6, r4, 0 + ldr r0, =gUnknown_0861CD14 + movs r1, 0x2 + bl sub_81C2D2C + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + movs r1, 0 + bl FillWindowPixelBuffer + cmp r4, 0 + beq _081C3F30 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040c0 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x2 + bne _081C3F00 + adds r0, r4, 0 + bl sub_81C3C5C + ldr r1, =gMoveDescriptionPointers + subs r0, r4, 0x1 + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r2, 0x6 + movs r3, 0x1 + bl sub_81C25A4 + b _081C3F20 + .pool +_081C3F00: + ldr r2, =gContestEffectDescriptionPointers + ldr r1, =gContestMoves + lsls r0, r6, 3 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r2 + ldr r1, [r0] + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r2, 0x6 + movs r3, 0x1 + bl sub_81C25A4 +_081C3F20: + adds r0, r5, 0 + bl PutWindowTilemap + b _081C3F36 + .pool +_081C3F30: + adds r0, r5, 0 + bl ClearWindowTilemap +_081C3F36: + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81C3E9C + + thumb_func_start sub_81C3F44 +sub_81C3F44: @ 81C3F44 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + ldr r4, =gUnknown_0861CD14 + adds r0, r4, 0 + movs r1, 0 + bl sub_81C2D2C + lsls r0, 24 + lsrs r6, r0, 24 + adds r7, r6, 0 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81C2D2C + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, =gUnknown_0203CF1C + ldr r1, [r0] + ldr r2, =0x000040c4 + adds r0, r1, r2 + ldrh r2, [r0] + cmp r2, 0 + bne _081C3F9C + ldr r1, =gUnknown_085E8CF0 + str r2, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + adds r0, r6, 0 + movs r2, 0 + movs r3, 0x41 + bl sub_81C25A4 + b _081C4044 + .pool +_081C3F9C: + ldrh r5, [r0] + ldr r2, =0x000040c0 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0x2 + bne _081C3FD0 + movs r0, 0xD + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gMoveNames + adds r1, r0 + movs r0, 0 + str r0, [sp] + movs r0, 0x6 + str r0, [sp, 0x4] + adds r0, r6, 0 + movs r2, 0 + movs r3, 0x41 + bl sub_81C25A4 + b _081C3FEC + .pool +_081C3FD0: + movs r0, 0xD + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gMoveNames + adds r1, r0 + movs r0, 0 + str r0, [sp] + movs r0, 0x5 + str r0, [sp, 0x4] + adds r0, r7, 0 + movs r2, 0 + movs r3, 0x41 + bl sub_81C25A4 +_081C3FEC: + ldr r4, =gStringVar1 + ldr r1, =gBattleMoves + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x4] + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + bl sub_81AFBF0 + movs r0, 0 + adds r1, r4, 0 + bl sub_81AFC0C + movs r0, 0x1 + adds r1, r4, 0 + bl sub_81AFC0C + ldr r4, =gStringVar4 + ldr r1, =gUnknown_0861CE97 + adds r0, r4, 0 + bl sub_81AFC28 + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x2C + bl GetStringRightAlignXOffset + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + movs r0, 0 + str r0, [sp] + movs r0, 0xC + str r0, [sp, 0x4] + mov r0, r8 + adds r1, r4, 0 + movs r3, 0x41 + bl sub_81C25A4 +_081C4044: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C3F44 + + thumb_func_start sub_81C4064 +sub_81C4064: @ 81C4064 + push {r4,lr} + sub sp, 0x8 + ldr r0, =gUnknown_0861CD14 + movs r1, 0 + bl sub_81C2D2C + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x48 + str r0, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + adds r0, r4, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x42 + bl FillWindowPixelRect + adds r0, r4, 0 + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C4064 + + thumb_func_start sub_81C40A0 +sub_81C40A0: @ 81C40A0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + mov r9, r0 + mov r10, r1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + mov r0, r10 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r5, =gUnknown_0861CD14 + adds r0, r5, 0 + movs r1, 0 + bl sub_81C2D2C + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_81C2D2C + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + mov r0, r9 + lsls r6, r0, 4 + movs r0, 0x48 + mov r8, r0 + str r0, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + adds r0, r4, 0 + movs r1, 0 + movs r2, 0 + adds r3, r6, 0 + bl FillWindowPixelRect + mov r0, r10 + lsls r7, r0, 4 + mov r0, r8 + str r0, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + adds r0, r4, 0 + movs r1, 0 + movs r2, 0 + adds r3, r7, 0 + bl FillWindowPixelRect + movs r4, 0x30 + str r4, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0 + adds r3, r6, 0 + bl FillWindowPixelRect + str r4, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0 + adds r3, r7, 0 + bl FillWindowPixelRect + mov r0, r9 + bl sub_81C3B08 + mov r0, r10 + bl sub_81C3B08 + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C40A0 + + thumb_func_start sub_81C4154 +sub_81C4154: @ 81C4154 + push {r4,lr} + sub sp, 0x8 + ldr r0, =gUnknown_0861CD14 + movs r1, 0x2 + bl sub_81C2D2C + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + movs r1, 0 + bl FillWindowPixelBuffer + ldr r1, =gUnknown_085EA4CB + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + adds r0, r4, 0 + movs r2, 0x6 + movs r3, 0x1 + bl sub_81C25A4 + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C4154 + + thumb_func_start sub_81C4190 +sub_81C4190: @ 81C4190 + push {r4,r5,lr} + movs r2, 0 + ldr r5, =gUnknown_0203CF1C + ldr r4, =0x000040d3 + movs r3, 0xFF +_081C419A: + ldr r0, [r5] + adds r0, r4 + adds r0, r2 + ldrb r1, [r0] + orrs r1, r3 + strb r1, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x1B + bls _081C419A + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C4190 + + thumb_func_start sub_81C41C0 +sub_81C41C0: @ 81C41C0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r5, =gUnknown_0203CF1C + ldr r0, [r5] + ldr r1, =0x000040d3 + adds r0, r1 + adds r1, r0, r4 + ldrb r0, [r1] + cmp r0, 0xFF + beq _081C41F2 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + bl DestroySprite + ldr r0, [r5] + ldr r1, =0x000040d3 + adds r0, r1 + adds r0, r4 + movs r1, 0xFF + strb r1, [r0] +_081C41F2: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C41C0 + + thumb_func_start sub_81C4204 +sub_81C4204: @ 81C4204 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r3, =gSprites + ldr r2, =gUnknown_0203CF1C + ldr r2, [r2] + ldr r4, =0x000040d3 + adds r2, r4 + adds r2, r0 + ldrb r0, [r2] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + adds r2, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r3, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C4204 + + thumb_func_start sub_81C424C +sub_81C424C: @ 81C424C + push {r4,lr} + movs r4, 0x3 +_081C4250: + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040d3 + adds r0, r1 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0xFF + beq _081C4268 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81C4204 +_081C4268: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1B + bls _081C4250 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C424C + + thumb_func_start sub_81C4280 +sub_81C4280: @ 81C4280 + push {lr} + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040c0 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x2 + beq _081C42B0 + cmp r0, 0x2 + bgt _081C42A4 + cmp r0, 0 + beq _081C42AA + b _081C42C2 + .pool +_081C42A4: + cmp r0, 0x3 + beq _081C42BA + b _081C42C2 +_081C42AA: + bl sub_81C43A0 + b _081C42C2 +_081C42B0: + bl sub_81C4420 + bl sub_81C44F0 + b _081C42C2 +_081C42BA: + bl sub_81C4484 + bl sub_81C44F0 +_081C42C2: + pop {r0} + bx r0 + thumb_func_end sub_81C4280 + + thumb_func_start sub_81C42C8 +sub_81C42C8: @ 81C42C8 + push {r4,r5,lr} + movs r4, 0x3 + ldr r5, =gUnknown_0203CF1C +_081C42CE: + ldr r0, [r5] + ldr r1, =0x000040d3 + adds r0, r1 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0xFF + bne _081C42F2 + ldr r0, =gUnknown_0861CFC4 + movs r1, 0 + movs r2, 0 + movs r3, 0x2 + bl CreateSprite + ldr r1, [r5] + ldr r2, =0x000040d3 + adds r1, r2 + adds r1, r4 + strb r0, [r1] +_081C42F2: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81C4204 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x7 + bls _081C42CE + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C42C8 + + thumb_func_start sub_81C4318 +sub_81C4318: @ 81C4318 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x4 + adds r5, r0, 0 + adds r6, r1, 0 + mov r8, r2 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r3, 24 + lsrs r3, 24 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040d3 + adds r0, r1 + adds r0, r3 + ldrb r0, [r0] + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, =gSprites + adds r4, r0 + adds r0, r4, 0 + adds r1, r5, 0 + str r3, [sp] + bl StartSpriteAnim + ldr r0, =gUnknown_0861CFDC + adds r5, r0 + ldrb r1, [r5] + lsls r1, 4 + ldrb r2, [r4, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + adds r6, 0x10 + strh r6, [r4, 0x20] + movs r0, 0x8 + add r8, r0 + mov r1, r8 + strh r1, [r4, 0x22] + ldr r3, [sp] + adds r0, r3, 0 + movs r1, 0 + bl sub_81C4204 + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C4318 + + thumb_func_start sub_81C43A0 +sub_81C43A0: @ 81C43A0 + push {r4,r5,lr} + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + adds r5, r0, 0 + adds r5, 0x70 + ldrb r0, [r5, 0x4] + cmp r0, 0 + beq _081C43CC + movs r0, 0x9 + movs r1, 0x78 + movs r2, 0x30 + movs r3, 0x3 + bl sub_81C4318 + movs r0, 0x4 + movs r1, 0x1 + bl sub_81C4204 + b _081C4418 + .pool +_081C43CC: + ldr r4, =gBaseStats + ldrh r1, [r5] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x6] + movs r1, 0x78 + movs r2, 0x30 + movs r3, 0x3 + bl sub_81C4318 + ldrh r1, [r5] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r0, r4 + ldrb r0, [r1, 0x6] + ldrb r2, [r1, 0x7] + cmp r0, r2 + beq _081C4410 + ldrb r0, [r1, 0x7] + movs r1, 0xA0 + movs r2, 0x30 + movs r3, 0x4 + bl sub_81C4318 + movs r0, 0x4 + movs r1, 0 + bl sub_81C4204 + b _081C4418 + .pool +_081C4410: + movs r0, 0x4 + movs r1, 0x1 + bl sub_81C4204 +_081C4418: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81C43A0 + + thumb_func_start sub_81C4420 +sub_81C4420: @ 81C4420 + push {r4-r6,lr} + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + adds r5, r0, 0 + adds r5, 0x70 + movs r4, 0 + ldr r6, =gBattleMoves +_081C442E: + lsls r0, r4, 1 + adds r1, r5, 0 + adds r1, 0x14 + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0 + beq _081C4468 + adds r1, r0, 0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r0, [r0, 0x2] + lsls r2, r4, 28 + movs r1, 0x80 + lsls r1, 22 + adds r2, r1 + lsrs r2, 24 + adds r3, r4, 0x3 + lsls r3, 24 + lsrs r3, 24 + movs r1, 0x55 + bl sub_81C4318 + b _081C4474 + .pool +_081C4468: + adds r0, r4, 0x3 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + bl sub_81C4204 +_081C4474: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _081C442E + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81C4420 + + thumb_func_start sub_81C4484 +sub_81C4484: @ 81C4484 + push {r4,r5,lr} + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + adds r5, r0, 0 + adds r5, 0x70 + movs r4, 0 +_081C4490: + lsls r0, r4, 1 + adds r1, r5, 0 + adds r1, 0x14 + adds r2, r1, r0 + ldrh r0, [r2] + cmp r0, 0 + beq _081C44D4 + ldr r1, =gContestMoves + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0, 0x1] + lsls r0, 29 + lsrs r0, 5 + movs r1, 0x90 + lsls r1, 21 + adds r0, r1 + lsrs r0, 24 + lsls r2, r4, 28 + movs r1, 0x80 + lsls r1, 22 + adds r2, r1 + lsrs r2, 24 + adds r3, r4, 0x3 + lsls r3, 24 + lsrs r3, 24 + movs r1, 0x55 + bl sub_81C4318 + b _081C44E0 + .pool +_081C44D4: + adds r0, r4, 0x3 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + bl sub_81C4204 +_081C44E0: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _081C4490 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81C4484 + + thumb_func_start sub_81C44F0 +sub_81C44F0: @ 81C44F0 + push {lr} + ldr r0, =gUnknown_0203CF1C + ldr r1, [r0] + ldr r0, =0x000040c4 + adds r3, r1, r0 + ldrh r0, [r3] + cmp r0, 0 + bne _081C4514 + movs r0, 0x7 + movs r1, 0x1 + bl sub_81C4204 + b _081C4560 + .pool +_081C4514: + ldr r2, =0x000040c0 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0x2 + bne _081C4540 + ldr r2, =gBattleMoves + ldrh r1, [r3] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x2] + movs r1, 0x55 + movs r2, 0x60 + movs r3, 0x7 + bl sub_81C4318 + b _081C4560 + .pool +_081C4540: + ldr r1, =gContestMoves + ldrh r0, [r3] + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0, 0x1] + lsls r0, 29 + lsrs r0, 5 + movs r1, 0x90 + lsls r1, 21 + adds r0, r1 + lsrs r0, 24 + movs r1, 0x55 + movs r2, 0x60 + movs r3, 0x7 + bl sub_81C4318 +_081C4560: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C44F0 + + thumb_func_start sub_81C4568 +sub_81C4568: @ 81C4568 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r2, =gUnknown_0203CF1C + ldr r2, [r2] + adds r0, 0x3 + ldr r3, =0x000040d3 + adds r2, r3 + adds r0, r2, r0 + ldrb r0, [r0] + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r5, =gSprites + adds r4, r5 + adds r1, 0x3 + adds r2, r1 + ldrb r0, [r2] + lsls r3, r0, 4 + adds r3, r0 + lsls r3, 2 + adds r3, r5 + adds r5, r4, 0 + adds r5, 0x2A + ldrb r1, [r5] + adds r2, r3, 0 + adds r2, 0x2A + ldrb r0, [r2] + strb r0, [r5] + strb r1, [r2] + ldrb r6, [r4, 0x5] + lsrs r5, r6, 4 + ldrb r2, [r3, 0x5] + lsrs r2, 4 + lsls r2, 4 + movs r1, 0xF + adds r0, r1, 0 + ands r0, r6 + orrs r0, r2 + strb r0, [r4, 0x5] + lsls r5, 4 + ldrb r0, [r3, 0x5] + ands r1, r0 + orrs r1, r5 + strb r1, [r3, 0x5] + adds r4, 0x3F + ldrb r0, [r4] + movs r2, 0x4 + orrs r0, r2 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r4] + adds r3, 0x3F + ldrb r0, [r3] + orrs r0, r2 + ands r0, r1 + strb r0, [r3] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C4568 + + thumb_func_start sub_81C45F4 +sub_81C45F4: @ 81C45F4 + push {r4-r6,lr} + adds r3, r0, 0 + adds r6, r1, 0 + ldr r0, =gUnknown_0203CF1C + ldr r2, [r0] + adds r5, r2, 0 + adds r5, 0x70 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + beq _081C4620 + cmp r0, 0x1 + bne _081C4610 + b _081C4750 +_081C4610: + adds r0, r3, 0 + bl sub_81C47B4 + lsls r0, 24 + lsrs r0, 24 + b _081C4770 + .pool +_081C4620: + ldr r0, =gMain + ldr r1, =0x00000439 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081C4680 + ldr r1, =0x000040be + adds r0, r2, r1 + ldrb r1, [r0] + movs r0, 0x3 + bl sub_80688F8 + lsls r0, 24 + cmp r0, 0 + beq _081C4668 + ldrh r2, [r5, 0x2] + lsls r0, r2, 3 + ldr r1, =gMonFrontPicTable + adds r0, r1 + ldr r1, =gUnknown_020244D4 + ldr r1, [r1] + ldr r1, [r1, 0x8] + b _081C46D6 + .pool +_081C4668: + ldrh r2, [r5, 0x2] + lsls r0, r2, 3 + ldr r1, =gMonFrontPicTable + adds r0, r1 + ldr r1, =gUnknown_020244D4 + ldr r1, [r1] + b _081C46B0 + .pool +_081C4680: + ldr r0, =gUnknown_020244D4 + ldr r3, [r0] + adds r4, r0, 0 + cmp r3, 0 + beq _081C46E4 + ldr r1, [r2] + ldr r0, =gPlayerParty + cmp r1, r0 + beq _081C46A6 + ldr r1, =0x000040bc + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x2 + beq _081C46A6 + adds r1, 0x33 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _081C46CC +_081C46A6: + ldrh r2, [r5, 0x2] + lsls r0, r2, 3 + ldr r1, =gMonFrontPicTable + adds r0, r1 + ldr r1, [r4] +_081C46B0: + ldr r1, [r1, 0x8] + ldr r3, [r5, 0xC] + bl HandleLoadSpecialPokePic_2 + b _081C4768 + .pool +_081C46CC: + ldrh r2, [r5, 0x2] + lsls r0, r2, 3 + ldr r1, =gMonFrontPicTable + adds r0, r1 + ldr r1, [r3, 0x8] +_081C46D6: + ldr r3, [r5, 0xC] + bl HandleLoadSpecialPokePic_DontHandleDeoxys + b _081C4768 + .pool +_081C46E4: + ldr r1, [r2] + ldr r0, =gPlayerParty + cmp r1, r0 + beq _081C4700 + ldr r1, =0x000040bc + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x2 + beq _081C4700 + adds r1, 0x33 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _081C472C +_081C4700: + ldrh r4, [r5, 0x2] + lsls r4, 3 + ldr r0, =gMonFrontPicTable + adds r4, r0 + movs r0, 0 + movs r1, 0x1 + bl sub_806F4F8 + adds r1, r0, 0 + ldrh r2, [r5, 0x2] + ldr r3, [r5, 0xC] + adds r0, r4, 0 + bl HandleLoadSpecialPokePic_2 + b _081C4768 + .pool +_081C472C: + ldrh r4, [r5, 0x2] + lsls r4, 3 + ldr r0, =gMonFrontPicTable + adds r4, r0 + movs r0, 0 + movs r1, 0x1 + bl sub_806F4F8 + adds r1, r0, 0 + ldrh r2, [r5, 0x2] + ldr r3, [r5, 0xC] + adds r0, r4, 0 + bl HandleLoadSpecialPokePic_DontHandleDeoxys + b _081C4768 + .pool +_081C4750: + ldrh r0, [r5, 0x2] + ldr r1, [r5, 0x48] + ldr r2, [r5, 0xC] + bl sub_806E7CC + adds r4, r0, 0 + bl LoadCompressedObjectPalette + ldrh r0, [r4, 0x4] + movs r1, 0x1 + bl sub_806A068 +_081C4768: + ldrh r0, [r6] + adds r0, 0x1 + strh r0, [r6] + movs r0, 0xFF +_081C4770: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81C45F4 + + thumb_func_start sub_81C4778 +sub_81C4778: @ 81C4778 + push {r4,lr} + ldr r0, =gUnknown_0203CF1C + ldr r1, [r0] + adds r4, r1, 0 + adds r4, 0x70 + ldrb r0, [r4, 0x4] + cmp r0, 0 + bne _081C47AE + adds r0, r1, 0 + adds r0, 0xC + bl sub_805F110 + cmp r0, 0x1 + bne _081C47A4 + ldrh r0, [r4, 0x2] + movs r1, 0 + movs r2, 0 + bl PlayCry3 + b _081C47AE + .pool +_081C47A4: + ldrh r0, [r4, 0x2] + movs r1, 0 + movs r2, 0xB + bl PlayCry3 +_081C47AE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81C4778 + + thumb_func_start sub_81C47B4 +sub_81C47B4: @ 81C47B4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, =gUnknown_0203CF1C + ldr r6, [r0] + adds r6, 0x70 + ldr r0, =gUnknown_0202499C + movs r1, 0x28 + movs r2, 0x40 + movs r3, 0x5 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r4, r0, 4 + add r4, r8 + lsls r4, 2 + ldr r5, =gSprites + adds r7, r4, r5 + adds r0, r7, 0 + bl FreeSpriteOamMatrix + ldrh r0, [r6, 0x2] + movs r1, 0 + strh r0, [r7, 0x2E] + strh r1, [r7, 0x32] + adds r5, 0x1C + adds r4, r5 + ldr r0, =sub_81C4844 + str r0, [r4] + ldrb r1, [r7, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r7, 0x5] + ldrh r0, [r6, 0x2] + bl sub_806E840 + lsls r0, 24 + cmp r0, 0 + bne _081C4828 + adds r0, r7, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + b _081C4836 + .pool +_081C4828: + adds r2, r7, 0 + adds r2, 0x3F + ldrb r1, [r2] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_081C4836: + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81C47B4 + + thumb_func_start sub_81C4844 +sub_81C4844: @ 81C4844 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + adds r5, r0, 0 + adds r5, 0x70 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081C487E + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _081C487E + ldrh r0, [r4, 0x2E] + bl sub_806E840 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x30] + bl sub_81C4778 + ldrh r1, [r4, 0x2E] + ldrb r2, [r5, 0x4] + adds r0, r4, 0 + bl sub_806EE0C +_081C487E: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C4844 + + thumb_func_start sub_81C488C +sub_81C488C: @ 81C488C + ldr r1, =gUnknown_0203CF24 + strb r0, [r1] + bx lr + .pool + thumb_func_end sub_81C488C + + thumb_func_start sub_81C4898 +sub_81C4898: @ 81C4898 + push {r4,lr} + ldr r4, =gUnknown_0203CF24 + ldrb r0, [r4] + cmp r0, 0xFF + beq _081C48AA + bl DestroyTask + movs r0, 0xFF + strb r0, [r4] +_081C48AA: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C4898 + + thumb_func_start sub_81C48B4 +sub_81C48B4: @ 81C48B4 + push {lr} + ldr r2, =gSprites + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040d3 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + cmp r1, r0 + beq _081C48E8 + movs r0, 0x1 + b _081C48EA + .pool +_081C48E8: + movs r0, 0 +_081C48EA: + pop {r1} + bx r1 + thumb_func_end sub_81C48B4 + + thumb_func_start sub_81C48F0 +sub_81C48F0: @ 81C48F0 + push {r4-r6,lr} + ldr r6, =gSprites + ldr r5, =gUnknown_0203CF1C + ldr r0, [r5] + ldr r4, =0x000040d3 + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x2C + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r5] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r6, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =SpriteCallbackDummy + str r1, [r0] + bl sub_806EE98 + ldr r0, [r5] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + lsls r3, r0, 4 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1, 0 + orrs r3, r0 + movs r2, 0 + ldr r5, =gPlttBufferUnfaded + ldr r4, =gPlttBufferFaded +_081C494C: + adds r0, r2, r3 + lsls r0, 16 + lsrs r0, 15 + adds r1, r0, r5 + adds r0, r4 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0xF + bls _081C494C + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C48F0 + + thumb_func_start sub_81C4984 +sub_81C4984: @ 81C4984 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r1, =0x00007533 + ldr r2, =gUnknown_0861D120 + adds r0, r1, 0 + bl sub_811FF94 + adds r4, r0, 0 + ldr r6, =gUnknown_0203CF1C + ldr r0, [r6] + str r4, [r0, 0x8] + cmp r4, 0 + beq _081C49CE + adds r0, r5, 0 + movs r1, 0x8 + bl GetMonData + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + ldr r1, [r6] + ldr r2, [r1, 0x8] + movs r0, 0x3C + strh r0, [r2, 0x20] + ldr r2, [r1, 0x8] + movs r0, 0x1A + strh r0, [r2, 0x22] + ldr r2, [r1, 0x8] + ldrb r1, [r2, 0x5] + subs r0, 0x27 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2, 0x5] +_081C49CE: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C4984 + + thumb_func_start sub_81C49E0 +sub_81C49E0: @ 81C49E0 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r0, [r0, 0x8] + bl DestroySprite + ldr r0, =0x00007533 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl sub_81C4984 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C49E0 + + thumb_func_start sub_81C4A08 +sub_81C4A08: @ 81C4A08 + push {r4,lr} + movs r1, 0x26 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + bl ball_number_to_ball_processing_index + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_8076A78 + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 3 + ldr r1, =gUnknown_0832C588 + adds r0, r1 + movs r1, 0x10 + movs r2, 0x88 + movs r3, 0 + bl CreateSprite + ldr r2, =gUnknown_0203CF1C + ldr r1, [r2] + ldr r3, =0x000040d4 + adds r1, r3 + strb r0, [r1] + ldr r4, =gSprites + ldr r2, [r2] + adds r2, r3 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =SpriteCallbackDummy + str r1, [r0] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0, 0x5] + movs r2, 0xC + orrs r1, r2 + strb r1, [r0, 0x5] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C4A08 + + thumb_func_start sub_81C4A88 +sub_81C4A88: @ 81C4A88 + push {r4,r5,lr} + ldr r5, =gUnknown_0203CF1C + ldr r0, [r5] + ldr r1, =0x000040d5 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0xFF + bne _081C4AA6 + ldr r0, =gUnknown_0861D108 + movs r1, 0x40 + movs r2, 0x98 + movs r3, 0 + bl CreateSprite + strb r0, [r4] +_081C4AA6: + ldr r0, [r5] + adds r0, 0xC + bl sub_81B205C + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _081C4AE8 + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + subs r1, r2, 0x1 + lsls r1, 24 + lsrs r1, 24 + bl StartSpriteAnim + movs r0, 0x2 + movs r1, 0 + bl sub_81C4204 + b _081C4AF0 + .pool +_081C4AE8: + movs r0, 0x2 + movs r1, 0x1 + bl sub_81C4204 +_081C4AF0: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81C4A88 + + thumb_func_start sub_81C4AF8 +sub_81C4AF8: @ 81C4AF8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, =gUnknown_0203CF1C + ldr r1, =0x000040d3 + add r1, r8 + ldr r0, [r0] + adds r7, r0, r1 + ldr r1, =0x000040c0 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bls _081C4BD2 + movs r0, 0 + mov r9, r0 + mov r1, r8 + cmp r1, 0x8 + bne _081C4B2A + movs r0, 0x1 + mov r9, r0 +_081C4B2A: + movs r5, 0 + ldr r6, =gSprites + mov r10, r5 +_081C4B30: + lsls r1, r5, 20 + movs r0, 0xB2 + lsls r0, 15 + adds r1, r0 + asrs r1, 16 + ldr r0, =gUnknown_0861D084 + movs r2, 0x28 + mov r3, r9 + bl CreateSprite + adds r1, r7, r5 + strb r0, [r1] + adds r4, r1, 0 + cmp r5, 0 + bne _081C4B74 + ldrb r1, [r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x4 + bl StartSpriteAnim + b _081C4B9A + .pool +_081C4B74: + cmp r5, 0x9 + bne _081C4B8A + ldrb r1, [r7, 0x9] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x5 + bl StartSpriteAnim + b _081C4B9A +_081C4B8A: + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x6 + bl StartSpriteAnim +_081C4B9A: + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r6, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =sub_81C4BE4 + str r1, [r0] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + mov r1, r8 + strh r1, [r0, 0x2E] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + mov r1, r10 + strh r1, [r0, 0x30] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x9 + bls _081C4B30 +_081C4BD2: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C4AF8 + + thumb_func_start sub_81C4BE4 +sub_81C4BE4: @ 81C4BE4 + push {lr} + adds r3, r0, 0 + adds r0, 0x2A + ldrb r0, [r0] + subs r0, 0x4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bhi _081C4C1C + ldrh r0, [r3, 0x30] + adds r0, 0x1 + movs r1, 0x1F + ands r0, r1 + strh r0, [r3, 0x30] + cmp r0, 0x18 + ble _081C4C10 + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + b _081C4C2A +_081C4C10: + adds r2, r3, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + b _081C4C28 +_081C4C1C: + movs r0, 0 + strh r0, [r3, 0x30] + adds r2, r3, 0 + adds r2, 0x3E + ldrb r1, [r2] + subs r0, 0x5 +_081C4C28: + ands r0, r1 +_081C4C2A: + strb r0, [r2] + movs r1, 0x2E + ldrsh r0, [r3, r1] + cmp r0, 0x8 + bne _081C4C44 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040c6 + b _081C4C4A + .pool +_081C4C44: + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040c7 +_081C4C4A: + adds r0, r1 + ldrb r0, [r0] + lsls r0, 4 + strh r0, [r3, 0x26] + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C4BE4 + + thumb_func_start sub_81C4C60 +sub_81C4C60: @ 81C4C60 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 +_081C4C68: + adds r0, r5, r4 + lsls r0, 24 + lsrs r0, 24 + bl sub_81C41C0 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x9 + bls _081C4C68 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81C4C60 + + thumb_func_start sub_81C4C84 +sub_81C4C84: @ 81C4C84 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, =gUnknown_0203CF1C + ldr r0, [r0] + ldr r1, =0x000040db + adds r5, r0, r1 + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 24 + movs r4, 0 + ldr r7, =gSprites + movs r2, 0x80 + lsls r2, 19 + adds r2, r0 + mov r9, r2 + lsrs r6, r0, 24 + movs r1, 0xA0 + lsls r1, 19 + adds r1, r0 + mov r8, r1 +_081C4CB4: + cmp r4, 0 + bne _081C4CD4 + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + mov r2, r9 + b _081C4CE4 + .pool +_081C4CD4: + cmp r4, 0x9 + bne _081C4CEC + ldrb r1, [r5, 0x9] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + mov r2, r8 +_081C4CE4: + lsrs r1, r2, 24 + bl StartSpriteAnim + b _081C4D02 +_081C4CEC: + adds r0, r5, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + adds r1, r6, 0x6 + lsls r1, 24 + lsrs r1, 24 + bl StartSpriteAnim +_081C4D02: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x9 + bls _081C4CB4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81C4C84 + + thumb_func_start sub_81C4D18 +sub_81C4D18: @ 81C4D18 + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gUnknown_0203CF1C + ldr r2, =0x000040d3 + adds r0, r2 + ldr r1, [r1] + adds r5, r1, r0 + movs r3, 0 + ldr r4, =gSprites + movs r7, 0x5 + negs r7, r7 + movs r6, 0 +_081C4D32: + adds r2, r5, r3 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r6, [r0, 0x30] + ldrb r0, [r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + adds r1, 0x3E + ldrb r2, [r1] + adds r0, r7, 0 + ands r0, r2 + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x9 + bls _081C4D32 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C4D18 + + thumb_func_start sub_81C4D70 +sub_81C4D70: @ 81C4D70 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + ldr r4, =gUnknown_0203CF28 + movs r0, 0x4 + bl Alloc + str r0, [r4] + ldr r1, [r5] + lsls r0, r1, 20 + lsrs r4, r0, 30 + cmp r4, 0 + bne _081C4DDC + lsls r0, r1, 30 + lsrs r0, 30 + movs r1, 0x8 + movs r2, 0 + bl SetBgAttribute + ldr r3, [r5] + lsls r0, r3, 30 + lsrs r0, 30 + ldr r1, =gUnknown_0861D1A0 + lsls r3, 22 + lsrs r3, 24 + str r4, [sp] + movs r2, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r0, [r5] + lsls r0, 30 + lsrs r0, 30 + ldr r1, =gUnknown_0861DEF4 + movs r2, 0x1 + str r2, [sp] + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, [r5] + lsls r1, 22 + lsrs r1, 24 + str r4, [sp] + movs r2, 0x20 + movs r3, 0x20 + bl sub_8199D3C + b _081C4E2E + .pool +_081C4DDC: + lsls r0, r1, 30 + lsrs r0, 30 + movs r1, 0x8 + movs r2, 0x2 + bl SetBgAttribute + ldr r0, [r5] + lsls r0, 30 + lsrs r0, 30 + movs r1, 0x9 + movs r2, 0x1 + bl SetBgAttribute + ldr r3, [r5] + lsls r0, r3, 30 + lsrs r0, 30 + ldr r1, =gUnknown_0861E208 + lsls r3, 22 + lsrs r3, 24 + movs r2, 0 + str r2, [sp] + bl decompress_and_copy_tile_data_to_vram + ldr r0, [r5] + lsls r0, 30 + lsrs r0, 30 + ldr r1, =gUnknown_0861EF64 + movs r4, 0x1 + str r4, [sp] + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, [r5] + lsls r1, 22 + lsrs r1, 24 + str r4, [sp] + movs r2, 0x40 + movs r3, 0x40 + bl sub_8199D3C +_081C4E2E: + ldr r0, [r5] + lsls r0, 30 + lsrs r0, 30 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + ldr r0, [r5] + lsls r0, 30 + lsrs r0, 30 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + ldr r0, [r5] + lsls r0, 30 + lsrs r0, 30 + movs r1, 0x4 + movs r2, 0x1 + bl SetBgAttribute + ldr r0, =gUnknown_0861D140 + ldr r1, =gPlttBufferUnfaded + 0xE0 + ldr r2, =0x04000018 + bl CpuSet + ldr r0, =gUnknown_0203CF28 + ldr r1, [r0] + ldr r0, [r5] + lsls r0, 30 + lsrs r0, 30 + strb r0, [r1] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C4D70 + + thumb_func_start sub_81C4E90 +sub_81C4E90: @ 81C4E90 + push {lr} + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + beq _081C4EA0 + movs r0, 0x1 + b _081C4EAC +_081C4EA0: + ldr r0, =gUnknown_0203CF28 + ldr r0, [r0] + ldrb r0, [r0] + bl ShowBg + movs r0, 0 +_081C4EAC: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81C4E90 + + thumb_func_start sub_81C4EB4 +sub_81C4EB4: @ 81C4EB4 + push {r4,lr} + ldr r4, =gUnknown_0203CF28 + ldr r0, [r4] + cmp r0, 0 + beq _081C4EC6 + bl Free + movs r0, 0 + str r0, [r4] +_081C4EC6: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C4EB4 + + thumb_func_start sub_81C4ED0 +sub_81C4ED0: @ 81C4ED0 + push {lr} + adds r1, r0, 0 + ldr r0, =gUnknown_0203CF28 + ldr r0, [r0] + ldrb r0, [r0] + lsls r1, 8 + movs r2, 0 + bl ChangeBgY + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C4ED0 + + thumb_func_start sub_81C4EEC +sub_81C4EEC: @ 81C4EEC + ldr r1, =gUnknown_0203CF30 + movs r0, 0 + strh r0, [r1, 0x6] + strh r0, [r1, 0x8] + bx lr + .pool + thumb_func_end sub_81C4EEC + + thumb_func_start sub_81C4EFC +sub_81C4EFC: @ 81C4EFC + push {lr} + ldr r1, =sub_8086194 + movs r0, 0 + bl sub_81C4F98 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C4EFC + + thumb_func_start sub_81C4F10 +sub_81C4F10: @ 81C4F10 + push {lr} + ldr r1, =sub_8059D50 + movs r0, 0x1 + bl sub_81C4F98 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C4F10 + + thumb_func_start sub_81C4F24 +sub_81C4F24: @ 81C4F24 + push {lr} + bl script_env_2_enable + movs r0, 0x1 + movs r1, 0 + bl fade_screen + ldr r0, =sub_81C4F44 + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C4F24 + + thumb_func_start sub_81C4F44 +sub_81C4F44: @ 81C4F44 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081C4F6E + bl overworld_free_bg_tilemaps + ldr r0, =gUnknown_03005DB0 + ldr r1, =hm_add_c3_without_phase_2 + str r1, [r0] + ldr r1, =c2_exit_to_overworld_2_switch + movs r0, 0x3 + bl sub_81C4F98 + adds r0, r4, 0 + bl DestroyTask +_081C4F6E: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C4F44 + + thumb_func_start sub_81C4F84 +sub_81C4F84: @ 81C4F84 + push {lr} + ldr r0, =gUnknown_0203CF30 + ldr r1, [r0] + movs r0, 0x4 + bl sub_81C4F98 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C4F84 + + thumb_func_start sub_81C4F98 +sub_81C4F98: @ 81C4F98 + push {r4-r6,lr} + adds r5, r1, 0 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r6, =gUnknown_0203CF2C + ldr r0, =0x0000098c + bl AllocZeroed + str r0, [r6] + cmp r4, 0x4 + beq _081C4FB2 + ldr r0, =gUnknown_0203CF30 + strb r4, [r0, 0x4] +_081C4FB2: + cmp r5, 0 + beq _081C4FBA + ldr r0, =gUnknown_0203CF30 + str r5, [r0] +_081C4FBA: + ldr r0, [r6] + movs r1, 0 + str r1, [r0] + ldr r1, =0x00000814 + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] + ldr r0, [r6] + ldr r1, =0x00000816 + adds r0, r1 + movs r1, 0x1 + negs r1, r1 + strb r1, [r0] + ldr r0, [r6] + ldr r1, =0x00000804 + adds r0, r1 + movs r1, 0xFF + movs r2, 0xB + bl memset + ldr r0, [r6] + ldr r1, =0x0000080f + adds r0, r1 + movs r1, 0xFF + movs r2, 0x5 + bl memset + ldr r0, =sub_81C504C + bl SetMainCallback2 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C4F98 + + thumb_func_start sub_81C501C +sub_81C501C: @ 81C501C + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl do_scheduled_bg_tilemap_copies_to_vram + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_81C501C + + thumb_func_start sub_81C5038 +sub_81C5038: @ 81C5038 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_81C5038 + + thumb_func_start sub_81C504C +sub_81C504C: @ 81C504C + push {lr} +_081C504E: + bl sub_81221EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081C5072 + bl sub_81C5078 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081C5072 + bl sub_81221AC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081C504E +_081C5072: + pop {r0} + bx r0 + thumb_func_end sub_81C504C + + thumb_func_start sub_81C5078 +sub_81C5078: @ 81C5078 + push {lr} + sub sp, 0x4 + ldr r0, =gMain + movs r1, 0x87 + lsls r1, 3 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x10 + bls _081C508C + b _081C51BC +_081C508C: + lsls r0, 2 + ldr r1, =_081C50A0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081C50A0: + .4byte _081C50E4 + .4byte _081C50EE + .4byte _081C50F4 + .4byte _081C50FA + .4byte _081C510C + .4byte _081C5112 + .4byte _081C5122 + .4byte _081C513C + .4byte _081C5148 + .4byte _081C514E + .4byte _081C515C + .4byte _081C5162 + .4byte _081C5168 + .4byte _081C516E + .4byte _081C5174 + .4byte _081C517A + .4byte _081C5188 +_081C50E4: + bl SetVBlankHBlankCallbacksToNull + bl clear_scheduled_bg_copies_to_vram + b _081C51A2 +_081C50EE: + bl remove_some_task + b _081C51A2 +_081C50F4: + bl FreeAllSpritePalettes + b _081C51A2 +_081C50FA: + bl ResetPaletteFade + ldr r2, =gPaletteFade + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + b _081C51A0 + .pool +_081C510C: + bl ResetSpriteData + b _081C51A2 +_081C5112: + bl sub_81221AC + lsls r0, 24 + cmp r0, 0 + bne _081C51A2 + bl ResetTasks + b _081C51A2 +_081C5122: + bl sub_81C51DC + ldr r0, =gUnknown_0203CF2C + ldr r0, [r0] + ldr r1, =0x00000984 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + b _081C51A2 + .pool +_081C513C: + bl sub_81C5238 + lsls r0, 24 + cmp r0, 0 + beq _081C51D4 + b _081C51A2 +_081C5148: + bl sub_81C6BD8 + b _081C51A2 +_081C514E: + bl sub_81C5924 + bl sub_81C59BC + bl sub_81C5A20 + b _081C51A2 +_081C515C: + bl sub_81C5314 + b _081C51A2 +_081C5162: + bl sub_81C56F8 + b _081C51A2 +_081C5168: + bl sub_81C6EF4 + b _081C51A2 +_081C516E: + bl sub_81C5674 + b _081C51A2 +_081C5174: + bl sub_81C700C + b _081C51A2 +_081C517A: + movs r0, 0x1 + negs r0, r0 + movs r1, 0x10 + movs r2, 0 + bl BlendPalettes + b _081C51A2 +_081C5188: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r2, =gPaletteFade + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 +_081C51A0: + strb r0, [r2, 0x8] +_081C51A2: + ldr r1, =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _081C51D4 + .pool +_081C51BC: + ldr r0, =sub_81C5038 + bl SetVBlankCallback + ldr r0, =sub_81C501C + bl SetMainCallback2 + movs r0, 0x1 + b _081C51D6 + .pool +_081C51D4: + movs r0, 0 +_081C51D6: + add sp, 0x4 + pop {r1} + bx r1 + thumb_func_end sub_81C5078 + + thumb_func_start sub_81C51DC +sub_81C51DC: @ 81C51DC + push {lr} + bl sub_8121DA0 + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, =gUnknown_0861F2B4 + movs r0, 0 + movs r2, 0x3 + bl InitBgsFromTemplates + ldr r0, =gUnknown_0203CF2C + ldr r1, [r0] + adds r1, 0x4 + movs r0, 0x2 + bl SetBgTilemapBuffer + bl sub_8121E10 + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + movs r1, 0x82 + lsls r1, 5 + movs r0, 0 + bl SetGpuReg + movs r0, 0 + bl ShowBg + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C51DC + + thumb_func_start sub_81C5238 +sub_81C5238: @ 81C5238 + push {r4,lr} + sub sp, 0x4 + ldr r4, =gUnknown_0203CF2C + ldr r0, [r4] + ldr r1, =0x00000984 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x4 + bhi _081C52F0 + lsls r0, 2 + ldr r1, =_081C5264 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081C5264: + .4byte _081C5278 + .4byte _081C5294 + .4byte _081C52B8 + .4byte _081C52C8 + .4byte _081C52D4 +_081C5278: + bl reset_temp_tile_data_buffers + ldr r1, =gUnknown_08D9A620 + movs r0, 0 + str r0, [sp] + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + b _081C52D8 + .pool +_081C5294: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081C5308 + ldr r0, =gUnknown_08D9AE04 + ldr r4, =gUnknown_0203CF2C + ldr r1, [r4] + adds r1, 0x4 + bl LZDecompressWram + ldr r1, [r4] + b _081C52DC + .pool +_081C52B8: + ldr r0, =gUnknown_08D9AF44 + movs r1, 0 + movs r2, 0x20 + bl LoadCompressedPalette + b _081C52D8 + .pool +_081C52C8: + ldr r0, =gUnknown_0861F3CC + bl LoadCompressedObjectPic + b _081C52D8 + .pool +_081C52D4: + bl sub_81C6E98 +_081C52D8: + ldr r0, =gUnknown_0203CF2C + ldr r1, [r0] +_081C52DC: + ldr r0, =0x00000984 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _081C5308 + .pool +_081C52F0: + bl sub_8122328 + ldr r0, [r4] + ldr r1, =0x00000984 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + movs r0, 0x1 + b _081C530A + .pool +_081C5308: + movs r0, 0 +_081C530A: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81C5238 + + thumb_func_start sub_81C5314 +sub_81C5314: @ 81C5314 + push {r4-r7,lr} + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldr r1, =0x00000ca9 + adds r0, r2, r1 + ldrb r1, [r0] + lsls r1, 30 + lsrs r1, 30 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + ldr r3, =0x00000e2c + adds r0, r3 + adds r7, r2, r0 + movs r6, 0 + ldr r1, =gUnknown_0203CF2C + ldr r0, [r1] + ldr r4, =0x00000821 + adds r0, r4 + ldrb r0, [r0] + subs r0, 0x1 + cmp r6, r0 + bge _081C5382 + adds r5, r1, 0 +_081C5344: + lsls r1, r6, 1 + adds r4, r1, r6 + lsls r4, 3 + ldr r0, =0x0000087c + adds r4, r0 + ldr r0, [r5] + adds r0, r4 + adds r1, r7 + ldrh r1, [r1] + bl sub_81C540C + ldr r1, [r5] + lsls r2, r6, 3 + ldr r3, =0x00000824 + adds r0, r1, r3 + adds r0, r2 + adds r4, r1, r4 + str r4, [r0] + ldr r4, =0x00000828 + adds r0, r1, r4 + adds r0, r2 + str r6, [r0] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, =0x00000821 + adds r1, r0 + ldrb r0, [r1] + subs r0, 0x1 + cmp r6, r0 + blt _081C5344 +_081C5382: + ldr r5, =gUnknown_0203CF2C + lsls r4, r6, 1 + adds r4, r6 + lsls r4, 3 + ldr r1, =0x0000087c + adds r4, r1 + ldr r0, [r5] + adds r0, r4 + ldr r1, =gUnknown_085E8DB4 + bl StringCopy + ldr r1, [r5] + lsls r2, r6, 3 + ldr r3, =0x00000824 + adds r0, r1, r3 + adds r0, r2 + adds r4, r1, r4 + str r4, [r0] + ldr r4, =0x00000828 + adds r1, r4 + adds r1, r2 + movs r0, 0x2 + negs r0, r0 + str r0, [r1] + ldr r2, =gUnknown_03006310 + adds r1, r2, 0 + ldr r0, =gUnknown_0861F2C0 + ldm r0!, {r4,r6,r7} + stm r1!, {r4,r6,r7} + ldm r0!, {r4,r6,r7} + stm r1!, {r4,r6,r7} + ldr r1, [r5] + ldr r6, =0x00000821 + adds r0, r1, r6 + ldrb r0, [r0] + strh r0, [r2, 0xC] + adds r3, r1, r3 + str r3, [r2] + ldr r7, =0x00000822 + adds r1, r7 + ldrb r0, [r1] + strh r0, [r2, 0xE] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C5314 + + thumb_func_start sub_81C540C +sub_81C540C: @ 81C540C + push {r4,r5,lr} + adds r5, r0, 0 + lsls r1, 16 + lsrs r4, r1, 16 + adds r0, r4, 0 + bl ItemId_GetPocket + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bne _081C5450 + ldr r0, =gStringVar1 + adds r1, r4, 0 + subs r1, 0x84 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r1, =gStringVar2 + adds r0, r4, 0 + bl CopyItemName + ldr r1, =gUnknown_085E9210 + adds r0, r5, 0 + bl StringExpandPlaceholders + b _081C5458 + .pool +_081C5450: + adds r0, r4, 0 + adds r1, r5, 0 + bl CopyItemName +_081C5458: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81C540C + + thumb_func_start sub_81C5460 +sub_81C5460: @ 81C5460 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0x1 + beq _081C5476 + movs r0, 0x5 + bl PlaySE + bl sub_81C6F20 +_081C5476: + ldr r5, =gUnknown_0203CF2C + ldr r1, [r5] + ldr r2, =0x00000814 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0xFF + bne _081C5504 + adds r2, 0x1 + adds r0, r1, r2 + ldrb r1, [r0] + movs r0, 0x1 + eors r0, r1 + bl sub_81C6FF8 + movs r0, 0x2 + negs r0, r0 + cmp r4, r0 + beq _081C54E0 + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + lsls r3, r4, 1 + ldr r1, =0x00000ca9 + adds r0, r2, r1 + ldrb r1, [r0] + lsls r1, 30 + lsrs r1, 30 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r3, r0 + ldr r0, =0x00000e2c + adds r2, r0 + adds r2, r3 + ldrh r0, [r2] + ldr r1, [r5] + ldr r2, =0x00000815 + adds r1, r2 + ldrb r1, [r1] + bl sub_81C6F90 + b _081C54EE + .pool +_081C54E0: + ldr r0, =0x0000ffff + ldr r1, [r5] + ldr r2, =0x00000815 + adds r1, r2 + ldrb r1, [r1] + bl sub_81C6F90 +_081C54EE: + ldr r0, =gUnknown_0203CF2C + ldr r1, [r0] + ldr r0, =0x00000815 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x1 + eors r0, r2 + strb r0, [r1] + adds r0, r4, 0 + bl sub_81C55D8 +_081C5504: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C5460 + + thumb_func_start sub_81C5518 +sub_81C5518: @ 81C5518 + push {r4-r6,lr} + sub sp, 0x10 + adds r4, r1, 0 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r2, 24 + lsrs r5, r2, 24 + movs r0, 0x2 + negs r0, r0 + cmp r4, r0 + beq _081C55B8 + ldr r0, =gUnknown_0203CF2C + ldr r0, [r0] + ldr r1, =0x00000814 + adds r0, r1 + ldrb r1, [r0] + cmp r1, 0xFF + beq _081C5560 + lsls r0, r4, 24 + lsrs r0, 24 + cmp r1, r0 + bne _081C5558 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_81C5AB8 + b _081C5560 + .pool +_081C5558: + adds r0, r5, 0 + movs r1, 0xFF + bl sub_81C5AB8 +_081C5560: + ldr r0, =gStringVar1 + ldr r1, =gSaveBlock2Ptr + ldr r3, [r1] + ldr r2, =0x00000ca9 + adds r1, r3, r2 + ldrb r2, [r1] + lsls r2, 30 + lsrs r2, 30 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 1 + adds r1, r4, r1 + ldr r2, =0x00000e54 + adds r3, r2 + adds r3, r1 + ldrb r1, [r3] + movs r2, 0x1 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E8DA0 + adds r0, r4, 0 + bl StringExpandPlaceholders + movs r0, 0x7 + adds r1, r4, 0 + movs r2, 0x77 + bl GetStringRightAlignXOffset + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r0, 0xFF + str r0, [sp, 0x8] + str r1, [sp, 0xC] + adds r0, r6, 0 + adds r1, r4, 0 + adds r3, r5, 0 + bl sub_81C6C94 +_081C55B8: + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C5518 + + thumb_func_start sub_81C55D8 +sub_81C55D8: @ 81C55D8 + push {r4,lr} + sub sp, 0x10 + adds r3, r0, 0 + movs r0, 0x2 + negs r0, r0 + cmp r3, r0 + beq _081C561C + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + lsls r3, 1 + ldr r1, =0x00000ca9 + adds r0, r2, r1 + ldrb r1, [r0] + lsls r1, 30 + lsrs r1, 30 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r3, r0 + ldr r0, =0x00000e2c + adds r2, r0 + adds r2, r3 + ldrh r0, [r2] + bl ItemId_GetDescription + adds r4, r0, 0 + b _081C5638 + .pool +_081C561C: + ldr r0, =gStringVar1 + ldr r2, =gUnknown_085E91B0 + ldr r1, =gUnknown_0203CF30 + ldrb r1, [r1, 0x4] + lsls r1, 2 + adds r1, r2 + ldr r1, [r1] + bl StringCopy + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E91C0 + adds r0, r4, 0 + bl StringExpandPlaceholders +_081C5638: + movs r0, 0x1 + movs r1, 0 + bl FillWindowPixelBuffer + movs r1, 0 + str r1, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + str r1, [sp, 0x8] + str r1, [sp, 0xC] + adds r1, r4, 0 + movs r2, 0x3 + movs r3, 0 + bl sub_81C6C3C + add sp, 0x10 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C55D8 + + thumb_func_start sub_81C5674 +sub_81C5674: @ 81C5674 + push {r4,lr} + sub sp, 0x10 + ldr r4, =gUnknown_0203CF2C + ldr r1, [r4] + ldr r2, =0x00000816 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0xFF + bne _081C56B4 + adds r2, 0xB + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + subs r0, r1 + str r0, [sp] + ldr r0, =0x00000b5e + str r0, [sp, 0x4] + str r0, [sp, 0x8] + ldr r0, =gUnknown_0203CF38 + str r0, [sp, 0xC] + movs r0, 0x2 + movs r1, 0xAC + movs r2, 0xC + movs r3, 0x94 + bl AddScrollIndicatorArrowPairParametrized + ldr r1, [r4] + ldr r2, =0x00000816 + adds r1, r2 + strb r0, [r1] +_081C56B4: + add sp, 0x10 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C5674 + + thumb_func_start sub_81C56CC +sub_81C56CC: @ 81C56CC + push {r4,lr} + ldr r4, =gUnknown_0203CF2C + ldr r0, [r4] + ldr r2, =0x00000816 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0xFF + beq _081C56EA + bl RemoveScrollIndicatorArrowPair + ldr r0, [r4] + ldr r1, =0x00000816 + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] +_081C56EA: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C56CC + + thumb_func_start sub_81C56F8 +sub_81C56F8: @ 81C56F8 + push {r4,lr} + ldr r0, =sub_81C5BC8 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, =gTasks + 0x8 + adds r4, r0 + ldr r0, =gUnknown_03006310 + ldr r2, =gUnknown_0203CF30 + ldrh r1, [r2, 0x8] + ldrh r2, [r2, 0x6] + bl ListMenuInit + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C56F8 + + thumb_func_start sub_81C5738 +sub_81C5738: @ 81C5738 + push {r4-r6,lr} + mov r6, r8 + push {r6} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r2, =gSaveBlock2Ptr + ldr r6, [r2] + ldr r3, =0x00000ca9 + adds r2, r6, r3 + ldrb r3, [r2] + lsls r3, 30 + lsrs r2, r3, 30 + lsls r4, r2, 2 + adds r4, r2 + lsls r4, 2 + ldr r2, =0x00000e2c + adds r4, r2 + adds r4, r6, r4 + lsrs r3, 30 + lsls r2, r3, 2 + adds r2, r3 + lsls r2, 1 + ldr r3, =0x00000e54 + adds r2, r3 + adds r6, r2 + lsls r5, r0, 1 + adds r5, r4 + ldrh r2, [r5] + mov r8, r2 + lsls r2, r1, 1 + adds r2, r4 + ldrh r3, [r2] + strh r3, [r5] + mov r3, r8 + strh r3, [r2] + adds r0, r6, r0 + ldrb r2, [r0] + adds r6, r1 + ldrb r1, [r6] + strb r1, [r0] + strb r2, [r6] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C5738 + + thumb_func_start sub_81C57A8 +sub_81C57A8: @ 81C57A8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r4, r0, 24 + adds r7, r4, 0 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + ldr r1, =0x00000ca9 + adds r0, r3, r1 + ldrb r1, [r0] + lsls r1, 30 + lsrs r2, r1, 30 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 2 + ldr r2, =0x00000e2c + adds r0, r2 + adds r6, r3, r0 + lsrs r1, 30 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 1 + ldr r1, =0x00000e54 + adds r0, r1 + adds r3, r0 + cmp r4, r5 + beq _081C5862 + lsls r0, r4, 1 + adds r0, r6 + ldrh r0, [r0] + mov r12, r0 + adds r0, r3, r4 + ldrb r0, [r0] + mov r8, r0 + cmp r5, r4 + bls _081C5830 + subs r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r2, r4, 16 + cmp r4, r5 + bge _081C5854 +_081C5802: + asrs r2, 16 + lsls r0, r2, 1 + adds r0, r6 + ldrh r1, [r0, 0x2] + strh r1, [r0] + adds r1, r3, r2 + ldrb r0, [r1, 0x1] + strb r0, [r1] + adds r2, 0x1 + lsls r2, 16 + asrs r0, r2, 16 + cmp r0, r5 + blt _081C5802 + b _081C5854 + .pool +_081C5830: + lsls r2, r7, 16 + cmp r7, r5 + ble _081C5854 +_081C5836: + asrs r2, 16 + lsls r1, r2, 1 + adds r1, r6 + subs r0, r1, 0x2 + ldrh r0, [r0] + strh r0, [r1] + adds r1, r3, r2 + subs r0, r1, 0x1 + ldrb r0, [r0] + strb r0, [r1] + subs r2, 0x1 + lsls r2, 16 + asrs r0, r2, 16 + cmp r0, r5 + bgt _081C5836 +_081C5854: + lsls r0, r5, 1 + adds r0, r6 + mov r2, r12 + strh r2, [r0] + adds r0, r3, r5 + mov r1, r8 + strb r1, [r0] +_081C5862: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81C57A8 + + thumb_func_start sub_81C586C +sub_81C586C: @ 81C586C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + ldr r1, =0x00000ca9 + adds r0, r3, r1 + ldrb r1, [r0] + lsls r1, 30 + lsrs r2, r1, 30 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 2 + ldr r2, =0x00000e2c + adds r0, r2 + adds r0, r3 + mov r9, r0 + lsrs r1, 30 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 1 + ldr r4, =0x00000e54 + adds r0, r4 + adds r3, r0 + mov r8, r3 + movs r5, 0 + movs r3, 0 +_081C58A4: + lsls r0, r5, 1 + mov r1, r9 + adds r2, r0, r1 + ldrh r0, [r2] + mov r4, r8 + adds r1, r4, r5 + cmp r0, 0 + beq _081C58BA + ldrb r0, [r1] + cmp r0, 0 + bne _081C58BE +_081C58BA: + strh r3, [r2] + strb r3, [r1] +_081C58BE: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x9 + bls _081C58A4 + movs r5, 0 +_081C58CA: + adds r1, r5, 0x1 + lsls r0, r1, 24 + lsrs r4, r0, 24 + adds r7, r1, 0 + cmp r4, 0x9 + bhi _081C58FE + lsls r0, r5, 1 + mov r1, r9 + adds r6, r0, r1 +_081C58DC: + ldrh r0, [r6] + cmp r0, 0 + beq _081C58EC + mov r2, r8 + adds r0, r2, r5 + ldrb r0, [r0] + cmp r0, 0 + bne _081C58F4 +_081C58EC: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_81C5738 +_081C58F4: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x9 + bls _081C58DC +_081C58FE: + lsls r0, r7, 24 + lsrs r5, r0, 24 + cmp r5, 0x8 + bls _081C58CA + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C586C + + thumb_func_start sub_81C5924 +sub_81C5924: @ 81C5924 + push {r4-r6,lr} + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldr r1, =0x00000ca9 + adds r0, r2, r1 + ldrb r1, [r0] + lsls r1, 30 + lsrs r1, 30 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + ldr r1, =0x00000e2c + adds r0, r1 + adds r5, r2, r0 + bl sub_81C586C + ldr r3, =gUnknown_0203CF2C + ldr r0, [r3] + ldr r2, =0x00000821 + adds r0, r2 + movs r1, 0 + strb r1, [r0] + movs r4, 0 + adds r6, r3, 0 +_081C5954: + lsls r0, r4, 1 + adds r0, r5 + ldrh r0, [r0] + ldr r3, =gUnknown_0203CF2C + cmp r0, 0 + beq _081C596A + ldr r1, [r6] + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_081C596A: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x9 + bls _081C5954 + ldr r0, [r3] + ldr r2, =0x00000821 + adds r0, r2 + ldrb r1, [r0] + adds r1, 0x1 + strb r1, [r0] + ldr r0, [r3] + adds r2, r0, r2 + ldrb r2, [r2] + cmp r2, 0x8 + bls _081C59AC + ldr r2, =0x00000822 + adds r1, r0, r2 + movs r0, 0x8 + strb r0, [r1] + b _081C59B2 + .pool +_081C59AC: + ldr r1, =0x00000822 + adds r0, r1 + strb r2, [r0] +_081C59B2: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C5924 + + thumb_func_start sub_81C59BC +sub_81C59BC: @ 81C59BC + push {r4,r5,lr} + ldr r0, =gUnknown_0203CF30 + ldrh r1, [r0, 0x8] + adds r3, r0, 0 + ldr r4, =gUnknown_0203CF2C + cmp r1, 0 + beq _081C59E4 + ldrh r0, [r3, 0x8] + ldr r1, [r4] + ldr r5, =0x00000822 + adds r2, r1, r5 + ldrb r2, [r2] + adds r0, r2 + subs r5, 0x1 + adds r1, r5 + ldrb r1, [r1] + cmp r0, r1 + ble _081C59E4 + subs r0, r1, r2 + strh r0, [r3, 0x8] +_081C59E4: + adds r2, r3, 0 + ldrh r1, [r2, 0x8] + ldrh r0, [r2, 0x6] + adds r1, r0 + ldr r0, [r4] + ldr r4, =0x00000821 + adds r0, r4 + ldrb r0, [r0] + cmp r1, r0 + blt _081C5A18 + adds r1, r0, 0 + cmp r1, 0 + bne _081C5A14 + strh r1, [r2, 0x6] + b _081C5A18 + .pool +_081C5A14: + subs r0, 0x1 + strh r0, [r3, 0x6] +_081C5A18: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81C59BC + + thumb_func_start sub_81C5A20 +sub_81C5A20: @ 81C5A20 + push {r4-r7,lr} + ldr r0, =gUnknown_0203CF30 + ldrh r1, [r0, 0x6] + adds r5, r0, 0 + cmp r1, 0x4 + bls _081C5A80 + movs r4, 0 + ldrh r0, [r5, 0x6] + subs r0, 0x4 + cmp r4, r0 + bgt _081C5A80 + ldrh r2, [r5, 0x8] + ldr r6, =gUnknown_0203CF2C + ldr r0, [r6] + ldr r3, =0x00000822 + adds r1, r0, r3 + ldrb r1, [r1] + adds r2, r1 + ldr r7, =0x00000821 + adds r0, r7 + ldrb r0, [r0] + cmp r2, r0 + beq _081C5A80 + adds r3, r5, 0 +_081C5A50: + ldrh r0, [r3, 0x6] + subs r0, 0x1 + strh r0, [r3, 0x6] + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldrh r0, [r3, 0x6] + subs r0, 0x4 + cmp r4, r0 + bgt _081C5A80 + ldrh r2, [r5, 0x8] + ldr r1, [r6] + ldr r7, =0x00000822 + adds r0, r1, r7 + ldrb r0, [r0] + adds r2, r0 + ldr r0, =0x00000821 + adds r1, r0 + ldrb r1, [r1] + cmp r2, r1 + bne _081C5A50 +_081C5A80: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C5A20 + + thumb_func_start sub_81C5A98 +sub_81C5A98: @ 81C5A98 + push {r4,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r4, 24 + lsrs r4, 24 + bl ListMenuGetYCoordForPrintingArrowCursor + lsls r0, 24 + lsrs r0, 24 + adds r1, r4, 0 + bl sub_81C5AB8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81C5A98 + + thumb_func_start sub_81C5AB8 +sub_81C5AB8: @ 81C5AB8 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r2, r1, 24 + cmp r2, 0xFF + bne _081C5AF4 + movs r0, 0x1 + movs r1, 0 + bl GetMenuCursorDimensionByFont + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + movs r1, 0x1 + bl GetMenuCursorDimensionByFont + lsls r0, 24 + lsrs r0, 24 + str r4, [sp] + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + adds r3, r5, 0 + bl FillWindowPixelRect + b _081C5B08 +_081C5AF4: + ldr r1, =gUnknown_085E8D60 + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + str r0, [sp, 0x8] + str r2, [sp, 0xC] + movs r2, 0 + adds r3, r5, 0 + bl sub_81C6C3C +_081C5B08: + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C5AB8 + + thumb_func_start sub_81C5B14 +sub_81C5B14: @ 81C5B14 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81C5B4C + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C5B14 + + thumb_func_start sub_81C5B4C +sub_81C5B4C: @ 81C5B4C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r2, r0, r1 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081C5BBC + ldrb r0, [r2] + ldr r4, =gUnknown_0203CF38 + subs r2, r4, 0x2 + adds r1, r4, 0 + bl sub_81AE6C8 + ldr r0, =gUnknown_0203CF2C + ldr r0, [r0] + ldr r0, [r0] + cmp r0, 0 + beq _081C5B94 + bl SetMainCallback2 + b _081C5B9E + .pool +_081C5B94: + adds r0, r4, 0 + subs r0, 0x8 + ldr r0, [r0] + bl SetMainCallback2 +_081C5B9E: + bl sub_81C56CC + bl ResetSpriteData + bl FreeAllSpritePalettes + bl FreeAllWindowBuffers + ldr r0, =gUnknown_0203CF2C + ldr r0, [r0] + bl Free + adds r0, r5, 0 + bl DestroyTask +_081C5BBC: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C5B4C + + thumb_func_start sub_81C5BC8 +sub_81C5BC8: @ 81C5BC8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r7, r0, r1 + bl sub_81221EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081C5BEA + b _081C5D16 +_081C5BEA: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081C5BF8 + b _081C5D16 +_081C5BF8: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x4 + ands r0, r1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + beq _081C5C5C + ldr r4, =gUnknown_0203CF30 + ldrb r0, [r4, 0x4] + cmp r0, 0x2 + bne _081C5C12 + b _081C5D16 +_081C5C12: + ldrb r0, [r7] + adds r1, r4, 0 + adds r1, 0x8 + adds r2, r4, 0x6 + bl get_coro_args_x18_x1A + ldrh r1, [r4, 0x8] + ldrh r0, [r4, 0x6] + adds r1, r0 + ldr r0, =gUnknown_0203CF2C + ldr r0, [r0] + ldr r2, =0x00000821 + adds r0, r2 + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + beq _081C5D16 + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + bl sub_81C67CC + b _081C5D16 + .pool +_081C5C5C: + ldrb r0, [r7] + bl ListMenuHandleInput + adds r6, r0, 0 + ldrb r0, [r7] + ldr r1, =gUnknown_0203CF38 + mov r8, r1 + mov r2, r8 + subs r2, 0x2 + bl get_coro_args_x18_x1A + movs r0, 0x2 + negs r0, r0 + cmp r6, r0 + beq _081C5C88 + adds r0, 0x1 + cmp r6, r0 + bne _081C5CA0 + b _081C5D16 + .pool +_081C5C88: + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_0203CE7C + strh r4, [r0] + adds r0, r5, 0 + bl sub_81C5B14 + b _081C5D16 + .pool +_081C5CA0: + movs r0, 0x5 + bl PlaySE + ldr r2, =gUnknown_0203CE7C + mov r12, r2 + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + lsls r3, r6, 1 + ldr r0, =0x00000ca9 + adds r4, r2, r0 + ldrb r1, [r4] + lsls r1, 30 + lsrs r1, 30 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r3, r0 + ldr r1, =0x00000e2c + adds r0, r2, r1 + adds r0, r3 + ldrh r0, [r0] + mov r1, r12 + strh r0, [r1] + strh r6, [r7, 0x2] + ldrb r1, [r4] + lsls r1, 30 + lsrs r1, 30 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 1 + adds r0, r6, r0 + ldr r1, =0x00000e54 + adds r2, r1 + adds r2, r0 + ldrb r0, [r2] + strh r0, [r7, 0x4] + mov r0, r8 + subs r0, 0x8 + ldrb r0, [r0, 0x4] + cmp r0, 0x2 + bne _081C5D10 + adds r0, r5, 0 + bl sub_81C674C + b _081C5D16 + .pool +_081C5D10: + adds r0, r5, 0 + bl sub_81C5D20 +_081C5D16: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81C5BC8 + + thumb_func_start sub_81C5D20 +sub_81C5D20: @ 81C5D20 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + ldr r0, =gTasks + 0x8 + adds r4, r0 + bl sub_81C56CC + ldrb r0, [r4] + movs r1, 0x1 + bl sub_81C5A98 + ldr r0, =gUnknown_0203CF30 + ldrb r4, [r0, 0x4] + cmp r4, 0x1 + beq _081C5D74 + cmp r4, 0x3 + beq _081C5DC4 + ldr r0, =gUnknown_0203CF2C + ldr r1, [r0] + ldr r0, =0x00000818 + adds r2, r1, r0 + ldr r0, =gUnknown_0861F308 + str r0, [r2] + movs r0, 0x82 + lsls r0, 4 + adds r1, r0 + movs r0, 0x4 + b _081C5DD8 + .pool +_081C5D74: + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + bl ItemId_GetBattleUsage + lsls r0, 24 + cmp r0, 0 + beq _081C5DA0 + ldr r0, =gUnknown_0203CF2C + ldr r1, [r0] + ldr r0, =0x00000818 + adds r2, r1, r0 + ldr r0, =gUnknown_0861F30E + b _081C5DCE + .pool +_081C5DA0: + ldr r0, =gUnknown_0203CF2C + ldr r0, [r0] + ldr r1, =0x00000818 + adds r2, r0, r1 + ldr r1, =gUnknown_0861F310 + str r1, [r2] + movs r1, 0x82 + lsls r1, 4 + adds r0, r1 + strb r4, [r0] + b _081C5DDA + .pool +_081C5DC4: + ldr r0, =gUnknown_0203CF2C + ldr r1, [r0] + ldr r0, =0x00000818 + adds r2, r1, r0 + ldr r0, =gUnknown_0861F30C +_081C5DCE: + str r0, [r2] + movs r0, 0x82 + lsls r0, 4 + adds r1, r0 + movs r0, 0x2 +_081C5DD8: + strb r0, [r1] +_081C5DDA: + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + ldr r1, =gStringVar1 + bl CopyItemName + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E8DBE + adds r0, r4, 0 + bl StringExpandPlaceholders + movs r0, 0x1 + movs r1, 0 + bl FillWindowPixelBuffer + movs r1, 0 + str r1, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + str r1, [sp, 0x8] + str r1, [sp, 0xC] + adds r1, r4, 0 + movs r2, 0x3 + movs r3, 0 + bl sub_81C6C3C + ldr r0, =gUnknown_0203CF2C + ldr r0, [r0] + movs r1, 0x82 + lsls r1, 4 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _081C5E3C + movs r0, 0 + b _081C5E42 + .pool +_081C5E3C: + cmp r0, 0x2 + bne _081C5E50 + movs r0, 0x1 +_081C5E42: + bl sub_81C6D24 + lsls r0, 24 + lsrs r0, 24 + bl sub_81C5EAC + b _081C5E62 +_081C5E50: + movs r0, 0x2 + bl sub_81C6D24 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x2 + movs r2, 0x2 + bl sub_81C5F08 +_081C5E62: + ldr r0, =gUnknown_0203CF2C + ldr r0, [r0] + movs r1, 0x82 + lsls r1, 4 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x4 + bne _081C5E8C + ldr r0, =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81C5FE4 + b _081C5E98 + .pool +_081C5E8C: + ldr r0, =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81C5F68 +_081C5E98: + str r0, [r1] + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C5D20 + + thumb_func_start sub_81C5EAC +sub_81C5EAC: @ 81C5EAC + push {r4-r6,lr} + sub sp, 0x14 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + str r0, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + ldr r6, =gUnknown_0203CF2C + ldr r1, [r6] + movs r5, 0x82 + lsls r5, 4 + adds r0, r1, r5 + ldrb r0, [r0] + str r0, [sp, 0x8] + ldr r0, =gUnknown_0861F2D8 + str r0, [sp, 0xC] + ldr r0, =0x00000818 + adds r1, r0 + ldr r0, [r1] + str r0, [sp, 0x10] + adds r0, r4, 0 + movs r1, 0x7 + movs r2, 0x8 + movs r3, 0x1 + bl AddItemMenuActionTextPrinters + ldr r0, [r6] + adds r0, r5 + ldrb r1, [r0] + adds r0, r4, 0 + movs r2, 0 + bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C5EAC + + thumb_func_start sub_81C5F08 +sub_81C5F08: @ 81C5F08 + push {r4-r6,lr} + sub sp, 0x14 + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + movs r0, 0x38 + str r0, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + ldr r0, =gUnknown_0861F2D8 + str r0, [sp, 0xC] + ldr r0, =gUnknown_0203CF2C + ldr r0, [r0] + ldr r1, =0x00000818 + adds r0, r1 + ldr r0, [r0] + str r0, [sp, 0x10] + adds r0, r4, 0 + movs r1, 0x7 + movs r2, 0x8 + movs r3, 0x1 + bl sub_8198DBC + movs r0, 0 + str r0, [sp] + adds r0, r4, 0 + movs r1, 0x38 + adds r2, r5, 0 + adds r3, r6, 0 + bl sub_8199944 + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C5F08 + + thumb_func_start sub_81C5F68 +sub_81C5F68: @ 81C5F68 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r6, r5, 0 + bl sub_81221EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081C5FD0 + bl ProcessMenuInputNoWrapAround + lsls r0, 24 + asrs r4, r0, 24 + movs r0, 0x2 + negs r0, r0 + cmp r4, r0 + beq _081C5FD0 + adds r0, 0x1 + cmp r4, r0 + bne _081C5FA8 + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_0861F2D8 + ldr r1, [r0, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + b _081C5FD0 + .pool +_081C5FA8: + movs r0, 0x5 + bl PlaySE + ldr r1, =gUnknown_0861F2D8 + ldr r0, =gUnknown_0203CF2C + ldr r0, [r0] + ldr r2, =0x00000818 + adds r0, r2 + ldr r0, [r0] + adds r0, r4 + ldrb r0, [r0] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r1, [r0] + cmp r1, 0 + beq _081C5FD0 + adds r0, r6, 0 + bl _call_via_r1 +_081C5FD0: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C5F68 + + thumb_func_start sub_81C5FE4 +sub_81C5FE4: @ 81C5FE4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + bl sub_81221EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081C5FF8 + b _081C6160 +_081C5FF8: + bl GetMenuCursorPos + lsls r0, 24 + lsrs r4, r0, 24 + ldr r5, =gMain + ldrh r1, [r5, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081C6040 + lsls r0, r4, 24 + asrs r0, 24 + cmp r0, 0 + bgt _081C6016 + b _081C6160 +_081C6016: + subs r0, 0x2 + lsls r0, 24 + asrs r0, 24 + bl sub_81C616C + lsls r0, 24 + cmp r0, 0 + bne _081C6028 + b _081C6160 +_081C6028: + movs r0, 0x5 + bl PlaySE + movs r1, 0x1 + negs r1, r1 + movs r0, 0 + bl sub_8199134 + b _081C6160 + .pool +_081C6040: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081C6084 + lsls r0, r4, 24 + asrs r1, r0, 24 + ldr r0, =gUnknown_0203CF2C + ldr r0, [r0] + movs r2, 0x82 + lsls r2, 4 + adds r0, r2 + ldrb r0, [r0] + subs r0, 0x2 + cmp r1, r0 + blt _081C6060 + b _081C6160 +_081C6060: + adds r0, r1, 0x2 + lsls r0, 24 + asrs r0, 24 + bl sub_81C616C + lsls r0, 24 + cmp r0, 0 + beq _081C6160 + movs r0, 0x5 + bl PlaySE + movs r0, 0 + movs r1, 0x1 + bl sub_8199134 + b _081C6160 + .pool +_081C6084: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _081C6098 + bl GetLRKeysState + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081C60C0 +_081C6098: + lsls r0, r4, 24 + asrs r1, r0, 24 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081C6160 + subs r0, r1, 0x1 + lsls r0, 24 + asrs r0, 24 + bl sub_81C616C + lsls r0, 24 + cmp r0, 0 + beq _081C6160 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + b _081C60FA +_081C60C0: + ldrh r1, [r5, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _081C60D6 + bl GetLRKeysState + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _081C6102 +_081C60D6: + lsls r0, r4, 24 + asrs r1, r0, 24 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _081C6160 + adds r0, r1, 0x1 + lsls r0, 24 + asrs r0, 24 + bl sub_81C616C + lsls r0, 24 + cmp r0, 0 + beq _081C6160 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 +_081C60FA: + movs r1, 0 + bl sub_8199134 + b _081C6160 +_081C6102: + ldrh r1, [r5, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081C6148 + movs r0, 0x5 + bl PlaySE + ldr r2, =gUnknown_0861F2D8 + ldr r0, =gUnknown_0203CF2C + ldr r0, [r0] + lsls r1, r4, 24 + asrs r1, 24 + ldr r3, =0x00000818 + adds r0, r3 + ldr r0, [r0] + adds r0, r1 + ldrb r0, [r0] + lsls r0, 3 + adds r2, 0x4 + adds r0, r2 + ldr r1, [r0] + cmp r1, 0 + beq _081C6160 + adds r0, r6, 0 + bl _call_via_r1 + b _081C6160 + .pool +_081C6148: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081C6160 + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_0861F2D8 + ldr r1, [r0, 0x1C] + adds r0, r6, 0 + bl _call_via_r1 +_081C6160: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C5FE4 + + thumb_func_start sub_81C616C +sub_81C616C: @ 81C616C + push {lr} + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + blt _081C61A0 + ldr r0, =gUnknown_0203CF2C + ldr r2, [r0] + movs r3, 0x82 + lsls r3, 4 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r1, r0 + bgt _081C61A0 + ldr r3, =0x00000818 + adds r0, r2, r3 + ldr r0, [r0] + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x5 + beq _081C61A0 + movs r0, 0x1 + b _081C61A2 + .pool +_081C61A0: + movs r0, 0 +_081C61A2: + pop {r1} + bx r1 + thumb_func_end sub_81C616C + + thumb_func_start sub_81C61A8 +sub_81C61A8: @ 81C61A8 + push {lr} + ldr r0, =gUnknown_0203CF2C + ldr r0, [r0] + movs r1, 0x82 + lsls r1, 4 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _081C61C8 + movs r0, 0 + bl sub_81C6D6C + b _081C61DA + .pool +_081C61C8: + cmp r0, 0x2 + bne _081C61D4 + movs r0, 0x1 + bl sub_81C6D6C + b _081C61DA +_081C61D4: + movs r0, 0x2 + bl sub_81C6D6C +_081C61DA: + pop {r0} + bx r0 + thumb_func_end sub_81C61A8 + + thumb_func_start sub_81C61E0 +sub_81C61E0: @ 81C61E0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, =gUnknown_0203CE7C + ldrh r0, [r4] + bl ItemId_GetPocket + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + beq _081C620C + cmp r0, 0x2 + beq _081C620C + cmp r0, 0x3 + beq _081C620C + ldrh r0, [r4] + bl itemid_is_mail + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081C6228 +_081C620C: + bl sub_81C61A8 + ldr r1, =gUnknown_085E8F31 + ldr r2, =sub_81C6714 + adds r0, r5, 0 + bl DisplayItemMessageInBattlePyramid + b _081C6252 + .pool +_081C6228: + ldrh r0, [r4] + bl ItemId_GetFieldFunc + cmp r0, 0 + beq _081C6252 + bl sub_81C61A8 + movs r0, 0x1 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + ldrh r0, [r4] + bl ItemId_GetFieldFunc + adds r1, r0, 0 + adds r0, r5, 0 + bl _call_via_r1 +_081C6252: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81C61E0 + + thumb_func_start sub_81C6258 +sub_81C6258: @ 81C6258 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + ldr r0, =gTasks + 0x8 + adds r4, r0 + bl sub_81C61A8 + movs r1, 0x2 + ldrsh r0, [r4, r1] + bl sub_81C55D8 + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + ldrb r0, [r4] + movs r1, 0 + bl sub_81C5A98 + adds r0, r5, 0 + bl sub_81C629C + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C6258 + + thumb_func_start sub_81C629C +sub_81C629C: @ 81C629C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_81C5674 + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81C5BC8 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C629C + + thumb_func_start sub_81C62C4 +sub_81C62C4: @ 81C62C4 + push {r4-r7,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r6, r0, 3 + ldr r7, =gTasks + 0x8 + adds r4, r6, r7 + bl sub_81C61A8 + movs r0, 0x1 + strh r0, [r4, 0x10] + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _081C62F4 + adds r0, r5, 0 + bl sub_81C6350 + b _081C6334 + .pool +_081C62F4: + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + ldr r1, =gStringVar1 + bl CopyItemName + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E8EE0 + adds r0, r4, 0 + bl StringExpandPlaceholders + movs r0, 0x1 + movs r1, 0 + bl FillWindowPixelBuffer + movs r1, 0 + str r1, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + str r1, [sp, 0x8] + str r1, [sp, 0xC] + adds r1, r4, 0 + movs r2, 0x3 + movs r3, 0 + bl sub_81C6C3C + bl sub_81C6404 + adds r0, r7, 0 + subs r0, 0x8 + adds r0, r6, r0 + ldr r1, =sub_81C64B4 + str r1, [r0] +_081C6334: + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C62C4 + + thumb_func_start sub_81C6350 +sub_81C6350: @ 81C6350 + push {r4,r5,lr} + sub sp, 0x10 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + ldr r0, =gTasks + 0x8 + adds r4, r0 + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + ldr r1, =gStringVar1 + bl CopyItemName + ldr r0, =gStringVar2 + movs r2, 0x10 + ldrsh r1, [r4, r2] + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E8F0E + adds r0, r4, 0 + bl StringExpandPlaceholders + movs r0, 0x1 + movs r1, 0 + bl FillWindowPixelBuffer + movs r1, 0 + str r1, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + str r1, [sp, 0x8] + str r1, [sp, 0xC] + adds r1, r4, 0 + movs r2, 0x3 + movs r3, 0 + bl sub_81C6C3C + ldr r1, =gUnknown_0861F314 + adds r0, r5, 0 + bl sub_81C6DAC + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C6350 + + thumb_func_start sub_81C63D0 +sub_81C63D0: @ 81C63D0 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + ldr r0, =gTasks + 0x8 + adds r4, r0 + movs r1, 0x2 + ldrsh r0, [r4, r1] + bl sub_81C55D8 + ldrb r0, [r4] + movs r1, 0 + bl sub_81C5A98 + adds r0, r5, 0 + bl sub_81C629C + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C63D0 + + thumb_func_start sub_81C6404 +sub_81C6404: @ 81C6404 + push {r4,lr} + sub sp, 0xC + ldr r0, =gStringVar1 + movs r1, 0x1 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E8DA0 + adds r0, r4, 0 + bl StringExpandPlaceholders + movs r0, 0x3 + bl sub_81C6CEC + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x28 + bl GetStringCenterAlignXOffset + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x2 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + movs r0, 0x3 + movs r1, 0x1 + adds r2, r4, 0 + bl Print + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C6404 + + thumb_func_start sub_81C645C +sub_81C645C: @ 81C645C + push {r4,lr} + sub sp, 0xC + adds r1, r0, 0 + ldr r0, =gStringVar1 + lsls r1, 16 + asrs r1, 16 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085E8DA0 + adds r0, r4, 0 + bl StringExpandPlaceholders + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x28 + bl GetStringCenterAlignXOffset + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x2 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + movs r0, 0x3 + movs r1, 0x1 + adds r2, r4, 0 + bl Print + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C645C + + thumb_func_start sub_81C64B4 +sub_81C64B4: @ 81C64B4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r6, r5, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + adds r0, r4, 0 + adds r0, 0x10 + ldrh r1, [r4, 0x4] + bl AdjustQuantityAccordingToDPadInput + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081C64E8 + movs r1, 0x10 + ldrsh r0, [r4, r1] + bl sub_81C645C + b _081C6544 + .pool +_081C64E8: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081C651C + movs r0, 0x5 + bl PlaySE + movs r0, 0x3 + movs r1, 0 + bl sub_8198070 + movs r0, 0x3 + bl ClearWindowTilemap + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + adds r0, r5, 0 + bl sub_81C6350 + b _081C6544 + .pool +_081C651C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081C6544 + movs r0, 0x5 + bl PlaySE + movs r0, 0x3 + movs r1, 0 + bl sub_8198070 + movs r0, 0x3 + bl ClearWindowTilemap + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + adds r0, r6, 0 + bl sub_81C63D0 +_081C6544: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81C64B4 + + thumb_func_start sub_81C654C +sub_81C654C: @ 81C654C + push {r4-r6,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r5, =gTasks + 0x8 + adds r6, r4, r5 + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + ldr r1, =gStringVar1 + bl CopyItemName + ldr r0, =gStringVar2 + movs r2, 0x10 + ldrsh r1, [r6, r2] + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r6, =gStringVar4 + ldr r1, =gUnknown_085E8EF9 + adds r0, r6, 0 + bl StringExpandPlaceholders + movs r0, 0x1 + movs r1, 0 + bl FillWindowPixelBuffer + movs r1, 0 + str r1, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + str r1, [sp, 0x8] + str r1, [sp, 0xC] + adds r1, r6, 0 + movs r2, 0x3 + movs r3, 0 + bl sub_81C6C3C + subs r5, 0x8 + adds r4, r5 + ldr r0, =sub_81C65CC + str r0, [r4] + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C654C + + thumb_func_start sub_81C65CC +sub_81C65CC: @ 81C65CC + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + ldr r6, =gUnknown_0203CF38 + subs r7, r6, 0x2 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _081C662E + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + ldrh r1, [r4, 0x10] + bl RemovePyramidBagItem + ldrb r0, [r4] + adds r1, r6, 0 + adds r2, r7, 0 + bl sub_81AE6C8 + bl sub_81C5924 + bl sub_81C59BC + bl sub_81C5314 + ldr r0, =gUnknown_03006310 + ldrh r1, [r6] + ldrh r2, [r7] + bl ListMenuInit + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + adds r0, r5, 0 + bl sub_81C629C +_081C662E: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C65CC + + thumb_func_start sub_81C6648 +sub_81C6648: @ 81C6648 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r6, r4, 0 + bl sub_81C61A8 + ldr r5, =gUnknown_0203CE7C + ldrh r0, [r5] + bl itemid_is_mail + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081C667C + ldr r1, =gUnknown_085E8DCE + ldr r2, =sub_81C66EC + adds r0, r4, 0 + bl DisplayItemMessageInBattlePyramid + b _081C66A6 + .pool +_081C667C: + ldrh r0, [r5] + bl itemid_is_unique + lsls r0, 24 + cmp r0, 0 + bne _081C66A0 + ldr r0, =gUnknown_0203CF2C + ldr r1, [r0] + ldr r0, =sub_81B7F60 + str r0, [r1] + adds r0, r4, 0 + bl sub_81C5B14 + b _081C66A6 + .pool +_081C66A0: + adds r0, r6, 0 + bl sub_81C66AC +_081C66A6: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81C6648 + + thumb_func_start sub_81C66AC +sub_81C66AC: @ 81C66AC + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =gUnknown_0203CE7C + ldrh r0, [r0] + ldr r1, =gStringVar1 + bl CopyItemName + ldr r5, =gStringVar4 + ldr r1, =gUnknown_085E8E11 + adds r0, r5, 0 + bl StringExpandPlaceholders + ldr r2, =sub_81C66EC + adds r0, r4, 0 + adds r1, r5, 0 + bl DisplayItemMessageInBattlePyramid + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C66AC + + thumb_func_start sub_81C66EC +sub_81C66EC: @ 81C66EC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081C670A + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_81C6714 +_081C670A: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C66EC + + thumb_func_start sub_81C6714 +sub_81C6714: @ 81C6714 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + ldr r0, =gTasks + 0x8 + adds r4, r0 + bl sub_81C6E1C + movs r1, 0x2 + ldrsh r0, [r4, r1] + bl sub_81C55D8 + ldrb r0, [r4] + movs r1, 0 + bl sub_81C5A98 + adds r0, r5, 0 + bl sub_81C629C + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C6714 + + thumb_func_start sub_81C674C +sub_81C674C: @ 81C674C + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r6, r4, 0 + ldr r5, =gUnknown_0203CE7C + ldrh r0, [r5] + bl itemid_80BF6D8_mail_related + lsls r0, 24 + cmp r0, 0 + bne _081C677C + ldr r1, =gUnknown_085E8DCE + ldr r2, =sub_81C66EC + adds r0, r4, 0 + bl DisplayItemMessageInBattlePyramid + b _081C6796 + .pool +_081C677C: + ldrh r0, [r5] + bl itemid_is_unique + lsls r0, 24 + cmp r0, 0 + bne _081C6790 + adds r0, r4, 0 + bl sub_81C5B14 + b _081C6796 +_081C6790: + adds r0, r6, 0 + bl sub_81C66AC +_081C6796: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81C674C + + thumb_func_start sub_81C679C +sub_81C679C: @ 81C679C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, =gUnknown_0203CE7C + ldrh r0, [r4] + bl ItemId_GetBattleFunc + cmp r0, 0 + beq _081C67C0 + bl sub_81C61A8 + ldrh r0, [r4] + bl ItemId_GetBattleFunc + adds r1, r0, 0 + adds r0, r5, 0 + bl _call_via_r1 +_081C67C0: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C679C + + thumb_func_start sub_81C67CC +sub_81C67CC: @ 81C67CC + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, =gTasks + 0x8 + mov r9, r0 + adds r5, r4, r0 + ldr r0, =gUnknown_0203CF30 + ldrh r1, [r0, 0x6] + ldrh r0, [r0, 0x8] + adds r1, r0 + strh r1, [r5, 0x2] + ldr r0, =gUnknown_0203CF2C + ldr r0, [r0] + ldr r2, =0x00000814 + adds r0, r2 + movs r2, 0 + mov r8, r2 + strb r1, [r0] + ldrb r0, [r5] + movs r1, 0x10 + movs r2, 0x1 + bl sub_81AF15C + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + movs r0, 0x2 + ldrsh r2, [r5, r0] + lsls r2, 1 + ldr r1, =0x00000ca9 + adds r0, r3, r1 + ldrb r1, [r0] + lsls r1, 30 + lsrs r1, 30 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r2, r0 + ldr r0, =0x00000e2c + adds r3, r0 + adds r3, r2 + ldrh r0, [r3] + ldr r1, =gStringVar1 + bl CopyItemName + ldr r6, =gStringVar4 + ldr r1, =gUnknown_085E8DFE + adds r0, r6, 0 + bl StringExpandPlaceholders + movs r0, 0x1 + movs r1, 0 + bl FillWindowPixelBuffer + mov r1, r8 + str r1, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + str r1, [sp, 0x8] + str r1, [sp, 0xC] + adds r1, r6, 0 + movs r2, 0x3 + movs r3, 0 + bl sub_81C6C3C + ldrb r0, [r5] + movs r1, 0x1 + bl sub_81C5A98 + ldrb r0, [r5, 0x2] + bl sub_81C704C + movs r2, 0x8 + negs r2, r2 + add r9, r2 + add r4, r9 + ldr r0, =sub_81C68B0 + str r0, [r4] + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C67CC + + thumb_func_start sub_81C68B0 +sub_81C68B0: @ 81C68B0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + bl sub_81221EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081C695C + ldr r7, =gMain + ldrh r1, [r7, 0x2E] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _081C68F8 + movs r0, 0x5 + bl PlaySE + ldrb r0, [r4] + ldr r1, =gUnknown_0203CF38 + subs r2, r1, 0x2 + bl get_coro_args_x18_x1A + b _081C6940 + .pool +_081C68F8: + ldrb r0, [r4] + bl ListMenuHandleInput + adds r6, r0, 0 + ldrb r0, [r4] + ldr r4, =gUnknown_0203CF38 + subs r2, r4, 0x2 + adds r1, r4, 0 + bl get_coro_args_x18_x1A + movs r0, 0 + bl sub_81C7028 + subs r4, 0x8 + ldrb r0, [r4, 0x6] + bl sub_81C704C + movs r0, 0x2 + negs r0, r0 + cmp r6, r0 + beq _081C6930 + adds r0, 0x1 + cmp r6, r0 + bne _081C6950 + b _081C695C + .pool +_081C6930: + movs r0, 0x5 + bl PlaySE + ldrh r1, [r7, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081C6948 +_081C6940: + adds r0, r5, 0 + bl sub_81C6964 + b _081C695C +_081C6948: + adds r0, r5, 0 + bl sub_81C6A14 + b _081C695C +_081C6950: + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + bl sub_81C6964 +_081C695C: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81C68B0 + + thumb_func_start sub_81C6964 +sub_81C6964: @ 81C6964 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r5, r0, r1 + ldr r7, =gUnknown_0203CF38 + subs r0, r7, 0x2 + mov r8, r0 + ldrh r0, [r0] + ldrh r1, [r7] + adds r0, r1 + lsls r0, 16 + lsrs r4, r0, 16 + movs r3, 0x2 + ldrsh r1, [r5, r3] + cmp r1, r4 + beq _081C6996 + subs r0, r4, 0x1 + cmp r1, r0 + bne _081C69A8 +_081C6996: + adds r0, r6, 0 + bl sub_81C6A14 + b _081C69FC + .pool +_081C69A8: + ldrb r0, [r5, 0x2] + lsls r1, r4, 24 + lsrs r1, 24 + bl sub_81C57A8 + ldr r0, =gUnknown_0203CF2C + ldr r0, [r0] + ldr r1, =0x00000814 + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] + movs r0, 0x1 + bl sub_81C7028 + ldrb r0, [r5] + adds r1, r7, 0 + mov r2, r8 + bl sub_81AE6C8 + movs r3, 0x2 + ldrsh r0, [r5, r3] + cmp r0, r4 + bge _081C69E0 + adds r1, r7, 0 + subs r1, 0x8 + ldrh r0, [r1, 0x6] + subs r0, 0x1 + strh r0, [r1, 0x6] +_081C69E0: + bl sub_81C5314 + ldr r0, =gUnknown_03006310 + ldrh r1, [r7] + mov r3, r8 + ldrh r2, [r3] + bl ListMenuInit + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5] + adds r0, r6, 0 + bl sub_81C629C +_081C69FC: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C6964 + + thumb_func_start sub_81C6A14 +sub_81C6A14: @ 81C6A14 + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + ldr r5, =gUnknown_0203CF38 + subs r7, r5, 0x2 + ldr r0, =gUnknown_0203CF2C + ldr r0, [r0] + ldr r1, =0x00000814 + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] + movs r0, 0x1 + bl sub_81C7028 + ldrb r0, [r4] + adds r1, r5, 0 + adds r2, r7, 0 + bl sub_81AE6C8 + movs r0, 0x2 + ldrsh r2, [r4, r0] + ldrh r0, [r5] + ldrh r1, [r7] + adds r0, r1 + cmp r2, r0 + bge _081C6A5E + adds r1, r5, 0 + subs r1, 0x8 + ldrh r0, [r1, 0x6] + subs r0, 0x1 + strh r0, [r1, 0x6] +_081C6A5E: + bl sub_81C5314 + ldr r0, =gUnknown_03006310 + ldrh r1, [r5] + ldrh r2, [r7] + bl ListMenuInit + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + adds r0, r6, 0 + bl sub_81C629C + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C6A14 + + thumb_func_start sub_81C6A94 +sub_81C6A94: @ 81C6A94 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + ldr r0, =gPlayerParty + mov r9, r0 + movs r0, 0x14 + bl Alloc + adds r7, r0, 0 + movs r0, 0xA + bl Alloc + adds r5, r0, 0 + ldr r1, =gSaveBlock2Ptr + mov r8, r1 + ldr r2, [r1] + ldr r4, =0x00000ca9 + adds r0, r2, r4 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 30 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldr r0, =0x00000e2c + adds r1, r0 + adds r0, r7, 0 + movs r2, 0x14 + bl memcpy + mov r1, r8 + ldr r2, [r1] + adds r0, r2, r4 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 30 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 1 + adds r1, r2 + ldr r0, =0x00000e54 + adds r1, r0 + adds r0, r5, 0 + movs r2, 0xA + bl memcpy + movs r6, 0 +_081C6AF8: + movs r0, 0x64 + muls r0, r6 + add r0, r9 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + mov r1, sp + strh r0, [r1] + cmp r0, 0 + beq _081C6B88 + movs r1, 0x1 + bl AddBagItem + lsls r0, 24 + cmp r0, 0 + bne _081C6B88 + mov r1, r8 + ldr r2, [r1] + adds r0, r2, r4 + ldrb r1, [r0] + lsls r1, 30 + lsrs r1, 30 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, =0x00000e2c + adds r0, r1 + adds r1, r7, 0 + movs r2, 0x14 + bl memcpy + mov r0, r8 + ldr r2, [r0] + adds r0, r2, r4 + ldrb r1, [r0] + lsls r1, 30 + lsrs r1, 30 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 1 + adds r0, r2 + ldr r1, =0x00000e54 + adds r0, r1 + adds r1, r5, 0 + movs r2, 0xA + bl memcpy + adds r0, r7, 0 + bl Free + adds r0, r5, 0 + bl Free + ldr r1, =gScriptResult + movs r0, 0x1 + strh r0, [r1] + b _081C6BC6 + .pool +_081C6B88: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x2 + bls _081C6AF8 + movs r1, 0 + mov r0, sp + strh r1, [r0] + movs r6, 0 + movs r4, 0x64 +_081C6B9C: + adds r0, r6, 0 + muls r0, r4 + add r0, r9 + movs r1, 0xC + mov r2, sp + bl SetMonData + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x2 + bls _081C6B9C + ldr r1, =gScriptResult + movs r0, 0 + strh r0, [r1] + adds r0, r7, 0 + bl Free + adds r0, r5, 0 + bl Free +_081C6BC6: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C6A94 + + thumb_func_start sub_81C6BD8 +sub_81C6BD8: @ 81C6BD8 + push {r4,lr} + ldr r0, =gUnknown_0861F328 + bl InitWindows + bl DeactivateAllTextPrinters + movs r0, 0 + movs r1, 0x1 + movs r2, 0xE0 + bl sub_809882C + movs r0, 0 + movs r1, 0xA + movs r2, 0xD0 + bl copy_textbox_border_tile_patterns_to_vram + ldr r0, =gUnknown_0860F074 + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + movs r4, 0 +_081C6C04: + adds r0, r4, 0 + movs r1, 0 + bl FillWindowPixelBuffer + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bls _081C6C04 + movs r0, 0 + bl PutWindowTilemap + movs r0, 0x1 + bl PutWindowTilemap + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C6BD8 + + thumb_func_start sub_81C6C3C +sub_81C6C3C: @ 81C6C3C + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x14 + ldr r4, [sp, 0x28] + ldr r6, [sp, 0x2C] + ldr r5, [sp, 0x30] + mov r8, r5 + ldr r5, [sp, 0x34] + lsls r0, 24 + lsrs r0, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r6, 24 + lsrs r6, 24 + lsls r5, 24 + lsrs r5, 24 + str r4, [sp] + str r6, [sp, 0x4] + lsls r4, r5, 1 + adds r4, r5 + ldr r5, =gUnknown_0861F31C + adds r4, r5 + str r4, [sp, 0x8] + mov r4, r8 + lsls r4, 24 + asrs r4, 24 + str r4, [sp, 0xC] + str r1, [sp, 0x10] + movs r1, 0x1 + bl AddTextPrinterParametrized2 + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C6C3C + + thumb_func_start sub_81C6C94 +sub_81C6C94: @ 81C6C94 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x14 + ldr r4, [sp, 0x28] + ldr r6, [sp, 0x2C] + ldr r5, [sp, 0x30] + mov r8, r5 + ldr r5, [sp, 0x34] + lsls r0, 24 + lsrs r0, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r6, 24 + lsrs r6, 24 + lsls r5, 24 + lsrs r5, 24 + str r4, [sp] + str r6, [sp, 0x4] + lsls r4, r5, 1 + adds r4, r5 + ldr r5, =gUnknown_0861F31C + adds r4, r5 + str r4, [sp, 0x8] + mov r4, r8 + lsls r4, 24 + asrs r4, 24 + str r4, [sp, 0xC] + str r1, [sp, 0x10] + movs r1, 0x7 + bl AddTextPrinterParametrized2 + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C6C94 + + thumb_func_start sub_81C6CEC +sub_81C6CEC: @ 81C6CEC + push {lr} + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + movs r2, 0x1 + movs r3, 0xE + bl SetWindowBorderStyle + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + pop {r0} + bx r0 + thumb_func_end sub_81C6CEC + + thumb_func_start sub_81C6D08 +sub_81C6D08: @ 81C6D08 + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gUnknown_0203CF2C + ldr r1, [r1] + ldr r2, =0x0000080f + adds r1, r2 + adds r1, r0 + ldrb r0, [r1] + bx lr + .pool + thumb_func_end sub_81C6D08 + + thumb_func_start sub_81C6D24 +sub_81C6D24: @ 81C6D24 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, =gUnknown_0203CF2C + ldr r3, =0x0000080f + adds r1, r2, r3 + ldr r0, [r0] + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0xFF + bne _081C6D58 + lsls r0, r2, 3 + ldr r1, =gUnknown_0861F350 + adds r0, r1 + bl AddWindow + strb r0, [r4] + ldrb r0, [r4] + movs r1, 0 + movs r2, 0x1 + movs r3, 0xE + bl SetWindowBorderStyle + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram +_081C6D58: + ldrb r0, [r4] + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81C6D24 + + thumb_func_start sub_81C6D6C +sub_81C6D6C: @ 81C6D6C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gUnknown_0203CF2C + ldr r2, =0x0000080f + adds r0, r2 + ldr r1, [r1] + adds r4, r1, r0 + ldrb r0, [r4] + cmp r0, 0xFF + beq _081C6D9E + movs r1, 0 + bl sub_8198070 + ldrb r0, [r4] + bl ClearWindowTilemap + ldrb r0, [r4] + bl RemoveWindow + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0xFF + strb r0, [r4] +_081C6D9E: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C6D6C + + thumb_func_start sub_81C6DAC +sub_81C6DAC: @ 81C6DAC + push {lr} + sub sp, 0x10 + adds r3, r1, 0 + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gUnknown_0861F370 + movs r2, 0x2 + str r2, [sp] + movs r2, 0x1 + str r2, [sp, 0x4] + movs r2, 0xE + str r2, [sp, 0x8] + str r3, [sp, 0xC] + movs r2, 0x1 + movs r3, 0 + bl CreateYesNoMenuWithCallbacks + add sp, 0x10 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C6DAC + + thumb_func_start DisplayItemMessageInBattlePyramid +@ void DisplayItemMessageInBattlePyramid(u8 taskId, u8 *str, void ( *callback)(u8 taskId)) +DisplayItemMessageInBattlePyramid: @ 81C6DD8 + push {r4-r6,lr} + sub sp, 0x10 + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x2 + movs r1, 0x11 + bl FillWindowPixelBuffer + bl sav2_get_text_speed + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + str r1, [sp] + str r0, [sp, 0x4] + str r5, [sp, 0x8] + str r6, [sp, 0xC] + adds r0, r4, 0 + movs r1, 0x2 + movs r2, 0xA + movs r3, 0xD + bl DisplayMessageAndContinueTask + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end DisplayItemMessageInBattlePyramid + + thumb_func_start sub_81C6E1C +sub_81C6E1C: @ 81C6E1C + push {lr} + movs r0, 0x2 + movs r1, 0 + bl sub_8197DF8 + movs r0, 0x2 + bl ClearWindowTilemap + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + pop {r0} + bx r0 + thumb_func_end sub_81C6E1C + + thumb_func_start sub_81C6E38 +sub_81C6E38: @ 81C6E38 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gUnknown_0203CF2C + ldr r2, =0x00000804 + adds r1, r4, r2 + ldr r0, [r0] + adds r5, r0, r1 + ldrb r0, [r5] + cmp r0, 0xFF + beq _081C6E80 + ldr r0, =0x00001024 + adds r4, r0 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + bl FreeSpriteOamMatrix + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + movs r0, 0xFF + strb r0, [r5] +_081C6E80: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C6E38 + + thumb_func_start sub_81C6E98 +sub_81C6E98: @ 81C6E98 + push {r4,lr} + sub sp, 0x8 + movs r0, 0x40 + bl Alloc + adds r4, r0, 0 + ldr r0, =gUnknown_08D9ADD0 + adds r1, r4, 0 + bl LZDecompressWram + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 25 + adds r0, r4, r0 + str r0, [sp] + ldr r1, =0xffff0000 + ldr r0, [sp, 0x4] + ands r0, r1 + ldr r1, =0x00001024 + orrs r0, r1 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpritePalette + adds r0, r4, 0 + bl Free + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C6E98 + + thumb_func_start sub_81C6EF4 +sub_81C6EF4: @ 81C6EF4 + push {r4,lr} + ldr r0, =gUnknown_0203CF2C + ldr r4, [r0] + ldr r0, =0x00000804 + adds r4, r0 + ldr r0, =gUnknown_0861F3D4 + movs r1, 0x44 + movs r2, 0x38 + movs r3, 0 + bl CreateSprite + strb r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C6EF4 + + thumb_func_start sub_81C6F20 +sub_81C6F20: @ 81C6F20 + push {r4,lr} + ldr r0, =gUnknown_0203CF2C + ldr r0, [r0] + ldr r1, =0x00000804 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r4, r0, r1 + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _081C6F50 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r0, =sub_81C6F68 + str r0, [r4, 0x1C] +_081C6F50: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C6F20 + + thumb_func_start sub_81C6F68 +sub_81C6F68: @ 81C6F68 + push {r4,lr} + adds r4, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _081C6F84 + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAffineAnim + ldr r0, =SpriteCallbackDummy + str r0, [r4, 0x1C] +_081C6F84: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C6F68 + + thumb_func_start sub_81C6F90 +sub_81C6F90: @ 81C6F90 + push {r4-r6,lr} + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 24 + lsrs r4, r1, 24 + ldr r0, =gUnknown_0203CF2C + ldr r2, =0x00000805 + adds r1, r4, r2 + ldr r0, [r0] + adds r5, r0, r1 + ldrb r0, [r5] + cmp r0, 0xFF + bne _081C6FE0 + ldr r0, =0x00001025 + adds r4, r0 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag + adds r0, r4, 0 + adds r1, r4, 0 + adds r2, r6, 0 + bl AddItemIconObject + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _081C6FE0 + strb r2, [r5] + ldr r1, =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + movs r1, 0x18 + strh r1, [r0, 0x24] + movs r1, 0x58 + strh r1, [r0, 0x26] +_081C6FE0: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C6F90 + + thumb_func_start sub_81C6FF8 +sub_81C6FF8: @ 81C6FF8 + push {lr} + lsls r0, 24 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r0, 24 + bl sub_81C6E38 + pop {r0} + bx r0 + thumb_func_end sub_81C6FF8 + + thumb_func_start sub_81C700C +sub_81C700C: @ 81C700C + push {lr} + ldr r0, =gUnknown_0203CF2C + ldr r0, [r0] + ldr r1, =0x00000807 + adds r0, r1 + movs r1, 0x8 + bl sub_8122344 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C700C + + thumb_func_start sub_81C7028 +sub_81C7028: @ 81C7028 + push {lr} + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + ldr r0, =gUnknown_0203CF2C + ldr r0, [r0] + ldr r1, =0x00000807 + adds r0, r1 + movs r1, 0x8 + bl sub_81223FC + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C7028 + + thumb_func_start sub_81C704C +sub_81C704C: @ 81C704C + push {lr} + adds r3, r0, 0 + lsls r3, 24 + ldr r0, =gUnknown_0203CF2C + ldr r0, [r0] + ldr r1, =0x00000807 + adds r0, r1 + lsrs r3, 4 + movs r1, 0x80 + lsls r1, 13 + adds r3, r1 + lsrs r3, 16 + movs r1, 0x88 + movs r2, 0x78 + bl sub_8122448 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C704C + + thumb_func_start sub_81C7078 +sub_81C7078: @ 81C7078 + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + bl is_c1_link_related_active + cmp r0, 0 + bne _081C7090 + ldr r0, =sub_81C7170 + b _081C7092 + .pool +_081C7090: + ldr r0, =sub_81C71E4 +_081C7092: + lsls r1, r4, 24 + lsrs r1, 24 + bl CreateTask + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + movs r1, 0x1 + adds r2, r5, 0 + bl SetWordTaskArg + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r2, =gUnknown_0203CF3C + ldrb r1, [r2] + strh r1, [r0, 0xE] + ldrb r0, [r2] + adds r1, r0, 0x1 + strb r1, [r2] + lsls r0, 24 + lsrs r0, 8 + orrs r0, r4 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81C7078 + + thumb_func_start sub_81C70D8 +sub_81C70D8: @ 81C70D8 + push {lr} + ldr r1, =0x0000ffff + ands r1, r0 + lsrs r3, r0, 16 + ldr r2, =gTasks + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r1, r0, r2 + ldrb r0, [r1, 0x4] + cmp r0, 0 + beq _081C711C + ldr r2, [r1] + ldr r0, =sub_81C7170 + cmp r2, r0 + beq _081C70FE + ldr r0, =sub_81C71E4 + cmp r2, r0 + bne _081C711C +_081C70FE: + movs r2, 0xE + ldrsh r0, [r1, r2] + cmp r0, r3 + bne _081C711C + movs r0, 0x1 + b _081C711E + .pool +_081C711C: + movs r0, 0 +_081C711E: + pop {r1} + bx r1 + thumb_func_end sub_81C70D8 + + thumb_func_start sub_81C7124 +sub_81C7124: @ 81C7124 + push {r4-r6,lr} + adds r6, r0, 0 + movs r5, 0 + ldr r4, =gTasks +_081C712C: + ldrb r0, [r4, 0x4] + cmp r0, 0 + beq _081C7160 + ldr r1, [r4] + ldr r0, =sub_81C7170 + cmp r1, r0 + beq _081C7140 + ldr r0, =sub_81C71E4 + cmp r1, r0 + bne _081C7160 +_081C7140: + lsls r0, r5, 24 + lsrs r0, 24 + movs r1, 0x1 + bl GetWordTaskArg + cmp r0, r6 + bne _081C7160 + movs r0, 0x1 + b _081C716A + .pool +_081C7160: + adds r4, 0x28 + adds r5, 0x1 + cmp r5, 0xF + ble _081C712C + movs r0, 0 +_081C716A: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81C7124 + + thumb_func_start sub_81C7170 +sub_81C7170: @ 81C7170 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + movs r1, 0x1 + bl GetWordTaskArg + adds r6, r0, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + movs r7, 0 +_081C718C: + movs r1, 0 + ldrsh r0, [r4, r1] + bl _call_via_r6 + cmp r0, 0x4 + bhi _081C71D6 + lsls r0, 2 + ldr r1, =_081C71AC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081C71AC: + .4byte _081C71C6 + .4byte _081C71C0 + .4byte _081C71DE + .4byte _081C71DA + .4byte _081C71CE +_081C71C0: + ldrh r0, [r4] + adds r0, 0x1 + b _081C71D8 +_081C71C6: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _081C71DE +_081C71CE: + adds r0, r5, 0 + bl DestroyTask + b _081C71DE +_081C71D6: + subs r0, 0x5 +_081C71D8: + strh r0, [r4] +_081C71DA: + cmp r7, 0 + beq _081C718C +_081C71DE: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81C7170 + + thumb_func_start sub_81C71E4 +sub_81C71E4: @ 81C71E4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + bl sub_8087598 + cmp r0, 0 + bne _081C724A + adds r0, r5, 0 + movs r1, 0x1 + bl GetWordTaskArg + adds r2, r0, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + movs r1, 0 + ldrsh r0, [r4, r1] + bl _call_via_r2 + cmp r0, 0x4 + bhi _081C7246 + lsls r0, 2 + ldr r1, =_081C7224 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081C7224: + .4byte _081C7238 + .4byte _081C7238 + .4byte _081C724A + .4byte _081C724A + .4byte _081C723E +_081C7238: + ldrh r0, [r4] + adds r0, 0x1 + b _081C7248 +_081C723E: + adds r0, r5, 0 + bl DestroyTask + b _081C724A +_081C7246: + subs r0, 0x5 +_081C7248: + strh r0, [r4] +_081C724A: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81C71E4 + + thumb_func_start CB2_PokeNav +CB2_PokeNav: @ 81C7250 + push {r4,lr} + ldr r4, =gUnknown_0203CF40 + movs r0, 0x5C + bl Alloc + str r0, [r4] + cmp r0, 0 + bne _081C7270 + ldr r0, =sub_8086194 + bl SetMainCallback2 + b _081C7292 + .pool +_081C7270: + bl sub_81C7360 + bl ResetTasks + movs r0, 0 + bl SetVBlankCallback + ldr r0, =sub_81C742C + movs r1, 0 + bl CreateTask + ldr r0, =sub_81C7400 + bl SetMainCallback2 + ldr r0, =sub_81C7418 + bl SetVBlankCallback +_081C7292: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end CB2_PokeNav + + thumb_func_start sub_81C72A4 +sub_81C72A4: @ 81C72A4 + push {lr} + ldr r0, =sub_81C72BC + bl SetMainCallback2 + movs r0, 0x1 + movs r1, 0 + bl fade_screen + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C72A4 + + thumb_func_start sub_81C72BC +sub_81C72BC: @ 81C72BC + push {r4,lr} + bl UpdatePaletteFade + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081C7320 + ldr r4, =gUnknown_0203CF40 + movs r0, 0x5C + bl Alloc + str r0, [r4] + cmp r0, 0 + bne _081C72F0 + ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music + bl SetMainCallback2 + b _081C7320 + .pool +_081C72F0: + bl sub_81C7360 + ldr r1, [r4] + movs r0, 0x1 + strh r0, [r1, 0x8] + bl ResetTasks + bl ResetSpriteData + bl FreeAllSpritePalettes + movs r0, 0 + bl SetVBlankCallback + ldr r0, =sub_81C742C + movs r1, 0 + bl CreateTask + ldr r0, =sub_81C7400 + bl SetMainCallback2 + ldr r0, =sub_81C7418 + bl SetVBlankCallback +_081C7320: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C72BC + + thumb_func_start sub_81C7334 +sub_81C7334: @ 81C7334 + push {r4,lr} + movs r4, 0 +_081C7338: + adds r0, r4, 0 + bl sub_81C7650 + adds r4, 0x1 + cmp r4, 0x12 + ble _081C7338 + ldr r4, =gUnknown_0203CF40 + ldr r0, [r4] + bl Free + movs r0, 0 + str r0, [r4] + bl InitKeys + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C7334 + + thumb_func_start sub_81C7360 +sub_81C7360: @ 81C7360 + push {r4,r5,lr} + adds r5, r0, 0 + movs r2, 0 + movs r1, 0x12 + adds r0, 0x58 +_081C736A: + str r2, [r0] + subs r0, 0x4 + subs r1, 0x1 + cmp r1, 0 + bge _081C736A + movs r4, 0 + strh r4, [r5, 0x8] + str r4, [r5, 0x4] + bl sub_81C7388 + str r0, [r5, 0xC] + str r4, [r5] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81C7360 + + thumb_func_start sub_81C7388 +sub_81C7388: @ 81C7388 + push {r4-r6,lr} + movs r5, 0 +_081C738C: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x5 + bl GetMonData + cmp r0, 0 + beq _081C73BA + adds r0, r4, 0 + movs r1, 0x6 + bl GetMonData + cmp r0, 0 + bne _081C73BA + adds r0, r4, 0 + movs r1, 0x52 + bl GetMonData + cmp r0, 0 + bne _081C73E2 +_081C73BA: + adds r5, 0x1 + cmp r5, 0x5 + ble _081C738C + movs r4, 0 +_081C73C2: + movs r5, 0 + lsls r6, r4, 24 +_081C73C6: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80D2270 + cmp r0, 0 + beq _081C73EC + lsls r1, r5, 24 + lsrs r1, 24 + lsrs r0, r6, 24 + movs r2, 0x52 + bl get_pokemon_data_from_any_box + cmp r0, 0 + beq _081C73EC +_081C73E2: + movs r0, 0x1 + b _081C73FA + .pool +_081C73EC: + adds r5, 0x1 + cmp r5, 0x1D + ble _081C73C6 + adds r4, 0x1 + cmp r4, 0xD + ble _081C73C2 + movs r0, 0 +_081C73FA: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81C7388 + + thumb_func_start sub_81C7400 +sub_81C7400: @ 81C7400 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_81C7400 + + thumb_func_start sub_81C7418 +sub_81C7418: @ 81C7418 + push {lr} + bl TransferPlttBuffer + bl LoadOam + bl ProcessSpriteCopyRequests + pop {r0} + bx r0 + thumb_func_end sub_81C7418 + + thumb_func_start sub_81C742C +sub_81C742C: @ 81C742C + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r7, r1, r0 + movs r1, 0 + ldrsh r0, [r7, r1] + cmp r0, 0x5 + bls _081C7446 + b _081C7562 +_081C7446: + lsls r0, 2 + ldr r1, =_081C7458 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081C7458: + .4byte _081C7470 + .4byte _081C747A + .4byte _081C7490 + .4byte _081C749C + .4byte _081C751E + .4byte _081C752C +_081C7470: + bl sub_81C76C4 + movs r0, 0x1 + strh r0, [r7] + b _081C7562 +_081C747A: + bl sub_81C76FC + cmp r0, 0 + bne _081C7562 + ldr r0, =0x000186a0 + bl sub_81C756C + b _081C74E8 + .pool +_081C7490: + bl sub_81C786C + cmp r0, 0 + bne _081C7562 + movs r0, 0x3 + strh r0, [r7] +_081C749C: + bl sub_81C75E0 + adds r6, r0, 0 + movs r0, 0x1 + negs r0, r0 + cmp r6, r0 + beq _081C74FC + ldr r0, =0x0001869f + cmp r6, r0 + bls _081C7506 + ldr r4, =gUnknown_0861F3EC + ldr r5, =gUnknown_0203CF40 + ldr r0, [r5] + ldr r1, [r0, 0x4] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x18 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldr r0, [r5] + ldr r1, [r0, 0x4] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r4, 0x14 + adds r0, r4 + ldr r0, [r0] + bl _call_via_r0 + adds r0, r6, 0 + bl sub_81C756C + cmp r0, 0 + beq _081C74FC +_081C74E8: + movs r0, 0x4 + strh r0, [r7] + b _081C7562 + .pool +_081C74FC: + bl sub_81C7710 + movs r0, 0x5 + strh r0, [r7] + b _081C7562 +_081C7506: + cmp r6, 0 + beq _081C7562 + adds r0, r6, 0 + bl sub_81C7850 + bl sub_81C786C + cmp r0, 0 + beq _081C7562 + movs r0, 0x2 + strh r0, [r7] + b _081C7562 +_081C751E: + bl sub_81C75D4 + cmp r0, 0 + bne _081C7562 + movs r0, 0x3 + strh r0, [r7] + b _081C7562 +_081C752C: + bl sub_81C7738 + cmp r0, 0 + bne _081C7562 + ldr r0, =gUnknown_0203CF40 + ldr r0, [r0] + ldrh r0, [r0, 0x8] + negs r4, r0 + orrs r4, r0 + lsrs r4, 31 + bl sub_81C9430 + bl sub_81C7334 + cmp r4, 0 + beq _081C755C + ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music + bl SetMainCallback2 + b _081C7562 + .pool +_081C755C: + ldr r0, =sub_8086194 + bl SetMainCallback2 +_081C7562: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C742C + + thumb_func_start sub_81C756C +sub_81C756C: @ 81C756C + push {r4-r6,lr} + ldr r1, =0xfffe7960 + adds r6, r0, r1 + bl sub_81C75F4 + ldr r5, =gUnknown_0861F3EC + lsls r0, r6, 3 + subs r0, r6 + lsls r4, r0, 2 + adds r0, r4, r5 + ldr r0, [r0] + bl _call_via_r0 + cmp r0, 0 + beq _081C75CC + adds r0, r5, 0 + adds r0, 0x8 + adds r0, r4, r0 + ldr r0, [r0] + bl _call_via_r0 + cmp r0, 0 + beq _081C75CC + adds r0, r5, 0 + adds r0, 0xC + adds r0, r4, r0 + ldr r0, [r0] + adds r1, r5, 0 + adds r1, 0x10 + adds r1, r4, r1 + ldr r1, [r1] + bl sub_81C7834 + ldr r0, =gUnknown_0203CF40 + ldr r1, [r0] + adds r0, r5, 0x4 + adds r0, r4, r0 + ldr r0, [r0] + str r0, [r1] + str r6, [r1, 0x4] + movs r0, 0x1 + b _081C75CE + .pool +_081C75CC: + movs r0, 0 +_081C75CE: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81C756C + + thumb_func_start sub_81C75D4 +sub_81C75D4: @ 81C75D4 + push {lr} + bl sub_81C786C + pop {r1} + bx r1 + thumb_func_end sub_81C75D4 + + thumb_func_start sub_81C75E0 +sub_81C75E0: @ 81C75E0 + push {lr} + ldr r0, =gUnknown_0203CF40 + ldr r0, [r0] + ldr r0, [r0] + bl _call_via_r0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81C75E0 + + thumb_func_start sub_81C75F4 +sub_81C75F4: @ 81C75F4 + push {lr} + bl InitKeys + pop {r0} + bx r0 + thumb_func_end sub_81C75F4 + + thumb_func_start c3args_set_0toR1_1to0 +c3args_set_0toR1_1to0: @ 81C7600 + push {lr} + bl SetVBlankCallback + pop {r0} + bx r0 + thumb_func_end c3args_set_0toR1_1to0 + + thumb_func_start sub_81C760C +sub_81C760C: @ 81C760C + push {lr} + ldr r0, =sub_81C7418 + bl SetVBlankCallback + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C760C + + thumb_func_start sub_81C761C +sub_81C761C: @ 81C761C + push {r4,lr} + adds r4, r0, 0 + adds r0, r1, 0 + bl Alloc + ldr r1, =gUnknown_0203CF40 + ldr r1, [r1] + lsls r4, 2 + adds r1, 0x10 + adds r1, r4 + str r0, [r1] + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81C761C + + thumb_func_start sub_81C763C +sub_81C763C: @ 81C763C + ldr r1, =gUnknown_0203CF40 + ldr r1, [r1] + lsls r0, 2 + adds r1, 0x10 + adds r1, r0 + ldr r0, [r1] + bx lr + .pool + thumb_func_end sub_81C763C + + thumb_func_start sub_81C7650 +sub_81C7650: @ 81C7650 + push {r4,r5,lr} + ldr r5, =gUnknown_0203CF40 + ldr r1, [r5] + lsls r4, r0, 2 + adds r1, 0x10 + adds r1, r4 + ldr r0, [r1] + cmp r0, 0 + beq _081C7670 + bl Free + ldr r0, [r5] + adds r0, 0x10 + adds r0, r4 + movs r1, 0 + str r1, [r0] +_081C7670: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C7650 + + thumb_func_start sub_81C767C +sub_81C767C: @ 81C767C + ldr r0, =gUnknown_0203CF40 + ldr r0, [r0] + ldrh r0, [r0, 0x8] + bx lr + .pool + thumb_func_end sub_81C767C + + thumb_func_start sub_81C7688 +sub_81C7688: @ 81C7688 + ldr r1, =gUnknown_0203CF40 + ldr r1, [r1] + strh r0, [r1, 0x8] + bx lr + .pool + thumb_func_end sub_81C7688 + + thumb_func_start sub_81C7694 +sub_81C7694: @ 81C7694 + push {lr} + adds r1, r0, 0 + cmp r1, 0x4 + bls _081C769E + movs r1, 0 +_081C769E: + ldr r0, =gUnknown_0203CF40 + ldr r0, [r0] + strh r1, [r0, 0xA] + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C7694 + + thumb_func_start sub_81C76AC +sub_81C76AC: @ 81C76AC + ldr r0, =gUnknown_0203CF40 + ldr r0, [r0] + ldrh r0, [r0, 0xA] + bx lr + .pool + thumb_func_end sub_81C76AC + + thumb_func_start sub_81C76B8 +sub_81C76B8: @ 81C76B8 + ldr r0, =gUnknown_0203CF40 + ldr r0, [r0] + ldr r0, [r0, 0xC] + bx lr + .pool + thumb_func_end sub_81C76B8 + + thumb_func_start sub_81C76C4 +sub_81C76C4: @ 81C76C4 + push {r4,lr} + ldr r1, =0x0000082c + movs r0, 0 + bl sub_81C761C + adds r4, r0, 0 + cmp r4, 0 + beq _081C76F4 + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r0, =sub_81C7764 + movs r1, 0x1 + bl sub_81C7078 + str r0, [r4, 0xC] + movs r0, 0x1 + b _081C76F6 + .pool +_081C76F4: + movs r0, 0 +_081C76F6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81C76C4 + + thumb_func_start sub_81C76FC +sub_81C76FC: @ 81C76FC + push {lr} + movs r0, 0 + bl sub_81C763C + ldr r0, [r0, 0xC] + bl sub_81C70D8 + pop {r1} + bx r1 + thumb_func_end sub_81C76FC + + thumb_func_start sub_81C7710 +sub_81C7710: @ 81C7710 + push {lr} + sub sp, 0x4 + movs r0, 0x6F + bl PlaySE + bl sub_81CAADC + movs r1, 0x1 + negs r1, r1 + movs r0, 0 + str r0, [sp] + adds r0, r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_81C7710 + + thumb_func_start sub_81C7738 +sub_81C7738: @ 81C7738 + push {lr} + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081C7750 + movs r0, 0x1 + b _081C775E + .pool +_081C7750: + bl sub_81C99D4 + bl sub_81C7C94 + bl FreeAllWindowBuffers + movs r0, 0 +_081C775E: + pop {r1} + bx r1 + thumb_func_end sub_81C7738 + + thumb_func_start sub_81C7764 +sub_81C7764: @ 81C7764 + push {r4,lr} + sub sp, 0x4 + cmp r0, 0x1 + beq _081C77B0 + cmp r0, 0x1 + bgt _081C7776 + cmp r0, 0 + beq _081C7780 + b _081C782A +_081C7776: + cmp r0, 0x2 + beq _081C77FC + cmp r0, 0x3 + beq _081C780E + b _081C782A +_081C7780: + movs r1, 0x82 + lsls r1, 5 + movs r0, 0 + bl SetGpuReg + bl FreeAllWindowBuffers + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, =gUnknown_0861FA04 + movs r0, 0 + movs r2, 0x1 + bl InitBgsFromTemplates + bl sub_8199D98 + bl reset_temp_tile_data_buffers + movs r0, 0x1 + b _081C782C + .pool +_081C77B0: + movs r0, 0 + bl sub_81C763C + adds r4, r0, 0 + ldr r1, =gUnknown_08DC7B80 + movs r0, 0 + str r0, [sp] + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + adds r4, 0x2C + movs r0, 0 + adds r1, r4, 0 + bl SetBgTilemapBuffer + ldr r1, =gUnknown_08DC7D84 + movs r0, 0 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer + ldr r0, =gUnknown_08DC7B60 + movs r1, 0 + movs r2, 0x20 + bl sub_81C7944 + movs r0, 0 + bl CopyBgTilemapBufferToVram + movs r0, 0 + b _081C782C + .pool +_081C77FC: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _081C7818 + bl sub_81C7B74 + movs r0, 0 + b _081C782C +_081C780E: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081C781C +_081C7818: + movs r0, 0x2 + b _081C782C +_081C781C: + bl sub_81C7C28 + bl sub_81C7D28 + movs r0, 0 + bl ShowBg +_081C782A: + movs r0, 0x4 +_081C782C: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81C7764 + + thumb_func_start sub_81C7834 +sub_81C7834: @ 81C7834 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + movs r0, 0 + bl sub_81C763C + str r4, [r0] + str r5, [r0, 0x4] + movs r1, 0 + str r1, [r0, 0x8] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81C7834 + + thumb_func_start sub_81C7850 +sub_81C7850: @ 81C7850 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0 + bl sub_81C763C + movs r1, 0 + str r1, [r0, 0x8] + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81C7850 + + thumb_func_start sub_81C786C +sub_81C786C: @ 81C786C + push {lr} + movs r0, 0 + bl sub_81C763C + ldr r0, [r0, 0x4] + bl _call_via_r0 + pop {r1} + bx r1 + thumb_func_end sub_81C786C + + thumb_func_start sub_81C7880 +sub_81C7880: @ 81C7880 + push {r4,lr} + movs r0, 0 + bl sub_81C763C + adds r4, r0, 0 + ldr r0, =atk47_cmd47 + movs r1, 0x4 + bl sub_81C7078 + str r0, [r4, 0xC] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C7880 + + thumb_func_start sub_81C78A0 +sub_81C78A0: @ 81C78A0 + push {r4,lr} + movs r0, 0 + bl sub_81C763C + adds r4, r0, 0 + ldr r0, =sub_81C791C + movs r1, 0x4 + bl sub_81C7078 + str r0, [r4, 0xC] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C78A0 + + thumb_func_start sub_81C78C0 +sub_81C78C0: @ 81C78C0 + push {lr} + movs r0, 0 + bl sub_81C763C + ldr r0, [r0, 0xC] + bl sub_81C70D8 + pop {r1} + bx r1 + thumb_func_end sub_81C78C0 + + thumb_func_start atk47_cmd47 +atk47_cmd47: @ 81C78D4 + push {lr} + cmp r0, 0x1 + beq _081C78EA + cmp r0, 0x1 + bgt _081C78E4 + cmp r0, 0 + beq _081C78EA + b _081C7914 +_081C78E4: + cmp r0, 0x2 + beq _081C78EE + b _081C7914 +_081C78EA: + movs r0, 0 + b _081C7916 +_081C78EE: + movs r1, 0xC0 + lsls r1, 1 + movs r0, 0 + movs r2, 0x1 + bl ChangeBgY + ldr r1, =0x00001fff + cmp r0, r1 + bhi _081C7908 + movs r0, 0x2 + b _081C7916 + .pool +_081C7908: + movs r1, 0x80 + lsls r1, 6 + movs r0, 0 + movs r2, 0 + bl ChangeBgY +_081C7914: + movs r0, 0x4 +_081C7916: + pop {r1} + bx r1 + thumb_func_end atk47_cmd47 + + thumb_func_start sub_81C791C +sub_81C791C: @ 81C791C + push {lr} + movs r1, 0xC0 + lsls r1, 1 + movs r0, 0 + movs r2, 0x2 + bl ChangeBgY + cmp r0, 0 + ble _081C7932 + movs r0, 0x2 + b _081C793E +_081C7932: + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x4 +_081C793E: + pop {r1} + bx r1 + thumb_func_end sub_81C791C + + thumb_func_start sub_81C7944 +sub_81C7944: @ 81C7944 + push {lr} + lsls r1, 1 + ldr r3, =gPlttBufferUnfaded + adds r1, r3 + lsls r2, 10 + lsrs r2, 11 + bl CpuSet + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C7944 + + thumb_func_start sub_81C795C +sub_81C795C: @ 81C795C + push {r4,lr} + adds r4, r0, 0 + b _081C7974 +_081C7962: + lsls r0, r1, 4 + movs r2, 0x80 + lsls r2, 1 + adds r1, r0, r2 + ldr r0, [r4] + movs r2, 0x20 + bl sub_81C7944 + adds r4, 0x8 +_081C7974: + ldr r0, [r4] + cmp r0, 0 + beq _081C7988 + ldrh r0, [r4, 0x4] + bl AllocSpritePalette + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xFF + bne _081C7962 +_081C7988: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81C795C + + thumb_func_start sub_81C7990 +sub_81C7990: @ 81C7990 + push {lr} + sub sp, 0x4 + adds r3, r0, 0 + lsls r1, 16 + lsrs r1, 16 + mov r0, sp + strh r1, [r0] + lsls r3, 5 + ldr r0, =gPlttBufferFaded + 0x200 + adds r3, r0 + ldr r2, =0x01000010 + mov r0, sp + adds r1, r3, 0 + bl CpuSet + add sp, 0x4 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C7990 + + thumb_func_start sub_81C79BC +sub_81C79BC: @ 81C79BC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + str r0, [sp] + str r1, [sp, 0x4] + mov r10, r2 + str r3, [sp, 0x8] + ldr r0, [sp, 0x2C] + cmp r0, 0 + bne _081C79E4 + ldr r2, =0x001fffff + mov r1, r10 + ands r2, r1 + ldr r0, [sp] + b _081C79F4 + .pool +_081C79E4: + ldr r2, [sp, 0x2C] + ldr r0, [sp, 0x8] + cmp r2, r0 + blt _081C7A00 + ldr r2, =0x001fffff + mov r1, r10 + ands r2, r1 + ldr r0, [sp, 0x4] +_081C79F4: + ldr r1, [sp, 0x30] + bl CpuSet + b _081C7AAE + .pool +_081C7A00: + movs r2, 0x1 + negs r2, r2 + add r10, r2 + b _081C7AA6 +_081C7A08: + ldr r1, [sp] + ldrh r0, [r1] + movs r2, 0x1F + mov r9, r2 + mov r1, r9 + ands r1, r0 + mov r9, r1 + lsls r0, 16 + lsrs r2, r0, 21 + movs r1, 0x1F + ands r1, r2 + mov r8, r1 + lsrs r7, r0, 26 + movs r2, 0x1F + ands r7, r2 + ldr r0, [sp, 0x4] + ldrh r4, [r0] + movs r0, 0x1F + ands r0, r4 + mov r1, r9 + subs r0, r1 + lsls r0, 8 + ldr r1, [sp, 0x8] + bl __divsi3 + ldr r2, [sp, 0x2C] + adds r6, r0, 0 + muls r6, r2 + asrs r6, 8 + lsls r4, 16 + lsrs r0, r4, 21 + movs r1, 0x1F + ands r0, r1 + mov r2, r8 + subs r0, r2 + lsls r0, 8 + ldr r1, [sp, 0x8] + bl __divsi3 + ldr r1, [sp, 0x2C] + adds r5, r0, 0 + muls r5, r1 + asrs r5, 8 + lsrs r4, 26 + movs r2, 0x1F + ands r4, r2 + subs r4, r7 + lsls r4, 8 + adds r0, r4, 0 + ldr r1, [sp, 0x8] + bl __divsi3 + ldr r1, [sp, 0x2C] + muls r0, r1 + asrs r0, 8 + add r6, r9 + movs r2, 0x1F + ands r6, r2 + add r5, r8 + ands r5, r2 + adds r0, r7, r0 + ands r0, r2 + lsls r0, 10 + lsls r5, 5 + orrs r0, r5 + orrs r0, r6 + ldr r1, [sp, 0x30] + strh r0, [r1] + ldr r2, [sp] + adds r2, 0x2 + str r2, [sp] + ldr r0, [sp, 0x4] + adds r0, 0x2 + str r0, [sp, 0x4] + adds r1, 0x2 + str r1, [sp, 0x30] + movs r1, 0x1 + negs r1, r1 + add r10, r1 +_081C7AA6: + movs r0, 0x1 + negs r0, r0 + cmp r10, r0 + bne _081C7A08 +_081C7AAE: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81C79BC + + thumb_func_start sub_81C7AC0 +sub_81C7AC0: @ 81C7AC0 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + movs r0, 0 + bl sub_81C763C + cmp r4, 0x1 + beq _081C7AF0 + cmp r4, 0x1 + bgt _081C7ADA + cmp r4, 0 + beq _081C7AE4 + b _081C7B2C +_081C7ADA: + cmp r4, 0x2 + beq _081C7B04 + cmp r4, 0x3 + beq _081C7B18 + b _081C7B2C +_081C7AE4: + ldr r0, [r0, 0x14] + movs r1, 0x2 + negs r1, r1 + str r4, [sp] + movs r2, 0 + b _081C7B10 +_081C7AF0: + ldr r0, [r0, 0x14] + movs r1, 0x2 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + b _081C7B2C +_081C7B04: + movs r0, 0x1 + negs r0, r0 + movs r1, 0x2 + negs r1, r1 + movs r2, 0 + str r2, [sp] +_081C7B10: + movs r3, 0x10 + bl BeginNormalPaletteFade + b _081C7B2C +_081C7B18: + movs r0, 0x1 + negs r0, r0 + movs r1, 0x2 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade +_081C7B2C: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81C7AC0 + + thumb_func_start sub_81C7B34 +sub_81C7B34: @ 81C7B34 + ldr r0, =gPaletteFade + ldrb r0, [r0, 0x7] + lsrs r0, 7 + bx lr + .pool + thumb_func_end sub_81C7B34 + + thumb_func_start sub_81C7B40 +sub_81C7B40: @ 81C7B40 + push {lr} + ldr r0, =0xfffefffe + movs r1, 0x10 + movs r2, 0 + bl BlendPalettes + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C7B40 + + thumb_func_start sub_81C7B54 +sub_81C7B54: @ 81C7B54 + push {r4,r5,lr} + adds r5, r0, 0 + cmp r1, 0 + ble _081C7B6C + adds r4, r1, 0 +_081C7B5E: + adds r0, r5, 0 + adds r5, 0x4 + bl InitBgFromTemplate + subs r4, 0x1 + cmp r4, 0 + bne _081C7B5E +_081C7B6C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81C7B54 + + thumb_func_start sub_81C7B74 +sub_81C7B74: @ 81C7B74 + push {r4,lr} + movs r0, 0 + bl sub_81C763C + adds r4, r0, 0 + ldr r0, =gUnknown_0861FA08 + bl InitWindows + movs r0, 0 + str r0, [r4, 0x10] + bl sub_81C7BF8 + ldrb r0, [r4, 0x10] + bl PutWindowTilemap + ldrb r0, [r4, 0x10] + movs r1, 0x3 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C7B74 + + thumb_func_start sub_81C7BA4 +sub_81C7BA4: @ 81C7BA4 + push {r4,r5,lr} + sub sp, 0xC + adds r4, r0, 0 + movs r0, 0 + bl sub_81C763C + adds r5, r0, 0 + ldr r0, [r5, 0x10] + bl sub_81C7BF8 + ldrb r0, [r5, 0x10] + ldr r1, =gUnknown_0861FA48 + str r1, [sp] + movs r1, 0 + str r1, [sp, 0x4] + ldr r1, =gUnknown_0861FA18 + lsls r4, 2 + adds r4, r1 + ldr r1, [r4] + str r1, [sp, 0x8] + movs r1, 0x1 + movs r2, 0 + movs r3, 0x1 + bl box_print + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C7BA4 + + thumb_func_start sub_81C7BE8 +sub_81C7BE8: @ 81C7BE8 + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_81C7BE8 + + thumb_func_start sub_81C7BF8 +sub_81C7BF8: @ 81C7BF8 + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + movs r1, 0x44 + bl FillWindowPixelBuffer + movs r0, 0x80 + str r0, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + adds r0, r4, 0 + movs r1, 0x55 + movs r2, 0 + movs r3, 0 + bl FillWindowPixelRect + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81C7BF8 + + thumb_func_start sub_81C7C28 +sub_81C7C28: @ 81C7C28 + push {r4-r6,lr} + movs r0, 0 + bl sub_81C763C + adds r6, r0, 0 + movs r5, 0 + ldr r4, =gUnknown_0861FA4C +_081C7C36: + adds r0, r4, 0 + bl LoadCompressedObjectPic + adds r4, 0x8 + adds r5, 0x1 + cmp r5, 0 + beq _081C7C36 + ldr r0, =gUnknown_0861FA54 + bl sub_81C795C + movs r0, 0 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x80 + lsls r1, 9 + lsls r1, r0 + movs r0, 0x2 + negs r0, r0 + bics r0, r1 + str r0, [r6, 0x14] + ldr r0, =gUnknown_0861FB04 + movs r1, 0xDC + movs r2, 0xC + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, =gSprites + adds r1, r0 + str r1, [r6, 0x18] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C7C28 + + thumb_func_start sub_81C7C94 +sub_81C7C94: @ 81C7C94 + push {lr} + movs r0, 0 + bl sub_81C763C + ldr r0, [r0, 0x18] + bl DestroySprite + movs r0, 0 + bl FreeSpriteTilesByTag + movs r0, 0 + bl FreeSpritePaletteByTag + pop {r0} + bx r0 + thumb_func_end sub_81C7C94 + + thumb_func_start sub_81C7CB4 +sub_81C7CB4: @ 81C7CB4 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0 + bl GetBgY + lsrs r0, 8 + negs r0, r0 + strh r0, [r4, 0x26] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81C7CB4 + + thumb_func_start sub_81C7CCC +sub_81C7CCC: @ 81C7CCC + push {lr} + movs r0, 0 + bl sub_81C763C + ldr r0, [r0, 0x18] + ldr r1, =SpriteCallbackDummy + str r1, [r0, 0x1C] + pop {r1} + bx r1 + .pool + thumb_func_end sub_81C7CCC + + thumb_func_start sub_81C7CE4 +sub_81C7CE4: @ 81C7CE4 + push {r4,lr} + movs r0, 0 + bl sub_81C763C + ldr r2, [r0, 0x18] + movs r4, 0 + movs r1, 0xDC + strh r1, [r2, 0x20] + ldr r2, [r0, 0x18] + movs r1, 0xC + strh r1, [r2, 0x22] + ldr r2, [r0, 0x18] + ldr r1, =sub_81C7CB4 + str r1, [r2, 0x1C] + adds r2, 0x3E + ldrb r3, [r2] + movs r1, 0x5 + negs r1, r1 + ands r1, r3 + strb r1, [r2] + ldr r3, [r0, 0x18] + ldrb r2, [r3, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + strb r1, [r3, 0x5] + ldr r0, [r0, 0x18] + adds r0, 0x43 + strb r4, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C7CE4 + + thumb_func_start sub_81C7D28 +sub_81C7D28: @ 81C7D28 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r0, 0 + bl sub_81C763C + adds r6, r0, 0 + ldr r0, =gUnknown_0861FA64 + bl LoadCompressedObjectPic + movs r0, 0x1 + bl AllocSpritePalette + movs r0, 0x2 + bl AllocSpritePalette + movs r5, 0 + ldr r0, =gSprites + mov r8, r0 + movs r7, 0x4 +_081C7D50: + ldr r0, =gUnknown_0861FB2C + movs r1, 0 + movs r2, 0 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + lsls r4, r5, 2 + adds r2, r6, 0 + adds r2, 0x1C + adds r2, r4 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + str r0, [r2] + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r7 + strb r1, [r0] + ldr r1, [r2] + lsls r0, r5, 6 + strh r0, [r1, 0x24] + ldr r0, =gUnknown_0861FB44 + movs r1, 0 + movs r2, 0 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + adds r2, r6, 0 + adds r2, 0x24 + adds r2, r4 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + str r0, [r2] + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r7 + strb r1, [r0] + ldr r1, [r2] + lsls r0, r5, 5 + strh r0, [r1, 0x24] + ldr r1, [r2] + movs r0, 0x12 + strh r0, [r1, 0x26] + ldr r3, [r2] + ldrh r2, [r3, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + lsls r0, r5, 3 + adds r0, 0x40 + adds r1, r0 + ldr r4, =0x000003ff + adds r0, r4, 0 + ands r1, r0 + ldr r4, =0xfffffc00 + adds r0, r4, 0 + ands r2, r0 + orrs r2, r1 + strh r2, [r3, 0x4] + adds r5, 0x1 + cmp r5, 0x1 + ble _081C7D50 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C7D28 + + thumb_func_start sub_81C7DFC +sub_81C7DFC: @ 81C7DFC + push {lr} + cmp r0, 0x5 + bhi _081C7E08 + bl sub_81C7E58 + b _081C7E0E +_081C7E08: + subs r0, 0x6 + bl sub_81C7F24 +_081C7E0E: + pop {r0} + bx r0 + thumb_func_end sub_81C7DFC + + thumb_func_start sub_81C7E14 +sub_81C7E14: @ 81C7E14 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0 + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x4 + bne _081C7E30 + movs r0, 0x2 + bl GetSpriteTileStartByTag + ldr r3, [r5, 0x20] + adds r0, 0x20 + b _081C7E3A +_081C7E30: + movs r0, 0x2 + bl GetSpriteTileStartByTag + ldr r3, [r5, 0x20] + adds r0, 0x40 +_081C7E3A: + ldr r2, =0x000003ff + adds r1, r2, 0 + ands r0, r1 + ldrh r2, [r3, 0x4] + ldr r1, =0xfffffc00 + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x4] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C7E14 + + thumb_func_start sub_81C7E58 +sub_81C7E58: @ 81C7E58 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r9, r0 + cmp r0, 0x5 + bhi _081C7F16 + movs r0, 0 + bl sub_81C763C + adds r7, r0, 0 + ldr r0, =gUnknown_0861FA6C + mov r1, r9 + lsls r6, r1, 3 + adds r6, r0 + ldrh r4, [r6, 0x6] + ldr r2, [r6] + mov r8, r2 + mov r0, r8 + bl sub_8034974 + adds r5, r0, 0 + lsls r4, 5 + ldr r0, =gUnknown_08DC7F00 + adds r4, r0 + movs r0, 0x1 + bl IndexOfSpritePaletteTag + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 4 + movs r0, 0x80 + lsls r0, 17 + adds r1, r0 + lsrs r1, 16 + adds r0, r4, 0 + movs r2, 0x20 + bl LoadPalette + ldr r4, =0x0201c000 + mov r0, r8 + adds r1, r4, 0 + bl LZ77UnCompWram + movs r0, 0x2 + bl GetSpriteTileStartByTag + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 11 + ldr r2, =0x06010000 + adds r1, r2 + lsls r5, 16 + lsrs r5, 16 + adds r0, r4, 0 + adds r2, r5, 0 + movs r3, 0x1 + bl RequestDma3Copy + movs r0, 0x2 + bl GetSpriteTileStartByTag + ldr r3, [r7, 0x20] + ldrh r1, [r6, 0x4] + adds r0, r1 + ldr r2, =0x000003ff + adds r1, r2, 0 + ands r0, r1 + ldrh r2, [r3, 0x4] + ldr r1, =0xfffffc00 + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x4] + mov r0, r9 + subs r0, 0x4 + cmp r0, 0x1 + bhi _081C7F10 + ldr r1, [r7, 0x20] + movs r0, 0x38 + b _081C7F14 + .pool +_081C7F10: + ldr r1, [r7, 0x20] + movs r0, 0x40 +_081C7F14: + strh r0, [r1, 0x24] +_081C7F16: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81C7E58 + + thumb_func_start sub_81C7F24 +sub_81C7F24: @ 81C7F24 + push {r4-r6,lr} + cmp r0, 0x6 + bhi _081C7F8A + ldr r2, =gUnknown_0861FA9C + lsls r1, r0, 3 + adds r0, r2, 0x4 + adds r0, r1, r0 + ldr r4, [r0] + adds r1, r2 + ldr r6, [r1] + adds r0, r6, 0 + bl sub_8034974 + adds r5, r0, 0 + lsls r4, 5 + ldr r0, =gUnknown_08DC7F00 + adds r4, r0 + movs r0, 0x2 + bl IndexOfSpritePaletteTag + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 4 + movs r0, 0x80 + lsls r0, 17 + adds r1, r0 + lsrs r1, 16 + adds r0, r4, 0 + movs r2, 0x20 + bl LoadPalette + ldr r4, =0x0201d000 + adds r0, r6, 0 + adds r1, r4, 0 + bl LZ77UnCompWram + movs r0, 0x2 + bl GetSpriteTileStartByTag + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 11 + ldr r0, =0x06010800 + adds r1, r0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r4, 0 + adds r2, r5, 0 + movs r3, 0x1 + bl RequestDma3Copy +_081C7F8A: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C7F24 + + thumb_func_start sub_81C7FA0 +sub_81C7FA0: @ 81C7FA0 + push {lr} + adds r3, r0, 0 + movs r0, 0x10 + cmp r1, 0 + bne _081C7FAC + movs r0, 0x30 +_081C7FAC: + cmp r3, 0x5 + bhi _081C7FB8 + adds r1, r2, 0 + bl sub_81C803C + b _081C7FBE +_081C7FB8: + adds r1, r2, 0 + bl sub_81C8088 +_081C7FBE: + pop {r0} + bx r0 + thumb_func_end sub_81C7FA0 + + thumb_func_start sub_81C7FC4 +sub_81C7FC4: @ 81C7FC4 + push {lr} + cmp r0, 0x5 + bhi _081C7FD2 + adds r0, r1, 0 + bl sub_81C80D4 + b _081C7FD8 +_081C7FD2: + adds r0, r1, 0 + bl sub_81C8110 +_081C7FD8: + pop {r0} + bx r0 + thumb_func_end sub_81C7FC4 + + thumb_func_start sub_81C7FDC +sub_81C7FDC: @ 81C7FDC + push {r4,lr} + movs r0, 0 + bl sub_81C763C + movs r4, 0x4 + adds r2, r0, 0 + adds r2, 0x1C + movs r3, 0x1 +_081C7FEC: + ldr r1, [r2] + adds r1, 0x3E + ldrb r0, [r1] + orrs r0, r4 + strb r0, [r1] + ldr r1, [r2, 0x8] + adds r1, 0x3E + ldrb r0, [r1] + orrs r0, r4 + strb r0, [r1] + adds r2, 0x4 + subs r3, 0x1 + cmp r3, 0 + bge _081C7FEC + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81C7FDC + + thumb_func_start sub_81C8010 +sub_81C8010: @ 81C8010 + push {lr} + movs r0, 0 + bl sub_81C763C + adds r1, r0, 0 + ldr r0, [r1, 0x1C] + ldr r2, [r0, 0x1C] + ldr r0, =SpriteCallbackDummy + cmp r2, r0 + bne _081C8034 + ldr r0, [r1, 0x24] + ldr r0, [r0, 0x1C] + cmp r0, r2 + bne _081C8034 + movs r0, 0 + b _081C8036 + .pool +_081C8034: + movs r0, 0x1 +_081C8036: + pop {r1} + bx r1 + thumb_func_end sub_81C8010 + + thumb_func_start sub_81C803C +sub_81C803C: @ 81C803C + push {r4-r7,lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r4, r1, 0 + movs r0, 0 + bl sub_81C763C + cmp r4, 0 + bne _081C8058 + movs r7, 0x60 + negs r7, r7 + movs r6, 0x20 + b _081C805E +_081C8058: + movs r7, 0x80 + lsls r7, 1 + movs r6, 0xA0 +_081C805E: + adds r4, r0, 0 + adds r4, 0x1C + movs r5, 0x1 +_081C8064: + ldr r0, [r4] + mov r1, r8 + strh r1, [r0, 0x22] + ldm r4!, {r0} + adds r1, r7, 0 + adds r2, r6, 0 + movs r3, 0xC + bl sub_81C814C + subs r5, 0x1 + cmp r5, 0 + bge _081C8064 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81C803C + + thumb_func_start sub_81C8088 +sub_81C8088: @ 81C8088 + push {r4-r7,lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r4, r1, 0 + movs r0, 0 + bl sub_81C763C + cmp r4, 0 + bne _081C80A4 + movs r7, 0x60 + negs r7, r7 + movs r6, 0x10 + b _081C80AA +_081C80A4: + movs r7, 0x80 + lsls r7, 1 + movs r6, 0xC0 +_081C80AA: + adds r4, r0, 0 + adds r4, 0x24 + movs r5, 0x1 +_081C80B0: + ldr r0, [r4] + mov r1, r8 + strh r1, [r0, 0x22] + ldm r4!, {r0} + adds r1, r7, 0 + adds r2, r6, 0 + movs r3, 0xC + bl sub_81C814C + subs r5, 0x1 + cmp r5, 0 + bge _081C80B0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81C8088 + + thumb_func_start sub_81C80D4 +sub_81C80D4: @ 81C80D4 + push {r4-r7,lr} + adds r4, r0, 0 + movs r0, 0 + bl sub_81C763C + cmp r4, 0 + bne _081C80EA + movs r6, 0x20 + movs r5, 0x60 + negs r5, r5 + b _081C80F0 +_081C80EA: + movs r6, 0xC0 + movs r5, 0x80 + lsls r5, 1 +_081C80F0: + adds r7, r0, 0 + adds r7, 0x1C + movs r4, 0x1 +_081C80F6: + ldm r7!, {r0} + adds r1, r6, 0 + adds r2, r5, 0 + movs r3, 0xC + bl sub_81C814C + subs r4, 0x1 + cmp r4, 0 + bge _081C80F6 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81C80D4 + + thumb_func_start sub_81C8110 +sub_81C8110: @ 81C8110 + push {r4-r7,lr} + adds r4, r0, 0 + movs r0, 0 + bl sub_81C763C + cmp r4, 0 + bne _081C8126 + movs r6, 0x10 + movs r5, 0x60 + negs r5, r5 + b _081C812C +_081C8126: + movs r6, 0xC0 + movs r5, 0x80 + lsls r5, 1 +_081C812C: + adds r7, r0, 0 + adds r7, 0x24 + movs r4, 0x1 +_081C8132: + ldm r7!, {r0} + adds r1, r6, 0 + adds r2, r5, 0 + movs r3, 0xC + bl sub_81C814C + subs r4, 0x1 + cmp r4, 0 + bge _081C8132 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81C8110 + + thumb_func_start sub_81C814C +sub_81C814C: @ 81C814C + push {r4-r6,lr} + adds r4, r0, 0 + adds r0, r1, 0 + adds r6, r2, 0 + adds r5, r3, 0 + strh r0, [r4, 0x20] + lsls r1, r0, 4 + strh r1, [r4, 0x2E] + subs r0, r6, r0 + lsls r0, 4 + adds r1, r5, 0 + bl __divsi3 + strh r0, [r4, 0x30] + strh r5, [r4, 0x32] + strh r6, [r4, 0x3C] + ldr r0, =sub_81C817C + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C814C + + thumb_func_start sub_81C817C +sub_81C817C: @ 81C817C + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x32] + movs r3, 0x32 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _081C81C4 + subs r0, r1, 0x1 + strh r0, [r2, 0x32] + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x2E] + adds r0, r1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 20 + strh r0, [r2, 0x20] + adds r0, 0x10 + lsls r0, 16 + movs r1, 0x88 + lsls r1, 17 + cmp r0, r1 + bls _081C81B6 + adds r0, r2, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _081C81CC +_081C81B6: + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + b _081C81CC +_081C81C4: + ldrh r0, [r2, 0x3C] + strh r0, [r2, 0x20] + ldr r0, =SpriteCallbackDummy + str r0, [r2, 0x1C] +_081C81CC: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C817C + + thumb_func_start sub_81C81D4 +sub_81C81D4: @ 81C81D4 + push {r4-r7,lr} + adds r6, r0, 0 + adds r5, r1, 0 + adds r7, r2, 0 + ldr r1, =0x000008a4 + movs r0, 0x11 + bl sub_81C761C + adds r4, r0, 0 + cmp r4, 0 + beq _081C821C + ldr r1, =0x00000888 + adds r0, r4, r1 + adds r1, r5, 0 + bl sub_81C9160 + adds r0, r4, 0 + adds r1, r6, 0 + adds r2, r5, 0 + adds r3, r7, 0 + bl sub_81C91AC + cmp r0, 0 + beq _081C821C + ldr r0, =sub_81C8254 + movs r1, 0x6 + bl sub_81C7078 + movs r0, 0x1 + b _081C821E + .pool +_081C821C: + movs r0, 0 +_081C821E: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81C81D4 + + thumb_func_start sub_81C8224 +sub_81C8224: @ 81C8224 + push {lr} + ldr r0, =sub_81C8254 + bl sub_81C7124 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81C8224 + + thumb_func_start sub_81C8234 +sub_81C8234: @ 81C8234 + push {r4,lr} + movs r0, 0x11 + bl sub_81C763C + adds r4, r0, 0 + bl sub_81C8FE0 + ldrb r0, [r4, 0x8] + bl RemoveWindow + movs r0, 0x11 + bl sub_81C7650 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81C8234 + + thumb_func_start sub_81C8254 +sub_81C8254: @ 81C8254 + push {r4,lr} + adds r4, r0, 0 + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _081C82C0 + movs r0, 0x11 + bl sub_81C763C + adds r2, r0, 0 + cmp r4, 0x4 + bhi _081C82D6 + lsls r0, r4, 2 + ldr r1, =_081C827C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081C827C: + .4byte _081C8290 + .4byte _081C829A + .4byte _081C82A4 + .4byte _081C82B8 + .4byte _081C82CC +_081C8290: + adds r0, r2, 0 + bl sub_81C82E4 + movs r0, 0 + b _081C82D8 +_081C829A: + adds r0, r2, 0 + bl sub_81C835C + movs r0, 0 + b _081C82D8 +_081C82A4: + ldr r1, =0x00000888 + adds r0, r2, r1 + adds r1, r2, 0 + bl sub_81C837C + movs r0, 0 + b _081C82D8 + .pool +_081C82B8: + bl sub_81C83E0 + cmp r0, 0 + beq _081C82C4 +_081C82C0: + movs r0, 0x2 + b _081C82D8 +_081C82C4: + bl sub_81C8ED0 + movs r0, 0x1 + b _081C82D8 +_081C82CC: + ldr r1, =0x00000888 + adds r0, r2, r1 + adds r1, r2, 0 + bl sub_81C8EF8 +_081C82D6: + movs r0, 0x4 +_081C82D8: + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81C8254 + + thumb_func_start sub_81C82E4 +sub_81C82E4: @ 81C82E4 + push {r4,r5,lr} + sub sp, 0x8 + adds r5, r0, 0 + ldrb r4, [r5, 0x1] + lsls r4, 12 + ldrh r0, [r5, 0x6] + orrs r4, r0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r5] + ldrh r2, [r5, 0x6] + movs r1, 0x11 + movs r3, 0x1 + bl sub_8199DF0 + ldrb r0, [r5] + ldrh r2, [r5, 0x6] + adds r2, 0x1 + movs r1, 0x44 + movs r3, 0x1 + bl sub_8199DF0 + ldrb r0, [r5] + adds r1, r5, 0 + adds r1, 0x88 + bl SetBgTilemapBuffer + ldrb r0, [r5] + movs r1, 0x20 + str r1, [sp] + str r1, [sp, 0x4] + adds r1, r4, 0 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect_Palette0 + ldrb r0, [r5] + movs r1, 0 + movs r2, 0 + bl ChangeBgY + ldrb r0, [r5] + movs r1, 0 + movs r2, 0 + bl ChangeBgX + ldrb r0, [r5] + ldrb r1, [r5, 0x3] + lsls r1, 11 + movs r2, 0x2 + bl ChangeBgY + ldrb r0, [r5] + bl CopyBgTilemapBufferToVram + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81C82E4 + + thumb_func_start sub_81C835C +sub_81C835C: @ 81C835C + push {r4,lr} + adds r4, r0, 0 + ldrb r0, [r4, 0x8] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4, 0x8] + bl PutWindowTilemap + ldrb r0, [r4, 0x8] + movs r1, 0x1 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81C835C + + thumb_func_start sub_81C837C +sub_81C837C: @ 81C837C + push {r4,r5,lr} + sub sp, 0x8 + adds r3, r0, 0 + adds r5, r1, 0 + ldrh r0, [r3, 0x2] + ldrh r4, [r3] + subs r2, r0, r4 + ldrh r0, [r3, 0x8] + cmp r2, r0 + ble _081C8392 + adds r2, r0, 0 +_081C8392: + ldr r0, [r3, 0x10] + ldr r3, [r3, 0xC] + movs r1, 0 + str r1, [sp] + str r5, [sp, 0x4] + adds r1, r4, 0 + bl sub_81C83AC + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81C837C + + thumb_func_start sub_81C83AC +sub_81C83AC: @ 81C83AC + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + ldr r1, [sp, 0x10] + cmp r2, 0 + beq _081C83D6 + adds r0, r5, 0 + muls r0, r3 + adds r0, r4, r0 + str r0, [r1, 0x1C] + str r3, [r1, 0x18] + movs r0, 0 + strh r0, [r1, 0xC] + strh r2, [r1, 0xE] + str r5, [r1, 0x14] + ldr r0, [sp, 0xC] + str r0, [r1, 0x10] + ldr r0, =sub_81C83F0 + movs r1, 0x5 + bl sub_81C7078 +_081C83D6: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C83AC + + thumb_func_start sub_81C83E0 +sub_81C83E0: @ 81C83E0 + push {lr} + ldr r0, =sub_81C83F0 + bl sub_81C7124 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81C83E0 + + thumb_func_start sub_81C83F0 +sub_81C83F0: @ 81C83F0 + push {r4-r7,lr} + sub sp, 0xC + adds r6, r0, 0 + movs r0, 0x11 + bl sub_81C763C + adds r4, r0, 0 + cmp r6, 0 + beq _081C8408 + cmp r6, 0x1 + beq _081C848C + b _081C849A +_081C8408: + ldrh r0, [r4, 0xA] + ldrh r1, [r4, 0xC] + adds r0, r1 + ldr r1, [r4, 0x10] + adds r5, r0, r1 + movs r0, 0xF + ands r5, r0 + ldr r0, [r4, 0x1C] + adds r7, r4, 0 + adds r7, 0x48 + ldr r2, [r4, 0x34] + adds r1, r7, 0 + bl _call_via_r2 + ldr r3, [r4, 0x38] + cmp r3, 0 + beq _081C8434 + ldrh r0, [r4, 0x8] + ldr r1, [r4, 0x14] + adds r2, r5, 0 + bl _call_via_r3 +_081C8434: + ldrb r0, [r4, 0x8] + ldrb r1, [r4, 0x5] + lsls r2, r5, 4 + movs r3, 0x1 + orrs r2, r3 + str r2, [sp] + movs r2, 0xFF + str r2, [sp, 0x4] + str r6, [sp, 0x8] + adds r2, r7, 0 + movs r3, 0x8 + bl Print + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + lsrs r0, 16 + ldrh r1, [r4, 0xE] + cmp r0, r1 + bcc _081C847A + ldr r0, [r4, 0x38] + cmp r0, 0 + beq _081C846E + ldrb r0, [r4, 0x8] + movs r1, 0x3 + bl CopyWindowToVram + b _081C8476 +_081C846E: + ldrb r0, [r4, 0x8] + movs r1, 0x2 + bl CopyWindowToVram +_081C8476: + movs r0, 0 + b _081C849C +_081C847A: + ldr r0, [r4, 0x1C] + ldr r1, [r4, 0x18] + adds r0, r1 + str r0, [r4, 0x1C] + ldr r0, [r4, 0x14] + adds r0, 0x1 + str r0, [r4, 0x14] + movs r0, 0x3 + b _081C849C +_081C848C: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081C849A + movs r0, 0x2 + b _081C849C +_081C849A: + movs r0, 0x4 +_081C849C: + add sp, 0xC + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81C83F0 + + thumb_func_start sub_81C84A4 +sub_81C84A4: @ 81C84A4 + push {lr} + movs r0, 0x11 + bl sub_81C763C + ldr r1, =0x00000888 + adds r0, r1 + ldrh r1, [r0] + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81C84A4 + + thumb_func_start sub_81C84C0 +sub_81C84C0: @ 81C84C0 + push {lr} + movs r0, 0x11 + bl sub_81C763C + ldr r1, =0x00000888 + adds r0, r1 + movs r3, 0 + ldrh r1, [r0] + ldrh r2, [r0, 0x8] + adds r1, r2 + ldrh r0, [r0, 0x2] + cmp r1, r0 + bge _081C84DC + movs r3, 0x1 +_081C84DC: + adds r0, r3, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81C84C0 + + thumb_func_start sub_81C84E8 +sub_81C84E8: @ 81C84E8 + push {r4-r7,lr} + sub sp, 0x8 + adds r6, r0, 0 + adds r4, r1, 0 + movs r0, 0x11 + bl sub_81C763C + adds r7, r0, 0 + ldr r0, =0x00000888 + adds r5, r7, r0 + cmp r6, 0 + bge _081C8524 + ldrh r1, [r5] + adds r0, r1, r6 + cmp r0, 0 + bge _081C850A + negs r6, r1 +_081C850A: + cmp r4, 0 + beq _081C854E + ldr r0, [r5, 0x10] + adds r1, r6 + negs r2, r6 + ldr r3, [r5, 0xC] + str r6, [sp] + str r7, [sp, 0x4] + bl sub_81C83AC + b _081C854E + .pool +_081C8524: + cmp r4, 0 + beq _081C854E + ldr r2, =gUnknown_0203CF44 + ldrh r1, [r5] + ldrh r0, [r5, 0x8] + adds r4, r1, r0 + str r4, [r2] + adds r0, r4, r6 + ldrh r1, [r5, 0x2] + cmp r0, r1 + blt _081C853C + subs r6, r1, r4 +_081C853C: + ldr r0, [r5, 0x10] + ldr r3, [r5, 0xC] + ldrh r1, [r5, 0x8] + str r1, [sp] + str r7, [sp, 0x4] + adds r1, r4, 0 + adds r2, r6, 0 + bl sub_81C83AC +_081C854E: + adds r0, r6, 0 + adds r1, r7, 0 + bl sub_81C8568 + ldrh r0, [r5] + adds r0, r6 + strh r0, [r5] + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C84E8 + + thumb_func_start sub_81C8568 +sub_81C8568: @ 81C8568 + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + ldrb r0, [r4] + bl GetBgY + str r0, [r4, 0x20] + lsls r1, r5, 12 + adds r0, r1 + str r0, [r4, 0x24] + cmp r5, 0 + ble _081C8584 + movs r0, 0x1 + b _081C8586 +_081C8584: + movs r0, 0x2 +_081C8586: + str r0, [r4, 0x30] + str r5, [r4, 0x2C] + ldr r0, =sub_81C85A0 + movs r1, 0x6 + bl sub_81C7078 + str r0, [r4, 0x28] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C8568 + + thumb_func_start sub_81C85A0 +sub_81C85A0: @ 81C85A0 + push {r4-r6,lr} + adds r5, r0, 0 + movs r0, 0x11 + bl sub_81C763C + adds r4, r0, 0 + cmp r5, 0 + beq _081C85B8 + cmp r5, 0x1 + beq _081C85C4 + movs r0, 0x4 + b _081C862A +_081C85B8: + bl sub_81C83E0 + cmp r0, 0 + bne _081C8628 + movs r0, 0x1 + b _081C862A +_081C85C4: + movs r6, 0 + ldrb r0, [r4] + bl GetBgY + adds r5, r0, 0 + ldrb r0, [r4] + movs r1, 0x80 + lsls r1, 5 + ldr r2, [r4, 0x30] + lsls r2, 24 + lsrs r2, 24 + bl ChangeBgY + adds r1, r0, 0 + ldr r0, [r4, 0x30] + cmp r0, 0x2 + bne _081C85F8 + ldr r2, [r4, 0x24] + cmp r5, r2 + bgt _081C85F2 + ldr r0, [r4, 0x20] + cmp r5, r0 + bgt _081C860A +_081C85F2: + cmp r1, r2 + bgt _081C860A + b _081C860E +_081C85F8: + ldr r2, [r4, 0x24] + cmp r5, r2 + blt _081C8604 + ldr r0, [r4, 0x20] + cmp r5, r0 + blt _081C860A +_081C8604: + cmp r1, r2 + blt _081C860A + movs r6, 0x1 +_081C860A: + cmp r6, 0 + beq _081C8628 +_081C860E: + ldr r1, [r4, 0x2C] + ldrh r0, [r4, 0xA] + adds r0, r1 + movs r1, 0xF + ands r0, r1 + strh r0, [r4, 0xA] + ldrb r0, [r4] + adds r1, r2, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x4 + b _081C862A +_081C8628: + movs r0, 0x2 +_081C862A: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81C85A0 + + thumb_func_start sub_81C8630 +sub_81C8630: @ 81C8630 + push {lr} + movs r0, 0x11 + bl sub_81C763C + ldr r0, [r0, 0x28] + bl sub_81C70D8 + pop {r1} + bx r1 + thumb_func_end sub_81C8630 + + thumb_func_start sub_81C8644 +sub_81C8644: @ 81C8644 + push {lr} + movs r0, 0x11 + bl sub_81C763C + ldr r1, =0x00000888 + adds r0, r1 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81C8644 + + thumb_func_start sub_81C8658 +sub_81C8658: @ 81C8658 + push {lr} + bl sub_81C8644 + adds r1, r0, 0 + ldrh r0, [r1, 0x6] + cmp r0, 0 + beq _081C866E + subs r0, 0x1 + strh r0, [r1, 0x6] + movs r0, 0x1 + b _081C8686 +_081C866E: + bl sub_81C84A4 + cmp r0, 0 + bne _081C867A + movs r0, 0 + b _081C8686 +_081C867A: + movs r0, 0x1 + negs r0, r0 + movs r1, 0x1 + bl sub_81C84E8 + movs r0, 0x2 +_081C8686: + pop {r1} + bx r1 + thumb_func_end sub_81C8658 + + thumb_func_start sub_81C868C +sub_81C868C: @ 81C868C + push {lr} + bl sub_81C8644 + adds r2, r0, 0 + ldrh r1, [r2] + ldrh r3, [r2, 0x6] + adds r1, r3 + ldrh r0, [r2, 0x2] + subs r0, 0x1 + cmp r1, r0 + bge _081C86BA + ldrh r0, [r2, 0x8] + subs r0, 0x1 + cmp r3, r0 + bge _081C86B2 + adds r0, r3, 0x1 + strh r0, [r2, 0x6] + movs r0, 0x1 + b _081C86C8 +_081C86B2: + bl sub_81C84C0 + cmp r0, 0 + bne _081C86BE +_081C86BA: + movs r0, 0 + b _081C86C8 +_081C86BE: + movs r0, 0x1 + movs r1, 0x1 + bl sub_81C84E8 + movs r0, 0x2 +_081C86C8: + pop {r1} + bx r1 + thumb_func_end sub_81C868C + + thumb_func_start sub_81C86CC +sub_81C86CC: @ 81C86CC + push {r4,lr} + bl sub_81C8644 + adds r4, r0, 0 + bl sub_81C84A4 + adds r1, r0, 0 + cmp r1, 0 + beq _081C86F8 + ldrh r0, [r4] + ldrh r1, [r4, 0x8] + cmp r0, r1 + bcc _081C86EA + ldrh r0, [r4, 0x8] + b _081C86EC +_081C86EA: + ldrh r0, [r4] +_081C86EC: + negs r0, r0 + movs r1, 0x1 + bl sub_81C84E8 + movs r0, 0x2 + b _081C8706 +_081C86F8: + ldrh r0, [r4, 0x6] + cmp r0, 0 + bne _081C8702 + movs r0, 0 + b _081C8706 +_081C8702: + strh r1, [r4, 0x6] + movs r0, 0x1 +_081C8706: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81C86CC + + thumb_func_start sub_81C870C +sub_81C870C: @ 81C870C + push {r4,lr} + bl sub_81C8644 + adds r4, r0, 0 + bl sub_81C84C0 + cmp r0, 0 + beq _081C8736 + ldrh r0, [r4] + ldrh r3, [r4, 0x8] + adds r2, r0, r3 + ldrh r1, [r4, 0x4] + subs r0, r1, r0 + cmp r2, r1 + bgt _081C872C + adds r0, r3, 0 +_081C872C: + movs r1, 0x1 + bl sub_81C84E8 + movs r0, 0x2 + b _081C8756 +_081C8736: + ldrh r0, [r4, 0x2] + ldrh r1, [r4, 0x8] + cmp r0, r1 + bcc _081C8744 + ldrh r1, [r4, 0x6] + ldrh r0, [r4, 0x8] + b _081C8748 +_081C8744: + ldrh r1, [r4, 0x6] + ldrh r0, [r4, 0x2] +_081C8748: + subs r0, 0x1 + cmp r1, r0 + bge _081C8754 + strh r0, [r4, 0x6] + movs r0, 0x1 + b _081C8756 +_081C8754: + movs r0, 0 +_081C8756: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81C870C + + thumb_func_start sub_81C875C +sub_81C875C: @ 81C875C + push {lr} + bl sub_81C8644 + adds r1, r0, 0 + ldrh r0, [r1] + ldrh r1, [r1, 0x6] + adds r0, r1 + pop {r1} + bx r1 + thumb_func_end sub_81C875C + + thumb_func_start sub_81C8770 +sub_81C8770: @ 81C8770 + push {lr} + bl sub_81C8644 + ldrh r0, [r0] + pop {r1} + bx r1 + thumb_func_end sub_81C8770 + + thumb_func_start sub_81C877C +sub_81C877C: @ 81C877C + push {r4,lr} + movs r0, 0x11 + bl sub_81C763C + adds r4, r0, 0 + ldr r0, =0x0000089c + adds r1, r4, r0 + movs r0, 0 + str r0, [r1] + ldr r0, =sub_81C8870 + movs r1, 0x6 + bl sub_81C7078 + movs r1, 0x8A + lsls r1, 4 + adds r4, r1 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C877C + + thumb_func_start sub_81C87AC +sub_81C87AC: @ 81C87AC + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + movs r0, 0x11 + bl sub_81C763C + adds r5, r0, 0 + ldr r0, =0x00000888 + adds r1, r5, r0 + ldrh r0, [r1] + adds r0, r4 + movs r2, 0 + strh r0, [r1] + ldr r1, =0x0000089c + adds r0, r5, r1 + str r2, [r0] + ldr r0, =sub_81C8958 + movs r1, 0x6 + bl sub_81C7078 + movs r1, 0x8A + lsls r1, 4 + adds r5, r1 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C87AC + + thumb_func_start sub_81C87F0 +sub_81C87F0: @ 81C87F0 + push {r4,lr} + movs r0, 0x11 + bl sub_81C763C + adds r4, r0, 0 + ldr r0, =0x0000089c + adds r1, r4, r0 + movs r0, 0 + str r0, [r1] + ldr r0, =sub_81C8A28 + movs r1, 0x6 + bl sub_81C7078 + movs r1, 0x8A + lsls r1, 4 + adds r4, r1 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C87F0 + + thumb_func_start sub_81C8820 +sub_81C8820: @ 81C8820 + push {lr} + movs r0, 0x11 + bl sub_81C763C + movs r1, 0x8A + lsls r1, 4 + adds r0, r1 + ldr r0, [r0] + bl sub_81C70D8 + pop {r1} + bx r1 + thumb_func_end sub_81C8820 + + thumb_func_start sub_81C8838 +sub_81C8838: @ 81C8838 + push {r4,lr} + movs r0, 0x11 + bl sub_81C763C + adds r4, r0, 0 + ldr r0, =0x00000888 + adds r2, r4, r0 + ldrh r0, [r4, 0x8] + ldrh r1, [r2] + ldrh r3, [r2, 0x6] + adds r1, r3 + ldrh r2, [r4, 0xA] + adds r2, r3 + movs r3, 0xF + ands r2, r3 + ldr r3, [r4, 0x38] + bl _call_via_r3 + ldrb r0, [r4, 0x8] + movs r1, 0x1 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C8838 + + thumb_func_start sub_81C8870 +sub_81C8870: @ 81C8870 + push {r4,r5,lr} + adds r5, r0, 0 + movs r0, 0x11 + bl sub_81C763C + adds r4, r0, 0 + cmp r5, 0x4 + bhi _081C894C + lsls r0, r5, 2 + ldr r1, =_081C8890 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081C8890: + .4byte _081C88A4 + .4byte _081C88AC + .4byte _081C88D8 + .4byte _081C8918 + .4byte _081C8938 +_081C88A4: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81C9008 +_081C88AC: + ldr r0, =0x0000089c + adds r5, r4, r0 + ldr r1, =0x0000088e + adds r0, r4, r1 + ldr r1, [r5] + ldrh r0, [r0] + cmp r1, r0 + beq _081C88C4 + adds r0, r4, 0 + movs r2, 0x1 + bl sub_81C8B70 +_081C88C4: + ldr r0, [r5] + adds r0, 0x1 + str r0, [r5] +_081C88CA: + movs r0, 0 + b _081C894E + .pool +_081C88D8: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _081C8942 + ldr r2, =0x0000089c + adds r0, r4, r2 + subs r2, 0xC + adds r1, r4, r2 + ldr r3, [r0] + ldrh r1, [r1] + cmp r3, r1 + beq _081C88FC + movs r0, 0x6 + b _081C894E + .pool +_081C88FC: + ldr r0, =0x0000088e + adds r1, r4, r0 + ldrh r0, [r1] + cmp r0, 0 + beq _081C88CA + adds r2, r0, 0 + adds r0, r4, 0 + adds r1, r3, 0 + bl sub_81C8B70 + b _081C88CA + .pool +_081C8918: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _081C8942 + ldr r2, =0x0000088e + adds r1, r4, r2 + ldrh r0, [r1] + cmp r0, 0 + beq _081C894C + movs r1, 0 + bl sub_81C84E8 + b _081C88CA + .pool +_081C8938: + bl sub_81C8630 + adds r1, r0, 0 + cmp r1, 0 + beq _081C8946 +_081C8942: + movs r0, 0x2 + b _081C894E +_081C8946: + ldr r2, =0x0000088e + adds r0, r4, r2 + strh r1, [r0] +_081C894C: + movs r0, 0x4 +_081C894E: + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81C8870 + + thumb_func_start sub_81C8958 +sub_81C8958: @ 81C8958 + push {r4,r5,lr} + adds r5, r0, 0 + movs r0, 0x11 + bl sub_81C763C + adds r4, r0, 0 + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081C8972 + movs r0, 0x2 + b _081C8A22 +_081C8972: + cmp r5, 0x7 + bhi _081C8A1C + lsls r0, r5, 2 + ldr r1, =_081C8984 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081C8984: + .4byte _081C89A4 + .4byte _081C89B4 + .4byte _081C89BE + .4byte _081C89D0 + .4byte _081C89DA + .4byte _081C89EC + .4byte _081C89F6 + .4byte _081C8A08 +_081C89A4: + ldr r1, =0x00000888 + adds r0, r4, r1 + adds r1, r4, 0 + bl sub_81C8CB4 + b _081C8A20 + .pool +_081C89B4: + adds r0, r4, 0 + movs r1, 0 + bl sub_81C8DBC + b _081C8A20 +_081C89BE: + ldr r1, =0x00000888 + adds r0, r4, r1 + adds r1, r4, 0 + movs r2, 0 + bl sub_81C8E54 + b _081C8A20 + .pool +_081C89D0: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81C8DBC + b _081C8A20 +_081C89DA: + ldr r1, =0x00000888 + adds r0, r4, r1 + adds r1, r4, 0 + movs r2, 0x1 + bl sub_81C8E54 + b _081C8A20 + .pool +_081C89EC: + adds r0, r4, 0 + movs r1, 0x2 + bl sub_81C8DBC + b _081C8A20 +_081C89F6: + ldr r1, =0x00000888 + adds r0, r4, r1 + adds r1, r4, 0 + movs r2, 0x2 + bl sub_81C8E54 + b _081C8A20 + .pool +_081C8A08: + ldr r1, =0x00000888 + adds r0, r4, r1 + adds r1, r4, 0 + movs r2, 0x3 + bl sub_81C8E54 + b _081C8A20 + .pool +_081C8A1C: + movs r0, 0x4 + b _081C8A22 +_081C8A20: + movs r0, 0 +_081C8A22: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81C8958 + + thumb_func_start sub_81C8A28 +sub_81C8A28: @ 81C8A28 + push {r4-r7,lr} + sub sp, 0x8 + adds r5, r0, 0 + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _081C8AA6 + movs r0, 0x11 + bl sub_81C763C + adds r4, r0, 0 + ldr r0, =0x00000888 + adds r6, r4, r0 + adds r2, r4, 0 + cmp r5, 0x6 + bls _081C8A4C + b _081C8B64 +_081C8A4C: + lsls r0, r5, 2 + ldr r1, =_081C8A60 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081C8A60: + .4byte _081C8A7C + .4byte _081C8A88 + .4byte _081C8AE8 + .4byte _081C8AFC + .4byte _081C8B14 + .4byte _081C8B34 + .4byte _081C8B5C +_081C8A7C: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_81C8D4C + movs r0, 0 + b _081C8B66 +_081C8A88: + ldr r1, =0x0000089c + adds r7, r4, r1 + ldr r0, [r7] + adds r1, r0, 0x1 + str r1, [r7] + movs r3, 0x89 + lsls r3, 4 + adds r0, r4, r3 + ldrh r0, [r0] + cmp r1, r0 + bge _081C8AB0 + adds r0, r2, 0 + movs r2, 0x1 + bl sub_81C8B70 +_081C8AA6: + movs r0, 0x2 + b _081C8B66 + .pool +_081C8AB0: + movs r0, 0 + str r0, [r7] + ldrh r0, [r6, 0x2] + ldrh r1, [r6, 0x8] + cmp r0, r1 + bhi _081C8AC6 + ldrh r0, [r6] + cmp r0, 0 + beq _081C8B52 + adds r4, r0, 0 + b _081C8AD4 +_081C8AC6: + ldrh r1, [r6] + ldrh r0, [r6, 0x8] + adds r4, r1, r0 + ldrh r1, [r6, 0x2] + cmp r4, r1 + ble _081C8B52 + subs r4, r1 +_081C8AD4: + negs r5, r4 + adds r0, r2, 0 + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_81C8B70 + strh r4, [r6, 0x6] + str r5, [r7] + movs r0, 0 + b _081C8B66 +_081C8AE8: + ldr r2, =0x0000089c + adds r0, r4, r2 + ldr r0, [r0] + movs r1, 0 + bl sub_81C84E8 + movs r0, 0 + b _081C8B66 + .pool +_081C8AFC: + bl sub_81C8630 + adds r1, r0, 0 + cmp r1, 0 + bne _081C8AA6 + ldr r3, =0x0000089c + adds r0, r4, r3 + str r1, [r0] +_081C8B0C: + movs r0, 0x1 + b _081C8B66 + .pool +_081C8B14: + ldr r0, [r6, 0x10] + ldrh r1, [r6] + ldr r3, =0x0000089c + adds r2, r4, r3 + ldr r2, [r2] + adds r1, r2 + ldr r3, [r6, 0xC] + str r2, [sp] + str r4, [sp, 0x4] + movs r2, 0x1 + bl sub_81C83AC + movs r0, 0 + b _081C8B66 + .pool +_081C8B34: + bl sub_81C83E0 + cmp r0, 0 + bne _081C8AA6 + ldr r0, =0x0000089c + adds r1, r4, r0 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + ldrh r1, [r6, 0x2] + cmp r0, r1 + bge _081C8B0C + ldrh r6, [r6, 0x8] + cmp r0, r6 + bge _081C8B0C +_081C8B52: + movs r0, 0x9 + b _081C8B66 + .pool +_081C8B5C: + adds r0, r2, 0 + movs r1, 0 + bl sub_81C9008 +_081C8B64: + movs r0, 0x4 +_081C8B66: + add sp, 0x8 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81C8A28 + + thumb_func_start sub_81C8B70 +sub_81C8B70: @ 81C8B70 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + mov r9, r0 + adds r7, r1, 0 + adds r6, r2, 0 + ldrb r0, [r0, 0x8] + movs r1, 0x7 + bl GetWindowAttribute + mov r10, r0 + mov r1, r9 + ldrb r0, [r1, 0x4] + lsls r3, r0, 6 + ldrh r0, [r1, 0xA] + adds r7, r0, r7 + movs r0, 0xF + ands r7, r0 + adds r0, r7, r6 + cmp r0, 0x10 + bgt _081C8BD4 + ldr r0, =0x11111111 + str r0, [sp] + adds r1, r7, 0 + muls r1, r3 + add r1, r10 + adds r2, r6, 0 + muls r2, r3 + lsrs r2, 2 + ldr r0, =0x001fffff + ands r2, r0 + movs r0, 0x80 + lsls r0, 17 + orrs r2, r0 + mov r0, sp + bl CpuFastSet + mov r1, r9 + ldrb r0, [r1, 0x8] + movs r1, 0x2 + bl CopyWindowToVram + b _081C8C1E + .pool +_081C8BD4: + movs r2, 0x10 + subs r2, r7 + subs r0, r6, r2 + mov r8, r0 + ldr r1, =0x11111111 + str r1, [sp, 0x4] + add r0, sp, 0x4 + adds r1, r7, 0 + muls r1, r3 + add r1, r10 + muls r2, r3 + lsrs r2, 2 + ldr r5, =0x001fffff + ands r2, r5 + movs r4, 0x80 + lsls r4, 17 + orrs r2, r4 + str r3, [sp, 0xC] + bl CpuFastSet + ldr r0, =0x11111111 + str r0, [sp, 0x8] + add r0, sp, 0x8 + ldr r3, [sp, 0xC] + mov r2, r8 + muls r2, r3 + lsrs r2, 2 + ands r2, r5 + orrs r2, r4 + mov r1, r10 + bl CpuFastSet + mov r1, r9 + ldrb r0, [r1, 0x8] + movs r1, 0x2 + bl CopyWindowToVram +_081C8C1E: + subs r6, 0x1 + movs r0, 0x1 + negs r0, r0 + cmp r6, r0 + beq _081C8C40 + movs r5, 0xF + adds r4, r0, 0 +_081C8C2C: + mov r1, r9 + ldrh r0, [r1, 0x8] + adds r1, r7, 0 + bl sub_81CBD48 + adds r7, 0x1 + ands r7, r5 + subs r6, 0x1 + cmp r6, r4 + bne _081C8C2C +_081C8C40: + mov r1, r9 + ldrb r0, [r1, 0x8] + movs r1, 0x1 + bl CopyWindowToVram + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C8B70 + + thumb_func_start sub_81C8C64 +sub_81C8C64: @ 81C8C64 + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + ldrb r0, [r5, 0x8] + movs r1, 0 + bl GetWindowAttribute + lsls r0, 24 + lsrs r0, 24 + bl GetBgTilemapBuffer + adds r2, r0, 0 + ldrh r0, [r5, 0xA] + lsls r0, 6 + ldrb r1, [r5, 0x2] + adds r0, r1 + lsls r0, 1 + subs r0, 0x2 + adds r2, r0 + cmp r4, 0 + beq _081C8C98 + ldrb r0, [r5, 0x1] + lsls r0, 12 + ldrh r1, [r5, 0x6] + adds r1, 0x1 + b _081C8C9E +_081C8C98: + ldrb r0, [r5, 0x1] + lsls r0, 12 + ldrh r1, [r5, 0x6] +_081C8C9E: + orrs r0, r1 + lsls r0, 16 + lsrs r1, r0, 16 + strh r1, [r2] + adds r0, r2, 0 + adds r0, 0x40 + strh r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81C8C64 + + thumb_func_start sub_81C8CB4 +sub_81C8CB4: @ 81C8CB4 + push {r4-r6,lr} + sub sp, 0x10 + adds r5, r0, 0 + adds r4, r1, 0 + ldr r1, =gUnknown_0861FBE4 + add r0, sp, 0xC + movs r2, 0x3 + bl memcpy + ldrh r1, [r5] + ldr r0, [r5, 0xC] + muls r1, r0 + ldr r0, [r5, 0x10] + adds r0, r1 + adds r6, r4, 0 + adds r6, 0x48 + ldr r2, [r4, 0x34] + adds r1, r6, 0 + bl _call_via_r2 + ldrh r0, [r4, 0x8] + ldrh r1, [r5] + ldrh r2, [r4, 0xA] + ldr r3, [r4, 0x38] + bl _call_via_r3 + ldrb r0, [r4, 0x8] + ldrh r3, [r4, 0xA] + lsls r3, 20 + lsrs r3, 16 + ldrb r1, [r4, 0x4] + lsls r1, 3 + str r1, [sp] + movs r1, 0x10 + str r1, [sp, 0x4] + movs r1, 0x44 + movs r2, 0 + bl FillWindowPixelRect + ldrb r0, [r4, 0x8] + ldrb r1, [r4, 0x5] + ldrh r3, [r4, 0xA] + lsls r3, 4 + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + add r2, sp, 0xC + str r2, [sp] + movs r2, 0x1 + negs r2, r2 + str r2, [sp, 0x4] + str r6, [sp, 0x8] + movs r2, 0x8 + bl box_print + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81C8C64 + ldrh r0, [r4, 0x8] + ldrh r3, [r4, 0xA] + lsls r3, 1 + ldrb r1, [r4, 0x4] + str r1, [sp] + movs r1, 0x2 + str r1, [sp, 0x4] + movs r1, 0x3 + movs r2, 0 + bl CopyWindowRectToVram + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C8CB4 + + thumb_func_start sub_81C8D4C +sub_81C8D4C: @ 81C8D4C + push {r4,r5,lr} + sub sp, 0xC + adds r4, r1, 0 + ldrh r2, [r0] + ldr r1, [r0, 0xC] + muls r1, r2 + ldr r0, [r0, 0x10] + adds r0, r1 + adds r5, r4, 0 + adds r5, 0x48 + ldr r2, [r4, 0x34] + adds r1, r5, 0 + bl _call_via_r2 + ldrb r0, [r4, 0x8] + ldrh r3, [r4, 0xA] + lsls r3, 20 + lsrs r3, 16 + ldrb r1, [r4, 0x4] + lsls r1, 3 + str r1, [sp] + movs r1, 0x10 + str r1, [sp, 0x4] + movs r1, 0x11 + movs r2, 0 + bl FillWindowPixelRect + ldrb r0, [r4, 0x8] + ldrb r1, [r4, 0x5] + ldrh r2, [r4, 0xA] + lsls r2, 4 + adds r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp] + movs r2, 0xFF + str r2, [sp, 0x4] + movs r2, 0 + str r2, [sp, 0x8] + adds r2, r5, 0 + movs r3, 0x8 + bl Print + adds r0, r4, 0 + movs r1, 0 + bl sub_81C8C64 + ldrb r0, [r4, 0x8] + movs r1, 0x3 + bl CopyWindowToVram + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81C8D4C + + thumb_func_start sub_81C8DBC +sub_81C8DBC: @ 81C8DBC + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x1C + adds r6, r0, 0 + mov r8, r1 + add r1, sp, 0xC + ldr r0, =gUnknown_0861FBE8 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + add r0, sp, 0x18 + mov r9, r0 + ldr r1, =gUnknown_0861FBF4 + movs r2, 0x3 + bl memcpy + ldrh r4, [r6, 0xA] + mov r1, r8 + lsls r0, r1, 1 + adds r0, 0x1 + adds r4, r0 + movs r0, 0xF + ands r4, r0 + ldrb r0, [r6, 0x8] + lsls r5, r4, 4 + adds r3, r5, 0 + ldrb r1, [r6, 0x4] + str r1, [sp] + movs r1, 0x10 + str r1, [sp, 0x4] + movs r1, 0x11 + movs r2, 0 + bl FillWindowPixelRect + ldrb r0, [r6, 0x8] + movs r1, 0x1 + orrs r5, r1 + mov r2, r9 + str r2, [sp] + subs r1, 0x2 + str r1, [sp, 0x4] + mov r3, r8 + lsls r3, 2 + mov r8, r3 + mov r1, sp + add r1, r8 + adds r1, 0xC + ldr r1, [r1] + str r1, [sp, 0x8] + movs r1, 0x7 + movs r2, 0x2 + adds r3, r5, 0 + bl box_print + ldrh r0, [r6, 0x8] + lsls r4, 1 + ldrb r1, [r6, 0x4] + str r1, [sp] + movs r1, 0x2 + str r1, [sp, 0x4] + movs r2, 0 + adds r3, r4, 0 + bl CopyWindowRectToVram + add sp, 0x1C + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C8DBC + + thumb_func_start sub_81C8E54 +sub_81C8E54: @ 81C8E54 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + adds r7, r1, 0 + adds r1, r2, 0 + ldrh r3, [r7, 0xA] + ldr r2, =gUnknown_0861FBF7 + adds r2, r1, r2 + ldrb r2, [r2] + adds r6, r3, r2 + movs r2, 0xF + ands r6, r2 + ldrh r0, [r0] + bl sub_81CAFD8 + adds r5, r0, 0 + cmp r5, 0 + beq _081C8EC0 + ldrh r0, [r7, 0x8] + lsls r4, r6, 1 + ldrb r3, [r7, 0x4] + subs r3, 0x1 + movs r1, 0x2 + mov r8, r1 + str r1, [sp] + movs r1, 0x1 + adds r2, r4, 0 + bl sub_81DB620 + ldrb r0, [r7, 0x8] + lsls r1, r6, 4 + movs r2, 0x1 + orrs r1, r2 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x7 + adds r2, r5, 0 + movs r3, 0x2 + bl Print + ldrh r0, [r7, 0x8] + ldrb r1, [r7, 0x4] + str r1, [sp] + mov r1, r8 + str r1, [sp, 0x4] + movs r1, 0x2 + movs r2, 0 + adds r3, r4, 0 + bl CopyWindowRectToVram +_081C8EC0: + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C8E54 + + thumb_func_start sub_81C8ED0 +sub_81C8ED0: @ 81C8ED0 + push {r4,r5,lr} + movs r5, 0 + ldr r4, =gUnknown_0861FBFC +_081C8ED6: + adds r0, r4, 0 + bl LoadCompressedObjectPic + adds r4, 0x8 + adds r5, 0x1 + cmp r5, 0 + beq _081C8ED6 + ldr r0, =gUnknown_0861FC04 + bl sub_81C795C + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C8ED0 + + thumb_func_start sub_81C8EF8 +sub_81C8EF8: @ 81C8EF8 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + adds r4, r0, 0 + adds r5, r1, 0 + ldr r0, =gUnknown_0861FC1C + ldrb r1, [r5, 0x2] + lsls r1, 3 + adds r1, 0x3 + ldrb r2, [r5, 0x3] + adds r2, 0x1 + lsls r2, 3 + movs r3, 0x7 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 2 + ldr r1, =gSprites + mov r8, r1 + add r0, r8 + str r0, [r5, 0x3C] + ldrb r6, [r5, 0x2] + lsls r6, 3 + ldrb r0, [r5, 0x4] + subs r0, 0x1 + lsls r0, 2 + ldr r3, =gUnknown_0861FC3C + mov r10, r3 + adds r6, r0 + ldrb r2, [r5, 0x3] + lsls r2, 3 + ldrh r0, [r4, 0x8] + lsls r0, 4 + adds r2, r0 + lsls r2, 16 + asrs r2, 16 + mov r0, r10 + adds r1, r6, 0 + movs r3, 0x7 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + lsls r2, r3, 4 + adds r2, r3 + lsls r2, 2 + add r2, r8 + str r2, [r5, 0x44] + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r1, 22 + adds r1, 0x2 + ldr r0, =0x000003ff + mov r9, r0 + mov r0, r9 + ands r1, r0 + ldr r4, =0xfffffc00 + adds r0, r4, 0 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, 0x4] + ldr r1, [r5, 0x44] + ldr r0, =sub_81C90A0 + str r0, [r1, 0x1C] + ldrb r2, [r5, 0x3] + lsls r2, 3 + mov r0, r10 + adds r1, r6, 0 + movs r3, 0x7 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + lsls r1, r3, 4 + adds r1, r3 + lsls r1, 2 + add r1, r8 + str r1, [r5, 0x40] + ldrh r2, [r1, 0x4] + lsls r0, r2, 22 + lsrs r0, 22 + adds r0, 0x4 + mov r3, r9 + ands r0, r3 + ands r4, r2 + orrs r4, r0 + strh r4, [r1, 0x4] + ldr r1, [r5, 0x40] + ldr r0, =sub_81C90F4 + str r0, [r1, 0x1C] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C8EF8 + + thumb_func_start sub_81C8FE0 +sub_81C8FE0: @ 81C8FE0 + push {r4,lr} + adds r4, r0, 0 + ldr r0, [r4, 0x3C] + bl DestroySprite + ldr r0, [r4, 0x40] + bl DestroySprite + ldr r0, [r4, 0x44] + bl DestroySprite + movs r0, 0xA + bl FreeSpriteTilesByTag + movs r0, 0x14 + bl FreeSpritePaletteByTag + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81C8FE0 + + thumb_func_start sub_81C9008 +sub_81C9008: @ 81C9008 + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + cmp r4, 0 + beq _081C9028 + ldr r2, [r5, 0x3C] + ldr r1, =SpriteCallbackDummy + str r1, [r2, 0x1C] + ldr r0, [r5, 0x40] + str r1, [r0, 0x1C] + ldr r0, [r5, 0x44] + str r1, [r0, 0x1C] + b _081C903A + .pool +_081C9028: + ldr r2, [r5, 0x3C] + ldr r0, =sub_81C9080 + str r0, [r2, 0x1C] + ldr r1, [r5, 0x40] + ldr r0, =sub_81C90F4 + str r0, [r1, 0x1C] + ldr r1, [r5, 0x44] + ldr r0, =sub_81C90A0 + str r0, [r1, 0x1C] +_081C903A: + adds r3, r2, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r4, r0 + lsls r4, 2 + ldrb r2, [r3] + movs r1, 0x5 + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + orrs r0, r4 + strb r0, [r3] + ldr r2, [r5, 0x40] + adds r2, 0x3E + ldrb r3, [r2] + adds r0, r1, 0 + ands r0, r3 + orrs r0, r4 + strb r0, [r2] + ldr r0, [r5, 0x44] + adds r0, 0x3E + ldrb r2, [r0] + ands r1, r2 + orrs r1, r4 + strb r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C9008 + + thumb_func_start sub_81C9080 +sub_81C9080: @ 81C9080 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x11 + bl sub_81C763C + ldr r1, =0x0000088e + adds r0, r1 + ldrh r0, [r0] + lsls r0, 4 + strh r0, [r4, 0x26] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C9080 + + thumb_func_start sub_81C90A0 +sub_81C90A0: @ 81C90A0 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _081C90C2 + bl sub_81C84C0 + cmp r0, 0 + beq _081C90C2 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + b _081C90CC +_081C90C2: + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 +_081C90CC: + strb r0, [r2] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _081C90EC + movs r0, 0 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + movs r1, 0x7 + ands r0, r1 + strh r0, [r4, 0x30] + strh r0, [r4, 0x26] +_081C90EC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81C90A0 + + thumb_func_start sub_81C90F4 +sub_81C90F4: @ 81C90F4 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _081C9116 + bl sub_81C84A4 + cmp r0, 0 + beq _081C9116 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + b _081C9120 +_081C9116: + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 +_081C9120: + strb r0, [r2] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _081C9142 + movs r0, 0 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + movs r1, 0x7 + ands r0, r1 + strh r0, [r4, 0x30] + negs r0, r0 + strh r0, [r4, 0x26] +_081C9142: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81C90F4 + + thumb_func_start sub_81C9148 +sub_81C9148: @ 81C9148 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x11 + bl sub_81C763C + ldr r1, [r0, 0x40] + strh r4, [r1, 0x3C] + ldr r0, [r0, 0x44] + strh r4, [r0, 0x3C] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81C9148 + + thumb_func_start sub_81C9160 +sub_81C9160: @ 81C9160 + push {r4,r5,lr} + adds r2, r0, 0 + ldr r0, [r1] + str r0, [r2, 0x10] + ldrh r4, [r1, 0x6] + movs r5, 0 + strh r4, [r2] + ldrh r3, [r1, 0x4] + strh r3, [r2, 0x2] + ldrb r0, [r1, 0x8] + str r0, [r2, 0xC] + ldrb r1, [r1, 0xC] + strh r1, [r2, 0x8] + lsls r0, r3, 16 + lsrs r0, 16 + cmp r1, r0 + bcc _081C918A + strh r5, [r2] + strh r5, [r2, 0x4] + strh r4, [r2, 0x6] + b _081C91A6 +_081C918A: + subs r0, r3, r1 + strh r0, [r2, 0x4] + ldrh r1, [r2] + ldrh r0, [r2, 0x8] + adds r1, r0 + ldrh r0, [r2, 0x2] + cmp r1, r0 + ble _081C91A4 + subs r0, r1, r0 + strh r0, [r2, 0x6] + subs r0, r4, r0 + strh r0, [r2] + b _081C91A6 +_081C91A4: + strh r5, [r2, 0x6] +_081C91A6: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81C9160 + + thumb_func_start sub_81C91AC +sub_81C91AC: @ 81C91AC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + adds r7, r0, 0 + ldr r4, [r1] + lsls r4, 30 + lsrs r0, r4, 30 + movs r1, 0 + mov r9, r1 + strb r0, [r7] + strh r3, [r7, 0x6] + ldr r0, [r2, 0x10] + str r0, [r7, 0x34] + ldr r0, [r2, 0x14] + str r0, [r7, 0x38] + ldrb r6, [r2, 0xD] + strb r6, [r7, 0x1] + ldrb r1, [r2, 0x9] + strb r1, [r7, 0x2] + ldrb r0, [r2, 0xB] + strb r0, [r7, 0x3] + ldrb r5, [r2, 0xA] + strb r5, [r7, 0x4] + ldrb r0, [r2, 0xE] + strb r0, [r7, 0x5] + lsrs r4, 30 + ldr r2, =0xffffff00 + mov r8, r2 + ldr r0, [sp] + ands r0, r2 + orrs r0, r4 + lsls r1, 24 + lsrs r1, 16 + ldr r2, =0xffff00ff + ands r0, r2 + orrs r0, r1 + ldr r1, =0xff00ffff + ands r0, r1 + lsls r5, 24 + ldr r1, =0x00ffffff + ands r0, r1 + orrs r0, r5 + str r0, [sp] + ldr r0, [sp, 0x4] + mov r1, r8 + ands r0, r1 + movs r1, 0x20 + orrs r0, r1 + lsls r6, 24 + lsrs r6, 16 + ands r0, r2 + orrs r0, r6 + adds r3, 0x2 + lsls r3, 16 + ldr r1, =0x0000ffff + ands r0, r1 + orrs r0, r3 + str r0, [sp, 0x4] + mov r0, sp + bl AddWindow + strh r0, [r7, 0x8] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xFF + beq _081C9258 + mov r2, r9 + strh r2, [r7, 0xA] + mov r0, r9 + str r0, [r7, 0x3C] + str r0, [r7, 0x40] + str r0, [r7, 0x44] + movs r0, 0x1 + b _081C925A + .pool +_081C9258: + movs r0, 0 +_081C925A: + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81C91AC + + thumb_func_start sub_81C9268 +sub_81C9268: @ 81C9268 + push {r4,lr} + movs r4, 0 + movs r0, 0x98 + lsls r0, 1 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _081C928A + movs r4, 0x1 + ldr r0, =0x0000089b + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _081C928A + movs r4, 0x2 +_081C928A: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81C9268 + + thumb_func_start sub_81C9298 +sub_81C9298: @ 81C9298 + push {r4,lr} + movs r0, 0x1 + movs r1, 0x10 + bl sub_81C761C + adds r4, r0, 0 + cmp r4, 0 + beq _081C92C4 + bl sub_81C9268 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + strh r0, [r4] + strh r1, [r4, 0x2] + strh r1, [r4, 0x4] + strh r1, [r4, 0x6] + adds r0, r4, 0 + bl sub_81C939C + movs r0, 0x1 + b _081C92C6 +_081C92C4: + movs r0, 0 +_081C92C6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81C9298 + + thumb_func_start sub_81C92CC +sub_81C92CC: @ 81C92CC + push {r4,lr} + movs r0, 0x1 + movs r1, 0x10 + bl sub_81C761C + adds r4, r0, 0 + cmp r4, 0 + beq _081C92FA + bl sub_81C9268 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + strh r0, [r4] + movs r0, 0x2 + strh r0, [r4, 0x2] + strh r0, [r4, 0x4] + strh r1, [r4, 0x6] + adds r0, r4, 0 + bl sub_81C939C + movs r0, 0x1 + b _081C92FC +_081C92FA: + movs r0, 0 +_081C92FC: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81C92CC + + thumb_func_start sub_81C9304 +sub_81C9304: @ 81C9304 + push {r4,lr} + movs r0, 0x1 + movs r1, 0x10 + bl sub_81C761C + adds r4, r0, 0 + cmp r4, 0 + beq _081C932E + bl sub_81C9268 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + movs r0, 0x3 + strh r0, [r4, 0x2] + strh r0, [r4, 0x4] + adds r0, r4, 0 + bl sub_81C939C + movs r0, 0x1 + b _081C9330 +_081C932E: + movs r0, 0 +_081C9330: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81C9304 + + thumb_func_start sub_81C9338 +sub_81C9338: @ 81C9338 + push {lr} + movs r0, 0x1 + movs r1, 0x10 + bl sub_81C761C + adds r2, r0, 0 + cmp r2, 0 + beq _081C9360 + movs r0, 0 + movs r1, 0x3 + strh r1, [r2] + strh r0, [r2, 0x2] + movs r1, 0x5 + strh r1, [r2, 0x4] + strh r0, [r2, 0x6] + adds r0, r2, 0 + bl sub_81C939C + movs r0, 0x1 + b _081C9362 +_081C9360: + movs r0, 0 +_081C9362: + pop {r1} + bx r1 + thumb_func_end sub_81C9338 + + thumb_func_start sub_81C9368 +sub_81C9368: @ 81C9368 + push {r4,r5,lr} + movs r0, 0x1 + movs r1, 0x10 + bl sub_81C761C + adds r5, r0, 0 + cmp r5, 0 + beq _081C9394 + movs r4, 0 + movs r0, 0x4 + strh r0, [r5] + bl sub_81C76AC + strh r0, [r5, 0x2] + adds r0, 0x8 + strh r0, [r5, 0x4] + strh r4, [r5, 0x6] + adds r0, r5, 0 + bl sub_81C939C + movs r0, 0x1 + b _081C9396 +_081C9394: + movs r0, 0 +_081C9396: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81C9368 + + thumb_func_start sub_81C939C +sub_81C939C: @ 81C939C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4] + cmp r0, 0x4 + bhi _081C93E0 + lsls r0, 2 + ldr r1, =_081C93B4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081C93B4: + .4byte _081C93C8 + .4byte _081C93CE + .4byte _081C93CE + .4byte _081C93D4 + .4byte _081C93DC +_081C93C8: + movs r0, 0 + bl sub_81C7688 +_081C93CE: + bl sub_81C93EC + b _081C93DE +_081C93D4: + ldr r0, =sub_81C963C + b _081C93DE + .pool +_081C93DC: + ldr r0, =sub_81C96FC +_081C93DE: + str r0, [r4, 0xC] +_081C93E0: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C939C + + thumb_func_start sub_81C93EC +sub_81C93EC: @ 81C93EC + push {lr} + bl sub_81C767C + cmp r0, 0x1 + beq _081C9408 + cmp r0, 0x1 + bcc _081C93FE + cmp r0, 0x2 + beq _081C9410 +_081C93FE: + ldr r0, =sub_81C943C + b _081C9412 + .pool +_081C9408: + ldr r0, =sub_81C9520 + b _081C9412 + .pool +_081C9410: + ldr r0, =c2_pre_battle_1 +_081C9412: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81C93EC + + thumb_func_start sub_81C941C +sub_81C941C: @ 81C941C + push {lr} + movs r0, 0x1 + bl sub_81C763C + ldr r1, [r0, 0xC] + bl _call_via_r1 + pop {r1} + bx r1 + thumb_func_end sub_81C941C + + thumb_func_start sub_81C9430 +sub_81C9430: @ 81C9430 + push {lr} + movs r0, 0x1 + bl sub_81C7650 + pop {r0} + bx r0 + thumb_func_end sub_81C9430 + + thumb_func_start sub_81C943C +sub_81C943C: @ 81C943C + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_81C9814 + cmp r0, 0 + beq _081C944C + movs r0, 0x1 + b _081C951A +_081C944C: + ldr r2, =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + adds r5, r2, 0 + cmp r0, 0 + beq _081C9508 + ldr r3, =gUnknown_0861FC59 + movs r0, 0x2 + ldrsh r1, [r4, r0] + ldrh r2, [r4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 1 + adds r1, r0 + adds r1, r3 + ldrb r0, [r1] + cmp r0, 0x4 + bhi _081C9508 + lsls r0, 2 + ldr r1, =_081C9488 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081C9488: + .4byte _081C949C + .4byte _081C94BC + .4byte _081C94D4 + .4byte _081C94E0 + .4byte _081C9516 +_081C949C: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r1, [r0, 0x15] + movs r0, 0x8 + ands r0, r1 + movs r1, 0x1 + cmp r0, 0 + beq _081C94AE + movs r1, 0x2 +_081C94AE: + strh r1, [r4, 0x6] + ldr r1, =0x000186a6 + b _081C94EE + .pool +_081C94BC: + movs r1, 0 + movs r0, 0x3 + strh r0, [r4] + strh r1, [r4, 0x2] + ldrb r0, [r3, 0x12] + strh r0, [r4, 0x4] + ldr r0, =sub_81C963C + str r0, [r4, 0xC] + movs r0, 0x2 + b _081C951A + .pool +_081C94D4: + movs r0, 0x6 + strh r0, [r4, 0x6] + ldr r1, =0x000186ab + b _081C94EE + .pool +_081C94E0: + bl sub_81C76B8 + cmp r0, 0 + beq _081C94FC + movs r0, 0x9 + strh r0, [r4, 0x6] + ldr r1, =0x000186ac +_081C94EE: + adds r0, r4, 0 + bl sub_81C97B0 + movs r0, 0x8 + b _081C951A + .pool +_081C94FC: + ldr r0, =sub_81C9600 + str r0, [r4, 0xC] + movs r0, 0x6 + b _081C951A + .pool +_081C9508: + ldrh r1, [r5, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _081C9516 + movs r0, 0 + b _081C951A +_081C9516: + movs r0, 0x1 + negs r0, r0 +_081C951A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81C943C + + thumb_func_start sub_81C9520 +sub_81C9520: @ 81C9520 + push {r4,lr} + adds r4, r0, 0 + bl sub_81C9814 + cmp r0, 0 + beq _081C9530 + movs r0, 0x1 + b _081C9580 +_081C9530: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081C9570 + ldr r3, =gUnknown_0861FC59 + movs r0, 0x2 + ldrsh r1, [r4, r0] + ldrh r2, [r4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 1 + adds r1, r0 + adds r1, r3 + ldrb r0, [r1] + cmp r0, 0x2 + bne _081C9578 + movs r0, 0x6 + strh r0, [r4, 0x6] + ldr r1, =0x000186ab + adds r0, r4, 0 + bl sub_81C97B0 + movs r0, 0x8 + b _081C9580 + .pool +_081C9570: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081C957E +_081C9578: + movs r0, 0x20 + bl PlaySE +_081C957E: + movs r0, 0 +_081C9580: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81C9520 + + thumb_func_start c2_pre_battle_1 +c2_pre_battle_1: @ 81C9588 + push {r4,lr} + adds r4, r0, 0 + bl sub_81C9814 + cmp r0, 0 + beq _081C9598 + movs r0, 0x1 + b _081C95F8 +_081C9598: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081C95E8 + ldr r3, =gUnknown_0861FC59 + movs r0, 0x2 + ldrsh r1, [r4, r0] + ldrh r2, [r4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 1 + adds r1, r0 + adds r1, r3 + ldrb r0, [r1] + cmp r0, 0x2 + beq _081C95D4 + cmp r0, 0x4 + beq _081C95F4 + movs r0, 0x20 + bl PlaySE + movs r0, 0 + b _081C95F8 + .pool +_081C95D4: + movs r0, 0x6 + strh r0, [r4, 0x6] + ldr r1, =0x000186ab + adds r0, r4, 0 + bl sub_81C97B0 + movs r0, 0x8 + b _081C95F8 + .pool +_081C95E8: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _081C95F4 + movs r0, 0 + b _081C95F8 +_081C95F4: + movs r0, 0x1 + negs r0, r0 +_081C95F8: + pop {r4} + pop {r1} + bx r1 + thumb_func_end c2_pre_battle_1 + + thumb_func_start sub_81C9600 +sub_81C9600: @ 81C9600 + push {r4,lr} + adds r4, r0, 0 + bl sub_81C9814 + cmp r0, 0 + beq _081C9616 + bl sub_81C93EC + str r0, [r4, 0xC] + movs r0, 0x1 + b _081C9634 +_081C9616: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _081C962C + movs r0, 0 + b _081C9634 + .pool +_081C962C: + bl sub_81C93EC + str r0, [r4, 0xC] + movs r0, 0x7 +_081C9634: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81C9600 + + thumb_func_start sub_81C963C +sub_81C963C: @ 81C963C + push {r4-r6,lr} + adds r4, r0, 0 + bl sub_81C9814 + adds r3, r0, 0 + cmp r3, 0 + beq _081C964E + movs r0, 0x1 + b _081C96F6 +_081C964E: + ldr r2, =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + adds r6, r2, 0 + cmp r0, 0 + beq _081C96B8 + ldr r5, =gUnknown_0861FC59 + movs r1, 0x2 + ldrsh r0, [r4, r1] + ldrh r2, [r4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 1 + adds r0, r1 + adds r0, r5 + ldrb r0, [r0] + cmp r0, 0x6 + beq _081C968E + cmp r0, 0x6 + bgt _081C9688 + cmp r0, 0x5 + beq _081C96A4 + b _081C96B8 + .pool +_081C9688: + cmp r0, 0x7 + beq _081C96E4 + b _081C96B8 +_081C968E: + movs r0, 0x4 + strh r0, [r4] + strh r3, [r4, 0x2] + ldrb r0, [r5, 0x18] + strh r0, [r4, 0x4] + ldr r0, =sub_81C96FC + str r0, [r4, 0xC] + movs r0, 0x4 + b _081C96F6 + .pool +_081C96A4: + strh r3, [r4, 0x6] + ldr r1, =0x000186a7 + adds r0, r4, 0 + bl sub_81C97B0 + movs r0, 0x8 + b _081C96F6 + .pool +_081C96B8: + ldrh r1, [r6, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081C96F4 + movs r0, 0x2 + ldrsh r2, [r4, r0] + ldr r1, =gUnknown_0861FC54 + ldrh r0, [r4] + adds r0, r1 + ldrb r0, [r0] + cmp r2, r0 + beq _081C96E4 + strh r0, [r4, 0x2] + ldr r0, =sub_81C9798 + str r0, [r4, 0xC] + movs r0, 0x1 + b _081C96F6 + .pool +_081C96E4: + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_81C97C0 + movs r0, 0x3 + b _081C96F6 +_081C96F4: + movs r0, 0 +_081C96F6: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81C963C + + thumb_func_start sub_81C96FC +sub_81C96FC: @ 81C96FC + push {r4,lr} + adds r4, r0, 0 + bl sub_81C9814 + cmp r0, 0 + beq _081C970C + movs r0, 0x1 + b _081C9792 +_081C970C: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081C9754 + ldr r3, =gUnknown_0861FC59 + movs r0, 0x2 + ldrsh r1, [r4, r0] + ldrh r2, [r4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 1 + adds r1, r0 + adds r1, r3 + ldrb r0, [r1] + cmp r0, 0xD + beq _081C9780 + subs r0, 0x8 + bl sub_81C7694 + ldr r1, =0x000186a8 + adds r0, r4, 0 + bl sub_81C97B0 + movs r0, 0x3 + strh r0, [r4, 0x6] + movs r0, 0x8 + b _081C9792 + .pool +_081C9754: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081C9790 + movs r0, 0x2 + ldrsh r2, [r4, r0] + ldr r1, =gUnknown_0861FC54 + ldrh r0, [r4] + adds r0, r1 + ldrb r0, [r0] + cmp r2, r0 + beq _081C9780 + strh r0, [r4, 0x2] + ldr r0, =sub_81C97A4 + str r0, [r4, 0xC] + movs r0, 0x1 + b _081C9792 + .pool +_081C9780: + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_81C97F8 + movs r0, 0x5 + b _081C9792 +_081C9790: + movs r0, 0 +_081C9792: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81C96FC + + thumb_func_start sub_81C9798 +sub_81C9798: @ 81C9798 + push {lr} + bl sub_81C97C0 + movs r0, 0x3 + pop {r1} + bx r1 + thumb_func_end sub_81C9798 + + thumb_func_start sub_81C97A4 +sub_81C97A4: @ 81C97A4 + push {lr} + bl sub_81C97F8 + movs r0, 0x5 + pop {r1} + bx r1 + thumb_func_end sub_81C97A4 + + thumb_func_start sub_81C97B0 +sub_81C97B0: @ 81C97B0 + str r1, [r0, 0x8] + ldr r1, =sub_81C97BC + str r1, [r0, 0xC] + bx lr + .pool + thumb_func_end sub_81C97B0 + + thumb_func_start sub_81C97BC +sub_81C97BC: @ 81C97BC + ldr r0, [r0, 0x8] + bx lr + thumb_func_end sub_81C97BC + + thumb_func_start sub_81C97C0 +sub_81C97C0: @ 81C97C0 + push {r4,lr} + adds r4, r0, 0 + bl sub_81C9268 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + movs r0, 0x1 + strh r0, [r4, 0x2] + ldr r2, =gUnknown_0861FC59 + ldrh r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + adds r0, 0x1 + adds r0, r2 + ldrb r0, [r0] + strh r0, [r4, 0x4] + ldr r0, =sub_81C943C + str r0, [r4, 0xC] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C97C0 + + thumb_func_start sub_81C97F8 +sub_81C97F8: @ 81C97F8 + movs r1, 0x3 + strh r1, [r0] + movs r1, 0x1 + strh r1, [r0, 0x2] + ldr r1, =gUnknown_0861FC59 + ldrb r1, [r1, 0x13] + strh r1, [r0, 0x4] + ldr r1, =sub_81C963C + str r1, [r0, 0xC] + bx lr + .pool + thumb_func_end sub_81C97F8 + + thumb_func_start sub_81C9814 +sub_81C9814: @ 81C9814 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + beq _081C9848 + ldrh r0, [r4, 0x2] + subs r0, 0x1 + strh r0, [r4, 0x2] + lsls r0, 16 + ldrh r3, [r4] + cmp r0, 0 + bge _081C986A + ldr r0, =gUnknown_0861FC54 + adds r0, r3, r0 + ldrb r0, [r0] + strh r0, [r4, 0x2] + b _081C986A + .pool +_081C9848: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081C988C + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] + movs r0, 0x2 + ldrsh r2, [r4, r0] + ldr r0, =gUnknown_0861FC54 + ldrh r1, [r4] + adds r0, r1, r0 + adds r3, r1, 0 + ldrb r0, [r0] + cmp r2, r0 + ble _081C986A + strh r5, [r4, 0x2] +_081C986A: + ldr r2, =gUnknown_0861FC59 + movs r0, 0x2 + ldrsh r1, [r4, r0] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 1 + adds r1, r0 + adds r1, r2 + ldrb r0, [r1] + strh r0, [r4, 0x4] + movs r0, 0x1 + b _081C988E + .pool +_081C988C: + movs r0, 0 +_081C988E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81C9814 + + thumb_func_start sub_81C9894 +sub_81C9894: @ 81C9894 + push {lr} + movs r0, 0x1 + bl sub_81C763C + ldrh r0, [r0] + pop {r1} + bx r1 + thumb_func_end sub_81C9894 + + thumb_func_start sub_81C98A4 +sub_81C98A4: @ 81C98A4 + push {lr} + movs r0, 0x1 + bl sub_81C763C + movs r1, 0x2 + ldrsh r0, [r0, r1] + pop {r1} + bx r1 + thumb_func_end sub_81C98A4 + + thumb_func_start sub_81C98B4 +sub_81C98B4: @ 81C98B4 + push {lr} + movs r0, 0x1 + bl sub_81C763C + ldrh r0, [r0, 0x4] + pop {r1} + bx r1 + thumb_func_end sub_81C98B4 + + thumb_func_start sub_81C98C4 +sub_81C98C4: @ 81C98C4 + push {lr} + movs r0, 0x1 + bl sub_81C763C + ldrh r0, [r0, 0x6] + pop {r1} + bx r1 + thumb_func_end sub_81C98C4 + + thumb_func_start sub_81C98D4 +sub_81C98D4: @ 81C98D4 + push {r4,lr} + movs r4, 0 +_081C98D8: + adds r0, r4, 0 + bl sub_81CB0C8 + ldr r1, =gUnknown_02037318 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1, 0x14] + cmp r0, r1 + bne _081C9914 + adds r0, r4, 0 + bl sub_81CAE08 + cmp r0, 0 + beq _081C9914 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x000009ca + adds r0, r1 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _081C9914 + movs r0, 0x1 + b _081C991C + .pool +_081C9914: + adds r4, 0x1 + cmp r4, 0x4D + ble _081C98D8 + movs r0, 0 +_081C991C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81C98D4 + + thumb_func_start sub_81C9924 +sub_81C9924: @ 81C9924 + push {lr} + bl sub_81C9958 + adds r1, r0, 0 + cmp r1, 0 + beq _081C9938 + movs r0, 0 + strb r0, [r1, 0xD] + movs r0, 0x1 + b _081C993A +_081C9938: + movs r0, 0 +_081C993A: + pop {r1} + bx r1 + thumb_func_end sub_81C9924 + + thumb_func_start sub_81C9940 +sub_81C9940: @ 81C9940 + push {lr} + bl sub_81C9958 + adds r1, r0, 0 + cmp r1, 0 + beq _081C9952 + movs r0, 0x1 + strb r0, [r1, 0xD] + b _081C9954 +_081C9952: + movs r0, 0 +_081C9954: + pop {r1} + bx r1 + thumb_func_end sub_81C9940 + + thumb_func_start sub_81C9958 +sub_81C9958: @ 81C9958 + push {r4,lr} + ldr r1, =0x0000088c + movs r0, 0x2 + bl sub_81C761C + adds r4, r0, 0 + cmp r4, 0 + beq _081C997A + movs r0, 0 + strb r0, [r4, 0xC] + ldr r0, =sub_81C9A10 + movs r1, 0x1 + bl sub_81C7078 + str r0, [r4, 0x4] + ldr r0, =sub_81C99FC + str r0, [r4] +_081C997A: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81C9958 + + thumb_func_start sub_81C9990 +sub_81C9990: @ 81C9990 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x2 + bl sub_81C763C + adds r5, r0, 0 + ldr r0, =gUnknown_086201A0 + lsls r4, 2 + adds r4, r0 + ldr r0, [r4] + movs r1, 0x1 + bl sub_81C7078 + str r0, [r5, 0x4] + ldr r0, =sub_81C99FC + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C9990 + + thumb_func_start sub_81C99C0 +sub_81C99C0: @ 81C99C0 + push {lr} + movs r0, 0x2 + bl sub_81C763C + ldr r0, [r0] + bl _call_via_r0 + pop {r1} + bx r1 + thumb_func_end sub_81C99C0 + + thumb_func_start sub_81C99D4 +sub_81C99D4: @ 81C99D4 + push {r4,lr} + movs r0, 0x2 + bl sub_81C763C + adds r4, r0, 0 + bl sub_81CA7F4 + ldrb r0, [r4, 0x8] + bl RemoveWindow + bl sub_81C9FEC + bl sub_81CA994 + movs r0, 0x2 + bl sub_81C7650 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81C99D4 + + thumb_func_start sub_81C99FC +sub_81C99FC: @ 81C99FC + push {lr} + movs r0, 0x2 + bl sub_81C763C + ldr r0, [r0, 0x4] + bl sub_81C70D8 + pop {r1} + bx r1 + thumb_func_end sub_81C99FC + + thumb_func_start sub_81C9A10 +sub_81C9A10: @ 81C9A10 + push {r4,r5,lr} + sub sp, 0x4 + adds r4, r0, 0 + movs r0, 0x2 + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x9 + bls _081C9A24 + b _081C9C60 +_081C9A24: + lsls r0, r4, 2 + ldr r1, =_081C9A34 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081C9A34: + .4byte _081C9A5C + .4byte _081C9AEC + .4byte _081C9B30 + .4byte _081C9B88 + .4byte _081C9B9E + .4byte _081C9BA4 + .4byte _081C9BB6 + .4byte _081C9BC0 + .4byte _081C9C0E + .4byte _081C9C4C +_081C9A5C: + ldr r0, =gUnknown_08620194 + movs r1, 0x3 + bl sub_81C7B54 + ldr r1, =gUnknown_08DC90E0 + movs r0, 0 + str r0, [sp] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + adds r1, r5, 0 + adds r1, 0x8C + movs r0, 0x1 + bl SetBgTilemapBuffer + ldr r1, =gUnknown_08DC9130 + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer + movs r0, 0x1 + bl CopyBgTilemapBufferToVram + ldr r0, =gUnknown_08DC90C0 + movs r1, 0x10 + movs r2, 0x20 + bl sub_81C7944 + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl ChangeBgY +_081C9AD6: + movs r0, 0 + b _081C9C62 + .pool +_081C9AEC: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _081C9AFA + b _081C9C5C +_081C9AFA: + ldr r1, =gUnknown_0861FD6C + str r0, [sp] + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, =gUnknown_0861FFF4 + movs r0, 0x1 + str r0, [sp] + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r0, =gUnknown_0861FD4C + movs r1, 0x20 + movs r2, 0x20 + bl sub_81C7944 + b _081C9AD6 + .pool +_081C9B30: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _081C9B3E + b _081C9C5C +_081C9B3E: + ldr r1, =gUnknown_0861FC98 + str r0, [sp] + movs r0, 0x3 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, =gUnknown_0861FCAC + movs r0, 0x1 + str r0, [sp] + movs r0, 0x3 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r0, =gUnknown_0861FC78 + movs r1, 0x30 + movs r2, 0x20 + bl sub_81C7944 + bl sub_81C9894 + cmp r0, 0x3 + beq _081C9B76 + bl sub_81C9894 + cmp r0, 0x4 + bne _081C9AD6 +_081C9B76: + bl sub_81CA850 + b _081C9AD6 + .pool +_081C9B88: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _081C9C5C + bl sub_81CA6E0 + bl sub_81CA7D4 +_081C9B9A: + movs r0, 0x1 + b _081C9C62 +_081C9B9E: + bl sub_81C9FC4 + b _081C9B9A +_081C9BA4: + bl sub_81CA714 + bl sub_81CA02C + bl sub_81CA640 + bl sub_81CA0C8 + b _081C9AD6 +_081C9BB6: + bl sub_81CA7C4 + cmp r0, 0 + bne _081C9C5C + b _081C9B9A +_081C9BC0: + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + movs r0, 0x3 + bl ShowBg + ldrb r0, [r5, 0xD] + cmp r0, 0 + beq _081C9BE0 + movs r0, 0x1 + bl sub_81C7AC0 + b _081C9BEC +_081C9BE0: + movs r0, 0x6E + bl PlaySE + movs r0, 0x3 + bl sub_81C7AC0 +_081C9BEC: + bl sub_81C9894 + cmp r0, 0x3 + beq _081C9BFE + cmp r0, 0x4 + bne _081C9C06 + movs r0, 0x7 + bl sub_81C7DFC +_081C9BFE: + movs r0, 0x1 + bl sub_81C7DFC + b _081C9AD6 +_081C9C06: + movs r0, 0 + bl sub_81C7DFC + b _081C9AD6 +_081C9C0E: + bl sub_81C7B34 + cmp r0, 0 + bne _081C9C5C + bl sub_81C9894 + cmp r0, 0x3 + beq _081C9C2C + cmp r0, 0x4 + bne _081C9C38 + movs r0, 0x7 + movs r1, 0 + movs r2, 0 + bl sub_81C7FA0 +_081C9C2C: + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl sub_81C7FA0 + b _081C9C42 +_081C9C38: + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl sub_81C7FA0 +_081C9C42: + bl sub_81CA20C + bl titlescreen_0 + b _081C9B9A +_081C9C4C: + bl sub_81CA324 + cmp r0, 0 + bne _081C9C5C + bl sub_81C8010 + cmp r0, 0 + beq _081C9C60 +_081C9C5C: + movs r0, 0x2 + b _081C9C62 +_081C9C60: + movs r0, 0x4 +_081C9C62: + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81C9A10 + + thumb_func_start sub_81C9C6C +sub_81C9C6C: @ 81C9C6C + push {lr} + cmp r0, 0 + beq _081C9C78 + cmp r0, 0x1 + beq _081C9C8E + b _081C9CA2 +_081C9C78: + bl sub_81CAA3C + bl sub_81CA278 + bl sub_81CA714 + movs r0, 0x5 + bl PlaySE + movs r0, 0 + b _081C9CA4 +_081C9C8E: + bl sub_81CA324 + cmp r0, 0 + bne _081C9C9E + bl sub_81CA7C4 + cmp r0, 0 + beq _081C9CA2 +_081C9C9E: + movs r0, 0x2 + b _081C9CA4 +_081C9CA2: + movs r0, 0x4 +_081C9CA4: + pop {r1} + bx r1 + thumb_func_end sub_81C9C6C + + thumb_func_start sub_81C9CA8 +sub_81C9CA8: @ 81C9CA8 + push {lr} + cmp r0, 0x1 + beq _081C9CDC + cmp r0, 0x1 + bgt _081C9CB8 + cmp r0, 0 + beq _081C9CC2 + b _081C9D3C +_081C9CB8: + cmp r0, 0x2 + beq _081C9CFA + cmp r0, 0x3 + beq _081C9D14 + b _081C9D3C +_081C9CC2: + bl sub_81CA9C8 + bl sub_81CA2DC + movs r0, 0 + movs r1, 0 + bl sub_81C7FC4 + movs r0, 0x5 + bl PlaySE + movs r0, 0 + b _081C9D3E +_081C9CDC: + bl sub_81CA324 + cmp r0, 0 + bne _081C9D34 + bl sub_81C8010 + cmp r0, 0 + bne _081C9D34 + bl sub_81CA0C8 + movs r0, 0x1 + bl sub_81C7DFC + movs r0, 0 + b _081C9D3E +_081C9CFA: + bl sub_81CA20C + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl sub_81C7FA0 + bl sub_81CA818 + bl sub_81CA714 + movs r0, 0 + b _081C9D3E +_081C9D14: + bl sub_81CA324 + cmp r0, 0 + bne _081C9D34 + bl sub_81C8010 + cmp r0, 0 + bne _081C9D34 + bl sub_81CA89C + cmp r0, 0 + bne _081C9D34 + bl sub_81CA7C4 + cmp r0, 0 + beq _081C9D38 +_081C9D34: + movs r0, 0x2 + b _081C9D3E +_081C9D38: + bl sub_81CA9D8 +_081C9D3C: + movs r0, 0x4 +_081C9D3E: + pop {r1} + bx r1 + thumb_func_end sub_81C9CA8 + + thumb_func_start sub_81C9D44 +sub_81C9D44: @ 81C9D44 + push {lr} + cmp r0, 0x1 + beq _081C9D72 + cmp r0, 0x1 + bgt _081C9D54 + cmp r0, 0 + beq _081C9D5E + b _081C9DD2 +_081C9D54: + cmp r0, 0x2 + beq _081C9D90 + cmp r0, 0x3 + beq _081C9DAA + b _081C9DD2 +_081C9D5E: + bl sub_81CA9C8 + bl sub_81CA2DC + movs r0, 0x1 + movs r1, 0 + bl sub_81C7FC4 + movs r0, 0 + b _081C9DD4 +_081C9D72: + bl sub_81CA324 + cmp r0, 0 + bne _081C9DCA + bl sub_81C8010 + cmp r0, 0 + bne _081C9DCA + bl sub_81CA0C8 + movs r0, 0 + bl sub_81C7DFC + movs r0, 0 + b _081C9DD4 +_081C9D90: + bl sub_81CA20C + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl sub_81C7FA0 + bl sub_81CA864 + bl sub_81CA714 + movs r0, 0 + b _081C9DD4 +_081C9DAA: + bl sub_81CA324 + cmp r0, 0 + bne _081C9DCA + bl sub_81C8010 + cmp r0, 0 + bne _081C9DCA + bl sub_81CA89C + cmp r0, 0 + bne _081C9DCA + bl sub_81CA7C4 + cmp r0, 0 + beq _081C9DCE +_081C9DCA: + movs r0, 0x2 + b _081C9DD4 +_081C9DCE: + bl sub_81CA9D8 +_081C9DD2: + movs r0, 0x4 +_081C9DD4: + pop {r1} + bx r1 + thumb_func_end sub_81C9D44 + + thumb_func_start sub_81C9DD8 +sub_81C9DD8: @ 81C9DD8 + push {lr} + cmp r0, 0x1 + beq _081C9E04 + cmp r0, 0x1 + bgt _081C9DE8 + cmp r0, 0 + beq _081C9DF2 + b _081C9E50 +_081C9DE8: + cmp r0, 0x2 + beq _081C9E1A + cmp r0, 0x3 + beq _081C9E30 + b _081C9E50 +_081C9DF2: + bl sub_81CA9C8 + bl sub_81CA2DC + movs r0, 0x5 + bl PlaySE + movs r0, 0 + b _081C9E52 +_081C9E04: + bl sub_81CA324 + cmp r0, 0 + bne _081C9E48 + movs r0, 0x7 + bl sub_81C7DFC + bl sub_81CA0C8 + movs r0, 0 + b _081C9E52 +_081C9E1A: + bl sub_81CA20C + movs r0, 0x7 + movs r1, 0 + movs r2, 0 + bl sub_81C7FA0 + bl sub_81CA714 + movs r0, 0 + b _081C9E52 +_081C9E30: + bl sub_81CA324 + cmp r0, 0 + bne _081C9E48 + bl sub_81C8010 + cmp r0, 0 + bne _081C9E48 + bl sub_81CA89C + cmp r0, 0 + beq _081C9E4C +_081C9E48: + movs r0, 0x2 + b _081C9E52 +_081C9E4C: + bl sub_81CA9D8 +_081C9E50: + movs r0, 0x4 +_081C9E52: + pop {r1} + bx r1 + thumb_func_end sub_81C9DD8 + + thumb_func_start sub_81C9E58 +sub_81C9E58: @ 81C9E58 + push {lr} + cmp r0, 0x1 + beq _081C9E86 + cmp r0, 0x1 + bgt _081C9E68 + cmp r0, 0 + beq _081C9E72 + b _081C9EC2 +_081C9E68: + cmp r0, 0x2 + beq _081C9E9E + cmp r0, 0x3 + beq _081C9EAA + b _081C9EC2 +_081C9E72: + bl sub_81CA9C8 + bl sub_81CA2DC + movs r0, 0x7 + movs r1, 0 + bl sub_81C7FC4 + movs r0, 0 + b _081C9EC4 +_081C9E86: + bl sub_81CA324 + cmp r0, 0 + bne _081C9EBA + bl sub_81C8010 + cmp r0, 0 + bne _081C9EBA + bl sub_81CA0C8 + movs r0, 0 + b _081C9EC4 +_081C9E9E: + bl sub_81CA20C + bl sub_81CA714 + movs r0, 0 + b _081C9EC4 +_081C9EAA: + bl sub_81CA324 + cmp r0, 0 + bne _081C9EBA + bl sub_81CA89C + cmp r0, 0 + beq _081C9EBE +_081C9EBA: + movs r0, 0x2 + b _081C9EC4 +_081C9EBE: + bl sub_81CA9D8 +_081C9EC2: + movs r0, 0x4 +_081C9EC4: + pop {r1} + bx r1 + thumb_func_end sub_81C9E58 + + thumb_func_start sub_81C9EC8 +sub_81C9EC8: @ 81C9EC8 + push {lr} + cmp r0, 0 + beq _081C9ED4 + cmp r0, 0x1 + beq _081C9EE2 + b _081C9EF0 +_081C9ED4: + movs r0, 0x20 + bl PlaySE + bl sub_81CA770 + movs r0, 0 + b _081C9EF2 +_081C9EE2: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081C9EF0 + movs r0, 0x2 + b _081C9EF2 +_081C9EF0: + movs r0, 0x4 +_081C9EF2: + pop {r1} + bx r1 + thumb_func_end sub_81C9EC8 + + thumb_func_start sub_81C9EF8 +sub_81C9EF8: @ 81C9EF8 + push {lr} + cmp r0, 0 + beq _081C9F04 + cmp r0, 0x1 + beq _081C9F12 + b _081C9F20 +_081C9F04: + movs r0, 0x5 + bl PlaySE + bl sub_81CA714 + movs r0, 0 + b _081C9F22 +_081C9F12: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081C9F20 + movs r0, 0x2 + b _081C9F22 +_081C9F20: + movs r0, 0x4 +_081C9F22: + pop {r1} + bx r1 + thumb_func_end sub_81C9EF8 + + thumb_func_start sub_81C9F28 +sub_81C9F28: @ 81C9F28 + push {lr} + cmp r0, 0x1 + beq _081C9F52 + cmp r0, 0x1 + bgt _081C9F38 + cmp r0, 0 + beq _081C9F42 + b _081C9FBC +_081C9F38: + cmp r0, 0x2 + beq _081C9F96 + cmp r0, 0x3 + beq _081C9FB0 + b _081C9FBC +_081C9F42: + bl sub_81C98C4 + lsls r0, 16 + lsrs r0, 16 + bl sub_81C7BA4 + movs r0, 0 + b _081C9FBE +_081C9F52: + bl sub_81C7BE8 + cmp r0, 0 + bne _081C9FB8 + bl sub_81C7880 + bl sub_81CA9C8 + bl sub_81CA2DC + bl sub_81C9894 + cmp r0, 0x3 + beq _081C9F7A + cmp r0, 0x4 + bne _081C9F84 + movs r0, 0x7 + movs r1, 0 + bl sub_81C7FC4 +_081C9F7A: + movs r0, 0x1 + movs r1, 0 + bl sub_81C7FC4 + b _081C9F8C +_081C9F84: + movs r0, 0 + movs r1, 0 + bl sub_81C7FC4 +_081C9F8C: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + b _081C9FBE +_081C9F96: + bl sub_81CA324 + cmp r0, 0 + bne _081C9FB8 + bl sub_81C8010 + cmp r0, 0 + bne _081C9FB8 + movs r0, 0 + bl sub_81C7AC0 + movs r0, 0 + b _081C9FBE +_081C9FB0: + bl sub_81C7B34 + cmp r0, 0 + beq _081C9FBC +_081C9FB8: + movs r0, 0x2 + b _081C9FBE +_081C9FBC: + movs r0, 0x4 +_081C9FBE: + pop {r1} + bx r1 + thumb_func_end sub_81C9F28 + + thumb_func_start sub_81C9FC4 +sub_81C9FC4: @ 81C9FC4 + push {r4,r5,lr} + movs r5, 0 + ldr r4, =gUnknown_086201C4 +_081C9FCA: + adds r0, r4, 0 + bl LoadCompressedObjectPic + adds r4, 0x8 + adds r5, 0x1 + cmp r5, 0x1 + bls _081C9FCA + ldr r0, =gUnknown_086201D4 + bl sub_81C795C + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C9FC4 + + thumb_func_start sub_81C9FEC +sub_81C9FEC: @ 81C9FEC + push {lr} + movs r0, 0x3 + bl FreeSpriteTilesByTag + movs r0, 0x1 + bl FreeSpriteTilesByTag + movs r0, 0x4 + bl FreeSpritePaletteByTag + movs r0, 0x5 + bl FreeSpritePaletteByTag + movs r0, 0x6 + bl FreeSpritePaletteByTag + movs r0, 0x7 + bl FreeSpritePaletteByTag + movs r0, 0x8 + bl FreeSpritePaletteByTag + movs r0, 0x3 + bl FreeSpritePaletteByTag + bl sub_81CA094 + bl sub_81CA698 + pop {r0} + bx r0 + thumb_func_end sub_81C9FEC + + thumb_func_start sub_81CA02C +sub_81CA02C: @ 81CA02C + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r0, 0x2 + bl sub_81C763C + movs r2, 0 + adds r0, 0x2C + mov r8, r0 +_081CA03E: + movs r4, 0 + lsls r0, r2, 2 + lsls r1, r2, 4 + adds r7, r2, 0x1 + adds r0, r2 + lsls r0, 18 + movs r2, 0xA0 + lsls r2, 14 + adds r5, r0, r2 + mov r0, r8 + adds r6, r1, r0 +_081CA054: + ldr r0, =gUnknown_0862034C + movs r1, 0x8C + asrs r2, r5, 16 + movs r3, 0x3 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, =gSprites + adds r1, r0 + stm r6!, {r1} + lsls r0, r4, 5 + strh r0, [r1, 0x24] + adds r4, 0x1 + cmp r4, 0x3 + ble _081CA054 + adds r2, r7, 0 + cmp r2, 0x5 + ble _081CA03E + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA02C + + thumb_func_start sub_81CA094 +sub_81CA094: @ 81CA094 + push {r4-r7,lr} + movs r0, 0x2 + bl sub_81C763C + movs r1, 0 + adds r7, r0, 0 + adds r7, 0x2C +_081CA0A2: + lsls r0, r1, 4 + adds r6, r1, 0x1 + adds r4, r0, r7 + movs r5, 0x3 +_081CA0AA: + ldr r0, [r4] + bl FreeSpriteOamMatrix + ldm r4!, {r0} + bl DestroySprite + subs r5, 0x1 + cmp r5, 0 + bge _081CA0AA + adds r1, r6, 0 + cmp r1, 0x5 + ble _081CA0A2 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81CA094 + + thumb_func_start sub_81CA0C8 +sub_81CA0C8: @ 81CA0C8 + push {lr} + bl sub_81C9894 + lsls r2, r0, 3 + subs r2, r0 + lsls r2, 2 + ldr r1, =gUnknown_08620244 + adds r0, r2, r1 + subs r1, 0x4 + adds r2, r1 + ldrh r1, [r2] + ldrh r2, [r2, 0x2] + bl sub_81CA0EC + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA0C8 + + thumb_func_start sub_81CA0EC +sub_81CA0EC: @ 81CA0EC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + adds r6, r0, 0 + str r1, [sp, 0x14] + str r2, [sp] + movs r0, 0x2 + bl sub_81C763C + mov r10, r0 + movs r0, 0x3 + bl GetSpriteTileStartByTag + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x4] + movs r1, 0 +_081CA114: + ldr r0, [r6] + cmp r0, 0 + beq _081CA1B0 + movs r5, 0 + lsls r2, r1, 4 + mov r0, r10 + adds r0, 0x2C + lsls r3, r1, 2 + mov r9, r3 + movs r4, 0x10 + add r4, r10 + mov r8, r4 + adds r7, r6, 0x4 + str r7, [sp, 0xC] + ldr r3, [sp, 0x14] + ldr r4, [sp] + adds r3, r4 + str r3, [sp, 0x8] + adds r1, 0x1 + str r1, [sp, 0x10] + adds r4, r2, r0 +_081CA13E: + ldr r3, [r4] + ldr r0, [r6] + ldrh r2, [r0] + ldr r7, [sp, 0x4] + adds r2, r7 + lsls r0, r5, 3 + adds r2, r0 + ldr r1, =0x000003ff + adds r0, r1, 0 + ands r2, r0 + ldrh r0, [r3, 0x4] + ldr r7, =0xfffffc00 + adds r1, r7, 0 + ands r0, r1 + orrs r0, r2 + strh r0, [r3, 0x4] + ldr r0, [r6] + ldrh r0, [r0, 0x2] + adds r0, 0x4 + lsls r0, 16 + lsrs r0, 16 + bl IndexOfSpritePaletteTag + ldr r3, [r4] + lsls r0, 4 + ldrb r2, [r3, 0x5] + movs r1, 0xF + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x5] + ldr r2, [r4] + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r4] + mov r1, sp + ldrh r1, [r1, 0x14] + strh r1, [r0, 0x22] + ldr r1, [r4] + movs r0, 0x8C + strh r0, [r1, 0x20] + ldm r4!, {r1} + lsls r0, r5, 5 + strh r0, [r1, 0x24] + adds r5, 0x1 + cmp r5, 0x3 + ble _081CA13E + mov r1, r8 + add r1, r9 + movs r0, 0x1 + b _081CA1EC + .pool +_081CA1B0: + lsls r2, r1, 4 + mov r0, r10 + adds r0, 0x2C + lsls r3, r1, 2 + mov r9, r3 + movs r4, 0x10 + add r4, r10 + mov r8, r4 + adds r6, 0x4 + str r6, [sp, 0xC] + ldr r7, [sp, 0x14] + ldr r3, [sp] + adds r7, r3 + str r7, [sp, 0x8] + adds r1, 0x1 + str r1, [sp, 0x10] + movs r3, 0x4 + adds r2, r0 + movs r5, 0x3 +_081CA1D6: + ldm r2!, {r1} + adds r1, 0x3E + ldrb r0, [r1] + orrs r0, r3 + strb r0, [r1] + subs r5, 0x1 + cmp r5, 0 + bge _081CA1D6 + mov r1, r8 + add r1, r9 + movs r0, 0 +_081CA1EC: + str r0, [r1] + ldr r6, [sp, 0xC] + ldr r4, [sp, 0x8] + str r4, [sp, 0x14] + ldr r1, [sp, 0x10] + cmp r1, 0x5 + ble _081CA114 + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81CA0EC + + thumb_func_start sub_81CA20C +sub_81CA20C: @ 81CA20C + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r0, 0x2 + bl sub_81C763C + adds r6, r0, 0 + bl sub_81C98A4 + mov r8, r0 + movs r7, 0 + movs r5, 0 + adds r4, r6, 0 + adds r4, 0x2C +_081CA228: + lsls r0, r5, 2 + adds r1, r6, 0 + adds r1, 0x10 + adds r1, r0 + ldr r0, [r1] + cmp r0, 0 + beq _081CA25C + adds r0, r7, 0 + adds r7, 0x1 + cmp r0, r8 + bne _081CA244 + movs r2, 0x82 + strb r5, [r6, 0xB] + b _081CA246 +_081CA244: + movs r2, 0x8C +_081CA246: + adds r0, r4, 0 + movs r1, 0x80 + lsls r1, 1 + movs r3, 0xC + bl sub_81CA35C + adds r0, r4, 0 + movs r1, 0 + bl sub_81CA448 + b _081CA264 +_081CA25C: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81CA448 +_081CA264: + adds r4, 0x10 + adds r5, 0x1 + cmp r5, 0x5 + ble _081CA228 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81CA20C + + thumb_func_start sub_81CA278 +sub_81CA278: @ 81CA278 + push {r4,r5,lr} + movs r0, 0x2 + bl sub_81C763C + adds r4, r0, 0 + bl sub_81C98A4 + adds r3, r0, 0 + movs r2, 0 + movs r5, 0 + ldr r0, [r4, 0x10] + cmp r0, 0 + beq _081CA298 + cmp r5, r3 + beq _081CA2B2 +_081CA296: + adds r5, 0x1 +_081CA298: + adds r2, 0x1 + cmp r2, 0x5 + bgt _081CA2B2 + lsls r0, r2, 2 + adds r1, r4, 0 + adds r1, 0x10 + adds r1, r0 + ldr r0, [r1] + cmp r0, 0 + beq _081CA298 + cmp r5, r3 + bne _081CA296 + adds r5, r2, 0 +_081CA2B2: + ldrb r0, [r4, 0xB] + lsls r0, 4 + adds r0, 0x2C + adds r0, r4, r0 + movs r1, 0x82 + movs r2, 0x8C + movs r3, 0x4 + bl sub_81CA35C + lsls r0, r5, 4 + adds r0, 0x2C + adds r0, r4, r0 + movs r1, 0x8C + movs r2, 0x82 + movs r3, 0x4 + bl sub_81CA35C + strb r5, [r4, 0xB] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81CA278 + + thumb_func_start sub_81CA2DC +sub_81CA2DC: @ 81CA2DC + push {r4-r6,lr} + movs r0, 0x2 + bl sub_81C763C + adds r6, r0, 0 + movs r5, 0 + adds r4, r6, 0 + adds r4, 0x2C +_081CA2EC: + lsls r0, r5, 2 + adds r1, r6, 0 + adds r1, 0x10 + adds r1, r0 + ldr r0, [r1] + cmp r0, 0 + beq _081CA316 + ldrb r0, [r6, 0xB] + cmp r0, r5 + beq _081CA310 + adds r0, r4, 0 + movs r1, 0x8C + movs r2, 0x80 + lsls r2, 1 + movs r3, 0x8 + bl sub_81CA35C + b _081CA316 +_081CA310: + adds r0, r4, 0 + bl sub_81CA3B4 +_081CA316: + adds r4, 0x10 + adds r5, 0x1 + cmp r5, 0x5 + ble _081CA2EC + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81CA2DC + + thumb_func_start sub_81CA324 +sub_81CA324: @ 81CA324 + push {r4,lr} + movs r0, 0x2 + bl sub_81C763C + adds r3, r0, 0 + movs r2, 0 + ldr r4, =SpriteCallbackDummy + adds r1, r3, 0 + adds r1, 0x2C +_081CA336: + ldr r0, [r1] + ldr r0, [r0, 0x1C] + cmp r0, r4 + bne _081CA354 + adds r1, 0x10 + adds r2, 0x1 + cmp r2, 0x5 + ble _081CA336 + ldrb r0, [r3, 0xC] + cmp r0, 0 + bne _081CA354 + movs r0, 0 + b _081CA356 + .pool +_081CA354: + movs r0, 0x1 +_081CA356: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CA324 + + thumb_func_start sub_81CA35C +sub_81CA35C: @ 81CA35C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r4, r0, 0 + adds r5, r1, 0 + mov r9, r2 + adds r6, r3, 0 + ldr r0, =sub_81CA474 + mov r8, r0 + subs r0, r2, r5 + lsls r0, 4 + adds r1, r6, 0 + bl __divsi3 + adds r3, r0, 0 + movs r1, 0x3 + lsls r2, r5, 4 +_081CA380: + ldr r0, [r4] + strh r5, [r0, 0x20] + ldr r0, [r4] + strh r6, [r0, 0x2E] + ldr r0, [r4] + strh r3, [r0, 0x30] + ldr r0, [r4] + strh r2, [r0, 0x32] + ldr r0, [r4] + mov r7, r9 + strh r7, [r0, 0x3C] + ldm r4!, {r0} + mov r7, r8 + str r7, [r0, 0x1C] + subs r1, 0x1 + cmp r1, 0 + bge _081CA380 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA35C + + thumb_func_start sub_81CA3B4 +sub_81CA3B4: @ 81CA3B4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r0, 0 + movs r0, 0x2 + bl sub_81C763C + adds r7, r0, 0 + movs r5, 0 + mov r8, r5 +_081CA3C8: + ldr r2, [r4] + ldrb r1, [r2, 0x1] + movs r3, 0xD + negs r3, r3 + adds r0, r3, 0 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r2, 0x1] + ldr r2, [r4] + ldrb r0, [r2, 0x1] + movs r1, 0x3 + orrs r0, r1 + strb r0, [r2, 0x1] + ldr r1, [r4] + ldr r0, =sub_81CA4AC + str r0, [r1, 0x1C] + movs r6, 0x8 + strh r6, [r1, 0x2E] + ldr r0, [r4] + mov r1, r8 + strh r1, [r0, 0x30] + ldr r0, [r4] + strh r5, [r0, 0x3C] + ldr r0, [r4] + bl InitSpriteAffineAnim + ldm r4!, {r0} + movs r1, 0 + bl StartSpriteAffineAnim + adds r5, 0x1 + cmp r5, 0x3 + ble _081CA3C8 + movs r0, 0x52 + movs r1, 0x10 + bl SetGpuReg + ldr r0, =sub_81CA580 + movs r1, 0x3 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r6, [r1, 0x8] + ldrb r0, [r7, 0xC] + adds r0, 0x1 + strb r0, [r7, 0xC] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA3B4 + + thumb_func_start sub_81CA448 +sub_81CA448: @ 81CA448 + push {r4-r6,lr} + adds r5, r0, 0 + movs r0, 0x1 + ands r1, r0 + lsls r4, r1, 2 + movs r6, 0x5 + negs r6, r6 + movs r3, 0x3 +_081CA458: + ldm r5!, {r0} + adds r0, 0x3E + ldrb r2, [r0] + adds r1, r6, 0 + ands r1, r2 + orrs r1, r4 + strb r1, [r0] + subs r3, 0x1 + cmp r3, 0 + bge _081CA458 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81CA448 + + thumb_func_start sub_81CA474 +sub_81CA474: @ 81CA474 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + subs r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _081CA49A + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + lsls r0, 16 + asrs r0, 20 + strh r0, [r2, 0x20] + b _081CA4A2 +_081CA49A: + ldrh r0, [r2, 0x3C] + strh r0, [r2, 0x20] + ldr r0, =SpriteCallbackDummy + str r0, [r2, 0x1C] +_081CA4A2: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA474 + + thumb_func_start sub_81CA4AC +sub_81CA4AC: @ 81CA4AC + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _081CA574 + movs r0, 0x30 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _081CA4E2 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + movs r0, 0x80 + lsls r0, 1 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + strh r5, [r4, 0x24] + b _081CA578 +_081CA4E2: + ldrh r0, [r4, 0x32] + adds r0, 0x10 + strh r0, [r4, 0x32] + movs r2, 0x32 + ldrsh r0, [r4, r2] + asrs r1, r0, 3 + adds r0, r1, 0 + subs r0, 0x20 + lsrs r1, r0, 31 + adds r0, r1 + asrs r1, r0, 1 + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0x1 + beq _081CA518 + cmp r0, 0x1 + bgt _081CA50A + cmp r0, 0 + beq _081CA514 + b _081CA526 +_081CA50A: + cmp r0, 0x2 + beq _081CA51C + cmp r0, 0x3 + beq _081CA520 + b _081CA526 +_081CA514: + negs r1, r1 + b _081CA520 +_081CA518: + negs r0, r1 + b _081CA524 +_081CA51C: + strh r1, [r4, 0x24] + b _081CA526 +_081CA520: + lsls r0, r1, 1 + adds r0, r1 +_081CA524: + strh r0, [r4, 0x24] +_081CA526: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _081CA578 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldrb r1, [r4, 0x1] + lsrs r1, 6 + ldrb r2, [r4, 0x3] + lsrs r2, 6 + adds r0, r4, 0 + movs r3, 0 + bl CalcCenterToCornerVec + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0xD + negs r1, r1 + ands r0, r1 + strb r0, [r4, 0x1] + ldr r0, =SpriteCallbackDummy + str r0, [r4, 0x1C] + b _081CA578 + .pool +_081CA574: + subs r0, r1, 0x1 + strh r0, [r4, 0x2E] +_081CA578: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81CA4AC + + thumb_func_start sub_81CA580 +sub_81CA580: @ 81CA580 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + ldrh r0, [r4] + movs r1, 0 + ldrsh r2, [r4, r1] + cmp r2, 0 + bne _081CA634 + movs r0, 0x2 + ldrsh r1, [r4, r0] + cmp r1, 0 + beq _081CA5AC + cmp r1, 0x1 + beq _081CA5CC + b _081CA638 + .pool +_081CA5AC: + movs r0, 0x10 + strh r0, [r4, 0x4] + strh r2, [r4, 0x6] + movs r1, 0xFC + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0x10 + bl SetGpuReg + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] + b _081CA638 +_081CA5CC: + ldrh r0, [r4, 0x8] + ands r1, r0 + cmp r1, 0 + beq _081CA5E4 + ldrh r0, [r4, 0x4] + subs r0, 0x3 + strh r0, [r4, 0x4] + lsls r0, 16 + cmp r0, 0 + bge _081CA5F6 + strh r2, [r4, 0x4] + b _081CA5F6 +_081CA5E4: + ldrh r0, [r4, 0x6] + adds r0, 0x3 + strh r0, [r4, 0x6] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _081CA5F6 + movs r0, 0x10 + strh r0, [r4, 0x6] +_081CA5F6: + ldrh r1, [r4, 0x6] + lsls r1, 8 + ldrh r0, [r4, 0x4] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + bne _081CA638 + movs r0, 0x2 + bl sub_81C763C + ldrb r1, [r0, 0xC] + subs r1, 0x1 + strb r1, [r0, 0xC] + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + adds r0, r5, 0 + bl DestroyTask + b _081CA638 +_081CA634: + subs r0, 0x1 + strh r0, [r4] +_081CA638: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81CA580 + + thumb_func_start sub_81CA640 +sub_81CA640: @ 81CA640 + push {r4,lr} + movs r0, 0x2 + bl sub_81C763C + adds r4, r0, 0 + ldr r0, =gUnknown_0862036C + movs r1, 0x10 + movs r2, 0x60 + movs r3, 0x4 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, =gSprites + adds r1, r0 + str r1, [r4, 0x28] + bl sub_81C98D4 + cmp r0, 0 + beq _081CA684 + ldr r1, [r4, 0x28] + ldr r0, =sub_81CA6AC + str r0, [r1, 0x1C] + b _081CA690 + .pool +_081CA684: + ldr r0, [r4, 0x28] + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_081CA690: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CA640 + + thumb_func_start sub_81CA698 +sub_81CA698: @ 81CA698 + push {lr} + movs r0, 0x2 + bl sub_81C763C + ldr r0, [r0, 0x28] + bl DestroySprite + pop {r0} + bx r0 + thumb_func_end sub_81CA698 + + thumb_func_start sub_81CA6AC +sub_81CA6AC: @ 81CA6AC + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _081CA6DA + movs r0, 0 + strh r0, [r3, 0x2E] + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_081CA6DA: + pop {r0} + bx r0 + thumb_func_end sub_81CA6AC + + thumb_func_start sub_81CA6E0 +sub_81CA6E0: @ 81CA6E0 + push {r4,lr} + movs r0, 0x2 + bl sub_81C763C + adds r4, r0, 0 + ldr r0, =gUnknown_086202CC + bl AddWindow + strh r0, [r4, 0x8] + lsls r0, 24 + lsrs r0, 24 + bl PutWindowTilemap + ldrb r0, [r4, 0x8] + movs r1, 0x66 + bl FillWindowPixelBuffer + ldrb r0, [r4, 0x8] + movs r1, 0x3 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA6E0 + + thumb_func_start sub_81CA714 +sub_81CA714: @ 81CA714 + push {r4-r6,lr} + sub sp, 0xC + movs r0, 0x2 + bl sub_81C763C + adds r5, r0, 0 + bl sub_81C98B4 + ldr r1, =gUnknown_086202D4 + lsls r0, 2 + adds r0, r1 + ldr r6, [r0] + movs r2, 0x1 + negs r2, r2 + movs r0, 0x1 + adds r1, r6, 0 + bl GetStringWidth + adds r4, r0, 0 + ldrb r0, [r5, 0x8] + movs r1, 0x66 + bl FillWindowPixelBuffer + ldrb r0, [r5, 0x8] + movs r2, 0xC0 + subs r2, r4 + lsrs r2, 1 + lsls r2, 24 + lsrs r2, 24 + ldr r1, =gUnknown_0862030C + str r1, [sp] + movs r1, 0 + str r1, [sp, 0x4] + str r6, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x1 + bl box_print + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA714 + + thumb_func_start sub_81CA770 +sub_81CA770: @ 81CA770 + push {r4-r6,lr} + sub sp, 0xC + movs r0, 0x2 + bl sub_81C763C + adds r5, r0, 0 + ldr r6, =gUnknown_085EBD4A + movs r2, 0x1 + negs r2, r2 + movs r0, 0x1 + adds r1, r6, 0 + bl GetStringWidth + adds r4, r0, 0 + ldrb r0, [r5, 0x8] + movs r1, 0x66 + bl FillWindowPixelBuffer + ldrb r0, [r5, 0x8] + movs r2, 0xC0 + subs r2, r4 + lsrs r2, 1 + lsls r2, 24 + lsrs r2, 24 + ldr r1, =gUnknown_0862030F + str r1, [sp] + movs r1, 0 + str r1, [sp, 0x4] + str r6, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x1 + bl box_print + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA770 + + thumb_func_start sub_81CA7C4 +sub_81CA7C4: @ 81CA7C4 + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_81CA7C4 + + thumb_func_start sub_81CA7D4 +sub_81CA7D4: @ 81CA7D4 + push {r4,lr} + movs r0, 0x2 + bl sub_81C763C + adds r4, r0, 0 + ldr r0, =sub_81CA808 + movs r1, 0x2 + bl CreateTask + strb r0, [r4, 0xA] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA7D4 + + thumb_func_start sub_81CA7F4 +sub_81CA7F4: @ 81CA7F4 + push {lr} + movs r0, 0x2 + bl sub_81C763C + ldrb r0, [r0, 0xA] + bl DestroyTask + pop {r0} + bx r0 + thumb_func_end sub_81CA7F4 + + thumb_func_start sub_81CA808 +sub_81CA808: @ 81CA808 + push {lr} + movs r0, 0x3 + movs r1, 0x80 + movs r2, 0x1 + bl ChangeBgX + pop {r0} + bx r0 + thumb_func_end sub_81CA808 + + thumb_func_start sub_81CA818 +sub_81CA818: @ 81CA818 + push {r4,r5,lr} + ldr r0, =sub_81CA8B0 + movs r1, 0x3 + bl CreateTask + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, =gUnknown_0861FC7A + adds r0, r4, 0 + movs r1, 0x1 + adds r2, r5, 0 + bl SetWordTaskArg + adds r5, 0xC + adds r0, r4, 0 + movs r1, 0x3 + adds r2, r5, 0 + bl SetWordTaskArg + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA818 + + thumb_func_start sub_81CA850 +sub_81CA850: @ 81CA850 + push {lr} + ldr r0, =gUnknown_0861FC86 + movs r1, 0x31 + movs r2, 0x4 + bl sub_81C7944 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA850 + + thumb_func_start sub_81CA864 +sub_81CA864: @ 81CA864 + push {r4,r5,lr} + ldr r0, =sub_81CA8B0 + movs r1, 0x3 + bl CreateTask + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, =gUnknown_0861FC86 + adds r0, r4, 0 + movs r1, 0x1 + adds r2, r5, 0 + bl SetWordTaskArg + subs r5, 0xC + adds r0, r4, 0 + movs r1, 0x3 + adds r2, r5, 0 + bl SetWordTaskArg + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA864 + + thumb_func_start sub_81CA89C +sub_81CA89C: @ 81CA89C + push {lr} + ldr r0, =sub_81CA8B0 + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CA89C + + thumb_func_start sub_81CA8B0 +sub_81CA8B0: @ 81CA8B0 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r6, r0, 24 + lsls r4, r6, 2 + adds r4, r6 + lsls r4, 3 + ldr r0, =gTasks + 0x8 + adds r4, r0 + adds r0, r6, 0 + movs r1, 0x1 + bl GetWordTaskArg + adds r5, r0, 0 + adds r0, r6, 0 + movs r1, 0x3 + bl GetWordTaskArg + adds r1, r0, 0 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + lsls r0, 16 + asrs r0, 16 + str r0, [sp] + add r0, sp, 0x8 + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r2, 0x2 + movs r3, 0xC + bl sub_81C79BC + add r0, sp, 0x8 + movs r1, 0x31 + movs r2, 0x4 + bl LoadPalette + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0xC + bne _081CA908 + adds r0, r6, 0 + bl DestroyTask +_081CA908: + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA8B0 + + thumb_func_start sub_81CA914 +sub_81CA914: @ 81CA914 + push {lr} + bl TransferPlttBuffer + bl LoadOam + bl ProcessSpriteCopyRequests + bl sub_80BA0A8 + pop {r0} + bx r0 + thumb_func_end sub_81CA914 + + thumb_func_start titlescreen_0 +titlescreen_0: @ 81CA92C + push {lr} + movs r0, 0x50 + movs r1, 0x90 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 6 + movs r0, 0 + bl SetGpuRegBits + movs r0, 0x48 + movs r1, 0x3F + bl SetGpuRegBits + movs r0, 0x4A + movs r1, 0x1F + bl SetGpuRegBits + movs r0, 0x44 + movs r1, 0xA0 + bl SetGpuRegBits + bl remove_some_task + bl sub_81CAA3C + ldr r2, =gUnknown_08620384 + ldr r0, [r2] + ldr r1, [r2, 0x4] + ldr r2, [r2, 0x8] + bl sub_80BA038 + ldr r0, =sub_81CA914 + bl c3args_set_0toR1_1to0 + ldr r0, =sub_81CA9EC + movs r1, 0x3 + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end titlescreen_0 + + thumb_func_start sub_81CA994 +sub_81CA994: @ 81CA994 + push {lr} + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 6 + movs r0, 0 + bl ClearGpuRegBits + bl remove_some_task + ldr r0, =sub_81CA9EC + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + bl sub_81C760C + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA994 + + thumb_func_start sub_81CA9C8 +sub_81CA9C8: @ 81CA9C8 + push {lr} + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + pop {r0} + bx r0 + thumb_func_end sub_81CA9C8 + + thumb_func_start sub_81CA9D8 +sub_81CA9D8: @ 81CA9D8 + push {lr} + bl sub_81CAA3C + movs r0, 0x50 + movs r1, 0x90 + bl SetGpuReg + pop {r0} + bx r0 + thumb_func_end sub_81CA9D8 + + thumb_func_start sub_81CA9EC +sub_81CA9EC: @ 81CA9EC + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r2, r1, r0 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + lsls r0, 16 + cmp r0, 0 + ble _081CAA30 + movs r0, 0 + strh r0, [r2] + ldrh r0, [r2, 0x2] + adds r0, 0x3 + movs r1, 0x7F + ands r0, r1 + strh r0, [r2, 0x2] + ldr r1, =gSineTable + movs r3, 0x2 + ldrsh r0, [r2, r3] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r1, 16 + asrs r1, 21 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x54 + bl SetGpuReg +_081CAA30: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA9EC + + thumb_func_start sub_81CAA3C +sub_81CAA3C: @ 81CAA3C + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x8 + bl sub_81C9894 + adds r4, r0, 0 + bl sub_81C98A4 + ldr r2, =gUnknown_08620240 + lsls r1, r4, 3 + subs r1, r4 + lsls r1, 2 + adds r1, r2 + ldrh r2, [r1, 0x2] + adds r4, r2, 0 + muls r4, r0 + ldrh r1, [r1] + adds r4, r1 + subs r4, 0x8 + mov r0, sp + movs r6, 0 + strh r6, [r0] + ldr r5, =gUnknown_02038C28 + ldr r0, =0x010000a0 + mov r8, r0 + mov r0, sp + adds r1, r5, 0 + mov r2, r8 + bl CpuSet + mov r0, sp + adds r0, 0x2 + strh r6, [r0] + movs r1, 0xF0 + lsls r1, 3 + adds r1, r5 + mov r9, r1 + mov r2, r8 + bl CpuSet + add r0, sp, 0x4 + ldr r1, =0x000072f0 + adds r6, r1, 0 + strh r6, [r0] + lsls r4, 1 + adds r5, r4, r5 + ldr r1, =0x01000010 + mov r8, r1 + adds r1, r5, 0 + mov r2, r8 + bl CpuSet + mov r0, sp + adds r0, 0x6 + strh r6, [r0] + add r4, r9 + adds r1, r4, 0 + mov r2, r8 + bl CpuSet + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CAA3C + + thumb_func_start sub_81CAADC +sub_81CAADC: @ 81CAADC + push {lr} + bl sub_81CA9C8 + pop {r0} + bx r0 + thumb_func_end sub_81CAADC + + thumb_func_start sub_81CAAE8 +sub_81CAAE8: @ 81CAAE8 + push {r4,lr} + movs r1, 0xD4 + lsls r1, 1 + movs r0, 0x5 + bl sub_81C761C + adds r4, r0, 0 + cmp r4, 0 + beq _081CAB1C + ldr r0, =sub_81CAB44 + str r0, [r4, 0x18] + movs r0, 0 + strh r0, [r4, 0x8] + str r0, [r4, 0x10] + ldr r0, =sub_81CAD20 + movs r1, 0x1 + bl sub_81C7078 + str r0, [r4, 0x14] + movs r0, 0x1 + b _081CAB1E + .pool +_081CAB1C: + movs r0, 0 +_081CAB1E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CAAE8 + + thumb_func_start sub_81CAB24 +sub_81CAB24: @ 81CAB24 + push {lr} + movs r0, 0x5 + bl sub_81C763C + ldr r1, [r0, 0x18] + bl _call_via_r1 + pop {r1} + bx r1 + thumb_func_end sub_81CAB24 + + thumb_func_start sub_81CAB38 +sub_81CAB38: @ 81CAB38 + push {lr} + movs r0, 0x5 + bl sub_81C7650 + pop {r0} + bx r0 + thumb_func_end sub_81CAB38 + + thumb_func_start sub_81CAB44 +sub_81CAB44: @ 81CAB44 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r3, =gMain + ldrh r1, [r3, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081CAB5C + movs r0, 0x2 + b _081CABF4 + .pool +_081CAB5C: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081CAB68 + movs r0, 0x1 + b _081CABF4 +_081CAB68: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _081CAB74 + movs r0, 0x4 + b _081CABF4 +_081CAB74: + movs r0, 0x10 + ands r0, r1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0 + beq _081CAB84 + movs r0, 0x3 + b _081CABF4 +_081CAB84: + ldrh r1, [r3, 0x2E] + movs r5, 0x1 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _081CABD0 + ldr r0, =sub_81CAC04 + str r0, [r4, 0x18] + strh r2, [r4] + bl sub_81C875C + lsls r0, 2 + adds r1, r4, r0 + ldrb r0, [r1, 0x1C] + cmp r0, 0 + beq _081CABAE + ldrh r0, [r1, 0x1E] + bl sub_81D17E8 + cmp r0, 0 + beq _081CABC0 +_081CABAE: + ldr r0, =gUnknown_0862250A + str r0, [r4, 0x4] + movs r0, 0x2 + strh r0, [r4, 0x2] + b _081CABC6 + .pool +_081CABC0: + ldr r0, =gUnknown_08622508 + str r0, [r4, 0x4] + strh r5, [r4, 0x2] +_081CABC6: + movs r0, 0x5 + b _081CABF4 + .pool +_081CABD0: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081CABF2 + bl sub_81C767C + cmp r0, 0x1 + beq _081CABEC + ldr r0, =sub_81CABFC + str r0, [r4, 0x18] + movs r0, 0xF + b _081CABF4 + .pool +_081CABEC: + movs r0, 0x20 + bl PlaySE +_081CABF2: + movs r0, 0 +_081CABF4: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CAB44 + + thumb_func_start sub_81CABFC +sub_81CABFC: @ 81CABFC + ldr r0, =0x000186a4 + bx lr + .pool + thumb_func_end sub_81CABFC + + thumb_func_start sub_81CAC04 +sub_81CAC04: @ 81CAC04 + push {r4,lr} + adds r4, r0, 0 + ldr r2, =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081CAC24 + ldrh r0, [r4] + cmp r0, 0 + beq _081CAC24 + subs r0, 0x1 + b _081CAC38 + .pool +_081CAC24: + ldrh r1, [r2, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081CAC3E + ldrh r0, [r4] + ldrh r1, [r4, 0x2] + cmp r0, r1 + bcs _081CAC3E + adds r0, 0x1 +_081CAC38: + strh r0, [r4] + movs r0, 0x6 + b _081CACAC +_081CAC3E: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081CAC98 + ldrh r1, [r4] + ldr r0, [r4, 0x4] + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _081CAC8C + cmp r0, 0x1 + bgt _081CAC5E + cmp r0, 0 + beq _081CAC64 + b _081CAC98 +_081CAC5E: + cmp r0, 0x2 + bne _081CAC98 + b _081CACA6 +_081CAC64: + bl sub_81C767C + cmp r0, 0x1 + bne _081CAC72 + movs r0, 0x2 + bl sub_81C7688 +_081CAC72: + ldr r0, =sub_81CACF8 + str r0, [r4, 0x18] + bl sub_81CB1D0 + cmp r0, 0 + beq _081CAC88 + movs r0, 0x9 + b _081CACAC + .pool +_081CAC88: + movs r0, 0x8 + b _081CACAC +_081CAC8C: + ldr r0, =sub_81CACB8 + str r0, [r4, 0x18] + movs r0, 0xB + b _081CACAC + .pool +_081CAC98: + ldrh r1, [r2, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _081CACA6 + movs r0, 0 + b _081CACAC +_081CACA6: + ldr r0, =sub_81CAB44 + str r0, [r4, 0x18] + movs r0, 0x7 +_081CACAC: + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CAC04 + + thumb_func_start sub_81CACB8 +sub_81CACB8: @ 81CACB8 + push {lr} + adds r3, r0, 0 + ldr r2, =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081CACD0 + movs r0, 0xC + b _081CACF0 + .pool +_081CACD0: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081CACDC + movs r0, 0xD + b _081CACF0 +_081CACDC: + ldrh r1, [r2, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _081CACEA + movs r0, 0 + b _081CACF0 +_081CACEA: + ldr r0, =sub_81CAB44 + str r0, [r3, 0x18] + movs r0, 0xE +_081CACF0: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CACB8 + + thumb_func_start sub_81CACF8 +sub_81CACF8: @ 81CACF8 + push {lr} + adds r2, r0, 0 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _081CAD10 + movs r0, 0 + b _081CAD16 + .pool +_081CAD10: + ldr r0, =sub_81CAB44 + str r0, [r2, 0x18] + movs r0, 0xA +_081CAD16: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CACF8 + + thumb_func_start sub_81CAD20 +sub_81CAD20: @ 81CAD20 + push {r4-r7,lr} + adds r5, r0, 0 + movs r0, 0x5 + bl sub_81C763C + adds r4, r0, 0 + cmp r5, 0x1 + beq _081CAD4C + cmp r5, 0x1 + bgt _081CAD3A + cmp r5, 0 + beq _081CAD44 + b _081CAE00 +_081CAD3A: + cmp r5, 0x2 + beq _081CAD9C + cmp r5, 0x3 + beq _081CADFC + b _081CAE00 +_081CAD44: + strh r5, [r4, 0x8] + strh r5, [r4, 0xA] +_081CAD48: + movs r0, 0x1 + b _081CAE02 +_081CAD4C: + movs r6, 0 + ldrh r5, [r4, 0x8] +_081CAD50: + adds r0, r5, 0 + bl sub_81D15F4 + cmp r0, 0 + beq _081CAD80 + ldrh r0, [r4, 0xA] + lsls r0, 2 + adds r0, r4, r0 + strh r5, [r0, 0x1E] + ldrh r0, [r4, 0xA] + lsls r0, 2 + adds r0, r4, r0 + movs r1, 0x1 + strb r1, [r0, 0x1C] + adds r0, r5, 0 + bl sub_81D16DC + ldrh r1, [r4, 0xA] + lsls r1, 2 + adds r1, r4, r1 + strb r0, [r1, 0x1D] + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] +_081CAD80: + ldrh r0, [r4, 0x8] + adds r1, r0, 0x1 + movs r2, 0 + strh r1, [r4, 0x8] + lsls r0, r1, 16 + lsrs r0, 16 + cmp r0, 0x14 + bhi _081CADF6 + adds r6, 0x1 + adds r5, 0x1 + cmp r6, 0x1D + ble _081CAD50 + movs r0, 0x3 + b _081CAE02 +_081CAD9C: + movs r6, 0 + ldrh r5, [r4, 0x8] + movs r7, 0 +_081CADA2: + ldrh r0, [r4, 0x8] + bl sub_81D1BF8 + cmp r0, 0 + bne _081CADDC + ldrh r0, [r4, 0x8] + bl sub_81CAE08 + cmp r0, 0 + beq _081CADDC + ldrh r0, [r4, 0xA] + lsls r0, 2 + adds r0, r4, r0 + ldrh r1, [r4, 0x8] + strh r1, [r0, 0x1E] + ldrh r0, [r4, 0xA] + lsls r0, 2 + adds r0, r4, r0 + strb r7, [r0, 0x1C] + adds r0, r5, 0 + bl sub_81CB0C8 + ldrh r1, [r4, 0xA] + lsls r1, 2 + adds r1, r4, r1 + strb r0, [r1, 0x1D] + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] +_081CADDC: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x4D + bhi _081CAD48 + adds r6, 0x1 + adds r5, 0x1 + cmp r6, 0x1D + ble _081CADA2 + movs r0, 0x3 + b _081CAE02 +_081CADF6: + strh r1, [r4, 0xC] + strh r2, [r4, 0x8] + b _081CAD48 +_081CADFC: + movs r0, 0x1 + str r0, [r4, 0x10] +_081CAE00: + movs r0, 0x4 +_081CAE02: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81CAD20 + + thumb_func_start sub_81CAE08 +sub_81CAE08: @ 81CAE08 + push {lr} + cmp r0, 0x4D + ble _081CAE12 + movs r0, 0 + b _081CAE24 +_081CAE12: + movs r1, 0xAE + lsls r1, 1 + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 +_081CAE24: + pop {r1} + bx r1 + thumb_func_end sub_81CAE08 + + thumb_func_start sub_81CAE28 +sub_81CAE28: @ 81CAE28 + push {lr} + movs r0, 0x5 + bl sub_81C763C + ldr r0, [r0, 0x10] + pop {r1} + bx r1 + thumb_func_end sub_81CAE28 + + thumb_func_start sub_81CAE38 +sub_81CAE38: @ 81CAE38 + push {lr} + movs r0, 0x5 + bl sub_81C763C + ldrh r0, [r0, 0xA] + pop {r1} + bx r1 + thumb_func_end sub_81CAE38 + + thumb_func_start sub_81CAE48 +sub_81CAE48: @ 81CAE48 + push {lr} + movs r0, 0x5 + bl sub_81C763C + ldrh r0, [r0, 0xC] + pop {r1} + bx r1 + thumb_func_end sub_81CAE48 + + thumb_func_start sub_81CAE58 +sub_81CAE58: @ 81CAE58 + push {lr} + movs r0, 0x5 + bl sub_81C763C + adds r1, r0, 0 + ldrh r0, [r1, 0xA] + ldrh r1, [r1, 0xC] + subs r0, r1 + pop {r1} + bx r1 + thumb_func_end sub_81CAE58 + + thumb_func_start sub_81CAE6C +sub_81CAE6C: @ 81CAE6C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x5 + bl sub_81C763C + adds r1, r0, 0 + ldrh r0, [r1, 0xC] + adds r4, r0 + ldrh r0, [r1, 0xA] + cmp r4, r0 + bge _081CAE8A + lsls r0, r4, 2 + adds r0, r1, r0 + ldrh r0, [r0, 0x1E] + b _081CAE8C +_081CAE8A: + movs r0, 0x4E +_081CAE8C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CAE6C + + thumb_func_start sub_81CAE94 +sub_81CAE94: @ 81CAE94 + push {lr} + movs r0, 0x5 + bl sub_81C763C + adds r0, 0x1C + pop {r1} + bx r1 + thumb_func_end sub_81CAE94 + + thumb_func_start sub_81CAEA4 +sub_81CAEA4: @ 81CAEA4 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x5 + bl sub_81C763C + lsls r4, 2 + adds r0, r4 + ldrb r0, [r0, 0x1D] + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CAEA4 + + thumb_func_start sub_81CAEBC +sub_81CAEBC: @ 81CAEBC + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x5 + bl sub_81C763C + lsls r1, r4, 2 + adds r1, r0, r1 + ldrb r0, [r1, 0x1C] + cmp r0, 0 + bne _081CAED4 + ldrh r4, [r1, 0x1E] + b _081CAEDC +_081CAED4: + ldrh r0, [r1, 0x1E] + bl sub_81D1854 + adds r4, r0, 0 +_081CAEDC: + cmp r4, 0x4E + beq _081CAEFC + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x000009ca + adds r0, r1 + adds r0, r4 + ldrb r1, [r0] + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + b _081CAEFE + .pool +_081CAEFC: + movs r0, 0 +_081CAEFE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CAEBC + + thumb_func_start sub_81CAF04 +sub_81CAF04: @ 81CAF04 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x5 + bl sub_81C763C + lsls r1, r4, 2 + adds r1, r0, r1 + ldrb r0, [r1, 0x1C] + cmp r0, 0 + bne _081CAF34 + ldrh r0, [r1, 0x1E] + bl sub_81D15BC + adds r4, r0, 0 + ldr r1, =gTrainers + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0, 0x3] + b _081CAF6C + .pool +_081CAF34: + ldrh r5, [r1, 0x1E] + adds r0, r5, 0 + bl sub_81D1854 + adds r4, r0, 0 + cmp r4, 0x4E + bne _081CAF58 + adds r0, r5, 0 + bl sub_81D1BD0 + adds r4, r0, 0 + ldr r0, =gTrainerPicIndices + adds r0, r4, r0 + ldrb r0, [r0] + b _081CAF6C + .pool +_081CAF58: + adds r0, r4, 0 + bl sub_81D15BC + adds r4, r0, 0 + ldr r0, =gTrainers + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrb r0, [r1, 0x3] +_081CAF6C: + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CAF04 + + thumb_func_start sub_81CAF78 +sub_81CAF78: @ 81CAF78 + push {r4-r6,lr} + adds r5, r0, 0 + adds r6, r1, 0 + movs r0, 0x5 + bl sub_81C763C + adds r4, r0, 0 + movs r0, 0 + strb r0, [r6] + ldr r0, =gUnknown_02037318 + ldrb r0, [r0, 0x17] + bl is_light_level_1_2_3_or_6 + lsls r0, 24 + cmp r0, 0 + bne _081CAFA4 + ldr r0, =gUnknown_085EEB0B + b _081CAFCE + .pool +_081CAFA4: + lsls r0, r5, 2 + adds r1, r4, r0 + ldrb r0, [r1, 0x1C] + cmp r0, 0 + bne _081CAFC4 + ldrh r0, [r1, 0x1E] + bl sub_81D15BC + ldr r1, =gStringVar4 + bl sub_81967AC + strb r0, [r6] + b _081CAFCC + .pool +_081CAFC4: + ldrh r0, [r1, 0x1E] + ldr r1, =gStringVar4 + bl sub_81D189C +_081CAFCC: + ldr r0, =gStringVar4 +_081CAFCE: + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CAF78 + + thumb_func_start sub_81CAFD8 +sub_81CAFD8: @ 81CAFD8 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + movs r0, 0x5 + bl sub_81C763C + lsls r4, 2 + adds r4, r0, r4 + ldrb r0, [r4, 0x1C] + cmp r0, 0 + beq _081CB004 + ldrh r0, [r4, 0x1E] + bl sub_81D1854 + adds r1, r0, 0 + cmp r1, 0x4E + bne _081CB006 + ldrh r0, [r4, 0x1E] + adds r1, r5, 0 + bl sub_81D1B40 + b _081CB012 +_081CB004: + ldrh r1, [r4, 0x1E] +_081CB006: + ldr r2, =gUnknown_08622028 + lsls r0, r5, 2 + lsls r1, 4 + adds r0, r1 + adds r0, r2 + ldr r0, [r0] +_081CB012: + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CAFD8 + + thumb_func_start sub_81CB01C +sub_81CB01C: @ 81CB01C + push {lr} + movs r0, 0x5 + bl sub_81C763C + ldrh r0, [r0] + pop {r1} + bx r1 + thumb_func_end sub_81CB01C + + thumb_func_start sub_81CB02C +sub_81CB02C: @ 81CB02C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x5 + bl sub_81C763C + adds r1, r0, 0 + ldrh r0, [r1, 0x2] + cmp r0, r4 + blt _081CB046 + ldr r0, [r1, 0x4] + adds r0, r4 + ldrb r0, [r0] + b _081CB048 +_081CB046: + movs r0, 0x3 +_081CB048: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CB02C + + thumb_func_start sub_81CB050 +sub_81CB050: @ 81CB050 + push {r4,lr} + sub sp, 0x8 + adds r2, r0, 0 + adds r4, r1, 0 + ldrb r0, [r2] + cmp r0, 0 + bne _081CB088 + ldrh r0, [r2, 0x2] + bl sub_81D15BC + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTrainers + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r0, 0xD + muls r0, r2 + ldr r2, =gTrainerClassNames + adds r0, r2 + str r0, [sp] + adds r1, 0x4 + str r1, [sp, 0x4] + b _081CB092 + .pool +_081CB088: + ldrh r0, [r2, 0x2] + add r2, sp, 0x4 + mov r1, sp + bl sub_81D1A78 +_081CB092: + ldr r2, [sp] + cmp r2, 0 + beq _081CB0B4 + ldr r0, [sp, 0x4] + cmp r0, 0 + beq _081CB0B4 + adds r0, r4, 0 + movs r1, 0x7 + movs r3, 0x45 + bl sub_81DB494 + ldr r2, [sp, 0x4] + movs r1, 0x7 + movs r3, 0x33 + bl sub_81DB494 + b _081CB0C0 +_081CB0B4: + adds r0, r4, 0 + movs r1, 0x7 + movs r2, 0 + movs r3, 0x78 + bl sub_81DB494 +_081CB0C0: + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CB050 + + thumb_func_start sub_81CB0C8 +sub_81CB0C8: @ 81CB0C8 + push {lr} + ldr r1, =gUnknown_085500A4 + lsls r0, 4 + adds r0, r1 + ldrh r2, [r0, 0xA] + ldrh r1, [r0, 0xC] + adds r0, r2, 0 + bl get_mapheader_by_bank_and_number + ldrb r0, [r0, 0x14] + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CB0C8 + + thumb_func_start sub_81CB0E4 +sub_81CB0E4: @ 81CB0E4 + push {r4-r7,lr} + adds r5, r0, 0 + movs r0, 0x5 + bl sub_81C763C + adds r7, r0, 0 + movs r6, 0x1 + adds r5, 0x1 + ldrh r0, [r7, 0xA] + cmp r5, r0 + bge _081CB120 + lsls r0, r5, 2 + adds r0, 0x1C + adds r4, r0, r7 +_081CB100: + ldrb r0, [r4] + cmp r0, 0 + beq _081CB110 + ldrh r0, [r4, 0x2] + bl sub_81D17E8 + cmp r0, 0 + beq _081CB114 +_081CB110: + adds r0, r6, 0 + b _081CB122 +_081CB114: + adds r6, 0x1 + adds r4, 0x4 + adds r5, 0x1 + ldrh r0, [r7, 0xA] + cmp r5, r0 + blt _081CB100 +_081CB120: + movs r0, 0 +_081CB122: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81CB0E4 + + thumb_func_start sub_81CB128 +sub_81CB128: @ 81CB128 + push {r4-r6,lr} + adds r5, r0, 0 + movs r0, 0x5 + bl sub_81C763C + adds r1, r0, 0 + movs r6, 0x1 + negs r6, r6 + subs r5, 0x1 + cmp r5, 0 + blt _081CB162 + lsls r0, r5, 2 + adds r0, 0x1C + adds r4, r0, r1 +_081CB144: + ldrb r0, [r4] + cmp r0, 0 + beq _081CB154 + ldrh r0, [r4, 0x2] + bl sub_81D17E8 + cmp r0, 0 + beq _081CB158 +_081CB154: + adds r0, r6, 0 + b _081CB164 +_081CB158: + subs r6, 0x1 + subs r4, 0x4 + subs r5, 0x1 + cmp r5, 0 + bge _081CB144 +_081CB162: + movs r0, 0 +_081CB164: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81CB128 + + thumb_func_start sub_81CB16C +sub_81CB16C: @ 81CB16C + push {r4,lr} + movs r4, 0 +_081CB170: + adds r0, r4, 0 + bl sub_81CAE08 + cmp r0, 0 + beq _081CB18A + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x000009ca + adds r0, r1 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _081CB1B2 +_081CB18A: + adds r4, 0x1 + cmp r4, 0x4D + ble _081CB170 + movs r4, 0 +_081CB192: + adds r0, r4, 0 + bl sub_81D15F4 + cmp r0, 0 + beq _081CB1C0 + adds r0, r4, 0 + bl sub_81D1854 + ldr r1, =gSaveBlock1Ptr + ldr r1, [r1] + ldr r2, =0x000009ca + adds r1, r2 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _081CB1C0 +_081CB1B2: + movs r0, 0x1 + b _081CB1C8 + .pool +_081CB1C0: + adds r4, 0x1 + cmp r4, 0x14 + ble _081CB192 + movs r0, 0 +_081CB1C8: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CB16C + + thumb_func_start sub_81CB1D0 +sub_81CB1D0: @ 81CB1D0 + push {r4,lr} + movs r0, 0x5 + bl sub_81C763C + adds r4, r0, 0 + bl sub_81C875C + adds r1, r0, 0 + lsls r0, r1, 2 + adds r4, r0 + ldrb r0, [r4, 0x1C] + cmp r0, 0 + bne _081CB218 + adds r0, r1, 0 + bl sub_81CAEA4 + ldr r1, =gUnknown_02037318 + lsls r0, 16 + lsrs r0, 16 + ldrb r1, [r1, 0x14] + cmp r0, r1 + bne _081CB258 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x000009ca + adds r0, r1 + ldrh r4, [r4, 0x1E] + adds r0, r4 + ldrb r0, [r0] + b _081CB246 + .pool +_081CB218: + ldrh r0, [r4, 0x1E] + cmp r0, 0xB + bne _081CB258 + adds r0, r1, 0 + bl sub_81CAEA4 + ldr r1, =gUnknown_02037318 + lsls r0, 16 + lsrs r0, 16 + ldrb r1, [r1, 0x14] + cmp r0, r1 + bne _081CB258 + ldr r0, =0x0000086b + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081CB258 + movs r0, 0x5B + bl FlagGet + lsls r0, 24 +_081CB246: + cmp r0, 0 + bne _081CB258 + movs r0, 0x1 + b _081CB25A + .pool +_081CB258: + movs r0, 0 +_081CB25A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CB1D0 + + thumb_func_start sub_81CB260 +sub_81CB260: @ 81CB260 + push {r4,lr} + ldr r1, =0x00002048 + movs r0, 0x6 + bl sub_81C761C + adds r4, r0, 0 + cmp r4, 0 + beq _081CB294 + movs r0, 0 + strb r0, [r4, 0x19] + ldr r0, =sub_81CB324 + movs r1, 0x1 + bl sub_81C7078 + str r0, [r4, 0x4] + ldr r0, =sub_81CB310 + str r0, [r4] + movs r0, 0x1 + b _081CB296 + .pool +_081CB294: + movs r0, 0 +_081CB296: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CB260 + + thumb_func_start sub_81CB29C +sub_81CB29C: @ 81CB29C + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x6 + bl sub_81C763C + adds r5, r0, 0 + ldr r0, =gUnknown_08622798 + lsls r4, 2 + adds r4, r0 + ldr r0, [r4] + movs r1, 0x1 + bl sub_81C7078 + str r0, [r5, 0x4] + ldr r0, =sub_81CB310 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CB29C + + thumb_func_start sub_81CB2CC +sub_81CB2CC: @ 81CB2CC + push {lr} + movs r0, 0x6 + bl sub_81C763C + ldr r0, [r0] + bl _call_via_r0 + pop {r1} + bx r1 + thumb_func_end sub_81CB2CC + + thumb_func_start sub_81CB2E0 +sub_81CB2E0: @ 81CB2E0 + push {r4,lr} + movs r0, 0x6 + bl sub_81C763C + adds r4, r0, 0 + bl sub_81CC2B4 + bl sub_81CBC1C + ldrb r0, [r4, 0x12] + bl RemoveWindow + ldrb r0, [r4, 0x10] + bl RemoveWindow + ldrb r0, [r4, 0x14] + bl RemoveWindow + movs r0, 0x6 + bl sub_81C7650 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CB2E0 + + thumb_func_start sub_81CB310 +sub_81CB310: @ 81CB310 + push {lr} + movs r0, 0x6 + bl sub_81C763C + ldr r0, [r0, 0x4] + bl sub_81C70D8 + pop {r1} + bx r1 + thumb_func_end sub_81CB310 + + thumb_func_start sub_81CB324 +sub_81CB324: @ 81CB324 + push {r4,r5,lr} + sub sp, 0x8 + adds r4, r0, 0 + movs r0, 0x6 + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x7 + bls _081CB338 + b _081CB504 +_081CB338: + lsls r0, r4, 2 + ldr r1, =_081CB348 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081CB348: + .4byte _081CB368 + .4byte _081CB3D4 + .4byte _081CB424 + .4byte _081CB468 + .4byte _081CB482 + .4byte _081CB494 + .4byte _081CB4A6 + .4byte _081CB4EA +_081CB368: + ldr r0, =gUnknown_0862278C + movs r1, 0x3 + bl sub_81C7B54 + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + ldr r1, =gUnknown_08622530 + movs r0, 0 + str r0, [sp] + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r0, =0x00001024 + adds r1, r5, r0 + movs r0, 0x2 + bl SetBgTilemapBuffer + ldr r1, =gUnknown_086225D4 + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer + movs r0, 0x2 + bl CopyBgTilemapBufferToVram + ldr r0, =gUnknown_08622510 + movs r1, 0x20 + movs r2, 0x20 + bl sub_81C7944 + movs r0, 0x2 + b _081CB418 + .pool +_081CB3D4: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + beq _081CB3E0 + b _081CB4FA +_081CB3E0: + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_8199DF0 + adds r1, r5, 0 + adds r1, 0x24 + movs r0, 0x1 + bl SetBgTilemapBuffer + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x20 + str r0, [sp] + movs r0, 0x14 + str r0, [sp, 0x4] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect_Palette0 + ldr r0, =gUnknown_086226E0 + movs r1, 0x10 + movs r2, 0x20 + bl sub_81C7944 + movs r0, 0x1 +_081CB418: + bl CopyBgTilemapBufferToVram + movs r0, 0 + b _081CB506 + .pool +_081CB424: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _081CB4FA + adds r0, r5, 0 + bl sub_81CC034 + ldr r1, =gUnknown_08622760 + str r4, [sp] + movs r0, 0x3 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r0, =gUnknown_08622700 + movs r1, 0x30 + movs r2, 0x20 + bl sub_81C7944 + ldr r0, =gUnknown_08622720 + movs r1, 0x50 + movs r2, 0x20 + bl sub_81C7944 + movs r0, 0 + b _081CB506 + .pool +_081CB468: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _081CB4FA + bl sub_81CAE28 + cmp r0, 0 + beq _081CB4FA + bl sub_81CBBB8 + movs r0, 0 + b _081CB506 +_081CB482: + bl sub_81C8224 + cmp r0, 0 + bne _081CB4FA + adds r0, r5, 0 + bl sub_81CBD78 + movs r0, 0 + b _081CB506 +_081CB494: + adds r0, r5, 0 + bl sub_81CBDC0 + adds r0, r5, 0 + movs r1, 0 + bl sub_81CBEF8 + movs r0, 0 + b _081CB506 +_081CB4A6: + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x2 + bl ShowBg + movs r0, 0x3 + bl ShowBg + movs r0, 0x1 + bl ShowBg + bl sub_81CC214 + movs r0, 0x3 + bl sub_81C7DFC + movs r0, 0x3 + movs r1, 0x1 + movs r2, 0 + bl sub_81C7FA0 + movs r0, 0x1 + bl sub_81C7AC0 + movs r0, 0 + b _081CB506 +_081CB4EA: + bl sub_81C7B34 + cmp r0, 0 + bne _081CB4FA + bl sub_81C8010 + cmp r0, 0 + beq _081CB4FE +_081CB4FA: + movs r0, 0x2 + b _081CB506 +_081CB4FE: + movs r0, 0x1 + bl sub_81CBC38 +_081CB504: + movs r0, 0x4 +_081CB506: + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CB324 + + thumb_func_start sub_81CB510 +sub_81CB510: @ 81CB510 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x6 + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CB55E + cmp r4, 0x1 + bgt _081CB52A + cmp r4, 0 + beq _081CB534 + b _081CB580 +_081CB52A: + cmp r4, 0x2 + beq _081CB566 + cmp r4, 0x3 + beq _081CB572 + b _081CB580 +_081CB534: + bl sub_81C868C + cmp r0, 0x1 + beq _081CB54C + cmp r0, 0x1 + bgt _081CB546 + cmp r0, 0 + beq _081CB580 + b _081CB56E +_081CB546: + cmp r0, 0x2 + beq _081CB556 + b _081CB56E +_081CB54C: + movs r0, 0x5 + bl PlaySE + movs r0, 0x7 + b _081CB582 +_081CB556: + movs r0, 0x5 + bl PlaySE + b _081CB56E +_081CB55E: + bl sub_81C8630 + cmp r0, 0 + bne _081CB57C +_081CB566: + adds r0, r5, 0 + movs r1, 0 + bl sub_81CBEF8 +_081CB56E: + movs r0, 0 + b _081CB582 +_081CB572: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081CB580 +_081CB57C: + movs r0, 0x2 + b _081CB582 +_081CB580: + movs r0, 0x4 +_081CB582: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CB510 + + thumb_func_start sub_81CB588 +sub_81CB588: @ 81CB588 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x6 + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CB5D6 + cmp r4, 0x1 + bgt _081CB5A2 + cmp r4, 0 + beq _081CB5AC + b _081CB5F8 +_081CB5A2: + cmp r4, 0x2 + beq _081CB5DE + cmp r4, 0x3 + beq _081CB5EA + b _081CB5F8 +_081CB5AC: + bl sub_81C8658 + cmp r0, 0x1 + beq _081CB5C4 + cmp r0, 0x1 + bgt _081CB5BE + cmp r0, 0 + beq _081CB5F8 + b _081CB5E6 +_081CB5BE: + cmp r0, 0x2 + beq _081CB5CE + b _081CB5E6 +_081CB5C4: + movs r0, 0x5 + bl PlaySE + movs r0, 0x7 + b _081CB5FA +_081CB5CE: + movs r0, 0x5 + bl PlaySE + b _081CB5E6 +_081CB5D6: + bl sub_81C8630 + cmp r0, 0 + bne _081CB5F4 +_081CB5DE: + adds r0, r5, 0 + movs r1, 0 + bl sub_81CBEF8 +_081CB5E6: + movs r0, 0 + b _081CB5FA +_081CB5EA: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081CB5F8 +_081CB5F4: + movs r0, 0x2 + b _081CB5FA +_081CB5F8: + movs r0, 0x4 +_081CB5FA: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CB588 + + thumb_func_start sub_81CB600 +sub_81CB600: @ 81CB600 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x6 + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CB64E + cmp r4, 0x1 + bgt _081CB61A + cmp r4, 0 + beq _081CB624 + b _081CB670 +_081CB61A: + cmp r4, 0x2 + beq _081CB656 + cmp r4, 0x3 + beq _081CB662 + b _081CB670 +_081CB624: + bl sub_81C870C + cmp r0, 0x1 + beq _081CB63C + cmp r0, 0x1 + bgt _081CB636 + cmp r0, 0 + beq _081CB670 + b _081CB65E +_081CB636: + cmp r0, 0x2 + beq _081CB646 + b _081CB65E +_081CB63C: + movs r0, 0x5 + bl PlaySE + movs r0, 0x7 + b _081CB672 +_081CB646: + movs r0, 0x5 + bl PlaySE + b _081CB65E +_081CB64E: + bl sub_81C8630 + cmp r0, 0 + bne _081CB66C +_081CB656: + adds r0, r5, 0 + movs r1, 0 + bl sub_81CBEF8 +_081CB65E: + movs r0, 0 + b _081CB672 +_081CB662: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081CB670 +_081CB66C: + movs r0, 0x2 + b _081CB672 +_081CB670: + movs r0, 0x4 +_081CB672: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CB600 + + thumb_func_start sub_81CB678 +sub_81CB678: @ 81CB678 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x6 + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CB6C6 + cmp r4, 0x1 + bgt _081CB692 + cmp r4, 0 + beq _081CB69C + b _081CB6E8 +_081CB692: + cmp r4, 0x2 + beq _081CB6CE + cmp r4, 0x3 + beq _081CB6DA + b _081CB6E8 +_081CB69C: + bl sub_81C86CC + cmp r0, 0x1 + beq _081CB6B4 + cmp r0, 0x1 + bgt _081CB6AE + cmp r0, 0 + beq _081CB6E8 + b _081CB6D6 +_081CB6AE: + cmp r0, 0x2 + beq _081CB6BE + b _081CB6D6 +_081CB6B4: + movs r0, 0x5 + bl PlaySE + movs r0, 0x7 + b _081CB6EA +_081CB6BE: + movs r0, 0x5 + bl PlaySE + b _081CB6D6 +_081CB6C6: + bl sub_81C8630 + cmp r0, 0 + bne _081CB6E4 +_081CB6CE: + adds r0, r5, 0 + movs r1, 0 + bl sub_81CBEF8 +_081CB6D6: + movs r0, 0 + b _081CB6EA +_081CB6DA: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081CB6E8 +_081CB6E4: + movs r0, 0x2 + b _081CB6EA +_081CB6E8: + movs r0, 0x4 +_081CB6EA: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CB678 + + thumb_func_start sub_81CB6F0 +sub_81CB6F0: @ 81CB6F0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x6 + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0 + beq _081CB706 + cmp r4, 0x1 + beq _081CB71C + b _081CB72A +_081CB706: + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + bl sub_81CBF60 + movs r0, 0x7 + bl sub_81C7BA4 + movs r0, 0 + b _081CB72C +_081CB71C: + adds r0, r5, 0 + bl sub_81CBFC4 + cmp r0, 0 + beq _081CB72A + movs r0, 0x2 + b _081CB72C +_081CB72A: + movs r0, 0x4 +_081CB72C: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CB6F0 + + thumb_func_start sub_81CB734 +sub_81CB734: @ 81CB734 + push {r4,lr} + movs r0, 0x5 + bl PlaySE + movs r0, 0x6 + bl sub_81C763C + adds r4, r0, 0 + bl sub_81CB01C + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_81CC344 + movs r0, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CB734 + + thumb_func_start sub_81CB75C +sub_81CB75C: @ 81CB75C + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x6 + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0 + beq _081CB772 + cmp r4, 0x1 + beq _081CB788 + b _081CB796 +_081CB772: + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + bl sub_81CBFF0 + movs r0, 0x6 + bl sub_81C7BA4 + movs r0, 0 + b _081CB798 +_081CB788: + adds r0, r5, 0 + bl sub_81CC004 + cmp r0, 0 + beq _081CB796 + movs r0, 0x2 + b _081CB798 +_081CB796: + movs r0, 0x4 +_081CB798: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CB75C + + thumb_func_start sub_81CB7A0 +sub_81CB7A0: @ 81CB7A0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x6 + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CB7D4 + cmp r4, 0x1 + bgt _081CB7BA + cmp r4, 0 + beq _081CB7C4 + b _081CB81A +_081CB7BA: + cmp r4, 0x2 + beq _081CB7F8 + cmp r4, 0x3 + beq _081CB80C + b _081CB81A +_081CB7C4: + movs r0, 0x1 + bl sub_81C9148 + adds r0, r5, 0 + bl sub_81CC058 + movs r0, 0 + b _081CB81C +_081CB7D4: + adds r0, r5, 0 + bl sub_81CC0D0 + adds r4, r0, 0 + cmp r4, 0 + bne _081CB816 + adds r0, r5, 0 + bl sub_81CC0E0 + ldr r0, =0x00000107 + bl PlaySE + strb r4, [r5, 0xE] + movs r0, 0 + b _081CB81C + .pool +_081CB7F8: + adds r0, r5, 0 + bl sub_81CC104 + cmp r0, 0 + bne _081CB816 + adds r0, r5, 0 + bl sub_81CC158 + movs r0, 0 + b _081CB81C +_081CB80C: + adds r0, r5, 0 + bl sub_81CC194 + cmp r0, 0 + beq _081CB81A +_081CB816: + movs r0, 0x2 + b _081CB81C +_081CB81A: + movs r0, 0x4 +_081CB81C: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CB7A0 + + thumb_func_start sub_81CB824 +sub_81CB824: @ 81CB824 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x6 + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CB85E + cmp r4, 0x1 + bgt _081CB83E + cmp r4, 0 + beq _081CB844 + b _081CB880 +_081CB83E: + cmp r4, 0x2 + beq _081CB872 + b _081CB880 +_081CB844: + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + bl sub_81CC09C + movs r0, 0x1 + bl sub_81C9148 + movs r0, 0x1 + strb r0, [r5, 0xE] + movs r0, 0 + b _081CB882 +_081CB85E: + adds r0, r5, 0 + bl sub_81CC0D0 + cmp r0, 0 + bne _081CB87C + adds r0, r5, 0 + bl sub_81CC11C + movs r0, 0 + b _081CB882 +_081CB872: + adds r0, r5, 0 + bl sub_81CC140 + cmp r0, 0 + beq _081CB880 +_081CB87C: + movs r0, 0x2 + b _081CB882 +_081CB880: + movs r0, 0x4 +_081CB882: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CB824 + + thumb_func_start sub_81CB888 +sub_81CB888: @ 81CB888 + push {r4-r6,lr} + adds r5, r0, 0 + movs r0, 0x6 + bl sub_81C763C + adds r4, r0, 0 + movs r6, 0 + cmp r5, 0x6 + bhi _081CB934 + lsls r0, r5, 2 + ldr r1, =_081CB8A8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081CB8A8: + .4byte _081CB8C4 + .4byte _081CB8DA + .4byte _081CB8E2 + .4byte _081CB8F0 + .4byte _081CB8F8 + .4byte _081CB90C + .4byte _081CB922 +_081CB8C4: + ldrb r0, [r4, 0xE] + cmp r0, 0 + bne _081CB8D2 + movs r0, 0x84 + lsls r0, 1 + bl PlaySE +_081CB8D2: + movs r0, 0x5 + bl PlaySE + b _081CB934 +_081CB8DA: + adds r0, r4, 0 + bl sub_81CC1DC + b _081CB934 +_081CB8E2: + adds r0, r4, 0 + bl sub_81CC204 + cmp r0, 0 + beq _081CB934 +_081CB8EC: + movs r6, 0x2 + b _081CB934 +_081CB8F0: + adds r0, r4, 0 + bl sub_81CBFF0 + b _081CB934 +_081CB8F8: + adds r0, r4, 0 + bl sub_81CC004 + cmp r0, 0 + beq _081CB904 + movs r6, 0x2 +_081CB904: + movs r0, 0x6 + bl sub_81C7BA4 + b _081CB934 +_081CB90C: + bl sub_81C7BE8 + cmp r0, 0 + bne _081CB8EC + ldrb r0, [r4, 0xF] + cmp r0, 0 + beq _081CB92C + bl sub_81C8838 + movs r6, 0x1 + b _081CB934 +_081CB922: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _081CB8EC +_081CB92C: + movs r0, 0 + bl sub_81C9148 + movs r6, 0x4 +_081CB934: + adds r0, r6, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81CB888 + + thumb_func_start sub_81CB93C +sub_81CB93C: @ 81CB93C + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x6 + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CB974 + cmp r4, 0x1 + bgt _081CB956 + cmp r4, 0 + beq _081CB960 + b _081CB9BE +_081CB956: + cmp r4, 0x2 + beq _081CB990 + cmp r4, 0x3 + beq _081CB9A0 + b _081CB9BE +_081CB960: + movs r0, 0x5 + bl PlaySE + bl sub_81C877C + adds r0, r5, 0 + bl sub_81CC014 + movs r0, 0 + b _081CB9C0 +_081CB974: + bl sub_81C8820 + cmp r0, 0 + bne _081CB9BA + adds r0, r5, 0 + bl sub_81CC004 + cmp r0, 0 + bne _081CB9BA + movs r0, 0x8 + bl sub_81C7BA4 + movs r0, 0 + b _081CB9C0 +_081CB990: + movs r0, 0 + bl sub_81C87AC + adds r0, r5, 0 + bl sub_81CC39C + movs r0, 0 + b _081CB9C0 +_081CB9A0: + bl sub_81C8820 + cmp r0, 0 + bne _081CB9BA + adds r0, r5, 0 + bl sub_81CC42C + cmp r0, 0 + bne _081CB9BA + bl sub_81C7BE8 + cmp r0, 0 + beq _081CB9BE +_081CB9BA: + movs r0, 0x2 + b _081CB9C0 +_081CB9BE: + movs r0, 0x4 +_081CB9C0: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CB93C + + thumb_func_start sub_81CB9C8 +sub_81CB9C8: @ 81CB9C8 + push {r4,r5,lr} + adds r5, r0, 0 + movs r0, 0x6 + bl sub_81C763C + adds r4, r0, 0 + cmp r5, 0x4 + bhi _081CBA60 + lsls r0, r5, 2 + ldr r1, =_081CB9E8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081CB9E8: + .4byte _081CB9FC + .4byte _081CBA1C + .4byte _081CBA34 + .4byte _081CBA40 + .4byte _081CBA4A +_081CB9FC: + bl sub_81C8770 + bl sub_81CB0E4 + adds r5, r0, 0 + cmp r5, 0 + beq _081CBA60 + movs r0, 0x5 + bl PlaySE + strh r5, [r4, 0x16] + adds r0, r4, 0 + bl sub_81CC420 + movs r0, 0 + b _081CBA62 +_081CBA1C: + adds r0, r4, 0 + bl sub_81CC42C + cmp r0, 0 + bne _081CBA5C + movs r0, 0x16 + ldrsh r1, [r4, r0] + adds r0, r4, 0 + bl sub_81CBEF8 + movs r0, 0 + b _081CBA62 +_081CBA34: + movs r1, 0x16 + ldrsh r0, [r4, r1] + bl sub_81C87AC + movs r0, 0 + b _081CBA62 +_081CBA40: + adds r0, r4, 0 + bl sub_81CC39C + movs r0, 0 + b _081CBA62 +_081CBA4A: + bl sub_81C8820 + cmp r0, 0 + bne _081CBA5C + adds r0, r4, 0 + bl sub_81CC42C + cmp r0, 0 + beq _081CBA60 +_081CBA5C: + movs r0, 0x2 + b _081CBA62 +_081CBA60: + movs r0, 0x4 +_081CBA62: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CB9C8 + + thumb_func_start sub_81CBA68 +sub_81CBA68: @ 81CBA68 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x6 + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CBA9C + cmp r4, 0x1 + bgt _081CBA82 + cmp r4, 0 + beq _081CBA88 + b _081CBACC +_081CBA82: + cmp r4, 0x2 + beq _081CBABE + b _081CBACC +_081CBA88: + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + bl sub_81CC420 + bl sub_81C87F0 + movs r0, 0 + b _081CBACE +_081CBA9C: + bl sub_81C8820 + cmp r0, 0 + bne _081CBAC8 + adds r0, r5, 0 + bl sub_81CC42C + cmp r0, 0 + bne _081CBAC8 + movs r0, 0x6 + bl sub_81C7BA4 + adds r0, r5, 0 + bl sub_81CBDC0 + movs r0, 0 + b _081CBACE +_081CBABE: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081CBACC +_081CBAC8: + movs r0, 0x2 + b _081CBACE +_081CBACC: + movs r0, 0x4 +_081CBACE: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CBA68 + + thumb_func_start sub_81CBAD4 +sub_81CBAD4: @ 81CBAD4 + push {r4,r5,lr} + adds r5, r0, 0 + movs r0, 0x6 + bl sub_81C763C + adds r4, r0, 0 + cmp r5, 0x4 + bhi _081CBB6C + lsls r0, r5, 2 + ldr r1, =_081CBAF4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081CBAF4: + .4byte _081CBB08 + .4byte _081CBB28 + .4byte _081CBB40 + .4byte _081CBB4C + .4byte _081CBB56 +_081CBB08: + bl sub_81C8770 + bl sub_81CB128 + adds r5, r0, 0 + cmp r5, 0 + beq _081CBB6C + movs r0, 0x5 + bl PlaySE + strh r5, [r4, 0x16] + adds r0, r4, 0 + bl sub_81CC420 + movs r0, 0 + b _081CBB6E +_081CBB28: + adds r0, r4, 0 + bl sub_81CC42C + cmp r0, 0 + bne _081CBB68 + movs r0, 0x16 + ldrsh r1, [r4, r0] + adds r0, r4, 0 + bl sub_81CBEF8 + movs r0, 0 + b _081CBB6E +_081CBB40: + movs r1, 0x16 + ldrsh r0, [r4, r1] + bl sub_81C87AC + movs r0, 0 + b _081CBB6E +_081CBB4C: + adds r0, r4, 0 + bl sub_81CC39C + movs r0, 0 + b _081CBB6E +_081CBB56: + bl sub_81C8820 + cmp r0, 0 + bne _081CBB68 + adds r0, r4, 0 + bl sub_81CC42C + cmp r0, 0 + beq _081CBB6C +_081CBB68: + movs r0, 0x2 + b _081CBB6E +_081CBB6C: + movs r0, 0x4 +_081CBB6E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CBAD4 + + thumb_func_start sub_81CBB74 +sub_81CBB74: @ 81CBB74 + push {lr} + cmp r0, 0 + beq _081CBB80 + cmp r0, 0x1 + beq _081CBB9A + b _081CBBB2 +_081CBB80: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_81CBC38 + movs r0, 0 + bl sub_81C7AC0 + bl sub_81C78A0 + movs r0, 0 + b _081CBBB4 +_081CBB9A: + bl sub_81C7B34 + cmp r0, 0 + bne _081CBBAA + bl sub_81C78C0 + cmp r0, 0 + beq _081CBBAE +_081CBBAA: + movs r0, 0x2 + b _081CBBB4 +_081CBBAE: + bl sub_81C7FDC +_081CBBB2: + movs r0, 0x4 +_081CBBB4: + pop {r1} + bx r1 + thumb_func_end sub_81CBB74 + + thumb_func_start sub_81CBBB8 +sub_81CBBB8: @ 81CBBB8 + push {lr} + sub sp, 0x18 + bl sub_81CAE94 + str r0, [sp] + bl sub_81CAE38 + mov r1, sp + movs r2, 0 + strh r0, [r1, 0x4] + movs r0, 0x4 + strb r0, [r1, 0x8] + mov r0, sp + strh r2, [r0, 0x6] + movs r0, 0xD + strb r0, [r1, 0x9] + movs r0, 0x10 + strb r0, [r1, 0xA] + movs r0, 0x1 + strb r0, [r1, 0xB] + movs r0, 0x8 + strb r0, [r1, 0xC] + movs r0, 0x3 + strb r0, [r1, 0xD] + movs r0, 0x7 + strb r0, [r1, 0xE] + ldr r0, =sub_81CB050 + str r0, [sp, 0x10] + ldr r0, =sub_81CBCEC + str r0, [sp, 0x14] + ldr r0, =gUnknown_08622794 + movs r2, 0x2 + bl sub_81C81D4 + ldr r0, =sub_81CBC64 + movs r1, 0x7 + bl CreateTask + add sp, 0x18 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CBBB8 + + thumb_func_start sub_81CBC1C +sub_81CBC1C: @ 81CBC1C + push {lr} + bl sub_81C8234 + ldr r0, =sub_81CBC64 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CBC1C + + thumb_func_start sub_81CBC38 +sub_81CBC38: @ 81CBC38 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =sub_81CBC64 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _081CBC56 + ldr r1, =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + strh r4, [r0, 0x26] +_081CBC56: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CBC38 + + thumb_func_start sub_81CBC64 +sub_81CBC64: @ 81CBC64 + push {r4,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r2, r1, r0 + movs r1, 0x1E + ldrsh r0, [r2, r1] + cmp r0, 0 + beq _081CBCC8 + ldrh r0, [r2] + adds r0, 0x4 + movs r1, 0x7F + ands r0, r1 + strh r0, [r2] + ldr r1, =gSineTable + movs r3, 0 + ldrsh r0, [r2, r3] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 16 + asrs r0, 20 + strh r0, [r2, 0x2] + ldr r0, =gUnknown_08622720 + adds r1, r0, 0 + adds r1, 0x20 + movs r3, 0x2 + ldrsh r2, [r2, r3] + str r2, [sp] + ldr r4, =gPlttBufferUnfaded + 0xA0 + str r4, [sp, 0x4] + movs r2, 0x10 + movs r3, 0x10 + bl sub_81C79BC + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081CBCC8 + ldr r1, =gPlttBufferFaded + 0xA0 + ldr r2, =0x04000008 + adds r0, r4, 0 + bl CpuSet +_081CBCC8: + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CBC64 + + thumb_func_start sub_81CBCEC +sub_81CBCEC: @ 81CBCEC + push {r4-r6,lr} + adds r5, r1, 0 + adds r4, r2, 0 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl GetWindowAttribute + lsls r0, 24 + lsrs r0, 24 + bl GetBgTilemapBuffer + adds r6, r0, 0 + lsls r4, 7 + adds r4, 0x3A + adds r6, r4 + adds r0, r5, 0 + bl sub_81CAEBC + cmp r0, 0 + beq _081CBD30 + movs r1, 0xA0 + lsls r1, 7 + adds r0, r1, 0 + strh r0, [r6] + adds r1, r6, 0 + adds r1, 0x40 + ldr r2, =0x00005001 + adds r0, r2, 0 + strh r0, [r1] + b _081CBD3C + .pool +_081CBD30: + ldr r0, =0x00005002 + adds r1, r0, 0 + strh r1, [r6] + adds r0, r6, 0 + adds r0, 0x40 + strh r1, [r0] +_081CBD3C: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CBCEC + + thumb_func_start sub_81CBD48 +sub_81CBD48: @ 81CBD48 + push {r4,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl GetWindowAttribute + lsls r0, 24 + lsrs r0, 24 + bl GetBgTilemapBuffer + lsls r4, 7 + adds r4, 0x3A + adds r0, r4 + ldr r2, =0x00005002 + adds r1, r2, 0 + strh r1, [r0] + adds r0, 0x40 + strh r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CBD48 + + thumb_func_start sub_81CBD78 +sub_81CBD78: @ 81CBD78 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_086227D8 + bl AddWindow + strh r0, [r4, 0x10] + ldr r0, =gUnknown_086227E0 + bl AddWindow + strh r0, [r4, 0x12] + ldrb r0, [r4, 0x10] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4, 0x10] + bl PutWindowTilemap + ldrb r0, [r4, 0x12] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4, 0x12] + bl PutWindowTilemap + ldrb r0, [r4, 0x10] + movs r1, 0x1 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CBD78 + + thumb_func_start sub_81CBDC0 +sub_81CBDC0: @ 81CBDC0 + push {r4,lr} + adds r4, r0, 0 + ldrb r0, [r4, 0x12] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldrh r0, [r4, 0x12] + bl sub_81CBDF4 + ldrh r0, [r4, 0x12] + bl sub_81CBE0C + ldrh r0, [r4, 0x12] + bl sub_81CBE38 + ldrh r0, [r4, 0x12] + bl sub_81CBE50 + ldrb r0, [r4, 0x12] + movs r1, 0x2 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CBDC0 + + thumb_func_start sub_81CBDF4 +sub_81CBDF4: @ 81CBDF4 + push {lr} + lsls r0, 16 + lsrs r0, 16 + ldr r1, =gUnknown_085EBE5F + movs r2, 0 + bl sub_81CBE88 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CBDF4 + + thumb_func_start sub_81CBE0C +sub_81CBE0C: @ 81CBE0C + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + bl sub_81CAE38 + adds r1, r0, 0 + mov r0, sp + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r0, r4, 0 + mov r1, sp + movs r2, 0x1 + bl sub_81CBEB4 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CBE0C + + thumb_func_start sub_81CBE38 +sub_81CBE38: @ 81CBE38 + push {lr} + lsls r0, 16 + lsrs r0, 16 + ldr r1, =gUnknown_085EBE6E + movs r2, 0x2 + bl sub_81CBE88 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CBE38 + + thumb_func_start sub_81CBE50 +sub_81CBE50: @ 81CBE50 + push {r4,lr} + sub sp, 0x8 + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0x9 + bl GetGameStat + adds r1, r0, 0 + ldr r0, =0x0001869f + cmp r1, r0 + ble _081CBE68 + adds r1, r0, 0 +_081CBE68: + mov r0, sp + movs r2, 0 + movs r3, 0x5 + bl ConvertIntToDecimalStringN + adds r0, r4, 0 + mov r1, sp + movs r2, 0x3 + bl sub_81CBEB4 + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CBE50 + + thumb_func_start sub_81CBE88 +sub_81CBE88: @ 81CBE88 + push {lr} + sub sp, 0xC + adds r3, r1, 0 + lsls r2, 4 + adds r2, 0x1 + lsls r0, 24 + lsrs r0, 24 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x7 + adds r2, r3, 0 + movs r3, 0x2 + bl Print + add sp, 0xC + pop {r0} + bx r0 + thumb_func_end sub_81CBE88 + + thumb_func_start sub_81CBEB4 +sub_81CBEB4: @ 81CBEB4 + push {r4-r6,lr} + sub sp, 0xC + adds r5, r0, 0 + adds r6, r1, 0 + adds r4, r2, 0 + lsls r5, 16 + lsrs r5, 16 + movs r0, 0x7 + movs r2, 0x56 + bl GetStringRightAlignXOffset + adds r3, r0, 0 + lsls r4, 4 + adds r4, 0x1 + lsls r5, 24 + lsrs r5, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r4, 24 + lsrs r4, 24 + str r4, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + adds r0, r5, 0 + movs r1, 0x7 + adds r2, r6, 0 + bl Print + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81CBEB4 + + thumb_func_start sub_81CBEF8 +sub_81CBEF8: @ 81CBEF8 + push {r4,r5,lr} + sub sp, 0x2C + adds r5, r0, 0 + adds r4, r1, 0 + bl sub_81C875C + adds r0, r4 + bl sub_81CAEA4 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0xD5 + beq _081CBF1C + add r0, sp, 0xC + movs r2, 0 + bl GetMapName + b _081CBF24 +_081CBF1C: + ldr r1, =gUnknown_085EC00F + add r0, sp, 0xC + bl StringCopy +_081CBF24: + movs r0, 0x7 + add r1, sp, 0xC + movs r2, 0x58 + bl GetStringCenterAlignXOffset + adds r4, r0, 0 + ldrb r0, [r5, 0x10] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldrb r0, [r5, 0x10] + lsls r4, 24 + lsrs r4, 24 + movs r1, 0x1 + str r1, [sp] + movs r1, 0 + str r1, [sp, 0x4] + str r1, [sp, 0x8] + movs r1, 0x7 + add r2, sp, 0xC + adds r3, r4, 0 + bl Print + add sp, 0x2C + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CBEF8 + + thumb_func_start sub_81CBF60 +sub_81CBF60: @ 81CBF60 + push {r4-r6,lr} + sub sp, 0xC + adds r5, r0, 0 + ldrb r0, [r5, 0x12] + movs r1, 0x11 + bl FillWindowPixelBuffer + movs r4, 0 + movs r6, 0x80 + lsls r6, 17 + b _081CBF9C +_081CBF76: + ldrb r0, [r5, 0x12] + ldr r2, =gUnknown_086227E8 + lsls r1, 2 + adds r1, r2 + ldr r2, [r1] + lsrs r1, r6, 24 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x7 + movs r3, 0x10 + bl Print + movs r0, 0x80 + lsls r0, 21 + adds r6, r0 + adds r4, 0x1 +_081CBF9C: + cmp r4, 0x2 + bhi _081CBFAE + adds r0, r4, 0 + bl sub_81CB02C + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3 + bne _081CBF76 +_081CBFAE: + ldrb r0, [r5, 0x12] + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CBF60 + + thumb_func_start sub_81CBFC4 +sub_81CBFC4: @ 81CBFC4 + push {r4,lr} + adds r4, r0, 0 + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081CBFD6 + movs r0, 0x1 + b _081CBFE8 +_081CBFD6: + bl sub_81CB01C + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_81CC2F0 + movs r0, 0 +_081CBFE8: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CBFC4 + + thumb_func_start sub_81CBFF0 +sub_81CBFF0: @ 81CBFF0 + push {r4,lr} + adds r4, r0, 0 + bl sub_81CC330 + adds r0, r4, 0 + bl sub_81CBDC0 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CBFF0 + + thumb_func_start sub_81CC004 +sub_81CC004: @ 81CC004 + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_81CC004 + + thumb_func_start sub_81CC014 +sub_81CC014: @ 81CC014 + push {r4,lr} + adds r4, r0, 0 + bl sub_81CC330 + ldrb r0, [r4, 0x12] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4, 0x12] + movs r1, 0x2 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CC014 + + thumb_func_start sub_81CC034 +sub_81CC034: @ 81CC034 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_08622808 + bl AddWindow + strh r0, [r4, 0x14] + ldrh r0, [r4, 0x14] + movs r1, 0x1 + movs r2, 0x4 + bl sub_8197184 + bl sub_81C7B40 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CC034 + + thumb_func_start sub_81CC058 +sub_81CC058: @ 81CC058 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x14] + movs r1, 0x1 + movs r2, 0x4 + bl sub_8197184 + ldrh r0, [r4, 0x14] + movs r1, 0x1 + movs r2, 0x4 + bl sub_81971C4 + ldrb r0, [r4, 0x14] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4, 0x14] + bl PutWindowTilemap + ldrb r0, [r4, 0x14] + movs r1, 0x3 + bl CopyWindowToVram + bl sub_81C7CCC + movs r2, 0 + movs r1, 0x18 + strh r1, [r0, 0x20] + movs r1, 0x70 + strh r1, [r0, 0x22] + strh r2, [r0, 0x26] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CC058 + + thumb_func_start sub_81CC09C +sub_81CC09C: @ 81CC09C + push {r4,lr} + adds r4, r0, 0 + ldrb r0, [r4, 0x14] + movs r1, 0x1 + movs r2, 0x40 + bl sub_809882C + ldrb r0, [r4, 0x14] + movs r1, 0x1 + movs r2, 0x4 + bl sub_8098858 + ldrb r0, [r4, 0x14] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4, 0x14] + bl PutWindowTilemap + ldrb r0, [r4, 0x14] + movs r1, 0x3 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CC09C + + thumb_func_start sub_81CC0D0 +sub_81CC0D0: @ 81CC0D0 + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_81CC0D0 + + thumb_func_start sub_81CC0E0 +sub_81CC0E0: @ 81CC0E0 + push {lr} + sub sp, 0xC + ldrb r0, [r0, 0x14] + ldr r2, =gUnknown_086227F4 + movs r1, 0x1 + str r1, [sp] + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x20 + bl Print + add sp, 0xC + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CC0E0 + + thumb_func_start sub_81CC104 +sub_81CC104: @ 81CC104 + push {r4,lr} + adds r4, r0, 0 + bl RunTextPrinters + ldrb r0, [r4, 0x14] + bl IsTextPrinterActive + lsls r0, 16 + lsrs r0, 16 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CC104 + + thumb_func_start sub_81CC11C +sub_81CC11C: @ 81CC11C + push {lr} + sub sp, 0xC + ldrb r0, [r0, 0x14] + ldr r2, =gUnknown_085EBF95 + movs r1, 0x1 + str r1, [sp] + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x1 + movs r3, 0 + bl Print + add sp, 0xC + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CC11C + + thumb_func_start sub_81CC140 +sub_81CC140: @ 81CC140 + push {r4,lr} + adds r4, r0, 0 + bl RunTextPrinters + ldrb r0, [r4, 0x14] + bl IsTextPrinterActive + lsls r0, 16 + lsrs r0, 16 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CC140 + + thumb_func_start sub_81CC158 +sub_81CC158: @ 81CC158 + push {r4,r5,lr} + sub sp, 0xC + adds r4, r0, 0 + bl sub_81C875C + adds r1, r4, 0 + adds r1, 0xF + bl sub_81CAF78 + adds r5, r0, 0 + bl sav2_get_text_speed + lsls r0, 24 + lsrs r0, 24 + ldrb r2, [r4, 0x14] + movs r1, 0x1 + str r1, [sp] + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + adds r0, r2, 0 + adds r2, r5, 0 + movs r3, 0x20 + bl Print + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81CC158 + + thumb_func_start sub_81CC194 +sub_81CC194: @ 81CC194 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gMain + ldrh r1, [r0, 0x2C] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081CC1B8 + ldr r0, =gTextFlags + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + b _081CC1C4 + .pool +_081CC1B8: + ldr r2, =gTextFlags + ldrb r1, [r2] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_081CC1C4: + bl RunTextPrinters + ldrb r0, [r4, 0x14] + bl IsTextPrinterActive + lsls r0, 16 + lsrs r0, 16 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CC194 + + thumb_func_start sub_81CC1DC +sub_81CC1DC: @ 81CC1DC + push {lr} + sub sp, 0x8 + bl sub_81C7CE4 + movs r0, 0x20 + str r0, [sp] + movs r0, 0x14 + str r0, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, 0x1 + bl CopyBgTilemapBufferToVram + add sp, 0x8 + pop {r0} + bx r0 + thumb_func_end sub_81CC1DC + + thumb_func_start sub_81CC204 +sub_81CC204: @ 81CC204 + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_81CC204 + + thumb_func_start sub_81CC214 +sub_81CC214: @ 81CC214 + push {r4-r6,lr} + sub sp, 0x8 + movs r0, 0x6 + bl sub_81C763C + adds r6, r0, 0 + movs r5, 0 + ldr r4, =gUnknown_08622810 +_081CC224: + adds r0, r4, 0 + bl LoadCompressedObjectPic + adds r4, 0x8 + adds r5, 0x1 + cmp r5, 0 + beq _081CC224 + ldr r0, =gUnknown_08622818 + bl sub_81C795C + movs r0, 0 + str r0, [r6, 0x1C] + ldr r1, =0x00001828 + adds r0, r6, r1 + str r0, [sp] + ldr r1, =0xffff0000 + ldr r0, [sp, 0x4] + ands r0, r1 + movs r1, 0x80 + lsls r1, 4 + orrs r0, r1 + ldr r1, =0x0000ffff + ands r0, r1 + movs r1, 0x80 + lsls r1, 12 + orrs r0, r1 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet + ldr r2, =0x00001824 + adds r1, r6, r2 + lsls r0, 16 + lsrs r0, 11 + ldr r2, =0x06010000 + adds r0, r2 + str r0, [r1] + movs r0, 0xD + bl AllocSpritePalette + lsls r0, 24 + lsrs r0, 20 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + strh r0, [r6, 0x1A] + bl sub_81CC370 + str r0, [r6, 0x20] + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CC214 + + thumb_func_start sub_81CC2B4 +sub_81CC2B4: @ 81CC2B4 + push {r4,lr} + movs r0, 0x6 + bl sub_81C763C + adds r4, r0, 0 + ldr r0, [r4, 0x1C] + cmp r0, 0 + beq _081CC2C8 + bl DestroySprite +_081CC2C8: + ldr r0, [r4, 0x20] + cmp r0, 0 + beq _081CC2D2 + bl DestroySprite +_081CC2D2: + movs r0, 0x8 + bl FreeSpriteTilesByTag + movs r0, 0x7 + bl FreeSpriteTilesByTag + movs r0, 0xC + bl FreeSpritePaletteByTag + movs r0, 0xD + bl FreeSpritePaletteByTag + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CC2B4 + + thumb_func_start sub_81CC2F0 +sub_81CC2F0: @ 81CC2F0 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + ldr r0, [r4, 0x1C] + cmp r0, 0 + bne _081CC320 + ldr r0, =gUnknown_08622830 + movs r1, 0x4 + movs r2, 0x50 + movs r3, 0x5 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, =gSprites + adds r1, r0 + str r1, [r4, 0x1C] + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_81CC344 +_081CC320: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CC2F0 + + thumb_func_start sub_81CC330 +sub_81CC330: @ 81CC330 + push {r4,lr} + adds r4, r0, 0 + ldr r0, [r4, 0x1C] + bl DestroySprite + movs r0, 0 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CC330 + + thumb_func_start sub_81CC344 +sub_81CC344: @ 81CC344 + ldr r0, [r0, 0x1C] + lsls r1, 4 + strh r1, [r0, 0x26] + bx lr + thumb_func_end sub_81CC344 + + thumb_func_start sub_81CC34C +sub_81CC34C: @ 81CC34C + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _081CC36C + movs r0, 0 + strh r0, [r2, 0x2E] + ldrh r0, [r2, 0x24] + adds r0, 0x1 + movs r1, 0x7 + ands r0, r1 + strh r0, [r2, 0x24] +_081CC36C: + pop {r0} + bx r0 + thumb_func_end sub_81CC34C + + thumb_func_start sub_81CC370 +sub_81CC370: @ 81CC370 + push {lr} + ldr r0, =gUnknown_08622850 + movs r1, 0x2C + movs r2, 0x68 + movs r3, 0x6 + bl CreateSprite + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CC370 + + thumb_func_start sub_81CC39C +sub_81CC39C: @ 81CC39C + push {r4-r7,lr} + adds r7, r0, 0 + bl sub_81C875C + bl sub_81CAF04 + cmp r0, 0 + blt _081CC400 + lsls r4, r0, 3 + ldr r0, =gTrainerFrontPicTable + adds r0, r4, r0 + ldr r1, =0x00001828 + adds r5, r7, r1 + adds r1, r5, 0 + movs r2, 0 + bl DecompressPicFromTable + ldr r0, =gTrainerFrontPicPaletteTable + adds r4, r0 + ldr r0, [r4] + ldr r1, =0x00002028 + adds r6, r7, r1 + adds r1, r6, 0 + bl LZ77UnCompWram + ldr r1, =0x00001824 + adds r0, r7, r1 + ldr r1, [r0] + movs r2, 0x80 + lsls r2, 4 + adds r0, r5, 0 + movs r3, 0x1 + bl RequestDma3Copy + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrh r1, [r7, 0x1A] + adds r0, r6, 0 + movs r2, 0x20 + bl LoadPalette + ldr r1, [r7, 0x20] + movs r0, 0 + strh r0, [r1, 0x2E] + ldr r0, [r7, 0x20] + strh r4, [r0, 0x3C] + ldr r1, [r7, 0x20] + ldr r0, =sub_81CC440 + str r0, [r1, 0x1C] +_081CC400: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CC39C + + thumb_func_start sub_81CC420 +sub_81CC420: @ 81CC420 + ldr r1, [r0, 0x20] + ldr r0, =sub_81CC4A4 + str r0, [r1, 0x1C] + bx lr + .pool + thumb_func_end sub_81CC420 + + thumb_func_start sub_81CC42C +sub_81CC42C: @ 81CC42C + ldr r0, [r0, 0x20] + ldr r1, [r0, 0x1C] + ldr r0, =SpriteCallbackDummy + eors r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + bx lr + .pool + thumb_func_end sub_81CC42C + + thumb_func_start sub_81CC440 +sub_81CC440: @ 81CC440 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _081CC452 + cmp r0, 0x1 + beq _081CC484 + b _081CC498 +_081CC452: + movs r1, 0x3C + ldrsh r0, [r4, r1] + bl CheckForSpaceForDma3Request + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _081CC498 + ldr r0, =0x0000ffb0 + strh r0, [r4, 0x24] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _081CC498 + .pool +_081CC484: + ldrh r0, [r4, 0x24] + adds r0, 0x8 + strh r0, [r4, 0x24] + lsls r0, 16 + cmp r0, 0 + blt _081CC498 + movs r0, 0 + strh r0, [r4, 0x24] + ldr r0, =SpriteCallbackDummy + str r0, [r4, 0x1C] +_081CC498: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CC440 + + thumb_func_start sub_81CC4A4 +sub_81CC4A4: @ 81CC4A4 + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x24] + subs r0, 0x8 + strh r0, [r3, 0x24] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x50 + negs r1, r1 + cmp r0, r1 + bgt _081CC4CA + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, =SpriteCallbackDummy + str r0, [r3, 0x1C] +_081CC4CA: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CC4A4 + + thumb_func_start sub_81CC4D4 +sub_81CC4D4: @ 81CC4D4 + push {r4,lr} + movs r0, 0x3 + movs r1, 0x14 + bl sub_81C761C + adds r4, r0, 0 + cmp r4, 0 + beq _081CC4F0 + ldr r1, =0x00000884 + movs r0, 0x10 + bl sub_81C761C + cmp r0, 0 + bne _081CC4F8 +_081CC4F0: + movs r0, 0 + b _081CC51A + .pool +_081CC4F8: + ldr r0, =gUnknown_02037318 + ldrb r0, [r0, 0x14] + bl sub_8124668 + str r0, [r4, 0xC] + cmp r0, 0 + bne _081CC514 + ldr r0, =sub_81CC568 + b _081CC516 + .pool +_081CC514: + ldr r0, =sub_81CC5B4 +_081CC516: + str r0, [r4, 0x10] + movs r0, 0x1 +_081CC51A: + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CC4D4 + + thumb_func_start sub_81CC524 +sub_81CC524: @ 81CC524 + push {lr} + bl sub_8124658 + ldr r1, =gSaveBlock2Ptr + ldr r3, [r1] + movs r1, 0x1 + ands r1, r0 + lsls r1, 3 + ldrb r2, [r3, 0x15] + movs r0, 0x9 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x15] + movs r0, 0x10 + bl sub_81C7650 + movs r0, 0x3 + bl sub_81C7650 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CC524 + + thumb_func_start sub_81CC554 +sub_81CC554: @ 81CC554 + push {lr} + movs r0, 0x3 + bl sub_81C763C + ldr r1, [r0, 0x10] + bl _call_via_r1 + pop {r1} + bx r1 + thumb_func_end sub_81CC554 + + thumb_func_start sub_81CC568 +sub_81CC568: @ 81CC568 + push {r4,lr} + adds r4, r0, 0 + bl sub_81230AC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + beq _081CC58C + cmp r0, 0x4 + bgt _081CC582 + cmp r0, 0x3 + beq _081CC588 + b _081CC5AC +_081CC582: + cmp r0, 0x5 + beq _081CC59E + b _081CC5AC +_081CC588: + movs r0, 0x1 + b _081CC5AE +_081CC58C: + bl sub_8124658 + lsls r0, 24 + cmp r0, 0 + bne _081CC59A + movs r0, 0x3 + b _081CC5AE +_081CC59A: + movs r0, 0x2 + b _081CC5AE +_081CC59E: + ldr r0, =sub_81CC5DC + str r0, [r4, 0x10] + movs r0, 0x4 + b _081CC5AE + .pool +_081CC5AC: + movs r0, 0 +_081CC5AE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CC568 + + thumb_func_start sub_81CC5B4 +sub_81CC5B4: @ 81CC5B4 + push {lr} + adds r2, r0, 0 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _081CC5CC + movs r0, 0 + b _081CC5D2 + .pool +_081CC5CC: + ldr r0, =sub_81CC5DC + str r0, [r2, 0x10] + movs r0, 0x4 +_081CC5D2: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CC5B4 + + thumb_func_start sub_81CC5DC +sub_81CC5DC: @ 81CC5DC + ldr r0, =0x000186a1 + bx lr + .pool + thumb_func_end sub_81CC5DC + + thumb_func_start sub_81CC5E4 +sub_81CC5E4: @ 81CC5E4 + push {lr} + movs r0, 0x3 + bl sub_81C763C + ldr r0, [r0, 0xC] + pop {r1} + bx r1 + thumb_func_end sub_81CC5E4 + + thumb_func_start sub_81CC5F4 +sub_81CC5F4: @ 81CC5F4 + push {r4,lr} + ldr r1, =0x00001948 + movs r0, 0x4 + bl sub_81C761C + adds r4, r0, 0 + cmp r4, 0 + beq _081CC624 + ldr r0, =sub_81CC6F4 + movs r1, 0x1 + bl sub_81C7078 + str r0, [r4, 0x4] + ldr r0, =sub_81CC6BC + str r0, [r4] + movs r0, 0x1 + b _081CC626 + .pool +_081CC624: + movs r0, 0 +_081CC626: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CC5F4 + + thumb_func_start sub_81CC62C +sub_81CC62C: @ 81CC62C + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x4 + bl sub_81C763C + adds r5, r0, 0 + ldr r0, =gUnknown_086230E4 + lsls r4, 2 + adds r4, r0 + ldr r0, [r4] + movs r1, 0x1 + bl sub_81C7078 + str r0, [r5, 0x4] + ldr r0, =sub_81CC6BC + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CC62C + + thumb_func_start sub_81CC65C +sub_81CC65C: @ 81CC65C + push {lr} + movs r0, 0x4 + bl sub_81C763C + ldr r0, [r0] + bl _call_via_r0 + pop {r1} + bx r1 + thumb_func_end sub_81CC65C + + thumb_func_start sub_81CC670 +sub_81CC670: @ 81CC670 + push {r4,lr} + movs r0, 0x4 + bl sub_81C763C + adds r4, r0, 0 + bl sub_812305C + bl sub_81CC9EC + ldrb r0, [r4, 0x8] + bl RemoveWindow + movs r0, 0x10 + bl sub_81C7650 + movs r0, 0x4 + bl sub_81C7650 + bl sub_81C760C + movs r0, 0 + bl SetBgMode + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CC670 + + thumb_func_start sub_81CC6A4 +sub_81CC6A4: @ 81CC6A4 + push {lr} + bl TransferPlttBuffer + bl LoadOam + bl ProcessSpriteCopyRequests + bl sub_81237B4 + pop {r0} + bx r0 + thumb_func_end sub_81CC6A4 + + thumb_func_start sub_81CC6BC +sub_81CC6BC: @ 81CC6BC + push {lr} + movs r0, 0x4 + bl sub_81C763C + ldr r0, [r0, 0x4] + bl sub_81C70D8 + pop {r1} + bx r1 + thumb_func_end sub_81CC6BC + + thumb_func_start sub_81CC6D0 +sub_81CC6D0: @ 81CC6D0 + push {lr} + bl sub_81CC5E4 + cmp r0, 0 + bne _081CC6EC + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r0, [r0, 0x15] + lsrs r0, 3 + movs r1, 0x1 + ands r0, r1 + b _081CC6EE + .pool +_081CC6EC: + movs r0, 0 +_081CC6EE: + pop {r1} + bx r1 + thumb_func_end sub_81CC6D0 + + thumb_func_start sub_81CC6F4 +sub_81CC6F4: @ 81CC6F4 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x4 + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x7 + bls _081CC706 + b _081CC83E +_081CC706: + lsls r0, r4, 2 + ldr r1, =_081CC714 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081CC714: + .4byte _081CC734 + .4byte _081CC784 + .4byte _081CC7B6 + .4byte _081CC7BE + .4byte _081CC7CE + .4byte _081CC7E2 + .4byte _081CC804 + .4byte _081CC82A +_081CC734: + movs r0, 0 + bl c3args_set_0toR1_1to0 + movs r0, 0x1 + bl HideBg + movs r0, 0x2 + bl HideBg + movs r0, 0x3 + bl HideBg + movs r0, 0x1 + bl SetBgMode + ldr r4, =gUnknown_086230D8 + adds r0, r4, 0 + movs r1, 0x2 + bl sub_81C7B54 + movs r0, 0x10 + bl sub_81C763C + adds r5, r0, 0 + adds r4, 0x4 + bl sub_81CC6D0 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8122CF8 + bl sub_81CC9C0 +_081CC77C: + movs r0, 0 + b _081CC840 + .pool +_081CC784: + bl sub_8122DB0 + lsls r0, 24 + cmp r0, 0 + bne _081CC83A + bl sub_81CC5E4 + cmp r0, 0 + bne _081CC7AC + movs r0, 0x4 + movs r1, 0x9 + bl sub_8124288 + movs r0, 0x5 + movs r1, 0xA + bl sub_81240D4 + bl sub_812454C + b _081CC77C +_081CC7AC: + movs r0, 0 + movs r1, 0x6 + bl sub_8123030 + b _081CC77C +_081CC7B6: + bl sub_81CCD10 +_081CC7BA: + movs r0, 0x1 + b _081CC840 +_081CC7BE: + bl sub_81CCD24 + cmp r0, 0 + bne _081CC83A + adds r0, r5, 0 + bl sub_81CCA1C + b _081CC7BA +_081CC7CE: + bl sub_81CCAFC + cmp r0, 0 + bne _081CC83A + adds r0, r5, 0 + bl sub_81CCB0C + bl sub_81C7B40 + b _081CC77C +_081CC7E2: + adds r0, r5, 0 + bl sub_81CCC4C + cmp r0, 0 + bne _081CC83A + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + ldr r0, =sub_81CC6A4 + bl c3args_set_0toR1_1to0 + b _081CC77C + .pool +_081CC804: + bl sub_81CC6D0 + lsls r0, 24 + movs r4, 0x5 + cmp r0, 0 + bne _081CC812 + movs r4, 0x4 +_081CC812: + adds r0, r4, 0 + bl sub_81C7DFC + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_81C7FA0 + movs r0, 0x1 + bl sub_81C7AC0 + b _081CC77C +_081CC82A: + bl sub_81C7B34 + cmp r0, 0 + bne _081CC83A + bl sub_81C8010 + cmp r0, 0 + beq _081CC7BA +_081CC83A: + movs r0, 0x2 + b _081CC840 +_081CC83E: + movs r0, 0x4 +_081CC840: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CC6F4 + + thumb_func_start sub_81CC848 +sub_81CC848: @ 81CC848 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x4 + bl sub_81C763C + cmp r4, 0 + beq _081CC85C + cmp r4, 0x1 + beq _081CC864 + b _081CC870 +_081CC85C: + bl sub_81CCB0C + movs r0, 0 + b _081CC872 +_081CC864: + bl sub_81CCC4C + cmp r0, 0 + beq _081CC870 + movs r0, 0x2 + b _081CC872 +_081CC870: + movs r0, 0x4 +_081CC872: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CC848 + + thumb_func_start sub_81CC878 +sub_81CC878: @ 81CC878 + push {lr} + cmp r0, 0x1 + beq _081CC8A2 + cmp r0, 0x1 + bgt _081CC888 + cmp r0, 0 + beq _081CC88E + b _081CC8D0 +_081CC888: + cmp r0, 0x2 + beq _081CC8BE + b _081CC8D0 +_081CC88E: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_81CCC5C + bl sub_8123418 + movs r0, 0 + b _081CC8D2 +_081CC8A2: + bl sub_8123514 + lsls r0, 24 + cmp r0, 0 + bne _081CC8C6 + bl sub_81CCC88 + cmp r0, 0 + bne _081CC8C6 + movs r0, 0x1 + bl sub_81C7BA4 + movs r0, 0 + b _081CC8D2 +_081CC8BE: + bl sub_81C7BE8 + cmp r0, 0 + beq _081CC8CA +_081CC8C6: + movs r0, 0x2 + b _081CC8D2 +_081CC8CA: + movs r0, 0x4 + bl sub_81C7E14 +_081CC8D0: + movs r0, 0x4 +_081CC8D2: + pop {r1} + bx r1 + thumb_func_end sub_81CC878 + + thumb_func_start sub_81CC8D8 +sub_81CC8D8: @ 81CC8D8 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x4 + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CC90C + cmp r4, 0x1 + bgt _081CC8F2 + cmp r4, 0 + beq _081CC8FC + b _081CC952 +_081CC8F2: + cmp r4, 0x2 + beq _081CC924 + cmp r4, 0x3 + beq _081CC940 + b _081CC952 +_081CC8FC: + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + bl sub_81CCB0C + movs r0, 0 + b _081CC954 +_081CC90C: + adds r0, r5, 0 + bl sub_81CCC4C + cmp r0, 0 + bne _081CC948 + movs r0, 0x1 + bl sub_81CCC5C + bl sub_8123418 + movs r0, 0 + b _081CC954 +_081CC924: + bl sub_8123514 + lsls r0, 24 + cmp r0, 0 + bne _081CC948 + bl sub_81CCC88 + cmp r0, 0 + bne _081CC948 + movs r0, 0x2 + bl sub_81C7BA4 + movs r0, 0 + b _081CC954 +_081CC940: + bl sub_81C7BE8 + cmp r0, 0 + beq _081CC94C +_081CC948: + movs r0, 0x2 + b _081CC954 +_081CC94C: + movs r0, 0x5 + bl sub_81C7E14 +_081CC952: + movs r0, 0x4 +_081CC954: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CC8D8 + + thumb_func_start sub_81CC95C +sub_81CC95C: @ 81CC95C + push {lr} + cmp r0, 0x1 + beq _081CC982 + cmp r0, 0x1 + bgt _081CC96C + cmp r0, 0 + beq _081CC972 + b _081CC9B8 +_081CC96C: + cmp r0, 0x2 + beq _081CC996 + b _081CC9B8 +_081CC972: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_81C7AC0 + movs r0, 0 + b _081CC9BA +_081CC982: + bl sub_81C7B34 + cmp r0, 0 + bne _081CC99E + bl sub_81C7FDC + bl sub_81C78A0 + movs r0, 0 + b _081CC9BA +_081CC996: + bl sub_81C78C0 + cmp r0, 0 + beq _081CC9A2 +_081CC99E: + movs r0, 0x2 + b _081CC9BA +_081CC9A2: + movs r0, 0x1 + bl HideBg + movs r0, 0x2 + bl HideBg + movs r0, 0x3 + bl HideBg + movs r0, 0 + b _081CC9BA +_081CC9B8: + movs r0, 0x4 +_081CC9BA: + pop {r1} + bx r1 + thumb_func_end sub_81CC95C + + thumb_func_start sub_81CC9C0 +sub_81CC9C0: @ 81CC9C0 + push {r4,r5,lr} + movs r5, 0 + ldr r4, =gUnknown_086230F8 +_081CC9C6: + adds r0, r4, 0 + bl LoadCompressedObjectPic + adds r4, 0x8 + adds r5, 0x1 + cmp r5, 0 + beq _081CC9C6 + ldr r0, =gUnknown_08623100 + bl sub_81C795C + bl sub_81CCE58 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CC9C0 + + thumb_func_start sub_81CC9EC +sub_81CC9EC: @ 81CC9EC + push {r4,r5,lr} + movs r0, 0x4 + bl sub_81C763C + adds r4, r0, 0 + movs r0, 0x6 + bl FreeSpriteTilesByTag + movs r0, 0xB + bl FreeSpritePaletteByTag + adds r5, r4, 0 + adds r5, 0xC + movs r4, 0x2 +_081CCA08: + ldm r5!, {r0} + bl DestroySprite + subs r4, 0x1 + cmp r4, 0 + bge _081CCA08 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81CC9EC + + thumb_func_start sub_81CCA1C +sub_81CCA1C: @ 81CCA1C + push {r4,r5,lr} + sub sp, 0x8 + adds r5, r0, 0 + movs r0, 0x1 + movs r1, 0 + movs r2, 0x40 + movs r3, 0x1 + bl sub_8199DF0 + movs r0, 0x1 + movs r1, 0x11 + movs r2, 0x41 + movs r3, 0x1 + bl sub_8199DF0 + add r1, sp, 0x4 + movs r2, 0x82 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + adds r4, r5, 0 + adds r4, 0x18 + ldr r2, =0x01000400 + adds r0, r1, 0 + adds r1, r4, 0 + bl CpuSet + movs r0, 0x1 + adds r1, r4, 0 + bl SetBgTilemapBuffer + ldr r0, =gUnknown_08623110 + bl AddWindow + movs r4, 0 + strh r0, [r5, 0x8] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x42 + movs r2, 0x40 + bl box_border_load_tiles_and_pal + ldrb r0, [r5, 0x8] + movs r1, 0x42 + movs r2, 0x4 + bl sub_8098858 + ldr r1, =gUnknown_08622888 + str r4, [sp] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldrb r0, [r5, 0x8] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldrb r0, [r5, 0x8] + bl PutWindowTilemap + ldrb r0, [r5, 0x8] + movs r1, 0x3 + bl CopyWindowToVram + ldr r0, =gUnknown_08622868 + movs r1, 0x10 + movs r2, 0x20 + bl sub_81C7944 + ldr r0, =gUnknown_08DC91E8 + movs r1, 0x30 + movs r2, 0x20 + bl sub_81C7944 + bl sub_8124658 + lsls r0, 24 + cmp r0, 0 + bne _081CCAE0 + ldr r1, =0xffffa000 + movs r0, 0x1 + movs r2, 0 + bl ChangeBgY + b _081CCAEA + .pool +_081CCAE0: + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgY +_081CCAEA: + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81CCA1C + + thumb_func_start sub_81CCAFC +sub_81CCAFC: @ 81CCAFC + push {lr} + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_81CCAFC + + thumb_func_start sub_81CCB0C +sub_81CCB0C: @ 81CCB0C + push {r4,r5,lr} + sub sp, 0xC + adds r4, r0, 0 + movs r0, 0x10 + bl sub_81C763C + adds r5, r0, 0 + ldrb r0, [r5, 0x2] + cmp r0, 0x4 + bls _081CCB22 + b _081CCC40 +_081CCB22: + lsls r0, 2 + ldr r1, =_081CCB30 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081CCB30: + .4byte _081CCC1C + .4byte _081CCBDC + .4byte _081CCB44 + .4byte _081CCB8E + .4byte _081CCBDC +_081CCB44: + ldrb r0, [r4, 0x8] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4, 0x8] + movs r1, 0x2 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0xC + bl PutWindowRectTilemap + ldrb r0, [r4, 0x8] + adds r2, r5, 0x4 + movs r1, 0x1 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x7 + movs r3, 0 + bl Print + ldrh r1, [r5] + ldrb r2, [r5, 0x3] + adds r0, r4, 0 + bl sub_81CCD70 + ldrb r0, [r4, 0x8] + movs r1, 0x3 + bl CopyWindowToVram + movs r0, 0 + bl sub_81CCFA4 + b _081CCC40 +_081CCB8E: + ldrb r0, [r4, 0x8] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4, 0x8] + movs r1, 0x2 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0xC + bl PutWindowRectTilemap + ldrb r0, [r4, 0x8] + adds r2, r5, 0x4 + movs r1, 0x1 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x7 + movs r3, 0 + bl Print + ldr r1, =0x00001041 + movs r0, 0xC + str r0, [sp] + movs r0, 0xB + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0x1 + movs r2, 0x11 + movs r3, 0x6 + bl FillBgTilemapBufferRect + b _081CCC0C + .pool +_081CCBDC: + ldrb r0, [r4, 0x8] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4, 0x8] + bl PutWindowTilemap + ldrb r0, [r4, 0x8] + adds r2, r5, 0x4 + movs r1, 0x1 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x7 + movs r3, 0 + bl Print + ldrh r1, [r5] + ldrb r2, [r5, 0x3] + adds r0, r4, 0 + bl sub_81CCDE8 +_081CCC0C: + ldrb r0, [r4, 0x8] + movs r1, 0x3 + bl CopyWindowToVram + movs r0, 0x1 + bl sub_81CCFA4 + b _081CCC40 +_081CCC1C: + ldr r1, =0x00001041 + movs r0, 0xC + str r0, [sp] + movs r0, 0xD + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0x1 + movs r2, 0x11 + movs r3, 0x4 + bl FillBgTilemapBufferRect + movs r0, 0x1 + bl CopyBgTilemapBufferToVram + movs r0, 0x1 + bl sub_81CCFA4 +_081CCC40: + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CCB0C + + thumb_func_start sub_81CCC4C +sub_81CCC4C: @ 81CCC4C + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_81CCC4C + + thumb_func_start sub_81CCC5C +sub_81CCC5C: @ 81CCC5C + push {r4,lr} + adds r4, r0, 0 + ldr r0, =sub_81CCC9C + movs r1, 0x3 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CCC5C + + thumb_func_start sub_81CCC88 +sub_81CCC88: @ 81CCC88 + push {lr} + ldr r0, =sub_81CCC9C + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CCC88 + + thumb_func_start sub_81CCC9C +sub_81CCC9C: @ 81CCC9C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _081CCCE0 + movs r1, 0x90 + lsls r1, 3 + movs r0, 0x1 + movs r2, 0x1 + bl ChangeBgY + cmp r0, 0 + blt _081CCCD6 + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + adds r0, r4, 0 + bl DestroyTask +_081CCCD6: + bl sub_81CCF78 + b _081CCD04 + .pool +_081CCCE0: + movs r1, 0x90 + lsls r1, 3 + movs r0, 0x1 + movs r2, 0x2 + bl ChangeBgY + ldr r1, =0xffffa000 + cmp r0, r1 + bgt _081CCD00 + movs r0, 0x1 + movs r2, 0 + bl ChangeBgY + adds r0, r5, 0 + bl DestroyTask +_081CCD00: + bl sub_81CCF78 +_081CCD04: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CCC9C + + thumb_func_start sub_81CCD10 +sub_81CCD10: @ 81CCD10 + push {lr} + ldr r0, =sub_81CCD34 + movs r1, 0x1 + bl sub_81C7078 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CCD10 + + thumb_func_start sub_81CCD24 +sub_81CCD24: @ 81CCD24 + push {lr} + ldr r0, =sub_81CCD34 + bl sub_81C7124 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CCD24 + + thumb_func_start sub_81CCD34 +sub_81CCD34: @ 81CCD34 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x4 + bl sub_81C763C + adds r2, r0, 0 + cmp r4, 0x15 + ble _081CCD48 + movs r0, 0x4 + b _081CCD62 +_081CCD48: + ldr r0, =gUnknown_08623118 + lsls r1, r4, 3 + adds r0, 0x4 + adds r1, r0 + ldr r0, [r1] + movs r1, 0xC8 + muls r1, r4 + ldr r3, =0x00000818 + adds r1, r3 + adds r1, r2, r1 + bl LZ77UnCompWram + movs r0, 0x1 +_081CCD62: + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CCD34 + + thumb_func_start sub_81CCD70 +sub_81CCD70: @ 81CCD70 + push {r4-r6,lr} + sub sp, 0x8 + adds r6, r0, 0 + adds r3, r1, 0 + movs r4, 0 + ldr r0, =gUnknown_08623118 + ldrh r1, [r0] + adds r5, r0, 0 + cmp r1, r3 + bne _081CCD8A + ldrh r0, [r5, 0x2] + cmp r0, r2 + beq _081CCDA0 +_081CCD8A: + adds r4, 0x1 + cmp r4, 0x15 + bgt _081CCDA0 + lsls r0, r4, 3 + adds r1, r0, r5 + ldrh r0, [r1] + cmp r0, r3 + bne _081CCD8A + ldrh r0, [r1, 0x2] + cmp r0, r2 + bne _081CCD8A +_081CCDA0: + cmp r4, 0x16 + beq _081CCDD4 + ldr r1, =0x00001041 + movs r0, 0xC + str r0, [sp] + movs r0, 0xB + str r0, [sp, 0x4] + movs r0, 0x1 + movs r2, 0x11 + movs r3, 0x6 + bl FillBgTilemapBufferRect_Palette0 + movs r0, 0xC8 + adds r1, r4, 0 + muls r1, r0 + ldr r0, =0x00000818 + adds r1, r0 + adds r1, r6, r1 + movs r0, 0xA + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x1 + movs r2, 0x12 + movs r3, 0x6 + bl CopyToBgTilemapBufferRect +_081CCDD4: + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CCD70 + + thumb_func_start sub_81CCDE8 +sub_81CCDE8: @ 81CCDE8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0xC + mov r9, r0 + movs r5, 0 + ldr r6, =gStringVar1 + movs r4, 0x88 + lsls r4, 21 + lsls r1, 24 + mov r8, r1 + lsls r7, r2, 24 + b _081CCE34 + .pool +_081CCE08: + adds r0, r6, 0 + movs r2, 0 + movs r3, 0xC + bl StringCopyPadded + mov r1, r9 + ldrb r0, [r1, 0x8] + lsrs r1, r4, 24 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x7 + adds r2, r6, 0 + movs r3, 0 + bl Print + movs r0, 0x80 + lsls r0, 21 + adds r4, r0 + adds r5, 0x1 +_081CCE34: + lsls r2, r5, 24 + lsrs r2, 24 + mov r1, r8 + lsrs r0, r1, 24 + lsrs r1, r7, 24 + bl sub_8145CF4 + adds r1, r0, 0 + cmp r1, 0 + bne _081CCE08 + add sp, 0xC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81CCDE8 + + thumb_func_start sub_81CCE58 +sub_81CCE58: @ 81CCE58 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r0, 0x4 + bl sub_81C763C + adds r4, r0, 0 + bl sub_8124658 + lsls r0, 24 + movs r2, 0x84 + cmp r0, 0 + bne _081CCE74 + movs r2, 0xE4 +_081CCE74: + movs r5, 0 + lsls r7, r2, 16 + adds r4, 0xC + mov r8, r4 + movs r6, 0x98 + lsls r6, 16 +_081CCE80: + asrs r1, r6, 16 + ldr r0, =gUnknown_086231D0 + asrs r2, r7, 16 + movs r3, 0x8 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + ldr r0, =gSprites + adds r2, r0 + movs r0, 0 + strh r0, [r2, 0x2E] + lsls r4, r5, 2 + strh r4, [r2, 0x30] + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r0, r1, 22 + adds r1, r0, 0 + strh r0, [r2, 0x32] + movs r0, 0x96 + strh r0, [r2, 0x34] + strh r4, [r2, 0x36] + adds r1, r4 + ldr r4, =0x000003ff + adds r0, r4, 0 + ands r1, r0 + ldr r4, =0xfffffc00 + adds r0, r4, 0 + ands r3, r0 + orrs r3, r1 + strh r3, [r2, 0x4] + mov r0, r8 + adds r0, 0x4 + mov r8, r0 + subs r0, 0x4 + stm r0!, {r2} + movs r4, 0x80 + lsls r4, 14 + adds r6, r4 + adds r5, 0x1 + cmp r5, 0x2 + ble _081CCE80 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CCE58 + + thumb_func_start sub_81CCEF4 +sub_81CCEF4: @ 81CCEF4 + push {r4,r5,lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x34] + movs r1, 0x34 + ldrsh r4, [r3, r1] + cmp r4, 0 + beq _081CCF06 + subs r0, 0x1 + b _081CCF6E +_081CCF06: + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB + ble _081CCF16 + strh r4, [r3, 0x2E] +_081CCF16: + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _081CCF26 + strh r4, [r3, 0x30] +_081CCF26: + ldrh r5, [r3, 0x30] + ldrh r2, [r3, 0x32] + adds r1, r5, r2 + ldr r2, =0x000003ff + adds r0, r2, 0 + ands r1, r0 + ldrh r2, [r3, 0x4] + ldr r0, =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, 0x4] + ldrh r1, [r3, 0x38] + movs r2, 0x38 + ldrsh r0, [r3, r2] + cmp r0, 0x3 + bgt _081CCF5C + movs r2, 0x2E + ldrsh r0, [r3, r2] + cmp r0, 0 + bne _081CCF70 + adds r0, r1, 0x1 + strh r0, [r3, 0x38] + b _081CCF6C + .pool +_081CCF5C: + lsls r0, r5, 16 + asrs r0, 16 + movs r2, 0x36 + ldrsh r1, [r3, r2] + cmp r0, r1 + bne _081CCF70 + strh r4, [r3, 0x38] + strh r4, [r3, 0x2E] +_081CCF6C: + movs r0, 0x78 +_081CCF6E: + strh r0, [r3, 0x34] +_081CCF70: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81CCEF4 + + thumb_func_start sub_81CCF78 +sub_81CCF78: @ 81CCF78 + push {r4,lr} + movs r0, 0x4 + bl sub_81C763C + adds r4, r0, 0 + movs r0, 0x1 + bl GetBgY + asrs r0, 8 + movs r1, 0x84 + subs r1, r0 + adds r4, 0xC + movs r2, 0x2 +_081CCF92: + ldm r4!, {r0} + strh r1, [r0, 0x22] + subs r2, 0x1 + cmp r2, 0 + bge _081CCF92 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CCF78 + + thumb_func_start sub_81CCFA4 +sub_81CCFA4: @ 81CCFA4 + push {r4-r6,lr} + adds r4, r0, 0 + movs r0, 0x4 + bl sub_81C763C + movs r1, 0x1 + ands r4, r1 + lsls r5, r4, 2 + movs r6, 0x5 + negs r6, r6 + adds r4, r0, 0 + adds r4, 0xC + movs r3, 0x2 +_081CCFBE: + ldm r4!, {r0} + adds r0, 0x3E + ldrb r2, [r0] + adds r1, r6, 0 + ands r1, r2 + orrs r1, r5 + strb r1, [r0] + subs r3, 0x1 + cmp r3, 0 + bge _081CCFBE + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81CCFA4 + + thumb_func_start sub_81CCFD8 +sub_81CCFD8: @ 81CCFD8 + push {r4,lr} + ldr r1, =0x0000678c + movs r0, 0xB + bl sub_81C761C + adds r4, r0, 0 + cmp r4, 0 + beq _081CD01C + ldr r1, =0x00006428 + adds r0, r4, r1 + bl sub_81D1ED4 + bl sub_81CD970 + ldr r1, =gKeyRepeatStartDelay + movs r0, 0x14 + strh r0, [r1] + ldr r0, =0x00006304 + adds r1, r4, r0 + ldr r0, =sub_81CD08C + str r0, [r1] + movs r0, 0x1 + b _081CD01E + .pool +_081CD01C: + movs r0, 0 +_081CD01E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CCFD8 + + thumb_func_start sub_81CD024 +sub_81CD024: @ 81CD024 + push {r4,lr} + ldr r1, =0x0000678c + movs r0, 0xB + bl sub_81C761C + adds r4, r0, 0 + cmp r4, 0 + beq _081CD068 + ldr r1, =0x00006428 + adds r0, r4, r1 + bl sub_81D1ED4 + bl sub_81CD9F8 + ldr r1, =gKeyRepeatStartDelay + movs r0, 0x14 + strh r0, [r1] + ldr r0, =0x00006304 + adds r1, r4, r0 + ldr r0, =sub_81CD08C + str r0, [r1] + movs r0, 0x1 + b _081CD06A + .pool +_081CD068: + movs r0, 0 +_081CD06A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CD024 + + thumb_func_start sub_81CD070 +sub_81CD070: @ 81CD070 + push {lr} + movs r0, 0xB + bl sub_81C763C + ldr r2, =0x00006304 + adds r1, r0, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CD070 + + thumb_func_start sub_81CD08C +sub_81CD08C: @ 81CD08C + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x12 + bl sub_81C763C + adds r5, r0, 0 + adds r0, r4, 0 + bl sub_81CD1E4 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _081CD100 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _081CD0D0 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081CD100 + movs r1, 0xC6 + lsls r1, 7 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _081CD0F0 + ldrh r1, [r5, 0x2] + ldrh r0, [r5] + subs r0, 0x1 + cmp r1, r0 + bne _081CD100 +_081CD0D0: + movs r0, 0x5 + bl PlaySE + ldr r0, =0x00006304 + adds r1, r4, r0 + ldr r0, =sub_81CD19C + str r0, [r1] + movs r2, 0x2 + b _081CD100 + .pool +_081CD0F0: + movs r0, 0x5 + bl PlaySE + movs r2, 0x5 + ldr r0, =0x00006304 + adds r1, r4, r0 + ldr r0, =sub_81CD110 + str r0, [r1] +_081CD100: + adds r0, r2, 0 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CD08C + + thumb_func_start sub_81CD110 +sub_81CD110: @ 81CD110 + push {r4-r6,lr} + sub sp, 0x4 + adds r6, r0, 0 + movs r4, 0 + bl sub_811FBA4 + lsls r0, 24 + cmp r0, 0 + bne _081CD18A + bl sub_81CEF14 + ldr r1, =0x00006786 + adds r5, r6, r1 + movs r1, 0 + ldrsb r1, [r5, r1] + ldr r2, =0x00006783 + adds r4, r6, r2 + adds r1, r4, r1 + strb r0, [r1] + movs r0, 0x12 + bl sub_81C763C + ldrh r1, [r0, 0x2] + lsls r1, 2 + adds r0, r1 + ldrb r2, [r0, 0x4] + ldrb r3, [r0, 0x5] + movs r0, 0 + ldrsb r0, [r5, r0] + adds r4, r0 + ldrb r1, [r4] + mov r0, sp + strb r1, [r0] + cmp r2, 0xE + bne _081CD174 + movs r0, 0x64 + muls r0, r3 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x8 + mov r2, sp + bl SetMonData + b _081CD180 + .pool +_081CD174: + adds r0, r2, 0 + adds r1, r3, 0 + movs r2, 0x8 + mov r3, sp + bl set_pokemon_data_from_any_box +_081CD180: + ldr r0, =0x00006304 + adds r1, r6, r0 + ldr r0, =sub_81CD08C + str r0, [r1] + movs r4, 0x6 +_081CD18A: + adds r0, r4, 0 + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CD110 + + thumb_func_start sub_81CD19C +sub_81CD19C: @ 81CD19C + push {lr} + movs r1, 0xC6 + lsls r1, 7 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _081CD1B4 + ldr r0, =0x000186aa + b _081CD1B6 + .pool +_081CD1B4: + ldr r0, =0x000186a2 +_081CD1B6: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CD19C + + thumb_func_start sub_81CD1C0 +sub_81CD1C0: @ 81CD1C0 + push {lr} + movs r0, 0xB + bl sub_81C763C + movs r1, 0xC6 + lsls r1, 7 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _081CD1DA + movs r0, 0x12 + bl sub_81C7650 +_081CD1DA: + movs r0, 0xB + bl sub_81C7650 + pop {r0} + bx r0 + thumb_func_end sub_81CD1C0 + + thumb_func_start sub_81CD1E4 +sub_81CD1E4: @ 81CD1E4 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x12 + bl sub_81C763C + adds r2, r0, 0 + movs r3, 0 + ldr r0, =gMain + ldrh r1, [r0, 0x2C] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081CD220 + movs r1, 0xC6 + lsls r1, 7 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _081CD210 + ldrh r0, [r2, 0x2] + cmp r0, 0 + beq _081CD24E +_081CD210: + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + b _081CD246 + .pool +_081CD220: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081CD24E + movs r1, 0xC6 + lsls r1, 7 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _081CD23E + ldrh r1, [r2, 0x2] + ldrh r0, [r2] + subs r0, 0x1 + cmp r1, r0 + bge _081CD24E +_081CD23E: + movs r0, 0x5 + bl PlaySE + movs r0, 0 +_081CD246: + bl sub_81CD258 + lsls r0, 24 + lsrs r3, r0, 24 +_081CD24E: + adds r0, r3, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CD1E4 + + thumb_func_start sub_81CD258 +sub_81CD258: @ 81CD258 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r0, 0xB + bl sub_81C763C + adds r4, r0, 0 + movs r0, 0x12 + bl sub_81C763C + adds r5, r0, 0 + mov r0, r8 + cmp r0, 0 + beq _081CD284 + ldr r1, =0x00006788 + adds r0, r4, r1 + b _081CD288 + .pool +_081CD284: + ldr r2, =0x00006787 + adds r0, r4, r2 +_081CD288: + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r0, 16 + adds r7, r0, 0 + ldr r1, =0x00006428 + adds r0, r4, r1 + ldr r2, =0x00006786 + adds r1, r4, r2 + movs r2, 0 + ldrsb r2, [r1, r2] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 2 + ldr r3, =0x0000643c + adds r1, r3 + adds r1, r4, r1 + lsls r2, r7, 2 + adds r2, r7 + lsls r2, 2 + adds r2, r3 + adds r2, r4, r2 + bl sub_81D1F84 + ldrh r6, [r5, 0x2] + bl sub_81CDD5C + cmp r0, 0 + beq _081CD2D8 + ldrh r1, [r5] + b _081CD2DC + .pool +_081CD2D8: + ldrh r1, [r5] + subs r1, 0x1 +_081CD2DC: + eors r1, r6 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + adds r6, r0, 0 + mov r0, r8 + cmp r0, 0 + beq _081CD332 + ldr r1, =0x00006787 + adds r2, r4, r1 + ldrb r0, [r2] + adds r1, 0x1 + adds r3, r4, r1 + strb r0, [r3] + ldr r0, =0x00006786 + adds r1, r4, r0 + ldrb r0, [r1] + strb r0, [r2] + strb r7, [r1] + ldrb r1, [r3] + ldr r2, =0x00006789 + adds r0, r4, r2 + strb r1, [r0] + ldrh r0, [r5, 0x2] + cmp r0, 0 + bne _081CD312 + ldrh r0, [r5] +_081CD312: + subs r1, r0, 0x1 + strh r1, [r5, 0x2] + lsls r0, r1, 16 + cmp r0, 0 + beq _081CD32C + subs r1, 0x1 + b _081CD384 + .pool +_081CD32C: + ldrh r0, [r5] + subs r1, r0, 0x1 + b _081CD384 +_081CD332: + ldr r0, =0x00006788 + adds r2, r4, r0 + ldrb r0, [r2] + ldr r1, =0x00006787 + adds r3, r4, r1 + strb r0, [r3] + ldr r0, =0x00006786 + adds r1, r4, r0 + ldrb r0, [r1] + strb r0, [r2] + strb r7, [r1] + ldrb r1, [r3] + ldr r2, =0x00006789 + adds r0, r4, r2 + strb r1, [r0] + ldrh r1, [r5, 0x2] + ldrh r0, [r5] + subs r0, 0x1 + cmp r1, r0 + bge _081CD370 + adds r0, r1, 0x1 + b _081CD372 + .pool +_081CD370: + movs r0, 0 +_081CD372: + strh r0, [r5, 0x2] + ldrh r1, [r5, 0x2] + ldrh r0, [r5] + subs r0, 0x1 + cmp r1, r0 + bge _081CD382 + adds r1, 0x1 + b _081CD384 +_081CD382: + movs r1, 0 +_081CD384: + ldr r2, =0x00006302 + adds r0, r4, r2 + strh r1, [r0] + ldrh r4, [r5, 0x2] + bl sub_81CDD5C + cmp r0, 0 + beq _081CD39C + ldrh r1, [r5] + b _081CD3A0 + .pool +_081CD39C: + ldrh r1, [r5] + subs r1, 0x1 +_081CD3A0: + eors r1, r4 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + cmp r6, 0 + bne _081CD3B0 + movs r0, 0x3 + b _081CD3BA +_081CD3B0: + cmp r0, 0 + beq _081CD3B8 + movs r0, 0x1 + b _081CD3BA +_081CD3B8: + movs r0, 0x4 +_081CD3BA: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81CD258 + + thumb_func_start sub_81CD3C4 +sub_81CD3C4: @ 81CD3C4 + push {r4,lr} + movs r0, 0xB + bl sub_81C763C + adds r4, r0, 0 + movs r0, 0x12 + bl sub_81C763C + adds r2, r0, 0 + ldr r1, =0x0000678a + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0x9 + bls _081CD3E2 + b _081CD530 +_081CD3E2: + lsls r0, 2 + ldr r1, =_081CD3F4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081CD3F4: + .4byte _081CD41C + .4byte _081CD428 + .4byte _081CD434 + .4byte _081CD440 + .4byte _081CD490 + .4byte _081CD4A8 + .4byte _081CD4C0 + .4byte _081CD4D8 + .4byte _081CD4F0 + .4byte _081CD508 +_081CD41C: + movs r1, 0x2 + ldrsh r0, [r2, r1] + movs r1, 0 + bl sub_81CD824 + b _081CD530 +_081CD428: + movs r1, 0x2 + ldrsh r0, [r2, r1] + movs r1, 0 + bl sub_81CDA1C + b _081CD530 +_081CD434: + movs r1, 0x2 + ldrsh r0, [r2, r1] + movs r1, 0 + bl sub_81CDB98 + b _081CD530 +_081CD440: + ldrh r0, [r2] + cmp r0, 0x1 + bne _081CD468 + ldr r2, =0x00006786 + adds r0, r4, r2 + movs r1, 0 + strb r1, [r0] + adds r2, 0x1 + adds r0, r4, r2 + strb r1, [r0] + adds r2, 0x1 + adds r0, r4, r2 + strb r1, [r0] + adds r2, 0x2 + adds r0, r4, r2 + strb r1, [r0] + movs r0, 0x1 + b _081CD53C + .pool +_081CD468: + ldr r0, =0x00006786 + adds r1, r4, r0 + movs r0, 0 + strb r0, [r1] + ldr r2, =0x00006787 + adds r1, r4, r2 + movs r0, 0x1 + strb r0, [r1] + ldr r0, =0x00006788 + adds r1, r4, r0 + movs r0, 0x2 + strb r0, [r1] + b _081CD530 + .pool +_081CD490: + ldrh r0, [r2, 0x2] + adds r0, 0x1 + ldrh r2, [r2] + cmp r0, r2 + blt _081CD49C + movs r0, 0 +_081CD49C: + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + bl sub_81CD824 + b _081CD530 +_081CD4A8: + ldrh r0, [r2, 0x2] + adds r0, 0x1 + ldrh r2, [r2] + cmp r0, r2 + blt _081CD4B4 + movs r0, 0 +_081CD4B4: + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + bl sub_81CDA1C + b _081CD530 +_081CD4C0: + ldrh r0, [r2, 0x2] + adds r0, 0x1 + ldrh r2, [r2] + cmp r0, r2 + blt _081CD4CC + movs r0, 0 +_081CD4CC: + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + bl sub_81CDB98 + b _081CD530 +_081CD4D8: + ldrh r0, [r2, 0x2] + subs r0, 0x1 + cmp r0, 0 + bge _081CD4E4 + ldrh r0, [r2] + subs r0, 0x1 +_081CD4E4: + lsls r0, 16 + asrs r0, 16 + movs r1, 0x2 + bl sub_81CD824 + b _081CD530 +_081CD4F0: + ldrh r0, [r2, 0x2] + subs r0, 0x1 + cmp r0, 0 + bge _081CD4FC + ldrh r0, [r2] + subs r0, 0x1 +_081CD4FC: + lsls r0, 16 + asrs r0, 16 + movs r1, 0x2 + bl sub_81CDA1C + b _081CD530 +_081CD508: + ldrh r0, [r2, 0x2] + subs r0, 0x1 + cmp r0, 0 + bge _081CD514 + ldrh r0, [r2] + subs r0, 0x1 +_081CD514: + lsls r0, 16 + asrs r0, 16 + movs r1, 0x2 + bl sub_81CDB98 + ldr r2, =0x0000678a + adds r1, r4, r2 + movs r0, 0 + strb r0, [r1] + movs r0, 0x1 + b _081CD53C + .pool +_081CD530: + ldr r0, =0x0000678a + adds r1, r4, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r0, 0 +_081CD53C: + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CD3C4 + + thumb_func_start sub_81CD548 +sub_81CD548: @ 81CD548 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + movs r0, 0xB + bl sub_81C763C + adds r1, r0, 0 + cmp r4, 0x1 + beq _081CD588 + cmp r4, 0x1 + bgt _081CD566 + cmp r4, 0 + beq _081CD56C + b _081CD5C4 +_081CD566: + cmp r5, 0x2 + beq _081CD5A4 + b _081CD5C4 +_081CD56C: + ldr r2, =0x00006302 + adds r0, r1, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + ldr r2, =0x00006789 + adds r1, r2 + ldrb r1, [r1] + bl sub_81CD824 + b _081CD5C4 + .pool +_081CD588: + ldr r2, =0x00006302 + adds r0, r1, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + ldr r2, =0x00006789 + adds r1, r2 + ldrb r1, [r1] + bl sub_81CDA1C + b _081CD5C4 + .pool +_081CD5A4: + ldr r2, =0x00006302 + adds r0, r1, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + ldr r2, =0x00006789 + adds r1, r2 + ldrb r1, [r1] + bl sub_81CDB98 + movs r0, 0x1 + b _081CD5C6 + .pool +_081CD5C4: + movs r0, 0 +_081CD5C6: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CD548 + + thumb_func_start sub_81CD5CC +sub_81CD5CC: @ 81CD5CC + push {r4,lr} + adds r4, r0, 0 + lsls r2, 16 + lsrs r2, 16 + b _081CD5E4 +_081CD5D6: + strb r3, [r4] + adds r1, 0x1 + adds r4, 0x1 + lsls r0, r2, 16 + ldr r2, =0xffff0000 + adds r0, r2 + lsrs r2, r0, 16 +_081CD5E4: + ldrb r3, [r1] + adds r0, r3, 0 + cmp r0, 0xFF + bne _081CD5D6 + adds r1, r2, 0 + lsls r0, r1, 16 + ldr r2, =0xffff0000 + adds r0, r2 + lsrs r2, r0, 16 + lsls r1, 16 + cmp r1, 0 + ble _081CD612 + movs r3, 0 +_081CD5FE: + strb r3, [r4] + adds r4, 0x1 + adds r1, r2, 0 + lsls r0, r1, 16 + ldr r2, =0xffff0000 + adds r0, r2 + lsrs r2, r0, 16 + lsls r1, 16 + cmp r1, 0 + bgt _081CD5FE +_081CD612: + movs r0, 0xFF + strb r0, [r4] + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CD5CC + + thumb_func_start sub_81CD624 +sub_81CD624: @ 81CD624 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r5, r0, 0 + adds r4, r1, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r2, 24 + lsrs r2, 24 + mov r10, r2 + movs r0, 0x12 + bl sub_81C763C + lsls r4, 2 + adds r0, r4 + ldrb r4, [r0, 0x4] + mov r8, r4 + ldrb r6, [r0, 0x5] + mov r9, r6 + movs r0, 0xFC + strb r0, [r5] + adds r5, 0x1 + movs r0, 0x4 + strb r0, [r5] + adds r5, 0x1 + movs r0, 0x8 + strb r0, [r5] + adds r5, 0x1 + movs r0, 0 + strb r0, [r5] + adds r5, 0x1 + movs r0, 0x9 + strb r0, [r5] + adds r5, 0x1 + adds r0, r4, 0 + adds r1, r6, 0 + movs r2, 0x2D + movs r3, 0 + bl sub_81D2C68 + cmp r0, 0 + beq _081CD690 + ldr r1, =gUnknown_085E8264 + adds r0, r5, 0 + movs r2, 0 + movs r3, 0xC + bl StringCopyPadded + b _081CD80E + .pool +_081CD690: + adds r0, r4, 0 + adds r1, r6, 0 + movs r2, 0x2 + adds r3, r5, 0 + bl sub_81D2C68 + adds r0, r5, 0 + bl StringGetEnd10 + adds r0, r4, 0 + adds r1, r6, 0 + movs r2, 0xB + movs r3, 0 + bl sub_81D2C68 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r4, 0xE + bne _081CD6E0 + movs r0, 0x64 + adds r4, r6, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + adds r0, r4, 0 + bl pokemon_get_gender + lsls r0, 24 + lsrs r6, r0, 24 + b _081CD6FE + .pool +_081CD6E0: + mov r0, r8 + mov r1, r9 + bl get_pokemon_by_box_and_pos + adds r4, r0, 0 + bl pokemon_roll_gender + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r4, 0 + bl sub_80690C0 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 +_081CD6FE: + cmp r7, 0x1D + beq _081CD706 + cmp r7, 0x20 + bne _081CD71C +_081CD706: + movs r0, 0xB + adds r1, r7, 0 + muls r1, r0 + ldr r0, =gSpeciesNames + adds r1, r0 + adds r0, r5, 0 + bl StringCompare + cmp r0, 0 + bne _081CD71C + movs r6, 0xFF +_081CD71C: + adds r3, r5, 0 + b _081CD726 + .pool +_081CD724: + adds r3, 0x1 +_081CD726: + ldrb r0, [r3] + cmp r0, 0xFF + bne _081CD724 + movs r1, 0xFC + strb r1, [r3] + adds r3, 0x1 + movs r0, 0x12 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x3C + strb r0, [r3] + adds r3, 0x1 + cmp r6, 0 + beq _081CD74A + cmp r6, 0xFE + beq _081CD76E + movs r0, 0x77 + b _081CD790 +_081CD74A: + strb r1, [r3] + adds r3, 0x1 + movs r0, 0x1 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x4 + strb r0, [r3] + adds r3, 0x1 + strb r1, [r3] + adds r3, 0x1 + movs r0, 0x3 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x5 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0xB5 + b _081CD790 +_081CD76E: + strb r1, [r3] + adds r3, 0x1 + movs r0, 0x1 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x6 + strb r0, [r3] + adds r3, 0x1 + strb r1, [r3] + adds r3, 0x1 + movs r0, 0x3 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x7 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0xB6 +_081CD790: + strb r0, [r3] + adds r3, 0x1 + movs r0, 0xFC + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x4 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x8 + strb r0, [r3] + adds r3, 0x1 + movs r5, 0 + strb r5, [r3] + adds r3, 0x1 + movs r0, 0x9 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0xBA + strb r0, [r3] + adds r3, 0x1 + movs r0, 0xF9 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x5 + strb r0, [r3] + adds r3, 0x1 + adds r4, r3, 0 + adds r0, r4, 0 + mov r1, r8 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r3, r0, 0 + subs r4, r3, r4 + lsls r4, 16 + lsrs r4, 16 + strb r5, [r3] + adds r3, 0x1 + mov r0, r10 + cmp r0, 0 + bne _081CD808 + movs r0, 0x3 + subs r0, r4 + lsls r0, 16 + ldr r1, =0xffff0000 + adds r0, r1 + lsrs r4, r0, 16 + ldr r0, =0x0000ffff + cmp r4, r0 + beq _081CD808 + movs r2, 0 + adds r1, r0, 0 +_081CD7FA: + strb r2, [r3] + adds r3, 0x1 + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r1 + bne _081CD7FA +_081CD808: + movs r0, 0xFF + strb r0, [r3] + adds r0, r3, 0 +_081CD80E: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CD624 + + thumb_func_start sub_81CD824 +sub_81CD824: @ 81CD824 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r1, 24 + lsrs r6, r1, 24 + movs r0, 0xB + bl sub_81C763C + adds r5, r0, 0 + movs r0, 0x12 + bl sub_81C763C + adds r7, r0, 0 + mov r1, r8 + lsls r0, r1, 16 + asrs r4, r0, 16 + bl sub_81CDD5C + cmp r0, 0 + beq _081CD85A + ldrh r2, [r7] + cmp r4, r2 + bne _081CD862 + b _081CD900 +_081CD85A: + ldrh r0, [r7] + subs r0, 0x1 + cmp r4, r0 + beq _081CD900 +_081CD862: + lsls r0, r6, 6 + ldr r1, =0x00006368 + adds r0, r1 + adds r0, r5, r0 + mov r2, r8 + lsls r4, r2, 16 + lsrs r1, r4, 16 + movs r2, 0 + bl sub_81CD624 + asrs r4, 14 + adds r4, r7, r4 + ldrb r3, [r4, 0x4] + lsls r0, r6, 1 + adds r0, r6 + lsls r4, r0, 3 + ldr r1, =0x00006320 + adds r0, r5, r1 + adds r0, r4 + movs r2, 0 + movs r1, 0xFC + strb r1, [r0] + ldr r1, =0x00006321 + adds r0, r5, r1 + adds r0, r4 + movs r1, 0x4 + strb r1, [r0] + ldr r1, =0x00006322 + adds r0, r5, r1 + adds r0, r4 + movs r1, 0x8 + strb r1, [r0] + ldr r1, =0x00006323 + adds r0, r5, r1 + adds r0, r4 + strb r2, [r0] + ldr r2, =0x00006324 + adds r0, r5, r2 + adds r0, r4 + movs r1, 0x9 + strb r1, [r0] + cmp r3, 0xE + bne _081CD8E4 + adds r0, r4, r5 + ldr r1, =0x00006325 + adds r0, r1 + ldr r1, =gUnknown_085EBFCE + b _081CD8F4 + .pool +_081CD8E4: + adds r4, r5 + ldr r2, =0x00006325 + adds r4, r2 + adds r0, r3, 0 + bl sav3_get_box_name + adds r1, r0, 0 + adds r0, r4, 0 +_081CD8F4: + movs r2, 0x8 + bl sub_81CD5CC + b _081CD95C + .pool +_081CD900: + movs r1, 0 + lsls r4, r6, 6 + lsls r0, r6, 1 + mov r8, r0 + adds r3, r4, 0 + ldr r0, =0x00006368 + adds r2, r5, r0 + movs r7, 0 +_081CD910: + adds r0, r1, r3 + adds r0, r2, r0 + strb r7, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0xB + bls _081CD910 + adds r1, r4 + ldr r2, =0x00006368 + adds r0, r5, r2 + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] + movs r1, 0 + mov r2, r8 + adds r0, r2, r6 + lsls r3, r0, 3 + ldr r0, =0x00006320 + adds r2, r5, r0 + movs r4, 0 +_081CD93A: + adds r0, r1, r3 + adds r0, r2, r0 + strb r4, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x7 + bls _081CD93A + mov r2, r8 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1, r0 + ldr r2, =0x00006320 + adds r1, r5, r2 + adds r1, r0 + movs r0, 0xFF + strb r0, [r1] +_081CD95C: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CD824 + + thumb_func_start sub_81CD970 +sub_81CD970: @ 81CD970 + push {r4-r7,lr} + movs r0, 0xB + bl sub_81C763C + adds r7, r0, 0 + ldr r1, =0x000006ac + movs r0, 0x12 + bl sub_81C761C + adds r6, r0, 0 + movs r0, 0xC6 + lsls r0, 7 + adds r1, r7, r0 + movs r0, 0 + strb r0, [r1] + movs r4, 0 + movs r5, 0 + b _081CD9C4 + .pool +_081CD998: + movs r0, 0x64 + muls r0, r4 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x2D + bl GetMonData + adds r2, r0, 0 + cmp r2, 0 + bne _081CD9BE + lsls r1, r5, 2 + adds r1, r6, r1 + movs r0, 0xE + strb r0, [r1, 0x4] + strb r4, [r1, 0x5] + strh r2, [r1, 0x6] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_081CD9BE: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_081CD9C4: + bl calc_player_party_count + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bcc _081CD998 + lsls r0, r5, 2 + adds r0, r6, r0 + movs r1, 0 + strb r1, [r0, 0x4] + strb r1, [r0, 0x5] + movs r2, 0 + strh r1, [r0, 0x6] + strh r1, [r6, 0x2] + adds r0, r5, 0x1 + strh r0, [r6] + ldr r1, =0x0000678a + adds r0, r7, r1 + strb r2, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CD970 + + thumb_func_start sub_81CD9F8 +sub_81CD9F8: @ 81CD9F8 + push {lr} + movs r0, 0xB + bl sub_81C763C + movs r1, 0xC6 + lsls r1, 7 + adds r2, r0, r1 + movs r3, 0 + movs r1, 0x1 + strb r1, [r2] + ldr r1, =0x0000678a + adds r0, r1 + strb r3, [r0] + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CD9F8 + + thumb_func_start sub_81CDA1C +sub_81CDA1C: @ 81CDA1C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + movs r0, 0xB + bl sub_81C763C + mov r8, r0 + movs r0, 0x12 + bl sub_81C763C + adds r4, r0, 0 + lsls r0, r6, 16 + asrs r5, r0, 16 + bl sub_81CDD5C + cmp r0, 0 + beq _081CDA52 + ldrh r0, [r4] + cmp r5, r0 + bne _081CDA5A + b _081CDB48 +_081CDA52: + ldrh r0, [r4] + subs r0, 0x1 + cmp r5, r0 + beq _081CDB48 +_081CDA5A: + lsls r0, r6, 16 + asrs r0, 14 + adds r0, r4, r0 + ldrb r6, [r0, 0x4] + ldrb r7, [r0, 0x5] + adds r0, r6, 0 + adds r1, r7, 0 + movs r2, 0x16 + movs r3, 0 + bl sub_81D2C68 + mov r1, r9 + lsls r5, r1, 2 + adds r4, r5, r1 + ldr r1, =0x00006428 + add r1, r8 + adds r1, r4 + strb r0, [r1] + adds r0, r6, 0 + adds r1, r7, 0 + movs r2, 0x2F + movs r3, 0 + bl sub_81D2C68 + ldr r1, =0x00006429 + add r1, r8 + adds r1, r4 + strb r0, [r1] + adds r0, r6, 0 + adds r1, r7, 0 + movs r2, 0x21 + movs r3, 0 + bl sub_81D2C68 + ldr r1, =0x0000642a + add r1, r8 + adds r1, r4 + strb r0, [r1] + adds r0, r6, 0 + adds r1, r7, 0 + movs r2, 0x18 + movs r3, 0 + bl sub_81D2C68 + ldr r1, =0x0000642b + add r1, r8 + adds r1, r4 + strb r0, [r1] + adds r0, r6, 0 + adds r1, r7, 0 + movs r2, 0x17 + movs r3, 0 + bl sub_81D2C68 + ldr r1, =0x0000642c + add r1, r8 + adds r1, r4 + strb r0, [r1] + movs r0, 0xCF + lsls r0, 7 + add r0, r8 + mov r2, r9 + adds r4, r0, r2 + adds r0, r6, 0 + adds r1, r7, 0 + movs r2, 0x30 + movs r3, 0 + bl sub_81D2C68 + cmp r0, 0xFF + beq _081CDB10 + adds r0, r6, 0 + adds r1, r7, 0 + movs r2, 0x30 + movs r3, 0 + bl sub_81D2C68 + movs r1, 0x1D + bl __udivsi3 + b _081CDB12 + .pool +_081CDB10: + movs r0, 0x9 +_081CDB12: + strb r0, [r4] + adds r0, r6, 0 + adds r1, r7, 0 + movs r2, 0x8 + movs r3, 0 + bl sub_81D2C68 + ldr r1, =0x00006783 + add r1, r8 + add r1, r9 + strb r0, [r1] + mov r0, r9 + adds r1, r5, r0 + ldr r2, =0x00006428 + adds r0, r1, r2 + add r0, r8 + lsls r1, 2 + adds r2, 0x14 + adds r1, r2 + add r1, r8 + bl sub_81D2754 + b _081CDB80 + .pool +_081CDB48: + movs r2, 0 + mov r0, r9 + lsls r5, r0, 2 + add r5, r9 + ldr r4, =0x00006428 + add r4, r8 + lsls r3, r5, 2 + mov r9, r2 + ldr r7, =0x0000643c + movs r6, 0x9B +_081CDB5C: + adds r0, r2, r5 + adds r0, r4, r0 + mov r1, r9 + strb r1, [r0] + lsls r0, r2, 2 + adds r0, r3 + add r0, r8 + adds r1, r0, r7 + strh r6, [r1] + ldr r1, =0x0000643e + adds r0, r1 + movs r1, 0x5B + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x4 + bls _081CDB5C +_081CDB80: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CDA1C + + thumb_func_start sub_81CDB98 +sub_81CDB98: @ 81CDB98 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + movs r0, 0xB + bl sub_81C763C + adds r7, r0, 0 + movs r0, 0x12 + bl sub_81C763C + adds r4, r0, 0 + lsls r0, r6, 16 + asrs r5, r0, 16 + bl sub_81CDD5C + cmp r0, 0 + beq _081CDBCC + ldrh r0, [r4] + b _081CDBD0 +_081CDBCC: + ldrh r0, [r4] + subs r0, 0x1 +_081CDBD0: + cmp r5, r0 + beq _081CDC3E + lsls r0, r6, 16 + asrs r0, 14 + adds r0, r4, r0 + ldrb r5, [r0, 0x4] + ldrb r6, [r0, 0x5] + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x41 + movs r3, 0 + bl sub_81D2C68 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x1 + movs r3, 0 + bl sub_81D2C68 + mov r8, r0 + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0 + movs r3, 0 + bl sub_81D2C68 + adds r5, r0, 0 + lsls r0, r4, 3 + ldr r1, =gMonFrontPicTable + adds r0, r1 + mov r2, r9 + lsls r1, r2, 13 + movs r2, 0xC0 + lsls r2, 2 + adds r1, r2 + adds r1, r7, r1 + movs r2, 0x1 + str r2, [sp] + adds r2, r4, 0 + adds r3, r5, 0 + bl LoadSpecialPokePic + adds r0, r4, 0 + mov r1, r8 + adds r2, r5, 0 + bl species_and_otid_get_pal + mov r2, r9 + lsls r1, r2, 7 + adds r1, r7, r1 + bl LZ77UnCompWram +_081CDC3E: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CDB98 + + thumb_func_start sub_81CDC50 +sub_81CDC50: @ 81CDC50 + push {lr} + movs r0, 0x12 + bl sub_81C763C + ldrh r0, [r0] + pop {r1} + bx r1 + thumb_func_end sub_81CDC50 + + thumb_func_start sub_81CDC60 +sub_81CDC60: @ 81CDC60 + push {lr} + movs r0, 0x12 + bl sub_81C763C + ldrh r0, [r0, 0x2] + pop {r1} + bx r1 + thumb_func_end sub_81CDC60 + + thumb_func_start sub_81CDC70 +sub_81CDC70: @ 81CDC70 + push {lr} + movs r0, 0xB + bl sub_81C763C + ldr r1, =0x00006428 + adds r0, r1 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CDC70 + + thumb_func_start sub_81CDC84 +sub_81CDC84: @ 81CDC84 + push {lr} + movs r0, 0xB + bl sub_81C763C + ldr r1, =0x00006786 + adds r0, r1 + ldrb r0, [r0] + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CDC84 + + thumb_func_start sub_81CDC9C +sub_81CDC9C: @ 81CDC9C + push {lr} + movs r0, 0xB + bl sub_81C763C + ldr r1, =0x00006302 + adds r0, r1 + ldrb r0, [r0] + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CDC9C + + thumb_func_start sub_81CDCB4 +sub_81CDCB4: @ 81CDCB4 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0xB + bl sub_81C763C + lsls r4, 13 + movs r1, 0xC0 + lsls r1, 2 + adds r4, r1 + adds r0, r4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CDCB4 + + thumb_func_start sub_81CDCD4 +sub_81CDCD4: @ 81CDCD4 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0xB + bl sub_81C763C + lsls r4, 7 + adds r0, r4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CDCD4 + + thumb_func_start sub_81CDCEC +sub_81CDCEC: @ 81CDCEC + push {lr} + movs r0, 0xB + bl sub_81C763C + ldr r1, =0x00006789 + adds r0, r1 + ldrb r0, [r0] + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CDCEC + + thumb_func_start sub_81CDD04 +sub_81CDD04: @ 81CDD04 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0xB + bl sub_81C763C + lsls r4, 6 + ldr r1, =0x00006368 + adds r4, r1 + adds r0, r4 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CDD04 + + thumb_func_start sub_81CDD24 +sub_81CDD24: @ 81CDD24 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0xB + bl sub_81C763C + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 3 + ldr r2, =0x00006320 + adds r1, r2 + adds r0, r1 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CDD24 + + thumb_func_start sub_81CDD48 +sub_81CDD48: @ 81CDD48 + push {lr} + movs r0, 0x12 + bl sub_81C763C + ldrh r1, [r0, 0x2] + lsls r1, 2 + adds r0, r1 + ldrh r0, [r0, 0x6] + pop {r1} + bx r1 + thumb_func_end sub_81CDD48 + + thumb_func_start sub_81CDD5C +sub_81CDD5C: @ 81CDD5C + push {lr} + movs r0, 0xB + bl sub_81C763C + movs r1, 0xC6 + lsls r1, 7 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _081CDD74 + movs r0, 0 + b _081CDD76 +_081CDD74: + movs r0, 0x1 +_081CDD76: + pop {r1} + bx r1 + thumb_func_end sub_81CDD5C + + thumb_func_start sub_81CDD7C +sub_81CDD7C: @ 81CDD7C + push {lr} + movs r0, 0xB + bl sub_81C763C + adds r2, r0, 0 + movs r1, 0xC6 + lsls r1, 7 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _081CDD96 + movs r0, 0 + b _081CDDA6 +_081CDD96: + ldr r3, =0x00006786 + adds r0, r2, r3 + movs r1, 0 + ldrsb r1, [r0, r1] + subs r3, 0x3 + adds r0, r2, r3 + adds r0, r1 + ldrb r0, [r0] +_081CDDA6: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CDD7C + + thumb_func_start sub_81CDDB0 +sub_81CDDB0: @ 81CDDB0 + push {lr} + movs r0, 0xB + bl sub_81C763C + ldr r2, =0x00006786 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + subs r2, 0x6 + adds r0, r2 + adds r0, r1 + ldrb r0, [r0] + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CDDB0 + + thumb_func_start sub_81CDDD4 +sub_81CDDD4: @ 81CDDD4 + push {r4,lr} + ldr r1, =0x000038ac + movs r0, 0xC + bl sub_81C761C + adds r4, r0, 0 + cmp r4, 0 + beq _081CDE24 + ldr r0, =0x00001816 + adds r1, r4, r0 + movs r0, 0xFF + strb r0, [r1] + ldr r0, =sub_81CDE94 + movs r1, 0x1 + bl sub_81C7078 + str r0, [r4] + ldr r0, =0x00001810 + adds r1, r4, r0 + ldr r0, =sub_81CDE80 + str r0, [r1] + ldr r0, =0x00002908 + adds r1, r4, r0 + movs r0, 0 + strb r0, [r1] + movs r0, 0x1 + b _081CDE26 + .pool +_081CDE24: + movs r0, 0 +_081CDE26: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CDDD4 + + thumb_func_start sub_81CDE2C +sub_81CDE2C: @ 81CDE2C + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0xC + bl sub_81C763C + adds r5, r0, 0 + ldr r0, =gUnknown_08623384 + lsls r4, 2 + adds r4, r0 + ldr r0, [r4] + movs r1, 0x1 + bl sub_81C7078 + str r0, [r5] + ldr r0, =0x00001810 + adds r5, r0 + ldr r0, =sub_81CDE80 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CDE2C + + thumb_func_start sub_81CDE64 +sub_81CDE64: @ 81CDE64 + push {lr} + movs r0, 0xC + bl sub_81C763C + ldr r1, =0x00001810 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CDE64 + + thumb_func_start sub_81CDE80 +sub_81CDE80: @ 81CDE80 + push {lr} + movs r0, 0xC + bl sub_81C763C + ldr r0, [r0] + bl sub_81C70D8 + pop {r1} + bx r1 + thumb_func_end sub_81CDE80 + + thumb_func_start sub_81CDE94 +sub_81CDE94: @ 81CDE94 + push {r4-r6,lr} + sub sp, 0xC + adds r4, r0, 0 + movs r0, 0xC + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x14 + bls _081CDEA8 + b _081CE2C4 +_081CDEA8: + lsls r0, r4, 2 + ldr r1, =_081CDEB8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081CDEB8: + .4byte _081CDF0C + .4byte _081CDF18 + .4byte _081CDF94 + .4byte _081CDFB8 + .4byte _081CE030 + .4byte _081CE074 + .4byte _081CE0B0 + .4byte _081CE118 + .4byte _081CE120 + .4byte _081CE126 + .4byte _081CE136 + .4byte _081CE146 + .4byte _081CE156 + .4byte _081CE16C + .4byte _081CE1C8 + .4byte _081CE1EC + .4byte _081CE218 + .4byte _081CE23C + .4byte _081CE24A + .4byte _081CE25A + .4byte _081CE262 +_081CDF0C: + bl sub_81CD3C4 + cmp r0, 0x1 + beq _081CDF16 + b _081CE2C0 +_081CDF16: + b _081CDFB0 +_081CDF18: + ldr r0, =gUnknown_08623358 + movs r1, 0x3 + bl sub_81C7B54 + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + ldr r1, =0x00007940 + movs r0, 0 + bl SetGpuReg + ldr r1, =0x00000844 + movs r0, 0x50 + bl SetGpuReg + ldr r1, =0x0000040b + movs r0, 0x52 + bl SetGpuReg + ldr r1, =gUnknown_08DC6548 + movs r0, 0 + str r0, [sp] + movs r0, 0x3 + b _081CDFA8 + .pool +_081CDF94: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _081CDFA2 + b _081CE2C0 +_081CDFA2: + ldr r1, =gUnknown_08623228 + str r0, [sp] + movs r0, 0x2 +_081CDFA8: + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram +_081CDFB0: + movs r0, 0 + b _081CE2C6 + .pool +_081CDFB8: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + beq _081CDFC4 + b _081CE2C0 +_081CDFC4: + ldr r0, =gUnknown_08DC6DFC + adds r4, r5, 0x4 + adds r1, r4, 0 + bl LZ77UnCompVram + movs r0, 0x3 + adds r1, r4, 0 + bl SetBgTilemapBuffer + bl sub_81CDD5C + cmp r0, 0x1 + bne _081CDFF2 + ldr r1, =gUnknown_08DC7070 + movs r0, 0x9 + str r0, [sp] + movs r0, 0x4 + str r0, [sp, 0x4] + movs r0, 0x3 + movs r2, 0 + movs r3, 0x5 + bl CopyToBgTilemapBufferRect +_081CDFF2: + movs r0, 0x3 + bl CopyBgTilemapBufferToVram + ldr r0, =gUnknown_08DC6528 + movs r1, 0x10 + movs r2, 0x20 + bl sub_81C7944 + ldr r0, =gUnknown_08623208 + movs r1, 0xF0 + movs r2, 0x20 + bl sub_81C7944 + ldr r0, =0x00001814 + adds r1, r5, r0 + ldr r0, =0x0000ffb0 + strh r0, [r1] + b _081CDFB0 + .pool +_081CE030: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + beq _081CE03C + b _081CE2C0 +_081CE03C: + ldr r0, =gUnknown_0862323C + ldr r1, =0x00001004 + adds r4, r5, r1 + adds r1, r4, 0 + bl LZ77UnCompVram + movs r0, 0x2 + adds r1, r4, 0 + bl SetBgTilemapBuffer + movs r0, 0x2 + bl CopyBgTilemapBufferToVram + ldr r0, =gUnknown_086231E8 + movs r1, 0x30 + movs r2, 0x20 + bl sub_81C7944 + movs r0, 0x2 + bl sub_81D21DC + b _081CDFB0 + .pool +_081CE074: + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_8199DF0 + movs r0, 0x1 + movs r1, 0x11 + movs r2, 0x1 + movs r3, 0x1 + bl sub_8199DF0 + movs r0, 0 + str r0, [sp, 0x8] + ldr r2, =0x00000804 + adds r4, r5, r2 + ldr r2, =0x05000200 + add r0, sp, 0x8 + adds r1, r4, 0 + bl CpuSet + movs r0, 0x1 + adds r1, r4, 0 + bl SetBgTilemapBuffer + b _081CDFB0 + .pool +_081CE0B0: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + beq _081CE0BC + b _081CE2C0 +_081CE0BC: + ldr r0, =gUnknown_08623364 + bl AddWindow + movs r2, 0xC1 + lsls r2, 5 + adds r1, r5, r2 + strb r0, [r1] + bl sub_81CDD5C + cmp r0, 0x1 + bne _081CE0F6 + ldr r0, =gUnknown_0862336C + bl AddWindow + ldr r2, =0x00001821 + adds r1, r5, r2 + strb r0, [r1] + ldr r0, =gUnknown_08623374 + bl AddWindow + ldr r2, =0x00001822 + adds r1, r5, r2 + strb r0, [r1] + ldr r0, =gUnknown_0862337C + bl AddWindow + ldr r2, =0x00001823 + adds r1, r5, r2 + strb r0, [r1] +_081CE0F6: + bl DeactivateAllTextPrinters + b _081CDFB0 + .pool +_081CE118: + movs r0, 0 + bl sub_81CED30 + b _081CDFB0 +_081CE120: + bl sub_81CE9E4 + b _081CDFB0 +_081CE126: + bl sub_81CDD5C + cmp r0, 0x1 + beq _081CE130 + b _081CDFB0 +_081CE130: + bl sub_81CE934 + b _081CDFB0 +_081CE136: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0 + b _081CE164 +_081CE146: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0x1 + b _081CE164 +_081CE156: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0x2 +_081CE164: + movs r2, 0x1 + bl sub_81CE754 + b _081CDFB0 +_081CE16C: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0x3 + movs r2, 0x1 + bl sub_81CE754 + cmp r0, 0x1 + beq _081CE186 + b _081CE2C0 +_081CE186: + movs r1, 0xC1 + lsls r1, 5 + adds r0, r5, r1 + ldrb r0, [r0] + bl PutWindowTilemap + bl sub_81CDD5C + cmp r0, 0x1 + beq _081CE19C + b _081CDFB0 +_081CE19C: + ldr r2, =0x00001821 + adds r0, r5, r2 + ldrb r0, [r0] + bl PutWindowTilemap + ldr r1, =0x00001822 + adds r0, r5, r1 + ldrb r0, [r0] + bl PutWindowTilemap + ldr r2, =0x00001823 + adds r0, r5, r2 + ldrb r0, [r0] + bl PutWindowTilemap + b _081CDFB0 + .pool +_081CE1C8: + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl HideBg + movs r0, 0x3 + bl ShowBg + bl sub_81CDD5C + cmp r0, 0x1 + beq _081CE1E4 + b _081CDFB0 +_081CE1E4: + movs r0, 0x4 + bl sub_81C7BA4 + b _081CDFB0 +_081CE1EC: + movs r0, 0x1 + bl sub_81C7AC0 + bl sub_81CDD5C + cmp r0, 0 + beq _081CE1FC + b _081CDFB0 +_081CE1FC: + movs r0, 0x6 + bl sub_81C7DFC + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0 + bl sub_81C7FA0 + movs r0, 0x6 + movs r1, 0x1 + movs r2, 0 + bl sub_81C7FA0 + b _081CDFB0 +_081CE218: + bl sub_81C7B34 + cmp r0, 0 + bne _081CE2C0 + bl sub_81CDD5C + cmp r0, 0 + bne _081CE230 + bl sub_81C8010 + cmp r0, 0 + bne _081CE2C0 +_081CE230: + ldr r0, =sub_81CEE44 + bl c3args_set_0toR1_1to0 + b _081CDFB0 + .pool +_081CE23C: + bl sub_81CEE90 + bl sub_81CDC70 + bl sub_81D20AC + b _081CDFB0 +_081CE24A: + bl sub_81CDC70 + bl sub_81D20BC + lsls r0, 24 + cmp r0, 0 + bne _081CE2C0 + b _081CDFB0 +_081CE25A: + movs r0, 0x1 + bl sub_81CEE74 + b _081CDFB0 +_081CE262: + bl sub_81CDC70 + ldr r2, =0x00001814 + adds r1, r5, r2 + bl sub_81D3178 + lsls r0, 24 + cmp r0, 0 + bne _081CE2C0 + ldr r0, =0x000028e0 + adds r6, r5, r0 + adds r0, r6, 0 + bl sub_81D3464 + bl sub_81CDD5C + cmp r0, 0x1 + beq _081CE298 + bl sub_81CDC60 + adds r4, r0, 0 + bl sub_81CDC50 + lsls r4, 16 + lsls r0, 16 + cmp r4, r0 + beq _081CE2C4 +_081CE298: + ldr r1, =0x00001816 + adds r0, r5, r1 + ldrb r4, [r0] + bl sub_81CDDB0 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_81D3480 + b _081CE2C4 + .pool +_081CE2C0: + movs r0, 0x2 + b _081CE2C6 +_081CE2C4: + movs r0, 0x4 +_081CE2C6: + add sp, 0xC + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81CDE94 + + thumb_func_start sub_81CE2D0 +sub_81CE2D0: @ 81CE2D0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0xC + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CE308 + cmp r4, 0x1 + bgt _081CE2EA + cmp r4, 0 + beq _081CE2F4 + b _081CE374 +_081CE2EA: + cmp r4, 0x2 + beq _081CE328 + cmp r4, 0x3 + beq _081CE33E + b _081CE374 +_081CE2F4: + bl sub_81CEEC8 + ldr r1, =0x000028e0 + adds r0, r5, r1 + bl sub_81D3520 + movs r0, 0x1 + b _081CE376 + .pool +_081CE308: + bl sub_81CDC70 + ldr r2, =0x00001814 + adds r1, r5, r2 + bl sub_81D31A4 + lsls r0, 24 + cmp r0, 0 + bne _081CE34E + movs r0, 0 + bl sub_81CEE74 + movs r0, 0x1 + b _081CE376 + .pool +_081CE328: + movs r0, 0 + bl sub_81C7AC0 + bl sub_81CDD5C + cmp r0, 0 + bne _081CE33A + bl sub_81C78A0 +_081CE33A: + movs r0, 0 + b _081CE376 +_081CE33E: + bl sub_81C7B34 + cmp r0, 0 + bne _081CE34E + bl sub_81C78C0 + cmp r0, 0 + beq _081CE352 +_081CE34E: + movs r0, 0x2 + b _081CE376 +_081CE352: + ldr r1, =0x000028e0 + adds r0, r5, r1 + bl sub_81D354C + movs r0, 0x1 + bl HideBg + movs r0, 0x2 + bl HideBg + movs r0, 0x3 + bl HideBg + movs r0, 0x1 + b _081CE376 + .pool +_081CE374: + movs r0, 0x4 +_081CE376: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CE2D0 + + thumb_func_start sub_81CE37C +sub_81CE37C: @ 81CE37C + push {r4-r6,lr} + adds r4, r0, 0 + movs r0, 0xC + bl sub_81C763C + adds r6, r0, 0 + bl sub_81CDC70 + adds r2, r0, 0 + cmp r4, 0x9 + bls _081CE394 + b _081CE4D0 +_081CE394: + lsls r0, r4, 2 + ldr r1, =_081CE3A4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081CE3A4: + .4byte _081CE3CC + .4byte _081CE3D0 + .4byte _081CE3DA + .4byte _081CE3F0 + .4byte _081CE3F8 + .4byte _081CE418 + .4byte _081CE428 + .4byte _081CE438 + .4byte _081CE44E + .4byte _081CE468 +_081CE3CC: + movs r0, 0 + b _081CE3D2 +_081CE3D0: + movs r0, 0x1 +_081CE3D2: + bl sub_81CD548 +_081CE3D6: + movs r0, 0x1 + b _081CE4D2 +_081CE3DA: + movs r0, 0x2 + bl sub_81CD548 + ldr r1, =0x000028e0 + adds r0, r6, r1 + bl sub_81D3520 + b _081CE3D6 + .pool +_081CE3F0: + adds r0, r2, 0 + bl sub_81D2074 + b _081CE3D6 +_081CE3F8: + ldr r1, =0x00001814 + adds r0, r6, r1 + bl sub_81D3150 + lsls r0, 24 + cmp r0, 0 + bne _081CE4CC + bl sub_81CDC84 + lsls r0, 24 + lsrs r0, 24 + bl sub_81CED30 + b _081CE3D6 + .pool +_081CE418: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0 + b _081CE446 +_081CE428: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0x1 + b _081CE446 +_081CE438: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0x2 +_081CE446: + movs r2, 0 + bl sub_81CE754 + b _081CE3D6 +_081CE44E: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0x3 + movs r2, 0 + bl sub_81CE754 + cmp r0, 0x1 + beq _081CE3D6 + b _081CE4CC +_081CE468: + bl sub_81CDC70 + adds r2, r0, 0 + ldr r0, =0x00001814 + adds r1, r6, r0 + adds r0, r2, 0 + bl sub_81D3178 + lsls r0, 24 + cmp r0, 0 + bne _081CE4CC + ldr r1, =0x000028e0 + adds r0, r6, r1 + bl sub_81D3464 + bl sub_81CDD5C + cmp r0, 0x1 + beq _081CE4A0 + bl sub_81CDC60 + adds r4, r0, 0 + bl sub_81CDC50 + lsls r4, 16 + lsls r0, 16 + cmp r4, r0 + beq _081CE3D6 +_081CE4A0: + ldr r0, =0x000028e0 + adds r5, r6, r0 + ldr r1, =0x00001816 + adds r0, r6, r1 + ldrb r4, [r0] + bl sub_81CDDB0 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_81D3480 + b _081CE3D6 + .pool +_081CE4CC: + movs r0, 0x2 + b _081CE4D2 +_081CE4D0: + movs r0, 0x4 +_081CE4D2: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81CE37C + + thumb_func_start sub_81CE4D8 +sub_81CE4D8: @ 81CE4D8 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0xC + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x8 + bhi _081CE5DC + lsls r0, r4, 2 + ldr r1, =_081CE4F8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081CE4F8: + .4byte _081CE51C + .4byte _081CE520 + .4byte _081CE524 + .4byte _081CE52E + .4byte _081CE53E + .4byte _081CE54E + .4byte _081CE55E + .4byte _081CE576 + .4byte _081CE592 +_081CE51C: + movs r0, 0 + b _081CE526 +_081CE520: + movs r0, 0x1 + b _081CE526 +_081CE524: + movs r0, 0x2 +_081CE526: + bl sub_81CD548 + movs r0, 0x1 + b _081CE5DE +_081CE52E: + bl sub_81CDC84 + lsls r0, 24 + lsrs r0, 24 + bl sub_81CED30 + movs r0, 0x1 + b _081CE5DE +_081CE53E: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0 + b _081CE56C +_081CE54E: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0x1 + b _081CE56C +_081CE55E: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0x2 +_081CE56C: + movs r2, 0 + bl sub_81CE754 + movs r0, 0x1 + b _081CE5DE +_081CE576: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0x3 + movs r2, 0 + bl sub_81CE754 + cmp r0, 0x1 + bne _081CE5D8 + movs r0, 0x1 + b _081CE5DE +_081CE592: + bl sub_81CDC70 + ldr r2, =0x00001814 + adds r1, r5, r2 + bl sub_81D3178 + lsls r0, 24 + cmp r0, 0 + bne _081CE5D8 + ldr r0, =0x000028e0 + adds r4, r5, r0 + adds r0, r4, 0 + bl sub_81D3464 + ldr r1, =0x00001816 + adds r0, r5, r1 + ldrb r5, [r0] + bl sub_81CDDB0 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_81D3480 + movs r0, 0x1 + b _081CE5DE + .pool +_081CE5D8: + movs r0, 0x2 + b _081CE5DE +_081CE5DC: + movs r0, 0x4 +_081CE5DE: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CE4D8 + + thumb_func_start sub_81CE5E4 +sub_81CE5E4: @ 81CE5E4 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0xC + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x7 + bhi _081CE6B2 + lsls r0, r4, 2 + ldr r1, =_081CE604 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081CE604: + .4byte _081CE624 + .4byte _081CE628 + .4byte _081CE632 + .4byte _081CE648 + .4byte _081CE660 + .4byte _081CE670 + .4byte _081CE680 + .4byte _081CE696 +_081CE624: + movs r0, 0 + b _081CE62A +_081CE628: + movs r0, 0x1 +_081CE62A: + bl sub_81CD548 +_081CE62E: + movs r0, 0x1 + b _081CE6B4 +_081CE632: + movs r0, 0x2 + bl sub_81CD548 + ldr r1, =0x000028e0 + adds r0, r5, r1 + bl sub_81D3520 + b _081CE62E + .pool +_081CE648: + bl sub_81CDC70 + ldr r2, =0x00001814 + adds r1, r5, r2 + bl sub_81D31A4 + lsls r0, 24 + cmp r0, 0 + beq _081CE62E + b _081CE6AE + .pool +_081CE660: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0 + b _081CE68E +_081CE670: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0x1 + b _081CE68E +_081CE680: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0x2 +_081CE68E: + movs r2, 0 + bl sub_81CE754 + b _081CE62E +_081CE696: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0x3 + movs r2, 0 + bl sub_81CE754 + cmp r0, 0x1 + beq _081CE62E +_081CE6AE: + movs r0, 0x2 + b _081CE6B4 +_081CE6B2: + movs r0, 0x4 +_081CE6B4: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CE5E4 + + thumb_func_start sub_81CE6BC +sub_81CE6BC: @ 81CE6BC + push {lr} + cmp r0, 0x1 + beq _081CE6E6 + cmp r0, 0x1 + bgt _081CE6CC + cmp r0, 0 + beq _081CE6D2 + b _081CE6FA +_081CE6CC: + cmp r0, 0x2 + beq _081CE6EE + b _081CE6FA +_081CE6D2: + bl sub_81CDD7C + lsls r0, 24 + lsrs r0, 24 + movs r1, 0xB0 + movs r2, 0x20 + bl sub_811FAA4 +_081CE6E2: + movs r0, 0x1 + b _081CE6FC +_081CE6E6: + movs r0, 0x5 + bl sub_81C7BA4 + b _081CE6E2 +_081CE6EE: + bl sub_81C7BE8 + cmp r0, 0x1 + bne _081CE6E2 + movs r0, 0x2 + b _081CE6FC +_081CE6FA: + movs r0, 0x4 +_081CE6FC: + pop {r1} + bx r1 + thumb_func_end sub_81CE6BC + + thumb_func_start sub_81CE700 +sub_81CE700: @ 81CE700 + push {lr} + cmp r0, 0x1 + beq _081CE71E + cmp r0, 0x1 + bgt _081CE710 + cmp r0, 0 + beq _081CE716 + b _081CE732 +_081CE710: + cmp r0, 0x2 + beq _081CE726 + b _081CE732 +_081CE716: + bl sub_811FAF8 +_081CE71A: + movs r0, 0x1 + b _081CE734 +_081CE71E: + movs r0, 0x4 + bl sub_81C7BA4 + b _081CE71A +_081CE726: + bl sub_81C7BE8 + cmp r0, 0x1 + bne _081CE71A + movs r0, 0x2 + b _081CE734 +_081CE732: + movs r0, 0x4 +_081CE734: + pop {r1} + bx r1 + thumb_func_end sub_81CE700 + + thumb_func_start sub_81CE738 +sub_81CE738: @ 81CE738 + push {lr} + lsls r1, 16 + lsrs r1, 16 + movs r2, 0x1 + movs r3, 0x4 + bl ConvertIntToDecimalStringN + ldr r1, =gUnknown_085EBFD7 + bl StringCopy + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CE738 + + thumb_func_start sub_81CE754 +sub_81CE754: @ 81CE754 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x2C + lsls r0, 24 + lsrs r4, r0, 24 + adds r7, r4, 0 + lsls r1, 16 + lsrs r1, 16 + mov r8, r1 + lsls r2, 24 + lsrs r5, r2, 24 + movs r0, 0xC + bl sub_81C763C + adds r6, r0, 0 + cmp r4, 0x1 + beq _081CE7B8 + cmp r4, 0x1 + bgt _081CE782 + cmp r4, 0 + beq _081CE78E + b _081CE924 +_081CE782: + cmp r4, 0x2 + beq _081CE800 + cmp r4, 0x3 + bne _081CE78C + b _081CE89C +_081CE78C: + b _081CE924 +_081CE78E: + movs r1, 0xC1 + lsls r1, 5 + adds r0, r6, r1 + ldrb r0, [r0] + movs r1, 0 + bl FillWindowPixelBuffer + bl sub_81CDD5C + cmp r0, 0x1 + beq _081CE7A6 + b _081CE924 +_081CE7A6: + ldr r1, =0x00001821 + adds r0, r6, r1 + ldrb r0, [r0] + movs r1, 0 + bl FillWindowPixelBuffer + b _081CE924 + .pool +_081CE7B8: + bl sub_81CDC60 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + bl sub_81CDC50 + lsls r0, 16 + lsrs r0, 16 + subs r0, 0x1 + cmp r4, r0 + bne _081CE7DA + bl sub_81CDD5C + cmp r0, 0x1 + beq _081CE7DA + b _081CE924 +_081CE7DA: + mov r1, r8 + lsls r0, r1, 24 + lsrs r0, 24 + bl sub_81CDD04 + adds r2, r0, 0 + movs r1, 0xC1 + lsls r1, 5 + adds r0, r6, r1 + ldrb r0, [r0] + str r7, [sp] + movs r1, 0 + str r1, [sp, 0x4] + str r1, [sp, 0x8] + movs r1, 0x1 + movs r3, 0 + bl Print + b _081CE924 +_081CE800: + bl sub_81CDD5C + adds r7, r0, 0 + cmp r7, 0x1 + beq _081CE80C + b _081CE924 +_081CE80C: + mov r1, r8 + lsls r0, r1, 24 + lsrs r0, 24 + bl sub_81CDD24 + adds r2, r0, 0 + movs r1, 0xC1 + lsls r1, 5 + adds r0, r6, r1 + ldrb r0, [r0] + movs r1, 0x11 + str r1, [sp] + movs r4, 0 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x1 + movs r3, 0 + bl Print + add r1, sp, 0xC + movs r0, 0xFC + strb r0, [r1] + movs r0, 0x4 + strb r0, [r1, 0x1] + movs r0, 0x8 + strb r0, [r1, 0x2] + adds r0, r1, 0 + strb r4, [r0, 0x3] + movs r0, 0x9 + strb r0, [r1, 0x4] + mov r5, sp + adds r5, 0x11 + ldr r1, =gUnknown_085EBFD7 + adds r0, r5, 0 + bl StringCopy + ldr r0, =0x00001821 + adds r6, r0 + ldrb r0, [r6] + str r7, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x1 + add r2, sp, 0xC + movs r3, 0x4 + bl Print + bl sub_81CDD48 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r5, 0 + movs r2, 0x1 + movs r3, 0x4 + bl ConvertIntToDecimalStringN + ldrb r0, [r6] + str r7, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x1 + add r2, sp, 0xC + movs r3, 0x1C + bl Print + b _081CE924 + .pool +_081CE89C: + ldr r1, =0x00002908 + adds r0, r6, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _081CE8B0 + cmp r0, 0x1 + beq _081CE8EC + b _081CE924 + .pool +_081CE8B0: + cmp r5, 0 + beq _081CE8C4 + movs r1, 0xC1 + lsls r1, 5 + adds r0, r6, r1 + ldrb r0, [r0] + movs r1, 0x3 + bl CopyWindowToVram + b _081CE8D2 +_081CE8C4: + movs r1, 0xC1 + lsls r1, 5 + adds r0, r6, r1 + ldrb r0, [r0] + movs r1, 0x2 + bl CopyWindowToVram +_081CE8D2: + bl sub_81CDD5C + cmp r0, 0x1 + bne _081CE910 + ldr r0, =0x00002908 + adds r1, r6, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _081CE924 + .pool +_081CE8EC: + cmp r5, 0 + beq _081CE904 + ldr r1, =0x00001821 + adds r0, r6, r1 + ldrb r0, [r0] + movs r1, 0x3 + bl CopyWindowToVram + b _081CE910 + .pool +_081CE904: + ldr r1, =0x00001821 + adds r0, r6, r1 + ldrb r0, [r0] + movs r1, 0x2 + bl CopyWindowToVram +_081CE910: + ldr r0, =0x00002908 + adds r1, r6, r0 + movs r0, 0 + strb r0, [r1] + movs r0, 0x1 + b _081CE926 + .pool +_081CE924: + movs r0, 0 +_081CE926: + add sp, 0x2C + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81CE754 + + thumb_func_start sub_81CE934 +sub_81CE934: @ 81CE934 + push {r4,lr} + movs r0, 0xC + bl sub_81C763C + adds r4, r0, 0 + ldr r1, =0x00001822 + adds r0, r4, r1 + ldrb r0, [r0] + movs r1, 0x3 + bl CopyWindowToVram + ldr r0, =0x00001823 + adds r4, r0 + ldrb r0, [r4] + movs r1, 0x3 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CE934 + + thumb_func_start sub_81CE964 +sub_81CE964: @ 81CE964 + push {r4,r5,lr} + adds r5, r0, 0 + movs r0, 0x2E + ldrsh r4, [r5, r0] + bl sub_81CDC60 + lsls r0, 16 + lsrs r0, 16 + cmp r4, r0 + bne _081CE982 + adds r0, r5, 0 + movs r1, 0 + bl StartSpriteAnim + b _081CE98A +_081CE982: + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAnim +_081CE98A: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81CE964 + + thumb_func_start sub_81CE990 +sub_81CE990: @ 81CE990 + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_81CDC60 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + bl sub_81CDC50 + lsls r0, 16 + lsrs r0, 16 + subs r0, 0x1 + cmp r4, r0 + bne _081CE9B0 + movs r0, 0x65 + b _081CE9B2 +_081CE9B0: + movs r0, 0x66 +_081CE9B2: + bl IndexOfSpritePaletteTag + lsls r0, 4 + ldrb r2, [r5, 0x5] + movs r1, 0xF + ands r1, r2 + orrs r1, r0 + strb r1, [r5, 0x5] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81CE990 + + thumb_func_start sub_81CE9C8 +sub_81CE9C8: @ 81CE9C8 + push {r4,lr} + adds r4, r0, 0 + bl sub_81CDD7C + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CE9C8 + + thumb_func_start sub_81CE9E4 +sub_81CE9E4: @ 81CE9E4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x58 + movs r0, 0xC + bl sub_81C763C + adds r6, r0, 0 + add r4, sp, 0x20 + add r5, sp, 0x38 + mov r0, sp + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_81D321C + bl sub_81CDD5C + adds r7, r4, 0 + mov r10, r5 + cmp r0, 0x1 + bne _081CEA78 + ldr r1, =0x00001824 + adds r0, r6, r1 + movs r2, 0x6A + strh r2, [r0] + ldr r3, =0x00001826 + adds r1, r6, r3 + strh r2, [r1] + bl sub_811F90C + bl sub_811FA90 + ldr r2, =gUnknown_08623338 + movs r0, 0x69 + movs r1, 0x69 + bl sub_811FF94 + ldrb r1, [r0, 0x5] + movs r2, 0xC + orrs r1, r2 + strb r1, [r0, 0x5] + movs r1, 0xC0 + strh r1, [r0, 0x20] + movs r1, 0x20 + strh r1, [r0, 0x22] + ldr r1, =sub_81CE9C8 + str r1, [r0, 0x1C] + ldr r2, =0x000028dc + adds r1, r6, r2 + str r0, [r1] + movs r0, 0x69 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_81C7990 + add r3, sp, 0x50 + mov r8, r3 + b _081CEBC6 + .pool +_081CEA78: + mov r0, sp + bl LoadSpriteSheets + mov r0, r10 + bl sub_81C795C + movs r4, 0 + add r0, sp, 0x50 + mov r8, r0 + b _081CEAE8 +_081CEA8C: + lsls r2, r4, 2 + adds r2, r4 + lsls r2, 18 + movs r1, 0x80 + lsls r1, 12 + adds r2, r1 + asrs r2, 16 + adds r0, r7, 0 + movs r1, 0xE2 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _081CEAD8 + ldr r2, =0x00001806 + adds r0, r6, r2 + adds r0, r4 + strb r3, [r0] + ldr r2, =gSprites + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 2 + adds r1, r0, r2 + strh r4, [r1, 0x2E] + adds r2, 0x1C + adds r0, r2 + ldr r1, =sub_81CE964 + str r1, [r0] + b _081CEAE2 + .pool +_081CEAD8: + ldr r3, =0x00001806 + adds r0, r6, r3 + adds r0, r4 + movs r1, 0xFF + strb r1, [r0] +_081CEAE2: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_081CEAE8: + bl sub_81CDC50 + lsls r0, 16 + lsrs r0, 16 + subs r0, 0x1 + cmp r4, r0 + blt _081CEA8C + movs r0, 0x67 + strh r0, [r7] + ldr r0, =SpriteCallbackDummy + str r0, [r7, 0x14] + cmp r4, 0x5 + bhi _081CEB5C + ldr r0, =0x00001806 + adds r5, r6, r0 + ldr r1, =gSprites + mov r9, r1 +_081CEB0A: + lsls r2, r4, 2 + adds r2, r4 + lsls r2, 18 + movs r3, 0x80 + lsls r3, 12 + adds r2, r3 + asrs r2, 16 + adds r0, r7, 0 + movs r1, 0xE6 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _081CEB4C + adds r0, r5, r4 + strb r3, [r0] + lsls r1, r3, 4 + adds r1, r3 + lsls r1, 2 + add r1, r9 + ldrb r2, [r1, 0x3] + movs r0, 0x3F + ands r0, r2 + strb r0, [r1, 0x3] + b _081CEB52 + .pool +_081CEB4C: + adds r1, r5, r4 + movs r0, 0xFF + strb r0, [r1] +_081CEB52: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x5 + bls _081CEB0A +_081CEB5C: + movs r0, 0x66 + strh r0, [r7] + ldr r0, =sub_81CE990 + str r0, [r7, 0x14] + lsls r2, r4, 2 + adds r2, r4 + lsls r2, 18 + movs r0, 0x80 + lsls r0, 12 + adds r2, r0 + asrs r2, 16 + adds r0, r7, 0 + movs r1, 0xDE + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _081CEBBC + ldr r1, =0x00001806 + adds r0, r6, r1 + adds r0, r4 + strb r3, [r0] + ldr r0, =gSprites + lsls r2, r3, 4 + adds r2, r3 + lsls r2, 2 + adds r2, r0 + ldrb r3, [r2, 0x1] + movs r1, 0x3F + adds r0, r1, 0 + ands r0, r3 + movs r3, 0x40 + orrs r0, r3 + strb r0, [r2, 0x1] + ldrb r0, [r2, 0x3] + ands r1, r0 + movs r0, 0x80 + orrs r1, r0 + strb r1, [r2, 0x3] + b _081CEBC6 + .pool +_081CEBBC: + ldr r2, =0x00001806 + adds r0, r6, r2 + adds r0, r4 + movs r1, 0xFF + strb r1, [r0] +_081CEBC6: + mov r0, r8 + mov r1, r10 + bl sub_81D32B0 + mov r0, r8 + bl LoadSpriteSheet + movs r0, 0 + mov r3, r10 + str r0, [r3, 0x8] + mov r0, r10 + bl sub_81C795C + add sp, 0x58 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CE9E4 + + thumb_func_start sub_81CEBF4 +sub_81CEBF4: @ 81CEBF4 + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_81CDD5C + cmp r0, 0x1 + bne _081CEC28 + ldr r1, =0x000028dc + adds r0, r5, r1 + ldr r0, [r0] + bl DestroySprite + movs r0, 0x6A + bl FreeSpriteTilesByTag + movs r0, 0x69 + bl FreeSpriteTilesByTag + movs r0, 0x6A + bl FreeSpritePaletteByTag + movs r0, 0x69 + bl FreeSpritePaletteByTag + b _081CEC68 + .pool +_081CEC28: + movs r4, 0 +_081CEC2A: + ldr r1, =0x00001806 + adds r0, r5, r1 + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x6 + bls _081CEC2A + movs r0, 0x65 + bl FreeSpriteTilesByTag + movs r0, 0x66 + bl FreeSpriteTilesByTag + movs r0, 0x67 + bl FreeSpriteTilesByTag + movs r0, 0x65 + bl FreeSpritePaletteByTag + movs r0, 0x66 + bl FreeSpritePaletteByTag +_081CEC68: + ldr r0, =0x00001816 + adds r1, r5, r0 + ldrb r0, [r1] + cmp r0, 0xFF + beq _081CEC8E + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + bl DestroySprite + movs r0, 0x64 + bl FreeSpriteTilesByTag + movs r0, 0x64 + bl FreeSpritePaletteByTag +_081CEC8E: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CEBF4 + + thumb_func_start sub_81CECA0 +sub_81CECA0: @ 81CECA0 + push {r4,lr} + movs r0, 0xC + bl sub_81C763C + adds r4, r0, 0 + movs r1, 0xC1 + lsls r1, 5 + adds r0, r4, r1 + ldrb r0, [r0] + bl RemoveWindow + bl sub_81CDD5C + cmp r0, 0x1 + bne _081CECEC + ldr r1, =0x00001821 + adds r0, r4, r1 + ldrb r0, [r0] + bl RemoveWindow + ldr r1, =0x00001822 + adds r0, r4, r1 + ldrb r0, [r0] + bl RemoveWindow + ldr r1, =0x00001823 + adds r0, r4, r1 + ldrb r0, [r0] + bl RemoveWindow + b _081CECF0 + .pool +_081CECEC: + bl sub_81C7FDC +_081CECF0: + movs r1, 0x8A + lsls r1, 5 + movs r0, 0 + bl SetGpuReg + adds r0, r4, 0 + bl sub_81CEBF4 + bl sub_81CEE68 + movs r0, 0xC + bl sub_81C7650 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CECA0 + + thumb_func_start sub_81CED10 +sub_81CED10: @ 81CED10 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0xC + bl sub_81C763C + ldr r1, =0x00001814 + adds r0, r1 + ldrh r0, [r0] + adds r0, 0x26 + strh r0, [r4, 0x20] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CED10 + + thumb_func_start sub_81CED30 +sub_81CED30: @ 81CED30 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x28 + lsls r0, 24 + lsrs r6, r0, 24 + movs r0, 0xC + bl sub_81C763C + mov r8, r0 + ldr r7, =0x00001816 + add r7, r8 + ldrb r0, [r7] + cmp r0, 0xFF + bne _081CEDFC + add r5, sp, 0x18 + add r4, sp, 0x20 + adds r0, r5, 0 + mov r1, sp + adds r2, r4, 0 + bl sub_81D31D0 + adds r0, r6, 0 + bl sub_81CDCB4 + str r0, [sp, 0x18] + adds r0, r6, 0 + bl sub_81CDCD4 + str r0, [sp, 0x20] + adds r0, r4, 0 + bl LoadSpritePalette + lsls r0, 24 + lsrs r0, 24 + ldr r4, =0x00001818 + add r4, r8 + strh r0, [r4] + adds r0, r5, 0 + bl LoadSpriteSheet + ldr r5, =0x0000181a + add r5, r8 + strh r0, [r5] + mov r0, sp + movs r1, 0x26 + movs r2, 0x68 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strb r0, [r7] + cmp r0, 0x40 + bne _081CEDBC + movs r0, 0x64 + bl FreeSpriteTilesByTag + movs r0, 0x64 + bl FreeSpritePaletteByTag + movs r0, 0xFF + strb r0, [r7] + b _081CEE26 + .pool +_081CEDBC: + strb r0, [r7] + ldr r2, =gSprites + ldrb r1, [r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, =sub_81CED10 + str r1, [r0] + ldr r1, =0x0000181c + add r1, r8 + ldrh r0, [r5] + lsls r0, 5 + ldr r2, =0x06010000 + adds r0, r2 + str r0, [r1] + ldrh r0, [r4] + lsls r0, 4 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + strh r0, [r4] + b _081CEE26 + .pool +_081CEDFC: + adds r0, r6, 0 + bl sub_81CDCB4 + ldr r1, =0x0000181c + add r1, r8 + ldr r2, [r1] + ldr r1, =0x040000d4 + str r0, [r1] + str r2, [r1, 0x4] + ldr r0, =0x80000400 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r0, r6, 0 + bl sub_81CDCD4 + ldr r1, =0x00001818 + add r1, r8 + ldrh r1, [r1] + movs r2, 0x20 + bl LoadPalette +_081CEE26: + add sp, 0x28 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CED30 + + thumb_func_start sub_81CEE44 +sub_81CEE44: @ 81CEE44 + push {r4,lr} + bl sub_81CDC70 + adds r4, r0, 0 + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + adds r0, r4, 0 + bl sub_81D2108 + bl sub_80BA0A8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CEE44 + + thumb_func_start sub_81CEE68 +sub_81CEE68: @ 81CEE68 + push {lr} + bl sub_81C760C + pop {r0} + bx r0 + thumb_func_end sub_81CEE68 + + thumb_func_start sub_81CEE74 +sub_81CEE74: @ 81CEE74 + push {lr} + lsls r0, 24 + cmp r0, 0 + beq _081CEE84 + movs r0, 0x2 + bl ShowBg + b _081CEE8A +_081CEE84: + movs r0, 0x2 + bl HideBg +_081CEE8A: + pop {r0} + bx r0 + thumb_func_end sub_81CEE74 + + thumb_func_start sub_81CEE90 +sub_81CEE90: @ 81CEE90 + push {r4,lr} + bl sub_81CDC70 + adds r4, r0, 0 + bl sub_81CDC84 + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gUnknown_030012BC + strb r0, [r1] + adds r1, r4, 0 + adds r1, 0x50 + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 2 + adds r2, 0x14 + adds r2, r4, r2 + adds r0, r4, 0 + bl sub_81D1F84 + adds r0, r4, 0 + bl sub_81D2074 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CEE90 + + thumb_func_start sub_81CEEC8 +sub_81CEEC8: @ 81CEEC8 + push {r4,r5,lr} + bl sub_81CDC70 + adds r5, r0, 0 + bl sub_81CDD5C + cmp r0, 0 + bne _081CEEF0 + bl sub_81CDC60 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + bl sub_81CDC50 + lsls r0, 16 + lsrs r0, 16 + subs r0, 0x1 + cmp r4, r0 + beq _081CEF0C +_081CEEF0: + bl sub_81CDC84 + lsls r0, 24 + asrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, 0x14 + adds r1, r5, r1 + adds r2, r5, 0 + adds r2, 0x50 + adds r0, r5, 0 + bl sub_81D1F84 +_081CEF0C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81CEEC8 + + thumb_func_start sub_81CEF14 +sub_81CEF14: @ 81CEF14 + push {r4,lr} + movs r0, 0xC + bl sub_81C763C + adds r4, r0, 0 + bl sub_81CDD5C + cmp r0, 0x1 + beq _081CEF2A + movs r0, 0 + b _081CEF30 +_081CEF2A: + ldr r1, =0x00001828 + adds r0, r4, r1 + ldrb r0, [r0] +_081CEF30: + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CEF14 + + thumb_func_start sub_81CEF3C +sub_81CEF3C: @ 81CEF3C + push {r4,lr} + movs r0, 0x7 + movs r1, 0x24 + bl sub_81C761C + adds r4, r0, 0 + cmp r4, 0 + beq _081CEF90 + ldr r1, =0x000006ac + movs r0, 0x12 + bl sub_81C761C + str r0, [r4, 0x20] + cmp r0, 0 + beq _081CEF90 + ldr r0, =sub_81CF010 + str r0, [r4] + ldr r0, =sub_81CF11C + movs r1, 0x1 + bl sub_81C7078 + str r0, [r4, 0x4] + movs r0, 0 + str r0, [r4, 0x18] + bl sub_81C76AC + ldr r1, =gUnknown_086233A0 + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + str r0, [r4, 0x14] + movs r0, 0x1 + b _081CEF92 + .pool +_081CEF90: + movs r0, 0 +_081CEF92: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CEF3C + + thumb_func_start sub_81CEF98 +sub_81CEF98: @ 81CEF98 + push {r4,lr} + movs r0, 0x7 + movs r1, 0x24 + bl sub_81C761C + adds r4, r0, 0 + cmp r4, 0 + beq _081CEFD4 + movs r0, 0x12 + bl sub_81C763C + str r0, [r4, 0x20] + ldr r0, =sub_81CF030 + str r0, [r4] + movs r0, 0x1 + str r0, [r4, 0x18] + bl sub_81C76AC + ldr r1, =gUnknown_086233A0 + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + str r0, [r4, 0x14] + movs r0, 0x1 + b _081CEFD6 + .pool +_081CEFD4: + movs r0, 0 +_081CEFD6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CEF98 + + thumb_func_start sub_81CEFDC +sub_81CEFDC: @ 81CEFDC + push {lr} + movs r0, 0x7 + bl sub_81C763C + ldr r1, [r0] + bl _call_via_r1 + pop {r1} + bx r1 + thumb_func_end sub_81CEFDC + + thumb_func_start sub_81CEFF0 +sub_81CEFF0: @ 81CEFF0 + push {lr} + movs r0, 0x7 + bl sub_81C763C + ldr r0, [r0, 0x1C] + cmp r0, 0 + bne _081CF004 + movs r0, 0x12 + bl sub_81C7650 +_081CF004: + movs r0, 0x7 + bl sub_81C7650 + pop {r0} + bx r0 + thumb_func_end sub_81CEFF0 + + thumb_func_start sub_81CF010 +sub_81CF010: @ 81CF010 + push {r4,lr} + adds r4, r0, 0 + ldr r0, [r4, 0x4] + bl sub_81C70D8 + cmp r0, 0 + bne _081CF022 + ldr r0, =sub_81CF030 + str r0, [r4] +_081CF022: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CF010 + + thumb_func_start sub_81CF030 +sub_81CF030: @ 81CF030 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r2, =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081CF048 + movs r0, 0x1 + b _081CF0A6 + .pool +_081CF048: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081CF054 + movs r0, 0x2 + b _081CF0A6 +_081CF054: + ldrh r1, [r2, 0x2E] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _081CF062 + movs r0, 0x3 + b _081CF0A6 +_081CF062: + movs r0, 0x10 + ands r0, r1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0 + beq _081CF072 + movs r0, 0x4 + b _081CF0A6 +_081CF072: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081CF088 + str r2, [r4, 0x1C] + ldr r0, =sub_81CF0B0 + str r0, [r4] + movs r0, 0x5 + b _081CF0A6 + .pool +_081CF088: + movs r5, 0x1 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _081CF096 + movs r0, 0 + b _081CF0A6 +_081CF096: + bl sub_81C875C + ldr r1, [r4, 0x20] + strh r0, [r1, 0x2] + str r5, [r4, 0x1C] + ldr r0, =sub_81CF0B8 + str r0, [r4] + movs r0, 0x6 +_081CF0A6: + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CF030 + + thumb_func_start sub_81CF0B0 +sub_81CF0B0: @ 81CF0B0 + ldr r0, =0x000186a3 + bx lr + .pool + thumb_func_end sub_81CF0B0 + + thumb_func_start sub_81CF0B8 +sub_81CF0B8: @ 81CF0B8 + ldr r0, =0x000186a9 + bx lr + .pool + thumb_func_end sub_81CF0B8 + + thumb_func_start sub_81CF0C0 +sub_81CF0C0: @ 81CF0C0 + push {lr} + movs r0, 0x7 + bl sub_81C763C + ldr r0, [r0, 0x18] + pop {r1} + bx r1 + thumb_func_end sub_81CF0C0 + + thumb_func_start sub_81CF0D0 +sub_81CF0D0: @ 81CF0D0 + push {lr} + movs r0, 0x7 + bl sub_81C763C + ldr r0, [r0, 0x20] + adds r0, 0x4 + pop {r1} + bx r1 + thumb_func_end sub_81CF0D0 + + thumb_func_start sub_81CF0E0 +sub_81CF0E0: @ 81CF0E0 + push {lr} + movs r0, 0x7 + bl sub_81C763C + ldr r0, [r0, 0x20] + ldrh r0, [r0] + pop {r1} + bx r1 + thumb_func_end sub_81CF0E0 + + thumb_func_start sub_81CF0F0 +sub_81CF0F0: @ 81CF0F0 + push {r4,lr} + movs r0, 0x7 + bl sub_81C763C + adds r4, r0, 0 + bl sub_81C875C + ldr r1, [r4, 0x20] + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1, 0x6] + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CF0F0 + + thumb_func_start sub_81CF10C +sub_81CF10C: @ 81CF10C + push {lr} + movs r0, 0x7 + bl sub_81C763C + ldr r0, [r0, 0x20] + ldrh r0, [r0, 0x2] + pop {r1} + bx r1 + thumb_func_end sub_81CF10C + + thumb_func_start sub_81CF11C +sub_81CF11C: @ 81CF11C + push {lr} + ldr r2, =gUnknown_086233B4 + lsls r1, r0, 2 + adds r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CF11C + + thumb_func_start sub_81CF134 +sub_81CF134: @ 81CF134 + push {r4-r6,lr} + sub sp, 0x4 + movs r0, 0x7 + bl sub_81C763C + adds r6, r0, 0 + ldr r0, [r6, 0x20] + movs r1, 0 + strh r1, [r0] + ldr r0, [r6, 0x20] + strh r1, [r0, 0x2] + ldr r1, =0xffffff00 + ldr r0, [sp] + ands r0, r1 + movs r1, 0xE + orrs r0, r1 + str r0, [sp] + movs r5, 0 +_081CF158: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x5 + bl GetMonData + cmp r0, 0 + beq _081CF1AA + adds r0, r4, 0 + movs r1, 0x6 + bl GetMonData + cmp r0, 0 + bne _081CF1A4 + lsls r1, r5, 24 + lsrs r1, 16 + ldr r2, =0xffff00ff + ldr r0, [sp] + ands r0, r2 + orrs r0, r1 + str r0, [sp] + ldr r1, [r6, 0x14] + adds r0, r4, 0 + bl GetMonData + lsls r0, 16 + ldr r2, =0x0000ffff + ldr r1, [sp] + ands r1, r2 + orrs r1, r0 + str r1, [sp] + adds r0, r6, 0 + mov r1, sp + bl sub_81CF2C4 +_081CF1A4: + adds r5, 0x1 + cmp r5, 0x5 + ble _081CF158 +_081CF1AA: + movs r0, 0x1 + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CF134 + + thumb_func_start sub_81CF1C4 +sub_81CF1C4: @ 81CF1C4 + push {lr} + movs r0, 0x7 + bl sub_81C763C + movs r1, 0 + str r1, [r0, 0x10] + str r1, [r0, 0xC] + movs r0, 0x1 + pop {r1} + bx r1 + thumb_func_end sub_81CF1C4 + + thumb_func_start sub_81CF1D8 +sub_81CF1D8: @ 81CF1D8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + movs r0, 0x7 + bl sub_81C763C + adds r6, r0, 0 + ldr r5, [r6, 0xC] + ldr r4, [r6, 0x10] + movs r0, 0 + mov r8, r0 + cmp r5, 0xD + bgt _081CF268 +_081CF1F4: + cmp r4, 0x1D + bgt _081CF260 + lsls r0, r5, 24 + lsrs r7, r0, 24 +_081CF1FC: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80D2270 + cmp r0, 0 + beq _081CF23A + ldr r1, =0xffffff00 + ldr r0, [sp] + ands r0, r1 + orrs r0, r7 + lsls r1, r4, 24 + lsrs r1, 24 + lsls r3, r1, 8 + ldr r2, =0xffff00ff + ands r0, r2 + orrs r0, r3 + str r0, [sp] + ldr r2, [r6, 0x14] + adds r0, r7, 0 + bl get_pokemon_data_from_any_box + lsls r0, 16 + ldr r2, =0x0000ffff + ldr r1, [sp] + ands r1, r2 + orrs r1, r0 + str r1, [sp] + adds r0, r6, 0 + mov r1, sp + bl sub_81CF2C4 +_081CF23A: + movs r0, 0x1 + add r8, r0 + adds r4, 0x1 + mov r0, r8 + cmp r0, 0xE + ble _081CF25C + str r5, [r6, 0xC] + str r4, [r6, 0x10] + movs r0, 0x3 + b _081CF26A + .pool +_081CF25C: + cmp r4, 0x1D + ble _081CF1FC +_081CF260: + movs r4, 0 + adds r5, 0x1 + cmp r5, 0xD + ble _081CF1F4 +_081CF268: + movs r0, 0x1 +_081CF26A: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81CF1D8 + + thumb_func_start sub_81CF278 +sub_81CF278: @ 81CF278 + push {r4-r6,lr} + movs r0, 0x7 + bl sub_81C763C + adds r5, r0, 0 + ldr r0, [r5, 0x20] + ldrh r6, [r0] + ldrh r4, [r0, 0x6] + movs r1, 0x1 + strh r1, [r0, 0x6] + movs r3, 0x1 + cmp r3, r6 + bge _081CF2B8 +_081CF292: + ldr r2, [r5, 0x20] + lsls r0, r3, 2 + adds r1, r2, r0 + ldrh r0, [r1, 0x6] + cmp r0, r4 + bne _081CF2AC + subs r0, r3, 0x1 + lsls r0, 2 + adds r0, r2, r0 + ldrh r0, [r0, 0x6] + strh r0, [r1, 0x6] + adds r0, r3, 0x1 + b _081CF2B2 +_081CF2AC: + adds r4, r0, 0 + adds r0, r3, 0x1 + strh r0, [r1, 0x6] +_081CF2B2: + adds r3, r0, 0 + cmp r3, r6 + blt _081CF292 +_081CF2B8: + movs r0, 0x1 + str r0, [r5, 0x18] + movs r0, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81CF278 + + thumb_func_start sub_81CF2C4 +sub_81CF2C4: @ 81CF2C4 + push {r4-r7,lr} + adds r5, r0, 0 + adds r7, r1, 0 + movs r1, 0 + ldr r0, [r5, 0x20] + ldrh r2, [r0] + lsrs r3, r2, 1 + cmp r2, r3 + beq _081CF2F4 + adds r6, r0, 0 + ldrh r4, [r7, 0x2] +_081CF2DA: + lsls r0, r3, 2 + adds r0, r6, r0 + ldrh r0, [r0, 0x6] + cmp r4, r0 + bls _081CF2E8 + adds r2, r3, 0 + b _081CF2EA +_081CF2E8: + adds r1, r3, 0x1 +_081CF2EA: + subs r0, r2, r1 + lsrs r0, 1 + adds r3, r1, r0 + cmp r2, r3 + bne _081CF2DA +_081CF2F4: + ldr r0, [r5, 0x20] + ldrh r2, [r0] + lsls r6, r3, 2 + cmp r2, r3 + bls _081CF318 + lsls r0, r2, 2 + subs r4, r0, 0x4 +_081CF302: + ldr r0, [r5, 0x20] + lsls r1, r2, 2 + adds r0, 0x4 + adds r1, r0, r1 + adds r0, r4 + ldr r0, [r0] + str r0, [r1] + subs r4, 0x4 + subs r2, 0x1 + cmp r2, r3 + bhi _081CF302 +_081CF318: + ldr r0, [r5, 0x20] + adds r0, 0x4 + adds r0, r6 + ldr r1, [r7] + str r1, [r0] + ldr r1, [r5, 0x20] + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81CF2C4 + + thumb_func_start sub_81CF330 +sub_81CF330: @ 81CF330 + push {r4,lr} + movs r1, 0x81 + lsls r1, 4 + movs r0, 0x8 + bl sub_81C761C + adds r4, r0, 0 + cmp r4, 0 + beq _081CF360 + ldr r0, =sub_81CF418 + movs r1, 0x1 + bl sub_81C7078 + str r0, [r4, 0x4] + ldr r0, =sub_81CF3E4 + str r0, [r4] + movs r0, 0 + str r0, [r4, 0xC] + movs r0, 0x1 + b _081CF362 + .pool +_081CF360: + movs r0, 0 +_081CF362: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CF330 + + thumb_func_start sub_81CF368 +sub_81CF368: @ 81CF368 + push {r4,lr} + movs r1, 0x81 + lsls r1, 4 + movs r0, 0x8 + bl sub_81C761C + adds r4, r0, 0 + cmp r4, 0 + beq _081CF398 + ldr r0, =sub_81CF418 + movs r1, 0x1 + bl sub_81C7078 + str r0, [r4, 0x4] + ldr r0, =sub_81CF3E4 + str r0, [r4] + movs r0, 0x1 + str r0, [r4, 0xC] + b _081CF39A + .pool +_081CF398: + movs r0, 0 +_081CF39A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CF368 + + thumb_func_start sub_81CF3A0 +sub_81CF3A0: @ 81CF3A0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x8 + bl sub_81C763C + adds r5, r0, 0 + ldr r0, =gUnknown_08623598 + lsls r4, 2 + adds r4, r0 + ldr r0, [r4] + movs r1, 0x1 + bl sub_81C7078 + str r0, [r5, 0x4] + ldr r0, =sub_81CF3E4 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CF3A0 + + thumb_func_start sub_81CF3D0 +sub_81CF3D0: @ 81CF3D0 + push {lr} + movs r0, 0x8 + bl sub_81C763C + ldr r0, [r0] + bl _call_via_r0 + pop {r1} + bx r1 + thumb_func_end sub_81CF3D0 + + thumb_func_start sub_81CF3E4 +sub_81CF3E4: @ 81CF3E4 + push {lr} + movs r0, 0x8 + bl sub_81C763C + ldr r0, [r0, 0x4] + bl sub_81C70D8 + pop {r1} + bx r1 + thumb_func_end sub_81CF3E4 + + thumb_func_start sub_81CF3F8 +sub_81CF3F8: @ 81CF3F8 + push {r4,lr} + movs r0, 0x8 + bl sub_81C763C + adds r4, r0, 0 + bl sub_81C8234 + ldrb r0, [r4, 0x8] + bl RemoveWindow + movs r0, 0x8 + bl sub_81C7650 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CF3F8 + + thumb_func_start sub_81CF418 +sub_81CF418: @ 81CF418 + push {r4,r5,lr} + sub sp, 0x4 + adds r4, r0, 0 + movs r0, 0x8 + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x5 + bls _081CF42C + b _081CF56E +_081CF42C: + lsls r0, r4, 2 + ldr r1, =_081CF43C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081CF43C: + .4byte _081CF454 + .4byte _081CF4AC + .4byte _081CF4C0 + .4byte _081CF4E0 + .4byte _081CF4F6 + .4byte _081CF55A +_081CF454: + ldr r0, =gUnknown_08623590 + movs r1, 0x2 + bl sub_81C7B54 + ldr r1, =gUnknown_086233E4 + movs r0, 0 + str r0, [sp] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + adds r1, r5, 0 + adds r1, 0x10 + movs r0, 0x1 + bl SetBgTilemapBuffer + ldr r1, =gUnknown_086234AC + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer + movs r0, 0x1 + bl CopyBgTilemapBufferToVram + ldr r0, =gUnknown_086233C4 + movs r1, 0x10 + movs r2, 0x20 + bl sub_81C7944 + movs r0, 0x1 + bl CopyBgTilemapBufferToVram +_081CF498: + movs r0, 0 + b _081CF570 + .pool +_081CF4AC: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _081CF56A + bl sub_81CF0C0 + cmp r0, 0 + beq _081CF56A + b _081CF498 +_081CF4C0: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _081CF56A + ldr r0, =gUnknown_08623570 + movs r1, 0x20 + movs r2, 0x20 + bl sub_81C7944 + bl sub_81CF88C + b _081CF498 + .pool +_081CF4E0: + bl sub_81C8224 + cmp r0, 0 + bne _081CF56A + adds r0, r5, 0 + bl sub_81CF7C8 + movs r0, 0x3 + bl sub_81C7BA4 + b _081CF498 +_081CF4F6: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _081CF56A + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + movs r0, 0x3 + bl HideBg + ldr r0, [r5, 0xC] + cmp r0, 0 + bne _081CF552 + bl sub_81C76AC + adds r4, r0, 0 + adds r4, 0x8 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_81C7DFC + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0 + bl sub_81C7FA0 + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0 + bl sub_81C7FA0 +_081CF552: + movs r0, 0x1 + bl sub_81C7AC0 + b _081CF498 +_081CF55A: + bl sub_81C7B34 + cmp r0, 0 + bne _081CF56A + bl sub_81C8010 + cmp r0, 0 + beq _081CF56E +_081CF56A: + movs r0, 0x2 + b _081CF570 +_081CF56E: + movs r0, 0x4 +_081CF570: + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CF418 + + thumb_func_start sub_81CF578 +sub_81CF578: @ 81CF578 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x8 + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CF5C6 + cmp r4, 0x1 + bgt _081CF592 + cmp r4, 0 + beq _081CF59C + b _081CF5E6 +_081CF592: + cmp r4, 0x2 + beq _081CF5CE + cmp r4, 0x3 + beq _081CF5D8 + b _081CF5E6 +_081CF59C: + bl sub_81C8658 + cmp r0, 0x1 + beq _081CF5B4 + cmp r0, 0x1 + bgt _081CF5AE + cmp r0, 0 + beq _081CF5E6 + b _081CF5D4 +_081CF5AE: + cmp r0, 0x2 + beq _081CF5BE + b _081CF5D4 +_081CF5B4: + movs r0, 0x5 + bl PlaySE + movs r0, 0x7 + b _081CF5E8 +_081CF5BE: + movs r0, 0x5 + bl PlaySE + b _081CF5D4 +_081CF5C6: + bl sub_81C8630 + cmp r0, 0 + bne _081CF5E2 +_081CF5CE: + adds r0, r5, 0 + bl sub_81CF7F4 +_081CF5D4: + movs r0, 0 + b _081CF5E8 +_081CF5D8: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081CF5E6 +_081CF5E2: + movs r0, 0x2 + b _081CF5E8 +_081CF5E6: + movs r0, 0x4 +_081CF5E8: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CF578 + + thumb_func_start sub_81CF5F0 +sub_81CF5F0: @ 81CF5F0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x8 + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CF63E + cmp r4, 0x1 + bgt _081CF60A + cmp r4, 0 + beq _081CF614 + b _081CF65E +_081CF60A: + cmp r4, 0x2 + beq _081CF646 + cmp r4, 0x3 + beq _081CF650 + b _081CF65E +_081CF614: + bl sub_81C868C + cmp r0, 0x1 + beq _081CF62C + cmp r0, 0x1 + bgt _081CF626 + cmp r0, 0 + beq _081CF65E + b _081CF64C +_081CF626: + cmp r0, 0x2 + beq _081CF636 + b _081CF64C +_081CF62C: + movs r0, 0x5 + bl PlaySE + movs r0, 0x7 + b _081CF660 +_081CF636: + movs r0, 0x5 + bl PlaySE + b _081CF64C +_081CF63E: + bl sub_81C8630 + cmp r0, 0 + bne _081CF65A +_081CF646: + adds r0, r5, 0 + bl sub_81CF7F4 +_081CF64C: + movs r0, 0 + b _081CF660 +_081CF650: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081CF65E +_081CF65A: + movs r0, 0x2 + b _081CF660 +_081CF65E: + movs r0, 0x4 +_081CF660: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CF5F0 + + thumb_func_start sub_81CF668 +sub_81CF668: @ 81CF668 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x8 + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CF6B6 + cmp r4, 0x1 + bgt _081CF682 + cmp r4, 0 + beq _081CF68C + b _081CF6D6 +_081CF682: + cmp r4, 0x2 + beq _081CF6BE + cmp r4, 0x3 + beq _081CF6C8 + b _081CF6D6 +_081CF68C: + bl sub_81C86CC + cmp r0, 0x1 + beq _081CF6A4 + cmp r0, 0x1 + bgt _081CF69E + cmp r0, 0 + beq _081CF6D6 + b _081CF6C4 +_081CF69E: + cmp r0, 0x2 + beq _081CF6AE + b _081CF6C4 +_081CF6A4: + movs r0, 0x5 + bl PlaySE + movs r0, 0x7 + b _081CF6D8 +_081CF6AE: + movs r0, 0x5 + bl PlaySE + b _081CF6C4 +_081CF6B6: + bl sub_81C8630 + cmp r0, 0 + bne _081CF6D2 +_081CF6BE: + adds r0, r5, 0 + bl sub_81CF7F4 +_081CF6C4: + movs r0, 0 + b _081CF6D8 +_081CF6C8: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081CF6D6 +_081CF6D2: + movs r0, 0x2 + b _081CF6D8 +_081CF6D6: + movs r0, 0x4 +_081CF6D8: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CF668 + + thumb_func_start sub_81CF6E0 +sub_81CF6E0: @ 81CF6E0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x8 + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CF72E + cmp r4, 0x1 + bgt _081CF6FA + cmp r4, 0 + beq _081CF704 + b _081CF74E +_081CF6FA: + cmp r4, 0x2 + beq _081CF736 + cmp r4, 0x3 + beq _081CF740 + b _081CF74E +_081CF704: + bl sub_81C870C + cmp r0, 0x1 + beq _081CF71C + cmp r0, 0x1 + bgt _081CF716 + cmp r0, 0 + beq _081CF74E + b _081CF73C +_081CF716: + cmp r0, 0x2 + beq _081CF726 + b _081CF73C +_081CF71C: + movs r0, 0x5 + bl PlaySE + movs r0, 0x7 + b _081CF750 +_081CF726: + movs r0, 0x5 + bl PlaySE + b _081CF73C +_081CF72E: + bl sub_81C8630 + cmp r0, 0 + bne _081CF74A +_081CF736: + adds r0, r5, 0 + bl sub_81CF7F4 +_081CF73C: + movs r0, 0 + b _081CF750 +_081CF740: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081CF74E +_081CF74A: + movs r0, 0x2 + b _081CF750 +_081CF74E: + movs r0, 0x4 +_081CF750: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CF6E0 + + thumb_func_start sub_81CF758 +sub_81CF758: @ 81CF758 + push {lr} + cmp r0, 0 + beq _081CF764 + cmp r0, 0x1 + beq _081CF778 + b _081CF790 +_081CF764: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_81C7AC0 + bl sub_81C78A0 + movs r0, 0 + b _081CF792 +_081CF778: + bl sub_81C7B34 + cmp r0, 0 + bne _081CF788 + bl sub_81C78C0 + cmp r0, 0 + beq _081CF78C +_081CF788: + movs r0, 0x2 + b _081CF792 +_081CF78C: + bl sub_81C7FDC +_081CF790: + movs r0, 0x4 +_081CF792: + pop {r1} + bx r1 + thumb_func_end sub_81CF758 + + thumb_func_start sub_81CF798 +sub_81CF798: @ 81CF798 + push {lr} + cmp r0, 0 + beq _081CF7A4 + cmp r0, 0x1 + beq _081CF7B4 + b _081CF7C0 +_081CF7A4: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_81C7AC0 + movs r0, 0 + b _081CF7C2 +_081CF7B4: + bl sub_81C7B34 + cmp r0, 0 + beq _081CF7C0 + movs r0, 0x2 + b _081CF7C2 +_081CF7C0: + movs r0, 0x4 +_081CF7C2: + pop {r1} + bx r1 + thumb_func_end sub_81CF798 + + thumb_func_start sub_81CF7C8 +sub_81CF7C8: @ 81CF7C8 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_086235B4 + bl AddWindow + strh r0, [r4, 0x8] + lsls r0, 24 + lsrs r0, 24 + bl PutWindowTilemap + ldrb r0, [r4, 0x8] + movs r1, 0x1 + bl CopyWindowToVram + adds r0, r4, 0 + bl sub_81CF7F4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CF7C8 + + thumb_func_start sub_81CF7F4 +sub_81CF7F4: @ 81CF7F4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + mov r8, r0 + bl sub_81CF0F0 + adds r7, r0, 0 + bl sub_81AFBF0 + ldr r4, =gStringVar1 + movs r0, 0 + adds r1, r4, 0 + bl sub_81AFC0C + movs r0, 0xFF + strb r0, [r4] + ldr r5, =gStringVar2 + ldr r1, =gUnknown_085EC029 + adds r0, r5, 0 + bl sub_81AFC28 + mov r1, r8 + ldrb r0, [r1, 0x8] + movs r1, 0x1 + mov r10, r1 + str r1, [sp] + movs r1, 0xFF + mov r9, r1 + str r1, [sp, 0x4] + movs r6, 0 + str r6, [sp, 0x8] + movs r1, 0x1 + adds r2, r5, 0 + movs r3, 0x4 + bl Print + adds r0, r4, 0 + adds r1, r7, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + mov r1, r8 + ldrb r0, [r1, 0x8] + mov r1, r10 + str r1, [sp] + mov r1, r9 + str r1, [sp, 0x4] + str r6, [sp, 0x8] + movs r1, 0x1 + adds r2, r4, 0 + movs r3, 0x22 + bl Print + mov r1, r8 + ldrb r0, [r1, 0x8] + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CF7F4 + + thumb_func_start sub_81CF88C +sub_81CF88C: @ 81CF88C + push {r4,lr} + sub sp, 0x18 + bl sub_81CF0D0 + str r0, [sp] + bl sub_81CF0E0 + mov r1, sp + movs r4, 0 + strh r0, [r1, 0x4] + movs r0, 0x4 + strb r0, [r1, 0x8] + bl sub_81CF10C + mov r1, sp + strh r0, [r1, 0x6] + movs r0, 0xD + strb r0, [r1, 0x9] + movs r0, 0x11 + strb r0, [r1, 0xA] + mov r0, sp + movs r2, 0x1 + strb r2, [r0, 0xB] + movs r0, 0x8 + strb r0, [r1, 0xC] + movs r0, 0x2 + strb r0, [r1, 0xD] + mov r0, sp + strb r2, [r0, 0xE] + ldr r0, =sub_81CF8E4 + str r0, [sp, 0x10] + str r4, [sp, 0x14] + ldr r0, =gUnknown_08623594 + movs r2, 0 + bl sub_81C81D4 + add sp, 0x18 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CF88C + + thumb_func_start sub_81CF8E4 +sub_81CF8E4: @ 81CF8E4 + push {r4-r7,lr} + adds r2, r0, 0 + adds r6, r1, 0 + ldrb r0, [r2] + cmp r0, 0xE + bne _081CF924 + ldrb r1, [r2, 0x1] + movs r0, 0x64 + adds r4, r1, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + bl pokemon_get_gender + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r4, 0 + bl level_by_exp + lsls r0, 24 + lsrs r7, r0, 24 + ldr r2, =gStringVar3 + adds r0, r4, 0 + movs r1, 0x2 + bl GetMonData + b _081CF94A + .pool +_081CF924: + ldrb r0, [r2] + ldrb r1, [r2, 0x1] + bl get_pokemon_by_box_and_pos + adds r4, r0, 0 + bl pokemon_roll_gender + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r4, 0 + bl sub_80690C0 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r2, =gStringVar3 + adds r0, r4, 0 + movs r1, 0x2 + bl pokemon_getattr_encrypted +_081CF94A: + ldr r4, =gStringVar3 + adds r0, r4, 0 + bl StringGetEnd10 + adds r0, r6, 0 + movs r1, 0x1 + adds r2, r4, 0 + movs r3, 0x3C + bl sub_81DB494 + adds r6, r0, 0 + cmp r5, 0 + beq _081CF974 + cmp r5, 0xFE + beq _081CF97C + ldr r1, =gUnknown_086235D4 + b _081CF97E + .pool +_081CF974: + ldr r1, =gUnknown_086235BC + b _081CF97E + .pool +_081CF97C: + ldr r1, =gUnknown_086235C8 +_081CF97E: + ldr r4, =gStringVar1 + adds r0, r4, 0 + bl StringCopy + movs r1, 0xBA + strb r1, [r0] + adds r0, 0x1 + movs r1, 0xF9 + strb r1, [r0] + adds r0, 0x1 + movs r1, 0x5 + strb r1, [r0] + adds r0, 0x1 + adds r1, r7, 0 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r0, r6, 0 + movs r1, 0x1 + adds r2, r4, 0 + movs r3, 0x28 + bl sub_81DB494 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CF8E4 + + thumb_func_start sub_81CF9BC +sub_81CF9BC: @ 81CF9BC + push {r4,lr} + movs r0, 0x9 + movs r1, 0x20 + bl sub_81C761C + adds r4, r0, 0 + cmp r4, 0 + beq _081CF9FC + ldr r1, =0x000006ac + movs r0, 0x12 + bl sub_81C761C + str r0, [r4, 0x1C] + cmp r0, 0 + beq _081CF9FC + ldr r0, =sub_81CFA68 + str r0, [r4] + ldr r0, =sub_81CFB74 + movs r1, 0x1 + bl sub_81C7078 + str r0, [r4, 0x4] + movs r0, 0 + str r0, [r4, 0x14] + movs r0, 0x1 + b _081CF9FE + .pool +_081CF9FC: + movs r0, 0 +_081CF9FE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CF9BC + + thumb_func_start sub_81CFA04 +sub_81CFA04: @ 81CFA04 + push {r4,lr} + movs r0, 0x9 + movs r1, 0x20 + bl sub_81C761C + adds r4, r0, 0 + cmp r4, 0 + beq _081CFA2C + movs r0, 0x12 + bl sub_81C763C + str r0, [r4, 0x1C] + ldr r0, =sub_81CFA88 + str r0, [r4] + movs r0, 0x1 + str r0, [r4, 0x14] + b _081CFA2E + .pool +_081CFA2C: + movs r0, 0 +_081CFA2E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CFA04 + + thumb_func_start sub_81CFA34 +sub_81CFA34: @ 81CFA34 + push {lr} + movs r0, 0x9 + bl sub_81C763C + ldr r1, [r0] + bl _call_via_r1 + pop {r1} + bx r1 + thumb_func_end sub_81CFA34 + + thumb_func_start sub_81CFA48 +sub_81CFA48: @ 81CFA48 + push {lr} + movs r0, 0x9 + bl sub_81C763C + ldr r0, [r0, 0x18] + cmp r0, 0 + bne _081CFA5C + movs r0, 0x12 + bl sub_81C7650 +_081CFA5C: + movs r0, 0x9 + bl sub_81C7650 + pop {r0} + bx r0 + thumb_func_end sub_81CFA48 + + thumb_func_start sub_81CFA68 +sub_81CFA68: @ 81CFA68 + push {r4,lr} + adds r4, r0, 0 + ldr r0, [r4, 0x4] + bl sub_81C70D8 + cmp r0, 0 + bne _081CFA7A + ldr r0, =sub_81CFA88 + str r0, [r4] +_081CFA7A: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CFA68 + + thumb_func_start sub_81CFA88 +sub_81CFA88: @ 81CFA88 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r2, =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081CFAA0 + movs r0, 0x1 + b _081CFAFE + .pool +_081CFAA0: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081CFAAC + movs r0, 0x2 + b _081CFAFE +_081CFAAC: + ldrh r1, [r2, 0x2E] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _081CFABA + movs r0, 0x3 + b _081CFAFE +_081CFABA: + movs r0, 0x10 + ands r0, r1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0 + beq _081CFACA + movs r0, 0x4 + b _081CFAFE +_081CFACA: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081CFAE0 + str r2, [r4, 0x18] + ldr r0, =sub_81CFB08 + str r0, [r4] + movs r0, 0x5 + b _081CFAFE + .pool +_081CFAE0: + movs r5, 0x1 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _081CFAEE + movs r0, 0 + b _081CFAFE +_081CFAEE: + bl sub_81C875C + ldr r1, [r4, 0x1C] + strh r0, [r1, 0x2] + str r5, [r4, 0x18] + ldr r0, =sub_81CFB10 + str r0, [r4] + movs r0, 0x6 +_081CFAFE: + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CFA88 + + thumb_func_start sub_81CFB08 +sub_81CFB08: @ 81CFB08 + ldr r0, =0x000186a5 + bx lr + .pool + thumb_func_end sub_81CFB08 + + thumb_func_start sub_81CFB10 +sub_81CFB10: @ 81CFB10 + ldr r0, =0x000186ad + bx lr + .pool + thumb_func_end sub_81CFB10 + + thumb_func_start sub_81CFB18 +sub_81CFB18: @ 81CFB18 + push {lr} + movs r0, 0x9 + bl sub_81C763C + ldr r0, [r0, 0x14] + pop {r1} + bx r1 + thumb_func_end sub_81CFB18 + + thumb_func_start sub_81CFB28 +sub_81CFB28: @ 81CFB28 + push {lr} + movs r0, 0x9 + bl sub_81C763C + ldr r0, [r0, 0x1C] + adds r0, 0x4 + pop {r1} + bx r1 + thumb_func_end sub_81CFB28 + + thumb_func_start sub_81CFB38 +sub_81CFB38: @ 81CFB38 + push {lr} + movs r0, 0x9 + bl sub_81C763C + ldr r0, [r0, 0x1C] + ldrh r0, [r0] + pop {r1} + bx r1 + thumb_func_end sub_81CFB38 + + thumb_func_start sub_81CFB48 +sub_81CFB48: @ 81CFB48 + push {r4,lr} + movs r0, 0x9 + bl sub_81C763C + adds r4, r0, 0 + bl sub_81C875C + ldr r1, [r4, 0x1C] + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1, 0x6] + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CFB48 + + thumb_func_start sub_81CFB64 +sub_81CFB64: @ 81CFB64 + push {lr} + movs r0, 0x9 + bl sub_81C763C + ldr r0, [r0, 0x1C] + ldrh r0, [r0, 0x2] + pop {r1} + bx r1 + thumb_func_end sub_81CFB64 + + thumb_func_start sub_81CFB74 +sub_81CFB74: @ 81CFB74 + push {lr} + ldr r2, =gUnknown_086235D8 + lsls r1, r0, 2 + adds r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CFB74 + + thumb_func_start sub_81CFB8C +sub_81CFB8C: @ 81CFB8C + push {r4-r6,lr} + sub sp, 0x4 + movs r0, 0x9 + bl sub_81C763C + adds r6, r0, 0 + ldr r0, [r6, 0x1C] + movs r1, 0 + strh r1, [r0] + ldr r0, [r6, 0x1C] + strh r1, [r0, 0x2] + ldr r1, =0xffffff00 + ldr r0, [sp] + ands r0, r1 + movs r1, 0xE + orrs r0, r1 + str r0, [sp] + movs r5, 0 +_081CFBB0: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x5 + bl GetMonData + cmp r0, 0 + beq _081CFC10 + adds r0, r4, 0 + movs r1, 0x6 + bl GetMonData + cmp r0, 0 + bne _081CFC0A + adds r0, r4, 0 + movs r1, 0x4 + bl GetMonData + cmp r0, 0 + bne _081CFC0A + adds r0, r4, 0 + movs r1, 0x52 + bl GetMonData + adds r3, r0, 0 + cmp r3, 0 + beq _081CFC0A + lsls r1, r5, 24 + lsrs r1, 16 + ldr r2, =0xffff00ff + ldr r0, [sp] + ands r0, r2 + orrs r0, r1 + lsls r2, r3, 16 + ldr r1, =0x0000ffff + ands r0, r1 + orrs r0, r2 + str r0, [sp] + adds r0, r6, 0 + mov r1, sp + bl sub_81CFCEC +_081CFC0A: + adds r5, 0x1 + cmp r5, 0x5 + ble _081CFBB0 +_081CFC10: + movs r0, 0x1 + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CFB8C + + thumb_func_start sub_81CFC2C +sub_81CFC2C: @ 81CFC2C + push {lr} + movs r0, 0x9 + bl sub_81C763C + movs r1, 0 + str r1, [r0, 0x10] + str r1, [r0, 0xC] + movs r0, 0x1 + pop {r1} + bx r1 + thumb_func_end sub_81CFC2C + + thumb_func_start sub_81CFC40 +sub_81CFC40: @ 81CFC40 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + movs r0, 0x9 + bl sub_81C763C + mov r8, r0 + ldr r7, [r0, 0xC] + ldr r6, [r0, 0x10] + movs r0, 0 + mov r9, r0 + cmp r7, 0xD + bgt _081CFCD4 + b _081CFCC8 +_081CFC60: + adds r0, r7, 0 + adds r1, r6, 0 + bl sub_80D2270 + cmp r0, 0 + beq _081CFCA6 + lsls r0, r7, 24 + lsrs r5, r0, 24 + lsls r0, r6, 24 + lsrs r4, r0, 24 + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x52 + bl get_pokemon_data_from_any_box + adds r3, r0, 0 + cmp r3, 0 + beq _081CFCA6 + ldr r1, =0xffffff00 + ldr r0, [sp] + ands r0, r1 + orrs r0, r5 + lsls r2, r4, 8 + ldr r1, =0xffff00ff + ands r0, r1 + orrs r0, r2 + lsls r2, r3, 16 + ldr r1, =0x0000ffff + ands r0, r1 + orrs r0, r2 + str r0, [sp] + mov r0, r8 + mov r1, sp + bl sub_81CFCEC +_081CFCA6: + movs r1, 0x1 + add r9, r1 + adds r6, 0x1 + mov r0, r9 + cmp r0, 0xE + ble _081CFCC8 + mov r1, r8 + str r7, [r1, 0xC] + str r6, [r1, 0x10] + movs r0, 0x3 + b _081CFCDC + .pool +_081CFCC8: + cmp r6, 0x1D + ble _081CFC60 + movs r6, 0 + adds r7, 0x1 + cmp r7, 0xD + ble _081CFCC8 +_081CFCD4: + movs r0, 0x1 + mov r1, r8 + str r0, [r1, 0x14] + movs r0, 0x4 +_081CFCDC: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81CFC40 + + thumb_func_start sub_81CFCEC +sub_81CFCEC: @ 81CFCEC + push {r4-r7,lr} + adds r5, r0, 0 + adds r7, r1, 0 + movs r1, 0 + ldr r0, [r5, 0x1C] + ldrh r2, [r0] + lsrs r3, r2, 1 + cmp r2, r3 + beq _081CFD1C + adds r6, r0, 0 + ldrh r4, [r7, 0x2] +_081CFD02: + lsls r0, r3, 2 + adds r0, r6, r0 + ldrh r0, [r0, 0x6] + cmp r4, r0 + bls _081CFD10 + adds r2, r3, 0 + b _081CFD12 +_081CFD10: + adds r1, r3, 0x1 +_081CFD12: + subs r0, r2, r1 + lsrs r0, 1 + adds r3, r1, r0 + cmp r2, r3 + bne _081CFD02 +_081CFD1C: + ldr r0, [r5, 0x1C] + ldrh r2, [r0] + lsls r6, r3, 2 + cmp r2, r3 + bls _081CFD40 + lsls r0, r2, 2 + subs r4, r0, 0x4 +_081CFD2A: + ldr r0, [r5, 0x1C] + lsls r1, r2, 2 + adds r0, 0x4 + adds r1, r0, r1 + adds r0, r4 + ldr r0, [r0] + str r0, [r1] + subs r4, 0x4 + subs r2, 0x1 + cmp r2, r3 + bhi _081CFD2A +_081CFD40: + ldr r0, [r5, 0x1C] + adds r0, 0x4 + adds r0, r6 + ldr r1, [r7] + str r1, [r0] + ldr r1, [r5, 0x1C] + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81CFCEC + + thumb_func_start sub_81CFD58 +sub_81CFD58: @ 81CFD58 + push {r4-r6,lr} + movs r5, 0 +_081CFD5C: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x5 + bl GetMonData + cmp r0, 0 + beq _081CFD8A + adds r0, r4, 0 + movs r1, 0x6 + bl GetMonData + cmp r0, 0 + bne _081CFD8A + adds r0, r4, 0 + movs r1, 0x53 + bl GetMonData + cmp r0, 0 + bne _081CFDB2 +_081CFD8A: + adds r5, 0x1 + cmp r5, 0x5 + ble _081CFD5C + movs r5, 0 +_081CFD92: + movs r4, 0 + lsls r6, r5, 24 +_081CFD96: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80D2270 + cmp r0, 0 + beq _081CFDBC + lsls r1, r4, 24 + lsrs r1, 24 + lsrs r0, r6, 24 + movs r2, 0x53 + bl get_pokemon_data_from_any_box + cmp r0, 0 + beq _081CFDBC +_081CFDB2: + movs r0, 0x1 + b _081CFDCA + .pool +_081CFDBC: + adds r4, 0x1 + cmp r4, 0x1D + ble _081CFD96 + adds r5, 0x1 + cmp r5, 0xD + ble _081CFD92 + movs r0, 0 +_081CFDCA: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81CFD58 + + thumb_func_start sub_81CFDD0 +sub_81CFDD0: @ 81CFDD0 + push {r4,lr} + movs r1, 0x81 + lsls r1, 4 + movs r0, 0xA + bl sub_81C761C + adds r4, r0, 0 + cmp r4, 0 + beq _081CFE00 + ldr r0, =sub_81CFEB8 + movs r1, 0x1 + bl sub_81C7078 + str r0, [r4, 0x4] + ldr r0, =sub_81CFE84 + str r0, [r4] + movs r0, 0 + str r0, [r4, 0xC] + movs r0, 0x1 + b _081CFE02 + .pool +_081CFE00: + movs r0, 0 +_081CFE02: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CFDD0 + + thumb_func_start sub_81CFE08 +sub_81CFE08: @ 81CFE08 + push {r4,lr} + movs r1, 0x81 + lsls r1, 4 + movs r0, 0xA + bl sub_81C761C + adds r4, r0, 0 + cmp r4, 0 + beq _081CFE38 + ldr r0, =sub_81CFEB8 + movs r1, 0x1 + bl sub_81C7078 + str r0, [r4, 0x4] + ldr r0, =sub_81CFE84 + str r0, [r4] + movs r0, 0x1 + str r0, [r4, 0xC] + b _081CFE3A + .pool +_081CFE38: + movs r0, 0 +_081CFE3A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CFE08 + + thumb_func_start sub_81CFE40 +sub_81CFE40: @ 81CFE40 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0xA + bl sub_81C763C + adds r5, r0, 0 + ldr r0, =gUnknown_086237B8 + lsls r4, 2 + adds r4, r0 + ldr r0, [r4] + movs r1, 0x1 + bl sub_81C7078 + str r0, [r5, 0x4] + ldr r0, =sub_81CFE84 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CFE40 + + thumb_func_start sub_81CFE70 +sub_81CFE70: @ 81CFE70 + push {lr} + movs r0, 0xA + bl sub_81C763C + ldr r0, [r0] + bl _call_via_r0 + pop {r1} + bx r1 + thumb_func_end sub_81CFE70 + + thumb_func_start sub_81CFE84 +sub_81CFE84: @ 81CFE84 + push {lr} + movs r0, 0xA + bl sub_81C763C + ldr r0, [r0, 0x4] + bl sub_81C70D8 + pop {r1} + bx r1 + thumb_func_end sub_81CFE84 + + thumb_func_start sub_81CFE98 +sub_81CFE98: @ 81CFE98 + push {r4,lr} + movs r0, 0xA + bl sub_81C763C + adds r4, r0, 0 + bl sub_81C8234 + ldrb r0, [r4, 0x8] + bl RemoveWindow + movs r0, 0xA + bl sub_81C7650 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CFE98 + + thumb_func_start sub_81CFEB8 +sub_81CFEB8: @ 81CFEB8 + push {r4,r5,lr} + sub sp, 0x4 + adds r4, r0, 0 + movs r0, 0xA + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x5 + bls _081CFECC + b _081CFFF2 +_081CFECC: + lsls r0, r4, 2 + ldr r1, =_081CFEDC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081CFEDC: + .4byte _081CFEF4 + .4byte _081CFF48 + .4byte _081CFF76 + .4byte _081CFF94 + .4byte _081CFFA4 + .4byte _081CFFDE +_081CFEF4: + ldr r0, =gUnknown_086237B0 + movs r1, 0x2 + bl sub_81C7B54 + ldr r1, =gUnknown_08623604 + movs r0, 0 + str r0, [sp] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + adds r1, r5, 0 + adds r1, 0x10 + movs r0, 0x1 + bl SetBgTilemapBuffer + ldr r1, =gUnknown_086236CC + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer + ldr r0, =gUnknown_086235E4 + movs r1, 0x10 + movs r2, 0x20 + bl sub_81C7944 + movs r0, 0x1 + bl CopyBgTilemapBufferToVram +_081CFF32: + movs r0, 0 + b _081CFFF4 + .pool +_081CFF48: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _081CFFEE + bl sub_81CFB18 + cmp r0, 0 + beq _081CFFEE + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x1 + bl ShowBg + b _081CFF32 +_081CFF76: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _081CFFEE + ldr r0, =gUnknown_08623790 + movs r1, 0x20 + movs r2, 0x20 + bl sub_81C7944 + bl sub_81D0304 + b _081CFF32 + .pool +_081CFF94: + bl sub_81C8224 + cmp r0, 0 + bne _081CFFEE + adds r0, r5, 0 + bl sub_81D024C + b _081CFF32 +_081CFFA4: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _081CFFEE + movs r0, 0x2 + bl ShowBg + movs r0, 0x3 + bl HideBg + movs r0, 0x9 + bl sub_81C7BA4 + movs r0, 0x1 + bl sub_81C7AC0 + ldr r0, [r5, 0xC] + cmp r0, 0 + bne _081CFF32 + movs r0, 0x2 + bl sub_81C7DFC + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0 + bl sub_81C7FA0 + b _081CFF32 +_081CFFDE: + bl sub_81C7B34 + cmp r0, 0 + bne _081CFFEE + bl sub_81C8010 + cmp r0, 0 + beq _081CFFF2 +_081CFFEE: + movs r0, 0x2 + b _081CFFF4 +_081CFFF2: + movs r0, 0x4 +_081CFFF4: + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CFEB8 + + thumb_func_start sub_81CFFFC +sub_81CFFFC: @ 81CFFFC + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0xA + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x1 + beq _081D004A + cmp r4, 0x1 + bgt _081D0016 + cmp r4, 0 + beq _081D0020 + b _081D006A +_081D0016: + cmp r4, 0x2 + beq _081D0052 + cmp r4, 0x3 + beq _081D005C + b _081D006A +_081D0020: + bl sub_81C8658 + cmp r0, 0x1 + beq _081D0038 + cmp r0, 0x1 + bgt _081D0032 + cmp r0, 0 + beq _081D006A + b _081D0058 +_081D0032: + cmp r0, 0x2 + beq _081D0042 + b _081D0058 +_081D0038: + movs r0, 0x5 + bl PlaySE + movs r0, 0x7 + b _081D006C +_081D0042: + movs r0, 0x5 + bl PlaySE + b _081D0058 +_081D004A: + bl sub_81C8630 + cmp r0, 0 + bne _081D0066 +_081D0052: + adds r0, r5, 0 + bl sub_81D0288 +_081D0058: + movs r0, 0 + b _081D006C +_081D005C: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081D006A +_081D0066: + movs r0, 0x2 + b _081D006C +_081D006A: + movs r0, 0x4 +_081D006C: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CFFFC + + thumb_func_start sub_81D0074 +sub_81D0074: @ 81D0074 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0xA + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x1 + beq _081D00C2 + cmp r4, 0x1 + bgt _081D008E + cmp r4, 0 + beq _081D0098 + b _081D00E2 +_081D008E: + cmp r4, 0x2 + beq _081D00CA + cmp r4, 0x3 + beq _081D00D4 + b _081D00E2 +_081D0098: + bl sub_81C868C + cmp r0, 0x1 + beq _081D00B0 + cmp r0, 0x1 + bgt _081D00AA + cmp r0, 0 + beq _081D00E2 + b _081D00D0 +_081D00AA: + cmp r0, 0x2 + beq _081D00BA + b _081D00D0 +_081D00B0: + movs r0, 0x5 + bl PlaySE + movs r0, 0x7 + b _081D00E4 +_081D00BA: + movs r0, 0x5 + bl PlaySE + b _081D00D0 +_081D00C2: + bl sub_81C8630 + cmp r0, 0 + bne _081D00DE +_081D00CA: + adds r0, r5, 0 + bl sub_81D0288 +_081D00D0: + movs r0, 0 + b _081D00E4 +_081D00D4: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081D00E2 +_081D00DE: + movs r0, 0x2 + b _081D00E4 +_081D00E2: + movs r0, 0x4 +_081D00E4: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D0074 + + thumb_func_start sub_81D00EC +sub_81D00EC: @ 81D00EC + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0xA + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x1 + beq _081D013A + cmp r4, 0x1 + bgt _081D0106 + cmp r4, 0 + beq _081D0110 + b _081D015A +_081D0106: + cmp r4, 0x2 + beq _081D0142 + cmp r4, 0x3 + beq _081D014C + b _081D015A +_081D0110: + bl sub_81C86CC + cmp r0, 0x1 + beq _081D0128 + cmp r0, 0x1 + bgt _081D0122 + cmp r0, 0 + beq _081D015A + b _081D0148 +_081D0122: + cmp r0, 0x2 + beq _081D0132 + b _081D0148 +_081D0128: + movs r0, 0x5 + bl PlaySE + movs r0, 0x7 + b _081D015C +_081D0132: + movs r0, 0x5 + bl PlaySE + b _081D0148 +_081D013A: + bl sub_81C8630 + cmp r0, 0 + bne _081D0156 +_081D0142: + adds r0, r5, 0 + bl sub_81D0288 +_081D0148: + movs r0, 0 + b _081D015C +_081D014C: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081D015A +_081D0156: + movs r0, 0x2 + b _081D015C +_081D015A: + movs r0, 0x4 +_081D015C: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D00EC + + thumb_func_start sub_81D0164 +sub_81D0164: @ 81D0164 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0xA + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x1 + beq _081D01B2 + cmp r4, 0x1 + bgt _081D017E + cmp r4, 0 + beq _081D0188 + b _081D01D2 +_081D017E: + cmp r4, 0x2 + beq _081D01BA + cmp r4, 0x3 + beq _081D01C4 + b _081D01D2 +_081D0188: + bl sub_81C870C + cmp r0, 0x1 + beq _081D01A0 + cmp r0, 0x1 + bgt _081D019A + cmp r0, 0 + beq _081D01D2 + b _081D01C0 +_081D019A: + cmp r0, 0x2 + beq _081D01AA + b _081D01C0 +_081D01A0: + movs r0, 0x5 + bl PlaySE + movs r0, 0x7 + b _081D01D4 +_081D01AA: + movs r0, 0x5 + bl PlaySE + b _081D01C0 +_081D01B2: + bl sub_81C8630 + cmp r0, 0 + bne _081D01CE +_081D01BA: + adds r0, r5, 0 + bl sub_81D0288 +_081D01C0: + movs r0, 0 + b _081D01D4 +_081D01C4: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081D01D2 +_081D01CE: + movs r0, 0x2 + b _081D01D4 +_081D01D2: + movs r0, 0x4 +_081D01D4: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D0164 + + thumb_func_start sub_81D01DC +sub_81D01DC: @ 81D01DC + push {lr} + cmp r0, 0 + beq _081D01E8 + cmp r0, 0x1 + beq _081D01FC + b _081D0214 +_081D01E8: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_81C7AC0 + bl sub_81C78A0 + movs r0, 0 + b _081D0216 +_081D01FC: + bl sub_81C7B34 + cmp r0, 0 + bne _081D020C + bl sub_81C78C0 + cmp r0, 0 + beq _081D0210 +_081D020C: + movs r0, 0x2 + b _081D0216 +_081D0210: + bl sub_81C7FDC +_081D0214: + movs r0, 0x4 +_081D0216: + pop {r1} + bx r1 + thumb_func_end sub_81D01DC + + thumb_func_start sub_81D021C +sub_81D021C: @ 81D021C + push {lr} + cmp r0, 0 + beq _081D0228 + cmp r0, 0x1 + beq _081D0238 + b _081D0244 +_081D0228: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_81C7AC0 + movs r0, 0 + b _081D0246 +_081D0238: + bl sub_81C7B34 + cmp r0, 0 + beq _081D0244 + movs r0, 0x2 + b _081D0246 +_081D0244: + movs r0, 0x4 +_081D0246: + pop {r1} + bx r1 + thumb_func_end sub_81D021C + + thumb_func_start sub_81D024C +sub_81D024C: @ 81D024C + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_086237D4 + bl AddWindow + strh r0, [r4, 0x8] + lsls r0, 24 + lsrs r0, 24 + bl PutWindowTilemap + bl sub_81CFB38 + adds r2, r0, 0 + ldrh r0, [r4, 0x8] + movs r1, 0 + bl sub_81D02B0 + ldrb r0, [r4, 0x8] + movs r1, 0x1 + bl CopyWindowToVram + adds r0, r4, 0 + bl sub_81D0288 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D024C + + thumb_func_start sub_81D0288 +sub_81D0288: @ 81D0288 + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_81C875C + adds r4, r0, 0 + bl sub_81CFB38 + adds r2, r0, 0 + ldrh r0, [r5, 0x8] + adds r4, 0x1 + adds r1, r4, 0 + bl sub_81D02B0 + ldrb r0, [r5, 0x8] + movs r1, 0x2 + bl CopyWindowToVram + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81D0288 + + thumb_func_start sub_81D02B0 +sub_81D02B0: @ 81D02B0 + push {r4,r5,lr} + sub sp, 0x1C + adds r4, r0, 0 + adds r5, r2, 0 + add r0, sp, 0xC + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + movs r1, 0xBA + strb r1, [r0] + adds r0, 0x1 + adds r1, r5, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + movs r0, 0x1 + add r1, sp, 0xC + movs r2, 0x38 + bl GetStringCenterAlignXOffset + adds r3, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x1 + str r0, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r1, 0x1 + add r2, sp, 0xC + bl Print + add sp, 0x1C + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81D02B0 + + thumb_func_start sub_81D0304 +sub_81D0304: @ 81D0304 + push {r4,lr} + sub sp, 0x18 + bl sub_81CFB28 + str r0, [sp] + bl sub_81CFB38 + mov r1, sp + movs r4, 0 + strh r0, [r1, 0x4] + movs r0, 0x4 + strb r0, [r1, 0x8] + bl sub_81CFB64 + mov r1, sp + strh r0, [r1, 0x6] + movs r0, 0xD + strb r0, [r1, 0x9] + movs r0, 0x11 + strb r0, [r1, 0xA] + mov r0, sp + movs r2, 0x1 + strb r2, [r0, 0xB] + movs r0, 0x8 + strb r0, [r1, 0xC] + movs r0, 0x2 + strb r0, [r1, 0xD] + mov r0, sp + strb r2, [r0, 0xE] + ldr r0, =sub_81D035C + str r0, [sp, 0x10] + str r4, [sp, 0x14] + ldr r0, =gUnknown_086237B4 + movs r2, 0 + bl sub_81C81D4 + add sp, 0x18 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D0304 + + thumb_func_start sub_81D035C +sub_81D035C: @ 81D035C + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r1, 0 + adds r7, r0, 0 + ldrb r0, [r7] + cmp r0, 0xE + bne _081D03A4 + ldrb r1, [r7, 0x1] + movs r0, 0x64 + adds r4, r1, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + bl pokemon_get_gender + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r4, 0 + bl level_by_exp + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r2, =gStringVar3 + adds r0, r4, 0 + movs r1, 0x2 + bl GetMonData + b _081D03CC + .pool +_081D03A4: + ldrb r0, [r7] + ldrb r1, [r7, 0x1] + bl get_pokemon_by_box_and_pos + adds r4, r0, 0 + bl pokemon_roll_gender + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r4, 0 + bl sub_80690C0 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r2, =gStringVar3 + adds r0, r4, 0 + movs r1, 0x2 + bl pokemon_getattr_encrypted +_081D03CC: + ldr r4, =gStringVar3 + adds r0, r4, 0 + bl StringGetEnd10 + adds r0, r6, 0 + movs r1, 0x1 + adds r2, r4, 0 + movs r3, 0x3C + bl sub_81DB494 + adds r6, r0, 0 + cmp r5, 0 + beq _081D03F8 + cmp r5, 0xFE + beq _081D0400 + ldr r1, =gUnknown_086237F4 + b _081D0402 + .pool +_081D03F8: + ldr r1, =gUnknown_086237DC + b _081D0402 + .pool +_081D0400: + ldr r1, =gUnknown_086237E8 +_081D0402: + ldr r4, =gStringVar1 + adds r0, r4, 0 + bl StringCopy + movs r1, 0xBA + strb r1, [r0] + adds r0, 0x1 + movs r1, 0xF9 + strb r1, [r0] + adds r0, 0x1 + movs r1, 0x5 + strb r1, [r0] + adds r0, 0x1 + mov r1, r8 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r0, r6, 0 + movs r1, 0x1 + adds r2, r4, 0 + movs r3, 0x36 + bl sub_81DB494 + adds r6, r0, 0 + ldrh r1, [r7, 0x2] + movs r2, 0x1 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D035C + + thumb_func_start sub_81D0450 +sub_81D0450: @ 81D0450 + push {r4,lr} + movs r0, 0xD + movs r1, 0x9C + bl sub_81C761C + adds r4, r0, 0 + cmp r4, 0 + beq _081D0498 + movs r0, 0x12 + bl sub_81C763C + str r0, [r4, 0x8] + cmp r0, 0 + beq _081D0498 + adds r0, r4, 0 + bl sub_81D0814 + adds r1, r4, 0 + adds r1, 0x98 + ldr r0, =sub_81D04C4 + str r0, [r1] + ldr r1, =gKeyRepeatContinueDelay + movs r0, 0x3 + strh r0, [r1] + ldr r1, =gKeyRepeatStartDelay + movs r0, 0xA + strh r0, [r1] + movs r0, 0x1 + b _081D049A + .pool +_081D0498: + movs r0, 0 +_081D049A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81D0450 + + thumb_func_start sub_81D04A0 +sub_81D04A0: @ 81D04A0 + push {lr} + movs r0, 0xD + bl sub_81C763C + adds r1, r0, 0 + adds r1, 0x98 + ldr r1, [r1] + bl _call_via_r1 + pop {r1} + bx r1 + thumb_func_end sub_81D04A0 + + thumb_func_start sub_81D04B8 +sub_81D04B8: @ 81D04B8 + push {lr} + movs r0, 0xD + bl sub_81C7650 + pop {r0} + bx r0 + thumb_func_end sub_81D04B8 + + thumb_func_start sub_81D04C4 +sub_81D04C4: @ 81D04C4 + push {r4,lr} + adds r4, r0, 0 + ldr r2, =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081D04E4 + ldr r3, [r4, 0x8] + ldrh r0, [r3, 0x2] + cmp r0, 0 + beq _081D04E4 + subs r0, 0x1 + b _081D04FC + .pool +_081D04E4: + ldrh r1, [r2, 0x30] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081D050C + ldr r3, [r4, 0x8] + ldrh r1, [r3, 0x2] + ldrh r0, [r3] + subs r0, 0x1 + cmp r1, r0 + bge _081D050C + adds r0, r1, 0x1 +_081D04FC: + movs r1, 0 + strh r0, [r3, 0x2] + strh r1, [r4, 0xC] + adds r0, r4, 0 + bl sub_81D0814 + movs r0, 0x1 + b _081D053E +_081D050C: + ldrh r2, [r2, 0x2E] + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + beq _081D0528 + adds r1, r4, 0 + adds r1, 0x98 + ldr r0, =sub_81D0548 + str r0, [r1] + movs r0, 0x2 + b _081D053E + .pool +_081D0528: + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + bne _081D0534 + movs r0, 0 + b _081D053E +_081D0534: + adds r1, r4, 0 + adds r1, 0x98 + ldr r0, =sub_81D05D4 + str r0, [r1] + movs r0, 0x5 +_081D053E: + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D04C4 + + thumb_func_start sub_81D0548 +sub_81D0548: @ 81D0548 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gMain + ldrh r1, [r0, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081D0562 + adds r0, r4, 0 + bl sub_81D05DC + cmp r0, 0 + bne _081D05A4 +_081D0562: + ldr r0, =gMain + ldrh r1, [r0, 0x30] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081D0578 + adds r0, r4, 0 + bl sub_81D061C + cmp r0, 0 + bne _081D05A4 +_081D0578: + ldr r0, =gMain + ldrh r1, [r0, 0x30] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _081D058E + adds r0, r4, 0 + bl sub_81D0664 + cmp r0, 0 + bne _081D05A4 +_081D058E: + ldr r0, =gMain + ldrh r1, [r0, 0x30] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _081D05AC + adds r0, r4, 0 + bl sub_81D0688 + cmp r0, 0 + beq _081D05AC +_081D05A4: + movs r0, 0x3 + b _081D05CA + .pool +_081D05AC: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _081D05C0 + movs r0, 0 + b _081D05CA + .pool +_081D05C0: + adds r1, r4, 0 + adds r1, 0x98 + ldr r0, =sub_81D04C4 + str r0, [r1] + movs r0, 0x4 +_081D05CA: + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D0548 + + thumb_func_start sub_81D05D4 +sub_81D05D4: @ 81D05D4 + ldr r0, =0x000186ae + bx lr + .pool + thumb_func_end sub_81D05D4 + + thumb_func_start sub_81D05DC +sub_81D05DC: @ 81D05DC + push {r4,lr} + adds r1, r0, 0 + ldrh r0, [r1, 0xC] + adds r2, r0, 0 + cmp r2, 0x18 + bhi _081D05F0 + cmp r2, 0x8 + bls _081D0612 + subs r0, 0x9 + b _081D060C +_081D05F0: + ldrh r3, [r1, 0x10] + adds r2, r3, 0 + cmp r2, 0 + beq _081D0612 + ldrh r0, [r1, 0xC] + subs r0, 0x1B + ldrh r4, [r1, 0xE] + adds r0, r4 + strh r0, [r1, 0xC] + lsls r0, 16 + lsrs r0, 16 + cmp r0, r2 + bcc _081D060E + subs r0, r3, 0x1 +_081D060C: + strh r0, [r1, 0xC] +_081D060E: + movs r0, 0x1 + b _081D0614 +_081D0612: + movs r0, 0 +_081D0614: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81D05DC + + thumb_func_start sub_81D061C +sub_81D061C: @ 81D061C + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0xC] + adds r1, r0, 0 + cmp r1, 0x18 + bhi _081D065C + ldrh r3, [r2, 0xE] + cmp r1, r3 + bcs _081D0640 + adds r0, 0x9 + strh r0, [r2, 0xC] + ldrh r1, [r2, 0x10] + lsls r0, 16 + lsrs r0, 16 + cmp r0, r1 + bcc _081D0658 + subs r0, r1, 0x1 + b _081D0656 +_081D0640: + ldrh r0, [r2, 0x12] + cmp r0, 0 + beq _081D065C + ldrh r1, [r2, 0xC] + ldrh r0, [r2, 0xE] + subs r0, r1, r0 + ldrh r1, [r2, 0x12] + cmp r0, r1 + blt _081D0654 + subs r0, r1, 0x1 +_081D0654: + adds r0, 0x1B +_081D0656: + strh r0, [r2, 0xC] +_081D0658: + movs r0, 0x1 + b _081D065E +_081D065C: + movs r0, 0 +_081D065E: + pop {r1} + bx r1 + thumb_func_end sub_81D061C + + thumb_func_start sub_81D0664 +sub_81D0664: @ 81D0664 + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r4, [r5, 0xC] + adds r0, r4, 0 + movs r1, 0x9 + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + bne _081D067C + movs r0, 0 + b _081D0682 +_081D067C: + subs r0, r4, 0x1 + strh r0, [r5, 0xC] + movs r0, 0x1 +_081D0682: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D0664 + + thumb_func_start sub_81D0688 +sub_81D0688: @ 81D0688 + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r4, [r5, 0xC] + adds r0, r4, 0 + movs r1, 0x9 + bl __umodsi3 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x7 + bgt _081D06BC + cmp r4, 0x1A + bhi _081D06AC + ldrh r0, [r5, 0x10] + subs r0, 0x1 + cmp r4, r0 + bge _081D06BC + b _081D06B4 +_081D06AC: + ldrh r0, [r5, 0x12] + subs r0, 0x1 + cmp r1, r0 + bge _081D06BC +_081D06B4: + adds r0, r4, 0x1 + strh r0, [r5, 0xC] + movs r0, 0x1 + b _081D06BE +_081D06BC: + movs r0, 0 +_081D06BE: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D0688 + + thumb_func_start sub_81D06C4 +sub_81D06C4: @ 81D06C4 + push {lr} + movs r0, 0xD + bl sub_81C763C + ldr r0, [r0, 0x8] + ldrh r0, [r0, 0x2] + pop {r1} + bx r1 + thumb_func_end sub_81D06C4 + + thumb_func_start sub_81D06D4 +sub_81D06D4: @ 81D06D4 + push {lr} + movs r0, 0xD + bl sub_81C763C + ldr r0, [r0, 0x8] + ldrh r0, [r0] + pop {r1} + bx r1 + thumb_func_end sub_81D06D4 + + thumb_func_start sub_81D06E4 +sub_81D06E4: @ 81D06E4 + push {r4-r7,lr} + adds r5, r0, 0 + adds r7, r1, 0 + adds r6, r2, 0 + movs r0, 0xD + bl sub_81C763C + ldr r1, [r0, 0x8] + ldrh r0, [r1, 0x2] + lsls r0, 2 + adds r0, 0x4 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0xE + bne _081D0730 + ldrb r1, [r1, 0x1] + movs r0, 0x64 + adds r4, r1, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x2 + adds r2, r5, 0 + bl GetMonData + adds r0, r4, 0 + bl level_by_exp + strb r0, [r7] + adds r0, r4, 0 + bl pokemon_get_gender + strb r0, [r6] + b _081D0752 + .pool +_081D0730: + ldrb r0, [r1] + ldrb r1, [r1, 0x1] + bl get_pokemon_by_box_and_pos + adds r4, r0, 0 + bl pokemon_roll_gender + strb r0, [r6] + adds r0, r4, 0 + bl sub_80690C0 + strb r0, [r7] + adds r0, r4, 0 + movs r1, 0x2 + adds r2, r5, 0 + bl pokemon_getattr_encrypted +_081D0752: + adds r0, r5, 0 + bl StringGetEnd10 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81D06E4 + + thumb_func_start sub_81D0760 +sub_81D0760: @ 81D0760 + push {r4-r7,lr} + adds r5, r0, 0 + adds r6, r1, 0 + adds r7, r2, 0 + movs r0, 0xD + bl sub_81C763C + ldr r1, [r0, 0x8] + ldrh r0, [r1, 0x2] + lsls r0, 2 + adds r0, 0x4 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0xE + bne _081D07AC + ldrb r1, [r1, 0x1] + movs r0, 0x64 + adds r4, r1, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + strh r0, [r5] + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + str r0, [r6] + adds r0, r4, 0 + movs r1, 0x1 + bl GetMonData + b _081D07D0 + .pool +_081D07AC: + ldrb r0, [r1] + ldrb r1, [r1, 0x1] + bl get_pokemon_by_box_and_pos + adds r4, r0, 0 + movs r1, 0xB + bl pokemon_getattr_encrypted + strh r0, [r5] + adds r0, r4, 0 + movs r1, 0 + bl pokemon_getattr_encrypted + str r0, [r6] + adds r0, r4, 0 + movs r1, 0x1 + bl pokemon_getattr_encrypted +_081D07D0: + str r0, [r7] + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81D0760 + + thumb_func_start sub_81D07D8 +sub_81D07D8: @ 81D07D8 + push {lr} + movs r0, 0xD + bl sub_81C763C + ldr r1, [r0, 0x8] + ldrh r0, [r1, 0x2] + lsls r0, 2 + adds r0, 0x4 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0xE + beq _081D07FA + ldrb r1, [r1, 0x1] + movs r2, 0x52 + bl get_pokemon_data_from_any_box + b _081D080A +_081D07FA: + ldrb r1, [r1, 0x1] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x52 + bl GetMonData +_081D080A: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D07D8 + + thumb_func_start sub_81D0814 +sub_81D0814: @ 81D0814 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r5, r0, 0 + ldr r0, [r5, 0x8] + ldrh r1, [r0, 0x2] + lsls r1, 2 + adds r1, 0x4 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0xE + bne _081D0848 + ldrb r1, [r1, 0x1] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x53 + bl GetMonData + b _081D0852 + .pool +_081D0848: + ldrb r0, [r1] + ldrb r1, [r1, 0x1] + movs r2, 0x53 + bl get_pokemon_data_from_any_box +_081D0852: + mov r12, r0 + movs r0, 0 + strh r0, [r5, 0x10] + strh r0, [r5, 0x12] + movs r6, 0 + ldr r0, =gUnknown_086237F8 + mov r9, r0 + mov r10, r9 +_081D0862: + lsls r2, r6, 2 + mov r3, r9 + adds r1, r2, r3 + movs r0, 0x1 + ldrb r3, [r1] + lsls r0, r3 + subs r4, r0, 0x1 + mov r0, r12 + ands r4, r0 + ldrb r0, [r1, 0x3] + adds r7, r2, 0 + cmp r0, 0 + bne _081D08AC + movs r3, 0 + adds r6, 0x1 + mov r8, r6 + cmp r3, r4 + bge _081D08D6 + adds r6, r5, 0 + adds r6, 0x14 + mov r1, r10 + adds r0, r7, r1 + ldrb r2, [r0, 0x2] +_081D0890: + ldrh r0, [r5, 0x10] + adds r1, r0, 0x1 + strh r1, [r5, 0x10] + lsls r0, 16 + lsrs r0, 14 + adds r0, r6, r0 + adds r1, r2, r3 + str r1, [r0] + adds r3, 0x1 + cmp r3, r4 + blt _081D0890 + b _081D08D6 + .pool +_081D08AC: + movs r3, 0 + adds r6, 0x1 + mov r8, r6 + cmp r3, r4 + bge _081D08D6 + adds r6, r5, 0 + adds r6, 0x78 + mov r1, r10 + adds r0, r7, r1 + ldrb r2, [r0, 0x2] +_081D08C0: + ldrh r0, [r5, 0x12] + adds r1, r0, 0x1 + strh r1, [r5, 0x12] + lsls r0, 16 + lsrs r0, 14 + adds r0, r6, r0 + adds r1, r2, r3 + str r1, [r0] + adds r3, 0x1 + cmp r3, r4 + blt _081D08C0 +_081D08D6: + mov r3, r9 + adds r0, r7, r3 + mov r1, r12 + ldrb r0, [r0] + lsrs r1, r0 + mov r12, r1 + mov r6, r8 + cmp r6, 0x10 + bls _081D0862 + ldrh r0, [r5, 0x10] + cmp r0, 0 + beq _081D0900 + subs r0, 0x1 + movs r1, 0x9 + bl __divsi3 + lsls r1, r0, 3 + adds r1, r0 + movs r0, 0 + strh r1, [r5, 0xE] + b _081D0904 +_081D0900: + strh r0, [r5, 0xE] + movs r0, 0x1B +_081D0904: + strh r0, [r5, 0xC] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81D0814 + + thumb_func_start sub_81D0914 +sub_81D0914: @ 81D0914 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0xD + bl sub_81C763C + ldrh r1, [r0, 0x10] + str r1, [r4] + adds r0, 0x14 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81D0914 + + thumb_func_start sub_81D092C +sub_81D092C: @ 81D092C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0xD + bl sub_81C763C + ldrh r1, [r0, 0x12] + str r1, [r4] + adds r0, 0x78 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81D092C + + thumb_func_start sub_81D0944 +sub_81D0944: @ 81D0944 + push {lr} + movs r0, 0xD + bl sub_81C763C + ldrh r0, [r0, 0xC] + pop {r1} + bx r1 + thumb_func_end sub_81D0944 + + thumb_func_start sub_81D0954 +sub_81D0954: @ 81D0954 + push {lr} + movs r0, 0xD + bl sub_81C763C + adds r1, r0, 0 + ldrh r0, [r1, 0xC] + cmp r0, 0x18 + ble _081D096C + subs r0, 0x1B + lsls r0, 2 + adds r1, 0x78 + b _081D0970 +_081D096C: + lsls r0, 2 + adds r1, 0x14 +_081D0970: + adds r1, r0 + ldr r0, [r1] + pop {r1} + bx r1 + thumb_func_end sub_81D0954 + + thumb_func_start sub_81D0978 +sub_81D0978: @ 81D0978 + push {r4,lr} + ldr r1, =0x0000101c + movs r0, 0xE + bl sub_81C761C + adds r4, r0, 0 + cmp r4, 0 + beq _081D09A8 + ldr r0, =sub_81D0A6C + movs r1, 0x1 + bl sub_81C7078 + str r0, [r4, 0x4] + ldr r0, =sub_81D0A58 + str r0, [r4] + movs r0, 0x1 + b _081D09AA + .pool +_081D09A8: + movs r0, 0 +_081D09AA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81D0978 + + thumb_func_start sub_81D09B0 +sub_81D09B0: @ 81D09B0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0xE + bl sub_81C763C + adds r5, r0, 0 + ldr r0, =gUnknown_08624BA0 + lsls r4, 2 + adds r4, r0 + ldr r0, [r4] + movs r1, 0x1 + bl sub_81C7078 + str r0, [r5, 0x4] + ldr r0, =sub_81D0A58 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D09B0 + + thumb_func_start sub_81D09E0 +sub_81D09E0: @ 81D09E0 + push {lr} + movs r0, 0xE + bl sub_81C763C + ldr r0, [r0] + bl _call_via_r0 + pop {r1} + bx r1 + thumb_func_end sub_81D09E0 + + thumb_func_start sub_81D09F4 +sub_81D09F4: @ 81D09F4 + push {r4,lr} + movs r0, 0xE + bl sub_81C763C + adds r4, r0, 0 + ldrb r0, [r4, 0xA] + bl RemoveWindow + ldrb r0, [r4, 0x8] + bl RemoveWindow + ldrb r0, [r4, 0xC] + bl RemoveWindow + ldrb r0, [r4, 0xE] + bl RemoveWindow + adds r0, r4, 0 + bl sub_81D1178 + movs r0, 0x9 + bl FreeSpriteTilesByTag + movs r0, 0xF + bl FreeSpritePaletteByTag + movs r0, 0x10 + bl FreeSpritePaletteByTag + movs r0, 0x11 + bl FreeSpritePaletteByTag + movs r0, 0x12 + bl FreeSpritePaletteByTag + movs r0, 0x13 + bl FreeSpritePaletteByTag + ldr r0, [r4, 0x14] + bl FreeSpriteOamMatrix + ldr r0, [r4, 0x14] + bl DestroySprite + movs r0, 0xE + bl sub_81C7650 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81D09F4 + + thumb_func_start sub_81D0A58 +sub_81D0A58: @ 81D0A58 + push {lr} + movs r0, 0xE + bl sub_81C763C + ldr r0, [r0, 0x4] + bl sub_81C70D8 + pop {r1} + bx r1 + thumb_func_end sub_81D0A58 + + thumb_func_start sub_81D0A6C +sub_81D0A6C: @ 81D0A6C + push {r4,r5,lr} + sub sp, 0x8 + adds r4, r0, 0 + movs r0, 0xE + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x9 + bls _081D0A80 + b _081D0C48 +_081D0A80: + lsls r0, r4, 2 + ldr r1, =_081D0A90 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081D0A90: + .4byte _081D0AB8 + .4byte _081D0B04 + .4byte _081D0B74 + .4byte _081D0B88 + .4byte _081D0B9C + .4byte _081D0BB0 + .4byte _081D0BC4 + .4byte _081D0BD8 + .4byte _081D0BE8 + .4byte _081D0C3C +_081D0AB8: + ldr r0, =gUnknown_08624B98 + movs r1, 0x2 + bl sub_81C7B54 + ldr r1, =gUnknown_08DDE030 + movs r0, 0 + str r0, [sp] + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + adds r1, r5, 0 + adds r1, 0x1C + movs r0, 0x2 + bl SetBgTilemapBuffer + ldr r1, =gUnknown_08DDE12C + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer + ldr r0, =gUnknown_08DDE010 + movs r1, 0x10 + movs r2, 0x20 + bl sub_81C7944 + b _081D0BBA + .pool +_081D0B04: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _081D0B12 + b _081D0C44 +_081D0B12: + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_8199DF0 + ldr r1, =gUnknown_086240B8 + str r4, [sp] + movs r0, 0x1 + movs r2, 0 + movs r3, 0x1 + bl decompress_and_copy_tile_data_to_vram + ldr r0, =0x0000081c + adds r1, r5, r0 + movs r0, 0x1 + bl SetBgTilemapBuffer + movs r0, 0x20 + str r0, [sp] + movs r0, 0x14 + str r0, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect_Palette0 + ldr r0, =gUnknown_08623FF8 + movs r1, 0x20 + movs r2, 0xA0 + bl sub_81C7944 + ldr r0, =gUnknown_08624098 + movs r1, 0xA0 + movs r2, 0x20 + bl sub_81C7944 + movs r0, 0x1 + b _081D0BBC + .pool +_081D0B74: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _081D0C44 + adds r0, r5, 0 + bl sub_81D0E60 + movs r0, 0 + b _081D0C4A +_081D0B88: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _081D0C44 + adds r0, r5, 0 + bl sub_81D0FCC + movs r0, 0 + b _081D0C4A +_081D0B9C: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _081D0C44 + adds r0, r5, 0 + bl sub_81D10A4 + movs r0, 0 + b _081D0C4A +_081D0BB0: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _081D0C44 +_081D0BBA: + movs r0, 0x2 +_081D0BBC: + bl CopyBgTilemapBufferToVram + movs r0, 0 + b _081D0C4A +_081D0BC4: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _081D0C44 + adds r0, r5, 0 + bl sub_81D1148 + movs r0, 0x1 + b _081D0C4A +_081D0BD8: + adds r0, r5, 0 + bl sub_81D12D8 + movs r0, 0xA + bl sub_81C7BA4 + movs r0, 0 + b _081D0C4A +_081D0BE8: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _081D0C44 + adds r0, r5, 0 + bl sub_81D13FC + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + movs r0, 0x3 + bl HideBg + movs r0, 0x1 + bl sub_81C7AC0 + movs r0, 0 + b _081D0C4A +_081D0C3C: + bl sub_81C7B34 + cmp r0, 0 + beq _081D0C48 +_081D0C44: + movs r0, 0x2 + b _081D0C4A +_081D0C48: + movs r0, 0x4 +_081D0C4A: + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D0A6C + + thumb_func_start sub_81D0C54 +sub_81D0C54: @ 81D0C54 + push {lr} + cmp r0, 0 + beq _081D0C60 + cmp r0, 0x1 + beq _081D0C70 + b _081D0C7C +_081D0C60: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_81C7AC0 + movs r0, 0 + b _081D0C7E +_081D0C70: + bl sub_81C7B34 + cmp r0, 0 + beq _081D0C7C + movs r0, 0x2 + b _081D0C7E +_081D0C7C: + movs r0, 0x4 +_081D0C7E: + pop {r1} + bx r1 + thumb_func_end sub_81D0C54 + + thumb_func_start sub_81D0C84 +sub_81D0C84: @ 81D0C84 + push {r4,r5,lr} + adds r5, r0, 0 + movs r0, 0xE + bl sub_81C763C + adds r4, r0, 0 + cmp r5, 0x6 + bhi _081D0D24 + lsls r0, r5, 2 + ldr r1, =_081D0CA4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081D0CA4: + .4byte _081D0CC0 + .4byte _081D0CD0 + .4byte _081D0CE4 + .4byte _081D0CEE + .4byte _081D0CF8 + .4byte _081D0D02 + .4byte _081D0D16 +_081D0CC0: + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_81D11D8 + movs r0, 0 + b _081D0D26 +_081D0CD0: + adds r0, r4, 0 + bl sub_81D1234 + cmp r0, 0 + bne _081D0D20 + adds r0, r4, 0 + bl sub_81D0FF0 + movs r0, 0x1 + b _081D0D26 +_081D0CE4: + adds r0, r4, 0 + bl sub_81D12D8 + movs r0, 0x1 + b _081D0D26 +_081D0CEE: + adds r0, r4, 0 + bl sub_81D10D0 + movs r0, 0x1 + b _081D0D26 +_081D0CF8: + adds r0, r4, 0 + bl sub_81D0E84 + movs r0, 0x1 + b _081D0D26 +_081D0D02: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _081D0D20 + adds r0, r4, 0 + bl sub_81D11FC + movs r0, 0 + b _081D0D26 +_081D0D16: + adds r0, r4, 0 + bl sub_81D1234 + cmp r0, 0 + beq _081D0D24 +_081D0D20: + movs r0, 0x2 + b _081D0D26 +_081D0D24: + movs r0, 0x4 +_081D0D26: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D0C84 + + thumb_func_start sub_81D0D2C +sub_81D0D2C: @ 81D0D2C + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0xE + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x1 + beq _081D0D5C + cmp r4, 0x1 + bgt _081D0D46 + cmp r4, 0 + beq _081D0D4C + b _081D0D84 +_081D0D46: + cmp r4, 0x2 + beq _081D0D76 + b _081D0D84 +_081D0D4C: + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + bl sub_81D1448 + movs r0, 0 + b _081D0D86 +_081D0D5C: + adds r0, r5, 0 + bl sub_81D1524 + cmp r0, 0 + bne _081D0D80 + adds r0, r5, 0 + bl sub_81D0EFC + movs r0, 0xB + bl sub_81C7BA4 + movs r0, 0 + b _081D0D86 +_081D0D76: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081D0D84 +_081D0D80: + movs r0, 0x2 + b _081D0D86 +_081D0D84: + movs r0, 0x4 +_081D0D86: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D0D2C + + thumb_func_start sub_81D0D8C +sub_81D0D8C: @ 81D0D8C + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0xE + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x1 + beq _081D0DC0 + cmp r4, 0x1 + bgt _081D0DA6 + cmp r4, 0 + beq _081D0DB0 + b _081D0DF6 +_081D0DA6: + cmp r4, 0x2 + beq _081D0DD4 + cmp r4, 0x3 + beq _081D0DE8 + b _081D0DF6 +_081D0DB0: + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + bl sub_81D1500 + movs r0, 0 + b _081D0DF8 +_081D0DC0: + adds r0, r5, 0 + bl sub_81D1524 + cmp r0, 0 + bne _081D0DF2 + adds r0, r5, 0 + bl sub_81D1448 + movs r0, 0 + b _081D0DF8 +_081D0DD4: + adds r0, r5, 0 + bl sub_81D1524 + cmp r0, 0 + bne _081D0DF2 + adds r0, r5, 0 + bl sub_81D0EFC + movs r0, 0 + b _081D0DF8 +_081D0DE8: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081D0DF6 +_081D0DF2: + movs r0, 0x2 + b _081D0DF8 +_081D0DF6: + movs r0, 0x4 +_081D0DF8: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D0D8C + + thumb_func_start sub_81D0E00 +sub_81D0E00: @ 81D0E00 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0xE + bl sub_81C763C + adds r5, r0, 0 + cmp r4, 0x1 + beq _081D0E30 + cmp r4, 0x1 + bgt _081D0E1A + cmp r4, 0 + beq _081D0E20 + b _081D0E58 +_081D0E1A: + cmp r4, 0x2 + beq _081D0E4A + b _081D0E58 +_081D0E20: + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + bl sub_81D1500 + movs r0, 0 + b _081D0E5A +_081D0E30: + adds r0, r5, 0 + bl sub_81D1524 + cmp r0, 0 + bne _081D0E54 + adds r0, r5, 0 + bl sub_81D0E84 + movs r0, 0xA + bl sub_81C7BA4 + movs r0, 0 + b _081D0E5A +_081D0E4A: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081D0E58 +_081D0E54: + movs r0, 0x2 + b _081D0E5A +_081D0E58: + movs r0, 0x4 +_081D0E5A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D0E00 + + thumb_func_start sub_81D0E60 +sub_81D0E60: @ 81D0E60 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_08624BB8 + bl AddWindow + strh r0, [r4, 0xA] + lsls r0, 24 + lsrs r0, 24 + bl PutWindowTilemap + adds r0, r4, 0 + bl sub_81D0E84 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D0E60 + + thumb_func_start sub_81D0E84 +sub_81D0E84: @ 81D0E84 + push {r4,r5,lr} + sub sp, 0x10 + adds r5, r0, 0 + ldr r1, =gUnknown_08624BC0 + add r0, sp, 0xC + movs r2, 0x3 + bl memcpy + ldr r4, =gStringVar1 + bl sub_81D07D8 + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + bl sub_81AFBF0 + movs r0, 0 + adds r1, r4, 0 + bl sub_81AFC0C + ldr r4, =gStringVar4 + ldr r1, =gUnknown_085EC030 + adds r0, r4, 0 + bl sub_81AFC28 + ldrb r0, [r5, 0xA] + movs r1, 0x44 + bl FillWindowPixelBuffer + ldrb r0, [r5, 0xA] + add r1, sp, 0xC + str r1, [sp] + movs r1, 0x1 + negs r1, r1 + str r1, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x1 + movs r2, 0 + movs r3, 0x1 + bl box_print + ldrb r0, [r5, 0xA] + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D0E84 + + thumb_func_start sub_81D0EFC +sub_81D0EFC: @ 81D0EFC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + adds r7, r0, 0 + bl sub_81D0954 + adds r5, r0, 0 + ldr r1, =gUnknown_08624BC0 + add r0, sp, 0xC + movs r2, 0x3 + bl memcpy + ldrb r0, [r7, 0xA] + movs r1, 0x44 + bl FillWindowPixelBuffer + cmp r5, 0x18 + bhi _081D0F60 + lsls r1, r5, 3 + ldr r0, =gRibbonDescriptionPointers + adds r6, r1, r0 + movs r5, 0x80 + lsls r5, 17 + movs r4, 0x1 +_081D0F2E: + ldrb r0, [r7, 0xA] + lsrs r3, r5, 24 + add r1, sp, 0xC + str r1, [sp] + movs r1, 0x1 + negs r1, r1 + str r1, [sp, 0x4] + ldm r6!, {r1} + str r1, [sp, 0x8] + movs r1, 0x1 + movs r2, 0 + bl box_print + movs r0, 0x80 + lsls r0, 21 + adds r5, r0 + subs r4, 0x1 + cmp r4, 0 + bge _081D0F2E + b _081D0FAA + .pool +_081D0F60: + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + adds r0, r5 + ldr r1, =0x0000318f + adds r0, r1 + ldrb r5, [r0] + cmp r5, 0 + beq _081D0FB2 + subs r5, 0x1 + movs r4, 0 + ldr r0, =gGiftRibbonDescriptionPointers + mov r8, r0 + movs r6, 0x80 + lsls r6, 17 +_081D0F7C: + ldrb r0, [r7, 0xA] + lsrs r3, r6, 24 + add r1, sp, 0xC + str r1, [sp] + movs r1, 0x1 + negs r1, r1 + str r1, [sp, 0x4] + lsls r1, r4, 2 + lsls r2, r5, 3 + adds r1, r2 + add r1, r8 + ldr r1, [r1] + str r1, [sp, 0x8] + movs r1, 0x1 + movs r2, 0 + bl box_print + movs r0, 0x80 + lsls r0, 21 + adds r6, r0 + adds r4, 0x1 + cmp r4, 0x1 + ble _081D0F7C +_081D0FAA: + ldrb r0, [r7, 0xA] + movs r1, 0x2 + bl CopyWindowToVram +_081D0FB2: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D0EFC + + thumb_func_start sub_81D0FCC +sub_81D0FCC: @ 81D0FCC + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_08624BC4 + bl AddWindow + strh r0, [r4, 0x8] + lsls r0, 24 + lsrs r0, 24 + bl PutWindowTilemap + adds r0, r4, 0 + bl sub_81D0FF0 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D0FCC + + thumb_func_start sub_81D0FF0 +sub_81D0FF0: @ 81D0FF0 + push {r4-r7,lr} + sub sp, 0x10 + ldrh r7, [r0, 0x8] + ldrb r5, [r0, 0x8] + adds r0, r5, 0 + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r4, =gStringVar3 + mov r6, sp + adds r6, 0xD + adds r0, r4, 0 + add r1, sp, 0xC + adds r2, r6, 0 + bl sub_81D06E4 + movs r0, 0x1 + str r0, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + adds r0, r5, 0 + movs r1, 0x1 + adds r2, r4, 0 + movs r3, 0 + bl Print + ldrb r0, [r6] + cmp r0, 0 + beq _081D1040 + cmp r0, 0xFE + beq _081D1048 + ldr r1, =gUnknown_08624BE4 + b _081D104A + .pool +_081D1040: + ldr r1, =gUnknown_08624BCC + b _081D104A + .pool +_081D1048: + ldr r1, =gUnknown_08624BD8 +_081D104A: + ldr r5, =gStringVar1 + adds r0, r5, 0 + bl StringCopy + movs r1, 0xBA + strb r1, [r0] + adds r0, 0x1 + movs r1, 0xF9 + strb r1, [r0] + adds r0, 0x1 + movs r1, 0x5 + strb r1, [r0] + adds r0, 0x1 + add r1, sp, 0xC + ldrb r1, [r1] + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + lsls r4, r7, 24 + lsrs r4, 24 + movs r0, 0x1 + str r0, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r1, 0x1 + adds r2, r5, 0 + movs r3, 0x3C + bl Print + adds r0, r4, 0 + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D0FF0 + + thumb_func_start sub_81D10A4 +sub_81D10A4: @ 81D10A4 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_08624BE8 + bl AddWindow + strh r0, [r4, 0xC] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4, 0xC] + bl PutWindowTilemap + adds r0, r4, 0 + bl sub_81D10D0 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D10A4 + + thumb_func_start sub_81D10D0 +sub_81D10D0: @ 81D10D0 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0xC + mov r8, r0 + bl sub_81D06C4 + adds r4, r0, 0 + adds r4, 0x1 + bl sub_81D06D4 + adds r6, r0, 0 + ldr r5, =gStringVar1 + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + movs r1, 0xBA + strb r1, [r0] + adds r0, 0x1 + adds r1, r6, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + movs r0, 0x1 + adds r1, r5, 0 + movs r2, 0x38 + bl GetStringCenterAlignXOffset + adds r3, r0, 0 + mov r1, r8 + ldrb r0, [r1, 0xC] + lsls r3, 24 + lsrs r3, 24 + movs r1, 0x1 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x1 + adds r2, r5, 0 + bl Print + mov r1, r8 + ldrb r0, [r1, 0xC] + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D10D0 + + thumb_func_start sub_81D1148 +sub_81D1148: @ 81D1148 + push {r4,lr} + sub sp, 0xC + adds r4, r0, 0 + add r1, sp, 0x4 + add r2, sp, 0x8 + mov r0, sp + bl sub_81D0760 + bl dp13_810BB8C + movs r0, 0x28 + movs r1, 0x68 + bl sub_81D1184 + strh r0, [r4, 0x10] + movs r0, 0xF + movs r1, 0 + bl sub_81C7990 + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81D1148 + + thumb_func_start sub_81D1178 +sub_81D1178: @ 81D1178 + push {lr} + ldrh r0, [r0, 0x10] + bl sub_818D820 + pop {r0} + bx r0 + thumb_func_end sub_81D1178 + + thumb_func_start sub_81D1184 +sub_81D1184: @ 81D1184 + push {lr} + sub sp, 0x1C + add r1, sp, 0x14 + add r2, sp, 0x18 + add r0, sp, 0x10 + bl sub_81D0760 + add r0, sp, 0x10 + ldrh r0, [r0] + ldr r1, [sp, 0x18] + ldr r2, [sp, 0x14] + movs r3, 0x28 + str r3, [sp] + movs r3, 0x68 + str r3, [sp, 0x4] + movs r3, 0xF + str r3, [sp, 0x8] + ldr r3, =0x0000ffff + str r3, [sp, 0xC] + movs r3, 0x1 + bl sub_818D7D8 + lsls r0, 16 + lsrs r0, 16 + ldr r1, =gSprites + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + ldrb r3, [r2, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r3 + strb r1, [r2, 0x5] + add sp, 0x1C + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D1184 + + thumb_func_start sub_81D11D8 +sub_81D11D8: @ 81D11D8 + push {lr} + ldrh r1, [r0, 0x10] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + movs r2, 0x20 + negs r2, r2 + movs r1, 0x28 + movs r3, 0x6 + bl sub_81D1258 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D11D8 + + thumb_func_start sub_81D11FC +sub_81D11FC: @ 81D11FC + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x10] + bl sub_818D820 + movs r5, 0x20 + negs r5, r5 + adds r0, r5, 0 + movs r1, 0x68 + bl sub_81D1184 + strh r0, [r4, 0x10] + ldrh r1, [r4, 0x10] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + adds r1, r5, 0 + movs r2, 0x28 + movs r3, 0x6 + bl sub_81D1258 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D11FC + + thumb_func_start sub_81D1234 +sub_81D1234: @ 81D1234 + ldr r2, =gSprites + ldrh r1, [r0, 0x10] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + eors r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + bx lr + .pool + thumb_func_end sub_81D1234 + + thumb_func_start sub_81D1258 +sub_81D1258: @ 81D1258 + push {r4-r6,lr} + adds r4, r0, 0 + adds r6, r2, 0 + adds r5, r3, 0 + subs r0, r6, r1 + strh r1, [r4, 0x20] + lsls r1, 4 + strh r1, [r4, 0x2E] + lsls r0, 4 + adds r1, r5, 0 + bl __udivsi3 + strh r0, [r4, 0x30] + strh r5, [r4, 0x32] + strh r6, [r4, 0x34] + ldr r0, =sub_81D1284 + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D1258 + + thumb_func_start sub_81D1284 +sub_81D1284: @ 81D1284 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x32] + movs r3, 0x32 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _081D12C8 + subs r0, r1, 0x1 + strh r0, [r2, 0x32] + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x2E] + adds r0, r1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 20 + strh r0, [r2, 0x20] + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bgt _081D12BA + adds r0, r2, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _081D12D0 +_081D12BA: + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + b _081D12D0 +_081D12C8: + ldrh r0, [r2, 0x34] + strh r0, [r2, 0x20] + ldr r0, =SpriteCallbackDummy + str r0, [r2, 0x1C] +_081D12D0: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D1284 + + thumb_func_start sub_81D12D8 +sub_81D12D8: @ 81D12D8 + push {r4-r6,lr} + bl sub_81D1350 + ldr r5, =gUnknown_030012C0 + adds r0, r5, 0 + bl sub_81D0914 + adds r6, r0, 0 + ldr r2, =gUnknown_030012C4 + movs r1, 0 + str r1, [r2] + ldr r0, [r5] + cmp r1, r0 + bcs _081D130A + adds r4, r2, 0 +_081D12F6: + ldr r0, [r4] + ldm r6!, {r1} + bl sub_81D1370 + ldr r1, [r4] + adds r1, 0x1 + str r1, [r4] + ldr r0, [r5] + cmp r1, r0 + bcc _081D12F6 +_081D130A: + ldr r4, =gUnknown_030012C0 + adds r0, r4, 0 + bl sub_81D092C + adds r6, r0, 0 + ldr r2, =gUnknown_030012C4 + movs r1, 0 + str r1, [r2] + ldr r0, [r4] + cmp r1, r0 + bcs _081D133A + adds r4, r2, 0 +_081D1322: + ldr r0, [r4] + adds r0, 0x1B + ldm r6!, {r1} + bl sub_81D1370 + ldr r1, [r4] + adds r1, 0x1 + str r1, [r4] + ldr r0, =gUnknown_030012C0 + ldr r0, [r0] + cmp r1, r0 + bcc _081D1322 +_081D133A: + movs r0, 0x1 + bl CopyBgTilemapBufferToVram + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D12D8 + + thumb_func_start sub_81D1350 +sub_81D1350: @ 81D1350 + push {lr} + sub sp, 0x8 + movs r0, 0x20 + str r0, [sp] + movs r0, 0x14 + str r0, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect_Palette0 + add sp, 0x8 + pop {r0} + bx r0 + thumb_func_end sub_81D1350 + + thumb_func_start sub_81D1370 +sub_81D1370: @ 81D1370 + push {r4-r6,lr} + sub sp, 0x10 + adds r4, r0, 0 + adds r6, r1, 0 + movs r1, 0x9 + bl __umodsi3 + adds r5, r0, 0 + lsls r5, 1 + adds r5, 0xB + adds r0, r4, 0 + movs r1, 0x9 + bl __udivsi3 + adds r4, r0, 0 + lsls r4, 1 + adds r4, 0x4 + add r0, sp, 0x8 + adds r1, r6, 0 + bl sub_81D13BC + lsls r5, 24 + lsrs r5, 24 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x2 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x1 + add r1, sp, 0x8 + adds r2, r5, 0 + adds r3, r4, 0 + bl CopyToBgTilemapBufferRect + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81D1370 + + thumb_func_start sub_81D13BC +sub_81D13BC: @ 81D13BC + push {r4,r5,lr} + ldr r2, =gUnknown_08624BF8 + lsls r1, 2 + adds r1, r2 + ldrh r3, [r1, 0x2] + adds r3, 0x2 + lsls r3, 16 + ldrh r1, [r1] + lsls r1, 1 + adds r1, 0x1 + lsls r1, 16 + lsrs r1, 16 + lsrs r3, 4 + adds r2, r1, 0 + orrs r2, r3 + strh r2, [r0] + movs r5, 0x80 + lsls r5, 3 + adds r4, r5, 0 + orrs r2, r4 + strh r2, [r0, 0x2] + adds r1, 0x1 + orrs r1, r3 + strh r1, [r0, 0x4] + orrs r1, r4 + strh r1, [r0, 0x6] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D13BC + + thumb_func_start sub_81D13FC +sub_81D13FC: @ 81D13FC + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_08624C78 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_08624C80 + bl sub_81C795C + ldr r0, =gUnknown_08624D04 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, =gSprites + adds r1, r0 + str r1, [r4, 0x14] + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D13FC + + thumb_func_start sub_81D1448 +sub_81D1448: @ 81D1448 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r6, r0, 0 + bl sub_81D0944 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + movs r1, 0x9 + bl __modsi3 + adds r5, r0, 0 + lsls r5, 4 + adds r5, 0x60 + adds r0, r4, 0 + movs r1, 0x9 + bl __divsi3 + lsls r0, 4 + adds r0, 0x28 + ldr r1, [r6, 0x14] + movs r2, 0 + mov r8, r2 + strh r5, [r1, 0x20] + ldr r1, [r6, 0x14] + strh r0, [r1, 0x22] + bl sub_81D0954 + adds r4, r0, 0 + movs r0, 0x9 + bl GetSpriteTileStartByTag + ldr r3, [r6, 0x14] + ldr r1, =gUnknown_08624BF8 + lsls r4, 2 + adds r4, r1 + ldrh r1, [r4] + lsls r1, 4 + adds r0, r1 + ldr r2, =0x000003ff + adds r1, r2, 0 + ands r0, r1 + ldrh r2, [r3, 0x4] + ldr r1, =0xfffffc00 + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x4] + ldrh r0, [r4, 0x2] + adds r0, 0xF + lsls r0, 16 + lsrs r0, 16 + bl IndexOfSpritePaletteTag + ldr r3, [r6, 0x14] + lsls r0, 4 + ldrb r2, [r3, 0x5] + movs r1, 0xF + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x5] + ldr r0, [r6, 0x14] + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r1, [r6, 0x14] + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r0, [r6, 0x14] + mov r1, r8 + strh r1, [r0, 0x2E] + ldr r1, [r6, 0x14] + ldr r0, =sub_81D1538 + str r0, [r1, 0x1C] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D1448 + + thumb_func_start sub_81D1500 +sub_81D1500: @ 81D1500 + push {r4,lr} + adds r4, r0, 0 + ldr r1, [r4, 0x14] + movs r0, 0x1 + strh r0, [r1, 0x2E] + ldr r0, [r4, 0x14] + movs r1, 0x2 + bl StartSpriteAffineAnim + ldr r1, [r4, 0x14] + ldr r0, =sub_81D1538 + str r0, [r1, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D1500 + + thumb_func_start sub_81D1524 +sub_81D1524: @ 81D1524 + ldr r0, [r0, 0x14] + ldr r1, [r0, 0x1C] + ldr r0, =SpriteCallbackDummy + eors r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + bx lr + .pool + thumb_func_end sub_81D1524 + + thumb_func_start sub_81D1538 +sub_81D1538: @ 81D1538 + push {lr} + adds r3, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _081D156A + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + movs r0, 0x1 + ldrh r1, [r3, 0x2E] + ands r1, r0 + lsls r1, 2 + mov r0, r12 + ldrb r2, [r0] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldr r0, =SpriteCallbackDummy + str r0, [r3, 0x1C] +_081D156A: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D1538 + + thumb_func_start sub_81D1574 +sub_81D1574: @ 81D1574 + push {lr} + ldrb r0, [r0] + cmp r0, 0x5 + bhi _081D15A4 + lsls r0, 2 + ldr r1, =_081D158C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081D158C: + .4byte _081D15A4 + .4byte _081D15A8 + .4byte _081D15AC + .4byte _081D15B4 + .4byte _081D15B0 + .4byte _081D15A8 +_081D15A4: + movs r0, 0 + b _081D15B6 +_081D15A8: + movs r0, 0x1 + b _081D15B6 +_081D15AC: + movs r0, 0x2 + b _081D15B6 +_081D15B0: + movs r0, 0x3 + b _081D15B6 +_081D15B4: + movs r0, 0x4 +_081D15B6: + pop {r1} + bx r1 + thumb_func_end sub_81D1574 + + thumb_func_start sub_81D15BC +sub_81D15BC: @ 81D15BC + ldr r1, =gUnknown_085500A4 + lsls r0, 4 + adds r0, r1 + ldrh r0, [r0] + bx lr + .pool + thumb_func_end sub_81D15BC + + thumb_func_start sub_81D15CC +sub_81D15CC: @ 81D15CC + push {lr} + adds r3, r0, 0 + movs r1, 0 + ldr r2, =gUnknown_085500A4 +_081D15D4: + ldrh r0, [r2] + cmp r0, r3 + bne _081D15E4 + adds r0, r1, 0 + b _081D15F0 + .pool +_081D15E4: + adds r2, 0x10 + adds r1, 0x1 + cmp r1, 0x4D + ble _081D15D4 + movs r0, 0x1 + negs r0, r0 +_081D15F0: + pop {r1} + bx r1 + thumb_func_end sub_81D15CC + + thumb_func_start sub_81D15F4 +sub_81D15F4: @ 81D15F4 + push {r4,lr} + cmp r0, 0x14 + bhi _081D1620 + ldr r1, =gUnknown_086252A8 + lsls r0, 2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_81D1574 + ldr r1, =gUnknown_086252FC + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + b _081D1622 + .pool +_081D1620: + movs r0, 0 +_081D1622: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81D15F4 + + thumb_func_start sub_81D1628 +sub_81D1628: @ 81D1628 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x2] + ldr r0, =0x0000ffff + cmp r1, r0 + beq _081D1644 + adds r0, r1, 0 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + b _081D1646 + .pool +_081D1644: + movs r0, 0x1 +_081D1646: + pop {r1} + bx r1 + thumb_func_end sub_81D1628 + + thumb_func_start sub_81D164C +sub_81D164C: @ 81D164C + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x2] + ldr r0, =0x0000ffff + cmp r1, r0 + beq _081D1668 + adds r0, r1, 0 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + b _081D166A + .pool +_081D1668: + movs r0, 0x1 +_081D166A: + pop {r1} + bx r1 + thumb_func_end sub_81D164C + + thumb_func_start sub_81D1670 +sub_81D1670: @ 81D1670 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x2] + ldr r0, =0x0000ffff + cmp r1, r0 + beq _081D168C + adds r0, r1, 0 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + b _081D168E + .pool +_081D168C: + movs r0, 0x1 +_081D168E: + pop {r1} + bx r1 + thumb_func_end sub_81D1670 + + thumb_func_start sub_81D1694 +sub_81D1694: @ 81D1694 + push {lr} + adds r2, r0, 0 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldrb r0, [r2, 0x1] + ldrb r1, [r1, 0x8] + cmp r0, r1 + beq _081D16AC + movs r0, 0 + b _081D16C6 + .pool +_081D16AC: + ldrh r1, [r2, 0x2] + ldr r0, =0x0000ffff + cmp r1, r0 + beq _081D16C4 + adds r0, r1, 0 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + b _081D16C6 + .pool +_081D16C4: + movs r0, 0x1 +_081D16C6: + pop {r1} + bx r1 + thumb_func_end sub_81D1694 + + thumb_func_start sub_81D16CC +sub_81D16CC: @ 81D16CC + push {lr} + ldrh r0, [r0, 0x2] + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_81D16CC + + thumb_func_start sub_81D16DC +sub_81D16DC: @ 81D16DC + push {r4,lr} + cmp r0, 0x14 + bhi _081D170C + ldr r1, =gUnknown_086252A8 + lsls r0, 2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_81D1574 + ldr r1, =gUnknown_08625310 + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + lsrs r0, 24 + b _081D170E + .pool +_081D170C: + movs r0, 0 +_081D170E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81D16DC + + thumb_func_start sub_81D1714 +sub_81D1714: @ 81D1714 + ldrb r0, [r0, 0x1] + bx lr + thumb_func_end sub_81D1714 + + thumb_func_start sub_81D1718 +sub_81D1718: @ 81D1718 + ldrb r0, [r0, 0x1] + bx lr + thumb_func_end sub_81D1718 + + thumb_func_start sub_81D171C +sub_81D171C: @ 81D171C + push {r4-r7,lr} + adds r5, r0, 0 + movs r6, 0 + ldr r7, =0x0000ffff + b _081D172E + .pool +_081D172C: + adds r6, 0x1 +_081D172E: + ldr r0, [r5, 0x10] + lsls r4, r6, 2 + adds r1, r4, r0 + ldrh r0, [r1] + cmp r0, r7 + beq _081D1744 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _081D172C +_081D1744: + ldr r0, [r5, 0x10] + adds r0, r4, r0 + ldrb r0, [r0, 0x2] + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81D171C + + thumb_func_start sub_81D1750 +sub_81D1750: @ 81D1750 + movs r0, 0xD5 + bx lr + thumb_func_end sub_81D1750 + + thumb_func_start sub_81D1754 +sub_81D1754: @ 81D1754 + movs r0, 0xD5 + bx lr + thumb_func_end sub_81D1754 + + thumb_func_start sub_81D1758 +sub_81D1758: @ 81D1758 + push {r4,lr} + cmp r0, 0x14 + bhi _081D1784 + ldr r1, =gUnknown_086252A8 + lsls r0, 2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_81D1574 + ldr r1, =gUnknown_08625324 + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + b _081D1786 + .pool +_081D1784: + movs r0, 0 +_081D1786: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81D1758 + + thumb_func_start sub_81D178C +sub_81D178C: @ 81D178C + movs r0, 0 + bx lr + thumb_func_end sub_81D178C + + thumb_func_start sub_81D1790 +sub_81D1790: @ 81D1790 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x4] + cmp r0, 0x48 + bhi _081D17B8 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r2, =0x000009ca + adds r0, r2 + ldrh r1, [r1, 0x4] + adds r0, r1 + ldrb r1, [r0] + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + b _081D17BA + .pool +_081D17B8: + movs r0, 0 +_081D17BA: + pop {r1} + bx r1 + thumb_func_end sub_81D1790 + + thumb_func_start sub_81D17C0 +sub_81D17C0: @ 81D17C0 + ldr r1, =gSaveBlock1Ptr + ldr r1, [r1] + ldr r2, =0x000009ca + adds r1, r2 + ldrh r0, [r0, 0x4] + adds r1, r0 + ldrb r1, [r1] + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + bx lr + .pool + thumb_func_end sub_81D17C0 + + thumb_func_start sub_81D17E0 +sub_81D17E0: @ 81D17E0 + movs r0, 0 + bx lr + thumb_func_end sub_81D17E0 + + thumb_func_start sub_81D17E4 +sub_81D17E4: @ 81D17E4 + movs r0, 0 + bx lr + thumb_func_end sub_81D17E4 + + thumb_func_start sub_81D17E8 +sub_81D17E8: @ 81D17E8 + push {r4,r5,lr} + adds r5, r0, 0 + cmp r5, 0x14 + bhi _081D1832 + ldr r1, =gUnknown_086252A8 + lsls r0, r5, 2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_81D1574 + adds r2, r0, 0 + ldr r1, =gUnknown_08625338 + lsls r0, r2, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + cmp r0, 0 + beq _081D1820 +_081D1812: + movs r0, 0x1 + b _081D1834 + .pool +_081D1820: + movs r2, 0 + ldr r1, =gUnknown_08625388 +_081D1824: + ldrh r0, [r1] + cmp r0, r5 + beq _081D1812 + adds r1, 0x18 + adds r2, 0x1 + cmp r2, 0x3 + bls _081D1824 +_081D1832: + movs r0, 0 +_081D1834: + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D17E8 + + thumb_func_start sub_81D1840 +sub_81D1840: @ 81D1840 + movs r0, 0 + bx lr + thumb_func_end sub_81D1840 + + thumb_func_start sub_81D1844 +sub_81D1844: @ 81D1844 + movs r0, 0x1 + bx lr + thumb_func_end sub_81D1844 + + thumb_func_start sub_81D1848 +sub_81D1848: @ 81D1848 + movs r0, 0x1 + bx lr + thumb_func_end sub_81D1848 + + thumb_func_start sub_81D184C +sub_81D184C: @ 81D184C + movs r0, 0 + bx lr + thumb_func_end sub_81D184C + + thumb_func_start sub_81D1850 +sub_81D1850: @ 81D1850 + movs r0, 0 + bx lr + thumb_func_end sub_81D1850 + + thumb_func_start sub_81D1854 +sub_81D1854: @ 81D1854 + push {r4,lr} + cmp r0, 0x14 + bhi _081D1880 + ldr r1, =gUnknown_086252A8 + lsls r0, 2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_81D1574 + ldr r1, =gUnknown_0862534C + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + b _081D1882 + .pool +_081D1880: + movs r0, 0x4E +_081D1882: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81D1854 + + thumb_func_start sub_81D1888 +sub_81D1888: @ 81D1888 + movs r0, 0x4E + bx lr + thumb_func_end sub_81D1888 + + thumb_func_start sub_81D188C +sub_81D188C: @ 81D188C + ldrh r0, [r0, 0x4] + bx lr + thumb_func_end sub_81D188C + + thumb_func_start sub_81D1890 +sub_81D1890: @ 81D1890 + ldrh r0, [r0, 0x4] + bx lr + thumb_func_end sub_81D1890 + + thumb_func_start sub_81D1894 +sub_81D1894: @ 81D1894 + movs r0, 0x4E + bx lr + thumb_func_end sub_81D1894 + + thumb_func_start sub_81D1898 +sub_81D1898: @ 81D1898 + movs r0, 0x4E + bx lr + thumb_func_end sub_81D1898 + + thumb_func_start sub_81D189C +sub_81D189C: @ 81D189C + push {r4,r5,lr} + adds r5, r1, 0 + cmp r0, 0x14 + bhi _081D18C2 + ldr r1, =gUnknown_086252A8 + lsls r0, 2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_81D1574 + ldr r1, =gUnknown_08625360 + lsls r0, 2 + adds r0, r1 + ldr r2, [r0] + adds r0, r4, 0 + adds r1, r5, 0 + bl _call_via_r2 +_081D18C2: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D189C + + thumb_func_start sub_81D18D0 +sub_81D18D0: @ 81D18D0 + push {lr} + ldr r0, [r0, 0xC] + bl sub_81D1920 + pop {r0} + bx r0 + thumb_func_end sub_81D18D0 + + thumb_func_start sub_81D18DC +sub_81D18DC: @ 81D18DC + push {lr} + adds r3, r0, 0 + adds r2, r1, 0 + ldrb r0, [r3] + cmp r0, 0x5 + beq _081D18F0 + ldr r0, [r3, 0x10] + bl sub_81D1920 + b _081D18F8 +_081D18F0: + ldr r0, [r3, 0x10] + ldrh r1, [r3, 0x4] + bl sub_81D199C +_081D18F8: + pop {r0} + bx r0 + thumb_func_end sub_81D18DC + + thumb_func_start sub_81D18FC +sub_81D18FC: @ 81D18FC + push {lr} + ldr r0, [r0, 0xC] + bl sub_81D1920 + pop {r0} + bx r0 + thumb_func_end sub_81D18FC + + thumb_func_start sub_81D1908 +sub_81D1908: @ 81D1908 + push {lr} + ldr r0, [r0, 0xC] + bl sub_81D1920 + pop {r0} + bx r0 + thumb_func_end sub_81D1908 + + thumb_func_start sub_81D1914 +sub_81D1914: @ 81D1914 + push {lr} + adds r0, r1, 0 + bl sub_8197080 + pop {r0} + bx r0 + thumb_func_end sub_81D1914 + + thumb_func_start sub_81D1920 +sub_81D1920: @ 81D1920 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r6, r0, 0 + mov r9, r1 + movs r5, 0 + ldr r0, [r6] + cmp r0, 0 + beq _081D1940 + adds r1, r6, 0 +_081D1936: + adds r1, 0x8 + adds r5, 0x1 + ldr r0, [r1] + cmp r0, 0 + bne _081D1936 +_081D1940: + cmp r5, 0 + beq _081D1946 + subs r5, 0x1 +_081D1946: + ldr r0, =0x0000ffff + mov r8, r0 + lsls r0, r5, 3 + adds r0, 0x4 + adds r4, r0, r6 + b _081D195C + .pool +_081D1958: + subs r4, 0x8 + subs r5, 0x1 +_081D195C: + lsls r7, r5, 3 + cmp r5, 0 + beq _081D1974 + ldrh r0, [r4] + cmp r0, r8 + beq _081D1958 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081D1958 +_081D1974: + adds r4, r7, r6 + ldrh r1, [r4, 0x6] + ldr r0, =0x0000ffff + cmp r1, r0 + beq _081D1984 + adds r0, r1, 0 + bl FlagSet +_081D1984: + ldr r1, [r4] + mov r0, r9 + bl StringExpandPlaceholders + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D1920 + + thumb_func_start sub_81D199C +sub_81D199C: @ 81D199C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r6, r0, 0 + mov r10, r2 + lsls r1, 16 + lsrs r7, r1, 16 + movs r5, 0 + ldr r0, [r6] + cmp r0, 0 + beq _081D19E6 + ldrh r0, [r6, 0x4] + ldr r1, =0x0000fffe + cmp r0, r1 + beq _081D1A24 + ldr r0, =0x0000ffff + mov r9, r0 + mov r8, r1 + adds r4, r6, 0 +_081D19C6: + ldrh r0, [r4, 0x4] + cmp r0, r9 + beq _081D19D6 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _081D19E6 +_081D19D6: + adds r4, 0x8 + adds r5, 0x1 + ldr r0, [r4] + cmp r0, 0 + beq _081D19E6 + ldrh r0, [r4, 0x4] + cmp r0, r8 + bne _081D19C6 +_081D19E6: + lsls r0, r5, 3 + adds r0, r6 + ldrh r1, [r0, 0x4] + ldr r0, =0x0000fffe + cmp r1, r0 + beq _081D1A24 + cmp r5, 0 + beq _081D19F8 + subs r5, 0x1 +_081D19F8: + lsls r0, r5, 3 + adds r4, r0, r6 + ldrh r1, [r4, 0x6] + ldr r0, =0x0000ffff + cmp r1, r0 + beq _081D1A0A + adds r0, r1, 0 + bl FlagSet +_081D1A0A: + ldr r1, [r4] + mov r0, r10 + bl StringExpandPlaceholders + b _081D1A5C + .pool +_081D1A1C: + adds r5, 0x2 + b _081D1A50 +_081D1A20: + adds r5, 0x3 + b _081D1A50 +_081D1A24: + ldr r0, =0x00000864 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _081D1A50 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x000009ca + adds r0, r1 + adds r0, r7 + ldrb r0, [r0] + cmp r0, 0 + bne _081D1A1C + adds r0, r7, 0 + bl sub_80B2318 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _081D1A20 + adds r5, 0x1 +_081D1A50: + lsls r0, r5, 3 + adds r0, r6 + ldr r1, [r0] + mov r0, r10 + bl StringExpandPlaceholders +_081D1A5C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D199C + + thumb_func_start sub_81D1A78 +sub_81D1A78: @ 81D1A78 + push {r4-r6,lr} + adds r5, r1, 0 + adds r6, r2, 0 + cmp r0, 0x14 + bhi _081D1AA2 + ldr r1, =gUnknown_086252A8 + lsls r0, 2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_81D1574 + ldr r1, =gUnknown_08625374 + lsls r0, 2 + adds r0, r1 + ldr r3, [r0] + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl _call_via_r3 +_081D1AA2: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D1A78 + + thumb_func_start sub_81D1AB0 +sub_81D1AB0: @ 81D1AB0 + ldr r3, [r0, 0x4] + str r3, [r1] + ldr r0, [r0, 0x8] + str r0, [r2] + bx lr + thumb_func_end sub_81D1AB0 + + thumb_func_start sub_81D1ABC +sub_81D1ABC: @ 81D1ABC + push {r4,r5,lr} + adds r5, r1, 0 + adds r4, r0, 0 + ldr r0, [r4, 0xC] + cmp r0, 0 + bne _081D1AD0 + ldrh r0, [r4, 0x4] + bl sub_81D1B0C + b _081D1AD2 +_081D1AD0: + str r0, [r2] +_081D1AD2: + ldr r0, [r4, 0x8] + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81D1ABC + + thumb_func_start sub_81D1ADC +sub_81D1ADC: @ 81D1ADC + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + ldrh r0, [r4, 0x4] + bl sub_81D1B0C + ldr r0, [r4, 0x8] + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81D1ADC + + thumb_func_start sub_81D1AF4 +sub_81D1AF4: @ 81D1AF4 + ldr r3, [r0, 0x4] + str r3, [r1] + ldr r0, [r0, 0x8] + str r0, [r2] + bx lr + thumb_func_end sub_81D1AF4 + + thumb_func_start sub_81D1B00 +sub_81D1B00: @ 81D1B00 + ldr r3, [r0, 0x4] + str r3, [r1] + ldr r0, [r0, 0x8] + str r0, [r2] + bx lr + thumb_func_end sub_81D1B00 + + thumb_func_start sub_81D1B0C +sub_81D1B0C: @ 81D1B0C + push {r4,r5,lr} + adds r4, r1, 0 + adds r5, r2, 0 + bl sub_81D15BC + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTrainers + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r0, 0xD + muls r0, r2 + ldr r2, =gTrainerClassNames + adds r0, r2 + str r0, [r4] + adds r1, 0x4 + str r1, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D1B0C + + thumb_func_start sub_81D1B40 +sub_81D1B40: @ 81D1B40 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r6, r0, 0 + movs r5, 0 + ldr r2, =gUnknown_08625388 + movs r0, 0x8 + adds r0, r2 + mov r9, r0 +_081D1B54: + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 3 + adds r0, r2 + ldrh r0, [r0] + cmp r0, r6 + bne _081D1BBC + adds r4, r5, 0x1 + lsls r1, 2 + mov r8, r1 + cmp r4, 0x3 + bhi _081D1BA8 + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 3 + adds r0, r2 + ldrh r0, [r0] + cmp r0, r6 + bne _081D1BA8 + ldr r7, =gUnknown_08625388 +_081D1B7C: + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 3 + adds r1, r7, 0x4 + adds r0, r1 + ldrh r0, [r0] + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _081D1BA8 + adds r5, r4, 0 + adds r4, r5, 0x1 + cmp r4, 0x3 + bhi _081D1BA8 + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 3 + adds r0, r7 + ldrh r0, [r0] + cmp r0, r6 + beq _081D1B7C +_081D1BA8: + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 3 + add r0, r8 + add r0, r9 + ldr r0, [r0] + b _081D1BC4 + .pool +_081D1BBC: + adds r5, 0x1 + cmp r5, 0x3 + bls _081D1B54 + movs r0, 0 +_081D1BC4: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81D1B40 + + thumb_func_start sub_81D1BD0 +sub_81D1BD0: @ 81D1BD0 + push {lr} + adds r3, r0, 0 + movs r2, 0 + ldr r1, =gUnknown_08625388 +_081D1BD8: + ldrh r0, [r1] + cmp r0, r3 + bne _081D1BE8 + ldrh r0, [r1, 0x2] + b _081D1BF4 + .pool +_081D1BE8: + adds r1, 0x18 + adds r2, 0x1 + cmp r2, 0x3 + bls _081D1BD8 + movs r0, 0x1 + negs r0, r0 +_081D1BF4: + pop {r1} + bx r1 + thumb_func_end sub_81D1BD0 + + thumb_func_start sub_81D1BF8 +sub_81D1BF8: @ 81D1BF8 + push {r4,r5,lr} + adds r5, r0, 0 + movs r4, 0 +_081D1BFE: + adds r0, r4, 0 + bl sub_81D1854 + cmp r0, 0x4E + beq _081D1C10 + cmp r0, r5 + bne _081D1C10 + movs r0, 0x1 + b _081D1C18 +_081D1C10: + adds r4, 0x1 + cmp r4, 0x14 + ble _081D1BFE + movs r0, 0 +_081D1C18: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D1BF8 + + thumb_func_start sub_81D1C20 +sub_81D1C20: @ 81D1C20 + push {lr} + ldr r0, =gSpecialVar_0x8004 + ldrh r0, [r0] + bl sub_81D15CC + cmp r0, 0 + blt _081D1C3C + movs r1, 0xAE + lsls r1, 1 + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + bl FlagSet +_081D1C3C: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D1C20 + + thumb_func_start sub_81D1C44 +sub_81D1C44: @ 81D1C44 + push {r4,lr} + lsls r0, 24 + ldr r4, =gUnknown_0203CF4C + lsrs r0, 21 + adds r0, 0x8 + bl Alloc + str r0, [r4] + cmp r0, 0 + bne _081D1C60 + movs r0, 0 + b _081D1C7A + .pool +_081D1C60: + movs r2, 0 + ldr r4, =gUnknown_0203CF48 + movs r3, 0xFF +_081D1C66: + adds r0, r2, r4 + ldrb r1, [r0] + orrs r1, r3 + strb r1, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x2 + bls _081D1C66 + movs r0, 0x1 +_081D1C7A: + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D1C44 + + thumb_func_start sub_81D1C84 +sub_81D1C84: @ 81D1C84 + push {r4-r6,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r6, =gUnknown_0203CF48 + adds r5, r4, r6 + ldrb r0, [r5] + cmp r0, 0xFF + bne _081D1CEC + cmp r4, 0x2 + bne _081D1CD4 + ldr r0, =gUnknown_086253E8 + ldr r1, [r0, 0x14] + ldr r0, [r0, 0x10] + str r0, [sp] + str r1, [sp, 0x4] + ldr r0, =gUnknown_085DFF04 + movs r1, 0x4 + bl GetMaxWidthInMenuTable + lsls r0, 24 + ldr r2, =0x00ffffff + ldr r1, [sp] + ands r1, r2 + orrs r1, r0 + str r1, [sp] + mov r0, sp + bl AddWindow + strb r0, [r6, 0x2] + b _081D1CE0 + .pool +_081D1CD4: + lsls r0, r4, 3 + ldr r1, =gUnknown_086253E8 + adds r0, r1 + bl AddWindow + strb r0, [r5] +_081D1CE0: + ldr r0, =gUnknown_0203CF48 + adds r0, r4, r0 + ldrb r0, [r0] + movs r1, 0 + bl SetStandardWindowBorderStyle +_081D1CEC: + ldr r0, =gUnknown_0203CF48 + adds r0, r4, r0 + ldrb r0, [r0] + add sp, 0x8 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D1C84 + + thumb_func_start sub_81D1D04 +sub_81D1D04: @ 81D1D04 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =gUnknown_0203CF48 + adds r4, r0 + ldrb r0, [r4] + movs r1, 0 + bl sub_8198070 + ldrb r0, [r4] + bl ClearWindowTilemap + ldrb r0, [r4] + bl RemoveWindow + movs r0, 0xFF + strb r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D1D04 + + thumb_func_start sub_81D1D34 +sub_81D1D34: @ 81D1D34 + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gUnknown_0203CF48 + adds r0, r1 + ldrb r0, [r0] + bx lr + .pool + thumb_func_end sub_81D1D34 + + thumb_func_start sub_81D1D44 +sub_81D1D44: @ 81D1D44 + push {r4,r5,lr} + sub sp, 0x34 + adds r3, r1, 0 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r2, 24 + lsrs r5, r2, 24 + movs r0, 0x2 + negs r0, r0 + cmp r3, r0 + beq _081D1DAC + ldr r0, =gSaveBlock1Ptr + lsls r1, r3, 3 + adds r1, r3 + lsls r1, 2 + ldr r0, [r0] + adds r1, r0 + ldr r0, =0x00002cca + adds r1, r0 + add r0, sp, 0x14 + bl StringCopy + add r0, sp, 0x14 + bl sub_81DB52C + add r0, sp, 0x14 + bl StringLength + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x5 + bhi _081D1D8C + add r0, sp, 0x14 + movs r1, 0x1 + bl ConvertInternationalString +_081D1D8C: + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + ldr r0, =gUnknown_08625400 + str r0, [sp, 0x8] + movs r0, 0x1 + negs r0, r0 + str r0, [sp, 0xC] + add r0, sp, 0x14 + str r0, [sp, 0x10] + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0x8 + adds r3, r5, 0 + bl AddTextPrinterParametrized2 +_081D1DAC: + add sp, 0x34 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D1D44 + + thumb_func_start sub_81D1DC0 +sub_81D1DC0: @ 81D1DC0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r5, r0, 0 + movs r3, 0 + ldr r7, =gUnknown_0203CF4C + ldr r0, =gUnknown_085E8CF7 + mov r12, r0 + ldr r4, =gUnknown_03006310 + ldr r1, =gUnknown_0203CF48 + mov r8, r1 + ldr r2, =sub_81D1E7C + mov r9, r2 + ldr r0, =sub_81D1D44 + mov r10, r0 + ldrb r1, [r5, 0x5] + cmp r3, r1 + bcs _081D1E02 + adds r6, r7, 0 + ldr r2, =gUnknown_08625403 +_081D1DEC: + ldr r1, [r6] + lsls r0, r3, 3 + adds r0, r1 + str r2, [r0] + str r3, [r0, 0x4] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + ldrb r0, [r5, 0x5] + cmp r3, r0 + bcc _081D1DEC +_081D1E02: + ldr r2, [r7] + lsls r0, r3, 3 + adds r0, r2 + mov r1, r12 + str r1, [r0] + movs r1, 0x2 + negs r1, r1 + str r1, [r0, 0x4] + str r2, [r4] + ldrb r0, [r5, 0x5] + adds r0, 0x1 + movs r1, 0 + strh r0, [r4, 0xC] + mov r2, r8 + ldrb r0, [r2, 0x1] + strb r0, [r4, 0x10] + strb r1, [r4, 0x11] + movs r0, 0x8 + strb r0, [r4, 0x12] + strb r1, [r4, 0x13] + strh r0, [r4, 0xE] + movs r0, 0x29 + strb r0, [r4, 0x14] + movs r0, 0x31 + strb r0, [r4, 0x15] + mov r0, r9 + str r0, [r4, 0x4] + mov r1, r10 + str r1, [r4, 0x8] + movs r0, 0x1 + strb r0, [r4, 0x17] + movs r0, 0 + strb r0, [r4, 0x16] + ldrh r1, [r5, 0x2] + ldrh r2, [r5] + adds r0, r4, 0 + bl ListMenuInit + lsls r0, 24 + lsrs r0, 24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D1DC0 + + thumb_func_start sub_81D1E7C +sub_81D1E7C: @ 81D1E7C + push {lr} + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0x1 + beq _081D1E8C + movs r0, 0x5 + bl PlaySE +_081D1E8C: + pop {r0} + bx r0 + thumb_func_end sub_81D1E7C + + thumb_func_start sub_81D1E90 +sub_81D1E90: @ 81D1E90 + push {r4,lr} + sub sp, 0x10 + adds r4, r0, 0 + ldrb r0, [r4, 0x5] + ldrb r1, [r4, 0x4] + subs r0, r1 + adds r0, 0x1 + str r0, [sp] + movs r0, 0x6E + str r0, [sp, 0x4] + str r0, [sp, 0x8] + adds r0, r4, 0x2 + str r0, [sp, 0xC] + movs r0, 0x2 + movs r1, 0xC8 + movs r2, 0xC + movs r3, 0x94 + bl AddScrollIndicatorArrowPairParametrized + strb r0, [r4, 0x9] + add sp, 0x10 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81D1E90 + + thumb_func_start sub_81D1EC0 +sub_81D1EC0: @ 81D1EC0 + push {lr} + ldr r0, =gUnknown_0203CF4C + ldr r0, [r0] + bl Free + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D1EC0 + + thumb_func_start sub_81D1ED4 +sub_81D1ED4: @ 81D1ED4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r3, r0, 0 + movs r6, 0 + movs r7, 0 +_081D1EE6: + movs r2, 0 + lsls r5, r6, 2 + adds r0, r6, 0x1 + mov r10, r0 + adds r4, r5, 0 +_081D1EF0: + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 2 + adds r0, r4, r0 + adds r0, r3, r0 + adds r1, r0, 0 + adds r1, 0x64 + strh r7, [r1] + adds r0, 0x66 + strh r7, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x9 + bls _081D1EF0 + movs r2, 0 + mov r9, r2 + str r5, [sp] + movs r1, 0x9B + mov r8, r1 + movs r4, 0x5B + mov r12, r4 +_081D1F1C: + lsls r0, r2, 2 + adds r0, r2 + adds r1, r6, r0 + adds r1, r3, r1 + mov r4, r9 + strb r4, [r1] + lsls r0, 2 + ldr r1, [sp] + adds r0, r1, r0 + adds r0, r3, r0 + mov r4, r8 + strh r4, [r0, 0x14] + mov r1, r12 + strh r1, [r0, 0x16] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _081D1F1C + adds r1, r3, r5 + movs r2, 0x96 + lsls r2, 1 + adds r0, r1, r2 + strh r7, [r0] + movs r4, 0x97 + lsls r4, 1 + adds r0, r1, r4 + strh r7, [r0] + mov r1, r10 + lsls r0, r1, 24 + lsrs r6, r0, 24 + cmp r6, 0x4 + bls _081D1EE6 + movs r2, 0xD5 + lsls r2, 2 + adds r0, r3, r2 + movs r1, 0 + strb r1, [r0] + ldr r4, =0x00000352 + adds r0, r3, r4 + strh r1, [r0] + 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_81D1ED4 + + thumb_func_start sub_81D1F84 +sub_81D1F84: @ 81D1F84 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + mov r8, r0 + str r1, [sp] + mov r9, r2 + movs r7, 0 +_081D1F98: + lsls r4, r7, 2 + ldr r1, [sp] + adds r0, r4, r1 + ldrh r1, [r0] + lsls r5, r1, 8 + mov r2, r9 + adds r0, r4, r2 + ldrh r0, [r0] + subs r0, r1 + lsls r0, 8 + movs r1, 0xA + bl __divsi3 + adds r6, r0, 0 + movs r3, 0 + adds r7, 0x1 + mov r10, r7 + mov r12, r4 +_081D1FBC: + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 2 + add r0, r12 + add r0, r8 + asrs r2, r5, 8 + asrs r1, r5, 7 + movs r7, 0x1 + ands r1, r7 + adds r2, r1 + adds r0, 0x64 + strh r2, [r0] + adds r5, r6 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x8 + bls _081D1FBC + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 2 + adds r0, r4, r0 + add r0, r8 + mov r1, r9 + adds r2, r4, r1 + ldrh r1, [r2] + adds r0, 0x64 + strh r1, [r0] + ldr r7, [sp] + adds r0, r4, r7 + ldrh r1, [r0, 0x2] + lsls r5, r1, 8 + ldrh r0, [r2, 0x2] + subs r0, r1 + lsls r0, 8 + movs r1, 0xA + bl __divsi3 + adds r6, r0, 0 + movs r3, 0 + str r4, [sp, 0x4] + movs r0, 0x1 + mov r12, r0 +_081D2012: + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 2 + ldr r1, [sp, 0x4] + adds r0, r1, r0 + add r0, r8 + asrs r2, r5, 8 + asrs r1, r5, 7 + mov r7, r12 + ands r1, r7 + adds r2, r1 + adds r0, 0x66 + strh r2, [r0] + adds r5, r6 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x8 + bls _081D2012 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 2 + adds r0, r4, r0 + add r0, r8 + mov r2, r9 + adds r1, r4, r2 + ldrh r1, [r1, 0x2] + adds r0, 0x66 + strh r1, [r0] + mov r7, r10 + lsls r0, r7, 16 + lsrs r7, r0, 16 + cmp r7, 0x4 + bls _081D1F98 + ldr r1, =0x00000352 + add r1, r8 + movs r0, 0 + strh r0, [r1] + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D1F84 + + thumb_func_start sub_81D2074 +sub_81D2074: @ 81D2074 + push {r4,lr} + adds r1, r0, 0 + ldr r0, =0x00000352 + adds r4, r1, r0 + ldrh r0, [r4] + cmp r0, 0x9 + bls _081D208C + movs r0, 0 + b _081D20A6 + .pool +_081D208C: + adds r0, r1, 0 + bl sub_81D2230 + ldrh r1, [r4] + adds r1, 0x1 + strh r1, [r4] + lsls r1, 16 + lsrs r1, 16 + movs r0, 0xA + eors r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 +_081D20A6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81D2074 + + thumb_func_start sub_81D20AC +sub_81D20AC: @ 81D20AC + ldr r1, =0x00000355 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + bx lr + .pool + thumb_func_end sub_81D20AC + + thumb_func_start sub_81D20BC +sub_81D20BC: @ 81D20BC + push {r4,r5,lr} + sub sp, 0xC + ldr r1, =0x00000355 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0 + beq _081D20D4 + cmp r0, 0x1 + beq _081D20E2 + b _081D20FA + .pool +_081D20D4: + bl dp12_8087EA4 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + movs r0, 0x1 + b _081D20FC +_081D20E2: + mov r0, sp + ldr r1, =gUnknown_08625404 + ldm r1!, {r2,r3,r5} + stm r0!, {r2,r3,r5} + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl sub_80BA038 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] +_081D20FA: + movs r0, 0 +_081D20FC: + add sp, 0xC + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D20BC + + thumb_func_start sub_81D2108 +sub_81D2108: @ 81D2108 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + adds r6, r0, 0 + movs r1, 0xD5 + lsls r1, 2 + adds r0, r6, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _081D21BE + adds r0, r6, 0 + bl sub_81D24A4 + adds r0, r6, 0 + bl sub_81D2634 + movs r7, 0 + ldr r5, =gUnknown_02038C28 + mov r12, r5 + movs r0, 0xF0 + lsls r0, 3 + add r0, r12 + mov r9, r0 + movs r1, 0xA0 + lsls r1, 1 + adds r1, r6, r1 + str r1, [sp] + ldr r5, =0x0000ffff + mov r8, r5 + movs r0, 0xA1 + lsls r0, 1 + adds r0, r6, r0 + str r0, [sp, 0x4] + movs r1, 0x92 + lsls r1, 2 + adds r1, r6, r1 + str r1, [sp, 0x8] + ldr r5, =0x0000024a + adds r5, r6 + mov r10, r5 +_081D215E: + adds r2, r7, 0 + adds r2, 0x37 + lsls r3, r2, 2 + mov r0, r9 + adds r0, r3, r0 + str r0, [sp, 0xC] + add r3, r12 + lsls r4, r7, 2 + ldr r1, [sp] + adds r0, r1, r4 + ldrh r0, [r0] + lsls r0, 8 + ldr r5, [sp, 0x4] + adds r1, r5, r4 + ldrh r1, [r1] + orrs r0, r1 + strh r0, [r3] + mov r1, r8 + ands r0, r1 + ldr r5, [sp, 0xC] + strh r0, [r5] + lsls r2, 1 + adds r2, 0x1 + lsls r2, 1 + mov r0, r9 + adds r3, r2, r0 + add r2, r12 + ldr r1, [sp, 0x8] + adds r0, r1, r4 + ldrh r0, [r0] + lsls r0, 8 + add r4, r10 + ldrh r1, [r4] + orrs r0, r1 + strh r0, [r2] + mov r5, r8 + ands r0, r5 + strh r0, [r3] + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, 0x41 + bls _081D215E + movs r0, 0xD5 + lsls r0, 2 + adds r1, r6, r0 + movs r0, 0 + strb r0, [r1] +_081D21BE: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D2108 + + thumb_func_start sub_81D21DC +sub_81D21DC: @ 81D21DC + push {r4,r5,lr} + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bls _081D21E8 + movs r1, 0 +_081D21E8: + movs r0, 0x1 + lsls r0, r1 + movs r5, 0x1F + bics r5, r0 + movs r0, 0x40 + movs r1, 0xF0 + bl SetGpuReg + movs r0, 0x42 + movs r1, 0x9B + bl SetGpuReg + ldr r4, =0x00003879 + movs r0, 0x44 + adds r1, r4, 0 + bl SetGpuReg + movs r0, 0x46 + adds r1, r4, 0 + bl SetGpuReg + ldr r1, =0x00003f3f + movs r0, 0x48 + bl SetGpuReg + movs r0, 0x4A + adds r1, r5, 0 + bl SetGpuReg + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D21DC + + thumb_func_start sub_81D2230 +sub_81D2230: @ 81D2230 + push {r4-r7,lr} + mov r12, r0 + movs r4, 0 + movs r7, 0x96 + lsls r7, 1 + add r7, r12 + ldr r6, =0x00000352 + add r6, r12 + mov r5, r12 + adds r5, 0x64 +_081D2244: + lsls r2, r4, 2 + adds r3, r7, r2 + ldrh r1, [r6] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r2, r0 + adds r2, r5, r2 + ldr r0, [r2] + str r0, [r3] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x4 + bls _081D2244 + movs r1, 0xD5 + lsls r1, 2 + add r1, r12 + movs r0, 0x1 + strb r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D2230 + + thumb_func_start sub_81D2278 +sub_81D2278: @ 81D2278 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + str r0, [sp] + adds r6, r1, 0 + adds r5, r2, 0 + str r3, [sp, 0x4] + ldr r0, [sp, 0x38] + ldr r7, [sp, 0x3C] + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r0, 0 + str r0, [sp, 0xC] + ldrh r0, [r5, 0x2] + ldrh r1, [r3, 0x2] + cmp r0, r1 + bcs _081D22B2 + adds r2, r0, 0 + mov r10, r2 + ldrh r0, [r3, 0x2] + ldrh r1, [r5] + lsls r4, r1, 10 + ldrh r3, [r3] + str r3, [sp, 0x8] + b _081D22C6 +_081D22B2: + ldrh r0, [r5, 0x2] + ldr r1, [sp, 0x4] + ldrh r1, [r1, 0x2] + mov r10, r1 + ldr r2, [sp, 0x4] + ldrh r1, [r2] + lsls r4, r1, 10 + ldrh r3, [r5] + str r3, [sp, 0x8] + mov r2, r10 +_081D22C6: + subs r0, r2 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r0, 0 + beq _081D22DE + subs r0, r3, r1 + lsls r0, 10 + mov r1, r8 + bl __divsi3 + str r0, [sp, 0xC] +_081D22DE: + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r7, 0 + bne _081D2328 + mov r0, r10 + subs r0, 0x38 + lsls r0, 2 + adds r6, r0 + movs r5, 0 + mov r3, r9 + lsls r3, 1 + mov r12, r3 + ldr r0, [sp, 0x8] + add r0, r9 + str r0, [sp, 0x10] + cmp r7, r8 + bcs _081D23B6 + movs r7, 0x1 +_081D2308: + adds r2, r3, r6 + asrs r1, r4, 10 + asrs r0, r4, 9 + ands r0, r7 + adds r1, r0 + add r1, r9 + strh r1, [r2] + ldr r1, [sp, 0xC] + adds r4, r1 + adds r6, 0x4 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcc _081D2308 + b _081D23B6 +_081D2328: + ldr r2, [sp, 0xC] + cmp r2, 0 + ble _081D23C0 + mov r0, r10 + subs r0, 0x38 + lsls r0, 2 + adds r7, r0 + movs r5, 0 + mov r3, r9 + lsls r3, 1 + mov r12, r3 + ldr r0, [sp, 0x8] + add r0, r9 + str r0, [sp, 0x10] + cmp r5, r8 + bcs _081D237A + ldr r0, =0x00026bff + cmp r4, r0 + bgt _081D237A + mov r1, r12 + str r1, [sp, 0x14] +_081D2352: + ldr r3, [sp, 0x14] + adds r2, r3, r7 + asrs r1, r4, 10 + asrs r0, r4, 9 + movs r3, 0x1 + ands r0, r3 + adds r1, r0 + add r1, r9 + strh r1, [r2] + ldr r0, [sp, 0xC] + adds r4, r0 + adds r7, 0x4 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcs _081D237A + ldr r1, =0x00026bff + cmp r4, r1 + ble _081D2352 +_081D237A: + mov r2, r10 + adds r1, r2, r5 + ldr r3, [sp] + movs r2, 0xD4 + lsls r2, 2 + adds r0, r3, r2 + strh r1, [r0] + ldrh r0, [r0] + subs r0, 0x38 + lsls r0, 2 + adds r6, r0 + cmp r5, r8 + bcs _081D23B6 + mov r3, r12 + movs r7, 0x1 +_081D2398: + adds r2, r3, r6 + asrs r1, r4, 10 + asrs r0, r4, 9 + ands r0, r7 + adds r1, r0 + add r1, r9 + strh r1, [r2] + ldr r0, [sp, 0xC] + adds r4, r0 + adds r6, 0x4 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcc _081D2398 +_081D23B6: + subs r0, r6, 0x4 + b _081D248C + .pool +_081D23C0: + ldr r1, [sp, 0xC] + cmp r1, 0 + bge _081D2464 + mov r0, r10 + subs r0, 0x38 + lsls r0, 2 + adds r6, r0 + movs r5, 0 + mov r2, r9 + lsls r2, 1 + mov r12, r2 + ldr r3, [sp, 0x8] + add r3, r9 + str r3, [sp, 0x10] + cmp r5, r8 + bcs _081D241E + adds r3, r2, r6 + asrs r1, r4, 10 + asrs r0, r4, 9 + movs r2, 0x1 + ands r0, r2 + adds r1, r0 + add r1, r9 + strh r1, [r3] + b _081D2414 +_081D23F2: + ldr r0, [sp, 0xC] + adds r4, r0 + adds r6, 0x4 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcs _081D241E + mov r1, r12 + adds r3, r1, r6 + asrs r2, r4, 10 + asrs r0, r4, 9 + movs r1, 0x1 + ands r0, r1 + adds r2, r0 + add r2, r9 + strh r2, [r3] +_081D2414: + ldr r0, =0x00026bff + cmp r4, r0 + bgt _081D23F2 + movs r0, 0x9B + strh r0, [r3] +_081D241E: + mov r2, r10 + adds r1, r2, r5 + ldr r3, [sp] + movs r2, 0xD4 + lsls r2, 2 + adds r0, r3, r2 + strh r1, [r0] + ldrh r0, [r0] + subs r0, 0x38 + lsls r0, 2 + adds r7, r0 + cmp r5, r8 + bcs _081D245A + mov r3, r12 + movs r6, 0x1 +_081D243C: + adds r2, r3, r7 + asrs r1, r4, 10 + asrs r0, r4, 9 + ands r0, r6 + adds r1, r0 + add r1, r9 + strh r1, [r2] + ldr r0, [sp, 0xC] + adds r4, r0 + adds r7, 0x4 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcc _081D243C +_081D245A: + subs r0, r7, 0x4 + b _081D248C + .pool +_081D2464: + ldr r1, [sp] + movs r2, 0xD4 + lsls r2, 2 + adds r0, r1, r2 + mov r3, r10 + strh r3, [r0] + mov r0, r10 + subs r0, 0x38 + lsls r0, 2 + adds r6, r0 + adds r7, r0 + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r6, 0x2] + ldr r1, [sp, 0x4] + ldrh r0, [r1] + strh r0, [r7] + movs r0, 0x9B + strh r0, [r7, 0x2] + b _081D2494 +_081D248C: + add r0, r12 + mov r2, sp + ldrh r2, [r2, 0x10] + strh r2, [r0] +_081D2494: + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81D2278 + + thumb_func_start sub_81D24A4 +sub_81D24A4: @ 81D24A4 + push {r4-r7,lr} + sub sp, 0x8 + adds r4, r0, 0 + movs r0, 0x97 + lsls r0, 1 + adds r2, r4, r0 + movs r3, 0x99 + lsls r3, 1 + adds r1, r4, r3 + ldrh r0, [r2] + ldrh r3, [r1] + cmp r0, r3 + bcs _081D24E0 + adds r7, r0, 0 + movs r0, 0xA0 + lsls r0, 1 + adds r1, r4, r0 + movs r3, 0x96 + lsls r3, 1 + adds r2, r4, r3 + subs r0, 0x10 + adds r3, r4, r0 + movs r0, 0x1 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + adds r0, r4, 0 + bl sub_81D2278 + b _081D2500 +_081D24E0: + ldrh r7, [r1] + movs r2, 0xA0 + lsls r2, 1 + adds r1, r4, r2 + movs r3, 0x98 + lsls r3, 1 + adds r2, r4, r3 + movs r0, 0x96 + lsls r0, 1 + adds r3, r4, r0 + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + adds r0, r4, 0 + bl sub_81D2278 +_081D2500: + movs r1, 0xA0 + lsls r1, 1 + adds r5, r4, r1 + movs r3, 0x98 + lsls r3, 1 + adds r2, r4, r3 + movs r0, 0x9A + lsls r0, 1 + adds r6, r4, r0 + movs r0, 0x1 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + adds r0, r4, 0 + adds r1, r5, 0 + adds r3, r6, 0 + bl sub_81D2278 + movs r2, 0 + movs r1, 0x9B + lsls r1, 1 + adds r0, r4, r1 + movs r3, 0x9D + lsls r3, 1 + adds r1, r4, r3 + ldrh r0, [r0] + ldrh r1, [r1] + cmp r0, r1 + bhi _081D253C + movs r2, 0x1 +_081D253C: + movs r0, 0x9C + lsls r0, 1 + adds r3, r4, r0 + str r2, [sp] + movs r1, 0x92 + lsls r1, 2 + adds r0, r4, r1 + str r0, [sp, 0x4] + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl sub_81D2278 + movs r2, 0x38 + cmp r2, r7 + bcs _081D257E + adds r6, r5, 0 + movs r3, 0 + movs r0, 0xA1 + lsls r0, 1 + adds r5, r4, r0 +_081D2566: + adds r0, r2, 0 + subs r0, 0x38 + lsls r0, 2 + adds r1, r6, r0 + strh r3, [r1] + adds r0, r5, r0 + strh r3, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, r7 + bcc _081D2566 +_081D257E: + movs r1, 0x97 + lsls r1, 1 + adds r0, r4, r1 + ldrh r2, [r0] + movs r3, 0xD4 + lsls r3, 2 + adds r0, r4, r3 + ldrh r1, [r0] + cmp r2, r1 + bhi _081D25B2 + movs r1, 0xA0 + lsls r1, 1 + adds r3, r4, r1 + movs r5, 0x9B + adds r1, r0, 0 +_081D259C: + adds r0, r2, 0 + subs r0, 0x38 + lsls r0, 2 + adds r0, r3, r0 + strh r5, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldrh r0, [r1] + cmp r2, r0 + bls _081D259C +_081D25B2: + movs r2, 0x9B + lsls r2, 1 + adds r1, r4, r2 + movs r3, 0xD4 + lsls r3, 2 + adds r0, r4, r3 + ldrh r0, [r0] + ldrh r1, [r1] + cmp r0, r1 + bcs _081D25C8 + adds r0, r1, 0 +_081D25C8: + adds r0, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x79 + bhi _081D25F8 + movs r0, 0xA0 + lsls r0, 1 + adds r6, r4, r0 + movs r3, 0 + movs r1, 0xA1 + lsls r1, 1 + adds r5, r4, r1 +_081D25E0: + adds r0, r2, 0 + subs r0, 0x38 + lsls r0, 2 + adds r1, r6, r0 + strh r3, [r1] + adds r0, r5, r0 + strh r3, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x79 + bls _081D25E0 +_081D25F8: + movs r2, 0x38 + movs r3, 0xA0 + lsls r3, 1 + adds r5, r4, r3 + movs r0, 0xA1 + lsls r0, 1 + adds r4, r0 + movs r6, 0x9B +_081D2608: + adds r0, r2, 0 + subs r0, 0x38 + lsls r1, r0, 2 + adds r3, r5, r1 + ldrh r0, [r3] + cmp r0, 0 + bne _081D2620 + adds r0, r4, r1 + ldrh r0, [r0] + cmp r0, 0 + beq _081D2620 + strh r6, [r3] +_081D2620: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x79 + bls _081D2608 + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81D24A4 + + thumb_func_start sub_81D2634 +sub_81D2634: @ 81D2634 + push {r4-r6,lr} + sub sp, 0x8 + adds r4, r0, 0 + movs r0, 0x97 + lsls r0, 1 + adds r2, r4, r0 + movs r3, 0x9F + lsls r3, 1 + adds r1, r4, r3 + ldrh r0, [r2] + ldrh r5, [r1] + cmp r0, r5 + bcs _081D266E + adds r6, r0, 0 + movs r0, 0x92 + lsls r0, 2 + adds r1, r4, r0 + subs r3, 0x12 + adds r2, r4, r3 + movs r5, 0x9E + lsls r5, 1 + adds r3, r4, r5 + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + adds r0, r4, 0 + bl sub_81D2278 + b _081D2690 +_081D266E: + ldrh r6, [r1] + movs r0, 0x92 + lsls r0, 2 + adds r1, r4, r0 + movs r3, 0x9E + lsls r3, 1 + adds r2, r4, r3 + movs r5, 0x96 + lsls r5, 1 + adds r3, r4, r5 + movs r0, 0x1 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + adds r0, r4, 0 + bl sub_81D2278 +_081D2690: + movs r0, 0x92 + lsls r0, 2 + adds r5, r4, r0 + movs r1, 0x9E + lsls r1, 1 + adds r2, r4, r1 + movs r0, 0x9C + lsls r0, 1 + adds r3, r4, r0 + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_81D2278 + cmp r6, 0x38 + ble _081D26C8 + movs r0, 0 + adds r1, r5, 0 + adds r2, r6, 0 + subs r2, 0x38 +_081D26BC: + strh r0, [r1] + strh r0, [r1, 0x2] + adds r1, 0x4 + subs r2, 0x1 + cmp r2, 0 + bne _081D26BC +_081D26C8: + movs r1, 0x97 + lsls r1, 1 + adds r0, r4, r1 + ldrh r2, [r0] + movs r3, 0xD4 + lsls r3, 2 + adds r0, r4, r3 + ldrh r5, [r0] + cmp r2, r5 + bgt _081D26F6 + movs r3, 0x9B + adds r1, r0, 0 + lsls r0, r2, 2 + movs r5, 0xB5 + lsls r5, 1 + adds r0, r5 + adds r0, r4 +_081D26EA: + strh r3, [r0] + adds r0, 0x4 + adds r2, 0x1 + ldrh r5, [r1] + cmp r2, r5 + ble _081D26EA +_081D26F6: + movs r1, 0x9D + lsls r1, 1 + adds r0, r4, r1 + ldrh r0, [r0] + adds r1, r0, 0x1 + movs r2, 0xD4 + lsls r2, 2 + adds r0, r4, r2 + ldrh r0, [r0] + cmp r0, r1 + bge _081D270E + adds r0, r1, 0 +_081D270E: + adds r2, r0, 0 + cmp r2, 0x79 + bgt _081D272C + movs r1, 0 + lsls r0, r2, 2 + movs r3, 0xB4 + lsls r3, 1 + adds r0, r3 + adds r0, r4 +_081D2720: + strh r1, [r0] + strh r1, [r0, 0x2] + adds r0, 0x4 + adds r2, 0x1 + cmp r2, 0x79 + ble _081D2720 +_081D272C: + movs r3, 0 + movs r5, 0x92 + lsls r5, 2 + adds r1, r4, r5 + movs r2, 0x41 +_081D2736: + ldrh r0, [r1] + ldrh r4, [r1, 0x2] + cmp r0, r4 + bcc _081D2742 + strh r3, [r1, 0x2] + strh r3, [r1] +_081D2742: + adds r1, 0x4 + subs r2, 0x1 + cmp r2, 0 + bge _081D2736 + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81D2634 + + thumb_func_start sub_81D2754 +sub_81D2754: @ 81D2754 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r6, r0, 0 + mov r8, r1 + ldr r1, =gUnknown_08625410 + ldrb r0, [r6] + adds r0, r1 + ldrb r2, [r0] + adds r6, 0x1 + movs r0, 0x9B + mov r3, r8 + strh r0, [r3] + movs r0, 0x5B + subs r0, r2 + strh r0, [r3, 0x2] + movs r7, 0x40 + movs r0, 0 + mov r12, r0 + movs r2, 0x1 + mov r9, r2 + ldr r3, =gSineTable + mov r10, r3 +_081D2786: + adds r0, r7, 0 + adds r0, 0x33 + lsls r0, 24 + lsrs r7, r0, 24 + mov r1, r12 + lsls r0, r1, 24 + movs r2, 0xFF + lsls r2, 24 + adds r0, r2 + lsrs r3, r0, 24 + mov r12, r3 + cmp r0, 0 + bge _081D27A4 + movs r0, 0x4 + mov r12, r0 +_081D27A4: + mov r1, r12 + lsls r0, r1, 24 + asrs r4, r0, 24 + cmp r4, 0x2 + bne _081D27B4 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 +_081D27B4: + ldrb r0, [r6] + ldr r2, =gUnknown_08625410 + adds r0, r2 + ldrb r2, [r0] + adds r6, 0x1 + lsls r0, r4, 2 + mov r1, r8 + adds r3, r0, r1 + adds r0, r7, 0 + adds r0, 0x40 + lsls r0, 1 + add r0, r10 + movs r1, 0 + ldrsh r0, [r0, r1] + muls r0, r2 + asrs r5, r0, 8 + adds r0, r5, 0 + adds r0, 0x9B + strh r0, [r3] + lsls r0, r7, 1 + add r0, r10 + movs r1, 0 + ldrsh r0, [r0, r1] + adds r1, r2, 0 + muls r1, r0 + asrs r1, 8 + movs r0, 0x5B + subs r0, r1 + strh r0, [r3, 0x2] + cmp r4, 0x2 + bgt _081D2800 + cmp r2, 0x20 + bne _081D27FA + cmp r4, 0x2 + beq _081D2800 +_081D27FA: + adds r0, r5, 0 + adds r0, 0x9C + strh r0, [r3] +_081D2800: + mov r0, r9 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + cmp r0, 0x4 + bls _081D2786 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D2754 + + thumb_func_start sub_81D2824 +sub_81D2824: @ 81D2824 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, =gUnknown_08625510 + bl InitWindows + bl DeactivateAllTextPrinters + movs r0, 0 + movs r1, 0x1 + movs r2, 0xE0 + bl sub_809882C + ldr r0, =gUnknown_0860F074 + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + movs r4, 0 +_081D284A: + adds r0, r4, 0 + movs r1, 0x11 + bl FillWindowPixelBuffer + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bls _081D284A + cmp r5, 0 + bne _081D287C + movs r0, 0 + bl PutWindowTilemap + movs r0, 0 + movs r1, 0 + movs r2, 0x1 + movs r3, 0xE + bl SetWindowBorderStyle + b _081D288E + .pool +_081D287C: + movs r0, 0x1 + bl PutWindowTilemap + movs r0, 0x1 + movs r1, 0 + movs r2, 0x1 + movs r3, 0xE + bl SetWindowBorderStyle +_081D288E: + movs r0, 0x2 + bl PutWindowTilemap + movs r0, 0x3 + bl PutWindowTilemap + movs r0, 0x2 + movs r1, 0 + movs r2, 0x1 + movs r3, 0xE + bl SetWindowBorderStyle + movs r0, 0x3 + movs r1, 0 + movs r2, 0x1 + movs r3, 0xE + bl SetWindowBorderStyle + bl nullsub_79 + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81D2824 + + thumb_func_start nullsub_79 +nullsub_79: @ 81D28C4 + bx lr + thumb_func_end nullsub_79 + + thumb_func_start sub_81D28C8 +sub_81D28C8: @ 81D28C8 + push {r4-r7,lr} + lsls r1, 16 + lsrs r4, r1, 16 + ldr r3, =gUnknown_03006310 + adds r2, r3, 0 + ldr r1, =gUnknown_08625548 + ldm r1!, {r5-r7} + stm r2!, {r5-r7} + ldm r1!, {r5-r7} + stm r2!, {r5-r7} + strh r4, [r3, 0xC] + str r0, [r3] + cmp r4, 0x5 + bhi _081D28F0 + strh r4, [r3, 0xE] + b _081D28F4 + .pool +_081D28F0: + movs r0, 0x6 + strh r0, [r3, 0xE] +_081D28F4: + ldrb r0, [r3, 0xE] + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81D28C8 + + thumb_func_start sub_81D28FC +sub_81D28FC: @ 81D28FC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + mov r9, r0 + movs r0, 0 + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r5, =gUnknown_085EFA31 + movs r0, 0x1 + adds r1, r5, 0 + movs r2, 0x80 + bl GetStringCenterAlignXOffset + adds r4, r0, 0 + lsls r3, r4, 24 + lsrs r3, 24 + movs r0, 0x1 + str r0, [sp] + movs r0, 0xFF + mov r8, r0 + str r0, [sp, 0x4] + movs r7, 0 + str r7, [sp, 0x8] + movs r0, 0 + movs r1, 0x1 + adds r2, r5, 0 + bl Print + ldr r5, =gUnknown_085EFA52 + movs r1, 0x29 + mov r10, r1 + str r1, [sp] + mov r0, r8 + str r0, [sp, 0x4] + str r7, [sp, 0x8] + movs r0, 0 + movs r1, 0x1 + adds r2, r5, 0 + movs r3, 0x4 + bl Print + ldr r5, =gUnknown_085EFA56 + movs r0, 0x1 + adds r1, r5, 0 + movs r2, 0x6A + bl GetStringRightAlignXOffset + adds r4, r0, 0 + lsls r3, r4, 24 + lsrs r3, 24 + movs r1, 0x19 + str r1, [sp] + mov r0, r8 + str r0, [sp, 0x4] + str r7, [sp, 0x8] + movs r0, 0 + movs r1, 0x1 + adds r2, r5, 0 + bl Print + ldr r5, =gUnknown_085EFA5D + movs r0, 0x1 + adds r1, r5, 0 + movs r2, 0x6A + bl GetStringRightAlignXOffset + adds r4, r0, 0 + lsls r3, r4, 24 + lsrs r3, 24 + mov r1, r10 + str r1, [sp] + mov r0, r8 + str r0, [sp, 0x4] + str r7, [sp, 0x8] + movs r0, 0 + movs r1, 0x1 + adds r2, r5, 0 + bl Print + movs r0, 0x2 + negs r0, r0 + cmp r9, r0 + bne _081D29C4 + movs r0, 0 + movs r1, 0x2 + bl CopyWindowToVram + b _081D2AB6 + .pool +_081D29C4: + mov r1, r9 + lsls r0, r1, 1 + add r0, r9 + lsls r0, 2 + ldr r1, =gBattleMoves + adds r6, r0, r1 + ldrb r1, [r6, 0x2] + lsls r0, r1, 3 + subs r0, r1 + ldr r1, =gTypeNames + adds r5, r0, r1 + movs r0, 0x19 + str r0, [sp] + mov r1, r8 + str r1, [sp, 0x4] + str r7, [sp, 0x8] + movs r0, 0 + movs r1, 0x1 + adds r2, r5, 0 + movs r3, 0x4 + bl Print + ldr r1, =gUnknown_085EFA52 + movs r0, 0x1 + movs r2, 0 + bl GetStringWidth + adds r4, r0, 0x4 + ldrb r1, [r6, 0x4] + add r0, sp, 0xC + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + lsls r3, r4, 24 + lsrs r3, 24 + mov r0, r10 + str r0, [sp] + mov r1, r8 + str r1, [sp, 0x4] + str r7, [sp, 0x8] + movs r0, 0 + movs r1, 0x1 + add r2, sp, 0xC + bl Print + ldrb r0, [r6, 0x1] + cmp r0, 0x1 + bhi _081D2A3C + ldr r5, =gUnknown_085E8D45 + b _081D2A4A + .pool +_081D2A3C: + ldrb r1, [r6, 0x1] + add r0, sp, 0xC + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + add r5, sp, 0xC +_081D2A4A: + movs r0, 0x19 + str r0, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + movs r1, 0x1 + adds r2, r5, 0 + movs r3, 0x6A + bl Print + ldrb r0, [r6, 0x3] + cmp r0, 0 + bne _081D2A70 + ldr r5, =gUnknown_085E8D45 + b _081D2A7E + .pool +_081D2A70: + ldrb r1, [r6, 0x3] + add r0, sp, 0xC + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + add r5, sp, 0xC +_081D2A7E: + movs r0, 0x29 + str r0, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] + movs r4, 0 + str r4, [sp, 0x8] + movs r0, 0 + movs r1, 0x1 + adds r2, r5, 0 + movs r3, 0x6A + bl Print + ldr r1, =gMoveDescriptionPointers + mov r0, r9 + subs r0, 0x1 + lsls r0, 2 + adds r0, r1 + ldr r5, [r0] + movs r0, 0x41 + str r0, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0 + movs r1, 0x7 + adds r2, r5, 0 + movs r3, 0 + bl Print +_081D2AB6: + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D28FC + + thumb_func_start sub_81D2ACC +sub_81D2ACC: @ 81D2ACC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + adds r4, r0, 0 + bl sub_816137C + movs r0, 0x1 + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r5, =gUnknown_085EFA3E + movs r0, 0x1 + adds r1, r5, 0 + movs r2, 0x80 + bl GetStringCenterAlignXOffset + lsls r3, r0, 24 + lsrs r3, 24 + movs r0, 0x1 + str r0, [sp] + movs r7, 0xFF + str r7, [sp, 0x4] + movs r6, 0 + str r6, [sp, 0x8] + movs r1, 0x1 + adds r2, r5, 0 + bl Print + ldr r5, =gUnknown_085EFA67 + movs r0, 0x1 + adds r1, r5, 0 + movs r2, 0x5C + bl GetStringRightAlignXOffset + lsls r3, r0, 24 + lsrs r3, 24 + movs r0, 0x19 + mov r8, r0 + str r0, [sp] + str r7, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x1 + adds r2, r5, 0 + bl Print + ldr r5, =gUnknown_085EFA6E + movs r0, 0x1 + adds r1, r5, 0 + movs r2, 0x5C + bl GetStringRightAlignXOffset + lsls r3, r0, 24 + lsrs r3, 24 + movs r0, 0x29 + str r0, [sp] + str r7, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x1 + adds r2, r5, 0 + bl Print + movs r0, 0x2 + negs r0, r0 + cmp r4, r0 + bne _081D2B6C + movs r0, 0x1 + movs r1, 0x2 + bl CopyWindowToVram + b _081D2BB8 + .pool +_081D2B6C: + lsls r4, 3 + ldr r0, =gContestMoves + adds r4, r0 + ldr r1, =gContestMoveTypeTextPointers + ldrb r0, [r4, 0x1] + lsls r0, 29 + lsrs r0, 27 + adds r0, r1 + ldr r5, [r0] + mov r0, r8 + str r0, [sp] + str r7, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x1 + adds r2, r5, 0 + movs r3, 0x4 + bl Print + ldr r1, =gContestEffectDescriptionPointers + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r5, [r0] + movs r0, 0x41 + str r0, [sp] + str r7, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x7 + adds r2, r5, 0 + movs r3, 0 + bl Print + movs r0, 0x1 + movs r1, 0x2 + bl CopyWindowToVram +_081D2BB8: + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D2ACC + + thumb_func_start sub_81D2BD0 +sub_81D2BD0: @ 81D2BD0 + push {r4,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0x1 + beq _081D2BE2 + movs r0, 0x5 + bl PlaySE +_081D2BE2: + adds r0, r4, 0 + bl sub_81D28FC + adds r0, r4, 0 + bl sub_81D2ACC + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81D2BD0 + + thumb_func_start sub_81D2BF4 +sub_81D2BF4: @ 81D2BF4 + push {r4,lr} + sub sp, 0x10 + adds r4, r0, 0 + movs r0, 0x3 + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r2, =gTextFlags + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + bl sav2_get_text_speed + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0 + str r0, [sp] + movs r0, 0x2 + str r0, [sp, 0x4] + movs r0, 0x1 + str r0, [sp, 0x8] + movs r0, 0x3 + str r0, [sp, 0xC] + movs r1, 0x1 + adds r2, r4, 0 + bl AddTextPrinterParametrized + add sp, 0x10 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D2BF4 + + thumb_func_start sub_81D2C3C +sub_81D2C3C: @ 81D2C3C + push {lr} + bl RunTextPrinters + movs r0, 0x3 + bl IsTextPrinterActive + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_81D2C3C + + thumb_func_start sub_81D2C50 +sub_81D2C50: @ 81D2C50 + push {lr} + ldr r0, =gUnknown_08625540 + movs r1, 0x1 + movs r2, 0xE + movs r3, 0 + bl CreateYesNoMenu + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D2C50 + + thumb_func_start sub_81D2C68 +sub_81D2C68: @ 81D2C68 + push {lr} + lsls r0, 16 + lsrs r0, 16 + lsls r1, 16 + lsrs r1, 16 + cmp r0, 0xE + bne _081D2CA8 + cmp r2, 0x2 + beq _081D2C7E + cmp r2, 0x7 + bne _081D2C94 +_081D2C7E: + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + adds r1, r2, 0 + adds r2, r3, 0 + bl GetMonData + b _081D2CCA + .pool +_081D2C94: + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + adds r1, r2, 0 + bl GetMonData + b _081D2CCA + .pool +_081D2CA8: + cmp r2, 0x2 + beq _081D2CB0 + cmp r2, 0x7 + bne _081D2CBE +_081D2CB0: + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + bl sub_80D1ED0 + b _081D2CCA +_081D2CBE: + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + bl get_pokemon_data_from_any_box +_081D2CCA: + pop {r1} + bx r1 + thumb_func_end sub_81D2C68 + + thumb_func_start sub_81D2CD0 +sub_81D2CD0: @ 81D2CD0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + lsls r1, 16 + lsrs r4, r1, 16 + lsls r2, 16 + lsrs r6, r2, 16 + movs r0, 0xFC + strb r0, [r5] + adds r5, 0x1 + movs r0, 0x4 + strb r0, [r5] + adds r5, 0x1 + movs r0, 0x8 + strb r0, [r5] + adds r5, 0x1 + movs r0, 0 + strb r0, [r5] + adds r5, 0x1 + movs r0, 0x9 + strb r0, [r5] + adds r5, 0x1 + adds r0, r4, 0 + adds r1, r6, 0 + movs r2, 0x2D + movs r3, 0 + bl sub_81D2C68 + cmp r0, 0 + beq _081D2D20 + ldr r1, =gUnknown_085E8264 + adds r0, r5, 0 + movs r2, 0 + movs r3, 0xC + bl StringCopyPadded + b _081D2E70 + .pool +_081D2D20: + adds r0, r4, 0 + adds r1, r6, 0 + movs r2, 0x2 + adds r3, r5, 0 + bl sub_81D2C68 + adds r0, r5, 0 + bl StringGetEnd10 + adds r0, r4, 0 + adds r1, r6, 0 + movs r2, 0xB + movs r3, 0 + bl sub_81D2C68 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r4, 0xE + bne _081D2D70 + movs r0, 0x64 + adds r4, r6, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + adds r0, r4, 0 + bl pokemon_get_gender + lsls r0, 24 + lsrs r6, r0, 24 + b _081D2D92 + .pool +_081D2D70: + lsls r0, r4, 24 + lsrs r0, 24 + lsls r1, r6, 24 + lsrs r1, 24 + bl get_pokemon_by_box_and_pos + adds r4, r0, 0 + bl pokemon_roll_gender + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r4, 0 + bl sub_80690C0 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 +_081D2D92: + cmp r7, 0x1D + beq _081D2D9A + cmp r7, 0x20 + bne _081D2DB0 +_081D2D9A: + movs r0, 0xB + adds r1, r7, 0 + muls r1, r0 + ldr r0, =gSpeciesNames + adds r1, r0 + adds r0, r5, 0 + bl StringCompare + cmp r0, 0 + bne _081D2DB0 + movs r6, 0xFF +_081D2DB0: + adds r3, r5, 0 + b _081D2DBA + .pool +_081D2DB8: + adds r3, 0x1 +_081D2DBA: + ldrb r0, [r3] + cmp r0, 0xFF + bne _081D2DB8 + movs r1, 0xFC + strb r1, [r3] + adds r3, 0x1 + movs r0, 0x12 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x3C + strb r0, [r3] + adds r3, 0x1 + cmp r6, 0 + beq _081D2DDE + cmp r6, 0xFE + beq _081D2E02 + movs r0, 0 + b _081D2E24 +_081D2DDE: + strb r1, [r3] + adds r3, 0x1 + movs r0, 0x1 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x4 + strb r0, [r3] + adds r3, 0x1 + strb r1, [r3] + adds r3, 0x1 + movs r0, 0x3 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x5 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0xB5 + b _081D2E24 +_081D2E02: + strb r1, [r3] + adds r3, 0x1 + movs r0, 0x1 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x6 + strb r0, [r3] + adds r3, 0x1 + strb r1, [r3] + adds r3, 0x1 + movs r0, 0x3 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x7 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0xB6 +_081D2E24: + strb r0, [r3] + adds r3, 0x1 + movs r0, 0xFC + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x4 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x8 + strb r0, [r3] + adds r3, 0x1 + movs r4, 0 + strb r4, [r3] + adds r3, 0x1 + movs r0, 0x9 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0xBA + strb r0, [r3] + adds r3, 0x1 + movs r0, 0xF9 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x5 + strb r0, [r3] + adds r3, 0x1 + adds r0, r3, 0 + mov r1, r8 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r3, r0, 0 + strb r4, [r3] + adds r3, 0x1 + movs r0, 0xFF + strb r0, [r3] + adds r0, r3, 0 +_081D2E70: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81D2CD0 + + thumb_func_start sub_81D2E7C +sub_81D2E7C: @ 81D2E7C + push {r4,lr} + adds r4, r0, 0 + lsls r2, 16 + lsrs r2, 16 + b _081D2E94 +_081D2E86: + strb r3, [r4] + adds r1, 0x1 + adds r4, 0x1 + lsls r0, r2, 16 + ldr r2, =0xffff0000 + adds r0, r2 + lsrs r2, r0, 16 +_081D2E94: + ldrb r3, [r1] + adds r0, r3, 0 + cmp r0, 0xFF + bne _081D2E86 + adds r1, r2, 0 + lsls r0, r1, 16 + ldr r2, =0xffff0000 + adds r0, r2 + lsrs r2, r0, 16 + lsls r1, 16 + cmp r1, 0 + ble _081D2EC2 + movs r3, 0 +_081D2EAE: + strb r3, [r4] + adds r4, 0x1 + adds r1, r2, 0 + lsls r0, r1, 16 + ldr r2, =0xffff0000 + adds r0, r2 + lsrs r2, r0, 16 + lsls r1, 16 + cmp r1, 0 + bgt _081D2EAE +_081D2EC2: + movs r0, 0xFF + strb r0, [r4] + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D2E7C + + thumb_func_start sub_81D2ED4 +sub_81D2ED4: @ 81D2ED4 + push {r4-r7,lr} + adds r5, r0, 0 + adds r6, r1, 0 + ldr r0, [sp, 0x14] + ldr r1, [sp, 0x18] + ldr r4, [sp, 0x1C] + lsls r2, 16 + lsrs r7, r2, 16 + lsls r3, 16 + lsrs r3, 16 + lsls r0, 16 + lsrs r2, r0, 16 + lsls r1, 16 + lsrs r0, r1, 16 + lsls r4, 24 + cmp r4, 0 + bne _081D2EFC + subs r0, 0x1 + lsls r0, 16 + lsrs r0, 16 +_081D2EFC: + cmp r2, r0 + beq _081D2F42 + adds r0, r6, 0 + adds r1, r7, 0 + adds r2, r3, 0 + bl sub_81D2CD0 + movs r0, 0xFC + strb r0, [r5] + movs r0, 0x4 + strb r0, [r5, 0x1] + movs r0, 0x8 + strb r0, [r5, 0x2] + movs r0, 0 + strb r0, [r5, 0x3] + movs r0, 0x9 + strb r0, [r5, 0x4] + cmp r7, 0xE + bne _081D2F2C + adds r0, r5, 0x5 + ldr r1, =gUnknown_085EBFCE + b _081D2F3A + .pool +_081D2F2C: + adds r4, r5, 0x5 + lsls r0, r7, 24 + lsrs r0, 24 + bl sav3_get_box_name + adds r1, r0, 0 + adds r0, r4, 0 +_081D2F3A: + movs r2, 0x8 + bl sub_81D2E7C + b _081D2F72 +_081D2F42: + movs r1, 0 + movs r2, 0 +_081D2F46: + adds r0, r6, r1 + strb r2, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0xB + bls _081D2F46 + adds r1, r6, r1 + movs r0, 0xFF + strb r0, [r1] + movs r1, 0 + movs r2, 0 +_081D2F5E: + adds r0, r5, r1 + strb r2, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x7 + bls _081D2F5E + adds r1, r5, r1 + movs r0, 0xFF + strb r0, [r1] +_081D2F72: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81D2ED4 + + thumb_func_start sub_81D2F78 +sub_81D2F78: @ 81D2F78 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r8, r0 + mov r10, r1 + ldr r0, [sp, 0x20] + ldr r1, [sp, 0x24] + ldr r4, [sp, 0x28] + ldr r5, [sp, 0x2C] + lsls r2, 16 + lsrs r7, r2, 16 + lsls r3, 16 + lsrs r6, r3, 16 + lsls r0, 16 + lsrs r2, r0, 16 + lsls r1, 16 + lsrs r1, 16 + mov r9, r1 + lsls r4, 16 + lsrs r0, r4, 16 + lsls r5, 24 + cmp r5, 0 + bne _081D2FB0 + subs r0, 0x1 + lsls r0, 16 + lsrs r0, 16 +_081D2FB0: + cmp r2, r0 + beq _081D305C + adds r0, r7, 0 + adds r1, r6, 0 + movs r2, 0x16 + movs r3, 0 + bl sub_81D2C68 + mov r1, r9 + lsls r5, r1, 2 + adds r4, r5, r1 + mov r2, r8 + adds r1, r2, r4 + strb r0, [r1] + adds r0, r7, 0 + adds r1, r6, 0 + movs r2, 0x2F + movs r3, 0 + bl sub_81D2C68 + mov r1, r8 + adds r1, 0x1 + adds r1, r4 + strb r0, [r1] + adds r0, r7, 0 + adds r1, r6, 0 + movs r2, 0x21 + movs r3, 0 + bl sub_81D2C68 + mov r1, r8 + adds r1, 0x2 + adds r1, r4 + strb r0, [r1] + adds r0, r7, 0 + adds r1, r6, 0 + movs r2, 0x18 + movs r3, 0 + bl sub_81D2C68 + mov r1, r8 + adds r1, 0x3 + adds r1, r4 + strb r0, [r1] + adds r0, r7, 0 + adds r1, r6, 0 + movs r2, 0x17 + movs r3, 0 + bl sub_81D2C68 + mov r1, r8 + adds r1, 0x4 + adds r1, r4 + strb r0, [r1] + mov r4, r10 + add r4, r9 + adds r0, r7, 0 + adds r1, r6, 0 + movs r2, 0x30 + movs r3, 0 + bl sub_81D2C68 + cmp r0, 0xFF + beq _081D3044 + adds r0, r7, 0 + adds r1, r6, 0 + movs r2, 0x30 + movs r3, 0 + bl sub_81D2C68 + movs r1, 0x1D + bl __udivsi3 + b _081D3046 +_081D3044: + movs r0, 0x9 +_081D3046: + strb r0, [r4] + mov r0, r9 + adds r1, r5, r0 + mov r2, r8 + adds r0, r2, r1 + lsls r1, 2 + adds r1, 0x14 + add r1, r8 + bl sub_81D2754 + b _081D3086 +_081D305C: + movs r2, 0 + mov r0, r9 + lsls r5, r0, 2 + adds r1, r5, r0 + movs r6, 0 + lsls r3, r1, 2 + movs r5, 0x9B + movs r4, 0x5B +_081D306C: + adds r0, r2, r1 + add r0, r8 + strb r6, [r0] + lsls r0, r2, 2 + adds r0, r3 + add r0, r8 + strh r5, [r0, 0x14] + strh r4, [r0, 0x16] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x4 + bls _081D306C +_081D3086: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81D2F78 + + thumb_func_start sub_81D3094 +sub_81D3094: @ 81D3094 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + mov r8, r0 + mov r9, r1 + ldr r0, [sp, 0x20] + ldr r1, [sp, 0x24] + ldr r4, [sp, 0x28] + lsls r2, 16 + lsrs r7, r2, 16 + lsls r3, 16 + lsrs r5, r3, 16 + lsls r0, 16 + lsrs r2, r0, 16 + lsls r1, 16 + lsrs r0, r1, 16 + lsls r4, 24 + cmp r4, 0 + bne _081D30C4 + subs r0, 0x1 + lsls r0, 16 + lsrs r0, 16 +_081D30C4: + cmp r2, r0 + beq _081D311A + adds r0, r7, 0 + adds r1, r5, 0 + movs r2, 0x41 + movs r3, 0 + bl sub_81D2C68 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r7, 0 + adds r1, r5, 0 + movs r2, 0x1 + movs r3, 0 + bl sub_81D2C68 + adds r6, r0, 0 + adds r0, r7, 0 + adds r1, r5, 0 + movs r2, 0 + movs r3, 0 + bl sub_81D2C68 + adds r5, r0, 0 + lsls r0, r4, 3 + ldr r1, =gMonFrontPicTable + adds r0, r1 + movs r1, 0x1 + str r1, [sp] + mov r1, r8 + adds r2, r4, 0 + adds r3, r5, 0 + bl LoadSpecialPokePic + adds r0, r4, 0 + adds r1, r6, 0 + adds r2, r5, 0 + bl species_and_otid_get_pal + mov r1, r9 + bl LZ77UnCompWram +_081D311A: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D3094 + + thumb_func_start sub_81D312C +sub_81D312C: @ 81D312C + push {lr} + adds r1, r0, 0 + ldrh r0, [r1] + adds r0, 0x18 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + ble _081D3140 + movs r0, 0 + strh r0, [r1] +_081D3140: + movs r0, 0 + ldrsh r1, [r1, r0] + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + pop {r1} + bx r1 + thumb_func_end sub_81D312C + + thumb_func_start sub_81D3150 +sub_81D3150: @ 81D3150 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1] + subs r0, 0x18 + strh r0, [r1] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x50 + negs r2, r2 + cmp r0, r2 + bge _081D3168 + strh r2, [r1] +_081D3168: + movs r0, 0 + ldrsh r1, [r1, r0] + eors r1, r2 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + pop {r1} + bx r1 + thumb_func_end sub_81D3150 + + thumb_func_start sub_81D3178 +sub_81D3178: @ 81D3178 + push {r4,r5,lr} + adds r5, r1, 0 + bl sub_81D2074 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + bl sub_81D312C + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + cmp r4, 0 + bne _081D319A + cmp r0, 0 + beq _081D319C +_081D319A: + movs r1, 0x1 +_081D319C: + adds r0, r1, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D3178 + + thumb_func_start sub_81D31A4 +sub_81D31A4: @ 81D31A4 + push {r4,r5,lr} + adds r5, r1, 0 + bl sub_81D2074 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + bl sub_81D3150 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + cmp r4, 0 + bne _081D31C6 + cmp r0, 0 + beq _081D31C8 +_081D31C6: + movs r1, 0x1 +_081D31C8: + adds r0, r1, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D31A4 + + thumb_func_start sub_81D31D0 +sub_81D31D0: @ 81D31D0 + push {r4-r7,lr} + sub sp, 0x20 + ldr r3, =gUnknown_08625A48 + ldr r4, [r3] + ldr r5, [r3, 0x4] + str r4, [sp, 0x18] + str r5, [sp, 0x1C] + mov r4, sp + ldr r3, =gUnknown_08625A50 + ldm r3!, {r5-r7} + stm r4!, {r5-r7} + ldm r3!, {r5-r7} + stm r4!, {r5-r7} + ldr r3, =gUnknown_08625A68 + ldr r4, [r3, 0x4] + ldr r3, [r3] + ldr r5, [sp, 0x18] + ldr r6, [sp, 0x1C] + str r5, [r0] + str r6, [r0, 0x4] + mov r0, sp + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + str r3, [r2] + str r4, [r2, 0x4] + add sp, 0x20 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D31D0 + + thumb_func_start sub_81D321C +sub_81D321C: @ 81D321C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x50 + adds r5, r0, 0 + mov r12, r1 + mov r8, r2 + mov r1, sp + ldr r0, =gUnknown_08625A70 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2,r6,r7} + stm r1!, {r2,r6,r7} + ldm r0!, {r3,r4} + stm r1!, {r3,r4} + add r3, sp, 0x20 + adds r1, r3, 0 + ldr r0, =gUnknown_08625A90 + ldm r0!, {r2,r6,r7} + stm r1!, {r2,r6,r7} + ldm r0!, {r4,r6,r7} + stm r1!, {r4,r6,r7} + add r2, sp, 0x38 + adds r1, r2, 0 + ldr r0, =gUnknown_08625AA8 + ldm r0!, {r4,r6,r7} + stm r1!, {r4,r6,r7} + ldm r0!, {r4,r6,r7} + stm r1!, {r4,r6,r7} + movs r4, 0 +_081D3258: + lsls r0, r4, 3 + add r0, sp + ldr r1, [r0, 0x4] + ldr r0, [r0] + stm r5!, {r0,r1} + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _081D3258 + mov r1, r12 + adds r0, r2, 0 + ldm r0!, {r2,r4,r5} + stm r1!, {r2,r4,r5} + ldm r0!, {r2,r6,r7} + stm r1!, {r2,r6,r7} + movs r4, 0 +_081D327A: + lsls r0, r4, 3 + adds r0, r3, r0 + ldr r1, [r0, 0x4] + ldr r0, [r0] + mov r5, r8 + adds r5, 0x8 + mov r8, r5 + subs r5, 0x8 + stm r5!, {r0,r1} + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _081D327A + add sp, 0x50 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D321C + + thumb_func_start sub_81D32B0 +sub_81D32B0: @ 81D32B0 + push {r4,r5,lr} + ldr r2, =gUnknown_08625AC0 + ldr r4, [r2] + ldr r5, [r2, 0x4] + ldr r2, =gUnknown_08625AC8 + ldr r3, [r2, 0x4] + ldr r2, [r2] + str r4, [r0] + str r5, [r0, 0x4] + str r2, [r1] + str r3, [r1, 0x4] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D32B0 + + thumb_func_start sub_81D32D4 +sub_81D32D4: @ 81D32D4 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _081D32F0 + movs r0, 0 + strh r0, [r1, 0x30] + adds r0, r1, 0 + bl sub_81D3408 +_081D32F0: + pop {r0} + bx r0 + thumb_func_end sub_81D32D4 + + thumb_func_start sub_81D32F4 +sub_81D32F4: @ 81D32F4 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _081D330C + movs r0, 0 + strh r0, [r2, 0x30] + ldr r0, =sub_81D32D4 + str r0, [r2, 0x1C] +_081D330C: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D32F4 + + thumb_func_start sub_81D3314 +sub_81D3314: @ 81D3314 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x36 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, =gSprites + adds r3, r1, r0 + cmp r3, 0 + beq _081D3360 + ldrh r1, [r3, 0x24] + ldrh r2, [r3, 0x20] + adds r1, r2 + ldr r2, =gUnknown_08625B2C + movs r5, 0x2E + ldrsh r0, [r4, r5] + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r1, [r3, 0x26] + ldrh r3, [r3, 0x22] + adds r1, r3 + movs r3, 0x2E + ldrsh r0, [r4, r3] + lsls r0, 2 + adds r2, 0x2 + adds r0, r2 + ldrh r0, [r0] + adds r0, r1 + b _081D337E + .pool +_081D3360: + ldr r1, =gUnknown_08625B2C + movs r5, 0x2E + ldrsh r0, [r4, r5] + lsls r0, 2 + adds r0, r1 + ldrh r0, [r0] + adds r0, 0x28 + strh r0, [r4, 0x20] + movs r2, 0x2E + ldrsh r0, [r4, r2] + lsls r0, 2 + adds r1, 0x2 + adds r0, r1 + ldrh r0, [r0] + adds r0, 0x68 +_081D337E: + strh r0, [r4, 0x22] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D3314 + + thumb_func_start sub_81D338C +sub_81D338C: @ 81D338C + push {r4-r7,lr} + mov r7, r8 + push {r7} + mov r8, r2 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + movs r5, 0 +_081D339E: + lsls r0, r5, 2 + mov r1, r8 + adds r4, r0, r1 + ldr r0, [r4] + cmp r0, 0 + beq _081D33F0 + strh r5, [r0, 0x2E] + ldr r1, [r4] + lsls r0, r5, 4 + adds r0, 0x1 + strh r0, [r1, 0x30] + ldr r0, [r4] + strh r6, [r0, 0x32] + ldr r0, [r4] + strh r5, [r0, 0x34] + cmp r7, 0 + beq _081D33C4 + cmp r6, 0x9 + beq _081D33D0 +_081D33C4: + ldr r1, [r4] + ldr r0, =sub_81D3564 + str r0, [r1, 0x1C] + b _081D33F0 + .pool +_081D33D0: + ldr r0, [r4] + bl sub_81D3314 + ldr r0, [r4] + bl sub_81D35E8 + ldr r2, [r4] + ldr r0, =sub_81D32F4 + str r0, [r2, 0x1C] + adds r2, 0x3E + ldrb r0, [r2] + movs r3, 0x5 + negs r3, r3 + adds r1, r3, 0 + ands r0, r1 + strb r0, [r2] +_081D33F0: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x9 + bls _081D339E + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D338C + + thumb_func_start sub_81D3408 +sub_81D3408: @ 81D3408 + push {r4-r7,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x38] + lsls r0, 24 + lsrs r2, r0, 24 + movs r3, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + adds r0, 0x1 + cmp r3, r0 + bge _081D3454 + ldr r5, =gSprites + movs r7, 0x1C + adds r7, r5 + mov r12, r7 + ldr r6, =sub_81D3564 +_081D3428: + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r2, r1, r5 + movs r7, 0x2E + ldrsh r0, [r2, r7] + lsls r0, 4 + adds r0, 0x1 + strh r0, [r2, 0x30] + add r1, r12 + str r6, [r1] + ldrh r0, [r2, 0x38] + lsls r0, 24 + lsrs r2, r0, 24 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + movs r1, 0x32 + ldrsh r0, [r4, r1] + adds r0, 0x1 + cmp r3, r0 + blt _081D3428 +_081D3454: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D3408 + + thumb_func_start sub_81D3464 +sub_81D3464: @ 81D3464 + push {lr} + adds r2, r0, 0 + movs r1, 0 + movs r3, 0 +_081D346C: + lsls r0, r1, 2 + adds r0, r2 + str r3, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x9 + bls _081D346C + pop {r0} + bx r0 + thumb_func_end sub_81D3464 + + thumb_func_start sub_81D3480 +sub_81D3480: @ 81D3480 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r8, r0 + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + lsls r2, 24 + movs r0, 0 + mov r9, r0 + lsrs r7, r2, 24 + movs r5, 0 + adds r0, r7, 0x1 + cmp r9, r0 + bge _081D34FE +_081D34A2: + ldr r0, =gUnknown_08625B14 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + adds r6, r3, 0 + cmp r3, 0x40 + beq _081D34FE + lsls r0, r5, 2 + mov r1, r8 + adds r4, r0, r1 + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + str r0, [r4] + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldr r0, [r4] + mov r1, r10 + strh r1, [r0, 0x36] + cmp r5, 0 + beq _081D34F0 + subs r0, r4, 0x4 + ldr r0, [r0] + strh r3, [r0, 0x38] + b _081D34F2 + .pool +_081D34F0: + mov r9, r6 +_081D34F2: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r7, 0x1 + cmp r5, r0 + blt _081D34A2 +_081D34FE: + lsls r0, r7, 2 + add r0, r8 + ldr r0, [r0] + mov r1, r9 + strh r1, [r0, 0x38] + adds r0, r7, 0 + movs r1, 0x1 + mov r2, r8 + bl sub_81D338C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81D3480 + + thumb_func_start sub_81D3520 +sub_81D3520: @ 81D3520 + push {r4-r6,lr} + adds r6, r0, 0 + movs r5, 0 +_081D3526: + cmp r5, 0x9 + bhi _081D3544 + lsls r0, r5, 2 + adds r4, r0, r6 + ldr r0, [r4] + cmp r0, 0 + beq _081D3544 + bl DestroySprite + movs r0, 0 + str r0, [r4] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + b _081D3526 +_081D3544: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81D3520 + + thumb_func_start sub_81D354C +sub_81D354C: @ 81D354C + push {lr} + bl sub_81D3520 + movs r0, 0x68 + bl FreeSpriteTilesByTag + movs r0, 0x68 + bl FreeSpritePaletteByTag + pop {r0} + bx r0 + thumb_func_end sub_81D354C + + thumb_func_start sub_81D3564 +sub_81D3564: @ 81D3564 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _081D3592 + subs r0, r1, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _081D35DC + adds r0, r4, 0 + movs r1, 0 + bl SeekSpriteAnim + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_081D3592: + adds r0, r4, 0 + bl sub_81D3314 + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _081D35DC + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + movs r0, 0x34 + ldrsh r1, [r4, r0] + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _081D35D8 + cmp r1, 0x9 + bne _081D35D0 + adds r0, r4, 0 + bl sub_81D35E8 + ldr r0, =sub_81D32F4 + b _081D35DA + .pool +_081D35D0: + ldr r0, =sub_81D32D4 + b _081D35DA + .pool +_081D35D8: + ldr r0, =SpriteCallbackDummy +_081D35DA: + str r0, [r4, 0x1C] +_081D35DC: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D3564 + + thumb_func_start sub_81D35E8 +sub_81D35E8: @ 81D35E8 + push {r4-r7,lr} + adds r6, r0, 0 + ldrh r0, [r6, 0x38] + lsls r0, 24 + lsrs r1, r0, 24 + movs r5, 0 + movs r2, 0x32 + ldrsh r0, [r6, r2] + adds r0, 0x1 + cmp r5, r0 + bge _081D3636 + movs r0, 0x5 + negs r0, r0 + adds r7, r0, 0 +_081D3604: + lsls r4, r1, 4 + adds r4, r1 + lsls r4, 2 + ldr r0, =gSprites + adds r4, r0 + adds r0, r4, 0 + movs r1, 0 + bl SeekSpriteAnim + adds r1, r4, 0 + adds r1, 0x3E + ldrb r0, [r1] + ands r0, r7 + strb r0, [r1] + ldrh r0, [r4, 0x38] + lsls r0, 24 + lsrs r1, r0, 24 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + movs r2, 0x32 + ldrsh r0, [r6, r2] + adds r0, 0x1 + cmp r5, r0 + blt _081D3604 +_081D3636: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D35E8 + + thumb_func_start sub_81D3640 +sub_81D3640: @ 81D3640 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + mov r8, r0 + adds r6, r1, 0 + adds r5, r2, 0 + adds r4, r3, 0 + ldr r3, [sp, 0x4C] + ldr r0, [sp, 0x50] + mov r9, r0 + lsls r4, 24 + lsrs r4, 24 + lsls r3, 24 + lsrs r3, 24 + mov r1, r9 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, r4, 4 + orrs r1, r4 + lsls r1, 24 + lsrs r1, 24 + str r3, [sp, 0x28] + bl FillWindowPixelBuffer + add r2, sp, 0xC + ldrh r0, [r5] + ldrh r1, [r6] + subs r0, r1 + strh r0, [r2] + ldrh r0, [r5, 0x2] + ldrh r1, [r6, 0x2] + subs r0, r1 + strh r0, [r2, 0x2] + ldrh r0, [r5, 0x4] + ldrh r1, [r6, 0x4] + subs r0, r1 + strh r0, [r2, 0x4] + ldrh r0, [r5, 0x8] + ldrh r1, [r6, 0x8] + subs r0, r1 + strh r0, [r2, 0x6] + ldrh r0, [r5, 0xA] + ldrh r1, [r6, 0xA] + subs r0, r1 + strh r0, [r2, 0x8] + ldrh r0, [r5, 0x6] + ldrh r1, [r6, 0x6] + subs r0, r1 + strh r0, [r2, 0xA] + add r0, sp, 0x24 + strb r4, [r0] + ldr r3, [sp, 0x28] + strb r3, [r0, 0x1] + mov r1, r9 + strb r1, [r0, 0x2] + movs r7, 0 + mov r10, r0 + movs r0, 0x1 + negs r0, r0 + mov r9, r0 + add r6, sp, 0x18 +_081D36CA: + lsls r0, r7, 4 + subs r0, r7 + lsls r0, 24 + lsrs r5, r0, 24 + mov r1, r10 + str r1, [sp] + mov r0, r9 + str r0, [sp, 0x4] + ldr r1, =gUnknown_08625B54 + lsls r0, r7, 2 + adds r0, r1 + ldr r0, [r0] + str r0, [sp, 0x8] + mov r0, r8 + movs r1, 0x1 + movs r2, 0 + adds r3, r5, 0 + bl box_print + lsls r0, r7, 1 + mov r4, sp + adds r4, r0 + adds r4, 0xC + movs r1, 0 + ldrsh r0, [r4, r1] + ldr r1, =gUnknown_085EEA76 + cmp r0, 0 + blt _081D3704 + ldr r1, =gUnknown_085EEA73 +_081D3704: + adds r0, r6, 0 + bl StringCopy + mov r0, r10 + str r0, [sp] + mov r1, r9 + str r1, [sp, 0x4] + str r6, [sp, 0x8] + mov r0, r8 + movs r1, 0x1 + movs r2, 0x38 + adds r3, r5, 0 + bl box_print + movs r0, 0 + ldrsh r1, [r4, r0] + adds r0, r1, 0 + cmp r1, 0 + bge _081D372C + negs r0, r1 +_081D372C: + movs r4, 0xC + cmp r0, 0x9 + bgt _081D3734 + movs r4, 0x12 +_081D3734: + cmp r1, 0 + bge _081D373A + negs r1, r1 +_081D373A: + adds r0, r6, 0 + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + adds r2, r4, 0 + adds r2, 0x38 + mov r1, r10 + str r1, [sp] + mov r0, r9 + str r0, [sp, 0x4] + str r6, [sp, 0x8] + mov r0, r8 + movs r1, 0x1 + adds r3, r5, 0 + bl box_print + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, 0x5 + bls _081D36CA + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D3640 + + thumb_func_start sub_81D3784 +sub_81D3784: @ 81D3784 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + mov r8, r0 + adds r5, r1, 0 + adds r4, r2, 0 + adds r6, r3, 0 + ldr r2, [sp, 0x4C] + lsls r4, 24 + lsrs r4, 24 + lsls r6, 24 + lsrs r6, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, r4, 4 + orrs r1, r4 + lsls r1, 24 + lsrs r1, 24 + str r2, [sp, 0x28] + bl FillWindowPixelBuffer + add r1, sp, 0xC + ldrh r0, [r5] + strh r0, [r1] + ldrh r0, [r5, 0x2] + strh r0, [r1, 0x2] + ldrh r0, [r5, 0x4] + strh r0, [r1, 0x4] + ldrh r0, [r5, 0x8] + strh r0, [r1, 0x6] + ldrh r0, [r5, 0xA] + strh r0, [r1, 0x8] + ldrh r0, [r5, 0x6] + strh r0, [r1, 0xA] + add r0, sp, 0x24 + strb r4, [r0] + strb r6, [r0, 0x1] + ldr r2, [sp, 0x28] + strb r2, [r0, 0x2] + movs r6, 0 + add r1, sp, 0x18 + mov r9, r1 + mov r7, r8 + mov r10, r0 + movs r2, 0x1 + negs r2, r2 + mov r8, r2 +_081D37EE: + lsls r1, r6, 1 + mov r0, sp + adds r0, r1 + adds r0, 0xC + movs r2, 0 + ldrsh r0, [r0, r2] + movs r4, 0x3 + cmp r0, 0x63 + bgt _081D3808 + movs r4, 0x1 + cmp r0, 0x9 + ble _081D3808 + movs r4, 0x2 +_081D3808: + mov r0, sp + adds r0, r1 + adds r0, 0xC + movs r2, 0 + ldrsh r1, [r0, r2] + mov r0, r9 + movs r2, 0 + adds r3, r4, 0 + bl ConvertIntToDecimalStringN + movs r0, 0x4 + subs r0, r4 + lsls r4, r0, 1 + adds r4, r0 + lsls r4, 17 + lsrs r4, 16 + lsls r5, r6, 4 + subs r5, r6 + lsls r5, 24 + lsrs r5, 24 + mov r0, r10 + str r0, [sp] + mov r1, r8 + str r1, [sp, 0x4] + ldr r1, =gUnknown_08625B54 + lsls r0, r6, 2 + adds r0, r1 + ldr r0, [r0] + str r0, [sp, 0x8] + adds r0, r7, 0 + movs r1, 0x1 + movs r2, 0 + adds r3, r5, 0 + bl box_print + adds r4, 0x38 + lsls r4, 24 + lsrs r4, 24 + mov r2, r10 + str r2, [sp] + mov r0, r8 + str r0, [sp, 0x4] + mov r1, r9 + str r1, [sp, 0x8] + adds r0, r7, 0 + movs r1, 0x1 + adds r2, r4, 0 + adds r3, r5, 0 + bl box_print + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x5 + bls _081D37EE + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D3784 + + thumb_func_start sub_81D388C +sub_81D388C: @ 81D388C + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + movs r1, 0x3A + bl GetMonData + strh r0, [r5] + adds r0, r4, 0 + movs r1, 0x3B + bl GetMonData + strh r0, [r5, 0x2] + adds r0, r4, 0 + movs r1, 0x3C + bl GetMonData + strh r0, [r5, 0x4] + adds r0, r4, 0 + movs r1, 0x3D + bl GetMonData + strh r0, [r5, 0x6] + adds r0, r4, 0 + movs r1, 0x3E + bl GetMonData + strh r0, [r5, 0x8] + adds r0, r4, 0 + movs r1, 0x3F + bl GetMonData + strh r0, [r5, 0xA] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81D388C + + thumb_func_start sub_81D38D4 +sub_81D38D4: @ 81D38D4 + push {lr} + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003d6d + adds r0, r1 + ldrb r1, [r0] + adds r2, r1, 0x1 + adds r0, r2, 0 + asrs r0, 8 + lsls r0, 8 + subs r0, r2, r0 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D38D4 + + thumb_func_start sub_81D38FC +sub_81D38FC: @ 81D38FC + push {r4,r5,lr} + adds r4, r0, 0 + movs r5, 0x9C + lsls r5, 2 + adds r1, r5, 0 + bl CalcByteArraySum + adds r4, r5 + ldr r1, [r4] + cmp r0, r1 + bne _081D3916 + movs r0, 0x1 + b _081D3918 +_081D3916: + movs r0, 0 +_081D3918: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D38FC + + thumb_func_start sub_81D3920 +sub_81D3920: @ 81D3920 + push {r4-r7,lr} + adds r7, r0, 0 + ldrb r6, [r7] + subs r0, r6, 0x1 + cmp r0, 0x7 + bhi _081D3964 + movs r5, 0 + cmp r5, r6 + bcs _081D394C + adds r4, r7, 0 + adds r4, 0x8 +_081D3936: + adds r0, r4, 0 + bl sub_81D38FC + cmp r0, 0 + beq _081D3964 + movs r0, 0x9D + lsls r0, 2 + adds r4, r0 + adds r5, 0x1 + cmp r5, r6 + bcc _081D3936 +_081D394C: + adds r0, r7, 0 + adds r0, 0x8 + movs r1, 0x9D + lsls r1, 2 + muls r1, r6 + bl CalcByteArraySum + ldr r1, [r7, 0x4] + cmp r0, r1 + bne _081D3964 + movs r0, 0x1 + b _081D3966 +_081D3964: + movs r0, 0 +_081D3966: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81D3920 + + thumb_func_start sub_81D396C +sub_81D396C: @ 81D396C + push {r4,lr} + adds r4, r0, 0 + ldrb r0, [r4] + subs r0, 0x1 + cmp r0, 0x7 + bhi _081D398E + adds r0, r4, 0 + adds r0, 0x8 + movs r1, 0xEE + lsls r1, 4 + bl CalcByteArraySum + ldr r1, [r4, 0x4] + cmp r0, r1 + bne _081D398E + movs r0, 0x1 + b _081D3990 +_081D398E: + movs r0, 0 +_081D3990: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81D396C + + thumb_func_start sub_81D3998 +sub_81D3998: @ 81D3998 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r0, 0 + mov r8, r1 + movs r2, 0x80 + lsls r2, 5 + mov r0, r8 + movs r1, 0 + bl memset + ldrb r0, [r7] + mov r1, r8 + strb r0, [r1] + bl sub_81D38D4 + mov r2, r8 + strb r0, [r2, 0x1] + ldrb r0, [r7] + adds r0, 0x1 + asrs r0, 1 + strb r0, [r2, 0x2] + movs r6, 0 + b _081D3A42 +_081D39C8: + movs r0, 0x1 + ands r0, r6 + cmp r0, 0 + bne _081D3A14 + lsrs r0, r6, 31 + adds r0, r6, r0 + asrs r0, 1 + lsls r4, r0, 4 + subs r4, r0 + lsls r4, 3 + subs r4, r0 + lsls r4, 3 + add r4, r8 + movs r0, 0x9D + lsls r0, 2 + adds r5, r6, 0 + muls r5, r0 + adds r5, r7, r5 + ldrb r0, [r5, 0x8] + strb r0, [r4, 0x8] + movs r1, 0xA7 + lsls r1, 2 + adds r0, r4, r1 + movs r2, 0xAA + lsls r2, 1 + adds r1, r5, r2 + subs r2, 0x30 + bl memcpy + adds r4, 0xC + adds r5, 0xC + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0xA4 + lsls r2, 1 + bl memcpy + b _081D3A40 +_081D3A14: + lsrs r1, r6, 31 + adds r1, r6, r1 + asrs r1, 1 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 3 + subs r0, r1 + lsls r0, 3 + add r0, r8 + movs r1, 0x9D + lsls r1, 2 + muls r1, r6 + adds r1, r7, r1 + ldrb r2, [r1, 0x8] + strb r2, [r0, 0x9] + movs r2, 0xAA + lsls r2, 1 + adds r0, r2 + adds r1, 0xC + subs r2, 0xC + bl memcpy +_081D3A40: + adds r6, 0x1 +_081D3A42: + ldrb r0, [r7] + cmp r6, r0 + blt _081D39C8 + movs r0, 0x1 + ands r0, r6 + cmp r0, 0 + beq _081D3A7E + lsrs r2, r6, 31 + adds r2, r6, r2 + asrs r2, 1 + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 3 + subs r0, r2 + lsls r0, 3 + add r0, r8 + movs r1, 0xAA + lsls r1, 1 + adds r0, r1 + ldr r3, =gUnknown_08625B6C + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r2 + lsls r1, 3 + adds r1, r3 + movs r2, 0xA4 + lsls r2, 1 + bl memcpy +_081D3A7E: + mov r0, r8 + adds r0, 0x8 + movs r1, 0xEE + lsls r1, 4 + bl CalcByteArraySum + mov r2, r8 + str r0, [r2, 0x4] + movs r0, 0x1E + mov r1, r8 + bl sub_8153634 + cmp r0, 0x1 + bne _081D3AA4 + movs r0, 0x1 + b _081D3AA6 + .pool +_081D3AA4: + movs r0, 0 +_081D3AA6: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81D3998 + + thumb_func_start sub_81D3AB0 +sub_81D3AB0: @ 81D3AB0 + 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_81D3998 + adds r4, r0, 0 + adds r0, r5, 0 + bl Free + adds r0, r4, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D3AB0 + + thumb_func_start sub_81D3AD8 +sub_81D3AD8: @ 81D3AD8 + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + movs r0, 0x1E + bl sub_81535DC + cmp r0, 0x1 + bne _081D3B04 + ldr r2, =0x00000ee8 + adds r0, r5, 0 + adds r1, r4, 0 + bl memcpy + adds r0, r5, 0 + bl sub_81D396C + cmp r0, 0 + beq _081D3B04 + movs r0, 0x1 + b _081D3B06 + .pool +_081D3B04: + movs r0, 0 +_081D3B06: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D3AD8 + + thumb_func_start sub_81D3B0C +sub_81D3B0C: @ 81D3B0C + 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_81D3AD8 + adds r4, r0, 0 + adds r0, r5, 0 + bl Free + adds r0, r4, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D3B0C + + thumb_func_start sub_81D3B34 +sub_81D3B34: @ 81D3B34 + push {r4,r5,lr} + movs r0, 0x80 + lsls r0, 5 + bl AllocZeroed + adds r4, r0, 0 + bl sub_81D3B0C + 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_81D3B34 + + thumb_func_start sub_81D3B54 +sub_81D3B54: @ 81D3B54 + push {r4-r7,lr} + sub sp, 0x4 + adds r6, r0, 0 + adds r5, r1, 0 + bl sub_81D41A0 + movs r7, 0x2 + ldr r4, =gUnknown_03003144 +_081D3B64: + bl sub_81D4170 + ldr r0, =gUnknown_030012E2 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081D3B76 + strb r7, [r4] +_081D3B76: + movs r0, 0x1 + adds r1, r6, 0 + adds r2, r5, 0 + movs r3, 0 + bl sub_81D3D70 + adds r1, r0, 0 + ldr r0, =gUnknown_030012E4 + strh r1, [r0] + movs r0, 0x13 + ands r0, r1 + cmp r0, 0x10 + bne _081D3BA0 + movs r4, 0 + b _081D3BC2 + .pool +_081D3BA0: + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _081D3BAC + movs r4, 0x1 + b _081D3BC2 +_081D3BAC: + movs r0, 0x4 + ands r0, r1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + bne _081D3BC0 + strb r0, [r4] + bl VBlankIntrWait + b _081D3B64 +_081D3BC0: + movs r4, 0x2 +_081D3BC2: + movs r0, 0 + str r0, [sp] + ldr r1, =gUnknown_030012C8 + ldr r2, =0x05000006 + mov r0, sp + bl CpuSet + bl sub_81D41F4 + adds r0, r4, 0 + add sp, 0x4 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D3B54 + + thumb_func_start sub_81D3BE8 +sub_81D3BE8: @ 81D3BE8 + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r0, 0 + bl sub_81D41A0 + movs r6, 0x2 + ldr r4, =gUnknown_03003144 +_081D3BF6: + bl sub_81D4170 + ldr r0, =gUnknown_030012E2 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081D3C08 + strb r6, [r4] +_081D3C08: + movs r0, 0 + movs r1, 0 + movs r2, 0 + adds r3, r5, 0 + bl sub_81D3D70 + adds r1, r0, 0 + ldr r0, =gUnknown_030012E4 + strh r1, [r0] + movs r0, 0x13 + ands r0, r1 + cmp r0, 0x10 + bne _081D3C34 + movs r4, 0 + b _081D3C56 + .pool +_081D3C34: + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _081D3C40 + movs r4, 0x1 + b _081D3C56 +_081D3C40: + movs r0, 0x4 + ands r0, r1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + bne _081D3C54 + strb r0, [r4] + bl VBlankIntrWait + b _081D3BF6 +_081D3C54: + movs r4, 0x2 +_081D3C56: + movs r0, 0 + str r0, [sp] + ldr r1, =gUnknown_030012C8 + ldr r2, =0x05000006 + mov r0, sp + bl CpuSet + bl sub_81D41F4 + adds r0, r4, 0 + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D3BE8 + + thumb_func_start sub_81D3C7C +sub_81D3C7C: @ 81D3C7C + push {r4,lr} + ldr r4, =0x04000208 + movs r3, 0 + strh r3, [r4] + ldr r2, =0x04000200 + ldrh r1, [r2] + ldr r0, =0x0000ff3f + ands r0, r1 + strh r0, [r2] + movs r0, 0x1 + strh r0, [r4] + ldr r0, =0x04000128 + strh r3, [r0] + subs r0, 0x1A + strh r3, [r0] + ldr r1, =0x04000202 + movs r0, 0xC0 + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D3C7C + + thumb_func_start sub_81D3CBC +sub_81D3CBC: @ 81D3CBC + push {r4-r7,lr} + sub sp, 0x4 + ldr r5, =0x04000208 + movs r4, 0 + strh r4, [r5] + ldr r3, =0x04000200 + ldrh r1, [r3] + ldr r0, =0x0000ff3f + ands r0, r1 + strh r0, [r3] + movs r6, 0x1 + strh r6, [r5] + ldr r0, =0x04000134 + strh r4, [r0] + ldr r2, =0x04000128 + movs r1, 0x80 + lsls r1, 6 + adds r0, r1, 0 + strh r0, [r2] + ldrh r0, [r2] + ldr r7, =0x00004003 + adds r1, r7, 0 + orrs r0, r1 + strh r0, [r2] + strh r4, [r5] + ldrh r0, [r3] + movs r1, 0x80 + orrs r0, r1 + strh r0, [r3] + strh r6, [r5] + ldr r1, =gUnknown_030012C8 + ldrb r0, [r1, 0x1] + cmp r0, 0 + bne _081D3D0A + str r0, [sp] + ldr r2, =0x05000006 + mov r0, sp + bl CpuSet +_081D3D0A: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D3CBC + + thumb_func_start sub_81D3D34 +sub_81D3D34: @ 81D3D34 + ldr r0, =0x04000134 + movs r3, 0 + strh r3, [r0] + ldr r2, =0x04000128 + movs r1, 0xA0 + lsls r1, 7 + adds r0, r1, 0 + strh r0, [r2] + ldrh r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strh r0, [r2] + ldr r0, =gUnknown_03003144 + strb r3, [r0] + ldr r0, =gUnknown_030012E6 + strh r3, [r0] + ldr r1, =gUnknown_030012E8 + movs r0, 0 + str r0, [r1] + bx lr + .pool + thumb_func_end sub_81D3D34 + + thumb_func_start sub_81D3D70 +sub_81D3D70: @ 81D3D70 + push {r4-r6,lr} + adds r4, r1, 0 + adds r5, r2, 0 + adds r6, r3, 0 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, =gUnknown_030012C8 + ldrb r0, [r0, 0x1] + cmp r0, 0x6 + bls _081D3D86 + b _081D3ECC +_081D3D86: + lsls r0, 2 + ldr r1, =_081D3D98 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081D3D98: + .4byte _081D3DB4 + .4byte _081D3DC8 + .4byte _081D3DE8 + .4byte _081D3DFC + .4byte _081D3E74 + .4byte _081D3E84 + .4byte _081D3EBC +_081D3DB4: + bl sub_81D3CBC + ldr r1, =gUnknown_030012C8 + movs r0, 0x1 + strb r0, [r1, 0x2] + strb r0, [r1, 0x1] + b _081D3ECC + .pool +_081D3DC8: + adds r0, r2, 0 + bl sub_81D3EE8 + lsls r0, 16 + cmp r0, 0 + beq _081D3DD8 + bl sub_81D413C +_081D3DD8: + ldr r0, =gUnknown_03003144 + ldrb r0, [r0] + cmp r0, 0x2 + beq _081D3DE2 + b _081D3ECC +_081D3DE2: + b _081D3E04 + .pool +_081D3DE8: + bl sub_81D3D34 + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl sub_81D3F1C + ldr r1, =gUnknown_030012C8 + movs r0, 0x3 + strb r0, [r1, 0x1] +_081D3DFC: + ldr r0, =gUnknown_03003144 + ldrb r0, [r0] + cmp r0, 0x2 + bne _081D3E18 +_081D3E04: + ldr r1, =gUnknown_030012C8 + strb r0, [r1, 0x4] + movs r0, 0x6 + strb r0, [r1, 0x1] + b _081D3ECC + .pool +_081D3E18: + ldr r2, =gUnknown_030012E6 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + ldr r1, =gUnknown_030012E8 + ldr r0, [r1] + adds r3, r0, 0x1 + str r3, [r1] + ldr r1, =gUnknown_030012C8 + ldrb r0, [r1] + cmp r0, 0 + bne _081D3E3C + cmp r3, 0x3C + bls _081D3E3C + movs r0, 0x1 + strb r0, [r1, 0x4] + movs r0, 0x6 + strb r0, [r1, 0x1] +_081D3E3C: + ldr r4, =gUnknown_030012C8 + ldrb r0, [r4, 0x2] + cmp r0, 0x2 + beq _081D3ECC + ldrb r0, [r4] + cmp r0, 0 + beq _081D3E64 + ldrh r0, [r2] + cmp r0, 0x2 + bls _081D3E64 + bl sub_81D413C + movs r0, 0x2 + b _081D3ECA + .pool +_081D3E64: + bl sub_81D413C + ldr r1, =gUnknown_030012C8 + movs r0, 0x2 + strb r0, [r1, 0x2] + b _081D3ECC + .pool +_081D3E74: + bl sub_81D3CBC + ldr r1, =gUnknown_030012C8 + movs r0, 0x5 + strb r0, [r1, 0x1] + b _081D3ECC + .pool +_081D3E84: + ldr r0, =gUnknown_030012C8 + ldrb r0, [r0] + cmp r0, 0x1 + bne _081D3E98 + ldr r0, =gUnknown_030012E6 + ldrh r0, [r0] + cmp r0, 0x2 + bls _081D3E98 + bl sub_81D413C +_081D3E98: + ldr r1, =gUnknown_030012E6 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x3C + bls _081D3ECC + ldr r0, =gUnknown_030012C8 + movs r1, 0x1 + strb r1, [r0, 0x4] + movs r1, 0x6 + strb r1, [r0, 0x1] + b _081D3ECC + .pool +_081D3EBC: + ldr r4, =gUnknown_030012C8 + ldrb r0, [r4, 0x2] + cmp r0, 0 + beq _081D3ECC + bl sub_81D3C7C + movs r0, 0 +_081D3ECA: + strb r0, [r4, 0x2] +_081D3ECC: + ldr r2, =gUnknown_030012C8 + ldrb r0, [r2, 0x2] + ldrb r1, [r2, 0x4] + lsls r1, 2 + orrs r0, r1 + ldrb r1, [r2, 0x3] + lsls r1, 4 + orrs r0, r1 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D3D70 + + thumb_func_start sub_81D3EE8 +sub_81D3EE8: @ 81D3EE8 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, =0x04000128 + ldr r0, [r0] + movs r1, 0xC + ands r0, r1 + cmp r0, 0x8 + bne _081D3F0C + cmp r2, 0 + beq _081D3F0C + ldr r1, =gUnknown_030012C8 + movs r0, 0x1 + b _081D3F10 + .pool +_081D3F0C: + ldr r1, =gUnknown_030012C8 + movs r0, 0 +_081D3F10: + strb r0, [r1] + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D3EE8 + + thumb_func_start sub_81D3F1C +sub_81D3F1C: @ 81D3F1C + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + ldr r3, =gUnknown_030012C8 + ldrb r0, [r3] + cmp r0, 0 + beq _081D3F54 + ldr r2, =0x04000128 + ldrh r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r2] + str r5, [r3, 0x8] + ldr r0, =0x04000120 + str r4, [r0] + lsrs r0, r4, 2 + adds r0, 0x1 + str r0, [r3, 0x10] + bl sub_81D3F68 + b _081D3F5C + .pool +_081D3F54: + ldr r1, =0x04000128 + ldrh r0, [r1] + strh r0, [r1] + str r2, [r3, 0x8] +_081D3F5C: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D3F1C + + thumb_func_start sub_81D3F68 +sub_81D3F68: @ 81D3F68 + ldr r1, =0x0400010c + ldr r2, =0x0000fda7 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, =0x0400010e + movs r2, 0x40 + strh r2, [r0] + ldr r3, =0x04000208 + movs r0, 0 + strh r0, [r3] + adds r1, 0xF4 + ldrh r0, [r1] + orrs r0, r2 + strh r0, [r1] + movs r0, 0x1 + strh r0, [r3] + bx lr + .pool + thumb_func_end sub_81D3F68 + + thumb_func_start sub_81D3F9C +sub_81D3F9C: @ 81D3F9C + push {lr} + bl sub_81D414C + bl sub_81D413C + pop {r0} + bx r0 + thumb_func_end sub_81D3F9C + + thumb_func_start sub_81D3FAC +sub_81D3FAC: @ 81D3FAC + push {r4-r6,lr} + sub sp, 0x8 + ldr r2, =gUnknown_030012C8 + ldrb r0, [r2, 0x1] + adds r3, r2, 0 + cmp r0, 0x3 + beq _081D4034 + cmp r0, 0x3 + bgt _081D3FC8 + cmp r0, 0x1 + beq _081D3FD0 + b _081D412A + .pool +_081D3FC8: + cmp r0, 0x5 + bne _081D3FCE + b _081D40FC +_081D3FCE: + b _081D412A +_081D3FD0: + ldr r1, =0x0400012a + ldr r2, =0x0000ccd0 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, =0x04000120 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r4, 0 + ldr r6, =0x0000ccd0 + ldr r5, =0x0000ffff +_081D3FEC: + lsls r0, r1, 1 + add r0, sp + ldrh r0, [r0] + cmp r0, r6 + bne _081D4010 + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + b _081D401A + .pool +_081D4010: + cmp r0, r5 + beq _081D401A + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_081D401A: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3 + bls _081D3FEC + cmp r2, 0x2 + beq _081D402A + b _081D412A +_081D402A: + cmp r4, 0 + beq _081D4030 + b _081D412A +_081D4030: + strb r2, [r3, 0x1] + b _081D412A +_081D4034: + ldr r0, =0x04000120 + ldr r4, [r0] + ldr r0, [r2, 0xC] + cmp r0, 0 + bne _081D404A + ldrb r0, [r2] + cmp r0, 0 + bne _081D404A + lsrs r0, r4, 2 + adds r0, 0x1 + str r0, [r2, 0x10] +_081D404A: + ldrb r0, [r3] + cmp r0, 0x1 + bne _081D4080 + ldr r1, [r3, 0xC] + ldr r0, [r3, 0x10] + cmp r1, r0 + bge _081D4074 + ldr r2, =0x04000120 + ldr r0, [r3, 0x8] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + str r0, [r2] + ldr r0, [r3, 0x14] + ldr r1, [r1] + adds r0, r1 + str r0, [r3, 0x14] + b _081D40BA + .pool +_081D4074: + ldr r1, =0x04000120 + ldr r0, [r3, 0x14] + b _081D40B8 + .pool +_081D4080: + ldr r1, [r3, 0xC] + cmp r1, 0 + ble _081D40A0 + ldr r0, [r3, 0x10] + adds r0, 0x1 + cmp r1, r0 + bge _081D40A0 + ldr r0, [r3, 0x8] + lsls r1, 2 + adds r1, r0 + subs r1, 0x4 + str r4, [r1] + ldr r0, [r3, 0x14] + adds r0, r4 + str r0, [r3, 0x14] + b _081D40B4 +_081D40A0: + ldr r0, [r3, 0xC] + cmp r0, 0 + beq _081D40B4 + ldr r0, [r3, 0x14] + cmp r0, r4 + bne _081D40B0 + movs r0, 0x1 + b _081D40B2 +_081D40B0: + movs r0, 0x2 +_081D40B2: + strb r0, [r3, 0x3] +_081D40B4: + ldr r1, =gUnknown_030012E8 + movs r0, 0 +_081D40B8: + str r0, [r1] +_081D40BA: + ldr r1, [r3, 0xC] + adds r1, 0x1 + str r1, [r3, 0xC] + ldr r0, [r3, 0x10] + adds r0, 0x2 + cmp r1, r0 + bge _081D40EA + ldrb r0, [r3] + cmp r0, 0 + beq _081D40E4 + ldr r0, =0x0400010e + ldrh r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strh r1, [r0] + b _081D412A + .pool +_081D40E4: + bl sub_81D413C + b _081D412A +_081D40EA: + movs r0, 0 + movs r1, 0x4 + strb r1, [r3, 0x1] + ldr r1, =gUnknown_030012E6 + strh r0, [r1] + b _081D412A + .pool +_081D40FC: + ldrb r3, [r2] + cmp r3, 0 + bne _081D4108 + ldr r1, =0x0400012a + ldrb r0, [r2, 0x3] + strh r0, [r1] +_081D4108: + ldr r0, =0x04000120 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, 0x4] + mov r0, sp + ldrh r1, [r0, 0x2] + subs r0, r1, 0x1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _081D412A + cmp r3, 0x1 + bne _081D4126 + strb r1, [r2, 0x3] +_081D4126: + movs r0, 0x6 + strb r0, [r2, 0x1] +_081D412A: + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D3FAC + + thumb_func_start sub_81D413C +sub_81D413C: @ 81D413C + ldr r0, =0x04000128 + ldrh r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strh r1, [r0] + bx lr + .pool + thumb_func_end sub_81D413C + + thumb_func_start sub_81D414C +sub_81D414C: @ 81D414C + ldr r2, =0x0400010e + ldrh r1, [r2] + ldr r0, =0x0000ff7f + ands r0, r1 + strh r0, [r2] + ldr r1, =0x0400010c + ldr r2, =0x0000fda7 + adds r0, r2, 0 + strh r0, [r1] + bx lr + .pool + thumb_func_end sub_81D414C + + thumb_func_start sub_81D4170 +sub_81D4170: @ 81D4170 + push {r4,lr} + ldr r0, =0x04000130 + ldrh r0, [r0] + ldr r2, =0x000003ff + adds r1, r2, 0 + eors r1, r0 + ldr r4, =gUnknown_030012E2 + ldr r3, =gUnknown_030012E0 + ldrh r2, [r3] + adds r0, r1, 0 + bics r0, r2 + strh r0, [r4] + strh r1, [r3] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D4170 + + thumb_func_start sub_81D41A0 +sub_81D41A0: @ 81D41A0 + ldr r1, =gUnknown_030012EC + ldr r0, =0x04000208 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, =gUnknown_030012EE + ldr r0, =0x04000200 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, =gUnknown_030012F0 + ldr r0, =0x0400010e + ldrh r0, [r0] + strh r0, [r1] + ldr r1, =gUnknown_030012F2 + ldr r0, =0x04000128 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, =gUnknown_030012F4 + ldr r0, =0x04000134 + ldrh r0, [r0] + strh r0, [r1] + bx lr + .pool + thumb_func_end sub_81D41A0 + + thumb_func_start sub_81D41F4 +sub_81D41F4: @ 81D41F4 + ldr r1, =0x04000208 + ldr r0, =gUnknown_030012EC + ldrh r0, [r0] + strh r0, [r1] + subs r1, 0x8 + ldr r0, =gUnknown_030012EE + ldrh r0, [r0] + strh r0, [r1] + subs r1, 0xF2 + ldr r0, =gUnknown_030012F0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x1A + ldr r0, =gUnknown_030012F2 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0xC + ldr r0, =gUnknown_030012F4 + ldrh r0, [r0] + strh r0, [r1] + bx lr + .pool + thumb_func_end sub_81D41F4 + + thumb_func_start sub_81D4238 +sub_81D4238: @ 81D4238 + push {lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + ldr r1, =gUnknown_030012C8 + ldr r2, =0x05000006 + mov r0, sp + bl CpuSet + add sp, 0x4 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D4238 + + thumb_func_start sub_81D4258 +sub_81D4258: @ 81D4258 + push {lr} + sub sp, 0x4 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldrb r1, [r0, 0x5] + ldrb r2, [r0, 0x4] + movs r0, 0x1 + mov r3, sp + bl TryGetFieldObjectIdByLocalIdAndMap + mov r0, sp + ldrb r0, [r0] + add sp, 0x4 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D4258 + + thumb_func_start sub_81D427C +sub_81D427C: @ 81D427C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + bl sub_81D4258 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + ldr r2, =gUnknown_02037350 + adds r5, r1, r2 + ldr r4, =gUnknown_030012F8 + ldr r3, =gUnknown_02037590 + ldrb r1, [r3, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x14] + ldrh r1, [r5, 0x10] + subs r0, r1 + strh r0, [r4] + ldr r4, =gUnknown_030012FA + ldrb r1, [r3, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x16] + ldrh r1, [r5, 0x12] + subs r0, r1 + strh r0, [r4] + movs r0, 0 + mov r8, r0 + ldr r2, =gUnknown_030012FC + movs r1, 0 +_081D42CA: + mov r3, r8 + adds r0, r3, r2 + strb r1, [r0] + mov r0, r8 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + cmp r0, 0x3 + bls _081D42CA + ldr r2, =gUnknown_02037350 + ldr r0, =gUnknown_02037590 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r2, r0, r2 + movs r4, 0x14 + ldrsh r1, [r2, r4] + movs r6, 0x10 + ldrsh r0, [r2, r6] + cmp r1, r0 + bne _081D4304 + movs r0, 0x16 + ldrsh r1, [r2, r0] + movs r3, 0x12 + ldrsh r0, [r2, r3] + cmp r1, r0 + beq _081D4356 +_081D4304: + ldr r0, =0x0000403a + bl VarGet + lsls r0, 16 + movs r1, 0xE0 + lsls r1, 11 + ands r1, r0 + cmp r1, 0 + bne _081D4338 + ldrb r1, [r5, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r1 + b _081D433E + .pool +_081D4338: + ldrb r0, [r5, 0x1] + movs r1, 0x20 + orrs r0, r1 +_081D433E: + strb r0, [r5, 0x1] + ldr r0, =0x0000403a + bl VarGet + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x9 + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + bne _081D4360 +_081D4356: + movs r0, 0 + b _081D4816 + .pool +_081D4360: + movs r4, 0 + mov r8, r4 + ldr r6, =gUnknown_02037350 + mov r10, r6 +_081D4368: + ldr r3, =gUnknown_02037590 + ldrb r1, [r3, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + mov r1, r10 + adds r4, r0, r1 + mov r2, r8 + lsls r1, r2, 2 + ldr r6, =gUnknown_0862608C + adds r0, r1, r6 + movs r6, 0x14 + ldrsh r2, [r4, r6] + movs r6, 0 + ldrsh r0, [r0, r6] + ldr r6, =gUnknown_02037350 + mov r9, r6 + mov r12, r3 + adds r7, r1, 0 + cmp r2, r0 + beq _081D4394 + b _081D449E +_081D4394: + movs r3, 0 + ldr r1, =gUnknown_0862608E + adds r0, r7, r1 + movs r2, 0x16 + ldrsh r1, [r4, r2] + movs r4, 0 + ldrsh r2, [r0, r4] + cmp r1, r2 + bge _081D43C0 + movs r6, 0x12 + ldrsh r0, [r5, r6] + cmp r0, r2 + bgt _081D43CA + b _081D449E + .pool +_081D43C0: + movs r1, 0x12 + ldrsh r0, [r5, r1] + cmp r0, r2 + blt _081D43CA + movs r3, 0x1 +_081D43CA: + cmp r3, 0 + bne _081D449E + ldr r0, =gUnknown_030012F8 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + ble _081D4410 + movs r3, 0x10 + ldrsh r2, [r5, r3] + adds r2, 0x1 + mov r4, r12 + ldrb r1, [r4, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + add r0, r9 + movs r6, 0x14 + ldrsh r0, [r0, r6] + cmp r2, r0 + bne _081D4446 + ldrh r0, [r5, 0x10] + adds r0, 0x1 + lsls r0, 16 + asrs r0, 16 + movs r2, 0x12 + ldrsh r1, [r5, r2] + bl sub_81D4834 + lsls r0, 24 + cmp r0, 0 + beq _081D4446 +_081D4408: + movs r0, 0x4 + b _081D4816 + .pool +_081D4410: + cmp r0, 0 + bge _081D4446 + movs r3, 0x10 + ldrsh r2, [r5, r3] + subs r2, 0x1 + mov r4, r12 + ldrb r1, [r4, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + add r0, r9 + movs r6, 0x14 + ldrsh r0, [r0, r6] + cmp r2, r0 + bne _081D4446 + ldrh r0, [r5, 0x10] + subs r0, 0x1 + lsls r0, 16 + asrs r0, 16 + movs r2, 0x12 + ldrsh r1, [r5, r2] + bl sub_81D4834 + lsls r0, 24 + cmp r0, 0 + beq _081D4446 + b _081D45AA +_081D4446: + ldr r0, =gUnknown_02037590 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + add r0, r10 + movs r3, 0x10 + ldrsh r1, [r5, r3] + movs r4, 0x14 + ldrsh r0, [r0, r4] + cmp r1, r0 + bne _081D449E + ldr r0, =gUnknown_030012FA + movs r6, 0 + ldrsh r0, [r0, r6] + cmp r0, 0 + ble _081D4488 + adds r0, r1, 0 + ldrh r1, [r5, 0x12] + subs r1, 0x1 + lsls r1, 16 + asrs r1, 16 + bl sub_81D4834 + lsls r0, 24 + cmp r0, 0 + beq _081D449E +_081D447C: + movs r0, 0x2 + b _081D4816 + .pool +_081D4488: + movs r2, 0x10 + ldrsh r0, [r5, r2] + ldrh r1, [r5, 0x12] + adds r1, 0x1 + lsls r1, 16 + asrs r1, 16 + bl sub_81D4834 + lsls r0, 24 + cmp r0, 0 + bne _081D4538 +_081D449E: + ldr r2, =gUnknown_02037590 + ldrb r1, [r2, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + mov r3, r10 + adds r4, r0, r3 + ldr r6, =gUnknown_0862608C + ldr r1, =gUnknown_0862608E + adds r0, r7, r1 + movs r3, 0x16 + ldrsh r1, [r4, r3] + movs r3, 0 + ldrsh r0, [r0, r3] + ldr r3, =gUnknown_02037350 + mov r9, r3 + mov r12, r2 + cmp r1, r0 + beq _081D44C6 + b _081D45D0 +_081D44C6: + movs r3, 0 + adds r0, r7, r6 + movs r6, 0x14 + ldrsh r1, [r4, r6] + movs r4, 0 + ldrsh r2, [r0, r4] + cmp r1, r2 + bge _081D44F0 + movs r6, 0x10 + ldrsh r0, [r5, r6] + cmp r0, r2 + bgt _081D44FA + b _081D45D0 + .pool +_081D44F0: + movs r1, 0x10 + ldrsh r0, [r5, r1] + cmp r0, r2 + blt _081D44FA + movs r3, 0x1 +_081D44FA: + cmp r3, 0 + bne _081D45D0 + ldr r0, =gUnknown_030012FA + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + ble _081D4540 + movs r3, 0x12 + ldrsh r2, [r5, r3] + adds r2, 0x1 + mov r4, r12 + ldrb r1, [r4, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + add r0, r9 + movs r6, 0x16 + ldrsh r0, [r0, r6] + cmp r2, r0 + bne _081D4576 + movs r1, 0x10 + ldrsh r0, [r5, r1] + ldrh r1, [r5, 0x12] + adds r1, 0x1 + lsls r1, 16 + asrs r1, 16 + bl sub_81D4834 + lsls r0, 24 + cmp r0, 0 + beq _081D4576 +_081D4538: + movs r0, 0x1 + b _081D4816 + .pool +_081D4540: + cmp r0, 0 + bge _081D4576 + movs r3, 0x12 + ldrsh r2, [r5, r3] + subs r2, 0x1 + mov r4, r12 + ldrb r1, [r4, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + add r0, r9 + movs r6, 0x16 + ldrsh r0, [r0, r6] + cmp r2, r0 + bne _081D4576 + movs r1, 0x10 + ldrsh r0, [r5, r1] + ldrh r1, [r5, 0x12] + subs r1, 0x1 + lsls r1, 16 + asrs r1, 16 + bl sub_81D4834 + lsls r0, 24 + cmp r0, 0 + beq _081D4576 + b _081D447C +_081D4576: + ldr r0, =gUnknown_02037590 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + add r0, r10 + movs r2, 0x12 + ldrsh r1, [r5, r2] + movs r3, 0x16 + ldrsh r0, [r0, r3] + cmp r1, r0 + bne _081D45D0 + ldr r0, =gUnknown_030012F8 + movs r4, 0 + ldrsh r0, [r0, r4] + cmp r0, 0 + ble _081D45B8 + ldrh r0, [r5, 0x10] + subs r0, 0x1 + lsls r0, 16 + asrs r0, 16 + bl sub_81D4834 + lsls r0, 24 + cmp r0, 0 + beq _081D45D0 +_081D45AA: + movs r0, 0x3 + b _081D4816 + .pool +_081D45B8: + ldrh r0, [r5, 0x10] + adds r0, 0x1 + lsls r0, 16 + asrs r0, 16 + movs r2, 0x12 + ldrsh r1, [r5, r2] + bl sub_81D4834 + lsls r0, 24 + cmp r0, 0 + beq _081D45D0 + b _081D4408 +_081D45D0: + mov r0, r8 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + cmp r0, 0x3 + bhi _081D45E0 + b _081D4368 +_081D45E0: + adds r0, r5, 0 + movs r1, 0 + bl sub_81D4C14 + lsls r0, 24 + cmp r0, 0 + beq _081D461C + adds r0, r5, 0 + movs r1, 0x1 + bl sub_81D4C58 + lsls r0, 24 + cmp r0, 0 + beq _081D4604 + movs r0, 0x2 + bl sub_81D4D24 + b _081D4812 +_081D4604: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_81D4CE0 + lsls r0, 24 + cmp r0, 0 + bne _081D4614 + b _081D447C +_081D4614: + movs r0, 0x2 + bl sub_81D4D24 + b _081D4812 +_081D461C: + adds r0, r5, 0 + movs r1, 0 + bl sub_81D4C9C + lsls r0, 24 + cmp r0, 0 + beq _081D4658 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_81D4C58 + lsls r0, 24 + cmp r0, 0 + beq _081D4640 + movs r0, 0x2 + bl sub_81D4D24 + b _081D4812 +_081D4640: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_81D4CE0 + lsls r0, 24 + cmp r0, 0 + bne _081D4650 + b _081D4538 +_081D4650: + movs r0, 0x2 + bl sub_81D4D24 + b _081D4812 +_081D4658: + adds r0, r5, 0 + movs r1, 0 + bl sub_81D4C58 + lsls r0, 24 + cmp r0, 0 + beq _081D4694 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_81D4C14 + lsls r0, 24 + cmp r0, 0 + beq _081D467C + movs r0, 0x2 + bl sub_81D4D24 + b _081D4812 +_081D467C: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_81D4C9C + lsls r0, 24 + cmp r0, 0 + bne _081D468C + b _081D4408 +_081D468C: + movs r0, 0x2 + bl sub_81D4D24 + b _081D4812 +_081D4694: + adds r0, r5, 0 + movs r1, 0 + bl sub_81D4CE0 + lsls r0, 24 + cmp r0, 0 + beq _081D46D0 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_81D4C14 + lsls r0, 24 + cmp r0, 0 + beq _081D46B8 + movs r0, 0x2 + bl sub_81D4D24 + b _081D4812 +_081D46B8: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_81D4C9C + lsls r0, 24 + cmp r0, 0 + bne _081D46C8 + b _081D45AA +_081D46C8: + movs r0, 0x2 + bl sub_81D4D24 + b _081D4812 +_081D46D0: + ldr r0, =gUnknown_030012FA + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r0, 0 + bne _081D476E + ldr r2, =gUnknown_02037350 + ldr r0, =gUnknown_02037590 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r4, 0x12 + ldrsh r1, [r0, r4] + ldrh r2, [r5, 0x12] + movs r6, 0x12 + ldrsh r0, [r5, r6] + cmp r1, r0 + ble _081D470C + movs r1, 0x10 + ldrsh r0, [r5, r1] + subs r1, r2, 0x1 + lsls r1, 16 + asrs r1, 16 + bl sub_81D4834 + lsls r0, 24 + cmp r0, 0 + beq _081D470C + b _081D447C +_081D470C: + ldr r2, =gUnknown_02037350 + ldr r0, =gUnknown_02037590 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r2, 0x12 + ldrsh r1, [r0, r2] + ldrh r2, [r5, 0x12] + movs r3, 0x12 + ldrsh r0, [r5, r3] + cmp r1, r0 + bge _081D473E + movs r4, 0x10 + ldrsh r0, [r5, r4] + adds r1, r2, 0x1 + lsls r1, 16 + asrs r1, 16 + bl sub_81D4834 + lsls r0, 24 + cmp r0, 0 + beq _081D473E + b _081D4538 +_081D473E: + movs r6, 0x10 + ldrsh r0, [r5, r6] + ldrh r1, [r5, 0x12] + subs r1, 0x1 + lsls r1, 16 + asrs r1, 16 + bl sub_81D4834 + lsls r0, 24 + cmp r0, 0 + beq _081D4756 + b _081D447C +_081D4756: + movs r1, 0x10 + ldrsh r0, [r5, r1] + ldrh r1, [r5, 0x12] + adds r1, 0x1 + lsls r1, 16 + asrs r1, 16 + bl sub_81D4834 + lsls r0, 24 + cmp r0, 0 + beq _081D476E + b _081D4538 +_081D476E: + ldr r0, =gUnknown_030012F8 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + bne _081D480C + ldr r2, =gUnknown_02037350 + ldr r0, =gUnknown_02037590 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r3, 0x10 + ldrsh r1, [r0, r3] + ldrh r2, [r5, 0x10] + movs r4, 0x10 + ldrsh r0, [r5, r4] + cmp r1, r0 + ble _081D47AA + subs r0, r2, 0x1 + lsls r0, 16 + asrs r0, 16 + movs r6, 0x12 + ldrsh r1, [r5, r6] + bl sub_81D4834 + lsls r0, 24 + cmp r0, 0 + beq _081D47AA + b _081D45AA +_081D47AA: + ldr r2, =gUnknown_02037350 + ldr r0, =gUnknown_02037590 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r2, 0x10 + ldrsh r1, [r0, r2] + ldrh r2, [r5, 0x10] + movs r3, 0x10 + ldrsh r0, [r5, r3] + cmp r1, r0 + bge _081D47DC + adds r0, r2, 0x1 + lsls r0, 16 + asrs r0, 16 + movs r4, 0x12 + ldrsh r1, [r5, r4] + bl sub_81D4834 + lsls r0, 24 + cmp r0, 0 + beq _081D47DC + b _081D4408 +_081D47DC: + ldrh r0, [r5, 0x10] + adds r0, 0x1 + lsls r0, 16 + asrs r0, 16 + movs r6, 0x12 + ldrsh r1, [r5, r6] + bl sub_81D4834 + lsls r0, 24 + cmp r0, 0 + beq _081D47F4 + b _081D4408 +_081D47F4: + ldrh r0, [r5, 0x10] + subs r0, 0x1 + lsls r0, 16 + asrs r0, 16 + movs r2, 0x12 + ldrsh r1, [r5, r2] + bl sub_81D4834 + lsls r0, 24 + cmp r0, 0 + beq _081D480C + b _081D45AA +_081D480C: + movs r0, 0 + bl sub_81D4890 +_081D4812: + lsls r0, 24 + lsrs r0, 24 +_081D4816: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D427C + + thumb_func_start sub_81D4834 +sub_81D4834: @ 81D4834 + push {r4,lr} + lsls r0, 16 + lsls r1, 16 + lsrs r4, r1, 16 + ldr r3, =gUnknown_02037350 + ldr r1, =gUnknown_02037590 + ldrb r2, [r1, 0x5] + lsls r1, r2, 3 + adds r1, r2 + lsls r1, 2 + adds r2, r1, r3 + movs r3, 0x10 + ldrsh r1, [r2, r3] + lsrs r3, r0, 16 + asrs r0, 16 + cmp r1, r0 + bne _081D4870 + movs r0, 0x12 + ldrsh r1, [r2, r0] + lsls r0, r4, 16 + asrs r0, 16 + cmp r1, r0 + bne _081D4870 + movs r0, 0 + b _081D4888 + .pool +_081D4870: + lsls r0, r3, 16 + asrs r0, 16 + lsls r1, r4, 16 + asrs r1, 16 + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r0, 24 + bl sub_8088E64 + lsls r0, 24 + lsrs r0, 24 +_081D4888: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81D4834 + + thumb_func_start sub_81D4890 +sub_81D4890: @ 81D4890 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + bl sub_81D4258 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + ldr r0, =gUnknown_02037350 + adds r4, r1, r0 + movs r1, 0 + ldr r3, =gUnknown_030012FC + movs r2, 0 +_081D48B0: + adds r0, r1, r3 + strb r2, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bls _081D48B0 + movs r1, 0x10 + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x12] + subs r1, 0x1 + lsls r1, 16 + asrs r1, 16 + bl sub_81D4834 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081D48E8 + cmp r6, 0x2 + beq _081D48E8 + ldr r0, =gUnknown_030012FC + adds r0, r5, r0 + movs r1, 0x2 + strb r1, [r0] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_081D48E8: + ldrh r0, [r4, 0x10] + adds r0, 0x1 + lsls r0, 16 + asrs r0, 16 + movs r2, 0x12 + ldrsh r1, [r4, r2] + bl sub_81D4834 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081D4912 + cmp r6, 0x4 + beq _081D4912 + ldr r0, =gUnknown_030012FC + adds r0, r5, r0 + movs r1, 0x4 + strb r1, [r0] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_081D4912: + movs r1, 0x10 + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x12] + adds r1, 0x1 + lsls r1, 16 + asrs r1, 16 + bl sub_81D4834 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x1 + bne _081D493A + cmp r6, 0x1 + beq _081D493A + ldr r0, =gUnknown_030012FC + adds r0, r5, r0 + strb r1, [r0] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_081D493A: + ldrh r0, [r4, 0x10] + subs r0, 0x1 + lsls r0, 16 + asrs r0, 16 + movs r2, 0x12 + ldrsh r1, [r4, r2] + bl sub_81D4834 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081D4964 + cmp r6, 0x3 + beq _081D4964 + ldr r0, =gUnknown_030012FC + adds r0, r5, r0 + movs r1, 0x3 + strb r1, [r0] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_081D4964: + cmp r5, 0x1 + bhi _081D4974 + ldr r0, =gUnknown_030012FC + b _081D4988 + .pool +_081D4974: + ldr r4, =gUnknown_030012FC + ldr r0, =0x0000403a + bl VarGet + lsls r0, 16 + lsrs r0, 16 + adds r1, r5, 0 + bl __modsi3 + adds r0, r4 +_081D4988: + ldrb r0, [r0] + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D4890 + + thumb_func_start sub_81D4998 +sub_81D4998: @ 81D4998 + push {r4,lr} + ldr r4, =0x0000403a + adds r0, r4, 0 + bl VarGet + lsls r0, 16 + lsrs r2, r0, 16 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldrh r1, [r0, 0x4] + ldr r0, =0x0000391a + cmp r1, r0 + bne _081D49E0 + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldr r0, =0x0000270e + cmp r2, r0 + bls _081D49D8 + adds r0, r4, 0 + movs r1, 0 + bl VarSet + b _081D49E0 + .pool +_081D49D8: + adds r0, r4, 0 + adds r1, r2, 0 + bl VarSet +_081D49E0: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81D4998 + + thumb_func_start FieldObjectIsFarawayIslandMew +@ bool8 FieldObjectIsFarawayIslandMew(struct npc_state *fieldObject) +FieldObjectIsFarawayIslandMew: @ 81D49E8 + push {lr} + adds r2, r0, 0 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldrh r1, [r0, 0x4] + ldr r0, =0x0000391a + cmp r1, r0 + bne _081D4A0C + ldrb r0, [r2, 0x5] + cmp r0, 0xE5 + bne _081D4A0C + movs r0, 0x1 + b _081D4A0E + .pool +_081D4A0C: + movs r0, 0 +_081D4A0E: + pop {r1} + bx r1 + thumb_func_end FieldObjectIsFarawayIslandMew + + thumb_func_start unown_chamber_related +unown_chamber_related: @ 81D4A14 + push {lr} + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldrh r1, [r0, 0x4] + ldr r0, =0x0000391a + cmp r1, r0 + bne _081D4A50 + movs r0, 0xE5 + lsls r0, 1 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081D4A50 + ldr r0, =0x000002ce + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081D4A50 + movs r0, 0x1 + b _081D4A52 + .pool +_081D4A50: + movs r0, 0 +_081D4A52: + pop {r1} + bx r1 + thumb_func_end unown_chamber_related + + thumb_func_start sub_81D4A58 +sub_81D4A58: @ 81D4A58 + push {r4,lr} + ldr r4, =0x0000403a + adds r0, r4, 0 + bl VarGet + lsls r0, 16 + ldr r1, =0xffff0000 + cmp r0, r1 + beq _081D4A88 + adds r0, r4, 0 + bl VarGet + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r0 + cmp r1, 0 + bne _081D4A88 + movs r0, 0x1 + b _081D4A8A + .pool +_081D4A88: + movs r0, 0 +_081D4A8A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81D4A58 + + thumb_func_start sub_81D4A90 +sub_81D4A90: @ 81D4A90 + push {r4-r6,lr} + sub sp, 0x4 + bl sub_81D4258 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + ldr r0, =gUnknown_02037350 + adds r5, r1, r0 + ldrb r1, [r5, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r1 + strb r0, [r5, 0x1] + ldr r0, =gSpecialVar_0x8004 + ldrh r4, [r0] + cmp r4, 0x1 + bne _081D4AF8 + ldrb r0, [r5, 0x3] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r5, 0x3] + ldr r3, =gSprites + ldrb r1, [r5, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x42 + ldrb r2, [r0] + movs r1, 0x3F + ands r1, r2 + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r5, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x43 + strb r4, [r0] + b _081D4BC4 + .pool +_081D4AF8: + ldr r0, =0x0000403a + ldr r1, =0x0000ffff + bl VarSet + ldrb r0, [r5, 0x3] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r5, 0x3] + ldr r6, =gSprites + ldrb r1, [r5, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x42 + ldrb r2, [r0] + movs r1, 0x3F + ands r1, r2 + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] + ldr r0, =gScriptFacing + ldrh r0, [r0] + cmp r0, 0x2 + beq _081D4B3A + ldrb r0, [r5, 0x4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + adds r1, 0x43 + movs r0, 0x1 + strb r0, [r1] +_081D4B3A: + ldr r4, =gFieldEffectObjectPaletteInfo1 + adds r0, r4, 0 + bl LoadSpritePalette + ldrh r0, [r4, 0x4] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + bl sub_80ABE18 + ldrh r1, [r5, 0x10] + mov r0, sp + strh r1, [r0] + ldrh r0, [r5, 0x12] + mov r4, sp + adds r4, 0x2 + strh r0, [r4] + mov r0, sp + adds r1, r4, 0 + movs r2, 0x8 + movs r3, 0x8 + bl sub_80930E0 + ldr r0, =gFieldEffectObjectTemplatePointers + ldr r0, [r0, 0x3C] + mov r1, sp + movs r2, 0 + ldrsh r1, [r1, r2] + movs r3, 0 + ldrsh r2, [r4, r3] + ldrb r4, [r5, 0x4] + lsls r3, r4, 4 + adds r3, r4 + lsls r3, 2 + adds r3, r6 + adds r3, 0x43 + ldrb r3, [r3] + subs r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + bl CreateSpriteAtEnd + ldr r1, =gUnknown_0203CF50 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _081D4BC4 + ldrb r0, [r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + adds r3, r1, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r2, 0x2 + orrs r0, r2 + strb r0, [r3] + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + movs r2, 0x8 + orrs r0, r2 + strb r0, [r1, 0x5] + ldr r0, =SpriteCallbackDummy + str r0, [r1, 0x1C] +_081D4BC4: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D4A90 + + thumb_func_start sub_81D4BEC +sub_81D4BEC: @ 81D4BEC + push {lr} + ldr r1, =gUnknown_0203CF50 + ldrb r0, [r1] + cmp r0, 0x40 + beq _081D4C06 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + bl DestroySprite +_081D4C06: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D4BEC + + thumb_func_start sub_81D4C14 +sub_81D4C14: @ 81D4C14 + push {r4,lr} + adds r2, r0, 0 + lsls r1, 24 + lsrs r4, r1, 24 + ldr r0, =gUnknown_030012FA + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + ble _081D4C50 + movs r1, 0x10 + ldrsh r0, [r2, r1] + ldrh r1, [r2, 0x12] + subs r1, 0x1 + lsls r1, 16 + asrs r1, 16 + bl sub_81D4834 + lsls r0, 24 + cmp r0, 0 + beq _081D4C50 + ldr r0, =gUnknown_030012FC + adds r0, r4, r0 + movs r1, 0x2 + strb r1, [r0] + movs r0, 0x1 + b _081D4C52 + .pool +_081D4C50: + movs r0, 0 +_081D4C52: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81D4C14 + + thumb_func_start sub_81D4C58 +sub_81D4C58: @ 81D4C58 + push {r4,lr} + adds r2, r0, 0 + lsls r1, 24 + lsrs r4, r1, 24 + ldr r0, =gUnknown_030012F8 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bge _081D4C94 + ldrh r0, [r2, 0x10] + adds r0, 0x1 + lsls r0, 16 + asrs r0, 16 + movs r3, 0x12 + ldrsh r1, [r2, r3] + bl sub_81D4834 + lsls r0, 24 + cmp r0, 0 + beq _081D4C94 + ldr r0, =gUnknown_030012FC + adds r0, r4, r0 + movs r1, 0x4 + strb r1, [r0] + movs r0, 0x1 + b _081D4C96 + .pool +_081D4C94: + movs r0, 0 +_081D4C96: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81D4C58 + + thumb_func_start sub_81D4C9C +sub_81D4C9C: @ 81D4C9C + push {r4,lr} + adds r2, r0, 0 + lsls r1, 24 + lsrs r4, r1, 24 + ldr r0, =gUnknown_030012FA + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bge _081D4CD8 + movs r1, 0x10 + ldrsh r0, [r2, r1] + ldrh r1, [r2, 0x12] + adds r1, 0x1 + lsls r1, 16 + asrs r1, 16 + bl sub_81D4834 + lsls r0, 24 + cmp r0, 0 + beq _081D4CD8 + ldr r0, =gUnknown_030012FC + adds r0, r4, r0 + movs r1, 0x1 + strb r1, [r0] + movs r0, 0x1 + b _081D4CDA + .pool +_081D4CD8: + movs r0, 0 +_081D4CDA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81D4C9C + + thumb_func_start sub_81D4CE0 +sub_81D4CE0: @ 81D4CE0 + push {r4,lr} + adds r2, r0, 0 + lsls r1, 24 + lsrs r4, r1, 24 + ldr r0, =gUnknown_030012F8 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + ble _081D4D1C + ldrh r0, [r2, 0x10] + subs r0, 0x1 + lsls r0, 16 + asrs r0, 16 + movs r3, 0x12 + ldrsh r1, [r2, r3] + bl sub_81D4834 + lsls r0, 24 + cmp r0, 0 + beq _081D4D1C + ldr r0, =gUnknown_030012FC + adds r0, r4, r0 + movs r1, 0x3 + strb r1, [r0] + movs r0, 0x1 + b _081D4D1E + .pool +_081D4D1C: + movs r0, 0 +_081D4D1E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81D4CE0 + + thumb_func_start sub_81D4D24 +sub_81D4D24: @ 81D4D24 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, =gUnknown_030012FC + ldr r0, =0x0000403a + bl VarGet + lsls r0, 16 + lsrs r0, 16 + adds r1, r4, 0 + bl __modsi3 + adds r0, r5 + ldrb r0, [r0] + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D4D24 + + thumb_func_start sub_81D4D50 +sub_81D4D50: @ 81D4D50 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x4 + adds r5, r0, 0 + adds r6, r1, 0 + mov r8, r2 + mov r1, sp + ldr r4, =0x04000208 + ldrh r0, [r4] + strh r0, [r1] + movs r0, 0 + strh r0, [r4] + ldr r1, =gIntrTable + ldr r0, =sub_81D3FAC + str r0, [r1, 0x4] + ldr r0, =sub_81D3F9C + str r0, [r1, 0x8] + bl sub_81D41A0 + bl sub_81D4238 + ldr r2, =0x04000200 + ldrh r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strh r0, [r2] + mov r0, sp + ldrh r0, [r0] + strh r0, [r4] + movs r0, 0 + strh r0, [r5] + str r6, [r5, 0x4] + mov r0, r8 + str r0, [r5, 0x8] + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D4D50 + + thumb_func_start sub_81D4DB8 +sub_81D4DB8: @ 81D4DB8 + push {r4,lr} + sub sp, 0x4 + mov r1, sp + ldr r4, =0x04000208 + ldrh r0, [r4] + strh r0, [r1] + movs r0, 0 + strh r0, [r4] + bl sub_81D4238 + bl sub_81D41F4 + bl RestoreSerialTimer3IntrHandlers + mov r0, sp + ldrh r0, [r0] + strh r0, [r4] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D4DB8 + + thumb_func_start sub_81D4DE8 +sub_81D4DE8: @ 81D4DE8 + push {r4,r5,lr} + adds r4, r0, 0 + movs r5, 0 + ldr r1, [r4, 0x4] + ldr r2, [r4, 0x8] + movs r0, 0x1 + movs r3, 0 + bl sub_81D3D70 + adds r1, r0, 0 + strh r1, [r4] + movs r0, 0x13 + ands r0, r1 + cmp r0, 0x10 + bne _081D4E08 + movs r5, 0x1 +_081D4E08: + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _081D4E12 + movs r5, 0x2 +_081D4E12: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _081D4E1C + movs r5, 0x3 +_081D4E1C: + ldr r1, =gUnknown_03003144 + movs r0, 0 + strb r0, [r1] + adds r0, r5, 0 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D4DE8 + + thumb_func_start sub_81D4E30 +sub_81D4E30: @ 81D4E30 + push {lr} + ldr r0, =0x0201c000 + movs r2, 0x80 + lsls r2, 6 + movs r1, 0 + bl memset + ldr r1, =gUnknown_020229C6 + ldr r2, =0x00005503 + adds r0, r2, 0 + strh r0, [r1] + bl sub_8009734 + movs r0, 0x1 + bl sub_800B330 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D4E30 + + thumb_func_start sub_81D4E60 +sub_81D4E60: @ 81D4E60 + push {lr} + sub sp, 0xC + mov r1, sp + ldr r2, =0x04000208 + ldrh r0, [r2] + strh r0, [r1] + movs r0, 0 + strh r0, [r2] + ldr r0, =gUnknown_03003174 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x4] + str r1, [sp, 0x8] + mov r0, sp + ldrh r0, [r0] + strh r0, [r2] + add r2, sp, 0x4 + ldrh r1, [r2] + ldr r0, =0x0000b9a0 + cmp r1, r0 + bne _081D4EB8 + ldrh r1, [r2, 0x2] + ldr r0, =0x0000ccd0 + cmp r1, r0 + bne _081D4EB8 + ldrh r1, [r2, 0x4] + ldr r0, =0x0000ffff + cmp r1, r0 + bne _081D4EB8 + ldrh r0, [r2, 0x6] + cmp r0, r1 + bne _081D4EB8 + movs r0, 0x1 + b _081D4EBA + .pool +_081D4EB8: + movs r0, 0 +_081D4EBA: + add sp, 0xC + pop {r1} + bx r1 + thumb_func_end sub_81D4E60 + + thumb_func_start sub_81D4EC0 +sub_81D4EC0: @ 81D4EC0 + push {lr} + bl sub_800ABBC + lsls r0, 24 + cmp r0, 0 + beq _081D4EDC + bl sub_800ABAC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _081D4EDC + movs r0, 0x1 + b _081D4EDE +_081D4EDC: + movs r0, 0 +_081D4EDE: + pop {r1} + bx r1 + thumb_func_end sub_81D4EC0 + + thumb_func_start sub_81D4EE4 +sub_81D4EE4: @ 81D4EE4 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + ldrb r0, [r4] + subs r0, 0x3 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bhi _081D4F08 + bl sub_800B33C + lsls r0, 24 + cmp r0, 0 + beq _081D4F08 + movs r0, 0 + strb r0, [r4] + movs r0, 0x3 + b _081D500E +_081D4F08: + ldrb r0, [r4] + cmp r0, 0x5 + bls _081D4F10 + b _081D500C +_081D4F10: + lsls r0, 2 + ldr r1, =_081D4F20 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081D4F20: + .4byte _081D4F38 + .4byte _081D4F54 + .4byte _081D4F6C + .4byte _081D4FA0 + .4byte _081D4FEC + .4byte _081D4FF8 +_081D4F38: + bl sub_800ABBC + lsls r0, 24 + cmp r0, 0 + beq _081D4F88 + bl sub_800ABAC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bls _081D4F88 + movs r0, 0x1 + strb r0, [r4] + b _081D500C +_081D4F54: + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x5 + bls _081D500C + movs r0, 0 + strh r0, [r5] + movs r0, 0x2 + strb r0, [r4] + b _081D500C +_081D4F6C: + bl sub_800ABAC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _081D4F88 + movs r0, 0x49 + bl PlaySE + bl sub_800A620 + movs r0, 0 + strh r0, [r5] + b _081D4FE6 +_081D4F88: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081D500C + movs r0, 0 + strb r0, [r4] + movs r0, 0x1 + b _081D500E + .pool +_081D4FA0: + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1E + bls _081D4FB6 + movs r0, 0 + strb r0, [r4] + movs r0, 0x5 + b _081D500E +_081D4FB6: + bl sub_800B320 + lsls r0, 24 + cmp r0, 0 + beq _081D500C + ldr r0, =gUnknown_03003124 + ldrb r0, [r0] + cmp r0, 0 + beq _081D4FE6 + bl sub_800A23C + lsls r0, 24 + cmp r0, 0 + beq _081D4FE0 + movs r0, 0 + strb r0, [r4] + movs r0, 0x2 + b _081D500E + .pool +_081D4FE0: + movs r0, 0x4 + strb r0, [r4] + b _081D500C +_081D4FE6: + movs r0, 0x3 + strb r0, [r4] + b _081D500C +_081D4FEC: + movs r0, 0 + bl sub_800ABF4 + movs r0, 0x5 + strb r0, [r4] + b _081D500C +_081D4FF8: + ldr r0, =gUnknown_03003124 + ldrb r0, [r0] + cmp r0, 0 + bne _081D500C + strb r0, [r4] + movs r0, 0x4 + b _081D500E + .pool +_081D500C: + movs r0, 0 +_081D500E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D4EE4 + + thumb_func_start sub_81D5014 +sub_81D5014: @ 81D5014 + push {r4,lr} + ldr r0, =sub_81D5084 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, =gTasks + 0x8 + adds r4, r0 + movs r0, 0 + strb r0, [r4, 0x8] + strb r0, [r4, 0x9] + strb r0, [r4, 0xA] + strb r0, [r4, 0xB] + strb r0, [r4, 0xC] + strb r0, [r4, 0xD] + movs r1, 0 + strh r0, [r4] + strh r0, [r4, 0x2] + strh r0, [r4, 0x4] + strh r0, [r4, 0x6] + strb r1, [r4, 0xE] + movs r0, 0x40 + bl AllocZeroed + str r0, [r4, 0x10] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D5014 + + thumb_func_start sub_81D505C +sub_81D505C: @ 81D505C + movs r1, 0 + strh r1, [r0] + bx lr + thumb_func_end sub_81D505C + + thumb_func_start sub_81D5064 +sub_81D5064: @ 81D5064 + push {lr} + adds r2, r0, 0 + lsls r1, 16 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + lsls r0, 16 + cmp r0, r1 + bhi _081D507A + movs r0, 0 + b _081D5080 +_081D507A: + movs r0, 0 + strh r0, [r2] + movs r0, 0x1 +_081D5080: + pop {r1} + bx r1 + thumb_func_end sub_81D5064 + + thumb_func_start sub_81D5084 +sub_81D5084: @ 81D5084 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + ldrb r0, [r4, 0x8] + cmp r0, 0x1A + bls _081D509C + b _081D548A +_081D509C: + lsls r0, 2 + ldr r1, =_081D50B0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081D50B0: + .4byte _081D511C + .4byte _081D5138 + .4byte _081D5148 + .4byte _081D515C + .4byte _081D516C + .4byte _081D5198 + .4byte _081D51D0 + .4byte _081D524C + .4byte _081D5268 + .4byte _081D5290 + .4byte _081D52AC + .4byte _081D52DC + .4byte _081D52F2 + .4byte _081D5308 + .4byte _081D536A + .4byte _081D5390 + .4byte _081D53A8 + .4byte _081D53C6 + .4byte _081D53F2 + .4byte _081D5418 + .4byte _081D5448 + .4byte _081D5454 + .4byte _081D5460 + .4byte _081D5430 + .4byte _081D548A + .4byte _081D548A + .4byte _081D5478 +_081D511C: + adds r0, r4, 0 + adds r0, 0x9 + ldr r1, =gUnknown_085EDFD6 + bl mevent_0814257C + cmp r0, 0 + bne _081D512C + b _081D548A +_081D512C: + movs r0, 0x1 + strb r0, [r4, 0x8] + b _081D548A + .pool +_081D5138: + bl sub_81D4E30 + adds r0, r4, 0 + bl sub_81D505C + movs r0, 0x2 + strb r0, [r4, 0x8] + b _081D548A +_081D5148: + adds r0, r4, 0 + movs r1, 0xA + bl sub_81D5064 + cmp r0, 0 + bne _081D5156 + b _081D548A +_081D5156: + movs r0, 0x3 + strb r0, [r4, 0x8] + b _081D548A +_081D515C: + bl sub_81D4EC0 + cmp r0, 0 + beq _081D5166 + b _081D52FC +_081D5166: + bl sub_80097E8 + b _081D525C +_081D516C: + adds r0, r4, 0 + adds r0, 0x9 + ldr r1, =gUnknown_085EDFF5 + bl mevent_0814257C + cmp r0, 0 + bne _081D517C + b _081D548A +_081D517C: + ldr r0, =gUnknown_085EE014 + bl sub_8018884 + adds r0, r4, 0 + bl sub_81D505C + movs r0, 0x5 + strb r0, [r4, 0x8] + b _081D548A + .pool +_081D5198: + adds r0, r4, 0 + movs r1, 0x5A + bl sub_81D5064 + cmp r0, 0 + beq _081D51AE + bl sub_81D4E30 + movs r0, 0x6 + strb r0, [r4, 0x8] + b _081D548A +_081D51AE: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _081D51BC + b _081D548A +_081D51BC: + adds r0, r4, 0 + bl sub_81D505C + movs r0, 0x5 + bl PlaySE + b _081D535A + .pool +_081D51D0: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081D51F4 + movs r0, 0x5 + bl PlaySE + bl sub_80097E8 + adds r0, r4, 0 + bl sub_81D505C + b _081D535A + .pool +_081D51F4: + bl sub_800ABAC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bls _081D5210 + adds r0, r4, 0 + bl sub_81D505C + bl sub_80097E8 + movs r0, 0x7 + strb r0, [r4, 0x8] + b _081D548A +_081D5210: + bl sub_81D4E60 + cmp r0, 0 + beq _081D522E + movs r0, 0x5 + bl PlaySE + bl sub_80097E8 + adds r0, r4, 0 + bl sub_81D505C + movs r0, 0x8 + strb r0, [r4, 0x8] + b _081D548A +_081D522E: + adds r0, r4, 0 + movs r1, 0xA + bl sub_81D5064 + cmp r0, 0 + bne _081D523C + b _081D548A +_081D523C: + bl sub_80097E8 + bl sub_81D4E30 + adds r0, r4, 0 + bl sub_81D505C + b _081D548A +_081D524C: + adds r0, r4, 0 + adds r0, 0x9 + ldr r1, =gUnknown_085EE05C + bl mevent_0814257C + cmp r0, 0 + bne _081D525C + b _081D548A +_081D525C: + movs r0, 0x4 + strb r0, [r4, 0x8] + b _081D548A + .pool +_081D5268: + ldr r0, =gUnknown_085EE097 + bl sub_8018884 + ldr r0, =gUnknown_03006370 + ldr r1, =gUnknown_089A6550 + ldr r2, =gUnknown_089A3470 + subs r1, r2 + bl sub_81D4D50 + movs r0, 0x9 + strb r0, [r4, 0x8] + b _081D548A + .pool +_081D5290: + ldr r0, =gUnknown_03006370 + bl sub_81D4DE8 + strb r0, [r4, 0xE] + lsls r0, 24 + cmp r0, 0 + bne _081D52A0 + b _081D548A +_081D52A0: + movs r0, 0xA + strb r0, [r4, 0x8] + b _081D548A + .pool +_081D52AC: + ldr r0, =gUnknown_03006370 + bl sub_81D4DB8 + ldrb r0, [r4, 0xE] + cmp r0, 0x3 + bne _081D52BA + b _081D53C0 +_081D52BA: + cmp r0, 0x1 + beq _081D52C0 + b _081D546E +_081D52C0: + adds r0, r4, 0 + bl sub_81D505C + ldr r0, =gUnknown_085EE120 + bl sub_8018884 + movs r0, 0xB + strb r0, [r4, 0x8] + b _081D548A + .pool +_081D52DC: + movs r1, 0xD2 + lsls r1, 2 + adds r0, r4, 0 + bl sub_81D5064 + cmp r0, 0 + bne _081D52EC + b _081D548A +_081D52EC: + movs r0, 0xC + strb r0, [r4, 0x8] + b _081D548A +_081D52F2: + bl sub_81D4E30 + ldr r0, =gUnknown_085EE0DC + bl sub_8018884 +_081D52FC: + movs r0, 0xD + strb r0, [r4, 0x8] + b _081D548A + .pool +_081D5308: + adds r0, r4, 0 + adds r0, 0x9 + adds r1, r4, 0 + bl sub_81D4EE4 + cmp r0, 0x5 + bls _081D5318 + b _081D548A +_081D5318: + lsls r0, 2 + ldr r1, =_081D5328 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081D5328: + .4byte _081D548A + .4byte _081D5350 + .4byte _081D5340 + .4byte _081D5374 + .4byte _081D5374 + .4byte _081D5360 +_081D5340: + ldr r0, =gUnknown_085EE097 + bl sub_8018884 + movs r0, 0xE + strb r0, [r4, 0x8] + b _081D548A + .pool +_081D5350: + movs r0, 0x5 + bl PlaySE + bl sub_80097E8 +_081D535A: + movs r0, 0x17 + strb r0, [r4, 0x8] + b _081D548A +_081D5360: + bl sub_80097E8 + movs r0, 0x15 + strb r0, [r4, 0x8] + b _081D548A +_081D536A: + bl sub_800B33C + lsls r0, 24 + cmp r0, 0 + beq _081D537A +_081D5374: + bl sub_80097E8 + b _081D53C0 +_081D537A: + bl sub_800A550 + lsls r0, 24 + cmp r0, 0 + bne _081D5386 + b _081D548A +_081D5386: + bl sub_800A5B4 + movs r0, 0xF + strb r0, [r4, 0x8] + b _081D548A +_081D5390: + ldr r0, =0x0201c000 + bl sub_81D3920 + strb r0, [r4, 0xE] + ldrb r0, [r4, 0xE] + bl sub_800ABF4 + movs r0, 0x10 + strb r0, [r4, 0x8] + b _081D548A + .pool +_081D53A8: + ldr r0, =gUnknown_03003124 + ldrb r0, [r0] + cmp r0, 0 + bne _081D548A + ldrb r0, [r4, 0xE] + cmp r0, 0x1 + bne _081D53C0 + movs r0, 0x11 + strb r0, [r4, 0x8] + b _081D548A + .pool +_081D53C0: + movs r0, 0x14 + strb r0, [r4, 0x8] + b _081D548A +_081D53C6: + ldr r0, =0x0201c000 + bl sub_81D3AB0 + cmp r0, 0 + beq _081D53EC + ldr r0, =gUnknown_085EE0FA + bl sub_8018884 + adds r0, r4, 0 + bl sub_81D505C + movs r0, 0x12 + strb r0, [r4, 0x8] + b _081D548A + .pool +_081D53EC: + movs r0, 0x16 + strb r0, [r4, 0x8] + b _081D548A +_081D53F2: + adds r0, r4, 0 + movs r1, 0x78 + bl sub_81D5064 + cmp r0, 0 + beq _081D548A + ldr r0, =gUnknown_085EE107 + bl sub_8018884 + movs r0, 0xB9 + lsls r0, 1 + bl PlayFanfare + movs r0, 0x13 + strb r0, [r4, 0x8] + b _081D548A + .pool +_081D5418: + bl IsFanfareTaskInactive + lsls r0, 24 + cmp r0, 0 + beq _081D548A + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + b _081D543A + .pool +_081D5430: + adds r0, r4, 0 + adds r0, 0x9 + ldr r1, =gUnknown_085EE06B + bl mevent_0814257C +_081D543A: + cmp r0, 0 + beq _081D548A + movs r0, 0x1A + strb r0, [r4, 0x8] + b _081D548A + .pool +_081D5448: + adds r0, r4, 0 + adds r0, 0x9 + ldr r1, =gUnknown_085EE0A3 + b _081D5466 + .pool +_081D5454: + adds r0, r4, 0 + adds r0, 0x9 + ldr r1, =gUnknown_085EE0BF + b _081D5466 + .pool +_081D5460: + adds r0, r4, 0 + adds r0, 0x9 + ldr r1, =gUnknown_085EE12D +_081D5466: + bl mevent_0814257C + cmp r0, 0 + beq _081D548A +_081D546E: + movs r0, 0 + strb r0, [r4, 0x8] + b _081D548A + .pool +_081D5478: + ldr r0, [r4, 0x10] + bl Free + adds r0, r5, 0 + bl DestroyTask + ldr r0, =sub_80186A4 + bl SetMainCallback2 +_081D548A: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D5084 + + thumb_func_start sp194_trainer_tower +sp194_trainer_tower: @ 81D5494 + push {lr} + bl sub_81D56B0 + ldr r1, =gUnknown_0862A618 + ldr r0, =gSpecialVar_0x8004 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + bl sub_81D5710 + pop {r0} + bx r0 + .pool + thumb_func_end sp194_trainer_tower + + thumb_func_start sub_81D54BC +sub_81D54BC: @ 81D54BC + push {r4-r6,lr} + ldr r4, =gSaveBlock2Ptr + ldr r1, [r4] + ldr r3, =0x00000ef9 + adds r1, r3 + ldrb r2, [r1] + movs r0, 0x7F + ands r0, r2 + strb r0, [r1] + ldr r1, [r4] + adds r1, r3 + ldrb r2, [r1] + movs r0, 0x80 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r2, =gSaveBlock1Ptr + ldr r0, [r2] + ldr r1, =0x00003d68 + adds r0, r1 + movs r1, 0 + str r1, [r0] + adds r6, r2, 0 + ldr r5, =0x00003718 + movs r4, 0x3 +_081D54EE: + ldr r0, [r6] + adds r0, r5 + ldr r1, =0x00034bbf + bl sub_81D5DF4 + adds r5, 0x4 + subs r4, 0x1 + cmp r4, 0 + bge _081D54EE + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D54BC + + thumb_func_start sub_81D5520 +sub_81D5520: @ 81D5520 + ldr r0, =gUnknown_02037318 + ldrb r0, [r0, 0x12] + adds r0, 0x61 + lsls r0, 24 + lsrs r0, 24 + bx lr + .pool + thumb_func_end sub_81D5520 + + thumb_func_start sub_81D5530 +sub_81D5530: @ 81D5530 + lsls r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + ldr r2, =gTrainerClassNameIndices + ldr r1, =gUnknown_0203CF58 + ldr r1, [r1] + adds r1, 0x16 + adds r1, r0 + ldrb r0, [r1] + adds r0, r2 + ldrb r0, [r0] + bx lr + .pool + thumb_func_end sub_81D5530 + + thumb_func_start sub_81D5554 +sub_81D5554: @ 81D5554 + push {r4,lr} + adds r4, r0, 0 + lsls r1, 24 + movs r0, 0xFF + lsls r0, 24 + adds r1, r0 + lsrs r1, 24 + movs r3, 0 + ldr r0, =gUnknown_0203CF58 + ldr r2, [r0] + movs r0, 0xB + muls r0, r1 + adds r2, r0, r2 +_081D556E: + adds r1, r4, r3 + ldrb r0, [r2] + strb r0, [r1] + adds r2, 0x1 + adds r3, 0x1 + cmp r3, 0xA + ble _081D556E + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D5554 + + thumb_func_start sub_81D5588 +sub_81D5588: @ 81D5588 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + bl sub_81D56B0 + subs r4, 0x1 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =gUnknown_0203CF54 + ldr r3, [r0] + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r4 + ldrb r2, [r3] + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 3 + subs r0, r2 + adds r0, r1 + lsls r0, 3 + adds r3, r0 + ldrb r4, [r3, 0x1B] + bl sub_81D5710 + ldr r0, =gTrainerPicIndices + adds r4, r0 + ldrb r0, [r4] + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D5588 + + thumb_func_start sub_81D55D0 +sub_81D55D0: @ 81D55D0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + bl sub_81D56B0 + ldr r4, =gUnknown_0203CF58 + movs r0, 0x18 + bl AllocZeroed + str r0, [r4] + movs r6, 0 + ldr r0, =gUnknown_0203CF54 + mov r10, r0 +_081D55EE: + movs r5, 0 + lsls r1, r6, 2 + mov r8, r1 + adds r0, r6, 0x1 + mov r9, r0 + movs r0, 0xB + adds r1, r6, 0 + muls r1, r0 + mov r12, r1 + mov r1, r8 + adds r0, r1, r6 + lsls r0, 3 + adds r0, r6 + lsls r7, r0, 3 +_081D560A: + ldr r0, =gUnknown_0203CF58 + ldr r4, [r0] + mov r1, r12 + adds r0, r5, r1 + adds r4, r0 + mov r0, r10 + ldr r2, [r0] + adds r3, r5, r7 + ldrb r1, [r2] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 3 + subs r0, r1 + lsls r0, 3 + adds r3, r0 + adds r2, 0x10 + adds r2, r3 + ldrb r0, [r2] + strb r0, [r4] + adds r5, 0x1 + cmp r5, 0xA + ble _081D560A + ldr r1, =gUnknown_0203CF58 + ldr r4, [r1] + adds r4, 0x16 + adds r4, r6 + mov r0, r10 + ldr r3, [r0] + mov r1, r8 + adds r2, r1, r6 + lsls r2, 3 + adds r2, r6 + ldrb r1, [r3] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 3 + subs r0, r1 + adds r0, r2 + lsls r0, 3 + adds r3, r0 + ldrb r0, [r3, 0x1B] + strb r0, [r4] + mov r6, r9 + cmp r6, 0x1 + ble _081D55EE + ldr r1, =gSaveBlock1Ptr + ldr r0, [r1] + ldr r1, =0x00003d64 + adds r0, r1 + bl sub_80008DC + bl sub_81D5710 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D55D0 + + thumb_func_start sub_81D5694 +sub_81D5694: @ 81D5694 + push {r4,lr} + ldr r4, =gUnknown_0203CF58 + ldr r0, [r4] + cmp r0, 0 + beq _081D56A6 + bl Free + movs r0, 0 + str r0, [r4] +_081D56A6: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D5694 + + thumb_func_start sub_81D56B0 +sub_81D56B0: @ 81D56B0 + push {r4,lr} + ldr r4, =gUnknown_0203CF54 + ldr r0, [r4] + cmp r0, 0 + bne _081D56EC + ldr r0, =0x00000eec + bl AllocZeroed + str r0, [r4] + ldr r1, =gUnknown_02037318 + ldrb r1, [r1, 0x12] + adds r1, 0x61 + strb r1, [r0] + ldr r1, =gUnknown_0862A5F8 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r2, =0x00003d6e + adds r0, r2 + ldrb r0, [r0] + lsrs r0, 6 + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, [r4] + adds r1, 0x4 + ldr r2, =0x040003ba + bl CpuSet + bl nullsub_2 +_081D56EC: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D56B0 + + thumb_func_start sub_81D5710 +sub_81D5710: @ 81D5710 + push {r4,lr} + ldr r4, =gUnknown_0203CF54 + ldr r0, [r4] + cmp r0, 0 + beq _081D5722 + bl Free + movs r0, 0 + str r0, [r4] +_081D5722: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D5710 + + thumb_func_start sub_81D572C +sub_81D572C: @ 81D572C + push {r4-r6,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + adds r6, r5, 0 + lsls r4, 16 + lsrs r4, 16 + bl sub_81D56B0 + bl sub_81D5520 + lsls r0, 24 + lsrs r2, r0, 24 + subs r4, 0x1 + lsls r4, 24 + lsrs r4, 24 + cmp r5, 0x3 + beq _081D5790 + cmp r5, 0x3 + bgt _081D575A + cmp r5, 0x2 + beq _081D5764 + b _081D580E +_081D575A: + cmp r6, 0x4 + beq _081D57BC + cmp r6, 0x5 + beq _081D57E8 + b _081D580E +_081D5764: + ldr r0, =gUnknown_0203CF54 + lsls r1, r2, 4 + subs r1, r2 + lsls r1, 3 + subs r1, r2 + lsls r1, 3 + adds r1, 0xC + ldr r0, [r0] + adds r0, r1 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r4 + lsls r1, 3 + adds r1, 0x4 + adds r0, r1 + adds r0, 0x10 + bl ConvertBattleFrontierTrainerSpeechToString + b _081D580E + .pool +_081D5790: + ldr r0, =gUnknown_0203CF54 + lsls r1, r2, 4 + subs r1, r2 + lsls r1, 3 + subs r1, r2 + lsls r1, 3 + adds r1, 0xC + ldr r0, [r0] + adds r0, r1 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r4 + lsls r1, 3 + adds r1, 0x4 + adds r0, r1 + adds r0, 0x1C + bl ConvertBattleFrontierTrainerSpeechToString + b _081D580E + .pool +_081D57BC: + ldr r0, =gUnknown_0203CF54 + lsls r1, r2, 4 + subs r1, r2 + lsls r1, 3 + subs r1, r2 + lsls r1, 3 + adds r1, 0xC + ldr r0, [r0] + adds r0, r1 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r4 + lsls r1, 3 + adds r1, 0x4 + adds r0, r1 + adds r0, 0x28 + bl ConvertBattleFrontierTrainerSpeechToString + b _081D580E + .pool +_081D57E8: + ldr r0, =gUnknown_0203CF54 + lsls r1, r2, 4 + subs r1, r2 + lsls r1, 3 + subs r1, r2 + lsls r1, 3 + adds r1, 0xC + ldr r0, [r0] + adds r0, r1 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r4 + lsls r1, 3 + adds r1, 0x4 + adds r0, r1 + adds r0, 0x34 + bl ConvertBattleFrontierTrainerSpeechToString +_081D580E: + bl sub_81D5710 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D572C + + thumb_func_start sub_81D581C +sub_81D581C: @ 81D581C + push {r4-r6,lr} + bl nullsub_2 + bl sub_81D3B34 + cmp r0, 0 + bne _081D5844 + ldr r3, =gSaveBlock1Ptr + ldr r1, [r3] + ldr r0, =0x00003d6e + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x20 + orrs r0, r2 + b _081D5854 + .pool +_081D5844: + ldr r3, =gSaveBlock1Ptr + ldr r1, [r3] + ldr r0, =0x00003d6e + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x21 + negs r0, r0 + ands r0, r2 +_081D5854: + strb r0, [r1] + adds r6, r3, 0 + ldr r0, [r6] + ldr r1, =0x00003d6c + adds r0, r1 + movs r5, 0 + strb r5, [r0] + ldr r0, [r6] + ldr r4, =0x00003d64 + adds r0, r4 + bl sub_80008DC + ldr r1, [r6] + adds r4, r1, r4 + str r5, [r4] + ldr r3, =0x00003d6e + adds r1, r3 + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r6] + adds r1, r3 + ldrb r2, [r1] + movs r0, 0x3 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r6] + adds r1, r3 + ldrb r2, [r1] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + movs r1, 0xEE + lsls r1, 4 + adds r0, r1 + strb r5, [r0] + ldr r0, =gBattleOutcome + strb r5, [r0] + ldr r1, [r6] + adds r1, r3 + ldrb r2, [r1] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D581C + + thumb_func_start sub_81D58D8 +sub_81D58D8: @ 81D58D8 + push {lr} + bl sub_80008E8 + ldr r3, =gScriptResult + movs r0, 0 + strh r0, [r3] + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003d6e + adds r2, r0, r1 + ldrb r1, [r2] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _081D58FA + movs r0, 0x1 + strh r0, [r3] +_081D58FA: + ldrb r1, [r2] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x3 + bne _081D590A + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r3] +_081D590A: + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D58D8 + + thumb_func_start sub_81D5924 +sub_81D5924: @ 81D5924 + push {r4-r7,lr} + mov r7, r8 + push {r7} + bl sub_81D6640 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, =gUnknown_0203CF54 + ldr r0, [r0] + ldrb r0, [r0, 0x6] + cmp r0, 0x4 + bne _081D5952 + ldr r0, =gSaveBlock1Ptr + mov r8, r0 + ldr r0, [r0] + ldr r7, =0x00003d6e + adds r0, r7 + ldrb r0, [r0] + movs r6, 0x1 + adds r4, r6, 0 + ands r4, r0 + cmp r4, 0 + beq _081D596C +_081D5952: + ldr r1, =gScriptResult + movs r0, 0x2 + strh r0, [r1] + b _081D59C0 + .pool +_081D596C: + adds r0, r5, 0 + movs r1, 0x1 + bl AddBagItem + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081D59BC + ldr r1, =gStringVar2 + adds r0, r5, 0 + bl CopyItemName + mov r0, r8 + ldr r1, [r0] + adds r1, r7 + ldrb r0, [r1] + movs r2, 0x1 + orrs r0, r2 + strb r0, [r1] + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r0, =0x00000ef9 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x80 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r0, =gScriptResult + strh r4, [r0] + b _081D59C0 + .pool +_081D59BC: + ldr r0, =gScriptResult + strh r6, [r0] +_081D59C0: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D5924 + + thumb_func_start sub_81D59D0 +sub_81D59D0: @ 81D59D0 + push {r4-r6,lr} + ldr r4, =gSaveBlock1Ptr + ldr r2, [r4] + ldr r6, =0x00003d6e + adds r0, r2, r6 + ldrb r1, [r0] + movs r3, 0x2 + adds r0, r3, 0 + ands r0, r1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + beq _081D59FC + ldr r0, =gScriptResult + strh r3, [r0] + b _081D5A4E + .pool +_081D59FC: + ldr r1, =0x00003d68 + adds r0, r2, r1 + bl free_203F458 + ldr r2, [r4] + ldr r3, =0x00003d64 + adds r1, r2, r3 + ldr r1, [r1] + cmp r0, r1 + bls _081D5A48 + adds r3, 0x4 + adds r0, r2, r3 + bl sub_81D5DF4 + ldr r2, [r4] + adds r0, r2, r6 + ldrb r0, [r0] + lsrs r0, 6 + lsls r0, 2 + ldr r3, =0x00003718 + adds r1, r2, r3 + adds r1, r0 + ldr r0, =0x00003d68 + adds r2, r0 + ldr r0, [r2] + str r0, [r1] + ldr r0, =gScriptResult + strh r5, [r0] + b _081D5A4E + .pool +_081D5A48: + ldr r1, =gScriptResult + movs r0, 0x1 + strh r0, [r1] +_081D5A4E: + ldr r0, =gSaveBlock1Ptr + ldr r1, [r0] + ldr r3, =0x00003d6e + adds r1, r3 + ldrb r0, [r1] + movs r2, 0x2 + orrs r0, r2 + strb r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D59D0 + + thumb_func_start sub_81D5A70 +sub_81D5A70: @ 81D5A70 + push {lr} + ldr r0, =gSaveBlock1Ptr + ldr r2, [r0] + ldr r1, =0x00003d6e + adds r0, r2, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + bne _081D5AAE + ldr r0, =0x00003d64 + adds r2, r0 + ldr r1, [r2] + ldr r0, =0x00034bbe + cmp r1, r0 + bls _081D5AA8 + adds r0, 0x1 + str r0, [r2] + b _081D5AAE + .pool +_081D5AA8: + adds r0, r2, 0 + bl sub_80008DC +_081D5AAE: + pop {r0} + bx r0 + thumb_func_end sub_81D5A70 + + thumb_func_start sub_81D5AB4 +sub_81D5AB4: @ 81D5AB4 + ldr r0, =gSaveBlock1Ptr + ldr r1, [r0] + ldr r0, =0x00003d6e + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x8 + orrs r0, r2 + strb r0, [r1] + bx lr + .pool + thumb_func_end sub_81D5AB4 + + thumb_func_start sub_81D5AD0 +sub_81D5AD0: @ 81D5AD0 + push {lr} + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003d6e + adds r2, r0, r1 + ldrb r1, [r2] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _081D5B00 + movs r0, 0x9 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldr r1, =gScriptResult + movs r0, 0 + b _081D5B20 + .pool +_081D5B00: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _081D5B1C + movs r0, 0x11 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldr r1, =gScriptResult + movs r0, 0x1 + b _081D5B20 + .pool +_081D5B1C: + ldr r1, =gScriptResult + movs r0, 0x2 +_081D5B20: + strh r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D5AD0 + + thumb_func_start sub_81D5B2C +sub_81D5B2C: @ 81D5B2C + push {r4-r7,lr} + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003d64 + adds r0, r1 + ldr r7, [r0] + ldr r0, =0x00034bbe + cmp r7, r0 + ble _081D5B40 + ldr r7, =0x00034bbf +_081D5B40: + movs r4, 0xE1 + lsls r4, 4 + adds r0, r7, 0 + adds r1, r4, 0 + bl __divsi3 + adds r6, r0, 0 + adds r0, r7, 0 + adds r1, r4, 0 + bl __modsi3 + adds r7, r0, 0 + movs r1, 0x3C + bl __divsi3 + adds r5, r0, 0 + adds r0, r7, 0 + movs r1, 0x3C + bl __modsi3 + adds r7, r0, 0 + movs r0, 0xA8 + muls r0, r7 + movs r1, 0x64 + bl __divsi3 + adds r4, r0, 0 + ldr r0, =gStringVar1 + adds r1, r6, 0 + movs r2, 0x1 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r0, =gStringVar2 + adds r1, r5, 0 + movs r2, 0x1 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r0, =gStringVar3 + adds r1, r4, 0 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D5B2C + + thumb_func_start sub_81D5BBC +sub_81D5BBC: @ 81D5BBC + push {lr} + bl sub_81D56B0 + ldr r0, =gUnknown_0203CF54 + ldr r1, [r0] + ldrb r0, [r1, 0x6] + cmp r0, 0x4 + beq _081D5BEC + ldr r0, =gStringVar1 + ldrb r1, [r1, 0x6] + movs r2, 0 + movs r3, 0x1 + bl ConvertIntToDecimalStringN + ldr r1, =gScriptResult + movs r0, 0 + b _081D5BF0 + .pool +_081D5BEC: + ldr r1, =gScriptResult + movs r0, 0x1 +_081D5BF0: + strh r0, [r1] + bl sub_81D5710 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D5BBC + + thumb_func_start sub_81D5C00 +sub_81D5C00: @ 81D5C00 + push {lr} + bl sub_81D56B0 + ldr r1, =gScriptResult + movs r0, 0 + strh r0, [r1] + bl sub_81D5710 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D5C00 + + thumb_func_start sub_81D5C18 +sub_81D5C18: @ 81D5C18 + push {lr} + ldr r0, =0x000040d6 + bl VarGet + lsls r0, 16 + cmp r0, 0 + beq _081D5C42 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003d6e + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + bne _081D5C42 + bl GetCurrentTrainerHillMapId + lsls r0, 24 + cmp r0, 0 + bne _081D5C54 +_081D5C42: + movs r0, 0 + b _081D5C56 + .pool +_081D5C54: + movs r0, 0x1 +_081D5C56: + pop {r1} + bx r1 + thumb_func_end sub_81D5C18 + + thumb_func_start sub_81D5C5C +sub_81D5C5C: @ 81D5C5C + push {lr} + bl sub_81D5C18 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _081D5C74 + ldr r0, =gScriptResult + strh r1, [r0] + b _081D5C7A + .pool +_081D5C74: + ldr r1, =gScriptResult + movs r0, 0x1 + strh r0, [r1] +_081D5C7A: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D5C5C + + thumb_func_start nullsub_129 +nullsub_129: @ 81D5C84 + bx lr + thumb_func_end nullsub_129 + + thumb_func_start nullsub_2 +nullsub_2: @ 81D5C88 + bx lr + thumb_func_end nullsub_2 + + thumb_func_start sub_81D5C8C +sub_81D5C8C: @ 81D5C8C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + bl sub_81D56B0 + movs r0, 0 + movs r1, 0 + bl FillWindowPixelBuffer + ldr r5, =gUnknown_085EF88A + movs r0, 0x1 + adds r1, r5, 0 + movs r2, 0xD0 + bl GetStringCenterAlignXOffset + lsls r2, r0, 24 + lsrs r2, 24 + ldr r6, =gUnknown_0862A5F4 + str r6, [sp] + movs r4, 0x1 + negs r4, r4 + str r4, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0x1 + movs r3, 0x2 + bl box_print + movs r7, 0x12 + movs r0, 0 + mov r8, r0 + mov r10, r4 + ldr r1, =gStringVar4 + mov r9, r1 +_081D5CD6: + lsls r3, r7, 24 + lsrs r3, 24 + ldr r0, =gUnknown_0862A5F4 + str r0, [sp] + mov r1, r10 + str r1, [sp, 0x4] + ldr r0, =gUnknown_0862A660 + mov r1, r8 + lsls r4, r1, 2 + adds r0, r4, r0 + ldr r0, [r0] + str r0, [sp, 0x8] + movs r0, 0 + movs r1, 0x1 + movs r2, 0 + bl box_print + adds r7, 0xF + ldr r0, =gSaveBlock1Ptr + ldr r1, =0x00003718 + adds r4, r1 + ldr r0, [r0] + adds r0, r4 + bl free_203F458 + adds r4, r0, 0 + movs r5, 0xE1 + lsls r5, 4 + adds r1, r5, 0 + bl __udivsi3 + adds r6, r0, 0 + adds r0, r4, 0 + adds r1, r5, 0 + bl __umodsi3 + adds r5, r0, 0 + ldr r0, =gStringVar1 + adds r1, r6, 0 + movs r2, 0x1 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + adds r0, r5, 0 + movs r1, 0x3C + bl __udivsi3 + adds r4, r0, 0 + adds r0, r5, 0 + movs r1, 0x3C + bl __umodsi3 + adds r5, r0, 0 + ldr r0, =gStringVar2 + adds r1, r4, 0 + movs r2, 0x1 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + movs r0, 0xA8 + muls r0, r5 + movs r1, 0x64 + bl __udivsi3 + adds r1, r0, 0 + ldr r0, =gStringVar3 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + mov r0, r9 + ldr r1, =gUnknown_085EF895 + bl StringCopy + ldr r1, =gUnknown_085EF8A3 + bl StringExpandPlaceholders + movs r0, 0x1 + mov r1, r9 + movs r2, 0xD0 + bl GetStringRightAlignXOffset + lsls r2, r0, 24 + lsrs r2, 24 + lsls r3, r7, 24 + lsrs r3, 24 + ldr r0, =gUnknown_0862A5F4 + str r0, [sp] + mov r1, r10 + str r1, [sp, 0x4] + mov r0, r9 + str r0, [sp, 0x8] + movs r0, 0 + movs r1, 0x1 + bl box_print + adds r7, 0x11 + movs r1, 0x1 + add r8, r1 + mov r0, r8 + cmp r0, 0x3 + ble _081D5CD6 + movs r0, 0 + bl PutWindowTilemap + movs r0, 0 + movs r1, 0x3 + bl CopyWindowToVram + bl sub_81D5710 + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D5C8C + + thumb_func_start free_203F458 +free_203F458: @ 81D5DF0 + ldr r0, [r0] + bx lr + thumb_func_end free_203F458 + + thumb_func_start sub_81D5DF4 +sub_81D5DF4: @ 81D5DF4 + str r1, [r0] + bx lr + thumb_func_end sub_81D5DF4 + + thumb_func_start sub_81D5DF8 +sub_81D5DF8: @ 81D5DF8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + movs r1, 0xC7 + lsls r1, 4 + adds r1, r0, r1 + str r1, [sp, 0x4] + bl sub_81D5F48 + cmp r0, 0 + beq _081D5F0E + bl sub_81D56B0 + movs r7, 0 + ldr r4, =gSaveBlock2Ptr + ldr r3, =0x00000cb4 + ldr r0, =0x0000ffff + adds r2, r0, 0 +_081D5E26: + ldr r1, [r4] + lsls r0, r7, 1 + adds r1, r3 + adds r1, r0 + ldrh r0, [r1] + orrs r0, r2 + strh r0, [r1] + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x1 + bls _081D5E26 + movs r0, 0 + str r0, [sp] + ldr r0, =gSaveBlock1Ptr + ldr r1, [r0] + movs r2, 0xC7 + lsls r2, 4 + adds r1, r2 + ldr r2, =0x05000180 + mov r0, sp + bl CpuSet + bl sub_81D5520 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r7, 0 + ldr r3, =gUnknown_0203CF54 + mov r10, r3 +_081D5E64: + lsls r4, r7, 1 + mov r8, r4 + adds r5, r4, r7 + lsls r5, 3 + ldr r0, [sp, 0x4] + adds r5, r0 + adds r1, r5, 0 + ldr r0, =gUnknown_0862A670 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + adds r6, r7, 0x1 + strb r6, [r5] + mov r0, r10 + ldr r1, [r0] + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r7 + lsls r0, 3 + mov r2, r9 + lsls r4, r2, 4 + subs r4, r2 + lsls r4, 3 + subs r4, r2 + lsls r4, 3 + adds r0, r4 + adds r1, r0 + ldrb r0, [r1, 0x1B] + bl sub_81660B8 + strb r0, [r5, 0x1] + mov r0, r10 + ldr r3, [r0] + adds r0, r7, r4 + movs r2, 0xF0 + lsls r2, 2 + adds r1, r3, r2 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0xF + ands r0, r2 + strh r0, [r5, 0x4] + ldrb r0, [r1] + lsrs r0, 4 + movs r1, 0xF + ands r0, r1 + adds r0, 0x5 + strh r0, [r5, 0x6] + lsls r1, r7, 26 + lsrs r1, 24 + adds r3, r4 + ldr r2, =0x000003c2 + adds r3, r2 + ldrb r0, [r3] + asrs r0, r1 + movs r3, 0xF + ands r0, r3 + adds r0, 0x7 + strb r0, [r5, 0x9] + mov r2, r10 + ldr r0, [r2] + adds r0, r4 + ldr r3, =0x000003c3 + adds r0, r3 + ldrb r0, [r0] + asrs r0, r1 + movs r1, 0xF + ands r0, r1 + strh r0, [r5, 0xE] + ldr r0, =gUnknown_082C83F0 + str r0, [r5, 0x10] + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r4, =0x00000cb4 + adds r0, r4 + add r0, r8 + strh r6, [r0] + lsls r6, 24 + lsrs r7, r6, 24 + cmp r7, 0x1 + bls _081D5E64 + bl sub_81D5710 +_081D5F0E: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D5DF8 + + thumb_func_start sub_81D5F48 +sub_81D5F48: @ 81D5F48 + push {lr} + bl sub_81D56B0 + bl sub_81D5710 + movs r0, 0x1 + pop {r1} + bx r1 + thumb_func_end sub_81D5F48 + + thumb_func_start sub_81D5F58 +sub_81D5F58: @ 81D5F58 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r4, =gUnknown_0203CF54 + ldr r4, [r4] + mov r12, r4 + lsls r4, r2, 1 + lsls r5, r0, 4 + subs r5, r0 + lsls r5, 3 + subs r5, r0 + lsls r5, 3 + adds r4, r5 + movs r0, 0xE8 + lsls r0, 2 + add r0, r12 + adds r0, r4 + ldrh r0, [r0] + movs r4, 0xF + subs r4, r1 + asrs r0, r4 + movs r4, 0x1 + ands r0, r4 + muls r2, r3 + adds r2, r1 + adds r2, r5 + movs r1, 0xA8 + lsls r1, 2 + add r1, r12 + adds r1, r2 + ldrb r1, [r1] + movs r2, 0x80 + lsls r2, 2 + adds r3, r2, 0 + movs r2, 0xC0 + lsls r2, 6 + lsls r0, 10 + orrs r0, r2 + orrs r1, r3 + orrs r0, r1 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D5F58 + + thumb_func_start sub_81D5FB4 +sub_81D5FB4: @ 81D5FB4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r4, r0, 0 + bl GetCurrentTrainerHillMapId + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + cmp r0, 0x6 + bne _081D5FD2 + bl sub_8087D74 + b _081D605E +_081D5FD2: + bl sub_81D56B0 + mov r0, r9 + cmp r0, 0x5 + bne _081D5FE6 + bl sub_8087D74 + bl sub_81D5710 + b _081D605E +_081D5FE6: + bl sub_81D5520 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r0, =gUnknown_02037318 + ldr r0, [r0] + ldr r2, [r0, 0xC] + ldr r1, =gUnknown_03005DC0 + str r4, [r1, 0x8] + movs r0, 0x1F + str r0, [r1] + movs r0, 0x23 + str r0, [r1, 0x4] + movs r0, 0xE0 + lsls r0, 1 + adds r3, r4, r0 + movs r6, 0x4 +_081D600A: + adds r4, r2, 0 + adds r4, 0x20 + adds r1, r3, 0 + movs r5, 0xF +_081D6012: + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x2 + adds r1, 0x2 + subs r5, 0x1 + cmp r5, 0 + bge _081D6012 + adds r3, 0x3E + adds r2, r4, 0 + subs r6, 0x1 + cmp r6, 0 + bge _081D600A + movs r6, 0 +_081D602C: + movs r5, 0 + adds r7, r3, 0 + adds r7, 0x3E + adds r0, r6, 0x1 + mov r8, r0 + adds r4, r3, 0 +_081D6038: + mov r0, r9 + adds r1, r5, 0 + adds r2, r6, 0 + movs r3, 0x10 + bl sub_81D5F58 + strh r0, [r4] + adds r4, 0x2 + adds r5, 0x1 + cmp r5, 0xF + ble _081D6038 + adds r3, r7, 0 + mov r6, r8 + cmp r6, 0xF + ble _081D602C + bl mapheader_run_script_with_tag_x1 + bl sub_81D5710 +_081D605E: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D5FB4 + + thumb_func_start InTrainerHill +InTrainerHill: @ 81D6074 + push {lr} + ldr r1, =gUnknown_02037318 + ldr r2, =0xfffffe61 + adds r0, r2, 0 + ldrh r1, [r1, 0x12] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0 + cmp r0, 0x3 + bhi _081D608C + movs r1, 0x1 +_081D608C: + adds r0, r1, 0 + pop {r1} + bx r1 + .pool + thumb_func_end InTrainerHill + + thumb_func_start GetCurrentTrainerHillMapId +@ u8 GetCurrentTrainerHillMapId() +GetCurrentTrainerHillMapId: @ 81D609C + push {lr} + ldr r0, =gUnknown_02037318 + ldrh r2, [r0, 0x12] + ldr r0, =0x0000019f + cmp r2, r0 + bne _081D60B4 + movs r1, 0x1 + b _081D60F8 + .pool +_081D60B4: + movs r0, 0xD0 + lsls r0, 1 + cmp r2, r0 + bne _081D60C0 + movs r1, 0x2 + b _081D60F8 +_081D60C0: + ldr r0, =0x000001a1 + cmp r2, r0 + bne _081D60D0 + movs r1, 0x3 + b _081D60F8 + .pool +_081D60D0: + movs r0, 0xD1 + lsls r0, 1 + cmp r2, r0 + bne _081D60DC + movs r1, 0x4 + b _081D60F8 +_081D60DC: + ldr r0, =0x000001a3 + cmp r2, r0 + bne _081D60EC + movs r1, 0x5 + b _081D60F8 + .pool +_081D60EC: + movs r0, 0xCF + lsls r0, 1 + movs r1, 0 + cmp r2, r0 + bne _081D60F8 + movs r1, 0x6 +_081D60F8: + adds r0, r1, 0 + pop {r1} + bx r1 + thumb_func_end GetCurrentTrainerHillMapId + + thumb_func_start sub_81D6100 +sub_81D6100: @ 81D6100 + push {lr} + ldr r0, =gUnknown_02037318 + ldrh r1, [r0, 0x12] + ldr r0, =0x000001a3 + movs r2, 0 + cmp r1, r0 + bne _081D6110 + movs r2, 0x1 +_081D6110: + adds r0, r2, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D6100 + + thumb_func_start sub_81D6120 +sub_81D6120: @ 81D6120 + push {lr} + movs r0, 0x1A + movs r1, 0x40 + bl get_mapheader_by_bank_and_number + ldr r0, [r0, 0x4] + ldr r0, [r0, 0x8] + adds r0, 0x8 + pop {r1} + bx r1 + thumb_func_end sub_81D6120 + + thumb_func_start sub_81D6134 +sub_81D6134: @ 81D6134 + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081D614C + ldr r0, =gUnknown_02037318 + ldr r0, [r0, 0x4] + ldr r0, [r0, 0x8] + adds r0, 0x8 + b _081D6176 + .pool +_081D614C: + bl sub_81D6490 + lsls r0, 24 + lsrs r2, r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x3 + bls _081D6162 + movs r2, 0x4 +_081D6162: + ldr r1, =gUnknown_0862A688 + subs r0, r2, 0x1 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x1A + bl get_mapheader_by_bank_and_number + ldr r0, [r0, 0x4] + ldr r0, [r0, 0x8] +_081D6176: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D6134 + + thumb_func_start battle_init +battle_init: @ 81D6180 + lsls r0, 24 + ldr r1, =gSaveBlock2Ptr + ldr r1, [r1] + lsrs r0, 23 + adds r1, r0 + ldr r0, =0x00000cb2 + adds r1, r0 + ldrh r0, [r1] + bx lr + .pool + thumb_func_end battle_init + + thumb_func_start GetTrainerHillTrainerFlag +@ u8 GetTrainerHillTrainerFlag(u8 fieldObjectId) +GetTrainerHillTrainerFlag: @ 81D619C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_81D5520 + lsls r0, 24 + lsrs r0, 23 + ldr r2, =gUnknown_02037350 + lsls r1, r4, 3 + adds r1, r4 + lsls r1, 2 + adds r1, r2 + adds r0, 0xFF + ldrb r1, [r1, 0x8] + adds r0, r1 + lsls r0, 24 + ldr r1, =gSaveBlock2Ptr + ldr r1, [r1] + movs r2, 0xEE + lsls r2, 4 + adds r1, r2 + ldr r2, =gBitTable + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + ldrb r1, [r1] + ands r0, r1 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end GetTrainerHillTrainerFlag + + thumb_func_start sub_81D61E8 +sub_81D61E8: @ 81D61E8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + bl sub_81D5520 + lsls r0, 25 + lsrs r4, r0, 24 + movs r3, 0 + ldr r0, =gUnknown_02038BCA + mov r8, r0 + ldr r6, =gSaveBlock2Ptr + ldr r1, =gBitTable + mov r12, r1 + adds r5, r6, 0 +_081D6204: + ldr r2, [r5] + lsls r0, r3, 1 + ldr r7, =0x00000cb4 + adds r1, r2, r7 + adds r1, r0 + ldrh r0, [r1] + mov r1, r8 + ldrh r1, [r1] + cmp r0, r1 + bne _081D6240 + movs r7, 0xEE + lsls r7, 4 + adds r2, r7 + adds r0, r4, r3 + lsls r0, 2 + add r0, r12 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + b _081D624A + .pool +_081D6240: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x1 + bls _081D6204 +_081D624A: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _081D62A2 + movs r3, 0 + ldr r5, =gUnknown_02038BCC + ldr r0, =gBitTable + mov r8, r0 +_081D6260: + ldr r2, [r6] + lsls r0, r3, 1 + ldr r7, =0x00000cb4 + adds r1, r2, r7 + adds r1, r0 + ldrh r0, [r1] + ldrh r1, [r5] + cmp r0, r1 + bne _081D6298 + movs r7, 0xEE + lsls r7, 4 + adds r2, r7 + adds r0, r4, r3 + lsls r0, 2 + add r0, r8 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + b _081D62A2 + .pool +_081D6298: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x1 + bls _081D6260 +_081D62A2: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81D61E8 + + thumb_func_start sub_81D62AC +sub_81D62AC: @ 81D62AC + ldr r0, =gUnknown_082C83F0 + bx lr + .pool + thumb_func_end sub_81D62AC + + thumb_func_start sub_81D62B4 +sub_81D62B4: @ 81D62B4 + push {lr} + ldr r0, =gScriptLastTalked + ldrh r1, [r0] + movs r0, 0x5 + bl sub_81D572C + bl sub_80982B8 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D62B4 + + thumb_func_start sub_81D62CC +sub_81D62CC: @ 81D62CC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 16 + lsrs r0, 16 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + subs r1, r0, 0x1 + lsls r0, r1, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _081D636A + lsls r0, r1, 24 + lsrs r6, r0, 24 + bl sub_81D56B0 + bl sub_8165CB4 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + bl sub_81D5520 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + mov r5, r9 + adds r0, r5, 0x3 + cmp r5, r0 + bge _081D6366 + ldr r1, =gUnknown_0862A698 + lsls r0, r6, 1 + adds r0, r6 + adds r7, r0, r1 +_081D6316: + ldrb r2, [r7] + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gEnemyParty + adds r4, r0 + mov r1, r8 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 3 + subs r0, r1 + lsls r0, 3 + adds r0, 0xC + ldr r3, =gUnknown_0203CF54 + ldr r1, [r3] + adds r1, r0 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r6 + lsls r0, 3 + adds r0, 0x4 + adds r1, r0 + movs r0, 0x2C + muls r0, r2 + adds r0, 0x40 + adds r1, r0 + adds r0, r4, 0 + bl sub_806819C + adds r0, r4, 0 + mov r1, r10 + bl sub_81D642C + adds r5, 0x1 + adds r7, 0x1 + mov r0, r9 + adds r0, 0x3 + cmp r5, r0 + blt _081D6316 +_081D6366: + bl sub_81D5710 +_081D636A: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D62CC + + thumb_func_start sub_81D6384 +sub_81D6384: @ 81D6384 + push {lr} + bl ZeroEnemyPartyMons + ldr r0, =gUnknown_02038BCA + ldrh r0, [r0] + movs r1, 0 + bl sub_81D62CC + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D6384 + + thumb_func_start sub_81D639C +sub_81D639C: @ 81D639C + push {lr} + bl ZeroEnemyPartyMons + ldr r0, =gUnknown_02038BCA + ldrh r0, [r0] + movs r1, 0 + bl sub_81D62CC + ldr r0, =gUnknown_02038BCC + ldrh r0, [r0] + movs r1, 0x3 + bl sub_81D62CC + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D639C + + thumb_func_start sub_81D63C4 +sub_81D63C4: @ 81D63C4 + movs r0, 0x7 + bx lr + thumb_func_end sub_81D63C4 + + thumb_func_start sub_81D63C8 +sub_81D63C8: @ 81D63C8 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + bl sub_81D56B0 + subs r4, 0x1 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =gUnknown_0203CF54 + ldr r3, [r0] + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r4 + ldrb r2, [r3] + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 3 + subs r0, r2 + adds r0, r1 + lsls r0, 3 + adds r3, r0 + ldrb r4, [r3, 0x1B] + bl sub_81D5710 + movs r2, 0 + ldr r0, =gTrainerClassNameIndices + adds r4, r0 + ldrb r3, [r4] + ldr r1, =gUnknown_0862A3B4 +_081D6406: + ldrb r0, [r1] + cmp r0, r3 + bne _081D641C + ldrb r0, [r1, 0x1] + b _081D6426 + .pool +_081D641C: + adds r1, 0x4 + adds r2, 0x1 + cmp r2, 0x35 + bls _081D6406 + movs r0, 0 +_081D6426: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81D63C8 + + thumb_func_start sub_81D642C +sub_81D642C: @ 81D642C + push {r4,r5,lr} + sub sp, 0x8 + adds r4, r0, 0 + mov r0, sp + strb r1, [r0] + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + ldr r5, =gExperienceTables + mov r1, sp + ldrb r2, [r1] + lsls r2, 2 + ldr r3, =gBaseStats + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r1, [r1, 0x13] + movs r0, 0xCA + lsls r0, 1 + muls r0, r1 + adds r2, r0 + adds r2, r5 + ldr r0, [r2] + str r0, [sp, 0x4] + add r2, sp, 0x4 + adds r0, r4, 0 + movs r1, 0x19 + bl SetMonData + adds r0, r4, 0 + movs r1, 0x38 + mov r2, sp + bl SetMonData + adds r0, r4, 0 + bl pokemon_calc_effective_stats + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D642C + + thumb_func_start sub_81D6490 +sub_81D6490: @ 81D6490 + push {r4,lr} + bl sub_81D56B0 + ldr r0, =gUnknown_0203CF54 + ldr r0, [r0] + ldrb r4, [r0, 0x6] + bl sub_81D5710 + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D6490 + + thumb_func_start sub_81D64AC +sub_81D64AC: @ 81D64AC + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + movs r1, 0xEE + lsls r1, 4 + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] + bx lr + .pool + thumb_func_end sub_81D64AC + + thumb_func_start sub_81D64C0 +sub_81D64C0: @ 81D64C0 + push {lr} + bl sub_81D6534 + cmp r0, 0x1 + bne _081D64D4 + ldr r0, =gUnknown_0862A5D4 + movs r1, 0x70 + movs r2, 0x20 + bl LoadPalette +_081D64D4: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D64C0 + + thumb_func_start sub_81D64DC +sub_81D64DC: @ 81D64DC + ldr r1, =gScriptResult + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r2, =0x00000ef9 + adds r0, r2 + ldrb r0, [r0] + lsrs r0, 7 + strh r0, [r1] + bx lr + .pool + thumb_func_end sub_81D64DC + + thumb_func_start sub_81D64FC +sub_81D64FC: @ 81D64FC + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r0, =0x00000ef9 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x80 + orrs r0, r2 + strb r0, [r1] + bx lr + .pool + thumb_func_end sub_81D64FC + + thumb_func_start sub_81D6518 +sub_81D6518: @ 81D6518 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r0, =0x00000ef9 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x7F + ands r0, r2 + strb r0, [r1] + bx lr + .pool + thumb_func_end sub_81D6518 + + thumb_func_start sub_81D6534 +sub_81D6534: @ 81D6534 + push {lr} + bl sub_81D5C18 + lsls r0, 24 + cmp r0, 0 + beq _081D6560 + bl GetCurrentTrainerHillMapId + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + beq _081D6560 + bl sub_81D5C00 + ldr r0, =gScriptResult + ldrh r0, [r0] + cmp r0, 0 + beq _081D6560 + movs r0, 0x1 + b _081D6562 + .pool +_081D6560: + movs r0, 0 +_081D6562: + pop {r1} + bx r1 + thumb_func_end sub_81D6534 + + thumb_func_start sub_81D6568 +sub_81D6568: @ 81D6568 + push {lr} + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003d6e + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _081D6590 + ldr r1, =gScriptResult + movs r0, 0 + b _081D6594 + .pool +_081D6590: + ldr r1, =gScriptResult + movs r0, 0x1 +_081D6594: + strh r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D6568 + + thumb_func_start sub_81D65A0 +sub_81D65A0: @ 81D65A0 + push {r4,r5,lr} + ldr r4, =gSaveBlock1Ptr + ldr r2, [r4] + ldr r5, =gSpecialVar_0x8005 + ldr r0, =0x00003d6e + adds r2, r0 + ldrb r1, [r5] + lsls r1, 6 + ldrb r3, [r2] + movs r0, 0x3F + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldr r1, [r4] + ldr r3, =0x00003d68 + adds r2, r1, r3 + ldrh r0, [r5] + lsls r0, 2 + ldr r3, =0x00003718 + adds r1, r3 + adds r1, r0 + ldr r0, [r1] + str r0, [r2] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D65A0 + + thumb_func_start sub_81D65E8 +sub_81D65E8: @ 81D65E8 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + movs r3, 0 + movs r4, 0 + ldr r0, =gUnknown_0203CF54 + ldr r6, [r0] + movs r5, 0x1F +_081D65F8: + lsls r1, r4, 4 + subs r1, r4 + lsls r1, 3 + subs r1, r4 + lsls r1, 3 + adds r1, r6, r1 + ldrb r2, [r1, 0xC] + adds r0, r5, 0 + ands r0, r2 + eors r3, r0 + ldrb r1, [r1, 0xD] + adds r0, r5, 0 + ands r0, r1 + eors r3, r0 + lsls r0, r3, 24 + lsrs r3, r0, 24 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _081D65F8 + movs r1, 0x5 + cmp r7, 0 + beq _081D662A + movs r1, 0xA +_081D662A: + adds r0, r3, 0 + bl __umodsi3 + lsls r0, 24 + lsrs r3, r0, 24 + adds r0, r3, 0 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D65E8 + + thumb_func_start sub_81D6640 +sub_81D6640: @ 81D6640 + push {r4,r5,lr} + movs r3, 0 + movs r2, 0 + ldr r0, =gUnknown_0203CF54 + ldr r4, [r0] +_081D664A: + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 3 + subs r0, r2 + lsls r0, 3 + adds r0, r4, r0 + ldrb r1, [r0, 0xC] + adds r1, r3, r1 + ldrb r0, [r0, 0xD] + adds r3, r1, r0 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _081D664A + adds r0, r3, 0 + cmp r0, 0 + bge _081D6670 + adds r0, 0xFF +_081D6670: + asrs r4, r0, 8 + lsrs r0, 31 + adds r0, r4, r0 + asrs r0, 1 + lsls r0, 1 + subs r4, r0 + ldr r0, =0x00000864 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _081D66A0 + ldr r0, =gUnknown_0203CF54 + ldr r0, [r0] + ldrb r0, [r0, 0x4] + cmp r0, 0x8 + bne _081D66A0 + movs r0, 0x1 + b _081D66A2 + .pool +_081D66A0: + movs r0, 0 +_081D66A2: + bl sub_81D65E8 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, =gSaveBlock1Ptr + ldr r5, [r0] + ldr r1, =0x00003d6e + adds r0, r5, r1 + ldrb r1, [r0] + movs r0, 0xC0 + ands r0, r1 + cmp r0, 0xC0 + bne _081D66C8 + adds r0, r2, 0x1 + movs r1, 0xA + bl __modsi3 + lsls r0, 24 + lsrs r2, r0, 24 +_081D66C8: + ldr r1, =gUnknown_0862A5CC + lsls r0, r4, 2 + adds r0, r1 + ldr r1, [r0] + lsls r0, r2, 2 + adds r0, r1 + ldr r4, [r0] + ldr r1, =0x00003d64 + adds r0, r5, r1 + ldr r0, [r0] + movs r1, 0xE1 + lsls r1, 4 + bl __divsi3 + movs r1, 0 + cmp r0, 0xB + ble _081D6704 + movs r1, 0x1 + cmp r0, 0xC + ble _081D6704 + movs r1, 0x2 + cmp r0, 0xD + ble _081D6704 + movs r1, 0x3 + cmp r0, 0xF + ble _081D6704 + movs r1, 0x5 + cmp r0, 0x11 + bgt _081D6704 + movs r1, 0x4 +_081D6704: + lsls r0, r1, 1 + adds r0, r4 + ldrh r0, [r0] + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D6640 + + thumb_func_start sub_81D6720 +sub_81D6720: @ 81D6720 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r4, r0, 0 + adds r5, r1, 0 + mov r8, r2 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + ldr r6, =gUnknown_0203CF60 + ldr r0, =0x00002018 + bl AllocZeroed + str r0, [r6] + ldr r1, =0x00002006 + adds r0, r1 + strb r4, [r0] + ldr r0, [r6] + mov r1, r8 + str r1, [r0] + ldr r1, =0x00002007 + adds r0, r1 + strb r5, [r0] + ldr r0, =sub_81D6774 + bl SetMainCallback2 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D6720 + + thumb_func_start sub_81D6774 +sub_81D6774: @ 81D6774 + push {lr} + bl SetVBlankHBlankCallbacksToNull + bl clear_scheduled_bg_copies_to_vram + bl remove_some_task + bl FreeAllSpritePalettes + bl ResetPaletteFade + bl ResetSpriteData + bl ResetTasks + movs r0, 0 + movs r1, 0xF0 + movs r2, 0x20 + bl FillPalette + ldr r1, =gUnknown_0862A6A0 + ldr r0, =gUnknown_0203CF60 + ldr r0, [r0] + ldr r2, =0x00002006 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0 + bl CreateTask + ldr r0, =sub_81D67D0 + bl SetMainCallback2 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D6774 + + thumb_func_start sub_81D67D0 +sub_81D67D0: @ 81D67D0 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl do_scheduled_bg_tilemap_copies_to_vram + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_81D67D0 + + thumb_func_start sub_81D67EC +sub_81D67EC: @ 81D67EC + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_81D67EC + + thumb_func_start sub_81D6800 +sub_81D6800: @ 81D6800 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081D6830 + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r4, =gUnknown_0203CF60 + ldr r0, [r4] + ldr r0, [r0] + bl SetMainCallback2 + ldr r0, [r4] + bl Free + adds r0, r5, 0 + bl DestroyTask +_081D6830: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D6800 + + thumb_func_start sub_81D6840 +sub_81D6840: @ 81D6840 + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + adds r6, r3, 0 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _081D68B2 + ldr r2, =gUnknown_0203CF60 + ldr r1, [r2] + ldr r4, =0x00002007 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, 0x1 + bne _081D6888 + ldr r0, =gTasks + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81D6800 + b _081D68B0 + .pool +_081D6888: + ldr r4, =0x00002006 + adds r1, r4 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r2, [r2] + ldr r1, =0x00002004 + adds r0, r2, r1 + strh r5, [r0] + ldr r0, =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldr r3, =gUnknown_0862A6A0 + adds r2, r4 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] +_081D68B0: + str r0, [r1] +_081D68B2: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D6840 + + thumb_func_start sub_81D68C8 +sub_81D68C8: @ 81D68C8 + push {lr} + movs r0, 0x48 + movs r1, 0x3F + bl SetGpuReg + movs r0, 0x4A + movs r1, 0 + bl SetGpuReg + movs r0, 0x40 + movs r1, 0xF0 + bl SetGpuReg + ldr r1, =0x00001888 + movs r0, 0x44 + bl SetGpuReg + ldr r0, =gPlttBufferUnfaded + movs r1, 0 + strh r1, [r0] + ldr r0, =gPlttBufferFaded + strh r1, [r0] + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D68C8 + + thumb_func_start sub_81D6904 +sub_81D6904: @ 81D6904 + push {lr} + movs r0, 0x48 + movs r1, 0x3F + bl SetGpuReg + movs r0, 0x4A + movs r1, 0x3F + bl SetGpuReg + pop {r0} + bx r0 + thumb_func_end sub_81D6904 + + thumb_func_start sub_81D691C +sub_81D691C: @ 81D691C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r5, r0, r1 + bl sub_81D750C + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081D697E + movs r0, 0 + ldrsh r1, [r5, r0] + cmp r1, 0x40 + bne _081D6954 + bl sub_81D7438 + b _081D6978 + .pool +_081D6954: + cmp r1, 0x90 + bne _081D695E + bl sub_81D7480 + b _081D6978 +_081D695E: + cmp r1, 0x94 + beq _081D6974 + movs r0, 0xA4 + lsls r0, 1 + cmp r1, r0 + bne _081D6978 + adds r0, r4, 0 + movs r1, 0 + bl sub_81D75B4 + b _081D697E +_081D6974: + bl sub_81D74C8 +_081D6978: + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] +_081D697E: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81D691C + + thumb_func_start sub_81D6984 +sub_81D6984: @ 81D6984 + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r0, =gUnknown_0862A72C + mov r8, r0 + movs r1, 0x58 + movs r2, 0x48 + movs r3, 0x3 + bl CreateSprite + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r6, =gSprites + lsls r4, r5, 4 + adds r4, r5 + lsls r4, 2 + adds r0, r6, 0 + adds r0, 0x1C + adds r0, r4, r0 + ldr r1, =sub_81D6A20 + str r1, [r0] + adds r0, r6, 0 + adds r0, 0x2E + adds r4, r0 + mov r0, r8 + movs r1, 0x38 + movs r2, 0x68 + movs r3, 0x3 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + ldr r0, =gUnknown_0862A750 + movs r1, 0x4B + movs r2, 0x65 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2] + ldr r0, =gUnknown_0862A774 + movs r1, 0x6D + movs r2, 0x72 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x4] + movs r0, 0 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x1 + bl StartSpriteAnim + adds r0, r5, 0 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D6984 + + thumb_func_start sub_81D6A20 +sub_81D6A20: @ 81D6A20 + push {r4,lr} + adds r3, r0, 0 + movs r0, 0x2E + adds r0, r3 + mov r12, r0 + ldrh r0, [r0, 0xA] + adds r0, 0x1 + movs r1, 0x1F + ands r0, r1 + mov r1, r12 + strh r0, [r1, 0xA] + cmp r0, 0 + bne _081D6A84 + ldrh r1, [r3, 0x20] + movs r2, 0x20 + ldrsh r0, [r3, r2] + cmp r0, 0x48 + beq _081D6A84 + subs r0, r1, 0x1 + strh r0, [r3, 0x20] + ldr r2, =gSprites + movs r4, 0x2E + ldrsh r1, [r3, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x20] + subs r1, 0x1 + strh r1, [r0, 0x20] + mov r0, r12 + movs r4, 0x2 + ldrsh r1, [r0, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x20] + subs r1, 0x1 + strh r1, [r0, 0x20] + mov r0, r12 + movs r4, 0x4 + ldrsh r1, [r0, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x20] + subs r1, 0x1 + strh r1, [r0, 0x20] +_081D6A84: + adds r0, r3, 0 + adds r0, 0x2B + ldrb r3, [r0] + cmp r3, 0x1 + beq _081D6AE4 + cmp r3, 0x1 + bgt _081D6A9C + cmp r3, 0 + beq _081D6AA6 + b _081D6B68 + .pool +_081D6A9C: + cmp r3, 0x2 + beq _081D6B24 + cmp r3, 0x3 + beq _081D6AE4 + b _081D6B68 +_081D6AA6: + ldr r2, =gSprites + mov r0, r12 + movs r4, 0x2 + ldrsh r1, [r0, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r3, [r0, 0x24] + mov r0, r12 + movs r4, 0x2 + ldrsh r1, [r0, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r3, [r0, 0x26] + mov r0, r12 + movs r4, 0x4 + ldrsh r1, [r0, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r3, [r0, 0x24] + mov r0, r12 + movs r4, 0x4 + ldrsh r1, [r0, r4] + b _081D6B5E + .pool +_081D6AE4: + ldr r2, =gSprites + mov r0, r12 + movs r3, 0x2 + ldrsh r1, [r0, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, =0x0000ffff + strh r1, [r0, 0x24] + mov r4, r12 + movs r0, 0x2 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r3, 0 + strh r3, [r0, 0x26] + movs r0, 0x4 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x1 + negs r1, r1 + b _081D6B58 + .pool +_081D6B24: + ldr r2, =gSprites + mov r3, r12 + movs r4, 0x2 + ldrsh r1, [r3, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, =0x0000ffff + strh r1, [r0, 0x24] + movs r0, 0x2 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r3, 0x1 + strh r3, [r0, 0x26] + mov r4, r12 + movs r0, 0x4 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, =0x0000fffe +_081D6B58: + strh r1, [r0, 0x24] + movs r0, 0x4 + ldrsh r1, [r4, r0] +_081D6B5E: + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r3, [r0, 0x26] +_081D6B68: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D6A20 + + thumb_func_start sub_81D6B7C +sub_81D6B7C: @ 81D6B7C + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r5, =gUnknown_0862A81C + adds r0, r5, 0 + movs r1, 0x88 + movs r2, 0x60 + movs r3, 0x1 + bl CreateSprite + mov r8, r0 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r6, =gSprites + lsls r4, r0, 4 + add r4, r8 + lsls r4, 2 + adds r0, r6, 0 + adds r0, 0x1C + adds r0, r4, r0 + ldr r1, =sub_81D6D20 + str r1, [r0] + adds r0, r6, 0 + adds r0, 0x2E + adds r4, r0 + adds r0, r5, 0 + movs r1, 0xA8 + movs r2, 0x60 + movs r3, 0x1 + bl CreateSprite + lsls r0, 8 + strh r0, [r4] + adds r0, r5, 0 + movs r1, 0x88 + movs r2, 0x70 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4] + orrs r0, r1 + strh r0, [r4] + adds r0, r5, 0 + movs r1, 0xA8 + movs r2, 0x70 + movs r3, 0x1 + bl CreateSprite + lsls r0, 8 + strh r0, [r4, 0x2] + adds r0, r5, 0 + movs r1, 0x88 + movs r2, 0x80 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x2] + orrs r0, r1 + strh r0, [r4, 0x2] + adds r0, r5, 0 + movs r1, 0xA8 + movs r2, 0x80 + movs r3, 0x1 + bl CreateSprite + lsls r0, 8 + strh r0, [r4, 0x4] + adds r0, r5, 0 + movs r1, 0x68 + movs r2, 0x80 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + orrs r0, r1 + strh r0, [r4, 0x4] + adds r0, r5, 0 + movs r1, 0x88 + movs r2, 0x80 + movs r3, 0x2 + bl CreateSprite + lsls r0, 8 + strh r0, [r4, 0x6] + adds r0, r5, 0 + movs r1, 0xB8 + movs r2, 0x80 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x6] + orrs r0, r1 + strh r0, [r4, 0x6] + ldr r0, =gUnknown_0862A84C + movs r1, 0xD0 + movs r2, 0x84 + movs r3, 0 + bl CreateSprite + lsls r0, 8 + strh r0, [r4, 0x8] + ldr r0, =gUnknown_0862A864 + movs r1, 0xC8 + movs r2, 0x78 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x8] + orrs r0, r1 + strh r0, [r4, 0x8] + ldrh r1, [r4] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x1 + bl StartSpriteAnim + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x2 + bl StartSpriteAnim + ldrh r1, [r4, 0x2] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x3 + bl StartSpriteAnim + ldrb r1, [r4, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x4 + bl StartSpriteAnim + ldrh r1, [r4, 0x4] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x5 + bl StartSpriteAnim + ldrb r1, [r4, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x6 + bl StartSpriteAnim + ldrh r1, [r4, 0x6] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x7 + bl StartSpriteAnim + ldrb r1, [r4, 0x6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x8 + bl StartSpriteAnim + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D6B7C + + thumb_func_start sub_81D6D20 +sub_81D6D20: @ 81D6D20 + push {r4-r7,lr} + adds r4, r0, 0 + adds r3, r4, 0 + adds r3, 0x2E + ldrh r0, [r3, 0xA] + adds r0, 0x1 + movs r1, 0x1F + ands r0, r1 + strh r0, [r3, 0xA] + ldr r7, =gSprites + cmp r0, 0 + bne _081D6E0E + ldrh r1, [r4, 0x20] + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r0, 0x98 + beq _081D6E0E + adds r0, r1, 0x1 + strh r0, [r4, 0x20] + ldrh r1, [r4, 0x2E] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrh r1, [r0, 0x20] + adds r1, 0x1 + strh r1, [r0, 0x20] + ldrh r0, [r4, 0x2E] + movs r2, 0xFF + adds r1, r2, 0 + ands r1, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrh r1, [r0, 0x20] + adds r1, 0x1 + strh r1, [r0, 0x20] + ldrh r1, [r3, 0x2] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrh r1, [r0, 0x20] + adds r1, 0x1 + strh r1, [r0, 0x20] + ldrh r0, [r3, 0x2] + adds r1, r2, 0 + ands r1, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrh r1, [r0, 0x20] + adds r1, 0x1 + strh r1, [r0, 0x20] + ldrh r1, [r3, 0x4] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrh r1, [r0, 0x20] + adds r1, 0x1 + strh r1, [r0, 0x20] + ldrh r0, [r3, 0x4] + adds r1, r2, 0 + ands r1, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrh r1, [r0, 0x20] + adds r1, 0x1 + strh r1, [r0, 0x20] + ldrh r1, [r3, 0x6] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrh r1, [r0, 0x20] + adds r1, 0x1 + strh r1, [r0, 0x20] + ldrh r0, [r3, 0x6] + adds r1, r2, 0 + ands r1, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrh r1, [r0, 0x20] + adds r1, 0x1 + strh r1, [r0, 0x20] + ldrh r1, [r3, 0x8] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrh r1, [r0, 0x20] + adds r1, 0x1 + strh r1, [r0, 0x20] + ldrh r0, [r3, 0x8] + ands r2, r0 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r7 + ldrh r1, [r0, 0x20] + adds r1, 0x1 + strh r1, [r0, 0x20] +_081D6E0E: + adds r6, r7, 0 + movs r5, 0xFF + ldrb r1, [r3, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x2B + ldrb r2, [r0] + cmp r2, 0x1 + beq _081D6EE0 + cmp r2, 0x1 + bgt _081D6E34 + cmp r2, 0 + beq _081D6E40 + b _081D6FC8 + .pool +_081D6E34: + cmp r2, 0x2 + bne _081D6E3A + b _081D6F68 +_081D6E3A: + cmp r2, 0x3 + beq _081D6EE0 + b _081D6FC8 +_081D6E40: + strh r2, [r4, 0x26] + ldrh r1, [r3] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r2, [r0, 0x26] + ldrh r0, [r3] + adds r1, r5, 0 + ands r1, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r2, [r0, 0x26] + ldrh r1, [r3, 0x2] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r2, [r0, 0x26] + ldrh r0, [r3, 0x2] + adds r1, r5, 0 + ands r1, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r2, [r0, 0x26] + ldrh r1, [r3, 0x4] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r2, [r0, 0x26] + ldrh r0, [r3, 0x4] + adds r1, r5, 0 + ands r1, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r2, [r0, 0x26] + ldrh r1, [r3, 0x6] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r2, [r0, 0x26] + ldrh r0, [r3, 0x6] + adds r1, r5, 0 + ands r1, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r2, [r0, 0x26] + ldrh r1, [r3, 0x8] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r2, [r0, 0x26] + ldrh r1, [r3, 0x8] + ands r1, r5 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + b _081D6FC6 +_081D6EE0: + movs r2, 0x1 + strh r2, [r4, 0x26] + ldrh r1, [r3] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrh r1, [r3, 0x2] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrb r1, [r3, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrh r1, [r3, 0x4] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrb r1, [r3, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrh r1, [r3, 0x6] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrb r1, [r3, 0x6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrh r1, [r3, 0x8] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrb r1, [r3, 0x8] + b _081D6FBE +_081D6F68: + strh r2, [r4, 0x26] + ldrh r1, [r3] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrh r0, [r3] + adds r1, r5, 0 + ands r1, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrh r1, [r3, 0x2] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrh r0, [r3, 0x2] + adds r1, r5, 0 + ands r1, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrh r1, [r3, 0x4] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrh r1, [r3, 0x8] + ands r1, r5 +_081D6FBE: + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 +_081D6FC6: + strh r2, [r0, 0x26] +_081D6FC8: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81D6D20 + + thumb_func_start sub_81D6FD0 +sub_81D6FD0: @ 81D6FD0 + push {lr} + bl sub_81D67EC + bl sub_80BA0A8 + pop {r0} + bx r0 + thumb_func_end sub_81D6FD0 + + thumb_func_start sub_81D6FE0 +sub_81D6FE0: @ 81D6FE0 + push {r4,lr} + bl sub_8121DA0 + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, =gUnknown_0862A888 + movs r0, 0 + movs r2, 0x3 + bl InitBgsFromTemplates + ldr r4, =gUnknown_0203CF60 + ldr r1, [r4] + adds r1, 0x4 + movs r0, 0 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, =0x00000804 + adds r1, r0 + movs r0, 0x1 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, =0x00001004 + adds r1, r0 + movs r0, 0x2 + bl SetBgTilemapBuffer + bl sub_8121E10 + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + movs r1, 0x82 + lsls r1, 5 + movs r0, 0 + bl SetGpuReg + movs r0, 0 + bl ShowBg + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D6FE0 + + thumb_func_start sub_81D706C +sub_81D706C: @ 81D706C + push {r4,lr} + sub sp, 0x4 + bl reset_temp_tile_data_buffers + ldr r1, =gUnknown_08DA33C0 + movs r0, 0 + str r0, [sp] + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram +_081D7082: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _081D7082 + ldr r0, =gUnknown_08DA3988 + ldr r4, =gUnknown_0203CF60 + ldr r1, [r4] + adds r1, 0x4 + bl LZDecompressWram + ldr r0, =gUnknown_08DA3824 + ldr r1, [r4] + ldr r2, =0x00000804 + adds r1, r2 + bl LZDecompressWram + ldr r0, =gUnknown_08DA3A88 + ldr r1, [r4] + ldr r2, =0x00001004 + adds r1, r2 + bl LZDecompressWram + ldr r0, =gUnknown_08DA37E8 + movs r1, 0 + movs r2, 0x40 + bl LoadCompressedPalette + ldr r0, =gUnknown_0862A8C4 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_0862A8F8 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_0862A924 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_0862A9D4 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_0862AA14 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_0862AA34 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_0862A8CC + bl LoadCompressedObjectPalette + ldr r0, =gUnknown_0862A9DC + bl LoadCompressedObjectPalette + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D706C + + thumb_func_start task_add_00_WIN0V_open_close_above_and_more +task_add_00_WIN0V_open_close_above_and_more: @ 81D7134 + push {r4-r7,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r6, r1, 3 + ldr r7, =gTasks + 0x8 + adds r5, r6, r7 + bl dp12_8087EA4 + bl sub_81D6FE0 + bl sub_81D706C + movs r4, 0 + str r4, [sp, 0x4] + ldr r1, =gUnknown_02038C28 + ldr r2, =0x010003c0 + add r0, sp, 0x4 + bl CpuFastSet + ldr r2, =gUnknown_0862A87C + ldr r0, [r2] + ldr r1, [r2, 0x4] + ldr r2, [r2, 0x8] + bl sub_80BA038 + strh r4, [r5] + ldr r0, =sub_81D7228 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x2] + ldr r0, =gUnknown_0203CF60 + ldr r0, [r0] + ldr r1, =0x00002006 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _081D71CC + bl sub_81D6984 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x4] + bl sub_81D6B7C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x6] + adds r0, r7, 0 + subs r0, 0x8 + adds r0, r6, r0 + ldr r1, =sub_81D691C + str r1, [r0] + b _081D71EE + .pool +_081D71CC: + bl sub_81D7664 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x4] + bl sub_81D78BC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x6] + adds r0, r7, 0 + subs r0, 0x8 + adds r0, r6, r0 + ldr r1, =sub_81D736C + str r1, [r0] + bl StopMapMusic +_081D71EE: + movs r4, 0x1 + negs r4, r4 + adds r0, r4, 0 + movs r1, 0x10 + movs r2, 0 + bl BlendPalettes + movs r0, 0 + str r0, [sp] + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, =sub_81D6FD0 + bl SetVBlankCallback + movs r0, 0x53 + bl PlaySE + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end task_add_00_WIN0V_open_close_above_and_more + + thumb_func_start sub_81D7228 +sub_81D7228: @ 81D7228 + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r3, r1, r0 + movs r1, 0x18 + ldr r7, =gUnknown_0203CF60 + ldr r4, =gUnknown_02038C28 + movs r0, 0xF0 + lsls r0, 3 + adds r5, r4, r0 +_081D7244: + lsls r0, r1, 16 + asrs r1, r0, 16 + adds r6, r0, 0 + cmp r1, 0x2F + bgt _081D726C + lsls r1, 1 + adds r2, r1, r4 + ldrh r0, [r3] + lsrs r0, 8 + strh r0, [r2] + adds r1, r5 + ldrh r0, [r3] + b _081D72CA + .pool +_081D726C: + cmp r1, 0x3F + bgt _081D7280 + lsls r1, 1 + adds r2, r1, r4 + ldrh r0, [r3, 0x2] + lsrs r0, 8 + strh r0, [r2] + adds r1, r5 + ldrh r0, [r3, 0x2] + b _081D72CA +_081D7280: + cmp r1, 0x4B + bgt _081D7294 + lsls r1, 1 + adds r2, r1, r4 + ldrh r0, [r3, 0x4] + lsrs r0, 8 + strh r0, [r2] + adds r1, r5 + ldrh r0, [r3, 0x4] + b _081D72CA +_081D7294: + cmp r1, 0x53 + bgt _081D72A8 + lsls r1, 1 + adds r2, r1, r4 + ldrh r0, [r3, 0x6] + lsrs r0, 8 + strh r0, [r2] + adds r1, r5 + ldrh r0, [r3, 0x6] + b _081D72CA +_081D72A8: + cmp r1, 0x57 + bgt _081D72BC + lsls r1, 1 + adds r2, r1, r4 + ldrh r0, [r3, 0x8] + lsrs r0, 8 + strh r0, [r2] + adds r1, r5 + ldrh r0, [r3, 0x8] + b _081D72CA +_081D72BC: + lsls r1, 1 + adds r2, r1, r4 + ldrh r0, [r3, 0xA] + lsrs r0, 8 + strh r0, [r2] + adds r1, r5 + ldrh r0, [r3, 0xA] +_081D72CA: + lsrs r0, 8 + strh r0, [r1] + movs r1, 0x80 + lsls r1, 9 + adds r0, r6, r1 + lsrs r1, r0, 16 + asrs r0, 16 + cmp r0, 0x5B + ble _081D7244 + ldr r0, [r7] + ldr r1, =0x00002006 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _081D7324 + movs r1, 0xE0 + lsls r1, 1 + adds r0, r1, 0 + ldrh r1, [r3] + adds r0, r1 + strh r0, [r3] + movs r1, 0xC0 + lsls r1, 1 + adds r0, r1, 0 + ldrh r1, [r3, 0x2] + adds r0, r1 + strh r0, [r3, 0x2] + movs r1, 0xA0 + lsls r1, 1 + adds r0, r1, 0 + ldrh r1, [r3, 0x4] + adds r0, r1 + strh r0, [r3, 0x4] + movs r1, 0x80 + lsls r1, 1 + adds r0, r1, 0 + ldrh r1, [r3, 0x6] + adds r0, r1 + strh r0, [r3, 0x6] + ldrh r0, [r3, 0x8] + adds r0, 0xC0 + b _081D735E + .pool +_081D7324: + movs r1, 0xC0 + lsls r1, 2 + adds r0, r1, 0 + ldrh r1, [r3] + adds r0, r1 + strh r0, [r3] + movs r1, 0xA0 + lsls r1, 2 + adds r0, r1, 0 + ldrh r1, [r3, 0x2] + adds r0, r1 + strh r0, [r3, 0x2] + movs r1, 0x80 + lsls r1, 2 + adds r0, r1, 0 + ldrh r1, [r3, 0x4] + adds r0, r1 + strh r0, [r3, 0x4] + movs r1, 0xC0 + lsls r1, 1 + adds r0, r1, 0 + ldrh r1, [r3, 0x6] + adds r0, r1 + strh r0, [r3, 0x6] + movs r1, 0x80 + lsls r1, 1 + adds r0, r1, 0 + ldrh r1, [r3, 0x8] + adds r0, r1 +_081D735E: + strh r0, [r3, 0x8] + ldrh r0, [r3, 0xA] + adds r0, 0x80 + strh r0, [r3, 0xA] + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81D7228 + + thumb_func_start sub_81D736C +sub_81D736C: @ 81D736C + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r7, =gTasks + 0x8 + adds r4, r0, r7 + bl sub_81D750C + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + bne _081D742E + movs r0, 0 + ldrsh r1, [r4, r0] + cmp r1, 0x20 + beq _081D739C + cmp r1, 0x70 + bne _081D73AC +_081D739C: + bl sub_81D7438 + b _081D7428 + .pool +_081D73AC: + cmp r1, 0xD8 + bne _081D73B6 + bl sub_81D7480 + b _081D7428 +_081D73B6: + cmp r1, 0xDC + bne _081D73C0 + bl sub_81D74C8 + b _081D7428 +_081D73C0: + movs r0, 0xBE + lsls r0, 1 + cmp r1, r0 + beq _081D73D8 + adds r0, 0x20 + cmp r1, r0 + bne _081D7428 + adds r0, r5, 0 + movs r1, 0x2 + bl sub_81D75B4 + b _081D742E +_081D73D8: + movs r1, 0x91 + lsls r1, 2 + movs r0, 0x50 + bl SetGpuReg + adds r2, r7, 0 + subs r2, 0x8 + movs r0, 0x2 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, =sub_81D752C + str r1, [r0] + movs r0, 0x2 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + strh r6, [r0, 0x8] + movs r0, 0x2 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r4, 0x4] + strh r1, [r0, 0xC] + movs r0, 0x2 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r4, 0x6] + strh r1, [r0, 0xE] + bl remove_some_task +_081D7428: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_081D742E: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D736C + + thumb_func_start sub_81D7438 +sub_81D7438: @ 81D7438 + push {r4,lr} + sub sp, 0xC + movs r0, 0x57 + bl PlaySE + ldr r0, =0x00007fff + ldr r1, =0x0000ffff + str r1, [sp] + movs r4, 0 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl sub_80A2C44 + ldr r0, =0xffff0000 + str r4, [sp] + str r4, [sp, 0x4] + movs r1, 0x1 + str r1, [sp, 0x8] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl sub_80A2C44 + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D7438 + + thumb_func_start sub_81D7480 +sub_81D7480: @ 81D7480 + push {r4,lr} + sub sp, 0xC + movs r0, 0x57 + bl PlaySE + ldr r0, =0x00007fff + ldr r1, =0x0000ffff + str r1, [sp] + movs r4, 0 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0 + movs r2, 0x10 + movs r3, 0x10 + bl sub_80A2C44 + ldr r0, =0xffff0000 + str r4, [sp] + str r4, [sp, 0x4] + movs r1, 0x1 + str r1, [sp, 0x8] + movs r1, 0 + movs r2, 0x10 + movs r3, 0x10 + bl sub_80A2C44 + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D7480 + + thumb_func_start sub_81D74C8 +sub_81D74C8: @ 81D74C8 + push {r4,lr} + sub sp, 0xC + ldr r0, =0x00007fff + ldr r1, =0x0000ffff + str r1, [sp] + movs r4, 0 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x4 + movs r2, 0x10 + movs r3, 0 + bl sub_80A2C44 + ldr r0, =0xffff0000 + str r4, [sp] + str r4, [sp, 0x4] + movs r1, 0x1 + str r1, [sp, 0x8] + movs r1, 0x4 + movs r2, 0x10 + movs r3, 0 + bl sub_80A2C44 + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D74C8 + + thumb_func_start sub_81D750C +sub_81D750C: @ 81D750C + push {lr} + movs r1, 0x80 + lsls r1, 3 + movs r0, 0x2 + movs r2, 0x1 + bl ChangeBgX + movs r1, 0x80 + lsls r1, 4 + movs r0, 0x2 + movs r2, 0x2 + bl ChangeBgY + pop {r0} + bx r0 + thumb_func_end sub_81D750C + + thumb_func_start sub_81D752C +sub_81D752C: @ 81D752C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r5, r1, r0 + movs r0, 0x4 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + bl sub_81D7860 + movs r0, 0x6 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl sub_81D7D14 + movs r0, 0x1 + bl GetBgY + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0x1 + bl GetBgY + cmp r0, 0 + beq _081D757A + movs r0, 0x80 + lsls r0, 8 + cmp r4, r0 + bls _081D7586 +_081D757A: + movs r1, 0x80 + lsls r1, 3 + movs r0, 0x1 + movs r2, 0x2 + bl ChangeBgY +_081D7586: + ldrh r2, [r5] + movs r1, 0 + ldrsh r0, [r5, r1] + cmp r0, 0x10 + beq _081D75A6 + adds r2, 0x1 + strh r2, [r5] + lsls r1, r2, 8 + movs r0, 0x10 + subs r0, r2 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg +_081D75A6: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D752C + + thumb_func_start sub_81D75B4 +sub_81D75B4: @ 81D75B4 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + adds r4, r1, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x54 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + lsls r4, 24 + asrs r4, 24 + movs r1, 0 + str r1, [sp] + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81D7600 + str r1, [r0] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D75B4 + + thumb_func_start sub_81D7600 +sub_81D7600: @ 81D7600 + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r6, r1, 3 + ldr r7, =gTasks + 0x8 + adds r5, r6, r7 + bl sub_81D750C + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _081D7652 + ldrb r0, [r5, 0x2] + bl DestroyTask + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0 + bl SetVBlankCallback + bl remove_some_task + bl ResetSpriteData + bl FreeAllSpritePalettes + strh r4, [r5] + adds r0, r7, 0 + subs r0, 0x8 + adds r0, r6, r0 + ldr r1, =sub_81D6840 + str r1, [r0] +_081D7652: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D7600 + + thumb_func_start sub_81D7664 +sub_81D7664: @ 81D7664 + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r0, =gUnknown_0862A8D4 + mov r8, r0 + movs r1, 0x62 + movs r2, 0x48 + movs r3, 0x3 + bl CreateSprite + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r6, =gSprites + lsls r4, r5, 4 + adds r4, r5 + lsls r4, 2 + adds r0, r6, 0 + adds r0, 0x1C + adds r0, r4, r0 + ldr r1, =sub_81D7700 + str r1, [r0] + adds r0, r6, 0 + adds r0, 0x2E + adds r4, r0 + mov r0, r8 + movs r1, 0x42 + movs r2, 0x68 + movs r3, 0x3 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + ldr r0, =gUnknown_0862A900 + movs r1, 0x55 + movs r2, 0x65 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2] + ldr r0, =gUnknown_0862A92C + movs r1, 0x77 + movs r2, 0x72 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x4] + movs r0, 0 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x1 + bl StartSpriteAnim + adds r0, r5, 0 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D7664 + + thumb_func_start sub_81D7700 +sub_81D7700: @ 81D7700 + push {r4,lr} + adds r3, r0, 0 + movs r0, 0x2E + adds r0, r3 + mov r12, r0 + ldrh r0, [r0, 0xA] + adds r0, 0x1 + movs r1, 0xF + ands r0, r1 + mov r1, r12 + strh r0, [r1, 0xA] + movs r1, 0x7 + ands r1, r0 + cmp r1, 0 + bne _081D7768 + ldrh r1, [r3, 0x20] + movs r2, 0x20 + ldrsh r0, [r3, r2] + cmp r0, 0x48 + beq _081D7768 + subs r0, r1, 0x1 + strh r0, [r3, 0x20] + ldr r2, =gSprites + movs r4, 0x2E + ldrsh r1, [r3, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x20] + subs r1, 0x1 + strh r1, [r0, 0x20] + mov r0, r12 + movs r4, 0x2 + ldrsh r1, [r0, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x20] + subs r1, 0x1 + strh r1, [r0, 0x20] + mov r0, r12 + movs r4, 0x4 + ldrsh r1, [r0, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x20] + subs r1, 0x1 + strh r1, [r0, 0x20] +_081D7768: + adds r0, r3, 0 + adds r0, 0x2B + ldrb r3, [r0] + cmp r3, 0x1 + beq _081D77C8 + cmp r3, 0x1 + bgt _081D7780 + cmp r3, 0 + beq _081D778A + b _081D784C + .pool +_081D7780: + cmp r3, 0x2 + beq _081D7808 + cmp r3, 0x3 + beq _081D77C8 + b _081D784C +_081D778A: + ldr r2, =gSprites + mov r0, r12 + movs r4, 0x2 + ldrsh r1, [r0, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r3, [r0, 0x24] + mov r0, r12 + movs r4, 0x2 + ldrsh r1, [r0, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r3, [r0, 0x26] + mov r0, r12 + movs r4, 0x4 + ldrsh r1, [r0, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r3, [r0, 0x24] + mov r0, r12 + movs r4, 0x4 + ldrsh r1, [r0, r4] + b _081D7842 + .pool +_081D77C8: + ldr r2, =gSprites + mov r0, r12 + movs r3, 0x2 + ldrsh r1, [r0, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, =0x0000ffff + strh r1, [r0, 0x24] + mov r4, r12 + movs r0, 0x2 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r3, 0 + strh r3, [r0, 0x26] + movs r0, 0x4 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x1 + negs r1, r1 + b _081D783C + .pool +_081D7808: + ldr r2, =gSprites + mov r3, r12 + movs r4, 0x2 + ldrsh r1, [r3, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, =0x0000ffff + strh r1, [r0, 0x24] + movs r0, 0x2 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r3, 0x1 + strh r3, [r0, 0x26] + mov r4, r12 + movs r0, 0x4 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, =0x0000fffe +_081D783C: + strh r1, [r0, 0x24] + movs r0, 0x4 + ldrsh r1, [r4, r0] +_081D7842: + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r3, [r0, 0x26] +_081D784C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D7700 + + thumb_func_start sub_81D7860 +sub_81D7860: @ 81D7860 + push {r4,lr} + adds r1, r0, 0 + adds r3, r1, 0 + adds r3, 0x2E + ldrh r2, [r1, 0x22] + movs r4, 0x22 + ldrsh r0, [r1, r4] + cmp r0, 0xA0 + bgt _081D78B0 + adds r0, r2, 0 + adds r0, 0x8 + strh r0, [r1, 0x22] + ldr r2, =gSprites + movs r0, 0x2E + ldrsh r1, [r1, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + adds r1, 0x8 + strh r1, [r0, 0x22] + movs r4, 0x2 + ldrsh r1, [r3, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + adds r1, 0x8 + strh r1, [r0, 0x22] + movs r0, 0x4 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + adds r1, 0x8 + strh r1, [r0, 0x22] +_081D78B0: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D7860 + + thumb_func_start sub_81D78BC +sub_81D78BC: @ 81D78BC + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r5, =gUnknown_0862A9E4 + adds r0, r5, 0 + movs r1, 0x7E + movs r2, 0x60 + movs r3, 0x1 + bl CreateSprite + mov r8, r0 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r6, =gSprites + lsls r4, r0, 4 + add r4, r8 + lsls r4, 2 + adds r0, r6, 0 + adds r0, 0x1C + adds r0, r4, r0 + ldr r1, =sub_81D7A60 + str r1, [r0] + adds r0, r6, 0 + adds r0, 0x2E + adds r4, r0 + adds r0, r5, 0 + movs r1, 0x9E + movs r2, 0x60 + movs r3, 0x1 + bl CreateSprite + lsls r0, 8 + strh r0, [r4] + adds r0, r5, 0 + movs r1, 0x7E + movs r2, 0x70 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4] + orrs r0, r1 + strh r0, [r4] + adds r0, r5, 0 + movs r1, 0x9E + movs r2, 0x70 + movs r3, 0x1 + bl CreateSprite + lsls r0, 8 + strh r0, [r4, 0x2] + adds r0, r5, 0 + movs r1, 0x7E + movs r2, 0x80 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x2] + orrs r0, r1 + strh r0, [r4, 0x2] + adds r0, r5, 0 + movs r1, 0x9E + movs r2, 0x80 + movs r3, 0x1 + bl CreateSprite + lsls r0, 8 + strh r0, [r4, 0x4] + adds r0, r5, 0 + movs r1, 0x5E + movs r2, 0x80 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + orrs r0, r1 + strh r0, [r4, 0x4] + adds r0, r5, 0 + movs r1, 0x7E + movs r2, 0x80 + movs r3, 0x2 + bl CreateSprite + lsls r0, 8 + strh r0, [r4, 0x6] + adds r0, r5, 0 + movs r1, 0xAE + movs r2, 0x80 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x6] + orrs r0, r1 + strh r0, [r4, 0x6] + ldr r0, =gUnknown_0862AA1C + movs r1, 0xC6 + movs r2, 0x84 + movs r3, 0 + bl CreateSprite + lsls r0, 8 + strh r0, [r4, 0x8] + ldr r0, =gUnknown_0862AA3C + movs r1, 0xBE + movs r2, 0x78 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x8] + orrs r0, r1 + strh r0, [r4, 0x8] + ldrh r1, [r4] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x1 + bl StartSpriteAnim + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x2 + bl StartSpriteAnim + ldrh r1, [r4, 0x2] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x3 + bl StartSpriteAnim + ldrb r1, [r4, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x4 + bl StartSpriteAnim + ldrh r1, [r4, 0x4] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x5 + bl StartSpriteAnim + ldrb r1, [r4, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x6 + bl StartSpriteAnim + ldrh r1, [r4, 0x6] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x7 + bl StartSpriteAnim + ldrb r1, [r4, 0x6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x8 + bl StartSpriteAnim + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D78BC + + thumb_func_start sub_81D7A60 +sub_81D7A60: @ 81D7A60 + push {r4-r7,lr} + adds r4, r0, 0 + adds r3, r4, 0 + adds r3, 0x2E + ldrh r0, [r3, 0xA] + adds r0, 0x1 + movs r1, 0xF + ands r0, r1 + strh r0, [r3, 0xA] + movs r1, 0x7 + ands r1, r0 + ldr r7, =gSprites + cmp r1, 0 + bne _081D7B52 + ldrh r1, [r4, 0x20] + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r0, 0x98 + beq _081D7B52 + adds r0, r1, 0x1 + strh r0, [r4, 0x20] + ldrh r1, [r4, 0x2E] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrh r1, [r0, 0x20] + adds r1, 0x1 + strh r1, [r0, 0x20] + ldrh r0, [r4, 0x2E] + movs r2, 0xFF + adds r1, r2, 0 + ands r1, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrh r1, [r0, 0x20] + adds r1, 0x1 + strh r1, [r0, 0x20] + ldrh r1, [r3, 0x2] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrh r1, [r0, 0x20] + adds r1, 0x1 + strh r1, [r0, 0x20] + ldrh r0, [r3, 0x2] + adds r1, r2, 0 + ands r1, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrh r1, [r0, 0x20] + adds r1, 0x1 + strh r1, [r0, 0x20] + ldrh r1, [r3, 0x4] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrh r1, [r0, 0x20] + adds r1, 0x1 + strh r1, [r0, 0x20] + ldrh r0, [r3, 0x4] + adds r1, r2, 0 + ands r1, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrh r1, [r0, 0x20] + adds r1, 0x1 + strh r1, [r0, 0x20] + ldrh r1, [r3, 0x6] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrh r1, [r0, 0x20] + adds r1, 0x1 + strh r1, [r0, 0x20] + ldrh r0, [r3, 0x6] + adds r1, r2, 0 + ands r1, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrh r1, [r0, 0x20] + adds r1, 0x1 + strh r1, [r0, 0x20] + ldrh r1, [r3, 0x8] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrh r1, [r0, 0x20] + adds r1, 0x1 + strh r1, [r0, 0x20] + ldrh r0, [r3, 0x8] + ands r2, r0 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r7 + ldrh r1, [r0, 0x20] + adds r1, 0x1 + strh r1, [r0, 0x20] +_081D7B52: + adds r6, r7, 0 + movs r5, 0xFF + ldrb r1, [r3, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x2B + ldrb r2, [r0] + cmp r2, 0x1 + beq _081D7C24 + cmp r2, 0x1 + bgt _081D7B78 + cmp r2, 0 + beq _081D7B84 + b _081D7D0C + .pool +_081D7B78: + cmp r2, 0x2 + bne _081D7B7E + b _081D7CAC +_081D7B7E: + cmp r2, 0x3 + beq _081D7C24 + b _081D7D0C +_081D7B84: + strh r2, [r4, 0x26] + ldrh r1, [r3] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r2, [r0, 0x26] + ldrh r0, [r3] + adds r1, r5, 0 + ands r1, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r2, [r0, 0x26] + ldrh r1, [r3, 0x2] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r2, [r0, 0x26] + ldrh r0, [r3, 0x2] + adds r1, r5, 0 + ands r1, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r2, [r0, 0x26] + ldrh r1, [r3, 0x4] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r2, [r0, 0x26] + ldrh r0, [r3, 0x4] + adds r1, r5, 0 + ands r1, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r2, [r0, 0x26] + ldrh r1, [r3, 0x6] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r2, [r0, 0x26] + ldrh r0, [r3, 0x6] + adds r1, r5, 0 + ands r1, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r2, [r0, 0x26] + ldrh r1, [r3, 0x8] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r2, [r0, 0x26] + ldrh r1, [r3, 0x8] + ands r1, r5 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + b _081D7D0A +_081D7C24: + movs r2, 0x1 + strh r2, [r4, 0x26] + ldrh r1, [r3] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrh r1, [r3, 0x2] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrb r1, [r3, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrh r1, [r3, 0x4] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrb r1, [r3, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrh r1, [r3, 0x6] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrb r1, [r3, 0x6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrh r1, [r3, 0x8] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrb r1, [r3, 0x8] + b _081D7D02 +_081D7CAC: + strh r2, [r4, 0x26] + ldrh r1, [r3] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrh r0, [r3] + adds r1, r5, 0 + ands r1, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrh r1, [r3, 0x2] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrh r0, [r3, 0x2] + adds r1, r5, 0 + ands r1, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrh r1, [r3, 0x4] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x26] + ldrh r1, [r3, 0x8] + ands r1, r5 +_081D7D02: + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 +_081D7D0A: + strh r2, [r0, 0x26] +_081D7D0C: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81D7A60 + + thumb_func_start sub_81D7D14 +sub_81D7D14: @ 81D7D14 + push {lr} + adds r2, r0, 0 + movs r0, 0x2E + adds r0, r2 + mov r12, r0 + ldrh r1, [r2, 0x22] + movs r3, 0x22 + ldrsh r0, [r2, r3] + cmp r0, 0xA0 + bgt _081D7E08 + adds r0, r1, 0 + adds r0, 0x8 + strh r0, [r2, 0x22] + ldr r3, =gSprites + ldrh r1, [r2, 0x2E] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x22] + adds r1, 0x8 + strh r1, [r0, 0x22] + ldrh r0, [r2, 0x2E] + movs r2, 0xFF + adds r1, r2, 0 + ands r1, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x22] + adds r1, 0x8 + strh r1, [r0, 0x22] + mov r0, r12 + ldrh r1, [r0, 0x2] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x22] + adds r1, 0x8 + strh r1, [r0, 0x22] + mov r1, r12 + ldrh r0, [r1, 0x2] + adds r1, r2, 0 + ands r1, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x22] + adds r1, 0x8 + strh r1, [r0, 0x22] + mov r0, r12 + ldrh r1, [r0, 0x4] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x22] + adds r1, 0x8 + strh r1, [r0, 0x22] + mov r1, r12 + ldrh r0, [r1, 0x4] + adds r1, r2, 0 + ands r1, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x22] + adds r1, 0x8 + strh r1, [r0, 0x22] + mov r0, r12 + ldrh r1, [r0, 0x6] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x22] + adds r1, 0x8 + strh r1, [r0, 0x22] + mov r1, r12 + ldrh r0, [r1, 0x6] + adds r1, r2, 0 + ands r1, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x22] + adds r1, 0x8 + strh r1, [r0, 0x22] + mov r0, r12 + ldrh r1, [r0, 0x8] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x22] + adds r1, 0x8 + strh r1, [r0, 0x22] + mov r1, r12 + ldrh r0, [r1, 0x8] + ands r2, r0 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x22] + adds r1, 0x8 + strh r1, [r0, 0x22] +_081D7E08: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D7D14 + + thumb_func_start sub_81D7E10 +sub_81D7E10: @ 81D7E10 + push {r4,lr} + bl sub_8121DA0 + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, =gUnknown_0862AA54 + movs r0, 0x1 + movs r2, 0x3 + bl InitBgsFromTemplates + ldr r4, =gUnknown_0203CF60 + ldr r1, [r4] + adds r1, 0x4 + movs r0, 0 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, =0x00000804 + adds r1, r0 + movs r0, 0x1 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, =0x00001004 + adds r1, r0 + movs r0, 0x2 + bl SetBgTilemapBuffer + bl sub_8121E10 + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + movs r1, 0x82 + lsls r1, 5 + movs r0, 0 + bl SetGpuReg + movs r0, 0 + bl ShowBg + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D7E10 + + thumb_func_start sub_81D7E9C +sub_81D7E9C: @ 81D7E9C + push {r4,lr} + sub sp, 0x4 + bl reset_temp_tile_data_buffers + ldr r1, =gUnknown_08DA33C0 + movs r4, 0 + str r4, [sp] + movs r0, 0 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, =gUnknown_08DA4F70 + str r4, [sp] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, =gUnknown_08DA3C94 + str r4, [sp] + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram +_081D7ED0: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _081D7ED0 + ldr r0, =gUnknown_08DA3988 + ldr r4, =gUnknown_0203CF60 + ldr r1, [r4] + adds r1, 0x4 + bl LZDecompressWram + ldr r0, =gUnknown_08DA60B8 + ldr r1, [r4] + ldr r2, =0x00000804 + adds r1, r2 + bl LZDecompressWram + ldr r0, =gUnknown_08DA4DEC + ldr r1, [r4] + ldr r2, =0x00001004 + adds r1, r2 + bl LZDecompressWram + ldr r0, =gUnknown_08DA4DA8 + movs r1, 0 + movs r2, 0x40 + bl LoadCompressedPalette + ldr r0, =gUnknown_0862AA90 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_0862AA98 + bl LoadCompressedObjectPalette + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D7E9C + + thumb_func_start sub_81D7F4C +sub_81D7F4C: @ 81D7F4C + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r5, =gTasks + 0x8 + adds r6, r4, r5 + movs r0, 0xE8 + lsls r0, 1 + bl PlayNewMapMusic + bl sub_81D7E10 + bl sub_81D7E9C + movs r1, 0x94 + lsls r1, 2 + movs r0, 0x50 + bl SetGpuReg + ldr r1, =0x00000808 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x1 + negs r0, r0 + movs r1, 0x10 + movs r2, 0 + bl BlendPalettes + ldr r0, =sub_81D67EC + bl SetVBlankCallback + ldr r0, =sub_81D81A4 + movs r1, 0 + bl CreateTask + movs r0, 0 + strh r0, [r6] + strh r0, [r6, 0x2] + subs r5, 0x8 + adds r4, r5 + ldr r0, =sub_81D7FC0 + str r0, [r4] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D7F4C + + thumb_func_start sub_81D7FC0 +sub_81D7FC0: @ 81D7FC0 + push {r4-r6,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + movs r0, 0 + ldrsh r5, [r4, r0] + cmp r5, 0x1 + beq _081D802A + cmp r5, 0x1 + bgt _081D7FE8 + cmp r5, 0 + beq _081D7FF4 + b _081D815A + .pool +_081D7FE8: + cmp r5, 0x2 + beq _081D80A4 + cmp r5, 0x3 + bne _081D7FF2 + b _081D8124 +_081D7FF2: + b _081D815A +_081D7FF4: + ldrh r1, [r4, 0x2] + movs r2, 0x2 + ldrsh r0, [r4, r2] + cmp r0, 0x8 + bne _081D8024 + movs r0, 0x1 + negs r0, r0 + str r5, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + strh r5, [r4, 0x4] + movs r0, 0x1E + strh r0, [r4, 0x6] + strh r5, [r4, 0x8] + movs r0, 0x7 + strh r0, [r4, 0xA] + strh r5, [r4, 0x2] + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _081D815A +_081D8024: + adds r0, r1, 0x1 + strh r0, [r4, 0x2] + b _081D815A +_081D802A: + ldrh r1, [r4, 0x6] + ldrh r3, [r4, 0x4] + adds r0, r1, r3 + strh r0, [r4, 0x4] + ldrh r2, [r4, 0xA] + ldrh r3, [r4, 0x8] + adds r0, r2, r3 + strh r0, [r4, 0x8] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _081D8046 + subs r0, r1, 0x3 + strh r0, [r4, 0x6] +_081D8046: + lsls r0, r2, 16 + cmp r0, 0 + beq _081D8050 + subs r0, r2, 0x1 + strh r0, [r4, 0xA] +_081D8050: + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0xFF + ble _081D8078 + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r4, 0x4] + movs r1, 0 + strh r1, [r4, 0x6] + movs r0, 0xC + strh r0, [r4, 0xC] + movs r3, 0x1 + negs r3, r3 + adds r0, r3, 0 + strh r0, [r4, 0xE] + strh r1, [r4, 0x2] + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_081D8078: + movs r1, 0xF0 + lsls r1, 7 + movs r2, 0xC0 + lsls r2, 5 + ldrh r0, [r4, 0x8] + adds r0, 0x20 + lsls r0, 16 + asrs r0, 16 + str r0, [sp] + movs r3, 0x4 + ldrsh r0, [r4, r3] + str r0, [sp, 0x4] + movs r3, 0x4 + ldrsh r0, [r4, r3] + str r0, [sp, 0x8] + movs r0, 0 + str r0, [sp, 0xC] + movs r0, 0x2 + movs r3, 0x78 + bl SetBgAffine + b _081D815A +_081D80A4: + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] + movs r1, 0xF0 + lsls r1, 7 + movs r2, 0xC0 + lsls r2, 5 + ldrh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 18 + adds r0, 0x20 + ldrh r3, [r4, 0x8] + adds r0, r3 + lsls r0, 16 + asrs r0, 16 + str r0, [sp] + movs r3, 0x4 + ldrsh r0, [r4, r3] + str r0, [sp, 0x4] + movs r3, 0x4 + ldrsh r0, [r4, r3] + str r0, [sp, 0x8] + movs r5, 0 + str r5, [sp, 0xC] + movs r0, 0x2 + movs r3, 0x78 + bl SetBgAffine + ldrh r0, [r4, 0xE] + ldrh r1, [r4, 0xC] + adds r0, r1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0xC + beq _081D80F4 + movs r0, 0xC + negs r0, r0 + cmp r1, r0 + bne _081D815A +_081D80F4: + movs r2, 0xE + ldrsh r0, [r4, r2] + negs r0, r0 + strh r0, [r4, 0xE] + movs r3, 0x2 + ldrsh r1, [r4, r3] + ldr r0, =0x00000127 + cmp r1, r0 + ble _081D815A + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + movs r0, 0x1 + negs r0, r0 + str r5, [sp] + movs r1, 0x6 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _081D815A + .pool +_081D8124: + ldrh r0, [r4, 0x4] + adds r0, 0x10 + strh r0, [r4, 0x4] + movs r1, 0xF0 + lsls r1, 7 + movs r2, 0xC0 + lsls r2, 5 + ldrh r0, [r4, 0x8] + adds r0, 0x20 + lsls r0, 16 + asrs r0, 16 + str r0, [sp] + movs r3, 0x4 + ldrsh r0, [r4, r3] + str r0, [sp, 0x4] + movs r3, 0x4 + ldrsh r0, [r4, r3] + str r0, [sp, 0x8] + movs r0, 0 + str r0, [sp, 0xC] + movs r0, 0x2 + movs r3, 0x78 + bl SetBgAffine + adds r0, r6, 0 + bl sub_81D8164 +_081D815A: + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81D7FC0 + + thumb_func_start sub_81D8164 +sub_81D8164: @ 81D8164 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081D8192 + movs r0, 0 + bl SetVBlankCallback + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r0, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81D6840 + str r0, [r1] +_081D8192: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D8164 + + thumb_func_start sub_81D81A4 +sub_81D81A4: @ 81D81A4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + ldrh r1, [r4, 0x2] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _081D8254 + ldr r0, =gUnknown_0862AAA0 + ldr r3, =gUnknown_0862AAB8 + movs r1, 0 + ldrsh r2, [r4, r1] + lsls r2, 1 + adds r1, r2, r3 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + lsls r1, 18 + movs r6, 0xF0 + lsls r6, 15 + adds r1, r6 + asrs r1, 16 + adds r3, 0x1 + adds r2, r3 + ldrb r2, [r2] + lsls r2, 24 + asrs r2, 24 + lsls r2, 18 + movs r3, 0xA0 + lsls r3, 15 + adds r2, r3 + asrs r2, 16 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gSprites + lsls r3, r0, 4 + adds r3, r0 + lsls r3, 2 + adds r3, r1 + movs r0, 0 + ldrsb r0, [r4, r0] + strh r0, [r3, 0x2E] + ldrb r2, [r3, 0x1] + movs r1, 0xD + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + movs r2, 0x4 + orrs r0, r2 + movs r2, 0x3 + orrs r0, r2 + strb r0, [r3, 0x1] + ldrb r0, [r3, 0x5] + ands r1, r0 + movs r0, 0x8 + orrs r1, r0 + strb r1, [r3, 0x5] + adds r0, r3, 0 + bl InitSpriteAffineAnim + ldrh r1, [r4] + movs r6, 0 + ldrsh r0, [r4, r6] + cmp r0, 0x9 + bne _081D8250 + adds r0, r5, 0 + bl DestroyTask + b _081D825A + .pool +_081D8250: + adds r0, r1, 0x1 + strh r0, [r4] +_081D8254: + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] +_081D825A: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81D81A4 + + thumb_func_start sub_81D8260 +sub_81D8260: @ 81D8260 + push {lr} + adds r2, r0, 0 + movs r1, 0x30 + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _081D8270 + strh r0, [r2, 0x24] + b _081D829A +_081D8270: + ldr r1, =gUnknown_0862AAB8 + movs r3, 0x2E + ldrsh r0, [r2, r3] + lsls r0, 1 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + ldrh r3, [r2, 0x24] + adds r0, r3 + strh r0, [r2, 0x24] + movs r3, 0x2E + ldrsh r0, [r2, r3] + lsls r0, 1 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + ldrh r1, [r2, 0x26] + adds r0, r1 +_081D829A: + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x30] + adds r0, 0x1 + movs r1, 0xF + ands r0, r1 + strh r0, [r2, 0x30] + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D8260 + + thumb_func_start sub_81D82B0 +sub_81D82B0: @ 81D82B0 + push {r4,lr} + bl sub_8121DA0 + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, =gUnknown_0862AACC + movs r0, 0 + movs r2, 0x4 + bl InitBgsFromTemplates + ldr r4, =gUnknown_0203CF60 + ldr r1, [r4] + adds r1, 0x4 + movs r0, 0 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, =0x00000804 + adds r1, r0 + movs r0, 0x1 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, =0x00001004 + adds r1, r0 + movs r0, 0x2 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, =0x00001804 + adds r1, r0 + movs r0, 0x3 + bl SetBgTilemapBuffer + bl sub_8121E10 + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0x3 + bl schedule_bg_copy_tilemap_to_vram + movs r1, 0x82 + lsls r1, 5 + movs r0, 0 + bl SetGpuReg + movs r0, 0 + bl ShowBg + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + movs r0, 0x3 + bl ShowBg + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D82B0 + + thumb_func_start sub_81D8358 +sub_81D8358: @ 81D8358 + push {r4-r7,lr} + sub sp, 0xC + bl reset_temp_tile_data_buffers + ldr r1, =gUnknown_08DA7528 + movs r4, 0 + str r4, [sp] + movs r0, 0 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, =gUnknown_08DA69BC + str r4, [sp] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + add r7, sp, 0x8 +_081D8380: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + bne _081D8380 + ldr r0, =gUnknown_08DA7AAC + ldr r5, =gUnknown_0203CF60 + ldr r1, [r5] + adds r1, 0x4 + bl LZDecompressWram + ldr r0, =gUnknown_08DA7784 + ldr r1, [r5] + ldr r4, =0x00001804 + adds r1, r4 + bl LZDecompressWram + str r6, [sp, 0x4] + ldr r1, [r5] + ldr r0, =0x00001004 + adds r1, r0 + ldr r2, =0x01000200 + add r0, sp, 0x4 + bl CpuFastSet + ldr r1, [r5] + adds r4, r1, r4 + ldr r0, =0x00000804 + adds r1, r0 + movs r2, 0x80 + lsls r2, 2 + adds r0, r4, 0 + bl CpuFastSet + str r6, [sp, 0x8] + ldr r1, [r5] + ldr r0, =0x00000904 + adds r1, r0 + ldr r2, =0x010000d0 + adds r0, r7, 0 + bl CpuFastSet + ldr r0, =gUnknown_08DA7744 + movs r1, 0 + movs r2, 0x40 + bl LoadCompressedPalette + ldr r0, =gPlttBufferUnfaded + ldr r1, =0x00007fff + strh r1, [r0] + ldr r0, =gPlttBufferFaded + strh r1, [r0] + ldr r0, =gUnknown_0862AAFC + bl LoadCompressedObjectPic + ldr r0, =gUnknown_0862AB04 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_0862AB0C + bl LoadCompressedObjectPalette + add sp, 0xC + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D8358 + + thumb_func_start sub_81D844C +sub_81D844C: @ 81D844C + push {r4,r5,lr} + movs r0, 0x6 + bl GetGpuReg + lsls r0, 16 + lsrs r2, r0, 16 + adds r1, r2, 0 + subs r1, 0x18 + lsls r0, r1, 16 + lsrs r0, 16 + cmp r0, 0x6F + bhi _081D848C + ldr r0, =gUnknown_0203CF60 + ldr r0, [r0] + ldr r3, =0x00002008 + adds r0, r3 + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r1, r0 + bgt _081D848C + ldr r1, =0x04000052 + ldr r3, =0x00000d08 + b _081D8492 + .pool +_081D848C: + ldr r1, =0x04000052 + movs r3, 0x80 + lsls r3, 5 +_081D8492: + adds r0, r3, 0 + strh r0, [r1] + cmp r2, 0 + bne _081D84E0 + ldr r0, =gUnknown_0203CF60 + ldr r1, [r0] + ldr r2, =0x00002008 + adds r3, r1, r2 + ldrh r4, [r3] + movs r1, 0 + ldrsh r2, [r3, r1] + ldr r1, =0x00001fff + adds r5, r0, 0 + cmp r2, r1 + bgt _081D84D4 + cmp r2, 0x27 + bgt _081D84C8 + adds r0, r4, 0x4 + b _081D84D2 + .pool +_081D84C8: + cmp r2, 0x4F + bgt _081D84D0 + adds r0, r4, 0x2 + b _081D84D2 +_081D84D0: + adds r0, r4, 0x1 +_081D84D2: + strh r0, [r3] +_081D84D4: + ldr r1, [r5] + ldr r2, =0x0000200a + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_081D84E0: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D844C + + thumb_func_start sub_81D84EC +sub_81D84EC: @ 81D84EC + push {r4-r6,lr} + mov r6, r8 + push {r6} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r6, =gTasks + 0x8 + adds r5, r4, r6 + bl sub_81D82B0 + bl sub_81D8358 + ldr r1, =0x00001e41 + movs r0, 0x50 + bl SetGpuRegBits + movs r0, 0x80 + lsls r0, 5 + mov r8, r0 + movs r0, 0x52 + mov r1, r8 + bl SetGpuReg + movs r0, 0x1 + negs r0, r0 + movs r1, 0x10 + movs r2, 0 + bl BlendPalettes + ldr r0, =sub_81D67EC + bl SetVBlankCallback + ldr r0, =gUnknown_0203CF60 + ldr r0, [r0] + ldr r1, =0x00002008 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r2, =0x0000200a + adds r0, r2 + strh r1, [r0] + strh r1, [r5] + strh r1, [r5, 0x2] + strh r1, [r5, 0x4] + strh r1, [r5, 0x6] + mov r0, r8 + strh r0, [r5, 0x8] + subs r6, 0x8 + adds r4, r6 + ldr r0, =sub_81D857C + str r0, [r4] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D84EC + + thumb_func_start sub_81D857C +sub_81D857C: @ 81D857C + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r5, r0, r1 + movs r1, 0 + ldrsh r0, [r5, r1] + cmp r0, 0x4 + bhi _081D8674 + lsls r0, 2 + ldr r1, =_081D85A8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081D85A8: + .4byte _081D85BC + .4byte _081D85DC + .4byte _081D861A + .4byte _081D863A + .4byte _081D8656 +_081D85BC: + ldrh r1, [r5, 0x2] + movs r2, 0x2 + ldrsh r0, [r5, r2] + cmp r0, 0x8 + bne _081D8634 + movs r0, 0x1 + negs r0, r0 + movs r4, 0 + str r4, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + strh r4, [r5, 0x2] + b _081D864E +_081D85DC: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _081D8674 + ldrh r2, [r5, 0x2] + movs r3, 0x2 + ldrsh r0, [r5, r3] + cmp r0, 0xA + bne _081D8614 + strh r1, [r5, 0x2] + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + ldr r0, =sub_81D844C + bl SetHBlankCallback + movs r0, 0x3 + bl EnableInterrupts + b _081D8674 + .pool +_081D8614: + adds r0, r2, 0x1 + strh r0, [r5, 0x2] + b _081D8674 +_081D861A: + ldrh r1, [r5, 0x2] + movs r2, 0x2 + ldrsh r0, [r5, r2] + cmp r0, 0x50 + bne _081D8634 + movs r0, 0 + strh r0, [r5, 0x2] + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + bl sub_81D86CC + b _081D8674 +_081D8634: + adds r0, r1, 0x1 + strh r0, [r5, 0x2] + b _081D8674 +_081D863A: + ldrh r0, [r5, 0x2] + adds r0, 0x1 + strh r0, [r5, 0x2] + lsls r0, 16 + movs r1, 0xB8 + lsls r1, 17 + cmp r0, r1 + bne _081D8674 + movs r0, 0 + strh r0, [r5, 0x2] +_081D864E: + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + b _081D8674 +_081D8656: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81D8684 + str r1, [r0] +_081D8674: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D857C + + thumb_func_start sub_81D8684 +sub_81D8684: @ 81D8684 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081D86B8 + movs r0, 0 + bl SetVBlankCallback + movs r0, 0 + bl SetHBlankCallback + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r0, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81D6840 + str r0, [r1] +_081D86B8: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D8684 + + thumb_func_start sub_81D86CC +sub_81D86CC: @ 81D86CC + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r0, =gUnknown_0862AB14 + movs r1, 0xA0 + movs r2, 0 + movs r3, 0 + bl CreateSprite + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + lsls r5, r6, 4 + adds r5, r6 + lsls r5, 2 + ldr r4, =gSprites + 0x2E + adds r0, r5, r4 + mov r8, r0 + ldr r0, =gUnknown_0862AB2C + movs r2, 0x30 + negs r2, r2 + movs r1, 0xB8 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + mov r1, r8 + strh r0, [r1] + adds r3, r4, 0 + subs r3, 0x2E + subs r4, 0x12 + adds r4, r5, r4 + ldr r0, =sub_81D874C + str r0, [r4] + adds r5, r3 + ldrb r0, [r5, 0x5] + movs r2, 0xC + orrs r0, r2 + strb r0, [r5, 0x5] + movs r4, 0 + ldrsh r1, [r1, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x5] + orrs r1, r2 + strb r1, [r0, 0x5] + adds r0, r6, 0 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D86CC + + thumb_func_start sub_81D874C +sub_81D874C: @ 81D874C + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r5, 0 + adds r4, 0x2E + movs r0, 0x4 + ldrsh r1, [r4, r0] + cmp r1, 0 + bne _081D8764 + movs r0, 0xC + strh r0, [r4, 0x6] + movs r0, 0x8 + b _081D87C2 +_081D8764: + movs r0, 0x80 + lsls r0, 1 + cmp r1, r0 + bne _081D8774 + movs r0, 0x9 + strh r0, [r4, 0x6] + movs r0, 0x7 + b _081D87C2 +_081D8774: + movs r0, 0x86 + lsls r0, 1 + cmp r1, r0 + bne _081D8784 + movs r0, 0x8 + strh r0, [r4, 0x6] + movs r0, 0x6 + b _081D87C2 +_081D8784: + movs r0, 0x8C + lsls r0, 1 + cmp r1, r0 + bne _081D8794 + movs r0, 0x7 + strh r0, [r4, 0x6] + movs r0, 0x5 + b _081D87C2 +_081D8794: + movs r0, 0x92 + lsls r0, 1 + cmp r1, r0 + bne _081D87A4 + movs r0, 0x6 + strh r0, [r4, 0x6] + movs r0, 0x4 + b _081D87C2 +_081D87A4: + movs r0, 0x98 + lsls r0, 1 + cmp r1, r0 + bne _081D87B4 + movs r0, 0x5 + strh r0, [r4, 0x6] + movs r0, 0x3 + b _081D87C2 +_081D87B4: + movs r0, 0xA0 + lsls r0, 1 + cmp r1, r0 + bne _081D87C4 + movs r0, 0x4 + strh r0, [r4, 0x6] + movs r0, 0x2 +_081D87C2: + strh r0, [r4, 0x8] +_081D87C4: + movs r1, 0x4 + ldrsh r0, [r4, r1] + movs r2, 0x6 + ldrsh r1, [r4, r2] + bl __modsi3 + cmp r0, 0 + bne _081D87EE + ldrh r0, [r5, 0x24] + subs r0, 0x1 + strh r0, [r5, 0x24] + ldr r2, =gSprites + movs r0, 0 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x24] + subs r1, 0x1 + strh r1, [r0, 0x24] +_081D87EE: + movs r1, 0x4 + ldrsh r0, [r4, r1] + movs r2, 0x8 + ldrsh r1, [r4, r2] + bl __modsi3 + cmp r0, 0 + bne _081D8818 + ldrh r0, [r5, 0x26] + adds r0, 0x1 + strh r0, [r5, 0x26] + ldr r2, =gSprites + movs r0, 0 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + adds r1, 0x1 + strh r1, [r0, 0x26] +_081D8818: + ldrh r0, [r4, 0x4] + adds r0, 0x1 + strh r0, [r4, 0x4] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D874C + + thumb_func_start sub_81D8828 +sub_81D8828: @ 81D8828 + push {r4,lr} + bl sub_8121DA0 + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, =gUnknown_0862AB44 + movs r0, 0 + movs r2, 0x4 + bl InitBgsFromTemplates + ldr r4, =gUnknown_0203CF60 + ldr r1, [r4] + adds r1, 0x4 + movs r0, 0 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, =0x00000804 + adds r1, r0 + movs r0, 0x1 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, =0x00001004 + adds r1, r0 + movs r0, 0x2 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, =0x00001804 + adds r1, r0 + movs r0, 0x3 + bl SetBgTilemapBuffer + bl sub_8121E10 + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0x3 + bl schedule_bg_copy_tilemap_to_vram + movs r1, 0xC1 + lsls r1, 6 + movs r0, 0 + bl SetGpuReg + movs r0, 0 + bl ShowBg + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + movs r0, 0x3 + bl ShowBg + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D8828 + + thumb_func_start sub_81D88D0 +sub_81D88D0: @ 81D88D0 + push {r4,lr} + sub sp, 0x4 + bl reset_temp_tile_data_buffers + ldr r1, =gUnknown_08DA80BC + movs r4, 0 + str r4, [sp] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, =gUnknown_08DA7EAC + str r4, [sp] + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, =gUnknown_08DA7C30 + str r4, [sp] + movs r0, 0x3 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram +_081D8904: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _081D8904 + ldr r0, =gUnknown_08DA8D6C + ldr r4, =gUnknown_0203CF60 + ldr r1, [r4] + adds r1, 0x4 + bl LZDecompressWram + ldr r0, =gUnknown_08DA8B40 + ldr r1, [r4] + ldr r2, =0x00000804 + adds r1, r2 + bl LZDecompressWram + ldr r0, =gUnknown_08DA7FB4 + ldr r1, [r4] + ldr r2, =0x00001004 + adds r1, r2 + bl LZDecompressWram + ldr r0, =gUnknown_08DA7D6C + ldr r1, [r4] + ldr r2, =0x00001804 + adds r1, r2 + bl LZDecompressWram + ldr r0, =gUnknown_08DA8E84 + movs r1, 0 + movs r2, 0x80 + bl LoadCompressedPalette + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D88D0 + + thumb_func_start sub_81D8980 +sub_81D8980: @ 81D8980 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r5, =gTasks + 0x8 + adds r6, r4, r5 + bl sub_81D8828 + bl sub_81D88D0 + bl sub_81D68C8 + movs r0, 0x1 + negs r0, r0 + movs r1, 0x10 + movs r2, 0 + bl BlendPalettes + ldr r0, =sub_81D67EC + bl SetVBlankCallback + movs r0, 0 + strh r0, [r6] + strh r0, [r6, 0x2] + ldr r0, =sub_81D8AD8 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x4] + subs r5, 0x8 + adds r4, r5 + ldr r0, =sub_81D89E0 + str r0, [r4] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D8980 + + thumb_func_start sub_81D89E0 +sub_81D89E0: @ 81D89E0 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + bl sub_81D8BB4 + ldrh r1, [r4, 0x6] + movs r0, 0x7 + ands r0, r1 + cmp r0, 0 + bne _081D8A16 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bgt _081D8A16 + movs r2, 0x2 + ldrsh r0, [r4, r2] + cmp r0, 0x59 + bgt _081D8A16 + movs r0, 0x67 + bl PlaySE +_081D8A16: + ldrh r0, [r4, 0x6] + adds r0, 0x1 + strh r0, [r4, 0x6] + movs r0, 0 + ldrsh r5, [r4, r0] + cmp r5, 0x1 + beq _081D8A5C + cmp r5, 0x1 + bgt _081D8A34 + cmp r5, 0 + beq _081D8A3E + b _081D8AC6 + .pool +_081D8A34: + cmp r5, 0x2 + beq _081D8A8C + cmp r5, 0x3 + beq _081D8AA8 + b _081D8AC6 +_081D8A3E: + ldrh r1, [r4, 0x2] + movs r2, 0x2 + ldrsh r0, [r4, r2] + cmp r0, 0x8 + bne _081D8AA2 + movs r0, 0x1 + negs r0, r0 + str r5, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + strh r5, [r4, 0x2] + b _081D8A9A +_081D8A5C: + ldrh r1, [r4, 0x2] + movs r2, 0x2 + ldrsh r0, [r4, r2] + cmp r0, 0x7F + bne _081D8AA2 + movs r0, 0 + strh r0, [r4, 0x2] + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + ldr r2, =gTasks + movs r0, 0x4 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, =sub_81D8B2C + b _081D8AC4 + .pool +_081D8A8C: + ldrh r1, [r4, 0x2] + movs r2, 0x2 + ldrsh r0, [r4, r2] + cmp r0, 0xC + bne _081D8AA2 + movs r0, 0 + strh r0, [r4, 0x2] +_081D8A9A: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _081D8AC6 +_081D8AA2: + adds r0, r1, 0x1 + strh r0, [r4, 0x2] + b _081D8AC6 +_081D8AA8: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_81D8BEC +_081D8AC4: + str r1, [r0] +_081D8AC6: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D89E0 + + thumb_func_start sub_81D8AD8 +sub_81D8AD8: @ 81D8AD8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r5, r1, r0 + ldrh r1, [r5, 0x1E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _081D8B1C + bl Random + movs r4, 0x7 + adds r1, r4, 0 + ands r1, r0 + subs r1, 0x4 + lsls r1, 8 + movs r0, 0x1 + movs r2, 0 + bl ChangeBgX + bl Random + ands r4, r0 + subs r4, 0x4 + lsls r4, 8 + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0 + bl ChangeBgY +_081D8B1C: + ldrh r0, [r5, 0x1E] + adds r0, 0x1 + strh r0, [r5, 0x1E] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D8AD8 + + thumb_func_start sub_81D8B2C +sub_81D8B2C: @ 81D8B2C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r4, r1, r0 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _081D8B70 + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + movs r0, 0xA + strh r0, [r4, 0x2] + movs r1, 0x1 + negs r1, r1 + adds r0, r1, 0 + b _081D8BAA + .pool +_081D8B70: + cmp r0, 0x1 + bne _081D8BAC + movs r0, 0x2 + ldrsh r1, [r4, r0] + lsls r1, 8 + movs r0, 0x1 + movs r2, 0x2 + bl ChangeBgX + movs r0, 0x2 + ldrsh r1, [r4, r0] + lsls r1, 8 + movs r0, 0x1 + movs r2, 0x1 + bl ChangeBgY + ldrh r0, [r4, 0x4] + ldrh r1, [r4, 0x2] + adds r0, r1 + strh r0, [r4, 0x2] + lsls r0, 16 + asrs r0, 16 + movs r1, 0xA + negs r1, r1 + cmp r0, r1 + bne _081D8BAC + movs r1, 0x4 + ldrsh r0, [r4, r1] + negs r0, r0 +_081D8BAA: + strh r0, [r4, 0x4] +_081D8BAC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81D8B2C + + thumb_func_start sub_81D8BB4 +sub_81D8BB4: @ 81D8BB4 + push {r4,lr} + movs r4, 0x80 + lsls r4, 3 + movs r0, 0x2 + adds r1, r4, 0 + movs r2, 0x2 + bl ChangeBgX + movs r0, 0x2 + adds r1, r4, 0 + movs r2, 0x1 + bl ChangeBgY + movs r4, 0x80 + lsls r4, 4 + movs r0, 0 + adds r1, r4, 0 + movs r2, 0x2 + bl ChangeBgX + movs r0, 0 + adds r1, r4, 0 + movs r2, 0x1 + bl ChangeBgY + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81D8BB4 + + thumb_func_start sub_81D8BEC +sub_81D8BEC: @ 81D8BEC + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r5, r1, 3 + ldr r6, =gTasks + 0x8 + adds r4, r5, r6 + bl sub_81D8BB4 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081D8C26 + movs r0, 0 + bl SetVBlankCallback + bl sub_81D6904 + ldrb r0, [r4, 0x4] + bl DestroyTask + adds r0, r6, 0 + subs r0, 0x8 + adds r0, r5, r0 + ldr r1, =sub_81D6840 + str r1, [r0] +_081D8C26: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D8BEC + + thumb_func_start sub_81D8C38 +sub_81D8C38: @ 81D8C38 + push {r4,lr} + bl sub_8121DA0 + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, =gUnknown_0862AD08 + movs r0, 0x1 + movs r2, 0x3 + bl InitBgsFromTemplates + ldr r4, =gUnknown_0203CF60 + ldr r1, [r4] + adds r1, 0x4 + movs r0, 0 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, =0x00000804 + adds r1, r0 + movs r0, 0x1 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, =0x00001004 + adds r1, r0 + movs r0, 0x2 + bl SetBgTilemapBuffer + bl sub_8121E10 + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0x1 + bl schedule_bg_copy_tilemap_to_vram + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + movs r1, 0xC1 + lsls r1, 6 + movs r0, 0 + bl SetGpuReg + movs r0, 0 + bl ShowBg + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D8C38 + + thumb_func_start sub_81D8CC4 +sub_81D8CC4: @ 81D8CC4 + push {r4,lr} + sub sp, 0x4 + bl reset_temp_tile_data_buffers + ldr r1, =gUnknown_08DAAB24 + movs r4, 0 + str r4, [sp] + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, =gUnknown_08DAA8B4 + str r4, [sp] + movs r0, 0 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram +_081D8CEA: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _081D8CEA + ldr r0, =gUnknown_08DAAE54 + ldr r4, =gUnknown_0203CF60 + ldr r1, [r4] + ldr r2, =0x00000804 + adds r1, r2 + bl LZDecompressWram + ldr r0, =gUnknown_08DAAC1C + ldr r1, [r4] + adds r1, 0x4 + bl LZDecompressWram + ldr r0, =gUnknown_08DAAF98 + ldr r1, [r4] + ldr r2, =0x00001004 + adds r1, r2 + bl LZDecompressWram + ldr r0, =gUnknown_08DAAFEC + movs r1, 0 + movs r2, 0x60 + bl LoadCompressedPalette + ldr r0, =gUnknown_0862AC28 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_0862AC30 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_0862AC38 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_0862AC40 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_0862AC48 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_0862AC50 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_0862AC58 + bl LoadCompressedObjectPalette + ldr r0, =gUnknown_0862AC60 + bl LoadCompressedObjectPalette + ldr r0, =gUnknown_0862AC68 + bl LoadCompressedObjectPalette + ldr r0, =gUnknown_0862AC70 + bl LoadCompressedObjectPalette + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D8CC4 + + thumb_func_start sub_81D8DB4 +sub_81D8DB4: @ 81D8DB4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r5, =gTasks + 0x8 + adds r6, r4, r5 + bl sub_81D8C38 + bl sub_81D8CC4 + bl sub_81D68C8 + movs r1, 0x80 + lsls r1, 3 + movs r0, 0 + bl ClearGpuRegBits + ldr r1, =0x00000241 + movs r0, 0x50 + bl SetGpuReg + ldr r1, =0x00000e09 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x1 + negs r0, r0 + movs r1, 0x10 + movs r2, 0 + bl BlendPalettes + ldr r0, =sub_81D67EC + bl SetVBlankCallback + movs r0, 0 + strh r0, [r6] + strh r0, [r6, 0x2] + subs r5, 0x8 + adds r4, r5 + ldr r0, =sub_81D8E80 + str r0, [r4] + ldr r0, =sub_81D8FB0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x4] + movs r0, 0x4 + ldrsh r1, [r6, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r5 + movs r2, 0 + strh r2, [r0, 0x8] + movs r0, 0x4 + ldrsh r1, [r6, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r5 + strh r2, [r0, 0xA] + movs r0, 0x4 + ldrsh r1, [r6, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r5 + strh r2, [r0, 0xC] + movs r0, 0x4 + ldrsh r1, [r6, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r5 + movs r2, 0x1 + strh r2, [r0, 0xE] + movs r0, 0x4 + ldrsh r1, [r6, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r5 + strh r2, [r0, 0x10] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D8DB4 + + thumb_func_start sub_81D8E80 +sub_81D8E80: @ 81D8E80 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r7, r0, 3 + ldr r0, =gTasks + 0x8 + mov r8, r0 + adds r4, r7, r0 + movs r1, 0 + ldrsh r5, [r4, r1] + cmp r5, 0x1 + beq _081D8EDE + cmp r5, 0x1 + bgt _081D8EB0 + cmp r5, 0 + beq _081D8EBA + b _081D8FA0 + .pool +_081D8EB0: + cmp r5, 0x2 + beq _081D8F1E + cmp r5, 0x3 + beq _081D8F84 + b _081D8FA0 +_081D8EBA: + ldrh r1, [r4, 0x2] + movs r2, 0x2 + ldrsh r0, [r4, r2] + cmp r0, 0x8 + bne _081D8F18 + adds r0, r6, 0 + bl sub_81D90A8 + movs r0, 0x1 + negs r0, r0 + str r5, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + strh r5, [r4, 0x2] + b _081D8F30 +_081D8EDE: + ldr r2, =gSprites + movs r0, 0xA + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =sub_81D97E0 + cmp r1, r0 + bne _081D8FA0 + ldrh r1, [r4, 0x2] + movs r2, 0x2 + ldrsh r0, [r4, r2] + cmp r0, 0x40 + bne _081D8F18 + adds r0, r6, 0 + bl sub_81D94D4 + adds r0, r6, 0 + bl sub_81D93D8 + b _081D8F2C + .pool +_081D8F18: + adds r0, r1, 0x1 + strh r0, [r4, 0x2] + b _081D8FA0 +_081D8F1E: + ldrh r2, [r4, 0x2] + movs r0, 0x2 + ldrsh r1, [r4, r0] + movs r0, 0xE0 + lsls r0, 1 + cmp r1, r0 + bne _081D8F38 +_081D8F2C: + movs r0, 0 + strh r0, [r4, 0x2] +_081D8F30: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _081D8FA0 +_081D8F38: + adds r0, r2, 0x1 + strh r0, [r4, 0x2] + movs r1, 0x2 + ldrsh r0, [r4, r1] + movs r1, 0x90 + bl __modsi3 + lsls r0, 16 + asrs r4, r0, 16 + cmp r4, 0 + bne _081D8FA0 + ldr r0, =0x0000fffe + ldr r1, =0x0000ffff + str r1, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl sub_80A2C44 + ldr r0, =0xffff0000 + str r4, [sp] + str r4, [sp, 0x4] + movs r1, 0x1 + str r1, [sp, 0x8] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl sub_80A2C44 + b _081D8FA0 + .pool +_081D8F84: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r1, 0x4 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + mov r0, r8 + subs r0, 0x8 + adds r0, r7, r0 + ldr r1, =sub_81D9034 + str r1, [r0] +_081D8FA0: + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D8E80 + + thumb_func_start sub_81D8FB0 +sub_81D8FB0: @ 81D8FB0 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r4, r1, r0 + ldrh r1, [r4] + movs r0, 0xF + ands r0, r1 + cmp r0, 0 + bne _081D9024 + ldrh r1, [r4, 0x2] + adds r1, 0xE + lsls r1, 8 + movs r2, 0xF8 + lsls r2, 5 + adds r0, r2, 0 + ands r1, r0 + ldrh r0, [r4, 0x4] + adds r0, 0x9 + movs r2, 0xF + ands r0, r2 + orrs r1, r0 + movs r0, 0x52 + bl SetGpuReg + ldrh r1, [r4, 0x2] + ldrh r0, [r4, 0x6] + subs r1, r0 + strh r1, [r4, 0x2] + ldrh r0, [r4, 0x8] + ldrh r2, [r4, 0x4] + adds r0, r2 + strh r0, [r4, 0x4] + lsls r1, 16 + asrs r1, 16 + movs r0, 0x3 + negs r0, r0 + cmp r1, r0 + beq _081D9008 + cmp r1, 0 + bne _081D9010 +_081D9008: + movs r1, 0x6 + ldrsh r0, [r4, r1] + negs r0, r0 + strh r0, [r4, 0x6] +_081D9010: + movs r2, 0x4 + ldrsh r0, [r4, r2] + cmp r0, 0x3 + beq _081D901C + cmp r0, 0 + bne _081D9024 +_081D901C: + movs r1, 0x8 + ldrsh r0, [r4, r1] + negs r0, r0 + strh r0, [r4, 0x8] +_081D9024: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D8FB0 + + thumb_func_start sub_81D9034 +sub_81D9034: @ 81D9034 + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r6, r1, 3 + ldr r7, =gTasks + 0x8 + adds r4, r6, r7 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _081D90A0 + bl StopMapMusic + movs r1, 0x2 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _081D9078 + movs r0, 0 + bl SetVBlankCallback + bl sub_81D6904 + bl ResetSpriteData + bl FreeAllSpritePalettes + ldrb r0, [r4, 0x4] + bl DestroyTask +_081D9078: + ldrh r1, [r4, 0x2] + movs r2, 0x2 + ldrsh r0, [r4, r2] + cmp r0, 0x20 + bne _081D909C + strh r5, [r4, 0x2] + adds r0, r7, 0 + subs r0, 0x8 + adds r0, r6, r0 + ldr r1, =sub_81D6840 + str r1, [r0] + b _081D90A0 + .pool +_081D909C: + adds r0, r1, 0x1 + strh r0, [r4, 0x2] +_081D90A0: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81D9034 + + thumb_func_start sub_81D90A8 +sub_81D90A8: @ 81D90A8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, =gTasks + 0x8 + adds r4, r0 + ldr r0, =gUnknown_0862AC78 + movs r1, 0x40 + movs r2, 0x78 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x6] + movs r0, 0x6 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + 0x2E + mov r10, r1 + adds r7, r0, r1 + ldr r0, =gUnknown_0862AC90 + movs r1, 0x10 + movs r2, 0x82 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r7] + movs r2, 0x2E + negs r2, r2 + add r2, r10 + mov r8, r2 + movs r1, 0x6 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r8 + ldrb r2, [r1, 0x5] + movs r6, 0xD + negs r6, r6 + adds r0, r6, 0 + ands r0, r2 + movs r2, 0x4 + mov r9, r2 + mov r2, r9 + orrs r0, r2 + strb r0, [r1, 0x5] + movs r1, 0 + ldrsh r0, [r7, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r8 + ldrb r2, [r1, 0x5] + adds r0, r6, 0 + ands r0, r2 + mov r2, r9 + orrs r0, r2 + strb r0, [r1, 0x5] + ldr r5, =gUnknown_0862ACA8 + adds r0, r5, 0 + movs r1, 0xA0 + movs r2, 0x80 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x8] + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + mov r1, r10 + adds r7, r0, r1 + adds r0, r5, 0 + movs r1, 0xC0 + movs r2, 0x80 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r7] + adds r0, r5, 0 + movs r1, 0xE0 + movs r2, 0x80 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r7, 0x2] + movs r2, 0x8 + ldrsh r0, [r4, r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r8 + ldrb r2, [r1, 0x5] + adds r0, r6, 0 + ands r0, r2 + mov r2, r9 + orrs r0, r2 + strb r0, [r1, 0x5] + movs r1, 0 + ldrsh r0, [r7, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r8 + ldrb r2, [r1, 0x5] + adds r0, r6, 0 + ands r0, r2 + mov r2, r9 + orrs r0, r2 + strb r0, [r1, 0x5] + movs r1, 0x2 + ldrsh r0, [r7, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r8 + ldrb r2, [r1, 0x5] + adds r0, r6, 0 + ands r0, r2 + mov r2, r9 + orrs r0, r2 + strb r0, [r1, 0x5] + movs r0, 0 + ldrsh r1, [r7, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + movs r1, 0x1 + bl StartSpriteAnim + movs r2, 0x2 + ldrsh r1, [r7, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + movs r1, 0x2 + bl StartSpriteAnim + ldr r0, =gUnknown_0862ACC0 + movs r2, 0x41 + negs r2, r2 + movs r1, 0x78 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xA] + movs r0, 0xA + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + mov r1, r10 + adds r7, r0, r1 + ldr r0, =gUnknown_0862ACD8 + movs r2, 0x71 + negs r2, r2 + movs r1, 0x78 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r7] + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r8 + ldrb r2, [r1, 0x5] + adds r0, r6, 0 + ands r0, r2 + mov r2, r9 + orrs r0, r2 + strb r0, [r1, 0x5] + movs r0, 0 + ldrsh r1, [r7, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + ldrb r1, [r0, 0x5] + ands r6, r1 + orrs r6, r2 + strb r6, [r0, 0x5] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D90A8 + + thumb_func_start sub_81D9274 +sub_81D9274: @ 81D9274 + push {r4-r6,lr} + mov r6, r8 + push {r6} + lsls r0, 24 + lsrs r0, 24 + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + ldr r0, =gTasks + 0x8 + adds r2, r0 + ldr r3, =gSprites + movs r0, 0x6 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + movs r1, 0x1C + adds r1, r3 + mov r8, r1 + add r0, r8 + ldr r6, =pokemon_alive_on_battle_side + str r6, [r0] + movs r0, 0x6 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r4, 0 + strh r4, [r0, 0x36] + movs r0, 0x6 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r4, [r0, 0x38] + movs r0, 0x6 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r5, 0x4 + strh r5, [r0, 0x3A] + movs r0, 0x6 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r4, [r0, 0x3C] + movs r0, 0x8 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + str r6, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r4, [r0, 0x36] + movs r0, 0x8 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r4, [r0, 0x38] + movs r0, 0x8 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r5, [r0, 0x3A] + movs r0, 0x8 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0x1 + strh r1, [r0, 0x3C] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D9274 + + thumb_func_start pokemon_alive_on_battle_side +pokemon_alive_on_battle_side: @ 81D9338 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x36] + movs r0, 0x7 + ands r0, r1 + cmp r0, 0 + bne _081D93CC + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _081D9370 + ldrh r0, [r4, 0x20] + ldrh r3, [r4, 0x3A] + subs r0, r3 + strh r0, [r4, 0x20] + ldr r2, =gSprites + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x20] + subs r1, r3 + b _081D939E + .pool +_081D9370: + ldrh r2, [r4, 0x3A] + ldrh r1, [r4, 0x20] + adds r0, r2, r1 + strh r0, [r4, 0x20] + ldr r3, =gSprites + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x20] + adds r2, r1 + strh r2, [r0, 0x20] + movs r2, 0x30 + ldrsh r1, [r4, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r4, 0x3A] + ldrh r2, [r0, 0x20] + adds r1, r2 +_081D939E: + strh r1, [r0, 0x20] + ldrh r1, [r4, 0x38] + adds r1, 0x1 + movs r2, 0 + strh r1, [r4, 0x38] + ldrh r0, [r4, 0x3A] + subs r0, r1 + strh r0, [r4, 0x3A] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x3 + bne _081D93CC + strh r2, [r4, 0x36] + strh r2, [r4, 0x38] + strh r2, [r4, 0x3A] + ldr r0, =SpriteCallbackDummy + str r0, [r4, 0x1C] + b _081D93D2 + .pool +_081D93CC: + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] +_081D93D2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end pokemon_alive_on_battle_side + + thumb_func_start sub_81D93D8 +sub_81D93D8: @ 81D93D8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + ldr r0, =gTasks + 0x8 + adds r2, r0 + ldr r3, =gSprites + movs r0, 0x6 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r3, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =sub_81D9420 + str r1, [r0] + movs r0, 0x6 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0x1 + bl StartSpriteAnim + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D93D8 + + thumb_func_start sub_81D9420 +sub_81D9420: @ 81D9420 + push {r4,lr} + adds r4, r0, 0 + adds r0, 0x2B + ldrb r0, [r0] + cmp r0, 0x1 + beq _081D9488 + cmp r0, 0x1 + bgt _081D9436 + cmp r0, 0 + beq _081D9440 + b _081D94C4 +_081D9436: + cmp r0, 0x2 + beq _081D9440 + cmp r0, 0x3 + beq _081D9488 + b _081D94C4 +_081D9440: + adds r0, r4, 0 + adds r0, 0x2C + ldrb r0, [r0] + lsls r0, 26 + lsrs r0, 26 + movs r1, 0xC + bl __umodsi3 + lsls r0, 24 + ldr r2, =gSprites + cmp r0, 0 + bne _081D9470 + ldrh r0, [r4, 0x20] + subs r0, 0x2 + strh r0, [r4, 0x20] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x20] + subs r1, 0x2 + strh r1, [r0, 0x20] +_081D9470: + movs r1, 0x2E + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x26] + b _081D94C4 + .pool +_081D9488: + ldr r2, =gSprites + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, =0x0000fffe + strh r1, [r0, 0x26] + adds r0, r4, 0 + adds r0, 0x2C + ldrb r1, [r0] + lsls r1, 26 + lsrs r1, 26 + movs r0, 0xF + ands r0, r1 + cmp r0, 0 + bne _081D94C4 + ldrh r0, [r4, 0x22] + adds r0, 0x1 + strh r0, [r4, 0x22] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + adds r1, 0x1 + strh r1, [r0, 0x22] +_081D94C4: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D9420 + + thumb_func_start sub_81D94D4 +sub_81D94D4: @ 81D94D4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r1, r0 + movs r0, 0x8 + ldrsh r1, [r1, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r2, =gSprites + 0x2E + adds r4, r0, r2 + subs r2, 0x12 + adds r0, r2 + ldr r3, =sub_81D9528 + str r3, [r0] + movs r0, 0 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + str r3, [r0] + movs r0, 0x2 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + str r3, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D94D4 + + thumb_func_start sub_81D9528 +sub_81D9528: @ 81D9528 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r0, 0 + ldrh r1, [r7, 0x36] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _081D9550 + ldrh r1, [r7, 0x24] + movs r2, 0x24 + ldrsh r0, [r7, r2] + cmp r0, 0x1 + bne _081D954C + ldr r0, =0x0000ffff + b _081D954E + .pool +_081D954C: + movs r0, 0x1 +_081D954E: + strh r0, [r7, 0x24] +_081D9550: + movs r1, 0x38 + ldrsh r0, [r7, r1] + cmp r0, 0x80 + bne _081D95CE + ldr r2, =gUnknown_0862ACF0 + mov r8, r2 + mov r0, r8 + movs r1, 0x98 + movs r2, 0x84 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r7, 0x3C] + ldr r5, =gSprites + movs r1, 0x3C + ldrsh r0, [r7, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r2, [r1, 0x5] + movs r4, 0xD + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + movs r6, 0x4 + orrs r0, r6 + strb r0, [r1, 0x5] + mov r0, r8 + movs r1, 0xE0 + movs r2, 0x84 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r7, 0x3C] + movs r2, 0x3C + ldrsh r1, [r7, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r0, 0x5] + ands r4, r1 + orrs r4, r6 + strb r4, [r0, 0x5] + movs r0, 0x3C + ldrsh r1, [r7, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3F + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + ldrh r0, [r7, 0x38] + adds r0, 0x1 + strh r0, [r7, 0x38] +_081D95CE: + ldrh r1, [r7, 0x38] + movs r2, 0x38 + ldrsh r0, [r7, r2] + cmp r0, 0x7F + ble _081D95F8 + movs r1, 0x26 + ldrsh r0, [r7, r1] + cmp r0, 0x20 + beq _081D95FC + ldrh r0, [r7, 0x3A] + adds r0, 0x1 + strh r0, [r7, 0x3A] + lsls r0, 16 + asrs r0, 20 + strh r0, [r7, 0x26] + b _081D95FC + .pool +_081D95F8: + adds r0, r1, 0x1 + strh r0, [r7, 0x38] +_081D95FC: + ldrh r0, [r7, 0x36] + movs r1, 0x3F + ands r0, r1 + cmp r0, 0 + bne _081D960C + movs r0, 0xA5 + bl PlaySE +_081D960C: + ldrh r0, [r7, 0x36] + adds r0, 0x1 + strh r0, [r7, 0x36] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81D9528 + + thumb_func_start sub_81D961C +sub_81D961C: @ 81D961C + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x3C + ldrsh r1, [r4, r0] + cmp r1, 0x40 + bgt _081D968C + ldrh r0, [r4, 0x26] + adds r0, 0x2 + strh r0, [r4, 0x26] + ldr r5, =gSprites + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r1, [r0, 0x26] + adds r1, 0x2 + strh r1, [r0, 0x26] + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0x40 + beq _081D964C + b _081D979E +_081D964C: + movs r3, 0x30 + negs r3, r3 + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0 + bl sub_81D9868 + movs r2, 0x5 + strh r2, [r4, 0x36] + ldr r0, =0x0000ffff + strh r0, [r4, 0x38] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x3 + strh r1, [r0, 0x36] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x38] + b _081D979E + .pool +_081D968C: + cmp r1, 0x6F + bgt _081D96BE + adds r0, r4, 0 + bl sub_81D97E0 + movs r1, 0x36 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _081D96A4 + movs r0, 0x68 + bl PlaySE +_081D96A4: + movs r0, 0x36 + ldrsh r1, [r4, r0] + movs r0, 0x3 + negs r0, r0 + cmp r1, r0 + bne _081D979E + adds r0, r4, 0 + movs r1, 0x2 + movs r2, 0x30 + movs r3, 0x10 + bl sub_81D9868 + b _081D979E +_081D96BE: + cmp r1, 0x70 + bne _081D96EC + ldr r2, =gSprites + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x7 + strh r1, [r0, 0x36] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + strh r1, [r0, 0x38] + b _081D96F2 + .pool +_081D96EC: + ldr r0, =0x00000147 + cmp r1, r0 + bgt _081D9700 +_081D96F2: + adds r0, r4, 0 + bl sub_81D97E0 + b _081D979E + .pool +_081D9700: + movs r0, 0xA4 + lsls r0, 1 + cmp r1, r0 + bne _081D974C + adds r0, r4, 0 + bl sub_81D97E0 + adds r0, r4, 0 + movs r1, 0x3 + movs r2, 0x30 + movs r3, 0x10 + bl sub_81D9868 + movs r3, 0x1 + strh r3, [r4, 0x24] + ldr r2, =gSprites + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r3, [r0, 0x24] + movs r0, 0xCB + lsls r0, 1 + movs r1, 0 + bl PlayCry1 + ldr r0, =sub_81D98B4 + movs r1, 0 + bl CreateTask + b _081D979E + .pool +_081D974C: + movs r0, 0xB0 + lsls r0, 1 + cmp r1, r0 + beq _081D9790 + adds r0, 0x18 + cmp r1, r0 + bne _081D979E + movs r3, 0 + strh r3, [r4, 0x24] + ldr r2, =gSprites + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r3, [r0, 0x24] + adds r0, r4, 0 + bl sub_81D97E0 + adds r0, r4, 0 + movs r1, 0x2 + movs r2, 0x30 + movs r3, 0x10 + bl sub_81D9868 + ldr r0, =sub_81D97E0 + str r0, [r4, 0x1C] + b _081D97D2 + .pool +_081D9790: + ldr r0, =sub_81D8E80 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl sub_81D9274 +_081D979E: + ldrh r2, [r4, 0x3C] + movs r0, 0x3C + ldrsh r1, [r4, r0] + movs r0, 0xA4 + lsls r0, 1 + cmp r1, r0 + ble _081D97CC + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + bne _081D97CC + movs r1, 0x24 + ldrsh r2, [r4, r1] + negs r2, r2 + strh r2, [r4, 0x24] + ldr r3, =gSprites + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r2, [r0, 0x24] +_081D97CC: + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] +_081D97D2: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D961C + + thumb_func_start sub_81D97E0 +sub_81D97E0: @ 81D97E0 + push {r4-r7,lr} + adds r3, r0, 0 + movs r0, 0x2E + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, =gSprites + adds r4, r0, r5 + ldrh r1, [r3, 0x3A] + ldrh r0, [r4, 0x36] + ands r0, r1 + cmp r0, 0 + bne _081D985C + ldrh r2, [r3, 0x36] + ldrh r1, [r3, 0x26] + adds r0, r2, r1 + strh r0, [r3, 0x26] + movs r7, 0x2E + ldrsh r1, [r3, r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r1, [r0, 0x26] + adds r2, r1 + strh r2, [r0, 0x26] + ldrh r0, [r3, 0x38] + ldrh r2, [r3, 0x36] + adds r0, r2 + strh r0, [r3, 0x36] + lsls r0, 16 + asrs r5, r0, 16 + ldrh r6, [r4, 0x38] + movs r7, 0x38 + ldrsh r2, [r4, r7] + cmp r5, r2 + bge _081D9836 + movs r0, 0x36 + ldrsh r1, [r3, r0] + adds r0, r2, 0 + cmn r1, r0 + bgt _081D985C +_081D9836: + cmp r5, r2 + ble _081D9844 + strh r6, [r3, 0x36] + b _081D9854 + .pool +_081D9844: + movs r0, 0x36 + ldrsh r1, [r3, r0] + movs r2, 0x38 + ldrsh r0, [r4, r2] + cmn r1, r0 + bge _081D9854 + negs r0, r6 + strh r0, [r3, 0x36] +_081D9854: + movs r7, 0x38 + ldrsh r0, [r3, r7] + negs r0, r0 + strh r0, [r3, 0x38] +_081D985C: + ldrh r0, [r3, 0x3A] + adds r0, 0x1 + strh r0, [r3, 0x3A] + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81D97E0 + + thumb_func_start sub_81D9868 +sub_81D9868: @ 81D9868 + push {r4,r5,lr} + adds r5, r1, 0 + lsls r5, 24 + lsrs r5, 24 + movs r4, 0x2E + ldrsh r1, [r0, r4] + lsls r4, r1, 4 + adds r4, r1 + lsls r4, 2 + ldr r1, =gSprites + adds r4, r1 + lsls r2, 16 + asrs r2, 16 + ldrh r1, [r0, 0x20] + adds r2, r1 + strh r2, [r4, 0x20] + lsls r3, 16 + asrs r3, 16 + ldrh r1, [r0, 0x22] + adds r3, r1 + strh r3, [r4, 0x22] + ldrh r1, [r0, 0x24] + strh r1, [r4, 0x24] + ldrh r1, [r0, 0x26] + strh r1, [r4, 0x26] + adds r1, r5, 0 + bl StartSpriteAnim + adds r0, r4, 0 + adds r1, r5, 0 + bl StartSpriteAnim + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D9868 + + thumb_func_start sub_81D98B4 +sub_81D98B4: @ 81D98B4 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + movs r0, 0 + ldrsh r1, [r4, r0] + cmp r1, 0x1 + beq _081D990C + cmp r1, 0x1 + bgt _081D98DC + cmp r1, 0 + beq _081D98E2 + b _081D99B4 + .pool +_081D98DC: + cmp r1, 0x2 + beq _081D99A4 + b _081D99B4 +_081D98E2: + movs r2, 0x80 + lsls r2, 7 + movs r0, 0x40 + str r0, [sp] + adds r0, 0xC0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + str r1, [sp, 0xC] + movs r0, 0x2 + adds r1, r2, 0 + movs r3, 0x78 + bl SetBgAffine + movs r1, 0x80 + lsls r1, 3 + movs r0, 0 + bl SetGpuRegBits + movs r0, 0x10 + strh r0, [r4, 0x8] + b _081D9922 +_081D990C: + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0x8 + bne _081D991A + movs r0, 0x12 + bl PlaySE +_081D991A: + movs r3, 0x4 + ldrsh r0, [r4, r3] + cmp r0, 0x2 + bne _081D992A +_081D9922: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _081D99B4 +_081D992A: + ldrh r5, [r4, 0x8] + ldrh r1, [r4, 0x2] + adds r0, r5, r1 + strh r0, [r4, 0x2] + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + movs r3, 0x6 + ldrsh r0, [r4, r3] + movs r1, 0x3 + bl __modsi3 + lsls r0, 16 + cmp r0, 0 + bne _081D9954 + lsls r0, r5, 16 + asrs r0, 16 + cmp r0, 0x4 + beq _081D9954 + subs r0, r5, 0x2 + strh r0, [r4, 0x8] +_081D9954: + ldrh r0, [r4, 0x6] + adds r0, 0x1 + strh r0, [r4, 0x6] + movs r2, 0x80 + lsls r2, 7 + movs r0, 0x40 + str r0, [sp] + ldrh r0, [r4, 0x2] + movs r3, 0x80 + lsls r3, 1 + adds r1, r3, 0 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + str r0, [sp, 0x4] + ldrh r0, [r4, 0x2] + subs r1, r0 + lsls r1, 16 + asrs r1, 16 + str r1, [sp, 0x8] + movs r5, 0 + str r5, [sp, 0xC] + movs r0, 0x2 + adds r1, r2, 0 + movs r3, 0x78 + bl SetBgAffine + movs r1, 0x2 + ldrsh r0, [r4, r1] + cmp r0, 0xFF + ble _081D99B4 + strh r5, [r4, 0x2] + strh r5, [r4, 0x6] + strh r5, [r4, 0xA] + movs r0, 0x10 + strh r0, [r4, 0x8] + ldrh r0, [r4, 0x4] + adds r0, 0x1 + strh r0, [r4, 0x4] + b _081D99B4 +_081D99A4: + movs r1, 0x80 + lsls r1, 3 + movs r0, 0 + bl ClearGpuRegBits + adds r0, r5, 0 + bl DestroyTask +_081D99B4: + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81D98B4 + + thumb_func_start sub_81D99BC +sub_81D99BC: @ 81D99BC + push {r4,lr} + bl sub_80D2578 + cmp r0, 0 + bne _081D99DC + ldr r4, =gStringVar1 + bl sub_80D2548 + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + movs r0, 0x1 + b _081D99DE + .pool +_081D99DC: + movs r0, 0 +_081D99DE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81D99BC + + thumb_func_start walda_maybe +walda_maybe: @ 81D99E4 + push {r4,lr} + sub sp, 0x8 + ldr r4, =gStringVar2 + bl sub_80D2548 + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + movs r0, 0 + str r0, [sp] + ldr r0, =sub_81D9A1C + str r0, [sp, 0x4] + movs r0, 0x4 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0 + bl do_choose_name_or_words_screen + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end walda_maybe + + thumb_func_start sub_81D9A1C +sub_81D9A1C: @ 81D9A1C + push {r4,r5,lr} + ldr r4, =gSpecialVar_0x8004 + ldr r5, =gStringVar2 + adds r0, r5, 0 + bl sub_81D9A98 + strh r0, [r4] + ldrh r0, [r4] + cmp r0, 0x1 + beq _081D9A68 + cmp r0, 0x1 + bgt _081D9A44 + cmp r0, 0 + beq _081D9A62 + b _081D9A68 + .pool +_081D9A44: + cmp r0, 0x2 + bne _081D9A68 + bl sub_80D2578 + cmp r0, 0 + beq _081D9A5C + ldr r0, =gUnknown_085EE49A + bl sub_80D255C + b _081D9A68 + .pool +_081D9A5C: + movs r0, 0x1 + strh r0, [r4] + b _081D9A68 +_081D9A62: + adds r0, r5, 0 + bl sub_80D255C +_081D9A68: + ldr r4, =gStringVar1 + bl sub_80D2548 + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + ldr r1, =gUnknown_03005DAC + ldr r0, =sub_80AF168 + str r0, [r1] + ldr r0, =c2_exit_to_overworld_2_switch + bl SetMainCallback2 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D9A1C + + thumb_func_start sub_81D9A98 +sub_81D9A98: @ 81D9A98 + push {r4,lr} + adds r4, r0, 0 + ldrb r0, [r4] + cmp r0, 0xFF + bne _081D9AA6 + movs r0, 0x2 + b _081D9ABC +_081D9AA6: + bl sub_80D2548 + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCompare + cmp r0, 0 + beq _081D9ABA + movs r0, 0 + b _081D9ABC +_081D9ABA: + movs r0, 0x1 +_081D9ABC: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81D9A98 + + thumb_func_start sub_81D9AC4 +sub_81D9AC4: @ 81D9AC4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xA + bl ReadUnalignedWord + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, =gScriptResult + mov r8, r0 + bl sub_80D2548 + mov r7, sp + adds r7, 0xA + add r6, sp, 0xC + mov r5, sp + adds r5, 0xD + str r4, [sp] + str r0, [sp, 0x4] + add r0, sp, 0x8 + adds r1, r7, 0 + adds r2, r6, 0 + adds r3, r5, 0 + bl sub_81D9B68 + mov r1, r8 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + beq _081D9B1E + ldrb r0, [r5] + bl sub_80D24BC + ldrb r0, [r6] + bl sub_80D24F0 + add r0, sp, 0x8 + ldrh r0, [r0] + ldrh r1, [r7] + bl sub_80D2524 +_081D9B1E: + mov r1, r8 + ldrh r0, [r1] + bl sub_80D2480 + mov r1, r8 + ldrb r0, [r1] + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D9AC4 + + thumb_func_start sub_81D9B40 +sub_81D9B40: @ 81D9B40 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + movs r1, 0 + ldr r3, =gUnknown_0862AD14 +_081D9B4A: + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _081D9B5C + lsls r0, r1, 24 + lsrs r0, 24 + b _081D9B64 + .pool +_081D9B5C: + adds r1, 0x1 + cmp r1, 0x1F + bls _081D9B4A + movs r0, 0x20 +_081D9B64: + pop {r1} + bx r1 + thumb_func_end sub_81D9B40 + + thumb_func_start sub_81D9B68 +sub_81D9B68: @ 81D9B68 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + mov r10, r0 + str r1, [sp, 0x20] + str r2, [sp, 0x24] + str r3, [sp, 0x28] + ldr r0, [sp, 0x4C] + ldr r5, [sp, 0x50] + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + adds r0, r5, 0 + bl StringLength + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xF + bne _081D9C7E + movs r4, 0 + add r7, sp, 0x10 +_081D9B98: + adds r0, r5, r4 + ldrb r0, [r0] + bl sub_81D9B40 + adds r1, r7, r4 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x20 + beq _081D9C7E + adds r4, 0x1 + cmp r4, 0xE + ble _081D9B98 + movs r6, 0x3 + movs r5, 0 + movs r0, 0x5 + mov r8, r0 + movs r4, 0xD +_081D9BBC: + mov r1, r8 + str r1, [sp] + add r0, sp, 0x4 + adds r1, r7, 0 + adds r2, r5, 0 + adds r3, r6, 0 + bl sub_81D9D5C + adds r6, 0x8 + adds r5, 0x5 + subs r4, 0x1 + cmp r4, 0 + bge _081D9BBC + movs r0, 0x2 + str r0, [sp] + add r0, sp, 0x4 + adds r1, r7, 0 + movs r2, 0x46 + movs r3, 0x73 + bl sub_81D9D5C + add r0, sp, 0x4 + movs r1, 0 + movs r2, 0x3 + bl sub_81D9DAC + adds r4, r0, 0 + adds r0, r7, 0 + movs r1, 0x75 + movs r2, 0x3 + bl sub_81D9DAC + cmp r4, r0 + bne _081D9C7E + add r0, sp, 0x4 + movs r1, 0x9 + movs r2, 0x15 + bl sub_81D9C90 + add r0, sp, 0x4 + ldrb r0, [r0, 0x8] + movs r2, 0xF + ands r2, r0 + add r0, sp, 0x4 + movs r1, 0x8 + bl sub_81D9C90 + add r0, sp, 0x4 + ldrb r2, [r0, 0x8] + lsrs r2, 4 + movs r1, 0x8 + bl sub_81D9CDC + add r0, sp, 0x4 + ldrb r2, [r0, 0x6] + adds r1, r0, 0 + ldrb r0, [r0] + ldrb r1, [r1, 0x2] + eors r0, r1 + add r1, sp, 0x4 + ldrb r4, [r1, 0x4] + eors r0, r4 + mov r3, r9 + lsrs r1, r3, 8 + eors r0, r1 + cmp r2, r0 + bne _081D9C7E + add r0, sp, 0x4 + ldrb r3, [r0, 0x7] + adds r2, r0, 0 + ldrb r1, [r0, 0x1] + ldrb r0, [r2, 0x3] + eors r1, r0 + adds r0, r2, 0 + ldrb r2, [r0, 0x5] + eors r1, r2 + movs r0, 0xFF + mov r5, r9 + ands r0, r5 + eors r1, r0 + cmp r3, r1 + bne _081D9C7E + add r0, sp, 0x4 + ldrh r0, [r0] + mov r1, r10 + strh r0, [r1] + mov r0, sp + adds r0, 0x6 + ldrh r0, [r0] + ldr r3, [sp, 0x20] + strh r0, [r3] + ldr r5, [sp, 0x24] + strb r4, [r5] + ldr r0, [sp, 0x28] + strb r2, [r0] + movs r0, 0x1 + b _081D9C80 +_081D9C7E: + movs r0, 0 +_081D9C80: + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81D9B68 + + thumb_func_start sub_81D9C90 +sub_81D9C90: @ 81D9C90 + push {r4-r7,lr} + adds r7, r0, 0 + mov r12, r1 + subs r3, r2, 0x1 + cmp r2, 0 + beq _081D9CD6 +_081D9C9C: + ldrb r1, [r7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 31 + mov r2, r12 + subs r2, 0x1 + subs r5, r3, 0x1 + cmp r2, 0 + blt _081D9CCC + movs r6, 0x80 + adds r3, r2, r7 +_081D9CB4: + ldrb r1, [r3] + adds r0, r6, 0 + ands r0, r1 + lsls r0, 24 + lsls r1, 1 + orrs r4, r1 + strb r4, [r3] + lsrs r4, r0, 31 + subs r3, 0x1 + subs r2, 0x1 + cmp r2, 0 + bge _081D9CB4 +_081D9CCC: + adds r3, r5, 0 + movs r0, 0x1 + negs r0, r0 + cmp r3, r0 + bne _081D9C9C +_081D9CD6: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81D9C90 + + thumb_func_start sub_81D9CDC +sub_81D9CDC: @ 81D9CDC + push {r4-r6,lr} + adds r6, r0, 0 + adds r5, r1, 0 + lsls r2, 24 + lsrs r3, r2, 24 + lsls r0, r3, 4 + orrs r3, r0 + lsls r0, r3, 24 + lsrs r3, r0, 24 + movs r4, 0 + cmp r4, r5 + bcs _081D9D04 +_081D9CF4: + adds r2, r6, r4 + ldrb r1, [r2] + adds r0, r3, 0 + eors r0, r1 + strb r0, [r2] + adds r4, 0x1 + cmp r4, r5 + bcc _081D9CF4 +_081D9D04: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81D9CDC + + thumb_func_start sub_81D9D0C +sub_81D9D0C: @ 81D9D0C + push {lr} + lsrs r3, r1, 3 + movs r2, 0x7 + ands r2, r1 + movs r1, 0x80 + asrs r1, r2 + adds r0, r3 + ldrb r0, [r0] + ands r0, r1 + cmp r0, 0 + beq _081D9D24 + movs r0, 0x1 +_081D9D24: + pop {r1} + bx r1 + thumb_func_end sub_81D9D0C + + thumb_func_start sub_81D9D28 +sub_81D9D28: @ 81D9D28 + lsrs r3, r1, 3 + movs r2, 0x7 + ands r2, r1 + movs r1, 0x80 + asrs r1, r2 + lsls r1, 24 + lsrs r1, 24 + adds r0, r3 + ldrb r2, [r0] + orrs r1, r2 + strb r1, [r0] + bx lr + thumb_func_end sub_81D9D28 + + thumb_func_start sub_81D9D40 +sub_81D9D40: @ 81D9D40 + lsrs r3, r1, 3 + movs r2, 0x7 + ands r2, r1 + movs r1, 0x80 + asrs r1, r2 + mvns r1, r1 + lsls r1, 24 + lsrs r1, 24 + adds r0, r3 + ldrb r2, [r0] + ands r1, r2 + strb r1, [r0] + bx lr + thumb_func_end sub_81D9D40 + + thumb_func_start sub_81D9D5C +sub_81D9D5C: @ 81D9D5C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r6, r0, 0 + mov r9, r1 + adds r1, r2, 0 + mov r8, r3 + ldr r7, [sp, 0x1C] + movs r5, 0 + cmp r5, r7 + bcs _081D9DA0 + adds r4, r1, 0 +_081D9D76: + mov r0, r8 + adds r1, r0, r5 + mov r0, r9 + bl sub_81D9D0C + lsls r0, 24 + cmp r0, 0 + beq _081D9D90 + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_81D9D28 + b _081D9D98 +_081D9D90: + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_81D9D40 +_081D9D98: + adds r4, 0x1 + adds r5, 0x1 + cmp r5, r7 + bcc _081D9D76 +_081D9DA0: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81D9D5C + + thumb_func_start sub_81D9DAC +sub_81D9DAC: @ 81D9DAC + push {r4-r7,lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r7, r1, 0 + adds r6, r2, 0 + movs r4, 0 + movs r5, 0 + cmp r4, r6 + bcs _081D9DD6 +_081D9DC0: + lsls r4, 1 + adds r1, r7, r5 + mov r0, r8 + bl sub_81D9D0C + lsls r0, 24 + lsrs r0, 24 + orrs r4, r0 + adds r5, 0x1 + cmp r5, r6 + bcc _081D9DC0 +_081D9DD6: + adds r0, r4, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81D9DAC + + thumb_func_start sub_81D9DE4 +sub_81D9DE4: @ 81D9DE4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + movs r1, 0x1A + ldrsh r0, [r0, r1] + cmp r0, 0x4 + bhi _081D9EA4 + lsls r0, 2 + ldr r1, =_081D9E10 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081D9E10: + .4byte _081D9E24 + .4byte _081D9E44 + .4byte _081D9E64 + .4byte _081D9E84 + .4byte _081D9EA4 +_081D9E24: + ldr r4, =gUnknown_02039F31 + ldr r0, =gUnknown_02039F24 + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x32 + b _081D9EB4 + .pool +_081D9E44: + ldr r4, =gUnknown_02039F31 + ldr r0, =gUnknown_02039F24 + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x33 + b _081D9EB4 + .pool +_081D9E64: + ldr r4, =gUnknown_02039F31 + ldr r0, =gUnknown_02039F24 + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x34 + b _081D9EB4 + .pool +_081D9E84: + ldr r4, =gUnknown_02039F31 + ldr r0, =gUnknown_02039F24 + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x35 + b _081D9EB4 + .pool +_081D9EA4: + ldr r4, =gUnknown_02039F31 + ldr r0, =gUnknown_02039F24 + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x36 +_081D9EB4: + bl GetMonData + strb r0, [r4] + ldr r5, =gUnknown_02039E00 + ldr r4, =gUnknown_02039F25 + ldrb r0, [r4] + lsls r0, 6 + adds r0, r5 + ldr r1, =gUnknown_02039F31 + ldrb r1, [r1] + adds r0, 0x2C + strb r1, [r0] + ldr r0, =0x00000864 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + negs r0, r0 + lsrs r0, 31 + ldrb r1, [r4] + lsls r1, 6 + adds r1, r5 + adds r1, 0x2D + strb r0, [r1] + ldr r1, =sub_81DA160 + ldr r2, =sub_81D9F14 + adds r0, r6, 0 + bl SetTaskFuncWithFollowupFunc + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D9DE4 + + thumb_func_start sub_81D9F14 +sub_81D9F14: @ 81D9F14 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, =sub_81DA244 + ldr r2, =sub_81D9F30 + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D9F14 + + thumb_func_start sub_81D9F30 +sub_81D9F30: @ 81D9F30 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, =sub_81DA2E8 + ldr r2, =sub_81D9F4C + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D9F30 + + thumb_func_start sub_81D9F4C +sub_81D9F4C: @ 81D9F4C + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, =sub_81DA3B8 + ldr r2, =sub_81D9F68 + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D9F4C + + thumb_func_start sub_81D9F68 +sub_81D9F68: @ 81D9F68 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r6, r0, 24 + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + movs r3, 0 + ldr r5, =gUnknown_02039F30 + mov r8, r5 + ldr r0, =gSpecialVar_0x8004 + mov r12, r0 + add r1, sp, 0x4 + mov r9, r1 + ldrb r4, [r5] + cmp r3, r4 + bcs _081D9FB2 + lsls r0, r6, 2 + adds r0, r6 + lsls r4, r0, 3 + ldr r7, =gTasks + 0x8 +_081D9F98: + mov r0, sp + adds r2, r0, r3 + adds r1, r3, 0x1 + lsls r0, r1, 1 + adds r0, r4 + adds r0, r7 + ldrh r0, [r0] + strb r0, [r2] + lsls r1, 24 + lsrs r3, r1, 24 + ldrb r1, [r5] + cmp r3, r1 + bcc _081D9F98 +_081D9FB2: + movs r3, 0 + mov r4, r8 + ldrb r0, [r4] + cmp r3, r0 + bcs _081D9FD6 + adds r4, r0, 0 + mov r2, sp +_081D9FC0: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, r4 + bcs _081D9FD6 + mov r7, sp + adds r1, r7, r3 + ldrb r0, [r2] + ldrb r1, [r1] + cmp r0, r1 + beq _081D9FC0 +_081D9FD6: + mov r0, r8 + ldrb r0, [r0] + cmp r3, r0 + bne _081D9FF4 + movs r0, 0 + mov r1, r12 + strh r0, [r1] + b _081D9FFA + .pool +_081D9FF4: + movs r0, 0x1 + mov r4, r12 + strh r0, [r4] +_081D9FFA: + movs r3, 0 + mov r7, r8 + mov r0, r8 + ldrb r0, [r0] + cmp r3, r0 + bcs _081DA02A + mov r4, r9 + lsls r0, r6, 2 + adds r0, r6 + lsls r2, r0, 3 + ldr r5, =gTasks + 0x8 +_081DA010: + adds r1, r4, r3 + adds r0, r3, 0x5 + lsls r0, 1 + adds r0, r2 + adds r0, r5 + ldrh r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + ldrb r1, [r7] + cmp r3, r1 + bcc _081DA010 +_081DA02A: + mov r4, r8 + ldrb r0, [r4] + cmp r0, 0x4 + beq _081DA0B8 + bl link_get_multiplayer_id + lsls r0, 24 + cmp r0, 0 + bne _081DA0B8 + ldr r0, =gUnknown_02039E00 + adds r1, r0, 0 + adds r1, 0x2C + ldrb r2, [r1] + movs r3, 0x1 + ldrb r1, [r4] + adds r5, r0, 0 + cmp r3, r1 + bcs _081DA06C + adds r4, r5, 0 + mov r7, r8 + ldrb r1, [r7] +_081DA054: + lsls r0, r3, 6 + adds r0, r4 + adds r0, 0x2C + ldrb r7, [r0] + cmp r2, r7 + bcs _081DA062 + ldrb r2, [r0] +_081DA062: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, r1 + bcc _081DA054 +_081DA06C: + cmp r2, 0 + beq _081DA076 + subs r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 +_081DA076: + movs r4, 0x1 + movs r3, 0 + mov r0, r8 + ldrb r0, [r0] + cmp r3, r0 + bcs _081DA0AC + adds r0, r5, 0 + b _081DA0A2 + .pool +_081DA090: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + mov r1, r8 + ldrb r1, [r1] + cmp r3, r1 + bcs _081DA0AC + lsls r0, r3, 6 + adds r0, r5 +_081DA0A2: + adds r0, 0x2D + ldrb r0, [r0] + cmp r0, 0 + bne _081DA090 + movs r4, 0 +_081DA0AC: + mov r0, sp + ldrb r0, [r0] + adds r1, r2, 0 + adds r2, r4, 0 + bl sub_80DACBC +_081DA0B8: + mov r0, r9 + bl sub_80F86E0 + ldr r1, =gUnknown_02039F2B + strb r0, [r1] + ldr r0, =gUnknown_02039F30 + ldrb r0, [r0] + cmp r0, 0x3 + bhi _081DA0E8 + ldr r1, =sub_81DA488 + ldr r2, =sub_81DA10C + adds r0, r6, 0 + bl SetTaskFuncWithFollowupFunc + b _081DA0F6 + .pool +_081DA0E8: + ldr r0, =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_81DA10C + str r0, [r1] +_081DA0F6: + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D9F68 + + thumb_func_start sub_81DA10C +sub_81DA10C: @ 81DA10C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =gUnknown_02039F2C + ldrb r0, [r0] + bl sub_80DB09C + ldr r1, =sub_80FCF40 + ldr r2, =sub_81DA138 + adds r0, r4, 0 + bl SetTaskFuncWithFollowupFunc + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81DA10C + + thumb_func_start sub_81DA138 +sub_81DA138: @ 81DA138 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + bl sub_80DCE58 + ldr r1, =sub_80FCFD0 + ldr r2, =sub_80F8714 + adds r0, r4, 0 + bl SetTaskFuncWithFollowupFunc + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81DA138 + + thumb_func_start sub_81DA160 +sub_81DA160: @ 81DA160 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r7, r0, 24 + lsls r6, r7, 2 + adds r0, r6, r7 + lsls r4, r0, 3 + ldr r5, =gTasks + 0x8 + adds r0, r4, r5 + adds r0, 0x18 + bl sub_80FC670 + cmp r0, 0 + beq _081DA224 + adds r0, r5, 0 + subs r0, 0x8 + adds r4, r0 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _081DA1A4 + cmp r0, 0x1 + beq _081DA1D4 + movs r0, 0 + strh r0, [r4, 0x8] + strh r0, [r4, 0x20] + adds r0, r7, 0 + bl SwitchTaskToFollowupFunc + b _081DA224 + .pool +_081DA1A4: + bl sub_800A520 + lsls r0, 24 + cmp r0, 0 + beq _081DA224 + ldr r0, =gUnknown_02039F25 + ldrb r0, [r0] + lsls r0, 6 + ldr r1, =gUnknown_02039E00 + adds r0, r1 + movs r1, 0x40 + bl sub_80FC4F4 + cmp r0, 0x1 + bne _081DA224 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _081DA224 + .pool +_081DA1D4: + bl sub_80FC55C + lsls r0, 24 + cmp r0, 0 + beq _081DA224 + movs r5, 0 + ldr r0, =gUnknown_02039F30 + mov r8, r6 + ldrb r0, [r0] + cmp r5, r0 + bge _081DA214 + ldr r6, =gUnknown_020229E8 +_081DA1EC: + lsls r4, r5, 6 + ldr r0, =gUnknown_02039E00 + adds r4, r0 + lsls r1, r5, 8 + ldr r0, =gUnknown_020223C4 + adds r1, r0 + adds r0, r4, 0 + movs r2, 0x40 + bl memcpy + ldrh r1, [r6, 0x1A] + adds r0, r4, 0 + bl sub_80DFA08 + adds r6, 0x1C + adds r5, 0x1 + ldr r0, =gUnknown_02039F30 + ldrb r0, [r0] + cmp r5, r0 + blt _081DA1EC +_081DA214: + ldr r0, =gTasks + mov r2, r8 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_081DA224: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81DA160 + + thumb_func_start sub_81DA244 +sub_81DA244: @ 81DA244 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r5, r0, 3 + ldr r6, =gTasks + 0x8 + adds r0, r5, r6 + adds r0, 0x18 + bl sub_80FC670 + cmp r0, 0 + beq _081DA2D4 + adds r0, r6, 0 + subs r0, 0x8 + adds r5, r0 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _081DA284 + cmp r0, 0x1 + beq _081DA2AC + movs r0, 0 + strh r0, [r5, 0x8] + strh r0, [r5, 0x20] + adds r0, r4, 0 + bl SwitchTaskToFollowupFunc + b _081DA2D4 + .pool +_081DA284: + bl link_get_multiplayer_id + lsls r0, 24 + cmp r0, 0 + bne _081DA2CE + bl sub_800A520 + lsls r0, 24 + cmp r0, 0 + beq _081DA2D4 + ldr r0, =gRngValue + movs r1, 0x4 + bl sub_80FC4F4 + cmp r0, 0x1 + bne _081DA2D4 + b _081DA2CE + .pool +_081DA2AC: + movs r0, 0 + bl sub_80FC530 + lsls r0, 24 + cmp r0, 0 + beq _081DA2D4 + ldr r0, =gRngValue + ldr r4, =gUnknown_020223C4 + adds r1, r4, 0 + movs r2, 0x4 + bl memcpy + ldr r0, =gUnknown_030060B8 + adds r1, r4, 0 + movs r2, 0x4 + bl memcpy +_081DA2CE: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] +_081DA2D4: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81DA244 + + thumb_func_start sub_81DA2E8 +sub_81DA2E8: @ 81DA2E8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + mov r9, r0 + adds r0, r6 + lsls r5, r0, 3 + ldr r1, =gTasks + 0x8 + mov r8, r1 + adds r0, r5, r1 + adds r0, 0x18 + bl sub_80FC670 + cmp r0, 0 + beq _081DA39E + movs r0, 0x8 + negs r0, r0 + add r0, r8 + mov r10, r0 + adds r4, r5, r0 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _081DA338 + cmp r0, 0x1 + beq _081DA35A + movs r0, 0 + strh r0, [r4, 0x8] + strh r0, [r4, 0x20] + adds r0, r6, 0 + bl SwitchTaskToFollowupFunc + b _081DA39E + .pool +_081DA338: + bl sub_800A520 + lsls r0, 24 + cmp r0, 0 + beq _081DA39E + add r0, sp, 0x8 + movs r1, 0x6E + strh r1, [r0] + movs r1, 0x2 + bl sub_80FC4F4 + cmp r0, 0x1 + bne _081DA39E + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _081DA39E +_081DA35A: + bl sub_80FC55C + lsls r0, 24 + cmp r0, 0 + beq _081DA39E + movs r1, 0 + ldr r7, =gUnknown_02039F30 + ldrb r0, [r7] + cmp r1, r0 + bge _081DA390 + mov r0, r8 + adds r0, 0xA + adds r3, r5, r0 + ldr r4, =gUnknown_020223C4 + mov r2, sp + movs r5, 0x80 + lsls r5, 1 +_081DA37C: + ldrh r0, [r4] + strh r0, [r2] + strh r0, [r3] + adds r3, 0x2 + adds r4, r5 + adds r2, 0x2 + adds r1, 0x1 + ldrb r0, [r7] + cmp r1, r0 + blt _081DA37C +_081DA390: + mov r0, r9 + adds r1, r0, r6 + lsls r1, 3 + add r1, r10 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_081DA39E: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81DA2E8 + + thumb_func_start sub_81DA3B8 +sub_81DA3B8: @ 81DA3B8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + mov r9, r0 + adds r0, r6 + lsls r5, r0, 3 + ldr r1, =gTasks + 0x8 + mov r8, r1 + adds r0, r5, r1 + adds r0, 0x18 + bl sub_80FC670 + cmp r0, 0 + beq _081DA46E + movs r0, 0x8 + negs r0, r0 + add r0, r8 + mov r10, r0 + adds r4, r5, r0 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _081DA408 + cmp r0, 0x1 + beq _081DA42A + movs r0, 0 + strh r0, [r4, 0x8] + strh r0, [r4, 0x20] + adds r0, r6, 0 + bl SwitchTaskToFollowupFunc + b _081DA46E + .pool +_081DA408: + bl sub_800A520 + lsls r0, 24 + cmp r0, 0 + beq _081DA46E + ldrh r1, [r4, 0x1A] + add r0, sp, 0x8 + strh r1, [r0] + movs r1, 0x2 + bl sub_80FC4F4 + cmp r0, 0x1 + bne _081DA46E + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _081DA46E +_081DA42A: + bl sub_80FC55C + lsls r0, 24 + cmp r0, 0 + beq _081DA46E + movs r1, 0 + ldr r7, =gUnknown_02039F30 + ldrb r0, [r7] + cmp r1, r0 + bge _081DA460 + mov r0, r8 + adds r0, 0x2 + adds r3, r5, r0 + ldr r4, =gUnknown_020223C4 + mov r2, sp + movs r5, 0x80 + lsls r5, 1 +_081DA44C: + ldrh r0, [r4] + strh r0, [r2] + strh r0, [r3] + adds r3, 0x2 + adds r4, r5 + adds r2, 0x2 + adds r1, 0x1 + ldrb r0, [r7] + cmp r1, r0 + blt _081DA44C +_081DA460: + mov r0, r9 + adds r1, r0, r6 + lsls r1, 3 + add r1, r10 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_081DA46E: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81DA3B8 + + thumb_func_start sub_81DA488 +sub_81DA488: @ 81DA488 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r7, r6, 2 + adds r0, r7, r6 + lsls r4, r0, 3 + ldr r5, =gTasks + 0x8 + adds r0, r4, r5 + adds r0, 0x18 + bl sub_80FC670 + cmp r0, 0 + beq _081DA55C + adds r0, r5, 0 + subs r0, 0x8 + adds r4, r0 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _081DA4CC + cmp r0, 0x1 + beq _081DA50C + movs r0, 0 + strh r0, [r4, 0x8] + strh r0, [r4, 0x20] + adds r0, r6, 0 + bl SwitchTaskToFollowupFunc + b _081DA55C + .pool +_081DA4CC: + bl link_get_multiplayer_id + lsls r0, 24 + cmp r0, 0 + bne _081DA4FA + bl sub_800A520 + lsls r0, 24 + cmp r0, 0 + beq _081DA55C + ldr r0, =gUnknown_02039F30 + ldrb r2, [r0] + lsls r0, r2, 6 + ldr r1, =gUnknown_02039E00 + adds r0, r1 + movs r1, 0x4 + subs r1, r2 + lsls r1, 22 + lsrs r1, 16 + bl sub_80FC4F4 + cmp r0, 0x1 + bne _081DA55C +_081DA4FA: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _081DA55C + .pool +_081DA50C: + movs r0, 0 + bl sub_80FC530 + lsls r0, 24 + cmp r0, 0 + beq _081DA55C + ldr r4, =gUnknown_02039F30 + ldrb r3, [r4] + lsls r0, r3, 6 + ldr r5, =gUnknown_02039E00 + adds r0, r5 + ldr r1, =gUnknown_020223C4 + movs r2, 0x4 + subs r2, r3 + lsls r2, 6 + bl memcpy + ldrb r4, [r4] + mov r8, r7 + cmp r4, 0x3 + bgt _081DA54C + lsls r0, r4, 6 + adds r5, r0, r5 + ldr r7, =gUnknown_020229E8 +_081DA53C: + ldrh r1, [r7, 0x1A] + adds r0, r5, 0 + bl sub_80DFA08 + adds r5, 0x40 + adds r4, 0x1 + cmp r4, 0x3 + ble _081DA53C +_081DA54C: + ldr r0, =gTasks + mov r2, r8 + adds r1, r2, r6 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_081DA55C: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81DA488 + + thumb_func_start sub_81DA57C +sub_81DA57C: @ 81DA57C + push {lr} + ldr r0, =0x00000864 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _081DA5CA + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1E + bhi _081DA5CA + movs r0, 0x5B + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _081DA5C0 + ldr r0, =gUnknown_0862AD34 + movs r1, 0x8 + movs r2, 0x5 + bl sub_81DA5D4 + b _081DA5CA + .pool +_081DA5C0: + ldr r0, =gUnknown_0862AD44 + movs r1, 0x7 + movs r2, 0x1 + bl sub_81DA5D4 +_081DA5CA: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81DA57C + + thumb_func_start sub_81DA5D4 +sub_81DA5D4: @ 81DA5D4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + mov r9, r0 + adds r7, r1, 0 + mov r10, r2 + movs r6, 0 + movs r0, 0x5 + mov r8, r0 + movs r5, 0 + cmp r5, r7 + bcs _081DA61C + mov r4, r9 +_081DA5F4: + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldrh r1, [r4] + ldr r2, =0x000009ca + adds r0, r2 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _081DA614 + adds r0, r1, 0 + bl sub_81DA6CC + cmp r8, r0 + ble _081DA612 + mov r8, r0 +_081DA612: + adds r6, 0x1 +_081DA614: + adds r4, 0x2 + adds r5, 0x1 + cmp r5, r7 + bcc _081DA5F4 +_081DA61C: + cmp r6, 0 + beq _081DA6BA + cmp r8, r10 + bhi _081DA6BA + movs r6, 0 + movs r5, 0 + cmp r5, r7 + bcs _081DA654 + mov r4, r9 +_081DA62E: + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldrh r1, [r4] + ldr r2, =0x000009ca + adds r0, r2 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _081DA64C + adds r0, r1, 0 + bl sub_81DA6CC + cmp r0, r8 + bne _081DA64C + adds r6, 0x1 +_081DA64C: + adds r4, 0x2 + adds r5, 0x1 + cmp r5, r7 + bcc _081DA62E +_081DA654: + cmp r6, 0 + beq _081DA6BA + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r6, 0 + bl __modsi3 + adds r6, r0, 0 + movs r5, 0 + cmp r5, r7 + bcs _081DA6BA + ldr r2, =gSaveBlock1Ptr + ldr r3, =0x000009ca + mov r4, r9 +_081DA674: + ldr r0, [r2] + ldrh r1, [r4] + adds r0, r3 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _081DA6B2 + adds r0, r1, 0 + str r2, [sp] + str r3, [sp, 0x4] + bl sub_81DA6CC + ldr r2, [sp] + ldr r3, [sp, 0x4] + cmp r0, r8 + bne _081DA6B2 + cmp r6, 0 + bne _081DA6B0 + ldr r0, [r2] + adds r0, r3 + ldrh r4, [r4] + adds r0, r4 + mov r1, r8 + strb r1, [r0] + b _081DA6BA + .pool +_081DA6B0: + subs r6, 0x1 +_081DA6B2: + adds r4, 0x2 + adds r5, 0x1 + cmp r5, r7 + bcc _081DA674 +_081DA6BA: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81DA5D4 + + thumb_func_start sub_81DA6CC +sub_81DA6CC: @ 81DA6CC + push {r4-r6,lr} + adds r5, r0, 0 + movs r4, 0 + ldr r6, =gUnknown_085500A4 +_081DA6D4: + lsls r0, r4, 1 + lsls r1, r5, 4 + adds r0, r1 + adds r0, r6 + ldrh r0, [r0] + bl trainer_flag_check + lsls r0, 24 + cmp r0, 0 + bne _081DA6F0 + adds r0, r4, 0 + b _081DA6F8 + .pool +_081DA6F0: + adds r4, 0x1 + cmp r4, 0x4 + ble _081DA6D4 + movs r0, 0x5 +_081DA6F8: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81DA6CC + + thumb_func_start sub_81DA700 +sub_81DA700: @ 81DA700 + push {lr} + sub sp, 0x8 + add r1, sp, 0x4 + mov r0, sp + bl sub_8149F58 + ldr r0, =gUnknown_0862AD54 + ldr r1, [sp, 0x4] + bl LZ77UnCompVram + ldr r0, =gUnknown_0862AF30 + ldr r1, [sp] + bl LZ77UnCompVram + ldr r0, =gUnknown_0862B53C + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + ldr r0, =gUnknown_0862B724 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_0862B72C + bl LoadSpritePalette + add sp, 0x8 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81DA700 + + thumb_func_start sub_81DA74C +sub_81DA74C: @ 81DA74C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r5, r0, 0 + adds r6, r1, 0 + ldr r0, [sp, 0x24] + ldr r1, [sp, 0x28] + ldr r4, [sp, 0x2C] + lsls r2, 24 + lsrs r2, 24 + str r2, [sp] + lsls r3, 24 + lsrs r3, 24 + mov r10, r3 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + lsls r4, 24 + lsrs r7, r4, 24 + ldr r0, =gUnknown_0862B758 + lsls r5, 16 + asrs r5, 16 + lsls r6, 16 + asrs r6, 16 + adds r1, r5, 0 + adds r2, r6, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r5, r0, 24 + cmp r7, 0x1 + beq _081DA7D0 + cmp r7, 0x1 + bgt _081DA7A8 + cmp r7, 0 + beq _081DA7B8 + b _081DA7AC + .pool +_081DA7A8: + cmp r7, 0x2 + beq _081DA7E4 +_081DA7AC: + ldr r6, =gSprites + lsls r3, r5, 4 + b _081DA7F8 + .pool +_081DA7B8: + ldr r2, =gSprites + lsls r3, r5, 4 + adds r0, r3, r5 + lsls r0, 2 + adds r0, r2 + movs r1, 0x78 + strh r1, [r0, 0x2E] + movs r1, 0x2D + b _081DA7F4 + .pool +_081DA7D0: + ldr r2, =gSprites + lsls r3, r5, 4 + adds r0, r3, r5 + lsls r0, 2 + adds r0, r2 + movs r1, 0x59 + b _081DA7F0 + .pool +_081DA7E4: + ldr r2, =gSprites + lsls r3, r5, 4 + adds r0, r3, r5 + lsls r0, 2 + adds r0, r2 + movs r1, 0x97 +_081DA7F0: + strh r1, [r0, 0x2E] + movs r1, 0x61 +_081DA7F4: + strh r1, [r0, 0x30] + adds r6, r2, 0 +_081DA7F8: + adds r4, r3, r5 + lsls r4, 2 + adds r0, r4, r6 + mov r2, r8 + lsls r1, r2, 24 + asrs r1, 24 + movs r2, 0 + strh r1, [r0, 0x32] + mov r3, r9 + lsls r1, r3, 24 + asrs r1, 24 + strh r1, [r0, 0x34] + mov r1, sp + ldrh r1, [r1] + strh r1, [r0, 0x3A] + mov r3, r10 + strh r3, [r0, 0x3C] + strh r2, [r0, 0x36] + strh r2, [r0, 0x38] + adds r1, r7, 0 + bl StartSpriteAnim + adds r0, r6, 0 + adds r0, 0x1C + adds r4, r0 + ldr r0, =sub_81DA848 + str r0, [r4] + adds r0, r5, 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_81DA74C + + thumb_func_start sub_81DA848 +sub_81DA848: @ 81DA848 + push {r4,r5,lr} + adds r3, r0, 0 + adds r2, r3, 0 + adds r2, 0x2E + movs r0, 0x20 + ldrsh r1, [r3, r0] + movs r4, 0x2E + ldrsh r0, [r3, r4] + cmp r1, r0 + bne _081DA874 + movs r5, 0x22 + ldrsh r1, [r3, r5] + movs r4, 0x2 + ldrsh r0, [r2, r4] + cmp r1, r0 + bne _081DA874 + ldr r0, =SpriteCallbackDummy + str r0, [r3, 0x1C] + b _081DA8B4 + .pool +_081DA874: + ldrh r4, [r2, 0x8] + movs r5, 0x8 + ldrsh r1, [r2, r5] + movs r5, 0xC + ldrsh r0, [r2, r5] + cmp r1, r0 + bne _081DA890 + ldrh r0, [r2, 0x4] + ldrh r1, [r3, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r3, 0x20] + strh r1, [r2, 0x8] + b _081DA894 +_081DA890: + adds r0, r4, 0x1 + strh r0, [r2, 0x8] +_081DA894: + ldrh r4, [r2, 0xA] + movs r5, 0xA + ldrsh r1, [r2, r5] + movs r5, 0xE + ldrsh r0, [r2, r5] + cmp r1, r0 + bne _081DA8B0 + ldrh r0, [r2, 0x6] + ldrh r1, [r3, 0x22] + adds r0, r1 + movs r1, 0 + strh r0, [r3, 0x22] + strh r1, [r2, 0xA] + b _081DA8B4 +_081DA8B0: + adds r0, r4, 0x1 + strh r0, [r2, 0xA] +_081DA8B4: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81DA848 + + thumb_func_start sub_81DA8BC +sub_81DA8BC: @ 81DA8BC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + adds r6, r0, 0 + mov r8, r1 + ldr r0, [sp, 0x2C] + ldr r1, [sp, 0x30] + ldr r4, [sp, 0x34] + ldr r5, [sp, 0x38] + lsls r2, 16 + lsrs r2, 16 + str r2, [sp] + lsls r3, 16 + lsrs r3, 16 + str r3, [sp, 0x4] + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + lsls r1, 16 + lsrs r1, 16 + mov r9, r1 + lsls r4, 16 + lsrs r7, r4, 16 + lsls r5, 24 + lsrs r5, 24 + ldr r0, =gUnknown_0862B758 + lsls r6, 16 + asrs r6, 16 + mov r1, r8 + lsls r1, 16 + asrs r1, 16 + mov r8, r1 + adds r1, r6, 0 + mov r2, r8 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r6, r0, 24 + cmp r5, 0x1 + beq _081DA94C + cmp r5, 0x1 + bgt _081DA924 + cmp r5, 0 + beq _081DA934 + b _081DA928 + .pool +_081DA924: + cmp r5, 0x2 + beq _081DA960 +_081DA928: + ldr r2, =gSprites + lsls r3, r6, 4 + b _081DA972 + .pool +_081DA934: + ldr r2, =gSprites + lsls r3, r6, 4 + adds r0, r3, r6 + lsls r0, 2 + adds r0, r2 + movs r1, 0x78 + strh r1, [r0, 0x2E] + movs r1, 0x2D + b _081DA970 + .pool +_081DA94C: + ldr r2, =gSprites + lsls r3, r6, 4 + adds r0, r3, r6 + lsls r0, 2 + adds r0, r2 + movs r1, 0x59 + b _081DA96C + .pool +_081DA960: + ldr r2, =gSprites + lsls r3, r6, 4 + adds r0, r3, r6 + lsls r0, 2 + adds r0, r2 + movs r1, 0x97 +_081DA96C: + strh r1, [r0, 0x2E] + movs r1, 0x61 +_081DA970: + strh r1, [r0, 0x30] +_081DA972: + adds r4, r3, r6 + lsls r4, 2 + adds r0, r4, r2 + mov r3, sp + ldrh r3, [r3] + strh r3, [r0, 0x32] + mov r1, sp + ldrh r1, [r1, 0x4] + strh r1, [r0, 0x34] + mov r3, r10 + strh r3, [r0, 0x36] + mov r1, r9 + strh r1, [r0, 0x38] + strh r7, [r0, 0x3A] + adds r1, r5, 0 + str r2, [sp, 0x8] + bl StartSpriteAnim + ldr r2, [sp, 0x8] + adds r0, r2, 0 + adds r0, 0x1C + adds r4, r0 + ldr r0, =sub_81DA9BC + str r0, [r4] + adds r0, r6, 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_81DA8BC + + thumb_func_start sub_81DA9BC +sub_81DA9BC: @ 81DA9BC + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x32] + bl Sin2 + lsls r0, 16 + asrs r0, 16 + movs r2, 0x36 + ldrsh r1, [r4, r2] + muls r0, r1 + asrs r0, 12 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x32] + bl Cos2 + lsls r0, 16 + asrs r0, 16 + movs r3, 0x36 + ldrsh r1, [r4, r3] + muls r0, r1 + asrs r0, 12 + strh r0, [r4, 0x26] + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r2, 0x34 + ldrsh r1, [r4, r2] + adds r0, r1 + movs r1, 0xB4 + lsls r1, 1 + bl __modsi3 + strh r0, [r4, 0x32] + ldrh r2, [r4, 0x36] + movs r3, 0x36 + ldrsh r1, [r4, r3] + movs r3, 0x38 + ldrsh r0, [r4, r3] + cmp r1, r0 + beq _081DAA12 + ldrh r0, [r4, 0x3A] + adds r0, r2, r0 + strh r0, [r4, 0x36] + b _081DAA16 +_081DAA12: + ldr r0, =SpriteCallbackDummy + str r0, [r4, 0x1C] +_081DAA16: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81DA9BC + + thumb_func_start sub_81DAA20 +sub_81DAA20: @ 81DAA20 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, =0x00002e90 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag + movs r0, 0x10 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, =gSprites + adds r0, r4 + bl DestroySprite + movs r0, 0x12 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + movs r0, 0x14 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81DAA20 + + thumb_func_start sub_81DAA74 +sub_81DAA74: @ 81DAA74 + push {r4,r5,lr} + adds r3, r0, 0 + ldr r2, =gSprites + movs r0, 0x10 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r5, r2, 0 + adds r5, 0x1C + adds r0, r5 + ldr r4, [r0] + ldr r0, =SpriteCallbackDummy + cmp r4, r0 + bne _081DAAC4 + movs r0, 0x12 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r2, [r0] + cmp r2, r4 + bne _081DAAC4 + movs r1, 0x14 + ldrsh r0, [r3, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldr r0, [r1] + cmp r0, r2 + bne _081DAAC4 + movs r0, 0x1 + b _081DAAC6 + .pool +_081DAAC4: + movs r0, 0 +_081DAAC6: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81DAA74 + + thumb_func_start sub_81DAACC +sub_81DAACC: @ 81DAACC + push {r4,lr} + adds r4, r0, 0 + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _081DAB20 + bl sub_81DA700 + ldr r1, =0x00003f41 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r1, 0xA0 + lsls r1, 3 + movs r0, 0 + movs r2, 0x2 + bl ChangeBgY + movs r0, 0 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0x1 + b _081DAB46 + .pool +_081DAB20: + movs r1, 0x80 + lsls r1, 6 + movs r0, 0 + bl ClearGpuRegBits + movs r1, 0x80 + lsls r1, 7 + movs r0, 0 + bl ClearGpuRegBits + movs r1, 0x80 + lsls r1, 1 + movs r0, 0 + bl ClearGpuRegBits + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + movs r0, 0 +_081DAB46: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81DAACC + + thumb_func_start sub_81DAB4C +sub_81DAB4C: @ 81DAB4C + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _081DAB64 + movs r1, 0x80 + lsls r1, 1 + movs r0, 0 + bl SetGpuRegBits +_081DAB64: + ldrh r1, [r4, 0xC] + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0x10 + bne _081DAB98 + ldrh r1, [r4, 0xE] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r0, 0x1F + bne _081DAB92 + movs r1, 0x1 + negs r1, r1 + movs r0, 0 + str r0, [sp] + adds r0, r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _081DABB0 +_081DAB92: + adds r0, r1, 0x1 + strh r0, [r4, 0xE] + b _081DABB0 +_081DAB98: + adds r0, r1, 0x1 + strh r0, [r4, 0xC] + ldrh r1, [r4, 0xC] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg +_081DABB0: + movs r0, 0 + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81DAB4C + + thumb_func_start sub_81DABBC +sub_81DABBC: @ 81DABBC + push {r4,lr} + adds r4, r0, 0 + bl sub_81DAA74 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081DABD2 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_081DABD2: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81DABBC + + thumb_func_start sub_81DABDC +sub_81DABDC: @ 81DABDC + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, =gUnknown_0862B770 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_081DABEE: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _081DABEE + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81DABDC + + thumb_func_start sub_81DAC14 +sub_81DAC14: @ 81DAC14 + push {r4-r6,lr} + sub sp, 0xC + adds r6, r0, 0 + movs r1, 0x33 + negs r1, r1 + movs r0, 0 + str r0, [sp] + movs r5, 0x2 + str r5, [sp, 0x4] + str r0, [sp, 0x8] + movs r0, 0x78 + movs r2, 0 + movs r3, 0 + bl sub_81DA74C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x10] + movs r0, 0x7 + negs r0, r0 + str r5, [sp] + movs r4, 0x2 + negs r4, r4 + str r4, [sp, 0x4] + movs r1, 0x1 + str r1, [sp, 0x8] + movs r1, 0xC1 + movs r2, 0 + movs r3, 0 + bl sub_81DA74C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x12] + str r4, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0xF7 + movs r1, 0xC1 + movs r2, 0 + movs r3, 0 + bl sub_81DA74C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x14] + ldrh r0, [r6, 0x8] + adds r0, 0x1 + strh r0, [r6, 0x8] + movs r0, 0 + add sp, 0xC + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81DAC14 + + thumb_func_start sub_81DAC80 +sub_81DAC80: @ 81DAC80 + push {lr} + adds r2, r0, 0 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081DACA4 + adds r0, r2, 0 + bl sub_81DAA20 + ldr r0, =sub_81DABDC + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_081DACA4: + movs r0, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81DAC80 + + thumb_func_start sub_81DACB4 +sub_81DACB4: @ 81DACB4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, =gUnknown_0862B784 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_081DACC6: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _081DACC6 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81DACB4 + + thumb_func_start sub_81DACEC +sub_81DACEC: @ 81DACEC + push {r4,r5,lr} + sub sp, 0xC + adds r5, r0, 0 + movs r0, 0 + str r0, [sp] + movs r4, 0x4 + negs r4, r4 + str r4, [sp, 0x4] + str r0, [sp, 0x8] + movs r0, 0x78 + movs r1, 0xC5 + movs r2, 0 + movs r3, 0 + bl sub_81DA74C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x10] + str r4, [sp] + movs r4, 0x2 + str r4, [sp, 0x4] + movs r0, 0x1 + str r0, [sp, 0x8] + movs r0, 0xF1 + movs r1, 0x3B + movs r2, 0 + movs r3, 0x1 + bl sub_81DA74C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x12] + movs r0, 0x1 + negs r0, r0 + movs r1, 0x4 + str r1, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x3B + movs r2, 0 + movs r3, 0x1 + bl sub_81DA74C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x14] + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + movs r0, 0 + add sp, 0xC + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81DACEC + + thumb_func_start sub_81DAD58 +sub_81DAD58: @ 81DAD58 + push {lr} + adds r2, r0, 0 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081DAD7C + adds r0, r2, 0 + bl sub_81DAA20 + ldr r0, =sub_81DACB4 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_081DAD7C: + movs r0, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81DAD58 + + thumb_func_start sub_81DAD8C +sub_81DAD8C: @ 81DAD8C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, =gUnknown_0862B798 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_081DAD9E: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _081DAD9E + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81DAD8C + + thumb_func_start sub_81DADC4 +sub_81DADC4: @ 81DADC4 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x10 + mov r8, r0 + movs r6, 0x80 + str r6, [sp] + movs r4, 0 + str r4, [sp, 0x4] + movs r5, 0x4 + negs r5, r5 + str r5, [sp, 0x8] + str r4, [sp, 0xC] + movs r0, 0x78 + movs r1, 0x2D + movs r2, 0xC + movs r3, 0x4 + bl sub_81DA8BC + lsls r0, 24 + lsrs r0, 24 + mov r1, r8 + strh r0, [r1, 0x10] + str r6, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0x1 + str r0, [sp, 0xC] + movs r0, 0x59 + movs r1, 0x61 + movs r2, 0xFC + movs r3, 0x4 + bl sub_81DA8BC + lsls r0, 24 + lsrs r0, 24 + mov r1, r8 + strh r0, [r1, 0x12] + str r6, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0x2 + str r0, [sp, 0xC] + movs r0, 0x97 + movs r1, 0x61 + movs r2, 0x84 + movs r3, 0x4 + bl sub_81DA8BC + lsls r0, 24 + lsrs r0, 24 + mov r1, r8 + strh r0, [r1, 0x14] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0 + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81DADC4 + + thumb_func_start sub_81DAE44 +sub_81DAE44: @ 81DAE44 + push {lr} + adds r2, r0, 0 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081DAE68 + adds r0, r2, 0 + bl sub_81DAA20 + ldr r0, =sub_81DAD8C + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_081DAE68: + movs r0, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81DAE44 + + thumb_func_start sub_81DAE78 +sub_81DAE78: @ 81DAE78 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, =gUnknown_0862B7AC + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_081DAE8A: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _081DAE8A + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81DAE78 + + thumb_func_start sub_81DAEB0 +sub_81DAEB0: @ 81DAEB0 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x10 + mov r8, r0 + movs r2, 0x8E + lsls r2, 1 + movs r6, 0x83 + str r6, [sp] + movs r5, 0x23 + str r5, [sp, 0x4] + movs r4, 0x3 + negs r4, r4 + str r4, [sp, 0x8] + movs r0, 0 + str r0, [sp, 0xC] + movs r0, 0x78 + movs r1, 0x50 + movs r3, 0x8 + bl sub_81DA8BC + lsls r0, 24 + lsrs r0, 24 + mov r1, r8 + strh r0, [r1, 0x10] + str r6, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x1 + str r0, [sp, 0xC] + movs r0, 0x78 + movs r1, 0x50 + movs r2, 0x2C + movs r3, 0x8 + bl sub_81DA8BC + lsls r0, 24 + lsrs r0, 24 + mov r1, r8 + strh r0, [r1, 0x12] + str r6, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x2 + str r0, [sp, 0xC] + movs r0, 0x79 + movs r1, 0x50 + movs r2, 0xA4 + movs r3, 0x8 + bl sub_81DA8BC + lsls r0, 24 + lsrs r0, 24 + mov r1, r8 + strh r0, [r1, 0x14] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0 + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81DAEB0 + + thumb_func_start sub_81DAF34 +sub_81DAF34: @ 81DAF34 + push {lr} + adds r2, r0, 0 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081DAF58 + adds r0, r2, 0 + bl sub_81DAA20 + ldr r0, =sub_81DAE78 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_081DAF58: + movs r0, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81DAF34 + + thumb_func_start sub_81DAF68 +sub_81DAF68: @ 81DAF68 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, =gUnknown_0862B7C0 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_081DAF7A: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _081DAF7A + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81DAF68 + + thumb_func_start sub_81DAFA0 +sub_81DAFA0: @ 81DAFA0 + push {r4,lr} + sub sp, 0xC + adds r4, r0, 0 + movs r0, 0xA + ldrsh r2, [r4, r0] + cmp r2, 0 + bne _081DAFCC + movs r1, 0x33 + negs r1, r1 + str r2, [sp] + movs r0, 0x4 + str r0, [sp, 0x4] + str r2, [sp, 0x8] + movs r0, 0x78 + movs r2, 0 + movs r3, 0 + bl sub_81DA74C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x10] + b _081DB01A +_081DAFCC: + cmp r2, 0x10 + bne _081DAFF2 + movs r0, 0x7 + negs r0, r0 + movs r1, 0x4 + str r1, [sp] + subs r1, 0x8 + str r1, [sp, 0x4] + movs r1, 0x1 + str r1, [sp, 0x8] + movs r1, 0xC1 + movs r2, 0 + movs r3, 0 + bl sub_81DA74C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x12] + b _081DB01A +_081DAFF2: + cmp r2, 0x20 + bne _081DB01A + movs r0, 0x4 + negs r0, r0 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x2 + str r0, [sp, 0x8] + movs r0, 0xF7 + movs r1, 0xC1 + movs r2, 0 + movs r3, 0 + bl sub_81DA74C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x14] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_081DB01A: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + movs r0, 0 + add sp, 0xC + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81DAFA0 + + thumb_func_start sub_81DB02C +sub_81DB02C: @ 81DB02C + push {lr} + adds r2, r0, 0 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081DB050 + adds r0, r2, 0 + bl sub_81DAA20 + ldr r0, =sub_81DAF68 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_081DB050: + movs r0, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81DB02C + + thumb_func_start sub_81DB060 +sub_81DB060: @ 81DB060 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, =gUnknown_0862B7D4 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_081DB072: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _081DB072 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81DB060 + + thumb_func_start sub_81DB098 +sub_81DB098: @ 81DB098 + push {r4,lr} + sub sp, 0xC + adds r4, r0, 0 + movs r0, 0xA + ldrsh r1, [r4, r0] + cmp r1, 0 + bne _081DB0C4 + str r1, [sp] + movs r0, 0x8 + negs r0, r0 + str r0, [sp, 0x4] + str r1, [sp, 0x8] + movs r0, 0x78 + movs r1, 0xC5 + movs r2, 0 + movs r3, 0 + bl sub_81DA74C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x10] + b _081DB112 +_081DB0C4: + cmp r1, 0x10 + bne _081DB0E8 + movs r0, 0x8 + negs r0, r0 + str r0, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + movs r0, 0xF1 + movs r1, 0x4E + movs r2, 0 + movs r3, 0 + bl sub_81DA74C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x12] + b _081DB112 +_081DB0E8: + cmp r1, 0x20 + bne _081DB112 + movs r0, 0x1 + negs r0, r0 + movs r1, 0x8 + str r1, [sp] + movs r1, 0x1 + str r1, [sp, 0x4] + movs r1, 0x2 + str r1, [sp, 0x8] + movs r1, 0x4E + movs r2, 0 + movs r3, 0 + bl sub_81DA74C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x14] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_081DB112: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + movs r0, 0 + add sp, 0xC + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81DB098 + + thumb_func_start sub_81DB124 +sub_81DB124: @ 81DB124 + push {lr} + adds r2, r0, 0 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081DB148 + adds r0, r2, 0 + bl sub_81DAA20 + ldr r0, =sub_81DB060 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_081DB148: + movs r0, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81DB124 + + thumb_func_start sub_81DB158 +sub_81DB158: @ 81DB158 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, =gUnknown_0862B7E8 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_081DB16A: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _081DB16A + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81DB158 + + thumb_func_start sub_81DB190 +sub_81DB190: @ 81DB190 + push {r4,lr} + sub sp, 0x10 + adds r4, r0, 0 + movs r0, 0xA + ldrsh r1, [r4, r0] + cmp r1, 0 + bne _081DB1BE + movs r0, 0x80 + str r0, [sp] + str r1, [sp, 0x4] + subs r0, 0x84 + str r0, [sp, 0x8] + str r1, [sp, 0xC] + movs r0, 0x78 + movs r1, 0x2D + movs r2, 0xC + movs r3, 0x4 + bl sub_81DA8BC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x10] + b _081DB212 +_081DB1BE: + cmp r1, 0x10 + bne _081DB1E6 + movs r0, 0x80 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + subs r0, 0x4 + str r0, [sp, 0x8] + movs r0, 0x1 + str r0, [sp, 0xC] + movs r0, 0x59 + movs r1, 0x61 + movs r2, 0xFC + movs r3, 0x4 + bl sub_81DA8BC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x12] + b _081DB212 +_081DB1E6: + cmp r1, 0x20 + bne _081DB212 + movs r0, 0x80 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + subs r0, 0x4 + str r0, [sp, 0x8] + movs r0, 0x2 + str r0, [sp, 0xC] + movs r0, 0x97 + movs r1, 0x61 + movs r2, 0x84 + movs r3, 0x4 + bl sub_81DA8BC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x14] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_081DB212: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + movs r0, 0 + add sp, 0x10 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81DB190 + + thumb_func_start sub_81DB224 +sub_81DB224: @ 81DB224 + push {lr} + adds r2, r0, 0 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081DB248 + adds r0, r2, 0 + bl sub_81DAA20 + ldr r0, =sub_81DB158 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_081DB248: + movs r0, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81DB224 + + thumb_func_start sub_81DB258 +sub_81DB258: @ 81DB258 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, =gUnknown_0862B7FC + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_081DB26A: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _081DB26A + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81DB258 + + thumb_func_start sub_81DB290 +sub_81DB290: @ 81DB290 + push {r4,lr} + sub sp, 0x10 + adds r4, r0, 0 + movs r0, 0xA + ldrsh r1, [r4, r0] + cmp r1, 0 + bne _081DB2C2 + movs r2, 0x8E + lsls r2, 1 + movs r0, 0x83 + str r0, [sp] + movs r0, 0x23 + str r0, [sp, 0x4] + subs r0, 0x26 + str r0, [sp, 0x8] + str r1, [sp, 0xC] + movs r0, 0x78 + movs r1, 0x50 + movs r3, 0x8 + bl sub_81DA8BC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x10] + b _081DB316 +_081DB2C2: + cmp r1, 0x10 + bne _081DB2EA + movs r0, 0x83 + str r0, [sp] + movs r0, 0x23 + str r0, [sp, 0x4] + subs r0, 0x26 + str r0, [sp, 0x8] + movs r0, 0x1 + str r0, [sp, 0xC] + movs r0, 0x78 + movs r1, 0x50 + movs r2, 0x2C + movs r3, 0x8 + bl sub_81DA8BC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x12] + b _081DB316 +_081DB2EA: + cmp r1, 0x20 + bne _081DB316 + movs r0, 0x83 + str r0, [sp] + movs r0, 0x23 + str r0, [sp, 0x4] + subs r0, 0x26 + str r0, [sp, 0x8] + movs r0, 0x2 + str r0, [sp, 0xC] + movs r0, 0x79 + movs r1, 0x50 + movs r2, 0xA4 + movs r3, 0x8 + bl sub_81DA8BC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x14] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_081DB316: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + movs r0, 0 + add sp, 0x10 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81DB290 + + thumb_func_start sub_81DB328 +sub_81DB328: @ 81DB328 + push {lr} + adds r2, r0, 0 + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081DB34C + adds r0, r2, 0 + bl sub_81DAA20 + ldr r0, =sub_81DB258 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_081DB34C: + movs r0, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81DB328 + + thumb_func_start GetStringCenterAlignXOffset +@ s32 GetStringCenterAlignXOffset(u8 fontId, u8 *str, s32 totalWidth) +GetStringCenterAlignXOffset: @ 81DB35C + push {lr} + movs r3, 0 + bl GetStringCenterAlignXOffsetWithLetterSpacing + pop {r1} + bx r1 + thumb_func_end GetStringCenterAlignXOffset + + thumb_func_start GetStringRightAlignXOffset +@ s32 GetStringRightAlignXOffset(u8 fontId, u8 *str, s32 totalWidth) +GetStringRightAlignXOffset: @ 81DB368 + push {lr} + movs r3, 0 + bl GetStringWidthDifference + pop {r1} + bx r1 + thumb_func_end GetStringRightAlignXOffset + + thumb_func_start GetStringCenterAlignXOffsetWithLetterSpacing +@ s32 GetStringCenterAlignXOffsetWithLetterSpacing(u8 fontId, u8 *str, s32 totalWidth, s16 letterSpacing) +GetStringCenterAlignXOffsetWithLetterSpacing: @ 81DB374 + push {lr} + bl GetStringWidthDifference + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + pop {r1} + bx r1 + thumb_func_end GetStringCenterAlignXOffsetWithLetterSpacing + + thumb_func_start GetStringWidthDifference +@ s32 GetStringWidthDifference(u8 fontId, u8 *str, s32 totalWidth, s16 letterSpacing) +GetStringWidthDifference: @ 81DB384 + push {r4,lr} + adds r4, r2, 0 + adds r2, r3, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r2, 16 + asrs r2, 16 + bl GetStringWidth + cmp r4, r0 + bgt _081DB39E + movs r0, 0 + b _081DB3A0 +_081DB39E: + subs r0, r4, r0 +_081DB3A0: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetStringWidthDifference + + thumb_func_start GetMaxWidthInMenuTable +GetMaxWidthInMenuTable: @ 81DB3A8 + push {r4-r6,lr} + movs r6, 0 + cmp r6, r1 + bge _081DB3CC + adds r5, r0, 0 + adds r4, r1, 0 +_081DB3B4: + ldr r1, [r5] + movs r0, 0x1 + movs r2, 0 + bl GetStringWidth + cmp r0, r6 + ble _081DB3C4 + adds r6, r0, 0 +_081DB3C4: + adds r5, 0x8 + subs r4, 0x1 + cmp r4, 0 + bne _081DB3B4 +_081DB3CC: + adds r0, r6, 0 + bl convert_pixel_width_to_tile_width + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end GetMaxWidthInMenuTable + + thumb_func_start sub_81DB3D8 +sub_81DB3D8: @ 81DB3D8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r7, r1, 0 + adds r5, r2, 0 + movs r6, 0 + movs r4, 0 + cmp r6, r5 + bge _081DB40A +_081DB3EC: + adds r0, r7, r4 + ldrb r0, [r0] + lsls r0, 3 + add r0, r8 + ldr r1, [r0] + movs r0, 0x1 + movs r2, 0 + bl GetStringWidth + cmp r0, r6 + ble _081DB404 + adds r6, r0, 0 +_081DB404: + adds r4, 0x1 + cmp r4, r5 + blt _081DB3EC +_081DB40A: + adds r0, r6, 0 + bl convert_pixel_width_to_tile_width + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81DB3D8 + + thumb_func_start sub_81DB41C +sub_81DB41C: @ 81DB41C + push {r4-r7,lr} + adds r4, r0, 0 + ldr r1, [r4] + movs r7, 0 + movs r6, 0 + ldrh r0, [r4, 0xC] + cmp r7, r0 + bge _081DB44C + adds r5, r1, 0 +_081DB42E: + ldrb r0, [r4, 0x17] + lsls r0, 26 + lsrs r0, 26 + ldr r1, [r5] + movs r2, 0 + bl GetStringWidth + cmp r0, r7 + ble _081DB442 + adds r7, r0, 0 +_081DB442: + adds r5, 0x8 + adds r6, 0x1 + ldrh r0, [r4, 0xC] + cmp r6, r0 + blt _081DB42E +_081DB44C: + ldrb r0, [r4, 0x12] + adds r1, r7, r0 + adds r0, r1, 0 + adds r0, 0x9 + cmp r0, 0 + bge _081DB45A + adds r0, 0x7 +_081DB45A: + asrs r0, 3 + cmp r0, 0x1C + ble _081DB462 + movs r0, 0x1C +_081DB462: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81DB41C + + thumb_func_start sub_81DB468 +sub_81DB468: @ 81DB468 + push {lr} + adds r2, r0, 0 + adds r0, r1, 0 + lsls r2, 5 + ldr r1, =gPokedexEntries + adds r2, r1 + adds r1, r2, 0 + bl StringCopy + movs r1, 0 + strb r1, [r0] + adds r0, 0x1 + ldr r1, =gUnknown_085E8268 + bl StringCopy + pop {r0} + bx r0 + .pool + thumb_func_end sub_81DB468 + + thumb_func_start sub_81DB494 +sub_81DB494: @ 81DB494 + push {r4-r7,lr} + adds r6, r1, 0 + adds r5, r2, 0 + adds r7, r3, 0 + cmp r5, 0 + beq _081DB4B6 + adds r1, r5, 0 + bl StringCopy + adds r4, r0, 0 + lsls r0, r6, 24 + lsrs r0, 24 + adds r1, r5, 0 + movs r2, 0 + bl GetStringWidth + b _081DB4BA +_081DB4B6: + adds r4, r0, 0 + movs r0, 0 +_081DB4BA: + subs r3, r7, r0 + cmp r3, 0 + ble _081DB4D4 + movs r0, 0xFC + strb r0, [r4] + adds r4, 0x1 + movs r0, 0x11 + strb r0, [r4] + adds r4, 0x1 + strb r3, [r4] + adds r4, 0x1 + movs r0, 0xFF + strb r0, [r4] +_081DB4D4: + adds r0, r4, 0 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81DB494 + + thumb_func_start sub_81DB4DC +sub_81DB4DC: @ 81DB4DC + push {r4,r5,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + bl StripExtCtrlCodes + adds r0, r4, 0 + bl StringLength + lsls r0, 24 + lsrs r1, r0, 24 + cmp r5, 0xFC + bne _081DB51A + cmp r1, 0x5 + bhi _081DB51E + movs r3, 0xFC + movs r2, 0x7 +_081DB4FE: + adds r0, r4, r1 + strb r3, [r0] + strb r2, [r0, 0x1] + adds r0, r1, 0x2 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x5 + bls _081DB4FE + b _081DB51E +_081DB510: + adds r0, r4, r1 + strb r5, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 +_081DB51A: + cmp r1, 0x5 + bls _081DB510 +_081DB51E: + adds r1, r4, r1 + movs r0, 0xFF + strb r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81DB4DC + + thumb_func_start sub_81DB52C +sub_81DB52C: @ 81DB52C + push {r4,lr} + adds r4, r0, 0 + bl StringLength + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x5 + bhi _081DB546 + adds r0, r4, 0 + movs r1, 0x1 + bl ConvertInternationalString + b _081DB54C +_081DB546: + adds r0, r4, 0 + bl StripExtCtrlCodes +_081DB54C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81DB52C + + thumb_func_start sub_81DB554 +sub_81DB554: @ 81DB554 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + bl StringLength + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x5 + bhi _081DB572 + adds r0, r4, 0 + movs r1, 0x1 + bl ConvertInternationalString + b _081DB5A4 +_081DB572: + cmp r5, 0xFC + bne _081DB57E + adds r0, r4, 0 + bl StripExtCtrlCodes + b _081DB5A4 +_081DB57E: + adds r1, r4, 0 + b _081DB584 +_081DB582: + adds r1, 0x1 +_081DB584: + ldrb r0, [r1, 0x1] + cmp r0, 0xFF + bne _081DB582 + cmp r1, r4 + bcc _081DB5A4 + ldrb r0, [r1] + cmp r0, r5 + bne _081DB5A4 + movs r2, 0xFF +_081DB596: + strb r2, [r1] + subs r1, 0x1 + cmp r1, r4 + bcc _081DB5A4 + ldrb r0, [r1] + cmp r0, r5 + beq _081DB596 +_081DB5A4: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81DB554 + + thumb_func_start sub_81DB5AC +sub_81DB5AC: @ 81DB5AC + push {lr} + adds r2, r0, 0 + ldrb r0, [r2] + adds r2, 0x1 + cmp r0, 0xFC + bne _081DB5E4 + ldrb r0, [r2] + adds r2, 0x1 + cmp r0, 0x15 + bne _081DB5E4 + b _081DB5CE +_081DB5C2: + cmp r1, 0xFC + bne _081DB5CC + ldrb r0, [r2, 0x1] + cmp r0, 0x16 + beq _081DB5E4 +_081DB5CC: + adds r2, 0x1 +_081DB5CE: + ldrb r1, [r2] + adds r0, r1, 0 + cmp r0, 0xFF + bne _081DB5C2 + movs r0, 0xFC + strb r0, [r2] + adds r2, 0x1 + movs r0, 0x16 + strb r0, [r2] + movs r0, 0xFF + strb r0, [r2, 0x1] +_081DB5E4: + pop {r0} + bx r0 + thumb_func_end sub_81DB5AC + + thumb_func_start sub_81DB5E8 +sub_81DB5E8: @ 81DB5E8 + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r2, 0 + bl StringCopy + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl ConvertInternationalString + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81DB5E8 + + thumb_func_start sub_81DB604 +sub_81DB604: @ 81DB604 + push {lr} + adds r1, r0, 0 + ldrb r0, [r1] + cmp r0, 0xFC + bne _081DB618 + ldrb r0, [r1, 0x1] + cmp r0, 0x15 + bne _081DB618 + movs r0, 0x1 + b _081DB61A +_081DB618: + movs r0, 0x2 +_081DB61A: + pop {r1} + bx r1 + thumb_func_end sub_81DB604 + + thumb_func_start sub_81DB620 +sub_81DB620: @ 81DB620 + push {r4-r7,lr} + sub sp, 0x4 + lsls r4, r0, 1 + adds r4, r0 + lsls r4, 2 + ldr r0, =gWindows + adds r4, r0 + lsls r7, r3, 5 + ldrb r0, [r4, 0x3] + lsls r6, r0, 5 + muls r2, r6 + ldr r0, [r4, 0x8] + adds r0, r2 + lsls r1, 5 + adds r5, r0, r1 + ldr r0, [sp, 0x18] + cmp r0, 0 + ble _081DB66C + adds r4, r0, 0 +_081DB646: + ldr r0, =0x11111111 + str r0, [sp] + adds r2, r7, 0 + cmp r2, 0 + bge _081DB652 + adds r2, 0x3 +_081DB652: + lsls r2, 9 + lsrs r2, 11 + movs r0, 0x80 + lsls r0, 17 + orrs r2, r0 + mov r0, sp + adds r1, r5, 0 + bl CpuFastSet + adds r5, r6 + subs r4, 0x1 + cmp r4, 0 + bne _081DB646 +_081DB66C: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81DB620 + + .align 2, 0 @ Don't pad with nop. + + \ No newline at end of file diff --git a/asm/rotating_gate.s b/asm/rotating_gate.s index b10e27e658..5b7671bf89 100644 --- a/asm/rotating_gate.s +++ b/asm/rotating_gate.s @@ -326,7 +326,7 @@ _080FBA38: movs r1, 0 movs r2, 0 movs r3, 0x94 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x40 @@ -338,7 +338,7 @@ _080FBA38: lsls r4, r5, 4 adds r4, r5 lsls r4, 2 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites adds r4, r2 strh r6, [r4, 0x2E] movs r2, 0x3E @@ -377,7 +377,7 @@ _080FBA38: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim adds r0, r5, 0 b _080FBAD6 .pool @@ -421,10 +421,10 @@ sub_80FBAE4: @ 80FBAE4 lsrs r4, r0, 24 _080FBB1A: movs r0, 0x30 - bl audio_play + bl PlaySE adds r0, r6, 0 adds r1, r4, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim b _080FBB58 _080FBB2A: cmp r5, 0x2 @@ -444,10 +444,10 @@ _080FBB2A: lsrs r4, r0, 24 _080FBB4A: movs r0, 0x30 - bl audio_play + bl PlaySE adds r0, r6, 0 adds r1, r4, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim _080FBB58: movs r0, 0 strh r0, [r6, 0x30] @@ -474,7 +474,7 @@ sub_80FBB64: @ 80FBB64 adds r0, 0x28 movs r2, 0 ldrsb r2, [r0, r2] - ldr r0, =gUnknown_02021BBC + ldr r0, =gSpriteCoordOffsetX adds r2, r1 ldrh r0, [r0] adds r2, r0 @@ -488,7 +488,7 @@ sub_80FBB64: @ 80FBB64 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 - ldr r3, =gUnknown_02021BBE + ldr r3, =gSpriteCoordOffsetY adds r0, r1 ldrh r3, [r3] adds r0, r3 @@ -544,7 +544,7 @@ _080FBBF2: LoadRotatingGatePics: @ 80FBC00 push {lr} ldr r0, =gUnknown_08591D58 - bl LoadObjectPics + bl LoadSpriteSheets pop {r0} bx r0 .pool @@ -625,12 +625,12 @@ _080FBC94: lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 adds r0, r4, 0 - bl obj_free_rotscale_entry + bl FreeSpriteOamMatrix adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite movs r0, 0x40 strb r0, [r5] _080FBCB4: @@ -818,7 +818,7 @@ sub_80FBE08: @ 80FBE08 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 strh r1, [r4, 0x30] adds r0, r3, 0 diff --git a/asm/roulette.s b/asm/roulette.s index df993ef43f..5332c4a46f 100644 --- a/asm/roulette.s +++ b/asm/roulette.s @@ -9,8 +9,8 @@ sub_8140238: @ 8140238 push {lr} bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer ldr r0, =gUnknown_0203AB88 ldr r0, [r0] adds r1, r0, 0 @@ -30,8 +30,8 @@ _0814025A: sub_8140264: @ 8140264 push {r4,lr} sub sp, 0x4 - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_8142814 ldr r4, =gUnknown_0203AB88 @@ -245,7 +245,7 @@ sub_8140470: @ 8140470 bl memcpy ldr r5, =gUnknown_0203AB88 ldr r3, [r5] - ldr r4, =gUnknown_020375E0 + ldr r4, =gSpecialVar_0x8004 ldrb r0, [r4] movs r1, 0x1 ands r1, r0 @@ -383,7 +383,7 @@ _081405B6: lsrs r4, r0, 24 cmp r4, 0x5 bls _0814056C - bl GameFreakRTC_CalcLocalDateTime + bl RtcCalcLocalTime add sp, 0x8 pop {r4-r6} pop {r0} @@ -442,7 +442,7 @@ _08140630: .pool _08140650: bl ResetPaletteFade - bl ResetAllObjectData + bl ResetSpriteData bl ResetTasks bl reset_temp_tile_data_buffers b _081407F8 @@ -493,8 +493,8 @@ _081406C0: bl sub_81431E4 b _081407F8 _081406E0: - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl GetCoins lsls r0, 16 lsrs r0, 16 @@ -523,12 +523,12 @@ _081406E0: ldrb r0, [r4] movs r1, 0x3 bl CopyWindowToVram - ldr r1, =gUnknown_02021BBC + ldr r1, =gSpriteCoordOffsetX movs r2, 0x3C negs r2, r2 adds r0, r2, 0 strh r0, [r1] - ldr r0, =gUnknown_02021BBE + ldr r0, =gSpriteCoordOffsetY strh r5, [r0] b _081407F8 .pool @@ -1352,7 +1352,7 @@ _08140E20: mov r1, r9 strh r1, [r4, 0xA] movs r0, 0x5 - bl audio_play + bl PlaySE ldr r5, =gUnknown_0203AB88 ldr r0, [r5] adds r0, 0xB8 @@ -1384,7 +1384,7 @@ _08140E20: bl sub_8142284 movs r4, 0 mov r9, r6 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites mov r12, r1 movs r2, 0x8 add r2, r12 @@ -1459,7 +1459,7 @@ _08140E8C: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r3, r0, r1 adds r2, r3, 0 adds r2, 0x40 @@ -1668,7 +1668,7 @@ _0814109A: cmp r1, 0 beq _081410E8 movs r0, 0x16 - bl audio_play + bl PlaySE b _081410F2 .pool _081410E8: @@ -1703,7 +1703,7 @@ sub_81410FC: @ 81410FC asrs r0, 16 cmp r0, 0x2 ble _08141128 - ldr r1, =gUnknown_02021BBC + ldr r1, =gSpriteCoordOffsetX ldrh r0, [r1] adds r0, 0x2 strh r0, [r1] @@ -1717,7 +1717,7 @@ _08141128: asrs r0, 16 cmp r0, 0x68 bne _08141180 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites adds r0, r1, 0 adds r0, 0x55 ldrb r1, [r0] @@ -1726,7 +1726,7 @@ _08141128: lsls r0, 2 adds r2, 0x1C adds r0, r2 - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy str r1, [r0] b _08141180 .pool @@ -1770,7 +1770,7 @@ _081411AC: beq _08141214 b _08141280 _081411B2: - ldr r0, =gUnknown_03005CF8 + ldr r0, =gLocalTime ldrb r0, [r0, 0x2] subs r0, 0x4 lsls r0, 24 @@ -1817,7 +1817,7 @@ _08141200: b _0814133A .pool _08141214: - ldr r0, =gUnknown_03005CF8 + ldr r0, =gLocalTime ldrb r0, [r0, 0x2] subs r0, 0x4 lsls r0, 24 @@ -1868,7 +1868,7 @@ _08141268: b _0814133A .pool _08141280: - ldr r0, =gUnknown_03005CF8 + ldr r0, =gLocalTime ldrb r0, [r0, 0x2] subs r0, 0x4 lsls r0, 24 @@ -2020,7 +2020,7 @@ sub_8141344: @ 8141344 subs r0, r4 lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gUnknown_03005CF8 + ldr r0, =gLocalTime ldrb r0, [r0, 0x2] lsls r0, 24 asrs r0, 24 @@ -2238,7 +2238,7 @@ sub_814155C: @ 814155C lsls r1, r2, 4 adds r1, r2 lsls r1, 2 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites adds r1, r2 str r1, [r3, 0x38] ldr r2, =sub_81446AC @@ -2413,7 +2413,7 @@ sub_81416D4: @ 81416D4 asrs r0, 16 cmp r0, 0x2 ble _08141700 - ldr r1, =gUnknown_02021BBC + ldr r1, =gSpriteCoordOffsetX ldrh r0, [r1] subs r0, 0x2 strh r0, [r1] @@ -2427,7 +2427,7 @@ _08141700: asrs r0, 16 cmp r0, 0x68 bne _08141768 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites adds r0, r1, 0 adds r0, 0x55 ldrb r1, [r0] @@ -2554,12 +2554,12 @@ sub_8141800: @ 8141800 blt _08141864 cmp r0, 0x2 bgt _08141864 - bl task_is_not_running_overworld_fanfare + bl IsFanfareTaskInactive lsls r0, 24 cmp r0, 0 beq _08141888 movs r0, 0x1D - bl sub_80847F8 + bl GetGameStat ldrh r1, [r4, 0x1E] adds r1, 0x1 strh r1, [r4, 0x1E] @@ -2580,7 +2580,7 @@ _08141848: b _08141888 .pool _08141864: - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 @@ -2627,7 +2627,7 @@ sub_814189C: @ 814189C cmp r0, 0xC bne _081418EC ldr r0, =0x00000185 - bl fanfare_play + bl PlayFanfare ldr r4, =gUnknown_0203AB8C ldrb r0, [r4] movs r1, 0 @@ -2639,7 +2639,7 @@ sub_814189C: @ 814189C _081418EC: movs r0, 0xC3 lsls r0, 1 - bl fanfare_play + bl PlayFanfare ldr r4, =gUnknown_0203AB8C ldrb r0, [r4] movs r1, 0 @@ -2873,7 +2873,7 @@ sub_8141AC0: @ 8141AC0 ldrb r0, [r2] ands r1, r0 strb r1, [r2] - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites ldr r2, [r5] ldr r5, =gUnknown_085B6154 ldr r0, =gTasks @@ -2934,7 +2934,7 @@ sub_8141B58: @ 8141B58 strb r2, [r1] movs r0, 0 bl sub_81424FC - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r0, [r4] adds r0, 0x6C ldrb r1, [r0] @@ -3111,7 +3111,7 @@ dp01t_12_3_battle_menu: @ 8141D0C bl sub_81424FC movs r0, 0x6 bl sub_814372C - ldr r7, =gUnknown_02020630 + ldr r7, =gSprites ldr r3, =gUnknown_0203AB88 movs r6, 0x5 negs r6, r6 @@ -3208,12 +3208,12 @@ sub_8141DE4: @ 8141DE4 ldrb r1, [r1, 0x19] cmp r0, r1 bcs _08141E38 - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 movs r0, 0x1 b _08141E3C .pool _08141E38: - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 movs r0, 0 _08141E3C: strh r0, [r1] @@ -3254,8 +3254,8 @@ sub_8141E7C: @ 8141E7C bne _08141EDE movs r0, 0 bl SetVBlankCallback - ldr r1, =gUnknown_02021BBC - ldr r0, =gUnknown_02021BBE + ldr r1, =gSpriteCoordOffsetX + ldr r0, =gSpriteCoordOffsetY strh r4, [r0] strh r4, [r1] bl sub_8121DA0 @@ -3269,9 +3269,9 @@ sub_8141E7C: @ 8141E7C movs r0, 0x54 movs r1, 0 bl SetGpuReg - bl ResetObjectPaletteAllocator + bl FreeAllSpritePalettes bl ResetPaletteFade - bl ResetAllObjectData + bl ResetSpriteData bl sub_8140418 ldr r1, =gUnknown_03005DAC ldr r0, =sub_80AF168 @@ -3324,7 +3324,7 @@ _08141F1E: cmp r0, 0 beq _08141F40 movs r0, 0x5 - bl audio_play + bl PlaySE _08141F40: ldr r2, [r5] adds r0, r2, 0 @@ -3861,28 +3861,28 @@ _08142368: b _081423D4 .pool _0814237C: - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r2, =gUnknown_0203AB88 ldr r0, [r2] adds r0, 0x43 b _081423C0 .pool _08142390: - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r2, =gUnknown_0203AB88 ldr r0, [r2] adds r0, 0x44 b _081423C0 .pool _081423A4: - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r2, =gUnknown_0203AB88 ldr r0, [r2] adds r0, 0x45 b _081423C0 .pool _081423B8: - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r2, =gUnknown_0203AB88 ldr r0, [r2] adds r0, 0x46 @@ -4443,7 +4443,7 @@ sub_8142814: @ 8142814 ldr r3, [r4] movs r0, 0x2E ldrsh r1, [r3, r0] - ldr r0, =gUnknown_02021BBE + ldr r0, =gSpriteCoordOffsetY movs r4, 0 ldrsh r2, [r0, r4] adds r2, 0x50 @@ -4454,7 +4454,7 @@ sub_8142814: @ 8142814 subs r4, r0 movs r6, 0x2C ldrsh r5, [r3, r6] - ldr r0, =gUnknown_02021BBC + ldr r0, =gSpriteCoordOffsetX movs r6, 0 ldrsh r1, [r0, r6] adds r1, 0x74 @@ -4617,7 +4617,7 @@ sub_81429A0: @ 81429A0 ands r0, r1 cmp r0, 0 beq _081429DE - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 movs r0, 0x1 strh r0, [r1] bl HideCoinsWindow @@ -4647,7 +4647,7 @@ sub_81429F0: @ 81429F0 cmp r0, 0 beq _08142A60 ldr r2, =gUnknown_085B6344 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] movs r5, 0x1 adds r0, r5, 0 @@ -4712,7 +4712,7 @@ sub_8142A88: @ 8142A88 ldrsh r0, [r6, r1] bl PrintCoinsString ldr r2, =gUnknown_085B6344 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 mov r8, r0 ldrh r1, [r0] movs r7, 0x1 @@ -4861,9 +4861,9 @@ sub_8142C0C: @ 8142C0C lsls r0, 24 cmp r0, 0 bne _08142C44 - bl ResetObjectPaletteAllocator + bl FreeAllSpritePalettes ldr r0, =gUnknown_085B7384 - bl LoadTaggedObjectPalettes + bl LoadSpritePalettes ldr r0, =gUnknown_085B7864 bl LoadCompressedObjectPic ldr r0, =gUnknown_085B7978 @@ -4874,12 +4874,12 @@ sub_8142C0C: @ 8142C0C .pool _08142C44: movs r0, 0xE - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag movs r0, 0xD - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag movs r0, 0xC - bl FreeObjectTilesByTag - bl ResetObjectPaletteAllocator + bl FreeSpriteTilesByTag + bl FreeAllSpritePalettes _08142C5A: pop {r0} bx r0 @@ -4896,11 +4896,11 @@ sub_8142C60: @ 8142C60 ldrb r3, [r1] movs r1, 0x74 movs r2, 0x50 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r5, 4 adds r1, r5 lsls r1, 2 @@ -4959,7 +4959,7 @@ sub_8142CD0: @ 8142CD0 orrs r0, r1 str r0, [sp, 0x4] mov r0, sp - bl LoadObjectPic + bl LoadSpriteSheet ldr r4, =gUnknown_085B7490 ldr r0, [r4] adds r1, r5, 0 @@ -4970,9 +4970,9 @@ sub_8142CD0: @ 8142CD0 ldrh r0, [r4, 0x6] strh r0, [r6, 0x6] mov r0, sp - bl LoadObjectPic + bl LoadSpriteSheet movs r6, 0 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r8, r0 _08142D18: lsls r0, r6, 1 @@ -4991,7 +4991,7 @@ _08142D24: adds r2, r4, 0 adds r2, 0x5C movs r3, 0x1E - bl AddObjectToFront + bl CreateSprite ldr r1, =gUnknown_0203AB88 ldr r1, [r1] adds r2, r5, 0 @@ -5030,7 +5030,7 @@ _08142D6E: cmp r6, 0x2 bls _08142D18 movs r6, 0 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites _08142D86: lsls r1, r6, 1 adds r1, r6 @@ -5042,7 +5042,7 @@ _08142D86: asrs r1, 16 movs r2, 0x46 movs r3, 0x1E - bl AddObjectToFront + bl CreateSprite ldr r1, =gUnknown_0203AB88 ldr r1, [r1] adds r1, r6 @@ -5065,7 +5065,7 @@ _08142D86: cmp r6, 0x3 bls _08142D86 movs r6, 0 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites _08142DCC: lsls r2, r6, 1 adds r2, r6 @@ -5077,7 +5077,7 @@ _08142DCC: asrs r2, 16 movs r1, 0x7E movs r3, 0x1E - bl AddObjectToFront + bl CreateSprite ldr r1, =gUnknown_0203AB88 ldr r1, [r1] adds r1, r6 @@ -5121,9 +5121,9 @@ _08142E40: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 @@ -5151,7 +5151,7 @@ sub_8142E70: @ 8142E70 cmp r0, 0x1 bne _08142F66 movs r4, 0 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites ldr r3, =gUnknown_0203AB88 movs r2, 0x4 _08142E92: @@ -5181,7 +5181,7 @@ _08142EC0: ldr r7, =gUnknown_085B62E4 adds r1, r7, 0x4 mov r8, r1 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites movs r6, 0x5 negs r6, r6 _08142ED2: @@ -5234,7 +5234,7 @@ _08142F2C: bls _08142ED2 cmp r4, 0x12 bhi _08142F66 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites ldr r3, =gUnknown_0203AB88 movs r5, 0x5 negs r5, r5 @@ -5274,7 +5274,7 @@ sub_8142F7C: @ 8142F7C push {r7} movs r5, 0 ldr r6, =gUnknown_0203AB88 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites movs r0, 0x4 mov r8, r0 _08142F8C: @@ -5282,7 +5282,7 @@ _08142F8C: movs r1, 0x74 movs r2, 0x14 movs r3, 0xA - bl AddObjectToFront + bl CreateSprite ldr r1, [r6] adds r3, r5, 0 adds r3, 0x31 @@ -5343,7 +5343,7 @@ _08142F8C: lsls r0, 2 adds r0, r4 movs r1, 0x8 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 @@ -5371,7 +5371,7 @@ sub_8143038: @ 8143038 movs r6, 0 cmp r0, 0 beq _08143084 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldr r3, =gUnknown_0203AB88 movs r2, 0x4 _08143056: @@ -5397,7 +5397,7 @@ _08143056: _08143084: ldr r0, =gUnknown_0203AB88 mov r8, r0 - ldr r7, =gUnknown_02020630 + ldr r7, =gSprites ldr r0, =gUnknown_085B6154 mov r12, r0 movs r0, 0x5 @@ -5505,7 +5505,7 @@ sub_8143150: @ 8143150 lsrs r5, r0, 24 cmp r5, 0 bne _08143180 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, =gUnknown_0203AB88 ldr r0, [r0] adds r0, 0x6C @@ -5522,7 +5522,7 @@ sub_8143150: @ 8143150 b _081431D0 .pool _08143180: - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldr r3, =gUnknown_0203AB88 ldr r0, [r3] adds r0, 0x6C @@ -5585,12 +5585,12 @@ sub_81431E4: @ 81431E4 ldrh r1, [r4, 0x4] orrs r1, r2 str r1, [r0, 0x4] - bl LoadObjectPic + bl LoadSpriteSheet movs r1, 0xF mov r0, sp strh r1, [r0] movs r0, 0 - ldr r7, =gUnknown_02020630 + ldr r7, =gSprites _08143210: movs r4, 0 adds r6, r0, 0x1 @@ -5691,7 +5691,7 @@ _081432A2: _081432DC: lsls r0, r2, 12 lsrs r5, r0, 16 - ldr r1, =gUnknown_02021BC0 + ldr r1, =gOamMatrices lsls r0, r3, 3 adds r1, r0, r1 adds r0, r4, 0 @@ -5743,7 +5743,7 @@ _08143322: orrs r0, r2 str r0, [r6, 0x4] mov r0, sp - bl LoadObjectPic + bl LoadSpriteSheet adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 @@ -5753,12 +5753,12 @@ _08143322: movs r1, 0xD0 movs r2, 0x10 movs r3, 0x4 - bl AddObjectToFront + bl CreateSprite ldr r3, =gUnknown_0203AB88 ldr r1, [r3] adds r1, 0x50 strb r0, [r1] - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldr r0, [r3] adds r0, 0x50 ldrb r1, [r0] @@ -5782,7 +5782,7 @@ _0814338C: ldr r0, =gUnknown_085B77FC movs r2, 0x18 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r1, [r7] adds r3, r5, 0 adds r3, 0x15 @@ -5824,12 +5824,12 @@ _0814338C: movs r1, 0x78 movs r2, 0x44 movs r3, 0x4 - bl AddObjectToFront + bl CreateSprite ldr r2, =gUnknown_0203AB88 ldr r1, [r2] adds r1, 0x55 strb r0, [r1] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r0, [r2] adds r0, 0x55 ldrb r1, [r0] @@ -5853,7 +5853,7 @@ _0814341C: ldr r0, =gUnknown_085B782C movs r2, 0x24 movs r3, 0x4 - bl AddObjectToFront + bl CreateSprite ldr r1, [r4] adds r2, r5, 0 adds r2, 0x1A @@ -5897,12 +5897,12 @@ _0814341C: movs r1, 0x98 movs r2, 0x60 movs r3, 0x9 - bl AddObjectToFront + bl CreateSprite ldr r3, =gUnknown_0203AB88 ldr r1, [r3] adds r1, 0x6C strb r0, [r1] - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldr r0, [r3] adds r0, 0x6C ldrb r0, [r0] @@ -5962,7 +5962,7 @@ sub_8143514: @ 8143514 mov r8, r0 movs r4, 0 movs r6, 0 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites mov r9, r1 ldr r0, =gUnknown_0203AB88 mov r10, r0 @@ -5982,7 +5982,7 @@ _08143534: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 adds r0, 0x3E ldrb r1, [r0] @@ -6024,7 +6024,7 @@ _0814356E: adds r3, r0, r4 adds r4, r3, 0 adds r4, 0x40 - ldr r1, =gUnknown_02020638 + ldr r1, =gSprites + 8 adds r0, r1 ldr r0, [r0] ldr r1, [r0] @@ -6176,7 +6176,7 @@ sub_81436D0: @ 81436D0 lsls r1, r2, 4 adds r1, r2 lsls r1, 2 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites adds r4, r1, r2 bl sub_8143614 adds r3, r4, 0 @@ -6243,7 +6243,7 @@ _08143760: .4byte _0814377C _0814377C: movs r4, 0 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites ldr r6, =gUnknown_0203AB88 movs r0, 0x5 negs r0, r0 @@ -6300,13 +6300,13 @@ _08143790: b _081438F4 .pool _081437FC: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, [r5] adds r0, 0x58 b _0814386A .pool _08143808: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, [r5] adds r0, 0x58 ldrb r1, [r0] @@ -6326,13 +6326,13 @@ _08143808: b _08143886 .pool _08143830: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, [r5] adds r0, 0x57 b _0814386A .pool _0814383C: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, [r5] adds r0, 0x57 ldrb r1, [r0] @@ -6352,7 +6352,7 @@ _0814383C: b _08143886 .pool _08143864: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, [r5] adds r0, 0x56 _0814386A: @@ -6386,7 +6386,7 @@ _08143886: _081438A8: movs r4, 0 lsls r7, r6, 2 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites movs r0, 0x8 adds r0, r6 mov r12, r0 @@ -6458,15 +6458,15 @@ sub_814391C: @ 814391C orrs r0, r1 str r0, [sp, 0x4] mov r0, sp - bl LoadObjectPic + bl LoadSpriteSheet ldr r0, =gUnknown_085B7950 movs r1, 0x74 movs r2, 0x50 movs r3, 0x51 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -6502,7 +6502,7 @@ sub_814399C: @ 814399C ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 - ldr r1, =gUnknown_02021BC0 + ldr r1, =gOamMatrices lsls r0, 3 adds r0, r1 ldr r1, =gUnknown_0203AB88 @@ -6524,7 +6524,7 @@ sub_81439C8: @ 81439C8 push {r4-r6,lr} movs r4, 0 ldr r5, =gUnknown_0203AB88 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites _081439D0: movs r3, 0x39 subs r3, r4 @@ -6533,7 +6533,7 @@ _081439D0: ldr r0, =gUnknown_085B7928 movs r1, 0x74 movs r2, 0x50 - bl AddObjectToFront + bl CreateSprite ldr r1, [r5] adds r1, 0x3C adds r1, r4 @@ -6591,7 +6591,7 @@ sub_8143A40: @ 8143A40 adds r0, 0x3C ldrb r5, [r0] movs r6, 0 - ldr r7, =gUnknown_02020630 + ldr r7, =gSprites movs r0, 0x1C adds r0, r7 mov r10, r0 @@ -6612,10 +6612,10 @@ _08143A64: strb r1, [r3] mov r1, r10 adds r2, r4, r1 - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy str r1, [r2] movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim movs r1, 0 adds r2, r5, 0x1 adds r3, r6, 0x1 @@ -6837,7 +6837,7 @@ _08143BEA: muls r0, r1 asrs r0, 12 strh r0, [r7, 0x26] - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _08143C74 @@ -6909,7 +6909,7 @@ _08143CAE: movs r2, 0x36 ldrsh r1, [r5, r2] muls r0, r1 - ldr r1, =gUnknown_02021BBE + ldr r1, =gSpriteCoordOffsetY asrs r0, 12 ldrh r1, [r1] adds r0, r1 @@ -7009,7 +7009,7 @@ _08143D8C: lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r5, 0 bl sub_8143B14 movs r0, 0x1E @@ -7285,7 +7285,7 @@ sub_8143FA4: @ 8143FA4 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r5, 0 bl sub_8143B14 movs r0, 0x1E @@ -7337,7 +7337,7 @@ sub_8144050: @ 8144050 asrs r0, 16 cmp r0, 0x2D bne _0814411E - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, =gUnknown_0203AB88 ldr r0, [r0] adds r0, 0x73 @@ -7360,7 +7360,7 @@ _08144098: ldrsh r1, [r3, r2] cmp r0, r1 bge _081440E4 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, =gUnknown_0203AB88 ldr r0, [r0] adds r0, 0x73 @@ -7540,7 +7540,7 @@ _081441CE: lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r5, 0 bl sub_8143B14 movs r0, 0x1E @@ -7622,7 +7622,7 @@ sub_8144264: @ 8144264 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r6, 0 bl sub_8143B14 movs r0, 0x1E @@ -8133,7 +8133,7 @@ sub_81446DC: @ 81446DC negs r2, r2 movs r1, 0x24 movs r3, 0x32 - bl AddObjectToFront + bl CreateSprite ldr r1, [r5] adds r1, 0x73 strb r0, [r1] @@ -8153,7 +8153,7 @@ sub_81446DC: @ 81446DC ldrsh r2, [r0, r3] adds r0, r4, 0 movs r3, 0x3B - bl AddObjectToFront + bl CreateSprite ldr r1, [r5] adds r1, 0x74 strb r0, [r1] @@ -8162,11 +8162,11 @@ sub_81446DC: @ 81446DC movs r1, 0x24 movs r2, 0x8C movs r3, 0x33 - bl AddObjectToFront + bl CreateSprite ldr r1, [r5] adds r1, 0x75 strb r0, [r1] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r0, [r5] adds r0, 0x75 ldrb r1, [r0] @@ -8304,7 +8304,7 @@ _0814477C: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites cmp r7, 0x2 bls _0814477C mov r3, r10 @@ -8367,7 +8367,7 @@ sub_81448B8: @ 81448B8 movs r3, 0 ldrsh r2, [r2, r3] movs r3, 0x32 - bl AddObjectToFront + bl CreateSprite ldr r5, =gUnknown_0203AB88 ldr r1, [r5] adds r1, 0x73 @@ -8378,12 +8378,12 @@ sub_81448B8: @ 81448B8 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites adds r0, r6 ldrh r1, [r7, 0x2E] lsls r1, 24 lsrs r1, 24 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r0, =gUnknown_085B7AEC movs r1, 0x2E ldrsh r2, [r7, r1] @@ -8396,7 +8396,7 @@ sub_81448B8: @ 81448B8 movs r3, 0 ldrsh r2, [r4, r3] movs r3, 0x33 - bl AddObjectToFront + bl CreateSprite ldr r1, [r5] adds r1, 0x74 strb r0, [r1] @@ -8622,7 +8622,7 @@ _08144AEC: lsls r0, 1 movs r1, 0x3F negs r1, r1 - bl cry_related + bl PlayCry1 b _08144B70 .align 2, 0 _08144B10: @@ -8664,14 +8664,14 @@ _08144B58: movs r0, 0x98 lsls r0, 1 movs r1, 0x3F - bl cry_related + bl PlayCry1 b _08144B70 _08144B64: movs r0, 0x99 lsls r0, 1 movs r1, 0x3F negs r1, r1 - bl cry_related + bl PlayCry1 _08144B70: movs r0, 0x2 mov r10, r0 @@ -8835,7 +8835,7 @@ sub_8144C70: @ 8144C70 strb r0, [r3, 0x3] _08144CAC: adds r0, r2, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r1, [r4] movs r0, 0 strb r0, [r1, 0x1] @@ -8872,7 +8872,7 @@ sub_8144CD0: @ 8144CD0 ands r2, r0 cmp r2, 0 beq _08144D2E - ldr r3, =gUnknown_02021BBE + ldr r3, =gSpriteCoordOffsetY movs r0, 0x3C ldrsh r2, [r4, r0] lsls r2, 1 @@ -8916,10 +8916,10 @@ _08144D2E: b _08144D7E .pool _08144D54: - ldr r1, =gUnknown_02021BBE + ldr r1, =gSpriteCoordOffsetY movs r0, 0 strh r0, [r1] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, =gUnknown_0203AB88 ldr r0, [r0] adds r0, 0x73 @@ -8935,7 +8935,7 @@ _08144D54: ands r1, r2 strb r1, [r0] adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _08144D7E: add sp, 0x18 pop {r4} @@ -8987,7 +8987,7 @@ _08144DDC: strh r0, [r5, 0x30] ldr r3, =sub_8144C70 str r3, [r5, 0x1C] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x3A ldrsh r1, [r5, r0] lsls r0, r1, 4 @@ -9142,7 +9142,7 @@ _08144F30: _08144F42: cmp r2, r0 bne _08144F7C - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x36 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -9165,7 +9165,7 @@ _08144F42: negs r1, r1 ands r1, r2 strb r1, [r0] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x3C] @@ -9208,7 +9208,7 @@ sub_8144FB0: @ 8144FB0 strh r0, [r4, 0x22] b _0814501C _08144FC8: - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r4, 0x1C] adds r2, r4, 0 adds r2, 0x3E @@ -9224,8 +9224,8 @@ _08144FC8: movs r0, 0x5E bl m4aSongNumStop adds r0, r4, 0 - bl RemoveObjectAndFreeTiles - ldr r5, =gUnknown_02020630 + bl DestroySprite + ldr r5, =gSprites ldr r4, =gUnknown_0203AB88 ldr r0, [r4] adds r0, 0x74 @@ -9237,7 +9237,7 @@ _08144FC8: ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix ldr r0, [r4] adds r0, 0x74 ldrb r1, [r0] @@ -9245,7 +9245,7 @@ _08144FC8: adds r0, r1 lsls r0, 2 adds r0, r5 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0814501C: pop {r4,r5} pop {r0} @@ -9317,10 +9317,10 @@ _08145090: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r0, =sub_8144FB0 str r0, [r4, 0x1C] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x3A ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -9373,7 +9373,7 @@ sub_81450D8: @ 81450D8 ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _08145208 @@ -9451,7 +9451,7 @@ _081451BC: movs r0, 0x98 lsls r0, 1 movs r1, 0x3F - bl cry_related + bl PlayCry1 b _081451EC .pool _081451E0: @@ -9459,7 +9459,7 @@ _081451E0: lsls r0, 1 movs r1, 0x3F negs r1, r1 - bl cry_related + bl PlayCry1 _081451EC: ldr r0, =gUnknown_0203AB88 ldr r0, [r0] @@ -9469,7 +9469,7 @@ _081451EC: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0x2D strh r0, [r4, 0x30] ldr r0, =sub_8145030 @@ -9510,7 +9510,7 @@ sub_8145218: @ 8145218 ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites movs r2, 0x3A ldrsh r0, [r4, r2] lsls r2, r0, 4 @@ -9564,7 +9564,7 @@ sub_8145294: @ 8145294 adds r0, 0x5A cmp r2, r0 bne _0814533E - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x3A ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -9588,7 +9588,7 @@ _081452DC: adds r0, r1 cmp r2, r0 bne _0814533E - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0x3A ldrsh r1, [r4, r0] lsls r0, r1, 4 diff --git a/asm/rtc.s b/asm/rtc.s deleted file mode 100644 index 22b0f1ddc9..0000000000 --- a/asm/rtc.s +++ /dev/null @@ -1,819 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start GameFreakRTC_ClearIME -@ void GameFreakRTC_ClearIME() -GameFreakRTC_ClearIME: @ 802F0CC - ldr r2, =gUnknown_03000DCE - ldr r1, =0x04000208 - ldrh r0, [r1] - strh r0, [r2] - movs r0, 0 - strh r0, [r1] - bx lr - .pool - thumb_func_end GameFreakRTC_ClearIME - - thumb_func_start GameFreakRTC_RestoreIME -@ void GameFreakRTC_RestoreIME() -GameFreakRTC_RestoreIME: @ 802F0E4 - ldr r0, =0x04000208 - ldr r1, =gUnknown_03000DCE - ldrh r1, [r1] - strh r1, [r0] - bx lr - .pool - thumb_func_end GameFreakRTC_RestoreIME - - thumb_func_start GameFreakRTC_ConvertFromBCD -@ u8 GameFreakRTC_ConvertFromBCD(u8 bcdByte) -GameFreakRTC_ConvertFromBCD: @ 802F0F8 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x9F - bhi _0802F10A - movs r3, 0xF - ands r3, r2 - cmp r3, 0x9 - bls _0802F10E -_0802F10A: - movs r0, 0xFF - b _0802F11C -_0802F10E: - lsrs r1, r0, 28 - movs r0, 0xF - ands r1, r0 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - adds r0, r3 -_0802F11C: - pop {r1} - bx r1 - thumb_func_end GameFreakRTC_ConvertFromBCD - - thumb_func_start GameFreakRTC_IsLeapYear -@ bool8 GameFreakRTC_IsLeapYear(u32 year) -GameFreakRTC_IsLeapYear: @ 802F120 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x3 - ands r0, r4 - cmp r0, 0 - bne _0802F138 - adds r0, r4, 0 - movs r1, 0x64 - bl __umodsi3 - cmp r0, 0 - bne _0802F146 -_0802F138: - movs r1, 0xC8 - lsls r1, 1 - adds r0, r4, 0 - bl __umodsi3 - cmp r0, 0 - bne _0802F14A -_0802F146: - movs r0, 0x1 - b _0802F14C -_0802F14A: - movs r0, 0 -_0802F14C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GameFreakRTC_IsLeapYear - - thumb_func_start GameFreakRTC_ConvertYearMonthDayToNumDays -@ u16 GameFreakRTC_ConvertYearMonthDayToNumDays(u8 year, u8 month, u8 dayOfMonth) -GameFreakRTC_ConvertYearMonthDayToNumDays: @ 802F154 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - movs r5, 0 - subs r4, r7, 0x1 - cmp r4, 0 - blt _0802F192 -_0802F170: - ldr r1, =0x0000016d - adds r0, r5, r1 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - bl GameFreakRTC_IsLeapYear - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0802F18C - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_0802F18C: - subs r4, 0x1 - cmp r4, 0 - bge _0802F170 -_0802F192: - subs r0, r6, 0x1 - cmp r0, 0 - ble _0802F1AA - ldr r1, =gDaysInEachMonth - adds r4, r0, 0 -_0802F19C: - ldm r1!, {r0} - adds r0, r5, r0 - lsls r0, 16 - lsrs r5, r0, 16 - subs r4, 0x1 - cmp r4, 0 - bne _0802F19C -_0802F1AA: - cmp r6, 0x2 - bls _0802F1C2 - adds r0, r7, 0 - bl GameFreakRTC_IsLeapYear - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0802F1C2 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_0802F1C2: - mov r1, r8 - adds r0, r5, r1 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r5, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end GameFreakRTC_ConvertYearMonthDayToNumDays - - thumb_func_start GameFreakRTC_GetNumDaysInternal -@ u16 GameFreakRTC_GetNumDaysInternal(struct RTCInfo *rtc) -GameFreakRTC_GetNumDaysInternal: @ 802F1E0 - push {r4-r6,lr} - adds r6, r0, 0 - ldrb r0, [r6] - bl GameFreakRTC_ConvertFromBCD - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldrb r0, [r6, 0x1] - bl GameFreakRTC_ConvertFromBCD - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r6, 0x2] - bl GameFreakRTC_ConvertFromBCD - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl GameFreakRTC_ConvertYearMonthDayToNumDays - lsls r0, 16 - lsrs r0, 16 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end GameFreakRTC_GetNumDaysInternal - - thumb_func_start RtcInit -@ void GameFreakRTC_Init() -RtcInit: @ 802F21C - push {r4,r5,lr} - ldr r5, =gUnknown_03000DB8 - movs r0, 0 - strh r0, [r5] - bl GameFreakRTC_ClearIME - bl SiiRtcUnprotect - bl SiiRtcProbe - ldr r4, =gUnknown_03000DCC - strb r0, [r4] - bl GameFreakRTC_RestoreIME - ldrb r4, [r4] - movs r0, 0xF - ands r0, r4 - cmp r0, 0x1 - beq _0802F250 - movs r0, 0x1 - strh r0, [r5] - b _0802F26E - .pool -_0802F250: - movs r0, 0xF0 - ands r0, r4 - cmp r0, 0 - beq _0802F25A - movs r0, 0x2 -_0802F25A: - strh r0, [r5] - ldr r4, =gUnknown_03000DC0 - adds r0, r4, 0 - bl GameFreakRTC_GetControlRegAndRTCDateTime - adds r0, r4, 0 - bl GameFreakRTC_TestForErrors - ldr r1, =gUnknown_03000DB8 - strh r0, [r1] -_0802F26E: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end RtcInit - - thumb_func_start GameFreakRTC_GetErrorFlags -@ u16 GameFreakRTC_GetErrorFlags() -GameFreakRTC_GetErrorFlags: @ 802F27C - ldr r0, =gUnknown_03000DB8 - ldrh r0, [r0] - bx lr - .pool - thumb_func_end GameFreakRTC_GetErrorFlags - - thumb_func_start GameFreakRTC_GetRTCDateTime -@ void GameFreakRTC_GetRTCDateTime(struct RTCInfo *rtc) -GameFreakRTC_GetRTCDateTime: @ 802F288 - push {r4,lr} - adds r2, r0, 0 - ldr r0, =gUnknown_03000DB8 - ldrh r1, [r0] - movs r0, 0xFF - lsls r0, 4 - ands r0, r1 - cmp r0, 0 - beq _0802F2AC - adds r1, r2, 0 - ldr r0, =gDefaultRTCInfo - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - b _0802F2B2 - .pool -_0802F2AC: - adds r0, r2, 0 - bl GameFreakRTC_GetControlRegAndRTCDateTime -_0802F2B2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end GameFreakRTC_GetRTCDateTime - - thumb_func_start GameFreakRTC_GetRTCDateTimeInternal -@ void GameFreakRTC_GetRTCDateTimeInternal(struct RTCInfo *rtc) -GameFreakRTC_GetRTCDateTimeInternal: @ 802F2B8 - push {r4,lr} - adds r4, r0, 0 - bl GameFreakRTC_ClearIME - adds r0, r4, 0 - bl SiiRtcGetDateTime - bl GameFreakRTC_RestoreIME - pop {r4} - pop {r0} - bx r0 - thumb_func_end GameFreakRTC_GetRTCDateTimeInternal - - thumb_func_start GameFreakRTC_GetControlReg -@ void GameFreakRTC_GetControlReg(struct RTCInfo *rtc) -GameFreakRTC_GetControlReg: @ 802F2D0 - push {r4,lr} - adds r4, r0, 0 - bl GameFreakRTC_ClearIME - adds r0, r4, 0 - bl SiiRtcGetStatus - bl GameFreakRTC_RestoreIME - pop {r4} - pop {r0} - bx r0 - thumb_func_end GameFreakRTC_GetControlReg - - thumb_func_start GameFreakRTC_GetControlRegAndRTCDateTime -@ void GameFreakRTC_GetControlRegAndRTCDateTime(struct RTCInfo *rtc) -GameFreakRTC_GetControlRegAndRTCDateTime: @ 802F2E8 - push {r4,lr} - adds r4, r0, 0 - bl GameFreakRTC_GetControlReg - adds r0, r4, 0 - bl GameFreakRTC_GetRTCDateTimeInternal - pop {r4} - pop {r0} - bx r0 - thumb_func_end GameFreakRTC_GetControlRegAndRTCDateTime - - thumb_func_start GameFreakRTC_TestForErrors -@ u16 GameFreakRTC_TestForErrors(struct RTCInfo *rtc) -GameFreakRTC_TestForErrors: @ 802F2FC - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - ldrb r1, [r7, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - negs r0, r0 - asrs r4, r0, 31 - movs r0, 0x20 - ands r4, r0 - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0802F322 - movs r0, 0x10 - orrs r4, r0 -_0802F322: - ldrb r0, [r7] - bl GameFreakRTC_ConvertFromBCD - mov r8, r0 - cmp r0, 0xFF - bne _0802F336 - movs r0, 0x40 - orrs r4, r0 - lsls r0, r4, 16 - lsrs r4, r0, 16 -_0802F336: - ldrb r0, [r7, 0x1] - bl GameFreakRTC_ConvertFromBCD - adds r6, r0, 0 - cmp r6, 0xFF - beq _0802F34A - cmp r6, 0 - beq _0802F34A - cmp r6, 0xC - ble _0802F352 -_0802F34A: - movs r0, 0x80 - orrs r4, r0 - lsls r0, r4, 16 - lsrs r4, r0, 16 -_0802F352: - ldrb r0, [r7, 0x2] - bl GameFreakRTC_ConvertFromBCD - adds r5, r0, 0 - cmp r5, 0xFF - bne _0802F36A - movs r1, 0x80 - lsls r1, 1 - adds r0, r1, 0 - orrs r4, r0 - lsls r0, r4, 16 - lsrs r4, r0, 16 -_0802F36A: - cmp r6, 0x2 - bne _0802F384 - mov r0, r8 - bl GameFreakRTC_IsLeapYear - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gDaysInEachMonth - ldr r1, [r1, 0x4] - adds r0, r1 - b _0802F38E - .pool -_0802F384: - ldr r0, =gDaysInEachMonth - subs r1, r6, 0x1 - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] -_0802F38E: - cmp r5, r0 - ble _0802F39E - movs r1, 0x80 - lsls r1, 1 - adds r0, r1, 0 - orrs r4, r0 - lsls r0, r4, 16 - lsrs r4, r0, 16 -_0802F39E: - ldrb r0, [r7, 0x4] - bl GameFreakRTC_ConvertFromBCD - adds r5, r0, 0 - cmp r5, 0x18 - ble _0802F3B6 - movs r1, 0x80 - lsls r1, 2 - adds r0, r1, 0 - orrs r4, r0 - lsls r0, r4, 16 - lsrs r4, r0, 16 -_0802F3B6: - ldrb r0, [r7, 0x5] - bl GameFreakRTC_ConvertFromBCD - adds r5, r0, 0 - cmp r5, 0x3C - ble _0802F3CE - movs r1, 0x80 - lsls r1, 3 - adds r0, r1, 0 - orrs r4, r0 - lsls r0, r4, 16 - lsrs r4, r0, 16 -_0802F3CE: - ldrb r0, [r7, 0x6] - bl GameFreakRTC_ConvertFromBCD - adds r5, r0, 0 - cmp r5, 0x3C - ble _0802F3E6 - movs r1, 0x80 - lsls r1, 4 - adds r0, r1, 0 - orrs r4, r0 - lsls r0, r4, 16 - lsrs r4, r0, 16 -_0802F3E6: - adds r0, r4, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end GameFreakRTC_TestForErrors - - thumb_func_start GameFreakRTC_Reset -@ void GameFreakRTC_Reset() -GameFreakRTC_Reset: @ 802F3F8 - push {lr} - bl GameFreakRTC_ClearIME - bl SiiRtcReset - bl GameFreakRTC_RestoreIME - pop {r0} - bx r0 - thumb_func_end GameFreakRTC_Reset - - thumb_func_start GameFreakRTC_FormatDecimalTimeString -@ void GameFreakRTC_FormatDecimalTimeString(u8 *dest, s32 hour, s32 minute, s32 second) -GameFreakRTC_FormatDecimalTimeString: @ 802F40C - push {r4-r6,lr} - adds r5, r2, 0 - adds r6, r3, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - movs r4, 0xF0 - strb r4, [r0] - adds r0, 0x1 - adds r1, r5, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - strb r4, [r0] - adds r0, 0x1 - adds r1, r6, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - movs r1, 0xFF - strb r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end GameFreakRTC_FormatDecimalTimeString - - thumb_func_start GameFreakRTC_FormatHexTimeString -@ void GameFreakRTC_FormatHexTimeString(u8 *dest, s32 hour, s32 minute, s32 second) -GameFreakRTC_FormatHexTimeString: @ 802F444 - push {r4-r6,lr} - adds r5, r2, 0 - adds r6, r3, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToHexStringN - movs r4, 0xF0 - strb r4, [r0] - adds r0, 0x1 - adds r1, r5, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToHexStringN - strb r4, [r0] - adds r0, 0x1 - adds r1, r6, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToHexStringN - movs r1, 0xFF - strb r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end GameFreakRTC_FormatHexTimeString - - thumb_func_start GameFreakRTC_FormatHexTimeStringFromRTCInfo -@ void GameFreakRTC_FormatHexTimeStringFromRTCInfo() -GameFreakRTC_FormatHexTimeStringFromRTCInfo: @ 802F47C - push {lr} - ldr r3, =gUnknown_03000DC0 - ldrb r1, [r3, 0x4] - ldrb r2, [r3, 0x5] - ldrb r3, [r3, 0x6] - bl GameFreakRTC_FormatHexTimeString - pop {r0} - bx r0 - .pool - thumb_func_end GameFreakRTC_FormatHexTimeStringFromRTCInfo - - thumb_func_start GameFreakRTC_FormatDecimalYearMonthDayString -@ void GameFreakRTC_FormatDecimalYearMonthDayString(u8 *dest, s32 year, s32 month, s32 dayOfMonth) -GameFreakRTC_FormatDecimalYearMonthDayString: @ 802F494 - push {r4-r6,lr} - adds r5, r2, 0 - adds r6, r3, 0 - movs r2, 0x2 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - movs r4, 0xAE - strb r4, [r0] - adds r0, 0x1 - adds r1, r5, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - strb r4, [r0] - adds r0, 0x1 - adds r1, r6, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - movs r1, 0xFF - strb r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end GameFreakRTC_FormatDecimalYearMonthDayString - - thumb_func_start GameFreakRTC_FormatHexYearMonthDayString -@ void GameFreakRTC_FormatHexYearMonthDayString(u8 *dest, s32 year, s32 month, s32 dayOfMonth) -GameFreakRTC_FormatHexYearMonthDayString: @ 802F4CC - push {r4-r6,lr} - adds r5, r2, 0 - adds r6, r3, 0 - movs r2, 0x2 - movs r3, 0x4 - bl ConvertIntToHexStringN - movs r4, 0xAE - strb r4, [r0] - adds r0, 0x1 - adds r1, r5, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToHexStringN - strb r4, [r0] - adds r0, 0x1 - adds r1, r6, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToHexStringN - movs r1, 0xFF - strb r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end GameFreakRTC_FormatHexYearMonthDayString - - thumb_func_start GameFreakRTC_GetRTCDelta -@ void GameFreakRTC_GetRTCDelta(RTCInfo *rtc, GameDateTime *delta, GameDateTime *dateTime) -GameFreakRTC_GetRTCDelta: @ 802F504 - push {r4-r7,lr} - adds r5, r0, 0 - adds r7, r1, 0 - adds r6, r2, 0 - bl GameFreakRTC_GetNumDaysInternal - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r5, 0x6] - bl GameFreakRTC_ConvertFromBCD - ldrb r1, [r6, 0x4] - subs r0, r1 - strb r0, [r7, 0x4] - ldrb r0, [r5, 0x5] - bl GameFreakRTC_ConvertFromBCD - ldrb r1, [r6, 0x3] - subs r0, r1 - strb r0, [r7, 0x3] - ldrb r0, [r5, 0x4] - bl GameFreakRTC_ConvertFromBCD - ldrb r1, [r6, 0x2] - subs r0, r1 - strb r0, [r7, 0x2] - ldrh r0, [r6] - subs r4, r0 - strh r4, [r7] - ldrb r1, [r7, 0x4] - movs r0, 0x4 - ldrsb r0, [r7, r0] - cmp r0, 0 - bge _0802F556 - adds r0, r1, 0 - adds r0, 0x3C - strb r0, [r7, 0x4] - ldrb r0, [r7, 0x3] - subs r0, 0x1 - strb r0, [r7, 0x3] -_0802F556: - ldrb r1, [r7, 0x3] - movs r0, 0x3 - ldrsb r0, [r7, r0] - cmp r0, 0 - bge _0802F56C - adds r0, r1, 0 - adds r0, 0x3C - strb r0, [r7, 0x3] - ldrb r0, [r7, 0x2] - subs r0, 0x1 - strb r0, [r7, 0x2] -_0802F56C: - ldrb r1, [r7, 0x2] - movs r0, 0x2 - ldrsb r0, [r7, r0] - cmp r0, 0 - bge _0802F582 - adds r0, r1, 0 - adds r0, 0x18 - strb r0, [r7, 0x2] - ldrh r0, [r7] - subs r0, 0x1 - strh r0, [r7] -_0802F582: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end GameFreakRTC_GetRTCDelta - - thumb_func_start GameFreakRTC_CalcLocalDateTime -@ void GameFreakRTC_CalcLocalDateTime() -GameFreakRTC_CalcLocalDateTime: @ 802F588 - push {r4,lr} - ldr r4, =gUnknown_03000DC0 - adds r0, r4, 0 - bl GameFreakRTC_GetRTCDateTime - ldr r1, =gUnknown_03005CF8 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - adds r2, 0x98 - adds r0, r4, 0 - bl GameFreakRTC_GetRTCDelta - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end GameFreakRTC_CalcLocalDateTime - - thumb_func_start GameFreakRTC_CalcRTCToLocalDelta_DayZero -@ void GameFreakRTC_CalcRTCToLocalDelta_DayZero(u8 hour, u8 minute) -GameFreakRTC_CalcRTCToLocalDelta_DayZero: @ 802F5B4 - push {lr} - adds r3, r0, 0 - adds r2, r1, 0 - movs r0, 0 - adds r1, r3, 0 - movs r3, 0 - bl GameFreakRTC_CalcRTCToLocalDelta - pop {r0} - bx r0 - thumb_func_end GameFreakRTC_CalcRTCToLocalDelta_DayZero - - thumb_func_start GameFreakRTC_CalcRTCToLocalDelta -@ void GameFreakRTC_CalcRTCToLocalDelta(u16 numDays, u8 hour, u8 minute, u8 second) -GameFreakRTC_CalcRTCToLocalDelta: @ 802F5C8 - push {r4,r5,lr} - ldr r4, =gUnknown_03005CF8 - strh r0, [r4] - strb r1, [r4, 0x2] - strb r2, [r4, 0x3] - strb r3, [r4, 0x4] - ldr r5, =gUnknown_03000DC0 - adds r0, r5, 0 - bl GameFreakRTC_GetRTCDateTime - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - adds r1, 0x98 - adds r0, r5, 0 - adds r2, r4, 0 - bl GameFreakRTC_GetRTCDelta - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end GameFreakRTC_CalcRTCToLocalDelta - - thumb_func_start GameFreakRTC_GetDelta -@ void GameFreakRTC_GetDelta(GameDateTime *delta, GameDateTime *dateTime1, GameDateTime *dateTime2) -GameFreakRTC_GetDelta: @ 802F5FC - push {r4-r6,lr} - adds r4, r0, 0 - ldrb r3, [r2, 0x4] - ldrb r0, [r1, 0x4] - subs r5, r3, r0 - strb r5, [r4, 0x4] - ldrb r3, [r2, 0x3] - ldrb r0, [r1, 0x3] - subs r6, r3, r0 - strb r6, [r4, 0x3] - ldrb r0, [r2, 0x2] - ldrb r3, [r1, 0x2] - subs r0, r3 - strb r0, [r4, 0x2] - ldrh r0, [r2] - ldrh r1, [r1] - subs r0, r1 - strh r0, [r4] - lsls r0, r5, 24 - cmp r0, 0 - bge _0802F630 - adds r0, r5, 0 - adds r0, 0x3C - strb r0, [r4, 0x4] - subs r0, r6, 0x1 - strb r0, [r4, 0x3] -_0802F630: - ldrb r1, [r4, 0x3] - movs r0, 0x3 - ldrsb r0, [r4, r0] - cmp r0, 0 - bge _0802F646 - adds r0, r1, 0 - adds r0, 0x3C - strb r0, [r4, 0x3] - ldrb r0, [r4, 0x2] - subs r0, 0x1 - strb r0, [r4, 0x2] -_0802F646: - ldrb r1, [r4, 0x2] - movs r0, 0x2 - ldrsb r0, [r4, r0] - cmp r0, 0 - bge _0802F65C - adds r0, r1, 0 - adds r0, 0x18 - strb r0, [r4, 0x2] - ldrh r0, [r4] - subs r0, 0x1 - strh r0, [r4] -_0802F65C: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end GameFreakRTC_GetDelta - - thumb_func_start GameFreakRTC_GetNumMinutes -@ u16 GameFreakRTC_GetNumMinutes() -GameFreakRTC_GetNumMinutes: @ 802F664 - push {r4,lr} - ldr r4, =gUnknown_03000DC0 - adds r0, r4, 0 - bl GameFreakRTC_GetRTCDateTime - adds r0, r4, 0 - bl GameFreakRTC_GetNumDaysInternal - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 1 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldrb r2, [r4, 0x4] - lsls r1, r2, 4 - subs r1, r2 - lsls r1, 2 - adds r0, r1 - ldrb r4, [r4, 0x5] - adds r0, r4 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end GameFreakRTC_GetNumMinutes - - thumb_func_start GameFreakRTC_GetNumDays -@ u16 GameFreakRTC_GetNumDays() -GameFreakRTC_GetNumDays: @ 802F69C - push {lr} - ldr r0, =gUnknown_03000DC0 - bl GameFreakRTC_GetNumDaysInternal - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .pool - thumb_func_end GameFreakRTC_GetNumDays - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/safari_zone.s b/asm/safari_zone.s index 5ea9bf61fc..9d6e73021a 100644 --- a/asm/safari_zone.s +++ b/asm/safari_zone.s @@ -41,7 +41,7 @@ ResetSafariZoneFlag: @ 80FC0C4 sub_80FC0D4: @ 80FC0D4 push {lr} movs r0, 0x11 - bl sav12_xor_increment + bl IncrementGameStat bl SetSafariZoneFlag bl sub_80FC244 ldr r1, =gUnknown_0203A04C @@ -130,7 +130,7 @@ sub_80FC190: @ 80FC190 ldrb r2, [r1] adds r0, r2 strb r0, [r1] - ldr r2, =gUnknown_0202433A + ldr r2, =gBattleOutcome ldrb r0, [r2] cmp r0, 0x7 bne _080FC1AE @@ -152,7 +152,7 @@ _080FC1D8: cmp r0, 0x8 bne _080FC208 ldr r0, =gUnknown_082A4B4C - bl script_env_2_execute_new_script + bl ScriptContext2_RunNewScript bl warp_in ldr r1, =gUnknown_03005DAC ldr r0, =sub_80AF6F0 @@ -237,7 +237,7 @@ _080FC26A: ldrsh r0, [r4, r2] cmp r1, r0 bne _080FC2C4 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r5, [r0] ldr r1, =gUnknown_085B262C ldrb r0, [r3, 0x8] @@ -254,7 +254,7 @@ _080FC2C4: lsrs r5, r0, 16 cmp r5, 0x9 bls _080FC26A - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult ldr r2, =0x0000ffff adds r0, r2, 0 strh r0, [r1] @@ -322,7 +322,7 @@ _080FC342: adds r0, r1 cmp r0, 0x5 bgt _080FC364 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r5, [r0] b _080FC376 .pool @@ -332,7 +332,7 @@ _080FC364: lsrs r5, r0, 16 cmp r5, 0x9 bls _080FC306 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult ldr r2, =0x0000ffff adds r0, r2, 0 strh r0, [r1] @@ -348,7 +348,7 @@ _080FC376: sub_80FC388: @ 80FC388 push {lr} bl sub_80FC258 - ldr r2, =gUnknown_020375F0 + ldr r2, =gScriptResult ldrh r1, [r2] ldr r0, =0x0000ffff cmp r1, r0 @@ -370,7 +370,7 @@ _080FC3B2: sub_80FC3B8: @ 80FC3B8 push {lr} bl sub_80FC2E8 - ldr r2, =gUnknown_020375F0 + ldr r2, =gScriptResult ldrh r1, [r2] ldr r0, =0x0000ffff cmp r1, r0 @@ -498,7 +498,7 @@ _080FC4A0: sub_80FC4B4: @ 80FC4B4 push {lr} bl sub_80FC258 - ldr r3, =gUnknown_020375F0 + ldr r3, =gScriptResult ldrh r1, [r3] ldr r0, =0x0000ffff cmp r1, r0 diff --git a/asm/save.s b/asm/save.s index 0045145946..825da0756d 100644 --- a/asm/save.s +++ b/asm/save.s @@ -5,1890 +5,6 @@ .text - thumb_func_start calls_flash_erase_block -calls_flash_erase_block: @ 8152650 - push {r4,r5,lr} - movs r4, 0 - ldr r5, =EraseFlashSector -_08152656: - ldr r1, [r5] - adds r0, r4, 0 - bl _call_via_r1 - adds r0, r4, 0 - adds r0, 0x10 - lsls r0, 16 - lsrs r0, 16 - ldr r1, [r5] - bl _call_via_r1 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xF - bls _08152656 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end calls_flash_erase_block - - thumb_func_start sub_8152680 -sub_8152680: @ 8152680 - ldr r0, =gUnknown_03006200 - movs r1, 0 - str r1, [r0] - ldr r0, =gUnknown_030061F0 - strh r1, [r0] - ldr r0, =gUnknown_030061FC - str r1, [r0] - bx lr - .pool - thumb_func_end sub_8152680 - - thumb_func_start sub_815269C -sub_815269C: @ 815269C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - movs r4, 0 - cmp r0, 0x1 - beq _081526D0 - cmp r0, 0x1 - bgt _081526B6 - cmp r0, 0 - beq _081526BC - b _081526F4 -_081526B6: - cmp r0, 0x2 - beq _081526E4 - b _081526F4 -_081526BC: - ldr r2, =gUnknown_030061FC - movs r1, 0x1 - lsls r1, r3 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - b _081526F4 - .pool -_081526D0: - ldr r2, =gUnknown_030061FC - adds r1, r0, 0 - lsls r1, r3 - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - b _081526F4 - .pool -_081526E4: - ldr r0, =gUnknown_030061FC - movs r1, 0x1 - lsls r1, r3 - ldr r0, [r0] - ands r0, r1 - cmp r0, 0 - beq _081526F4 - movs r4, 0x1 -_081526F4: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_815269C - - thumb_func_start save_write_to_flash -save_write_to_flash: @ 8152700 - push {r4-r7,lr} - adds r7, r1, 0 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r1, =gUnknown_03006204 - ldr r0, =gUnknown_0203ABBC - str r0, [r1] - ldr r0, =0x0000ffff - cmp r2, r0 - beq _08152730 - adds r0, r2, 0 - adds r1, r7, 0 - bl sub_81527A0 - lsls r0, 24 - lsrs r5, r0, 24 - b _08152782 - .pool -_08152730: - ldr r1, =gUnknown_030061F8 - ldr r5, =gUnknown_030061F0 - ldrh r0, [r5] - strh r0, [r1] - ldr r1, =gUnknown_030061F4 - ldr r6, =gUnknown_03006200 - ldr r4, [r6] - str r4, [r1] - adds r0, 0x1 - strh r0, [r5] - ldrh r0, [r5] - movs r1, 0xE - bl __umodsi3 - strh r0, [r5] - adds r4, 0x1 - str r4, [r6] - movs r5, 0x1 - movs r4, 0 -_08152756: - adds r0, r4, 0 - adds r1, r7, 0 - bl sub_81527A0 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xD - bls _08152756 - ldr r0, =gUnknown_030061FC - ldr r0, [r0] - cmp r0, 0 - beq _08152782 - movs r5, 0xFF - ldr r1, =gUnknown_030061F0 - ldr r0, =gUnknown_030061F8 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_03006200 - ldr r0, =gUnknown_030061F4 - ldr r0, [r0] - str r0, [r1] -_08152782: - adds r0, r5, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end save_write_to_flash - - thumb_func_start sub_81527A0 -sub_81527A0: @ 81527A0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r4, r1, 0 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, =gUnknown_030061F0 - ldrh r0, [r0] - adds r0, r6, r0 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r5, 0 - movs r1, 0xE - bl __umodsi3 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r2, =gUnknown_03006200 - ldr r1, [r2] - movs r0, 0x1 - ands r1, r0 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - adds r0, r5, r0 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r0, r6, 3 - adds r0, r4 - ldr r1, [r0] - mov r10, r1 - ldrh r4, [r0, 0x4] - movs r3, 0 - mov r9, r2 - ldr r2, =gUnknown_03006204 - mov r12, r2 - mov r8, r12 - movs r2, 0 - ldr r1, =0x00000fff -_081527F2: - mov r7, r8 - ldr r0, [r7] - adds r0, r3 - strb r2, [r0] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r1 - bls _081527F2 - mov r0, r12 - ldr r1, [r0] - ldr r2, =0x00000ff4 - adds r0, r1, r2 - strh r6, [r0] - ldr r3, =0x00000ff8 - adds r2, r1, r3 - ldr r0, =0x08012025 - str r0, [r2] - ldr r6, =0x00000ffc - adds r1, r6 - mov r7, r9 - ldr r0, [r7] - str r0, [r1] - movs r3, 0 - lsls r5, 24 - cmp r3, r4 - bcs _08152840 - mov r2, r12 -_0815282A: - ldr r1, [r2] - adds r1, r3 - mov r6, r10 - adds r0, r6, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r4 - bcc _0815282A -_08152840: - mov r0, r10 - adds r1, r4, 0 - bl sub_8153164 - ldr r1, =gUnknown_03006204 - ldr r1, [r1] - ldr r7, =0x00000ff6 - adds r2, r1, r7 - strh r0, [r2] - lsrs r0, r5, 24 - bl sub_8152908 - lsls r0, 24 - lsrs r0, 24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81527A0 - - thumb_func_start sub_8152890 -sub_8152890: @ 8152890 - push {r4-r7,lr} - adds r5, r1, 0 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r2, 16 - lsrs r2, 16 - ldr r4, =gUnknown_0203ABBC - movs r3, 0 - movs r6, 0 - ldr r1, =0x00000fff -_081528A4: - adds r0, r4, r3 - strb r6, [r0] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r1 - bls _081528A4 - ldr r0, =0x00000ff8 - adds r1, r4, r0 - ldr r0, =0x08012025 - str r0, [r1] - movs r3, 0 - cmp r3, r2 - bcs _081528D2 -_081528C0: - adds r1, r4, r3 - adds r0, r5, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r2 - bcc _081528C0 -_081528D2: - adds r0, r5, 0 - adds r1, r2, 0 - bl sub_8153164 - ldr r2, =0x00000ff4 - adds r1, r4, r2 - strh r0, [r1] - adds r0, r7, 0 - adds r1, r4, 0 - bl sub_8152908 - lsls r0, 24 - lsrs r0, 24 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8152890 - - thumb_func_start sub_8152908 -sub_8152908: @ 8152908 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl ProgramFlashSectorAndVerify - cmp r0, 0 - bne _08152924 - movs r0, 0x1 - adds r1, r4, 0 - bl sub_815269C - movs r0, 0x1 - b _0815292E -_08152924: - movs r0, 0 - adds r1, r4, 0 - bl sub_815269C - movs r0, 0xFF -_0815292E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8152908 - - thumb_func_start sub_8152934 -sub_8152934: @ 8152934 - push {r4-r6,lr} - ldr r1, =gUnknown_03006204 - ldr r0, =gUnknown_0203ABBC - str r0, [r1] - ldr r1, =gUnknown_030061F8 - ldr r5, =gUnknown_030061F0 - ldrh r0, [r5] - strh r0, [r1] - ldr r1, =gUnknown_030061F4 - ldr r6, =gUnknown_03006200 - ldr r4, [r6] - str r4, [r1] - adds r0, 0x1 - strh r0, [r5] - ldrh r0, [r5] - movs r1, 0xE - bl __umodsi3 - strh r0, [r5] - adds r4, 0x1 - str r4, [r6] - ldr r1, =gUnknown_03006208 - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_030061FC - movs r0, 0 - str r0, [r1] - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8152934 - - thumb_func_start sub_8152990 -sub_8152990: @ 8152990 - ldr r1, =gUnknown_03006204 - ldr r0, =gUnknown_0203ABBC - str r0, [r1] - ldr r1, =gUnknown_030061F8 - ldr r0, =gUnknown_030061F0 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_030061F4 - ldr r0, =gUnknown_03006200 - ldr r0, [r0] - str r0, [r1] - ldr r1, =gUnknown_03006208 - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_030061FC - movs r0, 0 - str r0, [r1] - bx lr - .pool - thumb_func_end sub_8152990 - - thumb_func_start sub_81529D4 -sub_81529D4: @ 81529D4 - push {r4,r5,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, =gUnknown_03006208 - ldrh r2, [r4] - subs r0, 0x1 - cmp r2, r0 - bge _08152A28 - movs r5, 0x1 - adds r0, r2, 0 - bl sub_81527A0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - ldr r0, =gUnknown_030061FC - ldr r0, [r0] - cmp r0, 0 - beq _08152A2A - movs r5, 0xFF - ldr r1, =gUnknown_030061F0 - ldr r0, =gUnknown_030061F8 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_03006200 - ldr r0, =gUnknown_030061F4 - ldr r0, [r0] - str r0, [r1] - b _08152A2A - .pool -_08152A28: - movs r5, 0xFF -_08152A2A: - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81529D4 - - thumb_func_start sub_8152A34 -sub_8152A34: @ 8152A34 - push {r4,lr} - lsls r0, 16 - movs r4, 0x1 - ldr r2, =0xffff0000 - adds r0, r2 - lsrs r0, 16 - bl calls_flash_erase_block_2 - ldr r0, =gUnknown_030061FC - ldr r0, [r0] - cmp r0, 0 - beq _08152A5E - movs r4, 0xFF - ldr r1, =gUnknown_030061F0 - ldr r0, =gUnknown_030061F8 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, =gUnknown_03006200 - ldr r0, =gUnknown_030061F4 - ldr r0, [r0] - str r0, [r1] -_08152A5E: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8152A34 - - thumb_func_start calls_flash_erase_block_2 -calls_flash_erase_block_2: @ 8152A80 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r4, r1, 0 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, =gUnknown_030061F0 - ldrh r0, [r0] - adds r0, r6, r0 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r5, 0 - movs r1, 0xE - bl __umodsi3 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r2, =gUnknown_03006200 - ldr r1, [r2] - movs r0, 0x1 - ands r1, r0 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - adds r0, r5, r0 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r0, r6, 3 - adds r0, r4 - ldr r1, [r0] - mov r10, r1 - ldrh r3, [r0, 0x4] - movs r4, 0 - mov r9, r2 - ldr r2, =gUnknown_03006204 - mov r12, r2 - mov r8, r12 - movs r2, 0 - ldr r1, =0x00000fff -_08152AD2: - mov r7, r8 - ldr r0, [r7] - adds r0, r4 - strb r2, [r0] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r1 - bls _08152AD2 - mov r0, r12 - ldr r1, [r0] - ldr r2, =0x00000ff4 - adds r0, r1, r2 - strh r6, [r0] - ldr r6, =0x00000ff8 - adds r2, r1, r6 - ldr r0, =0x08012025 - str r0, [r2] - ldr r7, =0x00000ffc - adds r1, r7 - mov r2, r9 - ldr r0, [r2] - str r0, [r1] - movs r4, 0 - lsls r6, r5, 24 - mov r8, r6 - cmp r4, r3 - bcs _08152B22 - mov r2, r12 -_08152B0C: - ldr r1, [r2] - adds r1, r4 - mov r7, r10 - adds r0, r7, r4 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r3 - bcc _08152B0C -_08152B22: - mov r0, r10 - adds r1, r3, 0 - bl sub_8153164 - ldr r1, =gUnknown_03006204 - ldr r1, [r1] - ldr r2, =0x00000ff6 - adds r1, r2 - strh r0, [r1] - ldr r0, =EraseFlashSector - ldr r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 - movs r6, 0x1 - movs r4, 0 - ldr r7, =0x00000ff7 - mov r9, r7 - ldr r7, =ProgramFlashByte - b _08152B82 - .pool -_08152B7C: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_08152B82: - cmp r4, r9 - bhi _08152BA0 - ldr r0, =gUnknown_03006204 - ldr r0, [r0] - adds r0, r4 - ldrb r2, [r0] - ldr r3, [r7] - adds r0, r5, 0 - adds r1, r4, 0 - bl _call_via_r3 - lsls r0, 16 - cmp r0, 0 - beq _08152B7C - movs r6, 0xFF -_08152BA0: - cmp r6, 0xFF - bne _08152BB0 - mov r0, r8 - lsrs r1, r0, 24 - b _08152C08 - .pool -_08152BB0: - movs r6, 0x1 - movs r4, 0 - ldr r1, =ProgramFlashByte - mov r9, r1 - ldr r7, =0x00000ff9 - b _08152BCA - .pool -_08152BC4: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_08152BCA: - cmp r4, 0x6 - bhi _08152BEC - adds r1, r4, r7 - ldr r0, =gUnknown_03006204 - ldr r0, [r0] - adds r0, r4, r0 - adds r0, r7 - ldrb r2, [r0] - mov r0, r9 - ldr r3, [r0] - adds r0, r5, 0 - bl _call_via_r3 - lsls r0, 16 - cmp r0, 0 - beq _08152BC4 - movs r6, 0xFF -_08152BEC: - cmp r6, 0xFF - beq _08152C04 - mov r2, r8 - lsrs r1, r2, 24 - movs r0, 0x1 - bl sub_815269C - movs r0, 0x1 - b _08152C10 - .pool -_08152C04: - mov r6, r8 - lsrs r1, r6, 24 -_08152C08: - movs r0, 0 - bl sub_815269C - movs r0, 0xFF -_08152C10: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end calls_flash_erase_block_2 - - thumb_func_start sav12_xor_get -sav12_xor_get: @ 8152C20 - push {r4-r6,lr} - lsls r0, 16 - ldr r6, =gUnknown_030061F0 - lsrs r0, 16 - ldrh r1, [r6] - adds r0, r1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - movs r1, 0xE - bl __umodsi3 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r5, =gUnknown_03006200 - ldr r1, [r5] - movs r0, 0x1 - ands r1, r0 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - adds r0, r4, r0 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, =ProgramFlashByte - ldr r1, =0x00000ff8 - ldr r3, [r0] - adds r0, r4, 0 - movs r2, 0x25 - bl _call_via_r3 - lsls r0, 16 - cmp r0, 0 - bne _08152C84 - lsls r1, r4, 24 - lsrs r1, 24 - movs r0, 0x1 - bl sub_815269C - movs r0, 0x1 - b _08152C9C - .pool -_08152C84: - lsls r1, r4, 24 - lsrs r1, 24 - movs r0, 0 - bl sub_815269C - ldr r0, =gUnknown_030061F8 - ldrh r0, [r0] - strh r0, [r6] - ldr r0, =gUnknown_030061F4 - ldr r0, [r0] - str r0, [r5] - movs r0, 0xFF -_08152C9C: - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sav12_xor_get - - thumb_func_start sub_8152CAC -sub_8152CAC: @ 8152CAC - push {r4-r6,lr} - lsls r0, 16 - ldr r6, =gUnknown_030061F0 - lsrs r0, 16 - ldrh r1, [r6] - adds r0, r1 - subs r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - movs r1, 0xE - bl __umodsi3 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r5, =gUnknown_03006200 - ldr r1, [r5] - movs r0, 0x1 - ands r1, r0 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - adds r0, r4, r0 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r3, =ProgramFlashByte - ldr r1, =0x00000ff8 - ldr r0, =gUnknown_03006204 - ldr r0, [r0] - adds r0, r1 - ldrb r2, [r0] - ldr r3, [r3] - adds r0, r4, 0 - bl _call_via_r3 - lsls r0, 16 - cmp r0, 0 - bne _08152D1C - lsls r1, r4, 24 - lsrs r1, 24 - movs r0, 0x1 - bl sub_815269C - movs r0, 0x1 - b _08152D34 - .pool -_08152D1C: - lsls r1, r4, 24 - lsrs r1, 24 - movs r0, 0 - bl sub_815269C - ldr r0, =gUnknown_030061F8 - ldrh r0, [r0] - strh r0, [r6] - ldr r0, =gUnknown_030061F4 - ldr r0, [r0] - str r0, [r5] - movs r0, 0xFF -_08152D34: - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8152CAC - - thumb_func_start sub_8152D44 -sub_8152D44: @ 8152D44 - push {r4-r6,lr} - lsls r0, 16 - ldr r6, =gUnknown_030061F0 - lsrs r0, 16 - ldrh r1, [r6] - adds r0, r1 - subs r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - movs r1, 0xE - bl __umodsi3 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r5, =gUnknown_03006200 - ldr r1, [r5] - movs r0, 0x1 - ands r1, r0 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - adds r0, r4, r0 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, =ProgramFlashByte - ldr r1, =0x00000ff8 - ldr r3, [r0] - adds r0, r4, 0 - movs r2, 0x25 - bl _call_via_r3 - lsls r0, 16 - cmp r0, 0 - bne _08152DA8 - lsls r1, r4, 24 - lsrs r1, 24 - movs r0, 0x1 - bl sub_815269C - movs r0, 0x1 - b _08152DC0 - .pool -_08152DA8: - lsls r1, r4, 24 - lsrs r1, 24 - movs r0, 0 - bl sub_815269C - ldr r0, =gUnknown_030061F8 - ldrh r0, [r0] - strh r0, [r6] - ldr r0, =gUnknown_030061F4 - ldr r0, [r0] - str r0, [r5] - movs r0, 0xFF -_08152DC0: - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8152D44 - - thumb_func_start sub_8152DD0 -sub_8152DD0: @ 8152DD0 - push {r4-r6,lr} - adds r6, r1, 0 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r1, =gUnknown_03006204 - ldr r0, =gUnknown_0203ABBC - str r0, [r1] - ldr r0, =0x0000ffff - cmp r4, r0 - beq _08152DF4 - movs r5, 0xFF - b _08152E06 - .pool -_08152DF4: - adds r0, r6, 0 - bl sub_8152EC8 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_8152E10 -_08152E06: - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8152DD0 - - thumb_func_start sub_8152E10 -sub_8152E10: @ 8152E10 - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r1 - ldr r0, =gUnknown_03006200 - ldr r1, [r0] - movs r0, 0x1 - ands r1, r0 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 17 - lsrs r7, r0, 16 - movs r5, 0 - ldr r6, =gUnknown_03006204 -_08152E2C: - adds r0, r5, r7 - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r6] - bl sub_815314C - ldr r0, [r6] - ldr r1, =0x00000ff4 - adds r0, r1 - ldrh r1, [r0] - cmp r1, 0 - bne _08152E48 - ldr r0, =gUnknown_030061F0 - strh r5, [r0] -_08152E48: - ldr r0, [r6] - lsls r1, 3 - mov r2, r8 - adds r4, r1, r2 - ldrh r1, [r4, 0x4] - bl sub_8153164 - lsls r0, 16 - lsrs r3, r0, 16 - ldr r2, [r6] - ldr r1, =0x00000ff8 - adds r0, r2, r1 - ldr r1, [r0] - ldr r0, =0x08012025 - adds r5, 0x1 - cmp r1, r0 - bne _08152E98 - ldr r1, =0x00000ff6 - adds r0, r2, r1 - ldrh r0, [r0] - cmp r0, r3 - bne _08152E98 - movs r2, 0 - ldrh r0, [r4, 0x4] - cmp r2, r0 - bcs _08152E98 - adds r3, r4, 0 - ldr r4, =gUnknown_03006204 -_08152E80: - ldr r1, [r3] - adds r1, r2 - ldr r0, [r4] - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r1, [r3, 0x4] - cmp r2, r1 - bcc _08152E80 -_08152E98: - lsls r0, r5, 16 - lsrs r5, r0, 16 - cmp r5, 0xD - bls _08152E2C - movs r0, 0x1 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8152E10 - - thumb_func_start sub_8152EC8 -sub_8152EC8: @ 8152EC8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r10, r0 - movs r0, 0 - mov r8, r0 - mov r9, r0 - movs r6, 0 - movs r5, 0 - movs r4, 0 - ldr r7, =gUnknown_03006204 -_08152EE4: - lsls r0, r4, 24 - lsrs r0, 24 - ldr r1, [r7] - bl sub_815314C - ldr r2, [r7] - ldr r1, =0x00000ff8 - adds r0, r2, r1 - ldr r1, [r0] - ldr r0, =0x08012025 - cmp r1, r0 - bne _08152F34 - movs r5, 0x1 - ldr r3, =0x00000ff4 - adds r0, r2, r3 - ldrh r0, [r0] - lsls r0, 3 - add r0, r10 - ldrh r1, [r0, 0x4] - adds r0, r2, 0 - bl sub_8153164 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r1, [r7] - ldr r3, =0x00000ff6 - adds r0, r1, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _08152F34 - ldr r2, =0x00000ffc - adds r0, r1, r2 - ldr r0, [r0] - mov r8, r0 - subs r3, 0x2 - adds r1, r3 - adds r0, r5, 0 - ldrh r1, [r1] - lsls r0, r1 - orrs r6, r0 -_08152F34: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xD - bls _08152EE4 - cmp r5, 0 - beq _08152F70 - ldr r0, =0x00003fff - movs r1, 0xFF - str r1, [sp] - cmp r6, r0 - bne _08152F74 - movs r2, 0x1 - str r2, [sp] - b _08152F74 - .pool -_08152F70: - movs r3, 0 - str r3, [sp] -_08152F74: - movs r6, 0 - movs r5, 0 - movs r4, 0 - ldr r7, =gUnknown_03006204 -_08152F7C: - adds r0, r4, 0 - adds r0, 0xE - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r7] - bl sub_815314C - ldr r2, [r7] - ldr r1, =0x00000ff8 - adds r0, r2, r1 - ldr r1, [r0] - ldr r0, =0x08012025 - cmp r1, r0 - bne _08152FD0 - movs r5, 0x1 - ldr r3, =0x00000ff4 - adds r0, r2, r3 - ldrh r0, [r0] - lsls r0, 3 - add r0, r10 - ldrh r1, [r0, 0x4] - adds r0, r2, 0 - bl sub_8153164 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r1, [r7] - ldr r3, =0x00000ff6 - adds r0, r1, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _08152FD0 - ldr r2, =0x00000ffc - adds r0, r1, r2 - ldr r0, [r0] - mov r9, r0 - subs r3, 0x2 - adds r1, r3 - adds r0, r5, 0 - ldrh r1, [r1] - lsls r0, r1 - orrs r6, r0 -_08152FD0: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xD - bls _08152F7C - cmp r5, 0 - beq _08153008 - ldr r0, =0x00003fff - movs r1, 0xFF - cmp r6, r0 - bne _0815300A - movs r1, 0x1 - b _0815300A - .pool -_08153008: - movs r1, 0 -_0815300A: - ldr r0, [sp] - cmp r0, 0x1 - bne _0815307C - cmp r1, 0x1 - bne _0815306C - movs r0, 0x1 - negs r0, r0 - cmp r8, r0 - bne _08153022 - mov r1, r9 - cmp r1, 0 - beq _0815302C -_08153022: - mov r2, r8 - cmp r2, 0 - bne _08153050 - cmp r9, r0 - bne _08153050 -_0815302C: - mov r1, r8 - adds r1, 0x1 - mov r0, r9 - adds r0, 0x1 - cmp r1, r0 - bcs _08153044 - ldr r0, =gUnknown_03006200 - mov r3, r9 - b _08153064 - .pool -_08153044: - ldr r0, =gUnknown_03006200 - mov r1, r8 - str r1, [r0] - b _08153094 - .pool -_08153050: - cmp r8, r9 - bcs _08153060 - ldr r0, =gUnknown_03006200 - mov r2, r9 - str r2, [r0] - b _08153094 - .pool -_08153060: - ldr r0, =gUnknown_03006200 - mov r3, r8 -_08153064: - str r3, [r0] - b _08153094 - .pool -_0815306C: - ldr r0, =gUnknown_03006200 - mov r2, r8 - str r2, [r0] - cmp r1, 0xFF - beq _0815308C - b _08153094 - .pool -_0815307C: - cmp r1, 0x1 - bne _08153098 - ldr r0, =gUnknown_03006200 - mov r3, r9 - str r3, [r0] - ldr r0, [sp] - cmp r0, 0xFF - bne _08153094 -_0815308C: - movs r0, 0xFF - b _081530C4 - .pool -_08153094: - movs r0, 0x1 - b _081530C4 -_08153098: - ldr r2, [sp] - cmp r2, 0 - bne _081530B8 - cmp r1, 0 - bne _081530B8 - ldr r0, =gUnknown_03006200 - str r1, [r0] - ldr r0, =gUnknown_030061F0 - strh r1, [r0] - movs r0, 0 - b _081530C4 - .pool -_081530B8: - ldr r0, =gUnknown_03006200 - movs r1, 0 - str r1, [r0] - ldr r0, =gUnknown_030061F0 - strh r1, [r0] - movs r0, 0x2 -_081530C4: - 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_8152EC8 - - thumb_func_start sub_81530DC -sub_81530DC: @ 81530DC - push {r4-r6,lr} - adds r6, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r2, 16 - lsrs r4, r2, 16 - ldr r5, =gUnknown_0203ABBC - adds r1, r5, 0 - bl sub_815314C - ldr r1, =0x00000ff8 - adds r0, r5, r1 - ldr r1, [r0] - ldr r0, =0x08012025 - cmp r1, r0 - bne _08153144 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8153164 - lsls r0, 16 - lsrs r0, 16 - ldr r2, =0x00000ff4 - adds r1, r5, r2 - ldrh r1, [r1] - cmp r1, r0 - bne _08153140 - movs r2, 0 - cmp r2, r4 - bcs _0815312A -_08153118: - adds r1, r6, r2 - adds r0, r5, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r4 - bcc _08153118 -_0815312A: - movs r0, 0x1 - b _08153146 - .pool -_08153140: - movs r0, 0x2 - b _08153146 -_08153144: - movs r0, 0 -_08153146: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81530DC - - thumb_func_start sub_815314C -sub_815314C: @ 815314C - push {lr} - adds r2, r1, 0 - lsls r0, 24 - lsrs r0, 24 - movs r3, 0x80 - lsls r3, 5 - movs r1, 0 - bl ReadFlash - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_815314C - - thumb_func_start sub_8153164 -sub_8153164: @ 8153164 - push {r4,lr} - adds r4, r0, 0 - lsls r1, 16 - movs r2, 0 - movs r3, 0 - lsrs r1, 18 - cmp r2, r1 - bcs _08153182 -_08153174: - ldm r4!, {r0} - adds r2, r0 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r1 - bcc _08153174 -_08153182: - lsrs r0, r2, 16 - adds r0, r2 - lsls r0, 16 - lsrs r0, 16 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8153164 - - thumb_func_start sub_8153190 -sub_8153190: @ 8153190 - push {r4,r5,lr} - ldr r3, =gUnknown_03006220 - ldr r0, =gSaveBlock2Ptr - ldr r2, =gUnknown_085CDC00 - ldrh r1, [r2] - ldr r0, [r0] - adds r0, r1 - str r0, [r3] - ldrh r0, [r2, 0x2] - strh r0, [r3, 0x4] - ldr r5, =gSaveBlock1Ptr - adds r3, 0x8 - adds r2, 0x4 - movs r4, 0x3 -_081531AC: - ldrh r0, [r2] - ldr r1, [r5] - adds r1, r0 - str r1, [r3] - ldrh r0, [r2, 0x2] - strh r0, [r3, 0x4] - adds r3, 0x8 - adds r2, 0x4 - subs r4, 0x1 - cmp r4, 0 - bge _081531AC - movs r4, 0x5 - ldr r1, =gUnknown_03006220 - ldr r5, =gUnknown_03005D94 - ldr r0, =gUnknown_085CDC00 - adds r3, r1, 0 - adds r3, 0x28 - adds r2, r0, 0 - adds r2, 0x14 -_081531D2: - ldrh r0, [r2] - ldr r1, [r5] - adds r1, r0 - str r1, [r3] - ldrh r0, [r2, 0x2] - strh r0, [r3, 0x4] - adds r3, 0x8 - adds r2, 0x4 - adds r4, 0x1 - cmp r4, 0xD - ble _081531D2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8153190 - - thumb_func_start calls_flash_erase_block_3 -calls_flash_erase_block_3: @ 8153204 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_0203CF5C - ldr r6, [r1] - movs r0, 0 - str r0, [r1] - bl sub_8153190 - cmp r4, 0x5 - bhi _081532AC - lsls r0, r4, 2 - ldr r1, =_0815322C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0815322C: - .4byte _081532AC - .4byte _081532C4 - .4byte _081532C4 - .4byte _0815325A - .4byte _081532F8 - .4byte _08153244 -_08153244: - movs r4, 0x1C - ldr r5, =EraseFlashSector -_08153248: - ldr r1, [r5] - adds r0, r4, 0 - bl _call_via_r1 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1F - bls _08153248 -_0815325A: - movs r0, 0xA - bl sub_80847F8 - ldr r1, =0x000003e6 - cmp r0, r1 - bhi _0815326C - movs r0, 0xA - bl sav12_xor_increment -_0815326C: - bl save_serialize_game - ldr r0, =0x0000ffff - ldr r1, =gUnknown_03006220 - bl save_write_to_flash - ldr r4, =0x0201c000 - movs r5, 0xF8 - lsls r5, 4 - movs r0, 0x1C - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_8152890 - adds r4, r5 - movs r0, 0x1D - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_8152890 - b _0815331A - .pool -_081532AC: - bl save_serialize_game - ldr r0, =0x0000ffff - ldr r1, =gUnknown_03006220 - bl save_write_to_flash - b _0815331A - .pool -_081532C4: - bl save_serialize_game - movs r4, 0 -_081532CA: - adds r0, r4, 0 - ldr r1, =gUnknown_03006220 - bl calls_flash_erase_block_2 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _081532CA - movs r4, 0 -_081532DE: - adds r0, r4, 0 - ldr r1, =gUnknown_03006220 - bl sav12_xor_get - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _081532DE - b _0815331A - .pool -_081532F8: - movs r4, 0x1C - ldr r5, =EraseFlashSector -_081532FC: - ldr r1, [r5] - adds r0, r4, 0 - bl _call_via_r1 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1F - bls _081532FC - bl save_serialize_game - ldr r0, =0x0000ffff - ldr r1, =gUnknown_03006220 - bl save_write_to_flash -_0815331A: - ldr r0, =gUnknown_0203CF5C - str r6, [r0] - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end calls_flash_erase_block_3 - - thumb_func_start save_game_when_memory_present -save_game_when_memory_present: @ 8153338 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gFlashMemoryPresent - ldr r4, [r0] - cmp r4, 0x1 - bne _0815335A - adds r0, r5, 0 - bl calls_flash_erase_block_3 - ldr r0, =gUnknown_030061FC - ldr r0, [r0] - cmp r0, 0 - beq _08153370 - adds r0, r5, 0 - bl fullscreen_save_activate -_0815335A: - ldr r1, =gUnknown_03006294 - movs r0, 0xFF - strh r0, [r1] - movs r0, 0xFF - b _08153376 - .pool -_08153370: - ldr r0, =gUnknown_03006294 - strh r4, [r0] - movs r0, 0x1 -_08153376: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end save_game_when_memory_present - - thumb_func_start sub_8153380 -sub_8153380: @ 8153380 - push {lr} - ldr r0, =gFlashMemoryPresent - ldr r0, [r0] - cmp r0, 0x1 - bne _081533A4 - bl sub_8153190 - bl save_serialize_game - ldr r0, =gUnknown_03006220 - bl sub_8152934 - movs r0, 0 - b _081533A6 - .pool -_081533A4: - movs r0, 0x1 -_081533A6: - pop {r1} - bx r1 - thumb_func_end sub_8153380 - - thumb_func_start sub_81533AC -sub_81533AC: @ 81533AC - push {r4,lr} - ldr r1, =gUnknown_03006220 - movs r0, 0xE - bl sub_81529D4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gUnknown_030061FC - ldr r0, [r0] - cmp r0, 0 - beq _081533C8 - movs r0, 0 - bl fullscreen_save_activate -_081533C8: - cmp r4, 0xFF - beq _081533D8 - movs r0, 0 - b _081533DA - .pool -_081533D8: - movs r0, 0x1 -_081533DA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81533AC - - thumb_func_start sub_81533E0 -sub_81533E0: @ 81533E0 - push {lr} - ldr r1, =gUnknown_03006220 - movs r0, 0xE - bl sub_8152A34 - ldr r0, =gUnknown_030061FC - ldr r0, [r0] - cmp r0, 0 - beq _081533F8 - movs r0, 0 - bl fullscreen_save_activate -_081533F8: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81533E0 - - thumb_func_start sub_8153408 -sub_8153408: @ 8153408 - push {lr} - ldr r1, =gUnknown_03006220 - movs r0, 0xE - bl sub_8152CAC - ldr r0, =gUnknown_030061FC - ldr r0, [r0] - cmp r0, 0 - beq _08153420 - movs r0, 0 - bl fullscreen_save_activate -_08153420: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_8153408 - - thumb_func_start sub_8153430 -sub_8153430: @ 8153430 - push {r4,lr} - ldr r0, =gFlashMemoryPresent - ldr r0, [r0] - cmp r0, 0x1 - bne _0815346C - bl sub_8153190 - bl save_serialize_game - ldr r4, =gUnknown_03006220 - adds r0, r4, 0 - bl sub_8152990 - ldr r0, =gUnknown_03006208 - ldrh r0, [r0] - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0 - bl sub_8152A34 - movs r0, 0 - b _0815346E - .pool -_0815346C: - movs r0, 0x1 -_0815346E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8153430 - - thumb_func_start sub_8153474 -sub_8153474: @ 8153474 - push {r4-r6,lr} - movs r6, 0 - ldr r0, =gUnknown_03006208 - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - lsls r0, r1, 16 - lsrs r5, r0, 16 - cmp r5, 0x4 - bhi _081534A8 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r0, 16 - ldr r4, =gUnknown_03006220 - adds r1, r4, 0 - bl sub_8152A34 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8152D44 - b _081534B2 - .pool -_081534A8: - ldr r1, =gUnknown_03006220 - adds r0, r5, 0 - bl sub_8152D44 - movs r6, 0x1 -_081534B2: - ldr r0, =gUnknown_030061FC - ldr r0, [r0] - cmp r0, 0 - beq _081534C0 - movs r0, 0x1 - bl fullscreen_save_activate -_081534C0: - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8153474 - - thumb_func_start sub_81534D0 -sub_81534D0: @ 81534D0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gFlashMemoryPresent - ldr r0, [r0] - cmp r0, 0x1 - beq _081534F0 - ldr r1, =gUnknown_03006210 - movs r0, 0x4 - strh r0, [r1] - movs r0, 0xFF - b _08153550 - .pool -_081534F0: - bl sub_8153190 - cmp r4, 0 - beq _081534FC - cmp r4, 0x3 - beq _08153528 -_081534FC: - ldr r0, =0x0000ffff - ldr r1, =gUnknown_03006220 - bl sub_8152DD0 - lsls r0, 24 - lsrs r4, r0, 24 - bl save_deserialize_game - ldr r0, =gUnknown_03006210 - strh r4, [r0] - ldr r1, =gUnknown_03006214 - movs r0, 0 - str r0, [r1] - b _0815354E - .pool -_08153528: - ldr r5, =0x0201c000 - movs r6, 0xF8 - lsls r6, 4 - movs r0, 0x1C - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_81530DC - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bne _0815354E - adds r1, r5, r6 - movs r0, 0x1D - adds r2, r6, 0 - bl sub_81530DC - lsls r0, 24 - lsrs r4, r0, 24 -_0815354E: - adds r0, r4, 0 -_08153550: - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81534D0 - - thumb_func_start sub_815355C -sub_815355C: @ 815355C - push {r4-r7,lr} - ldr r5, =gUnknown_03006204 - ldr r0, =gUnknown_0203ABBC - str r0, [r5] - adds r7, r0, 0 - ldr r0, =gFlashMemoryPresent - ldr r4, [r0] - cmp r4, 0x1 - beq _0815358C - b _081535C8 - .pool -_0815357C: - ldrb r1, [r7, 0xA] - ldrb r0, [r7, 0xB] - adds r1, r0 - ldrb r0, [r7, 0xC] - adds r1, r0 - ldrb r0, [r7, 0xD] - adds r0, r1 - b _081535CA -_0815358C: - bl sub_8153190 - ldr r0, =gUnknown_03006220 - bl sub_8152EC8 - ldr r0, =gUnknown_03006200 - ldr r1, [r0] - ands r1, r4 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 17 - lsrs r6, r0, 16 - movs r4, 0 -_081535A6: - adds r0, r4, r6 - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r5] - bl sub_815314C - ldr r0, [r5] - ldr r1, =0x00000ff4 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _0815357C - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xD - bls _081535A6 -_081535C8: - movs r0, 0 -_081535CA: - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_815355C - - thumb_func_start sub_81535DC -sub_81535DC: @ 81535DC - push {r4-r6,lr} - adds r6, r1, 0 - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xE2 - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08153608 - ldr r4, =gUnknown_0203ABBC - movs r3, 0x80 - lsls r3, 5 - adds r0, r1, 0 - movs r1, 0 - adds r2, r4, 0 - bl ReadFlash - ldr r1, [r4] - ldr r0, =0x0000b39d - cmp r1, r0 - beq _08153614 -_08153608: - movs r0, 0xFF - b _0815362A - .pool -_08153614: - movs r3, 0 - ldr r5, =0x00000ffb - adds r2, r4, 0x4 -_0815361A: - adds r0, r6, r3 - adds r1, r2, r3 - ldrb r1, [r1] - strb r1, [r0] - adds r3, 0x1 - cmp r3, r5 - ble _0815361A - movs r0, 0x1 -_0815362A: - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81535DC - - thumb_func_start sub_8153634 -sub_8153634: @ 8153634 - push {r4-r7,lr} - adds r5, r1, 0 - lsls r0, 24 - lsrs r6, r0, 24 - movs r1, 0xE2 - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08153680 - ldr r7, =gUnknown_0203ABBC - ldr r0, =0x0000b39d - adds r3, r7, 0 - stm r3!, {r0} - movs r2, 0 - ldr r4, =0x00000ffb -_08153654: - adds r0, r3, r2 - adds r1, r5, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, r4 - ble _08153654 - adds r0, r6, 0 - adds r1, r7, 0 - bl ProgramFlashSectorAndVerify - cmp r0, 0 - bne _08153680 - movs r0, 0x1 - b _08153682 - .pool -_08153680: - movs r0, 0xFF -_08153682: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8153634 thumb_func_start sub_8153688 sub_8153688: @ 8153688 diff --git a/asm/save_failed_screen.s b/asm/save_failed_screen.s index 617108424b..247c765b61 100644 --- a/asm/save_failed_screen.s +++ b/asm/save_failed_screen.s @@ -44,8 +44,8 @@ sub_8178F44: @ 8178F44 .pool thumb_func_end sub_8178F44 - thumb_func_start fullscreen_save_activate -fullscreen_save_activate: @ 8178F90 + thumb_func_start DoSaveFailedScreen +DoSaveFailedScreen: @ 8178F90 push {r4,lr} adds r4, r0, 0 lsls r4, 24 @@ -66,13 +66,13 @@ fullscreen_save_activate: @ 8178F90 pop {r0} bx r0 .pool - thumb_func_end fullscreen_save_activate + thumb_func_end DoSaveFailedScreen thumb_func_start sub_8178FC8 sub_8178FC8: @ 8178FC8 push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -226,7 +226,7 @@ _08178FF8: adds r2, r5, 0 bl SetWindowAttribute bl DeactivateAllTextPrinters - bl ResetAllObjectData + bl ResetSpriteData bl ResetTasks bl ResetPaletteFade ldr r0, =gUnknown_085B0A00 @@ -325,7 +325,7 @@ sub_8179288: @ 8179288 ldr r0, =gUnknown_0203BCFE movs r1, 0x1 strh r1, [r0] - ldr r1, =gUnknown_030061FC + ldr r1, =gDamagedSaveSectors ldr r0, [r1] cmp r0, 0 beq _081792EC @@ -346,7 +346,7 @@ _0817929C: bl sub_8178F44 ldr r0, =gUnknown_0203BCFC ldrb r0, [r0] - bl calls_flash_erase_block_3 + bl HandleSavingData ldr r0, [r6] cmp r0, 0 beq _081792DC @@ -381,7 +381,7 @@ _0817931C: ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer - ldr r0, =gUnknown_03006214 + ldr r0, =gGameContinueCallback ldr r0, [r0] cmp r0, 0 bne _08179370 @@ -488,7 +488,7 @@ sub_8179428: @ 8179428 lsrs r4, r0, 24 cmp r4, 0 bne _0817944E - ldr r5, =gUnknown_03006214 + ldr r5, =gGameContinueCallback ldr r0, [r5] cmp r0, 0 bne _08179448 @@ -594,7 +594,7 @@ sub_8179514: @ 8179514 push {r4,lr} lsls r0, 16 lsrs r0, 16 - ldr r4, =gUnknown_0203ABBC + ldr r4, =gSaveDataBuffer movs r3, 0x80 lsls r3, 5 movs r1, 0 diff --git a/asm/scrcmd.s b/asm/scrcmd.s index cf3917979a..d22965e54e 100644 --- a/asm/scrcmd.s +++ b/asm/scrcmd.s @@ -935,7 +935,7 @@ s8F_get_random_val: @ 809996C adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 - ldr r5, =gUnknown_020375F0 + ldr r5, =gScriptResult bl Random lsls r0, 16 lsrs r0, 16 @@ -966,11 +966,11 @@ sub_80999A0: @ 80999A0 lsrs r0, 16 bl VarGet adds r1, r0, 0 - ldr r5, =gUnknown_020375F0 + ldr r5, =gScriptResult lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl bag_add_item + bl AddBagItem lsls r0, 24 lsrs r0, 24 strh r0, [r5] @@ -998,11 +998,11 @@ sub_80999E4: @ 80999E4 lsrs r0, 16 bl VarGet adds r1, r0, 0 - ldr r5, =gUnknown_020375F0 + ldr r5, =gScriptResult lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl remove_item + bl RemoveBagItem lsls r0, 24 lsrs r0, 24 strh r0, [r5] @@ -1030,11 +1030,11 @@ sub_8099A28: @ 8099A28 lsrs r0, 16 bl VarGet adds r1, r0, 0 - ldr r5, =gUnknown_020375F0 + ldr r5, =gScriptResult lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_80D6800 + bl CheckBagHasSpace lsls r0, 24 lsrs r0, 24 strh r0, [r5] @@ -1062,11 +1062,11 @@ sub_8099A6C: @ 8099A6C lsrs r0, 16 bl VarGet adds r1, r0, 0 - ldr r5, =gUnknown_020375F0 + ldr r5, =gScriptResult lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_80D6724 + bl CheckBagHasItem lsls r0, 24 lsrs r0, 24 strh r0, [r5] @@ -1086,8 +1086,8 @@ s48_get_item_type: @ 8099AB0 bl VarGet lsls r0, 16 lsrs r0, 16 - ldr r4, =gUnknown_020375F0 - bl sub_80D6C68 + ldr r4, =gScriptResult + bl GetPocketByItemId lsls r0, 24 lsrs r0, 24 strh r0, [r4] @@ -1117,7 +1117,7 @@ sub_8099ADC: @ 8099ADC adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 - ldr r5, =gUnknown_020375F0 + ldr r5, =gScriptResult adds r0, r4, 0 bl sub_80D6D70 lsls r0, 24 @@ -1149,7 +1149,7 @@ sub_8099B20: @ 8099B20 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 - ldr r5, =gUnknown_020375F0 + ldr r5, =gScriptResult adds r0, r4, 0 bl sub_80D6D1C lsls r0, 24 @@ -1169,7 +1169,7 @@ sub_8099B64: @ 8099B64 lsls r0, 16 lsrs r0, 16 bl VarGet - ldr r4, =gUnknown_020375F0 + ldr r4, =gScriptResult lsls r0, 24 lsrs r0, 24 bl IsThereStorageSpaceForDecoration @@ -1190,7 +1190,7 @@ sub_8099B90: @ 8099B90 lsls r0, 16 lsrs r0, 16 bl VarGet - ldr r4, =gUnknown_020375F0 + ldr r4, =gScriptResult lsls r0, 24 lsrs r0, 24 bl sub_81619DC @@ -1211,7 +1211,7 @@ sub_8099BBC: @ 8099BBC lsls r0, 16 lsrs r0, 16 bl VarGet - ldr r4, =gUnknown_020375F0 + ldr r4, =gScriptResult lsls r0, 24 lsrs r0, 24 bl sub_81619A8 @@ -1232,7 +1232,7 @@ sub_8099BE8: @ 8099BE8 lsls r0, 16 lsrs r0, 16 bl VarGet - ldr r4, =gUnknown_020375F0 + ldr r4, =gScriptResult lsls r0, 24 lsrs r0, 24 bl sub_8161918 @@ -1297,7 +1297,7 @@ sC3_unknown: @ 8099C58 adds r1, 0x1 str r1, [r0, 0x8] adds r0, r2, 0 - bl sav12_xor_increment + bl IncrementGameStat movs r0, 0 pop {r1} bx r1 @@ -1507,7 +1507,7 @@ s2C_unknown: @ 8099DD8 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl GameFreakRTC_CalcRTCToLocalDelta_DayZero + bl RtcInitLocalTimeOffset movs r0, 0 pop {r4,r5} pop {r1} @@ -1528,17 +1528,17 @@ s2D_unknown: @ 8099E10 @ int s2E_unknown(script_env *env) s2E_unknown: @ 8099E1C push {lr} - bl GameFreakRTC_CalcLocalDateTime - ldr r2, =gUnknown_020375D8 - ldr r1, =gUnknown_03005CF8 + bl RtcCalcLocalTime + ldr r2, =gSpecialVar_0x8000 + ldr r1, =gLocalTime movs r0, 0x2 ldrsb r0, [r1, r0] strh r0, [r2] - ldr r2, =gUnknown_020375DA + ldr r2, =gSpecialVar_0x8001 movs r0, 0x3 ldrsb r0, [r1, r0] strh r0, [r2] - ldr r2, =gUnknown_020375DC + ldr r2, =gSpecialVar_0x8002 movs r0, 0x4 ldrsb r0, [r1, r0] strh r0, [r2] @@ -2341,7 +2341,7 @@ s42_get_map_camera_pos: @ 809A45C thumb_func_start s43_get_player_party_count s43_get_player_party_count: @ 809A498 push {r4,lr} - ldr r4, =gUnknown_020375F0 + ldr r4, =gScriptResult bl calc_player_party_count lsls r0, 24 lsrs r0, 24 @@ -2359,7 +2359,7 @@ s2F_music_play: @ 809A4B4 bl script_read_halfword lsls r0, 16 lsrs r0, 16 - bl audio_play + bl PlaySE movs r0, 0 pop {r1} bx r1 @@ -2368,7 +2368,7 @@ s2F_music_play: @ 809A4B4 thumb_func_start s30_music_check_asm s30_music_check_asm: @ 809A4C8 push {lr} - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _0809A4D8 @@ -2392,22 +2392,22 @@ s30_music_check: @ 809A4E0 .pool thumb_func_end s30_music_check - thumb_func_start s31_fanfare_play -s31_fanfare_play: @ 809A4F4 + thumb_func_start s31_PlayFanfare +s31_PlayFanfare: @ 809A4F4 push {lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 - bl fanfare_play + bl PlayFanfare movs r0, 0 pop {r1} bx r1 - thumb_func_end s31_fanfare_play + thumb_func_end s31_PlayFanfare thumb_func_start s32_fanfare_wait_asm s32_fanfare_wait_asm: @ 809A508 push {lr} - bl task_is_not_running_overworld_fanfare + bl IsFanfareTaskInactive lsls r0, 24 lsrs r0, 24 pop {r1} @@ -2444,7 +2444,7 @@ s33_play_music: @ 809A52C bl sav1_set_battle_music_maybe _0809A54C: adds r0, r5, 0 - bl current_map_music_set + bl PlayNewMapMusic movs r0, 0 pop {r4,r5} pop {r1} @@ -2496,13 +2496,13 @@ s37_fadeout: @ 809A590 beq _0809A5AA lsls r0, r1, 26 lsrs r0, 24 - bl sub_80A31E8 + bl FadeOutBGMTemporarily b _0809A5B0 _0809A5AA: movs r0, 0x4 - bl sub_80A31E8 + bl FadeOutBGMTemporarily _0809A5B0: - ldr r1, =sub_80A3200 + ldr r1, =IsBGMPausedOrStopped adds r0, r4, 0 bl script_setup_asm_script movs r0, 0x1 @@ -2523,11 +2523,11 @@ s38_fadein: @ 809A5C4 beq _0809A5DC lsls r0, r2, 26 lsrs r0, 24 - bl sub_80A3228 + bl FadeInBGM b _0809A5E2 _0809A5DC: movs r0, 0x4 - bl sub_80A3228 + bl FadeInBGM _0809A5E2: movs r0, 0 pop {r1} @@ -3914,7 +3914,7 @@ s80_load_item_name: @ 809B090 lsls r4, 2 adds r4, r1 ldr r1, [r4] - bl itemid_get_name + bl CopyItemName movs r0, 0 pop {r4} pop {r1} @@ -3951,7 +3951,7 @@ sub_809B0C4: @ 809B0C4 adds r6, r0 ldr r1, [r6] adds r0, r4, 0 - bl sub_80D6660 + bl CopyItemNameHandlePlural movs r0, 0 pop {r4-r6} pop {r1} @@ -4231,7 +4231,7 @@ s79_give_pokemon: @ 809B304 ldrb r2, [r1] adds r1, 0x1 str r1, [r4, 0x8] - ldr r4, =gUnknown_020375F0 + ldr r4, =gScriptResult str r0, [sp] str r2, [sp, 0x4] adds r0, r6, 0 @@ -4262,7 +4262,7 @@ s7A_create_egg: @ 809B384 bl VarGet lsls r0, 16 lsrs r0, 16 - ldr r4, =gUnknown_020375F0 + ldr r4, =gScriptResult bl sub_80F92C8 lsls r0, 24 lsrs r0, 24 @@ -4303,7 +4303,7 @@ sub_809B3DC: @ 809B3DC bl script_read_halfword lsls r0, 16 lsrs r7, r0, 16 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x6 strh r0, [r1] movs r6, 0 @@ -4322,9 +4322,9 @@ _0809B3F4: lsrs r0, 24 cmp r0, 0x1 bne _0809B424 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r6, [r0] - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 strh r5, [r0] b _0809B44A .pool @@ -4425,7 +4425,7 @@ s92_check_money: @ 809B4C0 str r0, [r4, 0x8] cmp r1, 0 bne _0809B4EE - ldr r4, =gUnknown_020375F0 + ldr r4, =gScriptResult ldr r0, =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0x92 @@ -4786,7 +4786,7 @@ sub_809B758: @ 809B758 lsls r0, 16 lsrs r0, 16 bl VarGet - ldr r4, =gUnknown_020375F0 + ldr r4, =gScriptResult lsls r0, 24 lsrs r0, 24 bl GetPriceReduction @@ -4943,7 +4943,7 @@ s9F_changeposition_fly: @ 809B870 thumb_func_start sA0_check_gender sA0_check_gender: @ 809B88C - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x8] @@ -4973,7 +4973,7 @@ sA1_play_cry: @ 809B8A4 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_80A3404 + bl PlayCry5 movs r0, 0 pop {r4,r5} pop {r1} @@ -4983,7 +4983,7 @@ sA1_play_cry: @ 809B8A4 thumb_func_start sub_809B8DC sub_809B8DC: @ 809B8DC push {lr} - ldr r1, =sub_80A3678 + ldr r1, =IsCryFinished bl script_setup_asm_script movs r0, 0x1 pop {r1} @@ -5080,7 +5080,7 @@ sAC_open_door: @ 809B970 bl cur_mapdata_get_door_sound_at lsls r0, 16 lsrs r0, 16 - bl audio_play + bl PlaySE adds r0, r5, 0 adds r1, r4, 0 bl task_overworld_door_add_if_role_69_for_opening_door_at @@ -5280,12 +5280,12 @@ sub_809BB20: @ 809BB20 lsrs r0, 24 cmp r0, 0x1 bne _0809BB48 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 b _0809BB4C .pool _0809BB48: - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 _0809BB4C: strh r0, [r1] @@ -5309,12 +5309,12 @@ sub_809BB58: @ 809BB58 lsrs r0, 24 cmp r0, 0x1 bne _0809BB80 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 b _0809BB84 .pool _0809BB80: - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 _0809BB84: strh r0, [r1] @@ -5440,7 +5440,7 @@ sCD_set_obedient_bit: @ 809BC44 adds r0, r1 movs r1, 0x50 mov r2, sp - bl pokemon_setattr + bl SetMonData movs r0, 0 add sp, 0x4 pop {r1} @@ -5457,7 +5457,7 @@ sCE_check_obedient_bit: @ 809BC7C bl VarGet lsls r0, 16 lsrs r0, 16 - ldr r4, =gUnknown_020375F0 + ldr r4, =gScriptResult movs r1, 0x64 muls r0, r1 ldr r1, =gPlayerParty @@ -5588,7 +5588,7 @@ sub_809BD70: @ 809BD70 adds r0, r1 movs r1, 0x23 mov r2, sp - bl pokemon_setattr + bl SetMonData _0809BDA6: movs r0, 0 add sp, 0x4 diff --git a/asm/script.s b/asm/script.s index be0a0ff8c1..e625b56254 100644 --- a/asm/script.s +++ b/asm/script.s @@ -411,9 +411,9 @@ script_env_2_enable_and_set_ctx_running: @ 8098F3C .pool thumb_func_end script_env_2_enable_and_set_ctx_running - thumb_func_start script_env_2_execute_new_script -@ void script_env_2_execute_new_script(void *script_ptr) -script_env_2_execute_new_script: @ 8098F50 + thumb_func_start ScriptContext2_RunNewScript +@ void ScriptContext2_RunNewScript(void *script_ptr) +ScriptContext2_RunNewScript: @ 8098F50 push {r4,r5,lr} adds r5, r0, 0 ldr r4, =gUnknown_03000EB8 @@ -435,7 +435,7 @@ _08098F68: pop {r0} bx r0 .pool - thumb_func_end script_env_2_execute_new_script + thumb_func_end ScriptContext2_RunNewScript thumb_func_start mapheader_get_tagged_pointer mapheader_get_tagged_pointer: @ 8098F88 @@ -484,7 +484,7 @@ mapheader_run_script_by_tag: @ 8098FC8 bl mapheader_get_tagged_pointer cmp r0, 0 beq _08098FDA - bl script_env_2_execute_new_script + bl ScriptContext2_RunNewScript _08098FDA: pop {r0} bx r0 @@ -616,7 +616,7 @@ mapheader_run_first_tag4_script_list_match: @ 8099098 bl mapheader_get_first_match_from_tagged_ptr_list cmp r0, 0 beq _080990A8 - bl script_env_2_execute_new_script + bl ScriptContext2_RunNewScript _080990A8: pop {r0} bx r0 diff --git a/asm/script_menu.s b/asm/script_menu.s index 1ebd3670e5..0562b9aebc 100644 --- a/asm/script_menu.s +++ b/asm/script_menu.s @@ -24,7 +24,7 @@ Multichoice: @ 80E1E08 lsrs r0, 24 cmp r0, 0x1 beq _080E1E4C - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult movs r1, 0xFF strh r1, [r0] movs r0, 0 @@ -70,7 +70,7 @@ sub_80E1E58: @ 80E1E58 lsrs r0, 24 cmp r0, 0x1 beq _080E1EA8 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0xFF strh r0, [r1] str r4, [sp] @@ -357,14 +357,14 @@ _080E20B8: cmp r0, 0 bne _080E20FC movs r0, 0x5 - bl audio_play - ldr r1, =gUnknown_020375F0 + bl PlaySE + ldr r1, =gScriptResult movs r0, 0x7F strh r0, [r1] b _080E20EC .pool _080E20E8: - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r1, [r0] _080E20EC: ldrb r0, [r5, 0xC] @@ -389,7 +389,7 @@ yes_no_box: @ 80E2108 lsrs r0, 24 cmp r0, 0x1 beq _080E2138 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0xFF strh r0, [r1] bl sub_8197930 @@ -410,7 +410,7 @@ _080E213A: thumb_func_start sub_80E2140 sub_80E2140: @ 80E2140 push {lr} - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0xFF beq _080E2154 @@ -464,13 +464,13 @@ _080E219C: bne _080E21BA _080E21A4: movs r0, 0x5 - bl audio_play - ldr r1, =gUnknown_020375F0 + bl PlaySE + ldr r1, =gScriptResult movs r0, 0 b _080E21B8 .pool _080E21B4: - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 _080E21B8: strh r0, [r1] @@ -517,7 +517,7 @@ sub_80E21D0: @ 80E21D0 b _080E22E8 .pool _080E2210: - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult movs r1, 0xFF strh r1, [r0] movs r2, 0 @@ -654,14 +654,14 @@ sub_80E2308: @ 80E2308 cmp r0, 0 bne _080E2360 movs r0, 0x5 - bl audio_play - ldr r1, =gUnknown_020375F0 + bl PlaySE + ldr r1, =gScriptResult movs r0, 0x7F strh r0, [r1] b _080E2350 .pool _080E234C: - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r1, [r0] _080E2350: ldrb r0, [r5, 0xC] @@ -686,7 +686,7 @@ sp109_CreatePCMenu: @ 80E236C lsrs r0, 24 cmp r0, 0x1 beq _080E2394 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0xFF strh r0, [r1] bl CreatePCMenu @@ -893,7 +893,7 @@ sub_80E2548: @ 80E2548 lsrs r0, 24 cmp r0, 0x1 beq _080E2570 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0xFF strh r0, [r1] bl sub_80E2578 @@ -931,7 +931,7 @@ _080E258A: movs r0, 0x1 movs r1, 0 bl GetFontAttribute - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] cmp r1, 0 bne _080E25D2 @@ -956,7 +956,7 @@ _080E258A: _080E25D2: ldr r0, =0x00000113 movs r1, 0x1 - bl sub_80D6724 + bl CheckBagHasItem lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -967,7 +967,7 @@ _080E25D2: lsrs r0, 24 cmp r0, 0x1 bne _080E2630 - ldr r2, =gUnknown_020375E0 + ldr r2, =gSpecialVar_0x8004 ldrh r0, [r2] cmp r0, 0 bne _080E2606 @@ -1002,7 +1002,7 @@ _080E2630: movs r0, 0xB9 lsls r0, 1 movs r1, 0x1 - bl sub_80D6724 + bl CheckBagHasItem lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1014,7 +1014,7 @@ _080E2630: lsrs r0, 24 cmp r0, 0x1 bne _080E2690 - ldr r2, =gUnknown_020375E0 + ldr r2, =gSpecialVar_0x8004 ldrh r0, [r2] cmp r0, 0 bne _080E2668 @@ -1047,7 +1047,7 @@ _080E2668: _080E2690: ldr r0, =0x00000173 movs r1, 0x1 - bl sub_80D6724 + bl CheckBagHasItem lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1058,7 +1058,7 @@ _080E2690: lsrs r0, 24 cmp r0, 0x1 bne _080E26EC - ldr r2, =gUnknown_020375E0 + ldr r2, =gSpecialVar_0x8004 ldrh r0, [r2] cmp r0, 0 bne _080E26C4 @@ -1092,7 +1092,7 @@ _080E26EC: movs r0, 0xBC lsls r0, 1 movs r1, 0x1 - bl sub_80D6724 + bl CheckBagHasItem lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1103,7 +1103,7 @@ _080E26EC: lsrs r0, 24 cmp r0, 0x1 bne _080E274C - ldr r2, =gUnknown_020375E0 + ldr r2, =gSpecialVar_0x8004 ldrh r0, [r2] cmp r0, 0 bne _080E2722 @@ -1142,7 +1142,7 @@ _080E274C: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0 bne _080E276E @@ -1155,7 +1155,7 @@ _080E276E: adds r7, r5, 0 cmp r7, 0x7 bne _080E27A4 - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 movs r0, 0xB strh r0, [r1] bl sub_813A128 @@ -1266,7 +1266,7 @@ _080E2860: thumb_func_start sub_80E2878 sub_80E2878: @ 80E2878 push {lr} - ldr r2, =gUnknown_020375F0 + ldr r2, =gScriptResult ldrh r0, [r2] cmp r0, 0x7F beq _080E288C @@ -1313,7 +1313,7 @@ _080E28CA: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 ldrb r1, [r4, 0xC] bl sub_80B6070 @@ -1391,14 +1391,14 @@ sub_80E2900: @ 80E2900 mov r0, r8 strh r0, [r3, 0xA] strh r5, [r3, 0xC] - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites lsls r1, r5, 4 adds r1, r5 lsls r1, 2 adds r0, r4, 0 adds r0, 0x1C adds r0, r1, r0 - ldr r2, =DummyObjectCallback + ldr r2, =SpriteCallbackDummy str r2, [r0] adds r1, r4 ldrb r2, [r1, 0x5] @@ -1648,7 +1648,7 @@ sp106_CreateStartMenu: @ 80E2B7C lsrs r0, 24 cmp r0, 0x1 beq _080E2BA4 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0xFF strh r0, [r1] bl CreateStartMenu diff --git a/asm/script_pokemon_util_80F87D8.s b/asm/script_pokemon_util_80F87D8.s index 4438a1a310..b98058fa49 100644 --- a/asm/script_pokemon_util_80F87D8.s +++ b/asm/script_pokemon_util_80F87D8.s @@ -36,7 +36,7 @@ sub_80F87D8: @ 80F87D8 thumb_func_start sub_80F8814 sub_80F8814: @ 80F8814 push {lr} - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrb r0, [r0] adds r1, r0, 0 cmp r0, 0x1 @@ -63,7 +63,7 @@ _080F883E: _080F8842: movs r1, 0x64 _080F8844: - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 strh r1, [r0] pop {r0} bx r0 @@ -124,12 +124,12 @@ _080F88A6: ldrh r1, [r0] cmp r1, 0 bne _080F88CC - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 strh r1, [r0] b _080F88D2 .pool _080F88CC: - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 movs r0, 0x1 strh r0, [r1] _080F88D2: @@ -169,12 +169,12 @@ sub_80F88E8: @ 80F88E8 ldr r0, =0x0000031f cmp r1, r0 ble _080F8930 - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 movs r0, 0x1 b _080F8934 .pool _080F8930: - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 movs r0, 0 _080F8934: strh r0, [r1] @@ -220,7 +220,7 @@ sub_80F8970: @ 80F8970 sub sp, 0x8 ldr r0, =gUnknown_02039F00 mov r12, r0 - ldr r1, =gUnknown_020375E4 + ldr r1, =gSpecialVar_0x8006 mov r9, r1 ldr r2, =gUnknown_02039E02 mov r10, r2 @@ -367,12 +367,12 @@ _080F8A6E: cmp r8, r0 bne _080F8AB0 _080F8A9C: - ldr r0, =gUnknown_020375E4 + ldr r0, =gSpecialVar_0x8006 strh r7, [r0] b _080F8AB6 .pool _080F8AB0: - ldr r1, =gUnknown_020375E4 + ldr r1, =gSpecialVar_0x8006 adds r0, r7, 0x4 strh r0, [r1] _080F8AB6: @@ -479,7 +479,7 @@ _080F8B7C: thumb_func_start sub_80F8B94 sub_80F8B94: @ 80F8B94 push {r4-r7,lr} - ldr r1, =gUnknown_0300301C + ldr r1, =gReservedSpritePaletteCount movs r0, 0xC strb r0, [r1] ldr r0, =gUnknown_02039F2A @@ -517,7 +517,7 @@ _080F8BBA: lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 ldrb r2, [r1, 0x5] movs r0, 0xF @@ -621,7 +621,7 @@ sub_80F8C7C: @ 80F8C7C adds r0, r4 movs r1, 0x46 mov r2, sp - bl pokemon_setattr + bl SetMonData ldrb r0, [r6] muls r0, r5 adds r0, r4 @@ -676,7 +676,7 @@ _080F8D44: movs r1, 0x3 mov r10, r1 ldr r2, =gUnknown_02039E00 - ldr r4, =gUnknown_020375E4 + ldr r4, =gSpecialVar_0x8006 ldrh r1, [r4] lsls r1, 6 adds r0, r1, r2 @@ -715,7 +715,7 @@ _080F8D44: ldr r1, [r1, 0x8] adds r2, r6, 0 adds r3, r5, 0 - bl DecompressMonPic_DetectFrontOrBack_2 + bl HandleLoadSpecialPokePic_2 b _080F8DD8 .pool _080F8DC4: @@ -727,7 +727,7 @@ _080F8DC4: ldr r1, [r1, 0x8] adds r2, r6, 0 adds r3, r5, 0 - bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack + bl HandleLoadSpecialPokePic_DontHandleDeoxys _080F8DD8: adds r0, r6, 0 mov r1, r8 @@ -755,7 +755,7 @@ _080F8DD8: adds r2, r3 asrs r2, 16 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gUnknown_02039F2A @@ -771,7 +771,7 @@ _080F8DD8: bne _080F8E6C adds r0, r4, r5 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 adds r1, r6, 0 movs r2, 0 @@ -783,7 +783,7 @@ _080F8E58: lsls r4, r5, 4 adds r0, r4, r5 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 adds r1, r6, 0 movs r2, 0 @@ -800,13 +800,13 @@ _080F8E6C: strh r1, [r0, 0xE] mov r2, r10 strh r2, [r0, 0x10] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites adds r1, r4, r5 lsls r1, 2 adds r0, r3, 0 adds r0, 0x1C adds r0, r1, r0 - ldr r2, =DummyObjectCallback + ldr r2, =SpriteCallbackDummy str r2, [r0] adds r1, r3 ldrb r2, [r1, 0x5] @@ -895,14 +895,14 @@ _080F8F42: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r4, r0, r1 ldrb r0, [r4, 0x5] lsrs r0, 4 - bl GetObjectPaletteTagBySlot + bl GetSpritePaletteTagByPaletteNum lsls r0, 16 lsrs r0, 16 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag ldrb r0, [r4, 0x1] lsls r0, 30 cmp r0, 0 @@ -910,10 +910,10 @@ _080F8F42: ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix _080F8F72: adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _080F8F78: ldrh r0, [r5, 0x8] adds r0, 0x1 @@ -952,7 +952,7 @@ sub_80F8FA0: @ 80F8FA0 ands r0, r1 cmp r0, 0 bne _080F8FD8 - ldr r4, =gUnknown_020375F0 + ldr r4, =gScriptResult bl link_get_multiplayer_id lsls r0, 24 lsrs r0, 24 @@ -960,7 +960,7 @@ sub_80F8FA0: @ 80F8FA0 b _080F8FDE .pool _080F8FD8: - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x4 strh r0, [r1] _080F8FDE: @@ -987,11 +987,11 @@ sub_80F8FE8: @ 80F8FE8 adds r0, r1 str r0, [r2] lsrs r0, 16 - ldr r4, =gUnknown_020375F0 + ldr r4, =gScriptResult b _080F902A .pool _080F9020: - ldr r4, =gUnknown_020375F0 + ldr r4, =gScriptResult bl Random lsls r0, 16 lsrs r0, 16 @@ -1184,7 +1184,7 @@ sp000_heal_pokemon: @ 80F9180 sub sp, 0x4 movs r0, 0 mov r8, r0 - ldr r0, =gUnknown_020244E9 + ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r8, r0 bcs _080F922C @@ -1206,7 +1206,7 @@ _080F919E: adds r0, r4, 0 movs r1, 0x39 mov r2, sp - bl pokemon_setattr + bl SetMonData adds r0, r4, 0 movs r1, 0x15 bl GetMonData @@ -1231,7 +1231,7 @@ _080F91D4: adds r1, 0x11 adds r0, r4, 0 mov r2, sp - bl pokemon_setattr + bl SetMonData adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 @@ -1248,12 +1248,12 @@ _080F91D4: add r0, r10 movs r1, 0x37 mov r2, sp - bl pokemon_setattr + bl SetMonData mov r1, r9 lsls r0, r1, 24 lsrs r0, 24 mov r8, r0 - ldr r0, =gUnknown_020244E9 + ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r8, r0 bcc _080F919E @@ -1305,7 +1305,7 @@ sub_80F9244: @ 80F9244 adds r0, r6, 0 movs r1, 0xC add r2, sp, 0x10 - bl pokemon_setattr + bl SetMonData adds r0, r6, 0 bl pokemon_catch lsls r0, 24 @@ -1349,7 +1349,7 @@ sub_80F92C8: @ 80F92C8 strb r0, [r2] mov r0, sp movs r1, 0x2D - bl pokemon_setattr + bl SetMonData mov r0, sp bl pokemon_catch lsls r0, 24 @@ -1376,7 +1376,7 @@ _080F9310: cmp r1, 0x2 bne _080F9318 _080F9314: - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r1, [r0] _080F9318: pop {r0} @@ -1464,7 +1464,7 @@ sub_80F93A0: @ 80F93A0 lsrs r5, 24 lsls r7, r2, 16 lsrs r6, r7, 16 - bl zero_enemy_party_data + bl ZeroEnemyPartyMons ldr r0, =gEnemyParty mov r8, r0 movs r0, 0 @@ -1487,7 +1487,7 @@ sub_80F93A0: @ 80F93A0 mov r0, r8 movs r1, 0xC add r2, sp, 0x10 - bl pokemon_setattr + bl SetMonData _080F93EE: add sp, 0x14 pop {r3} @@ -1509,7 +1509,7 @@ sub_80F9400: @ 80F9400 lsrs r2, 24 cmp r3, 0x6 bls _080F941C - ldr r0, =gUnknown_020244E9 + ldr r0, =gPlayerPartyCount ldrb r0, [r0] subs r0, 0x1 lsls r0, 24 @@ -1550,12 +1550,12 @@ sub_80F9460: @ 80F9460 ldrb r1, [r0] cmp r1, 0 bne _080F9478 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r1, [r0] b _080F947E .pool _080F9478: - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 strh r0, [r1] _080F947E: @@ -1572,7 +1572,7 @@ sub_80F9490: @ 80F9490 ldr r1, =gMain ldr r0, =sub_80F94B8 str r0, [r1, 0x8] - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrb r0, [r0] adds r0, 0x1 lsls r0, 24 @@ -1590,12 +1590,12 @@ sub_80F94B8: @ 80F94B8 ldrb r1, [r0] cmp r1, 0 bne _080F94D0 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r1, [r0] b _080F94D6 .pool _080F94D0: - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 strh r0, [r1] _080F94D6: diff --git a/asm/secret_base.s b/asm/secret_base.s index 03a33beb52..3f6db1f6be 100644 --- a/asm/secret_base.s +++ b/asm/secret_base.s @@ -36,8 +36,8 @@ _080E8B0A: .pool thumb_func_end sub_80E8AF0 - thumb_func_start sub_80E8B28 -sub_80E8B28: @ 80E8B28 + thumb_func_start ResetSecretBases +ResetSecretBases: @ 80E8B28 push {r4,r5,lr} movs r4, 0 ldr r5, =gSaveBlock1Ptr @@ -59,12 +59,12 @@ _080E8B2E: pop {r0} bx r0 .pool - thumb_func_end sub_80E8B28 + thumb_func_end ResetSecretBases thumb_func_start sub_80E8B58 sub_80E8B58: @ 80E8B58 ldr r0, =gUnknown_0203A01C - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldrh r1, [r1] strb r1, [r0] bx lr @@ -74,7 +74,7 @@ sub_80E8B58: @ 80E8B58 thumb_func_start sub_80E8B6C sub_80E8B6C: @ 80E8B6C push {r4,lr} - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult movs r1, 0 strh r1, [r0] movs r3, 0 @@ -123,13 +123,13 @@ sub_80E8BC8: @ 80E8BC8 ldrb r1, [r0] cmp r1, 0 beq _080E8BEC - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 strh r0, [r1] b _080E8BF0 .pool _080E8BEC: - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r1, [r0] _080E8BF0: pop {r0} @@ -227,7 +227,7 @@ _080E8C8E: thumb_func_start sub_80E8C98 sub_80E8C98: @ 80E8C98 push {r4,lr} - ldr r4, =gUnknown_020375E6 + ldr r4, =gSpecialVar_0x8007 bl sub_80E8BF8 lsls r0, 24 lsrs r0, 24 @@ -1112,7 +1112,7 @@ _080E93D4: bcs _080E9412 ldr r0, [r3, 0x4] ldrh r2, [r0, 0x14] - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldrh r0, [r1] adds r0, 0xAE adds r7, r1, 0 @@ -1143,14 +1143,14 @@ _080E9412: bne _080E941E b _080E9554 _080E941E: - ldr r4, =gUnknown_020375E4 + ldr r4, =gSpecialVar_0x8006 mov r8, r4 ldr r0, [sp, 0x8] adds r1, r0, r6 ldrb r0, [r1] lsrs r0, 4 strh r0, [r4] - ldr r7, =gUnknown_020375E6 + ldr r7, =gSpecialVar_0x8007 ldrb r1, [r1] movs r0, 0xF ands r0, r1 @@ -1175,7 +1175,7 @@ _080E941E: cmp r0, 0x1 bne _080E9554 _080E9462: - ldr r6, =gUnknown_020375F0 + ldr r6, =gScriptResult mov r1, r9 ldr r0, [r1, 0x4] ldr r1, [r0, 0x4] @@ -1203,7 +1203,7 @@ _080E9462: adds r4, r0 ldrb r0, [r4] strh r0, [r6] - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] adds r0, 0xAE lsls r0, 16 @@ -1265,7 +1265,7 @@ _080E9538: movs r3, 0x7 bl sub_808F28C _080E954C: - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] @@ -1428,7 +1428,7 @@ sub_80E9680: @ 80E9680 push {lr} bl sub_80E8B58 bl sub_80E8B6C - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0x1 beq _080E969C @@ -1527,12 +1527,12 @@ sub_80E9744: @ 80E9744 ldrb r1, [r1] cmp r0, r1 beq _080E9770 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 b _080E9774 .pool _080E9770: - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 _080E9774: strh r0, [r1] @@ -1927,7 +1927,7 @@ sub_80E9A90: @ 80E9A90 sub_80E9AC0: @ 80E9AC0 push {lr} movs r0, 0x14 - bl sav12_xor_increment + bl IncrementGameStat bl sub_80E9A90 pop {r0} bx r0 @@ -2018,7 +2018,7 @@ sub_80E9B70: @ 80E9B70 push {r4-r6,lr} bl sub_80E9AD0 movs r0, 0x14 - bl sav12_xor_increment + bl IncrementGameStat ldr r5, =gSaveBlock1Ptr ldr r0, [r5] ldr r4, =0x00001aaa @@ -2079,7 +2079,7 @@ sub_80E9BDC: @ 80E9BDC lsrs r1, r0, 24 cmp r1, 0x1 bne _080E9C04 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r1, [r0] b _080E9C22 .pool @@ -2089,12 +2089,12 @@ _080E9C04: lsrs r0, 24 cmp r0, 0x9 bls _080E9C1C - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x2 b _080E9C20 .pool _080E9C1C: - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 _080E9C20: strh r0, [r1] @@ -2319,7 +2319,7 @@ sub_80E9DEC: @ 80E9DEC cmp r1, 0x1 beq _080E9DFC movs r0, 0x5 - bl audio_play + bl PlaySE _080E9DFC: pop {r0} bx r0 @@ -2421,7 +2421,7 @@ sub_80E9E90: @ 80E9E90 .pool _080E9EC8: movs r0, 0x5 - bl audio_play + bl PlaySE ldrb r0, [r4, 0xA] movs r1, 0 movs r2, 0 @@ -2446,7 +2446,7 @@ _080E9EC8: .pool _080E9F0C: movs r0, 0x5 - bl audio_play + bl PlaySE strh r5, [r4, 0x8] adds r0, r6, 0 bl sub_80E9F20 @@ -2533,13 +2533,13 @@ sub_80E9FB0: @ 80E9FB0 cmp r4, r0 bne _080E9FDC movs r0, 0x5 - bl audio_play + bl PlaySE adds r0, r5, 0 bl sub_80EA18C b _080E9FF2 _080E9FDC: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =gUnknown_0858D048 lsls r1, r4, 3 adds r0, 0x4 @@ -2920,7 +2920,7 @@ sub_80EA30C: @ 80EA30C adds r1, r0 lsls r1, 5 adds r3, r1 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrb r0, [r0] ldr r1, =0x00001a9d adds r3, r1 @@ -2974,14 +2974,14 @@ _080EA376: ldr r0, =0x00000922 bl FlagSet _080EA39A: - ldr r4, =gUnknown_020375E0 + ldr r4, =gSpecialVar_0x8004 lsls r0, r5, 24 lsrs r0, 24 bl sub_80EA20C lsls r0, 24 lsrs r0, 24 strh r0, [r4] - ldr r2, =gUnknown_020375F0 + ldr r2, =gScriptResult ldr r0, =gSaveBlock1Ptr ldr r1, [r0] lsls r0, r5, 2 diff --git a/asm/shop.s b/asm/shop.s index e58c988b8d..0655f1851d 100644 --- a/asm/shop.s +++ b/asm/shop.s @@ -148,7 +148,7 @@ Task_ShopMenu: @ 80DFB88 cmp r2, r0 bne _080DFBB4 movs r0, 0x5 - bl audio_play + bl PlaySE adds r0, r4, 0 bl HandleShopMenuQuit b _080DFBC4 @@ -366,8 +366,8 @@ ReturnToShopMenuAfterExitingSellMenu: @ 80DFD44 CB2_BuyMenu: @ 80DFD64 push {lr} bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl do_scheduled_bg_tilemap_copies_to_vram bl UpdatePaletteFade pop {r0} @@ -378,8 +378,8 @@ CB2_BuyMenu: @ 80DFD64 @ void VBlankCB_BuyMenu() VBlankCB_BuyMenu: @ 80DFD80 push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -450,9 +450,9 @@ _080DFE20: bl CpuFastSet bl remove_some_task bl reset_temp_tile_data_buffers - bl ResetObjectPaletteAllocator + bl FreeAllSpritePalettes bl ResetPaletteFade - bl ResetAllObjectData + bl ResetSpriteData bl ResetTasks bl clear_scheduled_bg_copies_to_vram ldr r4, =gUnknown_02039F70 @@ -652,7 +652,7 @@ BuyMenuSetListEntry: @ 80E0000 bne _080E0020 adds r0, r4, 0 adds r1, r5, 0 - bl itemid_get_name + bl CopyItemName b _080E002C .pool _080E0020: @@ -683,7 +683,7 @@ BuyMenuPrintItemDescriptionAndShowItemIcon: @ 80E003C cmp r1, 0x1 beq _080E0054 movs r0, 0x5 - bl audio_play + bl PlaySE _080E0054: movs r0, 0x2 negs r0, r0 @@ -735,7 +735,7 @@ _080E008A: cmp r0, 0 bne _080E00D8 mov r0, r8 - bl itemid_get_description + bl ItemId_GetDescription adds r4, r0, 0 b _080E00EA .pool @@ -975,7 +975,7 @@ _080E02AE: cmp r2, 0x40 beq _080E0310 strb r2, [r4] - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -1027,16 +1027,16 @@ BuyMenuRemoveItemIcon: @ 80E031C ldr r0, =0x0000083e adds r4, r0 adds r0, r4, 0 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag adds r0, r4, 0 - bl FreeObjectPaletteByTag + bl FreeSpritePaletteByTag ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeTiles + bl DestroySprite movs r0, 0xFF strb r0, [r5] _080E0356: @@ -1732,7 +1732,7 @@ BuyMenuDrawFieldObjects: @ 80E08F0 mov r8, r0 ldr r1, =gUnknown_02037350 mov r10, r1 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites mov r9, r2 _080E090A: mov r3, r8 @@ -1791,7 +1791,7 @@ _080E090A: movs r0, 0x2 str r0, [sp] adds r0, r4, 0 - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy bl AddPseudoFieldObject lsls r0, 24 lsrs r4, r0, 24 @@ -1834,7 +1834,7 @@ _080E09C0: adds r1, r3 adds r1, r5 ldrb r1, [r1] - bl StartObjectImageAnim + bl StartSpriteAnim _080E09D8: adds r0, r7, 0x1 lsls r0, 24 @@ -1997,13 +1997,13 @@ _080E0AEA: .pool _080E0B24: movs r0, 0x5 - bl audio_play + bl PlaySE adds r0, r6, 0 bl ExitBuyMenu b _080E0C8E _080E0B32: movs r0, 0x5 - bl audio_play + bl PlaySE strh r5, [r4, 0xA] movs r0, 0x2 bl ClearWindowTilemap @@ -2073,9 +2073,9 @@ _080E0BD0: lsrs r5, r0, 16 ldr r1, =gStringVar1 adds r0, r5, 0 - bl itemid_get_name + bl CopyItemName adds r0, r5, 0 - bl itemid_get_pocket_number + bl ItemId_GetPocket lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 @@ -2288,7 +2288,7 @@ _080E0DF0: cmp r0, 0 beq _080E0E74 movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0x4 movs r1, 0 bl sub_8198070 @@ -2303,7 +2303,7 @@ _080E0DF0: bl PutWindowTilemap ldrh r0, [r5, 0xA] ldr r1, =gStringVar1 - bl itemid_get_name + bl CopyItemName ldr r0, =gStringVar2 movs r2, 0x2 ldrsh r1, [r5, r2] @@ -2331,7 +2331,7 @@ _080E0E74: cmp r0, 0 beq _080E0EA4 movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0x4 movs r1, 0 bl sub_8198070 @@ -2395,7 +2395,7 @@ BuyMenuTryMakePurchase: @ 80E0EDC bne _080E0F40 ldrh r0, [r4, 0xA] ldrh r1, [r4, 0x2] - bl bag_add_item + bl AddBagItem lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -2453,7 +2453,7 @@ BuyMenuSubtractMoney: @ 80E0F88 lsls r0, 24 lsrs r6, r0, 24 movs r0, 0x26 - bl sav12_xor_increment + bl IncrementGameStat ldr r5, =gSaveBlock1Ptr ldr r0, [r5] movs r4, 0x92 @@ -2467,7 +2467,7 @@ BuyMenuSubtractMoney: @ 80E0F88 ldr r1, [r1] bl subtract_money movs r0, 0x5F - bl audio_play + bl PlaySE ldr r0, [r5] adds r0, r4 bl DecryptMoney @@ -2520,7 +2520,7 @@ Task_ReturnToItemListAfterItemPurchase: @ 80E100C cmp r0, 0 beq _080E1072 movs r0, 0x5 - bl audio_play + bl PlaySE movs r1, 0xA ldrsh r0, [r5, r1] cmp r0, 0x4 @@ -2531,7 +2531,7 @@ Task_ReturnToItemListAfterItemPurchase: @ 80E100C ble _080E106C movs r0, 0xC movs r1, 0x1 - bl bag_add_item + bl AddBagItem lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -2564,7 +2564,7 @@ Task_ReturnToItemListAfterDecorationPurchase: @ 80E1078 cmp r0, 0 beq _080E1096 movs r0, 0x5 - bl audio_play + bl PlaySE adds r0, r4, 0 bl BuyMenuReturnToItemList _080E1096: diff --git a/asm/slot_machine.s b/asm/slot_machine.s index f7c85d0bf5..688cefb362 100644 --- a/asm/slot_machine.s +++ b/asm/slot_machine.s @@ -191,8 +191,8 @@ _0812A666: sub_812A670: @ 812A670 push {lr} bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 @@ -201,8 +201,8 @@ sub_812A670: @ 812A670 thumb_func_start sub_812A688 sub_812A688: @ 812A688 push {r4,lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer ldr r4, =gUnknown_0203AB34 ldr r0, [r4] @@ -502,7 +502,7 @@ sub_812A8C4: @ 812A8C4 strh r1, [r0] adds r0, 0x2 strh r1, [r0] - bl current_map_music_get + bl GetCurrentMapMusic ldr r1, [r5] adds r1, 0x60 strh r0, [r1] @@ -569,11 +569,11 @@ _0812A934: sub_812A9AC: @ 812A9AC push {lr} bl ResetPaletteFade - bl ResetAllObjectData - ldr r1, =gUnknown_02021B38 + bl ResetSpriteData + ldr r1, =gOamLimit movs r0, 0x80 strb r0, [r1] - bl ResetObjectPaletteAllocator + bl FreeAllSpritePalettes bl ResetTasks pop {r0} bx r0 @@ -902,7 +902,7 @@ _0812AC5A: movs r0, 0x9 strb r0, [r1] movs r0, 0x5F - bl audio_play + bl PlaySE b _0812ACE4 .pool _0812AC7C: @@ -921,7 +921,7 @@ _0812AC82: cmp r0, 0 beq _0812ACB2 movs r0, 0x5F - bl audio_play + bl PlaySE ldr r0, [r4] ldrb r0, [r0, 0x12] bl sub_812CE7C @@ -1149,7 +1149,7 @@ sub_812AE4C: @ 812AE4C cmp r0, 0 beq _0812AE78 movs r0, 0x18 - bl audio_play + bl PlaySE ldr r4, =gUnknown_0203AB34 ldr r0, [r4] ldrb r0, [r0, 0x18] @@ -1251,7 +1251,7 @@ _0812AF12: cmp r0, 0 beq _0812AF38 ldr r0, =0x00000185 - bl fanfare_play + bl PlayFanfare movs r0, 0x6 bl sub_812DEE4 b _0812AF62 @@ -1262,7 +1262,7 @@ _0812AF38: cmp r0, 0 beq _0812AF54 ldr r0, =0x00000185 - bl fanfare_play + bl PlayFanfare movs r0, 0x5 bl sub_812DEE4 b _0812AF62 @@ -1270,7 +1270,7 @@ _0812AF38: _0812AF54: movs r0, 0xC3 lsls r0, 1 - bl fanfare_play + bl PlayFanfare movs r0, 0x2 bl sub_812DEE4 _0812AF62: @@ -1387,7 +1387,7 @@ sub_812B01C: @ 812B01C cmp r0, 0 beq _0812B044 movs r0, 0x1C - bl sav12_xor_increment + bl IncrementGameStat _0812B044: ldr r2, [r4] ldrh r1, [r2, 0x8] @@ -2764,12 +2764,12 @@ sub_812BB68: @ 812BB68 negs r1, r1 cmp r0, r1 bne _0812BBBC - bl task_is_not_running_overworld_fanfare + bl IsFanfareTaskInactive lsls r0, 24 cmp r0, 0 beq _0812BB8E movs r0, 0x15 - bl audio_play + bl PlaySE _0812BB8E: ldr r0, =gUnknown_0203AB34 ldr r2, [r0] @@ -2796,7 +2796,7 @@ _0812BBA8: movs r0, 0x4 strh r0, [r4, 0xA] _0812BBBC: - bl task_is_not_running_overworld_fanfare + bl IsFanfareTaskInactive lsls r0, 24 cmp r0, 0 beq _0812BBF6 @@ -2807,7 +2807,7 @@ _0812BBBC: cmp r0, 0 beq _0812BBF6 movs r0, 0x15 - bl audio_play + bl PlaySE ldr r1, =gUnknown_0203AB34 ldr r2, [r1] ldrh r0, [r2, 0xE] @@ -5356,10 +5356,10 @@ _0812CEE4: sub_812CEF4: @ 812CEF4 push {r4,r5,lr} movs r4, 0 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites _0812CEFA: ldr r0, =sub_812D024 - bl obj_add_empty_with_callback + bl CreateInvisibleSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -5395,7 +5395,7 @@ sub_812CF34: @ 812CF34 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 movs r2, 0 movs r1, 0x1 @@ -5419,7 +5419,7 @@ sub_812CF6C: @ 812CF6C ldr r0, [r0] adds r3, r0, 0 adds r3, 0x44 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites _0812CF7A: adds r0, r3, r2 ldrb r1, [r0] @@ -5489,7 +5489,7 @@ sub_812CFEC: @ 812CFEC lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 movs r2, 0x30 ldrsh r0, [r1, r2] @@ -5835,7 +5835,7 @@ sub_812D264: @ 812D264 sub_812D28C: @ 812D28C push {r4,r5,lr} adds r4, r0, 0 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r0, 0xC ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -6187,9 +6187,9 @@ sub_812D51C: @ 812D51C movs r1, 0xA0 lsls r1, 3 strh r1, [r0, 0x10] - ldr r0, =gUnknown_02021BBC + ldr r0, =gSpriteCoordOffsetX strh r2, [r0] - ldr r0, =gUnknown_02021BBE + ldr r0, =gSpriteCoordOffsetY strh r2, [r0] movs r0, 0x14 movs r1, 0 @@ -6206,10 +6206,10 @@ sub_812D51C: @ 812D51C bl sub_812E70C bl sub_812E7CC bl sub_812B700 - bl sub_80A2F30 + bl StopMapMusic movs r0, 0xC4 lsls r0, 1 - bl current_map_music_set + bl PlayNewMapMusic pop {r0} bx r0 .pool @@ -6219,7 +6219,7 @@ sub_812D51C: @ 812D51C sub_812D594: @ 812D594 push {r4,r5,lr} adds r4, r0, 0 - ldr r1, =gUnknown_02021BBC + ldr r1, =gSpriteCoordOffsetX ldrh r0, [r1] subs r0, 0x8 strh r0, [r1] @@ -6350,12 +6350,12 @@ sub_812D63C: @ 812D63C lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 mov r2, sp adds r1, r2, r5 ldrb r1, [r1] - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent movs r1, 0x10 ldrsh r0, [r7, r1] movs r1, 0x80 @@ -6407,10 +6407,10 @@ sub_812D6EC: @ 812D6EC lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 movs r1, 0x3 - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent _0812D730: pop {r4} pop {r0} @@ -6589,7 +6589,7 @@ sub_812D870: @ 812D870 asrs r0, 16 cmp r0, 0x3B ble _0812D914 - bl sub_80A2F30 + bl StopMapMusic bl sub_812EA7C bl sub_812EBCC ldrh r0, [r4, 0x8] @@ -6608,12 +6608,12 @@ sub_812D870: @ 812D870 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 movs r1, 0x5 - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent ldr r0, =0x00000187 - bl fanfare_play + bl PlayFanfare b _0812D914 .pool _0812D8D0: @@ -6625,10 +6625,10 @@ _0812D8D0: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 movs r1, 0x4 - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent ldr r0, [r5] adds r0, 0x3F ldrb r1, [r0] @@ -6648,7 +6648,7 @@ _0812D8D0: _0812D90C: movs r0, 0xC3 lsls r0, 1 - bl fanfare_play + bl PlayFanfare _0812D914: pop {r4-r6} pop {r0} @@ -6688,7 +6688,7 @@ _0812D948: sub_812D950: @ 812D950 push {r4,r5,lr} adds r4, r0, 0 - ldr r1, =gUnknown_02021BBC + ldr r1, =gSpriteCoordOffsetX ldrh r0, [r1] subs r0, 0x8 strh r0, [r1] @@ -6738,7 +6738,7 @@ sub_812D9A4: @ 812D9A4 ldr r1, [r4] ldrb r0, [r1, 0x5] strb r0, [r1, 0xA] - ldr r0, =gUnknown_02021BBC + ldr r0, =gSpriteCoordOffsetX strh r6, [r0] movs r0, 0x14 movs r1, 0 @@ -6752,7 +6752,7 @@ sub_812D9A4: @ 812D9A4 ldr r0, [r4] adds r0, 0x60 ldrh r0, [r0] - bl current_map_music_set + bl PlayNewMapMusic ldr r0, [r4] ldrb r0, [r0, 0xA] cmp r0, 0 @@ -6848,7 +6848,7 @@ sub_812DA90: @ 812DA90 bl sub_812EA7C bl sub_812EBCC bl sub_812EC20 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites ldr r3, =gUnknown_0203AB34 ldr r0, [r3] adds r0, 0x4E @@ -6870,7 +6870,7 @@ sub_812DA90: @ 812DA90 lsls r0, 2 adds r0, r5 movs r1, 0x5 - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent ldrh r0, [r4, 0x8] adds r0, 0x1 movs r1, 0 @@ -6878,11 +6878,11 @@ sub_812DA90: @ 812DA90 movs r0, 0x4 strh r0, [r4, 0x10] strh r1, [r4, 0x12] - bl sub_80A2F30 + bl StopMapMusic ldr r0, =0x00000187 - bl fanfare_play + bl PlayFanfare movs r0, 0xB2 - bl audio_play + bl PlaySE pop {r4,r5} pop {r0} bx r0 @@ -6893,7 +6893,7 @@ sub_812DA90: @ 812DA90 sub_812DB04: @ 812DB04 push {r4,r5,lr} adds r4, r0, 0 - ldr r1, =gUnknown_02021BBE + ldr r1, =gSpriteCoordOffsetY ldrh r0, [r4, 0x10] strh r0, [r1] ldrh r1, [r4, 0x10] @@ -6928,7 +6928,7 @@ _0812DB3C: bl sub_812EC94 bl sub_812E5A8 bl sub_812EDC0 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, =gUnknown_0203AB34 ldr r0, [r0] adds r0, 0x4E @@ -6958,7 +6958,7 @@ _0812DB7A: sub_812DB8C: @ 812DB8C push {r4,lr} adds r4, r0, 0 - ldr r1, =gUnknown_02021BBE + ldr r1, =gSpriteCoordOffsetY movs r0, 0 strh r0, [r1] movs r0, 0x16 @@ -6982,7 +6982,7 @@ _0812DBB2: thumb_func_start sub_812DBBC sub_812DBBC: @ 812DBBC push {lr} - ldr r1, =gUnknown_02021BBC + ldr r1, =gSpriteCoordOffsetX movs r0, 0 strh r0, [r1] movs r0, 0x14 @@ -6992,7 +6992,7 @@ sub_812DBBC: @ 812DBBC ldr r0, [r0] adds r0, 0x60 ldrh r0, [r0] - bl current_map_music_set + bl PlayNewMapMusic bl sub_812E3E8 bl sub_812E8F8 bl sub_812E8C4 @@ -7543,9 +7543,9 @@ _0812E00E: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeTiles + bl DestroySprite movs r0, 0x40 strh r0, [r4] _0812E02E: @@ -7575,7 +7575,7 @@ sub_812E054: @ 812E054 movs r2, 0x4 adds r3, r0, 0 adds r3, 0x8 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites _0812E070: lsls r0, r2, 1 adds r1, r3, r0 @@ -7649,13 +7649,13 @@ _0812E0F0: asrs r1, r5, 16 movs r2, 0 movs r3, 0xE - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 ldrb r0, [r1, 0x5] movs r2, 0xC @@ -7734,12 +7734,12 @@ sub_812E154: @ 812E154 bl sub_812BC44 lsls r0, 24 lsrs r0, 24 - bl GetObjectTileRangeStartByTag + bl GetSpriteTileStartByTag adds r1, r5, 0 adds r1, 0x40 strh r0, [r1] adds r0, r5, 0 - bl sub_8008324 + bl SetSpriteSheetFrameTileNum pop {r4,r5} pop {r0} bx r0 @@ -7824,13 +7824,13 @@ sub_812E230: @ 812E230 adds r1, r5, 0 adds r2, r6, 0 movs r3, 0xD - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r2, r0 ldrb r1, [r2, 0x5] movs r0, 0xD @@ -7890,12 +7890,12 @@ _0812E2BC: adds r0, r3 lsrs r2, r0, 16 adds r0, r2, 0 - bl GetObjectTileRangeStartByTag + bl GetSpriteTileStartByTag adds r1, r4, 0 adds r1, 0x40 strh r0, [r1] adds r0, r4, 0 - bl sub_8008324 + bl SetSpriteSheetFrameTileNum _0812E2F6: pop {r4} pop {r0} @@ -7910,11 +7910,11 @@ sub_812E300: @ 812E300 movs r1, 0x58 movs r2, 0x48 movs r3, 0xF - bl AddObjectToFront + bl CreateSprite adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 @@ -7924,7 +7924,7 @@ sub_812E300: @ 812E300 orrs r1, r2 strb r1, [r0, 0x5] ldr r1, =gUnknown_085A7FC0 - bl SetSpriteOamTables_NoPriorityFromTable + bl SetSubspriteTables pop {r0} bx r0 .pool @@ -7979,10 +7979,10 @@ _0812E350: mov r0, sp movs r2, 0x50 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 @@ -8020,9 +8020,9 @@ sub_812E3E8: @ 812E3E8 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r4, =gUnknown_0203AAE4 ldr r0, [r4] cmp r0, 0 @@ -8121,13 +8121,13 @@ _0812E490: lsls r1, 1 movs r2, 0x34 movs r3, 0x7 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites mov r9, r5 adds r2, r0, r5 ldrb r1, [r2, 0x5] @@ -8147,7 +8147,7 @@ _0812E490: strb r0, [r1] ldr r1, =gUnknown_085A7FE0 adds r0, r2, 0 - bl SetSpriteOamTables_NoPriorityFromTable + bl SetSubspriteTables ldr r5, =gUnknown_0203AB34 ldr r0, [r5] adds r0, 0x49 @@ -8182,7 +8182,7 @@ _0812E510: lsls r1, 1 movs r2, 0x54 movs r3, 0x7 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 4 @@ -8203,7 +8203,7 @@ _0812E510: strb r0, [r1] ldr r1, =gUnknown_085A7FF4 adds r0, r2, 0 - bl SetSpriteOamTables_NoPriorityFromTable + bl SetSubspriteTables ldr r0, [r5] adds r0, 0x4A strb r4, [r0] @@ -8247,7 +8247,7 @@ _0812E5BC: ldm r0!, {r3-r5} stm r1!, {r3-r5} str r2, [sp, 0xC] - ldr r0, =gUnknown_02021BBC + ldr r0, =gSpriteCoordOffsetX ldrh r0, [r0] movs r1, 0xA8 subs r1, r0 @@ -8256,14 +8256,14 @@ _0812E5BC: mov r0, sp movs r2, 0x50 movs r3, 0x7 - bl AddObjectToFront + bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 ldrb r2, [r0, 0x5] movs r1, 0xD @@ -8279,7 +8279,7 @@ _0812E5BC: orrs r1, r2 strb r1, [r3] ldr r1, =gUnknown_085A8010 - bl SetSpriteOamTables_NoPriorityFromTable + bl SetSubspriteTables ldr r0, =gUnknown_0203AB34 ldr r0, [r0] adds r0, 0x42 @@ -8302,13 +8302,13 @@ _0812E656: lsls r1, 1 movs r2, 0 movs r3, 0xA - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r3, r0, 4 adds r3, r0 lsls r3, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r3, r1 ldrb r2, [r3, 0x5] movs r6, 0xD @@ -8375,7 +8375,7 @@ sub_812E6C4: @ 812E6C4 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent pop {r4} pop {r0} bx r0 @@ -8394,14 +8394,14 @@ sub_812E70C: @ 812E70C ldr r0, =gUnknown_085A7DA0 movs r2, 0x64 movs r3, 0x9 - bl AddObjectToFront + bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 - ldr r7, =gUnknown_02020630 + ldr r7, =gSprites adds r2, r0, r7 adds r1, r2, 0 adds r1, 0x3E @@ -8425,7 +8425,7 @@ sub_812E70C: @ 812E70C mov r9, r0 adds r0, r2, 0 mov r1, r9 - bl SetSpriteOamTables_NoPriorityFromTable + bl SetSubspriteTables ldr r6, =gUnknown_0203AB34 ldr r0, [r6] adds r0, 0x4E @@ -8435,7 +8435,7 @@ sub_812E70C: @ 812E70C ldr r0, =gUnknown_085A7DA0 movs r2, 0x68 movs r3, 0x4 - bl AddObjectToFront + bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 @@ -8456,7 +8456,7 @@ sub_812E70C: @ 812E70C strb r5, [r2, 0x5] adds r0, r2, 0 mov r1, r9 - bl SetSpriteOamTables_NoPriorityFromTable + bl SetSubspriteTables ldr r0, [r6] adds r0, 0x4F strb r4, [r0] @@ -8478,14 +8478,14 @@ sub_812E7CC: @ 812E7CC lsls r1, 1 movs r2, 0x4C movs r3, 0xB - bl AddObjectToFront + bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 adds r3, r0, 0 adds r3, 0x3E @@ -8501,7 +8501,7 @@ sub_812E7CC: @ 812E7CC orrs r1, r2 strb r1, [r0, 0x5] ldr r1, =gUnknown_085A803C - bl SetSpriteOamTables_NoPriorityFromTable + bl SetSubspriteTables ldr r0, =gUnknown_0203AB34 ldr r0, [r0] adds r0, 0x40 @@ -8522,9 +8522,9 @@ sub_812E82C: @ 812E82C lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeTiles + bl DestroySprite movs r4, 0 _0812E846: ldr r0, =gUnknown_0203AB34 @@ -8535,9 +8535,9 @@ _0812E846: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 @@ -8569,9 +8569,9 @@ _0812E88A: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 @@ -8596,9 +8596,9 @@ _0812E8C8: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 @@ -8620,9 +8620,9 @@ sub_812E8F8: @ 812E8F8 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r4, =gUnknown_0203AAF0 ldr r0, [r4] cmp r0, 0 @@ -8649,13 +8649,13 @@ sub_812E934: @ 812E934 movs r1, 0x98 movs r2, 0x20 movs r3, 0x5 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites mov r9, r2 adds r3, r1, r2 ldrb r2, [r3, 0x5] @@ -8691,7 +8691,7 @@ sub_812E934: @ 812E934 movs r1, 0xB8 movs r2, 0x20 movs r3, 0x5 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -8779,7 +8779,7 @@ sub_812EA44: @ 812EA44 push {r4,lr} lsls r0, 16 lsrs r0, 16 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldr r1, =gUnknown_0203AB34 ldr r3, [r1] adds r1, r3, 0 @@ -8816,9 +8816,9 @@ _0812EA80: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 @@ -8841,10 +8841,10 @@ sub_812EAB0: @ 812EAB0 movs r1, 0x48 movs r2, 0x50 movs r3, 0x3 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites mov r9, r1 lsls r2, r0, 4 adds r2, r0 @@ -8874,7 +8874,7 @@ sub_812EAB0: @ 812EAB0 movs r1, 0x68 movs r2, 0x50 movs r3, 0x3 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -8922,7 +8922,7 @@ sub_812EB48: @ 812EB48 cmp r0, 0 bgt _0812EB9A movs r0, 0x7 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 ldr r2, =0x01030000 @@ -8952,7 +8952,7 @@ _0812EB9A: thumb_func_start sub_812EBAC sub_812EBAC: @ 812EBAC - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r1, =gUnknown_0203AB34 ldr r1, [r1] adds r1, 0x52 @@ -8970,7 +8970,7 @@ sub_812EBAC: @ 812EBAC sub_812EBCC: @ 812EBCC push {r4,lr} movs r0, 0x7 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 ldr r1, =0x01030000 @@ -8990,9 +8990,9 @@ _0812EBEA: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 @@ -9011,10 +9011,10 @@ sub_812EC20: @ 812EC20 movs r1, 0xA8 movs r2, 0x50 movs r3, 0x6 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -9037,7 +9037,7 @@ sub_812EC20: @ 812EC20 thumb_func_start sub_812EC64 sub_812EC64: @ 812EC64 - ldr r1, =gUnknown_02021BBE + ldr r1, =gSpriteCoordOffsetY ldrh r1, [r1] strh r1, [r0, 0x26] bx lr @@ -9054,9 +9054,9 @@ sub_812EC70: @ 812EC70 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeTiles + bl DestroySprite pop {r0} bx r0 .pool @@ -9072,7 +9072,7 @@ sub_812EC94: @ 812EC94 bl memcpy movs r4, 0 _0812ECA4: - ldr r0, =gUnknown_02021BBC + ldr r0, =gSpriteCoordOffsetX ldrh r0, [r0] movs r1, 0x50 subs r1, r0 @@ -9081,13 +9081,13 @@ _0812ECA4: ldr r0, =gUnknown_085A7E18 movs r2, 0x44 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r3, r0, 4 adds r3, r0 lsls r3, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r3, r1 ldrb r2, [r3, 0x5] movs r5, 0xD @@ -9196,9 +9196,9 @@ _0812ED90: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 - bl RemoveObjectAndFreeTiles + bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 @@ -9217,14 +9217,14 @@ sub_812EDC0: @ 812EDC0 movs r1, 0xA8 movs r2, 0x3C movs r3, 0x8 - bl AddObjectToFront + bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 ldrb r2, [r0, 0x5] movs r1, 0xD @@ -9237,7 +9237,7 @@ sub_812EDC0: @ 812EDC0 movs r2, 0x3 orrs r1, r2 strb r1, [r0, 0x1] - bl obj_alloc_rotscale_entry + bl InitSpriteAffineAnim ldr r0, =gUnknown_0203AB34 ldr r0, [r0] adds r0, 0x43 @@ -9330,7 +9330,7 @@ _0812EE90: thumb_func_start sub_812EEA8 sub_812EEA8: @ 812EEA8 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, =gUnknown_0203AB34 ldr r0, [r0] adds r0, 0x43 @@ -9356,14 +9356,14 @@ sub_812EECC: @ 812EECC lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite pop {r4} pop {r0} bx r0 @@ -9382,14 +9382,14 @@ sub_812EF00: @ 812EF00 asrs r2, 16 adds r1, r3, 0 movs r3, 0xC - bl AddObjectToFront + bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 ldrb r2, [r0, 0x5] movs r1, 0xD @@ -9402,7 +9402,7 @@ sub_812EF00: @ 812EF00 movs r2, 0x3 orrs r1, r2 strb r1, [r0, 0x1] - bl obj_alloc_rotscale_entry + bl InitSpriteAffineAnim adds r0, r4, 0 pop {r4} pop {r1} @@ -9435,14 +9435,14 @@ sub_812EF6C: @ 812EF6C lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite pop {r4} pop {r0} bx r0 @@ -9518,14 +9518,14 @@ sub_812EFDC: @ 812EFDC asrs r2, 16 mov r0, sp movs r3, 0x10 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 adds r7, r0, 0 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r2, r0, r1 ldrb r0, [r2, 0x5] movs r1, 0xC @@ -9543,7 +9543,7 @@ sub_812EFDC: @ 812EFDC cmp r1, 0 beq _0812F056 adds r0, r2, 0 - bl SetSpriteOamTables_NoPriorityFromTable + bl SetSubspriteTables _0812F056: adds r0, r7, 0 add sp, 0x18 @@ -9824,7 +9824,7 @@ _0812F250: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] @@ -10059,7 +10059,7 @@ _0812F3C6: strb r0, [r2] adds r0, r4, 0 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim ldrh r0, [r4, 0x30] lsls r1, r0, 4 orrs r1, r0 @@ -10108,7 +10108,7 @@ _0812F42C: strb r0, [r4, 0x1] adds r0, r4, 0 movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim _0812F468: pop {r4} pop {r0} @@ -10128,7 +10128,7 @@ sub_812F470: @ 812F470 adds r0, r1 ldr r4, [r0] movs r0, 0x6 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag adds r1, r0, 0 lsls r1, 24 lsrs r1, 4 @@ -10161,7 +10161,7 @@ _0812F4C0: adds r0, r1 ldr r4, [r0] movs r0, 0x6 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag adds r1, r0, 0 lsls r1, 24 lsrs r1, 4 @@ -10185,7 +10185,7 @@ _0812F4C0: _0812F4FC: adds r0, r5, 0 movs r1, 0x1 - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent movs r0, 0 strh r0, [r5, 0x3C] pop {r4,r5} @@ -10444,7 +10444,7 @@ _0812F6E0: ldrsh r0, [r0, r1] cmp r0, 0 beq _0812F76C - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy movs r4, 0 str r4, [sp] movs r0, 0x5 @@ -10540,7 +10540,7 @@ sub_812F794: @ 812F794 ldr r0, =gUnknown_085A8520 ldr r4, [r0] movs r0, 0x6 - bl IndexOfObjectPaletteTag + bl IndexOfSpritePaletteTag adds r1, r0, 0 lsls r1, 24 lsrs r1, 4 @@ -10647,9 +10647,9 @@ _0812F822: adds r1, r2 str r1, [r0] adds r0, r3, 0 - bl LoadObjectPics + bl LoadSpriteSheets ldr r0, =gUnknown_085A8544 - bl LoadTaggedObjectPalettes + bl LoadSpritePalettes pop {r4-r6} pop {r0} bx r0 @@ -10698,7 +10698,7 @@ _0812F8C6: strh r1, [r0, 0x4] movs r1, 0x11 strh r1, [r0, 0x6] - bl LoadObjectPic + bl LoadSpriteSheet pop {r4-r6} pop {r0} bx r0 diff --git a/asm/sound.s b/asm/sound.s deleted file mode 100644 index 05331f6981..0000000000 --- a/asm/sound.s +++ /dev/null @@ -1,1399 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start InitMapMusic -InitMapMusic: @ 80A2DD4 - push {lr} - ldr r1, =gUnknown_03005DF8 - movs r0, 0 - strb r0, [r1] - bl map_music_set_to_zero - pop {r0} - bx r0 - .pool - thumb_func_end InitMapMusic - - thumb_func_start MapMusicMain -MapMusicMain: @ 80A2DE8 - push {r4,r5,lr} - ldr r0, =gUnknown_03000F4C - ldrb r1, [r0] - adds r2, r0, 0 - cmp r1, 0x7 - bhi _080A2ECA - lsls r0, r1, 2 - ldr r1, =_080A2E08 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080A2E08: - .4byte _080A2ECA - .4byte _080A2E28 - .4byte _080A2ECA - .4byte _080A2ECA - .4byte _080A2ECA - .4byte _080A2E3C - .4byte _080A2E5C - .4byte _080A2E98 -_080A2E28: - movs r0, 0x2 - strb r0, [r2] - ldr r0, =gUnknown_03000F48 - ldrh r0, [r0] - bl song_play_for_text - b _080A2ECA - .pool -_080A2E3C: - bl sub_80A3258 - lsls r0, 24 - cmp r0, 0 - beq _080A2ECA - ldr r0, =gUnknown_03000F4A - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_03000F4C - strb r1, [r0] - b _080A2ECA - .pool -_080A2E5C: - bl sub_80A3258 - lsls r0, 24 - cmp r0, 0 - beq _080A2ECA - bl task_is_not_running_overworld_fanfare - lsls r0, 24 - cmp r0, 0 - beq _080A2ECA - ldr r2, =gUnknown_03000F48 - ldr r1, =gUnknown_03000F4A - ldrh r0, [r1] - strh r0, [r2] - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_03000F4C - movs r0, 0x2 - strb r0, [r1] - ldrh r0, [r2] - bl song_play_for_text - b _080A2ECA - .pool -_080A2E98: - bl sub_80A3258 - lsls r0, 24 - cmp r0, 0 - beq _080A2ECA - bl task_is_not_running_overworld_fanfare - lsls r0, 24 - cmp r0, 0 - beq _080A2ECA - ldr r4, =gUnknown_03000F4A - ldrh r0, [r4] - ldr r5, =gUnknown_03000F4D - ldrb r1, [r5] - bl sub_80A3194 - ldr r1, =gUnknown_03000F48 - ldrh r0, [r4] - strh r0, [r1] - movs r2, 0 - strh r2, [r4] - ldr r1, =gUnknown_03000F4C - movs r0, 0x2 - strb r0, [r1] - strb r2, [r5] -_080A2ECA: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end MapMusicMain - - thumb_func_start map_music_set_to_zero -map_music_set_to_zero: @ 80A2EE0 - ldr r0, =gUnknown_03000F48 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_03000F4A - strh r1, [r0] - ldr r0, =gUnknown_03000F4C - strb r1, [r0] - ldr r0, =gUnknown_03000F4D - strb r1, [r0] - bx lr - .pool - thumb_func_end map_music_set_to_zero - - thumb_func_start current_map_music_get -current_map_music_get: @ 80A2F04 - ldr r0, =gUnknown_03000F48 - ldrh r0, [r0] - bx lr - .pool - thumb_func_end current_map_music_get - - thumb_func_start current_map_music_set -current_map_music_set: @ 80A2F10 - ldr r1, =gUnknown_03000F48 - strh r0, [r1] - ldr r1, =gUnknown_03000F4A - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_03000F4C - movs r0, 0x1 - strb r0, [r1] - bx lr - .pool - thumb_func_end current_map_music_set - - thumb_func_start sub_80A2F30 -sub_80A2F30: @ 80A2F30 - ldr r0, =gUnknown_03000F48 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_03000F4A - strh r1, [r0] - ldr r1, =gUnknown_03000F4C - movs r0, 0x1 - strb r0, [r1] - bx lr - .pool - thumb_func_end sub_80A2F30 - - thumb_func_start sub_80A2F50 -sub_80A2F50: @ 80A2F50 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_80A303C - lsls r0, 24 - cmp r0, 0 - beq _080A2F66 - adds r0, r4, 0 - bl play_sound_effect -_080A2F66: - ldr r0, =gUnknown_03000F48 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_03000F4A - strh r1, [r0] - ldr r1, =gUnknown_03000F4C - movs r0, 0x5 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A2F50 - - thumb_func_start sub_80A2F88 -sub_80A2F88: @ 80A2F88 - push {r4,lr} - adds r4, r0, 0 - adds r0, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r0, 24 - lsrs r0, 24 - bl sub_80A2F50 - ldr r1, =gUnknown_03000F48 - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_03000F4A - strh r4, [r0] - ldr r1, =gUnknown_03000F4C - movs r0, 0x6 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A2F88 - - thumb_func_start sub_80A2FBC -sub_80A2FBC: @ 80A2FBC - push {r4,r5,lr} - adds r4, r0, 0 - adds r0, r1, 0 - adds r5, r2, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r0, 24 - lsrs r0, 24 - lsls r5, 24 - lsrs r5, 24 - bl sub_80A2F50 - ldr r1, =gUnknown_03000F48 - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_03000F4A - strh r4, [r0] - ldr r1, =gUnknown_03000F4C - movs r0, 0x7 - strb r0, [r1] - ldr r0, =gUnknown_03000F4D - strb r5, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A2FBC - - thumb_func_start sub_80A3000 -sub_80A3000: @ 80A3000 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_80A3194 - ldr r0, =gUnknown_03000F48 - strh r4, [r0] - ldr r0, =gUnknown_03000F4A - movs r2, 0 - strh r2, [r0] - ldr r1, =gUnknown_03000F4C - movs r0, 0x2 - strb r0, [r1] - ldr r0, =gUnknown_03000F4D - strb r2, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A3000 - - thumb_func_start sub_80A303C -sub_80A303C: @ 80A303C - push {lr} - ldr r0, =gUnknown_03000F4C - ldrb r0, [r0] - cmp r0, 0x6 - beq _080A3058 - cmp r0, 0x5 - beq _080A3058 - cmp r0, 0x7 - beq _080A3058 - movs r0, 0x1 - b _080A305A - .pool -_080A3058: - movs r0, 0 -_080A305A: - pop {r1} - bx r1 - thumb_func_end sub_80A303C - - thumb_func_start pause_music_for_sound_maybe -@ void pause_music_for_sound_maybe(u8 a1) -pause_music_for_sound_maybe: @ 80A3060 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gMPlay_BGM - bl m4aMPlayStop - ldr r0, =gUnknown_085248BC - lsls r4, 2 - adds r4, r0 - ldrh r0, [r4] - ldr r2, =gUnknown_03000F4E - ldrh r1, [r4, 0x2] - strh r1, [r2] - bl m4aSongNumStart - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pause_music_for_sound_maybe - - thumb_func_start ducking_tick -ducking_tick: @ 80A3094 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r2, =gUnknown_03000F4E - ldrh r0, [r2] - cmp r0, 0 - beq _080A30B0 - subs r0, 0x1 - strh r0, [r2] - movs r0, 0 - b _080A30C8 - .pool -_080A30B0: - cmp r1, 0 - bne _080A30C0 - ldr r0, =gMPlay_BGM - bl m4aMPlayContinue - b _080A30C6 - .pool -_080A30C0: - movs r0, 0 - bl m4aSongNumStart -_080A30C6: - movs r0, 0x1 -_080A30C8: - pop {r1} - bx r1 - thumb_func_end ducking_tick - - thumb_func_start sub_80A30CC -sub_80A30CC: @ 80A30CC - push {lr} - lsls r0, 24 - ldr r1, =gUnknown_085248BC - lsrs r0, 22 - adds r0, r1 - ldrh r0, [r0] - bl m4aSongNumStop - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A30CC - - thumb_func_start fanfare_play -@ void fanfare_play(u16 a1) -fanfare_play: @ 80A30E4 - push {lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r1, 0 - ldr r2, =gUnknown_085248BC -_080A30EE: - ldrh r0, [r2] - cmp r0, r3 - bne _080A3108 - lsls r0, r1, 24 - lsrs r0, 24 - bl pause_music_for_sound_maybe - bl task_add_50_overworld_fanfare_if_not_running - b _080A311A - .pool -_080A3108: - adds r2, 0x4 - adds r1, 0x1 - cmp r1, 0x11 - bls _080A30EE - movs r0, 0 - bl pause_music_for_sound_maybe - bl task_add_50_overworld_fanfare_if_not_running -_080A311A: - pop {r0} - bx r0 - thumb_func_end fanfare_play - - thumb_func_start task_is_not_running_overworld_fanfare -task_is_not_running_overworld_fanfare: @ 80A3120 - push {lr} - ldr r0, =task50_overworld_fanfare - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A3138 - movs r0, 0x1 - b _080A313A - .pool -_080A3138: - movs r0, 0 -_080A313A: - pop {r1} - bx r1 - thumb_func_end task_is_not_running_overworld_fanfare - - thumb_func_start task50_overworld_fanfare -task50_overworld_fanfare: @ 80A3140 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_03000F4E - ldrh r0, [r1] - cmp r0, 0 - beq _080A3158 - subs r0, 0x1 - strh r0, [r1] - b _080A3164 - .pool -_080A3158: - ldr r0, =gMPlay_BGM - bl m4aMPlayContinue - adds r0, r4, 0 - bl DestroyTask -_080A3164: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end task50_overworld_fanfare - - thumb_func_start task_add_50_overworld_fanfare_if_not_running -@ void task_add_50_overworld_fanfare_if_not_running() -task_add_50_overworld_fanfare_if_not_running: @ 80A3170 - push {r4,lr} - ldr r4, =task50_overworld_fanfare - adds r0, r4, 0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A318A - adds r0, r4, 0 - movs r1, 0x50 - bl CreateTask -_080A318A: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end task_add_50_overworld_fanfare_if_not_running - - thumb_func_start sub_80A3194 -sub_80A3194: @ 80A3194 - push {r4-r7,lr} - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 24 - lsrs r7, r1, 24 - ldr r0, =gUnknown_03005DF8 - ldrb r0, [r0] - cmp r0, 0 - beq _080A31A8 - movs r5, 0 -_080A31A8: - ldr r6, =0x0000ffff - cmp r5, r6 - bne _080A31B0 - movs r5, 0 -_080A31B0: - adds r0, r5, 0 - bl m4aSongNumStart - ldr r4, =gMPlay_BGM - adds r0, r4, 0 - bl m4aMPlayImmInit - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0 - bl m4aMPlayVolumeControl - adds r0, r5, 0 - bl m4aSongNumStop - adds r0, r4, 0 - adds r1, r7, 0 - bl m4aMPlayFadeIn - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A3194 - - thumb_func_start sub_80A31E8 -sub_80A31E8: @ 80A31E8 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, =gMPlay_BGM - bl m4aMPlayFadeOutTemporarily - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A31E8 - - thumb_func_start sub_80A3200 -sub_80A3200: @ 80A3200 - push {lr} - ldr r0, =gMPlay_BGM - ldr r1, [r0, 0x4] - cmp r1, 0 - blt _080A3220 - ldr r0, =0x0000ffff - ands r1, r0 - cmp r1, 0 - beq _080A3220 - movs r0, 0 - b _080A3222 - .pool -_080A3220: - movs r0, 0x1 -_080A3222: - pop {r1} - bx r1 - thumb_func_end sub_80A3200 - - thumb_func_start sub_80A3228 -sub_80A3228: @ 80A3228 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, =gMPlay_BGM - bl m4aMPlayFadeIn - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A3228 - - thumb_func_start play_sound_effect -@ void play_sound_effect(u8 a1) -play_sound_effect: @ 80A3240 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, =gMPlay_BGM - bl m4aMPlayFadeOut - pop {r0} - bx r0 - .pool - thumb_func_end play_sound_effect - - thumb_func_start sub_80A3258 -sub_80A3258: @ 80A3258 - push {lr} - ldr r0, =gMPlay_BGM - ldrh r0, [r0, 0x4] - cmp r0, 0 - beq _080A326C - movs r0, 0 - b _080A326E - .pool -_080A326C: - movs r0, 0x1 -_080A326E: - pop {r1} - bx r1 - thumb_func_end sub_80A3258 - - thumb_func_start cry_related -cry_related: @ 80A3274 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r4, r1, 0 - lsls r5, 16 - lsrs r5, 16 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gMPlay_BGM - ldr r1, =0x0000ffff - movs r2, 0x55 - bl m4aMPlayVolumeControl - lsls r4, 24 - asrs r4, 24 - movs r0, 0 - str r0, [sp] - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x78 - movs r3, 0xA - bl sub_80A344C - ldr r1, =gUnknown_020383EC - movs r0, 0x2 - strb r0, [r1] - bl sub_80A3754 - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end cry_related - - thumb_func_start sub_80A32C0 -sub_80A32C0: @ 80A32C0 - push {r4,lr} - sub sp, 0x4 - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r1, 24 - asrs r1, 24 - lsls r2, 24 - asrs r2, 24 - movs r4, 0 - str r4, [sp] - bl sub_80A344C - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A32C0 - - thumb_func_start sub_80A32E4 -sub_80A32E4: @ 80A32E4 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r4, r2, 24 - cmp r4, 0x1 - bne _080A330A - lsls r1, r5, 24 - asrs r1, 24 - str r4, [sp] - adds r0, r6, 0 - movs r2, 0x78 - movs r3, 0xA - bl sub_80A344C - b _080A332E -_080A330A: - ldr r0, =gMPlay_BGM - ldr r1, =0x0000ffff - movs r2, 0x55 - bl m4aMPlayVolumeControl - lsls r1, r5, 24 - asrs r1, 24 - str r4, [sp] - adds r0, r6, 0 - movs r2, 0x78 - movs r3, 0xA - bl sub_80A344C - ldr r1, =gUnknown_020383EC - movs r0, 0x2 - strb r0, [r1] - bl sub_80A3754 -_080A332E: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A32E4 - - thumb_func_start sub_80A3344 -sub_80A3344: @ 80A3344 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 16 - lsrs r0, 16 - adds r6, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r5, r1, 0 - lsls r2, 24 - lsrs r2, 24 - adds r4, r2, 0 - cmp r2, 0x1 - bne _080A336E - lsls r1, 24 - asrs r1, 24 - str r2, [sp] - movs r2, 0x78 - movs r3, 0xA - bl sub_80A344C - b _080A3394 -_080A336E: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080A3384 - ldr r0, =gMPlay_BGM - ldr r1, =0x0000ffff - movs r2, 0x55 - bl m4aMPlayVolumeControl -_080A3384: - lsls r1, r5, 24 - asrs r1, 24 - str r4, [sp] - adds r0, r6, 0 - movs r2, 0x78 - movs r3, 0xA - bl sub_80A344C -_080A3394: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A3344 - - thumb_func_start play_cry_maybe -play_cry_maybe: @ 80A33A8 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r4, r2, 24 - cmp r4, 0x1 - bne _080A33CE - lsls r1, r5, 24 - asrs r1, 24 - str r4, [sp] - adds r0, r6, 0 - movs r2, 0x78 - movs r3, 0xA - bl sub_80A344C - b _080A33EE -_080A33CE: - ldr r0, =gMPlay_BGM - ldr r1, =0x0000ffff - movs r2, 0x55 - bl m4aMPlayVolumeControl - lsls r1, r5, 24 - asrs r1, 24 - str r4, [sp] - adds r0, r6, 0 - movs r2, 0x78 - movs r3, 0xA - bl sub_80A344C - ldr r1, =gUnknown_020383EC - movs r0, 0x2 - strb r0, [r1] -_080A33EE: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end play_cry_maybe - - thumb_func_start sub_80A3404 -sub_80A3404: @ 80A3404 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r4, r1, 0 - lsls r5, 16 - lsrs r5, 16 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gMPlay_BGM - ldr r1, =0x0000ffff - movs r2, 0x55 - bl m4aMPlayVolumeControl - str r4, [sp] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x78 - movs r3, 0xA - bl sub_80A344C - ldr r1, =gUnknown_020383EC - movs r0, 0x2 - strb r0, [r1] - bl sub_80A3754 - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A3404 - - thumb_func_start sub_80A344C -sub_80A344C: @ 80A344C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r4, [sp, 0x24] - lsls r0, 16 - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp] - lsls r4, 24 - lsrs r1, r4, 24 - ldr r3, =0xffff0000 - adds r0, r3 - lsrs r7, r0, 16 - movs r6, 0x8C - movs r0, 0 - mov r9, r0 - movs r5, 0 - movs r4, 0xF0 - lsls r4, 6 - mov r8, r5 - cmp r1, 0xC - bhi _080A3562 - lsls r0, r1, 2 - ldr r1, =_080A349C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080A349C: - .4byte _080A3562 - .4byte _080A34D0 - .4byte _080A34D6 - .4byte _080A34E4 - .4byte _080A34F8 - .4byte _080A3510 - .4byte _080A351C - .4byte _080A352C - .4byte _080A3536 - .4byte _080A3540 - .4byte _080A3550 - .4byte _080A3560 - .4byte _080A355C -_080A34D0: - movs r6, 0x14 - movs r5, 0xE1 - b _080A3562 -_080A34D6: - movs r5, 0xE1 - ldr r4, =0x00003cf0 - movs r1, 0x14 - b _080A3504 - .pool -_080A34E4: - movs r6, 0x32 - movs r5, 0xC8 - ldr r4, =0x00003db8 - movs r3, 0x14 - mov r8, r3 - movs r2, 0x5A - b _080A3562 - .pool -_080A34F8: - movs r6, 0x19 - movs r0, 0x1 - mov r9, r0 - movs r5, 0x64 - ldr r4, =0x00003cf0 - movs r1, 0xC0 -_080A3504: - mov r8, r1 - movs r2, 0x5A - b _080A3562 - .pool -_080A3510: - movs r5, 0xC8 - ldr r4, =0x00003868 - b _080A3562 - .pool -_080A351C: - movs r5, 0xDC - ldr r4, =0x00003cc3 - movs r3, 0xC0 - mov r8, r3 - movs r2, 0x46 - b _080A3562 - .pool -_080A352C: - movs r6, 0xA - movs r5, 0x64 - movs r4, 0xE8 - lsls r4, 6 - b _080A3562 -_080A3536: - movs r6, 0x3C - movs r5, 0xE1 - movs r4, 0xF4 - lsls r4, 6 - b _080A3562 -_080A3540: - movs r6, 0xF - movs r0, 0x1 - mov r9, r0 - movs r5, 0x7D - ldr r4, =0x00003b60 - b _080A3562 - .pool -_080A3550: - movs r6, 0x64 - movs r5, 0xE1 - ldr r4, =0x00003b60 - b _080A3562 - .pool -_080A355C: - movs r6, 0x14 - movs r5, 0xE1 -_080A3560: - ldr r4, =0x00003a98 -_080A3562: - adds r0, r2, 0 - bl SetPokemonCryVolume - mov r1, r10 - lsls r0, r1, 24 - asrs r0, 24 - bl SetPokemonCryPanpot - adds r0, r4, 0 - bl SetPokemonCryPitch - adds r0, r6, 0 - bl SetPokemonCryLength - movs r0, 0 - bl SetPokemonCryProgress - adds r0, r5, 0 - bl SetPokemonCryRelease - mov r3, r8 - lsls r0, r3, 24 - asrs r0, 24 - bl SetPokemonCryChorus - ldr r0, [sp] - bl SetPokemonCryPriority - adds r0, r7, 0 - bl speciesid_conv - adds r7, r0, 0 - movs r1, 0x7F - ands r1, r7 - lsrs r0, r7, 7 - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - cmp r0, 0x1 - beq _080A35F0 - cmp r0, 0x1 - bgt _080A35C0 - cmp r0, 0 - beq _080A35CA - b _080A365E - .pool -_080A35C0: - cmp r2, 0x2 - beq _080A3614 - cmp r2, 0x3 - beq _080A3638 - b _080A365E -_080A35CA: - mov r0, r9 - cmp r0, 0 - beq _080A35E0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_0869EF24 - b _080A3654 - .pool -_080A35E0: - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_0869DCF4 - b _080A3654 - .pool -_080A35F0: - mov r3, r9 - cmp r3, 0 - beq _080A3604 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_0869F524 - b _080A3654 - .pool -_080A3604: - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_0869E2F4 - b _080A3654 - .pool -_080A3614: - mov r0, r9 - cmp r0, 0 - beq _080A3628 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_0869FB24 - b _080A3654 - .pool -_080A3628: - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_0869E8F4 - b _080A3654 - .pool -_080A3638: - mov r3, r9 - cmp r3, 0 - beq _080A364C - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_086A0124 - b _080A3654 - .pool -_080A364C: - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_0869EEF4 -_080A3654: - adds r0, r1 - bl SetPokemonCryTone - ldr r1, =gUnknown_020383E8 - str r0, [r1] -_080A365E: - 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_80A344C - - thumb_func_start sub_80A3678 -sub_80A3678: @ 80A3678 - push {lr} - ldr r0, =sub_80A370C - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A3694 - bl ClearPokemonCrySongs - movs r0, 0x1 - b _080A3696 - .pool -_080A3694: - movs r0, 0 -_080A3696: - pop {r1} - bx r1 - thumb_func_end sub_80A3678 - - thumb_func_start sub_80A369C -sub_80A369C: @ 80A369C - push {lr} - ldr r0, =gUnknown_020383E8 - ldr r0, [r0] - bl m4aMPlayStop - bl ClearPokemonCrySongs - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A369C - - thumb_func_start sub_80A36B4 -sub_80A36B4: @ 80A36B4 - push {lr} - ldr r0, =gUnknown_020383E8 - ldr r0, [r0] - bl m4aMPlayStop - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A36B4 - - thumb_func_start sub_80A36C8 -sub_80A36C8: @ 80A36C8 - push {lr} - ldr r0, =gUnknown_020383E8 - ldr r0, [r0] - bl IsPokemonCryPlaying - cmp r0, 0 - bne _080A36E4 - bl ClearPokemonCrySongs - movs r0, 0 - b _080A36E6 - .pool -_080A36E4: - movs r0, 0x1 -_080A36E6: - pop {r1} - bx r1 - thumb_func_end sub_80A36C8 - - thumb_func_start sub_80A36EC -sub_80A36EC: @ 80A36EC - push {lr} - ldr r0, =gUnknown_020383E8 - ldr r0, [r0] - bl IsPokemonCryPlaying - cmp r0, 0 - bne _080A3704 - movs r0, 0 - b _080A3706 - .pool -_080A3704: - movs r0, 0x1 -_080A3706: - pop {r1} - bx r1 - thumb_func_end sub_80A36EC - - thumb_func_start sub_80A370C -sub_80A370C: @ 80A370C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_020383EC - ldrb r0, [r1] - cmp r0, 0 - beq _080A3724 - subs r0, 0x1 - strb r0, [r1] - b _080A3742 - .pool -_080A3724: - ldr r0, =gUnknown_020383E8 - ldr r0, [r0] - bl IsPokemonCryPlaying - cmp r0, 0 - bne _080A3742 - ldr r0, =gMPlay_BGM - ldr r1, =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl - adds r0, r4, 0 - bl DestroyTask -_080A3742: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A370C - - thumb_func_start sub_80A3754 -sub_80A3754: @ 80A3754 - push {r4,lr} - ldr r4, =sub_80A370C - adds r0, r4, 0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A376E - adds r0, r4, 0 - movs r1, 0x50 - bl CreateTask -_080A376E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A3754 - - thumb_func_start song_play_for_text -song_play_for_text: @ 80A3778 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, =gUnknown_03005DF8 - ldrb r0, [r0] - cmp r0, 0 - beq _080A3788 - movs r1, 0 -_080A3788: - ldr r0, =0x0000ffff - cmp r1, r0 - bne _080A3790 - movs r1, 0 -_080A3790: - adds r0, r1, 0 - bl m4aSongNumStart - pop {r0} - bx r0 - .pool - thumb_func_end song_play_for_text - - thumb_func_start audio_play -audio_play: @ 80A37A4 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl m4aSongNumStart - pop {r0} - bx r0 - thumb_func_end audio_play - - thumb_func_start audio_play_and_stuff -audio_play_and_stuff: @ 80A37B4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r4, r1, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 24 - lsrs r4, 24 - bl m4aSongNumStart - ldr r6, =gMPlay_SE1 - adds r0, r6, 0 - bl m4aMPlayImmInit - ldr r0, =gMPlay_SE2 - mov r8, r0 - bl m4aMPlayImmInit - ldr r5, =0x0000ffff - lsls r4, 24 - asrs r4, 24 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl m4aMPlayPanpotControl - mov r0, r8 - adds r1, r5, 0 - adds r2, r4, 0 - bl m4aMPlayPanpotControl - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end audio_play_and_stuff - - thumb_func_start sub_80A3808 -sub_80A3808: @ 80A3808 - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 24 - lsrs r4, 24 - bl m4aSongNumStart - ldr r5, =gMPlay_SE1 - adds r0, r5, 0 - bl m4aMPlayImmInit - ldr r1, =0x0000ffff - lsls r4, 24 - asrs r4, 24 - adds r0, r5, 0 - adds r2, r4, 0 - bl m4aMPlayPanpotControl - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A3808 - - thumb_func_start sub_80A383C -sub_80A383C: @ 80A383C - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 24 - lsrs r4, 24 - bl m4aSongNumStart - ldr r5, =gMPlay_SE2 - adds r0, r5, 0 - bl m4aMPlayImmInit - ldr r1, =0x0000ffff - lsls r4, 24 - asrs r4, 24 - adds r0, r5, 0 - adds r2, r4, 0 - bl m4aMPlayPanpotControl - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A383C - - thumb_func_start sub_80A3870 -sub_80A3870: @ 80A3870 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, =gMPlay_SE1 - ldr r5, =0x0000ffff - lsls r4, 24 - asrs r4, 24 - adds r1, r5, 0 - adds r2, r4, 0 - bl m4aMPlayPanpotControl - ldr r0, =gMPlay_SE2 - adds r1, r5, 0 - adds r2, r4, 0 - bl m4aMPlayPanpotControl - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A3870 - - thumb_func_start mplay_has_finished_maybe -mplay_has_finished_maybe: @ 80A38A0 - push {lr} - ldr r0, =gMPlay_SE1 - ldr r1, [r0, 0x4] - movs r2, 0x80 - lsls r2, 24 - adds r3, r0, 0 - cmp r1, 0 - bge _080A38BA - ldr r0, =gMPlay_SE2 - ldr r0, [r0, 0x4] - ands r0, r2 - cmp r0, 0 - bne _080A38CC -_080A38BA: - ldr r1, =0x0000ffff - ldrh r0, [r3, 0x4] - cmp r0, 0 - bne _080A38DC - ldr r0, =gMPlay_SE2 - ldr r0, [r0, 0x4] - ands r0, r1 - cmp r0, 0 - bne _080A38DC -_080A38CC: - movs r0, 0 - b _080A38DE - .pool -_080A38DC: - movs r0, 0x1 -_080A38DE: - pop {r1} - bx r1 - thumb_func_end mplay_has_finished_maybe - - thumb_func_start sub_80A38E4 -sub_80A38E4: @ 80A38E4 - push {lr} - ldr r0, =gMPlay_BGM - ldr r1, [r0, 0x4] - cmp r1, 0 - blt _080A3904 - ldr r0, =0x0000ffff - ands r1, r0 - cmp r1, 0 - beq _080A3904 - movs r0, 0x1 - b _080A3906 - .pool -_080A3904: - movs r0, 0 -_080A3906: - pop {r1} - bx r1 - thumb_func_end sub_80A38E4 - - thumb_func_start sub_80A390C -sub_80A390C: @ 80A390C - push {lr} - ldr r0, =gMPlay_SE3 - ldr r1, [r0, 0x4] - cmp r1, 0 - blt _080A392C - ldr r0, =0x0000ffff - ands r1, r0 - cmp r1, 0 - beq _080A392C - movs r0, 0x1 - b _080A392E - .pool -_080A392C: - movs r0, 0 -_080A392E: - pop {r1} - bx r1 - thumb_func_end sub_80A390C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/sprite.s b/asm/sprite.s deleted file mode 100644 index 92c4150ebd..0000000000 --- a/asm/sprite.s +++ /dev/null @@ -1,4562 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start ResetAllObjectData -@ void ResetAllObjectData() -ResetAllObjectData: @ 8006974 - push {r4,lr} - movs r0, 0 - movs r1, 0x80 - bl ResetSpriteRange - bl RemoveAllObjects - bl ClearObjectCopyRequests - bl rotscale_reset_all - bl FreeAllObjectTiles - ldr r1, =gUnknown_02021B38 - movs r0, 0x40 - strb r0, [r1] - ldr r0, =gUnknown_02021B3A - movs r4, 0 - strh r4, [r0] - movs r0, 0 - bl AllocObjectTiles - ldr r0, =gUnknown_02021BBC - strh r4, [r0] - ldr r0, =gUnknown_02021BBE - strh r4, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ResetAllObjectData - - thumb_func_start CallObjectCallbacks -@ void CallObjectCallbacks() -CallObjectCallbacks: @ 80069C0 - push {r4-r7,lr} - movs r6, 0 - movs r7, 0x1 -_080069C6: - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r4, r0, r1 - adds r5, r4, 0 - adds r5, 0x3E - ldrb r1, [r5] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _080069F6 - ldr r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - ldrb r1, [r5] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _080069F6 - adds r0, r4, 0 - bl AnimateObject -_080069F6: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x3F - bls _080069C6 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end CallObjectCallbacks - - thumb_func_start PrepareSpritesForOamLoad -@ void PrepareSpritesForOamLoad() -PrepareSpritesForOamLoad: @ 8006A0C - push {r4,r5,lr} - bl UpdateObjectOamCoords - bl BuildObjectPriorityList - bl SortObjectsByPriority - ldr r5, =gMain - ldr r0, =0x00000439 - adds r5, r0 - ldrb r0, [r5] - lsls r4, r0, 31 - lsrs r4, 31 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r5] - bl PopulateSprites - bl CopyTransformationMatricesToSprites - movs r2, 0x1 - ldrb r1, [r5] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - orrs r4, r0 - strb r4, [r5] - ldr r0, =gUnknown_02021834 - strb r2, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end PrepareSpritesForOamLoad - - thumb_func_start UpdateObjectOamCoords -@ void UpdateObjectOamCoords() -UpdateObjectOamCoords: @ 8006A58 - push {r4-r7,lr} - movs r4, 0 - ldr r7, =gUnknown_02020630 - ldr r0, =0x000001ff - adds r5, r0, 0 - ldr r6, =0xfffffe00 -_08006A64: - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r3, r0, r7 - adds r0, r3, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r0, 0x5 - ands r0, r1 - cmp r0, 0x1 - bne _08006B0A - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08006AD8 - movs r2, 0x20 - ldrsh r1, [r3, r2] - movs r2, 0x24 - ldrsh r0, [r3, r2] - adds r1, r0 - adds r0, r3, 0 - adds r0, 0x28 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r1, r0 - ldr r0, =gUnknown_02021BBC - movs r2, 0 - ldrsh r0, [r0, r2] - adds r1, r0 - ands r1, r5 - ldrh r2, [r3, 0x2] - adds r0, r6, 0 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x2] - ldrh r1, [r3, 0x26] - ldrh r0, [r3, 0x22] - adds r1, r0 - adds r0, r3, 0 - adds r0, 0x29 - ldrb r0, [r0] - ldr r2, =gUnknown_02021BBE - adds r0, r1 - ldrb r2, [r2] - adds r0, r2 - b _08006B08 - .pool -_08006AD8: - movs r2, 0x20 - ldrsh r1, [r3, r2] - movs r2, 0x24 - ldrsh r0, [r3, r2] - adds r1, r0 - adds r0, r3, 0 - adds r0, 0x28 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r1, r0 - ands r1, r5 - ldrh r2, [r3, 0x2] - adds r0, r6, 0 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x2] - ldrh r1, [r3, 0x26] - ldrh r0, [r3, 0x22] - adds r1, r0 - adds r0, r3, 0 - adds r0, 0x29 - ldrb r0, [r0] - adds r0, r1 -_08006B08: - strb r0, [r3] -_08006B0A: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3F - bls _08006A64 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end UpdateObjectOamCoords - - thumb_func_start BuildObjectPriorityList -@ void BuildObjectPriorityList() -BuildObjectPriorityList: @ 8006B1C - push {r4,lr} - movs r2, 0 - ldr r4, =gUnknown_02020630 - ldr r3, =gUnknown_02021774 -_08006B24: - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r4 - adds r1, r0, 0 - adds r1, 0x43 - ldrb r1, [r1] - ldrb r0, [r0, 0x5] - lsls r0, 28 - lsrs r0, 30 - lsls r0, 8 - orrs r1, r0 - lsls r0, r2, 1 - adds r0, r3 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x3F - bls _08006B24 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end BuildObjectPriorityList - - thumb_func_start SortObjectsByPriority -@ void SortObjectsByPriority() -SortObjectsByPriority: @ 8006B5C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r0, 0x1 - mov r12, r0 - ldr r1, =gUnknown_020217F4 - mov r10, r1 - ldr r3, =0xffffff00 - mov r9, r3 - ldr r6, =0xc0000300 - mov r8, r6 -_08006B78: - mov r5, r12 - mov r0, r12 - subs r0, 0x1 - add r0, r10 - ldrb r2, [r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - ldr r7, =gUnknown_02020630 - adds r3, r0, r7 - mov r0, r12 - add r0, r10 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r7 - lsls r2, 1 - ldr r0, =gUnknown_02021774 - adds r2, r0 - ldrh r2, [r2] - str r2, [sp] - lsls r1, 1 - adds r1, r0 - ldrh r6, [r1] - ldrb r1, [r3] - ldrb r2, [r4] - adds r0, r1, 0 - cmp r0, 0x9F - ble _08006BBA - add r0, r9 - lsls r0, 16 - lsrs r1, r0, 16 -_08006BBA: - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x9F - ble _08006BC8 - add r0, r9 - lsls r0, 16 - lsrs r2, r0, 16 -_08006BC8: - ldr r0, [r3] - mov r7, r8 - ands r0, r7 - cmp r0, r8 - bne _08006BEC - ldrb r0, [r3, 0x1] - lsrs r0, 6 - cmp r0, 0 - beq _08006BDE - cmp r0, 0x2 - bne _08006BEC -_08006BDE: - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x80 - ble _08006BEC - add r0, r9 - lsls r0, 16 - lsrs r1, r0, 16 -_08006BEC: - ldr r0, [r4] - mov r3, r8 - ands r0, r3 - cmp r0, r8 - bne _08006C10 - ldrb r0, [r4, 0x1] - lsrs r0, 6 - cmp r0, 0 - beq _08006C02 - cmp r0, 0x2 - bne _08006C10 -_08006C02: - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x80 - ble _08006C10 - add r0, r9 - lsls r0, 16 - lsrs r2, r0, 16 -_08006C10: - movs r7, 0x1 - add r12, r7 - cmp r5, 0 - beq _08006CF6 - ldr r0, [sp] - cmp r0, r6 - bhi _08006C38 - cmp r0, r6 - bne _08006CF6 - b _08006CEE - .pool -_08006C38: - mov r1, r10 - adds r3, r5, r1 - ldrb r4, [r3] - subs r2, r5, 0x1 - adds r1, r2, r1 - ldrb r0, [r1] - strb r0, [r3] - strb r4, [r1] - lsls r2, 24 - lsrs r5, r2, 24 - subs r0, r5, 0x1 - add r0, r10 - ldrb r2, [r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - ldr r6, =gUnknown_02020630 - adds r3, r0, r6 - mov r7, r10 - adds r0, r5, r7 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r6 - lsls r2, 1 - ldr r0, =gUnknown_02021774 - adds r2, r0 - ldrh r2, [r2] - str r2, [sp] - lsls r1, 1 - adds r1, r0 - ldrh r6, [r1] - ldrb r1, [r3] - ldrb r2, [r4] - adds r0, r1, 0 - cmp r0, 0x9F - ble _08006C8A - add r0, r9 - lsls r0, 16 - lsrs r1, r0, 16 -_08006C8A: - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x9F - ble _08006C98 - add r0, r9 - lsls r0, 16 - lsrs r2, r0, 16 -_08006C98: - ldr r0, [r3] - mov r7, r8 - ands r0, r7 - cmp r0, r8 - bne _08006CBC - ldrb r0, [r3, 0x1] - lsrs r0, 6 - cmp r0, 0 - beq _08006CAE - cmp r0, 0x2 - bne _08006CBC -_08006CAE: - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x80 - ble _08006CBC - add r0, r9 - lsls r0, 16 - lsrs r1, r0, 16 -_08006CBC: - ldr r0, [r4] - mov r3, r8 - ands r0, r3 - cmp r0, r8 - bne _08006CE0 - ldrb r0, [r4, 0x1] - lsrs r0, 6 - cmp r0, 0 - beq _08006CD2 - cmp r0, 0x2 - bne _08006CE0 -_08006CD2: - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x80 - ble _08006CE0 - add r0, r9 - lsls r0, 16 - lsrs r2, r0, 16 -_08006CE0: - cmp r5, 0 - beq _08006CF6 - ldr r7, [sp] - cmp r7, r6 - bhi _08006C38 - cmp r7, r6 - bne _08006CF6 -_08006CEE: - lsls r1, 16 - lsls r0, r2, 16 - cmp r1, r0 - blt _08006C38 -_08006CF6: - mov r1, r12 - lsls r0, r1, 24 - lsrs r0, 24 - mov r12, r0 - cmp r0, 0x3F - bhi _08006D04 - b _08006B78 -_08006D04: - 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 SortObjectsByPriority - - thumb_func_start CopyTransformationMatricesToSprites -@ void CopyTransformationMatricesToSprites() -CopyTransformationMatricesToSprites: @ 8006D1C - push {r4-r6,lr} - movs r4, 0 - ldr r5, =gMain - ldr r6, =gUnknown_02021BC0 -_08006D24: - lsls r2, r4, 2 - lsls r1, r4, 5 - adds r1, r5 - lsls r3, r4, 3 - adds r3, r6 - ldrh r0, [r3] - strh r0, [r1, 0x3E] - adds r0, r2, 0x1 - lsls r0, 3 - adds r0, r5 - ldrh r1, [r3, 0x2] - strh r1, [r0, 0x3E] - adds r0, r2, 0x2 - lsls r0, 3 - adds r0, r5 - ldrh r1, [r3, 0x4] - strh r1, [r0, 0x3E] - adds r2, 0x3 - lsls r2, 3 - adds r2, r5 - ldrh r0, [r3, 0x6] - strh r0, [r2, 0x3E] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1F - bls _08006D24 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end CopyTransformationMatricesToSprites - - thumb_func_start PopulateSprites -@ void PopulateSprites() -PopulateSprites: @ 8006D68 - push {r4-r6,lr} - sub sp, 0x4 - movs r4, 0 - mov r0, sp - strb r4, [r0] -_08006D72: - ldr r0, =gUnknown_020217F4 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r2, r0, r1 - adds r0, r2, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r0, 0x5 - ands r0, r1 - cmp r0, 0x1 - bne _08006D9E - adds r0, r2, 0 - mov r1, sp - bl AddSprite - lsls r0, 24 - cmp r0, 0 - bne _08006DD8 -_08006D9E: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3F - bls _08006D72 - mov r0, sp - ldr r4, =gUnknown_02021B38 - ldrb r0, [r0] - ldrb r1, [r4] - cmp r0, r1 - bcs _08006DD8 - mov r1, sp - ldr r5, =gUnknown_030022F8 - ldr r0, =gDefaultOamAttributes - ldr r2, [r0] - ldr r3, [r0, 0x4] -_08006DBE: - ldrb r0, [r1] - lsls r0, 3 - adds r0, r5 - str r2, [r0] - str r3, [r0, 0x4] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - ldrb r6, [r4] - cmp r0, r6 - bcc _08006DBE -_08006DD8: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end PopulateSprites - - thumb_func_start AddObjectToFront -@ u8 AddObjectToFront(struct objtemplate *template, u16 x, u16 y, u8 subpriority) -AddObjectToFront: @ 8006DF4 - push {r4-r7,lr} - sub sp, 0x4 - adds r7, r0, 0 - lsls r3, 24 - lsrs r4, r3, 24 - movs r3, 0 - ldr r0, =gUnknown_02020630 - mov r12, r0 - lsls r5, r1, 16 - lsls r6, r2, 16 -_08006E08: - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - add r0, r12 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - bne _08006E34 - str r4, [sp] - adds r0, r3, 0 - adds r1, r7, 0 - asrs r2, r5, 16 - asrs r3, r6, 16 - bl AddObject - lsls r0, 24 - lsrs r0, 24 - b _08006E40 - .pool -_08006E34: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3F - bls _08006E08 - movs r0, 0x40 -_08006E40: - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end AddObjectToFront - - thumb_func_start AddObjectToBack -@ u8 AddObjectToBack(struct objtemplate *template, u16 x, u16 y, u8 subpriority) -AddObjectToBack: @ 8006E48 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r7, r0, 0 - lsls r3, 24 - lsrs r6, r3, 24 - movs r3, 0x3F - ldr r0, =gUnknown_02020630 - mov r8, r0 - movs r0, 0x1 - negs r0, r0 - mov r12, r0 - lsls r4, r1, 16 - lsls r5, r2, 16 -_08006E66: - lsls r0, r3, 16 - asrs r1, r0, 16 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - bne _08006E98 - lsls r0, r3, 24 - lsrs r0, 24 - str r6, [sp] - adds r1, r7, 0 - asrs r2, r4, 16 - asrs r3, r5, 16 - bl AddObject - lsls r0, 24 - lsrs r0, 24 - b _08006EA6 - .pool -_08006E98: - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - asrs r0, 16 - cmp r0, r12 - bgt _08006E66 - movs r0, 0x40 -_08006EA6: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end AddObjectToBack - - thumb_func_start obj_add_empty_with_callback -@ int obj_add_empty_with_callback(void ( *func)()) -obj_add_empty_with_callback: @ 8006EB4 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r0, =gUnknown_082EC6AC - movs r1, 0 - movs r2, 0 - movs r3, 0x1F - bl AddObjectToFront - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x40 - beq _08006EF4 - ldr r4, =gUnknown_02020630 - lsls r1, r5, 4 - adds r1, r5 - lsls r1, 2 - adds r2, r1, r4 - adds r2, 0x3E - ldrb r0, [r2] - movs r3, 0x4 - orrs r0, r3 - strb r0, [r2] - adds r4, 0x1C - adds r1, r4 - str r6, [r1] - adds r0, r5, 0 - b _08006EF6 - .pool -_08006EF4: - movs r0, 0x40 -_08006EF6: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end obj_add_empty_with_callback - - thumb_func_start AddObject -@ u8 AddObject(u8 index, struct objtemplate *template, u16 x, u16 y, u8 subpriority) -AddObject: @ 8006EFC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r8, r1 - adds r5, r2, 0 - adds r6, r3, 0 - ldr r4, [sp, 0x20] - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 16 - lsrs r6, 16 - lsls r4, 24 - lsrs r4, 24 - lsls r0, 4 - add r0, r10 - lsls r0, 2 - ldr r1, =gUnknown_02020630 - adds r7, r0, r1 - adds r0, r7, 0 - bl RemoveObject - adds r2, r7, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x3F - adds r0, r7 - mov r9, r0 - ldrb r0, [r0] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x8 - orrs r0, r1 - movs r1, 0x40 - orrs r0, r1 - mov r1, r9 - strb r0, [r1] - adds r0, r7, 0 - adds r0, 0x43 - strb r4, [r0] - mov r1, r8 - ldr r0, [r1, 0x4] - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [r7] - str r1, [r7, 0x4] - mov r1, r8 - ldr r0, [r1, 0x8] - str r0, [r7, 0x8] - ldr r0, [r1, 0x10] - str r0, [r7, 0x10] - str r1, [r7, 0x14] - ldr r0, [r1, 0x14] - str r0, [r7, 0x1C] - strh r5, [r7, 0x20] - strh r6, [r7, 0x22] - ldrb r3, [r7, 0x1] - lsrs r1, r3, 6 - ldrb r2, [r7, 0x3] - lsrs r2, 6 - lsls r3, 30 - lsrs r3, 30 - adds r0, r7, 0 - bl CalcVecFromObjectCenterToObjectUpperLeft - mov r0, r8 - ldrh r1, [r0] - ldr r4, =0xffff0000 - lsrs r0, r4, 16 - cmp r1, r0 - bne _08006FF8 - mov r1, r8 - ldr r0, [r1, 0xC] - str r0, [r7, 0xC] - ldrh r0, [r0, 0x4] - lsrs r0, 5 - lsls r0, 24 - lsrs r0, 24 - bl AllocObjectTiles - lsls r0, 16 - lsrs r2, r0, 16 - asrs r0, 16 - asrs r1, r4, 16 - cmp r0, r1 - bne _08006FC8 - adds r0, r7, 0 - bl RemoveObject - movs r0, 0x40 - b _08007040 - .pool -_08006FC8: - ldr r1, =0x000003ff - adds r0, r1, 0 - ands r2, r0 - ldrh r1, [r7, 0x4] - ldr r0, =0xfffffc00 - ands r0, r1 - orrs r0, r2 - strh r0, [r7, 0x4] - mov r0, r9 - ldrb r1, [r0] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - mov r1, r9 - strb r0, [r1] - adds r1, r7, 0 - adds r1, 0x40 - movs r0, 0 - strh r0, [r1] - b _0800700C - .pool -_08006FF8: - mov r1, r8 - ldrh r0, [r1] - bl GetObjectTileRangeStartByTag - adds r1, r7, 0 - adds r1, 0x40 - strh r0, [r1] - adds r0, r7, 0 - bl sub_8008324 -_0800700C: - ldrb r0, [r7, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08007020 - adds r0, r7, 0 - bl obj_alloc_rotscale_entry -_08007020: - mov r0, r8 - ldrh r1, [r0, 0x2] - ldr r0, =0x0000ffff - cmp r1, r0 - beq _0800703E - mov r1, r8 - ldrh r0, [r1, 0x2] - bl IndexOfObjectPaletteTag - lsls r0, 4 - ldrb r2, [r7, 0x5] - movs r1, 0xF - ands r1, r2 - orrs r1, r0 - strb r1, [r7, 0x5] -_0800703E: - mov r0, r10 -_08007040: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end AddObject - - thumb_func_start AddObjectAndAnimateForOneFrame -@ u8 AddObjectAndAnimateForOneFrame(struct objtemplate *template, u16 x, u16 y, u8 subpriority) -AddObjectAndAnimateForOneFrame: @ 8007054 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r10, r0 - lsls r3, 24 - lsrs r3, 24 - mov r9, r3 - movs r3, 0 - ldr r5, =gUnknown_02020630 - lsls r1, 16 - mov r12, r1 - lsls r2, 16 - mov r8, r2 -_08007074: - lsls r0, r3, 4 - adds r0, r3 - lsls r6, r0, 2 - adds r4, r6, r5 - adds r7, r4, 0 - adds r7, 0x3E - ldrb r0, [r7] - lsls r0, 31 - cmp r0, 0 - bne _080070CC - mov r0, r9 - str r0, [sp] - adds r0, r3, 0 - mov r1, r10 - mov r3, r12 - asrs r2, r3, 16 - mov r5, r8 - asrs r3, r5, 16 - bl AddObject - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - cmp r5, 0x40 - beq _080070D6 - ldr r1, =gUnknown_0202064C - adds r0, r6, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - ldrb r0, [r7] - lsls r0, 31 - cmp r0, 0 - beq _080070C0 - adds r0, r4, 0 - bl AnimateObject -_080070C0: - adds r0, r5, 0 - b _080070D8 - .pool -_080070CC: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3F - bls _08007074 -_080070D6: - movs r0, 0x40 -_080070D8: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end AddObjectAndAnimateForOneFrame - - thumb_func_start RemoveObjectAndFreeTiles -@ void RemoveObjectAndFreeTiles(struct obj *object) -RemoveObjectAndFreeTiles: @ 80070E8 - push {r4-r7,lr} - adds r5, r0, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08007144 - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0800713E - ldr r0, [r5, 0xC] - ldrh r2, [r0, 0x4] - lsrs r2, 5 - ldrh r0, [r5, 0x4] - lsls r0, 22 - lsrs r1, r0, 22 - adds r4, r1, r2 - adds r3, r1, 0 - cmp r3, r4 - bcs _0800713E - ldr r0, =gUnknown_02021B3C - mov r12, r0 - movs r6, 0x7 - movs r7, 0x1 -_08007122: - lsrs r2, r3, 3 - add r2, r12 - adds r0, r3, 0 - ands r0, r6 - adds r1, r7, 0 - lsls r1, r0 - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r4 - bcc _08007122 -_0800713E: - adds r0, r5, 0 - bl RemoveObject -_08007144: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end RemoveObjectAndFreeTiles - - thumb_func_start ResetSpriteRange -@ void ResetSpriteRange(u8 startIndex, u8 endIndex) -ResetSpriteRange: @ 8007150 - push {r4-r6,lr} - lsls r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - lsrs r3, r0, 24 - cmp r3, r4 - bcs _08007178 - ldr r6, =gUnknown_030022F8 - ldr r5, =gDefaultOamAttributes -_08007162: - lsls r0, r3, 3 - adds r0, r6 - ldr r1, [r5] - ldr r2, [r5, 0x4] - str r1, [r0] - str r2, [r0, 0x4] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r4 - bcc _08007162 -_08007178: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end ResetSpriteRange - - thumb_func_start LoadOamFromSprites -@ void LoadOamFromSprites() -LoadOamFromSprites: @ 8007188 - push {lr} - ldr r2, =gMain - ldr r1, =0x00000439 - adds r0, r2, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080071A8 - adds r0, r2, 0 - adds r0, 0x38 - movs r1, 0xE0 - lsls r1, 19 - ldr r2, =0x04000100 - bl CpuSet -_080071A8: - pop {r0} - bx r0 - .pool - thumb_func_end LoadOamFromSprites - - thumb_func_start ClearObjectCopyRequests -@ void ClearObjectCopyRequests() -ClearObjectCopyRequests: @ 80071B8 - push {r4,r5,lr} - ldr r0, =gUnknown_02021834 - movs r1, 0 - strb r1, [r0] - ldr r0, =gUnknown_02021835 - strb r1, [r0] - movs r2, 0 - ldr r4, =gUnknown_02021838 - movs r3, 0 - adds r5, r4, 0x4 -_080071CC: - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0, r4 - str r3, [r1] - adds r0, r5 - str r3, [r0] - strh r3, [r1, 0x8] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3F - bls _080071CC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ClearObjectCopyRequests - - thumb_func_start ResetSpriteTransformationMatrices -@ void ResetSpriteTransformationMatrices() -ResetSpriteTransformationMatrices: @ 80071F8 - push {r4,lr} - movs r1, 0 - ldr r4, =gUnknown_02021BC0 - movs r3, 0 - movs r2, 0x80 - lsls r2, 1 -_08007204: - lsls r0, r1, 3 - adds r0, r4 - strh r2, [r0] - strh r3, [r0, 0x2] - strh r3, [r0, 0x4] - strh r2, [r0, 0x6] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1F - bls _08007204 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ResetSpriteTransformationMatrices - - thumb_func_start SetSpriteTransformationMatrix -@ void SetSpriteTransformationMatrix(u8 index, u16 a, u16 b, u16 c, u16 d) -SetSpriteTransformationMatrix: @ 8007224 - push {r4,r5,lr} - ldr r5, [sp, 0xC] - lsls r0, 24 - ldr r4, =gUnknown_02021BC0 - lsrs r0, 21 - adds r0, r4 - strh r1, [r0] - strh r2, [r0, 0x2] - strh r3, [r0, 0x4] - strh r5, [r0, 0x6] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end SetSpriteTransformationMatrix - - thumb_func_start RemoveObject -@ void RemoveObject(struct obj *object) -RemoveObject: @ 8007244 - push {lr} - ldr r1, =gUnknown_082EC64C - movs r2, 0x44 - bl memcpy - pop {r0} - bx r0 - .pool - thumb_func_end RemoveObject - - thumb_func_start CalcVecFromObjectCenterToObjectUpperLeft -@ void CalcVecFromObjectCenterToObjectUpperLeft(struct obj *object, u8 shape, u8 size, u8 affineMode) -CalcVecFromObjectCenterToObjectUpperLeft: @ 8007258 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r1, 24 - lsls r2, 24 - lsls r3, 24 - lsrs r3, 24 - ldr r4, =gUnknown_082EC634 - lsrs r2, 23 - lsrs r1, 21 - adds r2, r1 - adds r0, r2, r4 - ldrb r5, [r0] - adds r4, 0x1 - adds r2, r4 - ldrb r1, [r2] - movs r0, 0x2 - ands r3, r0 - cmp r3, 0 - beq _08007286 - lsls r0, r5, 25 - lsrs r5, r0, 24 - lsls r0, r1, 25 - lsrs r1, r0, 24 -_08007286: - adds r0, r6, 0 - adds r0, 0x28 - strb r5, [r0] - adds r0, 0x1 - strb r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end CalcVecFromObjectCenterToObjectUpperLeft - - thumb_func_start AllocObjectTiles -@ s16 AllocObjectTiles(u16 numTiles) -AllocObjectTiles: @ 800729C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - bne _080072F2 - ldr r0, =gUnknown_02021B3A - ldrh r3, [r0] - ldr r0, =0x000003ff - cmp r3, r0 - bhi _080072DA - ldr r7, =gUnknown_02021B3C - movs r6, 0x7 - adds r4, r0, 0 - movs r5, 0x1 -_080072BE: - lsrs r2, r3, 3 - adds r2, r7 - adds r0, r3, 0 - ands r0, r6 - adds r1, r5, 0 - lsls r1, r0 - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r4 - bls _080072BE -_080072DA: - movs r0, 0 - b _080073A4 - .pool -_080072EC: - movs r0, 0x1 - negs r0, r0 - b _080073A4 -_080072F2: - ldr r0, =gUnknown_02021B3A - ldrh r3, [r0] - ldr r0, =gUnknown_02021B3C - mov r9, r0 - movs r7, 0x7 - movs r6, 0x1 -_080072FE: - lsrs r0, r3, 3 - add r0, r9 - ldrb r1, [r0] - adds r0, r3, 0 - ands r0, r7 - asrs r1, r0 - ands r1, r6 - cmp r1, 0 - beq _08007332 - movs r5, 0x80 - lsls r5, 3 - ldr r2, =gUnknown_02021B3C -_08007316: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r5 - beq _080072EC - lsrs r0, 19 - adds r0, r2 - ldrb r1, [r0] - adds r0, r3, 0 - ands r0, r7 - asrs r1, r0 - ands r1, r6 - cmp r1, 0 - bne _08007316 -_08007332: - mov r8, r3 - movs r2, 0x1 - cmp r2, r4 - beq _0800736C - movs r1, 0x80 - lsls r1, 3 - mov r12, r1 - ldr r5, =gUnknown_02021B3C -_08007342: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r12 - beq _080072EC - lsrs r0, 19 - adds r0, r5 - ldrb r1, [r0] - adds r0, r3, 0 - ands r0, r7 - asrs r1, r0 - ands r1, r6 - cmp r1, 0 - bne _08007368 - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r4 - bne _08007342 -_08007368: - cmp r2, r4 - bne _080072FE -_0800736C: - mov r1, r8 - lsls r0, r1, 16 - lsrs r3, r0, 16 - asrs r1, r0, 16 - adds r1, r4, r1 - adds r6, r0, 0 - cmp r3, r1 - bge _080073A2 - ldr r0, =gUnknown_02021B3C - mov r8, r0 - movs r7, 0x7 - adds r4, r1, 0 - movs r5, 0x1 -_08007386: - lsrs r2, r3, 3 - add r2, r8 - adds r1, r3, 0 - ands r1, r7 - adds r0, r5, 0 - lsls r0, r1 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r4 - blt _08007386 -_080073A2: - asrs r0, r6, 16 -_080073A4: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end AllocObjectTiles - - thumb_func_start Unused_ObjectTileAllocationBitArrayOp -@ unsigned int Unused_ObjectTileAllocationBitArrayOp(u16 tileNum, u8 op) -Unused_ObjectTileAllocationBitArrayOp: @ 80073B8 - push {r4-r6,lr} - lsls r0, 16 - lsrs r2, r0, 16 - lsls r1, 24 - lsrs r1, 24 - lsrs r0, 19 - lsls r0, 24 - lsrs r3, r0, 24 - adds r6, r3, 0 - movs r0, 0x7 - ands r2, r0 - adds r4, r2, 0 - movs r5, 0 - cmp r1, 0 - bne _080073F0 - movs r0, 0x1 - lsls r0, r2 - mvns r0, r0 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gUnknown_02021B3C - adds r0, r3, r0 - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - b _0800741C - .pool -_080073F0: - cmp r1, 0x1 - bne _0800740C - lsls r1, r2 - lsls r0, r1, 24 - lsrs r2, r0, 24 - ldr r0, =gUnknown_02021B3C - adds r0, r3, r0 - ldrb r1, [r0] - orrs r2, r1 - strb r2, [r0] - b _0800741C - .pool -_0800740C: - movs r0, 0x80 - lsls r0, 17 - lsls r0, r4 - lsrs r5, r0, 24 - ldr r0, =gUnknown_02021B3C - adds r0, r6, r0 - ldrb r0, [r0] - ands r5, r0 -_0800741C: - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end Unused_ObjectTileAllocationBitArrayOp - - thumb_func_start DummyObjectCallback -@ void DummyObjectCallback(struct obj *object) -DummyObjectCallback: @ 8007428 - bx lr - thumb_func_end DummyObjectCallback - - thumb_func_start ProcessObjectCopyRequests -@ void ProcessObjectCopyRequests() -ProcessObjectCopyRequests: @ 800742C - push {r4-r7,lr} - ldr r0, =gUnknown_02021834 - ldrb r0, [r0] - cmp r0, 0 - beq _08007474 - movs r4, 0 - ldr r1, =gUnknown_02021835 - ldrb r0, [r1] - cmp r0, 0 - beq _0800746E - ldr r6, =gUnknown_02021838 - adds r7, r6, 0x4 - adds r5, r1, 0 -_08007446: - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 2 - adds r2, r1, r6 - ldr r0, [r2] - adds r1, r7 - ldr r1, [r1] - ldrh r2, [r2, 0x8] - lsrs r2, 1 - bl CpuSet - ldrb r1, [r5] - subs r1, 0x1 - strb r1, [r5] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - cmp r1, 0 - bne _08007446 -_0800746E: - ldr r1, =gUnknown_02021834 - movs r0, 0 - strb r0, [r1] -_08007474: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end ProcessObjectCopyRequests - - thumb_func_start AddPicToObjectCopyRequests -@ void AddPicToObjectCopyRequests(u16 picIndex, u16 targetTileNum, struct obj_tiles *pics) -AddPicToObjectCopyRequests: @ 8007488 - push {r4-r6,lr} - adds r5, r2, 0 - lsls r0, 16 - lsrs r2, r0, 16 - lsls r1, 16 - lsrs r6, r1, 16 - ldr r4, =gUnknown_02021835 - ldrb r0, [r4] - cmp r0, 0x3F - bhi _080074D8 - ldr r3, =gUnknown_02021838 - adds r1, r0, 0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - lsls r2, 3 - adds r2, r5 - ldr r1, [r2] - str r1, [r0] - ldrb r0, [r4] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r0, r3, 0x4 - adds r1, r0 - lsls r0, r6, 5 - ldr r5, =0x06010000 - adds r0, r5 - str r0, [r1] - ldrb r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r2, 0x4] - strh r1, [r0, 0x8] - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] -_080074D8: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end AddPicToObjectCopyRequests - - thumb_func_start AddTilesToObjectCopyRequests -@ void AddTilesToObjectCopyRequests(void *src, void *dest, u16 size) -AddTilesToObjectCopyRequests: @ 80074EC - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r2, 16 - lsrs r6, r2, 16 - ldr r3, =gUnknown_02021835 - ldrb r0, [r3] - cmp r0, 0x3F - bhi _0800752C - ldr r2, =gUnknown_02021838 - adds r1, r0, 0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - str r4, [r0] - ldrb r1, [r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r1, r2, 0x4 - adds r0, r1 - str r5, [r0] - ldrb r1, [r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r6, [r0, 0x8] - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] -_0800752C: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end AddTilesToObjectCopyRequests - - thumb_func_start Unused_CopyFromObjects -@ void Unused_CopyFromObjects(void *dest) -Unused_CopyFromObjects: @ 800753C - push {r4,lr} - adds r1, r0, 0 - ldr r3, =gUnknown_02020630 - movs r2, 0 - ldr r4, =0x000010ff -_08007546: - ldrb r0, [r3] - strb r0, [r1] - adds r1, 0x1 - adds r3, 0x1 - adds r2, 0x1 - cmp r2, r4 - bls _08007546 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end Unused_CopyFromObjects - - thumb_func_start Unused_CopyToObjects -@ void Unused_CopyToObjects(void *src) -Unused_CopyToObjects: @ 8007564 - push {r4,lr} - adds r1, r0, 0 - ldr r3, =gUnknown_02020630 - movs r2, 0 - ldr r4, =0x000010ff -_0800756E: - ldrb r0, [r1] - strb r0, [r3] - adds r1, 0x1 - adds r3, 0x1 - adds r2, 0x1 - cmp r2, r4 - bls _0800756E - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end Unused_CopyToObjects - - thumb_func_start RemoveAllObjects -@ void RemoveAllObjects() -RemoveAllObjects: @ 800758C - push {r4,r5,lr} - movs r4, 0 -_08007590: - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r5, =gUnknown_02020630 - adds r0, r5 - bl RemoveObject - ldr r0, =gUnknown_020217F4 - adds r0, r4, r0 - strb r4, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3F - bls _08007590 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r5 - bl RemoveObject - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end RemoveAllObjects - - thumb_func_start FreeObjectTiles -@ void FreeObjectTiles(struct obj *object) -FreeObjectTiles: @ 80075C8 - push {lr} - ldr r2, [r0, 0x14] - ldrh r1, [r2] - ldr r0, =0x0000ffff - cmp r1, r0 - beq _080075DA - adds r0, r1, 0 - bl FreeObjectTilesByTag -_080075DA: - pop {r0} - bx r0 - .pool - thumb_func_end FreeObjectTiles - - thumb_func_start FreeObjectPalette -@ void FreeObjectPalette(struct obj *object) -FreeObjectPalette: @ 80075E4 - push {lr} - ldr r0, [r0, 0x14] - ldrh r0, [r0, 0x2] - bl FreeObjectPaletteByTag - pop {r0} - bx r0 - thumb_func_end FreeObjectPalette - - thumb_func_start obj_free_rotscale_entry -@ void obj_free_rotscale_entry(struct obj *obj) -obj_free_rotscale_entry: @ 80075F4 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0800761A - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl rotscale_free_entry - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] -_0800761A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end obj_free_rotscale_entry - - thumb_func_start RemoveObjectAndFreeResources -@ void RemoveObjectAndFreeResources(struct obj *object) -RemoveObjectAndFreeResources: @ 8007620 - push {r4,lr} - adds r4, r0, 0 - bl FreeObjectTiles - adds r0, r4, 0 - bl FreeObjectPalette - adds r0, r4, 0 - bl obj_free_rotscale_entry - adds r0, r4, 0 - bl RemoveObjectAndFreeTiles - pop {r4} - pop {r0} - bx r0 - thumb_func_end RemoveObjectAndFreeResources - - thumb_func_start AnimateObject -@ void AnimateObject(struct obj *object) -AnimateObject: @ 8007640 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r2, =gUnknown_082EC6C4 - adds r5, r4, 0 - adds r5, 0x3F - ldrb r1, [r5] - movs r0, 0x4 - ands r0, r1 - adds r0, r2 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - ldr r0, =gUnknown_02021CC0 - ldrb r0, [r0] - cmp r0, 0 - bne _08007676 - ldr r0, =gUnknown_082EC6CC - ldrb r1, [r5] - lsls r1, 28 - lsrs r1, 31 - lsls r1, 2 - adds r1, r0 - ldr r1, [r1] - adds r0, r4, 0 - bl _call_via_r1 -_08007676: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end AnimateObject - - thumb_func_start BeginObjectImageAnim -@ void BeginObjectImageAnim(struct obj *object) -BeginObjectImageAnim: @ 8007688 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r4, r0, 0 - adds r3, r4, 0 - adds r3, 0x2B - movs r2, 0 - strb r2, [r3] - adds r5, r4, 0 - adds r5, 0x3F - ldrb r1, [r5] - movs r0, 0x11 - negs r0, r0 - ands r0, r1 - strb r0, [r5] - adds r0, r4, 0 - adds r0, 0x2D - strb r2, [r0] - adds r2, r4, 0 - adds r2, 0x2A - ldrb r1, [r2] - ldr r0, [r4, 0x8] - lsls r1, 2 - adds r1, r0 - ldrb r0, [r3] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0] - mov r9, r0 - lsls r0, 16 - mov r8, r0 - asrs r1, r0, 16 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0800776C - ldrb r1, [r5] - subs r0, 0x4 - ands r0, r1 - strb r0, [r5] - ldrb r1, [r2] - ldr r0, [r4, 0x8] - lsls r1, 2 - adds r1, r0 - ldrb r0, [r3] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - lsls r1, r0, 10 - lsrs r3, r1, 26 - lsls r1, r0, 9 - lsrs r7, r1, 31 - lsls r0, 8 - lsrs r6, r0, 31 - cmp r3, 0 - beq _08007704 - subs r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 -_08007704: - adds r2, r4, 0 - adds r2, 0x2C - movs r0, 0x3F - ands r3, r0 - ldrb r1, [r2] - subs r0, 0x7F - ands r0, r1 - orrs r0, r3 - strb r0, [r2] - ldrb r0, [r4, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0800772E - adds r0, r4, 0 - adds r1, r7, 0 - adds r2, r6, 0 - bl obj_set_horizonal_and_vertical_flip -_0800772E: - ldrb r1, [r5] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0800775C - adds r0, r4, 0 - adds r0, 0x40 - ldrh r1, [r0] - add r1, r9 - ldr r2, =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r4, 0x4] - ldr r0, =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - b _0800776C - .pool -_0800775C: - mov r1, r8 - lsrs r0, r1, 16 - ldrh r1, [r4, 0x4] - lsls r1, 22 - lsrs r1, 22 - ldr r2, [r4, 0xC] - bl AddPicToObjectCopyRequests -_0800776C: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end BeginObjectImageAnim - - thumb_func_start ContinueObjectImageAnim -@ void ContinueObjectImageAnim(struct obj *object) -ContinueObjectImageAnim: @ 8007778 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r0, 0x3F - ands r0, r1 - cmp r0, 0 - beq _080077C8 - adds r0, r4, 0 - bl obj_anim_image_delay_progress - adds r0, r4, 0 - adds r0, 0x2A - ldrb r1, [r0] - ldr r0, [r4, 0x8] - lsls r1, 2 - adds r1, r0 - adds r0, r4, 0 - adds r0, 0x2B - ldrb r0, [r0] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - lsls r1, r0, 9 - lsrs r3, r1, 31 - lsls r0, 8 - lsrs r2, r0, 31 - ldrb r0, [r4, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0800780E - adds r0, r4, 0 - adds r1, r3, 0 - bl obj_set_horizonal_and_vertical_flip - b _0800780E -_080077C8: - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0800780E - adds r2, r4, 0 - adds r2, 0x2B - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - adds r0, r4, 0 - adds r0, 0x2A - ldrb r0, [r0] - ldr r1, [r4, 0x8] - lsls r0, 2 - adds r0, r1 - ldrb r1, [r2] - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - movs r2, 0x3 - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0 - bge _080077FE - adds r0, 0x3 - lsls r0, 16 - lsrs r2, r0, 16 -_080077FE: - ldr r0, =gUnknown_082EC6D4 - lsls r1, r2, 16 - asrs r1, 14 - adds r1, r0 - ldr r1, [r1] - adds r0, r4, 0 - bl _call_via_r1 -_0800780E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ContinueObjectImageAnim - - thumb_func_start ImageAnimCmd_frame -@ void ImageAnimCmd_frame(struct obj *object) -ImageAnimCmd_frame: @ 8007818 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - adds r0, 0x2A - ldrb r1, [r0] - ldr r0, [r4, 0x8] - lsls r1, 2 - adds r1, r0 - adds r0, r4, 0 - adds r0, 0x2B - ldrb r0, [r0] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldrh r7, [r0] - mov r8, r7 - ldr r0, [r0] - lsls r1, r0, 10 - lsrs r3, r1, 26 - lsls r1, r0, 9 - lsrs r6, r1, 31 - lsls r0, 8 - lsrs r5, r0, 31 - cmp r3, 0 - beq _08007852 - subs r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 -_08007852: - adds r2, r4, 0 - adds r2, 0x2C - movs r0, 0x3F - ands r3, r0 - ldrb r1, [r2] - subs r0, 0x7F - ands r0, r1 - orrs r0, r3 - strb r0, [r2] - ldrb r0, [r4, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0800787C - adds r0, r4, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl obj_set_horizonal_and_vertical_flip -_0800787C: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080078AC - adds r0, r4, 0 - adds r0, 0x40 - ldrh r1, [r0] - adds r1, r7 - ldr r2, =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r4, 0x4] - ldr r0, =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - b _080078BA - .pool -_080078AC: - mov r0, r8 - ldrh r1, [r4, 0x4] - lsls r1, 22 - lsrs r1, 22 - ldr r2, [r4, 0xC] - bl AddPicToObjectCopyRequests -_080078BA: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ImageAnimCmd_frame - - thumb_func_start ImageAnimCmd_end -@ void ImageAnimCmd_end(struct obj *object) -ImageAnimCmd_end: @ 80078C4 - adds r2, r0, 0 - adds r2, 0x2B - ldrb r1, [r2] - subs r1, 0x1 - strb r1, [r2] - adds r0, 0x3F - ldrb r1, [r0] - movs r2, 0x10 - orrs r1, r2 - strb r1, [r0] - bx lr - thumb_func_end ImageAnimCmd_end - - thumb_func_start ImageAnimCmd_jump -@ void ImageAnimCmd_jump(struct obj *object) -ImageAnimCmd_jump: @ 80078DC - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - adds r3, r4, 0 - adds r3, 0x2A - ldrb r1, [r3] - ldr r0, [r4, 0x8] - lsls r1, 2 - adds r1, r0 - adds r2, r4, 0 - adds r2, 0x2B - ldrb r0, [r2] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - lsls r0, 10 - lsrs r0, 26 - strb r0, [r2] - ldrb r0, [r3] - ldr r1, [r4, 0x8] - lsls r0, 2 - adds r0, r1 - ldrb r1, [r2] - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - ldrh r7, [r1] - mov r8, r7 - ldr r0, [r1] - lsls r1, r0, 10 - lsrs r3, r1, 26 - lsls r1, r0, 9 - lsrs r6, r1, 31 - lsls r0, 8 - lsrs r5, r0, 31 - cmp r3, 0 - beq _08007930 - subs r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 -_08007930: - adds r2, r4, 0 - adds r2, 0x2C - movs r0, 0x3F - ands r3, r0 - ldrb r1, [r2] - subs r0, 0x7F - ands r0, r1 - orrs r0, r3 - strb r0, [r2] - ldrb r0, [r4, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0800795A - adds r0, r4, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl obj_set_horizonal_and_vertical_flip -_0800795A: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0800798C - adds r0, r4, 0 - adds r0, 0x40 - ldrh r1, [r0] - adds r1, r7 - ldr r2, =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r4, 0x4] - ldr r0, =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - b _0800799A - .pool -_0800798C: - mov r0, r8 - ldrh r1, [r4, 0x4] - lsls r1, 22 - lsrs r1, 22 - ldr r2, [r4, 0xC] - bl AddPicToObjectCopyRequests -_0800799A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ImageAnimCmd_jump - - thumb_func_start ImageAnimCmd_loop -@ void ImageAnimCmd_loop(struct obj *object) -ImageAnimCmd_loop: @ 80079A4 - push {lr} - adds r1, r0, 0 - adds r0, 0x2D - ldrb r0, [r0] - cmp r0, 0 - beq _080079B8 - adds r0, r1, 0 - bl ContinueImageAnimLoop - b _080079BE -_080079B8: - adds r0, r1, 0 - bl BeginImageAnimLoop -_080079BE: - pop {r0} - bx r0 - thumb_func_end ImageAnimCmd_loop - - thumb_func_start BeginImageAnimLoop -@ void BeginImageAnimLoop(struct obj *object) -BeginImageAnimLoop: @ 80079C4 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x2A - ldrb r1, [r0] - ldr r0, [r4, 0x8] - lsls r1, 2 - adds r1, r0 - adds r0, r4, 0 - adds r0, 0x2B - ldrb r0, [r0] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - lsls r0, 10 - lsrs r0, 26 - adds r1, r4, 0 - adds r1, 0x2D - strb r0, [r1] - adds r0, r4, 0 - bl JumpToTopOfImageAnimLoop - adds r0, r4, 0 - bl ContinueObjectImageAnim - pop {r4} - pop {r0} - bx r0 - thumb_func_end BeginImageAnimLoop - - thumb_func_start ContinueImageAnimLoop -@ void ContinueImageAnimLoop(struct obj *object) -ContinueImageAnimLoop: @ 80079FC - push {r4,lr} - adds r4, r0, 0 - adds r1, r4, 0 - adds r1, 0x2D - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - adds r0, r4, 0 - bl JumpToTopOfImageAnimLoop - adds r0, r4, 0 - bl ContinueObjectImageAnim - pop {r4} - pop {r0} - bx r0 - thumb_func_end ContinueImageAnimLoop - - thumb_func_start JumpToTopOfImageAnimLoop -@ void JumpToTopOfImageAnimLoop(struct obj *object) -JumpToTopOfImageAnimLoop: @ 8007A1C - push {r4-r7,lr} - mov r12, r0 - adds r0, 0x2D - ldrb r0, [r0] - cmp r0, 0 - beq _08007A88 - mov r3, r12 - adds r3, 0x2B - ldrb r0, [r3] - subs r0, 0x1 - strb r0, [r3] - mov r5, r12 - adds r5, 0x2A - ldrb r1, [r5] - mov r2, r12 - ldr r0, [r2, 0x8] - lsls r1, 2 - adds r1, r0 - ldrb r0, [r3] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - subs r0, 0x4 - movs r7, 0 - ldrsh r0, [r0, r7] - movs r1, 0x3 - negs r1, r1 - adds r4, r3, 0 - cmp r0, r1 - beq _08007A82 - adds r6, r1, 0 - adds r2, r4, 0 -_08007A5C: - ldrb r0, [r2] - cmp r0, 0 - beq _08007A82 - subs r0, 0x1 - strb r0, [r3] - ldrb r1, [r5] - mov r7, r12 - ldr r0, [r7, 0x8] - lsls r1, 2 - adds r1, r0 - ldrb r0, [r2] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - subs r0, 0x4 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, r6 - bne _08007A5C -_08007A82: - ldrb r0, [r4] - subs r0, 0x1 - strb r0, [r4] -_08007A88: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end JumpToTopOfImageAnimLoop - - thumb_func_start BeginObjectRotScalAnim -@ void BeginObjectRotScalAnim(struct obj *object) -BeginObjectRotScalAnim: @ 8007A90 - push {r4-r7,lr} - sub sp, 0x8 - adds r6, r0, 0 - ldrb r0, [r6, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08007B12 - ldr r0, [r6, 0x10] - ldr r0, [r0] - movs r2, 0 - ldrsh r1, [r0, r2] - ldr r0, =0x00007fff - cmp r1, r0 - beq _08007B12 - adds r0, r6, 0 - bl obj_get_rotscale_entry_index - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl rotscale_reset_half - mov r5, sp - adds r0, r4, 0 - adds r1, r6, 0 - mov r2, sp - bl rotscale_load_frame - adds r7, r6, 0 - adds r7, 0x3F - ldrb r1, [r7] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - movs r1, 0x21 - negs r1, r1 - ands r0, r1 - strb r0, [r7] - adds r0, r4, 0 - mov r1, sp - bl sub_8008168 - ldr r1, =gUnknown_03000B70 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r5, 0x5] - strb r1, [r0, 0x2] - ldrb r1, [r7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08007B12 - movs r0, 0x3A - ldrsh r1, [r6, r0] - movs r0, 0x3C - ldrsh r2, [r6, r0] - adds r0, r6, 0 - bl obj_update_pos2 -_08007B12: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end BeginObjectRotScalAnim - - thumb_func_start ContinueObjectRotScalAnim -@ void ContinueObjectRotScalAnim(struct obj *object) -ContinueObjectRotScalAnim: @ 8007B24 - push {r4,r5,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08007BC6 - adds r0, r4, 0 - bl obj_get_rotscale_entry_index - lsls r0, 24 - lsrs r2, r0, 24 - adds r5, r2, 0 - ldr r1, =gUnknown_03000B70 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r1 - ldrb r0, [r3, 0x2] - cmp r0, 0 - beq _08007B60 - adds r0, r2, 0 - adds r1, r4, 0 - bl sub_8007BD8 - b _08007BAA - .pool -_08007B60: - adds r0, r4, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08007BC6 - ldrb r0, [r3, 0x1] - adds r0, 0x1 - strb r0, [r3, 0x1] - ldrb r0, [r3] - ldr r1, [r4, 0x10] - lsls r0, 2 - adds r0, r1 - ldrb r1, [r3, 0x1] - ldr r0, [r0] - lsls r1, 3 - adds r1, r0 - movs r2, 0x3 - movs r0, 0 - ldrsh r1, [r1, r0] - ldr r0, =0x00007ffc - cmp r1, r0 - ble _08007B98 - ldr r2, =0xffff8003 - adds r0, r1, r2 - lsls r0, 16 - lsrs r2, r0, 16 -_08007B98: - ldr r0, =gUnknown_082EC6E4 - lsls r1, r2, 16 - asrs r1, 14 - adds r1, r0 - ldr r2, [r1] - adds r0, r5, 0 - adds r1, r4, 0 - bl _call_via_r2 -_08007BAA: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08007BC6 - movs r0, 0x3A - ldrsh r1, [r4, r0] - movs r0, 0x3C - ldrsh r2, [r4, r0] - adds r0, r4, 0 - bl obj_update_pos2 -_08007BC6: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ContinueObjectRotScalAnim - - thumb_func_start sub_8007BD8 -@ void sub_8007BD8(u8 index, struct obj *object) -sub_8007BD8: @ 8007BD8 - push {r4,r5,lr} - sub sp, 0x8 - adds r5, r1, 0 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl obj_anim_rotscale_delay_progress - lsls r0, 24 - cmp r0, 0 - bne _08007C02 - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl rotscale_load_frame - adds r0, r4, 0 - mov r1, sp - bl rotscale_frame_apply_relative_and_sync -_08007C02: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8007BD8 - - thumb_func_start RotScalAnimCmd_loop -@ void RotScalAnimCmd_loop(u8 index, struct obj *object) -RotScalAnimCmd_loop: @ 8007C0C - push {lr} - adds r3, r1, 0 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, =gUnknown_03000B70 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x3] - cmp r0, 0 - beq _08007C34 - adds r0, r2, 0 - adds r1, r3, 0 - bl ContinueRotScalAnimLoop - b _08007C3C - .pool -_08007C34: - adds r0, r2, 0 - adds r1, r3, 0 - bl BeginRotScalAnimLoop -_08007C3C: - pop {r0} - bx r0 - thumb_func_end RotScalAnimCmd_loop - - thumb_func_start BeginRotScalAnimLoop -@ void BeginRotScalAnimLoop(u8 index, struct obj *object) -BeginRotScalAnimLoop: @ 8007C40 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_03000B70 - lsls r3, r0, 1 - adds r3, r0 - lsls r3, 2 - adds r3, r1 - ldrb r2, [r3] - ldr r1, [r4, 0x10] - lsls r2, 2 - adds r2, r1 - ldrb r1, [r3, 0x1] - ldr r2, [r2] - lsls r1, 3 - adds r1, r2 - ldrh r1, [r1, 0x2] - strb r1, [r3, 0x3] - adds r1, r4, 0 - bl JumpToTopOfRotScalAnimLoop - adds r0, r4, 0 - bl ContinueObjectRotScalAnim - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end BeginRotScalAnimLoop - - thumb_func_start ContinueRotScalAnimLoop -@ void ContinueRotScalAnimLoop(u8 index, struct obj *object) -ContinueRotScalAnimLoop: @ 8007C7C - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_03000B70 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1, 0x3] - subs r2, 0x1 - strb r2, [r1, 0x3] - adds r1, r4, 0 - bl JumpToTopOfRotScalAnimLoop - adds r0, r4, 0 - bl ContinueObjectRotScalAnim - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ContinueRotScalAnimLoop - - thumb_func_start JumpToTopOfRotScalAnimLoop -@ void JumpToTopOfRotScalAnimLoop(u8 index, struct obj *object) -JumpToTopOfRotScalAnimLoop: @ 8007CAC - push {r4-r7,lr} - mov r12, r1 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, =gUnknown_03000B70 - lsls r3, r5, 1 - adds r0, r3, r5 - lsls r0, 2 - adds r2, r0, r1 - ldrb r0, [r2, 0x3] - adds r6, r1, 0 - cmp r0, 0 - beq _08007D0C - ldrb r0, [r2, 0x1] - subs r0, 0x1 - strb r0, [r2, 0x1] - adds r4, r3, 0 - b _08007CDC - .pool -_08007CD4: - cmp r2, 0 - beq _08007D00 - subs r0, r2, 0x1 - strb r0, [r3, 0x1] -_08007CDC: - adds r0, r4, r5 - lsls r0, 2 - adds r3, r0, r6 - ldrb r0, [r3] - mov r2, r12 - ldr r1, [r2, 0x10] - lsls r0, 2 - adds r0, r1 - ldrb r2, [r3, 0x1] - ldr r1, [r0] - lsls r0, r2, 3 - adds r0, r1 - subs r0, 0x8 - movs r7, 0 - ldrsh r1, [r0, r7] - ldr r0, =0x00007ffd - cmp r1, r0 - bne _08007CD4 -_08007D00: - adds r1, r4, r5 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1, 0x1] - subs r0, 0x1 - strb r0, [r1, 0x1] -_08007D0C: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end JumpToTopOfRotScalAnimLoop - - thumb_func_start RotScalAnimCmd_jump -@ void RotScalAnimCmd_jump(u8 index, struct obj *object) -RotScalAnimCmd_jump: @ 8007D18 - push {r4-r6,lr} - sub sp, 0x8 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, =gUnknown_03000B70 - lsls r4, r5, 1 - adds r4, r5 - lsls r4, 2 - adds r4, r0 - ldrb r2, [r4] - ldr r0, [r1, 0x10] - lsls r2, 2 - adds r2, r0 - ldrb r0, [r4, 0x1] - ldr r2, [r2] - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0, 0x2] - strb r0, [r4, 0x1] - mov r6, sp - adds r0, r5, 0 - mov r2, sp - bl rotscale_load_frame - adds r0, r5, 0 - mov r1, sp - bl sub_8008168 - ldrb r0, [r6, 0x5] - strb r0, [r4, 0x2] - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end RotScalAnimCmd_jump - - thumb_func_start RotScalAnimCmd_end -@ void RotScalAnimCmd_end(u8 index, struct obj *object) -RotScalAnimCmd_end: @ 8007D64 - push {lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - movs r2, 0 - movs r3, 0 - str r2, [sp] - str r3, [sp, 0x4] - adds r1, 0x3F - ldrb r2, [r1] - movs r3, 0x20 - orrs r2, r3 - strb r2, [r1] - ldr r2, =gUnknown_03000B70 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1, 0x1] - subs r2, 0x1 - strb r2, [r1, 0x1] - mov r1, sp - bl rotscale_frame_apply_relative_and_sync - add sp, 0x8 - pop {r0} - bx r0 - .pool - thumb_func_end RotScalAnimCmd_end - - thumb_func_start RotScalAnimCmd_frame -@ void RotScalAnimCmd_frame(u8 index, struct obj *object) -RotScalAnimCmd_frame: @ 8007DA0 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r5, sp - adds r0, r4, 0 - mov r2, sp - bl rotscale_load_frame - adds r0, r4, 0 - mov r1, sp - bl sub_8008168 - ldr r1, =gUnknown_03000B70 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r5, 0x5] - strb r1, [r0, 0x2] - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end RotScalAnimCmd_frame - - thumb_func_start rotscale_set_indirect -@ void rotscale_set_indirect(u8 rotscale_entry_index, s16 rotscale_data[]) -rotscale_set_indirect: @ 8007DD8 - lsls r0, 24 - ldr r2, =gUnknown_02021BC0 - lsrs r0, 21 - adds r0, r2 - ldrh r2, [r1] - strh r2, [r0] - ldrh r2, [r1, 0x2] - strh r2, [r0, 0x2] - ldrh r2, [r1, 0x4] - strh r2, [r0, 0x4] - ldrh r1, [r1, 0x6] - strh r1, [r0, 0x6] - bx lr - .pool - thumb_func_end rotscale_set_indirect - - thumb_func_start obj_get_rotscale_entry_index -@ int obj_get_rotscale_entry_index(struct obj *obj) -obj_get_rotscale_entry_index: @ 8007DF8 - push {lr} - adds r2, r0, 0 - movs r3, 0 - ldrb r0, [r2, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08007E12 - ldrb r0, [r2, 0x3] - lsls r0, 26 - lsrs r3, r0, 27 -_08007E12: - adds r0, r3, 0 - pop {r1} - bx r1 - thumb_func_end obj_get_rotscale_entry_index - - thumb_func_start sub_8007E18 -@ void sub_8007E18(struct obj *obj, s16 a2, s16 a3) -sub_8007E18: @ 8007E18 - strh r1, [r0, 0x3A] - strh r2, [r0, 0x3C] - adds r0, 0x3F - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] - bx lr - thumb_func_end sub_8007E18 - - thumb_func_start sub_8007E28 -@ int sub_8007E28(int a1, int a2, int a3) -sub_8007E28: @ 8007E28 - push {r4,r5,lr} - adds r3, r0, 0 - adds r5, r2, 0 - subs r0, r1, r3 - cmp r0, 0 - bge _08007E3A - negs r0, r0 - asrs r4, r0, 9 - b _08007E3E -_08007E3A: - asrs r0, 9 - negs r4, r0 -_08007E3E: - adds r0, r5, 0 - muls r0, r1 - adds r1, r3, 0 - bl __udivsi3 - adds r0, r4 - subs r0, r5, r0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8007E28 - - thumb_func_start obj_update_pos2 -@ void obj_update_pos2(struct obj *obj, int a2, int a3) -obj_update_pos2: @ 8007E54 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - adds r6, r1, 0 - mov r8, r2 - ldrb r1, [r5, 0x3] - lsls r0, r1, 26 - lsrs r7, r0, 27 - movs r0, 0x80 - lsls r0, 4 - mov r9, r0 - cmp r6, r9 - beq _08007EA2 - ldr r2, =gUnknown_082EC6F4 - lsrs r1, 6 - lsls r1, 3 - ldrb r0, [r5, 0x1] - lsrs r0, 6 - lsls r0, 5 - adds r1, r0 - adds r1, r2 - ldr r0, [r1] - lsls r4, r0, 8 - lsls r0, 16 - ldr r2, =gUnknown_02021BC0 - lsls r1, r7, 3 - adds r1, r2 - movs r2, 0 - ldrsh r1, [r1, r2] - bl __divsi3 - adds r1, r0, 0 - adds r0, r4, 0 - adds r2, r6, 0 - bl sub_8007E28 - strh r0, [r5, 0x24] -_08007EA2: - cmp r8, r9 - beq _08007EDA - ldr r2, =gUnknown_082EC6F4 - ldrb r1, [r5, 0x3] - lsrs r1, 6 - lsls r1, 3 - ldrb r0, [r5, 0x1] - lsrs r0, 6 - lsls r0, 5 - adds r1, r0 - adds r2, 0x4 - adds r1, r2 - ldr r0, [r1] - lsls r4, r0, 8 - lsls r0, 16 - ldr r2, =gUnknown_02021BC0 - lsls r1, r7, 3 - adds r1, r2 - movs r2, 0x6 - ldrsh r1, [r1, r2] - bl __divsi3 - adds r1, r0, 0 - adds r0, r4, 0 - mov r2, r8 - bl sub_8007E28 - strh r0, [r5, 0x26] -_08007EDA: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end obj_update_pos2 - - thumb_func_start obj_set_horizonal_and_vertical_flip -@ void obj_set_horizonal_and_vertical_flip(struct obj *obj, u8 a2, char a3) -obj_set_horizonal_and_vertical_flip: @ 8007EF0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - ldrb r6, [r0, 0x3] - lsls r3, r6, 26 - lsrs r3, 27 - movs r4, 0x7 - ands r3, r4 - lsls r3, 1 - subs r4, 0x46 - mov r8, r4 - mov r5, r8 - ands r5, r6 - orrs r5, r3 - strb r5, [r0, 0x3] - lsls r4, r5, 26 - lsrs r4, 27 - movs r6, 0x3F - adds r6, r0 - mov r12, r6 - ldrb r3, [r6] - lsls r3, 31 - lsrs r3, 31 - eors r1, r3 - movs r6, 0x1 - ands r1, r6 - lsls r1, 3 - orrs r4, r1 - lsls r4, 1 - mov r3, r8 - ands r3, r5 - orrs r3, r4 - strb r3, [r0, 0x3] - lsls r4, r3, 26 - lsrs r4, 27 - mov r5, r12 - ldrb r1, [r5] - lsls r1, 30 - lsrs r1, 31 - eors r2, r1 - ands r2, r6 - lsls r2, 4 - orrs r4, r2 - lsls r4, 1 - mov r6, r8 - ands r3, r6 - orrs r3, r4 - strb r3, [r0, 0x3] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end obj_set_horizonal_and_vertical_flip - - thumb_func_start rotscale_reset_half -@ void rotscale_reset_half(u8 index) -rotscale_reset_half: @ 8007F64 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_03000B70 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0 - strb r0, [r1, 0x1] - strb r0, [r1, 0x2] - strb r0, [r1, 0x3] - bx lr - .pool - thumb_func_end rotscale_reset_half - - thumb_func_start rotscale_reset_full_1 -@ void rotscale_reset_full_1(u8 index, u8 a2) -rotscale_reset_full_1: @ 8007F80 - lsls r0, 24 - lsrs r0, 24 - ldr r3, =gUnknown_03000B70 - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - movs r3, 0 - strb r1, [r2] - strb r3, [r2, 0x1] - strb r3, [r2, 0x2] - strb r3, [r2, 0x3] - movs r0, 0x80 - lsls r0, 1 - strh r0, [r2, 0x4] - strh r0, [r2, 0x6] - strh r3, [r2, 0x8] - bx lr - .pool - thumb_func_end rotscale_reset_full_1 - - thumb_func_start rotscale_reset_full_2 -@ void rotscale_reset_full_2(u8 index) -rotscale_reset_full_2: @ 8007FA8 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_03000B70 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0 - strb r0, [r1] - strb r0, [r1, 0x1] - strb r0, [r1, 0x2] - strb r0, [r1, 0x3] - movs r2, 0x80 - lsls r2, 1 - strh r2, [r1, 0x4] - strh r2, [r1, 0x6] - strh r0, [r1, 0x8] - bx lr - .pool - thumb_func_end rotscale_reset_full_2 - - thumb_func_start rotscale_frame_apply_absolute -@ void rotscale_frame_apply_absolute(u8 index, int a2) -rotscale_frame_apply_absolute: @ 8007FD0 - lsls r0, 24 - lsrs r0, 24 - ldr r3, =gUnknown_03000B70 - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldrh r0, [r1] - strh r0, [r2, 0x4] - ldrh r0, [r1, 0x2] - strh r0, [r2, 0x6] - ldrb r0, [r1, 0x4] - lsls r0, 8 - strh r0, [r2, 0x8] - bx lr - .pool - thumb_func_end rotscale_frame_apply_absolute - - thumb_func_start obj_anim_image_delay_progress -obj_anim_image_delay_progress: @ 8007FF4 - push {lr} - adds r3, r0, 0 - adds r3, 0x2C - ldrb r2, [r3] - movs r0, 0x40 - ands r0, r2 - cmp r0, 0 - bne _08008018 - lsls r0, r2, 26 - lsrs r0, 26 - subs r0, 0x1 - movs r1, 0x3F - ands r0, r1 - movs r1, 0x40 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] -_08008018: - pop {r0} - bx r0 - thumb_func_end obj_anim_image_delay_progress - - thumb_func_start obj_anim_rotscale_delay_progress -@ u8 obj_anim_rotscale_delay_progress(struct obj *object, u8 index) -obj_anim_rotscale_delay_progress: @ 800801C - push {lr} - lsls r1, 24 - lsrs r2, r1, 24 - adds r3, r0, 0 - adds r3, 0x2C - ldrb r1, [r3] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08008040 - ldr r0, =gUnknown_03000B70 - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x2] - subs r0, 0x1 - strb r0, [r1, 0x2] -_08008040: - ldrb r0, [r3] - lsrs r0, 7 - pop {r1} - bx r1 - .pool - thumb_func_end obj_anim_rotscale_delay_progress - - thumb_func_start rotscale_frame_apply_relative_and_sync -@ void rotscale_frame_apply_relative_and_sync(u8 index, int a2) -rotscale_frame_apply_relative_and_sync: @ 800804C - push {r4-r6,lr} - sub sp, 0x10 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, =gUnknown_03000B70 - lsls r4, r5, 1 - adds r4, r5 - lsls r4, 2 - adds r4, r0 - ldrh r0, [r1] - ldrh r2, [r4, 0x4] - adds r0, r2 - strh r0, [r4, 0x4] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x6] - adds r0, r2 - strh r0, [r4, 0x6] - ldrb r0, [r1, 0x4] - lsls r0, 8 - ldrh r1, [r4, 0x8] - adds r0, r1 - ldr r2, =0xffffff00 - adds r1, r2, 0 - ands r0, r1 - strh r0, [r4, 0x8] - movs r1, 0x4 - ldrsh r0, [r4, r1] - bl divide_0x10000_by - lsls r0, 16 - lsrs r0, 16 - ldr r6, =0xffff0000 - ldr r1, [sp] - ands r1, r6 - orrs r1, r0 - str r1, [sp] - movs r2, 0x6 - ldrsh r0, [r4, r2] - bl divide_0x10000_by - lsls r0, 16 - ldr r2, =0x0000ffff - ldr r1, [sp] - ands r1, r2 - orrs r1, r0 - str r1, [sp] - ldrh r1, [r4, 0x8] - ldr r0, [sp, 0x4] - ands r0, r6 - orrs r0, r1 - str r0, [sp, 0x4] - add r4, sp, 0x8 - mov r0, sp - adds r1, r4, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ObjAffineSet - adds r0, r5, 0 - adds r1, r4, 0 - bl rotscale_set_indirect - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end rotscale_frame_apply_relative_and_sync - - thumb_func_start divide_0x10000_by -@ int divide_0x10000_by(int n) -divide_0x10000_by: @ 80080E4 - push {lr} - adds r1, r0, 0 - movs r0, 0x80 - lsls r0, 9 - lsls r1, 16 - asrs r1, 16 - bl __divsi3 - lsls r0, 16 - asrs r0, 16 - pop {r1} - bx r1 - thumb_func_end divide_0x10000_by - - thumb_func_start rotscale_load_frame -@ void rotscale_load_frame(u8 index, struct obj *obj, rotscale_frame *a3) -rotscale_load_frame: @ 80080FC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, =gUnknown_03000B70 - lsls r4, r0, 1 - adds r4, r0 - lsls r4, 2 - adds r4, r3 - ldrb r3, [r4] - ldr r0, [r1, 0x10] - lsls r3, 2 - adds r3, r0 - ldrb r0, [r4, 0x1] - ldr r3, [r3] - lsls r0, 3 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r2] - ldrb r3, [r4] - ldr r0, [r1, 0x10] - lsls r3, 2 - adds r3, r0 - ldrb r0, [r4, 0x1] - ldr r3, [r3] - lsls r0, 3 - adds r0, r3 - ldrh r0, [r0, 0x2] - strh r0, [r2, 0x2] - ldrb r3, [r4] - ldr r0, [r1, 0x10] - lsls r3, 2 - adds r3, r0 - ldrb r0, [r4, 0x1] - ldr r3, [r3] - lsls r0, 3 - adds r0, r3 - ldrb r0, [r0, 0x4] - strb r0, [r2, 0x4] - ldrb r3, [r4] - ldr r0, [r1, 0x10] - lsls r3, 2 - adds r3, r0 - ldrb r0, [r4, 0x1] - ldr r1, [r3] - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x5] - strb r0, [r2, 0x5] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end rotscale_load_frame - - thumb_func_start sub_8008168 -sub_8008168: @ 8008168 - push {r4,lr} - sub sp, 0x8 - adds r2, r1, 0 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - movs r1, 0 - str r0, [sp] - str r1, [sp, 0x4] - ldrb r0, [r2, 0x5] - cmp r0, 0 - beq _0800818E - subs r0, 0x1 - strb r0, [r2, 0x5] - adds r0, r4, 0 - adds r1, r2, 0 - bl rotscale_frame_apply_relative_and_sync - b _0800819E -_0800818E: - adds r0, r4, 0 - adds r1, r2, 0 - bl rotscale_frame_apply_absolute - adds r0, r4, 0 - mov r1, sp - bl rotscale_frame_apply_relative_and_sync -_0800819E: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8008168 - - thumb_func_start StartObjectImageAnim -@ void StartObjectImageAnim(struct obj *object, u8 whichAnim) -StartObjectImageAnim: @ 80081A8 - adds r2, r0, 0 - adds r2, 0x2A - strb r1, [r2] - adds r0, 0x3F - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - movs r2, 0x11 - negs r2, r2 - ands r1, r2 - strb r1, [r0] - bx lr - thumb_func_end StartObjectImageAnim - - thumb_func_start StartObjectImageAnimIfDifferent -@ void StartObjectImageAnimIfDifferent(struct obj *object, u8 whichAnim) -StartObjectImageAnimIfDifferent: @ 80081C0 - push {lr} - adds r2, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, 0x2A - ldrb r0, [r0] - cmp r0, r1 - beq _080081D6 - adds r0, r2, 0 - bl StartObjectImageAnim -_080081D6: - pop {r0} - bx r0 - thumb_func_end StartObjectImageAnimIfDifferent - - thumb_func_start SeekObjectImageAnim -@ void SeekObjectImageAnim(struct obj *object, u8 cmdIndex) -SeekObjectImageAnim: @ 80081DC - push {r4-r7,lr} - adds r3, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r4, r3, 0 - adds r4, 0x2C - ldrb r0, [r4] - lsls r0, 25 - lsrs r6, r0, 31 - subs r1, 0x1 - adds r0, r3, 0 - adds r0, 0x2B - strb r1, [r0] - ldrb r1, [r4] - movs r7, 0x40 - negs r7, r7 - adds r0, r7, 0 - ands r0, r1 - strb r0, [r4] - adds r2, r3, 0 - adds r2, 0x3F - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r2] - ldrb r1, [r4] - movs r5, 0x41 - negs r5, r5 - adds r0, r5, 0 - ands r0, r1 - strb r0, [r4] - adds r0, r3, 0 - bl ContinueObjectImageAnim - ldrb r2, [r4] - movs r0, 0x3F - ands r0, r2 - cmp r0, 0 - beq _08008244 - lsls r0, r2, 26 - lsrs r0, 26 - adds r0, 0x1 - movs r1, 0x3F - ands r0, r1 - adds r1, r7, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4] -_08008244: - lsls r2, r6, 6 - ldrb r1, [r4] - adds r0, r5, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end SeekObjectImageAnim - - thumb_func_start StartObjectRotScalAnim -@ void StartObjectRotScalAnim(struct obj *object, u8 whichAnim) -StartObjectRotScalAnim: @ 8008258 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - bl obj_get_rotscale_entry_index - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - bl rotscale_reset_full_1 - adds r5, 0x3F - ldrb r0, [r5] - movs r1, 0x8 - orrs r0, r1 - movs r1, 0x21 - negs r1, r1 - ands r0, r1 - strb r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end StartObjectRotScalAnim - - thumb_func_start StartObjectRotScalAnimIfDifferent -@ void StartObjectRotScalAnimIfDifferent(struct obj *object, u8 whichAnim) -StartObjectRotScalAnimIfDifferent: @ 8008284 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - bl obj_get_rotscale_entry_index - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_03000B70 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1] - cmp r0, r4 - beq _080082AC - adds r0, r5, 0 - adds r1, r4, 0 - bl StartObjectRotScalAnim -_080082AC: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end StartObjectRotScalAnimIfDifferent - - thumb_func_start sub_80082B8 -sub_80082B8: @ 80082B8 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - bl obj_get_rotscale_entry_index - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_03000B70 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - strb r4, [r1] - adds r5, 0x3F - ldrb r0, [r5] - movs r1, 0x8 - orrs r0, r1 - movs r1, 0x21 - negs r1, r1 - ands r0, r1 - strb r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80082B8 - - thumb_func_start sub_80082F0 -sub_80082F0: @ 80082F0 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - bl obj_get_rotscale_entry_index - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_03000B70 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1] - cmp r0, r4 - beq _08008318 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80082B8 -_08008318: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80082F0 - - thumb_func_start sub_8008324 -sub_8008324: @ 8008324 - push {lr} - adds r3, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08008370 - adds r0, r3, 0 - adds r0, 0x2A - ldrb r1, [r0] - ldr r0, [r3, 0x8] - lsls r1, 2 - adds r1, r0 - adds r0, r3, 0 - adds r0, 0x2B - ldrb r0, [r0] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldrh r2, [r0] - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bge _08008358 - movs r2, 0 -_08008358: - adds r0, r3, 0 - adds r0, 0x40 - ldrh r1, [r0] - adds r1, r2 - ldr r2, =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r3, 0x4] - ldr r0, =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] -_08008370: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8008324 - - thumb_func_start rotscale_reset_all -@ void rotscale_reset_all() -rotscale_reset_all: @ 800837C - push {r4,lr} - ldr r1, =gUnknown_02021CC0 - movs r0, 0 - strb r0, [r1] - ldr r1, =gUnknown_03003018 - movs r0, 0 - str r0, [r1] - bl ResetSpriteTransformationMatrices - movs r4, 0 -_08008390: - adds r0, r4, 0 - bl rotscale_reset_full_2 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1F - bls _08008390 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end rotscale_reset_all - - thumb_func_start rotscale_alloc_entry -@ u8 rotscale_alloc_entry() -rotscale_alloc_entry: @ 80083B0 - push {r4,lr} - movs r2, 0 - movs r1, 0x1 - ldr r0, =gUnknown_03003018 - ldr r4, [r0] - adds r3, r0, 0 -_080083BC: - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - bne _080083D4 - ldr r0, [r3] - orrs r0, r1 - str r0, [r3] - adds r0, r2, 0 - b _080083E2 - .pool -_080083D4: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 1 - cmp r2, 0x1F - bls _080083BC - movs r0, 0xFF -_080083E2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end rotscale_alloc_entry - - thumb_func_start rotscale_free_entry -@ void rotscale_free_entry(u8 rotscale_index) -rotscale_free_entry: @ 80083E8 - push {lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - movs r0, 0 - movs r1, 0x1 - ldr r3, =gUnknown_03003018 - cmp r0, r2 - bcs _08008406 -_080083FA: - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 1 - cmp r0, r2 - bcc _080083FA -_08008406: - ldr r0, [r3] - bics r0, r1 - str r0, [r3] - movs r1, 0x80 - lsls r1, 1 - str r1, [sp] - adds r0, r2, 0 - movs r2, 0 - movs r3, 0 - bl SetSpriteTransformationMatrix - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end rotscale_free_entry - - thumb_func_start obj_alloc_rotscale_entry -@ void obj_alloc_rotscale_entry(struct obj *obj) -obj_alloc_rotscale_entry: @ 8008428 - push {r4,r5,lr} - adds r4, r0, 0 - bl rotscale_alloc_entry - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xFF - beq _08008470 - ldrb r3, [r4, 0x1] - lsrs r1, r3, 6 - ldrb r2, [r4, 0x3] - lsrs r2, 6 - lsls r3, 30 - lsrs r3, 30 - adds r0, r4, 0 - bl CalcVecFromObjectCenterToObjectUpperLeft - movs r0, 0x1F - adds r1, r5, 0 - ands r1, r0 - lsls r1, 1 - ldrb r2, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x3] - adds r2, r4, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, 0 - bl rotscale_reset_full_2 -_08008470: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end obj_alloc_rotscale_entry - - thumb_func_start sub_8008478 -sub_8008478: @ 8008478 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x10 - adds r6, r0, 0 - adds r0, r1, 0 - adds r4, r2, 0 - adds r5, r3, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r0, 16 - asrs r0, 16 - bl divide_0x10000_by - lsls r0, 16 - lsrs r0, 16 - ldr r1, =0xffff0000 - mov r8, r1 - ldr r1, [sp] - mov r2, r8 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - bl divide_0x10000_by - lsls r0, 16 - ldr r2, =0x0000ffff - ldr r1, [sp] - ands r1, r2 - orrs r1, r0 - str r1, [sp] - ldr r0, [sp, 0x4] - mov r1, r8 - ands r0, r1 - orrs r0, r5 - str r0, [sp, 0x4] - add r4, sp, 0x8 - mov r0, sp - adds r1, r4, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ObjAffineSet - adds r0, r6, 0 - adds r1, r4, 0 - bl rotscale_set_indirect - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8008478 - - thumb_func_start LoadObjectPic -@ u16 LoadObjectPic(struct obj_tiles *pic) -LoadObjectPic: @ 80084F8 - push {r4-r6,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x4] - lsrs r0, 5 - bl AllocObjectTiles - lsls r4, r0, 16 - asrs r6, r4, 16 - cmp r6, 0 - blt _08008534 - ldrh r0, [r5, 0x6] - lsrs r4, 16 - ldrh r2, [r5, 0x4] - lsrs r2, 5 - adds r1, r4, 0 - bl AddObjectTileRange - ldr r0, [r5] - lsls r1, r6, 5 - ldr r2, =0x06010000 - adds r1, r2 - ldrh r2, [r5, 0x4] - lsrs r2, 1 - bl CpuSet - adds r0, r4, 0 - b _08008536 - .pool -_08008534: - movs r0, 0 -_08008536: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end LoadObjectPic - - thumb_func_start LoadObjectPics -@ void LoadObjectPics(struct obj_tiles *pics) -LoadObjectPics: @ 800853C - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0 - ldr r0, [r5] - cmp r0, 0 - beq _08008560 -_08008548: - lsls r0, r4, 3 - adds r0, r5, r0 - bl LoadObjectPic - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 3 - adds r0, r5 - ldr r0, [r0] - cmp r0, 0 - bne _08008548 -_08008560: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end LoadObjectPics - - thumb_func_start FreeObjectTilesByTag -@ void FreeObjectTilesByTag(u16 tag) -FreeObjectTilesByTag: @ 8008568 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r0, 16 - bl IndexOfObjectTilesTag - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xFF - beq _080085C6 - ldr r0, =gUnknown_03000A70 - lsls r1, r4, 2 - adds r2, r1, r0 - adds r0, 0x2 - adds r1, r0 - ldrh r0, [r1] - ldrh r3, [r2] - adds r0, r3, r0 - ldr r1, =gUnknown_030009F0 - mov r8, r1 - lsls r5, r4, 1 - cmp r3, r0 - bge _080085BE - ldr r1, =gUnknown_02021B3C - mov r12, r1 - movs r6, 0x7 - movs r7, 0x1 - adds r4, r0, 0 -_080085A2: - lsrs r2, r3, 3 - add r2, r12 - adds r0, r3, 0 - ands r0, r6 - adds r1, r7, 0 - lsls r1, r0 - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r4 - blt _080085A2 -_080085BE: - mov r0, r8 - adds r1, r5, r0 - ldr r0, =0x0000ffff - strh r0, [r1] -_080085C6: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end FreeObjectTilesByTag - - thumb_func_start FreeAllObjectTiles -@ void FreeAllObjectTiles() -FreeAllObjectTiles: @ 80085E0 - push {r4-r7,lr} - movs r2, 0 - ldr r7, =gUnknown_030009F0 - ldr r0, =0x0000ffff - adds r6, r0, 0 - ldr r4, =gUnknown_03000A70 - movs r3, 0 - adds r5, r4, 0x2 -_080085F0: - lsls r1, r2, 1 - adds r1, r7 - ldrh r0, [r1] - orrs r0, r6 - strh r0, [r1] - lsls r1, r2, 2 - adds r0, r1, r4 - strh r3, [r0] - adds r1, r5 - strh r3, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3F - bls _080085F0 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end FreeAllObjectTiles - - thumb_func_start GetObjectTileRangeStartByTag -@ u16 GetObjectTileRangeStartByTag(u16 tag) -GetObjectTileRangeStartByTag: @ 8008620 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl IndexOfObjectTilesTag - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xFF - beq _08008640 - ldr r0, =gUnknown_03000A70 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1] - b _08008642 - .pool -_08008640: - ldr r0, =0x0000ffff -_08008642: - pop {r1} - bx r1 - .pool - thumb_func_end GetObjectTileRangeStartByTag - - thumb_func_start IndexOfObjectTilesTag -@ u8 IndexOfObjectTilesTag(u16 tag) -IndexOfObjectTilesTag: @ 800864C - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - movs r1, 0 - ldr r3, =gUnknown_030009F0 -_08008656: - lsls r0, r1, 1 - adds r0, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _08008668 - adds r0, r1, 0 - b _08008674 - .pool -_08008668: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3F - bls _08008656 - movs r0, 0xFF -_08008674: - pop {r1} - bx r1 - thumb_func_end IndexOfObjectTilesTag - - thumb_func_start GetTagByObjectTileRangeStart -@ u16 GetTagByObjectTileRangeStart(u16 rangeStart) -GetTagByObjectTileRangeStart: @ 8008678 - push {r4-r6,lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - ldr r6, =gUnknown_030009F0 - ldr r5, =0x0000ffff - ldr r4, =gUnknown_03000A70 -_08008686: - lsls r0, r2, 1 - adds r1, r0, r6 - ldrh r0, [r1] - cmp r0, r5 - beq _080086AC - lsls r0, r2, 2 - adds r0, r4 - ldrh r0, [r0] - cmp r0, r3 - bne _080086AC - ldrh r0, [r1] - b _080086B8 - .pool -_080086AC: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3F - bls _08008686 - ldr r0, =0x0000ffff -_080086B8: - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end GetTagByObjectTileRangeStart - - thumb_func_start AddObjectTileRange -@ void AddObjectTileRange(u16 tag, u16 start, u16 count) -AddObjectTileRange: @ 80086C4 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 16 - lsrs r6, 16 - ldr r0, =0x0000ffff - bl IndexOfObjectTilesTag - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_030009F0 - lsls r1, r0, 1 - adds r1, r2 - strh r4, [r1] - ldr r1, =gUnknown_03000A70 - lsls r0, 2 - adds r2, r0, r1 - strh r5, [r2] - adds r1, 0x2 - adds r0, r1 - strh r6, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end AddObjectTileRange - - thumb_func_start ResetObjectPaletteAllocator -@ void ResetObjectPaletteAllocator() -ResetObjectPaletteAllocator: @ 800870C - push {r4,lr} - ldr r1, =gUnknown_0300301C - movs r0, 0 - strb r0, [r1] - movs r2, 0 - ldr r4, =gUnknown_03000CF0 - ldr r0, =0x0000ffff - adds r3, r0, 0 -_0800871C: - lsls r0, r2, 1 - adds r0, r4 - ldrh r1, [r0] - orrs r1, r3 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xF - bls _0800871C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ResetObjectPaletteAllocator - - thumb_func_start LoadTaggedObjectPalette -@ u8 LoadTaggedObjectPalette(struct TaggedObjectPalette *palette) -LoadTaggedObjectPalette: @ 8008744 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x4] - bl IndexOfObjectPaletteTag - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xFF - beq _0800875A - adds r0, r4, 0 - b _0800878A -_0800875A: - ldr r0, =0x0000ffff - bl IndexOfObjectPaletteTag - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xFF - beq _08008788 - ldr r1, =gUnknown_03000CF0 - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r5, 0x4] - strh r1, [r0] - ldr r0, [r5] - lsls r1, r4, 4 - bl LoadObjectPalette - adds r0, r4, 0 - b _0800878A - .pool -_08008788: - movs r0, 0xFF -_0800878A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end LoadTaggedObjectPalette - - thumb_func_start LoadTaggedObjectPalettes -@ void LoadTaggedObjectPalettes(struct TaggedObjectPalette *palettes) -LoadTaggedObjectPalettes: @ 8008790 - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0 - b _0800879E -_08008798: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_0800879E: - lsls r0, r4, 3 - adds r1, r0, r5 - ldr r0, [r1] - cmp r0, 0 - beq _080087B6 - adds r0, r1, 0 - bl LoadTaggedObjectPalette - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _08008798 -_080087B6: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end LoadTaggedObjectPalettes - - thumb_func_start LoadObjectPalette -@ void LoadObjectPalette(void *src, u16 destOffset) -LoadObjectPalette: @ 80087BC - push {lr} - lsls r1, 16 - movs r2, 0x80 - lsls r2, 17 - adds r1, r2 - lsrs r1, 16 - movs r2, 0x20 - bl LoadPalette - pop {r0} - bx r0 - thumb_func_end LoadObjectPalette - - thumb_func_start AllocObjectPalette -@ u8 AllocObjectPalette(u16 tag) -AllocObjectPalette: @ 80087D4 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, =0x0000ffff - bl IndexOfObjectPaletteTag - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080087FC - ldr r1, =gUnknown_03000CF0 - lsls r0, r2, 1 - adds r0, r1 - strh r4, [r0] - adds r0, r2, 0 - b _080087FE - .pool -_080087FC: - movs r0, 0xFF -_080087FE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end AllocObjectPalette - - thumb_func_start IndexOfObjectPaletteTag -@ u8 IndexOfObjectPaletteTag(u16 tag) -IndexOfObjectPaletteTag: @ 8008804 - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, =gUnknown_0300301C - ldrb r1, [r0] - cmp r1, 0xF - bhi _08008836 - ldr r3, =gUnknown_03000CF0 -_08008814: - lsls r0, r1, 1 - adds r0, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _0800882C - adds r0, r1, 0 - b _08008838 - .pool -_0800882C: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _08008814 -_08008836: - movs r0, 0xFF -_08008838: - pop {r1} - bx r1 - thumb_func_end IndexOfObjectPaletteTag - - thumb_func_start GetObjectPaletteTagBySlot -@ u16 GetObjectPaletteTagBySlot(u8 paletteSlot) -GetObjectPaletteTagBySlot: @ 800883C - lsls r0, 24 - ldr r1, =gUnknown_03000CF0 - lsrs r0, 23 - adds r0, r1 - ldrh r0, [r0] - bx lr - .pool - thumb_func_end GetObjectPaletteTagBySlot - - thumb_func_start FreeObjectPaletteByTag -@ void FreeObjectPaletteByTag(int tag) -FreeObjectPaletteByTag: @ 800884C - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl IndexOfObjectPaletteTag - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xFF - beq _08008868 - ldr r0, =gUnknown_03000CF0 - lsls r1, 1 - adds r1, r0 - ldr r0, =0x0000ffff - strh r0, [r1] -_08008868: - pop {r0} - bx r0 - .pool - thumb_func_end FreeObjectPaletteByTag - - thumb_func_start SetSpriteOamTables_NoPriorityFromTable -@ void SetSpriteOamTables_NoPriorityFromTable(struct obj *object, u32 spriteOamTables) -SetSpriteOamTables_NoPriorityFromTable: @ 8008874 - str r1, [r0, 0x18] - adds r0, 0x42 - movs r1, 0x40 - strb r1, [r0] - bx lr - thumb_func_end SetSpriteOamTables_NoPriorityFromTable - - thumb_func_start AddSprite -@ u8 AddSprite(struct obj *obj, u8 *spriteIndex) -AddSprite: @ 8008880 - push {r4,lr} - adds r4, r0, 0 - adds r3, r1, 0 - ldr r1, =gUnknown_02021B38 - ldrb r0, [r3] - ldrb r1, [r1] - cmp r0, r1 - bcc _08008898 - movs r0, 0x1 - b _080088E0 - .pool -_08008898: - ldr r0, [r4, 0x18] - cmp r0, 0 - beq _080088AC - adds r0, r4, 0 - adds r0, 0x42 - ldrb r1, [r0] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0 - bne _080088CC -_080088AC: - ldr r0, =gMain - ldrb r2, [r3] - lsls r2, 3 - adds r0, 0x38 - adds r2, r0 - ldr r0, [r4] - ldr r1, [r4, 0x4] - str r0, [r2] - str r1, [r2, 0x4] - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - movs r0, 0 - b _080088E0 - .pool -_080088CC: - ldrb r1, [r3] - lsls r1, 3 - ldr r0, =gUnknown_030022F8 - adds r1, r0 - adds r0, r4, 0 - adds r2, r3, 0 - bl AddSpritesFromSpriteOamTable - lsls r0, 24 - lsrs r0, 24 -_080088E0: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end AddSprite - - thumb_func_start AddSpritesFromSpriteOamTable -@ u8 AddSpritesFromSpriteOamTable(struct obj *object, struct sprite *sprite, u8 *spriteIndex) -AddSpritesFromSpriteOamTable: @ 80088EC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - adds r3, r0, 0 - str r1, [sp] - mov r8, r2 - ldr r0, =gUnknown_02021B38 - ldrb r1, [r2] - ldrb r0, [r0] - cmp r1, r0 - bcc _08008910 -_08008908: - movs r0, 0x1 - b _08008AE6 - .pool -_08008910: - adds r0, r3, 0 - adds r0, 0x42 - ldrb r1, [r0] - lsls r1, 26 - lsrs r1, 23 - ldr r2, [r3, 0x18] - adds r7, r2, r1 - mov r12, r3 - str r0, [sp, 0x18] - cmp r7, 0 - beq _0800892C - ldr r0, [r7, 0x4] - cmp r0, 0 - bne _08008942 -_0800892C: - mov r2, r12 - ldr r0, [r2] - ldr r1, [r2, 0x4] - ldr r2, [sp] - str r0, [r2] - str r1, [r2, 0x4] - mov r1, r8 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08008AE4 -_08008942: - mov r2, r12 - ldrh r0, [r2, 0x4] - lsls r0, 22 - lsrs r0, 22 - str r0, [sp, 0x4] - ldrb r0, [r7] - str r0, [sp, 0xC] - ldrb r0, [r2, 0x3] - lsls r0, 26 - lsrs r0, 27 - asrs r1, r0, 3 - str r1, [sp, 0x10] - movs r1, 0x1 - ldr r2, [sp, 0x10] - ands r2, r1 - str r2, [sp, 0x10] - asrs r0, 4 - mov r10, r0 - ands r0, r1 - mov r10, r0 - mov r1, r12 - ldrh r0, [r1, 0x2] - lsls r0, 23 - lsrs r0, 23 - adds r1, 0x28 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - subs r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 - mov r1, r12 - ldrb r0, [r1] - adds r1, 0x29 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - movs r0, 0 - mov r9, r0 - ldr r1, [sp, 0xC] - cmp r9, r1 - bcc _080089A0 - b _08008AE4 -_080089A0: - lsls r0, r2, 16 - asrs r0, 16 - str r0, [sp, 0x14] -_080089A6: - mov r2, r8 - ldrb r0, [r2] - ldr r1, =gUnknown_02021B38 - ldrb r1, [r1] - cmp r0, r1 - bcs _08008908 - ldr r0, [r7, 0x4] - mov r2, r9 - lsls r6, r2, 2 - adds r2, r6, r0 - movs r0, 0 - ldrsb r0, [r2, r0] - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0x1 - ldrsb r0, [r2, r0] - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, [sp, 0x10] - cmp r0, 0 - beq _080089FC - ldr r0, [r2] - lsls r1, r0, 12 - lsrs r1, 30 - lsls r1, 2 - lsls r0, 14 - lsrs r0, 30 - lsls r0, 4 - adds r1, r0 - ldr r0, =gUnknown_082EC754 - adds r1, r0 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - lsls r0, r4, 16 - asrs r0, 16 - adds r0, r1 - lsls r0, 16 - lsrs r4, r0, 16 - mvns r0, r4 - adds r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_080089FC: - mov r1, r10 - cmp r1, 0 - beq _08008A2E - ldr r0, [r2] - lsls r1, r0, 12 - lsrs r1, 30 - lsls r1, 2 - lsls r0, 14 - lsrs r0, 30 - lsls r0, 4 - adds r1, r0 - ldr r2, =gUnknown_082EC754 - adds r1, r2 - ldrb r1, [r1, 0x1] - lsls r1, 24 - asrs r1, 24 - lsls r0, r5, 16 - asrs r0, 16 - adds r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 - mvns r0, r5 - adds r0, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_08008A2E: - mov r1, r9 - lsls r0, r1, 3 - ldr r2, [sp] - adds r3, r0, r2 - mov r2, r12 - ldr r0, [r2] - ldr r1, [r2, 0x4] - str r0, [r3] - str r1, [r3, 0x4] - ldr r0, [r7, 0x4] - adds r0, r6, r0 - ldr r1, [r0] - lsls r1, 14 - lsrs r1, 30 - lsls r1, 6 - ldrb r2, [r3, 0x1] - movs r0, 0x3F - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x1] - ldr r0, [r7, 0x4] - adds r0, r6, r0 - ldr r1, [r0] - lsls r1, 12 - lsrs r1, 30 - lsls r1, 6 - ldrb r2, [r3, 0x3] - movs r0, 0x3F - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x3] - lsls r1, r4, 16 - asrs r1, 16 - ldr r0, [sp, 0x14] - adds r1, r0, r1 - ldr r2, =0x000001ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r3, 0x2] - ldr r0, =0xfffffe00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x2] - ldr r1, [sp, 0x8] - adds r0, r1, r5 - strb r0, [r3] - ldr r0, [r7, 0x4] - adds r0, r6, r0 - ldr r1, [r0] - lsls r1, 2 - lsrs r1, 22 - ldr r2, [sp, 0x4] - adds r1, r2, r1 - ldr r2, =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r3, 0x4] - ldr r0, =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] - ldr r0, [sp, 0x18] - ldrb r1, [r0] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0x80 - beq _08008ACA - ldr r0, [r7, 0x4] - adds r0, r6, r0 - ldr r1, [r0] - lsrs r1, 30 - lsls r1, 2 - ldrb r2, [r3, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x5] -_08008ACA: - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - mov r1, r8 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r2, [sp, 0xC] - cmp r9, r2 - bcs _08008AE4 - b _080089A6 -_08008AE4: - movs r0, 0 -_08008AE6: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end AddSpritesFromSpriteOamTable - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/start_menu.s b/asm/start_menu.s index 059d23ef84..713923c792 100644 --- a/asm/start_menu.s +++ b/asm/start_menu.s @@ -758,7 +758,7 @@ HandleStartMenuInput: @ 809FAC4 cmp r0, 0 beq _0809FAE4 movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0x1 negs r0, r0 bl MoveMenuCursor @@ -771,7 +771,7 @@ _0809FAE4: cmp r0, 0 beq _0809FAFE movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0x1 bl MoveMenuCursor ldr r1, =gUnknown_0203760E @@ -783,7 +783,7 @@ _0809FAFE: cmp r0, 0 beq _0809FB98 movs r0, 0x5 - bl audio_play + bl PlaySE ldr r1, =gUnknown_08510540 ldr r2, =gUnknown_02037610 ldr r0, =gUnknown_0203760E @@ -864,7 +864,7 @@ StartMenu_Pokedex: @ 809FBB4 .pool _0809FBCC: movs r0, 0x29 - bl sav12_xor_increment + bl IncrementGameStat bl play_some_sound bl RemoveExtraStartMenuWindows bl overworld_free_bg_tilemaps @@ -1354,13 +1354,13 @@ task50_save_game: @ 809FFD0 _0809FFEC: cmp r1, 0x3 bgt _080A0000 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] b _080A0000 .pool _0809FFFC: - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r1, [r0] _080A0000: adds r0, r4, 0 @@ -1421,7 +1421,7 @@ sub_80A003C: @ 80A003C .pool _080A0064: movs r0, 0x5 - bl audio_play + bl PlaySE _080A006A: movs r0, 0x1 _080A006C: @@ -1518,14 +1518,14 @@ _080A0124: beq _080A0168 b _080A0174 _080A012A: - ldr r0, =gUnknown_03006210 + ldr r0, =gSaveFileStatus ldrh r0, [r0] cmp r0, 0 beq _080A0136 cmp r0, 0x2 bne _080A013E _080A0136: - ldr r0, =gUnknown_020322D4 + ldr r0, =gDifferentSaveFile ldrb r0, [r0] cmp r0, 0 bne _080A0158 @@ -1556,7 +1556,7 @@ _080A0176: thumb_func_start sub_80A017C sub_80A017C: @ 80A017C push {lr} - ldr r0, =gUnknown_020322D4 + ldr r0, =gDifferentSaveFile ldrb r0, [r0] cmp r0, 0x1 bne _080A019C @@ -1656,14 +1656,14 @@ sub_80A0234: @ 80A0234 sub_80A024C: @ 80A024C push {r4,lr} movs r0, 0 - bl sav12_xor_increment + bl IncrementGameStat bl sub_81A9E90 - ldr r4, =gUnknown_020322D4 + ldr r4, =gDifferentSaveFile ldrb r0, [r4] cmp r0, 0x1 bne _080A0274 movs r0, 0x4 - bl save_game_when_memory_present + bl TrySavingData lsls r0, 24 lsrs r1, r0, 24 movs r0, 0 @@ -1672,7 +1672,7 @@ sub_80A024C: @ 80A024C .pool _080A0274: movs r0, 0 - bl save_game_when_memory_present + bl TrySavingData lsls r0, 24 lsrs r1, r0, 24 _080A027E: @@ -1705,7 +1705,7 @@ sub_80A02B0: @ 80A02B0 cmp r0, 0 bne _080A02CA movs r0, 0x37 - bl audio_play + bl PlaySE ldr r1, =gUnknown_0203761C ldr r0, =sub_80A02D8 str r0, [r1] @@ -1719,7 +1719,7 @@ _080A02CA: thumb_func_start sub_80A02D8 sub_80A02D8: @ 80A02D8 push {lr} - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _080A02F6 @@ -1746,7 +1746,7 @@ sub_80A02FC: @ 80A02FC cmp r0, 0 bne _080A0316 movs r0, 0x16 - bl audio_play + bl PlaySE ldr r1, =gUnknown_0203761C ldr r0, =sub_80A0324 str r0, [r1] @@ -1938,7 +1938,7 @@ _080A045A: b _080A04FC .pool _080A0490: - bl ResetAllObjectData + bl ResetSpriteData bl ResetTasks bl ResetPaletteFade bl dp12_8087EA4 @@ -2461,7 +2461,7 @@ sub_80A0914: @ 80A0914 sub_80A0934: @ 80A0934 push {lr} movs r0, 0x5 - bl audio_play + bl PlaySE bl sub_80A0914 pop {r0} bx r0 diff --git a/asm/starter_choose.s b/asm/starter_choose.s index 3bc8281902..87db691327 100644 --- a/asm/starter_choose.s +++ b/asm/starter_choose.s @@ -26,8 +26,8 @@ _08133EE8: thumb_func_start sub_8133EF8 sub_8133EF8: @ 8133EF8 push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -147,9 +147,9 @@ set_256color_bg_bg0: @ 8133F0C bl clear_scheduled_bg_copies_to_vram bl remove_some_task bl ResetTasks - bl ResetAllObjectData + bl ResetSpriteData bl ResetPaletteFade - bl ResetObjectPaletteAllocator + bl FreeAllSpritePalettes bl dp13_810BB8C bl sub_8098C64 movs r1, 0xE0 @@ -164,7 +164,7 @@ set_256color_bg_bg0: @ 8133F0C ldr r0, =gUnknown_085B1EE8 bl LoadCompressedObjectPic ldr r0, =gUnknown_085B1EF8 - bl LoadTaggedObjectPalettes + bl LoadSpritePalettes movs r0, 0x1 negs r0, r0 mov r1, r9 @@ -229,10 +229,10 @@ set_256color_bg_bg0: @ 8133F0C movs r1, 0x78 movs r2, 0x38 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites mov r8, r3 lsls r1, r0, 4 adds r1, r0 @@ -245,7 +245,7 @@ set_256color_bg_bg0: @ 8133F0C ldrb r2, [r5, 0x1] adds r0, r6, 0 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -259,7 +259,7 @@ set_256color_bg_bg0: @ 8133F0C ldrb r2, [r5, 0x3] adds r0, r6, 0 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -273,7 +273,7 @@ set_256color_bg_bg0: @ 8133F0C ldrb r2, [r5, 0x5] adds r0, r6, 0 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -301,8 +301,8 @@ set_256color_bg_bg0: @ 8133F0C sub_81341E0: @ 81341E0 push {lr} bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl do_scheduled_bg_tilemap_copies_to_vram bl UpdatePaletteFade pop {r0} @@ -380,7 +380,7 @@ sub_813425C: @ 813425C adds r1, r5, 0 adds r2, r4, 0 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0xC] @@ -393,7 +393,7 @@ sub_813425C: @ 813425C bl sub_8134690 lsls r0, 24 lsrs r0, 24 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -453,7 +453,7 @@ sub_8134340: @ 8134340 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 @@ -503,7 +503,7 @@ sub_8134390: @ 8134390 lsls r0, 16 lsrs r0, 16 movs r1, 0 - bl cry_related + bl PlayCry1 movs r0, 0 movs r1, 0x11 bl FillWindowPixelBuffer @@ -555,7 +555,7 @@ _08134420: beq _08134450 b _0813449A _08134426: - ldr r2, =gUnknown_020375F0 + ldr r2, =gScriptResult ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 @@ -571,14 +571,14 @@ _08134426: .pool _08134450: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =gTasks lsls r5, r4, 2 adds r5, r4 lsls r5, 3 adds r5, r0 ldrb r4, [r5, 0xA] - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites lsls r0, r4, 4 adds r0, r4 lsls r0, 2 @@ -586,7 +586,7 @@ _08134450: ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix adds r0, r4, 0 bl sub_818D820 ldrb r0, [r5, 0xC] @@ -597,9 +597,9 @@ _08134450: ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 - bl rotscale_free_entry + bl FreeOamMatrix adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, =sub_81344AC str r0, [r5] _0813449A: @@ -848,7 +848,7 @@ sub_8134690: @ 8134690 bl sub_818D3E4 lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 @@ -930,13 +930,13 @@ sub_813473C: @ 813473C bne _08134768 adds r0, r3, 0 movs r1, 0x1 - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent b _08134770 .pool _08134768: adds r0, r3, 0 movs r1, 0 - bl StartObjectImageAnimIfDifferent + bl StartSpriteAnimIfDifferent _08134770: pop {r0} bx r0 diff --git a/asm/text_window.s b/asm/text_window.s deleted file mode 100644 index 737c0018d4..0000000000 --- a/asm/text_window.s +++ /dev/null @@ -1,686 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8098758 -sub_8098758: @ 8098758 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bhi _08098770 - lsls r0, 3 - ldr r1, =gUnknown_0851021C - adds r0, r1 - b _08098772 - .pool -_08098770: - ldr r0, =gUnknown_0851021C -_08098772: - pop {r1} - bx r1 - .pool - thumb_func_end sub_8098758 - - thumb_func_start copy_textbox_border_tile_patterns_to_vram -@ void copy_textbox_border_tile_patterns_to_vram(u8 rbox_id, u16 tile_pattern_dest_offset, u8 pal_dest_offset) -copy_textbox_border_tile_patterns_to_vram: @ 809877C - push {r4,r5,lr} - adds r4, r1, 0 - adds r5, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_08DDD748 - movs r2, 0xE0 - lsls r2, 1 - adds r3, r4, 0 - bl LoadBgTiles - bl sub_8098C64 - adds r1, r5, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end copy_textbox_border_tile_patterns_to_vram - - thumb_func_start box_border_load_tiles_and_pal -box_border_load_tiles_and_pal: @ 80987BC - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 24 - lsrs r2, 24 - bl sub_809882C - pop {r0} - bx r0 - thumb_func_end box_border_load_tiles_and_pal - - thumb_func_start sub_80987D4 -sub_80987D4: @ 80987D4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r4, r1, 0 - adds r6, r2, 0 - mov r8, r3 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 16 - lsrs r6, 16 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r0, 24 - ldr r5, =gUnknown_0851021C - lsls r4, 3 - adds r1, r4, r5 - ldr r1, [r1] - movs r2, 0x90 - lsls r2, 1 - adds r3, r6, 0 - bl LoadBgTiles - adds r5, 0x4 - adds r4, r5 - ldr r0, [r4] - mov r1, r8 - movs r2, 0x20 - bl LoadPalette - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80987D4 - - thumb_func_start sub_809882C -sub_809882C: @ 809882C - push {r4,lr} - adds r4, r1, 0 - adds r3, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r3, 24 - lsrs r3, 24 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - ldrb r1, [r1, 0x14] - lsrs r1, 3 - adds r2, r4, 0 - bl sub_80987D4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_809882C - - thumb_func_start sub_8098858 -sub_8098858: @ 8098858 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 16 - lsrs r5, 16 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0xC] - adds r0, r4, 0 - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r4, 0 - movs r1, 0x1 - bl GetWindowAttribute - mov r8, r0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - adds r0, r4, 0 - movs r1, 0x2 - bl GetWindowAttribute - adds r6, r0, 0 - lsls r6, 16 - lsrs r6, 16 - adds r0, r4, 0 - movs r1, 0x3 - bl GetWindowAttribute - mov r9, r0 - mov r2, r9 - lsls r2, 16 - lsrs r2, 16 - mov r9, r2 - adds r0, r4, 0 - movs r1, 0x4 - bl GetWindowAttribute - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x10] - mov r0, r8 - subs r0, 0x1 - lsls r2, r0, 24 - lsrs r2, 24 - str r2, [sp, 0x14] - subs r4, r6, 0x1 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - mov r10, r0 - str r0, [sp] - str r0, [sp, 0x4] - ldr r2, [sp, 0xC] - str r2, [sp, 0x8] - adds r0, r7, 0 - adds r1, r5, 0 - ldr r2, [sp, 0x14] - adds r3, r4, 0 - bl FillBgTilemapBufferRect - adds r1, r5, 0x1 - lsls r1, 16 - lsrs r1, 16 - mov r0, r8 - lsls r2, r0, 24 - lsrs r2, 24 - str r2, [sp, 0x18] - mov r2, r9 - lsls r0, r2, 24 - lsrs r0, 24 - str r0, [sp, 0x1C] - str r0, [sp] - mov r0, r10 - str r0, [sp, 0x4] - ldr r2, [sp, 0xC] - str r2, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x18] - adds r3, r4, 0 - bl FillBgTilemapBufferRect - adds r1, r5, 0x2 - lsls r1, 16 - lsrs r1, 16 - add r8, r9 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - mov r2, r10 - str r2, [sp] - str r2, [sp, 0x4] - ldr r0, [sp, 0xC] - str r0, [sp, 0x8] - adds r0, r7, 0 - mov r2, r8 - adds r3, r4, 0 - bl FillBgTilemapBufferRect - adds r1, r5, 0x3 - lsls r1, 16 - lsrs r1, 16 - lsls r2, r6, 24 - lsrs r2, 24 - mov r9, r2 - mov r0, r10 - str r0, [sp] - ldr r2, [sp, 0x10] - lsls r4, r2, 24 - lsrs r4, 24 - str r4, [sp, 0x4] - ldr r0, [sp, 0xC] - str r0, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x14] - mov r3, r9 - bl FillBgTilemapBufferRect - adds r1, r5, 0x5 - lsls r1, 16 - lsrs r1, 16 - mov r2, r10 - str r2, [sp] - str r4, [sp, 0x4] - ldr r0, [sp, 0xC] - str r0, [sp, 0x8] - adds r0, r7, 0 - mov r2, r8 - mov r3, r9 - bl FillBgTilemapBufferRect - adds r1, r5, 0x6 - lsls r1, 16 - lsrs r1, 16 - ldr r2, [sp, 0x10] - adds r6, r2 - lsls r6, 24 - lsrs r6, 24 - mov r0, r10 - str r0, [sp] - str r0, [sp, 0x4] - ldr r2, [sp, 0xC] - str r2, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x14] - adds r3, r6, 0 - bl FillBgTilemapBufferRect - adds r1, r5, 0x7 - lsls r1, 16 - lsrs r1, 16 - ldr r0, [sp, 0x1C] - str r0, [sp] - mov r2, r10 - str r2, [sp, 0x4] - ldr r0, [sp, 0xC] - str r0, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x18] - adds r3, r6, 0 - bl FillBgTilemapBufferRect - adds r5, 0x8 - lsls r5, 16 - lsrs r5, 16 - mov r2, r10 - str r2, [sp] - str r2, [sp, 0x4] - ldr r0, [sp, 0xC] - str r0, [sp, 0x8] - adds r0, r7, 0 - adds r1, r5, 0 - mov r2, r8 - adds r3, r6, 0 - bl FillBgTilemapBufferRect - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8098858 - - thumb_func_start sub_80989E0 -sub_80989E0: @ 80989E0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - adds r4, r0, 0 - mov r9, r1 - lsls r4, 24 - lsrs r4, 24 - mov r0, r9 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - adds r0, r4, 0 - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r4, 0 - movs r1, 0x1 - bl GetWindowAttribute - mov r8, r0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - adds r0, r4, 0 - movs r1, 0x2 - bl GetWindowAttribute - adds r6, r0, 0 - lsls r6, 16 - lsrs r6, 16 - adds r0, r4, 0 - movs r1, 0x3 - bl GetWindowAttribute - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - movs r1, 0x4 - bl GetWindowAttribute - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0xC] - mov r0, r8 - lsls r2, r0, 24 - lsrs r2, 24 - str r2, [sp, 0x10] - lsls r4, r6, 24 - lsrs r4, 24 - movs r0, 0x1 - str r0, [sp] - str r0, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - adds r0, r7, 0 - mov r1, r9 - adds r3, r4, 0 - bl FillBgTilemapBufferRect - mov r1, r9 - adds r1, 0x1 - lsls r1, 16 - lsrs r1, 16 - mov r0, r8 - adds r0, 0x1 - lsls r2, r0, 24 - lsrs r2, 24 - str r2, [sp, 0x14] - subs r0, r5, 0x2 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x18] - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - adds r0, r7, 0 - adds r3, r4, 0 - bl FillBgTilemapBufferRect - mov r1, r9 - adds r1, 0x2 - lsls r1, 16 - lsrs r1, 16 - add r8, r5 - movs r0, 0x1 - negs r0, r0 - add r8, r0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r0, 0x1 - str r0, [sp] - str r0, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - adds r0, r7, 0 - mov r2, r8 - adds r3, r4, 0 - bl FillBgTilemapBufferRect - mov r1, r9 - adds r1, 0x3 - lsls r1, 16 - lsrs r1, 16 - adds r5, r6, 0x1 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x1 - str r0, [sp] - ldr r4, [sp, 0xC] - subs r4, 0x2 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x10] - adds r3, r5, 0 - bl FillBgTilemapBufferRect - mov r1, r9 - adds r1, 0x5 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x1 - str r0, [sp] - str r4, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - adds r0, r7, 0 - mov r2, r8 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - mov r1, r9 - adds r1, 0x6 - lsls r1, 16 - lsrs r1, 16 - ldr r0, [sp, 0xC] - adds r6, r0 - subs r6, 0x1 - lsls r6, 24 - lsrs r6, 24 - movs r0, 0x1 - str r0, [sp] - str r0, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x10] - adds r3, r6, 0 - bl FillBgTilemapBufferRect - mov r1, r9 - adds r1, 0x7 - lsls r1, 16 - lsrs r1, 16 - ldr r0, [sp, 0x18] - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x14] - adds r3, r6, 0 - bl FillBgTilemapBufferRect - movs r0, 0x8 - add r9, r0 - mov r0, r9 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r0, 0x1 - str r0, [sp] - str r0, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - adds r0, r7, 0 - mov r1, r9 - mov r2, r8 - adds r3, r6, 0 - bl FillBgTilemapBufferRect - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80989E0 - - thumb_func_start rbox_fill_rectangle -rbox_fill_rectangle: @ 8098B7C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0xC - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - adds r0, r6, 0 - movs r1, 0 - bl GetWindowAttribute - mov r9, r0 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - adds r0, r6, 0 - movs r1, 0x1 - bl GetWindowAttribute - mov r8, r0 - mov r1, r8 - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - adds r0, r6, 0 - movs r1, 0x2 - bl GetWindowAttribute - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r6, 0 - movs r1, 0x3 - bl GetWindowAttribute - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r6, 0 - movs r1, 0x4 - bl GetWindowAttribute - movs r1, 0x1 - negs r1, r1 - add r8, r1 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - subs r5, 0x1 - lsls r5, 24 - lsrs r5, 24 - adds r4, 0x2 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp] - lsls r0, 24 - movs r1, 0x80 - lsls r1, 18 - adds r0, r1 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - mov r0, r9 - movs r1, 0 - mov r2, r8 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end rbox_fill_rectangle - - thumb_func_start stdpal_get -stdpal_get: @ 8098C18 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _08098C54 - lsls r0, 2 - ldr r1, =_08098C30 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08098C30: - .4byte _08098C44 - .4byte _08098C48 - .4byte _08098C4C - .4byte _08098C50 - .4byte _08098C54 -_08098C44: - movs r0, 0 - b _08098C56 -_08098C48: - movs r0, 0x10 - b _08098C56 -_08098C4C: - movs r0, 0x20 - b _08098C56 -_08098C50: - movs r0, 0x30 - b _08098C56 -_08098C54: - movs r0, 0x40 -_08098C56: - lsls r0, 1 - ldr r1, =gUnknown_0851017C - adds r0, r1 - pop {r1} - bx r1 - .pool - thumb_func_end stdpal_get - - thumb_func_start sub_8098C64 -sub_8098C64: @ 8098C64 - ldr r0, =gUnknown_08DDD728 - bx lr - .pool - thumb_func_end sub_8098C64 - - thumb_func_start sub_8098C6C -sub_8098C6C: @ 8098C6C - push {r4,r5,lr} - adds r3, r1, 0 - adds r4, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r3, 16 - lsrs r3, 16 - lsls r4, 24 - lsrs r4, 24 - ldr r2, =gUnknown_0851021C - ldr r5, =gSaveBlock2Ptr - ldr r1, [r5] - ldrb r1, [r1, 0x14] - lsrs r1, 3 - lsls r1, 3 - adds r1, r2 - ldr r1, [r1] - movs r2, 0x90 - lsls r2, 1 - bl LoadBgTiles - ldr r0, [r5] - ldrb r0, [r0, 0x14] - lsrs r0, 3 - bl sub_8098758 - ldr r0, [r0, 0x4] - adds r1, r4, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8098C6C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/title_screen.s b/asm/title_screen.s index 4090aad96b..39247aef40 100644 --- a/asm/title_screen.s +++ b/asm/title_screen.s @@ -147,17 +147,17 @@ _080AA4FA: adds r1, r5, 0 asrs r2, r7, 16 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 adds r0, r4, 0 adds r1, r6, 0 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0x1 strh r0, [r4, 0x2E] adds r0, r6, 0x1 @@ -190,19 +190,19 @@ _080AA556: adds r1, r4, 0 asrs r2, r6, 16 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r2, r0 adds r1, r5, 0x5 lsls r1, 24 lsrs r1, 24 adds r0, r2, 0 - bl StartObjectImageAnim + bl StartSpriteAnim adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 @@ -301,7 +301,7 @@ _080AA63C: movs r0, 0 strh r0, [r1] adds r0, r3, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _080AA648: pop {r4} pop {r0} @@ -327,7 +327,7 @@ title_screen_logo_shine_obj_callback_type2: @ 80AA654 .pool _080AA670: adds r0, r2, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _080AA676: pop {r0} bx r0 @@ -358,10 +358,10 @@ _080AA69C: movs r1, 0 movs r2, 0x44 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 @@ -382,10 +382,10 @@ _080AA6D0: movs r1, 0 movs r2, 0x44 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites lsls r1, r2, 4 adds r1, r2 lsls r1, 2 @@ -410,7 +410,7 @@ _080AA6D0: movs r1, 0 movs r2, 0x44 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 lsls r1, r2, 4 @@ -434,7 +434,7 @@ _080AA6D0: mov r0, r9 movs r2, 0x44 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 4 @@ -465,8 +465,8 @@ _080AA766: title_screen_vblank_callback: @ 80AA780 push {lr} bl sub_80BA0A8 - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer ldr r0, =gUnknown_02022E1A ldrh r1, [r0] @@ -616,9 +616,9 @@ _080AA8C4: bl LZ77UnCompVram bl remove_some_task bl ResetTasks - bl ResetAllObjectData - bl ResetObjectPaletteAllocator - ldr r1, =gUnknown_0300301C + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r1, =gReservedSpritePaletteCount movs r0, 0x9 strb r0, [r1] ldr r0, =gUnknown_08540048 @@ -633,7 +633,7 @@ _080AA8C4: movs r2, 0x20 bl LoadPalette ldr r0, =gUnknown_08540100 - bl LoadTaggedObjectPalette + bl LoadSpritePalette ldr r0, =gMain movs r2, 0x87 lsls r2, 3 @@ -795,8 +795,8 @@ _080AAB1E: c2_title_screen_2: @ 80AAB2C push {lr} bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 @@ -887,10 +887,10 @@ _080AABC0: movs r1, 0x62 movs r2, 0x2 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -902,7 +902,7 @@ _080AABC0: movs r1, 0xA2 movs r2, 0x2 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -1070,7 +1070,7 @@ task_title_screen_3: @ 80AAD64 beq _080AADB0 _080AAD84: movs r0, 0x4 - bl play_sound_effect + bl FadeOutBGM movs r0, 0x1 negs r0, r0 ldr r1, =0x0000ffff @@ -1098,11 +1098,11 @@ _080AADC8: ands r0, r1 cmp r0, 0x26 bne _080AADFC - bl sub_809D614 + bl CanResetRTC cmp r0, 0x1 bne _080AADFC movs r0, 0x4 - bl play_sound_effect + bl FadeOutBGM movs r0, 0x1 negs r0, r0 str r4, [sp] @@ -1122,7 +1122,7 @@ _080AADFC: cmp r0, 0x6 bne _080AAE30 movs r0, 0x4 - bl play_sound_effect + bl FadeOutBGM movs r0, 0x1 negs r0, r0 movs r1, 0 diff --git a/asm/trade.s b/asm/trade.s index e021af95a3..3758541bf9 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -175,8 +175,8 @@ sub_8077294: @ 8077294 sub_80772A4: @ 80772A4 push {r4,r5,lr} sub sp, 0xC - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes bl ResetTasks bl ResetPaletteFade ldr r2, =gPaletteFade @@ -595,7 +595,7 @@ _080776A8: bl SetGpuReg ldr r2, =gUnknown_0203229C ldr r0, [r2] - ldr r1, =gUnknown_020244E9 + ldr r1, =gPlayerPartyCount ldrb r1, [r1] adds r0, 0x36 strb r1, [r0] @@ -837,7 +837,7 @@ _080778DE: add r0, sp, 0x10 movs r2, 0xA movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite adds r4, 0x20 adds r6, 0x1 cmp r6, 0x2 @@ -875,7 +875,7 @@ _0807792C: add r0, sp, 0x10 movs r2, 0xA movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite adds r4, 0x20 adds r6, 0x1 cmp r6, 0x2 @@ -903,7 +903,7 @@ _08077970: movs r1, 0xD7 movs r2, 0x98 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite add r0, sp, 0x10 ldm r4!, {r3,r5,r7} stm r0!, {r3,r5,r7} @@ -918,7 +918,7 @@ _08077970: movs r1, 0xF7 movs r2, 0x98 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite movs r6, 0 add r4, sp, 0x10 movs r5, 0xC0 @@ -939,7 +939,7 @@ _080779BC: add r0, sp, 0x10 movs r2, 0x96 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite movs r0, 0x80 lsls r0, 14 adds r5, r0 @@ -957,7 +957,7 @@ _080779BC: ldrb r2, [r2, 0x1] lsls r2, 3 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite ldr r2, =gUnknown_0203229C ldr r1, [r2] adds r1, 0x34 @@ -997,7 +997,7 @@ _08077A40: adds r0, 0x1 strb r0, [r1] ldr r0, =0x000001b3 - bl song_play_for_text + bl PlayBGM b _08077B46 .pool _08077A80: @@ -1091,8 +1091,8 @@ _08077B30: _08077B46: bl RunTextPrinters bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade add sp, 0x28 pop {r3} @@ -1206,7 +1206,7 @@ _08077C6C: bl calc_enemy_party_count ldr r4, =gUnknown_0203229C ldr r0, [r4] - ldr r1, =gUnknown_020244E9 + ldr r1, =gPlayerPartyCount ldrb r1, [r1] adds r0, 0x36 strb r1, [r0] @@ -1461,7 +1461,7 @@ _08077EB4: add r0, sp, 0xC movs r2, 0xA movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite adds r4, 0x20 adds r6, 0x1 cmp r6, 0x2 @@ -1499,7 +1499,7 @@ _08077F02: add r0, sp, 0xC movs r2, 0xA movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite adds r4, 0x20 adds r6, 0x1 cmp r6, 0x2 @@ -1527,7 +1527,7 @@ _08077F48: movs r1, 0xD7 movs r2, 0x98 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite add r0, sp, 0xC ldm r4!, {r3,r5,r7} stm r0!, {r3,r5,r7} @@ -1542,7 +1542,7 @@ _08077F48: movs r1, 0xF7 movs r2, 0x98 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite movs r6, 0 add r4, sp, 0xC movs r5, 0xC0 @@ -1563,7 +1563,7 @@ _08077F94: add r0, sp, 0xC movs r2, 0x96 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite movs r0, 0x80 lsls r0, 14 adds r5, r0 @@ -1606,7 +1606,7 @@ _08077FEA: ldrb r2, [r2] lsls r2, 3 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite ldr r1, [r4] adds r1, 0x34 strb r0, [r1] @@ -1705,8 +1705,8 @@ _080780E4: bl SetMainCallback2 _080780F6: bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade add sp, 0x24 pop {r3} @@ -1720,8 +1720,8 @@ _080780F6: thumb_func_start sub_807811C sub_807811C: @ 807811C push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -1882,8 +1882,8 @@ sub_807825C: @ 807825C bl SetGpuReg bl sub_8197224 bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade pop {r4} pop {r0} @@ -1990,7 +1990,7 @@ sub_8078388: @ 8078388 movs r3, 0 ldr r5, =gUnknown_0203229C mov r8, r5 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r12, r0 movs r1, 0x5 negs r1, r1 @@ -2399,7 +2399,7 @@ _08078726: adds r0, r4, 0 movs r1, 0x2 ldr r2, =gSpeciesNames + SPECIES_SHEDINJA * POKEMON_NAME_LENGTH - bl pokemon_setattr + bl SetMonData _08078766: adds r4, 0x64 subs r5, 0x1 @@ -3064,10 +3064,10 @@ sub_8078CB8: @ 8078CB8 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r2, [r5] adds r2, 0x34 ldrb r1, [r2] @@ -3094,10 +3094,10 @@ _08078D10: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites adds r0, r5 movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r4, [r4] adds r4, 0x34 ldrb r0, [r4] @@ -3127,7 +3127,7 @@ _08078D58: cmp r0, r6 beq _08078D64 movs r0, 0x5 - bl audio_play + bl PlaySE _08078D64: strb r6, [r7] pop {r4-r7} @@ -3228,7 +3228,7 @@ _08078E30: cmp r0, 0 beq _08078EE4 movs r0, 0x5 - bl audio_play + bl PlaySE ldr r4, =gUnknown_0203229C ldr r0, [r4] adds r0, 0x35 @@ -3315,7 +3315,7 @@ sub_8078EF8: @ 8078EF8 adds r0, 0x6F movs r1, 0 strb r1, [r0] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, [r3] adds r0, 0x34 ldrb r1, [r0] @@ -3364,7 +3364,7 @@ sub_8078F50: @ 8078F50 b _0807902A _08078F72: movs r0, 0x5 - bl audio_play + bl PlaySE bl sub_8078EF8 b _0807902A _08078F7E: @@ -3382,7 +3382,7 @@ _08078F7E: .pool _08078F9C: ldr r0, =gPlayerParty - ldr r1, =gUnknown_020244E9 + ldr r1, =gPlayerPartyCount ldrb r1, [r1] ldr r2, =gUnknown_0203229C ldr r2, [r2] @@ -3407,7 +3407,7 @@ _08078FCC: .4byte _08079018 _08078FE4: bl sub_8078D78 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, =gUnknown_0203229C ldr r0, [r0] adds r0, 0x34 @@ -3463,7 +3463,7 @@ sub_8079034: @ 8079034 beq _08079054 _0807904A: movs r0, 0x5 - bl audio_play + bl PlaySE bl sub_8078EF8 _08079054: pop {r0} @@ -3578,7 +3578,7 @@ _0807912C: cmp r0, 0 beq _08079158 _08079138: - bl sub_809D42C + bl IsNationalPokedexEnabled cmp r0, 0 bne _08079164 ldr r0, =gUnknown_0203229C @@ -3818,7 +3818,7 @@ _08079306: ldr r0, =0x0000eeaa movs r1, 0 bl sub_8078C10 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r3, =gUnknown_0203229C ldr r0, [r3] adds r0, 0x34 @@ -3841,7 +3841,7 @@ _08079306: .pool _0807934C: movs r0, 0x5 - bl audio_play + bl PlaySE bl sub_8078EF8 _08079356: pop {r0} @@ -3944,7 +3944,7 @@ sub_8079408: @ 8079408 cmp r0, 0 beq _0807947C movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0 bl rbox_fill_rectangle movs r0, 0x1 @@ -3974,7 +3974,7 @@ _0807942E: adds r0, 0x6F movs r1, 0 strb r1, [r0] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r0, [r2] adds r0, 0x34 ldrb r1, [r0] @@ -4305,7 +4305,7 @@ _08079716: ldrb r0, [r0] cmp r8, r0 bcs _0807976A - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites mov r8, r0 ldr r4, =gUnknown_0203229C ldr r0, [sp, 0x60] @@ -4352,7 +4352,7 @@ _08079772: lsrs r5, r0, 24 cmp r5, 0x5 bls _08079772 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites mov r8, r1 ldr r2, =gUnknown_0203229C ldr r0, [r2] @@ -4463,7 +4463,7 @@ _08079868: b _08079A24 .pool _08079884: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r1, [sp, 0x60] lsls r0, r1, 1 adds r0, r1 @@ -4506,7 +4506,7 @@ _080798BC: bl CopyToBgTilemapBufferRect_ChangePalette movs r0, 0x1 bl CopyBgTilemapBufferToVram - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites ldr r1, =gUnknown_0203229C ldr r4, [r1] ldr r2, [sp, 0x60] @@ -5221,7 +5221,7 @@ sub_8079EA8: @ 8079EA8 ldrb r0, [r0] cmp r7, r0 bge _08079F5A - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites mov r9, r3 mov r1, r12 lsls r0, r1, 1 @@ -5684,7 +5684,7 @@ _0807A29C: b _0807A2D6 _0807A2A0: mov r0, sp - bl LoadObjectPic + bl LoadSpriteSheet ldr r1, =gUnknown_0203229C ldr r1, [r1] adds r2, r1, 0 @@ -5697,18 +5697,18 @@ _0807A2B8: b _0807A2D6 _0807A2BC: ldr r0, =gUnknown_0832DCE4 - bl LoadTaggedObjectPalette + bl LoadSpritePalette b _0807A2DA .pool _0807A2C8: ldr r0, =gUnknown_0832DC44 - bl LoadTaggedObjectPalette + bl LoadSpritePalette b _0807A2DA .pool _0807A2D4: ldr r0, =gUnknown_0832DC3C _0807A2D6: - bl LoadObjectPic + bl LoadSpriteSheet _0807A2DA: ldr r0, =gUnknown_0203229C ldr r1, [r0] @@ -6048,7 +6048,7 @@ _0807A560: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 adds r2, 0x5D adds r2, r3 @@ -6142,7 +6142,7 @@ _0807A60C: cmp r5, r7 blt _0807A60C _0807A62E: - bl sub_809D42C + bl IsNationalPokedexEnabled mov r1, r9 lsls r4, r1, 2 cmp r0, 0 @@ -6557,7 +6557,7 @@ sub_807A918: @ 807A918 lsrs r1, 16 mov r8, r1 movs r5, 0 - ldr r0, =gUnknown_020244E9 + ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r5, r0 bge _0807A95A @@ -6578,7 +6578,7 @@ _0807A934: _0807A94E: adds r4, 0x4 adds r5, 0x1 - ldr r0, =gUnknown_020244E9 + ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r5, r0 blt _0807A934 @@ -6659,7 +6659,7 @@ _0807A9E0: _0807A9EA: movs r2, 0 movs r5, 0 - ldr r0, =gUnknown_020244E9 + ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r2, r0 bge _0807AA0A @@ -6704,7 +6704,7 @@ sub_807AA28: @ 807AA28 cmp r0, 0xA bne _0807AA44 movs r0, 0x17 - bl audio_play + bl PlaySE movs r0, 0 strh r0, [r4, 0x2E] _0807AA44: @@ -6733,7 +6733,7 @@ sub_807AA4C: @ 807AA4C cmp r0, 0xA bne _0807AA76 movs r0, 0xC2 - bl audio_play + bl PlaySE strh r5, [r4, 0x2E] _0807AA76: pop {r4,r5} @@ -6791,7 +6791,7 @@ sub_807AABC: @ 807AABC cmp r1, 0xA bne _0807AADA adds r0, r2, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0807AADA: pop {r0} bx r0 @@ -6812,7 +6812,7 @@ sub_807AAE0: @ 807AAE0 cmp r1, 0xA bne _0807AAFE adds r0, r2, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _0807AAFE: pop {r0} bx r0 @@ -6830,7 +6830,7 @@ sub_807AB04: @ 807AB04 cmp r0, 0xF bne _0807AB20 movs r0, 0xCC - bl audio_play + bl PlaySE movs r0, 0 strh r0, [r4, 0x2E] _0807AB20: @@ -6960,8 +6960,8 @@ _0807AC1C: sub_807AC24: @ 807AC24 push {lr} bl sub_807ABCC - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -7133,7 +7133,7 @@ _0807AD58: ldr r1, [r1, 0x8] adds r2, r5, 0 adds r3, r7, 0 - bl DecompressMonPic_DetectFrontOrBack_2 + bl HandleLoadSpecialPokePic_2 movs r4, 0 b _0807ADB2 .pool @@ -7151,7 +7151,7 @@ _0807AD94: ldr r1, [r2] adds r2, r5, 0 adds r3, r7, 0 - bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack + bl HandleLoadSpecialPokePic_DontHandleDeoxys _0807ADB2: mov r0, r8 bl sub_806E794 @@ -7178,13 +7178,13 @@ _0807ADE0: movs r1, 0x78 movs r2, 0x3C movs r3, 0x6 - bl AddObjectToFront + bl CreateSprite ldr r4, =gUnknown_020322A0 ldr r1, [r4] adds r1, 0x8E adds r1, r6 strb r0, [r1] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r0, [r4] adds r0, 0x8E adds r0, r6 @@ -7207,7 +7207,7 @@ _0807ADE0: lsls r0, 2 adds r3, 0x1C adds r0, r3 - ldr r1, =DummyObjectCallback + ldr r1, =SpriteCallbackDummy str r1, [r0] _0807AE36: pop {r3} @@ -7272,8 +7272,8 @@ _0807AEC0: str r0, [r4] bl init_uns_table_pokemon_copy bl ResetTasks - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes ldr r0, =sub_807AC24 bl SetVBlankCallback bl sub_807B170 @@ -7465,9 +7465,9 @@ _0807B07A: _0807B094: bl sub_807BA94 ldr r0, =gUnknown_08338D18 - bl LoadObjectPic + bl LoadSpriteSheet ldr r0, =gUnknown_08338D20 - bl LoadTaggedObjectPalette + bl LoadSpritePalette b _0807B0DC .pool _0807B0B0: @@ -7521,8 +7521,8 @@ _0807B110: _0807B116: bl RunTasks bl RunTextPrinters - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade add sp, 0x4 pop {r4,r5} @@ -7694,7 +7694,7 @@ _0807B29C: .4byte _0807B438 _0807B2D0: ldr r1, =gUnknown_02032298 - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] movs r6, 0 strb r0, [r1] @@ -7731,8 +7731,8 @@ _0807B2D0: str r0, [r4] bl init_uns_table_pokemon_copy bl ResetTasks - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes ldr r0, =sub_807AC24 bl SetVBlankCallback bl sub_807B170 @@ -7809,9 +7809,9 @@ _0807B3D0: _0807B3F0: bl sub_807BA94 ldr r0, =gUnknown_08338D18 - bl LoadObjectPic + bl LoadSpriteSheet ldr r0, =gUnknown_08338D20 - bl LoadTaggedObjectPalette + bl LoadSpritePalette b _0807B424 .pool _0807B40C: @@ -7840,8 +7840,8 @@ _0807B438: _0807B43E: bl RunTasks bl RunTextPrinters - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade add sp, 0xC pop {r3} @@ -7974,7 +7974,7 @@ _0807B52A: adds r0, r7, 0 movs r1, 0x20 mov r2, sp - bl pokemon_setattr + bl SetMonData _0807B566: mov r0, r8 cmp r0, 0xFF @@ -8054,8 +8054,8 @@ sub_807B60C: @ 807B60C bl sub_807BBC8 bl RunTasks bl RunTextPrinters - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 @@ -8495,17 +8495,17 @@ _0807BA68: sub_807BA94: @ 807BA94 push {lr} ldr r0, =gUnknown_08338D70 - bl LoadObjectPic + bl LoadSpriteSheet ldr r0, =gUnknown_08338DC0 - bl LoadObjectPic + bl LoadSpriteSheet ldr r0, =gUnknown_08338DF4 - bl LoadObjectPic + bl LoadSpriteSheet ldr r0, =gUnknown_08338E6C - bl LoadObjectPic + bl LoadSpriteSheet ldr r0, =gUnknown_08338D78 - bl LoadTaggedObjectPalette + bl LoadSpritePalette ldr r0, =gUnknown_08338D80 - bl LoadTaggedObjectPalette + bl LoadSpritePalette pop {r0} bx r0 .pool @@ -8564,7 +8564,7 @@ sub_807BAD8: @ 807BAD8 b _0807BBA4 .pool _0807BB68: - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] lsls r4, r0, 4 subs r4, r0 @@ -8578,7 +8578,7 @@ _0807BB68: ldr r0, =gStringVar3 adds r1, r4, 0 bl StringCopy10 - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 @@ -8910,7 +8910,7 @@ _0807BC1C: .4byte _0807CFB4 .4byte _0807CE38 _0807C04C: - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r0, [r7] adds r0, 0x8E ldrb r1, [r0] @@ -8952,12 +8952,12 @@ _0807C04C: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] - bl current_map_music_get + bl GetCurrentMapMusic ldr r1, [r7] adds r1, 0xF4 strh r0, [r1] ldr r0, =0x00000179 - bl current_map_music_set + bl PlayNewMapMusic bl _0807CFB4 .pool _0807C0C4: @@ -8968,7 +8968,7 @@ _0807C0C4: ldrsh r0, [r6, r1] cmp r0, 0 ble _0807C0F8 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites adds r0, r5, 0 adds r0, 0x8E ldrb r1, [r0] @@ -8985,7 +8985,7 @@ _0807C0C4: bl _0807CFB4 .pool _0807C0F8: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites adds r0, r5, 0 adds r0, 0x8E ldrb r1, [r0] @@ -9022,7 +9022,7 @@ _0807C120: beq _0807C14E adds r0, r1, 0 movs r1, 0 - bl cry_related + bl PlayCry1 _0807C14E: ldr r3, [r4] adds r1, r3, 0 @@ -9043,7 +9043,7 @@ _0807C178: adds r0, r1, 0 adds r0, 0x8E ldrb r0, [r0] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -9080,7 +9080,7 @@ _0807C178: bl _0807CFB4 .pool _0807C1DC: - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites ldr r0, [r7] adds r0, 0xD2 ldrb r1, [r0] @@ -9091,7 +9091,7 @@ _0807C1DC: adds r4, 0x1C adds r0, r4 ldr r1, [r0] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy cmp r1, r0 beq _0807C1FC bl _0807CFB4 @@ -9100,7 +9100,7 @@ _0807C1FC: movs r1, 0x78 movs r2, 0x20 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r1, [r7] adds r1, 0xD3 strb r0, [r1] @@ -9120,7 +9120,7 @@ _0807C1FC: adds r0, r1 lsls r0, 2 adds r0, r5 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r1, [r7] bl _0807CF4C .pool @@ -9230,7 +9230,7 @@ _0807C328: movs r1, 0x78 movs r2, 0x50 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r1, [r7] adds r1, 0x91 strb r0, [r1] @@ -9238,7 +9238,7 @@ _0807C328: bl _0807CF4C .pool _0807C348: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, [r7] adds r0, 0x91 ldrb r1, [r0] @@ -9255,7 +9255,7 @@ _0807C348: bl _0807CFB4 _0807C368: adds r0, r1, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite movs r1, 0xC8 lsls r1, 3 movs r0, 0x50 @@ -9298,7 +9298,7 @@ _0807C3C4: movs r1, 0x80 movs r2, 0x41 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r1, [r7] adds r1, 0x92 strb r0, [r1] @@ -9309,7 +9309,7 @@ _0807C3E0: movs r1, 0x80 movs r2, 0x50 movs r3, 0x3 - bl AddObjectToFront + bl CreateSprite ldr r4, =gUnknown_020322A0 ldr r1, [r4] adds r1, 0x90 @@ -9318,7 +9318,7 @@ _0807C3E0: movs r1, 0x80 movs r2, 0x50 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r1, [r4] adds r1, 0x91 strb r0, [r1] @@ -9328,10 +9328,10 @@ _0807C3E0: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r1, [r4] bl _0807CF4C .pool @@ -9356,7 +9356,7 @@ _0807C44E: bl _0807CFB4 .pool _0807C460: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r4, [r7] adds r3, r4, 0 adds r3, 0x90 @@ -9428,9 +9428,9 @@ _0807C4EC: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, [r7] adds r0, 0x91 ldrb r1, [r0] @@ -9438,7 +9438,7 @@ _0807C4EC: adds r0, r1 lsls r0, 2 adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite movs r0, 0x2 bl sub_807B62C ldr r1, [r7] @@ -9458,7 +9458,7 @@ _0807C528: movs r1, 0x6F movs r2, 0xAA movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r4, =gUnknown_020322A0 ldr r1, [r4] adds r1, 0x90 @@ -9468,7 +9468,7 @@ _0807C528: adds r0, r5, 0 movs r1, 0x81 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r1, [r4] adds r1, 0x91 strb r0, [r1] @@ -9483,7 +9483,7 @@ _0807C574: cmp r0, 0 bne _0807C592 movs r0, 0x2E - bl audio_play + bl PlaySE ldr r0, =gUnknown_020322A0 ldr r1, [r0] adds r1, 0x94 @@ -9491,7 +9491,7 @@ _0807C574: adds r0, 0x1 strh r0, [r1] _0807C592: - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r0, =gUnknown_020322A0 ldr r2, [r0] adds r0, r2, 0 @@ -9516,7 +9516,7 @@ _0807C592: bl _0807CFB4 .pool _0807C5D0: - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites ldr r4, [r7] adds r2, r4, 0 adds r2, 0x90 @@ -9592,7 +9592,7 @@ _0807C66C: lsls r0, 24 cmp r0, 0 bne _0807C6E4 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldr r2, [r5] adds r2, 0x8E ldrb r1, [r2] @@ -9623,7 +9623,7 @@ _0807C66C: movs r1, 0 movs r2, 0x3 movs r3, 0x3 - bl CalcVecFromObjectCenterToObjectUpperLeft + bl CalcCenterToCornerVec ldr r0, [r5] adds r0, 0x8E ldrb r1, [r0] @@ -9632,7 +9632,7 @@ _0807C66C: lsls r0, 2 adds r0, r4 movs r1, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim b _0807C6FA .pool _0807C6E4: @@ -9642,10 +9642,10 @@ _0807C6E4: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 movs r1, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim _0807C6FA: ldr r5, =gUnknown_020322A0 ldr r0, [r5] @@ -9654,10 +9654,10 @@ _0807C6FA: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 movs r1, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim ldr r2, [r5] adds r3, r2, 0 adds r3, 0x8E @@ -9717,7 +9717,7 @@ _0807C6FA: bl _0807CF4C .pool _0807C794: - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldr r2, [r7] adds r3, r2, 0 adds r3, 0x8E @@ -9751,7 +9751,7 @@ _0807C794: cmp r0, 0x2 bhi _0807C7DC movs r0, 0x2D - bl audio_play + bl PlaySE _0807C7DC: ldr r2, [r7] adds r3, r2, 0 @@ -9818,7 +9818,7 @@ _0807C7FC: b _0807CFB4 .pool _0807C864: - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldr r2, [r7] adds r3, r2, 0 adds r3, 0x90 @@ -9872,7 +9872,7 @@ _0807C8A6: adds r0, r1 lsls r0, 2 adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, [r7] adds r0, 0x91 ldrb r1, [r0] @@ -9880,7 +9880,7 @@ _0807C8A6: adds r0, r1 lsls r0, 2 adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite b _0807CFB4 .pool _0807C8EC: @@ -9909,7 +9909,7 @@ _0807C8FA: movs r1, 0x80 adds r2, r4, 0 movs r3, 0x3 - bl AddObjectToFront + bl CreateSprite ldr r1, [r7] adds r1, 0x90 strb r0, [r1] @@ -9917,7 +9917,7 @@ _0807C8FA: movs r1, 0x80 adds r2, r4, 0 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r1, [r7] adds r1, 0x91 strb r0, [r1] @@ -9927,10 +9927,10 @@ _0807C8FA: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim b _0807CFB4 .pool _0807C964: @@ -9958,7 +9958,7 @@ _0807C98C: b _0807CF48 .pool _0807C994: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r4, [r7] adds r3, r4, 0 adds r3, 0x90 @@ -10021,9 +10021,9 @@ _0807CA02: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, [r7] adds r0, 0x91 ldrb r1, [r0] @@ -10031,7 +10031,7 @@ _0807CA02: adds r0, r1 lsls r0, 2 adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r3, [r7] adds r2, r3, 0 adds r2, 0x94 @@ -10093,11 +10093,11 @@ _0807CA92: movs r1, 0x80 movs r2, 0x41 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r1, [r7] adds r1, 0x92 strb r0, [r1] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, [r7] adds r0, 0x92 ldrb r1, [r0] @@ -10115,7 +10115,7 @@ _0807CAC8: movs r1, 0x78 movs r2, 0x50 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r2, =gUnknown_020322A0 ldr r1, [r2] adds r1, 0x91 @@ -10127,7 +10127,7 @@ _0807CAC8: b _0807CFB4 .pool _0807CAF0: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, [r7] adds r0, 0x91 ldrb r1, [r0] @@ -10144,7 +10144,7 @@ _0807CAF0: b _0807CFB4 _0807CB0E: adds r0, r1, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite movs r0, 0x6 bl sub_807B62C ldr r1, [r7] @@ -10153,7 +10153,7 @@ _0807CB0E: adds r0, 0x1 strh r0, [r1] movs r0, 0x9F - bl audio_play + bl PlaySE b _0807CFB4 .pool _0807CB30: @@ -10258,13 +10258,13 @@ _0807CBF4: negs r2, r2 movs r1, 0x78 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r5, =gUnknown_020322A0 ldr r1, [r5] adds r1, 0xD3 movs r6, 0 strb r0, [r1] - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldr r2, [r5] adds r2, 0xD3 ldrb r1, [r2] @@ -10289,7 +10289,7 @@ _0807CBF4: lsls r0, 2 adds r0, r4 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r0, [r5] adds r0, 0xD3 ldrb r1, [r0] @@ -10298,7 +10298,7 @@ _0807CBF4: lsls r0, 2 adds r0, r4 movs r1, 0x2 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim ldr r0, [r5] adds r0, 0xD3 ldrb r1, [r0] @@ -10324,7 +10324,7 @@ _0807CBF4: b _0807CFB4 .pool _0807CC9C: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, [r7] adds r0, 0xD3 ldrb r1, [r0] @@ -10347,7 +10347,7 @@ _0807CC9C: b _0807CF4C .pool _0807CCD0: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r3, [r7] adds r0, r3, 0 adds r0, 0xD3 @@ -10358,7 +10358,7 @@ _0807CCD0: adds r2, 0x1C adds r0, r2 ldr r1, [r0] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy cmp r1, r0 beq _0807CCEE b _0807CFB4 @@ -10373,12 +10373,12 @@ _0807CCEE: ldr r1, [r1] ldr r1, [r1, 0x10] ldr r3, [r3, 0x6C] - bl DecompressMonPic_DetectFrontOrBack_2 + bl HandleLoadSpecialPokePic_2 ldr r1, [r7] b _0807CF4C .pool _0807CD1C: - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldr r2, [r7] adds r6, r2, 0 adds r6, 0x8F @@ -10421,7 +10421,7 @@ _0807CD1C: lsls r0, 2 adds r0, r4 movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r3, [r7] adds r0, r3, 0 adds r0, 0x8F @@ -10453,7 +10453,7 @@ _0807CD1C: adds r0, r1 lsls r0, 2 adds r0, r4 - bl obj_free_rotscale_entry + bl FreeSpriteOamMatrix ldr r0, [r7] adds r0, 0xD3 ldrb r1, [r0] @@ -10461,7 +10461,7 @@ _0807CD1C: adds r0, r1 lsls r0, 2 adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r1, [r7] b _0807CF4C .pool @@ -10507,7 +10507,7 @@ _0807CE26: b _0807CFB4 .pool _0807CE38: - bl sub_80A3678 + bl IsCryFinished lsls r0, 24 cmp r0, 0 bne _0807CE44 @@ -10528,7 +10528,7 @@ _0807CE54: cmp r0, 0xA bne _0807CE66 ldr r0, =0x00000173 - bl fanfare_play + bl PlayFanfare _0807CE66: ldr r1, [r7] ldr r0, [r1, 0x64] @@ -10586,7 +10586,7 @@ _0807CEC6: b _0807CF4C .pool _0807CEDC: - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrb r0, [r0] movs r1, 0 bl sub_807B4D0 @@ -10649,7 +10649,7 @@ _0807CF5C: ldr r0, [r7] adds r0, 0xF4 ldrh r0, [r0] - bl current_map_music_set + bl PlayNewMapMusic ldr r0, [r7] cmp r0, 0 beq _0807CFAA @@ -10972,7 +10972,7 @@ _0807CFF8: .4byte _0807E400 .4byte _0807E284 _0807D428: - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r0, [r7] adds r0, 0x8E ldrb r1, [r0] @@ -11014,12 +11014,12 @@ _0807D428: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] - bl current_map_music_get + bl GetCurrentMapMusic ldr r1, [r7] adds r1, 0xF4 strh r0, [r1] ldr r0, =0x00000179 - bl current_map_music_set + bl PlayNewMapMusic bl _0807E400 .pool _0807D4A0: @@ -11030,7 +11030,7 @@ _0807D4A0: ldrsh r0, [r6, r1] cmp r0, 0 ble _0807D4D4 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites adds r0, r5, 0 adds r0, 0x8E ldrb r1, [r0] @@ -11047,7 +11047,7 @@ _0807D4A0: bl _0807E400 .pool _0807D4D4: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites adds r0, r5, 0 adds r0, 0x8E ldrb r1, [r0] @@ -11084,7 +11084,7 @@ _0807D4FC: beq _0807D52A adds r0, r1, 0 movs r1, 0 - bl cry_related + bl PlayCry1 _0807D52A: ldr r3, [r4] adds r1, r3, 0 @@ -11105,7 +11105,7 @@ _0807D554: adds r0, r1, 0 adds r0, 0x8E ldrb r0, [r0] - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -11142,7 +11142,7 @@ _0807D554: bl _0807E400 .pool _0807D5B8: - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites ldr r0, [r7] adds r0, 0xD2 ldrb r1, [r0] @@ -11153,7 +11153,7 @@ _0807D5B8: adds r4, 0x1C adds r0, r4 ldr r1, [r0] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy cmp r1, r0 beq _0807D5D8 bl _0807E400 @@ -11162,7 +11162,7 @@ _0807D5D8: movs r1, 0x78 movs r2, 0x20 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r1, [r7] adds r1, 0xD3 strb r0, [r1] @@ -11182,7 +11182,7 @@ _0807D5D8: adds r0, r1 lsls r0, 2 adds r0, r5 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r1, [r7] bl _0807E398 .pool @@ -11292,7 +11292,7 @@ _0807D704: movs r1, 0x78 movs r2, 0x50 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r1, [r7] adds r1, 0x91 strb r0, [r1] @@ -11300,7 +11300,7 @@ _0807D704: bl _0807E398 .pool _0807D728: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, [r7] adds r0, 0x91 ldrb r1, [r0] @@ -11317,7 +11317,7 @@ _0807D728: bl _0807E400 _0807D748: adds r0, r1, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r1, =0x00000452 movs r0, 0x50 bl SetGpuReg @@ -11367,12 +11367,12 @@ _0807D7C4: movs r1, 0x78 movs r2, 0x50 movs r3, 0x3 - bl AddObjectToFront + bl CreateSprite ldr r4, =gUnknown_020322A0 ldr r1, [r4] adds r1, 0x90 strb r0, [r1] - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites ldr r0, [r4] adds r0, 0x90 ldrb r1, [r0] @@ -11388,7 +11388,7 @@ _0807D7C4: movs r1, 0x78 movs r2, 0x50 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r1, [r4] adds r1, 0x91 strb r0, [r1] @@ -11400,7 +11400,7 @@ _0807D7C4: lsls r0, 2 adds r0, r5 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r1, [r4] bl _0807E398 .pool @@ -11425,7 +11425,7 @@ _0807D84A: bl _0807E400 .pool _0807D85C: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r4, [r7] adds r3, r4, 0 adds r3, 0x90 @@ -11497,9 +11497,9 @@ _0807D8E8: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, [r7] adds r0, 0x91 ldrb r1, [r0] @@ -11507,7 +11507,7 @@ _0807D8E8: adds r0, r1 lsls r0, 2 adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite movs r0, 0x2 bl sub_807B62C ldr r1, [r7] @@ -11527,7 +11527,7 @@ _0807D924: movs r1, 0x6F movs r2, 0xAA movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r4, =gUnknown_020322A0 ldr r1, [r4] adds r1, 0x90 @@ -11537,7 +11537,7 @@ _0807D924: adds r0, r5, 0 movs r1, 0x81 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r1, [r4] adds r1, 0x91 strb r0, [r1] @@ -11552,7 +11552,7 @@ _0807D970: cmp r0, 0 bne _0807D98E movs r0, 0x2E - bl audio_play + bl PlaySE ldr r0, =gUnknown_020322A0 ldr r1, [r0] adds r1, 0x94 @@ -11560,7 +11560,7 @@ _0807D970: adds r0, 0x1 strh r0, [r1] _0807D98E: - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldr r0, =gUnknown_020322A0 ldr r2, [r0] adds r0, r2, 0 @@ -11585,7 +11585,7 @@ _0807D98E: bl _0807E400 .pool _0807D9CC: - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites ldr r4, [r7] adds r2, r4, 0 adds r2, 0x90 @@ -11666,7 +11666,7 @@ _0807DA74: lsls r0, 24 cmp r0, 0 bne _0807DAEC - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldr r2, [r5] adds r2, 0x8E ldrb r1, [r2] @@ -11697,7 +11697,7 @@ _0807DA74: movs r1, 0 movs r2, 0x3 movs r3, 0x3 - bl CalcVecFromObjectCenterToObjectUpperLeft + bl CalcCenterToCornerVec ldr r0, [r5] adds r0, 0x8E ldrb r1, [r0] @@ -11706,7 +11706,7 @@ _0807DA74: lsls r0, 2 adds r0, r4 movs r1, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim b _0807DB02 .pool _0807DAEC: @@ -11716,10 +11716,10 @@ _0807DAEC: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites adds r0, r1 movs r1, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim _0807DB02: ldr r5, =gUnknown_020322A0 ldr r0, [r5] @@ -11728,10 +11728,10 @@ _0807DB02: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 movs r1, 0 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim ldr r2, [r5] adds r3, r2, 0 adds r3, 0x8E @@ -11791,7 +11791,7 @@ _0807DB02: bl _0807E398 .pool _0807DB9C: - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldr r2, [r7] adds r3, r2, 0 adds r3, 0x8E @@ -11825,7 +11825,7 @@ _0807DB9C: cmp r0, 0x2 bhi _0807DBE4 movs r0, 0x2D - bl audio_play + bl PlaySE _0807DBE4: ldr r2, [r7] adds r3, r2, 0 @@ -11892,7 +11892,7 @@ _0807DC5A: b _0807E400 .pool _0807DC6C: - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldr r2, [r7] adds r3, r2, 0 adds r3, 0x90 @@ -11946,7 +11946,7 @@ _0807DCAE: adds r0, r1 lsls r0, 2 adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, [r7] adds r0, 0x91 ldrb r1, [r0] @@ -11954,7 +11954,7 @@ _0807DCAE: adds r0, r1 lsls r0, 2 adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite b _0807E400 .pool _0807DCF4: @@ -11990,11 +11990,11 @@ _0807DD02: movs r1, 0x78 adds r2, r4, 0 movs r3, 0x3 - bl AddObjectToFront + bl CreateSprite ldr r1, [r7] adds r1, 0x90 strb r0, [r1] - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites ldr r0, [r7] adds r0, 0x90 ldrb r1, [r0] @@ -12010,7 +12010,7 @@ _0807DD02: movs r1, 0x78 adds r2, r4, 0 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r1, [r7] adds r1, 0x91 strb r0, [r1] @@ -12022,7 +12022,7 @@ _0807DD02: lsls r0, 2 adds r0, r5 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim b _0807E400 .pool _0807DD94: @@ -12050,7 +12050,7 @@ _0807DDBC: b _0807E394 .pool _0807DDC4: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r4, [r7] adds r3, r4, 0 adds r3, 0x90 @@ -12149,9 +12149,9 @@ _0807DE84: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, [r7] adds r0, 0x91 ldrb r1, [r0] @@ -12159,7 +12159,7 @@ _0807DE84: adds r0, r1 lsls r0, 2 adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r3, [r7] adds r2, r3, 0 adds r2, 0x94 @@ -12220,7 +12220,7 @@ _0807DF16: movs r1, 0x78 movs r2, 0x50 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r2, =gUnknown_020322A0 ldr r1, [r2] adds r1, 0x91 @@ -12232,7 +12232,7 @@ _0807DF16: b _0807E400 .pool _0807DF3C: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, [r7] adds r0, 0x91 ldrb r1, [r0] @@ -12249,7 +12249,7 @@ _0807DF3C: b _0807E400 _0807DF5A: adds r0, r1, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite movs r0, 0x6 bl sub_807B62C ldr r1, [r7] @@ -12258,7 +12258,7 @@ _0807DF5A: adds r0, 0x1 strh r0, [r1] movs r0, 0x9F - bl audio_play + bl PlaySE b _0807E400 .pool _0807DF7C: @@ -12363,13 +12363,13 @@ _0807E040: negs r2, r2 movs r1, 0x78 movs r3, 0 - bl AddObjectToFront + bl CreateSprite ldr r5, =gUnknown_020322A0 ldr r1, [r5] adds r1, 0xD3 movs r6, 0 strb r0, [r1] - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldr r2, [r5] adds r2, 0xD3 ldrb r1, [r2] @@ -12394,7 +12394,7 @@ _0807E040: lsls r0, 2 adds r0, r4 movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r0, [r5] adds r0, 0xD3 ldrb r1, [r0] @@ -12403,7 +12403,7 @@ _0807E040: lsls r0, 2 adds r0, r4 movs r1, 0x2 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim ldr r0, [r5] adds r0, 0xD3 ldrb r1, [r0] @@ -12429,7 +12429,7 @@ _0807E040: b _0807E400 .pool _0807E0E8: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r0, [r7] adds r0, 0xD3 ldrb r1, [r0] @@ -12452,7 +12452,7 @@ _0807E0E8: b _0807E398 .pool _0807E11C: - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites ldr r3, [r7] adds r0, r3, 0 adds r0, 0xD3 @@ -12463,7 +12463,7 @@ _0807E11C: adds r2, 0x1C adds r0, r2 ldr r1, [r0] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy cmp r1, r0 beq _0807E13A b _0807E400 @@ -12478,12 +12478,12 @@ _0807E13A: ldr r1, [r1] ldr r1, [r1, 0x10] ldr r3, [r3, 0x6C] - bl DecompressMonPic_DetectFrontOrBack_2 + bl HandleLoadSpecialPokePic_2 ldr r1, [r7] b _0807E398 .pool _0807E168: - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites ldr r2, [r7] adds r6, r2, 0 adds r6, 0x8F @@ -12526,7 +12526,7 @@ _0807E168: lsls r0, 2 adds r0, r4 movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r3, [r7] adds r0, r3, 0 adds r0, 0x8F @@ -12558,7 +12558,7 @@ _0807E168: adds r0, r1 lsls r0, 2 adds r0, r4 - bl obj_free_rotscale_entry + bl FreeSpriteOamMatrix ldr r0, [r7] adds r0, 0xD3 ldrb r1, [r0] @@ -12566,7 +12566,7 @@ _0807E168: adds r0, r1 lsls r0, 2 adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r1, [r7] b _0807E398 .pool @@ -12612,7 +12612,7 @@ _0807E272: b _0807E400 .pool _0807E284: - bl sub_80A3678 + bl IsCryFinished lsls r0, 24 cmp r0, 0 bne _0807E290 @@ -12633,7 +12633,7 @@ _0807E2A0: cmp r0, 0xA bne _0807E2B2 ldr r0, =0x00000173 - bl fanfare_play + bl PlayFanfare _0807E2B2: ldr r1, [r7] ldr r0, [r1, 0x64] @@ -12691,7 +12691,7 @@ _0807E312: b _0807E398 .pool _0807E328: - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrb r0, [r0] movs r1, 0 bl sub_807B4D0 @@ -12754,7 +12754,7 @@ _0807E3A8: ldr r0, [r7] adds r0, 0xF4 ldrh r0, [r0] - bl current_map_music_set + bl PlayNewMapMusic ldr r0, [r7] cmp r0, 0 beq _0807E3F6 @@ -12862,8 +12862,8 @@ _0807E4B4: bne _0807E4C2 bl RunTasks _0807E4C2: - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade pop {r3} mov r8, r3 @@ -12988,7 +12988,7 @@ _0807E5B6: bne _0807E5CE movs r0, 0x1 strh r0, [r5, 0x3C] - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r5, 0x1C] _0807E5CE: pop {r4,r5} @@ -13017,7 +13017,7 @@ sub_807E5D8: @ 807E5D8 cmp r0, 0x16 bne _0807E600 movs r0, 0x38 - bl audio_play + bl PlaySE _0807E600: ldrh r0, [r4, 0x2E] adds r0, 0x1 @@ -13027,7 +13027,7 @@ _0807E600: cmp r0, 0x2C bne _0807E636 movs r0, 0x8C - bl audio_play + bl PlaySE ldr r0, =sub_807E64C str r0, [r4, 0x1C] movs r0, 0 @@ -13062,7 +13062,7 @@ sub_807E64C: @ 807E64C bne _0807E660 adds r0, r4, 0 movs r1, 0x1 - bl StartObjectRotScalAnim + bl StartSpriteAffineAnim _0807E660: ldrh r0, [r4, 0x30] adds r0, 0x1 @@ -13088,7 +13088,7 @@ _0807E660: cmp r0, 0x17 bne _0807E69E adds r0, r4, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, =gUnknown_020322A0 ldr r0, [r0] adds r0, 0x94 @@ -13124,7 +13124,7 @@ sub_807E6AC: @ 807E6AC movs r0, 0x16 strh r0, [r4, 0x2E] movs r0, 0x38 - bl audio_play + bl PlaySE b _0807E72C _0807E6DC: movs r1, 0x2E @@ -13132,21 +13132,21 @@ _0807E6DC: cmp r0, 0x42 bne _0807E6EA movs r0, 0x39 - bl audio_play + bl PlaySE _0807E6EA: movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0x5C bne _0807E6F8 movs r0, 0x3A - bl audio_play + bl PlaySE _0807E6F8: movs r3, 0x2E ldrsh r0, [r4, r3] cmp r0, 0x6B bne _0807E706 movs r0, 0x3B - bl audio_play + bl PlaySE _0807E706: ldr r1, =gUnknown_08339024 movs r2, 0x2E @@ -13165,7 +13165,7 @@ _0807E706: asrs r0, 16 cmp r0, 0x6C bne _0807E72C - ldr r0, =DummyObjectCallback + ldr r0, =SpriteCallbackDummy str r0, [r4, 0x1C] _0807E72C: pop {r4} @@ -13177,7 +13177,7 @@ _0807E72C: thumb_func_start sub_807E73C sub_807E73C: @ 807E73C push {r4-r6,lr} - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] lsls r4, r0, 4 subs r4, r0 @@ -13207,14 +13207,14 @@ sub_807E73C: @ 807E73C sub_807E784: @ 807E784 push {r4,lr} sub sp, 0x20 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] lsls r4, r0, 4 subs r4, r0 lsls r4, 2 ldr r0, =gUnknown_08338ED0 adds r4, r0 - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 @@ -13281,85 +13281,85 @@ sub_807E7E8: @ 807E7E8 adds r2, 0xE adds r0, r6, 0 movs r1, 0x27 - bl pokemon_setattr + bl SetMonData adds r2, r5, 0 adds r2, 0xF adds r0, r6, 0 movs r1, 0x28 - bl pokemon_setattr + bl SetMonData adds r2, r5, 0 adds r2, 0x10 adds r0, r6, 0 movs r1, 0x29 - bl pokemon_setattr + bl SetMonData adds r2, r5, 0 adds r2, 0x11 adds r0, r6, 0 movs r1, 0x2A - bl pokemon_setattr + bl SetMonData adds r2, r5, 0 adds r2, 0x12 adds r0, r6, 0 movs r1, 0x2B - bl pokemon_setattr + bl SetMonData adds r2, r5, 0 adds r2, 0x13 adds r0, r6, 0 movs r1, 0x2C - bl pokemon_setattr + bl SetMonData adds r0, r6, 0 movs r1, 0x2 adds r2, r5, 0 - bl pokemon_setattr + bl SetMonData adds r2, r5, 0 adds r2, 0x2B adds r0, r6, 0 movs r1, 0x7 - bl pokemon_setattr + bl SetMonData adds r2, r5, 0 adds r2, 0x36 adds r0, r6, 0 movs r1, 0x31 - bl pokemon_setattr + bl SetMonData adds r2, r5, 0 adds r2, 0x14 adds r0, r6, 0 movs r1, 0x2E - bl pokemon_setattr + bl SetMonData adds r2, r5, 0 adds r2, 0x1D adds r0, r6, 0 movs r1, 0x17 - bl pokemon_setattr + bl SetMonData adds r2, r5, 0 adds r2, 0x1E adds r0, r6, 0 movs r1, 0x18 - bl pokemon_setattr + bl SetMonData adds r2, r5, 0 adds r2, 0x1C adds r0, r6, 0 movs r1, 0x16 - bl pokemon_setattr + bl SetMonData adds r2, r5, 0 adds r2, 0x1F adds r0, r6, 0 movs r1, 0x21 - bl pokemon_setattr + bl SetMonData adds r2, r5, 0 adds r2, 0x20 adds r0, r6, 0 movs r1, 0x2F - bl pokemon_setattr + bl SetMonData adds r2, r5, 0 adds r2, 0x37 adds r0, r6, 0 movs r1, 0x30 - bl pokemon_setattr + bl SetMonData adds r0, r6, 0 movs r1, 0x23 adds r2, r4, 0 - bl pokemon_setattr + bl SetMonData mov r4, sp adds r4, 0x35 movs r0, 0 @@ -13385,12 +13385,12 @@ sub_807E7E8: @ 807E7E8 adds r0, r6, 0 movs r1, 0x40 adds r2, r4, 0 - bl pokemon_setattr + bl SetMonData adds r2, r5, 0 adds r2, 0x28 adds r0, r6, 0 movs r1, 0xC - bl pokemon_setattr + bl SetMonData b _0807E960 .pool _0807E954: @@ -13398,7 +13398,7 @@ _0807E954: adds r2, 0x28 adds r0, r6, 0 movs r1, 0xC - bl pokemon_setattr + bl SetMonData _0807E960: ldr r0, =gEnemyParty bl pokemon_calc_effective_stats @@ -13462,7 +13462,7 @@ _0807E98E: thumb_func_start sub_807E9D4 sub_807E9D4: @ 807E9D4 push {r4-r6,lr} - ldr r6, =gUnknown_020375E2 + ldr r6, =gSpecialVar_0x8005 ldrh r0, [r6] movs r5, 0x64 muls r0, r5 @@ -13492,9 +13492,9 @@ _0807EA0A: thumb_func_start sub_807EA10 sub_807EA10: @ 807EA10 push {lr} - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrb r0, [r0] - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldrb r1, [r1] bl sub_807E7E8 pop {r0} @@ -13517,9 +13517,9 @@ sub_807EA2C: @ 807EA2C lsls r0, r1, 4 adds r0, r1 lsls r0, 2 - ldr r4, =gUnknown_02020630 + ldr r4, =gSprites adds r0, r4 - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, [r5] adds r0, 0x8F ldrb r1, [r0] @@ -13527,7 +13527,7 @@ sub_807EA2C: @ 807EA2C adds r0, r1 lsls r0, 2 adds r0, r4 - bl obj_free_rotscale_entry + bl FreeSpriteOamMatrix ldr r0, =gUnknown_02032298 ldrb r4, [r0] ldrb r0, [r0, 0x1] @@ -13556,8 +13556,8 @@ _0807EA96: bl sub_807E4DC bl RunTasks bl RunTextPrinters - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade pop {r4-r6} pop {r0} @@ -13610,8 +13610,8 @@ _0807EAEC: strb r1, [r0] _0807EB2C: bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade pop {r4} pop {r0} @@ -13829,7 +13829,7 @@ _0807EDC0: cmp r0, 0 bne _0807EDCE movs r0, 0x15 - bl sav12_xor_increment + bl IncrementGameStat _0807EDCE: ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] @@ -14031,7 +14031,7 @@ _0807EF7E: cmp r0, 0 bne _0807F03A movs r0, 0x3 - bl play_sound_effect + bl FadeOutBGM ldr r1, =gMain movs r0, 0x87 lsls r0, 3 @@ -14039,7 +14039,7 @@ _0807EF7E: b _0807EFE4 .pool _0807EFA4: - bl sub_80A3258 + bl IsBGMStopped lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -14105,8 +14105,8 @@ _0807F03A: bne _0807F048 bl RunTasks _0807F048: - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade add sp, 0x4 pop {r4} @@ -14152,8 +14152,8 @@ _0807F0B6: bl SetMainCallback2 _0807F0BE: bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade pop {r4,r5} pop {r0} @@ -14370,7 +14370,7 @@ _0807F27A: cmp r0, 0 bne _0807F298 movs r0, 0xC3 - bl audio_play + bl PlaySE _0807F298: movs r0, 0x2 ldrsh r2, [r4, r0] @@ -14676,7 +14676,7 @@ _0807F50A: movs r2, 0 bl sub_807F1A8 movs r0, 0x15 - bl sav12_xor_increment + bl IncrementGameStat bl sub_8153380 ldr r0, =gUnknown_020322A0 ldr r0, [r0] @@ -14835,7 +14835,7 @@ _0807F694: cmp r0, 0 beq _0807F70C movs r0, 0x3 - bl play_sound_effect + bl FadeOutBGM movs r0, 0x1 negs r0, r0 movs r1, 0 @@ -14858,7 +14858,7 @@ _0807F6C4: ands r0, r1 cmp r0, 0 bne _0807F70C - bl sub_80A3258 + bl IsBGMStopped lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -14889,8 +14889,8 @@ _0807F70C: bne _0807F71A bl RunTasks _0807F71A: - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade add sp, 0x4 pop {r4,r5} diff --git a/asm/trader.s b/asm/trader.s index a85f13b3d7..024ee33078 100644 --- a/asm/trader.s +++ b/asm/trader.s @@ -236,14 +236,14 @@ sub_8133BE4: @ 8133BE4 adds r4, r0, r1 cmp r2, 0x78 bls _08133C14 - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldr r2, =0x0000ffff adds r0, r2, 0 strh r0, [r1] b _08133C18 .pool _08133C14: - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 strh r2, [r0] _08133C18: ldrb r0, [r4, 0x6] @@ -293,15 +293,15 @@ _08133C7C: bne _08133C90 _08133C80: movs r0, 0x5 - bl audio_play + bl PlaySE adds r0, r7, 0 movs r1, 0 bl sub_8133BE4 b _08133CCA _08133C90: movs r0, 0x5 - bl audio_play - ldr r0, =gUnknown_020375E2 + bl PlaySE + ldr r0, =gSpecialVar_0x8005 lsls r4, 24 asrs r4, 24 strh r4, [r0] @@ -335,7 +335,7 @@ _08133CCA: sub_8133CD8: @ 8133CD8 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult ldr r2, =0x00002e59 adds r0, r2 ldrb r0, [r0] @@ -348,7 +348,7 @@ sub_8133CD8: @ 8133CD8 sub_8133CF4: @ 8133CF4 push {r4,r5,lr} movs r4, 0 - ldr r5, =gUnknown_020375F0 + ldr r5, =gScriptResult _08133CFA: adds r0, r4, 0 bl sub_8161AD0 @@ -365,7 +365,7 @@ _08133D10: lsrs r4, r0, 24 cmp r4, 0x7 bls _08133CFA - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 strh r0, [r1] _08133D20: @@ -378,15 +378,15 @@ _08133D20: thumb_func_start sub_8133D2C sub_8133D2C: @ 8133D2C push {r4-r6,lr} - ldr r6, =gUnknown_020375F0 + ldr r6, =gScriptResult movs r0, 0 strh r0, [r6] ldr r4, =gUnknown_085A5C08 - ldr r5, =gUnknown_020375E0 + ldr r5, =gSpecialVar_0x8004 ldrh r0, [r5] lsls r0, 5 adds r2, r0, r4 - ldr r0, =gUnknown_020375E4 + ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] lsls r0, 5 adds r0, r4 @@ -438,7 +438,7 @@ sub_8133DA0: @ 8133DA0 lsrs r0, 24 cmp r0, 0x1 bne _08133DFC - ldr r5, =gUnknown_020375E4 + ldr r5, =gSpecialVar_0x8006 ldr r0, =gUnknown_0203A172 ldrb r1, [r0] ldr r0, =gUnknown_0203A14C @@ -447,7 +447,7 @@ sub_8133DA0: @ 8133DA0 ldrb r0, [r0] strh r0, [r5] ldr r0, =gStringVar3 - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 ldrh r1, [r1] lsls r1, 5 ldr r4, =gUnknown_085A5C09 @@ -461,7 +461,7 @@ sub_8133DA0: @ 8133DA0 b _08133E04 .pool _08133DFC: - ldr r1, =gUnknown_020375E4 + ldr r1, =gSpecialVar_0x8006 ldr r2, =0x0000ffff adds r0, r2, 0 strh r0, [r1] @@ -480,7 +480,7 @@ sub_8133E1C: @ 8133E1C push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, =gUnknown_020375E4 + ldr r2, =gSpecialVar_0x8006 movs r1, 0 strh r1, [r2] bl DestroyTask @@ -499,14 +499,14 @@ sub_8133E38: @ 8133E38 ldr r6, [r0] ldr r0, =0x00002e28 adds r5, r6, r0 - ldr r1, =gUnknown_020375E4 + ldr r1, =gSpecialVar_0x8006 mov r8, r1 ldrb r0, [r1] bl sub_81619DC - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrb r0, [r0] bl IsThereStorageSpaceForDecoration - ldr r4, =gUnknown_020375E2 + ldr r4, =gSpecialVar_0x8005 ldrh r1, [r4] movs r0, 0xB muls r0, r1 diff --git a/asm/trainer_card.s b/asm/trainer_card.s index e73381ae0f..e8ee8b1545 100644 --- a/asm/trainer_card.s +++ b/asm/trainer_card.s @@ -8,8 +8,8 @@ thumb_func_start sub_80C2690 sub_80C2690: @ 80C2690 push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_80C48C8 ldr r0, =gUnknown_02039CE8 @@ -64,8 +64,8 @@ sub_80C26D4: @ 80C26D4 sub_80C2710: @ 80C2710 push {lr} bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 @@ -238,7 +238,7 @@ _080C28A8: b _080C2ACA _080C28B4: movs r0, 0xFB - bl audio_play + bl PlaySE ldr r0, =gUnknown_02039CE8 ldr r1, [r0] movs r0, 0xA @@ -246,7 +246,7 @@ _080C28B4: b _080C2ACA .pool _080C28C8: - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _080C28D4 @@ -287,7 +287,7 @@ _080C290A: beq _080C293C bl sub_80C4918 movs r0, 0xF9 - bl audio_play + bl PlaySE ldr r0, =gUnknown_02039CE8 ldr r1, [r0] movs r0, 0xC @@ -332,7 +332,7 @@ _080C297C: b _080C2ACA _080C2986: movs r0, 0xFB - bl audio_play + bl PlaySE ldr r0, =gUnknown_02039CE8 ldr r1, [r0] movs r0, 0xB @@ -374,7 +374,7 @@ _080C29DC: movs r0, 0xD strb r0, [r1] movs r0, 0xF9 - bl audio_play + bl PlaySE b _080C2ACA .pool _080C29F4: @@ -472,7 +472,7 @@ _080C2AAA: movs r0, 0xA strb r0, [r1] movs r0, 0xFB - bl audio_play + bl PlaySE _080C2ACA: add sp, 0xC pop {r4-r6} @@ -727,8 +727,8 @@ _080C2D36: b _080C2DCC .pool _080C2D50: - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes bl ResetPaletteFade ldr r1, =gMain movs r0, 0x87 @@ -803,7 +803,7 @@ sav12_xor_get_clamped_above: @ 80C2DE4 adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 - bl sub_80847F8 + bl GetGameStat cmp r0, r4 bls _080C2DF6 adds r0, r4, 0 @@ -852,7 +852,7 @@ _080C2E38: sub_80C2E40: @ 80C2E40 push {r4,lr} movs r0, 0xA - bl sub_80847F8 + bl GetGameStat negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 @@ -943,10 +943,10 @@ sub_80C2EC4: @ 80C2EC4 ldrb r0, [r1, 0x10] strh r0, [r5, 0x12] movs r0, 0x1 - bl sub_80847F8 + bl GetGameStat adds r4, r0, 0 movs r0, 0xA - bl sub_80847F8 + bl GetGameStat cmp r0, 0 bne _080C2EF6 movs r4, 0 @@ -1921,7 +1921,7 @@ _080C3740: thumb_func_start sub_80C376C sub_80C376C: @ 80C376C push {lr} - bl sub_809D42C + bl IsNationalPokedexEnabled cmp r0, 0 bne _080C377E movs r0, 0x1 @@ -4319,7 +4319,7 @@ _080C4C50: movs r0, 0x1 strb r0, [r1, 0x9] movs r0, 0xFA - bl audio_play + bl PlaySE movs r0, 0 pop {r4,r5} pop {r1} @@ -5226,8 +5226,8 @@ pokemon_details: @ 80C53AC movs r0, 0x2 bl SetBgAffine _080C5416: - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer add sp, 0x10 pop {r4-r7} @@ -5240,8 +5240,8 @@ _080C5416: sub_80C5438: @ 80C5438 push {lr} bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer pop {r0} bx r0 thumb_func_end sub_80C5438 @@ -5320,8 +5320,8 @@ _080C54EE: b _080C56F4 _080C54F4: bl ResetTasks - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes bl ResetPaletteFade bl reset_temp_tile_data_buffers b _080C56F4 @@ -5502,8 +5502,8 @@ _080C5684: b _080C56F4 .pool _080C56D0: - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl UpdatePaletteFade lsls r0, 24 lsrs r1, r0, 24 @@ -5603,8 +5603,8 @@ _080C57A6: _080C57AC: bl sub_80C50D0 bl ResetTasks - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes b _080C57E4 _080C57BE: movs r0, 0 @@ -5777,7 +5777,7 @@ _080C591C: movs r0, 0xE7 lsls r0, 1 _080C5920: - bl song_play_for_text + bl PlayBGM _080C5924: ldr r0, =sub_80C5868 bl SetMainCallback2 @@ -6037,7 +6037,7 @@ _080C5B0A: cmp r3, 0x3 bhi _080C5B48 movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, [r4] ldrb r1, [r0, 0xC] adds r0, r6, 0 @@ -6050,7 +6050,7 @@ _080C5B48: cmp r3, 0x4 bne _080C5B5E movs r0, 0x3 - bl audio_play + bl PlaySE ldr r0, =sub_80C5470 bl SetMainCallback2 adds r0, r6, 0 @@ -6063,7 +6063,7 @@ _080C5B5E: cmp r0, 0 beq _080C5BCA movs r0, 0x3 - bl audio_play + bl PlaySE ldr r0, =sub_80C5470 bl SetMainCallback2 adds r0, r6, 0 @@ -6946,10 +6946,10 @@ sub_80C62DC: @ 80C62DC push {r6,r7} sub sp, 0x18 movs r5, 0 - bl ResetObjectPaletteAllocator - bl rotscale_reset_all + bl FreeAllSpritePalettes + bl ResetAffineAnimData ldr r0, =gUnknown_085714E4 - bl LoadTaggedObjectPalettes + bl LoadSpritePalettes ldr r4, =gUnknown_085714BC adds r0, r4, 0 bl LoadCompressedObjectPic @@ -6964,7 +6964,7 @@ sub_80C62DC: @ 80C62DC movs r6, 0xA ldrsh r2, [r2, r6] movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r3, =gUnknown_02039CF0 @@ -6972,7 +6972,7 @@ sub_80C62DC: @ 80C62DC lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 str r1, [r2] ldrb r2, [r1, 0x5] @@ -7019,7 +7019,7 @@ _080C633C: lsls r3, r4, 24 lsrs r3, 24 mov r0, sp - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r3, r9 @@ -7030,7 +7030,7 @@ _080C633C: lsls r1, r0, 4 adds r1, r0 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 str r1, [r2] ldrb r2, [r1, 0x5] @@ -7047,7 +7047,7 @@ _080C633C: adds r0, r3 ldr r0, [r0] adds r1, r5, 0 - bl StartObjectImageAnim + bl StartSpriteAnim _080C63C2: lsls r0, r4, 24 lsrs r5, r0, 24 @@ -7070,7 +7070,7 @@ sub_80C63FC: @ 80C63FC ldr r4, =gUnknown_02039CF0 ldr r0, [r4] ldr r0, [r0] - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, [r4] str r5, [r0] adds r6, r4, 0 @@ -7082,7 +7082,7 @@ _080C6410: ldr r0, [r0] cmp r0, 0 beq _080C642C - bl RemoveObjectAndFreeTiles + bl DestroySprite ldr r0, [r6] adds r0, 0x4 adds r0, r4 @@ -7094,11 +7094,11 @@ _080C642C: lsrs r5, r0, 24 cmp r5, 0x6 bls _080C6410 - bl ResetObjectPaletteAllocator + bl FreeAllSpritePalettes movs r0, 0x2 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag movs r0, 0 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag pop {r4-r6} pop {r0} bx r0 @@ -7196,8 +7196,8 @@ _080C6520: bl sub_80C50D0 b _080C6694 _080C6526: - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes bl ResetPaletteFade bl reset_temp_tile_data_buffers b _080C6694 @@ -7409,33 +7409,33 @@ _080C6732: ldr r0, [r0, 0x4] cmp r0, 0 beq _080C6746 - bl RemoveObjectAndFreeTiles + bl DestroySprite movs r0, 0 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag _080C6746: ldr r0, [r4] ldr r0, [r0, 0xC] cmp r0, 0 beq _080C6758 - bl RemoveObjectAndFreeTiles + bl DestroySprite movs r0, 0x1 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag _080C6758: ldr r0, [r4] ldr r0, [r0, 0x8] cmp r0, 0 beq _080C676A - bl RemoveObjectAndFreeTiles + bl DestroySprite movs r0, 0x4 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag _080C676A: bl FreeAllWindowBuffers b _080C67A4 .pool _080C6774: bl sub_80C50D0 - bl ResetAllObjectData - bl ResetObjectPaletteAllocator + bl ResetSpriteData + bl FreeAllSpritePalettes b _080C67A4 _080C6782: movs r0, 0 @@ -7509,7 +7509,7 @@ _080C6806: cmp r0, 0 beq _080C6824 movs r0, 0x3 - bl audio_play + bl PlaySE movs r0, 0x4 b _080C68DE .pool @@ -7701,9 +7701,9 @@ sub_80C6974: @ 80C6974 push {r6,r7} sub sp, 0x18 movs r7, 0 - bl ResetObjectPaletteAllocator + bl FreeAllSpritePalettes ldr r0, =gUnknown_085714E4 - bl LoadTaggedObjectPalettes + bl LoadSpritePalettes ldr r6, =gUnknown_085714BC adds r0, r6, 0 bl LoadCompressedObjectPic @@ -7717,14 +7717,14 @@ sub_80C6974: @ 80C6974 mov r0, r8 movs r1, 0x9B movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 ldr r0, [r4] lsls r1, r3, 4 adds r1, r3 lsls r1, 2 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites mov r9, r2 add r1, r9 str r1, [r0, 0x4] @@ -7744,7 +7744,7 @@ sub_80C6974: @ 80C6974 ldr r0, [r4] ldr r0, [r0, 0x4] movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim adds r6, 0x8 adds r0, r6, 0 bl LoadCompressedObjectPic @@ -7761,7 +7761,7 @@ sub_80C6974: @ 80C6974 ldrsh r2, [r0, r3] mov r0, r8 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 ldr r1, [r4] @@ -7779,7 +7779,7 @@ sub_80C6974: @ 80C6974 lsls r1, 4 adds r1, r6 ldrb r1, [r1, 0xC] - bl StartObjectImageAnim + bl StartSpriteAnim bl sav1_map_get_name lsls r0, 24 lsrs r5, r0, 24 @@ -7909,7 +7909,7 @@ _080C6B3E: asrs r2, 16 mov r0, sp movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 ldr r4, =gUnknown_02039CF4 @@ -7917,7 +7917,7 @@ _080C6B3E: lsls r1, r3, 4 adds r1, r3 lsls r1, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r1, r0 str r1, [r2, 0x8] ldrb r2, [r1, 0x5] @@ -7933,7 +7933,7 @@ _080C6B3E: ldr r0, [r4] ldr r0, [r0, 0x8] movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim _080C6B7A: add sp, 0x18 pop {r3,r4} @@ -8116,7 +8116,7 @@ _080C6C94: lsls r1, 4 adds r1, r4 ldrb r1, [r1, 0xC] - bl StartObjectImageAnim + bl StartSpriteAnim ldr r1, [r5] ldr r2, [r1, 0xC] ldrb r0, [r1, 0x10] @@ -8162,7 +8162,7 @@ _080C6D4A: movs r0, 0 bl CopyBgTilemapBufferToVram movs r0, 0x6C - bl audio_play + bl PlaySE add sp, 0xC pop {r3} mov r8, r3 diff --git a/asm/trainer_see.s b/asm/trainer_see.s index 71941b44f3..8a3d984cf6 100644 --- a/asm/trainer_see.s +++ b/asm/trainer_see.s @@ -1057,7 +1057,7 @@ sub_80B43E0: @ 80B43E0 movs r1, 0x12 ldrsh r0, [r4, r1] str r0, [r2, 0x4] - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 @@ -1088,7 +1088,7 @@ sub_80B4438: @ 80B4438 push {r4,r5,lr} adds r5, r1, 0 adds r4, r2, 0 - ldr r2, =gUnknown_02020630 + ldr r2, =gSprites movs r1, 0x10 ldrsh r0, [r5, r1] lsls r1, r0, 4 @@ -1300,7 +1300,7 @@ sub_80B45D0: @ 80B45D0 bne _080B460C adds r0, 0x1 strb r0, [r1] - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 strh r0, [r1] bl sub_809757C @@ -1313,7 +1313,7 @@ _080B460C: movs r0, 0 strb r0, [r1] _080B4610: - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] _080B4616: diff --git a/asm/trig.s b/asm/trig.s deleted file mode 100644 index 2eb9c4e883..0000000000 --- a/asm/trig.s +++ /dev/null @@ -1,98 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Sin -@ s16 sine(s16 t, s16 amplitude) -Sin: @ 806F534 - lsls r1, 16 - asrs r1, 16 - ldr r2, =gUnknown_08329F40 - lsls r0, 16 - asrs r0, 15 - adds r0, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - muls r0, r1 - lsls r0, 8 - asrs r0, 16 - bx lr - .pool - thumb_func_end Sin - - thumb_func_start Cos -@ s16 cosine(s16 t, s16 amplitude) -Cos: @ 806F550 - lsls r1, 16 - asrs r1, 16 - ldr r2, =gUnknown_08329F40 - lsls r0, 16 - asrs r0, 15 - adds r0, 0x80 - adds r0, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - muls r0, r1 - lsls r0, 8 - asrs r0, 16 - bx lr - .pool - thumb_func_end Cos - - thumb_func_start Sin2 -@ s16 sine2(u16 angle) -Sin2: @ 806F570 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r5, 0 - movs r1, 0xB4 - bl __umodsi3 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0xB4 - bl __udivsi3 - movs r1, 0x1 - ands r0, r1 - ldr r1, =gUnknown_0832A1C0 - lsls r4, 1 - adds r4, r1 - ldrh r1, [r4] - cmp r0, 0 - bne _0806F5A8 - lsls r0, r1, 16 - b _0806F5AC - .pool -_0806F5A8: - lsls r0, r1, 16 - negs r0, r0 -_0806F5AC: - asrs r0, 16 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end Sin2 - - thumb_func_start Cos2 -@ s16 cosine2(u16 angle) -Cos2: @ 806F5B4 - push {lr} - lsls r0, 16 - movs r1, 0xB4 - lsls r1, 15 - adds r0, r1 - lsrs r0, 16 - bl Sin2 - lsls r0, 16 - asrs r0, 16 - pop {r1} - bx r1 - thumb_func_end Cos2 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/truck_scene.s b/asm/truck_scene.s index 7271ba2e48..b9e9f1b354 100644 --- a/asm/truck_scene.s +++ b/asm/truck_scene.s @@ -394,7 +394,7 @@ _080FB3C0: movs r0, 0x1 strh r0, [r4] movs r0, 0x31 - bl audio_play + bl PlaySE b _080FB4D8 .pool _080FB3E8: @@ -440,7 +440,7 @@ _080FB404: movs r0, 0x3 strh r0, [r4] movs r0, 0x32 - bl audio_play + bl PlaySE b _080FB4D8 .pool _080FB450: @@ -469,7 +469,7 @@ _080FB474: cmp r0, 0x5A bne _080FB4D8 movs r0, 0x33 - bl audio_play + bl PlaySE movs r0, 0 strh r0, [r4, 0x2] movs r0, 0x5 @@ -500,7 +500,7 @@ _080FB492: bl MapGridSetMetatileIdAt bl DrawWholeMapView movs r0, 0x34 - bl audio_play + bl PlaySE adds r0, r5, 0 bl DestroyTask bl script_env_2_disable diff --git a/asm/tv.s b/asm/tv.s index d738f8ca53..ccf232dd08 100644 --- a/asm/tv.s +++ b/asm/tv.s @@ -5,8 +5,8 @@ .text - thumb_func_start sub_80EBEE0 -sub_80EBEE0: @ 80EBEE0 + thumb_func_start ClearTVShowData +ClearTVShowData: @ 80EBEE0 push {r4-r7,lr} movs r3, 0 ldr r6, =gSaveBlock1Ptr @@ -49,7 +49,7 @@ _080EBF0A: pop {r0} bx r0 .pool - thumb_func_end sub_80EBEE0 + thumb_func_end ClearTVShowData thumb_func_start special_0x44 special_0x44: @ 80EBF3C @@ -334,7 +334,7 @@ TurnOnTVScreen: @ 80EC14C special_0x45: @ 80EC168 ldr r0, =gSaveBlock1Ptr ldr r1, [r0] - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r2, [r0] lsls r0, r2, 3 adds r0, r2 @@ -390,7 +390,7 @@ _080EC1CC: special_0x4a: @ 80EC1D4 push {lr} ldr r3, =gSaveBlock1Ptr - ldr r2, =gUnknown_020375E0 + ldr r2, =gSpecialVar_0x8004 ldrh r1, [r2] lsls r0, r1, 3 adds r0, r1 @@ -419,8 +419,8 @@ _080EC216: bx r1 thumb_func_end special_0x4a - thumb_func_start GabbyAndTyNewGameInitData -GabbyAndTyNewGameInitData: @ 80EC21C + thumb_func_start ResetGabbyAndTy +ResetGabbyAndTy: @ 80EC21C push {r4-r6,lr} mov r6, r10 mov r5, r9 @@ -535,7 +535,7 @@ GabbyAndTyNewGameInitData: @ 80EC21C pop {r0} bx r0 .pool - thumb_func_end GabbyAndTyNewGameInitData + thumb_func_end ResetGabbyAndTy thumb_func_start GabbyAndTyBeforeInterview GabbyAndTyBeforeInterview: @ 80EC31C @@ -748,7 +748,7 @@ GabbyAndTyAfterInterview: @ 80EC448 adds r0, r2 strb r1, [r0] movs r0, 0x6 - bl sav12_xor_increment + bl IncrementGameStat pop {r4-r6} pop {r0} bx r0 @@ -906,66 +906,66 @@ _080EC5F8: .4byte _080EC690 .4byte _080EC6A4 _080EC618: - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 movs r0, 0xE strh r0, [r1] - ldr r1, =gUnknown_020375E2 + ldr r1, =gSpecialVar_0x8005 movs r0, 0xD b _080EC6AE .pool _080EC62C: - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 movs r0, 0x5 strh r0, [r1] - ldr r1, =gUnknown_020375E2 + ldr r1, =gSpecialVar_0x8005 movs r0, 0x6 b _080EC6AE .pool _080EC640: - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 movs r0, 0x12 strh r0, [r1] - ldr r1, =gUnknown_020375E2 + ldr r1, =gSpecialVar_0x8005 movs r0, 0x11 b _080EC6AE .pool _080EC654: - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 movs r0, 0x15 strh r0, [r1] - ldr r1, =gUnknown_020375E2 + ldr r1, =gSpecialVar_0x8005 movs r0, 0x16 b _080EC6AE .pool _080EC668: - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 movs r0, 0x8 strh r0, [r1] - ldr r1, =gUnknown_020375E2 + ldr r1, =gSpecialVar_0x8005 movs r0, 0x9 b _080EC6AE .pool _080EC67C: - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 movs r0, 0x13 strh r0, [r1] - ldr r1, =gUnknown_020375E2 + ldr r1, =gSpecialVar_0x8005 movs r0, 0x14 b _080EC6AE .pool _080EC690: - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 movs r0, 0x17 strh r0, [r1] - ldr r1, =gUnknown_020375E2 + ldr r1, =gSpecialVar_0x8005 movs r0, 0x18 b _080EC6AE .pool _080EC6A4: - ldr r1, =gUnknown_020375E0 + ldr r1, =gSpecialVar_0x8004 movs r0, 0xA strh r0, [r1] - ldr r1, =gUnknown_020375E2 + ldr r1, =gSpecialVar_0x8005 movs r0, 0xB _080EC6AE: strh r0, [r1] @@ -978,7 +978,7 @@ _080EC6B0: thumb_func_start InterviewAfter InterviewAfter: @ 80EC6BC push {lr} - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] subs r0, 0x1 cmp r0, 0x7 @@ -1208,7 +1208,7 @@ sub_80EC8A4: @ 80EC8A4 movs r1, 0x18 bl sub_80EF910 movs r0, 0x5 - bl sub_80847F8 + bl GetGameStat strh r0, [r4, 0x6] movs r0, 0x19 strb r0, [r4] @@ -1260,7 +1260,7 @@ _080EC914: _080EC92E: cmp r5, 0x2 bls _080EC9B4 - ldr r0, =gUnknown_0202433A + ldr r0, =gBattleOutcome mov r8, r0 ldrb r0, [r0] cmp r0, 0x6 @@ -1491,7 +1491,7 @@ sub_80ECB00: @ 80ECB00 beq _080ECBEC movs r0, 0xA bl sub_80EF550 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0x1 beq _080ECBEC @@ -1611,7 +1611,7 @@ sub_80ECC04: @ 80ECC04 beq _080ECC54 movs r0, 0x9 bl sub_80EF550 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0x1 bne _080ECC68 @@ -1697,7 +1697,7 @@ sub_80ECD00: @ 80ECD00 push {r4-r6,lr} sub sp, 0x20 ldr r6, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E4 + ldr r0, =gSpecialVar_0x8006 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -1706,7 +1706,7 @@ sub_80ECD00: @ 80ECD00 adds r0, r1 ldr r1, [r6] adds r4, r1, r0 - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -2230,7 +2230,7 @@ _080ED1F4: movs r0, 0x64 _080ED1F6: strb r0, [r6, 0x1A] - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] strb r0, [r6, 0x1B] adds r0, r6, 0 @@ -2361,11 +2361,11 @@ sub_80ED320: @ 80ED320 mov r6, r8 push {r6,r7} bl sub_80EF7A8 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0x1 beq _080ED400 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 mov r8, r0 ldrh r0, [r0] movs r7, 0x64 @@ -2468,7 +2468,7 @@ _080ED400: StartMassOutbreak: @ 80ED430 push {r4,r5,lr} ldr r4, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] lsls r1, r0, 3 adds r1, r0 @@ -2545,7 +2545,7 @@ StartMassOutbreak: @ 80ED430 sub_80ED4DC: @ 80ED4DC push {r4,lr} bl sub_80EFA88 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0x1 beq _080ED532 @@ -2708,7 +2708,7 @@ sub_80ED610: @ 80ED610 ands r1, r2 orrs r1, r0 strb r1, [r5, 0x4] - ldr r0, =gUnknown_020375E6 + ldr r0, =gSpecialVar_0x8007 ldrb r0, [r0] lsls r0, 4 movs r2, 0xF @@ -3238,7 +3238,7 @@ sub_80EDA80: @ 80EDA80 ldrh r0, [r5, 0x2] strh r0, [r4, 0x2] movs r0, 0x5 - bl sub_80847F8 + bl GetGameStat ldrh r1, [r5, 0x6] subs r0, r1 strh r0, [r4, 0x6] @@ -3321,7 +3321,7 @@ _080EDB9C: cmp r6, r0 bls _080EDB88 strb r5, [r4, 0x4] - bl sub_809D42C + bl IsNationalPokedexEnabled cmp r0, 0 beq _080EDBCC movs r0, 0x1 @@ -3488,7 +3488,7 @@ sub_80EDCE8: @ 80EDCE8 movs r0, 0x1C strb r0, [r4] strb r1, [r4, 0x1] - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] strh r0, [r4, 0x2] ldr r1, =gUnknown_02037318 @@ -4081,7 +4081,7 @@ _080EE1FE: bl StringCopy ldrh r0, [r6, 0x6] strh r0, [r4, 0xA] - ldr r0, =gUnknown_0202433A + ldr r0, =gBattleOutcome ldrb r0, [r0] subs r0, 0x1 cmp r0, 0x9 @@ -4203,12 +4203,12 @@ sub_80EE2CC: @ 80EE2CC ldr r1, =gSaveBlock2Ptr ldr r1, [r1] bl StringCopy - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrb r1, [r0] movs r0, 0x4 subs r0, r1 strb r0, [r4, 0x4] - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] strh r0, [r4, 0x2] adds r0, r4, 0 @@ -4773,7 +4773,7 @@ sub_80EE7C0: @ 80EE7C0 beq _080EE810 movs r0, 0xB bl sub_80EF550 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0x1 beq _080EE810 @@ -5378,7 +5378,7 @@ sub_80EED34: @ 80EED34 adds r0, r4, 0 bl VarGet adds r1, r0, 0 - ldr r0, =gUnknown_020375E4 + ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] adds r1, r0 lsls r1, 16 @@ -5658,7 +5658,7 @@ sub_80EEF6C: @ 80EEF6C lsrs r2, r0, 24 cmp r2, 0xFF bne _080EEF84 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 b _080EF01A .pool @@ -5676,7 +5676,7 @@ _080EEF84: adds r1, r2 movs r0, 0x2 strb r0, [r1] - ldr r0, =gUnknown_03005CF8 + ldr r0, =gLocalTime ldrb r0, [r0, 0x2] lsls r0, 24 asrs r0, 24 @@ -5725,7 +5725,7 @@ _080EEFE8: ldr r0, [r0] bl box_related_two__2 _080EF016: - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 _080EF01A: strh r0, [r1] @@ -5804,7 +5804,7 @@ _080EF0A6: lsls r0, 1 cmp r1, r0 bne _080EF0D4 - ldr r0, =gUnknown_020375F2 + ldr r0, =gScriptLastTalked ldrh r0, [r0] cmp r0, 0x19 beq _080EF0A2 @@ -6078,7 +6078,7 @@ _080EF300: SetContestCategoryStringVarForInterview: @ 80EF30C push {lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -6396,7 +6396,7 @@ _080EF55C: ldrb r2, [r0] cmp r2, 0x1 bne _080EF590 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r2, [r0] b _080EF5B2 .pool @@ -6424,10 +6424,10 @@ _080EF5B2: thumb_func_start InterviewBefore InterviewBefore: @ 80EF5B8 push {lr} - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] - ldr r0, =gUnknown_020375E2 + ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] subs r0, 0x1 cmp r0, 0xA @@ -6490,7 +6490,7 @@ sub_80EF64C: @ 80EF64C push {r4,lr} movs r0, 0x1 bl sub_80EF550 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0 bne _080EF6A0 @@ -6536,7 +6536,7 @@ sub_80EF6C4: @ 80EF6C4 push {lr} movs r0, 0x2 bl sub_80EF550 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0 bne _080EF6F0 @@ -6564,7 +6564,7 @@ sub_80EF704: @ 80EF704 push {r4-r6,lr} movs r0, 0x3 bl sub_80EF550 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0 bne _080EF774 @@ -6618,7 +6618,7 @@ _080EF774: thumb_func_start sub_80EF79C sub_80EF79C: @ 80EF79C - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 strh r0, [r1] bx lr @@ -6639,7 +6639,7 @@ sub_80EF7B4: @ 80EF7B4 push {lr} movs r0, 0x6 bl sub_80EF550 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0 bne _080EF7E0 @@ -6685,7 +6685,7 @@ sub_80EF80C: @ 80EF80C push {lr} movs r0, 0x7 bl sub_80EF550 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0 bne _080EF838 @@ -6713,7 +6713,7 @@ sub_80EF84C: @ 80EF84C push {lr} movs r0, 0xB bl sub_80EF550 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0 bne _080EF878 @@ -7012,7 +7012,7 @@ sub_80EFA88: @ 80EFA88 bl sub_80EFADC ldr r1, =gUnknown_030060BC strb r0, [r1] - ldr r2, =gUnknown_020375E4 + ldr r2, =gSpecialVar_0x8006 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 @@ -7023,12 +7023,12 @@ sub_80EFA88: @ 80EFA88 negs r1, r1 cmp r0, r1 bne _080EFACC - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 b _080EFAD0 .pool _080EFACC: - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 _080EFAD0: strh r0, [r1] @@ -7402,7 +7402,7 @@ sub_80EFD54: @ 80EFD54 movs r1, 0 ldr r0, =gSaveBlock1Ptr ldr r3, [r0] - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r2, [r0] ldr r4, =0x000027cc _080EFD62: @@ -7433,7 +7433,7 @@ _080EFD90: thumb_func_start sub_80EFD98 sub_80EFD98: @ 80EFD98 push {r4,lr} - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 @@ -7468,7 +7468,7 @@ sub_80EFDDC: @ 80EFDDC mov r4, r8 push {r4-r6} sub sp, 0x8 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 mov r9, r0 ldrh r0, [r0] movs r1, 0x64 @@ -7545,7 +7545,7 @@ sub_80EFDDC: @ 80EFDDC thumb_func_start c2_080CC144 c2_080CC144: @ 80EFE98 push {lr} - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 @@ -7553,7 +7553,7 @@ c2_080CC144: @ 80EFE98 adds r0, r1 ldr r2, =gStringVar2 movs r1, 0x2 - bl pokemon_setattr + bl SetMonData bl c2_exit_to_overworld_1_continue_scripts_restart_music pop {r0} bx r0 @@ -7566,9 +7566,9 @@ sub_80EFEC4: @ 80EFEC4 mov r6, r8 push {r6} sub sp, 0x8 - ldr r0, =gUnknown_020375F6 + ldr r0, =gSpecialVar_0x8012 ldrb r0, [r0] - ldr r1, =gUnknown_020375F8 + ldr r1, =gSpecialVar_0x8013 ldrb r1, [r1] bl get_pokemon_by_box_and_pos adds r6, r0, 0 @@ -7617,9 +7617,9 @@ sub_80EFEC4: @ 80EFEC4 thumb_func_start sub_80EFF48 sub_80EFF48: @ 80EFF48 push {lr} - ldr r0, =gUnknown_020375F6 + ldr r0, =gSpecialVar_0x8012 ldrb r0, [r0] - ldr r1, =gUnknown_020375F8 + ldr r1, =gSpecialVar_0x8013 ldrb r1, [r1] ldr r2, =gStringVar2 bl sub_80D1E90 @@ -7632,7 +7632,7 @@ sub_80EFF48: @ 80EFF48 thumb_func_start sub_80EFF6C sub_80EFF6C: @ 80EFF6C push {r4,lr} - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 @@ -7655,7 +7655,7 @@ sub_80EFF9C: @ 80EFF9C push {r4,lr} bl sub_80F0020 adds r4, r0, 0 - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 @@ -7666,12 +7666,12 @@ sub_80EFF9C: @ 80EFF9C bl GetMonData cmp r4, r0 bne _080EFFD0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 b _080EFFD4 .pool _080EFFD0: - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 _080EFFD4: strh r0, [r1] @@ -10302,7 +10302,7 @@ sub_80F153C: @ 80F153C push {lr} ldr r0, =gSaveBlock1Ptr ldr r2, [r0] - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -10476,7 +10476,7 @@ _080F16E6: DoTVShowBravoTrainerPokemonProfile: @ 80F16EC push {r4,r5,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -10485,7 +10485,7 @@ DoTVShowBravoTrainerPokemonProfile: @ 80F16EC adds r0, r1 ldr r1, [r2] adds r4, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =gUnknown_0203A030 @@ -10717,7 +10717,7 @@ _080F1952: DoTVShowBravoTrainerBattleTower: @ 80F1974 push {r4,r5,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -10726,7 +10726,7 @@ DoTVShowBravoTrainerBattleTower: @ 80F1974 adds r0, r1 ldr r1, [r2] adds r4, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =gUnknown_0203A030 @@ -10969,7 +10969,7 @@ _080F1BEA: DoTVShowTodaysSmartShopper: @ 80F1C0C push {r4-r6,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -10978,7 +10978,7 @@ DoTVShowTodaysSmartShopper: @ 80F1C0C adds r0, r1 ldr r1, [r2] adds r5, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =gUnknown_0203A030 @@ -11041,7 +11041,7 @@ _080F1CC8: bl sub_81DB5E8 ldr r4, =gStringVar2 ldrh r0, [r5, 0x6] - bl itemid_get_item + bl ItemId_GetItem adds r1, r0, 0 adds r0, r4, 0 bl StringCopy @@ -11093,7 +11093,7 @@ _080F1D40: _080F1D4C: ldr r4, =gStringVar2 ldrh r0, [r5, 0x8] - bl itemid_get_item + bl ItemId_GetItem adds r1, r0, 0 adds r0, r4, 0 bl StringCopy @@ -11111,7 +11111,7 @@ _080F1D4C: _080F1D7C: ldr r4, =gStringVar2 ldrh r0, [r5, 0xA] - bl itemid_get_item + bl ItemId_GetItem adds r1, r0, 0 adds r0, r4, 0 bl StringCopy @@ -11159,7 +11159,7 @@ _080F1DD8: bl sub_81DB5E8 ldr r4, =gStringVar2 ldrh r0, [r5, 0x6] - bl itemid_get_item + bl ItemId_GetItem adds r1, r0, 0 adds r0, r4, 0 bl StringCopy @@ -11202,7 +11202,7 @@ DoTVShowTheNameRaterShow: @ 80F1E48 push {r4-r6,lr} sub sp, 0x8 ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -11211,7 +11211,7 @@ DoTVShowTheNameRaterShow: @ 80F1E48 adds r0, r1 ldr r1, [r2] adds r5, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =gUnknown_0203A030 @@ -11497,7 +11497,7 @@ _080F20FE: DoTVShowPokemonTodaySuccessfulCapture: @ 80F211C push {r4-r6,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -11506,7 +11506,7 @@ DoTVShowPokemonTodaySuccessfulCapture: @ 80F211C adds r0, r1 ldr r1, [r2] adds r5, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =gUnknown_0203A030 @@ -11574,7 +11574,7 @@ _080F21EC: _080F21F2: ldr r4, =gStringVar2 ldrb r0, [r5, 0xF] - bl itemid_get_item + bl ItemId_GetItem adds r1, r0, 0 adds r0, r4, 0 bl StringCopy @@ -11718,7 +11718,7 @@ _080F2358: DoTVShowPokemonTodayFailedCapture: @ 80F2370 push {r4,r5,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -11727,7 +11727,7 @@ DoTVShowPokemonTodayFailedCapture: @ 80F2370 adds r0, r1 ldr r1, [r2] adds r4, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =gUnknown_0203A030 @@ -11857,7 +11857,7 @@ _080F24C0: DoTVShowPokemonFanClubLetter: @ 80F24D8 push {r4-r7,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -11866,7 +11866,7 @@ DoTVShowPokemonFanClubLetter: @ 80F24D8 adds r0, r1 ldr r1, [r2] adds r5, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =gUnknown_0203A030 @@ -12056,7 +12056,7 @@ _080F26FC: DoTVShowRecentHappenings: @ 80F2708 push {r4-r7,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -12065,7 +12065,7 @@ DoTVShowRecentHappenings: @ 80F2708 adds r0, r1 ldr r1, [r2] adds r5, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =gUnknown_0203A030 @@ -12196,7 +12196,7 @@ _080F2898: DoTVShowPokemonFanClubOpinions: @ 80F28A4 push {r4-r6,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -12205,7 +12205,7 @@ DoTVShowPokemonFanClubOpinions: @ 80F28A4 adds r0, r1 ldr r1, [r2] adds r4, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r6, =gUnknown_0203A030 @@ -12294,7 +12294,7 @@ DoTVShowDummiedOut: @ 80F299C DoTVShowPokemonNewsMassOutbreak: @ 80F29A0 push {r4,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -12333,7 +12333,7 @@ DoTVShowPokemonNewsMassOutbreak: @ 80F29A0 DoTVShowPokemonContestLiveUpdates: @ 80F2A10 push {r4-r7,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -12342,7 +12342,7 @@ DoTVShowPokemonContestLiveUpdates: @ 80F2A10 adds r0, r1 ldr r1, [r2] adds r6, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =gUnknown_0203A030 @@ -13086,7 +13086,7 @@ _080F311C: DoTVShowPokemonBattleUpdate: @ 80F3140 push {r4,r5,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -13095,7 +13095,7 @@ DoTVShowPokemonBattleUpdate: @ 80F3140 adds r0, r1 ldr r1, [r2] adds r4, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =gUnknown_0203A030 @@ -13296,7 +13296,7 @@ _080F3362: DoTVShow3CheersForPokeblocks: @ 80F3388 push {r4,r5,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -13305,7 +13305,7 @@ DoTVShow3CheersForPokeblocks: @ 80F3388 adds r0, r1 ldr r1, [r2] adds r4, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =gUnknown_0203A030 @@ -13545,7 +13545,7 @@ _080F3624: thumb_func_start DoTVShowInSearchOfTrainers DoTVShowInSearchOfTrainers: @ 80F363C push {r4-r7,lr} - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult movs r1, 0 strh r1, [r0] ldr r0, =gUnknown_0203A030 @@ -13709,7 +13709,7 @@ _080F37A2: muls r1, r6 adds r1, r5 bl StringCopy - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 strh r0, [r1] ldr r1, =gUnknown_0203A030 @@ -13732,7 +13732,7 @@ _080F37EA: DoTVShowPokemonAngler: @ 80F3828 push {r4,r5,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -13741,7 +13741,7 @@ DoTVShowPokemonAngler: @ 80F3828 adds r0, r1 ldr r1, [r2] adds r4, r1, r0 - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult movs r1, 0 strh r1, [r0] ldrb r0, [r4, 0x2] @@ -13817,7 +13817,7 @@ _080F38E0: DoTVShowTheWorldOfMasters: @ 80F3904 push {r4-r6,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -13826,7 +13826,7 @@ DoTVShowTheWorldOfMasters: @ 80F3904 adds r0, r1 ldr r1, [r2] adds r4, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r6, =gUnknown_0203A030 @@ -13905,7 +13905,7 @@ _080F39BE: DoTVShowTodaysRivalTrainer: @ 80F39E4 push {r4,r5,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -13914,7 +13914,7 @@ DoTVShowTodaysRivalTrainer: @ 80F39E4 adds r0, r1 ldr r1, [r2] adds r4, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =gUnknown_0203A030 @@ -14135,7 +14135,7 @@ _080F3BE8: DoTVShowDewfordTrendWatcherNetwork: @ 80F3C04 push {r4,r5,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -14144,7 +14144,7 @@ DoTVShowDewfordTrendWatcherNetwork: @ 80F3C04 adds r0, r1 ldr r1, [r2] adds r4, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =gUnknown_0203A030 @@ -14268,7 +14268,7 @@ _080F3D54: DoTVShowHoennTreasureInvestigators: @ 80F3D74 push {r4-r7,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -14277,7 +14277,7 @@ DoTVShowHoennTreasureInvestigators: @ 80F3D74 adds r0, r1 ldr r1, [r2] adds r5, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r7, =gUnknown_0203A030 @@ -14297,7 +14297,7 @@ _080F3DB8: _080F3DBE: ldr r4, =gStringVar1 ldrh r0, [r5, 0x2] - bl itemid_get_item + bl ItemId_GetItem adds r1, r0, 0 adds r0, r4, 0 bl StringCopy @@ -14328,7 +14328,7 @@ _080F3DFC: _080F3E02: ldr r4, =gStringVar1 ldrh r0, [r5, 0x2] - bl itemid_get_item + bl ItemId_GetItem adds r1, r0, 0 adds r0, r4, 0 bl StringCopy @@ -14347,7 +14347,7 @@ _080F3E02: _080F3E3C: ldr r4, =gStringVar1 ldrh r0, [r5, 0x2] - bl itemid_get_item + bl ItemId_GetItem adds r1, r0, 0 adds r0, r4, 0 bl StringCopy @@ -14373,7 +14373,7 @@ _080F3E5C: DoTVShowFindThatGamer: @ 80F3E7C push {r4,r5,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -14382,7 +14382,7 @@ DoTVShowFindThatGamer: @ 80F3E7C adds r0, r1 ldr r1, [r2] adds r4, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =gUnknown_0203A030 @@ -14543,7 +14543,7 @@ _080F4008: DoTVShowBreakingNewsTV: @ 80F4028 push {r4-r7,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -14552,7 +14552,7 @@ DoTVShowBreakingNewsTV: @ 80F4028 adds r0, r1 ldr r1, [r2] adds r6, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =gUnknown_0203A030 @@ -14645,7 +14645,7 @@ _080F4140: bl sub_80EF340 ldr r4, =gStringVar2 ldrh r0, [r6, 0x6] - bl itemid_get_item + bl ItemId_GetItem adds r1, r0, 0 adds r0, r4, 0 bl StringCopy @@ -14846,7 +14846,7 @@ _080F4344: DoTVShowSecretBaseVisit: @ 80F4360 push {r4-r6,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -14855,7 +14855,7 @@ DoTVShowSecretBaseVisit: @ 80F4360 adds r0, r1 ldr r1, [r2] adds r5, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =gUnknown_0203A030 @@ -15074,7 +15074,7 @@ _080F4588: DoTVShowPokemonLotterWinnerFlashReport: @ 80F45A0 push {r4-r6,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -15083,7 +15083,7 @@ DoTVShowPokemonLotterWinnerFlashReport: @ 80F45A0 adds r0, r1 ldr r1, [r2] adds r5, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =gUnknown_0203A030 @@ -15124,7 +15124,7 @@ _080F462C: _080F4634: ldr r4, =gStringVar3 ldrh r0, [r5, 0x2] - bl itemid_get_item + bl ItemId_GetItem adds r1, r0, 0 adds r0, r4, 0 bl StringCopy @@ -15144,7 +15144,7 @@ _080F4634: DoTVShowThePokemonBattleSeminar: @ 80F466C push {r4-r7,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -15153,7 +15153,7 @@ DoTVShowThePokemonBattleSeminar: @ 80F466C adds r0, r1 ldr r1, [r2] adds r6, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =gUnknown_0203A030 @@ -15341,7 +15341,7 @@ _080F4858: DoTVShowTrainerFanClubSpecial: @ 80F487C push {r4,r5,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -15350,7 +15350,7 @@ DoTVShowTrainerFanClubSpecial: @ 80F487C adds r0, r1 ldr r1, [r2] adds r4, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =gUnknown_0203A030 @@ -15464,7 +15464,7 @@ _080F499A: DoTVShowTrainerFanClub: @ 80F49BC push {r4,r5,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -15473,7 +15473,7 @@ DoTVShowTrainerFanClub: @ 80F49BC adds r0, r1 ldr r1, [r2] adds r4, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =gUnknown_0203A030 @@ -15634,7 +15634,7 @@ _080F4B3A: DoTVShowSpotTheCuties: @ 80F4B5C push {r4,r5,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -15643,7 +15643,7 @@ DoTVShowSpotTheCuties: @ 80F4B5C adds r0, r1 ldr r1, [r2] adds r4, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =gUnknown_0203A030 @@ -15857,7 +15857,7 @@ _080F4D84: DoTVShowPokemonNewsBattleFrontier: @ 80F4D9C push {r4-r7,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -15866,7 +15866,7 @@ DoTVShowPokemonNewsBattleFrontier: @ 80F4D9C adds r0, r1 ldr r1, [r2] adds r6, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =gUnknown_0203A030 @@ -16118,7 +16118,7 @@ _080F5014: DoTVShowWhatsNo1InHoennToday: @ 80F5030 push {r4,r5,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -16127,7 +16127,7 @@ DoTVShowWhatsNo1InHoennToday: @ 80F5030 adds r0, r1 ldr r1, [r2] adds r4, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =gUnknown_0203A030 @@ -16326,7 +16326,7 @@ DoTVShowSecretBaseSecrets: @ 80F51EC mov r6, r8 push {r6,r7} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -16335,7 +16335,7 @@ DoTVShowSecretBaseSecrets: @ 80F51EC adds r0, r1 ldr r1, [r2] adds r5, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =gUnknown_0203A030 @@ -16618,7 +16618,7 @@ _080F54EC: _080F54F0: ldr r4, =gStringVar2 ldrh r0, [r5, 0x10] - bl itemid_get_item + bl ItemId_GetItem adds r1, r0, 0 adds r0, r4, 0 bl StringCopy @@ -16664,7 +16664,7 @@ _080F552A: DoTVShowSafariFanClub: @ 80F5548 push {r4,r5,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -16673,7 +16673,7 @@ DoTVShowSafariFanClub: @ 80F5548 adds r0, r1 ldr r1, [r2] adds r4, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =gUnknown_0203A030 @@ -16832,7 +16832,7 @@ _080F56BC: DoTVShowPokemonContestLiveUpdates2: @ 80F56D4 push {r4-r6,lr} ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 @@ -16841,7 +16841,7 @@ DoTVShowPokemonContestLiveUpdates2: @ 80F56D4 adds r0, r1 ldr r1, [r2] adds r4, r1, r0 - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r6, =gUnknown_0203A030 @@ -16904,7 +16904,7 @@ _080F575E: thumb_func_start TVShowDone TVShowDone: @ 80F577C - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0x1 strh r0, [r1] ldr r1, =gUnknown_0203A030 @@ -16912,7 +16912,7 @@ TVShowDone: @ 80F577C strb r0, [r1] ldr r0, =gSaveBlock1Ptr ldr r2, [r0] - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 diff --git a/asm/unknown_task.s b/asm/unknown_task.s index 0d9b6a1dd2..e3526c809c 100644 --- a/asm/unknown_task.s +++ b/asm/unknown_task.s @@ -424,7 +424,7 @@ sub_80BA33C: @ 80BA33C lsrs r4, r2, 24 movs r1, 0 movs r2, 0 - ldr r0, =gUnknown_08329F40 + ldr r0, =gSineTable mov r12, r0 _080BA350: lsls r0, r1, 1 diff --git a/asm/util.s b/asm/util.s index 865e98937a..73342f136b 100644 --- a/asm/util.s +++ b/asm/util.s @@ -13,10 +13,10 @@ CreateInvisibleSpriteWithCallback: @ 806F640 movs r1, 0xF8 movs r2, 0xA8 movs r3, 0xE - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 diff --git a/asm/wallclock.s b/asm/wallclock.s index 9ce2108f7b..b74ac29b2f 100644 --- a/asm/wallclock.s +++ b/asm/wallclock.s @@ -8,8 +8,8 @@ thumb_func_start sub_81347B4 sub_81347B4: @ 81347B4 push {lr} - bl LoadOamFromSprites - bl ProcessObjectCopyRequests + bl LoadOam + bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 @@ -137,7 +137,7 @@ _0813486C: movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram - ldr r0, =gUnknown_020375E0 + ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0 bne _081348FC @@ -178,13 +178,13 @@ _08134906: bl clear_scheduled_bg_copies_to_vram bl remove_some_task bl ResetTasks - bl ResetAllObjectData + bl ResetSpriteData bl ResetPaletteFade - bl ResetObjectPaletteAllocator + bl FreeAllSpritePalettes ldr r0, =gUnknown_085B2208 bl LoadCompressedObjectPic ldr r0, =gUnknown_085B2218 - bl LoadTaggedObjectPalettes + bl LoadSpritePalettes add sp, 0x8 pop {r3} mov r8, r3 @@ -276,10 +276,10 @@ Cb2_StartWallClock: @ 81349F4 movs r1, 0x78 movs r2, 0x50 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 - ldr r1, =gUnknown_02020630 + ldr r1, =gSprites mov r9, r1 lsls r1, r0, 4 adds r1, r0 @@ -306,7 +306,7 @@ Cb2_StartWallClock: @ 81349F4 movs r1, 0x78 movs r2, 0x50 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -328,7 +328,7 @@ Cb2_StartWallClock: @ 81349F4 movs r1, 0x78 movs r2, 0x50 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -342,7 +342,7 @@ Cb2_StartWallClock: @ 81349F4 movs r1, 0x78 movs r2, 0x50 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -421,10 +421,10 @@ _08134BA4: movs r1, 0x78 movs r2, 0x50 movs r3, 0x1 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 @@ -452,7 +452,7 @@ _08134BA4: movs r1, 0x78 movs r2, 0x50 movs r3, 0 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -474,7 +474,7 @@ _08134BA4: movs r1, 0x78 movs r2, 0x50 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -488,7 +488,7 @@ _08134BA4: movs r1, 0x78 movs r2, 0x50 movs r3, 0x2 - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -528,8 +528,8 @@ _08134BA4: sub_8134C9C: @ 8134C9C push {lr} bl RunTasks - bl CallObjectCallbacks - bl PrepareSpritesForOamLoad + bl AnimateSprites + bl BuildOamBuffer bl do_scheduled_bg_tilemap_copies_to_vram bl UpdatePaletteFade pop {r0} @@ -738,7 +738,7 @@ _08134E50: b _08134E96 _08134E56: movs r0, 0x5 - bl audio_play + bl PlaySE ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 @@ -749,7 +749,7 @@ _08134E56: .pool _08134E74: movs r0, 0x5 - bl audio_play + bl PlaySE movs r0, 0 movs r1, 0 bl sub_8198070 @@ -785,7 +785,7 @@ sub_8134EA4: @ 8134EA4 ldrsh r0, [r4, r1] movs r2, 0xE ldrsh r1, [r4, r2] - bl GameFreakRTC_CalcRTCToLocalDelta_DayZero + bl RtcInitLocalTimeOffset movs r0, 0x1 negs r0, r0 movs r1, 0 @@ -1128,13 +1128,13 @@ sub_8135130: @ 8135130 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - bl GameFreakRTC_CalcLocalDateTime + bl RtcCalcLocalTime ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r6, r0, r1 - ldr r5, =gUnknown_03005CF8 + ldr r5, =gLocalTime movs r0, 0x2 ldrsb r0, [r5, r0] strh r0, [r6, 0xC] @@ -1222,7 +1222,7 @@ _081351E8: lsrs r3, 16 str r1, [sp] movs r0, 0 - bl SetSpriteTransformationMatrix + bl SetOamMatrix ldr r1, =gUnknown_085B22D0 lsls r2, r7, 1 adds r0, r2, r1 @@ -1300,7 +1300,7 @@ _08135280: lsrs r3, 16 str r1, [sp] movs r0, 0x1 - bl SetSpriteTransformationMatrix + bl SetOamMatrix ldr r1, =gUnknown_085B22D0 lsls r2, r7, 1 adds r0, r2, r1 diff --git a/asm/weather.s b/asm/weather.s index eae277f591..7bb483e4a3 100644 --- a/asm/weather.s +++ b/asm/weather.s @@ -17,7 +17,7 @@ sub_80AAFA4: @ 80AAFA4 bne _080AB060 movs r0, 0x90 lsls r0, 5 - bl AllocObjectPalette + bl AllocSpritePalette adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 @@ -33,7 +33,7 @@ sub_80AAFA4: @ 80AAFA4 adds r0, r4, r1 strb r5, [r0] ldr r0, =0x00001201 - bl AllocObjectPalette + bl AllocSpritePalette ldr r2, =0x000006d4 adds r1, r4, r2 strb r0, [r1] @@ -2092,7 +2092,7 @@ _080AC090: movs r1, 0x7F ands r0, r1 strh r0, [r2] - ldr r1, =gUnknown_08329F40 + ldr r1, =gSineTable movs r3, 0 ldrsh r0, [r2, r3] lsls r0, 1 @@ -2432,7 +2432,7 @@ _080AC360: _080AC366: strb r0, [r1] adds r0, r2, 0 - bl audio_play + bl PlaySE _080AC36E: pop {r0} bx r0 @@ -2442,7 +2442,7 @@ _080AC36E: thumb_func_start play_some_sound play_some_sound: @ 80AC378 push {lr} - bl sub_80A390C + bl IsSpecialSEPlaying lsls r0, 24 cmp r0, 0 beq _080AC3B6 @@ -2457,16 +2457,16 @@ play_some_sound: @ 80AC378 cmp r0, 0 bne _080AC3B0 movs r0, 0x56 - bl audio_play + bl PlaySE b _080AC3B6 .pool _080AC3A8: movs r0, 0x54 - bl audio_play + bl PlaySE b _080AC3B6 _080AC3B0: movs r0, 0x52 - bl audio_play + bl PlaySE _080AC3B6: pop {r0} bx r0 @@ -2726,7 +2726,7 @@ sub_80AC594: @ 80AC594 cmp r0, 0x1 beq _080AC650 ldr r0, =gUnknown_0854FB5C - bl LoadObjectPic + bl LoadSpriteSheet ldr r0, =gUnknown_0854C290 bl sub_80ABF4C movs r5, 0 @@ -2735,7 +2735,7 @@ _080AC5B2: movs r1, 0 movs r2, 0 movs r3, 0xFF - bl AddObjectToFront + bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 @@ -2750,7 +2750,7 @@ _080AC5B2: lsls r4, r3, 4 adds r4, r3 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 str r4, [r1] ldr r0, =gUnknown_0854FB50 @@ -2824,7 +2824,7 @@ _080AC678: ldr r0, [r0] cmp r0, 0 beq _080AC686 - bl RemoveObjectAndFreeTiles + bl DestroySprite _080AC686: adds r0, r4, 0x1 lsls r0, 16 @@ -2833,7 +2833,7 @@ _080AC686: bls _080AC678 movs r0, 0x90 lsls r0, 5 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag ldr r0, =gUnknown_0854C14C ldr r0, [r0] ldr r1, =0x000006de @@ -3392,7 +3392,7 @@ _080ACAC4: strh r0, [r7, 0x34] adds r0, r7, 0 movs r1, 0 - bl StartObjectImageAnim + bl StartSpriteAnim mov r3, r8 strh r3, [r7, 0x36] adds r2, r7, 0 @@ -3495,15 +3495,15 @@ _080ACC0E: lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 - bl StartObjectImageAnim + bl StartSpriteAnim movs r0, 0x1 strh r0, [r5, 0x36] - ldr r1, =gUnknown_02021BBC + ldr r1, =gSpriteCoordOffsetX ldrh r0, [r5, 0x20] ldrh r1, [r1] subs r0, r1 strh r0, [r5, 0x20] - ldr r1, =gUnknown_02021BBE + ldr r1, =gSpriteCoordOffsetY ldrh r0, [r5, 0x22] ldrh r1, [r1] subs r0, r1 @@ -3653,7 +3653,7 @@ _080ACD5C: sub_80ACD68: @ 80ACD68 push {lr} ldr r0, =gUnknown_0854FC54 - bl LoadObjectPic + bl LoadSpriteSheet pop {r0} bx r0 .pool @@ -3685,12 +3685,12 @@ _080ACD92: movs r3, 0x2 ldrsh r2, [r2, r3] movs r3, 0x4E - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x40 beq _080ACE40 - ldr r3, =gUnknown_02020630 + ldr r3, =gSprites lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 @@ -3715,7 +3715,7 @@ _080ACD92: _080ACDDE: adds r0, r4, r5 lsls r0, 2 - ldr r6, =gUnknown_02020630 + ldr r6, =gSprites adds r0, r6 ldr r3, =0xfffffda8 ldrh r6, [r0, 0x30] @@ -3895,7 +3895,7 @@ _080ACF50: ldr r0, [r0] cmp r0, 0 beq _080ACF5E - bl RemoveObjectAndFreeTiles + bl DestroySprite _080ACF5E: adds r0, r4, 0x1 lsls r0, 16 @@ -3910,7 +3910,7 @@ _080ACF6A: movs r1, 0 strb r1, [r0] ldr r0, =0x00001206 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag pop {r4-r7} pop {r0} bx r0 @@ -4146,12 +4146,12 @@ snowflake_add: @ 80AD164 movs r1, 0 movs r2, 0 movs r3, 0x4E - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080AD1C8 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r4, r1, 4 adds r4, r1 lsls r4, 2 @@ -4210,7 +4210,7 @@ _080AD1EC: adds r1, 0x60 adds r1, r0 ldr r0, [r1] - bl RemoveObjectAndFreeTiles + bl DestroySprite movs r0, 0x1 _080AD200: pop {r1} @@ -4238,7 +4238,7 @@ sub_80AD204: @ 80AD204 adds r4, r0 lsls r4, 16 lsrs r4, 16 - ldr r1, =gUnknown_02021BBE + ldr r1, =gSpriteCoordOffsetY adds r0, r5, 0 adds r0, 0x29 ldrb r0, [r0] @@ -4252,7 +4252,7 @@ sub_80AD204: @ 80AD204 subs r1, r0 movs r7, 0 strh r1, [r5, 0x22] - ldr r1, =gUnknown_02021BBC + ldr r1, =gSpriteCoordOffsetX adds r0, r5, 0 adds r0, 0x28 ldrb r0, [r0] @@ -4281,7 +4281,7 @@ sub_80AD204: @ 80AD204 movs r1, 0x1 bics r1, r6 adds r0, r5, 0 - bl StartObjectImageAnim + bl StartSpriteAnim strh r7, [r5, 0x34] movs r0, 0x1 cmp r4, 0 @@ -4320,7 +4320,7 @@ sub_80AD2B0: @ 80AD2B0 strb r0, [r2] ldr r0, =sub_80AD30C str r0, [r3, 0x1C] - ldr r1, =gUnknown_02021BBE + ldr r1, =gSpriteCoordOffsetY adds r0, r3, 0 adds r0, 0x29 ldrb r0, [r0] @@ -4361,7 +4361,7 @@ sub_80AD30C: @ 80AD30C movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x34] - ldr r1, =gUnknown_08329F40 + ldr r1, =gSineTable movs r3, 0x34 ldrsh r0, [r4, r3] lsls r0, 1 @@ -4380,7 +4380,7 @@ _080AD33E: ldrsb r5, [r0, r5] ldrh r0, [r4, 0x20] adds r0, r5 - ldr r1, =gUnknown_02021BBC + ldr r1, =gSpriteCoordOffsetX ldrh r1, [r1] adds r3, r1, r0 ldr r2, =0x000001ff @@ -4423,7 +4423,7 @@ _080AD39E: ldrsb r3, [r0, r3] ldrh r0, [r4, 0x22] adds r0, r3 - ldr r1, =gUnknown_02021BBE + ldr r1, =gSpriteCoordOffsetY ldrh r1, [r1] adds r2, r1, r0 movs r0, 0xFF @@ -5134,7 +5134,7 @@ sub_80AD9F8: @ 80AD9F8 ldrh r0, [r1] cmp r0, 0 bne _080ADA54 - bl mplay_has_finished_maybe + bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _080ADA58 @@ -5143,12 +5143,12 @@ sub_80AD9F8: @ 80AD9F8 cmp r4, 0 beq _080ADA38 movs r0, 0x57 - bl audio_play + bl PlaySE b _080ADA3E .pool _080ADA38: movs r0, 0x58 - bl audio_play + bl PlaySE _080ADA3E: ldr r0, =gUnknown_0854C14C ldr r0, [r0] @@ -5239,7 +5239,7 @@ sub_80ADAF0: @ 80ADAF0 push {r4-r6,lr} ldr r0, =gUnknown_0854C14C ldr r6, [r0] - ldr r0, =gUnknown_02021BBC + ldr r0, =gSpriteCoordOffsetX ldr r1, =0x000006f2 adds r2, r6, r1 ldrh r0, [r0] @@ -5326,7 +5326,7 @@ sub_80ADBB0: @ 80ADBB0 push {r4,lr} ldr r0, =gUnknown_0854C14C ldr r2, [r0] - ldr r0, =gUnknown_02021BBC + ldr r0, =gSpriteCoordOffsetX ldr r1, =0x000006f2 adds r3, r2, r1 ldrh r0, [r0] @@ -5402,7 +5402,7 @@ _080ADC44: sub_80ADC4C: @ 80ADC4C push {r4,lr} adds r3, r0, 0 - ldr r0, =gUnknown_02021BBE + ldr r0, =gSpriteCoordOffsetY ldrb r0, [r0] strh r0, [r3, 0x26] ldr r0, =gUnknown_0854C14C @@ -5458,14 +5458,14 @@ sub_80ADCAC: @ 80ADCAC str r0, [sp] str r1, [sp, 0x4] mov r0, sp - bl LoadObjectPic + bl LoadSpriteSheet movs r5, 0 _080ADCD0: ldr r0, =gUnknown_0854FD18 movs r1, 0 movs r2, 0 movs r3, 0xFF - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 @@ -5473,7 +5473,7 @@ _080ADCD0: lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 adds r0, r5, 0 movs r1, 0x5 @@ -5544,7 +5544,7 @@ _080ADD7E: ldr r0, [r0] cmp r0, 0 beq _080ADD8C - bl RemoveObjectAndFreeTiles + bl DestroySprite _080ADD8C: adds r0, r4, 0x1 lsls r0, 16 @@ -5552,7 +5552,7 @@ _080ADD8C: cmp r4, 0x13 bls _080ADD7E ldr r0, =0x00001201 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag ldr r0, =gUnknown_0854C14C ldr r0, [r0] ldr r1, =0x000006fb @@ -5637,7 +5637,7 @@ sub_80ADE48: @ 80ADE48 push {r4,r5,lr} ldr r2, =gUnknown_0854C14C ldr r1, [r2] - ldr r0, =gUnknown_02021BBC + ldr r0, =gSpriteCoordOffsetX ldrh r0, [r0] ldr r3, =0x000001ff ands r3, r0 @@ -5773,7 +5773,7 @@ _080ADF54: sub_80ADF5C: @ 80ADF5C push {lr} ldr r0, =gUnknown_0854FD38 - bl LoadObjectPic + bl LoadSpriteSheet pop {r0} bx r0 .pool @@ -5796,7 +5796,7 @@ _080ADF80: movs r1, 0 movs r2, 0 movs r3, 0x4E - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 @@ -5804,7 +5804,7 @@ _080ADF80: lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 movs r0, 0 strh r0, [r4, 0x30] @@ -5880,7 +5880,7 @@ _080AE02C: ldr r0, [r0] cmp r0, 0 beq _080AE03A - bl RemoveObjectAndFreeTiles + bl DestroySprite _080AE03A: adds r0, r4, 0x1 lsls r0, 16 @@ -5888,7 +5888,7 @@ _080AE03A: cmp r4, 0x13 bls _080AE02C ldr r0, =0x00001202 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag ldr r0, =gUnknown_0854C14C ldr r0, [r0] movs r1, 0xE0 @@ -5920,7 +5920,7 @@ sub_80AE068: @ 80AE068 adds r0, 0x1 strh r0, [r3, 0x2E] _080AE084: - ldr r1, =gUnknown_02021BBE + ldr r1, =gSpriteCoordOffsetY ldrh r0, [r3, 0x2E] ldrh r1, [r1] adds r0, r1 @@ -6187,7 +6187,7 @@ _080AE288: strh r0, [r1] strh r5, [r2] _080AE2A4: - ldr r0, =gUnknown_02021BBC + ldr r0, =gSpriteCoordOffsetX movs r2, 0xE4 lsls r2, 3 adds r1, r3, r2 @@ -6199,7 +6199,7 @@ _080AE2A4: subs r2, 0x8 adds r1, r3, r2 strh r0, [r1] - ldr r1, =gUnknown_02021BBE + ldr r1, =gSpriteCoordOffsetY adds r2, 0xA adds r0, r3, r2 ldrh r0, [r0] @@ -6231,7 +6231,7 @@ sub_80AE2F0: @ 80AE2F0 str r0, [sp] str r1, [sp, 0x4] mov r0, sp - bl LoadObjectPic + bl LoadSpriteSheet movs r6, 0 _080AE314: adds r0, r6, 0 @@ -6243,7 +6243,7 @@ _080AE314: ldr r0, =gUnknown_0854FD8C movs r1, 0 movs r3, 0xFF - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 @@ -6251,7 +6251,7 @@ _080AE314: lsls r4, r0, 4 adds r4, r0 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 adds r0, r6, 0 movs r1, 0x5 @@ -6317,7 +6317,7 @@ _080AE3C0: ldr r0, [r0] cmp r0, 0 beq _080AE3CE - bl RemoveObjectAndFreeTiles + bl DestroySprite _080AE3CE: adds r0, r4, 0x1 lsls r0, 16 @@ -6325,7 +6325,7 @@ _080AE3CE: cmp r4, 0x13 bls _080AE3C0 ldr r0, =0x00001203 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag ldr r0, =gUnknown_0854C14C ldr r0, [r0] ldr r1, =0x00000724 @@ -6609,7 +6609,7 @@ sub_80AE624: @ 80AE624 ldr r2, [r0] ldr r0, =0x00000704 adds r4, r2, r0 - ldr r6, =gUnknown_08329F40 + ldr r6, =gSineTable ldr r1, =0x00000712 adds r5, r2, r1 ldrh r0, [r5] @@ -6632,7 +6632,7 @@ sub_80AE624: @ 80AE624 ldr r0, [r3] subs r0, r1 str r0, [r3] - ldr r1, =gUnknown_02021BBC + ldr r1, =gSpriteCoordOffsetX ldr r0, [r4] lsrs r0, 8 ldrh r1, [r1] @@ -6642,7 +6642,7 @@ sub_80AE624: @ 80AE624 ldr r4, =0x0000070e adds r1, r2, r4 strh r0, [r1] - ldr r1, =gUnknown_02021BBE + ldr r1, =gSpriteCoordOffsetY ldr r0, [r3] lsrs r0, 8 ldrh r1, [r1] @@ -6677,7 +6677,7 @@ _080AE6BC: ldr r0, [r0] cmp r0, 0 beq _080AE6CA - bl RemoveObjectAndFreeTiles + bl DestroySprite _080AE6CA: adds r0, r4, 0x1 lsls r0, 16 @@ -6691,7 +6691,7 @@ _080AE6CA: movs r1, 0 strb r1, [r0] ldr r0, =0x00001204 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag _080AE6E6: ldr r0, =gUnknown_0854C14C ldr r1, [r0] @@ -6710,7 +6710,7 @@ _080AE6FC: ldr r0, [r0] cmp r0, 0 beq _080AE70A - bl RemoveObjectAndFreeTiles + bl DestroySprite _080AE70A: adds r0, r4, 0x1 lsls r0, 16 @@ -6742,7 +6742,7 @@ sub_80AE738: @ 80AE738 cmp r0, 0 bne _080AE7E6 ldr r0, =gUnknown_0854FDDC - bl LoadObjectPic + bl LoadSpriteSheet ldr r0, =gUnknown_0854C2B0 bl sub_80ABF4C movs r7, 0 @@ -6756,7 +6756,7 @@ _080AE758: ldr r0, =gUnknown_0854FDC4 movs r1, 0 movs r3, 0x1 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 @@ -6771,7 +6771,7 @@ _080AE758: lsls r4, r1, 4 adds r4, r1 lsls r4, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r4, r0 str r4, [r5] adds r0, r7, 0 @@ -6843,7 +6843,7 @@ _080AE818: ldr r0, =gUnknown_0854FDC4 movs r2, 0xD0 movs r3, 0x1 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 @@ -6858,7 +6858,7 @@ _080AE818: lsls r2, r1, 4 adds r2, r1 lsls r2, 2 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites adds r2, r0 str r2, [r4] ldrb r1, [r2, 0x3] @@ -6886,12 +6886,12 @@ _080AE818: strh r0, [r1, 0x34] ldr r0, [r4] movs r1, 0x1 - bl StartObjectImageAnim + bl StartSpriteAnim ldr r0, [r4] movs r1, 0 movs r2, 0x2 movs r3, 0 - bl CalcVecFromObjectCenterToObjectUpperLeft + bl CalcCenterToCornerVec ldr r1, [r4] ldr r0, =sub_80AE958 str r0, [r1, 0x1C] @@ -7016,7 +7016,7 @@ sub_80AE97C: @ 80AE97C _080AE99A: movs r0, 0x2E ldrsh r4, [r5, r0] - ldr r3, =gUnknown_08329F40 + ldr r3, =gSineTable movs r2, 0x30 ldrsh r1, [r5, r2] lsls r0, r1, 1 @@ -7110,7 +7110,7 @@ sub_80AEA34: @ 80AEA34 cmp r5, 0 bne _080AEA6C ldr r0, =gUnknown_0854FDF8 - bl LoadObjectPic + bl LoadSpriteSheet movs r2, 0xE5 lsls r2, 3 adds r0, r4, r2 @@ -7235,7 +7235,7 @@ sub_80AEB48: @ 80AEB48 adds r3, r0, r1 adds r1, 0x2 adds r0, r1 - ldr r1, =gUnknown_02021BBE + ldr r1, =gSpriteCoordOffsetY ldrh r2, [r0] ldrh r0, [r1] subs r2, r0 @@ -7245,12 +7245,12 @@ sub_80AEB48: @ 80AEB48 lsls r2, 16 asrs r2, 16 movs r3, 0 - bl AddObjectToBack + bl CreateSpriteAtEnd lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _080AEBB0 - ldr r0, =gUnknown_02020630 + ldr r0, =gSprites lsls r1, r2, 4 adds r1, r2 lsls r1, 2 @@ -7297,7 +7297,7 @@ sub_80AEBD0: @ 80AEBD0 cmp r0, 0 beq _080AEC1A movs r4, 0 - ldr r5, =gUnknown_02020630 + ldr r5, =gSprites _080AEBE4: lsls r0, r4, 4 adds r0, r4 @@ -7310,7 +7310,7 @@ _080AEBE4: cmp r1, r0 bne _080AEBFE adds r0, r2, r5 - bl RemoveObjectAndFreeTiles + bl DestroySprite _080AEBFE: adds r0, r4, 0x1 lsls r0, 16 @@ -7318,7 +7318,7 @@ _080AEBFE: cmp r4, 0x3F bls _080AEBE4 ldr r0, =0x00001205 - bl FreeObjectTilesByTag + bl FreeSpriteTilesByTag ldr r0, =gUnknown_0854C14C ldr r0, [r0] ldr r1, =0x0000072c @@ -7379,7 +7379,7 @@ _080AEC74: cmp r0, 0x77 ble _080AEC8E adds r0, r1, 0 - bl RemoveObjectAndFreeTiles + bl DestroySprite _080AEC8E: pop {r0} bx r0 @@ -7810,7 +7810,7 @@ sub_80AEFDC: @ 80AEFDC bne _080AEFF6 _080AEFF0: movs r0, 0x28 - bl sav12_xor_increment + bl IncrementGameStat _080AEFF6: pop {r0} bx r0 diff --git a/asm/wild_encounter.s b/asm/wild_encounter.s index 22c8327554..c2e57a3f3f 100644 --- a/asm/wild_encounter.s +++ b/asm/wild_encounter.s @@ -783,7 +783,7 @@ sub_80B4E68: @ 80B4E68 lsrs r6, r0, 16 lsls r1, 24 lsrs r7, r1, 24 - bl zero_enemy_party_data + bl ZeroEnemyPartyMons movs r2, 0x1 ldr r1, =gBaseStats lsls r0, r6, 3 @@ -1628,12 +1628,12 @@ rock_smash_wild_pokemon_encounter: @ 80B550C bne _080B5568 bl sub_80B0698 _080B5554: - ldr r0, =gUnknown_020375F0 + ldr r0, =gScriptResult strh r4, [r0] b _080B556E .pool _080B5568: - ldr r1, =gUnknown_020375F0 + ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] _080B556E: @@ -1882,7 +1882,7 @@ _080B5764: lsrs r4, r0, 16 _080B5784: movs r0, 0xC - bl sav12_xor_increment + bl IncrementGameStat adds r0, r4, 0 bl sub_80EDA3C bl sub_80B0698 diff --git a/asm/window.s b/asm/window.s deleted file mode 100644 index 6bb76d594f..0000000000 --- a/asm/window.s +++ /dev/null @@ -1,1221 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start ScrollWindow -@ void ScrollWindow(u8 windowId, u8 direction, u8 distance, u8 fillValue) -ScrollWindow: @ 8003C94 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp] - lsls r3, 24 - lsrs r3, 24 - ldr r2, =gWindows - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r4, r1, r2 - adds r2, 0x8 - adds r1, r2 - ldr r5, [r1] - lsls r7, r3, 24 - lsls r0, r3, 16 - orrs r7, r0 - lsls r0, r3, 8 - orrs r7, r0 - orrs r7, r3 - ldr r1, [r4] - ldr r2, [r4, 0x4] - ldrb r3, [r4, 0x4] - lsrs r0, r1, 24 - muls r0, r3 - lsls r6, r0, 5 - lsrs r1, 24 - mov r12, r1 - mov r0, r8 - cmp r0, 0x1 - bne _08003CE8 - b _08003E9E -_08003CE8: - cmp r0, 0x1 - ble _08003CEE - b _08004046 -_08003CEE: - cmp r0, 0 - beq _08003CF4 - b _08004046 -_08003CF4: - movs r4, 0 - cmp r4, r6 - blt _08003CFC - b _08004046 -_08003CFC: - movs r1, 0x8 - negs r1, r1 - mov r9, r1 - movs r2, 0x7 - mov r8, r2 - mov r10, r5 -_08003D08: - ldr r3, [sp] - adds r0, r3, 0 - mov r1, r9 - ands r0, r1 - mov r1, r12 - muls r1, r0 - adds r0, r3, 0 - mov r2, r8 - ands r0, r2 - orrs r1, r0 - lsls r1, 2 - adds r1, r4, r1 - cmp r1, r6 - bge _08003D34 - adds r0, r5, r1 - ldr r0, [r0] - mov r1, r10 - str r0, [r1] - b _08003D38 - .pool -_08003D34: - mov r2, r10 - str r7, [r2] -_08003D38: - adds r3, 0x1 - adds r2, r4, 0x4 - adds r0, r3, 0 - mov r1, r9 - ands r0, r1 - mov r1, r12 - muls r1, r0 - str r1, [sp, 0x4] - adds r0, r3, 0 - mov r1, r8 - ands r0, r1 - ldr r1, [sp, 0x4] - orrs r1, r0 - lsls r1, 2 - adds r1, r4, r1 - cmp r1, r6 - bge _08003D64 - adds r0, r5, r2 - adds r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _08003D68 -_08003D64: - adds r0, r5, r2 - str r7, [r0] -_08003D68: - adds r3, 0x1 - adds r2, r4, 0 - adds r2, 0x8 - adds r0, r3, 0 - mov r1, r9 - ands r0, r1 - mov r1, r12 - muls r1, r0 - str r1, [sp, 0x4] - adds r0, r3, 0 - mov r1, r8 - ands r0, r1 - ldr r1, [sp, 0x4] - orrs r1, r0 - lsls r1, 2 - adds r1, r4, r1 - cmp r1, r6 - bge _08003D96 - adds r0, r5, r2 - adds r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _08003D9A -_08003D96: - adds r0, r5, r2 - str r7, [r0] -_08003D9A: - adds r3, 0x1 - adds r2, r4, 0 - adds r2, 0xC - adds r0, r3, 0 - mov r1, r9 - ands r0, r1 - mov r1, r12 - muls r1, r0 - str r1, [sp, 0x4] - adds r0, r3, 0 - mov r1, r8 - ands r0, r1 - ldr r1, [sp, 0x4] - orrs r1, r0 - lsls r1, 2 - adds r1, r4, r1 - cmp r1, r6 - bge _08003DC8 - adds r0, r5, r2 - adds r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _08003DCC -_08003DC8: - adds r0, r5, r2 - str r7, [r0] -_08003DCC: - adds r3, 0x1 - adds r2, r4, 0 - adds r2, 0x10 - adds r0, r3, 0 - mov r1, r9 - ands r0, r1 - mov r1, r12 - muls r1, r0 - str r1, [sp, 0x4] - adds r0, r3, 0 - mov r1, r8 - ands r0, r1 - ldr r1, [sp, 0x4] - orrs r1, r0 - lsls r1, 2 - adds r1, r4, r1 - cmp r1, r6 - bge _08003DFA - adds r0, r5, r2 - adds r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _08003DFE -_08003DFA: - adds r0, r5, r2 - str r7, [r0] -_08003DFE: - adds r3, 0x1 - adds r2, r4, 0 - adds r2, 0x14 - adds r0, r3, 0 - mov r1, r9 - ands r0, r1 - mov r1, r12 - muls r1, r0 - str r1, [sp, 0x4] - adds r0, r3, 0 - mov r1, r8 - ands r0, r1 - ldr r1, [sp, 0x4] - orrs r1, r0 - lsls r1, 2 - adds r1, r4, r1 - cmp r1, r6 - bge _08003E2C - adds r0, r5, r2 - adds r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _08003E30 -_08003E2C: - adds r0, r5, r2 - str r7, [r0] -_08003E30: - adds r3, 0x1 - adds r2, r4, 0 - adds r2, 0x18 - adds r0, r3, 0 - mov r1, r9 - ands r0, r1 - mov r1, r12 - muls r1, r0 - str r1, [sp, 0x4] - adds r0, r3, 0 - mov r1, r8 - ands r0, r1 - ldr r1, [sp, 0x4] - orrs r1, r0 - lsls r1, 2 - adds r1, r4, r1 - cmp r1, r6 - bge _08003E5E - adds r0, r5, r2 - adds r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _08003E62 -_08003E5E: - adds r0, r5, r2 - str r7, [r0] -_08003E62: - adds r3, 0x1 - adds r2, r4, 0 - adds r2, 0x1C - adds r0, r3, 0 - mov r1, r9 - ands r0, r1 - mov r1, r12 - muls r1, r0 - adds r0, r1, 0 - mov r1, r8 - ands r3, r1 - orrs r0, r3 - lsls r0, 2 - adds r1, r4, r0 - cmp r1, r6 - bge _08003E8C - adds r0, r5, r2 - adds r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _08003E90 -_08003E8C: - adds r0, r5, r2 - str r7, [r0] -_08003E90: - movs r2, 0x20 - add r10, r2 - adds r4, 0x20 - cmp r4, r6 - bge _08003E9C - b _08003D08 -_08003E9C: - b _08004046 -_08003E9E: - subs r0, r6, 0x4 - adds r5, r0 - movs r4, 0 - cmp r4, r6 - blt _08003EAA - b _08004046 -_08003EAA: - movs r0, 0x8 - negs r0, r0 - mov r9, r0 - movs r1, 0x7 - mov r8, r1 - mov r10, r5 -_08003EB6: - ldr r3, [sp] - adds r0, r3, 0 - mov r2, r9 - ands r0, r2 - mov r1, r12 - muls r1, r0 - adds r0, r3, 0 - mov r2, r8 - ands r0, r2 - orrs r1, r0 - lsls r1, 2 - adds r1, r4, r1 - cmp r1, r6 - bge _08003EDC - subs r0, r5, r1 - ldr r0, [r0] - mov r1, r10 - str r0, [r1] - b _08003EE0 -_08003EDC: - mov r2, r10 - str r7, [r2] -_08003EE0: - adds r3, 0x1 - adds r2, r4, 0x4 - adds r0, r3, 0 - mov r1, r9 - ands r0, r1 - mov r1, r12 - muls r1, r0 - str r1, [sp, 0x4] - adds r0, r3, 0 - mov r1, r8 - ands r0, r1 - ldr r1, [sp, 0x4] - orrs r1, r0 - lsls r1, 2 - adds r1, r4, r1 - cmp r1, r6 - bge _08003F0C - subs r0, r5, r2 - subs r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _08003F10 -_08003F0C: - subs r0, r5, r2 - str r7, [r0] -_08003F10: - adds r3, 0x1 - adds r2, r4, 0 - adds r2, 0x8 - adds r0, r3, 0 - mov r1, r9 - ands r0, r1 - mov r1, r12 - muls r1, r0 - str r1, [sp, 0x4] - adds r0, r3, 0 - mov r1, r8 - ands r0, r1 - ldr r1, [sp, 0x4] - orrs r1, r0 - lsls r1, 2 - adds r1, r4, r1 - cmp r1, r6 - bge _08003F3E - subs r0, r5, r2 - subs r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _08003F42 -_08003F3E: - subs r0, r5, r2 - str r7, [r0] -_08003F42: - adds r3, 0x1 - adds r2, r4, 0 - adds r2, 0xC - adds r0, r3, 0 - mov r1, r9 - ands r0, r1 - mov r1, r12 - muls r1, r0 - str r1, [sp, 0x4] - adds r0, r3, 0 - mov r1, r8 - ands r0, r1 - ldr r1, [sp, 0x4] - orrs r1, r0 - lsls r1, 2 - adds r1, r4, r1 - cmp r1, r6 - bge _08003F70 - subs r0, r5, r2 - subs r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _08003F74 -_08003F70: - subs r0, r5, r2 - str r7, [r0] -_08003F74: - adds r3, 0x1 - adds r2, r4, 0 - adds r2, 0x10 - adds r0, r3, 0 - mov r1, r9 - ands r0, r1 - mov r1, r12 - muls r1, r0 - str r1, [sp, 0x4] - adds r0, r3, 0 - mov r1, r8 - ands r0, r1 - ldr r1, [sp, 0x4] - orrs r1, r0 - lsls r1, 2 - adds r1, r4, r1 - cmp r1, r6 - bge _08003FA2 - subs r0, r5, r2 - subs r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _08003FA6 -_08003FA2: - subs r0, r5, r2 - str r7, [r0] -_08003FA6: - adds r3, 0x1 - adds r2, r4, 0 - adds r2, 0x14 - adds r0, r3, 0 - mov r1, r9 - ands r0, r1 - mov r1, r12 - muls r1, r0 - str r1, [sp, 0x4] - adds r0, r3, 0 - mov r1, r8 - ands r0, r1 - ldr r1, [sp, 0x4] - orrs r1, r0 - lsls r1, 2 - adds r1, r4, r1 - cmp r1, r6 - bge _08003FD4 - subs r0, r5, r2 - subs r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _08003FD8 -_08003FD4: - subs r0, r5, r2 - str r7, [r0] -_08003FD8: - adds r3, 0x1 - adds r2, r4, 0 - adds r2, 0x18 - adds r0, r3, 0 - mov r1, r9 - ands r0, r1 - mov r1, r12 - muls r1, r0 - str r1, [sp, 0x4] - adds r0, r3, 0 - mov r1, r8 - ands r0, r1 - ldr r1, [sp, 0x4] - orrs r1, r0 - lsls r1, 2 - adds r1, r4, r1 - cmp r1, r6 - bge _08004006 - subs r0, r5, r2 - subs r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _0800400A -_08004006: - subs r0, r5, r2 - str r7, [r0] -_0800400A: - adds r3, 0x1 - adds r2, r4, 0 - adds r2, 0x1C - adds r0, r3, 0 - mov r1, r9 - ands r0, r1 - mov r1, r12 - muls r1, r0 - adds r0, r1, 0 - mov r1, r8 - ands r3, r1 - orrs r0, r3 - lsls r0, 2 - adds r1, r4, r0 - cmp r1, r6 - bge _08004034 - subs r0, r5, r2 - subs r1, r5, r1 - ldr r1, [r1] - str r1, [r0] - b _08004038 -_08004034: - subs r0, r5, r2 - str r7, [r0] -_08004038: - movs r2, 0x20 - negs r2, r2 - add r10, r2 - adds r4, 0x20 - cmp r4, r6 - bge _08004046 - b _08003EB6 -_08004046: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ScrollWindow - - thumb_func_start CallWindowFunction -@ void CallWindowFunction(u8 windowId, void ( *func)(u8, u8, u8, u8, u8, u8)) -CallWindowFunction: @ 8004058 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x8 - mov r8, r1 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gWindows - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldr r5, [r1] - ldr r6, [r1, 0x4] - ldrb r0, [r1] - lsrs r1, r5, 8 - lsls r1, 24 - lsrs r1, 24 - lsrs r2, r5, 16 - lsls r2, 24 - lsrs r2, 24 - lsrs r3, r5, 24 - lsls r4, r6, 24 - lsrs r4, 24 - str r4, [sp] - lsrs r4, r6, 8 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x4] - bl _call_via_r8 - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end CallWindowFunction - - thumb_func_start SetWindowAttribute -@ bool8 SetWindowAttribute(u8 windowId, u8 attributeId, u32 value) -SetWindowAttribute: @ 80040A8 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r0, r1, 24 - cmp r0, 0x7 - bhi _08004142 - lsls r0, 2 - ldr r1, =_080040C4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080040C4: - .4byte _08004142 - .4byte _080040E4 - .4byte _080040F8 - .4byte _08004142 - .4byte _08004142 - .4byte _0800410C - .4byte _08004120 - .4byte _08004134 -_080040E4: - ldr r1, =gWindows - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - strb r2, [r0, 0x1] - movs r0, 0 - b _08004144 - .pool -_080040F8: - ldr r1, =gWindows - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - strb r2, [r0, 0x2] - movs r0, 0 - b _08004144 - .pool -_0800410C: - ldr r1, =gWindows - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - strb r2, [r0, 0x5] - movs r0, 0 - b _08004144 - .pool -_08004120: - ldr r1, =gWindows - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - strh r2, [r0, 0x6] - movs r0, 0 - b _08004144 - .pool -_08004134: - ldr r1, =gWindows - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r1, 0x8 - adds r0, r1 - str r2, [r0] -_08004142: - movs r0, 0x1 -_08004144: - pop {r1} - bx r1 - .pool - thumb_func_end SetWindowAttribute - - thumb_func_start GetWindowAttribute -@ u32 GetWindowAttribute(u8 windowId, u8 attributeId) -GetWindowAttribute: @ 800414C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r0, r1, 24 - cmp r0, 0x7 - bhi _08004228 - lsls r0, 2 - ldr r1, =_08004168 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08004168: - .4byte _08004188 - .4byte _0800419C - .4byte _080041B0 - .4byte _080041C4 - .4byte _080041D8 - .4byte _080041EC - .4byte _08004200 - .4byte _08004214 -_08004188: - ldr r0, =gWindows - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - b _0800422A - .pool -_0800419C: - ldr r0, =gWindows - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - b _0800422A - .pool -_080041B0: - ldr r0, =gWindows - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x2] - b _0800422A - .pool -_080041C4: - ldr r0, =gWindows - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x3] - b _0800422A - .pool -_080041D8: - ldr r0, =gWindows - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x4] - b _0800422A - .pool -_080041EC: - ldr r0, =gWindows - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x5] - b _0800422A - .pool -_08004200: - ldr r0, =gWindows - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x6] - b _0800422A - .pool -_08004214: - ldr r0, =gWindows - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r0, 0x8 - adds r1, r0 - ldr r0, [r1] - b _0800422A - .pool -_08004228: - movs r0, 0 -_0800422A: - pop {r1} - bx r1 - thumb_func_end GetWindowAttribute - - thumb_func_start GetNumActiveWindowsOnBg -@ u8 GetNumActiveWindowsOnBg(u8 bgId) -GetNumActiveWindowsOnBg: @ 8004230 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r3, 0 - ldr r2, =gWindows - movs r1, 0x1F -_0800423C: - ldrb r0, [r2] - cmp r0, r4 - bne _08004248 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 -_08004248: - adds r2, 0xC - subs r1, 0x1 - cmp r1, 0 - bge _0800423C - adds r0, r3, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end GetNumActiveWindowsOnBg - - thumb_func_start nullsub_9 -nullsub_9: @ 800425C - bx lr - thumb_func_end nullsub_9 - - thumb_func_start AddWindow8Bit -@ u16 AddWindow8Bit(struct WindowTemplate *template) -AddWindow8Bit: @ 8004260 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r9, r0 - movs r6, 0 - ldr r1, =gWindows - ldrb r0, [r1] - cmp r0, 0xFF - beq _0800428E -_08004276: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x1F - bhi _0800428E - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08004276 -_0800428E: - cmp r6, 0x20 - beq _08004322 - mov r0, r9 - ldrb r7, [r0] - ldr r1, =gUnknown_03002F70 - mov r10, r1 - lsls r2, r7, 2 - mov r8, r2 - mov r0, r8 - add r0, r10 - ldr r0, [r0] - cmp r0, 0 - bne _080042EA - adds r0, r7, 0 - movs r1, 0x8 - bl GetBgAttribute - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, =0x0000ffff - cmp r5, r0 - beq _080042EA - adds r0, r5, 0 - bl Alloc - adds r4, r0, 0 - cmp r4, 0 - beq _08004322 - movs r1, 0 - mov r12, r10 - mov r3, r8 - cmp r1, r5 - bge _080042DC - movs r2, 0 -_080042D2: - adds r0, r4, r1 - strb r2, [r0] - adds r1, 0x1 - cmp r1, r5 - blt _080042D2 -_080042DC: - mov r1, r12 - adds r0, r3, r1 - str r4, [r0] - adds r0, r7, 0 - adds r1, r4, 0 - bl SetBgTilemapBuffer -_080042EA: - mov r2, r9 - ldrb r1, [r2, 0x3] - ldrb r0, [r2, 0x4] - muls r0, r1 - lsls r0, 22 - lsrs r0, 16 - bl Alloc - adds r4, r0, 0 - cmp r4, 0 - bne _08004338 - adds r0, r7, 0 - bl GetNumActiveWindowsOnBg8Bit - lsls r0, 24 - cmp r0, 0 - bne _08004322 - ldr r0, =gUnknown_03002F70 - lsls r1, r7, 2 - adds r5, r1, r0 - ldr r1, [r5] - ldr r0, =nullsub_9 - cmp r1, r0 - beq _08004322 - adds r0, r1, 0 - bl Free - str r4, [r5] -_08004322: - movs r0, 0xFF - b _08004356 - .pool -_08004338: - ldr r1, =gWindows - lsls r2, r6, 1 - adds r2, r6 - lsls r2, 2 - adds r0, r1, 0 - adds r0, 0x8 - adds r0, r2, r0 - str r4, [r0] - adds r2, r1 - mov r3, r9 - ldr r0, [r3] - ldr r1, [r3, 0x4] - str r0, [r2] - str r1, [r2, 0x4] - adds r0, r6, 0 -_08004356: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end AddWindow8Bit - - thumb_func_start FillWindowPixelBuffer8Bit -@ void FillWindowPixelBuffer8Bit(u8 windowId, u8 fillValue) -FillWindowPixelBuffer8Bit: @ 8004368 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r6, =gWindows - lsls r1, r0, 1 - adds r1, r0 - lsls r4, r1, 2 - adds r0, r4, r6 - ldrb r1, [r0, 0x3] - ldrb r0, [r0, 0x4] - muls r0, r1 - lsls r0, 22 - lsrs r3, r0, 16 - movs r2, 0 - cmp r2, r3 - bge _0800439E - adds r0, r6, 0 - adds r0, 0x8 - adds r1, r4, r0 -_08004392: - ldr r0, [r1] - adds r0, r2 - strb r5, [r0] - adds r2, 0x1 - cmp r2, r3 - blt _08004392 -_0800439E: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end FillWindowPixelBuffer8Bit - - thumb_func_start FillWindowPixelRect8Bit -@ void FillWindowPixelRect8Bit(u8 windowId, u8 fillValue, u16 x, u16 y, u16 width, u16 height) -FillWindowPixelRect8Bit: @ 80043A8 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x10 - mov r9, r3 - ldr r3, [sp, 0x28] - ldr r4, [sp, 0x2C] - mov r8, r4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 16 - lsrs r2, 16 - mov r4, r9 - lsls r4, 16 - lsrs r4, 16 - mov r9, r4 - lsls r3, 16 - lsrs r3, 16 - mov r4, r8 - lsls r4, 16 - lsrs r4, 16 - mov r8, r4 - ldr r5, =gWindows - lsls r4, r0, 1 - adds r4, r0 - lsls r4, 2 - adds r0, r5, 0 - adds r0, 0x8 - adds r0, r4, r0 - ldr r0, [r0] - str r0, [sp, 0x8] - adds r4, r5 - ldrb r0, [r4, 0x3] - lsls r0, 3 - ldr r6, =0xffff0000 - ldr r5, [sp, 0xC] - ands r5, r6 - orrs r5, r0 - str r5, [sp, 0xC] - ldrb r4, [r4, 0x4] - lsls r4, 19 - ldr r0, =0x0000ffff - ands r0, r5 - orrs r0, r4 - str r0, [sp, 0xC] - mov r0, r8 - str r0, [sp] - str r1, [sp, 0x4] - add r0, sp, 0x8 - adds r1, r2, 0 - mov r2, r9 - bl FillBitmapRect8Bit - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end FillWindowPixelRect8Bit - - thumb_func_start BlitBitmapRectToWindow4BitTo8Bit -@ void BlitBitmapRectToWindow4BitTo8Bit(u8 rbox_id, u8 *pixels, u16 srcX, u16 srcY, u16 srcWidth, int srcHeight, u16 destX, u16 destY, u16 rectWidth, u16 rectHeight, u8 paletteOffset) -BlitBitmapRectToWindow4BitTo8Bit: @ 8004434 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - ldr r4, [sp, 0x4C] - ldr r5, [sp, 0x50] - ldr r6, [sp, 0x54] - mov r8, r6 - ldr r7, [sp, 0x58] - mov r9, r7 - ldr r6, [sp, 0x5C] - mov r10, r6 - ldr r7, [sp, 0x60] - mov r12, r7 - ldr r6, [sp, 0x64] - lsls r0, 24 - lsrs r0, 24 - lsls r2, 16 - lsrs r2, 16 - lsls r3, 16 - lsrs r3, 16 - lsls r4, 16 - mov r7, r8 - lsls r7, 16 - lsrs r7, 16 - mov r8, r7 - mov r7, r9 - lsls r7, 16 - lsrs r7, 16 - mov r9, r7 - mov r7, r10 - lsls r7, 16 - lsrs r7, 16 - mov r10, r7 - mov r7, r12 - lsls r7, 16 - lsrs r7, 16 - mov r12, r7 - lsls r6, 24 - lsrs r6, 24 - str r6, [sp, 0x28] - str r1, [sp, 0x18] - lsls r5, 16 - ldr r6, =0x0000ffff - lsrs r4, 16 - orrs r4, r5 - str r4, [sp, 0x1C] - ldr r1, =gWindows - lsls r5, r0, 1 - adds r5, r0 - lsls r5, 2 - adds r0, r1, 0 - adds r0, 0x8 - adds r0, r5, r0 - ldr r0, [r0] - str r0, [sp, 0x20] - adds r5, r1 - ldrb r0, [r5, 0x3] - lsls r0, 3 - add r1, sp, 0x20 - ldr r4, [r1, 0x4] - ldr r7, =0xffff0000 - ands r4, r7 - orrs r4, r0 - str r4, [r1, 0x4] - ldrb r0, [r5, 0x4] - lsls r0, 19 - ands r6, r4 - orrs r6, r0 - str r6, [r1, 0x4] - mov r0, r8 - str r0, [sp] - mov r6, r9 - str r6, [sp, 0x4] - mov r7, r10 - str r7, [sp, 0x8] - mov r0, r12 - str r0, [sp, 0xC] - movs r0, 0 - str r0, [sp, 0x10] - ldr r6, [sp, 0x28] - str r6, [sp, 0x14] - add r0, sp, 0x18 - bl BlitBitmapRect4BitTo8Bit - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end BlitBitmapRectToWindow4BitTo8Bit - - thumb_func_start CopyWindowToVram8Bit -@ void CopyWindowToVram8Bit(u8 windowId, u8 mode) -CopyWindowToVram8Bit: @ 8004500 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r2, r1, 24 - adds r5, r2, 0 - ldr r6, =gUnknown_02020184 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - ldr r0, =gWindows - adds r3, r1, r0 - str r3, [r6] - ldr r4, =gUnknown_02020188 - ldrb r1, [r3, 0x3] - ldrb r0, [r3, 0x4] - muls r0, r1 - lsls r0, 6 - strh r0, [r4] - cmp r2, 0x2 - beq _0800454E - cmp r2, 0x2 - bgt _08004540 - cmp r2, 0x1 - beq _08004546 - b _08004570 - .pool -_08004540: - cmp r5, 0x3 - beq _0800455C - b _08004570 -_08004546: - ldrb r0, [r3] - bl CopyBgTilemapBufferToVram - b _08004570 -_0800454E: - ldrb r0, [r3] - ldr r1, [r3, 0x8] - ldrh r2, [r4] - ldrh r3, [r3, 0x6] - bl LoadBgTiles - b _08004570 -_0800455C: - ldrb r0, [r3] - ldr r1, [r3, 0x8] - ldrh r2, [r4] - ldrh r3, [r3, 0x6] - bl LoadBgTiles - ldr r0, [r6] - ldrb r0, [r0] - bl CopyBgTilemapBufferToVram -_08004570: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end CopyWindowToVram8Bit - - thumb_func_start GetNumActiveWindowsOnBg8Bit -@ int GetNumActiveWindowsOnBg8Bit(int bg_id) -GetNumActiveWindowsOnBg8Bit: @ 8004578 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r3, 0 - ldr r2, =gWindows - movs r1, 0x1F -_08004584: - ldrb r0, [r2] - cmp r0, r4 - bne _08004590 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 -_08004590: - adds r2, 0xC - subs r1, 0x1 - cmp r1, 0 - bge _08004584 - adds r0, r3, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end GetNumActiveWindowsOnBg8Bit - - .align 2, 0 @ Don't pad with nop. diff --git a/common_syms/rtc.txt b/common_syms/rtc.txt new file mode 100644 index 0000000000..fa00a34d51 --- /dev/null +++ b/common_syms/rtc.txt @@ -0,0 +1 @@ +gLocalTime diff --git a/common_syms/save.txt b/common_syms/save.txt new file mode 100644 index 0000000000..92d31eb149 --- /dev/null +++ b/common_syms/save.txt @@ -0,0 +1,10 @@ +gLastWrittenSector +gLastSaveCounter +gLastKnownGoodSector +gDamagedSaveSectors +gSaveCounter +gFastSaveSection +gUnknown_03006208 +gSaveUnusedVar +gSaveFileStatus +gGameContinueCallback diff --git a/common_syms/sound.txt b/common_syms/sound.txt new file mode 100644 index 0000000000..0f6f2fc758 --- /dev/null +++ b/common_syms/sound.txt @@ -0,0 +1 @@ +gDisableMusic diff --git a/common_syms/sprite.txt b/common_syms/sprite.txt new file mode 100644 index 0000000000..627c01c0d0 --- /dev/null +++ b/common_syms/sprite.txt @@ -0,0 +1,2 @@ +gOamMatrixAllocBitmap +gReservedSpritePaletteCount diff --git a/data/data2.s b/data/data2.s index ba871b516e..7a06ad76a4 100644 --- a/data/data2.s +++ b/data/data2.s @@ -1092,5498 +1092,3 @@ gUnknown_082FEC90:: @ 82FEC90 gUnknown_082FECA8:: @ 82FECA8 .incbin "baserom.gba", 0x2feca8, 0x18 -@ 82FECC0 - .include "data/rtc.inc" - -gUnknown_082FECFC:: @ 82FECFC - .incbin "baserom.gba", 0x2fecfc, 0x40 - -gUnknown_082FED3C:: @ 82FED3C - .incbin "baserom.gba", 0x2fed3c, 0x1b4 - -gUnknown_082FEEF0:: @ 82FEEF0 - .incbin "baserom.gba", 0x2feef0, 0x128 - -gUnknown_082FF018:: @ 82FF018 - .incbin "baserom.gba", 0x2ff018, 0x2 - -gUnknown_082FF01A:: @ 82FF01A - .incbin "baserom.gba", 0x2ff01a, 0xe - -gUnknown_082FF028:: @ 82FF028 - .incbin "baserom.gba", 0x2ff028, 0x10 - -gUnknown_082FF038:: @ 82FF038 - .incbin "baserom.gba", 0x2ff038, 0x10 - -gUnknown_082FF048:: @ 82FF048 - .incbin "baserom.gba", 0x2ff048, 0x28 - -gUnknown_082FF070:: @ 82FF070 - .incbin "baserom.gba", 0x2ff070, 0x10 - -gUnknown_082FF080:: @ 82FF080 - .incbin "baserom.gba", 0x2ff080, 0x8 - -gUnknown_082FF088:: @ 82FF088 - .incbin "baserom.gba", 0x2ff088, 0x18 - -gUnknown_082FF0A0:: @ 82FF0A0 - .incbin "baserom.gba", 0x2ff0a0, 0x20 - -gUnknown_082FF0C0:: @ 82FF0C0 - .incbin "baserom.gba", 0x2ff0c0, 0x20 - -gUnknown_082FF0E0:: @ 82FF0E0 - .incbin "baserom.gba", 0x2ff0e0, 0x3 - -gUnknown_082FF0E3:: @ 82FF0E3 - .incbin "baserom.gba", 0x2ff0e3, 0x5 - -gUnknown_082FF0E8:: @ 82FF0E8 - .incbin "baserom.gba", 0x2ff0e8, 0x8 - -gUnknown_082FF0F0:: @ 82FF0F0 - .incbin "baserom.gba", 0x2ff0f0, 0x4 - -gUnknown_082FF0F4:: @ 82FF0F4 - .incbin "baserom.gba", 0x2ff0f4, 0x20 - -gUnknown_082FF114:: @ 82FF114 - .incbin "baserom.gba", 0x2ff114, 0x4 - -gUnknown_082FF118:: @ 82FF118 - .incbin "baserom.gba", 0x2ff118, 0x10 - -gUnknown_082FF128:: @ 82FF128 - .incbin "baserom.gba", 0x2ff128, 0x50 - -gUnknown_082FF178:: @ 82FF178 - .incbin "baserom.gba", 0x2ff178, 0x50 - -gUnknown_082FF1C8:: @ 82FF1C8 - .incbin "baserom.gba", 0x2ff1c8, 0x450 - -gUnknown_082FF618:: @ 82FF618 - .incbin "baserom.gba", 0x2ff618, 0x7c - -gUnknown_082FF694:: @ 82FF694 - .incbin "baserom.gba", 0x2ff694, 0x2c - -gUnknown_082FF6C0:: @ 82FF6C0 - .incbin "baserom.gba", 0x2ff6c0, 0x4c - -gUnknown_082FF70C:: @ 82FF70C - .incbin "baserom.gba", 0x2ff70c, 0x162c - -gUnknown_08300D38:: @ 8300D38 - .incbin "baserom.gba", 0x300d38, 0x6e0 - -@ 8301418 - .include "data/graphics/pokemon/mon_still_front_pic_table.inc" - -gUnknown_083021D8:: @ 83021D8 - .incbin "baserom.gba", 0x3021d8, 0x6e0 - -@ 83028B8 - .include "data/graphics/pokemon/mon_back_pic_table.inc" - -@ 8303678 - .include "data/graphics/pokemon/mon_palette_table.inc" - -@ 8304438 - .include "data/graphics/pokemon/mon_shiny_palette_table.inc" - -@ 83051F8 - .incbin "baserom.gba", 0x3051f8, 0x174 - -gUnknown_0830536C:: @ 830536C - .incbin "baserom.gba", 0x30536c, 0x174 - -gUnknown_083054E0:: @ 83054E0 - .incbin "baserom.gba", 0x3054e0, 0x174 - -@ 8305654 - .include "data/graphics/trainers/trainer_front_pic_table.inc" - -@ 830593C - .include "data/graphics/trainers/trainer_front_pic_palette_table.inc" - -@ 8305C24 - .incbin "baserom.gba", 0x305c24, 0xe8 - -gUnknown_08305D0C:: @ 8305D0C - .incbin "baserom.gba", 0x305d0c, 0x20 - -gUnknown_08305D2C:: @ 8305D2C - .incbin "baserom.gba", 0x305d2c, 0x20 - -@ 8305D4C - .include "data/graphics/trainers/trainer_back_pic_table.inc" - -@ 8305D8C - .include "data/graphics/trainers/trainer_back_pic_palette_table.inc" - -gUnknown_08305DCC:: @ 8305DCC - .incbin "baserom.gba", 0x305dcc, 0x3ce0 - -gUnknown_08309AAC:: @ 8309AAC - .incbin "baserom.gba", 0x309aac, 0x6e0 - -@ 830A18C - .include "data/graphics/pokemon/mon_front_pic_table.inc" - -@ 830AF4C - .incbin "baserom.gba", 0x30af4c, 0x6e0 - -@ 830B62C - .include "data/trainer_parties.inc" - -@ 830FCD4 - .include "data/text/trainer_class_names.inc" - -@ 8310030 - .include "data/trainers.inc" - -@ 83185C8 - .include "data/text/species_names.inc" - -@ 831977C - .include "data/text/move_names.inc" - - .incbin "baserom.gba", 0x31a983, 0x4d - -gUnknown_0831A9D0:: @ 831A9D0 - .incbin "baserom.gba", 0x31a9d0, 0x18 - -gUnknown_0831A9E8:: @ 831A9E8 - .incbin "baserom.gba", 0x31a9e8, 0x18 - -gUnknown_0831AA00:: @ 831AA00 - .incbin "baserom.gba", 0x31aa00, 0x8 - -gUnknown_0831AA08:: @ 831AA08 - .incbin "baserom.gba", 0x31aa08, 0x198 - -gUnknown_0831ABA0:: @ 831ABA0 - .incbin "baserom.gba", 0x31aba0, 0x8 - -gUnknown_0831ABA8:: @ 831ABA8 - .incbin "baserom.gba", 0x31aba8, 0xc8 - -gUnknown_0831AC70:: @ 831AC70 - .incbin "baserom.gba", 0x31ac70, 0x18 - -gUnknown_0831AC88:: @ 831AC88 - .incbin "baserom.gba", 0x31ac88, 0x18 - -gUnknown_0831ACA0:: @ 831ACA0 - .incbin "baserom.gba", 0x31aca0, 0x40 - -gUnknown_0831ACE0:: @ 831ACE0 - .incbin "baserom.gba", 0x31ace0, 0x8 - -gUnknown_0831ACE8:: @ 831ACE8 - .incbin "baserom.gba", 0x31ace8, 0x150 - -@ 831AE38 - .include "data/text/type_names.inc" - - .align 2 -gUnknown_0831AEB8:: @ 831AEB8 - .incbin "baserom.gba", 0x31aeb8, 0xe0 - -@ 831AF98 - .include "data/text/ability_descriptions.inc" - -@ 831B6DB - .include "data/text/ability_names.inc" - -@ 831BAD4 - .include "data/text/ability_description_pointers.inc" - -gUnknown_0831BC0C:: @ 831BC0C - .incbin "baserom.gba", 0x31bc0c, 0x38 - -gUnknown_0831BC44:: @ 831BC44 - .incbin "baserom.gba", 0x31bc44, 0x2c - -gUnknown_0831BC70:: @ 831BC70 - .incbin "baserom.gba", 0x31bc70, 0x8 - -gUnknown_0831BC78:: @ 831BC78 - .incbin "baserom.gba", 0x31bc78, 0x8 - -gUnknown_0831BC80:: @ 831BC80 - .incbin "baserom.gba", 0x31bc80, 0x8 - -gUnknown_0831BC88:: @ 831BC88 - .incbin "baserom.gba", 0x31bc88, 0x8 - -gUnknown_0831BC90:: @ 831BC90 - .incbin "baserom.gba", 0x31bc90, 0x8 - -gUnknown_0831BC98:: @ 831BC98 - .incbin "baserom.gba", 0x31bc98, 0x8 - -gUnknown_0831BCA0:: @ 831BCA0 - .incbin "baserom.gba", 0x31bca0, 0x8 - -gUnknown_0831BCA8:: @ 831BCA8 - .incbin "baserom.gba", 0x31bca8, 0x38 - -gUnknown_0831BCE0:: @ 831BCE0 - .incbin "baserom.gba", 0x31bce0, 0xf - -gUnknown_0831BCEF:: @ 831BCEF - .incbin "baserom.gba", 0x31bcef, 0x4 - -gUnknown_0831BCF3:: @ 831BCF3 - .incbin "baserom.gba", 0x31bcf3, 0x5 - -gUnknown_0831BCF8:: @ 831BCF8 - .incbin "baserom.gba", 0x31bcf8, 0x18 - -gUnknown_0831BD10:: @ 831BD10 - .incbin "baserom.gba", 0x31bd10, 0x3e4 - -gUnknown_0831C0F4:: @ 831C0F4 - .incbin "baserom.gba", 0x31c0f4, 0x34 - -gUnknown_0831C128:: @ 831C128 - .incbin "baserom.gba", 0x31c128, 0xc - -gUnknown_0831C134:: @ 831C134 - .incbin "baserom.gba", 0x31c134, 0xf0 - -gUnknown_0831C224:: @ 831C224 - .incbin "baserom.gba", 0x31c224, 0xa4 - -gUnknown_0831C2C8:: @ 831C2C8 - .incbin "baserom.gba", 0x31c2c8, 0x20 - -gUnknown_0831C2E8:: @ 831C2E8 - .incbin "baserom.gba", 0x31c2e8, 0xd8 - -gUnknown_0831C3C0:: @ 831C3C0 - .incbin "baserom.gba", 0x31c3c0, 0x18 - -gUnknown_0831C3D8:: @ 831C3D8 - .incbin "baserom.gba", 0x31c3d8, 0x8 - -gUnknown_0831C3E0:: @ 831C3E0 - .incbin "baserom.gba", 0x31c3e0, 0x28 - -gUnknown_0831C408:: @ 831C408 - .incbin "baserom.gba", 0x31c408, 0xc - -gUnknown_0831C414:: @ 831C414 - .incbin "baserom.gba", 0x31c414, 0x14 - -gUnknown_0831C428:: @ 831C428 - .incbin "baserom.gba", 0x31c428, 0x18 - -@ 831C440 - .include "data/pickup_items.inc" - -gUnknown_0831C483:: @ 831C483 - .incbin "baserom.gba", 0x31c483, 0xa - -gUnknown_0831C48D:: @ 831C48D - .incbin "baserom.gba", 0x31c48d, 0x7 - -gUnknown_0831C494:: @ 831C494 - .incbin "baserom.gba", 0x31c494, 0x64 - -gUnknown_0831C4F8:: @ 831C4F8 - .incbin "baserom.gba", 0x31c4f8, 0x1c - -gUnknown_0831C514:: @ 831C514 - .incbin "baserom.gba", 0x31c514, 0xe4 - -gUnknown_0831C5F8:: @ 831C5F8 - .incbin "baserom.gba", 0x31c5f8, 0xc - -gUnknown_0831C604:: @ 831C604 - .incbin "baserom.gba", 0x31c604, 0x1c - -gUnknown_0831C620:: @ 831C620 - .incbin "baserom.gba", 0x31c620, 0x8 - -gUnknown_0831C628:: @ 831C628 - .incbin "baserom.gba", 0x31c628, 0x60 - -gUnknown_0831C688:: @ 831C688 - .incbin "baserom.gba", 0x31c688, 0x18 - -gUnknown_0831C6A0:: @ 831C6A0 - .incbin "baserom.gba", 0x31c6a0, 0x10 - -gUnknown_0831C6B0:: @ 831C6B0 - .incbin "baserom.gba", 0x31c6b0, 0x18 - -gUnknown_0831C6C8:: @ 831C6C8 - .incbin "baserom.gba", 0x31c6c8, 0xec - -gUnknown_0831C7B4:: @ 831C7B4 - .incbin "baserom.gba", 0x31c7b4, 0xe4 - -@ 831C898 - .include "data/battle_moves.inc" - - .incbin "baserom.gba", 0x31d93c, 0x10 - -@ 831D94C - .include "data/pokedex_order.inc" - -@ 831E2F0 - .include "data/spinda_spot_graphics.inc" - -@ 831E380 - .include "data/item_effect_info.inc" - -@ 831E818 - .include "data/nature_stat_table.inc" - -@ 831E898 - .include "data/tm_hm_learnsets.inc" - -@ 831F578 - .include "data/trainer_pic_indices.inc" - -@ 831F5CA - .include "data/trainer_class_name_indices.inc" - -@ 831F61C - .include "data/cry_id_table.inc" - -@ 831F72C - .include "data/experience_tables.inc" - -@ 83203CC - .include "data/base_stats.inc" - -@ 83230DC - .include "data/level_up_learnsets.inc" - -@ 832531C - .include "data/evolution_table.inc" - -@ 832937C - .include "data/level_up_learnset_pointers.inc" - -gUnknown_083299EC:: @ 83299EC - .incbin "baserom.gba", 0x3299ec, 0x19b - -gUnknown_08329B87:: @ 8329B87 - .incbin "baserom.gba", 0x329b87, 0x19b - -gUnknown_08329D22:: @ 8329D22 - .incbin "baserom.gba", 0x329d22, 0x4 - -gUnknown_08329D26:: @ 8329D26 - .incbin "baserom.gba", 0x329d26, 0x4 - -gUnknown_08329D2A:: @ 8329D2A - .incbin "baserom.gba", 0x329d2a, 0x4 - -gUnknown_08329D2E:: @ 8329D2E - .incbin "baserom.gba", 0x329d2e, 0x1a - -gUnknown_08329D48:: @ 8329D48 - .incbin "baserom.gba", 0x329d48, 0xc - -gUnknown_08329D54:: @ 8329D54 - .incbin "baserom.gba", 0x329d54, 0x20 - -gUnknown_08329D74:: @ 8329D74 - .incbin "baserom.gba", 0x329d74, 0x24 - -gUnknown_08329D98:: @ 8329D98 - .incbin "baserom.gba", 0x329d98, 0x60 - -gUnknown_08329DF8:: @ 8329DF8 - .incbin "baserom.gba", 0x329df8, 0xc0 - -gUnknown_08329EB8:: @ 8329EB8 - .incbin "baserom.gba", 0x329eb8, 0xa - -gUnknown_08329EC2:: @ 8329EC2 - .incbin "baserom.gba", 0x329ec2, 0x6 - -gUnknown_08329EC8:: @ 8329EC8 - .incbin "baserom.gba", 0x329ec8, 0x6 - -gUnknown_08329ECE:: @ 8329ECE - .incbin "baserom.gba", 0x329ece, 0x1c - -gUnknown_08329EEA:: @ 8329EEA - .incbin "baserom.gba", 0x329eea, 0x12 - -gUnknown_08329EFC:: @ 8329EFC - .incbin "baserom.gba", 0x329efc, 0x2 - -gUnknown_08329EFE:: @ 8329EFE - .incbin "baserom.gba", 0x329efe, 0x2a - -gUnknown_08329F28:: @ 8329F28 - .incbin "baserom.gba", 0x329f28, 0x18 - -gUnknown_08329F40:: @ 8329F40 - .incbin "baserom.gba", 0x329f40, 0x280 - -gUnknown_0832A1C0:: @ 832A1C0 - .incbin "baserom.gba", 0x32a1c0, 0x168 - -gBitTable:: @ 832A328 - .incbin "baserom.gba", 0x32a328, 0x80 - -gUnknown_0832A3A8:: @ 832A3A8 - .incbin "baserom.gba", 0x32a3a8, 0x18 - -gUnknown_0832A3C0:: @ 832A3C0 - .incbin "baserom.gba", 0x32a3c0, 0x18 - -gUnknown_0832A3D8:: @ 832A3D8 - .incbin "baserom.gba", 0x32a3d8, 0xa00 - -@ 832ADD8 - .include "data/egg_moves.inc" - - .align 2 -gUnknown_0832B6C0:: @ 832B6C0 - .incbin "baserom.gba", 0x32b6c0, 0x20 - -gUnknown_0832B6E0:: @ 832B6E0 - .incbin "baserom.gba", 0x32b6e0, 0x18 - -gUnknown_0832B6F8:: @ 832B6F8 - .incbin "baserom.gba", 0x32b6f8, 0x10 - -gEggName:: @ 832B708 - .string "タマゴ$" @ "tamago" ("egg" in Japanese) - -@ 832B70C - .incbin "baserom.gba", 0x32b70c, 0x8d8 - -gUnknown_0832BFE4:: @ 832BFE4 - .incbin "baserom.gba", 0x32bfe4, 0x8 - -gUnknown_0832BFEC:: @ 832BFEC - .incbin "baserom.gba", 0x32bfec, 0x8 - -gUnknown_0832BFF4:: @ 832BFF4 - .incbin "baserom.gba", 0x32bff4, 0x8 - -gUnknown_0832BFFC:: @ 832BFFC - .incbin "baserom.gba", 0x32bffc, 0x50 - -gUnknown_0832C04C:: @ 832C04C - .incbin "baserom.gba", 0x32c04c, 0x18 - -gUnknown_0832C064:: @ 832C064 - .incbin "baserom.gba", 0x32c064, 0x8 - -gUnknown_0832C06C:: @ 832C06C - .incbin "baserom.gba", 0x32c06c, 0x10 - -gUnknown_0832C07C:: @ 832C07C - .incbin "baserom.gba", 0x32c07c, 0x8 - -gUnknown_0832C084:: @ 832C084 - .incbin "baserom.gba", 0x32c084, 0x4c - -gUnknown_0832C0D0:: @ 832C0D0 - .incbin "baserom.gba", 0x32c0d0, 0x8 - -gUnknown_0832C0D8:: @ 832C0D8 - .incbin "baserom.gba", 0x32c0d8, 0x8 - -gUnknown_0832C0E0:: @ 832C0E0 - .incbin "baserom.gba", 0x32c0e0, 0x8 - -gUnknown_0832C0E8:: @ 832C0E8 - .incbin "baserom.gba", 0x32c0e8, 0x8 - -gUnknown_0832C0F0:: @ 832C0F0 - .incbin "baserom.gba", 0x32c0f0, 0x8 - -gUnknown_0832C0F8:: @ 832C0F8 - .incbin "baserom.gba", 0x32c0f8, 0x8 - -gUnknown_0832C100:: @ 832C100 - .incbin "baserom.gba", 0x32c100, 0x8 - -gUnknown_0832C108:: @ 832C108 - .incbin "baserom.gba", 0x32c108, 0x20 - -gUnknown_0832C128:: @ 832C128 - .incbin "baserom.gba", 0x32c128, 0x18 - -gUnknown_0832C140:: @ 832C140 - .incbin "baserom.gba", 0x32c140, 0x30 - -gUnknown_0832C170:: @ 832C170 - .incbin "baserom.gba", 0x32c170, 0x30 - -gUnknown_0832C1A0:: @ 832C1A0 - .incbin "baserom.gba", 0x32c1a0, 0x20 - -gUnknown_0832C1C0:: @ 832C1C0 - .incbin "baserom.gba", 0x32c1c0, 0xcc - -gUnknown_0832C28C:: @ 832C28C - .incbin "baserom.gba", 0x32c28c, 0x38 - -gUnknown_0832C2C4:: @ 832C2C4 - .incbin "baserom.gba", 0x32c2c4, 0x8 - -gUnknown_0832C2CC:: @ 832C2CC - .incbin "baserom.gba", 0x32c2cc, 0x68 - -gUnknown_0832C334:: @ 832C334 - .incbin "baserom.gba", 0x32c334, 0x8 - -gUnknown_0832C33C:: @ 832C33C - .incbin "baserom.gba", 0x32c33c, 0x8 - -gUnknown_0832C344:: @ 832C344 - .incbin "baserom.gba", 0x32c344, 0x8 - -gUnknown_0832C34C:: @ 832C34C - .incbin "baserom.gba", 0x32c34c, 0x18 - -gUnknown_0832C364:: @ 832C364 - .incbin "baserom.gba", 0x32c364, 0x30 - -gUnknown_0832C394:: @ 832C394 - .incbin "baserom.gba", 0x32c394, 0x30 - -gUnknown_0832C3C4:: @ 832C3C4 - .incbin "baserom.gba", 0x32c3c4, 0x14 - -gUnknown_0832C3D8:: @ 832C3D8 - .incbin "baserom.gba", 0x32c3d8, 0x14 - -gUnknown_0832C3EC:: @ 832C3EC - .incbin "baserom.gba", 0x32c3ec, 0xc - -gUnknown_0832C3F8:: @ 832C3F8 - .incbin "baserom.gba", 0x32c3f8, 0x8 - -gUnknown_0832C400:: @ 832C400 - .incbin "baserom.gba", 0x32c400, 0x60 - -gUnknown_0832C460:: @ 832C460 - .incbin "baserom.gba", 0x32c460, 0x128 - -gUnknown_0832C588:: @ 832C588 - .incbin "baserom.gba", 0x32c588, 0x138 - -gUnknown_0832C6C0:: @ 832C6C0 - .incbin "baserom.gba", 0x32c6c0, 0x1fe - -gUnknown_0832C8BE:: @ 832C8BE - .incbin "baserom.gba", 0x32c8be, 0x1fe - -gUnknown_0832CABC:: @ 832CABC - .incbin "baserom.gba", 0x32cabc, 0x800 - -gUnknown_0832D2BC:: @ 832D2BC - .incbin "baserom.gba", 0x32d2bc, 0x800 - -gUnknown_0832DABC:: @ 832DABC - .incbin "baserom.gba", 0x32dabc, 0xb - -gUnknown_0832DAC7:: @ 832DAC7 - .incbin "baserom.gba", 0x32dac7, 0x2 - -gUnknown_0832DAC9:: @ 832DAC9 - .incbin "baserom.gba", 0x32dac9, 0x2 - -gUnknown_0832DACB:: @ 832DACB - .incbin "baserom.gba", 0x32dacb, 0x7 - -gUnknown_0832DAD2:: @ 832DAD2 - .incbin "baserom.gba", 0x32dad2, 0xd - -gUnknown_0832DADF:: @ 832DADF - .incbin "baserom.gba", 0x32dadf, 0x6 - -gUnknown_0832DAE5:: @ 832DAE5 - .incbin "baserom.gba", 0x32dae5, 0x157 - -gUnknown_0832DC3C:: @ 832DC3C - .incbin "baserom.gba", 0x32dc3c, 0x8 - -gUnknown_0832DC44:: @ 832DC44 - .incbin "baserom.gba", 0x32dc44, 0x50 - -gUnknown_0832DC94:: @ 832DC94 - .incbin "baserom.gba", 0x32dc94, 0x18 - -gUnknown_0832DCAC:: @ 832DCAC - .incbin "baserom.gba", 0x32dcac, 0x38 - -gUnknown_0832DCE4:: @ 832DCE4 - .incbin "baserom.gba", 0x32dce4, 0x8 - -gUnknown_0832DCEC:: @ 832DCEC - .incbin "baserom.gba", 0x32dcec, 0x138 - -gUnknown_0832DE24:: @ 832DE24 - .incbin "baserom.gba", 0x32de24, 0x1a - -gUnknown_0832DE3E:: @ 832DE3E - .incbin "baserom.gba", 0x32de3e, 0x18 - -gUnknown_0832DE56:: @ 832DE56 - .incbin "baserom.gba", 0x32de56, 0x3e - -gUnknown_0832DE94:: @ 832DE94 - .incbin "baserom.gba", 0x32de94, 0x18 - -gUnknown_0832DEAC:: @ 832DEAC - .incbin "baserom.gba", 0x32deac, 0x10 - -gUnknown_0832DEBC:: @ 832DEBC - .incbin "baserom.gba", 0x32debc, 0x24 - -gUnknown_0832DEE0:: @ 832DEE0 - .incbin "baserom.gba", 0x32dee0, 0x4 - -gUnknown_0832DEE4:: @ 832DEE4 - .incbin "baserom.gba", 0x32dee4, 0x10 - -gUnknown_0832DEF4:: @ 832DEF4 - .incbin "baserom.gba", 0x32def4, 0x98 - -gUnknown_0832DF8C:: @ 832DF8C - .incbin "baserom.gba", 0x32df8c, 0x8 - -gUnknown_0832DF94:: @ 832DF94 - .incbin "baserom.gba", 0x32df94, 0x5 - -gUnknown_0832DF99:: @ 832DF99 - .incbin "baserom.gba", 0x32df99, 0x2027 - -gUnknown_0832FFC0:: @ 832FFC0 - .incbin "baserom.gba", 0x32ffc0, 0x1fa0 - -gUnknown_08331F60:: @ 8331F60 - .incbin "baserom.gba", 0x331f60, 0x1000 - -gUnknown_08332F60:: @ 8332F60 - .incbin "baserom.gba", 0x332f60, 0x2840 - -gUnknown_083357A0:: @ 83357A0 - .incbin "baserom.gba", 0x3357a0, 0x100 - -gUnknown_083358A0:: @ 83358A0 - .incbin "baserom.gba", 0x3358a0, 0x100 - -gUnknown_083359A0:: @ 83359A0 - .incbin "baserom.gba", 0x3359a0, 0x1000 - -gUnknown_083369A0:: @ 83369A0 - .incbin "baserom.gba", 0x3369a0, 0x1000 - -gUnknown_083379A0:: @ 83379A0 - .incbin "baserom.gba", 0x3379a0, 0x100 - -gUnknown_08337AA0:: @ 8337AA0 - .incbin "baserom.gba", 0x337aa0, 0x200 - -gUnknown_08337CA0:: @ 8337CA0 - .incbin "baserom.gba", 0x337ca0, 0x200 - -gUnknown_08337EA0:: @ 8337EA0 - .incbin "baserom.gba", 0x337ea0, 0x20 - -gUnknown_08337EC0:: @ 8337EC0 - .incbin "baserom.gba", 0x337ec0, 0x690 - -gUnknown_08338550:: @ 8338550 - .incbin "baserom.gba", 0x338550, 0x7c8 - -gUnknown_08338D18:: @ 8338D18 - .incbin "baserom.gba", 0x338d18, 0x8 - -gUnknown_08338D20:: @ 8338D20 - .incbin "baserom.gba", 0x338d20, 0x8 - -gUnknown_08338D28:: @ 8338D28 - .incbin "baserom.gba", 0x338d28, 0x48 - -gUnknown_08338D70:: @ 8338D70 - .incbin "baserom.gba", 0x338d70, 0x8 - -gUnknown_08338D78:: @ 8338D78 - .incbin "baserom.gba", 0x338d78, 0x8 - -gUnknown_08338D80:: @ 8338D80 - .incbin "baserom.gba", 0x338d80, 0x8 - -gUnknown_08338D88:: @ 8338D88 - .incbin "baserom.gba", 0x338d88, 0x38 - -gUnknown_08338DC0:: @ 8338DC0 - .incbin "baserom.gba", 0x338dc0, 0x8 - -gUnknown_08338DC8:: @ 8338DC8 - .incbin "baserom.gba", 0x338dc8, 0x2c - -gUnknown_08338DF4:: @ 8338DF4 - .incbin "baserom.gba", 0x338df4, 0x8 - -gUnknown_08338DFC:: @ 8338DFC - .incbin "baserom.gba", 0x338dfc, 0x70 - -gUnknown_08338E6C:: @ 8338E6C - .incbin "baserom.gba", 0x338e6c, 0x8 - -gUnknown_08338E74:: @ 8338E74 - .incbin "baserom.gba", 0x338e74, 0x18 - -gUnknown_08338E8C:: @ 8338E8C - .incbin "baserom.gba", 0x338e8c, 0x18 - -gUnknown_08338EA4:: @ 8338EA4 - .incbin "baserom.gba", 0x338ea4, 0x28 - -gUnknown_08338ECC:: @ 8338ECC - .incbin "baserom.gba", 0x338ecc, 0x4 - -gUnknown_08338ED0:: @ 8338ED0 - .incbin "baserom.gba", 0x338ed0, 0xf0 - -gUnknown_08338FC0:: @ 8338FC0 - .incbin "baserom.gba", 0x338fc0, 0x3c - -gUnknown_08338FFC:: @ 8338FFC - .incbin "baserom.gba", 0x338ffc, 0x10 - -gUnknown_0833900C:: @ 833900C - .incbin "baserom.gba", 0x33900c, 0x8 - -gUnknown_08339014:: @ 8339014 - .incbin "baserom.gba", 0x339014, 0x10 - -gUnknown_08339024:: @ 8339024 - .incbin "baserom.gba", 0x339024, 0x6c - -gUnknown_08339090:: @ 8339090 - .incbin "baserom.gba", 0x339090, 0x44 - -gUnknown_083390D4:: @ 83390D4 - .incbin "baserom.gba", 0x3390d4, 0x20 - -gUnknown_083390F4:: @ 83390F4 - .incbin "baserom.gba", 0x3390f4, 0x400 - -gUnknown_083394F4:: @ 83394F4 - .incbin "baserom.gba", 0x3394f4, 0x246 - -gUnknown_0833973A:: @ 833973A - .incbin "baserom.gba", 0x33973a, 0x61 - -gUnknown_0833979B:: @ 833979B - .incbin "baserom.gba", 0x33979b, 0x2 - -gUnknown_0833979D:: @ 833979D - .incbin "baserom.gba", 0x33979d, 0x33 - -gUnknown_083397D0:: @ 83397D0 - .incbin "baserom.gba", 0x3397d0, 0x4a - -gUnknown_0833981A:: @ 833981A - .incbin "baserom.gba", 0x33981a, 0x17 - -gUnknown_08339831:: @ 8339831 - .incbin "baserom.gba", 0x339831, 0x27 - -gUnknown_08339858:: @ 8339858 - .incbin "baserom.gba", 0x339858, 0x3e - -gUnknown_08339896:: @ 8339896 - .incbin "baserom.gba", 0x339896, 0x1a - -gUnknown_083398B0:: @ 83398B0 - .incbin "baserom.gba", 0x3398b0, 0x2d - -gUnknown_083398DD:: @ 83398DD - .incbin "baserom.gba", 0x3398dd, 0x18 - -gUnknown_083398F5:: @ 83398F5 - .incbin "baserom.gba", 0x3398f5, 0x1f - -gUnknown_08339914:: @ 8339914 - .incbin "baserom.gba", 0x339914, 0x7 - -gUnknown_0833991B:: @ 833991B - .incbin "baserom.gba", 0x33991b, 0x6 - -gUnknown_08339921:: @ 8339921 - .incbin "baserom.gba", 0x339921, 0x7 - -gUnknown_08339928:: @ 8339928 - .incbin "baserom.gba", 0x339928, 0x6 - -gUnknown_0833992E:: @ 833992E - .incbin "baserom.gba", 0x33992e, 0xe - -gUnknown_0833993C:: @ 833993C - .incbin "baserom.gba", 0x33993c, 0x5 - -gUnknown_08339941:: @ 8339941 - .incbin "baserom.gba", 0x339941, 0x2 - -gUnknown_08339943:: @ 8339943 - .incbin "baserom.gba", 0x339943, 0x4 - -gUnknown_08339947:: @ 8339947 - .incbin "baserom.gba", 0x339947, 0x8 - -gUnknown_0833994F:: @ 833994F - .incbin "baserom.gba", 0x33994f, 0xe - -gUnknown_0833995D:: @ 833995D - .incbin "baserom.gba", 0x33995d, 0x13 - -gUnknown_08339970:: @ 8339970 - .incbin "baserom.gba", 0x339970, 0x4 - -gUnknown_08339974:: @ 8339974 - .incbin "baserom.gba", 0x339974, 0xc - -gUnknown_08339980:: @ 8339980 - .incbin "baserom.gba", 0x339980, 0x38 - -gUnknown_083399B8:: @ 83399B8 - .incbin "baserom.gba", 0x3399b8, 0x8 - -gUnknown_083399C0:: @ 83399C0 - .incbin "baserom.gba", 0x3399c0, 0x8 - -gUnknown_083399C8:: @ 83399C8 - .incbin "baserom.gba", 0x3399c8, 0x8 - -gUnknown_083399D0:: @ 83399D0 - .incbin "baserom.gba", 0x3399d0, 0xc - -gUnknown_083399DC:: @ 83399DC - .incbin "baserom.gba", 0x3399dc, 0x8 - -gUnknown_083399E4:: @ 83399E4 - .incbin "baserom.gba", 0x3399e4, 0x3 - -gUnknown_083399E7:: @ 83399E7 - .incbin "baserom.gba", 0x3399e7, 0x5 - -gUnknown_083399EC:: @ 83399EC - .incbin "baserom.gba", 0x3399ec, 0xd4 - -gUnknown_08339AC0:: @ 8339AC0 - .incbin "baserom.gba", 0x339ac0, 0x8 - -gUnknown_08339AC8:: @ 8339AC8 - .incbin "baserom.gba", 0x339ac8, 0x8 - -gUnknown_08339AD0:: @ 8339AD0 - .incbin "baserom.gba", 0x339ad0, 0x8 - -gUnknown_08339AD8:: @ 8339AD8 - .incbin "baserom.gba", 0x339ad8, 0x60 - -gUnknown_08339B38:: @ 8339B38 - .incbin "baserom.gba", 0x339b38, 0x8 - -gUnknown_08339B40:: @ 8339B40 - .incbin "baserom.gba", 0x339b40, 0x98 - -gUnknown_08339BD8:: @ 8339BD8 - .incbin "baserom.gba", 0x339bd8, 0x8 - -gUnknown_08339BE0:: @ 8339BE0 - .incbin "baserom.gba", 0x339be0, 0x44 - -gUnknown_08339C24:: @ 8339C24 - .incbin "baserom.gba", 0x339c24, 0x8 - -gUnknown_08339C2C:: @ 8339C2C - .incbin "baserom.gba", 0x339c2c, 0x2c - -gUnknown_08339C58:: @ 8339C58 - .incbin "baserom.gba", 0x339c58, 0x8 - -gUnknown_08339C60:: @ 8339C60 - .incbin "baserom.gba", 0x339c60, 0x18 - -gUnknown_08339C78:: @ 8339C78 - .incbin "baserom.gba", 0x339c78, 0x28 - -gUnknown_08339CA0:: @ 8339CA0 - .incbin "baserom.gba", 0x339ca0, 0x1e - -gUnknown_08339CBE:: @ 8339CBE - .incbin "baserom.gba", 0x339cbe, 0x5 - -gUnknown_08339CC3:: @ 8339CC3 - .incbin "baserom.gba", 0x339cc3, 0x5 - -gUnknown_08339CC8:: @ 8339CC8 - .incbin "baserom.gba", 0x339cc8, 0x4c - -gUnknown_08339D14:: @ 8339D14 - .incbin "baserom.gba", 0x339d14, 0x8 - -gUnknown_08339D1C:: @ 8339D1C - .incbin "baserom.gba", 0x339d1c, 0x20 - -gUnknown_08339D3C:: @ 8339D3C - .incbin "baserom.gba", 0x339d3c, 0x28 - -gUnknown_08339D64:: @ 8339D64 - .incbin "baserom.gba", 0x339d64, 0x48 - -gUnknown_08339DAC:: @ 8339DAC - .incbin "baserom.gba", 0x339dac, 0x10 - -gUnknown_08339DBC:: @ 8339DBC - .incbin "baserom.gba", 0x339dbc, 0xc - -gUnknown_08339DC8:: @ 8339DC8 - .incbin "baserom.gba", 0x339dc8, 0xc - -gUnknown_08339DD4:: @ 8339DD4 - .incbin "baserom.gba", 0x339dd4, 0x2c - -gUnknown_08339E00:: @ 8339E00 - .incbin "baserom.gba", 0x339e00, 0x8 - -@ 8339E08 - .include "data/tilesets/tileset_graphics.inc" - -@ 83960F0 - .include "data/tilesets/metatiles.inc" - -@ 83DF704 - .include "data/tilesets/tilesets.inc" - -@ 83DFE14 - .incbin "baserom.gba", 0x3dfe14, 0xa1fc0 - -gUnknown_08481DD4:: @ 8481DD4 - .incbin "baserom.gba", 0x481dd4, 0x47a4 - -gUnknown_08486578:: @ 8486578 - .incbin "baserom.gba", 0x486578, 0x980 - -gUnknown_08486EF8:: @ 8486EF8 - .incbin "baserom.gba", 0x486ef8, 0x4 - -gUnknown_08486EFC:: @ 8486EFC - .incbin "baserom.gba", 0x486efc, 0x10090 - -gUnknown_08496F8C:: @ 8496F8C - .incbin "baserom.gba", 0x496f8c, 0x14 - -gUnknown_08496FA0:: @ 8496FA0 - .incbin "baserom.gba", 0x496fa0, 0x14 - -gUnknown_08496FB4:: @ 8496FB4 - .incbin "baserom.gba", 0x496fb4, 0x1c0 - -gUnknown_08497174:: @ 8497174 - .incbin "baserom.gba", 0x497174, 0x288 - -gUnknown_084973FC:: @ 84973FC - .incbin "baserom.gba", 0x4973fc, 0x48 - -gUnknown_08497444:: @ 8497444 - .incbin "baserom.gba", 0x497444, 0x4c - -gUnknown_08497490:: @ 8497490 - .incbin "baserom.gba", 0x497490, 0xc - -gUnknown_0849749C:: @ 849749C - .incbin "baserom.gba", 0x49749c, 0x14 - -gUnknown_084974B0:: @ 84974B0 - .incbin "baserom.gba", 0x4974b0, 0x8 - -gUnknown_084974B8:: @ 84974B8 - .incbin "baserom.gba", 0x4974b8, 0x20 - -gUnknown_084974D8:: @ 84974D8 - .incbin "baserom.gba", 0x4974d8, 0x10 - -gUnknown_084974E8:: @ 84974E8 - .incbin "baserom.gba", 0x4974e8, 0x10 - -gUnknown_084974F8:: @ 84974F8 - .incbin "baserom.gba", 0x4974f8, 0x10 - -gUnknown_08497508:: @ 8497508 - .incbin "baserom.gba", 0x497508, 0x2 - -gUnknown_0849750A:: @ 849750A - .incbin "baserom.gba", 0x49750a, 0x2 - -gUnknown_0849750C:: @ 849750C - .incbin "baserom.gba", 0x49750c, 0x14 - -gUnknown_08497520:: @ 8497520 - .incbin "baserom.gba", 0x497520, 0x10 - -gUnknown_08497530:: @ 8497530 - .incbin "baserom.gba", 0x497530, 0xc - -gUnknown_0849753C:: @ 849753C - .incbin "baserom.gba", 0x49753c, 0x4 - -gUnknown_08497540:: @ 8497540 - .incbin "baserom.gba", 0x497540, 0x10 - -gUnknown_08497550:: @ 8497550 - .incbin "baserom.gba", 0x497550, 0x4 - -gUnknown_08497554:: @ 8497554 - .incbin "baserom.gba", 0x497554, 0x8 - -gUnknown_0849755C:: @ 849755C - .incbin "baserom.gba", 0x49755c, 0x40 - -gUnknown_0849759C:: @ 849759C - .incbin "baserom.gba", 0x49759c, 0x6 - -gUnknown_084975A2:: @ 84975A2 - .incbin "baserom.gba", 0x4975a2, 0x6 - -gUnknown_084975A8:: @ 84975A8 - .incbin "baserom.gba", 0x4975a8, 0x2 - -gUnknown_084975AA:: @ 84975AA - .incbin "baserom.gba", 0x4975aa, 0x6 - -gUnknown_084975B0:: @ 84975B0 - .incbin "baserom.gba", 0x4975b0, 0xc - -gUnknown_084975BC:: @ 84975BC - .incbin "baserom.gba", 0x4975bc, 0x8 - -gUnknown_084975C4:: @ 84975C4 - .incbin "baserom.gba", 0x4975c4, 0x10 - -gUnknown_084975D4:: @ 84975D4 - .incbin "baserom.gba", 0x4975d4, 0x18 - -gUnknown_084975EC:: @ 84975EC - .incbin "baserom.gba", 0x4975ec, 0xc - -@ 84975F8 - .include "data/graphics/field_objects/field_object_graphics.inc" - -gUnknown_08505438:: @ 8505438 - .incbin "baserom.gba", 0x505438, 0x144 - -gUnknown_0850557C:: @ 850557C - .incbin "baserom.gba", 0x50557c, 0x51 - -gUnknown_085055CD:: @ 85055CD - .incbin "baserom.gba", 0x5055cd, 0x53 - -@ 8505620 - .include "data/graphics/field_objects/field_object_graphics_info_pointers.inc" - -@ 85059F8 - .include "data/graphics/field_objects/field_effect_object_template_pointers.inc" - -@ 8505A8C - .include "data/graphics/field_objects/field_object_pic_tables.inc" - -@ 85089FC - .include "data/graphics/field_objects/field_object_anims.inc" - -gUnknown_085094AC:: @ 85094AC - .incbin "baserom.gba", 0x5094ac, 0x40 - -@ 85094EC - .include "data/graphics/field_objects/field_object_oam.inc" - -@ 8509954 - .include "data/graphics/field_objects/field_object_graphics_info.inc" - -gUnknown_0850BBC8:: @ 850BBC8 - .incbin "baserom.gba", 0x50bbc8, 0x138 - -gUnknown_0850BD00:: @ 850BD00 - .incbin "baserom.gba", 0x50bd00, 0x78 - -gUnknown_0850BD78:: @ 850BD78 - .incbin "baserom.gba", 0x50bd78, 0xc0 - -gUnknown_0850BE38:: @ 850BE38 - .incbin "baserom.gba", 0x50be38, 0x10 - -@ 850BE48 - .include "data/graphics/field_objects/berry_tree_graphics_tables.inc" - -@ 850C9C0 - .include "data/graphics/field_objects/field_effect_objects.inc" - - .incbin "baserom.gba", 0x50d6d4, 0x8 - -gUnknown_0850D6DC:: @ 850D6DC - .incbin "baserom.gba", 0x50d6dc, 0x10 - -gUnknown_0850D6EC:: @ 850D6EC - .incbin "baserom.gba", 0x50d6ec, 0x8 - -gUnknown_0850D6F4:: @ 850D6F4 - .incbin "baserom.gba", 0x50d6f4, 0x1c - -gUnknown_0850D710:: @ 850D710 - .incbin "baserom.gba", 0x50d710, 0x4 - -gUnknown_0850D714:: @ 850D714 - .incbin "baserom.gba", 0x50d714, 0x2c - -gUnknown_0850D740:: @ 850D740 - .incbin "baserom.gba", 0x50d740, 0x14 - -gUnknown_0850D754:: @ 850D754 - .incbin "baserom.gba", 0x50d754, 0x1c - -gUnknown_0850D770:: @ 850D770 - .incbin "baserom.gba", 0x50d770, 0x4 - -gUnknown_0850D774:: @ 850D774 - .incbin "baserom.gba", 0x50d774, 0x1c - -gUnknown_0850D790:: @ 850D790 - .incbin "baserom.gba", 0x50d790, 0x4 - -gUnknown_0850D794:: @ 850D794 - .incbin "baserom.gba", 0x50d794, 0xc - -gUnknown_0850D7A0:: @ 850D7A0 - .incbin "baserom.gba", 0x50d7a0, 0x14 - -gUnknown_0850D7B4:: @ 850D7B4 - .incbin "baserom.gba", 0x50d7b4, 0x14 - -gUnknown_0850D7C8:: @ 850D7C8 - .incbin "baserom.gba", 0x50d7c8, 0x14 - -gUnknown_0850D7DC:: @ 850D7DC - .incbin "baserom.gba", 0x50d7dc, 0x14 - -gUnknown_0850D7F0:: @ 850D7F0 - .incbin "baserom.gba", 0x50d7f0, 0x4 - -gUnknown_0850D7F4:: @ 850D7F4 - .incbin "baserom.gba", 0x50d7f4, 0x14 - -gUnknown_0850D808:: @ 850D808 - .incbin "baserom.gba", 0x50d808, 0x4 - -gUnknown_0850D80C:: @ 850D80C - .incbin "baserom.gba", 0x50d80c, 0x14 - -gUnknown_0850D820:: @ 850D820 - .incbin "baserom.gba", 0x50d820, 0x4 - -gUnknown_0850D824:: @ 850D824 - .incbin "baserom.gba", 0x50d824, 0x14 - -gUnknown_0850D838:: @ 850D838 - .incbin "baserom.gba", 0x50d838, 0x4 - -gUnknown_0850D83C:: @ 850D83C - .incbin "baserom.gba", 0x50d83c, 0x14 - -gUnknown_0850D850:: @ 850D850 - .incbin "baserom.gba", 0x50d850, 0x4 - -gUnknown_0850D854:: @ 850D854 - .incbin "baserom.gba", 0x50d854, 0x14 - -gUnknown_0850D868:: @ 850D868 - .incbin "baserom.gba", 0x50d868, 0x4 - -gUnknown_0850D86C:: @ 850D86C - .incbin "baserom.gba", 0x50d86c, 0x14 - -gUnknown_0850D880:: @ 850D880 - .incbin "baserom.gba", 0x50d880, 0x4 - -gUnknown_0850D884:: @ 850D884 - .incbin "baserom.gba", 0x50d884, 0x14 - -gUnknown_0850D898:: @ 850D898 - .incbin "baserom.gba", 0x50d898, 0x4 - -gUnknown_0850D89C:: @ 850D89C - .incbin "baserom.gba", 0x50d89c, 0x10 - -gUnknown_0850D8AC:: @ 850D8AC - .incbin "baserom.gba", 0x50d8ac, 0x8 - -gUnknown_0850D8B4:: @ 850D8B4 - .incbin "baserom.gba", 0x50d8b4, 0x10 - -gUnknown_0850D8C4:: @ 850D8C4 - .incbin "baserom.gba", 0x50d8c4, 0x8 - -gUnknown_0850D8CC:: @ 850D8CC - .incbin "baserom.gba", 0x50d8cc, 0x10 - -gUnknown_0850D8DC:: @ 850D8DC - .incbin "baserom.gba", 0x50d8dc, 0xc - -gUnknown_0850D8E8:: @ 850D8E8 - .incbin "baserom.gba", 0x50d8e8, 0x4 - -gUnknown_0850D8EC:: @ 850D8EC - .incbin "baserom.gba", 0x50d8ec, 0xc - -gUnknown_0850D8F8:: @ 850D8F8 - .incbin "baserom.gba", 0x50d8f8, 0x4 - -gUnknown_0850D8FC:: @ 850D8FC - .incbin "baserom.gba", 0x50d8fc, 0xc - -gUnknown_0850D908:: @ 850D908 - .incbin "baserom.gba", 0x50d908, 0x4 - -gUnknown_0850D90C:: @ 850D90C - .incbin "baserom.gba", 0x50d90c, 0xc - -gUnknown_0850D918:: @ 850D918 - .incbin "baserom.gba", 0x50d918, 0x4 - -gUnknown_0850D91C:: @ 850D91C - .incbin "baserom.gba", 0x50d91c, 0xc - -gUnknown_0850D928:: @ 850D928 - .incbin "baserom.gba", 0x50d928, 0x4 - -gUnknown_0850D92C:: @ 850D92C - .incbin "baserom.gba", 0x50d92c, 0xc - -gUnknown_0850D938:: @ 850D938 - .incbin "baserom.gba", 0x50d938, 0x4 - -gUnknown_0850D93C:: @ 850D93C - .incbin "baserom.gba", 0x50d93c, 0xc - -gUnknown_0850D948:: @ 850D948 - .incbin "baserom.gba", 0x50d948, 0xc - -gUnknown_0850D954:: @ 850D954 - .incbin "baserom.gba", 0x50d954, 0x4 - -gUnknown_0850D958:: @ 850D958 - .incbin "baserom.gba", 0x50d958, 0xc - -gUnknown_0850D964:: @ 850D964 - .incbin "baserom.gba", 0x50d964, 0x4 - -gUnknown_0850D968:: @ 850D968 - .incbin "baserom.gba", 0x50d968, 0xc - -gUnknown_0850D974:: @ 850D974 - .incbin "baserom.gba", 0x50d974, 0x4 - -gUnknown_0850D978:: @ 850D978 - .incbin "baserom.gba", 0x50d978, 0xc - -gUnknown_0850D984:: @ 850D984 - .incbin "baserom.gba", 0x50d984, 0x4 - -gUnknown_0850D988:: @ 850D988 - .incbin "baserom.gba", 0x50d988, 0xc - -gUnknown_0850D994:: @ 850D994 - .incbin "baserom.gba", 0x50d994, 0x4 - -gUnknown_0850D998:: @ 850D998 - .incbin "baserom.gba", 0x50d998, 0xc - -gUnknown_0850D9A4:: @ 850D9A4 - .incbin "baserom.gba", 0x50d9a4, 0x4 - -gUnknown_0850D9A8:: @ 850D9A8 - .incbin "baserom.gba", 0x50d9a8, 0xc - -gUnknown_0850D9B4:: @ 850D9B4 - .incbin "baserom.gba", 0x50d9b4, 0x4 - -gUnknown_0850D9B8:: @ 850D9B8 - .incbin "baserom.gba", 0x50d9b8, 0xc - -gUnknown_0850D9C4:: @ 850D9C4 - .incbin "baserom.gba", 0x50d9c4, 0x4 - -gUnknown_0850D9C8:: @ 850D9C8 - .incbin "baserom.gba", 0x50d9c8, 0xc - -gUnknown_0850D9D4:: @ 850D9D4 - .incbin "baserom.gba", 0x50d9d4, 0x4 - -gUnknown_0850D9D8:: @ 850D9D8 - .incbin "baserom.gba", 0x50d9d8, 0xc - -gUnknown_0850D9E4:: @ 850D9E4 - .incbin "baserom.gba", 0x50d9e4, 0x4 - -gUnknown_0850D9E8:: @ 850D9E8 - .incbin "baserom.gba", 0x50d9e8, 0xc - -gUnknown_0850D9F4:: @ 850D9F4 - .incbin "baserom.gba", 0x50d9f4, 0x4 - -gUnknown_0850D9F8:: @ 850D9F8 - .incbin "baserom.gba", 0x50d9f8, 0xc - -gUnknown_0850DA04:: @ 850DA04 - .incbin "baserom.gba", 0x50da04, 0x4 - -gUnknown_0850DA08:: @ 850DA08 - .incbin "baserom.gba", 0x50da08, 0xc - -gUnknown_0850DA14:: @ 850DA14 - .incbin "baserom.gba", 0x50da14, 0x4 - -gUnknown_0850DA18:: @ 850DA18 - .incbin "baserom.gba", 0x50da18, 0xc - -gUnknown_0850DA24:: @ 850DA24 - .incbin "baserom.gba", 0x50da24, 0x4 - -gUnknown_0850DA28:: @ 850DA28 - .incbin "baserom.gba", 0x50da28, 0xc - -gUnknown_0850DA34:: @ 850DA34 - .incbin "baserom.gba", 0x50da34, 0x4 - -gUnknown_0850DA38:: @ 850DA38 - .incbin "baserom.gba", 0x50da38, 0xc - -gUnknown_0850DA44:: @ 850DA44 - .incbin "baserom.gba", 0x50da44, 0x4 - -gUnknown_0850DA48:: @ 850DA48 - .incbin "baserom.gba", 0x50da48, 0xc - -gUnknown_0850DA54:: @ 850DA54 - .incbin "baserom.gba", 0x50da54, 0x4 - -gUnknown_0850DA58:: @ 850DA58 - .incbin "baserom.gba", 0x50da58, 0xc - -gUnknown_0850DA64:: @ 850DA64 - .incbin "baserom.gba", 0x50da64, 0x2c - -gUnknown_0850DA90:: @ 850DA90 - .incbin "baserom.gba", 0x50da90, 0xc - -gUnknown_0850DA9C:: @ 850DA9C - .incbin "baserom.gba", 0x50da9c, 0x4 - -gUnknown_0850DAA0:: @ 850DAA0 - .incbin "baserom.gba", 0x50daa0, 0x8 - -gUnknown_0850DAA8:: @ 850DAA8 - .incbin "baserom.gba", 0x50daa8, 0x8 - -gUnknown_0850DAB0:: @ 850DAB0 - .incbin "baserom.gba", 0x50dab0, 0x8 - -gUnknown_0850DAB8:: @ 850DAB8 - .incbin "baserom.gba", 0x50dab8, 0x8 - -gUnknown_0850DAC0:: @ 850DAC0 - .incbin "baserom.gba", 0x50dac0, 0xc - -gUnknown_0850DACC:: @ 850DACC - .incbin "baserom.gba", 0x50dacc, 0x9 - -gUnknown_0850DAD5:: @ 850DAD5 - .incbin "baserom.gba", 0x50dad5, 0x9 - -gUnknown_0850DADE:: @ 850DADE - .incbin "baserom.gba", 0x50dade, 0x9 - -gUnknown_0850DAE7:: @ 850DAE7 - .incbin "baserom.gba", 0x50dae7, 0x9 - -gUnknown_0850DAF0:: @ 850DAF0 - .incbin "baserom.gba", 0x50daf0, 0x9 - -gUnknown_0850DAF9:: @ 850DAF9 - .incbin "baserom.gba", 0x50daf9, 0x9 - -gUnknown_0850DB02:: @ 850DB02 - .incbin "baserom.gba", 0x50db02, 0x9 - -gUnknown_0850DB0B:: @ 850DB0B - .incbin "baserom.gba", 0x50db0b, 0x9 - -gUnknown_0850DB14:: @ 850DB14 - .incbin "baserom.gba", 0x50db14, 0x9 - -gUnknown_0850DB1D:: @ 850DB1D - .incbin "baserom.gba", 0x50db1d, 0x9 - -gUnknown_0850DB26:: @ 850DB26 - .incbin "baserom.gba", 0x50db26, 0x9 - -gUnknown_0850DB2F:: @ 850DB2F - .incbin "baserom.gba", 0x50db2f, 0x9 - -gUnknown_0850DB38:: @ 850DB38 - .incbin "baserom.gba", 0x50db38, 0x9 - -gUnknown_0850DB41:: @ 850DB41 - .incbin "baserom.gba", 0x50db41, 0x9 - -gUnknown_0850DB4A:: @ 850DB4A - .incbin "baserom.gba", 0x50db4a, 0x9 - -gUnknown_0850DB53:: @ 850DB53 - .incbin "baserom.gba", 0x50db53, 0x9 - -gUnknown_0850DB5C:: @ 850DB5C - .incbin "baserom.gba", 0x50db5c, 0x10 - -gUnknown_0850DB6C:: @ 850DB6C - .incbin "baserom.gba", 0x50db6c, 0x10 - -gUnknown_0850DB7C:: @ 850DB7C - .incbin "baserom.gba", 0x50db7c, 0x24 - -gUnknown_0850DBA0:: @ 850DBA0 - .incbin "baserom.gba", 0x50dba0, 0x5 - -gUnknown_0850DBA5:: @ 850DBA5 - .incbin "baserom.gba", 0x50dba5, 0x5 - -gUnknown_0850DBAA:: @ 850DBAA - .incbin "baserom.gba", 0x50dbaa, 0x5 - -gUnknown_0850DBAF:: @ 850DBAF - .incbin "baserom.gba", 0x50dbaf, 0x5 - -gUnknown_0850DBB4:: @ 850DBB4 - .incbin "baserom.gba", 0x50dbb4, 0x5 - -gUnknown_0850DBB9:: @ 850DBB9 - .incbin "baserom.gba", 0x50dbb9, 0x5 - -gUnknown_0850DBBE:: @ 850DBBE - .incbin "baserom.gba", 0x50dbbe, 0x5 - -gUnknown_0850DBC3:: @ 850DBC3 - .incbin "baserom.gba", 0x50dbc3, 0x5 - -gUnknown_0850DBC8:: @ 850DBC8 - .incbin "baserom.gba", 0x50dbc8, 0x5 - -gUnknown_0850DBCD:: @ 850DBCD - .incbin "baserom.gba", 0x50dbcd, 0x5 - -gUnknown_0850DBD2:: @ 850DBD2 - .incbin "baserom.gba", 0x50dbd2, 0x5 - -gUnknown_0850DBD7:: @ 850DBD7 - .incbin "baserom.gba", 0x50dbd7, 0x5 - -gUnknown_0850DBDC:: @ 850DBDC - .incbin "baserom.gba", 0x50dbdc, 0x5 - -gUnknown_0850DBE1:: @ 850DBE1 - .incbin "baserom.gba", 0x50dbe1, 0x5 - -gUnknown_0850DBE6:: @ 850DBE6 - .incbin "baserom.gba", 0x50dbe6, 0x5 - -gUnknown_0850DBEB:: @ 850DBEB - .incbin "baserom.gba", 0x50dbeb, 0x5 - -gUnknown_0850DBF0:: @ 850DBF0 - .incbin "baserom.gba", 0x50dbf0, 0x5 - -gUnknown_0850DBF5:: @ 850DBF5 - .incbin "baserom.gba", 0x50dbf5, 0x5 - -gUnknown_0850DBFA:: @ 850DBFA - .incbin "baserom.gba", 0x50dbfa, 0x5 - -gUnknown_0850DBFF:: @ 850DBFF - .incbin "baserom.gba", 0x50dbff, 0x5 - -gUnknown_0850DC04:: @ 850DC04 - .incbin "baserom.gba", 0x50dc04, 0x5 - -gUnknown_0850DC09:: @ 850DC09 - .incbin "baserom.gba", 0x50dc09, 0x5 - -gUnknown_0850DC0E:: @ 850DC0E - .incbin "baserom.gba", 0x50dc0e, 0x5 - -gUnknown_0850DC13:: @ 850DC13 - .incbin "baserom.gba", 0x50dc13, 0x5 - -gUnknown_0850DC18:: @ 850DC18 - .incbin "baserom.gba", 0x50dc18, 0x5 - -gUnknown_0850DC1D:: @ 850DC1D - .incbin "baserom.gba", 0x50dc1d, 0x5 - -gUnknown_0850DC22:: @ 850DC22 - .incbin "baserom.gba", 0x50dc22, 0x5 - -gUnknown_0850DC27:: @ 850DC27 - .incbin "baserom.gba", 0x50dc27, 0x8 - -gUnknown_0850DC2F:: @ 850DC2F - .incbin "baserom.gba", 0x50dc2f, 0x10 - -gUnknown_0850DC3F:: @ 850DC3F - .incbin "baserom.gba", 0x50dc3f, 0x11 - -gUnknown_0850DC50:: @ 850DC50 - .incbin "baserom.gba", 0x50dc50, 0x298 - -gUnknown_0850DEE8:: @ 850DEE8 - .incbin "baserom.gba", 0x50dee8, 0xd4 - -gUnknown_0850DFBC:: @ 850DFBC - .incbin "baserom.gba", 0x50dfbc, 0x6 - -gUnknown_0850DFC2:: @ 850DFC2 - .incbin "baserom.gba", 0x50dfc2, 0x61a - -gUnknown_0850E5DC:: @ 850E5DC - .incbin "baserom.gba", 0x50e5dc, 0x8 - -gUnknown_0850E5E4:: @ 850E5E4 - .incbin "baserom.gba", 0x50e5e4, 0x18 - -gUnknown_0850E5FC:: @ 850E5FC - .incbin "baserom.gba", 0x50e5fc, 0x18 - -gUnknown_0850E614:: @ 850E614 - .incbin "baserom.gba", 0x50e614, 0x10 - -gUnknown_0850E624:: @ 850E624 - .incbin "baserom.gba", 0x50e624, 0x10 - -gUnknown_0850E634:: @ 850E634 - .incbin "baserom.gba", 0x50e634, 0x10 - -gUnknown_0850E644:: @ 850E644 - .incbin "baserom.gba", 0x50e644, 0x10 - -gUnknown_0850E654:: @ 850E654 - .incbin "baserom.gba", 0x50e654, 0xc - -gUnknown_0850E660:: @ 850E660 - .incbin "baserom.gba", 0x50e660, 0x4 - -gUnknown_0850E664:: @ 850E664 - .incbin "baserom.gba", 0x50e664, 0x10 - -gUnknown_0850E674:: @ 850E674 - .incbin "baserom.gba", 0x50e674, 0xe0 - -gUnknown_0850E754:: @ 850E754 - .incbin "baserom.gba", 0x50e754, 0x14 - -gUnknown_0850E768:: @ 850E768 - .incbin "baserom.gba", 0x50e768, 0xa - -gUnknown_0850E772:: @ 850E772 - .incbin "baserom.gba", 0x50e772, 0x48 - -gUnknown_0850E7BA:: @ 850E7BA - .incbin "baserom.gba", 0x50e7ba, 0x7a - -gUnknown_0850E834:: @ 850E834 - .incbin "baserom.gba", 0x50e834, 0xc - -gUnknown_0850E840:: @ 850E840 - .incbin "baserom.gba", 0x50e840, 0x6 - -gUnknown_0850E846:: @ 850E846 - .incbin "baserom.gba", 0x50e846, 0x4 - -gUnknown_0850E84A:: @ 850E84A - .incbin "baserom.gba", 0x50e84a, 0x6 - -gUnknown_0850E850:: @ 850E850 - .incbin "baserom.gba", 0x50e850, 0x2c - -gUnknown_0850E87C:: @ 850E87C - .incbin "baserom.gba", 0x50e87c, 0x1680 - -gUnknown_0850FEFC:: @ 850FEFC - .incbin "baserom.gba", 0x50fefc, 0x280 - -gUnknown_0851017C:: @ 851017C - .incbin "baserom.gba", 0x51017c, 0xa0 - -gUnknown_0851021C:: @ 851021C - .incbin "baserom.gba", 0x51021c, 0xa0 - -gUnknown_085102BC:: @ 85102BC - .incbin "baserom.gba", 0x5102bc, 0x4 - -gUnknown_085102C0:: @ 85102C0 - .incbin "baserom.gba", 0x5102c0, 0x14 - -gUnknown_085102D4:: @ 85102D4 - .incbin "baserom.gba", 0x5102d4, 0xc - -gUnknown_085102E0:: @ 85102E0 - .incbin "baserom.gba", 0x5102e0, 0x68 - -gUnknown_08510348:: @ 8510348 - .incbin "baserom.gba", 0x510348, 0x20 - -gUnknown_08510368:: @ 8510368 - .incbin "baserom.gba", 0x510368, 0x20 - -gUnknown_08510388:: @ 8510388 - .incbin "baserom.gba", 0x510388, 0x20 - -gUnknown_085103A8:: @ 85103A8 - .incbin "baserom.gba", 0x5103a8, 0x20 - -gUnknown_085103C8:: @ 85103C8 - .incbin "baserom.gba", 0x5103c8, 0x34 - -gUnknown_085103FC:: @ 85103FC - .incbin "baserom.gba", 0x5103fc, 0x8 - -gUnknown_08510404:: @ 8510404 - .incbin "baserom.gba", 0x510404, 0x4 - -gUnknown_08510408:: @ 8510408 - .incbin "baserom.gba", 0x510408, 0x14 - -gUnknown_0851041C:: @ 851041C - .incbin "baserom.gba", 0x51041c, 0x4 - -gUnknown_08510420:: @ 8510420 - .incbin "baserom.gba", 0x510420, 0xa4 - -gUnknown_085104C4:: @ 85104C4 - .incbin "baserom.gba", 0x5104c4, 0x2c - -gUnknown_085104F0:: @ 85104F0 - .incbin "baserom.gba", 0x5104f0, 0x18 - -gUnknown_08510508:: @ 8510508 - .incbin "baserom.gba", 0x510508, 0x8 - -gUnknown_08510510:: @ 8510510 - .incbin "baserom.gba", 0x510510, 0x20 - -gUnknown_08510530:: @ 8510530 - .incbin "baserom.gba", 0x510530, 0x8 - -gUnknown_08510538:: @ 8510538 - .incbin "baserom.gba", 0x510538, 0x8 - -gUnknown_08510540:: @ 8510540 - .incbin "baserom.gba", 0x510540, 0x68 - -gUnknown_085105A8:: @ 85105A8 - .incbin "baserom.gba", 0x5105a8, 0x4 - -gUnknown_085105AC:: @ 85105AC - .incbin "baserom.gba", 0x5105ac, 0x10 - -gUnknown_085105BC:: @ 85105BC - .incbin "baserom.gba", 0x5105bc, 0x1a8 - -gUnknown_08510764:: @ 8510764 - .incbin "baserom.gba", 0x510764, 0xb60 - -gUnknown_085112C4:: @ 85112C4 - .incbin "baserom.gba", 0x5112c4, 0x908 - -gUnknown_08511BCC:: @ 8511BCC - .incbin "baserom.gba", 0x511bcc, 0x9a8 - -gUnknown_08512574:: @ 8512574 - .incbin "baserom.gba", 0x512574, 0x8e0 - -gUnknown_08512E54:: @ 8512E54 - .incbin "baserom.gba", 0x512e54, 0x320 - -gUnknown_08513174:: @ 8513174 - .incbin "baserom.gba", 0x513174, 0x510 - -gUnknown_08513684:: @ 8513684 - .incbin "baserom.gba", 0x513684, 0x210 - -gUnknown_08513894:: @ 8513894 - .incbin "baserom.gba", 0x513894, 0xb50 - -gUnknown_085143E4:: @ 85143E4 - .incbin "baserom.gba", 0x5143e4, 0x210 - -gUnknown_085145F4:: @ 85145F4 - .incbin "baserom.gba", 0x5145f4, 0x810 - -gUnknown_08514E04:: @ 8514E04 - .incbin "baserom.gba", 0x514e04, 0x540 - -gUnknown_08515344:: @ 8515344 - .incbin "baserom.gba", 0x515344, 0x20 - -gUnknown_08515364:: @ 8515364 - .incbin "baserom.gba", 0x515364, 0x20 - -gUnknown_08515384:: @ 8515384 - .incbin "baserom.gba", 0x515384, 0x30 - -gUnknown_085153B4:: @ 85153B4 - .incbin "baserom.gba", 0x5153b4, 0x30 - -gUnknown_085153E4:: @ 85153E4 - .incbin "baserom.gba", 0x5153e4, 0x10 - -gUnknown_085153F4:: @ 85153F4 - .incbin "baserom.gba", 0x5153f4, 0x410 - -gUnknown_08515804:: @ 8515804 - .incbin "baserom.gba", 0x515804, 0x20 - -gUnknown_08515824:: @ 8515824 - .incbin "baserom.gba", 0x515824, 0x140 - -gUnknown_08515964:: @ 8515964 - .incbin "baserom.gba", 0x515964, 0x428 - -gUnknown_08515D8C:: @ 8515D8C - .incbin "baserom.gba", 0x515d8c, 0x430 - -gUnknown_085161BC:: @ 85161BC - .incbin "baserom.gba", 0x5161bc, 0x20 - -gUnknown_085161DC:: @ 85161DC - .incbin "baserom.gba", 0x5161dc, 0x320 - -gUnknown_085164FC:: @ 85164FC - .incbin "baserom.gba", 0x5164fc, 0x310 - -gUnknown_0851680C:: @ 851680C - .incbin "baserom.gba", 0x51680c, 0x310 - -gUnknown_08516B1C:: @ 8516B1C - .incbin "baserom.gba", 0x516b1c, 0x210 - -gUnknown_08516D2C:: @ 8516D2C - .incbin "baserom.gba", 0x516d2c, 0x110 - -gUnknown_08516E3C:: @ 8516E3C - .incbin "baserom.gba", 0x516e3c, 0xc08 - -gUnknown_08517A44:: @ 8517A44 - .incbin "baserom.gba", 0x517a44, 0xc - -gUnknown_08517A50:: @ 8517A50 - .incbin "baserom.gba", 0x517a50, 0x1ac - -gUnknown_08517BFC:: @ 8517BFC - .incbin "baserom.gba", 0x517bfc, 0x10 - -gUnknown_08517C0C:: @ 8517C0C - .incbin "baserom.gba", 0x517c0c, 0x428 - -gUnknown_08518034:: @ 8518034 - .incbin "baserom.gba", 0x518034, 0x268 - -gUnknown_0851829C:: @ 851829C - .incbin "baserom.gba", 0x51829c, 0x8028 - -gUnknown_085202C4:: @ 85202C4 - .incbin "baserom.gba", 0x5202c4, 0x45a0 - -gUnknown_08524864:: @ 8524864 - .incbin "baserom.gba", 0x524864, 0xc - -gUnknown_08524870:: @ 8524870 - .incbin "baserom.gba", 0x524870, 0xc - -gUnknown_0852487C:: @ 852487C - .incbin "baserom.gba", 0x52487c, 0x10 - -gDummyPaletteStructTemplate:: @ 852488C - .2byte 0xFFFF - .space 9 - .byte 0x20 - .space 4 - - .align 2 -gUnknown_0852489C:: @ 852489C - .incbin "baserom.gba", 0x52489c, 0x20 - -gUnknown_085248BC:: @ 85248BC - .incbin "baserom.gba", 0x5248bc, 0x288 - -gUnknown_08524B44:: @ 8524B44 - .incbin "baserom.gba", 0x524b44, 0x1d0 - -gUnknown_08524D14:: @ 8524D14 - .incbin "baserom.gba", 0x524d14, 0x270 - -gUnknown_08524F84:: @ 8524F84 - .incbin "baserom.gba", 0x524f84, 0x308 - -gUnknown_0852528C:: @ 852528C - .incbin "baserom.gba", 0x52528c, 0x120 - -gUnknown_085253AC:: @ 85253AC - .incbin "baserom.gba", 0x5253ac, 0x270 - -gUnknown_0852561C:: @ 852561C - .incbin "baserom.gba", 0x52561c, 0x270 - -gUnknown_0852588C:: @ 852588C - .incbin "baserom.gba", 0x52588c, 0x308 - -gUnknown_08525B94:: @ 8525B94 - .incbin "baserom.gba", 0x525b94, 0x120 - -gUnknown_08525CB4:: @ 8525CB4 - .incbin "baserom.gba", 0x525cb4, 0xa0 - -gUnknown_08525D54:: @ 8525D54 - .incbin "baserom.gba", 0x525d54, 0x144 - -gUnknown_08525E98:: @ 8525E98 - .incbin "baserom.gba", 0x525e98, 0xc0 - -gUnknown_08525F58:: @ 8525F58 - .incbin "baserom.gba", 0x525f58, 0x20 - -gUnknown_08525F78:: @ 8525F78 - .incbin "baserom.gba", 0x525f78, 0x10 - -gUnknown_08525F88:: @ 8525F88 - .incbin "baserom.gba", 0x525f88, 0x4 - -gUnknown_08525F8C:: @ 8525F8C - .incbin "baserom.gba", 0x525f8c, 0x4 - -gUnknown_08525F90:: @ 8525F90 - .incbin "baserom.gba", 0x525f90, 0x30 - -gUnknown_08525FC0:: @ 8525FC0 - .incbin "baserom.gba", 0x525fc0, 0x18f80 - -gUnknown_0853EF40:: @ 853EF40 - .incbin "baserom.gba", 0x53ef40, 0x8 - -gUnknown_0853EF48:: @ 853EF48 - .incbin "baserom.gba", 0x53ef48, 0x18 - -gUnknown_0853EF60:: @ 853EF60 - .incbin "baserom.gba", 0x53ef60, 0xf8 - -gTitleScreenRayquazaTiles:: @ 853F058 - .incbin "graphics/title_screen/rayquaza.4bpp.lz" - - .align 2 -gUnknown_0853F83C:: @ 853F83C - .incbin "baserom.gba", 0x53f83c, 0x450 - -gTitleScreenCloudsTiles:: @ 853FC8C - .incbin "graphics/title_screen/clouds.4bpp.lz" - - .align 2 -gUnknown_0853FF70:: @ 853FF70 - .incbin "baserom.gba", 0x53ff70, 0xa8 - -gUnknown_08540018:: @ 8540018 - .incbin "baserom.gba", 0x540018, 0x18 - -gUnknown_08540030:: @ 8540030 - .incbin "baserom.gba", 0x540030, 0x18 - -gUnknown_08540048:: @ 8540048 - .incbin "baserom.gba", 0x540048, 0x90 - -gUnknown_085400D8:: @ 85400D8 - .incbin "baserom.gba", 0x5400d8, 0x18 - -gUnknown_085400F0:: @ 85400F0 - .incbin "baserom.gba", 0x5400f0, 0x10 - -gUnknown_08540100:: @ 8540100 - .incbin "baserom.gba", 0x540100, 0x24 - -gUnknown_08540124:: @ 8540124 - .incbin "baserom.gba", 0x540124, 0x18 - -gUnknown_0854013C:: @ 854013C - .incbin "baserom.gba", 0x54013c, 0x10 - -gUnknown_0854014C:: @ 854014C - .incbin "baserom.gba", 0x54014c, 0xc000 - -gUnknown_0854C14C:: @ 854C14C - .incbin "baserom.gba", 0x54c14c, 0x4 - -gUnknown_0854C150:: @ 854C150 - .incbin "baserom.gba", 0x54c150, 0xf0 - -gUnknown_0854C240:: @ 854C240 - .incbin "baserom.gba", 0x54c240, 0x10 - -gUnknown_0854C250:: @ 854C250 - .incbin "baserom.gba", 0x54c250, 0x20 - -gUnknown_0854C270:: @ 854C270 - .incbin "baserom.gba", 0x54c270, 0x20 - -gUnknown_0854C290:: @ 854C290 - .incbin "baserom.gba", 0x54c290, 0x20 - -gUnknown_0854C2B0:: @ 854C2B0 - .incbin "baserom.gba", 0x54c2b0, 0x820 - -gUnknown_0854CAD0:: @ 854CAD0 - .incbin "baserom.gba", 0x54cad0, 0x3080 - -gUnknown_0854FB50:: @ 854FB50 - .incbin "baserom.gba", 0x54fb50, 0xc - -gUnknown_0854FB5C:: @ 854FB5C - .incbin "baserom.gba", 0x54fb5c, 0x1c - -gUnknown_0854FB78:: @ 854FB78 - .incbin "baserom.gba", 0x54fb78, 0x18 - -gUnknown_0854FB90:: @ 854FB90 - .incbin "baserom.gba", 0x54fb90, 0x9c - -gUnknown_0854FC2C:: @ 854FC2C - .incbin "baserom.gba", 0x54fc2c, 0x18 - -gUnknown_0854FC44:: @ 854FC44 - .incbin "baserom.gba", 0x54fc44, 0x8 - -gUnknown_0854FC4C:: @ 854FC4C - .incbin "baserom.gba", 0x54fc4c, 0x8 - -gUnknown_0854FC54:: @ 854FC54 - .incbin "baserom.gba", 0x54fc54, 0x38 - -gUnknown_0854FC8C:: @ 854FC8C - .incbin "baserom.gba", 0x54fc8c, 0x8c - -gUnknown_0854FD18:: @ 854FD18 - .incbin "baserom.gba", 0x54fd18, 0x18 - -gUnknown_0854FD30:: @ 854FD30 - .incbin "baserom.gba", 0x54fd30, 0x8 - -gUnknown_0854FD38:: @ 854FD38 - .incbin "baserom.gba", 0x54fd38, 0x20 - -gUnknown_0854FD58:: @ 854FD58 - .incbin "baserom.gba", 0x54fd58, 0x18 - -gUnknown_0854FD70:: @ 854FD70 - .incbin "baserom.gba", 0x54fd70, 0x1c - -gUnknown_0854FD8C:: @ 854FD8C - .incbin "baserom.gba", 0x54fd8c, 0x38 - -gUnknown_0854FDC4:: @ 854FDC4 - .incbin "baserom.gba", 0x54fdc4, 0x18 - -gUnknown_0854FDDC:: @ 854FDDC - .incbin "baserom.gba", 0x54fddc, 0x8 - -gUnknown_0854FDE4:: @ 854FDE4 - .incbin "baserom.gba", 0x54fde4, 0xc - -gUnknown_0854FDF0:: @ 854FDF0 - .incbin "baserom.gba", 0x54fdf0, 0x8 - -gUnknown_0854FDF8:: @ 854FDF8 - .incbin "baserom.gba", 0x54fdf8, 0x8 - -gUnknown_0854FE00:: @ 854FE00 - .incbin "baserom.gba", 0x54fe00, 0x44 - -gUnknown_0854FE44:: @ 854FE44 - .incbin "baserom.gba", 0x54fe44, 0x18 - -gUnknown_0854FE5C:: @ 854FE5C - .incbin "baserom.gba", 0x54fe5c, 0x4 - -gUnknown_0854FE60:: @ 854FE60 - .incbin "baserom.gba", 0x54fe60, 0x4 - -gUnknown_0854FE64:: @ 854FE64 - .incbin "baserom.gba", 0x54fe64, 0x14 - -gUnknown_0854FE78:: @ 854FE78 - .incbin "baserom.gba", 0x54fe78, 0x4 - -gUnknown_0854FE7C:: @ 854FE7C - .incbin "baserom.gba", 0x54fe7c, 0xc - -gUnknown_0854FE88:: @ 854FE88 - .incbin "baserom.gba", 0x54fe88, 0x8 - -gUnknown_0854FE90:: @ 854FE90 - .incbin "baserom.gba", 0x54fe90, 0x8 - -gUnknown_0854FE98:: @ 854FE98 - .incbin "baserom.gba", 0x54fe98, 0xc - -gUnknown_0854FEA4:: @ 854FEA4 - .incbin "baserom.gba", 0x54fea4, 0x3 - -gUnknown_0854FEA7:: @ 854FEA7 - .incbin "baserom.gba", 0x54fea7, 0x5 - -gUnknown_0854FEAC:: @ 854FEAC - .incbin "baserom.gba", 0x54feac, 0x48 - -gUnknown_0854FEF4:: @ 854FEF4 - .incbin "baserom.gba", 0x54fef4, 0x48 - -gUnknown_0854FF3C:: @ 854FF3C - .incbin "baserom.gba", 0x54ff3c, 0x48 - -gUnknown_0854FF84:: @ 854FF84 - .incbin "baserom.gba", 0x54ff84, 0x48 - -gUnknown_0854FFCC:: @ 854FFCC - .incbin "baserom.gba", 0x54ffcc, 0x48 - -gUnknown_08550014:: @ 8550014 - .incbin "baserom.gba", 0x550014, 0x48 - -gUnknown_0855005C:: @ 855005C - .incbin "baserom.gba", 0x55005c, 0x48 - -gUnknown_085500A4:: @ 85500A4 - .incbin "baserom.gba", 0x5500a4, 0x4e0 - -gUnknown_08550584:: @ 8550584 - .incbin "baserom.gba", 0x550584, 0x10 - -gUnknown_08550594:: @ 8550594 - .incbin "baserom.gba", 0x550594, 0x8 - -gUnknown_0855059C:: @ 855059C - .incbin "baserom.gba", 0x55059c, 0x190 - -gUnknown_0855072C:: @ 855072C - .incbin "baserom.gba", 0x55072c, 0x10 - -gUnknown_0855073C:: @ 855073C - .incbin "baserom.gba", 0x55073c, 0x30 - -gUnknown_0855076C:: @ 855076C - .incbin "baserom.gba", 0x55076c, 0x48 - -gUnknown_085507B4:: @ 85507B4 - .incbin "baserom.gba", 0x5507b4, 0x18 - -gUnknown_085507CC:: @ 85507CC - .incbin "baserom.gba", 0x5507cc, 0x18 - -@ 85507E4 - .include "data/wild_mons.inc" - - .incbin "baserom.gba", 0x55370c, 0x188 - -gUnknown_08553894:: @ 8553894 - .incbin "baserom.gba", 0x553894, 0x180 - -gUnknown_08553A14:: @ 8553A14 - .incbin "baserom.gba", 0x553a14, 0x64 - -gUnknown_08553A78:: @ 8553A78 - .incbin "baserom.gba", 0x553a78, 0x4 - -gUnknown_08553A7C:: @ 8553A7C - .incbin "baserom.gba", 0x553a7c, 0x14 - - .align 2 -gNewGameBirchPic:: @ 8553A90 - .incbin "graphics/birch_speech/birch.4bpp" - - .incbin "baserom.gba", 0x554290, 0x66c0 - - .align 2 -gNewGameBirchPalette:: @ 855A950 - .incbin "graphics/birch_speech/birch.gbapal" - - .align 2 - .incbin "baserom.gba", 0x55a970, 0x20 - - .align 2 -gFieldEffectObjectPalette4:: @ 855A990 - .incbin "graphics/map_objects/palettes/field_effect_object_palette_04.gbapal" - - .incbin "baserom.gba", 0x55a9b0, 0x480 - - .align 2 -gFieldEffectObjectPalette5:: @ 855AE30 - .incbin "graphics/map_objects/palettes/field_effect_object_palette_05.gbapal" - -gUnknown_0855AE50:: @ 855AE50 - .incbin "baserom.gba", 0x55ae50, 0x200 - -gUnknown_0855B050:: @ 855B050 - .incbin "baserom.gba", 0x55b050, 0x20 - -gUnknown_0855B070:: @ 855B070 - .incbin "baserom.gba", 0x55b070, 0x280 - -gUnknown_0855B2F0:: @ 855B2F0 - .incbin "baserom.gba", 0x55b2f0, 0x80 - -gUnknown_0855B370:: @ 855B370 - .incbin "baserom.gba", 0x55b370, 0x20 - -gUnknown_0855B390:: @ 855B390 - .incbin "baserom.gba", 0x55b390, 0x280 - -gUnknown_0855B610:: @ 855B610 - .incbin "baserom.gba", 0x55b610, 0x20 - -gUnknown_0855B630:: @ 855B630 - .incbin "baserom.gba", 0x55b630, 0xbc0 - -gUnknown_0855C1F0:: @ 855C1F0 - .incbin "baserom.gba", 0x55c1f0, 0x20 - - .align 2 -@ TODO: something else uses these too -gNewGameBirchOamAttributes:: @ 855C210 - .4byte OAM_SIZE_64x64 - .2byte 0 - - .align 2 - .incbin "baserom.gba", 0x55c218, 0x10 - - .align 2 -gNewGameBirchPicTable:: @ 855C228 - obj_tiles gNewGameBirchPic, 0x800 - - .align 2 -gNewGameBirchObjectPaletteInfo:: @ 855C230 - obj_pal gNewGameBirchPalette, 0x1006 - - .align 2 -gNewGameBirchImageAnim:: @ 855C238 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gNewGameBirchImageAnimTable:: @ 855C240 - .4byte gNewGameBirchImageAnim - - .align 2 -gNewGameBirchObjectTemplate:: @ 855C244 - .2byte 0xFFFF @ tiles tag - .2byte 0x1006 @ palette tag - .4byte gNewGameBirchOamAttributes - .4byte gNewGameBirchImageAnimTable - .4byte gNewGameBirchPicTable - .4byte gDummyObjectRotScalAnimTable - .4byte DummyObjectCallback - - .align 2 -gFieldEffectObjectPaletteInfo4:: @ 855C25C - obj_pal gFieldEffectObjectPalette4, 0x1007 - - .align 2 -gFieldEffectObjectPaletteInfo5:: @ 855C264 - obj_pal gFieldEffectObjectPalette5, 0x1010 - - .incbin "baserom.gba", 0x55c26c, 0x40 - -gUnknown_0855C2AC:: @ 855C2AC - .incbin "baserom.gba", 0x55c2ac, 0x18 - -gUnknown_0855C2C4:: @ 855C2C4 - .incbin "baserom.gba", 0x55c2c4, 0x40 - -gUnknown_0855C304:: @ 855C304 - .incbin "baserom.gba", 0x55c304, 0x18 - -gUnknown_0855C31C:: @ 855C31C - .incbin "baserom.gba", 0x55c31c, 0x18 - -gUnknown_0855C334:: @ 855C334 - .incbin "baserom.gba", 0x55c334, 0x18 - -gUnknown_0855C34C:: @ 855C34C - .incbin "baserom.gba", 0x55c34c, 0x18 - -gUnknown_0855C364:: @ 855C364 - .incbin "baserom.gba", 0x55c364, 0x10 - -gUnknown_0855C374:: @ 855C374 - .incbin "baserom.gba", 0x55c374, 0x10 - -gUnknown_0855C384:: @ 855C384 - .incbin "baserom.gba", 0x55c384, 0x20 - -gUnknown_0855C3A4:: @ 855C3A4 - .incbin "baserom.gba", 0x55c3a4, 0x18 - -gUnknown_0855C3BC:: @ 855C3BC - .incbin "baserom.gba", 0x55c3bc, 0x4 - -gUnknown_0855C3C0:: @ 855C3C0 - .incbin "baserom.gba", 0x55c3c0, 0x4 - -gUnknown_0855C3C4:: @ 855C3C4 - .incbin "baserom.gba", 0x55c3c4, 0x4 - -gUnknown_0855C3C8:: @ 855C3C8 - .incbin "baserom.gba", 0x55c3c8, 0x1c - -gUnknown_0855C3E4:: @ 855C3E4 - .incbin "baserom.gba", 0x55c3e4, 0x18 - -gUnknown_0855C3FC:: @ 855C3FC - .incbin "baserom.gba", 0x55c3fc, 0x1c - -gUnknown_0855C418:: @ 855C418 - .incbin "baserom.gba", 0x55c418, 0x14 - -gUnknown_0855C42C:: @ 855C42C - .incbin "baserom.gba", 0x55c42c, 0xc - -gUnknown_0855C438:: @ 855C438 - .incbin "baserom.gba", 0x55c438, 0x18 - -gUnknown_0855C450:: @ 855C450 - .incbin "baserom.gba", 0x55c450, 0x10 - -gUnknown_0855C460:: @ 855C460 - .incbin "baserom.gba", 0x55c460, 0x14 - -gUnknown_0855C474:: @ 855C474 - .incbin "baserom.gba", 0x55c474, 0x8 - -gUnknown_0855C47C:: @ 855C47C - .incbin "baserom.gba", 0x55c47c, 0x8 - -gUnknown_0855C484:: @ 855C484 - .incbin "baserom.gba", 0x55c484, 0x8 - -gUnknown_0855C48C:: @ 855C48C - .incbin "baserom.gba", 0x55c48c, 0x10 - -gUnknown_0855C49C:: @ 855C49C - .incbin "baserom.gba", 0x55c49c, 0xc - -gUnknown_0855C4A8:: @ 855C4A8 - .incbin "baserom.gba", 0x55c4a8, 0x1c - -gUnknown_0855C4C4:: @ 855C4C4 - .incbin "baserom.gba", 0x55c4c4, 0x1c - -gUnknown_0855C4E0:: @ 855C4E0 - .incbin "baserom.gba", 0x55c4e0, 0x14 - -gUnknown_0855C4F4:: @ 855C4F4 - .incbin "baserom.gba", 0x55c4f4, 0x54 - -gUnknown_0855C548:: @ 855C548 - .incbin "baserom.gba", 0x55c548, 0x8 - -gUnknown_0855C550:: @ 855C550 - .incbin "baserom.gba", 0x55c550, 0x1c - -gUnknown_0855C56C:: @ 855C56C - .incbin "baserom.gba", 0x55c56c, 0x24 - -gUnknown_0855C590:: @ 855C590 - .incbin "baserom.gba", 0x55c590, 0x5c - -gUnknown_0855C5EC:: @ 855C5EC - .incbin "baserom.gba", 0x55c5ec, 0x18 - -gUnknown_0855C604:: @ 855C604 - .incbin "baserom.gba", 0x55c604, 0x60 - -gUnknown_0855C664:: @ 855C664 - .incbin "baserom.gba", 0x55c664, 0x1c - -gUnknown_0855C680:: @ 855C680 - .incbin "baserom.gba", 0x55c680, 0x18 - -gUnknown_0855C698:: @ 855C698 - .incbin "baserom.gba", 0x55c698, 0x8 - -gUnknown_0855C6A0:: @ 855C6A0 - .incbin "baserom.gba", 0x55c6a0, 0x4 - -gUnknown_0855C6A4:: @ 855C6A4 - .incbin "baserom.gba", 0x55c6a4, 0x336 - -gUnknown_0855C9DA:: @ 855C9DA - .incbin "baserom.gba", 0x55c9da, 0x304 - -gUnknown_0855CCDE:: @ 855CCDE - .incbin "baserom.gba", 0x55ccde, 0x4b6 - -gUnknown_0855D194:: @ 855D194 - .incbin "baserom.gba", 0x55d194, 0x18 - -gUnknown_0855D1AC:: @ 855D1AC - .incbin "baserom.gba", 0x55d1ac, 0x18 - -gUnknown_0855D1C4:: @ 855D1C4 - .incbin "baserom.gba", 0x55d1c4, 0x18 - -gUnknown_0855D1DC:: @ 855D1DC - .incbin "baserom.gba", 0x55d1dc, 0x18 - -gUnknown_0855D1F4:: @ 855D1F4 - .incbin "baserom.gba", 0x55d1f4, 0x18 - -gUnknown_0855D20C:: @ 855D20C - .incbin "baserom.gba", 0x55d20c, 0x18 - -gUnknown_0855D224:: @ 855D224 - .incbin "baserom.gba", 0x55d224, 0x18 - -gUnknown_0855D23C:: @ 855D23C - .incbin "baserom.gba", 0x55d23c, 0x18 - -gUnknown_0855D254:: @ 855D254 - .incbin "baserom.gba", 0x55d254, 0x18 - -gUnknown_0855D26C:: @ 855D26C - .incbin "baserom.gba", 0x55d26c, 0x10 - -gUnknown_0855D27C:: @ 855D27C - .incbin "baserom.gba", 0x55d27c, 0x10 - -gUnknown_0855D28C:: @ 855D28C - .incbin "baserom.gba", 0x55d28c, 0x5 - -gUnknown_0855D291:: @ 855D291 - .incbin "baserom.gba", 0x55d291, 0x7 - -gUnknown_0855D298:: @ 855D298 - .incbin "baserom.gba", 0x55d298, 0x10 - -gUnknown_0855D2A8:: @ 855D2A8 - .incbin "baserom.gba", 0x55d2a8, 0x10 - -gUnknown_0855D2B8:: @ 855D2B8 - .incbin "baserom.gba", 0x55d2b8, 0x6 - -gUnknown_0855D2BE:: @ 855D2BE - .incbin "baserom.gba", 0x55d2be, 0x40 - -gUnknown_0855D2FE:: @ 855D2FE - .incbin "baserom.gba", 0x55d2fe, 0xe - -gUnknown_0855D30C:: @ 855D30C - .string "$" - -@ 855D30D - .include "data/text/pokedex_text.inc" - -@ 856B5B0 - .include "data/pokedex_entries.inc" - -gUnknown_0856E610:: @ 856E610 - .incbin "baserom.gba", 0x56e610, 0x20 - -gUnknown_0856E630:: @ 856E630 - .incbin "baserom.gba", 0x56e630, 0x10 - -gUnknown_0856E640:: @ 856E640 - .incbin "baserom.gba", 0x56e640, 0x28 - -gUnknown_0856E668:: @ 856E668 - .incbin "baserom.gba", 0x56e668, 0x8 - -gUnknown_0856E670:: @ 856E670 - .incbin "baserom.gba", 0x56e670, 0x18 - -gUnknown_0856E688:: @ 856E688 - .incbin "baserom.gba", 0x56e688, 0xc - -@ 856E694 - .include "data/graphics/pokemon/mon_footprint_table.inc" - -gUnknown_0856ED08:: @ 856ED08 - .incbin "baserom.gba", 0x56ed08, 0x28 - -gUnknown_0856ED30:: @ 856ED30 - .incbin "baserom.gba", 0x56ed30, 0x18 - -gUnknown_0856ED48:: @ 856ED48 - .incbin "baserom.gba", 0x56ed48, 0x54 - -gUnknown_0856ED9C:: @ 856ED9C - .incbin "baserom.gba", 0x56ed9c, 0x1c - -gUnknown_0856EDB8:: @ 856EDB8 - .incbin "baserom.gba", 0x56edb8, 0x1c - -gUnknown_0856EDD4:: @ 856EDD4 - .incbin "baserom.gba", 0x56edd4, 0x1c - -gUnknown_0856EDF0:: @ 856EDF0 - .incbin "baserom.gba", 0x56edf0, 0x1c - -gUnknown_0856EE0C:: @ 856EE0C - .incbin "baserom.gba", 0x56ee0c, 0x18 - -gUnknown_0856EE24:: @ 856EE24 - .incbin "baserom.gba", 0x56ee24, 0x38 - -gUnknown_0856EE5C:: @ 856EE5C - .incbin "baserom.gba", 0x56ee5c, 0x58 - -gUnknown_0856EEB4:: @ 856EEB4 - .incbin "baserom.gba", 0x56eeb4, 0x60 - -gUnknown_0856EF14:: @ 856EF14 - .incbin "baserom.gba", 0x56ef14, 0x98 - -gUnknown_0856EFAC:: @ 856EFAC - .incbin "baserom.gba", 0x56efac, 0x2 - -gUnknown_0856EFAE:: @ 856EFAE - .incbin "baserom.gba", 0x56efae, 0x6 - -gUnknown_0856EFB4:: @ 856EFB4 - .incbin "baserom.gba", 0x56efb4, 0x14 - -gUnknown_0856EFC8:: @ 856EFC8 - .incbin "baserom.gba", 0x56efc8, 0x30 - -gUnknown_0856EFF8:: @ 856EFF8 - .incbin "baserom.gba", 0x56eff8, 0x10 - -gUnknown_0856F008:: @ 856F008 - .incbin "baserom.gba", 0x56f008, 0x10 - -gUnknown_0856F018:: @ 856F018 - .incbin "baserom.gba", 0x56f018, 0x494 - -gUnknown_0856F4AC:: @ 856F4AC - .incbin "baserom.gba", 0x56f4ac, 0x20 - -gUnknown_0856F4CC:: @ 856F4CC - .incbin "baserom.gba", 0x56f4cc, 0x20 - -gUnknown_0856F4EC:: @ 856F4EC - .incbin "baserom.gba", 0x56f4ec, 0x20 - -gUnknown_0856F50C:: @ 856F50C - .incbin "baserom.gba", 0x56f50c, 0x20 - -gUnknown_0856F52C:: @ 856F52C - .incbin "baserom.gba", 0x56f52c, 0x20 - -gUnknown_0856F54C:: @ 856F54C - .incbin "baserom.gba", 0x56f54c, 0x20 - -gUnknown_0856F56C:: @ 856F56C - .incbin "baserom.gba", 0x56f56c, 0x20 - -gUnknown_0856F58C:: @ 856F58C - .incbin "baserom.gba", 0x56f58c, 0x20 - -gUnknown_0856F5AC:: @ 856F5AC - .incbin "baserom.gba", 0x56f5ac, 0x20 - -gUnknown_0856F5CC:: @ 856F5CC - .incbin "baserom.gba", 0x56f5cc, 0x248 - -gUnknown_0856F814:: @ 856F814 - .incbin "baserom.gba", 0x56f814, 0x2a0 - -gUnknown_0856FAB4:: @ 856FAB4 - .incbin "baserom.gba", 0x56fab4, 0x10 - -gUnknown_0856FAC4:: @ 856FAC4 - .incbin "baserom.gba", 0x56fac4, 0x20 - -gUnknown_0856FAE4:: @ 856FAE4 - .incbin "baserom.gba", 0x56fae4, 0x14 - -gUnknown_0856FAF8:: @ 856FAF8 - .incbin "baserom.gba", 0x56faf8, 0x14 - -gUnknown_0856FB0C:: @ 856FB0C - .incbin "baserom.gba", 0x56fb0c, 0x3 - -gUnknown_0856FB0F:: @ 856FB0F - .incbin "baserom.gba", 0x56fb0f, 0x9 - -gUnknown_0856FB18:: @ 856FB18 - .incbin "baserom.gba", 0x56fb18, 0x8 - -gUnknown_0856FB20:: @ 856FB20 - .incbin "baserom.gba", 0x56fb20, 0x8 - -gUnknown_0856FB28:: @ 856FB28 - .incbin "baserom.gba", 0x56fb28, 0x18 - -gUnknown_0856FB40:: @ 856FB40 - .incbin "baserom.gba", 0x56fb40, 0x8 - -gUnknown_0856FB48:: @ 856FB48 - .incbin "baserom.gba", 0x56fb48, 0x2 - -gUnknown_0856FB4A:: @ 856FB4A - .incbin "baserom.gba", 0x56fb4a, 0x2 - -gUnknown_0856FB4C:: @ 856FB4C - .incbin "baserom.gba", 0x56fb4c, 0x9 - -gUnknown_0856FB55:: @ 856FB55 - .incbin "baserom.gba", 0x56fb55, 0x2 - -gUnknown_0856FB57:: @ 856FB57 - .incbin "baserom.gba", 0x56fb57, 0x5 - -gUnknown_0856FB5C:: @ 856FB5C - .incbin "baserom.gba", 0x56fb5c, 0xc - -gUnknown_0856FB68:: @ 856FB68 - .incbin "baserom.gba", 0x56fb68, 0x6 - -gUnknown_0856FB6E:: @ 856FB6E - .incbin "baserom.gba", 0x56fb6e, 0x6 - -gUnknown_0856FB74:: @ 856FB74 - .incbin "baserom.gba", 0x56fb74, 0x4 - -gUnknown_0856FB78:: @ 856FB78 - .incbin "baserom.gba", 0x56fb78, 0x44 - -gUnknown_0856FBBC:: @ 856FBBC - .incbin "baserom.gba", 0x56fbbc, 0x1244 - -gUnknown_08570E00:: @ 8570E00 - .incbin "baserom.gba", 0x570e00, 0x260 - -gUnknown_08571060:: @ 8571060 - .incbin "baserom.gba", 0x571060, 0x260 - -gUnknown_085712C0:: @ 85712C0 - .incbin "baserom.gba", 0x5712c0, 0x38 - -gUnknown_085712F8:: @ 85712F8 - .incbin "baserom.gba", 0x5712f8, 0xe8 - -gUnknown_085713E0:: @ 85713E0 - .incbin "baserom.gba", 0x5713e0, 0x8 - -gUnknown_085713E8:: @ 85713E8 - .incbin "baserom.gba", 0x5713e8, 0xc - -gUnknown_085713F4:: @ 85713F4 - .incbin "baserom.gba", 0x5713f4, 0xc - -gUnknown_08571400:: @ 8571400 - .incbin "baserom.gba", 0x571400, 0x28 - -gUnknown_08571428:: @ 8571428 - .incbin "baserom.gba", 0x571428, 0x20 - -gUnknown_08571448:: @ 8571448 - .incbin "baserom.gba", 0x571448, 0x3 - -gUnknown_0857144B:: @ 857144B - .incbin "baserom.gba", 0x57144b, 0x3 - -gUnknown_0857144E:: @ 857144E - .incbin "baserom.gba", 0x57144e, 0x6 - -gUnknown_08571454:: @ 8571454 - .incbin "baserom.gba", 0x571454, 0x68 - -gUnknown_085714BC:: @ 85714BC - .incbin "baserom.gba", 0x5714bc, 0x18 - -gUnknown_085714D4:: @ 85714D4 - .incbin "baserom.gba", 0x5714d4, 0x10 - -gUnknown_085714E4:: @ 85714E4 - .incbin "baserom.gba", 0x5714e4, 0xd0 - -gUnknown_085715B4:: @ 85715B4 - .incbin "baserom.gba", 0x5715b4, 0x30 - -gUnknown_085715E4:: @ 85715E4 - .incbin "baserom.gba", 0x5715e4, 0x18 - -gUnknown_085715FC:: @ 85715FC - .incbin "baserom.gba", 0x5715fc, 0x18 - -gUnknown_08571614:: @ 8571614 - .incbin "baserom.gba", 0x571614, 0x3c - -gUnknown_08571650:: @ 8571650 - .incbin "baserom.gba", 0x571650, 0x70 - -gUnknown_085716C0:: @ 85716C0 - .incbin "baserom.gba", 0x5716c0, 0x28 - -gUnknown_085716E8:: @ 85716E8 - .incbin "baserom.gba", 0x5716e8, 0x28 - -gUnknown_08571710:: @ 8571710 - .incbin "baserom.gba", 0x571710, 0x24 - -gUnknown_08571734:: @ 8571734 - .incbin "baserom.gba", 0x571734, 0x3 - -gUnknown_08571737:: @ 8571737 - .incbin "baserom.gba", 0x571737, 0x5 - -gUnknown_0857173C:: @ 857173C - .incbin "baserom.gba", 0x57173c, 0x20 - -gUnknown_0857175C:: @ 857175C - .incbin "baserom.gba", 0x57175c, 0x800 - -gUnknown_08571F5C:: @ 8571F5C - .incbin "baserom.gba", 0x571f5c, 0x180 - -gUnknown_085720DC:: @ 85720DC - .incbin "baserom.gba", 0x5720dc, 0x98 - -gUnknown_08572174:: @ 8572174 - .incbin "baserom.gba", 0x572174, 0x12c - -gUnknown_085722A0:: @ 85722A0 - .incbin "baserom.gba", 0x5722a0, 0xfc - -gUnknown_0857239C:: @ 857239C - .incbin "baserom.gba", 0x57239c, 0x40 - -gUnknown_085723DC:: @ 85723DC - .incbin "baserom.gba", 0x5723dc, 0x20 - -gUnknown_085723FC:: @ 85723FC - .incbin "baserom.gba", 0x5723fc, 0x20 - -gUnknown_0857241C:: @ 857241C - .incbin "baserom.gba", 0x57241c, 0x20 - -gUnknown_0857243C:: @ 857243C - .incbin "baserom.gba", 0x57243c, 0x20 - -gUnknown_0857245C:: @ 857245C - .incbin "baserom.gba", 0x57245c, 0x48 - -gUnknown_085724A4:: @ 85724A4 - .incbin "baserom.gba", 0x5724a4, 0x18 - -gUnknown_085724BC:: @ 85724BC - .incbin "baserom.gba", 0x5724bc, 0x238 - -gUnknown_085726F4:: @ 85726F4 - .incbin "baserom.gba", 0x5726f4, 0x20 - -gUnknown_08572714:: @ 8572714 - .incbin "baserom.gba", 0x572714, 0x20 - -gUnknown_08572734:: @ 8572734 - .incbin "baserom.gba", 0x572734, 0x10 - -gUnknown_08572744:: @ 8572744 - .incbin "baserom.gba", 0x572744, 0x8 - -gUnknown_0857274C:: @ 857274C - .incbin "baserom.gba", 0x57274c, 0x8 - -gUnknown_08572754:: @ 8572754 - .incbin "baserom.gba", 0x572754, 0x18 - -gUnknown_0857276C:: @ 857276C - .incbin "baserom.gba", 0x57276c, 0xf8 - -gUnknown_08572864:: @ 8572864 - .incbin "baserom.gba", 0x572864, 0x58 - -gUnknown_085728BC:: @ 85728BC - .incbin "baserom.gba", 0x5728bc, 0x18 - -gUnknown_085728D4:: @ 85728D4 - .incbin "baserom.gba", 0x5728d4, 0x48 - -gUnknown_0857291C:: @ 857291C - .incbin "baserom.gba", 0x57291c, 0x4c58 - -gUnknown_08577574:: @ 8577574 - .incbin "baserom.gba", 0x577574, 0x44 - -gUnknown_085775B8:: @ 85775B8 - .incbin "baserom.gba", 0x5775b8, 0x398c - -gUnknown_0857AF44:: @ 857AF44 - .incbin "baserom.gba", 0x57af44, 0xc0 - -gUnknown_0857B004:: @ 857B004 - .incbin "baserom.gba", 0x57b004, 0x7c - -gUnknown_0857B080:: @ 857B080 - .incbin "baserom.gba", 0x57b080, 0x28 - -gUnknown_0857B0A8:: @ 857B0A8 - .incbin "baserom.gba", 0x57b0a8, 0x38 - -gUnknown_0857B0E0:: @ 857B0E0 - .incbin "baserom.gba", 0x57b0e0, 0x8b8 - -gUnknown_0857B998:: @ 857B998 - .incbin "baserom.gba", 0x57b998, 0xc - -gUnknown_0857B9A4:: @ 857B9A4 - .incbin "baserom.gba", 0x57b9a4, 0x18 - -gUnknown_0857B9BC:: @ 857B9BC - .incbin "baserom.gba", 0x57b9bc, 0x28 - -gUnknown_0857B9E4:: @ 857B9E4 - .incbin "baserom.gba", 0x57b9e4, 0x18 - -gUnknown_0857B9FC:: @ 857B9FC - .incbin "baserom.gba", 0x57b9fc, 0x54 - -gUnknown_0857BA50:: @ 857BA50 - .incbin "baserom.gba", 0x57ba50, 0x18 - -gUnknown_0857BA68:: @ 857BA68 - .incbin "baserom.gba", 0x57ba68, 0x18 - -gUnknown_0857BA80:: @ 857BA80 - .incbin "baserom.gba", 0x57ba80, 0x9c - -gUnknown_0857BB1C:: @ 857BB1C - .incbin "baserom.gba", 0x57bb1c, 0x8 - -gUnknown_0857BB24:: @ 857BB24 - .incbin "baserom.gba", 0x57bb24, 0x14c - -gUnknown_0857BC70:: @ 857BC70 - .incbin "baserom.gba", 0x57bc70, 0x18 - -gUnknown_0857BC88:: @ 857BC88 - .incbin "baserom.gba", 0x57bc88, 0x20 - -@ 857BCA8 - .include "data/graphics/pokemon/mon_icon_table.inc" - -@ 857C388 - .include "data/graphics/pokemon/mon_icon_palette_indices.inc" - -@ 857C540 - .include "data/graphics/pokemon/mon_icon_palette_table.inc" - -gUnknown_0857C570:: @ 857C570 - .incbin "baserom.gba", 0x57c570, 0x44 - -gUnknown_0857C5B4:: @ 857C5B4 - .incbin "baserom.gba", 0x57c5b4, 0x34 - -gUnknown_0857C5E8:: @ 857C5E8 - .incbin "baserom.gba", 0x57c5e8, 0x8 - -gUnknown_0857C5F0:: @ 857C5F0 - .incbin "baserom.gba", 0x57c5f0, 0x18 - -gUnknown_0857C608:: @ 857C608 - .incbin "baserom.gba", 0x57c608, 0x2 - -gUnknown_0857C60A:: @ 857C60A - .incbin "baserom.gba", 0x57c60a, 0x5a - - .align 2 -gFieldEffectObjectPaletteInfo6:: @ 857C664 - obj_pal gFieldEffectObjectPalette6, 0x1000 - -gUnknown_0857C66C:: @ 857C66C - .incbin "baserom.gba", 0x57c66c, 0x18 - -gUnknown_0857C684:: @ 857C684 - .incbin "baserom.gba", 0x57c684, 0x1680 - -gUnknown_0857DD04:: @ 857DD04 - .incbin "baserom.gba", 0x57dd04, 0x1680 - -gUnknown_0857F384:: @ 857F384 - .incbin "baserom.gba", 0x57f384, 0xc0 - -gUnknown_0857F444:: @ 857F444 - .incbin "baserom.gba", 0x57f444, 0x20 - -gUnknown_0857F464:: @ 857F464 - .incbin "baserom.gba", 0x57f464, 0xe0 - -gUnknown_0857F544:: @ 857F544 - .incbin "baserom.gba", 0x57f544, 0x5f0 - -gUnknown_0857FB34:: @ 857FB34 - .incbin "baserom.gba", 0x57fb34, 0x8 - -gUnknown_0857FB3C:: @ 857FB3C - .incbin "baserom.gba", 0x57fb3c, 0x8 - -gUnknown_0857FB44:: @ 857FB44 - .incbin "baserom.gba", 0x57fb44, 0x8 - -gUnknown_0857FB4C:: @ 857FB4C - .incbin "baserom.gba", 0x57fb4c, 0x4c - -gUnknown_0857FB98:: @ 857FB98 - .incbin "baserom.gba", 0x57fb98, 0x4 - -gUnknown_0857FB9C:: @ 857FB9C - .incbin "baserom.gba", 0x57fb9c, 0x4 - -gUnknown_0857FBA0:: @ 857FBA0 - .incbin "baserom.gba", 0x57fba0, 0x8 - -gUnknown_0857FBA8:: @ 857FBA8 - .incbin "baserom.gba", 0x57fba8, 0x8 - -gUnknown_0857FBB0:: @ 857FBB0 - .incbin "baserom.gba", 0x57fbb0, 0x3c - -gUnknown_0857FBEC:: @ 857FBEC - .incbin "baserom.gba", 0x57fbec, 0x90 - -gUnknown_0857FC7C:: @ 857FC7C - .incbin "baserom.gba", 0x57fc7c, 0x18 - -@ 857FC94 - .include "data/graphics/berries/berry_pic_table.inc" - -gUnknown_0857FDEC:: @ 857FDEC - .incbin "baserom.gba", 0x57fdec, 0x8 - -gUnknown_0857FDF4:: @ 857FDF4 - .incbin "baserom.gba", 0x57fdf4, 0x1c - -gUnknown_0857FE10:: @ 857FE10 - .incbin "baserom.gba", 0x57fe10, 0x90 - -@ 857FEA0 - .include "data/text/item_descriptions.inc" - -@ 85839A0 - .include "data/items.inc" - -gUnknown_08587A6C:: @ 8587A6C - .incbin "baserom.gba", 0x587a6c, 0x4 - -gUnknown_08587A70:: @ 8587A70 - .incbin "baserom.gba", 0x587a70, 0x4 - -gUnknown_08587A74:: @ 8587A74 - .incbin "baserom.gba", 0x587a74, 0x5c - -gUnknown_08587AD0:: @ 8587AD0 - .incbin "baserom.gba", 0x587ad0, 0x18 - -gUnknown_08587AE8:: @ 8587AE8 - .incbin "baserom.gba", 0x587ae8, 0x20 - -gUnknown_08587B08:: @ 8587B08 - .incbin "baserom.gba", 0x587b08, 0x10 - -gUnknown_08587B18:: @ 8587B18 - .incbin "baserom.gba", 0x587b18, 0x68 - -gUnknown_08587B80:: @ 8587B80 - .incbin "baserom.gba", 0x587b80, 0x30 - -gUnknown_08587BB0:: @ 8587BB0 - .incbin "baserom.gba", 0x587bb0, 0x8 - -gUnknown_08587BB8:: @ 8587BB8 - .incbin "baserom.gba", 0x587bb8, 0x10 - -gUnknown_08587BC8:: @ 8587BC8 - .incbin "baserom.gba", 0x587bc8, 0x20 - -gUnknown_08587BE8:: @ 8587BE8 - .incbin "baserom.gba", 0x587be8, 0x18 - -gUnknown_08587C00:: @ 8587C00 - .incbin "baserom.gba", 0x587c00, 0x8 - -gUnknown_08587C08:: @ 8587C08 - .incbin "baserom.gba", 0x587c08, 0x8 - -gUnknown_08587C10:: @ 8587C10 - .incbin "baserom.gba", 0x587c10, 0x8 - -gUnknown_08587C18:: @ 8587C18 - .incbin "baserom.gba", 0x587c18, 0x18 - -gUnknown_08587C30:: @ 8587C30 - .incbin "baserom.gba", 0x587c30, 0x20 - -@ 8587C50 - .include "data/text/contest_text_pointers.inc" - -@ 8587D5C - .incbin "baserom.gba", 0x587d5c, 0x34 - -gUnknown_08587D90:: @ 8587D90 - .incbin "baserom.gba", 0x587d90, 0x80 - -gUnknown_08587E10:: @ 8587E10 - .incbin "baserom.gba", 0x587e10, 0xf8 - -gUnknown_08587F08:: @ 8587F08 - .incbin "baserom.gba", 0x587f08, 0x14 - -gUnknown_08587F1C:: @ 8587F1C - .incbin "baserom.gba", 0x587f1c, 0x18 - -gUnknown_08587F34:: @ 8587F34 - .incbin "baserom.gba", 0x587f34, 0x10 - -gUnknown_08587F44:: @ 8587F44 - .incbin "baserom.gba", 0x587f44, 0x60 - -gUnknown_08587FA4:: @ 8587FA4 - .incbin "baserom.gba", 0x587fa4, 0x100 - -gUnknown_085880A4:: @ 85880A4 - .incbin "baserom.gba", 0x5880a4, 0x1740 - -gUnknown_085897E4:: @ 85897E4 - .incbin "baserom.gba", 0x5897e4, 0xc0 - -gUnknown_085898A4:: @ 85898A4 - .incbin "baserom.gba", 0x5898a4, 0x60 - -gUnknown_08589904:: @ 8589904 - .incbin "baserom.gba", 0x589904, 0x20 - -gUnknown_08589924:: @ 8589924 - .incbin "baserom.gba", 0x589924, 0x68 - -gUnknown_0858998C:: @ 858998C - .incbin "baserom.gba", 0x58998c, 0x60 - -gUnknown_085899EC:: @ 85899EC - .incbin "baserom.gba", 0x5899ec, 0x1c - -gUnknown_08589A08:: @ 8589A08 - .incbin "baserom.gba", 0x589a08, 0x8 - -gUnknown_08589A10:: @ 8589A10 - .incbin "baserom.gba", 0x589a10, 0x18 - -gUnknown_08589A28:: @ 8589A28 - .incbin "baserom.gba", 0x589a28, 0x10 - -gUnknown_08589A38:: @ 8589A38 - .incbin "baserom.gba", 0x589a38, 0x10 - -gUnknown_08589A48:: @ 8589A48 - .incbin "baserom.gba", 0x589a48, 0x18 - -gUnknown_08589A60:: @ 8589A60 - .incbin "baserom.gba", 0x589a60, 0x10 - -gUnknown_08589A70:: @ 8589A70 - .incbin "baserom.gba", 0x589a70, 0x38 - -gUnknown_08589AA8:: @ 8589AA8 - .incbin "baserom.gba", 0x589aa8, 0x8 - -gUnknown_08589AB0:: @ 8589AB0 - .incbin "baserom.gba", 0x589ab0, 0x3 - -gUnknown_08589AB3:: @ 8589AB3 - .incbin "baserom.gba", 0x589ab3, 0x7 - -gUnknown_08589ABA:: @ 8589ABA - .incbin "baserom.gba", 0x589aba, 0x6 - -gUnknown_08589AC0:: @ 8589AC0 - .incbin "baserom.gba", 0x589ac0, 0x6 - -gUnknown_08589AC6:: @ 8589AC6 - .incbin "baserom.gba", 0x589ac6, 0x6 - -gUnknown_08589ACC:: @ 8589ACC - .incbin "baserom.gba", 0x589acc, 0x6 - -gUnknown_08589AD2:: @ 8589AD2 - .incbin "baserom.gba", 0x589ad2, 0x6 - -gUnknown_08589AD8:: @ 8589AD8 - .incbin "baserom.gba", 0x589ad8, 0x6 - -gUnknown_08589ADE:: @ 8589ADE - .incbin "baserom.gba", 0x589ade, 0x6 - -@ 8589AE4 - .include "data/text/berry_descriptions.inc" - -@ 858A670 - .include "data/berries.inc" - -gUnknown_0858AB24:: @ 858AB24 - .incbin "baserom.gba", 0x58ab24, 0xac - -gUnknown_0858ABD0:: @ 858ABD0 - .incbin "baserom.gba", 0x58abd0, 0xb90 - -gUnknown_0858B760:: @ 858B760 - .incbin "baserom.gba", 0x58b760, 0x390 - -gUnknown_0858BAF0:: @ 858BAF0 - .incbin "baserom.gba", 0x58baf0, 0x78 - -gUnknown_0858BB68:: @ 858BB68 - .incbin "baserom.gba", 0x58bb68, 0x8 - -gUnknown_0858BB70:: @ 858BB70 - .incbin "baserom.gba", 0x58bb70, 0x10 - -gUnknown_0858BB80:: @ 858BB80 - .incbin "baserom.gba", 0x58bb80, 0x1c - -gUnknown_0858BB9C:: @ 858BB9C - .incbin "baserom.gba", 0x58bb9c, 0x10 - -gUnknown_0858BBAC:: @ 858BBAC - .incbin "baserom.gba", 0x58bbac, 0x10 - -gUnknown_0858BBBC:: @ 858BBBC - .incbin "baserom.gba", 0x58bbbc, 0x10 - -gUnknown_0858BBCC:: @ 858BBCC - .incbin "baserom.gba", 0x58bbcc, 0x14 - -gUnknown_0858BBE0:: @ 858BBE0 - .incbin "baserom.gba", 0x58bbe0, 0xc - -gUnknown_0858BBEC:: @ 858BBEC - .incbin "baserom.gba", 0x58bbec, 0x18c - -gUnknown_0858BD78:: @ 858BD78 - .incbin "baserom.gba", 0x58bd78, 0x40 - -gUnknown_0858BDB8:: @ 858BDB8 - .incbin "baserom.gba", 0x58bdb8, 0x10 - -gUnknown_0858BDC8:: @ 858BDC8 - .incbin "baserom.gba", 0x58bdc8, 0x38 - -gUnknown_0858BE00:: @ 858BE00 - .incbin "baserom.gba", 0x58be00, 0x10 - -gUnknown_0858BE10:: @ 858BE10 - .incbin "baserom.gba", 0x58be10, 0x30 - -gUnknown_0858BE40:: @ 858BE40 - .incbin "baserom.gba", 0x58be40, 0x60 - -gUnknown_0858BEA0:: @ 858BEA0 - .incbin "baserom.gba", 0x58bea0, 0x3 - -gUnknown_0858BEA3:: @ 858BEA3 - .incbin "baserom.gba", 0x58bea3, 0x18 - -gUnknown_0858BEBB:: @ 858BEBB - .incbin "baserom.gba", 0x58bebb, 0x3 - -gUnknown_0858BEBE:: @ 858BEBE - .incbin "baserom.gba", 0x58bebe, 0x3 - -gUnknown_0858BEC1:: @ 858BEC1 - .incbin "baserom.gba", 0x58bec1, 0x3 - -gUnknown_0858BEC4:: @ 858BEC4 - .incbin "baserom.gba", 0x58bec4, 0x10 - -gUnknown_0858BED4:: @ 858BED4 - .incbin "baserom.gba", 0x58bed4, 0x8 - -gUnknown_0858BEDC:: @ 858BEDC - .incbin "baserom.gba", 0x58bedc, 0x8 - -gUnknown_0858BEE4:: @ 858BEE4 - .incbin "baserom.gba", 0x58bee4, 0x4 - -gUnknown_0858BEE8:: @ 858BEE8 - .incbin "baserom.gba", 0x58bee8, 0x10 - -gUnknown_0858BEF8:: @ 858BEF8 - .incbin "baserom.gba", 0x58bef8, 0x6 - -gUnknown_0858BEFE:: @ 858BEFE - .incbin "baserom.gba", 0x58befe, 0x6 - -gUnknown_0858BF04:: @ 858BF04 - .incbin "baserom.gba", 0x58bf04, 0x14 - -gUnknown_0858BF18:: @ 858BF18 - .incbin "baserom.gba", 0x58bf18, 0x10 - -gUnknown_0858BF28:: @ 858BF28 - .incbin "baserom.gba", 0x58bf28, 0xc - -gUnknown_0858BF34:: @ 858BF34 - .incbin "baserom.gba", 0x58bf34, 0xa - -gUnknown_0858BF3E:: @ 858BF3E - .incbin "baserom.gba", 0x58bf3e, 0xa - -gUnknown_0858BF48:: @ 858BF48 - .incbin "baserom.gba", 0x58bf48, 0x8 - -gUnknown_0858BF50:: @ 858BF50 - .incbin "baserom.gba", 0x58bf50, 0x8 - -gUnknown_0858BF58:: @ 858BF58 - .incbin "baserom.gba", 0x58bf58, 0x14 - -gUnknown_0858BF6C:: @ 858BF6C - .incbin "baserom.gba", 0x58bf6c, 0x8 - -gUnknown_0858BF74:: @ 858BF74 - .incbin "baserom.gba", 0x58bf74, 0x14 - -gUnknown_0858BF88:: @ 858BF88 - .incbin "baserom.gba", 0x58bf88, 0x4 - -gUnknown_0858BF8C:: @ 858BF8C - .incbin "baserom.gba", 0x58bf8c, 0xc - -gUnknown_0858BF98:: @ 858BF98 - .incbin "baserom.gba", 0x58bf98, 0xc - -gUnknown_0858BFA4:: @ 858BFA4 - .incbin "baserom.gba", 0x58bfa4, 0x34 - -gUnknown_0858BFD8:: @ 858BFD8 - .incbin "baserom.gba", 0x58bfd8, 0x78 - -gUnknown_0858C050:: @ 858C050 - .incbin "baserom.gba", 0x58c050, 0x8 - -gUnknown_0858C058:: @ 858C058 - .incbin "baserom.gba", 0x58c058, 0x18 - -gUnknown_0858C070:: @ 858C070 - .incbin "baserom.gba", 0x58c070, 0x8 - -gUnknown_0858C078:: @ 858C078 - .incbin "baserom.gba", 0x58c078, 0x48 - -gUnknown_0858C0C0:: @ 858C0C0 - .incbin "baserom.gba", 0x58c0c0, 0x18 - -gUnknown_0858C0D8:: @ 858C0D8 - .incbin "baserom.gba", 0x58c0d8, 0x18 - -gUnknown_0858C0F0:: @ 858C0F0 - .incbin "baserom.gba", 0x58c0f0, 0x18 - -gUnknown_0858C108:: @ 858C108 - .incbin "baserom.gba", 0x58c108, 0x18 - -gUnknown_0858C120:: @ 858C120 - .incbin "baserom.gba", 0x58c120, 0x18 - -gUnknown_0858C138:: @ 858C138 - .incbin "baserom.gba", 0x58c138, 0x18 - -gUnknown_0858C150:: @ 858C150 - .incbin "baserom.gba", 0x58c150, 0x18 - -gUnknown_0858C168:: @ 858C168 - .incbin "baserom.gba", 0x58c168, 0x18 - -gUnknown_0858C180:: @ 858C180 - .incbin "baserom.gba", 0x58c180, 0x18 - -gUnknown_0858C198:: @ 858C198 - .incbin "baserom.gba", 0x58c198, 0x30 - -gUnknown_0858C1C8:: @ 858C1C8 - .incbin "baserom.gba", 0x58c1c8, 0x68 - -gUnknown_0858C230:: @ 858C230 - .incbin "baserom.gba", 0x58c230, 0x5c - -gUnknown_0858C28C:: @ 858C28C - .incbin "baserom.gba", 0x58c28c, 0x18 - -gUnknown_0858C2A4:: @ 858C2A4 - .incbin "baserom.gba", 0x58c2a4, 0x8 - -gUnknown_0858C2AC:: @ 858C2AC - .incbin "baserom.gba", 0x58c2ac, 0x8 - -@ 858C2B4 - .include "data/contest_moves.inc" - -@ 858CDCC - .include "data/contest_effects.inc" - -@ A lookup table with a 1 for each combo starter ID and a 0 for ID 0, -@ which means "not a combo starter move". -gComboStarterLookupTable:: @ 858CE8C - .byte 0 - .rept 62 - .byte 1 - .endr - - .align 2 -@ 858CECC - .include "data/contest_effect_function_table.inc" - -gUnknown_0858CF8C:: @ 858CF8C - .incbin "baserom.gba", 0x58cf8c, 0x2 - -gUnknown_0858CF8E:: @ 858CF8E - .incbin "baserom.gba", 0x58cf8e, 0x6 - -gUnknown_0858CF94:: @ 858CF94 - .incbin "baserom.gba", 0x58cf94, 0x24 - -gUnknown_0858CFB8:: @ 858CFB8 - .incbin "baserom.gba", 0x58cfb8, 0x6 - -gUnknown_0858CFBE:: @ 858CFBE - .incbin "baserom.gba", 0x58cfbe, 0xe - -gUnknown_0858CFCC:: @ 858CFCC - .incbin "baserom.gba", 0x58cfcc, 0x1c - -gUnknown_0858CFE8:: @ 858CFE8 - .incbin "baserom.gba", 0x58cfe8, 0x60 - -gUnknown_0858D048:: @ 858D048 - .incbin "baserom.gba", 0x58d048, 0x10 - -gUnknown_0858D058:: @ 858D058 - .incbin "baserom.gba", 0x58d058, 0x8 - -gUnknown_0858D060:: @ 858D060 - .incbin "baserom.gba", 0x58d060, 0xc - -gUnknown_0858D06C:: @ 858D06C - .incbin "baserom.gba", 0x58d06c, 0x10 - -gUnknown_0858D07C:: @ 858D07C - .incbin "baserom.gba", 0x58d07c, 0x18 - -gUnknown_0858D094:: @ 858D094 - .incbin "baserom.gba", 0x58d094, 0x3c - -gUnknown_0858D0D0:: @ 858D0D0 - .incbin "baserom.gba", 0x58d0d0, 0xe - -gUnknown_0858D0DE:: @ 858D0DE - .incbin "baserom.gba", 0x58d0de, 0xe - -gUnknown_0858D0EC:: @ 858D0EC - .incbin "baserom.gba", 0x58d0ec, 0x1c - -gUnknown_0858D108:: @ 858D108 - .incbin "baserom.gba", 0x58d108, 0x14 - -gUnknown_0858D11C:: @ 858D11C - .incbin "baserom.gba", 0x58d11c, 0x14 - -gUnknown_0858D130:: @ 858D130 - .incbin "baserom.gba", 0x58d130, 0x14 - -gUnknown_0858D144:: @ 858D144 - .incbin "baserom.gba", 0x58d144, 0xc - -gUnknown_0858D150:: @ 858D150 - .incbin "baserom.gba", 0x58d150, 0x20 - -gUnknown_0858D170:: @ 858D170 - .incbin "baserom.gba", 0x58d170, 0x18 - -gUnknown_0858D188:: @ 858D188 - .incbin "baserom.gba", 0x58d188, 0x14 - -gUnknown_0858D19C:: @ 858D19C - .incbin "baserom.gba", 0x58d19c, 0x4 - -gUnknown_0858D1A0:: @ 858D1A0 - .incbin "baserom.gba", 0x58d1a0, 0x30 - -gUnknown_0858D1D0:: @ 858D1D0 - .incbin "baserom.gba", 0x58d1d0, 0x34 - -gUnknown_0858D204:: @ 858D204 - .incbin "baserom.gba", 0x58d204, 0x24 - -gUnknown_0858D228:: @ 858D228 - .incbin "baserom.gba", 0x58d228, 0x18 - -gUnknown_0858D240:: @ 858D240 - .incbin "baserom.gba", 0x58d240, 0x3c - -gUnknown_0858D27C:: @ 858D27C - .incbin "baserom.gba", 0x58d27c, 0x84 - -gUnknown_0858D300:: @ 858D300 - .incbin "baserom.gba", 0x58d300, 0x20 - -gUnknown_0858D320:: @ 858D320 - .incbin "baserom.gba", 0x58d320, 0x18 - -gUnknown_0858D338:: @ 858D338 - .incbin "baserom.gba", 0x58d338, 0x4c - -gUnknown_0858D384:: @ 858D384 - .incbin "baserom.gba", 0x58d384, 0x10 - -gUnknown_0858D394:: @ 858D394 - .incbin "baserom.gba", 0x58d394, 0x1c - -gUnknown_0858D3B0:: @ 858D3B0 - .incbin "baserom.gba", 0x58d3b0, 0x8 - -gUnknown_0858D3B8:: @ 858D3B8 - .incbin "baserom.gba", 0x58d3b8, 0xc - -gUnknown_0858D3C4:: @ 858D3C4 - .incbin "baserom.gba", 0x58d3c4, 0x2c - -gUnknown_0858D3F0:: @ 858D3F0 - .incbin "baserom.gba", 0x58d3f0, 0x1c - -gUnknown_0858D40C:: @ 858D40C - .incbin "baserom.gba", 0x58d40c, 0xc - -gUnknown_0858D418:: @ 858D418 - .incbin "baserom.gba", 0x58d418, 0x10 - -gUnknown_0858D428:: @ 858D428 - .incbin "baserom.gba", 0x58d428, 0x34 - -gUnknown_0858D45C:: @ 858D45C - .incbin "baserom.gba", 0x58d45c, 0x38 - -gUnknown_0858D494:: @ 858D494 - .incbin "baserom.gba", 0x58d494, 0x4 - -gUnknown_0858D498:: @ 858D498 - .incbin "baserom.gba", 0x58d498, 0x1c - -gUnknown_0858D4B4:: @ 858D4B4 - .incbin "baserom.gba", 0x58d4b4, 0x30 - -gUnknown_0858D4E4:: @ 858D4E4 - .incbin "baserom.gba", 0x58d4e4, 0x40 - -gUnknown_0858D524:: @ 858D524 - .incbin "baserom.gba", 0x58d524, 0x4c - -gUnknown_0858D570:: @ 858D570 - .incbin "baserom.gba", 0x58d570, 0x24 - -gUnknown_0858D594:: @ 858D594 - .incbin "baserom.gba", 0x58d594, 0xac - -gUnknown_0858D640:: @ 858D640 - .incbin "baserom.gba", 0x58d640, 0x2c - -gUnknown_0858D66C:: @ 858D66C - .incbin "baserom.gba", 0x58d66c, 0x24 - -gUnknown_0858D690:: @ 858D690 - .incbin "baserom.gba", 0x58d690, 0x20 - -gUnknown_0858D6B0:: @ 858D6B0 - .incbin "baserom.gba", 0x58d6b0, 0x20 - -gUnknown_0858D6D0:: @ 858D6D0 - .incbin "baserom.gba", 0x58d6d0, 0x128 - -gUnknown_0858D7F8:: @ 858D7F8 - .incbin "baserom.gba", 0x58d7f8, 0x18 - -gUnknown_0858D810:: @ 858D810 - .incbin "baserom.gba", 0x58d810, 0x40 - -gUnknown_0858D850:: @ 858D850 - .incbin "baserom.gba", 0x58d850, 0x10 - -gUnknown_0858D860:: @ 858D860 - .incbin "baserom.gba", 0x58d860, 0x18 - -gUnknown_0858D878:: @ 858D878 - .incbin "baserom.gba", 0x58d878, 0x8 - -gUnknown_0858D880:: @ 858D880 - .incbin "baserom.gba", 0x58d880, 0x8 - -gUnknown_0858D888:: @ 858D888 - .incbin "baserom.gba", 0x58d888, 0x10 - -gUnknown_0858D898:: @ 858D898 - .incbin "baserom.gba", 0x58d898, 0x30 - -gUnknown_0858D8C8:: @ 858D8C8 - .incbin "baserom.gba", 0x58d8c8, 0x18 - -gUnknown_0858D8E0:: @ 858D8E0 - .incbin "baserom.gba", 0x58d8e0, 0x8 - -gUnknown_0858D8E8:: @ 858D8E8 - .incbin "baserom.gba", 0x58d8e8, 0x4 - -gUnknown_0858D8EC:: @ 858D8EC - .incbin "baserom.gba", 0x58d8ec, 0x4 - -gUnknown_0858D8F0:: @ 858D8F0 - .incbin "baserom.gba", 0x58d8f0, 0x80 - -gUnknown_0858D970:: @ 858D970 - .incbin "baserom.gba", 0x58d970, 0x2a8 - - .align 2 -gFieldEffectObjectPalette7:: @ 858DC18 - .incbin "graphics/map_objects/palettes/field_effect_object_palette_07.gbapal" - - .incbin "baserom.gba", 0x58dc38, 0x580 - - .align 2 -gFieldEffectObjectPalette8:: @ 858E1B8 - .incbin "graphics/map_objects/palettes/field_effect_object_palette_08.gbapal" - - .incbin "baserom.gba", 0x58e1d8, 0x428 - -gUnknown_0858E600:: @ 858E600 - .incbin "baserom.gba", 0x58e600, 0x18 - -gUnknown_0858E618:: @ 858E618 - .incbin "baserom.gba", 0x58e618, 0x18 - -gUnknown_0858E630:: @ 858E630 - .incbin "baserom.gba", 0x58e630, 0x18 - - .align 2 -gFieldEffectObjectPaletteInfo7:: @ 858E648 - obj_pal gFieldEffectObjectPalette7, 0x1003 - - .align 2 -gFieldEffectObjectPaletteInfo8:: @ 858E650 - obj_pal gFieldEffectObjectPalette8, 0x1008 - - .incbin "baserom.gba", 0x58e658, 0x34 - -gUnknown_0858E68C:: @ 858E68C - .incbin "baserom.gba", 0x58e68c, 0x18 - - .align 2 -@ This uses one of the secret base palettes, so there is no -@ "field_effect_object_palette_09.pal" file. -gFieldEffectObjectPaletteInfo9:: @ 858E6A4 - obj_pal gTilesetPalettes_SecretBase + 5 * 0x20, 0x100E - - .incbin "baserom.gba", 0x58e6ac, 0x1b8 - -gUnknown_0858E864:: @ 858E864 - .incbin "baserom.gba", 0x58e864, 0x1c - -gUnknown_0858E880:: @ 858E880 - .incbin "baserom.gba", 0x58e880, 0x18 - -gUnknown_0858E898:: @ 858E898 - .incbin "baserom.gba", 0x58e898, 0x13 - -gUnknown_0858E8AB:: @ 858E8AB - .incbin "baserom.gba", 0x58e8ab, 0x2 - -gUnknown_0858E8AD:: @ 858E8AD - .incbin "baserom.gba", 0x58e8ad, 0x3 - -gUnknown_0858E8B0:: @ 858E8B0 - .incbin "baserom.gba", 0x58e8b0, 0x40 - -gUnknown_0858E8F0:: @ 858E8F0 - .incbin "baserom.gba", 0x58e8f0, 0x3468 - -gUnknown_08591D58:: @ 8591D58 - .incbin "baserom.gba", 0x591d58, 0x270 - -gUnknown_08591FC8:: @ 8591FC8 - .incbin "baserom.gba", 0x591fc8, 0x18 - -gUnknown_08591FE0:: @ 8591FE0 - .incbin "baserom.gba", 0x591fe0, 0x18 - -gUnknown_08591FF8:: @ 8591FF8 - .incbin "baserom.gba", 0x591ff8, 0x10 - -gUnknown_08592008:: @ 8592008 - .incbin "baserom.gba", 0x592008, 0x10 - -gUnknown_08592018:: @ 8592018 - .incbin "baserom.gba", 0x592018, 0x10 - -gUnknown_08592028:: @ 8592028 - .incbin "baserom.gba", 0x592028, 0x10 - -gUnknown_08592038:: @ 8592038 - .incbin "baserom.gba", 0x592038, 0x20 - -gUnknown_08592058:: @ 8592058 - .incbin "baserom.gba", 0x592058, 0x20 - -gUnknown_08592078:: @ 8592078 - .incbin "baserom.gba", 0x592078, 0x60 - -gUnknown_085920D8:: @ 85920D8 - .incbin "baserom.gba", 0x5920d8, 0xc - -gUnknown_085920E4:: @ 85920E4 - .incbin "baserom.gba", 0x5920e4, 0x4 - -gUnknown_085920E8:: @ 85920E8 - .incbin "baserom.gba", 0x5920e8, 0x128 - -gUnknown_08592210:: @ 8592210 - .incbin "baserom.gba", 0x592210, 0x4f0 - -gUnknown_08592700:: @ 8592700 - .incbin "baserom.gba", 0x592700, 0x78 - -gUnknown_08592778:: @ 8592778 - .incbin "baserom.gba", 0x592778, 0x100 - -gUnknown_08592878:: @ 8592878 - .incbin "baserom.gba", 0x592878, 0x458 - -gUnknown_08592CD0:: @ 8592CD0 - .incbin "baserom.gba", 0x592cd0, 0x1ec - -gUnknown_08592EBC:: @ 8592EBC - .incbin "baserom.gba", 0x592ebc, 0x30 - -gUnknown_08592EEC:: @ 8592EEC - .incbin "baserom.gba", 0x592eec, 0x134 - -gUnknown_08593020:: @ 8593020 - .incbin "baserom.gba", 0x593020, 0xf4 - -gUnknown_08593114:: @ 8593114 - .incbin "baserom.gba", 0x593114, 0x29c - -gUnknown_085933B0:: @ 85933B0 - .incbin "baserom.gba", 0x5933b0, 0xf0 - -gUnknown_085934A0:: @ 85934A0 - .incbin "baserom.gba", 0x5934a0, 0x148 - -gUnknown_085935E8:: @ 85935E8 - .incbin "baserom.gba", 0x5935e8, 0x20 - -gUnknown_08593608:: @ 8593608 - .incbin "baserom.gba", 0x593608, 0x9c - -gUnknown_085936A4:: @ 85936A4 - .incbin "baserom.gba", 0x5936a4, 0x20c - -gUnknown_085938B0:: @ 85938B0 - .incbin "baserom.gba", 0x5938b0, 0x2c - -gUnknown_085938DC:: @ 85938DC - .incbin "baserom.gba", 0x5938dc, 0x18 - -gUnknown_085938F4:: @ 85938F4 - .incbin "baserom.gba", 0x5938f4, 0x5c - -gUnknown_08593950:: @ 8593950 - .incbin "baserom.gba", 0x593950, 0x38 - -gUnknown_08593988:: @ 8593988 - .incbin "baserom.gba", 0x593988, 0x210 - -gUnknown_08593B98:: @ 8593B98 - .incbin "baserom.gba", 0x593b98, 0x1488 - -gUnknown_08595020:: @ 8595020 - .incbin "baserom.gba", 0x595020, 0x248 - -gUnknown_08595268:: @ 8595268 - .incbin "baserom.gba", 0x595268, 0xa8 - -gUnknown_08595310:: @ 8595310 - .incbin "baserom.gba", 0x595310, 0x2a4 - -gUnknown_085955B4:: @ 85955B4 - .incbin "baserom.gba", 0x5955b4, 0x18 - -gUnknown_085955CC:: @ 85955CC - .incbin "baserom.gba", 0x5955cc, 0x2 - -gUnknown_085955CE:: @ 85955CE - .incbin "baserom.gba", 0x5955ce, 0xb6 - -gUnknown_08595684:: @ 8595684 - .incbin "baserom.gba", 0x595684, 0x10 - -gUnknown_08595694:: @ 8595694 - .incbin "baserom.gba", 0x595694, 0x2c - -gUnknown_085956C0:: @ 85956C0 - .incbin "baserom.gba", 0x5956c0, 0x168 - -gUnknown_08595828:: @ 8595828 - .incbin "baserom.gba", 0x595828, 0x18 - -gUnknown_08595840:: @ 8595840 - .incbin "baserom.gba", 0x595840, 0x18 - -gUnknown_08595858:: @ 8595858 - .incbin "baserom.gba", 0x595858, 0x50 - -gUnknown_085958A8:: @ 85958A8 - .incbin "baserom.gba", 0x5958a8, 0x158 - -gUnknown_08595A00:: @ 8595A00 - .incbin "baserom.gba", 0x595a00, 0x30 - -gUnknown_08595A30:: @ 8595A30 - .incbin "baserom.gba", 0x595a30, 0x138 - -gUnknown_08595B68:: @ 8595B68 - .incbin "baserom.gba", 0x595b68, 0xf4 - -gUnknown_08595C5C:: @ 8595C5C - .incbin "baserom.gba", 0x595c5c, 0x2c - -gUnknown_08595C88:: @ 8595C88 - .incbin "baserom.gba", 0x595c88, 0x2c - -gUnknown_08595CB4:: @ 8595CB4 - .incbin "baserom.gba", 0x595cb4, 0x78 - -gUnknown_08595D2C:: @ 8595D2C - .incbin "baserom.gba", 0x595d2c, 0xa14 - -gUnknown_08596740:: @ 8596740 - .incbin "baserom.gba", 0x596740, 0x1c - -gUnknown_0859675C:: @ 859675C - .incbin "baserom.gba", 0x59675c, 0x20 - -gUnknown_0859677C:: @ 859677C - .incbin "baserom.gba", 0x59677c, 0x18 - -gUnknown_08596794:: @ 8596794 - .incbin "baserom.gba", 0x596794, 0xd0 - -gUnknown_08596864:: @ 8596864 - .incbin "baserom.gba", 0x596864, 0x35c - -gUnknown_08596BC0:: @ 8596BC0 - .incbin "baserom.gba", 0x596bc0, 0x50 - -gUnknown_08596C10:: @ 8596C10 - .incbin "baserom.gba", 0x596c10, 0x18 - -gUnknown_08596C28:: @ 8596C28 - .incbin "baserom.gba", 0x596c28, 0x18 - -gUnknown_08596C40:: @ 8596C40 - .incbin "baserom.gba", 0x596c40, 0x178 - -gUnknown_08596DB8:: @ 8596DB8 - .incbin "baserom.gba", 0x596db8, 0x78 - -gUnknown_08596E30:: @ 8596E30 - .incbin "baserom.gba", 0x596e30, 0x528 - -gUnknown_08597358:: @ 8597358 - .incbin "baserom.gba", 0x597358, 0x30 - -gUnknown_08597388:: @ 8597388 - .incbin "baserom.gba", 0x597388, 0x60 - -gUnknown_085973E8:: @ 85973E8 - .incbin "baserom.gba", 0x5973e8, 0x30 - -gUnknown_08597418:: @ 8597418 - .incbin "baserom.gba", 0x597418, 0x2 - -gUnknown_0859741A:: @ 859741A - .incbin "baserom.gba", 0x59741a, 0x4 - -gUnknown_0859741E:: @ 859741E - .incbin "baserom.gba", 0x59741e, 0x6 - -gUnknown_08597424:: @ 8597424 - .incbin "baserom.gba", 0x597424, 0x28 - -gUnknown_0859744C:: @ 859744C - .incbin "baserom.gba", 0x59744c, 0x10 - -gUnknown_0859745C:: @ 859745C - .incbin "baserom.gba", 0x59745c, 0xc - -gUnknown_08597468:: @ 8597468 - .incbin "baserom.gba", 0x597468, 0x34 - -gUnknown_0859749C:: @ 859749C - .incbin "baserom.gba", 0x59749c, 0x1c - -gUnknown_085974B8:: @ 85974B8 - .incbin "baserom.gba", 0x5974b8, 0x8 - -gUnknown_085974C0:: @ 85974C0 - .incbin "baserom.gba", 0x5974c0, 0x70 - -gUnknown_08597530:: @ 8597530 - .incbin "baserom.gba", 0x597530, 0x20 - -gUnknown_08597550:: @ 8597550 - .incbin "baserom.gba", 0x597550, 0x1f8 - -gUnknown_08597748:: @ 8597748 - .incbin "baserom.gba", 0x597748, 0x1c - -gUnknown_08597764:: @ 8597764 - .incbin "baserom.gba", 0x597764, 0x8 - -gUnknown_0859776C:: @ 859776C - .incbin "baserom.gba", 0x59776c, 0x3a8 - -gUnknown_08597B14:: @ 8597B14 - .incbin "baserom.gba", 0x597b14, 0x20 - -gUnknown_08597B34:: @ 8597B34 - .incbin "baserom.gba", 0x597b34, 0x20 - -gUnknown_08597B54:: @ 8597B54 - .incbin "baserom.gba", 0x597b54, 0xc8 - -gUnknown_08597C1C:: @ 8597C1C - .incbin "baserom.gba", 0x597c1c, 0x8 - -gUnknown_08597C24:: @ 8597C24 - .incbin "baserom.gba", 0x597c24, 0xc - -gUnknown_08597C30:: @ 8597C30 - .incbin "baserom.gba", 0x597c30, 0x24 - -gUnknown_08597C54:: @ 8597C54 - .incbin "baserom.gba", 0x597c54, 0x10 - -gUnknown_08597C64:: @ 8597C64 - .incbin "baserom.gba", 0x597c64, 0x20 - -gUnknown_08597C84:: @ 8597C84 - .incbin "baserom.gba", 0x597c84, 0x8 - -gUnknown_08597C8C:: @ 8597C8C - .incbin "baserom.gba", 0x597c8c, 0x4 - -gUnknown_08597C90:: @ 8597C90 - .incbin "baserom.gba", 0x597c90, 0x10 - -gUnknown_08597CA0:: @ 8597CA0 - .incbin "baserom.gba", 0x597ca0, 0x20 - -gUnknown_08597CC0:: @ 8597CC0 - .incbin "baserom.gba", 0x597cc0, 0x28 - -gUnknown_08597CE8:: @ 8597CE8 - .incbin "baserom.gba", 0x597ce8, 0x20 - -gUnknown_08597D08:: @ 8597D08 - .incbin "baserom.gba", 0x597d08, 0x10 - -gUnknown_08597D18:: @ 8597D18 - .incbin "baserom.gba", 0x597d18, 0x50 - -gUnknown_08597D68:: @ 8597D68 - .incbin "baserom.gba", 0x597d68, 0x68 - -gUnknown_08597DD0:: @ 8597DD0 - .incbin "baserom.gba", 0x597dd0, 0x20 - -gUnknown_08597DF0:: @ 8597DF0 - .incbin "baserom.gba", 0x597df0, 0x40 - -gUnknown_08597E30:: @ 8597E30 - .incbin "baserom.gba", 0x597e30, 0x18 - -gUnknown_08597E48:: @ 8597E48 - .incbin "baserom.gba", 0x597e48, 0x18 - -gUnknown_08597E60:: @ 8597E60 - .incbin "baserom.gba", 0x597e60, 0xc - -gUnknown_08597E6C:: @ 8597E6C - .incbin "baserom.gba", 0x597e6c, 0x30 - -@ 8597E9C - .include "data/text/easy_chat/easy_chat_groups.inc" - -@ 859D0B4 - .include "data/text/easy_chat/easy_chat_words_by_letter.inc" - -@ 859E5D4 - .include "data/text/easy_chat/easy_chat_group_name_pointers.inc" - -gUnknown_0859E62C:: @ 859E62C - .incbin "baserom.gba", 0x59e62c, 0x8 - -gUnknown_0859E634:: @ 859E634 - .incbin "baserom.gba", 0x59e634, 0xc - -gUnknown_0859E640:: @ 859E640 - .incbin "baserom.gba", 0x59e640, 0xc - -gUnknown_0859E64C:: @ 859E64C - .incbin "baserom.gba", 0x59e64c, 0xc - -gUnknown_0859E658:: @ 859E658 - .incbin "baserom.gba", 0x59e658, 0x4 - -gUnknown_0859E65C:: @ 859E65C - .incbin "baserom.gba", 0x59e65c, 0x20 - -gUnknown_0859E67C:: @ 859E67C - .incbin "baserom.gba", 0x59e67c, 0x800 - -gUnknown_0859EE7C:: @ 859EE7C - .incbin "baserom.gba", 0x59ee7c, 0x8 - -gUnknown_0859EE84:: @ 859EE84 - .incbin "baserom.gba", 0x59ee84, 0x58 - -gUnknown_0859EEDC:: @ 859EEDC - .incbin "baserom.gba", 0x59eedc, 0x38 - -gUnknown_0859EF14:: @ 859EF14 - .incbin "baserom.gba", 0x59ef14, 0x8 - -gUnknown_0859EF1C:: @ 859EF1C - .incbin "baserom.gba", 0x59ef1c, 0x88 - -gUnknown_0859EFA4:: @ 859EFA4 - .incbin "baserom.gba", 0x59efa4, 0x40 - -gUnknown_0859EFE4:: @ 859EFE4 - .incbin "baserom.gba", 0x59efe4, 0xc - -gUnknown_0859EFF0:: @ 859EFF0 - .incbin "baserom.gba", 0x59eff0, 0x20 - -gUnknown_0859F010:: @ 859F010 - .incbin "baserom.gba", 0x59f010, 0x20 - -gUnknown_0859F030:: @ 859F030 - .incbin "baserom.gba", 0x59f030, 0x18 - -gUnknown_0859F048:: @ 859F048 - .incbin "baserom.gba", 0x59f048, 0x230 - -gUnknown_0859F278:: @ 859F278 - .incbin "baserom.gba", 0x59f278, 0x10 - -gUnknown_0859F288:: @ 859F288 - .incbin "baserom.gba", 0x59f288, 0x8 - -gUnknown_0859F290:: @ 859F290 - .incbin "baserom.gba", 0x59f290, 0xc - -gUnknown_0859F29C:: @ 859F29C - .incbin "baserom.gba", 0x59f29c, 0x10 - -gUnknown_0859F2AC:: @ 859F2AC - .incbin "baserom.gba", 0x59f2ac, 0x4 - -gUnknown_0859F2B0:: @ 859F2B0 - .incbin "baserom.gba", 0x59f2b0, 0x8 - -gUnknown_0859F2B8:: @ 859F2B8 - .incbin "baserom.gba", 0x59f2b8, 0xfc - -gUnknown_0859F3B4:: @ 859F3B4 - .incbin "baserom.gba", 0x59f3b4, 0xa4 - -gUnknown_0859F458:: @ 859F458 - .incbin "baserom.gba", 0x59f458, 0xbc - -gUnknown_0859F514:: @ 859F514 - .incbin "baserom.gba", 0x59f514, 0x8 - -gUnknown_0859F51C:: @ 859F51C - .incbin "baserom.gba", 0x59f51c, 0x8 - -gUnknown_0859F524:: @ 859F524 - .incbin "baserom.gba", 0x59f524, 0x10 - -gUnknown_0859F534:: @ 859F534 - .incbin "baserom.gba", 0x59f534, 0x8 - -gUnknown_0859F53C:: @ 859F53C - .incbin "baserom.gba", 0x59f53c, 0xd0 - -gUnknown_0859F60C:: @ 859F60C - .incbin "baserom.gba", 0x59f60c, 0x44 - -gUnknown_0859F650:: @ 859F650 - .incbin "baserom.gba", 0x59f650, 0xec - -gUnknown_0859F73C:: @ 859F73C - .incbin "baserom.gba", 0x59f73c, 0x40 - -gUnknown_0859F77C:: @ 859F77C - .incbin "baserom.gba", 0x59f77c, 0xd64 - -gUnknown_085A04E0:: @ 85A04E0 - .incbin "baserom.gba", 0x5a04e0, 0x34c - -gUnknown_085A082C:: @ 85A082C - .incbin "baserom.gba", 0x5a082c, 0x20 - -gUnknown_085A084C:: @ 85A084C - .incbin "baserom.gba", 0x5a084c, 0x80 - -gUnknown_085A08CC:: @ 85A08CC - .incbin "baserom.gba", 0x5a08cc, 0x20 - -gUnknown_085A08EC:: @ 85A08EC - .incbin "baserom.gba", 0x5a08ec, 0x80 - -gUnknown_085A096C:: @ 85A096C - .incbin "baserom.gba", 0x5a096c, 0x1a4 - -@ 85A0B10 - .include "data/region_map_entries.inc" - -gUnknown_085A1B24:: @ 85A1B24 - .incbin "baserom.gba", 0x5a1b24, 0x60 - -gUnknown_085A1B84:: @ 85A1B84 - .incbin "baserom.gba", 0x5a1b84, 0x6 - -gUnknown_085A1B8A:: @ 85A1B8A - .incbin "baserom.gba", 0x5a1b8a, 0x22 - -gUnknown_085A1BAC:: @ 85A1BAC - .incbin "baserom.gba", 0x5a1bac, 0x20 - -gUnknown_085A1BCC:: @ 85A1BCC - .incbin "baserom.gba", 0x5a1bcc, 0x34 - -gUnknown_085A1C00:: @ 85A1C00 - .incbin "baserom.gba", 0x5a1c00, 0x8 - -gUnknown_085A1C08:: @ 85A1C08 - .incbin "baserom.gba", 0x5a1c08, 0x18 - -gUnknown_085A1C20:: @ 85A1C20 - .incbin "baserom.gba", 0x5a1c20, 0x10 - -gUnknown_085A1C30:: @ 85A1C30 - .incbin "baserom.gba", 0x5a1c30, 0x4 - -gUnknown_085A1C34:: @ 85A1C34 - .incbin "baserom.gba", 0x5a1c34, 0x4 - -gUnknown_085A1C38:: @ 85A1C38 - .incbin "baserom.gba", 0x5a1c38, 0x20 - -gUnknown_085A1C58:: @ 85A1C58 - .incbin "baserom.gba", 0x5a1c58, 0x38 - -gUnknown_085A1C90:: @ 85A1C90 - .incbin "baserom.gba", 0x5a1c90, 0xd8 - -gUnknown_085A1D68:: @ 85A1D68 - .incbin "baserom.gba", 0x5a1d68, 0xd4 - -gUnknown_085A1E3C:: @ 85A1E3C - .incbin "baserom.gba", 0x5a1e3c, 0xa0 - -gUnknown_085A1EDC:: @ 85A1EDC - .incbin "baserom.gba", 0x5a1edc, 0x8 - -gUnknown_085A1EE4:: @ 85A1EE4 - .incbin "baserom.gba", 0x5a1ee4, 0xc - -gUnknown_085A1EF0:: @ 85A1EF0 - .incbin "baserom.gba", 0x5a1ef0, 0x20 - -gUnknown_085A1F10:: @ 85A1F10 - .incbin "baserom.gba", 0x5a1f10, 0x8 - -gUnknown_085A1F18:: @ 85A1F18 - .incbin "baserom.gba", 0x5a1f18, 0x64 - -gUnknown_085A1F7C:: @ 85A1F7C - .incbin "baserom.gba", 0x5a1f7c, 0x18 - -gUnknown_085A1F94:: @ 85A1F94 - .incbin "baserom.gba", 0x5a1f94, 0x3c74 - -gUnknown_085A5C08:: @ 85A5C08 - .incbin "baserom.gba", 0x5a5c08, 0x1 - -gUnknown_085A5C09:: @ 85A5C09 - .incbin "baserom.gba", 0x5a5c09, 0x1b - -gUnknown_085A5C24:: @ 85A5C24 - .incbin "baserom.gba", 0x5a5c24, 0xf04 - -gUnknown_085A6B28:: @ 85A6B28 - .incbin "baserom.gba", 0x5a6b28, 0x20 - -gUnknown_085A6B48:: @ 85A6B48 - .incbin "baserom.gba", 0x5a6b48, 0x20 - -gUnknown_085A6B68:: @ 85A6B68 - .incbin "baserom.gba", 0x5a6b68, 0x10 - -gUnknown_085A6B78:: @ 85A6B78 - .incbin "baserom.gba", 0x5a6b78, 0x18 - -gUnknown_085A6B90:: @ 85A6B90 - .incbin "baserom.gba", 0x5a6b90, 0x20 - -gUnknown_085A6BB0:: @ 85A6BB0 - .incbin "baserom.gba", 0x5a6bb0, 0x20 - -gUnknown_085A6BD0:: @ 85A6BD0 - .incbin "baserom.gba", 0x5a6bd0, 0x18 - -gUnknown_085A6BE8:: @ 85A6BE8 - .incbin "baserom.gba", 0x5a6be8, 0x5c8 - -gUnknown_085A71B0:: @ 85A71B0 - .incbin "baserom.gba", 0x5a71b0, 0xa0 - -gUnknown_085A7250:: @ 85A7250 - .incbin "baserom.gba", 0x5a7250, 0x3c - -gUnknown_085A728C:: @ 85A728C - .incbin "baserom.gba", 0x5a728c, 0x18 - -gUnknown_085A72A4:: @ 85A72A4 - .incbin "baserom.gba", 0x5a72a4, 0x18 - -gUnknown_085A72BC:: @ 85A72BC - .incbin "baserom.gba", 0x5a72bc, 0x8 - -gUnknown_085A72C4:: @ 85A72C4 - .incbin "baserom.gba", 0x5a72c4, 0x8 - -gUnknown_085A72CC:: @ 85A72CC - .incbin "baserom.gba", 0x5a72cc, 0x8 - -gUnknown_085A72D4:: @ 85A72D4 - .incbin "baserom.gba", 0x5a72d4, 0x10 - -gUnknown_085A72E4:: @ 85A72E4 - .incbin "baserom.gba", 0x5a72e4, 0x8 - -gUnknown_085A72EC:: @ 85A72EC - .incbin "baserom.gba", 0x5a72ec, 0x8 - -gUnknown_085A72F4:: @ 85A72F4 - .incbin "baserom.gba", 0x5a72f4, 0x54 - -gUnknown_085A7348:: @ 85A7348 - .incbin "baserom.gba", 0x5a7348, 0x8 - -gUnknown_085A7350:: @ 85A7350 - .incbin "baserom.gba", 0x5a7350, 0x88 - -gUnknown_085A73D8:: @ 85A73D8 - .incbin "baserom.gba", 0x5a73d8, 0x8 - -gUnknown_085A73E0:: @ 85A73E0 - .incbin "baserom.gba", 0x5a73e0, 0x24 - -gUnknown_085A7404:: @ 85A7404 - .incbin "baserom.gba", 0x5a7404, 0x18 - -gUnknown_085A741C:: @ 85A741C - .incbin "baserom.gba", 0x5a741c, 0x8 - -gUnknown_085A7424:: @ 85A7424 - .incbin "baserom.gba", 0x5a7424, 0x10 - -gUnknown_085A7434:: @ 85A7434 - .incbin "baserom.gba", 0x5a7434, 0x10 - -gUnknown_085A7444:: @ 85A7444 - .incbin "baserom.gba", 0x5a7444, 0x8 - -gUnknown_085A744C:: @ 85A744C - .incbin "baserom.gba", 0x5a744c, 0x4 - -gUnknown_085A7450:: @ 85A7450 - .incbin "baserom.gba", 0x5a7450, 0x74 - -gUnknown_085A74C4:: @ 85A74C4 - .incbin "baserom.gba", 0x5a74c4, 0xc - -gUnknown_085A74D0:: @ 85A74D0 - .incbin "baserom.gba", 0x5a74d0, 0x14 - -gUnknown_085A74E4:: @ 85A74E4 - .incbin "baserom.gba", 0x5a74e4, 0xc - -gUnknown_085A74F0:: @ 85A74F0 - .incbin "baserom.gba", 0x5a74f0, 0xc - -gUnknown_085A74FC:: @ 85A74FC - .incbin "baserom.gba", 0x5a74fc, 0xc - -gUnknown_085A7508:: @ 85A7508 - .incbin "baserom.gba", 0x5a7508, 0xc - -gUnknown_085A7514:: @ 85A7514 - .incbin "baserom.gba", 0x5a7514, 0xc - -gUnknown_085A7520:: @ 85A7520 - .incbin "baserom.gba", 0x5a7520, 0xc - -gUnknown_085A752C:: @ 85A752C - .incbin "baserom.gba", 0x5a752c, 0xc - -gUnknown_085A7538:: @ 85A7538 - .incbin "baserom.gba", 0x5a7538, 0xc - -gUnknown_085A7544:: @ 85A7544 - .incbin "baserom.gba", 0x5a7544, 0xc - -gUnknown_085A7550:: @ 85A7550 - .incbin "baserom.gba", 0x5a7550, 0x8 - -gUnknown_085A7558:: @ 85A7558 - .incbin "baserom.gba", 0x5a7558, 0x10 - -gUnknown_085A7568:: @ 85A7568 - .incbin "baserom.gba", 0x5a7568, 0x2 - -gUnknown_085A756A:: @ 85A756A - .incbin "baserom.gba", 0x5a756a, 0xa - -gUnknown_085A7574:: @ 85A7574 - .incbin "baserom.gba", 0x5a7574, 0x4c - -gUnknown_085A75C0:: @ 85A75C0 - .incbin "baserom.gba", 0x5a75c0, 0x4 - -gUnknown_085A75C4:: @ 85A75C4 - .incbin "baserom.gba", 0x5a75c4, 0x8 - -gUnknown_085A75CC:: @ 85A75CC - .incbin "baserom.gba", 0x5a75cc, 0x8 - -gUnknown_085A75D4:: @ 85A75D4 - .incbin "baserom.gba", 0x5a75d4, 0x3c - -gUnknown_085A7610:: @ 85A7610 - .incbin "baserom.gba", 0x5a7610, 0x4 - -gUnknown_085A7614:: @ 85A7614 - .incbin "baserom.gba", 0x5a7614, 0x2 - -gUnknown_085A7616:: @ 85A7616 - .incbin "baserom.gba", 0x5a7616, 0x8 - -gUnknown_085A761E:: @ 85A761E - .incbin "baserom.gba", 0x5a761e, 0x8 - -gUnknown_085A7626:: @ 85A7626 - .incbin "baserom.gba", 0x5a7626, 0x8 - -gUnknown_085A762E:: @ 85A762E - .incbin "baserom.gba", 0x5a762e, 0x10 - -gUnknown_085A763E:: @ 85A763E - .incbin "baserom.gba", 0x5a763e, 0x10 - -gUnknown_085A764E:: @ 85A764E - .incbin "baserom.gba", 0x5a764e, 0x10 - -gUnknown_085A765E:: @ 85A765E - .incbin "baserom.gba", 0x5a765e, 0x10 - -gUnknown_085A766E:: @ 85A766E - .incbin "baserom.gba", 0x5a766e, 0x3f - -gUnknown_085A76AD:: @ 85A76AD - .incbin "baserom.gba", 0x5a76ad, 0x7 - -gUnknown_085A76B4:: @ 85A76B4 - .incbin "baserom.gba", 0x5a76b4, 0xc - -gUnknown_085A76C0:: @ 85A76C0 - .incbin "baserom.gba", 0x5a76c0, 0x12 - -gUnknown_085A76D2:: @ 85A76D2 - .incbin "baserom.gba", 0x5a76d2, 0x12 - -gUnknown_085A76E4:: @ 85A76E4 - .incbin "baserom.gba", 0x5a76e4, 0x1e - -gUnknown_085A7702:: @ 85A7702 - .incbin "baserom.gba", 0x5a7702, 0x66 - -gUnknown_085A7768:: @ 85A7768 - .incbin "baserom.gba", 0x5a7768, 0x66 - -gUnknown_085A77CE:: @ 85A77CE - .incbin "baserom.gba", 0x5a77ce, 0xa - -gUnknown_085A77D8:: @ 85A77D8 - .incbin "baserom.gba", 0x5a77d8, 0x14 - -gUnknown_085A77EC:: @ 85A77EC - .incbin "baserom.gba", 0x5a77ec, 0xa - -gUnknown_085A77F6:: @ 85A77F6 - .incbin "baserom.gba", 0x5a77f6, 0x8 - -gUnknown_085A77FE:: @ 85A77FE - .incbin "baserom.gba", 0x5a77fe, 0x6 - -gUnknown_085A7804:: @ 85A7804 - .incbin "baserom.gba", 0x5a7804, 0xa - -gUnknown_085A780E:: @ 85A780E - .incbin "baserom.gba", 0x5a780e, 0x8 - -gUnknown_085A7816:: @ 85A7816 - .incbin "baserom.gba", 0x5a7816, 0x12 - -gUnknown_085A7828:: @ 85A7828 - .incbin "baserom.gba", 0x5a7828, 0x12 - -gUnknown_085A783A:: @ 85A783A - .incbin "baserom.gba", 0x5a783a, 0x8e - -gUnknown_085A78C8:: @ 85A78C8 - .incbin "baserom.gba", 0x5a78c8, 0x13c - -gUnknown_085A7A04:: @ 85A7A04 - .incbin "baserom.gba", 0x5a7a04, 0x1c - -gUnknown_085A7A20:: @ 85A7A20 - .incbin "baserom.gba", 0x5a7a20, 0x2c0 - -gUnknown_085A7CE0:: @ 85A7CE0 - .incbin "baserom.gba", 0x5a7ce0, 0x18 - -gUnknown_085A7CF8:: @ 85A7CF8 - .incbin "baserom.gba", 0x5a7cf8, 0x18 - -gUnknown_085A7D10:: @ 85A7D10 - .incbin "baserom.gba", 0x5a7d10, 0x18 - -gUnknown_085A7D28:: @ 85A7D28 - .incbin "baserom.gba", 0x5a7d28, 0x18 - -gUnknown_085A7D40:: @ 85A7D40 - .incbin "baserom.gba", 0x5a7d40, 0x18 - -gUnknown_085A7D58:: @ 85A7D58 - .incbin "baserom.gba", 0x5a7d58, 0x18 - -gUnknown_085A7D70:: @ 85A7D70 - .incbin "baserom.gba", 0x5a7d70, 0x18 - -gUnknown_085A7D88:: @ 85A7D88 - .incbin "baserom.gba", 0x5a7d88, 0x18 - -gUnknown_085A7DA0:: @ 85A7DA0 - .incbin "baserom.gba", 0x5a7da0, 0x18 - -gUnknown_085A7DB8:: @ 85A7DB8 - .incbin "baserom.gba", 0x5a7db8, 0x18 - -gUnknown_085A7DD0:: @ 85A7DD0 - .incbin "baserom.gba", 0x5a7dd0, 0x18 - -gUnknown_085A7DE8:: @ 85A7DE8 - .incbin "baserom.gba", 0x5a7de8, 0x18 - -gUnknown_085A7E00:: @ 85A7E00 - .incbin "baserom.gba", 0x5a7e00, 0x18 - -gUnknown_085A7E18:: @ 85A7E18 - .incbin "baserom.gba", 0x5a7e18, 0x18 - -gUnknown_085A7E30:: @ 85A7E30 - .incbin "baserom.gba", 0x5a7e30, 0x168 - -gUnknown_085A7F98:: @ 85A7F98 - .incbin "baserom.gba", 0x5a7f98, 0x28 - -gUnknown_085A7FC0:: @ 85A7FC0 - .incbin "baserom.gba", 0x5a7fc0, 0x20 - -gUnknown_085A7FE0:: @ 85A7FE0 - .incbin "baserom.gba", 0x5a7fe0, 0x14 - -gUnknown_085A7FF4:: @ 85A7FF4 - .incbin "baserom.gba", 0x5a7ff4, 0x1c - -gUnknown_085A8010:: @ 85A8010 - .incbin "baserom.gba", 0x5a8010, 0x18 - -gUnknown_085A8028:: @ 85A8028 - .incbin "baserom.gba", 0x5a8028, 0x14 - -gUnknown_085A803C:: @ 85A803C - .incbin "baserom.gba", 0x5a803c, 0x228 - -gUnknown_085A8264:: @ 85A8264 - .incbin "baserom.gba", 0x5a8264, 0x68 - -gUnknown_085A82CC:: @ 85A82CC - .incbin "baserom.gba", 0x5a82cc, 0x68 - -gUnknown_085A8334:: @ 85A8334 - .incbin "baserom.gba", 0x5a8334, 0xb0 - -gUnknown_085A83E4:: @ 85A83E4 - .incbin "baserom.gba", 0x5a83e4, 0x24 - -gUnknown_085A8408:: @ 85A8408 - .incbin "baserom.gba", 0x5a8408, 0x14 - -gUnknown_085A841C:: @ 85A841C - .incbin "baserom.gba", 0x5a841c, 0x14 - -gUnknown_085A8430:: @ 85A8430 - .incbin "baserom.gba", 0x5a8430, 0x5 - -gUnknown_085A8435:: @ 85A8435 - .incbin "baserom.gba", 0x5a8435, 0x6 - -gUnknown_085A843B:: @ 85A843B - .incbin "baserom.gba", 0x5a843b, 0x65 - -gUnknown_085A84A0:: @ 85A84A0 - .incbin "baserom.gba", 0x5a84a0, 0xc - -gUnknown_085A84AC:: @ 85A84AC - .incbin "baserom.gba", 0x5a84ac, 0x64 - -gUnknown_085A8510:: @ 85A8510 - .incbin "baserom.gba", 0x5a8510, 0x10 - -gUnknown_085A8520:: @ 85A8520 - .incbin "baserom.gba", 0x5a8520, 0x4 - -gUnknown_085A8524:: @ 85A8524 - .incbin "baserom.gba", 0x5a8524, 0x20 - -gUnknown_085A8544:: @ 85A8544 - .incbin "baserom.gba", 0x5a8544, 0x48 - -gUnknown_085A858C:: @ 85A858C - .incbin "baserom.gba", 0x5a858c, 0x1154 - -gUnknown_085A96E0:: @ 85A96E0 - .incbin "baserom.gba", 0x5a96e0, 0x1b8 - -gUnknown_085A9898:: @ 85A9898 - .incbin "baserom.gba", 0x5a9898, 0x4 - -gUnknown_085A989C:: @ 85A989C - .incbin "baserom.gba", 0x5a989c, 0x200 - -gUnknown_085A9A9C:: @ 85A9A9C - .incbin "baserom.gba", 0x5a9a9c, 0x1084 - -gUnknown_085AAB20:: @ 85AAB20 - .incbin "baserom.gba", 0x5aab20, 0xc30 - -gUnknown_085AB750:: @ 85AB750 - .incbin "baserom.gba", 0x5ab750, 0xb38 - -gUnknown_085AC288:: @ 85AC288 - .incbin "baserom.gba", 0x5ac288, 0xfb8 - -gUnknown_085AD240:: @ 85AD240 - .incbin "baserom.gba", 0x5ad240, 0x1130 - -gUnknown_085AE370:: @ 85AE370 - .incbin "baserom.gba", 0x5ae370, 0x604 - -gUnknown_085AE974:: @ 85AE974 - .incbin "baserom.gba", 0x5ae974, 0x50c - -gUnknown_085AEE80:: @ 85AEE80 - .incbin "baserom.gba", 0x5aee80, 0x50c - -gUnknown_085AF38C:: @ 85AF38C - .incbin "baserom.gba", 0x5af38c, 0x50c - -gUnknown_085AF898:: @ 85AF898 - .incbin "baserom.gba", 0x5af898, 0x50c - -gUnknown_085AFDA4:: @ 85AFDA4 - .incbin "baserom.gba", 0x5afda4, 0x50c - -gUnknown_085B02B0:: @ 85B02B0 - .incbin "baserom.gba", 0x5b02b0, 0x524 - -gUnknown_085B07D4:: @ 85B07D4 - .incbin "baserom.gba", 0x5b07d4, 0x14 - -gUnknown_085B07E8:: @ 85B07E8 - .incbin "baserom.gba", 0x5b07e8, 0x4 - -gUnknown_085B07EC:: @ 85B07EC - .incbin "baserom.gba", 0x5b07ec, 0x8 - -gUnknown_085B07F4:: @ 85B07F4 - .incbin "baserom.gba", 0x5b07f4, 0x3c - -gUnknown_085B0830:: @ 85B0830 - .incbin "baserom.gba", 0x5b0830, 0x8 - -gUnknown_085B0838:: @ 85B0838 - .incbin "baserom.gba", 0x5b0838, 0x4 - - @ todo, label functions from battle_ai.c -sBattleAICmdTable:: @ 85B083C - .4byte 0x08131179 - .4byte 0x081311b9 - .4byte 0x081311f9 - .4byte 0x08131239 - .4byte 0x08131279 - .4byte 0x081312bd - .4byte 0x08131325 - .4byte 0x0813138d - .4byte 0x081313f5 - .4byte 0x0813145d - .4byte 0x081314d1 - .4byte 0x08131545 - .4byte 0x081315b9 - .4byte 0x0813162d - .4byte 0x0813169d - .4byte 0x0813170d - .4byte 0x08131789 - .4byte 0x08131805 - .4byte 0x08131841 - .4byte 0x0813187d - .4byte 0x081318b9 - .4byte 0x081318f5 - .4byte 0x08131949 - .4byte 0x0813199d - .4byte 0x081319f1 - .4byte 0x08131a45 - .4byte 0x08131a89 - .4byte 0x08131acd - .4byte 0x08131b35 - .4byte 0x08131ba1 - .4byte 0x08131c0d - .4byte 0x08131c7d - .4byte 0x08131ced - .4byte 0x08131d5d - .4byte 0x08131d81 - .4byte 0x08131f1d - .4byte 0x08131f49 - .4byte 0x0813214d - .4byte 0x081321a5 - .4byte 0x081321e1 - .4byte 0x0813221d - .4byte 0x08132269 - .4byte 0x081322b5 - .4byte 0x081322b9 - .4byte 0x081322bd - .4byte 0x081323b9 - .4byte 0x081323d5 - .4byte 0x08132401 - .4byte 0x08132615 - .4byte 0x08132701 - .4byte 0x081327d1 - .4byte 0x081327d5 - .4byte 0x081327d9 - .4byte 0x081328b9 - .4byte 0x08132995 - .4byte 0x08132a01 - .4byte 0x08132a4d - .4byte 0x08132a99 - .4byte 0x08132b01 - .4byte 0x08132b69 - .4byte 0x08132bd1 - .4byte 0x08132c39 - .4byte 0x08132d35 - .4byte 0x08132e19 - .4byte 0x08132f49 - .4byte 0x08133021 - .4byte 0x08133119 - .4byte 0x081331fd - .4byte 0x08133285 - .4byte 0x08133315 - .4byte 0x08133329 - .4byte 0x08133389 - .4byte 0x0813339d - .4byte 0x08133495 - .4byte 0x081334ed - .4byte 0x08133539 - .4byte 0x08133585 - .4byte 0x081335ad - .4byte 0x081335f9 - .4byte 0x08133625 - .4byte 0x08133651 - .4byte 0x0813367d - .4byte 0x081336c9 - .4byte 0x081336cd - .4byte 0x081336d1 - .4byte 0x081336d5 - .4byte 0x081336d9 - .4byte 0x081336dd - .4byte 0x081336e1 - .4byte 0x08133711 - .4byte 0x08133731 - .4byte 0x08133755 - .4byte 0x0813382d - .4byte 0x0813387d - .4byte 0x081338cd - .4byte 0x08131eb5 - .4byte 0x0813251d - .4byte 0x0813391d - .4byte 0x08133415 - -gUnknown_085B09C8:: @ 85B09C8 - .incbin "baserom.gba", 0x5b09c8, 0x1c - -gUnknown_085B09E4:: @ 85B09E4 - .incbin "baserom.gba", 0x5b09e4, 0x10 - -gUnknown_085B09F4:: @ 85B09F4 - .incbin "baserom.gba", 0x5b09f4, 0x4 - -gUnknown_085B09F8:: @ 85B09F8 - .incbin "baserom.gba", 0x5b09f8, 0x8 - -gUnknown_085B0A00:: @ 85B0A00 - .incbin "baserom.gba", 0x5b0a00, 0x2 - -gUnknown_085B0A02:: @ 85B0A02 - .incbin "baserom.gba", 0x5b0a02, 0x7e - -gUnknown_085B0A80:: @ 85B0A80 - .incbin "baserom.gba", 0x5b0a80, 0x18c - -gUnknown_085B0C0C:: @ 85B0C0C - .incbin "baserom.gba", 0x5b0c0c, 0x1f8 - -gUnknown_085B0E04:: @ 85B0E04 - .incbin "baserom.gba", 0x5b0e04, 0xfc8 - -gUnknown_085B1DCC:: @ 85B1DCC - .incbin "baserom.gba", 0x5b1dcc, 0x10 - -gUnknown_085B1DDC:: @ 85B1DDC - .incbin "baserom.gba", 0x5b1ddc, 0x8 - -gUnknown_085B1DE4:: @ 85B1DE4 - .incbin "baserom.gba", 0x5b1de4, 0x8 - -gUnknown_085B1DEC:: @ 85B1DEC - .incbin "baserom.gba", 0x5b1dec, 0x6 - -gUnknown_085B1DF2:: @ 85B1DF2 - .incbin "baserom.gba", 0x5b1df2, 0x6 - -gUnknown_085B1DF8:: @ 85B1DF8 - .incbin "baserom.gba", 0x5b1df8, 0x8 - -gUnknown_085B1E00:: @ 85B1E00 - .incbin "baserom.gba", 0x5b1e00, 0xc - -gUnknown_085B1E0C:: @ 85B1E0C - .incbin "baserom.gba", 0x5b1e0c, 0x1c - -gUnknown_085B1E28:: @ 85B1E28 - .incbin "baserom.gba", 0x5b1e28, 0xa8 - -gUnknown_085B1ED0:: @ 85B1ED0 - .incbin "baserom.gba", 0x5b1ed0, 0x8 - -gUnknown_085B1ED8:: @ 85B1ED8 - .incbin "baserom.gba", 0x5b1ed8, 0x10 - -gUnknown_085B1EE8:: @ 85B1EE8 - .incbin "baserom.gba", 0x5b1ee8, 0x10 - -gUnknown_085B1EF8:: @ 85B1EF8 - .incbin "baserom.gba", 0x5b1ef8, 0x18 - -gUnknown_085B1F10:: @ 85B1F10 - .incbin "baserom.gba", 0x5b1f10, 0x18 - -gUnknown_085B1F28:: @ 85B1F28 - .incbin "baserom.gba", 0x5b1f28, 0x18 - -gUnknown_085B1F40:: @ 85B1F40 - .incbin "baserom.gba", 0x5b1f40, 0x294 - -gUnknown_085B21D4:: @ 85B21D4 - .incbin "baserom.gba", 0x5b21d4, 0x8 - -gUnknown_085B21DC:: @ 85B21DC - .incbin "baserom.gba", 0x5b21dc, 0x18 - -gUnknown_085B21F4:: @ 85B21F4 - .incbin "baserom.gba", 0x5b21f4, 0x8 - -gUnknown_085B21FC:: @ 85B21FC - .incbin "baserom.gba", 0x5b21fc, 0xc - -gUnknown_085B2208:: @ 85B2208 - .incbin "baserom.gba", 0x5b2208, 0x10 - -gUnknown_085B2218:: @ 85B2218 - .incbin "baserom.gba", 0x5b2218, 0x38 - -gUnknown_085B2250:: @ 85B2250 - .incbin "baserom.gba", 0x5b2250, 0x18 - -gUnknown_085B2268:: @ 85B2268 - .incbin "baserom.gba", 0x5b2268, 0x38 - -gUnknown_085B22A0:: @ 85B22A0 - .incbin "baserom.gba", 0x5b22a0, 0x18 - -gUnknown_085B22B8:: @ 85B22B8 - .incbin "baserom.gba", 0x5b22b8, 0x18 - -gUnknown_085B22D0:: @ 85B22D0 - .incbin "baserom.gba", 0x5b22d0, 0x2d0 - -gUnknown_085B25A0:: @ 85B25A0 - .incbin "baserom.gba", 0x5b25a0, 0x80 - -gUnknown_085B2620:: @ 85B2620 - .incbin "baserom.gba", 0x5b2620, 0xc - -gUnknown_085B262C:: @ 85B262C - .incbin "baserom.gba", 0x5b262c, 0x3c - -gUnknown_085B2668:: @ 85B2668 - .incbin "baserom.gba", 0x5b2668, 0x30 - -gUnknown_085B2698:: @ 85B2698 - .incbin "baserom.gba", 0x5b2698, 0x3 - -gUnknown_085B269B:: @ 85B269B - .incbin "baserom.gba", 0x5b269b, 0x2 - -gUnknown_085B269D:: @ 85B269D - .incbin "baserom.gba", 0x5b269d, 0x2 - -gUnknown_085B269F:: @ 85B269F - .incbin "baserom.gba", 0x5b269f, 0x5 - -gUnknown_085B26A4:: @ 85B26A4 - .incbin "baserom.gba", 0x5b26a4, 0x4c - -gUnknown_085B26F0:: @ 85B26F0 - .incbin "baserom.gba", 0x5b26f0, 0x4 - -gUnknown_085B26F4:: @ 85B26F4 - .incbin "baserom.gba", 0x5b26f4, 0x8 - -gUnknown_085B26FC:: @ 85B26FC - .incbin "baserom.gba", 0x5b26fc, 0x8 - -gUnknown_085B2704:: @ 85B2704 - .incbin "baserom.gba", 0x5b2704, 0x18 - -gUnknown_085B271C:: @ 85B271C - .incbin "baserom.gba", 0x5b271c, 0x4 - -gUnknown_085B2720:: @ 85B2720 - .incbin "baserom.gba", 0x5b2720, 0x28 - -gUnknown_085B2748:: @ 85B2748 - .incbin "baserom.gba", 0x5b2748, 0x60 - -gUnknown_085B27A8:: @ 85B27A8 - .incbin "baserom.gba", 0x5b27a8, 0x8 - -gUnknown_085B27B0:: @ 85B27B0 - .incbin "baserom.gba", 0x5b27b0, 0x18 - -gUnknown_085B27C8:: @ 85B27C8 - .incbin "baserom.gba", 0x5b27c8, 0x88 - -gUnknown_085B2850:: @ 85B2850 - .incbin "baserom.gba", 0x5b2850, 0x20 - -gUnknown_085B2870:: @ 85B2870 - .incbin "baserom.gba", 0x5b2870, 0x20 - -gUnknown_085B2890:: @ 85B2890 - .incbin "baserom.gba", 0x5b2890, 0x10 - -gUnknown_085B28A0:: @ 85B28A0 - .incbin "baserom.gba", 0x5b28a0, 0x10 - -gUnknown_085B28B0:: @ 85B28B0 - .incbin "baserom.gba", 0x5b28b0, 0x1e0 - -gUnknown_085B2A90:: @ 85B2A90 - .incbin "baserom.gba", 0x5b2a90, 0xb4 - -gUnknown_085B2B44:: @ 85B2B44 - .incbin "baserom.gba", 0x5b2b44, 0x18 - -gUnknown_085B2B5C:: @ 85B2B5C - .incbin "baserom.gba", 0x5b2b5c, 0x4 - -gUnknown_085B2B60:: @ 85B2B60 - .incbin "baserom.gba", 0x5b2b60, 0x8 - -gUnknown_085B2B68:: @ 85B2B68 - .incbin "baserom.gba", 0x5b2b68, 0x10 - -gUnknown_085B2B78:: @ 85B2B78 - .incbin "baserom.gba", 0x5b2b78, 0x6 - -gUnknown_085B2B7E:: @ 85B2B7E - .incbin "baserom.gba", 0x5b2b7e, 0xa - -gUnknown_085B2B88:: @ 85B2B88 - .incbin "baserom.gba", 0x5b2b88, 0xc - -gUnknown_085B2B94:: @ 85B2B94 - .incbin "baserom.gba", 0x5b2b94, 0xc - -gUnknown_085B2BA0:: @ 85B2BA0 - .incbin "baserom.gba", 0x5b2ba0, 0xc - -gUnknown_085B2BAC:: @ 85B2BAC - .incbin "baserom.gba", 0x5b2bac, 0x8 - -gUnknown_085B2BB4:: @ 85B2BB4 - .incbin "baserom.gba", 0x5b2bb4, 0x40 - -gUnknown_085B2BF4:: @ 85B2BF4 - .incbin "baserom.gba", 0x5b2bf4, 0x12 - -gUnknown_085B2C06:: @ 85B2C06 - .incbin "baserom.gba", 0x5b2c06, 0x12 - -gUnknown_085B2C18:: @ 85B2C18 - .incbin "baserom.gba", 0x5b2c18, 0x9 - -gUnknown_085B2C21:: @ 85B2C21 - .incbin "baserom.gba", 0x5b2c21, 0x9 - -gUnknown_085B2C2A:: @ 85B2C2A - .incbin "baserom.gba", 0x5b2c2a, 0x26 - -gUnknown_085B2C50:: @ 85B2C50 - .incbin "baserom.gba", 0x5b2c50, 0x78 - -gUnknown_085B2CC8:: @ 85B2CC8 - .incbin "baserom.gba", 0x5b2cc8, 0x14 - -gUnknown_085B2CDC:: @ 85B2CDC - .incbin "baserom.gba", 0x5b2cdc, 0x14 - -gUnknown_085B2CF0:: @ 85B2CF0 - .incbin "baserom.gba", 0x5b2cf0, 0x340 - -gUnknown_085B3030:: @ 85B3030 - .incbin "baserom.gba", 0x5b3030, 0x10 - -gUnknown_085B3040:: @ 85B3040 - .incbin "baserom.gba", 0x5b3040, 0x64 - -gUnknown_085B30A4:: @ 85B30A4 - .incbin "baserom.gba", 0x5b30a4, 0x30 - -gUnknown_085B30D4:: @ 85B30D4 - .incbin "baserom.gba", 0x5b30d4, 0x30 - -gUnknown_085B3104:: @ 85B3104 - .incbin "baserom.gba", 0x5b3104, 0x18 - -gUnknown_085B311C:: @ 85B311C - .incbin "baserom.gba", 0x5b311c, 0x8 - -gUnknown_085B3124:: @ 85B3124 - .incbin "baserom.gba", 0x5b3124, 0x8 - -gUnknown_085B312C:: @ 85B312C - .incbin "baserom.gba", 0x5b312c, 0x16 - -gUnknown_085B3142:: @ 85B3142 - .incbin "baserom.gba", 0x5b3142, 0xc - -gUnknown_085B314E:: @ 85B314E - .incbin "baserom.gba", 0x5b314e, 0xe - -gUnknown_085B315C:: @ 85B315C - .incbin "baserom.gba", 0x5b315c, 0x14 - -gUnknown_085B3170:: @ 85B3170 - .incbin "baserom.gba", 0x5b3170, 0x2c - -gUnknown_085B319C:: @ 85B319C - .incbin "baserom.gba", 0x5b319c, 0x18 - -gUnknown_085B31B4:: @ 85B31B4 - .incbin "baserom.gba", 0x5b31b4, 0x1c - -gUnknown_085B31D0:: @ 85B31D0 - .incbin "baserom.gba", 0x5b31d0, 0x28 - -gUnknown_085B31F8:: @ 85B31F8 - .incbin "baserom.gba", 0x5b31f8, 0x14 - -gUnknown_085B320C:: @ 85B320C - .incbin "baserom.gba", 0x5b320c, 0x14 - -gUnknown_085B3220:: @ 85B3220 - .incbin "baserom.gba", 0x5b3220, 0x8 - -gUnknown_085B3228:: @ 85B3228 - .incbin "baserom.gba", 0x5b3228, 0x2c - -gUnknown_085B3254:: @ 85B3254 - .incbin "baserom.gba", 0x5b3254, 0x2c - -gUnknown_085B3280:: @ 85B3280 - .incbin "baserom.gba", 0x5b3280, 0x160 - -gUnknown_085B33E0:: @ 85B33E0 - .incbin "baserom.gba", 0x5b33e0, 0x16 - -gUnknown_085B33F6:: @ 85B33F6 - .incbin "baserom.gba", 0x5b33f6, 0xa - -gUnknown_085B3400:: @ 85B3400 - .incbin "baserom.gba", 0x5b3400, 0x10 - -gUnknown_085B3410:: @ 85B3410 - .incbin "baserom.gba", 0x5b3410, 0x10 - -gUnknown_085B3420:: @ 85B3420 - .incbin "baserom.gba", 0x5b3420, 0x24 - -gUnknown_085B3444:: @ 85B3444 - .incbin "baserom.gba", 0x5b3444, 0x2c - -gUnknown_085B3470:: @ 85B3470 - .incbin "baserom.gba", 0x5b3470, 0x4 - -gUnknown_085B3474:: @ 85B3474 - .incbin "baserom.gba", 0x5b3474, 0x8 - -gUnknown_085B347C:: @ 85B347C - .incbin "baserom.gba", 0x5b347c, 0x8 - -gUnknown_085B3484:: @ 85B3484 - .incbin "baserom.gba", 0x5b3484, 0xc0 - -gUnknown_085B3544:: @ 85B3544 - .incbin "baserom.gba", 0x5b3544, 0x20 - -gUnknown_085B3564:: @ 85B3564 - .incbin "baserom.gba", 0x5b3564, 0x800 - -gUnknown_085B3D64:: @ 85B3D64 - .incbin "baserom.gba", 0x5b3d64, 0x8 - -gUnknown_085B3D6C:: @ 85B3D6C - .incbin "baserom.gba", 0x5b3d6c, 0x10 - -gUnknown_085B3D7C:: @ 85B3D7C - .incbin "baserom.gba", 0x5b3d7c, 0x8 - -gUnknown_085B3D84:: @ 85B3D84 - .incbin "baserom.gba", 0x5b3d84, 0x8 - -gUnknown_085B3D8C:: @ 85B3D8C - .incbin "baserom.gba", 0x5b3d8c, 0x8 - -gUnknown_085B3D94:: @ 85B3D94 - .incbin "baserom.gba", 0x5b3d94, 0x20 - -gUnknown_085B3DB4:: @ 85B3DB4 - .incbin "baserom.gba", 0x5b3db4, 0x134 - -gUnknown_085B3EE8:: @ 85B3EE8 - .incbin "baserom.gba", 0x5b3ee8, 0x2 - -gUnknown_085B3EEA:: @ 85B3EEA - .incbin "baserom.gba", 0x5b3eea, 0x6 - -gUnknown_085B3EF0:: @ 85B3EF0 - .incbin "baserom.gba", 0x5b3ef0, 0xc - -gUnknown_085B3EFC:: @ 85B3EFC - .incbin "baserom.gba", 0x5b3efc, 0x1c - -gUnknown_085B3F18:: @ 85B3F18 - .incbin "baserom.gba", 0x5b3f18, 0x100 - -gUnknown_085B4018:: @ 85B4018 - .incbin "baserom.gba", 0x5b4018, 0x4 - -gUnknown_085B401C:: @ 85B401C - .incbin "baserom.gba", 0x5b401c, 0x8 - -gUnknown_085B4024:: @ 85B4024 - .incbin "baserom.gba", 0x5b4024, 0x10 - -gUnknown_085B4034:: @ 85B4034 - .incbin "baserom.gba", 0x5b4034, 0xb8 - -gUnknown_085B40EC:: @ 85B40EC - .incbin "baserom.gba", 0x5b40ec, 0x10 - -gUnknown_085B40FC:: @ 85B40FC - .incbin "baserom.gba", 0x5b40fc, 0x38 - -gUnknown_085B4134:: @ 85B4134 - .incbin "baserom.gba", 0x5b4134, 0x6f8 - -gUnknown_085B482C:: @ 85B482C - .incbin "baserom.gba", 0x5b482c, 0x4e4 - -gUnknown_085B4D10:: @ 85B4D10 - .incbin "baserom.gba", 0x5b4d10, 0x4d4 - -gUnknown_085B51E4:: @ 85B51E4 - .incbin "baserom.gba", 0x5b51e4, 0x6a0 - -gUnknown_085B5884:: @ 85B5884 - .incbin "baserom.gba", 0x5b5884, 0x40 - -gUnknown_085B58C4:: @ 85B58C4 - .incbin "baserom.gba", 0x5b58c4, 0x5 - -gUnknown_085B58C9:: @ 85B58C9 - .incbin "baserom.gba", 0x5b58c9, 0x10 - -gUnknown_085B58D9:: @ 85B58D9 - .incbin "baserom.gba", 0x5b58d9, 0x323 - -gUnknown_085B5BFC:: @ 85B5BFC - .incbin "baserom.gba", 0x5b5bfc, 0x200 - -gUnknown_085B5DFC:: @ 85B5DFC - .incbin "baserom.gba", 0x5b5dfc, 0x1a4 - -gUnknown_085B5FA0:: @ 85B5FA0 - .incbin "baserom.gba", 0x5b5fa0, 0x1a0 - -gUnknown_085B6140:: @ 85B6140 - .incbin "baserom.gba", 0x5b6140, 0xc - -gUnknown_085B614C:: @ 85B614C - .incbin "baserom.gba", 0x5b614c, 0x8 - -gUnknown_085B6154:: @ 85B6154 - .incbin "baserom.gba", 0x5b6154, 0xc - -gUnknown_085B6160:: @ 85B6160 - .incbin "baserom.gba", 0x5b6160, 0x184 - -gUnknown_085B62E4:: @ 85B62E4 - .incbin "baserom.gba", 0x5b62e4, 0x4 - -gUnknown_085B62E8:: @ 85B62E8 - .incbin "baserom.gba", 0x5b62e8, 0x5c - -gUnknown_085B6344:: @ 85B6344 - .incbin "baserom.gba", 0x5b6344, 0x4 - -gUnknown_085B6348:: @ 85B6348 - .incbin "baserom.gba", 0x5b6348, 0x40 - -gUnknown_085B6388:: @ 85B6388 - .incbin "baserom.gba", 0x5b6388, 0x68 - -gUnknown_085B63F0:: @ 85B63F0 - .incbin "baserom.gba", 0x5b63f0, 0x18 - -gUnknown_085B6408:: @ 85B6408 - .incbin "baserom.gba", 0x5b6408, 0x8 - -gUnknown_085B6410:: @ 85B6410 - .incbin "baserom.gba", 0x5b6410, 0x8 - -gUnknown_085B6418:: @ 85B6418 - .incbin "baserom.gba", 0x5b6418, 0x6 - -gUnknown_085B641E:: @ 85B641E - .incbin "baserom.gba", 0x5b641e, 0x4 - -gUnknown_085B6422:: @ 85B6422 - .incbin "baserom.gba", 0x5b6422, 0xa - -gUnknown_085B642C:: @ 85B642C - .incbin "baserom.gba", 0x5b642c, 0x10 - -gUnknown_085B643C:: @ 85B643C - .incbin "baserom.gba", 0x5b643c, 0xc - -gUnknown_085B6448:: @ 85B6448 - .incbin "baserom.gba", 0x5b6448, 0xf3c - -gUnknown_085B7384:: @ 85B7384 - .incbin "baserom.gba", 0x5b7384, 0x98 - -gUnknown_085B741C:: @ 85B741C - .incbin "baserom.gba", 0x5b741c, 0x6c - -gUnknown_085B7488:: @ 85B7488 - .incbin "baserom.gba", 0x5b7488, 0x8 - -gUnknown_085B7490:: @ 85B7490 - .incbin "baserom.gba", 0x5b7490, 0x78 - -gUnknown_085B7508:: @ 85B7508 - .incbin "baserom.gba", 0x5b7508, 0x60 - -gUnknown_085B7568:: @ 85B7568 - .incbin "baserom.gba", 0x5b7568, 0x48 - -gUnknown_085B75B0:: @ 85B75B0 - .incbin "baserom.gba", 0x5b75b0, 0x60 - -gUnknown_085B7610:: @ 85B7610 - .incbin "baserom.gba", 0x5b7610, 0x140 - -gUnknown_085B7750:: @ 85B7750 - .incbin "baserom.gba", 0x5b7750, 0x94 - -gUnknown_085B77E4:: @ 85B77E4 - .incbin "baserom.gba", 0x5b77e4, 0x18 - -gUnknown_085B77FC:: @ 85B77FC - .incbin "baserom.gba", 0x5b77fc, 0x18 - -gUnknown_085B7814:: @ 85B7814 - .incbin "baserom.gba", 0x5b7814, 0x18 - -gUnknown_085B782C:: @ 85B782C - .incbin "baserom.gba", 0x5b782c, 0x18 - -gUnknown_085B7844:: @ 85B7844 - .incbin "baserom.gba", 0x5b7844, 0x20 - -gUnknown_085B7864:: @ 85B7864 - .incbin "baserom.gba", 0x5b7864, 0xc4 - -gUnknown_085B7928:: @ 85B7928 - .incbin "baserom.gba", 0x5b7928, 0x20 - -gUnknown_085B7948:: @ 85B7948 - .incbin "baserom.gba", 0x5b7948, 0x8 - -gUnknown_085B7950:: @ 85B7950 - .incbin "baserom.gba", 0x5b7950, 0x28 - -gUnknown_085B7978:: @ 85B7978 - .incbin "baserom.gba", 0x5b7978, 0x80 - -gUnknown_085B79F8:: @ 85B79F8 - .incbin "baserom.gba", 0x5b79f8, 0x18 - -gUnknown_085B7A10:: @ 85B7A10 - .incbin "baserom.gba", 0x5b7a10, 0x30 - -gUnknown_085B7A40:: @ 85B7A40 - .incbin "baserom.gba", 0x5b7a40, 0x7c - -gUnknown_085B7ABC:: @ 85B7ABC - .incbin "baserom.gba", 0x5b7abc, 0x30 - -gUnknown_085B7AEC:: @ 85B7AEC - .incbin "baserom.gba", 0x5b7aec, 0x18 - -gUnknown_085B7B04:: @ 85B7B04 - .incbin "baserom.gba", 0x5b7b04, 0x6 - -gUnknown_085B7B0A:: @ 85B7B0A - .incbin "baserom.gba", 0x5b7b0a, 0x8 - -gUnknown_085B7B12:: @ 85B7B12 - .incbin "baserom.gba", 0x5b7b12, 0x8 - -gUnknown_085B7B1A:: @ 85B7B1A - .incbin "baserom.gba", 0x5b7b1a, 0x14 - -gUnknown_085B7B2E:: @ 85B7B2E - .incbin "baserom.gba", 0x5b7b2e, 0x18 - -gUnknown_085B7B46:: @ 85B7B46 - .incbin "baserom.gba", 0x5b7b46, 0x2 - -gUnknown_085B7B48:: @ 85B7B48 - .incbin "baserom.gba", 0x5b7b48, 0x8d0 - -gUnknown_085B8418:: @ 85B8418 - .incbin "baserom.gba", 0x5b8418, 0x20 - -gUnknown_085B8438:: @ 85B8438 - .incbin "baserom.gba", 0x5b8438, 0x338 - -gUnknown_085B8770:: @ 85B8770 - .incbin "baserom.gba", 0x5b8770, 0x480 - -gUnknown_085B8BF0:: @ 85B8BF0 - .incbin "baserom.gba", 0x5b8bf0, 0x20 - -gUnknown_085B8C10:: @ 85B8C10 - .incbin "baserom.gba", 0x5b8c10, 0x20 - -gUnknown_085B8C30:: @ 85B8C30 - .incbin "baserom.gba", 0x5b8c30, 0x2 - -gUnknown_085B8C32:: @ 85B8C32 - .incbin "baserom.gba", 0x5b8c32, 0x36 - -gUnknown_085B8C68:: @ 85B8C68 - .incbin "baserom.gba", 0x5b8c68, 0x18 - -gUnknown_085B8C80:: @ 85B8C80 - .incbin "baserom.gba", 0x5b8c80, 0x10 - -gUnknown_085B8C90:: @ 85B8C90 - .incbin "baserom.gba", 0x5b8c90, 0x528 - -gUnknown_085B91B8:: @ 85B91B8 - .incbin "baserom.gba", 0x5b91b8, 0x178 - -gUnknown_085B9330:: @ 85B9330 - .incbin "baserom.gba", 0x5b9330, 0x580 - -gUnknown_085B98B0:: @ 85B98B0 - .incbin "baserom.gba", 0x5b98b0, 0x240 - -gUnknown_085B9AF0:: @ 85B9AF0 - .incbin "baserom.gba", 0x5b9af0, 0x11e0 - -gUnknown_085BACD0:: @ 85BACD0 - .incbin "baserom.gba", 0x5bacd0, 0x1e0 - -gUnknown_085BAEB0:: @ 85BAEB0 - .incbin "baserom.gba", 0x5baeb0, 0x20 - -gUnknown_085BAED0:: @ 85BAED0 - .incbin "baserom.gba", 0x5baed0, 0x378 - -gUnknown_085BB248:: @ 85BB248 - .incbin "baserom.gba", 0x5bb248, 0x25c - -gUnknown_085BB4A4:: @ 85BB4A4 - .incbin "baserom.gba", 0x5bb4a4, 0x48c - -gUnknown_085BB930:: @ 85BB930 - .incbin "baserom.gba", 0x5bb930, 0x2e4 - -gUnknown_085BBC14:: @ 85BBC14 - .incbin "baserom.gba", 0x5bbc14, 0x6a0 - -gUnknown_085BC2B4:: @ 85BC2B4 - .incbin "baserom.gba", 0x5bc2b4, 0x20 - -gUnknown_085BC2D4:: @ 85BC2D4 - .incbin "baserom.gba", 0x5bc2d4, 0x20 - -gUnknown_085BC2F4:: @ 85BC2F4 - .incbin "baserom.gba", 0x5bc2f4, 0x20 - -gUnknown_085BC314:: @ 85BC314 - .incbin "baserom.gba", 0x5bc314, 0x800 - -gUnknown_085BCB14:: @ 85BCB14 - .incbin "baserom.gba", 0x5bcb14, 0x800 - -gUnknown_085BD314:: @ 85BD314 - .incbin "baserom.gba", 0x5bd314, 0x820 - -gUnknown_085BDB34:: @ 85BDB34 - .incbin "baserom.gba", 0x5bdb34, 0x6b4 - -gUnknown_085BE1E8:: @ 85BE1E8 - .incbin "baserom.gba", 0x5be1e8, 0x334 - -gUnknown_085BE51C:: @ 85BE51C - .incbin "baserom.gba", 0x5be51c, 0x56c - -gUnknown_085BEA88:: @ 85BEA88 - .incbin "baserom.gba", 0x5bea88, 0x318 - -gUnknown_085BEDA0:: @ 85BEDA0 - .incbin "baserom.gba", 0x5beda0, 0x140 - -gUnknown_085BEEE0:: @ 85BEEE0 - .incbin "baserom.gba", 0x5beee0, 0x1c0 - -gUnknown_085BF0A0:: @ 85BF0A0 - .incbin "baserom.gba", 0x5bf0a0, 0x200 - -gUnknown_085BF2A0:: @ 85BF2A0 - .incbin "baserom.gba", 0x5bf2a0, 0x200 - -gUnknown_085BF4A0:: @ 85BF4A0 - .incbin "baserom.gba", 0x5bf4a0, 0xa0 - -gUnknown_085BF540:: @ 85BF540 - .incbin "baserom.gba", 0x5bf540, 0x160 - -gUnknown_085BF6A0:: @ 85BF6A0 - .incbin "baserom.gba", 0x5bf6a0, 0x7540 - -gUnknown_085C6BE0:: @ 85C6BE0 - .incbin "baserom.gba", 0x5c6be0, 0x1000 - -gUnknown_085C7BE0:: @ 85C7BE0 - .incbin "baserom.gba", 0x5c7be0, 0x20 - -gUnknown_085C7C00:: @ 85C7C00 - .incbin "baserom.gba", 0x5c7c00, 0x68c - -gUnknown_085C828C:: @ 85C828C - .incbin "baserom.gba", 0x5c828c, 0x2ec - -gUnknown_085C8578:: @ 85C8578 - .incbin "baserom.gba", 0x5c8578, 0x20 - -gUnknown_085C8598:: @ 85C8598 - .incbin "baserom.gba", 0x5c8598, 0x15c - -gUnknown_085C86F4:: @ 85C86F4 - .incbin "baserom.gba", 0x5c86f4, 0x100 - -gUnknown_085C87F4:: @ 85C87F4 - .incbin "baserom.gba", 0x5c87f4, 0xb0 - -gUnknown_085C88A4:: @ 85C88A4 - .incbin "baserom.gba", 0x5c88a4, 0x84 - -gUnknown_085C8928:: @ 85C8928 - .incbin "baserom.gba", 0x5c8928, 0x20 - -gUnknown_085C8948:: @ 85C8948 - .incbin "baserom.gba", 0x5c8948, 0xa8 - -gUnknown_085C89F0:: @ 85C89F0 - .incbin "baserom.gba", 0x5c89f0, 0xa8 - -gUnknown_085C8A98:: @ 85C8A98 - .incbin "baserom.gba", 0x5c8a98, 0x10 - -gUnknown_085C8AA8:: @ 85C8AA8 - .incbin "baserom.gba", 0x5c8aa8, 0xc - -gUnknown_085C8AB4:: @ 85C8AB4 - .incbin "baserom.gba", 0x5c8ab4, 0x8 - -gUnknown_085C8ABC:: @ 85C8ABC - .incbin "baserom.gba", 0x5c8abc, 0x8 - -gUnknown_085C8AC4:: @ 85C8AC4 - .incbin "baserom.gba", 0x5c8ac4, 0x1c - -gUnknown_085C8AE0:: @ 85C8AE0 - .incbin "baserom.gba", 0x5c8ae0, 0x1c - -gUnknown_085C8AFC:: @ 85C8AFC - .incbin "baserom.gba", 0x5c8afc, 0x18 - -gUnknown_085C8B14:: @ 85C8B14 - .incbin "baserom.gba", 0x5c8b14, 0x18 - -gUnknown_085C8B2C:: @ 85C8B2C - .incbin "baserom.gba", 0x5c8b2c, 0x18 - -gUnknown_085C8B44:: @ 85C8B44 - .incbin "baserom.gba", 0x5c8b44, 0x18 - -gUnknown_085C8B5C:: @ 85C8B5C - .incbin "baserom.gba", 0x5c8b5c, 0x20 - -gUnknown_085C8B7C:: @ 85C8B7C - .incbin "baserom.gba", 0x5c8b7c, 0xc - -gUnknown_085C8B88:: @ 85C8B88 - .incbin "baserom.gba", 0x5c8b88, 0x4 - -gUnknown_085C8B8C:: @ 85C8B8C - .incbin "baserom.gba", 0x5c8b8c, 0xa - -gUnknown_085C8B96:: @ 85C8B96 - .incbin "baserom.gba", 0x5c8b96, 0x6 - -gUnknown_085C8B9C:: @ 85C8B9C - .incbin "baserom.gba", 0x5c8b9c, 0x1c - -gUnknown_085C8BB8:: @ 85C8BB8 - .incbin "baserom.gba", 0x5c8bb8, 0x8 - -gUnknown_085C8BC0:: @ 85C8BC0 - .incbin "baserom.gba", 0x5c8bc0, 0xc - -gUnknown_085C8BCC:: @ 85C8BCC - .incbin "baserom.gba", 0x5c8bcc, 0x28 - -gUnknown_085C8BF4:: @ 85C8BF4 - .incbin "baserom.gba", 0x5c8bf4, 0x6 - -gUnknown_085C8BFA:: @ 85C8BFA - .incbin "baserom.gba", 0x5c8bfa, 0x14 - -gUnknown_085C8C0E:: @ 85C8C0E - .incbin "baserom.gba", 0x5c8c0e, 0x16 - -gUnknown_085C8C24:: @ 85C8C24 - .incbin "baserom.gba", 0x5c8c24, 0x1c - -gUnknown_085C8C40:: @ 85C8C40 - .incbin "baserom.gba", 0x5c8c40, 0x4 - -gUnknown_085C8C44:: @ 85C8C44 - .incbin "baserom.gba", 0x5c8c44, 0x4 - -gUnknown_085C8C48:: @ 85C8C48 - .incbin "baserom.gba", 0x5c8c48, 0xc - -gUnknown_085C8C54:: @ 85C8C54 - .incbin "baserom.gba", 0x5c8c54, 0x10 - -gUnknown_085C8C64:: @ 85C8C64 - .incbin "baserom.gba", 0x5c8c64, 0x2 - -gUnknown_085C8C66:: @ 85C8C66 - .incbin "baserom.gba", 0x5c8c66, 0x6 - -gUnknown_085C8C6C:: @ 85C8C6C - .incbin "baserom.gba", 0x5c8c6c, 0xc - -gUnknown_085C8C78:: @ 85C8C78 - .incbin "baserom.gba", 0x5c8c78, 0x8 - -gUnknown_085C8C80:: @ 85C8C80 - .incbin "baserom.gba", 0x5c8c80, 0x4 - -gUnknown_085C8C84:: @ 85C8C84 - .incbin "baserom.gba", 0x5c8c84, 0xb4 - -gUnknown_085C8D38:: @ 85C8D38 - .incbin "baserom.gba", 0x5c8d38, 0x8 - -gUnknown_085C8D40:: @ 85C8D40 - .incbin "baserom.gba", 0x5c8d40, 0x20 - -gUnknown_085C8D60:: @ 85C8D60 - .incbin "baserom.gba", 0x5c8d60, 0x2c - -gUnknown_085C8D8C:: @ 85C8D8C - .incbin "baserom.gba", 0x5c8d8c, 0x14 - -gUnknown_085C8DA0:: @ 85C8DA0 - .incbin "baserom.gba", 0x5c8da0, 0x10 - -gUnknown_085C8DB0:: @ 85C8DB0 - .incbin "baserom.gba", 0x5c8db0, 0xc - -gUnknown_085C8DBC:: @ 85C8DBC - .incbin "baserom.gba", 0x5c8dbc, 0x14 - -gUnknown_085C8DD0:: @ 85C8DD0 - .incbin "baserom.gba", 0x5c8dd0, 0x46 - -gUnknown_085C8E16:: @ 85C8E16 - .incbin "baserom.gba", 0x5c8e16, 0xe - -gUnknown_085C8E24:: @ 85C8E24 - .incbin "baserom.gba", 0x5c8e24, 0x44 - -gUnknown_085C8E68:: @ 85C8E68 - .incbin "baserom.gba", 0x5c8e68, 0x6c - - .align 2 -gFieldEffectObjectPalette10:: @ 85C8ED4 - .incbin "graphics/map_objects/palettes/field_effect_object_palette_10.gbapal" - - .align 2 -gFieldEffectObjectPaletteInfo10:: @ 85C8EF4 - obj_pal gFieldEffectObjectPalette10, 0x1009 - - .incbin "baserom.gba", 0x5c8efc, 0xe0 - -gUnknown_085C8FDC:: @ 85C8FDC - .incbin "baserom.gba", 0x5c8fdc, 0x14 - -gUnknown_085C8FF0:: @ 85C8FF0 - .incbin "baserom.gba", 0x5c8ff0, 0x30 - -gUnknown_085C9020:: @ 85C9020 - .incbin "baserom.gba", 0x5c9020, 0x4b0 - -gUnknown_085C94D0:: @ 85C94D0 - .incbin "baserom.gba", 0x5c94d0, 0x500 - -gUnknown_085C99D0:: @ 85C99D0 - .incbin "baserom.gba", 0x5c99d0, 0x18 - -gUnknown_085C99E8:: @ 85C99E8 - .incbin "baserom.gba", 0x5c99e8, 0x10 - -gUnknown_085C99F8:: @ 85C99F8 - .incbin "baserom.gba", 0x5c99f8, 0x10 - -gUnknown_085C9A08:: @ 85C9A08 - .incbin "baserom.gba", 0x5c9a08, 0x14 - -gUnknown_085C9A1C:: @ 85C9A1C - .incbin "baserom.gba", 0x5c9a1c, 0x14 - -gUnknown_085C9A30:: @ 85C9A30 - .incbin "baserom.gba", 0x5c9a30, 0x23 - -gUnknown_085C9A53:: @ 85C9A53 - .incbin "baserom.gba", 0x5c9a53, 0x41 - -gUnknown_085C9A94:: @ 85C9A94 - .incbin "baserom.gba", 0x5c9a94, 0xe4 diff --git a/data/data2b.s b/data/data2b.s new file mode 100644 index 0000000000..6517d2724f --- /dev/null +++ b/data/data2b.s @@ -0,0 +1,692 @@ +@ the second big chunk of data + + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + + .align 2 + + +gUnknown_082FECFC:: @ 82FECFC + .incbin "baserom.gba", 0x2fecfc, 0x40 + +gUnknown_082FED3C:: @ 82FED3C + .incbin "baserom.gba", 0x2fed3c, 0x1b4 + +gUnknown_082FEEF0:: @ 82FEEF0 + .incbin "baserom.gba", 0x2feef0, 0x128 + +gUnknown_082FF018:: @ 82FF018 + .incbin "baserom.gba", 0x2ff018, 0x2 + +gUnknown_082FF01A:: @ 82FF01A + .incbin "baserom.gba", 0x2ff01a, 0xe + +gUnknown_082FF028:: @ 82FF028 + .incbin "baserom.gba", 0x2ff028, 0x10 + +gUnknown_082FF038:: @ 82FF038 + .incbin "baserom.gba", 0x2ff038, 0x10 + +gUnknown_082FF048:: @ 82FF048 + .incbin "baserom.gba", 0x2ff048, 0x28 + +gUnknown_082FF070:: @ 82FF070 + .incbin "baserom.gba", 0x2ff070, 0x10 + +gUnknown_082FF080:: @ 82FF080 + .incbin "baserom.gba", 0x2ff080, 0x8 + +gUnknown_082FF088:: @ 82FF088 + .incbin "baserom.gba", 0x2ff088, 0x18 + +gUnknown_082FF0A0:: @ 82FF0A0 + .incbin "baserom.gba", 0x2ff0a0, 0x20 + +gUnknown_082FF0C0:: @ 82FF0C0 + .incbin "baserom.gba", 0x2ff0c0, 0x20 + +gUnknown_082FF0E0:: @ 82FF0E0 + .incbin "baserom.gba", 0x2ff0e0, 0x3 + +gUnknown_082FF0E3:: @ 82FF0E3 + .incbin "baserom.gba", 0x2ff0e3, 0x5 + +gUnknown_082FF0E8:: @ 82FF0E8 + .incbin "baserom.gba", 0x2ff0e8, 0x8 + +gUnknown_082FF0F0:: @ 82FF0F0 + .incbin "baserom.gba", 0x2ff0f0, 0x4 + +gUnknown_082FF0F4:: @ 82FF0F4 + .incbin "baserom.gba", 0x2ff0f4, 0x20 + +gUnknown_082FF114:: @ 82FF114 + .incbin "baserom.gba", 0x2ff114, 0x4 + +gUnknown_082FF118:: @ 82FF118 + .incbin "baserom.gba", 0x2ff118, 0x10 + +gUnknown_082FF128:: @ 82FF128 + .incbin "baserom.gba", 0x2ff128, 0x50 + +gUnknown_082FF178:: @ 82FF178 + .incbin "baserom.gba", 0x2ff178, 0x50 + +gUnknown_082FF1C8:: @ 82FF1C8 + .incbin "baserom.gba", 0x2ff1c8, 0x450 + +gUnknown_082FF618:: @ 82FF618 + .incbin "baserom.gba", 0x2ff618, 0x7c + +gUnknown_082FF694:: @ 82FF694 + .incbin "baserom.gba", 0x2ff694, 0x2c + +gUnknown_082FF6C0:: @ 82FF6C0 + .incbin "baserom.gba", 0x2ff6c0, 0x4c + +gUnknown_082FF70C:: @ 82FF70C + .incbin "baserom.gba", 0x2ff70c, 0x162c + +gUnknown_08300D38:: @ 8300D38 + .incbin "baserom.gba", 0x300d38, 0x6e0 + +@ 8301418 + .include "data/graphics/pokemon/mon_still_front_pic_table.inc" + +gUnknown_083021D8:: @ 83021D8 + .incbin "baserom.gba", 0x3021d8, 0x6e0 + +@ 83028B8 + .include "data/graphics/pokemon/mon_back_pic_table.inc" + +@ 8303678 + .include "data/graphics/pokemon/mon_palette_table.inc" + +@ 8304438 + .include "data/graphics/pokemon/mon_shiny_palette_table.inc" + +@ 83051F8 + .incbin "baserom.gba", 0x3051f8, 0x174 + +gUnknown_0830536C:: @ 830536C + .incbin "baserom.gba", 0x30536c, 0x174 + +gUnknown_083054E0:: @ 83054E0 + .incbin "baserom.gba", 0x3054e0, 0x174 + +@ 8305654 + .include "data/graphics/trainers/trainer_front_pic_table.inc" + +@ 830593C + .include "data/graphics/trainers/trainer_front_pic_palette_table.inc" + +@ 8305C24 + .incbin "baserom.gba", 0x305c24, 0xe8 + +gUnknown_08305D0C:: @ 8305D0C + .incbin "baserom.gba", 0x305d0c, 0x20 + +gUnknown_08305D2C:: @ 8305D2C + .incbin "baserom.gba", 0x305d2c, 0x20 + +@ 8305D4C + .include "data/graphics/trainers/trainer_back_pic_table.inc" + +@ 8305D8C + .include "data/graphics/trainers/trainer_back_pic_palette_table.inc" + +gUnknown_08305DCC:: @ 8305DCC + .incbin "baserom.gba", 0x305dcc, 0x3ce0 + +gUnknown_08309AAC:: @ 8309AAC + .incbin "baserom.gba", 0x309aac, 0x6e0 + +@ 830A18C + .include "data/graphics/pokemon/mon_front_pic_table.inc" + +@ 830AF4C + .incbin "baserom.gba", 0x30af4c, 0x6e0 + +@ 830B62C + .include "data/trainer_parties.inc" + +@ 830FCD4 + .include "data/text/trainer_class_names.inc" + +@ 8310030 + .include "data/trainers.inc" + +@ 83185C8 + .include "data/text/species_names.inc" + +@ 831977C + .include "data/text/move_names.inc" + + .incbin "baserom.gba", 0x31a983, 0x4d + +gUnknown_0831A9D0:: @ 831A9D0 + .incbin "baserom.gba", 0x31a9d0, 0x18 + +gUnknown_0831A9E8:: @ 831A9E8 + .incbin "baserom.gba", 0x31a9e8, 0x18 + +gUnknown_0831AA00:: @ 831AA00 + .incbin "baserom.gba", 0x31aa00, 0x8 + +gUnknown_0831AA08:: @ 831AA08 + .incbin "baserom.gba", 0x31aa08, 0x198 + +gUnknown_0831ABA0:: @ 831ABA0 + .incbin "baserom.gba", 0x31aba0, 0x8 + +gUnknown_0831ABA8:: @ 831ABA8 + .incbin "baserom.gba", 0x31aba8, 0xc8 + +gUnknown_0831AC70:: @ 831AC70 + .incbin "baserom.gba", 0x31ac70, 0x18 + +gUnknown_0831AC88:: @ 831AC88 + .incbin "baserom.gba", 0x31ac88, 0x18 + +gUnknown_0831ACA0:: @ 831ACA0 + .incbin "baserom.gba", 0x31aca0, 0x40 + +gUnknown_0831ACE0:: @ 831ACE0 + .incbin "baserom.gba", 0x31ace0, 0x8 + +gUnknown_0831ACE8:: @ 831ACE8 + .incbin "baserom.gba", 0x31ace8, 0x150 + +@ 831AE38 + .include "data/text/type_names.inc" + + .align 2 +gUnknown_0831AEB8:: @ 831AEB8 + .incbin "baserom.gba", 0x31aeb8, 0xe0 + +@ 831AF98 + .include "data/text/ability_descriptions.inc" + +@ 831B6DB + .include "data/text/ability_names.inc" + +@ 831BAD4 + .include "data/text/ability_description_pointers.inc" + +gUnknown_0831BC0C:: @ 831BC0C + .incbin "baserom.gba", 0x31bc0c, 0x38 + +gUnknown_0831BC44:: @ 831BC44 + .incbin "baserom.gba", 0x31bc44, 0x2c + +gUnknown_0831BC70:: @ 831BC70 + .incbin "baserom.gba", 0x31bc70, 0x8 + +gUnknown_0831BC78:: @ 831BC78 + .incbin "baserom.gba", 0x31bc78, 0x8 + +gUnknown_0831BC80:: @ 831BC80 + .incbin "baserom.gba", 0x31bc80, 0x8 + +gUnknown_0831BC88:: @ 831BC88 + .incbin "baserom.gba", 0x31bc88, 0x8 + +gUnknown_0831BC90:: @ 831BC90 + .incbin "baserom.gba", 0x31bc90, 0x8 + +gUnknown_0831BC98:: @ 831BC98 + .incbin "baserom.gba", 0x31bc98, 0x8 + +gUnknown_0831BCA0:: @ 831BCA0 + .incbin "baserom.gba", 0x31bca0, 0x8 + +gUnknown_0831BCA8:: @ 831BCA8 + .incbin "baserom.gba", 0x31bca8, 0x38 + +gUnknown_0831BCE0:: @ 831BCE0 + .incbin "baserom.gba", 0x31bce0, 0xf + +gUnknown_0831BCEF:: @ 831BCEF + .incbin "baserom.gba", 0x31bcef, 0x4 + +gUnknown_0831BCF3:: @ 831BCF3 + .incbin "baserom.gba", 0x31bcf3, 0x5 + +gUnknown_0831BCF8:: @ 831BCF8 + .incbin "baserom.gba", 0x31bcf8, 0x18 + + .align 2, 0 +gBattleScriptingCommandsTable:: @ 831BD10 + .4byte atk00_attackcanceler + .4byte atk01_accuracycheck + .4byte atk02_attackstring + .4byte atk03_ppreduce + .4byte atk04_critcalc + .4byte atk05_cmd5 + .4byte sub_8047038 + .4byte atk07_cmd7 + .4byte atk08_cmd8 + .4byte atk09_attackanimation + .4byte sub_8047DC8 + .4byte atk0B_graphicalhpupdate + .4byte atk0C_datahpupdate + .4byte atk0D_critmessage + .4byte atk0E_missmessage + .4byte atk0F_resultmessage + .4byte atk10_printstring + .4byte atk11_printstring2 + .4byte atk12_waitmessage + .4byte atk13_printfromtable + .4byte atk14_printfromtable2 + .4byte atk15_seteffectwithchancetarget + .4byte sub_8049AC0 + .4byte sub_8049AD0 + .4byte sub_8049AE0 + .4byte atk19_faintpokemon + .4byte sub_8049E40 + .4byte sub_8049E7C + .4byte atk1C_jumpifstatus + .4byte atk1D_jumpifsecondarystatus + .4byte atk1E_jumpifability + .4byte sub_804A0DC + .4byte sub_804A154 + .4byte atk21_jumpifspecialstatusflag + .4byte sub_804A2D0 + .4byte sub_804A32C + .4byte sub_804ACD0 + .4byte atk25_cmd25 + .4byte atk26_80225F0_storebyteforjump + .4byte atk27_cmd27 + .4byte atk28_goto + .4byte atk29_jumpifbyte + .4byte sub_804B0A8 + .4byte sub_804B150 + .4byte sub_804B204 + .4byte sub_804B28C + .4byte sub_804B310 + .4byte sub_804B338 + .4byte sub_804B364 + .4byte atk31_copyarray + .4byte atk32_memcpy_with_offset + .4byte atk33_orbyte + .4byte atk34_orhalfword + .4byte atk35_orword + .4byte atk36_bicbyte + .4byte atk37_bichalfword + .4byte atk38_bicword + .4byte atk39_pause + .4byte sub_804B5E0 + .4byte atk3B_8022C68 + .4byte atk3C_return + .4byte sub_804B664 + .4byte atk3E_end2 + .4byte atk3F_end3 + .4byte atk40_801DBA0 + .4byte atk41_call + .4byte atk42_jumpiftype2 + .4byte sub_804B784 + .4byte sub_804B7D0 + .4byte atk46_cmd46 + .4byte sub_804B8B0 + .4byte sub_804B97C + .4byte atk48_playstatchangeanimation + .4byte sub_804BBCC + .4byte atk4A_damagecalc2 + .4byte atk4B_cmd4b + .4byte atk4C_switch1 + .4byte sub_804C904 + .4byte atk4E_switch3 + .4byte atk4F_jumpifcannotswitch + .4byte atk50_openpartyscreen + .4byte atk51_cmd51 + .4byte atk52_cmd52 + .4byte sub_804DDA8 + .4byte atk54_802511C + .4byte sub_804DE14 + .4byte atk56_8025194 + .4byte atk57_80251C4_flee + .4byte atk58_cmd58 + .4byte atk59_8025230 + .4byte sub_804E038 + .4byte atk5B_80256E0 + .4byte atk5C_cmd5c + .4byte sub_804E6D8 + .4byte atk5E_8025A70 + .4byte atk5F_8025B24 + .4byte atk60_cmd60 + .4byte atk61_8025BA4 + .4byte atk62_08025C6C + .4byte atk63_jumptoattack + .4byte atk64_statusanimation + .4byte atk65_8025D90 + .4byte atk66_8025E38 + .4byte atk67_8025ECC + .4byte sub_804ECA4 + .4byte atk69_8025FE0 + .4byte atk6A_stash_item_for_side + .4byte atk6B_end_battle_80261CC + .4byte atk6C_8026208 + .4byte sub_804F4D4 + .4byte atk6E_state0_side_becomes_attacker + .4byte atk6F_8026810 + .4byte atk70_record_ability_usage_of_side + .4byte atk71_80268A0 + .4byte atk72_flee + .4byte atk73_cmd73 + .4byte atk74_hp_tresholds_2 + .4byte atk75_8026A58 + .4byte sub_804F7AC + .4byte atk77_setprotect + .4byte atk78_faintifabilitynotdamp + .4byte atk79_setuserhptozero + .4byte sub_8050044 + .4byte sub_80500E8 + .4byte sub_8050164 + .4byte sub_80502C8 + .4byte atk7E_setreflect + .4byte sub_80503E8 + .4byte atk80_manipulatedamage + .4byte atk81_setrest + .4byte atk82_jumpifnotfirstturn + .4byte sub_8050640 + .4byte sub_80506EC + .4byte sub_8050768 + .4byte atk86_stockpiletobasedamage + .4byte atk87_stockpiletohprecovery + .4byte atk88_negativedamage + .4byte atk89_statbuffchange + .4byte atk8A_normalisebuffs + .4byte atk8B_setbide + .4byte atk8C_confuseifrepeatingattackends + .4byte atk8D_setloopcounter + .4byte atk8E_cmd8e + .4byte sub_805112C + .4byte sub_8051424 + .4byte atk91_givemoney + .4byte atk92_setlightscreen + .4byte atk93_ko_move + .4byte atk94_gethalfcurrentenemyhp + .4byte sub_8051AC0 + .4byte sub_8051B18 + .4byte atk97_tryinfatuatetarget + .4byte sub_8051E48 + .4byte atk99_setmisteffect + .4byte atk9A_setincreasedcriticalchance + .4byte atk9B_transformdataexecution + .4byte sub_80521FC + .4byte atk9D_copyattack + .4byte sub_80524DC + .4byte atk9F_nightshadedamageeffect + .4byte atkA0_psywavedamageeffect + .4byte atkA1_counterdamagecalculator + .4byte atkA2_mirrorcoatdamagecalculator + .4byte atkA3_disablelastusedattack + .4byte atkA4_setencore + .4byte sub_8052A70 + .4byte atkA6_settypetorandomresistance + .4byte atkA7_setalwayshitflag + .4byte atkA8_copymovepermanently + .4byte sub_8053018 + .4byte atkAA_destinybondeffect + .4byte atkAB_802A458 + .4byte atkAC_remaininghptopower + .4byte atkAD_reducepprandom + .4byte atkAE_clearstatusifnotsoundproofed + .4byte atkAF_cursetarget + .4byte atkB0_setspikes + .4byte atkB1_setforesight + .4byte atkB2_setperishsong + .4byte atkB3_rolloutdamagecalculation + .4byte atkB4_jumpifconfusedandattackmaxed + .4byte sub_8053AF8 + .4byte atkB6_happinesstodamagecalculation + .4byte atkB7_presentdamagecalculation + .4byte atkB8_setsafeguard + .4byte atkB9_magnitudedamagecalculation + .4byte atkBA_802B140 + .4byte sub_805405C + .4byte atkBC_maxattackhalvehp + .4byte atkBD_copyfoestats + .4byte atkBE_breakfree + .4byte atkBF_setcurled + .4byte atkC0_recoverbasedonsunlight + .4byte sub_8054400 + .4byte atkC2_selectnexttarget + .4byte atkC3_setfutureattack + .4byte atkC4_802B910 + .4byte atkC5_hidepreattack + .4byte atkC6_unhidepostattack + .4byte atkC7_setminimize + .4byte sub_8054A48 + .4byte atkC9_jumpifattackandspecialattackcannotfall + .4byte atkCA_setforcedtarget + .4byte atkCB_setcharge + .4byte atkCC_callterrainattack + .4byte atkCD_cureifburnedparalysedorpoisoned + .4byte atkCE_settorment + .4byte atkCF_jumpifnodamage + .4byte atkD0_settaunt + .4byte atkD1_sethelpinghand + .4byte sub_8054EB4 + .4byte sub_8055148 + .4byte atkD4_802C408 + .4byte sub_8055294 + .4byte atkD6_doubledamagedealtifdamaged + .4byte sub_805534C + .4byte atkD8_setdamagetohealthdifference + .4byte atkD9_scaledamagebyhealthratio + .4byte atkDA_abilityswap + .4byte atkDB_imprisoneffect + .4byte atkDC_setgrudge + .4byte atkDD_weightdamagecalculation + .4byte atkDE_asistattackselect + .4byte atkDF_setmagiccoat + .4byte atkE0_setstealstatchange + .4byte atkE1_802CBE4 + .4byte atkE2_cmde2 + .4byte atkE3_jumpiffainted + .4byte sub_8055B48 + .4byte atkE5_pickupitemcalculation + .4byte atkE6_castform_transform + .4byte atkE7_castform_switch + .4byte atkE8_settypebasedhalvers + .4byte atkE9_seteffectbyweather + .4byte atkEA_recycleitem + .4byte atkEB_settypetoterrain + .4byte atkEC_802D2A0 + .4byte atkED_802D364 + .4byte atkEE_removereflectlightscreen + .4byte sub_8056300 + .4byte atkF0_catch_pokemon + .4byte atkF1_802D95C + .4byte sub_80568CC + .4byte atkF3_receive_new_pokemon_maybe + .4byte sub_8056E78 + .4byte atkF5_reset_attacker_bd_x4C + .4byte sub_8056ED0 + .4byte sub_8056EDC + .4byte sub_8056EF8 + +gUnknown_0831C0F4:: @ 831C0F4 + .incbin "baserom.gba", 0x31c0f4, 0x34 + +gUnknown_0831C128:: @ 831C128 + .incbin "baserom.gba", 0x31c128, 0xc + +gUnknown_0831C134:: @ 831C134 + .incbin "baserom.gba", 0x31c134, 0xf0 + +gUnknown_0831C224:: @ 831C224 + .incbin "baserom.gba", 0x31c224, 0xa4 + +gUnknown_0831C2C8:: @ 831C2C8 + .incbin "baserom.gba", 0x31c2c8, 0x20 + +gUnknown_0831C2E8:: @ 831C2E8 + .incbin "baserom.gba", 0x31c2e8, 0xd8 + +gUnknown_0831C3C0:: @ 831C3C0 + .incbin "baserom.gba", 0x31c3c0, 0x18 + +gUnknown_0831C3D8:: @ 831C3D8 + .incbin "baserom.gba", 0x31c3d8, 0x8 + +gUnknown_0831C3E0:: @ 831C3E0 + .incbin "baserom.gba", 0x31c3e0, 0x28 + +gUnknown_0831C408:: @ 831C408 + .incbin "baserom.gba", 0x31c408, 0xc + +gUnknown_0831C414:: @ 831C414 + .incbin "baserom.gba", 0x31c414, 0x14 + +gUnknown_0831C428:: @ 831C428 + .incbin "baserom.gba", 0x31c428, 0x18 + +@ 831C440 + .include "data/pickup_items.inc" + +gUnknown_0831C483:: @ 831C483 + .incbin "baserom.gba", 0x31c483, 0xa + +gUnknown_0831C48D:: @ 831C48D + .incbin "baserom.gba", 0x31c48d, 0x7 + +gUnknown_0831C494:: @ 831C494 + .incbin "baserom.gba", 0x31c494, 0x64 + +gUnknown_0831C4F8:: @ 831C4F8 + .incbin "baserom.gba", 0x31c4f8, 0x1c + +gPlayerBufferCommands:: @ 831C514 + .incbin "baserom.gba", 0x31c514, 0xe4 + +gUnknown_0831C5F8:: @ 831C5F8 + .incbin "baserom.gba", 0x31c5f8, 0xc + +gUnknown_0831C604:: @ 831C604 + .incbin "baserom.gba", 0x31c604, 0x1c + +gUnknown_0831C620:: @ 831C620 + .incbin "baserom.gba", 0x31c620, 0x8 + +gUnknown_0831C628:: @ 831C628 + .incbin "baserom.gba", 0x31c628, 0x60 + +gUnknown_0831C688:: @ 831C688 + .incbin "baserom.gba", 0x31c688, 0x18 + +gUnknown_0831C6A0:: @ 831C6A0 + .incbin "baserom.gba", 0x31c6a0, 0x10 + +gUnknown_0831C6B0:: @ 831C6B0 + .incbin "baserom.gba", 0x31c6b0, 0x18 + +gOpponentBufferCommands:: @ 831C6C8 + .incbin "baserom.gba", 0x31c6c8, 0xec + +gUnknown_0831C7B4:: @ 831C7B4 + .incbin "baserom.gba", 0x31c7b4, 0xe4 + +@ 831C898 + .include "data/battle_moves.inc" + + .incbin "baserom.gba", 0x31d93c, 0x10 + +@ 831D94C + .include "data/pokedex_order.inc" + +@ 831E2F0 + .include "data/spinda_spot_graphics.inc" + +@ 831E380 + .include "data/item_effect_info.inc" + +@ 831E818 + .include "data/nature_stat_table.inc" + +@ 831E898 + .include "data/tm_hm_learnsets.inc" + +@ 831F578 + .include "data/trainer_pic_indices.inc" + +@ 831F5CA + .include "data/trainer_class_name_indices.inc" + +@ 831F61C + .include "data/cry_id_table.inc" + +@ 831F72C + .include "data/experience_tables.inc" + +@ 83203CC + .include "data/base_stats.inc" + +@ 83230DC + .include "data/level_up_learnsets.inc" + +@ 832531C + .include "data/evolution_table.inc" + +@ 832937C + .include "data/level_up_learnset_pointers.inc" + +gUnknown_083299EC:: @ 83299EC + .incbin "baserom.gba", 0x3299ec, 0x19b + +gUnknown_08329B87:: @ 8329B87 + .incbin "baserom.gba", 0x329b87, 0x19b + +gUnknown_08329D22:: @ 8329D22 + .incbin "baserom.gba", 0x329d22, 0x4 + +gUnknown_08329D26:: @ 8329D26 + .incbin "baserom.gba", 0x329d26, 0x4 + +gUnknown_08329D2A:: @ 8329D2A + .incbin "baserom.gba", 0x329d2a, 0x4 + +gUnknown_08329D2E:: @ 8329D2E + .incbin "baserom.gba", 0x329d2e, 0x1a + +gUnknown_08329D48:: @ 8329D48 + .incbin "baserom.gba", 0x329d48, 0xc + +gUnknown_08329D54:: @ 8329D54 + .incbin "baserom.gba", 0x329d54, 0x20 + +gHoldEffectToType:: @ 8329D74 + .incbin "baserom.gba", 0x329d74, 0x24 + +gUnknown_08329D98:: @ 8329D98 + .incbin "baserom.gba", 0x329d98, 0x60 + +gUnknown_08329DF8:: @ 8329DF8 + .incbin "baserom.gba", 0x329df8, 0xc0 + +gUnknown_08329EB8:: @ 8329EB8 + .incbin "baserom.gba", 0x329eb8, 0xa + +gUnknown_08329EC2:: @ 8329EC2 + .incbin "baserom.gba", 0x329ec2, 0x6 + +gUnknown_08329EC8:: @ 8329EC8 + .incbin "baserom.gba", 0x329ec8, 0x6 + +gUnknown_08329ECE:: @ 8329ECE + .incbin "baserom.gba", 0x329ece, 0x1c + +gUnknown_08329EEA:: @ 8329EEA + .incbin "baserom.gba", 0x329eea, 0x12 + +gUnknown_08329EFC:: @ 8329EFC + .incbin "baserom.gba", 0x329efc, 0x2 + +gUnknown_08329EFE:: @ 8329EFE + .incbin "baserom.gba", 0x329efe, 0x2a + +gUnknown_08329F28:: @ 8329F28 + .incbin "baserom.gba", 0x329f28, 0x18 diff --git a/data/data3.s b/data/data3.s new file mode 100644 index 0000000000..ee1ad294a2 --- /dev/null +++ b/data/data3.s @@ -0,0 +1,5059 @@ +@ the third big chunk of data + + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +gBitTable:: @ 832A328 + .incbin "baserom.gba", 0x32a328, 0x80 + +gUnknown_0832A3A8:: @ 832A3A8 + .incbin "baserom.gba", 0x32a3a8, 0x18 + +gUnknown_0832A3C0:: @ 832A3C0 + .incbin "baserom.gba", 0x32a3c0, 0x18 + +gUnknown_0832A3D8:: @ 832A3D8 + .incbin "baserom.gba", 0x32a3d8, 0xa00 + +@ 832ADD8 + .include "data/egg_moves.inc" + + .align 2 +gUnknown_0832B6C0:: @ 832B6C0 + .incbin "baserom.gba", 0x32b6c0, 0x20 + +gUnknown_0832B6E0:: @ 832B6E0 + .incbin "baserom.gba", 0x32b6e0, 0x18 + +gUnknown_0832B6F8:: @ 832B6F8 + .incbin "baserom.gba", 0x32b6f8, 0x10 + +gEggName:: @ 832B708 + .string "タマゴ$" @ "tamago" ("egg" in Japanese) + +@ 832B70C + .incbin "baserom.gba", 0x32b70c, 0x8d8 + +gUnknown_0832BFE4:: @ 832BFE4 + .incbin "baserom.gba", 0x32bfe4, 0x8 + +gUnknown_0832BFEC:: @ 832BFEC + .incbin "baserom.gba", 0x32bfec, 0x8 + +gUnknown_0832BFF4:: @ 832BFF4 + .incbin "baserom.gba", 0x32bff4, 0x8 + +gUnknown_0832BFFC:: @ 832BFFC + .incbin "baserom.gba", 0x32bffc, 0x50 + +gUnknown_0832C04C:: @ 832C04C + .incbin "baserom.gba", 0x32c04c, 0x18 + +gUnknown_0832C064:: @ 832C064 + .incbin "baserom.gba", 0x32c064, 0x8 + +gUnknown_0832C06C:: @ 832C06C + .incbin "baserom.gba", 0x32c06c, 0x10 + +gUnknown_0832C07C:: @ 832C07C + .incbin "baserom.gba", 0x32c07c, 0x8 + +gUnknown_0832C084:: @ 832C084 + .incbin "baserom.gba", 0x32c084, 0x4c + +gUnknown_0832C0D0:: @ 832C0D0 + .incbin "baserom.gba", 0x32c0d0, 0x8 + +gUnknown_0832C0D8:: @ 832C0D8 + .incbin "baserom.gba", 0x32c0d8, 0x8 + +gUnknown_0832C0E0:: @ 832C0E0 + .incbin "baserom.gba", 0x32c0e0, 0x8 + +gUnknown_0832C0E8:: @ 832C0E8 + .incbin "baserom.gba", 0x32c0e8, 0x8 + +gUnknown_0832C0F0:: @ 832C0F0 + .incbin "baserom.gba", 0x32c0f0, 0x8 + +gUnknown_0832C0F8:: @ 832C0F8 + .incbin "baserom.gba", 0x32c0f8, 0x8 + +gUnknown_0832C100:: @ 832C100 + .incbin "baserom.gba", 0x32c100, 0x8 + +gUnknown_0832C108:: @ 832C108 + .incbin "baserom.gba", 0x32c108, 0x20 + +gUnknown_0832C128:: @ 832C128 + .incbin "baserom.gba", 0x32c128, 0x18 + +gUnknown_0832C140:: @ 832C140 + .incbin "baserom.gba", 0x32c140, 0x30 + +gUnknown_0832C170:: @ 832C170 + .incbin "baserom.gba", 0x32c170, 0x30 + +gUnknown_0832C1A0:: @ 832C1A0 + .incbin "baserom.gba", 0x32c1a0, 0x20 + +gUnknown_0832C1C0:: @ 832C1C0 + .incbin "baserom.gba", 0x32c1c0, 0xcc + +gUnknown_0832C28C:: @ 832C28C + .incbin "baserom.gba", 0x32c28c, 0x38 + +gUnknown_0832C2C4:: @ 832C2C4 + .incbin "baserom.gba", 0x32c2c4, 0x8 + +gUnknown_0832C2CC:: @ 832C2CC + .incbin "baserom.gba", 0x32c2cc, 0x68 + +gUnknown_0832C334:: @ 832C334 + .incbin "baserom.gba", 0x32c334, 0x8 + +gUnknown_0832C33C:: @ 832C33C + .incbin "baserom.gba", 0x32c33c, 0x8 + +gUnknown_0832C344:: @ 832C344 + .incbin "baserom.gba", 0x32c344, 0x8 + +gUnknown_0832C34C:: @ 832C34C + .incbin "baserom.gba", 0x32c34c, 0x18 + +gUnknown_0832C364:: @ 832C364 + .incbin "baserom.gba", 0x32c364, 0x30 + +gUnknown_0832C394:: @ 832C394 + .incbin "baserom.gba", 0x32c394, 0x30 + +gUnknown_0832C3C4:: @ 832C3C4 + .incbin "baserom.gba", 0x32c3c4, 0x14 + +gUnknown_0832C3D8:: @ 832C3D8 + .incbin "baserom.gba", 0x32c3d8, 0x14 + +gUnknown_0832C3EC:: @ 832C3EC + .incbin "baserom.gba", 0x32c3ec, 0xc + +gUnknown_0832C3F8:: @ 832C3F8 + .incbin "baserom.gba", 0x32c3f8, 0x8 + +gUnknown_0832C400:: @ 832C400 + .incbin "baserom.gba", 0x32c400, 0x60 + +gUnknown_0832C460:: @ 832C460 + .incbin "baserom.gba", 0x32c460, 0x128 + +gUnknown_0832C588:: @ 832C588 + .incbin "baserom.gba", 0x32c588, 0x138 + +gUnknown_0832C6C0:: @ 832C6C0 + .incbin "baserom.gba", 0x32c6c0, 0x1fe + +gUnknown_0832C8BE:: @ 832C8BE + .incbin "baserom.gba", 0x32c8be, 0x1fe + +gUnknown_0832CABC:: @ 832CABC + .incbin "baserom.gba", 0x32cabc, 0x800 + +gUnknown_0832D2BC:: @ 832D2BC + .incbin "baserom.gba", 0x32d2bc, 0x800 + +gUnknown_0832DABC:: @ 832DABC + .incbin "baserom.gba", 0x32dabc, 0xb + +gUnknown_0832DAC7:: @ 832DAC7 + .incbin "baserom.gba", 0x32dac7, 0x2 + +gUnknown_0832DAC9:: @ 832DAC9 + .incbin "baserom.gba", 0x32dac9, 0x2 + +gUnknown_0832DACB:: @ 832DACB + .incbin "baserom.gba", 0x32dacb, 0x7 + +gUnknown_0832DAD2:: @ 832DAD2 + .incbin "baserom.gba", 0x32dad2, 0xd + +gUnknown_0832DADF:: @ 832DADF + .incbin "baserom.gba", 0x32dadf, 0x6 + +gUnknown_0832DAE5:: @ 832DAE5 + .incbin "baserom.gba", 0x32dae5, 0x157 + +gUnknown_0832DC3C:: @ 832DC3C + .incbin "baserom.gba", 0x32dc3c, 0x8 + +gUnknown_0832DC44:: @ 832DC44 + .incbin "baserom.gba", 0x32dc44, 0x50 + +gUnknown_0832DC94:: @ 832DC94 + .incbin "baserom.gba", 0x32dc94, 0x18 + +gUnknown_0832DCAC:: @ 832DCAC + .incbin "baserom.gba", 0x32dcac, 0x38 + +gUnknown_0832DCE4:: @ 832DCE4 + .incbin "baserom.gba", 0x32dce4, 0x8 + +gUnknown_0832DCEC:: @ 832DCEC + .incbin "baserom.gba", 0x32dcec, 0x138 + +gUnknown_0832DE24:: @ 832DE24 + .incbin "baserom.gba", 0x32de24, 0x1a + +gUnknown_0832DE3E:: @ 832DE3E + .incbin "baserom.gba", 0x32de3e, 0x18 + +gUnknown_0832DE56:: @ 832DE56 + .incbin "baserom.gba", 0x32de56, 0x3e + +gUnknown_0832DE94:: @ 832DE94 + .incbin "baserom.gba", 0x32de94, 0x18 + +gUnknown_0832DEAC:: @ 832DEAC + .incbin "baserom.gba", 0x32deac, 0x10 + +gUnknown_0832DEBC:: @ 832DEBC + .incbin "baserom.gba", 0x32debc, 0x24 + +gUnknown_0832DEE0:: @ 832DEE0 + .incbin "baserom.gba", 0x32dee0, 0x4 + +gUnknown_0832DEE4:: @ 832DEE4 + .incbin "baserom.gba", 0x32dee4, 0x10 + +gUnknown_0832DEF4:: @ 832DEF4 + .incbin "baserom.gba", 0x32def4, 0x98 + +gUnknown_0832DF8C:: @ 832DF8C + .incbin "baserom.gba", 0x32df8c, 0x8 + +gUnknown_0832DF94:: @ 832DF94 + .incbin "baserom.gba", 0x32df94, 0x5 + +gUnknown_0832DF99:: @ 832DF99 + .incbin "baserom.gba", 0x32df99, 0x2027 + +gUnknown_0832FFC0:: @ 832FFC0 + .incbin "baserom.gba", 0x32ffc0, 0x1fa0 + +gUnknown_08331F60:: @ 8331F60 + .incbin "baserom.gba", 0x331f60, 0x1000 + +gUnknown_08332F60:: @ 8332F60 + .incbin "baserom.gba", 0x332f60, 0x2840 + +gUnknown_083357A0:: @ 83357A0 + .incbin "baserom.gba", 0x3357a0, 0x100 + +gUnknown_083358A0:: @ 83358A0 + .incbin "baserom.gba", 0x3358a0, 0x100 + +gUnknown_083359A0:: @ 83359A0 + .incbin "baserom.gba", 0x3359a0, 0x1000 + +gUnknown_083369A0:: @ 83369A0 + .incbin "baserom.gba", 0x3369a0, 0x1000 + +gUnknown_083379A0:: @ 83379A0 + .incbin "baserom.gba", 0x3379a0, 0x100 + +gUnknown_08337AA0:: @ 8337AA0 + .incbin "baserom.gba", 0x337aa0, 0x200 + +gUnknown_08337CA0:: @ 8337CA0 + .incbin "baserom.gba", 0x337ca0, 0x200 + +gUnknown_08337EA0:: @ 8337EA0 + .incbin "baserom.gba", 0x337ea0, 0x20 + +gUnknown_08337EC0:: @ 8337EC0 + .incbin "baserom.gba", 0x337ec0, 0x690 + +gUnknown_08338550:: @ 8338550 + .incbin "baserom.gba", 0x338550, 0x7c8 + +gUnknown_08338D18:: @ 8338D18 + .incbin "baserom.gba", 0x338d18, 0x8 + +gUnknown_08338D20:: @ 8338D20 + .incbin "baserom.gba", 0x338d20, 0x8 + +gUnknown_08338D28:: @ 8338D28 + .incbin "baserom.gba", 0x338d28, 0x48 + +gUnknown_08338D70:: @ 8338D70 + .incbin "baserom.gba", 0x338d70, 0x8 + +gUnknown_08338D78:: @ 8338D78 + .incbin "baserom.gba", 0x338d78, 0x8 + +gUnknown_08338D80:: @ 8338D80 + .incbin "baserom.gba", 0x338d80, 0x8 + +gUnknown_08338D88:: @ 8338D88 + .incbin "baserom.gba", 0x338d88, 0x38 + +gUnknown_08338DC0:: @ 8338DC0 + .incbin "baserom.gba", 0x338dc0, 0x8 + +gUnknown_08338DC8:: @ 8338DC8 + .incbin "baserom.gba", 0x338dc8, 0x2c + +gUnknown_08338DF4:: @ 8338DF4 + .incbin "baserom.gba", 0x338df4, 0x8 + +gUnknown_08338DFC:: @ 8338DFC + .incbin "baserom.gba", 0x338dfc, 0x70 + +gUnknown_08338E6C:: @ 8338E6C + .incbin "baserom.gba", 0x338e6c, 0x8 + +gUnknown_08338E74:: @ 8338E74 + .incbin "baserom.gba", 0x338e74, 0x18 + +gUnknown_08338E8C:: @ 8338E8C + .incbin "baserom.gba", 0x338e8c, 0x18 + +gUnknown_08338EA4:: @ 8338EA4 + .incbin "baserom.gba", 0x338ea4, 0x28 + +gUnknown_08338ECC:: @ 8338ECC + .incbin "baserom.gba", 0x338ecc, 0x4 + +gUnknown_08338ED0:: @ 8338ED0 + .incbin "baserom.gba", 0x338ed0, 0xf0 + +gUnknown_08338FC0:: @ 8338FC0 + .incbin "baserom.gba", 0x338fc0, 0x3c + +gUnknown_08338FFC:: @ 8338FFC + .incbin "baserom.gba", 0x338ffc, 0x10 + +gUnknown_0833900C:: @ 833900C + .incbin "baserom.gba", 0x33900c, 0x8 + +gUnknown_08339014:: @ 8339014 + .incbin "baserom.gba", 0x339014, 0x10 + +gUnknown_08339024:: @ 8339024 + .incbin "baserom.gba", 0x339024, 0x6c + +gUnknown_08339090:: @ 8339090 + .incbin "baserom.gba", 0x339090, 0x44 + +gUnknown_083390D4:: @ 83390D4 + .incbin "baserom.gba", 0x3390d4, 0x20 + +gUnknown_083390F4:: @ 83390F4 + .incbin "baserom.gba", 0x3390f4, 0x400 + +gUnknown_083394F4:: @ 83394F4 + .incbin "baserom.gba", 0x3394f4, 0x246 + +gUnknown_0833973A:: @ 833973A + .incbin "baserom.gba", 0x33973a, 0x61 + +gUnknown_0833979B:: @ 833979B + .incbin "baserom.gba", 0x33979b, 0x2 + +gUnknown_0833979D:: @ 833979D + .incbin "baserom.gba", 0x33979d, 0x33 + +gUnknown_083397D0:: @ 83397D0 + .incbin "baserom.gba", 0x3397d0, 0x4a + +gUnknown_0833981A:: @ 833981A + .incbin "baserom.gba", 0x33981a, 0x17 + +gUnknown_08339831:: @ 8339831 + .incbin "baserom.gba", 0x339831, 0x27 + +gUnknown_08339858:: @ 8339858 + .incbin "baserom.gba", 0x339858, 0x3e + +gUnknown_08339896:: @ 8339896 + .incbin "baserom.gba", 0x339896, 0x1a + +gUnknown_083398B0:: @ 83398B0 + .incbin "baserom.gba", 0x3398b0, 0x2d + +gUnknown_083398DD:: @ 83398DD + .incbin "baserom.gba", 0x3398dd, 0x18 + +gUnknown_083398F5:: @ 83398F5 + .incbin "baserom.gba", 0x3398f5, 0x1f + +gUnknown_08339914:: @ 8339914 + .incbin "baserom.gba", 0x339914, 0x7 + +gUnknown_0833991B:: @ 833991B + .incbin "baserom.gba", 0x33991b, 0x6 + +gUnknown_08339921:: @ 8339921 + .incbin "baserom.gba", 0x339921, 0x7 + +gUnknown_08339928:: @ 8339928 + .incbin "baserom.gba", 0x339928, 0x6 + +gUnknown_0833992E:: @ 833992E + .incbin "baserom.gba", 0x33992e, 0xe + +gUnknown_0833993C:: @ 833993C + .incbin "baserom.gba", 0x33993c, 0x5 + +gUnknown_08339941:: @ 8339941 + .incbin "baserom.gba", 0x339941, 0x2 + +gUnknown_08339943:: @ 8339943 + .incbin "baserom.gba", 0x339943, 0x4 + +gUnknown_08339947:: @ 8339947 + .incbin "baserom.gba", 0x339947, 0x8 + +gUnknown_0833994F:: @ 833994F + .incbin "baserom.gba", 0x33994f, 0xe + +gUnknown_0833995D:: @ 833995D + .incbin "baserom.gba", 0x33995d, 0x13 + +gUnknown_08339970:: @ 8339970 + .incbin "baserom.gba", 0x339970, 0x4 + +gUnknown_08339974:: @ 8339974 + .incbin "baserom.gba", 0x339974, 0xc + +gUnknown_08339980:: @ 8339980 + .incbin "baserom.gba", 0x339980, 0x38 + +gUnknown_083399B8:: @ 83399B8 + .incbin "baserom.gba", 0x3399b8, 0x8 + +gUnknown_083399C0:: @ 83399C0 + .incbin "baserom.gba", 0x3399c0, 0x8 + +gUnknown_083399C8:: @ 83399C8 + .incbin "baserom.gba", 0x3399c8, 0x8 + +gUnknown_083399D0:: @ 83399D0 + .incbin "baserom.gba", 0x3399d0, 0xc + +gUnknown_083399DC:: @ 83399DC + .incbin "baserom.gba", 0x3399dc, 0x8 + +gUnknown_083399E4:: @ 83399E4 + .incbin "baserom.gba", 0x3399e4, 0x3 + +gUnknown_083399E7:: @ 83399E7 + .incbin "baserom.gba", 0x3399e7, 0x5 + +gUnknown_083399EC:: @ 83399EC + .incbin "baserom.gba", 0x3399ec, 0xd4 + +gUnknown_08339AC0:: @ 8339AC0 + .incbin "baserom.gba", 0x339ac0, 0x8 + +gUnknown_08339AC8:: @ 8339AC8 + .incbin "baserom.gba", 0x339ac8, 0x8 + +gUnknown_08339AD0:: @ 8339AD0 + .incbin "baserom.gba", 0x339ad0, 0x8 + +gUnknown_08339AD8:: @ 8339AD8 + .incbin "baserom.gba", 0x339ad8, 0x60 + +gUnknown_08339B38:: @ 8339B38 + .incbin "baserom.gba", 0x339b38, 0x8 + +gUnknown_08339B40:: @ 8339B40 + .incbin "baserom.gba", 0x339b40, 0x98 + +gUnknown_08339BD8:: @ 8339BD8 + .incbin "baserom.gba", 0x339bd8, 0x8 + +gUnknown_08339BE0:: @ 8339BE0 + .incbin "baserom.gba", 0x339be0, 0x44 + +gUnknown_08339C24:: @ 8339C24 + .incbin "baserom.gba", 0x339c24, 0x8 + +gUnknown_08339C2C:: @ 8339C2C + .incbin "baserom.gba", 0x339c2c, 0x2c + +gUnknown_08339C58:: @ 8339C58 + .incbin "baserom.gba", 0x339c58, 0x8 + +gUnknown_08339C60:: @ 8339C60 + .incbin "baserom.gba", 0x339c60, 0x18 + +gUnknown_08339C78:: @ 8339C78 + .incbin "baserom.gba", 0x339c78, 0x28 + +gUnknown_08339CA0:: @ 8339CA0 + .incbin "baserom.gba", 0x339ca0, 0x1e + +gUnknown_08339CBE:: @ 8339CBE + .incbin "baserom.gba", 0x339cbe, 0x5 + +gUnknown_08339CC3:: @ 8339CC3 + .incbin "baserom.gba", 0x339cc3, 0x5 + +gUnknown_08339CC8:: @ 8339CC8 + .incbin "baserom.gba", 0x339cc8, 0x4c + +gUnknown_08339D14:: @ 8339D14 + .incbin "baserom.gba", 0x339d14, 0x8 + +gContestWinnerPicDummy:: @ 8339D1C + .incbin "baserom.gba", 0x339d1c, 0x20 + +gUnknown_08339D3C:: @ 8339D3C + .incbin "baserom.gba", 0x339d3c, 0x28 + +gUnknown_08339D64:: @ 8339D64 + .incbin "baserom.gba", 0x339d64, 0x48 + +gUnknown_08339DAC:: @ 8339DAC + .incbin "baserom.gba", 0x339dac, 0x10 + +gUnknown_08339DBC:: @ 8339DBC + .incbin "baserom.gba", 0x339dbc, 0xc + +gUnknown_08339DC8:: @ 8339DC8 + .incbin "baserom.gba", 0x339dc8, 0xc + +gUnknown_08339DD4:: @ 8339DD4 + .incbin "baserom.gba", 0x339dd4, 0x2c + +gUnknown_08339E00:: @ 8339E00 + .incbin "baserom.gba", 0x339e00, 0x8 + +@ 8339E08 + .include "data/tilesets/tileset_graphics.inc" + +@ 83960F0 + .include "data/tilesets/metatiles.inc" + +@ 83DF704 + .include "data/tilesets/tilesets.inc" + +@ 83DFE14 + .incbin "baserom.gba", 0x3dfe14, 0xa1fc0 + +gUnknown_08481DD4:: @ 8481DD4 + .incbin "baserom.gba", 0x481dd4, 0x47a4 + +gUnknown_08486578:: @ 8486578 + .incbin "baserom.gba", 0x486578, 0x980 + +gUnknown_08486EF8:: @ 8486EF8 + .incbin "baserom.gba", 0x486ef8, 0x4 + +gUnknown_08486EFC:: @ 8486EFC + .incbin "baserom.gba", 0x486efc, 0x10090 + +gUnknown_08496F8C:: @ 8496F8C + .incbin "baserom.gba", 0x496f8c, 0x14 + +gUnknown_08496FA0:: @ 8496FA0 + .incbin "baserom.gba", 0x496fa0, 0x14 + +gUnknown_08496FB4:: @ 8496FB4 + .incbin "baserom.gba", 0x496fb4, 0x1c0 + +gUnknown_08497174:: @ 8497174 + .incbin "baserom.gba", 0x497174, 0x288 + +gUnknown_084973FC:: @ 84973FC + .incbin "baserom.gba", 0x4973fc, 0x48 + +gUnknown_08497444:: @ 8497444 + .incbin "baserom.gba", 0x497444, 0x4c + +gUnknown_08497490:: @ 8497490 + .incbin "baserom.gba", 0x497490, 0xc + +gUnknown_0849749C:: @ 849749C + .incbin "baserom.gba", 0x49749c, 0x14 + +gUnknown_084974B0:: @ 84974B0 + .incbin "baserom.gba", 0x4974b0, 0x8 + +gUnknown_084974B8:: @ 84974B8 + .incbin "baserom.gba", 0x4974b8, 0x20 + +gUnknown_084974D8:: @ 84974D8 + .incbin "baserom.gba", 0x4974d8, 0x10 + +gUnknown_084974E8:: @ 84974E8 + .incbin "baserom.gba", 0x4974e8, 0x10 + +gUnknown_084974F8:: @ 84974F8 + .incbin "baserom.gba", 0x4974f8, 0x10 + +gUnknown_08497508:: @ 8497508 + .incbin "baserom.gba", 0x497508, 0x2 + +gUnknown_0849750A:: @ 849750A + .incbin "baserom.gba", 0x49750a, 0x2 + +gUnknown_0849750C:: @ 849750C + .incbin "baserom.gba", 0x49750c, 0x14 + +gUnknown_08497520:: @ 8497520 + .incbin "baserom.gba", 0x497520, 0x10 + +gUnknown_08497530:: @ 8497530 + .incbin "baserom.gba", 0x497530, 0xc + +gUnknown_0849753C:: @ 849753C + .incbin "baserom.gba", 0x49753c, 0x4 + +gUnknown_08497540:: @ 8497540 + .incbin "baserom.gba", 0x497540, 0x10 + +gUnknown_08497550:: @ 8497550 + .incbin "baserom.gba", 0x497550, 0x4 + +gUnknown_08497554:: @ 8497554 + .incbin "baserom.gba", 0x497554, 0x8 + +gUnknown_0849755C:: @ 849755C + .incbin "baserom.gba", 0x49755c, 0x40 + +gUnknown_0849759C:: @ 849759C + .incbin "baserom.gba", 0x49759c, 0x6 + +gUnknown_084975A2:: @ 84975A2 + .incbin "baserom.gba", 0x4975a2, 0x6 + +gUnknown_084975A8:: @ 84975A8 + .incbin "baserom.gba", 0x4975a8, 0x2 + +gUnknown_084975AA:: @ 84975AA + .incbin "baserom.gba", 0x4975aa, 0x6 + +gUnknown_084975B0:: @ 84975B0 + .incbin "baserom.gba", 0x4975b0, 0xc + +gUnknown_084975BC:: @ 84975BC + .incbin "baserom.gba", 0x4975bc, 0x8 + +gUnknown_084975C4:: @ 84975C4 + .incbin "baserom.gba", 0x4975c4, 0x10 + +gUnknown_084975D4:: @ 84975D4 + .incbin "baserom.gba", 0x4975d4, 0x18 + +gUnknown_084975EC:: @ 84975EC + .incbin "baserom.gba", 0x4975ec, 0xc + +@ 84975F8 + .include "data/graphics/field_objects/field_object_graphics.inc" + +gUnknown_08505438:: @ 8505438 + .incbin "baserom.gba", 0x505438, 0x144 + +gUnknown_0850557C:: @ 850557C + .incbin "baserom.gba", 0x50557c, 0x51 + +gUnknown_085055CD:: @ 85055CD + .incbin "baserom.gba", 0x5055cd, 0x53 + +@ 8505620 + .include "data/graphics/field_objects/field_object_graphics_info_pointers.inc" + +@ 85059F8 + .include "data/graphics/field_objects/field_effect_object_template_pointers.inc" + +@ 8505A8C + .include "data/graphics/field_objects/field_object_pic_tables.inc" + +@ 85089FC + .include "data/graphics/field_objects/field_object_anims.inc" + +gUnknown_085094AC:: @ 85094AC + .incbin "baserom.gba", 0x5094ac, 0x40 + +@ 85094EC + .include "data/graphics/field_objects/field_object_oam.inc" + +@ 8509954 + .include "data/graphics/field_objects/field_object_graphics_info.inc" + +gUnknown_0850BBC8:: @ 850BBC8 + .incbin "baserom.gba", 0x50bbc8, 0x138 + +gUnknown_0850BD00:: @ 850BD00 + .incbin "baserom.gba", 0x50bd00, 0x78 + +gUnknown_0850BD78:: @ 850BD78 + .incbin "baserom.gba", 0x50bd78, 0xc0 + +gUnknown_0850BE38:: @ 850BE38 + .incbin "baserom.gba", 0x50be38, 0x10 + +@ 850BE48 + .include "data/graphics/field_objects/berry_tree_graphics_tables.inc" + +@ 850C9C0 + .include "data/graphics/field_objects/field_effect_objects.inc" + + .incbin "baserom.gba", 0x50d6d4, 0x8 + +gUnknown_0850D6DC:: @ 850D6DC + .incbin "baserom.gba", 0x50d6dc, 0x10 + +gUnknown_0850D6EC:: @ 850D6EC + .incbin "baserom.gba", 0x50d6ec, 0x8 + +gUnknown_0850D6F4:: @ 850D6F4 + .incbin "baserom.gba", 0x50d6f4, 0x1c + +gUnknown_0850D710:: @ 850D710 + .incbin "baserom.gba", 0x50d710, 0x4 + +gUnknown_0850D714:: @ 850D714 + .incbin "baserom.gba", 0x50d714, 0x2c + +gUnknown_0850D740:: @ 850D740 + .incbin "baserom.gba", 0x50d740, 0x14 + +gUnknown_0850D754:: @ 850D754 + .incbin "baserom.gba", 0x50d754, 0x1c + +gUnknown_0850D770:: @ 850D770 + .incbin "baserom.gba", 0x50d770, 0x4 + +gUnknown_0850D774:: @ 850D774 + .incbin "baserom.gba", 0x50d774, 0x1c + +gUnknown_0850D790:: @ 850D790 + .incbin "baserom.gba", 0x50d790, 0x4 + +gUnknown_0850D794:: @ 850D794 + .incbin "baserom.gba", 0x50d794, 0xc + +gUnknown_0850D7A0:: @ 850D7A0 + .incbin "baserom.gba", 0x50d7a0, 0x14 + +gUnknown_0850D7B4:: @ 850D7B4 + .incbin "baserom.gba", 0x50d7b4, 0x14 + +gUnknown_0850D7C8:: @ 850D7C8 + .incbin "baserom.gba", 0x50d7c8, 0x14 + +gUnknown_0850D7DC:: @ 850D7DC + .incbin "baserom.gba", 0x50d7dc, 0x14 + +gUnknown_0850D7F0:: @ 850D7F0 + .incbin "baserom.gba", 0x50d7f0, 0x4 + +gUnknown_0850D7F4:: @ 850D7F4 + .incbin "baserom.gba", 0x50d7f4, 0x14 + +gUnknown_0850D808:: @ 850D808 + .incbin "baserom.gba", 0x50d808, 0x4 + +gUnknown_0850D80C:: @ 850D80C + .incbin "baserom.gba", 0x50d80c, 0x14 + +gUnknown_0850D820:: @ 850D820 + .incbin "baserom.gba", 0x50d820, 0x4 + +gUnknown_0850D824:: @ 850D824 + .incbin "baserom.gba", 0x50d824, 0x14 + +gUnknown_0850D838:: @ 850D838 + .incbin "baserom.gba", 0x50d838, 0x4 + +gUnknown_0850D83C:: @ 850D83C + .incbin "baserom.gba", 0x50d83c, 0x14 + +gUnknown_0850D850:: @ 850D850 + .incbin "baserom.gba", 0x50d850, 0x4 + +gUnknown_0850D854:: @ 850D854 + .incbin "baserom.gba", 0x50d854, 0x14 + +gUnknown_0850D868:: @ 850D868 + .incbin "baserom.gba", 0x50d868, 0x4 + +gUnknown_0850D86C:: @ 850D86C + .incbin "baserom.gba", 0x50d86c, 0x14 + +gUnknown_0850D880:: @ 850D880 + .incbin "baserom.gba", 0x50d880, 0x4 + +gUnknown_0850D884:: @ 850D884 + .incbin "baserom.gba", 0x50d884, 0x14 + +gUnknown_0850D898:: @ 850D898 + .incbin "baserom.gba", 0x50d898, 0x4 + +gUnknown_0850D89C:: @ 850D89C + .incbin "baserom.gba", 0x50d89c, 0x10 + +gUnknown_0850D8AC:: @ 850D8AC + .incbin "baserom.gba", 0x50d8ac, 0x8 + +gUnknown_0850D8B4:: @ 850D8B4 + .incbin "baserom.gba", 0x50d8b4, 0x10 + +gUnknown_0850D8C4:: @ 850D8C4 + .incbin "baserom.gba", 0x50d8c4, 0x8 + +gUnknown_0850D8CC:: @ 850D8CC + .incbin "baserom.gba", 0x50d8cc, 0x10 + +gUnknown_0850D8DC:: @ 850D8DC + .incbin "baserom.gba", 0x50d8dc, 0xc + +gUnknown_0850D8E8:: @ 850D8E8 + .incbin "baserom.gba", 0x50d8e8, 0x4 + +gUnknown_0850D8EC:: @ 850D8EC + .incbin "baserom.gba", 0x50d8ec, 0xc + +gUnknown_0850D8F8:: @ 850D8F8 + .incbin "baserom.gba", 0x50d8f8, 0x4 + +gUnknown_0850D8FC:: @ 850D8FC + .incbin "baserom.gba", 0x50d8fc, 0xc + +gUnknown_0850D908:: @ 850D908 + .incbin "baserom.gba", 0x50d908, 0x4 + +gUnknown_0850D90C:: @ 850D90C + .incbin "baserom.gba", 0x50d90c, 0xc + +gUnknown_0850D918:: @ 850D918 + .incbin "baserom.gba", 0x50d918, 0x4 + +gUnknown_0850D91C:: @ 850D91C + .incbin "baserom.gba", 0x50d91c, 0xc + +gUnknown_0850D928:: @ 850D928 + .incbin "baserom.gba", 0x50d928, 0x4 + +gUnknown_0850D92C:: @ 850D92C + .incbin "baserom.gba", 0x50d92c, 0xc + +gUnknown_0850D938:: @ 850D938 + .incbin "baserom.gba", 0x50d938, 0x4 + +gUnknown_0850D93C:: @ 850D93C + .incbin "baserom.gba", 0x50d93c, 0xc + +gUnknown_0850D948:: @ 850D948 + .incbin "baserom.gba", 0x50d948, 0xc + +gUnknown_0850D954:: @ 850D954 + .incbin "baserom.gba", 0x50d954, 0x4 + +gUnknown_0850D958:: @ 850D958 + .incbin "baserom.gba", 0x50d958, 0xc + +gUnknown_0850D964:: @ 850D964 + .incbin "baserom.gba", 0x50d964, 0x4 + +gUnknown_0850D968:: @ 850D968 + .incbin "baserom.gba", 0x50d968, 0xc + +gUnknown_0850D974:: @ 850D974 + .incbin "baserom.gba", 0x50d974, 0x4 + +gUnknown_0850D978:: @ 850D978 + .incbin "baserom.gba", 0x50d978, 0xc + +gUnknown_0850D984:: @ 850D984 + .incbin "baserom.gba", 0x50d984, 0x4 + +gUnknown_0850D988:: @ 850D988 + .incbin "baserom.gba", 0x50d988, 0xc + +gUnknown_0850D994:: @ 850D994 + .incbin "baserom.gba", 0x50d994, 0x4 + +gUnknown_0850D998:: @ 850D998 + .incbin "baserom.gba", 0x50d998, 0xc + +gUnknown_0850D9A4:: @ 850D9A4 + .incbin "baserom.gba", 0x50d9a4, 0x4 + +gUnknown_0850D9A8:: @ 850D9A8 + .incbin "baserom.gba", 0x50d9a8, 0xc + +gUnknown_0850D9B4:: @ 850D9B4 + .incbin "baserom.gba", 0x50d9b4, 0x4 + +gUnknown_0850D9B8:: @ 850D9B8 + .incbin "baserom.gba", 0x50d9b8, 0xc + +gUnknown_0850D9C4:: @ 850D9C4 + .incbin "baserom.gba", 0x50d9c4, 0x4 + +gUnknown_0850D9C8:: @ 850D9C8 + .incbin "baserom.gba", 0x50d9c8, 0xc + +gUnknown_0850D9D4:: @ 850D9D4 + .incbin "baserom.gba", 0x50d9d4, 0x4 + +gUnknown_0850D9D8:: @ 850D9D8 + .incbin "baserom.gba", 0x50d9d8, 0xc + +gUnknown_0850D9E4:: @ 850D9E4 + .incbin "baserom.gba", 0x50d9e4, 0x4 + +gUnknown_0850D9E8:: @ 850D9E8 + .incbin "baserom.gba", 0x50d9e8, 0xc + +gUnknown_0850D9F4:: @ 850D9F4 + .incbin "baserom.gba", 0x50d9f4, 0x4 + +gUnknown_0850D9F8:: @ 850D9F8 + .incbin "baserom.gba", 0x50d9f8, 0xc + +gUnknown_0850DA04:: @ 850DA04 + .incbin "baserom.gba", 0x50da04, 0x4 + +gUnknown_0850DA08:: @ 850DA08 + .incbin "baserom.gba", 0x50da08, 0xc + +gUnknown_0850DA14:: @ 850DA14 + .incbin "baserom.gba", 0x50da14, 0x4 + +gUnknown_0850DA18:: @ 850DA18 + .incbin "baserom.gba", 0x50da18, 0xc + +gUnknown_0850DA24:: @ 850DA24 + .incbin "baserom.gba", 0x50da24, 0x4 + +gUnknown_0850DA28:: @ 850DA28 + .incbin "baserom.gba", 0x50da28, 0xc + +gUnknown_0850DA34:: @ 850DA34 + .incbin "baserom.gba", 0x50da34, 0x4 + +gUnknown_0850DA38:: @ 850DA38 + .incbin "baserom.gba", 0x50da38, 0xc + +gUnknown_0850DA44:: @ 850DA44 + .incbin "baserom.gba", 0x50da44, 0x4 + +gUnknown_0850DA48:: @ 850DA48 + .incbin "baserom.gba", 0x50da48, 0xc + +gUnknown_0850DA54:: @ 850DA54 + .incbin "baserom.gba", 0x50da54, 0x4 + +gUnknown_0850DA58:: @ 850DA58 + .incbin "baserom.gba", 0x50da58, 0xc + +gUnknown_0850DA64:: @ 850DA64 + .incbin "baserom.gba", 0x50da64, 0x2c + +gUnknown_0850DA90:: @ 850DA90 + .incbin "baserom.gba", 0x50da90, 0xc + +gUnknown_0850DA9C:: @ 850DA9C + .incbin "baserom.gba", 0x50da9c, 0x4 + +gUnknown_0850DAA0:: @ 850DAA0 + .incbin "baserom.gba", 0x50daa0, 0x8 + +gUnknown_0850DAA8:: @ 850DAA8 + .incbin "baserom.gba", 0x50daa8, 0x8 + +gUnknown_0850DAB0:: @ 850DAB0 + .incbin "baserom.gba", 0x50dab0, 0x8 + +gUnknown_0850DAB8:: @ 850DAB8 + .incbin "baserom.gba", 0x50dab8, 0x8 + +gUnknown_0850DAC0:: @ 850DAC0 + .incbin "baserom.gba", 0x50dac0, 0xc + +gUnknown_0850DACC:: @ 850DACC + .incbin "baserom.gba", 0x50dacc, 0x9 + +gUnknown_0850DAD5:: @ 850DAD5 + .incbin "baserom.gba", 0x50dad5, 0x9 + +gUnknown_0850DADE:: @ 850DADE + .incbin "baserom.gba", 0x50dade, 0x9 + +gUnknown_0850DAE7:: @ 850DAE7 + .incbin "baserom.gba", 0x50dae7, 0x9 + +gUnknown_0850DAF0:: @ 850DAF0 + .incbin "baserom.gba", 0x50daf0, 0x9 + +gUnknown_0850DAF9:: @ 850DAF9 + .incbin "baserom.gba", 0x50daf9, 0x9 + +gUnknown_0850DB02:: @ 850DB02 + .incbin "baserom.gba", 0x50db02, 0x9 + +gUnknown_0850DB0B:: @ 850DB0B + .incbin "baserom.gba", 0x50db0b, 0x9 + +gUnknown_0850DB14:: @ 850DB14 + .incbin "baserom.gba", 0x50db14, 0x9 + +gUnknown_0850DB1D:: @ 850DB1D + .incbin "baserom.gba", 0x50db1d, 0x9 + +gUnknown_0850DB26:: @ 850DB26 + .incbin "baserom.gba", 0x50db26, 0x9 + +gUnknown_0850DB2F:: @ 850DB2F + .incbin "baserom.gba", 0x50db2f, 0x9 + +gUnknown_0850DB38:: @ 850DB38 + .incbin "baserom.gba", 0x50db38, 0x9 + +gUnknown_0850DB41:: @ 850DB41 + .incbin "baserom.gba", 0x50db41, 0x9 + +gUnknown_0850DB4A:: @ 850DB4A + .incbin "baserom.gba", 0x50db4a, 0x9 + +gUnknown_0850DB53:: @ 850DB53 + .incbin "baserom.gba", 0x50db53, 0x9 + +gUnknown_0850DB5C:: @ 850DB5C + .incbin "baserom.gba", 0x50db5c, 0x10 + +gUnknown_0850DB6C:: @ 850DB6C + .incbin "baserom.gba", 0x50db6c, 0x10 + +gUnknown_0850DB7C:: @ 850DB7C + .incbin "baserom.gba", 0x50db7c, 0x24 + +gUnknown_0850DBA0:: @ 850DBA0 + .incbin "baserom.gba", 0x50dba0, 0x5 + +gUnknown_0850DBA5:: @ 850DBA5 + .incbin "baserom.gba", 0x50dba5, 0x5 + +gUnknown_0850DBAA:: @ 850DBAA + .incbin "baserom.gba", 0x50dbaa, 0x5 + +gUnknown_0850DBAF:: @ 850DBAF + .incbin "baserom.gba", 0x50dbaf, 0x5 + +gUnknown_0850DBB4:: @ 850DBB4 + .incbin "baserom.gba", 0x50dbb4, 0x5 + +gUnknown_0850DBB9:: @ 850DBB9 + .incbin "baserom.gba", 0x50dbb9, 0x5 + +gUnknown_0850DBBE:: @ 850DBBE + .incbin "baserom.gba", 0x50dbbe, 0x5 + +gUnknown_0850DBC3:: @ 850DBC3 + .incbin "baserom.gba", 0x50dbc3, 0x5 + +gUnknown_0850DBC8:: @ 850DBC8 + .incbin "baserom.gba", 0x50dbc8, 0x5 + +gUnknown_0850DBCD:: @ 850DBCD + .incbin "baserom.gba", 0x50dbcd, 0x5 + +gUnknown_0850DBD2:: @ 850DBD2 + .incbin "baserom.gba", 0x50dbd2, 0x5 + +gUnknown_0850DBD7:: @ 850DBD7 + .incbin "baserom.gba", 0x50dbd7, 0x5 + +gUnknown_0850DBDC:: @ 850DBDC + .incbin "baserom.gba", 0x50dbdc, 0x5 + +gUnknown_0850DBE1:: @ 850DBE1 + .incbin "baserom.gba", 0x50dbe1, 0x5 + +gUnknown_0850DBE6:: @ 850DBE6 + .incbin "baserom.gba", 0x50dbe6, 0x5 + +gUnknown_0850DBEB:: @ 850DBEB + .incbin "baserom.gba", 0x50dbeb, 0x5 + +gUnknown_0850DBF0:: @ 850DBF0 + .incbin "baserom.gba", 0x50dbf0, 0x5 + +gUnknown_0850DBF5:: @ 850DBF5 + .incbin "baserom.gba", 0x50dbf5, 0x5 + +gUnknown_0850DBFA:: @ 850DBFA + .incbin "baserom.gba", 0x50dbfa, 0x5 + +gUnknown_0850DBFF:: @ 850DBFF + .incbin "baserom.gba", 0x50dbff, 0x5 + +gUnknown_0850DC04:: @ 850DC04 + .incbin "baserom.gba", 0x50dc04, 0x5 + +gUnknown_0850DC09:: @ 850DC09 + .incbin "baserom.gba", 0x50dc09, 0x5 + +gUnknown_0850DC0E:: @ 850DC0E + .incbin "baserom.gba", 0x50dc0e, 0x5 + +gUnknown_0850DC13:: @ 850DC13 + .incbin "baserom.gba", 0x50dc13, 0x5 + +gUnknown_0850DC18:: @ 850DC18 + .incbin "baserom.gba", 0x50dc18, 0x5 + +gUnknown_0850DC1D:: @ 850DC1D + .incbin "baserom.gba", 0x50dc1d, 0x5 + +gUnknown_0850DC22:: @ 850DC22 + .incbin "baserom.gba", 0x50dc22, 0x5 + +gUnknown_0850DC27:: @ 850DC27 + .incbin "baserom.gba", 0x50dc27, 0x8 + +gUnknown_0850DC2F:: @ 850DC2F + .incbin "baserom.gba", 0x50dc2f, 0x10 + +gUnknown_0850DC3F:: @ 850DC3F + .incbin "baserom.gba", 0x50dc3f, 0x11 + +gUnknown_0850DC50:: @ 850DC50 + .incbin "baserom.gba", 0x50dc50, 0x298 + +gUnknown_0850DEE8:: @ 850DEE8 + .incbin "baserom.gba", 0x50dee8, 0xd4 + +gUnknown_0850DFBC:: @ 850DFBC + .incbin "baserom.gba", 0x50dfbc, 0x6 + +gUnknown_0850DFC2:: @ 850DFC2 + .incbin "baserom.gba", 0x50dfc2, 0x61a + +gUnknown_0850E5DC:: @ 850E5DC + .incbin "baserom.gba", 0x50e5dc, 0x8 + +gUnknown_0850E5E4:: @ 850E5E4 + .incbin "baserom.gba", 0x50e5e4, 0x18 + +gUnknown_0850E5FC:: @ 850E5FC + .incbin "baserom.gba", 0x50e5fc, 0x18 + +gUnknown_0850E614:: @ 850E614 + .incbin "baserom.gba", 0x50e614, 0x10 + +gUnknown_0850E624:: @ 850E624 + .incbin "baserom.gba", 0x50e624, 0x10 + +gUnknown_0850E634:: @ 850E634 + .incbin "baserom.gba", 0x50e634, 0x10 + +gUnknown_0850E644:: @ 850E644 + .incbin "baserom.gba", 0x50e644, 0x10 + +gUnknown_0850E654:: @ 850E654 + .incbin "baserom.gba", 0x50e654, 0xc + +gUnknown_0850E660:: @ 850E660 + .incbin "baserom.gba", 0x50e660, 0x4 + +gUnknown_0850E664:: @ 850E664 + .incbin "baserom.gba", 0x50e664, 0x10 + +gUnknown_0850E674:: @ 850E674 + .incbin "baserom.gba", 0x50e674, 0xe0 + +gUnknown_0850E754:: @ 850E754 + .incbin "baserom.gba", 0x50e754, 0x14 + +gUnknown_0850E768:: @ 850E768 + .incbin "baserom.gba", 0x50e768, 0xa + +gUnknown_0850E772:: @ 850E772 + .incbin "baserom.gba", 0x50e772, 0x48 + +gUnknown_0850E7BA:: @ 850E7BA + .incbin "baserom.gba", 0x50e7ba, 0x7a + +gUnknown_0850E834:: @ 850E834 + .incbin "baserom.gba", 0x50e834, 0xc + +gUnknown_0850E840:: @ 850E840 + .incbin "baserom.gba", 0x50e840, 0x6 + +gUnknown_0850E846:: @ 850E846 + .incbin "baserom.gba", 0x50e846, 0x4 + +gUnknown_0850E84A:: @ 850E84A + .incbin "baserom.gba", 0x50e84a, 0x6 + +gUnknown_0850E850:: @ 850E850 + .incbin "baserom.gba", 0x50e850, 0x2c + +gUnknown_0850E87C:: @ 850E87C + .incbin "baserom.gba", 0x50e87c, 0x1680 + +gUnknown_0850FEFC:: @ 850FEFC + .incbin "baserom.gba", 0x50fefc, 0x280 + +gUnknown_0851017C:: @ 851017C + .incbin "baserom.gba", 0x51017c, 0xa0 + +gUnknown_0851021C:: @ 851021C + .incbin "baserom.gba", 0x51021c, 0xa0 + +gUnknown_085102BC:: @ 85102BC + .incbin "baserom.gba", 0x5102bc, 0x4 + +gUnknown_085102C0:: @ 85102C0 + .incbin "baserom.gba", 0x5102c0, 0x14 + +gUnknown_085102D4:: @ 85102D4 + .incbin "baserom.gba", 0x5102d4, 0xc + +gUnknown_085102E0:: @ 85102E0 + .incbin "baserom.gba", 0x5102e0, 0x68 + +gUnknown_08510348:: @ 8510348 + .incbin "baserom.gba", 0x510348, 0x20 + +gUnknown_08510368:: @ 8510368 + .incbin "baserom.gba", 0x510368, 0x20 + +gUnknown_08510388:: @ 8510388 + .incbin "baserom.gba", 0x510388, 0x20 + +gUnknown_085103A8:: @ 85103A8 + .incbin "baserom.gba", 0x5103a8, 0x20 + +gUnknown_085103C8:: @ 85103C8 + .incbin "baserom.gba", 0x5103c8, 0x34 + +gUnknown_085103FC:: @ 85103FC + .incbin "baserom.gba", 0x5103fc, 0x8 + +gUnknown_08510404:: @ 8510404 + .incbin "baserom.gba", 0x510404, 0x4 + +gUnknown_08510408:: @ 8510408 + .incbin "baserom.gba", 0x510408, 0x14 + +gUnknown_0851041C:: @ 851041C + .incbin "baserom.gba", 0x51041c, 0x4 + +gUnknown_08510420:: @ 8510420 + .incbin "baserom.gba", 0x510420, 0xa4 + +gUnknown_085104C4:: @ 85104C4 + .incbin "baserom.gba", 0x5104c4, 0x2c + +gUnknown_085104F0:: @ 85104F0 + .incbin "baserom.gba", 0x5104f0, 0x18 + +gUnknown_08510508:: @ 8510508 + .incbin "baserom.gba", 0x510508, 0x8 + +gUnknown_08510510:: @ 8510510 + .incbin "baserom.gba", 0x510510, 0x20 + +gUnknown_08510530:: @ 8510530 + .incbin "baserom.gba", 0x510530, 0x8 + +gUnknown_08510538:: @ 8510538 + .incbin "baserom.gba", 0x510538, 0x8 + +gUnknown_08510540:: @ 8510540 + .incbin "baserom.gba", 0x510540, 0x68 + +gUnknown_085105A8:: @ 85105A8 + .incbin "baserom.gba", 0x5105a8, 0x4 + +gUnknown_085105AC:: @ 85105AC + .incbin "baserom.gba", 0x5105ac, 0x10 + +gUnknown_085105BC:: @ 85105BC + .incbin "baserom.gba", 0x5105bc, 0x1a8 + +gUnknown_08510764:: @ 8510764 + .incbin "baserom.gba", 0x510764, 0xb60 + +gUnknown_085112C4:: @ 85112C4 + .incbin "baserom.gba", 0x5112c4, 0x908 + +gUnknown_08511BCC:: @ 8511BCC + .incbin "baserom.gba", 0x511bcc, 0x9a8 + +gUnknown_08512574:: @ 8512574 + .incbin "baserom.gba", 0x512574, 0x8e0 + +gUnknown_08512E54:: @ 8512E54 + .incbin "baserom.gba", 0x512e54, 0x320 + +gUnknown_08513174:: @ 8513174 + .incbin "baserom.gba", 0x513174, 0x510 + +gUnknown_08513684:: @ 8513684 + .incbin "baserom.gba", 0x513684, 0x210 + +gUnknown_08513894:: @ 8513894 + .incbin "baserom.gba", 0x513894, 0xb50 + +gUnknown_085143E4:: @ 85143E4 + .incbin "baserom.gba", 0x5143e4, 0x210 + +gUnknown_085145F4:: @ 85145F4 + .incbin "baserom.gba", 0x5145f4, 0x810 + +gUnknown_08514E04:: @ 8514E04 + .incbin "baserom.gba", 0x514e04, 0x540 + +gUnknown_08515344:: @ 8515344 + .incbin "baserom.gba", 0x515344, 0x20 + +gUnknown_08515364:: @ 8515364 + .incbin "baserom.gba", 0x515364, 0x20 + +gUnknown_08515384:: @ 8515384 + .incbin "baserom.gba", 0x515384, 0x30 + +gUnknown_085153B4:: @ 85153B4 + .incbin "baserom.gba", 0x5153b4, 0x30 + +gUnknown_085153E4:: @ 85153E4 + .incbin "baserom.gba", 0x5153e4, 0x10 + +gUnknown_085153F4:: @ 85153F4 + .incbin "baserom.gba", 0x5153f4, 0x410 + +gUnknown_08515804:: @ 8515804 + .incbin "baserom.gba", 0x515804, 0x20 + +gUnknown_08515824:: @ 8515824 + .incbin "baserom.gba", 0x515824, 0x140 + +gUnknown_08515964:: @ 8515964 + .incbin "baserom.gba", 0x515964, 0x428 + +gUnknown_08515D8C:: @ 8515D8C + .incbin "baserom.gba", 0x515d8c, 0x430 + +gUnknown_085161BC:: @ 85161BC + .incbin "baserom.gba", 0x5161bc, 0x20 + +gUnknown_085161DC:: @ 85161DC + .incbin "baserom.gba", 0x5161dc, 0x320 + +gUnknown_085164FC:: @ 85164FC + .incbin "baserom.gba", 0x5164fc, 0x310 + +gUnknown_0851680C:: @ 851680C + .incbin "baserom.gba", 0x51680c, 0x310 + +gUnknown_08516B1C:: @ 8516B1C + .incbin "baserom.gba", 0x516b1c, 0x210 + +gUnknown_08516D2C:: @ 8516D2C + .incbin "baserom.gba", 0x516d2c, 0x110 + +gUnknown_08516E3C:: @ 8516E3C + .incbin "baserom.gba", 0x516e3c, 0xc08 + +gUnknown_08517A44:: @ 8517A44 + .incbin "baserom.gba", 0x517a44, 0xc + +gUnknown_08517A50:: @ 8517A50 + .incbin "baserom.gba", 0x517a50, 0x1ac + +gUnknown_08517BFC:: @ 8517BFC + .incbin "baserom.gba", 0x517bfc, 0x10 + +gUnknown_08517C0C:: @ 8517C0C + .incbin "baserom.gba", 0x517c0c, 0x428 + +gUnknown_08518034:: @ 8518034 + .incbin "baserom.gba", 0x518034, 0x268 + +gUnknown_0851829C:: @ 851829C + .incbin "baserom.gba", 0x51829c, 0x8028 + +gUnknown_085202C4:: @ 85202C4 + .incbin "baserom.gba", 0x5202c4, 0x45a0 + +gUnknown_08524864:: @ 8524864 + .incbin "baserom.gba", 0x524864, 0xc + +gUnknown_08524870:: @ 8524870 + .incbin "baserom.gba", 0x524870, 0xc + +gUnknown_0852487C:: @ 852487C + .incbin "baserom.gba", 0x52487c, 0x10 + +gDummyPaletteStructTemplate:: @ 852488C + .2byte 0xFFFF + .space 9 + .byte 0x20 + .space 4 + + .align 2 +gUnknown_0852489C:: @ 852489C + .incbin "baserom.gba", 0x52489c, 0x20 + +sFanfares:: @ 85248BC + .incbin "baserom.gba", 0x5248bc, 0x288 + +gUnknown_08524B44:: @ 8524B44 + .incbin "baserom.gba", 0x524b44, 0x1d0 + +gUnknown_08524D14:: @ 8524D14 + .incbin "baserom.gba", 0x524d14, 0x270 + +gUnknown_08524F84:: @ 8524F84 + .incbin "baserom.gba", 0x524f84, 0x308 + +gUnknown_0852528C:: @ 852528C + .incbin "baserom.gba", 0x52528c, 0x120 + +gUnknown_085253AC:: @ 85253AC + .incbin "baserom.gba", 0x5253ac, 0x270 + +gUnknown_0852561C:: @ 852561C + .incbin "baserom.gba", 0x52561c, 0x270 + +gUnknown_0852588C:: @ 852588C + .incbin "baserom.gba", 0x52588c, 0x308 + +gUnknown_08525B94:: @ 8525B94 + .incbin "baserom.gba", 0x525b94, 0x120 + +gUnknown_08525CB4:: @ 8525CB4 + .incbin "baserom.gba", 0x525cb4, 0xa0 + +gUnknown_08525D54:: @ 8525D54 + .incbin "baserom.gba", 0x525d54, 0x144 + +gUnknown_08525E98:: @ 8525E98 + .incbin "baserom.gba", 0x525e98, 0xc0 + +gUnknown_08525F58:: @ 8525F58 + .incbin "baserom.gba", 0x525f58, 0x20 + +gUnknown_08525F78:: @ 8525F78 + .incbin "baserom.gba", 0x525f78, 0x10 + +gUnknown_08525F88:: @ 8525F88 + .incbin "baserom.gba", 0x525f88, 0x4 + +gUnknown_08525F8C:: @ 8525F8C + .incbin "baserom.gba", 0x525f8c, 0x4 + +gUnknown_08525F90:: @ 8525F90 + .incbin "baserom.gba", 0x525f90, 0x30 + +gUnknown_08525FC0:: @ 8525FC0 + .incbin "baserom.gba", 0x525fc0, 0x18f80 + +gUnknown_0853EF40:: @ 853EF40 + .incbin "baserom.gba", 0x53ef40, 0x8 + +gUnknown_0853EF48:: @ 853EF48 + .incbin "baserom.gba", 0x53ef48, 0x18 + +gUnknown_0853EF60:: @ 853EF60 + .incbin "baserom.gba", 0x53ef60, 0xf8 + +gTitleScreenRayquazaTiles:: @ 853F058 + .incbin "graphics/title_screen/rayquaza.4bpp.lz" + + .align 2 +gUnknown_0853F83C:: @ 853F83C + .incbin "baserom.gba", 0x53f83c, 0x450 + +gTitleScreenCloudsTiles:: @ 853FC8C + .incbin "graphics/title_screen/clouds.4bpp.lz" + + .align 2 +gUnknown_0853FF70:: @ 853FF70 + .incbin "baserom.gba", 0x53ff70, 0xa8 + +gUnknown_08540018:: @ 8540018 + .incbin "baserom.gba", 0x540018, 0x18 + +gUnknown_08540030:: @ 8540030 + .incbin "baserom.gba", 0x540030, 0x18 + +gUnknown_08540048:: @ 8540048 + .incbin "baserom.gba", 0x540048, 0x90 + +gUnknown_085400D8:: @ 85400D8 + .incbin "baserom.gba", 0x5400d8, 0x18 + +gUnknown_085400F0:: @ 85400F0 + .incbin "baserom.gba", 0x5400f0, 0x10 + +gUnknown_08540100:: @ 8540100 + .incbin "baserom.gba", 0x540100, 0x24 + +gUnknown_08540124:: @ 8540124 + .incbin "baserom.gba", 0x540124, 0x18 + +gUnknown_0854013C:: @ 854013C + .incbin "baserom.gba", 0x54013c, 0x10 + +gUnknown_0854014C:: @ 854014C + .incbin "baserom.gba", 0x54014c, 0xc000 + +gUnknown_0854C14C:: @ 854C14C + .incbin "baserom.gba", 0x54c14c, 0x4 + +gUnknown_0854C150:: @ 854C150 + .incbin "baserom.gba", 0x54c150, 0xf0 + +gUnknown_0854C240:: @ 854C240 + .incbin "baserom.gba", 0x54c240, 0x10 + +gUnknown_0854C250:: @ 854C250 + .incbin "baserom.gba", 0x54c250, 0x20 + +gUnknown_0854C270:: @ 854C270 + .incbin "baserom.gba", 0x54c270, 0x20 + +gUnknown_0854C290:: @ 854C290 + .incbin "baserom.gba", 0x54c290, 0x20 + +gUnknown_0854C2B0:: @ 854C2B0 + .incbin "baserom.gba", 0x54c2b0, 0x820 + +gUnknown_0854CAD0:: @ 854CAD0 + .incbin "baserom.gba", 0x54cad0, 0x3080 + +gUnknown_0854FB50:: @ 854FB50 + .incbin "baserom.gba", 0x54fb50, 0xc + +gUnknown_0854FB5C:: @ 854FB5C + .incbin "baserom.gba", 0x54fb5c, 0x1c + +gUnknown_0854FB78:: @ 854FB78 + .incbin "baserom.gba", 0x54fb78, 0x18 + +gUnknown_0854FB90:: @ 854FB90 + .incbin "baserom.gba", 0x54fb90, 0x9c + +gUnknown_0854FC2C:: @ 854FC2C + .incbin "baserom.gba", 0x54fc2c, 0x18 + +gUnknown_0854FC44:: @ 854FC44 + .incbin "baserom.gba", 0x54fc44, 0x8 + +gUnknown_0854FC4C:: @ 854FC4C + .incbin "baserom.gba", 0x54fc4c, 0x8 + +gUnknown_0854FC54:: @ 854FC54 + .incbin "baserom.gba", 0x54fc54, 0x38 + +gUnknown_0854FC8C:: @ 854FC8C + .incbin "baserom.gba", 0x54fc8c, 0x8c + +gUnknown_0854FD18:: @ 854FD18 + .incbin "baserom.gba", 0x54fd18, 0x18 + +gUnknown_0854FD30:: @ 854FD30 + .incbin "baserom.gba", 0x54fd30, 0x8 + +gUnknown_0854FD38:: @ 854FD38 + .incbin "baserom.gba", 0x54fd38, 0x20 + +gUnknown_0854FD58:: @ 854FD58 + .incbin "baserom.gba", 0x54fd58, 0x18 + +gUnknown_0854FD70:: @ 854FD70 + .incbin "baserom.gba", 0x54fd70, 0x1c + +gUnknown_0854FD8C:: @ 854FD8C + .incbin "baserom.gba", 0x54fd8c, 0x38 + +gUnknown_0854FDC4:: @ 854FDC4 + .incbin "baserom.gba", 0x54fdc4, 0x18 + +gUnknown_0854FDDC:: @ 854FDDC + .incbin "baserom.gba", 0x54fddc, 0x8 + +gUnknown_0854FDE4:: @ 854FDE4 + .incbin "baserom.gba", 0x54fde4, 0xc + +gUnknown_0854FDF0:: @ 854FDF0 + .incbin "baserom.gba", 0x54fdf0, 0x8 + +gUnknown_0854FDF8:: @ 854FDF8 + .incbin "baserom.gba", 0x54fdf8, 0x8 + +gUnknown_0854FE00:: @ 854FE00 + .incbin "baserom.gba", 0x54fe00, 0x44 + +gUnknown_0854FE44:: @ 854FE44 + .incbin "baserom.gba", 0x54fe44, 0x18 + +gUnknown_0854FE5C:: @ 854FE5C + .incbin "baserom.gba", 0x54fe5c, 0x4 + +gUnknown_0854FE60:: @ 854FE60 + .incbin "baserom.gba", 0x54fe60, 0x4 + +gUnknown_0854FE64:: @ 854FE64 + .incbin "baserom.gba", 0x54fe64, 0x14 + +gUnknown_0854FE78:: @ 854FE78 + .incbin "baserom.gba", 0x54fe78, 0x4 + +gUnknown_0854FE7C:: @ 854FE7C + .incbin "baserom.gba", 0x54fe7c, 0xc + +gUnknown_0854FE88:: @ 854FE88 + .incbin "baserom.gba", 0x54fe88, 0x8 + +gUnknown_0854FE90:: @ 854FE90 + .incbin "baserom.gba", 0x54fe90, 0x8 + +gUnknown_0854FE98:: @ 854FE98 + .incbin "baserom.gba", 0x54fe98, 0xc + +gUnknown_0854FEA4:: @ 854FEA4 + .incbin "baserom.gba", 0x54fea4, 0x3 + +gUnknown_0854FEA7:: @ 854FEA7 + .incbin "baserom.gba", 0x54fea7, 0x5 + +gUnknown_0854FEAC:: @ 854FEAC + .incbin "baserom.gba", 0x54feac, 0x48 + +gUnknown_0854FEF4:: @ 854FEF4 + .incbin "baserom.gba", 0x54fef4, 0x48 + +gUnknown_0854FF3C:: @ 854FF3C + .incbin "baserom.gba", 0x54ff3c, 0x48 + +gUnknown_0854FF84:: @ 854FF84 + .incbin "baserom.gba", 0x54ff84, 0x48 + +gUnknown_0854FFCC:: @ 854FFCC + .incbin "baserom.gba", 0x54ffcc, 0x48 + +gUnknown_08550014:: @ 8550014 + .incbin "baserom.gba", 0x550014, 0x48 + +gUnknown_0855005C:: @ 855005C + .incbin "baserom.gba", 0x55005c, 0x48 + +gUnknown_085500A4:: @ 85500A4 + .incbin "baserom.gba", 0x5500a4, 0x4e0 + +gUnknown_08550584:: @ 8550584 + .incbin "baserom.gba", 0x550584, 0x10 + +gUnknown_08550594:: @ 8550594 + .incbin "baserom.gba", 0x550594, 0x8 + +gUnknown_0855059C:: @ 855059C + .incbin "baserom.gba", 0x55059c, 0x190 + +gUnknown_0855072C:: @ 855072C + .incbin "baserom.gba", 0x55072c, 0x10 + +gUnknown_0855073C:: @ 855073C + .incbin "baserom.gba", 0x55073c, 0x30 + +gUnknown_0855076C:: @ 855076C + .incbin "baserom.gba", 0x55076c, 0x48 + +gUnknown_085507B4:: @ 85507B4 + .incbin "baserom.gba", 0x5507b4, 0x18 + +gUnknown_085507CC:: @ 85507CC + .incbin "baserom.gba", 0x5507cc, 0x18 + +@ 85507E4 + .include "data/wild_mons.inc" + + .incbin "baserom.gba", 0x55370c, 0x188 + +gUnknown_08553894:: @ 8553894 + .incbin "baserom.gba", 0x553894, 0x180 + +gUnknown_08553A14:: @ 8553A14 + .incbin "baserom.gba", 0x553a14, 0x64 + +gUnknown_08553A78:: @ 8553A78 + .incbin "baserom.gba", 0x553a78, 0x4 + +gUnknown_08553A7C:: @ 8553A7C + .incbin "baserom.gba", 0x553a7c, 0x14 + + .align 2 +gNewGameBirchPic:: @ 8553A90 + .incbin "graphics/birch_speech/birch.4bpp" + + .incbin "baserom.gba", 0x554290, 0x66c0 + + .align 2 +gNewGameBirchPalette:: @ 855A950 + .incbin "graphics/birch_speech/birch.gbapal" + + .align 2 + .incbin "baserom.gba", 0x55a970, 0x20 + + .align 2 +gFieldEffectObjectPalette4:: @ 855A990 + .incbin "graphics/map_objects/palettes/field_effect_object_palette_04.gbapal" + + .incbin "baserom.gba", 0x55a9b0, 0x480 + + .align 2 +gFieldEffectObjectPalette5:: @ 855AE30 + .incbin "graphics/map_objects/palettes/field_effect_object_palette_05.gbapal" + +gUnknown_0855AE50:: @ 855AE50 + .incbin "baserom.gba", 0x55ae50, 0x200 + +gUnknown_0855B050:: @ 855B050 + .incbin "baserom.gba", 0x55b050, 0x20 + +gUnknown_0855B070:: @ 855B070 + .incbin "baserom.gba", 0x55b070, 0x280 + +gUnknown_0855B2F0:: @ 855B2F0 + .incbin "baserom.gba", 0x55b2f0, 0x80 + +gUnknown_0855B370:: @ 855B370 + .incbin "baserom.gba", 0x55b370, 0x20 + +gUnknown_0855B390:: @ 855B390 + .incbin "baserom.gba", 0x55b390, 0x280 + +gUnknown_0855B610:: @ 855B610 + .incbin "baserom.gba", 0x55b610, 0x20 + +gUnknown_0855B630:: @ 855B630 + .incbin "baserom.gba", 0x55b630, 0xbc0 + +gUnknown_0855C1F0:: @ 855C1F0 + .incbin "baserom.gba", 0x55c1f0, 0x20 + + .align 2 +@ TODO: something else uses these too +gNewGameBirchOamAttributes:: @ 855C210 + .4byte OAM_SIZE_64x64 + .2byte 0 + + .align 2 + .incbin "baserom.gba", 0x55c218, 0x10 + + .align 2 +gNewGameBirchPicTable:: @ 855C228 + obj_tiles gNewGameBirchPic, 0x800 + + .align 2 +gNewGameBirchObjectPaletteInfo:: @ 855C230 + obj_pal gNewGameBirchPalette, 0x1006 + + .align 2 +gNewGameBirchImageAnim:: @ 855C238 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gNewGameBirchImageAnimTable:: @ 855C240 + .4byte gNewGameBirchImageAnim + + .align 2 +gNewGameBirchObjectTemplate:: @ 855C244 + .2byte 0xFFFF @ tiles tag + .2byte 0x1006 @ palette tag + .4byte gNewGameBirchOamAttributes + .4byte gNewGameBirchImageAnimTable + .4byte gNewGameBirchPicTable + .4byte gDummySpriteAffineAnimTable + .4byte SpriteCallbackDummy + + .align 2 +gFieldEffectObjectPaletteInfo4:: @ 855C25C + obj_pal gFieldEffectObjectPalette4, 0x1007 + + .align 2 +gFieldEffectObjectPaletteInfo5:: @ 855C264 + obj_pal gFieldEffectObjectPalette5, 0x1010 + + .incbin "baserom.gba", 0x55c26c, 0x40 + +gUnknown_0855C2AC:: @ 855C2AC + .incbin "baserom.gba", 0x55c2ac, 0x18 + +gUnknown_0855C2C4:: @ 855C2C4 + .incbin "baserom.gba", 0x55c2c4, 0x40 + +gUnknown_0855C304:: @ 855C304 + .incbin "baserom.gba", 0x55c304, 0x18 + +gUnknown_0855C31C:: @ 855C31C + .incbin "baserom.gba", 0x55c31c, 0x18 + +gUnknown_0855C334:: @ 855C334 + .incbin "baserom.gba", 0x55c334, 0x18 + +gUnknown_0855C34C:: @ 855C34C + .incbin "baserom.gba", 0x55c34c, 0x18 + +gUnknown_0855C364:: @ 855C364 + .incbin "baserom.gba", 0x55c364, 0x10 + +gUnknown_0855C374:: @ 855C374 + .incbin "baserom.gba", 0x55c374, 0x10 + +gUnknown_0855C384:: @ 855C384 + .incbin "baserom.gba", 0x55c384, 0x20 + +gUnknown_0855C3A4:: @ 855C3A4 + .incbin "baserom.gba", 0x55c3a4, 0x18 + +gUnknown_0855C3BC:: @ 855C3BC + .incbin "baserom.gba", 0x55c3bc, 0x4 + +gUnknown_0855C3C0:: @ 855C3C0 + .incbin "baserom.gba", 0x55c3c0, 0x4 + +gUnknown_0855C3C4:: @ 855C3C4 + .incbin "baserom.gba", 0x55c3c4, 0x4 + +gUnknown_0855C3C8:: @ 855C3C8 + .incbin "baserom.gba", 0x55c3c8, 0x1c + +gUnknown_0855C3E4:: @ 855C3E4 + .incbin "baserom.gba", 0x55c3e4, 0x18 + +gUnknown_0855C3FC:: @ 855C3FC + .incbin "baserom.gba", 0x55c3fc, 0x1c + +gUnknown_0855C418:: @ 855C418 + .incbin "baserom.gba", 0x55c418, 0x14 + +gUnknown_0855C42C:: @ 855C42C + .incbin "baserom.gba", 0x55c42c, 0xc + +gUnknown_0855C438:: @ 855C438 + .incbin "baserom.gba", 0x55c438, 0x18 + +gUnknown_0855C450:: @ 855C450 + .incbin "baserom.gba", 0x55c450, 0x10 + +gUnknown_0855C460:: @ 855C460 + .incbin "baserom.gba", 0x55c460, 0x14 + +gUnknown_0855C474:: @ 855C474 + .incbin "baserom.gba", 0x55c474, 0x8 + +gUnknown_0855C47C:: @ 855C47C + .incbin "baserom.gba", 0x55c47c, 0x8 + +gUnknown_0855C484:: @ 855C484 + .incbin "baserom.gba", 0x55c484, 0x8 + +gUnknown_0855C48C:: @ 855C48C + .incbin "baserom.gba", 0x55c48c, 0x10 + +gUnknown_0855C49C:: @ 855C49C + .incbin "baserom.gba", 0x55c49c, 0xc + +gUnknown_0855C4A8:: @ 855C4A8 + .incbin "baserom.gba", 0x55c4a8, 0x1c + +gUnknown_0855C4C4:: @ 855C4C4 + .incbin "baserom.gba", 0x55c4c4, 0x1c + +gUnknown_0855C4E0:: @ 855C4E0 + .incbin "baserom.gba", 0x55c4e0, 0x14 + +gUnknown_0855C4F4:: @ 855C4F4 + .incbin "baserom.gba", 0x55c4f4, 0x54 + +gUnknown_0855C548:: @ 855C548 + .incbin "baserom.gba", 0x55c548, 0x8 + +gUnknown_0855C550:: @ 855C550 + .incbin "baserom.gba", 0x55c550, 0x1c + +gUnknown_0855C56C:: @ 855C56C + .incbin "baserom.gba", 0x55c56c, 0x24 + +gUnknown_0855C590:: @ 855C590 + .incbin "baserom.gba", 0x55c590, 0x5c + +gUnknown_0855C5EC:: @ 855C5EC + .incbin "baserom.gba", 0x55c5ec, 0x18 + +gUnknown_0855C604:: @ 855C604 + .incbin "baserom.gba", 0x55c604, 0x60 + +gUnknown_0855C664:: @ 855C664 + .incbin "baserom.gba", 0x55c664, 0x1c + +gUnknown_0855C680:: @ 855C680 + .incbin "baserom.gba", 0x55c680, 0x18 + +gUnknown_0855C698:: @ 855C698 + .incbin "baserom.gba", 0x55c698, 0x8 + +gUnknown_0855C6A0:: @ 855C6A0 + .incbin "baserom.gba", 0x55c6a0, 0x4 + +gUnknown_0855C6A4:: @ 855C6A4 + .incbin "baserom.gba", 0x55c6a4, 0x336 + +gUnknown_0855C9DA:: @ 855C9DA + .incbin "baserom.gba", 0x55c9da, 0x304 + +gUnknown_0855CCDE:: @ 855CCDE + .incbin "baserom.gba", 0x55ccde, 0x4b6 + +gUnknown_0855D194:: @ 855D194 + .incbin "baserom.gba", 0x55d194, 0x18 + +gUnknown_0855D1AC:: @ 855D1AC + .incbin "baserom.gba", 0x55d1ac, 0x18 + +gUnknown_0855D1C4:: @ 855D1C4 + .incbin "baserom.gba", 0x55d1c4, 0x18 + +gUnknown_0855D1DC:: @ 855D1DC + .incbin "baserom.gba", 0x55d1dc, 0x18 + +gUnknown_0855D1F4:: @ 855D1F4 + .incbin "baserom.gba", 0x55d1f4, 0x18 + +gUnknown_0855D20C:: @ 855D20C + .incbin "baserom.gba", 0x55d20c, 0x18 + +gUnknown_0855D224:: @ 855D224 + .incbin "baserom.gba", 0x55d224, 0x18 + +gUnknown_0855D23C:: @ 855D23C + .incbin "baserom.gba", 0x55d23c, 0x18 + +gUnknown_0855D254:: @ 855D254 + .incbin "baserom.gba", 0x55d254, 0x18 + +gUnknown_0855D26C:: @ 855D26C + .incbin "baserom.gba", 0x55d26c, 0x10 + +gUnknown_0855D27C:: @ 855D27C + .incbin "baserom.gba", 0x55d27c, 0x10 + +gUnknown_0855D28C:: @ 855D28C + .incbin "baserom.gba", 0x55d28c, 0x5 + +gUnknown_0855D291:: @ 855D291 + .incbin "baserom.gba", 0x55d291, 0x7 + +gUnknown_0855D298:: @ 855D298 + .incbin "baserom.gba", 0x55d298, 0x10 + +gUnknown_0855D2A8:: @ 855D2A8 + .incbin "baserom.gba", 0x55d2a8, 0x10 + +gUnknown_0855D2B8:: @ 855D2B8 + .incbin "baserom.gba", 0x55d2b8, 0x6 + +gUnknown_0855D2BE:: @ 855D2BE + .incbin "baserom.gba", 0x55d2be, 0x40 + +gUnknown_0855D2FE:: @ 855D2FE + .incbin "baserom.gba", 0x55d2fe, 0xe + +gUnknown_0855D30C:: @ 855D30C + .string "$" + +@ 855D30D + .include "data/text/pokedex_text.inc" + +@ 856B5B0 + .include "data/pokedex_entries.inc" + +gUnknown_0856E610:: @ 856E610 + .incbin "baserom.gba", 0x56e610, 0x20 + +gUnknown_0856E630:: @ 856E630 + .incbin "baserom.gba", 0x56e630, 0x10 + +gUnknown_0856E640:: @ 856E640 + .incbin "baserom.gba", 0x56e640, 0x28 + +gUnknown_0856E668:: @ 856E668 + .incbin "baserom.gba", 0x56e668, 0x8 + +gUnknown_0856E670:: @ 856E670 + .incbin "baserom.gba", 0x56e670, 0x18 + +gUnknown_0856E688:: @ 856E688 + .incbin "baserom.gba", 0x56e688, 0xc + +@ 856E694 + .include "data/graphics/pokemon/mon_footprint_table.inc" + +gUnknown_0856ED08:: @ 856ED08 + .incbin "baserom.gba", 0x56ed08, 0x28 + +gUnknown_0856ED30:: @ 856ED30 + .incbin "baserom.gba", 0x56ed30, 0x18 + +gUnknown_0856ED48:: @ 856ED48 + .incbin "baserom.gba", 0x56ed48, 0x54 + +gUnknown_0856ED9C:: @ 856ED9C + .incbin "baserom.gba", 0x56ed9c, 0x1c + +gUnknown_0856EDB8:: @ 856EDB8 + .incbin "baserom.gba", 0x56edb8, 0x1c + +gUnknown_0856EDD4:: @ 856EDD4 + .incbin "baserom.gba", 0x56edd4, 0x1c + +gUnknown_0856EDF0:: @ 856EDF0 + .incbin "baserom.gba", 0x56edf0, 0x1c + +gUnknown_0856EE0C:: @ 856EE0C + .incbin "baserom.gba", 0x56ee0c, 0x18 + +gUnknown_0856EE24:: @ 856EE24 + .incbin "baserom.gba", 0x56ee24, 0x38 + +gUnknown_0856EE5C:: @ 856EE5C + .incbin "baserom.gba", 0x56ee5c, 0x58 + +gUnknown_0856EEB4:: @ 856EEB4 + .incbin "baserom.gba", 0x56eeb4, 0x60 + +gUnknown_0856EF14:: @ 856EF14 + .incbin "baserom.gba", 0x56ef14, 0x98 + +gUnknown_0856EFAC:: @ 856EFAC + .incbin "baserom.gba", 0x56efac, 0x2 + +gUnknown_0856EFAE:: @ 856EFAE + .incbin "baserom.gba", 0x56efae, 0x6 + +gUnknown_0856EFB4:: @ 856EFB4 + .incbin "baserom.gba", 0x56efb4, 0x14 + +gUnknown_0856EFC8:: @ 856EFC8 + .incbin "baserom.gba", 0x56efc8, 0x30 + +gUnknown_0856EFF8:: @ 856EFF8 + .incbin "baserom.gba", 0x56eff8, 0x10 + +gUnknown_0856F008:: @ 856F008 + .incbin "baserom.gba", 0x56f008, 0x10 + +gUnknown_0856F018:: @ 856F018 + .incbin "baserom.gba", 0x56f018, 0x494 + +gUnknown_0856F4AC:: @ 856F4AC + .incbin "baserom.gba", 0x56f4ac, 0x20 + +gUnknown_0856F4CC:: @ 856F4CC + .incbin "baserom.gba", 0x56f4cc, 0x20 + +gUnknown_0856F4EC:: @ 856F4EC + .incbin "baserom.gba", 0x56f4ec, 0x20 + +gUnknown_0856F50C:: @ 856F50C + .incbin "baserom.gba", 0x56f50c, 0x20 + +gUnknown_0856F52C:: @ 856F52C + .incbin "baserom.gba", 0x56f52c, 0x20 + +gUnknown_0856F54C:: @ 856F54C + .incbin "baserom.gba", 0x56f54c, 0x20 + +gUnknown_0856F56C:: @ 856F56C + .incbin "baserom.gba", 0x56f56c, 0x20 + +gUnknown_0856F58C:: @ 856F58C + .incbin "baserom.gba", 0x56f58c, 0x20 + +gUnknown_0856F5AC:: @ 856F5AC + .incbin "baserom.gba", 0x56f5ac, 0x20 + +gUnknown_0856F5CC:: @ 856F5CC + .incbin "baserom.gba", 0x56f5cc, 0x248 + +gUnknown_0856F814:: @ 856F814 + .incbin "baserom.gba", 0x56f814, 0x2a0 + +gUnknown_0856FAB4:: @ 856FAB4 + .incbin "baserom.gba", 0x56fab4, 0x10 + +gUnknown_0856FAC4:: @ 856FAC4 + .incbin "baserom.gba", 0x56fac4, 0x20 + +gUnknown_0856FAE4:: @ 856FAE4 + .incbin "baserom.gba", 0x56fae4, 0x14 + +gUnknown_0856FAF8:: @ 856FAF8 + .incbin "baserom.gba", 0x56faf8, 0x14 + +gUnknown_0856FB0C:: @ 856FB0C + .incbin "baserom.gba", 0x56fb0c, 0x3 + +gUnknown_0856FB0F:: @ 856FB0F + .incbin "baserom.gba", 0x56fb0f, 0x9 + +gUnknown_0856FB18:: @ 856FB18 + .incbin "baserom.gba", 0x56fb18, 0x8 + +gUnknown_0856FB20:: @ 856FB20 + .incbin "baserom.gba", 0x56fb20, 0x8 + +gUnknown_0856FB28:: @ 856FB28 + .incbin "baserom.gba", 0x56fb28, 0x18 + +gUnknown_0856FB40:: @ 856FB40 + .incbin "baserom.gba", 0x56fb40, 0x8 + +gUnknown_0856FB48:: @ 856FB48 + .incbin "baserom.gba", 0x56fb48, 0x2 + +gUnknown_0856FB4A:: @ 856FB4A + .incbin "baserom.gba", 0x56fb4a, 0x2 + +gUnknown_0856FB4C:: @ 856FB4C + .incbin "baserom.gba", 0x56fb4c, 0x9 + +gUnknown_0856FB55:: @ 856FB55 + .incbin "baserom.gba", 0x56fb55, 0x2 + +gUnknown_0856FB57:: @ 856FB57 + .incbin "baserom.gba", 0x56fb57, 0x5 + +gUnknown_0856FB5C:: @ 856FB5C + .incbin "baserom.gba", 0x56fb5c, 0xc + +gUnknown_0856FB68:: @ 856FB68 + .incbin "baserom.gba", 0x56fb68, 0x6 + +gUnknown_0856FB6E:: @ 856FB6E + .incbin "baserom.gba", 0x56fb6e, 0x6 + +gUnknown_0856FB74:: @ 856FB74 + .incbin "baserom.gba", 0x56fb74, 0x4 + +gUnknown_0856FB78:: @ 856FB78 + .incbin "baserom.gba", 0x56fb78, 0x44 + +gUnknown_0856FBBC:: @ 856FBBC + .incbin "baserom.gba", 0x56fbbc, 0x1244 + +gUnknown_08570E00:: @ 8570E00 + .incbin "baserom.gba", 0x570e00, 0x260 + +gUnknown_08571060:: @ 8571060 + .incbin "baserom.gba", 0x571060, 0x260 + +gUnknown_085712C0:: @ 85712C0 + .incbin "baserom.gba", 0x5712c0, 0x38 + +gUnknown_085712F8:: @ 85712F8 + .incbin "baserom.gba", 0x5712f8, 0xe8 + +gUnknown_085713E0:: @ 85713E0 + .incbin "baserom.gba", 0x5713e0, 0x8 + +gUnknown_085713E8:: @ 85713E8 + .incbin "baserom.gba", 0x5713e8, 0xc + +gUnknown_085713F4:: @ 85713F4 + .incbin "baserom.gba", 0x5713f4, 0xc + +gUnknown_08571400:: @ 8571400 + .incbin "baserom.gba", 0x571400, 0x28 + +gUnknown_08571428:: @ 8571428 + .incbin "baserom.gba", 0x571428, 0x20 + +gUnknown_08571448:: @ 8571448 + .incbin "baserom.gba", 0x571448, 0x3 + +gUnknown_0857144B:: @ 857144B + .incbin "baserom.gba", 0x57144b, 0x3 + +gUnknown_0857144E:: @ 857144E + .incbin "baserom.gba", 0x57144e, 0x6 + +gUnknown_08571454:: @ 8571454 + .incbin "baserom.gba", 0x571454, 0x68 + +gUnknown_085714BC:: @ 85714BC + .incbin "baserom.gba", 0x5714bc, 0x18 + +gUnknown_085714D4:: @ 85714D4 + .incbin "baserom.gba", 0x5714d4, 0x10 + +gUnknown_085714E4:: @ 85714E4 + .incbin "baserom.gba", 0x5714e4, 0xd0 + +gUnknown_085715B4:: @ 85715B4 + .incbin "baserom.gba", 0x5715b4, 0x30 + +gUnknown_085715E4:: @ 85715E4 + .incbin "baserom.gba", 0x5715e4, 0x18 + +gUnknown_085715FC:: @ 85715FC + .incbin "baserom.gba", 0x5715fc, 0x18 + +gUnknown_08571614:: @ 8571614 + .incbin "baserom.gba", 0x571614, 0x3c + +gUnknown_08571650:: @ 8571650 + .incbin "baserom.gba", 0x571650, 0x70 + +gUnknown_085716C0:: @ 85716C0 + .incbin "baserom.gba", 0x5716c0, 0x28 + +gUnknown_085716E8:: @ 85716E8 + .incbin "baserom.gba", 0x5716e8, 0x28 + +gUnknown_08571710:: @ 8571710 + .incbin "baserom.gba", 0x571710, 0x24 + +gUnknown_08571734:: @ 8571734 + .incbin "baserom.gba", 0x571734, 0x3 + +gUnknown_08571737:: @ 8571737 + .incbin "baserom.gba", 0x571737, 0x5 + +gUnknown_0857173C:: @ 857173C + .incbin "baserom.gba", 0x57173c, 0x20 + +gUnknown_0857175C:: @ 857175C + .incbin "baserom.gba", 0x57175c, 0x800 + +gUnknown_08571F5C:: @ 8571F5C + .incbin "baserom.gba", 0x571f5c, 0x180 + +gUnknown_085720DC:: @ 85720DC + .incbin "baserom.gba", 0x5720dc, 0x98 + +gUnknown_08572174:: @ 8572174 + .incbin "baserom.gba", 0x572174, 0x12c + +gUnknown_085722A0:: @ 85722A0 + .incbin "baserom.gba", 0x5722a0, 0xfc + +gUnknown_0857239C:: @ 857239C + .incbin "baserom.gba", 0x57239c, 0x40 + +gUnknown_085723DC:: @ 85723DC + .incbin "baserom.gba", 0x5723dc, 0x20 + +gUnknown_085723FC:: @ 85723FC + .incbin "baserom.gba", 0x5723fc, 0x20 + +gUnknown_0857241C:: @ 857241C + .incbin "baserom.gba", 0x57241c, 0x20 + +gUnknown_0857243C:: @ 857243C + .incbin "baserom.gba", 0x57243c, 0x20 + +gUnknown_0857245C:: @ 857245C + .incbin "baserom.gba", 0x57245c, 0x48 + +gUnknown_085724A4:: @ 85724A4 + .incbin "baserom.gba", 0x5724a4, 0x18 + +gUnknown_085724BC:: @ 85724BC + .incbin "baserom.gba", 0x5724bc, 0x238 + +gUnknown_085726F4:: @ 85726F4 + .incbin "baserom.gba", 0x5726f4, 0x20 + +gUnknown_08572714:: @ 8572714 + .incbin "baserom.gba", 0x572714, 0x20 + +gUnknown_08572734:: @ 8572734 + .incbin "baserom.gba", 0x572734, 0x10 + +gUnknown_08572744:: @ 8572744 + .incbin "baserom.gba", 0x572744, 0x8 + +gUnknown_0857274C:: @ 857274C + .incbin "baserom.gba", 0x57274c, 0x8 + +gUnknown_08572754:: @ 8572754 + .incbin "baserom.gba", 0x572754, 0x18 + +gUnknown_0857276C:: @ 857276C + .incbin "baserom.gba", 0x57276c, 0xf8 + +gUnknown_08572864:: @ 8572864 + .incbin "baserom.gba", 0x572864, 0x58 + +gUnknown_085728BC:: @ 85728BC + .incbin "baserom.gba", 0x5728bc, 0x18 + +gUnknown_085728D4:: @ 85728D4 + .incbin "baserom.gba", 0x5728d4, 0x48 + +gUnknown_0857291C:: @ 857291C + .incbin "baserom.gba", 0x57291c, 0x4c58 + +gUnknown_08577574:: @ 8577574 + .incbin "baserom.gba", 0x577574, 0x44 + +gUnknown_085775B8:: @ 85775B8 + .incbin "baserom.gba", 0x5775b8, 0x398c + +gUnknown_0857AF44:: @ 857AF44 + .incbin "baserom.gba", 0x57af44, 0xc0 + +gUnknown_0857B004:: @ 857B004 + .incbin "baserom.gba", 0x57b004, 0x7c + +gUnknown_0857B080:: @ 857B080 + .incbin "baserom.gba", 0x57b080, 0x28 + +gUnknown_0857B0A8:: @ 857B0A8 + .incbin "baserom.gba", 0x57b0a8, 0x38 + +gUnknown_0857B0E0:: @ 857B0E0 + .incbin "baserom.gba", 0x57b0e0, 0x8b8 + +gUnknown_0857B998:: @ 857B998 + .incbin "baserom.gba", 0x57b998, 0xc + +gUnknown_0857B9A4:: @ 857B9A4 + .incbin "baserom.gba", 0x57b9a4, 0x18 + +gUnknown_0857B9BC:: @ 857B9BC + .incbin "baserom.gba", 0x57b9bc, 0x28 + +gUnknown_0857B9E4:: @ 857B9E4 + .incbin "baserom.gba", 0x57b9e4, 0x18 + +gUnknown_0857B9FC:: @ 857B9FC + .incbin "baserom.gba", 0x57b9fc, 0x54 + +gUnknown_0857BA50:: @ 857BA50 + .incbin "baserom.gba", 0x57ba50, 0x18 + +gUnknown_0857BA68:: @ 857BA68 + .incbin "baserom.gba", 0x57ba68, 0x18 + +gUnknown_0857BA80:: @ 857BA80 + .incbin "baserom.gba", 0x57ba80, 0x9c + +gUnknown_0857BB1C:: @ 857BB1C + .incbin "baserom.gba", 0x57bb1c, 0x8 + +gUnknown_0857BB24:: @ 857BB24 + .incbin "baserom.gba", 0x57bb24, 0x14c + +gUnknown_0857BC70:: @ 857BC70 + .incbin "baserom.gba", 0x57bc70, 0x18 + +gUnknown_0857BC88:: @ 857BC88 + .incbin "baserom.gba", 0x57bc88, 0x20 + +@ 857BCA8 + .include "data/graphics/pokemon/mon_icon_table.inc" + +@ 857C388 + .include "data/graphics/pokemon/mon_icon_palette_indices.inc" + +@ 857C540 + .include "data/graphics/pokemon/mon_icon_palette_table.inc" + +gUnknown_0857C570:: @ 857C570 + .incbin "baserom.gba", 0x57c570, 0x44 + +gUnknown_0857C5B4:: @ 857C5B4 + .incbin "baserom.gba", 0x57c5b4, 0x34 + +gUnknown_0857C5E8:: @ 857C5E8 + .incbin "baserom.gba", 0x57c5e8, 0x8 + +gUnknown_0857C5F0:: @ 857C5F0 + .incbin "baserom.gba", 0x57c5f0, 0x18 + +gUnknown_0857C608:: @ 857C608 + .incbin "baserom.gba", 0x57c608, 0x2 + +gUnknown_0857C60A:: @ 857C60A + .incbin "baserom.gba", 0x57c60a, 0x5a + + .align 2 +gFieldEffectObjectPaletteInfo6:: @ 857C664 + obj_pal gFieldEffectObjectPalette6, 0x1000 + +gUnknown_0857C66C:: @ 857C66C + .incbin "baserom.gba", 0x57c66c, 0x18 + +gUnknown_0857C684:: @ 857C684 + .incbin "baserom.gba", 0x57c684, 0x1680 + +gUnknown_0857DD04:: @ 857DD04 + .incbin "baserom.gba", 0x57dd04, 0x1680 + +gUnknown_0857F384:: @ 857F384 + .incbin "baserom.gba", 0x57f384, 0xc0 + +gUnknown_0857F444:: @ 857F444 + .incbin "baserom.gba", 0x57f444, 0x20 + +gUnknown_0857F464:: @ 857F464 + .incbin "baserom.gba", 0x57f464, 0xe0 + +gUnknown_0857F544:: @ 857F544 + .incbin "baserom.gba", 0x57f544, 0x5f0 + +gUnknown_0857FB34:: @ 857FB34 + .incbin "baserom.gba", 0x57fb34, 0x8 + +gUnknown_0857FB3C:: @ 857FB3C + .incbin "baserom.gba", 0x57fb3c, 0x8 + +gUnknown_0857FB44:: @ 857FB44 + .incbin "baserom.gba", 0x57fb44, 0x8 + +gUnknown_0857FB4C:: @ 857FB4C + .incbin "baserom.gba", 0x57fb4c, 0x4c + +gUnknown_0857FB98:: @ 857FB98 + .incbin "baserom.gba", 0x57fb98, 0x4 + +gUnknown_0857FB9C:: @ 857FB9C + .incbin "baserom.gba", 0x57fb9c, 0x4 + +gUnknown_0857FBA0:: @ 857FBA0 + .incbin "baserom.gba", 0x57fba0, 0x8 + +gUnknown_0857FBA8:: @ 857FBA8 + .incbin "baserom.gba", 0x57fba8, 0x8 + +gUnknown_0857FBB0:: @ 857FBB0 + .incbin "baserom.gba", 0x57fbb0, 0x3c + +gUnknown_0857FBEC:: @ 857FBEC + .incbin "baserom.gba", 0x57fbec, 0x90 + +gUnknown_0857FC7C:: @ 857FC7C + .incbin "baserom.gba", 0x57fc7c, 0x18 + +@ 857FC94 + .include "data/graphics/berries/berry_pic_table.inc" + +gUnknown_0857FDEC:: @ 857FDEC + .incbin "baserom.gba", 0x57fdec, 0x8 + +gUnknown_0857FDF4:: @ 857FDF4 + .incbin "baserom.gba", 0x57fdf4, 0x1c + +gUnknown_0857FE10:: @ 857FE10 + .incbin "baserom.gba", 0x57fe10, 0x90 + +@ 857FEA0 + .include "data/text/item_descriptions.inc" + +@ 85839A0 + .include "data/items.inc" + +gUnknown_08587A6C:: @ 8587A6C + .incbin "baserom.gba", 0x587a6c, 0x4 + +gUnknown_08587A70:: @ 8587A70 + .incbin "baserom.gba", 0x587a70, 0x4 + +gUnknown_08587A74:: @ 8587A74 + .incbin "baserom.gba", 0x587a74, 0x5c + +gUnknown_08587AD0:: @ 8587AD0 + .incbin "baserom.gba", 0x587ad0, 0x18 + +gUnknown_08587AE8:: @ 8587AE8 + .incbin "baserom.gba", 0x587ae8, 0x20 + +gUnknown_08587B08:: @ 8587B08 + .incbin "baserom.gba", 0x587b08, 0x10 + +gUnknown_08587B18:: @ 8587B18 + .incbin "baserom.gba", 0x587b18, 0x68 + +gUnknown_08587B80:: @ 8587B80 + .incbin "baserom.gba", 0x587b80, 0x30 + +gUnknown_08587BB0:: @ 8587BB0 + .incbin "baserom.gba", 0x587bb0, 0x8 + +gUnknown_08587BB8:: @ 8587BB8 + .incbin "baserom.gba", 0x587bb8, 0x10 + +gUnknown_08587BC8:: @ 8587BC8 + .incbin "baserom.gba", 0x587bc8, 0x20 + +gUnknown_08587BE8:: @ 8587BE8 + .incbin "baserom.gba", 0x587be8, 0x18 + +gUnknown_08587C00:: @ 8587C00 + .incbin "baserom.gba", 0x587c00, 0x8 + +gUnknown_08587C08:: @ 8587C08 + .incbin "baserom.gba", 0x587c08, 0x8 + +gUnknown_08587C10:: @ 8587C10 + .incbin "baserom.gba", 0x587c10, 0x8 + +gUnknown_08587C18:: @ 8587C18 + .incbin "baserom.gba", 0x587c18, 0x18 + +gUnknown_08587C30:: @ 8587C30 + .incbin "baserom.gba", 0x587c30, 0x20 + +@ 8587C50 + .include "data/text/contest_text_pointers.inc" + +@ 8587D5C + .incbin "baserom.gba", 0x587d5c, 0x34 + +gUnknown_08587D90:: @ 8587D90 + .incbin "baserom.gba", 0x587d90, 0x80 + +gUnknown_08587E10:: @ 8587E10 + .incbin "baserom.gba", 0x587e10, 0xf8 + +gUnknown_08587F08:: @ 8587F08 + .incbin "baserom.gba", 0x587f08, 0x14 + +gUnknown_08587F1C:: @ 8587F1C + .incbin "baserom.gba", 0x587f1c, 0x18 + +gUnknown_08587F34:: @ 8587F34 + .incbin "baserom.gba", 0x587f34, 0x10 + +gUnknown_08587F44:: @ 8587F44 + .incbin "baserom.gba", 0x587f44, 0x60 + +gUnknown_08587FA4:: @ 8587FA4 + .incbin "baserom.gba", 0x587fa4, 0x100 + +gUnknown_085880A4:: @ 85880A4 + .incbin "baserom.gba", 0x5880a4, 0x1740 + +gUnknown_085897E4:: @ 85897E4 + .incbin "baserom.gba", 0x5897e4, 0xc0 + +gUnknown_085898A4:: @ 85898A4 + .incbin "baserom.gba", 0x5898a4, 0x60 + +gUnknown_08589904:: @ 8589904 + .incbin "baserom.gba", 0x589904, 0x20 + +gUnknown_08589924:: @ 8589924 + .incbin "baserom.gba", 0x589924, 0x68 + +gUnknown_0858998C:: @ 858998C + .incbin "baserom.gba", 0x58998c, 0x60 + +gUnknown_085899EC:: @ 85899EC + .incbin "baserom.gba", 0x5899ec, 0x1c + +gUnknown_08589A08:: @ 8589A08 + .incbin "baserom.gba", 0x589a08, 0x8 + +gUnknown_08589A10:: @ 8589A10 + .incbin "baserom.gba", 0x589a10, 0x18 + +gUnknown_08589A28:: @ 8589A28 + .incbin "baserom.gba", 0x589a28, 0x10 + +gUnknown_08589A38:: @ 8589A38 + .incbin "baserom.gba", 0x589a38, 0x10 + +gUnknown_08589A48:: @ 8589A48 + .incbin "baserom.gba", 0x589a48, 0x18 + +gUnknown_08589A60:: @ 8589A60 + .incbin "baserom.gba", 0x589a60, 0x10 + +gUnknown_08589A70:: @ 8589A70 + .incbin "baserom.gba", 0x589a70, 0x38 + +gUnknown_08589AA8:: @ 8589AA8 + .incbin "baserom.gba", 0x589aa8, 0x8 + +gUnknown_08589AB0:: @ 8589AB0 + .incbin "baserom.gba", 0x589ab0, 0x3 + +gUnknown_08589AB3:: @ 8589AB3 + .incbin "baserom.gba", 0x589ab3, 0x7 + +gUnknown_08589ABA:: @ 8589ABA + .incbin "baserom.gba", 0x589aba, 0x6 + +gUnknown_08589AC0:: @ 8589AC0 + .incbin "baserom.gba", 0x589ac0, 0x6 + +gUnknown_08589AC6:: @ 8589AC6 + .incbin "baserom.gba", 0x589ac6, 0x6 + +gUnknown_08589ACC:: @ 8589ACC + .incbin "baserom.gba", 0x589acc, 0x6 + +gUnknown_08589AD2:: @ 8589AD2 + .incbin "baserom.gba", 0x589ad2, 0x6 + +gUnknown_08589AD8:: @ 8589AD8 + .incbin "baserom.gba", 0x589ad8, 0x6 + +gUnknown_08589ADE:: @ 8589ADE + .incbin "baserom.gba", 0x589ade, 0x6 + +@ 8589AE4 + .include "data/text/berry_descriptions.inc" + +@ 858A670 + .include "data/berries.inc" + +gUnknown_0858AB24:: @ 858AB24 + .incbin "baserom.gba", 0x58ab24, 0xac + +gUnknown_0858ABD0:: @ 858ABD0 + .incbin "baserom.gba", 0x58abd0, 0xb90 + +gUnknown_0858B760:: @ 858B760 + .incbin "baserom.gba", 0x58b760, 0x390 + +gUnknown_0858BAF0:: @ 858BAF0 + .incbin "baserom.gba", 0x58baf0, 0x78 + +gUnknown_0858BB68:: @ 858BB68 + .incbin "baserom.gba", 0x58bb68, 0x8 + +gUnknown_0858BB70:: @ 858BB70 + .incbin "baserom.gba", 0x58bb70, 0x10 + +gUnknown_0858BB80:: @ 858BB80 + .incbin "baserom.gba", 0x58bb80, 0x1c + +gUnknown_0858BB9C:: @ 858BB9C + .incbin "baserom.gba", 0x58bb9c, 0x10 + +gUnknown_0858BBAC:: @ 858BBAC + .incbin "baserom.gba", 0x58bbac, 0x10 + +gUnknown_0858BBBC:: @ 858BBBC + .incbin "baserom.gba", 0x58bbbc, 0x10 + +gUnknown_0858BBCC:: @ 858BBCC + .incbin "baserom.gba", 0x58bbcc, 0x14 + +gUnknown_0858BBE0:: @ 858BBE0 + .incbin "baserom.gba", 0x58bbe0, 0xc + +gUnknown_0858BBEC:: @ 858BBEC + .incbin "baserom.gba", 0x58bbec, 0x18c + +gUnknown_0858BD78:: @ 858BD78 + .incbin "baserom.gba", 0x58bd78, 0x40 + +gUnknown_0858BDB8:: @ 858BDB8 + .incbin "baserom.gba", 0x58bdb8, 0x10 + +gUnknown_0858BDC8:: @ 858BDC8 + .incbin "baserom.gba", 0x58bdc8, 0x38 + +gUnknown_0858BE00:: @ 858BE00 + .incbin "baserom.gba", 0x58be00, 0x10 + +gUnknown_0858BE10:: @ 858BE10 + .incbin "baserom.gba", 0x58be10, 0x30 + +gUnknown_0858BE40:: @ 858BE40 + .incbin "baserom.gba", 0x58be40, 0x60 + +gUnknown_0858BEA0:: @ 858BEA0 + .incbin "baserom.gba", 0x58bea0, 0x3 + +gUnknown_0858BEA3:: @ 858BEA3 + .incbin "baserom.gba", 0x58bea3, 0x18 + +gUnknown_0858BEBB:: @ 858BEBB + .incbin "baserom.gba", 0x58bebb, 0x3 + +gUnknown_0858BEBE:: @ 858BEBE + .incbin "baserom.gba", 0x58bebe, 0x3 + +gUnknown_0858BEC1:: @ 858BEC1 + .incbin "baserom.gba", 0x58bec1, 0x3 + +gUnknown_0858BEC4:: @ 858BEC4 + .incbin "baserom.gba", 0x58bec4, 0x10 + +gUnknown_0858BED4:: @ 858BED4 + .incbin "baserom.gba", 0x58bed4, 0x8 + +gUnknown_0858BEDC:: @ 858BEDC + .incbin "baserom.gba", 0x58bedc, 0x8 + +gUnknown_0858BEE4:: @ 858BEE4 + .incbin "baserom.gba", 0x58bee4, 0x4 + +gUnknown_0858BEE8:: @ 858BEE8 + .incbin "baserom.gba", 0x58bee8, 0x10 + +gUnknown_0858BEF8:: @ 858BEF8 + .incbin "baserom.gba", 0x58bef8, 0x6 + +gUnknown_0858BEFE:: @ 858BEFE + .incbin "baserom.gba", 0x58befe, 0x6 + +gUnknown_0858BF04:: @ 858BF04 + .incbin "baserom.gba", 0x58bf04, 0x14 + +gUnknown_0858BF18:: @ 858BF18 + .incbin "baserom.gba", 0x58bf18, 0x10 + +gUnknown_0858BF28:: @ 858BF28 + .incbin "baserom.gba", 0x58bf28, 0xc + +gUnknown_0858BF34:: @ 858BF34 + .incbin "baserom.gba", 0x58bf34, 0xa + +gUnknown_0858BF3E:: @ 858BF3E + .incbin "baserom.gba", 0x58bf3e, 0xa + +gUnknown_0858BF48:: @ 858BF48 + .incbin "baserom.gba", 0x58bf48, 0x8 + +gUnknown_0858BF50:: @ 858BF50 + .incbin "baserom.gba", 0x58bf50, 0x8 + +gUnknown_0858BF58:: @ 858BF58 + .incbin "baserom.gba", 0x58bf58, 0x14 + +gUnknown_0858BF6C:: @ 858BF6C + .incbin "baserom.gba", 0x58bf6c, 0x8 + +gUnknown_0858BF74:: @ 858BF74 + .incbin "baserom.gba", 0x58bf74, 0x14 + +gUnknown_0858BF88:: @ 858BF88 + .incbin "baserom.gba", 0x58bf88, 0x4 + +gUnknown_0858BF8C:: @ 858BF8C + .incbin "baserom.gba", 0x58bf8c, 0xc + +gUnknown_0858BF98:: @ 858BF98 + .incbin "baserom.gba", 0x58bf98, 0xc + +gUnknown_0858BFA4:: @ 858BFA4 + .incbin "baserom.gba", 0x58bfa4, 0x34 + +gUnknown_0858BFD8:: @ 858BFD8 + .incbin "baserom.gba", 0x58bfd8, 0x78 + +gUnknown_0858C050:: @ 858C050 + .incbin "baserom.gba", 0x58c050, 0x8 + +gUnknown_0858C058:: @ 858C058 + .incbin "baserom.gba", 0x58c058, 0x18 + +gUnknown_0858C070:: @ 858C070 + .incbin "baserom.gba", 0x58c070, 0x8 + +gUnknown_0858C078:: @ 858C078 + .incbin "baserom.gba", 0x58c078, 0x48 + +gUnknown_0858C0C0:: @ 858C0C0 + .incbin "baserom.gba", 0x58c0c0, 0x18 + +gUnknown_0858C0D8:: @ 858C0D8 + .incbin "baserom.gba", 0x58c0d8, 0x18 + +gUnknown_0858C0F0:: @ 858C0F0 + .incbin "baserom.gba", 0x58c0f0, 0x18 + +gUnknown_0858C108:: @ 858C108 + .incbin "baserom.gba", 0x58c108, 0x18 + +gUnknown_0858C120:: @ 858C120 + .incbin "baserom.gba", 0x58c120, 0x18 + +gUnknown_0858C138:: @ 858C138 + .incbin "baserom.gba", 0x58c138, 0x18 + +gUnknown_0858C150:: @ 858C150 + .incbin "baserom.gba", 0x58c150, 0x18 + +gUnknown_0858C168:: @ 858C168 + .incbin "baserom.gba", 0x58c168, 0x18 + +gUnknown_0858C180:: @ 858C180 + .incbin "baserom.gba", 0x58c180, 0x18 + +gUnknown_0858C198:: @ 858C198 + .incbin "baserom.gba", 0x58c198, 0x30 + +gUnknown_0858C1C8:: @ 858C1C8 + .incbin "baserom.gba", 0x58c1c8, 0x68 + +gUnknown_0858C230:: @ 858C230 + .incbin "baserom.gba", 0x58c230, 0x5c + +gUnknown_0858C28C:: @ 858C28C + .incbin "baserom.gba", 0x58c28c, 0x18 + +gUnknown_0858C2A4:: @ 858C2A4 + .incbin "baserom.gba", 0x58c2a4, 0x8 + +gUnknown_0858C2AC:: @ 858C2AC + .incbin "baserom.gba", 0x58c2ac, 0x8 + +@ 858C2B4 + .include "data/contest_moves.inc" + +@ 858CDCC + .include "data/contest_effects.inc" + +@ A lookup table with a 1 for each combo starter ID and a 0 for ID 0, +@ which means "not a combo starter move". +gComboStarterLookupTable:: @ 858CE8C + .byte 0 + .rept 62 + .byte 1 + .endr + + .align 2 +@ 858CECC + .include "data/contest_effect_function_table.inc" + +gUnknown_0858CF8C:: @ 858CF8C + .incbin "baserom.gba", 0x58cf8c, 0x2 + +gUnknown_0858CF8E:: @ 858CF8E + .incbin "baserom.gba", 0x58cf8e, 0x6 + +gUnknown_0858CF94:: @ 858CF94 + .incbin "baserom.gba", 0x58cf94, 0x24 + +gUnknown_0858CFB8:: @ 858CFB8 + .incbin "baserom.gba", 0x58cfb8, 0x6 + +gUnknown_0858CFBE:: @ 858CFBE + .incbin "baserom.gba", 0x58cfbe, 0xe + +gUnknown_0858CFCC:: @ 858CFCC + .incbin "baserom.gba", 0x58cfcc, 0x1c + +gUnknown_0858CFE8:: @ 858CFE8 + .incbin "baserom.gba", 0x58cfe8, 0x60 + +gUnknown_0858D048:: @ 858D048 + .incbin "baserom.gba", 0x58d048, 0x10 + +gUnknown_0858D058:: @ 858D058 + .incbin "baserom.gba", 0x58d058, 0x8 + +gUnknown_0858D060:: @ 858D060 + .incbin "baserom.gba", 0x58d060, 0xc + +gUnknown_0858D06C:: @ 858D06C + .incbin "baserom.gba", 0x58d06c, 0x10 + +gUnknown_0858D07C:: @ 858D07C + .incbin "baserom.gba", 0x58d07c, 0x18 + +gUnknown_0858D094:: @ 858D094 + .incbin "baserom.gba", 0x58d094, 0x3c + +gUnknown_0858D0D0:: @ 858D0D0 + .incbin "baserom.gba", 0x58d0d0, 0xe + +gUnknown_0858D0DE:: @ 858D0DE + .incbin "baserom.gba", 0x58d0de, 0xe + +gUnknown_0858D0EC:: @ 858D0EC + .incbin "baserom.gba", 0x58d0ec, 0x1c + +gUnknown_0858D108:: @ 858D108 + .incbin "baserom.gba", 0x58d108, 0x14 + +gUnknown_0858D11C:: @ 858D11C + .incbin "baserom.gba", 0x58d11c, 0x14 + +gUnknown_0858D130:: @ 858D130 + .incbin "baserom.gba", 0x58d130, 0x14 + +gUnknown_0858D144:: @ 858D144 + .incbin "baserom.gba", 0x58d144, 0xc + +gUnknown_0858D150:: @ 858D150 + .incbin "baserom.gba", 0x58d150, 0x20 + +gUnknown_0858D170:: @ 858D170 + .incbin "baserom.gba", 0x58d170, 0x18 + +gUnknown_0858D188:: @ 858D188 + .incbin "baserom.gba", 0x58d188, 0x14 + +gUnknown_0858D19C:: @ 858D19C + .incbin "baserom.gba", 0x58d19c, 0x4 + +gUnknown_0858D1A0:: @ 858D1A0 + .incbin "baserom.gba", 0x58d1a0, 0x30 + +gUnknown_0858D1D0:: @ 858D1D0 + .incbin "baserom.gba", 0x58d1d0, 0x34 + +gUnknown_0858D204:: @ 858D204 + .incbin "baserom.gba", 0x58d204, 0x24 + +gUnknown_0858D228:: @ 858D228 + .incbin "baserom.gba", 0x58d228, 0x18 + +gUnknown_0858D240:: @ 858D240 + .incbin "baserom.gba", 0x58d240, 0x3c + +gUnknown_0858D27C:: @ 858D27C + .incbin "baserom.gba", 0x58d27c, 0x84 + +gUnknown_0858D300:: @ 858D300 + .incbin "baserom.gba", 0x58d300, 0x20 + +gUnknown_0858D320:: @ 858D320 + .incbin "baserom.gba", 0x58d320, 0x18 + +gUnknown_0858D338:: @ 858D338 + .incbin "baserom.gba", 0x58d338, 0x4c + +gUnknown_0858D384:: @ 858D384 + .incbin "baserom.gba", 0x58d384, 0x10 + +gUnknown_0858D394:: @ 858D394 + .incbin "baserom.gba", 0x58d394, 0x1c + +gUnknown_0858D3B0:: @ 858D3B0 + .incbin "baserom.gba", 0x58d3b0, 0x8 + +gUnknown_0858D3B8:: @ 858D3B8 + .incbin "baserom.gba", 0x58d3b8, 0xc + +gUnknown_0858D3C4:: @ 858D3C4 + .incbin "baserom.gba", 0x58d3c4, 0x2c + +gUnknown_0858D3F0:: @ 858D3F0 + .incbin "baserom.gba", 0x58d3f0, 0x1c + +gUnknown_0858D40C:: @ 858D40C + .incbin "baserom.gba", 0x58d40c, 0xc + +gUnknown_0858D418:: @ 858D418 + .incbin "baserom.gba", 0x58d418, 0x10 + +gUnknown_0858D428:: @ 858D428 + .incbin "baserom.gba", 0x58d428, 0x34 + +gUnknown_0858D45C:: @ 858D45C + .incbin "baserom.gba", 0x58d45c, 0x38 + +gUnknown_0858D494:: @ 858D494 + .incbin "baserom.gba", 0x58d494, 0x4 + +gUnknown_0858D498:: @ 858D498 + .incbin "baserom.gba", 0x58d498, 0x1c + +gUnknown_0858D4B4:: @ 858D4B4 + .incbin "baserom.gba", 0x58d4b4, 0x30 + +gUnknown_0858D4E4:: @ 858D4E4 + .incbin "baserom.gba", 0x58d4e4, 0x40 + +gUnknown_0858D524:: @ 858D524 + .incbin "baserom.gba", 0x58d524, 0x4c + +gUnknown_0858D570:: @ 858D570 + .incbin "baserom.gba", 0x58d570, 0x24 + +gUnknown_0858D594:: @ 858D594 + .incbin "baserom.gba", 0x58d594, 0xac + +gUnknown_0858D640:: @ 858D640 + .incbin "baserom.gba", 0x58d640, 0x2c + +gUnknown_0858D66C:: @ 858D66C + .incbin "baserom.gba", 0x58d66c, 0x24 + +gUnknown_0858D690:: @ 858D690 + .incbin "baserom.gba", 0x58d690, 0x20 + +gUnknown_0858D6B0:: @ 858D6B0 + .incbin "baserom.gba", 0x58d6b0, 0x20 + +gUnknown_0858D6D0:: @ 858D6D0 + .incbin "baserom.gba", 0x58d6d0, 0x128 + +gUnknown_0858D7F8:: @ 858D7F8 + .incbin "baserom.gba", 0x58d7f8, 0x18 + +gUnknown_0858D810:: @ 858D810 + .incbin "baserom.gba", 0x58d810, 0x40 + +gUnknown_0858D850:: @ 858D850 + .incbin "baserom.gba", 0x58d850, 0x10 + +gUnknown_0858D860:: @ 858D860 + .incbin "baserom.gba", 0x58d860, 0x18 + +gUnknown_0858D878:: @ 858D878 + .incbin "baserom.gba", 0x58d878, 0x8 + +gUnknown_0858D880:: @ 858D880 + .incbin "baserom.gba", 0x58d880, 0x8 + +gUnknown_0858D888:: @ 858D888 + .incbin "baserom.gba", 0x58d888, 0x10 + +gUnknown_0858D898:: @ 858D898 + .incbin "baserom.gba", 0x58d898, 0x30 + +gUnknown_0858D8C8:: @ 858D8C8 + .incbin "baserom.gba", 0x58d8c8, 0x18 + +gUnknown_0858D8E0:: @ 858D8E0 + .incbin "baserom.gba", 0x58d8e0, 0x8 + +gUnknown_0858D8E8:: @ 858D8E8 + .incbin "baserom.gba", 0x58d8e8, 0x4 + +gUnknown_0858D8EC:: @ 858D8EC + .incbin "baserom.gba", 0x58d8ec, 0x4 + +gUnknown_0858D8F0:: @ 858D8F0 + .incbin "baserom.gba", 0x58d8f0, 0x80 + +gUnknown_0858D970:: @ 858D970 + .incbin "baserom.gba", 0x58d970, 0x2a8 + + .align 2 +gFieldEffectObjectPalette7:: @ 858DC18 + .incbin "graphics/map_objects/palettes/field_effect_object_palette_07.gbapal" + + .incbin "baserom.gba", 0x58dc38, 0x580 + + .align 2 +gFieldEffectObjectPalette8:: @ 858E1B8 + .incbin "graphics/map_objects/palettes/field_effect_object_palette_08.gbapal" + + .incbin "baserom.gba", 0x58e1d8, 0x428 + +gUnknown_0858E600:: @ 858E600 + .incbin "baserom.gba", 0x58e600, 0x18 + +gUnknown_0858E618:: @ 858E618 + .incbin "baserom.gba", 0x58e618, 0x18 + +gUnknown_0858E630:: @ 858E630 + .incbin "baserom.gba", 0x58e630, 0x18 + + .align 2 +gFieldEffectObjectPaletteInfo7:: @ 858E648 + obj_pal gFieldEffectObjectPalette7, 0x1003 + + .align 2 +gFieldEffectObjectPaletteInfo8:: @ 858E650 + obj_pal gFieldEffectObjectPalette8, 0x1008 + + .incbin "baserom.gba", 0x58e658, 0x34 + +gUnknown_0858E68C:: @ 858E68C + .incbin "baserom.gba", 0x58e68c, 0x18 + + .align 2 +@ This uses one of the secret base palettes, so there is no +@ "field_effect_object_palette_09.pal" file. +gFieldEffectObjectPaletteInfo9:: @ 858E6A4 + obj_pal gTilesetPalettes_SecretBase + 5 * 0x20, 0x100E + + .incbin "baserom.gba", 0x58e6ac, 0x1b8 + +gUnknown_0858E864:: @ 858E864 + .incbin "baserom.gba", 0x58e864, 0x1c + +gUnknown_0858E880:: @ 858E880 + .incbin "baserom.gba", 0x58e880, 0x18 + +gUnknown_0858E898:: @ 858E898 + .incbin "baserom.gba", 0x58e898, 0x13 + +gUnknown_0858E8AB:: @ 858E8AB + .incbin "baserom.gba", 0x58e8ab, 0x2 + +gUnknown_0858E8AD:: @ 858E8AD + .incbin "baserom.gba", 0x58e8ad, 0x3 + +gUnknown_0858E8B0:: @ 858E8B0 + .incbin "baserom.gba", 0x58e8b0, 0x40 + +gUnknown_0858E8F0:: @ 858E8F0 + .incbin "baserom.gba", 0x58e8f0, 0x3468 + +gUnknown_08591D58:: @ 8591D58 + .incbin "baserom.gba", 0x591d58, 0x270 + +gUnknown_08591FC8:: @ 8591FC8 + .incbin "baserom.gba", 0x591fc8, 0x18 + +gUnknown_08591FE0:: @ 8591FE0 + .incbin "baserom.gba", 0x591fe0, 0x18 + +gUnknown_08591FF8:: @ 8591FF8 + .incbin "baserom.gba", 0x591ff8, 0x10 + +gUnknown_08592008:: @ 8592008 + .incbin "baserom.gba", 0x592008, 0x10 + +gUnknown_08592018:: @ 8592018 + .incbin "baserom.gba", 0x592018, 0x10 + +gUnknown_08592028:: @ 8592028 + .incbin "baserom.gba", 0x592028, 0x10 + +gUnknown_08592038:: @ 8592038 + .incbin "baserom.gba", 0x592038, 0x20 + +gUnknown_08592058:: @ 8592058 + .incbin "baserom.gba", 0x592058, 0x20 + +gUnknown_08592078:: @ 8592078 + .incbin "baserom.gba", 0x592078, 0x60 + +gUnknown_085920D8:: @ 85920D8 + .incbin "baserom.gba", 0x5920d8, 0xc + +gUnknown_085920E4:: @ 85920E4 + .incbin "baserom.gba", 0x5920e4, 0x4 + +gUnknown_085920E8:: @ 85920E8 + .incbin "baserom.gba", 0x5920e8, 0x128 + +gUnknown_08592210:: @ 8592210 + .incbin "baserom.gba", 0x592210, 0x4f0 + +gUnknown_08592700:: @ 8592700 + .incbin "baserom.gba", 0x592700, 0x78 + +gUnknown_08592778:: @ 8592778 + .incbin "baserom.gba", 0x592778, 0x100 + +gUnknown_08592878:: @ 8592878 + .incbin "baserom.gba", 0x592878, 0x458 + +gUnknown_08592CD0:: @ 8592CD0 + .incbin "baserom.gba", 0x592cd0, 0x1ec + +gUnknown_08592EBC:: @ 8592EBC + .incbin "baserom.gba", 0x592ebc, 0x30 + +gUnknown_08592EEC:: @ 8592EEC + .incbin "baserom.gba", 0x592eec, 0x134 + +gUnknown_08593020:: @ 8593020 + .incbin "baserom.gba", 0x593020, 0xf4 + +gUnknown_08593114:: @ 8593114 + .incbin "baserom.gba", 0x593114, 0x29c + +gUnknown_085933B0:: @ 85933B0 + .incbin "baserom.gba", 0x5933b0, 0xf0 + +gUnknown_085934A0:: @ 85934A0 + .incbin "baserom.gba", 0x5934a0, 0x148 + +gUnknown_085935E8:: @ 85935E8 + .incbin "baserom.gba", 0x5935e8, 0x20 + +gUnknown_08593608:: @ 8593608 + .incbin "baserom.gba", 0x593608, 0x9c + +gUnknown_085936A4:: @ 85936A4 + .incbin "baserom.gba", 0x5936a4, 0x20c + +gUnknown_085938B0:: @ 85938B0 + .incbin "baserom.gba", 0x5938b0, 0x2c + +gUnknown_085938DC:: @ 85938DC + .incbin "baserom.gba", 0x5938dc, 0x18 + +gUnknown_085938F4:: @ 85938F4 + .incbin "baserom.gba", 0x5938f4, 0x5c + +gUnknown_08593950:: @ 8593950 + .incbin "baserom.gba", 0x593950, 0x38 + +gUnknown_08593988:: @ 8593988 + .incbin "baserom.gba", 0x593988, 0x210 + +gUnknown_08593B98:: @ 8593B98 + .incbin "baserom.gba", 0x593b98, 0x1488 + +gUnknown_08595020:: @ 8595020 + .incbin "baserom.gba", 0x595020, 0x248 + +gUnknown_08595268:: @ 8595268 + .incbin "baserom.gba", 0x595268, 0xa8 + +gUnknown_08595310:: @ 8595310 + .incbin "baserom.gba", 0x595310, 0x2a4 + +gUnknown_085955B4:: @ 85955B4 + .incbin "baserom.gba", 0x5955b4, 0x18 + +gUnknown_085955CC:: @ 85955CC + .incbin "baserom.gba", 0x5955cc, 0x2 + +gUnknown_085955CE:: @ 85955CE + .incbin "baserom.gba", 0x5955ce, 0xb6 + +gUnknown_08595684:: @ 8595684 + .incbin "baserom.gba", 0x595684, 0x10 + +gUnknown_08595694:: @ 8595694 + .incbin "baserom.gba", 0x595694, 0x2c + +gUnknown_085956C0:: @ 85956C0 + .incbin "baserom.gba", 0x5956c0, 0x168 + +gUnknown_08595828:: @ 8595828 + .incbin "baserom.gba", 0x595828, 0x18 + +gUnknown_08595840:: @ 8595840 + .incbin "baserom.gba", 0x595840, 0x18 + +gUnknown_08595858:: @ 8595858 + .incbin "baserom.gba", 0x595858, 0x50 + +gUnknown_085958A8:: @ 85958A8 + .incbin "baserom.gba", 0x5958a8, 0x158 + +gUnknown_08595A00:: @ 8595A00 + .incbin "baserom.gba", 0x595a00, 0x30 + +gUnknown_08595A30:: @ 8595A30 + .incbin "baserom.gba", 0x595a30, 0x138 + +gUnknown_08595B68:: @ 8595B68 + .incbin "baserom.gba", 0x595b68, 0xf4 + +gUnknown_08595C5C:: @ 8595C5C + .incbin "baserom.gba", 0x595c5c, 0x2c + +gUnknown_08595C88:: @ 8595C88 + .incbin "baserom.gba", 0x595c88, 0x2c + +gUnknown_08595CB4:: @ 8595CB4 + .incbin "baserom.gba", 0x595cb4, 0x78 + +gUnknown_08595D2C:: @ 8595D2C + .incbin "baserom.gba", 0x595d2c, 0xa14 + +gUnknown_08596740:: @ 8596740 + .incbin "baserom.gba", 0x596740, 0x1c + +gUnknown_0859675C:: @ 859675C + .incbin "baserom.gba", 0x59675c, 0x20 + +gUnknown_0859677C:: @ 859677C + .incbin "baserom.gba", 0x59677c, 0x18 + +gUnknown_08596794:: @ 8596794 + .incbin "baserom.gba", 0x596794, 0xd0 + +gUnknown_08596864:: @ 8596864 + .incbin "baserom.gba", 0x596864, 0x35c + +gUnknown_08596BC0:: @ 8596BC0 + .incbin "baserom.gba", 0x596bc0, 0x50 + +gUnknown_08596C10:: @ 8596C10 + .incbin "baserom.gba", 0x596c10, 0x18 + +gUnknown_08596C28:: @ 8596C28 + .incbin "baserom.gba", 0x596c28, 0x18 + +gUnknown_08596C40:: @ 8596C40 + .incbin "baserom.gba", 0x596c40, 0x178 + +gUnknown_08596DB8:: @ 8596DB8 + .incbin "baserom.gba", 0x596db8, 0x78 + +gUnknown_08596E30:: @ 8596E30 + .incbin "baserom.gba", 0x596e30, 0x528 + +gUnknown_08597358:: @ 8597358 + .incbin "baserom.gba", 0x597358, 0x30 + +gUnknown_08597388:: @ 8597388 + .incbin "baserom.gba", 0x597388, 0x60 + +gUnknown_085973E8:: @ 85973E8 + .incbin "baserom.gba", 0x5973e8, 0x30 + +gUnknown_08597418:: @ 8597418 + .incbin "baserom.gba", 0x597418, 0x2 + +gUnknown_0859741A:: @ 859741A + .incbin "baserom.gba", 0x59741a, 0x4 + +gUnknown_0859741E:: @ 859741E + .incbin "baserom.gba", 0x59741e, 0x6 + +gUnknown_08597424:: @ 8597424 + .incbin "baserom.gba", 0x597424, 0x28 + +gUnknown_0859744C:: @ 859744C + .incbin "baserom.gba", 0x59744c, 0x10 + +gUnknown_0859745C:: @ 859745C + .incbin "baserom.gba", 0x59745c, 0xc + +gUnknown_08597468:: @ 8597468 + .incbin "baserom.gba", 0x597468, 0x34 + +gUnknown_0859749C:: @ 859749C + .incbin "baserom.gba", 0x59749c, 0x1c + +gUnknown_085974B8:: @ 85974B8 + .incbin "baserom.gba", 0x5974b8, 0x8 + +gUnknown_085974C0:: @ 85974C0 + .incbin "baserom.gba", 0x5974c0, 0x70 + +gUnknown_08597530:: @ 8597530 + .incbin "baserom.gba", 0x597530, 0x20 + +gUnknown_08597550:: @ 8597550 + .incbin "baserom.gba", 0x597550, 0x1f8 + +gUnknown_08597748:: @ 8597748 + .incbin "baserom.gba", 0x597748, 0x1c + +gUnknown_08597764:: @ 8597764 + .incbin "baserom.gba", 0x597764, 0x8 + +gUnknown_0859776C:: @ 859776C + .incbin "baserom.gba", 0x59776c, 0x3a8 + +gUnknown_08597B14:: @ 8597B14 + .incbin "baserom.gba", 0x597b14, 0x20 + +gUnknown_08597B34:: @ 8597B34 + .incbin "baserom.gba", 0x597b34, 0x20 + +gUnknown_08597B54:: @ 8597B54 + .incbin "baserom.gba", 0x597b54, 0xc8 + +gUnknown_08597C1C:: @ 8597C1C + .incbin "baserom.gba", 0x597c1c, 0x8 + +gUnknown_08597C24:: @ 8597C24 + .incbin "baserom.gba", 0x597c24, 0xc + +gUnknown_08597C30:: @ 8597C30 + .incbin "baserom.gba", 0x597c30, 0x24 + +gUnknown_08597C54:: @ 8597C54 + .incbin "baserom.gba", 0x597c54, 0x10 + +gUnknown_08597C64:: @ 8597C64 + .incbin "baserom.gba", 0x597c64, 0x20 + +gUnknown_08597C84:: @ 8597C84 + .incbin "baserom.gba", 0x597c84, 0x8 + +gUnknown_08597C8C:: @ 8597C8C + .incbin "baserom.gba", 0x597c8c, 0x4 + +gUnknown_08597C90:: @ 8597C90 + .incbin "baserom.gba", 0x597c90, 0x10 + +gUnknown_08597CA0:: @ 8597CA0 + .incbin "baserom.gba", 0x597ca0, 0x20 + +gUnknown_08597CC0:: @ 8597CC0 + .incbin "baserom.gba", 0x597cc0, 0x28 + +gUnknown_08597CE8:: @ 8597CE8 + .incbin "baserom.gba", 0x597ce8, 0x20 + +gUnknown_08597D08:: @ 8597D08 + .incbin "baserom.gba", 0x597d08, 0x10 + +gUnknown_08597D18:: @ 8597D18 + .incbin "baserom.gba", 0x597d18, 0x50 + +gUnknown_08597D68:: @ 8597D68 + .incbin "baserom.gba", 0x597d68, 0x68 + +gUnknown_08597DD0:: @ 8597DD0 + .incbin "baserom.gba", 0x597dd0, 0x20 + +gUnknown_08597DF0:: @ 8597DF0 + .incbin "baserom.gba", 0x597df0, 0x40 + +gUnknown_08597E30:: @ 8597E30 + .incbin "baserom.gba", 0x597e30, 0x18 + +gUnknown_08597E48:: @ 8597E48 + .incbin "baserom.gba", 0x597e48, 0x18 + +gUnknown_08597E60:: @ 8597E60 + .incbin "baserom.gba", 0x597e60, 0xc + +gUnknown_08597E6C:: @ 8597E6C + .incbin "baserom.gba", 0x597e6c, 0x30 + +@ 8597E9C + .include "data/text/easy_chat/easy_chat_groups.inc" + +@ 859D0B4 + .include "data/text/easy_chat/easy_chat_words_by_letter.inc" + +@ 859E5D4 + .include "data/text/easy_chat/easy_chat_group_name_pointers.inc" + +gUnknown_0859E62C:: @ 859E62C + .incbin "baserom.gba", 0x59e62c, 0x8 + +gUnknown_0859E634:: @ 859E634 + .incbin "baserom.gba", 0x59e634, 0xc + +gUnknown_0859E640:: @ 859E640 + .incbin "baserom.gba", 0x59e640, 0xc + +gUnknown_0859E64C:: @ 859E64C + .incbin "baserom.gba", 0x59e64c, 0xc + +gUnknown_0859E658:: @ 859E658 + .incbin "baserom.gba", 0x59e658, 0x4 + +gUnknown_0859E65C:: @ 859E65C + .incbin "baserom.gba", 0x59e65c, 0x20 + +gUnknown_0859E67C:: @ 859E67C + .incbin "baserom.gba", 0x59e67c, 0x800 + +gUnknown_0859EE7C:: @ 859EE7C + .incbin "baserom.gba", 0x59ee7c, 0x8 + +gUnknown_0859EE84:: @ 859EE84 + .incbin "baserom.gba", 0x59ee84, 0x58 + +gUnknown_0859EEDC:: @ 859EEDC + .incbin "baserom.gba", 0x59eedc, 0x38 + +gUnknown_0859EF14:: @ 859EF14 + .incbin "baserom.gba", 0x59ef14, 0x8 + +gUnknown_0859EF1C:: @ 859EF1C + .incbin "baserom.gba", 0x59ef1c, 0x88 + +gUnknown_0859EFA4:: @ 859EFA4 + .incbin "baserom.gba", 0x59efa4, 0x40 + +gUnknown_0859EFE4:: @ 859EFE4 + .incbin "baserom.gba", 0x59efe4, 0xc + +gUnknown_0859EFF0:: @ 859EFF0 + .incbin "baserom.gba", 0x59eff0, 0x20 + +gUnknown_0859F010:: @ 859F010 + .incbin "baserom.gba", 0x59f010, 0x20 + +gUnknown_0859F030:: @ 859F030 + .incbin "baserom.gba", 0x59f030, 0x18 + +gUnknown_0859F048:: @ 859F048 + .incbin "baserom.gba", 0x59f048, 0x230 + +gUnknown_0859F278:: @ 859F278 + .incbin "baserom.gba", 0x59f278, 0x10 + +gUnknown_0859F288:: @ 859F288 + .incbin "baserom.gba", 0x59f288, 0x8 + +gUnknown_0859F290:: @ 859F290 + .incbin "baserom.gba", 0x59f290, 0xc + +gUnknown_0859F29C:: @ 859F29C + .incbin "baserom.gba", 0x59f29c, 0x10 + +gUnknown_0859F2AC:: @ 859F2AC + .incbin "baserom.gba", 0x59f2ac, 0x4 + +gUnknown_0859F2B0:: @ 859F2B0 + .incbin "baserom.gba", 0x59f2b0, 0x8 + +gUnknown_0859F2B8:: @ 859F2B8 + .incbin "baserom.gba", 0x59f2b8, 0xfc + +gUnknown_0859F3B4:: @ 859F3B4 + .incbin "baserom.gba", 0x59f3b4, 0xa4 + +gUnknown_0859F458:: @ 859F458 + .incbin "baserom.gba", 0x59f458, 0xbc + +gUnknown_0859F514:: @ 859F514 + .incbin "baserom.gba", 0x59f514, 0x8 + +gUnknown_0859F51C:: @ 859F51C + .incbin "baserom.gba", 0x59f51c, 0x8 + +gUnknown_0859F524:: @ 859F524 + .incbin "baserom.gba", 0x59f524, 0x10 + +gUnknown_0859F534:: @ 859F534 + .incbin "baserom.gba", 0x59f534, 0x8 + +gUnknown_0859F53C:: @ 859F53C + .incbin "baserom.gba", 0x59f53c, 0xd0 + +gUnknown_0859F60C:: @ 859F60C + .incbin "baserom.gba", 0x59f60c, 0x44 + +gUnknown_0859F650:: @ 859F650 + .incbin "baserom.gba", 0x59f650, 0xec + +gUnknown_0859F73C:: @ 859F73C + .incbin "baserom.gba", 0x59f73c, 0x40 + +gUnknown_0859F77C:: @ 859F77C + .incbin "baserom.gba", 0x59f77c, 0xd64 + +gUnknown_085A04E0:: @ 85A04E0 + .incbin "baserom.gba", 0x5a04e0, 0x34c + +gUnknown_085A082C:: @ 85A082C + .incbin "baserom.gba", 0x5a082c, 0x20 + +gUnknown_085A084C:: @ 85A084C + .incbin "baserom.gba", 0x5a084c, 0x80 + +gUnknown_085A08CC:: @ 85A08CC + .incbin "baserom.gba", 0x5a08cc, 0x20 + +gUnknown_085A08EC:: @ 85A08EC + .incbin "baserom.gba", 0x5a08ec, 0x80 + +gUnknown_085A096C:: @ 85A096C + .incbin "baserom.gba", 0x5a096c, 0x1a4 + +@ 85A0B10 + .include "data/region_map_entries.inc" + +gUnknown_085A1B24:: @ 85A1B24 + .incbin "baserom.gba", 0x5a1b24, 0x60 + +gUnknown_085A1B84:: @ 85A1B84 + .incbin "baserom.gba", 0x5a1b84, 0x6 + +gUnknown_085A1B8A:: @ 85A1B8A + .incbin "baserom.gba", 0x5a1b8a, 0x22 + +gUnknown_085A1BAC:: @ 85A1BAC + .incbin "baserom.gba", 0x5a1bac, 0x20 + +gUnknown_085A1BCC:: @ 85A1BCC + .incbin "baserom.gba", 0x5a1bcc, 0x34 + +gUnknown_085A1C00:: @ 85A1C00 + .incbin "baserom.gba", 0x5a1c00, 0x8 + +gUnknown_085A1C08:: @ 85A1C08 + .incbin "baserom.gba", 0x5a1c08, 0x18 + +gUnknown_085A1C20:: @ 85A1C20 + .incbin "baserom.gba", 0x5a1c20, 0x10 + +gUnknown_085A1C30:: @ 85A1C30 + .incbin "baserom.gba", 0x5a1c30, 0x4 + +gUnknown_085A1C34:: @ 85A1C34 + .incbin "baserom.gba", 0x5a1c34, 0x4 + +gUnknown_085A1C38:: @ 85A1C38 + .incbin "baserom.gba", 0x5a1c38, 0x20 + +gUnknown_085A1C58:: @ 85A1C58 + .incbin "baserom.gba", 0x5a1c58, 0x38 + +gUnknown_085A1C90:: @ 85A1C90 + .incbin "baserom.gba", 0x5a1c90, 0xd8 + +gUnknown_085A1D68:: @ 85A1D68 + .incbin "baserom.gba", 0x5a1d68, 0xd4 + +gUnknown_085A1E3C:: @ 85A1E3C + .incbin "baserom.gba", 0x5a1e3c, 0xa0 + +gUnknown_085A1EDC:: @ 85A1EDC + .incbin "baserom.gba", 0x5a1edc, 0x8 + +gUnknown_085A1EE4:: @ 85A1EE4 + .incbin "baserom.gba", 0x5a1ee4, 0xc + +gUnknown_085A1EF0:: @ 85A1EF0 + .incbin "baserom.gba", 0x5a1ef0, 0x20 + +gUnknown_085A1F10:: @ 85A1F10 + .incbin "baserom.gba", 0x5a1f10, 0x8 + +gUnknown_085A1F18:: @ 85A1F18 + .incbin "baserom.gba", 0x5a1f18, 0x64 + +gUnknown_085A1F7C:: @ 85A1F7C + .incbin "baserom.gba", 0x5a1f7c, 0x18 + +gUnknown_085A1F94:: @ 85A1F94 + .incbin "baserom.gba", 0x5a1f94, 0x3c74 + +gUnknown_085A5C08:: @ 85A5C08 + .incbin "baserom.gba", 0x5a5c08, 0x1 + +gUnknown_085A5C09:: @ 85A5C09 + .incbin "baserom.gba", 0x5a5c09, 0x1b + +gUnknown_085A5C24:: @ 85A5C24 + .incbin "baserom.gba", 0x5a5c24, 0xf04 + +gUnknown_085A6B28:: @ 85A6B28 + .incbin "baserom.gba", 0x5a6b28, 0x20 + +gUnknown_085A6B48:: @ 85A6B48 + .incbin "baserom.gba", 0x5a6b48, 0x20 + +gUnknown_085A6B68:: @ 85A6B68 + .incbin "baserom.gba", 0x5a6b68, 0x10 + +gUnknown_085A6B78:: @ 85A6B78 + .incbin "baserom.gba", 0x5a6b78, 0x18 + +gUnknown_085A6B90:: @ 85A6B90 + .incbin "baserom.gba", 0x5a6b90, 0x20 + +gUnknown_085A6BB0:: @ 85A6BB0 + .incbin "baserom.gba", 0x5a6bb0, 0x20 + +gUnknown_085A6BD0:: @ 85A6BD0 + .incbin "baserom.gba", 0x5a6bd0, 0x18 + +gUnknown_085A6BE8:: @ 85A6BE8 + .incbin "baserom.gba", 0x5a6be8, 0x5c8 + +gUnknown_085A71B0:: @ 85A71B0 + .incbin "baserom.gba", 0x5a71b0, 0xa0 + +gUnknown_085A7250:: @ 85A7250 + .incbin "baserom.gba", 0x5a7250, 0x3c + +gUnknown_085A728C:: @ 85A728C + .incbin "baserom.gba", 0x5a728c, 0x18 + +gUnknown_085A72A4:: @ 85A72A4 + .incbin "baserom.gba", 0x5a72a4, 0x18 + +gUnknown_085A72BC:: @ 85A72BC + .incbin "baserom.gba", 0x5a72bc, 0x8 + +gUnknown_085A72C4:: @ 85A72C4 + .incbin "baserom.gba", 0x5a72c4, 0x8 + +gUnknown_085A72CC:: @ 85A72CC + .incbin "baserom.gba", 0x5a72cc, 0x8 + +gUnknown_085A72D4:: @ 85A72D4 + .incbin "baserom.gba", 0x5a72d4, 0x10 + +gUnknown_085A72E4:: @ 85A72E4 + .incbin "baserom.gba", 0x5a72e4, 0x8 + +gUnknown_085A72EC:: @ 85A72EC + .incbin "baserom.gba", 0x5a72ec, 0x8 + +gUnknown_085A72F4:: @ 85A72F4 + .incbin "baserom.gba", 0x5a72f4, 0x54 + +gUnknown_085A7348:: @ 85A7348 + .incbin "baserom.gba", 0x5a7348, 0x8 + +gUnknown_085A7350:: @ 85A7350 + .incbin "baserom.gba", 0x5a7350, 0x88 + +gUnknown_085A73D8:: @ 85A73D8 + .incbin "baserom.gba", 0x5a73d8, 0x8 + +gUnknown_085A73E0:: @ 85A73E0 + .incbin "baserom.gba", 0x5a73e0, 0x24 + +gUnknown_085A7404:: @ 85A7404 + .incbin "baserom.gba", 0x5a7404, 0x18 + +gUnknown_085A741C:: @ 85A741C + .incbin "baserom.gba", 0x5a741c, 0x8 + +gUnknown_085A7424:: @ 85A7424 + .incbin "baserom.gba", 0x5a7424, 0x10 + +gUnknown_085A7434:: @ 85A7434 + .incbin "baserom.gba", 0x5a7434, 0x10 + +gUnknown_085A7444:: @ 85A7444 + .incbin "baserom.gba", 0x5a7444, 0x8 + +gUnknown_085A744C:: @ 85A744C + .incbin "baserom.gba", 0x5a744c, 0x4 + +gUnknown_085A7450:: @ 85A7450 + .incbin "baserom.gba", 0x5a7450, 0x74 + +gUnknown_085A74C4:: @ 85A74C4 + .incbin "baserom.gba", 0x5a74c4, 0xc + +gUnknown_085A74D0:: @ 85A74D0 + .incbin "baserom.gba", 0x5a74d0, 0x14 + +gUnknown_085A74E4:: @ 85A74E4 + .incbin "baserom.gba", 0x5a74e4, 0xc + +gUnknown_085A74F0:: @ 85A74F0 + .incbin "baserom.gba", 0x5a74f0, 0xc + +gUnknown_085A74FC:: @ 85A74FC + .incbin "baserom.gba", 0x5a74fc, 0xc + +gUnknown_085A7508:: @ 85A7508 + .incbin "baserom.gba", 0x5a7508, 0xc + +gUnknown_085A7514:: @ 85A7514 + .incbin "baserom.gba", 0x5a7514, 0xc + +gUnknown_085A7520:: @ 85A7520 + .incbin "baserom.gba", 0x5a7520, 0xc + +gUnknown_085A752C:: @ 85A752C + .incbin "baserom.gba", 0x5a752c, 0xc + +gUnknown_085A7538:: @ 85A7538 + .incbin "baserom.gba", 0x5a7538, 0xc + +gUnknown_085A7544:: @ 85A7544 + .incbin "baserom.gba", 0x5a7544, 0xc + +gUnknown_085A7550:: @ 85A7550 + .incbin "baserom.gba", 0x5a7550, 0x8 + +gUnknown_085A7558:: @ 85A7558 + .incbin "baserom.gba", 0x5a7558, 0x10 + +gUnknown_085A7568:: @ 85A7568 + .incbin "baserom.gba", 0x5a7568, 0x2 + +gUnknown_085A756A:: @ 85A756A + .incbin "baserom.gba", 0x5a756a, 0xa + +gUnknown_085A7574:: @ 85A7574 + .incbin "baserom.gba", 0x5a7574, 0x4c + +gUnknown_085A75C0:: @ 85A75C0 + .incbin "baserom.gba", 0x5a75c0, 0x4 + +gUnknown_085A75C4:: @ 85A75C4 + .incbin "baserom.gba", 0x5a75c4, 0x8 + +gUnknown_085A75CC:: @ 85A75CC + .incbin "baserom.gba", 0x5a75cc, 0x8 + +gUnknown_085A75D4:: @ 85A75D4 + .incbin "baserom.gba", 0x5a75d4, 0x3c + +gUnknown_085A7610:: @ 85A7610 + .incbin "baserom.gba", 0x5a7610, 0x4 + +gUnknown_085A7614:: @ 85A7614 + .incbin "baserom.gba", 0x5a7614, 0x2 + +gUnknown_085A7616:: @ 85A7616 + .incbin "baserom.gba", 0x5a7616, 0x8 + +gUnknown_085A761E:: @ 85A761E + .incbin "baserom.gba", 0x5a761e, 0x8 + +gUnknown_085A7626:: @ 85A7626 + .incbin "baserom.gba", 0x5a7626, 0x8 + +gUnknown_085A762E:: @ 85A762E + .incbin "baserom.gba", 0x5a762e, 0x10 + +gUnknown_085A763E:: @ 85A763E + .incbin "baserom.gba", 0x5a763e, 0x10 + +gUnknown_085A764E:: @ 85A764E + .incbin "baserom.gba", 0x5a764e, 0x10 + +gUnknown_085A765E:: @ 85A765E + .incbin "baserom.gba", 0x5a765e, 0x10 + +gUnknown_085A766E:: @ 85A766E + .incbin "baserom.gba", 0x5a766e, 0x3f + +gUnknown_085A76AD:: @ 85A76AD + .incbin "baserom.gba", 0x5a76ad, 0x7 + +gUnknown_085A76B4:: @ 85A76B4 + .incbin "baserom.gba", 0x5a76b4, 0xc + +gUnknown_085A76C0:: @ 85A76C0 + .incbin "baserom.gba", 0x5a76c0, 0x12 + +gUnknown_085A76D2:: @ 85A76D2 + .incbin "baserom.gba", 0x5a76d2, 0x12 + +gUnknown_085A76E4:: @ 85A76E4 + .incbin "baserom.gba", 0x5a76e4, 0x1e + +gUnknown_085A7702:: @ 85A7702 + .incbin "baserom.gba", 0x5a7702, 0x66 + +gUnknown_085A7768:: @ 85A7768 + .incbin "baserom.gba", 0x5a7768, 0x66 + +gUnknown_085A77CE:: @ 85A77CE + .incbin "baserom.gba", 0x5a77ce, 0xa + +gUnknown_085A77D8:: @ 85A77D8 + .incbin "baserom.gba", 0x5a77d8, 0x14 + +gUnknown_085A77EC:: @ 85A77EC + .incbin "baserom.gba", 0x5a77ec, 0xa + +gUnknown_085A77F6:: @ 85A77F6 + .incbin "baserom.gba", 0x5a77f6, 0x8 + +gUnknown_085A77FE:: @ 85A77FE + .incbin "baserom.gba", 0x5a77fe, 0x6 + +gUnknown_085A7804:: @ 85A7804 + .incbin "baserom.gba", 0x5a7804, 0xa + +gUnknown_085A780E:: @ 85A780E + .incbin "baserom.gba", 0x5a780e, 0x8 + +gUnknown_085A7816:: @ 85A7816 + .incbin "baserom.gba", 0x5a7816, 0x12 + +gUnknown_085A7828:: @ 85A7828 + .incbin "baserom.gba", 0x5a7828, 0x12 + +gUnknown_085A783A:: @ 85A783A + .incbin "baserom.gba", 0x5a783a, 0x8e + +gUnknown_085A78C8:: @ 85A78C8 + .incbin "baserom.gba", 0x5a78c8, 0x13c + +gUnknown_085A7A04:: @ 85A7A04 + .incbin "baserom.gba", 0x5a7a04, 0x1c + +gUnknown_085A7A20:: @ 85A7A20 + .incbin "baserom.gba", 0x5a7a20, 0x2c0 + +gUnknown_085A7CE0:: @ 85A7CE0 + .incbin "baserom.gba", 0x5a7ce0, 0x18 + +gUnknown_085A7CF8:: @ 85A7CF8 + .incbin "baserom.gba", 0x5a7cf8, 0x18 + +gUnknown_085A7D10:: @ 85A7D10 + .incbin "baserom.gba", 0x5a7d10, 0x18 + +gUnknown_085A7D28:: @ 85A7D28 + .incbin "baserom.gba", 0x5a7d28, 0x18 + +gUnknown_085A7D40:: @ 85A7D40 + .incbin "baserom.gba", 0x5a7d40, 0x18 + +gUnknown_085A7D58:: @ 85A7D58 + .incbin "baserom.gba", 0x5a7d58, 0x18 + +gUnknown_085A7D70:: @ 85A7D70 + .incbin "baserom.gba", 0x5a7d70, 0x18 + +gUnknown_085A7D88:: @ 85A7D88 + .incbin "baserom.gba", 0x5a7d88, 0x18 + +gUnknown_085A7DA0:: @ 85A7DA0 + .incbin "baserom.gba", 0x5a7da0, 0x18 + +gUnknown_085A7DB8:: @ 85A7DB8 + .incbin "baserom.gba", 0x5a7db8, 0x18 + +gUnknown_085A7DD0:: @ 85A7DD0 + .incbin "baserom.gba", 0x5a7dd0, 0x18 + +gUnknown_085A7DE8:: @ 85A7DE8 + .incbin "baserom.gba", 0x5a7de8, 0x18 + +gUnknown_085A7E00:: @ 85A7E00 + .incbin "baserom.gba", 0x5a7e00, 0x18 + +gUnknown_085A7E18:: @ 85A7E18 + .incbin "baserom.gba", 0x5a7e18, 0x18 + +gUnknown_085A7E30:: @ 85A7E30 + .incbin "baserom.gba", 0x5a7e30, 0x168 + +gUnknown_085A7F98:: @ 85A7F98 + .incbin "baserom.gba", 0x5a7f98, 0x28 + +gUnknown_085A7FC0:: @ 85A7FC0 + .incbin "baserom.gba", 0x5a7fc0, 0x20 + +gUnknown_085A7FE0:: @ 85A7FE0 + .incbin "baserom.gba", 0x5a7fe0, 0x14 + +gUnknown_085A7FF4:: @ 85A7FF4 + .incbin "baserom.gba", 0x5a7ff4, 0x1c + +gUnknown_085A8010:: @ 85A8010 + .incbin "baserom.gba", 0x5a8010, 0x18 + +gUnknown_085A8028:: @ 85A8028 + .incbin "baserom.gba", 0x5a8028, 0x14 + +gUnknown_085A803C:: @ 85A803C + .incbin "baserom.gba", 0x5a803c, 0x228 + +gUnknown_085A8264:: @ 85A8264 + .incbin "baserom.gba", 0x5a8264, 0x68 + +gUnknown_085A82CC:: @ 85A82CC + .incbin "baserom.gba", 0x5a82cc, 0x68 + +gUnknown_085A8334:: @ 85A8334 + .incbin "baserom.gba", 0x5a8334, 0xb0 + +gUnknown_085A83E4:: @ 85A83E4 + .incbin "baserom.gba", 0x5a83e4, 0x24 + +gUnknown_085A8408:: @ 85A8408 + .incbin "baserom.gba", 0x5a8408, 0x14 + +gUnknown_085A841C:: @ 85A841C + .incbin "baserom.gba", 0x5a841c, 0x14 + +gUnknown_085A8430:: @ 85A8430 + .incbin "baserom.gba", 0x5a8430, 0x5 + +gUnknown_085A8435:: @ 85A8435 + .incbin "baserom.gba", 0x5a8435, 0x6 + +gUnknown_085A843B:: @ 85A843B + .incbin "baserom.gba", 0x5a843b, 0x65 + +gUnknown_085A84A0:: @ 85A84A0 + .incbin "baserom.gba", 0x5a84a0, 0xc + +gUnknown_085A84AC:: @ 85A84AC + .incbin "baserom.gba", 0x5a84ac, 0x64 + +gUnknown_085A8510:: @ 85A8510 + .incbin "baserom.gba", 0x5a8510, 0x10 + +gUnknown_085A8520:: @ 85A8520 + .incbin "baserom.gba", 0x5a8520, 0x4 + +gUnknown_085A8524:: @ 85A8524 + .incbin "baserom.gba", 0x5a8524, 0x20 + +gUnknown_085A8544:: @ 85A8544 + .incbin "baserom.gba", 0x5a8544, 0x48 + +gUnknown_085A858C:: @ 85A858C + .incbin "baserom.gba", 0x5a858c, 0x1154 + +gUnknown_085A96E0:: @ 85A96E0 + .incbin "baserom.gba", 0x5a96e0, 0x1b8 + +gUnknown_085A9898:: @ 85A9898 + .incbin "baserom.gba", 0x5a9898, 0x4 + +gUnknown_085A989C:: @ 85A989C + .incbin "baserom.gba", 0x5a989c, 0x200 + +gUnknown_085A9A9C:: @ 85A9A9C + .incbin "baserom.gba", 0x5a9a9c, 0x1084 + +gUnknown_085AAB20:: @ 85AAB20 + .incbin "baserom.gba", 0x5aab20, 0xc30 + +gUnknown_085AB750:: @ 85AB750 + .incbin "baserom.gba", 0x5ab750, 0xb38 + +gUnknown_085AC288:: @ 85AC288 + .incbin "baserom.gba", 0x5ac288, 0xfb8 + +gUnknown_085AD240:: @ 85AD240 + .incbin "baserom.gba", 0x5ad240, 0x1130 + +gUnknown_085AE370:: @ 85AE370 + .incbin "baserom.gba", 0x5ae370, 0x604 + +gUnknown_085AE974:: @ 85AE974 + .incbin "baserom.gba", 0x5ae974, 0x50c + +gUnknown_085AEE80:: @ 85AEE80 + .incbin "baserom.gba", 0x5aee80, 0x50c + +gUnknown_085AF38C:: @ 85AF38C + .incbin "baserom.gba", 0x5af38c, 0x50c + +gUnknown_085AF898:: @ 85AF898 + .incbin "baserom.gba", 0x5af898, 0x50c + +gUnknown_085AFDA4:: @ 85AFDA4 + .incbin "baserom.gba", 0x5afda4, 0x50c + +gUnknown_085B02B0:: @ 85B02B0 + .incbin "baserom.gba", 0x5b02b0, 0x524 + +gUnknown_085B07D4:: @ 85B07D4 + .incbin "baserom.gba", 0x5b07d4, 0x14 + +gUnknown_085B07E8:: @ 85B07E8 + .incbin "baserom.gba", 0x5b07e8, 0x4 + +gUnknown_085B07EC:: @ 85B07EC + .incbin "baserom.gba", 0x5b07ec, 0x8 + +gUnknown_085B07F4:: @ 85B07F4 + .incbin "baserom.gba", 0x5b07f4, 0x3c + +gUnknown_085B0830:: @ 85B0830 + .incbin "baserom.gba", 0x5b0830, 0x8 + +gUnknown_085B0838:: @ 85B0838 + .incbin "baserom.gba", 0x5b0838, 0x4 + + @ todo, label functions from battle_ai.c +sBattleAICmdTable:: @ 85B083C + .4byte 0x08131179 + .4byte 0x081311b9 + .4byte 0x081311f9 + .4byte 0x08131239 + .4byte 0x08131279 + .4byte 0x081312bd + .4byte 0x08131325 + .4byte 0x0813138d + .4byte 0x081313f5 + .4byte 0x0813145d + .4byte 0x081314d1 + .4byte 0x08131545 + .4byte 0x081315b9 + .4byte 0x0813162d + .4byte 0x0813169d + .4byte 0x0813170d + .4byte 0x08131789 + .4byte 0x08131805 + .4byte 0x08131841 + .4byte 0x0813187d + .4byte 0x081318b9 + .4byte 0x081318f5 + .4byte 0x08131949 + .4byte 0x0813199d + .4byte 0x081319f1 + .4byte 0x08131a45 + .4byte 0x08131a89 + .4byte 0x08131acd + .4byte 0x08131b35 + .4byte 0x08131ba1 + .4byte 0x08131c0d + .4byte 0x08131c7d + .4byte 0x08131ced + .4byte 0x08131d5d + .4byte 0x08131d81 + .4byte 0x08131f1d + .4byte 0x08131f49 + .4byte 0x0813214d + .4byte 0x081321a5 + .4byte 0x081321e1 + .4byte 0x0813221d + .4byte 0x08132269 + .4byte 0x081322b5 + .4byte 0x081322b9 + .4byte 0x081322bd + .4byte 0x081323b9 + .4byte 0x081323d5 + .4byte 0x08132401 + .4byte 0x08132615 + .4byte 0x08132701 + .4byte 0x081327d1 + .4byte 0x081327d5 + .4byte 0x081327d9 + .4byte 0x081328b9 + .4byte 0x08132995 + .4byte 0x08132a01 + .4byte 0x08132a4d + .4byte 0x08132a99 + .4byte 0x08132b01 + .4byte 0x08132b69 + .4byte 0x08132bd1 + .4byte 0x08132c39 + .4byte 0x08132d35 + .4byte 0x08132e19 + .4byte 0x08132f49 + .4byte 0x08133021 + .4byte 0x08133119 + .4byte 0x081331fd + .4byte 0x08133285 + .4byte 0x08133315 + .4byte 0x08133329 + .4byte 0x08133389 + .4byte 0x0813339d + .4byte 0x08133495 + .4byte 0x081334ed + .4byte 0x08133539 + .4byte 0x08133585 + .4byte 0x081335ad + .4byte 0x081335f9 + .4byte 0x08133625 + .4byte 0x08133651 + .4byte 0x0813367d + .4byte 0x081336c9 + .4byte 0x081336cd + .4byte 0x081336d1 + .4byte 0x081336d5 + .4byte 0x081336d9 + .4byte 0x081336dd + .4byte 0x081336e1 + .4byte 0x08133711 + .4byte 0x08133731 + .4byte 0x08133755 + .4byte 0x0813382d + .4byte 0x0813387d + .4byte 0x081338cd + .4byte 0x08131eb5 + .4byte 0x0813251d + .4byte 0x0813391d + .4byte 0x08133415 + +gUnknown_085B09C8:: @ 85B09C8 + .incbin "baserom.gba", 0x5b09c8, 0x1c + +gUnknown_085B09E4:: @ 85B09E4 + .incbin "baserom.gba", 0x5b09e4, 0x10 + +gUnknown_085B09F4:: @ 85B09F4 + .incbin "baserom.gba", 0x5b09f4, 0x4 + +gUnknown_085B09F8:: @ 85B09F8 + .incbin "baserom.gba", 0x5b09f8, 0x8 + +gUnknown_085B0A00:: @ 85B0A00 + .incbin "baserom.gba", 0x5b0a00, 0x2 + +gUnknown_085B0A02:: @ 85B0A02 + .incbin "baserom.gba", 0x5b0a02, 0x7e + +gUnknown_085B0A80:: @ 85B0A80 + .incbin "baserom.gba", 0x5b0a80, 0x18c + +gUnknown_085B0C0C:: @ 85B0C0C + .incbin "baserom.gba", 0x5b0c0c, 0x1f8 + +gUnknown_085B0E04:: @ 85B0E04 + .incbin "baserom.gba", 0x5b0e04, 0xfc8 + +gUnknown_085B1DCC:: @ 85B1DCC + .incbin "baserom.gba", 0x5b1dcc, 0x10 + +gUnknown_085B1DDC:: @ 85B1DDC + .incbin "baserom.gba", 0x5b1ddc, 0x8 + +gUnknown_085B1DE4:: @ 85B1DE4 + .incbin "baserom.gba", 0x5b1de4, 0x8 + +gUnknown_085B1DEC:: @ 85B1DEC + .incbin "baserom.gba", 0x5b1dec, 0x6 + +gUnknown_085B1DF2:: @ 85B1DF2 + .incbin "baserom.gba", 0x5b1df2, 0x6 + +gUnknown_085B1DF8:: @ 85B1DF8 + .incbin "baserom.gba", 0x5b1df8, 0x8 + +gUnknown_085B1E00:: @ 85B1E00 + .incbin "baserom.gba", 0x5b1e00, 0xc + +gUnknown_085B1E0C:: @ 85B1E0C + .incbin "baserom.gba", 0x5b1e0c, 0x1c + +gUnknown_085B1E28:: @ 85B1E28 + .incbin "baserom.gba", 0x5b1e28, 0xa8 + +gUnknown_085B1ED0:: @ 85B1ED0 + .incbin "baserom.gba", 0x5b1ed0, 0x8 + +gUnknown_085B1ED8:: @ 85B1ED8 + .incbin "baserom.gba", 0x5b1ed8, 0x10 + +gUnknown_085B1EE8:: @ 85B1EE8 + .incbin "baserom.gba", 0x5b1ee8, 0x10 + +gUnknown_085B1EF8:: @ 85B1EF8 + .incbin "baserom.gba", 0x5b1ef8, 0x18 + +gUnknown_085B1F10:: @ 85B1F10 + .incbin "baserom.gba", 0x5b1f10, 0x18 + +gUnknown_085B1F28:: @ 85B1F28 + .incbin "baserom.gba", 0x5b1f28, 0x18 + +gUnknown_085B1F40:: @ 85B1F40 + .incbin "baserom.gba", 0x5b1f40, 0x294 + +gUnknown_085B21D4:: @ 85B21D4 + .incbin "baserom.gba", 0x5b21d4, 0x8 + +gUnknown_085B21DC:: @ 85B21DC + .incbin "baserom.gba", 0x5b21dc, 0x18 + +gUnknown_085B21F4:: @ 85B21F4 + .incbin "baserom.gba", 0x5b21f4, 0x8 + +gUnknown_085B21FC:: @ 85B21FC + .incbin "baserom.gba", 0x5b21fc, 0xc + +gUnknown_085B2208:: @ 85B2208 + .incbin "baserom.gba", 0x5b2208, 0x10 + +gUnknown_085B2218:: @ 85B2218 + .incbin "baserom.gba", 0x5b2218, 0x38 + +gUnknown_085B2250:: @ 85B2250 + .incbin "baserom.gba", 0x5b2250, 0x18 + +gUnknown_085B2268:: @ 85B2268 + .incbin "baserom.gba", 0x5b2268, 0x38 + +gUnknown_085B22A0:: @ 85B22A0 + .incbin "baserom.gba", 0x5b22a0, 0x18 + +gUnknown_085B22B8:: @ 85B22B8 + .incbin "baserom.gba", 0x5b22b8, 0x18 + +gUnknown_085B22D0:: @ 85B22D0 + .incbin "baserom.gba", 0x5b22d0, 0x2d0 + +gUnknown_085B25A0:: @ 85B25A0 + .incbin "baserom.gba", 0x5b25a0, 0x80 + +gUnknown_085B2620:: @ 85B2620 + .incbin "baserom.gba", 0x5b2620, 0xc + +gUnknown_085B262C:: @ 85B262C + .incbin "baserom.gba", 0x5b262c, 0x3c + +gUnknown_085B2668:: @ 85B2668 + .incbin "baserom.gba", 0x5b2668, 0x30 + +gUnknown_085B2698:: @ 85B2698 + .incbin "baserom.gba", 0x5b2698, 0x3 + +gUnknown_085B269B:: @ 85B269B + .incbin "baserom.gba", 0x5b269b, 0x2 + +gUnknown_085B269D:: @ 85B269D + .incbin "baserom.gba", 0x5b269d, 0x2 + +gUnknown_085B269F:: @ 85B269F + .incbin "baserom.gba", 0x5b269f, 0x5 + +gUnknown_085B26A4:: @ 85B26A4 + .incbin "baserom.gba", 0x5b26a4, 0x4c + +gUnknown_085B26F0:: @ 85B26F0 + .incbin "baserom.gba", 0x5b26f0, 0x4 + +gUnknown_085B26F4:: @ 85B26F4 + .incbin "baserom.gba", 0x5b26f4, 0x8 + +gUnknown_085B26FC:: @ 85B26FC + .incbin "baserom.gba", 0x5b26fc, 0x8 + +gUnknown_085B2704:: @ 85B2704 + .incbin "baserom.gba", 0x5b2704, 0x18 + +gUnknown_085B271C:: @ 85B271C + .incbin "baserom.gba", 0x5b271c, 0x4 + +gUnknown_085B2720:: @ 85B2720 + .incbin "baserom.gba", 0x5b2720, 0x28 + +gUnknown_085B2748:: @ 85B2748 + .incbin "baserom.gba", 0x5b2748, 0x60 + +gUnknown_085B27A8:: @ 85B27A8 + .incbin "baserom.gba", 0x5b27a8, 0x8 + +gUnknown_085B27B0:: @ 85B27B0 + .incbin "baserom.gba", 0x5b27b0, 0x18 + +gUnknown_085B27C8:: @ 85B27C8 + .incbin "baserom.gba", 0x5b27c8, 0x88 + +gUnknown_085B2850:: @ 85B2850 + .incbin "baserom.gba", 0x5b2850, 0x20 + +gUnknown_085B2870:: @ 85B2870 + .incbin "baserom.gba", 0x5b2870, 0x20 + +gUnknown_085B2890:: @ 85B2890 + .incbin "baserom.gba", 0x5b2890, 0x10 + +gUnknown_085B28A0:: @ 85B28A0 + .incbin "baserom.gba", 0x5b28a0, 0x10 + +gUnknown_085B28B0:: @ 85B28B0 + .incbin "baserom.gba", 0x5b28b0, 0x1e0 + +gUnknown_085B2A90:: @ 85B2A90 + .incbin "baserom.gba", 0x5b2a90, 0xb4 + +gUnknown_085B2B44:: @ 85B2B44 + .incbin "baserom.gba", 0x5b2b44, 0x18 + +gUnknown_085B2B5C:: @ 85B2B5C + .incbin "baserom.gba", 0x5b2b5c, 0x4 + +gUnknown_085B2B60:: @ 85B2B60 + .incbin "baserom.gba", 0x5b2b60, 0x8 + +gUnknown_085B2B68:: @ 85B2B68 + .incbin "baserom.gba", 0x5b2b68, 0x10 + +gUnknown_085B2B78:: @ 85B2B78 + .incbin "baserom.gba", 0x5b2b78, 0x6 + +gUnknown_085B2B7E:: @ 85B2B7E + .incbin "baserom.gba", 0x5b2b7e, 0xa + +gUnknown_085B2B88:: @ 85B2B88 + .incbin "baserom.gba", 0x5b2b88, 0xc + +gUnknown_085B2B94:: @ 85B2B94 + .incbin "baserom.gba", 0x5b2b94, 0xc + +gUnknown_085B2BA0:: @ 85B2BA0 + .incbin "baserom.gba", 0x5b2ba0, 0xc + +gUnknown_085B2BAC:: @ 85B2BAC + .incbin "baserom.gba", 0x5b2bac, 0x8 + +gUnknown_085B2BB4:: @ 85B2BB4 + .incbin "baserom.gba", 0x5b2bb4, 0x40 + +gUnknown_085B2BF4:: @ 85B2BF4 + .incbin "baserom.gba", 0x5b2bf4, 0x12 + +gUnknown_085B2C06:: @ 85B2C06 + .incbin "baserom.gba", 0x5b2c06, 0x12 + +gUnknown_085B2C18:: @ 85B2C18 + .incbin "baserom.gba", 0x5b2c18, 0x9 + +gUnknown_085B2C21:: @ 85B2C21 + .incbin "baserom.gba", 0x5b2c21, 0x9 + +gUnknown_085B2C2A:: @ 85B2C2A + .incbin "baserom.gba", 0x5b2c2a, 0x26 + +gUnknown_085B2C50:: @ 85B2C50 + .incbin "baserom.gba", 0x5b2c50, 0x78 + +gUnknown_085B2CC8:: @ 85B2CC8 + .incbin "baserom.gba", 0x5b2cc8, 0x14 + +gUnknown_085B2CDC:: @ 85B2CDC + .incbin "baserom.gba", 0x5b2cdc, 0x14 + +gUnknown_085B2CF0:: @ 85B2CF0 + .incbin "baserom.gba", 0x5b2cf0, 0x340 + +gUnknown_085B3030:: @ 85B3030 + .incbin "baserom.gba", 0x5b3030, 0x10 + +gUnknown_085B3040:: @ 85B3040 + .incbin "baserom.gba", 0x5b3040, 0x64 + +gUnknown_085B30A4:: @ 85B30A4 + .incbin "baserom.gba", 0x5b30a4, 0x30 + +gUnknown_085B30D4:: @ 85B30D4 + .incbin "baserom.gba", 0x5b30d4, 0x30 + +gUnknown_085B3104:: @ 85B3104 + .incbin "baserom.gba", 0x5b3104, 0x18 + +gUnknown_085B311C:: @ 85B311C + .incbin "baserom.gba", 0x5b311c, 0x8 + +gUnknown_085B3124:: @ 85B3124 + .incbin "baserom.gba", 0x5b3124, 0x8 + +gUnknown_085B312C:: @ 85B312C + .incbin "baserom.gba", 0x5b312c, 0x16 + +gUnknown_085B3142:: @ 85B3142 + .incbin "baserom.gba", 0x5b3142, 0xc + +gUnknown_085B314E:: @ 85B314E + .incbin "baserom.gba", 0x5b314e, 0xe + +gUnknown_085B315C:: @ 85B315C + .incbin "baserom.gba", 0x5b315c, 0x14 + +gUnknown_085B3170:: @ 85B3170 + .incbin "baserom.gba", 0x5b3170, 0x2c + +gUnknown_085B319C:: @ 85B319C + .incbin "baserom.gba", 0x5b319c, 0x18 + +gUnknown_085B31B4:: @ 85B31B4 + .incbin "baserom.gba", 0x5b31b4, 0x1c + +gUnknown_085B31D0:: @ 85B31D0 + .incbin "baserom.gba", 0x5b31d0, 0x28 + +gUnknown_085B31F8:: @ 85B31F8 + .incbin "baserom.gba", 0x5b31f8, 0x14 + +gUnknown_085B320C:: @ 85B320C + .incbin "baserom.gba", 0x5b320c, 0x14 + +gUnknown_085B3220:: @ 85B3220 + .incbin "baserom.gba", 0x5b3220, 0x8 + +gUnknown_085B3228:: @ 85B3228 + .incbin "baserom.gba", 0x5b3228, 0x2c + +gUnknown_085B3254:: @ 85B3254 + .incbin "baserom.gba", 0x5b3254, 0x2c + +gUnknown_085B3280:: @ 85B3280 + .incbin "baserom.gba", 0x5b3280, 0x160 + +gUnknown_085B33E0:: @ 85B33E0 + .incbin "baserom.gba", 0x5b33e0, 0x16 + +gUnknown_085B33F6:: @ 85B33F6 + .incbin "baserom.gba", 0x5b33f6, 0xa + +gUnknown_085B3400:: @ 85B3400 + .incbin "baserom.gba", 0x5b3400, 0x10 + +gUnknown_085B3410:: @ 85B3410 + .incbin "baserom.gba", 0x5b3410, 0x10 + +gUnknown_085B3420:: @ 85B3420 + .incbin "baserom.gba", 0x5b3420, 0x24 + +gUnknown_085B3444:: @ 85B3444 + .incbin "baserom.gba", 0x5b3444, 0x2c + +gUnknown_085B3470:: @ 85B3470 + .incbin "baserom.gba", 0x5b3470, 0x4 + +gUnknown_085B3474:: @ 85B3474 + .incbin "baserom.gba", 0x5b3474, 0x8 + +gUnknown_085B347C:: @ 85B347C + .incbin "baserom.gba", 0x5b347c, 0x8 + +gUnknown_085B3484:: @ 85B3484 + .incbin "baserom.gba", 0x5b3484, 0xc0 + +gUnknown_085B3544:: @ 85B3544 + .incbin "baserom.gba", 0x5b3544, 0x20 + +gUnknown_085B3564:: @ 85B3564 + .incbin "baserom.gba", 0x5b3564, 0x800 + +gUnknown_085B3D64:: @ 85B3D64 + .incbin "baserom.gba", 0x5b3d64, 0x8 + +gUnknown_085B3D6C:: @ 85B3D6C + .incbin "baserom.gba", 0x5b3d6c, 0x10 + +gUnknown_085B3D7C:: @ 85B3D7C + .incbin "baserom.gba", 0x5b3d7c, 0x8 + +gUnknown_085B3D84:: @ 85B3D84 + .incbin "baserom.gba", 0x5b3d84, 0x8 + +gUnknown_085B3D8C:: @ 85B3D8C + .incbin "baserom.gba", 0x5b3d8c, 0x8 + +gUnknown_085B3D94:: @ 85B3D94 + .incbin "baserom.gba", 0x5b3d94, 0x20 + +gUnknown_085B3DB4:: @ 85B3DB4 + .incbin "baserom.gba", 0x5b3db4, 0x134 + +gUnknown_085B3EE8:: @ 85B3EE8 + .incbin "baserom.gba", 0x5b3ee8, 0x2 + +gUnknown_085B3EEA:: @ 85B3EEA + .incbin "baserom.gba", 0x5b3eea, 0x6 + +gUnknown_085B3EF0:: @ 85B3EF0 + .incbin "baserom.gba", 0x5b3ef0, 0xc + +gUnknown_085B3EFC:: @ 85B3EFC + .incbin "baserom.gba", 0x5b3efc, 0x1c + +gUnknown_085B3F18:: @ 85B3F18 + .incbin "baserom.gba", 0x5b3f18, 0x100 + +gUnknown_085B4018:: @ 85B4018 + .incbin "baserom.gba", 0x5b4018, 0x4 + +gUnknown_085B401C:: @ 85B401C + .incbin "baserom.gba", 0x5b401c, 0x8 + +gUnknown_085B4024:: @ 85B4024 + .incbin "baserom.gba", 0x5b4024, 0x10 + +gUnknown_085B4034:: @ 85B4034 + .incbin "baserom.gba", 0x5b4034, 0xb8 + +gUnknown_085B40EC:: @ 85B40EC + .incbin "baserom.gba", 0x5b40ec, 0x10 + +gUnknown_085B40FC:: @ 85B40FC + .incbin "baserom.gba", 0x5b40fc, 0x38 + +gUnknown_085B4134:: @ 85B4134 + .incbin "baserom.gba", 0x5b4134, 0x6f8 + +gUnknown_085B482C:: @ 85B482C + .incbin "baserom.gba", 0x5b482c, 0x4e4 + +gUnknown_085B4D10:: @ 85B4D10 + .incbin "baserom.gba", 0x5b4d10, 0x4d4 + +gUnknown_085B51E4:: @ 85B51E4 + .incbin "baserom.gba", 0x5b51e4, 0x6a0 + +gUnknown_085B5884:: @ 85B5884 + .incbin "baserom.gba", 0x5b5884, 0x40 + +gUnknown_085B58C4:: @ 85B58C4 + .incbin "baserom.gba", 0x5b58c4, 0x5 + +gUnknown_085B58C9:: @ 85B58C9 + .incbin "baserom.gba", 0x5b58c9, 0x10 + +gUnknown_085B58D9:: @ 85B58D9 + .incbin "baserom.gba", 0x5b58d9, 0x323 + +gUnknown_085B5BFC:: @ 85B5BFC + .incbin "baserom.gba", 0x5b5bfc, 0x200 + +gUnknown_085B5DFC:: @ 85B5DFC + .incbin "baserom.gba", 0x5b5dfc, 0x1a4 + +gUnknown_085B5FA0:: @ 85B5FA0 + .incbin "baserom.gba", 0x5b5fa0, 0x1a0 + +gUnknown_085B6140:: @ 85B6140 + .incbin "baserom.gba", 0x5b6140, 0xc + +gUnknown_085B614C:: @ 85B614C + .incbin "baserom.gba", 0x5b614c, 0x8 + +gUnknown_085B6154:: @ 85B6154 + .incbin "baserom.gba", 0x5b6154, 0xc + +gUnknown_085B6160:: @ 85B6160 + .incbin "baserom.gba", 0x5b6160, 0x184 + +gUnknown_085B62E4:: @ 85B62E4 + .incbin "baserom.gba", 0x5b62e4, 0x4 + +gUnknown_085B62E8:: @ 85B62E8 + .incbin "baserom.gba", 0x5b62e8, 0x5c + +gUnknown_085B6344:: @ 85B6344 + .incbin "baserom.gba", 0x5b6344, 0x4 + +gUnknown_085B6348:: @ 85B6348 + .incbin "baserom.gba", 0x5b6348, 0x40 + +gUnknown_085B6388:: @ 85B6388 + .incbin "baserom.gba", 0x5b6388, 0x68 + +gUnknown_085B63F0:: @ 85B63F0 + .incbin "baserom.gba", 0x5b63f0, 0x18 + +gUnknown_085B6408:: @ 85B6408 + .incbin "baserom.gba", 0x5b6408, 0x8 + +gUnknown_085B6410:: @ 85B6410 + .incbin "baserom.gba", 0x5b6410, 0x8 + +gUnknown_085B6418:: @ 85B6418 + .incbin "baserom.gba", 0x5b6418, 0x6 + +gUnknown_085B641E:: @ 85B641E + .incbin "baserom.gba", 0x5b641e, 0x4 + +gUnknown_085B6422:: @ 85B6422 + .incbin "baserom.gba", 0x5b6422, 0xa + +gUnknown_085B642C:: @ 85B642C + .incbin "baserom.gba", 0x5b642c, 0x10 + +gUnknown_085B643C:: @ 85B643C + .incbin "baserom.gba", 0x5b643c, 0xc + +gUnknown_085B6448:: @ 85B6448 + .incbin "baserom.gba", 0x5b6448, 0xf3c + +gUnknown_085B7384:: @ 85B7384 + .incbin "baserom.gba", 0x5b7384, 0x98 + +gUnknown_085B741C:: @ 85B741C + .incbin "baserom.gba", 0x5b741c, 0x6c + +gUnknown_085B7488:: @ 85B7488 + .incbin "baserom.gba", 0x5b7488, 0x8 + +gUnknown_085B7490:: @ 85B7490 + .incbin "baserom.gba", 0x5b7490, 0x78 + +gUnknown_085B7508:: @ 85B7508 + .incbin "baserom.gba", 0x5b7508, 0x60 + +gUnknown_085B7568:: @ 85B7568 + .incbin "baserom.gba", 0x5b7568, 0x48 + +gUnknown_085B75B0:: @ 85B75B0 + .incbin "baserom.gba", 0x5b75b0, 0x60 + +gUnknown_085B7610:: @ 85B7610 + .incbin "baserom.gba", 0x5b7610, 0x140 + +gUnknown_085B7750:: @ 85B7750 + .incbin "baserom.gba", 0x5b7750, 0x94 + +gUnknown_085B77E4:: @ 85B77E4 + .incbin "baserom.gba", 0x5b77e4, 0x18 + +gUnknown_085B77FC:: @ 85B77FC + .incbin "baserom.gba", 0x5b77fc, 0x18 + +gUnknown_085B7814:: @ 85B7814 + .incbin "baserom.gba", 0x5b7814, 0x18 + +gUnknown_085B782C:: @ 85B782C + .incbin "baserom.gba", 0x5b782c, 0x18 + +gUnknown_085B7844:: @ 85B7844 + .incbin "baserom.gba", 0x5b7844, 0x20 + +gUnknown_085B7864:: @ 85B7864 + .incbin "baserom.gba", 0x5b7864, 0xc4 + +gUnknown_085B7928:: @ 85B7928 + .incbin "baserom.gba", 0x5b7928, 0x20 + +gUnknown_085B7948:: @ 85B7948 + .incbin "baserom.gba", 0x5b7948, 0x8 + +gUnknown_085B7950:: @ 85B7950 + .incbin "baserom.gba", 0x5b7950, 0x28 + +gUnknown_085B7978:: @ 85B7978 + .incbin "baserom.gba", 0x5b7978, 0x80 + +gUnknown_085B79F8:: @ 85B79F8 + .incbin "baserom.gba", 0x5b79f8, 0x18 + +gUnknown_085B7A10:: @ 85B7A10 + .incbin "baserom.gba", 0x5b7a10, 0x30 + +gUnknown_085B7A40:: @ 85B7A40 + .incbin "baserom.gba", 0x5b7a40, 0x7c + +gUnknown_085B7ABC:: @ 85B7ABC + .incbin "baserom.gba", 0x5b7abc, 0x30 + +gUnknown_085B7AEC:: @ 85B7AEC + .incbin "baserom.gba", 0x5b7aec, 0x18 + +gUnknown_085B7B04:: @ 85B7B04 + .incbin "baserom.gba", 0x5b7b04, 0x6 + +gUnknown_085B7B0A:: @ 85B7B0A + .incbin "baserom.gba", 0x5b7b0a, 0x8 + +gUnknown_085B7B12:: @ 85B7B12 + .incbin "baserom.gba", 0x5b7b12, 0x8 + +gUnknown_085B7B1A:: @ 85B7B1A + .incbin "baserom.gba", 0x5b7b1a, 0x14 + +gUnknown_085B7B2E:: @ 85B7B2E + .incbin "baserom.gba", 0x5b7b2e, 0x18 + +gUnknown_085B7B46:: @ 85B7B46 + .incbin "baserom.gba", 0x5b7b46, 0x2 + +gUnknown_085B7B48:: @ 85B7B48 + .incbin "baserom.gba", 0x5b7b48, 0x8d0 + +gUnknown_085B8418:: @ 85B8418 + .incbin "baserom.gba", 0x5b8418, 0x20 + +gUnknown_085B8438:: @ 85B8438 + .incbin "baserom.gba", 0x5b8438, 0x338 + +gUnknown_085B8770:: @ 85B8770 + .incbin "baserom.gba", 0x5b8770, 0x480 + +gUnknown_085B8BF0:: @ 85B8BF0 + .incbin "baserom.gba", 0x5b8bf0, 0x20 + +gUnknown_085B8C10:: @ 85B8C10 + .incbin "baserom.gba", 0x5b8c10, 0x20 + +gUnknown_085B8C30:: @ 85B8C30 + .incbin "baserom.gba", 0x5b8c30, 0x2 + +gUnknown_085B8C32:: @ 85B8C32 + .incbin "baserom.gba", 0x5b8c32, 0x36 + +gUnknown_085B8C68:: @ 85B8C68 + .incbin "baserom.gba", 0x5b8c68, 0x18 + +gUnknown_085B8C80:: @ 85B8C80 + .incbin "baserom.gba", 0x5b8c80, 0x10 + +gUnknown_085B8C90:: @ 85B8C90 + .incbin "baserom.gba", 0x5b8c90, 0x528 + +gUnknown_085B91B8:: @ 85B91B8 + .incbin "baserom.gba", 0x5b91b8, 0x178 + +gUnknown_085B9330:: @ 85B9330 + .incbin "baserom.gba", 0x5b9330, 0x580 + +gUnknown_085B98B0:: @ 85B98B0 + .incbin "baserom.gba", 0x5b98b0, 0x240 + +gUnknown_085B9AF0:: @ 85B9AF0 + .incbin "baserom.gba", 0x5b9af0, 0x11e0 + +gUnknown_085BACD0:: @ 85BACD0 + .incbin "baserom.gba", 0x5bacd0, 0x1e0 + +gUnknown_085BAEB0:: @ 85BAEB0 + .incbin "baserom.gba", 0x5baeb0, 0x20 + +gUnknown_085BAED0:: @ 85BAED0 + .incbin "baserom.gba", 0x5baed0, 0x378 + +gUnknown_085BB248:: @ 85BB248 + .incbin "baserom.gba", 0x5bb248, 0x25c + +gUnknown_085BB4A4:: @ 85BB4A4 + .incbin "baserom.gba", 0x5bb4a4, 0x48c + +gUnknown_085BB930:: @ 85BB930 + .incbin "baserom.gba", 0x5bb930, 0x2e4 + +gUnknown_085BBC14:: @ 85BBC14 + .incbin "baserom.gba", 0x5bbc14, 0x6a0 + +gUnknown_085BC2B4:: @ 85BC2B4 + .incbin "baserom.gba", 0x5bc2b4, 0x20 + +gUnknown_085BC2D4:: @ 85BC2D4 + .incbin "baserom.gba", 0x5bc2d4, 0x20 + +gUnknown_085BC2F4:: @ 85BC2F4 + .incbin "baserom.gba", 0x5bc2f4, 0x20 + +gUnknown_085BC314:: @ 85BC314 + .incbin "baserom.gba", 0x5bc314, 0x800 + +gUnknown_085BCB14:: @ 85BCB14 + .incbin "baserom.gba", 0x5bcb14, 0x800 + +gUnknown_085BD314:: @ 85BD314 + .incbin "baserom.gba", 0x5bd314, 0x820 + +gUnknown_085BDB34:: @ 85BDB34 + .incbin "baserom.gba", 0x5bdb34, 0x6b4 + +gUnknown_085BE1E8:: @ 85BE1E8 + .incbin "baserom.gba", 0x5be1e8, 0x334 + +gUnknown_085BE51C:: @ 85BE51C + .incbin "baserom.gba", 0x5be51c, 0x56c + +gUnknown_085BEA88:: @ 85BEA88 + .incbin "baserom.gba", 0x5bea88, 0x318 + +gUnknown_085BEDA0:: @ 85BEDA0 + .incbin "baserom.gba", 0x5beda0, 0x140 + +gUnknown_085BEEE0:: @ 85BEEE0 + .incbin "baserom.gba", 0x5beee0, 0x1c0 + +gUnknown_085BF0A0:: @ 85BF0A0 + .incbin "baserom.gba", 0x5bf0a0, 0x200 + +gUnknown_085BF2A0:: @ 85BF2A0 + .incbin "baserom.gba", 0x5bf2a0, 0x200 + +gUnknown_085BF4A0:: @ 85BF4A0 + .incbin "baserom.gba", 0x5bf4a0, 0xa0 + +gUnknown_085BF540:: @ 85BF540 + .incbin "baserom.gba", 0x5bf540, 0x160 + +gUnknown_085BF6A0:: @ 85BF6A0 + .incbin "baserom.gba", 0x5bf6a0, 0x7540 + +gUnknown_085C6BE0:: @ 85C6BE0 + .incbin "baserom.gba", 0x5c6be0, 0x1000 + +gUnknown_085C7BE0:: @ 85C7BE0 + .incbin "baserom.gba", 0x5c7be0, 0x20 + +gUnknown_085C7C00:: @ 85C7C00 + .incbin "baserom.gba", 0x5c7c00, 0x68c + +gUnknown_085C828C:: @ 85C828C + .incbin "baserom.gba", 0x5c828c, 0x2ec + +gUnknown_085C8578:: @ 85C8578 + .incbin "baserom.gba", 0x5c8578, 0x20 + +gUnknown_085C8598:: @ 85C8598 + .incbin "baserom.gba", 0x5c8598, 0x15c + +gUnknown_085C86F4:: @ 85C86F4 + .incbin "baserom.gba", 0x5c86f4, 0x100 + +gUnknown_085C87F4:: @ 85C87F4 + .incbin "baserom.gba", 0x5c87f4, 0xb0 + +gUnknown_085C88A4:: @ 85C88A4 + .incbin "baserom.gba", 0x5c88a4, 0x84 + +gUnknown_085C8928:: @ 85C8928 + .incbin "baserom.gba", 0x5c8928, 0x20 + +gUnknown_085C8948:: @ 85C8948 + .incbin "baserom.gba", 0x5c8948, 0xa8 + +gUnknown_085C89F0:: @ 85C89F0 + .incbin "baserom.gba", 0x5c89f0, 0xa8 + +gUnknown_085C8A98:: @ 85C8A98 + .incbin "baserom.gba", 0x5c8a98, 0x10 + +gUnknown_085C8AA8:: @ 85C8AA8 + .incbin "baserom.gba", 0x5c8aa8, 0xc + +gUnknown_085C8AB4:: @ 85C8AB4 + .incbin "baserom.gba", 0x5c8ab4, 0x8 + +gUnknown_085C8ABC:: @ 85C8ABC + .incbin "baserom.gba", 0x5c8abc, 0x8 + +gUnknown_085C8AC4:: @ 85C8AC4 + .incbin "baserom.gba", 0x5c8ac4, 0x1c + +gUnknown_085C8AE0:: @ 85C8AE0 + .incbin "baserom.gba", 0x5c8ae0, 0x1c + +gUnknown_085C8AFC:: @ 85C8AFC + .incbin "baserom.gba", 0x5c8afc, 0x18 + +gUnknown_085C8B14:: @ 85C8B14 + .incbin "baserom.gba", 0x5c8b14, 0x18 + +gUnknown_085C8B2C:: @ 85C8B2C + .incbin "baserom.gba", 0x5c8b2c, 0x18 + +gUnknown_085C8B44:: @ 85C8B44 + .incbin "baserom.gba", 0x5c8b44, 0x18 + +gUnknown_085C8B5C:: @ 85C8B5C + .incbin "baserom.gba", 0x5c8b5c, 0x20 + +gUnknown_085C8B7C:: @ 85C8B7C + .incbin "baserom.gba", 0x5c8b7c, 0xc + +gUnknown_085C8B88:: @ 85C8B88 + .incbin "baserom.gba", 0x5c8b88, 0x4 + +gUnknown_085C8B8C:: @ 85C8B8C + .incbin "baserom.gba", 0x5c8b8c, 0xa + +gUnknown_085C8B96:: @ 85C8B96 + .incbin "baserom.gba", 0x5c8b96, 0x6 + +gUnknown_085C8B9C:: @ 85C8B9C + .incbin "baserom.gba", 0x5c8b9c, 0x1c + +gUnknown_085C8BB8:: @ 85C8BB8 + .incbin "baserom.gba", 0x5c8bb8, 0x8 + +gUnknown_085C8BC0:: @ 85C8BC0 + .incbin "baserom.gba", 0x5c8bc0, 0xc + +gUnknown_085C8BCC:: @ 85C8BCC + .incbin "baserom.gba", 0x5c8bcc, 0x28 + +gUnknown_085C8BF4:: @ 85C8BF4 + .incbin "baserom.gba", 0x5c8bf4, 0x6 + +gUnknown_085C8BFA:: @ 85C8BFA + .incbin "baserom.gba", 0x5c8bfa, 0x14 + +gUnknown_085C8C0E:: @ 85C8C0E + .incbin "baserom.gba", 0x5c8c0e, 0x16 + +gUnknown_085C8C24:: @ 85C8C24 + .incbin "baserom.gba", 0x5c8c24, 0x1c + +gUnknown_085C8C40:: @ 85C8C40 + .incbin "baserom.gba", 0x5c8c40, 0x4 + +gUnknown_085C8C44:: @ 85C8C44 + .incbin "baserom.gba", 0x5c8c44, 0x4 + +gUnknown_085C8C48:: @ 85C8C48 + .incbin "baserom.gba", 0x5c8c48, 0xc + +gUnknown_085C8C54:: @ 85C8C54 + .incbin "baserom.gba", 0x5c8c54, 0x10 + +gUnknown_085C8C64:: @ 85C8C64 + .incbin "baserom.gba", 0x5c8c64, 0x2 + +gUnknown_085C8C66:: @ 85C8C66 + .incbin "baserom.gba", 0x5c8c66, 0x6 + +gUnknown_085C8C6C:: @ 85C8C6C + .incbin "baserom.gba", 0x5c8c6c, 0xc + +gUnknown_085C8C78:: @ 85C8C78 + .incbin "baserom.gba", 0x5c8c78, 0x8 + +gUnknown_085C8C80:: @ 85C8C80 + .incbin "baserom.gba", 0x5c8c80, 0x4 + +gUnknown_085C8C84:: @ 85C8C84 + .incbin "baserom.gba", 0x5c8c84, 0xb4 + +gUnknown_085C8D38:: @ 85C8D38 + .incbin "baserom.gba", 0x5c8d38, 0x8 + +gUnknown_085C8D40:: @ 85C8D40 + .incbin "baserom.gba", 0x5c8d40, 0x20 + +gUnknown_085C8D60:: @ 85C8D60 + .incbin "baserom.gba", 0x5c8d60, 0x2c + +gUnknown_085C8D8C:: @ 85C8D8C + .incbin "baserom.gba", 0x5c8d8c, 0x14 + +gUnknown_085C8DA0:: @ 85C8DA0 + .incbin "baserom.gba", 0x5c8da0, 0x10 + +gUnknown_085C8DB0:: @ 85C8DB0 + .incbin "baserom.gba", 0x5c8db0, 0xc + +gUnknown_085C8DBC:: @ 85C8DBC + .incbin "baserom.gba", 0x5c8dbc, 0x14 + +gUnknown_085C8DD0:: @ 85C8DD0 + .incbin "baserom.gba", 0x5c8dd0, 0x46 + +gUnknown_085C8E16:: @ 85C8E16 + .incbin "baserom.gba", 0x5c8e16, 0xe + +gUnknown_085C8E24:: @ 85C8E24 + .incbin "baserom.gba", 0x5c8e24, 0x44 + +gUnknown_085C8E68:: @ 85C8E68 + .incbin "baserom.gba", 0x5c8e68, 0x6c + + .align 2 +gFieldEffectObjectPalette10:: @ 85C8ED4 + .incbin "graphics/map_objects/palettes/field_effect_object_palette_10.gbapal" + + .align 2 +gFieldEffectObjectPaletteInfo10:: @ 85C8EF4 + obj_pal gFieldEffectObjectPalette10, 0x1009 + + .incbin "baserom.gba", 0x5c8efc, 0xe0 + +gUnknown_085C8FDC:: @ 85C8FDC + .incbin "baserom.gba", 0x5c8fdc, 0x14 + +gUnknown_085C8FF0:: @ 85C8FF0 + .incbin "baserom.gba", 0x5c8ff0, 0x30 + +gUnknown_085C9020:: @ 85C9020 + .incbin "baserom.gba", 0x5c9020, 0x4b0 + +gUnknown_085C94D0:: @ 85C94D0 + .incbin "baserom.gba", 0x5c94d0, 0x500 + +gUnknown_085C99D0:: @ 85C99D0 + .incbin "baserom.gba", 0x5c99d0, 0x18 + +gUnknown_085C99E8:: @ 85C99E8 + .incbin "baserom.gba", 0x5c99e8, 0x10 + +gUnknown_085C99F8:: @ 85C99F8 + .incbin "baserom.gba", 0x5c99f8, 0x10 + +gUnknown_085C9A08:: @ 85C9A08 + .incbin "baserom.gba", 0x5c9a08, 0x14 + +gUnknown_085C9A1C:: @ 85C9A1C + .incbin "baserom.gba", 0x5c9a1c, 0x14 + +gUnknown_085C9A30:: @ 85C9A30 + .incbin "baserom.gba", 0x5c9a30, 0x23 + +gUnknown_085C9A53:: @ 85C9A53 + .incbin "baserom.gba", 0x5c9a53, 0x41 + +gLinkPartnerBufferCommands:: @ 85C9A94 + .incbin "baserom.gba", 0x5c9a94, 0xe4 diff --git a/data/data_860A4AC.s b/data/data_860A4AC.s index 22ce616894..5bb6274499 100644 --- a/data/data_860A4AC.s +++ b/data/data_860A4AC.s @@ -48,10 +48,10 @@ gUnknown_0860AE7C:: @ 860AE7C gUnknown_0860AE88:: @ 860AE88 .incbin "baserom.gba", 0x60ae88, 0x8 -gUnknown_0860AE90:: @ 860AE90 +gRecordedOpponentBufferCommands:: @ 860AE90 .incbin "baserom.gba", 0x60ae90, 0xe4 -gUnknown_0860AF74:: @ 860AF74 +gRecordedPlayerBufferCommands:: @ 860AF74 .incbin "baserom.gba", 0x60af74, 0xe4 gUnknown_0860B058:: @ 860B058 @@ -1049,7 +1049,7 @@ gFont6BrailleGlyphs:: @ 8616128 gUnknown_08617128:: @ 8617128 .incbin "baserom.gba", 0x617128, 0x48 -gUnknown_08617170:: @ 8617170 +gPlayerPartnerBufferCommands:: @ 8617170 .incbin "baserom.gba", 0x617170, 0x104 gUnknown_08617274:: @ 8617274 diff --git a/data/event_script_command_function_table.inc b/data/event_script_command_function_table.inc index 23c5245bbb..b34f8f6666 100644 --- a/data/event_script_command_function_table.inc +++ b/data/event_script_command_function_table.inc @@ -49,7 +49,7 @@ gEventScriptCommandFunctionTable:: @ 81DB67C .4byte s2E_unknown .4byte s2F_music_play .4byte s30_music_check - .4byte s31_fanfare_play + .4byte s31_PlayFanfare .4byte s32_fanfare_wait .4byte s33_play_music .4byte s34_unknown diff --git a/data/event_scripts.s b/data/event_scripts.s index 49623df683..3bfd9fdfd3 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -9,7 +9,7 @@ gUnknown_081DBA08:: @ 81DBA08 .incbin "baserom.gba", 0x1dba08, 0x4 -gUnknown_081DBA0C:: @ 81DBA0C +gSpecialVars:: @ 81DBA0C .incbin "baserom.gba", 0x1dba0c, 0x58 gUnknown_081DBA64:: @ 81DBA64 diff --git a/data/graphics/field_objects/field_effect_objects.inc b/data/graphics/field_objects/field_effect_objects.inc index bd0945c419..2c1ce3c4c2 100644 --- a/data/graphics/field_objects/field_effect_objects.inc +++ b/data/graphics/field_objects/field_effect_objects.inc @@ -39,7 +39,7 @@ gFieldEffectObjectTemplate_ShadowSmall:: @ 850C9FC .4byte gFieldObjectBaseOam_8x8 .4byte gFieldEffectObjectImageAnimTable_Shadow .4byte gFieldEffectObjectPicTable_ShadowSmall - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte oamc_shadow .align 2 @@ -49,7 +49,7 @@ gFieldEffectObjectTemplate_ShadowMedium:: @ 850CA14 .4byte gFieldObjectBaseOam_16x8 .4byte gFieldEffectObjectImageAnimTable_Shadow .4byte gFieldEffectObjectPicTable_ShadowMedium - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte oamc_shadow .align 2 @@ -59,7 +59,7 @@ gFieldEffectObjectTemplate_ShadowLarge:: @ 850CA2C .4byte gFieldObjectBaseOam_32x8 .4byte gFieldEffectObjectImageAnimTable_Shadow .4byte gFieldEffectObjectPicTable_ShadowLarge - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte oamc_shadow .align 2 @@ -69,7 +69,7 @@ gFieldEffectObjectTemplate_ShadowExtraLarge:: @ 850CA44 .4byte gFieldObjectBaseOam_64x32 .4byte gFieldEffectObjectImageAnimTable_Shadow .4byte gFieldEffectObjectPicTable_ShadowExtraLarge - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte oamc_shadow .align 2 @@ -100,7 +100,7 @@ gFieldEffectObjectTemplate_TallGrass:: @ 850CAA0 .4byte gFieldObjectBaseOam_16x16 .4byte gFieldEffectObjectImageAnimTable_TallGrass .4byte gFieldEffectObjectPicTable_TallGrass - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte unc_grass_normal .align 2 @@ -134,7 +134,7 @@ gFieldEffectObjectTemplate_Ripple:: @ 850CB08 .4byte gFieldObjectBaseOam_16x16 .4byte gFieldEffectObjectImageAnimTable_Ripple .4byte gFieldEffectObjectPicTable_Ripple - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_81561D0 .align 2 @@ -165,7 +165,7 @@ gFieldEffectObjectTemplate_Ash:: @ 850CB64 .4byte gFieldObjectBaseOam_16x16 .4byte gFieldEffectObjectImageAnimTable_Ash .4byte gFieldEffectObjectPicTable_Ash - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_8155460 .align 2 @@ -208,7 +208,7 @@ gFieldEffectObjectTemplate_SurfBlob:: @ 850CBC4 .4byte gFieldObjectBaseOam_32x32 .4byte gFieldEffectObjectImageAnimTable_SurfBlob .4byte gFieldEffectObjectPicTable_SurfBlob - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_8155658 .align 2 @@ -260,8 +260,8 @@ gFieldEffectObjectTemplate_Arrow:: @ 850CC5C .4byte gFieldObjectBaseOam_16x16 .4byte gFieldEffectObjectImageAnimTable_Arrow .4byte gFieldEffectObjectPicTable_Arrow - .4byte gDummyObjectRotScalAnimTable - .4byte DummyObjectCallback + .4byte gDummySpriteAffineAnimTable + .4byte SpriteCallbackDummy .align 2 gFieldEffectObjectPicTable_GroundImpactDust:: @ 850CC74 @@ -287,7 +287,7 @@ gFieldEffectObjectTemplate_GroundImpactDust:: @ 850CCA0 .4byte gFieldObjectBaseOam_16x8 .4byte gFieldEffectObjectImageAnimTable_GroundImpactDust .4byte gFieldEffectObjectPicTable_GroundImpactDust - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_8156194 .align 2 @@ -316,7 +316,7 @@ gFieldEffectObjectTemplate_BikeHopTallGrass:: @ 850CCF0 .4byte gFieldObjectBaseOam_16x8 .4byte gFieldEffectObjectImageAnimTable_BikeHopTallGrass .4byte gFieldEffectObjectPicTable_BikeHopTallGrass - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_8156194 .align 2 @@ -359,7 +359,7 @@ gFieldEffectObjectTemplate_SandFootprints:: @ 850CD4C .4byte gFieldObjectBaseOam_16x16 .4byte gFieldEffectObjectImageAnimTable_SandFootprints .4byte gFieldEffectObjectPicTable_SandFootprints - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_8154C60 .align 2 @@ -402,7 +402,7 @@ gFieldEffectObjectTemplate_DeepSandFootprints:: @ 850CDA8 .4byte gFieldObjectBaseOam_16x16 .4byte gFieldEffectObjectImageAnimTable_DeepSandFootprints .4byte gFieldEffectObjectPicTable_DeepSandFootprints - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_8154C60 .align 2 @@ -471,7 +471,7 @@ gFieldEffectObjectTemplate_BikeTireTracks:: @ 850CE44 .4byte gFieldObjectBaseOam_16x16 .4byte gFieldEffectObjectImageAnimTable_BikeTireTracks .4byte gFieldEffectObjectPicTable_BikeTireTracks - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_8154C60 .align 2 @@ -500,7 +500,7 @@ gFieldEffectObjectTemplate_BikeHopBigSplash:: @ 850CE94 .4byte gFieldObjectBaseOam_16x16 .4byte gFieldEffectObjectImageAnimTable_BikeHopBigSplash .4byte gFieldEffectObjectPicTable_BikeHopBigSplash - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_8156194 .align 2 @@ -538,7 +538,7 @@ gFieldEffectObjectTemplate_Splash:: @ 850CEF4 .4byte gFieldObjectBaseOam_16x8 .4byte gFieldEffectObjectImageAnimTable_Splash .4byte gFieldEffectObjectPicTable_Splash - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_8154D90 .align 2 @@ -565,7 +565,7 @@ gFieldEffectObjectTemplate_BikeHopSmallSplash:: @ 850CF38 .4byte gFieldObjectBaseOam_16x8 .4byte gFieldEffectObjectImageAnimTable_BikeHopSmallSplash .4byte gFieldEffectObjectPicTable_BikeHopSmallSplash - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_8156194 .align 2 @@ -597,7 +597,7 @@ gFieldEffectObjectTemplate_LongGrass:: @ 850CF94 .4byte gFieldObjectBaseOam_16x16 .4byte gFieldEffectObjectImageAnimTable_LongGrass .4byte gFieldEffectObjectPicTable_LongGrass - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte unc_grass_tall .align 2 @@ -630,7 +630,7 @@ gFieldEffectObjectTemplate_Unknown16:: @ 850CFFC .4byte gFieldObjectBaseOam_16x16 .4byte gFieldEffectObjectImageAnimTable_Unknown16 .4byte gFieldEffectObjectPicTable_Unknown16 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_8156194 .align 2 @@ -669,7 +669,7 @@ gFieldEffectObjectTemplate_Unknown17:: @ 850D088 .4byte gFieldObjectBaseOam_16x16 .4byte gFieldEffectObjectImageAnimTable_Unknown17 .4byte gFieldEffectObjectPicTable_Unknown17 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_81561D0 .align 2 @@ -700,7 +700,7 @@ gFieldEffectObjectTemplate_Unknown18:: @ 850D0E0 .4byte gFieldObjectBaseOam_16x16 .4byte gFieldEffectObjectImageAnimTable_Unknown18 .4byte gFieldEffectObjectPicTable_Unknown18 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_81561D0 .align 2 @@ -729,7 +729,7 @@ gFieldEffectObjectTemplate_Unknown19:: @ 850D130 .4byte gFieldObjectBaseOam_16x16 .4byte gFieldEffectObjectImageAnimTable_Unknown19 .4byte gFieldEffectObjectPicTable_Unknown19 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_81561D0 .align 2 @@ -756,7 +756,7 @@ gFieldEffectObjectTemplate_Unknown29:: @ 850D174 .4byte gFieldObjectBaseOam_16x8 .4byte gFieldEffectObjectImageAnimTable_Unknown29 .4byte gFieldEffectObjectPicTable_Unknown29 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_81559BC .align 2 @@ -787,7 +787,7 @@ gFieldEffectObjectTemplate_Unknown20:: @ 850D1CC .4byte gFieldObjectBaseOam_16x16 .4byte gFieldEffectObjectImageAnimTable_Unknown20 .4byte gFieldEffectObjectPicTable_Unknown20 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_81561D0 .align 2 @@ -825,11 +825,11 @@ gFieldEffectObjectRotScalAnimTable_Unknown21:: @ 850D284 gFieldEffectObjectTemplate_Unknown21:: @ 850D28C .2byte 0x0 @ tiles tag .2byte 0xFFFF @ palette tag - .4byte gDefaultOamAttributes - .4byte gDummyObjectImageAnimTable + .4byte gDummyOamData + .4byte gDummySpriteAnimTable .4byte NULL .4byte gFieldEffectObjectRotScalAnimTable_Unknown21 - .4byte DummyObjectCallback + .4byte SpriteCallbackDummy .align 2 gFieldEffectObjectPicTable_BerryTreeGrowthSparkle:: @ 850D2A4 @@ -875,7 +875,7 @@ gFieldEffectObjectTemplate_BerryTreeGrowthSparkle:: @ 850D32C .4byte gFieldObjectBaseOam_16x16 .4byte gFieldEffectObjectImageAnimTable_BerryTreeGrowthSparkle .4byte gFieldEffectObjectPicTable_BerryTreeGrowthSparkle - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_81561D0 .align 2 @@ -916,7 +916,7 @@ gFieldEffectObjectTemplate_TreeDisguise:: @ 850D3AC .4byte gFieldObjectBaseOam_16x32 .4byte gFieldEffectObjectImageAnimTable_TreeDisguise .4byte gFieldEffectObjectPicTable_TreeDisguise - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_8155C88 .align 2 @@ -957,7 +957,7 @@ gFieldEffectObjectTemplate_MountainDisguise:: @ 850D42C .4byte gFieldObjectBaseOam_16x32 .4byte gFieldEffectObjectImageAnimTable_MountainDisguise .4byte gFieldEffectObjectPicTable_MountainDisguise - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_8155C88 .align 2 @@ -977,7 +977,7 @@ gFieldEffectObjectTemplate_SandDisguisePlaceholder:: @ 850D47C .4byte gFieldObjectBaseOam_16x32 .4byte gFieldEffectObjectImageAnimTable_TreeDisguise .4byte gFieldEffectObjectPicTable_SandDisguisePlaceholder - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_8155C88 .align 2 @@ -1000,8 +1000,8 @@ gFieldEffectObjectTemplate_Bird:: @ 850D4A8 .4byte gFieldObjectBaseOam_32x32 .4byte gFieldEffectObjectImageAnimTable_Bird .4byte gFieldEffectObjectPicTable_Bird - .4byte gDummyObjectRotScalAnimTable - .4byte DummyObjectCallback + .4byte gDummySpriteAffineAnimTable + .4byte SpriteCallbackDummy .align 2 gFieldEffectObjectPicTable_ShortGrass:: @ 850D4C0 @@ -1025,7 +1025,7 @@ gFieldEffectObjectTemplate_ShortGrass:: @ 850D4E0 .4byte gFieldObjectBaseOam_16x16 .4byte gFieldEffectObjectImageAnimTable_ShortGrass .4byte gFieldEffectObjectPicTable_ShortGrass - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_8154A10 .align 2 @@ -1048,7 +1048,7 @@ gFieldEffectObjectTemplate_HotSpringsWater:: @ 850D50C .4byte gFieldObjectBaseOam_16x16 .4byte gFieldEffectObjectImageAnimTable_HotSpringsWater .4byte gFieldEffectObjectPicTable_HotSpringsWater - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_8155158 .align 2 @@ -1079,7 +1079,7 @@ gFieldEffectObjectTemplate_JumpOutOfAsh:: @ 850D568 .4byte gFieldObjectBaseOam_16x16 .4byte gFieldEffectObjectImageAnimTable_JumpOutOfAsh .4byte gFieldEffectObjectPicTable_JumpOutOfAsh - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_80B7CAC .align 2 @@ -1114,7 +1114,7 @@ gFieldEffectObjectTemplate_Unknown33:: @ 850D5CC .4byte gFieldObjectBaseOam_16x16 .4byte gFieldEffectObjectImageAnimTable_Unknown33 .4byte gFieldEffectObjectPicTable_Unknown33 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_80B7A58 .align 2 @@ -1151,7 +1151,7 @@ gFieldEffectObjectTemplate_Bubbles:: @ 850D64C .4byte gFieldObjectBaseOam_16x32 .4byte gFieldEffectObjectImageAnimTable_Bubbles .4byte gFieldEffectObjectPicTable_Bubbles - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_8155AEC .align 2 @@ -1177,7 +1177,7 @@ gFieldEffectObjectTemplate_Unknown35:: @ 850D688 .4byte gFieldObjectBaseOam_16x16 .4byte gFieldEffectObjectImageAnimTable_Unknown35 .4byte gFieldEffectObjectPicTable_Unknown35 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_8155E50 .align 2 @@ -1204,5 +1204,5 @@ gFieldEffectObjectTemplate_Rayquaza:: @ 850D6BC .4byte gFieldObjectBaseOam_32x32 .4byte gFieldEffectObjectImageAnimTable_Rayquaza .4byte gFieldEffectObjectPicTable_Rayquaza - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .4byte sub_8155F80 diff --git a/data/graphics/field_objects/field_object_graphics_info.inc b/data/graphics/field_objects/field_object_graphics_info.inc index 092516741a..6a0778adf2 100644 --- a/data/graphics/field_objects/field_object_graphics_info.inc +++ b/data/graphics/field_objects/field_object_graphics_info.inc @@ -13,7 +13,7 @@ gFieldObjectGraphicsInfo_BrendanNormal:: @ 8509954 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_BrendanMayNormal .4byte gFieldObjectPicTable_BrendanNormal - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BrendanMachBike:: @ 8509978 @@ -30,7 +30,7 @@ gFieldObjectGraphicsInfo_BrendanMachBike:: @ 8509978 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_BrendanMachBike - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BrendanAcroBike:: @ 850999C @@ -47,7 +47,7 @@ gFieldObjectGraphicsInfo_BrendanAcroBike:: @ 850999C .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_AcroBike .4byte gFieldObjectPicTable_BrendanAcroBike - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BrendanSurfing:: @ 85099C0 @@ -64,7 +64,7 @@ gFieldObjectGraphicsInfo_BrendanSurfing:: @ 85099C0 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Surfing .4byte gFieldObjectPicTable_BrendanSurfing - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BrendanFieldMove:: @ 85099E4 @@ -81,7 +81,7 @@ gFieldObjectGraphicsInfo_BrendanFieldMove:: @ 85099E4 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_FieldMove .4byte gFieldObjectPicTable_BrendanFieldMove - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_QuintyPlump:: @ 8509A08 @@ -98,7 +98,7 @@ gFieldObjectGraphicsInfo_QuintyPlump:: @ 8509A08 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_QuintyPlump .4byte gFieldObjectPicTable_QuintyPlump - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_LittleBoy1:: @ 8509A2C @@ -115,7 +115,7 @@ gFieldObjectGraphicsInfo_LittleBoy1:: @ 8509A2C .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_LittleBoy1 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_LittleGirl1:: @ 8509A50 @@ -132,7 +132,7 @@ gFieldObjectGraphicsInfo_LittleGirl1:: @ 8509A50 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_LittleGirl1 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Boy1:: @ 8509A74 @@ -149,7 +149,7 @@ gFieldObjectGraphicsInfo_Boy1:: @ 8509A74 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Boy1 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Girl1:: @ 8509A98 @@ -166,7 +166,7 @@ gFieldObjectGraphicsInfo_Girl1:: @ 8509A98 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Girl1 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Boy2:: @ 8509ABC @@ -183,7 +183,7 @@ gFieldObjectGraphicsInfo_Boy2:: @ 8509ABC .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Boy2 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Girl2:: @ 8509AE0 @@ -200,7 +200,7 @@ gFieldObjectGraphicsInfo_Girl2:: @ 8509AE0 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Girl2 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_LittleBoy2:: @ 8509B04 @@ -217,7 +217,7 @@ gFieldObjectGraphicsInfo_LittleBoy2:: @ 8509B04 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_LittleBoy2 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_LittleGirl2:: @ 8509B28 @@ -234,7 +234,7 @@ gFieldObjectGraphicsInfo_LittleGirl2:: @ 8509B28 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_LittleGirl2 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Boy3:: @ 8509B4C @@ -251,7 +251,7 @@ gFieldObjectGraphicsInfo_Boy3:: @ 8509B4C .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Boy3 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Girl3:: @ 8509B70 @@ -268,7 +268,7 @@ gFieldObjectGraphicsInfo_Girl3:: @ 8509B70 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Girl3 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Boy4:: @ 8509B94 @@ -285,7 +285,7 @@ gFieldObjectGraphicsInfo_Boy4:: @ 8509B94 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Boy4 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Woman1:: @ 8509BB8 @@ -302,7 +302,7 @@ gFieldObjectGraphicsInfo_Woman1:: @ 8509BB8 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Woman1 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_FatMan:: @ 8509BDC @@ -319,7 +319,7 @@ gFieldObjectGraphicsInfo_FatMan:: @ 8509BDC .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_FatMan - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Woman2:: @ 8509C00 @@ -336,7 +336,7 @@ gFieldObjectGraphicsInfo_Woman2:: @ 8509C00 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Woman2 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Man1:: @ 8509C24 @@ -353,7 +353,7 @@ gFieldObjectGraphicsInfo_Man1:: @ 8509C24 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Man1 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Woman3:: @ 8509C48 @@ -370,7 +370,7 @@ gFieldObjectGraphicsInfo_Woman3:: @ 8509C48 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Woman3 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_OldMan1:: @ 8509C6C @@ -387,7 +387,7 @@ gFieldObjectGraphicsInfo_OldMan1:: @ 8509C6C .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_OldMan1 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_OldWoman1:: @ 8509C90 @@ -404,7 +404,7 @@ gFieldObjectGraphicsInfo_OldWoman1:: @ 8509C90 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_OldWoman1 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Man2:: @ 8509CB4 @@ -421,7 +421,7 @@ gFieldObjectGraphicsInfo_Man2:: @ 8509CB4 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Man2 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Woman4:: @ 8509CD8 @@ -438,7 +438,7 @@ gFieldObjectGraphicsInfo_Woman4:: @ 8509CD8 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Woman4 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Man3:: @ 8509CFC @@ -455,7 +455,7 @@ gFieldObjectGraphicsInfo_Man3:: @ 8509CFC .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Man3 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Woman5:: @ 8509D20 @@ -472,7 +472,7 @@ gFieldObjectGraphicsInfo_Woman5:: @ 8509D20 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Woman5 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Cook:: @ 8509D44 @@ -489,7 +489,7 @@ gFieldObjectGraphicsInfo_Cook:: @ 8509D44 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Cook - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Woman6:: @ 8509D68 @@ -506,7 +506,7 @@ gFieldObjectGraphicsInfo_Woman6:: @ 8509D68 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Woman6 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_OldMan2:: @ 8509D8C @@ -523,7 +523,7 @@ gFieldObjectGraphicsInfo_OldMan2:: @ 8509D8C .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_OldMan2 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_OldWoman2:: @ 8509DB0 @@ -540,7 +540,7 @@ gFieldObjectGraphicsInfo_OldWoman2:: @ 8509DB0 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_OldWoman2 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Camper:: @ 8509DD4 @@ -557,7 +557,7 @@ gFieldObjectGraphicsInfo_Camper:: @ 8509DD4 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Camper - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Picnicker:: @ 8509DF8 @@ -574,7 +574,7 @@ gFieldObjectGraphicsInfo_Picnicker:: @ 8509DF8 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Picnicker - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Man4:: @ 8509E1C @@ -591,7 +591,7 @@ gFieldObjectGraphicsInfo_Man4:: @ 8509E1C .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Man4 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Woman7:: @ 8509E40 @@ -608,7 +608,7 @@ gFieldObjectGraphicsInfo_Woman7:: @ 8509E40 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Woman7 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Youngster:: @ 8509E64 @@ -625,7 +625,7 @@ gFieldObjectGraphicsInfo_Youngster:: @ 8509E64 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Youngster - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BugCatcher:: @ 8509E88 @@ -642,7 +642,7 @@ gFieldObjectGraphicsInfo_BugCatcher:: @ 8509E88 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_BugCatcher - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_PsychicM:: @ 8509EAC @@ -659,7 +659,7 @@ gFieldObjectGraphicsInfo_PsychicM:: @ 8509EAC .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_PsychicM - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_SchoolKidM:: @ 8509ED0 @@ -676,7 +676,7 @@ gFieldObjectGraphicsInfo_SchoolKidM:: @ 8509ED0 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_SchoolKidM - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Maniac:: @ 8509EF4 @@ -693,7 +693,7 @@ gFieldObjectGraphicsInfo_Maniac:: @ 8509EF4 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Maniac - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_HexManiac:: @ 8509F18 @@ -710,7 +710,7 @@ gFieldObjectGraphicsInfo_HexManiac:: @ 8509F18 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_HexManiac - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Rayquaza1:: @ 8509F3C @@ -727,7 +727,7 @@ gFieldObjectGraphicsInfo_Rayquaza1:: @ 8509F3C .4byte gFieldObjectSpriteOamTables_64x64 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_RayquazaStill - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_SwimmerM:: @ 8509F60 @@ -744,7 +744,7 @@ gFieldObjectGraphicsInfo_SwimmerM:: @ 8509F60 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_SwimmerM - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_SwimmerF:: @ 8509F84 @@ -761,7 +761,7 @@ gFieldObjectGraphicsInfo_SwimmerF:: @ 8509F84 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_SwimmerF - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BlackBelt:: @ 8509FA8 @@ -778,7 +778,7 @@ gFieldObjectGraphicsInfo_BlackBelt:: @ 8509FA8 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_BlackBelt - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Beauty:: @ 8509FCC @@ -795,7 +795,7 @@ gFieldObjectGraphicsInfo_Beauty:: @ 8509FCC .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Beauty - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Scientist1:: @ 8509FF0 @@ -812,7 +812,7 @@ gFieldObjectGraphicsInfo_Scientist1:: @ 8509FF0 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Scientist1 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Lass:: @ 850A014 @@ -829,7 +829,7 @@ gFieldObjectGraphicsInfo_Lass:: @ 850A014 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Lass - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Gentleman:: @ 850A038 @@ -846,7 +846,7 @@ gFieldObjectGraphicsInfo_Gentleman:: @ 850A038 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Gentleman - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Sailor:: @ 850A05C @@ -863,7 +863,7 @@ gFieldObjectGraphicsInfo_Sailor:: @ 850A05C .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Sailor - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Fisherman:: @ 850A080 @@ -880,7 +880,7 @@ gFieldObjectGraphicsInfo_Fisherman:: @ 850A080 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Fisherman - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_RunningTriathleteM:: @ 850A0A4 @@ -897,7 +897,7 @@ gFieldObjectGraphicsInfo_RunningTriathleteM:: @ 850A0A4 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_RunningTriathleteM - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_RunningTriathleteF:: @ 850A0C8 @@ -914,7 +914,7 @@ gFieldObjectGraphicsInfo_RunningTriathleteF:: @ 850A0C8 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_RunningTriathleteF - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_TuberF:: @ 850A0EC @@ -931,7 +931,7 @@ gFieldObjectGraphicsInfo_TuberF:: @ 850A0EC .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_TuberF - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_TuberM:: @ 850A110 @@ -948,7 +948,7 @@ gFieldObjectGraphicsInfo_TuberM:: @ 850A110 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_TuberM - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Hiker:: @ 850A134 @@ -965,7 +965,7 @@ gFieldObjectGraphicsInfo_Hiker:: @ 850A134 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Hiker - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_CyclingTriathleteM:: @ 850A158 @@ -982,7 +982,7 @@ gFieldObjectGraphicsInfo_CyclingTriathleteM:: @ 850A158 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_AcroBike .4byte gFieldObjectPicTable_CyclingTriathleteM - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_CyclingTriathleteF:: @ 850A17C @@ -999,7 +999,7 @@ gFieldObjectGraphicsInfo_CyclingTriathleteF:: @ 850A17C .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_AcroBike .4byte gFieldObjectPicTable_CyclingTriathleteF - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Nurse:: @ 850A1A0 @@ -1016,7 +1016,7 @@ gFieldObjectGraphicsInfo_Nurse:: @ 850A1A0 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Nurse .4byte gFieldObjectPicTable_Nurse - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_ItemBall:: @ 850A1C4 @@ -1033,7 +1033,7 @@ gFieldObjectGraphicsInfo_ItemBall:: @ 850A1C4 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_ItemBall - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BerryTree:: @ 850A1E8 @@ -1050,7 +1050,7 @@ gFieldObjectGraphicsInfo_BerryTree:: @ 850A1E8 .4byte NULL @ sprite OAM tables .4byte gFieldObjectImageAnimTable_BerryTree .4byte gFieldObjectPicTable_PechaBerryTree - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BerryTreeEarlyStages:: @ 850A20C @@ -1067,7 +1067,7 @@ gFieldObjectGraphicsInfo_BerryTreeEarlyStages:: @ 850A20C .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_BerryTree .4byte gFieldObjectPicTable_PechaBerryTree - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BerryTreeLateStages:: @ 850A230 @@ -1084,7 +1084,7 @@ gFieldObjectGraphicsInfo_BerryTreeLateStages:: @ 850A230 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_BerryTree .4byte gFieldObjectPicTable_PechaBerryTree - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_ProfBirch:: @ 850A254 @@ -1101,7 +1101,7 @@ gFieldObjectGraphicsInfo_ProfBirch:: @ 850A254 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_ProfBirch - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Man5:: @ 850A278 @@ -1118,7 +1118,7 @@ gFieldObjectGraphicsInfo_Man5:: @ 850A278 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Man5 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Man6:: @ 850A29C @@ -1135,7 +1135,7 @@ gFieldObjectGraphicsInfo_Man6:: @ 850A29C .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Man6 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_ReporterM:: @ 850A2C0 @@ -1152,7 +1152,7 @@ gFieldObjectGraphicsInfo_ReporterM:: @ 850A2C0 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_ReporterM - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_ReporterF:: @ 850A2E4 @@ -1169,7 +1169,7 @@ gFieldObjectGraphicsInfo_ReporterF:: @ 850A2E4 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_ReporterF - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Bard:: @ 850A308 @@ -1186,7 +1186,7 @@ gFieldObjectGraphicsInfo_Bard:: @ 850A308 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_MauvilleOldMan1 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Hipster:: @ 850A32C @@ -1203,7 +1203,7 @@ gFieldObjectGraphicsInfo_Hipster:: @ 850A32C .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_MauvilleOldMan1 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Trader:: @ 850A350 @@ -1220,7 +1220,7 @@ gFieldObjectGraphicsInfo_Trader:: @ 850A350 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_MauvilleOldMan1 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Storyteller:: @ 850A374 @@ -1237,7 +1237,7 @@ gFieldObjectGraphicsInfo_Storyteller:: @ 850A374 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_MauvilleOldMan2 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Giddy:: @ 850A398 @@ -1254,7 +1254,7 @@ gFieldObjectGraphicsInfo_Giddy:: @ 850A398 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_MauvilleOldMan2 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_UnusedMauvilleOldMan1:: @ 850A3BC @@ -1271,7 +1271,7 @@ gFieldObjectGraphicsInfo_UnusedMauvilleOldMan1:: @ 850A3BC .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_MauvilleOldMan2 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_UnusedMauvilleOldMan2:: @ 850A3E0 @@ -1288,7 +1288,7 @@ gFieldObjectGraphicsInfo_UnusedMauvilleOldMan2:: @ 850A3E0 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_MauvilleOldMan2 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_UnusedNatuDoll:: @ 850A404 @@ -1305,7 +1305,7 @@ gFieldObjectGraphicsInfo_UnusedNatuDoll:: @ 850A404 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_UnusedNatuDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_UnusedMagnemiteDoll:: @ 850A428 @@ -1322,7 +1322,7 @@ gFieldObjectGraphicsInfo_UnusedMagnemiteDoll:: @ 850A428 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_UnusedMagnemiteDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_UnusedSquirtleDoll:: @ 850A44C @@ -1339,7 +1339,7 @@ gFieldObjectGraphicsInfo_UnusedSquirtleDoll:: @ 850A44C .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_UnusedSquirtleDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_UnusedWooperDoll:: @ 850A470 @@ -1356,7 +1356,7 @@ gFieldObjectGraphicsInfo_UnusedWooperDoll:: @ 850A470 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_UnusedWooperDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_UnusedPikachuDoll:: @ 850A494 @@ -1373,7 +1373,7 @@ gFieldObjectGraphicsInfo_UnusedPikachuDoll:: @ 850A494 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_UnusedPikachuDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_UnusedPorygon2Doll:: @ 850A4B8 @@ -1390,7 +1390,7 @@ gFieldObjectGraphicsInfo_UnusedPorygon2Doll:: @ 850A4B8 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_UnusedPorygon2Doll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_CuttableTree:: @ 850A4DC @@ -1407,7 +1407,7 @@ gFieldObjectGraphicsInfo_CuttableTree:: @ 850A4DC .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_CuttableTree .4byte gFieldObjectPicTable_CuttableTree - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_MartEmployee:: @ 850A500 @@ -1424,7 +1424,7 @@ gFieldObjectGraphicsInfo_MartEmployee:: @ 850A500 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_MartEmployee - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_RooftopSaleWoman:: @ 850A524 @@ -1441,7 +1441,7 @@ gFieldObjectGraphicsInfo_RooftopSaleWoman:: @ 850A524 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_RooftopSaleWoman - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Teala:: @ 850A548 @@ -1458,7 +1458,7 @@ gFieldObjectGraphicsInfo_Teala:: @ 850A548 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Teala - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BreakableRock:: @ 850A56C @@ -1475,7 +1475,7 @@ gFieldObjectGraphicsInfo_BreakableRock:: @ 850A56C .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_BreakableRock .4byte gFieldObjectPicTable_BreakableRock - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_PushableBoulder:: @ 850A590 @@ -1492,7 +1492,7 @@ gFieldObjectGraphicsInfo_PushableBoulder:: @ 850A590 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_PushableBoulder - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_MrBrineysBoat:: @ 850A5B4 @@ -1509,7 +1509,7 @@ gFieldObjectGraphicsInfo_MrBrineysBoat:: @ 850A5B4 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_MrBrineysBoat - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_MayNormal:: @ 850A5D8 @@ -1526,7 +1526,7 @@ gFieldObjectGraphicsInfo_MayNormal:: @ 850A5D8 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_BrendanMayNormal .4byte gFieldObjectPicTable_MayNormal - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_MayMachBike:: @ 850A5FC @@ -1543,7 +1543,7 @@ gFieldObjectGraphicsInfo_MayMachBike:: @ 850A5FC .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_MayMachBike - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_MayAcroBike:: @ 850A620 @@ -1560,7 +1560,7 @@ gFieldObjectGraphicsInfo_MayAcroBike:: @ 850A620 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_AcroBike .4byte gFieldObjectPicTable_MayAcroBike - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_MaySurfing:: @ 850A644 @@ -1577,7 +1577,7 @@ gFieldObjectGraphicsInfo_MaySurfing:: @ 850A644 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Surfing .4byte gFieldObjectPicTable_MaySurfing - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_MayFieldMove:: @ 850A668 @@ -1594,7 +1594,7 @@ gFieldObjectGraphicsInfo_MayFieldMove:: @ 850A668 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_FieldMove .4byte gFieldObjectPicTable_MayFieldMove - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Truck:: @ 850A68C @@ -1611,7 +1611,7 @@ gFieldObjectGraphicsInfo_Truck:: @ 850A68C .4byte gFieldObjectSpriteOamTables_Truck .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_Truck - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_VigorothCarryingBox:: @ 850A6B0 @@ -1628,7 +1628,7 @@ gFieldObjectGraphicsInfo_VigorothCarryingBox:: @ 850A6B0 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_VigorothCarryingBox - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_VigorothFacingAway:: @ 850A6D4 @@ -1645,7 +1645,7 @@ gFieldObjectGraphicsInfo_VigorothFacingAway:: @ 850A6D4 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_VigorothFacingAway - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BirchsBag:: @ 850A6F8 @@ -1662,7 +1662,7 @@ gFieldObjectGraphicsInfo_BirchsBag:: @ 850A6F8 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_BirchsBag - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_EnemyZigzagoon:: @ 850A71C @@ -1679,7 +1679,7 @@ gFieldObjectGraphicsInfo_EnemyZigzagoon:: @ 850A71C .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_EnemyZigzagoon - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Poochyena:: @ 850A740 @@ -1696,7 +1696,7 @@ gFieldObjectGraphicsInfo_Poochyena:: @ 850A740 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Poochyena - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Artist:: @ 850A764 @@ -1713,7 +1713,7 @@ gFieldObjectGraphicsInfo_Artist:: @ 850A764 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Artist - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_RivalBrendanNormal:: @ 850A788 @@ -1730,7 +1730,7 @@ gFieldObjectGraphicsInfo_RivalBrendanNormal:: @ 850A788 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_BrendanMayNormal .4byte gFieldObjectPicTable_BrendanNormal - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_RivalBrendanMachBike:: @ 850A7AC @@ -1747,7 +1747,7 @@ gFieldObjectGraphicsInfo_RivalBrendanMachBike:: @ 850A7AC .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_BrendanMachBike - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_RivalBrendanAcroBike:: @ 850A7D0 @@ -1764,7 +1764,7 @@ gFieldObjectGraphicsInfo_RivalBrendanAcroBike:: @ 850A7D0 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_AcroBike .4byte gFieldObjectPicTable_BrendanAcroBike - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_RivalBrendanSurfing:: @ 850A7F4 @@ -1781,7 +1781,7 @@ gFieldObjectGraphicsInfo_RivalBrendanSurfing:: @ 850A7F4 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Surfing .4byte gFieldObjectPicTable_BrendanSurfing - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_RivalBrendanFieldMove:: @ 850A818 @@ -1798,7 +1798,7 @@ gFieldObjectGraphicsInfo_RivalBrendanFieldMove:: @ 850A818 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_FieldMove .4byte gFieldObjectPicTable_BrendanFieldMove - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_RivalMayNormal:: @ 850A83C @@ -1815,7 +1815,7 @@ gFieldObjectGraphicsInfo_RivalMayNormal:: @ 850A83C .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_BrendanMayNormal .4byte gFieldObjectPicTable_MayNormal - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_RivalMayMachBike:: @ 850A860 @@ -1832,7 +1832,7 @@ gFieldObjectGraphicsInfo_RivalMayMachBike:: @ 850A860 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_MayMachBike - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_RivalMayAcroBike:: @ 850A884 @@ -1849,7 +1849,7 @@ gFieldObjectGraphicsInfo_RivalMayAcroBike:: @ 850A884 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_AcroBike .4byte gFieldObjectPicTable_MayAcroBike - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_RivalMaySurfing:: @ 850A8A8 @@ -1866,7 +1866,7 @@ gFieldObjectGraphicsInfo_RivalMaySurfing:: @ 850A8A8 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Surfing .4byte gFieldObjectPicTable_MaySurfing - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_RivalMayFieldMove:: @ 850A8CC @@ -1883,7 +1883,7 @@ gFieldObjectGraphicsInfo_RivalMayFieldMove:: @ 850A8CC .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_FieldMove .4byte gFieldObjectPicTable_MayFieldMove - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Cameraman:: @ 850A8F0 @@ -1900,7 +1900,7 @@ gFieldObjectGraphicsInfo_Cameraman:: @ 850A8F0 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Cameraman - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BrendanUnderwater:: @ 850A914 @@ -1917,7 +1917,7 @@ gFieldObjectGraphicsInfo_BrendanUnderwater:: @ 850A914 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_BrendanUnderwater - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_MayUnderwater:: @ 850A938 @@ -1934,7 +1934,7 @@ gFieldObjectGraphicsInfo_MayUnderwater:: @ 850A938 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_MayUnderwater - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_MovingBox:: @ 850A95C @@ -1951,7 +1951,7 @@ gFieldObjectGraphicsInfo_MovingBox:: @ 850A95C .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_MovingBox - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_CableCar:: @ 850A980 @@ -1968,7 +1968,7 @@ gFieldObjectGraphicsInfo_CableCar:: @ 850A980 .4byte gFieldObjectSpriteOamTables_64x64 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_CableCar - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Scientist2:: @ 850A9A4 @@ -1985,7 +1985,7 @@ gFieldObjectGraphicsInfo_Scientist2:: @ 850A9A4 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Scientist2 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Man7:: @ 850A9C8 @@ -2002,7 +2002,7 @@ gFieldObjectGraphicsInfo_Man7:: @ 850A9C8 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Man7 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_AquaMemberM:: @ 850A9EC @@ -2019,7 +2019,7 @@ gFieldObjectGraphicsInfo_AquaMemberM:: @ 850A9EC .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_AquaMemberM - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_AquaMemberF:: @ 850AA10 @@ -2036,7 +2036,7 @@ gFieldObjectGraphicsInfo_AquaMemberF:: @ 850AA10 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_AquaMemberF - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_MagmaMemberM:: @ 850AA34 @@ -2053,7 +2053,7 @@ gFieldObjectGraphicsInfo_MagmaMemberM:: @ 850AA34 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_MagmaMemberM - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_MagmaMemberF:: @ 850AA58 @@ -2070,7 +2070,7 @@ gFieldObjectGraphicsInfo_MagmaMemberF:: @ 850AA58 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_MagmaMemberF - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Sidney:: @ 850AA7C @@ -2087,7 +2087,7 @@ gFieldObjectGraphicsInfo_Sidney:: @ 850AA7C .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Sidney - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Phoebe:: @ 850AAA0 @@ -2104,7 +2104,7 @@ gFieldObjectGraphicsInfo_Phoebe:: @ 850AAA0 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Phoebe - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Glacia:: @ 850AAC4 @@ -2121,7 +2121,7 @@ gFieldObjectGraphicsInfo_Glacia:: @ 850AAC4 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Glacia - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Drake:: @ 850AAE8 @@ -2138,7 +2138,7 @@ gFieldObjectGraphicsInfo_Drake:: @ 850AAE8 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Drake - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Roxanne:: @ 850AB0C @@ -2155,7 +2155,7 @@ gFieldObjectGraphicsInfo_Roxanne:: @ 850AB0C .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Roxanne - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Brawly:: @ 850AB30 @@ -2172,7 +2172,7 @@ gFieldObjectGraphicsInfo_Brawly:: @ 850AB30 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Brawly - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Wattson:: @ 850AB54 @@ -2189,7 +2189,7 @@ gFieldObjectGraphicsInfo_Wattson:: @ 850AB54 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Wattson - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Flannery:: @ 850AB78 @@ -2206,7 +2206,7 @@ gFieldObjectGraphicsInfo_Flannery:: @ 850AB78 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Flannery - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Norman:: @ 850AB9C @@ -2223,7 +2223,7 @@ gFieldObjectGraphicsInfo_Norman:: @ 850AB9C .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Norman - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Winona:: @ 850ABC0 @@ -2240,7 +2240,7 @@ gFieldObjectGraphicsInfo_Winona:: @ 850ABC0 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Winona - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Liza:: @ 850ABE4 @@ -2257,7 +2257,7 @@ gFieldObjectGraphicsInfo_Liza:: @ 850ABE4 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Liza - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Tate:: @ 850AC08 @@ -2274,7 +2274,7 @@ gFieldObjectGraphicsInfo_Tate:: @ 850AC08 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Tate - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Wallace:: @ 850AC2C @@ -2291,7 +2291,7 @@ gFieldObjectGraphicsInfo_Wallace:: @ 850AC2C .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Wallace - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Steven:: @ 850AC50 @@ -2308,7 +2308,7 @@ gFieldObjectGraphicsInfo_Steven:: @ 850AC50 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Steven - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Wally:: @ 850AC74 @@ -2325,7 +2325,7 @@ gFieldObjectGraphicsInfo_Wally:: @ 850AC74 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Wally - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_RubySapphireLittleBoy:: @ 850AC98 @@ -2342,7 +2342,7 @@ gFieldObjectGraphicsInfo_RubySapphireLittleBoy:: @ 850AC98 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_RubySapphireLittleBoy - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BrendanFishing:: @ 850ACBC @@ -2359,7 +2359,7 @@ gFieldObjectGraphicsInfo_BrendanFishing:: @ 850ACBC .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Fishing .4byte gFieldObjectPicTable_BrendanFishing - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_MayFishing:: @ 850ACE0 @@ -2376,7 +2376,7 @@ gFieldObjectGraphicsInfo_MayFishing:: @ 850ACE0 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Fishing .4byte gFieldObjectPicTable_MayFishing - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_HotSpringsOldWoman:: @ 850AD04 @@ -2393,7 +2393,7 @@ gFieldObjectGraphicsInfo_HotSpringsOldWoman:: @ 850AD04 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_HotSpringsOldWoman - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_SSTidal:: @ 850AD28 @@ -2410,7 +2410,7 @@ gFieldObjectGraphicsInfo_SSTidal:: @ 850AD28 .4byte gFieldObjectSpriteOamTables_SSTidal .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_SSTidal - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_SubmarineShadow:: @ 850AD4C @@ -2427,7 +2427,7 @@ gFieldObjectGraphicsInfo_SubmarineShadow:: @ 850AD4C .4byte gFieldObjectSpriteOamTables_SubmarineShadow .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_SubmarineShadow - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_PichuDoll:: @ 850AD70 @@ -2444,7 +2444,7 @@ gFieldObjectGraphicsInfo_PichuDoll:: @ 850AD70 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_PichuDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_PikachuDoll:: @ 850AD94 @@ -2461,7 +2461,7 @@ gFieldObjectGraphicsInfo_PikachuDoll:: @ 850AD94 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_PikachuDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_MarillDoll:: @ 850ADB8 @@ -2478,7 +2478,7 @@ gFieldObjectGraphicsInfo_MarillDoll:: @ 850ADB8 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_MarillDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_TogepiDoll:: @ 850ADDC @@ -2495,7 +2495,7 @@ gFieldObjectGraphicsInfo_TogepiDoll:: @ 850ADDC .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_TogepiDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_CyndaquilDoll:: @ 850AE00 @@ -2512,7 +2512,7 @@ gFieldObjectGraphicsInfo_CyndaquilDoll:: @ 850AE00 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_CyndaquilDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_ChikoritaDoll:: @ 850AE24 @@ -2529,7 +2529,7 @@ gFieldObjectGraphicsInfo_ChikoritaDoll:: @ 850AE24 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_ChikoritaDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_TotodileDoll:: @ 850AE48 @@ -2546,7 +2546,7 @@ gFieldObjectGraphicsInfo_TotodileDoll:: @ 850AE48 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_TotodileDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_JigglypuffDoll:: @ 850AE6C @@ -2563,7 +2563,7 @@ gFieldObjectGraphicsInfo_JigglypuffDoll:: @ 850AE6C .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_JigglypuffDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_MeowthDoll:: @ 850AE90 @@ -2580,7 +2580,7 @@ gFieldObjectGraphicsInfo_MeowthDoll:: @ 850AE90 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_MeowthDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_ClefairyDoll:: @ 850AEB4 @@ -2597,7 +2597,7 @@ gFieldObjectGraphicsInfo_ClefairyDoll:: @ 850AEB4 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_ClefairyDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_DittoDoll:: @ 850AED8 @@ -2614,7 +2614,7 @@ gFieldObjectGraphicsInfo_DittoDoll:: @ 850AED8 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_DittoDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_SmoochumDoll:: @ 850AEFC @@ -2631,7 +2631,7 @@ gFieldObjectGraphicsInfo_SmoochumDoll:: @ 850AEFC .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_SmoochumDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_TreeckoDoll:: @ 850AF20 @@ -2648,7 +2648,7 @@ gFieldObjectGraphicsInfo_TreeckoDoll:: @ 850AF20 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_TreeckoDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_TorchicDoll:: @ 850AF44 @@ -2665,7 +2665,7 @@ gFieldObjectGraphicsInfo_TorchicDoll:: @ 850AF44 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_TorchicDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_MudkipDoll:: @ 850AF68 @@ -2682,7 +2682,7 @@ gFieldObjectGraphicsInfo_MudkipDoll:: @ 850AF68 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_MudkipDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_DuskullDoll:: @ 850AF8C @@ -2699,7 +2699,7 @@ gFieldObjectGraphicsInfo_DuskullDoll:: @ 850AF8C .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_DuskullDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_WynautDoll:: @ 850AFB0 @@ -2716,7 +2716,7 @@ gFieldObjectGraphicsInfo_WynautDoll:: @ 850AFB0 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_WynautDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BaltoyDoll:: @ 850AFD4 @@ -2733,7 +2733,7 @@ gFieldObjectGraphicsInfo_BaltoyDoll:: @ 850AFD4 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_BaltoyDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_KecleonDoll:: @ 850AFF8 @@ -2750,7 +2750,7 @@ gFieldObjectGraphicsInfo_KecleonDoll:: @ 850AFF8 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_KecleonDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_AzurillDoll:: @ 850B01C @@ -2767,7 +2767,7 @@ gFieldObjectGraphicsInfo_AzurillDoll:: @ 850B01C .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_AzurillDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_SkittyDoll:: @ 850B040 @@ -2784,7 +2784,7 @@ gFieldObjectGraphicsInfo_SkittyDoll:: @ 850B040 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_SkittyDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_SwabluDoll:: @ 850B064 @@ -2801,7 +2801,7 @@ gFieldObjectGraphicsInfo_SwabluDoll:: @ 850B064 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_SwabluDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_GulpinDoll:: @ 850B088 @@ -2818,7 +2818,7 @@ gFieldObjectGraphicsInfo_GulpinDoll:: @ 850B088 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_GulpinDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_LotadDoll:: @ 850B0AC @@ -2835,7 +2835,7 @@ gFieldObjectGraphicsInfo_LotadDoll:: @ 850B0AC .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_LotadDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_SeedotDoll:: @ 850B0D0 @@ -2852,7 +2852,7 @@ gFieldObjectGraphicsInfo_SeedotDoll:: @ 850B0D0 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_SeedotDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_PikaCushion:: @ 850B0F4 @@ -2869,7 +2869,7 @@ gFieldObjectGraphicsInfo_PikaCushion:: @ 850B0F4 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_PikaCushion - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_RoundCushion:: @ 850B118 @@ -2886,7 +2886,7 @@ gFieldObjectGraphicsInfo_RoundCushion:: @ 850B118 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_RoundCushion - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_KissCushion:: @ 850B13C @@ -2903,7 +2903,7 @@ gFieldObjectGraphicsInfo_KissCushion:: @ 850B13C .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_KissCushion - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_ZigzagCushion:: @ 850B160 @@ -2920,7 +2920,7 @@ gFieldObjectGraphicsInfo_ZigzagCushion:: @ 850B160 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_ZigzagCushion - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_SpinCushion:: @ 850B184 @@ -2937,7 +2937,7 @@ gFieldObjectGraphicsInfo_SpinCushion:: @ 850B184 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_SpinCushion - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_DiamondCushion:: @ 850B1A8 @@ -2954,7 +2954,7 @@ gFieldObjectGraphicsInfo_DiamondCushion:: @ 850B1A8 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_DiamondCushion - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BallCushion:: @ 850B1CC @@ -2971,7 +2971,7 @@ gFieldObjectGraphicsInfo_BallCushion:: @ 850B1CC .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_BallCushion - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_GrassCushion:: @ 850B1F0 @@ -2988,7 +2988,7 @@ gFieldObjectGraphicsInfo_GrassCushion:: @ 850B1F0 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_GrassCushion - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_FireCushion:: @ 850B214 @@ -3005,7 +3005,7 @@ gFieldObjectGraphicsInfo_FireCushion:: @ 850B214 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_FireCushion - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_WaterCushion:: @ 850B238 @@ -3022,7 +3022,7 @@ gFieldObjectGraphicsInfo_WaterCushion:: @ 850B238 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_WaterCushion - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BigSnorlaxDoll:: @ 850B25C @@ -3039,7 +3039,7 @@ gFieldObjectGraphicsInfo_BigSnorlaxDoll:: @ 850B25C .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_BigSnorlaxDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BigRhydonDoll:: @ 850B280 @@ -3056,7 +3056,7 @@ gFieldObjectGraphicsInfo_BigRhydonDoll:: @ 850B280 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_BigRhydonDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BigLaprasDoll:: @ 850B2A4 @@ -3073,7 +3073,7 @@ gFieldObjectGraphicsInfo_BigLaprasDoll:: @ 850B2A4 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_BigLaprasDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BigVenusaurDoll:: @ 850B2C8 @@ -3090,7 +3090,7 @@ gFieldObjectGraphicsInfo_BigVenusaurDoll:: @ 850B2C8 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_BigVenusaurDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BigCharizardDoll:: @ 850B2EC @@ -3107,7 +3107,7 @@ gFieldObjectGraphicsInfo_BigCharizardDoll:: @ 850B2EC .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_BigCharizardDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BigBlastoiseDoll:: @ 850B310 @@ -3124,7 +3124,7 @@ gFieldObjectGraphicsInfo_BigBlastoiseDoll:: @ 850B310 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_BigBlastoiseDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BigWailmerDoll:: @ 850B334 @@ -3141,7 +3141,7 @@ gFieldObjectGraphicsInfo_BigWailmerDoll:: @ 850B334 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_BigWailmerDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BigRegirockDoll:: @ 850B358 @@ -3158,7 +3158,7 @@ gFieldObjectGraphicsInfo_BigRegirockDoll:: @ 850B358 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_BigRegirockDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BigRegiceDoll:: @ 850B37C @@ -3175,7 +3175,7 @@ gFieldObjectGraphicsInfo_BigRegiceDoll:: @ 850B37C .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_BigRegiceDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BigRegisteelDoll:: @ 850B3A0 @@ -3192,7 +3192,7 @@ gFieldObjectGraphicsInfo_BigRegisteelDoll:: @ 850B3A0 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_BigRegisteelDoll - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Latias:: @ 850B3C4 @@ -3209,7 +3209,7 @@ gFieldObjectGraphicsInfo_Latias:: @ 850B3C4 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_LatiasLatios - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Latios:: @ 850B3E8 @@ -3226,7 +3226,7 @@ gFieldObjectGraphicsInfo_Latios:: @ 850B3E8 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_LatiasLatios - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Boy5:: @ 850B40C @@ -3243,7 +3243,7 @@ gFieldObjectGraphicsInfo_Boy5:: @ 850B40C .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Boy5 - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_ContestOldMan:: @ 850B430 @@ -3260,7 +3260,7 @@ gFieldObjectGraphicsInfo_ContestOldMan:: @ 850B430 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_ContestOldMan - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BrendanWatering:: @ 850B454 @@ -3277,7 +3277,7 @@ gFieldObjectGraphicsInfo_BrendanWatering:: @ 850B454 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_BrendanWatering - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_MayWatering:: @ 850B478 @@ -3294,7 +3294,7 @@ gFieldObjectGraphicsInfo_MayWatering:: @ 850B478 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_MayWatering - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BrendanDecorating:: @ 850B49C @@ -3311,7 +3311,7 @@ gFieldObjectGraphicsInfo_BrendanDecorating:: @ 850B49C .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_BrendanDecorating - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_MayDecorating:: @ 850B4C0 @@ -3328,7 +3328,7 @@ gFieldObjectGraphicsInfo_MayDecorating:: @ 850B4C0 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_MayDecorating - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Archie:: @ 850B4E4 @@ -3345,7 +3345,7 @@ gFieldObjectGraphicsInfo_Archie:: @ 850B4E4 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Archie - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Maxie:: @ 850B508 @@ -3362,7 +3362,7 @@ gFieldObjectGraphicsInfo_Maxie:: @ 850B508 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Maxie - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Kyogre1:: @ 850B52C @@ -3447,7 +3447,7 @@ gFieldObjectGraphicsInfo_Fossil:: @ 850B5BC .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_Fossil - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Regirock:: @ 850B5E0 @@ -3464,7 +3464,7 @@ gFieldObjectGraphicsInfo_Regirock:: @ 850B5E0 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Regi - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Regice:: @ 850B604 @@ -3481,7 +3481,7 @@ gFieldObjectGraphicsInfo_Regice:: @ 850B604 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Regi - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Registeel:: @ 850B628 @@ -3498,7 +3498,7 @@ gFieldObjectGraphicsInfo_Registeel:: @ 850B628 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Regi - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Skitty:: @ 850B64C @@ -3515,7 +3515,7 @@ gFieldObjectGraphicsInfo_Skitty:: @ 850B64C .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Skitty - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Kecleon1:: @ 850B670 @@ -3532,7 +3532,7 @@ gFieldObjectGraphicsInfo_Kecleon1:: @ 850B670 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Kecleon - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Kyogre2:: @ 850B694 @@ -3583,7 +3583,7 @@ gFieldObjectGraphicsInfo_Rayquaza2:: @ 850B6DC .4byte gFieldObjectSpriteOamTables_64x64 .4byte gFieldObjectImageAnimTable_Rayquaza2 .4byte gFieldObjectPicTable_Rayquaza - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Zigzagoon:: @ 850B700 @@ -3600,7 +3600,7 @@ gFieldObjectGraphicsInfo_Zigzagoon:: @ 850B700 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Zigzagoon - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Pikachu:: @ 850B724 @@ -3617,7 +3617,7 @@ gFieldObjectGraphicsInfo_Pikachu:: @ 850B724 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Pikachu - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Azumarill:: @ 850B748 @@ -3634,7 +3634,7 @@ gFieldObjectGraphicsInfo_Azumarill:: @ 850B748 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Azumarill - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Wingull:: @ 850B76C @@ -3651,7 +3651,7 @@ gFieldObjectGraphicsInfo_Wingull:: @ 850B76C .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Wingull - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Kecleon2:: @ 850B790 @@ -3668,7 +3668,7 @@ gFieldObjectGraphicsInfo_Kecleon2:: @ 850B790 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Kecleon - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_TuberMSwimming:: @ 850B7B4 @@ -3685,7 +3685,7 @@ gFieldObjectGraphicsInfo_TuberMSwimming:: @ 850B7B4 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_TuberMSwimming - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Azurill:: @ 850B7D8 @@ -3702,7 +3702,7 @@ gFieldObjectGraphicsInfo_Azurill:: @ 850B7D8 .4byte gFieldObjectSpriteOamTables_16x16 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Azurill - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Mom:: @ 850B7FC @@ -3719,7 +3719,7 @@ gFieldObjectGraphicsInfo_Mom:: @ 850B7FC .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Mom - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_LinkBrendan:: @ 850B820 @@ -3736,7 +3736,7 @@ gFieldObjectGraphicsInfo_LinkBrendan:: @ 850B820 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_BrendanMayNormal .4byte gFieldObjectPicTable_BrendanNormal - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_LinkMay:: @ 850B844 @@ -3753,7 +3753,7 @@ gFieldObjectGraphicsInfo_LinkMay:: @ 850B844 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_BrendanMayNormal .4byte gFieldObjectPicTable_MayNormal - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Juan:: @ 850B868 @@ -3770,7 +3770,7 @@ gFieldObjectGraphicsInfo_Juan:: @ 850B868 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Juan - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Scott:: @ 850B88C @@ -3787,7 +3787,7 @@ gFieldObjectGraphicsInfo_Scott:: @ 850B88C .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Scott - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_MysteryEventDeliveryman:: @ 850B8B0 @@ -3804,7 +3804,7 @@ gFieldObjectGraphicsInfo_MysteryEventDeliveryman:: @ 850B8B0 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_MysteryEventDeliveryman - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Statue:: @ 850B8D4 @@ -3821,7 +3821,7 @@ gFieldObjectGraphicsInfo_Statue:: @ 850B8D4 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_Statue - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Kirlia:: @ 850B8F8 @@ -3838,7 +3838,7 @@ gFieldObjectGraphicsInfo_Kirlia:: @ 850B8F8 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Kirlia - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Dusclops:: @ 850B91C @@ -3855,7 +3855,7 @@ gFieldObjectGraphicsInfo_Dusclops:: @ 850B91C .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Dusclops - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_UnionRoomAttendant:: @ 850B940 @@ -3872,7 +3872,7 @@ gFieldObjectGraphicsInfo_UnionRoomAttendant:: @ 850B940 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_UnionRoomAttendant - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Red:: @ 850B964 @@ -3889,7 +3889,7 @@ gFieldObjectGraphicsInfo_Red:: @ 850B964 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Red - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Leaf:: @ 850B988 @@ -3906,7 +3906,7 @@ gFieldObjectGraphicsInfo_Leaf:: @ 850B988 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Leaf - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Sudowoodo:: @ 850B9AC @@ -3923,7 +3923,7 @@ gFieldObjectGraphicsInfo_Sudowoodo:: @ 850B9AC .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Sudowoodo - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Mew:: @ 850B9D0 @@ -3940,7 +3940,7 @@ gFieldObjectGraphicsInfo_Mew:: @ 850B9D0 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Mew - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Deoxys:: @ 850B9F4 @@ -3957,7 +3957,7 @@ gFieldObjectGraphicsInfo_Deoxys:: @ 850B9F4 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Deoxys - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_BirthIslandStone:: @ 850BA18 @@ -3974,7 +3974,7 @@ gFieldObjectGraphicsInfo_BirthIslandStone:: @ 850BA18 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Inanimate .4byte gFieldObjectPicTable_BirthIslandStone - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Anabel:: @ 850BA3C @@ -3991,7 +3991,7 @@ gFieldObjectGraphicsInfo_Anabel:: @ 850BA3C .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Anabel - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Tucker:: @ 850BA60 @@ -4008,7 +4008,7 @@ gFieldObjectGraphicsInfo_Tucker:: @ 850BA60 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Tucker - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Greta:: @ 850BA84 @@ -4025,7 +4025,7 @@ gFieldObjectGraphicsInfo_Greta:: @ 850BA84 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Greta - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Spenser:: @ 850BAA8 @@ -4042,7 +4042,7 @@ gFieldObjectGraphicsInfo_Spenser:: @ 850BAA8 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Spenser - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Noland:: @ 850BACC @@ -4059,7 +4059,7 @@ gFieldObjectGraphicsInfo_Noland:: @ 850BACC .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Noland - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Lucy:: @ 850BAF0 @@ -4076,7 +4076,7 @@ gFieldObjectGraphicsInfo_Lucy:: @ 850BAF0 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Lucy - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Brandon:: @ 850BB14 @@ -4093,7 +4093,7 @@ gFieldObjectGraphicsInfo_Brandon:: @ 850BB14 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Brandon - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_RubySapphireBrendan:: @ 850BB38 @@ -4110,7 +4110,7 @@ gFieldObjectGraphicsInfo_RubySapphireBrendan:: @ 850BB38 .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_RubySapphireBrendan - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_RubySapphireMay:: @ 850BB5C @@ -4127,7 +4127,7 @@ gFieldObjectGraphicsInfo_RubySapphireMay:: @ 850BB5C .4byte gFieldObjectSpriteOamTables_16x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_RubySapphireMay - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_Lugia:: @ 850BB80 @@ -4144,7 +4144,7 @@ gFieldObjectGraphicsInfo_Lugia:: @ 850BB80 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_Standard .4byte gFieldObjectPicTable_Lugia - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable .align 2 gFieldObjectGraphicsInfo_HoOh:: @ 850BBA4 @@ -4161,4 +4161,4 @@ gFieldObjectGraphicsInfo_HoOh:: @ 850BBA4 .4byte gFieldObjectSpriteOamTables_32x32 .4byte gFieldObjectImageAnimTable_HoOh .4byte gFieldObjectPicTable_HoOh - .4byte gDummyObjectRotScalAnimTable + .4byte gDummySpriteAffineAnimTable diff --git a/data/io_reg.s b/data/io_reg.s new file mode 100644 index 0000000000..9e3198b3b6 --- /dev/null +++ b/data/io_reg.s @@ -0,0 +1,22 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + + + +.align 2 +gUnref_82EC784:: @ 82EC784 + .incbin "baserom.gba", 0x2EC784, 0x40 + +gUnknown_82EC7C4:: @ 82EC7C4 + .2byte 0x0100 + .2byte 0x0200 + .2byte 0x0400 + .2byte 0x0800 + +gUnknown_82EC7CC:: @ 82EC7CC + .2byte 0x0001 + .2byte 0x0002 + .2byte 0x0004 + .2byte 0x0008 diff --git a/data/rom_8158B30.s b/data/rom_8158B30.s index db4329c101..1502efc2a9 100644 --- a/data/rom_8158B30.s +++ b/data/rom_8158B30.s @@ -237,5 +237,5 @@ gUnknown_085DFDA0:: @ 85DFDA0 gUnknown_085DFDB8:: @ 85DFDB8 .incbin "baserom.gba", 0x5dfdb8, 0x8 -gUnknown_085DFDC0:: @ 85DFDC0 +gWallyBufferCommands:: @ 85DFDC0 .incbin "baserom.gba", 0x5dfdc0, 0xe4 diff --git a/data/rtc.inc b/data/rtc.inc deleted file mode 100644 index ebb0fac3d1..0000000000 --- a/data/rtc.inc +++ /dev/null @@ -1,28 +0,0 @@ - .align 2 -gDefaultRTCInfo:: @ 82FECC0 - .byte 0 @ year - .byte 1 @ month - .byte 1 @ day of month - .byte 0 @ day of week - .byte 0 @ hour - .byte 0 @ minute - .byte 0 @ second - .byte 0 @ control register value - .byte 0 @ unknown 1 - .byte 0 @ unknown 2 - .2byte 0 @ padding - - .align 2 -gDaysInEachMonth:: @ 82FECCC - .4byte 31 @ January - .4byte 28 @ February - .4byte 31 @ March - .4byte 30 @ April - .4byte 31 @ May - .4byte 30 @ June - .4byte 31 @ July - .4byte 31 @ August - .4byte 30 @ September - .4byte 31 @ October - .4byte 30 @ November - .4byte 31 @ December diff --git a/data/save.s b/data/save.s index 760773e88a..29b750b3ad 100644 --- a/data/save.s +++ b/data/save.s @@ -3,5 +3,5 @@ .section .rodata -gUnknown_085CDC00:: @ 85CDC00 +gSaveSectionOffsets:: @ 85CDC00 .incbin "baserom.gba", 0x5cdc00, 0x38 diff --git a/data/sound_data.s b/data/sound_data.s index 61b6abc047..a25081360d 100644 --- a/data/sound_data.s +++ b/data/sound_data.s @@ -3,26 +3,11 @@ voicegroup_pokemon_cry:: @ 8675D04 .incbin "baserom.gba", 0x675D04, 0x27FF0 -gUnknown_0869DCF4:: @ 869DCF4 - .incbin "baserom.gba", 0x69dcf4, 0x600 +gCryTable:: @ 869DCF4 + .incbin "baserom.gba", 0x69dcf4, 0x1230 -gUnknown_0869E2F4:: @ 869E2F4 - .incbin "baserom.gba", 0x69e2f4, 0x600 - -gUnknown_0869E8F4:: @ 869E8F4 - .incbin "baserom.gba", 0x69e8f4, 0x600 - -gUnknown_0869EEF4:: @ 869EEF4 - .incbin "baserom.gba", 0x69eef4, 0x30 - -gUnknown_0869EF24:: @ 869EF24 - .incbin "baserom.gba", 0x69ef24, 0x600 - -gUnknown_0869F524:: @ 869F524 - .incbin "baserom.gba", 0x69f524, 0x600 - -gUnknown_0869FB24:: @ 869FB24 - .incbin "baserom.gba", 0x69fb24, 0x600 +gCryTable2:: @ 869EF24 + .incbin "baserom.gba", 0x69ef24, 0x1200 gUnknown_086A0124:: @ 86A0124 .incbin "baserom.gba", 0x6a0124, 0x1489c diff --git a/data/sprite.s b/data/sprite.s deleted file mode 100644 index 59308d286a..0000000000 --- a/data/sprite.s +++ /dev/null @@ -1,68 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -@ Unreferenced data. Also unreferenced in Ruby. - .incbin "baserom.gba", 0x2ec61c, 0x18 - -gUnknown_082EC634:: @ 82EC634 - .incbin "baserom.gba", 0x2ec634, 0x18 - -gUnknown_082EC64C:: @ 82EC64C - .incbin "baserom.gba", 0x2ec64c, 0x44 - -@ off-screen and low priority relative to background -gDefaultOamAttributes:: @ 82EC690 - .2byte 160 @ Y - .2byte 304 @ X - .2byte 3 << 10 @ priority - - .align 2 -gDummyObjectImageAnim:: @ 82EC698 - obj_image_anim_end - - .align 2 -gDummyObjectImageAnimTable:: @ 82EC69C - .4byte gDummyObjectImageAnim - - .align 2 -gDummyObjectRotScalAnim:: @ 82EC6A0 - obj_rot_scal_anim_end - - .align 2 -gDummyObjectRotScalAnimTable:: @ 82EC6A8 - .4byte gDummyObjectRotScalAnim - -gUnknown_082EC6AC:: @ 82EC6AC - .incbin "baserom.gba", 0x2ec6ac, 0x18 - -gUnknown_082EC6C4:: @ 82EC6C4 - .incbin "baserom.gba", 0x2ec6c4, 0x8 - -gUnknown_082EC6CC:: @ 82EC6CC - .incbin "baserom.gba", 0x2ec6cc, 0x8 - -gUnknown_082EC6D4:: @ 82EC6D4 - .incbin "baserom.gba", 0x2ec6d4, 0x10 - -gUnknown_082EC6E4:: @ 82EC6E4 - .incbin "baserom.gba", 0x2ec6e4, 0x10 - -gUnknown_082EC6F4:: @ 82EC6F4 - .incbin "baserom.gba", 0x2ec6f4, 0x60 - -gUnknown_082EC754:: @ 82EC754 - .incbin "baserom.gba", 0x2ec754, 0x70 - -gUnknown_82EC7C4:: @ 82EC7C4 - .2byte 0x0100 - .2byte 0x0200 - .2byte 0x0400 - .2byte 0x0800 - -gUnknown_82EC7CC:: @ 82EC7CC - .2byte 0x0001 - .2byte 0x0002 - .2byte 0x0004 - .2byte 0x0008 diff --git a/data/strings.s b/data/strings.s index 300796c0f0..751449a1f8 100644 --- a/data/strings.s +++ b/data/strings.s @@ -2199,11 +2199,11 @@ gUnknown_085EFC0C:: @ 85EFC0C gUnknown_085EFC27:: @ 85EFC27 .incbin "baserom.gba", 0x5efc27, 0xad -gUnknown_085EFCD4:: @ 85EFCD4 +gOtherText_PokeBalls:: @ 85EFCD4 .incbin "baserom.gba", 0x5efcd4, 0xb -gUnknown_085EFCDF:: @ 85EFCDF +gOtherText_Berry:: @ 85EFCDF .incbin "baserom.gba", 0x5efcdf, 0x6 -gUnknown_085EFCE5:: @ 85EFCE5 +gOtherText_Berries:: @ 85EFCE5 .incbin "baserom.gba", 0x5efce5, 0xb diff --git a/data/window.s b/data/window.s deleted file mode 100644 index 204152b3e9..0000000000 --- a/data/window.s +++ /dev/null @@ -1,7 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -gDummyWindowTemplate:: @ 82E9584 - window_template -1, 0, 0, 0, 0, 0, 0 diff --git a/include/battle.h b/include/battle.h index 741e821e9f..d5c5dd4894 100644 --- a/include/battle.h +++ b/include/battle.h @@ -7,7 +7,7 @@ #define BATTLE_TYPE_TRAINER 0x0008 #define BATTLE_TYPE_FIRST_BATTLE 0x0010 #define BATTLE_TYPE_20 0x0020 -#define BATTLE_TYPE_40 0x0040 +#define BATTLE_TYPE_MULTI 0x0040 #define BATTLE_TYPE_SAFARI 0x0080 #define BATTLE_TYPE_BATTLE_TOWER 0x0100 #define BATTLE_TYPE_WALLY_TUTORIAL 0x0200 @@ -16,6 +16,11 @@ #define BATTLE_TYPE_KYOGRE_GROUDON 0x1000 #define BATTLE_TYPE_LEGENDARY 0x2000 #define BATTLE_TYPE_REGI 0x4000 +#define BATTLE_TYPE_TWO_VS_ONE 0x8000 +#define BATTLE_TYPE_RECORDED 0x1000000 +#define BATTLE_TYPE_GROUDON 0x10000000 +#define BATTLE_TYPE_KYORGE 0x20000000 +#define BATTLE_TYPE_RAYQUAZA 0x40000000 #define AI_ACTION_UNK1 0x0001 #define AI_ACTION_UNK2 0x0002 diff --git a/include/decompress.h b/include/decompress.h new file mode 100644 index 0000000000..6c925f7308 --- /dev/null +++ b/include/decompress.h @@ -0,0 +1,29 @@ +#ifndef GUARD_DECOMPRESS_H +#define GUARD_DECOMPRESS_H + +#include "sprite.h" + +void LZDecompressWram(const void *src, void *dest); +void LZDecompressVram(const void *src, void *dest); + +u16 LoadCompressedObjectPic(const struct CompressedSpriteSheet *src); +void LoadCompressedObjectPicOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer); +bool8 LoadCompressedObjectPicUsingHeap(struct CompressedSpriteSheet* src); + +void LoadCompressedObjectPalette(const struct CompressedSpritePalette *src); +void LoadCompressedObjectPaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer); +bool8 LoadCompressedObjectPaletteUsingHeap(const struct CompressedSpritePalette *src); + +void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void* buffer, s32 species); +void DecompressPicFromTable_2(const struct CompressedSpriteSheet *src, void* buffer, s32 species); +void DecompressPicFromTable_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void* buffer, s32 species); + +void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality); +void HandleLoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality); +void HandleLoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality); + +void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic); +void LoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic); +void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic); + +#endif // GUARD_DECOMPRESS_H diff --git a/include/event_data.h b/include/event_data.h new file mode 100644 index 0000000000..a2a501283d --- /dev/null +++ b/include/event_data.h @@ -0,0 +1,52 @@ +#ifndef GUARD_EVENT_DATA_H +#define GUARD_EVENT_DATA_H + +#include "flags.h" +#include "vars.h" + +void InitEventData(void); +void ClearTempFieldEventData(void); +void ClearUpperFlags(void); +void DisableNationalPokedex(void); +void EnableNationalPokedex(void); +bool32 IsNationalPokedexEnabled(void); +void DisableMysteryEvent(void); +void EnableMysteryEvent(void); +bool32 IsMysteryEventEnabled(void); +void DisableMysteryGift(void); +void EnableMysteryGift(void); +bool32 IsMysteryGiftEnabled(void); +void sub_809D4D8(void); +void sub_809D570(void); +void DisableResetRTC(void); +void EnableResetRTC(void); +bool32 CanResetRTC(void); +u16 *GetVarPointer(u16 id); +u16 VarGet(u16 id); +bool8 VarSet(u16 id, u16 value); +u8 VarGetFieldObjectGraphicsId(u8 id); +u8 *GetFlagPointer(u16 id); +u8 FlagSet(u16 id); +u8 FlagReset(u16 id); +bool8 FlagGet(u16 id); + +extern u16 gSpecialVar_0x8000; +extern u16 gSpecialVar_0x8001; +extern u16 gSpecialVar_0x8002; +extern u16 gSpecialVar_0x8003; +extern u16 gSpecialVar_0x8004; +extern u16 gSpecialVar_0x8005; +extern u16 gSpecialVar_0x8006; +extern u16 gSpecialVar_0x8007; +extern u16 gSpecialVar_0x8008; +extern u16 gSpecialVar_0x8009; +extern u16 gSpecialVar_0x800A; +extern u16 gSpecialVar_0x800B; +extern u16 gScriptResult; +extern u16 gScriptLastTalked; +extern u16 gScriptFacing; +extern u16 gSpecialVar_0x8012; +extern u16 gSpecialVar_0x8013; +extern u16 gSpecialVar_0x8014; + +#endif // GUARD_EVENT_DATA_H diff --git a/include/flags.h b/include/flags.h new file mode 100644 index 0000000000..56e87b895f --- /dev/null +++ b/include/flags.h @@ -0,0 +1,93 @@ +#ifndef GUARD_FLAGS_H +#define GUARD_FLAGS_H + +#define TRAINER_FLAG_START 0x500 +#define TRAINERS_FLAG_NO 0x360 +#define CODE_FLAGS (TRAINER_FLAG_START + TRAINERS_FLAG_NO) + +// SYSTEM FLAGS + +#define SYS_POKEMON_GET CODE_FLAGS + 0 +#define SYS_POKEDEX_GET CODE_FLAGS + 1 +#define SYS_POKENAV_GET CODE_FLAGS + 2 +// third one appears unused +#define SYS_GAME_CLEAR CODE_FLAGS + 4 +#define SYS_CHAT_USED CODE_FLAGS + 5 +#define SYS_HIPSTER_MEET CODE_FLAGS + 6 + +// badges +#define BADGE01_GET CODE_FLAGS + 7 +#define BADGE02_GET CODE_FLAGS + 8 +#define BADGE03_GET CODE_FLAGS + 9 +#define BADGE04_GET CODE_FLAGS + 0xA +#define BADGE05_GET CODE_FLAGS + 0xB +#define BADGE06_GET CODE_FLAGS + 0xC +#define BADGE07_GET CODE_FLAGS + 0xD +#define BADGE08_GET CODE_FLAGS + 0xE + +// cities and towns +#define FLAG_VISITED_LITTLEROOT_TOWN CODE_FLAGS + 0xF +#define FLAG_VISITED_OLDALE_TOWN CODE_FLAGS + 0x10 +#define FLAG_VISITED_DEWFORD_TOWN CODE_FLAGS + 0x11 +#define FLAG_VISITED_LAVARIDGE_TOWN CODE_FLAGS + 0x12 +#define FLAG_VISITED_FALLARBOR_TOWN CODE_FLAGS + 0x13 +#define FLAG_VISITED_VERDANTURF_TOWN CODE_FLAGS + 0x14 +#define FLAG_VISITED_PACIFIDLOG_TOWN CODE_FLAGS + 0x15 +#define FLAG_VISITED_PETALBURG_CITY CODE_FLAGS + 0x16 +#define FLAG_VISITED_SLATEPORT_CITY CODE_FLAGS + 0x17 +#define FLAG_VISITED_MAUVILLE_CITY CODE_FLAGS + 0x18 +#define FLAG_VISITED_RUSTBORO_CITY CODE_FLAGS + 0x19 +#define FLAG_VISITED_FORTREE_CITY CODE_FLAGS + 0x1A +#define FLAG_VISITED_LILYCOVE_CITY CODE_FLAGS + 0x1B +#define FLAG_VISITED_MOSSDEEP_CITY CODE_FLAGS + 0x1C +#define FLAG_VISITED_SOOTOPOLIS_CITY CODE_FLAGS + 0x1D +#define FLAG_VISITED_EVER_GRANDE_CITY CODE_FLAGS + 0x1E + +#define SYS_UNKNOWN_880 CODE_FLAGS + 0x20 + +#define SYS_USE_FLASH CODE_FLAGS + 0x28 +#define SYS_USE_STRENGTH CODE_FLAGS + 0x29 +#define SYS_WEATHER_CTRL CODE_FLAGS + 0x2A +#define SYS_CYCLING_ROAD CODE_FLAGS + 0x2B +#define SYS_SAFARI_MODE CODE_FLAGS + 0x2C +#define SYS_CRUISE_MODE CODE_FLAGS + 0x2D + +#define SYS_TV_HOME CODE_FLAGS + 0x30 +#define SYS_TV_WATCH CODE_FLAGS + 0x31 +#define SYS_TV_START CODE_FLAGS + 0x32 +#define SYS_POPWORD_INPUT CODE_FLAGS + 0x33 +#define SYS_MIX_RECORD CODE_FLAGS + 0x34 +#define SYS_CLOCK_SET CODE_FLAGS + 0x35 +#define SYS_NATIONAL_DEX CODE_FLAGS + 0x36 +#define SYS_CAVE_SHIP CODE_FLAGS + 0x37 +#define SYS_CAVE_WONDER CODE_FLAGS + 0x38 +#define SYS_CAVE_BATTLE CODE_FLAGS + 0x39 +#define SYS_SHOAL_TIDE CODE_FLAGS + 0x3A +#define SYS_RIBBON_GET CODE_FLAGS + 0x3B + +#define SYS_PC_LANETTE CODE_FLAGS + 0x4B +#define SYS_MYSTERY_EVENT_ENABLE CODE_FLAGS + 0x4C +#define SYS_ENC_UP_ITEM CODE_FLAGS + 0x4D +#define SYS_ENC_DOWN_ITEM CODE_FLAGS + 0x4E +#define SYS_BRAILLE_DIG CODE_FLAGS + 0x4F +#define SYS_BRAILLE_STRENGTH CODE_FLAGS + 0x50 +#define SYS_BRAILLE_WAIT CODE_FLAGS + 0x51 +#define SYS_BRAILLE_FLY CODE_FLAGS + 0x52 +#define SYS_HAS_EON_TICKET CODE_FLAGS + 0x53 + +#define SYS_POKEMON_LEAGUE_FLY CODE_FLAGS + 0x54 + +#define SYS_TV_LATI CODE_FLAGS + 0x5D + +#define SYS_SHOAL_ITEM CODE_FLAGS + 0x5F +#define SYS_B_DASH CODE_FLAGS + 0x60 // got Running Shoes +#define SYS_CTRL_OBJ_DELETE CODE_FLAGS + 0x61 +#define SYS_RESET_RTC_ENABLE CODE_FLAGS + 0x62 + +#define SYS_MYSTERY_GIFT_ENABLE CODE_FLAGS + 0x7B + +// SPECIAL FLAGS (unknown purpose) + +#define SPECIAL_FLAG_1 0x4001 + +#endif // GUARD_FLAGS_H diff --git a/include/game_stat.h b/include/game_stat.h new file mode 100644 index 0000000000..b8a5c3232a --- /dev/null +++ b/include/game_stat.h @@ -0,0 +1,59 @@ +#ifndef GUARD_GAME_STAT_H +#define GUARD_GAME_STAT_H + +#define GAME_STAT_SAVED_GAME 0 +#define GAME_STAT_FIRST_HOF_PLAY_TIME 1 +#define GAME_STAT_STARTED_TRENDS 2 +#define GAME_STAT_PLANTED_BERRIES 3 +#define GAME_STAT_TRADED_BIKES 4 +#define GAME_STAT_STEPS 5 +#define GAME_STAT_GOT_INTERVIEWED 6 +#define GAME_STAT_TOTAL_BATTLES 7 +#define GAME_STAT_WILD_BATTLES 8 +#define GAME_STAT_TRAINER_BATTLES 9 +#define GAME_STAT_ENTERED_HOF 10 +#define GAME_STAT_POKEMON_CAPTURES 11 +#define GAME_STAT_FISHING_CAPTURES 12 +#define GAME_STAT_HATCHED_EGGS 13 +#define GAME_STAT_EVOLVED_POKEMON 14 +#define GAME_STAT_USED_POKECENTER 15 +#define GAME_STAT_RESTED_AT_HOME 16 +#define GAME_STAT_ENTERED_SAFARI_ZONE 17 +#define GAME_STAT_USED_CUT 18 +#define GAME_STAT_USED_ROCK_SMASH 19 +#define GAME_STAT_MOVED_SECRET_BASE 20 +#define GAME_STAT_POKEMON_TRADES 21 +#define GAME_STAT_UNKNOWN_22 22 +#define GAME_STAT_LINK_BATTLE_WINS 23 +#define GAME_STAT_LINK_BATTLE_LOSSES 24 +#define GAME_STAT_LINK_BATTLE_DRAWS 25 +#define GAME_STAT_USED_SPLASH 26 +#define GAME_STAT_USED_STRUGGLE 27 +#define GAME_STAT_SLOT_JACKPOTS 28 +#define GAME_STAT_CONSECUTIVE_ROULETTE_WINS 29 +#define GAME_STAT_ENTERED_BATTLE_TOWER 30 +#define GAME_STAT_UNKNOWN_31 31 +#define GAME_STAT_BATTLE_TOWER_BEST_STREAK 32 +#define GAME_STAT_POKEBLOCKS 33 +#define GAME_STAT_POKEBLOCKS_WITH_FRIENDS 34 +#define GAME_STAT_WON_LINK_CONTEST 35 +#define GAME_STAT_ENTERED_CONTEST 36 +#define GAME_STAT_WON_CONTEST 37 +#define GAME_STAT_SHOPPED 38 +#define GAME_STAT_USED_ITEMFINDER 39 +#define GAME_STAT_GOT_RAINED_ON 40 +#define GAME_STAT_CHECKED_POKEDEX 41 +#define GAME_STAT_RECEIVED_RIBBONS 42 +#define GAME_STAT_JUMPED_DOWN_LEDGES 43 +#define GAME_STAT_WATCHED_TV 44 +#define GAME_STAT_CHECKED_CLOCK 45 +#define GAME_STAT_WON_POKEMON_LOTTERY 46 +#define GAME_STAT_USED_DAYCARE 47 +#define GAME_STAT_RODE_CABLE_CAR 48 +#define GAME_STAT_ENTERED_HOT_SPRINGS 49 + +/*TODO: add new stats added in Emerald*/ + +#define NUM_GAME_STATS 64 + +#endif // GUARD_GAME_STAT_H diff --git a/include/gba/m4a_internal.h b/include/gba/m4a_internal.h index f5d44de990..6cdfd13e12 100644 --- a/include/gba/m4a_internal.h +++ b/include/gba/m4a_internal.h @@ -1,3 +1,6 @@ +#ifndef GUARD_GBA_M4A_INTERNAL_H +#define GUARD_GBA_M4A_INTERNAL_H + #include "gba/gba.h" // ASCII encoding of 'Smsh' in reverse @@ -460,3 +463,5 @@ void ply_xleng(struct MusicPlayerInfo *, struct MusicPlayerTrack *); void ply_xswee(struct MusicPlayerInfo *, struct MusicPlayerTrack *); void ply_xcmd_0C(struct MusicPlayerInfo *, struct MusicPlayerTrack *); void ply_xcmd_0D(struct MusicPlayerInfo *, struct MusicPlayerTrack *); + +#endif // GUARD_GBA_M4A_INTERNAL_H diff --git a/include/global.berry.h b/include/global.berry.h new file mode 100644 index 0000000000..6632e55e28 --- /dev/null +++ b/include/global.berry.h @@ -0,0 +1,57 @@ +#ifndef GUARD_GLOBAL_BERRY_H +#define GUARD_GLOBAL_BERRY_H + +struct Berry +{ + const u8 name[7]; + u8 firmness; + u16 size; + u8 maxYield; + u8 minYield; + const u8 *description1; + const u8 *description2; + u8 stageDuration; + u8 spicy; + u8 dry; + u8 sweet; + u8 bitter; + u8 sour; + u8 smoothness; +}; + +struct EnigmaBerry +{ + struct Berry berry; + u8 pic[(6 * 6) * TILE_SIZE_4BPP]; + u16 palette[16]; + u8 description1[45]; + u8 description2[45]; + u8 itemEffect[18]; + u8 holdEffect; + u8 holdEffectParam; + u32 checksum; +}; + +struct BattleEnigmaBerry +{ + /*0x00*/ u8 name[7]; + /*0x07*/ u8 holdEffect; + /*0x08*/ u8 itemEffect[18]; + /*0x1A*/ u8 holdEffectParam; +}; + +struct BerryTree +{ + u8 berry; + u8 stage:7; + u8 growthSparkle:1; + u16 minutesUntilNextStage; + u8 berryYield; + u8 regrowthCount:4; + u8 watered1:1; + u8 watered2:1; + u8 watered3:1; + u8 watered4:1; +}; + +#endif // GUARD_GLOBAL_BERRY_H diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h new file mode 100644 index 0000000000..4029132e81 --- /dev/null +++ b/include/global.fieldmap.h @@ -0,0 +1,389 @@ +#ifndef GUARD_GLOBAL_FIELDMAP_H +#define GUARD_GLOBAL_FIELDMAP_H + +enum +{ + CONNECTION_SOUTH = 1, + CONNECTION_NORTH, + CONNECTION_WEST, + CONNECTION_EAST, + CONNECTION_DIVE, + CONNECTION_EMERGE +}; + +// map types +enum +{ + MAP_TYPE_0, + MAP_TYPE_TOWN, + MAP_TYPE_CITY, + MAP_TYPE_ROUTE, + MAP_TYPE_UNDERGROUND, + MAP_TYPE_UNDERWATER, + MAP_TYPE_6, + MAP_TYPE_7, + MAP_TYPE_INDOOR, + MAP_TYPE_SECRET_BASE +}; + +// map battle scenes +enum +{ + MAP_BATTLE_SCENE_NORMAL, // 0 + MAP_BATTLE_SCENE_GYM, // 1 + MAP_BATTLE_SCENE_MAGMA, // 2 + MAP_BATTLE_SCENE_AQUA, // 3 + MAP_BATTLE_SCENE_SIDNEY, // 4 + MAP_BATTLE_SCENE_PHOEBE, // 5 + MAP_BATTLE_SCENE_GLACIA, // 6 + MAP_BATTLE_SCENE_DRAKE, // 7 + MAP_BATTLE_SCENE_BATTLE_TOWER, // 8 +}; + +typedef void (*TilesetCB)(void); + +struct Tileset +{ + /*0x00*/ bool8 isCompressed; + /*0x01*/ bool8 isSecondary; + /*0x04*/ void *tiles; + /*0x08*/ void *palettes; + /*0x0c*/ void *metatiles; + /*0x10*/ void *metatileAttributes; + /*0x14*/ TilesetCB callback; +}; + +struct MapData +{ + /*0x00*/ s32 width; + /*0x04*/ s32 height; + /*0x08*/ u16 *border; + /*0x0c*/ u16 *map; + /*0x10*/ struct Tileset *primaryTileset; + /*0x14*/ struct Tileset *secondaryTileset; +}; + +struct BackupMapData +{ + s32 width; + s32 height; + u16 *map; +}; + +struct MapObjectTemplate +{ + /*0x00*/ u8 localId; + /*0x01*/ u8 graphicsId; + /*0x02*/ u8 unk2; + /*0x04*/ s16 x; + /*0x06*/ s16 y; + /*0x08*/ u8 elevation; + /*0x09*/ u8 movementType; + /*0x0A*/ u8 unkA_0:4; + u8 unkA_4:4; + ///*0x0B*/ u8 fillerB[1]; + /*0x0C*/ u16 unkC; + /*0x0E*/ u16 unkE; + /*0x10*/ u8 *script; + /*0x14*/ u16 flagId; + /*0x16*/ u8 filler_16[2]; +}; /*size = 0x18*/ + +struct WarpEvent +{ + s16 x, y; + s8 warpId; + u8 mapGroup; + u8 mapNum; + u8 unk7; +}; + +struct CoordEvent +{ + s16 x, y; + u8 unk4; + u8 filler_5; + u16 trigger; + u16 index; + u8 filler_A[0x2]; + u8 *script; +}; + +struct BgEvent +{ + u16 x, y; + u8 unk4; + u8 kind; + // 0x2 padding for the union beginning. + union { // carried over from diego's FR/LG work, seems to be the same struct + // in gen 3, "kind" (0x3 in BgEvent struct) determines the method to read the union. + u8 *script; + + // hidden item type probably + struct { + u8 filler6[0x2]; + u16 hiddenItemId; // flag offset to determine flag lookup + } hiddenItem; + + // secret base type + u32 secretBaseId; + + } bgUnion; +}; + +struct MapEvents +{ + u8 mapObjectCount; + u8 warpCount; + u8 coordEventCount; + u8 bgEventCount; + + struct MapObjectTemplate *mapObjects; + struct WarpEvent *warps; + struct CoordEvent *coordEvents; + struct BgEvent *bgEvents; +}; + +struct MapConnection +{ + /*0x00*/ u8 direction; + /*0x01*/ u32 offset; + /*0x05*/ u8 mapGroup; + /*0x06*/ u8 mapNum; +}; + +struct MapConnections +{ + s32 count; + struct MapConnection *connections; +}; + +struct MapHeader +{ + /* 0x00 */ struct MapData *mapData; + /* 0x04 */ struct MapEvents *events; + /* 0x08 */ u8 *mapScripts; + /* 0x0C */ struct MapConnections *connections; + /* 0x10 */ u16 music; + /* 0x12 */ u16 mapDataId; + /* 0x14 */ u8 regionMapSectionId; + /* 0x15 */ u8 cave; + /* 0x16 */ u8 weather; + /* 0x17 */ u8 mapType; + /* 0x18 */ u8 filler_18; + /* 0x19 */ u8 escapeRope; + /* 0x1A */ u8 flags; + /* 0x1B */ u8 battleType; +}; + +struct MapObject +{ + /*0x00*/ u32 active:1; + u32 mapobj_bit_1:1; + u32 mapobj_bit_2:1; + u32 mapobj_bit_3:1; + u32 mapobj_bit_4:1; + u32 mapobj_bit_5:1; + u32 mapobj_bit_6:1; + u32 mapobj_bit_7:1; + /*0x01*/ u32 mapobj_bit_8:1; + u32 mapobj_bit_9:1; + u32 mapobj_bit_10:1; + u32 mapobj_bit_11:1; + u32 mapobj_bit_12:1; + u32 mapobj_bit_13:1; + u32 mapobj_bit_14:1; + u32 mapobj_bit_15:1; + /*0x02*/ u32 mapobj_bit_16:1; + u32 mapobj_bit_17:1; + u32 mapobj_bit_18:1; + u32 mapobj_bit_19:1; + u32 mapobj_bit_20:1; + u32 mapobj_bit_21:1; + u32 mapobj_bit_22:1; + u32 mapobj_bit_23:1; + /*0x03*/ u32 mapobj_bit_24:1; + u32 mapobj_bit_25:1; + u32 mapobj_bit_26:1; + u32 mapobj_bit_27:1; + u32 mapobj_bit_28:1; + u32 mapobj_bit_29:1; + u32 mapobj_bit_30:1; + u32 mapobj_bit_31:1; + /*0x04*/ u8 spriteId; + /*0x05*/ u8 graphicsId; + /*0x06*/ u8 animPattern; + /*0x07*/ u8 trainerType; + /*0x08*/ u8 localId; + /*0x09*/ u8 mapNum; + /*0x0A*/ u8 mapGroup; + /*0x0B*/ u8 mapobj_unk_0B_0:4; + u8 elevation:4; + /*0x0C*/ struct Coords16 coords1; + /*0x10*/ struct Coords16 coords2; + /*0x14*/ struct Coords16 coords3; + /*0x18*/ u8 mapobj_unk_18:4; //current direction? + /*0x18*/ u8 placeholder18:4; + /*0x19*/ u8 mapobj_unk_19; + /*0x1A*/ u8 mapobj_unk_1A; + /*0x1B*/ u8 mapobj_unk_1B; + /*0x1C*/ u8 mapobj_unk_1C; + /*0x1D*/ u8 trainerRange_berryTreeId; + /*0x1E*/ u8 mapobj_unk_1E; + /*0x1F*/ u8 mapobj_unk_1F; + /*0x20*/ u8 mapobj_unk_20; + /*0x21*/ u8 mapobj_unk_21; + /*0x22*/ u8 animId; + /*size = 0x24*/ +}; + +// THIS IS NEEDED TO MAKE TRAINER_SEE.C MATCH, PLEASE DO NOT REMOVE UNLESS YOU FIX CHECKPATHBETWEENTRAINERANDPLAYER +struct MapObject2 +{ + /*0x00*/ u32 active:1; + u32 mapobj_bit_1:1; + u32 mapobj_bit_2:1; + u32 mapobj_bit_3:1; + u32 mapobj_bit_4:1; + u32 mapobj_bit_5:1; + u32 mapobj_bit_6:1; + u32 mapobj_bit_7:1; + /*0x01*/ u32 mapobj_bit_8:1; + u32 mapobj_bit_9:1; + u32 mapobj_bit_10:1; + u32 mapobj_bit_11:1; + u32 mapobj_bit_12:1; + u32 mapobj_bit_13:1; + u32 mapobj_bit_14:1; + u32 mapobj_bit_15:1; + /*0x02*/ u32 mapobj_bit_16:1; + u32 mapobj_bit_17:1; + u32 mapobj_bit_18:1; + u32 mapobj_bit_19:1; + u32 mapobj_bit_20:1; + u32 mapobj_bit_21:1; + u32 mapobj_bit_22:1; + u32 mapobj_bit_23:1; + /*0x03*/ u32 mapobj_bit_24:1; + u32 mapobj_bit_25:1; + u32 mapobj_bit_26:1; + u32 mapobj_bit_27:1; + u32 mapobj_bit_28:1; + u32 mapobj_bit_29:1; + u32 mapobj_bit_30:1; + u32 mapobj_bit_31:1; + /*0x04*/ u8 spriteId; + /*0x05*/ u8 graphicsId; + /*0x06*/ u8 animPattern; + /*0x07*/ u8 trainerType; + /*0x08*/ u8 localId; + /*0x09*/ u8 mapNum; + /*0x0A*/ u8 mapGroup; + /*0x0B*/ u8 mapobj_unk_0B_0:4; + u8 elevation:4; + /*0x0C*/ struct Coords16 coords1; + /*0x10*/ struct Coords16 coords2; + /*0x14*/ struct Coords16 coords3; + /*0x18*/ u8 mapobj_unk_18:4; + /*0x18*/ u8 placeholder18:4; + /*0x19*/ u8 mapobj_unk_19:4; + /*0x19*/ u8 mapobj_unk_19b:4; + /*0x1A*/ u8 mapobj_unk_1A; + /*0x1B*/ u8 mapobj_unk_1B; + /*0x1C*/ u8 mapobj_unk_1C; + /*0x1D*/ u8 trainerRange_berryTreeId; + /*0x1E*/ u8 mapobj_unk_1E; + /*0x1F*/ u8 mapobj_unk_1F; + /*0x20*/ u8 mapobj_unk_20; + /*0x21*/ u8 mapobj_unk_21; + /*size = 0x24*/ +}; + +struct MapObjectGraphicsInfo +{ + /*0x00*/ u16 tileTag; + /*0x02*/ u16 paletteTag1; + /*0x04*/ u16 paletteTag2; + /*0x06*/ u16 size; + /*0x08*/ s16 width; + /*0x0A*/ s16 height; + /*0x0C*/ u8 paletteSlot:4; + u8 shadowSize:2; + u8 inanimate:1; + u8 disableReflectionPaletteLoad:1; + /*0x0D*/ u8 tracks; + /*0x10*/ const struct OamData *oam; + /*0x14*/ const struct SubspriteTable *subspriteTables; + /*0x18*/ const union AnimCmd *const *anims; + /*0x1C*/ const struct SpriteFrameImage *images; + /*0x20*/ const union AffineAnimCmd *const *affineAnims; +}; + +#define PLAYER_AVATAR_FLAG_ON_FOOT (1 << 0) +#define PLAYER_AVATAR_FLAG_MACH_BIKE (1 << 1) +#define PLAYER_AVATAR_FLAG_ACRO_BIKE (1 << 2) +#define PLAYER_AVATAR_FLAG_SURFING (1 << 3) +#define PLAYER_AVATAR_FLAG_4 (1 << 4) +#define PLAYER_AVATAR_FLAG_5 (1 << 5) +#define PLAYER_AVATAR_FLAG_6 (1 << 6) +#define PLAYER_AVATAR_FLAG_DASH (1 << 7) + +enum +{ + ACRO_BIKE_NORMAL, + ACRO_BIKE_TURNING, + ACRO_BIKE_WHEELIE_STANDING, + ACRO_BIKE_BUNNY_HOP, + ACRO_BIKE_WHEELIE_MOVING, + ACRO_BIKE_STATE5, + ACRO_BIKE_STATE6, +}; + +enum +{ + DIR_NONE, + DIR_SOUTH, + DIR_NORTH, + DIR_WEST, + DIR_EAST, +}; + +enum +{ + COLLISION_LEDGE_JUMP = 6 +}; + +struct PlayerAvatar /* 0x202E858 */ +{ + /*0x00*/ u8 flags; + /*0x01*/ u8 bike; + /*0x02*/ u8 running2; + /*0x03*/ u8 running1; + /*0x04*/ u8 spriteId; + /*0x05*/ u8 mapObjectId; + /*0x06*/ u8 unk6; + /*0x07*/ u8 gender; + u8 acroBikeState; + u8 unk9; + u8 bikeFrameCounter; + u8 unkB; + u32 unkC; + u32 unk10; + u8 unk14[8]; + u8 unk1C[8]; + // TODO: rest of struct +}; + +struct Camera +{ + bool8 field_0:1; + s32 x; + s32 y; +}; + +extern struct MapObject gMapObjects[]; +extern u8 gSelectedMapObject; +extern struct MapHeader gMapHeader; +extern struct PlayerAvatar gPlayerAvatar; + +#endif // GUARD_GLOBAL_FIELDMAP_H diff --git a/include/global.h b/include/global.h index 08ccc670b9..c43b57e038 100644 --- a/include/global.h +++ b/include/global.h @@ -75,6 +75,65 @@ enum BAG_KEYITEMS }; +struct Coords16 +{ + s16 x; + s16 y; +}; + +struct UCoords16 +{ + u16 x; + u16 y; +}; + +struct Time +{ + /*0x00*/ s16 days; + /*0x02*/ s8 hours; + /*0x03*/ s8 minutes; + /*0x04*/ s8 seconds; +}; + +struct Pokedex +{ + /*0x00*/ u8 order; + /*0x01*/ u8 unknown1; + /*0x02*/ u8 nationalMagic; // must equal 0xDA in order to have National mode + /*0x03*/ u8 unknown2; + /*0x04*/ u32 unownPersonality; // set when you first see Unown + /*0x08*/ u32 spindaPersonality; // set when you first see Spinda + /*0x0C*/ u32 unknown3; + /*0x10*/ u8 owned[52]; + /*0x44*/ u8 seen[52]; +}; + +struct PokemonJumpResults // possibly used in the game itself? +{ + u16 jumpsInRow; + u16 field2; + u16 excellentsInRow; + u16 field6; + u16 field8; + u16 fieldA; + u32 bestJumpScore; +}; + +struct BerryPickingResults // possibly used in the game itself? Size may be wrong as well +{ + u32 bestScore; + u16 berriesPicked; + u16 berriesPickedInRow; + // unk size +}; + +struct PyramidBag +{ + u16 items_Lvl50[10]; + u16 items_OpenLvl[10]; + u8 quantity[10]; +}; + struct SaveBlock2 { /*0x00*/ u8 playerName[8]; @@ -92,10 +151,572 @@ struct SaveBlock2 u16 optionsBattleStyle:1; // OPTIONS_BATTLE_STYLE_[SHIFT/SET] u16 optionsBattleSceneOff:1; // whether battle animations are disabled u16 regionMapZoom:1; // whether the map is zoomed in + /*0x18*/ struct Pokedex pokedex; + /*0x90*/ u8 filler_90[0x8]; + /*0x98*/ struct Time localTimeOffset; + /*0xA0*/ struct Time lastBerryTreeUpdate; + /*0xA8*/ u8 filler_A8[0x4]; + /*0xAC*/ u32 encryptionKey; + + // TODO: fix and verify labels + /*0xB0*/ u8 field_B0[316]; + /*0x1EC*/ u16 berryCrushResults[4]; + /*0x1F4*/ u32 berryPowderAmount; + /*0x1F8*/ u32 field_1F8; + /*0x1FC*/ struct PokemonJumpResults pokeJumpResults; + /*0x20C*/ struct BerryPickingResults berryPickResults; + /*0x214*/ u8 field_214[1040]; + /*0x624*/ u16 contestLinkResults[20]; // 4 positions for 5 categories, possibly a struct or a 2d array + + // All below could be a one giant struct + + /*0x64C*/ u8 field_64C[1629]; + /*0xCA9*/ u8 frontierChosenLvl; + /*0xCAA*/ u8 field_CAA[368]; + /*0xE1A*/ u16 battlePyramidFloor; // possibly? + /*0xE1C*/ u8 field_E1C[16]; + /*0xE2C*/ struct PyramidBag pyramidBag; + /*0x???*/ u8 field_notSure[13]; + /*0xE6E*/ u16 battleTentWinStreak; + /*0xE70*/ u8 field_E70[72]; + /*0xEB8*/ u16 frontierBattlePoints; + /*0xEBA*/ u8 field_EBA[39]; + /*0xEE1*/ u8 field_EE1; + /*0xEE2*/ u8 field_EE2[7]; + /*0xEE9*/ u8 field_EE9; + /*0xEEA*/ u8 field_EEA[22]; }; extern struct SaveBlock2 *gSaveBlock2Ptr; +struct SecretBaseRecord +{ + /*ID?*/ /*0x1A08*/ u8 sbr_field_0; + /*0x1A09*/ u8 sbr_field_1_0:4; + /*0x1A09*/ u8 gender:1; + /*0x1A09*/ u8 sbr_field_1_5:1; + /*0x1A09*/ u8 sbr_field_1_6:2; + /*0x1A0A*/ u8 sbr_field_2[7]; // 0xFF bytes? + /*0x1A12*/ u8 trainerId[4]; // byte 0 is used for determining trainer class + /*0x1A16*/ u16 sbr_field_e; + /*0x1A18*/ u8 sbr_field_10; + /*0x1A19*/ u8 sbr_field_11; + /*0x1A1A*/ u8 decorations[16]; + /*0x1A2A*/ u8 decorationPos[16]; + /*0x1A3A*/ u32 partyPersonality[6]; + /*0x1A54*/ u16 partyMoves[6 * 4]; + /*0x1A84*/ u16 partySpecies[6]; + /*0x1A90*/ u16 partyHeldItems[6]; + /*0x1A9C*/ u8 partyLevels[6]; + /*0x1AA2*/ u8 partyEVs[6]; +}; + +#include "game_stat.h" +#include "global.fieldmap.h" +#include "global.berry.h" +#include "pokemon.h" + +struct WarpData +{ + s8 mapGroup; + s8 mapNum; + s8 warpId; + s16 x, y; +}; + +struct ItemSlot +{ + u16 itemId; + u16 quantity; +}; + +struct Pokeblock +{ + u8 color; + u8 spicy; + u8 dry; + u8 sweet; + u8 bitter; + u8 sour; + u8 feel; +}; + +struct Roamer +{ + /*0x00*/ u32 ivs; + /*0x04*/ u32 personality; + /*0x08*/ u16 species; + /*0x0A*/ u16 hp; + /*0x0C*/ u8 level; + /*0x0D*/ u8 status; + /*0x0E*/ u8 cool; + /*0x0F*/ u8 beauty; + /*0x10*/ u8 cute; + /*0x11*/ u8 smart; + /*0x12*/ u8 tough; + /*0x13*/ bool8 active; + /*0x14*/ u8 filler[0x8]; +}; + +struct RamScriptData +{ + u8 magic; + u8 mapGroup; + u8 mapNum; + u8 objectId; + u8 script[995]; +}; + +struct RamScript +{ + u32 checksum; + struct RamScriptData data; +}; + +struct EasyChatPair +{ + u16 unk0_0:7; + u16 unk0_7:7; + u16 unk1_6:1; + u16 unk2; + u16 words[2]; +}; /*size = 0x8*/ + +struct TVShowCommon +{ + /*0x00*/ u8 var00; + /*0x01*/ u8 var01; + /*0x02*/ u8 pad02[20]; + /*0x16*/ u16 var16[3]; + /*0x1C*/ u8 srcTrainerId3Lo; + /*0x1D*/ u8 srcTrainerId3Hi; + /*0x1E*/ u8 srcTrainerId2Lo; + /*0x1F*/ u8 srcTrainerId2Hi; + /*0x20*/ u8 srcTrainerIdLo; + /*0x21*/ u8 srcTrainerIdHi; + /*0x22*/ u8 trainerIdLo; + /*0x23*/ u8 trainerIdHi; +}; + +struct TVShowFanClubLetter +{ + /*0x00*/ u8 var00; + /*0x01*/ u8 var01; + /*0x02*/ u16 species; + /*0x04*/ u16 pad04[6]; + /*0x10*/ u8 playerName[8]; + /*0x18*/ u8 language; +}; + +struct TVShowRecentHappenings +{ + /*0x00*/ u8 var00; + /*0x01*/ u8 var01; + /*0x02*/ u16 var02; + /*0x04*/ u16 var04[6]; + /*0x10*/ u8 playerName[8]; + /*0x18*/ u8 language; + /*0x19*/ u8 pad19[10]; +}; + +struct TVShowFanclubOpinions +{ + /*0x00*/ u8 var00; + /*0x01*/ u8 var01; + /*0x02*/ u16 var02; + /*0x04*/ u8 var04A:4; + /*0x04*/ u8 var04B:4; + /*0x05*/ u8 playerName[8]; + /*0x0D*/ u8 language; + /*0x0E*/ u8 var0E; + /*0x0F*/ u8 var0F; + /*0x10*/ u8 var10[8]; + /*0x18*/ u16 var18[2]; + /*0x1C*/ u16 var1C[4]; +}; + +struct TVShowUnknownType04 +{ + /*0x00*/ u8 var00; + /*0x01*/ u8 var01; + /*0x02*/ u8 pad02[4]; + /*0x06*/ u16 var06; +}; + +struct TVShowNameRaterShow +{ + /*0x00*/ u8 var00; + /*0x01*/ u8 var01; + /*0x02*/ u16 species; + /*0x04*/ u8 pokemonName[11]; + /*0x0F*/ u8 trainerName[11]; + /*0x1A*/ u8 random; + /*0x1B*/ u8 random2; + /*0x1C*/ u16 var1C; + /*0x1E*/ u8 language; + /*0x1F*/ u8 pokemonNameLanguage; +}; + +struct TVShowBravoTrainerPokemonProfiles +{ + /*0x00*/ u8 var00; + /*0x01*/ u8 var01; + /*0x02*/ u16 species; + /*0x04*/ u16 var04[2]; + /*0x08*/ u8 pokemonNickname[11]; + /*0x13*/ u8 contestCategory:3; + /*0x13*/ u8 contestRank:2; + /*0x13*/ u8 contestResult:2; + /*0x13*/ u8 var13_7:1; + /*0x14*/ u16 var14; + /*0x16*/ u8 playerName[8]; + /*0x1E*/ u8 language; + /*0x1F*/ u8 var1f; +}; + +struct TVShowBravoTrainerBattleTowerSpotlight +{ + /*0x00*/ u8 var00; + /*0x01*/ u8 var01; + /*0x02*/ u8 trainerName[8]; + /*0x0A*/ u16 species; + /*0x0C*/ u8 pokemonName[8]; + /*0x14*/ u16 defeatedSpecies; + /*0x16*/ u16 var16; + /*0x18*/ u16 var18[1]; + /*0x1A*/ u8 btLevel; + /*0x1B*/ u8 var1b; + /*0x1C*/ u8 var1c; + /*0x1D*/ u8 language; +}; + +struct TVShowPokemonToday +{ + /*0x00*/ u8 var00; + /*0x01*/ u8 var01; + /*0x02*/ u8 language; + /*0x03*/ u8 language2; + /*0x04*/ u8 nickname[11]; + /*0x0F*/ u8 ball; + /*0x10*/ u16 species; + /*0x12*/ u8 var12; + /*0x13*/ u8 playerName[8]; +}; + +struct TVShowSmartShopper +{ + /*0x00*/ u8 var00; + /*0x01*/ u8 var01; + /*0x02*/ u8 priceReduced; + /*0x03*/ u8 language; + /*0x04*/ u8 pad04[2]; + /*0x06*/ u16 itemIds[3]; + /*0x0C*/ u16 itemAmounts[3]; + /*0x12*/ u8 shopLocation; + /*0x13*/ u8 playerName[8]; +}; + +struct TVShowPokemonTodayFailed +{ + /*0x00*/ u8 var00; + /*0x01*/ u8 var01; + /*0x02*/ u8 language; + /*0x03*/ u8 pad03[9]; + /*0x0c*/ u16 species; + /*0x0e*/ u16 species2; + /*0x10*/ u8 var10; + /*0x11*/ u8 var11; + /*0x12*/ u8 var12; + /*0x13*/ u8 playerName[8]; +}; + +struct TVShowPokemonAngler +{ + /*0x00*/ u8 var00; + /*0x01*/ u8 var01; + /*0x02*/ u8 var02; + /*0x03*/ u8 var03; + /*0x04*/ u16 var04; + /*0x06*/ u8 language; + u8 pad07[12]; + /*0x13*/ u8 playerName[8]; +}; + +struct TVShowWorldOfMasters +{ + /*0x00*/ u8 var00; + /*0x01*/ u8 var01; + /*0x02*/ u16 var02; + /*0x04*/ u16 var04; + /*0x06*/ u16 var06; + /*0x08*/ u16 var08; + /*0x0a*/ u8 var0a; + /*0x0b*/ u8 language; + u8 pad0c[7]; + /*0x13*/ u8 playerName[8]; +}; + +struct TVShowMassOutbreak +{ + /*0x00*/ u8 var00; + /*0x01*/ u8 var01; + /*0x02*/ u8 var02; + /*0x03*/ u8 var03; + /*0x04*/ u16 moves[4]; + /*0x0C*/ u16 species; + /*0x0E*/ u16 var0E; + /*0x10*/ u8 locationMapNum; + /*0x11*/ u8 locationMapGroup; + /*0x12*/ u8 var12; + /*0x13*/ u8 probability; + /*0x14*/ u8 level; + /*0x15*/ u8 var15; + /*0x16*/ u16 var16; + /*0x18*/ u8 language; + u8 pad19[11]; +}; + +typedef union TVShow +{ + struct TVShowCommon common; + struct TVShowFanClubLetter fanclubLetter; + struct TVShowRecentHappenings recentHappenings; + struct TVShowFanclubOpinions fanclubOpinions; + struct TVShowUnknownType04 unkShow04; + struct TVShowNameRaterShow nameRaterShow; + struct TVShowBravoTrainerPokemonProfiles bravoTrainer; + struct TVShowBravoTrainerBattleTowerSpotlight bravoTrainerTower; + struct TVShowPokemonToday pokemonToday; + struct TVShowSmartShopper smartshopperShow; + struct TVShowPokemonTodayFailed pokemonTodayFailed; + struct TVShowPokemonAngler pokemonAngler; + struct TVShowWorldOfMasters worldOfMasters; + struct TVShowMassOutbreak massOutbreak; +} TVShow; + +struct MailStruct +{ + /*0x00*/ u16 words[9]; + /*0x12*/ u8 playerName[8]; + /*0x1A*/ u8 trainerId[4]; + /*0x1E*/ u16 species; + /*0x20*/ u16 itemId; +}; + +struct UnkMauvilleOldManStruct +{ + u8 unk_2D94; + u8 unk_2D95; + /*0x2D96*/ u16 mauvilleOldMan_ecArray[6]; + /*0x2DA2*/ u16 mauvilleOldMan_ecArray2[6]; + /*0x2DAE*/ u8 playerName[8]; + /*0x2DB6*/ u8 filler_2DB6[0x3]; + /*0x2DB9*/ u8 playerTrainerId[4]; + u8 unk_2DBD; +}; /*size = 0x2C*/ + +struct UnkMauvilleOldManStruct2 +{ + u8 filler0; + u8 unk1; + u8 unk2; + u16 mauvilleOldMan_ecArray[10]; + u8 mauvilleOldMan_ecArray2[12]; + u8 fillerF[0x2]; +}; /*size = 0x2C*/ + +struct MauvilleOldManTrader +{ + u8 unk0; + u8 unk1[4]; + u8 unk5[4][11]; + u8 unk31; +}; + +typedef union OldMan +{ + struct UnkMauvilleOldManStruct oldMan1; + struct UnkMauvilleOldManStruct2 oldMan2; + struct MauvilleOldManTrader trader; + u8 filler[0x40]; +} OldMan; + +struct UnknownSaveStruct2ABC +{ + u8 val0; + u8 val1; + u16 val2; +}; + +struct GabbyAndTyData +{ + /*2b10*/ u16 mon1; + /*2b12*/ u16 mon2; + /*2b14*/ u16 lastMove; + /*2b16*/ u16 quote; + /*2b18*/ u8 mapnum; + /*2b19*/ u8 battleNum; + /*2b1a*/ u8 valA_0:1; + /*2b1a*/ u8 valA_1:1; + /*2b1a*/ u8 valA_2:1; + /*2b1a*/ u8 valA_3:1; + /*2b1a*/ u8 valA_4:1; + /*2b1a*/ u8 valA_5:3; + /*2b1b*/ u8 valB_0:1; + /*2b1b*/ u8 valB_1:1; + /*2b1b*/ u8 valB_2:1; + /*2b1b*/ u8 valB_3:1; + /*2b1b*/ u8 valB_4:1; + /*2b1b*/ u8 valB_5:3; +}; + +struct RecordMixing_UnknownStructSub +{ + u32 unk0; + u8 data[0x34]; + //u8 data[0x38]; +}; + +struct RecordMixing_UnknownStruct +{ + struct RecordMixing_UnknownStructSub data[2]; + u32 unk70; + u16 unk74[0x2]; +}; + +struct LinkBattleRecord +{ + u8 name[8]; + u16 trainerId; + u16 wins; + u16 losses; + u16 draws; +}; + +struct RecordMixingGiftData +{ + u8 unk0; + u8 quantity; + u16 itemId; + u8 filler4[8]; +}; + +struct RecordMixingGift +{ + int checksum; + struct RecordMixingGiftData data; +}; + +struct ContestWinner +{ + u32 personality; + u32 trainerId; + u16 species; + u8 contestCategory; + u8 monName[11]; + u8 trainerName[8]; + u8 contestRank; +}; + +#define FLAGS_NUMBER 300 +#define VARS_NUMBER 256 + +struct SaveBlock1 +{ + /*0x00*/ struct Coords16 pos; + /*0x04*/ struct WarpData location; + /*0x0C*/ struct WarpData warp1; + /*0x14*/ struct WarpData warp2; + /*0x1C*/ struct WarpData warp3; + /*0x24*/ struct WarpData warp4; + /*0x2C*/ u16 battleMusic; + /*0x2E*/ u8 weather; + /*0x2F*/ u8 filler_2F; + /*0x30*/ u8 flashUsed; + /*0x32*/ u16 mapDataId; + /*0x34*/ u16 mapView[0x100]; + /*0x234*/ u8 playerPartyCount; + /*0x238*/ struct Pokemon playerParty[6]; + /*0x490*/ u32 money; + /*0x494*/ u16 coins; + /*0x496*/ u16 registeredItem; // registered for use with SELECT button + /*0x498*/ struct ItemSlot pcItems[50]; + /*0x560*/ struct ItemSlot bagPocket_Items[30]; + /*0x5D8*/ struct ItemSlot bagPocket_KeyItems[30]; + /*0x650*/ struct ItemSlot bagPocket_PokeBalls[16]; + /*0x690*/ struct ItemSlot bagPocket_TMHM[64]; + /*0x790*/ struct ItemSlot bagPocket_Berries[46]; + /*0x848*/ struct Pokeblock pokeblocks[40]; + /*0x988*/ u8 seen1[52]; + /*0x9BC*/ u16 berryBlenderRecords[3]; + /*0x9C2*/ u8 field_9C2[6]; + /*0x9C8*/ u16 trainerRematchStepCounter; + /*0x9CA*/ u8 trainerRematches[100]; + /*0xA30*/ struct MapObject mapObjects[16]; + /*0xC70*/ struct MapObjectTemplate mapObjectTemplates[64]; + /*0x1270*/ u8 flags[FLAGS_NUMBER]; + /*0x139C*/ u16 vars[VARS_NUMBER]; + /*0x159C*/ u32 gameStats[NUM_GAME_STATS]; + /*0x169C*/ struct BerryTree berryTrees[128]; + /*0x1A9C*/ struct SecretBaseRecord secretBases[20]; + /*0x271C*/ u8 playerRoomDecor[12]; + /*0x2728*/ u8 playerRoomDecorPos[12]; + /*0x2734*/ u8 decorDesk[10]; + /*0x????*/ u8 decorChair[10]; + /*0x????*/ u8 decorPlant[10]; + /*0x????*/ u8 decorOrnament[30]; + /*0x????*/ u8 decorMat[30]; + /*0x????*/ u8 decorPoster[10]; + /*0x????*/ u8 decorDoll[40]; + /*0x????*/ u8 decorCushion[10]; + /*0x27CA*/ u8 padding_27CA[2]; + /*0x27CC*/ TVShow tvShows[25]; + /*0x2B50*/ struct UnknownSaveStruct2ABC pokeNews[16]; + /*0x2B90*/ u16 outbreakPokemonSpecies; + /*0x????*/ u8 outbreakLocationMapNum; + /*0x????*/ u8 outbreakLocationMapGroup; + /*0x????*/ u8 outbreakPokemonLevel; + /*0x????*/ u8 outbreakUnk1; + /*0x????*/ u16 outbreakUnk2; + /*0x????*/ u16 outbreakPokemonMoves[4]; + /*0x????*/ u8 outbreakUnk4; + /*0x????*/ u8 outbreakPokemonProbability; + /*0x????*/ u16 outbreakUnk5; + /*0x2BA4*/ struct GabbyAndTyData gabbyAndTyData; + /*0x????*/ u16 unk2B1C[6]; + /*0x????*/ u16 unk2B28[6]; + /*0x????*/ u16 unk2B34[6]; + /*0x????*/ u16 unk2B40[6]; + /*0x2BE0*/ struct MailStruct mail[16]; + /*0x2E20*/ u8 additionalPhrases; // bitfield for 33 additional phrases in easy chat system + /*0x2E25*/ u8 unk2E25[3]; // possibly padding? + /*0x2E28*/ OldMan oldMan; + /*0x2e64*/ struct EasyChatPair easyChatPairs[5]; //Dewford trend [0] and some other stuff + /*0x2e8c*/ u8 filler_2E8C[0x4]; + /*0x2e90*/ struct ContestWinner contestWinners[13]; // 0 - 5 used in contest hall, 6 - 7 unused?, 8 - 12 museum + + // TODO: fix + + /*0x????*/ struct BoxPokemon daycareData[2]; + /*0x????*/ struct RecordMixing_UnknownStruct filler_303C; + /*0x????*/ u8 filler_30B4[0x2]; + /*0x????*/ u8 filler_30B6; + /*0x????*/ u8 filler_30B7[1]; + /*0x????*/ struct LinkBattleRecord linkBattleRecords[5]; + /*0x????*/ u8 filler_3108[8]; + + /*0x31A8*/ u8 giftRibbons[52]; + /*0x31DC*/ struct Roamer roamer; + /*0x31F8*/ struct EnigmaBerry enigmaBerry; + + // TODO: fix + /*0x????*/ struct RamScript ramScript; + /*0x????*/ struct RecordMixingGift recordMixingGift; + /*0x????*/ u8 unk3A8C[52]; //pokedex related +}; + +extern struct SaveBlock1* gSaveBlock1Ptr; + struct Bitmap // TODO: Find a better spot for this { u8* pixels; diff --git a/include/item.h b/include/item.h new file mode 100644 index 0000000000..eaefa02989 --- /dev/null +++ b/include/item.h @@ -0,0 +1,62 @@ +#ifndef ITEM_H +#define ITEM_H + +typedef void (*ItemUseFunc)(u8); + +struct Item +{ + u8 name[14]; + u16 itemId; + u16 price; + u8 holdEffect; + u8 holdEffectParam; + const u8 *description; + u8 importance; + u8 unk19; + u8 pocket; + u8 type; + ItemUseFunc fieldUseFunc; + u8 battleUsage; + ItemUseFunc battleUseFunc; + u8 secondaryId; +}; + +struct BagPocket +{ + struct ItemSlot *itemSlots; + u8 capacity; +}; + +extern struct BagPocket gBagPockets[]; + +void GetBerryCountString(u8* dst, const u8* berryName, u32 quantity); +void CopyItemName(u16 itemId, u8 *string); +bool8 IsBagPocketNonEmpty(u8 pocket); +bool8 CheckBagHasItem(u16 itemId, u16 count); +bool8 CheckBagHasSpace(u16 itemId, u16 count); +bool8 AddBagItem(u16 itemId, u16 count); +bool8 RemoveBagItem(u16 itemId, u16 count); +u8 GetPocketByItemId(u16 itemId); +void ClearItemSlots(struct ItemSlot *itemSlots, u8 b); +u8 CountUsedPCItemSlots(void); +bool8 CheckPCHasItem(u16 itemId, u16 count); +bool8 AddPCItem(u16 itemId, u16 count); +void RemovePCItem(u8 index, u16 count); +void SwapRegisteredBike(void); +const struct Item *ItemId_GetItem(u16 itemId); +u16 ItemId_GetId(u16 itemId); +u16 ItemId_GetPrice(u16 itemId); +u8 ItemId_GetHoldEffect(u16 itemId); +u8 ItemId_GetHoldEffectParam(u16 itemId); +const u8 *ItemId_GetDescription(u16 itemId); +bool32 ItemId_CopyDescription(u8 *a, u32 itemId, u32 c); +u8 ItemId_GetImportance(u16 itemId); +u8 ItemId_GetUnknownValue(u16 itemId); +u8 ItemId_GetPocket(u16 itemId); +u8 ItemId_GetType(u16 itemId); +ItemUseFunc ItemId_GetFieldFunc(u16 itemId); +u8 ItemId_GetBattleUsage(u16 itemId); +ItemUseFunc ItemId_GetBattleFunc(u16 itemId); +u8 ItemId_GetSecondaryId(u16 itemId); + +#endif // ITEM_H diff --git a/include/malloc.h b/include/malloc.h new file mode 100644 index 0000000000..bd870ede30 --- /dev/null +++ b/include/malloc.h @@ -0,0 +1,8 @@ +#ifndef GUARD_MALLOC_H +#define GUARD_MALLOC_H + +void *Alloc(u32 size); +void *AllocZeroed(u32 size); +void Free(void *pointer); + +#endif // GUARD_MALLOC_H diff --git a/include/new_game.h b/include/new_game.h new file mode 100644 index 0000000000..00ab55d709 --- /dev/null +++ b/include/new_game.h @@ -0,0 +1,12 @@ +#ifndef GUARD_NEW_GAME_H +#define GUARD_NEW_GAME_H + +void WriteUnalignedWord(u32 var, u8 *dataPtr); +void CopyUnalignedWord(u8 *copyTo, u8 *copyFrom); +void InitPlayerTrainerId(void); +void SetDefaultOptions(void); +void ClearPokedexFlags(void); +void WarpToTruck(void); +void NewGameInitData(void); + +#endif // GUARD_NEW_GAME_H diff --git a/include/play_time.h b/include/play_time.h new file mode 100644 index 0000000000..49091f4b1e --- /dev/null +++ b/include/play_time.h @@ -0,0 +1,10 @@ +#ifndef GUARD_PLAY_TIME_H +#define GUARD_PLAY_TIME_H + +void PlayTimeCounter_Reset(void); +void PlayTimeCounter_Start(void); +void PlayTimeCounter_Stop(void); +void PlayTimeCounter_Update(void); +void PlayTimeCounter_SetToMax(void); + +#endif // GUARD_PLAY_TIME_H diff --git a/include/pokemon.h b/include/pokemon.h index b3381a4b03..299a253911 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -1,3 +1,6 @@ +#ifndef GUARD_POKEMON_H +#define GUARD_POKEMON_H + #define MON_DATA_PERSONALITY 0 #define MON_DATA_OT_ID 1 #define MON_DATA_NICKNAME 2 @@ -308,4 +311,6 @@ struct BattleMove // u32 GetMonData(struct Pokemon *mon, s32 field, u8 *data); u32 GetMonData(); -u8 pokemon_species_get_gender_info(u16 species, u32 personality); \ No newline at end of file +u8 pokemon_species_get_gender_info(u16 species, u32 personality); + +#endif // GUARD_POKEMON_H diff --git a/include/rtc.h b/include/rtc.h index fdc5ad7092..5ee6a53166 100644 --- a/include/rtc.h +++ b/include/rtc.h @@ -22,7 +22,7 @@ extern struct Time gLocalTime; void RtcDisableInterrupts(void); void RtcRestoreInterrupts(void); u32 ConvertBcdToBinary(u8 bcd); -bool8 IsLeapYear(u8 year); +bool8 IsLeapYear(u32 year); u16 ConvertDateToDayCount(u8 year, u8 month, u8 day); u16 RtcGetDayCount(struct SiiRtcInfo *rtc); void RtcInit(void); diff --git a/include/save.h b/include/save.h new file mode 100644 index 0000000000..1d7fdd6e38 --- /dev/null +++ b/include/save.h @@ -0,0 +1,92 @@ +#ifndef GUARD_SAVE_H +#define GUARD_SAVE_H + +struct SaveSectionLocation +{ + void *data; + u16 size; +}; + +struct SaveSection +{ + u8 data[0xFF4]; + u16 id; + u16 checksum; + u32 security; + u32 counter; +}; // size is 0x1000 + +// headless save section? +struct UnkSaveSection +{ + u8 data[0xFF4]; + u32 security; +}; // size is 0xFF8 + +struct SaveSectionOffsets +{ + u16 toAdd; + u16 size; +}; + +// Emerald changes this definition to be the sectors per slot. +#define NUM_SECTORS_PER_SLOT 16 // move to save.h + +#define UNKNOWN_CHECK_VALUE 0x8012025 + +// SetDamagedSectorBits states +enum +{ + ENABLE, + DISABLE, + CHECK // unused +}; + +// Do save types +enum +{ + NORMAL_SAVE, + LINK_SAVE, + //EREADER_SAVE, // depreciated in Emerald + LINK2_SAVE, // unknown 2nd link save + HOF_SAVE, + DIFFERENT_FILE_SAVE, + HOF_DELETE_SAVE // unused +}; + +void ClearSaveData(void); +void ResetSaveCounters(void); +//bool32 ManipulateSectorBits(u8 op, u8 bit); +//u8 save_write_to_flash(u16 a1, const struct SaveSectionLocation *a2); +u8 HandleWriteSector(u16, const struct SaveSectionLocation *); +//u8 HandleWriteSectorNBytes(u8 sector, u8 *data, u16 size); +u8 TryWriteSector(u8, u8 *); +//u32 RestoreSaveBackupVarsAndIncrement(const struct SaveSectionLocation *location); +//u32 RestoreSaveBackupVars(const struct SaveSectionLocation *location); +//u8 sub_812550C(u16 a1, const struct SaveSectionLocation *location); +u8 sub_8152A34(u16 a1, const struct SaveSectionLocation *location); +u8 ClearSaveData_2(u16, const struct SaveSectionLocation *location); +//u8 sub_8125758(u16 a1, const struct SaveSectionLocation *location); +//u8 sub_81257F0(u16 a1, const struct SaveSectionLocation *location); +//u8 sub_812587C(u16 a1, const struct SaveSectionLocation *location); +u8 sub_8152E10(u16, const struct SaveSectionLocation *location); +u8 GetSaveValidStatus(const struct SaveSectionLocation *location); +//u8 sub_8125B88(u8 a1, u8 *data, u16 size); +u8 DoReadFlashWholeSection(u8, struct SaveSection *); +u16 CalculateChecksum(void *, u16); +//u8 HandleSavingData(u8 saveType); +//u8 TrySavingData(u8 saveType); +//u8 sub_8125D80(void); +//bool8 sub_8125DA8(void); +//u8 sub_8125DDC(void); +//u8 sub_8125E04(void); +//u8 sub_8125E2C(void); +//bool8 sub_8125E6C(void); +//u8 sub_8125EC8(u8 a1); +//bool8 unref_sub_8125F4C(struct UnkSaveSection *a1); +//u8 unref_sub_8125FA0(void); +//u8 unref_sub_8125FF0(u8 *data, u16 size); +//u8 unref_sub_8126068(u8 sector, u8 *data, u32 size); +//u8 unref_sub_8126080(u8 sector, u8 *data); + +#endif // GUARD_SAVE_H diff --git a/include/songs.h b/include/songs.h new file mode 100644 index 0000000000..afd26d683e --- /dev/null +++ b/include/songs.h @@ -0,0 +1,374 @@ +#ifndef GUARD_SONGS_H +#define GUARD_SONGS_H + +enum +{ + /*0x00*/ SE_STOP, + /*0x01*/ SE_KAIFUKU, + /*0x02*/ SE_PC_LOGON, + /*0x03*/ SE_PC_OFF, + /*0x04*/ SE_PC_ON, + /*0x05*/ SE_SELECT, + /*0x06*/ SE_WIN_OPEN, + /*0x07*/ SE_WALL_HIT, + /*0x08*/ SE_DOOR, + /*0x09*/ SE_KAIDAN, + /*0x0A*/ SE_DANSA, + /*0x0B*/ SE_JITENSYA, + /*0x0C*/ SE_KOUKA_L, + /*0x0D*/ SE_KOUKA_M, + /*0x0E*/ SE_KOUKA_H, + /*0x0F*/ SE_BOWA2, + /*0x10*/ SE_POKE_DEAD, + /*0x11*/ SE_NIGERU, + /*0x12*/ SE_JIDO_DOA, + /*0x13*/ SE_NAMINORI, + /*0x14*/ SE_BAN, + /*0x15*/ SE_PIN, + /*0x16*/ SE_BOO, + /*0x17*/ SE_BOWA, + /*0x18*/ SE_JYUNI, + /*0x19*/ SE_A, + /*0x1A*/ SE_I, + /*0x1B*/ SE_U, + /*0x1C*/ SE_E, + /*0x1D*/ SE_O, + /*0x1E*/ SE_N, + /*0x1F*/ SE_SEIKAI, + /*0x20*/ SE_HAZURE, + /*0x21*/ SE_EXP, + /*0x22*/ SE_JITE_PYOKO, + /*0x23*/ SE_MU_PACHI, + /*0x24*/ SE_TK_KASYA, + /*0x25*/ SE_FU_ZAKU, + /*0x26*/ SE_FU_ZAKU2, + /*0x27*/ SE_FU_ZUZUZU, + /*0x28*/ SE_RU_GASHIN, + /*0x29*/ SE_RU_GASYAN, + /*0x2A*/ SE_RU_BARI, + /*0x2B*/ SE_RU_HYUU, + /*0x2C*/ SE_KI_GASYAN, + /*0x2D*/ SE_TK_WARPIN, + /*0x2E*/ SE_TK_WARPOUT, + /*0x2F*/ SE_TU_SAA, + /*0x30*/ SE_HI_TURUN, + /*0x31*/ SE_TRACK_MOVE, + /*0x32*/ SE_TRACK_STOP, + /*0x33*/ SE_TRACK_HAIK, + /*0x34*/ SE_TRACK_DOOR, + /*0x35*/ SE_MOTER, + /*0x36*/ SE_CARD, + /*0x37*/ SE_SAVE, + /*0x38*/ SE_KON, + /*0x39*/ SE_KON2, + /*0x3A*/ SE_KON3, + /*0x3B*/ SE_KON4, + /*0x3C*/ SE_SUIKOMU, + /*0x3D*/ SE_NAGERU, + SE_TOY_C, + SE_TOY_D, + SE_TOY_E, + SE_TOY_F, + SE_TOY_G, + SE_TOY_A, + SE_TOY_B, + SE_TOY_C1, + SE_MIZU, + SE_HASHI, + SE_DAUGI, + SE_PINPON, + SE_FUUSEN1, + SE_FUUSEN2, + SE_FUUSEN3, + SE_TOY_KABE, + SE_TOY_DANGO, + SE_DOKU, + SE_ESUKA, + SE_T_AME, + SE_T_AME_E, + SE_T_OOAME, + SE_T_OOAME_E, + SE_T_KOAME, + SE_T_KOAME_E, + SE_T_KAMI, + SE_T_KAMI2, + SE_ELEBETA, + /*0x5A*/ SE_HINSI, + /*0x5B*/ SE_EXPMAX, + /*0x5C*/ SE_TAMAKORO, + /*0x5D*/ SE_TAMAKORO_E, + /*0x5E*/ SE_BASABASA, + /*0x5F*/ SE_REGI, + SE_C_GAJI, + SE_C_MAKU_U, + SE_C_MAKU_D, + SE_C_PASI, + SE_C_SYU, + SE_C_PIKON, + /*0x66*/ SE_REAPOKE, + /*0x67*/ SE_OP_BASYU, + /*0x68*/ SE_BT_START, + SE_DENDOU, + SE_JIHANKI, + SE_TAMA, + SE_Z_SCROLL, + /*0x6D*/ SE_Z_PAGE, + /*0x6E*/ SE_PN_ON, + /*0x6F*/ SE_PN_OFF, + /*0x70*/ SE_Z_SEARCH, + /*0x71*/ SE_TAMAGO, + /*0x72*/ SE_TB_START, + /*0x73*/ SE_TB_KON, + /*0x74*/ SE_TB_KARA, + /*0x75*/ SE_BIDORO, + /*0x76*/ SE_W085, + /*0x77*/ SE_W085B, + /*0x78*/ SE_W231, + /*0x79*/ SE_W171, + /*0x7A*/ SE_W233, + /*0x7B*/ SE_W233B, + /*0x7C*/ SE_W145, + /*0x7D*/ SE_W145B, + /*0x7E*/ SE_W145C, + /*0x7F*/ SE_W240, + /*0x80*/ SE_W015, + /*0x81*/ SE_W081, + /*0x82*/ SE_W081B, + /*0x83*/ SE_W088, + /*0x84*/ SE_W016, + /*0x85*/ SE_W016B, + /*0x86*/ SE_W003, + /*0x87*/ SE_W104, + /*0x88*/ SE_W013, + /*0x89*/ SE_W196, + /*0x8A*/ SE_W086, + /*0x8B*/ SE_W004, + /*0x8C*/ SE_W025, + /*0x8D*/ SE_W025B, + SE_W152, + SE_W026, + SE_W172, + SE_W172B, + SE_W053, + SE_W007, + SE_W092, + SE_W221, + SE_W221B, + SE_W052, + SE_W036, + SE_W059, + SE_W059B, + SE_W010, + SE_W011, + SE_W017, + SE_W019, + SE_W028, + SE_W013B, + SE_W044, + SE_W029, + SE_W057, + SE_W056, + SE_W250, + SE_W030, + SE_W039, + SE_W054, + SE_W077, + SE_W020, + SE_W082, + SE_W047, + SE_W195, + SE_W006, + SE_W091, + SE_W146, + SE_W120, + SE_W153, + SE_W071B, + SE_W071, + SE_W103, + /*0xB6*/ SE_W062, + /*0xB7*/ SE_W062B, + /*0xB8*/ SE_W048, + /*0xB9*/ SE_W187, + /*0xBA*/ SE_W118, + /*0xBB*/ SE_W155, + /*0xBC*/ SE_W122, + /*0xBD*/ SE_W060, + /*0xBE*/ SE_W185, + /*0xBF*/ SE_W014, + /*0xC0*/ SE_W043, + /*0xC1*/ SE_W207, + /*0xC2*/ SE_W207B, + /*0xC3*/ SE_W215, + /*0xC4*/ SE_W109, + /*0xC5*/ SE_W173, + /*0xC6*/ SE_W280, + /*0xC7*/ SE_W202, + /*0xC8*/ SE_W060B, + /*0xC9*/ SE_W076, + /*0xCA*/ SE_W080, + /*0xCB*/ SE_W100, + /*0xCC*/ SE_W107, + SE_W166, + SE_W129, + SE_W115, + SE_W112, + SE_W197, + SE_W199, + SE_W236, + SE_W204, + SE_W268, + SE_W070, + SE_W063, + SE_W127, + SE_W179, + SE_W151, + SE_W201, + SE_W161, + SE_W161B, + SE_W227, + SE_W227B, + SE_W226, + SE_W208, + SE_W213, + SE_W213B, + SE_W234, + SE_W260, + SE_W328, + SE_W320, + SE_W255, + SE_W291, + SE_W089, + SE_W239, + SE_W230, + SE_W281, + SE_W327, + SE_W287, + SE_W257, + SE_W253, + SE_W258, + SE_W322, + SE_W298, + SE_W287B, + SE_W114, + SE_W063B, + BGM_STOP = 349, + BGM_TETSUJI, + BGM_FIELD13, + BGM_KACHI22, + BGM_KACHI2, + BGM_KACHI3, + BGM_KACHI5, + BGM_PCC, + BGM_NIBI, + BGM_SUIKUN, + BGM_DOORO1, + BGM_DOORO_X1, + BGM_DOORO_X3, + BGM_MACHI_S2, + BGM_MACHI_S4, + BGM_GIM, + BGM_NAMINORI, + BGM_DAN01, + /*0x16F*/ BGM_FANFA1, + /*0x170*/ BGM_ME_ASA, + /*0x171*/ BGM_ME_BACHI, + /*0x172*/ BGM_FANFA4, + /*0x173*/ BGM_FANFA5, + /*0x174*/ BGM_ME_WAZA, + /*0x175*/ BGM_BIJYUTU, + /*0x176*/ BGM_DOORO_X4, + /*0x177*/ BGM_FUNE_KAN, + /*0x178*/ BGM_ME_SHINKA, + /*0x179*/ BGM_SHINKA, + /*0x17A*/ BGM_ME_WASURE, + /*0x17B*/ BGM_SYOUJOEYE, + /*0x17C*/ BGM_BOYEYE, + /*0x17D*/ BGM_DAN02, + /*0x17E*/ BGM_MACHI_S3, + /*0x17F*/ BGM_ODAMAKI, + /*0x180*/ BGM_B_TOWER, + /*0x181*/ BGM_SWIMEYE, + /*0x182*/ BGM_DAN03, + /*0x183*/ BGM_ME_KINOMI, + /*0x184*/ BGM_ME_TAMA, + /*0x185*/ BGM_ME_B_BIG, + /*0x186*/ BGM_ME_B_SMALL, + /*0x187*/ BGM_ME_ZANNEN, + /*0x188*/ BGM_BD_TIME, + /*0x189*/ BGM_TEST1, + /*0x18A*/ BGM_TEST2, + /*0x18B*/ BGM_TEST3, + /*0x18C*/ BGM_TEST4, + /*0x18D*/ BGM_TEST, + /*0x18E*/ BGM_GOMACHI0, + /*0x18F*/ BGM_GOTOWN, + /*0x190*/ BGM_POKECEN, + /*0x191*/ BGM_NEXTROAD, + /*0x192*/ BGM_GRANROAD, + /*0x193*/ BGM_CYCLING, + BGM_FRIENDLY, + BGM_MISHIRO, + BGM_TOZAN, + BGM_GIRLEYE, + BGM_MINAMO, + BGM_ASHROAD, + BGM_EVENT0, + BGM_DEEPDEEP, + BGM_KACHI1, + BGM_TITLE3, + BGM_DEMO1, + BGM_GIRL_SUP, + BGM_HAGESHII, + BGM_KAKKOII, + BGM_KAZANBAI, + BGM_AQA_0, + BGM_TSURETEK, + BGM_BOY_SUP, + BGM_RAINBOW, + BGM_AYASII, + BGM_KACHI4, + BGM_ROPEWAY, + BGM_CASINO, + BGM_HIGHTOWN, + BGM_SAFARI, + BGM_C_ROAD, + BGM_AJITO, + BGM_M_BOAT, + BGM_M_DUNGON, + BGM_FINECITY, + BGM_MACHUPI, + BGM_P_SCHOOL, + BGM_DENDOU, + BGM_TONEKUSA, + BGM_MABOROSI, + BGM_CON_FAN, + BGM_CONTEST0, + BGM_MGM0, + BGM_T_BATTLE, + BGM_OOAME, + BGM_HIDERI, + BGM_RUNECITY, + BGM_CON_K, + BGM_EIKOU_R, + BGM_KARAKURI, + BGM_HUTAGO, + BGM_SITENNOU, + BGM_YAMA_EYE, + BGM_CONLOBBY, + BGM_INTER_V, + BGM_DAIGO, + BGM_THANKFOR, + BGM_END, + BGM_BATTLE27, // wild + BGM_BATTLE31, // aqua/magma grunt + BGM_BATTLE20, // trainer + BGM_BATTLE32, // gym leader + BGM_BATTLE33, // champion + BGM_BATTLE36, // regi + BGM_BATTLE34, // weather trio + BGM_BATTLE35, // rival + BGM_BATTLE38, // elite four + BGM_BATTLE30, // aqua/magma leader +}; + +#endif // GUARD_SONGS_H diff --git a/include/sound.h b/include/sound.h new file mode 100644 index 0000000000..7d47b74563 --- /dev/null +++ b/include/sound.h @@ -0,0 +1,48 @@ +#ifndef GUARD_SOUND_H +#define GUARD_SOUND_H + +void InitMapMusic(void); +void MapMusicMain(void); +void ResetMapMusic(void); +u16 GetCurrentMapMusic(void); +void PlayNewMapMusic(u16 songNum); +void StopMapMusic(void); +void FadeOutMapMusic(u8 speed); +void FadeOutAndPlayNewMapMusic(u16 songNum, u8 speed); +void FadeOutAndFadeInNewMapMusic(u16 songNum, u8 fadeOutSpeed, u8 fadeInSpeed); +void FadeInNewMapMusic(u16 songNum, u8 speed); +bool8 IsNotWaitingForBGMStop(void); +void PlayFanfareByFanfareNum(u8 fanfareNum); +bool8 WaitFanfare(bool8 stop); +void StopFanfareByFanfareNum(u8 fanfareNum); +void PlayFanfare(u16 songNum); +bool8 IsFanfareTaskInactive(void); +void FadeInNewBGM(u16 songNum, u8 speed); +void FadeOutBGMTemporarily(u8 speed); +bool8 IsBGMPausedOrStopped(void); +void FadeInBGM(u8 speed); +void FadeOutBGM(u8 speed); +bool8 IsBGMStopped(void); +void PlayCry1(u16 species, s8 pan); +void PlayCry2(u16 species, s8 pan, s8 volume, u8 priority); +void PlayCry3(u16 species, s8 pan, u8 mode); +void PlayCry4(u16 species, s8 pan, u8 mode); +void PlayCry5(u16 species, u8 mode); +void PlayCry6(u16 species, s8 pan, u8 mode); +void PlayCryInternal(u16 species, s8 pan, s8 volume, u8 priority, u8 mode); +bool8 IsCryFinished(void); +void StopCryAndClearCrySongs(void); +void StopCry(void); +bool8 IsCryPlayingOrClearCrySongs(void); +bool8 IsCryPlaying(void); +void PlayBGM(u16 songNum); +void PlaySE(u16 songNum); +void PlaySE12WithPanning(u16 songNum, s8 pan); +void PlaySE1WithPanning(u16 songNum, s8 pan); +void PlaySE2WithPanning(u16 songNum, s8 pan); +void SE12PanpotControl(s8 pan); +bool8 IsSEPlaying(void); +bool8 IsBGMPlaying(void); +bool8 IsSpecialSEPlaying(void); + +#endif // GUARD_SOUND_H diff --git a/include/sprite.h b/include/sprite.h new file mode 100644 index 0000000000..68474b2ae5 --- /dev/null +++ b/include/sprite.h @@ -0,0 +1,305 @@ +#ifndef GUARD_SPRITE_H +#define GUARD_SPRITE_H + +#define MAX_SPRITES 64 + +struct SpriteSheet +{ + const u8 *data; // Raw uncompressed pixel data + u16 size; + u16 tag; +}; + +struct CompressedSpriteSheet +{ + const u8 *data; // LZ77 compressed pixel data + u16 size; // Uncompressed size of pixel data + u16 tag; +}; + +struct SpriteFrameImage +{ + const u8 *data; + u16 size; +}; + +#define obj_frame_tiles(ptr) {.data = (u8 *)ptr, .size = sizeof ptr} + +struct SpritePalette +{ + const u16 *data; // Raw uncompressed palette data + u16 tag; +}; + +struct CompressedSpritePalette +{ + const u8 *data; // LZ77 compressed palette data + u16 tag; +}; + +struct AnimFrameCmd +{ + // If the sprite has an array of images, this is the array index. + // If the sprite has a sheet, this is the tile offset. + u32 imageValue:16; + + u32 duration:6; + u32 hFlip:1; + u32 vFlip:1; +}; + +struct AnimLoopCmd +{ + u32 type:16; + u32 count:6; +}; + +struct AnimJumpCmd +{ + u32 type:16; + u32 target:6; +}; + +// The first halfword of this union specifies the type of command. +// If it -2, then it is a jump command. If it is -1, then it is the end of the script. +// Otherwise, it is the imageValue for a frame command. +union AnimCmd +{ + s16 type; + struct AnimFrameCmd frame; + struct AnimLoopCmd loop; + struct AnimJumpCmd jump; +}; + +#define ANIMCMD_FRAME(...) \ + {.frame = {__VA_ARGS__}} +#define ANIMCMD_LOOP(_count) \ + {.loop = {.type = -3, .count = _count}} +#define ANIMCMD_JUMP(_target) \ + {.jump = {.type = -2, .target = _target}} +#define ANIMCMD_END \ + {.type = -1} + +struct AffineAnimFrameCmd +{ + s16 xScale; + s16 yScale; + u8 rotation; + u8 duration; +}; + +struct AffineAnimLoopCmd +{ + s16 type; + s16 count; +}; + +struct AffineAnimJumpCmd +{ + s16 type; + u16 target; +}; + +union AffineAnimCmd +{ + s16 type; + struct AffineAnimFrameCmd frame; + struct AffineAnimLoopCmd loop; + struct AffineAnimJumpCmd jump; +}; + +#define AFFINEANIMCMDTYPE_LOOP 0x7FFD +#define AFFINEANIMCMDTYPE_JUMP 0x7FFE +#define AFFINEANIMCMDTYPE_END 0x7FFF + +#define AFFINEANIMCMD_FRAME(_xScale, _yScale, _rotation, _duration) \ + {.frame = {.xScale = _xScale, .yScale = _yScale, .rotation = _rotation, .duration = _duration}} +#define AFFINEANIMCMD_LOOP(_count) \ + {.loop = {.type = AFFINEANIMCMDTYPE_LOOP, .count = _count}} +#define AFFINEANIMCMD_JUMP(_target) \ + {.jump = {.type = AFFINEANIMCMDTYPE_JUMP, .target = _target}} +#define AFFINEANIMCMD_END \ + {.type = AFFINEANIMCMDTYPE_END} +#define AFFINEANIMCMD_LOOP(_count) \ + {.loop = {.type = AFFINEANIMCMDTYPE_LOOP, .count = _count}} +#define AFFINEANIMCMD_JUMP(_target) \ + {.jump = {.type = AFFINEANIMCMDTYPE_JUMP, .target = _target}} + +struct AffineAnimState +{ + u8 animNum; + u8 animCmdIndex; + u8 delayCounter; + u8 loopCounter; + s16 xScale; + s16 yScale; + u16 rotation; +}; + +enum +{ + SUBSPRITES_OFF, + SUBSPRITES_ON, + SUBSPRITES_IGNORE_PRIORITY, // on but priority is ignored +}; + +struct Subsprite +{ + s8 x; // was u16 in R/S + s8 y; // was u16 in R/S + u16 shape:2; + u16 size:2; + u16 tileOffset:10; + u16 priority:2; +}; + +struct SubspriteTable +{ + u8 subspriteCount; + const struct Subsprite *subsprites; +}; + +struct Sprite; + +struct SpriteTemplate +{ + u16 tileTag; + u16 paletteTag; + const struct OamData *oam; + const union AnimCmd *const *anims; + const struct SpriteFrameImage *images; + const union AffineAnimCmd *const *affineAnims; + void (*callback)(struct Sprite *); +}; + +struct Sprite +{ + /*0x00*/ struct OamData oam; + /*0x08*/ const union AnimCmd *const *anims; + /*0x0C*/ const struct SpriteFrameImage *images; + /*0x10*/ const union AffineAnimCmd *const *affineAnims; + /*0x14*/ const struct SpriteTemplate *template; + /*0x18*/ const struct SubspriteTable *subspriteTables; + /*0x1C*/ void (*callback)(struct Sprite *); + + /*0x20*/ struct Coords16 pos1; + /*0x24*/ struct Coords16 pos2; + /*0x28*/ s8 centerToCornerVecX; + /*0x29*/ s8 centerToCornerVecY; + + /*0x2A*/ u8 animNum; + /*0x2B*/ u8 animCmdIndex; + /*0x2C*/ u8 animDelayCounter:6; + u8 animPaused:1; + u8 affineAnimPaused:1; + /*0x2D*/ u8 animLoopCounter; + + // general purpose data fields + /*0x2E*/ s16 data0; + /*0x30*/ s16 data1; + /*0x32*/ s16 data2; + /*0x34*/ s16 data3; + /*0x36*/ s16 data4; + /*0x38*/ s16 data5; + /*0x3A*/ s16 data6; + /*0x3C*/ s16 data7; + + /*0x3E*/ u16 inUse:1; //1 + u16 coordOffsetEnabled:1; //2 + u16 invisible:1; //4 + u16 flags_3:1; //8 + u16 flags_4:1; //0x10 + u16 flags_5:1; //0x20 + u16 flags_6:1; //0x40 + u16 flags_7:1; //0x80 + /*0x3F*/ u16 hFlip:1; + u16 vFlip:1; + u16 animBeginning:1; + u16 affineAnimBeginning:1; + u16 animEnded:1; + u16 affineAnimEnded:1; + u16 usingSheet:1; + u16 flags_f:1; + + /*0x40*/ u16 sheetTileStart; + + /*0x42*/ u8 subspriteTableNum:6; + u8 subspriteMode:2; + + /*0x43*/ u8 subpriority; +}; + +struct OamMatrix +{ + s16 a; + s16 b; + s16 c; + s16 d; +}; + +extern struct Sprite gSprites[]; + +extern const struct OamData gDummyOamData; + +void ResetSpriteData(void); +void AnimateSprites(void); +void BuildOamBuffer(void); +u8 CreateSprite(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority); +u8 CreateSpriteAtEnd(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority); +u8 CreateInvisibleSprite(void (*callback)(struct Sprite *)); +u8 CreateSpriteAndAnimate(struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority); +void DestroySprite(struct Sprite *sprite); +void ResetOamRange(u8 a, u8 b); +void LoadOam(void); +void SetOamMatrix(u8 matrixNum, u16 a, u16 b, u16 c, u16 d); +void CalcCenterToCornerVec(struct Sprite *sprite, u8 shape, u8 size, u8 affineMode); +void SpriteCallbackDummy(struct Sprite *sprite); +void ProcessSpriteCopyRequests(void); +void RequestSpriteCopy(const u8 *src, u8 *dest, u16 size); +void FreeSpriteTiles(struct Sprite *sprite); +void FreeSpritePalette(struct Sprite *sprite); +void FreeSpriteOamMatrix(struct Sprite *sprite); +void DestroySpriteAndFreeResources(struct Sprite *sprite); +void sub_800142C(u32 a1, u32 a2, u16 *a3, u16 a4, u32 a5); +void AnimateSprite(struct Sprite *sprite); +void StartSpriteAnim(struct Sprite *sprite, u8 animNum); +void StartSpriteAnimIfDifferent(struct Sprite *sprite, u8 animNum); +void SeekSpriteAnim(struct Sprite *sprite, u8 animCmdIndex); +void StartSpriteAffineAnim(struct Sprite *sprite, u8 animNum); +void StartSpriteAffineAnimIfDifferent(struct Sprite *sprite, u8 animNum); +void ChangeSpriteAffineAnim(struct Sprite *sprite, u8 animNum); +void ChangeSpriteAffineAnimIfDifferent(struct Sprite *sprite, u8 animNum); +void SetSpriteSheetFrameTileNum(struct Sprite *sprite); +u8 AllocOamMatrix(void); +void FreeOamMatrix(u8 matrixNum); +void InitSpriteAffineAnim(struct Sprite *sprite); +void SetOamMatrixRotationScaling(u8 matrixNum, s16 xScale, s16 yScale, u16 rotation); +u16 LoadSpriteSheet(const struct SpriteSheet *sheet); +void LoadSpriteSheets(const struct SpriteSheet *sheets); +u16 AllocTilesForSpriteSheet(struct SpriteSheet *sheet); +void AllocTilesForSpriteSheets(struct SpriteSheet *sheets); +void LoadTilesForSpriteSheet(const struct SpriteSheet *sheet); +void LoadTilesForSpriteSheets(struct SpriteSheet *sheets); +void FreeSpriteTilesByTag(u16 tag); +void FreeSpriteTileRanges(void); +u16 GetSpriteTileStartByTag(u16 tag); +u16 GetSpriteTileTagByTileStart(u16 start); +void RequestSpriteSheetCopy(const struct SpriteSheet *sheet); +u16 LoadSpriteSheetDeferred(const struct SpriteSheet *sheet); +void FreeAllSpritePalettes(void); +u8 LoadSpritePalette(const struct SpritePalette *palette); +void LoadSpritePalettes(const struct SpritePalette *palettes); +u8 AllocSpritePalette(u16 tag); +u8 IndexOfSpritePaletteTag(u16 tag); +u16 GetSpritePaletteTagByPaletteNum(u8 paletteNum); +void FreeSpritePaletteByTag(u16 tag); +void SetSubspriteTables(struct Sprite *sprite, const struct SubspriteTable *subspriteTables); +bool8 AddSpriteToOamBuffer(struct Sprite *object, u8 *oamIndex); +bool8 AddSubspritesToOamBuffer(struct Sprite *sprite, struct OamData *destOam, u8 *oamIndex); +void CopyToSprites(u8 *src); +void CopyFromSprites(u8 *dest); +u8 SpriteTileAllocBitmapOp(u16 bit, u8 op); +void ClearSpriteCopyRequests(void); +void ResetAffineAnimData(void); + +#endif //GUARD_SPRITE_H diff --git a/include/text_window.h b/include/text_window.h new file mode 100644 index 0000000000..0cefeea8ed --- /dev/null +++ b/include/text_window.h @@ -0,0 +1,22 @@ +#ifndef GUARD_TEXT_WINDOW_H +#define GUARD_TEXT_WINDOW_H + +struct TilesPal +{ + u32* tiles; + u16* pal; +}; + +const struct TilesPal* sub_8098758(u8 id); +void copy_textbox_border_tile_patterns_to_vram(u8 windowId, u16 destOffset, u8 palOffset); +void sub_809882C(u8 windowId, u16 destOffset, u8 palOffset); +void sub_80987D4(u8 windowId, u8 frameId, u16 destOffset, u8 palOffset); +void box_border_load_tiles_and_pal(u8 windowId, u16 destOffset, u8 palOffset); +void sub_8098858(u8 windowId, u16 tileNum, u8 palNum); +void sub_80989E0(u8 windowId, u16 tileNum, u8 palNum); +void rbox_fill_rectangle(u8 windowId); +const u16* stdpal_get(u8 id); +const u16* sub_8098C64(void); +void sub_8098C6C(u8 bg, u16 destOffset, u8 palOffset); + +#endif // GUARD_TEXT_WINDOW_H diff --git a/include/trig.h b/include/trig.h new file mode 100644 index 0000000000..a2f98a3e60 --- /dev/null +++ b/include/trig.h @@ -0,0 +1,11 @@ +#ifndef GUARD_TRIG_H +#define GUARD_TRIG_H + +extern const s16 gSineTable[]; + +s16 Sin(s16 index, s16 amplitude); +s16 Cos(s16 index, s16 amplitude); +s16 Sin2(u16 angle); +s16 Cos2(u16 angle); + +#endif // GUARD_TRIG_H diff --git a/include/vars.h b/include/vars.h new file mode 100644 index 0000000000..efbb462a4e --- /dev/null +++ b/include/vars.h @@ -0,0 +1,53 @@ +#ifndef GUARD_VARS_H +#define GUARD_VARS_H + +#define VAR_0x4000 0x4000 +#define VAR_0x4001 0x4001 +#define VAR_0x4002 0x4002 +#define VAR_0x4003 0x4003 +#define VAR_0x4004 0x4004 +#define VAR_0x4005 0x4005 +#define VAR_0x4006 0x4006 +#define VAR_0x4007 0x4007 +#define VAR_0x4008 0x4008 +#define VAR_0x4009 0x4009 +#define VAR_0x400A 0x400A +#define VAR_0x401F 0x401F +#define VAR_RECYCLE_GOODS 0x4020 +#define VAR_REPEL_STEP_COUNT 0x4021 +#define VAR_ICE_STEP_COUNT 0x4022 +#define VAR_FIRST_POKE 0x4023 +#define VAR_MIRAGE_RND_H 0x4024 +#define VAR_MIRAGE_RND_L 0x4025 +#define VAR_SECRET_BASE_MAP 0x4026 + +#define VAR_HAPPINESS_STEP_COUNTER 0x402A +#define VAR_POISON_STEP_COUNTER 0x402B +#define VAR_RESET_RTC_ENABLE 0x402C + +#define VAR_DAYS 0x4040 + +#define VAR_DEPT_STORE_FLOOR 0x4043 +#define VAR_POKELOT_PRIZE 0x4045 +#define VAR_NATIONAL_DEX 0x4046 +#define VAR_SHROOMISH_SIZE_RECORD 0x4047 +#define VAR_ASH_GATHER_COUNT 0x4048 +#define VAR_BIRCH_STATE 0x4049 +#define VAR_CRUISE_STEP_COUNT 0x404A +#define VAR_POKELOT_RND1 0x404B +#define VAR_POKELOT_RND2 0x404C + +#define VAR_BARBOACH_SIZE_RECORD 0x404F + +#define VAR_0x4054 0x4054 + +#define VAR_0x4089 0x4089 +#define VAR_0x4095 0x4095 +#define VAR_0x4097 0x4097 +#define VAR_0x409a 0x409a +#define VAR_PORTHOLE 0x40B4 + +#define VAR_0x40BC 0x40BC +#define VAR_0x40C2 0x40C2 + +#endif // GUARD_VARS_H diff --git a/include/window.h b/include/window.h index ca0520d417..6f5f55c113 100644 --- a/include/window.h +++ b/include/window.h @@ -1,6 +1,18 @@ #ifndef GUARD_WINDOW_H #define GUARD_WINDOW_H +enum +{ + WINDOW_PRIORITY, + WINDOW_TILEMAP_LEFT, + WINDOW_TILEMAP_TOP, + WINDOW_WIDTH, + WINDOW_HEIGHT, + WINDOW_PALETTE_NUM, + WINDOW_BASE_BLOCK, + WINDOW_TILE_DATA +}; + struct WindowTemplate { u8 priority; @@ -18,4 +30,32 @@ struct Window u8 *tileData; }; +bool16 InitWindows(struct WindowTemplate *templates); +u16 AddWindow(struct WindowTemplate *template); +int AddWindowWithoutTileMap(struct WindowTemplate *template); +void RemoveWindow(u8 windowId); +void FreeAllWindowBuffers(void); +void CopyWindowToVram(u8 windowId, u8 mode); +void CopyWindowRectToVram(u32 windowId, u32 mode, u32 x, u32 y, u32 w, u32 h); +void PutWindowTilemap(u8 windowId); +void PutWindowRectTilemapOverridePalette(u8 windowId, u8 x, u8 y, u8 width, u8 height, u8 palette); +void ClearWindowTilemap(u8 windowId); +void PutWindowRectTilemap(u8 windowId, u8 x, u8 y, u8 width, u8 height); +void BlitBitmapToWindow(u8 windowId, u8 *pixels, u16 x, u16 y, u16 width, u16 height); +void BlitBitmapRectToWindow(u8 windowId, const u8 *pixels, u16 srcX, u16 srcY, u16 srcWidth, int srcHeight, u16 destX, u16 destY, u16 rectWidth, u16 rectHeight); +void FillWindowPixelRect(u8 windowId, u8 fillValue, u16 x, u16 y, u16 width, u16 height); +void CopyToWindowPixelBuffer(u8 windowId, u8 *src, u16 size, u16 tileOffset); +void FillWindowPixelBuffer(u8 windowId, u8 fillValue); +void ScrollWindow(u8 windowId, u8 direction, u8 distance, u8 fillValue); +void CallWindowFunction(u8 windowId, void ( *func)(u8, u8, u8, u8, u8, u8)); +bool8 SetWindowAttribute(u8 windowId, u8 attributeId, u32 value); +u32 GetWindowAttribute(u8 windowId, u8 attributeId); +u16 AddWindow8Bit(struct WindowTemplate *template); +u16 AddWindow8Bit(struct WindowTemplate *template); +void FillWindowPixelRect8Bit(u8 windowId, u8 fillValue, u16 x, u16 y, u16 width, u16 height); +void BlitBitmapRectToWindow4BitTo8Bit(u8 windowId, u8 *pixels, u16 srcX, u16 srcY, u16 srcWidth, int srcHeight, u16 destX, u16 destY, u16 rectWidth, u16 rectHeight, u8 paletteNum); +void CopyWindowToVram8Bit(u8 windowId, u8 mode); + +extern struct Window gWindows[]; + #endif // GUARD_WINDOW_H diff --git a/ld_script.txt b/ld_script.txt index 6d1f167a1b..d0ae744d1e 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -9,13 +9,10 @@ SECTIONS { ewram (NOLOAD) : ALIGN(4) { - gHeap = .; - - . = 0x20000; - . = 0x40000; + . = 0x60000; } . = 0x3000000; @@ -48,23 +45,28 @@ SECTIONS { asm/bg.o(.text); asm/blit.o(.text); src/window.o(.text); - asm/window.o(.text); src/text.o(.text); - asm/sprite.o(.text); + src/sprite.o(.text); src/string_util.o(.text); asm/link.o(.text); - asm/rtc.o(.text); + src/rtc.o(.text); asm/main_menu.o(.text); asm/rom3.o(.text); - asm/decompress.o(.text); + src/decompress.o(.text); asm/rom_8034C54.o(.text); asm/battle_3.o(.text); - asm/rom_8045FFC.o(.text); + asm/battle_4.o(.text); + asm/battle_5.o(.text); + asm/battle_controller_player.o(.text); + asm/battle_7.o(.text); + asm/battle_controller_opponent.o(.text); + asm/battle_9.o(.text); + asm/battle_controller_linkopponent.o(.text); asm/pokemon_1.o(.text); asm/calculate_base_damage.o(.text); asm/pokemon_2.o(.text); asm/pokemon_3.o(.text); - asm/trig.o(.text); + src/trig.o(.text); src/rng.o(.text); asm/util.o(.text); src/blend_palette.o(.text); @@ -74,7 +76,8 @@ SECTIONS { asm/load_save.o(.text); asm/trade.o(.text); asm/berry_blender.o(.text); - asm/play_time.o(.text); + src/play_time.o(.text); + src/new_game.o(.text); asm/new_game.o(.text); asm/rom4.o(.text); asm/fieldmap.o(.text); @@ -87,11 +90,11 @@ SECTIONS { asm/map_obj_8097404.o(.text); asm/field_message_box.o(.text); asm/map_obj_lock.o(.text); - asm/text_window.o(.text); + src/text_window.o(.text); asm/script.o(.text); asm/scrcmd.o(.text); asm/field_control_avatar.o(.text); - asm/event_data.o(.text); + src/event_data.o(.text); asm/coord_event_weather.o(.text); asm/field_tasks.o(.text); asm/clock.o(.text); @@ -99,11 +102,12 @@ SECTIONS { asm/start_menu.o(.text); asm/tileset.o(.text); src/palette.o(.text); - asm/sound.o(.text); + src/sound.o(.text); asm/battle_anim.o(.text); asm/rom_80A5C6C.o(.text); src/task.o(.text); - asm/rom5.o(.text); + asm/reshow_battle_screen.o(.text); + asm/battle_anin_80A9C70.o(.text); asm/title_screen.o(.text); asm/weather.o(.text); asm/rom_80AEFFC.o(.text); @@ -118,6 +122,7 @@ SECTIONS { asm/pokedex.o(.text); asm/trainer_card.o(.text); asm/rom_80C6FA0.o(.text); + src/item.o(.text); asm/item.o(.text); asm/contest.o(.text); asm/shop.o(.text); @@ -170,17 +175,19 @@ SECTIONS { asm/fldeff_strength.o(.text); asm/rom_8145E84.o(.text); asm/battle_transition.o(.text); - asm/battle_814AEAC.o(.text); + asm/battle_controller_linkpartner.o(.text); asm/battle_message.o(.text); asm/cable_car.o(.text); asm/rom_8151534.o(.text); asm/roulette_util.o(.text); asm/cable_car_util.o(.text); + src/save.o(.text); asm/save.o(.text); asm/mystery_event_script.o(.text); asm/field_effect_helpers.o(.text); asm/contest_ai.o(.text); asm/rom_8158B30.o(.text); + asm/battle_controller_wally.o(.text); asm/player_pc.o(.text); asm/intro.o(.text); asm/rom_81700F8.o(.text); @@ -203,8 +210,13 @@ SECTIONS { asm/rom_817C95C.o(.text); asm/front_pic_anim.o(.text); asm/rom_8184DA4.o(.text); + asm/battle_controller_recorded_opponent.o(.text); + asm/battle_controller_recorded_player.o(.text); + asm/rom_818CFC8.o(.text); src/multiboot.o(.text); asm/rom_81BAD84.o(.text); + asm/battle_controller_player_partner.o(.text); + asm/rom_81BE66C.o(.text); } =0 script_data : @@ -257,11 +269,16 @@ SECTIONS { { src/main.o(.rodata); data/bg.o(.rodata); - data/window.o(.rodata); + src/window.o(.rodata); src/text.o(.rodata); - data/sprite.o(.rodata); + src/sprite.o(.rodata); + data/io_reg.o(.rodata); src/string_util.o(.rodata); data/data2.o(.rodata); + src/rtc.o(.rodata); + data/data2b.o(.rodata); + src/trig.o(.rodata); + data/data3.o(.rodata); data/battle_message.o(.rodata); data/cable_car.o(.rodata); data/save.o(.rodata); diff --git a/src/battle_ai.c b/src/battle_ai.c index 37960f401f..7c4b7604de 100644 --- a/src/battle_ai.c +++ b/src/battle_ai.c @@ -9,10 +9,10 @@ #define AIScriptRead8(ptr) ((ptr)[0]) #define AIScriptReadPtr(ptr) (u8*) AIScriptRead32(ptr) -#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(gUnknown_020244A8->ai)) -#define UNK_2016A00_STRUCT ((struct UnknownStruct2 *)(gUnknown_020244A8->unk18)) -#define UNK_2016C00_STRUCT ((struct UnknownStruct4 *)(gUnknown_020244A8->unk1C)) -#define UNK_BATTLE_STRUCT ((struct UnknownStruct1 *)(gUnknown_020244A8)) +#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(gBattleResources->ai)) +#define UNK_2016A00_STRUCT ((struct UnknownStruct2 *)(gBattleResources->unk18)) +#define UNK_2016C00_STRUCT ((struct UnknownStruct4 *)(gBattleResources->unk1C)) +#define UNK_BATTLE_STRUCT ((struct UnknownStruct1 *)(gBattleResources)) #define AI_ACTION_UNK1 0x0001 #define AI_ACTION_UNK2 0x0002 @@ -158,7 +158,7 @@ struct UnknownStruct5 u8 filler17[0x4]; }; -extern struct UnknownStruct5 gUnknown_020242BC[]; +extern struct UnknownStruct5 gDisableStructs[]; /* gAIScriptPtr is a pointer to the next battle AI cmd command to read. @@ -170,38 +170,38 @@ AI scripts. extern u8 *gAIScriptPtr; extern u32 gBattleTypeFlags; -extern u8 gUnknown_02024064; +extern u8 gActiveBank; extern struct BattlePokemon gBattleMons[]; -extern u16 gUnknown_020241EA; -extern u8 gEnemyMonIndex; -extern u8 gUnknown_02024210; +extern u16 gCurrentMove; +extern u8 gBankTarget; +extern u8 gAbsentBankFlags; extern u16 gUnknown_02024248[]; -extern u8 *gUnknown_0202449C; -extern struct UnknownStruct1 *gUnknown_020244A8; +extern u8 *gBattleStruct; +extern struct UnknownStruct1 *gBattleResources; extern u16 gUnknown_02038BCA; extern u16 gUnknown_02038BCC; extern u8 gPlayerMonIndex; extern struct Trainer gTrainers[]; extern const u32 gBitTable[]; extern u8 *gUnknown_082DBEF8[]; -extern u32 gUnknown_020242AC[]; +extern u32 gStatuses3[]; extern u16 gUnknown_0202428E[]; extern struct BattleMove gBattleMoves[]; extern u8 gUnknown_03005D10[]; -extern u8 gUnknown_0202406E[][2]; +extern u8 gBattlePartyID[][2]; extern struct BaseStats gBaseStats[]; extern u16 gUnknown_02024400; -extern u8 gUnknown_02024474[]; +extern u8 gBattleScripting[]; extern u8 gBattleMoveFlags; extern int gBattleMoveDamage; extern u8 gCritMultiplier; extern u16 gBattleWeather; -extern u8 battle_get_per_side_status(u8); +extern u8 GetBankIdentity(u8); extern u8 b_first_side(u8, u8, u8); -extern u8 battle_get_side_with_given_state(u8); +extern u8 GetBankByPlayerAI(u8); extern void move_effectiveness_something(u16, u8, u8); -extern u8 itemid_get_x12(); +extern u8 ItemId_GetHoldEffect(); extern void b_mc_stack_push(u8 *); extern bool8 b_mc_stack_pop_cursor(void); extern void sub_8046E7C(u8, u8); @@ -212,7 +212,7 @@ extern const BattleAICmdFunc sBattleAICmdTable[]; extern u8 sub_803FECC(); extern u16 Random(); -extern u8 battle_side_get_owner(); +extern u8 GetBankSide(); extern u32 sub_8186438(); extern u32 sub_81A6FB4(); @@ -225,7 +225,7 @@ void BattleAI_DoAIProcessing(void); void BattleAI_HandleItemUseBeforeAISetup(u8 a) { s32 i; - u8 *data = (u8 *)gUnknown_020244A8->unk18; + u8 *data = (u8 *)gBattleResources->unk18; for (i = 0; (u32)i < 0x54; i++) data[i] = 0; @@ -235,8 +235,8 @@ void BattleAI_HandleItemUseBeforeAISetup(u8 a) { if (gTrainers[gUnknown_02038BCA].items[i] != 0) { - gUnknown_020244A8->unk18->unk48[gUnknown_020244A8->unk18->unk50] = gTrainers[gUnknown_02038BCA].items[i]; - gUnknown_020244A8->unk18->unk50++; + gBattleResources->unk18->unk48[gBattleResources->unk18->unk50] = gTrainers[gUnknown_02038BCA].items[i]; + gBattleResources->unk18->unk50++; } } } @@ -264,7 +264,7 @@ void BattleAI_SetupAIData(u8 a) a >>= 1; } - r6 = sub_803FECC(gUnknown_02024064, 0, 0xFF); + r6 = sub_803FECC(gActiveBank, 0, 0xFF); for (i = 0; i < 4; i++) { @@ -273,18 +273,18 @@ void BattleAI_SetupAIData(u8 a) AI_THINKING_STRUCT->unk18[i] = 100 - (Random() % 16); } - gUnknown_020244A8->unk1C->unk20 = 0; - gPlayerMonIndex = gUnknown_02024064; + gBattleResources->unk1C->unk20 = 0; + gPlayerMonIndex = gActiveBank; if (gBattleTypeFlags & 1) { - gEnemyMonIndex = (Random() & 2) + ((u32)battle_side_get_owner(gUnknown_02024064) ^ 1); - if (gUnknown_02024210 & gBitTable[gEnemyMonIndex]) - gEnemyMonIndex ^= 2; + gBankTarget = (Random() & 2) + ((u32)GetBankSide(gActiveBank) ^ 1); + if (gAbsentBankFlags & gBitTable[gBankTarget]) + gBankTarget ^= 2; } else { //_08130A60 - gEnemyMonIndex = gPlayerMonIndex ^ 1; + gBankTarget = gPlayerMonIndex ^ 1; } //_08130A68 if (gBattleTypeFlags & 0x1000000) @@ -309,7 +309,7 @@ void BattleAI_SetupAIData(u8 a) u8 sub_8130BA4(void) { - u16 r4 = gUnknown_020241EA; + u16 r4 = gCurrentMove; u8 ret; if (!(gBattleTypeFlags & 1)) @@ -317,7 +317,7 @@ u8 sub_8130BA4(void) else ret = sub_8130CF4(); - gUnknown_020241EA = r4; + gCurrentMove = r4; return ret; } @@ -404,11 +404,11 @@ u8 sub_8130CF4(void) else { if (gBattleTypeFlags & 0x20000) - BattleAI_SetupAIData(gUnknown_0202449C[0x92] >> 4); + BattleAI_SetupAIData(gBattleStruct[0x92] >> 4); else BattleAI_SetupAIData(0xF); //_08130D76 - gEnemyMonIndex = i; + gBankTarget = i; if ((i & 1) != (gPlayerMonIndex & 1)) sub_8131074(); //_08130D90 @@ -488,8 +488,8 @@ u8 sub_8130CF4(void) r4_2 = 1; } } - gEnemyMonIndex = sp8[Random() % r4_2]; - return spC[gEnemyMonIndex]; + gBankTarget = sp8[Random() % r4_2]; + return spC[gBankTarget]; } #else __attribute__((naked)) @@ -543,7 +543,7 @@ _08130D48:\n\ ands r0, r1\n\ cmp r0, 0\n\ beq _08130D70\n\ - ldr r0, =gUnknown_0202449C\n\ + ldr r0, =gBattleStruct\n\ ldr r0, [r0]\n\ adds r0, 0x92\n\ ldrb r0, [r0]\n\ @@ -555,7 +555,7 @@ _08130D70:\n\ movs r0, 0xF\n\ bl BattleAI_SetupAIData\n\ _08130D76:\n\ - ldr r0, =gEnemyMonIndex\n\ + ldr r0, =gBankTarget\n\ mov r1, r8\n\ strb r1, [r0]\n\ movs r1, 0x1\n\ @@ -568,7 +568,7 @@ _08130D76:\n\ beq _08130D90\n\ bl sub_8131074\n\ _08130D90:\n\ - ldr r2, =gUnknown_020244A8\n\ + ldr r2, =gBattleResources\n\ ldr r0, [r2]\n\ ldr r0, [r0, 0x14]\n\ movs r1, 0\n\ @@ -731,7 +731,7 @@ _08130EC4:\n\ strb r0, [r2]\n\ movs r4, 0x1\n\ mov r8, r4\n\ - ldr r6, =gEnemyMonIndex\n\ + ldr r6, =gBankTarget\n\ ldr r3, [sp, 0x18]\n\ mov r1, sp\n\ adds r1, 0x2\n\ @@ -838,12 +838,12 @@ void sub_8131074(void) for (i = 0; i < 4; i++) { - if (gUnknown_020244A8->unk18->unk0[gEnemyMonIndex][i] == gUnknown_02024248[gEnemyMonIndex]) + if (gBattleResources->unk18->unk0[gBankTarget][i] == gUnknown_02024248[gBankTarget]) break; - if (gUnknown_020244A8->unk18->unk0[gEnemyMonIndex][i] != gUnknown_02024248[gEnemyMonIndex] //HACK: This redundant condition is a hack to make the asm match. - && gUnknown_020244A8->unk18->unk0[gEnemyMonIndex][i] == 0) + if (gBattleResources->unk18->unk0[gBankTarget][i] != gUnknown_02024248[gBankTarget] //HACK: This redundant condition is a hack to make the asm match. + && gBattleResources->unk18->unk0[gBankTarget][i] == 0) { - gUnknown_020244A8->unk18->unk0[gEnemyMonIndex][i] = gUnknown_02024248[gEnemyMonIndex]; + gBattleResources->unk18->unk0[gBankTarget][i] = gUnknown_02024248[gBankTarget]; break; } } @@ -854,27 +854,27 @@ void sub_81310F0(u8 a) s32 i; for (i = 0; i < 4; i++) - gUnknown_020244A8->unk18->unk0[a][i] = 0; + gBattleResources->unk18->unk0[a][i] = 0; } -void b_history__record_ability_usage_of_player(u8 a, u8 b) +void RecordAbilityBattle(u8 a, u8 b) { - gUnknown_020244A8->unk18->unk40[a] = b; + gBattleResources->unk18->unk40[a] = b; } void sub_8131130(u8 a) { - gUnknown_020244A8->unk18->unk40[a] = 0; + gBattleResources->unk18->unk40[a] = 0; } void b_history__record_item_x12_of_player(u8 a, u8 b) { - gUnknown_020244A8->unk18->unk44[a] = b; + gBattleResources->unk18->unk44[a] = b; } void sub_8131160(u8 a) { - gUnknown_020244A8->unk18->unk44[a] = 0; + gBattleResources->unk18->unk44[a] = 0; } void BattleAICmd_if_random_less_than(void) @@ -934,7 +934,7 @@ void BattleAICmd_if_hp_less_than(void) if (gAIScriptPtr[1] == USER) index = gPlayerMonIndex; else - index = gEnemyMonIndex; + index = gBankTarget; if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) < gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); @@ -949,7 +949,7 @@ void BattleAICmd_if_hp_more_than(void) if (gAIScriptPtr[1] == USER) index = gPlayerMonIndex; else - index = gEnemyMonIndex; + index = gBankTarget; if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) > gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); @@ -964,7 +964,7 @@ void BattleAICmd_if_hp_equal(void) if (gAIScriptPtr[1] == USER) index = gPlayerMonIndex; else - index = gEnemyMonIndex; + index = gBankTarget; if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) == gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); @@ -979,7 +979,7 @@ void BattleAICmd_if_hp_not_equal(void) if (gAIScriptPtr[1] == USER) index = gPlayerMonIndex; else - index = gEnemyMonIndex; + index = gBankTarget; if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) != gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); @@ -995,7 +995,7 @@ void BattleAICmd_if_status(void) if (gAIScriptPtr[1] == USER) index = gPlayerMonIndex; else - index = gEnemyMonIndex; + index = gBankTarget; arg = AIScriptRead32(gAIScriptPtr + 2); @@ -1013,7 +1013,7 @@ void BattleAICmd_if_not_status(void) if (gAIScriptPtr[1] == USER) index = gPlayerMonIndex; else - index = gEnemyMonIndex; + index = gBankTarget; arg = AIScriptRead32(gAIScriptPtr + 2); @@ -1031,7 +1031,7 @@ void BattleAICmd_if_status2(void) if (gAIScriptPtr[1] == USER) index = gPlayerMonIndex; else - index = gEnemyMonIndex; + index = gBankTarget; arg = AIScriptRead32(gAIScriptPtr + 2); @@ -1049,7 +1049,7 @@ void BattleAICmd_if_not_status2(void) if (gAIScriptPtr[1] == USER) index = gPlayerMonIndex; else - index = gEnemyMonIndex; + index = gBankTarget; arg = AIScriptRead32(gAIScriptPtr + 2); @@ -1067,11 +1067,11 @@ void BattleAICmd_if_status3(void) if (gAIScriptPtr[1] == USER) index = gPlayerMonIndex; else - index = gEnemyMonIndex; + index = gBankTarget; arg = AIScriptRead32(gAIScriptPtr + 2); - if ((gUnknown_020242AC[index] & arg) != 0) + if ((gStatuses3[index] & arg) != 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); else gAIScriptPtr += 10; @@ -1085,11 +1085,11 @@ void BattleAICmd_if_not_status3(void) if (gAIScriptPtr[1] == USER) index = gPlayerMonIndex; else - index = gEnemyMonIndex; + index = gBankTarget; arg = AIScriptRead32(gAIScriptPtr + 2); - if ((gUnknown_020242AC[index] & arg) == 0) + if ((gStatuses3[index] & arg) == 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); else gAIScriptPtr += 10; @@ -1103,9 +1103,9 @@ void BattleAICmd_if_status4(void) if (gAIScriptPtr[1] == USER) index = gPlayerMonIndex; else - index = gEnemyMonIndex; + index = gBankTarget; - arg1 = battle_get_per_side_status(index) & 1; + arg1 = GetBankIdentity(index) & 1; arg2 = AIScriptRead32(gAIScriptPtr + 2); if ((gUnknown_0202428E[arg1] & arg2) != 0) @@ -1122,9 +1122,9 @@ void BattleAICmd_if_not_status4(void) if (gAIScriptPtr[1] == USER) index = gPlayerMonIndex; else - index = gEnemyMonIndex; + index = gBankTarget; - arg1 = battle_get_per_side_status(index) & 1; + arg1 = GetBankIdentity(index) & 1; arg2 = AIScriptRead32(gAIScriptPtr + 2); if ((gUnknown_0202428E[arg1] & arg2) == 0) @@ -1337,13 +1337,13 @@ void BattleAICmd_get_type(void) AI_THINKING_STRUCT->funcResult = gBattleMons[gPlayerMonIndex].type1; break; case 0: // enemy primary type - AI_THINKING_STRUCT->funcResult = gBattleMons[gEnemyMonIndex].type1; + AI_THINKING_STRUCT->funcResult = gBattleMons[gBankTarget].type1; break; case 3: // player secondary type AI_THINKING_STRUCT->funcResult = gBattleMons[gPlayerMonIndex].type2; break; case 2: // enemy secondary type - AI_THINKING_STRUCT->funcResult = gBattleMons[gEnemyMonIndex].type2; + AI_THINKING_STRUCT->funcResult = gBattleMons[gBankTarget].type2; break; case 4: // type of move being pointed to AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->moveConsidered].type; @@ -1361,11 +1361,11 @@ u8 sub_8131E70(u8 index) return gPlayerMonIndex; case 0: default: - return gEnemyMonIndex; + return gBankTarget; case 3: return gPlayerMonIndex ^ 2; case 2: - return gEnemyMonIndex ^ 2; + return gBankTarget ^ 2; } } @@ -1406,7 +1406,7 @@ void BattleAICmd_is_most_powerful_move(void) ldrh r1, [r0]\n\ ldr r5, =0x0000ffff\n\ ldr r6, =gBattleMoves\n\ - ldr r2, =gUnknown_020244A8\n\ + ldr r2, =gBattleResources\n\ cmp r1, r5\n\ beq _08131F86\n\ ldr r0, [r2]\n\ @@ -1452,10 +1452,10 @@ _08131FAC:\n\ ldr r0, =gUnknown_02024400\n\ movs r1, 0\n\ strh r1, [r0]\n\ - ldr r0, =gUnknown_0202449C\n\ + ldr r0, =gBattleStruct\n\ ldr r0, [r0]\n\ strb r1, [r0, 0x13]\n\ - ldr r0, =gUnknown_02024474\n\ + ldr r0, =gBattleScripting\n\ movs r2, 0x1\n\ strb r2, [r0, 0xE]\n\ ldr r0, =gBattleMoveFlags\n\ @@ -1529,10 +1529,10 @@ _08132014:\n\ ldrb r0, [r1, 0x1]\n\ cmp r0, 0x1\n\ bls _081320C0\n\ - ldr r5, =gUnknown_020241EA\n\ + ldr r5, =gCurrentMove\n\ strh r2, [r5]\n\ ldrb r0, [r7]\n\ - ldr r4, =gEnemyMonIndex\n\ + ldr r4, =gBankTarget\n\ ldrb r1, [r4]\n\ bl sub_8046E7C\n\ ldrh r0, [r5]\n\ @@ -1542,7 +1542,7 @@ _08132014:\n\ mov r4, sp\n\ add r4, r8\n\ ldr r2, =gBattleMoveDamage\n\ - ldr r0, =gUnknown_020244A8\n\ + ldr r0, =gBattleResources\n\ ldr r0, [r0]\n\ ldr r0, [r0, 0x14]\n\ adds r0, 0x18\n\ @@ -1571,7 +1571,7 @@ _081320C8:\n\ b _08131FD0\n\ _081320D0:\n\ movs r6, 0\n\ - ldr r2, =gUnknown_020244A8\n\ + ldr r2, =gBattleResources\n\ ldr r0, [r2]\n\ ldr r0, [r0, 0x14]\n\ ldrb r0, [r0, 0x1]\n\ @@ -1640,7 +1640,7 @@ void BattleAICmd_get_move(void) if (gAIScriptPtr[1] == USER) AI_THINKING_STRUCT->funcResult = gUnknown_02024248[gPlayerMonIndex]; else - AI_THINKING_STRUCT->funcResult = gUnknown_02024248[gEnemyMonIndex]; + AI_THINKING_STRUCT->funcResult = gUnknown_02024248[gBankTarget]; gAIScriptPtr += 2; } @@ -1663,7 +1663,7 @@ void BattleAICmd_if_arg_not_equal(void) void BattleAICmd_if_would_go_first(void) { - if (b_first_side(gPlayerMonIndex, gEnemyMonIndex, 1) == gAIScriptPtr[1]) + if (b_first_side(gPlayerMonIndex, gBankTarget, 1) == gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; @@ -1671,7 +1671,7 @@ void BattleAICmd_if_would_go_first(void) void BattleAICmd_if_would_not_go_first(void) { - if (b_first_side(gPlayerMonIndex, gEnemyMonIndex, 1) != gAIScriptPtr[1]) + if (b_first_side(gPlayerMonIndex, gBankTarget, 1) != gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; @@ -1697,9 +1697,9 @@ void BattleAICmd_count_alive_pokemon(void) if (gAIScriptPtr[1] == USER) index = gPlayerMonIndex; else - index = gEnemyMonIndex; + index = gBankTarget; - if (battle_side_get_owner(index) == 0) + if (GetBankSide(index) == 0) party = gPlayerParty; else party = gEnemyParty; @@ -1707,14 +1707,14 @@ void BattleAICmd_count_alive_pokemon(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { u32 status; - var = gUnknown_0202406E[index][0]; - status = battle_get_per_side_status(index) ^ 2; - var2 = gUnknown_0202406E[battle_get_side_with_given_state(status)][0]; + var = gBattlePartyID[index][0]; + status = GetBankIdentity(index) ^ 2; + var2 = gBattlePartyID[GetBankByPlayerAI(status)][0]; } else { - var = gUnknown_0202406E[index][0]; - var2 = gUnknown_0202406E[index][0]; + var = gBattlePartyID[index][0]; + var2 = gBattlePartyID[index][0]; } for (i = 0; i < 6; i++) @@ -1750,9 +1750,9 @@ void BattleAICmd_get_ability(void) if (gAIScriptPtr[1] == USER) index = gPlayerMonIndex; else - index = gEnemyMonIndex; + index = gBankTarget; - if(gUnknown_02024064 != index) + if(gActiveBank != index) { if(UNK_2016A00_STRUCT->unk40[index] != 0) { @@ -1898,7 +1898,7 @@ void tai60_unk(void) cmp r0, 0x2\n\ bne _081325BC\n\ _0813253A:\n\ - ldr r0, =gUnknown_020244A8\n\ + ldr r0, =gBattleResources\n\ ldr r4, [r0]\n\ ldr r1, [r4, 0x18]\n\ adds r1, 0x40\n\ @@ -1968,7 +1968,7 @@ _081325BC:\n\ adds r0, r1\n\ adds r0, 0x20\n\ ldrb r3, [r0]\n\ - ldr r6, =gUnknown_020244A8\n\ + ldr r6, =gBattleResources\n\ _081325CA:\n\ cmp r3, 0\n\ bne _081325E8\n\ @@ -2015,8 +2015,8 @@ void BattleAICmd_get_highest_possible_damage(void) s32 i; gUnknown_02024400 = 0; - gUnknown_0202449C[0x13] = 0; - gUnknown_02024474[0xE] = 1; + gBattleStruct[0x13] = 0; + gBattleScripting[0xE] = 1; gBattleMoveFlags = 0; gCritMultiplier = 1; AI_THINKING_STRUCT->funcResult = 0; @@ -2024,11 +2024,11 @@ void BattleAICmd_get_highest_possible_damage(void) for (i = 0; i < 4; i++) { gBattleMoveDamage = 40; - gUnknown_020241EA = gBattleMons[gPlayerMonIndex].moves[i]; + gCurrentMove = gBattleMons[gPlayerMonIndex].moves[i]; - if (gUnknown_020241EA) + if (gCurrentMove) { - move_effectiveness_something(gUnknown_020241EA, gPlayerMonIndex, gEnemyMonIndex); + move_effectiveness_something(gCurrentMove, gPlayerMonIndex, gBankTarget); // reduce by 1/3. if (gBattleMoveDamage == 120) @@ -2055,15 +2055,15 @@ void BattleAICmd_if_damage_bonus(void) u8 damageVar; gUnknown_02024400 = 0; - gUnknown_0202449C[0x13] = 0; - gUnknown_02024474[0xE] = 1; + gBattleStruct[0x13] = 0; + gBattleScripting[0xE] = 1; gBattleMoveFlags = 0; gCritMultiplier = 1; gBattleMoveDamage = 40; - gUnknown_020241EA = AI_THINKING_STRUCT->moveConsidered; + gCurrentMove = AI_THINKING_STRUCT->moveConsidered; - move_effectiveness_something(gUnknown_020241EA, gPlayerMonIndex, gEnemyMonIndex); + move_effectiveness_something(gCurrentMove, gPlayerMonIndex, gBankTarget); if (gBattleMoveDamage == 120) gBattleMoveDamage = 80; @@ -2107,11 +2107,11 @@ void BattleAICmd_if_status_in_party(void) index = gPlayerMonIndex; break; default: - index = gEnemyMonIndex; + index = gBankTarget; break; } - party = (battle_side_get_owner(index) == 0) ? gPlayerParty : gEnemyParty; + party = (GetBankSide(index) == 0) ? gPlayerParty : gEnemyParty; statusToCompareTo = AIScriptRead32(gAIScriptPtr + 2); @@ -2144,11 +2144,11 @@ void BattleAICmd_if_status_not_in_party(void) index = gPlayerMonIndex; break; default: - index = gEnemyMonIndex; + index = gBankTarget; break; } - party = (battle_side_get_owner(index) == 0) ? gPlayerParty : gEnemyParty; + party = (GetBankSide(index) == 0) ? gPlayerParty : gEnemyParty; statusToCompareTo = AIScriptRead32(gAIScriptPtr + 2); @@ -2204,7 +2204,7 @@ void BattleAICmd_if_stat_level_less_than(void) if (gAIScriptPtr[1] == USER) party = gPlayerMonIndex; else - party = gEnemyMonIndex; + party = gBankTarget; if (gBattleMons[party].statStages[gAIScriptPtr[2]] < gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -2219,7 +2219,7 @@ void BattleAICmd_if_stat_level_more_than(void) if (gAIScriptPtr[1] == USER) party = gPlayerMonIndex; else - party = gEnemyMonIndex; + party = gBankTarget; if (gBattleMons[party].statStages[gAIScriptPtr[2]] > gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -2234,7 +2234,7 @@ void BattleAICmd_if_stat_level_equal(void) if (gAIScriptPtr[1] == USER) party = gPlayerMonIndex; else - party = gEnemyMonIndex; + party = gBankTarget; if (gBattleMons[party].statStages[gAIScriptPtr[2]] == gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -2249,7 +2249,7 @@ void BattleAICmd_if_stat_level_not_equal(void) if (gAIScriptPtr[1] == USER) party = gPlayerMonIndex; else - party = gEnemyMonIndex; + party = gBankTarget; if (gBattleMons[party].statStages[gAIScriptPtr[2]] != gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -2266,13 +2266,13 @@ void BattleAICmd_if_can_faint(void) } gUnknown_02024400 = 0; - gUnknown_0202449C[0x13] = 0; - gUnknown_02024474[0xE] = 1; + gBattleStruct[0x13] = 0; + gBattleScripting[0xE] = 1; gBattleMoveFlags = 0; gCritMultiplier = 1; - gUnknown_020241EA = AI_THINKING_STRUCT->moveConsidered; - sub_8046E7C(gPlayerMonIndex, gEnemyMonIndex); - move_effectiveness_something(gUnknown_020241EA, gPlayerMonIndex, gEnemyMonIndex); + gCurrentMove = AI_THINKING_STRUCT->moveConsidered; + sub_8046E7C(gPlayerMonIndex, gBankTarget); + move_effectiveness_something(gCurrentMove, gPlayerMonIndex, gBankTarget); gBattleMoveDamage = gBattleMoveDamage * AI_THINKING_STRUCT->unk18[AI_THINKING_STRUCT->movesetIndex] / 100; @@ -2280,7 +2280,7 @@ void BattleAICmd_if_can_faint(void) if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - if (gBattleMons[gEnemyMonIndex].hp <= gBattleMoveDamage) + if (gBattleMons[gBankTarget].hp <= gBattleMoveDamage) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -2295,19 +2295,19 @@ void BattleAICmd_if_cant_faint(void) } gUnknown_02024400 = 0; - gUnknown_0202449C[0x13] = 0; - gUnknown_02024474[0xE] = 1; + gBattleStruct[0x13] = 0; + gBattleScripting[0xE] = 1; gBattleMoveFlags = 0; gCritMultiplier = 1; - gUnknown_020241EA = AI_THINKING_STRUCT->moveConsidered; - sub_8046E7C(gPlayerMonIndex, gEnemyMonIndex); - move_effectiveness_something(gUnknown_020241EA, gPlayerMonIndex, gEnemyMonIndex); + gCurrentMove = AI_THINKING_STRUCT->moveConsidered; + sub_8046E7C(gPlayerMonIndex, gBankTarget); + move_effectiveness_something(gCurrentMove, gPlayerMonIndex, gBankTarget); gBattleMoveDamage = gBattleMoveDamage * AI_THINKING_STRUCT->unk18[AI_THINKING_STRUCT->movesetIndex] / 100; // this macro is missing the damage 0 = 1 assumption. - if (gBattleMons[gEnemyMonIndex].hp > gBattleMoveDamage) + if (gBattleMons[gBankTarget].hp > gBattleMoveDamage) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -2365,7 +2365,7 @@ void BattleAICmd_if_has_move(void) case 2: for (i = 0; i < 4; i++) { - if (UNK_2016A00_STRUCT->unk0[gEnemyMonIndex][i] == *temp_ptr) + if (UNK_2016A00_STRUCT->unk0[gBankTarget][i] == *temp_ptr) break; } if (i == 4) @@ -2409,7 +2409,7 @@ void BattleAICmd_if_dont_have_move(void) case 2: for (i = 0; i < 4; i++) { - if (UNK_2016A00_STRUCT->unk0[gEnemyMonIndex][i] == *temp_ptr) + if (UNK_2016A00_STRUCT->unk0[gBankTarget][i] == *temp_ptr) break; } if (i != 4) @@ -2447,7 +2447,7 @@ void BattleAICmd_if_move_effect(void) case 2: // _08133090 for (i = 0; i < 4; i++) { - if (gBattleMons[gPlayerMonIndex].moves[i] != 0 && gBattleMoves[UNK_2016A00_STRUCT->unk0[gEnemyMonIndex][i]].effect == gAIScriptPtr[2]) + if (gBattleMons[gPlayerMonIndex].moves[i] != 0 && gBattleMoves[UNK_2016A00_STRUCT->unk0[gBankTarget][i]].effect == gAIScriptPtr[2]) break; } if (i == 4) @@ -2480,7 +2480,7 @@ void BattleAICmd_if_not_move_effect(void) case 2: // _08133188 for (i = 0; i < 4; i++) { - if (UNK_2016A00_STRUCT->unk0[gEnemyMonIndex][i] && gBattleMoves[UNK_2016A00_STRUCT->unk0[gEnemyMonIndex][i]].effect == gAIScriptPtr[2]) + if (UNK_2016A00_STRUCT->unk0[gBankTarget][i] && gBattleMoves[UNK_2016A00_STRUCT->unk0[gBankTarget][i]].effect == gAIScriptPtr[2]) break; } if (i != 4) @@ -2498,11 +2498,11 @@ void BattleAICmd_if_last_move_did_damage(void) if (gAIScriptPtr[1] == USER) index = gPlayerMonIndex; else - index = gEnemyMonIndex; + index = gBankTarget; if (gAIScriptPtr[2] == 0) { - if (gUnknown_020242BC[index].unk4 == 0) + if (gDisableStructs[index].unk4 == 0) { gAIScriptPtr += 7; return; @@ -2515,7 +2515,7 @@ void BattleAICmd_if_last_move_did_damage(void) gAIScriptPtr += 7; return; } - else if (gUnknown_020242BC[index].unk6 != 0) + else if (gDisableStructs[index].unk6 != 0) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); return; @@ -2528,7 +2528,7 @@ void BattleAICmd_if_encored(void) switch (gAIScriptPtr[1]) { case 0: // _08109348 - if (gUnknown_020242BC[gUnknown_02024064].unk4 == AI_THINKING_STRUCT->moveConsidered) + if (gDisableStructs[gActiveBank].unk4 == AI_THINKING_STRUCT->moveConsidered) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; @@ -2536,7 +2536,7 @@ void BattleAICmd_if_encored(void) gAIScriptPtr += 6; return; case 1: // _08109370 - if (gUnknown_020242BC[gUnknown_02024064].unk6 == AI_THINKING_STRUCT->moveConsidered) + if (gDisableStructs[gActiveBank].unk6 == AI_THINKING_STRUCT->moveConsidered) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; @@ -2556,7 +2556,7 @@ void BattleAICmd_flee(void) void BattleAICmd_if_random_100(void) { - u8 safariFleeRate = gUnknown_0202449C[0x7B] * 5; // safari flee rate, from 0-20 + u8 safariFleeRate = gBattleStruct[0x7B] * 5; // safari flee rate, from 0-20 if ((u8)(Random() % 100) < safariFleeRate) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); @@ -2577,14 +2577,14 @@ void BattleAICmd_get_hold_effect(void) if (gAIScriptPtr[1] == USER) index = gPlayerMonIndex; else - index = gEnemyMonIndex; + index = gBankTarget; - if (gUnknown_02024064 != index) + if (gActiveBank != index) { - AI_THINKING_STRUCT->funcResult = itemid_get_x12(UNK_2016A00_STRUCT->unk44[index]); + AI_THINKING_STRUCT->funcResult = ItemId_GetHoldEffect(UNK_2016A00_STRUCT->unk44[index]); } else - AI_THINKING_STRUCT->funcResult = itemid_get_x12(gBattleMons[index].item); + AI_THINKING_STRUCT->funcResult = ItemId_GetHoldEffect(gBattleMons[index].item); gAIScriptPtr += 2; } @@ -2617,7 +2617,7 @@ void BattleAICmd_get_gender(void) if (gAIScriptPtr[1] == USER) index = gPlayerMonIndex; else - index = gEnemyMonIndex; + index = gBankTarget; AI_THINKING_STRUCT->funcResult = pokemon_species_get_gender_info(gBattleMons[index].species, gBattleMons[index].personality); @@ -2631,9 +2631,9 @@ void BattleAICmd_is_first_turn(void) if (gAIScriptPtr[1] == USER) index = gPlayerMonIndex; else - index = gEnemyMonIndex; + index = gBankTarget; - AI_THINKING_STRUCT->funcResult = gUnknown_020242BC[index].unk16; + AI_THINKING_STRUCT->funcResult = gDisableStructs[index].unk16; gAIScriptPtr += 2; } @@ -2645,9 +2645,9 @@ void BattleAICmd_get_stockpile_count(void) if (gAIScriptPtr[1] == USER) index = gPlayerMonIndex; else - index = gEnemyMonIndex; + index = gBankTarget; - AI_THINKING_STRUCT->funcResult = gUnknown_020242BC[index].unk9; + AI_THINKING_STRUCT->funcResult = gDisableStructs[index].unk9; gAIScriptPtr += 2; } @@ -2666,10 +2666,10 @@ void BattleAICmd_get_item(void) if (gAIScriptPtr[1] == USER) index = gPlayerMonIndex; else - index = gEnemyMonIndex; + index = gBankTarget; // this hack and a half matches. whatever. i dont care. someone else fix this mess later. PS: still cant fix this. - AI_THINKING_STRUCT->funcResult = gUnknown_0202449C[0xB8 + (index * 2)]; + AI_THINKING_STRUCT->funcResult = gBattleStruct[0xB8 + (index * 2)]; gAIScriptPtr += 2; } @@ -2702,9 +2702,9 @@ void BattleAICmd_get_protect_count(void) if (gAIScriptPtr[1] == USER) index = gPlayerMonIndex; else - index = gEnemyMonIndex; + index = gBankTarget; - AI_THINKING_STRUCT->funcResult = gUnknown_020242BC[index].unk8; + AI_THINKING_STRUCT->funcResult = gDisableStructs[index].unk8; gAIScriptPtr += 2; } @@ -2755,7 +2755,7 @@ void BattleAICmd_if_level_cond(void) switch (gAIScriptPtr[1]) { case 0: // greater than - if (gBattleMons[gPlayerMonIndex].level > gBattleMons[gEnemyMonIndex].level) + if (gBattleMons[gPlayerMonIndex].level > gBattleMons[gBankTarget].level) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; @@ -2763,7 +2763,7 @@ void BattleAICmd_if_level_cond(void) gAIScriptPtr += 6; return; case 1: // less than - if (gBattleMons[gPlayerMonIndex].level < gBattleMons[gEnemyMonIndex].level) + if (gBattleMons[gPlayerMonIndex].level < gBattleMons[gBankTarget].level) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; @@ -2771,7 +2771,7 @@ void BattleAICmd_if_level_cond(void) gAIScriptPtr += 6; return; case 2: // equal - if (gBattleMons[gPlayerMonIndex].level == gBattleMons[gEnemyMonIndex].level) + if (gBattleMons[gPlayerMonIndex].level == gBattleMons[gBankTarget].level) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; @@ -2783,7 +2783,7 @@ void BattleAICmd_if_level_cond(void) void BattleAICmd_if_taunted(void) { - if (gUnknown_020242BC[gEnemyMonIndex].taunt != 0) + if (gDisableStructs[gBankTarget].taunt != 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -2791,7 +2791,7 @@ void BattleAICmd_if_taunted(void) void BattleAICmd_if_not_taunted(void) { - if (gUnknown_020242BC[gEnemyMonIndex].taunt == 0) + if (gDisableStructs[gBankTarget].taunt == 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -2799,7 +2799,7 @@ void BattleAICmd_if_not_taunted(void) void tai5E_unk(void) { - if((gPlayerMonIndex & 1) == (gEnemyMonIndex & 1)) + if((gPlayerMonIndex & 1) == (gBankTarget & 1)) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; diff --git a/src/decompress.c b/src/decompress.c new file mode 100644 index 0000000000..befdbaba2e --- /dev/null +++ b/src/decompress.c @@ -0,0 +1,597 @@ +#include "global.h" +#include "decompress.h" +#include "species.h" +#include "text.h" +#include "malloc.h" + +EWRAM_DATA ALIGNED(4) u8 gDecompressionBuffer[0x4000] = {0}; + +extern const struct CompressedSpriteSheet gMonFrontPicTable[]; +extern const struct CompressedSpriteSheet gMonBackPicTable[]; + +extern void DrawSpindaSpots(u16 species, u32 personality, void* dest, bool8 isFrontPic); + +static void DuplicateDeoxysTiles(void *pointer, s32 species); + +void LZDecompressWram(const void *src, void *dest) +{ + LZ77UnCompWram(src, dest); +} + +void LZDecompressVram(const void *src, void *dest) +{ + LZ77UnCompVram(src, dest); +} + +u16 LoadCompressedObjectPic(const struct CompressedSpriteSheet *src) +{ + struct SpriteSheet dest; + + LZ77UnCompWram(src->data, gDecompressionBuffer); + dest.data = gDecompressionBuffer; + dest.size = src->size; + dest.tag = src->tag; + return LoadSpriteSheet(&dest); +} + +void LoadCompressedObjectPicOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer) +{ + struct SpriteSheet dest; + + LZ77UnCompWram(src->data, buffer); + dest.data = buffer; + dest.size = src->size; + dest.tag = src->tag; + LoadSpriteSheet(&dest); +} + +void LoadCompressedObjectPalette(const struct CompressedSpritePalette *src) +{ + struct SpritePalette dest; + + LZ77UnCompWram(src->data, gDecompressionBuffer); + dest.data = (void*) gDecompressionBuffer; + dest.tag = src->tag; + LoadSpritePalette(&dest); +} + +void LoadCompressedObjectPaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer) +{ + struct SpritePalette dest; + + LZ77UnCompWram(a->data, buffer); + dest.data = buffer; + dest.tag = a->tag; + LoadSpritePalette(&dest); +} + +void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void* buffer, s32 species) +{ + if (species > SPECIES_EGG) + LZ77UnCompWram(gMonFrontPicTable[0].data, buffer); + else + LZ77UnCompWram(src->data, buffer); + DuplicateDeoxysTiles(buffer, species); +} + +void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality) +{ + bool8 isFrontPic; + + if (src == &gMonFrontPicTable[species]) + isFrontPic = TRUE; // frontPic + else + isFrontPic = FALSE; // backPic + + LoadSpecialPokePic_2(src, dest, species, personality, isFrontPic); +} + +void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic) +{ + if (species == SPECIES_UNOWN) + { + u16 i = (((personality & 0x3000000) >> 18) | ((personality & 0x30000) >> 12) | ((personality & 0x300) >> 6) | (personality & 3)) % 0x1C; + + // The other Unowns are separate from Unown A. + if (i == 0) + i = SPECIES_UNOWN; + else + i += SPECIES_UNOWN_B - 1; + + if (!isFrontPic) + LZ77UnCompWram(gMonBackPicTable[i].data, dest); + else + LZ77UnCompWram(gMonFrontPicTable[i].data, dest); + } + else if (species > SPECIES_EGG) // is species unknown? draw the ? icon + LZ77UnCompWram(gMonFrontPicTable[0].data, dest); + else + LZ77UnCompWram(src->data, dest); + + DuplicateDeoxysTiles(dest, species); + DrawSpindaSpots(species, personality, dest, isFrontPic); +} + +void Unused_LZDecompressWramIndirect(const void **src, void *dest) +{ + LZ77UnCompWram(*src, dest); +} + +// This one (unused) function is really challenging, won't even try to decompile it. +__attribute__((naked)) +void sub_803471C() +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x24\n\ + mov r9, r0\n\ + str r1, [sp]\n\ + str r2, [sp, 0x4]\n\ + adds r5, r3, 0\n\ + movs r0, 0x1\n\ + mov r1, r9\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0803473C\n\ + b _080348D4\n\ +_0803473C:\n\ + asrs r0, r1, 1\n\ + adds r0, 0x4\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + str r0, [sp, 0x8]\n\ + movs r0, 0\n\ + ldr r2, [sp]\n\ + cmp r0, r2\n\ + blt _08034750\n\ + b _08034964\n\ +_08034750:\n\ + movs r4, 0x8\n\ + subs r1, r4, r1\n\ + str r1, [sp, 0x10]\n\ +_08034756:\n\ + movs r7, 0\n\ + adds r0, 0x1\n\ + str r0, [sp, 0x14]\n\ + ldr r0, [sp, 0x10]\n\ + cmp r7, r0\n\ + bge _080347D2\n\ + ldr r1, [sp, 0x8]\n\ + lsls r1, 8\n\ + str r1, [sp, 0x18]\n\ + movs r2, 0\n\ + mov r10, r2\n\ + mov r0, r9\n\ + movs r4, 0x8\n\ + subs r0, r4, r0\n\ + str r0, [sp, 0xC]\n\ +_08034774:\n\ + movs r3, 0\n\ + asrs r0, r7, 1\n\ + adds r1, r7, 0\n\ + movs r2, 0x1\n\ + ands r1, r2\n\ + str r1, [sp, 0x20]\n\ + lsls r0, 8\n\ + mov r8, r0\n\ + mov r12, r5\n\ +_08034786:\n\ + lsls r1, r3, 5\n\ + ldr r4, [sp, 0x18]\n\ + adds r0, r5, r4\n\ + adds r0, r1\n\ + mov r1, r8\n\ + adds r2, r0, r1\n\ + mov r1, r12\n\ + add r1, r8\n\ + movs r6, 0xF\n\ +_08034798:\n\ + ldr r4, [sp, 0x20]\n\ + cmp r4, 0\n\ + bne _080347A8\n\ + strb r4, [r1]\n\ + add r4, sp, 0x20\n\ + ldrb r4, [r4]\n\ + strb r4, [r2, 0x10]\n\ + b _080347B6\n\ +_080347A8:\n\ + mov r0, r10\n\ + strb r0, [r1, 0x10]\n\ + movs r4, 0x80\n\ + lsls r4, 1\n\ + adds r4, r2, r4\n\ + str r4, [sp, 0x1C]\n\ + strb r0, [r4]\n\ +_080347B6:\n\ + adds r2, 0x1\n\ + adds r1, 0x1\n\ + subs r6, 0x1\n\ + cmp r6, 0\n\ + bge _08034798\n\ + movs r0, 0x20\n\ + add r12, r0\n\ + adds r3, 0x1\n\ + cmp r3, 0x7\n\ + ble _08034786\n\ + adds r7, 0x1\n\ + ldr r1, [sp, 0xC]\n\ + cmp r7, r1\n\ + blt _08034774\n\ +_080347D2:\n\ + movs r7, 0\n\ + movs r2, 0\n\ +_080347D6:\n\ + movs r6, 0\n\ + adds r4, r7, 0x1\n\ + mov r8, r4\n\ + lsls r4, r7, 5\n\ +_080347DE:\n\ + adds r0, r6, 0x1\n\ + mov r10, r0\n\ + lsls r1, r6, 8\n\ + adds r0, r1, 0\n\ + adds r0, 0xC0\n\ + adds r0, r5, r0\n\ + adds r0, r4\n\ + adds r1, r5, r1\n\ + adds r1, r4\n\ + movs r3, 0x1F\n\ +_080347F2:\n\ + strb r2, [r1]\n\ + strb r2, [r0]\n\ + adds r0, 0x1\n\ + adds r1, 0x1\n\ + subs r3, 0x1\n\ + cmp r3, 0\n\ + bge _080347F2\n\ + mov r6, r10\n\ + cmp r6, 0x7\n\ + ble _080347DE\n\ + mov r7, r8\n\ + cmp r7, 0x1\n\ + ble _080347D6\n\ + mov r1, r9\n\ + cmp r1, 0x5\n\ + bne _08034818\n\ + movs r2, 0x90\n\ + lsls r2, 1\n\ + adds r5, r2\n\ +_08034818:\n\ + movs r7, 0\n\ + cmp r7, r9\n\ + bge _080348AE\n\ +_0803481E:\n\ + movs r3, 0\n\ + adds r7, 0x1\n\ + mov r8, r7\n\ + cmp r3, r9\n\ + bge _0803488E\n\ +_08034828:\n\ + adds r3, 0x1\n\ + mov r10, r3\n\ + ldr r4, [sp, 0x4]\n\ + adds r4, 0x20\n\ + adds r7, r5, 0\n\ + adds r7, 0x20\n\ + movs r0, 0x12\n\ + adds r0, r5\n\ + mov r12, r0\n\ + ldr r2, [sp, 0x4]\n\ + adds r3, r5, 0\n\ + movs r6, 0x3\n\ +_08034840:\n\ + ldrb r0, [r2]\n\ + mov r1, r12\n\ + strb r0, [r1]\n\ + ldrb r0, [r2, 0x1]\n\ + strb r0, [r1, 0x1]\n\ + ldrb r0, [r2, 0x2]\n\ + strb r0, [r1, 0x1E]\n\ + ldrb r0, [r2, 0x3]\n\ + strb r0, [r1, 0x1F]\n\ + movs r0, 0x81\n\ + lsls r0, 1\n\ + adds r1, r3, r0\n\ + ldrb r0, [r2, 0x10]\n\ + strb r0, [r1]\n\ + ldr r0, =0x00000103\n\ + adds r1, r3, r0\n\ + ldrb r0, [r2, 0x11]\n\ + strb r0, [r1]\n\ + movs r0, 0x90\n\ + lsls r0, 1\n\ + adds r1, r3, r0\n\ + ldrb r0, [r2, 0x12]\n\ + strb r0, [r1]\n\ + ldr r0, =0x00000121\n\ + adds r1, r3, r0\n\ + ldrb r0, [r2, 0x13]\n\ + strb r0, [r1]\n\ + movs r1, 0x4\n\ + add r12, r1\n\ + adds r2, 0x4\n\ + adds r3, 0x4\n\ + subs r6, 0x1\n\ + cmp r6, 0\n\ + bge _08034840\n\ + str r4, [sp, 0x4]\n\ + adds r5, r7, 0\n\ + mov r3, r10\n\ + cmp r3, r9\n\ + blt _08034828\n\ +_0803488E:\n\ + mov r2, r9\n\ + cmp r2, 0x7\n\ + bne _080348A0\n\ + adds r5, 0x20\n\ + b _080348A8\n\ + .pool\n\ +_080348A0:\n\ + mov r4, r9\n\ + cmp r4, 0x5\n\ + bne _080348A8\n\ + adds r5, 0x60\n\ +_080348A8:\n\ + mov r7, r8\n\ + cmp r7, r9\n\ + blt _0803481E\n\ +_080348AE:\n\ + mov r0, r9\n\ + cmp r0, 0x7\n\ + bne _080348BC\n\ + movs r1, 0x80\n\ + lsls r1, 1\n\ + adds r5, r1\n\ + b _080348C8\n\ +_080348BC:\n\ + mov r2, r9\n\ + cmp r2, 0x5\n\ + bne _080348C8\n\ + movs r4, 0xF0\n\ + lsls r4, 1\n\ + adds r5, r4\n\ +_080348C8:\n\ + ldr r0, [sp, 0x14]\n\ + ldr r1, [sp]\n\ + cmp r0, r1\n\ + bge _080348D2\n\ + b _08034756\n\ +_080348D2:\n\ + b _08034964\n\ +_080348D4:\n\ + movs r6, 0\n\ + ldr r2, [sp]\n\ + cmp r6, r2\n\ + bge _08034964\n\ +_080348DC:\n\ + adds r6, 0x1\n\ + mov r10, r6\n\ + mov r4, r9\n\ + cmp r4, 0x6\n\ + bne _080348F4\n\ + movs r0, 0\n\ + movs r3, 0xFF\n\ +_080348EA:\n\ + strb r0, [r5]\n\ + adds r5, 0x1\n\ + subs r3, 0x1\n\ + cmp r3, 0\n\ + bge _080348EA\n\ +_080348F4:\n\ + movs r7, 0\n\ + cmp r7, r9\n\ + bge _08034948\n\ +_080348FA:\n\ + adds r7, 0x1\n\ + mov r8, r7\n\ + mov r1, r9\n\ + lsls r0, r1, 5\n\ + cmp r1, 0x6\n\ + bne _08034914\n\ + movs r1, 0\n\ + movs r3, 0x1F\n\ +_0803490A:\n\ + strb r1, [r5]\n\ + adds r5, 0x1\n\ + subs r3, 0x1\n\ + cmp r3, 0\n\ + bge _0803490A\n\ +_08034914:\n\ + adds r1, r0, 0\n\ + cmp r1, 0\n\ + ble _0803492E\n\ + adds r3, r1, 0\n\ +_0803491C:\n\ + ldr r2, [sp, 0x4]\n\ + ldrb r0, [r2]\n\ + strb r0, [r5]\n\ + adds r2, 0x1\n\ + str r2, [sp, 0x4]\n\ + adds r5, 0x1\n\ + subs r3, 0x1\n\ + cmp r3, 0\n\ + bne _0803491C\n\ +_0803492E:\n\ + mov r4, r9\n\ + cmp r4, 0x6\n\ + bne _08034942\n\ + movs r0, 0\n\ + movs r3, 0x1F\n\ +_08034938:\n\ + strb r0, [r5]\n\ + adds r5, 0x1\n\ + subs r3, 0x1\n\ + cmp r3, 0\n\ + bge _08034938\n\ +_08034942:\n\ + mov r7, r8\n\ + cmp r7, r9\n\ + blt _080348FA\n\ +_08034948:\n\ + mov r0, r9\n\ + cmp r0, 0x6\n\ + bne _0803495C\n\ + movs r0, 0\n\ + movs r3, 0xFF\n\ +_08034952:\n\ + strb r0, [r5]\n\ + adds r5, 0x1\n\ + subs r3, 0x1\n\ + cmp r3, 0\n\ + bge _08034952\n\ +_0803495C:\n\ + mov r6, r10\n\ + ldr r1, [sp]\n\ + cmp r6, r1\n\ + blt _080348DC\n\ +_08034964:\n\ + add sp, 0x24\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided"); +} + +u32 sub_8034974(void* ptr) +{ + u8* ptr_ = (u8*)(ptr); + return (ptr_[3] << 16) | (ptr_[2] << 8) | (ptr_[1]); +} + +bool8 LoadCompressedObjectPicUsingHeap(struct CompressedSpriteSheet* src) +{ + struct SpriteSheet dest; + void* buffer; + + buffer = AllocZeroed(*((u32*)(&src->data[0])) >> 8); + LZ77UnCompWram(src->data, buffer); + + dest.data = buffer; + dest.size = src->size; + dest.tag = src->tag; + + LoadSpriteSheet(&dest); + Free(buffer); + return FALSE; +} + +bool8 LoadCompressedObjectPaletteUsingHeap(const struct CompressedSpritePalette *src) +{ + struct SpritePalette dest; + void* buffer; + + buffer = AllocZeroed(*((u32*)(&src->data[0])) >> 8); + LZ77UnCompWram(src->data, buffer); + dest.data = buffer; + dest.tag = src->tag; + + LoadSpritePalette(&dest); + Free(buffer); + return FALSE; +} + +void DecompressPicFromTable_2(const struct CompressedSpriteSheet *src, void* buffer, s32 species) // a copy of DecompressPicFromTable +{ + if (species > SPECIES_EGG) + LZ77UnCompWram(gMonFrontPicTable[0].data, buffer); + else + LZ77UnCompWram(src->data, buffer); + DuplicateDeoxysTiles(buffer, species); +} + +void LoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic) // a copy of LoadSpecialPokePic +{ + if (species == SPECIES_UNOWN) + { + u16 i = (((personality & 0x3000000) >> 18) | ((personality & 0x30000) >> 12) | ((personality & 0x300) >> 6) | (personality & 3)) % 0x1C; + + // The other Unowns are separate from Unown A. + if (i == 0) + i = SPECIES_UNOWN; + else + i += SPECIES_UNOWN_B - 1; + + if (!isFrontPic) + LZ77UnCompWram(gMonBackPicTable[i].data, dest); + else + LZ77UnCompWram(gMonFrontPicTable[i].data, dest); + } + else if (species > SPECIES_EGG) // is species unknown? draw the ? icon + LZ77UnCompWram(gMonFrontPicTable[0].data, dest); + else + LZ77UnCompWram(src->data, dest); + + DuplicateDeoxysTiles(dest, species); + DrawSpindaSpots(species, personality, dest, isFrontPic); +} + +void HandleLoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality) // a copy of HandleLoadSpecialPokePic +{ + bool8 isFrontPic; + + if (src == &gMonFrontPicTable[species]) + isFrontPic = TRUE; // frontPic + else + isFrontPic = FALSE; // backPic + + LoadSpecialPokePic_2(src, dest, species, personality, isFrontPic); +} + +void DecompressPicFromTable_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void* buffer, s32 species) +{ + if (species > SPECIES_EGG) + LZ77UnCompWram(gMonFrontPicTable[0].data, buffer); + else + LZ77UnCompWram(src->data, buffer); +} + +void HandleLoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality) +{ + bool8 isFrontPic; + + if (src == &gMonFrontPicTable[species]) + isFrontPic = TRUE; // frontPic + else + isFrontPic = FALSE; // backPic + + LoadSpecialPokePic_DontHandleDeoxys(src, dest, species, personality, isFrontPic); +} + +void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic) +{ + if (species == SPECIES_UNOWN) + { + u16 i = (((personality & 0x3000000) >> 18) | ((personality & 0x30000) >> 12) | ((personality & 0x300) >> 6) | (personality & 3)) % 0x1C; + + // The other Unowns are separate from Unown A. + if (i == 0) + i = SPECIES_UNOWN; + else + i += SPECIES_UNOWN_B - 1; + + if (!isFrontPic) + LZ77UnCompWram(gMonBackPicTable[i].data, dest); + else + LZ77UnCompWram(gMonFrontPicTable[i].data, dest); + } + else if (species > SPECIES_EGG) // is species unknown? draw the ? icon + LZ77UnCompWram(gMonFrontPicTable[0].data, dest); + else + LZ77UnCompWram(src->data, dest); + + DrawSpindaSpots(species, personality, dest, isFrontPic); +} + +static void DuplicateDeoxysTiles(void *pointer, s32 species) +{ + if (species == SPECIES_DEOXYS) + CpuCopy32(pointer + 0x800, pointer, 0x800); +} diff --git a/src/event_data.c b/src/event_data.c new file mode 100644 index 0000000000..fb2edb063b --- /dev/null +++ b/src/event_data.c @@ -0,0 +1,236 @@ +#include "global.h" +#include "event_data.h" + +#define TEMP_FLAGS_SIZE 0x4 +#define TEMP_UPPER_FLAGS_SIZE 0x8 +#define TEMP_VARS_SIZE 0x20 + +EWRAM_DATA u16 gSpecialVar_0x8000 = 0; +EWRAM_DATA u16 gSpecialVar_0x8001 = 0; +EWRAM_DATA u16 gSpecialVar_0x8002 = 0; +EWRAM_DATA u16 gSpecialVar_0x8003 = 0; +EWRAM_DATA u16 gSpecialVar_0x8004 = 0; +EWRAM_DATA u16 gSpecialVar_0x8005 = 0; +EWRAM_DATA u16 gSpecialVar_0x8006 = 0; +EWRAM_DATA u16 gSpecialVar_0x8007 = 0; +EWRAM_DATA u16 gSpecialVar_0x8008 = 0; +EWRAM_DATA u16 gSpecialVar_0x8009 = 0; +EWRAM_DATA u16 gSpecialVar_0x800A = 0; +EWRAM_DATA u16 gSpecialVar_0x800B = 0; +EWRAM_DATA u16 gScriptResult = 0; +EWRAM_DATA u16 gScriptLastTalked = 0; +EWRAM_DATA u16 gScriptFacing = 0; +EWRAM_DATA u16 gSpecialVar_0x8012 = 0; +EWRAM_DATA u16 gSpecialVar_0x8013 = 0; +EWRAM_DATA u16 gSpecialVar_0x8014 = 0; +EWRAM_DATA static u8 gUnknown_020375FC[16] = {0}; + +extern u16 * const gSpecialVars[]; + +extern void sub_80BB358(void); + +void InitEventData(void) +{ + memset(gSaveBlock1Ptr->flags, 0, sizeof(gSaveBlock1Ptr->flags)); + memset(gSaveBlock1Ptr->vars, 0, sizeof(gSaveBlock1Ptr->vars)); + memset(gUnknown_020375FC, 0, sizeof(gUnknown_020375FC)); +} + +void ClearTempFieldEventData(void) +{ + memset(gSaveBlock1Ptr->flags, 0, TEMP_FLAGS_SIZE); + memset(gSaveBlock1Ptr->vars, 0, TEMP_VARS_SIZE); + FlagReset(SYS_ENC_UP_ITEM); + FlagReset(SYS_ENC_DOWN_ITEM); + FlagReset(SYS_USE_STRENGTH); + FlagReset(SYS_CTRL_OBJ_DELETE); + FlagReset(SYS_UNKNOWN_880); +} + +// probably had different flag splits at one point. +void ClearUpperFlags(void) +{ + memset(gSaveBlock1Ptr->flags + 0x124, 0, TEMP_UPPER_FLAGS_SIZE); +} + +void DisableNationalPokedex(void) +{ + u16 *nationalDexVar = GetVarPointer(VAR_NATIONAL_DEX); + gSaveBlock2Ptr->pokedex.nationalMagic = 0; + *nationalDexVar = 0; + FlagReset(SYS_NATIONAL_DEX); +} + +void EnableNationalPokedex(void) +{ + u16 *nationalDexVar = GetVarPointer(VAR_NATIONAL_DEX); + gSaveBlock2Ptr->pokedex.nationalMagic = 0xDA; + *nationalDexVar = 0x302; + FlagSet(SYS_NATIONAL_DEX); + gSaveBlock2Ptr->pokedex.unknown1 = 1; + gSaveBlock2Ptr->pokedex.order = 0; + sub_80BB358(); +} + +bool32 IsNationalPokedexEnabled(void) +{ + if (gSaveBlock2Ptr->pokedex.nationalMagic == 0xDA && VarGet(VAR_NATIONAL_DEX) == 0x302 && FlagGet(SYS_NATIONAL_DEX)) + return TRUE; + else + return FALSE; +} + +void DisableMysteryEvent(void) +{ + FlagReset(SYS_MYSTERY_EVENT_ENABLE); +} + +void EnableMysteryEvent(void) +{ + FlagSet(SYS_MYSTERY_EVENT_ENABLE); +} + +bool32 IsMysteryEventEnabled(void) +{ + return FlagGet(SYS_MYSTERY_EVENT_ENABLE); +} + +void DisableMysteryGift(void) +{ + FlagReset(SYS_MYSTERY_GIFT_ENABLE); +} + +void EnableMysteryGift(void) +{ + FlagSet(SYS_MYSTERY_GIFT_ENABLE); +} + +bool32 IsMysteryGiftEnabled(void) +{ + return FlagGet(SYS_MYSTERY_GIFT_ENABLE); +} + +void sub_809D4D8(void) +{ + FlagReset(0x1E4); + FlagReset(0x1E5); + FlagReset(0x1E6); + FlagReset(0x1E7); + FlagReset(0x1E8); + FlagReset(0x1E9); + FlagReset(0x1EA); + FlagReset(0x1EB); + FlagReset(0x1EC); + FlagReset(0x1ED); + FlagReset(0x1EE); + FlagReset(0x1EF); + FlagReset(0x1F0); + FlagReset(0x1F1); + FlagReset(0x1F2); + FlagReset(0x1F3); +} + +void sub_809D570(void) +{ + VarSet(0x40DD, 0); + VarSet(0x40DE, 0); + VarSet(0x40DF, 0); + VarSet(0x40E0, 0); + VarSet(0x40E1, 0); + VarSet(0x40E2, 0); + VarSet(0x40E3, 0); + VarSet(0x40E4, 0); +} + +void DisableResetRTC(void) +{ + VarSet(VAR_RESET_RTC_ENABLE, 0); + FlagReset(SYS_RESET_RTC_ENABLE); +} + +void EnableResetRTC(void) +{ + VarSet(VAR_RESET_RTC_ENABLE, 0x920); + FlagSet(SYS_RESET_RTC_ENABLE); +} + +bool32 CanResetRTC(void) +{ + if (FlagGet(SYS_RESET_RTC_ENABLE) && VarGet(VAR_RESET_RTC_ENABLE) == 0x920) + return TRUE; + else + return FALSE; +} + +u16 *GetVarPointer(u16 id) +{ + if (id < 0x4000) + return NULL; + + if ((s16)id >= 0) + return &gSaveBlock1Ptr->vars[id - 0x4000]; + + return gSpecialVars[id - 0x8000]; +} + +u16 VarGet(u16 id) +{ + u16 *ptr = GetVarPointer(id); + if (!ptr) + return id; + return *ptr; +} + +bool8 VarSet(u16 id, u16 value) +{ + u16 *ptr = GetVarPointer(id); + if (!ptr) + return FALSE; + *ptr = value; + return TRUE; +} + +u8 VarGetFieldObjectGraphicsId(u8 id) +{ + return VarGet(0x4010 + id); +} + +u8 *GetFlagPointer(u16 id) +{ + if (id == 0) + return 0; + + if (id < 0x4000) + return &gSaveBlock1Ptr->flags[id / 8]; + + return &gUnknown_020375FC[(id - 0x4000) / 8]; +} + +u8 FlagSet(u16 id) +{ + u8 *ptr = GetFlagPointer(id); + if (ptr) + *ptr |= 1 << (id & 7); + return 0; +} + +u8 FlagReset(u16 id) +{ + u8 *ptr = GetFlagPointer(id); + if (ptr) + *ptr &= ~(1 << (id & 7)); + return 0; +} + +bool8 FlagGet(u16 id) +{ + u8 *ptr = GetFlagPointer(id); + + if (!ptr) + return FALSE; + + if (!(((*ptr) >> (id & 7)) & 1)) + return FALSE; + + return TRUE; +} diff --git a/src/item.c b/src/item.c new file mode 100644 index 0000000000..4ad70e11f6 --- /dev/null +++ b/src/item.c @@ -0,0 +1,228 @@ +#include "global.h" +#include "item.h" +#include "string_util.h" +#include "text.h" +#include "event_data.h" + +extern void ApplyNewEncyprtionKeyToHword(u16* hword, u32 newKey); +extern bool8 InBattlePyramid(void); + +extern const u8 gOtherText_PokeBalls[]; +extern const u8 gOtherText_Berries[]; +extern const u8 gOtherText_Berry[]; +extern const u8 gUnknown_085897E4[][28]; // not sure what this one is + +bool8 CheckPyramidBagHasItem(u16 itemId, u16 count); +bool8 CheckPyramidBagHasSpace(u16 itemId, u16 count); + +enum +{ + ITEMS_POCKET, + BALLS_POCKET, + TMHM_POCKET, + BERRIES_POCKET, + KEYITEMS_POCKET +}; + +u16 GetBagItemQuantity(u16* quantity) +{ + return gSaveBlock2Ptr->encryptionKey ^ *quantity; +} + +void SetBagItemQuantity(u16* quantity, u16 newValue) +{ + *quantity = newValue ^ gSaveBlock2Ptr->encryptionKey; +} + +u16 GetBagItemId(u16* slot) +{ + return *slot; +} + +void SetBagItemId(u16* slot, u16 newItemId) +{ + *slot = newItemId; +} + +void ApplyNewEncyprtionKeyToBagItems(u32 newKey) +{ + u32 pocket, item; + for (pocket = 0; pocket < 5; pocket++) + { + for (item = 0; item < gBagPockets[pocket].capacity; item++) + ApplyNewEncyprtionKeyToHword(&(gBagPockets[pocket].itemSlots[item].quantity), newKey); + } +} + +void ApplyNewEncyprtionKeyToBagItems_(u32 newKey) // really GF? +{ + ApplyNewEncyprtionKeyToBagItems(newKey); +} + +// TODO: move those max values to defines + +void SetBagItemsPointers(void) +{ + gBagPockets[ITEMS_POCKET].itemSlots = gSaveBlock1Ptr->bagPocket_Items; + gBagPockets[ITEMS_POCKET].capacity = 30; + + gBagPockets[KEYITEMS_POCKET].itemSlots = gSaveBlock1Ptr->bagPocket_KeyItems; + gBagPockets[KEYITEMS_POCKET].capacity = 30; + + gBagPockets[BALLS_POCKET].itemSlots = gSaveBlock1Ptr->bagPocket_PokeBalls; + gBagPockets[BALLS_POCKET].capacity = 16; + + gBagPockets[TMHM_POCKET].itemSlots = gSaveBlock1Ptr->bagPocket_TMHM; + gBagPockets[TMHM_POCKET].capacity = 64; + + gBagPockets[BERRIES_POCKET].itemSlots = gSaveBlock1Ptr->bagPocket_Berries; + gBagPockets[BERRIES_POCKET].capacity = 46; +} + +void CopyItemName(u16 itemId, u8 *string) +{ + StringCopy(string, ItemId_GetItem(itemId)->name); +} + +void CopyItemNameHandlePlural(u16 itemId, u8 *string, u32 quantity) +{ + if (itemId == 4) + { + if (quantity < 2) + StringCopy(string, ItemId_GetItem(4)->name); + else + StringCopy(string, gOtherText_PokeBalls); + } + else + { + if (itemId >= 0x85 && itemId <= 0xAF) + GetBerryCountString(string, gUnknown_085897E4[itemId], quantity); + else + StringCopy(string, ItemId_GetItem(itemId)->name); + } +} + +void GetBerryCountString(u8* dst, const u8* berryName, u32 quantity) +{ + const u8* berryString; + u8* txtPtr; + + if (quantity < 2) + berryString = gOtherText_Berry; + else + berryString = gOtherText_Berries; + txtPtr = StringCopy(dst, berryName); + *txtPtr = CHAR_SPACE; + StringCopy(txtPtr + 1, berryString); +} + +bool8 IsBagPocketNonEmpty(u8 pocket) +{ + u8 i; + + for (i = 0; i < gBagPockets[pocket - 1].capacity; i++) + { + if (gBagPockets[pocket - 1].itemSlots[i].itemId != 0) + return TRUE; + } + return FALSE; +} + +bool8 CheckBagHasItem(u16 itemId, u16 count) +{ + u8 i; + u8 pocket; + + if (ItemId_GetPocket(itemId) == 0) + return FALSE; + if (InBattlePyramid() || FlagGet(0x4004) == TRUE) + return CheckPyramidBagHasItem(itemId, count); + pocket = ItemId_GetPocket(itemId) - 1; + //Check for item slots that contain the item + for (i = 0; i < gBagPockets[pocket].capacity; i++) + { + if (gBagPockets[pocket].itemSlots[i].itemId == itemId) + { + u16 quantity; + //Does this item slot contain enough of the item? + quantity = GetBagItemQuantity(&gBagPockets[pocket].itemSlots[i].quantity); + if (quantity >= count) + return TRUE; + count -= quantity; + //Does this item slot and all previous slots contain enough of the item? + if (count == 0) + return TRUE; + } + } + return FALSE; +} + +bool8 HasAtLeastOneBerry(void) +{ + u16 i; + for (i = 0x85; i < 0xB3; i++) + { + if (CheckBagHasItem(i, 1) == TRUE) + { + gScriptResult = 1; + return TRUE; + } + } + gScriptResult = 0; + return FALSE; +} + +/* Refuses to match. +bool8 CheckBagHasSpace(u16 itemId, u16 count) +{ + u8 i; + u8 pocket; + u16 slotCapacity; + u16 quantity; + + if (ItemId_GetPocket(itemId) == 0) + return FALSE; + if (InBattlePyramid() || FlagGet(0x4004) == TRUE) + return CheckPyramidBagHasSpace(itemId, count); + pocket = ItemId_GetPocket(itemId) - 1; + if (pocket != BERRIES_POCKET) + slotCapacity = 99; + else + slotCapacity = 999; + + //Check space in any existing item slots that already contain this item + for (i = 0; i < gBagPockets[pocket].capacity; i++) + { + if (gBagPockets[pocket].itemSlots[i].itemId == itemId) + { + quantity = GetBagItemQuantity(&gBagPockets[pocket].itemSlots[i].quantity); + if (quantity + count <= slotCapacity) + return TRUE; + if (pocket == TMHM_POCKET || pocket == BERRIES_POCKET) + return FALSE; + count -= slotCapacity - quantity; + if (count == 0) + return TRUE; + } + } + + //Check space in empty item slots + if (count > 0) + { + for (i = 0; i < gBagPockets[pocket].capacity; i++) + { + if (gBagPockets[pocket].itemSlots[i].itemId == 0) + { + if (count <= slotCapacity) + return TRUE; + if (pocket == TMHM_POCKET || pocket == BERRIES_POCKET) + return FALSE; + count -= slotCapacity; + } + } + if (count > 0) + return FALSE; //No more item slots. The bag is full + } + + return TRUE; +}*/ diff --git a/src/main.c b/src/main.c index 61280f5a70..7c8075a6f8 100644 --- a/src/main.c +++ b/src/main.c @@ -22,7 +22,7 @@ extern void rfu_REQ_stopMode(void); extern void rfu_waitREQComplete(void); extern bool32 sub_8087634(void); extern bool32 sub_80875C8(void); -extern void ClearObjectCopyRequests(void); +extern void ClearSpriteCopyRequests(void); extern void PlayTimeCounter_Update(void); extern void MapMusicMain(void); extern void EnableInterrupts(u16); @@ -159,7 +159,7 @@ void AgbMain() if (sub_80875C8() == 1) { gMain.newKeys = 0; - ClearObjectCopyRequests(); + ClearSpriteCopyRequests(); gUnknown_030022B4 = 1; UpdateLinkAndCallCallbacks(); gUnknown_030022B4 = 0; @@ -217,7 +217,7 @@ void SeedRngAndSetTrainerId(void) gTrainerId = val; } -u16 GetTrainerId(void) +u16 GetGeneratedTrainerIdLower(void) { return gTrainerId; } diff --git a/src/malloc.c b/src/malloc.c index fd9dc616a7..948303c6fe 100644 --- a/src/malloc.c +++ b/src/malloc.c @@ -1,5 +1,7 @@ #include "global.h" +EWRAM_DATA u8 gHeap[0x1C000] = {0}; + static void *sHeapStart; static u32 sHeapSize; @@ -67,7 +69,7 @@ void *AllocInternal(void *heapStart, u32 size) // size, so split the rest into a separate block. foundBlockSize -= sizeof(struct MemBlock); foundBlockSize -= size; - + splitBlock = (struct MemBlock *)(pos->data + size); pos->flag = TRUE; diff --git a/src/new_game.c b/src/new_game.c new file mode 100644 index 0000000000..649cf4e6d4 --- /dev/null +++ b/src/new_game.c @@ -0,0 +1,111 @@ +#include "global.h" +#include "new_game.h" +#include "rng.h" + +extern u8 gPlayerPartyCount; +extern u8 gDifferentSaveFile; +extern u16 gSaveFileStatus; +extern u8 gUnknown_030060B0; + +extern u16 GetGeneratedTrainerIdLower(void); +extern void ClearContestWinnerPicsInContestHall(void); +extern void warp1_set(s8 mapBank, s8 mapNo, s8 warpNo, s8 xPos, s8 yPos); +extern void warp_in(void); +extern void sub_80BB358(void); +extern void ZeroPlayerPartyMons(void); +extern void ZeroEnemyPartyMons(void); +extern void ResetBagScrollPositions(void); +extern void sub_813624C(void); // clears something pokeblock related +extern void ClearSav2(void); // clears something pokeblock related + +void WriteUnalignedWord(u32 var, u8 *dataPtr) +{ + dataPtr[0] = var; + dataPtr[1] = var >> 8; + dataPtr[2] = var >> 16; + dataPtr[3] = var >> 24; +} + +u32 ReadUnalignedWord(u8* dataPtr) +{ + return (dataPtr[3] << 24) | (dataPtr[2] << 16) | (dataPtr[1] << 8) | (dataPtr[0]); +} + +void CopyUnalignedWord(u8 *copyTo, u8 *copyFrom) +{ + s32 i; + for (i = 0; i < 4; i++) + copyTo[i] = copyFrom[i]; +} + +void InitPlayerTrainerId(void) +{ + u32 trainerId = (Random() << 0x10) | GetGeneratedTrainerIdLower(); + WriteUnalignedWord(trainerId, gSaveBlock2Ptr->playerTrainerId); +} + +// L=A isnt set here for some reason. +void SetDefaultOptions(void) +{ + gSaveBlock2Ptr->optionsTextSpeed = OPTIONS_TEXT_SPEED_MID; + gSaveBlock2Ptr->optionsWindowFrameType = 0; + gSaveBlock2Ptr->optionsSound = OPTIONS_SOUND_MONO; + gSaveBlock2Ptr->optionsBattleStyle = OPTIONS_BATTLE_STYLE_SHIFT; + gSaveBlock2Ptr->optionsBattleSceneOff = FALSE; + gSaveBlock2Ptr->regionMapZoom = FALSE; +} + +void ClearPokedexFlags(void) +{ + gUnknown_030060B0 = 0; + memset(&gSaveBlock2Ptr->pokedex.owned, 0, sizeof(gSaveBlock2Ptr->pokedex.owned)); + memset(&gSaveBlock2Ptr->pokedex.seen, 0, sizeof(gSaveBlock2Ptr->pokedex.seen)); +} + +extern const struct ContestWinner gContestWinnerPicDummy; + +void ClearAllContestWinnerPics(void) +{ + s32 i; + + ClearContestWinnerPicsInContestHall(); + for (i = 8; i < 13; i++) + gSaveBlock1Ptr->contestWinners[i] = gContestWinnerPicDummy; +} + +void sub_8084400(void) +{ + // probably clearing one struct for battle frontier + CpuFill32(0, gSaveBlock2Ptr->field_64C, 2272); + + // those look like strings + gSaveBlock2Ptr->field_EE1 = 0xFF; + gSaveBlock2Ptr->field_EE9 = 0xFF; +} + +void WarpToTruck(void) +{ + warp1_set(25, 40, -1, -1, -1); // inside of truck + warp_in(); +} + +void Sav2_ClearSetDefault(void) +{ + ClearSav2(); + SetDefaultOptions(); +} + +void sub_808447C(void) +{ + gDifferentSaveFile = 0; + sub_80BB358(); + ZeroPlayerPartyMons(); + ZeroEnemyPartyMons(); + ResetBagScrollPositions(); + sub_813624C(); +} +/* +void NewGameInitData(void) +{ + Finish when more header files are available +}*/ diff --git a/src/play_time.c b/src/play_time.c new file mode 100644 index 0000000000..444c2c86cd --- /dev/null +++ b/src/play_time.c @@ -0,0 +1,73 @@ +#include "global.h" +#include "play_time.h" + +enum +{ + STOPPED, + RUNNING, + MAXED_OUT +}; + +static u8 sPlayTimeCounterState; + +void PlayTimeCounter_Reset() +{ + sPlayTimeCounterState = STOPPED; + + gSaveBlock2Ptr->playTimeHours = 0; + gSaveBlock2Ptr->playTimeMinutes = 0; + gSaveBlock2Ptr->playTimeSeconds = 0; + gSaveBlock2Ptr->playTimeVBlanks = 0; +} + +void PlayTimeCounter_Start() +{ + sPlayTimeCounterState = RUNNING; + + if (gSaveBlock2Ptr->playTimeHours > 999) + PlayTimeCounter_SetToMax(); +} + +void PlayTimeCounter_Stop() +{ + sPlayTimeCounterState = STOPPED; +} + +void PlayTimeCounter_Update() +{ + if (sPlayTimeCounterState == RUNNING) + { + gSaveBlock2Ptr->playTimeVBlanks++; + + if (gSaveBlock2Ptr->playTimeVBlanks > 59) + { + gSaveBlock2Ptr->playTimeVBlanks = 0; + gSaveBlock2Ptr->playTimeSeconds++; + + if (gSaveBlock2Ptr->playTimeSeconds > 59) + { + gSaveBlock2Ptr->playTimeSeconds = 0; + gSaveBlock2Ptr->playTimeMinutes++; + + if (gSaveBlock2Ptr->playTimeMinutes > 59) + { + gSaveBlock2Ptr->playTimeMinutes = 0; + gSaveBlock2Ptr->playTimeHours++; + + if (gSaveBlock2Ptr->playTimeHours > 999) + PlayTimeCounter_SetToMax(); + } + } + } + } +} + +void PlayTimeCounter_SetToMax() +{ + sPlayTimeCounterState = MAXED_OUT; + + gSaveBlock2Ptr->playTimeHours = 999; + gSaveBlock2Ptr->playTimeMinutes = 59; + gSaveBlock2Ptr->playTimeSeconds = 59; + gSaveBlock2Ptr->playTimeVBlanks = 59; +} diff --git a/src/rtc.c b/src/rtc.c new file mode 100644 index 0000000000..ca8b9567ee --- /dev/null +++ b/src/rtc.c @@ -0,0 +1,347 @@ +#include "global.h" +#include "rtc.h" +#include "string_util.h" +#include "text.h" + +// iwram bss +IWRAM_DATA static u16 sErrorStatus; +IWRAM_DATA static struct SiiRtcInfo sRtc; +IWRAM_DATA static u8 sProbeResult; +IWRAM_DATA static u16 sSavedIme; + +// iwram common +struct Time gLocalTime; + +// const rom + +static const struct SiiRtcInfo sRtcDummy = {0, MONTH_JAN, 1}; // 2000 Jan 1 + +static const s32 sNumDaysInMonths[12] = +{ + 31, + 28, + 31, + 30, + 31, + 30, + 31, + 31, + 30, + 31, + 30, + 31, +}; + +void RtcDisableInterrupts(void) +{ + sSavedIme = REG_IME; + REG_IME = 0; +} + +void RtcRestoreInterrupts(void) +{ + REG_IME = sSavedIme; +} + +u32 ConvertBcdToBinary(u8 bcd) +{ + if (bcd > 0x9F) + return 0xFF; + + if ((bcd & 0xF) <= 9) + return (10 * ((bcd >> 4) & 0xF)) + (bcd & 0xF); + else + return 0xFF; +} + +bool8 IsLeapYear(u32 year) +{ + if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) + return TRUE; + + return FALSE; +} + +u16 ConvertDateToDayCount(u8 year, u8 month, u8 day) +{ + s32 i; + u16 dayCount = 0; + + for (i = year - 1; i >= 0; i--) + { + dayCount += 365; + + if (IsLeapYear(i) == TRUE) + dayCount++; + } + + for (i = 0; i < month - 1; i++) + dayCount += sNumDaysInMonths[i]; + + if (month > MONTH_FEB && IsLeapYear(year) == TRUE) + dayCount++; + + dayCount += day; + + return dayCount; +} + +u16 RtcGetDayCount(struct SiiRtcInfo *rtc) +{ + u8 year = ConvertBcdToBinary(rtc->year); + u8 month = ConvertBcdToBinary(rtc->month); + u8 day = ConvertBcdToBinary(rtc->day); + return ConvertDateToDayCount(year, month, day); +} + +void RtcInit(void) +{ + sErrorStatus = 0; + + RtcDisableInterrupts(); + SiiRtcUnprotect(); + sProbeResult = SiiRtcProbe(); + RtcRestoreInterrupts(); + + if ((sProbeResult & 0xF) != 1) + { + sErrorStatus = RTC_INIT_ERROR; + return; + } + + if (sProbeResult & 0xF0) + sErrorStatus = RTC_INIT_WARNING; + else + sErrorStatus = 0; + + RtcGetRawInfo(&sRtc); + sErrorStatus = RtcCheckInfo(&sRtc); +} + +u16 RtcGetErrorStatus(void) +{ + return sErrorStatus; +} + +void RtcGetInfo(struct SiiRtcInfo *rtc) +{ + if (sErrorStatus & RTC_ERR_FLAG_MASK) + *rtc = sRtcDummy; + else + RtcGetRawInfo(rtc); +} + +void RtcGetDateTime(struct SiiRtcInfo *rtc) +{ + RtcDisableInterrupts(); + SiiRtcGetDateTime(rtc); + RtcRestoreInterrupts(); +} + +void RtcGetStatus(struct SiiRtcInfo *rtc) +{ + RtcDisableInterrupts(); + SiiRtcGetStatus(rtc); + RtcRestoreInterrupts(); +} + +void RtcGetRawInfo(struct SiiRtcInfo *rtc) +{ + RtcGetStatus(rtc); + RtcGetDateTime(rtc); +} + +u16 RtcCheckInfo(struct SiiRtcInfo *rtc) +{ + u16 errorFlags = 0; + s32 year; + s32 month; + s32 value; + + if (rtc->status & SIIRTCINFO_POWER) + errorFlags |= RTC_ERR_POWER_FAILURE; + + if (!(rtc->status & SIIRTCINFO_24HOUR)) + errorFlags |= RTC_ERR_12HOUR_CLOCK; + + year = ConvertBcdToBinary(rtc->year); + + if (year == 0xFF) + errorFlags |= RTC_ERR_INVALID_YEAR; + + month = ConvertBcdToBinary(rtc->month); + + if (month == 0xFF || month == 0 || month > 12) + errorFlags |= RTC_ERR_INVALID_MONTH; + + value = ConvertBcdToBinary(rtc->day); + + if (value == 0xFF) + errorFlags |= RTC_ERR_INVALID_DAY; + + if (month == MONTH_FEB) + { + if (value > IsLeapYear(year) + sNumDaysInMonths[month - 1]) + errorFlags |= RTC_ERR_INVALID_DAY; + } + else + { + if (value > sNumDaysInMonths[month - 1]) + errorFlags |= RTC_ERR_INVALID_DAY; + } + + value = ConvertBcdToBinary(rtc->hour); + + if (value > 24) + errorFlags |= RTC_ERR_INVALID_HOUR; + + value = ConvertBcdToBinary(rtc->minute); + + if (value > 60) + errorFlags |= RTC_ERR_INVALID_MINUTE; + + value = ConvertBcdToBinary(rtc->second); + + if (value > 60) + errorFlags |= RTC_ERR_INVALID_SECOND; + + return errorFlags; +} + +void RtcReset(void) +{ + RtcDisableInterrupts(); + SiiRtcReset(); + RtcRestoreInterrupts(); +} + +void FormatDecimalTime(u8 *dest, s32 hour, s32 minute, s32 second) +{ + dest = ConvertIntToDecimalStringN(dest, hour, STR_CONV_MODE_LEADING_ZEROS, 2); + *dest++ = CHAR_COLON; + dest = ConvertIntToDecimalStringN(dest, minute, STR_CONV_MODE_LEADING_ZEROS, 2); + *dest++ = CHAR_COLON; + dest = ConvertIntToDecimalStringN(dest, second, STR_CONV_MODE_LEADING_ZEROS, 2); + *dest = EOS; +} + +void FormatHexTime(u8 *dest, s32 hour, s32 minute, s32 second) +{ + dest = ConvertIntToHexStringN(dest, hour, STR_CONV_MODE_LEADING_ZEROS, 2); + *dest++ = CHAR_COLON; + dest = ConvertIntToHexStringN(dest, minute, STR_CONV_MODE_LEADING_ZEROS, 2); + *dest++ = CHAR_COLON; + dest = ConvertIntToHexStringN(dest, second, STR_CONV_MODE_LEADING_ZEROS, 2); + *dest = EOS; +} + +void FormatHexRtcTime(u8 *dest) +{ + FormatHexTime(dest, sRtc.hour, sRtc.minute, sRtc.second); +} + +void FormatDecimalDate(u8 *dest, s32 year, s32 month, s32 day) +{ + dest = ConvertIntToDecimalStringN(dest, year, STR_CONV_MODE_LEADING_ZEROS, 4); + *dest++ = CHAR_HYPHEN; + dest = ConvertIntToDecimalStringN(dest, month, STR_CONV_MODE_LEADING_ZEROS, 2); + *dest++ = CHAR_HYPHEN; + dest = ConvertIntToDecimalStringN(dest, day, STR_CONV_MODE_LEADING_ZEROS, 2); + *dest = EOS; +} + +void FormatHexDate(u8 *dest, s32 year, s32 month, s32 day) +{ + dest = ConvertIntToHexStringN(dest, year, STR_CONV_MODE_LEADING_ZEROS, 4); + *dest++ = CHAR_HYPHEN; + dest = ConvertIntToHexStringN(dest, month, STR_CONV_MODE_LEADING_ZEROS, 2); + *dest++ = CHAR_HYPHEN; + dest = ConvertIntToHexStringN(dest, day, STR_CONV_MODE_LEADING_ZEROS, 2); + *dest = EOS; +} + +void RtcCalcTimeDifference(struct SiiRtcInfo *rtc, struct Time *result, struct Time *t) +{ + u16 days = RtcGetDayCount(rtc); + result->seconds = ConvertBcdToBinary(rtc->second) - t->seconds; + result->minutes = ConvertBcdToBinary(rtc->minute) - t->minutes; + result->hours = ConvertBcdToBinary(rtc->hour) - t->hours; + result->days = days - t->days; + + if (result->seconds < 0) + { + result->seconds += 60; + --result->minutes; + } + + if (result->minutes < 0) + { + result->minutes += 60; + --result->hours; + } + + if (result->hours < 0) + { + result->hours += 24; + --result->days; + } +} + +void RtcCalcLocalTime(void) +{ + RtcGetInfo(&sRtc); + RtcCalcTimeDifference(&sRtc, &gLocalTime, &gSaveBlock2Ptr->localTimeOffset); +} + +void RtcInitLocalTimeOffset(s32 hour, s32 minute) +{ + RtcCalcLocalTimeOffset(0, hour, minute, 0); +} + +void RtcCalcLocalTimeOffset(s32 days, s32 hours, s32 minutes, s32 seconds) +{ + gLocalTime.days = days; + gLocalTime.hours = hours; + gLocalTime.minutes = minutes; + gLocalTime.seconds = seconds; + RtcGetInfo(&sRtc); + RtcCalcTimeDifference(&sRtc, &gSaveBlock2Ptr->localTimeOffset, &gLocalTime); +} + +void CalcTimeDifference(struct Time *result, struct Time *t1, struct Time *t2) +{ + result->seconds = t2->seconds - t1->seconds; + result->minutes = t2->minutes - t1->minutes; + result->hours = t2->hours - t1->hours; + result->days = t2->days - t1->days; + + if (result->seconds < 0) + { + result->seconds += 60; + --result->minutes; + } + + if (result->minutes < 0) + { + result->minutes += 60; + --result->hours; + } + + if (result->hours < 0) + { + result->hours += 24; + --result->days; + } +} + +u32 RtcGetMinuteCount(void) +{ + RtcGetInfo(&sRtc); + return (24 * 60) * RtcGetDayCount(&sRtc) + 60 * sRtc.hour + sRtc.minute; +} + +u16 RtcGetLocalDayCount(void) +{ + return RtcGetDayCount(&sRtc); +} + diff --git a/src/save.c b/src/save.c new file mode 100644 index 0000000000..ccb653f664 --- /dev/null +++ b/src/save.c @@ -0,0 +1,897 @@ +#include "global.h" +#include "gba/flash_internal.h" +#include "save.h" +#include "game_stat.h" + +extern struct SaveSectionOffsets gSaveSectionOffsets[0xE]; +extern struct SaveSectionLocation gRamSaveSectionLocations[0xE]; +extern void *gUnknown_03005D94; +extern u8 gDecompressionBuffer[]; +extern u32 gFlashMemoryPresent; +extern u16 gUnknown_03006294; + +extern void DoSaveFailedScreen(u8); // save_failed_screen +extern void LoadSerializedGame(void); // load_save +extern bool32 ProgramFlashSectorAndVerify(u8 sector, u8 *data); +extern void ReadFlash(u8 sector, u32 arg1, void* data, u32 size); + +// iwram common +u16 gLastWrittenSector; +u32 gLastSaveCounter; +u16 gLastKnownGoodSector; +u32 gDamagedSaveSectors; +u32 gSaveCounter; +struct SaveSection *gFastSaveSection; +u16 gUnknown_03006208; +u16 gSaveUnusedVar; +u16 gSaveFileStatus; +void (*gGameContinueCallback)(void); + +EWRAM_DATA struct SaveSection gSaveDataBuffer = {0}; + +void ClearSaveData(void) +{ + u16 i; + + for (i = 0; i < NUM_SECTORS_PER_SLOT; i++) + { + EraseFlashSector(i); + EraseFlashSector(i + NUM_SECTORS_PER_SLOT); // clear slot 2. + } +} + +void ResetSaveCounters(void) +{ + gSaveCounter = 0; + gLastWrittenSector = 0; + gDamagedSaveSectors = 0; +} + +bool32 SetDamagedSectorBits(u8 op, u8 bit) +{ + bool32 retVal = FALSE; + + switch (op) + { + case ENABLE: + gDamagedSaveSectors |= (1 << bit); + break; + case DISABLE: + gDamagedSaveSectors &= ~(1 << bit); + break; + case CHECK: // unused + if (gDamagedSaveSectors & (1 << bit)) + retVal = TRUE; + break; + } + + return retVal; +} + +u8 save_write_to_flash(u16 a1, const struct SaveSectionLocation *location) +{ + u32 retVal; + u16 i; + + gFastSaveSection = &gSaveDataBuffer; + + if (a1 != 0xFFFF) // for link + { + retVal = HandleWriteSector(a1, location); + } + else + { + gLastKnownGoodSector = gLastWrittenSector; // backup the current written sector before attempting to write. + gLastSaveCounter = gSaveCounter; + gLastWrittenSector++; + gLastWrittenSector = gLastWrittenSector % 0xE; // array count save sector locations + gSaveCounter++; + retVal = 1; + + for (i = 0; i < 0xE; i++) + HandleWriteSector(i, location); + + if (gDamagedSaveSectors != 0) // skip the damaged sector. + { + retVal = 0xFF; + gLastWrittenSector = gLastKnownGoodSector; + gSaveCounter = gLastSaveCounter; + } + } + + return retVal; +} + +u8 HandleWriteSector(u16 a1, const struct SaveSectionLocation *location) +{ + u16 i; + u16 sector; + u8 *data; + u16 size; + + sector = a1 + gLastWrittenSector; + sector %= 0xE; + sector += 0xE * (gSaveCounter % 2); + + data = location[a1].data; + size = location[a1].size; + + // clear save section. + for (i = 0; i < sizeof(struct SaveSection); i++) + ((char *)gFastSaveSection)[i] = 0; + + gFastSaveSection->id = a1; + gFastSaveSection->security = UNKNOWN_CHECK_VALUE; + gFastSaveSection->counter = gSaveCounter; + + for (i = 0; i < size; i++) + gFastSaveSection->data[i] = data[i]; + + gFastSaveSection->checksum = CalculateChecksum(data, size); + return TryWriteSector(sector, gFastSaveSection->data); +} + +u8 HandleWriteSectorNBytes(u8 sector, u8 *data, u16 size) +{ + u16 i; + struct SaveSection *section = &gSaveDataBuffer; + + for (i = 0; i < sizeof(struct SaveSection); i++) + ((char *)section)[i] = 0; + + section->security = UNKNOWN_CHECK_VALUE; + + for (i = 0; i < size; i++) + section->data[i] = data[i]; + + section->id = CalculateChecksum(data, size); // though this appears to be incorrect, it might be some sector checksum instead of a whole save checksum and only appears to be relevent to HOF data, if used. + return TryWriteSector(sector, section->data); +} + +u8 TryWriteSector(u8 sector, u8 *data) +{ + if (ProgramFlashSectorAndVerify(sector, data) != 0) // is damaged? + { + SetDamagedSectorBits(ENABLE, sector); // set damaged sector bits. + return 0xFF; + } + else + { + SetDamagedSectorBits(DISABLE, sector); // unset damaged sector bits. it's safe now. + return 1; + } +} + +u32 RestoreSaveBackupVarsAndIncrement(const struct SaveSectionLocation *location) // location is unused +{ + gFastSaveSection = &gSaveDataBuffer; + gLastKnownGoodSector = gLastWrittenSector; + gLastSaveCounter = gSaveCounter; + gLastWrittenSector++; + gLastWrittenSector = gLastWrittenSector % 0xE; + gSaveCounter++; + gUnknown_03006208 = 0; + gDamagedSaveSectors = 0; + return 0; +} + +u32 RestoreSaveBackupVars(const struct SaveSectionLocation *location) // only ever called once, and gSaveBlock2 is passed to this function. location is unused +{ + gFastSaveSection = &gSaveDataBuffer; + gLastKnownGoodSector = gLastWrittenSector; + gLastSaveCounter = gSaveCounter; + gUnknown_03006208 = 0; + gDamagedSaveSectors = 0; + return 0; +} + +u8 sub_81529D4(u16 a1, const struct SaveSectionLocation *location) +{ + u8 retVal; + + if (gUnknown_03006208 < a1 - 1) + { + retVal = 1; + HandleWriteSector(gUnknown_03006208, location); + gUnknown_03006208++; + if (gDamagedSaveSectors) + { + retVal = 0xFF; + gLastWrittenSector = gLastKnownGoodSector; + gSaveCounter = gLastSaveCounter; + } + } + else + { + retVal = 0xFF; + } + + return retVal; +} + +u8 sub_8152A34(u16 a1, const struct SaveSectionLocation *location) +{ + u8 retVal = 1; + + ClearSaveData_2(a1 - 1, location); + + if (gDamagedSaveSectors) + { + retVal = 0xFF; + gLastWrittenSector = gLastKnownGoodSector; + gSaveCounter = gLastSaveCounter; + } + return retVal; +} + +u8 ClearSaveData_2(u16 a1, const struct SaveSectionLocation *location) +{ + u16 i; + u16 sector; + u8 *data; + u16 size; + u8 status; + + sector = a1 + gLastWrittenSector; + sector %= 0xE; + sector += 0xE * (gSaveCounter % 2); + + data = location[a1].data; + size = location[a1].size; + + // clear temp save section. + for (i = 0; i < sizeof(struct SaveSection); i++) + ((char *)gFastSaveSection)[i] = 0; + + gFastSaveSection->id = a1; + gFastSaveSection->security = UNKNOWN_CHECK_VALUE; + gFastSaveSection->counter = gSaveCounter; + + // set temp section's data. + for (i = 0; i < size; i++) + gFastSaveSection->data[i] = data[i]; + + // calculate checksum. + gFastSaveSection->checksum = CalculateChecksum(data, size); + + EraseFlashSector(sector); + + status = 1; + + for (i = 0; i < sizeof(struct UnkSaveSection); i++) + { + if (ProgramFlashByte(sector, i, ((u8 *)gFastSaveSection)[i])) + { + status = 0xFF; + break; + } + } + + if (status == 0xFF) + { + SetDamagedSectorBits(ENABLE, sector); + return 0xFF; + } + else + { + status = 1; + + for (i = 0; i < 7; i++) + { + if (ProgramFlashByte(sector, 0xFF9 + i, ((u8 *)gFastSaveSection)[0xFF9 + i])) + { + status = 0xFF; + break; + } + } + + if (status == 0xFF) + { + SetDamagedSectorBits(ENABLE, sector); + return 0xFF; + } + else + { + SetDamagedSectorBits(DISABLE, sector); + return 1; + } + } +} + +u8 sav12_xor_get(u16 a1, const struct SaveSectionLocation *location) +{ + u16 sector; + + sector = a1 + gLastWrittenSector; // no sub 1? + sector %= 0xE; + sector += 0xE * (gSaveCounter % 2); + + if (ProgramFlashByte(sector, sizeof(struct UnkSaveSection), 0x25)) + { + // sector is damaged, so enable the bit in gDamagedSaveSectors and restore the last written sector and save counter. + SetDamagedSectorBits(ENABLE, sector); + gLastWrittenSector = gLastKnownGoodSector; + gSaveCounter = gLastSaveCounter; + return 0xFF; + } + else + { + SetDamagedSectorBits(DISABLE, sector); + return 1; + } +} + +u8 sub_8152CAC(u16 a1, const struct SaveSectionLocation *location) +{ + u16 sector; + + sector = a1 + gLastWrittenSector - 1; + sector %= 0xE; + sector += 0xE * (gSaveCounter % 2); + + if (ProgramFlashByte(sector, sizeof(struct UnkSaveSection), ((u8 *)gFastSaveSection)[sizeof(struct UnkSaveSection)])) + { + // sector is damaged, so enable the bit in gDamagedSaveSectors and restore the last written sector and save counter. + SetDamagedSectorBits(ENABLE, sector); + gLastWrittenSector = gLastKnownGoodSector; + gSaveCounter = gLastSaveCounter; + return 0xFF; + } + else + { + SetDamagedSectorBits(DISABLE, sector); + return 1; + } +} + +u8 sub_8152D44(u16 a1, const struct SaveSectionLocation *location) +{ + u16 sector; + + sector = a1 + gLastWrittenSector - 1; // no sub 1? + sector %= 0xE; + sector += 0xE * (gSaveCounter % 2); + + if (ProgramFlashByte(sector, sizeof(struct UnkSaveSection), 0x25)) + { + // sector is damaged, so enable the bit in gDamagedSaveSectors and restore the last written sector and save counter. + SetDamagedSectorBits(ENABLE, sector); + gLastWrittenSector = gLastKnownGoodSector; + gSaveCounter = gLastSaveCounter; + return 0xFF; + } + else + { + SetDamagedSectorBits(DISABLE, sector); + return 1; + } +} + +u8 sub_8152DD0(u16 a1, const struct SaveSectionLocation *location) +{ + u8 retVal; + gFastSaveSection = &gSaveDataBuffer; + if (a1 != 0xFFFF) + { + retVal = 0xFF; + } + else + { + retVal = GetSaveValidStatus(location); + sub_8152E10(0xFFFF, location); + } + + return retVal; +} + +u8 sub_8152E10(u16 a1, const struct SaveSectionLocation *location) +{ + u16 i; + u16 checksum; + u16 v3 = 0xE * (gSaveCounter % 2); + u16 id; + + for (i = 0; i < 0xE; i++) + { + DoReadFlashWholeSection(i + v3, gFastSaveSection); + id = gFastSaveSection->id; + if (id == 0) + gLastWrittenSector = i; + checksum = CalculateChecksum(gFastSaveSection->data, location[id].size); + if (gFastSaveSection->security == UNKNOWN_CHECK_VALUE + && gFastSaveSection->checksum == checksum) + { + u16 j; + for (j = 0; j < location[id].size; j++) + ((u8 *)location[id].data)[j] = gFastSaveSection->data[j]; + } + } + + return 1; +} + +u8 GetSaveValidStatus(const struct SaveSectionLocation *location) +{ + u16 i; + u16 checksum; + u32 saveSlot1Counter = 0; + u32 saveSlot2Counter = 0; + u32 slotCheckField = 0; + bool8 securityPassed = FALSE; + u8 saveSlot1Status; + u8 saveSlot2Status; + + // check save slot 1. + for (i = 0; i < 0xE; i++) + { + DoReadFlashWholeSection(i, gFastSaveSection); + if (gFastSaveSection->security == UNKNOWN_CHECK_VALUE) + { + securityPassed = TRUE; + checksum = CalculateChecksum(gFastSaveSection->data, location[gFastSaveSection->id].size); + if (gFastSaveSection->checksum == checksum) + { + saveSlot1Counter = gFastSaveSection->counter; + slotCheckField |= 1 << gFastSaveSection->id; + } + } + } + + if (securityPassed) + { + if (slotCheckField == 0x3FFF) + saveSlot1Status = 1; + else + saveSlot1Status = 255; + } + else + { + saveSlot1Status = 0; + } + + slotCheckField = 0; + securityPassed = FALSE; + + // check save slot 2. + for (i = 0; i < 0xE; i++) + { + DoReadFlashWholeSection(i + 0xE, gFastSaveSection); + if (gFastSaveSection->security == UNKNOWN_CHECK_VALUE) + { + securityPassed = TRUE; + checksum = CalculateChecksum(gFastSaveSection->data, location[gFastSaveSection->id].size); + if (gFastSaveSection->checksum == checksum) + { + saveSlot2Counter = gFastSaveSection->counter; + slotCheckField |= 1 << gFastSaveSection->id; + } + } + } + + if (securityPassed) + { + if (slotCheckField == 0x3FFF) + saveSlot2Status = 1; + else + saveSlot2Status = 255; + } + else + { + saveSlot2Status = 0; + } + + if (saveSlot1Status == 1 && saveSlot2Status == 1) + { + if ((saveSlot1Counter == -1 && saveSlot2Counter == 0) || (saveSlot1Counter == 0 && saveSlot2Counter == -1)) + { + if ((unsigned)(saveSlot1Counter + 1) < (unsigned)(saveSlot2Counter + 1)) + { + gSaveCounter = saveSlot2Counter; + } + else + { + gSaveCounter = saveSlot1Counter; + } + } + else + { + if (saveSlot1Counter < saveSlot2Counter) + { + gSaveCounter = saveSlot2Counter; + } + else + { + gSaveCounter = saveSlot1Counter; + } + } + return 1; + } + + if (saveSlot1Status == 1) + { + gSaveCounter = saveSlot1Counter; + if (saveSlot2Status == 255) + return 255; + return 1; + } + + if (saveSlot2Status == 1) + { + gSaveCounter = saveSlot2Counter; + if (saveSlot1Status == 255) + return 255; + return 1; + } + + if (saveSlot1Status == 0 && saveSlot2Status == 0) + { + gSaveCounter = 0; + gLastWrittenSector = 0; + return 0; + } + + gSaveCounter = 0; + gLastWrittenSector = 0; + return 2; +} + +u8 sub_81530DC(u8 a1, u8 *data, u16 size) +{ + u16 i; + struct SaveSection *section = &gSaveDataBuffer; + DoReadFlashWholeSection(a1, section); + if (section->security == UNKNOWN_CHECK_VALUE) + { + u16 checksum = CalculateChecksum(section->data, size); + if (section->id == checksum) + { + for (i = 0; i < size; i++) + data[i] = section->data[i]; + return 1; + } + else + { + return 2; + } + } + else + { + return 0; + } +} + +u8 DoReadFlashWholeSection(u8 sector, struct SaveSection *section) +{ + ReadFlash(sector, 0, section->data, sizeof(struct SaveSection)); + return 1; +} + +u16 CalculateChecksum(void *data, u16 size) +{ + u16 i; + u32 checksum = 0; + + for (i = 0; i < (size / 4); i++) + checksum += *((u32 *)data)++; + + return ((checksum >> 16) + checksum); +} + +#ifdef NONMATCHING +// the initial allocation of the pointer and toAdd variable doesnt match up with the original function. however, forcing it is impossible since gRamSaveSectionLocations is loaded first. +void UpdateSaveAddresses(void) +{ + int i = 0; + gRamSaveSectionLocations[i].data = gSaveBlock2Ptr + gSaveSectionOffsets[0].toAdd; + gRamSaveSectionLocations[i].size = gSaveSectionOffsets[0].size; + + for(i = 1; i < 5; i++) + { + gRamSaveSectionLocations[i].data = gSaveBlock1Ptr + gSaveSectionOffsets[i].toAdd; + gRamSaveSectionLocations[i].size = gSaveSectionOffsets[i].size; + } + + for(i = 5; i < 14; i++) + { + gRamSaveSectionLocations[i].data = gUnknown_03005D94 + gSaveSectionOffsets[i].toAdd; + gRamSaveSectionLocations[i].size = gSaveSectionOffsets[i].size; + } +} +#else +__attribute__((naked)) +void UpdateSaveAddresses(void) +{ + asm(".syntax unified\n\ + push {r4,r5,lr}\n\ + ldr r3, =gRamSaveSectionLocations\n\ + ldr r0, =gSaveBlock2Ptr\n\ + ldr r2, =gSaveSectionOffsets\n\ + ldrh r1, [r2]\n\ + ldr r0, [r0]\n\ + adds r0, r1\n\ + str r0, [r3]\n\ + ldrh r0, [r2, 0x2]\n\ + strh r0, [r3, 0x4]\n\ + ldr r5, =gSaveBlock1Ptr\n\ + adds r3, 0x8\n\ + adds r2, 0x4\n\ + movs r4, 0x3\n\ +_081531AC:\n\ + ldrh r0, [r2]\n\ + ldr r1, [r5]\n\ + adds r1, r0\n\ + str r1, [r3]\n\ + ldrh r0, [r2, 0x2]\n\ + strh r0, [r3, 0x4]\n\ + adds r3, 0x8\n\ + adds r2, 0x4\n\ + subs r4, 0x1\n\ + cmp r4, 0\n\ + bge _081531AC\n\ + movs r4, 0x5\n\ + ldr r1, =gRamSaveSectionLocations\n\ + ldr r5, =gUnknown_03005D94\n\ + ldr r0, =gSaveSectionOffsets\n\ + adds r3, r1, 0\n\ + adds r3, 0x28\n\ + adds r2, r0, 0\n\ + adds r2, 0x14\n\ +_081531D2:\n\ + ldrh r0, [r2]\n\ + ldr r1, [r5]\n\ + adds r1, r0\n\ + str r1, [r3]\n\ + ldrh r0, [r2, 0x2]\n\ + strh r0, [r3, 0x4]\n\ + adds r3, 0x8\n\ + adds r2, 0x4\n\ + adds r4, 0x1\n\ + cmp r4, 0xD\n\ + ble _081531D2\n\ + pop {r4,r5}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided"); +} +#endif + +extern u32 GetGameStat(u8 index); // rom4 +extern void IncrementGameStat(u8 index); // rom4 +extern void SaveSerializedGame(void); // load_save +extern u32 gUnknown_0203CF5C; + +u8 HandleSavingData(u8 saveType) +{ + u8 i; + u32 backupVar = gUnknown_0203CF5C; + u8 *tempAddr; + + gUnknown_0203CF5C = 0; + UpdateSaveAddresses(); + switch (saveType) + { + case HOF_DELETE_SAVE: // deletes HOF before overwriting HOF completely. unused + for (i = 0xE * 2 + 0; i < 32; i++) + EraseFlashSector(i); + case HOF_SAVE: // hall of fame. + if (GetGameStat(GAME_STAT_ENTERED_HOF) < 999) + IncrementGameStat(GAME_STAT_ENTERED_HOF); + SaveSerializedGame(); + save_write_to_flash(0xFFFF, gRamSaveSectionLocations); + tempAddr = (u8 *)0x201C000; // FIXME: make this a label. + HandleWriteSectorNBytes(0x1C, tempAddr, 0xF80); + HandleWriteSectorNBytes(0x1D, tempAddr + 0xF80, 0xF80); + break; + case NORMAL_SAVE: // normal save. also called by overwriting your own save. + default: + SaveSerializedGame(); + save_write_to_flash(0xFFFF, gRamSaveSectionLocations); + break; + case LINK_SAVE: // _081532C4 + case LINK2_SAVE: + SaveSerializedGame(); + for(i = 0; i < 5; i++) + ClearSaveData_2(i, gRamSaveSectionLocations); + for(i = 0; i < 5; i++) + sav12_xor_get(i, gRamSaveSectionLocations); + break; + // support for Ereader was removed in Emerald. + /* + case EREADER_SAVE: // used in mossdeep "game corner" before/after battling old man e-reader trainer + SaveSerializedGame(); + save_write_to_flash(0, gRamSaveSectionLocations); + break; + */ + case DIFFERENT_FILE_SAVE: + for (i = (0xE * 2 + 0); i < 32; i++) + EraseFlashSector(i); // erase HOF. + SaveSerializedGame(); + save_write_to_flash(0xFFFF, gRamSaveSectionLocations); + break; + } + gUnknown_0203CF5C = backupVar; + return 0; +} + +u8 TrySavingData(u8 saveType) // TrySave +{ + if(gFlashMemoryPresent == TRUE) + { + HandleSavingData(saveType); + if(gDamagedSaveSectors) + DoSaveFailedScreen(saveType); + else + goto OK; // really? + } + gUnknown_03006294 = 0xFF; + return 0xFF; + +OK: + gUnknown_03006294 = 1; + return 1; +} + +u8 sub_8153380(void) // trade.s save +{ + if (gFlashMemoryPresent != TRUE) + return 1; + UpdateSaveAddresses(); + SaveSerializedGame(); + RestoreSaveBackupVarsAndIncrement(gRamSaveSectionLocations); + return 0; +} + +bool8 sub_81533AC(void) // trade.s save +{ + u8 retVal = sub_81529D4(0xE, gRamSaveSectionLocations); + if (gDamagedSaveSectors) + DoSaveFailedScreen(0); + if (retVal == 0xFF) + return 1; + else + return 0; +} + +u8 sub_81533E0(void) // trade.s save +{ + sub_8152A34(0xE, gRamSaveSectionLocations); + if (gDamagedSaveSectors) + DoSaveFailedScreen(0); + return 0; +} + +u8 sub_8153408(void) // trade.s save +{ + sub_8152CAC(0xE, gRamSaveSectionLocations); + if (gDamagedSaveSectors) + DoSaveFailedScreen(0); + return 0; +} + +u8 sub_8153430(void) +{ + if (gFlashMemoryPresent != TRUE) + return 1; + + UpdateSaveAddresses(); + SaveSerializedGame(); + RestoreSaveBackupVars(gRamSaveSectionLocations); + sub_8152A34(gUnknown_03006208 + 1, gRamSaveSectionLocations); + return 0; +} + +bool8 sub_8153474(void) +{ + u8 retVal = FALSE; + u16 val = ++gUnknown_03006208; + if (val <= 4) + { + sub_8152A34(gUnknown_03006208 + 1, gRamSaveSectionLocations); + sub_8152D44(val, gRamSaveSectionLocations); + } + else + { + sub_8152D44(val, gRamSaveSectionLocations); + retVal = TRUE; + } + if (gDamagedSaveSectors) + DoSaveFailedScreen(1); + return retVal; +} + +u8 sub_81534D0(u8 a1) +{ + u8 result; + + if (gFlashMemoryPresent != TRUE) + { + gSaveFileStatus = 4; + return 0xFF; + } + + UpdateSaveAddresses(); + switch (a1) + { + case 0: + default: + result = sub_8152DD0(0xFFFF, gRamSaveSectionLocations); + LoadSerializedGame(); + gSaveFileStatus = result; + gGameContinueCallback = 0; + break; + case 3: + result = sub_81530DC(0x1C, gDecompressionBuffer, 0xF80); + if(result == 1) + result = sub_81530DC(0x1D, gDecompressionBuffer + 0xF80, 0xF80); + break; + } + + return result; +} + +u16 sub_815355C(void) +{ + u16 i, v3; + struct SaveSection* savSection; + + savSection = gFastSaveSection = &gSaveDataBuffer; + if (gFlashMemoryPresent != 1) + return 0; + UpdateSaveAddresses(); + GetSaveValidStatus(gRamSaveSectionLocations); + v3 = 0xE * (gSaveCounter % 2); + for (i = 0; i < 14; i++) + { + DoReadFlashWholeSection(i + v3, gFastSaveSection); + if (gFastSaveSection->id == 0) + return savSection->data[10] + + savSection->data[11] + + savSection->data[12] + + savSection->data[13]; + } + return 0; +} + +u32 sub_81535DC(u8 sector, u8* dst) +{ + s32 i; + s32 size; + u8* savData; + + if (sector != 30 && sector != 31) + return 0xFF; + ReadFlash(sector, 0, &gSaveDataBuffer, sizeof(struct SaveSection)); + if (*(u32*)(&gSaveDataBuffer.data[0]) != 0xB39D) + return 0xFF; + // copies whole save section except u32 counter + i = 0; + size = 0xFFB; + savData = &gSaveDataBuffer.data[4]; + for (; i <= size; i++) + dst[i] = savData[i]; + return 1; +} + +u32 sub_8153634(u8 sector, u8* src) +{ + s32 i; + s32 size; + u8* savData; + void* savDataBuffer; + + if (sector != 30 && sector != 31) + return 0xFF; + savDataBuffer = &gSaveDataBuffer; + *(u32*)(savDataBuffer) = 0xB39D; + + // copies whole save section except u32 counter + i = 0; + size = 0xFFB; + savData = &gSaveDataBuffer.data[4]; + for (; i <= size; i++) + savData[i] = src[i]; + if (ProgramFlashSectorAndVerify(sector, savDataBuffer) != 0) + return 0xFF; + return 1; +} diff --git a/src/sound.c b/src/sound.c new file mode 100644 index 0000000000..a95511ece2 --- /dev/null +++ b/src/sound.c @@ -0,0 +1,611 @@ +#include "global.h" +#include "gba/m4a_internal.h" +#include "sound.h" +#include "battle.h" +#include "m4a.h" +#include "main.h" +#include "pokemon.h" +#include "songs.h" +#include "task.h" + +struct Fanfare +{ + u16 songNum; + u16 duration; +}; + +// ewram +EWRAM_DATA struct MusicPlayerInfo* gMPlay_PokemonCry = NULL; +EWRAM_DATA u8 gPokemonCryBGMDuckingCounter = 0; + +// iwram bss +IWRAM_DATA static u16 sCurrentMapMusic; +IWRAM_DATA static u16 sNextMapMusic; +IWRAM_DATA static u8 sMapMusicState; +IWRAM_DATA static u8 sMapMusicFadeInSpeed; +IWRAM_DATA static u16 sFanfareCounter; + +// iwram common +bool8 gDisableMusic; + +extern u32 gBattleTypeFlags; +extern struct MusicPlayerInfo gMPlay_BGM; +extern struct MusicPlayerInfo gMPlay_SE1; +extern struct MusicPlayerInfo gMPlay_SE2; +extern struct MusicPlayerInfo gMPlay_SE3; +extern struct ToneData gCryTable[]; +extern struct ToneData gCryTable2[]; +extern const struct Fanfare sFanfares[]; + +extern u16 SpeciesToCryId(u16); + +static void Task_Fanfare(u8 taskId); +static void CreateFanfareTask(void); +static void Task_DuckBGMForPokemonCry(u8 taskId); +static void RestoreBGMVolumeAfterPokemonCry(void); + +#define CRY_VOLUME 120 // was 125 in R/S + +void InitMapMusic(void) +{ + gDisableMusic = FALSE; + ResetMapMusic(); +} + +void MapMusicMain(void) +{ + switch (sMapMusicState) + { + case 0: + break; + case 1: + sMapMusicState = 2; + PlayBGM(sCurrentMapMusic); + break; + case 2: + case 3: + case 4: + break; + case 5: + if (IsBGMStopped()) + { + sNextMapMusic = 0; + sMapMusicState = 0; + } + break; + case 6: + if (IsBGMStopped() && IsFanfareTaskInactive()) + { + sCurrentMapMusic = sNextMapMusic; + sNextMapMusic = 0; + sMapMusicState = 2; + PlayBGM(sCurrentMapMusic); + } + break; + case 7: + if (IsBGMStopped() && IsFanfareTaskInactive()) + { + FadeInNewBGM(sNextMapMusic, sMapMusicFadeInSpeed); + sCurrentMapMusic = sNextMapMusic; + sNextMapMusic = 0; + sMapMusicState = 2; + sMapMusicFadeInSpeed = 0; + } + break; + } +} + +void ResetMapMusic(void) +{ + sCurrentMapMusic = 0; + sNextMapMusic = 0; + sMapMusicState = 0; + sMapMusicFadeInSpeed = 0; +} + +u16 GetCurrentMapMusic(void) +{ + return sCurrentMapMusic; +} + +void PlayNewMapMusic(u16 songNum) +{ + sCurrentMapMusic = songNum; + sNextMapMusic = 0; + sMapMusicState = 1; +} + +void StopMapMusic(void) +{ + sCurrentMapMusic = 0; + sNextMapMusic = 0; + sMapMusicState = 1; +} + +void FadeOutMapMusic(u8 speed) +{ + if (IsNotWaitingForBGMStop()) + FadeOutBGM(speed); + sCurrentMapMusic = 0; + sNextMapMusic = 0; + sMapMusicState = 5; +} + +void FadeOutAndPlayNewMapMusic(u16 songNum, u8 speed) +{ + FadeOutMapMusic(speed); + sCurrentMapMusic = 0; + sNextMapMusic = songNum; + sMapMusicState = 6; +} + +void FadeOutAndFadeInNewMapMusic(u16 songNum, u8 fadeOutSpeed, u8 fadeInSpeed) +{ + FadeOutMapMusic(fadeOutSpeed); + sCurrentMapMusic = 0; + sNextMapMusic = songNum; + sMapMusicState = 7; + sMapMusicFadeInSpeed = fadeInSpeed; +} + +void FadeInNewMapMusic(u16 songNum, u8 speed) +{ + FadeInNewBGM(songNum, speed); + sCurrentMapMusic = songNum; + sNextMapMusic = 0; + sMapMusicState = 2; + sMapMusicFadeInSpeed = 0; +} + +bool8 IsNotWaitingForBGMStop(void) +{ + if (sMapMusicState == 6) + return FALSE; + if (sMapMusicState == 5) + return FALSE; + if (sMapMusicState == 7) + return FALSE; + return TRUE; +} + +void PlayFanfareByFanfareNum(u8 fanfareNum) +{ + u16 songNum; + m4aMPlayStop(&gMPlay_BGM); + songNum = sFanfares[fanfareNum].songNum; + sFanfareCounter = sFanfares[fanfareNum].duration; + m4aSongNumStart(songNum); +} + +bool8 WaitFanfare(bool8 stop) +{ + if (sFanfareCounter) + { + sFanfareCounter--; + return FALSE; + } + else + { + if (!stop) + m4aMPlayContinue(&gMPlay_BGM); + else + m4aSongNumStart(SE_STOP); + + return TRUE; + } +} + +void StopFanfareByFanfareNum(u8 fanfareNum) +{ + m4aSongNumStop(sFanfares[fanfareNum].songNum); +} + +void PlayFanfare(u16 songNum) +{ + s32 i; + for (i = 0; (u32)i < 18; i++) + { + if (sFanfares[i].songNum == songNum) + { + PlayFanfareByFanfareNum(i); + CreateFanfareTask(); + return; + } + } + + PlayFanfareByFanfareNum(0); + CreateFanfareTask(); +} + +bool8 IsFanfareTaskInactive(void) +{ + if (FuncIsActiveTask(Task_Fanfare) == TRUE) + return FALSE; + return TRUE; +} + +static void Task_Fanfare(u8 taskId) +{ + if (sFanfareCounter) + { + sFanfareCounter--; + } + else + { + m4aMPlayContinue(&gMPlay_BGM); + DestroyTask(taskId); + } +} + +static void CreateFanfareTask(void) +{ + if (FuncIsActiveTask(Task_Fanfare) != TRUE) + CreateTask(Task_Fanfare, 80); +} + +void FadeInNewBGM(u16 songNum, u8 speed) +{ + if (gDisableMusic) + songNum = 0; + if (songNum == 0xFFFF) + songNum = 0; + m4aSongNumStart(songNum); + m4aMPlayImmInit(&gMPlay_BGM); + m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0); + m4aSongNumStop(songNum); + m4aMPlayFadeIn(&gMPlay_BGM, speed); +} + +void FadeOutBGMTemporarily(u8 speed) +{ + m4aMPlayFadeOutTemporarily(&gMPlay_BGM, speed); +} + +bool8 IsBGMPausedOrStopped(void) +{ + if (gMPlay_BGM.status & MUSICPLAYER_STATUS_PAUSE) + return TRUE; + if (!(gMPlay_BGM.status & MUSICPLAYER_STATUS_TRACK)) + return TRUE; + return FALSE; +} + +void FadeInBGM(u8 speed) +{ + m4aMPlayFadeIn(&gMPlay_BGM, speed); +} + +void FadeOutBGM(u8 speed) +{ + m4aMPlayFadeOut(&gMPlay_BGM, speed); +} + +bool8 IsBGMStopped(void) +{ + if (!(gMPlay_BGM.status & MUSICPLAYER_STATUS_TRACK)) + return TRUE; + return FALSE; +} + +void PlayCry1(u16 species, s8 pan) +{ + m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 85); + PlayCryInternal(species, pan, CRY_VOLUME, 10, 0); + gPokemonCryBGMDuckingCounter = 2; + RestoreBGMVolumeAfterPokemonCry(); +} + +void PlayCry2(u16 species, s8 pan, s8 volume, u8 priority) +{ + PlayCryInternal(species, pan, volume, priority, 0); +} + +void PlayCry3(u16 species, s8 pan, u8 mode) +{ + if (mode == 1) + { + PlayCryInternal(species, pan, CRY_VOLUME, 10, 1); + } + else + { + m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 85); + PlayCryInternal(species, pan, CRY_VOLUME, 10, mode); + gPokemonCryBGMDuckingCounter = 2; + RestoreBGMVolumeAfterPokemonCry(); + } +} + +void PlayCry4(u16 species, s8 pan, u8 mode) +{ + if (mode == 1) + { + PlayCryInternal(species, pan, CRY_VOLUME, 10, 1); + } + else + { + if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) + m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 85); + PlayCryInternal(species, pan, CRY_VOLUME, 10, mode); + } +} + +void PlayCry6(u16 species, s8 pan, u8 mode) // not present in R/S +{ + if (mode == 1) + { + PlayCryInternal(species, pan, CRY_VOLUME, 10, 1); + } + else + { + m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 85); + PlayCryInternal(species, pan, CRY_VOLUME, 10, mode); + gPokemonCryBGMDuckingCounter = 2; + } +} + +void PlayCry5(u16 species, u8 mode) +{ + m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 85); + PlayCryInternal(species, 0, CRY_VOLUME, 10, mode); + gPokemonCryBGMDuckingCounter = 2; + RestoreBGMVolumeAfterPokemonCry(); +} + +void PlayCryInternal(u16 species, s8 pan, s8 volume, u8 priority, u8 mode) +{ + bool32 v0; + u32 release; + u32 length; + u32 pitch; + u32 chorus; + u32 index; + u8 table; + + species--; + length = 140; + v0 = FALSE; + release = 0; + pitch = 15360; + chorus = 0; + + switch (mode) + { + case 0: + break; + case 1: + length = 20; + release = 225; + break; + case 2: + release = 225; + pitch = 15600; + chorus = 20; + volume = 90; + break; + case 3: + length = 50; + release = 200; + pitch = 15800; + chorus = 20; + volume = 90; + break; + case 4: + length = 25; + v0 = TRUE; + release = 100; + pitch = 15600; + chorus = 192; + volume = 90; + break; + case 5: + release = 200; + pitch = 14440; + break; + case 6: + release = 220; + pitch = 15555; + chorus = 192; + volume = 70; + break; + case 7: + length = 10; + release = 100; + pitch = 14848; + break; + case 8: + length = 60; + release = 225; + pitch = 15616; + break; + case 9: + length = 15; + v0 = TRUE; + release = 125; + pitch = 15200; + break; + case 10: + length = 100; + release = 225; + pitch = 15200; + break; + case 12: + length = 20; + release = 225; + case 11: + pitch = 15000; + break; + } + + SetPokemonCryVolume(volume); + SetPokemonCryPanpot(pan); + SetPokemonCryPitch(pitch); + SetPokemonCryLength(length); + SetPokemonCryProgress(0); + SetPokemonCryRelease(release); + SetPokemonCryChorus(chorus); + SetPokemonCryPriority(priority); + + // This is a fancy way to get a cry of a pokemon. + // It creates 4 sets of 128 mini cry tables. + // If you wish to expand pokemon, you need to + // append new cases to the switch. + species = SpeciesToCryId(species); + index = species & 0x7F; + table = species / 128; + + switch (table) + { + case 0: + gMPlay_PokemonCry = SetPokemonCryTone( + v0 ? &gCryTable2[(128 * 0) + index] : &gCryTable[(128 * 0) + index]); + break; + case 1: + gMPlay_PokemonCry = SetPokemonCryTone( + v0 ? &gCryTable2[(128 * 1) + index] : &gCryTable[(128 * 1) + index]); + break; + case 2: + gMPlay_PokemonCry = SetPokemonCryTone( + v0 ? &gCryTable2[(128 * 2) + index] : &gCryTable[(128 * 2) + index]); + break; + case 3: + gMPlay_PokemonCry = SetPokemonCryTone( + v0 ? &gCryTable2[(128 * 3) + index] : &gCryTable[(128 * 3) + index]); + break; + } +} + +bool8 IsCryFinished(void) +{ + if (FuncIsActiveTask(Task_DuckBGMForPokemonCry) == TRUE) + { + return FALSE; + } + else + { + ClearPokemonCrySongs(); + return TRUE; + } +} + +void StopCryAndClearCrySongs(void) +{ + m4aMPlayStop(gMPlay_PokemonCry); + ClearPokemonCrySongs(); +} + +void StopCry(void) +{ + m4aMPlayStop(gMPlay_PokemonCry); +} + +bool8 IsCryPlayingOrClearCrySongs(void) +{ + if (IsPokemonCryPlaying(gMPlay_PokemonCry)) + { + return TRUE; + } + else + { + ClearPokemonCrySongs(); + return FALSE; + } +} + +bool8 IsCryPlaying(void) +{ + if (IsPokemonCryPlaying(gMPlay_PokemonCry)) + return TRUE; + else + return FALSE; +} + +static void Task_DuckBGMForPokemonCry(u8 taskId) +{ + if (gPokemonCryBGMDuckingCounter) + { + gPokemonCryBGMDuckingCounter--; + return; + } + + if (!IsPokemonCryPlaying(gMPlay_PokemonCry)) + { + m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 256); + DestroyTask(taskId); + } +} + +static void RestoreBGMVolumeAfterPokemonCry(void) +{ + if (FuncIsActiveTask(Task_DuckBGMForPokemonCry) != TRUE) + CreateTask(Task_DuckBGMForPokemonCry, 80); +} + +void PlayBGM(u16 songNum) +{ + if (gDisableMusic) + songNum = 0; + if (songNum == 0xFFFF) + songNum = 0; + m4aSongNumStart(songNum); +} + +void PlaySE(u16 songNum) +{ + m4aSongNumStart(songNum); +} + +void PlaySE12WithPanning(u16 songNum, s8 pan) +{ + m4aSongNumStart(songNum); + m4aMPlayImmInit(&gMPlay_SE1); + m4aMPlayImmInit(&gMPlay_SE2); + m4aMPlayPanpotControl(&gMPlay_SE1, 0xFFFF, pan); + m4aMPlayPanpotControl(&gMPlay_SE2, 0xFFFF, pan); +} + +void PlaySE1WithPanning(u16 songNum, s8 pan) +{ + m4aSongNumStart(songNum); + m4aMPlayImmInit(&gMPlay_SE1); + m4aMPlayPanpotControl(&gMPlay_SE1, 0xFFFF, pan); +} + +void PlaySE2WithPanning(u16 songNum, s8 pan) +{ + m4aSongNumStart(songNum); + m4aMPlayImmInit(&gMPlay_SE2); + m4aMPlayPanpotControl(&gMPlay_SE2, 0xFFFF, pan); +} + +void SE12PanpotControl(s8 pan) +{ + m4aMPlayPanpotControl(&gMPlay_SE1, 0xFFFF, pan); + m4aMPlayPanpotControl(&gMPlay_SE2, 0xFFFF, pan); +} + +bool8 IsSEPlaying(void) +{ + if ((gMPlay_SE1.status & MUSICPLAYER_STATUS_PAUSE) && (gMPlay_SE2.status & MUSICPLAYER_STATUS_PAUSE)) + return FALSE; + if (!(gMPlay_SE1.status & MUSICPLAYER_STATUS_TRACK) && !(gMPlay_SE2.status & MUSICPLAYER_STATUS_TRACK)) + return FALSE; + return TRUE; +} + +bool8 IsBGMPlaying(void) +{ + if (gMPlay_BGM.status & MUSICPLAYER_STATUS_PAUSE) + return FALSE; + if (!(gMPlay_BGM.status & MUSICPLAYER_STATUS_TRACK)) + return FALSE; + return TRUE; +} + +bool8 IsSpecialSEPlaying(void) +{ + if (gMPlay_SE3.status & MUSICPLAYER_STATUS_PAUSE) + return FALSE; + if (!(gMPlay_SE3.status & MUSICPLAYER_STATUS_TRACK)) + return FALSE; + return TRUE; +} diff --git a/src/sprite.c b/src/sprite.c new file mode 100644 index 0000000000..17b0f181a7 --- /dev/null +++ b/src/sprite.c @@ -0,0 +1,1831 @@ +#include "global.h" +#include "sprite.h" +#include "main.h" +#include "palette.h" + +#define MAX_SPRITE_COPY_REQUESTS 64 + +#define OAM_MATRIX_COUNT 32 + +#define SET_SPRITE_TILE_RANGE(index, start, count) \ +{ \ + sSpriteTileRanges[index * 2] = start; \ + (sSpriteTileRanges + 1)[index * 2] = count; \ +} + +#define ALLOC_SPRITE_TILE(n) \ +{ \ + gSpriteTileAllocBitmap[(n) / 8] |= (1 << ((n) % 8)); \ +} + +#define FREE_SPRITE_TILE(n) \ +{ \ + gSpriteTileAllocBitmap[(n) / 8] &= ~(1 << ((n) % 8)); \ +} + +#define SPRITE_TILE_IS_ALLOCATED(n) ((gSpriteTileAllocBitmap[(n) / 8] >> ((n) % 8)) & 1) + + +struct SpriteCopyRequest +{ + const u8 *src; + u8 *dest; + u16 size; +}; + +struct OamDimensions +{ + s8 width; + s8 height; +}; + +static void UpdateOamCoords(void); +static void BuildSpritePriorities(void); +static void SortSprites(void); +static void CopyMatricesToOamBuffer(void); +static void AddSpritesToOamBuffer(void); +static u8 CreateSpriteAt(u8 index, const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority); +static void ResetOamMatrices(void); +static void ResetSprite(struct Sprite *sprite); +static s16 AllocSpriteTiles(u16 tileCount); +static void RequestSpriteFrameImageCopy(u16 index, u16 tileNum, const struct SpriteFrameImage *images); +static void ResetAllSprites(void); +static void BeginAnim(struct Sprite *sprite); +static void ContinueAnim(struct Sprite *sprite); +static void AnimCmd_frame(struct Sprite *sprite); +static void AnimCmd_end(struct Sprite *sprite); +static void AnimCmd_jump(struct Sprite *sprite); +static void AnimCmd_loop(struct Sprite *sprite); +static void BeginAnimLoop(struct Sprite *sprite); +static void ContinueAnimLoop(struct Sprite *sprite); +static void JumpToTopOfAnimLoop(struct Sprite *sprite); +static void BeginAffineAnim(struct Sprite *sprite); +static void ContinueAffineAnim(struct Sprite *sprite); +static void AffineAnimDelay(u8 matrixNum, struct Sprite *sprite); +static void AffineAnimCmd_loop(u8 matrixNum, struct Sprite *sprite); +static void BeginAffineAnimLoop(u8 matrixNum, struct Sprite *sprite); +static void ContinueAffineAnimLoop(u8 matrixNum, struct Sprite *sprite); +static void JumpToTopOfAffineAnimLoop(u8 matrixNum, struct Sprite *sprite); +static void AffineAnimCmd_jump(u8 matrixNum, struct Sprite *sprite); +static void AffineAnimCmd_end(u8 matrixNum, struct Sprite *sprite); +static void AffineAnimCmd_frame(u8 matrixNum, struct Sprite *sprite); +static void CopyOamMatrix(u8 destMatrixIndex, struct OamMatrix *srcMatrix); +static u8 GetSpriteMatrixNum(struct Sprite *sprite); +static void SetSpriteOamFlipBits(struct Sprite *sprite, u8 hFlip, u8 vFlip); +static void AffineAnimStateRestartAnim(u8 matrixNum); +static void AffineAnimStateStartAnim(u8 matrixNum, u8 animNum); +static void AffineAnimStateReset(u8 matrixNum); +static void ApplyAffineAnimFrameAbsolute(u8 matrixNum, struct AffineAnimFrameCmd *frameCmd); +static void DecrementAnimDelayCounter(struct Sprite *sprite); +static bool8 DecrementAffineAnimDelayCounter(struct Sprite *sprite, u8 matrixNum); +static void ApplyAffineAnimFrameRelativeAndUpdateMatrix(u8 matrixNum, struct AffineAnimFrameCmd *frameCmd); +static s16 ConvertScaleParam(s16 scale); +static void GetAffineAnimFrame(u8 matrixNum, struct Sprite *sprite, struct AffineAnimFrameCmd *frameCmd); +static void ApplyAffineAnimFrame(u8 matrixNum, struct AffineAnimFrameCmd *frameCmd); +static u8 IndexOfSpriteTileTag(u16 tag); +static void AllocSpriteTileRange(u16 tag, u16 start, u16 count); +static void DoLoadSpritePalette(const u16 *src, u16 paletteOffset); +static void obj_update_pos2(struct Sprite* sprite, s32 a1, s32 a2); + +typedef void (*AnimFunc)(struct Sprite *); +typedef void (*AnimCmdFunc)(struct Sprite *); +typedef void (*AffineAnimCmdFunc)(u8 matrixNum, struct Sprite *); + +#define DUMMY_OAM_DATA \ +{ \ + 160, /* Y (off-screen) */ \ + 0, \ + 0, \ + 0, \ + 0, \ + 0, \ + 304, /* X */ \ + 0, \ + 0, \ + 0, \ + 3, /* lowest priority */ \ + 0, \ + 0 \ +} + +#define ANIM_END 0xFFFF +#define AFFINE_ANIM_END 0x7FFF + +// forward declarations +const union AnimCmd * const gDummySpriteAnimTable[]; +const union AffineAnimCmd * const gDummySpriteAffineAnimTable[]; +const struct SpriteTemplate gDummySpriteTemplate; + +// Unreferenced data. Also unreferenced in R/S. +static const u8 sUnknownData[24] = +{ + 0x01, 0x04, 0x10, 0x40, + 0x02, 0x04, 0x08, 0x20, + 0x02, 0x04, 0x08, 0x20, + 0x01, 0x04, 0x10, 0x40, + 0x02, 0x04, 0x08, 0x20, + 0x02, 0x04, 0x08, 0x20, +}; + +static const u8 sCenterToCornerVecTable[3][4][2] = +{ + { // square + { -4, -4 }, + { -8, -8 }, + { -16, -16 }, + { -32, -32 }, + }, + { // horizontal rectangle + { -8, -4 }, + { -16, -4 }, + { -16, -8 }, + { -32, -16 }, + }, + { // vertical rectangle + { -4, -8 }, + { -4, -16 }, + { -8, -16 }, + { -16, -32 }, + }, +}; + +static const struct Sprite sDummySprite = +{ + .oam = DUMMY_OAM_DATA, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .template = &gDummySpriteTemplate, + .subspriteTables = NULL, + .callback = SpriteCallbackDummy, + .pos1 = { 304, 160 }, + .pos2 = { 0, 0 }, + .centerToCornerVecX = 0, + .centerToCornerVecY = 0, + .animNum = 0, + .animCmdIndex = 0, + .animDelayCounter = 0, + .animPaused = 0, + .affineAnimPaused = 0, + .animLoopCounter = 0, + .data0 = 0, + .data1 = 0, + .data2 = 0, + .data3 = 0, + .data4 = 0, + .data5 = 0, + .data6 = 0, + .data7 = 0, + .inUse = 0, + .coordOffsetEnabled = 0, + .invisible = 0, + .flags_3 = 0, + .flags_4 = 0, + .flags_5 = 0, + .flags_6 = 0, + .flags_7 = 0, + .hFlip = 0, + .vFlip = 0, + .animBeginning = 0, + .affineAnimBeginning = 0, + .animEnded = 0, + .affineAnimEnded = 0, + .usingSheet = 0, + .flags_f = 0, + .sheetTileStart = 0, + .subspriteTableNum = 0, + .subspriteMode = 0, + .subpriority = 0xFF +}; + +const struct OamData gDummyOamData = DUMMY_OAM_DATA; + +static const union AnimCmd sDummyAnim = { ANIM_END }; + +const union AnimCmd * const gDummySpriteAnimTable[] = { &sDummyAnim }; + +static const union AffineAnimCmd sDummyAffineAnim = { AFFINE_ANIM_END }; + +const union AffineAnimCmd * const gDummySpriteAffineAnimTable[] = { &sDummyAffineAnim }; + +const struct SpriteTemplate gDummySpriteTemplate = +{ + .tileTag = 0, + .paletteTag = 0xFFFF, + .oam = &gDummyOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const AnimFunc sAnimFuncs[] = +{ + ContinueAnim, + BeginAnim, +}; + +static const AnimFunc sAffineAnimFuncs[] = +{ + ContinueAffineAnim, + BeginAffineAnim, +}; + +static const AnimCmdFunc sAnimCmdFuncs[] = +{ + AnimCmd_loop, + AnimCmd_jump, + AnimCmd_end, + AnimCmd_frame, +}; + +static const AffineAnimCmdFunc sAffineAnimCmdFuncs[] = +{ + AffineAnimCmd_loop, + AffineAnimCmd_jump, + AffineAnimCmd_end, + AffineAnimCmd_frame, +}; + +static const s32 gUnknown_082EC6F4[24] = +{ + 8, 8, 0x10, 0x10, 0x20, 0x20, + 0x40, 0x40, 0x10, 8, 0x20, 8, + 0x20, 0x10, 0x40, 0x20, 8, 0x10, + 8, 0x20, 0x10, 0x20, 0x20, 0x40, +}; + +static const struct OamDimensions sOamDimensions[3][4] = +{ + { // square + { 8, 8 }, + { 16, 16 }, + { 32, 32 }, + { 64, 64 }, + }, + { // horizontal rectangle + { 16, 8 }, + { 32, 8 }, + { 32, 16 }, + { 64, 32 }, + }, + { // vertical rectangle + { 8, 16 }, + { 8, 32 }, + { 16, 32 }, + { 32, 64 }, + }, +}; + +// iwram bss +IWRAM_DATA static u16 sSpriteTileRangeTags[MAX_SPRITES]; +IWRAM_DATA static u16 sSpriteTileRanges[MAX_SPRITES * 2]; +IWRAM_DATA static struct AffineAnimState sAffineAnimStates[OAM_MATRIX_COUNT]; +IWRAM_DATA static u16 sSpritePaletteTags[16]; + +// iwram common +u32 gOamMatrixAllocBitmap; +u8 gReservedSpritePaletteCount; + +EWRAM_DATA struct Sprite gSprites[MAX_SPRITES + 1] = {0}; +EWRAM_DATA u16 gSpritePriorities[MAX_SPRITES] = {0}; +EWRAM_DATA u8 gSpriteOrder[MAX_SPRITES] = {0}; +EWRAM_DATA bool8 gShouldProcessSpriteCopyRequests = 0; +EWRAM_DATA u8 gSpriteCopyRequestCount = 0; +EWRAM_DATA struct SpriteCopyRequest gSpriteCopyRequests[MAX_SPRITES] = {0}; +EWRAM_DATA u8 gOamLimit = 0; +EWRAM_DATA u16 gReservedSpriteTileCount = 0; +EWRAM_DATA u8 gSpriteTileAllocBitmap[128] = {0}; +EWRAM_DATA s16 gSpriteCoordOffsetX = 0; +EWRAM_DATA s16 gSpriteCoordOffsetY = 0; +EWRAM_DATA struct OamMatrix gOamMatrices[OAM_MATRIX_COUNT] = {0}; +EWRAM_DATA bool8 gAffineAnimsDisabled = 0; + +void ResetSpriteData(void) +{ + ResetOamRange(0, 128); + ResetAllSprites(); + ClearSpriteCopyRequests(); + ResetAffineAnimData(); + FreeSpriteTileRanges(); + gOamLimit = 64; + gReservedSpriteTileCount = 0; + AllocSpriteTiles(0); + gSpriteCoordOffsetX = 0; + gSpriteCoordOffsetY = 0; +} + +void AnimateSprites(void) +{ + u8 i; + for (i = 0; i < MAX_SPRITES; i++) + { + struct Sprite *sprite = &gSprites[i]; + + if (sprite->inUse) + { + sprite->callback(sprite); + + if (sprite->inUse) + AnimateSprite(sprite); + } + } +} + +void BuildOamBuffer(void) +{ + u8 temp; + UpdateOamCoords(); + BuildSpritePriorities(); + SortSprites(); + temp = gMain.oamLoadDisabled; + gMain.oamLoadDisabled = TRUE; + AddSpritesToOamBuffer(); + CopyMatricesToOamBuffer(); + gMain.oamLoadDisabled = temp; + gShouldProcessSpriteCopyRequests = TRUE; +} + +void UpdateOamCoords(void) +{ + u8 i; + for (i = 0; i < MAX_SPRITES; i++) + { + struct Sprite *sprite = &gSprites[i]; + if (sprite->inUse && !sprite->invisible) + { + if (sprite->coordOffsetEnabled) + { + sprite->oam.x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX + gSpriteCoordOffsetX; + sprite->oam.y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY; + } + else + { + sprite->oam.x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX; + sprite->oam.y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY; + } + } + } +} + +void BuildSpritePriorities(void) +{ + u16 i; + for (i = 0; i < MAX_SPRITES; i++) + { + struct Sprite *sprite = &gSprites[i]; + u16 priority = sprite->subpriority | (sprite->oam.priority << 8); + gSpritePriorities[i] = priority; + } +} + +void SortSprites(void) +{ + u8 i; + for (i = 1; i < MAX_SPRITES; i++) + { + u8 j = i; + struct Sprite *sprite1 = &gSprites[gSpriteOrder[i - 1]]; + struct Sprite *sprite2 = &gSprites[gSpriteOrder[i]]; + u16 sprite1Priority = gSpritePriorities[gSpriteOrder[i - 1]]; + u16 sprite2Priority = gSpritePriorities[gSpriteOrder[i]]; + s16 sprite1Y = sprite1->oam.y; + s16 sprite2Y = sprite2->oam.y; + + if (sprite1Y >= DISPLAY_HEIGHT) + sprite1Y = sprite1Y - 256; + + if (sprite2Y >= DISPLAY_HEIGHT) + sprite2Y = sprite2Y - 256; + + if (sprite1->oam.affineMode == ST_OAM_AFFINE_DOUBLE + && sprite1->oam.size == 3) + { + u32 shape = sprite1->oam.shape; + if (shape == ST_OAM_SQUARE || shape == 2) + { + if (sprite1Y > 128) + sprite1Y = sprite1Y - 256; + } + } + + if (sprite2->oam.affineMode == ST_OAM_AFFINE_DOUBLE + && sprite2->oam.size == 3) + { + u32 shape = sprite2->oam.shape; + if (shape == ST_OAM_SQUARE || shape == ST_OAM_V_RECTANGLE) + { + if (sprite2Y > 128) + sprite2Y = sprite2Y - 256; + } + } + + while (j > 0 + && ((sprite1Priority > sprite2Priority) + || (sprite1Priority == sprite2Priority && sprite1Y < sprite2Y))) + { + u8 temp = gSpriteOrder[j]; + gSpriteOrder[j] = gSpriteOrder[j - 1]; + gSpriteOrder[j - 1] = temp; + + // UB: If j equals 1, then j-- makes j equal 0. + // Then, gSpriteOrder[-1] gets accessed below. + // Although this doesn't result in a bug in the ROM, + // the behavior is undefined. + j--; + + sprite1 = &gSprites[gSpriteOrder[j - 1]]; + sprite2 = &gSprites[gSpriteOrder[j]]; + sprite1Priority = gSpritePriorities[gSpriteOrder[j - 1]]; + sprite2Priority = gSpritePriorities[gSpriteOrder[j]]; + sprite1Y = sprite1->oam.y; + sprite2Y = sprite2->oam.y; + + if (sprite1Y >= DISPLAY_HEIGHT) + sprite1Y = sprite1Y - 256; + + if (sprite2Y >= DISPLAY_HEIGHT) + sprite2Y = sprite2Y - 256; + + if (sprite1->oam.affineMode == ST_OAM_AFFINE_DOUBLE + && sprite1->oam.size == 3) + { + u32 shape = sprite1->oam.shape; + if (shape == ST_OAM_SQUARE || shape == ST_OAM_V_RECTANGLE) + { + if (sprite1Y > 128) + sprite1Y = sprite1Y - 256; + } + } + + if (sprite2->oam.affineMode == ST_OAM_AFFINE_DOUBLE + && sprite2->oam.size == 3) + { + u32 shape = sprite2->oam.shape; + if (shape == ST_OAM_SQUARE || shape == ST_OAM_V_RECTANGLE) + { + if (sprite2Y > 128) + sprite2Y = sprite2Y - 256; + } + } + } + } +} + +void CopyMatricesToOamBuffer(void) +{ + u8 i; + for (i = 0; i < OAM_MATRIX_COUNT; i++) + { + u32 base = 4 * i; + gMain.oamBuffer[base + 0].affineParam = gOamMatrices[i].a; + gMain.oamBuffer[base + 1].affineParam = gOamMatrices[i].b; + gMain.oamBuffer[base + 2].affineParam = gOamMatrices[i].c; + gMain.oamBuffer[base + 3].affineParam = gOamMatrices[i].d; + } +} + +void AddSpritesToOamBuffer(void) +{ + u8 i = 0; + u8 oamIndex = 0; + + while (i < MAX_SPRITES) + { + struct Sprite *sprite = &gSprites[gSpriteOrder[i]]; + if (sprite->inUse && !sprite->invisible && AddSpriteToOamBuffer(sprite, &oamIndex)) + return; + i++; + } + + while (oamIndex < gOamLimit) + { + gMain.oamBuffer[oamIndex] = gDummyOamData; + oamIndex++; + } +} + +u8 CreateSprite(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority) +{ + u8 i; + + for (i = 0; i < MAX_SPRITES; i++) + if (!gSprites[i].inUse) + return CreateSpriteAt(i, template, x, y, subpriority); + + return MAX_SPRITES; +} + +u8 CreateSpriteAtEnd(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority) +{ + s16 i; + + for (i = MAX_SPRITES - 1; i > -1; i--) + if (!gSprites[i].inUse) + return CreateSpriteAt(i, template, x, y, subpriority); + + return MAX_SPRITES; +} + +u8 CreateInvisibleSprite(void (*callback)(struct Sprite *)) +{ + u8 index = CreateSprite(&gDummySpriteTemplate, 0, 0, 31); + + if (index == MAX_SPRITES) + { + return MAX_SPRITES; + } + else + { + gSprites[index].invisible = TRUE; + gSprites[index].callback = callback; + return index; + } +} + +u8 CreateSpriteAt(u8 index, const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority) +{ + struct Sprite *sprite = &gSprites[index]; + + ResetSprite(sprite); + + sprite->inUse = TRUE; + sprite->animBeginning = TRUE; + sprite->affineAnimBeginning = TRUE; + sprite->usingSheet = TRUE; + + sprite->subpriority = subpriority; + sprite->oam = *template->oam; + sprite->anims = template->anims; + sprite->affineAnims = template->affineAnims; + sprite->template = template; + sprite->callback = template->callback; + sprite->pos1.x = x; + sprite->pos1.y = y; + + CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode); + + if (template->tileTag == 0xFFFF) + { + s16 tileNum; + sprite->images = template->images; + tileNum = AllocSpriteTiles((u8)(sprite->images->size / TILE_SIZE_4BPP)); + if (tileNum == -1) + { + ResetSprite(sprite); + return MAX_SPRITES; + } + sprite->oam.tileNum = tileNum; + sprite->usingSheet = FALSE; + sprite->sheetTileStart = 0; + } + else + { + sprite->sheetTileStart = GetSpriteTileStartByTag(template->tileTag); + SetSpriteSheetFrameTileNum(sprite); + } + + if (sprite->oam.affineMode & ST_OAM_AFFINE_ON_MASK) + InitSpriteAffineAnim(sprite); + + if (template->paletteTag != 0xFFFF) + sprite->oam.paletteNum = IndexOfSpritePaletteTag(template->paletteTag); + + return index; +} + +u8 CreateSpriteAndAnimate(struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority) +{ + u8 i; + + for (i = 0; i < MAX_SPRITES; i++) + { + struct Sprite *sprite = &gSprites[i]; + + if (!gSprites[i].inUse) + { + u8 index = CreateSpriteAt(i, template, x, y, subpriority); + + if (index == MAX_SPRITES) + return MAX_SPRITES; + + gSprites[i].callback(sprite); + + if (gSprites[i].inUse) + AnimateSprite(sprite); + + return index; + } + } + + return MAX_SPRITES; +} + +void DestroySprite(struct Sprite *sprite) +{ + if (sprite->inUse) + { + if (!sprite->usingSheet) + { + u16 i; + u16 tileEnd = (sprite->images->size / TILE_SIZE_4BPP) + sprite->oam.tileNum; + for (i = sprite->oam.tileNum; i < tileEnd; i++) + FREE_SPRITE_TILE(i); + } + ResetSprite(sprite); + } +} + +void ResetOamRange(u8 a, u8 b) +{ + u8 i; + + for (i = a; i < b; i++) + { + struct OamData *oamBuffer = gMain.oamBuffer; + oamBuffer[i] = *(struct OamData *)&gDummyOamData; + } +} + +void LoadOam(void) +{ + if (!gMain.oamLoadDisabled) + CpuCopy32(gMain.oamBuffer, (void *)OAM, sizeof(gMain.oamBuffer)); +} + +void ClearSpriteCopyRequests(void) +{ + u8 i; + + gShouldProcessSpriteCopyRequests = FALSE; + gSpriteCopyRequestCount = 0; + + for (i = 0; i < MAX_SPRITE_COPY_REQUESTS; i++) + { + gSpriteCopyRequests[i].src = 0; + gSpriteCopyRequests[i].dest = 0; + gSpriteCopyRequests[i].size = 0; + } +} + +void ResetOamMatrices(void) +{ + u8 i; + for (i = 0; i < OAM_MATRIX_COUNT; i++) + { + // set to identity matrix + gOamMatrices[i].a = 0x0100; + gOamMatrices[i].b = 0x0000; + gOamMatrices[i].c = 0x0000; + gOamMatrices[i].d = 0x0100; + } +} + +void SetOamMatrix(u8 matrixNum, u16 a, u16 b, u16 c, u16 d) +{ + gOamMatrices[matrixNum].a = a; + gOamMatrices[matrixNum].b = b; + gOamMatrices[matrixNum].c = c; + gOamMatrices[matrixNum].d = d; +} + +void ResetSprite(struct Sprite *sprite) +{ + *sprite = sDummySprite; +} + +void CalcCenterToCornerVec(struct Sprite *sprite, u8 shape, u8 size, u8 affineMode) +{ + u8 x = sCenterToCornerVecTable[shape][size][0]; + u8 y = sCenterToCornerVecTable[shape][size][1]; + + if (affineMode & ST_OAM_AFFINE_DOUBLE_MASK) + { + x *= 2; + y *= 2; + } + + sprite->centerToCornerVecX = x; + sprite->centerToCornerVecY = y; +} + +s16 AllocSpriteTiles(u16 tileCount) +{ + u16 i; + s16 start; + u16 numTilesFound; + + if (tileCount == 0) + { + // Free all unreserved tiles if the tile count is 0. + for (i = gReservedSpriteTileCount; i < TOTAL_OBJ_TILE_COUNT; i++) + FREE_SPRITE_TILE(i); + + return 0; + } + + i = gReservedSpriteTileCount; + + for (;;) + { + while (SPRITE_TILE_IS_ALLOCATED(i)) + { + i++; + + if (i == TOTAL_OBJ_TILE_COUNT) + return -1; + } + + start = i; + numTilesFound = 1; + + while (numTilesFound != tileCount) + { + i++; + + if (i == TOTAL_OBJ_TILE_COUNT) + return -1; + + if (!SPRITE_TILE_IS_ALLOCATED(i)) + numTilesFound++; + else + break; + } + + if (numTilesFound == tileCount) + break; + } + + for (i = start; i < tileCount + start; i++) + ALLOC_SPRITE_TILE(i); + + return start; +} + +u8 SpriteTileAllocBitmapOp(u16 bit, u8 op) +{ + u8 index = bit / 8; + u8 shift = bit % 8; + u8 val = bit % 8; + u8 retVal = 0; + + if (op == 0) + { + val = ~(1 << val); + gSpriteTileAllocBitmap[index] &= val; + } + else if (op == 1) + { + val = (1 << val); + gSpriteTileAllocBitmap[index] |= val; + } + else + { + retVal = 1 << shift; + retVal &= gSpriteTileAllocBitmap[index]; + } + + return retVal; +} + +void SpriteCallbackDummy(struct Sprite *sprite) +{ +} + +void ProcessSpriteCopyRequests(void) +{ + if (gShouldProcessSpriteCopyRequests) + { + u8 i = 0; + + while (gSpriteCopyRequestCount > 0) + { + CpuCopy16(gSpriteCopyRequests[i].src, gSpriteCopyRequests[i].dest, gSpriteCopyRequests[i].size); + gSpriteCopyRequestCount--; + i++; + } + + gShouldProcessSpriteCopyRequests = FALSE; + } +} + +void RequestSpriteFrameImageCopy(u16 index, u16 tileNum, const struct SpriteFrameImage *images) +{ + if (gSpriteCopyRequestCount < MAX_SPRITE_COPY_REQUESTS) + { + gSpriteCopyRequests[gSpriteCopyRequestCount].src = images[index].data; + gSpriteCopyRequests[gSpriteCopyRequestCount].dest = (u8 *)OBJ_VRAM0 + TILE_SIZE_4BPP * tileNum; + gSpriteCopyRequests[gSpriteCopyRequestCount].size = images[index].size; + gSpriteCopyRequestCount++; + } +} + +void RequestSpriteCopy(const u8 *src, u8 *dest, u16 size) +{ + if (gSpriteCopyRequestCount < MAX_SPRITE_COPY_REQUESTS) + { + gSpriteCopyRequests[gSpriteCopyRequestCount].src = src; + gSpriteCopyRequests[gSpriteCopyRequestCount].dest = dest; + gSpriteCopyRequests[gSpriteCopyRequestCount].size = size; + gSpriteCopyRequestCount++; + } +} + +void CopyFromSprites(u8 *dest) +{ + u32 i; + u8 *src = (u8 *)gSprites; + for (i = 0; i < sizeof(struct Sprite) * MAX_SPRITES; i++) + { + *dest = *src; + dest++; + src++; + } +} + +void CopyToSprites(u8 *src) +{ + u32 i; + u8 *dest = (u8 *)gSprites; + for (i = 0; i < sizeof(struct Sprite) * MAX_SPRITES; i++) + { + *dest = *src; + src++; + dest++; + } +} + +void ResetAllSprites(void) +{ + u8 i; + + for (i = 0; i < MAX_SPRITES; i++) + { + ResetSprite(&gSprites[i]); + gSpriteOrder[i] = i; + } + + ResetSprite(&gSprites[i]); +} + +void FreeSpriteTiles(struct Sprite *sprite) +{ + if (sprite->template->tileTag != 0xFFFF) + FreeSpriteTilesByTag(sprite->template->tileTag); +} + +void FreeSpritePalette(struct Sprite *sprite) +{ + FreeSpritePaletteByTag(sprite->template->paletteTag); +} + +void FreeSpriteOamMatrix(struct Sprite *sprite) +{ + if (sprite->oam.affineMode & ST_OAM_AFFINE_ON_MASK) + { + FreeOamMatrix(sprite->oam.matrixNum); + sprite->oam.affineMode = ST_OAM_AFFINE_OFF; + } +} + +void DestroySpriteAndFreeResources(struct Sprite *sprite) +{ + FreeSpriteTiles(sprite); + FreeSpritePalette(sprite); + FreeSpriteOamMatrix(sprite); + DestroySprite(sprite); +} + +void AnimateSprite(struct Sprite *sprite) +{ + sAnimFuncs[sprite->animBeginning](sprite); + + if (!gAffineAnimsDisabled) + sAffineAnimFuncs[sprite->affineAnimBeginning](sprite); +} + +void BeginAnim(struct Sprite *sprite) +{ + s16 imageValue; + u8 duration; + u8 hFlip; + u8 vFlip; + + sprite->animCmdIndex = 0; + sprite->animEnded = FALSE; + sprite->animLoopCounter = 0; + imageValue = sprite->anims[sprite->animNum][sprite->animCmdIndex].frame.imageValue; + + if (imageValue != -1) + { + sprite->animBeginning = FALSE; + duration = sprite->anims[sprite->animNum][sprite->animCmdIndex].frame.duration; + hFlip = sprite->anims[sprite->animNum][sprite->animCmdIndex].frame.hFlip; + vFlip = sprite->anims[sprite->animNum][sprite->animCmdIndex].frame.vFlip; + + if (duration) + duration--; + + sprite->animDelayCounter = duration; + + if (!(sprite->oam.affineMode & ST_OAM_AFFINE_ON_MASK)) + SetSpriteOamFlipBits(sprite, hFlip, vFlip); + + if (sprite->usingSheet) + sprite->oam.tileNum = sprite->sheetTileStart + imageValue; + else + RequestSpriteFrameImageCopy(imageValue, sprite->oam.tileNum, sprite->images); + } +} + +void ContinueAnim(struct Sprite *sprite) +{ + if (sprite->animDelayCounter) + { + u8 hFlip; + u8 vFlip; + DecrementAnimDelayCounter(sprite); + hFlip = sprite->anims[sprite->animNum][sprite->animCmdIndex].frame.hFlip; + vFlip = sprite->anims[sprite->animNum][sprite->animCmdIndex].frame.vFlip; + if (!(sprite->oam.affineMode & ST_OAM_AFFINE_ON_MASK)) + SetSpriteOamFlipBits(sprite, hFlip, vFlip); + } + else if (!sprite->animPaused) + { + s16 type; + s16 funcIndex; + sprite->animCmdIndex++; + type = sprite->anims[sprite->animNum][sprite->animCmdIndex].type; + funcIndex = 3; + if (type < 0) + funcIndex = type + 3; + sAnimCmdFuncs[funcIndex](sprite); + } +} + +void AnimCmd_frame(struct Sprite *sprite) +{ + s16 imageValue; + u8 duration; + u8 hFlip; + u8 vFlip; + + imageValue = sprite->anims[sprite->animNum][sprite->animCmdIndex].frame.imageValue; + duration = sprite->anims[sprite->animNum][sprite->animCmdIndex].frame.duration; + hFlip = sprite->anims[sprite->animNum][sprite->animCmdIndex].frame.hFlip; + vFlip = sprite->anims[sprite->animNum][sprite->animCmdIndex].frame.vFlip; + + if (duration) + duration--; + + sprite->animDelayCounter = duration; + + if (!(sprite->oam.affineMode & ST_OAM_AFFINE_ON_MASK)) + SetSpriteOamFlipBits(sprite, hFlip, vFlip); + + if (sprite->usingSheet) + sprite->oam.tileNum = sprite->sheetTileStart + imageValue; + else + RequestSpriteFrameImageCopy(imageValue, sprite->oam.tileNum, sprite->images); +} + +void AnimCmd_end(struct Sprite *sprite) +{ + sprite->animCmdIndex--; + sprite->animEnded = TRUE; +} + +void AnimCmd_jump(struct Sprite *sprite) +{ + s16 imageValue; + u8 duration; + u8 hFlip; + u8 vFlip; + + sprite->animCmdIndex = sprite->anims[sprite->animNum][sprite->animCmdIndex].jump.target; + + imageValue = sprite->anims[sprite->animNum][sprite->animCmdIndex].frame.imageValue; + duration = sprite->anims[sprite->animNum][sprite->animCmdIndex].frame.duration; + hFlip = sprite->anims[sprite->animNum][sprite->animCmdIndex].frame.hFlip; + vFlip = sprite->anims[sprite->animNum][sprite->animCmdIndex].frame.vFlip; + + if (duration) + duration--; + + sprite->animDelayCounter = duration; + + if (!(sprite->oam.affineMode & ST_OAM_AFFINE_ON_MASK)) + SetSpriteOamFlipBits(sprite, hFlip, vFlip); + + if (sprite->usingSheet) + sprite->oam.tileNum = sprite->sheetTileStart + imageValue; + else + RequestSpriteFrameImageCopy(imageValue, sprite->oam.tileNum, sprite->images); +} + +void AnimCmd_loop(struct Sprite *sprite) +{ + if (sprite->animLoopCounter) + ContinueAnimLoop(sprite); + else + BeginAnimLoop(sprite); +} + +void BeginAnimLoop(struct Sprite *sprite) +{ + sprite->animLoopCounter = sprite->anims[sprite->animNum][sprite->animCmdIndex].loop.count; + JumpToTopOfAnimLoop(sprite); + ContinueAnim(sprite); +} + +void ContinueAnimLoop(struct Sprite *sprite) +{ + sprite->animLoopCounter--; + JumpToTopOfAnimLoop(sprite); + ContinueAnim(sprite); +} + +void JumpToTopOfAnimLoop(struct Sprite *sprite) +{ + if (sprite->animLoopCounter) + { + sprite->animCmdIndex--; + + while (sprite->anims[sprite->animNum][sprite->animCmdIndex - 1].type != -3) + { + if (sprite->animCmdIndex == 0) + break; + sprite->animCmdIndex--; + } + + sprite->animCmdIndex--; + } +} + +void BeginAffineAnim(struct Sprite *sprite) +{ + if ((sprite->oam.affineMode & ST_OAM_AFFINE_ON_MASK) && sprite->affineAnims[0][0].type != 32767) + { + struct AffineAnimFrameCmd frameCmd; + u8 matrixNum = GetSpriteMatrixNum(sprite); + AffineAnimStateRestartAnim(matrixNum); + GetAffineAnimFrame(matrixNum, sprite, &frameCmd); + sprite->affineAnimBeginning = FALSE; + sprite->affineAnimEnded = FALSE; + ApplyAffineAnimFrame(matrixNum, &frameCmd); + sAffineAnimStates[matrixNum].delayCounter = frameCmd.duration; + if (sprite->flags_f) + obj_update_pos2(sprite, sprite->data6, sprite->data7); + } +} + +void ContinueAffineAnim(struct Sprite *sprite) +{ + if (sprite->oam.affineMode & ST_OAM_AFFINE_ON_MASK) + { + u8 matrixNum = GetSpriteMatrixNum(sprite); + + if (sAffineAnimStates[matrixNum].delayCounter) + AffineAnimDelay(matrixNum, sprite); + else if (sprite->affineAnimPaused) + return; + else + { + s16 type; + s16 funcIndex; + sAffineAnimStates[matrixNum].animCmdIndex++; + type = sprite->affineAnims[sAffineAnimStates[matrixNum].animNum][sAffineAnimStates[matrixNum].animCmdIndex].type; + funcIndex = 3; + if (type >= 32765) + funcIndex = type - 32765; + sAffineAnimCmdFuncs[funcIndex](matrixNum, sprite); + } + if (sprite->flags_f) + obj_update_pos2(sprite, sprite->data6, sprite->data7); + } +} + +void AffineAnimDelay(u8 matrixNum, struct Sprite *sprite) +{ + if (!DecrementAffineAnimDelayCounter(sprite, matrixNum)) + { + struct AffineAnimFrameCmd frameCmd; + GetAffineAnimFrame(matrixNum, sprite, &frameCmd); + ApplyAffineAnimFrameRelativeAndUpdateMatrix(matrixNum, &frameCmd); + } +} + +void AffineAnimCmd_loop(u8 matrixNum, struct Sprite *sprite) +{ + if (sAffineAnimStates[matrixNum].loopCounter) + ContinueAffineAnimLoop(matrixNum, sprite); + else + BeginAffineAnimLoop(matrixNum, sprite); +} + +void BeginAffineAnimLoop(u8 matrixNum, struct Sprite *sprite) +{ + sAffineAnimStates[matrixNum].loopCounter = sprite->affineAnims[sAffineAnimStates[matrixNum].animNum][sAffineAnimStates[matrixNum].animCmdIndex].loop.count; + JumpToTopOfAffineAnimLoop(matrixNum, sprite); + ContinueAffineAnim(sprite); +} + +void ContinueAffineAnimLoop(u8 matrixNum, struct Sprite *sprite) +{ + sAffineAnimStates[matrixNum].loopCounter--; + JumpToTopOfAffineAnimLoop(matrixNum, sprite); + ContinueAffineAnim(sprite); +} + +void JumpToTopOfAffineAnimLoop(u8 matrixNum, struct Sprite *sprite) +{ + if (sAffineAnimStates[matrixNum].loopCounter) + { + sAffineAnimStates[matrixNum].animCmdIndex--; + + while (sprite->affineAnims[sAffineAnimStates[matrixNum].animNum][sAffineAnimStates[matrixNum].animCmdIndex - 1].type != 32765) + { + if (sAffineAnimStates[matrixNum].animCmdIndex == 0) + break; + sAffineAnimStates[matrixNum].animCmdIndex--; + } + + sAffineAnimStates[matrixNum].animCmdIndex--; + } +} + +void AffineAnimCmd_jump(u8 matrixNum, struct Sprite *sprite) +{ + struct AffineAnimFrameCmd frameCmd; + sAffineAnimStates[matrixNum].animCmdIndex = sprite->affineAnims[sAffineAnimStates[matrixNum].animNum][sAffineAnimStates[matrixNum].animCmdIndex].jump.target; + GetAffineAnimFrame(matrixNum, sprite, &frameCmd); + ApplyAffineAnimFrame(matrixNum, &frameCmd); + sAffineAnimStates[matrixNum].delayCounter = frameCmd.duration; +} + +void AffineAnimCmd_end(u8 matrixNum, struct Sprite *sprite) +{ + struct AffineAnimFrameCmd dummyFrameCmd = {0}; + sprite->affineAnimEnded = TRUE; + sAffineAnimStates[matrixNum].animCmdIndex--; + ApplyAffineAnimFrameRelativeAndUpdateMatrix(matrixNum, &dummyFrameCmd); +} + +void AffineAnimCmd_frame(u8 matrixNum, struct Sprite *sprite) +{ + struct AffineAnimFrameCmd frameCmd; + GetAffineAnimFrame(matrixNum, sprite, &frameCmd); + ApplyAffineAnimFrame(matrixNum, &frameCmd); + sAffineAnimStates[matrixNum].delayCounter = frameCmd.duration; +} + +void CopyOamMatrix(u8 destMatrixIndex, struct OamMatrix *srcMatrix) +{ + gOamMatrices[destMatrixIndex].a = srcMatrix->a; + gOamMatrices[destMatrixIndex].b = srcMatrix->b; + gOamMatrices[destMatrixIndex].c = srcMatrix->c; + gOamMatrices[destMatrixIndex].d = srcMatrix->d; +} + +u8 GetSpriteMatrixNum(struct Sprite *sprite) +{ + u8 matrixNum = 0; + if (sprite->oam.affineMode & ST_OAM_AFFINE_ON_MASK) + matrixNum = sprite->oam.matrixNum; + return matrixNum; +} + +void sub_8007E18(struct Sprite* sprite, s16 a2, s16 a3) +{ + sprite->data6 = a2; + sprite->data7 = a3; + sprite->flags_f = 1; +} + +s32 sub_8007E28(s32 a0, s32 a1, s32 a2) +{ + s32 subResult, var1; + + subResult = a1 - a0; + if (subResult < 0) + var1 = -(subResult) >> 9; + else + var1 = -(subResult >> 9); + return a2 - ((u32)(a2 * a1) / (u32)(a0) + var1); +} + +#ifdef NONMATCHING +void obj_update_pos2(struct Sprite* sprite, s32 a1, s32 a2) +{ + s32 var0, var1, var2; + u8 matrixNum = sprite->oam.matrixNum; + if (a1 != 0x800) + { + var0 = gUnknown_082EC6F4[sprite->oam.size * 8 + sprite->oam.shape * 32]; + var1 = var0 << 8; + var2 = (var0 << 16) / gOamMatrices[matrixNum].a; + sprite->pos2.x = sub_8007E28(var1, var2, a1); + } + if (a2 != 0x800) + { + var0 = gUnknown_082EC6F4[4 + (sprite->oam.size * 8 + sprite->oam.shape * 32)]; + var1 = var0 << 8; + var2 = (var0 << 16) / gOamMatrices[matrixNum].d; + sprite->pos2.y = sub_8007E28(var1, var2, a2); + } +} +#else +__attribute__((naked)) +void obj_update_pos2(struct Sprite* sprite, s32 a1, s32 a2) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r9\n\ + mov r6, r8\n\ + push {r6,r7}\n\ + adds r5, r0, 0\n\ + adds r6, r1, 0\n\ + mov r8, r2\n\ + ldrb r1, [r5, 0x3]\n\ + lsls r0, r1, 26\n\ + lsrs r7, r0, 27\n\ + movs r0, 0x80\n\ + lsls r0, 4\n\ + mov r9, r0\n\ + cmp r6, r9\n\ + beq _08007EA2\n\ + ldr r2, =gUnknown_082EC6F4\n\ + lsrs r1, 6\n\ + lsls r1, 3\n\ + ldrb r0, [r5, 0x1]\n\ + lsrs r0, 6\n\ + lsls r0, 5\n\ + adds r1, r0\n\ + adds r1, r2\n\ + ldr r0, [r1]\n\ + lsls r4, r0, 8\n\ + lsls r0, 16\n\ + ldr r2, =gOamMatrices\n\ + lsls r1, r7, 3\n\ + adds r1, r2\n\ + movs r2, 0\n\ + ldrsh r1, [r1, r2]\n\ + bl __divsi3\n\ + adds r1, r0, 0\n\ + adds r0, r4, 0\n\ + adds r2, r6, 0\n\ + bl sub_8007E28\n\ + strh r0, [r5, 0x24]\n\ +_08007EA2:\n\ + cmp r8, r9\n\ + beq _08007EDA\n\ + ldr r2, =gUnknown_082EC6F4\n\ + ldrb r1, [r5, 0x3]\n\ + lsrs r1, 6\n\ + lsls r1, 3\n\ + ldrb r0, [r5, 0x1]\n\ + lsrs r0, 6\n\ + lsls r0, 5\n\ + adds r1, r0\n\ + adds r2, 0x4\n\ + adds r1, r2\n\ + ldr r0, [r1]\n\ + lsls r4, r0, 8\n\ + lsls r0, 16\n\ + ldr r2, =gOamMatrices\n\ + lsls r1, r7, 3\n\ + adds r1, r2\n\ + movs r2, 0x6\n\ + ldrsh r1, [r1, r2]\n\ + bl __divsi3\n\ + adds r1, r0, 0\n\ + adds r0, r4, 0\n\ + mov r2, r8\n\ + bl sub_8007E28\n\ + strh r0, [r5, 0x26]\n\ +_08007EDA:\n\ + pop {r3,r4}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided"); +} +#endif // NONMATCHING + +void SetSpriteOamFlipBits(struct Sprite *sprite, u8 hFlip, u8 vFlip) +{ + sprite->oam.matrixNum &= 0x7; + sprite->oam.matrixNum |= (((hFlip ^ sprite->hFlip) & 1) << 3); + sprite->oam.matrixNum |= (((vFlip ^ sprite->vFlip) & 1) << 4); +} + +void AffineAnimStateRestartAnim(u8 matrixNum) +{ + sAffineAnimStates[matrixNum].animCmdIndex = 0; + sAffineAnimStates[matrixNum].delayCounter = 0; + sAffineAnimStates[matrixNum].loopCounter = 0; +} + +void AffineAnimStateStartAnim(u8 matrixNum, u8 animNum) +{ + sAffineAnimStates[matrixNum].animNum = animNum; + sAffineAnimStates[matrixNum].animCmdIndex = 0; + sAffineAnimStates[matrixNum].delayCounter = 0; + sAffineAnimStates[matrixNum].loopCounter = 0; + sAffineAnimStates[matrixNum].xScale = 0x0100; + sAffineAnimStates[matrixNum].yScale = 0x0100; + sAffineAnimStates[matrixNum].rotation = 0; +} + +void AffineAnimStateReset(u8 matrixNum) +{ + sAffineAnimStates[matrixNum].animNum = 0; + sAffineAnimStates[matrixNum].animCmdIndex = 0; + sAffineAnimStates[matrixNum].delayCounter = 0; + sAffineAnimStates[matrixNum].loopCounter = 0; + sAffineAnimStates[matrixNum].xScale = 0x0100; + sAffineAnimStates[matrixNum].yScale = 0x0100; + sAffineAnimStates[matrixNum].rotation = 0; +} + +void ApplyAffineAnimFrameAbsolute(u8 matrixNum, struct AffineAnimFrameCmd *frameCmd) +{ + sAffineAnimStates[matrixNum].xScale = frameCmd->xScale; + sAffineAnimStates[matrixNum].yScale = frameCmd->yScale; + sAffineAnimStates[matrixNum].rotation = frameCmd->rotation << 8; +} + +void DecrementAnimDelayCounter(struct Sprite *sprite) +{ + if (!sprite->animPaused) + sprite->animDelayCounter--; +} + +bool8 DecrementAffineAnimDelayCounter(struct Sprite *sprite, u8 matrixNum) +{ + if (!sprite->affineAnimPaused) + --sAffineAnimStates[matrixNum].delayCounter; + return sprite->affineAnimPaused; +} + +void ApplyAffineAnimFrameRelativeAndUpdateMatrix(u8 matrixNum, struct AffineAnimFrameCmd *frameCmd) +{ + struct ObjAffineSrcData srcData; + struct OamMatrix matrix; + sAffineAnimStates[matrixNum].xScale += frameCmd->xScale; + sAffineAnimStates[matrixNum].yScale += frameCmd->yScale; + sAffineAnimStates[matrixNum].rotation = (sAffineAnimStates[matrixNum].rotation + (frameCmd->rotation << 8)) & ~0xFF; + srcData.xScale = ConvertScaleParam(sAffineAnimStates[matrixNum].xScale); + srcData.yScale = ConvertScaleParam(sAffineAnimStates[matrixNum].yScale); + srcData.rotation = sAffineAnimStates[matrixNum].rotation; + ObjAffineSet(&srcData, &matrix, 1, 2); + CopyOamMatrix(matrixNum, &matrix); +} + +s16 ConvertScaleParam(s16 scale) +{ + s32 val = 0x10000; + return val / scale; +} + +void GetAffineAnimFrame(u8 matrixNum, struct Sprite *sprite, struct AffineAnimFrameCmd *frameCmd) +{ + frameCmd->xScale = sprite->affineAnims[sAffineAnimStates[matrixNum].animNum][sAffineAnimStates[matrixNum].animCmdIndex].frame.xScale; + frameCmd->yScale = sprite->affineAnims[sAffineAnimStates[matrixNum].animNum][sAffineAnimStates[matrixNum].animCmdIndex].frame.yScale; + frameCmd->rotation = sprite->affineAnims[sAffineAnimStates[matrixNum].animNum][sAffineAnimStates[matrixNum].animCmdIndex].frame.rotation; + frameCmd->duration = sprite->affineAnims[sAffineAnimStates[matrixNum].animNum][sAffineAnimStates[matrixNum].animCmdIndex].frame.duration; +} + +void ApplyAffineAnimFrame(u8 matrixNum, struct AffineAnimFrameCmd *frameCmd) +{ + struct AffineAnimFrameCmd dummyFrameCmd = {0}; + + if (frameCmd->duration) + { + frameCmd->duration--; + ApplyAffineAnimFrameRelativeAndUpdateMatrix(matrixNum, frameCmd); + } + else + { + ApplyAffineAnimFrameAbsolute(matrixNum, frameCmd); + ApplyAffineAnimFrameRelativeAndUpdateMatrix(matrixNum, &dummyFrameCmd); + } +} + +void StartSpriteAnim(struct Sprite *sprite, u8 animNum) +{ + sprite->animNum = animNum; + sprite->animBeginning = TRUE; + sprite->animEnded = FALSE; +} + +void StartSpriteAnimIfDifferent(struct Sprite *sprite, u8 animNum) +{ + if (sprite->animNum != animNum) + StartSpriteAnim(sprite, animNum); +} + +void SeekSpriteAnim(struct Sprite *sprite, u8 animCmdIndex) +{ + u8 temp = sprite->animPaused; + sprite->animCmdIndex = animCmdIndex - 1; + sprite->animDelayCounter = 0; + sprite->animBeginning = FALSE; + sprite->animEnded = FALSE; + sprite->animPaused = FALSE; + ContinueAnim(sprite); + if (sprite->animDelayCounter) + sprite->animDelayCounter++; + sprite->animPaused = temp; +} + +void StartSpriteAffineAnim(struct Sprite *sprite, u8 animNum) +{ + u8 matrixNum = GetSpriteMatrixNum(sprite); + AffineAnimStateStartAnim(matrixNum, animNum); + sprite->affineAnimBeginning = TRUE; + sprite->affineAnimEnded = FALSE; +} + +void StartSpriteAffineAnimIfDifferent(struct Sprite *sprite, u8 animNum) +{ + u8 matrixNum = GetSpriteMatrixNum(sprite); + if (sAffineAnimStates[matrixNum].animNum != animNum) + StartSpriteAffineAnim(sprite, animNum); +} + +void ChangeSpriteAffineAnim(struct Sprite *sprite, u8 animNum) +{ + u8 matrixNum = GetSpriteMatrixNum(sprite); + sAffineAnimStates[matrixNum].animNum = animNum; + sprite->affineAnimBeginning = TRUE; + sprite->affineAnimEnded = FALSE; +} + +void ChangeSpriteAffineAnimIfDifferent(struct Sprite *sprite, u8 animNum) +{ + u8 matrixNum = GetSpriteMatrixNum(sprite); + if (sAffineAnimStates[matrixNum].animNum != animNum) + ChangeSpriteAffineAnim(sprite, animNum); +} + +void SetSpriteSheetFrameTileNum(struct Sprite *sprite) +{ + if (sprite->usingSheet) + { + s16 tileOffset = sprite->anims[sprite->animNum][sprite->animCmdIndex].frame.imageValue; + if (tileOffset < 0) + tileOffset = 0; + sprite->oam.tileNum = sprite->sheetTileStart + tileOffset; + } +} + +void ResetAffineAnimData(void) +{ + u8 i; + + gAffineAnimsDisabled = 0; + gOamMatrixAllocBitmap = 0; + + ResetOamMatrices(); + + for (i = 0; i < OAM_MATRIX_COUNT; i++) + AffineAnimStateReset(i); +} + +u8 AllocOamMatrix(void) +{ + u8 i = 0; + u32 bit = 1; + u32 bitmap = gOamMatrixAllocBitmap; + + while (i < OAM_MATRIX_COUNT) + { + if (!(bitmap & bit)) + { + gOamMatrixAllocBitmap |= bit; + return i; + } + + i++; + bit <<= 1; + } + + return 0xFF; +} + +void FreeOamMatrix(u8 matrixNum) +{ + u8 i = 0; + u32 bit = 1; + + while (i < matrixNum) + { + i++; + bit <<= 1; + } + + gOamMatrixAllocBitmap &= ~bit; + SetOamMatrix(matrixNum, 0x100, 0, 0, 0x100); +} + +void InitSpriteAffineAnim(struct Sprite *sprite) +{ + u8 matrixNum = AllocOamMatrix(); + if (matrixNum != 0xFF) + { + CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode); + sprite->oam.matrixNum = matrixNum; + sprite->affineAnimBeginning = TRUE; + AffineAnimStateReset(matrixNum); + } +} + +void SetOamMatrixRotationScaling(u8 matrixNum, s16 xScale, s16 yScale, u16 rotation) +{ + struct ObjAffineSrcData srcData; + struct OamMatrix matrix; + srcData.xScale = ConvertScaleParam(xScale); + srcData.yScale = ConvertScaleParam(yScale); + srcData.rotation = rotation; + ObjAffineSet(&srcData, &matrix, 1, 2); + CopyOamMatrix(matrixNum, &matrix); +} + +u16 LoadSpriteSheet(const struct SpriteSheet *sheet) +{ + s16 tileStart = AllocSpriteTiles(sheet->size / TILE_SIZE_4BPP); + + if (tileStart < 0) + { + return 0; + } + else + { + AllocSpriteTileRange(sheet->tag, (u16)tileStart, sheet->size / TILE_SIZE_4BPP); + CpuCopy16(sheet->data, (u8 *)OBJ_VRAM0 + TILE_SIZE_4BPP * tileStart, sheet->size); + return (u16)tileStart; + } +} + +void LoadSpriteSheets(const struct SpriteSheet *sheets) +{ + u8 i; + for (i = 0; sheets[i].data != NULL; i++) + LoadSpriteSheet(&sheets[i]); +} + +void FreeSpriteTilesByTag(u16 tag) +{ + u8 index = IndexOfSpriteTileTag(tag); + if (index != 0xFF) + { + u16 i; + u16 *rangeStarts; + u16 *rangeCounts; + u16 start; + u16 count; + rangeStarts = sSpriteTileRanges; + start = rangeStarts[index * 2]; + rangeCounts = sSpriteTileRanges + 1; + count = rangeCounts[index * 2]; + + for (i = start; i < start + count; i++) + FREE_SPRITE_TILE(i); + + sSpriteTileRangeTags[index] = 0xFFFF; + } +} + +void FreeSpriteTileRanges(void) +{ + u8 i; + + for (i = 0; i < MAX_SPRITES; i++) + { + sSpriteTileRangeTags[i] = 0xFFFF; + SET_SPRITE_TILE_RANGE(i, 0, 0); + } +} + +u16 GetSpriteTileStartByTag(u16 tag) +{ + u8 index = IndexOfSpriteTileTag(tag); + if (index == 0xFF) + return 0xFFFF; + return sSpriteTileRanges[index * 2]; +} + +u8 IndexOfSpriteTileTag(u16 tag) +{ + u8 i; + + for (i = 0; i < MAX_SPRITES; i++) + if (sSpriteTileRangeTags[i] == tag) + return i; + + return 0xFF; +} + +u16 GetSpriteTileTagByTileStart(u16 start) +{ + u8 i; + + for (i = 0; i < MAX_SPRITES; i++) + { + if (sSpriteTileRangeTags[i] != 0xFFFF && sSpriteTileRanges[i * 2] == start) + return sSpriteTileRangeTags[i]; + } + + return 0xFFFF; +} + +void AllocSpriteTileRange(u16 tag, u16 start, u16 count) +{ + u8 freeIndex = IndexOfSpriteTileTag(0xFFFF); + sSpriteTileRangeTags[freeIndex] = tag; + SET_SPRITE_TILE_RANGE(freeIndex, start, count); +} + +void FreeAllSpritePalettes(void) +{ + u8 i; + gReservedSpritePaletteCount = 0; + for (i = 0; i < 16; i++) + sSpritePaletteTags[i] = 0xFFFF; +} + +u8 LoadSpritePalette(const struct SpritePalette *palette) +{ + u8 index = IndexOfSpritePaletteTag(palette->tag); + + if (index != 0xFF) + return index; + + index = IndexOfSpritePaletteTag(0xFFFF); + + if (index == 0xFF) + { + return 0xFF; + } + else + { + sSpritePaletteTags[index] = palette->tag; + DoLoadSpritePalette(palette->data, index * 16); + return index; + } +} + +void LoadSpritePalettes(const struct SpritePalette *palettes) +{ + u8 i; + for (i = 0; palettes[i].data != NULL; i++) + if (LoadSpritePalette(&palettes[i]) == 0xFF) + break; +} + +void DoLoadSpritePalette(const u16 *src, u16 paletteOffset) +{ + LoadPalette(src, paletteOffset + 0x100, 32); +} + +u8 AllocSpritePalette(u16 tag) +{ + u8 index = IndexOfSpritePaletteTag(0xFFFF); + if (index == 0xFF) + { + return 0xFF; + } + else + { + sSpritePaletteTags[index] = tag; + return index; + } +} + +u8 IndexOfSpritePaletteTag(u16 tag) +{ + u8 i; + for (i = gReservedSpritePaletteCount; i < 16; i++) + if (sSpritePaletteTags[i] == tag) + return i; + + return 0xFF; +} + +u16 GetSpritePaletteTagByPaletteNum(u8 paletteNum) +{ + return sSpritePaletteTags[paletteNum]; +} + +void FreeSpritePaletteByTag(u16 tag) +{ + u8 index = IndexOfSpritePaletteTag(tag); + if (index != 0xFF) + sSpritePaletteTags[index] = 0xFFFF; +} + +void SetSubspriteTables(struct Sprite *sprite, const struct SubspriteTable *subspriteTables) +{ + sprite->subspriteTables = subspriteTables; + sprite->subspriteTableNum = 0; + sprite->subspriteMode = SUBSPRITES_ON; +} + +bool8 AddSpriteToOamBuffer(struct Sprite *sprite, u8 *oamIndex) +{ + if (*oamIndex >= gOamLimit) + return 1; + + if (!sprite->subspriteTables || sprite->subspriteMode == SUBSPRITES_OFF) + { + gMain.oamBuffer[*oamIndex] = sprite->oam; + (*oamIndex)++; + return 0; + } + else + { + return AddSubspritesToOamBuffer(sprite, &gMain.oamBuffer[*oamIndex], oamIndex); + } +} + +bool8 AddSubspritesToOamBuffer(struct Sprite *sprite, struct OamData *destOam, u8 *oamIndex) +{ + const struct SubspriteTable *subspriteTable; + struct OamData *oam; + + if (*oamIndex >= gOamLimit) + return 1; + + subspriteTable = &sprite->subspriteTables[sprite->subspriteTableNum]; + oam = &sprite->oam; + + if (!subspriteTable || !subspriteTable->subsprites) + { + *destOam = *oam; + (*oamIndex)++; + return 0; + } + else + { + u16 tileNum; + u16 baseX; + u16 baseY; + u8 subspriteCount; + u8 hFlip; + u8 vFlip; + u8 i; + + tileNum = oam->tileNum; + subspriteCount = subspriteTable->subspriteCount; + hFlip = ((s32)oam->matrixNum >> 3) & 1; + vFlip = ((s32)oam->matrixNum >> 4) & 1; + baseX = oam->x - sprite->centerToCornerVecX; + baseY = oam->y - sprite->centerToCornerVecY; + + for (i = 0; i < subspriteCount; i++, (*oamIndex)++) + { + u16 x; + u16 y; + + if (*oamIndex >= gOamLimit) + return 1; + + x = subspriteTable->subsprites[i].x; + y = subspriteTable->subsprites[i].y; + + if (hFlip) + { + s8 width = sOamDimensions[subspriteTable->subsprites[i].shape][subspriteTable->subsprites[i].size].width; + s16 right = x; + right += width; + x = right; + x = ~x + 1; + } + + if (vFlip) + { + s8 height = sOamDimensions[subspriteTable->subsprites[i].shape][subspriteTable->subsprites[i].size].height; + s16 bottom = y; + bottom += height; + y = bottom; + y = ~y + 1; + } + + destOam[i] = *oam; + destOam[i].shape = subspriteTable->subsprites[i].shape; + destOam[i].size = subspriteTable->subsprites[i].size; + destOam[i].x = (s16)baseX + (s16)x; + destOam[i].y = baseY + y; + destOam[i].tileNum = tileNum + subspriteTable->subsprites[i].tileOffset; + + if (sprite->subspriteMode != SUBSPRITES_IGNORE_PRIORITY) + destOam[i].priority = subspriteTable->subsprites[i].priority; + } + } + + return 0; +} diff --git a/src/text.c b/src/text.c index 6981b93700..6754e1a421 100644 --- a/src/text.c +++ b/src/text.c @@ -12,12 +12,11 @@ extern u8 GetKeypadIconWidth(u8 keypadIconId); extern void CopyWindowToVram(u8 windowId, u8 mode); extern u16 Font6Func(struct TextPrinter *textPrinter); extern u32 GetGlyphWidthFont6(u16 glyphId, bool32 isJapanese); -extern void audio_play(u16 songNum); +extern void PlaySE(u16 songNum); extern u8* sub_81AFC74(u8 a1); -extern struct Window gWindows[20]; -EWRAM_DATA struct TextPrinter gTempTextPrinter = {}; -EWRAM_DATA struct TextPrinter gTextPrinters[NUM_TEXT_PRINTERS] = {}; +EWRAM_DATA struct TextPrinter gTempTextPrinter = {0}; +EWRAM_DATA struct TextPrinter gTextPrinters[NUM_TEXT_PRINTERS] = {0}; static u16 gFontHalfRowLookupTable[0x51]; static u16 gLastTextBgColor; @@ -177,18 +176,18 @@ bool16 AddTextPrinter(struct TextSubPrinter *textSubPrinter, u8 speed, void (*ca if (!gFonts) return FALSE; - + gTempTextPrinter.sub_union.sub.active = 1; gTempTextPrinter.state = 0; gTempTextPrinter.text_speed = speed; gTempTextPrinter.delayCounter = 0; gTempTextPrinter.scrollDistance = 0; - + for (i = 0; i < 7; ++i) { gTempTextPrinter.sub_union.sub_fields[i] = 0; } - + gTempTextPrinter.subPrinter = *textSubPrinter; gTempTextPrinter.callback = callback; gTempTextPrinter.minLetterSpacing = 0; @@ -208,7 +207,7 @@ bool16 AddTextPrinter(struct TextSubPrinter *textSubPrinter, u8 speed, void (*ca if ((u32)RenderFont(&gTempTextPrinter) == 1) break; } - + if (speed != 0xFF) CopyWindowToVram(gTempTextPrinter.subPrinter.windowId, 2); gTextPrinters[textSubPrinter->windowId].sub_union.sub.active = 0; @@ -266,11 +265,11 @@ u32 RenderFont(struct TextPrinter *textPrinter) void GenerateFontHalfRowLookupTable(u8 fgColor, u8 bgColor, u8 shadowColor) { u16* current = gFontHalfRowLookupTable; - + gLastTextBgColor = bgColor; gLastTextFgColor = fgColor; gLastTextShadowColor = shadowColor; - + *(current++) = (bgColor << 12) | (bgColor << 8) | (bgColor << 4) | bgColor; *(current++) = (fgColor << 12) | (bgColor << 8) | (bgColor << 4) | bgColor; *(current++) = (shadowColor << 12) | (bgColor << 8) | (bgColor << 4) | bgColor; @@ -857,7 +856,7 @@ void RestoreTextColors(u8 *fgColor, u8 *bgColor, u8 *shadowColor) void DecompressGlyphTile(const u16 *src, u16 *dest) { u32 temp; - + temp = src[0]; *(dest++) = (gFontHalfRowLookupTable[gFontHalfRowOffsets[temp & 0xFF]] << 16) | gFontHalfRowLookupTable[gFontHalfRowOffsets[temp >> 8]]; temp = src[1]; @@ -1773,10 +1772,10 @@ void ClearTextSpan(struct TextPrinter *textPrinter, u32 width) pixels_data.pixels = window->tileData; pixels_data.width = window->window.width << 3; pixels_data.height = window->window.height << 3; - + gUnk = gUnknown_03002F90; glyphHeight = &gUnk[0x81]; - + FillBitmapRect4Bit( &pixels_data, textPrinter->subPrinter.currentX, @@ -1790,7 +1789,7 @@ void ClearTextSpan(struct TextPrinter *textPrinter, u32 width) u16 Font0Func(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = &textPrinter->sub_union.sub; - + if (subStruct->field_1_top == 0) { textPrinter->sub_union.sub.font_type = 0; @@ -1802,7 +1801,7 @@ u16 Font0Func(struct TextPrinter *textPrinter) u16 Font1Func(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = &textPrinter->sub_union.sub; - + if (subStruct->field_1_top == 0) { textPrinter->sub_union.sub.font_type = 1; @@ -1814,7 +1813,7 @@ u16 Font1Func(struct TextPrinter *textPrinter) u16 Font2Func(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = &textPrinter->sub_union.sub; - + if (subStruct->field_1_top == 0) { textPrinter->sub_union.sub.font_type = 2; @@ -1826,7 +1825,7 @@ u16 Font2Func(struct TextPrinter *textPrinter) u16 Font3Func(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = &textPrinter->sub_union.sub; - + if (subStruct->field_1_top == 0) { textPrinter->sub_union.sub.font_type = 3; @@ -1838,7 +1837,7 @@ u16 Font3Func(struct TextPrinter *textPrinter) u16 Font4Func(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = &textPrinter->sub_union.sub; - + if (subStruct->field_1_top == 0) { textPrinter->sub_union.sub.font_type = 4; @@ -1850,7 +1849,7 @@ u16 Font4Func(struct TextPrinter *textPrinter) u16 Font5Func(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = &textPrinter->sub_union.sub; - + if (subStruct->field_1_top == 0) { textPrinter->sub_union.sub.font_type = 5; @@ -1862,7 +1861,7 @@ u16 Font5Func(struct TextPrinter *textPrinter) u16 Font7Func(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = &textPrinter->sub_union.sub; - + if (subStruct->field_1_top == 0) { textPrinter->sub_union.sub.font_type = 7; @@ -1874,7 +1873,7 @@ u16 Font7Func(struct TextPrinter *textPrinter) u16 Font8Func(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = &textPrinter->sub_union.sub; - + if (subStruct->field_1_top == 0) { textPrinter->sub_union.sub.font_type = 8; @@ -1886,7 +1885,7 @@ u16 Font8Func(struct TextPrinter *textPrinter) void TextPrinterInitDownArrowCounters(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = &textPrinter->sub_union.sub; - + if (gTextFlags.flag_2 == 1) subStruct->frames_visible_counter = 0; else @@ -1916,7 +1915,7 @@ void TextPrinterDrawDownArrow(struct TextPrinter *textPrinter) textPrinter->subPrinter.currentY, 0x8, 0x10); - + switch (gTextFlags.flag_1) { case 0: @@ -1927,7 +1926,7 @@ void TextPrinterDrawDownArrow(struct TextPrinter *textPrinter) arrowTiles = gDarkDownArrowTiles; break; } - + BlitBitmapRectToWindow( textPrinter->subPrinter.windowId, arrowTiles, @@ -1940,7 +1939,7 @@ void TextPrinterDrawDownArrow(struct TextPrinter *textPrinter) 0x8, 0x10); CopyWindowToVram(textPrinter->subPrinter.windowId, 0x2); - + subStruct->field_1 = 0x8; subStruct->field_1_upmid = (*(u32*)subStruct << 17 >> 30) + 1; } @@ -1962,7 +1961,7 @@ void TextPrinterClearDownArrow(struct TextPrinter *textPrinter) bool8 TextPrinterWaitAutoMode(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = &textPrinter->sub_union.sub; - + if (subStruct->frames_visible_counter == 49) { return TRUE; @@ -1987,7 +1986,7 @@ bool8 TextPrinterWaitWithDownArrow(struct TextPrinter *textPrinter) if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { result = TRUE; - audio_play(5); + PlaySE(5); } } return result; @@ -2005,7 +2004,7 @@ bool8 TextPrinterWait(struct TextPrinter *textPrinter) if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { result = TRUE; - audio_play(5); + PlaySE(5); } } return result; @@ -2014,7 +2013,7 @@ bool8 TextPrinterWait(struct TextPrinter *textPrinter) void DrawDownArrow(u8 windowId, u16 x, u16 y, u8 bgColor, bool8 drawArrow, u8 *counter, u8 *yCoordIndex) { const u8 *arrowTiles; - + if (*counter != 0) { --*counter; @@ -2034,7 +2033,7 @@ void DrawDownArrow(u8 windowId, u16 x, u16 y, u8 bgColor, bool8 drawArrow, u8 *c arrowTiles = gDarkDownArrowTiles; break; } - + BlitBitmapRectToWindow( windowId, arrowTiles, @@ -2382,7 +2381,7 @@ _08005A5C:\n\ add r1, #0x1\n\ str r1, [r6]\n\ add r0, r3, #0\n\ - bl song_play_for_text\n\ + bl PlayBGM\n\ b _08005A0A\n\ _08005A76:\n\ ldr r0, [r6]\n\ @@ -2395,7 +2394,7 @@ _08005A76:\n\ add r1, #0x1\n\ str r1, [r6]\n\ add r0, r3, #0\n\ - bl audio_play\n\ + bl PlaySE\n\ b _08005A0A\n\ _08005A90:\n\ ldr r1, [r6]\n\ @@ -2752,7 +2751,7 @@ _08005D44:\n\ strb r0, [r6, #0x1C]\n\ b _08005B56\n\ _08005D48:\n\ - bl mplay_has_finished_maybe\n\ + bl IsSEPlaying\n\ lsl r0, #24\n\ lsr r0, #24\n\ cmp r0, #0\n\ @@ -2800,7 +2799,7 @@ u32 GetStringWidthFixedWidthFont(u8 *str, u8 fontId, u8 letterSpacing) line = 0; strLocal = str; strPos = 0; - + do { temp = strLocal[strPos++]; @@ -2861,26 +2860,26 @@ u32 GetStringWidthFixedWidthFont(u8 *str, u8 fontId, u8 letterSpacing) break; } } while (temp != 0xFF); - + for (width = 0, strPos = 0; strPos < 8; ++strPos) { if (width < lineWidths[strPos]) width = lineWidths[strPos]; } - + return (u8)(GetFontAttribute(fontId, 0) + letterSpacing) * width; } u32 (*GetFontWidthFunc(u8 glyphId))(u16, bool32) { u32 i; - + for (i = 0; i < 9; ++i) { if (glyphId == gGlyphWidthFuncs[i].font_id) return gGlyphWidthFuncs[i].func; } - + return 0; } @@ -2898,20 +2897,20 @@ s32 GetStringWidth(u8 fontId, u8 *str, s16 letterSpacing) isJapanese = 0; minGlyphWidth = 0; - + func = GetFontWidthFunc(fontId); if (func == NULL) return 0; - + if (letterSpacing == -1) localLetterSpacing = GetFontAttribute(fontId, 2); else localLetterSpacing = letterSpacing; - + width = 0; lineWidth = 0; bufferPointer = 0; - + while (*str != 0xFF) { switch (*str) @@ -3016,7 +3015,7 @@ s32 GetStringWidth(u8 fontId, u8 *str, s16 letterSpacing) glyphWidth = func(*++str | 0x100, isJapanese); else glyphWidth = GetKeypadIconWidth(*++str); - + if (minGlyphWidth > 0) { if (glyphWidth < minGlyphWidth) @@ -3051,7 +3050,7 @@ s32 GetStringWidth(u8 fontId, u8 *str, s16 letterSpacing) } ++str; } - + if (lineWidth > width) return lineWidth; return width; @@ -3069,15 +3068,15 @@ u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str) u8 bgColor; SaveTextColors(&colorBackup[0], &colorBackup[1], &colorBackup[2]); - + fgColor = 1; bgColor = 0; shadowColor = 3; - + GenerateFontHalfRowLookupTable(1, 0, 3); strLocal = str; strPos = 0; - + do { temp = strLocal[strPos++]; @@ -3154,7 +3153,7 @@ u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str) DecompressGlyphFont1(temp, 1); break; } - + CpuCopy32(gUnknown_03002F90, pixels, 0x20); CpuCopy32(gUnknown_03002F90 + 0x40, pixels + 0x20, 0x20); pixels += 0x40; @@ -3162,7 +3161,7 @@ u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str) } } while (temp != 0xFF); - + RestoreTextColors(&colorBackup[0], &colorBackup[1], &colorBackup[2]); return 1; } @@ -3257,7 +3256,7 @@ void DecompressGlyphFont0(u16 glyphId, bool32 isJapanese) { glyphs = gFont0LatinGlyphs + (0x20 * glyphId); gUnknown_03002F90[0x80] = gFont0LatinGlyphWidths[glyphId]; - + if (gUnknown_03002F90[0x80] <= 8) { DecompressGlyphTile(glyphs, (u16 *)gUnknown_03002F90); @@ -3270,7 +3269,7 @@ void DecompressGlyphFont0(u16 glyphId, bool32 isJapanese) DecompressGlyphTile(glyphs + 0x10, (u16 *)(gUnknown_03002F90 + 0x40)); DecompressGlyphTile(glyphs + 0x18, (u16 *)(gUnknown_03002F90 + 0x60)); } - + gUnknown_03002F90[0x81] = 13; } } @@ -3286,7 +3285,7 @@ u32 GetGlyphWidthFont0(u16 glyphId, bool32 isJapanese) void DecompressGlyphFont7(u16 glyphId, bool32 isJapanese) { const u16* glyphs; - + if (isJapanese == TRUE) { int eff; @@ -3300,7 +3299,7 @@ void DecompressGlyphFont7(u16 glyphId, bool32 isJapanese) { glyphs = gFont7LatinGlyphs + (0x20 * glyphId); gUnknown_03002F90[0x80] = gFont7LatinGlyphWidths[glyphId]; - + if (gUnknown_03002F90[0x80] <= 8) { DecompressGlyphTile(glyphs, (u16 *)gUnknown_03002F90); @@ -3313,7 +3312,7 @@ void DecompressGlyphFont7(u16 glyphId, bool32 isJapanese) DecompressGlyphTile(glyphs + 0x10, (u16 *)(gUnknown_03002F90 + 0x40)); DecompressGlyphTile(glyphs + 0x18, (u16 *)(gUnknown_03002F90 + 0x60)); } - + gUnknown_03002F90[0x81] = 15; } } @@ -3342,7 +3341,7 @@ void DecompressGlyphFont8(u16 glyphId, bool32 isJapanese) { glyphs = gFont8LatinGlyphs + (0x20 * glyphId); gUnknown_03002F90[0x80] = gFont8LatinGlyphWidths[glyphId]; - + if (gUnknown_03002F90[0x80] <= 8) { DecompressGlyphTile(glyphs, (u16 *)gUnknown_03002F90); @@ -3355,7 +3354,7 @@ void DecompressGlyphFont8(u16 glyphId, bool32 isJapanese) DecompressGlyphTile(glyphs + 0x10, (u16 *)(gUnknown_03002F90 + 0x40)); DecompressGlyphTile(glyphs + 0x18, (u16 *)(gUnknown_03002F90 + 0x60)); } - + gUnknown_03002F90[0x81] = 12; } } @@ -3386,7 +3385,7 @@ void DecompressGlyphFont2(u16 glyphId, bool32 isJapanese) { glyphs = gFont2LatinGlyphs + (0x20 * glyphId); gUnknown_03002F90[0x80] = gFont2LatinGlyphWidths[glyphId]; - + if (gUnknown_03002F90[0x80] <= 8) { DecompressGlyphTile(glyphs, (u16 *)gUnknown_03002F90); @@ -3399,7 +3398,7 @@ void DecompressGlyphFont2(u16 glyphId, bool32 isJapanese) DecompressGlyphTile(glyphs + 0x10, (u16 *)(gUnknown_03002F90 + 0x40)); DecompressGlyphTile(glyphs + 0x18, (u16 *)(gUnknown_03002F90 + 0x60)); } - + gUnknown_03002F90[0x81] = 14; } } @@ -3415,7 +3414,7 @@ u32 GetGlyphWidthFont2(u16 glyphId, bool32 isJapanese) void DecompressGlyphFont1(u16 glyphId, bool32 isJapanese) { const u16* glyphs; - + if (isJapanese == TRUE) { int eff; @@ -3429,7 +3428,7 @@ void DecompressGlyphFont1(u16 glyphId, bool32 isJapanese) { glyphs = gFont1LatinGlyphs + (0x20 * glyphId); gUnknown_03002F90[0x80] = gFont1LatinGlyphWidths[glyphId]; - + if (gUnknown_03002F90[0x80] <= 8) { DecompressGlyphTile(glyphs, (u16 *)gUnknown_03002F90); @@ -3442,7 +3441,7 @@ void DecompressGlyphFont1(u16 glyphId, bool32 isJapanese) DecompressGlyphTile(glyphs + 0x10, (u16 *)(gUnknown_03002F90 + 0x40)); DecompressGlyphTile(glyphs + 0x18, (u16 *)(gUnknown_03002F90 + 0x60)); } - + gUnknown_03002F90[0x81] = 15; } } diff --git a/src/text_window.c b/src/text_window.c new file mode 100644 index 0000000000..55aedf688c --- /dev/null +++ b/src/text_window.c @@ -0,0 +1,125 @@ +#include "global.h" +#include "text.h" +#include "text_window.h" +#include "window.h" +#include "palette.h" + +extern u8 LoadBgTiles(u8 bg, const void *src, u16 size, u16 destOffset); +extern void FillBgTilemapBufferRect(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height, u8 palette); + +extern const struct TilesPal gUnknown_0851021C[]; +extern const u32 gUnknown_08DDD748[]; +extern const u16 gUnknown_0851017C[]; +extern const u16 gUnknown_08DDD728[]; + +const struct TilesPal* sub_8098758(u8 id) +{ + if (id > 19) + return &gUnknown_0851021C[0]; + else + return &gUnknown_0851021C[id]; +} + +void copy_textbox_border_tile_patterns_to_vram(u8 windowId, u16 destOffset, u8 palOffset) +{ + LoadBgTiles(GetWindowAttribute(windowId, WINDOW_PRIORITY), gUnknown_08DDD748, 0x1C0, destOffset); + LoadPalette(sub_8098C64(), palOffset, 0x20); +} + +void box_border_load_tiles_and_pal(u8 windowId, u16 destOffset, u8 palOffset) +{ + sub_809882C(windowId, destOffset, palOffset); +} + +void sub_80987D4(u8 windowId, u8 frameId, u16 destOffset, u8 palOffset) +{ + LoadBgTiles(GetWindowAttribute(windowId, WINDOW_PRIORITY), gUnknown_0851021C[frameId].tiles, 0x120, destOffset); + LoadPalette(gUnknown_0851021C[frameId].pal, palOffset, 0x20); +} + +void sub_809882C(u8 windowId, u16 destOffset, u8 palOffset) +{ + sub_80987D4(windowId, gSaveBlock2Ptr->optionsWindowFrameType, destOffset, palOffset); +} + +void sub_8098858(u8 windowId, u16 tileNum, u8 palNum) +{ + u8 bgLayer = GetWindowAttribute(windowId, WINDOW_PRIORITY); + u16 tilemapLeft = GetWindowAttribute(windowId, WINDOW_TILEMAP_LEFT); + u16 tilemapTop = GetWindowAttribute(windowId, WINDOW_TILEMAP_TOP); + u16 width = GetWindowAttribute(windowId, WINDOW_WIDTH); + u16 height = GetWindowAttribute(windowId, WINDOW_HEIGHT); + + FillBgTilemapBufferRect(bgLayer, tileNum + 0, tilemapLeft - 1, tilemapTop - 1, 1, 1, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 1, tilemapLeft, tilemapTop - 1, width, 1, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 2, tilemapLeft + width, tilemapTop - 1, 1, 1, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 3, tilemapLeft - 1, tilemapTop, 1, height, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 5, tilemapLeft + width, tilemapTop, 1, height, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 6, tilemapLeft - 1, tilemapTop + height, 1, 1, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 7, tilemapLeft, tilemapTop + height, width, 1, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 8, tilemapLeft + width, tilemapTop + height, 1, 1, palNum); +} + +void sub_80989E0(u8 windowId, u16 tileNum, u8 palNum) +{ + u8 bgLayer = GetWindowAttribute(windowId, WINDOW_PRIORITY); + u16 tilemapLeft = GetWindowAttribute(windowId, WINDOW_TILEMAP_LEFT); + u16 tilemapTop = GetWindowAttribute(windowId, WINDOW_TILEMAP_TOP); + u16 width = GetWindowAttribute(windowId, WINDOW_WIDTH); + u16 height = GetWindowAttribute(windowId, WINDOW_HEIGHT); + + FillBgTilemapBufferRect(bgLayer, tileNum + 0, tilemapLeft, tilemapTop, 1, 1, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 1, tilemapLeft + 1, tilemapTop, width - 2, 1, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 2, tilemapLeft + width - 1, tilemapTop, 1, 1, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 3, tilemapLeft, tilemapTop + 1, 1, height - 2, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 5, tilemapLeft + width - 1, tilemapTop + 1, 1, height - 2, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 6, tilemapLeft, tilemapTop + height - 1, 1, 1, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 7, tilemapLeft + 1, tilemapTop + height - 1, width - 2, 1, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 8, tilemapLeft + width - 1, tilemapTop + height - 1, 1, 1, palNum); +} + +void rbox_fill_rectangle(u8 windowId) +{ + u8 bgLayer = GetWindowAttribute(windowId, WINDOW_PRIORITY); + u16 tilemapLeft = GetWindowAttribute(windowId, WINDOW_TILEMAP_LEFT); + u16 tilemapTop = GetWindowAttribute(windowId, WINDOW_TILEMAP_TOP); + u16 width = GetWindowAttribute(windowId, WINDOW_WIDTH); + u16 height = GetWindowAttribute(windowId, WINDOW_HEIGHT); + + FillBgTilemapBufferRect(bgLayer, 0, tilemapLeft - 1, tilemapTop - 1, width + 2, height + 2, 0x11); +} + +const u16* stdpal_get(u8 id) +{ + switch (id) + { + case 0: + id = 0; + break; + case 1: + id = 0x10; + break; + case 2: + id = 0x20; + break; + case 3: + id = 0x30; + break; + case 4: + default: + id = 0x40; + break; + } + return &gUnknown_0851017C[id]; +} + +const u16* sub_8098C64(void) +{ + return gUnknown_08DDD728; +} + +void sub_8098C6C(u8 bg, u16 destOffset, u8 palOffset) +{ + LoadBgTiles(bg, gUnknown_0851021C[gSaveBlock2Ptr->optionsWindowFrameType].tiles, 0x120, destOffset); + LoadPalette(sub_8098758(gSaveBlock2Ptr->optionsWindowFrameType)->pal, palOffset, 0x20); +} diff --git a/src/trig.c b/src/trig.c new file mode 100644 index 0000000000..e16a69e632 --- /dev/null +++ b/src/trig.c @@ -0,0 +1,549 @@ +#include "global.h" +#include "trig.h" + +// Converts a number to Q8.8 fixed-point format +#define Q_8_8(n) ((s16)((n) * 256)) + +// Converts a number to Q4.12 fixed-point format +#define Q_4_12(n) ((s16)((n) * 4096)) + +// Values of sin(x*(π/128)) as Q8.8 fixed-point numbers from x = 0 to x = 319 +const s16 gSineTable[] = +{ + Q_8_8(0), // sin(0*(π/128)) + Q_8_8(0.0234375), // sin(1*(π/128)) + Q_8_8(0.046875), // sin(2*(π/128)) + Q_8_8(0.0703125), // sin(3*(π/128)) + Q_8_8(0.09765625), // sin(4*(π/128)) + Q_8_8(0.12109375), // sin(5*(π/128)) + Q_8_8(0.14453125), // sin(6*(π/128)) + Q_8_8(0.16796875), // sin(7*(π/128)) + Q_8_8(0.19140625), // sin(8*(π/128)) + Q_8_8(0.21875), // sin(9*(π/128)) + Q_8_8(0.2421875), // sin(10*(π/128)) + Q_8_8(0.265625), // sin(11*(π/128)) + Q_8_8(0.2890625), // sin(12*(π/128)) + Q_8_8(0.3125), // sin(13*(π/128)) + Q_8_8(0.3359375), // sin(14*(π/128)) + Q_8_8(0.359375), // sin(15*(π/128)) + Q_8_8(0.37890625), // sin(16*(π/128)) + Q_8_8(0.40234375), // sin(17*(π/128)) + Q_8_8(0.42578125), // sin(18*(π/128)) + Q_8_8(0.44921875), // sin(19*(π/128)) + Q_8_8(0.46875), // sin(20*(π/128)) + Q_8_8(0.4921875), // sin(21*(π/128)) + Q_8_8(0.51171875), // sin(22*(π/128)) + Q_8_8(0.53125), // sin(23*(π/128)) + Q_8_8(0.5546875), // sin(24*(π/128)) + Q_8_8(0.57421875), // sin(25*(π/128)) + Q_8_8(0.59375), // sin(26*(π/128)) + Q_8_8(0.61328125), // sin(27*(π/128)) + Q_8_8(0.6328125), // sin(28*(π/128)) + Q_8_8(0.65234375), // sin(29*(π/128)) + Q_8_8(0.66796875), // sin(30*(π/128)) + Q_8_8(0.6875), // sin(31*(π/128)) + Q_8_8(0.70703125), // sin(32*(π/128)) + Q_8_8(0.72265625), // sin(33*(π/128)) + Q_8_8(0.73828125), // sin(34*(π/128)) + Q_8_8(0.75390625), // sin(35*(π/128)) + Q_8_8(0.76953125), // sin(36*(π/128)) + Q_8_8(0.78515625), // sin(37*(π/128)) + Q_8_8(0.80078125), // sin(38*(π/128)) + Q_8_8(0.81640625), // sin(39*(π/128)) + Q_8_8(0.828125), // sin(40*(π/128)) + Q_8_8(0.84375), // sin(41*(π/128)) + Q_8_8(0.85546875), // sin(42*(π/128)) + Q_8_8(0.8671875), // sin(43*(π/128)) + Q_8_8(0.87890625), // sin(44*(π/128)) + Q_8_8(0.890625), // sin(45*(π/128)) + Q_8_8(0.90234375), // sin(46*(π/128)) + Q_8_8(0.9140625), // sin(47*(π/128)) + Q_8_8(0.921875), // sin(48*(π/128)) + Q_8_8(0.9296875), // sin(49*(π/128)) + Q_8_8(0.94140625), // sin(50*(π/128)) + Q_8_8(0.94921875), // sin(51*(π/128)) + Q_8_8(0.953125), // sin(52*(π/128)) + Q_8_8(0.9609375), // sin(53*(π/128)) + Q_8_8(0.96875), // sin(54*(π/128)) + Q_8_8(0.97265625), // sin(55*(π/128)) + Q_8_8(0.98046875), // sin(56*(π/128)) + Q_8_8(0.984375), // sin(57*(π/128)) + Q_8_8(0.98828125), // sin(58*(π/128)) + Q_8_8(0.9921875), // sin(59*(π/128)) + Q_8_8(0.9921875), // sin(60*(π/128)) + Q_8_8(0.99609375), // sin(61*(π/128)) + Q_8_8(0.99609375), // sin(62*(π/128)) + Q_8_8(0.99609375), // sin(63*(π/128)) + Q_8_8(1), // sin(64*(π/128)) + Q_8_8(0.99609375), // sin(65*(π/128)) + Q_8_8(0.99609375), // sin(66*(π/128)) + Q_8_8(0.99609375), // sin(67*(π/128)) + Q_8_8(0.9921875), // sin(68*(π/128)) + Q_8_8(0.9921875), // sin(69*(π/128)) + Q_8_8(0.98828125), // sin(70*(π/128)) + Q_8_8(0.984375), // sin(71*(π/128)) + Q_8_8(0.98046875), // sin(72*(π/128)) + Q_8_8(0.97265625), // sin(73*(π/128)) + Q_8_8(0.96875), // sin(74*(π/128)) + Q_8_8(0.9609375), // sin(75*(π/128)) + Q_8_8(0.953125), // sin(76*(π/128)) + Q_8_8(0.94921875), // sin(77*(π/128)) + Q_8_8(0.94140625), // sin(78*(π/128)) + Q_8_8(0.9296875), // sin(79*(π/128)) + Q_8_8(0.921875), // sin(80*(π/128)) + Q_8_8(0.9140625), // sin(81*(π/128)) + Q_8_8(0.90234375), // sin(82*(π/128)) + Q_8_8(0.890625), // sin(83*(π/128)) + Q_8_8(0.87890625), // sin(84*(π/128)) + Q_8_8(0.8671875), // sin(85*(π/128)) + Q_8_8(0.85546875), // sin(86*(π/128)) + Q_8_8(0.84375), // sin(87*(π/128)) + Q_8_8(0.828125), // sin(88*(π/128)) + Q_8_8(0.81640625), // sin(89*(π/128)) + Q_8_8(0.80078125), // sin(90*(π/128)) + Q_8_8(0.78515625), // sin(91*(π/128)) + Q_8_8(0.76953125), // sin(92*(π/128)) + Q_8_8(0.75390625), // sin(93*(π/128)) + Q_8_8(0.73828125), // sin(94*(π/128)) + Q_8_8(0.72265625), // sin(95*(π/128)) + Q_8_8(0.70703125), // sin(96*(π/128)) + Q_8_8(0.6875), // sin(97*(π/128)) + Q_8_8(0.66796875), // sin(98*(π/128)) + Q_8_8(0.65234375), // sin(99*(π/128)) + Q_8_8(0.6328125), // sin(100*(π/128)) + Q_8_8(0.61328125), // sin(101*(π/128)) + Q_8_8(0.59375), // sin(102*(π/128)) + Q_8_8(0.57421875), // sin(103*(π/128)) + Q_8_8(0.5546875), // sin(104*(π/128)) + Q_8_8(0.53125), // sin(105*(π/128)) + Q_8_8(0.51171875), // sin(106*(π/128)) + Q_8_8(0.4921875), // sin(107*(π/128)) + Q_8_8(0.46875), // sin(108*(π/128)) + Q_8_8(0.44921875), // sin(109*(π/128)) + Q_8_8(0.42578125), // sin(110*(π/128)) + Q_8_8(0.40234375), // sin(111*(π/128)) + Q_8_8(0.37890625), // sin(112*(π/128)) + Q_8_8(0.359375), // sin(113*(π/128)) + Q_8_8(0.3359375), // sin(114*(π/128)) + Q_8_8(0.3125), // sin(115*(π/128)) + Q_8_8(0.2890625), // sin(116*(π/128)) + Q_8_8(0.265625), // sin(117*(π/128)) + Q_8_8(0.2421875), // sin(118*(π/128)) + Q_8_8(0.21875), // sin(119*(π/128)) + Q_8_8(0.19140625), // sin(120*(π/128)) + Q_8_8(0.16796875), // sin(121*(π/128)) + Q_8_8(0.14453125), // sin(122*(π/128)) + Q_8_8(0.12109375), // sin(123*(π/128)) + Q_8_8(0.09765625), // sin(124*(π/128)) + Q_8_8(0.0703125), // sin(125*(π/128)) + Q_8_8(0.046875), // sin(126*(π/128)) + Q_8_8(0.0234375), // sin(127*(π/128)) + Q_8_8(0), // sin(128*(π/128)) + Q_8_8(-0.0234375), // sin(129*(π/128)) + Q_8_8(-0.046875), // sin(130*(π/128)) + Q_8_8(-0.0703125), // sin(131*(π/128)) + Q_8_8(-0.09765625), // sin(132*(π/128)) + Q_8_8(-0.12109375), // sin(133*(π/128)) + Q_8_8(-0.14453125), // sin(134*(π/128)) + Q_8_8(-0.16796875), // sin(135*(π/128)) + Q_8_8(-0.19140625), // sin(136*(π/128)) + Q_8_8(-0.21875), // sin(137*(π/128)) + Q_8_8(-0.2421875), // sin(138*(π/128)) + Q_8_8(-0.265625), // sin(139*(π/128)) + Q_8_8(-0.2890625), // sin(140*(π/128)) + Q_8_8(-0.3125), // sin(141*(π/128)) + Q_8_8(-0.3359375), // sin(142*(π/128)) + Q_8_8(-0.359375), // sin(143*(π/128)) + Q_8_8(-0.37890625), // sin(144*(π/128)) + Q_8_8(-0.40234375), // sin(145*(π/128)) + Q_8_8(-0.42578125), // sin(146*(π/128)) + Q_8_8(-0.44921875), // sin(147*(π/128)) + Q_8_8(-0.46875), // sin(148*(π/128)) + Q_8_8(-0.4921875), // sin(149*(π/128)) + Q_8_8(-0.51171875), // sin(150*(π/128)) + Q_8_8(-0.53125), // sin(151*(π/128)) + Q_8_8(-0.5546875), // sin(152*(π/128)) + Q_8_8(-0.57421875), // sin(153*(π/128)) + Q_8_8(-0.59375), // sin(154*(π/128)) + Q_8_8(-0.61328125), // sin(155*(π/128)) + Q_8_8(-0.6328125), // sin(156*(π/128)) + Q_8_8(-0.65234375), // sin(157*(π/128)) + Q_8_8(-0.66796875), // sin(158*(π/128)) + Q_8_8(-0.6875), // sin(159*(π/128)) + Q_8_8(-0.70703125), // sin(160*(π/128)) + Q_8_8(-0.72265625), // sin(161*(π/128)) + Q_8_8(-0.73828125), // sin(162*(π/128)) + Q_8_8(-0.75390625), // sin(163*(π/128)) + Q_8_8(-0.76953125), // sin(164*(π/128)) + Q_8_8(-0.78515625), // sin(165*(π/128)) + Q_8_8(-0.80078125), // sin(166*(π/128)) + Q_8_8(-0.81640625), // sin(167*(π/128)) + Q_8_8(-0.828125), // sin(168*(π/128)) + Q_8_8(-0.84375), // sin(169*(π/128)) + Q_8_8(-0.85546875), // sin(170*(π/128)) + Q_8_8(-0.8671875), // sin(171*(π/128)) + Q_8_8(-0.87890625), // sin(172*(π/128)) + Q_8_8(-0.890625), // sin(173*(π/128)) + Q_8_8(-0.90234375), // sin(174*(π/128)) + Q_8_8(-0.9140625), // sin(175*(π/128)) + Q_8_8(-0.921875), // sin(176*(π/128)) + Q_8_8(-0.9296875), // sin(177*(π/128)) + Q_8_8(-0.94140625), // sin(178*(π/128)) + Q_8_8(-0.94921875), // sin(179*(π/128)) + Q_8_8(-0.953125), // sin(180*(π/128)) + Q_8_8(-0.9609375), // sin(181*(π/128)) + Q_8_8(-0.96875), // sin(182*(π/128)) + Q_8_8(-0.97265625), // sin(183*(π/128)) + Q_8_8(-0.98046875), // sin(184*(π/128)) + Q_8_8(-0.984375), // sin(185*(π/128)) + Q_8_8(-0.98828125), // sin(186*(π/128)) + Q_8_8(-0.9921875), // sin(187*(π/128)) + Q_8_8(-0.9921875), // sin(188*(π/128)) + Q_8_8(-0.99609375), // sin(189*(π/128)) + Q_8_8(-0.99609375), // sin(190*(π/128)) + Q_8_8(-0.99609375), // sin(191*(π/128)) + Q_8_8(-1), // sin(192*(π/128)) + Q_8_8(-0.99609375), // sin(193*(π/128)) + Q_8_8(-0.99609375), // sin(194*(π/128)) + Q_8_8(-0.99609375), // sin(195*(π/128)) + Q_8_8(-0.9921875), // sin(196*(π/128)) + Q_8_8(-0.9921875), // sin(197*(π/128)) + Q_8_8(-0.98828125), // sin(198*(π/128)) + Q_8_8(-0.984375), // sin(199*(π/128)) + Q_8_8(-0.98046875), // sin(200*(π/128)) + Q_8_8(-0.97265625), // sin(201*(π/128)) + Q_8_8(-0.96875), // sin(202*(π/128)) + Q_8_8(-0.9609375), // sin(203*(π/128)) + Q_8_8(-0.953125), // sin(204*(π/128)) + Q_8_8(-0.94921875), // sin(205*(π/128)) + Q_8_8(-0.94140625), // sin(206*(π/128)) + Q_8_8(-0.9296875), // sin(207*(π/128)) + Q_8_8(-0.921875), // sin(208*(π/128)) + Q_8_8(-0.9140625), // sin(209*(π/128)) + Q_8_8(-0.90234375), // sin(210*(π/128)) + Q_8_8(-0.890625), // sin(211*(π/128)) + Q_8_8(-0.87890625), // sin(212*(π/128)) + Q_8_8(-0.8671875), // sin(213*(π/128)) + Q_8_8(-0.85546875), // sin(214*(π/128)) + Q_8_8(-0.84375), // sin(215*(π/128)) + Q_8_8(-0.828125), // sin(216*(π/128)) + Q_8_8(-0.81640625), // sin(217*(π/128)) + Q_8_8(-0.80078125), // sin(218*(π/128)) + Q_8_8(-0.78515625), // sin(219*(π/128)) + Q_8_8(-0.76953125), // sin(220*(π/128)) + Q_8_8(-0.75390625), // sin(221*(π/128)) + Q_8_8(-0.73828125), // sin(222*(π/128)) + Q_8_8(-0.72265625), // sin(223*(π/128)) + Q_8_8(-0.70703125), // sin(224*(π/128)) + Q_8_8(-0.6875), // sin(225*(π/128)) + Q_8_8(-0.66796875), // sin(226*(π/128)) + Q_8_8(-0.65234375), // sin(227*(π/128)) + Q_8_8(-0.6328125), // sin(228*(π/128)) + Q_8_8(-0.61328125), // sin(229*(π/128)) + Q_8_8(-0.59375), // sin(230*(π/128)) + Q_8_8(-0.57421875), // sin(231*(π/128)) + Q_8_8(-0.5546875), // sin(232*(π/128)) + Q_8_8(-0.53125), // sin(233*(π/128)) + Q_8_8(-0.51171875), // sin(234*(π/128)) + Q_8_8(-0.4921875), // sin(235*(π/128)) + Q_8_8(-0.46875), // sin(236*(π/128)) + Q_8_8(-0.44921875), // sin(237*(π/128)) + Q_8_8(-0.42578125), // sin(238*(π/128)) + Q_8_8(-0.40234375), // sin(239*(π/128)) + Q_8_8(-0.37890625), // sin(240*(π/128)) + Q_8_8(-0.359375), // sin(241*(π/128)) + Q_8_8(-0.3359375), // sin(242*(π/128)) + Q_8_8(-0.3125), // sin(243*(π/128)) + Q_8_8(-0.2890625), // sin(244*(π/128)) + Q_8_8(-0.265625), // sin(245*(π/128)) + Q_8_8(-0.2421875), // sin(246*(π/128)) + Q_8_8(-0.21875), // sin(247*(π/128)) + Q_8_8(-0.19140625), // sin(248*(π/128)) + Q_8_8(-0.16796875), // sin(249*(π/128)) + Q_8_8(-0.14453125), // sin(250*(π/128)) + Q_8_8(-0.12109375), // sin(251*(π/128)) + Q_8_8(-0.09765625), // sin(252*(π/128)) + Q_8_8(-0.0703125), // sin(253*(π/128)) + Q_8_8(-0.046875), // sin(254*(π/128)) + Q_8_8(-0.0234375), // sin(255*(π/128)) + Q_8_8(0), // sin(256*(π/128)) + Q_8_8(0.0234375), // sin(257*(π/128)) + Q_8_8(0.046875), // sin(258*(π/128)) + Q_8_8(0.0703125), // sin(259*(π/128)) + Q_8_8(0.09765625), // sin(260*(π/128)) + Q_8_8(0.12109375), // sin(261*(π/128)) + Q_8_8(0.14453125), // sin(262*(π/128)) + Q_8_8(0.16796875), // sin(263*(π/128)) + Q_8_8(0.19140625), // sin(264*(π/128)) + Q_8_8(0.21875), // sin(265*(π/128)) + Q_8_8(0.2421875), // sin(266*(π/128)) + Q_8_8(0.265625), // sin(267*(π/128)) + Q_8_8(0.2890625), // sin(268*(π/128)) + Q_8_8(0.3125), // sin(269*(π/128)) + Q_8_8(0.3359375), // sin(270*(π/128)) + Q_8_8(0.359375), // sin(271*(π/128)) + Q_8_8(0.37890625), // sin(272*(π/128)) + Q_8_8(0.40234375), // sin(273*(π/128)) + Q_8_8(0.42578125), // sin(274*(π/128)) + Q_8_8(0.44921875), // sin(275*(π/128)) + Q_8_8(0.46875), // sin(276*(π/128)) + Q_8_8(0.4921875), // sin(277*(π/128)) + Q_8_8(0.51171875), // sin(278*(π/128)) + Q_8_8(0.53125), // sin(279*(π/128)) + Q_8_8(0.5546875), // sin(280*(π/128)) + Q_8_8(0.57421875), // sin(281*(π/128)) + Q_8_8(0.59375), // sin(282*(π/128)) + Q_8_8(0.61328125), // sin(283*(π/128)) + Q_8_8(0.6328125), // sin(284*(π/128)) + Q_8_8(0.65234375), // sin(285*(π/128)) + Q_8_8(0.66796875), // sin(286*(π/128)) + Q_8_8(0.6875), // sin(287*(π/128)) + Q_8_8(0.70703125), // sin(288*(π/128)) + Q_8_8(0.72265625), // sin(289*(π/128)) + Q_8_8(0.73828125), // sin(290*(π/128)) + Q_8_8(0.75390625), // sin(291*(π/128)) + Q_8_8(0.76953125), // sin(292*(π/128)) + Q_8_8(0.78515625), // sin(293*(π/128)) + Q_8_8(0.80078125), // sin(294*(π/128)) + Q_8_8(0.81640625), // sin(295*(π/128)) + Q_8_8(0.828125), // sin(296*(π/128)) + Q_8_8(0.84375), // sin(297*(π/128)) + Q_8_8(0.85546875), // sin(298*(π/128)) + Q_8_8(0.8671875), // sin(299*(π/128)) + Q_8_8(0.87890625), // sin(300*(π/128)) + Q_8_8(0.890625), // sin(301*(π/128)) + Q_8_8(0.90234375), // sin(302*(π/128)) + Q_8_8(0.9140625), // sin(303*(π/128)) + Q_8_8(0.921875), // sin(304*(π/128)) + Q_8_8(0.9296875), // sin(305*(π/128)) + Q_8_8(0.94140625), // sin(306*(π/128)) + Q_8_8(0.94921875), // sin(307*(π/128)) + Q_8_8(0.953125), // sin(308*(π/128)) + Q_8_8(0.9609375), // sin(309*(π/128)) + Q_8_8(0.96875), // sin(310*(π/128)) + Q_8_8(0.97265625), // sin(311*(π/128)) + Q_8_8(0.98046875), // sin(312*(π/128)) + Q_8_8(0.984375), // sin(313*(π/128)) + Q_8_8(0.98828125), // sin(314*(π/128)) + Q_8_8(0.9921875), // sin(315*(π/128)) + Q_8_8(0.9921875), // sin(316*(π/128)) + Q_8_8(0.99609375), // sin(317*(π/128)) + Q_8_8(0.99609375), // sin(318*(π/128)) + Q_8_8(0.99609375), // sin(319*(π/128)) +}; + +// values of sin(x) as Q4.12 fixed-point numbers from x = 0° to x = 179° +const s16 gSineDegreeTable[] = +{ + Q_4_12(0), // sin(0°) + Q_4_12(0.017333984375), // sin(1°) + Q_4_12(0.034912109375), // sin(2°) + Q_4_12(0.05224609375), // sin(3°) + Q_4_12(0.06982421875), // sin(4°) + Q_4_12(0.087158203125), // sin(5°) + Q_4_12(0.1044921875), // sin(6°) + Q_4_12(0.121826171875), // sin(7°) + Q_4_12(0.13916015625), // sin(8°) + Q_4_12(0.156494140625), // sin(9°) + Q_4_12(0.173583984375), // sin(10°) + Q_4_12(0.19091796875), // sin(11°) + Q_4_12(0.2080078125), // sin(12°) + Q_4_12(0.224853515625), // sin(13°) + Q_4_12(0.241943359375), // sin(14°) + Q_4_12(0.2587890625), // sin(15°) + Q_4_12(0.275634765625), // sin(16°) + Q_4_12(0.29248046875), // sin(17°) + Q_4_12(0.30908203125), // sin(18°) + Q_4_12(0.32568359375), // sin(19°) + Q_4_12(0.342041015625), // sin(20°) + Q_4_12(0.3583984375), // sin(21°) + Q_4_12(0.37451171875), // sin(22°) + Q_4_12(0.390625), // sin(23°) + Q_4_12(0.40673828125), // sin(24°) + Q_4_12(0.422607421875), // sin(25°) + Q_4_12(0.4384765625), // sin(26°) + Q_4_12(0.4541015625), // sin(27°) + Q_4_12(0.469482421875), // sin(28°) + Q_4_12(0.48486328125), // sin(29°) + Q_4_12(0.5), // sin(30°) + Q_4_12(0.51513671875), // sin(31°) + Q_4_12(0.530029296875), // sin(32°) + Q_4_12(0.544677734375), // sin(33°) + Q_4_12(0.55908203125), // sin(34°) + Q_4_12(0.573486328125), // sin(35°) + Q_4_12(0.587890625), // sin(36°) + Q_4_12(0.601806640625), // sin(37°) + Q_4_12(0.61572265625), // sin(38°) + Q_4_12(0.62939453125), // sin(39°) + Q_4_12(0.642822265625), // sin(40°) + Q_4_12(0.656005859375), // sin(41°) + Q_4_12(0.669189453125), // sin(42°) + Q_4_12(0.681884765625), // sin(43°) + Q_4_12(0.694580078125), // sin(44°) + Q_4_12(0.70703125), // sin(45°) + Q_4_12(0.71923828125), // sin(46°) + Q_4_12(0.7314453125), // sin(47°) + Q_4_12(0.7431640625), // sin(48°) + Q_4_12(0.754638671875), // sin(49°) + Q_4_12(0.76611328125), // sin(50°) + Q_4_12(0.777099609375), // sin(51°) + Q_4_12(0.7880859375), // sin(52°) + Q_4_12(0.798583984375), // sin(53°) + Q_4_12(0.80908203125), // sin(54°) + Q_4_12(0.819091796875), // sin(55°) + Q_4_12(0.8291015625), // sin(56°) + Q_4_12(0.838623046875), // sin(57°) + Q_4_12(0.84814453125), // sin(58°) + Q_4_12(0.857177734375), // sin(59°) + Q_4_12(0.865966796875), // sin(60°) + Q_4_12(0.87451171875), // sin(61°) + Q_4_12(0.883056640625), // sin(62°) + Q_4_12(0.89111328125), // sin(63°) + Q_4_12(0.898681640625), // sin(64°) + Q_4_12(0.90625), // sin(65°) + Q_4_12(0.91357421875), // sin(66°) + Q_4_12(0.92041015625), // sin(67°) + Q_4_12(0.92724609375), // sin(68°) + Q_4_12(0.93359375), // sin(69°) + Q_4_12(0.939697265625), // sin(70°) + Q_4_12(0.945556640625), // sin(71°) + Q_4_12(0.951171875), // sin(72°) + Q_4_12(0.956298828125), // sin(73°) + Q_4_12(0.961181640625), // sin(74°) + Q_4_12(0.9658203125), // sin(75°) + Q_4_12(0.97021484375), // sin(76°) + Q_4_12(0.974365234375), // sin(77°) + Q_4_12(0.97802734375), // sin(78°) + Q_4_12(0.981689453125), // sin(79°) + Q_4_12(0.98486328125), // sin(80°) + Q_4_12(0.98779296875), // sin(81°) + Q_4_12(0.990234375), // sin(82°) + Q_4_12(0.992431640625), // sin(83°) + Q_4_12(0.994384765625), // sin(84°) + Q_4_12(0.99609375), // sin(85°) + Q_4_12(0.99755859375), // sin(86°) + Q_4_12(0.99853515625), // sin(87°) + Q_4_12(0.999267578125), // sin(88°) + Q_4_12(0.999755859375), // sin(89°) + Q_4_12(1), // sin(90°) + Q_4_12(0.999755859375), // sin(91°) + Q_4_12(0.999267578125), // sin(92°) + Q_4_12(0.99853515625), // sin(93°) + Q_4_12(0.99755859375), // sin(94°) + Q_4_12(0.99609375), // sin(95°) + Q_4_12(0.994384765625), // sin(96°) + Q_4_12(0.992431640625), // sin(97°) + Q_4_12(0.990234375), // sin(98°) + Q_4_12(0.98779296875), // sin(99°) + Q_4_12(0.98486328125), // sin(100°) + Q_4_12(0.981689453125), // sin(101°) + Q_4_12(0.97802734375), // sin(102°) + Q_4_12(0.974365234375), // sin(103°) + Q_4_12(0.97021484375), // sin(104°) + Q_4_12(0.9658203125), // sin(105°) + Q_4_12(0.961181640625), // sin(106°) + Q_4_12(0.956298828125), // sin(107°) + Q_4_12(0.951171875), // sin(108°) + Q_4_12(0.945556640625), // sin(109°) + Q_4_12(0.939697265625), // sin(110°) + Q_4_12(0.93359375), // sin(111°) + Q_4_12(0.92724609375), // sin(112°) + Q_4_12(0.92041015625), // sin(113°) + Q_4_12(0.91357421875), // sin(114°) + Q_4_12(0.90625), // sin(115°) + Q_4_12(0.898681640625), // sin(116°) + Q_4_12(0.89111328125), // sin(117°) + Q_4_12(0.883056640625), // sin(118°) + Q_4_12(0.87451171875), // sin(119°) + Q_4_12(0.865966796875), // sin(120°) + Q_4_12(0.857177734375), // sin(121°) + Q_4_12(0.84814453125), // sin(122°) + Q_4_12(0.838623046875), // sin(123°) + Q_4_12(0.8291015625), // sin(124°) + Q_4_12(0.819091796875), // sin(125°) + Q_4_12(0.80908203125), // sin(126°) + Q_4_12(0.798583984375), // sin(127°) + Q_4_12(0.7880859375), // sin(128°) + Q_4_12(0.777099609375), // sin(129°) + Q_4_12(0.76611328125), // sin(130°) + Q_4_12(0.754638671875), // sin(131°) + Q_4_12(0.7431640625), // sin(132°) + Q_4_12(0.7314453125), // sin(133°) + Q_4_12(0.71923828125), // sin(134°) + Q_4_12(0.70703125), // sin(135°) + Q_4_12(0.694580078125), // sin(136°) + Q_4_12(0.681884765625), // sin(137°) + Q_4_12(0.669189453125), // sin(138°) + Q_4_12(0.656005859375), // sin(139°) + Q_4_12(0.642822265625), // sin(140°) + Q_4_12(0.62939453125), // sin(141°) + Q_4_12(0.61572265625), // sin(142°) + Q_4_12(0.601806640625), // sin(143°) + Q_4_12(0.587890625), // sin(144°) + Q_4_12(0.573486328125), // sin(145°) + Q_4_12(0.55908203125), // sin(146°) + Q_4_12(0.544677734375), // sin(147°) + Q_4_12(0.530029296875), // sin(148°) + Q_4_12(0.51513671875), // sin(149°) + Q_4_12(0.5), // sin(150°) + Q_4_12(0.48486328125), // sin(151°) + Q_4_12(0.469482421875), // sin(152°) + Q_4_12(0.4541015625), // sin(153°) + Q_4_12(0.4384765625), // sin(154°) + Q_4_12(0.422607421875), // sin(155°) + Q_4_12(0.40673828125), // sin(156°) + Q_4_12(0.390625), // sin(157°) + Q_4_12(0.37451171875), // sin(158°) + Q_4_12(0.3583984375), // sin(159°) + Q_4_12(0.342041015625), // sin(160°) + Q_4_12(0.32568359375), // sin(161°) + Q_4_12(0.30908203125), // sin(162°) + Q_4_12(0.29248046875), // sin(163°) + Q_4_12(0.275634765625), // sin(164°) + Q_4_12(0.2587890625), // sin(165°) + Q_4_12(0.241943359375), // sin(166°) + Q_4_12(0.224853515625), // sin(167°) + Q_4_12(0.2080078125), // sin(168°) + Q_4_12(0.19091796875), // sin(169°) + Q_4_12(0.173583984375), // sin(170°) + Q_4_12(0.156494140625), // sin(171°) + Q_4_12(0.13916015625), // sin(172°) + Q_4_12(0.121826171875), // sin(173°) + Q_4_12(0.1044921875), // sin(174°) + Q_4_12(0.087158203125), // sin(175°) + Q_4_12(0.06982421875), // sin(176°) + Q_4_12(0.05224609375), // sin(177°) + Q_4_12(0.034912109375), // sin(178°) + Q_4_12(0.017333984375), // sin(179°) +}; + +// amplitude * sin(index*(π/128)) +s16 Sin(s16 index, s16 amplitude) +{ + return (amplitude * gSineTable[index]) >> 8; +} + +// amplitude * cos(index*(π/128)) +s16 Cos(s16 index, s16 amplitude) +{ + return (amplitude * gSineTable[index + 64]) >> 8; +} + +// angle in degrees +s16 Sin2(u16 angle) +{ + s32 angleMod = angle % 180; + s32 negate = ((angle / 180) & 1); + s16 value = gSineDegreeTable[angleMod]; + + if (negate) + return -value; + else + return value; +} + +// angle in degrees +s16 Cos2(u16 angle) +{ + return Sin2(angle + 90); +} diff --git a/src/window.c b/src/window.c index aeae9e1ed1..f3d2e833ed 100644 --- a/src/window.c +++ b/src/window.c @@ -1,33 +1,38 @@ #include "global.h" #include "window.h" +#include "malloc.h" extern u8 gUnknown_03002F60; extern void* gUnknown_03002F70[]; extern u32 gUnneededFireRedVariable; -EWRAM_DATA struct Window gWindows[20]; + +#define WINDOWS_MAX 32 + +EWRAM_DATA struct Window gWindows[WINDOWS_MAX] = {0}; +EWRAM_DATA static struct Window* sWindowPtr = NULL; +EWRAM_DATA static u16 sWindowSize = 0; extern void* GetBgTilemapBuffer(u8 bg); extern int DummiedOutFireRedLeafGreenTileAllocFunc(int, int, int, int); extern u16 GetBgAttribute(u8 bg, u8 attributeId); -extern void *AllocZeroed(u16 size); -extern void FreeAllWindowBuffers(void); extern void SetBgTilemapBuffer(u8 bg, void *tilemap); -extern u8 GetNumActiveWindowsOnBg(u8 bgId); -extern void Free(void *pointer); extern void CopyBgTilemapBufferToVram(u8 bg); extern u8 LoadBgTiles(u8 bg, void *src, u16 size, u16 destOffset); extern void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 width, u8 height, u8 paletteSlot, u16 tileNumDelta); extern void FillBgTilemapBufferRect(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height, u8 palette); extern void BlitBitmapRect4Bit(struct Bitmap *src, struct Bitmap *dest, u16 srcX, u16 srcY, u16 destX, u16 destY, u16 width, u16 height, u8 colorKey); +extern void BlitBitmapRect4BitTo8Bit(struct Bitmap *src, struct Bitmap *dest, u16 srcX, u16 srcY, u16 destX, u16 destY, u16 width, u16 height, u8 colorKey, u8 paletteNum); extern void FillBitmapRect4Bit(struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue); +extern void FillBitmapRect8Bit(struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue); -void BlitBitmapRectToWindow(u8 windowId, const u8 *pixels, u16 srcX, u16 srcY, u16 srcWidth, int srcHeight, u16 destX, u16 destY, u16 rectWidth, u16 rectHeight); +static u8 GetNumActiveWindowsOnBg(u8 bgId); +static u8 GetNumActiveWindowsOnBg8Bit(u8 bgId); -extern const struct WindowTemplate gDummyWindowTemplate; +static const struct WindowTemplate sDummyWindowTemplate = {0xFF, 0, 0, 0, 0, 0, 0}; -void nullsub_8(void) +static void nullsub_8(void) { - + } bool16 InitWindows(struct WindowTemplate *templates) @@ -39,7 +44,7 @@ bool16 InitWindows(struct WindowTemplate *templates) u16 attrib; u8* allocatedTilemapBuffer; int allocatedBaseBlock; - + for (i = 0; i < 0x4; ++i) { bgTilemapBuffer = GetBgTilemapBuffer(i); @@ -48,13 +53,13 @@ bool16 InitWindows(struct WindowTemplate *templates) else gUnknown_03002F70[i] = bgTilemapBuffer; } - + for (i = 0; i < 0x20; ++i) { - gWindows[i].window = gDummyWindowTemplate; + gWindows[i].window = sDummyWindowTemplate; gWindows[i].tileData = NULL; } - + for (i = 0, allocatedBaseBlock = 0, bgLayer = templates[i].priority; bgLayer != 0xFF && i < 0x20; ++i, bgLayer = templates[i].priority) { if (gUnneededFireRedVariable == 1) @@ -63,31 +68,31 @@ bool16 InitWindows(struct WindowTemplate *templates) if (allocatedBaseBlock == -1) return FALSE; } - + if (gUnknown_03002F70[bgLayer] == NULL) { attrib = GetBgAttribute(bgLayer, 0x8); - + if (attrib != 0xFFFF) { allocatedTilemapBuffer = AllocZeroed(attrib); - + if (allocatedTilemapBuffer == NULL) { FreeAllWindowBuffers(); return FALSE; } - + for (j = 0; j < attrib; ++j) allocatedTilemapBuffer[j] = 0; - + gUnknown_03002F70[bgLayer] = allocatedTilemapBuffer; SetBgTilemapBuffer(bgLayer, allocatedTilemapBuffer); } } - - allocatedTilemapBuffer = AllocZeroed(0x20 * (templates[i].width * templates[i].height)); - + + allocatedTilemapBuffer = AllocZeroed((u16)(0x20 * (templates[i].width * templates[i].height))); + if (allocatedTilemapBuffer == NULL) { if ((GetNumActiveWindowsOnBg(bgLayer) == 0) && (gUnknown_03002F70[bgLayer] != nullsub_8)) @@ -95,20 +100,20 @@ bool16 InitWindows(struct WindowTemplate *templates) Free(gUnknown_03002F70[bgLayer]); gUnknown_03002F70[bgLayer] = allocatedTilemapBuffer; } - + return FALSE; } - + gWindows[i].tileData = allocatedTilemapBuffer; gWindows[i].window = templates[i]; - + if (gUnneededFireRedVariable == 1) { gWindows[i].window.baseBlock = allocatedBaseBlock; DummiedOutFireRedLeafGreenTileAllocFunc(bgLayer, allocatedBaseBlock, templates[i].width * templates[i].height, 1); } } - + gUnknown_03002F60 = 0; return TRUE; } @@ -127,42 +132,42 @@ u16 AddWindow(struct WindowTemplate *template) if ((bgLayer = gWindows[win].window.priority) == 0xFF) break; } - + if (win == 0x20) return 0xFF; - + bgLayer = template->priority; allocatedBaseBlock = 0; - + if (gUnneededFireRedVariable == 1) { allocatedBaseBlock = DummiedOutFireRedLeafGreenTileAllocFunc(bgLayer, 0, template->width * template->height, 0); - + if (allocatedBaseBlock == -1) return 0xFF; } - + if (gUnknown_03002F70[bgLayer] == NULL) { attrib = GetBgAttribute(bgLayer, 0x8); - + if (attrib != 0xFFFF) { allocatedTilemapBuffer = AllocZeroed(attrib); - + if (allocatedTilemapBuffer == NULL) return 0xFF; - + for (i = 0; i < attrib; ++i) allocatedTilemapBuffer[i] = 0; - + gUnknown_03002F70[bgLayer] = allocatedTilemapBuffer; SetBgTilemapBuffer(bgLayer, allocatedTilemapBuffer); } } - - allocatedTilemapBuffer = AllocZeroed(0x20 * (template->width * template->height)); - + + allocatedTilemapBuffer = AllocZeroed((u16)(0x20 * (template->width * template->height))); + if (allocatedTilemapBuffer == NULL) { if ((GetNumActiveWindowsOnBg(bgLayer) == 0) && (gUnknown_03002F70[bgLayer] != nullsub_8)) @@ -172,10 +177,10 @@ u16 AddWindow(struct WindowTemplate *template) } return 0xFF; } - + gWindows[win].tileData = allocatedTilemapBuffer; gWindows[win].window = *template; - + if (gUnneededFireRedVariable == 1) { gWindows[win].window.baseBlock = allocatedBaseBlock; @@ -190,29 +195,29 @@ int AddWindowWithoutTileMap(struct WindowTemplate *template) u16 win; u8 bgLayer; int allocatedBaseBlock; - + for (win = 0; win < 0x20; ++win) { if (gWindows[win].window.priority == 0xFF) break; } - + if (win == 0x20) return 0xFF; - + bgLayer = template->priority; allocatedBaseBlock = 0; - + if (gUnneededFireRedVariable == 1) { allocatedBaseBlock = DummiedOutFireRedLeafGreenTileAllocFunc(bgLayer, 0, template->width * template->height, 0); - + if (allocatedBaseBlock == -1) return 0xFF; } - + gWindows[win].window = *template; - + if (gUnneededFireRedVariable == 1) { gWindows[win].window.baseBlock = allocatedBaseBlock; @@ -225,14 +230,14 @@ int AddWindowWithoutTileMap(struct WindowTemplate *template) void RemoveWindow(u8 windowId) { u8 bgLayer = gWindows[windowId].window.priority; - + if (gUnneededFireRedVariable == 1) { DummiedOutFireRedLeafGreenTileAllocFunc(bgLayer, gWindows[windowId].window.baseBlock, gWindows[windowId].window.width * gWindows[windowId].window.height, 2); } - - gWindows[windowId].window = gDummyWindowTemplate; - + + gWindows[windowId].window = sDummyWindowTemplate; + if (GetNumActiveWindowsOnBg(bgLayer) == 0) { if (gUnknown_03002F70[bgLayer] != nullsub_8) @@ -241,7 +246,7 @@ void RemoveWindow(u8 windowId) gUnknown_03002F70[bgLayer] = 0; } } - + if (gWindows[windowId].tileData != NULL) { Free(gWindows[windowId].tileData); @@ -252,7 +257,7 @@ void RemoveWindow(u8 windowId) void FreeAllWindowBuffers(void) { int i; - + for (i = 0; i < 4; ++i) { if (gUnknown_03002F70[i] != NULL && gUnknown_03002F70[i] != nullsub_8) @@ -261,7 +266,7 @@ void FreeAllWindowBuffers(void) gUnknown_03002F70[i] = NULL; } } - + for (i = 0; i < 0x20; ++i) { if (gWindows[i].tileData != NULL) @@ -301,14 +306,14 @@ void CopyWindowRectToVram(u32 windowId, u32 mode, u32 x, u32 y, u32 w, u32 h) if (w != 0 && h != 0) { windowLocal = gWindows[windowId]; - + rectSize = ((h - 1) * windowLocal.window.width); rectSize += (windowLocal.window.width - x); rectSize -= (windowLocal.window.width - (x + w)); rectSize *= 32; - + rectPos = (y * windowLocal.window.width) + x; - + switch (mode) { case 1: @@ -328,7 +333,7 @@ void CopyWindowRectToVram(u32 windowId, u32 mode, u32 x, u32 y, u32 w, u32 h) void PutWindowTilemap(u8 windowId) { struct Window windowLocal = gWindows[windowId]; - + WriteSequenceToBgTilemapBuffer( windowLocal.window.priority, GetBgAttribute(windowLocal.window.priority, 0xA) + windowLocal.window.baseBlock, @@ -345,7 +350,7 @@ void PutWindowRectTilemapOverridePalette(u8 windowId, u8 x, u8 y, u8 width, u8 h struct Window windowLocal = gWindows[windowId]; u16 currentRow = windowLocal.window.baseBlock + (y * windowLocal.window.width) + x + GetBgAttribute(windowLocal.window.priority, 0xA); int i; - + for (i = 0; i < height; ++i) { WriteSequenceToBgTilemapBuffer( @@ -357,7 +362,7 @@ void PutWindowRectTilemapOverridePalette(u8 windowId, u8 x, u8 y, u8 width, u8 h 1, palette, 1); - + currentRow += windowLocal.window.width; } } @@ -365,7 +370,7 @@ void PutWindowRectTilemapOverridePalette(u8 windowId, u8 x, u8 y, u8 width, u8 h void ClearWindowTilemap(u8 windowId) { struct Window windowLocal = gWindows[windowId]; - + FillBgTilemapBufferRect( windowLocal.window.priority, gUnknown_03002F60, @@ -381,7 +386,7 @@ void PutWindowRectTilemap(u8 windowId, u8 x, u8 y, u8 width, u8 height) struct Window windowLocal = gWindows[windowId]; u16 currentRow = windowLocal.window.baseBlock + (y * windowLocal.window.width) + x + GetBgAttribute(windowLocal.window.priority, 0xA); int i; - + for (i = 0; i < height; ++i) { WriteSequenceToBgTilemapBuffer( @@ -393,7 +398,7 @@ void PutWindowRectTilemap(u8 windowId, u8 x, u8 y, u8 width, u8 height) 1, windowLocal.window.paletteNum, 1); - + currentRow += windowLocal.window.width; } } @@ -415,11 +420,11 @@ void BlitBitmapRectToWindow(u8 windowId, const u8 *pixels, u16 srcX, u16 srcY, u destRect.pixels = gWindows[windowId].tileData; destRect.width = 8 * gWindows[windowId].window.width; destRect.height = 8 * gWindows[windowId].window.height; - + BlitBitmapRect4Bit(&sourceRect, &destRect, srcX, srcY, destX, destY, rectWidth, rectHeight, 0); } -void BlitBitmapRectToWindowWithColorKey(u8 windowId, const u8 *pixels, u16 srcX, u16 srcY, u16 srcWidth, int srcHeight, u16 destX, u16 destY, u16 rectWidth, u16 rectHeight, u8 colorKey) +static void BlitBitmapRectToWindowWithColorKey(u8 windowId, const u8 *pixels, u16 srcX, u16 srcY, u16 srcWidth, int srcHeight, u16 destX, u16 destY, u16 rectWidth, u16 rectHeight, u8 colorKey) { struct Bitmap sourceRect; struct Bitmap destRect; @@ -431,7 +436,7 @@ void BlitBitmapRectToWindowWithColorKey(u8 windowId, const u8 *pixels, u16 srcX, destRect.pixels = gWindows[windowId].tileData; destRect.width = 8 * gWindows[windowId].window.width; destRect.height = 8 * gWindows[windowId].window.height; - + BlitBitmapRect4Bit(&sourceRect, &destRect, srcX, srcY, destX, destY, rectWidth, rectHeight, colorKey); } @@ -442,7 +447,7 @@ void FillWindowPixelRect(u8 windowId, u8 fillValue, u16 x, u16 y, u16 width, u16 pixelRect.pixels = gWindows[windowId].tileData; pixelRect.width = 8 * gWindows[windowId].window.width; pixelRect.height = 8 * gWindows[windowId].window.height; - + FillBitmapRect4Bit(&pixelRect, x, y, width, height, fillValue); } @@ -459,3 +464,885 @@ void FillWindowPixelBuffer(u8 windowId, u8 fillValue) int fillSize = gWindows[windowId].window.width * gWindows[windowId].window.height; CpuFastFill8(fillValue, gWindows[windowId].tileData, 0x20 * fillSize); } + +// functionally equivalent, its fucking hard to match +#ifdef NONMATCHING +void ScrollWindow(u8 windowId, u8 direction, u8 distance, u8 fillValue) +{ + s32 i, id1, id2, size; + u32 distanceLoop, toFill, width; + u8 *tileData; + struct WindowTemplate window; + + tileData = gWindows[windowId].tileData; + toFill = (fillValue << 0x18) | (fillValue << 0x10) | (fillValue << 8) | fillValue; + window = gWindows[windowId].window; + size = 0x20 * (window.height * window.width); + width = window.width; + if (direction != 1) + { + s32 signedDirection = direction; + if (signedDirection <= 1) + { + if (signedDirection == 0) + { + for (i = 0; i < size; i += 0x20) + { + distanceLoop = distance; + id1 = i + 0; + id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); + if (id2 < size) + *(u32*)(tileData + id1) = *(u32*)(tileData + id2); + else + *(u32*)(tileData + id1) = toFill; + + distanceLoop++; + id1 = i + 4; + id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); + if (id2 < size) + *(u32*)(tileData + id1) = *(u32*)(tileData + id2); + else + *(u32*)(tileData + id1) = toFill; + + distanceLoop++; + id1 = i + 8; + id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); + if (id2 < size) + *(u32*)(tileData + id1) = *(u32*)(tileData + id2); + else + *(u32*)(tileData + id1) = toFill; + + distanceLoop++; + id1 = i + 12; + id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); + if (id2 < size) + *(u32*)(tileData + id1) = *(u32*)(tileData + id2); + else + *(u32*)(tileData + id1) = toFill; + + distanceLoop++; + id1 = i + 16; + id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); + if (id2 < size) + *(u32*)(tileData + id1) = *(u32*)(tileData + id2); + else + *(u32*)(tileData + id1) = toFill; + + distanceLoop++; + id1 = i + 20; + id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); + if (id2 < size) + *(u32*)(tileData + id1) = *(u32*)(tileData + id2); + else + *(u32*)(tileData + id1) = toFill; + + distanceLoop++; + id1 = i + 24; + id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); + if (id2 < size) + *(u32*)(tileData + id1) = *(u32*)(tileData + id2); + else + *(u32*)(tileData + id1) = toFill; + + distanceLoop++; + id1 = i + 28; + id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); + if (id2 < size) + *(u32*)(tileData + id1) = *(u32*)(tileData + id2); + else + *(u32*)(tileData + id1) = toFill; + } + } + } + } + else + { + tileData += size - 4; + for (i = 0; i < size; i += 0x20) + { + distanceLoop = distance; + id1 = i + 0; + id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); + if (id2 < size) + *(u32*)(tileData - id1) = *(u32*)(tileData - id2); + else + *(u32*)(tileData - id1) = toFill; + + distanceLoop++; + id1 = i + 4; + id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); + if (id2 < size) + *(u32*)(tileData - id1) = *(u32*)(tileData - id2); + else + *(u32*)(tileData - id1) = toFill; + + distanceLoop++; + id1 = i + 8; + id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); + if (id2 < size) + *(u32*)(tileData - id1) = *(u32*)(tileData - id2); + else + *(u32*)(tileData - id1) = toFill; + + distanceLoop++; + id1 = i + 12; + id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); + if (id2 < size) + *(u32*)(tileData - id1) = *(u32*)(tileData - id2); + else + *(u32*)(tileData - id1) = toFill; + + distanceLoop++; + id1 = i + 16; + id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); + if (id2 < size) + *(u32*)(tileData - id1) = *(u32*)(tileData - id2); + else + *(u32*)(tileData - id1) = toFill; + + distanceLoop++; + id1 = i + 20; + id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); + if (id2 < size) + *(u32*)(tileData - id1) = *(u32*)(tileData - id2); + else + *(u32*)(tileData - id1) = toFill; + + distanceLoop++; + id1 = i + 24; + id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); + if (id2 < size) + *(u32*)(tileData - id1) = *(u32*)(tileData - id2); + else + *(u32*)(tileData - id1) = toFill; + + distanceLoop++; + id1 = i + 28; + id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); + if (id2 < size) + *(u32*)(tileData - id1) = *(u32*)(tileData - id2); + else + *(u32*)(tileData - id1) = toFill; + } + } +} +#else +__attribute__((naked)) +void ScrollWindow(u8 windowId, u8 direction, u8 distance, u8 fillValue) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x8\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + lsls r1, 24\n\ + lsrs r1, 24\n\ + mov r8, r1\n\ + lsls r2, 24\n\ + lsrs r2, 24\n\ + str r2, [sp]\n\ + lsls r3, 24\n\ + lsrs r3, 24\n\ + ldr r2, =gWindows\n\ + lsls r1, r0, 1\n\ + adds r1, r0\n\ + lsls r1, 2\n\ + adds r4, r1, r2\n\ + adds r2, 0x8\n\ + adds r1, r2\n\ + ldr r5, [r1]\n\ + lsls r7, r3, 24\n\ + lsls r0, r3, 16\n\ + orrs r7, r0\n\ + lsls r0, r3, 8\n\ + orrs r7, r0\n\ + orrs r7, r3\n\ + ldr r1, [r4]\n\ + ldr r2, [r4, 0x4]\n\ + ldrb r3, [r4, 0x4]\n\ + lsrs r0, r1, 24\n\ + muls r0, r3\n\ + lsls r6, r0, 5\n\ + lsrs r1, 24\n\ + mov r12, r1\n\ + mov r0, r8\n\ + cmp r0, 0x1\n\ + bne _08003CE8\n\ + b _08003E9E\n\ +_08003CE8:\n\ + cmp r0, 0x1\n\ + ble _08003CEE\n\ + b _08004046\n\ +_08003CEE:\n\ + cmp r0, 0\n\ + beq _08003CF4\n\ + b _08004046\n\ +_08003CF4:\n\ + movs r4, 0\n\ + cmp r4, r6\n\ + blt _08003CFC\n\ + b _08004046\n\ +_08003CFC:\n\ + movs r1, 0x8\n\ + negs r1, r1\n\ + mov r9, r1\n\ + movs r2, 0x7\n\ + mov r8, r2\n\ + mov r10, r5\n\ +_08003D08:\n\ + ldr r3, [sp]\n\ + adds r0, r3, 0\n\ + mov r1, r9\n\ + ands r0, r1\n\ + mov r1, r12\n\ + muls r1, r0\n\ + adds r0, r3, 0\n\ + mov r2, r8\n\ + ands r0, r2\n\ + orrs r1, r0\n\ + lsls r1, 2\n\ + adds r1, r4, r1\n\ + cmp r1, r6\n\ + bge _08003D34\n\ + adds r0, r5, r1\n\ + ldr r0, [r0]\n\ + mov r1, r10\n\ + str r0, [r1]\n\ + b _08003D38\n\ + .pool\n\ +_08003D34:\n\ + mov r2, r10\n\ + str r7, [r2]\n\ +_08003D38:\n\ + adds r3, 0x1\n\ + adds r2, r4, 0x4\n\ + adds r0, r3, 0\n\ + mov r1, r9\n\ + ands r0, r1\n\ + mov r1, r12\n\ + muls r1, r0\n\ + str r1, [sp, 0x4]\n\ + adds r0, r3, 0\n\ + mov r1, r8\n\ + ands r0, r1\n\ + ldr r1, [sp, 0x4]\n\ + orrs r1, r0\n\ + lsls r1, 2\n\ + adds r1, r4, r1\n\ + cmp r1, r6\n\ + bge _08003D64\n\ + adds r0, r5, r2\n\ + adds r1, r5, r1\n\ + ldr r1, [r1]\n\ + str r1, [r0]\n\ + b _08003D68\n\ +_08003D64:\n\ + adds r0, r5, r2\n\ + str r7, [r0]\n\ +_08003D68:\n\ + adds r3, 0x1\n\ + adds r2, r4, 0\n\ + adds r2, 0x8\n\ + adds r0, r3, 0\n\ + mov r1, r9\n\ + ands r0, r1\n\ + mov r1, r12\n\ + muls r1, r0\n\ + str r1, [sp, 0x4]\n\ + adds r0, r3, 0\n\ + mov r1, r8\n\ + ands r0, r1\n\ + ldr r1, [sp, 0x4]\n\ + orrs r1, r0\n\ + lsls r1, 2\n\ + adds r1, r4, r1\n\ + cmp r1, r6\n\ + bge _08003D96\n\ + adds r0, r5, r2\n\ + adds r1, r5, r1\n\ + ldr r1, [r1]\n\ + str r1, [r0]\n\ + b _08003D9A\n\ +_08003D96:\n\ + adds r0, r5, r2\n\ + str r7, [r0]\n\ +_08003D9A:\n\ + adds r3, 0x1\n\ + adds r2, r4, 0\n\ + adds r2, 0xC\n\ + adds r0, r3, 0\n\ + mov r1, r9\n\ + ands r0, r1\n\ + mov r1, r12\n\ + muls r1, r0\n\ + str r1, [sp, 0x4]\n\ + adds r0, r3, 0\n\ + mov r1, r8\n\ + ands r0, r1\n\ + ldr r1, [sp, 0x4]\n\ + orrs r1, r0\n\ + lsls r1, 2\n\ + adds r1, r4, r1\n\ + cmp r1, r6\n\ + bge _08003DC8\n\ + adds r0, r5, r2\n\ + adds r1, r5, r1\n\ + ldr r1, [r1]\n\ + str r1, [r0]\n\ + b _08003DCC\n\ +_08003DC8:\n\ + adds r0, r5, r2\n\ + str r7, [r0]\n\ +_08003DCC:\n\ + adds r3, 0x1\n\ + adds r2, r4, 0\n\ + adds r2, 0x10\n\ + adds r0, r3, 0\n\ + mov r1, r9\n\ + ands r0, r1\n\ + mov r1, r12\n\ + muls r1, r0\n\ + str r1, [sp, 0x4]\n\ + adds r0, r3, 0\n\ + mov r1, r8\n\ + ands r0, r1\n\ + ldr r1, [sp, 0x4]\n\ + orrs r1, r0\n\ + lsls r1, 2\n\ + adds r1, r4, r1\n\ + cmp r1, r6\n\ + bge _08003DFA\n\ + adds r0, r5, r2\n\ + adds r1, r5, r1\n\ + ldr r1, [r1]\n\ + str r1, [r0]\n\ + b _08003DFE\n\ +_08003DFA:\n\ + adds r0, r5, r2\n\ + str r7, [r0]\n\ +_08003DFE:\n\ + adds r3, 0x1\n\ + adds r2, r4, 0\n\ + adds r2, 0x14\n\ + adds r0, r3, 0\n\ + mov r1, r9\n\ + ands r0, r1\n\ + mov r1, r12\n\ + muls r1, r0\n\ + str r1, [sp, 0x4]\n\ + adds r0, r3, 0\n\ + mov r1, r8\n\ + ands r0, r1\n\ + ldr r1, [sp, 0x4]\n\ + orrs r1, r0\n\ + lsls r1, 2\n\ + adds r1, r4, r1\n\ + cmp r1, r6\n\ + bge _08003E2C\n\ + adds r0, r5, r2\n\ + adds r1, r5, r1\n\ + ldr r1, [r1]\n\ + str r1, [r0]\n\ + b _08003E30\n\ +_08003E2C:\n\ + adds r0, r5, r2\n\ + str r7, [r0]\n\ +_08003E30:\n\ + adds r3, 0x1\n\ + adds r2, r4, 0\n\ + adds r2, 0x18\n\ + adds r0, r3, 0\n\ + mov r1, r9\n\ + ands r0, r1\n\ + mov r1, r12\n\ + muls r1, r0\n\ + str r1, [sp, 0x4]\n\ + adds r0, r3, 0\n\ + mov r1, r8\n\ + ands r0, r1\n\ + ldr r1, [sp, 0x4]\n\ + orrs r1, r0\n\ + lsls r1, 2\n\ + adds r1, r4, r1\n\ + cmp r1, r6\n\ + bge _08003E5E\n\ + adds r0, r5, r2\n\ + adds r1, r5, r1\n\ + ldr r1, [r1]\n\ + str r1, [r0]\n\ + b _08003E62\n\ +_08003E5E:\n\ + adds r0, r5, r2\n\ + str r7, [r0]\n\ +_08003E62:\n\ + adds r3, 0x1\n\ + adds r2, r4, 0\n\ + adds r2, 0x1C\n\ + adds r0, r3, 0\n\ + mov r1, r9\n\ + ands r0, r1\n\ + mov r1, r12\n\ + muls r1, r0\n\ + adds r0, r1, 0\n\ + mov r1, r8\n\ + ands r3, r1\n\ + orrs r0, r3\n\ + lsls r0, 2\n\ + adds r1, r4, r0\n\ + cmp r1, r6\n\ + bge _08003E8C\n\ + adds r0, r5, r2\n\ + adds r1, r5, r1\n\ + ldr r1, [r1]\n\ + str r1, [r0]\n\ + b _08003E90\n\ +_08003E8C:\n\ + adds r0, r5, r2\n\ + str r7, [r0]\n\ +_08003E90:\n\ + movs r2, 0x20\n\ + add r10, r2\n\ + adds r4, 0x20\n\ + cmp r4, r6\n\ + bge _08003E9C\n\ + b _08003D08\n\ +_08003E9C:\n\ + b _08004046\n\ +_08003E9E:\n\ + subs r0, r6, 0x4\n\ + adds r5, r0\n\ + movs r4, 0\n\ + cmp r4, r6\n\ + blt _08003EAA\n\ + b _08004046\n\ +_08003EAA:\n\ + movs r0, 0x8\n\ + negs r0, r0\n\ + mov r9, r0\n\ + movs r1, 0x7\n\ + mov r8, r1\n\ + mov r10, r5\n\ +_08003EB6:\n\ + ldr r3, [sp]\n\ + adds r0, r3, 0\n\ + mov r2, r9\n\ + ands r0, r2\n\ + mov r1, r12\n\ + muls r1, r0\n\ + adds r0, r3, 0\n\ + mov r2, r8\n\ + ands r0, r2\n\ + orrs r1, r0\n\ + lsls r1, 2\n\ + adds r1, r4, r1\n\ + cmp r1, r6\n\ + bge _08003EDC\n\ + subs r0, r5, r1\n\ + ldr r0, [r0]\n\ + mov r1, r10\n\ + str r0, [r1]\n\ + b _08003EE0\n\ +_08003EDC:\n\ + mov r2, r10\n\ + str r7, [r2]\n\ +_08003EE0:\n\ + adds r3, 0x1\n\ + adds r2, r4, 0x4\n\ + adds r0, r3, 0\n\ + mov r1, r9\n\ + ands r0, r1\n\ + mov r1, r12\n\ + muls r1, r0\n\ + str r1, [sp, 0x4]\n\ + adds r0, r3, 0\n\ + mov r1, r8\n\ + ands r0, r1\n\ + ldr r1, [sp, 0x4]\n\ + orrs r1, r0\n\ + lsls r1, 2\n\ + adds r1, r4, r1\n\ + cmp r1, r6\n\ + bge _08003F0C\n\ + subs r0, r5, r2\n\ + subs r1, r5, r1\n\ + ldr r1, [r1]\n\ + str r1, [r0]\n\ + b _08003F10\n\ +_08003F0C:\n\ + subs r0, r5, r2\n\ + str r7, [r0]\n\ +_08003F10:\n\ + adds r3, 0x1\n\ + adds r2, r4, 0\n\ + adds r2, 0x8\n\ + adds r0, r3, 0\n\ + mov r1, r9\n\ + ands r0, r1\n\ + mov r1, r12\n\ + muls r1, r0\n\ + str r1, [sp, 0x4]\n\ + adds r0, r3, 0\n\ + mov r1, r8\n\ + ands r0, r1\n\ + ldr r1, [sp, 0x4]\n\ + orrs r1, r0\n\ + lsls r1, 2\n\ + adds r1, r4, r1\n\ + cmp r1, r6\n\ + bge _08003F3E\n\ + subs r0, r5, r2\n\ + subs r1, r5, r1\n\ + ldr r1, [r1]\n\ + str r1, [r0]\n\ + b _08003F42\n\ +_08003F3E:\n\ + subs r0, r5, r2\n\ + str r7, [r0]\n\ +_08003F42:\n\ + adds r3, 0x1\n\ + adds r2, r4, 0\n\ + adds r2, 0xC\n\ + adds r0, r3, 0\n\ + mov r1, r9\n\ + ands r0, r1\n\ + mov r1, r12\n\ + muls r1, r0\n\ + str r1, [sp, 0x4]\n\ + adds r0, r3, 0\n\ + mov r1, r8\n\ + ands r0, r1\n\ + ldr r1, [sp, 0x4]\n\ + orrs r1, r0\n\ + lsls r1, 2\n\ + adds r1, r4, r1\n\ + cmp r1, r6\n\ + bge _08003F70\n\ + subs r0, r5, r2\n\ + subs r1, r5, r1\n\ + ldr r1, [r1]\n\ + str r1, [r0]\n\ + b _08003F74\n\ +_08003F70:\n\ + subs r0, r5, r2\n\ + str r7, [r0]\n\ +_08003F74:\n\ + adds r3, 0x1\n\ + adds r2, r4, 0\n\ + adds r2, 0x10\n\ + adds r0, r3, 0\n\ + mov r1, r9\n\ + ands r0, r1\n\ + mov r1, r12\n\ + muls r1, r0\n\ + str r1, [sp, 0x4]\n\ + adds r0, r3, 0\n\ + mov r1, r8\n\ + ands r0, r1\n\ + ldr r1, [sp, 0x4]\n\ + orrs r1, r0\n\ + lsls r1, 2\n\ + adds r1, r4, r1\n\ + cmp r1, r6\n\ + bge _08003FA2\n\ + subs r0, r5, r2\n\ + subs r1, r5, r1\n\ + ldr r1, [r1]\n\ + str r1, [r0]\n\ + b _08003FA6\n\ +_08003FA2:\n\ + subs r0, r5, r2\n\ + str r7, [r0]\n\ +_08003FA6:\n\ + adds r3, 0x1\n\ + adds r2, r4, 0\n\ + adds r2, 0x14\n\ + adds r0, r3, 0\n\ + mov r1, r9\n\ + ands r0, r1\n\ + mov r1, r12\n\ + muls r1, r0\n\ + str r1, [sp, 0x4]\n\ + adds r0, r3, 0\n\ + mov r1, r8\n\ + ands r0, r1\n\ + ldr r1, [sp, 0x4]\n\ + orrs r1, r0\n\ + lsls r1, 2\n\ + adds r1, r4, r1\n\ + cmp r1, r6\n\ + bge _08003FD4\n\ + subs r0, r5, r2\n\ + subs r1, r5, r1\n\ + ldr r1, [r1]\n\ + str r1, [r0]\n\ + b _08003FD8\n\ +_08003FD4:\n\ + subs r0, r5, r2\n\ + str r7, [r0]\n\ +_08003FD8:\n\ + adds r3, 0x1\n\ + adds r2, r4, 0\n\ + adds r2, 0x18\n\ + adds r0, r3, 0\n\ + mov r1, r9\n\ + ands r0, r1\n\ + mov r1, r12\n\ + muls r1, r0\n\ + str r1, [sp, 0x4]\n\ + adds r0, r3, 0\n\ + mov r1, r8\n\ + ands r0, r1\n\ + ldr r1, [sp, 0x4]\n\ + orrs r1, r0\n\ + lsls r1, 2\n\ + adds r1, r4, r1\n\ + cmp r1, r6\n\ + bge _08004006\n\ + subs r0, r5, r2\n\ + subs r1, r5, r1\n\ + ldr r1, [r1]\n\ + str r1, [r0]\n\ + b _0800400A\n\ +_08004006:\n\ + subs r0, r5, r2\n\ + str r7, [r0]\n\ +_0800400A:\n\ + adds r3, 0x1\n\ + adds r2, r4, 0\n\ + adds r2, 0x1C\n\ + adds r0, r3, 0\n\ + mov r1, r9\n\ + ands r0, r1\n\ + mov r1, r12\n\ + muls r1, r0\n\ + adds r0, r1, 0\n\ + mov r1, r8\n\ + ands r3, r1\n\ + orrs r0, r3\n\ + lsls r0, 2\n\ + adds r1, r4, r0\n\ + cmp r1, r6\n\ + bge _08004034\n\ + subs r0, r5, r2\n\ + subs r1, r5, r1\n\ + ldr r1, [r1]\n\ + str r1, [r0]\n\ + b _08004038\n\ +_08004034:\n\ + subs r0, r5, r2\n\ + str r7, [r0]\n\ +_08004038:\n\ + movs r2, 0x20\n\ + negs r2, r2\n\ + add r10, r2\n\ + adds r4, 0x20\n\ + cmp r4, r6\n\ + bge _08004046\n\ + b _08003EB6\n\ +_08004046:\n\ + add sp, 0x8\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided"); +} +#endif // NONMATCHING + +void CallWindowFunction(u8 windowId, void ( *func)(u8, u8, u8, u8, u8, u8)) +{ + struct WindowTemplate window = gWindows[windowId].window; + func(window.priority, window.tilemapLeft, window.tilemapTop, window.width, window.height, window.paletteNum); +} + +bool8 SetWindowAttribute(u8 windowId, u8 attributeId, u32 value) +{ + switch (attributeId) + { + case WINDOW_TILEMAP_LEFT: + gWindows[windowId].window.tilemapLeft = value; + return FALSE; + case WINDOW_TILEMAP_TOP: + gWindows[windowId].window.tilemapTop = value; + return FALSE; + case WINDOW_PALETTE_NUM: + gWindows[windowId].window.paletteNum = value; + return FALSE; + case WINDOW_BASE_BLOCK: + gWindows[windowId].window.baseBlock = value; + return FALSE; + case WINDOW_TILE_DATA: + gWindows[windowId].tileData = (u8*)(value); + return TRUE; + case WINDOW_PRIORITY: + case WINDOW_WIDTH: + case WINDOW_HEIGHT: + default: + return TRUE; + } +} + +u32 GetWindowAttribute(u8 windowId, u8 attributeId) +{ + switch (attributeId) + { + case WINDOW_PRIORITY: + return gWindows[windowId].window.priority; + case WINDOW_TILEMAP_LEFT: + return gWindows[windowId].window.tilemapLeft; + case WINDOW_TILEMAP_TOP: + return gWindows[windowId].window.tilemapTop; + case WINDOW_WIDTH: + return gWindows[windowId].window.width; + case WINDOW_HEIGHT: + return gWindows[windowId].window.height; + case WINDOW_PALETTE_NUM: + return gWindows[windowId].window.paletteNum; + case WINDOW_BASE_BLOCK: + return gWindows[windowId].window.baseBlock; + case WINDOW_TILE_DATA: + return (u32)(gWindows[windowId].tileData); + default: + return 0; + } +} + +static u8 GetNumActiveWindowsOnBg(u8 bgId) +{ + u8 windowsNum = 0; + s32 i; + for (i = 0; i < WINDOWS_MAX; i++) + { + if (gWindows[i].window.priority == bgId) + windowsNum++; + } + return windowsNum; +} + +static void nullsub_9(void) +{ + +} + +u16 AddWindow8Bit(struct WindowTemplate *template) +{ + u16 windowId; + u8* memAddress; + u8 bgLayer; + + for (windowId = 0; windowId < 32; windowId++) + { + if (gWindows[windowId].window.priority == 0xFF) + break; + } + if (windowId == WINDOWS_MAX) + return 0xFF; + bgLayer = template->priority; + if (gUnknown_03002F70[bgLayer] == 0) + { + u16 attribute = GetBgAttribute(bgLayer, 8); + if (attribute != 0xFFFF) + { + s32 i; + memAddress = Alloc(attribute); + if (memAddress == NULL) + return 0xFF; + for (i = 0; i < attribute; i++) // if we're going to zero out the memory anyway, why not call AllocZeroed? + memAddress[i] = 0; + gUnknown_03002F70[bgLayer] = memAddress; + SetBgTilemapBuffer(bgLayer, memAddress); + } + } + memAddress = Alloc((u16)(0x40 * (template->width * template->height))); + if (memAddress == NULL) + { + if (GetNumActiveWindowsOnBg8Bit(bgLayer) == 0 && gUnknown_03002F70[bgLayer] != nullsub_9) + { + Free(gUnknown_03002F70[bgLayer]); + gUnknown_03002F70[bgLayer] = NULL; + } + return 0xFF; + } + else + { + gWindows[windowId].tileData = memAddress; + gWindows[windowId].window = *template; + return windowId; + } +} + +void FillWindowPixelBuffer8Bit(u8 windowId, u8 fillValue) +{ + s32 i; + s32 size; + + size = (u16)(0x40 * (gWindows[windowId].window.width * gWindows[windowId].window.height)); + for (i = 0; i < size; i++) + gWindows[windowId].tileData[i] = fillValue; +} + +void FillWindowPixelRect8Bit(u8 windowId, u8 fillValue, u16 x, u16 y, u16 width, u16 height) +{ + struct Bitmap pixelRect; + + pixelRect.pixels = gWindows[windowId].tileData; + pixelRect.width = 8 * gWindows[windowId].window.width; + pixelRect.height = 8 * gWindows[windowId].window.height; + + FillBitmapRect8Bit(&pixelRect, x, y, width, height, fillValue); +} + +void BlitBitmapRectToWindow4BitTo8Bit(u8 windowId, u8 *pixels, u16 srcX, u16 srcY, u16 srcWidth, int srcHeight, u16 destX, u16 destY, u16 rectWidth, u16 rectHeight, u8 paletteNum) +{ + struct Bitmap sourceRect; + struct Bitmap destRect; + + sourceRect.pixels = (u8*)pixels; + sourceRect.width = srcWidth; + sourceRect.height = srcHeight; + + destRect.pixels = gWindows[windowId].tileData; + destRect.width = 8 * gWindows[windowId].window.width; + destRect.height = 8 * gWindows[windowId].window.height; + + BlitBitmapRect4BitTo8Bit(&sourceRect, &destRect, srcX, srcY, destX, destY, rectWidth, rectHeight, 0, paletteNum); +} + +void CopyWindowToVram8Bit(u8 windowId, u8 mode) +{ + sWindowPtr = &gWindows[windowId]; + sWindowSize = 0x40 * (sWindowPtr->window.width * sWindowPtr->window.height); + + switch (mode) + { + case 1: + CopyBgTilemapBufferToVram(sWindowPtr->window.priority); + break; + case 2: + LoadBgTiles(sWindowPtr->window.priority, sWindowPtr->tileData, sWindowSize, sWindowPtr->window.baseBlock); + break; + case 3: + LoadBgTiles(sWindowPtr->window.priority, sWindowPtr->tileData, sWindowSize, sWindowPtr->window.baseBlock); + CopyBgTilemapBufferToVram(sWindowPtr->window.priority); + break; + } +} + +static u8 GetNumActiveWindowsOnBg8Bit(u8 bgId) +{ + u8 windowsNum = 0; + s32 i; + for (i = 0; i < WINDOWS_MAX; i++) + { + if (gWindows[i].window.priority == bgId) + windowsNum++; + } + return windowsNum; +} diff --git a/sym_bss.txt b/sym_bss.txt index f1af7b63ea..80856b1700 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -38,19 +38,7 @@ gUnknown_03000938: @ 3000938 .space 0x10 .include "src/text.o" - - .align 4 -gUnknown_030009F0: @ 30009F0 - .space 0x80 - -gUnknown_03000A70: @ 3000A70 - .space 0x100 - -gUnknown_03000B70: @ 3000B70 - .space 0x180 - -gUnknown_03000CF0: @ 3000CF0 - .space 0x20 + .include "src/sprite.o" gUnknown_03000D10: @ 3000D10 .space 0x10 @@ -124,17 +112,7 @@ gUnknown_03000DAC: @ 3000DAC gUnknown_03000DB0: @ 3000DB0 .space 0x8 -gUnknown_03000DB8: @ 3000DB8 - .space 0x8 - -gUnknown_03000DC0: @ 3000DC0 - .space 0xC - -gUnknown_03000DCC: @ 3000DCC - .space 0x2 - -gUnknown_03000DCE: @ 3000DCE - .space 0x2 + .include "src/rtc.o" gUnknown_03000DD0: @ 3000DD0 .space 0x4 @@ -163,8 +141,9 @@ gUnknown_03000E04: @ 3000E04 gUnknown_03000E06: @ 3000E06 .space 0x2 -gUnknown_03000E08: @ 3000E08 - .space 0x4 + .include "src/play_time.o" + +.align 2 gUnknown_03000E0C: @ 3000E0C .space 0x4 @@ -232,20 +211,7 @@ gUnknown_03000F40: @ 3000F40 gUnknown_03000F44: @ 3000F44 .space 0x4 -gUnknown_03000F48: @ 3000F48 - .space 0x2 - -gUnknown_03000F4A: @ 3000F4A - .space 0x2 - -gUnknown_03000F4C: @ 3000F4C - .space 0x1 - -gUnknown_03000F4D: @ 3000F4D - .space 0x1 - -gUnknown_03000F4E: @ 3000F4E - .space 0x2 + .include "src/sound.o" gUnknown_03000F50: @ 3000F50 .space 0x8 diff --git a/sym_common.txt b/sym_common.txt index d6f32ee4bb..dbf6c17a86 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -49,13 +49,7 @@ gUnknown_03002F70: @ 3002F70 .space 0x10 .include "text.o" - - .align 2 -gUnknown_03003018: @ 3003018 - .space 0x4 - -gUnknown_0300301C: @ 300301C - .space 0x4 + .include "sprite.o" gUnknown_03003020: @ 3003020 .space 0xC @@ -207,13 +201,12 @@ gUnknown_03005CD5: @ 3005CD5 gUnknown_03005CDE: @ 3005CDE .space 0x1A -gUnknown_03005CF8: @ 3005CF8 - .space 0x8 + .include "rtc.o" gUnknown_03005D00: @ 3005D00 .space 0x4 -gUnknown_03005D04: @ 3005D04 +gBattleMainFunc: @ 3005D04 .space 0xC gUnknown_03005D10: @ 3005D10 @@ -228,7 +221,7 @@ gUnknown_03005D46: @ 3005D46 gUnknown_03005D54: @ 3005D54 .space 0xC -gUnknown_03005D60: @ 3005D60 +gBattleBankFunc: @ 3005D60 .space 0x10 gUnknown_03005D70: @ 3005D70 @@ -306,9 +299,7 @@ gUnknown_03005DF0: @ 3005DF0 gUnknown_03005DF4: @ 3005DF4 .space 0x4 -gUnknown_03005DF8: @ 3005DF8 - .space 0x8 - + .include "sound.o" .include "task.o" gUnknown_03006080: @ 3006080 @@ -401,34 +392,11 @@ gUnknown_030061E8: @ 30061E8 gUnknown_030061EC: @ 30061EC .space 0x4 -gUnknown_030061F0: @ 30061F0 - .space 0x4 + .include"save.o" + + .space 0x8 -gUnknown_030061F4: @ 30061F4 - .space 0x4 - -gUnknown_030061F8: @ 30061F8 - .space 0x4 - -gUnknown_030061FC: @ 30061FC - .space 0x4 - -gUnknown_03006200: @ 3006200 - .space 0x4 - -gUnknown_03006204: @ 3006204 - .space 0x4 - -gUnknown_03006208: @ 3006208 - .space 0x8 - -gUnknown_03006210: @ 3006210 - .space 0x4 - -gUnknown_03006214: @ 3006214 - .space 0xC - -gUnknown_03006220: @ 3006220 +gRamSaveSectionLocations: @ 3006220 .space 0x74 gUnknown_03006294: @ 3006294 diff --git a/sym_ewram.txt b/sym_ewram.txt index 225215462c..b2dcd8e41a 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1,68 +1,13 @@ + .include "src/malloc.o" + .include "src/decompress.o" + gTrainerId: @ 2020000 .space 0x4 -gWindows: @ 2020004 - .space 0x180 - -gUnknown_02020184: @ 2020184 - .space 0x4 - -gUnknown_02020188: @ 2020188 - .space 0x4 - -gTempTextPrinter: @ 202018C - .space 0x24 - -gTextPrinters: @ 20201B0 - .space 0x480 - -gUnknown_02020630: @ 2020630 - .space 0x8 - -gUnknown_02020638: @ 2020638 - .space 0x14 - -gUnknown_0202064C: @ 202064C - .space 0x12 - -gUnknown_0202065E: @ 202065E - .space 0x1116 - -gUnknown_02021774: @ 2021774 - .space 0x80 - -gUnknown_020217F4: @ 20217F4 - .space 0x40 - -gUnknown_02021834: @ 2021834 - .space 0x1 - -gUnknown_02021835: @ 2021835 - .space 0x3 - -gUnknown_02021838: @ 2021838 - .space 0x300 - -gUnknown_02021B38: @ 2021B38 - .space 0x2 - -gUnknown_02021B3A: @ 2021B3A - .space 0x2 - -gUnknown_02021B3C: @ 2021B3C - .space 0x80 - -gUnknown_02021BBC: @ 2021BBC - .space 0x2 - -gUnknown_02021BBE: @ 2021BBE - .space 0x2 - -gUnknown_02021BC0: @ 2021BC0 - .space 0x100 - -gUnknown_02021CC0: @ 2021CC0 - .space 0x4 + .include "src/window.o" + .include "src/text.o" + .include "src/sprite.o" + .align 2 gStringVar1: @ 2021CC4 .space 0x100 @@ -303,7 +248,7 @@ gUnknown_02022E2A: @ 2022E2A gUnknown_02022E2C: @ 2022E2C .space 0x12C -gUnknown_02022F58: @ 2022F58 +gBattleTextBuff1: @ 2022F58 .space 0x2 gUnknown_02022F5A: @ 2022F5A @@ -312,7 +257,7 @@ gUnknown_02022F5A: @ 2022F5A gUnknown_02022F5C: @ 2022F5C .space 0xC -gUnknown_02022F68: @ 2022F68 +gBattleTextBuff2: @ 2022F68 .space 0x2 gUnknown_02022F6A: @ 2022F6A @@ -345,7 +290,7 @@ gUnknown_0202305C: @ 202305C gUnknown_02023060: @ 2023060 .space 0x4 -gUnknown_02023064: @ 2023064 +gBattleBufferA: @ 2023064 .space 0x2 gUnknown_02023066: @ 2023066 @@ -357,37 +302,37 @@ gUnknown_02023067: @ 2023067 gUnknown_02023068: @ 2023068 .space 0x7FC -gUnknown_02023864: @ 2023864 +gBattleBufferB: @ 2023864 .space 0x4 gUnknown_02023868: @ 2023868 .space 0x7FC -gUnknown_02024064: @ 2024064 +gActiveBank: @ 2024064 .space 0x4 -gUnknown_02024068: @ 2024068 +gBattleExecBuffer: @ 2024068 .space 0x4 -gUnknown_0202406C: @ 202406C +gNoOfAllBanks: @ 202406C .space 0x2 -gUnknown_0202406E: @ 202406E +gBattlePartyID: @ 202406E .space 0x8 -gUnknown_02024076: @ 2024076 +gBanksBySide: @ 2024076 .space 0x4 gUnknown_0202407A: @ 202407A .space 0x4 -gUnknown_0202407E: @ 202407E +gTurnOrder: @ 202407E .space 0x4 gUnknown_02024082: @ 2024082 .space 0x1 -gUnknown_02024083: @ 2024083 +gFightStateTracker: @ 2024083 .space 0x1 gBattleMons: @ 2024084 @@ -417,22 +362,22 @@ gUnknown_020240D0: @ 20240D0 gUnknown_020240D4: @ 20240D4 .space 0x110 -gUnknown_020241E4: @ 20241E4 +gBankSpriteIds: @ 20241E4 .space 0x4 -gUnknown_020241E8: @ 20241E8 +gCurrMovePos: @ 20241E8 .space 0x1 gUnknown_020241E9: @ 20241E9 .space 0x1 -gUnknown_020241EA: @ 20241EA +gCurrentMove: @ 20241EA .space 0x2 gUnknown_020241EC: @ 20241EC .space 0x2 -gUnknown_020241EE: @ 20241EE +gRandomMove: @ 20241EE .space 0x2 gBattleMoveDamage: @ 20241F0 @@ -447,13 +392,13 @@ gUnknown_020241F8: @ 20241F8 gUnknown_02024208: @ 2024208 .space 0x2 -gUnknown_0202420A: @ 202420A +gLastUsedAbility: @ 202420A .space 0x1 -gUnknown_0202420B: @ 202420B +gBankAttacker: @ 202420B .space 0x1 -gEnemyMonIndex: @ 202420C +gBankTarget: @ 202420C .space 0x1 gUnknown_0202420D: @ 202420D @@ -465,7 +410,7 @@ gUnknown_0202420E: @ 202420E gUnknown_0202420F: @ 202420F .space 0x1 -gUnknown_02024210: @ 2024210 +gAbsentBankFlags: @ 2024210 .space 0x1 gCritMultiplier: @ 2024211 @@ -474,7 +419,7 @@ gCritMultiplier: @ 2024211 gUnknown_02024212: @ 2024212 .space 0x2 -gUnknown_02024214: @ 2024214 +gBattlescriptCurrInstr: @ 2024214 .space 0x8 gUnknown_0202421C: @ 202421C @@ -513,7 +458,7 @@ gUnknown_02024274: @ 2024274 gBattleMoveFlags: @ 202427C .space 0x4 -gUnknown_02024280: @ 2024280 +gHitMarker: @ 2024280 .space 0x4 gUnknown_02024284: @ 2024284 @@ -528,13 +473,13 @@ gUnknown_0202428C: @ 202428C gUnknown_0202428E: @ 202428E .space 0x6 -gUnknown_02024294: @ 2024294 +gSideTimers: @ 2024294 .space 0x18 -gUnknown_020242AC: @ 20242AC +gStatuses3: @ 20242AC .space 0x10 -gUnknown_020242BC: @ 20242BC +gDisableStructs: @ 20242BC .space 0x70 gUnknown_0202432C: @ 202432C @@ -546,19 +491,19 @@ gUnknown_0202432E: @ 202432E gUnknown_02024330: @ 2024330 .space 0x2 -gUnknown_02024332: @ 2024332 +gBattleCommunication: @ 2024332 .space 0x1 gUnknown_02024333: @ 2024333 .space 0x7 -gUnknown_0202433A: @ 202433A +gBattleOutcome: @ 202433A .space 0x2 -gUnknown_0202433C: @ 202433C +gProtectStructs: @ 202433C .space 0x40 -gUnknown_0202437C: @ 202437C +gSpecialStatuses: @ 202437C .space 0x50 gBattleWeather: @ 20243CC @@ -579,13 +524,13 @@ gUnknown_02024400: @ 2024400 gUnknown_02024402: @ 2024402 .space 0x2 -gUnknown_02024404: @ 2024404 +gEnigmaBerries: @ 2024404 .space 0x8 gUnknown_0202440C: @ 202440C .space 0x68 -gUnknown_02024474: @ 2024474 +gBattleScripting: @ 2024474 .space 0x4 gUnknown_02024478: @ 2024478 @@ -594,7 +539,7 @@ gUnknown_02024478: @ 2024478 gUnknown_02024488: @ 2024488 .space 0x14 -gUnknown_0202449C: @ 202449C +gBattleStruct: @ 202449C .space 0x4 gUnknown_020244A0: @ 20244A0 @@ -603,7 +548,7 @@ gUnknown_020244A0: @ 20244A0 gUnknown_020244A4: @ 20244A4 .space 0x4 -gUnknown_020244A8: @ 20244A8 +gBattleResources: @ 20244A8 .space 0x4 gUnknown_020244AC: @ 20244AC @@ -618,7 +563,7 @@ gUnknown_020244B4: @ 20244B4 gUnknown_020244B8: @ 20244B8 .space 0x1 -gUnknown_020244B9: @ 20244B9 +gDoingBattleAnim: @ 20244B9 .space 0x3 gUnknown_020244BC: @ 20244BC @@ -639,7 +584,7 @@ gUnknown_020244D8: @ 20244D8 gUnknown_020244DC: @ 20244DC .space 0x4 -gUnknown_020244E0: @ 20244E0 +gBattleMovePower: @ 20244E0 .space 0x2 gUnknown_020244E2: @ 20244E2 @@ -651,7 +596,7 @@ gUnknown_020244E4: @ 20244E4 gUnknown_020244E8: @ 20244E8 .space 0x1 -gUnknown_020244E9: @ 20244E9 +gPlayerPartyCount: @ 20244E9 .space 0x1 gUnknown_020244EA: @ 20244EA @@ -762,7 +707,7 @@ gUnknown_020322BC: @ 20322BC gUnknown_020322D0: @ 20322D0 .space 0x4 -gUnknown_020322D4: @ 20322D4 +gDifferentSaveFile: @ 20322D4 .space 0x1 gUnknown_020322D5: @ 20322D5 @@ -867,44 +812,7 @@ gUnknown_020375D4: @ 20375D4 gUnknown_020375D6: @ 20375D6 .space 0x2 -gUnknown_020375D8: @ 20375D8 - .space 0x2 - -gUnknown_020375DA: @ 20375DA - .space 0x2 - -gUnknown_020375DC: @ 20375DC - .space 0x4 - -gUnknown_020375E0: @ 20375E0 - .space 0x2 - -gUnknown_020375E2: @ 20375E2 - .space 0x2 - -gUnknown_020375E4: @ 20375E4 - .space 0x2 - -gUnknown_020375E6: @ 20375E6 - .space 0xA - -gUnknown_020375F0: @ 20375F0 - .space 0x2 - -gUnknown_020375F2: @ 20375F2 - .space 0x2 - -gUnknown_020375F4: @ 20375F4 - .space 0x2 - -gUnknown_020375F6: @ 20375F6 - .space 0x2 - -gUnknown_020375F8: @ 20375F8 - .space 0x4 - -gUnknown_020375FC: @ 20375FC - .space 0x10 + .include "src/event_data.o" gUnknown_0203760C: @ 203760C .space 0x1 @@ -943,57 +851,53 @@ gUnknown_02037624: @ 2037624 .space 0xF0 .include "src/palette.o" + .include "src/sound.o" + + .align 0x2 - .align 0x2 -gUnknown_020383E8: @ 20383E8 +gBattleAnimScriptPtr: @ 20383F0 .space 0x4 -gUnknown_020383EC: @ 20383EC +gBattleAnimScriptRetAddr: @ 20383F4 .space 0x4 -gUnknown_020383F0: @ 20383F0 +gAnimScriptCallback: @ 20383F8 .space 0x4 -gUnknown_020383F4: @ 20383F4 - .space 0x4 - -gUnknown_020383F8: @ 20383F8 - .space 0x4 - -gUnknown_020383FC: @ 20383FC +gAnimFramesToWait: @ 20383FC .space 0x1 -gUnknown_020383FD: @ 20383FD +gAnimScriptActive: @ 20383FD .space 0x1 -gUnknown_020383FE: @ 20383FE +gAnimVisualTaskCount: @ 20383FE .space 0x1 -gUnknown_020383FF: @ 20383FF +gAnimSoundTaskCount: @ 20383FF .space 0x1 -gUnknown_02038400: @ 2038400 +gDisableStructMoveAnim: @ 2038400 .space 0x4 -gUnknown_02038404: @ 2038404 +gMoveDmgMoveAnim: @ 2038404 .space 0x4 -gUnknown_02038408: @ 2038408 +gMovePowerMoveAnim: @ 2038408 .space 0x2 -gUnknown_0203840A: @ 203840A +gAnimSpriteIndexArray: @ 203840A .space 0x10 -gUnknown_0203841A: @ 203841A +gHappinessMoveAnim: @ 203841A .space 0x2 -gUnknown_0203841C: @ 203841C +gWeatherMoveAnim: @ 203841C .space 0x2 -gUnknown_0203841E: @ 203841E +gBattleAnimArgs: @ 203841E .space 0x10 -gUnknown_0203842E: @ 203842E +gSoundAnimFramesToWait: @ 203842E .space 0x2 gUnknown_02038430: @ 2038430 @@ -1005,13 +909,13 @@ gUnknown_02038432: @ 2038432 gUnknown_02038433: @ 2038433 .space 0x1 -gUnknown_02038434: @ 2038434 +gAnimMoveIndex: @ 2038434 .space 0x2 -gUnknown_02038436: @ 2038436 +gAnimationBankAttacker: @ 2038436 .space 0x1 -gUnknown_02038437: @ 2038437 +gAnimationBankTarget: @ 2038437 .space 0x1 gUnknown_02038438: @ 2038438 @@ -1245,7 +1149,7 @@ gUnknown_02039DD0: @ 2039DD0 gUnknown_02039DD4: @ 2039DD4 .space 0x4 -gUnknown_02039DD8: @ 2039DD8 +gBagPockets: @ 2039DD8 .space 0x28 gUnknown_02039E00: @ 2039E00 @@ -1749,8 +1653,9 @@ gUnknown_0203ABB5: @ 203ABB5 gUnknown_0203ABB8: @ 203ABB8 .space 0x4 -gUnknown_0203ABBC: @ 203ABBC - .space 0x1004 + .include "src/save.o" + +.space 0x4 /*unused var?*/ gUnknown_0203BBC0: @ 203BBC0 .space 0x74